Процессор в пенале
Догнать и перегнать

Одна из самых преуспевающих компьютерных фирм, Intel может себе позволить вести наступление сразу на нескольких фронтах. Передним краем можно считать рынок высокопроизводительных, в том числе многопроцессорных систем, вплоть до суперкомпьютеров. Здесь Intel предлагает не только микропроцессоры Pentium Pro, на основе которых другие компаниии строят мощные мультипроцессорные компьютеры, такие, как, например, системы с

архитектурой NUMA-Q от Sequent. Intel делает и собственные суперкомпьютеры: ранее это были МРР-системы Paragon, а теперь фирма по заказу министерства энергетики США создала суперкомпьютер ASCI Red, содержащий более 3 тыс. процессоров Pentium Pro.

Еще один фронт - рынок дешевых персональных и сетевых компьютеров. После выпуска высокопроизводительного процессора Pentium Pro сложилось впечатление, что Intel решительно двинулась вперед на территорию, где господствовали рабочие станции и серверы на базе микропроцессоров RISC-архитектуры. Поскольку программное

обеспечение от Microsoft требует все больше и больше компьютерных ресурсов, "второй" фронт также продвигается в сторону более быстродействующих микропроцессоров. Подтверждением тому служат совместные работы с НР по созданию принципиально нового 64-разрядного микропроцессора Merced с архитекутрой VLIW, который, по мнению его авторов, по производительности должен существенно превзойти всех конкурентов.

Появление ММХ-расширений архитектуры IA (Intel Architecture) в некотором смысле можно назвать наступлением "вбок" (или, если угодно, "вширь"), в область мультимедийных приложений, хотя этот процесс также обеспечил рост производительности процессоров Pentium/MMX. Наконец, в мае Intel объявила о поставках микропроцессоров Pentium II, которые грубо можно охарактеризовать как Pentium Pro с ММХ.

Каково "направление главного удара" Intel? Ответ на этот вопрос не очевиден. Во всяком случае, выступление менеджера по технологиям европейского отделения Intel г-на Иэна Уилсона на презентации Pentium II в России не внесло особой ясности. Чтобы оценить ситуацию, рассмотрим технические характеристики Pentium II, а затем вернемся к обсуждению поставленного вопроса.

Процессор в пенале

Остановимся лишь на некоторых ключевых особенностях архитектуры Pentium II, которая очень близка к Pentium Pro. Введенные в Pentium II ММХ-команды мы уже обсуждали в нашей рубрике.

К основополагающим характеристикам Pentium II следует отнести трансляцию макроинструкций IA (в терминологии Intel), т. е. обычных команд x86, в так называемые микрооперации и внеочередное спекулятивное выполнение последних суперскалярным "ядром" (core) RISC-архитектуры с применением техники переименования регистров и динамического предсказания переходов. Микрооперации являются, грубо говоря, обычными RISC-командами. По мнению автора, такое строение микропроцессоров семейства Р6 свидетельствует о том, что сегодня RISC-архитектура позволяет достигать более высокого уровня производительности.

Для преобразования х86-команд в микрооперации используются 3 декодера, которые могут перекодировать до 3 х86-команд за такт, или до 6 микроопераций за такт. Первый декодер может перекодировать одну х86-команду за такт при условии, что она преобразуется в последовательность из 4 (не более) микроопераций. Второй и третий декодеры перекодируют простые х86-команды, каждая из которых преобразуется в одну микрооперацию. Сложные х86-команды, требующие для своей реализации больше 7 микроопераций, замедляют быстродействие декодеров, которые в этом случае не могут обрабатывать до 3 команд за такт.

х86-команды формата "регистр-регистр", команды загрузки регистров и команды ММХ перекодируются в одну микрооперацию; команды записи в память - в 2 микрооперации; простые команды формата "регистр-память" требуют 2-3 микроопераций и т. д. Те, кто программирует на ассемблере, Intel рекомендует для увеличения пропускной способности декодеров планировать последовательность команд, чтобы обеспечить выдачу микроопераций по схеме "4-1-1". Вообще людям, программирующим на ассемблере современных микропроцессоров, для достижения высокой производительности приходится идти на разного рода ухищрения, подчас несколько экстравагантные. Можно вспомнить, например, необходимость вставлять команду "нет операции" для поддержания темпа вычислений в DEC Alpha 21164. Чтобы добиться высокой производительности микропроцессоров Intel в приложениях, использующих ММХ, надо смешивать команды с плавающей запятой с ММХ-командами, поскольку переключение с одного типа команд на другой вызывает большие задержки. (Последнее верно только для Pentium/MMX. По утверждению представителя Intel в Pentium II эта проблема устранена, но по-прежнему лучше не смешивать команды.)

