Post on 18-Jul-2015
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
� $UTXLWHFWXUDV�WLSRV�GH�'63V
� $SOLFDFLRQHV�GH�ORV�'63V
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 de Digital de Señal Señal
Francisco.Gomez@ii.uam.es
• ¿Por qué usar procesamiento digital de señales?
ProcesamientoProcesamiento Digital de Digital de Señal Señal
Francisco.Gomez@ii.uam.es
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
Francisco.Gomez@ii.uam.es
¿¿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
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, 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 ? ?
Francisco.Gomez@ii.uam.es
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
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
Francisco.Gomez@ii.uam.es
ProcesadoresProcesadores DSPDSP
• DSP típico
Francisco.Gomez@ii.uam.es
ProcesadoresProcesadores DSPDSP
• Evolución de los procesadores DSP
Francisco.Gomez@ii.uam.es
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
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 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.
Francisco.Gomez@ii.uam.es
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
Francisco.Gomez@ii.uam.es
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
Francisco.Gomez@ii.uam.es
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
Francisco.Gomez@ii.uam.es
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
Francisco.Gomez@ii.uam.es
Procesadores Procesadores DSPDSP
• Formato de datos– Punto fijo
Francisco.Gomez@ii.uam.es
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.
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 PerformanceMulti-Channel / Function•Comm Infrastructure• xDSL• Imaging, Video•VLIW architecture•2400 MIPS +•Roadmap to 1 GHZ
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
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
Francisco.Gomez@ii.uam.es
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
Francisco.Gomez@ii.uam.es
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
Francisco.Gomez@ii.uam.es
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
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)
Francisco.Gomez@ii.uam.es
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
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 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
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
Francisco.Gomez@ii.uam.es
C6201: Diagrama de BloquesC6201: Diagrama de Bloques
Francisco.Gomez@ii.uam.es
Estructura de la CPUEstructura de la CPU
Francisco.Gomez@ii.uam.es
Unidades funcionalesUnidades funcionales
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
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
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
Francisco.Gomez@ii.uam.es
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
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
Francisco.Gomez@ii.uam.es
Programación del DSPProgramación del DSP(teoría)(teoría)
• Paquetes de instrucciones
• Mitades de la CPU• Unidades
funcionales• Condiciones• Y pipeline...
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.
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,...
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)
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)
Francisco.Gomez@ii.uam.es
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
Francisco.Gomez@ii.uam.es
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
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/