Download TI DaVinci™ Digital Media Processors

Document related concepts
no text concepts found
Transcript
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 es
la estructura de memoria que poseen. En un microcontrolador es posible encontrar una
memoria lineal, en la que se almacenan tanto datos como instrucciones de programa. Esto
obliga a generar programas que no sobrepasen límites de tamaño ya que podrían
sobrescribirse datos por instrucciones o viceversa. Un DSP posee dos bloques separados e
independientes de memoria (arquitectura Harvard), cada uno con su propio bus de acceso,
permitiendo así al
procesador 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 la
cantidad de unidades de ejecución que poseen, las cuales son capaces de realizar
operaciones en paralelo. Por ejemplo, además de la típica ALU, un DSP posee bloques
MAC de multiplicación y acumulación, se encuentran también bloques sólo para
corrimientos, shifters. En la figura siguiente se observa un diagrama de bloques de un
microcontrolador PIC12C5XX, el cual sólo posee una unidad aritmética para todo tipo de
cá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. En
ella se pueden ver 3 unidades de cálculo, CALU, ARAU, y una unidad de multiplicación la
cual permite además realizar corrimientos:
Ventajas y desventajas de los DSPs
• La Tecnología VLSI (Very Large Scale Integration) da la posibilidad de diseñar
sistemas con la capacidad para ejecutar procesamiento en tiempo real de muchas de las
señales de interés para aplicaciones en comunicaciones, control, procesamiento de
imagen, 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 sistemas
aná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 aplicaciones
DSP.
• 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. Por
otro lado, la exactitud de la señal de salida para un sistema digital es predecible y
controlable 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álogo
Digital (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 al
momento de escoger una plataforma para el procesamiento de señales analógicas por medio
digitales:
• La conversión de una señal analógica en digital, obtenida muestreando la señal y
cuantificando las muestras, produce una distorsión que nos impide la reconstrucción de
la señal analógica original a partir de muestras cuantificadas.
• Existen efectos debidos a la precisión finita que deben ser considerados en el procesado
digital de las muestras cuantificadas.
• Para muchas señales de gran ancho de banda, se requiere procesado en tiempo real. Para
tales señales, el procesado analógico, o incluso óptico, son las únicas soluciones
válidas. Sin embargo, cuando los circuitos digitales existen y son de suficiente
velocidad 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
J. Erik Jonsson
Cecil H. Green
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 machinevision, 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 / Coprocesadores de imagen (HD-VICP),
motor
de conversión de datos de vídeo
interfaces orientadas a video. El DM6467
está 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 instrucciones
load/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, TightlyCoupled 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é,
y
regiones 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+DSP
Doble 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.
EXTERNOS
Permiten 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
Carga y almacenamiento con desplazamiento constante de
5 bits y 15 bits (Sólo en .D2).
Sumas/restas de 32 bits.
Registros
Cálculo para direccionamiento lineal y circular.
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
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)