Aprovechamiento de los microcontroladores capacitados para cálculos con coma flotante en diseños embebidos
La incorporación de la capacidad para realizar cálculos matemáticos con coma flotante en los microcontroladores amplía el espacio de diseño en múltiples direcciones. Se pueden aprovechar las prestaciones de una unidad de coma flotante (floating-point unit, FPU) para incrementar la variedad y la precisión de los cálculos matemáticos; o bien puede aportar un mayor rendimiento en menos tiempo, facilitando así el cumplimiento de los requisitos en tiempo real; o también, al permitir que los sistemas completen rutinas en menos tiempo y pasen más tiempo en modo dormido, pueden ahorrar energía y prolongar la vida de la batería.
Números con coma flotante
Los números con coma flotante –del tipo A x 10B– se denominan así porque en esta representación numérica el punto decimal de la primera parte del número (A, la “mantisa” o “significando”) puede flotar libremente; se puede colocar en cualquier lugar, dependiendo de cuál se adapte mejor a los cálculos a realizar, y ajustar el valor del exponente (B) para mantener invariable la magnitud del número completo. Ver Figura 1: 1,234 x 106 es idéntico a 1234 x 103. La práctica más extendida consiste en presentar —y almacenar— números de forma normalizada con la coma situada detrás del primer dígito distinto a cero.
Para el ingeniero que trabaja con representaciones digitales de señales del mundo real —como audio de alta calidad— gran parte del valor que tiene recurrir a las matemáticas con coma flotante para el proceso recae no sólo en la libertad de ubicar el punto decimal en cualquier lugar, sino en la variedad de números que la notación puede representar. El estándar empleado con mayor frecuencia en cálculo y proceso de señal es IEEE 754, y dentro de él el denominado número de precisión única puede tener un valor perteneciente a un intervalo (decimal) de aproximadamente –1039 a +1039. La notación de coma flotante supone un tema completo por sí mismo, y una búsqueda en internet acerca de ello, o acerca de IEEE 754, ofrecerá información mucho más detallada de la que la mayoría de no matemáticos quisiera asumir, incluyendo el almacenamiento binario de números, el manejo de números “especiales” —como el cero— y distinciones detalladas entre coma flotante, coma fija y aritmética de enteros.
Con independencia del lugar en el que se encuentre el número dentro del rango, la parte de la mantisa siempre tiene unos 23 bit de resolución, por lo que se adapta bien a contenidos de señal como el audio de 24 bit.
Conservar la fidelidad de la señal
Es posible que los retos fundamentales a los que se enfrenta el ingeniero al diseñar una cadena de señal de audio no hayan cambiado desde que el contexto pasó del dominio analógico al digital. Las señales de audio tienen grandes rangos dinámicos con información, crítica para una fiel reproducción del contenido, que debe protegerse en ambos extremos del rango de la señal: el más fuerte y el más silencioso. A lo largo de la ruta de la señal de audio la señal se puede filtrar, mezclar, cambiar de nivel o amplificar en múltiples pasos del proceso. Cuando el trabajo de diseño pertenecía al dominio analógico, el diseñador tenía que monitorizar continuamente los niveles de la señal para que estuvieran por encima del nivel del ruido base, asegurando además que los picos del contenido no se acercaran demasiado a los niveles máximos de los amplificadores; siempre existía el riesgo de perder información al añadir ruido en el extremo inferior o recortar picos.
Se produce una situación análoga cuando la señal se maneja dentro del dominio digital. Los valores de los datos que representan el contenido deben pertenecer al rango de números definido para que la información no se pierda, bien sea por sobrecarga o ruptura. Numerosas etapas en el proceso de la señal, especialmente el filtrado, exigen realizar sucesivas operaciones matemáticas —sobre todo multiplicaciones— que pueden variar el valor absoluto de los datos en rangos muy amplios. Cuando el rango de números es limitado hay que poner especial cuidado en que la “ventana variable” de valores relativos —en el caso del contenido de audio, del más fuerte al más silencioso— se encuentre dentro del rango disponible; en el dominio analógico, fuera del ruido base pero por debajo de la tensión del carril de alimentación.
De forma convencional, los dispositivos de proceso de señal digital que emplean aritmética con coma flotante han venido siendo mucho más costosos que sus homólogos con coma fija. Una metodología empleada con frecuencia ha consistido en desarrollar una versión inicial de un proyecto de proceso de señal en el entorno de coma flotante, permitiendo que los valores numéricos adopten libremente un valor dentro del enorme espacio numérico disponible. Cuando los algoritmos están funcionando en conformidad a la especificación, el prototipo de convierte a hardware de coma fija de menor coste. Parte de este proceso implica la inspección de los valores numéricos que el producto en funcionamiento genera a lo largo de la cadena de señal, así como introducción de factores de escala en los puntos apropiados para conservar los valores dentro de los rangos de valores utilizables. También es válido el método opuesto: los responsables del proyecto pueden optar por introducir los diseños en un hardware de destino más costoso para acortar y reducir los costes del proceso de desarrollo.
La tecnología de proceso permite que las FPU sean pequeñas
Los dos métodos antes descritos se basan en la premisa de que los coprocesadores de coma flotante consumen una gran superficie de silicio, lo cual encarece los dispositivos. No obstante, la actual tecnología de fabricación de silicio hace que esto haya dejado de ser necesariamente cierto. Ahora es posible combinar un núcleo microprocesador de 32 bit —de los que constituyen el núcleo de un microcontrolador de gama media— con una unidad de coma flotante totalmente conforme a IEEE754 todo ello en una unidad económicamente viable. Por ejemplo, los microcontroladores AVR UC3 de Atmel ya ofrecen unas prestaciones muy elevadas para el proceso de señal digital, con soporte para aritmética de coma fija y de aritmética de enteros. La incorporación de una unidad de coma flotante de precisión única cambia las opciones disponibles para los diseñadores de diferentes modos.
El primero de ellos, a raíz de las observaciones antes mencionadas sobre los sistemas de números con coma flotante, es liberarse de muchas preocupaciones relativas a los rangos y las escalas de los números. Por medio de pasos sucesivos del proceso, y dado el amplísimo rango disponible, el valor de la señal puede (en gran medida) tomar cualquier valor absoluto que necesite; la información esencial —el rango dinámico de la señal— siempre estará contenido en la representación del número fraccional de 24 bit de la mantisa del número con coma flotante. Se elimina así la necesidad de vigilar constantemente la escala para conservar el número dentro de los límites.
Las ventajas que tiene una FPU integrada en el chip van, sin embargo, más allá de la simple libertad de diseño; se gana en rendimiento porque la FPU puede realizar en poco ciclos de reloj operaciones como multiplicación y división de precisión que consumen muchas decenas de ciclos en un núcleo no aumentado. En los dispositivos AVR UC3, la FPU ejecuta la mayoría de instrucciones con coma flotante de 32 bit en un solo ciclo, y una multiplicación con acumulación de 32 bit en dos ciclos de reloj, frente a los 30-50 ciclos que hacen falta para completar la misma operación aritmética sin una FPU. Este mayor rendimiento se puede aprovechar para aumentar enormemente la cantidad de proceso de señal que puede realizar un microcontrolador, o bien puede representar una notable reducción de la potencia necesaria para obtener una salida determinada.
MCU + FPU equivale a un espacio de aplicación más amplio
Existen numerosos ejemplos de diseños de sistemas “de misión crítica” en los cuales el código debe cumplir plazos programados en tiempo real, y que aprovechan la capacidad de realizar cálculos de alta precisión en unos pocos ciclos de la CPU. La transmisión de potencia en el automóvil representa uno de estos casos; una unidad de gestión del motor tiene que manejar las entradas del sensor con rangos dinámicos muy grandes, pero el tiempo disponible para completar cada ciclo de computación está totalmente definido por la rotación mecánica del motor. Se aplican restricciones parecidas a sistemas como ABS (frenos antibloqueo) o la suspensión activa. En el control del motor eléctrico con precisión, la capacidad de manejar grandes rangos de números también resulta valiosa porque los algoritmos exigen la aplicación secuencial de numerosas transformaciones complejas sin pérdida de datos por ruptura; no obstante, una vez más el tiempo para la computación queda establecido por el período de rotación del motor. En estos casos, la precisión y la velocidad suponen dos ventajas valiosas. El proceso de señal digital mediante FFT (la transformada rápida de Fourier) es un ejemplo que ya resulta familiar para muchos ingenieros que se enfrentan a problemas que se pueden solucionar gracias a la aceleración que proporcionan los cálculos matemáticos con coma flotante. En otro espacio de aplicación, el de los sistemas gráficos y de edición, la calidad visual de los resultados depende de los cálculos geométricos precisos que permiten mostrar texturas gráficas y tipografías de impresión. En este caso podría haber menos limitaciones en tiempo real pero las prestaciones y el rendimiento del sistema reflejan directamente la capacidad de la FPU de ejecutar cálculos en menos ciclos. Cada uno de estos sectores ha tenido acceso tradicionalmente a la coma flotante, pero los diseñadores que trabajan con núcleos de microcontrolador, en general, no han dispuesto de él.
La disponibilidad de aritmérica de coma flotante en este tipo de procesador altera la dinámica de la selección del dispositivo para muchos tipos de diseños, y en concreto en los dispositivos de audio de consumo. La cadena de señal de audio demuestra a las claras la ventaja que representa para el diseñador recurrir a una arquitectura de coma flotante. En muchos casos —probablemente en la mayoría de ellos— la fuente de señal será una representación digital que se convertirá en el formato del número requerido en unos pocos ciclos. En el extremo de la cadena de señal se devolverá al dominio analógico del mundo real; tras la normalización (una operación realizada en un solo ciclo) se aplicará un convertidor D/A a los números fraccionales tal como se representan en la mantisa, que contiene todos los datos que necesita. Toda desviación que haya experimentado la señal dentro de todo el rango de números con coma flotante sencillamente queda descartada; no se utiliza el exponente y la precisión máxima se habrá mantenido en todo el proceso.
Los diseñadores que trabajen en la captura y el proceso de señal en otros entornos —sistemas industriales o instrumentación médica— que igualmente necesiten ejecutar múltiples pasos de proceso sobre los datos y que tenga además un amplio rango dinámico comprobará que la integración de un núcleo de microcontrolador de aplicación general con una FPU cambia sus opciones. Anteriormente, una ruta de señal con proceso implementado en coma flotante implica inevitablemente combinar un microprocesador o microcontrolador con un DSP dedicado, con sus implicaciones en cuanto a coste, tamaño y consumo de energía. La opción de basar todo su diseño en un DSP a menudo se dejaba de lado porque el DSP carecía de la capacidad de asumir las funciones de control que exigía su proyecto.
Conclusión
Los mercados relacionados habitualmente con los microcontroladores —en los que factores como facilidad de conexión a señales y eventos de tipo externo, bajo coste y consumo de energía limitado han sido dominadores— no habían tenido acceso antes a los cálculos matemáticos con coma flotante.
El propio término FPU ha cargado con acepciones como complejidad, gama alta y sistemas a menudo basados en DSP. De hecho, ahora que el avance de la tecnología de proceso ha logrado que la FPU sea accesible a un abanico mucho más amplio de proyectos, los ingenieros podrán acceder a las ventajas de la precisión computacional, el amplio rango dinámico y la codificación simplificada que proporcionan los cálculos matemáticos con coma flotante.
Autor: Haakon Skar, Director de Marketing AVR, Atmel.
Articulos Electrónica Relacionados
- Microcontroladores PIC® de baj... Microchip anuncia la ampliación de sus microcontroladores eXtreme Low Power (XLP) PIC® con la familia PIC24F “GB2”. Esta nueva familia integra un motor cr...
- Dispositivo controlador orient... FTDI Chip anuncia el FT51, el segundo de sus dispositivos controladores orientados a aplicación (application oriented controller, AOC). Este microcontrolador de...
- MCUs Giant Gecko Series 1 de S... Mouser Electronics, Inc. tiene disponibles los microcontroladores EFM32GG11 Giant Gecko Series 1 de Silicon Labs. Parte del portafolio EFM32® Gecko ecol&oac...
- Microcontroladores Microchip P... Microchip anuncia, desde EE Live! y la Embedded Systems Conference en San José, la familia PIC16(L)F170X y PIC16(L)F171X de microcontroladores de 8 bit, que com...
- Microchip MCU PIC32CM Lx con s... Mouser ofrece ya los microcontroladores de muy bajo consumo PIC32CM LE00, LS00 y LS600 (PIC32CM Lx) de Microchip Technology. Cada uno de los microcontroladores ...
- Una tecnología que abarca las ... Los expertos del sector sanitario creen que deben cambiar muchas cosas para afrontar los retos de la vida moderna. Los dos retos principales son el hecho de que...
- Controladores de sensado mTouc... Microchip anuncia la ampliación de su catálogo de sensado MTCH10x mTouch® con los controladores táctiles capacitivos MTCH102-5-8. En un...
- ¿Son verdaderamente necesarias... Elevando la tensión con una sola batería se pueden sustituir varias baterías y reducir tanto los costes como el tamaño, tal como explican Jason Tollefson, Mikha...
- Próxima generación de procesad... Este artículo presenta el MPU RZ/V2H, que permite tanto la IA de visión como las capacidades de control en tiempo real. A medida que disminuya la población acti...
- Microcontrolador Renesas R9A02... Mouser ya tiene en stock los microcontroladores (MCU, por sus siglas en inglés) de baja potencia R9A02G021 de Renesas Electronics. El R9A02G021, que ofrece a lo...
- Microcontroladores Infineon XM... Infineon Technologies presenta su nueva familia de microcontroladores XMC4000 de 32 bits, que utiliza el procesador ARM® Cortex™-M4. En el diseño de esta famili...
- Microcontrolador basado en ARM... Toshiba Electronics Europe (TEE) ha anunciado un nuevo microcontrolador basado en ARM® CortexTM M3®, que permite controlar tanto mecanismos de accionamiento por...