punto flotante

download punto flotante

of 22

Transcript of punto flotante

CAPITULO 5

Hardware para DSP

5.1. CONSIDERACIONES EN EL DISEO DEL HARDWAREEn este punto haremos un resumen de las distintas configuraciones de hardware bsicas disponibles para diseo con DSPs. Veremos en detalle algunos de los problemas y consideraciones que rodean a la implementacin de un sistema utilizando un dispositivo DSP monopastilla.

5.1.1 DISTINTAS ALTERNATIVAS AL DSPEs posible aplicar algoritmos de DSP en cualquier arquitectura de computador, como por ejemplo un PC, pero la velocidad a la que se desee procesar la informacin determinar la plataforma ptima para la aplicacin. Encontramos aqu una primera divisin bsica entre aplicaciones de DSP en tiempo real y las que no lo necesitan. Algunas aplicaciones en tiempo real pueden ser la reproduccin de audio, compresin del habla para comunicaciones mviles, etc. Aplicaciones que no necesitan proceso en tiempo real pueden ser por ejemplo las que analizan los datos de un sesmo, compresin de datos para almacenamiento, etc. Nosotros vamos a tratar el proceso de seales en tiempo real. Existen cuatro categoras de plataformas de hardware ampliamente utilizadas para la implementacin de DSP en tiempo real. Estas son: circuitos integrados DSP de propsito general, circuitos integrados DSP especiales, procesadores "bit-slice", y microprocesadores de propsito general. Algunos procesadores digitales de seal pueden ser, por ejemplo, los de la familia TMS320 de Texas Instruments, las familias DSP56000 y DSP96000 de Motorola, las familias ADSP2100 y 21000 de Analog Devices y la familia DSP16 y DSP32 de AT&T. Estos dispositivos son totalmente programables y por lo tanto muy flexibles. Todos ellos tienen tiempos de ciclo cortos y regularmente se actualizan las capacidades de los dispositivos a medida que avanza la tecnologa. Su rendimiento y flexibilidad permite la seleccin de un DSP estndar por compaa el cual puede ser utilizado para diferentes tareas de DSP sobre una misma plataforma hardware. Esto supone un ahorro en preparacin del personal, herramientas de desarrollo, software, etc. Los dispositivos comunes son producidos en gran volumen para algunos clientes, llevando consigo bajadas en los costes por unidad. Estos dispositivos de propsito general incorporan una serie de perifricos en el propio circuito integrado y conjuntos de instrucciones de uso general. Generalmente pueden ser utilizados como nico procesador en un sistema integrado monopastilla, sin necesidad de acudir a un sistema basado en un procesador principal y una serie de perifricos. Esto los hace extremadamente rentables en un amplio abanico de aplicaciones. Unas cuantas compaas como Zoran, Plessey y SGS Thomson Microelectronics (STM) producen DSPs dedicados para tareas especficas. Ejemplos pueden ser un circuito integrado de filtro FIR, un dispositivo de FFT o un motor de convolucin. Estos dispositivos son muy tiles cuando se requiere realizar una tarea muy

Pgina 119

CAPITULO 5

Hardware para DSP

especfica de DSP en un mnimo tiempo. Los DSPs especficos son capaces de realizar sus limitadas funciones mucho ms rpidamente que los DSPs de propsito general, debido a su arquitectura dedicada. La debilidad en este punto es la laguna existente respecto a herramientas de desarrollo estndar, el consiguiente largo ciclo de diseo, el coste de los componentes y la probable necesidad de utilizar un procesador principal en el diseo del sistema. Los dispositivos segmentados, tales como la familia del AMD29000 ofrecen un acercamiento a un diseo de DSP de alta velocidad. Estos componentes son bsicamente bloques definidos compuestos de multiplicadores, Unidades Aritmtico Lgicas, secuenciadores, etc. que se unen para formar una arquitectura de DSP a medida. El rendimiento suele ser considerablemente mayor que en los DSP de propsito general. Las desventajas son las mismas que con los dispositivos particulares: la laguna existente en cuanto a herramientas estndar de diseo, mayores tiempos de diseo y elevacin del coste de los componentes. Los procesadores segmentados se usan mayoritariamente en aplicaciones de DSP en el campo militar donde el coste y el tiempo de diseo son secundarios frente al rendimiento. Cualquier computador puede usarse para realizar funciones de DSP y esto es aplicable a las familias de microprocesadores como los M68000 de Motorola o los i86 de Intel. Estos micros no disponen de la arquitectura ni de las peculiaridades necesarias para facilitar las labores del DSP. En particular les falta un multiplicador hardware. Una operacin de multiplicacin en coma flotante que tardar un ciclo de reloj de 50ns en un DSP tpico puede llegar a tardar hasta 44 ciclos de 35ns en un M68030, es pues unas 31 veces ms lento. Los procesadores de propsito general slo son adecuados para procesos de DSP en los casos en los que slo se requiere una mnima cantidad de proceso de seales en un gran sistema. El rendimiento de estos dispositivos realizando funciones de DSP no es comparable ni siquiera con los DSP de propsito general ms baratos y no suelen ser una solucin econmicamente adecuada para realizar tareas importantes de DSP.

5.1.2 USANDO UN DSP DE PROPSITO GENERALNos concentraremos seguidamente en los temas relacionados con la implementacin mediante DSPs de propsito general, como pueden ser los miembros de la familia TMS320 de Texas Instruments. Veamos primero la arquitectura de dos de los dispositivos ms comunes, el TMS320C25 y el TMS320C30. Vamos a contrastar y comparar ambos dispositivos. El TMS320C25 es un procesador de coma fija de 16 bits con arquitectura Harvard (separacin de espacios de memoria para datos y programa). Este dispositivo incorpora una ROM programable por mscara, un multiplicador, unidad aritmtico lgica, registros de desplazamiento y tres bloques de RAM interna. Uno de estos bloques se puede configurar como memoria de datos o de programa. Los accesos a la memoria externa se hacen a travs de buses multiplexados de datos y direcciones. Estos buses se usan para cualquier acceso al exterior del dispositivo, bien sea memoria de datos o programa o espacios de entrada salida. Esto implica que los datos y el programa no pueden ser accedidos de forma simultnea.

