Proceso de señal

44
[email protected] Análisis de Señal Análisis de Señal Tema I : Procesadores digitales de Señal (VWUXFWXUDWtSLFDGHXQVLVWHPD’63 &DUDFWHUtVWLFDV\YHQWDMDV GHORV’63V $UTXLWHFWXUDVWLSRVGH’63V $SOLFDFLRQHVGHORV’63V

Transcript of Proceso de señal

Page 1: Proceso de señal

[email protected]

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

Page 2: Proceso de señal

[email protected]

•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

Page 3: Proceso de señal

[email protected]

• ¿Por qué usar procesamiento digital de señales?

ProcesamientoProcesamiento Digital de Digital de Señal Señal

Page 4: Proceso de señal

[email protected]

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

Page 5: Proceso de señal

[email protected]

¿¿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

Page 6: Proceso de señal

[email protected]

• 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 ? ?

Page 7: Proceso de señal

[email protected]

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

Page 8: Proceso de señal

[email protected]

¿¿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

Page 9: Proceso de señal

[email protected]

ProcesadoresProcesadores DSPDSP

• DSP típico

Page 10: Proceso de señal

[email protected]

ProcesadoresProcesadores DSPDSP

• Evolución de los procesadores DSP

Page 11: Proceso de señal

[email protected]

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

Page 12: Proceso de señal

[email protected]

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.

Page 13: Proceso de señal

[email protected]

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

Page 14: Proceso de señal

[email protected]

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

Page 15: Proceso de señal

[email protected]

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

Page 16: Proceso de señal

[email protected]

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

Page 17: Proceso de señal

[email protected]

Procesadores Procesadores DSPDSP

• Formato de datos– Punto fijo

Page 18: Proceso de señal

[email protected]

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.

Page 19: Proceso de señal

[email protected]

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

Page 20: Proceso de señal

[email protected]

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

Page 21: Proceso de señal

[email protected]

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

Page 22: Proceso de señal

[email protected]

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

Page 23: Proceso de señal

[email protected]

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

Page 24: Proceso de señal

[email protected]

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

Page 25: Proceso de señal

[email protected]

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)

Page 26: Proceso de señal

[email protected]

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

Page 27: Proceso de señal

[email protected]

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

Page 28: Proceso de señal

[email protected]

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

Page 29: Proceso de señal

[email protected]

C6201: Diagrama de BloquesC6201: Diagrama de Bloques

Page 30: Proceso de señal

[email protected]

Estructura de la CPUEstructura de la CPU

Page 31: Proceso de señal

[email protected]

Unidades funcionalesUnidades funcionales

Page 32: Proceso de señal

[email protected]

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

Page 33: Proceso de señal

[email protected]

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

Page 34: Proceso de señal

[email protected]

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

Page 35: Proceso de señal

[email protected]

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

Page 36: Proceso de señal

[email protected]

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

Page 37: Proceso de señal

[email protected]

Programación del DSPProgramación del DSP(teoría)(teoría)

• Paquetes de instrucciones

• Mitades de la CPU• Unidades

funcionales• Condiciones• Y pipeline...

Page 38: Proceso de señal

[email protected]

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.

Page 39: Proceso de señal

[email protected]

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,...

Page 40: Proceso de señal

[email protected]

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)

Page 41: Proceso de señal

[email protected]

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)

Page 42: Proceso de señal

[email protected]

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

Page 43: Proceso de señal

[email protected]

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

Page 44: Proceso de señal

[email protected]

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/