Nella progettazione di un sistema di memorie vengono tenuti in conto dei determinati parametri e punti chiave. Nell’articolo di oggi vediamo quali sono le caratteristiche principali.
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
- Come funziona una CPU: introduzione alle memorie #0.5
Nella progettazione di un sistema di Memoria vengono tenuti in conto i seguenti punti:
- conviene che il sistema complessivo sia composto da memorie di tipo e costo diversi, rispondenti ai
diversi usi che vengono fatti della Memoria (gerarchia di Memoria); - la gestione della Memoria deve essere il più possibile trasparente per il programmatore e l’utente (Memoria virtuale);
- se il sistema è di tipo multiprocessore, ogni processore deve poter lavorare con la Memoria al massimo della velocità e senza interferire con il lavoro degli altri;
I parametri da tenere in conto nel momento in cui si progetta una memoria sono i seguenti:
- costo;
- velocità;
- modi di accesso;
- alterabilità;
- durevolezza del contenuto
- affidabilità;
- caratteristiche fisiche;
Costo
Comprende anche il costo della circuiteria ed eventualmente del software per la gestione delle interfacce necessarie all’uso della Memoria. È normalmente misurato in $/bit o $/Mbyte.
Bisogna considerare che per ogni bit è richiesto un flip-flop, il quale è costituito da almeno 4 o 5 porte logiche (assumiamo che ogni porta comprenda 2 transistor).
La Memoria Principale richiede un transistor per ogni bit. Per questo motivo, il costo per bit della Memoria dinamica è 10 volte minore di quello della Memoria statica.
Il costo per bit altro non è che il costo da pagare per far produrre il circuito.
Velocità
Si esprime attraverso 3 parametri:
- il tempo di accesso;
- È il tempo che intercorre tra l’istante in cui all’unità di Memoria giunge la richiesta di eseguire un’operazione (lettura o scrittura), e quello in cui tale operazione è eseguita.
- È possibile che il tempo di accesso in lettura differisca da quello in scrittura.
- Il tempo di accesso è di solito inversamente proporzionale al costo della Memoria.
- il tempo di ciclo;
- È il tempo che deve intercorrere tra l’inizio di un ciclo di accesso alla Memoria e l’inizio del ciclo successivo
- È chiaramente maggiore o uguale del tempo di accesso.
- Solo in caso di lettura (ma non sempre) il tempo di ciclo può essere uguale al tempo di accesso.
- il tasso di trasferimento;
- È la velocità con la quale i dati possono esser trasferiti verso o dall’unità di Memoria.
- Per le memorie ad accesso casuale è l’inverso del tempo di ciclo.
- Per le altre vale che:
- TN = TA + n/R
dove- TN è il tempo medio per leggere o scrivere n bit;
- TA è il tempo medio di accesso;
- n è il numero di bit;
- R è il tasso di trasferimento (in bit per secondo, o bps);
- TN = TA + n/R
Modi di accesso
I modi di accesso sono principalmente:
- sequenziale:
- le informazioni possono essere lette/scritte solo in un ordine prefissato. È il caso dei nastri;
- diretto:
- ogni blocco ha un indirizzo e la ricerca nel blocco è sequenziale. L’accesso diretto richiede dei tempi che non sono predicibili in modo deterministico in quanto dipendono dalla configurazione in cui si trova in quel momento la Memoria. È il caso dei dischi magnetici;
- casuale:
- ogni unità di dato ha un indirizzo e le informazioni possono essere lette/scritte in qualsiasi ordine. Il tempo di accesso è uguale per tutte le locazioni di Memoria. È il caso delle memorie a semiconduttore;
- associativo:
- l’accesso avviene tramite un confronto tra il contenuto di ogni cella e quello specificato in una maschera. È il caso di taluni tipi di Cache oppure delle CAM.
- Le CAM (Content Accessible Memory) sono come delle RAM se non che, per accedere ad una parola, non si specifica un indirizzo bensì un contenuto. Per accedere ad una CAM si fanno richieste in cui si specifica una parte del contenuto della parola che si vuole ottenere, ovvero una chiave. In base ai casi, la chiave può essere stabilita in fase di progetto oppure dall’utente stesso (in fase di utilizzo);
Alterabilità
Vi sono memorie il cui contenuto può essere scritto una volta sola (Read Only Memory o ROM). In alcuni casi, invece, il contenuto di una ROM può essere modificato off-line (Programmable ROM o PROM).
Durevolezza del contenuto: Destructive Readout
Vi sono alcune tecnologie particolari (ad esempio le RAM dinamiche), nelle quali l’operazione di lettura causa la cancellazione del dato memorizzato (Destructive Readout o DRO).
In tal caso dopo ogni lettura è necessario eseguire un’operazione di riscrittura del dato, ond’evitare di perderlo.
Quindi in questo caso il tempo di ciclo è maggiore del tempo di accesso.
Chi vende memorie caratterizzate da Destructive Readout deve fornire un meccanismo che permetta di ripristinare il valore della parola appena letta. Un’apposita circuiteria della Memoria consente quindi di riscriverla automaticamente per evitare di perderne il contenuto.
Durevolezza del contenuto: refreshing
In alcune tecnologie (ad esempio quelle delle memorie dinamiche) dopo un certo tempo i bit a 1 si trasformano in 0.
Questo effetto si ha, ad esempio quando il bit è memorizzato sotto forma di carica all’interno di un condensatore, a causa delle correnti di scarica. È quindi necessario che periodicamente si provveda a leggere ogni bit e a riscrivere i bit con valore 1 (refreshing).
Il refresh è prioritario e non può essere interrotto (altrimenti si perderebbe il contenuto della Memoria). Questo incide significativamente sul tempo di accesso che non è più deterministico: tant’è che nelle specifiche si fornisce un intervallo entro cui può ricadere il tempo di accesso (l’accesso viene effettuato entro un minimo di tot ed entro un massimo di tot).
Durevolezza del contenuto: volatilità
Alcune memorie, come quelle RAM, perdono il loro contenuto quando non sono alimentate (memorie volatili).
Affidabilità
Le memorie possono essere colpite da due tipi di guasto:
- Guasti transitori:
- uno o più bit cambiano valore ad un certo istante, ma la Memoria continua a funzionare correttamente. La maggior parte dei guasti transitori è causata da radiazioni, la cui principale fonte è il Sole. Pertanto, la probabilità di guasto transitorio aumenta significativamente con l’altitudine (tant’è che negli aerei non possono essere integrati gli stessi circuiti che vengono integrati in dispositivi di ”uso terrestre”);
- Guasti permanenti:
- qualcosa nella Memoria smette definitivamente di funzionare;
- L’affidabilità è di solito misurata attraverso i seguenti parametri:
- Mean Time To Failure (MTTF):
- tempo medio prima di avere un guasto;
- Failure rate (o Mean Time Between Failures, MTBF):
- frequenza media di occorrenza dei guasti;
- Mean Time To Failure (MTTF):
Altre caratteristiche
- Tipo della Memoria (elettronica, magnetica, meccanica, ottica);
- Consumo:
- può comportare la necessità di sistemi di raffreddamento;
- può essere critico per i sistemi portabili;
- Portabilità;
- Robustezza (ad esempio rispetto alle sollecitazioni meccaniche);
- Dimensione: dipende dalla densità di immagazzinamento;
Iscriviti ai nostri gruppi Telegram
Link utili