Pgina 120

CAPITULO 5

Hardware para DSP

El TMS320C30 es algo distinto. La mayor diferencia es que este dispositivo no presenta una arquitectura tipo Harvard. Programa, datos y entradas salidas, estn mapeados dentro de los 16M palabras de espacio de direcciones. El acceso en paralelo a las diferentes reas de memoria se realiza a travs de los mltiples buses internos y del bus dual externo. Este dispositivo es un procesador de 32 bits en coma flotante, el cual incorpora dos bloques de RAM, una cache de instrucciones, un multiplicador, una unidad aritmtico lgica, registros, un controlador de acceso directo a memoria (DMA), una ROM programable, puertos serie y temporizadores.

5.1.3 DSPs DE COMA FIJA Y COMA FLOTANTECuando se revisa la informacin de distintos fabricantes se ve claramente que la divisin bsica entre los procesadores en las que los separa en dispositivos de coma fija y de coma flotante. Los de coma fija suelen ser de 16 o 24 bits de palabra, mientras que los de coma flotante suelen ser de 32 bit. Un dispositivo tpico en coma fija como puede ser el TMS320C25, almacena los nmeros en formato entero de 16 bits en complemento a dos. El aspecto importante es que aunque los valores del dato y el coeficiente son almacenados externamente con una precisin de 16 bits, los valores intermedios son tratados como nmeros de 32 bit de precisin en el acumulador, por lo que los errores de redondeo durante los clculos no son normalmente un problema. Es posible utilizar un pseudo-formato de coma flotante en un DSP de coma fija, pero la degradacin de la velocidad es tan grande que solo se aplica para tareas de administracin del sistema. Las funciones de DSP necesitan normalmente la mayor velocidad obtenida al utilizar el verdadero formato en coma fija. Esto significa que la utilizacin de un lenguaje de programacin de alto nivel con un DSP de coma fija puede suponer un compromiso. Los dispositivos de coma fija son normalmente ms baratos que los de coma flotante, contienen menos silicio y tienen menos patillas externas. Tambin suelen tener tiempos de ciclo ms cortos, del orden de 25 ns. Esto no implica que realicen las tareas de DSP ms rpidamente. Esto depende de la cantidad de cosas que un determinado dispositivo puede llegar a realizar durante un ciclo de trabajo, no de lo largo que sea su tiempo de ciclo. Un DSP tpico de 32 bits como el TMS320C30 almacena una mantisa de 24 bits y un exponente de 8. Los valores intermedios son almacenados en registros de 40 bits con una mantisa de 32 bits y un exponente de 8. Un nmero en formato de coma flotante pertenece al rango que va desde +(2-223)x2127 a 2128. Hay que recordar, sin embargo, que la resolucin mxima es de 24 bits y la cuantizacin debe considerarse en aplicaciones profesionales de audio digital. El amplio rango dinmico de los procesadores de DSP en coma flotante hace que dicho rango sea virtualmente ignorado en un diseo. Esto est en contraste con los diseos en coma fija, donde los factores de escala tienen que ser a menudo aplicados y el diseador debe protegerse contra posibles desbordamientos del acumulador.

Pgina 121

CAPITULO 5

Hardware para DSP

Los DSP en coma flotante tambin pueden usarse como procesadores en coma fija o procesadores de enteros. El TMS320C30 tiene un conjunto de instrucciones completo para permitirle operar como un procesador de coma fija de 24 bits con capacidad para almacenar resultados de 32 bits. Los procesadores de coma flotante son habitualmente ms caros que los de coma fija, esto se debe principalmente a que se utiliza un rea de silicio de mayor tamao para su fabricacin, pero tambin porque se suele utilizar encapsulados ms grandes y ms caros (los buses gemelos de 32 bit suelen necesitar de un elevado nmero de patillas). Los dispositivos de coma flotante pueden ser necesarios en aplicaciones en las que los coeficientes que intervienen varan en funcin del tiempo (por ejemplo en sistemas adaptativos), o en los que las seales y los coeficientes tienen un rango dinmico amplio, o en los que se requieren estructuras de memoria muy grandes como es el caso del proceso de imgenes. Otros casos en los que puede estar justificada la utilizacin de los dispositivos de coma flotante es cuando los costos de desarrollo son elevados y los volmenes de produccin limitados. El rpido ciclo de desarrollo para un dispositivo de coma flotante puede fcilmente compensar el coste extra de los componentes. Los procesadores de coma flotante permiten tambin el uso eficiente de los compiladores de alto nivel y reducen la necesidad de identificar totalmente el rango dinmico del sistema. Vamos a ver detalladamente las diferencias entre los formatos de coma fija y de coma flotante y las implicaciones que tienen para el diseo de sistemas de DSP.

5.1.4 ARITMTICA DE COMA FIJA.En formato binario, un nmero puede ser representado como una magnitud con signo en la que el bit de mayor peso representa el signo y el resto de bits representa la magnitud:

+52 (decimal) = 34 (hex) representado como 0011 0100 (binario) -52 (decimal) =-34 (hex) representado como 1011 0100 (binario)

Ya hemos mencionado que los dispositivos de DSP de coma fija utilizan un formato numrico conocido como de complemento a dos. Un nmero positivo se representa como un valor binario simple. Las diferencias respecto a la aritmrica binaria convencional vienen con los nmeros negativos. La figura 5.1 muestra un ejemplo de nmeros positivo y negativo en complemento a dos, utilizando nmeros de 4 bits. Este principio se extiende fcilmente para nmeros de 16 bits.

Pgina 122

CAPITULO 5

Hardware para DSP

MSB Valor del Bit -23

LSB 22

2

1

20 1 1 1 1 1 1 0 = 4+2+1 = -8+4+2+1 = 4+1 = -8+4+1 =5 = -3 =1 =7 = -1 = -8

-8 0 1 Menos Positivo Ms Positivo Menos Negativo Ms Negativo 0 0 1 1

4 1 1 0 1 1 0

2 0 0 0 1 1 0

Figura 5.1 - Ejemplo de formacin de un nmero de 4 bits en complemento a dos

