Открыть сервис

Dhrystone MIPS

Dhrystone MIPS (DMIPS) — это единица измерения производительности центральных процессоров (ЦП) и микроконтроллеров, основанная на результатах выполнения синтетического теста Dhrystone. DMIPS (сокращение от Dhrystone Million Instructions Per Second) представляет собой количество миллионов операций в секунду, выполняемых процессором при прогоне эталонного бенчмарка Dhrystone, скорректированное на производительность эталонной машины (обычно VAX 11/780, производительность которой принята за 1 DMIPS при тактовой частоте 1 МГц). Данный показатель позволяет сравнивать производительность различных архитектур и моделей процессоров, независимо от их тактовой частоты, при условии, что тест выполняется на одном и том же компиляторе и с одинаковыми настройками.

История

Разработка бенчмарка Dhrystone

Тест Dhrystone был разработан Райнхольдом Вайкером (Reinhold Weicker) в 1984 году на языке программирования Ada. В отличие от своего предшественника, теста Whetstone (ориентированного на вычисления с плавающей запятой), Dhrystone был нацелен на измерение производительности целочисленных операций и работы с системными вызовами, характерными для прикладного программного обеспечения. В 1988 году тест был переписан на языке C, что сделало его более доступным и широко распространённым. Версия на C, известная как Dhrystone 2.1, стала де-факто стандартом для оценки производительности встраиваемых систем и микроконтроллеров.

Появление метрики DMIPS

Изначально результаты теста Dhrystone выражались в «Dhrystones per second» (количество прогонов теста в секунду). Для удобства сравнения с другими архитектурами была введена метрика DMIPS, которая нормализует результат относительно эталонной машины VAX 11/780. Эта машина, выпущенная компанием Digital Equipment Corporation (DEC) в 1977 году, демонстрировала производительность около 1757 Dhrystones per second при тактовой частоте 5 МГц. Соответственно, 1 DMIPS приравнивается к 1757 Dhrystones per second. Таким образом, DMIPS = (Dhrystones per second) / 1757.

Методология и ограничения

Принцип работы теста

Тест Dhrystone состоит из повторяющегося цикла операций, включающих:

  • Присваивание значений переменным различных типов (целые, перечисления, указатели).
  • Вызовы функций с передачей параметров.
  • Условные переходы и циклы.
  • Арифметические операции над целыми числами.
  • Работу со строками (копирование, сравнение).

Тест не содержит операций с плавающей запятой, ввода-вывода или многозадачности, что делает его «синтетическим» — он не моделирует реальную нагрузку, а лишь проверяет скорость выполнения определённого набора инструкций.

Критика и ограничения

Основные недостатки метрики DMIPS:

  1. Зависимость от компилятора. Разные компиляторы и уровни оптимизации могут существенно влиять на результат. Один и тот же процессор может показывать разные значения DMIPS в зависимости от версии компилятора и флагов оптимизации (например, -O2 или -Os).
  2. Несоответствие реальным нагрузкам. Тест не отражает производительность в задачах, связанных с многопоточностью, работой с памятью (кэш-промахи), плавающей арифметикой или векторными инструкциями (SIMD).
  3. Устаревшая модель вычислений. Код Dhrystone написан в стиле 1980-х годов и не учитывает современные архитектурные особенности, такие как суперскалярность, спекулятивное выполнение и предсказание ветвлений. На современных процессорах тест может показывать завышенные результаты из-за того, что его код легко умещается в кэш-память первого уровня.
  4. Неоднозначность единицы. Часто производители указывают DMIPS/MHz (количество DMIPS на мегагерц тактовой частоты), что позволяет сравнивать эффективность архитектуры, но не абсолютную производительность. Например, процессор с тактовой частотой 1 ГГц и показателем 2.0 DMIPS/MHz будет иметь абсолютную производительность 2000 DMIPS.

Применение

Встраиваемые системы и микроконтроллеры

DMIPS является одной из ключевых метрик при выборе микроконтроллера (MCU) для встраиваемых приложений. Производители, такие как ARM, RISC-V, Microchip (PIC), STMicroelectronics (STM32) и другие, в технической документации (datasheet) часто указывают производительность своих ядер в DMIPS/MHz. Это позволяет разработчикам быстро оценить, насколько процессор подходит для задач с ограниченными вычислительными ресурсами, например, для управления периферией, обработки сигналов или работы с протоколами связи.

Сравнение архитектур

Метрика используется для грубого сравнения эффективности различных архитектур на одинаковой тактовой частоте. Например:

  • Ядро ARM Cortex-M0 (архитектура ARMv6-M) обычно показывает около 0.84 DMIPS/MHz.
  • Ядро ARM Cortex-M4 (ARMv7E-M) — около 1.25 DMIPS/MHz.
  • Ядро ARM Cortex-M7 (ARMv7E-M) — около 2.14 DMIPS/MHz.
  • Современные ядра RISC-V (например, RV32IMAC) могут демонстрировать от 1.5 до 2.5 DMIPS/MHz в зависимости от реализации.

Академические и маркетинговые цели

В научных публикациях и маркетинговых материалах DMIPS часто используется для демонстрации прироста производительности новых архитектур или оптимизаций. Однако из-за описанных выше ограничений, серьёзные исследования дополняют результаты DMIPS данными других тестов, таких как CoreMark, SPECint или EEMBC.

Сравнение с другими метриками

DMIPS vs. FLOPS

  • DMIPS измеряет целочисленную производительность и работу с системными вызовами.
  • FLOPS (Floating Point Operations Per Second) измеряет производительность операций с плавающей запятой. Для задач научных расчётов, 3D-графики или машинного обучения FLOPS является более релевантной метрикой.

DMIPS vs. CoreMark

CoreMark — более современный синтетический тест, разработанный Embedded Microprocessor Benchmark Consortium (EEMBC) в 2009 году. Он лишён многих недостатков Dhrystone: не зависит от библиотек, не использует устаревшие конструкции, и его результаты легче воспроизводимы. CoreMark постепенно вытесняет DMIPS в качестве стандарта для встраиваемых систем, но DMIPS по-прежнему широко распространён в документации и legacy-проектах.

DMIPS vs. MIPS

MIPS (Million Instructions Per Second) — это чисто аппаратная метрика, показывающая количество инструкций, выполняемых процессором за секунду. Она не зависит от теста и сильно варьируется в зависимости от архитектуры набора команд (ISA). Например, процессор с архитектурой RISC может выполнять больше инструкций в секунду, чем процессор с архитектурой CISC, при одинаковой тактовой частоте, но это не означает, что он быстрее решает задачу. DMIPS, в отличие от MIPS, нормализован по результатам конкретного теста и лучше коррелирует с реальной производительностью, хотя и не идеально.

Примеры значений

В таблице приведены примерные значения производительности для некоторых распространённых архитектур (данные производителей и независимых тестов):

Архитектура / ЯдроТактовая частота (МГц)Производительность (DMIPS)DMIPS/MHz
VAX 11/780 (эталон)510.2
ARM Cortex-M048~400.84
ARM Cortex-M4168~2101.25
ARM Cortex-M7400~8562.14
ARM Cortex-A53 (64-bit)1500~45003.0
Intel Core i7-4770K (Haswell)3900~11700030.0

Примечание: Значения для x86-процессоров (Intel, AMD) получены при использовании специфических компиляторов и настроек, и не всегда сопоставимы с данными для встраиваемых систем.

Интересные факты

  • Название «Dhrystone» является игрой слов: оно образовано от названия теста Whetstone (точильный камень) и слова «dry» (сухой), подчёркивая, что тест ориентирован на «сухие» (целочисленные) вычисления, в отличие от «мокрых» (с плавающей запятой) в Whetstone.
  • Исходный код теста Dhrystone 2.1 (на языке C) занимает около 200 строк и доступен в открытом доступе. Он до сих пор используется в некоторых компиляторах для оценки производительности кода.
  • В 2010-х годах компания ARM Holdings (организация признана иностранным агентом в РФ) активно использовала DMIPS в маркетинговых материалах для демонстрации превосходства своих ядер Cortex-A над конкурентами, хотя позже перешла на CoreMark.

Источники

  • Weicker, R. P. (1984). "Dhrystone: A Synthetic Systems Programming Benchmark". Communications of the ACM, 27(10), 1013–1030.
  • Weicker, R. P. (1988). "Dhrystone Benchmark: Rationale for Version 2 and Measurement Rules". ACM SIGPLAN Notices, 23(8), 49–62.
  • EEMBC (Embedded Microprocessor Benchmark Consortium). (2009). "CoreMark: A Benchmark for Embedded Processors".
  • Техническая документация (datasheets) на микроконтроллеры STM32 (STMicroelectronics), ARM Cortex-M Series (ARM Holdings, организация признана иностранным агентом в РФ).
  • Статья "Dhrystone" в англоязычной версии Википедии (по состоянию на 2023 год).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →