BogoMips - BogoMips
BogoMips (от «фальшивый» и MIPS ) является грубым измерением Скорость процессора сделано Ядро Linux когда он загружается для калибровки внутреннего шлейф занятости.[1] Часто цитируемое определение этого термина - это «количество миллионов раз в секунду, когда процессор абсолютно ничего не может сделать».[2][3]
BogoMips - это значение, которое можно использовать для проверки того, находится ли рассматриваемый процессор в надлежащем диапазоне аналогичных процессоров, т.е. BogoMips представляет тактовую частоту процессора, а также потенциально присутствующую Кэш процессора. Его нельзя использовать для сравнения производительности различных процессоров.[4]
История
В 1993 году Ларс Вирзениус опубликовал Usenet сообщение[5] объясняя причины его введения в ядро Linux на comp.os.linux:
- [...]
- MIPS - это сокращение от "Миллионы инструкций в секунду". Это мера скорости вычислений процессора. Как и большинство подобных мер, им чаще злоупотребляют, чем используют должным образом (очень сложно справедливо сравнивать MIPS для разных типов компьютеров).
- BogoMips - это Линус собственное изобретение. Ядро Linux версии 0.99.11 (от 11 июля 1993 г.) нуждалось в цикле синхронизации (время слишком короткое и / или должно быть слишком точным для метода ожидания без цикла занятости), который должен быть откалиброван для процессора. скорость машины. Следовательно, ядро во время загрузки измеряет, насколько быстро на компьютере выполняется определенный вид цикла занятости. «Бого» происходит от «фальшивка», то есть что-то, что является подделкой. Следовательно, значение BogoMips дает некоторое представление о скорости процессора, но это слишком ненаучно, чтобы называть его иначе, как BogoMips.
- Причины (их две), которые печатаются во время загрузки, заключаются в том, что а) это немного полезно для отладки и для проверки работы кешей и турбо-кнопок компьютера, и б) Линус любит посмеиваться, когда видит запутали людей в новостях.
- [...]
Правильный рейтинг BogoMips
В качестве очень приблизительного ориентира BogoMips можно предварительно рассчитать по следующей таблице. Данный рейтинг типичен для этого ЦПУ с действующими на тот момент и применимыми Linux версия. Индекс представляет собой отношение «BogoMips на тактовую частоту» для любого процессора к тому же значению для процессора Intel 386DX для целей сравнения.[6][7]
Система | Рейтинг | Показатель |
---|---|---|
Intel 8088 | часы × 0,004 | 0.02 |
Intel / AMD 386SX | часы × 0,14 | 0.8 |
Intel / AMD 386DX | часы × 0,18 | 1 (определение) |
Motorola 68030 | часы × 0,25 | 1.4 |
Cyrix /IBM 486 | часы × 0,34 | 1.8 |
Intel Pentium | часы × 0,40 | 2.2 |
Intel 486 | часы × 0,50 | 2.8 |
AMD 5x86 | часы × 0,50 | 2.8 |
MIPS R4000 / R4400 | часы × 0,50 | 2.8 |
ARM9 | часы × 0,50 | 2.8 |
Motorola 68040 | часы × 0,67 | 3.7 |
PowerPC 603 | часы × 0,67 | 3.7 |
Intel Сильная рука | часы × 0,66 | 3.7 |
NexGen Nx586 | часы × 0,75 | 4.2 |
PowerPC 601 | часы × 0,84 | 4.7 |
Альфа 21064 / 21064A | часы × 0,99 | 5.5 |
Альфа 21066 / 21066A | часы × 0,99 | 5.5 |
Альфа 21164 / 21164A | часы × 0,99 | 5.5 |
Intel Pentium Pro | часы × 0,99 | 5.5 |
Cyrix 5x86 /6x86 | часы × 1,00 | 5.6 |
Intel Pentium II /III | часы × 1,00 | 5.6 |
AMD K7 / Athlon | часы × 1,00 | 5.6 |
Intel Celeron | часы × 1,00 | 5.6 |
Intel Itanium | часы × 1,00 | 5.6 |
R4600 | часы × 1,00 | 5.6 |
Hitachi SH-4 | часы × 1,00 | 5.6 |
Raspberry Pi (модель B) | часы × 1,00 | 5.6 |
Intel Itanium 2 | часы × 1,49 | 8.3 |
Альфа 21264 | часы × 1,99 | 11.1 |
ВИА Кентавр | часы × 1,99 | 11.1 |
AMD K5 / K6 / K6-2 / K6-III | часы × 2,00 | 11.1 |
AMD Duron /Athlon XP | часы × 2,00 | 11.1 |
AMD Семпрон | часы × 2,00 | 11.1 |
UltraSparc II | часы × 2,00 | 11.1 |
Intel Pentium MMX | часы × 2,00 | 11.1 |
Intel Pentium 4 | часы × 2,00 | 11.1 |
Intel Pentium M | часы × 2,00 | 11.1 |
Intel Core Duo | часы × 2,00 | 11.1 |
Intel Core 2 Duo | часы × 2,00 | 11.1 |
Intel Атом N455 | часы × 2,00 | 11.1 |
Кентавр C6-2 | часы × 2,00 | 11.1 |
PowerPC 604 / 604e / 750 | часы × 2,00 | 11.1 |
Intel Pentium III Coppermine | часы × 2,00 | 11.1 |
Intel Pentium III Xeon | часы × 2,00 | 11.1 |
Motorola 68060 | часы × 2,00 | 11.1 |
Intel Xeon MP (32-бит) (Hyper Threading ) | часы × 3,97 | 22.1 |
IBM S390 | недостаточно данных (пока) | |
РУКА | недостаточно данных (пока) |
В ядре Linux 2.2.14 кеширование настройка состояния процессора перенесена из-за спины в до расчета BogoMips. Хотя сам алгоритм BogoMips не был изменен, начиная с этого ядра рейтинг BogoMips для текущих процессоров Pentium был вдвое выше, чем рейтинг до изменения. Измененный результат BogoMips не повлиял на реальную производительность процессора.[нужна цитата ]
В Linux BogoMips можно легко получить, выполнив поиск в cpuinfo файл:[7]
$ grep -i bogomips / proc / cpuinfo
Расчет BogoMIPS
В ядре 2.6.x BogoMIPS реализован в /usr/src/linux/init/calibrate.c
исходный файл ядра. Он вычисляет параметр времени ядра Linux loops_per_jiffy
(увидеть быстро ) ценность. Объяснение из исходного кода:
/ * * Простой цикл, например * while (jiffies
loops_per_jiffy
используется для реализацииudelay
(задержка в микросекундах) иndelay
(задержка в наносекундах) функции. Эти функции необходимы некоторым драйверам для ожидания оборудования. Обратите внимание, что занято ожиданием используется техника, поэтому ядро эффективно блокируется при выполненииndelay
/udelay
функции. Для архитектуры i386delay_loop
реализуется в/usr/src/linux/arch/i386/lib/delay.c
так как:/ * задержка на основе простого цикла: * /статический пустота delay_loop(беззнаковый длинная петли){ int d0; __как м__ __volatile__( " тjmp 1f п" ".align 16 п" "1: тjmp 2f п" ".align 16 п" "2: тдекларировать% 0 п тjns 2b " :"= & а" (d0) :"0" (петли));}эквивалент следующего кода ассемблера
; ввод: eax = d0; вывод: eax = 0 jmp Начните.align 16Начните: jmp тело.align 16тело: декларировать eax jns телокоторый можно переписать в C-псевдокод
статический пустота delay_loop(длинная петли){ длинная d0 = петли; делать { --d0; } в то время как (d0 >= 0);}Полную и полную информацию и подробности о BogoMips, а также сотни справочных статей можно найти в (устаревшем) мини-руководстве BogoMips.[4]
Задержки на основе таймера
В 2012, РУКА внес новый
udelay
реализация, позволяющая использовать системный таймер, встроенный во многие процессоры ARMv7, вместо цикла «занято-ожидание». Эта реализация была выпущена в версии 3.6 Ядро Linux.[8] Задержки на основе таймера более устойчивы в системах, которые используют частотное масштабирование для динамической регулировки скорости процессора во время выполнения, какloops_per_jiffies
значения не обязательно могут масштабироваться линейно. Кроме того, поскольку частота таймера известна заранее, калибровка во время загрузки не требуется.Одним из побочных эффектов этого изменения является то, что значение BogoMIPS будет отражать частоту таймера, а не частоту ядра процессора. Обычно частота таймера намного ниже максимальной частоты процессора, и некоторые пользователи могут быть удивлены, увидев необычно низкое значение BogoMIPS при сравнении с системами, которые используют традиционные циклы «занято-ожидание».
Смотрите также
использованная литература
- ^ Ван Дорст, Вим (январь 1996 г.). «Типичный эталонный тест Linux». Linux журнал. Получено 2008-08-22.
- ^ Эрик С. Раймонд, и Джефф Маккензи, опубликовано на Интернет в начале 1990-х годов неустановленное происхождение.
- ^ Раймонд, Эрик С. "Файл жаргона хакеров".
- ^ а б Ван Дорст, Вим (2 марта 2006 г.). "BogoMips Mini-Howto" (Изд. V38). Получено 2008-08-22.
- ^ Вирзениус, Ларс. "Re: Printing & BogoMips".
- ^ Бекман, Стас. "Что такое BogoMip?".
- ^ а б «BogoMips mini-Howto».
- ^ Дьякон, Уилл. «ARM: 7452/1: задержка: позволяет выбрать реализацию задержки на основе таймера».
внешние ссылки
- BogoMips Mini-Howto, V38
- Статья основана на материалах, взятых из Бесплатный онлайн-словарь по вычислительной технике до 1 ноября 2008 г. и зарегистрированы в соответствии с условиями «перелицензирования» GFDL, версия 1.3 или новее.
- Источники классического автономного теста