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
� $UTXLWHFWXUDV�WLSRV�GH�'63V
� $SOLFDFLRQHV�GH�ORV�'63V
•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 de Digital de Señal Señal
• ¿Por qué usar procesamiento digital de señales?
ProcesamientoProcesamiento Digital de Digital de Señal Señal
Estructura de un sistema DSPEstructura de un sistema DSP: Filtro IIR: Filtro IIR
H zb b z b z
a z a z( ) =
+ • + •+ • + •
− −
− −0 1
12
2
11
221
Función de transferencia
y n a k y n k b k x m kk
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
¿¿PorPor quéqué eses necesarionecesario un un procesadorprocesador de de 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
• 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, A dd, 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 un un procesadorprocesador de de propósitopropósito específicoespecífico ? ?
Un Un Procesador Procesador Digital de Digital 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
¿¿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
ProcesadoresProcesadores DSPDSP
• TiposMultiprocesadores DSP en un chip- TMS320C80
- TMS320C6000
Procesadores 32Bit- Floating Point– TI TMS320C4x
– Motorola 96000
– AT&T DSP32C
– Analog Devices ADSP21000
Procesadores 16Bit- Fixed Point– TI TMS320C2x
– Motorola 56000
– AT&T DSP16
– Analog Devices ADSP2100
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 datosSistema 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.
Características Características de de 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
Procesadores Procesadores 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
Procesadores Procesadores DSPDSP
– Arquitectura Harvard• Un bus intrucciones, otro para datos
• Usualmente permiten usar ambos para operandos
• Normalmente memoria cache para instrucciones
• Requiere gran cantidad de pines
Procesadores Procesadores DSPDSP
– Arquitectura von Neuman modificada• Reloj de memoria más rápido que el ciclo de instrucciones
• Más simple de programar
• Menos pines
Procesadores Procesadores DSPDSP
– Punto flotante• Escalado automático de números
• Un número muy grande es automáticamente escalado hacia abajo.
• Un número pequeño es automáticamente escalado hacia arriba.
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 PerformanceMulti-Channel / Function•Comm Infrastructure• xDSL• Imaging, Video•VLIW architecture•2400 MIPS +•Roadmap to 1 GHZ
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
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
Criterio de selección de un DSP Criterio 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ínimovalormáximovalor
DinámicoRango 10log20
=óncuantizacideerror
máximovalorecisiónMax bits .max
logPr 2
Selección de un DSP Selecció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
Ejemplo : La Familia C6200 Ejemplo : 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
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)
Fetch
PG PS PW PR DP DC E1 E2 E3 E4 E5
Decode Execute
Execute Packet 1
SegmentaciónSegmentación en C62x en C62x EtapasEtapas del Pipeline del Pipeline
• Single-Cycle Throughput• Operate in Lock Step• Fetch
– PG Program Address Generate– PS Program Address Send– PW Program Access Ready Wait– PR Program Fetch Packet Receive
• Decode– DP Instruction Dispatch– DC Instruction Decode
• Execute– E1 - E5 Execute 1 through Execute 5
PG PS PW PR DP DC E1 E2 E3 E4 E5Execute Packet 2 PG PS PW PR DP DC E1 E2 E3 E4 E5
Execute Packet 3 PG PS PW PR DP DC E1 E2 E3 E4 E5Execute Packet 4 PG PS PW PR DP DC E1 E2 E3 E4 E5
Execute Packet 5 PG PS PW PR DP DC E1 E2 E3 E4 E5Execute Packet 6 PG PS PW PR DP DC E1 E2 E3 E4 E5
Execute Packet 7 PG PS PW PR DP DC E1 E2 E3 E4 E5
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 Memory32-bit address, 256-Bit data512K Bits RAM
Host Port Interface
2 Timers
2 Multi-channel buffered
serial ports (T1/E1)
Data Memory32-Bit address, 8-, 16-, 32-Bit data
512K Bits RAM
Pwr Dwn
Instruction Decode
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
C6201: Diagrama de BloquesC6201: Diagrama de Bloques
Estructura de la CPUEstructura de la CPU
Unidades funcionalesUnidades funcionales
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
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
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
PerifericosPerifericos: HPI: HPI
• Interfaz asíncrona de 16 bits con un microprocesador
• 3 registros: datos, dirección y control
• Acceso a todo el mapa de memoria del DSP
• Interrupciones en ambos sentidos
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
Programación del DSPProgramación del DSP(teoría)(teoría)
• Paquetes de instrucciones
• Mitades de la CPU• Unidades
funcionales• Condiciones• Y pipeline...
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.
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,...
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)
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)
TMS320C6701 DSP TMS320C6701 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 Memory32-bit address, 256-Bit data
512K Bits RAM
Host Port Interface
2 Timers
2 Multi-channel buffered
serial ports (T1/E1)
Data Memory32-Bit address
8-, 16-, 32-Bit data512K Bits RAM
Power Down
Instruction Decode
ArithmeticLogicUnit
AuxiliaryLogicUnit
MultiplierUnit
’C67x Floating-Point CPU Core
Data Path 1
D1M1S1L1
A Register File
Data Path 2
L2S2M2D2
B Register File
Instruction Decode
Instruction Dispatch
Program Fetch
Interrupts
Control Registers
Control Logic
Emulation
Test
Floating-PointCapabilities
TMS320C67xTMS320C67x CPU CoreCPU Core
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/
Top Related