Gerarchie di memoria Paolo Meloni Universita’ degli studi di Cagliari.

Slides:



Advertisements
Presentazioni simili
Circuiti Aritmetico-Logici
Advertisements

La struttura fisica e logica di un elaboratore
Università degli Studi di Napoli Federico II Facoltà di Ingegneria Dipartimento di Informatica e Sistemistica Corso di Sistemi ad elevate prestazioni –
Gestione della Memoria
Informatica Generale Marzia Buscemi
Architettura di un sistema informatico Hardware
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Realizzazione del file system
Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.
Realizzazione del file system
Memorie.
LE MEMORIE Davide D’Amico.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Automi Cellulari Def. formale di AC e di AC unidimensionale
Algoritmi e strutture dati
La memoria cache Tecniche di rimpiazzo.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
La memoria I sistemi di memoria di un elaboratore possono essere suddivisi in: Memoria interna al processore Memoria principale Memoria secondaria.
La memoria I sistemi di memoria di un elaboratore possono essere suddivisi in: Memoria interna al processore Memoria principale Memoria secondaria.
Gerarchie di Memoria e Cache
memoria gestita staticamente:
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Università di Trieste Calcolatori Elettronici a.a Omero TuzziL01, Basi 1 Sommario: 1. Concetto di bit. 2. Indirizzi di memoria. 3. Ordinamento.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
La macchina di von Neumann
L’Architettura del Sistema di Elaborazione
Architettura dell’elaboratore
ARITMETICA BINARIA.
Il Calcolatore Elettronico
ELETTRONICA DIGITALE (II Parte)
L' ARCHITETTURA DI VON NEUMANN
Architettura del calcolatore
La gerarchia di memoria Ing. Rosa Senatore Università degli Studi di Salerno Corso di Calcolatori Elettronici Anno 2013/14.
ELETTRONICA DIGITALE (2^ Parte) (8)
BUS DI CPU M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
Sistemi Elettronici Programmabili: La Memoria Principale 6-1 Sistemi Elettronici Programmabili La memoria principale.
Reti Logiche A Lezione xx.x Dispositivi Programmabili
Migliorare le prestazioni delle cache
Architettura del calcolatore
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Esigenze di memoria per un sistema di calcolo –Dati –Istruzioni Obiettivi –Raggiungere i migliori compromessi.
Calcolatori Elettronici Il Processore (2)
La gerarchia di memorie (1) Calcolatori Elettronici Valeria Cardellini Rielaborate da Salvatore Tucci.
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Clocking Il segnale di Clock definisce quando i segnali possono essere letti e quando possono essere scritti Fronte di discesa (negativo) Falling edge.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
La gerarchia di memorie
Memoria Cache l Memoria molto veloce intermedia tra RAM e CPU l i dati di uso piu’ frequente sono mantenuti nella memoria Cache per minimizzare i trasferimenti.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 15 Maggio.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Il modello di Von Neumann
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
Tipologie di memoria: Elettroniche Magnetiche Ottiche La qualità di una memoria dipende da vari parametri: Modo di accesso: tecnica utilizzata per accedere.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

Gerarchie di memoria Paolo Meloni Universita’ degli studi di Cagliari

Sistemi di memoria Gerarchie di memoria 2

Sistemi di memoria gerarchici “Ideally one would desire an indefinitely large memory capacity such that any particular […] word would be immediately available […]. We are […] forced to recognize the possibility of constructing a hierarchy of memories, each of which has greater capacity than the preceding but which is less quickly accessible.” A.W. Burks, H.H. Goldstine, and J. Von Neumann Preliminary discussion of the Logical Design of an Electronic Computing Sytem (1946) 3

Sistemi di memoria gerarchici Una delle prime necessità mostrate dagli utenti di calcolatori elettronici, è stata quella di una illimitata quantità di memoria velocemente accessibile. Per ragioni tecnologiche ed economiche tale esigenza non può essere soddisfatta Tramite i sistemi di memoria gerarchici si crea l’illusione di una memoria grande accessibile alla stessa velocità di una memoria piccola, sfruttando il Principio di località 4

Principio di località Un programma non ha bisogno di accedere a tutti i dati o a tutte le istruzioni con la stessa probabilità. Il programma in ogni istante di tempo accede a una porzione relativamente piccola del suo spazio di memoria. Esistono due tipi di località: Località temporale: se un elemento è referenziato, generalmente mostrerà una tendenza ad essere presto referenziato di nuovo. (per esempio loop all’interno dei programmi) Località spaziale: se un elemento è referenziato, gli altri elementi corrispondenti ad indirizzi di memoria vicini al suo, mostreranno una tendenza ad essere presto referenziati. (per esempio le istruzioni di un programma vengono eseguite in sequenza, o gli elementi di un array) 5

