Extensiones multimedia

A lo largo de estos últimos años los diseñadores de procesadores han ido añadiendo nuevas instrucciones a los repertorios máquina de sus diseños con el objetivo de mejorar el rendimiento de los procesadores de propósito general en la ejecución de aplicaciones y códigos concretos: instrucciones que incorporan predicados y ahorran así bifurcaciones, instrucciones que combinan dos o más operaciones que suelen aparecer siempre agrupadas, etc.

El ejemplo típico de estas extensiones que mejoran la ejecución de cierto tipo de aplicaciones son las extensiones multimedia. En este tipo de aplicación es habitual realizar operaciones repetitivas sobre diferentes operandos que no llegan a los 32 bits de un típico tipo entero (un píxel son 8 bits, una muestra de audio son 16 bits).

Esto hace que se desaprovechen recursos durante su ejecución, por lo que se incorporan al repertorio instrucciones capaces de operar con vectores (instrucciones Single Instruction Multiple Data o SIMD) que agrupen en los registros típicos de 64 bits, 8 operandos de 8 bits, 4 operandos de 16 bits o 2 operandos de 32 bits.

Para cada tipo de vector se suelen incluir en esta extensiones instrucciones aritmético-lógicas (suma, resta, multiplicación, comparación, desplazamiento, and, or y xor, típicamente), de acceso a memoria (load y store) y de empaquetamiento, reordenamiento y copia de datos.

Estos repertorios surgieron para trabajar con vectores de números enteros pero luego se han realizado nuevas extensiones para poder agrupar también operandos en coma flotante en los registros de 128 bits.

Quizás las extensiones multimedia más conocidas sean las extensiones de las arquitecturas x86, primero fueron las MMX, y después las diferentes versiones de las 3DNow! (procesadores AMD) y las SSE (procesadores Intel primero y después también de AMD). Actualmente la versión de las SSE que se incluye en los procesadores es la versión SSE4, de la que hablaremos en futuras entradas, ya que su utilización os permitirá mejorar el rendimiento de vuestros procesadores en multitud de las aplicaciones industriales típicas.


No hay comentarios: