Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
878 connectés 

  FORUM HardWare.fr
  Hardware
  Mémoire

  Comment fonctionne le dual channel?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment fonctionne le dual channel?

n°10355921
redemption
Posté le 17-04-2018 à 22:02:07  profilanswer
 

Bonjour à tous.
je cherche à comprendre le fonctionnement des échanges entre le processeur et la mémoire vive en dual channel.
 
je sais qu'en dual channel (pour un système 64 bits), la bande passante est couplée pour être à 128 bits. par contre j'arrive pas à comprendre le mécanisme sachant que les registres du processeur sont en 64 bits.
 
C'est peut être peu clair ce que j'écris, j'espère pouvoir éclaircir en échangeant.
 
Merci par avance pour la culture que vous m'apporterez  :(

mood
Publicité
Posté le 17-04-2018 à 22:02:07  profilanswer
 

n°10355993
Nono0000
Posté le 18-04-2018 à 07:15:49  profilanswer
 

Salut,

 

Le fonctionnement n'est pas vraiment différent du mode single channel.
Comme tu l'as dit, on se retrouve avec 128 bit par ligne d'adresse ce qui théoriquement double la bande passante.

 

Après il faut bien voir que les données ne sont pas directement utilisées par le CPU. Il y a les caches entre les registres internes du CPU et la mémoire.
Même en octo channel à 2400mhz, la mémoire externe reste très lente.

 

Les caches (L1, L2, L3 voire L4) sont là pour compenser cette "faible" performance. En interne le CPU va récupérer à partir de la L1I (instructions 64b/ligne) et la L1D (data 64b/ligne) les données à placer dans ses registres et effectuer les calculs à partir de là.

 

Chaque donnée exécutée passe forcément par ces caches (en dehors de certains codes bien spécifiques) sur les configurations modernes.

 

Donc avoir une interface mémoire de 64b (single), 128b (dual), 256 (quad)... ne change pas vraiment le mapping interne du CPU.

 

Ceci peut t'amener à te renseigner sur le domaine très intéressant et complexe qu'est la "cohérence de cache" :)


Message édité par Nono0000 le 18-04-2018 à 08:40:27

---------------
CPU: 6950X 4.3Ghz (Uncore: 3.7Ghz) WC HM -- Mem: 4x8Go 3200Mhz 14-16-17-32-1T -- Mobo: Asus X99 Deluxe -- GPU: 4080 (GPU: 3015Mhz, VRAM: 12200Mhz) -- Carte Son: X-Fi Titanium Fatal1ty Professional -- SSD: M.2 PCIE XP941 -- Ecran: DELL AW3423DW QD-OLED
n°10356209
redemption
Posté le 18-04-2018 à 16:22:12  profilanswer
 

Donc, si on part d'un processeur Sigle core et mono thread. le processeur récupère 3 éléments (2 L1D + 1 L1I).
 
Si le processeur est à 3Ghz, et la RAM en dual 2,4Ghz (soit équivalent à 4,8Ghz à 64 bits). Ça veut dire que la bande passante apporte plus de données que le processeur ne peut traiter. c'est bien ça?
 
Si je poursuis, le dual channel devient alors intéressant pour le multi-core et multi-threading.


---------------
http://hai.tech.free.fr
n°10356237
Nono0000
Posté le 18-04-2018 à 17:28:12  profilanswer
 

Ton calcul sur la RAM est beaucoup trop simpliste. Il n'y a clairement pas un accès par période d'horloge ;)
La CAS, la RAS to CAS, RAS pre... et j'en passe, impacte énormément la vitesse des transferts:
http://www.pcstats.com/articleimages/CrucialDDR_timingsDDR.gif

 

Une vue plus complète:
https://upload.wikimedia.org/wikipedia/ja/thumb/c/ca/Ddr3_sdram_timing_spec_at_writing_jp.png/800px-Ddr3_sdram_timing_spec_at_writing_jp.png

 

De plus la mémoire DDR ne fonctionne réellement qu'avec une fréquence /2 par rapport à la valeur commerciale (valeur Double Data Rate)
https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/SDR_DDR_QDR.svg/401px-SDR_DDR_QDR.svg.png

 

Cela joue sur les commandes qui, il me semble, ne sont pas DDR...

 

Sur un CPU récent, je ne sais pas si l'ALU peut être saturée avec des données ne venant que de la RAM (uniquement des "cache misses" donc) même en dual channel.

 

Cela dit le multi-channel prend effectivement de l'importance si le nombre de cœurs augmente.
Mais il ne faut pas perdre de vu que plus il y a de cœurs, plus il peut y avoir un goulot d’étranglement au niveau du contrôleur mémoire car si le débit des accès est augmenté, le nombre d’accès maximum en parallèle reste le même...

 

Encore une fois les caches sont là pour limiter la casse...


Message édité par Nono0000 le 20-04-2018 à 10:58:22

---------------
CPU: 6950X 4.3Ghz (Uncore: 3.7Ghz) WC HM -- Mem: 4x8Go 3200Mhz 14-16-17-32-1T -- Mobo: Asus X99 Deluxe -- GPU: 4080 (GPU: 3015Mhz, VRAM: 12200Mhz) -- Carte Son: X-Fi Titanium Fatal1ty Professional -- SSD: M.2 PCIE XP941 -- Ecran: DELL AW3423DW QD-OLED
n°10356267
redemption
Posté le 18-04-2018 à 18:24:16  profilanswer
 

oui, avec La CAS, la RAS -> CAS, RAS on a un nombre de cycles d'horloge entre la commande et le retour de l'info. ce n'est donc pas immédiat.
 
Ca commence à s'éclaircir.
 
mais alors, si on veut 128 bits en single channel ca implique deux commandes vers la RAM au lieu d'une en dual channel?


---------------
http://hai.tech.free.fr
n°10356337
Nono0000
Posté le 18-04-2018 à 20:28:06  profilanswer
 

Il n'y a pas que de la latence. Un changement de page nécessite un temps d'attente par exemple, tout comme le rafraîchissement de la mémoire (très long). Il me semble aussi qu'après une écriture, il y a un temps d'attente avant de pouvoir faire une lecture...

 

Pour ce qui est des 128 bits en single channel. Ce n'est pas tout à fait ça, car il y a les bursts ;)
Donc une seule commande de lecture ou d'écriture va être envoyée et deux transferts de données vont être faits sur chaque front. C'est ce que l'on voit sur le premier diagramme.
Mais il faut effectivement deux fronts pour transférer 128b en single channel, alors qu'un seul est nécessaire en dual.


Message édité par Nono0000 le 18-04-2018 à 20:40:53

---------------
CPU: 6950X 4.3Ghz (Uncore: 3.7Ghz) WC HM -- Mem: 4x8Go 3200Mhz 14-16-17-32-1T -- Mobo: Asus X99 Deluxe -- GPU: 4080 (GPU: 3015Mhz, VRAM: 12200Mhz) -- Carte Son: X-Fi Titanium Fatal1ty Professional -- SSD: M.2 PCIE XP941 -- Ecran: DELL AW3423DW QD-OLED
n°10356534
redemption
Posté le 19-04-2018 à 10:44:40  profilanswer
 

ok d'acc, ca s'éclairci dans mon esprit.
merci d'avoir attisé ma curiosité. ;)


---------------
http://hai.tech.free.fr
n°10356576
Nono0000
Posté le 19-04-2018 à 11:45:29  profilanswer
 

De rien  :jap:  
N’hésite pas à regarder le fonctionnent des caches car cela est indissociable du système mémoire externe sur les implémentations actuelles ;)


---------------
CPU: 6950X 4.3Ghz (Uncore: 3.7Ghz) WC HM -- Mem: 4x8Go 3200Mhz 14-16-17-32-1T -- Mobo: Asus X99 Deluxe -- GPU: 4080 (GPU: 3015Mhz, VRAM: 12200Mhz) -- Carte Son: X-Fi Titanium Fatal1ty Professional -- SSD: M.2 PCIE XP941 -- Ecran: DELL AW3423DW QD-OLED
n°10356587
redemption
Posté le 19-04-2018 à 12:01:54  profilanswer
 

