Das Qubic Berechnungsmodell (ELI9)

Ich habe diese sehr einfach gehaltenen Erklärungen (ELI9 = erkläre, als wäre ich 9) für den Guide gewählt, wer sich tiefer in die Thematik einarbeiten möchte, dem empfehle ich die 6-teilige Serie "Explaining the Qubic Computation Model" von Autor Eric Hop, IOTA Foundation.

30. Apr'19


Übersetzung des Blogartikel von Autor Navin Ramachandran, IOTA Foundation.


Eine einfache(re) Erklärung des Qubic Computation Model, geschrieben nach Diskussionen zwischen Andrew Brough, Jake Cahill, Sabri Goldberg, Sergey Ivancheglo, Igor Nielsen, Navin Ramachandran und David Sønstebø. Wahrscheinlich nicht ganz ein ELI5 (Explain Like I'm 5 / dt. erkläre, als wäre ich 5)




In diesem Blogbeitrag werden wir uns ansehen, wie Computer auf einer grundlegenden Ebene funktionieren und wie wir einen etwas anderen Ansatz in Qubic in Betracht ziehen. Wir nennen diesen Ansatz das Qubic Computation Model QCM (dt. Berechnungsmodell).

 

 

Warum bauen wir ein neues Berechnungsmodell auf?

IOTA möchte eine Maschine zu Maschine Wirtschaft ermöglichen, für Geräte im Internet der Dinge. Diese Geräte müssen mit geringen Energiemengen und in rauen physikalischen Umgebungen arbeiten.

Die traditionelle Elektronik verwendet komplexe Mechanismen, die viel Energie verbrauchen und empfindlicher auf diese Umgebungen reagieren. Mit dem QCM wollen wir ein energieeffizienteres und widerstandsfähigeres Modell für solche Geräte schaffen.

QCM geht auf das Projekt Jinn Labs (Anfang 2013) zurück, dass sich mit neuartigen Hardware-Ansätzen für Fog/Edge Computing und verteilte künstliche Intelligenz beschäftigt. Seitdem hat die gesamte Halbleiterindustrie diese neue Philosophie des "More-Than-Moore" erkannt: dass die Zukunft des Rechnens innovative Ansätze erfordert, anstatt sich auf das Moore'sche Gesetz zur kontinuierlichen Verbesserung der Rechenleistung zu verlassen.

Die QCM-Initiative nimmt einen besonderen Platz in der IOTA Geschichte ein. Sie skizzierte die Vision eines organischen Maschinen-Ökosystems, das mit der Distributed Ledger Technologie verheiratet ist, aus der IOTA geboren wurde.

 

 

Was ist ein Berechnungsmodell?

Ein Berechnungsmodell beschreibt die Funktionsweise eines Computers. Ein Computer nimmt einige Daten auf, verarbeitet diese und gibt ein Ergebnis zurück. Dieser Prozess wird als Berechnung bezeichnet, die das Herzstück aller Computer ist. Auf diese Weise berechnen Computer die Summe "1 + 1 = 2". So drucken Computer einen Buchstaben auf den Bildschirm, wenn Sie eine Taste auf der Tastatur drücken. Auf diese Weise machen Computer alles.

 

 

Der Weg, den die Daten von der Eingabe bis zum Ergebnis durch eine Berechnung nehmen, wird als ihr Datenfluss bezeichnet. Wenn wir über Berechnungsmodelle sprechen, ist es dieser Datenfluss, an dem wir interessiert sind. Berechnungsmodelle ermöglichen es uns, den Datenfluss zu visualisieren, um den besten Weg für einen Computer zu einem Ergebnis zu finden. Das Modell im Video unten erlaubt es zum Beispiel, verschiedene Münzen einzugeben und zu beobachten, wie sie durch die Kanäle fließen, bis sie am Ende sortiert sind.

 

 

In fast allen Computern und digitalen Geräten erfordern die traditionellen Berechnungsmodelle recht komplexe Mechanismen zur Handhabung des Datenflusses. Jedoch kann das QCM den Datenfluss auf viel billigere und einfachere Weise handhaben.

Bitte beachten Sie, dass traditionelle Computer mit binären Daten arbeiten - alle Daten in binärer Form werden als 0 oder 1 dargestellt - diese Zahlen werden Bits genannt. QCM arbeitet mit trinären Daten - hier werden die Daten als -1, 0 oder +1 dargestellt - diese Zahlen werden Trits genannt.

Nun werden wir von den Grundlagen ausgehen, um zu erkunden, wie das QCM funktioniert und woraus es besteht. Dann werden wir erklären, wie trinäre Datenflüsse effizienter als binäre sind.

 

 

 

Aufbau eines einfachen QCM

Um zu veranschaulichen, wie das QCM funktioniert, schauen wir uns eine grundlegende Berechnung an: Wie überprüfen wir, ob zwei verschiedene Eingaben gleich sind?

Wenn z.B. ein Eingang 0 ist und der andere Eingang ebenfalls 0 ist, können wir daraus schließen, dass sie gleich sind.

Um zu zeigen, wie einfach es ist, das Qubic-Berechnungsmodell für diese Situation zu erstellen, malen wir ein Bild, das den meisten von uns bekannt sein wird. Einen Sandstrand, nun stellen Sie sich diesen Strand mit vor:

  • Kanälen im Sand, die einen elektrischen Schaltkreis darstellen.
  • Kanaleingänge, in die wir Wasser hineinschütten können - dies stellt die Daten
  • Kleine Dämme, die Berechnungen darstellen (dargestellt durch die Damm-Formen auf dem Bild unten)

 

 

Um zwei Eingänge (Cyan und Orange) zu vergleichen, gießt ein Kind (nennen wir sie Alice) Wasser in einen cyanfarbenen und einen orangefarbenen Eingang. Beide Eingänge können einen von drei Werten darstellen: -1, 0 und +1. Vergessen Sie nicht, dass diese Werte Trits genannt werden.

Nun reicht ein Wasserkanal nicht aus, um bis zur Spitze des Staudamms zu steigen. Schauen wir uns also 2 verschiedene Fälle an.

Stellen Sie sich zunächst vor, Alice gießt Wasser in den 0-Trit der Eingänge Cyan und Orange. Wenn du den Kanälen von diesen Eingängen aus folgst, wirst du sehen, dass beide Kanäle zum selben Damm führen. Wenn beide Kanäle zum selben Damm führen, dann steigt genug Wasser nach oben und fließt darüber. Wir können also sagen, dass, wenn Wasser über den Damm fließt, beide Eingabewerte gleich waren (0 und 0 in diesem Fall).

 

Bild: Gleicher Wert Trits

 

Nun wollen wir sehen, was passiert, wenn Alice Wasser in den -1-Trittwert des cyanfarbenen und den 0-Trittwert des orangefarbenen Eingangs gießt. Die Kanäle von diesen Eingängen führen zu verschiedenen Dämmen. Wenn nur ein Kanal zu einem Damm führt, gibt es nicht genug Wasser, um über den Damm zu steigen. Wir können also sagen, dass, wenn das Wasser nicht über einen Damm steigt, die beiden Eingangswerte nicht gleich waren (-1 und 0 in diesem Fall).

 

Bild: Ungleicher Wert Trits

 

Dieser Fluss stellt eine grundlegende Berechnung dar. Das Wasser, das über die Dammkrone fließt, ist das Ergebnis der Berechnung.

Solange Alice immer wieder Wasser in die gleichen Eingänge schüttet, bleibt das Ergebnis gleich. Sind beispielsweise die beiden Eingangswerte gleich, fließt das Wasser weiter über den Damm und Alice sieht das Ergebnis. Um dann verschiedene Werte zu vergleichen, muss Alice den Wasserfluss stoppen, ihre Eimer im Meer füllen und dann Wasser in die neuen Eingänge schütten.

 

 

 

Merger (Fusion)

Erklärung: Abra's merge Funktion ist eine Zusammenführungsanweisung (Fusion) und verwendet eine oder mehrere Eingabeseiten, die alle gleich groß sein müssen.

An unserem Strand spielen die Dämme eine wichtige Rolle. Sie helfen bei der Entscheidung, ob zwei Trits gleich sind und lassen nur dann Wasser über sie fließen, wenn sie gleich sind. Wenn das Wasser über die Spitze der Dämme fließt, endet es an der Stelle, an der alle drei Kanäle zusammentreffen. Diesen Punkt nennt man Merger (Fusion).

Es ist die Aufgabe der Merger Funktion, das Ergebnis an etwas anderes weiterzugeben, damit mehr Arbeit daran geleistet werden kann. Zum Beispiel kann man sagen: "Wenn diese Trits gleich sind, dann geh und mach die nächste Phase".

Damit Sie sehen können, wie dieses System funktioniert, gibt es hier einen Spickzettel, eine sogenannte Look-Up-Table (LUT), die beschreibt, was mit dem Wasser passiert, je nachdem, welche Eingänge benutzt werden.

 

 

Also sehen wir uns diese LUT in Aktion an...

 

Bild: Die Merger Funktion (Fusion)

 

Hinweis: Sie haben die Kontrolle über diese LUT. Wenn Sie den Ausgang ändern möchten, können Sie die LUT aktualisieren. In dieser vorliegenden Form müssen beide Eingänge gleich sein, damit Wasser über einen Damm fließen kann. Was aber, wenn Sie möchten, dass beide Eingänge ungleich sind, damit das Wasser über den Damm fließt? Nun, wir müssten unser Beispiel erweitern, das wir später in diesem Artikel betrachten werden. Aber gehen wir zuerst ein paar Konzepte durch.

 

 

 

Warum ist QCM anders?

Zunächst der wichtigste Aspekt. Die Tatsache, dass wir QCM-Instanzen an einem Strand bauen können, zeigt, wie einfach es ist. Sie benötigen keine zusätzlichen Komponenten.

In traditionellen Berechnungsmodellen würden wir komplexere Geräte benötigen, um das Wasser entlang der Kanäle in Bewegung zu halten und um Hindernisse zu vermeiden. Diese Geräte wären anfälliger für Ausfälle und würden zusätzliche Energie verbrauchen.

Diese Einfachheit verleiht QCM daher seine Vorteile in Bezug auf Energieeffizienz und Widerstandsfähigkeit (z.B. in rauen physikalischen Umgebungen, in denen komplexe Elemente anfälliger für Ausfälle sind). Aber auch dieser Ansatz hat das Potenzial, viele der großen aktuellen Probleme bei der Chipherstellung zu überwinden (von Taktversatz, dunklem Silizium, Übersprechen, Gefahren, PVT-Variationen und Strahlungsanfälligkeit), obwohl dies außerhalb des Aufgabenbereichs eines ELI9-Artikels liegt.

 

 

Die Branch und der Supervisor

Erklärung: Ein Branch ist eine Folge von Abra-Anweisungen.

An unserem Strand sind die einzigen Teile, die wir für eine Berechnung benötigen, die Kanäle, die Mikrodämme und Alice. Zusammen werden die Kanäle und die Dämme eine Branch genannt, und Alice wird ihr Supervisor genannt.
Unsere Branch macht nur eine Art von Berechnung, die zwei Trits auf Gleichheit prüft. Aber wir hätten unsere Branch auch komplexer machen können und sie erweitern können, z.B. um eine Branch zu machen, die prüft, ob die Trits auch ungleich sind.

 

Die Branch erweitern

In diesem Beispiel haben wir unsere Branch erweitert, so dass nun, wenn die Trits ungleich sind, die Fusion (Merger) ein Ergebnis von -1 erhält. Wenn die Trits gleich sind, erhält die Fusion (Merger) ein Ergebnis von +1. Folgen Sie den Linien auf dem Diagramm unten, um sich selbst davon zu überzeugen.

 

 

Nun, erinnern Sie sich, dass wir gesagt haben, dass Sie die LUT aktualisieren können? Wir können den Ausgang dieser neuen LUT umkehren, so dass:

  • Wenn die Trits gleich sind, erhält die Fusion (Merger) ein Ergebnis von -1
  • Sind die Trits ungleich, erhält die Fusion (Merger) ein Ergebnis von +1

Diese Ergebnisse können dann im nächsten Schritt verwendet werden.

 

 

Memory latches

Was passiert, wenn Alice eine Pause braucht und ihr Ergebnis nicht vergessen will?

Es ist Mittag, und Alice will sich mit ihrer Familie zusammensetzen. Aber sie will nicht vergessen, dass ihre letzten beiden Trits gleichwertig waren, und sie will auch nicht, dass der Merger aufhört, ihr Ergebnis weiterzugeben. Also beschließt sie, ihren Wasserspender zu benutzen.

Jetzt, wo Alice eine Wasserquelle hat, braucht sie einen Weg, um sie zum Merger (Fusion) zu leiten. Um das zu tun, gräbt sie einen direkten Kanal von ihrem Wasserspender zum Merger.

Zusammen werden der Wasserspender und der Kanal, der ihn mit dem Merger verbindet, als Memory-Latch bezeichnet. Ein Memory-Latch hilft Alice nicht nur, ihr Ergebnis zu speichern, sondern bewahrt sie auch davor, ständig Wasser einzuspeisen, so dass der Merger das Ergebnis immer wieder an den nächsten Schritt" weitergibt.

 

 

Die Rolle von Alice

Um die Dinge einfach zu halten, gehen wir zurück zu unserer ursprünglichen Branch, die nur auf gleiche Trits prüft.

 

 

In unserer Branch (Abra-Arbeitsanweisung) gießt Alice Wasser in zwei Eingänge, die in eine Richtung fließen, der Anweisung hinunter und in Richtung des Mergers. Diese Branch gibt einen einzigen Trit (+1 für gleich) aus, der das Ergebnis unserer Berechnung ist.

In der QCM wird Alice als Supervisor bezeichnet. Alice ist der Schlüssel zur Einfachheit von QCM. Alice (der Supervisor der Branch) übernimmt die schwere Arbeit, während die Branch selbst sehr einfach gehalten werden kann, was sie gegen äußere Einflüsse unempfindlich macht. Tatsächlich benötigen einige andere Branch keinen eigenen Supervisor und können die Ausgänge anderer Branch zur Regulierung ihres Flusses nutzen.

 

 

 

Environment, entities and effects (EEE)

In einem früheren, eher technischen Blogbeitrag beschreiben wir die Idee der Entitäten, Effekte und Environments (Umgebung, Entitäten und Effekte).

Unsere Zweigstelle ist ein Beispiel für eine Entität. Es ist die Aufgabe der Entität, eine Berechnung mit einigen Eingabedaten durchzuführen. Diese Eingabedaten werden der Entität von Alice, unserer Supervisorin, zur Verfügung gestellt.

Alice nimmt Daten aus einer anderen Umgebung, wenn sich etwas in dieser Umgebung ändert. Diese Änderung wird als Effekt bezeichnet. Ein Beispiel für eine Umgebung kann jede andere Zweigstelle sein und die Änderung (aka Effekt) könnte Wasser sein, das an einem Ausgang hinunterfließt.

Dieser Prozess wird als Wave bezeichnet. Der Supervisor entnimmt Daten aus einer Umgebung und gibt sie als Eingabe an unsere Zweigstelle weiter, sodass sie durchfließen und in einem Ergebnis enden können.

Wie bereits erwähnt, benötigen nicht alle Zweigstellen in QCM einen eigenen Supervisor. Jede Zweigstelle kann Daten vom Supervisor einer anderen Zweigstelle empfangen.

Da der Datenfluss einfach gehalten wird, ist QCM kostengünstiger und einfacher zu implementieren als traditionelle Berechnungsmodelle.

 

 

 

Die Kraft der Drei

Sie erinnern sich vielleicht daran, dass wir gesagt haben, dass QCM trinär ist. Das liegt daran, dass trinäres QCM effizienter als binäres QCM ist. Nun, da wir unsere erste Zweigstelle in den Sand gebaut haben, können wir erklären, warum es effizienter ist.

An unserem Strand hat Alice 2 Eingänge mit jeweils 3 Kanälen (insgesamt = 6 Kanäle), die jeweils Platz brauchen. Um effizienter zu sein, ist es das Ziel von Alice, den geringsten Platz am Strand zu nutzen, um eine maximale Anzahl von Berechnungen durchzuführen. Platz am Strand ist nicht billig!

Jeder Eingang in unserer Zweigstelle nimmt jeweils einen Trit auf einmal an. So kann Alice diese sechs Kanäle nutzen, um Berechnungen für jede zwei-Trit Zahl (eine für jeden Eingang) durchzuführen.

Wie würde unser Modell aussehen, wenn wir die gleiche Anzahl (6) von Kanälen an einem Strand verwenden würden, die binär (0 und 1) statt trinär (-1, 0 und +1) verwenden würden? Nun, Alice bräuchte 2 Kanäle pro Eingang (jedes Bit hat zwei mögliche Werte) und so könnten wir 3 Eingänge haben (2 Kanäle x 3 Eingänge = 6). Sie könnte also drei Eingänge mit diesen sechs Kanälen verwenden, um Berechnungen mit einer beliebigen Anzahl von drei Bits durchzuführen.

Das klingt vielleicht so, als wäre binär effizienter, weil wir eine Drei-Bit-Zahl statt einer Zwei-Trit-Zahl im gleichen Speichraum haben, aber schauen wir uns das mal genauer an.

Im trinären Bereich kann ein Trit einen von drei möglichen Werten haben: -1, 0, oder +1. Auf unserem Strand kann Alice zwei Trits eingeben. Daraus ergeben sich 3² (=3x3) mögliche Kombinationen, was ihr 9 mögliche Werte gibt. Beachten Sie, dass dies mit den 9 möglichen Kombinationen auf der LUT übereinstimmt, die wir oben beschrieben haben. Alice kann also die 6 Kanäle nutzen, um 9 Werte aus einer Zahl mit zwei Trits zu verarbeiten.

Im binären kann ein Bit einen von zwei möglichen Werten haben: 0 oder 1. Auf unserem Binären Strand kann Alice drei Bits eingeben. Daraus ergeben sich 2³ (=2x2x2) mögliche Kombinationen, was ihr 8 mögliche Werte gibt. Alice kann also die 6 Kanäle nutzen, um 8 Werte aus einer Drei-Bit-Zahl zu verarbeiten.

 

 

Durch die Verwendung von trinären statt binären Werten kann Alice den gleichen Platz und die gleichen sechs Kanäle verwenden, um Zahlen zu verarbeiten, die einen Maximalwert von 9 statt 8 haben. Diese Einsparung hilft Alice, die meisten Berechnungen auf dem wenigsten Platz durchzuführen.

Obwohl eine 1/8 Verbesserung (9 Werte statt 8) nicht signifikant aussieht, macht sie unsere Berechnungen viel effizienter. Und diese Effizienz wird noch deutlicher, wenn wir anfangen, komplexe Berechnungen wie Multiplikation oder sogar KI durchzuführen.

 

 

Anmerkung: 4-ry ist nicht effizienter als 3-ry (trinär). Wenn wir 12 Kanäle nehmen würden, würden wir drei 4-ry Zahlen mit 64 Werten (4³) oder vier 3-ry Zahlen mit 81 Werten erhalten (3⁴). Auch hier sehen wir, dass trinär effizienter ist. In der Tat wäre jede andere N-ry noch schlechter als 4-ry.

 

 

 

Zusammenfassung

Wir haben oben gezeigt, wie wir mit QCM den Datenfluss einfach halten können. Dies ist der Schlüssel, um die Chipfertigung sowohl einfach als auch kostengünstig zu halten, und bedeutet, dass die Schaltungen auch extremeren Umgebungen standhalten können.

Wir haben auch gezeigt, wie der Einsatz von Trinary die Effizienz des Systems weiter verbessern kann.

Wenn diese Änderung im großen Maßstab angewendet wird, hat sie das Potenzial, einen bedeutenden Einfluss auf die Welt der Computer zu haben.