La Gerarchia delle Memorie

Documenti analoghi
La Gerarchia delle Memorie. Calcolatori Elettronici II

La memoria cache. Lab di Calcolatori

Miglioramento delle prestazioni

Università degli Studi di Cassino e del Lazio Meridionale

La gerarchia di Memoria

Introduzione alle gerarchie di memoria

Il Sottosistema di Memoria

Il Sottosistema di Memoria

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1

Il quadro di insieme. Tecnologie per la memoria e gerarchie di memoria. Un ripasso: latch D e flip-flop D. Un ripasso: clock

Università degli Studi di Cassino

Cache: 1 livello della gerarchia di memoria

Von Neumann Bottleneck

La gerarchia di Memoria

La memoria - tecnologie

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella

La memoria - tecnologie

DIAGRAMMI TEMPORALI relativi all'esecuzione di una istruzione e agli accessi alla memoria:

La memoria - tecnologie

Struttura delle cache a indirizzamento diretto

Esercitazione su Gerarchie di Memoria

Struttura delle memorie cache

Gerarchia di memoria

Il Sottosistema di Memoria

Circuiti di Indirizzamento della Memoria

Criteri di caratterizzazione di una memoria

Lezione 22 La Memoria Interna (1)

Architettura degli elaboratori - 2 -

Gerarchia di memoria

Gerarchia di memoria

La gerarchia di memorie (2)

Architettura degli elaboratori - 2 -

Struttura delle memorie cache

Esercitazione su Gerarchie di Memoria

La memoria - tecnologie

Capitolo 5 Le infrastrutture HardWare. La memoria centrale

Corso di Calcolatori Elettronici I. Memorie. Prof. Roberto Canonico

