Поверь
АрхивДесять-пятнадцать лет назад RISC-процессоры фирм MIPS, Sun, Hewlett-Packard, а также более новые архитектуры — DEC Alpha и IBM POWER — обгоняли процессоры Intel в разы.
«Все мы — и IBM, и Motorola — твердо уверены, что архитектура PowerPC очень перспективна».
Нэнси Имз
«Что было, то и будет… и нет ничего нового под солнцем».
Екклесиаст
Рождение PowerPC
Десять-пятнадцать лет назад RISC-процессоры фирм MIPS, Sun, Hewlett-Packard, а также более новые архитектуры — DEC Alpha и IBM POWER — обгоняли процессоры Intel в разы. Казалось, что архитектура IA-32 (х86) обречена, а будущее целиком и полностью принадлежит RISC-чипам. Правда, выпущенный в 1993 году Pentium довольно близко подобрался к RISC-процессорам в целочисленных тестах, но отставание в вычислениях с плавающей точкой по-прежнему было огромным. Почему же высокопроизводительные RISC-процессоры при такой разнице в производительности не нашли применения в ПК? Для этого были очень веские причины.
- Несовместимость наборов инструкций (ISA). RISC-процессоры обладают несовместимыми с х86 наборами инструкций, поэтому единственным способом исполнения кода х86 была эмуляция. Тогда (впрочем, как и сейчас) эмуляция означала падение производительности от десятков до сотен процентов, что сводило на нет скоростные преимущества RISC-процессоров. Некоторые фирмы выделяли значительные ресурсы на создание эффективных эмуляторов (например, FX!32 для процессоров DEC Alpha), но скорость их работы все же была неудовлетворительной.
- Программное обеспечение. Традиционной операционной системой для ПК была DOS, под которую написано огромное количество популярных и хорошо знакомых пользователям программ. В дальнейшем к DOS присоединились 16-битные версии Microsoft Windows. Различные RISC-платформы обычно использовали несовместимые между собой разновидности Unix, для которых существовало значительно меньше программ, главным образом научно-технических (для рабочих станций) либо сетевых приложений (для серверов).
- Дороговизна RISC-процессоров и систем на их основе. Хотя первоначальная «идея RISC» подразумевала упрощение процессора за счет уменьшения числа команд и их фиксированной длины, реальные RISC-чипы начала 90-х обычно были крупнее и дороже, чем процессоры Intel. Более того, среди них встречались даже целые наборы из микросхем (IBM POWER), поскольку полупроводниковые технологии тех времен не позволяли разместить на одном кристалле столько транзисторов, сколько требовалось. К тому же шина данных этих процессоров частенько была шириной 128 или даже 256 бит (сравним с 32 битами у i486 и 64 битами у Pentium), что означало усложнение чипсета и системной платы. RISC-процессоры предназначались для рабочих станций стоимостью десятки тысяч долларов, поэтому разработчики могли применять схемотехнические решения, слишком дорогие для использования в ПК. Но даже специальные, «дешевые» варианты RISC-компьютеров стоили гораздо дороже сравнимых с ними Intel-ПК по причине малых объемов производства.
- Отсутствие интереса у самих производителей RISC-систем. Многие «серьезные» фирмы вроде DEC или Sun полагали, что нет нужды удешевлять свои RISC-станции, потому что пользователи все равно выберут их системы из-за очевидных технических преимуществ.
Тем не менее, идея создать недорогой, но мощный RISC-процессор и платформу для него буквально витала в воздухе. В идеале пользователи получили бы высокопроизводительный процессор, масштабируемую платформу, лишенную архаичного наследия IBM PC (вроде шины ISA), способность работать с широким спектром многозадачных операционных систем — Unix, Mac OS, OS/2 (в перспективе Windows NT) — и все эти прелести за цену обычного PC. Производителю новых процессоров досталась бы львиная доля громадного рынка процессоров для ПК (Intel пришлось бы стать достоянием истории), а компании, продающие компьютеры с RISC-процессорами, смогли бы потеснить традиционных партнеров Intel — таких как Dell и Compaq. Видимо, подобными соображениями руководствовались Apple, Motorola и IBM, когда в 1991 году основали альянс PowerPC (AIM Alliance, по первым буквам входящих в альянс фирм). Целью этой организации была разработка стандартов на процессоры PowerPC (так назвали новорожденную RISC-архитектуру) и платформ для них. После трех лет работы на свет появилась спецификация PowerPC Platform (PPCP) — детальное описание аппаратных и программных средств новой платформы. Спецификация включала в себя описание драйверов устройств, firmware, сервисов абстракции времени исполнения и уровней абстракции аппаратуры. Теперь каждый желающий мог создавать компьютеры с процессорами PowerPC, разрабатывать периферийные устройства для этой платформы и портировать операционные системы. За основу был взят набор команд RISC-архитектуры IBM POWER, и первым процессором, созданным усилиями альянса, стал 32-разрядный PowerPC 601 — по сути, выполненный на одном кристалле IBM POWER1.
Выпущенный почти одновременно с Intel Pentium (1993 год), он выглядел неплохо — на частоте 66 МГц опережал процессор Intel в тесте SPECfp92 на 26% и уступал 4% в SPECint92. При этом тепловыделение PowerPC было вдвое ниже, а площадь кристалла — в 2,2 раза меньше, чем у Intel Pentium (оба процессора изготавливались по 0,6-мкм технологическому процессу). За PowerPC 601 последовали PowerPC 603 и 603e, PowerPC 604… G3, G4. До появления архитектуры Intel NetBurst процессоры PowerPC почти всегда превосходили чипы Intel в скорости вычислений с плавающей точкой на десятки процентов, при этом рассеивая намного меньшую мощность. Почему же «RISC-революция» не состоялась, а процессоров Intel сегодня продается в десятки раз больше, чем PowerPC?
«Слишком дорогие и слишком медленные»
Промедление в IT смерти подобно, но альянс PowerPC не слишком торопился с выводом новых машин на рынок. Самая быстрая реакция оказалась у Apple — ее настольные компьютеры и ноутбуки почти сразу были переведены с умирающей линейки процессоров Motorola 680x0 на PowerPC. Mac OS, а также значительное число программ для этой операционной системы были оперативно портированы на платформу PowerPC. В течение довольно продолжительного времени единственными доступными ПК с процессорами PowerPC были только компьютеры Apple.
IBM очень долго разрабатывала версию OS/2 для PowerPC, из-за чего слишком затянула с выпуском этих машин. Системы IBM, Motorola и немногих фирм-производителей клонов в основном работали под управлением Windows NT, хотя в то время, когда они появились на рынке (1995 год), были доступны Linux и некоторые версии Unix, включая IBM AIX. Основной проблемой машин на PowerPC была высокая стоимость — хотя процессоры, на которых они работали, зачастую были дешевле, чем конкурирующие с ними чипы Intel. Трудность заключалась в узком рынке комплектующих — небольшие объемы производства приводили к тому, что цены на машины PowerPC были на 30–50% выше, чем у аналогичных компьютеров с процессорами Intel. Кроме того, компьютеры PowerPC, как правило, работали гораздо медленнее машин с процессорами Pentium в приложениях вроде Microsoft Office — причем нередко отставание составляло десятки и сотни процентов (видимо, вследствие плохой оптимизации). Большинству потенциальных покупателей PowerPC было трудно объяснить, зачем они должны покупать машины, осуществляющие, скажем, проверку правописания в Word вдвое медленнее, чем более дешевые компьютеры Intel.
Суперскалярность, внеочередное исполнение команд, переименование регистров — эти техники использовали как разработчики RISC-процессоров, так и х86 (Intel, AMD), и разница в производительности между PowerPC и x86 стремительно сокращалась. Больше того, оказалось, что ISA x86 может быть «оперативно» и весьма эффективно расширена путем введения дополнительных наборов инструкций — MMX, 3DNow!, SSE, SSE2, при этом сохраняя совместимость с ранними процессорами и гигантским количеством скомпилированных для x86 программ. Открытая архитектура PowerPC как конкурент IA-32 (x86) погибла, не успев расцвести, — уже в 1996 году IBM заявила, что будет использовать вместо PowerPC процессоры Intel в своих высокопроизводительных ПК. В 1998 году из всех крупных поставщиков компьютеров с процессорами PowerPC осталась лишь Apple, и в Microsoft посчитали ненужным создавать версии Windows NT 5.0 (2000) для этой платформы. Фактически это было подтверждением провала PowerPC и срыва амбициозных планов альянса AIM. Но хотя процессоры PowerPC и потерпели поражение в схватке с продуктами Intel и AMD, для них нашлись другие применения.
Процессоры не для компьютеров
Когда дым над полем боя рассеялся и корпорации посчитали убытки (1996–97 гг.), оказалось, что архитектура PowerPC может с успехом применяться на рынке встраиваемых процессоров (embedded processors) — своеобразном «кладбище» для некогда быстрых CPU. Под этим термином скрывается широкий класс вычислительных устройств, предназначенных для управления разного рода аппаратурой, не относящейся к компьютерам в обычном понимании этого слова. Встраиваемые процессоры используются в сетевых маршрутизаторах, промышленных роботах и установках, цифровых видеокамерах, плейерах и т. д. Обычно это сравнительно медленные процессоры с небольшим энергопотреблением, часто интегрированные с контроллером памяти и другими интерфейсами. Motorola и IBM активно действуют на этом рынке, предлагая широкий спектр процессоров, в том числе версии популярных в свое время PowerPC 603 и 604. Самый быстрый PowerPC от IBM — PowerPC 750FX 1 ГГц с рассеиваемой мощностью 5,6 Вт, разработанный для рынка встроенных процессоров, откровенно слаб для настольных компьютеров. Motorola никогда не бросала Apple на произвол судьбы, и ее самый быстрый 0,13-мкм MPC7455 1,42 ГГц (G4) применяется во флагманских Apple PowerMac. Процессоры G4 в свое время успешно конкурировали с Pentium III, но сегодня они выглядят архаично. Apple использует все возможности G4, чтобы продолжить борьбу с Wintel-ПК — PowerMac стандартно оснащаются двумя процессорами и двухмегабайтным кэшем третьего уровня DDR SRAM, — однако результат не впечатляет. Да, эти компьютеры способны оторваться от Pentium 4 при выполнении некоторых, специально оптимизированных фильтров Photoshop, но вы нигде не найдете официальных результатов таких общепринятых процессорных тестов, как SPEC CPU, потому что они разгромны. В очень многих случаях Apple PowerMac значительно уступают машинам с процессорами Intel/AMD, в частности в интенсивных вычислениях с плавающей точкой, в том числе рендеринге и играх. Возникают серьезные сомнения в способности Motorola выдерживать темп процессорной гонки, заданный Intel. Разговоры о «суперпроцессоре» G5 идут уже почти два года, однако уже ясно, что ожидать его появления в этом году не стоит. Пока Motorola готовится к выпуску очередной ревизии G4, IBM собирается взорвать сонное царство PowerPC своим 64-разрядным процессором PowerPC 970, начало поставок которого ожидается в третьем квартале текущего года.
PowerPC 970: первый взгляд
Неудивительно, что инициатива в создании высокопроизводительного PowerPC-процессора исходит именно от IBM. В отличие от Motorola, все больше переходящей на аутсорсинг, IBM очень серьезно относится к полупроводниковым технологиям, постоянно ведя исследовательские работы, и располагает фабрикой с одним из лучших в индустрии технологическим процессом — 300 кв. мм пластины, 0,13 мкм, SOI, медные соединения, low-k-диэлектрики (Ист-Фишкилл, штат Нью-Йорк). IBM как бы представляет собой IT-индустрию в миниатюре — в компании производятся процессоры, собираются компьютеры, пишется ПО и в итоге все вместе продается в виде законченных решений, среди которых можно выбрать подходящие для решения почти любых задач. Когда IBM может сама производить требуемый для ее машин процессор, она обычно так и поступает, а не заказывает его у других фирм. Долгие годы IBM совершенствовала архитектуру POWER и теперь пожинает плоды — 0,13-микронный POWER4+ с частотой 1,7 ГГц значительно обгоняет в тестах SPEC CPU2000 любой другой процессор, включая Itanium 2 и Alpha 21364, не говоря уже о таких «букашках», как Pentium 4, Xeon или Opteron. Двухъядерный монстр применяется в серверах с общим числом процессоров до 32 (pSeries, iSeries), а также рабочих станциях IntelliStation POWER. Помимо POWER4+ в машинах IBM используются процессоры Intel Pentium 4 и Xeon — в ПК, рабочих станциях и blade-серверах, а в некоторых серверах и мэйнфреймах — PowerPC-совместимые процессоры RS64 IV. Новый процессор PowerPC 970 пока планируется использовать в blade-серверах вместо Intel Xeon и, возможно, рабочих станциях под управлением Linux. Впрочем, как мы скоро увидим, потенциальная область применения нового процессора этим не исчерпывается. Создавая PowerPC 970, инженеры IBM не стали тратить средства на разработку принципиально нового ядра, а взяли за основу POWER4.
Были удалены второе процессорное ядро и контроллер кэша 3-го уровня, кэш 2-го уровня уменьшен до 512 Кбайт, значительно упрощен межпроцессорный интерфейс, но добавлена поддержка разработанного Motorola набора SIMD-команд AltiVec и повышена тактовая частота. Для повышения отказоустойчивости на кристалле POWER4 создается сравнительно толстый слой диоксида кремния, что ограничивает его максимальные тактовые частоты. Слой оксида кремния на кристалле PowerPC 970, предназначенного для «менее ответственных» применений, будет тоньше, что позволит достичь на 0,13-мкм. технологическом процессе тактовой частоты 2,5 ГГц (для сравнения — частота самого быстрого 0,13-микронного POWER4+ пока составляет 1,7 ГГц). Давайте посмотрим на некоторые характеристики PowerPC 970 в сравнении с Intel Pentium 4 и AMD Opteron (см. таблицы).
На первый взгляд кажется, что опять получился процессор «в стиле PowerPC» — холодный, но, увы, сравнительно неторопливый. Однако если учесть, что для Pentium 4 Northwood (Xeon Prestonia) 3,06 ГГц — почти предельная частота, а для PowerPC 970 1,8 ГГц — только начало, становится ясно, что мы имеем дело с очень хорошим процессором. На 2,5 ГГц — а именно такая частота объявлена IBM как предельная для 0,13-мкм техпроцесса — PowerPC 970 должен значительно превосходить Xeon и уверенно конкурировать с будущим Prescott. Гораздо более серьезная угроза исходит от AMD Opteron, тем более что, по некоторым данным, IBM намерена использовать 64-разрядные процессоры AMD в своих серверах. Конечно, 2,5-гигагерцовый PowerPC 970 будет заметно обгонять Opteron 1,8 ГГц, но если частоту последнего поднять до 2,4–2,6 ГГц, процессору IBM придется несладко. Огромный плюс PowerPC 970 — почти вдвое меньшая рассеиваемая мощность, нежели у процессоров Intel и AMD, что имеет большое значение при эксплуатации в узких корпусах blade-серверов и в целях экономии электроэнергии (это не шутка). PowerPC 970 — первый процессор IBM, поддерживающий набор SIMD (векторных) команд Motorola AltiVec. AltiVec впервые появился в процессоре PowerPC G3, создававшемся для применения в ПК (то есть Apple Macintosh), функционально он близок к SSE, но более гибкий и мощный. Поддержка AltiVec, отличная производительность, малое энергопотребление и совместимость с 32-разрядными PowerPC делают PowerPC 970 крайне привлекательным для использования в компьютерах Apple. Руководство Apple всегда неохотно делилось информацией о процессорах в своих будущих «Маках», и, зная приверженность этой фирмы к процессорам Motorola, лучше не делать необоснованных прогнозов. Так или иначе, PowerMac’и даже с одним процессором PowerPC 970 могли бы успешно конкурировать с машинами Pentium 4 в самых разнообразных приложениях.
PowerPC 970 способен выбирать из кэша команд до восьми инструкций за такт, что предъявляет серьезные требования к его быстродействию. Кэш с прямым отображением работает менее эффективно, чем наборно-ассоциативный, зато обслуживающая его логика упрощается. Видимо, разработчики предпочли максимально уменьшить задержки при обращении к кэшу ценой некоторой потери эффективности. К сожалению, IBM не приводит значения задержек при обращении к кэш-памяти. Примечательная особенность PowerPC 970 — двунаправленная шина данных с пиковой пропускной способностью до 7,2 Гбайт/с. Одна шина шириной 32 бит предназначена только для чтения, другая — только для записи, опорная частота синхронизации равна 450 МГц, данные передаются по фронту/срезу синхросигнала. Видно, что пиковая пропускная способность такого решения выше, чем даже у 800-МГц QPB-шины Pentium 4. Замечу, что существующие системы Xeon используют шину с частотой 533 МГц QP, а в будущих системах предполагается поднять ее лишь до 677 МГц. Слабость двунаправленной шины в том, что во многих приложениях процессору приходится считывать большие объемы данных, и в этом режиме пиковая пропускная способность достигнет только 3,6 Гбайт/с. Зато при работе со смесью чередующихся запросов на чтение и запись, характерных, в частности, для многих серверных приложений, такая шина может быть чрезвычайно эффективной. Но ведь IBM создает серверный процессор, не так ли? Одна из загадок PowerPC 970 — его мультипроцессорные возможности. IBM предельно лаконична: гарантируется «full multiprocessor support». Процессоры, создаваемые для работы в серьезных SMP-системах вроде POWER4 или Opteron, обычно снабжаются быстродействующими шинами (линками) для обмена данными с другими процессорами. Но, похоже, нас ждет разочарование: в части документа, посвященной шине данных, говорится о «синхронизации процессоров для SMP», то есть, по всей видимости, для этой цели будет использоваться шина данных — как в системах Intel. Это не очень эффективный, но зато дешевый способ, который обычно применяют для систем с числом процессоров не больше четырех. Ну что ж, для больших систем у IBM есть POWER4…
PowerPC 970: ядро
Как было сказано выше, вычислительное ядро PowerPC 970 аналогично ядру POWER4. Эти процессоры полагаются на широкий параллелизм исполнения команд и обладают относительно длинными конвейерами функциональных устройств. Устройство выборки PowerPC 970 выбирает из кэша команд до восьми инструкций за такт, направляя их в буфер, откуда они считываются декодером, который способен декодировать опять-таки до восьми PowerPC-инструкций за такт. Кроме того, декодер преобразует PowerPC-инструкции во внутренние (IOPs), более простые, подобно тому, как это делается в x86-процессорах. Большинство команд PowerPC транслируются в одну IOP, но некоторые команды (вроде групповой записи из регистров в память) приходится разбивать на две IOPs (это называется to crack, взламывать) или больше (милликодирование). Далее IOPs организуются в группы по пять в каждой, которые затем направляются в очереди исполнительных устройств (это было сделано для упрощения диспетчеризации большого числа инструкций). Выборка, декодирование и формирование групп занимают, ни много ни мало, аж девять стадий конвейера. Затем диспетчер распределяет IOPs из групп по шести очередям функциональных устройств, после чего, собственно, и начинается их «беспорядочное» выполнение. В PowerPC 970 насчитывается двенадцать исполняющих устройств: пара целочисленных, пара устройств записи/чтения, устройство ветвлений, устройство регистра условий, пара устройств плавающей точки и четыре векторных устройства для AltiVec. Однако векторные устройства не являются универсальными, и каждое из них способно выполнять только специфические для него команды.
Используется техника переименования регистров, всего на разных стадиях исполнения может находиться до двухсот IOPs. Длина конвейера устройства с плавающей точкой — одиннадцать стадий, ALU — пять, векторных устройств — тринадцать. За каждый такт может завершаться максимум пять команд. Особая гордость PowerPC 970 — двухуровневый механизм предсказания ветвлений. В процессоре имеется таблица истории ветвлений на 16 тысяч записей — как в Opteron и в четыре раза больше, чем в Pentium 4/Athlon XP. Кроме того, существует дополнительная таблица на 16 тысяч записей, с каждой записью которой связан 11-битный вектор, в котором записывается путь исполнения, выбранный для последних одиннадцати групп (состоящих из пяти IOPs). Таблица выбора, опять-таки на 16 тысяч записей, отслеживает эффективность первых двух схем для каждой инструкции ветвления, и по ее данным делается выбор в пользу той или иной схемы предсказания в каждом отдельном случае. Важное отличие комбинации PowerPC + AltiVec от Opteron + SSE2 или Pentium 4 + SSE2 состоит в том, что PowerPC с самого начала обладали «полноценными» FPU с тридцатью двумя 64-разрядными регистрами, и им не требуется расширение для чисел с такой точностью. AltiVec, как и SSE, работает с векторами чисел с максимальной точностью лишь 32 бита, в то время как SSE2 поддерживает 64-битные числа. В противоположность этому Pentium 4 и в меньшей степени Opteron, из-за совместимости с ранними процессорами (вплоть до 8087), имеют весьма неэффективный блок плавающей точки в худших традициях CISC, и для его замены потребовалось создавать SSE2. В итоге в большинстве вычислительных задач PowerPC использует свой RISC-FPU, а Opteron и Pentium 4 — SSE2, что дает PowerPC несколько большую гибкость.
PowerPC 970: happy end
Настало время подводить итоги. Корни — архитектура POWER — по-прежнему питают древо PowerPC. Двенадцать лет назад инженеры IBM, воплотив в кристалле кремния POWER1, создали первый PowerPC. Сегодня история повторяется на другом витке спирали — ядро POWER4 становится основой процессора, способного изменить наше отношение к PowerPC как к угасающей архитектуре. Новый 64-разрядный PowerPC 970 обладает вполне достаточным потенциалом для конкуренции с Intel Pentium 4 и Xeon, сочетая хорошую производительность с невысоким тепловыделением. Но надо признать, он немного уступает 64-разрядным AMD Opteron как по процессорному быстродействию, так и в плане создания мультипроцессорных систем. PowerPC 970, намного опережающий текущие чипы Motorola серии G4, мог бы стать превосходным процессором для компьютеров Apple. На его базе возможен выпуск недорогих, но мощных мультипроцессорных рабочих станций и серверов под управлением Linux. Пожалуй, единственный серьезный недостаток PowerPC 970 — отсутствие совместимости с x86…