BogoMips
Da Wikipedia, l'enciclopedia libera.
BogoMips (dai termini "bogus" dal significato di fasullo, inutile, e MIPS, million instructions per second) è un indice informale delle prestazioni di una CPU, ideato da Linus Torvalds e calcolato dal Kernel Linux durante la fase di boot, con lo scopo di calibrare i loop di temporizzazione interni (busy-loop). In pratica viene eseguito un ciclo di istruzioni predefinito e viene misurato il tempo impiegato per eseguirlo.
Spesso è goliardicamente definita come "milioni di volte per secondo in cui un processore può non fare assolutamente nulla". Linus ha coniato questo nome ironico per sottolineare l'inutilità, come indice assoluto di riferimento, del calcolo dei MIPS per i differenti sistemi.
Il valore calcolato per il proprio sistema viene mostrato a video durante le prime fasi di avvio, quando è visualizzato il pinguino Tux. È comunque possibile visualizzare in seguito lo stesso valore visualizzando il contenuto del file virtuale /proc/cpuinfo, in bash con il comando:
cat /proc/cpuinfo
La seguente tabella permette di calcolare in modo approssimativo i BogoMips per differenti microprocessori:
Sistema | Calcolo | Rapporto |
---|---|---|
Intel 8088 | clock * 0.004 | 0.02 |
Intel/AMD 386SX | clock * 0.14 | 0.8 |
Intel/AMD 386DX | clock * 0.18 | 1 (per definizione) |
Motorola 68030 | clock * 0.25 | 1.4 |
Cyrix/IBM 486 | clock * 0.34 | 1.8 |
Intel Pentium | clock * 0.40 | 2.2 |
Intel 486 | clock * 0.50 | 2.8 |
AMD 5x86 | clock * 0.50 | 2.8 |
Mips R4000/R4400 | clock * 0.50 | 2.8 |
Motorola 68040 | clock * 0.67 | 3.7 |
PowerPC 603 | clock * 0.67 | 3.7 |
Intel StrongARM | clock * 0.66 | 3.7 |
NexGen Nx586 | clock * 0.75 | 4.2 |
PowerPC 601 | clock * 0.84 | 4.7 |
Alpha 21064/21064A | clock * 0.99 | 5.5 |
Alpha 21066/21066A | clock * 0.99 | 5.5 |
Alpha 21164/21164A | clock * 0.99 | 5.5 |
Intel Pentium Pro | clock * 0.99 | 5.5 |
Cyrix 5x86/6x86 | clock * 1.00 | 5.6 |
Intel Pentium II/III | clock * 1.00 | 5.6 |
AMD K7/Athlon | clock * 1.00 | 5.6 |
Intel Celeron | clock * 1.00 | 5.6 |
Intel Itanium | clock * 1.00 | 5.6 |
Mips R4600 | clock * 1.00 | 5.6 |
Intel Itanium 2 | clock * 1.49 | 8.3 |
Alpha 21264 | clock * 1.99 | 11.1 |
Centaur VIA | clock * 1.99 | 11.1 |
AMD K5/K6/K6-2/K6-III | clock * 2.00 | 11.1 |
AMD Duron/Athlon XP | clock * 2.00 | 11.1 |
UltraSparc II | clock * 2.00 | 11.1 |
Pentium MMX | clock * 2.00 | 11.1 |
Pentium 4 | clock * 2.00 | 11.1 |
Centaur C6-2 | clock * 2.00 | 11.1 |
PowerPC 604/604e/750 | clock * 2.00 | 11.1 |
Motorola 68060 | clock * 2.01 | 11.2 |
Intel Xeon (hyper-threading) | clock * 3.97 | 22.1 |
Hitachi SH-4 | clock * 1 | |
IBM S390 | non ancora disponibile | |
Intel ARM | non ancora disponibile |
Poiché l'implementazione della cache è cambiata per alcune CPU (soprattutto Intel) durante l'evoluzione del kernel, possono essere validi rapporti diversi per il calcolo relativo a queste CPU. Inoltre l'algoritmo di calcolo non sfrutta pienamente il parallelismo di processori quali ad esempio il Pentium 4 e l'Alpha 21164. Se il valore calcolato per il proprio sistema dovesse differire significativamente dal valore calcolato con la tabella, è possibile che la cache sia male configurata o disattivata, oppure che il clock del processore sia ridotto rispetto al valore nominale (nei PC in uso fino agli anni '90 esisteva un tasto "turbo" con cui era possibile ridurre la velocità di clock).