Les applications du monde réel auront-elles jamais besoin d'un espace d'adressage plat de 128 bits?


32

C'est un peu "un mégaoctet devrait être suffisant pour n'importe qui", mais ...

Un espace d'adressage plat de 64 bits permet jusqu'à 4,3 milliards de fois d'espace en plus qu'un espace d'adressage 32 bits. Cela représente 17 179 869 184 Gio.

De toute évidence, la transition de 8 bits à 16 bits a été assez rapide (je regarde les choses à l'adolescence dans les années 80, en ignorant tous ces mainframes et minis car ils ne pouvaient pas exécuter un port d'Elite). La transition de 16 bits à 32 bits a pris un peu plus de temps, et 32 ​​bits ont en fait duré un certain temps.

Maintenant que nous avons 64 bits, serait-il stupide de dire "17 179 869 184 GiB devraient être suffisants pour n'importe qui"?

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

Fondamentalement, pouvons-nous, les programmeurs, pousser un soupir de soulagement et dire "eh bien, quels que soient les nombres entiers ou flottants, au moins je n'ai plus à me soucier de la croissance de mes pointeurs?".


11
Combien de données le LHC génère-t-il chaque jour?
Peter Taylor

7
Les processeurs 8 bits avaient en fait un espace d'adressage 16 bits - d'où la "transition rapide" :-)
Neil Butterworth

1
Pour fournir un certain contexte, un espace d'adressage de 128 bits fournit à peu près autant d'adresses qu'il y a d'étoiles dans l'univers observable ou la moitié des atomes de notre galaxie (à quelques ordres de grandeur près).
Rein Henrichs

5
@Rein: En d'autres termes, pas assez. Comment pouvons-nous simuler un univers avec pas assez d'adresses de mémoire pour même la moitié des atomes dans notre propre galaxie. amiright
quentin-starin

7
Je pense que cela peut être répondu assez facilement; Star Trek Holodeck. Assez dit.
Dunk

Réponses:


27

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

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

Je dois dire oui. Il doit y avoir bien plus de 2 ^ 64 octets de stockage, car cela ne représente qu'environ 17 millions de personnes avec des disques durs de téraoctets. Nous avons des bases de données de plusieurs pétaoctets depuis quelques années maintenant, et 2 ^ 64 n'est que d'environ 17 000 pétaoctets.

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


4
Cela me fait penser à un adressage plat pour adresser n'importe quel octet de stockage disponible sur Internet. Je pense avoir entendu parler des systèmes d'exploitation qui fournissent un adressage plat de tout le stockage sur le système (pas besoin de mapper des fichiers en mémoire - ils sont déjà là). Faire une adresse IP dans une partie de votre adresse mémoire aura certainement besoin de plus de 64 bits - IPv6 a déjà besoin de 128 bits juste pour l'adresse. Il y aurait une énorme redondance dans l'espace d'adressage, mais cela pourrait tout de même avoir un sens.
Steve314

2
Oui. Cela simplifierait la vie si vous mappiez tous vos lecteurs et fichiers dans l'espace d'adressage. Une quantité énorme de code concernant la manipulation de fichiers sur le disque serait beaucoup plus simple si vous aviez simplement un pointeur sur le fichier entier. Un segment: l'architecture offset serait idéale pour ce genre de chose.
Loren Pechtel

Cela suppose que chaque octet de tous les périphériques de stockage de masse serait directement adressable.
vartec

2
@ steve314: Vous pensez au concept de magasin à un seul niveau , lancé par IBM S / 38. Des choses intéressantes, mais je pense qu'il serait difficile de l'intégrer aux systèmes d'aujourd'hui.
TMN

1
@TMN: eh bien, IBM i (alias i5 / OS, alias OS / 400) l'utilise toujours et est sans doute toujours l'un des "systèmes d'aujourd'hui".
Joachim Sauer

16

À moins que les ordinateurs ne commencent à utiliser des technologies de pointe qui n'existent pas encore dans les laboratoires, disposer de plus de 2 64 espaces adressables n'est tout simplement pas physiquement possible avec la technologie silicium actuelle . La technologie atteint ses limites physiques . La limite de vitesse (GHz) a été atteinte il y a déjà quelques années. La limite de miniaturisation est également très proche. Actuellement, la technologie la plus avancée en production est de 20 nm, dans les laboratoires, elle est de 4 nm avec des transistors composés de 7 atomes.

Juste pour mettre en perspective le temps nécessaire au développement d'une nouvelle technologie: les ordinateurs actuels sont basés sur des transistors inventés en 1925, et la technologie actuelle du silicium remonte à 1954.


