В начале июля оба ведущих производителя процессоров для ПК, Intel и AMD, анонсировали двухъядерные процессоры для настольных компьютеров. Два вычислительных ядра в одном процессоре - это значимый этап развития программно-аппаратной архитектуры ПК. Ранее принцип симметричной многопроцессорной обработки (SMP) применялся лишь в рабочих станциях и серверах. Попробуем ответить на вопрос: зачем понадобилось удваивать количество процессоров в системе, и какого эффекта, в том числе долгосрочного, следует ожидать от нового витка эволюции ПК?
От суперскалярности к SMP, минуя VLIW
Параллельное выполнение программного кода - один из самых эффективных способов увеличения производительности вычислительной системы. В том или ином виде он широко применяется во всех классах вычислительных систем, от КПК до суперкомпьютеров. В частности, все современные процессоры, используемые в ПК, реализуют принцип суперскалярной обработки. Суть этого метода состоит в том, что процессор самостоятельно анализирует поток команд, поступающих на выполнение, на предмет возможности распараллеливания. Команды, не связанные друг с другом, могут быть выполнены одновременно - для этого у процессора имеются несколько конвейеров обработки данных.
Да, метод суперскалярной обработки существенно увеличивает эффективность работы процессора. Но на сегодняшний день он себя исчерпал. Недостаток метода состоит в том, что распараллеливание команд происходит исключительно силами самого процессора. Задача анализа команд достаточно сложная, она требует затраты дополнительных аппаратных ресурсов и не всегда может быть решена положительно.
Представим, что команды поступают в процессор, будучи организованными в несколько независимых друг от друга потоков. Тогда их можно выполнять параллельно без специального анализа. Пусть предварительный анализ и распараллеливание команд выполняет компилятор в процессе сборки и подготовки программы. Тогда мы можем получить предсказуемый эффект ускорения выполнения практически для любой программы. Этот прием обычно называется VLIW - инструкции с очень длинным словом. Именно он реализован в процессорах Intel Itanium. Уже на стадии компиляции процессорные инструкции анализируются на предмет возможности параллельного выполнения, после чего упаковываются специальным образом - в длинные составные команды. Процессор не тратит время на анализ и переупорядочивание инструкций для параллельной обработки, так как изначально имеет всю необходимую информацию. К сожалению, VLIW-процессоры используют специальный набор инструкций, не совместимый с набором инструкций процессоров x86. Для платформы ПК, на которой выполняются миллионы различных программ, задача полной перекомпиляции всего программного обеспечения представляется невозможной. Корпорация Intel попыталась применить VLIW в области средних и мощных серверов. С какими трудностями она столкнулась, вы, надеюсь, знаете.
Более универсальный и простой в реализации, хотя и дорогостоящий метод - симметричная многопроцессорная обработка (SMP). Представим, что в системе имеются несколько идентичных процессоров, каждый из которых может работать практически независимо от остальных. ("Практически" - потому что каждый процессор работает со своим многоуровневым кэшем. Отсюда возникает необходимость синхронизировать содержимое кэша с кэшами других процессоров и содержимым памяти; эта задача решается с помощью специального протокола синхронизации). Если на процессоры подавать независимые потоки команд, они будут работать одновременно, что в итоге позволит увеличить скорость работы всей системы.
Принцип SMP в серверных системах применяется давно и успешно, но в настольных системах до сих пор не встречался. Основное препятствие, безусловно, связано со сложностью архитектуры многопроцессорной машины. Для двух процессоров необходимы специальные материнские платы со сложной разводкой, более мощные блоки питания, иные корпусы и системы охлаждения и т.д., что сильно удорожает систему. Существуют сложности и с программным обеспечением, хотя и не такие неразрешимые. В частности, операционная система Windows XP полностью поддерживает SMP, обеспечивая распределение потоков между процессорами. Ряд программных продуктов, в особенности мультимедийных (обсчет 2D- и 3D-графики, сжатие аудио- и видеоданных), уже оптимизированы под многопроцессорную обработку.
HyperThreading - первый шаг к SMP
Увы, большинство программ для ПК все же работают линейно, они даже теоретически не способны выполняться быстрее на многопроцессорных системах. Разработчики могли бы заняться их оптимизацией для многопроцессорного выполнения, но в этом нет необходимости - в большинстве ПК установлены одноядерные процессоры.
Извечную проблему "курицы и яйца" корпорация Intel решила с помощью технологии HyperThreading. Симметричная многопоточная обработка (SMT) является промежуточным решением проблемы реализации многопроцессорности в настольной системе. SMT-процессор "внутри" работает практически так же, как суперскалярный: свободные вычислительные блоки, для которых на данном этапе не нашлось работы, загружаются командами, предназначенными для второго логического процессора. Тем самым достигается более эффективная загрузка процессора, снижается процент его простоя. В то же время "снаружи", для операционной системы и ПО, создается полная иллюзия двухпроцессорного выполнения: имеются два независимых процессора, каждый из которых способен обрабатывать свой поток данных.
Конечно, HyperThreading лишь частично решает вопрос производительности, так как она позволяет оптимально загрузить процессор, дополняя механизм суперскалярности механизмом независимых программных потоков. Но ведь два логических процессора не являются в реальности независимыми: они по очереди используют общие ресурсы, могут взаимно блокироваться из-за конфликтов доступа, из-за чего работают неравномерно.
Тем не менее, именно HyperThreading стала первой попыткой привить принцип многопроцессорной обработки в настольных ПК. Разработчики ПО и пользователи начали привыкать к мысли о том, что процессор может обрабатывать данные в несколько потоков. И затем на свет появились настоящие многоядерные процессоры - 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.
Модели
В отличие от AMD, предложившей пока только "топовые" процессоры семейства Athlon 64 X2, Intel начала наступление по всему фронту. Да, в семействе Pentium EE есть только одна дорогая модель - 840, тактовая частота которой составляет 3.2 ГГц, а рекомендованная цена очень высока - $999. Зато семейство Pentium D состоит (на момент объявления) из трех моделей, младшая из которых, 820-я, стоит менее $250. Это открывает хорошие перспективы для быстрого развития рынка двухъядерных систем. Впрочем, на этом пути есть ряд препятствий, одно из которых - совместимость с материнскими платами.
Процессор | 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 | + | + | + | + |
* - на момент объявления |
Совместимость
Увы, двухъядерные процессоры не будут работать на материнских платах с чипсетами Intel 865/875. Чипсеты 915/925 тоже их не поддерживают. Остаются только последние чипсеты Intel - 945 и 955. Стоимость материнских плат на их базе какое-то время будет сохраняться на высоком уровне. Конечно, другие производители тоже будут предлагать чипсеты с поддержкой двухъядерных процессоров, но большинство пользователей предпочитают решения Intel, и не всегда безосновательно.
Еще один вопрос совместимости связан с блоками питания. Удвоение числа ядер, очевидно, ведет к росту потребляемой мощности, хотя и не вдвое, как можно было предполагать: термопакет Pentium EE и Pentium D, за исключением младшей модели, составляет 130 Вт, что почти на треть больше, чем у Pentium 4. Согласно наблюдениям самих инженеров Intel, стабильная работа двухъядерной системы возможна лишь при использовании блоков питания стандарта ATX 2.0 мощностью не менее 400 Вт. В системных блоках большинства пользователей таких блоков питания пока не наблюдается.
Функциональность
Несмотря на физическую идентичность процессоров Pentium D и EE, между ними имеются существенные отличия в функциональности. Начнем с того, что технология HyperThreading будет работать только у процессора 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 и памяти. Второе препятствие обусловлено тем, что загрузка обоих процессоров возможна лишь в двух случаях: 1) приложение специально делит сложные вычисления на четное количество потоков, и 2) выполняются одновременно несколько приложений. В случае выполнения на компьютере однопоточных приложений, к которым, к слову, относятся все современные игры, второй логический процессор будет заниматься выполнением вспомогательных задач, что не даст никакого эффекта. Типичная модель использования ПК как раз и не предполагает активного использования SMP: пользователь или готовит документы, или смотрит видео, или читает почту, но не делает этого одновременно.
Тут может прийти на помощь технология виртуализации, которую Intel после нескольких лет разработки готова предложить пользователям. Специальные аппаратные решения позволят программным продуктам, реализующим виртуализацию (Microsoft Virtual PC, VMware), обеспечивать более стабильную и производительную работу виртуальных машин в рамках физической машины. Технология виртуализации открывает новые возможности для использования ПК дома и в офисе: например, часть ресурсов, свободных во время игры или при работе с текстом, можно потратить на воспроизведение музыки и видео, обеспечив, таким образом, работу нескольких независимых компьютеров в рамках одной системы. Еще одно преимущество виртуализации состоит в полной изоляции нескольких логических систем друг от друга, поскольку все ресурсы, включая аппаратные, являются виртуальными и потому поддаются администрированию, в том числе удаленному. Это повышает уровень безопасности и контроля, что немаловажно для корпоративной среды. И, конечно, виртуализация легко может получить реальный выигрыш от наличия многоядерных процессоров и многопроцессорной обработки.
Выводы
В ближайшие год-два двухъядерные процессоры прочно закрепятся на настольном рынке, ожидается их появление в мобильных системах, серверах различного уровня и даже в сегменте бюджетных компьютеров. Их применение позволит расширить сферу применения ПК, увеличить производительность без существенного повышения сложности, повысить безопасность, гибкость и управляемость. Безусловно, еще остается множество вопросов, которые только предстоит решить: электропитание, охлаждение, совместимость, поддержка программного обеспечения и т.д. Однако процесс уже запущен, двухъядерные процессоры первого поколения уже появились в продаже. Задан новый вектор развития платформы ПК.
Горячие темы