Qu’est-ce que les Cas Latency ?

18
59005

Vous en avez certainement entendu parler, les mémoires PC ont ce qu’on appelle des timings, ou CAS Latency ? Qu’est-ce que c’est et comment ca marche ? C’est ce dont on va parler dans ce Quicky.

Difficulté : Expert

Vitesse de mémoire :

Pour commencer, afin d’être sûr que vous compreniez de quoi on parle, je vais parler des bases. Un précédent Quicky parlait de l’usage de la mémoire vive. Ici nous creuserons un peu (beaucoup) plus loin.

Déjà il faut savoir que le processeur stocke ce qu’il a besoin dans sa mémoire vive (car elle est faramineusement plus rapide qu’un disque dur). Ainsi tout un tas de données sont dans cette mémoire, cela atteint aujourd’hui plusieurs Go. Le processeur est donc très souvent amené à aller lire ce que contient un bout de sa mémoire, ou à la modifier. Il va pour cela accéder aux puces mémoires des barrettes de RAM.Mémoire RAM

Sauf qu’à ce petit jeu là, toutes les mémoires ne se valent pas. En effet, elles diffèrent par leur fréquence, qui leur permet d’avoir une bande passante plus ou moins élevée. Par exemple, une barrette de DDR3 de 1600 MHz (800 MHz réels) propose une bande passante de 12,8 Go/s en mono canal (d’où le PC12800). Pour plus d’infos sur la bande passante, allez voir ce Quicky.

Mais outre la fréquence, il y a une autre donnée à prendre en compte : la latence (que l’on peut voir grâce aux Timings). Et c’est l’objet de ce Quicky.

les Timings mémoires sont présentés sous forme de 4 chiffres. Prenons exemple sur la mémoire que l’on met dans notre configuration Overclocking Made in FranceG.Skill Trident X. Sa dénomination officielle est CL10, mais on se rend compte que ses timings sont composés de 4 chiffres qui sont 10-12-12-31. Nous allons détailler à quoi ces chiffres correspondent.

Prérequis :

Avant de commencer, il faut savoir que ce sont 4 chiffres représentant des latences. De ce fait, ces chiffres doivent être les plus bas possibles. Mais en quelle unité comptons-nous ces latences ? Des millisecondes ? Par exemple CL 10 veut dire une latence de 10 ms ? Non. Nous comptons la latence mémoire en cycles.

La rapidité d’un cycle est déterminé par la fréquence mémoire. Ainsi, une RAM DDR3 800 MHz (1600 MHz « commerciaux ») aura un cycle qui dure 1 secondes / 800 Millions =1,25 nanosecondes.

Cependant, avoir des timings plus faibles ne veut pas dire une latence réelle plus faible!

Test DDR4 Kingtson 3000 mhz 32go HX430C15PBK432  7

Ainsi, prenons une RAM à 1000 MHz (2000 MHz commerciaux). Chaque cycle dure donc 1 nanosecondes. Si une latence est de 10 cycles, cette latence durera donc 10 nanosecondes. De la même manière, une RAM à 500 MHz, avec une latence de 8 cycles aura une latence de 8 * 2 ns = 16 ns. Ainsi, malgré des chiffres de latence plus faibles en nombre de cycles, celle-ci aura une latence plus élevée, donc moins bonne.

Deuxième prérequis pour comprendre ce qui va suivre : la mémoire vive doit être vue comme une matrice (c’est à dire un tableau de données avec des lignes et des colonnes). Sur ordre du processeur, la RAM lit (ou écrit) dans cette matrice. Pour cela, la mémoire précharge la bonne ligne (Précharge), puis doit l’activer (RAS), et ensuite sélectionner la bonne colonne (CAS). Une fois ceci fait, elle peut commencer son opération de lecture ou d’écriture. Nous détaillerons ceci un peu plus par la suite.

matrice

tRCD et CAS Latency :

Ceci étant dit, on peut maintenant parler de la signification des 4 chiffres faisant les Timings mémoire. Elles portent le doux nom de CL – tRCD – tRP – tRAS. Vous constaterez que l’on détaillera les timings dans le désordre. C’est paradoxalement le plus simple pour comprendre.

Nous commencerons par le tRCD (le 2ème timing). Il veut dire RAS to CAS Delay. Lorsque la bonne ligne de la matrice est choisie (RAS, pour Row Access Strobe), il faut maintenant choisir la bonne colonne (CAS, pour Column Access Strobe). Sauf qu’on ne peut pas le faire immédiatement, il faut attendre un certain temps, c’est le tRCD. Par exemple, dans notre RAM préconisée dans notre configuration OMF (à 1200 MHz réels), le tRCD est de 12. Ainsi, un CAS ne peut intervenir que 12 cycle après un RAS, soit 12 * 0.833 ns, soit 10 ns.