Gerarchie di memoria Si può sfruttare il principio di località implementando la memoria di un computer tramite una gerarchia di memorie caratterizzate da diverse dimensioni e diverse velocità. A causa delle differenze tra i tipi di memorie in termini di facilità di accesso e di costo, è conveniente utilizzare sistemi gerarchici in cui i diversi livelli della gerarchia comunichino tra loro. Ciò permette di mostrare all’utente una memoria grande quanto quella di tipo più economico, ma veloce come quella di tipo più costoso. Memory Technology Typical Access Time $ per GB in 2004 SRAM 0,5 – 5 ns $4000-$10000 DRAM 50 - 70 ns $100-$200 Magnetic Disk 5000000-20000000 ns $0,50-$2 6

Gerarchie di memoria CPU Speed Size Cost ($/bit) Fastest Smallest Highest Slowest Memory Memory Memory 7

Gerarchie di memoria CPU Livello 1 Livello 2 … Livello n Aumento della distanza dalla CPU in termini di access time Livello 1 Livello 2 Livelli nella gerarchia di memorie … Livello n Dimensione della memoria ad ogni livello 8

Definizioni Una gerarchia può essere formata da più livelli, ma i dati sono scambiati solo tra due livelli adiacenti per volta, quindi si può concentrare l’attenzione solo su due livelli Uno (quello superiore, più vicino al processore, più piccolo e veloce, dato che usa una tecnologia più costosa L’altro più grande ma lento L’unità di informazione che può essere presente o meno all’interno di uno dei due livelli (e dunque può o meno dover essere scambiata) è detta block o line 9

Definizioni La situazione in cui un dato referenziato dal processore è presente all’interno di un blocco all’interno del livello superiore è chiamata hit La situazione in cui invece il dato non è presente nel livello superiore è chiamata miss. In tal caso il blocco contente il dato richiesto deve essere reperito tramite un accesso al secondo livello di memoria. La frazione del numero degli accessi in memoria che sono stati soddisfatti accedendo solo al primo livello è chiamata hit rate. La frazione del numero degli accessi che invece hanno richiesto un accesso al secondo livello (1- hit rate) è detta miss rate. 10

Definizioni Il tempo di accesso alla memoria di primo livello, comprensivo del tempo necessario per la verifica dell’hit o del miss, è detto hit time. Il tempo necessario al reperimento di un dato dal livello inferiore della gerarchia di memoria è detto miss penalty. Il miss penalty comprende: Il tempo necessario al rimpiazzamento del blocco all’interno del livello superiore Il tempo necessario per il trasferimento del dato richiesto al processore 11

Memorie Cache - Basics Consideriamo, per familiarizzare coi concetti un sistema base in cui il processore richieda una word per volta e in cui anche la dimensione del block sia pari a 1 word. Cache Memory System CPU X4 X1 Xn-2 Xn-1 X2 X3 X4 X1 Xn-2 Xn-1 X2 Xn X3 12

Locazione= (Block Address) mod (numero di blocchi nella cache) Memorie Cache - Basics Come ci si accorge se un dato è nella cache? Se c’è, come lo si trova? Se ogni blocco può essere memorizzato solo in una posizione all’interno della cache, la verifica hit/miss e la localizzazione si compiono simultaneamente. La maniera più semplice per assegnare una locazione nella cache per ogni word in memoria consiste nell’assegnarla in base all’indirizzo di memoria corrispondente alla word. Tale struttura è chiamata DIRECT MAPPING Locazione= (Block Address) mod (numero di blocchi nella cache) 13

Memorie Cache - Basics Direct mapping access 00001 00101 01001 01101 111 00001 00101 01001 01101 10001 10101 11001 11101 14

Memorie Cache - Basics Come sappiamo se il dato nella cache corrisponde a quello cercato? Alla cache viene aggiunto un insieme di tags. Ogni tag contiene le informazioni riguradanti l’indirizzo necessarie all’identificazione univoca del blocco contenuto nella cache (es. prec. i 2 msb). E’ necessaria anche una informazione riguardante la validità o meno dell’informazione contenuta in una locazione della cache, per esempio allo start-up del sistema. Di solito vine utilizzato un bit che viene dunque detto valid bit. 15

Accessing a cache Indirizzo: Notazione Decimale Indirizzo: notazione binaria Hit/miss Blocco di cache assegnato 22 10110 miss 110 26 11010 010 16 10000 000 3 00011 011 18 10010 16

Accessing a cache Stato Iniziale Index Valid Tag Data 000 N 001 010 011 100 101 110 111 17

Accessing a cache Indirizzo: n.d Indirizzo: n.b. Hit/miss Blocco di cache 22 10110 miss 110 Index Valid Tag Data 000 N 001 010 011 100 101 110 S 10 Mem(10110) 111 18

Accessing a cache Indirizzo: n.d Indirizzo: n.b. Hit/miss Blocco di cache 26 11010 miss 010 Index Valid Tag Data 000 N 001 010 S 11 Mem(11010) 011 100 101 110 10 Mem(10110) 111 19

Accessing a cache Indirizzo: n.d Indirizzo: n.b. Hit/miss Blocco di cache 22 10110 hit 110 Index Valid Tag Data 000 N 001 010 S 11 Mem(11010) 011 100 101 110 10 Mem(10110) 111 20

Accessing a cache Indirizzo: n.d Indirizzo: n.b. Hit/miss Blocco di cache 26 11010 hit 010 Index Valid Tag Data 000 N 001 010 S 11 Mem(11010) 011 100 101 110 10 Mem(10110) 111 21

Accessing a cache Indirizzo: n.d Indirizzo: n.b. Hit/miss Blocco di cache 16 10000 miss 000 Index Valid Tag Data 000 S 10 Mem(10000) 001 N 010 11 Mem(11010) 011 100 101 110 Mem(10110) 111 22

Accessing a cache Indirizzo: n.d Indirizzo: n.b. Hit/miss Blocco di cache 3 00011 miss 011 Index Valid Tag Data 000 S 10 Mem(10000) 001 N 010 11 Mem(11010) 011 00 Mem(00011) 100 101 110 Mem(10110) 111 23

Accessing a cache Indirizzo: n.d Indirizzo: n.b. Hit/miss Blocco di cache 16 10000 hit 000 Index Valid Tag Data 000 S 10 Mem(10000) 001 N 010 11 Mem(11010) 011 00 Mem(00011) 100 101 110 Mem(10110) 111 24

Accessing a cache Indirizzo: n.d Indirizzo: n.b. Hit/miss Blocco di cache 18 10010 miss 010 Index Valid Tag Data 000 S 10 Mem(10000) 001 N 010 Mem(10010) 011 00 Mem(00011) 100 101 110 Mem(10110) 111 25

Accessing a cache = Address Tag 20 10 Index Index V Tag Data 1 2 … Byte off Address Tag 20 10 Index Index V Tag Data 1 2 … 1021 1022 1023 Data 20 Hit = 32 26

Block size trade-off Aumentando le dimensioni del blocco si sfrutta ovviamente meglio la località spaziale, quindi in generale il miss rate diminuisce. Però: Blocchi più grandi, a parità di dimensione della cache, comportano un numero inferiore di blocchi, dunque limitano la possibilità di sfruttare la località temporale Blocchi più grandi richiedono più tempo per essere trasferiti, dunque causano un aumento del miss penalty 27

Gestione dei cache miss Nel caso in cui l’accesso in memoria sia una read, un cache miss (read miss)è gestito stallando il processore sino a quando non è avvenuto il trasferimento del dato (o dell’istruzione) dal livello sottostante della memoria alla cache. Si accederà di nuovo successivamente alla cache ottenendo stavolta un hit sulla locazione appena caricata. Nel caso in cui l’accesso sia una write, si propone il problema dell’inconsistenza. La cache e la memoria principale si dicono inconsistenti se contengono un dato diverso corrispondente allo stesso indirizzo. 28

Gestione dei write miss (write through scheme) Occorre gestire l’inconsistenza: A) si scrive sia in caso di miss che in caso di hit sia sulla cache che sulla memoria principale (write through scheme) In caso di miss si carica il dato che ha causato il miss si modifica il suo valore all’interno della cache Si aggiorna il dato in memoria Drawback: Se per ogni write il processore deve attendere di accedere alla memoria, gli stalli potrebbero rallentarlo in maniera drastica Soluzione: write buffer 29

Gestione dei write miss (write back scheme) B) Si scrive solo sulla cache(write back scheme) La memoria principale viene aggiornata quando il blocco nella cache viene rimpiazzato da un altro. Drawback: E’ più complicato da implementare rispetto al write through (DIRTY BIT) 30