La gran ventaja de la aritmtica de complemento a dos es que solamente es necesario un sumador para nmeros positivos y negativos. Una suma siempre dar el resultado correcto para la suma y la resta (sumando un nmero positivo y otro negativo). Una ventaja aadida es que si se sabe que el resultado final est dentro del rango de los nmeros del procesador, un desbordamiento intermedio puede ignorarse hasta que se produzca el resultado final. Con 4 bits, recordando que el bit ms significativo es el bit de signo el mayor nmero positivo que se puede representar es +7, y el mayor nmero negativo es -8. Por simple extensin de la figura 5.1, un nmero de 16 bits puede variar entre +32.767 y -32.768. Hay que hacer notar que los nmeros en complemento a dos son una convencin de programacin y usualmente no son proporcionados por la conversin analgica a digital. Los nmeros negativos deben convertirse en complemento a dos a partir de una magnitud con signo. Las diferencias frente a la aritmtica binaria convencional (magnitudes con signo) llega con los nmeros negativos. Para obtener -56 (decimal) como un nmero en complemento a dos, debemos realizar una pequea suma:

Pgina 123

CAPITULO 5

Hardware para DSP

-5610 como magnitud binaria con signo Eliminamos bit de signo Complemento a 1s Sumamos 1 para complemento a dos El complemento a dos es

10111000 00111000 11000111 + 1

11001000

Por otra parte, -56 (decimal) es representado 11001000 en binario en complemento a dos. Si sumamos los complementos a dos de 56 y -56 da : 00111000 +11001000 00000000 tal y como se esperaba.

Figura 5.2 - Formacin de nmeros negativos en complemento a dos

Para todos aquellos que no estn familiarizados con la aritmtica binaria de complemento a dos, vase primero la figura 5.3 para una descripcin de la suma y la resta. Ntese particularmente que en la suma de cuatro nmeros el acarreo no est siempre en la columna adyacente, sino que puede estar dos columnas ms hacia la izquierda. Por ejemplo, cuando se suman cinco unos el resultado es 101, llevando el acarreo dos columnas ms hacia la izquierda. Una resta en aritmtica de complemento a dos es lo mismo que la suma de un nmero positivo y un nmero negativo. El primer paso es negar (hacer el complemento a dos) el sustraendo y entonces realizar una suma usando este nmero negativo. El complemento a dos se forma segn se muestra en la figura 5.2. Ahora necesitamos saber qu hacer con la suma de los bits ms significativos. En este caso la suma produce un acarreo a la izquierda de un uno. De hecho podemos ignorar este acarreo puesto que el nmero negativo tiene un uno en cada posicin a la izquierda de su propio bit ms significativo (111010 es lo mismo que 11010 y as sucesivamente).

Pgina 124

CAPITULO 5

Hardware para DSP

Suma 00 00 00 00 acarreo 1 acarreo 1 acarreo 10 0101 (5) 0100 (4) 1101 (13) 0111 (7) 1 1 1 0 01 1101 (29)

Resta 01 11 11 11 sin acarreo sin acarreo acarreo 1 acarreo 10 Ignora acarreo 1100 (+28) 1100 (-4) 0000 (-16) 1110 (-2)

1 10 10 00 0110 (+6)

Figura 5.3 - Suma y resta con nmeros en complemento a dos

Es muy conveniente entender perfectamente la aritmtica binaria del complemento a dos pues aunque todas las operaciones las realiza el DSP, ser muy til para poder depurar los programas correctamente. Lo ms conveniente es practicar unos cuantos ejercicios por uno mismo para lograr ese entendimiento. Podemos ver la figura 5.1 para cerciorarnos de que realizamos el complemento a dos de forma correcta. Para un ejemplo ms complicado miremos la figura 5.4 que describe una multiplicacin. Los pasos a seguir son exactamente los mismos que para la multiplicacin decimal excepto para el producto parcial final cuando el multiplicador es negativo. Puesto que el bit ms significativo es el bit de signo, el producto parcial final es el complemento a dos del multiplicando. El ejemplo de multiplicar dos nmeros negativos es algo ms complicado. Ntese que los dos primeros productos parciales sern nmeros negativos y deben tener su bit de signo extendido a la izquierda para preservar su valor final en la suma final. El ltimo producto parcial es tambin el complemento a dos del multiplicando.

Multiplicando Multiplicador

Recordando que el MSB es un bit de signo, el producto final parcial es el complemento a dos del multiplicando En un acumulador de 8 bits, ste ser

0100 (+ 4) x1101 (- 3) 0100 0000 0100 1100 1110100 (-12) 11110100 (-12)

Figura 5.4 - Multiplicacin con nmeros en complemento a dos

Pgina 125

CAPITULO 5

Hardware para DSP

La representacin binaria descrita no tiene ninguna coma binaria ni representa fracciones. En el proceso de seales, es muy comn representar los nmeros como fracciones. La razn es que cuando se multiplican nmeros fraccionarios (p.e. 0,990,99), el resultado siempre ser menor que la unidad y nunca existir un desbordamiento. Esto supone una gran ventaja cuando se tiene en cuenta rigurosamente el rango dinmico. Necesitamos utilizar una coma binaria implcita para representar fracciones binarias, y es aqu cuando las cosas parece que se complican. Seguidamente explicaremos como hacer para entender el cdigo que usa fracciones binarias. La localizacin de la coma binaria no afecta ni a la unidad aritmtica ni al multiplicador en el DSP. Slo afecta a la exactitud del resultado y a la posicin de la que ste debe ser ledo. La coma binaria es una simple convencin de programacin y no tiene ninguna relacin con el hardware. A la hora de realizar la mayor parte de las arquitecturas de 16 bits de los DSP de la familia TMS320 de coma fija, los nmeros se representan en el formato conocido como Q15. El nmero que sigue a la letra Q representa la cantidad de bits de la parte fraccionaria. Esto implica que en el formato Q15 cada nmero est representado por un bit de signo, 15 bits de parte fraccionaria y ningn bit de parte entera. El formato Q15 es el ms comnmente utilizado en el DSP de coma fija TMS320C25. La instruccin 'Multiply Immediate' (MPYK) utiliza el formato de 13 bit Q12, donde la constante de 13 bit es una parte de la palabra de instruccin. Los principios de formacin del formato Q son fcilmente entendibles si nos referimos a la figura 5.5. Muestra algunos de los nmeros de 4 bits Q3, o sea, un bit de signo, tres bits fraccionarios y ninguna parte entera. Los principios de suma y resta son exactamente los mismos que para los enteros binarios y se muestran brevemente en la figura 5.6. Ntese que la coma binaria permanece esttica exactamente igual que en la suma y la resta decimal. La figura 5.7 muestra un ejemplo de multiplicacin. Una vez ms se estn usando dos nmeros en formato de 4 bit Q3. El resultado es en formato Q6. Comprese cada paso con el ejemplo decimal y se ver como el desplazamiento de la coma binaria resulta obvio.

