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