Si la mémoire est adressable en octets, ne devrait-elle pas être
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
Une recherche générale sur Google indique 8 Go ou 16 Go max.
Comment est-ce vrai? En outre, comment cela dépend-il du système d'exploitation?
Si la mémoire est adressable en octets, ne devrait-elle pas être
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
Une recherche générale sur Google indique 8 Go ou 16 Go max.
Comment est-ce vrai? En outre, comment cela dépend-il du système d'exploitation?
Réponses:
Il existe de multiples facteurs d'entrelacement.
Tout d'abord, vous ne pourrez jamais, jamais assembler un système qui a 2 64 octets (16 exibytes) de RAM physique.
Deuxièmement, ce n'est pas parce qu'une architecture utilise des pointeurs 64 bits que tous les bits de ces pointeurs sont réellement utilisés. Notamment, les processeurs x86-64 actuels (alias AMD64 et les puces 64 bits actuelles d'Intel) utilisent en fait des lignes d'adresse 48 bits (AMD64) et des lignes d'adresse 42 bits (Intel) (voir http://en.wikipedia.org/wiki / X86_64 # Virtual_address_space_details ), permettant théoriquement 256 téraoctets de RAM physique.
Deuxièmement, les cartes mères ont leurs propres limites quant à la 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. En ce qui concerne les limites "logiques", je ne comprends pas vraiment pourquoi c'est toujours le cas pour x86-64 (le contrôleur de mémoire ayant depuis longtemps migré dans le CPU lui-même), mais il est là. Vraisemblablement, les coins sont coupés 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 limites internes quant à la quantité de RAM qu'il peut prendre en charge efficacement. Cela vise en partie à éviter d'avoir besoin de structures de données trop grandes pour garder une trace de l'utilisation de la mémoire qui n'est pas vraiment là. Dernière vérification, Linux autorise 128 To d'espace d'adressage virtuel 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 obliger les utilisateurs à passer à des versions plus chères s'ils souhaitent plus de RAM (Windows 7 Starter est limité à 2 Go, Home Basic à 8, Home Premium à 16, et Professional et supérieur à 192 Go, et les versions de Windows Server ont des limites beaucoup plus élevées).
Si vous utilisez MS Windows, la mémoire maximale est limitée par le système d'exploitation.
Pour Windows 7, les maximums sont:
Windows Server 2008 varie de 8 Go pour le niveau d'entrée à 2 To pour le haut de gamme.
Voir http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx pour une liste complète.
Ces limites sont principalement pour des raisons de marketing. En restreignant les versions moins chères, ils rendent les versions haut de gamme (comparativement) plus attrayantes.
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.
Une machine 64 bits devrait être capable d'adresser jusqu'à 2 64 unités adressables (dans les architectures conçues au cours des dernières décennies, les unités adressables sont invariablement des octets, aussi appelés octets). Si vous définissez un "gigaoctet" comme 2 30 unités adressables, alors oui, 2 34 gigaoctets seraient une autre façon d'exprimer le même nombre.
Quelle recherche Google a produit ces minuscules résultats ridicules? Peut-être que la page que vous avez trouvée parlait des quantités de RAM que vous pouvez acheter dans des boîtes raisonnablement bon marché d'un certain modèle - vous pouvez certainement avoir beaucoup plus de RAM (toutes adressables, bien sûr) même dans des boîtes qui sont loin d'être très coûteuses .
Les systèmes d'exploitation peuvent très certainement et limitent 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 en recompilant ou en reconfigurant le système d'exploitation - il est difficile de être plus précis sans se concentrer sur un groupe spécifique d'OS).
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 exécutez - comme quelqu'un d'autre l'a déclaré.
Si vous exécutez une application gourmande en ressources processeur, également gourmande en matériel, comme votre disque dur, vous devriez sérieusement envisager un deuxième processeur, 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 distinctes.
Peu importe la quantité de mémoire dont vous disposez - sur le marché actuel, l'ensemble du système s'arrêtera. Les processeurs simples ne peuvent tout simplement pas gérer le multitâche comme vous vous y attendez.
Pour une seule machine avec beaucoup de mémoire, c'est mieux mais pas si brillant si vous avez plusieurs applications exécutées sur le même système, quelle que soit la quantité de mémoire installée. C'est la raison même pour laquelle les grandes entreprises utilisent non seulement une architecture 64 bits pour adresser plus de mémoire, mais elles équilibrent également la charge de l'ensemble avec deux serveurs ou plus.
Si vous êtes vraiment sérieux au sujet des performances, passez définitivement au 64 bits, mais pensez également à l'équilibrage de charge avec un deuxième serveur.
J'ai été sur cette voie - configurer une seule machine avec un maximum de RAM. Pourtant, lors de l'exécution de plusieurs applications, il fonctionne toujours comme un chien. C'est parce que le CPU lui-même ne peut tout simplement pas le gérer.
Mon conseil est d'économiser de l'argent sur la mémoire et d'acheter un deuxième serveur, puis d'équilibrer la charge des deux. C'est beaucoup plus simple et en plus - une fois que vous maîtrisez la situation - il est facile de s'étendre lorsque vous avez besoin de plus de puissance et de vitesse de traitement.
En outre, une machine d'architecture 64 bits peut gérer un logiciel 32 bits, mais avec une machine 32 bits, vous êtes limité à seulement des applications 32 bits ou moins, y compris le système d'exploitation.
Étant donné que l'ensemble du marché passe au 64 bits en termes de matériel et de logiciels, je conseillerais de passer au 64 bits à long terme, mais oubliez l'idée de tout écraser sur une seule machine avec des charges de mémoire seau car vous serez déçu.
Si vous n'êtes pas certain de ce qu'est l'équilibrage de charge, recherchez-le sur Google.
Je pense que cela peut prendre plus d'un exaoctet "EB".
Regardez ce processeur 32 bits peut prendre 2 32 B = 4 Go, mais au plus il faut 3 Go "car ils sont 1 Go pour les adresses inversées"
Cela signifie que le processeur 64 bits peut prendre 2 64 B = 16 EB, mais je ne sais pas comment les adresses verrouillées pour inversées sont utilisées. nous pouvons donc dire que le processeur 64 bits prend plus de 1 EB. et cette spécification ne dépend pas de l'OS utilisé par le PC ni de son modèle.
En prenant un processeur Intel ou AMD comme exemple, il existe plusieurs limitations à la fois à la mémoire physique et à la mémoire virtuelle. D'autres personnes ont parlé du brochage du matériel et des limitations de la carte mère, mais il y a aussi des limitations internes.
Une entrée de table de page de terminal dans la MMU contient 52 bits significatifs d'adresse physique et peut théoriquement mapper jusqu'à 4096 To de RAM physique.
La MMU implémente une table de pages à 4 niveaux dont le niveau supérieur se compose de 512 × 512 Go d'entrées. La mémoire virtuelle est donc limitée à 256 To.
Pour autant que je sache, tous les systèmes d'exploitation 64 bits implémentent un DMAP (une carte directe), ce qui est super pratique. Cependant, comme la mémoire virtuelle est limitée à 256 To, la taille du DMAP est également limitée. En général, 128 To sont réservés au mode utilisateur et 128 To au noyau. Sur ces 128 To pour le noyau, jusqu'à la moitié peut être réservée au DMAP. En raison de l'utilité du DMAP, les systèmes d'exploitation limiteront généralement la mémoire physique à ce que le DMAP peut gérer.
Ainsi, la plupart (tous?) Des systèmes d'exploitation 64 bits pour Intel / AMD, la mémoire physique prise en charge est limitée à environ 64 To, laissant 64 To pour la mémoire virtuelle générale du noyau et 128 To pour la mémoire virtuelle des utilisateurs.
-
En interne à la CPU, les caches de CPU ont également une limitation du nombre de bits d'adresse physique qu'ils stockent, car chaque bit d'adresse supplémentaire mange plus de transistors vers la balise de cache. Les limitations des broches du contrôleur DRAM ne sont pas nécessairement le dernier mot, car la mémoire peut également être adressée via des liaisons DMI.
Différentes architectures de processeur (par exemple, ARM, PowerPC, etc.) auront des limitations différentes.