Quant aux technologies alternatives:

  • calcul optique - pourrait augmenter la vitesse de calcul, mais ne résout pas le problème de miniaturisation du stockage;
  • l'informatique quantique - pour être pleinement utilisée, nécessitera un tout nouveau paradigme de programmation, donc si les pointeurs seront à 64 ou 128 bits, c'est le moindre de vos soucis. Les mêmes limites physiques à la miniaturisation s'appliquent également à cette technologie;
  • Calcul ADN - ce sont des jouets de preuve de concept, conçus pour résoudre une classe particulière de problèmes. Non réalisable pour une utilisation réelle. Pour obtenir des calculs qui sur PC normal se feraient en moins d'une seconde, il faudrait un réservoir d'ADN d'une taille de l'océan Pacifique et de quelques milliers d'années. Comme il s'agit d'un processus biologique naturel, il n'y a aucun moyen de miniaturiser ou d'accélérer cela.

4
Donc, fondamentalement, vous dites qu'il n'y aura plus de percées technologiques? Nous serons coincés avec la technologie du silicium pour toujours. Des choses radicalement nouvelles comme l'informatique quantique ou les ordinateurs à ADN resteront à jamais dans la recherche. Crois-tu vraiment cela?
nikie

2
@nikie: les ordinateurs quantiques ne sont pas magiques. Ils utilisent toujours des atomes. Ils sont encore limités par la physique. Des ordinateurs à ADN? Es-tu sérieux??? C'est totalement inutile au-delà d'être une preuve de concept.
vartec

4
@Thor: eh bien, il n'est pas physiquement possible de mettre l'homme sur la Lune en 2011 non plus.
vartec

7
Pourquoi -1? Le résumé a des bases très solides. 2 ^ 64 est un très, très, très grand nombre. Ce n'est pas 2 ^ 32 * 2, c'est beaucoup plus grand, et 2 ^ 128 est assez fou. Cela prendrait énormément de temps à faire for(unsigned __int128 i=0; i<2^128; i++){}. Avec la technologie actuelle, il n'y a pas beaucoup d'utilisation d'entiers 128 bits. Mis à part peut-être revenir à l'espace d'adressage non protégé, parce que marcher accidentellement sur la mémoire d'autres applications dans l'espace d'adressage 128 bits serait assez impossible à faire, même si vous écriviez au hasard dans des adresses aléatoires.
Coder

2
@nikie: Les ordinateurs quantiques ne sont pas pertinents pour ces discussions, car l'utilisation des modèles de mémoire actuels (qui sont le sujet ici) sur les ordinateurs quantiques va à l'encontre de leur objectif. Oh, et oui, les ordinateurs à ADN ne seront jamais vraiment utiles. C'est comme utiliser des automates cellulaires comme base pour un modèle d'exécution.
back2dos

15

Le super ordinateur relié par Thorbjoern a environ 2 ^ 47 B de mémoire physique.
En supposant que la loi de Moore s'applique à la mémoire des super-ordinateurs, elle deviendra 2 ^ 64 B de mémoire physique en seulement 34 ans. C'est comme "OMG, nous vivrons pour voir ça !!!!". Peut être. Et en effet, c'est fascinant. Mais tout aussi hors de propos.

La question est la suivante: ai-je besoin d'un espace d'adressage de 128 bits pour utiliser 2 ^ 65 B de mémoire physique?
La réponse est NON . J'ai besoin d'un espace d'adressage de 128 bits pour adresser 2 ^ 65 B de mémoire virtuelle à partir d'un seul processus .

C'est un point clé de votre question, « Est-ce des applications du monde réel jamais besoin d' un 128 bits plat espace d'adressage? ». " Besoin ", pas absolument, vous pouvez vous en tirer avec moins, faire mapper l'espace d'adressage (pas plat); mais alors vous n'auriez pas un "espace d'adressage plat de 128 bits".

Par exemple, supposons que vous vouliez attribuer aux atomes sur Terre une adresse de mémoire physique (pour une raison quelconque, principalement pour avoir fourni cet exemple simple), commencez à zéro et continuez à compter (revenez à moi lorsque vous aurez terminé). Maintenant, quelqu'un d'autre désire faire la même chose sur Kepler-10c (qui est à 568 ly).

Vous ne voudriez pas d'un conflit d'adresses, donc l'autre personne alloue une adresse de mémoire élevée dans l' espace de mémoire plat disponible, ce qui vous permet, à eux et aux personnes suivantes, d'être directement adressés, sans mapper la mémoire. Si vous ne le ferez pas ou que vous pourrez vous passer d'une relation un à un entre votre mémoire et son adresse (vous êtes prêt à implémenter un tableau fragmenté), vous pouvez vous en tirer avec une mémoire de 64 bits, ou moins.

Chaque fois que quelqu'un propose " X quantité de Y sera suffisante ", une telle prédiction reste souvent de courte durée.

La question est donc: combien de temps aurons-nous des processus uniques , qui utilisent 2 ^ 65 B de mémoire. J'espère jamais.

Le gros problème de notre temps est que la puissance de traitement d'un seul processeur est limitée. Il y a une limite de taille définie par la taille des atomes, et pour une taille donnée, il y a une limite de la fréquence d'horloge, donnée par la vitesse de la lumière, la vitesse à laquelle l'information sur les changements de champs magnétiques se propage dans notre univers.
Et en fait, la limite a été atteinte il y a quelques années et nous nous sommes installés à des taux d'horloge inférieurs à ce qu'ils étaient auparavant. La puissance du processeur n'augmentera plus linéairement. Les performances sont désormais améliorées grâce à une exécution dans le désordre, à la prédiction de branche, à des caches plus importants, à plus de codes d'opération, à des opérations vectorielles, etc. Il y a eu une optimisation architecturale .
Et une idée importante est celle de la parallélisation. Le problème de la parallélisation est qu'elle ne prend pas de l'ampleur. Si vous avez écrit du code lent il y a 20 ans, cela a fonctionné beaucoup plus rapidement il y a 10 ans. Si vous écrivez du code lent maintenant, il ne sera pas beaucoup plus rapide dans 10 ans.

Les processus qui utilisent 2 ^ 65 B de mémoire sont un signe de stupidité extrême. Cela montre qu'il n'y a pas eu d' optimisation architecturale . Pour traiter judicieusement ces données, vous auriez besoin d'environ 10 millions de cœurs, dont la plupart passeraient du temps à attendre qu'une ressource soit disponible, car les cœurs qui ont effectivement acquis la ressource utilisent la mémoire physique sur Ethernet sur une machine complètement différente. La clé pour traiter de gros problèmes complexes est de les décomposer en petits problèmes simples et de ne pas construire des systèmes de plus en plus grands et de plus en plus complexes. Vous avez besoin d'un partitionnement horizontal, lorsque vous traitez avec des sh * tloads de données.

Mais même dans l' hypothèse, cette folie devrait continuer, rassurez - vous 128 bits est suffisant :

  • La Terre a environ 8,87e + 49 atomes , soit 2 ^ 166 atomes que nous avons .
  • Supposons qu'il en coûte 2 ^ 20 atomes pour contenir un bit. Cela comprend également tout le câblage et les plastiques et l'alimentation qui va avec. Vous ne pouvez pas simplement jeter des transistors dans une boîte et l'appeler un ordinateur. Donc 2 ^ 20 semble plutôt optimiste.
  • Pour utiliser l'espace d'adressage de 128 bits, nous avons besoin de 2 ^ 133 bits, donc 2 ^ 152 atomes dont nous avons besoin . En supposant une distribution égale des atomes sur terre, voyons combien de croûte nous devons prendre pour les obtenir:

    let
       q  := ratio of atoms needed to atoms present = 2^-14
       Vc := volume of the crust to be used
       Ve := volume of the earth
       re := the radius of the earth = 6.38e6
       tc := the required thickness of the crust
       k  := 0.75*pi
    thus
                                 Vc / Ve = q 
       (k*re^3 - k*(re-tc)^3) / (k*re^3) = q
                    1 - ((re-tc) / re)^3 = q        
                              (re-tc)/re = root3(1-q)
                                      tc = re * (1 - root3(1-q))
                                      tc = 6.38e6 * (1 - (1 - 2^-14)^(1/3))
                                      tc = 129.804073
    

    Vous avez donc 130 mètres à parcourir sur toute la surface (dont les 80% recouverts d'eau, de sable ou de glace). CA ne va pas arriver. Même en supposant que vous puissiez le déterrer (lol) et que toute cette matière puisse être transformée en puces, où obtiendrez-vous l'énergie?


8
D'un autre côté, vous auriez besoin d'un très grand ordinateur pour effectuer l'évaluation de l'impact environnemental de l'exploitation
Martin Beckett

2
Un bit = 10 ^ 6 atomes. La Terre entière = 10 ^ 50 atomes. L'univers entier = 10 ^ 80 atomes. La notation exponentielle est géniale! :-)
Konamiman

2
Il ne s'agit pas d'utiliser tout un espace d'adressage 128 bits, mais d'utiliser un espace d'adressage 64 bits. Donc, à quel moment avons-nous besoin d'un bit d'adressage supplémentaire au-delà de 64 bits? Combien d'espace physique (molécules) est nécessaire pour 2 ^ 65 octets?
David R Tribble

1
Vous dites donc qu'une architecture de mémoire physique de 128 bits nécessite des capacités de fabrication à l'échelle planétaire ?
Indolering le

Des transistors à un seul atome ont été conçus. Comment obtenez-vous les 2 ^ 20 (environ un million) atomes par nombre de bits? en.wikipedia.org/wiki/5_nanometer
JimmyJames

8

Eh bien, nous pourrions certainement 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'adressage universel. Vous pouvez donc avoir un pointeur vers une cellule mémoire sur n'importe quel ordinateur dans le monde. Il faudra un protocole pour permettre la lecture à partir de la mémoire distante, mais c'est un détail d'implémentation. :-)

  2. La mémoire est Write Once, Read Many, c'est-à-dire que vous ne pouvez écrire des données sur une adresse mémoire qu'une seule fois. Pour une valeur mutable, vous devrez allouer un nouveau morceau de mémoire chaque fois qu'il change. Nous, les programmeurs, avons commencé à voir les avantages de l'immuabilité et de la mémoire transactionnelle, donc une conception matérielle qui ne permet même pas d'écraser la mémoire n'est peut-être pas une idée aussi impossible.

