La gerarchia di memoria LuigiPalopoli Organizzazione gerarchica della memoria • Unelaboratore senza memoria nonfunziona ... • Lamemoria negli elaboratori nonè tutta uguale • Perdecenni il sogno di ogni programmatore e’ stato quello di avere *tanta*memoria con accessi ultrarapidi. • Esistono compromessi tra costo,prestazioni e dimensione della memoria Basics ... • Lamemoria serveacontenere dati,bisogna poter leggere e scrivere inmemoria ... • Lamemoria indirizzata direttamente (principale o cache)è § di tipo volatile,cioè il suo contenuto viene perso sesi spegne l’elaboratore § limitata dallo spazio di indirizzamento delprocessore • Lamemoria indirizzata inmodo indiretto § di tipo permanente:mantiene il suo contenuto anche senza alimentazione § hauno spazio di indirizzamento “software”non limitato dal processore Basics ... • Leinformazioni nella memoria principale (indirizzamento diretto)è accessibile al processore inqualsiasi momento • Leinformazioni nella memoria periferica (indirizzamento indiretto)devono primaessere trasferite nella memoria principale • Iltrasferimento dell’informazione tra memoria principale e memoria periferica è mediato dal software(tipicamente il S.O.) Terminologia • Tempodi accesso:temporichiesto peruna operazione si lettura/scrittura nella memoria • Tempodi ciclo:tempoche intercorre tra l’inizio di dueoperazioni (es.dueread)tra locazioni diverse;ingenere leggermente superiore al tempodi accesso • Accesso Casuale: § nonviè alcuna relazione o ordine nei dati memorizzati § tipico delle memorie asemiconduttori Terminologia • Accesso Sequenziale: § l’accesso alla memoria è ordinato o semi-ordinato § il tempodi accesso dipende dalla posizione § tipico dei dischi e dei nastri • RAM:RandomAccessMemory § memoria scrivibile/leggibile asemiconduttori § tempodi accesso indipendente dalla posizione dell’informazione • ROM:ReadOnlyMemory § memoria asemiconduttori insolalettura § accesso casuale o sequenziale Memoria principale • Connessione“logica”conilprocessore Processor addressbus k-bit Memory MAR n-bit databus MDR Upto2 k addressable locations Wordlength= n bits Controllines R /W (,MFC,etc.) MAR: Memory Address Register MDR: Memory Data Register MFC: Memory Function Completed Memorie RAM a semiconduttori • Memorizzano singoli bit,normalmente organizzati inbytee/o word • Datauna capacità N(es.512Kbit)lamemoria può essere organizzata indiversi modi aseconda delparallelismo P(es.8,1o 4) § 64KX8 § 512KX1 § 128KX4 • L’organizzazione influenzainnumero di pindi I/O dell’integrato (banco)che realizza lamemoria Organizzazione dei bit in un banco di memoria 16 X 8 b7 b¢ 7 b 1 b¢ 1 b 0 b¢ 0 W0 • • • W1 A2 FF • • • A0 A1 FF Address decoder • • • A3 • • • • • • • • • • • • • • • Memory cells W15 • • • Sense/Write circuit Datainput /output lines: b7 Sense/Write circuit b1 Sense/Write circuit b0 R /W CS CS: Circuit Select Memorie Statiche (SRAM) • Sono memorie incuii bitpossono essere tenuti indefinitamente (posto che nonmanchi l’alimentazione) • Estremamente veloci (tempodi accesso di pochi ns) • Consumano poca corrente (e quindi non scaldano) • Costano careperchè hanno molti componenti perciascuna cella di memorizzazione SRAM: cella di memoria “interruttori” b T 1 X b¢ Y T 2 Wordline (indirizzi) Bitlines (dati) SRAM: lettura e scrittura • b’=NOT(b):i circuiti di terminazione della linea di bit(sense/write circuit)interfacciano il mondo esterno che nonaccedemai direttamente alle celle • Lapresenza contemporanea di b e NOT(b)consente unminortasso di errori • Scrittura:lalinea di wordè alta e chiude T1 e T2,il valore presente su b e b’,che funzionano da linee di pilotaggio,viene memorizzato nel latch adoppio NOT • Lettura:lalinea di wordè alta e chiude T1 e T2,lelinee b e b’sono tenute instato di alta impedenza: il valore nei punti Xe Yviene “copiato”su b e b’ • Selalinea di wordè bassa T1 e T2 sono interruttori aperti:il consumo è praticamente nullo RAM dinamiche (DRAM) • SonolememoriepiùdiffuseneiPCesimili • Economicheeadensitàelevatissima(inpratica1 solocomponenteperognicella) § lamemoriavieneottenutasottoformadicaricadiun condensatore • Hannobisognodiunrinfrescocontinuodel propriocontenutochealtrimenti“svanisce”a causadellecorrentiparassite • Consumielevatiacausadelrinfrescocontinuo DRAM: cella di memoria “interruttore” Bitline Wordline Sense Amplifier T C DRAM: lettura e scrittura • Scrittura:lalinea di wordè alta e chiude T,il valore presente su b viene copiato su C(carica il transistor) • Lettura:lalinea di wordè alta e chiude T,un apposito circuito (senseamplifier) misura la tensione su C § seè sopra una soglia datapilota lalinea b alla tensione nominale di alimentazione,ricaricando il condensatore C, § seè sottolasoglia datamette aterralalinea b scaricando completamente il condensatore DRAM: tempi di rinfresco • Nel momento incuiTviene aperto il condensatore Ccomincia ascaricarsi (o caricarsi, anche sepiù lentamente)acausa delle resistenze parassite dei semiconduttori • E`necessario rinfrescare lamemoria primache i dati “spariscano” basta fareunciclo di lettura • Ingenere il chipdi memoria contiene uncircuito peril rinfresco (lettura periodica di tutta la memoria);l’utente nonsi deve preoccupare del problema DRAM: multiplazione degli indirizzi • Dato l’elevata integrazione delle DRAMil numero di pindi I/Oè unproblema • E`usuale multiplare nel tempol’indirizzo delle righe e delle colonne negli stessi fili • Normalmente lememorie nonsono indirizzabili albit,percuirighe e colonne si riferiscono abyte e nonabit • Es.una memoria 2MX8(21bitdi indirizzo)può essere organizzata in4096righe (12bitdi indirizzo)per512colonne (9bitdi indirizzo)di 8 bitciascuno Organizzazione di una DRAM 2M X 8 RAS Row address latch A 20 - 9 ¤ A 8- 0 Row decoder 4096 ´( 512 ´8) cellarray Sense/Write circuits Column address latch CAS Column decoder D7 D0 CS R /W DRAM: modo di accesso veloce • Spesso i trasferimenti da/perlamemoria avvengono ablocchi (o pagine) • Nello schemaappena visto,vengono selezionati prima4096bytese poitra questi viene scelto quello richiesto • E`possibile migliorare leprestazioni semplicemente evitando di “riselezionare”lariga adogni accesso seleposizioni sono consecutive • Questo viene chiamato “fastpagemode”(FPM)e l’incremento di prestazioni può essere significativo DRAM sincrone (SDRAM) • LeDRAMvisto primasono dette “asincrone” perché non esiste una precisa temporizzazione di accesso,maladinamica viene governata dai segnali RASe CAS • Ilprocessore deve tenere conto di questa potenziale “asincronicità” § incaso di rinfresco incorso può essere fastidiosa • Aggiungendo dei buffer (latch)di memorizzazione degli ingressi e delle uscite si può ottenere unfunzionamento sincrono,disaccoppiando lettura e scrittura dal rinfresco e si può ottenere automaticamente una accesso FPMpilotato dal clock Organizzazione base di una SDRAM Refresh counter Row/Column address Clock R AS CAS R /W CS Row address latch Row decoder Column address counter Column decoder Moderegister and timingcontrol Cellarray Read/Write circuits&latches Datainput register Dataoutput register Data SDRAM: esempio di accesso in FPM Clock R /W RAS CAS Address Data Row Col D0 D1 D2 D3 Velocità e prestazione • Latenza: tempodi accesso aduna singola parola § è lamisura “principe”delle prestazioni di una memoria § da una indicazione di quanto il processore dovrebbe poter aspettare undato dalla memoria nel caso peggiore • Velocità o “banda”: velocità di trasferimento massima inFPM § molto importante perleoperazioni inFPMche sono legateall’uso di memorie cacheinterneai processori § è anche importante perleoperazioni inDMA,posto che il dispositivo periferico sia veloce Double-Data-Rate SDRAM (DDR-SDRAM) • DRAMstatica che consente il trasferimento dei dati in FPMsia sul fronte positivo che sul fronte negativo del clock • Latenza uguale auna SDRAMnormale • Bandadoppia • Sono ottenute organizzando lamemoria indue banchi separati § uno contiene leposizioni pari:si accedesul fronte positivo § l’altro quelle dispari:si accedesul fronte negativo • Locazioni contigue sono inbanchi separati e quindi si può farel’accesso inmodo interlacciato Gerarchia di memoria • Abbiamovistoivariblocchidimemoriacon diversecaratteristichedivelocita’ ecapacita’ • Maritorniamoacomeottenerevelocita’ e capacita’ insieme • Ilproblemae’notodamoltotempo…. Idealmentesidesidererebbe unamemoria indefinitamente grande,takecheogniparticolare.. parolarisultiimmediatamente disponible…. Burks,Goldstine,VonNeumann,1946 Gestione “piatta” • Immaginiamo di essere unimpiegato che lavora alcomune • Pereffettuare il mio lavoro hobisogno di avere accesso adunarchivio dovesono presenti levarie pratiche • Ogni volta che miserveuna pratica vado a prenderla,ci opero su e poilarimetto aposto Gestione “piatta” • Peraccedere alla pratica scrivo su unbigliettino lo scaffale dovelapratica puo’essere trovata,lo affido aunattendente e aspetto chemelaporti • Osservazioni: § lamia capacita’ di memorizzazzione e’moltogrande § lagran partedelmio tempo(direi il 90%)lospreco aspettando che l’attendente vada aprendere le pratiche § Sicuramente none’una gestione efficiente delmio tempo • Posso essere piu’veloce? Gestione “veloce” • Inalternativa posso tenere lepratiche sul mio tavolo e operare solosu quelle • Osservazioni § Sicuramente nonperdo tempo(nonhoda aspettare attendenti che vadano insu e ingiu’) § Tuttavia il numero massimo di pratiche che possono gestite e’molto basso • Posso operare su piu’dati? Capra e Cavoli • Perriuscire adavere aduntempovelocita’e ampiezza dell’archivio posso faredue osservazioni: 1. Ilnumero di pratiche su cuiposso concretamente lavorare inogni giornata e’ limitato 2. Seuso una pratica,quesi sicuramente dovro’ ritornare su di essa intempibrevi….tanto valetenersela sul tavolo Un approccio gerarchico • L’idea e’che houncerto numero di posizioni sulla mia scrivania § Manmano che miserveuna pratica lamando a prendere § Seholascrivania piena faccio portare aposto quelle pratiche che nonmiservono piu’perfarespazio • Inquesto modo posso contare su un’amplia capacita’di memorizzazione,*ma*lamaggior partedelle volteaccedo ai dati molto velocemente Torniamo ai calcolatori • Fuordimetafora,possiamofarecalcolatori dandoaiprogrammil’illusionediavereuno spaziodimemoriamoltograndemacon grandevelocità • Questoèpossibileinforzadidueprincipi § Principiodilocalitàspaziale § Principiodilocalitàtemporale Localita’ temporale • Quandosifausodiunalocazione,siriutilizzerà prestoconelevataprobabiità. • Esempio. Ciclo: sll $t1, $s2, 2 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Esci addi$s2, $s2, 1 j Ciclo Esci: …. Questeistruzionivengono ricaricateognivoltachesi esegueilciclo Località spaziale • Quandosifariferimentoaunalocazione,nei passisuccessivisifaràriferimentoalocazioni vicine Ciclo: sll add lw bne $t1, $t1, $t0, $t0, $s2, 2 $t1, $s6 0($t1) $s5, Esci addi$s2, $s2, 1 j Ciclo Esci: …. DATI:Quandosiscorreun array sivaperword successive ISTRUZIONI:lamodalitàdi esecuzionenormalee’il prelievodiistruzioni successive Qualche dato Facciamoriferimentoaqualchecifra(relativaal2008) TecnologiadiMemoria Tempodiaccessotipico $per GB(2008) SRAM 0.5-2.5ns $2000- $5000 DRAM 50– 70ns $20- $75 Dischi magnetici 5 000 000– 20000000ns $0.2 - $2 Questecifresuggerisconol’ideadellagerarchiadi memoria •Memoriepiccoleevelocivicinoalprocessore •Memoriegrandielentelontanedalprocessore Gerarchia di memoria • Strutturabase Struttura della gerarchia Esempio • Duelivelli Terminologia • BloccooLinea: unitàminimadiinformazionechepuòessere presenteoassentenellivellosuperiore § Unfaldonenell’esempiodiunarchivio • Hitrate:Frequenzadisuccesso=frazionedegliaccessiincuitrovoil datonellivello superiore § Quantevoltetrovoilfaldonechemiserve nellascrivania • MissRate:1 – hitrate:frazionedegliaccessiincuinontrovoildato nellivello superiore § Quantevoltedevoandareacercareunfaldoneinarchivio • TempodiHit:Tempochemioccorrepertrovareildatoquandolo trovonellivellosuperiore § Quantomicivuolealeggereundocumentonelfaldone • Penalitàdimiss:quantotempomicivuoleperaccederealdatose nonlotrovonellivello superiore § Tempoperspostareilfaldone+tempodiaccessoaldocumentonel faldone Considerazioni • Lapenalitàdimissè moltomaggioredel tempodihit(eanchedeltrasferimentoin memoriadiunsingolodato) § Dacuiilvantaggio • quindiè crucialechenonavvengatroppo spesso § inquestociaiutailprincipiodilocalitàcheil programmatoredevesfruttarealmeglio Cache • Cache:postosicuro[nascosto]doveriporrele cose • Nascostaperchéilprogrammatorenonlavede direttamente § l’usogliè interamentetrasparente • L’usodellacachefusperimentatoperlaprima voltaneglianni70edaalloraè divenuto assolutamenteprevalenteintuttiicalcolatori Un esempio semplice • Partiamodaunsempliceesempioincuilaiblocchidi cachesianocostituitidaunasolaword. • Supponiamocheauncertopuntoilprocessore richiedalaparolaXn chenonè incache X4 X4 X1 X1 Xn-2 Xn-2 Xn-1 X2 CacheMiss Xn-1 X2 Xn X3 X3 Domande • Comefacciamoacapireseundatorichiestoè nellacache? • Doveandiamoacercarepersaperesec’è? • Cachedirect mapped:aogniindirizzoindellamemoria corrispondeunaprecisalocazionedellacache • Possibilità:Indirizzolocazionedoveunindirizzoè mappato=indirizzobloccomodulonumerodiblocchi incache • Se ilnumerodielementinellacacheè potenzadi due,ciè sufficienteprendereibitmenosignificativi dell’indirizzoinnumeropariallogaritmoinbase duedelladimensionedellacache Esempio • Selanostracachedisponedi8 paroledevo prendereitrebitmenosignificativi Problema • Siccomemolteparolepossoesseremappate suunbloccodicache,comefacciamoacapire se,inundatomomento,visitroval’indirizzo cheserveanoi? • Siricorreauncampo,dettotag,checontiene un’informazionesufficientearisalireal bloccocorrentementemappatoinmemoria • Ad esempiopossiamoutilizzareibitpiù significatividiunaparola,attualmentenon usatipertrovarelalocazioneincachedove l‘indirizzoè mappato. Validità • Usiamoibitpiùsignificativi(duenell’esempio fatto)percapiresenellalineadicache memorizziamol’indirizzorichiesto • Inoltreabbiamounbitdivaliditàchecidicese quellochememorizziamoinunalineaadun certomomentosiaomenovalido Esempio Accessoa 10110: Miss Accessoa 11010: Miss Accessoa 11010:hit Accessoa 10010: miss Esempio MIPS 32 bit • Esempio § Indirizzosu32bit § cachemappaturadiretta § dimensionidellacache2n blocchi,dicuin bitusati perl’indice § dimensionedelbloccodicache2m parole ossia 2m+2 byte Inquestocasoladimensionedeltag è datada 32-(n+m+2) Schema di risoluzione • Unindirizzovienerisoltoincacheconilseguente schema: Esempio • Siconsideriunacachecon64blocchidi16byte ciascuno.Aqualenumerodibloccocorrisponde l’indirizzo1200espressoinbyte? • Bloccoidentificatoda (indirizzoblocco)modulo(numeroblocchiincache) • Dove Indirizzo Blocco = Indirizzo del Dato in byte Byte per blocco Esempio • Quindil’indirizzodelbloccoè 1200/16=75 • Bloccocontente ildatoè 75modulo64=11 Tradeoff • Dimensionidilineadicachemoltograndi esaltanolalocalitàspazialeedaquestopuntodi vistadiminuisconoleprobabilitàdimiss • Tuttaviaaverepochiblocchidiminuiscel’efficacia nellosfruttamentodellalocalitàtemporale • Quindiabbiamountradeoff • Inoltreaveredeimissconblocchigrandiportaa uncostodigestionealto(bisognaspostaremolti byte) Frequenza delle miss Tradeoff puntoottimale: fenomenopiù evidenteper cachepiccole Gestione delle miss • Lapresenzadiunacachenonmodificamoltoil funzionamentodelprocessorepipelinefinoa cheabbiamodellehit § Ilprocessorenonsiaccorgedellapresenzadella cache § Incasodimiss,bisognagenerareunostallonella pipelineegestireiltrasferimentodamemoria principaleallacache(adoperadellacircuiteriadi controllo) Gestione delle Miss • Adesempio,perunamisssullamemoria istruzioni,bisognerà: 1. InviareilvalorePC– 4allamemoria(PCviene incrementataall’inizio,quindilamissè suPC-4) 2. Comandareallamemoriadieseguireunalettura eattendereilcompletamento 3. Scrivereilbloccocheprovienedallamemoria dellacacheaggiornandoiltag 4. Farripartirel’istruzionedalfetch,chestavolta troveràl’istruzioneincache Scritture • Gliaccessiinletturaallamemoriadatiavvengonocon lastessalogica • Gliaccessiinscritturasonounpò piùdelicatiperché possonogenerareproblemidiconsistenza • Unapoliticaè lacosiddettawrite-through § Ogniscritturavienedirettamenteeffettuatainmemoria principale(siachesiabbiaunahitcheunamiss) § Inquestomodononhoproblemidiconsistenza,male scritturesonomoltocostose § Possoimpiegareunbufferdiscrittura(unacodaincui mettotuttelescritturechesonoinattesadiessere completate) Scritture • Un’altrapossibilepoliticaè lawrite-back § Seilbloccoè incachelescrittureavvengono localmenteincacheel’updatevienefattosolo quandoilbloccovienerimpiazzato(oquandouna locazionenelbloccovieneaccedutadaunaltro processore) § Questoschemaè convenientequandoil processoregeneramoltescrittureelamemoria noncelafaastarglidietro. Esempio FastMath (basato su MIPS) •Cachedi16K •16paroleper blocco •Possibilitàdi operareinwrite through oin write back Esempio FastMath (basato su MIPS) TipicheperformancemisuratesubenchmarkSPEC2000 Cache set associative • Lecacheamappaturadirettasonopiuttosto semplicidarealizzare • Tuttaviahannounproblema:sehospesso bisognodilocazionidimemoriachesimappano sullostessoblocco,hocachemissin continuazione • All’estremooppostohounacache completamenteassociativa § Possomapparequalsiasiblocco inqualsiasiblocco di cache Cache full associative • Ilproblemaperlecachefullassociativeè che devocercareovunqueildato(iltag è tutto l’indirizzodelblocco) • Pereffettuarelaricercainmanieraefficiente, devofarlasututtiiblocchiinparallelo • Perquestomotivohobisognodin comparatori (unoperognibloccodicachecheoperinoin parallelo) • IlcostoHWè cosìaltochesipuòfaresoloper piccolecache Cache set associative • Lecachesetassociativesonounviadimezzotra leduecheabbiamovisto • Insostanzaognibloccopuòesseremappatosun blocchidiversi(vie) • Quindicombiniamodueidee § associamociascunblocco aunalinea(unadeglin blocchi sucuipossiamomappareilblocco) § All’interno dellalineaeffettuiamo unaricerca parallela comeseavessimounacachecompletamente associativa Mappatura del blocco • Inunacacheamappaturadirettailblocco vienemappatonelbloccodatoda: (NumeroBlocco)modulo(numeroblocchiincache) • Inunacachesetassociativelalineache contieneilbloccovieneindividuatada: (NumeroBlocco)modulo(numerolineeincache) • PertrovareilbloccoAll’internodellalinea dobbiamoconfrontare iltag contuttiitag dei blocchidellalinea Posizione del blocco Blocco12soloin posizione4 Blocco12soloprima linea(blocco0 o2) Blocco12puòessere ovunque Varie configurazioni Schema per cache a 4 vie Vantaggi dell’associativita’ Chiaramente aumentandol’associativitàabbiamovantaggi (frequenzadimiss)esvantaggi(complessità).Lasceltavienefatto tenendo presentequestotradeoff Un problema in più • Nellecacheamappaturadirettaquandoho unacachemisssicuramentesochisostituire (l’unicobloccoincuipossomapparmi) • Nellecacheassociativehopiùscelte.Sela lineae’pienachisostituisco • Variepolitiche § FIFO § Least Recently Used Richiedeunaseriedibit inpiùpercontare l’ultimoaccesso Ok, ma a che ci serve questa roba? Numerodiistruzioni perelemento da ordinare Tempodiesecuzione Cachemiss