Quelle est la quantité maximale de RAM qu'une machine 64 bits peut théoriquement traiter?

21

Je lis mon livre d'architecture d'ordinateur et je vois que dans un processeur x86 32 bits, le compteur de programme est 32 bits.

Ainsi, le nombre d'octets qu'il peut adresser est de 2 ^ 32 octets, ou 4 Go. Il est donc logique pour moi que la plupart des machines 32 bits limitent la quantité de RAM à 4 Go (en ignorant PAE).

Ai-je raison de penser qu'une machine 64 bits pourrait théoriquement traiter 2 ^ 64 octets, ou 16 exaoctets de RAM?!

KingNestor
la source
4
Notez qu'aucun processeur x86 64 bits existant ne peut réellement le faire. Leurs caches n'ont pas assez de bits de balises, leurs bus d'adresses n'ont pas assez de largeur, etc. 46 bits (8 To) est le nombre maximal de processeurs x86 modernes.
David Schwartz
4
Théoriquement, il n'y a pas de limite. Même les CPU 32 bits peuvent avoir un espace d'adressage supérieur à 4 Gio. Cela dépend de la manière dont le système de gestion de la mémoire est implémenté dans le matériel , qui est généralement indépendant de la longueur de mot de la CPU. Les pointeurs dans les programmes ont toujours une longueur de mot, mais ce sont toujours des adresses virtuelles (et non physiques), de sorte qu'ils sont ensuite mappés dans un espace d'adressage différent.
Percée le
C'est une vieille question avec d'anciennes réponses, mais je sens que les réponses les plus citées à cette question sont très trompeuses et qu'elles sont des réponses à combien de RAM une machine avec une adresse de bus d'adresses de 64 bits pourrait-elle occuper . Comme David et Breakthrough l'ont souligné ci-dessus, le "bitness" d'une architecture reflète la taille des registres primaires et non la taille du bus d'adresses.
Sebi
Pourquoi voudriez-vous ignorer PAE?
Jamie Hanrahan

Réponses:

28

Théoriquement: 16,8 millions de téraoctets. En pratique: le boîtier de votre ordinateur est un peu trop petit pour contenir toute la mémoire vive.

http://en.wikipedia.org/wiki/64-bit#Limitations_of_practical_processors

Matt Ball
la source
13
Trop petit .... aujourd'hui !!!!
Snicker
2
16,777216 millions de tebibytes. Si vous voulez être précis.
totymedli
J'ai lu dans d'autres sources qu'un processeur ne peut pas utiliser chaque bit pour accéder à la mémoire, cela est-il pris en compte dans votre réponse?
Andreï
17

Pour compléter la réponse de Matt Ball, le plus gros stick de RAM que je puisse trouver sur un détaillant en ligne est de 32 Go. Il en faudrait 32 pour atteindre 1 téraoctet. À environ un demi-pouce par bâton, cela nous amène à un espace consacré de 16 pouces sur votre carte mère pour un téraoctet de bélier commercial. Pour atteindre 16,8 millions de téraoctets, il faudrait une carte mère de 4 242,42 milles. La distance entre LA et NYC est d’environ 2141 milles, donc la carte mère s’étendrait à travers le pays et vice-versa pour accueillir autant de mémoire vive.

Clairement, cela n’est pas pratique.

Que diriez-vous de ne pas mettre notre RAM en rangée comme sur la plupart des cartes mères, mais plutôt de les placer côte à côte. Je veux dire que le bâtonnet de bélier a en moyenne six pouces de long. Par conséquent, si nous accordons un demi-pouce pour la largeur, vous pouvez obtenir une unité carrée de 12 bâtonnets de bélier dans un carré de 6 pouces. Appelons ce carré une tuile RAM. Une tuile de RAM contient alors 384 Go de RAM. Il faudrait 44,8 millions de tuiles pour atteindre les 16,8 millions de téraoctets requis sur des tuiles de 384 Go. Soyons en désordre et utilisons la racine carrée de ce mot pour conclure que celui-ci ira dans un carré de 6693 par 6694 dalles, ils n'avaient pas déjà assez à se plaindre.

Conrad.Dean
la source
2
Trop grand. Pourquoi les déposez-vous à plat? Vous pouvez obtenir tout cela dans un cube de 100 pieds. Vous aurez probablement besoin d'azote liquide pour le garder au frais, cependant!
Loren Pechtel
1
la quantité d'azote gazeux qui bouillirait poserait un risque pour la sécurité des habitants de Seattle
Conrad.Dean
Une correction possible. Puisqu'une tuile mesure 6 "sur 6", la zone ne devrait-elle pas atteindre 3346,5 sur 3347 pieds (la moitié du nombre de tuiles) au lieu des 13 386 cités, qui représentent le double du nombre de tuiles. En outre, un autre problème que personne ne semble avoir mentionné. Supposons la meilleure disposition: un cercle, le rayon devra être d'environ 1 890 pieds pour délimiter la zone requise. Comme Adm, Grace Hopper l'a fait remarquer, la latence de transmission sur le cuivre est d'environ une nanoseconde / pied. Cela signifie que la latence aller-retour vers l'anneau externe sera d'environ 3,78 microsecondes. C'est un peu lent pour la mémoire principale. IMEHO.
Dgnuff
4

Effectivement, oui - les processus pourraient, en théorie, traiter 2 ^ 64 octets de mémoire. Mais comme vous l'avez souligné, il existe des solutions pour contourner cette limite.

Adam Wright
la source
3