Pgina 126

CAPITULO 5

Hardware para DSP

MSB Valor del Bit -20

LSB 2-1

2

-2

2-3 0.125 1 1 1 1 1 0 = 0.5+0.25+0.125 = -1+0.5+0.25+0.125 = 0.5+0.125 = -1+0.5+0.125 = 0.625 = -3 = 0.125 = 0.875 = -0.125 = -1

-1 0 1 Menos Positivo Ms Positivo Menos Negativo Ms Negativo 0 0 1 1

0.5 1 1 0 1 1 0

0.25 0 0 0 1 1 0

Figura 5.5 - Ejemplo de fraccin binaria en formato Q3

Suma (Q5)

Resta (Q5) (sumando nmeros positivos y negativos) 0.0 0.0 0.0 0.0 0101 (0.15625) 0100 (0.125) 1101 (0.40625) 0111 (0.21875) 1 1 .1 0 0.1 1101 (0.90625) 0.1 1.1 1.1 1.1 sin acarreo sin acarreo acarreo 1 acarreo 10 Ignora acarreo 1100 (+0.875) 1100 (-0.125) 0000 (-0.5) 1110 (-0.0625)

acarreo 1 acarreo 1 acarreo 10

1 1.0 10. 0.0 0110 (+0.1875)

Figura 5.6 - Suma y resta con fracciones binarias

BINARIO Multiplicando (Q3) Multiplicador (Q3) 0.100 1.101 0100 0000 0100 1 100 1.110100

DECIMAL +0.500 -0.375 2500 3500 1500 -0.187500

Resultado en Q6

Figura 5.7 - Multiplicacin con fracciones binarias

Pgina 127

CAPITULO 5

Hardware para DSP

Volviendo a la referencia anterior al TMS320C25, la forma ms comn de multiplicacin es con dos nmeros Q15. El resultado est en formato Q30 y tambin representa una fraccin. El resultado tiene 30 bits fraccionarios, dos bits de signo y ningn bit entero.

-0.5 +0.5 -0.25

1.100 0000 0000 0000 0.100 0000 0000 0000 11.11 0000 0000 0000 0000 0000 0000 0000

Para almacenar el resultado como un nmero en formato Q15, se realiza un desplazamiento de un bit a la izquierda para eliminar el bit de signo extra y los 16 bits de ms a la izquierda son los que se almacenan. El resultado precedente es almacenado como 1.110 0000 0000 0000, que es la representacin en complemento a dos del -0.25. Una multiplicacin no puede provocar jams un desbordamiento con nmeros fraccionarios, pero sumas sucesivas pueden provocarlo. El TMS320C25, al igual que otros dispositivos en coma fija de la misma familia, dispone de un mecanismo para protegerse contra desbordamientos y avisar si se producen. Este es el "modo de saturacin" en el cual el acumulador de 32 bits se llena al mximo o al mnimo de su valor pero no lo desborda. Esto tiene un efecto similar al recorte de una onda analgica. Hay un bit en el registro de estado que se pone a uno si se llega a la saturacin. El modo de saturacin es muy til, puesto que pueden ocurrir resultados imprevisibles en caso de que el acumulador desborde. Esto podra ser desastroso en un sistema de control. Simplemente hay que considerar el efecto de un error aritmtico resultante del desbordamiento del acumulador en un controlador de temperatura en un proceso de soldado por refusin. Habiendo dicho que el efecto de recorte tampoco es deseable en los sistemas de DSP, se deben aplicar factores de escalado a las seales de entrada o a los resultados intermedios para asegurar que estos efectos no lleguen a producirse.

5.1.5 CUANTIFICACIN Y ESCALADO EN DSPs DE COMA FIJAEn aplicaciones como las de control y las de audio digital de alta calidad, el efecto de la longitud finita de palabra puede ser crtico. En procesadores de coma fija, las seales y los coeficientes deben escalarse para que entren dentro del rango dinmico y la longitud de palabra del procesador. Al igual que los efectos de cuantizacin en un convertidor analgico digital, los efectos debidos a la longitud finita de palabra aparecen como ruido en el sistema. Cuando diseamos un filtro digital, los coeficientes del filtro son cuantificados de forma que sean menores o iguales a la longitud de palabra del procesador de forma que puedan almacenarse en la memoria de

Pgina 128

CAPITULO 5

Hardware para DSP

