Расширения ускорения мультимедиа
Расширения Multimedia Acceleration eXtensions или MAX — это расширения набора команд Hewlett-Packard PA-RISC архитектуры набора команд (ISA). MAX был разработан для повышения производительности мультимедийных приложений, которые становились все более распространенными в 1990-е годы.
Инструкции MAX оперируют 32- или 64-битными SIMD, типами данных состоящими из нескольких 16-битных целых чисел, упакованных в регистры общего назначения . Доступная функциональность включает в себя сложение, вычитание и сдвиг.
Первая версия, MAX-1 , предназначалась для 32-битной PA-RISC 1.1 ISA. Вторая версия, MAX-2 , предназначалась для 64-битной PA-RISC 2.0 ISA.
Известность
[ редактировать ]Этот подход примечателен тем, что набор инструкций намного меньше, чем в других мультимедийных процессорах, а также более универсален. Небольшой набор и простота инструкций снижают текущие затраты на электронику, а также затраты и сложность конструкции. Универсальный характер инструкций повышает их общую ценность. Эти инструкции требуют лишь небольших изменений в арифметико-логическом устройстве ЦП. Подобный подход к проектированию обещает стать успешной моделью для мультимедийных инструкций других конструкций ЦП. [1] [2] [3] Набор также невелик, поскольку ЦП уже включает в себя мощные инструкции сдвига и битовых манипуляций: «Пара сдвига», которая сдвигает пару регистров, «извлечение» и «сложение» битовых полей, а также все распространенные побитовые логические операции ( и, или, исключающее-или и т. д.). [2]
Этот набор мультимедийных инструкций также доказал свою эффективность. В 1996 году 64-битные инструкции «MAX-2» обеспечили производительность видео MPEG-1 и MPEG-2 в реальном времени , увеличив при этом площадь RISC-процессора всего на 0,2%. [1]
Реализации
[ редактировать ]MAX-1 был впервые реализован в PA-7100LC в 1994 году. Его обычно называют первым расширением SIMD для ISA. Вторая версия, MAX-2 , предназначалась для 64-битной PA-RISC 2.0 ISA. Впервые он был реализован в микропроцессоре PA-8000 , выпущенном в 1996 году. [1]
Основной подход к арифметике в MAX-2 состоит в том, чтобы «прерывать переносы» между 16-битными подсловами и выбирать между модульной арифметикой, знаковым и беззнаковым насыщением. Для этого требуются лишь небольшие изменения в арифметико-логическом блоке. [2]
МАКС-1
[ редактировать ]Инструкция | Описание |
---|---|
ПОЗВОЛЯТЬ | Параллельное сложение с арифметикой по модулю |
ДАВАЙ, сс | Параллельное добавление со знаковым насыщением |
Давайте | Параллельное сложение с беззнаковым насыщением |
HSUB | Параллельное вычитание с арифметикой по модулю |
ВСуб,сс | Параллельное вычитание со знаковым насыщением |
HSUB, мы | Параллельное вычитание с беззнаковым насыщением |
ИМЕТЬ | Параллельное среднее |
ХШЛАДД | Параллельный сдвиг влево и добавление насыщенности со знаком |
ХШРАДД | Параллельный сдвиг вправо и добавление насыщенности со знаком |
МАКС-2
[ редактировать ]Инструкции MAX-2 — это инструкции между регистрами, которые оперируют несколькими целыми числами в 64-битных количествах. Все они имеют задержку в один цикл в микропроцессоре PA-8000 и его производных. Доступ к памяти осуществляется через стандартную 64-битную загрузку и сохранение.
Инструкции «MIX» и «PERMH» являются заметным нововведением, поскольку они переставляют слова в наборе регистров без доступа к памяти. Это может существенно ускорить многие операции. [2]
Инструкция | Описание |
---|---|
ПОЗВОЛЯТЬ | Параллельное сложение с арифметикой по модулю |
ДАВАЙ, сс | Параллельное добавление со знаковым насыщением |
Давайте | Параллельное сложение с беззнаковым насыщением |
HSUB | Параллельное вычитание с арифметикой по модулю |
ВСуб,сс | Параллельное вычитание со знаковым насыщением |
HSUB, мы | Параллельное вычитание с беззнаковым насыщением |
ХШЛАДД | Параллельный сдвиг влево и добавление насыщенности со знаком |
ХШРАДД | Параллельный сдвиг вправо и добавление насыщенности со знаком |
ХАВГ | Параллельное среднее |
ВШР | Параллельный сдвиг вправо подписан |
ХШР, ты | Параллельный сдвиг вправо без знака |
ХШЛ | Параллельный сдвиг влево |
СМЕШИВАНИЕ | Смешайте 16-битные подслова в 64-битном слове; MIX Левый, Ra,Rb,Rc, Rc:=a1,b1,a3,b3; MIX Вправо, Rc:=a2,b2,a4,b4 [2] |
МИКСВ | Смешайте 32-битные подслова в 64-битном слове; например, MIXW слева, Ra,Rb,Rc, Rc:=a1,a2,b1,b2; MIXW Вправо, Rc:=a3,a4,b3,b4 [2] |
ПЕРМЬ | Переставляйте 16-битные подслова источника в любой возможной перестановке в регистре назначения, включая повторы. [2] |
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с Ли, Руби Б. (август 1996 г.). «Параллелизм подслов с MAX-2» (PDF) . IEEE микро . 16 (4): 51–59. дои : 10.1109/40.526925 . Проверено 21 сентября 2014 г.
- ^ Перейти обратно: а б с д и ж г Ли, Руби ; Хак, Джерри (25 февраля 1996 г.). «64-битные и мультимедийные расширения в архитектуре PA-RISC 2.0». КОМПКОН '96. Технологии для информационной супермагистрали . Сборник статей. стр. 152–160. дои : 10.1109/CMPCON.1996.501762 . ISBN 0-8186-7414-8 . S2CID 13081443 .
- ^ Ли, Руби Б. (апрель 1995 г.). «Ускорение мультимедиа с помощью усовершенствованных микропроцессоров» (PDF) . IEEE микро . 15 (2): 22–32. дои : 10.1109/40.372347 . Проверено 21 сентября 2014 г.