Il n'y a pas de relation fixe particulière entre la taille en bits d'un processeur et la quantité de mémoire adressable. La plupart des machines 8 bits de la fin des années 1970 pouvaient facilement accéder directement à 65 536 octets, tandis que les 8088 et 8086 16 bits pouvaient accéder directement à 1 048 576 octets. De plus, il est possible d'ajouter du matériel pour permettre aux machines d'accéder indirectement à n'importe quelle quantité de RAM. de nombreuses machines équipées de processeurs 8 bits avaient 128 K ou plus, et les unités d'extension de mémoire pour les ordinateurs basés sur 8088 pouvaient accéder à plus de 16 mégohms. Bien que Microsoft n'ait activé cette fonctionnalité que dans les versions "serveur" de Windows, il était possible pour un code 32 bits d'accéder à la mémoire au-delà de la marque 4GiB en utilisant des approches similaires.

supercat
la source
2

Vous auriez raison. Vous pouvez adresser jusqu'à 16 exaoctets de RAM. Maintenant .. si le système d'exploitation peut gérer ce serait une autre question ....


la source
2

Il serait également bon de noter que le système d'exploitation a sa propre limitation en matière de mémoire dans une architecture 64 bits.

Par exemple, voir ce que wikipedia sais sur Windows Vista 64:

Toutes les versions 64 bits des systèmes d'exploitation Microsoft imposent actuellement une limite de 16 To sur l'espace d'adressage. Les processus créés sur les éditions 64 bits de Windows Vista peuvent avoir 8 To en mémoire virtuelle pour les processus utilisateur et 8 To pour les processus du noyau afin de créer une mémoire virtuelle de 16 To. [29] En termes de mémoire physique, Windows Vista 64 bits Basic prend en charge jusqu'à 8 Go de RAM, Windows Vista 64 bits Édition Familiale Premium prend en charge jusqu'à 16 Go de RAM et Windows Vista 64 bits Professionnel / Entreprise / Ultime prend en charge jusqu'à 128 Go. de RAM. [8]

Decasteljau
la source
1

Le plus gros avantage des 64 bits n’est pas la RAM qu’elle peut traiter, mais tout le reste. Vous pouvez définir une adresse pour chaque octet sur un disque, par exemple, et l'augmentation de la capacité du disque ne l'invalidera pas avant des décennies.

Mark Ransom
la source
Bien sûr, étant donné que cet espace d’adresse est limité artificiellement par les CPU actuelles, il ne faudra peut-être que dix ans avant qu’il n’y ait plus assez de bits pour traiter chaque octet sur un disque. Espérons que, à ce stade, les limites auront été relevées, à mesure que progresseront les disques SSD, faire apparaître un disque entier, car une partie de la mémoire pourrait améliorer considérablement les performances. Cela ne me dérangerait pas de brancher un SSD dans un emplacement pour RAM au lieu d'un câble SATA!
Malvineous
@ Malvineous Je parlais de quelque chose de plus fondamental, même si vous vous limitez à 63 bits, vous pouvez vous adresser directement à 9223372 To. Et les disques SSD dans un emplacement de mémoire RAM existent déjà, voir Sandisk .
Mark Ransom
Je n'étais pas en désaccord avec vous, je venais de souligner qu'avec la technologie actuelle, ce que vous suggérez a des limites artificielles (par exemple, seuls 48 ou 51 bits de l'adresse sont transmis au bus physique). Si ces barrettes DIMM-SSD sont détectées, nous risquons de manquer d'adresses de mémoire plus tôt que vous ne le suggérez, à moins que ces limites artificielles ne puissent être augmentées ou supprimées. Je conviens que si les 64 bits complets étaient disponibles, il faudrait des décennies avant que cela ne devienne un problème.
Malvineous
Pour mémoire, j’ai examiné le lien SanDisk UlltraDIMM, mais malheureusement, ce n’est techniquement pas SSD en tant que RAM. Il s’agit d’un SSD SATA à 6 Gbit / s, avec un adaptateur DDR3 vers SATA permettant d’y accéder comme si c’était de la mémoire. La conversion supplémentaire des demandes de mémoire dans le protocole SATA introduit une certaine latence et semble un peu brouillon. Espérons que quelqu'un en verra les bénéfices et publiera bientôt une véritable interface de mémoire pour flasher sans aucun adaptateur inutile entre les deux!
Malvineous
0

La plupart des processeurs actuels imposent une limite artificielle à la taille de leur adresse. Par exemple, l'architecture AMD64 limite la mémoire physique à 52 bits et ne prend actuellement en charge qu'un espace d'adressage virtuel à 48 bits. (Via Wikipedia). Cependant, physiquement, environ 16,4 millions de téraoctets sont possibles.


la source
-1

pour une réponse physique réaliste de 1536 Go avec 48 cartes RAM exécutant des bâtons simples de 32 Go et 4x xeons lga2011

c’est pour le pc esayiste que quelqu'un peut acheter sans enfreindre les secrets hardcore cachés pense que theres 64gb simples stics apporte à .... 3072gb 128gb soit 6144gb 256gb soit 12288gb

il suffit de jeter un œil sur les moyens de contourner les limitations d'OS avec RAM si les OS ne peuvent voir que 4 Go de mémoire vive, transformez le reste en lecteur RAM et utilisez le lecteur RAM en tant que fichier d'échange XD XD XD XD système une telle chose similaire a été faite dans les premiers jours de dos / windows 3.11 etc.

et il peut y avoir d'autres petits trucs pour contourner les limites du processeur

engins que nous pouvons voir isnt wats là-bas il y a beaucoup plus de choses puissantes j'ai eu un pc de 98 en cours d'exécution 8 processeurs et quelque chose comme 32 Go de RAM, mais c'est cher cher fin serveurs

je regarde dans les serveurs comme ordinateurs de bureau parce que je suis malade des ordinateurs pour le public XD

Weazel
la source