Инженерия — это сочетание научных знаний со знаниями, накопленными эмпирическим путем. Справедливость этого утверждения доказывает пример микропроцессора Power6, анонсированного 21 мая 2007 года. Процессоры, подобные ему, воплощают в себе сплав из новейших изобретений с гигантским опытом разработчиков, аккумулированным ими на протяжении десятилетий

Внимательный взгляд на генеалогию процессора Power6 с неизбежностью подсказывает вывод о том, что он лишь формально является шестым по счету представителем семейства. Если же судить по совокупности «фамильных» характеристик, его следует признать прямым наследником представителя четвертого поколения Power4, а с еще более давними предками (Power1, Power2 и Power3) его роднит только собственно процессорная архитектура Power, то есть система команд. Часть фамильного древа с середины 80-х до конца 90-х годов настолько прихотлива, что в отдельных местах его довольно непросто выстроить. Несмотря на особенности своего происхождения Power6 заслуживает самого пристального внимания, поскольку эволюционное формирование семейных качеств не только дает объяснение многим особенностям Power, но и позволяет прогнозировать его будущее.

Предыстория

Анализ цепочки событий, приведшей в конечном итоге к появлению Power6, возвращает нас в давнюю историю компьютеров, примерно на сорок лет назад. Тогда ведущим стимулом для разработки мощных компьютеров была гонка вооружений, а самым главным приложением — расчеты, связанные с созданием ядерного и термоядерного оружия. И вот в ту пору высшее руководство корпорации IBM пришло к неутешительному для себя выводу. Оказалось, что при колоссальных успехах в области автоматизации бизнеса, в части научных приложений корпорация заметно уступает другим производителям компьютеров — и прежде всего, своему основному конкуренту, компании Control Data Corporation (CDC). Впрочем, отставание было вполне закономерным: лидирующее положение CDC в области физических расчетов в немалой степени обеспечивалось тем, что своими корнями она уходила в отделение «научных вычислений» компании UNIVAC, первой начавшей производить серийные компьютеры. И еще конечно же тем, что на протяжении более десятилетия разработками в CDC руководил сам Сеймур Крей, основатель исследовательской лаборатории CDC в Чиппеа, впоследствии возглавивший одноименную знаменитую суперкомпьютерную компанию. Стоит заметить, что к созданию суперкомпьютеров Крея, кроме всего прочего, подталкивал патологический страх ядерной угрозы; он был заражен этой болезнью, распространенной в Америке в годы холодной войны. Особенно успешными оказались его выдающиеся для своего времени творения — модели 6800 и 7600. Может показаться странным, но этот успех дался CDC дорогой ценой; затраты на разработку этих систем оказались столь велики, что, став эталоном для всего компьютерного мира, они поставили компанию на грань банкротства.

А ведь компьютерные системы — это, прежде всего, бизнес. Поэтому и производство суперкомпьютеров необходимо было устроить так, чтобы сделать его прибыльным. В понимании этой простой истины от имени тогдашнего президента IBM Томаса Уотсона-младшего был подготовлен специальный доклад, в котором было очерчено текущее положение дел и поставлена задача: IBM должна преодолеть отставание и выйти в лидеры.

Для такой постановки глобальной задачи имелись веские основания. Еще до появления доклада, в 1961 году, независимо друг от друга в IBM стартовали два перспективных проекта. Один из них, названный Project X, хорошо известен. Не отличаясь особой революционностью, этот проект был наделен прагматичностью. Project X был нацелен на создание высокопроизводительных компьютеров без чрезмерных усилий, опираясь на возможности уже существующих компьютеров семейств IBM System/360. Показательно, что проект разрабатывался не в исследовательских центрах, а непосредственно на заводе в Пэкиси, и его детищами стали несколько вполне практичных моделей. Одной из них была Model 91; в отличие от известных машин делового назначения она комплектовалась процессором с плавающей точкой и могла выполнять команды с изменением их очередности (out-of-order). Позже были созданы Model 92 и Model 95. Локальных усовершенствований оказалось достаточно для того, чтобы в результате работ по проекту Project X удалось поднять производительность в 10-30 раз по сравнению со Stretch (IBM 7030), до того самым мощным компьютером, использовавшимся в ведущих американских ядерных лабораториях.

