FANDOM


Nota disambigua
Il titolo di questa voce non è corretto per via delle caratteristiche del software MediaWiki. Il titolo corretto è A7. Le memorie ad accesso casuale.
Blue Glass Arrow RTL  A6. Introduzione alle memorieCrystal Clear app kfm home  Calcolatori elettroniciBlue Glass Arrow  A8. Le memorie cache
Gli appunti che seguono sono contenuti nella sottopagina /sub (modifica · cronologia · aggiorna)

2 Per le memorie ad accesso casuale vale:

  • ogni cella può essere indirizzata indipendentemente;
  • i tempi di accesso sono uguali e costanti per ogni cella.

Segnali di controllo e linee di statoModifica

4 Il funzionamento della memoria è temporizzato: occorrono un certo tempo minimo per stabilizzare i segnali di dato e di indirizzo, un certo tempo minimo per accedere a quei segnali, un certo tempo minimo tra un accesso e l'altro, ecc. Il progettista può scegliere semplicemente di affidarsi ai tempi stabiliti dalle specifiche, oppure aggiungere dei circuiti appositi per valutare dinamicamente i segnali di controllo. I segnali di controllo servono per esempio:

  • per informare la memoria sul tipo di operazione corrente (lettura o scrittura);
  • per informare la memoria quando sono stabili e possono essere campionati i segnali di indirizzo sull'Abus e di dato sul Dbus (in scrittura);
  • per informare il processore quando sono stabili e possono essere campionati i segnali di dato sul Dbus (in lettura);
  • per informare il processore quando è possibile procedere con un nuovo ciclo di accesso alla memoria;
  • per informare il processore se la memoria sta effettuando le operazioni di refreshing e i dati in lettura non sono stabili.

2 Accanto ai segnali di controllo vi sono le linee di stato, che sono dei segnali per informare l'esterno sullo stato corrente della memoria. Si usano generalmente per informare che si è verificato un guasto. Non comprendono l'MFC, perché esso non viene generato dalla memoria ma dal controllore della memoria.

Struttura internaModifica

I bit effettivi che memorizzano le informazioni sono contenuti nella matrice di memoria. Il circuito di controllo riceve tramite il bus di controllo i segnali di controllo del processore (ad esempio i segnali di read e write), quindi pilota vari moduli all'interno della memoria, garantendo che i segnali caricati nei registri siano sempre stabili. Due registri di dato permettono la comunicazione con il bus di dati; ci può anche essere un transceiver che permette la bidirezionalità del segnale.

Organizzazione a vettoreModifica

RAM interno

6 Struttura interna di una memoria ad accesso casuale con organizzazione a vettore

7 La memoria è vista come un vettore di parole: l'indirizzo proveniente dal bus di indirizzi, di parallelismo log2n, viene stabilizzato da un registro degli indirizzi, pilotato tramite segnali di controllo dal circuito di controllo, e viene decodificato da un decoder degli indirizzi in n segnali di enable che selezionano la parola corretta all'interno della matrice di memoria. È semplice da implementare se il numero delle parole è ragionevole, altrimenti il decoder diventerebbe troppo complesso.

Organizzazione a matrice bidimensionaleModifica

9 La memoria è vista come una matrice organizzata in righe e colonne i cui elementi sono delle parole, ognuna delle quali ha un segnale di selezione di riga e uno di colonna, provenienti da due decoder. La parola viene attivata solamente se entrambi i segnali di selezione sono attivi. Due decoder di selezione risultano molto più semplici di un singolo decoder. Si può inoltre dimezzare il numero di segnali di indirizzo grazie a due registri: prima si salva l'indirizzo di riga in un registro, poi si salva l'indirizzo di colonna nell'altro registro, e infine si attivano i decoder.

10 I segnali di strobe RAS e CAS sono segnali di controllo che specificano se gli indirizzi devono essere caricati sul registro delle righe o delle colonne.

12 Si possono perciò velocizzare gli accessi sequenziali a blocchi di memoria (bit consecutivi), che sono statisticamente molto frequenti: la possibilità di attivare separatamente i registri di caricamento degli indirizzi permette di mantenere lo stesso indirizzo di riga al variare degli indirizzi di colonna (Page Mode).

Memorie non volatiliModifica

Memorie ROMModifica

Cella ROM

16 Cella di una memoria ROM

15 Il contenuto delle memorie ROM è definito solamente al momento della costruzione e successivamente può essere acceduto solo in lettura. Applicazioni:

  • librerie di procedure frequentemente usate;
  • programmi di sistema;
  • tavole di funzioni: sono gli elenchi dei risultati di funzioni che sarebbero troppo complessi da calcolare sul momento.

In fase di costruzione della memoria si agisce sul punto P che si trova tra ogni transistor e la massa: la cella assume il valore 1 se il punto P diventa un circuito aperto, e assume il valore 0 se P è un cortocircuito.

