[C con Clase] MIPS

- - marchi.hh en gmail.com
Dom Mar 8 14:12:41 CET 2009


Hola Bernardo,

El tema de contabilizar las instrucciones que un microprocesador puede
ejecutar en determinado lapso de tiempo, como medida de la capacidad de
procesamiento de un micro no es tan simple como decir "Este micro hace 10
operaciones por segundo y este otro 20, asi que el segundo es mas rapido."

Hay que tener en cuenta que no todas las instrucciones toman la misma
cantidad de ciclos (y en consecuencia de tiempo), esto depende en parte de
la instruccion en si (no es lo mismo la instruccion INC que MOV ), de los
operandos que pueda tener (no es lo mismo un direccionamiento inmediato que
uno extendido o indexado) y del microprocesador mismo (algunos
microprocesadores suelen tener muchos mas problemas con ramificaciones
incondicionales que otros).

En consecuencia un micro A puede ser mas rapido que un micro B para un
cierto programa C pero el micro B puede ser mas rapido para el programa D
que el micro A.

Por ponerte un ejemplo, los Athlon XP 3000+ solian tener mejor desempeño en
aplicaciones de aritmetica entera que un Pentium 4 B de 2.66 GHz, pero en el
caso de punto flotante se daba a la inversa (en parte por el hecho de las
instrucciones SSE del P4).


El hecho de usar el acronimo MIPS (millones de instrucciones por segundo),
suele aparecer haciendo referencia a grosso modo a la cantidad de
instrucciones que puede ejecutar cierta familia de microprocesadores, por
ejemplo un M 68000 tiene 1 MIPS, pero esto depende de la frecuencia a la que
este funcionando el chip, y el codigo que este ejecutando.
Otra situacion en a que podes encontrar el termino es en ciertos benchmarks
(por ejemplo Dhrystone) en donde el termino en realidad suele hacer
referencia a una consideracion distinta de lo que es una instruccion.


Se deduce de todo esto que pretender exponer el rendimiento de un micro por
medio de un numero es insuficiente.

Por otro lado si tu unica meta es solo obtener el numero de MIPS para cierto
programa cuyo fin sea este, podrias intentar contar la cantidad de
instrucciones del mismo y tomando en cuenta la cantidad de tiempo que toma
la ejecucion del programa calcular el promedio de instrucciones por segundo.


Saludos


2009/3/6 Bernardo Reyes <bernardo5304 en gmail.com>

> Un saludo a todos!
> ¿Desde C de que manera puedo saber el numero de instrucciones por
> segundo del micro?¿ Es posible hacerlo desde C o tengo que recurrir a
> ensmablador? ¿Pueden guiarme sobre el tema?
> Gracias!
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090308/9c4e47f1/attachment.html>


Más información sobre la lista de distribución Cconclase