domenica 21 novembre 2010

Le memorie RAM

Nella storia ormai ultraventennale dei moduli DRAM il numero e la disposizione fisica dei chip sul modulo e gli standard di connessione alla motherboard del PC si sono naturalmente evoluti. Col tempo sono pertanto nate varie tipologie di moduli di memoria.

Nei moduli SIMM (Single in-line memory module), ormai caduti in disuso, il connettore aveva 30 contatti nei primi modelli a 8 bit e 72 contatti in quelli a 32 bit. A seconda dei modelli e della capacità del modulo, i chip potevano essere saldati sia su un solo lato del modulo, sia su entrambi i lati; i contatti elettrici erano replicati su entrambi i lati. A causa dell’architettura a soli 8 o 32 bit dei SIMM, era generalmente necessario installare questi moduli a gruppi di due o di quattro unità identiche per adeguare la memoria all’ampiezza del bus dati del processore (32 bit per i 486 e 64 bit per i Pentium). Esistevano anche moduli SIMM con controllo di parità, in grado di rilevare certe categorie di guasti e conseguenti errori, ma non di compensarli.

I moduli DIMM (Dual in-line memory module) sono il formato oggi dominante. Caratterizzati da una ampiezza di canale di 64 bit, non richiedono più di essere installati a coppie per poter lavorare con processori a 64 bit come i Pentium.
I contatti sono molto più numerosi che sui SIMM (da 72 a ben 240 pin a seconda dei tipi) e non sono più replicati identici su entrambe le facce del modulo come avveniva sui SIMM. Altra innovazione dei DIMM è l’introduzione a bordo del modulo di un chip SPD (Serial Presence Detect) che rende disponibili alla motherboard informazioni sul tipo di modulo e sul suo regime di funzionamento, così che il BIOS possa visualizzarli e soprattutto adattare automaticamente i propri parametri di lavoro ai moduli DRAM installati, senza bisogno che vengano immessi da tastiera in fase di configurazione.
Su alcuni tipi di DIMM è disponibile non soltanto il controllo di parità ma anche il sistema di correzione degli errori.

Molti dei moduli DIMM ad alte prestazioni più recenti dissipano una quantità di calore che col tempo porterebbe a un pericoloso aumento della temperatura e per questo sono provvisti di un dissipatore che si presenta come una placca metallica, a volte colorata, che copre quasi per intero la superficie del moduli.

Con l’aumento delle prestazioni delle CPU è aumentata vertiginosamente la loro “fame” di dati da elaborare, dati che il più delle volte devono provenire dalla RAM. Diventa quindi di cruciale importanza aumentare al massimo la velocità di trasferimento dati dalla RAM (“banda”: misurata in Mbyte/secondo), ma anche ridurre le attese prima che i trasferimenti abbiano inizio (“latenza”: misurata in cicli di clock spesi in attesa).
I più semplici chip DRAM rispondono alle richieste “il più presto possibile” e accettano le richieste in successione: una nuova richiesta non può essere presa in considerazione finché non è terminata l’elaborazione della richiesta precedente. In questo quadro la CPU è costretta ad attese molto frequenti e relativamente lunghe (alcuni cicli di clock di inattività).

La prima risposta al problema è stata l’introduzione di moduli SDRAM (Synchronous DRAM), nei quali la comunicazione fra processore e modulo di memoria avviene in modo regolato con maggior precisione. I dati richiesti non si affacciano “appena possibile”, ma solo quando un esplicito segnale di clock li abilita a farlo. Inoltre, la circuiteria di controllo del modulo è in grado di accettare nuove richieste mentre è ancora in corso l’elaborazione delle precedenti. Queste innovazioni sono molto “gradite” alla CPU in quanto riducono frequenza e durata delle attese nel suo dialogo con la RAM. Grazie alla temporizzazione più precisa è inoltre possibile aumentare le frequenze rispetto ai precedenti tipi di moduli di memoria asincroni, con un ulteriore aumento di prestazioni.
I moduli SDRAM avevano 168 pin e due tacche di riscontro asimmetriche sul connettore per evitare gli errori di installazione.