sur les mémoires cache je sais que la L3 > L2 > L1
Je sais aussi que la L1 est la mémoire la plus proche des registres et la plus rapide.
 
également que la mémoire L2 contient une copie de la L1 et que la L3 contient une copie de la L2 et L1.
 
;)


---------------
http://hai.tech.free.fr
n°10356589
Nono0000
Posté le 19-04-2018 à 12:06:17  profilanswer
 

Et le challenge est de maintenir tout ça cohérent quand deux (ou plus) threads travaillent sur les mêmes données. Le tout en minimisant l'impact sur les performances et donc les écritures et les lectures en mémoire externe :)


Message édité par Nono0000 le 19-04-2018 à 12:06:44

---------------
CPU: 6950X 4.3Ghz (Uncore: 3.7Ghz) WC HM -- Mem: 4x8Go 3200Mhz 14-16-17-32-1T -- Mobo: Asus X99 Deluxe -- GPU: 4080 (GPU: 3015Mhz, VRAM: 12200Mhz) -- Carte Son: X-Fi Titanium Fatal1ty Professional -- SSD: M.2 PCIE XP941 -- Ecran: DELL AW3423DW QD-OLED
mood
Publicité
Posté le 19-04-2018 à 12:06:17  profilanswer
 

n°10356813
redemption
Posté le 19-04-2018 à 18:22:18  profilanswer
 

oui c'est clair. sachant qu'un processeur monocore et multi-threadé à 2 fois plus de registres.
 
Mais au fait.
sachant que pour une opération on a besoin de 3 éléments de 64 bits (data, instruction, data)
en tout on récupère 192 bits
 
La première commande en dual channel renvoi 128b, ça veut dire que la deuxième commande ne récupère que 64b en laissant 64b vide?


---------------
http://hai.tech.free.fr
n°10356930
Nono0000
Posté le 19-04-2018 à 21:38:46  profilanswer
 

Sur x86 (ou x64), la plus petite valeur adressable en mémoire c'est l'octet (8 bit).
Que tu veuilles récupérer un, deux , trois... octets, le CPU récupèrera toujours la ligne complète et invalidera (masquera) les données dont il n'a pas besoin.
Les applications n'utilisent pas forcement 32bit ou 64bit de données pour leurs variables.
Il y a aussi la fragmentation de la mémoire qui fait que les données utiles ne sont pas nécessairement les unes après les autres... (même si l'OS veille à minimiser cela)

 

Dans ces cas c'est contre productif en effet :)
C'est pour ça que le dual channel ne donne pas forcement de meilleurs résultats suivant les applications...


Message édité par Nono0000 le 20-04-2018 à 07:17:47

---------------
CPU: 6950X 4.3Ghz (Uncore: 3.7Ghz) WC HM -- Mem: 4x8Go 3200Mhz 14-16-17-32-1T -- Mobo: Asus X99 Deluxe -- GPU: 4080 (GPU: 3015Mhz, VRAM: 12200Mhz) -- Carte Son: X-Fi Titanium Fatal1ty Professional -- SSD: M.2 PCIE XP941 -- Ecran: DELL AW3423DW QD-OLED

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Hardware
  Mémoire

  Comment fonctionne le dual channel?

 

Sujets relatifs
[RESOLU] Obligé redémarrer PC pour que carte réseau fonctionne Win10Comment fonctionne le HDMI IN
Dual channel MSI Z370P D3DDR4 3200 fonctionne seulement @3000 msi z270 carbon
Carte graphique qui ne fonctionne pa[RESOLU]msi b350 pc mate ne fonctionne qu'en mode table de bench
Ram de même fréquence, profile XMP fonctionne pasComment savoir si sa ram fonctionne en Dual Channel
dual channel fonctionne pascomment vérifier que la ram fonctionne bien en dual channel?
Plus de sujets relatifs à : Comment fonctionne le dual channel?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR