Мощность ОДИН
Дизайнер | |
---|---|
Биты | 32-битная / 64-битная (32 → 64) |
Представлено | 2006 год |
Версия | 3.1 |
Дизайн | РИСК |
Тип | Загрузка-сохранение |
Кодирование | Фиксированный/переменный |
Ветвление | Код состояния |
Порядок байтов | Большой/Би |
Расширения | AltiVec , PowerPC AS , APU, DSP , CBEA |
Открыть | Да, и без лицензионных отчислений |
Регистры | |
|
Power ISA — это компьютера (ISA ) с сокращенным набором команд (RISC архитектура набора команд ), в настоящее время разработанная OpenPOWER Foundation под руководством IBM . Первоначально он был разработан IBM и ныне несуществующей отраслевой группой Power.org . Power ISA — это эволюция PowerPC ISA , созданная путем слияния базовой PowerPC ISA и дополнительной книги E для встроенных приложений. Слияние этих двух компонентов в 2006 году возглавили основатели Power.org IBM и Freescale Semiconductor .
До версии 3.0 ISA была разделена на несколько категорий. Процессоры реализуют набор этих категорий в соответствии с требованиями своей задачи. Для реализации определенных категорий требуются разные классы процессоров, например, процессор серверного класса включает категории: Base , Server , Floating-Point , 64-Bit и т. д. Все процессоры реализуют базовую категорию.
Power ISA — это RISC- архитектура загрузки/сохранения . Он имеет несколько наборов регистров :
- 32 × 32-битные или 64-битные регистры общего назначения (GPR) для целочисленных операций .
- 64 × 128-битные векторные скалярные регистры (VSR) для векторных операций и операций с плавающей запятой .
- 32 × 64-битные регистры с плавающей запятой (FPR) как часть VSR для операций с плавающей запятой.
- 32 × 128-битные векторные регистры (VR) как часть VSR для векторных операций.
- 8 × 4-битных полей регистра условий (CR) для сравнения и потока управления .
- 11 специальных регистров разного размера: регистр счетчика (CTR), регистр связи (LR), временная развертка (TBU, TBL), альтернативная временная развертка (ATBU, ATBL), аккумулятор (ACC), регистры состояния (XER, FPSCR, VSCR, СПЕФСКР).
Инструкции до версии 3.0 имеют длину 32 бита, за исключением подмножества VLE (кодирование переменной длины), которое обеспечивает более высокую плотность кода для встраиваемых приложений начального уровня, и версии 3.1, в которой введен префикс для создания 64-битных инструкций. . Большинство инструкций являются триадными , т.е. имеют два исходных операнда и один пункт назначения. одинарной и двойной точности , соответствующие IEEE-754 Поддерживаются операции с плавающей запятой , включая дополнительные инструкции плавного умножения-сложения (FMA) и десятичные инструкции с плавающей запятой. Существуют возможности для операций с одной инструкцией и несколькими данными (SIMD) над целочисленными данными и данными с плавающей запятой, содержащими до 16 элементов в одной инструкции.
Power ISA поддерживает Гарвардский кэш , то есть разделение кэшей данных и инструкций , а также поддержку унифицированных кэшей. Операции с памятью являются строго загрузкой/сохранением, но допускают выполнение вне очереди . Также имеется поддержка как прямого, так и прямого порядка байтов с отдельными категориями для модируемого и постраничного порядка байтов, а также поддержка как 32-битной , так и 64-битной адресации.
Различные режимы работы включают пользователя, супервизор и гипервизор.
Категории
[ редактировать ]- База — большая часть Книги I и Книги II.
- Сервер – Книга III-S
- Встроенное - Книга III-E
- Разное — с плавающей запятой, вектор, обработка сигналов, блокировка кэша, десятичная с плавающей запятой и т. д.
Книги
[ редактировать ]Спецификация Power ISA разделена на пять частей, называемых «книгами»:
- Книга I – Архитектура набора пользовательских инструкций описывает базовый набор инструкций, доступный программисту приложения. Ссылка на память, управление потоком, целое число, с плавающей запятой, числовое ускорение, программирование на уровне приложения. Он включает главы, посвященные вспомогательным процессорам, таким как процессоры цифровых сигналов (DSP) и расширению AltiVec .
- Книга II - Архитектура виртуальной среды определяет модель хранения, доступную программисту приложения, включая время, синхронизацию, управление кэшем, функции хранения, порядок байтов.
- Книга III - Архитектура операционной среды включает исключения, прерывания, управление памятью, средства отладки и специальные функции управления. Он разделен на две части.
- Книга III-S – определяет инструкции супервизора, используемые для универсальных/серверных реализаций. В основном это содержимое Книги III прежней версии PowerPC ISA.
- Книга III-E – определяет инструкции супервизора, используемые для встроенных приложений. Он является производным от бывшего PowerPC Book E.
- Книга VLE - Архитектура кодированных инструкций переменной длины определяет альтернативные инструкции и определения из книг I–III, предназначенные для более высокой плотности команд и приложений очень низкого уровня. Они используют 16-битные инструкции и порядок байтов с обратным порядком байтов.
Согласие
[ редактировать ]Новым в версии 3 Power ISA является то, что вам не нужно реализовывать всю спецификацию для обеспечения соответствия. Разрастание инструкций и технологий сделало всю спецификацию громоздкой, поэтому OpenPOWER Foundation решил включить многоуровневую совместимость.
Эти уровни включают в себя необязательные и обязательные требования, однако одно из распространенных заблуждений состоит в том, что ничто не мешает реализации быть совместимой на более низком уровне, кроме наличия дополнительных выбранных функций с более высоких уровней и пользовательских расширений. Однако рекомендуется предусмотреть возможность отключения любых добавленных функций, выходящих за рамки объявленного уровня подмножества проекта.
Чтобы можно было воспользоваться защитой Фонда в отношении использования интеллектуальной собственности , будь то патенты или товарные знаки , дизайн должен соответствовать требованиям на заявленном уровне подмножества. Это объясняется в OpenPOWER EULA. [1]
Соответствующий дизайн должен: [2]
- Поддержка базовой архитектуры
- И поддерживать хотя бы одно из подмножеств
- SFS – скалярное подмножество фиксированной точки. 129 инструкций. Базовая фиксированная точка и инструкции загрузки/сохранения, что на самом деле является базовой архитектурой.
- SFFS – скалярная фиксированная точка + подмножество с плавающей запятой. 214 инструкций. Добавление операций с плавающей запятой в Базу.
- LCS — подмножество совместимости с Linux. 962 инструкции. Предназначен для Linux серверного уровня, с добавлением таких функций, как 64-разрядная версия, дополнительный SIMD/VSX, Radix MMU, режим прямого порядка байтов и поддержка гипервизора.
- ACS — подмножество совместимости с AIX . 1099 инструкций. Предназначен для работы с AIX, с добавлением таких функций, как десятичная и четырехкратная точность с плавающей запятой, режим с прямым порядком байтов и симметричная многопроцессорная обработка.
- Может включать любые функции LCS и ACS в качестве дополнительных или выбирать из всегда дополнительных функций, таких как матричные математические вычисления и управление питанием.
- Дополнительные функции, если они выбраны, должны быть реализованы полностью (частичная реализация дополнительной функции не допускается).
- Может включать пользовательские расширения, специфичные для реализации, реализованные в изолированной программной среде архитектуры .
Если расширение является достаточно универсальным, OpenPOWER Foundation просит разработчиков отправить его в виде запроса на комментарии (RFC) в рабочую группу OpenPOWER ISA . Обратите внимание, что для подачи RFC не обязательно присоединяться к OpenPOWER Foundation. [3]
- Многое может быть реализовано как аппаратно, так и прошивкой.
Несоответствие совместимости EABI и Linux
[ редактировать ]Возможно, этот раздел содержит оригинальные исследования . ( январь 2024 г. ) |
Спецификации EABI появились до объявления и создания подмножеств соответствия.
Что касается подмножества совместимости Linux с дополнительным VSX (SIMD): в 2003–2004 годах 64-битная версия EABI v1.9 сделала SIMD необязательным, [4] но в июле 2015 года для повышения производительности систем IBM POWER9 SIMD стал обязательным в EABI v2.0. [5] Это несоответствие между SIMD, который является необязательным на уровне совместимости Linux, но обязательным в EABI v2.0, не может быть исправлено без значительных усилий: обратная несовместимость для дистрибутивов Linux не является жизнеспособным вариантом. В настоящее время новым разработчикам OpenPOWER, желающим запускать стандартные дистрибутивы Linux, приходится реализовывать огромное количество 962 инструкций. Напротив, для RISC-V RV64GC, минимума для запуска Linux, требуется всего 165. [6]
Технические характеристики
[ редактировать ]Питание ISA v.2.03
[ редактировать ]Спецификация Power ISA v.2.03 [7] основан на предыдущей версии PowerPC ISA v.2.02. [8] в POWER5 + и Book E [9] расширение спецификации PowerPC . В книгу I вошли пять новых глав, посвященных вспомогательным процессорам, таким как DSP и расширению AltiVec .
- Совместимые ядра
Питание ISA v.2.04
[ редактировать ]Спецификация Power ISA v.2.04 [10] был завершен в июне 2007 года. Он основан на Power ISA v.2.03 и включает изменения в первую очередь в часть Book III-S , касающуюся виртуализации , функций гипервизора , логического разделения и обработки виртуальных страниц .
- Совместимые ядра
Питание ISA v.2.05
[ редактировать ]Спецификация Power ISA v.2.05 [11] был выпущен в декабре 2007 года. Он основан на Power ISA v.2.04 и включает изменения в первую очередь в Book I и Book III-S , включая значительные улучшения, такие как десятичная арифметика (Категория: Десятичные числа с плавающей запятой в Book I ) и улучшения серверного гипервизора. .
- Совместимые ядра
- Все ядра, соответствующие предыдущим версиям Power ISA.
- МОЩНОСТЬ6
- PowerPC 476
Питание ISA v.2.06
[ редактировать ]Спецификация Power ISA v.2.06 [12] был выпущен в феврале 2009 года и переработан в июле 2010 года. [13] Он основан на Power ISA v.2.05 и включает расширения для процессора POWER7 и ядра e500-mc . Одной из важных новых функций являются векторно-скалярные инструкции с плавающей запятой ( VSX ). [14] Книга III-E также включает значительные улучшения встроенной спецификации, касающейся гипервизора и виртуализации в одно- и многоядерных реализациях.
В ноябре 2010 года спецификация была пересмотрена до спецификации Power ISA v.2.06 версии B, что расширило возможности виртуализации. [13] [15]
- Совместимые ядра
Питание ISA v.2.07
[ редактировать ]Спецификация Power ISA v.2.07 [16] был выпущен в мае 2013 года. Он основан на Power ISA v.2.06 и включает в себя основные улучшения функций логических разделов , транзакционной памяти , расширенный мониторинг производительности, новые функции управления хранилищем, дополнения к векторным средствам VMX и VSX (VSX-2), вместе с AES [16] : 257 [17] и режим счетчика Галуа (GCM), SHA-224, SHA-256, [16] : 258 ША-384 и ША-512 [16] : 258 ( SHA-2 ) криптографические расширения и проверки циклическим избыточным кодом (CRC) алгоритмы . [18]
В апреле 2015 года спецификация была пересмотрена до спецификации Power ISA v.2.07 B. [19] [20]
- Совместимые ядра
Питание ISA v.3.0
[ редактировать ]Спецификация Power ISA v.3.0 [21] [22] был выпущен в ноябре 2015 года. Он является первым продуктом, выпущенным после основания OpenPOWER Foundation, и включает улучшения для широкого спектра рабочих нагрузок, удаляет категории «сервер» и «встроенные устройства», сохраняя при этом обратную совместимость, и добавляет поддержку инструкций VSX-3. Новые функции включают 128-битные операции с плавающей запятой четырехточной точности, генератор случайных чисел , аппаратную сборку мусора и аппаратные доверенные вычисления.
В марте 2017 года спецификация была пересмотрена до спецификации Power ISA v.3.0 B. [19] [23] и снова пересмотрен до версии 3.0C в мае 2020 года. [19] [24] [25] Одним из основных изменений с версии 3.0 на версию 3.0B является удаление поддержки аппаратной сборки мусора.Ключевое различие между версией 3.0B и версией 3.0C заключается в том, что уровни соответствия, перечисленные в версии 3.1, также были добавлены в версию 3.0C.
- Совместимые ядра
- Все ядра, соответствующие предыдущим версиям Power ISA.
- POWER9 [26]
- OpenPOWER Микроватт
- Libre-SOC стремится обеспечить совместимость Embedded FP только с Power ISA 3.0.
Питание ISA v.3.1
[ редактировать ]Спецификация Power ISA v.3.1 [19] [27] был выпущен в мае 2020 года. В основном обеспечивает поддержку новых функций, представленных в Power10, но также включает понятие необязательности для спецификации PowerISA. Инструкции теперь могут иметь длину восемь байтов , «инструкции с префиксом», по сравнению с обычными четырехбайтовыми «словными инструкциями». Также добавлено множество новых функций для инструкций SIMD и VSX. VSX и расширение SVP64 обеспечивают аппаратную поддержку 16-битных чисел с плавающей запятой половинной точности. [28] [29]
Одним из ключевых преимуществ новых 64-битных инструкций с префиксами является расширение немедленных операций в ветвях до 34-битных.
В сентябре 2021 года спецификация была пересмотрена до спецификации Power ISA v.3.1B. [19] [30]
В мае 2024 года спецификация была пересмотрена до спецификации Power ISA v.3.1C. [19] [31]
- Совместимые ядра
- Все ядра, соответствующие предыдущим версиям Power ISA.
- Мощность10 [32]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Окончательный проект соглашения Power ISA EULA.
- ^ Open Power ISA: соответствие архитектуры и основы будущего
- ^ Раздел 2.2 Лицензионного соглашения OPF Power ISA.
- ^ ЭЛЬФ PP64 АБИ
- ^ OpenPOWER EABI v2
- ^ Страница 18 «Зеленая карта» RISC-V.
- ^ «Power ISA v.2.03» (PDF) . Power.org. 29 сентября 2006 г. Архивировано из оригинала (PDF) 27 июля 2011 г.
- ^ «Книга по архитектуре PowerPC, версия 2.02» . ИБМ. 24 февраля 2005 г. Архивировано из оригинала 18 октября 2007 г. Проверено 16 марта 2007 г.
- ^ «PowerPC Book E v.1.0» (PDF) . ИБМ. 07.05.2002. Архивировано (PDF) из оригинала 10 марта 2018 г. Проверено 16 марта 2007 г.
- ^ «Power ISA версии 2.04» (PDF) . Power.org. 12 июня 2007 г. Архивировано из оригинала (PDF) 27 сентября 2007 г. Проверено 14 июня 2007 г.
- ^ «Power ISA версии 2.05» . Power.org. 23 октября 2007 г. Архивировано из оригинала 24 ноября 2012 г. Проверено 18 декабря 2007 г.
- ^ «Power.org представляет усовершенствованные спецификации и новые услуги на конференции разработчиков Power Architecture» (пресс-релиз). Power.org. 24 сентября 2007 г. Архивировано из оригинала 12 октября 2007 г. Проверено 24 сентября 2007 г.
- ^ Jump up to: а б «Power ISA версии 2.06, редакция B» . Power.org. 23 июля 2010 г. Архивировано из оригинала 24 ноября 2012 г. Проверено 12 февраля 2011 г.
- ^ «Ускорение рабочих нагрузок с помощью векторно-скалярной архитектуры IBM POWER» . ИБМ. 01.03.2016 . Проверено 2 мая 2017 г.
- ^ «Power ISA 2.06 Rev. B обеспечивает полную аппаратную виртуализацию встроенного пространства» . ЭТаймс. 03.11.2010 . Проверено 8 июня 2011 г.
- ^ Jump up to: а б с д «Power ISA версии 2.07» (PDF) . Power.org. 15 мая 2013 г. Проверено 2 ноября 2023 г.
- ^ Барбоза, Леонидас (21 сентября 2014 г.). «Встроенная криптография POWER8» . ИБМ.
- ^ Методы оптимизации и настройки производительности процессоров IBM Power Systems, включая IBM POWER8 . ИБМ. Август 2015. с. 48. ИСБН 9780738440927 .
- ^ Jump up to: а б с д и ж «Архитектура набора команд» . Фонд OpenPOWER .
- ^ «Power ISA версии 2.07 B» . Power.org. 09.04.2015 . Проверено 23 февраля 2023 г.
- ^ Объявление о новой эре открытости с Power 3.0
- ^ «Power ISA версии 3.0» . openpowerfoundation.org. 30 ноября 2016 г. Проверено 6 января 2017 г. [ мертвая ссылка ]
- ^ «Power ISA версии 3.0 B» . ИБМ. 2017-03-29 . Проверено 23 февраля 2023 г.
- ^ «Power ISA версии 3.0 C» . Фонд OpenPOWER. 01.05.2020 . Проверено 23 февраля 2023 г.
- ^ список спецификаций Power ISA
- ^ [ИСПРАВЛЕНИЕ, ЗАВЕРШЕНО] Добавлена полная поддержка binutils Power ISA 3.0 / POWER9.
- ^ «Power ISA версии 3.1» . Фонд OpenPOWER. 01.05.2020 . Проверено 23 февраля 2023 г.
- ^ «OPF_PowerISA_v3.1B.pdf» . Файлы OpenPOWER . Фонд OpenPOWER . Проверено 2 июля 2023 г.
- ^ «ls005.xlen.mdwn» . libre-soc.org Git . Проверено 2 июля 2023 г.
- ^ «Power ISA версии 3.1B» . Фонд OpenPOWER. 14 сентября 2021 г. Проверено 23 февраля 2023 г.
- ^ «Power ISA версии 3.1C» . Фонд OpenPOWER. 26 мая 2024 г. Проверено 4 июля 2024 г.
- ^ Со, Карлос Эдуардо (12 мая 2020 г.). «Мы выпустили архитектуру набора инструкций для POWER10. Power ISA v3.1 доступен на портале IBM для OpenPOWER» . Твиттер.com . Проверено 23 мая 2020 г.