До окончания декодирования команды в Pentium II обрабатываются в порядке их расположения в программе. Выработанные декодерами микрооперации попадают в буфер переупорядочения (Reorder Buffer), в котором они ожидают готовности операндов. С этого момента выполнение становится внеочередным: микрооперация планируется к выполнению в функциональных исполнительных устройствах (ФИУ), как только станут доступными ее операнды. После выполнения микроопераций они изымаются из буфера, до 3 микроопераций за такт, так, чтобы обеспечить тот порядок выполнения, который имелся в тексте программы.

Мы не будем подробно рассматривать здесь работу ФИУ, которые не изменились по сравнению с Pentium Pro. Они включают, в частности, целочисленные ФИУ, в том числе умножитель "длиной" в 4 такта и ФИУ с плавающей запятой, в том числе 5-ступенчатые сумматор и умножитель. Последний конвейер может запускаться каждый второй такт. Параллельная работа ФИУ позволяет планировать на выполнение в каждом такте до 5 микроопераций. Мы не будем анализировать и динамическое предсказание переходов в Pentium II, хотя, как отмечено Intel, на это следует обращать особое внимание при разработке программ, использующих ММХ. Однако нельзя не отметить одно важное отличие Pentium II от Pentium Pro: в Pentium II используется "динамическое выполнение" и для 16-разрядных кодов, которое в Pentium Pro блокировалось. Это затрудняло достижение наивысшей производительности Pentium Pro на 16-разрядных приложениях.

Пожалуй, наиболее важные изменения в Pentium II по сравнению с Pentium Pro для приложений, не использующих ММХ, относятся к кэш-памяти. В Pentium Pro I- и D-кэш уровня 1 имеют емкость по 8 Кбайт каждый, а в Pentium II их емкость возросла в 2 раза. Кэш уровня 1 в Pentium II является 4-канальным частично-ассоциативным, с обратной записью. Для замены информации применяется алгоритм псевдо-LRU. Отметим, что в Pentium Pro I-кэш уровня 1 является лишь 2-канальным частично-ассоциативным (хотя D-кэш - 4-канальный).

Наряду с усовершенствованиями в кэше уровня 1 в Pentium II используется более "медленный" по сравнению с Pentium Pro кэш уровня 2. В обоих микропроцессорах имеется выделенная шина для кэша уровня 2, управление которым встроено на основном микропроцессоре. Однако если в Pentium Pro кэш работает на тактовой частоте процессора, то в Pentium II - на половинной тактовой частоте. Такой подход позволяет применять в Pentium II более доступный и более дешевый кэш с технологией BSRAM.

Оба микропроцессора семейства Р6 применяют архитектуру двойной независимой шины (Dual Independed Bus, DIB). В ее основе лежит хорошо известная в мире RISC-процессоров идея отделения шины кэша уровня 2 от системной шины с тем, чтобы избежать перегрузки последней. Системная шина в архитектуре DIB поддерживает одновременное выполнение более чем одной транзакции.

Как и в других сегодняшних микропроцессорах Intel, в Pentium II используется технология 0,35 мкм; он содержит 7,5 млн. транзисторов и имеет тепловыделение порядка 35-40 Вт (вспомните об электрической лампочке!). Необычна упаковка процессора и кэша уровня 2. Вместо корпуса PGA использована технология SEC (Single Edge Contact). Этот пластмассово-металлический картридж, внешне напоминающий черный пенал, содержит в себе плату, на которой монтируются компоненты процессора.

Догнать и перегнать

В таблицах представлены сравнительные характеристики производительности. Напомним, что интегральный индекс iCOMP базируется на данных SPECint_base95, SPECfp_base95, CPUmark32 лаборатории Ziff-Davis, Intel Media Benchmark и теста SYSINFO из комплекта Norton Utilities для Windows 95, "измеряющего" производительность ЦП, кэша уровня 2 и оперативной памяти. Тесты SYSMARK для Windows NT 4.0 включают в себя MS Word 6.0, Excel 5.0, PowerPoint 4.0 и др.

