Come questo , che fa 1,49 DMIPS / MHz. Anche con il pipelining c'è ancora solo 1 fase di esecuzione per ciclo, non è vero?
Come questo , che fa 1,49 DMIPS / MHz. Anche con il pipelining c'è ancora solo 1 fase di esecuzione per ciclo, non è vero?
Risposte:
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).
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.