Gerarchie di memoria I programmatori, per memorizzare i loro programmi e dati, necessiterebbero di memorie molto veloci e capienti La tecnologia permette solo di costruire memorie grandi e lente, ma poco costose memorie piccole e veloci, ma molto costose Conflitto tra esigenze programmatori vincoli tecnologici Soluzione: gerarchie di memoria piazziamo memorie veloci vicino alla CPU per non rallentare la dinamica di accesso alla memoria tramite fetch istr. e load/store Gerarchie di memoria Salvatore Orlando man mano che ci allontaniamo dalla CPU memorie sempre più lente e capienti soluzione compatibile con i costi . meccanismo dinamico per spostare i dati tra i livelli della gerarchia Arch. Elab. - S. Orlando 1 Arch. Elab. - S. Orlando 2 Gerarchie di memoria Dati 1997 SRAM Costi e capacità delle memorie latenze di accesso di 2-25 ns costo da $100 a $250 per MB tecnologia usata per i livelli più vicini all CPU (cache) DRAM latenze di accessi di 60-120 ns costo da $5 a $10 per MB tecnologia usata per la cosiddetta memoria principale Al livello 1 poniamo la memoria più veloce (piccola e costosa) Al livello n poniamo la memoria più lenta (grande ed economica) Dischi Arch. Elab. - S. Orlando 3 Scopo gerarchia e delle politiche di gestione delle memorie dare l'illusione di avere a disposizione una memoria grande (come al livello n) e veloce (come al livello 1) latenze di accesso di 10-20 milioni di ns (10-20 ms) costo da 10 a 20 per MB memoria stabile usata per memorizzare file memoria usata anche per contenere l'immagine (text/data) dei programmi in esecuzione = memoria (principale) virtuale Arch. Elab. - S. Orlando 4 Illusione = memoria grande e veloce ! All'inizio i nostri dati e i nostri programmi sono memorizzati nel livello n (più capiente e lenta) I blocchi di memoria man mano riferiti vengono fatti fluire verso i livelli più alti (memorie più piccole e veloci), più vicini alla CPU Problema: Cosa succede se un blocco riferito è già presente nel livello 1 (più alto) La CPU può accedervi direttamente, ma abbiamo bisogno di un meccanismo per trovare il blocco all'interno del livello 1 ! Problema: Cosa succede se i livelli più alti sono pieni Dobbiamo implementare una politica di rimpiazzo dei blocchi ! Arch. Elab. - S. Orlando 5 Terminologia Anche se i trasferimenti tra i livelli avvengono sempre in blocchi, questi hanno dimensione diversa, e (per ragioni storiche) nomi diversi abbiamo blocchi più piccoli ai livelli più alti (più vicini alla CPU) es. di nomi: blocco di cache e pagina Hit (Successo) quando il blocco cercato a livello i è stato individuato Miss (Fallimento) quando il blocco cercato non è presente al livello i Hit rate ) frequenza di Hit rispetto ai tentativi fatti per accedere blocchi al livello i Miss rate ) frequenza di Miss rispetto ai tentativi fatti per accedere blocchi al livello i Hit Time latenza di accesso di un blocco al livello i in caso di Hit Miss Penalty tempo per copiare il blocco dal livello inferiore Arch. Elab. - S Continua »
Andrea Cortellessa legge e commenta... guarda il video »