eman ta zabal zazu Universidad del País Vasco Departamento de Arquitectura y Tecnología de Computadores upv ehu Procesado digital de imagen y sonido Tema 8_ Hardware para procesado de señal Características de las aplicaciones DSP Ejemplo con filtro FIR Estrategias para mejorar la eficiencia Comparación con µps de propósito general 8.1
Características de los sistemas de procesado digital y campo de aplicación Operaciones más utilizadas: Filtros FIR e IIR Transformadas FFT, IFFT, DCT,... Correlación y( k) = x( n) F( k, n) Por ello en estos sistemas predominan los cálculos aritméticos: sumas y multiplicaciones que se realizan de forma repetitiva sobre un gran volumen de datos (secuencias de muestras) Normalmente los datos están obtenidos mediante sensores y conversión A/D y tras procesarse se reconvierten en señales físicas mediante conversión D/A. Aunque también se utilizan en computadores de propósito general, el campo de aplicación mas importante de estas técnicas y donde el crecimiento ha sido tremendo en los últimos años es en sistemas diseñados para aplicaciones específicas, normalmente en tiempo real. 8.2
Ejemplos de aplicación del procesado digital de señal Telefonía móvil digital Inspección automática Voz a través de internet Control de motores Audio de consumo Correo de voz Equipos de navegación Producción de audio videoconferencia Buscapersonas Síntesis de música Detección de obstáculos y sistemas anticolisión Comunicaciones por satelite Análisis sísmico Comunicaciones seguras Contestadores sin cinta Sonar Teléfonos inalámbricos Cámaras digitales Modems (POTS, ISDN, cable,...) Cancelación de ruido Ultrasonidos para medicina Monitorización de pacientes Radar 8.3
Características de estas aplicaciones Flujos de datos infinitos que necesitan ser procesados en tiempo real Normalmente un solo programa, por tanto SO más simple. En ocasiones requerimientos de tiempo real exigentes. Requisitos de almacenamiento de datos y programas relativamente pequeños Cálculos aritméticos intensivos con poco necesidad de control y bifurcaciones Gran cantidad de I/O con interface analógico Requisitos importantes de: Alto rendimiento Bajo coste Bajo consumo Tiempos de desarrollo cortos 8.4
Importancia creciente de estas aplicaciones El procesado digital de señal es una tecnología clave para muchos tipos de productos electrónicos. Los cálculos intensivos característicos del procesado digital de señal son el cuello de botella de muchas aplicaciones actuales. Está creciendo rápidamente la demanda de de este tipo de aplicaciones con gran costo computacional. En muchos sistemas empotrados (embedded), los microprocesadores de propósito general no pueden competir con los procesadores especializados (DSPs) El mercado de los DSPs: 98: $3.5 Billion, 99: $4.4 Billion, 00: $6.1 Billion Crecimiento anual del 40% en 1990-2000 45% TexasInstruments, 25% Lucent, 10% Motorola, 8% Analog Devices 8.5
Alternativas de implementación Computadoras de proposito general (PCs) Sistemas empotrados (embedded) con microprocesadores convencionales (µps) con procesadores especializados en procesado de señal (DSPs) con dispositivos programables (FPGAs) o ASICs 8.6
Por qué procesadores especializado en procesado de señal? La mayoría de los sistemas basados en procesadores clásicos de propósito general se utilizan para aplicaciones en las que la actividad principal consiste en reorganizar datos almacenados. Debido a esto los procesadores clásicos no están optimizados para el procesado de señal. Se llama DSP (Digital Signal Processor) a un procesador diseñadlo específicamente para DSP (Digital Signal Processing). Los DSPs se han popularizado tanto en los últimos años que hoy en día las siglas DSP se asocian al procesador más que a la teoría de procesado. 8.7
Características comunes a la mayoría de los DSPs Ruta de datos diseñada para DSP Conjunto de instrucciones especializado Bancos de memoria y buses múltiples Modos de direccionamiento especializados Control de ejecución especializado Periféricos especializados para DSP 8.8
Ejemplo de operaciones típicas. Filtro FIR x(n) z -1 z -1 z -1 z -1 h(0) h(1) + h(2) + h(3) + h(m-2) + h(m-1) + y(n) etapa Cada etapa supone: Buscar dos datos (muestra y coeficiente) Multiplicarlos Acumular el resultado Actualizar un dato en memoria El objetivo es procesar una etapa en un ciclo de reloj 8.9
Ejemplo de filtro FIR con arquitectura Von Neumann loop: mov *r0, x0 mov *r1, y0 mpy x0, y0, a add a, b mov y0,* r2 inc r0 inc r1 inc r2 dec ctr tst ctr Memoria Datos e instrucciones Bus de direcc. Bus de datos. Procesador jnz loop Problemas: cuello de botella en en el bus de datos sobrecarga de código de control 8.10
Arquitecturas para DSP Arquitectura Harvard (memoria dual) Memoria de programa Sólo instrucciones Bus de direcc. Bus de datos. Procesador Bus de direcc. Bus de datos. Memoria de datos Sólo datos Arquitectura Super Harvard (memoria dual, cache de instrucciones controlador I/O) Memoria de programa Instrucciones y datos secundarios Bus de direcc. Bus de datos. Procesador Cache de instrucciones Bus de direcc. Bus de datos. Memoria de datos Sólo datos Controlador I/O Datos. 8.11
Ejemplo con DSP de Primera generación (1982): TI TMS32010 Punto fijo 16-bits Arquitectura Harvard Memorias separadas para instrucciones y datos Acumulador Conjunto de instrucciones especializado MAC (multiplicación+acumulador) en 390 ns Datapath: Mem T-Register Multiplier P-Register ALU Accumulator LT X4 ; Load T with x( n- 4) MPY H4 ; P = H4* X4 LTD X3 ; Load T with x( n- 3); x( n- 4) = x( n- 3); ; Acc = Acc + P MPY H3 LTD X2 MPY H2 ; P = H3* X3 X4, H4, etc. Direcciones de memoria absolutas Dos instrucciones por etapa 8.12
Estrategias para DSP: Conjunto de instrucciones DSP Instrucciones complejas especializadas Múltiples operaciones por instrucción µp Instrucciones de proposito general Sólo una operación por instrucción mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0 mov *r0, x0 mov *r1, y0 mpy x0, y0, a add a, b mov y0,* r2 inc r0 inc r1 8.13
Estrategias para DSP: Arquitectura de memoria Memoria Datos e instrucciones Bus de direcc. Bus de datos. Procesador DSP Arquitectura Harvard 2-4 accesos a memoria por ciclo Sin cache, on-chip SRAM µp Arquitectura Von Neumann 1 acceso a memoria por ciclo Puede usar cache Memoria de programa Bus de direcc. Bus de datos. Procesador Bus de direcc. Bus de datos. Memoria de datos Sólo instrucciones Sólo datos 8.14
Estrategias para DSP: Direccionamiento DSP Unidades especiales para generación de direcciones Modos de direccionamiento especializados Autoincremental Circular (para buffers circulares) Con inversión de bits (para FFT) Buen soporte para datos inmediatos µp Sin unidades de generación de direcciones independientes Modos de direccionamiento de proposito general 8.15
Buffers circulares Time Contenido del buffer Siguiente muestra n=n x N-2 x N-1 x N x N-K+1 x N-K+2... x N+1 n=n+1 x N-2 x N-1 x N x N+1 x N-K+2 x N-K+3... x N+2 n=n+2 x N-2 x N-1 x N x N+1 x N+2 x N-K+3 x N-K+4... x N+3 Los DSPs tienen que manejar I/O continua Normalmente hace falta mantener un buffer I/O buffer (retardos) Estos buffers se organizan de manera circular Qué hacer para evitar la sobrecarga por al manejo de direcciones de este tipo de buffers? Utilizar hardware especializado con registros par almacenar comienzo y fin, con autoincremento y reinicio al llegar al final 8.16
Direccionamiento con inversión de bits Los algoritmos FFT base-2 utilizan utilizan los datos en un orden especial: 0 (000) => 0 (000) 1 (001) => 4 (100) 2 (010) => 2 (010) 3 (011) => 6 (110) 4 (100) => 1 (001) 5 (101) => 5 (101) 6 (110) => 3 (011) 7 (111) => 7 (111) Para evitar la sobrecarga debida al cálculo de direcciones se implementa un modo de direccionamiento especializado que autoincrementa las direcciones conel orden de los bits invertido 8.17
Estrategias para DSP: Control de ejecución Interrupciones rápidas para manejo de I/O Soporte para depurado en tiempo real Periféricos especializados para DSP Puertos serie síncronos Puertos paralelos Temporizadores Convertidores A/D y D/A on-chip Controlador DMA on-chip Generadores de reloj Puertos I/O bit 8.18
DSP y precisión de datos: Los DSPs pueden clasificarse en dos tipos: Punto fijo: 16, 20, o 24 bits 2-4 veces más baratos Aunque en procesadores clásicos es más rapido manejar punto fijo, en DSP las velocidades son similares. Hay que tener en cuenta overflows, y redondeos. Mínimo 32 bits Punto flotante Incluyen también aritmética de punto fijo Desarrollo más simple Mejor precisión y rango dinámico 8.19
Algunos datos sobre DSPs convencionales Fixed-Point Floating-Point Cost/Unit $3 - $79 $3 - $381 Architecture Accumulator load-store or memory-register Registers 2-4 data 8 address 8 or 16 data 8 or 16 address Data Words 16 or 24 bit integer and fixed-point 32 bit integer and fixed/floating-point On-Chip Memory 2-64 kwords data 2-64 kwords program 8-64 kwords data 8-64 kwords program Address Space 16-128 kw data 16-64 kw program 16 Mw 4Gw data 16 Mw 4 Gw program Compilers C compilers; poor code generation C, C++ compilers; better code generation Examples TI TMS320C5x; Motorola 56000 TI TMS320C3x; Analog Devices SHARC 8.20
Algunos datos sobre DSPs convencionales Market share: 95% fixed-point, 5% floating-point Different on-chip configurations within each family Size and map of data and program memory A/D, input/output buffers, interfaces, timers, and D/A Low power: 10-100 mw (C54 0.32 ma/mip; C55 0.05 ma/mip) Drawbacks to conventional DSP processors No byte addressing (needed for image and video) Limited on-chip memory Limited addressable memory on fixed-point DSPs, except Motorola 56300 (16 Mw data; 64 Mw program) Texas Instruments C54xx (8 Mw data) Non-standard C extensions to support fixed-point data 8.21
Algunos enlaces interesantes: Texas Instruments: www.ti.com www.dspvillage.com Colección sobre procesadores DSP y herramientas www.bdti.com FAQ de Newsgroup comp.dsp: www.bdti.com/faq/dsp_faq.html Embedded processors and systems: www.eg3.com Cursos on-line: www.techonline.com 8.22