In che modo i microcontrollori raggiungono prestazioni> 1 MIPS / MHz?


19

Come questo , che fa 1,49 DMIPS / MHz. Anche con il pipelining c'è ancora solo 1 fase di esecuzione per ciclo, non è vero?


L'unica cosa tipica superscalare in questo segmento di microcontrollori è MADD: moltiplicare e aggiungere in un singolo ciclo. Anche se, non aiuta molto in Drystone.
Bars Mons

I DSP sono microcontrollori e possono avere implementazioni hardware di trasformazione di Fourier, moltiplicazione di array, ecc. Contano anche? Questa misurazione si applica qui? Anche i DPS molto vecchi potevano eseguire 8 moltiplicazioni su 16 registri diversi in un'unica istruzione.
vsz

5
Ci sono bugie, dannatamente bugie e parametri di riferimento ...

Risposte:


18

DMIPS e MIPS non sono gli stessi. DMIPS è l'acronimo di "Dhrystone MIPS", ed è uno standard per confrontare le prestazioni di diversi microcontrollori / microprocessori attraverso diversi set di istruzioni. Lo standard non è più così nuovo (*), quindi ciò che il processore di riferimento potrebbe fare a 1 DMIPS / MHz in 1 secondo potrebbe richiedere un controller più avanzato 670 ms alla stessa velocità di clock, solo perché eseguirà alcune azioni in 1 istruzione mentre l'altro controller potrebbe richiedere 2 istruzioni o un'istruzione che richiede più cicli della macchina.

Un'architettura a 16 bit, ad esempio, avrà in genere prestazioni Dhrystone migliori di un'architettura a 8 bit e una a 32 bit, come quella a cui ti riferisci, anche di più.


(*) m.Alin si riferisce al più recente benchmark CoreMark . Nota che questo è scritto in C, quindi in realtà stai includendo anche le prestazioni del compilatore nel risultato (proprio come Dhrystone, BTW).


Ma i risultati di Dhrystone dipendono anche dal compilatore (è anche scritto in C), giusto? Da Wikipedia: Le parti principali di Dhrystone sono sensibili alla capacità di un compilatore di ottimizzare il lavoro; quindi è più un benchmark del compilatore che un benchmark dell'hardware
m.,

1
@ m.Alin - Certo, non volevo suggerire diversamente. Chiarirò la mia risposta. Grazie per il feedback.
Stevenvh,

10

DMIPS è una misura relativa piuttosto che assoluta. A differenza di MIPS, in realtà misura la velocità con cui l'UC può fare qualcosa di utile invece di quanto velocemente esegue le istruzioni.

Come ogni benchmark ha i suoi limiti, ma un modo semplice di vederlo è la velocità con cui può completare il codice di benchmark rispetto a un VAX 11/780 (una macchina 1 MIPS)
Quindi, ad esempio, se il tuo uC completa il benchmark 100 volte più velocemente rispetto a un VAX 11/780, hai una macchina 100DMIPS. Se funziona a 100 MHz, è valutato a 1 DMIPS / MHz.

Si noti che il DMIPS pubblicizzato di solito non è raggiungibile nell'uso normale, specialmente su grandi UC con velocità flash, prefetch, tempi di attesa / mancati, ecc. Ecco una buona discussione delle prestazioni DMIPS PIC32. Questo collegamento ha un codice Dhrystone per i microcontrollori.


Il tuo link di Wikipedia dice che lo standard Drystone ha già 28 anni. Sai se esistono strumenti di misurazione delle prestazioni più aggiornati? Grazie.
Federico Russo,

3
@FedericoRusso CoreMark
m.Alin

@FedericoRusso: La cosa sulla misurazione delle prestazioni è che è comparativa. Se si modifica il metodo di confronto, tutti i risultati esistenti vengono resi inutili. Da qui la longevità di Dhrystone.
Clifford,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.