web-dev-qa-db-fra.com

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

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

25
crond

La limite est en fait entre votre matériel (support mémoire de la carte mère et le nombre d'emplacements disponibles) et la version d'Ubuntu (32 bits, 32 bits + PAE, x32ABI, 64 bits)

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

Mais si vous achetez une carte mère prenant en charge une quantité de mémoire supérieure, vous pouvez jouer avec les versions d'Ubuntu, qui disposent de 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 RAM (architecture 32 bits modifiée avec des améliorations 64 bits s'exécutant sur du matériel 64 bits. Ce n'est pas encore disponible.)

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

Donc, la question sur la limite de mémoire doit ê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 avez par exemple 4 Go à l'heure actuelle et que vous achetez 16 Go de RAM, il n'est pas nécessaire de réinstaller Ubuntu ni de faire de changements. Il suffit de changer les souvenirs et Ubuntu devrait lire et travailler avec eux hors de la boîte. Aucune configuration nécessaire. Si vous avez 32 bits avec 4 Go RAM et que vous installez 16 Go ou RAM, Ubuntu passera automatiquement de PAE 32 bits à PAE 32 bits. 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 pour Ubuntu sur la mémoire en 32/64: https://help.ubuntu.com/community/32bit_and_64bit#Memory

UPDATE - Nous avons oublié d'ajouter que certaines cartes mères disposent de mises à jour du BIOS permettant d'activer, de corriger ou d'améliorer la mémoire maximale prise en charge. Par exemple, certaines cartes mères Intel ont eu des problèmes avec le maximum qu'elles supportaient. Une mise à jour du BIOS a résolu ce problème. D'autres cartes mères supportaient 4 Go en raison d'un problème de BIOS. Après la mise à niveau, elles avaient un support supérieur à 4 Go.

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

CAS 1
Mémoire CPU maximale prise en charge - 16 Go
Mémoire maximum prise en charge par la carte mère - 8 Go
Votre mémoire maximale prise en charge - 8 Go (car il s'agit de la valeur la plus basse entre le processeur et la carte mère)

CAS 2
Mémoire CPU maximale prise en charge - 16 Go
Mémoire maximum prise en charge par la carte mère - 32 Go
Votre mémoire maximale prise en charge - 16 Go (car il s'agit de la valeur la plus basse entre le processeur et la carte mère)

CAS 3
Mémoire CPU maximale prise en charge - 16 Go
Mémoire maximum prise en charge par la carte mère - 64 Go
Votre mémoire maximale prise en charge - 16 Go (car il s'agit de la valeur la plus basse entre le processeur et la carte mère)

Cette relation entre la limite de mémoire et le processeur s'explique par les modifications techniques apportées par Intel aux derniers processeurs 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 du nombre d'emplacements sur la carte mère. Dans cet Asus, vous avez 2 slots, ce qui signifie que vous pouvez avoir deux 4 Go de RAM pour compléter le maximum de 8 Go.

Plus d'infos sur x32abi:

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

LWN - https://lwn.net/Articles/456731/ (Recommander des commentaires de lecture pour faciliter l'explication des explications à propos de 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, de sorte que toutes les versions 32 bits prennent en charge un maximum de 64 Go de RAM. Si vous utilisez la version 12.04+ et souhaitez connaître l’architecture à utiliser, vous savez maintenant que vous pouvez en utiliser une à condition de suivre les recommandations suivantes:

  • Si vous avez 512 Mo de RAM ou moins, il est vivement recommandé d'utiliser la technologie 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 disposez de plus de 64 Go de RAM, vous devez utiliser le mode 64 bits.

29
Luis Alvarado

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

Pour 64 bits, il devrait être 2 ^ 64 = 16 777 216 TB (oui, il s'agit d'un téraoctet). En réalité, la quantité de RAM est limitée à 2 ^ 48, soit 256 TB de RAM.

Étant donné que les limites théoriques ne peuvent pas vraiment être atteintes dans un ordinateur portable normal, la limite réelle est le nombre de fentes de mémoire (normalement 1-2) dans votre ordinateur et le support fourni par le chipset. 8-16 Go est réaliste ici si vous êtes prêt à débourser beaucoup d'argent pour des modules de 8 Go.

6
turbo

Je viens d'acheter 8 Go supplémentaires dans mon U31SD, pour un total de 12 Go. Bien que la page de spécification Asus indiquant 8 Go soit la limite, cela fonctionne bien. Memtest86 a passé et est visible pour Ubuntu 64 bits.

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

Pour votre information, la sortie de Sudo dmidecode -t 16 indique Maximum Capacity: 16 GB.

5
user77303

C'est une restriction sur la carte mère et non sur le processeur. 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.

Sous Ubuntu, si vous utilisez 32 bits, votre limite est de 4 Go. Si vous utilisez 64 bits, elle est beaucoup plus élevée (je ne m'en souviens pas avec certitude, mais elle dépasse largement 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.

1
Jacob Tomlinson

Dans votre cas particulier, 8 Go sont dus au fait que votre carte mère ne supporte pas plus que cette quantité de RAM.

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

0
MuffinStateWide

il y avait beaucoup de questions ce qui détermine 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 traiter 8 Go de RAM, vous avez besoin de 8 589 934 592 mappages et d'un pointeur de taille 4 octets ne pouvant pas traiter toutes les valeurs possibles. c'est pourquoi je ne peux pas avoir plus de 4 Go RAM sur une architecture x86.

Il y a cependant d'autres possibilités:

La quantité de RAM n'est pas limitée par l'architecture (32 ou 64 bits). L'architecture décide uniquement de la quantité de mémoire pouvant être adressé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 de mémoire large 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 fabricant l’a prévu, vous pouvez disposer de 16 Go ou de 4x4 Go de RAM. Dans ce cas, il y aura 2 autres lignes d'adresse "cachées" et une logique codée en dur pour déterminer les 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. Par conséquent, pour ces couches, elles ne peuvent utiliser qu'un pointeur à 4 octets. Le nombre de lignes d’adresses "cachées" détermine la quantité de mémoire RAM que vous pouvez étendre.

Ceci n'est qu'un exemple. Cela dépend du vendeur, de la manière dont il décide de fournir de 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 tente d’accéder à une adresse qui ne correspond à aucune unité de mémoire, soit parce qu’il n’ya pas assez de mémoire installée (c’est-à-dire au-delà de la plage de mémoire disponible), soit que l’architecture ne prend pas en charge de telles adresses. Le premier cas peut, sur certaines plates-formes, telle que l’architecture Intel x86, être appelé faute de segmentation (segfault). Le second cas est possible dans l’implémentation actuelle de AMD64, où les pointeurs ont une longueur de 64 bits et les adresses ne dépassent que 48 bits. Là, les pointeurs doivent se conformer à certaines règles (adresses canoniques). Ainsi, si un pointeur non canonique est déréférencé, le processeur lève une erreur de protection générale.

D'autre part, 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 sur l'espace d'adresses linéaire à 32 bits via le mécanisme de pagination PAE. Ainsi, seulement 1/16 de la mémoire totale possible peut être accédé à la fois. Un autre exemple de la même famille d’ordinateurs est le mode protégé 16 bits du processeur 80286, qui, bien que ne prenant en charge que 16 Mio de mémoire physique, pouvait accéder à 1 GiB de mémoire virtuelle, mais la combinaison de Les registres d’adresses et de segments 16 bits ont rendu l’accès à plus de 64 Ko dans une structure de données fastidieuse. Certaines restrictions de l'arithmétique de pointeur ANSI pourraient être dues aux modèles de mémoire segmentée de cette famille de processeurs. [La citation nécessaire]

Afin de fournir une interface cohérente, certaines architectures fournissent des E/S mappées en mémoire, ce qui permet à certaines adresses de faire référence à des unités de mémoire, tandis que d'autres font référence à 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 index de tableaux et les références d'objets distants, qui servent aux mêmes objectifs que les adresses d'autres types d'objets.

(plus ici )

0
4pie0