Memoria ad accesso casuale

Tipi di RAM

Si distinguono generalmente due grandi categorie di RAM:

Le memorie dinamiche (DRAM, Dynamic Random Access Module), poco costose. Sono principalmente utilizzate per la memoria centrale del computer;

Le memorie statiche (SRAM, Static Random Access Module), rapide e costose. Le SRAM sono soprattutto utilizzate per le memorie cache del processore.

Funzionamento della RAM

La RAM è costituita da centinaia di migliaia di piccoli condensatori che immagazzinano delle cariche. Una volta caricato, lo stato software del condensatore è pari a 1, in caso contrario esso è a 0, il che significa che ogni condensatore rappresenta un bit della memoria. Dato che i condensatori si scaricano, bisogna costantemente ricaricarli (il termine esatto è attualizzare, in inglese refresh) ad un intervallo di tempo regolare detto ciclo di refresh. Le memorie DRAM hanno ad esempio bisogno di cicli di refresh ogni 15 nanosecondi (ns) circa.

Ogni condensatore è accoppiato ad un transistor (di tipo MOS) che permette di «recuperare» o di modificare lo stato del condensatore. Questi transistor sono disposti sotto forma di tabella (matrice), cioè si accede ad una case memoria (detta anche punto memoria) per una linea e una colonna:

rappresentazione di una memory
Ogni punto memoria è quindi caratterizzato da un indirizzo, corrispondente ad un numero di linea (in inglese row) e un numero di colonna (in inglese column). Ora questo accesso non è istantaneo e si effettua durante un periodo detto tempo di latenza. Di conseguenza, l'accesso ad un dato in memoria dura un tempo uguale al tempo di ciclo al quale bisogna aggiungere il tempo di latenza.

Così, per una memoria di tipo DRAM, il tempo di accesso è di 60 nanosecondi (35 ns di periodo di ciclo e 25 ns di tempo di latenza). In un computer, il tempo di ciclo corrisponde al contrario della frequenza del clock, ad esempio per un computer cadenzato a 200 MHz, il tempo di ciclo è di 5 ns (1/(200*106)).

Di conseguenza, un computer con una frequenza elevata e che utilizzi delle memorie il cui tempo di accesso è molto più lungo del tempo di ciclo del processore deve effettuare dei cicli di attesa (in inglese wait state) per accedere alla memoria. Nel caso di un computer cadenzato a 200 MHz che utilizza delle memorie di tipo DRAM (il cui tempo di accesso è di 60 ns), vi sono 11 cicli di attesa per un ciclo di trasferimento. Le performance del computer diminuiscono con l'aumento dei cicli di attesa, si consigli dunque di utilizzare delle memorie più rapide.

Formati di modulo RAM

Esistono numerosi tipi di RAM. Questi si presentano tutte sotto forma di modulo di memoria inseribili nella scheda madre. Le prime memorie si presentavano sotto forma di chip dette DIP (Dual Inline Package). Ormai le memorie si trovano generalmente sotto forma di moduli, cioè delle schede inseribili in connettori previsti a questo scopo. Abitualmente si distinguono tre tipi di moduli di RAM:

I moduli di formato SIMM (Single Inline Memory Module), si stratta di circuiti stampati in cui un lato ha dei chip di memoria. Esistono due tipi di moduli SIMM, secondo il numero di connettori.

I moduli SIMM a 30 connettori (le cui dimensioni sono 89x13 mm) sono delle memorie a 8 bits che dotavano le prime generazioni di PC (286, 386):

modulo memoria SIMM 30 connettori
I moduli SIMM a 72 connettori (le cui dimensioni sono 108x25 mm) sono delle memorie capaci di gestire 32 bit di dati simultaneamente. Queste memorie dotano dei PC che vanno dal 386DX ai primi Pentium. Su questi ultimi il processore lavora con un bus di dati di una larghezza di 64 bit, ed è la ragione per cui bisogna assolutamente dotare questi computer di due moduli SIMM. Non è possibile installare dei moduli di 30 PIN su postazioni a 72 connettori a causa di una tacca (al centro dei connettori) che ne impedisce l'inserimento:

modulo di memoria SIMM 72 connettori
I moduli di formato DIMM (Dual Inline Memory Module) sono delle memorie a 64 bit, cosa che spiega perché non è necessario accoppiarle. I moduli DIMM hanno dei chip di memoria da una parte all'altra del circuito stampato e hanno anche 84 connettori da ogni parte, per arrivare così ad un totale di 168 PIN. Oltre alle loro dimensioni più grandi rispetto ai moduli SIMM (130x25 mm) questi moduli hanno una seconda tacca per evitare la confusione:

