Download Procesadores Digitales de Señal (DSP)
Document related concepts
no text concepts found
Transcript
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, B0B15)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 (232) 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 TMS320C6201 (a 200 MHz) TMS320C6701 (a 167 MHz) Formato aritmético 32 bits 32 bits Formato extendido de punto flotante No disponible 64 bits Formato aritmético extendido 40 bits 40 bits Desempeño (pico y típico) (1600-*?) MIPS (1336-*?)MFLOPS A.B. De memoria externa 880 Mbits/s 880 Mbits/s Puertos seriales 2x50 Mbits/s 2x83.4 Mbits/s Numero de multiplicadores por hardware 2x(16x16 bits) con resultado en 32 bits 2x(32x32 bits) con resultado en 64 bits Numero de registros 32 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 TMS320C6201 (a 200 MHz) TMS320C6701 (a 167 MHz) Tamaño de memoria de programa interna 16K x 32 bits 16K x 32 bits Tamaño de memoria de datos interna 16K x 32 bits 16K x 32 bits Cache Toda la memoria de porgrama si se seleciona Toda la memoria de porgrama si se selecciona Canales DMA 4 + 1 auxiliar 4 + 1 auxiliar Consumo de potencia < 2 vatios < 2 vatios Manejo de consumo Si Si Temporizadores en el chip 2 x 32 bits 2 x 32 bits Costo en $ (muestra) $160 $257 Tamaño Revisar hoja de datos 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