Введение

Измерение скорости обработки компьютера.

Инструкции в секунду (IPS) – это мера скорости процессора компьютера. Для компьютеров с комплексным набором команд (CISC) разные инструкции выполняются за разное время, поэтому измеряемое значение зависит от набора инструкций; даже при сравнении процессоров в одном семействе показатель IPS может быть проблематичным. Многие заявленные значения IPS отражают "пиковые" скорости выполнения на искусственных последовательностях инструкций с небольшим количеством переходов и отсутствием конфликтов при обращении к кэшу, в то время как реальные рабочие нагрузки обычно приводят к значительно более низким значениям IPS. Иерархия памяти также существенно влияет на производительность процессора, что практически не учитывается при расчете IPS. Из-за этих проблем для оценки производительности компьютера в типичных приложениях чаще используются синтетические тесты, такие как Dhrystone, а использование "сырых" значений IPS сократилось. Термин обычно используется с метрическими приставками (k, M, G, T, P или E) для образования килоинструкций в секунду (kIPS), мегаинструкций в секунду (MIPS), гигаинструкций в секунду (GIPS) и так далее. Ранее TIPS иногда использовался для обозначения "тысячи IPS".

Тысяча инструкций в секунду (TIPS/kIPS)

До появления стандартных тестов, оценка средней производительности компьютеров основывалась на расчетах для набора инструкций, результаты которых выражались в килоинструкциях в секунду (kIPS). Наиболее известным был Gibson Mix, разработанный Джеком Кларком Гибсоном из IBM для научных приложений в 1959 году. Для коммерческих приложений создавались и другие рейтинги, такие как ADP-микс, который не учитывал операции с плавающей точкой. В настоящее время единица измерения в тысячу инструкций в секунду (kIPS) используется редко, поскольку большинство современных микропроцессоров способны выполнять как минимум миллион инструкций в секунду.

Микс Гибсона

Гибсон разделил компьютерные инструкции на 12 классов, основанных на архитектуре IBM 704, добавив 13-й класс для учета времени индексации. Веса были в основном основаны на анализе семи научных программ, выполняемых на 704, с небольшим вкладом от некоторых программ IBM 650. Общий показатель был затем вычислен как взвешенная сумма средней скорости выполнения инструкций в каждом классе. Состав Гибсона (Gibson Mix) % 1. Загрузка и сохранение 31.2 2. Сложение и вычитание с фиксированной точкой 6.1 3. Сравнение 3.8 4. Переходы 16.6 5. Сложение и вычитание с плавающей точкой 6.9 6. Умножение с плавающей точкой 3.8 7. Деление с плавающей точкой 1.5 8. Умножение с фиксированной точкой 0.6 9. Деление с фиксированной точкой 0.2 10. Сдвиг 4.4 11. Логические операции (И, ИЛИ и т.д.) 1.6 12. Инструкции, не использующие регистры 5.3 13. Индексация 18 Итого 100

Миллионы инструкций в секунду (MIPS)

Скорость данного процессора зависит от множества факторов, таких как тип выполняемых инструкций, порядок их выполнения и наличие инструкций перехода (создающих проблемы в конвейерах процессора). Скорость выполнения инструкций CPU отличается от тактовой частоты, обычно измеряемой в Гц, поскольку для завершения каждой инструкции может потребоваться несколько тактовых циклов, или процессор может одновременно выполнять несколько независимых инструкций. MIPS может быть полезен при сравнении производительности процессоров, изготовленных на основе схожей архитектуры (например, микроконтроллеров Microchip), но сравнение между различными архитектурами CPU затруднительно. Это привело к тому, что термин "Бессмысленный показатель скорости процессора" или, реже, "Бессмысленные индексы производительности" стал популярен среди специалистов к середине 1980-х годов. По этой причине MIPS перестал быть мерой скорости выполнения инструкций, а стал мерой скорости выполнения задач по сравнению с эталонным значением. В конце 1970-х годов производительность миникомпьютеров сравнивалась с использованием VAX MIPS, где производительность компьютеров измерялась при выполнении задачи и оценивалась относительно VAX 11/780, который позиционировался как машина с производительностью 1 MIPS. (Эта мера также известна как VAX Unit of Performance или VUP.) Это было обусловлено тем, что 11/780 был примерно эквивалентен по производительности IBM System/370 модели 158–3, которая широко признавалась в индустрии как работающая на 1 МИПС. Многие заявления о производительности миникомпьютеров основывались на фортранской версии эталонного теста Whetstone, что давало миллионы инструкций Whetstone в секунду (MWIPS). VAX 11/780 с FPA (1977) работает на скорости 1,02 МВт/с. Эффективная скорость MIPS сильно зависит от используемого языка программирования. В отчете Уэтстона приведена таблица, показывающая скорости MWIPS для ПК с использованием ранних интерпретаторов и компиляторов до современных языков. Первый компилятор для ПК был для BASIC (1982), когда процессор 8088/87 с частотой 4,8 МГц выдавал 0,01 МВт/с. Результаты на 2,4 ГГц Intel Core 2 Duo (1 процессор, 2007) варьируются от 9,7 МВт/с при использовании BASIC Interpreter, 59 МВт/с с BASIC Compiler, 347 МВт/с с использованием Fortran 1987 года, 1534 МВт/с с HTML/Java до 2403 МВт/с с использованием современного компилятора C/C++. Для самых ранних 8-битных и 16-битных микропроцессоров производительность измерялась в тысячах инструкций в секунду (1000 кИПС = 1 МИПС). zMIPS – это показатель MIPS, используемый IBM для оценки производительности своих мейнфреймовых серверов (zSeries, IBM System z9 и IBM System z10). Взвешенный миллион операций в секунду (WMOPS) – аналогичная мера, используемая для аудиокодеков.

Временная линия инструкций в секунду

