Está en la página 1de 34

Arquitectura SIMD

Tcnicas Digitales III Ing. Gustavo Nudelman 2013

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Introduccin
Una seal es la descripcin de cmo un parmetro varia respecto a otro

Provienen de sistemas reales

El anlisis matemtico suele dividirse en 3 etapas: Transitorio de encendido Estado constante Transitorio de apagado

Generalmente en multimedia no se modelizan los transitorios

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Procesamiento digital de seales


DSP (Digital signal processing) Se distingue de otros sistemas computacionales al ser estos optimizados para un nico tipo de datos: Seales analgicas digitalizadas
Debido a que se procesan secuencias digitales, todo operador de DSP es un operador de tiempo discreto.

DSP

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Procesamiento digital de seales


Se pueden efectuar mltiples operaciones sobre una misma secuencia.

O trabajar con el resultado de la salida

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Procesamiento digital de seales


Cuando procesamos seales, un tipo muy comn de calculo que se realiza en cada muestra es afectar a la misma por coeficientes que dependen de dicha muestra y de las muestras anteriores

Se utilizan arquitecturas optimizadas para este tipo de funciones lineales

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Arquitectura SIMD

SIMD (Single instruction multiple data) permite efectuar varias operaciones de calculo con una sola instruccin
A los procesadores basados en esta arquitectura, se los conoce como procesadores matriciales Esta arquitectura nace debido a la necesidad de aplicar repetidamente una misma operacin en grupos datos diferentes como, Muestras contiguas de audio, matrices de video, etc.

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Topologa de una operacin SIMD

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Ejemplos aplicables a SIMD


Superposicin de imgenes de 256 tonos de grises.

R(i, j )

f Ai , j 255

255 f Bi , j
255

Donde A y B son las matrices de pixels en 256 tonos de gris y f (entre 0 y 255) el coeficiente de intensidad o mezcla.

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Ejemplos aplicables a SIMD


Efecto Erosin

Bi , j min( Ai , j ; Ai , j 1; Ai , j 1; Ai 1, j ; Ai 1, j ; Ai 1, j 1; Ai 1, j 1; Ai 1, j 1; Ai 1, j 1 )

La matriz B contiene la imagen erosionada de la matriz A Cada punto es reemplazado por el mnimo de su entorno.

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Convolucin
Definicin matemtica

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Primer Implementacin SIMD


El procesador Pentium MMX introdujo en la arquitectura IA32 un set de recursos para el tratamiento de seales.

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Representacin de datos enteros


Enteros no signados
bytes enteros no signados words enteras no signadas double words enteras no signadas quad words enteras no signadas 0 255 0 65535 0 232 1 0 264 1

Enteros signados bytes enteros signados words enteras signadas double words enteras signadas quad words enteras signadas

-128 127 -32768 32767 231 - 231 1


263

63

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Representacin de datos enteros

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Necesidad de algoritmos DSP


Para implementar hardware apto para DSP, los diseadores estudiaron las caractersticas de los algoritmos de procesamiento de audio, imgenes 2D y 3D, compresin de audio y video, text to speech, filtrado digital, etc.

Caractersticas comunes Tipos de datos de poco tamao pixeles: 8 o 16 bits y muestras de audio: 8 o 16 bits Patrones de acceso secuencial a memoria buffers circulares Operaciones simples y recurrentes sobre los datos de entrada Acumulaciones de productos

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

DSP Costo del Desborde


En los algoritmos DSP es muy comn acumular totales o realizar repetidamente sumas en un registro Se llega a un punto en el que el rango del resultado excede la capacidad de bits del registro de acumulacin. En este punto los procesadores convencionales indican la situacin mediante un flag de overflow, y en el operando destino se almacena el valor de desborde. La aplicacin chequea dentro del lazo de calculo este flag y de acuerdo a su estado decide si sigue la acumulacin. El costo de esta practica de programacin es tiempo de ejecucin para analizar como tratar cada resultado parcial.

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Aritmtica DSP Algoritmos de calculo


Aritmtica de desborde (Wraparound): Operatoria clsica basada en la que un desborde afecta a un flag que ser posible evaluar invirtiendo los tiempos que esto conlleva. Aritmtica Saturada: Al producirse una condicin fuera de rango el operando destino mantiene el mximo o mnimo valor del rango (dependiendo si la condicin se ha producido por exceso o por defecto).

Ejemplo de una suma empaquetada en bytes

Byte 7
Operando 1 Operando 2 Suma con desborde Suma Saturada 4D 32 7F 7F

Byte 6 Byte 5 Byte 4 Byte 3 Byte 2 Byte 1 Byte 0


