23
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

Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

Embed Size (px)

Citation preview

Page 1: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 2: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 3: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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.

Page 4: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 5: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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.

Page 6: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para 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

Page 7: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 8: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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.

Page 9: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 10: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 11: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

11Arquitectura de Procesadores para Streaming

Arquitectura

128 KB

8 AC48 floating point AU

Imagine Media

Page 12: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 13: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 14: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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.

Page 15: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 16: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 17: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 18: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 19: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 20: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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

Page 21: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

21Arquitectura de Procesadores para Streaming

Implementación II

Prototipo Imagine MPEG-2 18.3 GOPs, 2.2 W, 1.5 V

Imagine Media

Page 22: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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.

Page 23: Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia

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