Banco di registri e memoria Corso ACSO prof. Cristina SILVANO Politecnico di Milano Componenti di memoria e circuiti di pilotaggio L organizzazione interna della memoria e del banco di registri prevedono generalmente che le uscite di 2 o più componenti siano collegate alle stesse linee di uscita (bus) Sono necessari opportuni elementi funzionali (circuiti di pilotaggio delle uscite del componente) che garantiscano la NON interferenza tra i moduli che condividono le stesse linee di uscita 2 Pag. 1
Esempio: 2 registri da n bit collegati ad un bus da n bit n bit n bit L I R1 L I R2 CK U CK U n bit n bit n bit Per il corretto funzionamento deve essere possibile: isolare elettricamente e attivare in mutua esclusione le uscite dei 2 registri da n bit collegate al bus Buffer tristate E il circuito elementare modellabile come un contatto a tre posizioni: in stato di bassa impedenza consente di avere in uscita o il livello alto (1) o il livello basso (0) in stato di alta impedenza (Z) isola elettricamente l uscita l uscita tristate viene gestita da un apposito ingresso di controllo (Ouput Enable) che, se non attivo, forza lo stato di alta impedenza 3 4 Pag. 2
Funzionamento di un buffer tristate I U I U 0 0 0 0 ingresso di controllo OE 1 interruttore chiuso I U I U 1 1 1 1 OE 1 interruttore chiuso I U I U X Z X Z 0 oppure 1 OE 0 interruttore aperto stato di alta impedenza 5 Banco dei registri (Register File) Spesso occorre utilizzare un certo numero di registri paralleli con le stesse dimensioni e le stesse funzioni (ad es. nel datapath della CPU) Registri Registri di ingresso dell ALU Bus di ingresso all ALU A B A A + A B L + B A U B Registro di uscita dell ALU I registri vengono organizzati in una struttura a vettore, chiamata banco dei registri 6 Pag. 3
Funzionamento di un banco di registri Si consideri ad esempio un banco di 8 registri da 16 bit ciascuno, ovvero un banco 8 16 Ogni registro è identificato da un indirizzo (valore binario su 3 bit compreso tra 0 e 7). Gli 8 registri sono convenzionalmente chiamati: R0, R1,, R7 Più in generale, per specificare l indirizzo con n 1 registri occorrono log 2 n bit Le operazioni eseguibili sul banco sono: lettura: si presentano in uscita i 16 bit memorizzati nel registro indirizzato scrittura: si inviano e memorizzano 16 bit nel registro indirizzato Interfaccia di un banco di registri Il banco dei registri ha: 3 ingressi per l indirizzo del registro da leggere / scrivere 16 uscite/ingressi dati, per ricevere/inviare il contenuto del registro da leggere/scrivere un ingresso di comando: lettura o scrittura (RD: read) un ingresso di abilitazione al banco (CS: Chip Select) un ingresso di controllo per la gestione delle uscite tristate (OE: Output Enable) un ingresso come segnale di clock (CK) Porta di accesso (in lettura /scrittura) al banco di registri 8 x 16 3 16 indirizzo dato 8 16 RD (lettura / scrittura) CS (abilitazione) OE CK (clock) 7 8 Pag. 4
Operazioni di lettura/scrittura Lettura: indirizzo del registro da leggere comando di lettura (RD = 1) comando di Output Enable (OE = 1) abilitazione del banco (CS = 1) in uscita si ottiene il valore del dato del registro indirizzato Scrittura indirizzo del registro da scrivere valore del dato da scrivere nel registro comando di Output Enable (OE = 0) comando di scrittura (RD = 0) abilitazione del banco (CS = 1) Quando CS = 0 le uscite del banco sono a Z (alta impedenza) 9 Struttura del banco di registri 8 x 16 bit indirizzo rete combinatoria di controllo 8 registri paralleli con caricamento dato 3 16 bit R0 lettura scrittura abilitazione Ouput Enable 16 RD CS OE 16 bit 16 bit 16 bit 16 bit 16 bit 16 bit 16 bit R1 R2 R3 R4 R5 R6 R7 clock CK 10 Pag. 5
Varianti I banchi di registri sono disponibili in diverse dimensioni: 8 8, 16 16, 32 32, ecc. Banco di registri multiporta: il banco di registri può avere più porte di accesso distinte, in lettura/scrittura (o anche in sola lettura o sola scrittura) per poter operare in parallelo su più registri. Esempio tipico: 2 porte di lettura e 1 porta di scrittura In caso di più porte di scrittura, il banco è in grado di gestire i conflitti di scrittura 11 Banco di Registri con 2 porte di lettura e 1 porta di scrittura Banco di registri con 2 porte di lettura (Dato A e Dato B dell ALU) e una porta di scrittura (risultato in uscita dall ALU) Banco di Registri Registri di ingresso dell ALU Bus di ingresso all ALU A A A A + A B L + B B U B Registro in uscita dall ALU 12 Pag. 6
Banco di Registri (Register File) Progettiamo un Register File con n registri, due porte di lettura (DatiA e DatiB) e una porta di scrittura (Risultato) Indirizzo Dati A Indirizzo Dati B Indirizzo Risultato Risultato Dati A Dati B 13 Implementazione delle 2 porte di lettura 14 Pag. 7
Implementazione della porta di scrittura kton 15 Memoria La memoria è un blocco funzionale di tipo sequenziale complesso Serve per memorizzare dati e istruzioni, e per permetterne l accesso, in lettura o in scrittura Ha una struttura a matrice (vettore di parole), i cui elementi sono le parole (word) di memoria Ogni parola è una sequenza di bit, in numero fissato 1 Un componente integrato (chip) di memoria si caratterizza specificando: la capacità, misurata in numero totale di bit memorizzabili: di solito si esprime come prodotto del numero di parole per il numero di bit per parola le funzioni: lettura e scrittura, solo lettura il numero di porte di accesso e il tempo necessario per l accesso 16 Pag. 8
Organizzazione a parole indirizzo di parola vettore di parole bit 0 1 2 3 4 5 6 7 0 1 7 8 bit 8 bit 8 bit 8 bit 8 bit 8 bit 8 bit parola Capacità: 8 parole 8 bit per parola = 64 bit 17 Interfaccia di memoria Il contenuto della memoria viene letto o scritto una parola per volta, in un ciclo di clock (più cicli in memorie lente) Si accede a una parola di memoria tramite la porta di accesso alla memoria La porta di accesso alla memoria può funzionare in lettura e scrittura (è il caso più frequente), solo in lettura e teoricamente anche solo in scrittura (caso poco frequente) 18 Pag. 9
Segnali dell interfaccia di memoria La porta di accesso (interfaccia) alla memoria è formata dai seguenti segnali: Ingressi di indirizzo, che codificano in binario l indirizzo della parola su cui si deve operare se la memoria ha capacità di k 1 parole, occorrono log 2 k ingressi di indirizzo Ingresso/Uscita dei dati, per leggere/scrivere una parola di m bit Bit di comando di lettura/scrittura, RD (read): RD = 1 lettura; RD = 0 scrittura Bit di comando di abilitazione del componente, CS (Chip Select): CS = 1 chip attivo, si può accedere al contenuto; CS = 0 chip non attivato Bit di comando di abilitazione delle uscite dati, OE (Output Enable): OE = 1 le uscite sono abilitate; OE = 0 le uscite sono isolate 19 Componente di memoria porta di accesso { n bit m bit indirizzo dato Capacità: 2 n m RD (lettura / scrittura) OE (abilitazione uscite) CS (abilitazione chip) Componente integrato (chip) di memoria Capacità: 2 n parole m bit per parola 20 Pag. 10
Diagramma temporale Capacità: 8 8 bit # bit ind: log 2 8 = 3 bit # bit dato: 8 bit Dato OE RD CS 5 3 2 4 ritardo di lettura 10 50 ns ritardo di scrittura 10 50 ns (8 bit di (8 bit di dato) d t ) 10101010 2 00010011 uscite isolate legge (3 bit di indirizzo) (3 bit di indirizzo) Indirizzo 1 000 1 001 4 3 5 scrive abilitazione chip lettura legge 10101010 dalla parola di indirizzo 000 21 scrittura scrive 00010011 nella parola di indirizzo 001 Tempo Cicli di lettura e scrittura Ciclo di lettura Ciclo di scrittura 1. indirizzo della parola da leggere 2. comando di lettura (RD = 1) 3. non isolare le uscite dati (OE = 1) 4. abilitare il componente (CS = 1) 5. contenuto della parola disponibile sulle uscite. Ritardo di lettura: 10 50 ns 1. indirizzo della parola da scrivere 2. dato da scrivere in ingresso 3. comando di scrittura (RD = 0) 4. isolare le uscite dati (OE = 0) 5. abilitare il componente (CS = 1). Ritardo di scrittura: 10 50 ns 22 Pag. 11
Organizzazione a matrice Le memorie vengono viste di solito come vettori (monodimensionali) di parole Le memorie di elevata capacità possono in realtà avere una struttura interna a matrice (bidimensionale), allo scopo di ridurre i collegamenti interni In tal caso sono di solito presenti due comandi aggiuntivi (RAS e CAS), per l accesso alla memoria: RAS: Row Address Strobe CAS: Column Address Strobe 23 Esempio di memoria organizzata a matrice Memoria con capacità di 16Mbit Configurazione esterna: 2M x 8 bit = 2M Byte (21 bit indirizzo per byte) Struttura: matrice 4K(righe) x 4K(colonne) Riga: 4K bit vista come 512 x 8 bit (2 9 Byte) Indirizzi: Indirizzo di riga: 12 bit Indirizzo di colonna: 9 bit per individuare il byte nella riga Accesso: Indirizzo di riga + RAS (accesso a 4096 bit) Indirizzo di colonna + CAS (accesso a 1 byte tra i 512) 24 Pag. 12
Esempio di organizzazione a matrice (2) RAS I 209 12 bit registro indirizzo di riga decod. di riga matrice di celle 512 8 totale 4096 bit I 209 \ I 80 21 bit circuito di lett. \ scritt. CS R \ W 9bit I 80 registro indirizzo di col. decod. di colonna CAS D 7 D 0 25 Banco di memoria Sono disponibili componenti integrati di memoria di svariate capacità Per esempio: 64 K 8, 1 M 8, 1 M 1, 256 M 1, Per ottenere memorie di capacità elevata, occorre aggregare più componenti di memoria, realizzando un banco di memoria I banchi di memoria hanno una struttura a matrice di chip Per aumentare la lunghezza della parola di memoria, si compone una colonna di chip di memoria, da usare in parallelo Per aumentare il numero di parole della memoria, si compone una riga di chip di memoria, da usare in esclusione 26 Pag. 13
Esempio Si supponga di disporre di 4 chip di memoria da 1 M 8 ciascuno Si desidera ottenere un banco di memoria da 2 M 16 Il numero di chip è sufficiente: 4 (1 M 8) = 32 Mbit e 2 M 16 = 32 Mbit Occorre comporre una matrice 2 2: 2 righe ih di 2 chip di memoria ciascuna 27 Interfaccia processorememoria Processore MAR MDR Logica di controllo Bus indirizzi n bit Bus dati m bit Bus di controllo Indirizzo i Dato Memoria Capacità 2 n x m RD (lettura/scrittura) OE (Output Enable) CS (Chip Select) MAR: Memory Address Register MDR: Memory Data Register 28 Pag. 14
Tecnologie di memoria Esistono svariate tecnologie di memoria, che dipendono: dalla capacità della memoria dal tempo di accesso a una parola (in lettura o in scrittura) dalla politica di accesso: lettura e scrittura, sola lettura, programmabilità sul campo dalla stabilità: volatile o permanente dal costo 29 RAM Statica (SRAM) Memoria RAM (Random Access Memory) La memoria SRAM richiede 6 transistor per bit memorizzato Capacità mediopiccola Tempo di accesso molto breve Funziona in lettura e scrittura Volatile: senza alimentazione il contenuto della memoria svanisce Usi: svariati, in particolare come memoria cache 30 Pag. 15
RAM Dinamica (DRAM) La tecnologia DRAM richiede 1 transistor per bit memorizzato Sfrutta il fenomeno dell accumulo temporaneo di carica sul transistor (capacità parassita) Internamente contiene un circuito di rinfresco che rigenera le cariche Memoria RAM (matrice di transistor) ad altissima densità Capacità grandegrandissima Tempo di accesso medio Funziona in lettura e scrittura Volatile: senza alimentazione il contenuto della memoria svanisce Usi: numerosissimi, la memoria centrale (main memory) dei calcolatori normalmente è DRAM 31 ROM Memoria ROM (Read Only Memory), realizzata come matrice di transistor Capacità grande Tempo di accesso medio Funziona in sola lettura Persistente: il contenuto permane anche in assenza di alimentazione Usi: per memorizzare programmi permanenti, non modificabili; grandi volumi di produzione 32 Pag. 16
PROM, EPROM, EEPROM Capacità e tempo simili alla ROM Sola lettura e persistenti Sono programmabili sul campo, tramite un apposito programmatore: PROM (Programmable Read Only Memory): programmabile una volta sola EPROM (Erasable Programmable Read Only Memory): cancellabile con raggi UV EEPROM (Electrically Erasable Programmable Read Only Memory): cancellabile elettricamente (si può anche scrivere un solo byte per volta) Usi: piccoli volumi di produzione, prototipi 33 Memoria FLASH Evoluzione della tecnologia EEPROM con densità maggiore e quindi capacità più elevata Funziona in lettura e scrittura (la scrittura è a blocchi di byte) Persistente: il contenuto permane anche in assenza di alimentazione Usi: Basso consumo di energia la rendono adatta nei sistemi portatili (palmari, telefoni cellulari, fotocamere digitali) Flash memory stick o pen drive: banco di memoria flash di capacità dell ordine del GByte 34 Pag. 17
Tabella riassuntiva delle tecnologie di memoria Tipo Categoria Modalità di cancellazione Scrittura byte Volatile Usi specifici SRAM lett/scritt elettrica si si cache DRAM lett/scritt elettrica si si mem. centrale ROM sola lett nessuna no no grandi vol. PROM sola lett nessuna no no piccoli vol. EPROM sola lett luce UV no no prototipi EEPROM sola lett elettrica si (lenta) no prototipi FLASH lett/scritt elettrica a blocchi no multimedia Le memorie cancellabili vengono talvolta qualificate come memorie prevalentemente a sola lettura (readmostly), invece che a sola lettura (readonly) 35 Pag. 18