1 / 63

Diseño de microprocesadores para multimedia Procesadores de streams

Diseño de microprocesadores para multimedia Procesadores de streams Pedro Hernández Fernández Antonio Núñez Ordóñez. Procesadores de streams. Contenido. - Características generales - Arquitectura IMAGINE - Arquitectura MERRIMAC. Procesadores de streams.

sheena
Télécharger la présentation

Diseño de microprocesadores para multimedia Procesadores de streams

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. Diseño de microprocesadores para multimedia Procesadores de streams Pedro Hernández Fernández Antonio Núñez Ordóñez Procesadores de streams

  2. Procesadores de streams Contenido • - Características generales • - Arquitectura IMAGINE • - Arquitectura MERRIMAC Procesadores de streams

  3. Procesadores de streams Procesadores programables optimizados para ejecutar aplicaciones multimedia • - Comprensión de video • - Gráfico en tres dimensiones • - Procesamiento de imágenes • - Procesamiento de señales • - Videoconferencia • - Reconocimiento de voz Procesador de streams Aplicaciones multimedia Procesadores de streams

  4. Procesadores de streams v Características aplicaciones multimedia • - Alto nivel de paralelismo • - Poca reutilización de los datos • - Alta carga computacional • - Alta relación • operaciones/accesos a memoria • - Localidad Productor-Consumidor Procesador de streams Aplicaciones multimedia Procesadores de streams

  5. Opciones actuales v EFICIENCIA Procesadores de aplicaciones específicas (ASIC) m 50 a 500 GOPS/W m Flexibilidad mínima o nula v PROGRAMABILIDAD Microprocesadores o DSPs m Eficiencia pequeña 10GOPS/W m Programables usando lenguajes de alto nivel Procesadores de streams

  6. Procesadores de streams DSPs Microprocesadores Opciones actuales Procesadores aplicaciones específicas Eficientes Programables Poco eficientes Programables Eficientes Flexibilidad mínima Procesadores de streams

  7. Fichero de registros central v Área proporcional al cubo del número de unidades funcionales v Potencia proporcional al cubo del número de unidades funcionales v Retardo proporcional 3/2 del número de unidades funcionales Procesadores de streams

  8. 1ª Solución: Fichero de registros múltiples v Sustituir el fichero único por múltiples ficheros de registros v Las unidades funcionales se agrupan v Se asigna a cada grupo su propio fichero de registros Procesadores de streams

  9. 2ª Solución: Fichero de registros múltiples con buses compartidos vLas unidades funcionales se conectan usando buses compartidos vLas unidades funcionales pueden leer/escribir directamente en los ficheros de registros Procesadores de streams

  10. Modelo de programación con streams Definiciones vEl dato mínimo con el que se trabaja se denomina STREAM vSTREAM: Conjunto de datos relacionados de longitud variable vKERNEL: Pequeño programa que realiza la misma operación sobre todos los elementos de un stream de entrada, produce un stream de salida para el siguiente kernel de la aplicación Procesadores de streams

  11. Modelo de programación con streams v Los programas se estructuran como una secuencia de streams de datos que pasan a través de unos kernels de cálculo v Las operaciones se realizan sobre el stream completo Stream 4 data data data data data Stream 3 data data data data data Stream 2 data data data data data Stream 1 data data data data data Programmable Kernel Procesadores de streams

  12. Modelo de programación con streams v Los kernels no pueden hacer referencias a memoria v Los kernels operan con datos locales, (los streams de salida de un kernel son función de los streams de entrada Stream 4 data data data data data Stream 3 data data data data data Stream 2 data data data data data Stream 1 transformed data transformed data transformed data transformed data transformed data Programmable Kernel Procesadores de streams

  13. Modelo de programación con streams Stream 4 data data data data data Stream 3 data data data data data Stream 2 data data data data data Stream 1 transformed data transformed data transformed data transformed data transformed data Programmable Kernel Procesadores de streams

  14. Modelo de programación con streams Stream 4 data data data data data Stream 3 data data data data data Stream 2 data data data data data Stream 1 transformed data transformed data transformed data transformed data transformed data Programmable Kernel Procesadores de streams

  15. Modelo de programación con streams Stream 4 data data data data data Stream 3 data data data data data Stream 2 data data data data data Stream 1 transformed data transformed data transformed data transformed data transformed data Programmable Kernel Procesadores de streams

  16. Modelo de programación con streams Los programas en este modelo se especifican en dos niveles v A nivel de streams - La secuencia de kernels que forman la aplicación - Como están conectados esos kernels - Nombre y tamaño de los streams con los que se opera v A nivel de kernel - Especifica las operaciones a realizar con los datos Procesadores de streams

  17. Jerarquía de memoria v Las aplicaciones requieren un manejo adecuado del ancho de banda con memoria v La jerarquía de memoria tiene tres niveles: - Un nivel de memoria principal: datos grandes o que se acceden de forma no frecuente - Nivel intermedio : Aprovechar la localidad de los datos dentro del chip - Nivel local: Almacenar datos temporales en las operaciones de cálculo v Las aplicaciones multimedia se adaptan perfectamente a este jerarquía v La ejecución de los kernels es rápida y eficiente (sólo datos locales) v El 90% del movimiento de datos es local Procesadores de streams

  18. Imagine Scott Rixner Universidad de Stanford Procesadores de streams

  19. IMAGINE • v Procesador multimedia programable diseñado para implementar el modelo de programación con streams • v Diseñado para ser una prueba del concepto de procesador de streams programable, mostrando la viabilidad de las estructuras • v Está pensado para actuar como un coprocesador que opera sobre streams de datos multimedia. • v Diseño organizado alrededor de tres niveles de memoria • - Memoria del sistema (memoria principal) • - Un Fichero de registros global (nivel intermedio) • - Un conjunto de ficheros de registros local (nivel local) Procesadores de streams

  20. IMAGINE: Jerarquía de memoria • - Memoria del sistema (2GB/S) Procesadores de streams

  21. IMAGINE: Jerarquía de memoria • - Memoria del sistema (2GB/S) • - Fichero de registros global (32GB/s) (arquitectura load/store) Procesadores de streams

  22. IMAGINE: Jerarquía de memoria • - Memoria del sistema (2GB/S) • - Fichero de registros global (32GB/s) (arquitectura load/store) • - Conjunto de ficheros de registros local (544GB/s) Procesadores de streams

  23. IMAGINE Procesadores de streams

  24. IMAGINE Comunicación con el host y emisión de instrucciones Procesadores de streams

  25. IMAGINE Almacena los kernels de la aplicación Procesadores de streams

  26. IMAGINE Ejecutan los kernels Procesadores de streams

  27. IMAGINE Conección con otros integrados IMAGINE Procesadores de streams

  28. IMAGINE Transfiere datos entre bloques del chip Procesadores de streams

  29. IMAGINE Almacenamiento local Procesadores de streams

  30. IMAGINE: Stream Register File Procesadores de streams

  31. IMAGINE: Stream Register File • Contiene SRAM de 128KB organizada en 1.024 bloques de 32 palabras de 32 bits • Puede almacenar streams de datos de longitud variable • La carga/almacen. de streams ocurre entre la memoria y el SRF • El envío y recepción de datos a través de la red ocurre entre el interfase de red y el SRF • Proporciona el streams de entrada a los kernels y almacena el stream de salida Procesadores de streams

  32. IMAGINE: Stream Register File Procesadores de streams

  33. IMAGINE: Stream Register File IMAGINE tiene 22 stream buffers: • ocho cluster stream buffers (ocho palabras por ciclo) • ocho network stream buffers (dos palabras por ciclo) • cuatro memory system stream buffers (una palabra por ciclo) • un microcontroller stream buffer (una palabra por ciclo), • un host processorstream buffer (una palabra por ciclo) Procesadores de streams

  34. IMAGINE: Clusters aritméticos Procesadores de streams

  35. IMAGINE: Clusters aritméticos - Operaciones en coma flotante de 32 bits en precisión simple - Operaciones enteras de 32 bits. - Están totalmente segmentadas, permitiendo una nueva operación en cada ciclo. Procesadores de streams

  36. IMAGINE: Red de comunicación intracluster Permite el intercambio de datos entre las unidades aritméticas dentro del mismo cluster Procesadores de streams

  37. IMAGINE: Red de comunicación intercluster Procesadores de streams

  38. IMAGINE: Red de comunicación intercluster v La unidad de comunicación facilita el intercambio de datos entre clusters v La unidad de comunicación puede enviar una palabra cada ciclo de reloj v El microcontrolador tiene un bus propio para enviar datos a los clusters Procesadores de streams

  39. IMAGINE: Microcontrolador Procesadores de streams

  40. IMAGINE: Microcontrolador v Envía instrucciones a los clusters aritméticos v Cada ciclo envía una instrucción VLIW de 568 bits a los ocho clusters v Los kernels están almacenados en una memoria de 2K instrucciones por 568 bits vLos kernels se cargan solamente una vez de memoria al comienzo de la aplicación Procesadores de streams

  41. IMAGINE: Streaming Memory System Procesadores de streams

  42. IMAGINE: Streaming Memory System v Todas las referencias a memoria hacen uso de las instrucciones LOAD y STORE que transfieren una stream completo de memoria al SRF - simplifica la programación - minimiza las paradas de las unidades aritméticas v El sistema de memoria consiste en: - dos generadores de direcciones - cuatro bancos de memoria entrelazados - dos buffers de reordenación Procesadores de streams

  43. IMAGINE: Streaming Memory System Genera direcciones de memoria Procesadores de streams

  44. IMAGINE: Streaming Memory System Almacena las referencias a memoria Procesadores de streams

  45. IMAGINE: Streaming Memory System Transfiere los datos al SRF en orden Procesadores de streams

  46. IMAGINE: Interface de red Procesadores de streams

  47. IMAGINE: Interfase de red v Transfiere streams de un procesador a otro, a través de la red v Se utiliza en las instrucciones de enviar o recibir (SEND/RECEIVE) v Dispone de cuatro canales de entrada y cuatro canales de salida v Cada canal puede transferir 2 bytes cada ciclo de reloj Procesadores de streams

  48. IMAGINE: Procesador Procesadores de streams

  49. IMAGINE: Procesador v Un procesador externo ejecuta el programa y transfiere las instrucciones que operan con streams al IMAGINE a través del controlador interno de streams. Procesadores de streams

  50. IMAGINE: Controlador de streams Procesadores de streams

More Related