Le memorie DDR-SDRAM costituirono la prima evoluzione delle SDRAM. La sigla DDR significa “Double Data Rate”, a indicare che il ritmo di trasferimento dati viene raddoppiato grazie all’espediente di far avvenire i trasferimenti non una, ma due volte per ogni ciclo di clock.
DDR-SDRAM reagisce presentando un dato sia quando riceve il fronte di salita dell’impulso di clock, sia quando riceve il fronte di discesa dello stesso impulso di clock. I moduli DDR-SDRAM hanno un connettore da 184 pin con un’unica tacca disposta quasi esattamente al centro del modulo.

Le memorie DDR2 hanno proseguito la strada imboccata con le DDR per aumentare ancora la velocità di trasferimento dati raggiungibile. Nei DIMM di tipo DDR2-SDRAM, il bus di comunicazione con la CPU funziona a una frequenza esterna esattamente doppia di quella alla quale in realtà lavorano i chip di memoria.
Questi funzionano ancora alle stesse frequenze dei corrispondenti chip impiegati sui moduli DDR SDRAM. Pertanto, non vi è un vero aumento di flusso di dati fornibile con continuità alla CPU da parte della RAM, in quanto l’origine dei dati non è diventata più veloce a fornirli. Il modulo è però diventato due volte più veloce nella sua comunicazione con la CPU. In particolare, rispetto a un modulo DDR, un modulo DDR2 impiega esattamente metà tempo a trasferire un dato alla CPU non appena esso diventa disponibile, oppure a ricevere dalla CPU un dato da scrivere in memoria.
Le DDR2 incrementano dunque le prestazioni di picco riferite ai periodi in cui hanno luogo scambi di dati con la CPU, ma non migliorano la latenza dei moduli, che resta praticamente costante in termini di tempo e addirittura aumenta in termini di numero di cicli di clock (perché il clock è doppio rispetto ai DDR e i cicli durano un minor tempo). Ciononostante questo comportamento ha evidenziato un certo miglioramento delle prestazioni, decretando il successo delle DDR2 nei PC di larga diffusione. Il connettore dei DIMM DDR2 ha 240 pin e una singola tacca di riscontro.

Le memorie DDR3, si pongono due obiettivi di miglioramento rispetto alle DDR2: un aumento di banda di picco (sempre accompagnato da un aumento della latenza espressa in cicli di clock) e una importante riduzione di consumi. Il primo obiettivo è perseguito raddoppiando ancora la frequenza del bus esterno, che diventa quadrupla rispetto alla frequenza interna di lavoro dei moduli.
La riduzione dei consumi elettrici, importante sia per allungare l’autonomia dei portatili sia per ridurre il surriscaldamento e quindi il rumore delle ventole sui sistemi desktop e media center, è invece resa possibile dalla tensione di funzionamento ridotta a soli 1.5V. Il connettore dei DIMM DDR3 ha ancora 240 pin, ma la tacca di riscontro (singola) ha posizione diversa rispetto a quella dei moduli DDR2.

Come più volte ricordato, la velocità di trasferimento dati fra RAM e CPU non è tutto: riveste grande importanza anche la latenza, definita come il ritardo totale con cui il modulo RAM inizia a fornire i dati richiesti. La latenza è misurata in cicli di clock ed è la somma di vari ritardi elementari che si verificano in vari punti dell’architettura logica del DIMM e corrispondono ad altrettante fasi di funzionamento.
I produttori più scrupolosi dichiarano l’intero insieme di ritardi elementari per dar modo agli acquirenti di giudicare più dettagliatamente la qualità e le prestazioni dei moduli di memoria; spesso però ci si limita a dichiarare il solo valore del ritardo CAS, che in moduli DDR assume generalmente valori fra 2 e 3 (e valori più alti, fra 3 e 9, per le memorie DDR2). In generale si può dire che più basso è il valore delle
latenze dichiarate (specie del valore CAS), migliori sono le prestazioni raggiungibili dal modulo di memoria, ma è anche estremamente importante che le impostazioni della motherboard non scendano al di sotto dei valori supportati dal DIMM, altrimenti si verificheranno errori nei dati, blocchi del sistema o, nel caso più fortunato, cali severi di prestazioni.

Glossario

BANCO DI MEMORIA
Il termine può significare lo zoccolo sulla scheda madre nel quale va inserito il banco di memoria, un segmento della memoria stessa tipo la riga dell’indirizzo, oppure un segmento logico interno alla memoria


CAS LATENCY (CL)
Il numero di cicli di clock che intercorre tra la registrazione di un comando di lettura e il momento in cui i dati sono disponibili all’uscita della memoria

DDR (Double Data Rate)
Un tipo di memoria che invia le informazioni sui fronti di salita e discesa del segnale di clock. Strutturalmente è simile alla SDRAM, la quale però invia le informazioni solo sul fronte di salita. Con questa tecnica la memoria DDR raddoppia il numero delle informazioni spedite, la banda passante, a parità di frequenza di clock


DRAM (Dynamic RAM)
La tecnologia che sta alla base delle DDR, SDRAM, DRDRAM e altri generi di memoria (eccetto le SRAM). È definita dinamica perché le informazioni non sono memorizzate permanentemente, come invece accade nelle memorie SRAM, e hanno bisogno di venire rinfrescate continuamente. Sia DRAM e derivati che SRAM perdono comunque le informazioni se viene a mancare l’alimentazione elettrica. L’unità fondamentale della DRAM per la memorizzazione delle informazioni è la cella, composta da un transistor e un condensatore. Il condensatore è in grado di trattenere la carica solo per qualche millisecondo, ed è per questo motivo che le celle hanno necessità di un rinfresco periodico che rigenera la carica


ECC (Error Checking and Correcting)
 
Una memoria in grado di verificare l’integrità dei dati memorizzati e di correggere gli eventuali errori. Quando un dato è scritto in memoria viene generato e memorizzato il relativo codice di correzione, un’identica operazione di generazione del codice è fatta quando il dato viene letto. I due codici sono messi a confronto, se coincidono la lettura è valida, se non coincidono il sistema esamina i dati letti per determinare quale di questi è incorretto. Il sistema ECC non è in grado di correggere errori oltre un certo numero di bit, tuttavia l’affidabilità oggi raggiunta dalle memorie è tale che è difficile che si verifichi un evento del genere. Nel 99.9 per cento dei casi l’errore interessa un singolo bit, e il sistema ECC può recuperarlo senza problemi. Le memorie ECC sono costose e richiedono una scheda madre che le supporti. Si usano prevalentemente nei sistemi dove l’integrità dei dati è condizione primaria


ESD (Electrostatic Discharge – Scariche elettrostatiche)
Le scariche elettrostatiche si generano quando un corpo con un potenziale elettrico superiore entra in contatto con un corpo avente un potenziale inferiore. Per esempio se indossate dei panni di lana e scarpe di gomma e siete su una sedia di materiale sintetico, la continua frizione tra vestiti e sedia provoca un accumulo di elettroni che innalza il potenziale elettrico. La gomma delle scarpe è un isolante e non permette lo scarico verso terra del potenziale accumulato. Nel momento in cui si tocca un materiale con un potenziale inferiore gli elettroni in eccesso verranno scaricati su questo. Le scariche elettrostatiche possono raggiungere livelli di migliaia di volt, in alcuni casi è visibile una scintilla che testimonia il passaggio del potenziale. Per il corpo umano sono fastidiose ma per i componenti elettronici sono letali. Il rimedio più semplice è toccare un corpo metallico prima di prendere in mano un componente elettronico


JEDEC (Joint Electron Device Engineering Council)
L’organo internazionale che si occupa della definizione e sviluppo degli standard per l’industria elettronica


MEMORIA BUFFERED
Una memoria a cui sono stati aggiunti dei circuiti supplementari per incrementare la corrente del segnale in uscita. Una tecnica per ridurre l’attenuazione del segnale che avviene a causa del carico capacitivo presente nei circuiti della scheda madre. Le memorie di tipo buffered sono molto costose e vengono usate in configurazioni particolari la cui necessità primaria è l’integrità dei dati come i server. Richiede schede madri che la supportino


