POWER — микропроцессорная архитектура с ограниченным набором команд (RISC), разработанная и развиваемая компанией IBM. Название позже было расшифровано как Performance Optimization With Enhanced RISC (оптимизация производительности на базе расширенной архитектуры RISC). Этим словом также называется серия микропроцессоров, использующая указанный набор команд. Они применяются в качестве центрального процессора во многих микрокомпьютерах, встраиваемых системах, рабочих станциях, мейнфреймах и суперкомпьютерах.
Архитектура POWER прошла в своём развитии несколько поколений. Начиная с POWER3 микропроцессоры поддерживают полный набор команд 64-битной архитектуры PowerPC и не поддерживают старые команды, которые были удалены из архитектуры одновременно с появлением стандарта PowerPC. Также прекращена поддержка расширенных инструкций POWER2, например lfq и stfq.
Для обсуждения любых продуктов, основанных на архитектуре, предназначено сообщество Power.org[англ.] (куда входят, в частности, и разработки PowerPC и Cell). Именно туда рекомендуется обращаться разработчикам и производителям, использующим платформу.
На сайте компании IBM доступны руководства, подробно описывающее различия в наборах команд архитектур POWER, POWER2 и PowerPC, POWER5.[1]
В 1974 году IBM начала работу над созданием большой переключающей системы, способной соединять по меньшей мере 300 телефонных звонков в секунду. Расчёты предполагали, что потребуется выполнять по 20 000 инструкций для каждого из соединений, причём без задержек для остальных звонков. Таким образом, требовалась производительность не менее 12 MIPS[источник не указан 1870 дней], что было чрезвычайно много по тем временам. Выручало лишь то обстоятельство, что внутреннее устройство микропроцессора могло быть значительно упрощено, так как ему приходилось бы производить только операции ввода-вывода, ветвления, сложения в регистрах, выгрузки содержимого регистров в память и в другие регистры, и совсем не приходилось бы выполнять сложные вычисления.
Эта простая организация команд, в которой каждая команда выполняет лишь отдельный шаг в большом алгоритме и должна выполняться за чётко фиксированный отрезок времени, позднее получила название RISC.
К 1975 году проект телефонного коммутатора был свёрнут, а до работающего прототипа дело так и не дошло. Тем не менее, за проектными работами вырисовывалась многообещающая архитектура процессора общего назначения, так что они были продолжены в Исследовательском центре Томаса Уотсона[англ.] в здании под номером 801. Так проект получил своё новое название.
Исследовательский проект «Гепард», 1982 год
Способность выполнять несколько команд одновременно, задействуя множественные структурные блоки, исследовалась в рамках проекта «801» на протяжении двух лет, похожие работы проводились для машин IBM System/360 Model 91 (построена на основе CISC-архитектуры) и CDC 6600. Целью было определить, может ли процессор с уменьшенным набором простых команд выполнять несколько инструкций за тактовый цикл, и какие изменения должны быть для этого внесены в аппаратуру.
Для улучшения производительности разрабатываемый процессор содержал раздельные блоки ветвления, логики и арифметики с плавающей точкой. По сравнению с проектом «801», архитектура была значительно расширена для параллельной обработки команд. Для производства изначально планировалось использовать эмиттерно-связанную логику (ЭСЛ) на биполярных транзисторах, но в 1984 году технология КМОП обеспечивала лучшую плотность элементов и скорость переключения.
Проект «Америка»
В 1985 году исследовательский центр Томаса Ватсона начал разработку процессора RISC второго поколения, проект был назван «Америка». В 1986 году отделение IBM в городе Остин приступило к работе над серией RS/6000, которая была наследницей этого проекта.
В 1990 году выпущены первые компьютеры под маркой IBM с процессором архитектуры POWER: «RISC System/6000» (также «RS/6000»). Эта серия была поделена на два класса: рабочие станции и серверы, опирающиеся соответственно на архитектуры POWERstation и POWERserver. Центральный процессор, названный RIOS (позже RIOS I или POWER1[англ.]) состоял из 11 отдельных микросхем: кэш инструкций, блок арифметико-логических операций, блок вычислений с плавающей точкой, 4 микросхемы кэша данных, устройство управления памятью, 2 блока ввода-вывода, тактовый генератор.
Для маломощных станций RS/6000 был разработан однокорпусный вариант RIOS с названием RSC (RISC Single Chip[англ.] — RISC на одной микросхеме); впервые он увидел свет в 1992 году.
POWER
Спустя 5 лет после начала разработки IBM объявила о начале поставок систем RISC 6000. Это была первая разработка, поддерживаемая операционной системойAIX в новой архитектуре, получившей название POWER. Первая реализация архитектуры содержала однокорпусное решение (на одной микросхеме) для встраиваемых приложений и многокорпусное решение под названием POWER/RIOS.
Amazon
Проект Amazon был начат в 1990 году с целью создания архитектуры, способной поддерживать и AIX, и OS/400. Команда разработчиков OS/400 была занята созданием RISC-набора команд для замены CISC-набора, использовавшегося в системах AS/400. Результатом их работы стал набор команд, основанный на IMPI, расширенный до 64 бит и дополненный несколькими RISC-инструкциями для ускорения коммерческих вычислений, столь характерных для AS/400. Руководство компании пыталось настаивать на использовании архитектуры PowerPC, но получило отказ, так как PowerPC был несравним с масштабом AS/400. В конце концов было выработано компромиссное решение в виде расширения набора команд PowerPC, названное Amazon.
В то же время команда системы RS/6000 игнорировала процессоры PowerPC, так как нуждалась в расширенных возможностях стандарта POWER2. Эти возможности также были добавлены в Amazon, и с этих пор набор команд PowerPC стал способен работать в архитектурах RS/6000 и AS/400.
Первым проектом разработки подобного процессора стал Belatrix (название звезды в созвездии Ориона, также называемой Amazon). Этот проект поставил перед собой слишком завышенные цели и был прекращён до своего окончания. Остинская команда (где были разработаны RS/6000) занялась разработкой 64-битного процессора архитектуры PowerPC с расширениями POWER2, то есть POWER3, а рочестерская команда (авторы AS/400), со своей стороны, такого же процессора с высокой вычислительной мощностью, но c расширениями AS/400. Третья команда, в Эндикотте, была задействована для разработки маломощного процессора, аналогичного рочестерскому.
В 1995 году были выпущены следующие процессоры архитектуры AS/400: A25/30 Muskie — многокорпусный мощный и A10 Cobra — однокорпусный.
Рочестерская версия задержалась до 1997 года. Её встраивали как в машины RS/6000 под именем IBM RS64[англ.], так и в машины AS/400, как позднее и другие процессоры этой серии.
Прошло не менее 5 лет, прежде чем процессору RIOS/POWER1 была создана замена, POWER2. В него добавили второй блок арифметико-логических операций и второй блок вычислений с плавающей точкой. Кроме того, был расширен набор команд:
инструкции записи длиной в 4 машинных слова: перемещали два соседних значения двойной точности в два смежных регистра вычислений с плавающей точкой;
вычисление квадратного корня на аппаратном уровне;
конвертация числа с плавающей точкой в целочисленное значение.
В 1996 году был разработан однокристальный вариант POWER2, P2SC (POWER2 Super Chip — супермикросхема POWER2).
В 1991 году в IBM осознали потенциал процессоров POWER в качестве товара для других производителей компьютерной техники. Предложение было сделано компании Apple, оно включало обоюдное сотрудничество для разработки семейства однокорпусных процессоров. Apple в скором времени подключила к работе компанию Motorola, будучи её крупнейшим клиентом в области микропроцессоров класса настольных систем, что позволило использовать опыт Motorola в производстве больших тиражей и создало дублирующий источник процессоров для Apple. Это трёхстороннее сотрудничество получило название альянса AIM — по первым буквам названий Apple, IBM, Motorola (также слово цель по-англ.).
Первым результатом сотрудничества стала разработка (спустя 2 года после начала) архитектуры PowerPC — модифицированной версии POWER. Были добавлены вычисления с плавающей точкой над числами одинарной точности, универсальное умножение и деление регистра на регистр, удалены некоторые другие — в частности, специальный вариант умножения и деления на регистр MQ. Кроме того, была создана 64-битная версия архитектуры.
Первым чипом нового поколения стал PowerPC 601[англ.], основанный на RSC. Более подробная информация об этом семействе процессоров содержится в статье PowerPC.
Процессор POWER3 был представлен в 1998 году. Он поддерживал весь набор 64-битных инструкций POWER, включая все расширенные команды, имевшиеся на тот момент, и содержал два блока вычислений с плавающей точкой, три блока с фиксированной точкой и два блока загрузки/выгрузки.
Все последующие поколения процессоров POWER поддерживали полный набор инструкций, так что не осталось вариантов, поддерживающих только строго POWER или POWER2.
Микропроцессор POWER4, первый из серии GIGA, был анонсирован в 1999 году, а выпущен в 2001. Это был 64-битный процессор, поддерживающий полный набор инструкций. Кроме того, он поддерживал расширения AS/400, благодаря чему использовался в системах RS/6000 и AS/400 взамен POWER3 и RS64. Набор команд был пополнен несколькими новыми командами (напр., mfcr), имеющими поле операнда, что дало основание зафиксировать новый стандарт PowerPC 2.00.
Поколение POWER5 было представлено в 2004 году. Процессор стал двухъядерным, с поддержкой одновременной многопоточности (одновременного выполнения двух цепочек команд), таким образом работая как 4 логических процессора. Выпускался по техпроцессу 130 нм SOI. С помощью технологии Virtual Vector Architecture (сокр. ViVA, рус.Виртуальная векторная архитектура, англ.) несколько процессоров POWER5 могут объединяться в единый векторный процессор. Кроме того, набор инструкций был расширен на несколько команд.
Последующий выпуск POWER5+ ещё расширил набор инструкций, новый набор получил название ISA 2.02.
Выпущен 21 мая 2007 года[2]. Привнёс в стандарт POWER инструкции VMX (параллельная обработка данных), обновил ViVA[англ.] до версии 2, таким образом осуществив большой шаг вперёд со времён перехода с POWER3 на POWER4. Двухъядерный дизайн, тактовые частоты до 4,7 ГГц при нормах выпуска 65 нм SOI. Содержит развитую систему взаимодействия с другими такими же процессорами. Потребление энергии на уровне POWER5, тогда как производительность вдвое выше.
Выпущен в 2010 году[3]. Выпускается по техпроцессу 45 нм SOI, имеет до 8 ядер на процессор, частота — от 3 до 4,25 ГГц. Теоретическая производительность на ядро — 33,12 GFLOPS и до 264,96 GFLOPS на процессор.
Процессор POWER7 известен тем, что использовался в суперкомпьютере IBM Watson, который участвовал в поединке с человеком в телевизионный викторине Jeopardy! и одержал победу. Суперкомпьютер IBM Watson применяется сегодня в сфере здравоохранения и в финансовом секторе.
В августе 2012 года на Hot Chips[англ.] 24 была представлена обновлённая версия POWER7+, изготовленная по техпроцессу 32 нм SOI. До 8 ядер на чип, каждое ядро исполняет до 4 потоков.[4]
Представлен в 2013 году, изготовлен по 22-нм SOI. 6 или 12 ядер на чип, тактовая частота от 2,5 до 5 ГГц, каждое ядро исполняет одновременно до 8 потоков.
Процессор имеет общий кэш L3 размером 48 МБ (6-ядерные модели) или 96 МБ (12-ядерные модели).
В процессор встроены высокопроизводительные контроллеры памяти (DDR3/DDR4) и системных каналов ввода-вывода (CAPI port на основе PCI Express 3.0[5][6], в том числе для подключения ASIC, FPGA, GPU[7][8]).
Питанием процессора управляет встроенный микроконтроллер на базе PowerPC 405 с 512 килобайтами SRAM-памяти, настраивая 1764 встроенных регулятора напряжения[9][10].
Векторно-скалярное устройство процессора для работы с числами c плавающей запятой выдаёт до 8 результатов с плавающей запятой двойной точности, что обеспечивает пиковую производительность 384 GFLOPS на процессор.
Для многих видов нагрузок процессор POWER8 показывает прирост производительности в 2-3 раза по сравнению с предыдущим процессором POWER7[4][11].
Дизайн следующего поколения процессоров POWER9 был начат IBM параллельно разработке POWER8[12]. Ожидалось, что в новом типе процессоров впервые появится поддержка элементов стандарта Power ISA 3.0, включая инструкции VSX-3 и поддержку технологии nVidiaNVLink[13][14].
POWER9 производятся по 14-нм технологическому процессу и доступны в двух версиях. Архитектура POWER9 открыта для лицензирования и модификации для членов фонда OpenPOWER[18].
Архитектура
Внутреннее устройство POWER заимствовано из проекта 801, который считается первым истинным RISC-процессором. Последний нашёл применение в вычислительных блоках, производимых IBM, но не имел широкой известности, пока в середине 1980-х не был выпущен компьютер IBM PC/RT.
Одновременно с выпуском PC/RT IBM запустила проект «Америка», поставив цель создать самый производительный центральный процессор на рынке. На тот момент важнейшими казались две проблемы:
801 полагался исключительно на однотактовые команды, что исключало вычисления с плавающей точкой;
хотя декодер команд был многошаговым, одновременное выполнение команд не поддерживалось.
Проект «Америка» сосредоточился на вычислениях с плавающей точкой и через некоторое время пополнился новыми алгоритмами 64-битового умножения и деления с двойной точностью за один такт, разработанными в начале 1980-х. Математический сопроцессор был отдельной частью от декодера и блока целочисленной арифметики, что позволяло одновременно выполнять вычисления и с плавающей точкой, и целочисленные. Все это было дополнено развитым декодером, который мог параллельно запрашивать одну инструкцию, расшифровывать другую и посылать ещё две в исполнительные блоки. Получился первый в истории практический суперскалярный процессор.
Он содержал тридцать два 32-разрядных целочисленных регистра и ещё тридцать два 64-разрядных регистра с плавающей точкой, каждый в своём разделе. Кроме того, имелось несколько регистров для внутренних нужд внутри блока ветвления, в частности, счётчик адреса.
Тогда как 801 был простым устройством, чрезмерное количество дополнений превратило его в сложный процессор, гораздо сложнее большинства конкурирующих RISC-изделий. Например, набор команд POWER (и PowerPC) включает более 100 опкодов переменной длины, многие из которых являются модификациями друг друга. Для сравнения: архитектура ARM располагает только 34 инструкциями.
В конструкцию заложено и одно необычное свойство: виртуальное адресное пространство. Все адреса во время работы конвертируются в 52-битное представление, таким образом получается, что каждая программа обладает плоским 32-битным пространством адресов, но при этом каждая может занимать эти блоки произвольно[уточнить].
Версии процессоров
Первый процессор POWER1[англ.] состоял из 3 блоков: ветвления, целочисленных операций и вычислений с плавающей точкой. Все они собирались на довольно большой материнской плате. Использовались в основном в рабочих станциях RS/6000. Вариация RSC представляла собой одночиповый вариант, который так же, как и многочиповый, использовался в RS/6000.
POWER2 был последователем POWER1 с улучшениями, подсказанными в процессе его реальной эксплуатации. Его эксплуатация оказалась самой продолжительной: в течение 5 лет с начала в 1993 году. Появился второй блок вычислений с плавающей точкой, 256 КБ кэш-памяти, 128-разрядная математика с плавающей точкой.
POWER3 последовал в 1998 году, с полновесной 64-битной организацией, но сохраняя совместимость с полным набором команд POWER. Это стало важной отличительной особенностью всех процессоров POWER начиная с третьей версии. Также добавились третий блок арифметико-логических операций и второй декодер команд, итого 8 функциональных блоков.
POWER4 объединил два одинаковых процессора POWER3 на одной микросхеме, сделал их быстрее и дополнил шинами быстродействующей связи с соседними процессорами (количеством до 3). Таким образом, это поколение может быть объединено на материнской плате в 8-процессорные SMP-системы. В ситуации, когда задача требует большой пропускной способности, а не параллельных вычислений, по одному ядру из пары может быть выключено, и у оставшихся ядер окажется в полном распоряжении быстродействующая шина и кэш 3-го уровня. Многие считали POWER4 на тот момент самым производительным процессором из имевшихся, даже без объединения в четвёрки.
POWER5 был выпущен в 2004 году. Версия на 1,9 ГГц показала самые высокие результаты в тесте SPECfp для однопроцессорных систем среди всех коммерчески доступных процессоров. На их основе строятся серверы серии eServers моделей i5 и p5. Улучшения по сравнению с POWER4 составили: больший по размеру кэш 2-го уровня, контроллер памяти непосредственно на кристалле, многопоточность (ОС видит несколько процессоров вместо одного), усовершенствованный механизм управления электропитанием, особый одноядерный режим, гипервизор (hypervisor) и eFuse (аппаратное устранение ошибок).
Главный инженер IBM по микропроцессорам Рави Аримили сказал: «Конструкция POWER5 представляет собой решение среднего уровня, его можно расширять вверх до области высокопроизводительных вычислений и вниз, до уровня серверов-лезвий.» Серверы IBM, построенные на этом процессоре, поддерживают функции виртуализации: логическое разбиение и микроразбиение. Для каждого ЦПУ может быть создано до 10 логических разделов, большие 64-битные ОС поддерживают до 256 независимых операционных систем. Память, вычислительная мощь процессоров и каналы ввода-вывода могут динамически перераспределяться между разделами.
8 февраля 2010 компания IBM представила вычислительные системы на основе процессора POWER7.
Другие процессоры, разработанные на архитектуре POWER
Первый процессор архитектуры PowerPC, под названием PowerPC 601, был наследником процессора RSC, некоторые базовые инструкции выполнялись с помощью эмуляции через интерфейс шины, аналогично конструкции Motorola 88000[англ.]. Такое решение позволило IBM использовать 601 в различных моделях компьютеров, приспосабливая структуру материнской платы к заданным требованиям. Позже архитектуры PowerPC и POWER все же разделились, хотя и по сей день сохраняют совместимость на уровне машинных команд.
Выпускался процессор RS64, он был основан на архитектуре PowerPC (а значит, и POWER) и использовался в системах RS/6000 и AS/400. Оптимизирован для коммерческих расчётов и не обладает большой мощностью при вычислениях с плавающей точкой, характерных для POWER. Постепенно был вытеснен POWER4.
Процессор Gekko был создан для игровой приставки NintendoGameCube, представлял собой модифицированную версию PowerPC 750CXe. Процессор для приставок следующего поколения, Wii, был также разработан в стенах IBM.
Дизайн широко известного процессора Cell основан на использовании простого многопоточного ядра, работающего на высокой тактовой частоте и связанного с восемью отдельными векторными сопроцессорами. Используется в игровой приставке SonyPlayStation 3 и в некоторых задачах многократно превосходит по производительности настольные процессоры того времени, что вызвало значительный интерес к этой разработке.
Наконец, игровая приставка Xbox 360, также опирается на процессор IBM Xenon, состоящий из трёх ядер, работающих на частоте 3,2 ГГц.