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 ancora due e forse ci siamo
Poi, potrebbero esserci dei cicli post-esecuzione.
(sto inventando, ripeto che non conosco l’8086 )
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
Speriamo di non averlo troppo forzato
Il ragionamento è giusto:
Fetch dei dati
Decodifica
Esecuzione
se poi non è quello che voleva il prof. è un altro discorso
Facciamo che il prof per questa volta si accontenta di questo ragionamento