Download 1 tema 2 procesadores digitales de señal
Document related concepts
no text concepts found
Transcript
TEMA 2 PROCESADORES DIGITALES DE SEÑAL CURSO 2010/2011 OBJETIVOS y BIBLIOGRAFIA ¾ En este tema nos vamos a centrar en los Procesadores Digitales de Señal, más conocidos como DSP. En la primera parte vamos a describir detalladamente las principales características de este tipo de procesadores DSP y cuáles son los factores más importantes que condicionan la elección del DSP más apropiado para una determinada aplicación. Posteriormente veremos algunas alternativas a este tipo de procesadores. En la última parte del tema analizaremos el mercado de los DSP y sus principales fabricantes. ¾ BIBLIOGRAFIA: “DSP Processor Fundamentals “ Autor: Phil Lapsley Editorial: IEEE Press 1 PROCESADORES DIGITALES DE SEÑAL 1. Concepto de Procesador Digital de Señal 2. Características Generales de un DSP 3. Factores que condicionan la elección de un DSP 4. Alternativas a los DSP 5. El Mercado y los Fabricantes de DSP CONCEPTO DE DSP ¾ Los Procesadores Digitales de Señal, DSP’s, son microprocesadores especialmente diseñados para ser utilizados en aplicaciones que requieren un procesamiento de datos intensivo. Están optimizados para resolver una serie de algoritmos que soportan un campo de aplicaciones concreto, pero cada vez más extenso. ¾ A partir de 1980 los avances tecnológicos permitieron integrar en un chip gran cantidad de transistores y otros componentes, lo cual combinado con el perfeccionamiento de la arquitectura de los computadores digitales facilitó la construcción de circuitos integrados conteniendo procesadores digitales especializados en el tratamiento matemático de señales analógicas. ¾ Desde la introducción de los primeros procesadores DSP con éxito comercial a principios de los años 80, han sido desarrollados decenas de nuevos procesadores, ofreciendo a los diseñadores de sistemas una amplia gama de elección. Los DSP actuales son dispositivos muy sofisticados y con amplias prestaciones. 2 CARACTERISTICAS GENERALES DE UN DSP La mayoría de los DSP comparten algunas características básicas especialmente diseñadas para soportar, con alto rendimiento, tareas repetitivas y de cálculo intensivo: ¾ Capacidad de ejecutar una instrucción tipo MAC en un único ciclo de instrucción. La operación de multiplicar y sumar es muy utilizada en algoritmos que requieren la realización de productos escalares, como por ejemplo los filtros. 9 Multiplicador y sumador integrados en el camino principal de datos. 9 Para permitir la realización de una serie de operaciones de multiplicar y sumar sin que haya desbordamiento aritmético, los procesadores DSP generalmente disponen de bits adicionales en el acumulador para soportar el aumento del número de bits del resultado. CARACTERISTICAS GENERALES DE UN DSP ¾ Capacidad de realizar varios accesos a memoria en un único ciclo de instrucción. Esto permite que el procesador realice la búsqueda de una instrucción al mismo tiempo que busca los operandos y/o almacena en la memoria el resultado de la instrucción anterior. 9 Estos accesos múltiples a memoria en un sólo ciclo están sujetos a restricciones. Típicamente, todas excepto una de las posiciones de memoria accedidas deben residir en la memoria interna del chip. Los accesos múltiples a memoria sólamente pueden ocurrir con ciertas instrucciones. 9 Para soportar accesos simultáneos a múltiples posiciones de memoria, los procesadores DSP disponen de múltiples buses internos, memorias internas con varios puertos y en algunos casos múltiples espacios de memoria independientes. 3 CARACTERISTICAS GENERALES DE UN DSP ¾ Incorporación de una unidad dedicada a la generación de direcciones. Esto permite que el procesamiento aritmético se realice a la máxima velocidad posible. 9 Una vez configurados adecuadamente los registros de direcciones, la unidad de generación de direcciones opera en segundo plano, generando las direcciones requeridas para el acceso a los operandos, en paralelo con la ejecución de las instrucciones aritméticas. 9 La unidad de generación de direcciones soporta, típicamente, una selección de modos de direccionamiento adecuada a las aplicaciones de los DSP. El modo más común es el direccionamiento indirecto por registro con incremento o decremento posterior y un caso especial de este que es el direccionamiento de bit inverso. CARACTERISTICAS GENERALES DE UN DSP ¾ Soporte especial para la implementación eficiente de bucles instrucciones . Esto facilita la realización de cálculos repetitivos. de 9 Frecuentemente existe una instrucción especial de repetición, que permite al programador implementar un bucle tipo “for-next” sin consumir ciclos de instrucción adicionales para la actualización y comprobación del valor del contador del bucle. ¾ Incorporación de varios interfaces de E/S y mecanismos especializados de control de la misma . Esto permite realizar operaciones de entrada y salida con alto rendimiento y bajo coste. 9 Frecuentemente muchos DSP incorporan varios intefaces de E/S serie y paralelo y mecanismos especializados de control de la E/S, tales como DMA o interrupciones. 4 FACTORES PARA LA ELECCION DE UN DSP ¾ La primera tarea del diseñador que debe seleccionar un procesador DSP, es ponderar la importancia relativa de factores como velocidad, coste, herramientas de desarrollo, consumo de energía, etc. TIPO DE REPRESENTACIÓN NUMÉRICA Y ARITMÉTICA: ¾ Una de las características más importantes que determinan la idoneidad de un DSP para una determinada aplicación es el tipo de representación numérica empleada por el DSP. TIPOS DE ARITMETICA Aritmética en Coma Fija: ¾ Los primeros procesadores utilizaban aritmética en coma fija y de hecho actualmente son todavía los más utilizados. ¾ En coma fija, los números pueden representarse como enteros (aritmética entera) o como fraccionarios entre -1.0 y +1.0 (aritmética fraccionaria). ¾ Los algoritmos y el hardware utilizado para ambos tipos de aritmética son prácticamente idénticos. La principal diferencia entre aritmética entera y fraccionaria radica en cómo se manipulan los resultados de las operaciones de multiplicación. ¾ En la práctica, la mayoría de los DSP de coma fija soportan los dos tipos de aritmética. ¾ La aritmética fraccionaria es muy util en algoritmos de tratamiento digital de la señal, mientra que la aritmética entera se utiliza en algoritmos de control, cálculo de direcciones y otra operaciones que no involucran señales. 5 TIPOS DE ARITMETICA TIPOS DE ARITMETICA 6 TIPOS DE ARITMETICA Aritmética en Coma Flotante: ¾ En los procesadores que utilizan aritmética en coma flotante los numeros son representados por la mantisa y el exponente. ¾ La mantisa suele representarse como un valor fraccionario con signo, con un bit implícito (este bit implícito no se almacena en la mantisa, se asume que siempre vale 1). Esto significa que la mantisa toma valores comprendidos en el rango +1.0 +2.0 y -1.0 -2.0. ¾ El exponente es un número entero que representa el número de posiciones que la coma binaria debe ser desplazada a izquierda o a derecha para obtener el valor representado. valor = mantisa x 2 exponente ¾ En general, los DSP en coma flotante también soportan datos en coma fija, generalmente enteros, para facilitar las operaciones con números que son por naturaleza enteros, por ejemplo el cálculo de direcciones de memoria. TIPOS DE ARITMETICA 7 TIPOS DE ARITMETICA Aritmética en Coma Flotante: ¾ La aritmética en coma flotante es un mecanismo más flexible que la aritmética en coma fija. Con la aritmética en coma flotante, los diseñadores de sistemas tienen acceso a un rango dinámico (la relación entre el mayor y el menor número que puede ser representado) mucho más amplio y, en algunos casos, a una mejor precisión. ¾ Ejemplo: Rango dinámico en coma fija de 16 bits: 2.15 x 109 (187 dB). Rango dinámico en coma flotante de 32 bits: 5.79 x 1076 (1535 dB) ¾ En la práctica el rango dinámico se traduce en el rango de la magnitud de las señales que pueden ser procesadas, manteniendo suficiente exactitud. ¾ Diferentes aplicaciones requieren rangos dinámicos diferentes: aplicaciones de telecomunicaciones en torno a 50 dB, aplicaciones de audio de alta fidelidad en torno a 90 dB. TIPOS DE ARITMETICA Emulación de la Aritmética en Coma Flotante: ¾ Es posible realizar operaciones aritméticas en coma flotante en un procesador de coma fija utilizando rutinas que emulan el comportamiento de un dispositivo de coma flotante. Sin embargo estas rutinas penalizan en términos de ciclos del procesador, esto implica que la emulación de la coma flotante puede utilizarse si solamente una pequeña parte de los cálculos requiere aritmética en coma flotante. ¾ Algunos fabricantes de DSP proporcionan bibliotecas de subrutinas de emulación de coma flotante para sus DSP de coma fija. Coma Flotante en Bloque: ¾ Otra aproximación para obtener mayor precisión y rango dinámico en un procesador en coma fija es la Coma Flotante en Bloque, que consiste en números con diferentes mantisas pero un sólo exponente común que son procesados como un bloque de datos. 8 TIPOS DE ARITMETICA Aritmética en Coma Flotante: ¾ Los DSP de coma flotante son, generalmente, más caros que los DSP de coma fija, pero de más fácil utilización. El coste más elevado resulta de la mayor complejidad de los circuitos requeridos por la coma flotante, lo que implica la utilización de un área mayor de silicio. ¾ La ventaja de la facilidad de utilización de los DSP de coma flotante, se debe al hecho de que el programador no tiene que preocuparse del rango dinámico y de la precisión. En un procesador de coma fija, el programador frecuentemente tiene que escalar cuidadosamente las señales en varias etapas de sus programas, para asegurar un tratamiento numérico adecuado a la limitada gama dinámica y precisión del procesador. ¾ La mayoría de los sistemas embebidos de gran consumo utilizan DSP en coma fija puesto que el coste es un factor prioritario. En aplicaciones en las que el coste no es prioritario, o con severos requirimientos de rango dinámico y precisión o donde la facilidad de programación es primordial, se utilizan DSP de coma flotante. TIPOS DE ARITMETICA Estandar en Coma Flotante IEEE 754: ¾ En 1985 el IEEE redactó el estándar 754 que define un formato de datos estándar para la representación de números en coma flotante en precisión simple de 32 bits y un juego de reglas estándar para la aritmética en coma flotante. ¾ Las reglas deteminan, por ejemplo, los algoritmos de redondeo que deben implementarse en los DSP de coma flotante y cómo el procesador debe manipular las excepciones aritméticas, tales como overflow o división por cero. ¾ Un número en este formato consiste en un bit de signo, 24 bits de mantisa y un exponente de 8 bits sin signo. ¾ Para números normalizados la mantisa consiste en 23 bits y un bit oculto que implicitamente se supone que precede al bit f22. El punto binario reside entre este bit oculto y f22. 9 TIPOS DE ARITMETICA ¾ El exponente e sin signo está comprendido en el rango 1 < e < 254. Para calcular el verdadero valor del exponente es preciso restarle 127. ¾ Algunos DSP disponen de soporte hardware para implementar la aritmética en coma flotante conforme al estándar. Otros DSP de coma flotante trabajan internamente con formatos de datos en coma flotante no conformes con el estandar, pero disponen de soporte hardware para realizar de forma rápida la conversión entre este formato interno y el formato definido por el estandar IEEE 754. TIPOS DE ARITMETICA ANCHO DE LA PALABRA DE DATOS : ¾ La palabra de datos nativa o aritmética nativa de un procesador se define como el tamaño de la palabra de datos que los buses y las unidades de cálculo del procesador pueden manipular en un único ciclo de instucción. ¾ La mayoría de los DSP de coma flotante tienen una palabra de datos nativa de 32 bits. Para los DSP de coma fija la palabra más utilizada es de 16 bits. (Motorola DSP563xx 24 bits y Zoran ZR3800x 20 bits). ¾ El ancho de la palabra de datos tiene una importante repercusión en el coste, porque influye poderosamente en el tamaño del chip y en el número de pines del dispositivo, así como el tamaño de los circuitos de memoria externos conectados al DSP. Por lo tanto, los diseñadores intentan utilizar el chip con el menor ancho de palabra que su aplicación puede tolerar. ¾ Resumiendo, para la elección entre procesadores de coma fija y de coma flotante, hay a menudo un compromiso entre el ancho de la palabra de datos y la complejidad del desarrollo. 10 TIPOS DE ARITMETICA Precisión Extendida : ¾ Precisión extendida significa utilizar representaciones de los datos que proporcionan mayor precisión que la que proporciona la palabra de datos nativa del procesador. ¾ La precisión extendida puede obtenerse de dos formas: 9 Algunos DSP de coma flotante soportan internamente formatos en precisión extendida para realizar operaciones que se ejecutan exclusivamente en las unidades de cálculo, esto quiere decir que no implican transferencias de datos desde o hacia la memoria. Esto significa que se pueden realizar una serie de operaciones aritméticas con una precisión y rango dinámico extra y luego redondear el resultado antes de almacenarlo en memoria. 9 Implementar aritmética multiprecisión construyendo palabras de datos más largas como secuencia de palabras de datos del procesador (construir palabras de 32 bits con dos palabras de 16 bits). RECURSOS DE CALCULO ¾ Las unidades de cálculo de los DSP son las responsables de las altas prestaciones de estos procesadores para realizar las operaciones de cálculo típicas de los algoritmos de procesamiento digital de señales, como es la operación MAC. ¾ Las prestaciones de las unidades de cálculo junto con la organización de la memoria son sin duda las características que más diferencian unos procesadores de otros. ¾ Las unidades de cálculo de los DSP de coma fija son significativamente diferentes de las unidades de cálculo de los DSP de coma flotante, debido a los diferentes requerimientos de los dos tipos de aritmética. ¾ Las unidades de cálculo de cualquiera de los dos tipos de DSP normalmente incluyen: multiplicador, ALU, uno o varios desplazadores, registros de datos, acumuladores y también unidades especializadas. ¾ Las unidades de cálculo en los DSP generalmente no se utilizan para calcular las direcciones de los operandos, estos procesadores suelen disponer de hardware adicional para realizar estos cálculos (DAG). 11 RECURSOS DE CALCULO Multiplicador : ¾ La presencia de un multiplicador que realice una operación de multiplicación sobre dos datos en un único ciclo de instrucción es crucial en un procesador DSP (en la mayoría de las aplicaciones de procesamiento digital de la señal la mitad de las instrucciones ejecutadas por el DSP son instrucciones de multiplicación). ALU : ¾ La ALU de los procesadores DSP normalmente realiza un conjunto de operaciones aritméticas y lógicas estándar, en un único ciclo de instrucción. ¾ Las operaciones más habituales son: suma, resta, incremento, decremento y las lógicas AND, OR, XOR, NOT. ¾ En algunos procesadores la ALU es utilizada para realizar la suma en las operaciones MAC. Otros procesadores disponen de un sumador independiente para esta tarea. RECURSOS DE CALCULO 12 RECURSOS DE CALCULO CACHE MEMORY DAG 1 8 x 4 x 32 DAG 2 8 x 4 x 24 PROGRAM SEQUENCER PMA BUS 24 PMA DMA BUS 32 DMA 48 PMD BUS PMD BUS CONNECT DMD BUS 40 DMD REGISTER FILE 16 x 40 FLOATING & FIXED-POINT MULTIPLIER, FIXED-POINT ACCUMULATOR 32-BIT BARREL SHIFTER FLOATING-POINT & FIXED-POINT ALU RECURSOS DE CALCULO CACHE MEMORY DAG 1 8 x 4 x 32 DAG 2 8 x 4 x 24 PROGRAM SEQUENCER 24 PMA BUS PMA DMA BUS 32 PMD BUS DMA 64 PMD BUS CONNECT DMD BUS 64 DMD Processing Element X ALU BARREL SHIFTER Processing Element Y REGISTER FILE MULTIPLIER/ MAC MULTIPLIER/ MAC REGISTER REGISTER FILE BARREL SHIFTER ALU 13 ARQUITECTURA DE LA MEMORIA ¾ Para mantener las unidades de cálculo alimentadas con datos y almacenar los resultados de las operaciones ejecutadas en ellas, los procesadores DSP deben poder mover grandes cantidades de datos desde o hacia memoria a gran velocidad. ¾ La organización de la memoria y su interconexión con las unidades de cálculo son factores críticos que determinan las prestaciones de un DSP. A estas dos características es a lo que se denomina arquitectura de memoria. ¾ Para comprender mejor la necesidad que tienen las aplicaciones de los DSP de disponer de grandes anchos de banda de memoria consideremos el ejemplo de un filtro FIR. ¾ Un filtro FIR está construido a partir de una serie de etapas. Cada etapa incluye una operación de multiplicación y acumulación. ¾ Los bloques D son operadores retraso; su salida es una copia de la muestra de entrada retrasada en un periodo de muestreo. Se utilizan una serie de posiciones de memoria para simular una serie de estos elementos de retraso, llamada línea de retraso. ARQUITECTURA DE LA MEMORIA y (n ) = m −1 ∑a k ⋅ x(n − k ) k =0 14 ARQUITECTURA DE LA MEMORIA ¾ Cada vez que llega una nueva muestra, las muestras anteriormente almacenadas son desplazadas una posición a la derecha a lo largo de la línea de retraso y se calcula una nueva salida filtrada multiplicando la nueva muestra y cada una de las anteriormente almacenadas por el correspondiente coeficiente. Los resultados de cada multiplicación se suman juntos para obtener una nueva muestra de salida. ¾ Como los procesadores DSP han sido diseñados para realizar un operación MAC en un único ciclo de instrucción, esto quiere decir que las operaciones aritméticas requeridas para una etapa pueden calcularse en un ciclo de instrucción. Por tanto, tendremos una nueva muestra de salida cada “n” ciclos de instrucción en un filtro FIR de ”n” etapas. ¾ Sin embargo para conseguir estas prestaciones el DSP debe poder realizar varios accesos a memoria en un ciclo de instrucción: leer la instrucción MAC, leer la muestra apropiada de la línea de retraso, leer el valor del coeficiente correspondiente y escribir un nuevo dato en la siguiente posición de la línea de retraso para desplazar los datos a través de la misma. ARQUITECTURA DE LA MEMORIA ¾ La estructura de memoria más sencilla consiste en un único banco de memoria al que el procesador accede a través de un único sistema de buses. Esta arquitectura, que es muy habitual en procesadores de propósito general, se conoce con el nombre de “Arquitectura Von Neumann”. ¾ Tanto el programa como los datos están almacenados en la misma memoria. En este caso generalmente el procesador puede realizar un acceso a memoria (como lectura o como escritura) durante cada ciclo de instrucción. ¾ Si consideramos un procesador con arquitectura Von Neumann que implementa un filtro FIR, aunque las unidades del procesador fuesen capaces de completar una operación MAC en un ciclo de instrucción, tardaría cuatro ciclos de instrucción en realizar realmente la operación MAC, puesto que los cuatro accesos a memoria requeridos se deben realizar secuencialmente cada uno en un ciclo de instrucción. ¾ Esta es la razón por la cual los procesadores convencionales no soportan de forma eficiente las aplicaciones DSP y también por la que los diseñadores de DSP han desarrollado un amplio abanico de alternativas a la arquitectura Von Neumann. 15 ARQUITECTURA DE LA MEMORIA ARQUITECTURA DE LA MEMORIA ¾ La estructura de memoria conocida con el nombre de “Arquitectura Harvard” hace referencia a una estructura de memoria en la cual el procesador está conectado a dos bancos de memoria independientes a través de dos sistemas de buses independientes. ¾ En la arquitectura Harvard original un bloque de datos almacena las instrucciones del programa y el otro bloque almacena los datos. Este concepto ha sido extendido para permitir que un banco almacene instrucciones y datos y el otro almacene únicamente datos (Arquitectura Harvard Modificada). ¾ La principal ventaja de la arquitectura Harvard es que permite realizar dos accesos a memoria en cada ciclo de instrucción. Por tanto los cuatro accesos requeridos para implementar un filtro FIR pueden completarse en dos ciclos de instrucción. ¾ Puesto que dos bancos de memoria son mejor uno, cabe suponer que tres bancos de memoria serán mejor que dos: un banco de memoria de programa y dos bancos de memoria de datos (tres accesos a memoria en un ciclo de instrucción). 16 ARQUITECTURA DE LA MEMORIA ARQUITECTURA DE LA MEMORIA ¾ En aquellos procesadores que únicamente soportan tres accesos a memoria en cada ciclo de instrucción, suplen la necesidad de realizar un cuarto acceso (en un filtro FIR este acceso es necesario para actualizar la línea de retraso) con una técnica llamada direccionamiento circular. ¾ Otra alternativa para conseguir múltiples accesos a memoria en un instrucción consiste en utilizar memorias muy rápidas que permitan secuenciales en un ciclo de instrucción sobre un único sistema de también utilizar memorias multipuerto que permiten múltiples concurrentes sobre dos o más sistemas de buses independientes. ¾ Algunos DSP disponen de memoria interna muy rápida que permite realizar un acceso en medio ciclo de instrucción. ¾ Estas memorias muy rápidas se pueden combinar con la arquitectura Harvard, obteniendo mayores prestaciones que utilizando únicamente una de ellas. Por ejemplo utilizar arquitectura Harvard modificada con dos bancos de memoria muy rápida. Cada banco puede realizar dos accesos secuenciales en cada ciclo de instrucción, por tanto, los dos bancos pueden realizar cuatro accesos por ciclo de instrucción. ciclo de accesos buses y accesos 17 ARQUITECTURA DE LA MEMORIA ¾ Otra técnica que incrementa el ancho de banda de la memoria es el uso de memorias multipueto. El tipo más común de memoria multipuerto es la memoria de doble puerto que permite dos accesos simultáneos. La principal desventaja de las memorias multipuerto es que son más costosas (en términos de área de silicio) de implementar que las memorias estándar de un único puerto. ¾ Algunos procesadores combinan la arquitectura Harvard modificada con el uso de memorias multipuerto. Esta disposición permite un acceso a memoria de programa y dos accesos a memoria de datos en cada ciclo de instrucción. ¾ Algunos procesadores disponen de un mecanismo especial que permite escribir en memoria de datos en paralelo con leer una instrucción o un dato. Estos procesadores disponen de instrucciones especiales que permiten una escritura en paralelo en memoria de datos bajo ciertas restricciones. (Esta operación de escritura puede ser usada para desplazar la muestra a lo largo de la línea de retraso en la implementación de los filtros.) ARQUITECTURA DE LA MEMORIA 18 ARQUITECTURA DE LA MEMORIA ¾ Algunos procesadores DSP incorporan memoria caché de instrucciones, que es una pequeña memoria interna al DSP, usada para almacenar instrucciones del programa, eliminando de esta forma la necesidad de acceder a memoria de programa cuando se buscan determinadas instrucciones. Si eliminamos el acceso correspondiente a la búsqueda de instrucción, queda libre un acceso a memoria que puede ser usado para leer o escribir un dato. ¾ Las memorias cachés de los distintos DSP varían significativamente en cuanto a su modo de operación y a su capacidad. Generalmente son de menor tamaño y más sencillas que las memorias cachés asociadas con los microprocesadores de propósito general. ¾ Caché Manual: independientemente de que el procesador disponga o no de memoria caché, a menudo es posible mejorar el comportamiento moviendo explícitamente secciones del programa que residen en memorias lentas o más congestionadas a otras memorias más rápidas o menos congestionadas: por ejemplo, una sección de programa frecuentemente utilizada que reside en una memoria externa lenta, puede copiarse a memoria interna, más rápida en el momento de la inicialización o cuando va a utilizarse. ARQUITECTURA DE LA MEMORIA ¾ Estados de espera: son ciclos durante los cuales el procesador no ejecuta instrucciones porque está esperando para acceder a memoria. Los estados de espera se pueden generar fundamentalmente por tres causas: 9 Conflictos. 9 Memorias lentas. 9 Buses compartidos. ¾ Los estados de espera por conflicto se producen cuando el DSP intenta realizar múltiples accesos simultáneos a una memoria que no los puede soportar. Por ejemplo esto ocurre cuando tenemos un único banco de memoria con un único acceso por ciclo y en ella reside el programa y los datos. ¾ La mayor parte de los DSP reconocen los estados de espera por conflicto e insertan automáticamente el número mínimo de estados de espera necesario. 19 ARQUITECTURA DE LA MEMORIA ¾ La mayoría de los DSP integran una pequeña cantidad de memoria rápida, tipo RAM o ROM que soporta varios accesos a memoria en un ciclo de instrucción. En muchas aplicaciones esta cantidad de memoria resulta insuficiente y es necesario ampliarla conectando memoria externa que es demasiado lenta para completar un acceso en un ciclo de instrucción. ¾ En estos casos el procesador puede configurarse para que automáticamente inserte un número determinado de estados de espera durante todos los accesos a memoria externa. Estos estados de espera son configurados por el programador para, deliberadamente, disminuir la velocidad con la que el procesador accede a la memoria y de esta forma adaptarse a memorias lentas (recordar que las memorias lentas son mucho menos costosas que las memorias rápidas). ¾ Algunos DSP pueden programarse para insertar diferente número de estados de espera en función de que el acceso tenga lugar a una u otra partición diferente de la memoria externa. Esto permite combinar en un mismo sistema memorias rápidas y memorias lentas. ARQUITECTURA DE LA MEMORIA ¾ En algunos sistemas no es posible predecir el número exacto de estados de espera que se van a insertar en un determinado acceso a memoria. Esta situación se da, por ejemplo, cuando el DSP comparte el sistema de buses externo con uno o varios procesadores. Esta situación se da también cuando la memoria utilizada es DRAM y el procesador debe esperar a que el controlador de la memoria termine un ciclo de refresco. ¾ Para resolver estas situaciones el procesador tiene la capacidad de insertar dinámicamente el número de estados de espera necesarios hasta que recibe una señal externa (READY), generada por el bus o controlador de memoria externo que le informa que la memoria está disponible para realizar el acceso. ¾ La duración de un estado de espera en función de la duración de un ciclo de instrucción varía de unos procesadores a otros: normalmente varía desde la cuarta parte de un ciclo de instrucción a un ciclo de instrucción completo. Normalmente cuanto menor sea la duración de un estado de espera mayor será la eficiencia de la operación (menor será el retraso desde que la memoria está disponible para ser accedida hasta que finaliza el estado de espera y el procesador inicia el acceso). 20 ARQUITECTURA DE LA MEMORIA ¾ Interface con Memoria Externa: los interfaces con memoria externa de los distintos DSP difieren fundamentalmente en tres características principales: 9 Número de puertos de memoria. 9 Flexibilidad y sofisticación de los interfaces. 9 Requerimientos de tiempo. ¾ La mayoría de los procesadores DSP disponen de un único puerto externo que consiste en un bus de direcciones, un bus de datos y un conjunto de señales de control (aunque internamente dispongan de múltiples sistemas de buses). La razón de ello es que prolongar externamente múltiples sistemas de buses requiere un elevado número de pines en el encapsulado lo que se traduce en un elevado coste del DSP. ¾ La flexibilidad y sofisticación no varía mucho de unos DSP a otros: forma de generar los estados de espera, disponibilidad de señal READY, uso de memorias DRAM (soporte del modo página). ARQUITECTURA DE LA MEMORIA 21 ARQUITECTURA DE LA MEMORIA Core Processor Two Independent, Dual-Ported Memory Blocks 32 x 48-Bit PROCESSOR PORT DAG 1 DA G 2 8 x 4 x 32 8 x 4 x 24 PROGRAM SEQUENCER I/O PORT DATA ADDR ADDR BLOCK 0 Dual-Ported SRAM INSTRUCTION CACHE JTAG BLOCK 1 TIMER 7 Test & Emulation ADDR DATA DATA DATA ADDR IOD IOA 17 48 PM Address Bus 24 External Port ADDR BUS MUX DM Address Bus 32 32 MULTIPROCESSOR INTERFACE PM Data Bus 48 Bus Connect (PX) DATA BUS MUX DM Data Bus 40 48 HOST PORT P M D DATA REGISTER FILE MULTIPLIER 16 x 40-Bit BARREL SHIFTER ALU D M D E P D IOP REGISTERS I O D DMA CONTROLLER SERIAL PORTS (2) LINK PORTS (6) 4 6 6 36 I/O Processor ARQUITECTURA DE LA MEMORIA ¾ Soporte del Modo Multiprocesador en el Interface con Memoria Externa: los procesadores DSP incorporan características especiales en sus interfaces con memoria externa para simplificar el proceso de diseño y mejorar las prestaciones cuando se utilizan en sistemas multiprocesador. ¾ Una de estas características especiales es la disponibilidad de dos puertos externos, uno para conectar una memoria local o privada y el otro para conectar una memoria compartida con el resto de procesadores. ¾ Cuando en un sistema multiprocesador varios DSP comparten un único sistema de buses externo, los procesadores deben disponer de un mecanismo que les permita negociar el control del bus (bus arbitration). ¾ Los DSP ADSP-2106x de Analog Devices ofrecen un sofisticado interface de bus compartido. Estos procesadores incorporan un mecanismo de arbitraje del bus que permite interconectar directamente un máximo de seis DSP sin ningún hardware ni software adicional para el control del bus. Además cada DSP puede acceder a la memoria interna de cualquier otro lo que facilita la comunicación entre ellos, eliminando la necesidad de una memoria externa compartida. 22 ARQUITECTURA DE LA MEMORIA MODOS DE DIRECCIONAMIENTO ¾ Los modos de direccionamiento se refiere a las diferentes formas de especificar en las instrucciones donde están localizados los datos con los que operan. ¾ La mayoría de los procesadores DSP disponen de una o varias unidades de generación de direcciones dedicadas a calcular las direcciones de los operandos. Esto permite que el cálculo de las direcciones se realice en paralelo con el procesamiento de los datos, aumentando las prestaciones del DSP. El número de unidades de generación de direcciones y su complejidad se traduce en el tipo de modos de direccionamiento soportados y en la flexibilidad y capacidad de cada modo. ¾ Modos de direccionamiento específicos: 9 Modos de Direccionamiento pre o post- modificados. 9 Direccionamiento de buffers circulares. 9 Direccionamiento de Bit Inverso. 23 MODOS DE DIRECCIONAMIENTO MODOS DE DIRECCIONAMIENTO 24 MODOS DE DIRECCIONAMIENTO JUEGOS DE INSTRUCCIONES ¾ El juego de instrucciones de un procesador es un factor clave que determina no sólo el tipo de operaciones que éste puede realizar sino también qué operaciones realiza de forma eficiente, por tanto tiene una profunda influencia a la hora de evaluar la idoneidad de un DSP para una determinada aplicación. ¾ En general procesadores con palabras de instrucción largas tienden a disponer de juegos de instrucciones más ortogonales que los procesadores con palabras de instrucción menores. ¾ En lo referente al lenguaje ensamblador hay principalmente dos estilos: 9 La modalidad tradicional Código de operación – Operando(s) MPY X0, Y0 ADD P, A 9 La sintáxis algebraica: P = X0 * Y0 GOTO LOOP 25 JUEGOS DE INSTRUCCIONES ¾ En los algoritmos típicos de las aplicaciones de tratamiento digital de señales, con frecuencia se necesita ejecutar repetidamente un número reducido de instrucciones (bucles): filtros FIR, IIR, FFTs, multiplicación de matrices. ¾ Los procesadores DSP incluyen características especiales para manejar de forma eficiente este tipo de bucles. PIPELINE ¾ El pipeline es una técnica que se emplea para incrementar las prestaciones de un procesador o de cualquier sistema electrónico, y que consiste en dividir la ejecución de una instrucción en una secuencia de pequeñas operaciones y ejecutar estas operaciones en paralelo cuando sea posible, disminuyendo de esta forma el tiempo total de ejecución de la instrucción. La mayoría de los DSP del mercado utilizan esta técnica. ¾ Para ilustrar de qué forma la técnica de la segmentación mejora las prestaciones de un procesador, consideremos un procesador hipotético que utiliza unidades de ejecución independientes para realizar las operaciones que conlleva la ejecución de una instrucción: 1. Búsqueda de la instrucción en memoria 2. Decodificación 3. Lectura de un operando o escritura en memoria 4. Ejecución 26 PIPELINE Ejecución de instrucciones sin pipeline. Procesador que utiliza la técnica pipeline. PIPELINE ¾ Desafortunadamente el pipeline si bien mejora las prestaciones frecuentemente hace mucho más complicada la programación. Por ejemplo, en algunos procesadores el pipeline origina que determinadas secuencias de instrucciones se ejecuten más lentamente en unos casos que en otros. En otros procesadores ciertas secuencias de instrucciones deben ser evitadas para una correcta programación. Por tanto, el pipeline representa una solución de compromiso entre eficiencia y facilidad de uso. Efecto en el pipeline ante la llegada de una instrucción de salto. 27 FACTORES PARA LA ELECCION DE UN DSP ¾ VELOCIDAD: 9 Es una medida clave de la adecuación de un procesador para una aplicación particular. 9 Varias formas de medir la velocidad: Tiempo de ciclo de Instrucción. (El recíproco del tiempo de ciclo de instrucción indica la tasa de ejecución de instrucciones en millones de instrucciones por segundo o MIPS). 9 Problema: La cantidad de operaciones realizadas en instrucción varía considerablemente de un procesador a otro. una 9 Solución: Tomar como referencia una operación básica (MAC). 9 Alternativa: Definición de benchmarks. FACTORES PARA LA ELECCION DE UN DSP ¾ HERRAMIENTAS DE DESARROLLO: 9 Herramientas de desarrollo Software: 9 Ensamblador. 9 Linker. 9 Simulador. 9 Compiladores de Lenguajes de Alto Nivel. 9 Herramientas de desarrollo Hardware: 9 Tarjetas de evaluación. 9 Emuladores. 9 Herramientas de Alto Nivel: 9 Herramientas de Generación de Código Ensamblador basadas en diagramas de bloques. (DSP STATION de Mentor Graphics). 28 FACTORES PARA LA ELECCION DE UN DSP ¾ CONSUMO Y GESTIÓN DE ENERGÍA: 9 Uso de los DSP en aplicaciones portátiles, tales como teléfonos celulares, donde el consumo de energía es una preocupación primordial. Se incorporan funciones de gestión de energía. 9 Operación con tensión reducida: la mayoría de los fabricantes han introducido versiones de 3 voltios de sus DSP. 9 Modos de operación “Sleep” e “Idle”: modos de funcionamiento que desconectan el reloj de algunas secciones del procesador. 9 Divisores de reloj programables: algunos DSP permiten que la frecuencia de reloj del procesador varíe bajo control del software. 9 Control de periféricos: inhabilitar periféricos que no están siendo utilizados. FACTORES PARA LA ELECCION DE UN DSP ¾ COSTE: 9 Es un factor determinante en la elección de un DSP: los diseñadores intentan utilizar el dispositivo con el menor coste posible que satisfaga los requerimientos de la aplicación, aunque estos dispositivos sean menos flexibles y más difíciles de programar. 9 El tipo de encapsulado influye en el coste: los encapsulados PQFP son, en general, significativamente más baratos que los encapsulados de matriz de pines PGA. 9 Otro factor que afecta al coste es la cantidad de dispositivos. ¾ CONCLUSIÓN: 9 Para cada aplicación habrá un DSP que resulte más idóneo. 29 ALTERNATIVAS A LOS DSP ¾ Microprocesadores de Propósito General mejorados: 9 Son microprocesadores de última generación como el Pentium, el PowerPC620, el Alpha y el UltraSPARC, que tienen capacidades similares e incluso superiores a los DSP. 9 Son eficaces en aplicaciones sencillas, en las cuales tienen la ventaja de disponer de librerías y programas potentes, muy desarrollados a nivel de lenguajes de alto nivel. ¾ Hardware a Medida: ASIC a medida y FPGA: 9 El diseño se optimiza para conseguir las máximas prestaciones, por lo que en aplicaciones concretas consiguen mayor eficiencia que los DSP. 9 El coste es menor si se producen grandes cantidades. 9 Este tipo de diseño es recomendable cuando se trabaja con frecuencias elevadas. EL MERCADO Y LOS FABRICANTES DE DSP ¾ Actualmente el mercado de los DSP puede considerarse uno de los mercados más prósperos de los últimos años. La apuesta por este tipo de productos por parte de empresas como Texas Instruments es total. ¾ El principal destino de los DSP es el mercado de las comunicaciones inalámbricas, que ha crecido hasta acaparar el 71%. En menor medida tambén creció el porcentaje de DSP orientado al mercado de los computadores y la automática. 30 EL MERCADO Y LOS FABRICANTES DE DSP ¾ Por regiones es Asia, principalmente China, pero también Taiwán, Corea del Sur y Singapur, los principales productores de DSP con un 52% del mercado, seguida por Europa con un 20%, Japón con un 17% y finalmente América con un 11%. América 11% Japón 17% Asia 52% Europa 20% EL MERCADO Y LOS FABRICANTES DE DSP ¾ En la figura se muestran porcentajes de participación en el mercado de los DSP de los cinco principales fabricantes en 2004. Porcentaje de Ventas 6,8 13,1 7,7 Texas Instruments 49,7 Freescale (Motorola) Aguere Systems Analog Devices Philips 9,8 12,9 Otros 31