Categories: DossiersQuicky

Qu’est-ce que les Cas Latency ?

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.

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 France : G.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!

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.

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).

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.

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.

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.

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

Voir commentaires

  • 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

  • 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 ?

    • 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.

  • 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.

    • Merci ;)

      Le double canal couple les barrettes 2 à 2 (un peu à la sauce RAID 0) avec de multiplier par deux (théoriquement du moins) la bande passante mémoire. D'une manière très grossière, c'est comme si tu multipliait par 2 la fréquence de la RAM et ses timings (une équivalence très grossière)

      La RAM DDR3 et DDR4 fonctionnent de la même manière, la DDR4 apporte une fréquence supérieur et une tension (et donc consommation) plus faible. Ca va changer la vie pour les APU, et d'autant plus sur PC portable grâce à l'économie d'énergie qui ajoute de l'autonomie.

      • Le dual channel finalement ne joue que sur la bande passante, alors ? Si tu multiplie par 2 la fréquence mais que tu multiplie par 2 les timings alors les temps d'accès sont conservés que l'on soit en single ou dual channel, est-je bien compris ?

        • C'est exactement ça !

          Ca conserve la latence (en théorie, en vrai ca les empire légèrement) mais ca double la bande passante ;)

  • 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 :)

    • la RAM à 1600 MHz a bande passante de 12.8 Go/s par canal contre 14.6 Go/s par canal pour la RAM à 1866 MHz. Avantage pour la RAM à 1866 MHz sur ce point.

      Pour la latence, si on résume celle-ci par la seule CAS Latency (1 seul chiffre parmi les 4), ce qui est très très approximatif comme je disais dans le Quicky, ca donne ca :
      RAM à 1600 MHz : cycle de 1.25 ns (1/800M), donc latence CAS de 11.25 ns
      RAM à 1866 MHz : cycle de 1.07 ns (1/933M), donc latence CAS de 10.70 ns.
      Avantage de la RAM 1866 MHz CL10 sur la latence également.

      La RAM 1866 MHz CL10 gagne sur tous les points (que ce soit bande passante ou temps d'accès) par rapport à la 1600 CL9. Donc ca ne revient pas du tout au même.
      La 1866 CL11 serait équivalent à la 1600 CL9 en termes de temps d'accès, mais resterait devant grâce à sa bande passante. A mon avis, c'est plutôt de la 1866 CL12 qui serait équivalente à de la 1600 CL9, car elle serait moins bonne au niveau du temps d'accès, mais meilleure au niveau de la bande passante, ce qui se vaudrait à peu près.

      Sinon dans un usage normal, tu ne percevras aucune différences entre deux vitesses de RAM, celle-ci jouant pour 2 FPS maximum dans les jeux.

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

Partager
Publié par

Publications récentes

Conquer 2 : Cougar annonce son conquérant second génération !

Si vous avez lu notre test, vous le savez sûrement, le Conquer de Cougar est un de nos coups de…

6 décembre 2019

Un tuto et des outils pour la MSI X299 CREATOR

Wizerty, certainement le meilleur overclockeur français à l'heure actuelle, vous propose sur notre forum, un post dédié à la MSI…

6 décembre 2019

VPR100 RGB-Lit : un SSD M.2 avec du RGB chez Patriot

Direction Patriot qui annonce une nouvelle série de SSD avec ses VPR100 RGB-Lit. Au programme, on retrouve des modèles au…

6 décembre 2019

TForce Xtreem ARGB : de la RAM miroir RGB chez TeamGroup !

Nouvelle série de RAM chez le constructeur TeamGroup qui annonce sa TForce Xtreem ARGB. De nouveaux kits qui ont pour…

6 décembre 2019

AMD en 5nm dès 2021 ?

TMSC aurait déjà validé son process 5 nm : 3 clients dont AMD pour 2021 : Le China Times a…

6 décembre 2019

SSD Plus : la gamme de Sandisk accueille un modèle de 2 To !

Petit tour chez Sandisk où l'on peut apercevoir un nouveau modèle de SSD. Le modèle en question appartient la série…

5 décembre 2019