Parte 3 Memoria - Istituto di Scienze e Tecnologie dell`Informazione

Transcript

Parte 3 Memoria - Istituto di Scienze e Tecnologie dell`Informazione
Architetture dei sistemi integrati digitali
© Alessandro Bogliolo
Parte 3
Memoria
Facoltà di Ingegneria – Università di Ferrara – A.A. 2001/2002
1
Architetture dei sistemi integrati digitali
© Alessandro Bogliolo
Introduzione
[Katayama]
1.1
Generalità
•
•
1.2
Latch, FlipFlop e Registri
•
•
•
•
1.3
Level-sensitive latch
Edge-triggered flip-flop
Temporizzazioni
• Tsetup
• Thold
• Tprop
Registri
• paralleli
• a scorrimento (shift registers)
• ad ingressi/uscite paralleli
• ad ingressi/uscite seriali
Memorie
•
•
•
•
1.4
Esigenze di memorizzazione di informazioni in sistemi digitali:
• Stato interno di macchine a stati
• Risultati parziali di elaborazioni pipelined o sequenziali
• Dati e istruzioni di componenti programmabili
• Configurazione di hardware riconfigurabile
Tecniche per la memorizzazione di dati in circuiti integrati digitali
• Bistabili (memoria statica volatile)
• Capacità isolate (memoria dinamica volatile)
• Corto-circuiti / circuiti aperti (memoria non volatile)
• Modifica delle proprietà dei dispositivi (memoria non volatile programmabile)
n
Mercato delle memorie ad accesso casuale
[Sharma-c1]
• Memorie volatili (RAM)
• Statiche (SRAM)
• Dinamiche (DRAM)
• Memorie non volatili
• Permanenti (ROM)
• Programmabili in modo permanente (PROM)
• Programmabili ripetutamente
• EPROM
• EEPROM
• FLASH
1.5
m
Componenti in grado di memorizzare 2 parole da 2 bit
Memorie ad accesso casuale
• Array di registri indirizzabili
Memorie ad accesso casuale multi-porte
• Dual port: Memorie a lettura e scrittura simultanee
• Register file: Memorie ad accesso multiplo
Memorie ad accesso non casuale
• Stack (FILO)
• Code (FIFO)
(mercato)
18%
61%
8%
3% in diminuzione
1% in diminuzione
9% in espansione
Organizzazione generale di una memoria
[Lu]
•
•
•
•
n-k
k m
n-k
Matrice di celle con 2 righe e 2 2 colonne, usata per memorizzare 2
Bit line
Word line
n-k
Decodificatore di riga: riceve n-k bit di indirizzo e pilota 2 word lines
Facoltà di Ingegneria – Università di Ferrara – A.A. 2001/2002
k
m
x 2 parole a 2 bit
2
Architetture dei sistemi integrati digitali
•
•
•
•
•
•
© Alessandro Bogliolo
k
m
Decodificatore di colonna: riceve k bit di indirizzo e pilota un multiplexer a 2 vie (ciascuna di 2 bit)
m
usato per selezionare le 2 bit line collegate alla parola indirizzata
Precarica delle bit line
Sensing dei dati
Buffers
Controller
Memorie multi-porte:
• Indirizzi multipli
• Decodificatori multipli
• Word line multiple
• Bit line multiple
• Celle non replicate
2 Aspetti circuitali e tecnologici (celle di memoria)
[Sharma-c2,c3 - non inclusi nelle dispense]
2.1
(masked) ROM cell
•
•
2.2
SRAM cell
•
•
•
2.3
Schema circuitale (Pass transistor + Cap)
Layout e processo
• Planare
• Compatibile con CMOS
• Elevata occupazione d’area
• Trench capacitor
• Il condensatore è realizzato (in polisilicio) in una trincea scavata nel silicio attivo
• Processo costoso
• Stacked capacitor
• Il condensatore è sovrapposto all’nMOS di selezione della cella
• Processo più conveniente dei trench capacitor
• Alta densità di integrazione
EEPROM cell
•
•
2.5
Schema circuitale (Bistabile MOS)
Layout e processo
• Compatibile con CMOS
• Disponibile come soft macro parametrica in librerie ASIC
I processi più evoluti concepiti per le commodity SRAM sono non-planari (il carico dei due inverter di
ogni cella è realizzato da transistori PMOS realizzati su un film sottile di polisilicio sovrapposto agli
nMOS del pull-down) e non compatibili con i processi CMOS.
DRAM cell
•
•
2.4
Schema circuitale
• NAND
• NOR
Layout e processo
• Compatibile con CMOS
• Disponibile come soft macro parametrica in librerie ASIC
Schema circuitale (vedi ROM)
• Logica di controllo di programmazione
Layout e processo
• Floating gate
• Ossido sottile verso il drain
FLASH cell
[CGOZ-c1]
• Schema circuitale (vedi ROM)
• Logica di controllo di programmazione
• Layout e processo
• Floating Gate
Facoltà di Ingegneria – Università di Ferrara – A.A. 2001/2002
3
Architetture dei sistemi integrati digitali
© Alessandro Bogliolo
3 Memorie embedded
[Dipert]
3.1
Motivazioni
[PKL, Patterson, Katayama, Cataldo]
• Prestazioni
• Bandwidth [BGK, Cataldo]
• Dimensione del sistema
• Flessibilità architetturale
• Consumo (capacità di carico dei BUS dell’ordine dei 50pF, interne dell’ordine di 1pF)
• Rumore/Interferenza
• Pin count
• Costo
3.2
Conseguenze
•
•
•
•
•
•
3.3
Aspetti tecnologici
•
•
•
•
•
3.4
La temperatura operativa dei microprocessori integrati riduce il tempo di ritenzione delle DRAM
I sistemi integrati sono meno scalabili di quelli multi-chip
Il testing di memorie embedded è generalmente più complesso e costoso
Esigenze contrastanti che comportano compromessi tecnologici:
• tensioni di soglia basse (0.4V) nella logica per performance – tensioni di soglia alte (0.8V) nelle
DRAM per lunga ritenzione
• wire pitch non minimo nella logica per elevate performance e affidabilità – wire pitch minimo per
alta densità
Costo dei processi (maggior numero di passi)
Minore margine di guadagno:
• Il mercato dei PC ha grande mercato ma bassissimi margini
• Il mercato dei sistemi embedded ha maggiori margini ma mercato più ristretto
ROM compatibili con CMOS
EEPROM e FLASH non compatibili con CMOS
SRAM planari compatibili con CMOS, SRAM non planari no
DRAM planari compatibili con CMOS ma sconvenienti
DRAM trench-capacitor e stacked-capacitor non compatibili con CMOS
Merging dei processi CMOS e DRAM stacked-capacitor
[Noda, Cataldo, Cataldo2]
• I processi CMOS hanno front-end corto e back-end lungo (7 livelli di metal)
• I processi stacked capacitor hanno front-end lungo e back-end corto (2 livelli di metal)
• Processo DRAM-based
• Elevata distanza tra M1 e silicio attivo
• Densità di integrazione elevata delle DRAM
• Prestazioni della logica CMOS rallentate di una generazione
• Incompatibilità con le librerie ASIC standard
• Costo del processo elevato (elevato numero di step)
• Processo CMOS-based
• DRAM planare
• Buone prestazioni
• Bassa densità di integrazione delle DRAM (3-5 volte inferiore a commodity DRAM)
• Compatibilità con le librerie ASIC standard
• Costo del processo contenuto
• Processo Merged (in corso di sviluppo)
• Discreta densità delle DRAM
• Elevate performance
• Compatibilità con le librerie ASIC
• Costi di processo medio-alti
• Da 4 a 9 step in più rispetto a CMOS
Facoltà di Ingegneria – Università di Ferrara – A.A. 2001/2002
4
Architetture dei sistemi integrati digitali
•
© Alessandro Bogliolo
Densità:
• 2 volte inferiore a quella della logica
• 2 volte inferiore a quella delle DRAM
• Esempi:
2
tecnologia
numero di componenti per cm
0.35um
16Mb DRAM + 0.5Mg Logic
0.25um
32Mb DRAM + 1.2Mg Logic
0.18um
64Mb DRAM + 3.0Mg Logic
0.5 of DRAM bits
0.4 of Logic gates
4 Parametri
4.1
Prestazioni
[Lu]
• Tempo d’accesso in lettura (read access time):
• Intervallo tra l’arrivo dell’indirizzo (o del segnale di enable) e la disponibilità dei dati in uscita
• Cycle time:
• Intervallo minimo tra due accessi indipendenti in lettura
• Serial Cycle time:
• Intervallo minimo tra due accessi adiacenti (sulla stessa riga) in lettura
• Throughput:
• Numero di dati contigui letti nell’unità di tempo
• Dipendono:
• dalle dimensioni: carico di WL e BL
• dalla tecnologia
• dall’organizzazione interna
• dall’interfaccia (sincrona/asincrona)
4.2
Consumo di potenza
•
•
•
•
4.3
Area/Densità/Capacità
•
4.4
Statico
• Leakage e correnti sotto soglia
• Carichi resistivi
Dinamico (Capacità e corto circuito)
• Read
• Decodifica di riga – WL – Precarica BL – Sensing - Decodifica di colonna - Buffer d’uscita
• Dipende soprattutto dalla capacità del bus
• Write
• Decodifica di riga – WL – Decodifica di colonna – Caricamento BL e cella
• Refresh
• Decodifica di riga – WL – Precarica BL - Sensing
Stand-by
• Statico
• Refresh (per DRAM)
Access
• Read/Write
Dipende da:
• Dimensioni delle celle
• Numero di celle
• Architettura
• Numero di circuiti di sensing
• Interfaccia
• Capacità di ogni cella
Affidabilità
[Lu]
• Memorie volatili
• Malfunzionamenti permamenti (hard)
Facoltà di Ingegneria – Università di Ferrara – A.A. 2001/2002
5
Architetture dei sistemi integrati digitali
© Alessandro Bogliolo
• Corto-circuiti, rottura di dispositivi, interruzione di linee
Malfunzionamenti transienti (soft)
• Provocati da interfernze, sbalzi di alimentazione, particelle alpha, raggi cosmici
• Tanto più probabili quanto più alta la densità d’integrazione e quanto più piccola la capacità
utilizzata per memorizzare il dato
FLASH
• Malfunzionamenti permanenti (hard)
• Corto-circuiti, rottura di dispositivi, interruzione di linee
• Riduzione dell'efficienza di programmazione e cancellazione per invecchiamento dell'ossido
• Dispersione dei parametri
• Malfunzionamenti transienti (soft)
• Over-erasing (rimozione eccessiva di cariche dal FG)
• Program disturb ( programmazione involontaria per effetto della programmazione di altre celle
sulla stessa riga o sulla stessa colonna)
• Read disturb (programmazione involontaria per iniezione di elettroni caldi durante la lettura)
• Low data retention (difetto permanente che comporta errori transienti che si manifestano solo
se i dati vengono raramente aggiornati)
•
•
4.5
Resa/Costo
•
I processi per memorie ad altissima densità hanno bassa resa
5
5.1
Register sharing
•
•
•
5.2
Accorgimenti a livello RT
Motivazione:
• ridurre l’occupazione d’area dei registri
Tecnica:
• usare lo stesso registro per memorizzare dati da conservare per periodi di tempo disgiunti
Costo:
• necessità di multiplexer e logica di controllo più complessa
Clock gating
•
•
•
Motivazione:
• riduzione del consumo di potenza
Tecnica:
• fermare (localmente e temporaneamente) il clock dei registri nei cicli in cui il valore dei dati
campionati non può cambiare
Costo:
• logica di controllo e verifica delle condizioni di disattivazione del clock
6 Aspetti architetturali
[II]
6.1
Segmentazione
[]
•
•
6.2
Motivazione:
• riduzione della lunghezza (e del carico) delle WL e delle BL
Tecnica:
• decoders e sense amplifiers interni alla matrice di celle
• switch per la selezione di un breve tratto di word line (o bit line)
Time multiplexing
[Lu]
• Motivazione:
• Riduzione del numero di IO pins
• Tecnica:
• Multiplexing di indirizzi di riga e colonna
• Multiplexing di indirizzi e dati
• Consegnuenza:
• Maggiori problemi di interfaccia e minore flessibilità a livello di sistema
Facoltà di Ingegneria – Università di Ferrara – A.A. 2001/2002
6
Architetture dei sistemi integrati digitali
6.3
© Alessandro Bogliolo
Pipelining
[WFY]
• Motivazione:
• aumento del throughput a parità di latenza
• in applicazioni grafiche con scansione per righe è importante accedere rapidamente sia a dati
contigui sulla stessa riga (per aggiornare l’intera immagine o porzioni a sviluppo orizzontale), sia a
dati su righe diverse (ad esempio per tracciare righe oblique o verticali)
• Tecnica:
• Variare solo l’indirizzo di colonna tenendo fisso l’indirizzo di riga per accedere a dati sulla stessa
riga
• Banchi multipli indipendenti in pipeline per accedere a dati su righe diverse (un banco viene
indirizzato mentre il precedente fornisce i dati)
6.4
Interfaccia sincrona
•
6.5
Ridondanza-Riconfigurabilità
•
•
•
6.6
Motivazioni:
• aumento della resa
Tecnica
• esclusione delle righe o colonne che presentano guasti durante il test e riconfigurazione della
logica di indirizzamento
Conseguenza:
• riduzione della capacità
• aumento della complessità della logica di controllo e indirizzamento
Ridondanza hardware
•
•
•
6.7
Motivazioni:
• pipelining
Motivazioni:
• aumento dell’affidabilità con codici a rivelazione/correzione d’errore
Tecnica:
• aggiunta di colonne per bit di parità, codice di Hamming, ...
• logica di generazione e controllo (checking) dei bit di ridondanza
Conseguenza:
• Riduzione della capacità efficace
Memorie multilivello (FLASH)
•
•
•
Motivazioni:
• Aumento della capacità
• Riduzione del consumo
Tecnica:
k
• Memorizzare k bit per cella riuscendo a discriminare tra 2 diversi livelli diversi
Conseguenza:
• Riduzione del margine di immunità ai disturbi
• Criticità dei processi di programmazione e lettura
• Aumento della complessità dei circuiti di sensing (compensato dalla riduzione del loro numero)
7 Aspetti sistemistici
[NST]
7.1
Partitioning (Multi-bank memory)
[HP-c5.6]
• Motivazioni:
• gestione dinamica del consumo di potenza
• riduzione della lunghezza di WL e BL
• pipelining degli accessi a banchi diversi [WFY]
• Conseguenze:
• logica di selezione e controllo più complessa
• maggiore occupazione d’area
Facoltà di Ingegneria – Università di Ferrara – A.A. 2001/2002
7
Architetture dei sistemi integrati digitali
7.2
© Alessandro Bogliolo
Caching
[HP-c5.1-6]
• Motivazioni:
• le prestazioni delle CPU aumentano più velocemente di quelle delle DRAM
[BGK, Cataldo]
• principio di località
• Tecnica:
• gerarchia di memorie di dimensioni crescenti e prestazioni decrescenti dall’alto verso il basso
• i dati su cui si prevede di dover operare vengono trasferiti in blocchi nelle memorie di livello più alto
(cache)
• Conseguenza:
• aumento di area
• aumento di consumo di potenza in condizioni di caso peggiore
• riduzione del consumo di potenza in condizioni di caso migliore e medio
• Indirizzamento:
La memoria viene vista come partizionata in blocchi. L’indirizzo di ogni locazione di memoria viene
pertanto specificato indicando il blocco e l’offset rispetto all’inizio del blocco. L’indirizzo del blocco
viene ulteriormente spezzato in due parti (tag e index). Ogni indirizzo risulta quindi composto da tre
elementi:
Block address (Tag+Index) + Block offset
• Mapping:
• Full associative: un blocco di memoria può occupare qualsiasi posizione in cache. In questo caso è
inutile distinguere tra tag e index nell’indirizzo del blocco, o meglio si può considerare che l’indirzzo
sia composto solo dal tag.
Il mapping full associative è un caso particolare di mapping set associative con un solo set.
• Set associative: un blocco di memoria può occupare qualsiasi posizione in cache nell’ambito di un
certo insieme (set) determinato in base al’indirizzo:
BlockAddress MOD NoOfSets
In pratica il set è individuato dalla parte di block address chiamata index
• Diretto: la posizione in cache di un blocco è univocamente determinata in base all’indirizzo
BlockAddress MOD NoOfBlocksInCache
Il mapping diretto è un caso particolare di mapping set associative con set di dimensione 1. In
questo caso la parte di indirizzo detta index individua direttamente il blocco in cache.
• Riferimenti alla memoria
• Tutti i blocchi di memoria con lo stesso index sono mappati in cache sullo stesso insieme di blocchi
(o sullo stesso blocco se il mapping è diretto)
• Per sapere a quale blocco di memoria (tra quelli con lo stesso index) corrisponde un blocco in
cache è necessario memorizzare il tag di ogni blocco in cache e un flag che indichi la validità dei
dati presenti.
• Per motivi di efficienza, tutti i tag dei blocchi di uno stesso set devono essere confrontati in
parallelo con l’indirizzo di memoria richiesto.
• Prestazioni:
AvgAccessTime = HitTime + MissRate*MissPenalty
• Tecniche per la riduzione del MissRate:
• Larger block size
• Higher associativity
• Compiler optimization
• Tecniche per la riduzione del HitTime
• Small and simple caches
• Fast address translation
• Tecniche per la riduzione del MissPenalty:
• Non blocking cache
• Second-level cache
7.3
Ridondanza software
•
•
Motivazioni:
• aumento dell’affidabilità con codici a rivelazione/correzione d’errore
• (es: bit di parità)
Conseguenza:
Facoltà di Ingegneria – Università di Ferrara – A.A. 2001/2002
8
Architetture dei sistemi integrati digitali
•
•
7.4
Riduzione della capacità efficace
Logica di codifica e decodifica
Compressione dei dati
•
•
7.5
© Alessandro Bogliolo
Motivazione:
• riduzione dell’occupazione di memoria / aumento della capacità efficace della memoria
Conseguenza:
• aumento della latenza
• Logica di compressione e decompressione
Computational RAM (SIMD)
[ESSCM, BCKRW]
• Motivazioni:
• elaborare in parallelo tutti i dati indirizzati da una stessa WL
• eliminare i BUS tra memoria e CPU
• aumentare prestazioni
• ridurre consumo sui BUS
• Conseguenza:
• elevato parallelismo delle unità di elaborazione
• problemi di placement delle unità di elaborazione da associare alle BL
Facoltà di Ingegneria – Università di Ferrara – A.A. 2001/2002
9