IPS (быстродействие)

IPS (англ. Instructions per second, инструкции в секунду) — это мера скорости работы процессора компьютера, отражающая количество операций, выполняемых центральным процессором за одну секунду. Для архитектур с расширенным набором команд (CISC) различные машинные инструкции имеют разную длительность выполнения, поэтому измеряемое значение зависит от набора используемых инструкций; даже при сравнении процессоров одной серии метрика IPS может быть некорректна. Во многих случаях приводятся «пиковые» значения IPS, достигнутые на искусственно упрощённых последовательностях инструкций без ветвлений и конфликтов кэша, однако в реальных задачах достигаемые значения оказываются заметно ниже. Значительно на итоговую производительность влияет и иерархия памяти, что практически не учитывается при расчётах IPS. В связи с этим для оценки производительности в прикладных задачах часто используют синтетические тесты, такие как Dhrystone, а сама метрика IPS постепенно утратила былую актуальность[1]. Термин IPS часто употребляется с метрическими приставками: kIPS (англ. kilo instructions per second, тысячи инструкций в секунду), MIPS (англ. mega instructions per second, миллионы инструкций в секунду), GIPS (англ. giga instructions per second, миллиарды инструкций в секунду) и далее. В прошлом для «тысячи IPS» иногда также применялось обозначение TIPS.

undefined

Расчёт IPS

Вычисление значения IPS производится по формуле:[1]

Однако показатель инструкций на цикл зависит от последовательности команд, обрабатываемых данных и внешних факторов.

Масштабные единицы

Для большинства ранних 8-битных и 16-битных микропроцессоров производительность измерялась в тысячах инструкций в секунду (kIPS).

Понятие «миллионы инструкций в секунду» (MIPS) стало востребовано в конце 1970-х годов. Например, модели IBM System/370 158–3 и VAX-11/780 считались приблизительно эквивалентными по производительности на уровне 1 MIPS.

Типы инструкций

Скорость процессора зависит от множества факторов, включая тип выполняемых инструкций, их порядок и присутствие команд перехода (особенно проблемных из-за разрыва конвейера). Темп выполнения инструкций (MIPS) отличается от тактовой частоты, обычно измеряемой в герцах (Гц), поскольку одна команда часто требует нескольких тактов, а современные процессоры способны исполнять несколько независимых инструкций параллельно. MIPS полезен при сравнении процессоров схожей архитектуры (например, внутри семейства PIC-микроконтроллеров), но затруднительно использовать для сравнения разных архитектур, особенно RISC и CISC[2]. Это породило ироническое толкование сокращения MIPS как «бессмысленный индикатор скорости процессора»[3], или менее часто — «бессмысленные индексы производительности»[4]. К середине 1980-х такое отношение было распространено среди специалистов.

Набор Гибсона (1959)

До появления стандартных тестов средней скоростью компьютеров считалась скорость обработки определённой смеси инструкций, с результатом в kIPS. Одной из первых попыток формализации набора тестовых команд стал набор Гибсона, предложенный в 1959 году Джеком Кларком Гибсоном из IBM для научных применений[5].

Гибсон разделил команды IBM 704 на 12 классов, добавив 13-й для учёта времени индексации. Вес каждого класса определялся по анализу семи научных программ для IBM 704 и с учётом некоторых программ для IBM 650. Итоговая оценка выводилась как взвешенная сумма средней скорости выполнения команд из каждого класса[5].

Набор Гибсона отражает подход своего времени, когда вычислительные мощности ещё измерялись в kIPS. Для коммерческих задач разрабатывались альтернативные рейтинги, например, ADP mix, не включавший операции с плавающей точкой. Первые такие методики ещё не были столь системными, однако сама идея создания эталонных наборов, имитирующих прикладные задачи, позднее — «синтетический тест», осталась.

Два варианта VAX MIPS

Компьютер VAX-11/780, выпущенный в 1977 году, позиционировался как первый миникомпьютер, способный исполнять миллион команд System/370 в секунду. Он быстро стал распознаваемой отправной точкой для референса MIPS в двух тестах:

  • В 1980 году для Whetstone, синтетического теста с фокусом на целочисленных операциях, появился показатель «VAX MIPS» как усреднение по трём сугубо целочисленным тестам в Whetstone. Изначально тесты задавались как 42 оператора на ALGOL 60 (124 инструкции KDF9), но к 1980 году был переписан на Fortran.
  • В более общем целочисленном тесте Dhrystone показатель MIPS также был привязан к VAX. Новый эталон «DMIPS» определялся как число выполненных итераций основного цикла теста Dhrystone за секунду, где один DMIPS соответствовал 1757 итерациям — результату VAX-11/780.

Другие смеси инструкций

zMIPS — внутренний показатель производительности IBM для оценки своих мэйнфреймов семейств zSeries, IBM System z9 и IBM System z10.

WMOPS (Weighted Million Operations Per Second, взвешенный миллион операций в секунду) — подобная метрика, используемая для оценки эффективности аудиокодеков.

