|
Complementos de sistemas electrónicos digitales |
Tema 1
|
Los sistemas microprocesadores se caracterizan por la capacidad de procesar información mediante la ejecución de programas (conjunto de instrucciones que se encuentran almacenadas en dispositivos de memoria de tipo RAM y ROM) gracias a que van provistos de un módulo denominado CPU, que es el encargado de interpretar secuencialmente las instrucciones y de realizar la tarea programada. Esta capacidad les permite ser sistemas de propósito general que pueden ser utilizados en infinidad de aplicaciones con sólo cambiar el programa que han de ejecutar.
El hito más importante en la historia de la computación fue un artículo publicado por Von Neumann, en 1946, en el que se plantea la primera arquitectura abierta de un sistema microprocesador.
A modo de resumen puede decirse que, en la actualidad, un sistema microprocesador es un sistema digital basado en un microprocesador (dispositivo digital provisto de CPU) que se caracteriza por su capacidad para procesar información y que normalmente constituye un sistema electrónico de pequeño tamaño, elevada fiabilidad, poco tiempo de diseño y bajo coste si se compara con cualquier otro tipo de sistema electrónico.
En la actualidad, los dispositivos provistos de una (o varias) CPU se denominan microcontroladores, microprocesadores y DSPs y todos ellos se caracterizan por ser capaces de ejecutar programas ubicados en una memoria.
Un DSP es un microprocesador que posee una CPU de gran potencia y que está preparado para el tratamiento digital de señales en tiempo real y para la realización del mayor número de operaciones aritméticas en el menor tiempo posible.
En 1982 aparece el primer DSP de la familia TMS320 de Texas Instruments, el TMS32010, diseñado en tecnología TTL. Posteriormente se incorpora la tecnología CMOS al proceso de fabricación.
Los DSP son similares a otros microprocesadores y microcontroladores que se encuentran en el mercado con la salvedad de que su circuitería interna ha sido optimizada para la realización de funciones tales como el filtrado, la correlación, el análisis espectral, etc., de una señal de entrada al sistema.
Inicialmente, los DSP disponían de un mercado reducido (sólo se empleaban en sistemas que requerían una elevada potencia de cálculo, como ocurre en instrumentación electrónica de precisión, osciloscopios digitales, etc.) aunque, con la revolución y expansión relacionada con las telecomunicaciones, esta tendencia ha cambiado claramente.
En el gráfico podemos ver la evolución de las ventas de DSPs en los últimos años (datos reales en color oscuro y previsiones en color más claro).
Fotografía de varios microcontroladores: 80C32 de Intel, MC68HC11A8 de Motorola y PIC16C71 y PIC16F84 de Microchip.
Fotografía de un DSP, TMS230C32, de Texas Instruments y de un microprocesador pentium de Intel.
En conclusión, podemos decir que un DSP es un microprocesador orientado al procesamiento de señales digitales y a la realización de cálculos a alta velocidad. Estos microprocesadores se caracterizan por tener arquitecturas especiales, orientadas a la realización hardware de los cálculos que otro tipo de microprocesadores implementan vía software, mediante la ejecución secuencial de varias instrucciones.
La principal diferencia de los DSPs y otros procesadores modernos, es que los primeros se diseñan para ser escalables, es decir, se diseñan para poder operar en paralelo con otros dispositivos similares. Para ello, se le añaden periféricos de control y bloqueo del programa (como líneas de entrada-salida que pueden bloquear la ejecución de ciertas instrucciones si se encuentran a un determinado valor) y periféricos de entrada-salida de alta velocidad (como puertos serie síncronos) que permiten la conexión sencilla de varios DSPs para aplicaciones con multiprocesadores.
Las aplicaciones basadas en DSPs son cada día mayores en número. Actualmente cubren prácticamente todos los campos de la industria (telecomunicaciones, control, instrumentación, análisis de imagen y voz, automóvil, medicina). Esto hace que los fabricantes investiguen nuevas arquitecturas, y sobre todo, compiladores más inteligentes y mejores herramientas de desarrollo y depuración.
La principal tendencia en la mejora de las arquitecturas interna de los DSPs se enfocó inicialmente hacia el aumento del paralelismo del sistema. Recientemente han aparecido en el mercado DSPs con múltiples CPUs que pueden trabajar en paralelo (familia de DSPs TMS320C8x de Texas Instrument), grado de paralelismo que es directamente proporcional al número de operaciones que el DSP será capaz de realizar en un ciclo de reloj. En la actualidad, el fabricante Texas Instruments (uno de los más importantes fabricantes de DSPs) ha centrado el desarrollo de sus DSPs (lo que nos daría una idea de la tendencia actual de otros fabricantes) en tres grandes familias de DSPs, TMS320C2000, TMS320C5000 y TMS320C6000, buscando, respectivamente, la aplicación de sus estructuras microprocesadoras al control de procesos industriales que requieren un procesamiento complejo y un tiempo de respuesta bajo (como es el caso de las máquinas eléctricas, aquí se confunde el término DSP y microcontrolador de elevada potencia de cálculo), la optimización del consumo energético asociado a estos dispositivos (con utilidad en telefonía móvil, con idea de aumentar la disponibilidad de un teléfono con la misma batería) y el aumento de la potencia de cálculo del dispositivo (para poder implementar tareas cada vez más complejas en el DSP).
La programación de este tipo de procesadores, que incorporan muchos la posibilidad de procesamiento en paralelo de los datos por parte de varios DSPs, se hace cada vez más y más compleja. El empleo de lenguaje ensamblador complica la implementación de las aplicaciones software. Se hace preciso (más aún que en el caso de otros microprocesadores y microcontroladores) el empleo de lenguajes de programación a más alto nivel, que simplifiquen el desarrollo del software al usuario. Dado que estos sistemas se diseñan para el procesamiento de datos en el menor tiempo posible, este tipo de compiladores debe ser capaz de optimizar el programa en tiempo de ejecución, tarea que complica enormemente el desarrollo de los mismos.
Las principales alternativas que aparecen al uso de DSPs, son: