Existe-t-il une alternative aux bits?


42

Existe-t-il une alternative aux bits en tant que plus petite unité de données? Quelque chose qui ne sera pas seulement 0 ou 1, mais qui contient en réalité plusieurs états possibles? Ne serait-il pas plus naturel de stocker des flotteurs comme celui-ci?


8
Vous aurez besoin d'une infinité d'états pour pouvoir stocker des flotteurs arbitraires, donc ce ne serait pas pratique.
ChrisF

2
@ChrisF: Pouvez-vous représenter une infinité de flotteurs avec un nombre limité de bits?
utilisateur inconnu le

11
@userunknown - non, vous ne pouvez pas. C'est pourquoi l'arithmétique en virgule flottante est sujette aux erreurs. Ce que j'essayais de dire, c'est qu'avoir plus d'États ne résoudrait rien en réalité.
ChrisF


5
Il est impossible de représenter uniquement un nombre infini de flotteurs différents. Vous auriez besoin de stocker une quantité infinie d'informations pour identifier de manière unique un infinifloat unique, ce qui ne peut pas être fait dans une quantité finie d'espace à cause de la physique . Stockage de l' information au - delà d'une certaine quantité dans un volume donné nécessite une densité telle que le contenu serait écrasé gravitationnellement à MAX_DENSITY en temps fini, même si elles peuvent se déplacer à MAX_SPEED (mieux connu comme « la vitesse de la lumière »): un noir trou . Voir en.wikipedia.org/wiki/Bekenstein_bound pour les implications de CompSci.

Réponses:


59

Bien sûr que c'est possible, à la fois théoriquement et concrètement.

Théoriquement, il existe deux classes d'alternatives: les systèmes de numérotation numérique avec une base autre que 2 (en fait, le système décimal tel que nous le connaissons, en est un); et systèmes de numération non numériques. Mathématiquement, nous parlons de domaines discrets ou continus.

En pratique, les deux options ont été explorées. Certains des premiers ordinateurs numériques (par exemple, ENIAC) utilisaient des codages décimaux plutôt que le codage binaire désormais omniprésent; d'autres bases, par exemple ternaires, devraient être tout aussi faisables (ou non réalisables). Le langage de programmation ésotérique Malbolge est basé sur un ordinateur ternaire théorique; bien que la plupart du temps satirique, il n'y a aucune raison technique pour que cela ne fonctionne pas. Le stockage et le traitement dans le domaine continu étaient historiquement effectués sur des ordinateurs analogiques, dans lesquels vous pouviez coder des quantités sous forme de fréquences et / ou d’amplitudes de signaux oscillants, puis effectuer des calculs en appliquant toutes sortes de modulations à ces signaux. Aujourd'hui, l'informatique quantique rend à nouveau intéressante la théorie des cellules de stockage continues.

Quoi qu’il en soit, le bit en tant qu’information théorique la plus petite existe toujours, car toute alternative peut coder plus d’informations qu’un seul oui / non, et personne n’a encore mis au point une unité théorique plus petite (et je ne pense pas que cela se produira). à tout moment bientôt).


17
@Dokkat: Le stockage dans un domaine continu, tel qu'une bande analogique, est excellent en théorie, mais en pratique, il souffre d'un bruit et d'une dégradation irrécupérables, ce qui est l'une des raisons pour lesquelles nous utilisons des ordinateurs numériques.
tdammers

19
En théorie de l'information, il est tout à fait possible de transmettre moins d'un bit d'information. L'idée de base est qu'un bit de données ne contient qu'un bit d'information si les deux états sont également probables. Selon cette définition, dans le désert du Sahara, la réponse "non" à la question "a-t-il plu aujourd'hui?" comporte moins d’un bit d’information car c’est presque toujours la réponse.
Michael Borgwardt le

9
@Dokkat était communément utilisé pour modéliser des grandeurs analogiques complexes, l'ordinateur «numérique» étant un système de contrôle pour l'ordinateur analogique. En pratique, il est difficile de construire un circuit analogique avec la résolution d'undouble
Martin Beckett le

5
Some of the early digital computers employed decimal encodings rather than the now ubiquitous binary encoding- En réalité, les codages décimaux sont encore utilisés aujourd'hui; ça s'appelle BCD . Le BIOS de la plupart des ordinateurs l’utilise (pour les dates décimales) , ainsi que la plupart des calculateurs économiques, car il nécessite moins de circuits (c’est moins cher) pour tout faire en BCD que pour le faire en mode binaire et avoir une convertisseur binaire en décimal.
BlueRaja - Danny Pflughoeft le

