Cicli di Clock

Quanti cicli di clock servono per eseguire l’istruzione ld r1,var1 sapendo che ogni microperazione necessita di un ciclo di clock e la memoria 4 cicli aggiuntivi? (si consideri una sola operazione per la decodifica e l’incremento del PC)

Di che architettura si sta parlando? (presumo intel viste le micro operazioni)

Comunque non mi pare una cosa difficile, se ci pensi ci arrivi da solo. Se hai già una soluzione postala che la si commenta se è sbagliata

Si…intel 8086…io avevo pensato ad una sequenza di questo tipo:
MAR <-IR[var1]
MDR <-M[MAR]
R[r1] <-MDR

Quindi 7 cicli di clock…però la risposta corretta sarebbe 15…non capisco dove li prenda gli altri cicli di clock…

L’accesso alla memoria sono 4 cicli per mandare l’indirizzo, attivarla, trovare il dato più 4 cicli per ricevere il dato? Oppure son 4 cicli fra inviare l’indirizzo e ricevere il dato?

nel primo caso questo:

MAR <-IR[var1]
MDR <-M[MAR]

farebbe già 10 colpi di clock. Si potrebbe intendere il testo come: qualunque iterazione con la memoria costa +4 cicli, quindi, dato che di iterazioni con la memoria ne faccio due (indirizzo, ricevo) siamo a 8, aggiungiamo il costo della micro op. siamo a 10; aggiungiamo l’ultima micro op. siamo a 11

Poi non conosco i dettagli dell’8086 perché studiai il MIPS, però avrà anche lui una fase di decodifica delle istruzioni che costa altri cicli.

Visto che(si consideri una sola operazione per la decodifica e l’incremento del PC) si arriverebbe a 12…mancano tre cicli perché come risultato da 15…

c’è anche l’istruction fetch che costerà anche lei 1 ciclo e siamo a 13 :smiley: ancora due e forse ci siamo

Poi, potrebbero esserci dei cicli post-esecuzione.

(sto inventando, ripeto che non conosco l’8086 :slight_smile: )

Potrebbero essere queste le tre che mancano:
MAR <- PC
MDR <- M[MAR]
IR <- MDR

Però torniamo a supporre che: 4 cicli per l’accsso in RAM sia full-optional.

Quello che hai scritto è il fetch dell’istruzione che quindi costa 7

ci aggiungiamo la decodifica 1

e infine torniamo al codice che avevi scritto che costa 7

7+1+7=15

abbiam fatto tornare i conti :smiley:

Speriamo di non averlo troppo forzato :slight_smile:

Il ragionamento è giusto:
Fetch dei dati
Decodifica
Esecuzione
se poi non è quello che voleva il prof. è un altro discorso :smiley:

Facciamo che il prof per questa volta si accontenta di questo ragionamento :slight_smile: