El documento describe los procesadores digitales de señal (DSP). Explica que los DSP tienen una arquitectura y conjunto de instrucciones optimizados para procesar señales digitales mediante operaciones como suma y multiplicación. También describe algunas características clave de los DSP como su capacidad para realizar operaciones MAC en un solo ciclo y su uso común en aplicaciones de filtrado, convolución y correlación. Además, analiza ejemplos específicos de DSP como la familia TMS320 de Texas Instruments.
1. Francisco.Gomez@ii.uam.es
Análisis de SeñalAnálisis de Señal
Tema I : Procesadores digitales de Señal
‡ (VWUXFWXUD WtSLFD GH XQ VLVWHPD '63
‡ &DUDFWHUtVWLFDV YHQWDMDV GH ORV '63V
‡ $UTXLWHFWXUDVWLSRV GH '63V
‡ $SOLFDFLRQHV GH ORV '63V
2. Francisco.Gomez@ii.uam.es
•La entrada es una señal analógica
•Se convierte la señal analogica a digital
•Procesar matemáticamente la representación de la señal
•Volver a convertir de digital a analogica
•Dar como salida una señal analogica
•Procesamiento en tiempo Real de la representación
Matemática de la señal
ProcesamientoProcesamiento Digital deDigital de SeñalSeñal
4. Francisco.Gomez@ii.uam.es
Estructura de un sistema DSPEstructura de un sistema DSP: Filtro IIR: Filtro IIR
H z
b b z b z
a z a z
( ) =
+ • + •
+ • + •
− −
− −
0 1
1
2
2
1
1
2
2
1
Función de transferencia
y n a k y n k b k x m k
k
M
k
N
( ) ( ) ( ) ( ) ( )= − • − + • −
==
∑∑ 01
Ecuación en Diferencias
Diagrama de flujo
x(n) y(n)
Z-1
Z-1
+
++
+ b0
b1
b2-a2
-a1
Sistema muy utilizado, permite por ejemplo aislar las señales con una características
de frecuencia específicas
5. Francisco.Gomez@ii.uam.es
¿¿PorPor quéqué eses necesarionecesario unun procesadorprocesador dede
propósitopropósito específicoespecífico??
• Estas operaciones requieren muchos cálculos de la forma:
A = B*C + D
• Esta ecuación simple involucra una multiplicación y una
operación de suma
• La instrucción de multiplicación de un procesador de propósito
general es muy lenta en comparación con la instrucción de suma
– El microprocesador Motorola 68000 necesita
• 10 ciclos de reloj para una suma
• 74 ciclos de reloj para una multiplicación
6. Francisco.Gomez@ii.uam.es
• Los procesadores digitales de seña pueden realizar la operación
de suma y multiplicación en un solo ciclo
– La mayor parte de los DSPs tienen una instrucción
especializada que permite multiplicar, sumar y guardar el
resultado en un ciclo.
– Esta instrucción se denomina MAC (Multiply, Add, y
Accumulate)
• Los DSPs tienen como objetivo minimizar
– El coste y el tiempo de desarrollo de una aplicación
– El consumo de potencia y la ocupación de memoria
¿¿PorPor quéqué eses necesarionecesario unun procesadorprocesador dede
propósitopropósito específicoespecífico??
7. Francisco.Gomez@ii.uam.es
UnUn ProcesadorProcesador Digital deDigital de SeñalSeñal
• Características comunes de las aplicaciones que se desarrollan
con un DSP:
– Utilizan muchas operaciones de suma y multiplicación
– Tratan señales que provienen del mundo real
– Necesitan cierta respuesta en el tiempo
• Las operaciones clave para un DSP son
– convolución
– correlación
– filtrado
– Transformaciones discretas
8. Francisco.Gomez@ii.uam.es
¿¿QuQuéé es un DSPes un DSP??
• Es un microprocesador con un juego de instrucciones dedicado
al procesado digital de señal:
– Mayor paralelismo
– Juego de instrucciones orientado a MAC
• y = a·x1 + b·x2 + c·x3 + ...
• Filosofía microcontrolador: CPU + memoria interna +
periféricos
• Es raro que tengan conversores A/D o D/A
11. Francisco.Gomez@ii.uam.es
ProcesadoresProcesadores DSPDSP
• Tipos
Multiprocesadores DSP en un chip
- TMS320C80
- TMS320C6000
Procesadores 32Bit- Floating Point
– TI TMS320C4x
– Motorola 96000
– ATT DSP32C
– Analog Devices ADSP21000
Procesadores 16Bit- Fixed Point
– TI TMS320C2x
– Motorola 56000
– ATT DSP16
– Analog Devices ADSP2100
12. Francisco.Gomez@ii.uam.es
Consideraciones para optimizarConsideraciones para optimizar un DSPun DSP
#1: La CPU se diseña considerando la aplicación DSP.
Un entorno que permite la ejecución eficiente de operaciones
de un proceso DSP, tal como realizar MAC en un ciclo.
#2: Buses múltiples para un flujo eficiente de instrucciones y de datos
Sistema de gestión de datos que permite un precesamiento
eficiente de vectores y streams de datos en tiempo real.
(Arquitectura Harvard Architecture)
#3: Conjunto de instrucciones muy especifico para conseguir gran
potencia de calculo en DSP. (Highly-tuned instruction set)
Instrucciones sofisticadas que se pueden ejecutar en muy pocos
ciclos , con menos código y menor consumo de potencia.
13. Francisco.Gomez@ii.uam.es
CaracterísticasCaracterísticas dede los Procesadoreslos Procesadores DSPDSP
– Muchos registros
• Permiten guardar datos temporalmente
• Registros enteros y de punto flotante
– Generador eficiente de direcciones
• Poseen registros de direcciones
• Usualmente se genera en operaciones de “fetch” o “store”
• Operaciones típicas
– *rP
– *rP++
– *rP--
– *rP++rI ( registro indirecto)
– *rP++rIreverse ( util para algoritmo FFT)
- Buffers Circulares
14. Francisco.Gomez@ii.uam.es
ProcesadoresProcesadores DSPDSP
• Arquitecturas de memoria
– Operaciones típicas incluyen
• Traer dos operandos
• Suma y multiplicación
• Guardar resultado o mantenerlo
– Lo que sería “bueno” hacer de una vez
• Traer dos operandos
• Traer instrucción
• Guardar resultado
– Generalmente se soporta multiple acceso a memoria:
Memoria Multipuerto
19. Francisco.Gomez@ii.uam.es
DSP de Texas InstrumentsDSP de Texas Instruments
‘C2000
(‘C20x, ‘C24x)
‘C1x ‘C2x
‘C5x
‘C5000
(‘C54x)
‘C3x ‘C4x ‘C8x
‘C6000
(‘C62x, ‘C67x)
Control Efficient
• Storage
• Brushless Motor Control
•Flash Memory
•A/D
•PWM Generators
Power Efficient
Performance
•Wireless Telephones/IADs
•Modems / Telephony
•VoIP
•.32ma/MIPS to sub 1V parts
•$5 / 100 MIPS
High Performance
Multi-Channel / Function
•Comm Infrastructure
• xDSL
• Imaging, Video
•VLIW architecture
•2400 MIPS +
•Roadmap to 1 GHZ
20. Francisco.Gomez@ii.uam.es
DSPs: Texas Instruments TMS320 SeriesDSPs: Texas Instruments TMS320 Series
• C1X, C2X
– Fixed-point devices with 16-bit data bus width
– Used in toys, hard disk drives, modems and active car suspensions
• C3X
– Floating-point devices with 32-bit data bus width, which provides much
wider dynamic range as compared to fixed-point devices
– Because of higher accuracy, used in hi-fi systems, voice mail systems and
3D graphic processing
• C4X
– 32-bit floating-point device designed for parallel processing
– Optimized on-chip communication channel enables several devices
to be put together to form a parallel cluster
– Used in virtual reality, recognition and parallel processing systems
21. Francisco.Gomez@ii.uam.es
DSPs: Texas Instruments TMS320 Series (cont.)DSPs: Texas Instruments TMS320 Series (cont.)
• C5X
– Low power fixed-point DSPs
– Used for personal and portable electronics such as cell phones, digital
music players, and digital cameras
• C6X
– High performance DSPs, with speeds up to 1 GHz
– Both fixed and floating-point devices
– Used in wired and wireless broadband networks, imaging applications
and professional audio
• C8X
– Multimedia processors, with parallel processing on a single chip with
advanced DSPs and a controlling RISC processor
– Used in high performance telephony, 3D computer graphics, virtual
reality and a number of multimedia applications
22. Francisco.Gomez@ii.uam.es
Criterio de selección de un DSPCriterio de selección de un DSP
• Formato Aritmético
– Punto fijo vs coma flotante
– Ancho de palabra
– Rendimiento
– Bajo: ~ 25 a 50 MHz, bajo
consumo y coste.
– Medio: ~150 MHz, multiproceso
– Alto: Arquitectura mejorada,
VLIW o SIMD
• Otros
– Interfases externos
– Multiproceso
– Consumo de potencia
– Coste
PARAMETROS
• Rango dinámico
Mayor Rango dinámico supone la
representación de un conjunto
mayor de datos sin overflow
• Diferentes aplicaiones tienen
diferentes necesidades
• Telecom : 50 dB
• High Fidelity : 90 dB
• Precisión
×=
mínimovalor
máximovalor
DinámicoRango 10log20
=
óncuantizacideerror
máximovalor
ecisiónMax bits
.max
logPr 2
23. Francisco.Gomez@ii.uam.es
Selección de un DSPSelección de un DSP
• Mayor Rango dinámico
– Arquitectura de la CPU
– Periféricos
• Menor esfuerzo en la codificación
– No es necesario un escalado
• Mayor precisión
– Aunque depende del tamaño
de la palabra.
• Hardware mas sencillo
– Menos silicio
• Menor coste
• Mayor velocidad de CPU
• Menor consumo de potencia
24. Francisco.Gomez@ii.uam.es
Ejemplo : La Familia C6200Ejemplo : La Familia C6200
• Introducción a la familia C6200 de TI
– Arquitectura de la CPU
– Periféricos
• Programación
– Alternativas
– DSP/BIOS II
• Desarrollo de una tarjeta CTI, Computer Telephony Integration
– Gateway VoIP
25. Francisco.Gomez@ii.uam.es
Familia C6200: CPUFamilia C6200: CPU
• Arquitectura VLIW
– Ejecuta 8 instrucciones en paralelo
– En paquetes de hasta 256 bits
– 200-300 MHz (1600-2400 MIPS)
• Aritmética entera de 32 bits
– Maneja datos de 8,16 y 32 bits
– Soporte para 40 bits
• Pipeline de 7 a 11 fases
– 4 (fetch) + 2 (decode) + 1..5 (execute)
27. Francisco.Gomez@ii.uam.es
TMS320C6201 Revision 2TMS320C6201 Revision 2
C6201 CPU Megamodule
Data Path 1
D1M1S1L1
A Register File
Data Path 2
L2S2M2D2
B Register File
Instruction Dispatch
Program Fetch
Interrupts
Control
Registers
Control
Logic
Emulation
Test
Ext.
Memory
Interface
4-DMA
Program Cache / Program Memory
32-bit address, 256-Bit data512K Bits RAM
Host Port
Interface
2 Timers
2 Multi-
channel
buffered
serial ports
(T1/E1)
Data Memory
32-Bit address, 8-, 16-, 32-Bit data
512K Bits RAM
Pwr
Dwn
Instruction Decode
28. Francisco.Gomez@ii.uam.es
Familia C6200: PeriféricosFamilia C6200: Periféricos
• EMIF: Interfaz directa a distintas memorias
– SDRAM
– SBSRAM (synchronous burst SRAM)
– Asíncronas ‘de toda la vida’
• HPI: Host Port Interface
– Interfaz sencilla en el que el DSP aparece como periférico del
microprocesador principal
• McBSP: comunicaciones serie TDM
• DMA: varios canales para transferir datos
32. Francisco.Gomez@ii.uam.es
Jerarquía de memoria (I)Jerarquía de memoria (I)
• Memoria interna de programa
– 64 KB (2K paquetes de 256 bits)
– Configurable como caché de instrucciones de
correspondencia directa
– Acceso en un ciclo de reloj a 256 bits
• Memoria interna de datos
– 64 KB organizados en dos bloques de 32 KB
– Cada bloque se divide en 4 bancos
– DMA y CPU pueden acceder concurrentemente a distintos
bloques, o al mismo bloque y distintos bancos
33. Francisco.Gomez@ii.uam.es
Jerarquía de memoria (II)Jerarquía de memoria (II)
• Memoria externa
– SDRAM
• Funciona a ½ fCPU
• Penalización por apertura de página (3 ciclos)
• Latencia pipeline 2-3 ciclos
• Barata
– SBSRAM
• Funciona a ½ fCPU o bien a fCPU (200 MHz!)
• Acceso sin restricciones de páginas
• Latencia pipeline 2 ciclos
34. Francisco.Gomez@ii.uam.es
Periféricos:Periféricos: McBSPMcBSP
• Multichannel Buffered Serial Port
• Puerto de comunicaciones serie, con varios canales
multiplexados en el tiempo
– Señales de reloj, frame, entrada y salida de datos
• Interfaz con codecs, RDSI, dispositivos CT
• Longitud de datos programable
• Ley A o µ por hardware
• Doble buffer
• En el 6201 hay dos McBSP
36. Francisco.Gomez@ii.uam.es
Periféricos: DMAPeriféricos: DMA
• 4 canales más uno auxiliar para el HPI
• Modo split-channel: mismo canal para lectura y escritura
• Transferencias por bloques y frames
– Un bloque está compuesto por n frames de m elementos
– Ajuste programable de direcciones permite el desentrelazado.
• DMA por eventos, interrupciones de DMA, prioridades variables
38. Francisco.Gomez@ii.uam.es
Programación del DSP (práctica)Programación del DSP (práctica)
• VLIW + pipeline + data hazards = demasiado
• Las herramientas de TI ofrecen un compilador de C
optimizado.
39. Francisco.Gomez@ii.uam.es
DSP/BIOS IIDSP/BIOS II
• Es un API con pretensiones de sistema operativo
– Gestión de memoria
– Tareas e IPC (semáforos,...)
– Transferencias de datos (pipes,...)
– Debugging (trazas, envío de datos al host)
• Conjunto de funciones (API tradicional)
• Herramienta gráfica para la creación y gestión de objetos como
pipes, tasks,...
40. Francisco.Gomez@ii.uam.es
TareasTareas
• HWI (Hardware Interrupt)
– Son las de mayor prioridad, y se corresponden con una ISR
de un periférico
• SWI (Software Interrupt)
– Tienen un mailbox asociado de 32 bits, como condición de
disparo o información
• TSK (Tasks)
– Son threads clásicos, que pueden dormir en espera de un
evento (un semáforo, por ejemplo)
• IDL (Idle Loop)
41. Francisco.Gomez@ii.uam.es
MemoriaMemoria y otras cosasy otras cosas
• Funciones típicas MEM_alloc, MEM_free,...
– ¡Hay distintos tipos de memorias!
• Gestión de colas
– QUE_get, QUE_put: atómicas (deshabilitan IRQs)
– QUE_dequeue, QUE_enqueue: permiten IRQs
– QUE_head, QUE_insert, QUE_next,...
• IPC: semáforos (SEM_post, SEM_pend) y mailboxes (MBX_post
y MBX_pend)
42. Francisco.Gomez@ii.uam.es
TMS320C6701 DSPTMS320C6701 DSP
Block DiagramBlock Diagram
’C67x Floating-Point CPU Core
Data Path 1
D1M1S1L1
A Register File
Data Path 2
L2S2M2D2
B Register File
Instruction Dispatch
Program Fetch
Interrupts
Control
Registers
Control
Logic
Emulation
Test
External
Memory
Interface
4
Channel
DMA
Program Cache/Program Memory
32-bit address, 256-Bit data
512K Bits RAM
Host Port
Interface
2 Timers
2 Multi-
channel
buffered
serial ports
(T1/E1)
Data Memory
32-Bit address
8-, 16-, 32-Bit data
512K Bits RAM
Power
Down
Instruction Decode
44. Francisco.Gomez@ii.uam.es
Procesadores digitales de SeñalProcesadores digitales de Señal
Bibliografía en Web
• Hong Kong City U Image Processing Lab’s Introduction to DSP:
www.ee.cityu.edu.hk/~lmpo/ee32211/notes/dsp/dsp.html
• BORES On-Line Introduction to DSP: www.bores.com/courses/intro/
• Texas Intsruments: www.ti.com
• OGI ECE544: http://www.ece.ogi.edu/~macon/ECE544/
• Berkeley’s EECS 20: http://robotics.eecs.berkeley.edu/~mayi/imgproc/