La variazione del costo è trascurabile al variare del numero di chip all'interno del singolo dispositivo rispetto al numero di dispositivi prodotti; si somma il costo di progetto. La memoria ROM è non volatile: il contenuto non viene cancellato all'assenza dell'alimentazione.

Memorie PROMModifica

17 Nelle memorie PROM, agli incroci delle linee vi sono dei diodi che possono essere bruciati selettivamente tramite delle correnti e trasformati in circuiti aperti. Possono essere programmate una sola volta, prima di metterle sulla piastra.

Memorie EPROMModifica

18 Le memorie EPROM possono essere riprogrammate più volte, anche se la cancellazione avviene grazie a raggi ultra-violetti. La programmazione può essere effettuata anche sulla piastra, poiché le correnti necessarie sono compatibili con la piastra stessa.

Memorie EEPROMModifica

19 Le memorie EEPROM possono essere riprogrammate senza raggi ultra-violetti, ma la programmazione è lenta e sono costose.

Memorie flashModifica

20 Le memorie flash richiedono delle operazioni di scrittura a blocchi, e il blocco deve essere ogni volta cancellato prima di poter essere riscritto.

Memorie RAMModifica

22 Le memorie RAM possono essere di due tipi:

  • memorie statiche: ogni bit richiede un flip-flop SR;
  • memorie dinamiche: ogni bit richiede un transistor → meno densa.

Memorie RAM staticheModifica

Cella RAM statica

24 Cella di una memoria RAM statica

22 Ogni cella di una memoria RAM statica richiede 6 transistor: 4 costituiscono una combinazione di porte logiche, equivalente a un flip-flop SR avente due uscite Y1 e Y2 opposte tra loro, e 2 collegano il flip-flop a due linee di dato parallele:

  • operazione di lettura: il flip-flop forza sulle linee di dato una coppia di bit opposti che viene poi elaborata dalla circuiteria associata alla colonna;
  • operazione di scrittura: la circuiteria converte il bit nella corretta coppia di bit opposti che viene forzata sul flip-flop.

Memorie RAM dinamicheModifica

Cella RAM dinamica

27 Cella di una memoria RAM dinamica

Le celle di una memoria RAM dinamica contengono dei condensatori collegati alle linee di dato tramite transistor:

  • operazione di scrittura: il condensatore si carica o scarica alla tensione della linea di dato;
  • operazione di lettura: un sensore rileva se la linea di dato rimane a un valore basso perché il condensatore è scarico (valore 0) o se sale a un valore alto perché è carico (1) → la memoria RAM dinamica è caratterizzata dal Destructive Readout: se il condensatore è carico si scarica e perde il bit 1 memorizzato.

Svantaggio: le memorie dinamiche sono più lente delle memorie statiche a causa dei processi di carica e scarica del condensatore. Vantaggio: le memorie dinamiche sono meno costose perché ogni cella richiede un solo transistor.

31 I condensatori hanno una capacità infinitesima → qualunque minuscola particella carica (es. radiazione) può modificare il valore del condensatore (bit flip) → meno affidabilità.

29 Le memorie dinamiche richiedono quindi il refreshing: il contenuto deve essere periodicamente letto e riscritto, altrimenti i condensatori carichi lentamente si scaricherebbero per via delle inevitabili piccole correnti di dispersione che comunque scorrono. Gli accessi che capitano durante le operazioni di rinfresco richiedono quindi più tempo.

32 Il codice di parità è un codice di protezione che aumenta l'affidabilità della memoria: ogni parola ha un bit in più, che indica se il numero di bit pari a 1 dev'essere pari o dispari, permettendo di verificare se c'è stato un errore e quindi un bit è stato modificato.

34 I codici di Hamming sono codici SECDED che permettono sia di rilevare sia di correggere gli errori singoli, ma si limitano a rilevare gli errori doppi (molto più rari). Questi codici richiedono log2m bit, con m parallelismo.

Memorie SDRAMModifica

39 Le memorie SDRAM sono delle RAM sincrone temporizzate da un certo segnale di clock. Il processore quindi sa esattamente quanto tempo è richiesto per l'accesso ai dati.

Memorie interlacciateModifica

40 Le memorie dinamiche spesso sono più lente rispetto alla velocità del processore, perché il tempo di accesso è più lungo dell'inverso del clock del processore. Con le memorie interlacciate, il processore può accedere contemporaneamente, tramite indirizzi di blocco, a un blocco di n · m parole distribuite su ognuna delle n memorie affiancate con parallelismo m bit.

Blue Glass Arrow RTL  A6. Introduzione alle memorieCrystal Clear app kfm home  Calcolatori elettroniciBlue Glass Arrow  A8. Le memorie cache

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Inoltre su FANDOM

Wiki casuale