L'inclusion de deux processeurs augmente-t-elle la mémoire RAM maximale?

16

Si E3-1285 v6 prend en charge un maximum de 64 Go de RAM, l'utilisation d'une carte mère à double socket augmente-t-elle la mémoire maximale? Je suppose que non, mais j'aimerais en connaître la raison. Ma logique dit que si la RAM est partagée, les deux processeurs devraient être capables d'adresser toute la RAM disponible et donc, elle sera également limitée à 64 Go. Une explication technique à cela?

kankamuso
la source

Réponses:

32

Dans les CPU modernes, le contrôleur de mémoire est intégré directement dans le CPU, alors que dans le passé la mémoire était accessible par le CPU via un système de bus. Le système de bus avait l'avantage que l'accès à la mémoire était uniforme, ce qui est toujours le cas dans les CPU à socket unique.
Maintenant, en entrant dans les systèmes à double socket, chaque CPU a une mémoire locale dédiée et la mémoire de l'autre CPU est accessible indirectement via QPI qui est en termes simples un lien entre les deux CPU. C'est ce qu'on appelle NUMA (accès mémoire non uniforme).

Eh bien, mettre les choses ensemble. Si vous avez un deuxième processeur, vous pouvez augmenter la quantité totale de mémoire de votre système, mais vous avez également besoin d'un processeur capable de fonctionner en mode double processeur. IIRC la série E3 n'est pas compatible avec deux prises, E5 est compatible avec deux prises et E7 avec quatre prises.

Thomas
la source
Merci beaucoup pour votre explication claire. Mes études en informatique sont en retard sur les progrès du marché en architecture informatique. Un gars m'a dit d'essayer de construire un système Xeon avec GPU intégré (pour les moyens openCL) et 128 Go ... et c'est tout simplement impossible :-(.
kankamuso
4
Vous pouvez le faire, vous avez juste besoin d'un processeur avec des contrôleurs de mémoire pour adresser plus de mémoire. Les machines Xeon E5 ont 4 canaux de mémoire et vous pouvez installer jusqu'à 8 modules de 32 Go chacun par CPU.
Andreas Rogge
Ceci est parfois écrit de manière cryptique en tant que 1S uniquement .
chrylis -on strike-
1
@kankamuso Un GPU discret peut cependant être très utile.
JAB
2
@kankamuso Un GPU Intel intégré ne sera pas utile pour OpenCL. Vous obtiendrez de meilleures performances même avec un GPU discret d'entrée de gamme.
duskwuff
10

Tout d'abord, le E3-1285v6 ne prend pas en charge le multi-socket, donc pour augmenter le nombre de CPU dans le système, vous aurez besoin d'un CPU différent.

Alors que les processeurs AMD et Intel en mode long utilisent des pointeurs 64 bits, les processeurs disponibles aujourd'hui sont limités à 48 bits. Ainsi, il est possible d'adresser jusqu'à 256 To de mémoire et chaque CPU compatible x86_64 peut traiter cette quantité de mémoire.

Cependant, il existe une autre limitation: le contrôleur de mémoire intégré à la CPU. Ce contrôleur de mémoire a un nombre limité de canaux (dans le cas de votre CPU: 2), ce qui signifie qu'il peut communiquer avec deux modules de mémoire simultanément. Les canaux peuvent alterner entre plusieurs modules (généralement 2), vous pouvez donc généralement connecter deux modules par canal, ce qui correspond à 4 modules dans votre cas.

Si vous avez une carte multi-socket avec plusieurs processeurs installés, vous aurez un contrôleur de mémoire par processeur, donc à la fin vous doublez la mémoire physique installable (qui n'est pas vraiment liée à la mémoire adressable) en installant un deuxième processeur.

Andreas Rogge
la source
Merci beaucoup aussi!. Explication très intéressante pour moi.
kankamuso
8
48 bits est la limite d'espace d'adressage virtuel, pas physique. C'est gênant pour le noyau, mais il est possible de prendre en charge plus de mémoire physique que ce qui peut être mappé dans un espace d'adressage virtuel plat (nous l'avons eu avec 32 bits + PAE pendant un certain temps). Le format de table de pages x86-64 prend déjà en charge les adresses physiques jusqu'à 52 bits , bien que les CPU réels prennent en charge moins. Les détails du contrôleur de mémoire sont généralement importants ici, pas seulement la largeur interne de l'adr. Physique.
Peter Cordes
@PeterCordes: otoh plusieurs processeurs n'ont pas toutes les lignes d'adresse implémentées, comme le E5-1620v3 sur lequel j'exécute actuellement, qui prend en charge l'adresse physique 46 bits.
PlasmaHH
1

Si E3-1285 v6 prend en charge un maximum de 64 Go de RAM, l'utilisation d'une carte mère à double socket augmente-t-elle la mémoire maximale?

Oui, l'utilisation de plusieurs processeurs augmente la mémoire maximale, mais votre processeur ne prend pas en charge les cartes mères à plusieurs sockets.

Un gars m'a dit d'essayer de construire un système Xeon avec GPU intégré (pour les moyens openCL) et 128 Go ... et c'est tout simplement impossible :-(

En effet, les parties bas de gamme (socket 115x) ont la possibilité de GPU intégrés (probablement parce qu'elles sont dérivées des mêmes conceptions de base que les parties de bureau traditionnelles) mais elles n'ont pas de support multi-socket et elles ont un contrôleur de mémoire qui ne prend en charge que quatre modules (deux canaux avec deux modules chacun) de mémoire non enregistrée. Avec la technologie actuelle qui vous limite à 64 Go.

Les parties supérieures ont de meilleurs contrôleurs de mémoire avec plus de canaux et la prise en charge de types de mémoire qui permettent des modules plus nombreux et plus grands par canal (512 Go par socket est faisable) et dans certains cas, la prise en charge des configurations multi-socket, mais ils ne disposent pas des GPU intégrés.

Peter Green
la source