Ogni sistema di elaborazione contiene dispositivi per la memorizzazione di dati ed istruzioni. Nell’articolo di oggi vediamo una breve introduzione alle memorie.
Negli articoli precedenti abbiamo visto:
- Come funziona una CPU: progetto di circuiti logici #0
- Come funziona una CPU: Flip-Flop SR asincrono #0.1
- Come funziona una CPU: Flip-Flop sincrono #0.1.1
- Come funziona una CPU: Flip-Flop D #0.1.2
- Come funziona una CPU: Flip-Flop Master-Slave #0.1.3
- Come funziona una CPU: Modello di Huffman #0.2
- Come funziona una CPU: progetto di circuiti sequenziali sincroni #0.2.1
- Come funziona una CPU: progetto dei circuiti logici #0.3
- Come funziona una CPU: porte logiche operanti su parole #0.3.1
- Come funziona una CPU: multiplexer #0.3.2
- Come funziona una CPU: decodificatore #0.3.3
- Come funziona una CPU: codificatore (encoder) #0.3.4
- Come funziona una CPU: codificatore prioritario (priority encoder) #0.3.4.1
- Come funziona una CPU: sommatore full-adder #0.3.5
- Come funziona una CPU: sommatore Ripple Carry Adder #0.3.5.1
- Come funziona una CPU: sommatore seriale #0.3.5.2
- Come funziona una CPU: Sommatore con carry-lookahead #0.3.5.3
- Come funziona una CPU: ALU spiegata in modo semplice #0.3.5.4
- Come funziona una CPU: comparatore #0.3.5.5
- Come funziona una CPU: registro a m-bit #0.3.6
- Come funziona una CPU: registro a scalamento (Shift Register) #0.3.6.1
- Come funziona una CPU: contatore semplice #0.3.7
- Come funziona una CPU: contatore asincrono (ripple counter) #0.3.7.1
- Come funziona una CPU: contatore sincrono #0.3.7.2
- Come funziona una CPU: bus spiegato in modo semplice #0.3.8
- Come funziona una CPU: introduzione alla cpu #0.4
- Come funziona una CPU: architettura base di una CPU #0.4.1
- Come funziona una CPU: operazioni fondamentali CPU #0.4.2
- Come funziona una CPU: operazioni sulla ALU #0.4.3
- Come funziona una CPU: accesso in memoria (MAR ed MDR) #0.4.4
- Come funziona una CPU: esecuzione di un’istruzione logica o artitmetica #0.4.5
- Come funziona una CPU: progetto dell’unità di controllo #0.4.6
- Come funziona una CPU: progetto dell’unità di controllo cablata #0.4.6.1
- Come funziona una CPU: progetto dell’unità di controllo microprogrammata #0.4.6.2
- Come funziona una CPU: microprogrammazione verticale ed orizzontale differenze #0.4.6.2.1
Ogni sistema di elaborazione contiene dispositivi per la memorizzazione di dati ed istruzioni.
L’insieme di tali dispositivi, e degli algoritmi per la loro gestione, costituisce il sotto-sistema di Memoria.
Tale sotto-sistema deve essere realizzato in modo che:
- il processore debba attendere il meno possibile per accedere a dati o istruzioni;
- il costo del sistema di Memoria sia minimo (il costo per bit delle memorie è proporzionale alla loro velocità);
Si deve quindi cercare un compromesso tra il costo del sotto-sistema di Memoria e le sue prestazioni. Nel tempo si è osservato che, mentre la velocità dei processori raddoppia ogni anno e mezzo, la velocità delle memorie raddoppia ogni 10 anni:
Pertanto, si nota che la differenza di velocità tra processori e memorie cresce progressivamente negli anni!
Livelli di memorie
La Memoria di un calcolatore è normalmente organizzata in livelli.
Il numero di livelli dipende dal tipo di sistema e di applicazione. Ogni livello è caratterizzato da un diverso tipo di Memoria (in termini di velocità e dimensione, e quindi costo).
Obiettivo
Ottimizzare il Sistema di Memoria in modo tale da minimizzare il tempo medio di accesso per i tipici programmi che utilizziamo (workload):
- Le informazioni sono distribuite in modo dinamico tra i vari livelli a seconda della relativa frequenza di accesso;
- In tal modo si raggiungono prestazioni comparabili con quelle della Memoria più veloce, a prezzi comparabili con quelli della Memoria più lenta;
Principio di località dei riferimenti
Un riferimento in Memoria tende ad essere ripetuto dopo poco tempo: località temporale.
Un riferimento in Memoria tende ad essere a locazioni vicine a quelle usate recentemente: località spaziale.
Le implicazioni del principio di località sono le seguenti:
- Posso utilizzare piccole memorie veloci per mantenere i riferimenti in Memoria più utilizzati dal processore;
- Se i riferimenti utilizzati non possono essere soddisfatti nella Memoria veloce creo un secondo livello di Memoria un po’ più grande e un po’ meno veloce;
- Posso reiterare questo ragionamento per N livelli di Memoria: Gerarchia di Memoria;
Iscriviti ai nostri gruppi Telegram
Link utili