Download Procesadores Digitales de Señal (DSP)

Document related concepts
no text concepts found
Transcript
UNIDAD II
Procesadores Digitales de Señal
(DSP)
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
150
II. Procesadores digitales de señal (DSP)
•
•
•
•
•
•
•
•
•
•
Arquitectura de un DSP específico.
Unidad Central de procesamiento.
Memoria de programa y de datos.
Buses y periféricos.
Subsistemas de acceso directo a memoria.
Herramientas de desarrollo.
Parámetros para la elección de un dispositivo DSP.
Desempeño y limitaciones.
Ejemplos de implementación.
Sistemas operativos en tiempo real para DSPs
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
151
Arquitectura de la Famila de DSPs
TMS320C6000
Características generales:
• Nueva generación de la arquitectura VLIW
(Very long Instruction Word) de TI:
TI VelociTI™
• TMS320C62xx : Procesadores de punto fijo
(fixed point processors).
– Hasta 300 MHz de frecuencia de reloj.
• TMS320C67xx: Procesadores de punto
flotante (floating-point processors).
– 167 MHz de frecuencia de reloj.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
152
Arquitectura de la Famila de DSPs
TMS320C6000
Características generales:
• 167 MHz de frecuencia de reloj.
• Características comunes al ‘C62 y ‘C67:
• La misma arquitectura.
• Son compatibles pin-a-pin!!!
• Conjunto de instrucciones compatible entre ‘C62 y
‘C67
• Mínimo esfuerzo de conversión
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
153
Diagrama de bloques de la familia TMS 320C6000
MEMORIA
Direcciones
Datos
E
M
I
F
BUSES INTERNOS
CPU
P
E
R
I
F
E
R
I
C
O
S
EMIF=External Memory Interface
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
154
Diagrama de bloques de la familia TMS 320C6000
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
155
La Unidad Central de Procesamiento
(CPU)
Unidad de control de programa
•Búsqueda de instrucciones
•Despacho de instrucciones
•Decodificación de instrucciones
Camino de datos 1
Camino de datos 2
Registros de control
Prueba, emulación, control y
lógica para interrupcciones
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
156
La unidad de control de programa
Consta de 3 elementos:
– Unidad de búsqueda
– Unidad de despacho de instrucciones
– Unidad de decodificación de instrucciones
• Operación encauzada (pipelined)
• Cada unidad es capaz de procesar hasta ocho
instrucciones por ciclo
• Fetch packet (FP)=grupo de ocho instrucciones.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
157
La unidad de control de programa
• Unidad de búsqueda de programa
Para obtener un FP se requieren cuatro fases:
– PG: Generación de dirección del FP
– PS: Envío de la dirección a memoria de programa
– PW: Espera por los datos
– PR: La CPU lee el código de operación (opcode).
• Unidad de despacho de instrucciones:
– Se encarga de despachar las instrucciones a las
unidades de ejcución adecuadas (fase DP).
• Unidad de decodificación de instrucciones:
– La constituyen las ocho unidades de ejecución
(fases DC y de ejecución: E1,E2,E3,E4,E5)
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
158
Operación encauzada
Un paquete de instrucciones ejecutado por
cada paquete de instrucciones (FP) buscado
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
159
Camino de datos del CPU
• Doble camino de datos: data path A y data path B
• Cada uno con:
– Cuatro unidades de ejecución:.L ,.M, .S y .D
– Conjunto de 16 registros de 32 bits (A0-A15) (B0-B15)
– Un camino de datos para carga desde memoria de 32
bits:
• (LD1, LD2) (dos para el ‘C67: LDx 32 MSB y LDx 32 LSB)
– Camino de datos para almacenamiento en memoria
(ST1, ST2)
– Camino de dirección de datos (DA1, DA2)
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
160
Camino de datos del CPU
• Adicionalmente se tiene comunicación de datos y
direcciones entre ambos bloques mediante:
• Dos caminos cruzados de datos (data cross paths
2X y 1X)
• Dos caminos cruzados de direcciones (address
cross paths)
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
161
Camino de datos del ‘C62xx
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
162
Unidades de ejecución de programa
• Cuatro unidades de 32 bits por cada camino
de datos:
.L .S
.M
.D
• Las unidades .L y .S pueden operar también
con operandos de 40 bits.
• Cada unidad ejecuta un conjunto específico
de operaciones.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
163
Unidades de ejecución de programa
• Unidades .L (.L1 y .L2)
– Operaciones aritméticas y de comparación
de 32/40 bits
– Operaciones lógicas de 32 bits.
– Normalización de enteros y conteo de bits
– Aritmética saturada para operaciones de
32/40 bits.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
164
Unidades de ejecución de programa
• Unidades .M (.M1 y .M2)
– Multiplicadores en hardware:
• 16x16 bits que producen resultados de 32 bits
(‘C62x).
• 32x32 bits que producen resultados de 64 bits
(‘C67x).
• Como los operandos son de 32 bits hay varias
opciones!
– Multiplicación en punto flotante (‘C67x).
– Multiplicación con desplazamiento a la
izquierda y saturación.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
165
Unidades de ejecución de programa
• Unidades .S (.S1 y .S2)
Esta unidades contienen ALUs de 32 bits y
desplazadores de 40 bits para:
– Aritmética de 32 bits, operaciones lógicas
y por campos de bits.
– Desplazamientos de 32/40 bits
– Saltos (.S2 solamente si se usa un
registro como desplazamiento)
– Transferencia desde/hacia registros de
control (sólo .S2)
– Generación de constantes.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
166
Unidades de ejecución de programa
• Unidades de datos .D (.D1 y.D2)
Utilizadas para:
– Carga y almacenamiento con desplazamiento
constante de 5 bits
– Carga y almacenamiento con desplazamiento
constante de 15 bits (sólo en .D2)
– Sumas y restas de 32 bits
– Cálculos para direccionamiento lineal y circular.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
167
Registros de control comunes al ‘C62 y ‘C67
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
168
Conjuntos ó archivos de registros
(register files)
Cada camino de datos posee 16 registros de
propósito general de 32 bits (A0-A15, B0B15)que pueden ser usados para:
• almacenar datos
• almacenar punteros de direcciones a datos
• Como registros condicionales para cualquier
instrucción (solamente A1, A2, B0, B1, B2)
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
169
Conjuntos ó archivos de registros
(register files)
Para crear operandos de 40 o de 64 bits, los
registros tienen que ser concatenados como
pares de registros y debe cumplirse que:
• Sean del mismo camino de datos
• Ordenados como impar (MSB) primero y par
(LSB) de segundo
• Posibles combinaciones (similar para el
conjunto B):
A1:A0, A3:A2, A5:A7, A9:A8, A11:A10, A13:A12,
A15:A14
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
170
Organización de la memoria
• Rango de direcciones de 4 Gbytes (232)
dividido en cuatro espacios:
–
–
–
–
Memoria interna de programa
Memoria interna de datos
Periféricos internos
Memoria externa:
Espacios de memoria CE0, CE1, CE2 y CE3.
• La localización exacta de cada espacio
depende del mapa usado:
– ‘C620x/’C670x: dos mapas (mapa 0 ó mapa 1)
– ‘C621x’’C671x: un solo mapa
– El mapa selecciona si la dirección de /RESET
(00000000h) es memoria interna o externa
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
171
Resumen mapa de memoria para
TMSC6201/C204/C6205/C6701 (1)
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
172
Resumen mapa de memoria para
TMSC6201/C204/C6205/C6701 (2)
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
173
Resumen
mapa de
memoria
para
C621x
C671x
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
174
Acceso a memoria
El acceso a memoria de programa o de datos se realiza
mediante dos controladores de memoria:
– Controlador de memoria de programa.
– Controlador de memoria de datos.
Controlador de memoria de programa:
• Ejecuta las solicitudes de acceso a memoria del CPU y
del controlador DMA a memoria de programa y realiza el
arbitraje en caso de conflictos
• Ejecuta las solicitudes de acceso a memoria externa del
CPU a través de la EMIF
• Maneja la memoria interna de programa cuando se
configura como cache
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
175
Controladores de memoria en el diagrama de
bloques del CPU C620x/C670x
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
176
Acceso a memoria
•
•
•
•
•
Controlador de memoria de datos (Data Memory
Controller – DMEMC):
Como se muestra en la figura anterior, este controlador
conecta:
El CPU y el controlador de acceso directo a memoria
(DMA) con la memoria de datos interna y realiza el
arbitraje necesario.
El CPU con la interfaz de memoria externa (EMIF)
El CPU con los periféricos internos a través de controlador
del bus de periféricos.
La memoria interna se organiza en dos bloques de cuatro
bancos para permitir el acceso simultáneo a memoria por
parte de los dos caminos de datos del CPU sin conflicto,
cuando éstos usan bloques diferentes (ver ejemplo en la
siguiente láamina para el C6201/04/05)
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
177
Conexión CPU-DMEMC para el
C6201/C6204/C6205
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
178
Controlador de Acceso Directo a Memoria
(DMA)
• Este controlador integrado en el chip permite la
transferencia de datos entre la memoria interna y:
– Memoria externa
– Puerto de anfitrión (Host Port)
– Periféricos externos
•
Esta transferencia se realiza con carga 0 (zero overhead)
para el CPU y con total transparencia. Por supuesto, si el
CPU y el DMA tratan de acceder la misma localidad se
requiere de un arbitraje por parte del controlador de
memoria!!
• Existen 4 canales DMA y un canal auxiliar dedicado a la
interfaz del puerto de anfitrión (Host Port Interface – HPI).
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
179
Puertos Seriales
• El ‘C62xx/’C67xx tiene dos puertos seriales multicanal con
búfers (Multichannel Buffered Serial Ports – McBSP)
• Interfaz económica, estándar y configurable por el
usuario para comunicaciones seriales con periféricos
externos.
• Operación full-duplex con doble búfer
• Relojes independientes para Tx y Rx (pueden ser internos
o externos)
• 40 Mbits/s por canal (ver datos actualizados en
www.ti.com)
• Operación multicanal hasta 128 canales.
• Los puertos McBSP tienen interfaz directa para:
Generadores de tramas T1/E1, dispositivos SPI, IIS, AC97
y otros estándares.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
180
Interfaz del puerto de anfitrión
(Host Port Interface – HPI)
• Interfaz de bajo costo para buses estándar de
microprocesadores
• Es un puerto paralelo a través del cual un
microprocesador puede acceder directamente la memoria
del CPU.
• Soporte para datos de 16 bits (ver datos actualizados en
www.ti.com) con posibilidades de transferencias de 32 bits
mediante dos transferencias de 16 bits.
• Es posible acceder a todo el espacio de memoria para
intercambiar datos entre el CPU y el HPI, pero solamente
mediante el puerto auxiliar DMA.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
181
Temporizadores
•
•
•
•
•
El ‘C62xx/’C67xx tiene dos temporizadores de 32
bits que pueden usarse para
Temporizar eventos
Contar eventos
Generar pulsos
Interrumpir a la CPU
Enviar eventos de sincronización al controlador
de DMA.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
182
Temporizadores
Cada temporizador tiene
• Un registro de control de operación (CTL).
• Una entrada TINP y una salida TOUT.
• Un registro de periodo de temporizador (PRD) para
almacenar el valor de conteo
• Un contador ascendente (Timer Counter - CNT) para
generar una interrupción cuando se alcanza la cuenta
FFFFFFFFh.
• El contador ascendente se incrementa cada cuarto de
ciclo y se recarga con el valor del registro de periodo cada
vez que se llega a cero (desborde)
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
183
Diagrama de
bloques de los
temporizadores
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
184
Interrupciones
No enmascarables:
• /RESET
• NMI (NonMaskable Interrupt)
• Esta puede enmascararse, pero solo cuando ocurre un
/RESET o un NMI (el usuario no lo puede hacer). Es
habilitada mediante el bit NMIE del IER .
Enmascarables:
• INT4, INT5, ..., INT15
• Estas interrupciones pueden ser generadas por
dispositivos externos, los periféricos internos o trampas de
software (software traps).
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
185
Interrupciones Enmascarables
• La asignación de las señales de interrupción (INT4 –
INT15) a pines externos o a los periféricos internos
depende del dispositivo (hay que referirse a la hoja de
datos)
• Para que se atienda una interrupción enmascarable se
debe cumplir:
– Que ocurra la interrupción correspondiente
– EL bit NMIE debe estar en 1.
– el bit de habilitación global de interrupciones (GIE) en el registro
de control de estado (CSR) debe estar en 1.
– El bit de habilitación correpondiente a la interupción el el registro
de habilitación de interrupciones (IER) debe estar en 1.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
186
Parámetros para la elección de un
procesador DSP
Específicos del dispositivo:
Formato aritmético, soporte para punto flotante,
desmpeño (MIPS, MFLOPS), Ancho de banda de
memoria externa, Ancho de banda de E/S, Número de
registros, Tamaño de memoria de programa y de datos en
el chip, periféricos, consumo de potencia, costo, etc.
Específicos del sistema:
• Dependen de las compañias fabricantes de plataformas
DSP:
Número de módulos de E/S, Interfaz (PCI, ISA, VME,..),
Costo, Herramientas de desarrollo, Soporte técnico,
pruebas de falla, posibilidad de actualización, consumo de
potencia, reportes de aplicación.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
187
Parámetros específicos del dispositivo
Parámetro
TMS320C6201
(a 200 MHz)
TMS320C6701
(a 167 MHz)
Formato aritmético
32 bits
32 bits
Formato extendido de punto
flotante
No disponible
64 bits
Formato aritmético extendido
40 bits
40 bits
Desempeño (pico y típico)
(1600-*?) MIPS
(1336-*?)MFLOPS
A.B. De memoria externa
880 Mbits/s
880 Mbits/s
Puertos seriales
2x50 Mbits/s
2x83.4 Mbits/s
Numero de multiplicadores por
hardware
2x(16x16 bits) con
resultado en 32 bits
2x(32x32 bits) con
resultado en 64 bits
Numero de registros
32
32
* El valor típico depende de la aplicación
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
188
Parámetros específicos del dispositivo
Parámetro
TMS320C6201
(a 200 MHz)
TMS320C6701
(a 167 MHz)
Tamaño de memoria de
programa interna
16K x 32 bits
16K x 32 bits
Tamaño de memoria de datos
interna
16K x 32 bits
16K x 32 bits
Cache
Toda la memoria de
porgrama si se
seleciona
Toda la memoria de
porgrama si se
selecciona
Canales DMA
4 + 1 auxiliar
4 + 1 auxiliar
Consumo de potencia
< 2 vatios
< 2 vatios
Manejo de consumo
Si
Si
Temporizadores en el chip
2 x 32 bits
2 x 32 bits
Costo en $ (muestra)
$160
$257
Tamaño
Revisar hoja de datos
Revisar hoja de datos
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
189
Sistemas de Tiempo Real
• Un sistema de tiempo real responde de una manera
predecible (y oportuna!) cuando sucede un extímulo
externo impredecible. En resumen, un sistema de tiempo
real tiene que cumplir (bajo condiciones de carga
extrema):
1. Oportunamente: cumplir con los límites de tiempo, se requiere que la
aplicación finalice determinadas tareas dentro de los límites de tiempo
establecidos.
2. Simultánenamente: más de un evento puede suceder al mismo
tiempo y aún así todos los límites de tiempo se deben cumplir.
3. Predeciblemente: el sistema debe reaccionar de manera predecible
a todos los posibles eventos.
4. Confiablemente: es necesario que el sistema de tiempo real pueda
confiar y contar consigo mismo.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
190
Otras definiciones, clasificacion y ejemplos:
• Sistemas dedicados
• Sistemas de tiempo real
– Sistemas operativos de tiempo real “no estricto”
(soft real-time operating system)
– Sistemas operativos de tiempor real “estricto”
(hard-real time operating system)
• Sistemas “empotrados” (embedded system)
• Sistemas tolerantes a fallas.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
191
Sistemas dedicados
• Un sistema en donde la funcionalidad está
totalmente ligada al hardware y al software.
• La mayoría de los sistemas dedicados tienen
restricciones de tiempo real relajadas, otros
necesitan ser estrictamente en tiempo real y
algunos tienen capacidad para tolerancia a
fallas.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
192
Sistemas operativos de tiempo real
• Un sistema operativo es de tiempo real
cuando puede soportar la ejecución de
aplicaciones con restricciones de tiempo en
su ejecución.
• Puede hacerse una clasificación entre
sistemas de tiempo real estrictos (hard) y no
(soft) basándose en sus propiedades. Cada
uno se explicará con un ejemplo específico.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
193
Sistemas operativos de tiempo real
• Un ejemplo de un sistema operativo de
tiempo real estricto es el que controla el
piloto automático de un avión:
– No se aceptan retrasos bajo ninguna
circunstancia, pues de otro modo el avión no será
controlado.
– Si hay retrasos, el sistema es inútil. El costo de no
cumplir un límite de tiempo es infinitamente alto.
• Un sistema operativo de tiempo real no
estricto puede ser una máquina vendedora:
– El retraso de los resultados implica un aumento
en los costos, pero no es catastrófico.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
194
Sistemas empotrados (embedded)
Sistemas tolerantes a fallas
Sistemas empotrados (embedded systems):
• Un sistema de computación que está incluido dentro de
otro sistema y forma parte escencial de éste último.
• O también: hardware y software que constituye un
componente de un sistema mas grande y que se espera
que funcione sin la intervención humana.
Sistema tolerante a fallas:
• Es un sistema que sigue trabajando en cualquier
circunstancia (excepto en el caso de destrucción física).
• O también: La capacidad que tiene un sistema para
continuar con su operación normal a pesar de la
presencia de fallas de hardware o software.
22/05/02
EL-523063 Sistemas de Procesamiento Digital de Señales – Luis Tarazona
195