Las extensiones de aceleración multimedia o MAX son extensiones del conjunto de instrucciones de la arquitectura del conjunto de instrucciones (ISA) PA-RISC de Hewlett-Packard . MAX se desarrolló para mejorar el rendimiento de las aplicaciones multimedia que se estaban volviendo más frecuentes durante la década de 1990.
Las instrucciones MAX operan en tipos de datos SIMD de 32 o 64 bits que consisten en múltiples enteros de 16 bits empaquetados en registros de propósito general . La funcionalidad disponible incluye sumas, restas y turnos.
La primera versión, MAX-1 , fue para PA-RISC 1.1 ISA de 32 bits . La segunda versión, MAX-2 , fue para PA-RISC 2.0 ISA de 64 bits .
Notabilidad
El enfoque es notable porque el conjunto de instrucciones es mucho más pequeño que en otras CPU multimedia y también de uso más general. El pequeño conjunto y la simplicidad de las instrucciones reducen los costos recurrentes de la electrónica, así como los costos y la dificultad del diseño. La naturaleza de propósito general de las instrucciones aumenta su valor general. Estas instrucciones solo requieren pequeños cambios en la unidad aritmético-lógica de la CPU. Un enfoque de diseño similar promete ser un modelo exitoso para las instrucciones multimedia de otros diseños de CPU. [1] [2] [3] El conjunto también es pequeño porque la CPU ya incluía potentes instrucciones de desplazamiento y manipulación de bits: "Par de cambios" que desplaza un par de registros, "extraer" e "insertar" campos de bits, y todas las operaciones lógicas de bits comunes (y, o, exclusivo-o, etc.). [2]
Este conjunto de instrucciones multimedia también ha demostrado su rendimiento. En 1996, las instrucciones "MAX-2" de 64 bits permitieron el rendimiento en tiempo real de video MPEG-1 y MPEG-2 mientras aumentaban el área de una CPU RISC en solo un 0,2%. [1]
Implementaciones
MAX-1 se implementó por primera vez con el PA-7100LC en 1994. Por lo general, se le atribuye como las primeras extensiones SIMD a un ISA. La segunda versión, MAX-2 , fue para PA-RISC 2.0 ISA de 64 bits . Se implementó por primera vez en el microprocesador PA-8000 lanzado en 1996. [1]
El enfoque básico de la aritmética en MAX-2 es "interrumpir los acarreos" entre las subpalabras de 16 bits y elegir entre aritmética modular, saturación con signo y sin signo. Esto requiere solo pequeños cambios en la unidad lógica aritmética. [2]
MAX-1
Instrucción | Descripción |
---|---|
HADD | Sumar en paralelo con módulo aritmético |
HADD, ss | Adición paralela con saturación firmada |
HADD, nosotros | Adición paralela con saturación sin firmar |
HSUB | Resta paralela con módulo aritmético |
HSUB, ss | Resta paralela con saturación con signo |
HSUB, nosotros | Resta paralela con saturación sin signo |
TENGO | Media paralela |
HSHLADD | Desplazamiento paralelo a la izquierda y sumar con saturación con signo |
HSHRADD | Desplazamiento paralelo a la derecha y sumar con saturación con signo |
MAX-2
Las instrucciones MAX-2 son instrucciones de registro a registro que operan en múltiples enteros en cantidades de 64 bits. Todos tienen una latencia de un ciclo en el microprocesador PA-8000 y sus derivados. Los accesos a la memoria se realizan mediante las cargas y almacenes estándar de 64 bits.
Las instrucciones "MIX" y "PERMH" son una innovación notable porque permutan palabras en el conjunto de registros sin acceder a la memoria. Esto puede acelerar sustancialmente muchas operaciones. [2]
Instrucción | Descripción |
---|---|
HADD | Sumar en paralelo con módulo aritmético |
HADD, ss | Adición paralela con saturación firmada |
HADD, nosotros | Adición paralela con saturación sin firmar |
HSUB | Resta paralela con módulo aritmético |
HSUB, ss | Resta paralela con saturación con signo |
HSUB, nosotros | Resta paralela con saturación sin signo |
HSHLADD | Desplazamiento paralelo a la izquierda y sumar con saturación con signo |
HSHRADD | Desplazamiento paralelo a la derecha y sumar con saturación con signo |
HAVG | Media paralela |
HSHR | Desplazamiento paralelo a la derecha firmado |
HSHR, u | Desplazamiento paralelo a la derecha sin firmar |
HSHL | Desplazamiento paralelo a la izquierda |
MEZCLA | Mezcle palabras secundarias de 16 bits en una palabra de 64 bits; MIX Izquierda, Ra, Rb, Rc, Rc: = a1, b1, a3, b3; MIX Derecha, Rc: = a2, b2, a4, b4 [2] |
MEZCLA | Mezcle palabras secundarias de 32 bits en una palabra de 64 bits; por ejemplo, MIXW Izquierda, Ra, Rb, Rc, Rc: = a1, a2, b1, b2; MIXW Derecha, Rc: = a3, a4, b3, b4 [2] |
PERMH | Permutar subpalabras de 16 bits de la fuente en cualquier posible permutación en el registro de destino, incluidas las repeticiones. [2] |
Referencias
- ↑ a b c Lee, Ruby B. (agosto de 1996). "Paralelismo de subpalabras con MAX-2" (PDF) . IEEE Micro . 16 (4): 51–59. doi : 10.1109 / 40.526925 . Consultado el 21 de septiembre de 2014 .
- ^ a b c d e f g Lee, Ruby ; Huck, Jerry (25 de febrero de 1996). "Extensiones multimedia y de 64 bits en la arquitectura PA-RISC 2.0". Actas de Compcon 96 : 152–160. doi : 10.1109 / CMPCON.1996.501762 . ISBN 0-8186-7414-8.
- ^ Lee, Ruby B. (abril de 1995). "Aceleración de multimedia con microprocesadores mejorados" (PDF) . IEEE Micro . 15 (2): 22–32. doi : 10.1109 / 40.372347 . Consultado el 21 de septiembre de 2014 .
- Extensiones de aceleración multimedia (MAX-1 y MAX-2) Arquitectura de CPU PA-RISC OpenPA.net