Question assez simple, fondamentale mais naïve,
Est-ce qu'avoir 4 états par "bit" au lieu de 2 signifie deux fois plus d'espace de stockage? Au cas où ce ne serait pas clair, je veux dire comme si chaque "structure de stockage", au lieu de ne représenter que 2 valeurs (base 2: 0, 1), pouvait représenter 4 valeurs (base 4: 0, 1, 2, 3 ).
Réponses:
Le mot que vous recherchez n'est pas "bit" mais "symbole". "Symbole" est le mot utilisé pour décrire le processus de mappage des signaux matériels (tels que les tensions ou les modèles magnétiques) en bits logiques. Si un symbole peut avoir 4 états, il peut encoder 2 bits d’informations.
Bien sûr, nous ne disons rien sur l'utilisation des ressources du symbole dans cet argument. Si vous envoyez des symboles le long d'un fil sous forme de tensions, les différents symboles se ressemblent de plus en plus à mesure que vous augmentez le nombre d'états par symbole. Si j'ai un fil 0-5V et 2 états par symbole (1 bit), mes deux états sont 0V et 5V, avec 5V entre chaque symbole. Si j'ai le même fil, mais que je code 4 états par symbole (2 bits), mes états sont 0V, 1,66V, 3,33V et 5V. C'est 1.66V entre chaque symbole. Il est maintenant plus facile pour le bruit de corrompre mon signal.
Il existe une loi les concernant, connue sous le nom de loi de Shannon qui établit un lien entre la largeur de bande (en bits) et le taux d’erreurs dues au bruit sur la ligne. Il s'avère qu'il y a une limite au nombre de bits que vous pouvez graver sur un fil. L'utilisation de plus de symboles entraîne plus d'erreurs, ce qui nécessite davantage de corrections d'erreur.
Nous utilisons cette technique dans la vie réelle. La télévision numérique utilise QAM-64, avec 64 états (et donc 6 bits par symbole). Ethernet utilise 4 niveaux de tension, donc 2 bits par symbole.
Edit: J'ai utilisé des taux de transmission de bits plutôt que de stockage, car il est plus courant de voir des symboles avec plus d'états dans la transmission, afin que je puisse rendre l'histoire plus claire. Si l'on souhaite examiner spécifiquement le stockage et le stockage seul, on pourrait examiner les cellules à plusieurs niveaux dans la mémoire flash, comme le mentionne Quelqu'un Quelque part dans les commentaires. Une telle mémoire utilise exactement la même approche, stockant 3 bits sur 16 niveaux de charge différents d’un condensateur. (ou plus!)
la source
Une cellule de mémoire quaternaire peut stocker exactement autant d'informations que deux cellules de mémoire binaires:
Donc, si vous avez le même nombre de cellules mémoire, mais qu'elles sont quaternaires, alors vous avez deux fois plus de mémoire. Mais si cette cellule quadruple occupe deux fois plus de place sur une puce, aucun avantage.
Ou bien, si vous aviez 1 gigaquad de stockage en quart d’année, il pourrait stocker autant d’informations que 2 gigabits de mémoire binaire normale, car chaque quadruplet pourrait être exprimé avec deux bits.
D'une certaine manière, toute cette ligne de valeurs n'a qu'un intérêt académique. Vous pouvez déjà penser que les puces de mémoire stockent, par exemple, 2 ^ 32 cellules d'état, car vous ne pouvez pas récupérer 1 bit à partir d'elles, vous obtenez toujours un mot complet. Et si, à l'avenir, quelqu'un trouvait un moyen de stocker ce mot dans des cellules physiques à 4 états de manière plus efficace que dans des cellules à 2 états, alors ce mot serait utilisé, mais il ne serait pas visible à l'extérieur de la puce de mémoire, il serait tout de même traité. Mots de mémoire complète uniquement, pouvant par exemple avoir 2 ^ 32 états différents.
la source
En théorie de base, oui. En réalité, non, car nous ne stockons pas les données en bits de toute façon (sur les disques durs). Cort Ammon couvre très bien les problèmes de transmission de données. La RAM, le cache et les disques SSD stockent les données sous forme de bits, mais les disques durs diffèrent en raison de la nature de leur matériel physique et de nos efforts pour leur fournir davantage de données. La plupart des données sont toujours stockées sur le disque dur, je vais donc me concentrer sur celles-ci. Je vais aller bien au-delà de l'explication que vous trouverez dans la plupart des sources, mais je vais essayer de citer des sources où je peux. Ces sources doivent être extraites des profondeurs de l’internet, car c’est dans une large mesure un savoir vraiment oublié.
Premièrement, les disques durs stockent des informations avec des champs magnétiques à la surface des plateaux. La tête d'entraînement les lit en détectant le flux résultant de la modification de ce champ. Il est beaucoup plus facile à mesurer que la direction et la force réelles du champ magnétique. mais si le champ contient 50 segments identiques dans une ligne, il ne peut pas compter qu'il y en a 50 - il lit un pic de flux lors de la lecture du premier segment, puis aucun flux pendant un certain temps après cela, et il ne peut pas suivre le temps avec suffisamment de précision pour être certain que le champ était inchangé pour 50 segments.
Ainsi, le modèle de base (simplifié à l'extrême) consiste à stocker un bit sous la forme d'une paire de champs magnétiques. Le premier serait toujours un commutateur du segment précédent, et le second serait un retournement pour représenter 1 ou aucun renversement pour représenter 0. Ainsi, un 0 est FN (inversion-null) et un 1 est FF (inversion-retournement). La synchronisation du lecteur est suffisamment précise pour reconnaître la différence entre un pic de flux et deux pics de flux dans un segment. Ce format s'appelle Modulation de fréquence. Cela donne donc des signaux clairs, MAIS cela signifie que chaque bit de mémoire nécessite deux espaces sur le lecteur, ce qui est très inefficace. Donc, aucun disque dur n’a eu cette forme de codage la plus élémentaire; à la place, il utilisait des astuces de compression simples. Le plus simple est la modulation de fréquence modifiée, qui modifie le motif de sorte que le basculement magnétique supplémentaire ne soit utilisé que si un 0 est précédé d'un autre 0. Cela permet aux ingénieurs de stocker près de deux fois plus de données dans le même espace. Ce format a donc été utilisé sur les premiers disques durs et formaté sur des disquettes. Après cela, un système plus avancé appelé Run Length Limited a été développé avec une idée générale similaire, dans laquelle je ne reviendrai pas car cela devient beaucoup plus compliqué et qu'il existe de multiples implémentations.
Mais nous n'utilisons aucun système comme celui-ci aujourd'hui. Au lieu de cela, nous utilisons un système appelé Réponse partielle, maximum de vraisemblance (PRML). La PRML demande à la tête de lire une longueur et de collecter l'échantillon magnétique, puis de la comparer à un ensemble de référence d'échantillons stockés pour déterminer lequel correspond le mieux. Il abandonne tout le concept de pointes de flux et utilise à la place une correspondance de motif (je simplifie trop, mais la simplification en vaut la peine) et le motif correspond à un ensemble de bits. Il utilise des filtres anti-bruit et d'autres technologies pour éliminer les erreurs potentielles. Il est préférable de la considérer comme une forme d'onde complexe, et le disque dur sait comment traduire chaque forme d'onde en un ensemble de bits. En ce sens, les données sont en réalité davantage stockées dans un format analogique que numérique,
Le meilleur guide est à l’ adresse http://www.pcguide.com/ref/hdd/geom/data.htm (cliquez plusieurs fois sur le bouton Suivant pour le lire en entier) et il existe quelques autres sources - principalement de les personnes qui ont créé des dépôts massifs de connaissances informatiques que personne n’a aucune raison de connaître. Une source additionnelle décente (ce qui est bon mais pas tout à fait parfait pour autant que je sache) est à l’ adresse http://www.tomshardware.com/reviews/hard-drive-magnetic-storage-hdd,3005-6.html
TL; DR: Les disques durs ne stockent pas les données dans un format semblable à 1 et à 0; Au lieu de cela, ils utilisent un traitement de signal complexe pour stocker les signaux dans le plus petit espace possible et les décoder lors de la lecture. Donc, ils sont vraiment agnostiques.
Je ne serais pas surpris que le stockage en base 4 ait été tenté sur des disques SSD ou RAM à un moment donné. Tout dépend de la physique et de la chimie des matériaux. Les ingénieurs et scientifiques vont pousser ces matériaux aussi loin que possible et choisiront la voie qui leur donnera les meilleurs résultats.
la source
Oui, le fait d'avoir plus d'états permettra à chaque "cellule" de stockage ou à chaque symbole d'une ligne de transmission de données de transporter plus d'informations.
Mais il n'y a pas de repas gratuit, nous devons être en mesure de distinguer ces États. Il s'avère qu'il est facile de construire des portes logiques binaires et beaucoup plus difficile de construire des portes qui distinguent, traitent et régénèrent plus de deux niveaux logiques.
Et puis il y a la question des signaux atténués. Sur un système à deux niveaux, vous pouvez simplement concevoir votre seuil de sorte qu'il fonctionne avec l'atténuation dans le cas le plus défavorable. Sur un système à quatre états dans lequel une atténuation importante est attendue, vous devez adapter vos seuils à l'atténuation particulière de votre système, et pas seulement au pire. atténuation de cas. En pratique, cela signifie que vous devez ajouter un système de mesure d'atténuation à votre système de communication.
Tout cela étant dit , il y a des situations où la complexité supplémentaire ne du sens. Un grand nombre de disques SSD utilisent maintenant plus de deux niveaux par cellule flash (MLC ou TLC). Les protocoles de communication modernes à haute vitesse utilisent également presque toujours des codages à plusieurs niveaux.
la source
Vous serez peut-être intéressé de savoir que les Russes ont développé une puce ternaire , au lieu de binaire. Cela signifie que chaque symbole pourrait avoir les valeurs de
-1
,0
ou1
. Ainsi, chaque porte physique peut stocker "trois" valeurs au lieu de "deux".Comme vous commencez à le croire, il existe peut-être un moyen plus efficace de mettre en œuvre un système de numérotation de base. (Bien que cette capacité à exprimer cela plus efficacement dépend de notre capacité à fabriquer physiquement du matériau.) Il s’avère que la constante
e
, la base de la bûche naturelle (~ 2,71828), offre la meilleure économie de base, suivie de 3, puis de 2, puis 4.L'économie de base est le nombre de chiffres que vous pouvez représenter par rapport au nombre de symboles à prendre pour le faire.
Par exemple, le nombre mathématique trois est représenté comme
3
dans la base 10, mais comme11
dans la base 2 (binaire). La base 10 peut exprimer des nombres plus grands avec moins de symboles que la binaire, mais la table des symboles de la base 10 est 5 fois plus grande (0 ... 9) que la table des symboles de la base 2 (0, 1). La comparaison du pouvoir d'expression à la taille du jeu de symboles est appelée "économie de base" (la base étant le numéro de la base, par exemple, 2 en binaire ou "base 2"). La question naturelle qui suit est la suivante: où est-ce que je veux être en termes de compromis? Quel nombre devrais-je adopter comme radix? Puis-je optimiser le compromis entre le pouvoir d'expression et la taille du jeu de symboles?Si vous regardez le graphique dans l' article de radix economy dans wikipedia, vous pouvez comparer les économies de différentes bases. Dans notre exemple, la base 2 a une économie de base de 1,0615, tandis que la base 10 a une économie de 1,5977. Plus le nombre est bas, mieux c'est, donc la base 2 est plus efficace que la base 10.
Votre question de base 4 a une efficacité de 1,0615, ce qui correspond à la taille de la base 2 (ou binaire). Son adoption par rapport à la base 2 ne vous donne donc que la même taille de stockage par numéro, en moyenne.
Si vous vous demandez, y a-t-il un nombre idéal à adopter comme base, ce graphique vous montre que ce n'est pas un nombre entier, mais la constante mathématique
e
(~ 2.71828) qui est la meilleure, avec une économie de 1.0. Cela signifie que c'est aussi efficace que possible. Pour toute série de nombres, en moyenne, basee
vous donnera la meilleure taille de représentation, en fonction de sa table de symboles. C'est le meilleur "rapport qualité-prix".Ainsi, bien que vous pensiez que votre question est peut-être simple et élémentaire, elle est en fait subtile et complexe et mérite d’être examinée lors de la conception d’ordinateurs. Si vous pouviez concevoir un ordinateur discret idéal, l'utilisation de la base 4 offre la même offre - le même espace pour le coût - en binaire (base 2); utiliser la base 3, ou ternaire, offre une meilleure affaire que le binaire (et les Russes ont construit un ordinateur physique en état de fonctionnement avec une représentation de la base 3 dans les transistors); mais idéalement, vous utiliseriez la base e. Je ne sais pas si quelqu'un a construit un ordinateur physique en état de fonctionnement avec la base e, mais mathématiquement, il offrirait plus d'espace disque que binaire et ternaire - en fait, la meilleure offre parmi tous les nombres réels.
la source
Croiriez-vous que je peux encoder la somme totale de connaissances humaines en une seule correspondance?
Si je code un peu dans une seule correspondance, les symboles peuvent ressembler à ceci:
Avec assez d’allumettes, je peux tout dire. Mais je peux en dire deux fois plus avec le même match si j'ajoute deux symboles supplémentaires. Ce qui pourrait ressembler à ceci:
Deux fois plus d'informations avec le même match! Eh bien pourquoi pas? Bien pourquoi arrêter? Faites pivoter chaque symbole de 45 degrés et nous doublons à nouveau. 30, 15, etc. Bientôt, j'ai assez de symboles pour pouvoir dire n'importe quoi et tout avec un seul match! Une fois que je fais cela, nous avons un problème cependant. Que dit ce match?
Comment pouvez-vous savoir exactement quel symbole est maintenant? De combien de temps avez-vous besoin pour être sûr? C'est le problème. Plus je rajoute de symboles, plus il vous sera difficile de les distinguer.
Si nous parlons par match, alors bien sûr. Mais, même si cela ne ralentissait pas la vitesse de lecture de notre match, nous prenons maintenant plus d'espace de travail dans la cuisine. C'est toujours quelque chose.
la source
Si un bit avait 4 états au lieu de deux dans un symbole (bit), alors oui, vous auriez deux fois plus de mémoire. Cela peut prendre ou non deux fois plus de place, selon la technologie utilisée.
Il existe un exemple concret que vous avez tous les jours sous les yeux: Ethernet (ce qui n’est pas de la mémoire, mais une similitude dans la mesure où il transmet des données), vous avez, entre autres, le "Fast Ethernet" ordinaire à 100 Mbits 100BASE -TX, et vous avez 1GbE ethernet.
Il est clair que 1 GbE nécessite des fréquences 10 fois supérieures à 100 Mbits (100 Mbits nécessitant une fréquence 10 fois plus élevée que 10 Mbits), vous avez donc également besoin de câbles plus coûteux. Évidemment.
Oups ... ce n'est pas vrai du tout .
Ethernet 100 Mbits transmet sur deux paires de câbles à 100 MHz, tandis que GbE transmet à 125 MHz sur 4 paires de câbles.
Attendez, alors que le GbE n’est vraiment que deux fois et demie plus rapide qu’un Ethernet 100 Mbits? Je ne reçois que 250 Mbit / s?
Non, il utilise également le codage 5-PAM, qui peut coder 2,32 bits par impulsion par paire de câbles, dont 2 bits sont utilisés en tant qu'informations réelles et le reste rend le signal plus résistant au bruit. Grâce à ces bits fractionnaires, 1000BASE-T peut également supprimer le codage 8B10B.
Vous avez donc doublé le nombre de fils et légèrement augmenté la fréquence, mais vous obtenez un débit 10 fois supérieur!
Maintenant, si vous pensiez que c'était de la pure magie, voyez comment la télévision numérique par câble fonctionne et si vous n'êtes toujours pas convaincu, examinez l'ADSL, qui utilise le 32768-QAM pour coder 15 bits dans un symbole.
Même vieux fil de cuivre, même bande de fréquence, 15 fois plus de contenu.
EDIT:
Un autre exemple très évident de la vie réelle que j’ai complètement oublié (car c’est trop évident apparemment, apparemment!) Et que vous avez tous les jours sous les yeux est la clé USB.
Ceux qui utilisent couramment la mémoire flash MLC . Qu'est-ce que c'est? C'est un type de cellule de mémoire qui stocke l'un des quatre niveaux de charge différents. C'est la plus petite unité à laquelle vous pouvez accéder au niveau matériel. Donc, vous pouvez dire que vos "bits" ont bien 4 états (ils n'en ont pas , vous sortez simplement deux bits au lieu d'un, et vous ne pouvez lire que des secteurs complets de l'appareil de toute façon ... mais vous pouvez sans doute y jeter un coup d'oeil. de cette façon).
Même nombre de cellules, mais double la mémoire. Moins cher, plus petit, un peu moins fiable, mais ... avant tout, moins cher .
la source
Avoir 4 symboles par chiffre au lieu de deux signifie que vous pouvez stocker deux fois plus d'informations dans un seul chiffre. Cependant, à mesure que vous augmentez le nombre de chiffres, vous pouvez stocker de manière exponentielle plus d'informations:
Tous les n chiffres de la base 2 peuvent coder 2 ^ n états, tandis que la base 4 peut coder 4 ^ n.
la source
(4^n) / (2^n) = 2^n
ce qui signifie que vous pouvez représenter de manière exponentielle (2^n
fois) plus d'états, mais que cela ne représente que deux foislog2(4^n) / log2(2^n) = 2n / n = 2
plus d'espace de stockage. Rappelez-vous questorage capacity in bits = log2(number of states)