36 votes

Combien de mémoire peut adresser une machine 64 bits à la fois?

Si la mémoire est adressable par octets, ne devrait-elle pas être

2^64 / (2^10 * 2^10 * 2^10) = 2^34 Go ?

Une recherche générale sur Google indique un maximum de 8 Go ou 16 Go.

Comment est-ce possible ? De plus, comment cela dépend-il du système d'exploitation ?

65voto

Helper Points 1

Il existe plusieurs facteurs qui s'entrelacent.

Tout d'abord, vous ne pouvez actuellement pas assembler un système ayant 264 octets (16 exioctets) de RAM physique.

Deuxièmement, le simple fait qu'une architecture utilise des pointeurs 64 bits ne signifie pas que tous les bits de ces pointeurs sont réellement utilisés. Notamment, les processeurs x86-64 actuels (également connus sous le nom de AMD64 et les puces 64 bits actuelles d'Intel) utilisent en fait des lignes d'adresse de 48 bits (AMD64) et 42 bits (Intel) (voir http://fr.wikipedia.org/wiki/X86_64#Détails_de_l'espace_d'adressage_virtuel ), permettant théoriquement de supporter 256 téraoctets de RAM physique.

Deuxièmement, les cartes mères ont leurs propres limites en termes de quantité de RAM qu'elles peuvent prendre en charge, à la fois physiquement et logiquement. Physiquement, il n'y aura que tant d'emplacements disponibles pour la RAM. Pour ce qui est des limites "logiques", je ne comprends toujours pas pourquoi c'est encore le cas pour le x86-64 (le contrôleur mémoire ayant depuis longtemps été intégré dans le CPU lui-même), mais c'est comme ça. Apparemment, des compromises sont faits sur les lignes d'adresse pour économiser quelques dollars dans la conception et la fabrication.

Troisièmement, un système d'exploitation peut avoir des limitations internes quant à la quantité de RAM qu'il peut prendre en charge efficacement. En partie, cela vise en fait à éviter de nécessiter des structures de données excessivement grandes pour suivre l'utilisation de mémoire qui n'existe pas vraiment. La dernière fois que j'ai vérifié, Linux autorise 128 To d'espace d'adresse virtuelle par processus sur x86-64, et peut théoriquement prendre en charge 64 To de RAM physique.

Quatrièmement, certains systèmes d'exploitation (par exemple Windows) limiteront artificiellement la quantité de RAM pouvant être utilisée comme tactique pour inciter les utilisateurs à passer à des versions plus chères s'ils veulent plus de RAM (Windows 7 Starter est limité à 2 Go, Home Basic à 8, Home Premium à 16, et Professional et supérieurs à 192 Go, et les versions Windows Server ont des limites beaucoup plus élevées).

10voto

Michael J Points 201

Si vous utilisez MS Windows, la mémoire maximale est limitée par le système d'exploitation.

Pour Windows 7, les limites sont :

  • Starter : 2 Go
  • Home Basic : 8 Go
  • Home Premium : 16 Go
  • Professional : 192 Go
  • Entreprise : 192 Go
  • Ultimate : 192 Go

Windows Server 2008 varie de 8 Go pour l'entrée de gamme à 2 To pour le haut de gamme.

Consultez http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx pour une liste presque complète.

Ces limites sont principalement à des fins marketing. En restreignant les versions moins chères, ils rendent les versions haut de gamme plus attrayantes (comparativement).

Je pense que les versions récentes de Linux fonctionnent avec environ 32 To de RAM, bien que tout le matériel ne puisse pas le supporter.

8voto

Martijn Laarman Points 111

Une machine 64 bits devrait pouvoir adresser jusqu'à 264 unités adressables (dans les architectures conçues au cours des dernières décennies, les unités adressables sont invariablement des octets). Si vous définissez un "gigaoctet" comme étant 230 unités adressables, alors oui, 234 gigaoctets seraient une autre façon d'exprimer le même nombre.

Quelle recherche Google a donné ces résultats ridiculement minuscules? Peut-être que la page que vous avez trouvée parlait des quantités de RAM que vous pouvez acheter dans des boîtes relativement bon marché d'un certain modèle - vous pouvez certainement avoir beaucoup plus de RAM (toute adressable, bien sûr) même dans des boîtes qui sont loin d'être très coûteuses.

Les systèmes d'exploitation peuvent et restreignent définitivement la quantité de mémoire adressable (par exemple, ils peuvent le faire en limitant la taille des tables de pages, peut-être à un maximum configurable qui peut être défini par recompilation ou autre reconfiguration du système d'exploitation - il est difficile d'être plus spécifique sans se concentrer sur un groupe spécifique de systèmes d'exploitation).

3voto

ThinkBIG Points 31

Vous pouvez avoir autant de RAM que vous le souhaitez, mais tout dépend du système d'exploitation et de l'application que vous utilisez - comme quelqu'un d'autre l'a dit.

Si vous exécutez une application intensive en termes de CPU qui est également exigeante pour d'autres composants matériels comme votre disque dur, alors vous devriez sérieusement envisager un deuxième CPU, sur une machine complètement séparée. Par exemple, exécuter une application de base de données et un serveur de messagerie sur des machines séparées.

Peu importe la quantité de mémoire que vous avez - sur le marché d'aujourd'hui, l'ensemble du système va ralentir. Les CPU simples ne peuvent tout simplement pas gérer le multitâche comme vous le souhaiteriez.

Pour une seule machine avec beaucoup de mémoire, c'est mieux mais pas brillant si vous avez plusieurs applications fonctionnant sur le même système - peu importe la quantité de mémoire installée. C'est précisément pour cette raison que les grandes entreprises utilisent non seulement une architecture 64 bits pour accéder à plus de mémoire mais équilibrent également la charge avec deux serveurs ou plus.

Si vous êtes vraiment sérieux en matière de performances, alors optez définitivement pour du 64 bits mais, envisagez également l'équilibrage des charges avec un deuxième serveur.

J'ai parcouru cette voie - configurant une seule machine avec la RAM maximale. Pourtant, lorsque vous exécutez plusieurs applications, cela rame toujours. C'est parce que le CPU lui-même peine à gérer cela.

Mon conseil est d'économiser votre argent sur la mémoire et d'acheter un deuxième serveur pour ensuite équilibrer les charges entre les deux. C'est beaucoup plus simple et, une fois que vous maîtrisez le concept, il est facile d'agrandir lorsque vous avez besoin de plus de puissance de traitement et de vitesse.

De plus, une machine en architecture 64 bits peut gérer les logiciels en 32 bits, mais avec une machine en 32 bits, vous êtes limité aux applications en 32 bits ou moins - y compris le système d'exploitation.

Puisque tout le marché passe au 64 bits en termes de matériel et de logiciel, je vous conseille de vous orienter vers du 64 bits à long terme, mais oubliez l'idée de tout regrouper sur une seule machine avec une tonne de mémoire, car vous serez déçu.

Si vous n'êtes pas sûr de ce que signifie "l'équilibrage des charges", alors recherchez-le sur Google.

2voto

Je pense qu'il peut prendre plus qu'un exaoctet "EB".

Regardez ce processeur 32 bits peut prendre 232 B = 4 Go, mais au maximum il peut prendre 3 Go "parce qu'ils sont 1 Go pour les adresses inversées".

Cela signifie que le processeur 64 bits peut prendre 264 B = 16 EB, mais je ne peux pas dire combien d'adresses sont réservées pour une utilisation inversée. donc on peut dire que le processeur 64 bits prend plus d'1 EB. et cette spécification ne dépend pas de l'OS utilisé sur le PC ou de son modèle.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X