HardWare.fr


Haswell et mémoire DDR3
DiversMémoires
Publié le Mardi 15 Octobre 2013 par Guillaume Louel

URL: /articles/909-1/haswell-memoire-ddr3.html


Page 1 - Introduction

Le lancement d'une nouvelle micro architecture - un "tock" en langage Intel - est toujours un petit événement pour le monde du matériel. Pour ses processeurs Haswell, connus commercialement sous le nom de processeurs Core de 4eme génération, Intel a apporté des changements à tous les étages, dont certains concernent plus particulièrement la manière dont ces processeurs interagissent avec la mémoire. L'occasion de voir comment se comporte cette nouvelle génération avec différents kits de RAM allant du plus classique aux plus onéreux.


Ce n'est pas la première fois que nous nous intéressons au sujet de l'adéquation entre mémoire et processeur. Lors de nos articles précédents, nous avions noté que la question de la latence, si elle jouait toujours un rôle, passait au second plan. Exprimée en cycles dans les caractéristiques des produits (on lira par exemple DDR3-1600 CL9, ou encore DDR3-1600 9-9-9), la CAS latency indique le nombre de cycles d'horloges nécessaire à un module pour accéder à des données. Historiquement, la latence à toujours eu un rôle important même s'il a eu tendance à s'amenuiser avec le temps. Nous avions vus en pratique que la bande passante (1600, 2133, etc…) primait au final sur la latence sur les architectures processeurs modernes.

Pas de miracle derrière ce fait : avec l'intégration du contrôleur mémoire directement dans le processeur (ils étaient autrefois placés dans le chipset), les fabricants de processeurs peuvent optimiser finement ce que l'on appelle le sous système mémoire. Les puces modernes intègrent en effet différents niveaux de caches de tailles et rapidités différentes qui viennent s'intercaler entre les unités d'exécution et la mémoire. Des systèmes complexes de prédiction et de prefetching tentent d'anticiper au maximum les lectures mémoires afin d'éviter à tout prix que le processeur doive attendre après les données.

Ces mécanismes sont de plus en plus efficaces d'une architecture sur l'autre et Intel a effectué avec l'architecture d'Haswell un certain nombre de changements qui devraient avoir un impact. On pense par exemple à la bande passante des caches doublées, ou encore à l'ajout dans les unités d'execution d'un port supplémentaire dédié aux écritures mémoires. Nous verrons en pratique si cela à bel et bien un impact.

Nous avions également noté un point pratique en ce qui concerne l'utilisation de mémoire haut de gamme avec les cartes mères Ivy Bridge : difficile de dépasser la DDR3-2400 sur une carte mère milieu de gamme. Nous avions du utiliser pour notre test précédent une carte mère Maximus V Formula d'Asus. Pour Haswell, nous avons noté un progrès net puisque nous n'avons pas rencontré de problème avec les cartes, y compris entrée de gamme, pour booter avec un kit mémoire DDR3-2800.

Configuration de test

Pour réaliser nos tests, nous avons utilisé la configuration suivante :

- Processeur Intel Core i7-4770K (cadencé à 4.3 GHz)
- Carte mère Gigabyte GA-Z87X-D3H
- Kits mémoire Corsair CMD8GX3M2A2666C11 et CMD8GX3M2A2800C12
- Carte graphique GeForce GTX 780

Nous réutilisons ici les kits mémoires Corsair que nous avions détaillés précédemment dans cet article. Afin de stresser au maximum les kits, nous overclockons également notre processeur à 4.3 GHz.

Notez que nous ne reviendrons pas sur la question de l'affinité de l'IGP, nous avions déjà noté dans cet article des gains importants dans des jeux comme F1 2011 par exemple. L'utilisation de mémoire très haut de gamme, fort onéreuse, avec un IGP reste un cas qui ne fait pas vraiment sens au-delà des tests théoriques quand l'on peut s'offrir, pour le prix d'un de ces kits, une carte graphique dédiée !


Page 2 - Latence et bande passante mémoire

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 !


Page 3 - Performances applicatives

Nous avons sélectionné deux applications assez différentes pour mesurer l'impact de la mémoire sur les performances. Nous utilisons d'un côté 7-Zip, test de compression qui a toujours été très sensible à la bande passante mémoire, et de l'autre x264 qui en profite historiquement un peu moins.

7-zip

