Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Relazione tra MIPS e clock

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[1] Relazione tra MIPS e clock

Messaggioda Foto UtenteDavide90 » 8 feb 2015, 11:34

Salve a tutti, ho bisogno di un aiuto.
Sapete mica dirmi quale relazione c'è tra velocità della CPU e velocità del clock in termini di esecuzione dell'istruzione macchina, in tutti gli esempi che ho trovato un giro si parla sempre di velocità di esecuzione dell'istruzione pari a FOSC/4(velocità di clock) non si fa mai riferimento alla velocità della CPU. Sapete spiegarmi il motivo? Supponendo di avere più o meno lo stesso codice ,e la stessa identica frequenza di clock , ma diverse velocità di CPU , l'istruzione verrebbe eseguita con velocità maggiore sulla macchina con velocità CPU maggiore?
Grazie
Avatar utente
Foto UtenteDavide90
29 6
Frequentatore
Frequentatore
 
Messaggi: 130
Iscritto il: 5 lug 2012, 11:34

3
voti

[2] Re: Relazione tra MIPS e clock

Messaggioda Foto Utenteboiler » 9 feb 2015, 1:37

Davide90 ha scritto:Sapete mica dirmi quale relazione c'è tra velocità della CPU e velocità del clock in termini di esecuzione dell'istruzione macchina


Non c'è nessuna relazione.

Il valore in MIPS indica quanti milioni di operazioni (di tipo integer) vengono eseguite dal processore in un secondo. Ovvero, per esempio, quante addizioni di due numeri da n bit possono essere realizzate.

A dipendenza dell'architettura del processore, l'ALU ci metterà piú o meno cicli di clock per eseguire ogni singola addizione.

Facciamo un esempio concreto: in un moderno Cortex-M3 è implementato l'instruction set Thumb-2, in cui la moltiplicazione di due interi da 32 bit avviene in un unico ciclo di clock. Se il microcontroller lavora a 16 MHz e noi eseguissimo solo moltiplicazioni, avremmo 16 MIPS.
Ora prendiamo uno storico Intel 8080. Qui non abbiamo nessun supporto per i numeri a 32 bit, quindi dobbiamo effettuare la moltiplicazione in un loop che su 8 bit prende circa 10000 (!) cicli. L'8080 lavorava a 2 MHz, ma immaginiamo di mettere la stessa architettura su un processo CMOS odierno in modo da portarlo anche lui a 16 MHz. In tal caso avremmo clock uguali, ma solo 0.0016 MIPS.

Come detto, questo esempio numerico si basa sull'assunzione (idiota) che noi si facciano solo moltiplicazioni a 32 bit tutto il tempo. In realtà la cosa è ancora piú complicata perché un programma viene tradotto dal compiler in una serie di istruzioni. A dipendenza del compiler, questo avviene in maniera piú o meno efficiente. Nel mondo reale, ci sono principalmente tre "programmi" usati per determinare la performance di un processore: Whetstone (per applicazioni generiche, operazioni miste), Dhrystone (come Whetstone, ma senza operazioni floating point) e Linpack (solo floating point, roba per clusters e numerica).

Ci sono poi operazioni (come la divisione) che non durano sempre lo stesso numero di cicli, dipende dagli operandi.

Come vedi è un bel pasticcio.

Boiler
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5599
Iscritto il: 9 nov 2011, 12:27

0
voti

[3] Re: Relazione tra MIPS e clock

Messaggioda Foto UtenteDavide90 » 9 feb 2015, 19:38

Grazie mille!! Mi hai chiarito un bel dubbio!
Avatar utente
Foto UtenteDavide90
29 6
Frequentatore
Frequentatore
 
Messaggi: 130
Iscritto il: 5 lug 2012, 11:34


Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti