Capitolo 11 La memoria cache



Похожие документы
Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale

La memoria centrale (RAM)

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Architettura dei calcolatori II parte Memorie

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Le gerarchie di memoria: memoria cache

Gestione della Memoria

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

Laboratorio di Informatica

Organizzazione della memoria principale Il bus

IL PROBLEMA DELLA MEMORIA

Architettura hardware

DMA Accesso Diretto alla Memoria

Memoria secondaria. Architettura dell elaboratore. Memoria secondaria. Memoria secondaria. Memoria secondaria

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Architetture Avanzate dei Calcolatori. Valeria Cardellini. Divario delle prestazioni processore- memoria

Organizzazione della memoria

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Gestione della memoria centrale

Sistemi Operativi. 5 Gestione della memoria

Architettura dei computer

Gerarchia di memorie

Struttura del calcolatore

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Gerarchia delle memorie

GESTIONE DELLA MEMORIA CENTRALE

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

ARCHITETTURA DEL CALCOLATORE

ARCHITETTURA CALCOLATORI: Memoria di massa (o secondaria)

COME È FATTO IL COMPUTER

MEMORIA GERARCHIE DI MEMORIA

Esercizi su cache. Università Roma Tre

C. P. U. MEMORIA CENTRALE

Sistema operativo: Gestione della memoria

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Calcolatori Elettronici

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

Esame di INFORMATICA

Sistemi operativi. Esempi di sistemi operativi

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

Appunti sulla Macchina di Turing. Macchina di Turing

Capitolo Silberschatz

1.4b: Hardware. (Memoria Centrale)

Architettura hardware

Architettura di un calcolatore

Progettazione Fisica FILE

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

CPU. Maurizio Palesi

Laboratorio di Informatica

SISTEMI OPERATIVI. Gestione dei dischi. Gestione dei dischi e sistemi RAID

Testi di Esercizi e Quesiti 1

Unità Periferiche. Rete Di Controllo

Sistemi a Microprocessore

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Gestione della memoria centrale

Informatica - A.A. 2010/11

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

Architettura di un calcolatore: introduzione

Appunti di informatica. Lezione 6 anno accademico Mario Verdicchio

Memoria Virtuale. Lezione 29 Sistemi Operativi

Strutturazione logica dei dati: i file

STRUTTURE DEI SISTEMI DI CALCOLO

Calcolo numerico e programmazione Architettura dei calcolatori

LABORATORIO DI SISTEMI

La Gestione delle risorse Renato Agati

Approccio stratificato

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Esercitazione E6 Esercizi d esame

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E

La Memoria Virtuale Ottimizzazione della memoria centrale

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Транскрипт:

Capitolo 11 La memoria cache Gerarchie di Memoria Dati sperimentali mostrano che i riferimenti alla memoria godono della proprietà di località spaziale e temporale. Località spaziale: tendenza a generare riferimenti a zone contigue Località temporale: tendenza a riprodurre riferimenti generati in precedenza Conviene organizzare la memoria come una gerarchia

Gerarchie di memoria Ai livelli più bassi memorie meno veloci e più capienti Ai livelli più alti memorie più veloci di modeste dimensioni Memoria Ausiliaria: Dischi Memoria principale: DRAM Cache: SRAM Gli stessi registri di CPU possono essere considerati come il livello più alto della gerarchia Organizzazione Il trasferimento tra livello avviene per blocchi Un numero predefinito di blocchi di un livello superiore costituisce un blocco del livello inferiore La Cache La cache è il livello superiore alla memoria centrale I blocchi di cache si chiamano linee I blocchi della memoria centrale si chiamano pagine Un pagina contiene un numero predefinito di linee (ovviamente il numero è una potenza del 2)

La Cache Un indirizzo generato dal processore viene cercato nella memoria Cache: se si trova => hit e quindi viene direttamente trasmesso al processore Se non si trova => miss si ricerca nel livello di memoria inferiore Prestazioni tasso di hit (h) : rapporto tra il numero di hit nel livello superiore e il numero totale dei riferimenti; tasso di miss (m) : rapporto tra il numero di miss nel livello superiore e il numero totale dei riferimenti. m = 1 -h tc : tempo di accesso alla cache tp : tempo di penalizzazione (tempo per accedere alla memoria centrale e per portare la linea in cache) t : tempo medio di accesso alla cache t= h tc + m tp

La Cache Occorre una directory per rintracciare la presenza di un dato nella cache Per il principio della località spaziale, conviene copiare non la singola parola indirizzata, bensì l intera linea => la linea è l unità di trasferimento fra Cache e memeoria principale Tempo di penalizzazione: Tp = T ACC M + T trasf Dove T ACC è il tempo di accesso della mem. princ. M T trasf = è il tempo di traferimento verso la cache Cache a mappatura diretta

Cache a mappatura diretta una data linea di memoria (centrale) viene sempre mappata nella stessa posizione di cache La memoria centrale si suddivide (logicamente) in blocchi della stessa dimensione della cache Si indichi con W = 2 w il numero di parole per linea C la capacità della cache (in numero di parole) L = 2 l il numero di linee nella cache Ovviamente C = L W (se una parola è di 4 byte, allora la capacità della cache misurata in numero di byte è pari a 4C) Cache a mappatura diretta Interpretazione dell indirizzo (di parola) : La memoria centrale più essere vista come composta da B = 2 b blocchi di dimensione C

