W jaki sposób mikrokontrolery osiągają wydajność> 1 MIPS / MHz?

19

Tak jak ten , który robi 1,49 DMIPS / MHz. Nawet w przypadku potokowania jest jeszcze tylko jeden etap wykonania na cykl, prawda?

Federico Russo
źródło
Jedyną typową superskalarną rzeczą w tym segmencie mikrokontrolera jest MADD - mnożenie i dodawanie w jednym cyklu. Chociaż w Drystone niewiele to pomaga.
BarsMonster,
Procesory DSP są mikrokontrolerami i mogą mieć sprzętowe implementacje transformacji Fouriera, mnożenia tablic itp. Czy one również się liczą? Czy ten pomiar ma tutaj zastosowanie? Nawet bardzo stare DPS mogą wykonać 8 multiplikacji na 16 różnych rejestrach w jednej instrukcji.
vsz
5
Są kłamstwa, cholerne kłamstwa i testy ...

Odpowiedzi:

18

DMIPS i MIPS to nie to samo. DMIPS oznacza „Dhrystone MIPS” i jest standardem do porównywania wydajności różnych mikrokontrolerów / mikroprocesorów w różnych zestawach instrukcji. Standard nie jest już tak nowy (*), więc to, co procesor referencyjny mógłby zrobić przy 1 DMIPS / MHz w ciągu 1 sekundy, może zająć bardziej zaawansowanemu kontrolerowi 670 ms przy tej samej częstotliwości taktowania, tylko dlatego, że wykona pewne czynności w 1 instrukcji podczas gdy drugi sterownik może potrzebować 2 instrukcji lub instrukcji wymagającej większej liczby cykli maszyny.

Na przykład architektura 16-bitowa będzie zazwyczaj miała lepszą wydajność Dhrystone niż architektura 8-bitowa, a 32-bitowa, taka jak ta, o której mówisz, nawet więcej.


(*) m.Alin odnosi się do najnowszego testu porównawczego CoreMark . Zauważ, że jest to napisane w C, więc w rzeczywistości w wynikach uwzględniono również wydajność kompilatora (podobnie jak Dhrystone, BTW).

stevenvh
źródło
Ale wyniki Dhrystone zależą również od kompilatora (jest również napisany w C), prawda? Z Wikipedii: Główne części Dhrystone są podatne na zdolność kompilatora do optymalizacji pracy; dlatego jest to bardziej test porównawczy kompilatora niż test sprzętowy
m.Alin
1
@ m.Alin - Jasne, nie chciałem sugerować inaczej. Wyjaśnię moją odpowiedź. Dziękujemy za opinię.
stevenvh
10

DMIPS jest miarą względną, a nie bezwzględną. W przeciwieństwie do MIPS, faktycznie mierzy to, jak szybko uC może zrobić coś użytecznego, a nie tylko jak szybko wykonuje instrukcje.

Jak każdy test porównawczy, ma swoje ograniczenia, ale prostym sposobem na sprawdzenie jest, jak szybko może ukończyć test porównawczy w porównaniu do VAX 11/780 (maszyna 1 MIPS).
Na przykład, jeśli twój uC wypełnia test 100 razy szybciej niż VAX 11/780, masz maszynę 100DMIPS. Jeśli działa z częstotliwością 100 MHz, to ma wartość 1 DMIPS / MHz.

Zauważ, że reklamowany DMIPS jest zwykle nieosiągalny podczas normalnego użytkowania, szczególnie na dużych komputerach z szybkością flash, pobieraniem wstępnym, czasami oczekiwania / braków itp. Oto dobra dyskusja na temat wydajności DICPS PIC32. Ten link zawiera kod Dhrystone dla mikrokontrolerów.

Oli Glaser
źródło
Twój link do Wikipedii mówi, że standard Drystone ma już 28 lat. Czy wiesz, czy istnieją bardziej aktualne narzędzia do pomiaru wydajności? Dzięki.
Federico Russo
3
@FedericoRusso CoreMark
m.Alin
@FedericoRusso: Rzecz w pomiarze wydajności polega na tym, że jest ona porównawcza. W przypadku zmiany metody porównania wszystkie istniejące wyniki stają się bezużyteczne. Stąd długowieczność Dhrystone.
Clifford,