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 \;
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:23