modulo memoria SIMM 72 connettori
Può essere interessante notare che i connettori DIMM sono stati migliorati per facilitare il loro inserimento grazie a delle leve poste ai due lati del connettore. Esistono inoltre dei moduli più piccoli, detti SO DIMM (Small Outline DIMM), destinati ai computer portatili. I moduli SO DIMM comportano unicamente 144 PIN per le memorie a 64 bit e 77 per le memorie a 32 bit.

I moduli in formato RIMM (Rambus Inline Memory Module, dette anche RD-RAM o DRD-RAM) sono delle memorie a 64 bit sviluppati dalla società Rambus. Esse hanno 184 PIN. Questi moduli hanno due tacche di rilevamento, per evitare ogni rischio di confusione con i moduli precedenti.

Tenendo conto della loro elevata velocità di trasferimento, i moduli RIMM hanno un film termico incaricato di migliorare la dispersione del calore. Come nel caso delle DIMM, esistono dei moduli di dimensioni ridotte, dette SO RIMM (Small Outline RIMM), destinati ai computer portatili. i moduli SO RIMM hanno unicamente 160 PIN.

DRAM PM

La DRAM (Dynamic RAM, RAM dinamica) è il tipo di memoria più diffuso all'inizio del millennio. Si tratta di una memoria i cui transistor sono sistemati in una matrice secondo delle linee e delle colonne. Un transistor, accoppiato ad un condensatore da l'informazione di un bit. 1 byte che comprende 8 bit, un modulo di memoria DRAM di 256 MB conterrà quindi 256 * 2^10 * 2^10 = 256 * 1024 * 1024 = 268 435 456 byte = 268 435 456 * 8 = 2 147 483 648 bit = 2 147 483 648 transistor. Un modulo da 256 MB ha quindi in realtà una capacità di 268 435 456 byte, ossia 268 MB. Queste sono delle memorie il cui tempo di accesso è di 60 ns.

D'altra parte, gli accessi memoria si fanno generalmente su dati sistemati consecutivamente in memoria. Così la modalità di accesso a raffica (burst mode) permette di accedere ai tre dati consecutivi al primo senza tempo di latenza supplementare. In questa modalità a raffica, il tempo di accesso al primo dato è pari al tempo di ciclo al quale bisogna aggiungere il tempo di latenza, e il tempo di accesso ai tre altri dati è unicamente pari ai tempi di ciclo, quindi se si annotano sotto la forma X-Y-Y-Y i quattro tempi di accesso, ad esempio l'annotazione 5-3-3-3 indica una memoria per cui sono necessari 5 cicli di clock per accedere al primo dato e poi ai tre seguenti.

DRAM FPM

Per accelerare gli accessi alla DRAM, esiste una tecnica, detta impaginazione che consiste nell'accedere ai dati posti su una stessa colonna modificando unicamente l'indirizzo della linea, cosa che permetta di evitare la ripetizione del numero di colonna tra la lettura di ciascuna delle linee. Si parla allora di DRAM FPM (Fast Page Mode). La FPM permette di ottenere dei tempi di accesso nell'ordine da 70 a 80 nanosecondi per una frequenza di funzionamento che può andare da 25 a 33 Mhz.

DRAM EDO

La DRAM EDO (Extended Data Out, ossia Uscita migliorata dei dati talvolta detta anche "hyper-page") è comparsa nel 1995. La tecnica utilizzata con questo tipo di memoria consiste nell'indirizzare la colonna successiva durante la lettura dei dati di una colonna. Questo crea una sovrapposizione degli accessi che permette di guadagnare tempo su ogni ciclo. Il tempo di accesso alla memoria EDO va quindi da 50 a 60 nanosecondi circa per una frequenza di funzionamento che va da 33 a 66 Mhz.

Così, la RAM EDO, quando utilizzata in modalità a raffica permette di ottenere dei cicli di forma 5-2-2-2, ossia un risparmio di 4 cicli sull'accesso a 4 dati. Dato che la memoria EDO non accetta frequenze superiori a 66 Mhz, è scomparsa a beneficio della SDRAM.

SDRAM

La SDRAM (Synchronous DRAM, tradotta RAM sincrona), comparsa nel 1997, permette una lettura sincronizzata dei dati con il bus della scheda madre, contrariamente alle memorie EDO e FPM (qualificate come asincrone) aventi un proprio clock. La SDRAM permette quindi di liberarsi dei tempi di attesa dovuti alla sincronizzazione con la scheda madre. Questa permette di ottenere un ciclo in modalità a raffica in forma 5-1-1-1, cioè un guadagno di 3 cicli rispetto alla RAM EDO. In questo modo la SDRAM è capace di funzionare con una cadenza che arriva fino a 150 Mhz, permettendogli di ottenere dei tempi di accesso di circa 10 ns.

DR-SDRAM (Rambus DRAM)

La DR-SDRAM (Direct Rambus DRAM o ancora RDRAM) è un tipo di memoria che permette di trasferire i dati su un bus a 16 bit di larghezza ad una cadenza di 800 Mhz, cosa che gli conferisce una banda passante di 1,6 Gb/s. Come per la SDRAM, questo tipo di memoria è sincronizzata con il clock del bus per migliorare gli scambi di dati. D'altra parte la memoria RAMBUS è una tecnologia proprietaria, il che significa che ogni azienda che vuole costruire dei moduli di RAM con questa tecnologia deve pagare dei diritti (royalties) alle società RAMBUS e Intel.

DDR-SDRAM

La DDR-SDRAM (Double Data Rate SDRAM) è una memoria basata sulla tecnologia SDRAM che permette di raddoppiare il tasso di trasferimento della SDRAM a pari frequenza. Le lettura o scrittura dei dati in memoria è realizzata sulla base di un clock. Le memorie DRAM standard utilizzano un metodo chiamato SDR(Single Data Rate) che consiste nel leggere o scrivere un dato ad ogni fronte montante:

SDR - Single Data Rate
La DDR permette di raddoppiare la frequenza delle letture/scritture, con un clock cadenzato alla stessa frequenza, inviando i dati ad ogni fronte montante, nonché ad ogni fronte discendente:

DDR - Double Data Rate
Le memorie DDR hanno generalmente una denominazione commerciale di tipo PC XXXX dove «XXXX» rappresenta la capacità di banda in Mb/s.

DDR2-SDRAM

La memoria DDR2 (o DDR-II) permette di raggiungere delle capacità di banda due volte maggiori rispetto alla DDR a frequenza esterna pari. Si parla di QDR (Quadruple Data Rate o quad-pumped) per designare il metodo di lettura e di scrittura utilizzato. La memoria DDR2 utilizza in effetti due canali separati per la lettura e per la scrittura, anche se è capace di inviare o ricevere due volte più dati che la DDR:

QDR - Quad Data Rate
La DDR2 ha inoltre un numero maggiore di connettori rispetto alla DDR classica (240 per la DDR2 contro i 184 della DDR).

DDR3-SDRAM

