Lezione 16 Introduzione al sottosistema di memoria http://www.dii.unisi.it/~giorgi/didattica/arcal1 All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John Hennessy, are copyrighted material. (COPYRIGHT 1998 MORGAN KAUFMANN PUBLISHERS, INC. ALL RIGHTS RESERVED.) Figures may be reproduced only for classroom or personal educational use in conjunction with the book and only when the above copyright line is included. They may not be otherwise reproduced, distributed, or incorporated into other works without the prior written consent of the publisher. Roberto Giorgi, Universita’ di Siena, C117L16, Slide 1 Other material is adapted from CS152 Copyright (C) 2000 UCB Dove siamo • I Cinque Componenti Classici di un Calcolatore Processore Input Parte di Controllo Memoria Parte Datapath Output • Scaletta: • Tecnologie usate per realizzare le memorie “volatili”: DRAM e SRAM • Tecnologie usate per l’accesso alla memoria DRAM: EDO, SDRAM, DDR, ... Roberto Giorgi, Universita’ di Siena, C117L16, Slide 2 Market Share dei Principali Componenti Elettronici SITUAZIONE RIFERITA ALL’ANNO 2000 SOURCE: Primer on Semiconductors, SG Cowen, 3rd Ed. Jan. 2001 Analog Circuitry 15% Bipolar Digital 1% Memory 25% Optoelectronic 5% Discretes 9% Microprocessors 15% Custom Logic 15% Microperipherals DSP 6% 3% Roberto Giorgi, Universita’ di Siena, C117L16, Slide 3 Microcontrollers 6% ANNO 2007: MEMORIA CIRCA 37% DEL MERCATO TOTALE PER HIGH PERFORMANCE COMPUTING (SOURCE: BCCRESEARCH.COM) PREV. 2012: MARKET SHARE COSTANTE, CRESCITA CIRCA 9% ANNUO Tecnologie usate per realizzare le memorie • Tecnologie ad accesso sequenziale • Il tempo di accesso dipende in maniera lineare dalla locazione fisica - Nastri • Tecnologie ad accesso semicasuale • Il tempo di accesso dipende sia dalla locazione fisica dell’informazione che dal particolare istante in cui faccio accesso - Dischi: dischi-fissi, CDROM, DVD, ... • Tecnologie ad accesso casuale (Random Access) • Il tempo di accesso e’ indipendente dalla locazione fisica dell’informazione - Memoria principale - Due tipi: Non-Volatili e Volatili Roberto Giorgi, Universita’ di Siena, C117L16, Slide 4 Memorie accesso casuale di tipo Non-Volatile • ROM (Read-Only Memory) - Non scrivibile (sia vantaggio che svantaggio) • EPROM (Erasable Programmable Read-Only Memory) Scrivibile (ma una sola volta) Cancellabile a livello di chip (raggi UV) Necessario intervenire con apposito “kit di cancellazione” • EEPROM (Electrically-Erasable Programmable Read-Only Memory) Scrivibile (1 sola volta) Cancellabile a livello di byte (elettricamente) Dovendo scrivere molti byte si perde molto tempo nelle cancellazioni • Memoria “Flash”: Evoluzione della EEPROM Scrivibile (1 sola volta) Cancellabile a livello di blocco (elettricamente) Roberto Giorgi, Universita’ di Siena, C117L16, Slide 5 Memorie accesso casuale di tipo Volatile • Conservano i dati solo se alimentate • Principali tipi di implementazioni: • DRAM (Dynamic Random Access Memory) Alta densita’, basso consumo, basso costo Lente, dinamiche Necessita’ di essere “rinfrescata” periodicamente • SRAM (Static Random Access Memory) basta alimentare il chip per non perdere i dati Veloci, statiche Bassa densita’, alto consumo, alto costo Approfondimento: v. slide “Costi e Prestazioni delle Memorie” Roberto Giorgi, Universita’ di Siena, C117L16, Slide 6 Parametri delle Prestazioni della Memoria ta=tempo di accesso (Access Time) • Intervallo fra l’inizio di una lettura (indirizzo su A-bus) e l’arrivo del PRIMO dato (su D-bus) tc=tempo di ciclo (Cycle Time) • Intervallo fra l’inizio di una lettura e l’inizio della lettura successiva tl=tempo di latenza (Latency Time) • Tempo di accesso al DATO COMPLETO ovvero alla k-esima word nel caso in cui la memoria supporti trasferimenti a gruppi di k word (se k=1 tl=ta). Es. dischi, ma anche memorie RAM ω=Banda (Bandwidth) • Tasso di trasmissione dei byte (si misura in byte/s) Roberto Giorgi, Universita’ di Siena, C117L16, Slide 7 Tempi caratteristici delle memorie A DQ A1 A2 Junk DATA1 Junk Junk DATA2 Access Time Cycle Time A DQ A1 Junk A2 DATA1 Access Time Latency Time Roberto Giorgi, Universita’ di Siena, C117L16, Slide 8 DATA2 DATA3 Junk DRAM versus SRAM • Per massimizzare il parametro prestazioni/costo • Si usa poca memoria SRAM (costosa e veloce) all’interno del chip (es. registri) • Si usa una ragionevole quantita’ di DRAM (meno costosa e relativamente veloce) all’esterno del chip Roberto Giorgi, Universita’ di Siena, C117L16, Slide 9 Cella di RAM Statica (SRAM) Cella a 6 Transistor word (row select) word 0 0 1 1 bit bit Scrittura 1. Preparare il dato sulle bit-line 2. Selezionare la riga (word-line) Lettura 1. 2. 3. 4. * bit Precaricare bit e /bit a Vdd Selezionare la riga (word-line) La cella preleva carica da bit o /bit Il Sense-Amplifier in fondo alla colonna amplifica la differenza fra bit e /bit Roberto Giorgi, Universita’ di Siena, C117L16, Slide 10 bit Puo’ essere sostituito da una resistenza di pull-up per risparmiare area Cella a 5 transistor *in realta’ la linee bit e /bit si caricherenno ad un valore un poco <Vdd Organizzazione delle celle SRAM: 16-word x 4-bit Din 3 Din 2 Din 1 Din 0 Wr Driver & - Precharger + Wr Driver & - Precharger + Wr Driver & - Precharger + Wr Driver & - Precharger + SRAM Cell SRAM Cell SRAM Cell SRAM Cell SRAM Cell SRAM Cell SRAM Cell SRAM Cell WE_L Precharge ‘_L’ attivo basso Word 0 A1 A2 A3 Address Decoder A0 Word 1 : : : : Word 15 E’ piu’ lunga la bit-line o la word-line? SRAM Cell SRAM Cell SRAM Cell SRAM Cell - Sense Amp + - Sense Amp + - Sense Amp + - Sense Amp + Dout 3 Dout 2 Dout 1 Dout 0 Roberto Giorgi, Universita’ di Siena, C117L16, Slide 11 SRAM: Bus dati 0 OE_L Per Din e Dout si usa un unico filo • 0 spento Il motivo principale e’ perche’ sul bus dati posso avere scambio in entrambe le direzioni (lettura o scrittura) Per decidere la direzione si usa /OE: Din o D DQ Dout o Q 1 acceso Output Enable (attivo basso), • OE_L per controllare i buffer thristate: 1 sul filo thristate buffer attivo buffer disattivo 0 sul file thristate • Le possibili combinazioni sono: • Scrittura: - WE_L attivo (basso), OE_L disattivo (alto) DQ e’ un ingresso • Lettura: - WE_L disattivo (alto), OE_L attivo (basso) DQ e’ un’uscita • Evitare di attivare contemporaneamente i segnali WE_L e OE_L - Il risultato risulta indeterminato • Quando il chip non deve caricare il bus dati, si disabilita con - C E_L disattivo alta impedenza Roberto Giorgi, Universita’ di Siena, C117L16, Slide 12 SRAM: Diagramma Logico WE_L A N 2N x M SRAM OE_L M D • La memoria ha una capacita’ di 2N word ad M-bit • Altri segnali sempre presenti • CE_L • Vcc, GND Chip Enable Alimentazione Roberto Giorgi, Universita’ di Siena, C117L16, Slide 13 SRAM: Temporizzazioni WE_L 2N x M SRAM A N Write Timing: DQ OE_L M D Read Timing: High Z Data In Data Out Data Out Junk A Write Address Read Address Read Address OE_L WE_L Write Setup Time Write Pulse Time, tWP Write Hold Time Write Cycle Time, tWC Roberto Giorgi, Universita’ di Siena, C117L16, Slide 14 Read Access Time Read Cycle Time, tRC Read Access Time Cella di RAM dinamica (DRAM) • La cella a 6 transistor per quanto possa sembrare piccola, ha un peso notevole sull’area totale di una RAM • Qual e’ il numero minimo di transistor che puo’ essere usato per memorizzare un bit? Cella DRAM a 1 transistor word line transistor di passo • Un solo transistor l’elemento di memorizzazione puo’ essere realizzato con un consensatore • Condensatore carico • Condensatore scarico bit 1 logico 0 logico • Il transistor consente la lettura e la scrittura Roberto Giorgi, Universita’ di Siena, C117L16, Slide 15 Condensatore DRAM: Funzionamento della cella a 1 transistor • word line Scrittura: 1. Caricare la bit-line col dato 2. Selezionare la riga (word-line) • Lettura: 1. Precaricare la bit-line a Vdd/2 2. Selezionare la riga (word-line) 3. Scambio di carica fra cella e bit-line - bit lievissima variazione di tensione sulla bit-line 4. Rilevazione della variazione (Sense-Amplifier molto sofisticato) - l’amplificatore deve essere in grado di rilevare una variazione di carica di circa 1 milione di elettroni 5. Caricare la bit-line col dato letto (scrittura !) - • Ripristino il contenuto della cella Refresh 1. Effettuo una “finta” lettura di tutte le celle - Ripristino il contenuto di ogni cella Roberto Giorgi, Universita’ di Siena, C117L16, Slide 16 N.B. La cella ha un solo filo di accesso (word-line) separazione ROW/COL DRAM: Organizzazione logica di memoria a 4 Mbit 11 C T R L Precharge circuit R o w R o w 11 11 D e c o d e r L a t c h e s Storage Cell Memory Array (2048 x 2048) ... C o l. L a t c h e s word line bit line OE_L RAS_L CAS_L WE_L A0…A10 e dopo… A11…A21 Sense Amp. , I/O Circuits, Row Buffer ... Data OUT DQ Data IN Column Decoder 11 Roberto Giorgi, Universita’ di Siena, C117L16, Slide 17 Approfondimento: v. slide “DRAM: Organizzazione fisica di memoria a 4 Mbit” DRAM: Diagramma Logico RAS_L A 9 CAS_L OE_L WE_L 256K x 8 DRAM 8 DQ • Din e Dout sono multiplexati su DQ: • Scrittura: - WE_L attivo (basso), OE_L disattivo (alto) DQ e’ un ingresso • Lettura: - WE_L disattivo (alto), OE_L attivo (basso) DQ e’ un’uscita • Gli indirizzi di Riga e di Colonna condividono i pin A • RAS_L va basso i latch di riga memorizzano i pin A i latch di colonna memorizzano i pin A • CAS_L va basso • Nota: RAS/CAS sono sensibili al fronte in discesa Roberto Giorgi, Universita’ di Siena, C117L16, Slide 18 Nota: In alcuni chip di DRAM il segnale OE non c’e’ e invece di DQ ci sono Din e Dout DRAM: Ciclo di scrittura • L’accesso inizia con l’attivazione di RAS_L Write Cycle Time RAS_L CAS_L A Row Address Col Address Junk Data In Junk OE_L WE_L DQ Junk Write Access Time Roberto Giorgi, Universita’ di Siena, C117L16, Slide 19 Row Address DRAM: Ciclo di lettura • L’accesso inizia con l’attivazione di RAS_L Read Cycle Time RAS_L CAS_L A Row Address Col Address Junk Row Address WE_L OE_L DQ High Z Junk Data Out Read Access Time Roberto Giorgi, Universita’ di Siena, C117L16, Slide 20 High Z tRC , tRAC e tCAC • tRC: tempo minimo fra due accessi a righe tRC = 110 ns per una DRAM a 4Mbit • tRAC (e tCAC): tempo minimo fra discesa di RAS (CAS) e dati validi tRAC e’ data come “velocita’ della DRAM” (tRAC=60ns con tRC=110ns) tRC = Read Cycle Time RAS_L CAS_L A Row Address Col Address Junk Row Address Col Address Junk WE_L OE_L DQ High Z Junk Data Out tCAC = Read Access Time from CAS tRAC = Read Access Time from RAS Roberto Giorgi, Universita’ di Siena, C117L16, Slide 21 High Z Output Enable Delay Data Out tPC • tPC: tempo minimo fra l’inizio dell’accesso a una colonna e l’inizio dell’accesso alla colonna successiva 35 ns per una DRAM a 4Mbit e con tRAC di 60 ns tPC (Page Cycle time) RAS_L CAS_L A Row Address Col Address Junk Row Address Col Address Junk WE_L OE_L DQ High Z Junk Data Out High Z Output Enable Delay Roberto Giorgi, Universita’ di Siena, C117L16, Slide 22 Data Out DRAM: Prestazioni • Una DRAM da 60 ns (tRAC) puo’ • Effettuare un accesso a righe distinte ogni 110 ns (tRC) • Effettuare un accesso a colonna in (tCAC) 15 ns, ma il tempo fra due accessi a colonna deve essere almeno 35 ns (tPC). - I ritardi di indirizzamento esterni e tempi di “turnaround” sul bus fanno si che questo tempo salga a 40-50 ns • Questi tempi non includono il tempo per inviare l’indirizzo fuori dal microprocessore (ritardo di indirizzamento) ne’ il ritardo introdotto dal controller della memoria • Pilotaggio dei chip di DRAM, controller esterno, bus turnaround, modulo SIMM, pin, ... • Per una DRAM da “60 ns” (tRAC) si puo’ dire che e’ gia’ buono un tempo di accesso pari a 180-250 ns Roberto Giorgi, Universita’ di Siena, C117L16, Slide 23 Sistema di Memoria N.B. e’ il DRAM controller che avra’ cura di inviare successivamente meta’ degli indirizzi ai chip di DRAM sincronizzandoli sui segnali RAS e CAS address n DRAM Controller DRAM 2n x 1 chip n/2 Memory Timing Controller w Bus drivers data • Il tempo per ricevere un dato (“turnaround time”) e’ dato da Tc = Tcycle + Tcontroller + Tdriver Roberto Giorgi, Universita’ di Siena, C117L16, Slide 24 Tecniche per migliorare le prestazioni della memoria CPU CPU CPU MUX MEM BANK 0 MEM BANK 1 MEM BANK 2 MEM BANK 3 MEM MEM Interleaving: Bus Semplice: Bus largo: CPU, Bus: 1 word CPU/Mux: 1 word CPU, Bus, Memoria Mux/Memoria: N words Memoria: N Banchi in tutti i casi un bus a larghezza fissa (es. 64 & 256 bits) (es. 32 bits) Roberto Giorgi, Universita’ di Siena, C117L16, Slide 25 Interleaving degli accessi in memoria Cycle Time Access Time Time • Tempo di Ciclo della DRAM (Read/Write) • Indica quanto frequentemente posso fare accessi • Tempo di Accesso della DRAM (Read/Write) • Indica quanto tempo occorre per ottenere il dato rispetto all’inizio dell’accesso • Il tempo di Ciclo della DRAM (Read/Write) e’ molto maggiore del suo Tempo di Accesso DRAM • Almeno di un fattore 2:1 • Perche’ non iniziare un nuovo accesso mentre sto attendendo il dato precedente? Roberto Giorgi, Universita’ di Siena, C117L16, Slide 26 Increasing Bandwidth - Interleaving Senza interleaving: CPU Memory Dato D1 disponibile Inizio dell’accesso al dato D1 Inizio dell’accesso al dato D2 Memory Bank 0 4-way Interleaving: Accesso al Banco 0 CPU Memory Bank 1 Memory Bank 2 Accesso al Banco 1 Memory Bank 3 Accesso al Banco 2 Accesso al Banco 3 Posso di nuovo fare accesso al Banco 0 Roberto Giorgi, Universita’ di Siena, C117L16, Slide 27 Confronto fra le tecniche viste • Modello dei tempi di accesso • • • • 1 ciclo per inviare l’indirizzo 6 cicli per accedere al dato 1 ciclo per inviare (indietro) il dato Il blocco minimo di trasferimento sia pari a 4 word • Bus semplice = 4 x (1+6+1) = 32 cicli • Bus largo = 1 + 6 + 1 = 8 cicli • Interleaving = 1 + 6 + 4x1 = 11 cicli Roberto Giorgi, Universita’ di Siena, C117L16, Slide 28 Scelta del numero dei banchi • Il numero di banchi dovrebbe essere circa uguale al numero di periodi di clock per accedere ad una word di un banco • Questo consentirebbe di avere un dato ad ogni ciclo di clock • Problema: la disponibilita’ di DRAM a maggiore capacita’ rende difficile avere piu’ banchi Roberto Giorgi, Universita’ di Siena, C117L16, Slide 29 DRAM: diminuzione del numero di chip nel tempo Memoria tipica di un PC (da Pete MacWilliams, Intel) 4 MB 8 MB 16 MB 32 MB 64 MB 128 MB 256 MB Generazione di DRAM La capacita’ di un chip di DRAM cresce del 60% / anno ‘86 ‘89 ‘92 ‘96 ‘99 ‘02 1 Mb 4 Mb 16 Mb 64 Mb 256 Mb 1 Gb 32 8 16 4 8 2 La memoria tipica “cresce” del 25-30% all’anno Roberto Giorgi, Universita’ di Siena, C117L16, Slide 30 4 8 1 2 4 8 1 2 DRAM “Fast Page Mode”, introduzione Column Address • Ho N righe x N colonne x M-bit • Leggo e scrivo M-bit alla volta • Ogni accesso a M-bit richiede un ciclo RAS / CAS N cols DRAM Row Address N rows • Organizzazione classica della DRAM: M-bit Output Primo blocco di M-bit M bits Secondo blocco di M-bit RAS_L CAS_L A Row Address Col Address Roberto Giorgi, Universita’ di Siena, C117L16, Slide 31 Junk Row Address Col Address Junk DRAM “Fast Page Mode” (o “EDO”), funzionamento • DRAM “Fast Page Mode” • Ho N x M registri per memorizzare una riga Column Address N cols • Dopo che una colonna e’ stata messa nel registro Primo blocco di M-bit Secondo blocco di M-bit Row Address N rows • Ho bisogno solo di CAS per accedere ai rimanenti blocchi di M-bit che stanno sulla stessa riga • RAS_L rimane attivo mentre viene abbassato/alzato CAS_L DRAM N x M “SRAM” M-bit Output Terzo... M bits Quarto... RAS_L CAS_L A Row Address Col Address Roberto Giorgi, Universita’ di Siena, C117L16, Slide 32 Col Address Col Address Col Address Prestazioni del sottosistema di memoria • Possiamo definire come parametro di prestazioni della memoria PMEM=1/tRC • Nel nostro caso si avrebbe per una DRAM con tRAC=50ns (tempo nominale per una DRAM “XXXXX-5”) e tRC=84ns PMEM=1/84ns=12MB/s • Nel caso della EDO DRAM, assumendo per il primo accesso ancora 50ns, ma per ogni accesso successivo 30ns PMEM=1/30ns=33MB/s Come prestazione di picco Roberto Giorgi, Universita’ di Siena, C117L16, Slide 33 DRAM ad alte prestazioni: SDRAM • SDRAM (Synchronous DRAM) • Sono la naturale evoluzione delle EDO DRAM • Segnali in piu’ rispetto alle DRAM: CLK (Clock), CKE (Clock Enable), DQM (DQ Mask), BA (Bank Address) • Il clock consente il pipelining nel datapath fra array interno e DQ • Inoltre ho un banco interno in piu’, selezionabile dall’estrno • Il primo accesso ha una latenza di 1-3 cicli (e cosi’ altri accessi casuali) • Accessi in sequenza consentono pero’ di ottenere dati ad ogni clock • Considerando una latenza media di 2 cicli, per una SDRAM a 100 MHz, si ottiene PMEM= 100MHz/2 = 50MB/s Roberto Giorgi, Universita’ di Siena, C117L16, Slide 34 Dati di targa sulla latenza delle DRAM Sincrone • Viene tipicamente riportata un quadrupla di numeri n1-n2-n3-n4 n1 = tCL = (CAS Latency) tempo da CAS a dato disponibile n2 = tRCD = (RAS to CAS Delay) tempo da RAS a CAS n3 = tRP = (RAS Precharge Delay) tempo da precharge a RAS n4 = tRAS = (Precharge Delay) tempo da RAS a precharge Esempio: 2-2-2-5 Roberto Giorgi, Universita’ di Siena, C117L16, Slide 35 DRAM ad alte prestazioni: DDR • DDR (Double Data Rate) SDRAM • Sono la naturale evoluzione delle SDRAM… • Segnali in piu’ rispetto alle SDRAM: CLK# (Clock complementare), BA[1..0](indirizzo di banco su 2 bit), VDDx8, VSSx8 • Si passa da due banchi interni indipendenti a quattro • Il datapath interno e’ piu’ largo per fornire piu’ banda interna • I dati sono ricevuti sia sul fronte in salita che su quello in discesa del clock, fornendo cosi’ un raddoppio dei dati all’esterno • In corrispondenza di un clock esterno a 100MHz si produce un clock interno a 143MHz • Altri accorgimenti elettrici interni consentono di operare a frequenze cosi’ elevate • Per una DDR SDRAM a 100 MHz, si ottiene come prestazione di picco PMEM= 286 MB/s (143 x 2) Roberto Giorgi, Universita’ di Siena, C117L16, Slide 36 DRAM ad alte prestazioni: SLDRAM e DRDRAM • SLDRAM (Sync-Link DRAM) • Combina le caratteristiche di SDRAM e DDR SDRAM con l’aggiunta di un protocollo pacchettizzato command/address/control • I segnali esterni sono abbastanza diversi da una DRAM • Le prestazioni di picco a 100MHz sono PMEM= 400 MB/s • DRDRAM (Direct RDRAM Rambus) • Sono simili alle SLDRAM per la pacchettizzazione ma sono concettualmente molto diverse dalle DRAM • Le prestazioni di picco a 100MHz sono PMEM= 400 MB/s Roberto Giorgi, Universita’ di Siena, C117L16, Slide 37 SIMM, DIMM, RIMM • SIMM (Single In-line Memory Module) • primo tentativo di fornire uno standard per raggruppare chip di memoria • Inizialmente uscito con 30 pin, poi esteso a 72 pin, consente un bus dati fino a 32 bit • DIMM (Dual In-line Memory Module) • Hanno 168 pin (184 pin negli standard piu’ recenti (2004)) disposti su due fili e consente di ottenere un bus dati a 64 bit • RIMM (marchio del consorizio Rambus) • Il connettore e’ lo stesso delle DIMM a 100MHz standard Roberto Giorgi, Universita’ di Siena, C117L16, Slide 38 Caratteristiche delle Memorie Non-Volatili Roberto Giorgi, Universita’ di Siena, C117L16, Slide 39 • Le prestazioni di un calcolatore sono fortemente dipendenti dalla tecnologia RAM utilizzata • Es. all’interno del processore un’accesso richiede 0.5 ns • Un accesso alla memoria principale richiede 50 ns ! • Contromisure • Specializzare la memoria a seconda dell’uso che ne faccio - Registri - Memoria istruzioni - Memoria dati - Write buffer - ... • Inoltre, si rende necessario l’uso di diverse tecnologie • Cella di memoria: DRAM o SRAM • Organizzazione dei banchi: interleaving, fast-page mode • Throughput: DDR, RAMBUS Roberto Giorgi, Universita’ di Siena, C117L16, Slide 40 EXTRA SLIDES Roberto Giorgi, Universita’ di Siena, C117L16, Slide 41 Costo di “1M transistors/bit-forniti” ($) Costi e Prestazioni delle Memorie Logic in 1980 10k 1k HDD in 1980 DRAM in 1980 100 Logic 10 EEPROM SRAM ROM 1 Flash DRAM 0.1 HDD 0.01 1 10 100 ns 1 10 100 µs 1 10 ms Tempo di Accesso M.N. Kozicki Roberto Giorgi, Universita’ di Siena, C117L16, Slide 42 A8 –A0 256 Col. decoder Col. decoder Col. decoder Col. decoder 128 Kbits 512 Sense Amp. 512 Sense Amp. 128 Kbits 128 Kbits 4 … … 4 6 256 Row dec. 128 Kbits 512 512 Sense Amp. 512 Sense Amp. 128 Kbits 128 Kbits 256 BLOCCO 3 6 128 Kbits 2 Row dec. 2 128 Kbits 128 Kbits Col. decoder Col. decoder 128 Kbits 512 Sense Amp. 512 Sense Amp. 128 Kbits 128 Kbits I/O select 8 Row dec. 8 128 Kbits Col. decoder Col. decoder DRAM: Organizzazione fisica di memoria a 4 Mbit 512 512 Sense Amp. 9 8 8 128 Kbits 128 Kbits BANCO Row dec. 512 Sense Amp. 256 A21 –A13 Row dec. 9 4 BLOCCO 0 9 A8 –A0 A12 –A9 Roberto Giorgi, Universita’ di Siena, C117L16, Slide 43 128 Kbits DQ DRAM: Ciclo di scrittura – Early e Late Write Cycle • L’accesso inizia con l’attivazione di RAS_L • Ci sono due modalita’ di scrittura • Ciclo con Scrittura Anticipata (Early Write Cycle) • Ciclo con Scrittura Ritardata (Late Write Cycle) Write Cycle Time RAS_L CAS_L A Row Address Col Address Junk Data In Junk Row Address Col Address Junk OE_L WE_L DQ Junk Write Access Time Early Write Cycle: WE_L attivato prima di CAS_L Roberto Giorgi, Universita’ di Siena, C117L16, Slide 44 Data In Junk Write Access Time Late Write Cycle: WE_L attivato dopo CAS_L DRAM: Ciclo di lettura – Early e Late Read Cycle • L’accesso inizia con l’attivazione di RAS_L • Ci sono due modalita’ di lettura • Ciclo con Lettura Anticipata (Early Read Cycle) • Ciclo con Lettura Ritardata (Late Read Cycle) Read Cycle Time RAS_L CAS_L A Row Address Col Address Junk Row Address Col Address Junk WE_L OE_L DQ High Z Junk Data Out Read Access Time Early Read Cycle: OE_L attivato prima CAS_L Roberto Giorgi, Universita’ di Siena, C117L16, Slide 45 High Z Data Out Output Enable Delay Late Read Cycle: OE_L attivato dopo CAS_L Fattori di aumento (osservati) ai vari livelli Capacita’ Velocita’ (Latenza) Logica: 2x ogni 3 anni 2x ogni 3 anni DRAM: 4x ogni 3 anni 2x ogni 10 anni Dischi: 4x ogni 3 anni 2x ogni 10 anni Esempio: evoluzione DRAM anno introduzione capacita’ di un chip (bit) 1980 64 K 1983 256K 1986 1M 1989 4M 1992 16M 1996 1000:1 64M 1998 128M 2000 256M 2002 512M 2004 1G 2006 2G tCAC(ns) accesso alla colonna per riga esistente tRAC(ns) accesso a nuova riga/colonna Cycle Time (ns) 75 50 25 20 15 12 10 7 5 5 2.5 150 120 100 80 60 50 50 45 40 35 30 250 220 190 165 120 110 100 90 90 70 60 Roberto Giorgi, Universita’ di Siena, C117L16, Slide 46 3:1 da: Patterson, Hennessy, Patterson, “Computer Architecture: A Quantitative Approach”, 2006 Terminologia delle DRAM DRAM Standard Parametri di merito Pinout, package, refresh rate, capacita’ 1) 2) 3) 4) 1) capacita’ Costo per bit Banda latenza +60% 2) -25% Tassi di variazione per anno 3) +20% 4) -7% Roberto Giorgi, Universita’ di Siena, C117L16, Slide 47 microprocessori Compatibilita’ binaria, IEEE 754, bus di I/O 1) quanti SPEC 2) Costo 1) +60% 2) Circa costante DRAM nel tempo (previsione) Generazione di DRAM Primi esemplari ‘84 ‘87 ‘90 ‘93 ‘96 ‘99 Capacita’ (x 1bit) 1 Mb 4 Mb 16 Mb 64 Mb 256 Mb 1 Gb Area chip (mm2) 55 85 130 200 300 450 Area Memoria (mm2) 30 47 72 110 165 250 Area Cella di memoria (µm2) 28.84 11.1 4.26 1.64 0.61 0.23 (da Kazuhiro Sakashita, Mitsubishi) Confronto: 2004, SRAM annunciate da Intel a 65nm: 70Mbit per chip e cella da 0.57um2 Confronto: 2008, SRAM annunciate da IBM a 22nm: la cella e’ grande 0.14um2 Roberto Giorgi, Universita’ di Siena, C117L16, Slide 48 Riepilogo • Le memorie DRAM sono lente ma poco costose e grandi • Sono ideali per realizzare la memoria principale del calcolatore • Le memorie SRAM sono veloci ma costose e piccole, inoltre dissipano 5 volte piu’ energia delle DRAM • Sono da usare con cautela quando e’ veramente importante il tempo di accesso Roberto Giorgi, Universita’ di Siena, C117L16, Slide 49 Realizzazione Fisica elettrodo superiore (GND): TiN Dielettrico: Ta2O5 metal bit-line poly Elettrodo word-line inferiore MOS di passo Gigabit DRAM Roberto Giorgi, Universita’ di Siena, C117L16, Slide 50 Cella DRAM a “Stack” Roberto Giorgi, Universita’ di Siena, C117L16, Slide 51 70 Mbit SRAM Mark Bohr: Intel 04 Roberto Giorgi, Universita’ di Siena, C117L16, Slide 52 Scaling Gets Tougher Mark Bohr: Intel 04 Roberto Giorgi, Universita’ di Siena, C117L16, Slide 53 Progress Characterized by a Sequence of One-off Solutions Mark Bohr: Intel 04 Roberto Giorgi, Universita’ di Siena, C117L16, Slide 54 Asynchronous SRAM Read Timing Roberto Giorgi, Universita’ di Siena, C117L16, Slide 55 Asynchronous SRAM Write Timing Roberto Giorgi, Universita’ di Siena, C117L16, Slide 56 Timing Sheet Roberto Giorgi, Universita’ di Siena, C117L16, Slide 57 Alpha 21264 Integer Register File 6 Write Ports, 4 Read Ports Sense Amps & Function Unit Interface Read/Write Ports Reference: Design of High-Performance Microprocessor Circuits, A. Chandrakasan, W. Bowhill, F. Fox, IEEE, 2001 Roberto Giorgi, Universita’ di Siena, C117L16, Slide 58 Storage element Basic DRAM controller A[20:23] address Chip decoder select Time delay gen. RAS CAS Select A[10:19] A[0:9] address mux D[0:7] Memory address bus DRAM R/W • DRAM data must be periodically refreshed • Needed to keep data correct • DRAM refresh is done by the DRAM controller using a refresh counter Roberto Giorgi, Universita’ di Siena, C117L16, Slide 59 Paged Mode DRAM RAS# CAS# A[0:7] Data X Row X Col n X Col n+1 X Data n X Col n+2 D n+1 • Multiple accesses to different columns from same row • Saves RAS and RAS to CAS delay Roberto Giorgi, Universita’ di Siena, C117L16, Slide 60 D n+2 Extended Data Output RAM RAS# CAS# A[0:7] X Row X Col n X Col n+1 X Data n Data X Col n+2 Data n+1 Data n+2 • A data output latch enables overlap of the next column address with current column data Roberto Giorgi, Universita’ di Siena, C117L16, Slide 61 Burst DRAM RAS# CAS# A[0:7] X Row X Col n Data • Generate a consecutive address by itself Roberto Giorgi, Universita’ di Siena, C117L16, Slide 62 X Data n Data n+1 Data n+2 Synchronous DRAM – SDRAM • All signals are referenced to an external clock (100MHz-200MHz) • • Multiple Banks • • Makes timing more precise with other system devices Multiple pages open simultaneously (one per bank) Command driven functionality instead of signal driven • ACTIVE: selects both the bank and the row to be activated - ACTIVE to a new bank can be issued while accessing current bank • • Read and write accesses to the SDRAM are burst oriented • • • READ/WRITE: select column Successive column locations accessed in the given row Burst length is programmable: 1, 2, 4, 8, and full-page A user programmable Mode Register • CAS latency, burst length, burst type • Auto pre-charge: may close row at last read/write in burst • Auto refresh: internal counters generate refresh address Roberto Giorgi, Universita’ di Siena, C117L16, Slide 63 SDRAM Timing clock cmd ACT NOP t RCD > 20ns RD RD ACT NOP RD ACT NOP RD NOP t RRD > 20ns NOP NOP BL = 1 t RC>70ns Bank Bank 0 X Bank 0 Bank 0 Bank 1 X Bank 1 Bank 0 X Bank 0 X X X Addr Row i X Col j Col k Row i X Col n Row l X Col q X X X CL=2 Data Data j Data k • tRCD: ACTIVE to READ/WRITE gap = tRCD(MIN) / clock period • tRC: successive ACTIVE to a different row in the same bank • tRRD: successive ACTIVE commands to different banks Roberto Giorgi, Universita’ di Siena, C117L16, Slide 64 Data n Data q DDR vs. DDR2 (source: Elpida Memory) Roberto Giorgi, Universita’ di Siena, C117L16, Slide 65 Posted CAS (source: Elpida Memory) Roberto Giorgi, Universita’ di Siena, C117L16, Slide 66 Prospettiva Storica • Il primo chip di DRAM (1103) introdotto da Intel nell’ Ottobre 1970 • Cycle time 340ns • Access Time 150ns • 1k-bit PMOS Roberto Giorgi, Universita’ di Siena, C117L16, Slide 67 http://www.cpu-museum.com/Bilder/Intel-P1103_1.jpg