57 votes

Pourquoi le nombre de bits est-il toujours (?) Une puissance de deux?

Nous avons des architectures matérielles et des systèmes d'exploitation 8 bits, 16 bits, 32 bits et 64 bits. Mais pas, disons, les 42 bits ou 69 bits.

Pourquoi? Est-ce quelque chose de fondamental qui fait de 2 ^ n bits un meilleur choix ou est-ce juste une question de compatibilité avec les systèmes existants? (Il est évidemment pratique qu'un registre 64 bits puisse contenir deux pointeurs 32 bits ou qu'une unité de données 32 bits puisse contenir 4 octets.)

34voto

sharptooth Points 93379

C'est surtout une question de tradition. Il n'est même pas toujours vrai. Par exemple, les unités de virgule flottante dans les processeurs (même contemporaine) ont 80 bits des registres. Et il n'y a rien qui nous obligerait à avoir des octets de 8 bits au lieu de 13 bits, octets.

Parfois, c'est le raisonnement mathématique. Par exemple, si vous décidez d'avoir un N bits de l'octet et que vous voulez faire entier multiplication vous avez besoin exactement 2N bits pour stocker les résultats. Alors vous aussi, vous voulez ajouter/soustraire/multiplier ces 2N bits entiers et maintenant vous avez besoin de 2N bits de registres à usage général pour le stockage de l'addition/soustraction des résultats et 4N bits des registres pour stocker la multiplication des résultats.

26voto

Voytek Jarnot Points 309

http://en.wikipedia.org/wiki/Word_%28computer_architecture%29#Word_size_choice

Différentes quantités de mémoire sont utilisés pour stocker des valeurs de données avec différents degrés de précision. Les plus couramment utilisés tailles sont généralement une puissance de 2 multiple de l'unité de résolution d'adresse (octet ou mot). La conversion de l'indice d'un élément dans un tableau dans la barre d'adresse de l'élément nécessite uniquement d'une opération de déplacement plutôt qu'une multiplication. Dans certains cas, cette relation peut également éviter l'utilisation de la division des opérations. En conséquence, la plupart des ordinateurs modernes conceptions du mot tailles (et d'autres opérande tailles) d'une puissance de 2 fois la taille d'un octet.

22voto

DVK Points 63282

En partie, c'est une question d'adressage. Le fait d'avoir N bits d'adresse vous permet d'adresser au plus 2 ^ N bits de mémoire, et les concepteurs de matériel préfèrent utiliser au mieux cette capacité. Donc, vous pouvez utiliser 3 bits pour adresser le bus 8 bits, etc.

7voto

David Cary Points 1678

Beaucoup (la plupart?) début de l'avant-microprocesseur Cpu ont un certain nombre de bits par mot ne sont pas une puissance de deux.

En particulier, Seymour Cray et son équipe ont construit de nombreux, très influente, des machines avec des non-puissance de deux longueurs de mot et l'adresse tailles-12 bits 48 bits, 60 bits, etc.

Un nombre étonnamment élevé de premiers ordinateurs eu 36 bits, mots, entièrement due au fait que les humains ont 10 doigts. Wikipedia "36 bits" l'article a plus de détails sur la relation entre les 10 doigts et 36 bits, et des liens vers des articles sur de nombreux autres historiquement importante, mais ce n'est plus populaire, peu de tailles, la plupart d'entre eux pas une puissance de deux.

Je pense que

(a) 8 bits de mémoire adressable est devenu populaire parce qu'il était légèrement plus commode pour le stockage ASCII 7 bits et 4 bits BCD, sans que ce soit gênant d'emballage ou de perdre plusieurs bits par caractère; et aucun souvenir de la largeur avait un grand avantage.

(b) de Stephen C. en Acier souligne, que léger avantage est multiplié par des économies d'échelle et les forces du marché-plus de 8 bits à l'échelle souvenirs sont utilisés, et donc les économies d'échelle les rendre un peu moins cher, entraînant encore plus de 8 bits à l'échelle des mémoires de l'utiliser dans de nouveaux dessins, etc.

(c) plus Large largeurs de bus, en théorie, fait un PROCESSEUR plus rapide, mais de mettre l'ensemble de la CPU sur une seule puce fait largement moins cher et peut-être légèrement plus rapide que les précédentes multi-partie de l'UC du système de bus de largeur. Au début il y avait à peine assez de transistors pour un 4 bits CPU, puis un 8 bits CPU. Plus tard, il y avait à peine assez de transistors pour une 16 bit CPU, à un énorme fanfare et "16 bits" campagne de marketing. Droit à travers le temps, on pourrait s'attendre à une de 24 bits CPU ...

(d) le RISC révolution frappé. Les deux premières puces RISC de 32 bits, pour quelque raison que ce soit, et les gens ont été conditionnés à penser que "plus de bits sont mieux", de sorte que chaque fabricant a sauté sur la 32 bits de suivre le mouvement. Aussi, IEEE 754-1985 a été normalisé avec les versions 32 bits et 64 bits des nombres à virgule flottante. Il y avait quelques 24 bits Cpu, mais la plupart des gens n'ont jamais entendu parler d'eux.

(e) Pour les logiciels des raisons de compatibilité, les fabricants entretenu l'illusion d'un 32-bit bus de données, même sur des processeurs 64 bits front-side bus (par exemple le processeur Intel Pentium et AMD K5, etc.) ou sur des cartes mères avec un 4 bits pour le bus LPC (bus).

6voto

Otávio Décio Points 44200

Le vénérable PDP-10 mesurait 36 bits.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X