Clocking. Architetture dei Calcolatori (Lettere. di Memoria. Elemento. scritti. Tecnologie per la Memoria e Gerarchie di Memoria

Gli attori principali di un architettura

Memorie a semiconduttore

DIAGRAMMI TEMPORALI relativi all'esecuzione di una istruzione e agli accessi alla memoria:

SOLUZIONI: Memoria virtuale

static dynamic random access memory

La memoria: tecnologie di memorizzazione

Lezione 16 Introduzione al sottosistema di memoria

Tecnologie per la memoria e gerarchie di memoria

Calcolatori Elettronici

Architettura dei Calcolatori Elettronici

06/05/2009. Caratteristiche desiderabili Ampia capacità Velocità Economicità

Esercizi sulle prestazioni delle memorie cache

La memoria: tecnologie di memorizzazione

Gerarchia di Memorie

La struttura gerarchica delle memorie

MEMORIE AD ACCESSO CASUALE

La struttura gerarchica delle memorie

Livello logico digitale bus e memorie

REGISTRI MEMORIA CACHE MEMORIA PRINCIPALE DISCO. Figura 1 Gerarchia di memoria.

Gerachie di Memorie. Matteo Dominoni a.a. 2002/2003. Gerarchie di Memoria A.A. 2002/2003 1

Memoria Virtuale e I/O

Fallimenti nella TLB

La tecnologia delle memorie

Architettura hardware

Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1

Università degli Studi di Cassino e del Lazio Meridionale

Clocking. Architetture dei Calcolatori (Lettere. Elementi di Memoria. Periodo del Ciclo di Clock. scritti

Calcolatori Elettronici A a.a. 2008/2009

ISA Input / Output (I/O) Data register Controller

1.4b: Hardware. (Memoria Centrale)

Lezione 16 Introduzione al sottosistema di memoria

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill

Gerarchia di Memoria e Memorie Cache. ma rallenta R / nw. Qui : modi di aumentare velocità di R / nw. dati e codice non tutti uguali

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

GESTIONE DELLA MEMORIA CENTRALE

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004

Gerarchie di memoria. Gerarchie di memoria

Gerarchie di memoria. Gerarchie di memoria

Il modello di Von Neumann

Corso di Fondamenti di Informatica Elementi di Architettura

Gerarchia di memorie

Struttura gerarchica delle memorie

Memoria Cache. G. Lettieri. 16 Marzo 2017

Input/Output (Cap. 7, Stallings)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Com è fatto un computer (seconda puntata) Appunti per le classi 1 A cura del prof. Ing. Mario Catalano

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

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

Architettura dei calcolatori

Calcolatori Elettronici B a.a. 2007/2008

Architettura Single Channel

Architettura hardware

MEMORIA GERARCHIE DI MEMORIA

Memoria Cache. La memoria cache

Calcolatori Elettronici B a.a. 2004/2005

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache

Architettura di un calcolatore: Introduzione parte 2

Il processore Pentium

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Transcript:

La Gerarchia delle Memorie Calcolatori Elettronici II Prof. Antonino Mazzeo Valentina Casola 1

Connessione memoria processore: schema tipo Processor MAR MDR k-bit address bus n-bit data bus Memory Up to 2 k addressable locations Dimensione massima determinata dai registri di indirizzamento Word length = n bits Control lines ( R / W, MFC, etc.) Linee del bus Prelevo un blocco lungo quanto una word 2

Parametri Caratteristici delle memorie (1) tempo di accesso ta il tempo impiegato per eseguire un ciclo completo di lettura/scrittura di un dato di assegnata granularità (da quando richiedo l operazione a quando viene completata); tempo di ciclo tc Tempo minimo che deve intercorrere tra due operazioni consecutive in memoria capacità di memoria s la dimensione in byte (o parole di assegnato parallelismo) della memoria 3

Parametri Caratteristici delle memorie (2) costo per byte c serve a definire il costo completo C=c*s della memoria banda di trasferimento b l'ampiezza di banda b caratterizza il volume di dati che una memoria è in grado di trasferire verso il generico processore che la utilizza quanto di trasferimento in multipli di byte (o parole macchina di assegnata lunghezza) p esprime la grana (parallelismo) impiegato nel trasferimento dei dati da e per il processore connesso alla memoria. 4

Le Gerarchie di memorie Un sistema di calcolo ideale dovrebbe essere dotato di una memoria caratterizzata da uno spazio di indirizzi grande a piacere tempi di accesso piccoli a piacere costo basso e indipendente dalla tecnologia impiegata. I dispositivi di memoria reali utilizzati nei sistemi di calcolo non godendo di tali proprietà sono caratterizzati da soluzioni legati a specifiche tecnologie ed associati costi classi di memorie caratterizzate principalmente dalla velocità di accesso e dalla capacità. 5

Memoria: Aumento di Prestazioni A causa del ruolo critico che la memoria assume quando si cerca un incremento nel throughput del sistema, essa viene detta: The Von Neumann Bottleneck Un modo per incrementare le prestazioni del sistema è quello di aumentare opportunamente la banda della memoria (bps accessibili). Tale incremento di banda è ottenibile in tre modi : 1. Aumentando la frequenza del clock di memoria; 2. Aumentando la larghezza della word e quindi accedendo a più bit per ciclo; 3. Replicando i moduli di memoria in accesso concorrente (simile alla precedente); Soluzione : Aumentare la frequenza => Memorie più costose e di dimensioni ridotte 6

Gerarchia di Memorie La memoria Cache rappresenta il livello della gerarchia tra la CPU e la Memoria principale Capacità CPU Cache Primaria Cache Secondaria Velocità Costo per bit Memoria Principale Memoria di massa 7

Principio di Località Una delle principali proprietà dei programmi è quella della : Locality of references (90/10 rule) I Programmi tendono a riusare i dati e le istruzioni che hanno usato di recente Una regola empirica largamente verificata asserisce che un programma in media trascorre il 90% del suo tempo di esecuzione in una porzione di codice che rappresenta circa il 10% dell'intero programma (la stessa regola vare per i riferimenti sui dati) Molte istruzioni, quindi, in aree ben localizzate di un programma vengono eseguite ripetutamente in un determinato periodo, e si accede al resto del programma relativamente di rado Basandosi sulle ultime istruzioni eseguite da un programma è possibile predire con ragionevole accuratezza quali istruzioni e quali dati del programma verranno utilizzati nel prossimo futuro 8

Principio di Località Località Temporale: Rappresenta la probabilità (alta) che un'istruzione eseguita di recente venga eseguita di nuovo entro breve tempo. Località Spaziale: Rappresenta la probabilità (alta) che istruzioni vicine ad un'istruzione eseguita di recente siano anch'esse eseguite nel prossimo futuro. La vicinanza è espressa in termini di indirizzi delle istruzioni 9

Principio di Località Località Temporale Località Spaziale Portare un elemento (istruzioni o dati) nella cache quando viene richiesto per la prima volta, in modo che rimanga a disposizione nel caso di una nuova richiesta. Invece di portare dalla memoria principale alla cache un elemento alla volta, è conveniente portare un insieme (block) di elementi che risiedono in indirizzi adiacenti 10

Struttura di una Cache Parametri Caratteristici Funzione di mapping Algoritmo di Sostituzione Gestione della Coerenza 11

Parametri Caratteristici Block Size Un Blocco è un insieme di indirizzi contigui di una qualche dimensione. Per la proprietà di località spaziale conviene portare in cache un insieme di elementi facenti riferimento ad indirizzi contigui Hit Time La memoria cache può memorizzare solo un piccolo sottoinsieme di blocchi presenti in memoria principale L HIT time rappresenta il numero di cicli di clock necessari per caricare un elemento che si trova in cache (in genere coincidente con 1 ciclo di clock) 12

Miss Penalty Parametri Caratteristici Quando un elemento non viene trovato in cache si ha un miss La Miss Penalty rappresenta il numero di cicli di clock necessari per caricare l'elemento dalla memoria principale nella cache (o eventualmente direttamente nel processore) Access Time Tempo di accesso alla memoria principale ( o a una cache di livello superiore) Transfer Time Tempo di trasferimento del blocco in cui è presente l'elemento referenziato dalla memoria principale alla memoria cache. 13

Parametri Caratteristici Miss Rate Percentuale di miss (relativo all'architettura del sistema, alla funzione di mapping, agli algoritmi di gestione della coerenza, all'applicazione in esecuzione... ) Cache size Qualche Mbyte Average Access Time = thit(hit_rate) + (1-hit_rate) tmiss t(miss) in genere è circa 10 volte t(hit) 14

Funzione di Mapping Rappresenta un altro parametro identificativo della cache; Specifica la corrispondenza tra i blocchi della memoria principale e quelli della cache. Vengono distinte in questo modo tre categorie di cache: Direct Mapped Fully Associative Set Associative 15

Per gli esempi successivi Per gli esempi si farà riferimento ad una memoria principale di 64K word, organizzata in 4k blocchi di 16 word, ognuna (16 bit ) ed una cache di 128 blocchi di 16 word ciascuno (2Kword = 11 bit) 16

Direct Mapped Cache Ogni blocco può essere inserito in un solo posto nella cache. La funzione di mapping è di solito una funzione modulo; Funzione di Mapping: Blocco J j 128 Address in memoria principale Label Block Word 5 bit 7 bit Il campo Block identifica il blocco all'interno della cache Il campo word indirizza la word nel blocco La presenza o meno del blocco in cache viene verificata comparando il campo Label nell'address con il campo Label nella cache 4 bit 17

memory Block 0 Block 1 tag tag Cache Block 0 Block 1 Block 127 Block 128 Block 129 tag Block 127 Block 255 Block 256 Block 257 Tag Block Word 5 7 4 Main memory address Block 4095 18

Fully Associative Cache Ogni blocco può essere inserito ovunque nella cache Address in memoria principale Label Word 12 bit 4 bit La presenza o meno del blocco in cache viene verificata comparando il campo Label nell'address con il campo Label nella cache Il campo word indirizza la word nel blocco (Block Offset) 19

Main memory Block 0 Block 1 tag tag Cache Block 0 Block 1 Block i tag Block 127 Block 4095 Tag Word 12 4 Main memory address 20

Fully Associative Cache (2) Un blocco nuovo può essere messo ovunque; Devo togliere un blocco dalla cache solo se è piena; inoltre devo prevedere un algoritmo di sostituzione per decidere quale blocco eliminare; La ricerca di un blocco in cache è molto più costosa e lenta (ricerca associativa in parallelo); 21

Set Associative Cache Un blocco può essere posizionato in un ristretto insieme (set) di blocchi nella cache. Address in memoria principale Label Block Word 6 bit 6 bit 4 bit Un blocco viene prima mappato in un set e può essere inserito ovunque nel set La funzione di mapping del set in genere è una funzione in modulo Se ci sono n blocchi in ogni set la cache viene detta : n-way set associative 22

Main memory Block 0 Block 1 Cache Set 0 Set 1 tag tag tag tag Block 0 Block 1 Block 2 Block 3 Block 63 Block 64 Block 65 Set 63 tag tag Block 126 Block 127 Block 127 Block 128 Block 129 Block 4095 Tag Set Word 6 6 4 Main memory address 23

Ricerca di un Blocco in una Cache La cache include un campo Label (Tag) per ogni blocco per ricavare l'indirizzo del blockframe Ai fini della ricerca di un blocco in una cache tutte le label che possono contenere informazioni su di esso vengono confrontate (comparate) in parallelo. (Anche il dato viene letto parallelamente al confronto in modo da averlo immediatamente pronto se si ha un hit) Fully associative Direct Mapped Set Associative 0 1 15 0 1 15 0 1 15 Data Tag Ricerca 24

Considerazioni Bisogna tenere in conto lo spazio (<=> costo) occupato dalle Label (una per ogni blocco) (direct mapped -> set associative -> full associative) Spesso c'è bisogno di etichettare i blocchi in cache che sono stati modificati Viene utilizzato in genere anche un bit per la modifica (dirty bit) per indicare se il blocco in cache è stato modificato in un ciclo di scrittura; Serve solo nei sistemi che non fanno uso del metodo write throught 25

Considerazioni (2) Una cache potrebbe contenere informazioni non piu' valide C'è bisogno di un meccanismo per invalidare i blocchi nella cache: il modo più comune per farlo è quello di aggiungere un bit alla label (valid bit) Il bit viene posto a 0 all'accensione e ogni volta che nella memoria principale vengono caricati programmi e dati nuovi da disco (DMA). I dati non passano per la cache per motivi sia di costo che di prestazioni Viene posto a 1 la prima volta che il blocco viene caricato dalla memoria principale Ogni volta che un blocco in memoria principale viene aggiornato con codice e dati che non sono passati per la cache, viene effettuato un controllo per determinare se l'elemento è presente nella cache. Se lo è il suo bit di validità viene azzerato garantendo che non ci siano dati obsoleti in cache 26

Considerazioni (3) Quando deve essere inserito un blocco in un set già pieno : Una cache direct mapped possiede un solo blocco disponibile per ogni blocco in memoria principale: Un nuovo blocco che deve essere copiato nella cache in blocco già pieno provoca sempre una copia del vecchio blocco in memoria principale Una cache fully associative ha a disposizione tutta la cache per il caching dei blocchi: Un nuovo blocco che deve essere copiato nella cache fa uscire un altro già residente solo se l'intera cache è già piena Una cache set-associativa ha per ogni blocco in memoria principale uno spazio pari al suo grado di associatività: Un nuovo blocco che deve essere copiato nella cache fa uscire un altro già residente solo se il set ad esso associato è già pieno. 27

Algoritmi di Sostituzione Quando si ha un cache miss su un blocco: Se la cache ha blocchi disponibili per inserire un nuovo blocco, si procede al caricamento dalla memoria nel set relativo al blocco In una Direct Mapped Cache se il blocco è occupato, si procede alla sostituzione del blocco (se il dirty bit == 0, non si effettua la copia in memoria principale) Per le cache Set e Fully associative, si cerca nel set un blocco col dirty bit ancora a 0 (non modificato) e se viene trovato si procede alla sostituzione. Nel caso tutti i blocchi nel set siano stati modificati, si deve procedere alla ricerca del migliore blocco da sostituire. Gli approcci piu' utilizzati sono 2 : Random e Least recently Used (LRU) replacement 28

Algoritmi di Sostituzione Random LRU Viene usato per distribuire uniformemente l'allocazione dei blocchi. Il blocco candidato viene scelto in modo pseudocasuale. Utilizzare un algoritmo pseudocausale e quindi riproducibile risulta particolarmente indicato per facilitare le operazioni di debugging Riduce la probabilità di sostituire blocchi che verranno acceduti nel prossimo futuro. Il blocco sostituito è quello che non si usa da piu' tempo 29

LRU Il controllore ha bisogno di mantenere traccia degli accessi ai blocchi mentre l'elaborazione prosegue; Viene utilizzato un contatore a 2 bit per ogni blocco: CASO A - Quando c'e' un hit : Il contatore del blocco dell'hit viene azzerato, I contatori con valori inferiori a quello dell'hit vengono incrementati, Gli altri rimangono invariati, CASO B - Se c è un miss e c'è un blocco libero: Viene inserito il nuovo blocco con contatore=0 Tutti gli altri contatori vengono incrementati di 1 30

LRU CASO C - Se c è un miss e tutti i blocchi nel set sono occupati: Si sposta un blocco con il valore più alto di conteggio, Si inserisce il nuovo blocco con il contatore a 0, Tutti gli altri contatori vengono incrementati di 1, 31

LRU - CASO A 0 0 0 1 0 0 Libero Occupato 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 HIT 1 1 0 0 0 0 HIT 1 1 0 0 0 0 32

0 0 0 1 0 0 LRU - CASO B Libero Occupato 0 0 1 0 0 0 MISS 0 0 0 1 1 0 0 0 1 0 1 1 HIT 1 1 0 0 0 0 MISS 1 1 0 0 0 0 33

LRU - CASO C 1 0 0 1 0 0 Libero Occupato 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 HIT 1 1 1 0 1 1 MISS 0 0 1 1 1 1 MISS 34

Considerazioni Risultati sperimentali mostrano che l'algoritmo Random ha prestazioni pressocchè identiche all' LRU quando la cache supera i 64 Kbyte; L'Hardware per implementare l'algoritmo Random è molto più semplice di quello per LRU; Esistono altri algoritmi di sostituzione (come il FIFO) ma in genere hanno performance peggiori dell'algoritmo Random e sono più difficili da implementare... 35

Gestione della Coerenza Le operazioni di lettura sono predominanti sulle operazioni di scrittura (tutte le operazioni su istruzioni sono solo operazioni di lettura) Nel caso di una operazione di lettura, la lettura del dato puo' essere fatta parallelamente al confronto delle label. Se c'e' un Miss non ci sono problemi perchè la cache non è stata comunque sporcata Nel caso di una operazione di scrittura, non è possibile cominciare l'operazione finchè non si ha un'hit. Visto che l'operazione di accesso all'area dati della cache, non puo' avvenire in parallelo con il confronto delle label, in genere, un'operazione di scrittura impiega più tempo di una di lettura. 36

Operazioni di Write Ci sono due politiche di base per le operazioni di write : Write Through (o store through) L'informazione viene scritta in intrambi i blocchi (cache e memoria principale) Write Back (o copy back) L'informazione viene scritta solo nel blocco della cache. Questi viene scritto nella memoria principale solo quando il blocco deve essere scambiato. Fa uso del dirty bit. 37

Vantaggi e Svantaggi Sia Write back che write through hanno i loro pro e contro Write Through PRO: La memoria principale è sempre allineata con la cache (importante per sistemi multiprocessore); PRO: più facilmente implementabile; CONTRO: scritture alla velocità della memoria più lenta; CONTRO: 1 scrittura per ogni modifica del blocco=> occupa più banda (e quindi viene utilizzata per lo piu' tra cache L1 e cache L2); Write Back PRO: scritture alla velocità della memoria cache; PRO: scritture multiple sullo stesso blocco richiedono 1 sola scrittura nella memoria piu' lenta (meno occupazione di banda); CONTRO: memorie non allineate; 38

Vantaggi e Svantaggi (2) Write Through Quando una CPU attende il completamento di una scrittura si dice in write stall. Un'ottimizzazione comune per ridurre lo stallo è quello di utilizzare dei write buffers che permettono al processore di continuare l'esecuzione del programma mentre la memoria viene aggiornata 39

Write Miss Nel caso in cui si abbia un write miss si hanno due opzioni: Write Allocate : Il blocco viene caricato in memoria cache e si effettua l'operazione di write (che genererà un hit) sulla cache; In genere utilizzata assieme a Write-Back (le future modifiche si faranno sul blocco nella cache); No Write Allocate : Il blocco viene modificato direttamente nella memoria principale e non viene inserito nella cache; In genere utilizzata assieme a Write-Through (le scritture avvengono comunque anche nella memoria principale ed è inutile inserire il blocco nella cache); 40

Miglioramento delle Prestazioni Interleaving (indirizzi successivi sono memorizzati in moduli diversi; quando devo caricare un blocco posso caricarlo in un colpo solo da tutti i moduli) Riduzione Hit-Time Rendere le scritture più veloci Riduzione Miss-Penalty Rendere i write miss più veloci Rendere i read miss più veloci (Early restart Out of order fetch) 2 livelli di cache t_ave=h1*t_c1+(1-h1)*h2*t_c2+(1-h1)*(1-h2)m t_ci : tempo accesso cache Li ; M : tempo di accesso Memoria hi : hit rate cache i 41

Miglioramento delle Prestazioni Aumento velocità delle hits; Buffer di scrittura (in un operazione di write trough la CPU non ha la necessità di ASPETTARE che la scrittura sia completata si prevede un buffer di scrittura in cui la CPU ripone il blocco che deve essere scritto in memoria e poi prosegue la sua esecuzione senza attendere il completamento della operazione). Prefetch con istruzioni macchina specifiche (evita lo stallo della CPU dovuto ad un miss in lettura nell attesa di caricare un nuovo blocco in cache); Cache senza blocco (gestiscono 2 o più miss in contemporanea, da una parte si caricano i nuovi blocchi dall altro si serve la CPU per altre istruzioni senza bloccarla); 42

La Memoria Virtuale 43

Data Data Processor Cache Main memory Disk storage MMU DMA transf er Virtual address Phy sical address Phy sical address Figure 5.26. Virtual memory organization. Organizzazione delle Memoria Virtuale Nei moderni sistemi di elaborazione, il Sistema Operativo sposta i programmi ed i dati dalla memoria secondaria alla memoria principale; le tecniche di spostamento prendono il nome di MEMORIA VIRTUALE. Di conseguenza, il Processore genera degli indirizzi virtuali che verranno poi tradotti negli indirizzi fisici mediante opportuni strumenti hw e sw 44

Traduzione dell indirizzo Tutti i programmi ed i dati sono organizzati in unità di lunghezza predefinita: le pagine. Le pagine rappresentano l unità minima di informazioni che viene spostata dalla memoria secondaria alla memoria principale. Le pagine devono essere opportunamente dimensionate. 45

Virtual-memory address translation Virtual address from processor Page table base register Page table address Virtual page number Offset + PAGE TABLE Di grandi dimensioni; Risiede in memoria principale; I control bit servono per vailidare La pagina e verificare che non ci Siano state modifiche; Il base register è definito dal S.O Control bits Page frame in memory Page frame Offset Physical address in main memory 46

Use of an associative-mapped TLB Virtual address from processor Virtual page number Offset Virtual page number TLB Control bits Page frame in memory Table Lookaside buffer; Memoria associativa Allocata nel MMU Memory Management Unit No Miss Yes =? Hit Page frame Offset 47

Organizzazione della virtual memory Processore genera indirizzi virtuali L MMU traduce gli indirizzi virtuali in indirizzi fisici L indirizzo fisico viene usato per accedere alla cache In caso di page miss si accede alla memoria principale In caso di page fault si accede al disco 48

Algoritmi di sostituzione I problemi di sostituzione sono analoghi a quelli visti per le memorie Cache; Da notare che le pagine hanno dimensioni di Kb; E assolutamente da evitare la tecnica del Write through!! Il DMA si occupa del trasferimento di blocchi di dati dalla memoria al Disco senza l intervento del processore 49

Considerazioni Tecnologiche 50

Organizzazione di una RAM statica (16parole x 8bit) b 7 b 7 b 1 b 1 b 0 b 0 W 0 FF FF A 0 W 1 A 1 A 2 A 3 Address decoder W 15 Memory cells Sense / Write circuit Sense / Write circuit Sense / Write circuit R / W CS Data input/output lines: b 7 b 1 b 0 51

Organizzazione di una memoria di 1K 1 5-bit row address W 0 5-bit decoder W 1 W 31 32 32 memory cell array Sense/ Write circuitry 10-bit address 32-to-1 output multiplexer and input demultiplexer R/ W CS 5-bit column address Data input/output 52

Bit cell per memorie statiche e dinamiche (memorie volatili) b b T 1 X Y T 2 Bit line Word line T C Word line Bit lines Cella di RAM statica (SRAM) Cella di ram dinamica 53

Utilizzo del memory controller Address Row/Column address Processor R/ W Request Clock Memory controller RA S CA S R/ W CS Clock Memory Data 54

Classical DRAM Organization r o w d e c o d e r RAM Cell Array bit (data) lines Each intersection represent a 1-T DRAM Cell Square keeps the wires short: Power and speed advantages Less RC, faster precharge and discharge is faster access time! word (row) select row address Column Selector & I/O Circuits Column Address data Row and Column Address together select 1 bit a time 55

DRAM Logical Organization (4 Mbit) 4 Mbit = 22 address bits 11 row address bits 11 col address bits A0 A10 11 R O W D E C O D E R Square root of bits per RAS/CAS 11 Row selects 1 row of 2048 bits from 2048 rows Col selects 1 bit out of 2048 bits in such a row Column Decoder Sense Amps & I/O Memory Array (2,048 x 2,048) Word Line Storage Cell 56 D Q

Raw Address Strobe Asynchronous DRAM: Organizzazione di una memoria dinamica da 2M 8 RA S Seleziono una riga e faccio il refresh Row address latch Row decoder 4096 ( 512 8) cell array A 20-9 A 8-0 Sense / Write circuits CS R/ W Coloumn Address Strobe CA S Column address latch Column decoder D 7 D 0 57

Utilizzo del memory controller Address Row/Column address Processor R/ W Request Clock Memory controller RA S CA S R/ W CS Clock Memory Data 58

Logic Diagram of a Typical DRAM RAS_L CAS_L WE_L OE_L A 256K x 8 9 DRAM 8 D Control Signals (RAS_L, CAS_L, WE_L, OE_L) are all active low Din and Dout are combined (D): WE_L is asserted (Low), OE_L is disasserted (High) D serves as the data input pin WE_L is disasserted (High), OE_L is asserted (Low) D is the data output pin Row and column addresses share the same pins (A) RAS_L goes low: Pins A are latched in as row address CAS_L goes low: Pins A are latched in as column address RAS/CAS edge-sensitive 59

Basic DRAM read & write Strobe address in two steps 60

DRAM READ Timing Every DRAM access begins at: Assertion of the RAS_L 2 ways to read: early or late v. CAS DRAM Read Cycle Time RAS_L A RAS_L CAS_L WE_L OE_L 256K x 8 9 DRAM 8 D CAS_L A Row Address Col Address Junk Row Address Col Address Junk WE_L OE_L D High Z Junk Data Out High Z Data Out Read Access Time Early Read Cycle: OE_L asserted before CAS_L Output Enable Delay Late Read Cycle: OE_L asserted after CAS_L 61

DRAM with Column buffer A0 A10 R O W D E C O D E R 11 Memory Array (2,048 x 2,048) Word Line Sense Amps Storage Cell Column Latches Pull column into fast buffer storage Access sequence of bits from there MUX 62

Optimized Access to Cols in Row Often want to access a sequence of bits Page mode After RAS / CAS, can access additional bits in the row by changing column address and strobing CAS Static Column mode Change column address (without repeated CAS) to get different bit Nibble mode Pulsing CAS gives next bit mod 4 Video ram Serial access 63

More recent DRAM enhancements EDO - extended data out (similar to fast-page mode) RAS cycle fetched rows of data from cell array blocks (long access time, around 100ns) Subsequent CAS cycles quickly access data from row buffers if within an address page (page is around 256 Bytes) SDRAM - synchronous DRAM clocked interface uses dual banks internally. Start access in one bank then next, then receive data from first then second. DDR - Double data rate SDRAM Uses both rising (positive edge) and falling (negative) edge of clock for data transfer. (typical 100MHz clock with 200 MHz transfer). RDRAM - Rambus DRAM Entire data blocks are access and transferred out on a high-speed bus-like interface (500 MB/s, 1.6 GB/s) Tricky system level design. More expensive memory chips. 64

Functional Block Diagram 8 Meg x 16 SDRAM 10/11/2007 EECS150 Fa07 - DRAM 65

Multiple banks of cell arrays are used to reduce access time: Each bank is 4K rows by 512 columns by 16 bits (for our part) Read and Write operations as split into RAS (row access) followed by CAS (column access) These operations are controlled by sending commands Commands are sent using the RAS, CAS, CS, & WE pins. Address pins are time multiplexed During RAS operation, address lines select the bank and row During CAS operation, address lines select the column. SDRAM Details ACTIVE command opens a row for operation transfers the contents of the entire to a row buffer Subsequent READ or WRITE commands modify the contents of the row buffer. For burst reads and writes during READ or WRITE the starting address of the block is supplied. Burst length is programmable as 1, 2, 4, 8 or a full page (entire row) with a burst terminate option. Special commands are used for initialization (burst options etc.) A burst operation takes 4 + n cycles (for n words) 66

READ burst (with auto precharge) 67

WRITE burst (with auto precharge) 68

Considerazioni sulla organizzazione ad array Locazioni di memoria consecutive si trovano sulla stessa linea; Se devo prelevare 2 o più byte consecutivi basta decodificare una sola volta l indirizzo di riga e poi caricare gli indirizzi di colonna nei cicli successivi; Conclusione: il trasferimento di byte consecutivi avviene a frequenza doppia rispetto al trasferimento di 2 byte ad indirizzi casuali (aspetto importante nella progettazione delle cache) 69

Burst read of length 4 R/ W RA S CA S Address Row Col Data D0 D1 D2 D3 70

RAM statiche Vs. RAM dinamiche Le RAM statiche sono molto veloci ma hanno costo e dimensioni elevate > vengono usate per la memoria cache (piccole e veloci) Le RAM dinamiche non sono molto veloci ed hanno bisogno di un circuito di refresh però occupano uno spazio molto limitato, sono adatte per memorie più grandi vengono usate per la memoria principale del calcolatore (più lenta ma molto grande). 71

Progetto di sottosistemi di memoria: Organization of a 2M 32 memory module using 16 modules 512K 8 static memory chips A 0 A 1 21-bit addresses 19-bit internal chip address A 19 A 20 2-bit decoder 512 K 8 memory chip D 31-24 D 23-16 D 15-8 D 7-0 512 K 8 memory chip 19-bit address 8-bit data input/output Chip select 72

Riferimenti K. Hamacher, Computer Organization Cap 5: The memory system Hennessy & Patterson: Computer Architecture, a quantitative approach (3 rd Edition) Cap 5 73