Combinez ces deux idées et vous aurez besoin d'un immense espace d'adressage.


Et pourquoi auriez-vous besoin de traiter chaque octet de chaque ordinateur dans le monde? (Je suppose que vous n'êtes pas la NSA.)
David R Tribble

parce que nous allons construire le suzerain de l'intelligence artificielle du monde entier pour nous conduire au salut bien sûr!
sara

7

Plus les ordinateurs sont capables, plus les problèmes avec lesquels ils doivent travailler sont complexes.

Le plus grand supercalculateur répertorié sur top500.org est http://www.top500.org/system/10587 avec environ 220 To de RAM et 180000 cœurs. En d'autres termes, c'est ce avec quoi les "applications réelles" peuvent fonctionner sur cette plate-forme.

Les ordinateurs d'aujourd'hui sont aussi puissants que les superordinateurs 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 (puisque log (100 millions) / log (100) est d'environ 6) si la tendance actuelle se maintient.


note: mathématiques non vérifiées, probablement assez éloignées.

17
c'est comme la prédiction des années 1800, si la circulation augmente tellement, des villes entières seront couvertes de montagnes de fumier de cheval :-P
vartec

1
220 Go, ce n'est pas tant que ça de nos jours. Il existe des serveurs avec 256 Go de RAM. 180000 cœurs? Voilà quelque chose :). Je ne le signale que parce que la principale préoccupation d'OP est la taille de la RAM.
Tamás Szelei

1
@vartec, montre simplement que l'extrapolation aveugle peut ne pas être valide. Même chose ici.

6
Tamás avait raison: dans le lien que vous avez fourni, il est indiqué "229376 Go", ce qui ressemblerait davantage à 220 To. En outre, en supposant 4 Mo de cache L2 par cœur, 180 000 cœurs ont déjà 720 Go de cache L2;)
back2dos

5

Tout ce fil est assez drôle à lire, très forte opinion pour et contre ...

Voici quelque chose ..

Je comprends de la question que c'était une technologie agnostique et non liée par le temps. Ainsi, le développement actuel du silicium, des ordinateurs quantiques ou de l'Infinite Monkey Peddling Abacus est en fait hors de propos.

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

Mettez votre esprit dans le futur où l'homme n'est plus tenu de confiner sa petite planète, un moyen de transport réaliste a été développé pour permettre le transport sur de très grandes distances et les structures sociales (économiques, politiques, etc.) ont évolué pour transcender les générations. Les projets pharaoniques s'étalant sur les lieux sont devenus monnaie courante. Concentrons-nous sur deux aspects de cette vision farfelue de l'avenir, si l'on souhaite passer du temps à expliquer tous les détails, je suis 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, quoique peu probable ... de toute façon ...

Le premier projet appelé Colossus en mémoire de ce premier ordinateur électronique car c'est le premier ordinateur planétaire. La confrérie des colosses a en effet trouvé un moyen de capturer un petit planétoïde et de le transformer en ordinateur de travail. Découvert récemment dans la ceinture de Kuyper qui est particulièrement riche en isotopes fusibles la rendant énergétiquement autonome, ils ont rendu le processus de construction complètement autonome avec des sondes, des robots, etc. rendant le système informatique auto-réparable et auto-constructif. Dans cette condition, il serait concevable que l'espace d'adressage 2 ^ 64 soit quelque peu confiné pour ce projet car ils souhaitent obtenir un espace d'adressage continu pour porter facilement les applications déjà existantes pour un autre projet également en cours.

L'autre projet est plus une expérience de mise en réseau qu'un système physique, mais il a rapidement démontré qu'un plus grand espace d'adressage était nécessaire. Il y a 540 ans, un jeune hacker jouait avec l'idée de créer un gigantesque filet de robots. Internet s'était déjà étendu pour inclure les colonies naissantes autour du système solaire en s'appuyant sur les avancées majeures de l'énergie de fusion. Son idée était essentiellement de répartir les petits bots sur le réseau, mais la charge utile était destinée à fournir une machine virtuelle unifiée où le code serait écrit en supposant qu'il avait toute la puissance de tous les bots combinés. De gros efforts ont été déployés dans le compilateur et le déploiement pour tenter d'optimiser les décalages et les algorithmes sophistiqués conçus pour prendre en compte la non-fiabilité inhérente du support sous-jacent. Une langue a été spécifiquement écrite pour cibler ce nouveau " notre pirate a créé une société faîtière et a vendu la puissance de calcul au plus offrant. À sa mort, il a fait don de ce botnet et de toutes les technologies à une fondation. À ce stade, le botnet fonctionnait déjà depuis 64 ans et avait déjà dépassé l'espace d'adressage 2 ^ 64 il y a un bon moment, brisant ainsi l'idée préconçue de 1000 ans selon laquelle nous n'aurions jamais besoin d'un espace d'adressage plus grand. De nos jours, 2 ^ 128 est la norme et ce qui sera utilisé pour Colossus, mais il est déjà prévu de l'étendre à 2 ^ 256. notre pirate a créé une société faîtière et a vendu la puissance de calcul au plus offrant. À sa mort, il a fait don de ce botnet et de toutes les technologies à une fondation. À ce stade, le botnet fonctionnait déjà depuis 64 ans et avait déjà dépassé l'espace d'adressage 2 ^ 64 il y a un bon moment, brisant la préconception vieille de 1000 ans selon laquelle nous n'aurions jamais besoin d'un espace d'adressage plus grand. De nos jours, 2 ^ 128 est la norme et ce qui sera utilisé pour Colossus, mais il est déjà prévu de l'étendre à 2 ^ 256.

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

Cela dit, je ne pense pas que je perdrais le sommeil à ce sujet, si votre application nécessite un certain espace d'adressage pour fonctionner correctement, alors elle vivra probablement dans une machine virtuelle qui lui donne tout ce dont elle a besoin ...

Ainsi ... réponse courte ...

OUI, Très probablement

mais

Pourquoi ne pas y faire face quand le problème vient ... Personnellement je ne fais jamais d'hypothèses dans mes programmes donc je n'ai jamais de surprises.


2
Je suis amusé par le niveau de détail de votre exemple fictif. Ecrivez-vous une nouvelle quelque part?
Christopher Bibbs

2

Les emplacements d'adresses ont un coût logarithmique par rapport à la largeur de l'adresse, nous pouvons donc considérer les limites supérieures en fonction des paramètres en question:

64 bits pour les particules de sable sur la terre = 7,5 x 10 ^ 18
128 bits pour les étoiles dans l'univers observable = 10 ^ 24
256 bits pour les particules dans la terre = 10 ^ 50
512 bits pour les particules dans l'univers observable = 10 ^ 82
1024 -bit pour les longueurs de planche cubiques dans l'univers observable = 4,65 × 10 ^ 185

  • La rareté introduite pour le hachage, la sécurité et l'indexation

6,6106 ... × 10 ^ 122 bits pour les configurations de particules possibles dans l'univers observable = 10 ^ (10 ^ 122)

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


Pour calculer la largeur nécessaire pour n adresses, saisissez ceci dans wolfram alpha: 2 ^ ceil (log2 (log2 ( n )))
Timothy Swan

1
Vous avez raison, il peut être utile d'avoir des espaces d'adressage hautement redondants où la plupart des adresses ne se réfèrent à rien du tout, comme dans votre point de hachage, etc., mais je pense que quelqu'un a même suggéré de coder les URL en adresses virtuelles de machine (pas seulement un les hachages), donc vraiment, il n'y a pas de limite supérieure sur le potentiel de gaspillage / redondance d'un futur schéma d'adressage virtuel. Non pas que le codage des données en adresses (par opposition à la recherche dans des tables potentiellement protégées lorsque cela est nécessaire) semble être une bonne idée, bien sûr.
Steve314

0

Eh bien, je pense que pendant quelques années à venir, vous pourrez probablement pousser un soupir de soulagement. Si vous regardez la vitesse de l'innovation dans le matériel, vous pouvez constater qu'au cours des dernières années, aucune percée significative ne s'est produite. Les processeurs avec des fréquences de 2.x GHz existent depuis un certain temps maintenant et toute augmentation de la puissance de traitement de nos jours vient du fait de placer plus de cœurs sur la puce. La capacité des lecteurs continue d'augmenter, mais pas au même rythme qu'il y a 10 ans.

Je pense que notre technologie actuelle approche des limites de la physique.

Qu'est-ce que cela signifie pour l'avenir? Je pense que pour obtenir de nouveaux sauts quantiques dans le traitement de l'information, des technologies entièrement nouvelles devront être utilisées. Ces technologies utiliseront vraisemblablement des «logiciels», quoique peut-être dans un contexte assez étranger à ce qu'il est aujourd'hui. Et qui sait quels besoins d'espace d'adressage ils ont ou peuvent fournir? Ou si l'espace d'adressage est même un concept significatif dans cette technologie?

Alors ne vous retirez pas pour l'instant.


La vitesse du processeur est un concept quelque peu différent de la taille de la mémoire.

Je ne suis pas sûr que vous puissiez tirer la conclusion que, parce que les vitesses du processeur n'ont pas beaucoup augmenté ces dernières années, cela n'a rien à voir avec l'approche des limites de la physique. C'est un fait que les processeurs multicœurs ont fait fureur au cours des dernières années et il se pourrait que les fabricants de CPU investissent leur argent dans la meilleure façon d'utiliser tous ces processeurs ensemble plutôt que de dépenser leur argent pour des améliorations d'horloge. Même les grandes entreprises ont une limite sur leurs dollars de R&D. La capacité du lecteur augmente encore assez rapidement à l'OMI. Je viens de voir un disque de 3 To pour 140 $.
Dunk

0

Oui, il y en aura. (Jeux? Trucs liés à l'intelligence artificielle?)

Une question plus appropriée pourrait être de savoir si cela comptera pour le programmeur typique. Pensez à la façon dont Ruby convertit automatiquement les numéros de FixNum à BigNum et vice-versa si nécessaire. Je serais surpris si d'autres langues (du moins les dynamiques) ne finissaient pas par faire la même chose.


1
Oh oui. enfer ouais. je veux jouer à un jeu qui est tellement cool, il doit utiliser l'arithmétique 128 bits !!!!!!!!!
Chani

1
Duke Nukem Forever Rev 2.0? Ou Madden Football 2025?
John R. Strohm

0

Stocker cette quantité d'informations est une chose et en faire quelque chose d'utile en est une autre. De mon point de vue, je ne vois pas la nécessité de ce stockage, sauf si nous avons la puissance de traitement nécessaire pour l'utiliser. Peut-être que la mise en cache d'énormes bases de données est une chose, mais pour le traitement numérique, je pense que nous avons d'abord besoin de processeurs.


0

Les applications auront-elles jamais besoin de autant de mémoire? Tout à fait possible. Des applications comme 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 puissance de traitement. Et qui sait ce que sera la killer-app dans 50 à 100 ans? Écrans holographiques? Des tableaux arc-en-ciel pour chaque mot de passe de 100 caractères possible?

Est-il physiquement possible de représenter autant de mémoire? Certainement possible. Par exemple, un ordinateur quantique à 100 qubits peut représenter le même nombre d'états qu'un ordinateur classique à 2 ^ 100 bits. Bien plus que les 2 ^ 67 bits d'espace d'adressage dont nous disposons actuellement. (Je sais, un ordinateur quantique de 100 qubits ressemble à de la science-fiction. Je ne suis pas convaincu qu'il sera jamais possible d'en construire un. Mais d'un autre côté, on pourrait probablement en dire autant de toute technologie qui sera utilisée 50 ou dans 100 ans.)

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


"Un ordinateur quantique à 100 qubits peut représenter le même nombre d'états qu'un ordinateur classique à 2 ^ 100 bits." Ce n'est pas vraiment ainsi que fonctionnent les qubits. Un ordinateur à 100 qubits peut représenter le même nombre d'états qu'un ordinateur à 100 bits. La différence est que l'ordinateur à 100 qubits peut représenter la superposition de tous ces états à un moment donné. L'autre chose à propos des qubits est que lorsque vous allez les lire, vous n'aurez qu'une seule réponse et ce sera complètement aléatoire.
JimmyJames

@JimmyJames: Exactement. Donc, si vous voulez représenter les mêmes informations qu'un ordinateur quantique à 100 qubits a à un moment donné dans un ordinateur classique (par exemple pour les simuler), vous aurez besoin de bien plus de 100 bits. Voilà ce que j'ai dit. (Ou voulait dire, de toute façon.)
nikie

Encore une fois, ce n'est pas ainsi que cela fonctionne. Un registre à 2 bits peut représenter 4 valeurs. Un registre à 2 qubits peut représenter 4 valeurs. Ils peuvent tous deux représenter la même plage de valeurs. Le registre qubit peut représenter les 4 en même temps. Voilà la différence.
JimmyJames

@JimmyJames: C'est comme dire qu'un registre "classique" à 2 bits peut représenter 2 valeurs, mais en même temps. Pensez-y de cette façon: si vous vouliez simuler un ordinateur quantique dans un ordinateur classique, combien de bits auriez-vous besoin pour stocker l'état complet de l'ordinateur quantique à 2 qubits à tout moment t ?
nikie

Je comprends, mais je mais ce qui vous manque, c'est que vous ne pouvez pas récupérer une valeur spécifique à partir des qubits. Autrement dit, étant donné un qubit en superposition, lorsqu'il est lu, vous obtiendrez 1 ou 0 mais vous ne pouvez pas récupérer les deux valeurs en raison de la décohérence: en.wikipedia.org/wiki/Quantum_decoherence
JimmyJames

0

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

  • Les protocoles réseau pourraient devenir beaucoup plus simples.
  • Les objets distribués seraient intéressants - tous les objets pourraient exister dans le même espace mémoire.
  • Peut-être que nous passerions aux mémoires "à écriture unique" et inclurions le temps dans la structure d'adresse. On pouvait lire des objets qui existaient dans le passé.
  • Tout stockage secondaire serait directement adressable. Au revoir FILE, fopen()etc.
  • Vous pourriez être arrêté pour avoir écrit sur un mauvais pointeur et avoir arrosé la machine de quelqu'un d'autre.
  • Les étudiants devraient subir un dépistage avant de prendre leur premier cours de CS: très peu de gens peuvent résister au Vortex Total Perspective .

0

Il suffit de «penser à voix haute» ici, mais il m'est venu à l'esprit que l'on pouvait faire des choses sémantiques intéressantes avec les 64 bits restants sur, disons, un ordinateur 128 bits. Cf. la façon dont IP fonctionne.

Je suis sûr que les gens pourraient trouver des utilisations amusantes pour quelque chose comme ça. :) Quelqu'un sait pourquoi la PS3 utilise ses adresses 128 bits? Vous ne perdriez certainement pas toute cette mémoire supplémentaire (et je parle uniquement de la mémoire pour les adresses réelles, pas de ce que ces adresses indiquent). Adresses en tant que données. Vous pouvez même coder une branche dans l'adresse elle-même ... c'est-à-dire que 0x [ifAddress] [elseAddress] Les systèmes multicœurs pourraient également bénéficier de ce type de segmentation. Et et...


0

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 les multiples binaires d'unités de mesure liées à l'électronique numérique et à l'informatique, nous constatons que:

1 octet = 8 bits, 1 kilo-octet = 1024 octets, 1 mégaoctet = 1024 Ko, 1 gigaoctet = 1024 Mo, 1 téraoctet = 1024 Go, 1 pétaoctet = 1024 To, 1 exaoctet = 1024 PB

Et ainsi de suite pour Zettabyte, Yottabyte, Xenottabyte, Shilentnobyte, Domegemegrottebyte, Icosebyte et Monoicosebyte.

Le stockage total des disques Earth est estimé à environ 2 500 exaoctets en 2016.

Un registre 64 bits peut accéder directement à 15 exaoctets de mémoire. Un registre de 128 bits peut accéder directement à 3,40282367 × 10 ^ 35 zettaoctets. Ou 295.147.905.247.928.000 Monoicosebytes.

Nous pouvons donc voir qu'un registre de 128 bits serait bien placé pour accéder à toute la mémoire de la Terre, à tout ce qui a été envoyé sur Internet, à chaque mot prononcé ou écrit, à chaque film, et bien plus encore, pendant un bon bout de temps. .

Donc, la réponse est oui , en attendant un cadre qui peut pointer vers n'importe quelle chose numérique qui a jamais été ou sera jamais .


0

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 la RAM aux neurones en général, mais dans un réseau neuronal, vous pouvez en quelque sorte. Il prend un certain nombre d'adresses pour représenter l'état d'un neurone ou d'une synapse. Je vais donc lancer une supposition sauvage et dire que nous examinons quelque chose comme un billion d'adresses pour créer un réseau neuronal qui serait comparable à un cerveau humain. Donc, si cela peut être fait, je ne vois pas pourquoi cela n'irait pas beaucoup plus loin que cela. Les types de problèmes qu'un tel réseau pourrait envisager seraient au-delà de nos capacités à comprendre ainsi que la raison pour laquelle ils devraient être si importants pour ce faire.


0

C'est l'espace d'adressage. Supposons que nous modifions la norme C afin que realloc ne soit pas autorisé à modifier le pointeur utilisé. Je peux allouer 2 ^ 33 blocs de mémoire aujourd'hui (il faudrait 192 Go de RAM sur mon Mac, 8 milliards de fois un pointeur de 8 octets et 16 octets d'espace alloué, donc je ne peux pas le faire maintenant, mais je pourrais acheter un Mac qui peut le faire sans souscrire une nouvelle hypothèque).

Et je peux réaffecter n'importe lequel de ces pointeurs pour contenir 2 ^ 33 octets. Pas beaucoup en même temps cependant :-) Si la réallocation n'autorise pas le déplacement des pointeurs et que 2 ^ 33 octets sont autorisés, les pointeurs d'origine doivent être séparés de 2 ^ 33 octets, ce qui signifie que 2 ^ 66 octets de mémoire sont nécessaires.


-1

Bien sûr, je ne vois aucune raison pour laquelle cette quantité d'espace ne serait pas nécessaire à l'avenir. Si vous envisagez de développer un jeu, il n'y a aucune limite à la façon dont un jeu peut être réaliste ou complexe, non? (Détail des graphiques / nombre de polygones utilisés et algorithmes définissant l'interaction et le comportement des objets)?

Qui sait, dans 10 ans, nous pourrions jouer à des jeux de 10 To avec des exigences minimales de 12 Go de RAM et un processeur à 8 cœurs. : P


Il n'y a pas de limite aux détails. Mais il y a une limite au silicium.
Billy ONeal

-1

Il y a 20 ans, il y avait 2 milliards de personnes de moins sur la planète et la plupart des systèmes informatiques avaient une mémoire adressable qui pouvait être mesurée en kilo-octets. Aujourd'hui, la population mondiale augmente au même rythme et le nombre d'utilisateurs d'ordinateurs augmente de façon exponentielle chaque année.

Il est vrai que très peu de systèmes ont besoin d'un espace d'adressage complet de 64 octets. Cependant, certains systèmes stockent chaque jour des téraoctets d'informations. Cela a été possible en raison de l'augmentation des utilisateurs d'ordinateurs et des vitesses Internet. Nous pouvons déjà prendre en charge des vitesses Internet de 10 Go / s après seulement 23 ans après l'invention de HTTP. À ce rythme, je pense qu'il serait stupide de ne pas s'attendre à des débits Internet de 1 To / s ou plus dans 50 ans. Lorsque nous pouvons tous déplacer des données aussi rapidement, il y aura plus de données à stocker tandis que plus de personnes existeront pour stocker ces données et il est presque inévitable qu'il faudra une autre transition généralisée vers un système 128 bits, et finalement 256 et 512 bits.


Vous avez raison à tous égards, mais vous avez manqué mon point. L'industrie informatique a moins de 100 ans et si elle continue de croître comme elle l'a fait au cours des dernières décennies, il serait non seulement idiot de supposer que nous avons atteint notre limite à ce stade, mais elle ignore les exigences du futur. L'espace d'adressage n'est pas la seule raison pour laquelle nous aurions besoin d'une architecture 64 bits. Les ensembles d'instructions peuvent devenir si grands et que les pointeurs de 128 bits de large sont plus efficaces et préférés. Un autre avantage est l'espace de registre CPU qui permet de passer à une architecture de bits plus élevée.
Andrew Katz

Je ne sais pas pourquoi j'ai écrit tous ces commentaires - juste une mauvaise humeur est ma meilleure excuse. Cependant, le downvote n'est pas le mien.
Steve314

-1

oui, les applications ne remplissent pas chaque octet d'espace virtuel. la randomisation de la disposition de l'espace d'adressage serait la plus avantageuse.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.