BogoMips

BogoMips is een manier om de snelheid van een computer te bepalen. In Linux wordt dit door de kernel bij het opstarten gemeten en op het scherm getoond tussen alle andere kernelmeldingen.

De naam BogoMips is een samenvoeging van 'Bogus' en 'MIPS'. Bogus betekent 'niet echt' of 'flauwekul', en MIPS staat voor miljoenen instructies per seconde. Het wordt omschreven als: "Het aantal miljoenen keren per seconde dat een processor helemaal niets kan doen".

Doel

Met name tijdens het opstarten moet er veel hardware gecontroleerd en getest worden. Daarbij moet regelmatig op die hardware gewacht worden en soms wordt dat softwarematig gedaan. Aangezien er een zeer groot verschil is in snelheid tussen de verschillende computers (ruwweg 8 MHz tot 4500 MHz), zou de computer te lang of te kort kunnen wachten. Dat kan worden voorkomen wanneer de snelheid van de processor bekend is.

De waarde van het getal

Het getal wordt gemeten door een stukje software vele malen te herhalen. De tijd die daarvoor nodig is en het aantal herhalingen dat uitgevoerd kan worden, bepalen het getal.
Deze methode geeft wel weer wat de processor kan doen, maar zegt niet alles over de processorsnelheid. Nieuwere processoren kunnen meer dingen tegelijk doen en hebben minder klokcycli nodig voor dezelfde code.
Het getal kan door verschillende oorzaken beïnvloed worden. Wanneer Linux van een diskette opstart, zullen de interrupts van de diskettecontroller een lagere BogoMipswaarde opleveren. Wanneer de programmacode speciaal voor een bepaalde processor is gemaakt, dan zal het BogoMipsgetal groter zijn. En door een verandering in de kernel zullen sommige processoren een dubbele waarde laten zien. Al met al kan dezelfde computer de ene keer een waarde geven die wel 10 keer hoger of lager is, dan wanneer het op een andere manier bepaald is.

Het getal BogoMips kan bekeken worden met het commando `cat /proc/cpuinfo`. Voorbeelden voor het aantal BogoMips:

Processor               Snelheid     BogoMips
Intel 486DX2              40 MHz       20
Intel 486DX4              75 MHz       37
Intel Pentium 1          133 MHz      265 (dubbele waarde door nieuwe kernel)
AMD Athlon              1400 MHz     2793
AMD Athlon XP 1800+     1540 MHz     3076
AMD Athlon 64 X2 3800+  2x 2 GHz     8021

Het is mogelijk om het getal van tevoren in te schatten, aan de hand van de processor en de snelheid. In de onderstaande tabel is bij Index een getal weergegeven waarmee te zien is dat nieuwere processoren minder clockcycli nodig hebben voor dezelfde code.

ProcessorHoe de BogoMips te berekenenIndex
Intel 8088CPU-snelheid × 0,0040,02
Intel/AMD 386SXCPU-snelheid × 0,140,8
Intel/AMD 386DXCPU-snelheid × 0,181,0 (referentie)
Motorola 68030CPU-snelheid × 0,251,4
Cyrix/IBM 486CPU-snelheid × 0,341,8
Intel PentiumCPU-snelheid × 0,402,2
Intel 486CPU-snelheid × 0,502,8
AMD 5x86CPU-snelheid × 0,502,8
Mips R4000/R4400CPU-snelheid × 0,502,8
Motorola 68040CPU-snelheid × 0,673,7
PowerPC 603CPU-snelheid × 0,673,7
Intel StrongArmCPU-snelheid × 0,663,7
Nexgen Nx586CPU-snelheid × 0,754,2
PowerPC 601CPU-snelheid × 0,844,7
Alpha 21064/21064ACPU-snelheid × 0,995,5
Alpha 21066/21066ACPU-snelheid × 0,995,5
Alpha 21164/21164ACPU-snelheid × 0,995,5
Intel Pentium ProCPU-snelheid × 0,995,5
Cyrix 5x86/6x86CPU-snelheid × 1,005,6
Intel Pentium II/IIICPU-snelheid × 1,005,6
AMD K7/AthlonCPU-snelheid × 1,005,6
Intel CeleronCPU-snelheid × 1,005,6
Intel ItaniumCPU-snelheid × 1,005,6
Mips R4600CPU-snelheid × 1,005,6
Intel Itanium 2CPU-snelheid × 1,498,3
Intel Pentium MCPU-snelheid × 1,9811,0
Alpha 21264CPU-snelheid × 1,9911,1
Centaur VIACPU-snelheid × 1,9911,1
AMD K5/K6/K6-2/K6-IIICPU-snelheid × 2,0011,1
AMD Duron/Athlon XPCPU-snelheid × 2,0011,1
UltraSparc IICPU-snelheid × 2,0011,1
Pentium MMXCPU-snelheid × 2,0011,1
Pentium 4CPU-snelheid × 2,0011,1
Intel Core 2 DuoCPU-snelheid × 2,0011,1
Centaur C6-2CPU-snelheid × 2,0011,1
PowerPC 604/604e/750CPU-snelheid × 2,0011,1
Motorola 68060CPU-snelheid × 2,0111,2
Intel Xeon (Hyper-Threading)CPU-snelheid × 3,9722,1

Zie ook