• 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

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

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

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: