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.
Расчёт 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].
| Смесь Гибсона | % |
|---|---|
| 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. Логические операции (AND, OR и др.) | 1,6 |
| 12. Инструкции, не использующие регистры | 5,3 |
| 13. Индексация | 18 |
| Всего | 100 |
Набор Гибсона отражает подход своего времени, когда вычислительные мощности ещё измерялись в 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 | |
| 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 2 US, Dell Technical Resources migrated from TechCenter - Dell US (англ.). en.community.dell.com. Дата обращения: 17 октября 2016. Архивировано 28 мая 2014 года.
- ↑ Ted MacNeil. Don't be Misled by MIPS (англ.). IBM magazine. Дата обращения: 15 ноября 2009. Архивировано 23 июля 2012 года.
- ↑ 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.
- ↑ “The Best of Both Worlds: Mac II vs. IBM PS/2 Model 80”. PC Magazine [англ.]: 105. 24 ноября 1987.
- ↑ 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.
- ↑ US Steel News. — Industrial Relations Department of The United States Steel Corporation of Delaware, 1950–1955. — Vol. 15-20. — P. 29.
- ↑ Padua, David. Encyclopedia of Parallel Computing : [англ.]. — Springer Science & Business Media, 8 сентября 2011. — ISBN 9780387097657.
- ↑ Meagher, R.E. Stretch Report. Computer History (9 мая 1961). Дата обращения: 25 мая 2017. Архивировано 11 апреля 2016 года.
- ↑ Control Data Corporation, CDC-6600 & 7600. ed-thelen.org. Дата обращения: 25 мая 2017. Архивировано 3 апреля 2017 года.
- ↑ Control Data 6600: The Supercomputer Arrives, Dr. Dobb's. Архивировано 5 июня 2017. Дата обращения: 25 мая 2017.
- ↑ MCS4 > IntelP4004. www.cpushack.com. Дата обращения: 29 июня 2023. Архивировано 29 июня 2023 года.
- ↑ Cost of CPU Performance Through Time 1944-2003. Архивировано 9 октября 2014 года.
- ↑ Intel Processors (24 апреля 2012). Архивировано 24 апреля 2012 года.
- ↑ History of Computers and Computing, Birth of the modern computer, Electronic computer, Cray computers of Seymour Cray. history-computer.com. Дата обращения: 25 мая 2017. Архивировано 8 ноября 2016 года.
- ↑ Drolez, Ludovic Lud's Open Source Corner. Дата обращения: 16 сентября 2014. Архивировано 9 марта 2020 года.
- ↑ LINKS-1 Computer Graphics System: 257× Zilog Z8001 [1] Архивировано 7 мая 2017. at 10 MHz [2] Архивировано 6 октября 2014. (2,5 MIPS [3] Архивировано 9 июня 2015.) each