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

Collegamenti esterni

Categoria:Unità di misura informatiche Categoria:Kernel Linux