Download Análisis de Señal

Document related concepts
no text concepts found
Transcript
Análisis de Señal
Tema I : Procesadores digitales de Señal
‡ (VWUXFWXUDWtSLFDGHXQVLVWHPD'63
‡ &DUDFWHUtVWLFDV\YHQWDMDV GHORV'63V
‡ $UTXLWHFWXUDVWLSRVGH'63V
‡ $SOLFDFLRQHVGHORV'63V
[email protected]
Procesamiento Digital de Señal
•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
[email protected]
Procesamiento Digital de Señal
• ¿Por qué usar procesamiento digital de señales?
[email protected]
Estructura de un sistema DSP: Filtro IIR
Sistema muy utilizado, permite por ejemplo aislar las señales con una características
de frecuencia específicas
Función de transferencia
Ecuación en Diferencias
b0 + b1 • z −1 + b2 • z − 2
H ( z) =
1 + a1 • z − 1 + a 2 • z − 2
N
M
k =1
k =0
y(n) = −∑ a(k ) • y(n − k ) + ∑b( k ) • x(m − k )
Diagrama de flujo
x(n)
+
b0
+
b1
+
y(n)
Z-1
+
-a1
Z-1
-a2
b2
[email protected]
¿Por qué es necesario un procesador de
propósito especí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
[email protected]
¿Por qué es necesario un procesador de
propósito específico?
• 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
[email protected]
Un Procesador Digital de Señ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
[email protected]
¿Qué es 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
[email protected]
Procesadores DSP
• DSP típico
[email protected]
Procesadores DSP
• Evolución de los procesadores DSP
[email protected]
Procesadores DSP
• Tipos
Multiprocesadores 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
[email protected]
Consideraciones para optimizar un 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.
[email protected]
Características de los Procesadores DSP
– 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
[email protected]
Procesadores DSP
• 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
[email protected]
Procesadores DSP
– Arquitectura Harvard
• Un bus intrucciones, otro para datos
• Usualmente permiten usar ambos para operandos
• Normalmente memoria cache para instrucciones
• Requiere gran cantidad de pines
[email protected]
Procesadores DSP
– Arquitectura von Neuman modificada
• Reloj de memoria más rápido que el ciclo de instrucciones
• Más simple de programar
• Menos pines
[email protected]
Procesadores DSP
• Formato de datos
– Punto fijo
[email protected]
Procesadores DSP
– 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.
[email protected]
DSP de Texas Instruments
Power Efficient
Performance
Control Efficient
• Storage
• Brushless Motor Control
•Flash Memory
•A/D
•PWM Generators
•Wireless Telephones/IADs
•Modems / Telephony
•VoIP
•.32ma/MIPS to sub 1V parts
•$5 / 100 MIPS
‘C5000
(‘C54x)
‘C2000
(‘C20x, ‘C24x)
‘C5x
‘C6000
(‘C62x, ‘C67x)
‘C3x ‘C4x ‘C8x
High Performance
Multi-Channel / Function
•Comm Infrastructure
• xDSL
• Imaging, Video
•VLIW architecture
•2400 MIPS +
•Roadmap to 1 GHZ
‘C1x ‘C2x
[email protected]
DSPs: 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
[email protected]
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
[email protected]
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
 valor máximo 

Rango Dinámico = 20 × log10 
valor
mínimo


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


valor máximo

Max Pr ecisiónbits = log 2 
max
.
error
de
cuantizaci
ón


[email protected]
Selección de un DSP
•
Hardware mas sencillo
– Menos silicio
•
•
•
•
Menor coste
Mayor velocidad de CPU
Menor consumo de potencia
•
•
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.
[email protected]
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
[email protected]
Familia 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)
[email protected]
Segmentación en C62x
Etapas del Pipeline
Fetch
Decode
Execute
PG PS PW PR DP DC E1 E2 E3 E4 E5
• 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
Execute Packet 1 PG PS PW PR DP DC
Execute Packet 2 PG PS PW PR DP
Execute Packet 3 PG PS PW PR
Execute Packet 4 PG PS PW
Execute Packet 5 PG PS
Execute Packet 6 PG
Execute Packet 7
•
•
E1
DC
DP
PR
PW
PS
PG
Decode
– DP
– DC
Execute
– E1 - E5
E2
E1
DC
DP
PR
PW
PS
E3
E2
E1
DC
DP
PR
PW
Instruction Dispatch
Instruction Decode
Execute 1 through Execute 5
E4 E5
E3 E4 E5
E2 E3 E4
E1 E2 E3
DC E1 E2
DP DC E1
PR DP DC
E5
E4
E3
E2
E1
E5
E4
E3
E2
[email protected]
E5
E4
E3
E5
E4
E5
TMS320C6201 Revision 2
Program Cache / Program Memory
32-bit address, 256-Bit data512K Bits RAM
Pwr
Dwn
C6201 CPU Megamodule
Program Fetch
Control
Registers
Instruction Dispatch
Host Port
Interface
4-DMA
Instruction Decode
Data Path 1
Data Path 2
A Register File
Control
Logic
B Register File
Test
Emulation
Ext.
Memory
Interface
L1
S1
M1
D1
D2
M2
S2
L2
Interrupts
2 Timers
Data Memory
32-Bit address, 8-, 16-, 32-Bit data
512K Bits RAM
2 Multichannel
buffered
serial ports
(T1/E1)
[email protected]
Familia 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
[email protected]
C6201: Diagrama de Bloques
[email protected]
Estructura de la CPU
[email protected]
Unidades funcionales
[email protected]
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
[email protected]
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
[email protected]
Periféricos: McBSP
• 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
[email protected]
Perifericos: 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
[email protected]
Perifé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
[email protected]
Programación del DSP
(teoría)
• Paquetes de
instrucciones
• Mitades de la CPU
• Unidades
funcionales
• Condiciones
• Y pipeline...
[email protected]
Programación del DSP (práctica)
• VLIW + pipeline + data hazards = demasiado
• Las herramientas de TI ofrecen un compilador de C
optimizado.
[email protected]
DSP/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,...
[email protected]
Tareas
• 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)
[email protected]
Memoria y 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)
[email protected]
TMS320C6701 DSP
Block Diagram
Program Cache/Program Memory
32-bit address, 256-Bit data
512K Bits RAM
Power ’C67x Floating-Point CPU Core
Down
Program Fetch
Host Port
Interface
Control
Registers
Instruction Dispatch
4
Channel
DMA
Instruction Decode
Data Path 1
Data Path 2
A Register File
Control
Logic
B Register File
Test
Emulation
L1
S1
M1
D1
External
Memory
Interface
D2
M2
S2
L2
Interrupts
2 Timers
Data Memory
32-Bit address
8-, 16-, 32-Bit data
512K Bits RAM
2 Multichannel
buffered
serial ports
(T1/E1)
[email protected]
TMS320C67x CPU Core
’C67x Floating-Point CPU Core
Program Fetch
Control
Registers
Instruction Dispatch
Instruction Decode
Control
Logic
Data Path 1
Data Path 2
A Register File
B Register File
Test
Emulation
L1
Arithmetic
Logic
Unit
S1 M1 D1
Auxiliary
Logic
Unit
D2 M2 S2
Multiplier
Unit
L2
Interrupts
Floating-Point
Capabilities
[email protected]
Procesadores 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/
[email protected]