web-dev-qa-db-fra.com

Les applications du monde réel seront-elles déjà besoin d'un espace d'adresses plat de 128 bits?

C'est un peu "un mégaoctet devrait suffire à quiconque", mais ...

Un espace d'adressage plat de 64 bits permet d'accueillir jusqu'à 4,3% un milliard de fois qu'un espace d'adressage 32 bits. C'est 17 179 869,184 GIB.

Évidemment, la transition de 8 bits à 16 bits était assez rapide (je vois des choses à une manière adolescente - pendant les années 80, ignorant toutes ces matromes et minis, car ils ne pouvaient pas courir un port d'élite). La transition de 16 bits à 32 bits a pris un peu plus longue et 32 ​​bits ont effectivement duré un peu de temps.

Maintenant, nous avons 64 bits, serait-il stupide de dire "17 179 869,184 GiB devrait suffire à quiconque"?

Ceci est une question de programmeurs parce que j'ai vraiment le point de vue de la programmation à l'esprit. Même si un ordinateur un jour a une quantité apparemment infinie de mémoire de travail, cela ne signifie pas que les applications devront voir un espace d'adressage plat apparemment infini.

Fondamentalement, pouvons-nous faire respirer un soupir de soulagement et dire "bien, quels que soient les entiers ou les flotteurs, au moins, je n'ai plus à m'inquiéter de mes indicateurs de plus en plus?".

32
Steve314

Je ne pense pas que nous allons avoir des machines avec plus de 2 ^ 64 octets de RAM dans un avenir prévisible, mais ce n'est pas tout ce que l'espace d'adressage est utile pour.

À des fins étrangères, il est utile de cartographier d'autres choses dans l'espace d'adressage, les fichiers étant un exemple important. Donc, est-il raisonnable d'avoir plus de 2 ^ 64 octets de tout type de stockage attaché à un ordinateur dans un avenir prévisible?

Je devrais dire oui. Il doit y avoir bien plus de 2 ^ 64 octets de stockage, car ce n'est que 17 millions de personnes avec des disques durs du téraoctet. Nous avons eu plusieurs bases de données de Pétabyte pendant quelques années maintenant et 2 ^ 64 est qu'environ 17 000 pétatabytes.

Je pense que nous sommes susceptibles d'avoir une utilisation pour un espace d'adressage> 2 ^ 64 au cours des prochaines décennies.

27
David Thornley

À moins que les ordinateurs ne commencent à utiliser certaines technologies de pause qui n'existent pas encore même dans des laboratoires, ayant plus de 264 L'espace adressable est juste pas physiquement possible avec la technologie de silicium actuelle. La technologie frappe les limites physiques. La limite de vitesse (GHz) a été frappée il y a déjà quelques années. La limite de miniaturisation est également très proche. Actuellement, la technologie la plus avancée de la production est de 20 nm, dans Labs, il est 4nm avec des transistors composés de 7 atomes.

Juste pour la mettre en perspective depuis combien de temps il faut pour la nouvelle technologie: les ordinateurs actuels sont basés sur des transistors inventés en 1925 et la technologie de silicium actuelle remonte à 1954.


En ce qui concerne les technologies alternatives:

  • calcul optique - pourrait donner une augmentation de la vitesse de calcul, mais ne résout pas un problème de miniaturisation pour le stockage;
  • Computing quantique - À utiliser pleinement, il faudra un nouveau paradigme de programmation, afin que les pointeurs soient de 64 à 128 bits, c'est le moins de vos soucis. Les mêmes limitations physiques sur la miniaturisation s'appliquent également à cette technologie;
  • Computing ADN - Ce sont des jouets de la preuve de concept, conçus pour résoudre une classe de problèmes particulière. Pas réalisable pour une utilisation réelle de la vie. Pour obtenir des calculs qui sur un PC normal seraient effectués en une seconde, prendraient l'ADN-réservoir d'une taille de l'océan Pacifique et de quelques milliers d'années. En tant que processus naturel, biologique, il n'ya aucun moyen de miniaturiser ni de rapidité.
16
vartec

Eh bien, nous pourrions absolument utiliser un grand espace d'adressage.

Imagine ça:

  1. L'espace d'adressage n'est pas limité à un seul ordinateur. Au lieu de cela, une adresse identifie de manière unique une cellule de mémoire dans un espace d'adresses universel. Vous pouvez donc avoir un pointeur sur une cellule de mémoire sur n'importe quel ordinateur du monde. Il devra exister un protocole pour permettre la lecture de la mémoire distante, mais c'est un détail de mise en œuvre. :-)

  2. La mémoire est écrite une fois, lisez beaucoup, c'est-à-dire que vous ne pouvez écrire que des données à une adresse mémoire une fois. Pour une valeur mutable, vous devrez attribuer une nouvelle pièce de mémoire chaque fois qu'elle change. Nous avons commencé à voir les avantages de l'immutabilité et de la mémoire transactionnelle, donc une conception matérielle qui ne permet pas même à des écrasements de mémoire peut ne pas être une idée aussi impossible.

Combinez ces deux idées et vous aurez besoin d'un énorme espace d'adresse.

8
Martin Vilcans

Les ordinateurs plus capables deviennent des problèmes plus complexes qu'ils sont demandés de travailler avec.

Le plus grand supercalculateur indiqué sur Top500.org est http://www.top500.org/system/10587 avec environ 220 tb RAM et 180000 cœurs. En d'autres termes C'est ce que "applications de vie réelles" peut fonctionner sur cette plate-forme.

Les ordinateurs d'aujourd'hui sont aussi puissants que les supercalculateurs il y a 10 à 15 ans (même si la puissance de calcul peut être cachée dans votre carte graphique).

Ainsi, un facteur 100 en mémoire en 10-15 ans signifie que l'espace d'adressage 64 bits sera un facteur limitant dans environ 100 ans (car le journal (100 millions)/journal (100) est d'environ 6) si la tendance actuelle tienne.

7
user1249

Tout ce thread est assez drôle de lire, d'une opinion très forte pour et contre ...

Ici quelque chose ..

Je comprends de la question que c'était la technologie agnostique et non liée par le temps. Ainsi, le développement actuel en silicium, ordinateurs quantiques ou au colportage infini du colporteur de singe est en vigueur sans importance.

Les calculs et les extrapolations sont également assez drôles, bien que la réponse des back2dos fonctionne assez bien pour illustrer la taille de ce que ce nombre représente. Alors travaillons avec ça.

Mettez votre esprit dans le futur où l'homme n'est plus lié à la limite de sa petite planète, un moyen de transport réaliste a été mis au point pour permettre le transport sur de très grandes distances et que les structures sociales (économiques, politiques, etc.) ont évolué pour transcender des générations. Les projets pharaoniques couvrant sont devenus des endroits courants. Concentrons-nous sur deux aspects de cette vision extrêmement extraite de l'avenir, mais si l'on souhaite passer au fil de temps pour expliquer tous les détails, je suis tout à fait certain que l'on pourrait rationaliser tout cela à travers une série d'évolutions plausibles sur les technologies actuelles. En d'autres termes, un avenir plausible, peu probable, peu probable ... de toute façon ...

Le premier projet appelé Colossus à la mémoire de ce premier ordinateur électronique tel qu'il est le premier ordinateur planétaire. Le Colossus Brotherhood a effectivement compris un moyen de capturer une petite planètetiole et de le transformer en ordinateur de travail. Récemment découvert dans la ceinture Kuyper qui est intéressante dans des isotopes fusibles, ce qui rend énergiquement autonome, ils ont fait le processus de construction complètement autonome avec des sondes, des robots, etc., rend le système informatique auto-réparateur et de soi-même. Dans cette condition, il serait concevable que 2 ^ 64 Les espaces d'adresses soient quelque peu confinés pour ce projet car ils souhaitent obtenir un espace d'adressage continu pour facilement les applications portuaires déjà existantes pour un autre projet également sous-trajet.

L'autre projet est davantage une expérience de réseautage qu'un système physique, mais il a rapidement démontré que des espaces d'adresses plus importants étaient nécessaires. Il y a 540 ans, un jeune pirate informatique jouait avec l'idée de créer un gigantesque Bot Net. Internet était déjà élargi pour inclure les colonies naissantes autour du bâtiment du système solaire sur des avancées majeures faites dans le pouvoir de fusion. Ses idées étaient fondamentalement pour que peu de bots se propagent autour du réseau, mais la charge utile était destinée à fournir une machine virtuelle unifiée dans laquelle le code serait écrit en supposant qu'il y avait tout le pouvoir de tous les robots combinés. De gros efforts ont été placés dans le compilateur et le déploiement tentant d'optimiser les retards et les algorithmes sophistiqués conçus pour tenir compte de la non-fiabilité inhérente du support sous-jacent. Une langue a été spécifiquement écrite pour cibler ce nouveau "ordinateur" qui mettait l'accent sur la concurrence. Il a fallu de nombreuses années pour découvrir ce botnet car il n'a jamais livré aucune attaque, notre pirate informatique a créé à la place une entreprise de parapluie et vend la puissance informatique au plus offrant. Quand il est mort, il a fait don de ce botnet et de toutes les technologies à une fondation. À ce moment-là, le Botnet avait déjà fonctionné depuis 64 ans et avait déjà dépassé l'espace d'adressage 2 ^ 64, il y a de nombreuses fois, il y a de nombreuses années de préconception de 1000 ans que nous n'aurions jamais besoin d'un espace d'adressage plus important. De nos jours, 2 ^ 128 est la norme et ce qui sera utilisé pour Colossus, mais il est déjà prévu d'étendre ceci à 2 ^ 256.

Je pourrais probablement trouver plus de scénarios quasi plausibles qui illustrent que oui ... il est tout à fait possible, non certain, presque certain, qu'un jour, nous aurons besoin d'un espace de discours plus grand que cela.

Cela dit, cependant, je ne pense pas que je perdrais dormir sur ceci, si votre application nécessite un certain espace d'adresse pour fonctionner correctement, il sera probablement plus probable dans un VM qui lui donne tout besoin. ..

Ainsi ... Réponse courte ...

oui, très probablement

mais

Pourquoi ne pas traiter cela lorsque le problème vient ... Personnellement, je ne fais jamais d'hypothèses dans mes programmes ne reçoivent donc jamais des surprises.

6
Newtopian

Les emplacements d'adresse ont un coût logarithmique en ce qui concerne la largeur de l'adresse afin que nous puissions envisager les limites supérieures en fonction des paramètres en question:

64 bits pour les particules de sable sur Terre = 7.5x10 ^ 18
[.____] 128-bit pour les étoiles dans un univers observable = 10 ^ 24
[.____] 256 bits pour les particules de Terre = 10 ^ 50
[.____] 512 bits pour les particules dans l'univers observable = 10 ^ 82
[.____] 1024-bit pour les longueurs de planches cubes dans un univers observable = 4,65 × 10 ^ 185

  • Le SMARSITY introduit pour la hachage, la sécurité et l'indexation

6.6106 ... × 10 ^ 122-bit pour des configurations de particules possibles dans l'univers observable = 10 ^ (10 ^ 122)

Nous pourrions assumer les configurations possibles comme la limite supérieure de la plus grande adresse de mémoire constructible physiquement possible.

2
Timothy Swan

C'est l'espace d'adressage. Disons que nous changeons la standard C afin que realloc ne soit autorisé à changer le pointeur utilisé. Je peux allouer des blocs de mémoire 2 ^ 33 aujourd'hui (nécessiterait 192 Go de RAM sur My Mac, 8 milliards de fois 8 points d'octet et 16 octets alloués, donc je ne peux donc pas le faire maintenant, Mais je pourrais acheter un Mac qui peut le faire sans sortir d'une nouvelle hypothèque).

Et je peux réaffecter à l'un de ces pointeurs pour tenir 2 ^ 33 octets. Pas beaucoup en même temps :-) Si Realloc n'autorise pas les pointeurs en mouvement, et 2 ^ 33 octets sont autorisés, les pointeurs d'origine doivent être 2 ^ 33 octets, ce qui signifie 2 ^ 66 octets de mémoire sont nécessaires.

0
gnasher729

Que se passerait-il si chaque emplacement de mémoire avait une adresse globalement unique?

  • Les protocoles de réseau pourraient devenir beaucoup plus simples.
  • Les objets distribués seraient intéressants - Tous les objets peuvent exister dans le même espace mémoire.
  • Peut-être que nous passions à des mémoires "écrire une fois" et incluions le temps dans le cadre de la structure d'adresse. Vous pouvez lire des objets existants dans le passé.
  • Tous les stockages secondaires seraient directement adressables. Goodbye FILE, fopen(), etc.
  • Vous pourriez être arrêté pour écrire à un mauvais pointeur et bloquez la machine de quelqu'un d'autre.
  • Les étudiants devraient devoir être criblés avant de prendre leur première classe CS: très peu de personnes peuvent résister à la Vortex total de perspective .
0
Caleb

Oui, il y aura. (Jeux? Des choses artificielles liées au renseignement?)

Une question plus appropriée pourrait être une question de savoir si elle comptera dans le programmeur typique. Pensez à Comment Ruby convertit automatiquement les nombres de fixnum en Bignum et de retour si nécessaire. Je serais surpris si d'autres langues (au moins les dynamiques) ne font pas la même chose.

0
Denis de Bernardy

Stocker cette quantité d'informations est une chose et faire quelque chose d'utile avec c'est une autre. De mon point de vue, je ne vois pas besoin de ce stockage que si nous avons le pouvoir de traitement de l'utilisation. La mise en cache peut-être d'énormes bases de données est une chose mais pour le traitement numérique, je pense que nous avons besoin d'abord des processeurs.

0
Gus

Les applications aura-t-elle déjà besoin de beaucoup de mémoire? Tout à fait possible. Les applications telles que les prévisions météorologiques, les simulations physiques en général ou la cryptographie bénéficieront probablement toujours de plus de mémoire et de plus de puissance de traitement. Et qui sait ce que l'application Killer dans 50-100 ans sera? Affichages holographiques? Tables arc-en-ciel pour tout mot de passe possible de 100 caractères?

Est-il physiquement possible de représenter que beaucoup de mémoire? Certainement possible. Par exemple, un ordinateur quantique de 100 qubit peut représenter le même nombre d'états qu'un ordinateur classique 2 ^ 100 bits. Way Plus que les 2 ^ 67 bits d'espace d'adresses que nous avons maintenant. (Je sais qu'un ordinateur quantique de 100 qubit ressemble à la science-fiction. Je ne suis pas convaincu que ce sera jamais possible de en entraîner un. Mais d'autre part, on pourrait probablement dire que toute technologie sera utilisée 50 ou 100 ans à partir de maintenant.)

Mais je doute sérieusement que "les espaces d'adresses plats" seront l'inquiétude principale d'ici là. Peut-être que nous développerons ensuite des algorithmes quantiques, où le concept d'un "espace d'adressage" n'a pas beaucoup de sens. Même si les ordinateurs restent "classiques", nous devrons probablement traiter un nombre effrayant d'unités de traitement avec une mémoire non uniforme qui leur est attachée.

0
nikie

Juste "penser à voix haute" ici, mais cela vient de me venger que l'on puisse faire des choses sémantiques intéressantes avec les 64 bits restants sur A, disons, 128 bits ordinateurs. Cf. la façon dont IP fonctionne.

Je suis sûr que les gens pourraient trouver des utilisations amusantes pour quelque chose comme ça. :) Tout le monde sache ce que le PS3 utilise ses adresses 128 bits? Vous ne perdrez sûrement pas tout ce souvenir supplémentaire (et je parle de la mémoire pour les adresses réelles, pas ce que ces adresses indiquent). Adresses comme des données. Vous pouvez même encoder une succursale dans l'adresse elle-même ... I.e., 0x [SIADDDRESS] [ELSeADDRESS] Les systèmes multicœurs peuvent également bénéficier de ce type de segmentation. Et et...

