1
Simone Buso - Microcontrollori e DSP - Lezione 9 1
Lezione 9Sommario• Organizzazione della memoria• Memorie esterne • Tipi di memoria• Organizzazioni avanzate: memorie cache
Simone Buso - Microcontrollori e DSP - Lezione 9 2
Lezione 9Materiale di riferimento1. D. A. Patterson, J. L. Hennessy, “Computer
Organization and Design”, Morgan Kaufmann, cap. 7 pagg. 540-578.
2. A. Clements, "The principles of computer hardware", Oxford, 2000, cap. 9, pagg. 461-486.
3. G. Bucci, "Architetture degli elaboratori elettronici", McGraw-Hill, 2001, cap. 3, pp. 77–100.
4. P. Lapsley, J. Bier, A. Shoham, E.A. Lee, "DSP Processor Fundamentals - Architectures and Features", IEEE Press, New York, 1997, cap. 5.
2
Simone Buso - Microcontrollori e DSP - Lezione 9 3
In ogni sistema a microprocessore si possono sempre individuare alcuni elementi costitutivi fondamentali, che sono:1. unità aritmetico logica (ALU)2. unità di controllo3. memoria4. periferiche di input-output (I/O)
L’organizzazione del sottosistema di memoria in un mC o DSP, differisce da quella propria di un processore generico. Non è infatti mai presente memoria di massa.
Sistemi di memoria
Simone Buso - Microcontrollori e DSP - Lezione 9 4
Sistemi di memoriaI microprocessori per uso generico (PC) utilizzano sempre due diversi sistemi di memoria:1.memoria ad accesso immediato;2.memoria di tipo secondario o di massa.
I mC e i DSP sfruttano esclusivamente memoria ad accesso immediato, sia interna,i.e. realizzata all’interno dello stesso chip che contiene il processore (on-chip), sia esterna (off-chip), opportunamente connessa alla prima.
3
Simone Buso - Microcontrollori e DSP - Lezione 9 5
Sistemi di memoriaLa memoria ad accesso immediato è realizzata esclusivamente attraverso opportuni circuiti a semiconduttore (tipicamente in tecnologia CMOS), ed è disponibile in forme diverse (ad es. SRAM, DRAM, EPROM, EEPROM, …), tutte variamente usate nei mC e nei DSP.La memoria ad accesso immediato può essere di tipo volatile o non volatile. La memoria di tipo volatile è di solito memoria di lettura/scrittura, mentre la memoria non volatile è di solito di sola lettura (anche se può essere ri-programmata).
Simone Buso - Microcontrollori e DSP - Lezione 9 6
Sistemi di memoriaI parametri chiave che qualificano un sistema di memoria sono i seguenti:1. dimensione: in bit o in byte indica il
numero di celle (unità elementari di informazione) che compongono la memoria e talora anche la sua organizzazione (ad es: 64k x 4 bit);
2. velocità: viene descritta in modo equivalente sia in termini di tempo di accesso, che di latenza che di banda passante.
4
Simone Buso - Microcontrollori e DSP - Lezione 9 7
Sistemi di memoria2.a tempo di accesso: è il tempo (in ns di
solito) che intercorre tra la richiesta del dato e il momento in cui esso è reso disponibile (ciclo di read). Si compone di due parti: tempo di decodifica o localizzazione del dato e tempo di trasferimento del dato.
2.b latenza: è il tempo che intercorre tra l’inizio del ciclo di write e l’arrivo del dato in memoria. I tempi di read e write sono normalmente uguali.
Simone Buso - Microcontrollori e DSP - Lezione 9 8
Sistemi di memoria2.c banda passante: è un’indicazione della
velocità alla quale i dati possono essere trasferiti dal processore alla memoria e viceversa. Si misura in bytes al secondo.
3. consumo di potenza: indica la potenza elettrica media richiesta da un sistema di memoria. In alcuni casi i costruttori forniscono anche potenza assorbita in stand-by (a riposo). Questi dati sono fondamentali per il dimensionamento dell’ alimentazione di un sistema di memoria esterno al chip.
5
Simone Buso - Microcontrollori e DSP - Lezione 9 9
Sistemi di memoria4. integrazione: dipende dalla tecnologia
usata nella realizzazione della memoria, con particolare riferimento alla definizione del processo fotolitograficousato per la creazione delle maschere di processo. La densità di memoria (numero di bit per unità di volume) è direttamente legata al livello di integrazione. Le prime unità di memoria prodotte (anni ‘60) avevano una capacità di appena 16 bit. Attualmente esistono memorie su singolo chip con capacità di dell’ordine di 1 Gbit.
Simone Buso - Microcontrollori e DSP - Lezione 9 10
Sistemi di memoriaLe caratteristiche di un sistema di memoria ideale sono le seguenti: 1. alta velocità;2. piccola occupazione di area di silicio;3. basso consumo;4. robustezza (rispetto a disturbi,
variazioni di temperatura, …);5. basso costo.
Queste caratteristiche sono in larga misura incompatibili tra loro, il che costringe a scelte di compromesso.
6
Simone Buso - Microcontrollori e DSP - Lezione 9 11
Sistemi di memoriaTutti i sistemi di memoria sono organizzati in modo gerarchico. Il concetto di gerarchia di memoria funziona bene in quanto le informazioni che un processore scambia con la memoria hanno sempre caratteristiche di:1. località spaziale: i dati che sono
spazialmente prossimi all’interno della memoria tendono ad essere usati a breve distanza gli uni dagli altri;
2. località temporale: quando un dato viene usato dal processore di solito viene anche ri-usato a breve distanza.
Simone Buso - Microcontrollori e DSP - Lezione 9 12
Sistemi di memoriaUn sistema di memoria può quindi avere eccellenti prestazioni combinando piccole quantità di memoria molto veloce (quindi molto costosa, a elevato consumo,…) e quantità via via più grandi di memoria più lenta (e quindi meno costosa, a minore consumo, …).La memoria più pregiata in un processore è rappresentata dai registri.La memoria interna, che è di solito di tipo SRAM (RAM statica), è molto più estesa (può arrivare a molti kbyte) ma considerevolmente più lenta (in termini relativi).
7
Simone Buso - Microcontrollori e DSP - Lezione 9 13
Organizzazione della memoriaLa memoria on chip può essere organizzata in modi diversi, al fine di massimizzare le prestazioni del processore.Nelle organizzazioni di tipo Harvard, la memoria è suddivisa in banchi separati che fanno uso di bus indipendenti per il trasferimento dei dati o delle istruzioni.Talvolta questa suddivisione in banchi viene iterata in modo da permettere l’accesso simultaneo ad una istruzione e a più di un dato. Si parla di organizzazioni Harvardmodificate.
Simone Buso - Microcontrollori e DSP - Lezione 9 14
Organizzazione della memoriaIn alcuni casi i banchi di memoria sono 3,uno per le istruzioni (P) e due per i dati (X, Y). In questo modo, in un singolo ciclo del processore è possibile leggere una istruzione e fino a due operandi. Queste organizzazioni avanzate non sononormalmente estendibili alla memoria off-chip in quanto non tutti i bus vengono resi disponibili all’esterno. Al massimo, ne sono resi disponibili due (dati e istruzioni). I vantaggi di una organizzazioni a banchi multipli vanno quindi parzialmente persi.
8
Simone Buso - Microcontrollori e DSP - Lezione 9 15
Organizzazione della memoria
Bus indirizzi XBus indirizzi YBus indirizzi P Bus indirizzi
esterno
16 bit
Bus dati XBus dati YBus dati P Bus dati
esterno
16 bitMUX
Logica di controllo bus esterno
write/readX/Ymemoria programmimemoria datiinput
Schema di espansione della memoria interna su due bus esterni a 16 bit.
Simone Buso - Microcontrollori e DSP - Lezione 9 16
In alcuni casi, invece di ricorrere a banchi di memoria multipli, si ricorre a memorie di tipo dual port. Queste permettono due accessi simultanei (duplicano tutta l’elettronica di decodifica e di accesso alle celle) pur mantenendo una organizzazione a singolo banco (tipo Von Neumann).Esistono anche memorie di tipo multiple portdove il numero di accessi simultanei può arrivare fino a 4.Il limite principale di queste memorie è rappresentato dal costo molto alto.
Organizzazione della memoria
9
Simone Buso - Microcontrollori e DSP - Lezione 9 17
Organizzazione della memoria
Bus dati 1
Bus indirizzi 1
Bus dati 2
Bus indirizzi 2
Bus dati 3
Bus indirizzi 3
Memoria A(dual port)
Memoria B
CPU Organizzazione di tipo composto: una memoria dual port (banco A) e una memoria standard (banco B), permettono l’accesso simultaneo a una istruzione e due dati.Tipica nei DSP Motorola della serie 561xx.
Simone Buso - Microcontrollori e DSP - Lezione 9 18
Organizzazione della memoriaIn altri casi, la possibilità di accessi multipli è garantita dalla integrazione on-chip di banchi di memoria molto veloci, capaci di permettere più accessi in sequenza nello stesso ciclo di clock.Memoria di questa qualità può essere ottenuta solo ricavandola all’interno del processore stesso. Si tratta di una soluzione efficace, ma estremamente costosa.Come le soluzioni multi-port anche queste soluzioni, dette multi-access, non sono praticabili a livello di memoria esterna.
10
Simone Buso - Microcontrollori e DSP - Lezione 9 19
Organizzazione della memoriaNei mC e DSP il controllo della memoria esterna è reso possibile da un opportuno circuito, di solito interno al chip (non sono richiesti controller aggiuntivi).Le caratteristiche dei controllori integrati nel chip sono però molto variabili. Alcuni consentono solo di generare i segnali essenziali (selezione, strobe, … ) per i bus esterni, altri sono molto più flessibiliconsentendo la gestione di wait-states e memorie esterne del tipo “da PC” (es: DRAM a pagine).
Simone Buso - Microcontrollori e DSP - Lezione 9 20
Organizzazione della memoriaI cicli di attesa o wait-states sono necessari ogni volta che la memoria esterna risulta più lenta del processore.Se il processore richiede N cicli di clock per accedere alla memoria (spesso N = 1), la memoria deve presentare un tempo di accesso TA tale che:
TA<N⋅Tclk
Se questo non si verifica, è comunque possibile rallentare il processore con un certo numero Nw di cicli di attesa.
11
Simone Buso - Microcontrollori e DSP - Lezione 9 21
Organizzazione della memoriaQuesto comporta però una penalizzazionenello sfruttamento del processore, quindi è da considerarsi molto attentamente. La condizione
TA<(N+Nw)⋅Tclk
può infatti essere soddisfatta anche con Nw=0, per esempio ricorrendo ad un aumentodi Tclk.Anche un solo wait-state può essere infatti una penalizzazione relativa troppo pesante (e.g. del 100% nel caso N=1).
Simone Buso - Microcontrollori e DSP - Lezione 9 22
Organizzazione della memoriaAd esempio, supponendo di dover espandere la memoria interna di un mC con una memoria il cui tempo di accesso sia di 30 ns, a fronte di un periodo di clock di 25 ns (si assuma N=1) si ha che la condizione:
TA<(N+Nw)⋅Tclk
può essere soddisfatta con Nw = 1. Questo però rende il processore più lento del 100% negli accessi alla memoria. Invece, riducendo la frequenza di clock in modo che sia Tclk = 33 ns, la penalizzazione è solo del 32%.
12
Simone Buso - Microcontrollori e DSP - Lezione 9 23
Tipi di memoriaNei mC e nei DSP la memoria volatile di lettura/scrittura viene sempre realizzata come SRAM (Static Random Access Memory).Il termine RAM designa però ogni tipo di memoria in cui il tempo di accesso risulti indipendente dalla posizione spaziale della locazione (o cella) cui si accede.Quindi anche le memorie di sola lettura(ROM) sono delle RAM, contrariamente a quanto generalmente si pensi. L’uso del termine RAM come sinonimo di memoria di lettura/scrittura è quindi errato.
Simone Buso - Microcontrollori e DSP - Lezione 9 24
Tipi di memoriaL’uso di memoria SRAM come memoria interna per i mC e i DSP è giustificato dalle seguenti proprietà:1) elevata velocità (tempo di accesso tipico
dell’ordine di 1 ns);2) semplicità di gestione (non richiedono
refresh, diversamente dalle DRAM);L’uso è invece limitato da due fattori:1) consumo non trascurabile (alcuni mW per
kbyte);2) complessità realizzativa (6 o 4 transistori
per cella) ⇒ minore densità, costo più alto.
13
Simone Buso - Microcontrollori e DSP - Lezione 9 25
Tipi di memoriaLa memoria SRAM veniva in passato usata anche nel caso di espansioni di memoria esterne. Attualmente si nota la tendenza a utilizzare invece DRAM (Dynamic RAM), essenzialmente per contenere i costi.La necessità di refresh dei dati tipico delle DRAM, costringe però, di norma, all’uso di controllori esterni. Anche le prestazioni ne risentono, in quanto il semplice uso di wait-states non è sufficiente a garantire l’interfacciamento al processore. E’ necessario gestire wait-states dinamici.
Simone Buso - Microcontrollori e DSP - Lezione 9 26
Tipi di memoria
W
D D
VDDCella di memoria SRAM: la scrittura avviene portando la write line W a livello alto e attivando la linea dati desiderata.L’ingombro della cella è elevato(10µm x 10µm).
14
Simone Buso - Microcontrollori e DSP - Lezione 9 27
Tipi di memoria
Diagramma temporale di lettura per una SRAM
Address bus
Chip Select
Data bus
10
10
10
A Btempo di ciclo
indirizzo valido
bus flottante
C
DE F
tempo di accesso
dati validi
tempo di hold
Simone Buso - Microcontrollori e DSP - Lezione 9 28
Tipi di memoriaLe RAM statiche altro non sono che schiere di registri a latch (ciascun latch fatto con 4 o 6 transitori). Le memorie RAM dinamichesfruttano invece l’immagazzinamento di carica elettrica per la registrazione dei bit di informazione.La carica viene immagazzinata sotto l’ossido di gate di una struttura MOS, modificando la conducibilità elettrica del canale sottostante.Purtroppo la carica intrappolata tende a ricombinarsi (leakage), da cui la necessità di refresh, con periodicità intorno al ms.
15
Simone Buso - Microcontrollori e DSP - Lezione 9 29
Tipi di memoriaLe RAM dinamiche hanno un costo molto inferiore a quelle statiche e una densità almeno 4 volte superiore.Richiedono però una significativa circuiteria di controllo per gestire i cicli di refresh, che viene realizzata di norma insieme alla memoria stessa.Hanno tempi di accesso maggiori di quelli delle RAM statiche (dell’ordine delle decine di ns).Infine, presentano un consumo di potenza ben minore di quello delle SRAM, dell’ordine di 0.1 mW/kbyte.
Simone Buso - Microcontrollori e DSP - Lezione 9 30
Tipi di memoria
bit line
word line
sense amplioutput buffer
latc
hlatc
h
row
dec
col de
c
addr
ess
bit lines
word
lines
DinDout
RAS
CAS
R/W
CE
Struttura generale di una memoria DRAM.
16
Simone Buso - Microcontrollori e DSP - Lezione 9 31
Tipi di memoria
Diagramma temporale di lettura per una DRAM
Address bus
RAS
Data bus
10
10
10
indirizzo valido
bus flottante dati validi
10 CAS
Read/Write
Address DRAM 10
riga colonna
10
A
B
C
D
E
Simone Buso - Microcontrollori e DSP - Lezione 9 32
Tipi di memoriaNei mC e DSP è spesso integrata una piccola quantità di memoria di sola lettura (ROM).Questa può anche diventare la sola memoria presente on-chip, quando si abbia a che fare con prodotti di grandissima serie dove, ad esempio, il programma, ritenuto definitivo, viene memorizzato in modo non modificabiledurante la realizzazione del chip.Comunque, anche in fase di sviluppo di una applicazione, si ha spesso a che fare con memoria di tipo ROM, anche se, di norma, di tipo ri-programmabile e talvolta esterna.
17
Simone Buso - Microcontrollori e DSP - Lezione 9 33
Tipi di memoriaEsistono diversi tipi di memoria ROM:1) PROM (OTP): memoria di sola lettura che
può essere scritta una sola volta;2) EPROM: memoria di sola lettura che può
essere cancellata con un dispositivo apposito a luce UV.
3) EEPROM: memoria di sola lettura che può essere scritta e cancellata elettricamente.
4) Flash EPROM: memoria di sola lettura che può essere scritta e cancellata elettricamente. Strutturalmente diversa dalla precedente.
Simone Buso - Microcontrollori e DSP - Lezione 9 34
Memorie PROMNelle memorie PROM l’informazione è associata allo stato di un transistore (ON o OFF, normalmente corrispondenti a 1 e 0).Questo a sua volta dipende da un micro-fusibile, che collega un terminale del transistore (ad es. il Drain) ad un potenziale fisso.La memoria è inizialmente piena di 1. La sua programmazione consiste nell’interrompere per fusione alcuni dei micro-fusibili (1 → 0).Le memorie PROM sono estremamente veloci(tempi di accesso dell’ordine di 1 ns).
18
Simone Buso - Microcontrollori e DSP - Lezione 9 35
Memorie PROM
word line
bit line
fusibile
Cella di memoria PROMLa programmazione avviene, in modo irreversibile, interrompendo il fusibile.
Al momento della lettura il transistore rimarrà spento: il circuito di lettura interpreta questo stato come un valore logico 0.
Simone Buso - Microcontrollori e DSP - Lezione 9 36
Memorie EPROMLe memorie EPROM sono memorie di sola lettura elettricamente ri-programmabili. La cella tipica di una memoria EPROM ha questa struttura:
p
Substrato p-
n+ n+
ossidogate flottantegate
VGG
VSS VDD
19
Simone Buso - Microcontrollori e DSP - Lezione 9 37
Memorie EPROMLa memoria EPROM può essere vista come una memoria di tipo dinamico nella quale il periodo di refresh è estremamente lungo (alcuni anni).Questo effetto si ottiene immagazzinando carica elettrica in un conduttore molto ben isolato, quindi esposto a correnti di leakage molto basse: il gate flottante.La carica giunge sul gate flottante attraverso l’ossido sottile che lo separa dal canale quando gate e drain sono polarizzati a tensione elevata (20 V). Il meccanismo fisico viene detto hot electron injection.
Simone Buso - Microcontrollori e DSP - Lezione 9 38
Memorie EPROML’iniezione di elettroni caldi è dovuta a ionizzazione da impatto in prossimità del drain. La componente verticale del campo elettrico trascina all’interno del floating gate parte della carica negativa generata. La cancellazione di una EPROM avviene esponendo il chip ad una sorgente di radiazione UV, che provoca la ricombinazioneattraverso l’ossido della carica intrappolata.Il chip è incapsulato in un involucro dotato di finestra trasparente, appunto a questo scopo.
20
Simone Buso - Microcontrollori e DSP - Lezione 9 39
Memorie EPROMLa presenza della carica negativa intrappolata nel gate flottante provoca un innalzamentodella tensione di soglia del dispositivo. Al momento della lettura, questo rimarrà spento.Il circuito di lettura associa a questo stato il valore logico 0.
VG
ID
Vread
Ith
01
Simone Buso - Microcontrollori e DSP - Lezione 9 40
Memorie EPROM
Cella di memoria EPROMLa programmazione avviene innalzando la soglia del MOS con gate flottante in modo che, al momento della lettura questo resti spento.La carica intrappolata nel gate flottante viene rimossa esponendo il chip a radiazione UV.
word line
bit linetransistore di selezione
21
Simone Buso - Microcontrollori e DSP - Lezione 9 41
Memorie EEPROMSi tratta di una memoria molto simile alla EPROM, che può però essere cancellata solo elettricamente. La sua cella tipica risulta così strutturata:
p
Substrato p-
n+ n+
ossidogate flottantegate
VGG
VSS VDDn
Simone Buso - Microcontrollori e DSP - Lezione 9 42
Memorie EEPROML’estensione del gate flottante sopra al drain, con riduzione al minimo dello spessore dell’ossido (< 10 nm), permette agli elettroni di raggiungerlo, in fase di programmazione, per effetto tunnel (Fowler-Nordheim).Dando una tensione negativa al gate gli elettroni intrappolati possono ritornare al drain, sempre per effetto tunnel. La cancellazione della memoria è quindi puramente elettrica.Le EEPROM possono essere ri-scritte per un numero grande, ma finito di volte (> 100000).
22
Simone Buso - Microcontrollori e DSP - Lezione 9 43
Cella di memoria EEPROMIl circuito equivalente per una cella di memoria EEPROM è identico a quello della memoria EPROM.La carica viene però estratta dal gate flottante per tunneling con tensione di gate < 0.
word line
bit linetransistore di selezione
Memorie EEPROM
Simone Buso - Microcontrollori e DSP - Lezione 9 44
Memorie FLASHAnche le memorie FLASH sono cancellabili in modo puramente elettrico, per effetto tunnel (ossido sottile come le EEPROM) verso il source.Diversamente dalle EEPROM, il meccanismo fisico di scrittura delle FLASH è l’iniezione di elettroni caldi (come le EPROM, di cui riprendono la struttura di cella, con un minore spessore dell’ossido sotto il floating gate).Possono essere riscritte anch’esse per un numero finito di volte, che però è molto grande (> 100000).
23
Simone Buso - Microcontrollori e DSP - Lezione 9 45
Memorie FLASH
gate flottanteossido
gateVGG
VSS VDD
p
Substrato p-
n+n+ n
La cella tipica di una memoria FLASH è molto simile a quella di una EEPROM. La cancellazione avviene polarizzando negativamente il gate e positivamente il source.
Simone Buso - Microcontrollori e DSP - Lezione 9 46
Memorie FLASHE’ molto comune incontrare mC e DSP con memoria FLASH incorporata. La gestione della memoria, che è piuttosto complessa, è in questo caso a cura di un apposito controllerincorporato nel mC (o DSP) stesso.Il problema principale delle FLASH è legato al fatto che i tempi di lettura e scrittura sono variabili in funzione di parametri come temperatura, età, tolleranze di processo.Quindi la gestione dei tempi di attesa deve essere dinamica (di solito tramite polling di un apposito registro di stato).
24
Simone Buso - Microcontrollori e DSP - Lezione 9 47
Memorie FLASHInoltre, la cancellazione può avvenire solo per blocchi (richiede la polarizzazione ad una tensione positiva del source) di alcuni kbyte.Conviene quindi che i dati siano registrati nella memoria evitando di utilizzare sempre lo stesso blocco, per aumentare la vita utile (ogni cancellazione implica uno stress per la memoria).I tempi di cancellazione e scrittura possono essere abbastanza lunghi, dell’ordine di alcune decine di secondi per un chip da 256 kbyte.
Simone Buso - Microcontrollori e DSP - Lezione 9 48
Memorie FLASH
Sour
ce s
witc
h
Dec
oder
di riga
Decoder di colonna
Blocco di memoria FLASHIl circuito equivalente di una cella non prevede il transistore di selezione.
Ogni blocco ha i terminali di source connessi ad un deviatore che permette l’applicazione della tensione di cancellazione.
25
Simone Buso - Microcontrollori e DSP - Lezione 9 49
Memorie EPROM, EEPROM, FLASH
EPROM EEPROM FLASH
Dimensioni (cella) 1 3.0 1.2
Programmazione CHEI FNT CHEI
Cancellazione Luce UV FNT FNT
Tempo di cancellazione 20 min. 5 ms 1 s
Cancellazione minima chip byte blocco
Tempo di scrittura < 100 µs 5 ms < 100 µs
Tempo di accesso 100 ns 10 ns 100 ns
Tabella comparativa per i diversi tipi di memoria ri-programmabile
Simone Buso - Microcontrollori e DSP - Lezione 9 50
Organizzazioni avanzate: cacheLe prestazioni di un sistema di memoria possono essere aumentate in modo molto significativo e a costi relativamente contenutisfruttando il concetto di memoria virtuale.L’idea è far apparire la memoria molto più veloce di quanto essa sia, facendo in modo che il maggior numero possibile di accessi (>95%) avvenga in una sua piccola frazione, realizzata con una tecnologia ad alta velocità.Ciò ha senso solo per sistemi di memoria di dimensioni considerevoli e relativamente lenti,tipici di dispositivi di alta gamma (DSP).
26
Simone Buso - Microcontrollori e DSP - Lezione 9 51
Organizzazioni avanzate: cacheI sistemi cache consentono un miglioramento di prestazioni in tutti e soli i casi in cui la memoria non può essere letta in un solo ciclodi clock del processore.Questo non è comune nei mC, che hanno frequenze di clock piuttosto basse. Lo sta invece diventando nei DSP più potenti, che cominciano ad operare a frequenze di clock di centinaia di MHz.Questi fanno spesso uso anche di memoria DRAM, il che li rende molto simili ai processori per uso generico (che usano cache).
Simone Buso - Microcontrollori e DSP - Lezione 9 52
Organizzazioni avanzate: cacheIl livello di complessità delle cache usate nei DSP è comunque inferiore (per ragioni di costo) a quello dei processori per uso generico (PC).Comunque l’uso della cache riguarda solo la memoria istruzioni, mai la memoria dati. Ciò risolve il problema della gestione delle scritture in memoria, che complica notevolmente i sistemi cache per uso generico.Nei casi più semplici, la cache di un DSP è un semplice buffer che immagazzina brevi sequenze di istruzioni (repeat buffer).
27
Simone Buso - Microcontrollori e DSP - Lezione 9 53
Memoria cachePer memoria cache si intende un segmento del sistema di memoria, caratterizzato da elevata velocità, nel quale, attraverso strategie opportune, si fa in modo di registrare le informazioni più frequentemente richieste dal processore, prelevandole dalla memoria più lenta.Il parametro principale in un sistema a cache è il suo hit-ratio (h), che rappresenta la frazione di accessi alla memoria, sul totale che il processore esegue, che riescono a trovare i dati richiesti nella cache stessa.
Simone Buso - Microcontrollori e DSP - Lezione 9 54
Memoria cacheLa tipica organizzazione di un sistema cache prevede lo sdoppiamento dei bus dati e indirizzi e un opportuno circuito di controllo.
bus dati
bus indirizzi
memoria principaleCPU
controller cache
memoria cache
hit
28
Simone Buso - Microcontrollori e DSP - Lezione 9 55
Memoria cacheE’ possibile stimare il vantaggio offerto dalla cache nella riduzione del tempo di accesso apparente alla memoria considerando alcuni parametri:tacc: tempo di accesso alla memoria principale;tc: tempo di accesso alla memoria cache;h: hit ratio.La quantità che definisce l’efficienza del sistema cache è lo speed-up ratio S:
tacch·tc + (1-h)·tacc
S =
Simone Buso - Microcontrollori e DSP - Lezione 9 56
Memoria cacheE’ interessante valutare l’andamento di S in funzione di h:
S
h0.5 10
12345
Il valore massimodi S si ottiene per h=1, ed è pari al rapporto tra tacc e tc (qui assunto uguale a 5).Valori tipici di h sono dell’ordine di 0.95.
29
Simone Buso - Microcontrollori e DSP - Lezione 9 57
Memoria cacheIn realtà, il miglioramento nelle prestazioni di un mC o DSP con cache dipende anche dalla quota di tempo q spesa dal processore in attività che non coinvolgono la memoria e dal numero di cicli di clock richiesti per l’accesso alla memoria. Una valutazione più accuratadell’incremento di velocità consentito dalla cache può quindi essere la seguente:
Tciclo_avg = q·Tclk + (1-q)·(h·tc + (1-h)·tacc)
dove si valuta la durata media di un ciclo macchina, Tciclo_avg, in relazione a Tclk.
Simone Buso - Microcontrollori e DSP - Lezione 9 58
Memoria cacheSono possibili almeno 3 diverse organizzazioni delle memorie cache:1. a mappatura diretta;2. associativa;3. parzialmente associativa.
Il costo di queste soluzioni è crescente, e dipende dalla complessità dell’algoritmo che gestisce il caricamento dei dati nella cache e gli eventi di “miss”, ossia il mancato ritrovamento dei dati cercati nella cache. La complessità è minima per le cache a mappatura diretta.
30
Simone Buso - Microcontrollori e DSP - Lezione 9 59
Cache a mappatura diretta
cache
linea k
linea k
linea k
linea kblocco j-1
blocco j
blocco 2B
memoria principale
indirizzo
B L W
TAG Linea Word
Simone Buso - Microcontrollori e DSP - Lezione 9 60
Cache a mappatura direttaSi assume di disporre di una memoria principale divisibile in 2B blocchi, ciascuno costituito da 2L linee di 2W parole.La cache è suddivisa in due sezioni: la sezione DATA e la sezione TAG. Nella prima vengono copiate 2L linee di memoria, nella seconda l’indirizzo del blocco di appartenenza di ciascuna linea (detto appunto TAG).La linea indirizzata dalla CPU viene cercata nella cache. Simultaneamente viene anche cercato il suo TAG. Viene quindi operato il confronto tra i due TAG.
31
Simone Buso - Microcontrollori e DSP - Lezione 9 61
Cache a mappatura direttaSe il blocco indirizzato dalla CPU ha lo stesso TAG della linea trovata nella cache si ha un hit, altrimenti un miss.In caso di miss la linea cercata dalla CPU viene copiata nella cache al posto di quella inutile, che viene ricopiata nella memoria principale o semplicemente cancellata.Questa è l’organizzazione più semplice (meno costosa) per una memoria cache. E’ inerentemente parallela e composta da due banchi di memoria veloce e da un comparatore digitale per il confronto dei TAG.
Simone Buso - Microcontrollori e DSP - Lezione 9 62
Cache a mappatura diretta
indirizzoTAG Linea Word
bus dati
COMPhit
seloe
TAG DATA
32
Simone Buso - Microcontrollori e DSP - Lezione 9 63
Cache associativeNelle cache associative, qualunque linea di memoria può occupare qualunque posizione nella cache.Il TAG in questo caso è l’intero indirizzo della linea cercata (composto da B+L bit).La ricerca di una linea avviene confrontando simultaneamente (in parallelo) tutti i TAG con quello cercato (array di porte XOR).Solo se il confronto è positivo e quindi solo una volta concluso, la linea cercata può essere inviata al bus dati (organizzazione seriale).
Simone Buso - Microcontrollori e DSP - Lezione 9 64
Cache associativeLa gestione dei miss richiede una strategia non ovvia di sostituzione delle linee. Si possono usare soluzioni diverse, ossia:1. si rimpiazza una linea a caso (RANDOM)2. si rimpiazza la prima linea entrata (FIFO)3. si rimpiazza la linea meno recentemente
usata (LRU);La complessità (ed il costo) di questi algoritmi è in ordine crescente.In generale, le cache totalmente associative sono molto costose da realizzare.
33
Simone Buso - Microcontrollori e DSP - Lezione 9 65
Cache parzialmente associativeLe cache parzialmente associative sono costituite da più cache a mappatura diretta operate in parallelo.Nel caso più semplice si usano due cache in parallelo e si parla di cache associativa a 2 vie.E’ quindi possibile avere due linee ksimultaneamente presenti nella cache.Il confronto dei TAG avviene quindi ancora in parallelo, ma coinvolge solo due istanze di TAG (risultando più semplice rispetto alle cache associative).
Simone Buso - Microcontrollori e DSP - Lezione 9 66
Memoria cacheIl dimensionamento di un sistema cache è molto complesso.E’ necessario stabilire numerosi parametri,tra i quali: la dimensione della cache, la dimensione della linea e, nel caso di cache associative (anche parzialmente), la strategia di gestione dei miss.L’impatto sulle prestazioni finali del processore è comunque difficile da prevedere sulla carta: spesso il dimensionamento si basa su simulazioni del sistema.
Top Related