Il quadro di insieme • I cinque componenti di un calcolatore Processore Tecnologie per la memoria e gerarchie di memoria Unità di controllo Architetture dei Calcolatori Unità di elaborazione dati (lettere A-I) Dispositivi di input Memoria Dispositivi di output • Memoria principale: memorizza al proprio interno i dati e le istruzioni dei programmi in esecuzione Architetture dei Calcolatori 2004/05 Valeria Cardellini 1 Un ripasso: latch D e flip-flop D Un ripasso: clock C D Q C _ Q Q D • Il latch D (Delay) quando il segnale di clock C va ad 1 cambia stato e registra nello stato Q il valore dell’ingresso D; il latch non cambia stato quando C=0 • Nei circuiti sequenziali sincroni tutti i cambiamenti di stato vengono sincronizzati da un segnale (clock) • Da un clock primario ne vengono ricavati altri per sfasatura, sottrazione ecc. • Le transizioni di stato del circuito possono avvenire: – La porta NOR agisce da invertitore quando l’altro ingresso è 0 • Nel flip-flop D, il valore di D deve essere stabile quando il clock C cambia • setup time: prima del cambio di fronte del clock • hold time: dopo il cambio di fronte del clock A) In corrispondenza dei livelli B) In corrispondenza dei fronti (edge-triggered clocking) D Set-up time Architetture dei Calcolatori 2004/05 Valeria Cardellini 2 Architetture dei Calcolatori 2004/05 C Valeria Cardellini Hold time Setup e hold time per un flip-flop D (clock sul fronte di discesa) 3 1 Banco di registri (register file) Registro • Banco di registri ad accesso rapido per memorizzare temporaneamente gli operandi usati nelle istruzioni • Nel MIPS il banco dei registri è composto RW RA RB Write Enable 5 5 5 da 32 registri generali Write Enable • Registro – Simile ad un flip flop D eccetto Data Out N Data In N • N bit di ingresso e uscita • Input Write Enable – Write Enable: • Se negato (0): i dati in uscita (Data Out) non cambiano • Se asserito (1): i dati in uscita (Data Out) divengono uguali ai dati in ingresso (Data In) – Due bus di output a 32 bit: busA e busB – Un bus di input a 32 bit: busW busW CLK • Il registro è selezionato da: 32 CLK 32 registri (da 32 bit) – RA (numero): seleziona il registro da mettere su busA (dati) busA 32 busB 32 – RB (numero): seleziona il registro da mettere su busB (dati) – RW (numero): seleziona il registro che deve essere scritto tramite busW (dati) quando Write Enable è 1 • Clock (CLK) – L’input CLK ha influenza soltanto durante le operazioni di scrittura – Durante le operazioni di lettura, si comporta come un blocco di logica combinatoria: RA o RB valido → busA o busB valido dopo il tempo di accesso Architetture dei Calcolatori 2004/05 Valeria Cardellini 4 Architetture dei Calcolatori 2004/05 Valeria Cardellini Banco di registri (2) Banco di registri (3) • Un banco di registri può essere implementato con un multiplexer per ciascuna porta read, un decoder per ciascuna porta write ed un array di registri costruiti partendo da flip-flop D • Esempio: implementazione di due porte read per un banco di registri composto da n registri • Esempio: implementazione di una porta write per un banco di registri composto da n registri 5 Read register number 1 Register 0 Register 1 Register n – 1 M u x Read data 1 M u x Read data 2 Register n Read register number 2 Architetture dei Calcolatori 2004/05 Valeria Cardellini 6 Architetture dei Calcolatori 2004/05 Valeria Cardellini 7 2 Principali tecnologie per RAM Memoria (idealizzata) Write Enable • Memoria (schema idealizzato) – Un bus di input: Data In – Un bus di output: Data Out • Le memorie RAM sono di due tipi Address Data In 32 CLK Data Out 32 • Memorie dinamiche – Indirizzo: seleziona la parola da mettere su Data Out – Write Enable=1: l’indirizzo seleziona la parola di memoria che deve essere scritta mediante il bus Data In (operazione di scrittura) – Il singolo elemento corrisponde ad un condensatore ed un transistor – L’informazione è memorizzata sotto forma di carica del condensatore – Richiedono un refresh periodico dell’informazione • Clock (CLK) • Le memorie statiche sono (rispetto a quelle dinamiche) – L’input CLK ha influenza soltanto durante le operazioni di scrittura – – – – – Durante le operazioni di lettura, si comporta come un blocco di logica combinatoria: • Indirizzo valido => Data Out valido dopo il tempo di accesso 8 Memoria principale, cache e tecnologie Più veloci Più costose (6 transistor per bit) Persistenti (non è richiesto il refresh) Più affidabili Architetture dei Calcolatori 2004/05 Valeria Cardellini 9 Diagramma logico di un chip SRAM • Prestazioni della memoria principale A – Latenza N • Tempo di accesso: tempo tra quando arriva la richiesta e la parola • Tempo di ciclo: tempo tra richieste WE_L OE_L – Banda • La memoria principale è DRAM 2 N words x M bit SRAM M D • Write Enable è solitamente attivo se basso (WE_L) • Data in and Data out sono combinati per risparmiare piedini sul chip – Dinamica in quanto ha bisogno di essere rinfrescata periodicamente (8 ms) – Indirizzi di memoria divisi in due parti (memoria come una matrice 2D): – C’è bisogno di un nuovo segnale di controllo, output enable (OE_L) – WE_L è asserito (Low), OE_L is disasserito (High) • RAS o Row Access Strobe • CAS o Column Access Strobe • D serve come input • La memoria cache usa SRAM – WE_L is disasserito (High), OE_L è asserito (Low) • D serve come output – No refresh (6 transistor/bit vs. 1 transistor) Dimensione: DRAM/SRAM = 4-8 Cost/Cycle time: SRAM/DRAM = 8-16 Architetture dei Calcolatori 2004/05 Valeria Cardellini • Memorie statiche – Il singolo elemento corrisponde ad un flip-flop • La parola di memoria è selezionata da: Architetture dei Calcolatori 2004/05 Valeria Cardellini – Memorie statiche: Static Random Access Memory (SRAM) – Memorie dinamiche: Dynamic Random Access Memory (DRAM) – WE_L e OE_L sono entrambi asseriti: • Il risultato non è noto! 10 Architetture dei Calcolatori 2004/05 Valeria Cardellini 11 3 Buffer three-state Struttura di una SRAM 4x2 Din[1] Write enable Din[0] D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable 0 2-to-4 decoder 1 • Un dispositivo a tre stati, in base ad un segnale di controllo, si comporta: Address 2 (b) controllo=1: come circuito chiuso (c) controllo=0: come circuito aperto 3 • Tempo di commutazione: pochi nsec Dout[1] • Consente di usare gli stessi piedini sia per la lettura che per scrittura Architetture dei Calcolatori 2004/05 Valeria Cardellini Dout[0] Il buffer three-state è incorporato nei flip-flop che formano le celle di base di una SRAM (buffer controllato dal segnale Enable) 12 Architetture dei Calcolatori 2004/05 Valeria Cardellini Struttura di una SRAM 4Mx8 15 Memoria DRAM • Cella di memoria con un transistor – Il condensatore memorizza il contenuto della cella ed il transistor è usato per accedere alla cella – La memoria deve essere rinfrescata perché il condensatore non può tenere la carica per un tempo indefinito • Il primo decoder (12-to-4096) genera l’indirizzo per gli 8 array da 4K x 1024 (4K = 4096 = 212) • Un set di 8 multiplexer con 10 linee di controllo ciascuno è usato per selezionare 1 bit tra i 1024 (1024 = 210) in ingresso (uscita degli 8 array da 4Kx1024) Architetture dei Calcolatori 2004/05 Valeria Cardellini 16 Architetture dei Calcolatori 2004/05 Valeria Cardellini 17 4 Decodifica su due livelli (2) Decodifica su due livelli bit (data) lines • DRAM usa un decoder a due livelli – Indirizzo di memoria (n bit) suddiviso in row address (n/2 bit) e column address (n/2 bit) – Accesso di riga seguito da accesso di colonna – Segnale di controllo RAS: Row Address Strobe – Segnale di controllo CAS: Column Address Strobe r o w – Memoria DRAM 4Mx1 (4 Mbit) con una matrice 2048x2048 Row address RAM Cell Array d e c o d e r • Esempio Row decoder 11-to-2048 Each intersection represents a 1-T DRAM Cell word (row) select 2048 × 2048 array row address Column Selector & I/O Circuits column address Column latches Address[10–0] Column address data Mux • Row e Column Address insieme: – Selezionano 1 bit alla volta Architetture dei Calcolatori 2004/05 Valeria Cardellini Dout 18 Architetture dei Calcolatori 2004/05 Valeria Cardellini Tipi di memoria a semiconduttore Refresh nelle DRAM • SRAM (Static RAM): a flip-flop, molto veloce (~5 nsec) • DRAM (Dynamic RAM): basata su capacità parassite; richiede refresh, alta densità, basso costo (~70 nsec) • Necessario rinfrescare, cioè riscrivere, tutta la DRAM con periodo T • Possibile scrivere in un solo ciclo una riga o una colonna • Refresh simultaneo di tutti i chip e tutte le schede Esempio – T: periodo di refresh – n: dimensione (4 ms) (4MB) – τ: durata ciclo refresh – η: overhead (40ns) – FPM: selezione a matrice – EDO: (Extended Data Output) lettura in pipeline, più banda • SDRAM (Synchronous DRAM) – Sincrona (scambia dati con il processore in sincronia con un segnale di clock esterno), prestazioni migliori • • • • η=(√ n·τ) / T η = (2048·40·10-9) / (4·10-3) ≈ 2% Architetture dei Calcolatori 2004/05 Valeria Cardellini 19 20 PROM (Programmable ROM) EPROM (Erasable PROM): raggi UV EEPROM: cancellabile elettricamente Flash Memory: tipo di EEPROM Architetture dei Calcolatori 2004/05 Valeria Cardellini 21 5 Problema: divario delle prestazioni CPU-memoria CPU Obiettivo: illusione di una memoria grande, veloce ed economica Capacità: 2x / 3 anni Velocità: 2x / 3 anni Prestazioni 1000 100 Divario di prestazione processore-memoria: (aumenta 50% / anno) 10 • Osservazioni: – Le memorie di grandi dimensioni sono lente – Le memorie veloci hanno dimensioni piccole “Legge di Moore” • Come creare una memoria che sia grande, economica e veloce (per la maggior parte del tempo)? DRAM Capacità: 4x / 3 anni Velocità: 2x / 10 anni – Gerarchia – Parallelismo 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 1 Tempo Architetture dei Calcolatori 2004/05 Valeria Cardellini 22 Architetture dei Calcolatori 2004/05 Valeria Cardellini Gerarchia di memoria Gerarchia di memoria (2) • La memoria di un calcolatore è implementata come una gerarchia di memoria • Obiettivi della gerarchia di memoria: – Fornire all’utente una quantità di memoria pari a quella disponibile nella tecnologia più economica – Fornire una velocità di accesso pari a quella garantita dalla tecnologia più veloce – Differenti tempi di accessi e di costo corrispondenti ai diversi livelli di memoria CPU Aumenta il tempo di accesso Aumenta la capacità di memorizzazione Processor Livello 1 Control Livello 2 Datapath Livello n Dimensione della memoria ad ogni livello Architetture dei Calcolatori 2004/05 Valeria Cardellini 24 Second Level Cache (SRAM) On-Chip Cache . . . Registers Diminuisce il costo per bit 23 Main Memory (DRAM) Speed (ns): 1 10 100 Size (bytes): 100 K M Architetture dei Calcolatori 2004/05 Valeria Cardellini Secondary Storage (Disk) 10,000,000 (10 ms) G Tertiary Storage (Tape) 10,000,000,000 (10 sec) T 25 6 Principio di località Principio di località (2) • Osservazione: i programmi accedono ad una porzione relativamente piccola del loro spazio di indirizzamento • Esistono due tipi differenti di località • Località temporale (nel tempo): se un elemento (dato o istruzione) è stato acceduto, tenderà ad essere acceduto nuovamente in un tempo ravvicinato • Località spaziale (nello spazio): se un elemento (dato o istruzione) è stato acceduto, gli elementi i cui indirizzi sono vicini tenderanno ad essere acceduti in un tempo ravvicinato Esempio Probabilità di riferimento 0 2n-1 • Località temporale: => Tenere gli elementi acceduti più frequentemente vicino al processore • Località spaziale: => Spostare blocchi contigui di parole al livello superiore – I programmi contengono cicli: le istruzioni ed i dati saranno acceduti ripetutamente (località temporale) – Gli accessi agli elementi di un array presentano un’elevata località spaziale; nell’esecuzione di un programma è altamente probabile che la prossima istruzione sia contigua a quella in esecuzione Architetture dei Calcolatori 2004/05 Valeria Cardellini Spazio di indirizzamento To Processor Upper Level Memory Lower Level Memory Blk X From Processor 26 Blk Y Architetture dei Calcolatori 2004/05 Valeria Cardellini 27 Migrazione dei dati Gerarchia di memoria (3) • Blocco: la minima unità di informazione che può essere trasferita tra due livelli adiacenti • Hit (successo): il dato richiesto dal processore è presente in un blocco del livello superiore • In caso contrario si ha un miss (fallimento):il livello inferiore della gerarchia deve essere acceduto per recuperare il blocco contenente il dato richiesto • Basandosi sul principio di località, la memoria di un calcolatore è implementata come una gerarchia di memoria • Solo il livello più alto della gerarchia di memoria è a contatto diretto con il processore – Costituito dalla memoria cache • Livelli di memoria inclusivi Processore – Un livello superiore, più vicino al processore, contiene un sottoinsieme di informazioni dei livelli inferiori – Tutti i dati sono memorizzati nel livello più basso • Migrazione dei dati fra livelli della gerarchia – I dati vengono di volta in volta copiati solo tra livelli adiacenti Architetture dei Calcolatori 2004/05 Valeria Cardellini 28 Architetture dei Calcolatori 2004/05 Valeria Cardellini 29 7 Memoria cache Strategia di utilizzo della cache • La prima volta che il processore richiede dei dati si ha un cache miss – I dati vengono caricati dalla memoria principale e vengono copiati anche nella cache • La memoria principale (DRAM) è sempre più lenta del processore e tende a rallentarlo • Sono disponibili memorie più veloci (SRAM) ma solo per dimensioni limitate • La cache funziona alla velocità del processore, e quindi nasconde la “lentezza” della memoria • Le volte successive, quando il processore richiede l’accesso ad una cella di memoria – Se il dato è presente in un blocco contenuto nella cache, la richiesta ha successo ed il dato viene passato direttamente al processore • Si verifica un cache hit – Scopo della cache: disaccoppiare le velocità di processore e RAM – Altrimenti la richiesta fallisce ed il blocco contenente il dato viene anche caricato nella cache e passato al processore • Contiene le ultime porzioni di memoria acceduta: se il processore richiede l’accesso ad una di esse evita un accesso alla memoria • Funziona bene sfruttando il principio di località dei riferimenti Architetture dei Calcolatori 2004/05 Valeria Cardellini • Si verifica un cache miss • Obiettivo: aumentare quanto più possibile il tasso di cache hit 30 Hit rate e tempo medio di accesso in memoria 31 Come è gestita la gerarchia di memoria? • Registri ↔ Memoria principale • Hit rate: frazione degli accessi in memoria risolti nel livello superiore della gerarchia di memoria – Dal compilatore (programmatore?) Hit rate = numero di hit / numero di accessi in memoria • Cache ↔ Memoria • Miss rate: 1 – (Hit rate) – Dall’hardware • Memoria ↔ Dischi • Tempo medio di accesso in memoria (AMAT): AMAT = c + (1-h)m – Dall’hardware e dal sistema operativo (memoria virtuale) – Dal programmatore (file) – – – – c: hit time (tempo di accesso alla cache) h: hit rate 1-h: miss rate m: miss penalty=access time + transfer time (tempo per accedere al livello inferiore della gerarchia di memoria più tempo per trasferire il blocco dal livello inferiore della gerarchia) – Hit time << miss penalty Architetture dei Calcolatori 2004/05 Valeria Cardellini Architetture dei Calcolatori 2004/05 Valeria Cardellini 32 Architetture dei Calcolatori 2004/05 Valeria Cardellini 33 8 Come aumentare la larghezza di banda della memoria Aumentare la banda: interleaving • Accesso senza interleaving: Tempo di accesso • Diverse organizzazioni del sistema di memoria CPU D1 disponibile Cache Cache Inizio accesso per D1 Cache Memory Bus Bus Memory b. Wide memory organization Memory CPU CPU Multiplexor Bus CPU Tempo di ciclo Memory bank 0 Memory bank 1 Memory bank 2 Inizia accesso per D2 Memory Bank 0 • Accesso con interleaving a 4 vie: Memory bank 3 CPU c. Interleaved memory organization Memory Bank 2 a. One-word-wide memory organization CPU, Cache, Bus, Memoria con stessa larghezza (es. 32 bit) Architetture dei Calcolatori 2004/05 Valeria Cardellini • Wide: CPU, Cache, Bus 1 parola; Memoria a N banchi (es. N=4) CPU/Mux 1 parola; Mux/Cache, Bus, Memoria N parole (es. Alpha: 64 bit e 256 bit) 34 Accesso banco 0 • Interleaved: • Semplice: Memory Bank 1 Accesso banco 1 Accesso banco 2 Accesso banco 3 Architetture dei Calcolatori 2004/05 Valeria Cardellini Memory Bank 3 Possiamo nuovamente accedere a banco 0 35 9