23 FF 22 FF 9F 1A B9 B9 C0 0D CD CD 11 3F 50 50 4A AF F9 F9 29 B0 D9 D9 0B 36 41 41

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX - Transferencia


MOVD (double word):
MOVD mm,r/m32 MOVD r/m32,mm MOVD xmm,r/m32 MOVD r/m32,xmm

MOVq(double quadword):
MOVQ mm,mm/m64 MOVQ mm/m64,mm MOVQ xmm1,xmm2/m64 MOVQ xmm2/m64,xmm1

mm r m32 y m64 xmm

Registro mmx de 64 bits (mm0 mm7) Registro de propsito general Punteros a memoria que contiene datos de 32 y 64 bits Registro xmm de 128 bits

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX Aritmticas

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX Suma empaquetada

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX Resta empaquetada

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX Multiplicacin empaquetada

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX Suma de productos

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX - Lgicas

Tratan a los contenidos de los registros MMX como datos puros de 64 bits.
No tienen en cuenta ningn tipo de empaquetamiento de modo que resultan mas similares a las instrucciones correspondientes al modelo de registros de propsito general. Son cuatro instrucciones PAND, PANDN, POR, y PXOR.

La P inicial las identifica como instrucciones especificas para este tipo de registros.
El operando fuente pueden ser cualquier registro MMX o cualquier direccin de memoria de 64 bits de ancho. El operando destino solo puede ser un registro MMX.

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX - Desplazamiento


PSLLW, PSLLD, y PSLLQ (Packed Shift Left Logical) desplazan en forma lgica a izquierda los respectivos operandos empaquetados (Bytes, Words, o Double words). PSRLW, PSRLD, y PSRLQ (Packed Shift Right Logical) idem pero desplazando a la derecha

PSRAW y PSRAD realizan un desplazamiento a derecha aritmtico (conservan el signo de cada operando empaquetado). Solo se dispone de instrucciones de Word y doble word empaquetadas.

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX Desplazamiento

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX - Comparacin


A diferencia de las instrucciones de comparacin convencionales, estas instrucciones no afectan el contenido del registro EFLAGS. Lo que hacen en cambio es setear una mascara de bits en el operando destino, que pueden utilizarse como MOV condicionales sin saltos condicionales que demanden tiempo de verificacin. Hay dos tipos de comparaciones posibles: por igual (PCMPEQ) o por mayor (PCMPGT). PCMPEQB, PCMPEQW, PCMPEQD y PCMPGTB, PCMPGTW, PCMPGTD comparan los correspondientes elementos signados (bytes, words, o double words) entre los operandos fuente y destino por igual o mayor que, respectivamente. En el caso de que la condicin sea EQ (Equal) cada dato empaquetado del operando destino que cumpla la condicin se pone en FF, FFFF, o FFFFFFFF, segn el tipo de dato empaquetado que se evale. Si la condicin no se cumple se pone a 0. (Ej.: PCMPEQB mm0,mm0 ;setea mm0 en FF FF FF FF FF FF FF FF.)
Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX - Conversin


Se trata de un conjunto de instrucciones auxiliares para convertir datos empaquetados a formatos de datos empaquetados de menor tamao.
PACKSSWB, se utiliza para convertir words signadas empaquetadas en bytes signados empaquetados. PACKSSDW, se utiliza para convertir doble words signadas empaquetadas en words signadas empaquetadas. PACKUSWB, se utiliza para convertir words no signadas en bytes no signados

Los datos se arman a partir de dos registros MMX o de un registro MMX (operando destino) y una direccin de memoria de 64 bits (operando origen), y el resultado se almacena en el operando destino.

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX Conversin

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX Conversin - Ejemplo


Jmp Inicio:

op1 dw 0x0003,0x00F0,0x0122,0xA655 op2 dw 0x1247,0x7FFF,0xF000,0x8000


Inicio: movq mm0, QWORD [op1] movq mm1, QWORD [op2] PACKSSWB mm0, mm1

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX - Desempaquetado


Desempaquetan , parte de los operandos fuente y destino (32 bits en cada caso) almacenando los 64 bits del resultado en el operando destino. Segn la instruccin de desempaquetado se puede trabajar con la parte alta o baja de los operandos fuente. Puede desempaquetarse de byte a word, de word a doubleword o de doubleword a Qword

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX Desempaquetado (Low)

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX Desempaquetado (High)

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

SSE Extensions

Mejoras adicionales al modelo SIMD del Pentium MMX, y Pentium II


Incorporado con Pentium 3 Set de registros exclusivos (128 bits)

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

Modelo completo de programacin

Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires