Ist ein Objekt mit drei Zuständen nicht sofort in der Lage, mehr Informationen zu speichern und größere Werte zu verarbeiten? Ich weiß, dass Prozessoren derzeit massive Netze von XOR-Gates verwenden und dass diese überarbeitet werden müssten.
Da wir bei 64 Bit sind (wir können 2 ^ 63 mögliche Zustände darstellen), könnte die Berechnung der äquivalenten ternären Erzeugung eine Zahl mit 30 weiteren zehn Stellen log (3 ^ 63-2 ^ 63) unterstützen.
Ich stelle mir vor, es ist genauso einfach, die Potentialdifferenz zwischen +1 und 0 zu erkennen wie zwischen -1 und 0.
Würde eine gewisse Komplexität der Hardware, des Stromverbrauchs oder der Chipdichte einen Anstieg der Speicher- und Rechenleistung ausgleichen?
Antworten:
Es ist viel schwieriger, Komponenten zu erstellen, die mehr als zwei Zustände / Ebenen / was auch immer verwenden. Zum Beispiel sind die in der Logik verwendeten Transistoren entweder geschlossen und leiten überhaupt nicht oder weit offen. Wenn sie halb geöffnet sind, ist viel mehr Präzision erforderlich und es wird zusätzliche Leistung verbraucht. Trotzdem werden manchmal mehr Zustände zum Packen von mehr Daten verwendet, aber selten (z. B. moderner NAND-Flash-Speicher, Modulation in Modems).
Wenn Sie mehr als zwei Zustände verwenden, müssen Sie mit Binär kompatibel sein, da der Rest der Welt sie verwendet. Drei ist aus, weil die Umwandlung in Binär eine teure Multiplikation oder Division mit Rest erfordern würde. Stattdessen gehen Sie direkt zu vier oder einer höheren Zweierpotenz.
Dies sind praktische Gründe, warum dies nicht getan wird, aber mathematisch ist es durchaus möglich, einen Computer auf ternärer Logik aufzubauen.
quelle
Viele Fehlinformationen hier. Binär hat einen einfachen Ein / Aus-Schalter. Trinary / Ternary kann einen von 2 Modi verwenden: Balanced aka -1, 0, +1 oder unsymmetrisch 0, 1, 2, ist aber nicht einfach ein- oder ausgeschaltet oder hat korrekterweise 2 "on" -Zustände.
Mit der Erweiterung von Glasfaser und expansiver Hardware würde uns ternary tatsächlich zu einem viel expansiveren und schnelleren Zustand zu viel geringeren Kosten führen. Moderne Codierung könnte zumindest anfänglich weiterhin in Kombination mit neueren ternären Codes verwendet werden (ähnlich wie 32-Bit-Software weiterhin auf 64-Bit-Hardware verwendet werden kann). Benötigen Sie nur die frühe Hardware, um zu überprüfen, welche Informationen eingehen, oder die Software, um im Voraus bekannt zu geben, ob es sich um ein bisschen oder eine Kleinigkeit handelt. Der Code könnte für die gleiche oder eine geringere Leistung durch 3 Teile gleichzeitig anstelle der modernen 2 gesendet werden.
Bei Glasfaserhardware wird anstelle des modernen Ein / Aus-Binärprozesses durch 0 = Aus und die anderen 2 Schalter als orthogonale Polarisation des Lichts bestimmt. Was die Sicherheit betrifft, könnte dies für den Einzelnen tatsächlich massiv sicherer gemacht werden, da jeder PC oder sogar Benutzer auf eine bestimmte Polarisations- "Spezifikation" eingestellt ist, die nur zwischen dem Benutzer und dem Ziel gesendet / empfangen werden soll. Das gleiche würde für die "Tore" mit anderer Hardware gelten. Sie müssten nicht größer sein, haben nur die Option für 3 Möglichkeiten anstelle von 2.
Es gab sogar einige Theorien und möglicherweise sogar einige Tests zum Josephson-Effekt, die ternäre Speicherzellen unter Verwendung von zirkulierenden supraleitenden Strömen entweder im Uhrzeigersinn, gegen den Uhrzeigersinn oder ausgeschaltet ermöglichen würden.
Im direkten Vergleich ist Ternary die ganzzahlige Basis mit der höchsten Radix-Ökonomie, dicht gefolgt von binär und quaternär. Sogar einige moderne Systeme verwenden eine Art ternäre Logik, auch bekannt als SQL, die ternäre Logik implementiert, um NULL-Feldinhalte zu verarbeiten. SQL verwendet NULL, um fehlende Daten in einer Datenbank darzustellen. Wenn ein Feld keinen definierten Wert enthält, geht SQL davon aus, dass ein tatsächlicher Wert vorhanden ist, der Wert jedoch derzeit nicht in der Datenbank aufgezeichnet ist. Beachten Sie, dass ein fehlender Wert nicht mit einem numerischen Wert von Null oder einem Zeichenfolgenwert mit einer Länge von Null identisch ist. Der Vergleich von irgendetwas mit NULL - sogar einem anderen NULL - führt zu einem UNBEKANNTEN Wahrheitszustand. Beispielsweise wird der SQL-Ausdruck "City = 'Paris'" für einen Datensatz mit "Chicago" im Feld "City" in "FALSE" aufgelöst. Es wird jedoch für einen Datensatz mit einem NULL-Stadtfeld in UNBEKANNT aufgelöst. Mit anderen Worten, für SQL stellt ein undefiniertes Feld möglicherweise jeden möglichen Wert dar: Eine fehlende Stadt kann Paris darstellen oder nicht. Hier wird bei modernen Binärsystemen trinäre Logik verwendet, wenn auch grob.
quelle
mov eax, ebx
wird in beiden Befehlssätzen genau dasselbe tun. Mit der Unterscheidung zwischen binär und binär ist dies keine vernünftige Garantie mehr: Ein trinäres Register kann sich sehr von einem binären Register unterscheiden.mov eax ebx
bedeutet möglicherweise nicht dasselbe für beide Codierungen.89 d8
in 0/1 Bits würde in Trits gleich bleiben, aber Sie erhalten viel mehr Opcodes, wo eine dieser 16 Trits sein kann-1
. Und das ist nicht der gleiche Opcode.mov eax, ebx
immer derselbe Prozess ausgeführt wird.Natürlich könnten wir mehr Daten pro Bit speichern, genau wie unser Dezimalzahlensystem viel mehr Daten in einer einzigen Ziffer speichern kann.
Das erhöht aber auch die Komplexität. Binär verhält sich in vielen Fällen sehr gut, was die Manipulation bemerkenswert einfach macht. Die Logik für einen binären Addierer ist viel einfacher als eine für ternäre Zahlen (oder für Dezimalzahlen).
Sie könnten auf magische Weise keine weiteren Informationen speichern oder verarbeiten. Die Hardware müsste so viel größer und komplexer sein, dass sie die größere Kapazität mehr als ausgleichen würde.
quelle
Vieles hat damit zu tun, dass Bits letztendlich als elektrische Impulse dargestellt werden und es einfacher ist, Hardware zu erstellen, die einfach zwischen "geladen" und "ohne Ladung" unterscheidet, und Übergänge zwischen Zuständen leicht zu erkennen. Ein System, das drei Zustände verwendet, muss etwas genauer zwischen "geladen", "teilweise geladen" und "keine Ladung" unterscheiden. Außerdem ist der "geladene" Zustand in der Elektronik nicht konstant: Die Energie beginnt schließlich zu "bluten", so dass ein "geladener" Zustand im tatsächlichen "Energieniveau" variiert. In einem 3-Staaten-System müsste dies ebenfalls berücksichtigt werden.
quelle
Zum einen gibt es keine kleinere Informationseinheit als ein bisschen. Das Bearbeiten von Bits ist die grundlegendste und grundlegendste Art, Informationen zu behandeln.
Vielleicht liegt ein stärkerer Grund darin, dass es viel einfacher ist, elektrische Komponenten mit zwei stabilen Zuständen anstelle von drei herzustellen.
Nebenbei: Ihre Mathematik ist ein bisschen anders. Eine 64-stellige Binärzahl enthält ungefähr 101,4 Binärziffern. Erläuterung: Die größte 64-stellige Trinary-Nummer lautet 3433683820292512484657849089280 (3 ^ 64-1). Um dies binär darzustellen, sind 102 Bits erforderlich: 10101101010110110101001010111110001111011110010011001000100111100011000111100101111101011110100000000
Dies ist leicht zu verstehen, log2 (3 ^ 64) ist ungefähr 101.4376
quelle
Es gibt auch Theorien, die darauf hindeuten, dass Glasfasern Lichtfrequenzen (dh Farbe) verwenden könnten, um Zustände zu differenzieren, wodurch eine nahezu unendliche (abhängig von der Auflösung der Detektionseinheit) Anzahl von Basismöglichkeiten ermöglicht wird.
Logikgatter sind definitiv für jede Basis kostenpflichtig, aber verwenden wir Trinary als Beispiel:
Für ein trinäres XOR-Gatter kann es exklusiv für einen (oder einen beliebigen) der drei Zustände sein, die es vergleicht, ODER für einen der anderen drei Zustände. Es könnte auch zwei der drei Zustände für eine Binärausgabe miteinander verbinden. Die Möglichkeiten nehmen buchstäblich exponentiell zu. Dies würde natürlich komplexere Hardware und Software erfordern, aber die Komplexität sollte die Größe und vor allem die Leistung (Lesewärme) verringern. Es ist sogar die Rede von der Verwendung von Trinary in einem Nano-Computersystem, in dem es eine mikroskopische "Erhebung", ein "Loch" oder "unverändert" gibt, um die drei Zustände darzustellen.
Im Moment befinden wir uns in einer Art QWERTZ-Problem. Qwerty wurde entwickelt, um ineffizient zu sein, da es kein Problem mit der Schreibmechanik mehr gibt, aber jeder, der heute Tastaturen verwendet, hat gelernt, das QWERTY-System zu verwenden, und niemand möchte es ändern. Trinäre und höhere Basen werden eines Tages dieses Problem lösen, wenn wir an die physikalischen Grenzen des binären Rechnens stoßen. Vielleicht nicht für weitere zwanzig Jahre, aber wir alle wissen, dass wir unsere Fähigkeiten nicht alle anderthalb Jahre für immer verdoppeln können.
quelle
Ich glaube, das hat zwei Gründe (bitte korrigieren Sie mich, wenn ich falsch liege): Erstens, weil der Wert von 0 und 1 nicht wirklich stromlos / aktuell oder ähnlich ist. Das Rauschen ist ziemlich hoch, und die elektronischen Komponenten müssen unterscheiden können, dass ein Wert, der beispielsweise von 0,0 bis 0,4 schwankt, eine Null und von 0,7 bis 1,2 eine Eins ist. Wenn Sie weitere Ebenen hinzufügen, erschweren Sie diese Unterscheidung grundsätzlich.
Zweitens: Die gesamte boolesche Logik würde sofort keinen Sinn mehr ergeben. Und da Sie Summe aus booleschen Toren und aus Summe jede andere mathematische Operation implementieren können, ist es schöner, etwas zu haben, das sich gut in die praktische Anwendung für Mathematik einfügt. Was wäre die boolesche Wahrheitstabelle für ein beliebiges Paar zwischen falsch / vielleicht / wahr?
quelle
Eine weitere große Hürde besteht darin, dass eine viel größere Anzahl von Logikoperationen definiert werden müsste. Die Anzahl der Operatoren ergibt sich aus der Formel b ^ (b ^ i), wobei b die Basis und i die Anzahl der Eingaben ist. Für ein Binärsystem mit zwei Eingängen ergibt dies 16 mögliche Operatoren. Nicht alle davon werden normalerweise in Gates implementiert und einige Gates decken mehr als eine Bedingung ab, jedoch können alle mit drei oder weniger der Standard-Gates implementiert werden. Für ein ternäres System mit zwei Eingängen ist diese Zahl um 19683 viel höher. Während mehrere dieser Gatter einander ähnlich wären, wäre letztendlich die Möglichkeit, grundlegende Schaltungen manuell zu entwerfen, fast unmöglich. Während selbst ein Ingenieurstudent in der Lage ist, grundlegende Binärschaltungen in seinem Kopf zu entwerfen.
quelle
Die Antwort von Screwball ist korrekt und korrigiert einige der hier angebotenen falschen Angaben. Diejenigen, die über gebrochene positive Werte geantwortet haben, haben das Konzept des ternären Systems, das auf 0, +1 und -1 basiert, völlig verfehlt. Als die Russen sie in den 1950er Jahren zum ersten Mal bauten, war der Wettbewerb zwischen der UdSSR und den USA intensiv. Ich vermute, dass die Politik zwischen den beiden viel mit der möglichen Popularität der US-Binärdatei gegenüber dem Ternär der UdSSR zu tun hatte.
Nach dem, was ich gelesen habe, werden einige ternäre Computer verwendet. Moskau hat einige an ihrer Universität im Einsatz und IBM hat einige in seinen Labors. Es gibt Hinweise auf andere, aber ich konnte nicht unterscheiden, wie ernst sie sind oder ob sie nur zum Experimentieren oder Spielen dienen. Anscheinend sind sie viel kostengünstiger zu bauen und verbrauchen viel weniger Energie für den Betrieb.
quelle
Ich bin mir ziemlich sicher, dass vieles mit der Fehlerprüfung digitaler Signale zu tun hat. Zum Beispiel ist es beim Quantencomputing nahezu unmöglich, aber nicht unmöglich, das Nichtklonierungsprinzip zu erreichen, aber auch aufgrund der Tatsache, dass es eine erhöhte Anzahl von Zuständen gibt. Für zwei Zustände ist der Prozess der Fehlerprüfung nicht trivial, aber relativ einfach. Für drei Zustände wird die Fehlerprüfung unendlich schwieriger. Dies ist auch der Grund, warum analoge Computer mit nahezu unendlich vielen Zuständen ausgeschlossen wurden.
Wenn Sie sich für Quantum Computing interessieren, schauen Sie sich die Kugelpackung und die Quantenfehlerprüfung an.
quelle
Damit eine Schaltung alles andere als binär arbeitet, müssen Sie definieren, wie die anderen Zustände dargestellt werden. Sie haben ein System von -1, 0 und +1 vorgeschlagen, aber Transistoren funktionieren nicht so. Sie möchten, dass Spannung oder Strom nur in eine Richtung fließen. Ein 3-Zustands-Bit zu erstellen, würde 2 Transistoren erfordern, aber Sie könnten 2 Binärbits aus denselben Transistoren erstellen und 4 statt 3 Zustände haben. Binär ist auf der niedrigen Ebene nur praktischer.
Wenn Sie versucht haben, Schwellenwerte für die Schaltung festzulegen und stattdessen 0, +1, +2 zu verwenden, treten andere Probleme auf. Ich weiß nicht genug, um auf Details einzugehen, aber für Logikschaltungen ist es nur mehr Ärger als es wert ist, besonders wenn sich die Branche bereits vollständig der Binärdatei widmet.
Es gibt einen Bereich, in dem mehrere Ebenen verwendet werden, um mehr als 2 Zustände pro Bit zu erhalten: MLC- Flash-Speicher. Selbst dort wird die Anzahl der Ebenen eine Potenz von 2 sein, so dass der Ausgang leicht in Binär umgewandelt werden kann, um vom Rest des Systems verwendet zu werden.
quelle
Ich denke, dass ternär effizienter wäre. Es wurde einfach nie populär. Binary betrat die Bühne und jetzt wäre ein Wechsel zu ternary eine Änderung von allem, was wir wissen.
quelle
Sicher, aber ein ternäres 'Bit' (ein Tet?) Wäre komplizierter. Sie würden immer noch die gleiche Menge an Informationen speichern, nur in Base3 anstelle von Base2, und die Leistung, wenn Komponenten mit zwei Zuständen die Einfachheit sind. Warum nicht einfach eine Basis mit 10 Staaten erstellen10?
Binäres Rechnen bezieht sich auf binäre UND-, ODER- und NICHT-Gatter, deren immense Einfachheit und Fähigkeit, zu beliebig komplexen Strukturen kombiniert zu werden. Sie sind der Eckpfeiler der gesamten Verarbeitung Ihres Computers.
Wenn es einen schwerwiegenden Fall gäbe, auf ternär oder dezimal umzuschalten, würden sie es tun. Es geht nicht darum, dass sie es so versucht haben und es einfach hängen geblieben ist.
quelle
Wenn wir 3 Zustände verwenden, ist das Hauptproblem, das sich daraus ergibt
Hoffe ich bin überzeugend
quelle
Ich denke, es hat mehr mit Programmierbarkeit, bedingten Anweisungen und der effizienten Verwendung und Funktionalität von Transistoren zu tun als mit irgendetwas anderem. Es mag offensichtlich sein, dass eine verschachtelte ZF wahr ist, wenn ein Strom durch einen Stromkreis fließt, aber wie würde ein Programm wissen, was zu tun ist, wenn die Lösung auf tausend verschiedenen Wegen erreicht werden könnte? Es ist interessant in Bezug auf KI, wo Gedächtnis und Lernen weitaus wichtiger sind als rohe Rechenleistung.
quelle