1 / 32

Benjamín Pérez Carballo Efraín Tejera Clavijo Pablo Santos Arozarena

Microarquitecturas de Sistemas Integrados “Processing the new world of interactive media” The Trimedia VLIW CPU architecture. Benjamín Pérez Carballo Efraín Tejera Clavijo Pablo Santos Arozarena. Qué es Trimedia?. Familia de procesadores multimedia de Philips

santo
Download Presentation

Benjamín Pérez Carballo Efraín Tejera Clavijo Pablo Santos Arozarena

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. Microarquitecturas de Sistemas Integrados“Processing the new world of interactive media”The Trimedia VLIW CPU architecture Benjamín Pérez Carballo Efraín Tejera Clavijo Pablo Santos Arozarena

  2. Qué es Trimedia? • Familia de procesadores multimedia de Philips • Basados en CPU-VLIW de altas prestaciones • El primer producto Trimedia es el TM-1000 Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  3. Elementos del TM-1000 • Núcleo CPU-VLIW de altas prestaciones • Amplias caches de datos e instrucciones • Interfaz con memoria principal • periféricos para vídeo, audio y datos Se trata de un sistema multimedia “on chip” que implementa aplicaciones de vídeo y audio de alta calidad. Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  4. Estructura funcional del TM-1000 (1) • Procesador • Memoria SDRAM síncrona • Circuitería externa adicional para entrada/salida de datos multimedia Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  5. SDRAM Main Memory Interface Huffman decoder Slice-at-a-time MPEG 1&2 Stereo Digital Audio I2S DC-80 kHz Audio In VLD Coprocessor 2-8 ch. Digital Audio I2S DC-80 kHz CCIR601/656 YUV 4:2:2 CCIR601/656 YUV 4:2:2 I2C Bus to Camera, etc. V.34 or ISDN Front End Audio Out Video Out Down & Up Scalling YUV-RGB YUV-RGB YUV-RGB TM - 1000 PCI Bus I2C Inteface Video In Synchronous Serial Interface VLIW CPU Image Coprocessor PCI Interface Estructura funcional del TM-1000 (2) Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  6. CCIR601/656 YUV 4:2:2 CCIR601/656 YUV 4:2:2 Stereo 2-8 ch. ADC Audio in Audio out SDRAM V.34 Modem Front End JTAG PCI Bus TM - 1000 DAC Ejemplo de aplicación • Entrada de vídeo (CCIR601/656) • Salida directa vídeo • E/S audio estéreo • Interfaz PCI para comunic. con PC • Comunicaciones de datos por interfaz V.34 Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  7. El núcleo CPU-VLIW • 27 unidades funcionales • 128 registros de propósito general de 32 bits • Banco de registros con 15 puertos de lectura y 5 de escritura Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  8. La instrucción VLIW • Agrupa un máximo de 5 operaciones • Cada operación es equivalente a: • Operación simple de un RISC • Operación SIMD • Operación de saturación • Operación de clipping • Combinación de las anteriores Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  9. Caches • Las instrucciones son comprimidas en la memoria principal y en la cache de instrucciones. • El TM-1000 dispone de: • 32 kbytes de cache de instrucciones • 16 kbytes de cache de datos Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  10. Operaciones • Las operaciones se codifican en tres tipos diferentes que a su vez son de diferente tamaño: 26-bit, 34-bit y 42-bit. • Las operaciones más empleadas se codifican con los tamaños más pequeños para reducir el tamaño total del código Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  11. Pipeline (1) 1 La unidad de búsqueda de instrucción toma una instrucción de la cache de instrucciones 2 La unidad de descompresión descomprime la inst. Y la expande en operaciones de tamaño fijo. 3 La unidad de lectura de operandos y bypass proporciona los 15 operandos requeridos por las 5 operaciones Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  12. Instruction Cache (32 Kb) Instruction Fetch Buffer Decompression Hardware Issue Register (5 Ops) Operation Routing Network …………… Execution Unit (27 functions) Register Routing and Forwarding Network Register File (128 x 32) Pipeline (2) 4 Las unidades de ejecución ejecutan las operaciones apropiadas 5 Los resultados son escritos en el banco de registros en la etapa de writeback Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  13. Cómo se agrupan las operaciones? • El agrupado de las operaciones es tarea del compilador y no existe ninguna unidad hardware de lógica de agrupado en la CPU-VLIW. Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  14. Instruction pipeline (1) • Etapa de “fetch” • La unidad de búsqueda de instrucción selecciona una línea de la cache de 64 bytes. • Cada instrucción tiene una cabecera de 10 bits • La cabecera se añade a la instrucción previa para simplificar la descompresión Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  15. Instruction pipeline (2) • Etapa de descompresión • La información de cabecera de la instrucción previa se emplea para colocar los multiplexores apropiados que permitan expander las operaciones comprimidas (de tamaño variable) en campos de operación de tamaño fijo. Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  16. Instruction pipeline (3) • Etapa de lectura de registros • Cada slot de emisión tiene unos campos de operandos en registros fijos. • 2 operandos fuente y un registro de guarda se leen del banco de registros en cada slot de emisión. • Hay 5 slots de emisión (15 lecturas en reg. file) • La unidad de bypass adelanta el resultado en esta etapa si fuese necesario. Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  17. Instruction pipeline (4) • Etapa de ejecución • Asignadas a un slot de emisión en particular • Decodifica el opcode perteneciente a su slot de emisión. • Ejecuta las operaciones • Escribe el resultado en el bus de escritura. • Si los resultados se requieren en la siguiente etapa se adelantan inmediatamente • Las excepciones se registran en el registro PCSW Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  18. Instruction pipeline (5) • Etapa de “writeback” • Un máximo de 5 resultados se generan en cada ciclo. • El banco de registros soporta la escritura simultánea de los 5 registros. Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  19. Caracteristicas VLIW • Cada instruccion VLIW del Trimedia contiene 5 operaciones. • Operaciones simples tipo RISC u operaciones adaptadas a algoritmos multimedia. • Tipo RISC • imin: rdest:=min(rsrc1,rsrc2) • Tipo Multimedia • quadavg: Cuatro medias de 4 pares de registros de 8 bits contenidos en rsrc1 y rsrc2 • [a,b,c,d]:=[avg(e,i),avg(f,j),avg(g,k),avg(h,l)] donde rdest=[a,b,c,d], rsrc1=[e,f,g,h] y rsrc2=[i,j,k,l] • Ejecucion condicional de cada operacion. • Un registro destino no se escribe si no se lo permite el LSB del reg. de protección. • Se usa para eliminar saltos en los IF y en los slots de retardo de los saltos. Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  20. Saltos y slots de retardo • El juego de instrucciones del Trimedia incluye tanto saltos condicinales como incondicionales. • Se pueden ejecutar hasta un maximo de tres saltos por ciclo, con el cuidado por parte del compilador de conseguir que tan solo una de las condiciones de salto sea cierta en un ciclo. • Las condiciones de saltos son similares las de guarda, pero en este caso el registro de guarda es el registro fuente. • Cada salto necesita tres slots de retardo, correpondientes a las tres etapas de pipeline previas a la etapa de ejecucion, que es donde se reconoce la veracidad de la condicion de salto. Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  21. Operaciones multimedia (1) • La mayor parte de las aplicaciones de audio y video, operan con precision de 8 bits. • Operaciones del tipo Instrucción Unica-Multiples datos (SIMD) operan con subdivisiones de los registros de 32 bits en campos de 8 o 16 bits. • Aceleracion de la cantidad de operaciones que se pueden hacer por ciclo. • Algunas operaciones incluyen saturacion, lo que evita tener que introducir excepciones de overflow o incluso operaciones especiales para realizar la saturacion. Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  22. Operaciones multimedia (2) • Operaciones de empaquetado (pack), mezcla (merge) y extraccion (extract). • Se utilizan para la alineacion y colocacion de los datos a tratar por operaciones SIMD. • La inclusion de este tipo de operaciones permite acelerar de manera espectacular los algoritmos usados en multimedia, por lo que se les denomina operaciones multimedia. Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  23. Operaciones en punto flotante, load/stores • Punto Flotante • El Trimedia cumple con la norma de aritmetica de punto flotante de precision simple del IEEE. • Es capaz de lanzar a ejecucion 2 sumas/restas y dos multiplicaciones en punto flotante por ciclo, ademas de una division/raiz quadrada en background. • Todas las dependencias de datos deben ser resueltas en tiempo de compilacion. • Load/store • Soporta load/store de un RISC y la carga y descarga de bytes y media palabra • Dos load/store por ciclo. • Sumadores y recursos adicionales en las unidades de load/store Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  24. Pipeline VLIW Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  25. Código de reconstrucción de un frame para MPEG Son necesarios: tres sumadores, un desplazador, dos comparaciones, tres loads, y un store por pixel Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  26. Código de reconstrucción de un frame para MPEG con el bucle desenrollado Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  27. Operaciones a medida (1) • Operación quadavy quadavg rsrc1 rsrc2 -> rdest • rsrc1 = [abcd], rsrc2 = [wxyz], y rdest = [pqrs] p = (a + w + 1) >> 1 q = (b + x + 1) >> 1 r = (c + y + 1) >> 1 s = (d + z + 1) >> 1 Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  28. Operaciones a medida (2) • Operación dspuquadaddui dspuquadaddui rsrc1 rsrc2 -> rdest • rsrc1 = [efgh], rsrc2 = [stuv], y rdest = [ijkl] i = uclipi(e + s, 255) j = uclipi(f + t, 255) k = uclipi(g + u, 255) l = uclipi(h + v, 255) Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  29. Operaciones a medida (3) • Operación uclipi uclipi (m, n) { if (m < 0) return 0; else if (m > n) return n; else return m; } Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  30. Código de reconstrucción de un frame para MPEG con el bucle desenrollado y reordenado Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  31. Uso de las operaciones a medida QUADAVG y DSPUQUADADDUI (1) Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

  32. Uso de las operaciones a medida QUADAVG y DSPUQUADADDUI (2) Son necesarios: dos operaciones a medida, tres loads, y un store para cuatro pixeles. Pablo Santos Arozarena, Efraín Tejera Clavijo, Benjamín Pérez Carballo

More Related