Процессор / Система Dhrystone MIPS или MIPS, и частота D инструкций в такт D инструкций в такт на ядро Год Источник UNIVAC I 0.002 MIPS при 2.25 МГц 0.0008 0.0008 1951 IBM 7030 ("Stretch") 1.200 MIPS при 3.30 МГц 0.364 0.364 1961 CDC 6600 10.00 MIPS при 10.00 МГц 1 1965 Intel 4004 0.092 MIPS при 0.740 МГц (Не Dhrystone) 0.124 0.124 1971 IBM System/370 Model 158 0.640 MIPS при 8.696 МГц 0.0736 0.0736 1972 Intel 8080 0.290 MIPS при 2.000 МГц (Не Dhrystone) 0.145 0.145 1974 Cray 1 160.0 MIPS при 80.00 МГц 2 1975 MOS Technology 6502 0.430 MIPS при 1.000 МГц 0.43 0.43 1975 Intel 8080A 0.435 MIPS при 3.000 МГц (Не Dhrystone) 0.145 0.145 1976 IBM System/370 Model 158 30.730 MIPS при 8.696 МГц 0.0839 0.0839 1977 Intel 8088 0.750 MIPS при 10.00 МГц 0.075 0.075 1979 Intel 8035/8039/8048 6 MIPS при 6 МГц (Не Dhrystone) 1 1980 Fujitsu MB8843/MB8844 6 MIPS при 6 МГц (Не Dhrystone) 1 1980 Motorola 6802 1.79 MIPS при 3.58 МГц 0.5 0.5 1981 Zilog Z8001/Z8002B 2.5 MIPS при 10 МГц 0.25 0.25 1981 NEC V20 4 MIPS при 8 МГц (Не Dhrystone) 0.5 0.5 1982 LINKS 1 Computer Graphics System (257 процессор) 642.5 MIPS при 10 МГц 2.5 0.25 1982 Texas Instruments TMS320 105 MIPS при 20 МГц 0.25 0.25 1983 NEC V30 5 MIPS при 10 МГц (Не Dhrystone) 0.5 0.5 1983 Intel i386DX 2.15 MIPS при 16 МГц 0.134 0.134 1985 Sega System 16 (4 процессора) 16.33 MIPS при 10 МГц 4.083 1.020 1985 ARM2 4 MIPS при 8 МГц 0.5 0.5 1986 Texas Instruments TMS340 106 MIPS при 50 МГц 0.12 0.12 1986 NEC V70 6.6 MIPS при 20 МГц 0.33 0.33 1987 Motorola 68030 9 MIPS при 25 МГц 0.36 0.36 1987 Texas Instruments TMS320C20 12.5 MIPS при 25 МГц 0.5 0.5 1987 Analog Devices ADSP 2100 12.5 MIPS при 12.5 МГц 1 1987 Texas Instruments TMS320C25 25 MIPS при 50 МГц 0.5 0.5 1987 Motorola 68030 18 MIPS при 50 МГц 0.36 0.36 1988 Namco System 21 (10 процессоров) 73.927 MIPS при 25 МГц 2.957 0.296 1988 Intel i386DX 4.3 MIPS при 33 МГц 0.13 0.13 1989 Atari Hard Drivin' (7 процессоров) 33.573 MIPS при 50 МГц 0.671 0.0959 1989 NEC SX 3 (4 процессора) 680 MIPS при 400 МГц 1.7 0.425 1989 ARM3 12 MIPS при 25 МГц 0.5 0.5 1989 Motorola 68040 44 MIPS при 40 МГц 1.1 1.1 1990 Namco System 21 (Galaxian³) (96 процессоров) 1,660.386 MIPS при 40 МГц 41.5 0.432 1990 AMD Am386 9 MIPS при 40 МГц 0.225 0.225 1991 Intel i486DX 11.1 MIPS при 33 МГц 0.336 0.336 1991 MIPS R4400 85 MIPS при 150 МГц 0.567 0.567 1993 IBM Motorola PowerPC 601 157.7 MIPS при 80 МГц 1.971 1.971 1993 SGI Onyx RealityEngine2 (36 процессоров) 2,640 MIPS при 150 МГц 17.6 0.489 1993 Namco Magic Edge Hornet Simulator (36 процессоров) 2,880 MIPS при 150 МГц 19.2 0.533 1993 ARM7 40 MIPS при 45 МГц 0.889 0.889 1994 Intel DX4 70 MIPS при 100 МГц 0.7 0.7 1994 Microchip PIC16F5 5 MIPS при 20 МГц 0.25 0.25 1995 IBM Motorola PowerPC 603e 188 MIPS при 133 МГц 1.414 1.414 1995 ARM 7500FE 35.9 MIPS при 40 МГц 0.9 0.9 1996 IBM Motorola PowerPC 603ev 423 MIPS при 300 МГц 1.41 1.41 1996 Hitachi SH 4 360 MIPS при 200 МГц 1.8 1.8 1997 IBM Motorola PowerPC 750 525 MIPS при 233 МГц 2.3 2.3 1997 Zilog eZ80 80 MIPS при 50 МГц 1.6 1.6 1999 Intel Pentium III 2,054 MIPS при 600 МГц 3.4 3.4 1999 Freescale MPC827 2760 MIPS при 400 МГц 1.9 1.9 2000 AMD Athlon 3,561 MIPS при 1.2 ГГц 3.0 3.0 2000 Silicon Recognition ZISC 788,600 MIPS при 33 МГц 260.6 260.6 2000 ARM11 515 MIPS при 412 МГц 1.25 1.25 2002 AMD Athlon XP 2500+ 7,527 MIPS при 1.83 ГГц 4.1 4.1 2003 ARM Cortex M3 125 MIPS при 100 МГц 1.25 1.25 2004 Nios II 190 MIPS при 165 МГц 1.13 1.13 2004 MIPS32 4KEc 356 MIPS при 233 МГц 1.5 1.5 2004 VIA C7 1,799 MIPS при 1.3 ГГц 1.4 1.4 2005 ARM Cortex A8 2,000 MIPS при 1.0 ГГц 2.0 2.0 2005 AMD Athlon FX 57 12,000 MIPS при 2.8 ГГц 4.3 4.3 2005 AMD Athlon 64 3800+ X2 (2 ядра) 14,564 MIPS при 2.0 ГГц 7.3 3.6 2005 PowerPC G4 MPC7448 3,910 MIPS при 1.7 ГГц 2.3 2.3 2005 ARM Cortex R4 450 MIPS при 270 МГц 1.66 1.66 2006 MIPS32 24K 604 MIPS при 400 МГц 1.5 1.5 2006 PS3 Cell BE (PPE только) 10,240 MIPS при 3.2 ГГц 3.2 3.2 2006 IBM Xenon CPU (3 ядра) 19,200 MIPS при 3.2 ГГц 6.0 2.0 2005 AMD Athlon FX 60 (2 ядра) 18,938 MIPS при 2.6 ГГц 7.3 3.6 2006 MIPS64 20Kc 1,370 MIPS при 600 МГц 2.3 2.3 2007 P. A. Semi PA6T 1682M 8,800 MIPS при 1.8 ГГц 4.4 4.4 2007 Qualcomm Scorpion (Cortex A8 like) 2,100 MIPS при 1 ГГц 2.1 2.1 2008 Intel Core 2 Extreme QX9770 (4 ядра) 59,455 MIPS при 3.2 ГГц 18.6 4.6 2008 ARM Cortex M0 45 MIPS при 50 МГц 0.9 0.9 2009 ARM Cortex A9 (2 ядра) 7,500 MIPS при 1.5 ГГц 5.0 2.5 2009 AMD Phenom II X4 940 Black Edition 42,820 MIPS при 3.0 ГГц 14.3 3.5 2009 AMD Phenom II X6 1100T 78,440 MIPS при 3.3 ГГц 23.7 3.9 2010 ARM Cortex A5 1,256 MIPS при 800 МГц 1.57 1.57 2011 Nvidia Tegra 3 (Quad core Cortex A9) 13,800 MIPS при 1.5 ГГц 9.2 2.5 2011 Samsung Exynos 5250 (Cortex A15 like 2 core) 14,000 MIPS при 2.0 ГГц 7.0 3.5 2011 Intel Core i5 2500K (4 ядра) 83,000 MIPS при 3.3 ГГц 25.15 26.288 2011 Intel Core i7 875K 92,100 MIPS при 2.93 ГГц 31.4 7.85 2011 Intel Core i7 2600K (4 ядра) 117,160 MIPS при 3.4 ГГц 34.45 8.612 2011 Intel Core i7 3960X (6 ядер) 176,170 MIPS при 3.3 ГГц 53.38 8.89 2011 AMD FX 8350 (8 ядер) 97,125 MIPS при 4.2 ГГц 23.1 2.9 2012 AMD FX 9590 (8 ядер) 115,625 MIPS при 5.0 ГГц 23.1 2.9 2012 Intel Core i7 5960X (8 ядер) 298,190 MIPS при 3.5 ГГц 85.2 10.65 2014 Raspberry Pi 2 (quad core ARM Cortex A7) 4,744 MIPS при 1.0 ГГц 4.744 1.186 2014 Intel Core i7 6950X (10 ядер) 320,440 MIPS при 3.5 ГГц 91.55 9.16 2016 ARM Cortex A73 (4 ядра) 71,120 MIPS при 2.8 ГГц 25.4 6.35 2016 ARM Cortex A75 8.2 9.5 2017 ARM Cortex A76 10.7 12.4 2018 ARM Cortex A35 2,100 MIPS при 1 ГГц 2.1 2.1 2015 AMD Ryzen 7 1800X (8 ядер) 304,510 MIPS при 3.7 ГГц 82.3 10.29 2017 Intel Core i7 8086K (6 ядер) 221,720 MIPS при 5.0 ГГц 44.34 7.39 2018 Intel Core i9 9900K (8 ядер) 412,090 MIPS при 4.7 ГГц 87.68 10.96 2018 AMD Ryzen Threadripper 3990X (64 ядра) 2,356,230 MIPS при 4.35 ГГц 541.66 8.46 2020 Intel Core i5 11600K (6 ядер) 346,350 MIPS при 4.92 ГГц 57.72 11.73 2021