# 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:
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.
| Processor | Hoe de BogoMips te berekenen | Index |
| Intel 8088 | CPU-snelheid × 0,004 | 0,02 |
| Intel/AMD 386SX | CPU-snelheid × 0,14 | 0,8 |
| Intel/AMD 386DX | CPU-snelheid × 0,18 | 1,0 (referentie) |
| Motorola 68030 | CPU-snelheid × 0,25 | 1,4 |
| Cyrix/IBM 486 | CPU-snelheid × 0,34 | 1,8 |
| Intel Pentium | CPU-snelheid × 0,40 | 2,2 |
| Intel 486 | CPU-snelheid × 0,50 | 2,8 |
| AMD 5x86 | CPU-snelheid × 0,50 | 2,8 |
| Mips R4000/R4400 | CPU-snelheid × 0,50 | 2,8 |
| Motorola 68040 | CPU-snelheid × 0,67 | 3,7 |
| PowerPC 603 | CPU-snelheid × 0,67 | 3,7 |
| Intel StrongArm | CPU-snelheid × 0,66 | 3,7 |
| Nexgen Nx586 | CPU-snelheid × 0,75 | 4,2 |
| PowerPC 601 | CPU-snelheid × 0,84 | 4,7 |
| Alpha 21064/21064A | CPU-snelheid × 0,99 | 5,5 |
| Alpha 21066/21066A | CPU-snelheid × 0,99 | 5,5 |
| Alpha 21164/21164A | CPU-snelheid × 0,99 | 5,5 |
| Intel Pentium Pro | CPU-snelheid × 0,99 | 5,5 |
| Cyrix 5x86/6x86 | CPU-snelheid × 1,00 | 5,6 |
| Intel Pentium II/III | CPU-snelheid × 1,00 | 5,6 |
| AMD K7/Athlon | CPU-snelheid × 1,00 | 5,6 |
| Intel Celeron | CPU-snelheid × 1,00 | 5,6 |
| Intel Itanium | CPU-snelheid × 1,00 | 5,6 |
| Mips R4600 | CPU-snelheid × 1,00 | 5,6 |
| Intel Itanium 2 | CPU-snelheid × 1,49 | 8,3 |
| Intel Pentium M | CPU-snelheid × 1,98 | 11,0 |
| Alpha 21264 | CPU-snelheid × 1,99 | 11,1 |
| Centaur VIA | CPU-snelheid × 1,99 | 11,1 |
| AMD K5/K6/K6-2/K6-III | CPU-snelheid × 2,00 | 11,1 |
| AMD Duron/Athlon XP | CPU-snelheid × 2,00 | 11,1 |
| UltraSparc II | CPU-snelheid × 2,00 | 11,1 |
| Pentium MMX | CPU-snelheid × 2,00 | 11,1 |
| Pentium 4 | CPU-snelheid × 2,00 | 11,1 |
| Intel Core 2 Duo | CPU-snelheid × 2,00 | 11,1 |
| Centaur C6-2 | CPU-snelheid × 2,00 | 11,1 |
| PowerPC 604/604e/750 | CPU-snelheid × 2,00 | 11,1 |
| Motorola 68060 | CPU-snelheid × 2,01 | 11,2 |
| Intel Xeon (Hyper-Threading) | CPU-snelheid × 3,97 | 22,1 |