Page suivantePage pr�c�denteTable des mati�res

2. Que sont les BogoMips ?

D'apr�s Lars Wirzenius wirzeniu@kruuna.Helsinki.fi, courrier du 9 septembre 1993, expliquant ce que sont les BogoMips, et quelques informations compl�mentaires de Win van Dorst :

MIPS est l'abr�viation de Millions d'Instructions Par Seconde. C'est une fa�on de mesurer la vitesse de traitement d'un programme par un microprocesseur. Comme la plupart des unit�s de ce type, on l'utilise le plus souvent abusivement (il est tr�s difficile de comparer correctement les vitesses exprim�es en MIPS de diff�rents types de microprocesseurs).

Les BogoMips sont une invention de Linus. Le noyau (ou peut-�tre un pilote de p�riph�riques ?) a besoin d'une boucle d'attente (le temps d'attente est trop court ou requiert une trop grande pr�cision pour utiliser une autre m�thode qu'une attente active) qu'il est n�cessaire de calibrer en fonction de la vitesse du processeur sur lequel Linux s'ex�cute. Ainsi le noyau mesure lors du d�marrage la vitesse d'ex�cution d'une boucle d'instructions d�termin�e. Bogo vient de l'am�ricain bogus, qui signifie faux, bidon. Une vitesse en BogoMips donne donc une indication de la vitesse d'un microprocesseur, mais l'unit� est d�finie trop peu scientifiquement pour que l'on puisse l'appeler autrement qu'un BogoMips.

Les raisons (il y en a deux) pour lesquelles la mesure de cette vitesse est affich�e lors du d�marrage du noyau sont :

L'algorithme C qui calcule le nombre de BogoMips se trouve dans le fichier source /usr/src/linux/init/main.c, et c'est la variable du noyau associ�e loops_per_sec (boucles par seconde) qui est utilis�e par de nombreux pilotes pour des besoins plus concrets. La fonction d'attente � proprement parler udelay() est en assembleur, c'est pourquoi chaque portage en a sa propre d�finition dans /include/asm/delay.h. La variable loops_per_sec et la fonction udelay() sont utilis�s dans de nombreux drivers, regarder :

cd /usr/src/linux #o� la ou les sources sont stock�es
find . -name '*.[hcS]' -exec fgrep loops_per_sec {} /dev/null \;
find . -name '*.[hcS]' -exec fgrep udelay {} /dev/null \;


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:23