Nützliche Rechenvorrichtungen erfordern eine Rückkopplung, die es ermöglicht, dass ein Schaltungselement eine im Wesentlichen unbegrenzte Anzahl von sequentiellen Berechnungen ausführt. Verwendbare Rückkopplungskreise müssen Abschnitte enthalten, deren Gesamtzahl der Eingänge (einschließlich der von den Ausgängen zurückgeführten und der nicht zurückgeführten) die Anzahl der Ausgänge überschreitet, die an den Eingang zurückgeführt werden (die einzige Möglichkeit, die die Anzahl der Eingänge nicht bietet). Die Anzahl der rückgekoppelten Ausgänge würde nicht überschritten, wenn die Schaltkreise nicht auf äußere Reize reagieren würden. Da perfekt umkehrbare Logikfunktionen nicht mehr Eingänge als Ausgänge haben können, ist es nicht möglich, aus ihnen eine der Rückkopplungsstrukturen zu konstruieren, die für die wiederholte Ausführung nicht-trivialer Rechenaufgaben erforderlich sind. Beachten Sie, dass bei der in heutigen Computern verwendeten CMOS-Technologie eine Rückmeldung erforderlich ist, um sicherzustellen, dass die von Berechnungen in verschiedenen Teilen einer Schaltung gemeldeten Ergebnisse gleichzeitig anderen Teilen zur Verfügung gestellt werden, da die Signale sonst nicht zu dem relativen Zeitpunkt ankommen würden stellen "Informationen" dar, die nicht perfekt weitergegeben werden konnten; Andere Technologien könnten es ermöglichen, dass viele Gatter Signale mit genau der gleichen Rate ausbreiten, während die Reversibilität erhalten bleibt, aber ich kenne keine praktische Technologie dafür.
Beachten Sie, dass es aus CS-Sicht trivial ist, einen Rechenprozess umkehrbar zu machen, wenn ein anfänglich leeres Speichermedium vorhanden ist, dessen Größe im Wesentlichen proportional zur Anzahl der Schritte multipliziert mit der Menge des Zustands ist, die sich in jedem Schritt ändern könnte. Diese Behauptung widerspricht nicht der Behauptung des vorhergehenden Absatzes, da eine der Anzahl der Schritte proportionale Speicherung eine der Anzahl der Schritte proportionale Schaltungsanordnung erfordert, was eine der Menge proportionale Schaltungsanordnung impliziert, die erforderlich wäre, wenn alle Rückkopplungen beseitigt würden.
Wenn man Ausgänge haben darf, die ignoriert werden, wenn sie bei richtigen Eingangsbedingungen niemals hoch werden, dann könnte es möglich sein, ein System zu entwerfen, das theoretisch von einer reversiblen Logik profitieren würde. Wenn man beispielsweise einen Algorithmus hat, der mit einem 256-Wort-RAM-Block arbeitet, und eine "umkehrbare Logik-CPU" verwenden möchte, die 1.000.000 Operationen pro Sekunde ausführt, und jede Operation entweder ein Register, den Programmzähler oder einen aktualisierten RAM-Wort, könnte man eine "reversible CPU" verwenden, die:
- führten eine Reihe von Anweisungen aus und sendeten bei jeder Anweisung alles, was überschrieben wurde, in einen LIFO-Puffer
- Kopieren Sie nach Ausführung einer Reihe von Anweisungen den RAM in einen anfangs leeren "Weiterleitungs" -Puffer
- Führen Sie unter Verwendung der Werte im LIFO alle Berechnungen in umgekehrter Reihenfolge durch
- Überschreiben Sie den Inhalt des Hauptspeichers mit dem Weiterleitungspuffer, der dabei gelöscht würde.
Das obige Rezept kann beliebig oft wiederholt werden, um den Algorithmus für eine beliebige Anzahl von Schritten auszuführen. nur der letzte Schritt des Rezepts wäre nicht umkehrbar. Die Energiemenge, die pro algorithmischen Schritt bei nicht reversiblen Operationen aufgewendet wird, wäre umgekehrt proportional zur Größe des LIFO und könnte daher beliebig klein gemacht werden, wenn man ein ausreichend großes LIFO bauen würde.
Damit sich diese Fähigkeit jedoch in Energieeinsparungen jeglicher Art niederschlagen lässt, wäre ein LIFO erforderlich, das Energie speichert, wenn Informationen eingegeben werden, und diese Energie sinnvollerweise zurückgibt, wenn sie ausgelesen wird. Außerdem müsste das LIFO groß genug sein, um die Zustandsdaten für genügend Schritte zu speichern, damit die etwaigen Energiekosten für die Verwendung geringer sind als die Menge an Energie, die es sinnvoll eingespart hat. Da es unwahrscheinlich ist, dass die Menge an Energie, die beim Speichern und Abrufen von N Bytes aus einem praktischen FIFO verloren geht, 0 (1) ist, ist es nicht klar, dass eine Erhöhung von N den Energieverbrauch signifikant verringert.