• Non ci sono risultati.

Capitolo 10 La memoria

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo 10 La memoria"

Copied!
23
0
0

Testo completo

(1)

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

(2)

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

(3)

SRAM

SRAM

(4)

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

(5)

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

(6)

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

0

(7)

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

(8)

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)

(9)

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

(10)

G. Bucci - Calcolatori Elettronici

Costi DRAM

G. Bucci - Calcolatori Elettronici

Evoluzione tecnologica (DRAM)

(11)

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!!!!!!!!!!!!!!!!

(12)

G. Bucci - Calcolatori Elettronici

Processori Intel

G. Bucci - Calcolatori Elettronici

Processori Intel

(13)

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

ACC

E se non è verificata?

• Una soluzione è inserire cicli di wait

t = (N + Nw)/f > t

ACC

Quanto più la macchina è veloce, tanto più si paga.

G. Bucci - Calcolatori Elettronici

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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)

(20)

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

(21)

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

(22)

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

(23)

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

Riferimenti

Documenti correlati

– Write-non-allocate: la linea non viene portata in cache (viene solo aggiornata la memoria centrale). Ha senso in considerazione del

notevolmente le prestazioni servendo prima tutte le richieste che sono vicine alla posizione attuale della testina. • Su questa ipotesi è basato l’algoritmo Shortest Seek Time

Il contributo ri- chiama il legame fra sistema della memoria e costruzione della durata, individuale e collettiva; analizza i cambiamenti spazio-temporali re- sponsabili

v è un vettore di puntatori, cioè è l'indirizzo di memoria (“puntatore”) di un puntatore, quindi v+1 è l'indirizzo del secondo puntatore del vettore v (ossia è pari a

Paginazione a più livelli: allocazione non contigua della tabella delle pagine -&gt; si applica ancora la paginazione alla tabella della

–  Allocazione della memoria ai singoli job –  Protezione dello spazio di indirizzamento –  Condivisione dello spazio di indirizzamento –  Gestione dello swap.. • 

Inoltre, quando l’unità centrale richiede l’accesso a una locazione di memoria virtuale non presente in una cella di memoria reale, si rende necessario effettuare

memorizza gli n valori in n bytes successivi di memoria, la label A rappresenta il base address della sequenza (indirizzo della parola con i primi quattro bytes). • A: