Десять лет назад на компьютерном рынке происходили знаменательные события, определившие пути развития архитектур вычислительных систем на многие годы вперед
Появление Pentium Pro в 1995 году открыло период бурного роста применений архитектуры x86 в многопроцессорных серверах и корпоративных системах. Сегодня этот процесс приходит к своему логическому завершению: х86‑серверы активно наступают на позиции своих RISC-собратьев

Некоторые из явлений десятилетней давности в развитии архитектур вычислительных систем, носивших переломный характер, событиями назвать можно лишь с большой натяжкой, поскольку временной интервал их осуществления был достаточно длительным. Однако к 1995 году многое окончательно прояснилось, и тенденции превратились в факты. Таких переломов можно указать сразу три.

К середине 90-х годов процессоры Intel x86 приобрели большую популярность, в первую очередь в «настольном» сегменте. Однако появление Pentium Pro в 1995 году открыло период бурного роста применений архитектуры x86 в многопроцессорных серверах, в корпоративных системах, например в области высокопроизводительных приложений. Сегодня этот процесс приходит к своему логическому завершению: х86-серверы активно наступают на позиции своих RISC-собратьев, а кластеры Beowulf (они базируются, как правило, на х86-совместимых процессорах) практически вытеснили суперкомпьютеры традиционных векторных архитектур и «фирменные» массово-параллельные системы.

Процессоры Pentium Pro положили начало новому поколению х86-совместимых микроархитектур. Теперь они обладают CISC-архитектурой только снаружи: на самом деле CISC-команды перекодируются во внутренние микрооперации, которые, по сути, есть RISC-команды. Сегодня таковы все микропроцессоры с архитектурой х86 — как от Intel, так и от AMD. Если забыть про «CISC-наружность», то Pentium Pro — это хороший суперскалярный RISC-микропроцессор с возможностями внеочередного спекулятивного выполнения команд, с переименованием регистров, динамическим предсказанием переходов и другими современными архитектурными особенностями.

Начальная частота у Pentium Pro была — смешно по нынешнему уровню — всего-то 150 МГц, да и содержал он только 5,5 млн. транзисторов (против 230 млн. в сегодняшних Pentium D).

Еще один перелом в середине 90-х годов — победа 64-разрядных RISC-процессоров над 32-разрядными. В 1995 году стало ясно, что 32-разрядные RISC-процессоры — уже вчерашний день (сегодня, десять лет спустя, стало ясно, что 32-разрядные х86-процессоры — тоже уже вчерашний день).

Начало этому положили микропроцессоры DEC Alpha (в 1995 году выпускалось уже второе поколение — Alpha 21164), затем SGI/MIPS R8000. Эти процессоры, разработанные DEC и SGI, кстати, были лидерами по производительности среди микропроцессоров того времени (R8000 — только на задачах с плавающей точкой). В 1995-м именно Alpha, а не х86-процессоры были лидерами по тактовым частотам, которые перевалили за 300 МГц. А в первом 64-разрядном микропроцессоре Alpha 21064 вообще использовался суперконвейерный подход, направленный на повышение частоты — лишь 21164-й стал «настоящим» суперскалярным процессором.

SGI подняла частоту R8000 всего до 90 МГц, что не мешало процессору иметь высокую пиковую производительность — 360 MFLOPS, поскольку за такт выдавалось сразу четыре результата с плавающей точкой. В том же году SGI анонсировала 64-разрядный R10000. В отличие от R8000, состоявшем из двух микросхем, R10000 стал «нормальным» однокристальным микропроцессором (внешний кэш не в счет), то есть стал дешевле и надежнее R8000. Но вот успеха R8000 в смысле производительности он повторить не смог; процессоры Alpha ушли вперед.

Оба этих семейства микропроцессоров, тогдашних лидеров, можно сказать, почили в бозе, не оставив потомства. SGI больше не производит микропроцессоров; сегодняшняя продукция MIPS — совсем другое направление. DEC была дважды поглощена (сначала Compaq, потом, вместе с ней, Hewlett-Packard), а процессоры Alpha не так давно сняты с производства.

Процессоры SPARC-совместимой архитектуры также уже имели 64-разрядный облик: кроме UltraSPARC, в 1995 году были анонсированы микропроцессоры SPARC64 компании Fujitsu. Тогда же начались поставки 64-разрядного микропроцессора IBM/Motorola PowerPC 620. Кроме того, в 1995 году HP объявила о выпуске 64-разрядного семейства PA-8000. Ныне, десять лет спустя, в семействе PA-8000 появился очередной потомок: объявлено о двухъядерном процессоре PA-8900. На этом генеалогическое дерево PA-RISC заканчивается: пользователям предложено переходить на Itanium 2, архитектуру которого принято обозначать термином «пост-RISC».

Однако флаг подхватила IBM — ее Power5, лидер RISC-мира, сегодня опережает Itanium 2 по производительности, по крайней мере на операциях с плавающей точкой. Да и RISC-процессоры от Sun Microsystems могут получить второе дыхание в условиях перехода к многоядерной архитектуре.

Третий перелом 1995 года — появление мощных многопроцессорных RISC-серверов с развитой архитектурой, которые смогли вытеснить векторные мини-суперкомпьютеры (такие, как Cray J90, Convex C4) и — в первую очередь по соотношению стоимость/производительность — отчасти даже большие векторные системы (к примеру, Cray C90 и анонсированный в том же году Cray T90). Векторные мини-суперкомпьютеры прожили больше десяти лет, если считать, что начало им положили в середине 80-х годов матричные процессоры от FPS.

Среди SMP-серверов необходимо упомянуть два — DEC AlphaServer 8200/8400 и SGI Power Challenge. Они, кстати, были построены на микропроцессорах — мировых лидерах производительности, о которых мы уже упоминали: Alpha 21164 и SGI R8000 соответственно. Оба эти сервера имели мощную системную шину, с разделением адресной шины и шины данных, с пропускной способностью более 1 Гбайт/с, допускающую расщепленную обработку транзакций (то есть возможность «одновременной» обработки нескольких транзакций).

В слоты системной шины вставлялись платы трех типов — процессорные, оперативной памяти и ввода/вывода. Этим достигалась возможность независимого наращивания всех трех типов ресурсов. Power Challenge, обладающий большими возможностями масштабирования, имел в конфигурации до 18 процессоров, до 16 Гбайт оперативной памяти и мог поддерживать до 32 SCSI-контроллеров при суммарной пропускной способности ввода/вывода до 1,2 Гбайт/с.

Платы ввода/вывода обеспечивали интерфейс системной шины к внутренним шинам ввода/вывода. Однако в AlphaServer 8x00 последние могли иметь интерфейсы к новой тогда шине PCI. А общее возможное число слотов PCI в этих серверах впечатляет и сегодня — до 108 штук!

Разработчики прямо указывали на своих конкурентов: SGI упоминала, что обгоняет Cray Y-MP, DEC писала о суперкомпьютерном уровне серверов 8400 с 12 процессорами на тестах Linpack в 5 GFLOPS, «характерном» для суперкомпьютеров типа NEC SX-3/22 или массово-параллельных систем CM-200 компании Thinking Machines.

Однако принципиальным ограничением масштабируемости таких SMP-серверов было число слотов (и пропускная способность) системной шины. Более развитая и масштабируемая архитектура серверов с общим полем памяти к 1995 году также была представлена на рынке, это ccNUMA. Системы категории NUMA создавались и раньше, например многопроцессорный сервер BBN Butterfly на базе процессоров семейства Motorola 68K, но достаточно популярными системы ccNUMA стали, пожалуй, именно в 1995 году.

Сonvex SPP1000 появился годом раньше; десять лет назад было осуществлено уже достаточно много поставок и объявлено о новом поколении SPP1200 с микропроцессорами PA-7200. Компания Sequent Computer Systems тогда же представила новые ccNUMA-серверы на базе анонсированных в 1995 году процессоров Pentium Pro. Обе компании для связи SMP-блоков в единую систему с общим полем оперативной памяти применяли технологию кольцевой шины Scalable Coherent Interconnect. Компьютер от Sequent мог масштабироваться до 252 процессоров, Convex SPP1000 — до 32. Недостатком этих серверов по сравнению с конкурентами, разработанными DEC и SGI, было существенное отставание в производительности процессоров.

В наши дни ccNUMA-архитектура применяется не только в сверхбольших по числу процессоров серверах, таких как SGI Altix. Напротив, ccNUMA стала массовой платформой в относительно небольших серверах в связи с ее поддержкой в AMD Opteron. Правда, обеспечение когерентности кэша в таких серверах основано на обычной для SMP-серверов широковещательной рассылке, а не системе «каталогов», характерной для больших ccNUMA-систем.

Сегодня с уверенностью можно сказать, что десять лет назад, произошел «тройной» перелом. Представляется, что сейчас в области компьютерных архитектур мы являемся свидетелями только одного перелома. Это — переход к применению многоядерных микропроцессоров, однако он затрагивает самую массовую платформу, настольные ПК, и по масштабам своих последствий, возможно, сопоставим с тем, что было десять лет назад.