Прочие факторы, влияющие на IPS

Реальная производительность процессоров в MIPS сильно зависит от языка и качества компилятора: некоторые компиляторы генерируют эффективный код, а другие — нет. В отчёте Whetstone приводится таблица MWIPS для разных компиляторов, интерпретаторов и языков — от первых компиляторов для BASIC (1982, CPU 8088/87 на 4,8 МГц: 0,01 MWIPS) до современных языков высокого уровня (на Intel Core 2 Duo 2,4 ГГц: от 9,7 MWIPS на интерпретаторе BASIC, до 2403 MWIPS в актуальном C/C++-компиляторе).

Хронология производительности (IPS)

Примеры CPU

Процессор / система Dhrystone MIPS или MIPS, и частота Инструкций за такт Инструкций за такт на ядро Год Примечания
UNIVAC I 0,002 MIPS при 2,25 МГц 0,0008 0,0008 1951

[6]

IBM 7030 ("Stretch") 1,200 MIPS при 3,30 МГц 0,364 0,364 1961 [7][8]
CDC 6600 10,00 MIPS при 10,00 МГц 1 1 1965 [9][10]
Intel 4004 0,092 MIPS при 0,740 МГц
(не Dhrystone)
0,124 0,124 1971 [11]
IBM System/370 Model 158 0,640 MIPS при 8,696 МГц 0,0736 0,0736 1972 [12]
Intel 8080 0,290 MIPS при 2,000 МГц
(не Dhrystone)
0,145 0,145 1974 [13]
Cray 1 160,0 MIPS при 80,00 МГц 2 2 1975 [14]
MOS Technology 6502 0,430 MIPS при 1,000 МГц 0,43 0,43 1975 [15]

Результаты мультипроцессорных систем

Процессор / система Dhrystone MIPS или MIPS, и частота Инструкций за такт Инструкций за такт на ядро Год Примечания
LINKS-1 Computer Graphics System (257 процессоров) 642,5 MIPS при 10 МГц 2,5 0,25 1982 [16]

Примечания

  1. 1 2 US, Dell Technical Resources migrated from TechCenter - Dell US (англ.). en.community.dell.com. Дата обращения: 17 октября 2016. Архивировано 28 мая 2014 года.
  2. Ted MacNeil. Don't be Misled by MIPS (англ.). IBM magazine. Дата обращения: 15 ноября 2009. Архивировано 23 июля 2012 года.
  3. Musumeci, Gian-Paolo D. System Performance Tuning : [англ.] / Gian-Paolo D. Musumeci, Mike Loukides, Michael Kosta Loukides. — "O'Reilly Media, Inc.", 2002. — P. 32. — ISBN 9780596002848.
  4. “The Best of Both Worlds: Mac II vs. IBM PS/2 Model 80”. PC Magazine [англ.]: 105. 24 ноября 1987.
  5. 1 2 Elliot, Jimmie Lynn. Appendix E, The Gibson Mix by Jack C. Gibson // Computer Performance and Evaluation Utilizing the Resource Planning and Management System, Masters Thesis : [англ.]. — Oregon State University, 5 июня 1975. — P. 88–92.
  6. US Steel News. — Industrial Relations Department of The United States Steel Corporation of Delaware, 1950–1955. — Vol. 15-20. — P. 29.
  7. Padua, David. Encyclopedia of Parallel Computing : [англ.]. — Springer Science & Business Media, 8 сентября 2011. — ISBN 9780387097657.
  8. Meagher, R.E. Stretch Report. Computer History (9 мая 1961). Дата обращения: 25 мая 2017. Архивировано 11 апреля 2016 года.
  9. Control Data Corporation, CDC-6600 & 7600. ed-thelen.org. Дата обращения: 25 мая 2017. Архивировано 3 апреля 2017 года.
  10. Control Data 6600: The Supercomputer Arrives, Dr. Dobb's. Архивировано 5 июня 2017. Дата обращения: 25 мая 2017.
  11. MCS4 > IntelP4004. www.cpushack.com. Дата обращения: 29 июня 2023. Архивировано 29 июня 2023 года.
  12. Cost of CPU Performance Through Time 1944-2003. Архивировано 9 октября 2014 года.
  13. Intel Processors (24 апреля 2012). Архивировано 24 апреля 2012 года.
  14. History of Computers and Computing, Birth of the modern computer, Electronic computer, Cray computers of Seymour Cray. history-computer.com. Дата обращения: 25 мая 2017. Архивировано 8 ноября 2016 года.
  15. Drolez, Ludovic Lud's Open Source Corner. Дата обращения: 16 сентября 2014. Архивировано 9 марта 2020 года.
  16. LINKS-1 Computer Graphics System: 257× Zilog Z8001 [1] Архивировано 7 мая 2017. at 10 MHz [2] Архивировано 6 октября 2014. (2,5 MIPS [3] Архивировано 9 июня 2015.) each

Категории