arquitectura de procesadores para streaming curso de doctorado bienio 2003/2005ingeniería de...
TRANSCRIPT
Arquitectura de Procesadores para Streaming
Curso de Doctorado Bienio 2003/2005 Ingeniería de Telecomunicación Avanzada
Diseño de Procesadores
para Multimedia
Dácil Barreto Dos Santos
12 de Septiembre de 2005
2Arquitectura de Procesadores para Streaming
Índice
Introducción Arquitectura de streaming
Programación streaming Jerarquía de ancho de banda
Cuellos de botella de las comunicaciones Organización en registros
Procesamiento paralelo El procesador Imagine Media
Arquitectura Modelo de programación Implementación
Referencias
3Arquitectura de Procesadores para Streaming
Introducción I
La actual tecnología de semiconductores está limitada por las latencias de comunicación y el ancho de banda. 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.
4Arquitectura 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
5Arquitectura 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.
6Arquitectura de Procesadores para Streaming
Programación streaming
Ejemplo: Codificación Intra MPEG-2
Arquitectura de Streaming
ColorConversion
DCT
DCT
Run-LevelEncoding
IDCT
IDCT
Variable LengthEncoding
KERNELS
Rate Control
Bitstream
Luminance Reference
Chrominance ReferenceSTREAMS
Lum
Crom
7Arquitectura de Procesadores para 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).
Arquitectura de Streaming
8Arquitectura de Procesadores para Streaming
Jerarquía de almacenamiento convencional
Arquitectura de Streaming. Jerarquía de AB
Cuellos de botella
SDRAML2
CacheL1
CacheR
egister File
......
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.
9Arquitectura de Procesadores para Streaming
Organización del fichero de registros de streams SIMD
Arquitectura de Streaming. Jerarquía de AB
Organización en registros
... ...
...
C SIMD Clusters
Particioned GRF
Particioned Stream Buffers
N/C Arith. Clusters N/C Arith. Clusters
Distributed RegisterFile (DRF)Acceso de palabras
El único puerto al ficherode registros se compartepor los stream buffers
Paralelismo Agrupaciónen clusters idénticos
10Arquitectura de Procesadores para 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.
Arquitectura de Streaming
11Arquitectura de Procesadores para Streaming
Arquitectura
128 KB
8 AC48 floating point AU
Imagine Media
12Arquitectura de Procesadores para Streaming
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.
Imagine Media. Arquitectura
13Arquitectura de Procesadores para Streaming
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
Imagine Media. Arquitectura
14Arquitectura de Procesadores para Streaming
Clusters aritméticos
Imagine Media. Arquitectura
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.
15Arquitectura de Procesadores para Streaming
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.
Imagine Media. Arquitectura
16Arquitectura de Procesadores para Streaming
Sistema de memoria
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.
Imagine Media. Arquitectura
Address Generator 0
Reorder Buffer 0
Address Generator 1
Reorder Buffer 1
SRF
Memory Bank 0
Memory Bank 1
Memory Bank 2
Memory Bank 3
SDRAM SDRAM SDRAM SDRAMOff-chip
Ind
ex
Ind
exData Data
17Arquitectura de Procesadores para Streaming
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.
Imagine Media. Arquitectura
18Arquitectura de Procesadores para Streaming
Modelo de programación I
Explota las siguientes propiedades: 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
Imagine Media
19Arquitectura de Procesadores para Streaming
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.
Imagine Media
20Arquitectura de Procesadores para Streaming
Implementación I
Está diseñado para trabajar a 500MHz usando la
tecnología CMOS de 0.15 m 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.
Imagine Media
21Arquitectura de Procesadores para Streaming
Implementación II
Prototipo Imagine MPEG-2 18.3 GOPs, 2.2 W, 1.5 V
Imagine Media
22Arquitectura 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.
Arquitectura de Procesadores para Streaming
Curso de Doctorado Bienio 2003/2005 Ingeniería de Telecomunicación Avanzada
Diseño de Procesadores
para Multimedia
Dácil Barreto Dos Santos
12 de Septiembre de 2005