3
Comme @tdammers le dit, il est difficile d’adapter même les flotteurs à simple précision utilisant des signaux analogiques. Les flotteurs 32 bits ont effectivement une précision de 24 bits; Les circuits analogiques avec un bruit comparable sont coûteux, gourmands en énergie, lents et très sensibles à leur environnement.
comingstorm

26

Vous décrivez en gros un signal analogique, qui est utilisé dans les capteurs, mais rarement pour les calculs internes. Le problème est que le bruit dégrade la qualité, vous avez besoin d'un étalonnage très précis d'un point de référence difficile à communiquer et la transmission est un problème car elle perd de la force à mesure de son déplacement.

Si vous êtes intéressé par l'exploration de l'informatique analogique, la plupart des cours "d'introduction à l'électronique" de premier cycle vous permettent de construire des éléments tels que des intégrateurs op-amp . Ils sont assez faciles à construire même sans instruction formelle.

Vous pouvez également stocker plusieurs états numériques sur le même nœud. Par exemple, au lieu que 0-2,5 volts soit un zéro et 2,5-5,0 volts un, vous pouvez ajouter un troisième état entre les deux. Cela ajoute cependant beaucoup de complexité et augmente considérablement votre sensibilité au bruit.


Auparavant, l'informatique analogique était assez courante, mais au final, le numérique peut être plus précis. Utiliser quelques bits de plus en mémoire pour représenter une valeur est carrément trivial comparé à une tentative d'abaissement du bruit de plusieurs dB plus bas (3 bits à 20 dB) et parfois (variable en fonction de la vitesse) physiquement impossible.
Nick T

J'aime l'accent mis ici sur l'informatique analogique et les exemples. Venant d’un milieu strictement numérique, je ne voyais pas toujours ce que l’informatique analogique était. Bien que googler pour cela donnera de nombreux exemples. Je pense me rappeler avoir vu un prisme "calculer" la transformation de Fourier, car il divise la lumière entrante en ses fréquences constituantes. Il le fait assez rapidement, avec 0 énergie (au sens des exigences pour calculer le FT). Bien sûr, faire quelque chose avec le résultat nécessiterait probablement la numérisation.
Paul

@ NickT Norbert Wiener, auteur de la cybernétique et premier acteur dans le domaine de la théorie de l'informatique / contrôle, rappelle dans son livre que c'est finalement le coût plus bas des circuits binaires par rapport à l'équivalent analogique qui a incité les laboratoires, les chercheurs et l'industrie à opter pour le binaire
Christophe

20

Celles-ci sont appelées qubits et sont utilisées dans les ordinateurs quantiques. Vous trouverez plus d'informations à leur sujet sur l' entrée Wikipedia . Des recherches sont en cours pour rendre ces ordinateurs stables et économiquement réalisables.


1
cela me fait mal à la tête de lire cela ...
Ryathal le

Je ne sais pas exactement comment fonctionne un qubit (je le lis donc je mettrai à jour plus tard), mais je sais que les qubits ne sont pas pratiques avec la technologie actuelle, alors que ce n'est pas le cas. Par exemple, on pourrait représenter physiquement le bit "flottant" par la quantité d'eau remplissant un verre et le mesurer à l'aide d'une balance.
Dokkat

