![Page 1: Arquitectura SIMD - Universidad Tecnologica Nacionalgnudelman/SIMD.pdf · Arquitectura SIMD Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/30.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/31.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/32.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/33.jpg)
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](https://reader031.vdocuments.co/reader031/viewer/2022020114/5bc5b9c809d3f260758dae16/html5/thumbnails/34.jpg)
Modelo completo de programación
Universidad Tecnológica Nacional - Facultad Regional Buenos Aires