Двухъядерные процессоры – новый вектор развития ПК
ОТ СУПЕРСКАЛЯРНОСТИ К SMP, МИНУЯ VLIW
Параллельное выполнение программного кода — один из самых эффективных способов увеличения производительности вычислительной системы. В том или ином виде он широко применяется во всех классах вычислительных систем, от КПК до суперкомпьютеров. В частности, все современные процессоры, используемые в ПК, реализуют принцип суперскалярной обработки. Суть этого метода состоит в том, что процессор самостоятельно анализирует поток команд, поступающих на выполнение, оценивая возможность их распараллеливания. Команды, не связанные друг с другом, могут быть выполнены одновременно — для этого у процессора имеются несколько конвейеров обработки данных.
Метод суперскалярной обработки существенно увеличивает эффективность работы процессора, однако на сегодняшний день он себя уже исчерпал. Недостаток его заключается в том, что распараллеливание команд происходит исключительно силами самого процессора. Задача анализа команд достаточно сложная, она требует затрат дополнительных аппаратных ресурсов и не всегда может быть решена положительно.
Для наглядности можно представить, что команды поступают в процессор, будучи организованными в несколько независимых друг от друга потоков. Тогда их можно выполнять параллельно без специального анализа. Пусть предварительный анализ и распараллеливание команд выполняет компилятор в процессе сборки и подготовки программы. В этом случае вполне предсказуем эффект ускорения выполнения практически для любой программы. Подобный прием обычно называется VLIW — инструкции с очень длинным словом. Именно этот метод реализован в процессорах Intel Itanium. Уже на стадии компиляции процессорные инструкции анализируются на предмет возможности параллельного выполнения, после чего упаковываются специальным образом — в длинные составные команды. Процессор не тратит время на анализ и переупорядочивание инструкций для параллельной обработки, так как изначально имеет всю необходимую информацию. К сожалению, VLIW-процессоры используют специальный набор инструкций, не совместимый с набором инструкций процессоров x86. Для платформы ПК, на которой выполняются миллионы различных программ, задача полной перекомпиляции всего программного обеспечения представляется практически невозможной. Корпорация Intel попыталась применить VLIW в области средних и мощных серверов, столкнувшись при этом с рядом трудностей.
Более универсальный и простой в реализации, хотя и дорогостоящий метод, — симметричная многопроцессорная обработка (SMP). Можно представить, что в системе имеются несколько идентичных процессоров, каждый из которых работает практически независимо от остальных. (однако нельзя забывать, что каждый чип работает со своей многоуровневой кэш-памятью, отсюда возникает необходимость синхронизировать содержимое кэша с кэшами других процессоров и содержимым памяти, а эта задача решается с помощью специального протокола синхронизации). Если на процессоры подавать независимые потоки команд, они будут работать одновременно, что в итоге позволит увеличить скорость работы всей системы.
Принцип SMP в серверных системах применяется давно и успешно, но в настольных системах до сих пор не встречался. Основное препятствие, безусловно, связано со сложностью архитектуры многопроцессорной машины. Для двух процессоров необходимы специальные материнские платы со сложной разводкой, более мощные блоки питания, иные корпуса и системы охлаждения и т.д., что значительно удорожает систему. Существуют сложности и с программным обеспечением, хотя и не такие неразрешимые. В частности, операционная система Windows XP полностью поддерживает SMP, обеспечивая распределение потоков между процессорами. Ряд программных продуктов, в особенности мультимедийных (обсчет 2D- и 3D-графики, сжатие аудио- и видеоданных), уже оптимизированы под многопроцессорную обработку.
HYPER-THREADING — ПЕРВЫЙ ШАГ К SMP
На практике большинство программ для ПК все же работают линейно, они даже теоретически не способны выполняться быстрее на многопроцессорных системах. Разработчики могли бы заняться их оптимизацией для многопроцессорного выполнения, но в этом нет необходимости — в большинстве ПК установлены одноядерные процессоры.
Извечную проблему «курицы и яйца» корпорация Intel решила с помощью технологии Hyper-Threading. Симметричная многопоточная обработка (SMT) является промежуточным решением проблемы реализации многопроцессорности в настольной системе. SMT-процессор «внутри» работает практически так же, как суперскалярный: свободные вычислительные блоки, для которых на данном этапе не нашлось работы, загружаются командами, предназначенными для второго логического процессора. Тем самым достигается более эффективная загрузка процессора, снижается процент его простоя. В то же время «снаружи», для операционной системы и ПО, создается полная иллюзия двухпроцессорного выполнения: имеются два независимых процессора, каждый из которых способен обрабатывать свой поток данных.
Конечно, Hyper-Threading лишь частично решает вопрос производительности, так как эта технология позволяет оптимально загрузить процессор, дополняя механизм суперскалярности механизмом независимых программных потоков. Но ведь два логических процессора не являются в реальности независимыми: они по очереди используют общие ресурсы, могут взаимно блокироваться из-за конфликтов доступа, из-за чего работают неравномерно.
Тем не менее именно Hyper-Threading стала первой попыткой привить принцип многопроцессорной обработки в настольных ПК. Разработчики ПО и пользователи начали привыкать к мысли о том, что процессор может обрабатывать данные в несколько потоков. Это и обусловило появление на свет настоящих многоядерных процессоров — Intel Pentium Extreme Edition, Pentium D и AMD Athlon 64 X2.
PENTIUM D И PENTIUM EE — ПЕРВОЕ ПОКОЛЕНИЕ
С выпуском двухъядерных процессоров Intel окончательно избавляется от нумерации имен процессоров. Вместо «Pentium 4» чипы теперь будут называться просто «Pentium», а дополнительная буква будет обозначать модель использования, по сути рыночную нишу. Универсальный процессор для настольных систем называется теперь Pentium D (D — «desktop»), а Pentium Extreme Edition ориентирован на мощные игровые и профессиональные машины, в том числе на рабочие станции на базе ПК.
Оба новых процессора, как Pentium D, так и Pentium EE, построены по одной архитектуре. Два процессорных ядра, полностью идентичные ядру Prescott с 1 Мб кэш-памяти второго уровня (L2), используемому в Pentium 4, находятся на одном кристалле и соединены вместе с помощью системной шины. Кристалл упакован в стандартный корпус FC-LGA4 и устанавливается в разъем LGA775.
МОДЕЛИ
| Процессор |
Pentium EE 840 |
Pentium D 840 |
Pentium D 830 |
Pentium D 820 |
| Частота чипа, ГГц |
3,2 |
3,2 |
3,0 |
2,8 |
| Частота шины, МГц |
800 |
800 |
800 |
800 |
Типичное
энергопотребление, Вт |
130 |
130 |
130 |
95 |
| Стоимость(*), долл. |
999 |
530 |
316 |
241 |
| Поддержка технологий: |
| HyperThreading |
+ |
- |
- |
- |
| Enhanced SpeedStep |
- |
+ |
+ |
- |
| Thermal monitor 2 |
+ |
- |
- |
- |
| Halt C1E |
+ |
- |
- |
- |
| EDB |
+ |
+ |
+ |
+ |
| EM64T |
+ |
+ |
+ |
+ |
| * - на момент объявления |
|
|
|
В отличие от AMD, предложившей пока только «топовые» процессоры семейства Athlon 64 X2, Intel начала наступление по всему фронту. В семействе Pentium EE есть только одна дорогая модель — с индексом 840, тактовая частота которой составляет 3,2 ГГц, а рекомендованная цена очень высока — 999 долл. Зато семейство Pentium D уже на момент объявления состояло из трех моделей, младшая из которых, 820-я, стоит менее 250 долл. Это открывает широкие перспективы для быстрого развития рынка двухъядерных систем. Впрочем, на этом пути есть ряд препятствий, одно из которых — совместимость с материнскими платами.
СОВМЕСТИМОСТЬ
Двухъядерные процессоры не будут работать на материнских платах с чипсетами Intel 865/875. Чипсеты i915/925 тоже их не поддерживают. Остаются только последние наборы микросхем Intel — 945 и 955. Стоимость материнских плат на их базе какое-то время будет сохраняться на высоком уровне. Конечно, другие производители тоже будут предлагать чипсеты с поддержкой двухъядерных процессоров, но большинство покупателей топовых систем совсем небезосновательно предпочитают решения Intel.
Еще один вопрос совместимости связан с блоками питания. Удвоение числа ядер, очевидно, ведет к росту потребляемой мощности, хотя и не вдвое, как можно было предполагать: термопакет Pentium EE и Pentium D, за исключением младшей модели, составляет 130 Вт, что почти на треть больше, чем у Pentium 4. Согласно наблюдениям самих инженеров Intel, стабильная работа двухъядерной системы возможна лишь при использовании блоков питания стандарта ATX 2.0 мощностью не менее 400 Вт. В корпусах компьютеров большинства пользователей стоят более слабые блоки питания.
ФУНКЦИОНАЛЬНОСТЬ
Несмотря на физическую идентичность процессоров Pentium D и EE между ними имеются существенные различия в функциональности. Начать хотя бы с того, что технология Hyper-Threading будет работать только у процессора Pentium EE. Соответственно, в системе он будет отображаться как четыре логических процессора. Тут, кстати, интересен вопрос, насколько эффективно операционная система будет распределять нагрузку между ними, ведь эти четыре процессора имеют неодинаковую природу. Процессоры Pentium D работают только как два логических процессора.
С другой стороны, в Pentium EE была отключена технология Enhanced SpeedStep. Этот процессор не допускает динамического управления частотой и напряжением со стороны операционной системы, работая только в режиме максимальной производительности. Но у него сохранена возможность снижения частоты в аварийном случае — при перегреве (функция Thermal Monitor 2), а также при простое системы (режим Halt C1E). Процессоры Pentium D, напротив, поддаются программному управлению. Исключение составляет младшая модель, Pentium D 820, у которой нет поддержки SpeedStep. Представители Intel подтвердили, что вызвано это техническими соображениями: множитель частоты 14х для Pentium D является минимально возможным, а модель 820 как раз имеет именно такой множитель. Получается, что младшему процессору снижать частоту уже некуда.
Снижение частоты и напряжения оба ядра процессора выполняют синхронно и лишь при отсутствии нагрузки на обоих. Теоретически возможно независимое снижение частоты лишь одним из ядер. Поскольку питание на оба ядра подается одновременно, управлять ими по отдельности невозможно. Температура измеряется только у одного из ядер, хотя тестирование показывает, что защитный механизм троттлинга может включаться у обоих независимо.
В заключение стоит отметить, что все новые процессоры поддерживают как Execution Disable Bit (защита буфера от исполнения кода), так и EM64T (64-битные инструкции).
ПРОИЗВОДИТЕЛЬНОСТЬ
Понятно, что по производительности каждое ядро в составе двухъядерного процессора Intel идентично процессору Pentium 4 с аналогичной тактовой частотой. Другое дело, насколько эффективно будут загружены оба процессора. Существуют определенные препятствия для 100% загрузки двухъядерного процессора, причем как аппаратного, так и программного характера.
Процессорная шина и канал подключения к памяти могут не справиться с возросшей вдвое нагрузкой, что приведет к появлению узкого места в системе, которое невозможно устранить. Необходимо будет нарастить частоты FSB и памяти. Второе препятствие обусловлено тем, что загрузка обоих процессоров возможна лишь в двух случаях, когда приложение специально делит сложные вычисления на четное количество потоков или когда одновременно выполняются несколько приложений. В случае выполнения на компьютере однопоточных приложений, к которым, к слову, относятся все современные игры, второй логический процессор будет заниматься выполнением вспомогательных задач, что не даст никакого эффекта. Типичная модель использования ПК как раз и не предполагает активного использования SMP: пользователь или готовит документы, или смотрит видео, или читает почту, но не делает все это одновременно.
Тут может прийти на помощь технология виртуализации, которую Intel после нескольких лет разработки готова предложить пользователям. Специальные аппаратные решения позволят программным продуктам, реализующим виртуализацию (Microsoft Virtual PC, VMware), обеспечивать более стабильную и производительную работу виртуальных машин в рамках физической машины. Технология виртуализации открывает новые возможности для использования ПК дома и в офисе: например, часть ресурсов, свободных во время игры или при работе с текстом, можно потратить на воспроизведение музыки и видео, обеспечив таким образом работу нескольких независимых компьютеров в рамках одной системы. Еще одно преимущество виртуализации состоит в полной изоляции нескольких логических систем друг от друга, поскольку все ресурсы, включая аппаратные, являются виртуальными и потому поддаются администрированию, в том числе удаленному. Это повышает уровень безопасности и контроля, что немаловажно для корпоративной среды. И конечно, виртуализация легко может получить реальный выигрыш от наличия многоядерных процессоров и многопроцессорной обработки.
источник: http://www.hkr.khv.ru/magazines/n296/kurmaz/
|