BogoMips

BogoMips (dai termini bogus dal significato di fasullo, inutile, e MIPS, million instructions per second) è un indice informale della velocità 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).

Viene determinato misurando il tempo impiegato per eseguire un ciclo di istruzioni predefinito.

Spesso è goliardicamente definita come «milioni di volte per secondo in cui un processore può non fare assolutamente nulla». Torvalds ha coniato quest'accezione ironica per sottolineare l'inutilità dei BogoMIPS come misura comparativa delle prestazioni dei differenti sistemi.

Il valore calcolato per il proprio sistema viene mostrato a video durante le prime fasi di avvio del kernel. Il valore viene memorizzato nel file cpuinfo, parte dello pseudo-file system procfs e può essere richiamato aprendo in lettura il file, situato in /proc.

La seguente tabella permette di calcolare in modo approssimativo i BogoMips per differenti microprocessori:

SistemaCalcoloRapporto
Intel 8088clock * 0.0040.02
Intel/AMD 386SXclock * 0.140.8
Intel/AMD 386DXclock * 0.181 (per definizione)
Motorola 68030clock * 0.251.4
Cyrix/IBM 486clock * 0.341.8
Intel Pentiumclock * 0.402.2
Intel 486clock * 0.502.8
AMD 5x86clock * 0.502.8
Mips R4000/R4400clock * 0.502.8
Motorola 68040clock * 0.673.7
PowerPC 603clock * 0.673.7
Intel StrongARMclock * 0.663.7
NexGen Nx586clock * 0.754.2
PowerPC 601clock * 0.844.7
Alpha 21064/21064Aclock * 0.995.5
Alpha 21066/21066Aclock * 0.995.5
Alpha 21164/21164Aclock * 0.995.5
Intel Pentium Proclock * 0.995.5
Cyrix 5x86/6x86clock * 1.005.6
Intel Pentium II/IIIclock * 1.005.6
AMD K7/Athlonclock * 1.005.6
Intel Celeronclock * 1.005.6
Intel Itaniumclock * 1.005.6
Mips R4600clock * 1.005.6
Intel Itanium 2clock * 1.498.3
Alpha 21264clock * 1.9911.1
Centaur VIAclock * 1.9911.1
AMD K5/K6/K6-2/K6-IIIclock * 2.0011.1
AMD Duron/Athlon XPclock * 2.0011.1
UltraSparc IIclock * 2.0011.1
Pentium MMXclock * 2.0011.1
Pentium 4clock * 2.0011.1
Centaur C6-2clock * 2.0011.1
PowerPC 604/604e/750clock * 2.0011.1
Motorola 68060clock * 2.0111.2
Intel Xeon (hyper-threading)clock * 3.9722.1
Hitachi SH-4clock * 1
IBM S390non ancora disponibile
Intel ARMnon ancora disponibile
Broadcom BCM2708 (raspberry pi)clock*0.9985
MIPS 34Kc (Mediatek MT751x) clock * 0.665

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 ed, in genere, i processori superscalari.

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).

Note

  1. ↑ (EN) The frequently asked questions about BogoMips, su tldp.org. URL consultato il 4/7/2014.

Collegamenti esterni