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