HISTORIA DE LOS DPS Los procesadores DPS son microprocesadores diseñados para funcionar con procesamiento de señales digitales, la manipulación matemática de señales digitalmente representadas por los procesadores DPS es el centro de las tecnologías más rápidas y crecen más áreas de aplicación como: comunicaciones inalámbricas, audio, procesamiento de video y control industrial. Con el aumento de las aplicaciones de los DPS. La variedad de procesadores son capaces de ir creciendo enormemente desde la introducción del primero comercialmente exitoso. El DPS es un chip que comenzó en el año de 1980. La firma de investigación de mercados que proyectan conceptos en ventas de procesadores de DPS que suman $6.2 billones en los estados unidos en el 2000, aumento del 40% más que en 1999 con fabricantes de semiconductores que compiten para acciones más grandes en este mercado, los diseñadores eligen ampliarse más en los siguientes años. Los procesadores de DPS de hoy son dispositivos sofisticados con cantidades impresionantes. En este trabajo nosotros presentamos las características comunes al comercio moderno de procesadores de DPS, se explican algunas de las diferencias más Importantes entre diversos dispositivos y sobre las características del diseñador de sistemas que deben de examinar para encontrar que el procesador sea mejor en su aplicación. Las aplicaciones que usan procesadores de señales digitales, estos chips están prosperando por mantenerse en el crecimiento del rendimiento y la caída de precios. Al mismo tiempo en el mercado se ha expandido enormemente por lo tanto realizamos un cálculo estimado $ 6 billones en los estados unidos en el 2000. Muchos distribuidores han entrado en el mercado, las compañías que son establecidas para competir en el mercado creando una gran cantidad de arquitecturas nuevas y eficientes al alcance de las arquitecturas de procesamiento de señales digitales que son disponibles sin procedente. 1.2 PROCESADORES DE SEÑALES DIGITALES Las aplicaciones que usan procesadores de señales digitales, estos chips están prosperando por mantenerse en el crecimiento del rendimiento y la caída de precios. Al mismo tiempo en el mercado se ha expandido enormemente por lo tanto realizamos un cálculo estimado $ 6 billones en los estados unidos en el 2000. Muchos distribuidores han entrado en el mercado, las compañías que son establecidas para competir en el mercado creando una gran cantidad de arquitecturas nuevas y eficientes al alcance de las arquitecturas de procesamiento de señales digitales que son disponibles sin procedente. Expandir la competición entre distribuidores de procesadores de señales digitales, una nueva amenaza llega a los procesadores de propósito general con mejoras en los DPS. De esta manera los distribuidores de DPS empezaran a adaptar sus arquitecturas y evitaran las extranjeras. Las siguientes estructuras proporcionan una base para el conocimiento del desarrollo reciente en las arquitecturas de los procesadores incluyendo el incremento e intercambio de las técnicas de arquitectura entre los procesadores de señales digitales y los procesadores de propósito general. Funcionamiento a través del paralelismo Los procesadores de señales digitales son componentes de muchos consumidores como en comunicaciones, en la medicina y productos industriales. Su hardware especializado y sus instrucciones los hacen eficiente en sus cálculos matemáticos usado en los procesadores de señales digitales. Por ejemplo, desde que los procesadores involucran multiplicaciones repetitivas los procesadores de DPS tienen multiplicadores rápidos de hardware, explícitamente multiplican instrucciones y múltiples conexiones de bases en la memoria y recupere los datos una vez que los multiplique. Generalmente los procesadores de propósito general carecen de estas características especializadas y no son tan eficientes para ejecutar algoritmos de procesadores de señales digitales. Para algunos procesadores es más rápido su reloj o es más grande la cantidad de trabajo en cada ciclo de reloj, es rápido y puede completar las tareas de los DPS. En los más altos niveles de paralelismo, el significado es la habilidad de funcionar con las operaciones múltiples al mismo tiempo, tiene un efecto directo sobre la velocidad del procesador, asumiendo que su reloj de proceso no disminuye en proporción. La combinación de más paralelismos y las velocidades de reloj más rápidas han aumentado la velocidad del DPS desde su introducción comercial en 1980. Un producto de alta capacidad en los procesadores de señales digitales disponibles a partir del 2000 por Texas Instrument Inc., Dallas, por ejemplo es aproximadamente 250 de tiempo rápido que el procesador más rápido de la compañía que se ofreció en 1982. Aunque así hay algunas nuevas aplicaciones de procesadores de señales digitales tales como la tercera generación inalámbrica, están haciendo una excepción de la capacidad de los procesadores en curso. Cuando los procesadores mejoran la velocidad las aplicaciones se desarrollan o explotan toda la fuerza, entonces algunos diseñadores de procesadores continúan diseñando técnicas para aumentar el paralelismo y las velocidades de reloj. Cuantas instrucciones por ciclo de reloj Una diferencia entre las arquitecturas de procesadores es como muchas instrucciones son ejecutadas por un ciclo de reloj. El numero de instrucciones ejecutadas en paralelo y la cantidad de trabajo logrado por cada uno, afecta directamente al nivel de paralelismo del procesador que afecta a la velocidad del procesador por turno. Históricamente los procesadores de señales digitales son solamente una instrucción por el ciclo del reloj y han conseguido el paralelismo en varias operaciones respecto a cada instrucción. Un procesador de instrucción podría llevar a cabo una operación de múltiples acumuladores (MAC), cargan los dos nuevos datos de operación en registro y se incrementan los punteros de dirección. Los altos procesadores de propósito general tales como el Power PC de Motorola y el Pentium de Intel, generalmente consiguen el paralelismo haciendo varias ejecuciones mediante simples instrucciones por el ciclo de reloj. ¿Por qué la diferencia? Los altos procesadores de propósito general tales como los procesadores de señales digitales fueron diseñados para las aplicaciones originalmente consistentes en el costo, en el consumo de energía y el tamaño. Estos dependen solo de su arquitectura, porque son simples para implementar arquitecturas que son emitidas en más de una instrucción por el ciclo del reloj. Por lo tanto consumen menor área y menos poder. Como ampliar una instrucción Desde la cantidad de memoria que requiere un procesador para almacenar en el software afecta su costo, tamaño y consumo de energía, lo procesadores de instrucciones son diseñados con el objetivo de permitir programas muy compactos y consistentes. Así, que los procesadores convencionales usan una instrucción de palabra relativamente corta entre 16 0 24 bits de largo para codificar cada instrucción de múltiples operaciones. Mientras este hace uso eficiente en el programa de memoria tiene varias desventajas. Primero el contenido de las múltiples operaciones paralelas en una sola palabra de instrucción y esto quiere decir que las instrucciones son muy incomodas en los casos especiales y tiene restricciones. Donde están las restricciones, con los cuales registros puede ser usado y con cual operación puede ser combinado en una sola instrucción. Ahí simplemente no son suficientes los bits en la instrucción de palabra para soportar muchas combinaciones de diferentes registros y operaciones. Estas complejas instrucciones lo hacen complicado para crear compiladores de lenguaje de alto nivel eficientes para los procesadores. La mayoría de las personas que programan procesadores convencionales (a diferencia de aquellos que programan grandes unidades de procesamiento central o CPU) y la facilidad de la programación ofrecida por los lenguajes de alto nivel, y en vez de trabajar en el lenguaje ensamblador, esto tiene una desventaja importante para los procesadores convencionales en particularmente con la competencia, la mayor cantidad de compiladores para procesadores de propósito general han crecido. Una alternativa para muchas operaciones en un ciclo de instrucciones es usar la técnica común entre los procesadores de propósito general: que incluyen solamente una operación por instrucción y luego suministra un grupo de instrucciones en paralelo. Esto es llamado un múltiple asunto. Así, por ejemplo, la múltiple operación más temprana es la instrucción que podría estar dividida en solo 5 operación de instrucción: un MAC, y actualizar dos punteros de dirección. Cada instrucción individual es mucho más simple para ejecutarlos al mismo tiempo el procesador provee el mismo nivel de paralelismo de cómo hacer que un solo procesador ejecute todas como parte de una sola instrucción. Dos ventajas de este son el incremento de velocidad y la compatibilidad, el cual viene en el costo agregado de la arquitectura y la complejidad. El incremento de la velocidad es porque el uso de la simple instrucción simplifica la decodificación y la ejecución, permitiendo que los procesadores de múltiple asunto ejecuten muchos altos relojes (de 2 a 3 veces más altos que los niveles de paralelismo) de operación. La técnica de los procesadores de propósito general como el Pentium y el Power PC registran las velocidades lejanas y más altas que son vistas en los procesadores de hoy. Este estilo de instrucción permite más eficientes los compiladores, ya que los compiladores pueden comprender mejor y usar una simple operación de instrucción. Además implementan una arquitectura de múltiple asuntos que puede ser atractivo por que puede ser usado como una técnica para actualizar el funcionamiento de la arquitectura existente mientras se mantiene la compatibilidad de software en el nivel binario. Por ejemplo, el Pentium ejecuta el software escrito para la arquitectura del 486, pero ejecuta 2 instrucciones por ciclo (donde es posible) en vez de uno. Los clientes de múltiples asuntos pueden actualizar el funcionamiento de sus sistemas sin tener que recompilar su software (una consideración critica para los usuarios de PC, es que carece de acceso para el código fuente y para su software de aplicación). Los procesadores requieren más instrucciones (y por lo tanto más memoria de programa) implementan una sección dada en el software. Desde cada una de las instrucciones simples que estos procesadores convencionales DPS, mas instrucciones están requiriendo llevar a cabo el mismo trabajo. Además los procesadores de múltiples asuntos de arquitecturas usan instrucciones más amplias que los procesadores convencionales. Incrementa el ancho (por ejemplo, 32 bits en vez de 16) sobre todo evitan las limitaciones imponentes es decir, los registros pueden ser usados con operaciones (la amplia instrucción de palabra, la más distinta instrucción puede ser especificada, de esta manera permiten que las instrucciones respalden mas combinaciones de operaciones y los registros). El retiro de tales limitaciones hace mucho más fácil crear un eficiente compilador para el procesador. Sin embargo, la menor memoria utilizada por un procesadores mejor porque la memoria afecta su tamaño, costo y consumo de energía. Por lo tanto, las arquitecturas de múltiples asuntos requieren de más memoria de programa para sus aplicaciones. Es decir, donde es el último manejo. Los arquitectos de DPS han sido dispuestos a aceptar las desventajas de múltiples asuntos acerca de sus diseños de DPS. Además los arquitectos se dan cuenta de que sus clientes están presionando más duro para que los compiladores sean de mejor calidad, un punto débil para los DPS de mucho tiempo atrás. Es como las aplicaciones de los procesadores han crecido de cientos de líneas de códigos o decenas de miles de líneas, los beneficios del programa ha sido un lenguaje de alto nivel ya que es un factor obligatorio para los procesadores que emigran a las arquitecturas múltiple asunto. Los procesadores de propósito general previamente mencionados emplean arquitecturas de múltiples asuntos. Sin embargo, ahí existe una diferencia en el múltiple asunto es acerca de cómo son implementados estos procesadores. Las cuatro generaciones de los DPS Diseñadores de Tecnología Berkeley Inc. Procesador de señales digitales (DPS) con velocidades medidas, los BDTImark ilustran los cambios de velocidad en los procesadores, existen varias velocidades y aplicaciones que surgen en los DPS. Las altas calificaciones indican un rápido procesador. Nota en la figura 1.1. Los algoritmos que se utilizan a escala, tales como las velocidades que crecen dramáticamente en los últimos 15 años. El futuro de los DPS A lo largo de los años, muchos distribuidores han afirmado haber producido “el mundo más rápido de los DPS”. Una pregunta por declarar: quien se preocupa? En incorporar el funcionamiento de un procesador, es una tendencia en la que se concentra exclusivamente la velocidad. Pero para muchas aplicaciones de los DPS, la velocidad no es más importante en un procesador. A decir vedad, para las aplicaciones mas comercialmente importantes, es obtener la velocidad de procesamiento suficiente no es el desafío mas importante, esta se obtiene a un nivel apropiado de procesamiento mientras se minimiza el costo del sistema, el consumo de energía requiere capacidad de memoria, el tamaño del chip, el software de aplicación y el hardware. Estos factores deben ser tratados en contra de otros y sus aplicaciones diferente en cada uno. Tabla ll. La selección de los principales procesadores de DSP. Distribuidores Procesador Tipo de arquitectura Años de Introducción Notas Dispositivos Analógicos Inc. Norwood, Mass ADSP-21xx Convencional 1986 ADSP-2106x Convencional 1994 Bajos costos en DPS, usan una gran variedad de aplicaciones, como módems Procesadores de DPS de punto flotante para militares, audio y aplicación de imágenes. ADSP-2116x Convencional Mejorado 1998 Sucesor del 2106x agregando una sola instrucción múltiples datos con capacidad (SMID) 1998 Combinación del VLIW con extensos SIMD 2000 Tarjetas de telecomunicaciones y aplicaciones Solo una súper escala comercial de procesadores de DPS. LSI40xx Largas instrucciones de Palabra (VLIW) Super Escala DSP563xx Convencional 1995 bajos costos en DSP usados en aplicación de audio StarCoreSC140 VLIW 1999 Alto rendimiento de DSP justamente el centro de desarrollo Por Lucent Technologies y Motorola TigerSharc LSI Logic Corp. Milpitas, California Sector de Productos Semiconductores de Motorola Austin, Texas Sector de Productos y Agere Sistem Inc. Semiconductores de Motorola Allentown, Pa. Texas Instrumen Inc. Dallas, Texas En el cual ofrece chip basados en el SCI40 TMS320C54xx Convencional 1995 TMS320C55xx Limite VLIW 2000 TMS320C62xx VLIW 1997 TMS320C64xx VLIW 2000 Bajo costo y bajo poder de DSP entre un rango de Velocidad usada en los celulares. Sucesor del C54xx;VLIW, pero ejecutada solo dos Instrucciones por ciclo. El primer DSP VLIW comercial exitoso usado en infraestructura de telecomunicaciones y alto rendimiento Sucesor del C62xx agregado SMID 1.3. LA EVOLUCION DE LOS PROCESADORES DE DSP El numero y la variedad de productos que incluyen algunas formas de procesamientos de señales digitales han crecido dramáticamente durante los pasados 5 años. El DSP se ha hecho un componente para muchos consumidores como en; comunicaciones, medicina y productos industriales. Esto productos usan una variedad de hardware acerca de cómo implementar el DSP, se extiende del uso de los microprocesadores disponibles para una puesta en campo programable de arreglos (FPGAs) para circuitos integrados (ICs) para procesadores de DSP programables, una clase de microprocesadores para optimizar el DSP,. En comparación con una función fija, ellos tienen la ventaja de ser reprogramables potencialmente en campo, que permiten productos mejorados o fijos. Son más costosos y efectivos (y menos peligrosos) que el hardware, particularmente en bajos volúmenes de aplicaciones y donde el costo de desarrollo de circuitos integrados puede ser prohibido en comparación con otras clases de microprocesadores, el procesador de DSP tiene una ventaja de relación con las velocidad, el costo y la eficiente energía. En esta monografía seguimos la evolución de procesadores de DSP. Seleccionamos algunas diferencias entre las arquitecturas para comparar sus puntos fuertes y débiles. Definitivamente hablaremos de las clases de crecimiento de los procesadores de propósito general que han sido mejorados para las aplicaciones de los DSP. Los modelos de algoritmos y arquitecturas de DSP. Desde el principio de las arquitecturas de procesador de DSP tiene que ser modelados por los algoritmos de DSP. Para casi todas las características del procesador de DSP hay algoritmos que están asociados en cálculos. De alguna manera facilita estas características. Por lo tanto, quizás la mejor manera de la evolución de las arquitecturas de DSP han examinado los algoritmos e identificado como sus necesidades han influido en las arquitecturas de los DSP. Como un caso estudiado, nosotros consideramos una de las más comunes señales de procesamiento de algoritmos como el filtro FIR. Multiplicadores rápidos. Como en el filtro FIR es matemáticamente expresado, donde X es un vector de entrada de datos y la “h” es un vector de coeficiente de filtro para cada “Tap” en el filtro, un simple dato es multiplicado por un coeficiente de filtro, con el resultado agregado para el funcionamiento de la suma para todos los Taps (para una introducción de conceptos de DSP y la teoría de filtros). Por último, el principal componente del algoritmo del filtro FIR es un producto punto: multiplicar y agregar. Esta operación no es única para el filtro del algoritmo; a decir verdad, la multiplicación (es una combinación con la acumulación de productos) es una de las más comunes operaciones desempeñadas en procesamiento de señales así como la transformada de Fourier todos involucran el uso de multiplicar acumuladores de productos. Originalmente, los microprocesadores son implementados para la multiplicación por una serie de cambios y agregar las operaciones, el cual consume uno o mas ciclos de reloj. Sin Embargo en 1982 Texas Instruments lanzo el primer procesador de DSP comercialmente exitoso, el TMS32010 que incorporo un hardware especializado que permite que tenga sentido la multiplicación en un solo ciclo reloj. Como puede ser esperada la primera multiplicación de hardware produce mas rápido el funcionamiento en muchos algoritmos de DSP y por esta razón los procesadores modernos incluyen por lo menos un solo ciclo para multiplicar o combinar la unidad del MAC. Unidad de múltiples ejecuciones. La aplicación de los DSP tiene muy buenos requerimientos en comparación con otras clases de tareas, ya que deben de ejecutar los algoritmos de DSP (semejante como un filtro FIR) en el tiempo real en los segmentos largos de señales es de 10-100 KHZ o mas alto. Por lo tanto, los procesadores de DSP incluyen algunas unidades de ejecución independientes capaces de operar en paralelo. Por ejemplo, para la unidad de MAC, contiene una unidad lógica aritmética, (ALU) y un shifter. Acceso de memoria eficiente Ejecutando un MAC en cada ciclo se requiere más de un ciclo de unidad MAC, también requiere la habilidad de traer la instrucción MAC, un siempre dato y un coeficiente de filtro de memoria en un solo ciclo. Por lo tanto el buen funcionamiento requiere de una memoria alta para un ancho de banda que puede ser soportado en los microprocesadores de propósito general desde 1980, el cual contiene un solo bus de conexión a la memoria y puede hacer un acceso por ciclo de reloj. Para direcciones que necesitan incrementar el ancho de banda en la memoria, los procesadores han desarrollado arquitecturas de memoria que pueden soportar un acceso múltiple por ciclo. El más común es (todavía usado constantemente) es usar dos o más bancos separados en memoria por cada acceso que tiene y este puede ser su propio bus que pueden ser leídos o escritos durante cada ciclo de reloj. Las instrucciones son guardadas en un banco de memoria, mientras que los datos son guardados en otro banco. Con este arreglo el procesador podría traer una instrucción y un dato operando en paralelo en cada ciclo de reloj. En la figura \ref{} se ilustra la diferencia entre las arquitecturas de memoria para los procesadores de propósito general, los procesadores DSP. Los algoritmos del DSP son semejantes al de un filtro FIR y ambos consumen dos datos de operandos por instrucción (por ejemplo un simple dato y un coeficiente). Una optimización comúnmente incluye un banco pequeño de RAM del procesador el cual es usado como una instrucción de memoria cache. Cuando un pequeño grupo es ejecutado repetitivamente la cache es cargada con esta instrucción, liberando esta del bus para que este sea usado en la extracción de los datos. Una alta memoria con un ancho de banda grande requiere mas soporte via hardware el cual estará dedicado