MEMORIA UNBUFFERED
Una memoria che colloquia direttamente col chipset senza circuiti intermedi (vedi memoria buffered). È il tipo di memoria comunemente supportato da tutte le schede madri di fascia media e bassa


MEMORIA VIRTUALE
Quando le applicazioni in esecuzione occupano tutto lo spazio della memoria di sistema e non è più possibile eseguire altre applicazioni. Per evitare una situazione del genere il sistema operativo usa la tecnica della memoria virtuale, libera una parte della memoria spostando sul disco fisso le applicazioni che non sono state usate recentemente. L’operazione è conosciuta col nome tecnico di Swap, l’area del disco riservata allo spostamento dei dati dalla memoria è denominata file di paging. Si chiama virtuale per distinguerla dalla memoria vera e propria del PC che è indicata come memoria fisica


PARITY
Un sistema di rilevazione degli errori di memoria. Il metodo Parity non è in grado di correggere alcun errore (vedi ECC) ma solo di rilevarne la presenza


RAM (Random Access Memory)
La memoria nel computer utilizzata per la temporanea memorizzazione delle informazioni mentre è in corso la loro elaborazione da parte della CPU. È chiamata casuale (Random) perché tutte le aree della memoria possono essere accese direttamente


RDRAM (Rambus DRAM)
Una tecnologia di memoria ad alte prestazioni sviluppata da Rambus. Trasferisce le informazioni da e verso la memoria alla velocità di 300, 350 o 400 MHz, poiché l’invio avviene su entrambi i fronti del segnale la velocità effettiva raddoppia, per questo le memorie sono indicate col nome RDRAM 600,700 e 800. Con bus dati a 16 bit (2 byte) alla velocità di 800 MHz le RDRAM raggiungono una velocità di trasferimento di 1,6 GB/sec, nettamente superiore a quella raggiunta dagli altri tipi di memoria presenti sul mercato al momento dell’uscita delle RDRAM. L’ultima versione di RDRAM lavora a 1.066 MHz ed è in via di definizione una versione a 1.600 MHz. La tecnologia Trasmission Line su cui si basano richiede che tutti gli zoccoli della memoria siano popolati, da un modulo RDRAM oppure da un CRIMM che non è nient’altro che un modulo senza banchi di memoria ma con un linea di connessione che fornisce la continuità tra i moduli. Le memorie Rambus incorporano un sistema di correzione degli errori. A causa dell’elevata frequenza di lavoro e della conseguente generazione di calore, i moduli di memoria (vedi RIMM) sono ricoperti da una lamina metallica che ne favorisce la dissipazione


REGISTERED MEMORY
Una memoria contenente un registro che ritarda di un ciclo di clock tutte le comunicazioni in movimento verso il chipset. Il ritardo penalizza leggermente le prestazioni ma migliora l’affidabilità del processo. Le Registered memory sono utilizzate in special modo nei server e nei sistemi che richiedono un’alta affidabilità nella gestione dei dati


RIMM
È un marchio registrato da Rambus per indicare il modulo di memoria completo sul quale sono installati i banchi di RDRAM


SRAM (Static RAM)
Una memoria ad accesso casuale che non richiede il refresh delle informazioni. Le SRAM sono velocissime e costose


SDRAM (Synchronous DRAM)
Una DRAM in cui l’ingresso e l’uscita dei segnali sono sincronizzati col ciclo di clock del sistema. Le SDRAM lavorano simultaneamente su due banchi di memoria differenti, mentre accede a uno prepara il seguente per l’accesso riducendo i ritardi e le latenze. Nelle SDRAM è implementata la funzione Burst mode che permette l’accesso a blocchi di informazioni alla volta anziché a piccole quantità di dati


SPD (Serial Presence Detect)
Un chip EEPROM da 2048 bit che contiene informazioni permanenti, inserite dal produttore della memoria, che identificano il modulo, dimensione della memoria, parametri di temporizzazione, alimentazione e velocità. Le informazioni sono lette dal BIOS che le usa per configurare automaticamente e al meglio la memoria.

Nessun commento:

Posta un commento