1 / 28

Arquitectura de Procesadores VLIW y DSP

Arquitectura de Procesadores VLIW y DSP. ILP (Instruction Level Parallelism).

frey
Download Presentation

Arquitectura de Procesadores VLIW y DSP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arquitectura de ProcesadoresVLIW y DSP

  2. ILP (Instruction Level Parallelism) • Familia de técnicas de diseño tanto del procesador como del compilador que incrementan la velocidad de ejecución permitiendo que operaciones individuales (instrucciones) tales como loads, stores, operaciones enteras y de CF, se ejecuten en paralelo. • A diferencia de los multiprocesadores tradicionales o máquinas masivamente paralelas, estas técnicas son transparentes al usuario. • Ejemplo de técnicas ILP aplicadas a procesadores: superescalares y VLIW • Ejemplo de técnicas ILP aplicadas al compilador: software pipelining y trace scheduling VLIW y DSP

  3. Surgimiento de VLIW • 1980’s: aparecen en el mercado como una natural evolución de los procesadores microprogramados horizontalmente. debido a los mismos cambios en la tecnología que motivaron la aparición de RISC: la desaparición del gap existente entre RAM y ROM. • El mercado de procesadores especializados, que tenían cableados importantes algoritmos como FFT, reemplazan la ROM de control con RAM, dándoles a los programadores acceso al ILP. VLIW y DSP

  4. Microprogramación • Horizontal: cada microinstrucción contiene n bits, cada uno de los cuales controla directamente cada pieza de hardware, evitando otros niveles de decodificación. Las microinstrucciones horizontales son más largas. • Vertical: cada microinstrucción tiene un pequeño número de campos, muy codificados, de forma que requieren más decodificación antes de aplicarse a los componentes individuales. VLIW y DSP

  5. Surgimiento de VLIW • Tanto en RISC como en VLIW, el tema crucial era el compilador. En el caso de VLIW, el compilador debía generar código “horizontal”: es decir debía especificar el paralelismo directamente. • Técnicas de generación de código se extendieron a partir de las existentes para microcódigo, y se desarrollaron nuevas para incorporar a los compiladores para que éstos extraigan mucho paralelismo. • Se construyeron pocas VLIW CPU’s de propósito general: Culler, Multiflow y Cydrome. A pesar de explotar mucho ILP, no tuvieron éxito comercial. VLIW y DSP

  6. Diferencias y Semejanzas con Superescalares • Semejanzas: misma estructura básica compuesta por múltiples U.F. operando en paralelo, y un único Banco de Registros (o dos para FX y FP) • Diferencias: tipo de instrucciones y scheduling de instrucciones VLIW y DSP

  7. Diferencias y Semejanzas con Superescalares Única Instrucción Multioperación Caché de Instr. Unidad de Fetch VLIW EU EU EU Banco de Registros VLIW y DSP

  8. Diferencias y Semejanzas con Superescalares Múltiples Instrucciones Caché de Instr. Unidad de Fetch Decode/ Inicio Superescalar EU EU EU Banco de Registros VLIW y DSP

  9. Tipos de Instrucciones • Arquitecturas VLIW están controladas por instrucciones largas que contienen un campo de control por cada una de las UF disponibles en la arquitectura. • La longitud de la instrucción depende de dos factores: número de UF disponibles y número de bits necesarios para controlar cada UF. • El número de UF suele ser grande : de 5 a 30. El número de bits de control para cada UF suele ser de 16 o 32 ====> palabras de instrucción de 100-1kbit • Ejemplos: Trace 7/200 ejecuta 7 operaciones por ciclo y utiliza una palabra de instrucción de 256 bits. VLIW y DSP

  10. Scheduling de Instrucciones • Superescalares utilizan sheduling dinámico • VLIW utilizan scheduling estático: es responsabilidad del compilador. • Ventaja: • reduce la complejidad del hardware (no hay detección de riesgos, ni renombre, ni despacho en desorden, ni retiro ordenado, y además la etapa de decodificación es más sencilla) y permite incrementar lavelocidad del reloj o aumentar el paralelismo o ambas a la vez. VLIW y DSP

  11. Scheduling de Instrucciones • Desventaja: • mayor complejidad en el compilador al que le tocan las tareas de detectar y eliminar los riesgos por dependencias de datos, control y recursos. • Pero además, el compilador, para poder realizar su tarea, necesita conocer todas las características del hardware, tales como: número, tipo, latencia, intervalo de iniciación de las UF, slot delay del load, muchos de los cuales dependen no sólo de la arquitectura sino de la tecnología de implementación. ===>>>un mismo compilador NO puede utilizarse para distintos modelos de la misma familia. !!!!! VLIW y DSP

  12. Scheduling de Instrucciones • Mas problemas: • Cache Misses : Debido a que el compilador no conoce cuando se producirán, debe considerar el caso peor de retardo al generan su scheduling. (loads especulativos...) • El formato de la VL Instruction, que es fijo, no siempre contiene información útil en todos los campos ===>>pérdida de espacio y ancho de banda con memoria. • Debido a la alta complejidad de la tarea, los VLIW NO pueden ser programados en lenguaje ensamblador (!) VLIW y DSP

  13. DSP: Digital Signal Processing • Procesadores para procesado digital de señales: se utilizan para teléfonos celulares, modems, discos, contestadoras, etc. • Al bajar el precio de los microprocesadores, éstos pueden ser incorporados a productos del mercado que demandan bajo costo, rapidez, pequeñez y poco consumo de energía===> se desarrollan chips que implementan el procesado de señales. • El mercado de DSP está creciendo. (Forward Concepts reporta en 1997 un movimiento de 3 billones de dolares) VLIW y DSP

  14. DSP: Funciones de Filtro • Una de las funciones más comunes en DSP: filtrado de señales. xn xn-1 x1 D D D c1 c2 Cn-1 cn x x x x yn + + + Tap yn = xn c1 + xn-1c2 +........ +x1 cn VLIW y DSP

  15. DSP: instrucción MAC • El número de TAP’s, y los valores de los coeficientes definen las características del filtro. • La operación realizada (yk = yk-1 + xk cj) se llama MAC: multiply-accumulate. • Para soportar la MAC eficientemente, DSP tienen hardware especializado de multiplicación (multiplican en un ciclo) y registros acumuladores especiales (más grandes que los registros comunes) • Casi todos los procesadores DSP tienen una instrucción de MAC en su conjunto de instrucciones. • Esta es una diferencia con los GPP. VLIW y DSP

  16. DSP: instrucción MAC • DSP requieren mucho ancho de banda con memoria: por ejemplo, para ejecutar un MAC por ciclo, se requieren 4 accesos a memoria por ciclo: • fetch de la instrucción MAC • leer el elemento x correspondiente • leer el coeficiente • escribir el resultado • DSP utilizan la arquitectura de memoria Harvard. Un típico GGP utiliza la arquitectura Von Neumann. VLIW y DSP

  17. Arquitecturas de Memoria: Harvard y Von Neumann Procesador Procesador Bus de Direcciones 1 Bus de Direcciones Bus de Datos 1 Bus de Direcciones 2 Bus de Datos Bus de Datos 2 Memoria Memoria Memoria VLIW y DSP

  18. DSP: memoria • Desde el punto de vista físico, la arquitectura de memoria con caches de instrucciones y datos de los procesadores superescalares es casi idéntica a la arquitectura Harvard. • Desde el punto de vista lógico, hay diferencias: • En DSP, el programador controla EXPLÍCITAMENTE qué datos e instrucciones se alamcenan en sus memorias. • En GPP, el proceso de decidir que datos e instrucciones residen en la caché, es transparente al programador: desde el punto de vista del programador solo hay una única memoria de datos e instrucciones (Von Neumann) • La mayoría de los DSP no contienen caché: usan múltiples bancos de memoria dentro del chip.Algunos pueden llegar a tener una pequeña caché de instrucciones, pero no de datos porque los datos en los algoritmos de DSP se usan y se descartan. (no hay reuso)

  19. DSP y GPP: diferencias • DSP: Zero overhead looping: hardware especializado para la ejecución de loops (instrucción loop) • GPP: predicción de saltos • DSP: aritmética entera, porque es menos costosa. • DSP: modos de direccionamiento especializados: modulo addressing y bit reversed addressing • DSP: aplicaciones de tiempo real. Esto requiere del programador el conocimiento exacto de cuanto tiempo de proceso requerirá cada muestra (o al menos, el peor caso). VLIW y DSP

  20. DSP y GPP: diferencias • GPP’s de alto rendimiento : es difícil predecir el tiempo de ejecución de un trozo de código: POCA PREDICTIBILIDAD, porque la ejecución especulativa hace que un mismo trozo de código consuma distinta cantidad de ciclos según la historia previa de ejecución • DSP, no tienen ejecución especulativa y, en caso de que hubiera caché de instrucciones, es el programador el que sabe que instrucciones están alli====> MUCHA PREDICTIBILIDAD. VLIW y DSP

  21. DSP y GPP: Instrucciones • DSP ISA’s diseñados para conseguir muchas instrucciones por ciclo y poco consumo de memoria ==> muchas operaciones en una única instrucción, pero muy especializadas ==> conjuntos de instrucciones irregulares y complicados. • Motorola DSP56300: dos espacios de memoria X e Y MAC X0, Y0, A X:(R0)+, X0 Y:(R4)+N4, Y0 • Multiplica X0 por Y0 • Suma el resultado a A (aumulador) • Carga registro X0 con la posición apuntada por R0 de memoria X • Carga registro Y0 con la posición apuntada por R4 de memoria Y • Postincrementa R0 por 1 • Postincrementa R4 por el contenido de N4

  22. DSP y GPP: Programación • GPP se programan en alto nivel. • DSP se programan en ensamblador porque la complejidad de la arquitectura (múltiples espacios de memoria, juego irregular de instrucciones y hardware especializado) hacen difícil escribir compiladores eficientes. • Optimización de código es esencial en DSP: mucha computación a bajo costo. Los vendedores de DSP proveen herramientas de optimización y simulación. Se mejora “a mano”el resultado del compilador.

  23. Tipos de DSP • Bajo Costo, Bajo Rendimiento: • TI TMS320C2xx, Motorola DSP560xx (Familias) • Operan a razón de 20-50MIPS Nativos • Poco consumo de energía, poca memoria. • Uso: productos que requieren poco rendimiento pero tienen mucho consumo, por ejemplo disk drives, contestadoras • DSP medios: • Mayor frecuencia de reloj : 100-120 MIPS • TI TMS320C54xx, Lucent Technologies DSP16xx (Familias) • Hardware más sofisticado: pipeline, cachés de instrucciones • Uso: productos que requieren alto rendimiento computacional y poco consumo, por ejemplo modems de alta velocidad.

  24. Tipos de DSP • Alto Rendimiento:Procesamiento ultrarrápido, Diversidad de Arquitecturas. • Convencionales Mejorados • Inicio de Múltiples Instrucciones por Ciclo • Convencionales Mejorados: • Se agregan UF (Multiplicadores, Sumadores), soporte dentro del juego de instrucciones para el hardware adicional. • Ejemplo: Lucent Technologies DSP16210 100MIPS • Inicio Múltiple: • En GPP, el inicio múltiple se consigue con técnicas superescalares • En DSP, con VLIW

  25. VLIW DSP’s • Texas Instruments TMS320C6000 (Fabio) • 256 bits por instrucción, divididas en 8 palabras de 32 bits controlan 8 UF’s independientes • clock: 200Mhz • MIPS: 1600 • Las subinstrucciones son más simples que las de los DSP convencionales • No siempre están ocupadas todas las UF • Consumen más energía y los programas ocupan más memoria que los DSP’s convencionales • Compiladores agrupan las instrucciones en palabras. Si no puede agrupar el conjunto completo de subinstrucciones, inserta NOP’s. • Mecanismo de compresión hardware y software para solucionar el problema del tamaño del código.

  26. VLIW DSP’s • Un bit por instrucción se reserva para indicar si la instrucción se ejecuta en paralelo con sus vecinas. El bit lo setea el programador o el compilador. • Los p bits se escanean de izquiera a derecha. Si p de la instrucción i es igual a 1, entonces la instrucción i + 1 se ejecuta en paralelo con la instrucción i. El último p es siempre 0.

  27. VLIW DSP’s VLIW y DSP

  28. Ejemplo de código MPY .M1 A0, A1, A2 || ADD .L1 A4, A5, A2 || ADD .L1X A7, B1, A6 • El lenguaje ensamblador especifica, además de los registros, modos de direccionamiento y operación a ser realizada, la Unidad Funcional, los Caminos de Datos utilizados, y el paralelismo entre las instrucciones. VLIW y DSP

More Related