Ensuite, allons voir le CAS Latency (1ère valeur parmi les 4), Il signifie Column Access Strobe Latency et c’est le timing le plus connu. Une fois la colonne sélectionnée (CAS), la RAM met un petit peu de temps avant de commencer sa lecture (ou son écriture), c’est le CAS Latency. Dans notre configuration OMF, la RAM a une CAS Latency de 10 cycles, ce qui fait 8.33 ns.

Faisons un petit résumé de ces deux valeurs tRCD et CAS, afin d’éviter de nous mélanger les pinceaux par la suite. Une fois la bonne ligne sélectionnée, pour la première opération, celle-ci prend tRCD + CAS cycles (dans notre cas 12 + 10 = 22 cycles). En effet, il y a le temps d’attente avant de pouvoir sélectionner la colonne (tRCD) et le temps d’attente pour l’opération en elle-même (CAS Latency). Par contre, tant qu’on reste sur cette ligne, toutes les opérations suivantes ne seront pas concernées par le tRCD, et ne prendrons que CAS cycles (c’est à dire 10 cycles dans notre cas). En effet, tant qu’on reste sur la bonne ligne, pas besoin de la resélectionner à chaque fois (et heureusement !) ce qui évite d’appliquer le RAS to CAS Delay (tRCD).

Timing CAS tRCD

tRP et tRAS :

Bon, et que se passe-t’il quand on veut lire (ou écrire) sur une autre ligne ? Il faut alors changer de ligne. Pour cela, il faut désactiver la ligne courante, et activer l’autre ligne. Ce préchargement met un certain nombre de cycle à s’effectuer. C’est le tRP (3ème timing), qui veut dire RAS to Precharge Time. C’est ainsi le temps que met la mémoire pour passer de la commande « precharge » à la commande « active ». Dans le cas de notre mémoire c’est 12 cycles.

Ainsi, si vous êtes positionné sur la ligne n°2, et que vous voulez lire une donnée sur la ligne n°13, il vous faudra changer de ligne, avec le temps d’attente pour pouvoir sélectionner la ligne (tRP), sélectionner la colonne que vous souhaitez (tRCD) et interagir avec la donnée (CL), ce qui fait un total de 12 + 12 +10 cycles sur notre mémoire, ce qui fait un total de 10 + 10 +8,33 = 28,33 ns. Et comme on le disait précédemment, tant qu’on reste sur la même ligne, la seule latence est la Cas Latency, de 8.33 ns chez nous.

Timing tRP

Si pour le moment vous avez bien compris, la ligne devient active (tRP), puis on sélectionne la colonne (tRCD), puis on lit (CL). Que vient faire le 4ème timing, souvent très gros ? Et bien à partir du moment où une ligne devient active, on ne peut plus changer de ligne avant un certain nombre de cycle. C’est un temps minimal, pas vraiment une latence. Ce nombre de cycle est ce 4ème Timing, le tRAS (qui signifie Active to precharge Delay). Ce 4ème timing est de 32 sur notre mémoire de référence.

Un exemple valant bien des mots. Imaginons que nous changeons de ligne. Il va se passer 12 cycles (tRP) pour que la nouvelle ligne devienne active. A partir de ce moment là (à partir du moment où la ligne devient active), imaginez un chrono qui se lance. Tant que ce chrono n’atteint pas 32 cycles, on ne peut pas changer à nouveau de ligne. Cela veut dire que si on veut lire une seule donnée sur la ligne en cours (qui prendre tRCD + CL = 22 cycles), la RAM devra se tourner les pouces les 10 cycles restant avant de pouvoir changer à nouveau de ligne.

Par contre, si on veut lire deux données sur cette ligne, la première prendra toujours tRCD + CL cycles, soit 12 + 10 = 22, et la deuxième prendra CL cycles (donc 10). Ainsi, la latence pour lire 2 données est donc de 22 + 10 = 32 cycles. Le fait que ca tombe sur 32 soit autant que le tRAS, est un coup de chance. Dans tous les cas, le tRAS est dépassé (car notre « chrono » est supérieur ou égal à 32), ce qui permet de changer de ligne dès maintenant. Vous voyez donc dans notre cas que si on lit 2 données ou plus sur une ligne, le tRAS n’influe alors pas, car suffisamment petit pour ne pas limiter. Par contre, si on ne lit qu’une seule donnée sur la ligne, cela implique à la RAM de patienter 10 cycles, soit 8.33 ns.

Ainsi, de manière générale, un tRAS optimisé est égal à 2 x CAS + tRCD (cela vient de la latence tRCD + CAS pour le premier accès et de la latence CAS pour le deuxième accès). En effet s’il est supérieur, il pénalise la mémoire lors de deux accès sur une même ligne, alors qu’un tRAS inférieur à 2 x CAS + tRCD ne pénalisera la mémoire que si elle fait un seul accès.