В отличие от Project X второй проект, Project Y, разрабатывался в исследовательском центре IBM Watson Research и был намного более амбициозен. Задачей разработчиков Project Y было ускорение компьютеров не в десятки, а в сотни и даже тысячи раз. Проектируемые ими компьютерные системы должны были обеспечить максимально возможную производительность. Для этого вещественные числа в ней представлялись с двойной точностью (то есть 96 разрядов); это позволяло использовать систему для научных вычислений в национальных ядерных лабораториях. Специально созданную группу из пятидесяти инженеров назвали IBM Advanced Computing Systems (ACS); ее возглавил Джон Кок, один из ведущих разработчиков Stretch. Под собранный из разных подразделений «боевой отряд» создали отдельный центр, разместив его, что показательно, в непосредственной близости от Стэндфордского университета. Начало работ по Project Y было многообещающим, но в последующем судьба отказала проектируемому компьютеру ACS-1 в благосклонности. Решающим аргументом против дальнейшего развертывания проекта Project Y оказалась изначальная несовместимость ACS-1 с мэйнфреймами. Кок отчасти повторил ошибку Крея и не позаботился о том, чтобы компьютер был экономически оправданным. Много лет спустя эффективность предложенного им решения была подтверждена практикой, но тогда, в конце 60-х годов оно было слишком дорогим, и в итоге оригинальный замысел был нарушен, а группа расформирована. В качестве «конкурсного управляющего» к разработке компьютера, символически переименованного в AS/360, подключился один из авторов System/360, Джин Амдал. Ему удалось построить несколько высокопроизводительных моделей System/370, но это совершенно иная и с определенного момента довольно скандальная история, связанная с уходом Амдала из IBM и последующими взаимными патентными претензиями. А оставшиеся в живых члены группы IBM ACS хранят грустную память о недоделанной работе; не случайно их сайт назван симптоматично: «IBM Advanced Computing Systems (ACS), 1961 — 1969».

Проект ACS-1 так и остался на бумаге, но по его ходу было сделано множество интересных изобретений, получено немало патентов. Добытые знания и опыт заметно опередили свое время, и они оказались востребованы в последующем, когда после некоторого затишья Джон Кок сумел найти выход из положения и продолжить начатое. Ему повезло, в середине 70-х годов IBM потребовался специализированный компьютер для коммутации телефонных цепей, и Кок снова возглавил группу разработчиков. Однако теперь он не шел напролом, а проанализировал то, как выполняются инструкции в мэйнфреймах, как работают компиляторы, и, суммировав багаж знаний, накопленных при работе над ACS, предложил идею процессора с альтернативной архитектурой, вошедшего в историю как «проект 801». Позже процессорные архитектуры такого типа стали именовать RISC, причем, и это признано всеми, Джон Кок предложил свое решение на несколько лет раньше, чем два университетских профессора Джон Хеннесси и Дэйв Паттерсон, пришедшие к близкой по смыслу идее независимо от него и друг от друга. Они-то и ввели в обиход термин RISC. И хотя проект 801 (кстати, его назвали так по номеру дома, в котором велась работа) точно так же, как ACS, остался бумажным, он лег в основу следующего, на этот раз по-настоящему продуктивного проекта America.

В проекте America совместилось все лучшее из 801 и ACS, и на его основе в лаборатории IBM в Остине удалось разработать промышленный вариант суперскалярного RISC-процессорa, который назвали ROMP (Research Office products division Micro Processor). В 1986 году на базе этого процессора была построена первая в истории IBM рабочая станция, действующая под управлением Unix, она получила название IBM RT PC (RISC Technology Personal Computer). Это действительно был первый компьютер от IBM, в котором использовался RISC-процессор и который работал под управлением операционной системы Advanced Interactive Executive (AIX). Процессор ROMP сначала был 24-разрядным, а позже 32-разрядным.

Компьютер IBM RT PC задумывался как альтернатива IBM PC AT, однако получился не слишком производительным и довольно дорогим, в среднем он стоил 20 тыс. долл., из-за чего вскоре из названия PC убрали, осталось просто IBM RT. К тому же по причине отсутствия готовых программных пакетов область применения данного компьютера оказалась ограничена; IBM RT в основном использовался в системах автоматизированного проектирования и подготовки производства. Еще одна проблема, связанная с IBM RT, возникла потому, что для него была выбрана слишком сложная операционная система; она опережала время, поскольку допускала, к примеру, виртуализацию в том виде, как мы ее сегодня себе представляем, но была непрактична в работе. В итоге сложилась парадоксальная ситуация: имея колоссальное преимущество на старте, IBM уступила двум новым лидерам, компаниям Sun Microsystems и Apollo Computers, принявшим при создании своих рабочих станций более простые, но практичные решения.

Рождение Power

Впервые слово power, чаще всего переводимое как «могущество», «мощность», «производительность», в качестве названия для процессоров появилось в 1990 году. Тогда же были выпущены первые компьютеры, построенные по архитектуре POWER (Performance Optimization With Enhanced RISC); они получили название RISC System/6000, или RS/6000. Новое семейство компьютеров делилось на два тогда еще родственных класса — серверы POWERserver и рабочие станции POWERstation (в начале 90-х различия между серверами и рабочими станциями были незначительными, скорее количественными, чем качественными). Используемый в RS/6000 процессор сначала назывался RIOS или RIOS I, позже его переименовали в Power1. На первых порах процессор состоял из 11 микросхем. Версия Power, выполненная на одном чипе, появилась несколько позже, в 1992 году; она называлась RSC (RISC Single Chip) и предназначалась только для младших членов семейства RS/6000. Сегодня смешно сказать, она насчитывала всего около 1 млн. транзисторов. Следующий процессор, Power2, выпускавшийся с 1993 года, был прямым преемником Power1, но отличался расширенной системой команд для выполнения арифметических операций и мог работать со словом учетверенной длины. В течение первых лет он тоже был многочипным, и только с 1996 года Power2 в версии P2SC (Power2 Super Chip) был переведен на один кристалл. В 1998 году IBM выпустила процессор Power3, имевший 64-разрядную систему команд и увеличенное количество регистров для выполнения арифметических операций.

На этом прямое династическое наследование линейки Power прервалось (Power3 был последним процессором, в котором была реализована архитектура Performance Optimization With Enhanced RISC), и началось «смутное время», закончившееся с появлением Power4. Работы, связанные с развитием архитектуры Power, разделились на несколько потоков. На протяжении пяти-семи лет возникало и исчезало множество различных, порой противоречащих друг другу проектов. Сосуществовали компьютеры на процессорах Power3, на PowerPC, на модификациях, получивших название RS64-* и т.д.

PowerPC

Наработки в области RISC-процессоров подтолкнули IBM к мысли о том, что есть полный резон создать процессорную линейку, с помощью которой можно было бы вступить в единоборство с монополией Wintel. С одной стороны, господство архитектуры x86 в персональных компьютерах, на тот момент представленной моделями 80386 и 80486, было так велико, что возникало желание его нарушить, но, с другой стороны, не настолько, чтобы это казалось неподъемным делом. С появлением Pentium подобная задача стала выглядеть невыполнимой (только AMD удалось чудо; собрав уникальный коллектив специалистов, она смогла найти альтернативный подход). А в 1991 году задача создания «альтернативного ПК» выглядела решаемой. С целью его разработки был основан консорциум Apple-IBM-Motorola (AIM). В этом компьютере должна была использоваться адаптированная версия Power; ее так и назвали PowerPC, где PC расшифровывали одновременно и как Performance Computing.

Казалось, в тройственном союзе выигрывают все, но компьютерная история распорядилась иначе. Motorola после исключительно успешного процессора 68000 с процессором 88000 явно уступала свои позиции. Переход на PowerPC давал ей возможность выйти на компьютерный рынок; старая радиотехническая компания предпринимала в те годы для этого колоссальные усилия, в основном сосредоточенные на серверах. Ее инженеры спроектировали очень удачные конструкции, например, серверы PowerStack оказались предшественниками стоечных конструкций, наращивание в них осуществлялось наложением модулей друг на друга в виде физического стека. Системы PowerStack были признаны самыми красивыми компьютерами и стали экспонатами одного из музеев дизайна. Однако «старая добрая» Motorola осталась аппаратной компанией, она так и не смогла обеспечить своим компьютерам необходимую программную поддержку. Удача отвернулась и от IBM, она имела полный спектр «десктопов» на PowerPC, но не оправдался расчет на Microsoft Windows NT, выпуск этой операционной системы задержался на несколько лет, собственная же попытка адаптировать OS/2 к архитектуре PowerPC тоже не принесла заметного успеха. И только компания Apple всерьез выиграла от создания AIM, хотя недавно она отдала предпочтение процессорам Intel.

