микропроцессора PowerPC 620, и не в том, что произошло слияние архитектурных «линий» Power и PowerPC. Дело в том, какие архитектурные изменения сопровождает переход к Power3. Я постараюсь показать, что выпуск Power3 означает выход IBM на «столбовую дорогу» (то, что американцы называют mainstream), по которой идет большинство разработчиков высокопроизводительных RISC-микропроцессоров.

Одни предшественники Power3 (процессоры семейства Power2) обладают рядом особенностей, резко выделяющих эти микропроцессоры среди конкурентов. Другие (процессоры PowerPC), можно сказать, развивались «в основной струе». Однако они не отличаются особо высокой производительностью и не содержат многих важных архитектурных черт, характерных для наиболее мощных микропроцессоров. В то же время Power3 сохранили некоторые привлекательные черты Power2, выгодно отличавшие их от других процессоров.

Архитектура Power3

Микропроцессоры серии Power прошли путь от многокристальной реализации до 160-мегагерцевых P2SC, реализованных на одной микросхеме. Ясно, что максимальная частота в 160 МГц по нынешним временам наводит скорее на подозрения в низкой производительности. Однако это не так: данные микропроцессоры, как и их предшественники Power2, могут выполнять до четырех операций с плавающей запятой за такт. Благодаря очень высокой емкости первичного кэша (размер первичного кэша данных в P2SC - 128 Кбайт) и традиционно для процессоров этой линии очень высокой пропускной способности системной шины при обмене данными с оперативной памятью P2SC вплоть до самого последнего времени были лидерами производительности на тестах Linpack при N=100.

Высокой производительностью с плавающей запятой отличались и их предшественники, работающие на совсем уж «смешных» тактовых частотах 67-77 МГц, что не мешало им также опережать конкурентов на вышеупомянутых тестах.

При этом P2SC/160 МГц вовсе не имеют вторичного кэша, что не может быть полностью компенсировано высокой пропускной способностью оперативной памяти. Недостатками линии Power/P2SC являются невысокая целочисленная производительность и отсутствие средств поддержки многопроцессорных архитектур. Поэтому SMP-системы производства IBM до сих пор строились на базе менее мощных процессоров PowerPC.

Новые 64-разрядные процессоры Power3, в основу архитектуры которых, по некоторым данным, положены разработки PowerPC 620, имеют существенно более высокую, нежели у P2SC, целочисленную производительность, и в этом смысле лучше сбалансированы. В них также поддерживаются возможности мультипроцессирования. Поэтому Power3, по нашему мнению, следует рассматривать как замену и P2SC, и PowerPC.

Следует подчеркнуть, что Power3 относится к числу суперскалярных RISC-процессоров c внеочередным спекулятивным выполнением команд. Это типично для большинства высокопроизводительных RISC-процессоров: Alpha 21264, HP PA-8x00, Mips R10000; исключением является UltraSPARC.

Power3 способен выполнять до 8 команд за такт, что, похоже, является рекордным показателем. Для сравнения, Alpha 21264 может выполнять до 6 команд за такт. В число этих 8 команд входят 2 команды с плавающей запятой, 2 команды загрузки регистров/записи в память, 2 короткие (в смысле времени выполнения) целочисленные команды, 1 длинная целочисленная команда и 1 команда перехода. Поддерживаемый уровень суперскалярности у обоих микропроцессоров равен 4 командам за такт.

Уникально строение первичного кэша данных этого микропроцессора. Он имеет емкость 64 Кбайт (вдвое меньше, чем у P2SC, но столько же, сколько у Alpha 21264) и длинную строку кэша - 128 байт, что увеличивает производительность при обращении к смежным адресам памяти. В отличие от первичных кэшей в Alpha 21264 и HP PA-8x00, требующих два такта на доступ, Power3 обходится одним тактом. Это вполне объяснимо, поскольку тактовая частота первой версии Power3 не слишком высока - всего 200 МГц.

Удивительно другое: первичный кэш данных в Power3 имеет 8-кратное (!) чередование адресов и является 128-канальным (!!) частично-ассоциативным. Это абсолютный рекорд. Первичный кэш в Power3 за один такт может осуществлять 2 команды загрузки, 1 команду записи в память, 1 команду перезагрузки строки кэша.

Первичный кэш данных является неблокирующимся: до 4 непопаданий в кэш не блокируют его работу. Это лучше, чем в P2SC, хотя и уступает Alpha 21264, где допустимо до 8 таких непопаданий. Емкость первичного кэша инструкций в Power3 такая же, как в P2SC, то есть 32 Кбайт. В кэше инструкций также используется чередование адресов (двукратное), и он является 128-канальным частично-ассоциативным. Кэш инструкций не блокируется при наличии максимум двух непопаданий в кэш.

В отличие от P2SC/160 МГц, Power3 может поддерживать вторичный кэш емкостью от 1 до 16 Мбайт, который находится на выделенной 256-разрядной шине, работающей на частоте 200 МГц. Соответственно пиковая пропускная способность вторичного кэша 6,4 Гбайт/с больше, чем у Alpha 21264 и HP PA-8000. Первой версией Power3 будут комплектоваться двухпроцессорные рабочие станции IBM RS/6000. В них используется вторичный кэш емкостью 4 Мбайт.