11
Nitpicking: un qubit ne conserve pas les états entre 0 et 1. Il reste toujours 0 ou 1, mais il peut avoir plusieurs états simultanément . (Tout comme le chat de Schrodinger qui n'est pas "à moitié mort", mais mort et vivant en même temps)
nikie

7
@ Ryathal C'est en fait un bon signe: "Quiconque n'est pas choqué par la théorie quantique ne l'a pas comprise." - Niels Bohr
Dan Neely

1
Pour une raison quelconque, j'imagine toujours les qubits comme des Tribbles bleu pâle ou roses.
Wayne Werner

17

Une question de précision

Une des raisons pour lesquelles nous utilisons des bits est que cela nous aide à stocker et à récupérer des informations avec précision.

Le monde réel est analogique, par conséquent, toutes les informations transmises ou stockées par les ordinateurs sont finalement analogiques . Par exemple, un courant d'une tension spécifique sur un fil, ou une charge magnétique d'une force spécifique sur un disque, ou une fosse d'une profondeur spécifique sur un disque laser.

La question est la suivante: avec quelle précision pouvez-vous mesurer ces informations analogiques ? Imaginez qu'un courant sur un fil puisse être interprété comme tout nombre décimal, comme suit:

  • 1 à 10 volts: 0
  • 10 à 20 volts: 1
  • 20 à 30 volts: 2

Etc. Ce système nous permettrait de transmettre beaucoup de données en quelques impulsions de courant, non? Mais il y a un problème: nous devons être très sûrs de la tension. Si la température, des aimants, des rayons cosmiques ou autre cause des fluctuations, nous risquons de lire le mauvais numéro. Et plus nous avons l’intention de mesurer avec précision, plus le risque est grand. Imaginez si une différence de 1 millivolt était significative!

Au lieu de cela, nous utilisons généralement une interprétation numérique . Tout ce qui dépasse un seuil est vrai et tout ce qui est sous est faux. Nous pouvons donc poser des questions du type "Y a-t-il du courant?" au lieu de " combien de courant y a-t-il exactement ?"

Chaque élément individuel peut être mesuré avec confiance, car il suffit d'être "dans le bon stade". Et en utilisant beaucoup de bits, nous pouvons toujours obtenir beaucoup d'informations.


1
Pour être juste, les circuits numériques doivent définir des valeurs mesurables qui sont vraiment vraies ou fausses, ainsi que des états intermédiaires "non définis". Dans la logique 3.3 / 5V, il se peut que <0,8V soit faux,> 2,5V soit vrai. Le bruit est certainement toujours un problème s'il élimine le signal dans ces gammes. Par exemple, essayer d'abaisser un signal trop bas en utilisant un transistor NPN ne vous fera baisser que de 0,55 à 0,7 V en fonction de certains facteurs. Pas beaucoup pour jouer avec. Vous ne faites que rendre la tâche plus difficile lorsque vous définissez des plages plus définies.
Scott Whitlock le

2
@ScottWhitlock, ce ne sont que des spécifications; à moins que la broche est conçu pour accepter HiZ ou similaires, il sera interprétera l'entrée en tant que 1 ou 0, et ce point peut varier en fonction de la température, lot de fabrication, tension d'alimentation, etc. Cette région non définie est pas une caractéristique ( vous semblez suggérer que vous pourriez l'exploiter pour une logique floue).
Nick T

1
@NickT: la région non définie indique qu'il existe une distorsion majeure (une distorsion si importante que la correction d'erreur normale pourrait ne pas la récupérer) et qu'une retransmission éventuelle est nécessaire.
Lie Ryan

2
@LieRyan, vous envisagez un niveau beaucoup plus élevé que ce que traitent ces spécifications (couche physique). La région non définie signifie simplement que le comportement (comment le bit est lu) n'est pas défini et n'est pas garanti. Cela pourrait encore fonctionner très bien.
Nick T


3

Cela pourrait être plus naturel pour nous, mais il y a des raisons spécifiques pour lesquelles le binaire a été choisi pour les circuits numériques et donc pour les langages de programmation. Si vous avez deux états, il vous suffit de distinguer deux réglages de volts, par exemple 0V et 5V. Pour chaque augmentation supplémentaire de la base (base), vous devez diviser davantage cette plage afin d'obtenir des valeurs indistinctes les unes des autres. Vous pouvez augmenter la plage de tension mais cela a cette vilaine habitude de fondre les circuits.

Si vous souhaitez modifier le type de matériel du circuit numérique, vos options sont plus variées. Les décimales étaient autrefois utilisées dans les ordinateurs mécaniques, car les engrenages toléraient beaucoup mieux la chaleur et étaient beaucoup plus distincts que les charges d'électrons. Comme indiqué ailleurs, les ordinateurs quantiques ont d'autres façons de gérer les choses. Les ordinateurs optiques pourraient également être capables de faire des choses que nous n’avons pas traitées auparavant et les ordinateurs magnétiques sont également possibles.


2

Je pense que vous pouvez maintenant construire des éléments pouvant contenir n’importe quel nombre d’états ou même travailler avec des données analogiques. Construire un système complet et exploiter tous les composants logiques pour obtenir une architecture complète et programmable représenterait beaucoup de travail et un risque financier pour toute entreprise qui entreprendrait cette tâche.

Je pense qu'ENIAC a été la dernière architecture à utiliser des compteurs de sonnerie à dix positions pour stocker les chiffres. Bien que je puisse me tromper à ce sujet et je ne suis pas sûr de savoir à quel point cela a influencé les autres parties de la machine.


2

Le stockage peut être considéré comme une transmission vers l’avenir, tous les problèmes de transmission avec un support continu (analogique) s’appliquent.

Le stockage de ces états peut être trivial (un commutateur à trois voies ou une sorte de grille) et le stockage physique de ces états est un problème que de nombreuses réponses abordent, bien mieux que je ne le pourrais.

Ma principale préoccupation concerne la manière dont cet état stocké est codé et il semble très probable que cette tâche devienne une folle course, car les bits suffisent pour représenter des données continues pratiques, en fonction de la précision dont vous avez besoin, continuez à en ajouter.

Il est impossible de stocker des données véritablement continues de cette manière, mais des équations pour les calculer, par exemple

1/3

peut être stocké.


2

Un indice et une petite idée sont des informations plus petites qu’un peu. Plusieurs indices sont généralement nécessaires pour établir la valeur définie d'un bit. Les Inklings sont pires: peu importe combien vous en additionnez, vous ne pouvez toujours pas connaître la valeur du bit obtenu avec certitude.

Plus sérieusement, il existe des logiques à valeurs multiples où l'unité fondamentale peut avoir l'un des n états, où n> 2. Vous pouvez considérer que ces unités contiennent moins d'informations qu'un peu au sens du paragraphe précédent, mais à partir d'une théorie de l'information point de vue, vous auriez à dire qu'ils portent plus. Par exemple, vous auriez besoin de deux bits pour représenter la même quantité d'informations qu'une valeur unique dans une logique à quatre valeurs peut transporter.


1

La base numérique optimale est e , mais comme le moyen le plus simple de représenter un nombre en électronique numérique est à deux états (haute tension = 1, basse tension = 0), la représentation du nombre binaire a été choisie.


Parler esans mentionner le nat ? Pour honte.
Ben Voigt le

1
@ BenVoigt hein? Qu'est-ce que Nat ? :) Google m'a dit des choses étranges, qui ne rentrent pas dans le sujet.
BЈовић

@ BenVoigt Peut-être que vous faisiez référence à Nat (information) ? Un nat ... est une unité logarithmique d'information ou d'entropie, basée sur les logarithmes naturels et les puissances de e, plutôt que sur les puissances des logarithmes 2 et 2 qui définissent le bit.
un CVn

@ MichaelKjörling: C'est tout à fait ça.
Ben Voigt

0

Il existe une plus petite unité de données possible. Je ne connais pas de nom officiel, appelons cela un.

Bit est un mot combo intelligent pour "Binary digIT", ce qui signifie qu'il a deux états possibles. Il doit donc y avoir une sorte de chiffre avec un seul état possible.

Voyons ce que cela signifie. Cela signifie que vous n’auriez que des zéros avec lesquels travailler.

Comment comptez-vous? Dans tout système x-base, vous augmentez la valeur jusqu'à épuisement des chiffres, puis ajoutez un chiffre pour former un nombre. Si vous n'avez qu'un seul chiffre, vous manquerez immédiatement de chiffres, alors:

Zéro = 0 Un = 00 Deux = 000 et cetera

C'est certainement plus naturel: plus c'est plus! Cela correspond parfaitement à n'importe quel nombre de choses. Combien de pommes de terre? 00000 C'est quatre pommes de terre. Attendez une minute ... c'est-à-dire. Si vous n'aimez pas cela, vous pouvez redéfinir la valeur de 0 à un. C’est alors tout à fait naturel: aucun zéro n’est nul, un zéro est un, deux zéros sont deux, et cetera.

Cela n’est cependant pas pratique pour une machine à semi-conducteurs. Les chiffres doivent être physiquement placés et supprimés, et les échelles ne sont pas très bonnes.


1
Cela ne correspond toutefois pas vraiment à une unité de données, puisque vous avez simplement codé 0 comme "non présent" et 1 comme étant 0. Ils sont toujours des bits.
DeadMG

Ce n'est pas binaire, c'est unaire. Le fait est que l'élément de données n'a qu'un seul état, pas deux. La présence ou l'absence n'est pas un état, l'état de l'élément est toujours le même, donc c'est un chiffre unaire. Je décris fondamentalement le système de pointage.
Martin Maat

-1

Je ne trouve pas de référence définitive en anglais, mais pour autant que je me souvienne de la classe de théorie de l' information, le bit est une unité d'information fondamentale. Un peu d'information est l'information que vous recevez après avoir jeté une pièce équitable (probabilité de 50% pour chaque côté). Tout le reste peut être réduit à cela.

Même si vous utilisez un appareil à plusieurs états, il peut toujours être réduit en bits.


-1

Si vous définissez le terme naturel comme étant proche du mode de fonctionnement de Mère Nature, le moyen le plus naturel de coder l'information consiste en une combinaison ADN-adénine, cytosine, guanine et thymine.

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.