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