Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD...

34
Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales III Ing. Gustavo Nudelman 2011

Transcript of Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD...

Page 1: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Arquitectura SIMD

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Técnicas Digitales III Ing. Gustavo Nudelman 2011

Page 2: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Introducción

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Una señal es la descripción de cómo un parámetro varia respecto

a otro

• Provienen de sistemas reales

• El análisis matemático suele dividirse en 3 etapas:

• Transitorio de encendido

• Estado constante

• Transitorio de apagado

• Generalmente en multimedia no se modelizan los transitorios

Page 3: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Procesamiento digital de señales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• DSP (Digital signal processing) – Se distingue de otros sistemas

computacionales al ser estos optimizados para un único tipo de

datos: Señales analógicas digitalizadas

• Debido a que se procesan secuencias digitales, todo operador de

DSP es un operador de tiempo discreto.

DSP

Page 4: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Procesamiento digital de señales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Se pueden efectuar múltiples operaciones sobre una misma

secuencia.

• O trabajar con el resultado de la salida

Page 5: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Procesamiento digital de señales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Cuando procesamos señales, un tipo muy común 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

Page 6: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Arquitectura SIMD

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• SIMD (Single instruction multiple data) permite efectuar varias

operaciones de calculo con una sola instrucción

• 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 operación en grupos datos diferentes

como, Muestras contiguas de audio, matrices de video, etc.

Page 7: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Topología de una operación SIMD

Page 8: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Ejemplos aplicables a SIMD

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Superposición de imágenes de 256 tonos de grises.

255

255

255),(

,, jiji BfAfjiR

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.

Page 9: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Ejemplos aplicables a SIMD

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Efecto Erosión

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

);;;;;;;;min( 1,11,11,11,1,1,11,1,,, jijijijijijijijijiji AAAAAAAAAB

Page 10: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Convolución

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Definición matemática

Page 11: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Primer Implementación SIMD

• El procesador Pentium MMX introdujo en la arquitectura IA32 un set de

recursos para el tratamiento de señales.

Page 12: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Representación de datos enteros

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Enteros no signados

0 – 255 bytes enteros no signados

0 – 65535 words enteras no signadas

0 – double words enteras no signadas

0 – quad words enteras no signadas

• Enteros signados

-128 – 127 bytes enteros signados

-32768 – 32767 words enteras signadas

- double words enteras signadas

quad words enteras signadas

1232

1264

312 1231 632 1263

Page 13: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Representación de datos enteros

Page 14: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Necesidad de algoritmos DSP

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Para implementar hardware apto para DSP, los diseñadores estudiaron

las características de los algoritmos de procesamiento de audio, imágenes

2D y 3D, compresión de audio y video, text to speech, filtrado digital, etc.

Características comunes

• Tipos de datos de poco tamaño 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

Page 15: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Necesidad de algoritmos DSP

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• En los algoritmos DSP es muy común 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 acumulación.

• En este punto los procesadores convencionales indican la situación

mediante un flag de overflow, y en el operando destino se almacena el

valor de desborde.

• La aplicación chequea dentro del lazo de calculo este flag y de acuerdo

a su estado decide si sigue la acumulación.

• El costo de esta practica de programación es tiempo de ejecución para

analizar como tratar cada resultado parcial.

Page 16: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Aritmética DSP – Algoritmos de calculo

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Aritmética de desborde (Wraparound): Operatoria clásica basada en

la que un desborde afecta a un flag que será posible evaluar invirtiendo

los tiempos que esto conlleva.

Aritmética Saturada: Al producirse una condición fuera de rango el operando destino mantiene el máximo o mínimo valor del rango (dependiendo si la condición se ha producido por exceso o por defecto).

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

Operando 1 4D 23 9F C0 11 4A 29 0B

Operando 2 32 FF 1A 0D 3F AF B0 36

Suma con desborde 7F 22 B9 CD 50 F9 D9 41

Suma Saturada 7F FF B9 CD 50 F9 D9 41

Ejemplo de una suma empaquetada en bytes

Page 17: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Instrucciones MMX - Transferencia

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

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 Registro mmx de 64 bits (mm0 – mm7)

r Registro de propósito general

m32 y m64 Punteros a memoria que contiene datos de 32 y 64 bits

xmm Registro xmm de 128 bits

Page 18: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX – Aritméticas

Page 19: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX – Suma empaquetada

Page 20: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX – Resta empaquetada

Page 21: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX – Multiplicación empaquetada

Page 22: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX – Suma de productos

Page 23: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Instrucciones MMX - Lógicas

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Tratan a los contenidos de los registros MMX como datos puros

de 64 bits.

• No tienen en cuenta ningún tipo de empaquetamiento de modo

que resultan mas similares a las instrucciones correspondientes al

modelo de registros de propósito 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

dirección de memoria de 64 bits de ancho.

• El operando destino solo puede ser un registro MMX.

Page 24: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Instrucciones MMX - Desplazamiento

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

PSLLW, PSLLD, y PSLLQ (Packed Shift Left Logical) desplazan en

forma lógica 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 aritmético

(conservan el signo de cada operando empaquetado). Solo se

dispone de instrucciones de Word y doble word empaquetadas.

Page 25: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX – Desplazamiento

Page 26: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Instrucciones MMX - Comparación

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• A diferencia de las instrucciones de comparación 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 verificación.

• 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 condición sea EQ (Equal) cada dato empaquetado

del operando destino que cumpla la condición se pone en FF, FFFF, o

FFFFFFFF, según el tipo de dato empaquetado que se evalúe. Si la

condición no se cumple se pone a 0.

(Ej.: PCMPEQB mm0,mm0 ;setea mm0 en FF FF FF FF FF FF FF FF.)

Page 27: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Instrucciones MMX - Conversión

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Se trata de un conjunto de instrucciones auxiliares para convertir datos

empaquetados a formatos de datos empaquetados de menor tamaño.

• 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 dirección de memoria de 64 bits (operando

origen), y el resultado se almacena en el operando destino.

Page 28: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX – Conversión

Page 29: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX – Conversión - 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

Page 30: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Instrucciones MMX - Desempaquetado

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Desempaquetan , parte de los operandos fuente y destino (32 bits

en cada caso) almacenando los 64 bits del resultado en el

operando destino.

• Según la instrucción 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

Page 31: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX – Desempaquetado (Low)

Page 32: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Instrucciones MMX – Desempaquetado (High)

Page 33: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

SSE Extensions

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Mejoras adicionales al modelo SIMD del Pentium MMX, y Pentium II Incorporado con Pentium 3 Set de registros exclusivos (128 bits)

Page 34: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales

Modelo completo de programación

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires