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