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 Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es Procesamiento Digital de Señal • ¿Por qué usar procesamiento digital de señales? Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es ¿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 Francisco.Gomez@ii.uam.es ¿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 Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es ¿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 Francisco.Gomez@ii.uam.es Procesadores DSP • DSP típico Francisco.Gomez@ii.uam.es Procesadores DSP • Evolución de los procesadores DSP Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es 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. Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es Procesadores DSP • Formato de datos – Punto fijo Francisco.Gomez@ii.uam.es 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. Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es 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 • 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 Francisco.Gomez@ii.uam.es 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. Francisco.Gomez@ii.uam.es 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: 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 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 Francisco.Gomez@ii.uam.es 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) Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es C6201: Diagrama de Bloques Francisco.Gomez@ii.uam.es Estructura de la CPU Francisco.Gomez@ii.uam.es Unidades funcionales Francisco.Gomez@ii.uam.es 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) • 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: 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 Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es Programación del DSP (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) • VLIW + pipeline + data hazards = demasiado • Las herramientas de TI ofrecen un compilador de C optimizado. Francisco.Gomez@ii.uam.es 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,... Francisco.Gomez@ii.uam.es 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) Francisco.Gomez@ii.uam.es 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) Francisco.Gomez@ii.uam.es 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) Francisco.Gomez@ii.uam.es 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 Francisco.Gomez@ii.uam.es 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/ Francisco.Gomez@ii.uam.es