Процессоры и память

SMP на домашнем компьютере

⇣ Содержание

"Because two is always better than one" Micah Schmidt

Чем быстрее процессор, тем лучше... Долгое время это утверждение являлось аксиомой для миллионов пользователей во всем мире. И вот регулярно, каждые полгода-год, в зависимости от финансовых возможностей, эти миллионы дружными рядами шли в магазины, выгребая последние центы и копейки, короче, "у.е." лишь бы получить несколько десятков дополнительных мегагерц. Также регулярно мы жаловались друг другу на недостаточную производительность домашних систем и на необходимость будущего апгрейда, ибо в следующем месяце ожидается новый "супер-пупер турбо-гипер 986 процессор". Мы пытались решать эту проблему разгоном процессоров, что продлевало срок их службы, но это решение было неполным. Редкий процессор выживал в системе больше года. В то же время, уже несколько десятилетий существует способ повышения производительности отличный от тупого наращивания мегагерц - это многопроцессорность или SMP ака Symmetrical MultiProcessing (сразу оговоримся, что в статье не будут затронуты ни AMP ака Asymmetrical MultiProcessing, ни Attached Processors, ни SWAR ака SIMD With A Register, потому как круг их применения в домашних условиях довольно узок. SMP, в этом смысле, предоставляет гораздо больше возможностей, поэтому в дальнейшем синонимом SMP будет слово "многопроцессорность").

Формально многопроцессорность заключается в том, что процессоры, объединенные общей локальной шиной, работают с общей оперативной памятью и другимим ресурсами компьютера параллельно и независимо друг от друга. Поддержкой SMP должна обладать и операционная система, не лишней будет также поддержка со стороны приложений. Именно отсутствие поддержки SMP со стороны "домашней операционной системы", которой de facto являлась Windows 9x и было одной из основных причин отсутствия SMP машин у нас на столах, вторая причина - дороговизна SMP-систем, но при ближайшем рассмотрении ее значение оказывается в некотором смысле преувеличенным.
Итак...

1. SMP в железе

С середины 40-х годов XX века развитие суперкомпьютеров и мэйнфреймов напоминало недавнюю ситуацию с современными PC. Эволюция в основном связывалась с совершенствованием элементной базы. Сначала это были электровакуумные лампы, "процессоры" на их основе обладали быстродействием 10000-50000 операций в секунду. Потом их сменили полупроводники, и быстродействие достигло величин порядка 10^5-10^6 операций в секунду. Следующими были интегральные схемы, чье быстродействие превышало миллион операций в секунду. Но с каждым днем появлялось все больше и больше задач, которые требовали вычислительных мощностей недоступных на тот момент. Таким образом к концу 60-х темпы развития элементной базы перестали успевать за ростом потребностей в вычислительных мощностях, так как за 25 лет развития суперкомпьютеры увеличили свою производительность только в 100 раз. Пришлось искать другой путь, и решение не заставило себя долго ждать.

Идея была простой и очевидной - распараллелить вычисления и использовать в вычислениях несколько процессоров или машин. Действительно, то, что выполняет один процессор за два такта, два процессора выполнят за один. Едва возникнув, эта технология разделилась на два ярко выраженных направления. Во-первых, объединение нескольких машин в единую систему, а во-вторых, объединение нескольких процессоров в пределах одной машины. Но на практике многомашинные системы столкнулись с рядом проблем, главной из которых было несовершенство технологии синхронизации запущенных процессов на машинах. Эти системы продолжали использоваться и используются до сих пор в узкоспециализированных задачах, т.к. позволяют наращивать мощь практически без ограничений и с меньшими затратами, правда, как правило, рейтинги производительности венчают многопроцессорные машины.

Суперкомпьютеры продолжали развиваться дальше, а тем временем наступила эра РС. Официально родителем РС является IBM, наладившая массовый выпуск этих устройств в 1981 году. Так как РС изначально рассматривался как компьютер для бизнеса, т.е. для работы, то применение навороченных технологий типа многопроцессорности, а с ней и параллельных вычислений (RISC, сопроцессор, конвейер, несколько исполнительных устройств ака суперскалярность, кэш также можно отнести к технологии параллельных вычислений) в машине для массового рынка оказалось не целесообразно. Примером применения "крутых" технологий может послужить Apple Lisa - первая машина с графическим интерфейсом, появившаяся в 1982 году, которая, однако, не получила признания на рынке и позже трансформировавшаяся в Apple Macintosh. Отсюда можно сделать вывод, что должны были появиться новые области применения РС, чтобы заставить производителей железа и программного обеспечения использовать новые технологии в своих творениях, потому как со своей первоначальной ролью "навороченного" калькулятора IBM PC справлялся без проблем.

