Comparación del desempeño de microcontroladores AVR de 4ta generación
David M. Caruso, Salvador E. Tropea
(david@inti.gob.ar, salvador@inti.gob.ar)
Instituto Nacional de Tecnología Industrial Electrónica e Informática - DESoL
Introducción
En este trabajo, se presenta la medición de desempeño de microcontroladores AVR de 4◦ generación. Para la misma, se empleó el benchmark Dhrystone 2.1V, que a pesar de no ofrecer la medición más representativa, es el más utilizado hasta estos días en la industria. No existen resultados previos de dicho benchmark sobre este microcontrolador, dado que no posee RAM suficiente. Por lo tanto, para la evaluación se utilizó una descripción en VHDL ciclo a ciclo compatible con el AVR real, desarrollada y utilizada en nuestro laboratorio para trabajos previos.
Benchmark Dhrystone 2.1V
Es un pequeño benchmark sintético y comercial, aquí escrito en C, y de dominio público. Intenta medir la velocidad del sistema en cuanto a rendimiento no numérico, expresando los resultados en DMIPS (Dhrystones MIPS). Lo hace comparando el rendimiento del procesador con una máquina de referencia: la VAX 11/780, cuyo rendimiento es de 1 MIP. El algoritmo contiene muchas instrucciones simples, llamadas a procedimiento y condicionales, y pocas de coma flotante y bucles. No realiza llamadas al sistema. Usa pocas variables globales y ejecuta operaciones con punteros.
Arquitectura del hardware
El microcontrolador (AVR Atmega32), ejecuta el algoritmo Dhrystone 2.1V, que lee desde memoria (BRAMs). El bloque TIMER, le permite al microcontrolador hacer las mediciones de tiempo, para determinar la duración de la ejecución de cada etapa del benchmark. A través de la UART, se envían los resultados de la evaluación. Los dispositivos utilizados, se comunican internamente mediante el bus WISHBONE.
Sistema caché
Con el fin de liberar BRAMs de la FPGA, se optó bajar el código del Dhrystone 2.1V en una memoria flash. Como la misma poseía demoras en los cambios de página, que obligaban al microcontrolador a trabajar a una frecuencia menor a la deseada, se decidió crear un bloque denominado FLASH INTERFACE. El mismo, actúa como intermediario entre la flash y el micro. Es capaz de poner a este último en estados de espera, para así poder operar por ráfagas pudiendo alcanzar una velocidad promedio superior a la permitida por el cambio de páginas de la memoria.
BlockRam vs. Sistema caché
Se compararon las dos versiones previamente enunciadas, y aquí se muestran los resultados de síntesis y de la ejecución del benchmark.
System LUTs FFs Slices BRAMs Fmax Clock DMIPS BRAMs 1372 398 797 12 22.46MHz 16 MHz 5.94 caché 1428 416 837 4 29.79MHz 24 MHz 5.72
Comparaciones con otras CPUs
CPU
MHz DMIPS DMIPS/MHz
80286*
6 0.81
0.135
AVR 4◦G-BRam* 16 5.94
0.371
80386
40 4.53
0.113
80486 DX2 66 12.4
0.188
Pentium
100 32.2
0.322
Conclusiones
Contrastando contra otras CPUs, se ve que el nivel de desempeño de los AVR de 4◦ generación es igual o superior a una CPU 80286.
El bloque FLASH INTERFACE, actuando como un sistema de caché, permite operar al microcontrolador a una frecuencia mayor, ahorrando al mismo tiempo BRAMs.
* El compilador interpretaba a un entero en 16 bit.
Ver+/-