Первым серийным процессором семейства PowerPC стал процессор 601, выпущенный в 1992 году; он оказался гибридом спецификаций Power1 и PowerPC. Предполагалось, что для IBM он должен стать переходной моделью, прежде чем перейти на PowerPC в чистом виде. В 1994 году Apple выпустила Power Macintosh на базе PowerPC 601, значительно переработав операционную систему Mac OS и создав эмуляторы 680x0, позволяющие выполнять унаследованные приложения. Затем был выпущен процессор начального уровня PowerPC 603 и высокоуровневый PowerPC 604. Большие надежды возлагались на процессор PowerPC 615, который по замыслу должен был иметь два набора команд, собственный, PowerPC, и x86; но он так и не появился на свет. Первым 64-разрядным членом семейства стал PowerPC 620.

По результатам тестов PowerPC превосходили существовавшие на тот момент процессоры x86, поэтому другие производители к ним отнеслись вполне серьезно. К примеру, Microsoft выпустила Windows NT 3.51 для серверов Motorola PowerPC, а Sun Microsystems предложила соответствующую версию операционной системы Solaris OS. Но они не попали в «мэйнстрим»: им недоставало готовых приложений, кроме того, широкое клонирование IBM PC и ценовой демпинг, особенно со стороны таких компаний, как Compaq и Dell, убили идею «другого» массового ПК на корню.

Последним членом семейства PowerPC, успешно применяемым в универсальных компьютерах, стал процессор PowerPC 970, представленный в 2002 году, и его многочисленные варианты. Apple использовала его в компьютерах Power Mac G5, по сложившейся традиции назвав этот процессор по соответствующему поколению; PowerPC 970 — это Generation 5. С ноября 2003 года IBM устанавливает PowerPC 970 в BladeCenter JS20. Эти процессоры отличает низкое энергопотребление; PowerPC 970FX при работе на частоте 1 ГГц выделяет всего 11 ватт, а на частоте 2 ГГц — 48 ватт. В конце 2005 года IBM выпустила двухъядерный процессор PowerPC 970MP.

Еще одним итогом программы Power Performance Computing стала стандартизация 32- и 64-разрядных архитектур PowerPC.

Power и AS/400

Эпопея, связанная с PowerPC, не дала ожидаемых результатов. Многие предвосхищения и надежды не оправдались, но в середине 90-х годов, особенно с появлением 64-разрядной архитектуры и процессора PowerPC 620, казалось, что именно эти процессоры станут основой всей производственной программы IBM. Именно тогда стартовал и проект PowerPC-AS; этот процессор, как следует из названия, предназначался для использования в бизнес-сервере AS/400. Его материализация была далеко не простой, поскольку изначально собственная архитектура процессора AS/400, называемая Internal Microprogrammed Interface (IMPI), была привязана к машинам System/38 и System/36, послужившим основой для систем AS/400, разработанным еще в далекие 70-е годы. Спустя двадцать лет стало ясно, что возможностей IMPI для поддержки современных языков программирования, хранилищ данных и других приложений недостаточно. В то же время из-за имеющегося багажа унаследованных приложений просто заменить одну архитектуру другой было невозможно, и тогда в качестве паллиатива родился проект Amazon. По своему замыслу он должен был завершиться созданием процессора, совмещающего две архитектуры, — PowerPC и IMPI. Минуя бесконечные, но малозначащие для пользователей детали, можно сказать, что Amazon, переродившись в проект Apache, в конечном итоге позволил создать промышленный микропроцессор PowerPC-AS, совместивший в себе три архитектуры — 32-разрядный и 64-разрядный вариант PowerPC, а также измененную архитектуру IMPI (ее стали называть архитектурой 64-bit Amazon). Этот же процессор использовался не только в AS/400, но и в некоторых моделях RS/6000 (правда, там его называли RS64-I или RS64-II; были еще и RS64-III, и RS64-IV). Описанные процессы конвергенции постоянно увеличивали число команд в архитектуре. Изначально 32-разрядный PowerPC имел 187 команд, расширение до 64 разрядов добавило 41 команду, а согласование с IMPI привело к тому, что число команд увеличилось до 253.

Дальше оставалось сделать вполне логичный шаг — добавить еще оригинальные команды Power, довести число команд до 353 и получить универсальный процессор, перекрывающий все архитектуры, кроме мэйнфремов. И такой шаг был сделан, когда в 1996 году началась работа над «сверхпроцессором» GigaProcessor. В 2001 году он увидел свет под именем Power4, который объединял в себе поддержку пяти типов архитектур: 64-разрядную Amazon, 64-разрядную PowerPC, 32-разрядную PowerPC, 64-разрядную Power, 32-разрядную Power.

Проект ECLipz

Из разных источников известно, что примерно с 2001 года в IBM реализуется не слишком скрываемый проект, и скорее даже не проект, а долговременная стратегия ECLipz. Многочисленные «утечки» придают уверенность в том, что ECLipz — не мистификация. Из ставших достоянием гласности сведений можно сделать вывод, что целью проекта является унификация трех основных серверных платформ корпорации (вне зоны действия ECLipz остаются стандартные серверы System x на основе процессоров Intel и AMD). Говорят, что название ECLipz является акронимом от Enhanced Core Logic for iSeries, pSeries, and z Series (то есть «усовершенствованная логика ядра для серверов iSeries, pSeries и z Series»).

Иногда представление о возможной унификации сводят только к процессорам; поэтому до выпуска Power6 ходили слухи, что он будет использован и в мэйнфреймах z9, входящих в семейство Series z. Но этого не произошло; как и Power5, этот процессор применяется только в Series I и Series p, поскольку на пути к конвергенции с мэйнфреймами есть целый ряд трудно решаемых проблем. Методами эмуляции системы команд CISC на RISC-процессоре трудно обеспечить высокую производительность и совместимость с сопроцессорами System Assist Processor, использующими шестнадцатеричную арифметику с плавающей точкой и десятичную арифметику. Можно считать реализацию десятичной арифметики в Power6 шагом по направлению к мэйнфреймам; но, пожалуй, в программе ECLipz существеннее другое. Очевидно, не процессорами едиными можно добиться унификации. Современные Unix-серверы по многим показателям приближаются к мэйнфреймам, их даже стали называть «мидфреймами». Поэтому, по некоторым данным, к 2010 году унификации подвергнутся до 75% конструктивов, от шасси до памяти. Тогда семейства Series p и Series z будут различаться лишь установленными в них процессорами.

Параллельные системы

Несмотря на то что требования бизнеса решающим образом повлияли на формирование современного облика Power, нельзя забывать о том, что Project Y задумывался для высокопроизводительных вычислений, и эта задача никогда не исчезала из поля зрения разработчиков. В 1993 году в IBM предложили систему Scalable POWERparallel System, представлявшую собой многопроцессорный суперкомпьютер с использованием технологий RS/6000.

Это был промежуточный финиш гонки, начавшейся с ACS-1 и проекта 801, и одновременно старт нового этапа. Спустя год была выпущена система Scalable POWERparallel System SP2, которая была способна выполнять 136 млрд. операций в секунду. Один из самых мощных экземпляров SP2 был установлен в европейском ядерном центре ЦЕРН.

В 1997 году началась рекламная шахматная эпопея с участием Гарри Каспарова, против него под именем Deep Blue выступала 32-узловая конфигурация RS/6000, в которой использовался 32-разрядный Power2 Super Chip (P2SC). В 1998 году в Ливерморскую национальную лабораторию был поставлен Blue Pacific, состоящий из 178 узлов на PowerPC 604, способный выполнять 4 трлн. операций в секунду. В 1999 году стартовал проект по созданию петафлопных систем BlueGene. Сегодня этот компьютер возглавляет список наиболее мощных компьютеров.

Однако мир за последние десятилетия заметно изменился, поэтому наиболее ярким событием из жизни Power, ознаменовавшим наступление нового века, стало создание сервера eServer p690 на процессоре Power4, известного как проект Regatta. В нем впервые оказались совмещены достижения новейших микропроцессорных технологий с проверенными временем технологиями мэйнфреймов.

Power6

Процессор Power6 будет выпускаться на заводе, расположенном в Восточном Фишкилле, одном из самых современных полупроводниковых производств. Формально новый процессор характеризуют следующие цифры: максимальная тактовая частота — 4,7 ГГц; количество транзисторов — более 790 млн.; площадь — 341 кв. мм. Процессоры будут изготавливаться с использованием 65-нанометрового технологического процесса, технологии «кремний на изоляторе» (Silicon on Insulator, SoI) и медных десятиуровневых соединений.

У процессора два суперскалярных ядра с поддержкой «одновременной многопотоковости» (Simultaneous Multithreading, SMT). Каждое ядро включает в себя два арифметических целочисленных устройства, два арифметических устройства с плавающей точкой и одно устройство для десятичной арифметики. Система команд Power6 дополнена 50 новыми командами для выполнения десятичных операций и операций перевода из десятичной системы в двоичную и обратно. Процессор снабжен кэш-памятью второго уровня на 8 Мбайт. Предусмотрена поддержка общей для обоих ядер кэш-памяти третьего уровня емкостью до 32 Мбайт, двух контроллеров памяти, а также двухуровневого коммутатора SMP (Symmetric Multiprocessing). Процессор поддерживает наборы команд AltiVec (операции с плавающей точкой, выполняемые в режиме SIMD) и векторные операции ViVA-2 (Virtual Vector Architecture).

Рис. 1. Конвейер Power6
Особо стоит отметить достижения, связанные с уменьшением энергопотребления. При удвоении производительности по сравнению с Power5 за счет того, что частота увеличилась вдвое, а длину конвейера (показатель, определяющий супескалярность) удалось оставить прежней, рассеиваемая мощность осталась прежней. Теперь на те же киловатты можно выполнить либо вдвое больше работы, либо, сохраняя объем работы, вдвое сократить расход энергии. Кроме того, выделение тепла уменьшается возможностями технологии EnergyScale, позволяющей снижать частоту, а в отсутствии нагрузки переходить в режим «дремы» (nap).

Снижение энергетических потерь превратилось в одно из ключевых направлений научно-исследовательских работ IBM. Корпорация намеревается вкладывать по 1 млрд. долл. в проект Project Big Green ежегодно с тем, чтобы к 2010 году уменьшить общее потребление центров обработки данных вдвое. Для этого будет осуществляться комплексная программа, включающая в себя совершенствование не только аппаратного, но и программного обеспечения и сервисов. Частью проекта является программа IBM Virtualize; она обеспечит выполнение тех же задач на меньшем числе серверов за счет миграции приложений и освобождения неиспользуемых компьютеров. Конструкция процессора Power6 адаптирована к такого рода задачам, у процессора очень высокая пропускная способность каналов, кроме того, он поддерживает функцию Live Partition Mobility, которая будет реализована в следующей редакции операционной системы IBM AIX (ее выпуск намечен на осень).

Из рис. 2 видно, что Power6 обладает выдающимися показателями по скоростям обмена с памятью, кэш-памятью, обмена данными между процессорами и периферийными устройствами. Высокая скорость обмена открывает этому процессору большие перспективы при создании многопроцессорных конфигураций (в том числе SMP-систем и кластеров, состоящих из серверов-лезвий), делая построенные из них серверы удобными для создания энергосберегающих центров обработки данных. Благодаря высокой скорости удается оптимальным образом балансировать нагрузку и высвобождать избыточные мощности.

Рис. 3. Варианты соединения процессоров Power6
Но не только ускорение обмена отличает Power6 от Power5: не меньшее значение имеет организация соединений между процессорами в сервере. На рис. 3, а показано, как 32 разъема восьми четырехпроцессорных сборок, так называемых «квадов», обеспечивают структуру, где связанными являются две или три соседних сборки. На рис. 3, б представлена структура, которую можно реализовать на процессоре Power6 с использованием двух контроллеров памяти, здесь каждая сборка связана с каждой. Кроме того, существует возможность для создания двухуровневой многопроцессорной архитектуры (рис. 3, в).

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