Ziemlich einfache grundlegende, wenn auch naive Frage:
Würden 4 Zustände pro "Bit" anstelle von 2 den doppelten Speicherplatz bedeuten? Für den Fall, dass das nicht klar ist, meine ich, als ob jede "Speicherstruktur", anstatt nur 2 Werte darzustellen (Basis 2: 0, 1), 4 Werte darstellen könnte (Basis 4: 0, 1, 2, 3) ).
Antworten:
Das gesuchte Wort ist nicht "Bit", sondern "Symbol". "Symbol" ist das Wort, das verwendet wird, um den Prozess des Abbildens von Hardwaresignalen (wie Spannungen oder magnetischen Mustern) in logische Bits zu beschreiben. Wenn ein Symbol 4 Zustände haben kann, kann es 2 Informationsbits codieren.
Natürlich sagen wir nichts über die Ressourcennutzung des Symbols in diesem Argument. Wenn Sie Symbole als Spannungen über eine Leitung senden, werden die verschiedenen Symbole immer ähnlicher, wenn Sie die Anzahl der Status pro Symbol erhöhen. Wenn ich eine 0-5V-Leitung und 2 Zustände pro Symbol (1 Bit) habe, sind meine beiden Zustände 0V und 5V, wobei 5V zwischen jedem Symbol liegen. Wenn ich den gleichen Draht habe, aber 4 Zustände pro Symbol (2 Bits) codiere, sind meine Zustände 0 V, 1,66 V, 3,33 V und 5 V. Das sind 1,66 V zwischen den einzelnen Symbolen. Rauschen kann mein Signal jetzt leichter verfälschen.
Diesbezüglich gibt es ein Gesetz, das als Shannon's Law bekannt ist und das die Bandbreite (in Bits) mit der Fehlerrate in Verbindung bringt, die aufgrund von Rauschen auf der Leitung auftritt. Es stellt sich heraus, dass die Anzahl der Bits, die Sie über ein Kabel stecken können, begrenzt ist. Die Verwendung von mehr Symbolen führt zu mehr Fehlern und erfordert eine größere Fehlerkorrektur.
Wir wenden diese Technik im wirklichen Leben an. Das digitale Fernsehen verwendet QAM-64 mit 64 Zuständen (und somit 6 Bits pro Symbol). Ethernet verwendet 4 Spannungspegel, also 2 Bits pro Symbol.
Bearbeiten: Ich habe Bitübertragungsraten anstelle von Speicher verwendet, da häufig Symbole mit mehr Übertragungsstatus angezeigt werden, um die Geschichte klarer zu gestalten. Wenn man sich speziell nur mit Speicher und Speicher befassen möchte, kann man sich Multi-Level-Zellen im Flash-Speicher ansehen , wie in den Kommentaren " Jemand anderswo" erwähnt. Ein solcher Speicher verwendet genau den gleichen Ansatz und speichert 3 Bits als 16 verschiedene Ladezustände eines Kondensators. (oder mehr!)
quelle
Eine quartäre Speicherzelle kann genau so viele Informationen speichern wie zwei binäre Speicherzellen:
Wenn Sie also die gleiche Anzahl von Speicherzellen haben, diese jedoch vierteljährlich sind, haben Sie doppelt so viel Speicher. Wenn diese Quad-Zelle jedoch doppelt so viel Platz auf einem Chip beansprucht, hat dies keinen Vorteil.
Oder anders ausgedrückt, wenn Sie 1 Gigaquad eines Quartenary-Speichers hätten, könnte er so viele Informationen wie 2 Gigabit eines normalen Binärspeichers speichern, da jedes Quad mit zwei Bits ausgedrückt werden könnte.
In gewisser Weise ist diese ganze Linie jedoch nur von akademischem Interesse. Man kann sich schon vorstellen, dass Speicherchips beispielsweise 2 ^ 32 Zustandszellen speichern, da man nicht 1 Bit von ihnen holen kann, bekommt man immer ein volles Wort. Und wenn in Zukunft jemand einen Weg gefunden hätte, dieses Wort effizienter in physischen Zellen mit 4 Zuständen als in Zellen mit 2 Zuständen zu speichern, dann würde das verwendet werden, aber es wäre außerhalb des Speicherchips nicht sichtbar, es würde immer noch funktionieren Nur vollständige Speicherwörter, die beispielsweise 2 ^ 32 verschiedene Zustände haben können.
quelle
In der Grundtheorie ja. In Wirklichkeit nein - weil wir Daten sowieso nicht in Bits speichern (auf Festplatten). Cort Ammon deckt die Probleme bei der Datenübertragung sehr gut ab. RAM, Cache und SSDs speichern Daten als Bits, aber HDDs unterscheiden sich aufgrund der Art ihres physischen Materials und unserer Bemühungen, mehr Daten darauf zu packen. Die meisten Daten werden immer noch auf der Festplatte gespeichert, daher werde ich mich auf diese konzentrieren. Ich werde weit über die Erklärung hinausgehen, die Sie in den meisten Quellen finden, aber versuchen, Quellen zu zitieren, wo ich kann. Diese Quellen müssen aus den uralten Tiefen des Internets ausgegraben werden, denn es handelt sich zum großen Teil um wirklich vergessenes Wissen.
Erstens speichern Festplatten Informationen mit Magnetfeldern auf der Oberfläche der Laufwerksplatten. Der Antriebskopf liest diese durch Erfassen des Flusses anhand der Änderung in diesem Feld - dies ist weitaus einfacher zu messen als die tatsächliche Richtung und Stärke des Magnetfelds. Wenn sich das Feld jedoch aus 50 gleichen Segmenten in einer Reihe zusammensetzt, kann es tatsächlich nicht zählen, dass 50 Segmente vorhanden sind. Es liest beim Lesen des ersten Segments eine Flussspitze, dann eine Weile lang keinen Fluss mehr und kann die Zeit nicht mehr verfolgen genau genug, um sicher zu sein, dass das Feld für 50 Segmente unverändert war.
Das grundlegende (stark vereinfachte) Modell besteht darin, ein wenig als ein Paar von Magnetfeldern zu speichern. Das erste wäre immer ein Wechsel vom vorherigen Segment, und das zweite wäre ein Flip, um 1 darzustellen, oder kein Flip, um 0 darzustellen. Also ist eine 0 FN (Flip-Null) und eine 1 FF (Flip-Flip). Das Timing des Frequenzumrichters ist genau genug, um den Unterschied zwischen einer Flussspitze und zwei Flussspitzen innerhalb eines Segments zu erkennen. Dieses Format wird Frequenzmodulation genannt. Dies gibt also klare Signale, ABER es bedeutet, dass jedes Bit Speicher zwei Speicherplätze auf dem Laufwerk benötigt - das ist sehr ineffizient. So hatte keine Festplatte tatsächlich diese grundlegendste Form der Codierung; Stattdessen wurden einfache Komprimierungstricks verwendet. Am einfachsten ist Modified Frequency Modulation (Modifizierte Frequenzmodulation), bei der das Muster so geändert wird, dass der zusätzliche magnetische Flip nur verwendet wird, wenn vor einer 0 eine weitere 0 steht. Auf diese Weise können die Ingenieure fast doppelt so viele Daten in den gleichen Speicherplatz packen und wurden somit auf den ersten Festplatten verwendet. Dies ist das Format auf Disketten. Danach wurde ein erweitertes System namens Run Length Limited mit einer ähnlichen allgemeinen Idee entwickelt, auf die ich nicht näher eingehen werde, da es viel komplizierter wird und es mehrere Implementierungen gibt.
Aber wir verwenden heute kein solches System. Stattdessen verwenden wir ein System namens Partial Response, Maximum Likelihood (PRML). PRML erfordert, dass der Kopf eine Länge liest und die magnetische Probe sammelt. Anschließend vergleicht er sie mit einem Referenzsatz gespeicherter Proben, um zu bestimmen, welcher am besten passt. Es verzichtet auf das gesamte Konzept der Flussspitzen und verwendet stattdessen den Mustervergleich (ich vereinfache, aber die Vereinfachung ist es wert), und das Muster entspricht einer Menge von Bits. Es werden Rauschfilter und andere Technologien verwendet, um potenzielle Fehler zu beseitigen. Stellen Sie es sich am besten als komplexe Wellenform vor, und die Festplatte versteht es, jede Wellenform in einen Satz von Bits zu übersetzen. In diesem Sinne werden die Daten tatsächlich eher in einem analogen als in einem digitalen Format gespeichert.
Die beste Anleitung dazu finden Sie unter http://www.pcguide.com/ref/hdd/geom/data.htm (klicken Sie einige Male auf die Schaltfläche Weiter, um alles zu lesen). Außerdem gibt es einige andere Quellen - hauptsächlich von Menschen, die massive Speicher für Computerwissen geschaffen haben, von denen niemand einen Grund hat, es zu wissen. Eine anständige zusätzliche Quelle (die meines Erachtens gut, aber nicht 100% perfekt ist) finden Sie unter http://www.tomshardware.com/reviews/hard-drive-magnetic-storage-hdd,3005-6.html
TL; DR: Auf Festplatten werden keine Daten in einem Format wie 1 oder 0 gespeichert. Stattdessen verwenden sie eine komplexe Signalverarbeitung, um Signale auf engstem Raum zu speichern und beim Lesen zu dekodieren. Sie sind also wirklich basenunabhängig.
Es würde mich nicht überraschen, wenn irgendwann einmal versucht wurde, Base-4-Speicher auf SSDs oder RAM zu speichern. Alles hängt von der Physik und Chemie der Materialien ab. Die Ingenieure und Wissenschaftler werden diese Materialien so weit wie möglich schieben und den Weg verfolgen, der die besten Ergebnisse liefert.
quelle
Wenn mehr Zustände vorliegen, kann jede "Speicherzelle" oder jedes Symbol auf einer Datenübertragungsleitung mehr Informationen übertragen.
Aber es gibt kein kostenloses Mittagessen, wir müssen tatsächlich in der Lage sein, diese Zustände zu unterscheiden. Es hat sich herausgestellt, dass es einfach ist, binäre Logikgatter zu erstellen, und es ist viel schwieriger, Gatter zu erstellen, die mehr als zwei Logikebenen unterscheiden, verarbeiten und neu generieren.
Und dann gibt es das Problem der gedämpften Signale. In einem System mit zwei Ebenen können Sie Ihre Schwelle einfach so entwerfen, dass sie mit der Dämpfung im ungünstigsten Fall funktioniert. In einem System mit vier Zuständen, in dem eine erhebliche Dämpfung zu erwarten ist, müssen Sie Ihre Schwellen an die jeweilige Dämpfung Ihres Systems anpassen, nicht nur an die schlechteste -case Dämpfung. In der Praxis bedeutet dies dann, dass Sie Ihrem Kommunikationssystem ein Dämpfungsmesssystem hinzufügen müssen.
Trotzdem gibt es Situationen, in denen die zusätzliche Komplexität Sinn macht. Viele SSDs verwenden inzwischen mehr als zwei Ebenen pro Flash-Zelle (bekannt als MLC oder TLC). Moderne Hochgeschwindigkeitskommunikationsprotokolle verwenden fast immer mehrstufige Codierungen.
quelle
Vielleicht interessiert es Sie, dass die Russen einen ternären statt einen binären Chip entwickelt haben . Das bedeutet , dass jedes Symbol die Werte haben könnten
-1
,0
oder1
. So könnte jedes physikalische Tor "drei" Werte anstelle von "zwei" speichern.Wie Sie zu vermuten beginnen, gibt es möglicherweise eine effizientere Möglichkeit, ein Basisnummerierungssystem zu implementieren. (Obwohl diese Fähigkeit, dies effizienter auszudrücken, von unserer Fähigkeit abhängt, das Material physikalisch herzustellen.) Es stellt sich heraus, dass die Konstante
e
, die Basis des natürlichen Holzstamms (~ 2.71828), die beste Radix-Ökonomie aufweist, gefolgt von 3, dann 2. dann 4.Die Radix-Ökonomie gibt an, wie viel Zahl Sie darstellen können und wie viele Symbole Sie benötigen, um dies zu tun.
Zum Beispiel wird die mathematische Zahl drei wie
3
in Basis 10 dargestellt, aber wie11
in Basis 2 (binär). Die Basis 10 kann größere Zahlen mit weniger Symbolen als die Binärzahl ausdrücken, aber die Symboltabelle der Basis 10 ist 5x größer (0 ... 9) als die Symboltabelle der Basis 2 (0, 1). Der Vergleich der Ausdruckskraft mit der Größe des Symbolsatzes wird als "Radixökonomie" bezeichnet (Radix ist die Nummer der Basis, z. B. 2 in binär oder "Basis 2"). Die natürliche Frage, die folgt, ist, wo ich in Bezug auf diesen Kompromiss sein möchte. Welche Zahl soll ich als Basis verwenden? Kann ich den Kompromiss zwischen Ausdruckskraft und Größe des Symbolsatzes optimieren?Wenn Sie sich die Grafik im Artikel zur Radix-Wirtschaft in Wikipedia ansehen , können Sie die Volkswirtschaften verschiedener Basen vergleichen. In unserem Beispiel hat die Basis 2 eine Basisökonomie von 1,0615, während die Basis 10 eine Ökonomie von 1,5977 hat. Je niedriger die Zahl, desto besser. Die Basis 2 ist effizienter als die Basis 10.
Ihre Frage zur Basis 4 hat eine Effizienz von 1.0615, was der Größe der Basis 2 (oder der Binärzahl) entspricht. Wenn Sie diese also über Basis 2 anwenden, erhalten Sie im Durchschnitt nur genau dieselbe Speichergröße pro Zahl.
Wenn Sie sich fragen, gibt es eine ideale Zahl, die Sie als Basis verwenden können. Diese Grafik zeigt, dass es sich nicht um eine ganze Zahl handelt, sondern um die mathematische Konstante
e
(~ 2.71828), die mit einer Ökonomie von 1.0 die beste ist. Dies bedeutet, dass es so effizient wie möglich ist. Für jeden Satz von Zahlen gibt base im Durchschnitte
die beste Darstellungsgröße, wenn man die Symboltabelle zugrunde legt. Es ist das beste "Bang for your Buck".Während Sie denken, dass Ihre Frage vielleicht einfach und grundlegend ist, ist sie tatsächlich subtil komplex und ein sehr lohnendes Thema, das Sie beim Entwerfen von Computern berücksichtigen sollten. Wenn Sie einen idealen diskreten Computer entwerfen könnten, bietet die Verwendung von Basis 4 das gleiche Angebot - den gleichen Platz für die Kosten - wie die Binärdatei (Basis 2). Die Verwendung von Base 3 oder Ternary bietet ein besseres Angebot als Binary (und die Russen haben einen physischen, funktionierenden Computer mit Base-3-Darstellung in Transistoren gebaut). aber im Idealfall würden Sie Basis e verwenden. Ich weiß nicht, ob jemand einen funktionierenden physischen Computer mit der Basis e gebaut hat, aber mathematisch gesehen bietet er mehr Platz als binäre und ternäre - in der Tat das beste Angebot unter allen reellen Zahlen.
quelle
Würden Sie glauben, dass ich die Gesamtsumme des menschlichen Wissens mit einem einzigen Match verschlüsseln kann?
Wenn ich ein Bit in eine einzelne Übereinstimmung einkodiere, sehen die Symbole möglicherweise so aus:
Mit genügend Übereinstimmungen kann ich nichts sagen. Aber ich kann mit der gleichen Übereinstimmung doppelt so viel sagen, wenn ich zwei weitere Symbole hinzufüge. Welches könnte so aussehen:
Doppelt so viele Infos mit dem gleichen Match! Gut, warum nicht? Nun, warum aufhören? Drehe jedes Symbol um 45 Grad und wir verdoppeln erneut. 30, 15, weiter und weiter. Bald habe ich genug Symbole, um mit nur einem Treffer alles und jedes sagen zu können! Sobald ich das mache, haben wir allerdings ein Problem. Was sagt dieses Match aus?
Wie können Sie sicher sein, welches Symbol das jetzt ist? Wie viel Zeit brauchen Sie, um sicher zu sein? Das ist das Problem. Je mehr Symbole ich hinzufüge, desto schwieriger ist es, sie voneinander zu unterscheiden.
Wenn es sich um ein Spiel handelt, dann sicher. Aber auch wenn dies nicht zu einer Verlangsamung der Lesegeschwindigkeit geführt hat, nehmen wir jetzt mehr Platz auf meiner Küchentheke ein. Es ist immer etwas.
quelle
Wenn ein Bit 4 Zustände anstelle von zwei in einem Symbol (Bit) hätte, dann hätten Sie ja die doppelte Menge an Speicher. Dies kann je nach verwendeter Technologie doppelt so viel Platz beanspruchen oder auch nicht.
Es gibt ein Beispiel aus der Praxis, das Sie jeden Tag vor Augen haben: Ethernet (das ist kein Speicher, aber ähnlich, wenn es Daten überträgt), unter anderem das gewöhnliche "schnelle Ethernet" mit 100 MBit 100BASE -TX, und Sie haben 1GbE-Ethernet.
Offensichtlich erfordert 1 GbE zehnmal höhere Frequenzen als 100 MBit (da 100 MBit zehnmal höhere Frequenzen als 10 MBit erfordern). Aus diesem Grund benötigen Sie auch teurere Kabel. Offensichtlich.
Ups ... das stimmt überhaupt nicht .
100-MBit-Ethernet überträgt über zwei Kabelpaare mit 100 MHz, während GbE über 4 Kabelpaare mit 125 MHz überträgt.
Warten Sie, damit GbE wirklich nur 2 1/2 mal schneller ist als 100 Mbit Ethernet? Bekomme ich nur 250 MBit / s raus?
Nein, es wird auch eine 5-PAM-Codierung verwendet, die 2,32 Bit pro Impuls pro Kabelpaar codieren kann, von denen 2 Bit als tatsächliche Information verwendet werden, und der Rest macht das Signal rauschunempfindlicher. Dank dieser Teilbits kann 1000BASE-T auch die 8B10B-Codierung löschen.
Sie haben also die Anzahl der Drähte verdoppelt und die Frequenz leicht erhöht, aber Sie erhalten 10-mal mehr Durchsatz!
Wenn Sie dies für magisch halten, schauen Sie sich an, wie digitales Kabelfernsehen funktioniert , und wenn Sie immer noch nicht überzeugt sind, schauen Sie sich ADSL an, das 32768-QAM verwendet, um 15 Bits in einem Symbol zu codieren.
Gleicher alter Kupferdraht, gleiches Frequenzband, 15-mal mehr Stuff.
EDIT:
Ein weiteres sehr offensichtliches Beispiel aus dem wirklichen Leben, das ich völlig vergessen habe (da es anscheinend einfach zu offensichtlich ist!), Das Sie jeden Tag vor Augen haben, ist: USB-Pendrives.
Diese verwenden üblicherweise MLC- Flash-Speicher. Was ist das? Es ist eine Art Speicherzelle, die einen von vier verschiedenen Ladezuständen speichert. Dies ist die kleinste Einheit, auf die Sie auf Hardwareebene zugreifen können. Sie könnten also sagen, Ihre "Bits" haben tatsächlich 4 Zustände (sie geben nicht wirklich nur zwei statt nur eines aus, und Sie können sowieso nur vollständige Sektoren vom Gerät lesen ... aber Sie könnten es sich wohl ansehen dieser Weg).
Gleiche Anzahl von Zellen, aber doppelter Speicher. Billiger, kleiner, etwas weniger zuverlässig, aber ... in erster Linie billiger .
quelle
Mit 4 anstatt zwei Symbolen pro Ziffer können Sie doppelt so viele Informationen in einer einzelnen Ziffer speichern. Wenn Sie jedoch die Anzahl der Stellen erhöhen, können Sie exponentiell mehr Informationen speichern:
Beliebige n Ziffern in der Basis 2 können 2 ^ n Zustände codieren, wohingegen die Basis 4 4 ^ n codieren kann.
quelle
(4^n) / (2^n) = 2^n
Dies bedeutet, dass Sie exponentiell (2^n
mal) mehr Zustände darstellen können, jedoch nur zweimal (mallog2(4^n) / log2(2^n) = 2n / n = 2
) mehr Speicher. Denken Sie daran, dassstorage capacity in bits = log2(number of states)