Данные тестов SPECfp95 показывают, что при равных размерах кэша уровня 2 200-мегагерцевый процессор Pentium Pro оказывается быстрее 233-мегагерцевого Pentium II. Вероятно, при равной тактовой частоте Pentium Pro был бы быстрее Pentium II и на тестах SPECint95. Очевидно, это связано с тем, что более высокая тактовая частота кэша уровня 2 в Pentium Pro важнее увеличения емкости кэша уровня 1 в Pentium II. В таблице 2, построенной на основе данных Intel, отсутствуют результаты для Pentium Pro с кэшем емкостью 512 Кбайт.

Таблица 1.
Характеристики микропроцессоров Intel.

Процессор
Тактовая частота
Число транзисторов
Цена в партии 1000 шт., (долл.)
SPEC int95
SPEC fp95
Pentium
200 МГц
3,3 млн
257
5,1
4,18
Pentium/MMX
200 МГц
4,5 млн
492
6,41
4,66
Pentium Pro1
200 МГц
5,5 млн
514
8,2
6,21
Pentium Pro2
200 МГц
5,5 млн
1035
8,58
6,48
Pentium II
233 МГц
7,5 млн
636
9,49
6,43
Pentium II
266 МГц
7,5 млн
775
10,8
6,89
Pentium II
300 МГц
7,5 млн
1981
11,6
7,2

Таблица 2.
Сравнительная производительность процессоров.

Процессор
Тактовая частота
COMP 2.0
SYSMARK NT 4.0
Pentium
200 МГц
142
128
Pentium/MMX
200 МГц
182
150
Pentium Pro1
200 МГц
220
201
Pentium II
233 МГц
267
229
Pentium II
266 МГц
303
252

По данным независимых исследований (http://www.x86.org), при равных тактовых частотах и размере кэша уровня 2 Pentium Pro опережает Pentium II на 32-разрядных тестах. Однако надо иметь в виду, что эти измерения выполнены на "неофициальных" микропроцессорах Pentium II, т. е. до официального объявления о начале поставок.

В любом случае складывается впечатление, что при создании Pentium II Intel в большей степени заботилась о снижении стоимости микропроцессора (благодаря более дешевому кэшу уровня 2), нежели о том, чтобы обогнать быстродействующие RISC-процессоры. Действительно, первые версии Pentium Pro были дороже, чем, скажем, SGI/MIPS R10000. Pentium Pro/200 с 512-килобайтным кэшем также стоит весьма дорого. Ясно, что наличие такого кэша при увеличении тактовой частоты - дорогое удовольствие, да и реализовать высокочастотный кэш сложно. Вероятно, это объясняется отсутствием у Intel намерений увеличить тактовую частоту Pentium Pro, о чем сообщил Иэн Уилсон. А жаль. Умельцы, которые есть не только в нашей стране, поднимали частоту Pentium Pro, в частности, до 233 МГц - и все работало. Это говорит, кстати, о прекрасном качестве и большом неизрасходованном потенциале этих процессоров. (Однако прибегать к такого рода трюкам не рекомендуется - результаты, вообще говоря, непредсказуемы.) В Pentium II встроены средства поддержки мультипроцессирования - до 2 процессоров против 4 в Pentium Pro, поэтому в многопроцессорных системах Pentium Pro предпочтительнее.

Время покажет, на что будут ориентироваться разработчики многопроцессорных систем высшего класса на базе процессоров Intel - выпускаемые версии Pentium II уже опережают Pentium Pro по производительности; да еще могут появиться новый Deschutes и Merced. Какой из этих процессоров - будущий лидер по 32-разрядной производительности?

А пока очевидно, что в Pentium II проще будет увеличивать тактовую частоту. Уже объявлено о поставках Pentium II/300 МГц по цене почти 2 тыс. долл. на третий квартал этого года. По мнению обозревателей, этот шаг является ответом на выпуск AMD К6, претендующего на роль лидерства по производительности, особенно на 16-разрядных приложениях.

Складывается впечатление, что Pentium II - это наступление вширь (ММХ), вперед и даже назад (к более дешевым микропроцессорам). Лозунг "Догнать и перегнать" RISC-процессоры по производительности пока откладывается. Что же касается отношения стоимость/ производительность, здесь у Intel все давно ОК.


Михаил Кузьминский - зав. отделом Института органической химии РАН. С ним можно связаться по телефону: (095) 135-6388.