Next Previous Contents

2. Hva er BogoMips

> Lars Wirzenius' wirzeniu@kruuna.Helsinki.FI forklarte en gang i en e-post, med informasjon fra Alessandro Rubini rubini@norgana.systemy.it og Wim van Dorst, hva BogoMips er:

`MIPS er en forkortelse for Millioner av Instruksjoner Per Sekund. Det er en måleenhet for beregnelseshastigheter for et program. Lik andre lignende måleenheter, er den ofte mer misbrukt enn brukt skikkelig. (Det er *veldig* vanskelig å sammenligne MIPS mellom forskjellige typer maskiner).

BogoMips er oppfunnet av Linus Torvalds. Kjernen ('eller var det en enhetsdriver?') trenger en tidsinstillingssløyfe (tiden er for kort og/eller trenger å bli altfor nøyaktig for en metode av ikke-opptatt sløyfe venting), som må bli kalibrert til hastigheten av prosessoren. Derfor måler kjernen under oppstarten av systemet hvor lang tid en opptatt sløyfe tar å kjøre på maskinen. "Bogo" kommer fra ordet "bogus", som betyr noe som er falskt. BogoMips verdien gir en indikasjon om prosessorhastigheten, men den er altfor useriøs til å kalles noe annet enn BogoMips.

Det finnes to grunner hvorfor BogoMips verdien er skrevet på skjermen under oppstart; a) det kan være nyttig for debugging og for å sjekke at datamaskinens turboknapp og Cache fungerer og b) Linus godter seg når han ser forvirrede folk på nyhetsgrupper.

BogoMips er avgjort i filen /usr/src/linux/init/main.c (en enkel C algoritme) og den vedrørende kjernevariablen loops_per_sec er brukt i mange forskjellige drivere med et seriøst formål. Den ordentlige delay funksjonen udelay() er i assembler, og derfor har hver linux-port sin egen definisjon i /include/asm/delay.h. loops_per_sec variablen og udelay() funksjonen er brukt i flere drivere, skriv:

cd /usr/src/linux # stedet hvor kjernekildekoden befinner seg
find . -name '*.[hcS]' -exec fgrep loops_per_sec {} /dev/null \; 
find . -name '*.[hcS]' -exec fgrep udelay {} /dev/null \;


Next Previous Contents