tRAS

Si on résume efficacement :

  • Le CL est la latence pour lire/écrire sur une donnée
  • le tRCD est la latence pour sélectionner une Colonne
  • le tRP est la latence pour activer une ligne
  • le tRAS est le temps minimal entre l’activation d’une ligne et le début de procédure d’activation de la prochaine ligne.

En clair, ces 4 timings sont des mesures différentes, même si le CAS Latency (la première valeur) est la plus importante, car est appliquée à chaque opération sur la mémoire sans exception.

L’impact de la latence mémoire est, au même titre de la fréquence, assez faible actuellement. En effet, depuis la DDR2, la vitesse de la mémoire n’influe plus beaucoup dans les performances générales d’un PC. Par contre aujourd’hui, certaines tâches, et certains benchs (comme Super Pi par exemple) sont plutôt exigeants pour la RAM.

Et dans ces cas, comment rendre sa mémoire plus rapide ? Augmenter sa fréquence et/ou diminuer ses timings. Tout en gardant en tête qu’augmenter la fréquence est plus efficace que de diminuer les timings car augmenter la fréquence augmente la vitesse de transfert (bande passante) et diminue la latence (car diminution de la durée d’un cycle), tandis que baisser les timings ne diminue que la latence.

MEG DDR Blade white

En espérant vous avoir  éclairer sur ces chiffres assez déconcertants que sont les timings. A bientôt pour un prochain Quicky !

18
Poster un Commentaire

avatar
9 Fils de commentaires
9 Réponses de fil
0 Abonnés
 
Commentaire avec le plus de réactions
Le plus populaire des commentaires
11 Auteurs du commentaire
JackLilouFievetk4m4Sicca Auteurs de commentaires récents
  S’abonner  
plus récent plus ancien Le plus populaire
Notifier de
Lilou
Invité
Lilou

Bonjour,

je suis un peu en galère, je veux augmenter la mémoire vive de mon X230 Lenovo, de 2*4 à 2*8go, pour débuter la CAO, et çà me fait un peu mal au crane et pas trop le temps non plus de comprendre tout çà…
Est-ce que vous pourriez m’aider s’il vous plait ??
Je cherche deux 8GB DDR3-1600 PC3-12800 SO-DIMM, mais je sais pas quelle latency CAS, je dois opter

Mercii

@rsenic
Membre
@rsenic

super taf merci

k4m4
Invité
k4m4

Super moi aussi j avai rien compris , Mais maintenant ca me parle MERCI .

Sicca
Invité
Sicca

ok pour le peu de diff entre de la 1600 et de la 1866 en revanche si on compare de la 1600 CL9 à de la DDR4 3600 CL17 là par contre on doit bien sentir la différence non ? 10 FPS ?

Jack
Membre
Jack

En DDR4 la différence est flagrante avec un gros cpu i7 8700k par example, en jeux et suivant les benchs et programmes.

Il manque une information très importante que peu de sites relayent la valeur T pour la ram après les 4paquets de chiffres, si elle est égale à 1 ok tout ce qui est écris ci-dessus est valable, par contre si elle est à 2, il faudra le double de temps pour toutes les opérations, et ça sa pénalyse à mort.

matthieu
Membre

Très instructif, j'avais une vague idée des timings mais maintenant tous est clair :)

Jérémie Laurent
Invité

Chapeau franchement, geekosa ! Les timmings je n'y comprenais rien, mais là c'est limpide. Va falloir que je le relise, pour bien tout assimilé. Mais il y a encore quelque questions que je me pose du coup. Quelle est l'influence de dual channel (bon déjà c'est quoi exactement). Et est que la DDR4 change quelque chose au fonctionnement de la RAM par rapport à la DDR3 ? Je pense que non, par contre, j'ai l'impression qu'on peut plus monter en fréquence avec la nouvelle DDR4.

volcom67
Invité
volcom67

Sympa les explications ! Donc, vous me corrigez si j'ai mal compris, concrètement alors dans nos Pc's, avoir de la RAM en 1600Mz en Cas 9 ou 1866Mz en Cas 10, redeviendrai au même ?

En utilisation "normal', peut-on réelement percevoir une différence entre 1600Mz Cas 9 et du 2133Mz Cas 8 ?

Merci :)

Gungar
Membre
Gungar

ça n'existe pas de la ddr3 en 2133 avec un Cas de 8 c'est 9 minimum.

karnage
Membre
karnage

Excellent :D j'avais déjà fais des recherche sur ces chiffres mais j'avais jamais capter, ici c'est bien clair :D

Gungar
Membre
Gungar

Excellent Quickie. Merci pour les infos Geekosa.

Gungar
Membre
Gungar

Quicky*