Введение
Ненаучное измерение скорости процессора, выполняемое ядром Linux. BogoMips (от "bogus" и MIPS) — это приблизительная оценка скорости процессора, которую ядро Linux производит при загрузке для калибровки внутреннего цикла ожидания. Часто приводимое определение этого термина — «количество миллионов бессмысленных операций, которые процессор может выполнить за секунду». BogoMips — это значение, которое можно использовать для проверки, соответствует ли процессор ожидаемому диапазону для аналогичных моделей, то есть BogoMips отражает тактовую частоту процессора и наличие кэша. Оно не подходит для сравнения производительности разных процессоров.
BogoMips (from "bogus" and MIPS) is a crude measurement of CPU speed made by the Linux kernel when it boots to calibrate an internal busy loop. An often quoted definition of the term is "the number of million times per second a processor can do absolutely nothing". BogoMips is a value that can be used to verify whether the processor in question is in the proper range of similar processors, i. e. BogoMips represents a processor's clock frequency as well as the potentially present CPU cache. It is not usable for performance comparisons among different CPUs.
История
В 1993 году Ларс Вирзений опубликовал сообщение в Usenet, объясняющее причины его добавления в ядро Linux на comp.os.linux:
[ ]
MIPS – это сокращение от Millions of Instructions Per Second (миллионов инструкций в секунду). Это показатель вычислительной скорости процессора. Как и большинство подобных показателей, им чаще злоупотребляют, чем используют корректно (очень сложно объективно сравнивать MIPS для разных типов компьютеров). BogoMips – это изобретение самого Линуса. Версии ядра Linux 0.99.11 (от 11 июля 1993 года) требовался цикл синхронизации (время слишком мало и/или требует слишком высокой точности для метода ожидания без использования активного ожидания), который необходимо откалибровать под скорость процессора машины. Поэтому ядро измеряет во время загрузки, насколько быстро выполняется определенный тип цикла активного ожидания на компьютере. Приставка "Bogo" происходит от английского "bogus", то есть "ложный". Следовательно, значение BogoMips даёт лишь приблизительное представление о скорости процессора, но оно слишком ненаучно, чтобы называться чем-то иным, кроме BogoMips. Причины (их две), по которым это значение выводится при загрузке, заключаются в том, что а) оно немного полезно для отладки и проверки работоспособности кэша и кнопки Turbo, и б) Линусу нравится наблюдать за замешательством людей в новостях. [ ]
Правильные рейтинги BogoMips
В качестве очень приблизительного ориентира, BogoMips можно предварительно рассчитать по следующей таблице. Указанный рейтинг типичен для данного процессора с актуальной на тот момент версией Linux. Индекс представляет собой отношение "BogoMips на тактовую частоту" для любого процессора к аналогичному значению для процессора Intel 386DX, в целях сравнения. Intel 8088 тактовая частота × 0.0040.02Intel/AMD 386SX тактовая частота × 0.140.8Intel/AMD 386DX тактовая частота × 0.181 (определение)Motorola 68030 тактовая частота × 0.251.4Cyrix/IBM 486 тактовая частота × 0.341.8Intel Pentium тактовая частота × 0.402.2Intel 486 тактовая частота × 0.502.8AMD 5x86 тактовая частота × 0.502.8MIPS R4000/R4400 тактовая частота × 0.502.8ARM9 тактовая частота × 0.502.8Motorola 68040 тактовая частота × 0.673.7PowerPC 603 тактовая частота × 0.673.7Intel StrongARM тактовая частота × 0.663.7NexGen Nx586 тактовая частота × 0.754.2PowerPC 601 тактовая частота × 0.844.7Alpha 21064/21064A тактовая частота × 0.995.5Alpha 21066/21066A тактовая частота × 0.995.5Alpha 21164/21164A тактовая частота × 0.995.5Intel Pentium Pro тактовая частота × 0.995.5Cyrix 5x86/6x86 тактовая частота × 1.005.6Intel Pentium II/III тактовая частота × 1.005.6AMD K7/Athlon тактовая частота × 1.005.6Intel Celeron тактовая частота × 1.005.6Intel Itanium тактовая частота × 1.005.6R4600 тактовая частота × 1.005.6Hitachi SH 4 тактовая частота × 1.005.6Raspberry Pi (Model B) тактовая частота × 1.005.6Intel Itanium 2 тактовая частота × 1.498.3Alpha 21264 тактовая частота × 1.9911.1VIA Centaur тактовая частота × 1.9911.1AMD K5/K6/K6 2/K6 III тактовая частота × 2.0011.1AMD Duron/Athlon XP тактовая частота × 2.0011.1AMD Sempron тактовая частота × 2.0011.1UltraSparc II тактовая частота × 2.0011.1Intel Pentium MMX тактовая частота × 2.0011.1Intel Pentium 4 тактовая частота × 2.0011.1Intel Pentium M тактовая частота × 2.0011.1Intel Core Duo тактовая частота × 2.0011.1Intel Core 2 Duo тактовая частота × 2.0011.1Intel Atom N455 тактовая частота × 2.0011.1Centaur C6 2 тактовая частота × 2.0011.1PowerPC 604/604e/750 тактовая частота × 2.0011.1Intel Pentium III Coppermine тактовая частота × 2.0011.1Intel Pentium III Xeon тактовая частота × 2.0011.1Motorola 68060 тактовая частота × 2.0011.1Intel Xeon MP (32 bit) (hyper threading) тактовая частота × 3.9722.1Rockchip 358848.0IBM S390 недостаточно данных (пока)ARM недостаточно данных (пока)
С ядром Linux 2.2.14 настройка кэширования состояния ЦП была перемещена с последующей на предшествующую стадию вычисления BogoMips. Хотя сам алгоритм BogoMips не был изменен, начиная с этого ядра рейтинг BogoMips для актуальных на тот момент процессоров Pentium был в два раза выше, чем рейтинг до изменения. Измененный результат BogoMips не повлиял на реальную производительность процессора. В Linux, BogoMips можно легко получить, просмотрев файл cpuinfo: задержки на основе таймера более надежны в системах, которые используют масштабирование частоты для динамической настройки скорости процессора во время выполнения, поскольку циклы на значения jiffies не обязательно масштабируются линейно. Кроме того, поскольку частота таймера известна заранее, калибровка не требуется во время загрузки. Одним из побочных эффектов этого изменения является то, что значение BogoMIPS будет отражать частоту таймера, а не частоту ядра процессора. Как правило, частота таймера намного ниже максимальной частоты процессора, и некоторые пользователи могут быть удивлены, увидев необычно низкое значение BogoMIPS при сравнении с системами, использующими традиционные циклы ожидания.