PowerPC (с аббревиатурой Performance Optimization With Enhanced RISC – Performance Computing , иногда сокращенно PPC ) – это архитектура набора инструкций (ISA) компьютера с сокращенным набором команд ( RISC ), созданная в 1991 году альянсом Apple – IBM – Motorola , известным как AIM . PowerPC, как развивающийся набор инструкций, с 2006 года называется Power ISA , в то время как старое название продолжает существовать как торговая марка для некоторых реализаций процессоров на базе архитектуры Power .
Первоначально предназначенная для персональных компьютеров , архитектура хорошо известна тем, что использовалась в настольных и ноутбуках Apple с 1994 по 2006 год, а также в нескольких игровых консолях, включая Xbox 360 от Microsoft , PlayStation 3 от Sony и GameCube от Nintendo , Wii и Wii U. PowerPC также использовалась для марсоходов Curiosity и Perseverance на Марсе и различных спутников. С тех пор она стала нишевой архитектурой для персональных компьютеров, особенно с реализациями AmigaOS 4 , но остается популярной для встраиваемых систем .
PowerPC был краеугольным камнем инициатив AIM PReP и Common Hardware Reference Platform (CHRP) в 1990-х годах. Он в значительной степени основан на более ранней архитектуре IBM POWER и сохраняет высокий уровень совместимости с ней; архитектуры остались достаточно близкими, чтобы одни и те же программы и операционные системы работали на обеих, если принять некоторые меры при подготовке; более новые чипы в серии Power используют Power ISA .
История RISC началась с исследовательского проекта IBM 801 , ведущим разработчиком которого был Джон Кок , где он разработал концепции RISC в 1975–78 годах. Микропроцессоры на основе 801 использовались в ряде встраиваемых продуктов IBM, в конечном итоге став 16-регистровым процессором IBM ROMP, используемым в IBM RT PC . RT PC был быстрой разработкой, реализующей архитектуру RISC. В период с 1982 по 1984 год IBM начала проект по созданию самого быстрого микропроцессора на рынке; эта новая 32-битная архитектура стала называться America Project на протяжении всего цикла разработки, который длился примерно 5–6 лет. Результатом стала архитектура набора инструкций POWER , представленная с RISC System/6000 в начале 1990 года.
Первоначальный микропроцессор POWER , одна из первых суперскалярных реализаций RISC, представляет собой высокопроизводительную многокристальную конструкцию. IBM вскоре поняла, что для масштабирования линейки RS/6000 от младших до старших машин необходим однокристальный микропроцессор. Работа началась над однокристальным микропроцессором POWER, получившим обозначение RSC ( RISC Single Chip ). В начале 1991 года IBM поняла, что ее конструкция потенциально может стать массовым микропроцессором, используемым во всей отрасли.
Apple уже осознала ограничения и риски своей зависимости от одного поставщика ЦП в то время, когда Motorola отставала с поставкой ЦП 68040. Кроме того, Apple провела собственное исследование и создала экспериментальную конструкцию четырехъядерного ЦП под названием Aquarius, [2] : 86–90 , которая убедила технологическое руководство компании в том, что будущее вычислений — в методологии RISC. [2] : 287–288 IBM обратилась к Apple с целью сотрудничества в разработке семейства однокристальных микропроцессоров на основе архитектуры POWER. Вскоре после этого Apple, будучи одним из крупнейших клиентов Motorola по микропроцессорам настольного класса, [3] попросила Motorola присоединиться к обсуждениям из-за их давних отношений, поскольку Motorola имела более обширный опыт в производстве микропроцессоров большого объема, чем IBM, и сформировать второй источник микропроцессоров. Это трехстороннее сотрудничество между Apple, IBM и Motorola стало известно как альянс AIM .
В 1991 году PowerPC был лишь одним из аспектов более крупного альянса этих трех компаний. В то время большая часть индустрии персональных компьютеров поставляла системы на базе чипов Intel 80386 и 80486, которые имели архитектуру компьютера со сложным набором команд (CISC), а разработка процессора Pentium была в самом разгаре. Чип PowerPC был одним из нескольких совместных предприятий, в которых участвовали три члена альянса в их попытках противостоять растущему доминированию Microsoft-Intel в сфере персональных компьютеров.
Для Motorola POWER выглядела невероятной сделкой. Она позволяла компании продавать широко протестированный и мощный RISC-процессор за небольшие деньги на разработку с ее стороны. Она также поддерживала связи с важным клиентом, Apple, и, казалось, предлагала возможность добавить IBM, которая могла бы покупать у Motorola версии поменьше вместо того, чтобы производить свои собственные.
На тот момент у Motorola уже была собственная разработка RISC в форме 88000 , которая плохо продавалась на рынке. У Motorola дела шли хорошо с семейством 68000 , и большая часть финансирования была сосредоточена на нем. Усилия по 88000 несколько нуждались в ресурсах.
Однако 88000 уже производился; Data General поставляла машины 88000, а у Apple уже были работающие прототипы машин 88000. 88000 также добился ряда побед в области встраиваемого дизайна в телекоммуникационных приложениях. Если бы новую версию POWER с одним чипом можно было сделать совместимой по шине на аппаратном уровне с 88000, это позволило бы и Apple, и Motorola выводить машины на рынок гораздо быстрее, поскольку им не пришлось бы перепроектировать архитектуру своих плат.
Результатом этих различных требований является спецификация PowerPC ( производительные вычисления ). Различия между более ранним набором инструкций POWER и PowerPC изложены в Приложении E руководства для PowerPC ISA v.2.02. [1]
С 1991 года IBM давно желала создать унифицированную операционную систему, которая одновременно размещала бы все существующие операционные системы как персоналии на одном микроядре. С 1991 по 1995 год компания разработала и активно пропагандировала то, что впоследствии стало Workplace OS , в первую очередь ориентируясь на PowerPC. [2] : 290–291
Когда первые продукты PowerPC появились на рынке, их встретили с энтузиазмом. Помимо Apple, IBM и Motorola Computer Group предлагали системы, построенные на базе этих процессоров. Microsoft выпустила Windows NT 3.51 для архитектуры, которая использовалась в серверах PowerPC компании Motorola, а Sun Microsystems предложила версию своей ОС Solaris . IBM перенесла свою AIX Unix . Workplace OS включала новый порт OS/2 (с эмуляцией Intel для совместимости приложений) в ожидании успешного запуска PowerPC 620. В середине 1990-х годов процессоры PowerPC достигли результатов тестов производительности , которые соответствовали или превосходили результаты самых быстрых процессоров x86.
В конечном итоге спрос на новую архитектуру для настольных компьютеров так и не материализовался. Клиенты Windows, OS/2 и Sun, столкнувшись с отсутствием прикладного программного обеспечения для PowerPC, почти повсеместно проигнорировали чип. Платформа IBM Workplace OS (и, следовательно, OS/2 для PowerPC) была без промедления отменена после ее первого выпуска разработчиками в декабре 1995 года из-за одновременного запуска с ошибками PowerPC 620. Версии Solaris и Windows для PowerPC были сняты с производства после короткого периода на рынке. Только на Macintosh, благодаря настойчивости Apple, PowerPC набрал обороты. Для Apple производительность PowerPC была светлым пятном на фоне возросшей конкуренции со стороны ПК на базе Windows 95 и Windows NT.
С отменой Workplace OS общая платформа PowerPC (особенно Common Hardware Reference Platform от AIM ) стала рассматриваться как компромисс, касающийся только оборудования, позволяющий запускать множество операционных систем по одной на единой унифицированной аппаратной платформе, не зависящей от поставщика. [2] : 287–288
Параллельно с альянсом IBM и Motorola обе компании вели внутренние разработки. Линейка PowerQUICC стала результатом этой работы внутри Motorola. Серия встраиваемых процессоров 4xx разрабатывалась внутри IBM. Бизнес встраиваемых процессоров IBM вырос до почти 100 миллионов долларов США выручки и привлек сотни клиентов.
Разработка PowerPC сосредоточена на объекте в Остине, штат Техас, который называется Somerset Design Center. Здание названо в честь места в легенде о короле Артуре, где враждующие силы отложили свои мечи, и члены трех команд, которые работают в здании, говорят, что дух, вдохновивший на название, был ключевым фактором успеха проекта до сих пор.
— МакВик [4]
Частью нашей культуры является не культура IBM, Motorola или Apple, а наша собственная.
— Рассел Стэнфилл из Motorola, содиректор Somerset [4]
Ближе к концу десятилетия проблемы с производством начали беспокоить альянс AIM, во многом так же, как и Motorola, которая постоянно откладывала развертывание новых процессоров для Apple и других поставщиков: сначала от Motorola в 1990-х годах с процессорами PowerPC 7xx и 74xx, а затем от IBM с 64-разрядным процессором PowerPC 970 в 2003 году. В 2004 году Motorola вышла из бизнеса по производству микросхем, выделив свой полупроводниковый бизнес в независимую компанию под названием Freescale Semiconductor . Примерно в то же время IBM вышла с рынка 32-битных встраиваемых процессоров, продав свою линейку продуктов PowerPC компании Applied Micro Circuits Corporation (AMCC) и сосредоточившись на 64-битных конструкциях чипов, сохраняя при этом приверженность процессорам PowerPC производителям игровых консолей, таким как GameCube , Wii и Wii U от Nintendo , PlayStation 3 от Sony и Xbox 360 от Microsoft , из которых последние две используют 64-битные процессоры. В 2005 году Apple объявила, что больше не будет использовать процессоры PowerPC в своих компьютерах Apple Macintosh, отдавая предпочтение процессорам производства Intel , ссылаясь на ограничения производительности чипа для будущего оборудования персональных компьютеров, особенно связанные с выделением тепла и потреблением энергии, а также на неспособность IBM перевести процессор 970 в диапазон 3 ГГц. Альянс IBM-Freescale был заменен открытым органом по стандартам Power.org. Power.org работает под руководством IEEE, при этом IBM продолжает использовать и развивать процессор PowerPC на игровых консолях, а Freescale Semiconductor фокусируется исключительно на встраиваемых устройствах.
IBM продолжает разрабатывать ядра микропроцессоров PowerPC для использования в своих специализированных интегральных схемах (ASIC). Многие крупномасштабные приложения встраивают ядра PowerPC.
Спецификацией PowerPC теперь занимается Power.org, членами которого являются IBM, Freescale и AMCC. Процессоры PowerPC, Cell и POWER теперь совместно продаются как Power Architecture . Power.org выпустила унифицированную ISA, объединив POWER и PowerPC ISA в новую спецификацию Power ISA v.2.03 и новую эталонную платформу для серверов под названием PAPR (Power Architecture Platform Reference).
Многие проекты PowerPC названы и маркированы по их очевидному технологическому поколению. Это началось с «G3», что было внутренним названием проекта внутри AIM для разработки того, что впоследствии стало семейством PowerPC 750. [5] Apple популяризировала термин «G3», когда представила Power Mac G3 и PowerBook G3 на мероприятии 10 ноября 1997 года . Motorola и Apple понравилось это прозвище, и они использовали термин «G4» для семейства 7400, представленного в 1998 году [6] [7] и Power Mac G4 в 1999 году.
На момент запуска G4 Motorola классифицировала все свои модели PowerPC (бывшие, текущие и будущие) в соответствии с тем, к какому поколению они принадлежали, даже переименовав старое ядро 603e в «G2». У Motorola был проект G5 , который так и не был реализован, и Apple позже использовала это название, когда в 2003 году было выпущено семейство 970 , хотя оно было разработано и создано IBM.
PowerPC разработан на основе принципов RISC и допускает суперскалярную реализацию. Версии дизайна существуют как в 32-битной, так и в 64-битной реализации. Начиная с базовой спецификации POWER, PowerPC добавил:
Некоторые инструкции, присутствующие в наборе инструкций POWER, были признаны слишком сложными и были удалены в архитектуре PowerPC. Некоторые удаленные инструкции могли быть эмулированы операционной системой при необходимости. Удаленные инструкции:
Большинство чипов PowerPC переключают порядок байтов с помощью бита в MSR ( регистре состояния машины ), а второй бит предоставляется для того, чтобы позволить ОС работать с другим порядком байтов. Доступ к « инвертированной таблице страниц » (хэш-таблице, которая функционирует как TLB с внешним хранилищем) всегда выполняется в режиме big-endian. Процессор запускается в режиме big-endian.
В режиме little-endian три младших бита эффективного адреса подвергаются операции «исключающее ИЛИ» с трехбитным значением, выбранным по длине операнда. Этого достаточно, чтобы обычному программному обеспечению полностью соответствовало little-endian. Операционная система будет видеть искаженное изображение мира при доступе к внешним чипам, таким как видео и сетевое оборудование. Исправление этого искаженного изображения требует, чтобы материнская плата выполнила безусловную 64-битную замену байтов для всех данных, входящих или исходящих из процессора. Таким образом, порядок байтов становится свойством материнской платы. ОС, работающая в режиме little-endian на материнской плате big-endian, должна как менять байты, так и отменять операцию «исключающее ИЛИ» при доступе к чипам little-endian.
Операции AltiVec , несмотря на то, что они 128-битные, обрабатываются так, как будто они 64-битные. Это обеспечивает совместимость с материнскими платами little-endian, разработанными до AltiVec.
Интересным побочным эффектом этой реализации является то, что программа может сохранять 64-битное значение (самый длинный формат операнда) в памяти, находясь в режиме one endian, переключать режимы и считывать обратно то же самое 64-битное значение, не видя изменения порядка байтов. Этого не будет, если материнская плата переключается в то же время.
Mercury Systems и Matrox запускали PowerPC в режиме little-endian. Это было сделано для того, чтобы устройства PowerPC, выступающие в качестве сопроцессоров на платах PCI, могли совместно использовать структуры данных с хост-компьютерами на базе x86 . И PCI, и x86 используют little-endian. OS/2 и Windows NT для PowerPC запускали процессор в режиме little-endian, в то время как Solaris, AIX и Linux работали в big-endian. [9]
Некоторые из встроенных чипов PowerPC IBM используют бит порядка байтов на страницу . Ни одно из предыдущих не применимо к ним.
Первой реализацией архитектуры стал PowerPC 601 , выпущенный в 1992 году на основе RSC, реализующий гибрид инструкций POWER1 и PowerPC. Это позволило IBM использовать чип в их существующих платформах на основе POWER1, хотя это также означало некоторую небольшую боль при переходе на «чистые» конструкции PowerPC 2-го поколения. Apple продолжила работу над новой линейкой компьютеров Macintosh на основе чипа и в конечном итоге выпустила их как Power Macintosh на основе 601 14 марта 1994 года.
Карты ускорителей на основе чипов PowerPC первого поколения были созданы для Amiga в ожидании перехода на возможную новую платформу Amiga, разработанную вокруг PowerPC. Карты ускорителей также включали либо процессор Motorola 68040 , либо 68060, чтобы сохранить обратную совместимость, так как очень немногие приложения в то время могли работать на чипах PPC изначально. Однако новые машины так и не появились, и Commodore впоследствии объявила о банкротстве. Более десяти лет спустя была выпущена AmigaOS 4 , которая навсегда закрепила платформу на этой архитектуре. OS4 совместима с этими ускорителями первого поколения, а также с несколькими индивидуальными материнскими платами, созданными для нового воплощения платформы Amiga.
IBM также имела полную линейку настольных компьютеров на базе PowerPC, созданных и готовых к поставке; к сожалению, операционная система, которую IBM намеревалась запустить на этих настольных компьютерах — Microsoft Windows NT — не была завершена к началу 1993 года, когда машины были готовы к продаже. Соответственно, и еще из-за того, что IBM развила враждебность к Microsoft, IBM решила портировать OS/2 на PowerPC в форме Workplace OS. Эта новая программная платформа провела три года (с 1992 по 1995) в разработке и была отменена с выпуском для разработчиков в декабре 1995 года из-за разочаровывающего запуска PowerPC 620. По этой причине настольные компьютеры IBM PowerPC не поставлялись, хотя эталонный дизайн (кодовое название Sandalbow) на основе процессора PowerPC 601 был выпущен как модель RS/6000 ( выпуск Byte за апрель 1994 года включал обширную статью о настольных компьютерах Apple и IBM PowerPC).
Apple, у которой также не было ОС на базе PowerPC, пошла другим путем. Используя платформу переносимости, предоставленную секретным проектом Star Trek , компания перенесла основные части своей операционной системы Mac OS на архитектуру PowerPC, а затем написала эмулятор 68k , который мог запускать приложения на базе 68k и части ОС, которые не были переписаны.
Второе поколение было «чистым» и включало в себя «низкоуровневый» PowerPC 603 и «высокоуровневый» PowerPC 604. 603 примечателен своей очень низкой стоимостью и энергопотреблением. Это было преднамеренной целью разработки со стороны Motorola, которая использовала проект 603 для создания базового ядра для всех будущих поколений чипов PPC. Apple попыталась использовать 603 в новом дизайне ноутбука, но не смогла из-за небольшого кэша уровня 1 в 8 КБ . Эмулятор 68000 в Mac OS не мог вместить 8 КБ и, таким образом, резко замедлял компьютер. [10] [11] 603e решил эту проблему , имея кэш L1 объемом 16 КБ , что позволило эмулятору работать эффективно.
В 1993 году разработчики на предприятии IBM в Эссекс-Джанкшен, Берлингтон, штат Вермонт, начали работать над версией PowerPC, которая поддерживала бы набор инструкций Intel x86 непосредственно на ЦП. Хотя это был всего лишь один из нескольких параллельных проектов архитектуры питания, над которыми работала IBM, этот чип стал известен внутри IBM и в СМИ как PowerPC 615. Проблемы с прибыльностью и слухи о проблемах с производительностью при переключении между наборами инструкций x86 и собственными наборами инструкций PowerPC привели к тому, что проект был отменен в 1995 году после того, как было произведено лишь ограниченное количество чипов для внутреннего тестирования. Помимо слухов, процесс переключения занял всего 5 циклов, или количество времени, необходимое процессору для освобождения своего конвейера инструкций. Microsoft также способствовала упадку процессора, отказавшись поддерживать режим PowerPC. [12]
Первой 64-битной реализацией является PowerPC 620 , но, похоже, она не нашла широкого применения, поскольку Apple не хотела ее покупать, а также из-за большой площади кристалла она была слишком дорогой для рынка встраиваемых систем. Она появилась позже и оказалась медленнее, чем обещали, и IBM вместо этого использовала собственную разработку POWER3 , не предлагая 64-битной «малой» версии до появления PowerPC 970 в конце 2002 года . 970 — это 64-битный процессор, созданный на основе серверного процессора POWER4 . Для его создания ядро POWER4 было изменено для обеспечения обратной совместимости с 32-битными процессорами PowerPC, а также был добавлен векторный блок (похожий на расширения AltiVec в серии Motorola 74xx).
Процессоры IBM RS64 — это семейство чипов, реализующих вариант «Amazon» архитектуры PowerPC. Эти процессоры используются в семействах компьютеров RS/6000 и IBM AS/400 ; архитектура Amazon включает фирменные расширения, используемые AS/400. [13] Процессоры POWER4 и более поздние POWER реализуют архитектуру Amazon и заменили чипы RS64 в семействах RS/6000 и AS/400.
IBM разработала отдельную линейку продуктов под названием «4xx», ориентированную на рынок встраиваемых систем. Эти разработки включали 401, 403, 405, 440 и 460. В 2004 году IBM продала свою линейку продуктов 4xx корпорации Applied Micro Circuits Corporation (AMCC). AMCC продолжает разрабатывать новые высокопроизводительные продукты, частично основанные на технологиях IBM, а также на технологиях, разработанных в AMCC. Эти продукты ориентированы на различные приложения, включая сетевые технологии, беспроводные сети, хранение данных, печать/обработку изображений и промышленную автоматизацию.
В числовом отношении PowerPC в основном встречается в контроллерах автомобилей. Для автомобильного рынка Freescale Semiconductor изначально предлагала множество вариаций, называемых семейством MPC5xx, таких как MPC555, построенный на вариации ядра 601, называемой 8xx и разработанной в Израиле компанией MSIL (Motorola Silicon Israel Limited). Ядро 601 является одновыпускным, то есть оно может выдавать только одну инструкцию за такт. К этому они добавляют различные биты пользовательского оборудования, чтобы обеспечить ввод-вывод на одном чипе. В 2004 году для автомобильного рынка были выпущены четырехразрядные устройства 55xx следующего поколения. Они используют более новую серию e200 ядер PowerPC.
Сетевые технологии — еще одна область, где встраиваемые процессоры PowerPC встречаются в большом количестве. MSIL взяла движок QUICC из MC68302 и создала PowerQUICC MPC860. Это был очень известный процессор, использовавшийся во многих периферийных маршрутизаторах Cisco в конце 1990-х годов. Варианты PowerQUICC включают MPC850 и MPC823/MPC823e. Все варианты включают отдельный микродвижок RISC, называемый CPM , который разгружает задачи обработки коммуникаций с центрального процессора и имеет функции для DMA . Следующий чип из этого семейства, MPC8260, имеет ядро на основе 603e и другой CPM.
Honda также использует процессоры PowerPC для своего робота ASIMO . [14]
В 2003 году BAE Systems Platform Solutions поставила компьютер управления транспортным средством для истребителя F-35 . Эта платформа состоит из двух PowerPC, изготовленных Freescale в тройной избыточной установке. [15]
В 2024 году Институт развития авиации провел испытания высокопроизводительного цифрового компьютера управления полетом, работающего на базе квадроплексной процессорной установки PowerPC на самолете HAL Tejas Mark 1A. [16]
Операционные системы, работающие на архитектуре PowerPC, обычно делятся на ориентированные на универсальные системы PowerPC и ориентированные на встраиваемые системы PowerPC.
Компании, лицензировавшие 64-разрядную версию POWER или 32-разрядную версию PowerPC от IBM, включают:
Процессоры PowerPC использовались в ряде ныне снятых с производства игровых консолей :
Архитектура Power в настоящее время используется в следующих настольных компьютерах:
Архитектура Power в настоящее время используется в следующих встраиваемых приложениях:
Крошечные 8-килобайтные кэши 603 были печально известны своей неэффективностью для программного обеспечения Mac OS, особенно для эмуляции 68K; даже кэши 603e вызывают значительное падение производительности на более высоких тактовых частотах. Учитывая целевую частоту Артура 250 МГц и выше, удвоение кэшей снова имело смысл.