Newsgroup: it.comp.hardware.cpu
Titolo: Bene, e ora... i MIPS! Che sono?

La stessa domanda per i MFLOPS... che sono?
MIPS è acronimo di Million of Instruction Per Second... sì, ma che
istruzioni?
E come si calcolano i MIPS? Solo coi benchmark? O ci dovrebbe essere un modo
generale?
Stesse domande per gli MFLOPS. E in più... cosa vuol dire? Millions of
FLoating-point Operations Per Second?
MaxArt

generale?
i mips\mflops sono unicamente un artefatto per gonfiare i benchmark a
piacere...
tempo fa ci fu un convegno in cui stabilirono quale fosse il test per
definire i mips\mflops di un processore, ma all'atto pratico fu solo un
compromesso arbitrario per tirar fuori il codice che piu' faceva comodo ai
produttori presenti a quel convegno....
---
    (iao!!oai)                                    (ICQ: 10860566)
    //.aurizio
    I bimbi buoni vanno in paradiso.
    I bimbi cattivi vanno dove gli pare!

 generale?
per un dato programma in esecuzione su una data macchina:
        Numero delle istruzioni eseguite
MIPS =  --------------------------------
        Tempo di esecuzione * 10^6
Vi sono forti limiti all'uso dei mips come termine di paragone tra macchine
diverse, infatti:
1) i mips considerano la frequenza delle istruzioni senza considerare il
   set delle istruzioni. Non è perciò possibile confrontare calcolatori con
   insiemi diversi di instruzioni.
   In parole povere se una cpu fa 100 Mips, ma dispone solo di add e sub,
   mentre un'altra fa solo 1 mips ma dispone di add, sub, div, mult, integrali,
   derivate e patatine....molto probabilemente la seconda sarà più veloce
   della prima pur facendo meno mips.
2) i mips dipendono dal programma utilizzato, quindi la medesima macchina non
   possiede un valore di mips univoco!!!
   Esempio:
   su un 486 eseguo un programma che fa solo MOV reg1,reg2 esso farà un certo
   numero di mips. Poi eseguo un programma che fa solo MULT reg1,reg2 ovviamente
   essendo la mult molto lenta esso farà molti meno mips del primo programma.
   Ma allora quali devo prendere ???
3) I mips possono avere avere un comportamento anomalo che può farli variare
   in modo inverso rispetto alle prestazioni!!!
   Ometto esempio per non dilungarmi troppo, prendilo per buono giuro che
   non baro ;-)
In senso generico quando si parla di mips si dovrebbe considerare un test
che esegua un 'fritto misto' di istruzioni, e comunque considerare una 
mescolanza che rifletta la casistica pratica.
          Numero di operazioni in virgola mobile in un programma
MFLOPS =  ------------------------------------------------------
                     Tempo di esecuzione * 10^6
Poichè tale misura è basata sulle 'operazioni' piuttosto che sulle 'istruzioni',
MFLOPS è considerato un paramentro più adatto rispetto ai MIPS per paragonare
macchine diverse (PIII versus ATHLON). Tale proprietà è dovuta al fatto che
in genere si assume che lo stesso programma, funzionando su diverse macchine,
esegua un numero diverso di istruzioni, ma sempre lo stesso numero di operazioni
(in virgola mobile).
Comuque valgono considerazioni del tutto analoghe a quelle che ho detto
per i mips.
Dovrebbe esserti chiaro come il mio p200 faccia più mflops di un Athlon1000 (se
io fo ray tracing e lui scrive in word :)  )!!
ciao.