La Memoria

Transcript

La Memoria
Capitolo 10
La memoria
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
G. Bucci - Calcolatori Elettronici
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
Organizzazione Memoria
• Elemento indirizzato
– E’ convenzione assegnare gli indirizzi ai
byte
• Grado di parallelismo
Indirizzi
An-1 - A0
Comandi
– Numero di bit del bus dati
M
• 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
Dati: 8, 16, 32, 64 bit
G. Bucci - Calcolatori Elettronici
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
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
• Tlat = 0,5 (60/g) s
• Ttrasf = Dimsett/Vtrasf
(è un tempo medio: sfavorevole!! )
(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
G. Bucci - Calcolatori Elettronici
6
5
4
0
3
1
3
2
1
3
0
4
5
6
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
MOV AX, VAR
ST VET(R28), R12
MOV VET(IS), BX
G. Bucci - Calcolatori Elettronici
Rilocazione
Modello lineare
Dopo la rilocazione
Costruito dal compilatore
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
G. Bucci - Calcolatori Elettronici
; R5:= porta (di ingresso)
Modalità di indirizzamento (controllo)
• Salto, salto condizionato, chiamata e ritorno da
sottoprogrammi
– Diretto
– Relativo al PC o ad altro registro
• Esempi
JMP
JZ
call
BR
BAL
RET
DEST
wait
sub
R30
sub
; Diretto o relativo a PC
; Di solito relativo a PC
; PUSH(PC); PC<=Indirizzo sub
; EA destinazione = R30
; R30<-PC; PC<=Indirizzo sub;
; PC<=POP
G. Bucci - Calcolatori Elettronici
Memoria
G. Bucci - Calcolatori Elettronici
Istruzioni
Istruzioni e architettura
• Soluzione 1
a= b+c
(macchina a 3 indirizzi)
– ADD A, B, C
• Soluzione 2
–
–
–
–
LD
LD
ADD
ST
(stile RISC)
R1,B
R2,C
R3,R1,R2
A,R3
• Soluzione 3
(un indirizzo)
– LD R1,B
– ADD R1,C
– ST A,R1
G. Bucci - Calcolatori Elettronici
Istruzioni e architettura
• Soluzione 4
–
–
–
–
PUSH
PUSH
ADD
POP
B
C
A
G. Bucci - Calcolatori Elettronici
a= b+c
(Stack - 0 indirizzi)
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
Traduzione
G. Bucci - Calcolatori Elettronici