Download Arquitectura de Procesadores para Streaming Dacil
Document related concepts
no text concepts found
Transcript
Curso de Doctorado Bienio 2003/2005 Ingeniería de Telecomunicación Avanzada Arquitectura de Procesadores para Streaming Diseño de Procesadores para Multimedia Dácil Barreto Dos Santos 12 de Septiembre de 2005 Índice Introducción Arquitectura de streaming Programación streaming Jerarquía de ancho de banda Procesamiento paralelo El procesador Imagine Media Cuellos de botella de las comunicaciones Organización en registros Arquitectura Modelo de programación Implementación Referencias 2 Arquitectura de Procesadores para Streaming Introducción La actual tecnología de semiconductores está limitada por las latencias de comunicación y el ancho de banda. I Importancia de la localidad. Importancia de la concurrencia. Aplicaciones multimedia: Los sistemas típicos de memoria basada en caché no son eficientes. Tipos de datos punto fijo de baja precisión. Gran cantidad de paralelismo de datos. 3 Arquitectura de Procesadores para Streaming Introducción II Las aplicaciones multimedia demandan tasas aritméticas muy altas, de manera que un procesador multimedia debe soportar cientos de unidades aritméticas. VLSI moderno cientos de unidades aritméticas en un chip de 1cm2. ¿Cómo proporcionar el AB necesario para mantener estas unidades ocupadas? Arquitectura de Streaming 4 Arquitectura de Procesadores para Streaming Arquitectura de streaming Streams de records de datos pasan a través de kernels de cómputo. Las aplicaciones multimedia se dividen en kernels. Los datos son locales a cada kernel y se guardan en registros locales. El paso de streams entre kernels se realiza a través de un fichero de registro de streams de manera que no se consume AB de memoria. Kernel: Programa que se repite para cada elemento stream de entrada. Stream: Colección de longitud variable de records, donde cada record es una agrupación lógica de datos multimedia. 5 Arquitectura de Procesadores para Streaming Arquitectura de Streaming Programación streaming Ejemplo: Codificación Intra MPEG-2 Rate Control KERNELS DCT Lum Color Conversion Run-Level Encoding Crom DCT STREAMS IDCT IDCT Bitstream Variable Length Encoding Luminance Reference Chrominance Reference 6 Arquitectura de Procesadores para Streaming Arquitectura de Streaming Jerarquía de ancho de banda Reducción del AB mediante datos locales cuando sea posible, y consumo del AB global sólo cuando sea necesario. Se organiza en 3 capas: Memoria streaming. Fichero de registro de streams globales SRF. Ficheros de registros locales LRFs que alimentan las unidades aritméticas (similar a caché en CPU). 7 Arquitectura de Procesadores para Streaming Arquitectura de Streaming. Jerarquía de AB Cuellos de botella Jerarquía de almacenamiento convencional L2 Cache L1 Cache ... Register File SDRAM ... Un fichero de registros centralizado no soporta de decenas a cientos de unidades aritméticas por coste de área, potencia y retardo. La escasa localidad temporal y espacial de las aplicaciones multimedia daría lugar a gran cantidad de palabras sin referenciar en las cachés. Para maximizar el AB DRAM hay que aprovechar su estructura interna en los accesos. 8 Arquitectura de Procesadores para Streaming Arquitectura de Streaming. Jerarquía de AB Organización en registros Organización del fichero de registros de streams SIMD C SIMD Clusters Particioned GRF El único puerto al fichero de registros se comparte por los stream buffers Particioned Stream Buffers Paralelismo Agrupación en clusters idénticos ... ... ... Distributed Register File (DRF) Acceso de palabras N/C Arith. Clusters N/C Arith. Clusters 9 Arquitectura de Procesadores para Streaming Arquitectura de Streaming Procesamiento paralelo Explota la concurrencia inherente a las aplicaciones multimedia. Las unidades aritméticas se organizan en clusters SIMD (Single-Instruction Multiple-Data) que realizan los mismos cálculos en elementos de datos diferentes. Cada cluster contiene múltiples unidades aritméticas por una VLIW (Very Long Instruntion Word). Las unidades aritméticas almacenan datos temporales localmente y los globales en el SRF. Para interconectar múltiples procesadores de streaming, el SRF se puede conectar a una interfaz de red. 10 Arquitectura de Procesadores para Streaming Imagine Media Arquitectura 128 KB 8 AC 48 floating point AU 11 Arquitectura de Procesadores para Streaming Imagine Media. Arquitectura Stream Register File (SRF) I Memoria de 1 Mbit optimizada para la transferencia de streams de datos de longitud variable. Los streams se referencian mediante descriptores que se almacenan en un fichero de registros de 64 entradas (SDRF). Cada registro contiene una dirección base en el SRF y una longitud de stream. Soporta numerosos clientes (clusters aritméticos y memoria del sistema) a través de un único puerto, pero gracias a los “stream buffers” cada cliente se conecta al SRF como si tuviera un puerto dedicado. 12 Arquitectura de Procesadores para Streaming Imagine Media. Arquitectura Stream Register File (SRF) II Stream Buffers Se componen de 2 half-buffers de 1024 bits. Cada half-buffer se llena o vacía cada ciclo a través del puerto de 1024 bits en el array de memoria del SRF. Existen 22 “stream buffers” conectados a la memoria SRF. Cliente Streams Tipo Palabras/Ciclo Red 8 read/write 2 W/stream Controlador de streams 1 read/write 1 W/stream Microcontrolador 1 read only 1 W/stream Índice de memoria 2 read only 1 W/stream Datos de memoria 2 read/write 1 W/stream Clusters aritméticos 8 read/write 8 W/stream 13 Arquitectura de Procesadores para Streaming Imagine Media. Arquitectura Clusters aritméticos Contiene 8 unidades aritméticas controladas por un único microcontrolador de manera SIMD (Single-Instruction Multiple-Data). Cada unidad aritmética contiene 3 sumadores, 2 multiplicadores, un divisor, una memoria de 256 entradas y una unidad de comunicación intercluster. 14 Arquitectura de Procesadores para Streaming Imagine Media. Arquitectura Microcontrolador Es un elemento de control VLIW que envía instrucciones a los clusters aritméticos. Cada ciclo, se envía una instrucción VLIW de 568 bits a los 8 clusters. 1.1 Mbit para almacenamiento de instrucciones. Esta localidad elimina el acceso a memoria o caché para la lectura de instrucciones, evitando latencias. Este espacio de memoria suele ser suficiente pero si el código es mayor, es necesario hacer accesos a memoria mientras otras instrucciones se ejecutan. 15 Arquitectura de Procesadores para Streaming Imagine Media. Arquitectura Sistema de memoria Address Generator 0 Off-chip Data Reorder Buffer 0 Index Index SRF Address Generator 1 Data Reorder Buffer 1 Memory Bank 0 Memory Bank 1 Memory Bank 2 Memory Bank 3 SDRAM SDRAM SDRAM SDRAM Generadores de direcciones - Modo “constant stride” - Modo indirecto - Modo “bit-reverse” Cálculo de la dirección de comienzo de un record. Buffers de reordenación Colocan los datos stream del SRF en el orden correcto. 16 Arquitectura de Procesadores para Streaming Imagine Media. Arquitectura Interfaz de red, controlador y host Interfaz de red 4 canales bidireccionales de 16 bits y señalización diferencial. 256 pins de datos. Topología arbitraria adaptación a las necesidades de comunicación de la aplicación. Controlador stream Trabaja sobre instrucciones stream que pueden estar fuera de orden sin violar las dependencias entre instrucciones. Almacena las instrucciones que recibe del host en una cola y mediante señales de estado determina las instrucciones que debe enviar. Procesador host Ejecuta pequeñas secciones de código serie de control intensivo, mientras que Imagine actúa de coprocesador ejecutando largos programas de streams de datos paralelos. 17 Arquitectura de Procesadores para Streaming Imagine Media Modelo de programación Explota las siguientes propiedades: I Pocos datos son reutilizados. El paralelismo de datos es abundante. Se requieren muchas operaciones aritméticas. 2 niveles de programación: Nivel stream Se ejecutan en el host y dirigen el flujo de streams de datos hacia el procesador de streams. StreamC Nivel kernel Se ejecutan en el micro y en los clusters aritméticos del procesador de streams. KernelC 18 Arquitectura de Procesadores para Streaming Imagine Media Modelo de programación II Instrucciones principales a nivel de stream: “Move” mueve el contenido de un registro a otro. “Write” escribe datos a un registro. “Read” devuelve el contenido de un registro al host. “barrier” bloquea las instrucciones siguientes. “synch” sincroniza el micro con el controlador de streams. “Load” de streams desde DRAM hacia el SRF. “Store” de streams desde el SRF hacia DRAM. “Receive” de streams desde la red al SRF. “Send” de streams desde el SRF a la red. “Cluster op”, que ejecuta un kernel que lee streams del SRF, calcula los streams de salida y los escribe en el SRF. “Load microcode”, que carga streams de instrucciones (576-bit VLIW) desde el SRF al microcontrolador. 19 Arquitectura de Procesadores para Streaming Imagine Media Implementación I Está diseñado para trabajar a 500MHz usando la tecnología CMOS de 0.15 mm de Texas Instruments. Incluyendo pads 16x16mm. 456 pins de señales y 21 millones de transistores. Relación de AB de memoria DRAM, AB de registros globales (SRF) y AB de registros locales (LRFs) de 1:16:272. 20 Arquitectura de Procesadores para Streaming Imagine Media Implementación II Prototipo Imagine MPEG-2 18.3 GOPs, 2.2 W, 1.5 V 21 Arquitectura de Procesadores para Streaming Referencias “Stream Processor Architecture”, Scott Rixner, Kluwer Academic Publishers, 2002. “Imagine: Media Processing with Streams”, Scott Rixner, William J. Dally, Ujval J. Kapasi, Brucek Khailany, Peter R. Mattson, and John D. Owens, IEEE Micro-35 (2001). “The Imagine Stream Processor”, Ujval J. Kapasi, William J. Dally, Scott Rixner†, John D. Owens, and Brucek Khailany, Proceedings of the 2002 International Conference on Computer Design. 22 Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005 Ingeniería de Telecomunicación Avanzada Arquitectura de Procesadores para Streaming Diseño de Procesadores para Multimedia Dácil Barreto Dos Santos 12 de Septiembre de 2005