С появлением локальных сетей и новых областей применений РС, жадных до производительности, вроде компьютерной анимации, цифровой обработки звука и, конечно, компьтерных игр, а также переносом научных и инженерных приложений на РС требования к железу росли с каждым днем, тем самым провоцируя производителей микропроцессоров внедрять технологии дотоле остававшиеся невостребованными. Так случилось с сопроцессором, следующим стал кэш, потом конвейер и суперскалярность, и наконец, элементы RISC-архитектуры и многопроцессорности в большей или меньшей степени нашли применение во всех современных процессорах, начиная с Pentium и K5. На сегодняшний день технология IA-32 (Intel Architecture, 32 bit) позволяет распараллелить вычисления на максимальном для себя уровне, сохраняя совместимость со всеми ранее выпущенными программами и приложениями. Следующей будет IA-64, которая пойдет еще дальше, обеспечивая, благодаря VLIW (Very Long Instruction Word) распараллеливание кода даже не приспособленного к параллельной обработке, т.е. фактически распараллеливание будет происходить чуть ли не насильно, просто потому что процессору типа Itanium легче такой код обрабатывать.

До сих пор производительность процессоров повышалась в соответствии с законом Мура, но уже заметны тенденции, которые позволяют усомниться в его незыблемости. Кремниевая технология имеет частотный предел, по разным оценкам составляющий от 1 до 1,5 Ghz. Некоторые скажут, что арсенид галлия и так называемые "трехмерные" чипы (это когда транзисторы располагаются не на плоскости как теперь, а равномерно распределены в пространстве) позволяют создавать более высокочастотные устройства, вплоть до нескольких десятков гигагерц, однако, подобные технологии еще далеки от той стадии, когда их применение станет экономически оправдано. А к пределу возможностей кремниевой пластины мы подошли уже сегодня. К тому же память, системная шина и жесткие диски не удваивают свое быстродействие каждые 18 месяцев, поэтому для наращивания производительности актуальной становится SMP, как единственный пункт параллельных вычислений, который оказался не реализован в наших домашних системах.

Поддержка SMP варьируется в зависимости от производителя и модели процессора, причем не имеют значения степпинг и размер кэша, главное, чтобы процессоры работали на одинаковой шине. На данный момент SMP поддерживают такие процессоры, как Pentium P54C, Pentium Pro, Pentium II, Pentium III, их производные типа Celeron и Xeon, а также Athlon. Частота FSB, а с ней и частота процессора, в SMP-системе теряет свое обычное значение фактора, определяющего производительность - в мире параллельных вычислений FSB всего лишь определяет скорость работы с периферией; здесь часто выигрывает "крутая" архитектура, а не "чистая" скорость.

Теперь чипсеты. Все интеловские чипсеты поддерживают SMP кроме 430TX, 430VX, 440EX, 440ZX и i810, со стороны конкурентов - только AMD’шный Irongate. Все их фичи всем давно известны, рассмотрим только те, которые напрямую касаются SMP. У Intel поддержка SMP реализована через шину GTL+, а у AMD - через DEC’овскую EV6. В GTL+ процессоры рассматриваются локальной шиной просто как еще одни busmaster-устройства, со всеми вытекающими отсюда минусами. Плюс этой шины - в ее простой реализации и, главное, дешевизне матерей на основе чипсетов с ее поддержкой как в однопроцессорном варианте, так и в SMP варианте. EV6 реализует соединение каждого процессора с чипсетом типа точка-точка на частоте FSB, что никак не сказывается на производительности однопроцессорных матерей, однако, дает огромный прирост в SMP-конфигурациях. Считайте сами: в то время как GTL+ позволяет работать с шиной только одному процессору, которые затем меняются поочереди, EV6 поддерживает одновременную работу чипсета и памяти со всеми процессорами в системе. Однако, практическая реализация SMP-матерей на основе EV6 стоит просто немеряно дорого; авторы предполагают, что разница в цене между многопроцессорной GTL+-матерью и EV6-матерью может исчисляться разами.

Следующая страница →
 
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Материалы по теме
⇣ Комментарии
window-new
Soft
Hard
Тренды 🔥