Enter the Matrix

Spesso il principale collo di bottiglia per le prestazioni è la memoria di sistema. Ottimizzarla può velocizzare in maniera considerevole il vostro PC: vi spieghiamo come farlo!

Avatar di Tom's Hardware

a cura di Tom's Hardware

Enter the Matrix

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 (RAS-to-CAS delay), 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), siccome 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, la 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 è 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 si leggono dati adiacenti nella stessa riga di memoria, l'unico fattore che determina la velocità di accesso è il timing CL, siccome 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.