Capitolo 10 La 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
SRAM
Temporizzazione degli accessi
1. Asseriti gli indirizzi
2. Asseriti CE e OE, WE resta diasserito a indicare la lettura
3. 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 [A
c-1, A
0], di c bit contiene l’indirizzo della cella entro il blocco, a sx [A
m-1, A
c], 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: A
log(C)-1…..A
0Struttura 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 > t
ACCE se non è verificata?
• Una soluzione è inserire cicli di wait
t = (N + Nw)/f > t
ACCQuanto 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 (f
bus)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 5 4 3 3 1 0
2
1 3 4
0 5 6
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 diretto
LD R1, var ; EA= IND R1:= M[EA]
Indirizzamento relativo ai registri
ST var(R3),R6 ; EA= IND + R3 M[EA]:= R6
Indirizzamento indiretto rispetto ai registri
LD R1, (R2) ; EA= R2
Indirizzamento relativo ai registri indiciato e scalato
LD 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 immediato
LD R1, 2346 ; R1:= 2346
Indirizzamento tra registri
LD R16,R8 ; R16:= R8
Indirizzamento porte di I/O
IN 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
• Esempi
JMP DEST ; Diretto o relativo a PC JZ wait ;Di solito relativo a PC call sub ; PUSH(PC); PC<=Indirizzo sub BR R30 ; EA destinazione = R30
BAL 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, C
CMP R1,R2
JZ 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