Como este que hace 1,49 DMIPS/MHz. Incluso con el pipelining, sólo hay una etapa de ejecución por ciclo, ¿no es así?
Respuestas
¿Demasiados anuncios?DMIPS y MIPS no son lo mismo. DMIPS son las siglas de "Dhrystone MIPS", y es un estándar para comparar el rendimiento de diferentes microcontroladores/microprocesadores en diferentes conjuntos de instrucciones. El estándar ya no es tan nuevo(*), así que lo que el procesador de referencia podría hacer a 1 DMIPS/MHz en 1 segundo puede llevarle a un controlador más avanzado 670 ms a la misma velocidad de reloj, simplemente porque hará algunas acciones en 1 instrucción mientras que el otro controlador puede necesitar 2 instrucciones, o una instrucción que requiera más ciclos de máquina.
Una arquitectura de 16 bits, por ejemplo, suele tener un mejor rendimiento de Dhrystone que una de 8 bits, y una de 32 bits, como la que mencionas, aún más.
(*) m.Alin se refiere a la más reciente CoreMark de referencia. Tenga en cuenta que esto está escrito en C, por lo que en realidad también está incluyendo el rendimiento del compilador en el resultado (al igual que Dhrystone, por cierto).
DMIPS es una medida relativa y no absoluta. A diferencia del MIPS, mide la rapidez con la que el uC puede hacer algo útil en lugar de la rapidez con la que ejecuta las instrucciones.
Como cualquier otro punto de referencia, tiene sus limitaciones, pero una forma sencilla de verlo es la rapidez con la que puede completar el código del punto de referencia en comparación con un VAX 11/780 (una máquina de 1 MIPS)
Así, por ejemplo, si tu uC completa el benchmark 100 veces más rápido que un VAX 11/780, tienes una máquina de 100DMIPS. Si se ejecuta a 100MHz, entonces se clasifica a 1 DMIPS/MHz.
Ten en cuenta que los DMIPS anunciados suelen ser inalcanzables en el uso normal, especialmente en los grandes uCs con velocidad de flash, prefetch, tiempos de espera/perdidas, etc. Aquí es una buena discusión sobre el rendimiento del PIC32 DMIPS. Este enlace tiene algo de código Dhrystone para microcontroladores.