UNIDAD II Procesadores Digitales de Señal (DSP) 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 150
II. Procesadores digitales de señal (DSP) Arquitectura de un DSP específico. Unidad Central de procesamiento. Memoria de programa y de datos. Buses y periféricos. Subsistemas de acceso directo a memoria. Herramientas de desarrollo. Parámetros para la elección de un dispositivo DSP. Desempeño y limitaciones. Ejemplos de implementación. Sistemas operativos en tiempo real para DSPs 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 151
Arquitectura de la Famila de DSPs TMS320C6000 Características generales: Nueva generación de la arquitectura VLIW (Very long Instruction Word) de TI: TI VelociTI TMS320C62xx : Procesadores de punto fijo (fixed point processors). Hasta 300 MHz de frecuencia de reloj. TMS320C67xx: Procesadores de punto flotante (floating-point processors). 167 MHz de frecuencia de reloj. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 152
Arquitectura de la Famila de DSPs TMS320C6000 Características generales: 167 MHz de frecuencia de reloj. Características comunes al C62 y C67: La misma arquitectura. Son compatibles pin-a-pin!!! Conjunto de instrucciones compatible entre C62 y C67 Mínimo esfuerzo de conversión 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 153
Diagrama de bloques de la familia TMS 320C6000 MEMORIA Direcciones Datos E M I F BUSES INTERNOS CPU P E R I F E R I C O S EMIF=External Memory Interface 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 154
Diagrama de bloques de la familia TMS 320C6000 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 155
La Unidad Central de Procesamiento (CPU) Unidad de control de programa Búsqueda de instrucciones Despacho de instrucciones Decodificación de instrucciones Camino de datos 1 Camino de datos 2 Registros de control Prueba, emulación, control y lógica para interrupcciones 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 156
La unidad de control de programa Consta de 3 elementos: Unidad de búsqueda Unidad de despacho de instrucciones Unidad de decodificación de instrucciones Operación encauzada (pipelined) Cada unidad es capaz de procesar hasta ocho instrucciones por ciclo Fetch packet (FP)=grupo de ocho instrucciones. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 157
La unidad de control de programa Unidad de búsqueda de programa Para obtener un FP se requieren cuatro fases: PG: Generación de dirección del FP PS: Envío de la dirección a memoria de programa PW: Espera por los datos PR: La CPU lee el código de operación (opcode). Unidad de despacho de instrucciones: Se encarga de despachar las instrucciones a las unidades de ejcución adecuadas (fase DP). Unidad de decodificación de instrucciones: La constituyen las ocho unidades de ejecución (fases DC y de ejecución: E1,E2,E3,E4,E5) 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 158
Operación encauzada Un paquete de instrucciones ejecutado por cada paquete de instrucciones (FP) buscado 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 159
Camino de datos del CPU Doble camino de datos: data path A y data path B Cada uno con: Cuatro unidades de ejecución:.l,.m,.s y.d Conjunto de 16 registros de 32 bits (A0-A15) (B0-B15) Un camino de datos para carga desde memoria de 32 bits: (LD1, LD2) (dos para el C67: LDx 32 MSB y LDx 32 LSB) Camino de datos para almacenamiento en memoria (ST1, ST2) Camino de dirección de datos (DA1, DA2) 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 160
Camino de datos del CPU Adicionalmente se tiene comunicación de datos y direcciones entre ambos bloques mediante: Dos caminos cruzados de datos (data cross paths 2X y 1X) Dos caminos cruzados de direcciones (address cross paths) 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 161
Camino de datos del C62xx 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 162
Unidades de ejecución de programa Cuatro unidades de 32 bits por cada camino de datos:.l.s.m.d Las unidades.l y.s pueden operar también con operandos de 40 bits. Cada unidad ejecuta un conjunto específico de operaciones. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 163
Unidades de ejecución de programa Unidades.L (.L1 y.l2) Operaciones aritméticas y de comparación de 32/40 bits Operaciones lógicas de 32 bits. Normalización de enteros y conteo de bits Aritmética saturada para operaciones de 32/40 bits. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 164
Unidades de ejecución de programa Unidades.M (.M1 y.m2) Multiplicadores en hardware: 16x16 bits que producen resultados de 32 bits ( C62x). 32x32 bits que producen resultados de 64 bits ( C67x). Como los operandos son de 32 bits hay varias opciones! Multiplicación en punto flotante ( C67x). Multiplicación con desplazamiento a la izquierda y saturación. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 165
Unidades de ejecución de programa Unidades.S (.S1 y.s2) Esta unidades contienen ALUs de 32 bits y desplazadores de 40 bits para: Aritmética de 32 bits, operaciones lógicas y por campos de bits. Desplazamientos de 32/40 bits Saltos (.S2 solamente si se usa un registro como desplazamiento) Transferencia desde/hacia registros de control (sólo.s2) Generación de constantes. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 166
Unidades de ejecución de programa Unidades de datos.d (.D1 y.d2) Utilizadas para: Carga y almacenamiento con desplazamiento constante de 5 bits Carga y almacenamiento con desplazamiento constante de 15 bits (sólo en.d2) Sumas y restas de 32 bits Cálculos para direccionamiento lineal y circular. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 167
Registros de control comunes al C62 y C67 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 168
Conjuntos ó archivos de registros (register files) Cada camino de datos posee 16 registros de propósito general de 32 bits (A0-A15, B0- B15)que pueden ser usados para: almacenar datos almacenar punteros de direcciones a datos Como registros condicionales para cualquier instrucción (solamente A1, A2, B0, B1, B2) 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 169
Conjuntos ó archivos de registros (register files) Para crear operandos de 40 o de 64 bits, los registros tienen que ser concatenados como pares de registros y debe cumplirse que: Sean del mismo camino de datos Ordenados como impar (MSB) primero y par (LSB) de segundo Posibles combinaciones (similar para el conjunto B): A1:A0, A3:A2, A5:A7, A9:A8, A11:A10, A13:A12, A15:A14 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 170
Organización de la memoria Rango de direcciones de 4 Gbytes (2 32 ) dividido en cuatro espacios: Memoria interna de programa Memoria interna de datos Periféricos internos Memoria externa: Espacios de memoria CE0, CE1, CE2 y CE3. La localización exacta de cada espacio depende del mapa usado: C620x/ C670x: dos mapas (mapa 0 ó mapa 1) C621x C671x: un solo mapa El mapa selecciona si la dirección de /RESET (00000000h) es memoria interna o externa 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 171
Resumen mapa de memoria para TMSC6201/C204/C6205/C6701 (1) 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 172
Resumen mapa de memoria para TMSC6201/C204/C6205/C6701 (2) 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 173
Resumen mapa de memoria para C621x C671x 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 174
Acceso a memoria El acceso a memoria de programa o de datos se realiza mediante dos controladores de memoria: Controlador de memoria de programa. Controlador de memoria de datos. Controlador de memoria de programa: Ejecuta las solicitudes de acceso a memoria del CPU y del controlador DMA a memoria de programa y realiza el arbitraje en caso de conflictos Ejecuta las solicitudes de acceso a memoria externa del CPU a través de la EMIF Maneja la memoria interna de programa cuando se configura como cache 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 175
Controladores de memoria en el diagrama de bloques del CPU C620x/C670x 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 176
Acceso a memoria Controlador de memoria de datos (Data Memory Controller DMEMC): Como se muestra en la figura anterior, este controlador conecta: El CPU y el controlador de acceso directo a memoria (DMA) con la memoria de datos interna y realiza el arbitraje necesario. El CPU con la interfaz de memoria externa (EMIF) El CPU con los periféricos internos a través de controlador del bus de periféricos. La memoria interna se organiza en dos bloques de cuatro bancos para permitir el acceso simultáneo a memoria por parte de los dos caminos de datos del CPU sin conflicto, cuando éstos usan bloques diferentes (ver ejemplo en la siguiente láamina para el C6201/04/05) 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 177
Conexión CPU-DMEMC para el C6201/C6204/C6205 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 178
Controlador de Acceso Directo a Memoria (DMA) Este controlador integrado en el chip permite la transferencia de datos entre la memoria interna y: Memoria externa Puerto de anfitrión (Host Port) Periféricos externos Esta transferencia se realiza con carga 0 (zero overhead) para el CPU y con total transparencia. Por supuesto, si el CPU y el DMA tratan de acceder la misma localidad se requiere de un arbitraje por parte del controlador de memoria!! Existen 4 canales DMA y un canal auxiliar dedicado a la interfaz del puerto de anfitrión (Host Port Interface HPI). 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 179
Puertos Seriales El C62xx/ C67xx tiene dos puertos seriales multicanal con búfers (Multichannel Buffered Serial Ports McBSP) Interfaz económica, estándar y configurable por el usuario para comunicaciones seriales con periféricos externos. Operación full-duplex con doble búfer Relojes independientes para Tx y Rx (pueden ser internos o externos) 40 Mbits/s por canal (ver datos actualizados en www.ti.com) Operación multicanal hasta 128 canales. Los puertos McBSP tienen interfaz directa para: Generadores de tramas T1/E1, dispositivos SPI, IIS, AC97 y otros estándares. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 180
Interfaz del puerto de anfitrión (Host Port Interface HPI) Interfaz de bajo costo para buses estándar de microprocesadores Es un puerto paralelo a través del cual un microprocesador puede acceder directamente la memoria del CPU. Soporte para datos de 16 bits (ver datos actualizados en www.ti.com) con posibilidades de transferencias de 32 bits mediante dos transferencias de 16 bits. Es posible acceder a todo el espacio de memoria para intercambiar datos entre el CPU y el HPI, pero solamente mediante el puerto auxiliar DMA. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 181
Temporizadores El C62xx/ C67xx tiene dos temporizadores de 32 bits que pueden usarse para Temporizar eventos Contar eventos Generar pulsos Interrumpir a la CPU Enviar eventos de sincronización al controlador de DMA. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 182
Temporizadores Cada temporizador tiene Un registro de control de operación (CTL). Una entrada TINP y una salida TOUT. Un registro de periodo de temporizador (PRD) para almacenar el valor de conteo Un contador ascendente (Timer Counter - CNT) para generar una interrupción cuando se alcanza la cuenta FFFFFFFFh. El contador ascendente se incrementa cada cuarto de ciclo y se recarga con el valor del registro de periodo cada vez que se llega a cero (desborde) 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 183
Diagrama de bloques de los temporizadores 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 184
Interrupciones No enmascarables: /RESET NMI (NonMaskable Interrupt) Esta puede enmascararse, pero solo cuando ocurre un /RESET o un NMI (el usuario no lo puede hacer). Es habilitada mediante el bit NMIE del IER. Enmascarables: INT4, INT5,..., INT15 Estas interrupciones pueden ser generadas por dispositivos externos, los periféricos internos o trampas de software (software traps). 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 185
Interrupciones Enmascarables La asignación de las señales de interrupción (INT4 INT15) a pines externos o a los periféricos internos depende del dispositivo (hay que referirse a la hoja de datos) Para que se atienda una interrupción enmascarable se debe cumplir: Que ocurra la interrupción correspondiente EL bit NMIE debe estar en 1. el bit de habilitación global de interrupciones (GIE) en el registro de control de estado (CSR) debe estar en 1. El bit de habilitación correpondiente a la interupción el el registro de habilitación de interrupciones (IER) debe estar en 1. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 186
Parámetros para la elección de un procesador DSP Específicos del dispositivo: Formato aritmético, soporte para punto flotante, desmpeño (MIPS, MFLOPS), Ancho de banda de memoria externa, Ancho de banda de E/S, Número de registros, Tamaño de memoria de programa y de datos en el chip, periféricos, consumo de potencia, costo, etc. Específicos del sistema: Dependen de las compañias fabricantes de plataformas DSP: Número de módulos de E/S, Interfaz (PCI, ISA, VME,..), Costo, Herramientas de desarrollo, Soporte técnico, pruebas de falla, posibilidad de actualización, consumo de potencia, reportes de aplicación. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 187
Parámetros específicos del dispositivo Parámetro Formato aritmético Formato extendido de punto flotante Formato aritmético extendido Desempeño (pico y típico) A.B. De memoria externa Puertos seriales Numero de multiplicadores por hardware Numero de registros TMS320C6201 (a 200 MHz) 32 bits No disponible 40 bits (1600-*?) MIPS 880 Mbits/s 2x50 Mbits/s 2x(16x16 bits) con resultado en 32 bits 32 TMS320C6701 (a 167 MHz) 32 bits 64 bits 40 bits (1336-*?)MFLOPS 880 Mbits/s 2x83.4 Mbits/s 2x(32x32 bits) con resultado en 64 bits 32 * El valor típico depende de la aplicación 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 188
Parámetros específicos del dispositivo Parámetro Tamaño de memoria de programa interna Tamaño de memoria de datos interna Cache Canales DMA Consumo de potencia Manejo de consumo Temporizadores en el chip Costo en $ (muestra) Tamaño TMS320C6201 (a 200 MHz) 16K x 32 bits 16K x 32 bits Toda la memoria de porgrama si se seleciona 4 + 1 auxiliar < 2 vatios Si 2 x 32 bits $160 Revisar hoja de datos TMS320C6701 (a 167 MHz) 16K x 32 bits 16K x 32 bits Toda la memoria de porgrama si se selecciona 4 + 1 auxiliar < 2 vatios Si 2 x 32 bits $257 Revisar hoja de datos 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 189
Sistemas de Tiempo Real Un sistema de tiempo real responde de una manera predecible (y oportuna!) cuando sucede un extímulo externo impredecible. En resumen, un sistema de tiempo real tiene que cumplir (bajo condiciones de carga extrema): 1. Oportunamente: cumplir con los límites de tiempo, se requiere que la aplicación finalice determinadas tareas dentro de los límites de tiempo establecidos. 2. Simultánenamente: más de un evento puede suceder al mismo tiempo y aún así todos los límites de tiempo se deben cumplir. 3. Predeciblemente: el sistema debe reaccionar de manera predecible a todos los posibles eventos. 4. Confiablemente: es necesario que el sistema de tiempo real pueda confiar y contar consigo mismo. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 190
Otras definiciones, clasificacion y ejemplos: Sistemas dedicados Sistemas de tiempo real Sistemas operativos de tiempo real no estricto (soft real-time operating system) Sistemas operativos de tiempor real estricto (hard-real time operating system) Sistemas empotrados (embedded system) Sistemas tolerantes a fallas. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 191
Sistemas dedicados Un sistema en donde la funcionalidad está totalmente ligada al hardware y al software. La mayoría de los sistemas dedicados tienen restricciones de tiempo real relajadas, otros necesitan ser estrictamente en tiempo real y algunos tienen capacidad para tolerancia a fallas. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 192
Sistemas operativos de tiempo real Un sistema operativo es de tiempo real cuando puede soportar la ejecución de aplicaciones con restricciones de tiempo en su ejecución. Puede hacerse una clasificación entre sistemas de tiempo real estrictos (hard) y no (soft) basándose en sus propiedades. Cada uno se explicará con un ejemplo específico. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 193
Sistemas operativos de tiempo real Un ejemplo de un sistema operativo de tiempo real estricto es el que controla el piloto automático de un avión: No se aceptan retrasos bajo ninguna circunstancia, pues de otro modo el avión no será controlado. Si hay retrasos, el sistema es inútil. El costo de no cumplir un límite de tiempo es infinitamente alto. Un sistema operativo de tiempo real no estricto puede ser una máquina vendedora: El retraso de los resultados implica un aumento en los costos, pero no es catastrófico. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 194
Sistemas empotrados (embedded) Sistemas tolerantes a fallas Sistemas empotrados (embedded systems): Un sistema de computación que está incluido dentro de otro sistema y forma parte escencial de éste último. O también: hardware y software que constituye un componente de un sistema mas grande y que se espera que funcione sin la intervención humana. Sistema tolerante a fallas: Es un sistema que sigue trabajando en cualquier circunstancia (excepto en el caso de destrucción física). O también: La capacidad que tiene un sistema para continuar con su operación normal a pesar de la presencia de fallas de hardware o software. 22/05/02 EL-523063 Sistemas de Procesamiento Digital de Señales Luis Tarazona 195