I parametri importanti
I timing più importanti delle RAM sono la latenza CAS (CL), il delay RAS-to-CAS (tRCD) e il tempo di precarica (tRP). Molti moduli di memoria riportano specifiche del genere: PC2700-2.0-2-2.0 o PC3200-3.0-3-3.0. Le prime cifre di questi numeri all'apparenza indecifrabili descrivono il tipo di memoria, le ultime tre i sopracitati timing. Altri produttori indicano semplicemente la latenza CAS con le sigle CL 2.0 o CL 3.0. Nonostante questo sia un parametro importante non elencare le altre caratteristiche va a svantaggio del compratore in quanto ognuna di esse ha un impatto sulle prestazioni del sistema.
Per comprendere al meglio i parametri di timing, dovremmo sapere tutto riguardo all'accesso alla memoria. Un processo di lettura inizia quando il controller nel chipset della motherboard seleziona il modulo di memoria che contiene i dati. Il controller poi si rivolge direttamente al chip specifico nel modulo. Le celle del chip sono disposte in una matrice alla quale ci si riferisce usando uno schema a righe e colonne. Ogni intersezione rappresenta un bit di memoria.
[img align=\'left\' src=\"http://img23.echo.cx/img23/2603/senzatitolo14qh.jpg\" border=\'0\' alt=\'user posted image\']
Il controller delle memorie per prima cosa invia la riga dell'indirizzo della cella alla quale si riferisce alla logica del modulo. Dopo un certo periodo di tempo (tRCD) il modulo rende disponibili i contenuti della riga come archivio temporaneo. Nei moderni chip RAM questo processo richiede da due a tre cicli di clock. Possono capitare anche frazioni, come per esempio 2,5 cicli di clock (CL 2.5), in quanto le RAM DDR possono mandare segnali dati e di controllo due volte per ciclo di clock (sia con segnale di clock in salita che in discesa).
Una volta che l'archivio temporaneo è popolata dai contenuti della riga, il controller invia un segnale CAS (column address strobe) che trasmette l'indirizzo della colonna della cella di memoria. L'invio dei dati così individuati al registro di output richiede un tempo tCL, ossia equivalente alla latenza CAS.
Nel BIOS in molti casi è possibile impostare il numero di cicli di clock per i timing tRCD and tCL. Più bassi sono questi valori, maggiori sono le performance. Un'impostazione di CL di 2.0 o anche di 1.5 è possibile solo per i moduli più veloci. Se i moduli in nostro possesso non riescono a lavorare con timing così aggressivi il PC potrebbe "freezarsi", quindi attenzione a fare questi esperimenti e lasciarli solo dopo accurati test.
Se si leggono dati adiacenti nella stessa riga di memoria, l'unico fattore che determina la velocità di accesso è il timing CL visto che il controller conosce già l'indirizzo della riga e non ha bisogna di ricercarla ancora. Quando il controller deve invece rivolgersi a diverse righe nella RAM, impiega un tRAS (row active time) prima di potersi spostare da una riga all'altra. Il tempo tRAS è incrementato dal tempo tRP (RAS precharge time), che è necessario per caricare i circuiti a un livello di voltaggio più alto. In altre parole, anche i moduli di memoria rapidi necessitano di almeno sette cicli di clock per l'intero processo.
I moderni chip di memoria DDR sono suddivisi in quattro segmenti (banchi) ognuno dei quali rappresenta una zona di memoria separata. Il bank interleaving permette di indirizzare simultaneamente zone in differenti banchi, aumentando quindi la quantità di dati trasmessi. Mentre dei dati vengono letti da un banco di memoria, è possibile indirizzare una nuova zona in un altro banco. Dal BIOS è possibile specificare quanti banchi possono essere indirizzati contemporaneamente. L'impostazione più veloce è quattro.
Ottimizzare i parametri di timing velocizza i processi di accesso alla RAM. Il controller di memoria per prima cosa determina l'indirizzo di riga della cella interessata. L'indirizzo di colonna viene comunicato dopo un tempo tRCD. Il trasferimento dei dati al registro di output impiega un tempo tCL. Il processo può ripartire un'altra volta dopo un'attesa di tRAS più tRP.
Come ottimizzare la RAM dal BIOS
I BIOS delle schede madri presentano numerose voci per ottimizzare la nostra memoria. Spiegho brevemente le opzioni e riporto anche degli esempi di come determinate voci potrebbero chiamarsi in differenti versioni di BIOS; notate anche che non tutti i menu di BIOS offrono tutte queste opzioni.
Automatic Configuration Se volgliamo configurare manualmente i nostri timing di memoria dobbiamo disattivare la configurazione automatica della RAM.
Bank Interleaving I chip di memoria DDR RAM constano di quattro banchi. Poter indirizzare contemporaneamente i quattro banchi con l'interleaving massimizzerà le vostre performance.
Burst Length La voce Burst length specifica la quantità di blocchi di dati inviati per ciclo di trasmissione. Idealmente, una trasmissione riempirà una riga di memoria nella cache L2 che si trova nei moderni processori Pentium 4 e AMD, ossia 64 bit (otto pacchetti di dati). Scegliere il valore opportuno in base al proprio hardware
CAS Latency tCL (Possiamo trovarlo anche con le diciture CAS Latency Time o CAS Timing Delay) Il numero di cicli di clock che passa dall'indirizzamento della colonna all'arrivo dei dati nel registro di output. Il produttore della memoria elenca le migliori impostazioni possibili come punteggi CL
Command Rate CMD (Possiamo trovarlo anche con le diciture Command Rate, MA 1T/2T Select) Il numero di cicli di clock necessari per l'indirizzamento della zona richiesta nel modulo di memoria e nel chip. Se abbiamo tutti i banchi di memoria impegnati, dovremo impostarlo a 2, con conseguente perdita in termini di prestazioni.
RAS Precharge Time tRP Il numero di cicli di clock necessari per precaricare i circuiti in modo da poter determinare la riga.
RAS-to-CAS Delay tRCD Il numero di cicli di clock che passano dalla determinazione dell'indirizzo della colonna all'invio dello stesso. Impostare questa voce a due può incrementare le prestazioni fino al quattro percento.
Row Active Time tRAS Il ritardo che deriva dall'indirizzamento consecutivo di due righe diverse all'interno dello stesso chip.
Memory Clock Specifica la velocità di clock del bus di memoria. Questa frequenza normalmente è relativa al clock del front side bus. La tecnologia DDR (double data rate), raddoppia il data rate indicato dall'effettiva velocità del bus.
NB Questa guida è stata scritta estrapolando appunti che avevo raccolto qua e la, eventuali commenti o precisazioni sono ben accette.