Как микроконтроллеры достигают производительности> 1 MIPS / МГц?


19

Как этот , который делает 1,49 DMIPS / МГц. Даже при конвейерной обработке все еще только 1 этап выполнения за цикл, не так ли?


Единственная типичная суперскалярная вещь в этом сегменте микроконтроллера - MADD - умножение и добавление за один цикл. Хотя это не очень помогает в Drystone.
BarsMonster

DSP - это микроконтроллеры, и они могут иметь аппаратную реализацию преобразования Фурье, умножения массива и т. Д. Они также учитываются? Это измерение применимо здесь? Даже очень старые DPS могли выполнять 8 умножений на 16 разных регистрах в одной инструкции.
вс

5
Есть ложь, проклятая ложь и тесты ...

Ответы:


18

DMIPS и MIPS - это не одно и то же. DMIPS расшифровывается как «Dhrystone MIPS», и это стандарт для сравнения производительности разных микроконтроллеров / микропроцессоров в разных наборах команд. Стандарт уже не так уж нов (*), поэтому то, что эталонный процессор может делать на частоте 1 DMIPS / МГц за 1 секунду, может занять более продвинутый контроллер 670 мс с той же тактовой частотой, просто потому что он будет выполнять некоторые действия в одной инструкции тогда как другому контроллеру могут понадобиться 2 инструкции или инструкция, требующая большего количества машинных циклов.

Например, 16-битная архитектура, как правило, будет иметь лучшую производительность Dhrystone, чем 8-битная, а 32-битная, как та, на которую вы ссылаетесь, даже больше.


(*) m.Alin относится к более свежему тесту CoreMark . Обратите внимание, что это написано на C, так что на самом деле вы также учитываете производительность компилятора (как Dhrystone, BTW).


Но результаты Dhrystone также зависят от компилятора (он также написан на C), верно? Из Википедии: Основные части Dhrystone подвержены способности компилятора оптимизировать работу; таким образом, это скорее тест компилятора, чем тест аппаратного обеспечения
m.Alin

1
@ m.Alin - Конечно, я не хотел предлагать иначе. Я уточню свой ответ. Спасибо за ответ.
Стивенвх

10

DMIPS является относительным измерением, а не абсолютным. В отличие от MIPS, он фактически измеряет, насколько быстро ОК может сделать что-то полезное, а не просто как быстро он выполняет инструкции.

Как и у любого бенчмарка, у него есть свои ограничения, но простой способ взглянуть на это - как быстро он может завершить тестовый код по сравнению с VAX 11/780 (машина с 1 MIPS).
Так, например, если ваш пользовательский контроллер завершает тестирование в 100 раз быстрее чем VAX 11/780, у вас есть машина 100DMIPS. Если он работает на частоте 100 МГц, то он оценивается в 1 DMIPS / МГц.

Обратите внимание, что рекламируемый DMIPS обычно недостижим при обычном использовании, особенно на больших УК с частотой вспышки, предварительной выборкой, временем ожидания / пропаданием и т. Д. Вот хорошее обсуждение производительности DMIPS PIC32. Эта ссылка содержит некоторый код Dhrystone для микроконтроллеров.


Ваша ссылка на википедию говорит, что стандарту Drystone уже 28 лет. Знаете ли вы, есть ли более современные инструменты измерения производительности? Благодарю.
Федерико Руссо

3
@FedericoRusso CoreMark
м.Алин

@FedericoRusso: Суть измерения производительности в том, что оно сравнительное. Если вы измените метод сравнения, все существующие результаты окажутся бесполезными. Отсюда долговечность Дристона.
Клиффорд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.