Quelle est la quantité maximale de RAM que je peux utiliser sur un matériel spécifique

26

J'ai un ordinateur portable Asus U31SD avec un processeur i5-2430M . Le site Asus dit que la RAM maximale est de 8 Go, mais Intel dit que mon processeur prend en charge 16 Go. Quelle est la RAM maximale que je peux utiliser sur ce système sous Ubuntu?

crond
la source
3
Pour résumer ce que tout le monde dit, votre ordinateur portable ne peut utiliser que 8 Go de RAM, en raison des limites de votre carte mère. Vous pouvez le vérifier en regardant cette question: askubuntu.com/questions/140322/…
reverendj1
à tout le monde, je voudrais souligner que la société de production de mémoire "corsair" a un localisateur de mémoire qui peut vous dire généralement quelle est la quantité maximale de RAM que votre système peut utiliser. Vous pouvez également aller lire les fiches techniques de votre modèle de système en les recherchant en ligne, il vous indiquera la RAM maximale que vous pouvez utiliser.
Thomas Ward
@Le Seigneur du Temps: un lien?
0xC0000022L
Corsair Memory Finder / Configurator pour le système référencé dans la question: www2.corsair.com/configurator/… || Corsair Memory Finder (page de démarrage): corsair.com/us/learn_n_explore (Ils feront de la publicité pour leurs produits, mais je peux l'utiliser comme base générale pour trouver des spécifications semi-précises pour max-memory
Thomas Ward

Réponses:

29

La limite se situe en fait entre votre matériel (prise en charge de la mémoire de la carte mère et quantité d'emplacements) et la version d'Ubuntu (32 bits, 32 bits + PAE, x32ABI, 64 bits)

Si vous avez une carte mère qui prend en charge un maximum de 4 Go, peu importe si vous utilisez 32 bits, 32 bits PAE ou 64 bits car vous aurez une limite matérielle de 4 Go.

Mais si vous achetez une carte mère qui prend en charge une plus grande quantité de mémoire, vous pouvez jouer avec les versions d'Ubuntu, qui ont la mémoire maximale prise en charge suivante:

Ubuntu 32 bits - 4 Go de RAM

Ubuntu 32 bits + PAE (extension d'adresse physique) - 64 Go de RAM

Ubuntu x32ABI - 4 Go de RAM (Il s'agit d'une architecture 32 bits modifiée avec des améliorations 64 bits fonctionnant sur du matériel 64 bits. Elle n'est pas encore disponible.)

Ubuntu 64 bits - BEAUCOUP! (En fait 2 ^ 64) mais en raison des limites matérielles et des ordinateurs du monde réel, la limite est d'environ 1 To (1024 Go de RAM)

La question de la limite de mémoire doit donc être utilisée lorsque vous utilisez plus de 4 Go de RAM. Dans ce cas, vous aurez besoin de 32 bits PAE ou 64 BIT qui prennent en charge de très grandes tailles de mémoire.

Notez également que si vous disposez par exemple de 4 Go en ce moment et que vous achetez 16 Go de RAM, il n'est pas nécessaire de réinstaller Ubuntu ou d'apporter des modifications. Changez simplement les souvenirs et Ubuntu devrait les lire et travailler avec eux dès la sortie de la boîte. Aucune configuration nécessaire. Si vous avez 32 bits avec 4 Go de RAM et que vous installez 16 Go ou RAM, Ubuntu passera automatiquement de 32 bits à 32 bits PAE. Je peux en témoigner puisque je suis passé de 4 Go à 16 Go au début de cette année.

Voici un lien vers une très bonne explication d'Ubuntu sur la mémoire en 32/64: https://help.ubuntu.com/community/32bit_and_64bit#Memory

MISE À JOUR - J'ai oublié d'ajouter que certaines cartes mères ont des mises à jour du BIOS qui permettent, corrigent ou améliorent la mémoire maximale prise en charge. Par exemple, certaines cartes mères Intel ont eu des problèmes dans le passé avec le maximum qu'elles prenaient en charge. Une mise à jour du BIOS a corrigé ce problème. D'autres cartes mères prenaient en charge 4 Go en raison d'un problème de BIOS, après la mise à niveau, elles prenaient en charge plus de 4 Go.

En comparant également la mémoire maximale prise en charge pour le CPU et la carte mère, le maximum que vous pouvez avoir est le minimum de chacun d'entre eux. Ainsi, par exemple:

CASE 1
CPU Mémoire maximale prise en charge - 16 Go
Carte mère Mémoire maximale prise en charge - 8 Go
Votre mémoire maximale prise en charge - 8 Go (Parce que c'est la valeur la plus faible entre le CPU et la carte mère)

CASE 2
CPU Maximum Supported Memory - 16GB
Motherboard Maximum Supported Memory - 32GB
Your Maximum Supported Memory - 16GB (Parce que c'est la valeur la plus faible entre le CPU et la carte mère)

CASE 3
CPU Mémoire maximale prise en charge - 16 Go
Carte mère Mémoire maximale prise en charge - 64 Go
Votre mémoire maximale prise en charge - 16 Go (Parce que c'est la valeur la plus faible entre le CPU et la carte mère)

La raison de cette relation de limite de mémoire avec le CPU est due aux modifications techniques d'Intel avec les derniers CPU Core.

Donc, dans votre cas, vous avez une carte mère qui prend en charge 8 Go et un processeur qui prend en charge 16 Go. Cela signifie que le maximum que vous pouvez avoir est de 8 Go que vous pouvez utiliser en fonction de la quantité d'emplacements de la carte mère. Dans cet Asus, vous avez 2 emplacements, ce qui signifie que vous pouvez avoir deux 4 Go de RAM pour compléter le maximum de 8 Go.

Plus d'informations sur x32abi:

KernelNewbies - http://kernelnewbies.org/Linux_3.4#head-039c9d273884c9639937c10d68b4a3214869eb4b

LWN - https://lwn.net/Articles/456731/ (Recommander des commentaires de lecture pour des explications faciles à apprendre sur la limite de mémoire)

Google - http://sites.google.com/site/x32abi/

Enfin, depuis Ubuntu 12.04, toutes les versions 32 bits d'Ubuntu sont livrées avec PAE activé par défaut, donc toutes les 32 bits prendront en charge un maximum de 64 Go de RAM. Dans le cas où vous utilisez 12.04+ et souhaitez savoir quelle architecture utiliser, vous savez maintenant que vous pouvez utiliser n'importe laquelle d'entre elles tant que vous suivez certaines recommandations:

  • Si vous avez 512 Mo de RAM ou moins, il est fortement recommandé d'utiliser 32 bits

  • Si vous avez moins de 4 Go de RAM mais plus de 512 Mo, il est recommandé d'utiliser 32 bits (mais vous pouvez toujours utiliser 64 bits)

  • Si vous avez 4 Go de RAM, il est recommandé d'utiliser 32 bits (mais vous pouvez toujours utiliser 64 bits)

  • Si vous avez entre 4 Go ou RAM et 64 Go de RAM, vous pouvez utiliser 32 bits ou 64 bits, mais il est recommandé d'utiliser 64 bits.

  • Si vous avez plus de 64 Go de RAM, vous devez utiliser 64 bits

Luis Alvarado
la source
Luis êtes-vous sûr de la limite de 4 Go en x32? Ce serait triste. J'ai lu dans un article (magazine allemand) que x32 supporte plus de 4 Go. Et qu'en est-il du PAE?
turbo
@turbo - C'est une très bonne question qui m'a pris du temps à trouver. Je réponds avec 4 Go à cause de cette partie de l'explication de "Qu'est-ce que x32abi?": X32 ABI permet d'exécuter des programmes en mode 64 bits avec des pointeurs 32 bits. Comme il fonctionne avec des pointeurs 32 bits, cela signifie que la mémoire maximale avec laquelle il peut réellement travailler est de 4 Go. Bien sûr, je ne sais pas s'il existe un mode PAE x32abi, mais comme c'est un moyen d'exécuter des programmes 32 bits pour profiter de certains des avantages du 64 bits sans utiliser le double de RAM pour les tâches, j'ai conclu qu'il était limité à 32 bits. à 4 Go de RAM.
Luis Alvarado
1
En fait, la limite pour 64 bits est de 2 ^ 48 octets, et x32 est le même, juste limité à 4 Go par processus , pour les processus x32. x32 exécute un noyau 64 bits, il peut donc exécuter certains programmes 64 bits complets, mais x32 construit la plupart des programmes pour n'utiliser que 32 bits.
psusi
6

Pour 32 bits, la limite théorique est de 2 ^ 32 = 4096 Mo, mais à partir d'Ubuntu 12.04, le PAE (extension d'adresse physique) est activé par défaut avec une limite de 2 ^ 36 = 64 Go.

Pour 64 bits, cela devrait être 2 ^ 64 = 16 777 216 To (oui c'est Terabyte) théoriquement. En réalité, la quantité de RAM est limitée à 2 ^ 48 alias 256 To de RAM.

Étant donné que les limites théoriques ne peuvent pas vraiment être atteintes dans un ordinateur portable normal, la limitation réelle est la quantité d'emplacements de mémoire (normalement 1-2) dans votre ordinateur portable et la prise en charge par le chipset. 8-16 Go est réaliste ici si vous êtes prêt à payer de l'argent pour des modules de 8 Go.

turbo
la source
Je peux donc acheter en toute sécurité des modules 2x 8 Go et m'attendre à ce qu'ils fonctionnent? (J'utilise 64 bits, actuellement avec 8 Go de RAM)
crond
Eh bien en toute sécurité ...; P D'autres ordinateurs portables avec les puces Intel HM65 Express prennent en charge 16 Go (Asus G74SX-TZ293V) alors oui.
turbo
6

Je viens d'acheter un 8 Go supplémentaire à insérer dans mon U31SD, pour un total de 12 Go. Malgré la page de spécifications d'Asus indiquant que 8 Go est la limite, cela fonctionne bien. Passé memtest86 et est visible pour Ubuntu 64 bits.

J'ai installé la dernière mise à jour du bios, je ne sais pas si cela fait une différence.

Pour info, la sortie de sudo dmidecode -t 16indique Maximum Capacity: 16 GB.

user77303
la source
1

C'est une restriction sur la carte mère et non sur le CPU. Le processeur peut prendre en charge jusqu'à 16 Go, mais si la carte mère ne peut prendre que 8 Go, c'est votre limite.

Dans Ubuntu, si vous utilisez 32 bits, votre limite est de 4 Go et si vous exécutez 64 bits, c'est beaucoup plus élevé (je ne m'en souviens pas avec certitude, mais c'est bien au-dessus de 16 Go.

Mais vous serez toujours limité par votre matériel. Vous devez toujours comparer la limite de la carte mère et la limite du processeur et prendre la valeur la plus basse comme limite du PC.

Jacob Tomlinson
la source
0

Dans votre cas spécifique, 8 Go sont dus au fait que votre carte mère ne prend pas en charge plus que cette quantité de RAM.

Mais Ubuntu lui-même prend en charge 4 Go max pour 32 bits, 64 Go sur PAE 32 bits et 128 Go sur 64 bits (bien que théoriquement le plafond soit beaucoup plus élevé pour 64 bits).

MuffinStateWide
la source
0

il y avait beaucoup de questions qui déterminent la taille d'un pointeur. fondamentalement, en règle générale, vous pouvez dire que c'est l'architecture du processeur,

x86 -> 4 bytes pointer -> can address 4,294,967,296 locations = 4GB (it is the limit)

x64 -> 8 bytes pointer -> can address 1.84467440737e+19 locations (it is the limit, big, eh)

Pour adresser 8 Go de RAM, vous avez besoin de 8 589 934 592 mappages et un pointeur de taille 4 octets ne peut pas traiter toutes les valeurs possibles. c'est pourquoi je ne peux pas avoir plus de 4 Go de RAM sur l'architecture x86.

Il existe cependant d'autres possibilités:

La quantité de RAM n'est pas limitée par l'architecture (32 ou 64 bits). L'architecture ne décide que de la quantité de mémoire pouvant être traitée à la fois, par le système d'exploitation et les programmes qui y sont exécutés. Sur une machine 32 bits, c'est-à-dire une machine avec un bus mémoire large de 32 bits, le système d'exploitation et les programmes ne peuvent "voir" que 4 Go de mémoire. Mais cela ne signifie pas qu'il n'y a que 4 Go de RAM. Si le constructeur l'a prévu, vous pouvez disposer de 16 Go ou 4x4 Go de RAM. Dans ce cas, il y aura 2 autres lignes d'adresse "cachées" et il y aurait également une logique codée en dur pour décider des niveaux de ces 2 lignes, sélectionnant ainsi l'une des 4 Go de RAM disponibles - 00 01 10 11. Ces bits d'adresse "cachés" ne sont pas utilisés par les couches logicielles, donc pour ces couches, ils ne peuvent utiliser qu'un pointeur de 4 octets. Le nombre de ces "cachés"

Ce n'est qu'un exemple. Cela dépend du fournisseur, de la façon dont il décide de fournir la RAM supplémentaire.

voir également:

Dans le cas habituel, un pointeur est suffisamment grand pour contenir plus d'adresses qu'il n'y a d'unités de mémoire dans le système. Cela introduit la possibilité qu'un programme puisse tenter d'accéder à une adresse qui ne correspond à aucune unité de mémoire, soit parce que la mémoire est insuffisante (c'est-à-dire au-delà de la plage de mémoire disponible) soit que l'architecture ne prend pas en charge ces adresses. Le premier cas peut, dans certaines plates-formes telles que l'architecture Intel x86, être appelé un défaut de segmentation (segfault). Le deuxième cas est possible dans l'implémentation actuelle d'AMD64, où les pointeurs ont une longueur de 64 bits et les adresses ne s'étendent qu'à 48 bits. Là, les pointeurs doivent se conformer à certaines règles (adresses canoniques), donc si un pointeur non canonique est déréférencé, le processeur soulève une erreur de protection générale.

D'un autre côté, certains systèmes ont plus d'unités de mémoire qu'il n'y a d'adresses. Dans ce cas, un schéma plus complexe tel que la segmentation de la mémoire ou la pagination est utilisé pour utiliser différentes parties de la mémoire à différents moments. Les dernières incarnations de l'architecture x86 prennent en charge jusqu'à 36 bits d'adresses de mémoire physique, qui ont été mappées à l'espace d'adressage linéaire 32 bits via le mécanisme de pagination PAE. Ainsi, seulement 1/16 de la mémoire totale possible est accessible à la fois. Un autre exemple dans la même famille d'ordinateurs était le mode protégé 16 bits du processeur 80286, qui, bien que ne prenant en charge que 16 Mo de mémoire physique, pouvait accéder à 1 Go de mémoire virtuelle, mais la combinaison d'une adresse et d'un segment 16 bits les registres rendaient l'accès à plus de 64 Ko dans une structure de données encombrant.

Afin de fournir une interface cohérente, certaines architectures fournissent des E / S mappées en mémoire, qui permettent à certaines adresses de faire référence à des unités de mémoire tandis que d'autres se réfèrent à des registres de périphériques d'autres périphériques de l'ordinateur. Il existe des concepts analogues tels que les décalages de fichiers, les indices de tableau et les références d'objets distants qui remplissent les mêmes fonctions que les adresses pour d'autres types d'objets.

(plus ici )

4pie0
la source