Lezione 9 - dei.unipd

33
Simone Buso - Microcontrollori e DSP - Lezione 9 1 Lezione 9 Sommario Organizzazione della memoria Memorie esterne Tipi di memoria Organizzazioni avanzate: memorie cache Simone Buso - Microcontrollori e DSP - Lezione 9 2 Lezione 9 Materiale di riferimento 1. 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.

Transcript of Lezione 9 - dei.unipd

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.