Gerarchie di memoria © 2002 Roberto Bisiani 5/22/2002 1 Dove studiare Trasparenze delle lezioni Patterson & Hennessy Cap. 7 5/22/2002 2 Tendenze tecnologiche Logica: DRAM: Dischi: 5/22/2002 Capacita' 2x in 3 anni 4x in 3 anni 4x in 3 anni anno 1980 1983 1986 1989 1992 1995 DRAM Size 64 Kb 1000:1! 256 Kb 1 Mb 4 Mb 16 Mb 64 Mb Velocita‘ (latenza) 2x in 3 anni 2x in 10 anni 2x in 10 anni 2:1! Cycle Time 250 ns 220 ns 190 ns 165 ns 145 ns 120 ns 3 Problema reale? Differenza di prestazioni tra processore e DRAM (latenza) Prestazioni 1000 100 10 µProc 60%/anno. “Legge di Moore” (2X/1.5anni) Processore-memoria Performance Gap: (cresce 50% / anno) CPU DRAM 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 1 DRAM 9%/anno. (2X/10 anni) 5/22/2002 Anno 4 Organizzazione dellebit (data) DRAM lines r o w d e c o d e r row address Each intersection represents a 1-T DRAM Cell RAM Cell Array word (row) select Column Selector & I/O Circuits data 5/22/2002 Column Address u L’indirizzo di colonna e riga insieme selezionano un bit 5 Sistemi di memoria indirizzo n Controllore DRAM 2^n x 1 chip n/2 w AL BUS Taccesso = Tcycle + Tcontroller + Tdriver 5/22/2002 6 Cycle Time vs. Access Time Cycle Time Access Time Time •Il tempo di accesso e quello di ciclo non coincidono necessariamente 5/22/2002 7 Minimum PC memoria Size Il numero di DRAM /sistema diminuisce nel tempo DRAM Generation ‘86 ‘89 ‘92 ‘96 ‘99 ‘02 1 Mb 4 Mb 16 Mb 64 Mb 256 Mb 1 Gb 8 4 MB 32 16 4 8 MB 16 MB 8 2 32 MB 4 1 64 MB 8 2 128 MB 4 1 256 MB 5/22/2002 8 2 8 DRAM, situazione economica u DRAM sono “commodities” u ⇒ grande volume, basso profitto, progetto conservativo – Poche innovazioni rispetto ai processori (in 20 anni: page mode, EDO, Synch DRAM) – Sempre meno DRAM per sistema » Crescita bit/chip DRAM : 50%-60%/anno » Crescita delle dimensioni del software (33%/anno for NT) 5/22/2002 9 DRAM, guadagni DRAM Revenue per Quarter $20,000 $15,000 $10,000 $7B $5,000 $0 1Q 94 2Q 94 3Q 94 4Q 94 1Q 95 2Q 95 3Q 95 4Q 95 1Q 96 2Q 96 3Q 96 4Q 96 1Q 97 (Miillions) $16B 5/22/2002 10 Situazione attuale uSi usano delle cache per limitare gli effetti della differenza di prestazioni uDifferenza di prestazioni delle istruzioni: – Ogni istruzione che legge la memoria richiederebbe un tempo paragonabile a quello di qualche migliaio di istruzioni 5/22/2002 11 Goal u Creare l’illusione di una memoria grande, veloce e poco costosa » Fatto: le memorie grandi sono lente e quelle piccole veloci – Come fare? » Gerarchia di memorie di diverse prestazioni e dimensioni » Accesso in parallelo 5/22/2002 12 Sistema di memoria gerarchizzato Processore Controllo memoria memoria memoria memoria Velocita': molto veloce Meno veloce Dimensioni: Molto piccola Molto grande Costo: 5/22/2002 memoria Datapath Molto costosa Livelli alti Poco costosa Livelli bassi 13 Perche’ un sistema gerarchico funziona u Il principio di localita’: – Un programma accede a una parte molto piccola del suo spazio di indirizzamento in ogni particolare momento. Probabilita’ di leggere o scrivere 0 Spazio di indirizz. 2^n - 1 – Spaziale e temporale 5/22/2002 14 Come funziona una gerarchia di memoria u Localita’ temporale : => Mantiene vicino al processore le informazione alle quali si e’ acceduto piu’ recentemente u Localita’ spaziale : => Sposta blocchi di celle contigue dai livelli bassi ai livelli alti Al Processore Livello alto Livello basso Blk X Dal Processore 5/22/2002 Blk Y 15 Terminologia u Hit: I dati sono disponibili in un livello alto – Hit Rate: la frazione di accessi che trovano l’informazione nel livello alto – Hit Time: Tempo per accedere a un livello alto Tempo di accesso alla RAM + tempo per sapere se e’ un hit u Miss: i dati non sono disponibili al livello alto e devono essere presi da un livello basso – Miss Rate = 1 - (Hit Rate) – Miss Penalty: Tempo per trovare lo spazio per mettere un blocco in un livello superiore e poi trasferirvelo u Hit 5/22/2002 Time << Miss Penalty 16 Uso delle gerarchie u Grazie al principio di localita’ si puo’: – Dare all’utente quanta memoria e’ possibile con la tecnologia meno costosa... – mantenendo i bassi tempi di accesso della tecnologia piu’ costosa. 5/22/2002 17 Uso delle gerarchie Processore Control On-Chip Cache 5/22/2002 Registers Datapath Second Level Cache (SRAM) Main memoria (DRAM) velocita' (ns): 1 1 10 100 Dimenzioni (bytes): K M M/G 100 Secondary Storage (Disk) 10,000,000 (10 ms) G Tertiary Storage (Disk) 10,000,000,000 (10 sec) T 18 Come si gestisce la gerarchia? u Registri <-> memoria – Compilatore e programmatore u cache <-> memoria – In hardware u memoria <-> dischi – Hardware e sistema operativo (memoria virtuale) – Programmatore (file) 5/22/2002 19 Tecnologia u Accesso casuale: – Tempo di accesso quasi uguale a tutte le locazioni – DRAM: Dynamic Random Access memory » Alta densita’, poco costosa, densa, lenta » Deve essere “rinfrescata” periodicamente – SRAM: Static Random Access memory » Bassa densita’, alta potenza, costosa, veloce » Il contenuto non deve essere rinfrescato u Accesso quasi casuale: – Il tempo di accesso varia da locazione a locazione – Esempi: Dischi, CDROM u Accesso sequenziale, il tempo di accesso dipende dalla 5/22/2002posizione (nastri) 20 Tecnologia uI primi due livelli di gerarchia gestiscono solo memorie ad accessi casuali u I livelli seguenti gestiscono anche memorie ad accesso non casuale 5/22/2002 21 Sommario u Due tipi di localita’: – Temporale: se si accede a un elemento di memoria, probabilmente lo si referenzia di nuovo molto presto – Spaziale: Se si accede a un elemento di memoria probabilmente si accedera’ anche agli elementi vicini (come indirizzo) – Sfruttando la localita’: » Si fornisce all’utente molta memoria a basso costo ma con una velocita’ che si avvicina a quella delle memoria ad alto costo. – DRAM e’ lenta ma economica e densa – SRAM e’ veloce ma costosa e non densa 5/22/2002 22 Cache u Due problemi: – Come facciamo a sapere che un dato e’ in cache? – Se e’ in cache come facciamo a sapere dov’e’? u Primo esempio: – la cache gestisce un “word” alla volta – "direct mapped“: per ogni elemento a livello basso c’e’ un solo posto nel livello alto nel quale puo’ essere messo. 5/22/2002 23 Direct Mapped Cache u Mappatura: l’indirizzo e’ calcolato “modulo” il numero di blocchi in cache 5/22/2002 24 Direct Mapped Cache Address (showing bit positions) 31 30 13 12 11 2 10 Byte of fse t Hit 10 20 Tag Data Index Index Valid T ag Data 0 1 2 1021 1022 1023 20 5/22/2002 32 25 Direct Mapped Cache u Usando anche la localita’ spaziale: Address (showing bit positions) 31 16 15 16 Hit 4 32 1 0 12 2 Byte offset Tag Data Index V Block offset 16 bits 128 bits Tag Data 4K entries 16 32 32 32 32 Mux 32 5/22/2002 26 Hits vs. Misses – Read hits » Quello che vuole ottenere! – Read misses » Ferma la CPU, leggi il blocco da un livello inferiore, riparti – Write hits: » Write through: riscrive cache e memoria » Write back: scrive la cache ma non la memoria (che deve essere riscritta solo quando si cancella la cache) – Write misses: 5/22/2002 » Legge il blocco in cache, scrive 27 Strutture di memoria u Semplice: – CPU, Cache, Bus hanno la stessa “larghezza” (32 bit) u Larga: – CPU/Cache, 1 word – Cache/memoria N word ad esempio: 64 bit & 256 bit) u Interleaved: – CPU, Cache, Bus 1 word: memoria N Moduli (ad esempio 4 moduli e l’accesso e’ 5/22/2002 possibile in parallelo a ciascuno dei moduli) Indirizzi sequenziali vanno a memorie diverse! 28 Miglioramenti Hardware CPU CPU CPU Multiplexor Cache Cache Cache Bus Memory Memory Bus Bus b. Wide memory organization Memory bank 0 Memory bank 1 Memory bank 2 Memory bank 3 c. Interleaved memory organization a. One-word-wide memory organization 5/22/2002 29 Interleaving CPU memoria •Senza interleaving: D1 available Start Access for D1 Start Access for D2 memoria Bank 0 Con 4-way Interleaving: Accesso Bank 0 CPU memoria Bank 1 memoria Bank 2 memoria Bank 3 Accesso Bank 1 5/22/2002 Accesso Bank 2 Accesso Bank 3 Si puo’ accedere di nuovo a 0 30 Prestazioni u Se il block size aumenta il miss rate TENDE a diminuire 40% 35% Miss rate 30% 25% 20% 15% 10% 5% 0% 4 16 64 Block size (bytes) 256 1 KB 8 KB 16 KB 64 KB 256 KB 5/22/2002 31 Dimensioni di un blocco –Piu’ grande e’ il blocco piu’ si trae vantaggio dalla localita’ spaziale MA: » La miss penalty diventa maggiore: u Ci vuole piu’ tempo a caricare un blocco » Se il blocco e’ troppo grande relativamente alle dimensioni della cache il miss rate sale –In gernerale, Tempo medio di accesso: » = Hit Time x (1 - Miss Rate) + Miss Penalty x Miss Rate Usa localita’ Miss Penalty 5/22/2002 Block Size Miss Rate Average Access Time Pochi blocchi Block Size Block Size 32 Misses uCompulsory: primo riferimento a un blocco – inevitabile – Statisticamente non importante uConflict (collisione): – Molte locazioni di memoria mappate nello stesso blocco – Soluizione 1: aumenta le dimensioni della cache – Soluizione 2: aumenta l’associativita’ uCapacity: – La cache non puo’ contenere tutte le locazioni usate da un programma – Soluzione : aumentare le dimensioni della cache 5/22/2002 33 Associativita’: migliorare il miss rate One-way set associative (direct mapped ) Block Tag Data 0 Two-wa y set associative 1 2 Set 3 0 4 1 5 2 6 3 Tag Data Tag Data 7 Four-way set associa tive Set Tag Data Tag Data Tag Data Tag Da ta 0 1 Eight -way set associat ive (fully associative) Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data 5/22/2002 34 Un’implementazione Address 31 30 12 11 10 9 8 8 22 Index 0 1 2 V Tag Data 3 21 0 V Tag Data V Tag Data V T ag Data 253 254 255 22 32 4-to-1 multiplexor Hit 5/22/2002 Data 35 Prestazioni 1 5% 1 2% Miss rate 9% 6% 3% 0% On e-w ay Tw o-way Four-way Assoc iativ ity 5/22/2002 Eight-way 1 KB 16 KB 2 KB 4 KB 32 KB 8 KB 128 KB 64 KB 36 Livelli multipli per diminuire la miss penalty u Un secondo livello di cache: – La cache primaria e’ sul chip di CPU – Si possono usare SRAM 5/22/2002 37 Prestazioni con piu’ livelli di cache u Bisogna ottimizzare lo hit rate sul primo livello u Bisogna ottimizzare la miss penalty sul secondo 5/22/2002 38 Prestazioni uA volte si usano cache separate per dati e istruzioni (split cache) 5/22/2002 39 Memoria virtuale u La memoria principale puo’ fare da “cache” per il disco. Fisici Virtuali Virtual addresses Physical addresses Address translation Disk addresses 5/22/2002 40 Vantaggi u Illusione di avere piu’ memoria fisica u Rilocazione dei programmi u Protezione tra processi (es. Applicativi) 5/22/2002 41 Memoria virtuale Virtual address 31 30 29 28 27 15 14 13 12 11 10 9 8 Virtual page number 3210 Page offset Translation 29 28 27 15 14 13 12 11 10 9 8 Physical page number 3210 Page offset Physical address 5/22/2002 42 Pagine: blocchi di memoria virtuale u Page fault: I dati non sono in memoria e devono essere presi dal disco – miss penalty grandissima: le pagine devono essere molto grandi (e.g., 4KB) – E’ importante ridurre il numero di page fault (ad esempio con piazzamento associativo e LRU) » Ma si possono gestire I fault in software invece che in hardware 5/22/2002 – Si usa write-back perche’ write-through e’ troppo costoso 43 Page Tables Virtual page numb er Valid Page table Physical page or disk address Physical m em ory 1 1 1 1 0 1 1 0 1 1 Disk stora ge 0 1 5/22/2002 44 Page Tables P age table registe r V irtua l a dd ress 31 30 29 28 27 1 5 14 1 3 12 11 1 0 9 8 Vir tua l page nu m ber P age off set 20 V alid 3 2 1 0 12 P hysical pa ge num ber P age table 18 If 0 then p age is not presen t in m em ory 2 9 2 8 27 15 1 4 1 3 1 2 1 1 10 9 8 P hysical pa ge num ber 5/22/2002 Phy sic al addres s 3 2 1 0 P age off set 45 Velocita’ della traduzione u TLB: una cache per i numeri di pagina Virtual page number TLB Valid Tag P hysical page address 1 1 Physical m emory 1 1 0 1 Page table Physical page V alid or disk address 1 1 1 Disk storage 1 0 1 1 0 1 1 0 5/22/2002 1 46 TLB e cache Virtual address TLB access TLB miss exception No Yes TLB hit? Physical address No Yes Write? Try to read data from cache No Write protection exception Cache miss stall No Cache hit? Yes Write access bit on? Yes Write data into cache, update the tag, and put the data and the address into the write buffer Deliver data to the CPU 5/22/2002 47