Índice Introducción a los Procesadores Digitales de Señal: DSP Tema 3 Sistemas de Tiempo Real Carlos J. Escudero Conceptos básicos Arquitecturas Periféricos Caso concreto TI TMS320C6000 nal S ig ita l Dig c e sso rs P ro Sistemas de T iempo Real Conceptos básicos (I) Procesado de señal: aplicación de operaciones matemáticas para representar y manipular señales Las señales se representan por muestras obtenidas de un ADC y son generadas de nuevo con DACs Uso DSPs puede ser: Conceptos básicos (IV) Sistemas de T iempo Real 5 Algoritmos voz: codificación/decodificación, reconocimiento, síntesis Algoritmos para módems: tx/rx, reducción ruido Audio: igualación (ecualización), mezcla Imagen: compresión/descompresión, visión, … Velocidad de muestreo Los tamaños de los componentes analógicos dependen de su valor DSP: comportamiento predecible y multifuncional nal S ig ita l Dig c e sso rs P ro Dependen del tipo de algoritmo a desarrollar: Velocidad, precisión aritmética, consumo, … Filtros con condensadores de 100µF ó 10pF Filtros con DSPs dependen de parámetros de los programas 4 Características de los DSP Se pueden reprogramar para modificar su comportamiento y/o añadir nuevas funciones Sistemas de T iempo Real nal S ig ita l Dig c e sso rs P ro Circuitos analógicos idénticos pueden obtener resultados diferentes La edad de los componentes influye en su comportamiento Componentes analógicos (resistencias, condensadores, diodos) son afectados por temperatura, humedad, … Su ubicación (zona geográfica) afecta al producto Los circuitos digitales, si funcionan lo hacen bien 3 Tamaño Síntesis y reconocimiento de voz, módems de alta velocidad En casos sencillos esto es al revés Independencia del entorno Reprogramabilidad Los componentes no tienen tolerancias Se consigue realizar tareas de forma más económica que analógicamente Amplificadores de audio, … Conceptos básicos (III) Módems, teléfonos móviles, … Sistemas de T iempo Real nal S ig ita l Dig c e sso rs P ro Ventajas DSPs Secundario para ofrecer servicios adicionales Fundamental y necesario Conceptos básicos (II) nal S ig ita l Dig c e sso rs P ro 2 Determinante en la tecnología a utilizar y en el algoritmo Frecuencia muestreo alta → algoritmos sencillos Ejemplo CDs: F s=44,1 kHz → T s=22,6 µseg. El Algoritmo debe actuar rápido, antes de llegar la siguiente muestra (tiempo real duro) Bases datos: se quieren resultados buenos en media (tiempo real blando) Operaciones aritméticas Se realizan millones en un algoritmo. Importante para decisión tipo DSP Punto fijo/flotante Sistemas de T iempo Real 6 1 Conceptos básicos (y V) Sistemas de T iempo Real ‘C1x ‘C2x Lowest Cost Control Systems Motor Control Storage Digital Ctrl Systems Sistemas de T iempo Real 8 nal S ig ita l Dig c e sso rs P ro Direccionamiento indirecto con post o pre incremento/decremento, direccionamientos circulares, direccionamiento con inversión de bits, … Sistemas de T iempo Real Arquitecturas (IV) 10 nal S ig ita l Dig c e sso rs P ro Estructuras de DSPs Lo habitual es tener una placa diseñada para un DSP Diferentes formas de integración: Multichips: varios DSPs dentro de un mismo chip Mejor nivel de densidad de encapsulado Incremento de velocidad Menor consumo y disipación de potencia Conjuntos de chips: partes de un DSP en diferents chips Lo contrario a un multichip Interesante cuando el DSP es muy complejo o con muchos pines DSP cores 11 Existen unidades dedicadas a la generación de direcciones que trabajan en paralelo con la ejecución de instrucciones aritméticas nal S ig ita l Dig c e sso rs P ro Periféricos en el mismo chip del DSP Posibilidad de hacer varios accesos a memoria en un único ciclo Las instrucciones y los operandos son recogidos y/o entregados a memoria simultánemente Es necesario un gran ancho de banda entre memoria y CPU 9 Interfaces serie y/o paralelo, o I/O especializados (ej. DMA) Estos interfaces se conectan con los periféricos: ADCs y DACs Multi Function App's Comm Infrastructure Wireless Base-stations DSL Imaging Multi-media Servers Video Direccionamientos especializados I/O de altas prestaciones y bajo coste Acceso de memoria múltiple Instrucciones especializadas para hacer bucles sin necesidad de emplear ningún ciclo de reloj para actualizar y comprobar contadores de bucle Cambios de contexto rápidos Arquitecturas (II) Periféricos e input/output interfaces Best MIPS per Watt / Dollar / Size Wireless phones Internet audio players Digital still cameras Modems Telephony VoIP Max Performance with Best MultiEase-of-Use Channel and Sistemas de T iempo Real nal S ig ita l Dig c e sso rs P ro Control especializado de ejecución Efficiency 7 Sistemas de T iempo Real (C20x/24x/28x) MAC (del inglés, Multiply ACcumulate) Un único ciclo de instrucción Cálculo más habitual en procesado de señal: multiplicación y suma: convoluciones (filtros), correlaciones, FFTs, … Multiplicadores y sumadores realizadas por hardware en la unidad aritmética lógica Para evitar desbordamientos: registros con bits adicionales Arquitecturas (III) ‘C5x C2000 Operaciones rápidas de multiplicación y acumulación C5000 Existen decenas de familias de DSPs La mayoría de DSP comparten características diseñadas para soportar tareas repetitivas de cálculo intensivo: ‘C3x ‘C4x ‘C8x (C54x/55x) En estos casos no hay muchas unidades, pero los productos son más complejos Arquitecturas (I) nal S ig ita l Dig c e sso rs P ro (C62x/64x/67x) No existe un DSP válido para todo tipo de aplicaciones Es necesario elegir el DSP en función de la importancia de diversas características: Potencia, coste, integración, facilidad de desarrollo, consumo, … Categorías: Bajo coste: importante cuando hay un gran volumen de unidades: móviles, discos duros, módems, … Bajo consumo: en ciertas situaciones es uno de los factores decisivos: equipos portátiles, móviles, … Potencia: necesaria cuando hay que desarrollar algoritmos complejos y/o velocidades de muestreo altas: sonar, estaciones base telefonía, … C6000 Clases de aplicaciones TI C6000 (I) nal S ig ita l Dig c e sso rs P ro Bloques de componentes con un DSP como parte principal dentro del chip Los componentes del chip son para aplicaciones específicas ASICs (Application Specific Integrated Circuits) Sistemas de T iempo Real 12 2 Arquitecturas (V) Punto Fijo / Flotante Característica fundamental a la hora de la elección y la clasificación Punto fijo Números representados por enteros Procesadores baratos y rápidos Programación más compleja: control del desbordamiento, … Existe un rango dinámico: [máximo, mínimo] Productos y sumas podrían provocar salidas del rango dinámico Lucent 9% Periféricos (II) Asíncronos Periféricos (III) nal S ig ita l Dig c e sso rs P ro Aunque existen pines diferentes para transmitir y recibir los datos, en ocasiones los relojes son compartidos para ambas tareas 17 Los dispositivos conectados tienen que acordar cual genera el reloj o si lo hará un tercero Muchos DSPs tienen circuitería específica para generar la señal de reloj del puerto Los generadores de reloj se basan en dividir el maestro por cierto valor Los puertos se suelen usar para conectar varios DSP entre si Para comunicarse, los DSP pueden usar multiplexación por división en tiempo por slots Durante 1 slot sólo un DSP puede transmitir, los otros estarán escuchando El sincronismo de trama indica el comienzo de un nuevo ciclo de slots. Cada procesador ha de llevar la cuenta para saber cuando transmitir El destinatario ha de ir codificado en las palabras transmitidas Para soporte TDM hace falta El pin de transmisión se ponga en alta impedancia cuando esté a la escucha. Así se evitan interferencias A veces existe un registro que transmite su contenido durante su slot sin necesidad de control de la CPU Soporte para compansión Sistemas de T iempo Real nal S ig ita l Dig c e sso rs P ro Multiplexación temporal (TDM) Se suele considerar una tercera señal (además de los datos y el reloj) Esta señal es el sincronismo de trama e indica la posición del primer bit de una palabra Dos formatos Longitud de bit: la señal dura lo que dura un bit en la línea. Se activa justo antes de que el primer bit se transmita (es decir, en el último de la palabra anterior) Longitud de palabra: la señal dura lo que se tarda en transferir una palabra completa A veces se permite seleccionar la polaridad del sincronismo de trama 16 Generación de reloj Los datos cambian en uno de los flancos de la señal de reloj Se puede seleccionar la polaridad de reloj para decidir si es el flanco de subida o de bajada el que indica el cambio de los datos En algunos circuitos se puede seleccionar la polaridad de datos para decidir si 1 = Voltaje positivo (~ 3.3 v ó ~ 5 v) / 0 = Bajo voltaje (~ 0 v) O viceversa Otra característica es decidir si se transmite primero el LSB (Least Significant Bit) o el MSB (Most Significant Bit) Se suelen soportar diferentes longitudes de palabra: 8, 16, 32, … bits Independencia entre transmisión y recepción La señal de reloj se obtiene de los datos recibidos Ej: RS-232, RS-422, … Sistemas de T iempo Real Sincronización de trama Los más utilizados Señal de reloj de bit transmitida con los bits de datos El receptor utiliza la señal de reloj para saber cuando muestrear los datos recibidos 15 Características Datos y reloj Síncronos Parámetros para elegir un DSP: Sistemas de T iempo Real Envío/recepción de muestras hacia/desde DACs/ADCs Envío/recepción de datos con otros microprocesadores y/o DSPs Comunicación con otros periféricos externos o hardware Categorías: Formato aritmético, prestaciones (MIPS, MFLOPS, MACs), número de registros, número multiplicaciones hardware, memoria externa, canales DMA, consumo, coste, tamaño, puertos, periféricos, … nal S ig ita l Dig c e sso rs P ro Más lentos que los paralelo (con 8, 16 ó 32 bits de transferencia simultánea) Requieren menos pines para conexión En los DSP suele haber 1 ó más puertos serie Múltiples aplicaciones: 28% BDTI: www.bdti.com Forward Concept: www.fwdconcepts.com 14 Muchos DSP integran interfaces y periféricos en el mismo chip Puertos Serie 47% Compañías proveedoras de artículos y benchmarks sobre DSPs (ej. TI C67xx) Periféricos (I) 13% Otros Precisión simple (SP) Precisión doble (DP) Sistemas de T iempo Real Analog Devices Operaciones punto flotante hechas por hardware Procesadores caros y lentos Programación más sencilla Mayor rango de valores Instrucciones hardware para usar punto flotante nal S ig ita l Dig c e sso rs P ro 3% Motorola Fabricantes más importantes Texas Instruments 13 Arquitecturas (y VII) Punto flotante Soluciones: representación fraccional y control del desbordamiento nal S ig ita l Dig c e sso rs P ro (ej. TI C62xx) Sistemas de T iempo Real Arquitecturas (VI) nal S ig ita l Dig c e sso rs P ro Los puertos serie se suelen usar para conexión con codecs de voz para telefonía Se suelen incluir compansores /descompresores basados en ley µ o ley A Sistemas de T iempo Real 18 3 Periféricos (IV) Son en realidad contadores programables Originan interrupciones Generan una señal de reloj cuadrada que puede tener salida por 1 pin Se suelen dirigir por el reloj maestro del DSP Como en el reloj de los puertos serie, suelen tener un preescalador del reloj maestro Al alcanzar el contador el cero, se genera la interrupción y se recarga al valor programado o se para, según se haya especificado En muchos DSP se puede leer el valor del temporizador y usar esto para ver la duración de los eventos El pin de salida del temporizador, a veces disponible, puede usarse como sintetizador de frecuencia Contador decreciente Preescalado Reloj maestro Valor (obtenido de un conjunto limitado) 1,4,8,12,16 Bit de I/O Uno de los pines es usado como un puerto de entrada/salida de 1 sólo bit La CPU lo controla por polling (sondeo) y no genera interrupciones A veces el/los pine/s de estos bits son los mismos que los de puertos serie (que dejarían de serlo) Puertos de host Para conexión con un microprocesador de propósito general o DSP Se puede usar para realizar tareas de control del DSP Generar interrupciones, ver/modificar registros, bootstrap, … Interrupciones externas Líneas de interrupciones externas para ser usadas por dispositivos externos Dos tipos: Activadas por flanco de subida o bajada Más fáciles de controlar Activadas por nivel alto o bajo Suelen requerir un tiempo mínimo de permanencia en éste Sistemas de T iempo Real 19 En aplicaciones de tiempo real es complicado comprobar su funcionamiento sin alterar su funcionamiento Lo más innovador es lo denominado “scan-based in-circuit emulation (ICE)”. Combina circuitería específica + pines de test/debug Estos sistemas se conectan el DSP a un host (ordenador) por medio de un interface especial El software que corre en el host permite al usuario cargar programas, examinar y modificar registros y memoria, poner y borrar “breakpoints”, … Esto permite controlar el funcionamiento en campo, viendo aspectos del procesador en ejecución Por ejemplo: si se cumplen las restricciones de tiempo Una de las técnicas más antiguas son los “boundary-scan” donde a través de los pines de depuración se permitía controlar otros pines del procesador El interface más reciente es el IEEE 1149.1 o más conocido como JTAG (Joint Test Action Group) Se basa en un interface serie de 4 hilos Se usa como un mecanismo para comunicarse con la circuitería de depuración onchip 20 TI C6000 (II) nal S ig ita l Dig c e sso rs P ro Facilidades de depuración Valor programado Periféricos (VI) Se transmiten y reciben varios bits simultáneamente Se usan líneas para indicar la presencia de nuevos datos En algunos DSP el puerto paralelo se conecta al bus de datos principal Lo más habitual es considerar el puerto paralelo externo al procesador nal S ig ita l Dig c e sso rs P ro Puertos paralelo Interrupción al alcanzar el contador el cero Sistemas de T iempo Real Periféricos (V) nal S ig ita l Dig c e sso rs P ro Temporizadores programables nal S ig ita l Dig c e sso rs P ro Software Compatible Floating Point Multi-core Performance C64x™ DSP 1.1 GHz 2nd Generation C64x™ DSP General Purpose 1st Generation C6201 C6202 C6701 C6203 C6204 C6211 C6711 C6414 t ce es an gh m Hi rfor e P C6415 Media Gateway C6416 3G Wireless Infrastructure C62x™ C6205 C6712 C67x™ Time Sistemas de T iempo Real TI C6000 (III) First First (1991) $10 floating-point DSP C32 First (1987) floating-point DSP with multiprocessing support C40 First (1995) 1-GFLOPS DSP C6701 First (1999) 2-level cache floating-point DSP C6711 First (1998) $5 floating-point DSP C33 First nal S ig ita l Dig c e sso rs P ro commercially-successful floating-point DSP C30 (2000) Sistemas de T iempo Real 23 22 TI C6000 nal S ig ita l Dig c e sso rs ro Device MIPS 6201 1600 6202 2000 6203 2400 6204 1600 6205 1600 6211 1200 MHz 200 250 300 200 200 150 K Bytes Pins 128 352 384 384/352 896 384 128 384 128 306 72 256 W 1.3 2.1 1.3 0.8 0.8 0.9 $ 80 - 100 110 - 170 150 - 190 30 - 60 40 - 70 25 - 40 P Periphs D2H D3X D3X D2X D2P E2H Device 6701 6711 6712 MHz 167 150 100 K Bytes 128 72 72 W 1.4 1.1 0.7 $ 110 - 170 25 - 50 10 - 22 Periphs D2H E2H E2 MFLOPS 1000 900 600 Pins 352 256 256 Peripherals Legend: D,E DMA (4), EDMA (16) 2,3 # of McBSP Serial Ports H,X,P HPI (Host Port), XBUS, PCI (1999) to offer 600 MFLOPS for under $10 C6712 Sistemas de T iempo Real 21 Sistemas de T iempo Real Pin-for-Pin Compatibility: 6201 & 6701 6211 & 6711 & 6712 6202 & 6203 & 6204 24 4