Asynchrone Prozessorarchitektur beschreibt ein bisher noch wenig verbreitetes Design von Prozessoren, das ohne zentralen Taktgeber auskommt. Anstatt alle Bauelemente mit einem gemeinsamen Taktsignal zu versorgen, ist der Prozessor aus asynchronen Schaltkreisen aufgebaut, die sich selbst takten. Durch diese Eigenschaften im Gegensatz zur synchronen Prozessorarchitektur können insbesondere ein niedrigerer Stromverbrauch und höhere Robustheit erreicht werden.
Inhaltsverzeichnis |
Einzelne asynchrone Schaltkreise als Logikblöcke bilden zusammen einen asynchronen Prozessor. Jeder dieser Schaltkreise besteht aus einer Logikeinheit als Datenpfad und einer Kontroll-Logik. Der Datenpfad ist für die eigentlichen Berechnungen verantwortlich, während die Kontroll-Logik die Übertragung der Daten zwischen den einzelnen Bauelementen steuert. Diese darf dann erfolgen, wenn die Logikeinheit fertig gerechnet hat und die korrekten Daten am Ausgaberegister stehen. Außerdem muss der nächste Logikblock bereit sein, neue Daten im Eingangsregister aufzunehmen.
Solange die Berechnungen einer Logikeinheit noch laufen, sind die Daten am Ausgangsregister nicht konsistent und können damit ungültig sein. Es existieren mehrere Delaymodelle, um die Datenübergabe aus dem Ausgaberegister im richtigen Moment erfolgen zu lassen (Liste unvollständig):
Beim bounded delay Modell (engl. „begrenzte Verzögerung“) wird für jeden Datenpfad eine Obergrenze für die Zeitverzögerung festgelegt. Diese Verzögerung stellt die maximale Zeit dar, die die betroffene Logikeinheit benötigt, um ihre Berechnungen abzuschließen. Dabei wird immer vom worst case (engl. „schlimmster Fall“) ausgegangen. Das bedeutet man geht von den schlechtesten zulässigen Werten für Faktoren, die die Berechnungszeit beeinflussen, aus. Solche Faktoren können beispielsweise Temperatur, Spannungsversorgung oder Aufbau der zu berechnenden Daten sein.
Für jeden Datenpfad steuert eine Kontroll-Logik mittels der für diesen Datenpfad spezifischen maximalen Verzögerungszeit die Datenübergabe an den nächsten Logikblock. Dies erfolgt über ein Verzögerungselement, das die Übergabe, nach Ablauf der spezifischen Verzögerung, auslöst. Dann kann die nachfolgende Komponente mit den Daten weiterarbeiten.
Dieses Modell vereinfacht das entwerfen von asynchronen Prozessoren, da bestehende Designs von Logikeinheiten aus synchronen Prozessoren übernommen und in das bounded delay Modell eingebettet werden können. Das zeigt auch, dass hier das asynchrone Verhalten nicht die Berechnungen an sich betrifft, sondern nur die Übergabe der Daten von Logikblock zu Logikblock.
Die Datenübertragung zwischen einzelnen bounded delay Elementen regeln meistens micropipelines (engl. „Mikrorohrleitungen“) nach dem Prinzip von Ivan Sutherland. Diese bilden die asynchrone Schnittstelle zwischen den Bauteilen, indem sie einen Datenpfad nach bounded delay Modell benutzen. Die Übertragung wird dann mittels eines Verzögerungselementes ausgelöst. Die Logik zur Übertragung selbst kommt dann ohne Schätzungen über Verzögerungszeiten aus.
Bei delay insensitive circuits (engl. „verzögerungsunempfindliche Schaltkreise“) wird, anders als beim bounded delay Modell, nicht davon ausgegangen, dass die Ausgangsdaten, nach Ablauf einer festen Zeitspanne, bereitstehen. Da dennoch ein zuverlässiger Datentransfer notwendig ist, wird das stabile Anliegen der gültigen Daten am Eingang des Empfängers erkannt. Dies wird mit Hilfe einer speziellen Codierung (z.B. Dual-Rail) der Daten und einem Handshaking Protokoll (z.B. 2-Phase Dual-Rail oder 4-Phase Dual-Rail) realisiert. Sobald der Empfänger alle Daten übernommen hat, wird dem Sender dies durch eine Empfangsbestätigung quittiert. Die Implementierung des Handshaking Protokolls und der notwendigen Dual-Rail Encodierung benötigen enorme Mengen an zusätzlichen Transistoren (Faktor 2-10). Dennoch bieten delay-insensitive Schaltkreise Vorteile: Sie haben eine enorme Robustheit gegenüber äußeren Einflüssen, wie Temperaturänderungen, Änderungen der Versorgungsspannung oder Produktionsvariationen, welche so weder von anderen asynchronen Schaltkreisen, noch von synchronen Schaltkreisen erreicht werden können.
Innerhalb des Delay-Insensitiven Delay Modells können keine allgemeinen Schaltkreise entwickelt werden. Es sind lediglich Müller-C Elemente und Inverter zulässig. Es ist weiterhin nicht erlaubt, dass sich die Leitungen teilen. Um allgemeine Schaltkreise zu entwickelt wurde die zusätzliche Anforderung gestellt, dass Leitungsteilungen isochron sein müssen, d.h. die Signale müssen an allen Enden der Leitung gleichzeitig ankommen.
Mithilfe der Dual-rail kodierung und einem entsprechenden Handshaking Protokoll ist es möglich die Vollständigkeit von Daten zu erkennen. Dadurch wird jedes Bit durch zwei Leitungen repräsentiert. Dadurch entstehen 4 mögliche Kombinationen, von denen nur 2 für die eigentlichen Daten benötigt werden. Die anderen beiden Kombinationen werden für ein Null-Wort und einen Fehlerzustand benutzt.
X(0) | X(1) | Bedeutung |
0 | 0 | Leerwort |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | Fehler |
Dieses Handshaking Protokoll findet bei Delay-Insensitiven, bzw. Quasi-Delay-Insensitiven Schaltkreisen Anwendung. Zusammen mit der Dual-Rail Encodierung kann es sicherstellen, dass nur vollständig berechnete und somit gültige Daten übertragen werden. Wie schon der Name andeutet, werden 4 Phasen für die Übertragung benötigt:
Beim current sensing completion detection (engl. „Feststellung der Fertigstellung über Stromaufnahmemessung“) (kurz: CSCD) Verfahren wird das Ende der Berechnungen über eine Messung der Stromaufnahme der betroffenen Logikeinheit festgestellt. Dies wird ermöglicht durch die Tatsache, dass die Stromaufnahme beim Umschalten der Gatter ansteigt und nach dem Schaltvorgang wieder auf den Ruhepegel abfällt.
Problematisch ist hierbei jedoch, dass eine zuverlässige Messung nicht immer möglich ist. Wenn wenige Bits sich ändern, kann dies zu einer geringen Anzahl Schaltvorgänge führen, wodurch die Stromaufnahme nur geringfügige Änderungen zeigt. Für diesen Fall muss noch ein minimum delay generator (engl. „Mindestverzögerungserzeuger“) eingebaut werden, der analog zum bounded delay Modell die Übertragung auslöst. Dieser wird zu Beginn der Berechnungen aktiviert und löst die Übertragung nach der längsten zu erwartenden Schaltzeit aus.
Damit ist eine Struktur gegeben, die ihr Timing selbst bestimmen kann, sofern die Messung der Stromaufnahme erfolgreich ist. Nachteilig ist an dieser Technik jedoch der erhöhte Bauteileaufwand, da für die Strommessung auch analoge Bauteile eingebaut werden müssen.
Asynchrone Prozessoren sind derzeit noch ein Forschungsgebiet und einer stärkeren kommerziellen Verbreitung stehen vor allem der Mangel an Erfahrung und Entwicklungs-Tools entgegen. Außerdem ist für viele praktische Problemstellungen die Integration in eine Umgebung mit synchroner Technik zu leisten.
Exemplarisch seien hier einige Vertreter genannt: