Mpc08 Mori DSPs TI DaVinci

22
TI DaVinci™ Digital Media Processors Jose Antonio Mori, Miroprocesadores para Comunicaciones, 5º ETSIT ULPGC ¿Qué es un DSP? Estrictamente hablando, el término DSP se aplica a cualquier chip que trabaje con señales representadas de forma digital. En la práctica, el término se refiere a microprocesadores específicamente diseñados para realizar procesado digital de señal. Los DSPs utilizan arquitecturas especiales para acelerar los cálculos matemáticos intensos implicados en la mayoría de sistemas de procesado de señal en tiempo real. Por ejemplo, las arquitecturas de los DSPs incluyen circuitería para ejecutar de forma rápida operaciones de multiplicar y acumular, conocidas como MAC. EJEMPLO: Figura 1: Filtro FIR Aunque el ejemplo del filtro de respuesta impulsional finita (FIR) ha sido ampliamente utilizado en el entorno DSP, es quizás el más simple que permite ilustrar la necesidad de estas prestaciones en los DSP, las cuales permiten concebir muchas de las funciones de procesado en tiempo real. La mecánica del algoritmo del filtro FIR es bastante sencilla. Los bloques D en la figura 1 son retardos unitarios; su salida es una copia de la entrada retardada en un período de muestreo. El filtro FIR se construye a

Transcript of Mpc08 Mori DSPs TI DaVinci

TI DaVinci™ Digital Media Processors

Jose Antonio Mori, Miroprocesadores para Comunicaciones, 5º ETSIT ULPGC

¿Qué es un DSP?

Estrictamente hablando, el término DSP se aplica a cualquier chip que trabaje con señales representadas de forma digital. En la práctica, el término se refiere a microprocesadores específicamente diseñados para realizar procesado digital de señal. Los DSPs utilizan arquitecturas especiales para acelerar los cálculos matemáticos intensos implicados en la mayoría de sistemas de procesado de señal en tiempo real. Por ejemplo, las arquitecturas de los DSPs incluyen circuitería para ejecutar de forma rápida operaciones de multiplicar y acumular, conocidas como MAC.

EJEMPLO:

Figura 1: Filtro FIR

Aunque el ejemplo del filtro de respuesta impulsional finita (FIR) ha sido ampliamente utilizado en el entorno DSP, es quizás el más simple que permite ilustrar la necesidad de estas prestaciones en los DSP, las cuales permiten concebir muchas de las funciones de procesado en tiempo real.

La mecánica del algoritmo del filtro FIR es bastante sencilla. Los bloques D en la figura 1 son retardos unitarios; su salida es una copia de la entrada retardada en un período de muestreo. El filtro FIR se construye a partir de una serie de etapas básicas que se van repitiendo. Cada etapa básica incluye una operación del tipo multiplicación y acumulación. La señal de entrada xk es un conjunto de valores discretos obtenidos mediante muestreo de una señal analógica. El valor xk-1 es en realidad el valor que tenía xk en un período de muestreo anterior. De forma similar xk-2 sería la xk de dos períodos de muestreo anteriores. Cada vez que una nueva muestra llega, las que estaban almacenadas previamente se desplazan una posición hacia la derecha y una nueva muestra de salida se calcula después de multiplicar la nueva muestra y cada una de las anteriores por sus correspondientes coeficientes. En la figura, cn representa a los coeficientes, donde n es el número del coeficiente. Los resultados de cada multiplicación se suman para formar la nueva muestra de salida yk. El algoritmo de cálculo se basa en operaciones del tipo multiplicación y acumulación (A=B*C+D), siendo la multiplicación el verdadero cuello de botella en el cálculo de la mayoría de los algoritmos de procesado digital.

Diferencias entre Microcontroladores y DSP's

Una de las diferencias más importante encontrada entre un DSP y un Microcontrolador esla estructura de memoria que poseen. En un microcontrolador es posible encontrar unamemoria lineal, en la que se almacenan tanto datos como instrucciones de programa. Estoobliga a generar programas que no sobrepasen límites de tamaño ya que podríansobrescribirse datos por instrucciones o viceversa. Un DSP posee dos bloques separados eindependientes de memoria (arquitectura Harvard), cada uno con su propio bus de acceso, permitiendo así alprocesador ir a buscar la siguiente instrucción y dato en el mismo ciclo de reloj (Fetch).

Otra diferencia importante entre un Microcontrolador y un DSP (y aún entre DSP's) es lacantidad de unidades de ejecución que poseen, las cuales son capaces de realizaroperaciones en paralelo. Por ejemplo, además de la típica ALU, un DSP posee bloquesMAC de multiplicación y acumulación, se encuentran también bloques sólo paracorrimientos, shifters. En la figura siguiente se observa un diagrama de bloques de unmicrocontrolador PIC12C5XX, el cual sólo posee una unidad aritmética para todo tipo decálculo, desde cálculo de direcciones de salto, búsqueda de datos hasta operaciones lógicas.

La siguiente figura muestra parte de un diagrama de bloques del DSP TMS320F241. Enella se pueden ver 3 unidades de cálculo, CALU, ARAU, y una unidad de multiplicación lacual permite además realizar corrimientos:

Ventajas y desventajas de los DSPs

• La Tecnología VLSI (Very Large Scale Integration) da la posibilidad de diseñarsistemas con la capacidad para ejecutar procesamiento en tiempo real de muchas de lasseñales de interés para aplicaciones en comunicaciones, control, procesamiento deimagen, multimedia, etc.

• Los sistemas digitales son más confiables que los correspondientes sistemas análogos.

• Los sistemas digitales ofrecen una mayor flexibilidad que los correspondientes sistemasanálogos.

• Mayor precisión y mayor exactitud pueden ser obtenidas con sistemas digitales,comparado con los correspondientes sistemas análogos.

• Un sistema programable permite flexibilidad en la reconfiguración de aplicacionesDSP.

• La tolerancia de los componentes en un sistema análogo hacen que esto sea una

dificultad para el diseñador al controlar la exactitud de la señal de salida análoga. Porotro lado, la exactitud de la señal de salida para un sistema digital es predecible ycontrolable por el tipo de aritmética usada y el número de bits usado en los cálculos.

• Las señales digitales pueden ser almacenadas en un disco flexible, Disco Duro o CD–ROM, sin la pérdida de fidelidad más allá que el introducido por el conversor AnálogoDigital (ADC). Éste no es el caso para las señales análogas.

A pesar de ellas existen algunos inconvenientes que deberán ser tomados en cuenta almomento de escoger una plataforma para el procesamiento de señales analógicas por mediodigitales:

• La conversión de una señal analógica en digital, obtenida muestreando la señal ycuantificando las muestras, produce una distorsión que nos impide la reconstrucción dela señal analógica original a partir de muestras cuantificadas.

• Existen efectos debidos a la precisión finita que deben ser considerados en el procesadodigital de las muestras cuantificadas.

• Para muchas señales de gran ancho de banda, se requiere procesado en tiempo real. Paratales señales, el procesado analógico, o incluso óptico, son las únicas solucionesválidas. Sin embargo, cuando los circuitos digitales existen y son de suficientevelocidad se hacen preferibles.

Un poco de historia...

DSP

En 1978, Intel lanzó el 2920 como un "procesador de señales analógicas" que consistía en un chip A/D - D/A con un procesador de señal interna, pero carecía de un bloque multiplicador y no tuvo éxito en el mercado. En 1979, AMI sacó al mercado el S2811. Fue diseñado como un microprocesador periférico, y tenía que ser inicializado por el host; tampoco tuvo éxito en el mercado.

Ese mismo año, Bell Labs presenta el primer DSP, el Mac 4 Microprocessor. Luego, en 1980 las primeras stand-alone DSPs, la NEC µPD7720 y AT&T DSP1, que fueron presentados en el IEEE International - Solid State Circuits Conference'80. Ambos procesadores se inspiraron en la investigación en PSTN telecommunications. El Altamira DX-1 fue otro DSP primitivo, utilizando este quad integer pipelines con delayed branches y branch prediction. El primer DSP producido por Texas Instruments (TI), la TMS32010 presentado en 1983, demostró ser un éxito. Se basaba en una arquitectura Harvard, y por lo tanto tenía separada la memoria de datos de la de instrucciones. Poseía un conjunto de instrucciones especial load-and-accumulate o multiply-and-accumulate y trabajaba con números de 16 bits, necesitando 390ns para una operación de multiply-add. TI es ahora el líder de mercado en DSPs de propósito general. Otro éxito fue el diseño de Motorola 56000.

Cinco años después, la segunda generación de DSPs empezó a propagarse. Tenían 3 memorias para almacenar dos operandos simultáneamente, incluían hardware acelerador de tight loopsy una addressing unit capaz de realizar loop-addressing. Algunos de ellos funcionan a 24 bits y un típico modelo sólo requiería alrededor de 21ns para una instrucción MAC (multiplicar - acumular). Algunos miembros de esta generación son, por ejemplo, la AT&T DSP16A o el Motorola DSP56001. La principal mejora de la tercera generación fue la aparición de unidades de aplicación específica y las instrucciones en el camino de datos, o, a veces, como coprocesador. Estas unidades permitían resolver problemas matemáticos complejos muy específicos, como transformadas de Fourier ou operaciones matriciales. Algunos chips, como el Motorola MC68356, tenían más de un core trabajando en paralelo. Otros DSPs de 1995 son las TI TMS320C541 y TMS320C80.

La cuarta generación se caracteriza por los cambios en el conjunto de instrucciones y las instrucciones de codificación / decodificación. Extensiones SIMD y MMX fueron añadidas, VLIW y la superescalaridad entraron a escena. Como siempre, la velocidad de reloj ha ido aumentando, con 3ns para instrucciones MAC actualmente.

Texas Instrument

El 6 de diciembre de 1941, Cecil H. Green, J. Erik Jonsson, Eugene McDermott y H. B. Peacock compraron Geophysical Service Incorporated (GSI), empresa pionera en ofrecer servicios de exploración sísmica para la industria del petróleo. Durante la Segunda Guerra Mundial, GSI suministró material electrónico para la Armada y el Cuerpo de Señales del Ejército de EEUU. Tras la guerra, GSI continuó produciendo material electrónico y, en 1951, la compañía cambió su nombre por Texas Instruments, convirtiéndose GSI en una filial perteneciente al 100% a la nueva empresa.

En 1954, TI diseña la primera radio de transistores. La serie 7400 de circuitos integrados basados en la tecnológia TTL, desarrollada por TI en los años 1960, popularizó el uso de circuitos integrados en los ordenadores y continúa siendo ampliamente utilizada hoy en día. Otros inventos de TI fueron la calculadora de bolsillo en 1967, el microordenador de un solo chip en 1971 y también obtuvo la primera patente de un microprocesador de un solo chip (inventado por Gary Boone) en 1973. Generalmente, TI comparte con Intel el mérito por la invención casi simultánea del microprocesador.

TI continuó construyendo equipos para su uso en la industria sísmica, y GSI continuó ofreciendo servicios en el mismo campo. Después de vender (y recomprar) GSI, TI finalmente vendió la compañía a Halliburton en 1988 de forma que GSI dejó de existir como entidad separada.

La empresa americana tuvo dos problemas con la ingeniería y el desarrollo de productos tras la introducción de los semiconductores y el microprocesador :

La mayoría de los productos químicos, maquinaria y tecnologías necesarios parafabricar semiconductores no existían, así que tuvo que 'inventarlos'.

Al principio, el mercado para los componentes electrónicos era muy reducido, así que tuvo que 'inventar' usos para ellos. Por ejemplo, creó al final de los años

1970 el primer termostato electrónico doméstico para montaje en la pared, aunque casi nadie lo compraba debido a su elevado precio.

Creó, con muy buenos resultados, una división de Control Industrial que construía computadoras de control de proceso automatizadas utilizadas en la industria de la pintura y la sopa. Esta parte del negocio fue vendida a Siemens AG en 1991.

TI cambió su orientación hacia el mercado militar y gubernamental y cuenta con muchos dispositivos electromecánicos utilizados en el cohete Apollo y el Moon Lander.

H. B. Peacock Cecil H. Green

J. Erik Jonsson Eugene McDermott

¿Qué es DaVinci?

Son Media Processors basados en la tecnología de procesamiento de señales digitales TI, líder de la industria, y son escalables y programable. DaVinci esta optimizado para los sistemas de video digital, incluyendo Digital Signal Processing SoCs, multimedia codecs, Authorized Service Providers y frameworks. Todos los procesadores DaVinci están pensados para que precio, rendimiento y funcionalidad cumplan los requisitos de una amplia gama de equipos digitales de vídeo.

Familia DaVinci

•TMS320DM355 digital media processors consiste en un subsistema de procesamiento de vídeo integrado un co-procesador MPEG-4/JPEG más un core ARM con 216 MHz o 270 Mhz. Optimizado para uso portátil y otros productos de vídeo HD de bajo consumo de energía, este procesador duplica la duración de la batería de productos HD de hoy en día. DM355 es ideal para aplicaciones tales como cámaras digitales o videocámaras, reproductores multimedia portátiles, cámaras de red IP, marcos de fotografía digital, vídeo-porteros, baby monitors y muchos otros.

•TMS320DM647 / TMS320DM648 digital media processors, se basan en el core TMS320C64x+DSP, y están optimizados para multi-channel video security y aplicaciones de infraestructura, incluyendo grabadoras de vídeo digital (DVRs), servidores de vídeo IP, sistemas de visión artificial y aplicaciones de alto rendimiento de imágenes.

•TMS320DM643X digital media processors, basado en un core DSP TMS320C64x +DSP, tienen un precio mínimo de $ 9,95. Los procesadores TMS320DM6437, TMS320DM6435, TMS320DM6433, TMS320DM6431 son ideales para aplicaciones multimedia digitales que sean sensibles al precio e incluyen características especiales que los hacen adecuados para sistemas de entretenimiento a bordo, sistemas machine-vision, robótica, seguridad de vídeo telefonía y vídeo, así como aplicaciones para automoviles como control de salida del carril y evasión de colisiones.•TMS320DM644x digital media processors son SoCs altamente integrados basada en un procesador ARM926 y un core TMS320C64x+ DSP. Los TMS320DM6446, TMS320DM6443 y TMS320DM6441 son ideales para aplicaciones como video-teléfono, automotive infotainment, cámaras digitales, streaming media e IP set-top box.

•TMS320DM646x digital media processors son system-on-chips (SoCs) basados en DSPs, que están especialmente diseñados para tiempo real, multi-formato de HD-vídeo multiplicando por 10 el rendimiento y dividiendo el precio entre 10. El TMS320DM6467 consta de un core ARM9, un core C64x+DSP, HD-vídeo / Co-procesadores de imagen (HD-VICP), motor de conversión de datos de vídeo interfaces orientadas a video. El DM6467está específicamente diseñado para hacer frente al reto de los HD para los mercados comercial y de consumo, como los media gateways, unidades de

control multi-point, adaptadores multimedia digitales, vídeo servers digitales, grabadores para el mercado de la seguridad e IP set-top boxes.

Caracteristicas de DaVinci

DM SoC de alto rendimiento – 594 MHz C64x+™ Clock Rate– 297 MHz ARM926EJ-S™ Clock Rate– Ocho (32-Bit C64x+) Instrucciones/Ciclo– 4752 C64x+ MIPS Ciclo MAC– Software compatible con C64x / ARM9™

Subsistema ARM

El subsistema ARM está diseñado para dar a la ARM926EJ-S (ARM9) el control del dispositivo. En general, la ARM es responsable de la configuración y el control del dispositivo, incluido el subsistema DSP, el subsistema VPSS y la mayoría de los periféricos y memorias externas. Incluye:

· Procesador ARM926EJ-S RISC · ARMv5TEJ (32/16-bit) instruction set

· Little endian operation · Co-Processor 15 (CP15)· MMU · 16KB Instruction cache· 8KB Data cache · Buffer de Escritura· 32KB Internal Tightly-Coupled Memory (TCM) RAM (32-bit wide access)· 8KB Internal ROM (ARM bootloader for non-EMIFA boot options)· Embedded Trace Module y Embedded Trace Buffer (ETM/ETB)· ARM Interrupt Controller · PLL Controller· Power and Sleep Controller (PSC) · System Module

Procesador ARM926EJ-STM

· El procesador ARM926EJ-S es miembro de la familia ARM9 de microprocesadores de proposito general. Este procesador está orientado a aplicaciones multi-tasking donde la gestión de memoria, el alto rendimiento, el pequeño tamaño de dado, y la baja potencia son importantes.· El ARM926EJ-S soporta instrucciones ARM de 32 bits y THUMB de 16 bits, que permite al usuario tener un compromiso entre un alto rendimiento y alta densidad de código. · En concreto, el procesador ARM926EJ-S sorpota el conjunto de instrucciones ARMv5TEJ, que incluye las características para una ejecución eficaz de Java byte codes, proporcionando rendimiento Java similar al Just in Time (JIT) Java interpreter, pero sin code overhead.

Core del ARM926EJ-STM

Fetch: Lectura de la instrucción y almacenamiento en pipeline de instrucciones.Decode: La instrucción se decodifica y se leen los operandos desde del banco de registro 3 puertos.Execute:Operación sobre el Shifter, la ALU o, en instruccionesload/store se calcula la EA.Buffer/Data:Acceso al dato en memoria. En procesamiento el resultado de la ALU se pasa al siguiente pipeline.Write-back:El dato, leído de memoria o resultante ALU à RF.

Componentes ARM926EJ-STM

CP15:Se utiliza para la configuración y control de instrucciones y data caches, Tightly-Coupled Memories (TCMs), Memory Management Unit (MMU) y otros subsistemas del ARM.

MMU: Proporciona la memoria virtual característica requerida por los sistemas operativos, como Linux ®, Windows ® CE, Ultron ®, ThreadX ®, etc. Un conjunto único de dos niveles de tabla de página almacenados en la memoria principal es usado para controlar la traducción de direcciones, chequeo de permisos y los atributos de la región de memoria para datos e instrucciones. La MMU utiliza un único Translation Lookaside Buffer (TLB) como caché para la información contenida en las tablas de página.Tiene las siguientes caracteristicas:· Arquitectura ARM estándar v4 y v5 MMU · Mapping sizes son:

– 1MB (sections) – 64KB (large pages) – 4KB (small pages) – 1KB (tiny pages)

· Los permisos para paginas grandes y pequeñas pueden ser especificadas por separado para cada ·Hardware page table walks cuarto de pagina(permiso de subpagina).

Caches y Buffer de Escritura:El tamaño de la caché de instrucciones es de 16KB, la caché de datos es de 8KB.Además, las caches tienen las siguientes características:· Virtual index, virtual tag, y direccionamiento usan Modified Virtual Address(MVA).· Asociativa de cuatro vias, con una linea de cache de ocho palabras por linea (32 bytes por linea)y dos bits de sucio en la Data-cache.

· La Data-caché soporta write-through y write-back (o copy back), que seleccionará la región de memoria usando el bit C y B en las tablas de traducción de la MMU. · Las operaciones de mantenimiento caché proporcionan una eficiente invalidación de, toda la Data-caché o Intruccion-caché, de regiones de la Data-caché o la Intruccion-caché, yregiones de memoria virtual.El Bufer de Escritura es un componente que evita que el bus se quede en algún momento sin datos.

Tightly Coupled Memory (TCM):La memoria RAM y ROM son conectadas al ARM926EJ-S por medio del interfazTCM que provee conexiones separadas a los buses de datos e instrucciones.Advanced High-Performance Bus (AHB):El subsistema ARM usa el puerto AHB de el ARM926EJ-S para conectar el ARM al bus Config y a la memoria externa. Emplea arbitros para el acceso por separado a las Date-AHB y instrucción-AHB.Embedded Trace Macrocell (ETM) and Embedded Trace Buffer (ETB):El ETM consiste en dos partes:· El Trace Port proporciona capacidad de función en tiempo real para el ARM9.· El Triggering proporciona comparadores de direcciones y datos, contadores, secuenciadores y recursos de trigger. El trace port del DM6467 esta conectado al ETB, que tiene un buffer de memoria de 4KB.

Subsistema DSP

El subsistema DSP incluye las siguientes características:· C64x+ DSP CPU· 32KB L1 Program (L1P)/Cache (up to 32KB)· 32KB L1 Data (L1D)/Cache (up to 32KB)· 128KB Unified Mapped RAM/Cache (L2)· Little endian

Core C64+DSPDoble Data Path: A y B.Cada uno dispone de su su propio conjunto de buses.Existen dos tipos de conexiones:

-InternosàComunican sus unidades funcionales con su banco de registros y la memoria de datos.-Cruzadosà Comunica el banco registros del otro data path con sus unidades funcionales

Datapaths

INTERNOSàLoad Data paths:

Cargar datos desde memoria.àStore Data paths:

Almacenamiento de datos a memoria.àData Address paths:

Generación de direcciones.

EXTERNOSPermiten el intercambio de datos y direcciones entre ambos data paths:àDos datos (1X,2X).àDos de direcciones de operados.

Unidades Funcionales

•Dispone de cuatro unidades de 32 bits por cada data path•Las unidades .L y .S pueden operar con operandos de 40 bits. •Cada unidad ejecuta un conjunto especifico de operaciones

Operaciones aritméticas y de comparación de 32/40 bits.Operaciones Lógicas de 32 bits.Normalización de enteros y cuenta de bits.Saturación aritmética para operaciones de 32/40 bits.

Disponen de ALUsde 32 bits y desplazadoresde 40 bits para: Aritmética de 32 bits, operaciones lógicas y campos de bits.Desplazamientos de 32/40 bits.Saltos (.S2 solamente si se usa un registro como desplazamiento) Transferencias hacia/desde registros de control (sólo .S2). Generación de constantes.

Multiplicadores hardware con operandosson de 32 bits => Varias opciones.Multiplicación con desplazamiento a izquierda y saturación.

Archivo de Registros

Cada data path dispone de 16 registros de propósito general de 32 bits.àA0-A15àB0-B15

Se utilizan para:àAlmacenamiento de datos.àPunteros a datos (direccionamiento indirecto).àRegistros condicionales para cualquier instrucción (Sólo A1,A2,B0,B1,B2).

La CPU puede utilizar operandos de:à8/16/32 bits.à40/64 bits, en este caso se utilizan pares de registros para su almacenamiento:

àDeben tener el mismo datapathàEl registro par almacena los LSBsàEl registro impar almacena los 8/32 MSBs.

Resumen

Aplicaciones

Carga y almacenamiento con desplazamiento constante de 5 bits y 15 bits (Sólo en .D2).Sumas/restas de 32 bits.Cálculo para direccionamiento lineal y circular.

Referencias

•www.ti.com•http://en.wikipedia.org/wiki/Main_Page•http://embedded-system.net•www.eetimes.com•Apuntes Sistemas Electrónicos Digitales (3º curso)