Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Esercizio su cache

G
GiovanniQuadraroli (1230 points)
10 28 38
in Teoria by (1.2k points)
salve professore, stavo svolgendo l'esercizio 4 dell'esame del 21-7-14 in cui veniva chiesto di calcolare le hit e le miss di una sequenza di address. Dopo aver calcolato la dimensione della cache ci viene chiesto di calcolare il tempo totale dell'esecuzione ed il nuovo CPI. Ho pensato ,per risolvere l'esercizio, di calcolarmi il tempo totale in cui la cpu esegue le istruzioni con il CPI che ci viene dato dal testo. A questo ho aggiunto il tempo impiegato per accedere alla memoria(dato dalle miss della seconda cache) ed infine , ribaltandomi l'equazione per il calcolo del tempo impiegato dalla cpu, di calcolarmi il nuiovo CPI. E' giusto come ragionamento? Attendo una sua risposta grazie in anticipo e scusi per il disturbo.
683 views

1 Answer

S
SkyLion (1020 points)
7 15 24
by (1.0k points)
reshown by

Se questo è il testo dell'esercizio a cui ti riferisci, ti chiede di calcolare il tempo totale che gli accessi impiegano, e quante istruzioni riesce ad eseguire la CPU in media, nell'arco di tempo che impiega per fare un accesso alla memoria.
Quindi sai che 1GHz corrisponde a 1 ns, e avendo 2 CPI, sappiamo che esegue un'istruzione ogni 2*1 = 2 ns. L'unica cosa che ti resta da fare è calcolare il tempo medio che impiega un accesso alla memoria (tempo totale / n. accessi) e dividerlo per il il tempo che ci impiega ad eseguire un'istruzione (2 ns).

G
GiovanniQuadraroli (1230 points)
10 28 38
by (1.2k points)
avrei ancora alcuni dubbi: per tempo totale intendi solo la somma dei tempi dovute alle miss e hit?
poi non capisco il perchè il cpi medio si calcola in questo modo scusami
S
SkyLion (1020 points)
7 15 24
by (1.0k points)
Si, per tempo totale intendo esattamente quanto ci mettono la cache e la ram a rispondere a queste richieste (hit L1*2ns + hit L2*10ns + miss*50ns).
Per il "CPI medio di questa sequenza di accessi", si intende quante istruzioni vengono svolte dalla CPU durante un accesso alla memoria (infatti sappiamo che la memoria
ha un tempo di accesso più lento rispetto alla velocità della CPU, quindi è lecito chiedersi: "Quante istruzioni ha eseguito il processore prima di ricevere una risposta dalla RAM?").
Però sappiamo che un accesso alla memoria non impiega sempre lo stesso tempo in quanto abbiamo a disposizione due livelli di cache. Quindi ha senso calcolarsi il tempo medio
di accesso alla RAM e poi farsi la domanda precedente.
Ad esmpio se noi sappiamo che la RAM impiega in media 10 ns per rispondere e il processore esegue un'istruzione in 2ns, vorrà dire che nel frattempo che la RAM risponde (10 ns),
la CPU avrà eseguito 5 istruzioni (2ns * 5 = 10ns). Quindi come formula generale possiamo dire (tempo medio per un accesso alla RAM / tempo per eseguire un'istruzione).
Spero di essere stato più chiaro questa volta :)
G
GiovanniQuadraroli (1230 points)
10 28 38
by (1.2k points)
Certo grazie mille. Sai dove posso trovare questo argomento sul libro per ripassato meglio?