programa. Esto significa que el funcionamiento del filtro digital ser ligeramente diferente respecto a las especificaciones del diseo. La cuantificacin hace ms significativo el ajuste a la especificacin del filtro y adems afecta ms a los filtros IIR que a los FIR. Los filtros FIR son estables incondicionalmente, pero los coeficientes de cuantificacin pueden causar serios problemas en los filtros IIR en los que los polos pueden ser empujados justo de dentro a fuera del circulo unidad, causando inestabilidad. En la mayor parte de los sistemas de DSP los coeficientes cuantificados entre 12 y 16 bits no causan cambios en el modo de operacin. Una segunda forma de cuantificacin aparece cuando el resultado del procesado de la seal es truncado o redondeado. La entrada y la salida de un sistema puede ser de valores de 16 bits, pero no mantener la exactitud, los valores intermedios pueden requerir de una mayor precisin. Por ejemplo, una multiplicacin de 1616 bits necesita 32 bits para almacenar la mxima precisin del resultado. Cuando el dispositivo dispone de un acumulador de 32 bits no hay problema. El problema puede ser con la memoria cuyas posiciones son de 16 bits. Existen instrucciones especiales que permiten el almacenamiento de los 32 bits del acumulador en las posiciones de memoria de 16 bits. Afortunadamente, normalmente solo nos importan (en la mayor parte de los casos) los 16 bits ms significativos de un resultado para reconvertir la seal a analgica. Siempre que el programa se escriba cuidadosamente es bastante posible asegurarse que el redondeo o el truncado se produce solo en el paso final del clculo. Con el uso de un escalado adecuado de los valores de la seal, de los coeficientes o de ambos, podemos minimizar o eliminar el efecto de la cuantificacin de la seal causado por el truncaje, redondeo o desbordamiento. El factor de escala debe ser elegido cuidadosamente, teniendo en cuenta la translacin de los valores de entrada y de salida (o sea, el rango de tensin en el que estn trabajando los convertidores A/D y D/A) y la necesidad de prevenir el desbordamiento intermedio o la saturacin. Es posible reducir la cantidad de escalado necesario alterando la estructura de una funcin de transferencia. La forma en cascada es normalmente preferible a la forma directa. Esto permite que el escalado sea aplicado a cada subestado, reduciendo las seales solo lo necesario para prevenir el desbordamiento en ese estado. Esto es preferible a aplicar todo el escalado requerido a la entrada puesto que as se reduce el efecto de cuantificacin de la seal que pudiera ocurrir. Hay algunos casos como en ciertos algoritmos para procesamiento del habla donde la forma en cascada no da esta ventaja. Podemos utilizar programas de simulacin para determinar la mejor manera de escalar nuestro sistema. La figura 5.8 muestra el multiplicador, ALU, acumulador y el hardware asociado interno al TMS320C25. Incluye mecanismos para tratar con las consecuencias de la aritmtica de coma fija. El multiplicador toma los datos de entrada en forma de dos nmeros de 16 bits o uno de 16 bits y otro de 13 bits (multiply immediate). El registro de desplazamiento de la salida del multiplicador permite que los bits de signo extra producidos sean eliminados de forma que quede un nmero de 16 bits en complemento a dos para Pgina 129

CAPITULO 5

Hardware para DSP

almacenarse o enviarse al exterior. Ntese tambin que tanto la parte baja como la parte alta del acumulador pueden ser almacenados de forma separada en memoria para ser ledos despus obteniendo la precisin de 32 bits completa. Hay que realizar un esfuerzo extra en la programacin de los DSP de coma fija si la comparamos con los de coma flotante, pero tambin hay ms ventajas. El costo ms bajo en los DSP de coma fija est alrededor de una dcima parte del costo del dispositivo en coma flotante ms barato. Si la tarea a realizar se puede hacer con un DSP de coma fija, esta ser la solucin ms viable econmicamente. El coste extra en la programacin no suele ser apreciable frente al ahorro producido en el coste de los dispositivos para volmenes de produccin. Por supuesto, si solo se van a fabricar uno o dos sistemas, el balance debe favorecer el menor ciclo de desarrollo que se obtiene con los dispositivos en coma flotante.

Pgina 130

CAPITULO 5

Hardware para DSP

Bus de Programa Bus de Datos

16 Reg. Desplazam. (0-16)

16 TR (16)

16 Mux 16

16

Multiplicador

PR (16) 16 32 Reg. Desplazam .(-6, 0,1,4)

32 Mux 32

32

ALU (32)

C

ACCH (16) 32

ACCL (16)

Reg. Desplazam.

16

Figura 5.8 - Multiplicador, ALU, acumulador y hardware asociado del TMS320C25

5.1.6 ARITMTICA EN COMA FLOTANTEEl formato estndar para los nmeros en coma flotante est definido por el Estndar del IEEE nmero 754.1985. Algunos dispositivos de DSP, incluidos los modelos TMS320C3x y TMS320C4x de Texas

Pgina 131

CAPITULO 5

Hardware para DSP

Instruments utilizan un formato especial de representacin de nmeros en coma flotante para los clculos internos. Esto significa que no son directamente compatibles con el estndar IEEE 754. Esto no supone un problema normalmente pues la compatibilidad es importante cuando se introducen nmeros desde otro sitio o se sacan los nmeros hacia otros dispositivos que si utilizan el estndar del IEEE. Para todos los clculos internos, no se requiere ningn formato especfico. Hay dos formas de alcanzar la compatibilidad: utilizar una rutina de conversin mediante programa (una simple instruccin en el TMS320C40) o utilizar un conversor ASIC externo (Application Specific Integrated Circuit - Circuito Integrado de Aplicacin Especfica -). En cualquier caso la sobrecarga debida a la conversin es normalmente insignificante comparada con el tiempo total de ejecucin del algoritmo.

BIT #

31 S

30 EXPONENTE MSB

23

22 FRACCION

0

LSB

MSB

LSB

S es el bit de signo de la mantisa (0=positivo, 1=negativo) EXPONENTE es un campo de 8 bits sin signo que determina la posicin del punto binario del nmero que est siendo codificado. FRACCION es un campo de 23 bit que contiene la parte fraccionaria de la mantisa. LSB es el bit menos significativo de un campo MSB es el bit ms significativo de un campo

Figura 5.9 - Formato de un nmero en coma flotante segn el IEEE 754

La figura 5.9 muestra el formato de nmeros de simple precisin en coma flotante que recomienda el estndar 754.1985 del IEEE. Ntese que es un formato de 32 bits y que encaja dentro del ancho del bus de un DSP de coma flotante. El estndar tambin define los formatos largos de precisin simple extendida, doble precisin y doble precisin extendido. La figura 5.10 muestra el formato numrico de coma flotante del TMS320. La diferencia ms obvia est en la posicin del bit de signo, pero hay algunas diferencias ms, por ejemplo, el exponente es un nmero en complemento a dos.

Pgina 132

CAPITULO 5

Hardware para DSP

BIT #

31 EXPONENTE MSB

24

23 S

22 FRACCION MSB

0

LSB

LSB

El valor decimal (v) de cualquier nmero X se determina como sigue: v = {(-2)S+(.FRAC)}2EXP donde: S es 0 1 FRAC es el equivalente decimal de FRACCION EXP es el equivalente decimal de de EXPONENTE Un formato equivalente para describir el formato de la mantisa en el TMS320 es como sigue: SS.FRACCION - Ntese que el bit a la izquierda del punto binario es implcito y es el complemento del bit de signo.

Figura 5.10 - Formato numrico en coma flotante del TMS320C30

La razn de esta diferencia frente al estndar del IEEE es que en un multiplicador hardware es ms sencillo de disear y ms pequeo (por tanto ms barato) en el formato del TMS320. Con la conversin que se puede realizar mediante la instruccin de un ciclo de duracin, la compatibilidad no es un problema, pero con las mejoras en la tecnologa de fabricacin y la disminucin en el tamao de las geometras, la ventaja respecto al tamao se hace menos importante y los nuevos DSP tendrn a utilizar el formato de los multiplicadores con formato del IEEE. Ambos formatos de coma flotante presentan un rango dinmico aproximadamente desde 2128 a 2-128 con una resolucin de 24 bits. Cuando se utiliza un procesador en coma flotante, factores como escalado y rango dinmico no son normalmente un problema, aunque vale la pena recordar que la resolucin de 24 bits significa que no tenemos necesariamente que descontar los efectos de la cuantizacin, particularmente en aplicaciones como el audio profesional.

5.1.7 VELOCIDAD EN SISTEMAS DE DSPTodos conocemos la incesante propaganda respecto a los PCs en lo referente a su velocidad de procesador: 33MHz 386, 66MHz 486, 100MHZ 486, 200MHz Pentium y as sucesivamente, pero cuando leemos artculos comparativos sobre mquinas similares, de repente descubrimos que algunas mquinas son mucho ms rpidas que otras respecto al rendimiento real. Los sistemas mal diseados pueden deber su baja eficiencia debido a pantallas lentas, discos lentos, arquitectura de memoria pobre, etc.

Pgina 133

CAPITULO 5

Hardware para DSP

Las especificaciones han llegado a ser la clave para vender PCs y hay tambin una gran cantidad de "maniticos de las especificaciones" en la industria de los semiconductores. Los procesadores digitales de seal no se escapan de esto y apelativos como MFLOPS, MIPS, MOPS, MBPS, etc. aparecen continuamente. Estos apelativos son, por supuesto, exactos, pero no nos proporcionan una gran cantidad de informacin respecto a que es lo que ser capaz de hacer un determinado DSP en nuestra aplicacin. En la tabla5.1 encontramos las definiciones de los apelativos aplicables a DSPs de coma flotante.

MFLOPS

Millones de Operaciones en coma FLotante Por Segundo. El nmero de operaciones de multiplicacin, suma, resta, almacenamiento, etc. en coma flotante que el procesador puede realizar en un segundo. Hay que tener cuidado con que estos apelativos sean sostenibles, esto es, que esta potencia sea mantenida durante el total del tiempo de ejecucin de una porcin de cdigo. Alguno de estos apelativos se aplica haciendo referencia a mximos de potencia. Millones de Operaciones Por Segundo. El nmero total de operaciones que el procesador puede realizar en un segundo. Aqu se incluyen los accesos a DMA, transferencia de datos, operaciones de E/S, etc. Da una basta idea de la potencia de procesamiento y E/S del procesador. Millones de Instrucciones Por Segundo. El nmero de instrucciones de cdigo mquina que el procesador puede ejecutar en un segundo. El problema clave es saber cuantas cosas puede hacer una instruccin. Los MFLOPs suelen ser una medida ms fiable de la potencia del procesador. Mega-Bits Por Segundo. Normalmente se refiere al ancho de banda de un bus particular o un puerto de E/S. Ofrece una medida del rendimiento en la transferencia de datos.

MOPS

MIPS

MBPS

Tabla 5.1 - Definiciones de trminos aplicables a los DSPs

Estos apelativos clasifican a cada procesador en una categora de rendimiento, pero son esos MFLOPS un mximo o un valor sostenido? Qu sucede al dispositivo si necesitamos acceder a un elevado nmero de datos que se encuentran fuera del circuito integrado? Las respuestas a dichas cuestiones no estn a menudo claras. Normalmente necesitaremos un gran esfuerzo para predecir el rendimiento de nuestro sistema antes de comprometernos en la eleccin de un DSP.

5.1.8 RECURSOS DE ACCESO A MEMORIALos sistemas de proceso digital de seales suelen tener complejos requerimientos de memoria. El cdigo de programa y los datos utilizados en las rpidas rutinas de los DSP deben estar archivados en Pgina 134

CAPITULO 5

Hardware para DSP

