human
Pourquoi n'avons-nous pas encore d'ordinateurs 128 bits ? Ils se sont développés extrêmement rapidement, mais j'utilise toujours un PC 64 bits, cela n'a pas vraiment changé ces dernières années. Veuillez expliquer comme si j'avais cinq ans.
gpt
La réponse simple est la suivante : nous n'en avons pas assez besoin pour que les avantages l'emportent sur les coûts. Voici la réponse plus détaillée (bien que toujours de niveau ELI5, espérons-le...) : Commençons par ce que cela signifie d'être un ordinateur 32 bits, 8 bits ou 64 bits. Le " nombre de bits " est appelé la " longueur de mot " . Un mot [1] est la taille d'une donnée qui peut être manipulée en une seule fois. Ces choses sont typiquement 1 mot : - Un entier - Une instruction - Un pointeur vers une adresse mémoire Ainsi, augmenter la longueur du mot signifie que vous pouvez avoir plus d'instructions, ajouter des nombres plus grands et adresser plus de mémoire. Je pense que les avantages de tout cela sont évidents, alors quel est le compromis ? ( Mis à part le coût de l' acquisition de nouveaux ordinateurs par chacun ... ) Taille de la mémoire . Parce que la taille d'un pointeur augmente, si je veux stocker un million de pointeurs (par exemple, pointant vers des entrées de base de données), le passage de 32 bits à 64 bits signifie que cela prend maintenant 4 Mo supplémentaires. Le passage de 64 bits à 128 bits représenterait 8 Mo supplémentaires. Maintenant, vous pourriez dire que cet espace est bon marché. La plupart des ordinateurs ont plusieurs gigaoctets de mémoire [2] et qu'est-ce que quelques mégaoctets ? Mais ce n'est pas vraiment le problème. Le problème est qu'il faut plus de temps pour parcourir autant de mémoire à cause de la mise en cache : c'est la quantité de mémoire qui peut être stockée là où le processeur peut la voir. Pensez au cache dans la page d'un livre, et le livre est la mémoire. Si vous agrandissez les mots, moins de mots tiennent sur chaque page et vous devez donc tourner la page (ce qui coûte cher) plus souvent. Dans les caches hautes performances, les performances sont très souvent le facteur limitant de la vitesse à laquelle quelque chose peut s'exécuter. Être capable d'ajouter des nombres plus grands n'est utile que si vous utilisez des nombres plus grands ET que vous avez besoin de performances ET que vos performances sont limitées par le CPU, ce qui n'est souvent pas le cas. Ce n'est donc pas une motivation suffisante pour augmenter la taille des nombres que vous pouvez traiter car c'est si rarement le problème. Avoir plus d'instructions n'est pas vraiment un problème. Alors qu'un processeur peut avoir des milliers d'instructions, cela n'égratigne même pas la surface du nombre d'instructions 32 bits disponibles. Le vrai problème était la taille des pointeurs. Avec un pointeur 32 bits, il n'y avait que ~4,3 milliards d'adresses : c'est 4 Go de mémoire avant que vous ne commenciez à utiliser des astuces pour accéder à la mémoire. Ce n'était pas un problème lorsque 32 Mo de mémoire étaient considérés comme extravagants (et je me souviens de l'époque), mais maintenant, avec 8 Go ou 16 Go de mémoire étant la norme, un pointeur 32 bits vers la mémoire n'est tout simplement pas assez grand. C'est la raison pour laquelle nous sommes passés aux architectures 64 bits : pour gérer la mémoire supplémentaire. 64 bits peuvent gérer 18,44 exaoctets de mémoire. À titre de comparaison, c'est un peu plus que [l'intégralité de la capacité de stockage de Google] (URL_0). Je pense donc que nous nous en tiendrons encore un moment à l'architecture 64 bits. [ 1 ] Dans la programmation Windows , un mot était de 16 bits et , à cause du code hérité , il est vraiment difficile de changer cela . Cela signifie qu'il y a plein de programmeurs qui pensent qu'un mot est de 16 bits , et 32 ​​bits est un dword ( mot double ) et 64 bits est un qword ( quad - word ) etc ... Il n'y a rien de mal à this ( tant que c'est fait de manière cohérente ) mais ce n'est pas la façon dont je l' utilise ici . Juste pour que vous ne soyez pas confus plus tard ... [ 2 ] Mémoire = RAM , mais j'essaie d' éviter les termes techniques .