Capitolo 10La memoria
G. Bucci - Calcolatori Elettronici
Memoria - classificazione• Funzionalità
– Memoria di sola lettura (ROM): per contenere i programmi che inizializzano la macchina all’accensione + il kernel del OS
– Memoria di lettura/scrittura (RAM): genericamente tutta la mamoria (cache, mem. Princ., mem. Ausiliaria)
• Tecnologia– Memoria elettronica: componente coinvolto direttamente nei
processi di elaborazione. Appartengono a questa classe le RAM che indicano una mem. Elettronica di R/W. Anche le ROM appartengono a questa classe
– Memoria magnetica: usata per la memoria di massa (dischi) e quella a lungo termine (nastri). Caratteristiche: non voltatilità e basso costo per bit
– Memoria ottica: dischi ottici per trasporto dati e backup
G. Bucci - Calcolatori Elettronici
Memoria - classificazione
• Modalità di accesso – Memoria ad accesso casuale (RAM): tempo di accesso ad
una cella indipendente dalla posizione– Memoria ad eccesso sequenziale: l’accesso ad una cella
avviene scorrendo la memoria (nastri)– Memoria ad accesso semi-casuale: dischi magnetici– Memoria ad eccesso per contenuto (Content Addressable
Memory): in lettura, questa memoria restituisce l’indirizzo della cella che contiene il dato che gli viene presentato
Memoria RAM
– Statiche (uno FF per bit)• Alto Consumo• Bassa Integrazione• Alto Costo• Alta velocità
usata per la cache o i registri di CPU– Dinamiche (1 transistore Cmos per cella; un condensatore
fa da elemento di mem)• Basso Consumo• Alta integrazione• Basso costo• Bassa velocitàUsata per la memoria centrale
SRAM
SRAM
SRAM
Comandi WE: funzione scrittura/lettura a seconda che sia asserito alto/basso; CE funzione abilitazione del dispositivo; OE abilitazione dell’uscita in caso di lettura
SRAMTemporizzazione degli accessi
1. Asseriti gli indirizzi2. Asseriti CE e OE, WE resta diasserito a indicare la lettura3. Il dispositivo che comanda la lettura (CPU) diasserisce CE e OE dopo
che ha acquisito i dati.TACC = tempo per avere dati stabili in uscita
Siccome gli indirizzi per la prossima lettura potrebbero essere variati immediatamente dopo la lettura => TACC = TRC
DRAM
Organizzazione della DRAM:Celle organizzate per righe e colonne. Per leggere un dato occorre dare alla mamoria prima l’indirizzo di riga (RAS Row Address Strobe) e poi quello di colonna (CAS Column Address Strobe). In questo modo si dimezza il numero di piedini per l’indirizzamento a scapito del tempo di ciclo
DRAM
Piedini di controllo: RAS (segnale caricamento riga); CAS (segnale caricamento colonna); WE (scrittura in memoria); OE (abilitazione delle uscite)
Piedini di indirizzo e dati
Temporizzazione:
1. WE tenuto disasserito, sui piedini degli indirizzi viene posto l’ind. di riga e viene asserito RAS
2. Trascorso il tempo tRAH, sui piedini degli indirizzi viene posto l’indirizzo di colonna e viene asserito CAS.
i dati sono disponibili in uscita dopo un tempo tRC perchè, sebbene il dato sia disponibile dopo tRAC perchèuna seconda lettura non pò essere attivata che dopo tRC
G. Bucci - Calcolatori Elettronici
Organizzazione Memoria• Elemento indirizzato
– E’ convenzione assegnare gli indirizzi ai byte
• Grado di parallelismo– Numero di bit del bus dati
• Selezione degli integrati componenti (la memoria è organizzata a blocchi)
• L’indirizzo generato dalla CPU puòessere considerato composto da 2 campi: a dx [Ac-1, A0], di c bit contiene l’indirizzo della cella entro il blocco, a sx [Am-1, Ac], di m-c bit contiene il numero di blocco
M
Indirizzi An-1 - A0
Dati: 8, 16, 32, 64 bit
Comandi
Organizzazione Memoria
• Memoria a 8 bit
Linee Ind: Alog(C)-1…..A0
Struttura che permette di leggere il byte, la semiparola e la parola.Per poter leggere/scrivere 32 bit è necessario che sul bus dati vengano presentati 4 byte in parallelo. La memoria è “affettata” in 4 colonne; ogni colonna è collegata alle linee del bus dati corrispondenti - es. La colonna a dx è collegata alle linee BD7-0
G. Bucci - Calcolatori Elettronici
Dischi magnetici
• Memorie di massa• Piatti, settori, tracce, cilindri, testine,….• Tecnologie raffinatissime
– l’altezza di volo delle testine è 0,5 micron (una particella di fumo è 6 micron)
G. Bucci - Calcolatori Elettronici
Dischi magnetici
• Piatti: da 1 a 20• Diametro: da 1 a 5,25 pollici (portatili 2”)• Giri/min: da 3600 a 7200 (e più)• Tracce: da 1000 a 5000 per faccia• Settori: da 64 a 200• Dim settore: 512 (tipica), 1024, 2048 byte
• Tseek: da 8 a 12 ms (è un tempo medio: sfavorevole!! )
• Tlat = 0,5 (60/g) s• Ttrasf = Dimsett/Vtrasf (Vtrasf: da 2 a 15 Mbyte/s)
• Tacc= Tseek+Tlat+Ttrasf (+Tcontr+Tq)
G. Bucci - Calcolatori Elettronici
Memoria
• Parametri di valutazione – Dimensione (bit o byte)– Velocità– Potenza– Integrazione (misurata come dimensione fisica o densità di
memoria per chip)– Costo
G. Bucci - Calcolatori Elettronici
Crescita livello integrazione DRAM
G. Bucci - Calcolatori Elettronici
Costi DRAM
G. Bucci - Calcolatori Elettronici
Evoluzione tecnologica (DRAM)
G. Bucci - Calcolatori Elettronici
La forbice
Negli anni è cresciuta, e continua a crescere,la differenza di velocità tra CPU e memoria.
G. Bucci - Calcolatori Elettronici
“Legge” di Moore
• Enunciata nel 1965, aggiustata più volte:– Inizialmente: Raddoppio della “capacità elaborativa”
(numero di transistori) ogni 12 mesi (anni 70)– A media via: Raddoppio ogni 2 anni (anni 80)– Correntemente: Raddoppio ogni 18 mesi (dai 90)
• Vuol dire che nei prossimi 18 mesi l’elettronica avràun aumento quantitativo pari a quello complessivo dall’inizio (della storia) ad oggi !!!!!!!!!!!!!!– Non è una legge fisica– Prima o poi non andrà più bene– Per ora tiene!!!!!!!!!!!!!!!!
G. Bucci - Calcolatori Elettronici
Processori Intel
G. Bucci - Calcolatori Elettronici
Processori Intel
G. Bucci - Calcolatori Elettronici
Cicli di wait
• f: frequenza del clock• N: numero di cicli previsti dalla CPU per l’accesso
alla memoria• Tempo di memoria: t = N/f deve essere > tACC
E se non è verificata?• Una soluzione è inserire cicli di wait
t = (N + Nw)/f > tACC
Quanto più la macchina è veloce, tanto più si paga.
G. Bucci - Calcolatori Elettronici
G. Bucci - Calcolatori Elettronici
Il caso Intel …..
G. Bucci - Calcolatori Elettronici
... Il caso Intel
• A partire dal 486 frequenza interna (f) ed esterna (fbus)sono diverse.
• I cicli di Wait sono improponibili (già dal 386)• La soluzione sono le CACHE
G. Bucci - Calcolatori Elettronici
Gerarchia
• Località spaziale• Località temporale
• Non serve una memoria “piatta”. Meglio una gerarchia
Cache
M centr.
G. Bucci - Calcolatori Elettronici
Gerarchia
G. Bucci - Calcolatori Elettronici
Esempio di Gerarchia (Pentium II)
G. Bucci - Calcolatori Elettronici
Ordinamento
• Intel: Little Endian• Motorola: Big Endian• PowerPC: a scelta
6 34 3 1 05
21 3 40 65
G. Bucci - Calcolatori Elettronici
Allineamento in memoria
• Esempio: parole di 32 bit, formate da quattro banchi di 8 byte• La parola tratteggiata è non allineata; ha il byte meno
significativo in i+6 (Little Endian) il più significativo in i+9• Occorrerebbero due accessi alla memoria
G. Bucci - Calcolatori Elettronici
Indirizzamento
• L’interpretazione del campo IND può essere differente da macchina a macchina
• Indirizzo effettivo (EA): Il valore che risulta dal calcolo dell’indirizzo attraverso i componenti espliciti contenuti nell’istruzione
LD RA, VAR
ST VET(R28), R12
MOV AX, VAR
MOV VET(IS), BX
G. Bucci - Calcolatori Elettronici
Rilocazione Modello lineare
Costruito dal compilatore
Dopo la rilocazione
Deve contenere l’indicazione di “rilocabile”
G. Bucci - Calcolatori Elettronici
Rilocazione Modello segmentato
• Non c’è bisogno di modifiche
G. Bucci - Calcolatori Elettronici
Modalità di indirizzamento (dati)
Indirizzamento direttoLD R1, var ; EA= IND R1:= M[EA]
Indirizzamento relativo ai registriST var(R3),R6 ; EA= IND + R3 M[EA]:= R6
Indirizzamento indiretto rispetto ai registriLD R1, (R2) ; EA= R2
Indirizzamento relativo ai registri indiciato e scalatoLD R1, var (R2) (Rx) ; EA= IND + R2 + RX*d
d è la dimensione dell’elemento
G. Bucci - Calcolatori Elettronici
Modalità di indirizzamento (dati)
Indirizzamento indiretto rispetto ai registri con autoincr.LD R1, (R2)+ ; EA= R2; R2:= R2 + d
Indirizzamento immediatoLD R1, 2346 ; R1:= 2346
Indirizzamento tra registriLD R16,R8 ; R16:= R8
Indirizzamento porte di I/OIN R5,Porta ; R5:= porta (di ingresso)
G. Bucci - Calcolatori Elettronici
Modalità di indirizzamento (controllo)
• Salto, salto condizionato, chiamata e ritorno da sottoprogrammi– Diretto– Relativo al PC o ad altro registro
• EsempiJMP DEST ; Diretto o relativo a PCJZ wait ; Di solito relativo a PC
call sub ; PUSH(PC); PC<=Indirizzo subBR R30 ; EA destinazione = R30BAL sub ; R30<-PC; PC<=Indirizzo sub; RET ; PC<=POP
G. Bucci - Calcolatori Elettronici
Memoria Istruzioni
G. Bucci - Calcolatori Elettronici
Istruzioni e architettura
a= b+c• Soluzione 1 (macchina a 3 indirizzi)
– ADD A, B, C
• Soluzione 2 (stile RISC)– LD R1,B– LD R2,C– ADD R3,R1,R2– ST A,R3
• Soluzione 3 (un indirizzo)– LD R1,B– ADD R1,C– ST A,R1
G. Bucci - Calcolatori Elettronici
Istruzioni e architettura
a= b+c• Soluzione 4 (Stack - 0 indirizzi)
– PUSH B– PUSH C– ADD– POP A
G. Bucci - Calcolatori Elettronici
Programma in memoria
G. Bucci - Calcolatori Elettronici
Controllo del flusso
• JMP DEST
• JE Ra,Rb,DEST
• PSW: Z, S, O, CCMP R1,R2JZ DEST
G. Bucci - Calcolatori Elettronici
Verso il repertorio
int s, i;
int v[10];
s= 0; i=0;
while (i<10){s= s+v[i]; i= i+1;}
• Il precedente formato dell’istruzione LD non ci basta. Vogliamo scrivere
LD R3,V(R2)
G. Bucci - Calcolatori Elettronici
Traduzione