memorias rpidas para proporcionar un acceso rpido. El cdigo de inicializacin y los coeficientes pueden estar almacenados normalmente en memorias ms lentas y por tanto ms econmicas. Puede existir la necesidad de almacenar algunos datos en EEPROM, o memoria no voltil. Un ejemplo es el conjunto de caractersticas de una habitacin utilizado en un procesador programable para anlisis de sonido en campo. La mayor parte de los dispositivos de DSP tienen un simple interfaz para memoria y solo se requiere la utilizacin de lgica donde se necesite descodificar direcciones. La mayora de los interfaces de memoria de los DSPs estn proyectados para actuar con RAM esttica o EPROM, puesto que el uso de la RAM dinmica es bastante pesado. Esto es debido a que la RAM esttica es ms rpida y es la ms indicada para los sistemas diseados para realizar aplicaciones de DSP con tiempos de proceso crticos. Algunos DSP en coma flotante con grandes espacios de memoria direccionable (p.e. TMS320C40) disponen de seales de interfaz para permitir paginados relativamente rpidos o descodificacin de columna esttico para acceder a memorias dinmicas. Esto mantiene el coste de la memoria en grandes sistemas a unos niveles razonables sin suponer una gran merma en la velocidad del sistema. Podemos observar que casi todas las especificaciones publicadas respecto a los DSP se refieren a operaciones que se llevan a cabo ntegramente en el interior del circuito integrado. Esto significa que las especificaciones asumen que no es necesario que el dispositivo realice accesos al exterior. Normalmente esto es poco realista, pues casi siempre tendremos grandes tablas de datos o coeficientes, o un rpido flujo de datos con un convertidor Analgico a Digital externo. Mrese la cantidad de RAM disponible en un dispositivo. Puede almacenar las instrucciones crticas del programa y todos los datos y coeficientes necesarios? Si no es as, lo ms probable es que tengamos una merma en cuanto a velocidad debido al necesario acceso a la memoria externa. Tpicamente se requiere de uno o ms estados de espera del procesador para acceder a la memoria externa. En los primeros DSPs era necesario utilizar un descodificador de direcciones conectado a alguna circuitera lgica que produjera algunos estados de espera, de forma que era sta la que insertaba diferente cantidad de estados de espera para cualquier tipo de memoria que fuera a ser accedida. El circuito no es complejo, pero la lgica externa supone una desventaja respecto al coste y a los tiempos de acceso a memoria del sistema. Dispositivos como el TMS320C30 y TMS320C5x disponen de estados de espera programables por medio de los cuales se insertan estas esperas para acceder a los diferentes bloques de memoria del sistema. Lo nico que necesita hacer cualquier diseador es conectar sus perifricos o su memoria al bloque de direcciones apropiado y cargar el registro de estados de espera. Cuando se ponen en marcha estos procesadores lo hacen con el nmero mximo de estados de espera, de modo que se puede utilizar una EPROM lenta para el arranque. Para entender alguna de las implicaciones del uso de la memoria y la forma de acceder veremos el algoritmo de un filtro FIR realizado con el TMS320C25. La figura 5.11 muestra la RAM interna del Pgina 135

CAPITULO 5

Hardware para DSP

dispositivo. Vemos que hay tres bloques, o sea hasta 544 palabras. Uno de esos bloques (B0) puede configurarse como memoria de programa o de datos. El ncleo de un FIR en el TMS320C25 es la instruccin MACD (Multiply and ACcumulate with Data Move). La instruccin MACD suele ir precedida de la instruccin de repeticin (RPT) y se ejecuta repetidamente desde el registro de instrucciones hasta que se completa el bucle del FIR. El contador de repeticiones tiene un valor mximo de 255, por lo que para bucles mayores debe repetirse el la secuencia RPT/MACD. MACD multiplica un coeficiente en memoria de programa con un dato de la memoria de datos, almacena el resultado en el registro de producto (P), aade el valor previo del registro de producto al acumulador y mueve el dato a una posicin de memoria. Si nuestro filtro tiene 256 menos etapas, tanto los coeficientes como los datos pueden ser almacenados en los bloques internos de RAM. En este caso el ncleo del filtro FIR usa 3+n ciclos, donde n es el nmero de pasos. Si nuestro filtro tiene ms de 256 etapas, pero menos de 544, los datos muestreados pueden ser almacenados en la RAM interna, pero los coeficientes deben almacenarse externamente. En este caso el ncleo del filtro usa 3+n+np ciclos, donde p es el nmero de estados de espera necesarios para acceder a la memoria externa de programa. Si asumimos que el tiempo de acceso a la memoria es menor de 40ns, el TMS320C25 puede acceder a la memoria externa de programa sin utilizar estados de espera. En este caso no existe penalizacin en la velocidad debido al acceso al exterior. Si el programa externo necesita un estado de espera el tiempo necesario para calcular el FIR se duplica. Finalmente, si nuestro filtro tiene ms de 512 etapas, ambos, los datos muestreados (o algunos de ellos) y los coeficientes deben estar almacenados en memoria externa. El TMS320C25 tiene slo un bus externo para acceder a los datos, programa y direcciones de E/S, y los coeficientes deben ser intercalados. Esto hace que el filtro tarde 3+2n+nd+np ciclos, donde d es el nmero de estados de espera necesarios para acceder a la memoria externa de datos del sistema. Este ejemplo muestra varias caractersticas que deberamos buscar: puede el programa, los datos y los coeficientes estar en la memoria interna del dispositivo?; hay alguna restriccin en el acceso simultneo a los recursos internos al dispositivo?, y si es as, puede escribirse el cdigo de forma que esto no ocurra?; existe una cach de instruccin?; cuales son las penalizaciones debidas al acceso al exterior?. Las respuestas a todas estas cuestiones dependen del DSP que se vaya a evaluar. El modo de operacin ser diferente para cada dispositivo.

Pgina 136

CAPITULO 5

Hardware para DSP

Del Contador de Prebsqueda

De los Registros Auxiliares o del Puntero de Pgina y Direccin de Memoria Directa

16

16 16

MUX16

MUX

Bloque B2 (32 x 16) Bloque B1 (256 x 16) RAM Datos

16

Bloque B0 (256 x 16) RAM Programa/Datos16

16

MUX16 16

Al Bus de Programa

Bus de Datos (16)

Figura 5.11 - RAM interna del TMS320C25

El TMS320C30 es algo diferente en el manejo de los accesos a los recursos de memoria. Ya explicamos al principio del captulo que no presenta una arquitectura Harvard. La memoria interna de este dispositivo est dividida en tres bloques principales (ver figura 5.12), uno de ROM y dos de RAM. Tambin est la cach interna de programa, los mltiples buses internos y el bus externo doble. La arquitectura Harvard del TMS320C25 alcanzaba la velocidad a travs de la separacin de programa y datos y teniendo la capacidad de acceder a ambos simultneamente. El TMS320C30 alcanza su velocidad combinando programa y datos en el mismo espacio de memoria, pero teniendo la capacidad de acceder a diferentes reas de su memoria al mismo tiempo.

Pgina 137

CAPITULO 5

Hardware para DSP

CACHE (64 x 32)

RAM BLOQ. 0 (1K x 32)

RAM BLOQ. 1 (1K x 32)

BLOQUE ROM (4K x 32)

32

24

24

32

24

32

24

32

BUS PDATA