Mappatura diretta Mappatura diretta NB: il precedente è un modello (non corrisponde esattamente a uno schema realizzativo) n L identifica la (posizione della) linea in DATA RAM e in TAG RAM Il contenuto di questa posizione di Tag RAM viene confrontato con il campo n B dell indirizzo generato dal processore Se il confronto indica uguaglianza (hit) la linea è in cache La figura precedente mostra lo schema di principio per estrarre la parola indirizzata Nella pratica, i due campi a destra dell indirizzo individuano complessivamente la parola (il byte) del blocco di lunghezza C.

Mappatura diretta Pregi: Semplicità Velocità Difetti: Possibile alto tasso di collisioni Cache completamente associativa Quando una qualunque linea di memoria centrale può essere portata in qualunque posizione di cache. Il Tag è il numero di linea entro la memoria centrale Comporta una memoria CAM (Content Addressable Memory) Il campo n X dell indirizzo viene confrontato (in parallelo) con tutte le posizioni di TAG RAM La DATA RAM può essere indirizzata solo dopo che si è concluso il confronto con il contenuto di TAG RAM Vantaggio: Minime collisioni Svantaggi: Lenta Costosa

Cache semi-associativa Cerca di prendere il meglio della soluzione a mappatura diretta e della completamente associativa: Efficienza (tempo di accesso) della soluzione a mappatura diretta Senza l elevato tasso di collisioni di questa La cache è divisa in vie La medesima linea si mappa sulla medesima posizione di qualunque via

La scrittura In caso di Write-miss: Write-allocate: porta in cache la linea mancante Write-non-allocate: la linea non viene portata in cache (viene solo aggiornata la memoria centrale). Ha senso in considerazione del fatto che: il numero di scritture rispetto a quello delle letture è relativamente basso A differenza delle operazioni di fetch (alta probabilità di letture sequenziali contigue), è probabile che gli indirizzi di scrittura siano sparsi In caso di Write-hit (consistenza fra Mcache e Mprinc): Write-through (scrittura in memoria immediata): viene aggiornata la cache e al tempo stesso la parola di memoria Write-back (scrittura in memoria differita): viene aggiornata solo la cache. La memoria centrale viene aggiornata

Linee di cache: stato Validità di una linea di cache (LdC): inizialmente il contenuto di una LdC non è significativo. Man mano che vengono caricate LdC si avranno linee valide e non-valide Serve un bit di validità In caso di operazioni di I/O è possibile che linee di memoria centrale siano aggiornate. Corrispondente LdC (se esiste) deve transire in uno stato non valido Oppure che linee trasferite da dispositivi di I/O verso l esterno non siano aggiornate per effetto del copy-back (ma anche nel caso di copy-through ci possono essere problemi di sincronizzazione) Soluzione: memoria interessata ai trasferimenti I/O viene resa non cacheable Linee di cache: rimpiazzamento LRU (Least Recently Used): principio standard per le CPU attuali FIFO (First in First Out): non praticata RAND: casuale, le prestazioni sono comparabili a LRU

Prestazioni Divisa/unificata Cache unica per dati e istruzioni o cache separate (per dati e istruzioni) Agli albori dell'impiego le cache erano unificate Le macchine attuali hanno cache divise Cache divise Gli accessi relativi alle istruzioni hanno il livello di località alto, per queste il valore di hit è alto Cache istruzioni più semplici da realizzare (di solito sola lettura) Determinano una architettura equivalente alla Harvard Non è detto che diano sempre le migliori prestazioni (a parità di dimensione globale (Cunif = Cdati + Cistr) sotto certe condizioni di carico la cache unificata potrebbe essere superiore)

Cache multilivello Rappresentano la pratica corrente Gerarchia di memoria più granulare, sfruttando al meglio le differenti caratteristiche tecnologiche dei componenti Il livello più alto (L1) ha una dimensione di un ordine di grandezza inferiore a quella del livello inferiore(l2) Un miss in L1 determina la ricerca della linea in L2; se la linea non è neanche in L2: Viene letto un blocco di linee (contigue) da M e portate in L2 La linea indirizzata (appartenente al blocco) viene trasferita in L1 Cache multilivello -prestazioni t c tempo medio di accesso alla cache h 1 / h 2 tassi di hit (L1/L2) m 1 tasso di miss L1 m 2 tasso di miss L2 (n. fallimenti/n. accessi a L2) t c1 tempo di accesso alla cache L1 t c2 tempo di accesso alla cache L2 (comprende anche il tempo per trasferire la linea da L2 a L1) t p tempo di penalizzazione su L2 ( tempo di accesso a L2 più tempo necessario a portare il blocco in L2) t= h tc + m tp => t c = h 1 t c1 + m 1 (h 2 t c2+ m 2 t p )

Confronto livelli di Cache La tabella ha valore indicativo Posizionamento

Posizionamento Cache fisica: quando è posta a valle del meccanismo di traduzione degli indirizzi logici (virtuali) Più semplici Cache virtuale: quando è posta a monte del meccanismo di traduzione degli indirizzi (più efficienti) Se il dato è in cache non c'è bisogno di passare attraverso la traduzione degli indirizzi Ha il problema dell'alias: lo stesso indirizzo virtuale può appartenere a due distinti processi (con spazi di indirizzi diversi) Invalidazione di tutta la cache (cache flush) quando c è un cambio di contesto (processo) Aggiungere al Tag il Tag di processo, in modo da verificare se l'indirizzo appartiene al processo correntemente in esecuzione.