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