BUS PADDR /RDI /XRDY /HOLD /HOLDA /STRB R/W D31-D0 A23-A0 BUS DMADATA M U X BUS DDATA /MSTRB BUS DADDR1 M U X /IOSTRB B U S D E P E R I F XR/W XD31-XD0 XA12-XA0

BUS DADDR2

BUS DMAADDR 32 24 32 24 24 32 24

Contador de Programa / Registro de instrucciones

Controlador DMA

CPU

Figura 5.12 - Configuracin de la memoria interna del TMS320C30

Los buses de programa, datos y DMA son totalmente independientes. Es posible que el bus de programa lea una instruccin de la cach de programa al mismo tiempo que el bus de datos lee un dato del bloque 0 de RAM y el DMA escribe un dato en el bloque de RAM 1. El paralelismo va ms all incluso, pues hay dos buses de direccionamiento de datos y los bloques de memoria RAM interna del dispositivo son de doble acceso. De este modo pueden leerse dos valores de un mismo bloque de RAM de forma simultnea (o un valor de cada bloque) en un mismo ciclo. En el caso de un filtro FIR no habra problema con tamaos de hasta 1024 etapas y los datos y coeficientes pueden mantenerse en la RAM interna. Para tamaos ms grandes de filtros, de hasta 2048 etapas, uno de ambos, bien los datos, bien los coeficientes, requeriran estar en memoria externa. Esto no ralentizar la ejecucin, pues el TMS320C30 no tiene estados de espera en el bus primario de acceso al exterior. Para algoritmos en los que dos datos cualesquiera, coeficientes o programa estn almacenados externamente se

Pgina 138

CAPITULO 5

Hardware para DSP

produce una degradacin de la velocidad puesto que el bus de expansin solo puede acceder sin estados de espera a una cantidad de memoria limitada. El TMS320C30 est provisto de una cache de instrucciones y de un controlador de DMA, los cuales son muy apreciados para mejorar el rendimiento en la ejecucin de los algoritmos. La cache de instrucciones puede mantener hasta 64 instrucciones que pueden ser accedidas de inmediato. Esto puede ser til cuando la memoria externa es lenta, y es muy necesario para que un pequeo bucle de cdigo se ejecute rpidamente. El controlador de DMA dispone de una unidad de proceso separada para operaciones de E/S y de transferencia de datos. Los datos pueden ser transferidos, por ejemplo, desde un puerto serie a un bloque de memoria RAM interna sin ninguna intervencin de la CPU principal. La transferencia operar de forma transparente, o sea, no afectar a las operaciones de la CPU. Por ahora podemos ver que existe un amplio rango de problemas de diseo de hardware y de particionamiento del sistema que deben ser estudiados mientras se evala un candidato a DSP. Estos son muy diferentes para cada dispositivo de DSP. Todos estos problemas deben ser evaluados mediante un cuidadoso estudio de los datos proporcionados por el fabricante, pero esto puede ser un proceso muy costoso en tiempo. Para el diseo de un sistema importante vale la pena obtener programas de simulacin para los dispositivos candidatos y probar algunas cosas. Esto dar una ligera idea del comportamiento y las caractersticas del dispositivo en una aplicacin real. Una alternativa ms fcil, pero menos rigurosa es estudiar los resultados de varios probadores independientes (benchmarks). Estos cubren las funciones estndar del DSP como los filtros de diferentes longitudes y FFTs, quiz una DCT o funciones ms complejas. Revistas como EDN son una buena fuente. Los fabricantes tambin suelen proveer de rigurosos programas de prueba para sus propios dispositivos pero hay que tener cuidado con sus estudios comparativos. Un fabricante solo publica los resultados de pruebas comparativas de los algoritmos en los que sus dispositivos son particularmente buenos. Puede haber una longitud particular de FFT que entre perfectamente en su dispositivo, pero que necesita realizar accesos externos en un dispositivo de la competencia. Podemos encontrar que el rendimiento relativo est completamente reservado a diferentes longitudes de FFT. La optimizacin en el uso de la memoria es una de las peores reas para el diseador de sistemas, hay sin embargo varias posibilidades: memoria interna frente a externa, bucles frente a cdigo repetitivo, caches de instrucciones, controladores de DMA, etc. El objetivo es realizar la tarea de DSP en el tiempo disponible con la solucin ms eficiente, lo cual puede ser un desafo. No se pretende tener la solucin mgica a todas las preguntas puesto que cada DSP tiene su propia potencia y sus debilidades y sus propias caractersticas cuando llega la parte del diseo del subsistema de memoria. Probablemente la mejor aproximacin es mantener una mentalidad abierta cuando se evalan las posibles soluciones y hablar con los especialistas del propio fabricante cuando se tienen dudas. Pgina 139

CAPITULO 5

Hardware para DSP

5.1.9 INTEGRACIN DE DISPOSITIVOS PERIFRICOSEl nivel de integracin de perifricos en el DSP puede afectar a su rendimiento, coste del sistema y complejidad del mismo. Intuitivamente parecera que lo mejor al final del sistema sera integrarlo todo en una sola pieza de silicio. Esto ser posible para la mayor parte de las aplicaciones de gran volumen, pero nunca para aplicaciones de pequeo volumen de propsito general. Hay algunos perifricos como puertos serie o temporizadores que se encuentran en la mayora de los DSP. Hay otros como ADCs y DACs, salidas PWM, manejadores de eventos, etc. que es ms raro encontrarlos integrados. Toda rea de silicio cuesta dinero. Los temporizadores y los puertos serie son lo suficientemente pequeos y lo bastante usados como para que el incremento de coste sea pequeo y el inconveniente de comprar un dispositivo con un temporizador y no utilizar ste es un problema marginal. La situacin con los DACs y ADCs es bastante diferente. Hay dos problemas. Primeramente, no es sencillo integrar circuitos analgicos de precisin con lgica digital de alta velocidad en la misma pieza de silicio. Habrn interferencias, particularmente con el ruido generado digitalmente y que aparecera en la tierra analgica, alimentacin y referencias. El utilizar principalmente convertidores digitales como los sigma-delta ayudar y las soluciones integradas estarn cada vez ms disponibles.

Pgina 140