Memoria ad accesso casuale

Maggio 2015

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 (35ns 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 60ns), 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 interessato 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 800Mhz, 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 :


MemoriaDenominazioneFrequenza E/S Frequenza realeCapacità di banda
DDR200 PC1600100 MHz100 MHz1,6 Gb/s
DDR266 PC2100133 MHz133 MHz2,1 Gb/s
DDR333 PC2700166 MHz166 MHz2,7 Gb/s
DDR400 PC3200200 MHz200 MHz3,2 Gb/s
DDR433 PC3500217 MHz217 MHz3,5 Gb/s
DDR466 PC3700233 MHz233 MHz3,7 Gb/s
DDR500 PC4000250 MHz250 MHz4 Gb/s
DDR533 PC4200266 MHz266 MHz4,2 Gb/s
DDR538 PC4300269 MHz269 MHz4,3 Gb/s
DDR550 PC4400275 MHz275 MHz4,4 Gb/s
DDR2-400 PC2-3200200 MHz100 MHz3,2 Gb/s
DDR2-533 PC2-4300266 MHz133 MHz4,3 Gb/s
DDR2-667 PC2-5300333 MHz166 MHz5,3 Gb/s
DDR2-675 PC2-5400337 MHz168 MHz5,4 Gb/s
DDR2-800 PC2-6400400 MHz200 MHz6,4 Gb/s
DDR2-1066PC2-8500533 MHz266 MHz8,5 Gb/s
DDR2-1100PC2-8800560 MHz280 MHz8,8 Gb/s
DDR2-1200PC2-9600600 MHz300 MHz9,6 Gb/s
DDR3-800PC3-6400400 MHz100 MHz6,4 Gb/s
DDR3-1066PC3-8500533 MHz133 MHz8,5 Gb/s
DDR3-1333PC3-10600666 MHz166 MHz10,7 Gb/s
DDR3-1600PC3-12800800 MHz200 MHz12,8 Gb/s
DDR3-1800PC3-14400900 MHz225 MHz14,4 Gb/s
DDR3-2000PC3-160001000 MHz250 MHz16 Gb/s
DDR3-2133PC3-170001066 MHz266 MHz17 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).
Per poter consultare questo documento offline, ne potete scaricare gratuitamente una versione in formato PDF:
Memoria-ad-accesso-casuale .pdf

Vedi anche


Random access memory (RAM or PC memory)
Random access memory (RAM or PC memory)
Memoria de acceso aleatorio (memoria RAM o PC)
Memoria de acceso aleatorio (memoria RAM o PC)
Der Arbeitsspeicher (RAM oder PC-Speicher)
Der Arbeitsspeicher (RAM oder PC-Speicher)
RAM - Mémoire vive
RAM - Mémoire vive
A memória viva (RAM ou memória PC)
A memória viva (RAM ou memória PC)
Il documento intitolato « Memoria ad accesso casuale » da 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.