La SDRAM DDR3 migliora le prestazioni rispetto alle DDR2, ma riduce anche il consumo di energia. Anzi, essa è del 40% inferiore, specialmente grazie ad una riduzione del voltaggio utilizzato, una incisione di precisione maggiore. Se la velocità teorica di questi moduli può superare il 10 Gb/s, le latenze sono rimaste dello stesso ordine di grandezza di quelle delle DDR2. I moduli DDR3 hanno 240 connettori come DDR2, ma non sono assolutamente compatibili (delle tacche impediscono l'inserimento).

tabella riassuntiva

La tabella sottostante dà la corrispondenza tra la frequenza della scheda madre (FSB), quella della memoria (RAM) e la sua capacità di banda:

Memoria Denominazione Frequenza E/S Frequenza reale Capacità di banda
DDR200 PC1600 100 MHz 100 MHz 1,6 Gb/s
DDR266 PC2100 133 MHz 133 MHz 2,1 Gb/s
DDR333 PC2700 166 MHz 166 MHz 2,7 Gb/s
DDR400 PC3200 200 MHz 200 MHz 3,2 Gb/s
DDR433 PC3500 217 MHz 217 MHz 3,5 Gb/s
DDR466 PC3700 233 MHz 233 MHz 3,7 Gb/s
DDR500 PC4000 250 MHz 250 MHz 4 Gb/s
DDR533 PC4200 266 MHz 266 MHz 4,2 Gb/s
DDR538 PC4300 269 MHz 269 MHz 4,3 Gb/s
DDR550 PC4400 275 MHz 275 MHz 4,4 Gb/s
DDR2-400 PC2-3200 200 MHz 100 MHz 3,2 Gb/s
DDR2-533 PC2-4300 266 MHz 133 MHz 4,3 Gb/s
DDR2-667 PC2-5300 333 MHz 166 MHz 5,3 Gb/s
DDR2-675 PC2-5400 337 MHz 168 MHz 5,4 Gb/s
DDR2-800 PC2-6400 400 MHz 200 MHz 6,4 Gb/s
DDR2-1066 PC2-8500 533 MHz 266 MHz 8,5 Gb/s
DDR2-1100 PC2-8800 560 MHz 280 MHz 8,8 Gb/s
DDR2-1200 PC2-9600 600 MHz 300 MHz 9,6 Gb/s
DDR3-800 PC3-6400 400 MHz 100 MHz 6,4 Gb/s
DDR3-1066 PC3-8500 533 MHz 133 MHz 8,5 Gb/s
DDR3-1333 PC3-10600 666 MHz 166 MHz 10,7 Gb/s
DDR3-1600 PC3-12800 800 MHz 200 MHz 12,8 Gb/s
DDR3-1800 PC3-14400 900 MHz 225 MHz 14,4 Gb/s
DDR3-2000 PC3-16000 1000 MHz 250 MHz 16 Gb/s
DDR3-2133 PC3-17000 1066 MHz 266 MHz 17 Gb/s

Sincronizzazione (timing)

Non è raro vedere delle annotazioni tipo 3-2-2-2 o 2-3-3-2 per descrivere il parametraggio della RAM. Questa serie di quattro cifre descrive la sincronizzazione della memoria (in inglese timing), cioè la successione di cicli del clock necessari per accedere ad un dato immagazzinato nella RAM. Queste quattro cifre corrispondono generalmente, nell'ordine, ai seguenti valori:

CAS delay o CAS latency (CAS significa Column Address Strobe). Si tratta del numero di cicli di clock che passano fra l'invio del comando di lettura e l'arrivo effettivo del dato. Detto in un altro modo, è il tempo di accesso ad una colonna;

RAS Precharge Time (sigla tRP, RAS significa Row Address Strobe). Si tratta del numero di cicli di clock tra due istruzioni RAS, cioè tra due accessi ad una linea. operazione;

RAS to CAS delay (siglato a volte tRCD). Si tratta del numero di cicli di clock corrispondenti al tempo di accesso da una linea a una colonna;

RAS active time (siglato a volte tRAS). Si tratta del numero di cicli del clock corrispondenti al tempo di accesso a una linea.

Le schede di memoria sono dotate di un dispositivo detto SPD (Serial Presence Detect), che permette al BIOS] di conoscere i valori nominali del settaggio definito dal produttore. Si tratta di una EEPROM i cui dati saranno caricati dal BIOS se l'utente sceglierà il settaggio «auto».

La correzione degli errori

Alcune memorie hanno dei meccanismi che permettono di rimediare agli errori per garantire l'integrità dei dati che queste contengono. Questo tipo di memoria è generalmente utilizzata su sistemi che lavorano con dati critici, ed è la ragione per cui troviamo questo tipo di memoria nei server.

Bit di parità

I moduli con bit di parità permettono di assicurare che i dati contenuti nella memoria siano effettivamente quelli voluti. Per questo, uno dei bit di ogni byte immagazzinato in memoria serve a conservare la somma dei bit di dati. Il bit di parità vale 1 quando la somma dei bit di dati è dispari e 0 nel caso contrario. In questo modo I moduli con bit di parità permettono di verificare l'integrità dei dati ma non permettono di correggere gli errori. Inoltre per 9 MB di memoria, solo 8 serviranno a stoccare i dati, dato che l'ultimo megabyte conserverà i bit di parità.

moduli ECC

I moduli di memoria ECC (Error Correction Coding) sono delle memorie che hanno più bit dedicati alla correzione degli errori (vengono allora dette bit di controllo). Questi moduli, utilizzate principalmente nei server, permettono di rilevare gli errori e di correggerli.

Dual Channel

Alcuni controller di memoria propongono un canale doppio (in inglese Dual Channel) per la memoria. Si tratta di sfruttare i moduli di memoria a coppia per accumulare la larghezza di banda e così sfruttare al massimo le capacità del sistema. E' essenziale, durante l'utilizzo del Dual Channel, di usare dei moduli identici nella coppia (frequenza, capacità e di preferenza della stessa marca).

Foto: © Pixabay.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Il documento intitolato « Memoria ad accesso casuale » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.