Haswell et mémoire DDR3

Publié le 15/10/2013 par
Imprimer
Pour tous les tests suivants, nous avons testés différents timings mémoires qui représentent un échantillon assez large de ce que l'on peut trouver sur le marché. Il s'agit des modes suivants :

- DDR3-1600 9-9-9
- DDR3-1600 8-8-8
- DDR3-1866 10-11-10
- DDR3-1866 9-9-9
- DDR3-2133 11-11-11
- DDR3-2133 10-12-12
- DDR3-2133 10-11-11
- DDR3-2133 9-11-11
- DDR3-2400 11-13-13
- DDR3-2400 10-12-12
- DDR3-2400 9-11-11
- DDR3-2666 11-13-13
- DDR3-2800 12-14-16

Ces chiffres méritent un petit rappel. Le premier d'entre-eux correspond au débit de la mémoire utilisée, ainsi DDR3-1600 signifie une mémoire DDR3 offrant un débit de 1600 Mb/s et par pin. Pour atteindre un tel débit, une puce de DDR3-1600 fonctionne en interne à 200 MHz et transfère 8 bits par cycle d'horloge à un buffer d'entrées / sorties qui est cadencé à 800 MHz et transmet les informations sur un bus de type DDR. Ces mémoires étant interfacées sur 64 bits, on arrive au final à un débit de 12,8 Go /s pour ce type de mémoire pour de la DDR3-1600.

Les autres chiffres correspondent à des latences, exprimées en cycles d'horloges. Classées par ordre d'importance, il s'agit du CAS Latency (délai pour accéder à une colonne mémoire), du RAS to CAS Delay (délai qui sépare l'accès d'une ligne à celui d'une colonne) et RAS Precharge time (délai entre l'accès à deux lignes). En DDR3-1600, une CAS Latency de 10 correspond à une latence de 12,5ns.


Extrait de la spec DDR3 Jedec, ce schéma montre deux commandes de lectures successives aux cycles T0 et T4. La CAS latency est ici de 5 (RL sur le schéma). Les données lues apparaissent en bleu, sur la ligne DQ.

Nous avons réalisés tous les tests à partir de nos kits mémoires Corsair. Dans le cas de la DDR3-2666 et DDR3-2800, nous utilisons les profils XMP des barrettes, dans les autres cas les timings sont réglés manuellement. Notez que dans la majorité des cas, nous avons réglé le contrôleur mémoire en mode 1T. Cependant, pour la DDR3-2666 et DDR3-2800, le contrôleur mémoire fonctionnait en mode 2T, le mode 1T ne passant pas. Dans ce cas, les commandes sont envoyées à la mémoire durant 2 cycles d'horloge consécutifs, contre un seul cycle en mode 1T.

Nous verrons en pratique l'impact du 1T/2T que nous avons testé également en DDR3-2400 9-11-11 afin d'avoir un point de comparaison. Notez au passage que faire fonctionner nos kits en DDR3-2400 9-11-11 fut particulièrement rude et plantogène, il nous aura fallu monter à la fois la tension de la mémoire au-delà de 1.65V et également augmenter la tension du contrôleur mémoire pour pouvoir tenir le choc, mais nous n'avons pas fait disparaitre totalement les plantages. Passons aux tests !

Latence mémoire

Commençons nos tests synthétiques avec une mesure de la latence. Celle-ci est exprimée en nanosecondes, elle est mesurée via l'utilitaire AIDA64 .


La latence pratique étant mesurée en nanosecondes, il est normal de voir que la fréquence tout comme les latences des barrettes ont un impact. La hausse de fréquence étant proportionnellement plus importante que la hausse des cycles, la latence baisse généralement avec la hausse de fréquence sauf dans les modes DDR3-2666/2800 qui souffrent en sus très légèrement du passage en 2T.

On notera globalement une légère hausse de ces mesures par rapport à la plateforme Ivy Bridge, même si l'on gardera à l'esprit qu'historiquement, ces mesures de latence n'ont jamais été très précises pour les comparaisons entre architectures.

Bande passante mémoire monothread

Passons maintenant à la bande passante mémoire, avec tout d'abord un test sur un seul thread. Nous utilisons là encore le test intégré à AIDA64 mais en nous limitant à la version 2.85 dont le test est monothread.



[ Lecture ]  [ Ecriture ]

Plusieurs choses intéressantes à noter. D'abord en lecture, nous notons une petite baisse par rapport à Ivy Bridge là encore, on rappellera cependant que dans notre test précédent, le processeur était overclocké un peu plus haut (4.5 GHz contre 4.3) ce qui joue probablement. Au-delà de la DDR3-2400, on note aussi une petite baisse des performances théoriques à l'image de ce que l'on avait pu voir là aussi sur Ivy Bridge.

Les résultats en écriture sont par contre assez différents : non seulement en hausse, on note ici que l'on atteint un palier sur un core ! Améliorer la bande passante ne changera rien, l'ajout du port d'écriture supplémentaire dans les unités d'exécution d'Haswell améliore les performances au point que le type de mémoire utilisé n'a plus d'impact, en tout cas dans ce test théorique. En sera-t-il de même en mode multithread ?

Bande passante mémoire multithread

Pour réaliser les tests de bande passante mémoire multithread, nous utilisons le nouveau test dédié intégré une fois de plus à AIDA64, qui est multithread depuis la version 3.0.



[ Lecture ]  [ Ecriture ]

Ce test théorique est une parfaite illustration de l'importance de la bande passante par rapport à la latence. Chaque couleur de notre graphique représente un mode (DDR3-1600, 1866, etc…) et si l'on note des améliorations de ci de là, on voit assez fortement l'impact d'un palier sur l'autre. On notera là encore une petite baisse de performances en lecture au-delà du mode DDR3-2400.

C'est en écriture que nous avions noté sur Ivy Bridge l'impact le plus important au-delà de la DDR3-2400. Pour rappel dans ce test, les modes 2666 et 2800 obtenaient des performances en dessous des modes 1866. Ici, rien de tel, les performances en écriture continuent de grimper, quelque chose qui semble confirmer les excellents résultats obtenus sur un seul thread. On dépasse tout de même les 43 Go/s en écriture !

Avant de passer aux tests pratiques, on notera que l'impact du mode 1T/2T dans le contrôleur mémoire est quasi négligeable. Voyons si tout cela se confirme dans nos tests applicatifs !
Vos réactions

Top articles