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

Pause

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

Категории

Pause