0
veryfoolish

Y a-t-il une raison d'aller au-dessus de l'architecture 64 bits? (18 446 744,073 709 551,615 octets de mémoire adressable)

En utilisant la norme IEEE 1541-2002 concernant l'utilisation de préfixes pour des multiples binaires d'unités de mesure liées à l'électronique numérique et à l'informatique, nous voyons que:

1 octet = 8 bits, 1 kilobyte = 1024 octets, 1 mégaoctet = 1024 kb, 1 gigaoctet = 1024 mb, 1 téraabyte = 1024 gb, 1 Petabyte = 1024 To, 1 exabyte = 1024 pb

Et ainsi de suite pour Zettatabyte, Yottabyte, Xenottabyte, Shilentnobyte, Domegemettebyte, Icetbyte et Monoiicosebyte.

Le stockage total de la terre de la Terre est estimé à environ 2 500 exsabytes à partir de 2016.

Un registre 64 bits peut accéder directement à 15 exsabytes de mémoire. Un registre 128 bits peut accéder directement à 3,40282367 × 10 ^ 35 Zettatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatabytes. Ou 295,147 905,247 928 000 monoiiquoses.

Nous pouvons donc voir qu'un registre de 128 bits serait une bonne position pour accéder à toute la mémoire Terre, tout jamais envoyé sur Internet, chaque mot jamais parlé ou écrit, chaque film, et bien plus encore, pendant un certain temps à venir .

La réponse est donc oui, en attente d'un cadre qui peut indiquer toute chose numérique qui ait jamais été ou sera jamais .

0
Sean Vikoren

La meilleure estimation que je puisse trouver pour le nombre de neurones dans un cerveau humain moyen est d'environ 86 milliards. Nous ne pouvons pas comparer directement RAM à Neurones en général mais dans un réseau de neurones, vous pouvez trouver un certain nombre d'adresses pour représenter l'état du neurone ou une synapse. Donc ' ll jeter un cul sauvage-deviner et dire que nous examinons quelque chose comme une trillion d'adresses pour créer un réseau de neurones qui serait comparable à un cerveau humain. Donc, si cela peut être fait, je ne vois pas pourquoi ça ne serait pas Ne va pas beaucoup plus loin que cela. Les types de problèmes qu'un tel réseau pourrait être capable de contempler serait au-delà de nos capacités de comprendre, ainsi que pourquoi ils auraient besoin d'être si gros pour le faire.

0
JimmyJames