Вторичный кэш в Power3 является прямоадресуемым, как и кэш в HP PA-8000/8200. Что, как известно, менее предпочтительно, чем многоканальный частично-ассоциативный кэш, используемый в большинстве других современных RISC-процессоров. Тактовая частота шины кэша в первой версии Power3 не является делителем частоты самого процессора. Оба эти недостатка планируется исправить в последующих версиях Power3.

При общении Power3 с оперативной памятью используется 128-разрядная системная шина, работающая на тактовой частоте 100 МГц, то есть имеющая пиковую пропускную способность 1,6 Гбайт/с. Хотя это ниже, чем у Alpha 21264 и HP PA-8500, тем не менее достаточно высокий показатель, который и способствует сбалансированности пропускной способности архитектурных компонентов Power3.

Power3 содержит 7 функциональных исполнительных устройств: 2 с плавающей запятой (FPU), 3 с фиксированной запятой (FXU) и 2 устройства загрузки регистров/записи в память (L/ST). Каждое из FPU способно выполнять одну команду «умножить и сложить» (a*b+c), то есть 2 FPU выдают 4 результата с плавающей запятой за такт. Соответственно пиковая производительность 200-мегагерцевого варианта Power3 равняется 800 MFLOPS.

Power3 допускает внеочередное спекулятивное выполнение команд, которые перед началом выполнения буферизуются в очередях выдачи (issue queues). Для обеспечения этого режима, кроме 32 регистров с плавающей запятой и 32 целочисленных регистров, в Power3 имеется буфер регистров переименования. Техника переименования регистров применяется и в других процессорах, поддерживающих внеочередное спекулятивное выполнение команд, в том числе R10000 и Alpha 21264.

Еще одна важная особенность Power3 - конвейеры. До запуска команды на выполнение в конвейере проходит всего 3 такта. Соответственно задержка из-за неправильного предсказания перехода равна 3 тактам, что гораздо ниже, чем у конкурентов. Основные операции с плавающей запятой занимают 3-4 такта. Для сравнения, в R10000 время умножения равно трем тактам, в Alpha 21264 - 4 тактам.

Оценки производительности

Как и следовало ожидать, Power3/200 МГц имеет более высокую производительность, чем P2SC/160 МГц. Особенно сильно возросла целочисленная производительность: показатель SPECint95 увеличился почти в полтора раза. Поэтому если ранее линия Power2/P2SC была ориентирована в первую очередь на традиционные научно-технические приложения, то Power3 более универсален и его можно успешно применять, например, в мультимедийных приложениях, где целочисленная производительность также важна. Однако в системе команд Power3 нет прямой поддержки мультимедийных приложений, как в UltraSPARC, Alpha 21264, Pentium II и других микропроцессорах.

Производительность с плавающей запятой в целом в Power3 также возросла по сравнению с P2SC. Это отражается и в более высоком показателе SPECfp95, и в большей пиковой производительности, и в оценках Linpack при N=1000. Если взять Linpack при N=100, то, по оценкам IBM, соответствующие коды приводят к локализации данных в кэше при его емкости около 90 Кбайт, что меньше емкости первичного кэша данных в P2SC, но больше, чем в Power3. Соответственно P2SC опережает Power3 на этих тестах.

Оценки производительности

 P2SCPower3
Частота, МГц160200
SPECint958,6213,2
SPECfp9526,630,1
Пиковая производительность, MFLOPS640800
Linpack, N=100 (MFLOPS)312233
Linpack, N=1000 (MFLOPS)528642
  
Что касается пропускной способности оперативной памяти, то на тестах STREAM RS/6000 mdl 260 показывает 940-1100 Мбайт/с, что является очень высоким результатом и больше, чем у P2SC. Реальные приложения, ориентированные на работу с плавающей запятой, подтверждают преимущества Power3. Так, на известном пакете квантово-химических программ GAMESS Power3 опережает P2SC на 7-39%.

По мнению некоторых экспертов, конкуренцию Merced будут в состоянии составить только Alpha и процессоры IBM. Появление у IBM универсального высокопроизводительного микропроцессора Power3 как раз и может оказаться первым шагом к созданию нового поколения процессоров, способных соперничать с Merced.

Cегодня Power3 еще уступает лидерам - Alpha 21264 и PA8500; производительность Power3 примерно соответствует PA 8200/240 МГц, а иногда и выше, чем у последнего. Однако IBM уже объявила о своих планах по выпуску Power3 с тактовыми частотами до 600 МГц. В 200-мегагерцевом варианте Power3 используется технология IBM CMOS7S; он содержит 15 млн. транзисторов при площади 270 кв. мм, что меньше, чем в Alpha 21264.

Впоследствии IBM обещает перейти к 0,2-микронным производственным процессам с использованием медных межсоединений; при этом частота процессора превысит 300 МГц, а площадь уменьшится до 160 кв. мм. В Power3 второго поколения будет применяться 0,18-микронный процесс (возможно, с привлечением технологии Silicon-on-Insulator) и частоты 500-600 МГц; ожидаемая производительность достигнет 70+/30+ для SPECint95/SPECfp95 соответственно.

По темпам продвижения IBM по этому пути можно будет судить и о перспективах ее борьбы с Merced. Пока же ясно, что приобретать рабочие станции и серверы IBM c операционной системой AIX следует именно на базе Power3.


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