Як мікроконтролери досягають> 1 MIPS / МГц?


19

Як і цей , який робить 1,49 DMIPS / МГц. Навіть при конвеєрному каналі все ще залишається лише 1 етап виконання циклу, чи не так?


Єдина типова суперскалярна річ у цьому сегменті мікроконтролерів - MADD - множення та додавання за один цикл. Хоча, в Drystone це не дуже допомагає.
BarsMonster

ЦСП є мікроконтролерами, і вони можуть мати апаратні реалізації перетворення Фур'є, множення масивів тощо. Чи враховують вони також? Чи застосовується це вимірювання тут? Навіть дуже старі DPS могли виконати 8 множень на 16 різних регістрах за одну інструкцію.
vsz

5
Є брехня, проклята брехня та орієнтири ...

Відповіді:


18

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

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


(*) m.Alin посилається на новіший орієнтир CoreMark . Зауважте, що це написано на C, тому насправді ви також включаєте продуктивність компілятора в результат (як і Dhrystone, BTW).


Але результати Dhrystone також залежать від компілятора (він також написаний на С), правда? З Вікіпедії: Основні частини Dhrystone чутливі до можливості компілятора оптимізувати роботу; таким чином, це скоріше тест-компілятор, ніж апаратний орієнтир
м.Алін

1
@ m.Alin - Звичайно, я не хотів пропонувати інше. Я уточню свою відповідь. Дякуємо за відгук.
stevenvh

10

DMIPS є відносним вимірюванням, а не абсолютним. На відміну від MIPS, він фактично вимірює, наскільки швидко UC може зробити щось корисне замість того, як швидко виконує вказівки.

Як і будь-який тест, він має свої обмеження, але простий спосіб його розгляду полягає в тому, наскільки швидко він може виконати контрольний код порівняно з VAX 11/780 (машина на 1 MIPS).
Так, наприклад, якщо ваш UC завершує показник в 100 разів швидше ніж VAX 11/780, у вас машина 100DMIPS. Якщо він працює на 100 МГц, то він оцінюється в 1 DMIPS / МГц.

Зауважте, що рекламоване DMIPS, як правило, недосяжне при звичайному використанні, особливо на великих UC зі швидкістю спалаху, попередньою програмою, часом очікування / пропусканням тощо. Ось хороша дискусія щодо продуктивності PIC32 DMIPS. На цьому посиланні міститься код Dhrystone для мікроконтролерів.


У вашому посиланні на вікіпедію сказано, що стандарту Drystone вже 28 років. Чи знаєте ви, чи є більш сучасні засоби вимірювання продуктивності? Спасибі.
Федеріко Руссо

3
@FedericoRusso CoreMark
м.Алін

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