Nous mesurons le temps de compression en secondes pour une archive incluant une variété de types de fichiers, dont certains très compressibles (code source d'Ogre). Nous utilisons l'algorithme LZMA2, le plus performant disponible.


7-Zip est très sensible à la mémoire et si la bande passante reste l'argument premier, on note que les variations de latences créent aussi des écarts. Entre la mémoire la plus basique et notre mémoire la plus onéreuse on note un gain de 12.5% de performances. Il est intéressant de noter que l'impact du mode 2T est au final assez mince et n'explique pas à lui seule les performances un peu en retrait au-delà du mode DDR3-2400. Le profil XMP de notre DDR3-2800 l'emporte cependant d'un cheveu !

x264

Nous passons cette fois ci à une application qui profite généralement moins de la bande passante, le logiciel d'encodage vidéo x264. Nous utilisons le mode 2 passes "fast" pour encoder un extrait en 720p.


Les gains sont cette fois ci particulièrement réduits et l'on ne gagnera tout au plus de 3.3% de performances avec la mémoire la plus rapide.


Page 4 - Performances dans les jeux

Nous mesurons les performances dans deux jeux issus de nos tests processeurs. Nous utilisons une carte graphique Nvidia GeForce GTX 780, les jeux sont testés en 1080p avec tous les réglages poussés au maximum, sauf l'anti-aliasing. Le premier titre que nous avons choisis, StarCraft II, profitait plus fortement de la mémoire que le second, Arma II, dans nos tests précédents. Voyons ce qu'il en est ici.

StarCraft II

Nous mesurons le nombre d'images par secondes dans un replay d'une attaque massive et excessivement stressante pour la machine.


La scène est bien entendu excessivement gourmande et le moteur de StarCraft II n'est pas vraiment optimisé multithread. Les gains sont ici très importants puisque l'on arrive à 15% de performances en plus.

On notera que le moteur de StarCraft II est beaucoup plus sensible à la latence que les applications multithreadées que l'on avait testé sur la page précédente, quelque chose qui fait écho à nos mesures théoriques. On notera une fois de plus le petit déficit de performances au delà du mode DDR3-2400, que l'on n'expliquera pas par le passage en mode 2T, ce dernier n'ayant pas d'impact ici.

Arma II

Nous mesurons le nombre d'images par secondes sur un parcours prédéfini.


Arma II profite un peu moins que Starcraft II d'une mémoire rapide mais les gains ne sont pas négligeables puisque l'on mesure au maximum 7.9% de gain de performances, atteints avec la DDR3-2400 CL9 qui obtient ici les meilleurs résultats en mode 1T. Le mode 2T n'est pas sans impact mais les modes DDR3-2666 et 2800 sont tout de même en léger retrait, une fois de plus.


Page 5 - Conclusion

Les changements effectués par Intel sur ses processeurs Haswell se ressentent de manière assez variable dans les différents tests que nous avons effectués. D'abord au niveau de la compatibilité, même s'il est difficile d'être catégorique, nous avons noté un bond en avant net de cette dernière par rapport à Ivy Bridge puisque même les cartes mères d'entrée de gamme que nous avions testés étaient capables de booter notre kit DDR3-2800. Nous avons d'ailleurs réalisés cette fois ci sans problèmes nos tests sur une carte mère de milieu de gamme. Les changements côté architecture ont également un impact, l'arrivée d'un nouveau port dédié aux écritures permet à Haswell de briller dans les tests synthétiques multithread.

Dans les tests pratique, l'impact reste variable et l'on retrouve dans les applications multithreadées des gains qui restent approximativement identiques à ce que l'on pouvait voir sur la plateforme Ivy Bridge. Côté jeu où le profil des applications est plus proche du monothread, les gains sont par contre un peu plus élevés même si dans le cas le plus important, la mémoire la plus onéreuse que nous ayons testée apportera tout au plus un gain de performances de 15%.


Un gain qu'il faudra mettre en perspective avec le prix et de ce côté on peut tirer plusieurs conclusions. L'augmentation des prix des puces aura été significatif suite à l'incendie ayant eu lieu début septembre chez Hynix comme nous l'évoquions ici. Côté barrettes, les prix varient bien entendu d'une marque et d'un marchand à l'autre mais l'on retrouve les kits 2x4 Go de DDR3 1600 CL9 proches des 70 euros, chaque saut de mode coûtant environ une dizaine d'euros de plus même si, selon les timings, on pourra trouver des prix se chevauchant.

Autour de 100 euros, la mémoire DDR3-2400 CL9 peut représenter un choix intéressant même si ces kits sont relativement rares sur le marché. Des kits CL10 sont cependant disponibles pour un peu moins chers et pourront être une alternative intéressante pour ceux qui souhaitent vraiment investir dans de la mémoire rapide pour grappiller quelques pourcents de performances. Rappelons en effet que nous sommes ici sur une configuration haut de gamme, aussi bien côté processeur que carte graphique. Un surcoût d'une trentaine d'euros sur ce type de configuration pour obtenir de la mémoire plus rapide peut avoir du sens pour certains. Sur des configurations plus modestes, il sera plus difficile à justifier.

Même sur une configuration haut de gamme, les kits DDR3-2666 et supérieurs sont pour leur part peu recommandables. D'une part, quand on assiste pas à des pertes de performances les gains sont minimes, mais en plus les prix de ces mémoires sont significativement plus élevés, les derniers MHz étant toujours les plus chers payés ! On notera que les kits 2x4 Go DDR3-2666 ont un peu baissé depuis notre dernier tests, aux alentours de 130 euros tandis que l'on est plus proche des 300 pour les kits 2800 MHz. Mais dans l'un ou l'autre des cas, ils sont à éviter !


Copyright © 1997-2019 HardWare.fr. Tous droits réservés.