-
1. GEBIET
DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft die Datenübertragung und insbesondere
ein System und ein Verfahren zum Übertragen von Daten über eine
Synchron-zu-asynchron-zu-synchron-Schnittstelle.
-
2. BESCHREIBUNG DES STANDES
DER TECHNIK
-
IPCMOS-Schaltkreise
und -Verfahren (Interlocked Pipelined complementary metal oxide
semiconductor, komplementäre
Metalloxidhalbleiter mit gekoppelter Pipeline werden in der US-Patentschrift 6
182 233 beschrieben. Ein Bericht, in dem die Ergebnisse einer Realisierung
dieser IPCMOS-Schaltkreise an einem Prüfplatz beschrieben werden,
ist in einem Artikel zu finden, der im ISSCC 2000 Digest of Technical
Papers, Sitzung 17, Logik und Systeme, Bericht WA 17.3, von Schuster
et al. unter dem Titel „Asynchronous
Interlocked Pipelined CMOS Circuits at 3.3–4.5 GHz" veröffentlicht
ist und im Folgenden als ISSCC-Bericht bezeichnet wird. In diesem
ISSCC-Bericht steuern lokal erzeugte und asynchron gekoppelte Takte
einen Pfad über
einen (3:2)-Komprimierungsbaum eines Gleitkommamultiplizierers (Floating
Point Multiplier, FPM) bei Frequenzen bis zu 4,5 GHz in einer CMOS-Technologie
für Massenproduktion
mit 0,18 μm
geometrischer Auflösung
und einer Spannung von 1,5 V. Es ist zu erwarten, dass durch diese IPCMOS-Verfahren
der Stromverbrauch auf weniger als die Hälfte sinkt.
-
In
der oben genannten US-Patentschrift 6 182 233 werden Schaltkreise
und Verfahren zum asynchronen Koppeln von Blöcken in Hin- und Rückrichtung
beschrieben, deren Systemaufwand für den Quittungsbetrieb äußerst gering
ist. Dadurch wird eine sehr hohe Leistung ermöglicht.
-
Synchrone
Pipelines sind normalerweise von Taktverschiebungsproblemen betroffen,
die in den Pipelines zu unerwünschten
Verzögerungen
führen können. Es
wäre von
Vorteil, Teile von vorhandenen synchronen Schaltungen durch asynchrone
Takte und Schaltungen zu ersetzen, um so eine höhere Leistung bei geringerer
Leistungsaufnahme zu erreichen. Schnittstellen zwischen einem synchronen
und einem asynchronen Teil des Systems lassen sich jedoch nur schwierig
realisieren.
-
Daher
besteht ein Bedarf nach Schnittstellen, welche den sicheren Übergang
von einem synchronen zu einem asynchronen und wieder zurück zu einem
synchronen Betriebsmodus bei verschiedenen Frequenzen ermöglichen.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Gemäß der vorliegenden
Erfindung wird eine Synchron-zu-asynchron-zu-synchron-Schnittstelle bereitgestellt,
welche Folgendes umfasst: eine Vielzahl zu einer Pipeline für die Datenübertragung
miteinander gekoppelter Stufen, wobei die Vielzahl der Stufen eine
erste Stufe, welche die Synchron-zu-asynchron-Datenübertragung bewirkt, mindestens
eine Zwischenstufe, welche die Asynchron-zu-asynchron- Datenübertragung
bewirkt, und eine letzte Stufe umfasst, welche die Asynchron-zu-synchron-Datenübertragung
bewirkt, und einen synchronen Taktpfad, welcher ein Zeitgebersignal
durch die Vielzahl der Stufen leitet, um die erste und die letzte
Stufe zum Ausführen
von Operationen zu aktivieren, wenn sich das Zeitsteuerungssignal
an dieser Stufe befindet.
-
Die
Erfindung stellt ferner ein Verfahren für die Synchron-zu-asynchron-zu-synchron-Datenübertragung
bereit, welches die folgenden Schritte umfasst: Bereitstellen einer
Vielzahl in Form einer Pipeline miteinander gekoppelter Stufen,
wobei die Vielzahl der Stufen eine erste Stufe beinhaltet, welche die
Synchron-zu-asynchron-Datenübertragung
bewirkt; mindestens eine Zwischenstufe, die die Asynchron-zu-asynchron-Datenübertragung
ausführt,
und eine letzte Stufe, die die Asynchron-zu-synchron-Datenübertragung
ausführt;
und Aktivieren einer ersten bzw. letzten aus der Vielzahl der Stufen
erst dann, wenn eine Operation für
die Datenübertragung
ausgeführt
werden soll, wobei die erste und die letzte Stufe durch lokale Taktsignale
aktiviert werden, die durch eine in jeder der Vielzahl der Stufen
enthaltene Taktgeberschaltung erzeugt werden, wobei das lokale Taktsignal
durch ein synchrones Taktsignal und ein Zeitgebersignal erzeugt
wird.
-
Vorzugsweise
wird eine synchrone Taktdurchschaltschnittstelle bereitgestellt,
welche Folgendes umfasst: eine Vielzahl zu einer Pipeline miteinander
gekoppelter synchroner Stufen; und eine mit der Vielzahl der Stufen
gekoppelte Taktgeberschaltung, welche ausgehend von einem synchronen Taktsignal
und einem Zeitgebersignal ein lokales Taktsignal erzeugt, wobei
dieses lokale Taktsignal die entsprechende Stufe aktiviert, wenn
diese eine Operation ausführen
soll.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Im
Folgenden werden Ausführungsarten
der Erfindung anhand von Beispielen und unter Bezug auf die beiliegenden
Zeichnungen beschrieben, wobei:
-
1 eine
schematische Darstellung ist, welche eine Synchron-zu-asynchron-zu-synchron-Schnittstelle
gemäß einer
Ausführungsart
der vorliegenden Erfindung zeigt;
-
2A eine
schematische Darstellung ist, welche eine Taktfreigabeschaltung
zum Erzeugen eines lokalen Taktes für eine Synchron-zu-asynchron-Stufe
der Schnittstelle von 1 zeigt;
-
2B eine
schematische Darstellung ist, welche eine Vorladetaktschaltung zum
Erzeugen eines Vorladetaktimpulses für eine Synchron-zu-asynchron-Stufe
der Schnittstelle von 1 nach einem Bestätigungssignal
zeigt;
-
2C eine
schematische Darstellung ist, welche eine Gültigkeitsschaltung zum Erzeugen
eines Signals „Daten
gültig" für eine Synchron-zu-asynchron-Stufe
der Schnittstelle von 1 zeigt;
-
3A eine
schematische Darstellung ist, welche eine Taktfreigabeschaltung
zum Erzeugen eines lokalen Taktes für eine Asynchron-zu-synchron-Stufe
der Schnittstelle von 1 zeigt;
-
3B eine
schematische Darstellung ist, welche eine Vorladetaktschaltung zum
Erzeugen eines Vorladetaktimpulses für eine Asynchron-zu-synchron-Stufe
der Schnittstelle von 1 nach einem Bestätigungssignal
zeigt;
-
3C eine
schematische Darstellung ist, welche eine Fehlerschaltung zum Erzeugen
eines Fehlersignals für
eine Asynchron-zu-synchron-Stufe der Schnittstelle von 1 zeigt;
-
4 eine
schematische Darstellung einer sechsstufigen Schnittstelle oder
Pipeline ist;
-
5 ein
Zeitablaufdiagramm für
die Schnittstelle von 4 ist, welche bei einer Frequenz von
2,5 GHz mit einer e-Bit-Verzögerung von
zwei Zyklen betrieben wird;
-
6 ein
Zeitablaufdiagramm für
die Schnittstelle von 4 ist, welche bei einer Frequenz von
2,0 GHz mit einer e-Bitverzögerung von
zwei Zyklen betrieben wird;
-
7 ein
Zeitablaufdiagramm für
die Schnittstelle von 4 ist, welche bei einer Frequenz von
2,0 GHz mit einer e-Bit-Verzögerung von
einem Zyklus betrieben wird und Fehler infolge nichtangepasster
Zeitabläufe
aufweist;
-
8 einen
Vergleich der Kurven der Leistungsaufnahme als Funktion vom Schaltfaktor
für herkömmliche
synchrone Schaltungen und CMOS-Schaltungen mit gekoppelter Pipeline
zeigt;
-
9A zwei
synchrone Gleitkommamultiplikatoren (Floating Point Multiplier,
FPM) zeigt;
-
9B eine
schematische Darstellung eines Synchron-zu-asynchron-zu-synchron-IPCMOS-FPM zeigt,
durch den die beiden FPMs von 9A ersetzt
werden;
-
10 eine
schematische Darstellung ist, welche eine feinstrukturierte synchrone
Taktdurchschaltschnittstelle zeigt;
-
11 einen
Vergleich der Kurven der Leistungsaufnahme als Funktion vom Schaltfaktor
für herkömmliche
synchrone Schaltungen, CMOS-Schaltungen mit gekoppelter Pipeline
auf Basis der vorliegenden Erfindung und die feinstrukturierte Taktdurchschaltung
(FG CLK Gating) auf Basis der vorliegenden Erfindung zeigt;
-
12 eine
schematische Darstellung ist, welche eine Taktrücksetzschaltung zum Erzeugen
eines Rücksetztaktsignals
für eine
Synchron-zu-asynchron-Stufe der Schnittstelle von 1 zeigt;
-
13 eine
schematische Darstellung ist, welche eine lokale Taktschaltung zeigt,
die ein e-Bit zur Verringerung der Verzögerung einer Asynchron-zu-synchron-Stufe
der Schnittstelle von 1 verwendet; und
-
14 ein
Zeitablaufdiagramm für
eine simulierte Schnittstelle ist, welche die Schaltungen von 12 und 13 verwendet.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSARTEN
-
Es
ist klar, dass die in den Figuren gezeigten Elemente in unterschiedlichen
Formen von Hardware, Software oder deren Kombinationen realisiert werden
können.
Vorzugsweise werden diese Elemente in Form von Hardware in einem
oder mehreren in geeigneter Weise programmierten integrierten Standardschaltkreisen
realisiert, die einen Prozessor, einen Speicher und Eingabe-/Ausgabeschnittstellen
aufweisen können.
-
In
den Zeichnungen bedeuten gleiche Bezugsnummern dieselben oder ähnliche
Elemente; dabei zeigt 1 zunächst eine Synchron(SYN)-zu-asynchron(ASYN)-zu-synchron(SYN)-Schnittstelle 10 gemäß einer
Ausführungsart
der vorliegenden Erfindung. Ein synchroner Zeitsteuerungspfad 11 enthält durch
ein Signal CLKSYN getaktete 1-Bit-Signalspeicher 12, an
deren Eingang ein so genanntes e-Bit anliegt. Da jede dieser Signalspeicherstufen 12 durch
das Signal CLKSYN getaktet wird, hängt die zum Durchleiten eines
e-Bits durch die Zwischenspeicher 12 erforderliche Zeit
von der Anzahl der Zwischenspeicherstufen 12 in einem Pfad
oder einer Pipeline 11 und von der Frequenz oder der Periode
des Signals CLKSYN ab.
-
Der „e-Bit"-Pfad 11 (z.B.
die Stufen 90a, 90b und 90c in 1)
ist eine synchrone Zeitsteuerungskette. Wenn dem asynchronen Pfad
Daten zur Verarbeitung durch den synchronen Teil der Maschine zugeleitet
werden, wird in die erste Stufe (90a) eine „1" eingegeben. Bei
jedem synchronen Zyklus, bei dem keine solchen Daten vorliegen,
steht das in die Stufe 90a eingegebene e-Bit auf „0". In 1 geht
ein während
eines synchronen Zyklus in die Stufe 90a eingegebenes e-Bit
einen synchronen Zyklus später
weiter zu Stufe 90b und kommt genau zwei synchrone Zyklen
nach der Eingabe in die Stufe 90a in der Stufe 90c an.
Somit durchläuft
das e-Bit seine Zeitsteuerungskette mit einer Verzögerung von
zwei synchronen Zyklen. Da eine „1" in Stufe 90a anzeigt, dass Daten
zur Eingabe in den synchronen Teil der Maschine bereitstehen, müssen für die Datenweiterleitung
in der gesamten asynchronen Pipeline genügend Stufen in der e-Bit-Zeitsteuerungskette
bereitgestellt werden. In 1 wird daher
davon ausgegangen, dass die Daten die asynchrone Pipeline innerhalb
von zwei synchronen Zyklen durchlaufen können.
-
Die
Gesamtfunktion der Schnittstelle wird wie folgt beschrieben. Wenn
Daten vom synchronen Teil zum asynchronen Teil der Maschine geleitet
werden, wird in die Stufe 90a eine „1" eingegeben. Diese dient als Signal
zum Starten des lokalen Takts CLKE1 von 22a. Anschließend gelangen
die Daten über 22a, 22b und 22c bis
zu 22d, indem sie durch die asynchronen Takte CLKE1, CLKE2
und CLKE3 gesteuert werden, die wiederum durch die Signale VALID
(GÜLTIGE
DATEN) und ACK (BESTÄTIGUNG)
gesteuert werden, welche die Taktblöcke 30, 31a und 31b dieser
Stufen miteinander verbinden (z.B. Taktsignale). Gleichzeitig ist
die in Stufe 90a eingegebene „1" bis zur Stufe 90b weitergelaufen und
erscheint am Eingang der Stufe 90c. Während des nächsten synchronen Taktes (nunmehr
zwei synchrone Zyklen nach Eingabe der Daten in den asynchronen
Teil der Maschine) dient das e-Bit dazu, den synchronen Takt zu
CLKE4 durchzuschalten und so den synchronen Zustand des Systems
wiederherzustellen.
-
Man
beachte, dass hierfür
bestimmte Bedingungen eingehalten werden müssen. Erstens müssen für den e-Bit-Pfad
so viele Verzögerungsstufen zur
Verfügung
stehen, dass die Gesamtverzögerung im
e-Bit-Pfad bei der höchsten
synchronen Arbeitstaktfrequenz nicht kleiner als die Verzögerung durch den
asynchronen Pfad ist. Diese Bedingung der Zeitsteuerung ähnelt der
normalen Bedingung der Zeitsteuerung einer synchronen Stufe (d.h.
der Bedingung, dass die Taktperiode nicht geringer ist als die Verzögerung durch
die Logik der Stufe, zuzüglich
eines Sicherheitszuschlages für
die Konfigurierung und das Halten des Signalspeichers sowie für eine Taktverschiebung).
Wenn die asynchrone Pipeline dazu verwendet wird, eine zuvor synchrone
Pipeline zu ersetzen, wählt
man für
die Verzögerung
des e-Bits im Allgemeinen am besten eine Verzögerung, die der Anzahl der
Stufen in der ursprünglichen
synchronen Pipeline entspricht. In diesem Fall müssen daher in der asynchronen-Pipeline
ebenso viele Signalspeicherstufen vorgesehen werden wie in der ursprünglichen
Pipeline, damit ausreichend Platz für alle Pipelinedaten zur Verfügung steht,
falls es beim Entfernen von Daten aus der asynchronen Pipeline zu
Verzögerungen
kommt.
-
Schließlich ist
zu beachten, dass die Takte dieser Pipeline automatisch und kontinuierlich
abgeschaltet werden, wenn der asynchronen Pipeline keine neuen Daten
zur Verarbeitung angeboten werden, da das in die Stufe 90a eingegebene
e-Bit zum Starten des asynchronen Taktes CLKE1 in Stufe 22a dient
und dieser wiederum die Takte CLKE2 und CLKE3 startet und dasselbe
e-Bit beim Eintreffen am Eingang der Stufe 90c den Takt
CLKE4 startet.
-
Außerdem gibt
es einen parallelen Datenpfad 20 mit den Stufen 22a bis 22d mit
drei unterschiedlichen Schnittstellentypen. Zuerst gibt es eine in
der ersten Stufe 22a realisierte Synchron-zu-asynchron-Schnittstelle 24,
wo zum Erzeugen des lokalen Takts CLKE1 das Signal CLKSYN und das
e-Bit durch ein logisches UND miteinander verknüpft werden. Daran schließen sich
die Zwischenstufen 22b bis 22c an, in denen die
Asynchron-zu-asynchron-Übertragungen
stattfinden. Diese Asynchron-zu-asynchron-Schnittstellen werden
in der US-Patentschrift
6 182 233, der ISSCC-Veröffentlichung
und in einer an denselben Anmelder abgetretenen Patentanmeldung
2002 083 298 unter dem Titel „ASYNCHRONOUS
PIPELINE CONTROL INTERFACE" von
Cook et al., eingereicht am 21. Dezember 2000, beschrieben. In der
letzten Stufe 22d ist eine Asynchron-zu-synchron-Schnittstelle 28 realisiert.
In Stufe 22d ist das e-Bit
durch die synchronen 1-Bit-Signalspeicher 12 durchlaufen
und wird zum Erzeugen des lokalen Taktes CLKE4 durch eine logische
UND mit dem synchronen Takt CLKSYN verknüpft. Die lokalen Takte CLKE2
und CLKE3 werden für
die Stufen 22b und 22c zur Verfügung gestellt.
Die Unterschiede zwischen den Schaltungen der ersten Stufe 22a und
der letzten Stufe 22d werden in der folgenden Beschreibung
ausführlich
dargestellt. Es wird ein Gültigkeitspfad 35 eingeführt, um
die Datenübertragung
des Datenpfades 20 nachzuverfolgen und den Empfang gültiger Daten
zwischen den Stufen im Datenpfad 20 zu bestätigen.
-
Alle
Signalspeicher 18 werden durch das lokale Taktfreigabesignal
CLKE (CLKE1 bis CLKE4) freigegeben, um die Datenübertragung von der vorangehenden
Stufe zu erlauben. Diese Stufen sind miteinander gekoppelt. Das
bedeutet, dass Datensignale „Bestätigung" (ACK) und „Daten
gültig" (VALID) erzeugt
und zwischen benachbarten Stufen ausgetauscht werden, um sicherzustellen,
dass die Daten sowohl gültig
sind als auch zwischen allen Stufen der Pipeline empfangen wurden.
Es ist von Vorteil, wenn die asynchronen Zwischenstufen der Schaltung 10 als
Pipeline angeordnet und in Hin- und Rückrichtung miteinander gekoppelt
sind, wie dies in der ISSCC-Veröffentlichung
beschrieben wird. Die Pipelinestufen 22 können Logikschaltungen 17 enthalten.
-
In 1 und 2A bis 2B erzeugt
die lokale Taktschaltung 30 der ersten Synchron-zu-asynchron-Stufe,
welche in der Schaltung 32 das e-Bit und das Signal CLKSYN
durch ein logisches UND (UND-Gatter 33) miteinander verknüpft, das
Signal VALID für
die sich anschließende
asynchrone Stufe und den Vorladetakt CLKP für diese in 2B gezeigte
erste Stufe. Die UND-Verknüpfung des
globalen synchronen Taktes CLKSYN und des in die 1-Bit-Signalspeicherstufe 12 eingegebenen e-Bits
starten den lokalen Takt CLKE (CLKE1) für die in der Schaltung von 2A gezeigte
erste Stufe. Obwohl der Takt CLKSYN ununterbrochen weiterläuft, kommt
es durch das Starten des lokalen Taktes CLKE1 nur dann zu einer
nennenswerten Leistungsverminderung, wenn eine durch das e-Bit angezeigte Operation
durchgeführt
werden soll.
-
Die
Schaltung 30 von 1 enthält ein UND-Gatter 32 in 2A zur
logischen Verknüpfung des
e-Bits und des Signals CLKSYN, um ein Freigabetaktsignal CLKE zu
erzeugen. Die in der Ausführungsart
gezeigte Schaltung 32 verwendet n-FETs 41, p-FETs 43 und
einen Inverter 47. 2B zeigt eine
in der Schaltung 30 von 1 enthaltene
Schaltung 50, welche den lokalen Vorladetakt CLKP1 der ersten
Stufe 22a erzeugt. An den Eingängen der Vorladetaktschaltung 50 liegt
ein asynchrones Bestätigungssignal
ACK von der nachfolgenden Stufe an (siehe auch 1),
welches anzeigt, dass Daten empfangen wurden und dass neue Daten
sowie das globale synchrone Taktsignal CLKSYN gesendet werden können. Der
lokale Vorladetakt CLKP wird erst gestartet, nachdem das Signal
CLKSYN (und CLKE1) auf null steht, damit der Freigabe- und der Vorladetakt
nicht gleichzeitig aktiv sind. Dazu kann es insbesondere bei niedrigeren
Frequenzen kommen, wenn nur das asynchron erzeugte Bestätigungssignal
ACK zum Erzeugen des lokalen Vorladetaktes CLKP verwendet wurde.
-
Die
in der vorliegenden Ausführungsart
gezeigte Schaltung 50 verwendet n-FETs 41, p-FETs 43,
einen Signalspeicher 45 und Inverter 47. Zum Bereitstellen
der oben beschriebenen Funktionalität können auch andere Schaltungsanordnungen
verwendet werden. Zu Beginn eines Zyklus steht das Signal CLKPD
auf HIGH, der Knoten n3 auf HIGH und der Knoten auf LOW. Wenn eine
Bestätigung
vorliegt, kommt es am ACK-Eingang zu einem Impuls HIGH. Dieser Wechsel
von ACK wird an den Knoten n3 und n2 in der Weise registriert, dass
n3 auf LOW und n2 nach HIGH wechseln. Wenn das Signal CLKSYN bereits
auf LOW steht, steht der Knoten n1 auf HIGH, wodurch der Knoten
n4 nach LOW wechselt. Wenn das Signal CLKSYN noch auf HIGH steht,
ist der Knoten n1 auf LOW, und der Knoten n4 bleibt so lange auf
HIGH, bis das Signal CLKSYN nach LOW wechselt. Nach der Entladung
des Knotens n4 kommt es zur Entladung des Signals CLKP nach einer
Verzögerung
von zwei Invertern 42, und die Entladung des Signals CLKPD
erfolgt nach einer Verzögerung
von zwei Invertern 44. Ein Zustand LOW des Signals CLKPD
lädt den
Knoten n3 auf HIGH vor. Dadurch wechselt der Knoten n4 auf HIGH,
worauf das Signal CLKP nach HIGH und schließlich das Signal CLKPD nach
HIGH wechseln. Der asynchrone Bestätigungsimpuls ACK hatte bis
zu diesem Zeitpunkt ausreichend Zeit, um nach LOW zu wechseln, sodass
nun ein neuer Zyklus beginnen kann.
-
Die
Schaltung 30 von 1 enthält gemäß 2C eine
Gültigkeitsschaltung 60,
welche das Signal VALID (Daten gültig)
erzeugt, das einen ungünstigsten
Pfad durch die Logik 17 der ersten Stufe 22a emuliert.
Die Logik 62 simuliert die Verzögerungseigenschaften der Logik 17 der
Stufe 22a. Die Logik 62 erzeugt anhand dieser
Verzögerungssimulationen die
Zeitsteuerung für
ein gültiges
Signal. Aus der Verzögerung
durch die Gültigkeitsschaltung 60 zusammen
mit der zum Erzeugen des Signals CLKE in der Signalerkennungsschaltung
(UND-Gatter) 32 des benachbarten asynchronen Quittungsblocks 31a ergibt sich
der letzte Zeitpunkt für
die Datenankunft zuzüglich
einer Reserve zur Berücksichtigung
von Schwankungstoleranzen zwischen dem Datenpfad 20 und
dem Gültigkeitspfad 35. 2C zeigt,
dass der Takt CLKE das Signal VALID („Daten gültig") erzeugt und der Vorladetakt CLKP dieses
Signal wieder zurücksetzt.
Das Signal VALID wird in jedem Taktzyklus erzeugt, für den der
Takt CLKE erzeugt wird.
-
Die
Asynchron-zu-asynchron-Übertragung bei
den Zwischenstufen 22b bis 22c kann durch die in
den oben angeführten
Literaturstellen beschriebenen Kopplungsverfahren durchgeführt werden.
Es können
auch andere Asynchron-zu-asynchron-Übertragungsverfahren
eingesetzt werden. Im Folgenden werden die für die in 1 gezeigte
Asynchron-zu-synchron-Übertragung
erforderlichen Schaltungen und Konzepte beschrieben.
-
Die
in 1 gezeigte lokale Taktschaltung 70 der
letzten Asynchron-zu-synchron-Stufe wird ausführlich dargestellt (3A bis 3C).
Die Schaltungen der lokalen Taktschaltung 70 enthalten eine
Freigabetaktschaltung 74 (3A), eine Vorladetaktschaltung 76 (3B)
und eine Fehlerschaltung 78 (3C).
-
In 3A wird
durch die Schaltung 74 ein Freigabetakt CLKE erzeugt, wenn
das Signal CLKSYN nach HIGH wechselt und sich ein e-Bit (HIGH) in
dem synchronen 1-Bit-Register 12 befindet, das der letzten
Stufe 22d in 1 entspricht. Die Schaltung 74 enthält einen
Signalspeicher 45 und einen Puffer 47 mit drei
Invertern, die das von dort ausgehende Signal bereitstellen.
-
Die
Asynchron-zu-synchron-Freigabetaktschaltung 74 von 3A ist
der Synchron-zu-asynchron-Freigabetaktschaltung 32 von 2A ähnlich. Die
beiden Schaltungen 32 und 74 verknüpfen den synchronen
globalen Takt CLKSYN und das e-Bit mit einem logischen UND. Das
e-Bit ist jedoch in der Freigabetaktschaltung 74 um eine
Anzahl von Zyklen verzögert
worden. Die Anzahl der Verzögerungszyklen
entspricht der Anzahl derjenigen Zyklen, welche das e-Bit benötigt, um
durch die synchronen 1-Bit-Register 12 zu gelangen. 1 zeigt
eine Verzögerung
von zwei Zyklen. Es ist klar, dass diese Verzögerung nicht fest vorgegeben
ist, sondern von der synchronen globalen Taktfrequenz abhängt. Bei
der vorliegenden Ausführungsart
ist zwar die Anzahl der Zyklen, nicht aber die Zeit festgelegt.
Das bedeutet, dass für
eine einmal eingerichtete Pipeline die Daten immer nach einer bestimmten
Anzahl von Zyklen am Ausgang der Pipeline ankommen, auch wenn sich die
Frequenz ändert.
Auch die Anzahl der Zyklen kann geändert werden.
-
In 3B wird
für diese
Stufe durch die Schaltung 76 der Vorladetakt CLKP erzeugt.
Die Vorladeschaltung 76 für die Asynchron-zu-synchron-Stufe
erzeugt sowohl das Bestätigungssignal ACK,
dass die Daten von der Vorstufe empfangen wurden, als auch den Vorladetakt
CLKP, der für
die Asynchron-zu-synchron-Stufe benötigt wird. Die beiden Signale
ACK und CLKP setzen voraus, dass die Signale CLKSYN und CLKE vorher
nach LOW gewechselt sind. Bei der Schaltung handelt es sich um einen
monostabilen Multivibrator, der gestartet wird, wenn das Signal
CLKSYN nach LOW wechselt, wodurch der Knoten n12 nach HIGH wechselt.
Das Signal wechselt auch nach LOW, ist jedoch durch den Pfad durch
die CLKE-Schaltung 74 von 3A gegenüber CLKSYN
verzögert.
Deshalb stehen CLKE und der Knoten n11 auf HIGH, und der Knoten
n13 wechselt nach LOW, wenn CLKSYN nach LOW wechselt. Das Signal
ACK wechselt nach HIGH und CLKP nach LOW. Wenn CLKE nach LOW wechselt, wechseln
auch der Knoten n11 und das Signal ACK nach LOW und CLKP nach HIGH.
Die Impulsbreite der Signale ACK und CLKP hängen von der Verzögerung zwischen
dem ansteigenden Knoten n12 und dem abfallenden Knoten n11 ab, wobei
die CLKE-Schaltung 74 den größten Beitrag zu dieser Verzögerung liefert.
-
Die
Fehlerschaltung 78 in 3C wird
aktiviert, wenn ein Freigabe-e-Bit und CLKSYN, und somit auch CLKE,
nach HIGH wechseln, bevor Daten angekommen sind. Wenn der Zeitablauf
nicht fehlerhaft ist, sollte dies nicht vorkommen. Das Signal CLKE
und das Signal VALID („Daten
gültig") von der Sendestufe
werden in die Fehlerschaltung 78 eingegeben. Damit der
Zeitablauf korrekt ist, müssen
die neuen Daten an den Eingängen
dieser Asynchron-zu-synchron-Stufe gültig sein, wenn CLKE nach HIGH
wechselt und die Signalspeicher 18 des Datenpfades 20 aktiviert
(1). Dies wird dadurch angezeigt, dass das Signal
VALID auf LOW steht. Wenn das Signal VALID noch auf HIGH steht und noch
nicht nach LOW gewechselt ist, während
das Signal CLKE bereits nach HIGH gewechselt ist, wechselt das Ausgangssignal
ERROR („Fehler") nach HIGH und zeigt
einen Fehler an.
-
Zur Überprüfung der
Schaltungen und Konzepte der Synchron-zu-asynchron-zu-synchron-Schnittstelle
wurde eine in 4 gezeigte Schaltung 100 entworfen,
die durch die Erfinder simuliert wurde. Die Schaltung 100 enthält sechs
Stufen 101 bis 106, deren Merkmale unter Bezug
auf 1, 2A bis 2C und 3A bis 3C beschrieben
wurden. Die Stufe 101 enthält die Synchron-zu-asynchron-Schnittstelle
(S2A). Die Schaltungen für
diese Stufe S2A enthalten die Schaltungen der 2A bis 2C.
Die Stufen 102 bis 105 können die in den oben angeführten Literaturstellen beschriebenen
Asynchron-zu-asynchron-Schnittstellen
(A2A) enthalten. Die Stufe 106 ist die Asynchron-zu-synchron-Schnittstelle
(A2S). Die Schaltungen der A2S-Stufe 106 sind die gleichen
wie die von 3A bis 3C.
-
5 zeigt
den synchronen Takt CLKSYN und die e-Bits [e]-SA (synchron-zu-asynchron)
für den
Signalspeicher (siehe z.B. Signalspeicher 12 von 1)
der Stufe 101 und [e]-AS (Asynchron-zu-synchron) für den Signalspeicher
(siehe z.B. Signalspeicher 12 von 1) der Stufe 106,
welche den Freigabetakt, den Vorladetakt und das Fehlersignal (ERKOR)
erzeugen. Das e-Bit durchläuft
den synchronen Zeitsteuerungspfad bei einer Frequenz von 2,5 GHz,
wobei die Verzögerung
von der Synchron-zu-asynchron-Schnittstelle an der Stufe 101 zur
Asynchron-zu-synchron-Schnittstelle an der Stufe 106 zwei
Zyklen beträgt.
Man beachte dass „[e]-SA" das in die Synchron-zu-synchron-Schnittstelle
eingegebene e-Bit und „[e]-AS" das verzögerte e-Bit
ist, welches am Eingang der letzten Stufe des e-Bit-Verzögerungspfades
erscheint. Nur das Signal „[e]-SA" braucht von außen in die
Schnittstelle eingegeben zu werden, um anzuzeigen, dass gerade zu verarbeitende
Daten vorliegen.
-
Im
Folgenden wird der ordnungsgemäße Ablauf
für zwei
aufeinander folgende e-Bits gezeigt, nach denen zwei leere Zyklen
und dann ein weiteres e-Bit folgen. Hier liegt im synchronen Pfad
eine Verzögerung
von zwei Zyklen vor ([e]-SA und [e]-AS). Es wird gezeigt, dass es
zwei aufeinander folgende synchrone Zyklen gibt, während derer
der asynchronen Pipeline zu verarbeitende Daten vorgelegt werden; anschließend folgen
zwei aufeinander folgende synchrone Zyklen, während derer keine zu verarbeitenden
Daten vorgelegt werden; dann folgt ein weiterer synchroner Zyklus,
während
dessen Daten verarbeitet werden. Man beachte, dass das e-Bit [e]-AS
dasselbe Muster aufweist wie das e-Bit [e]-SA, dass es jedoch um
zwei synchrone Zyklen durch die e-Bit-Verzögerungskette verzögert ist.
-
Die
Freigabetaktsignale CLKE1 bis CLKE6 sind für jede Stufe 101 bis 106 dargestellt.
Die gemessene Latenzzeit für
die sechsstufige Pipeline beträgt
880 ps, was zwei Zyklen zu je 400 ps zuzüglich der Verzögerung zum
Erzeugen des Freigabetaktes entspricht. Die identischen Bedingungen
wiederholen sich in den Signalverläufen von 6,
wobei hier lediglich die Frequenz 2,0 GHz beträgt. Auch hier ist die ordnungsgemäße Funktion
der Synchron-zu-asynchron-zu-synchron-Schnittstelle gezeigt, wobei wegen der
niedrigeren Arbeitsfrequenz eine zusätzliche Reserve vorgesehen
ist.
-
In 7 ist
die e-Bit-Verzögerung
auf einen Zyklus verringert, wobei die anderen Bedingungen von 6 unverändert bleiben.
Bei dieser e-Bit-Verzögerung
von einem Zyklus ist die Latenzzeit der Pipeline größer als
diese e-Bit-Verzögerung von
einem Zyklus, und das Signal ERROR der Fehlerschaltung wechselt
nach HIGH und zeigt einen Fehler an. Man beachte, dass dieser inkorrekte
Anwendungsfall gewählt
wurde, um die Erkennung von Zeitfehlern durch die Fehlerschaltung
und das Signal „Fehler" darzustellen. Der
bei diesem Testfall bewusst eingebaute Fehler besteht in einer e-Bit-Verzögerungskette,
die kürzer
als die Verzögerung
durch die asynchrone Pipeline ist.
-
Abschätzungen
zeigen, dass etwa 70% der Leistungsaufnahme des Chips durch die
Taktgeber und die Signalspeicher verursacht wird. Daher kann die
Leistungsaufnahme deutlich verringert werden, indem die Taktgeber
nur dann aktiviert werden, wenn ein e-Bit verarbeitet oder eine
Operation ausgeführt werden
muss, was dem Schaltfaktor entspricht, der aus den Signalverläufen der
Synchron-zu-asynchron-zu-synchron-Schnittstellen in den 5, 6 und 7 ersichtlich
ist. Eine direkte Maßnahme
zur verstärkten
Verringerung der Leistungsaufnahme besteht im Ersetzen vorhandener
Pipelinestufen in einem synchronen System, zum Beispiel in einem
Multiplizierer, durch die Synchron-zu-asynchron-Schnittstelle. Dieser Synchron-zu-asynchron-Pfad
weist eine wesentlich geringere Leistungsaufnahme auf, als dies
beim herkömmlichen synchronen
Ansatz der Fall ist. Das liegt erstens daran, dass die Taktgeber
nur dann aktiviert werden, wenn eine Operation ausgeführt werden
muss, und zweitens am verringerten Taktungsaufwand. Der verringerte
Taktungsaufwand ergibt sich aus der Kopplung der Operation und daraus,
dass die Taktgeber nur dann aktiviert werden, wenn am Eingang des
Signalspeichers gültige
Daten vorliegen.
-
Derjenige
Anteil der (synchronen) Zyklen, während derer ein bestimmtes
Makro oder eine Funktionseinheit Daten zu verarbeiten hat, wird
als „Makroschaltfaktor" oder einfach als
Schaltfaktor bezeichnet. Man beachte, dass bei Realisierung dieses Makros
als asynchrone Pipeline mittels der hier beschriebenen Verfahren
der Makroschaltfaktor demjenigen Anteil der Zyklen identisch ist,
für welche
das in die Synchron-zu-asynchron-Schnittstelle des Makros eingegebene
e-Bit auf 1 gesetzt
wurde. Aufgrund der Tatsache, dass die lokal erzeugten Takte nur
dann aktiv sind, wenn sie wirklich benötigt werden, kann die Leistungsaufnahme
eines Systems, welches die hier beschriebenen Verfahren anwendet,
einfach abgeschätzt
werden.
-
8 zeigt
Kurven der Leistungsaufnahme als Funktion vom Makroschaltfaktor
(unter der Annahme, dass die Taktgeber und Signalspeicher für 70% der
Leistungsaufnahme verantwortlich sind) sowohl für einen herkömmlichen
synchronen Ansatz (Synchron) und einen IPCMOS, welcher die Erfindung
realisiert (IPCMOS). Bei den meisten Makros liegt der Schaltfaktor
zwischen etwa 10% und etwa 20%.
-
Eine
weitere Möglichkeit
zur Geschwindigkeitserhöhung
und zur Verringerung der Leistungsaufnahme ist in dem Beispiel von 9A und 9B dargestellt.
Zwei synchrone Gleitkommamultiplizierer (Floating Point Multiplier,
FPM) FPM1 und FPM2 in 9A sind durch eine einzige Synchron-zu-asynchron-zu-synchron-FPM-Einheit 200 in 9B ersetzt
worden. Voraussetzung hierfür
ist, dass dieser einzelne asynchrone FPM 200 mit der doppelten
Frequenz der vorhandenen synchronen Multiplizierer FPM1 und FPM2
arbeitet.
-
Die
höhere
Geschwindigkeit bei diesem asynchronen Ansatz ergibt sich aus der
Erzeugung der lokalen Takte in der gekoppelten Pipeline und aus der
einfachen Signalspeicherstruktur, welche dadurch möglich ist,
dass die Taktgeber nur dann aktiviert werden, wenn gültige Daten
vorliegen. Die beschriebene Synchron-zu-asynchron-zu-synchron-Schnittstelle ist
nicht auf diese Multipliziereranwendung beschränkt, sondern kann überall dort
eingesetzt werden, wo hohe Geschwindigkeiten bei geringer Leistungsaufnahme
erreicht werden sollen. Die vorliegende Erfindung eignet sich insbesondere für Pipelineanwendungen
mit vielen Stufen.
-
Die
zur Realisierung von Synchron-zu-asynchron-zu-synchron-Schnittstellen, zum
Beispiel mittels IPCMOS, erforderlichen Konzepte und Schaltungen
sind anschaulich beschrieben worden. Mittels der vorliegenden Erfindung
können
höhere
Geschwindigkeiten bei geringerer Leistungsaufnahme erreicht werden.
-
10 zeigt
anschaulich eine feinstrukturierte Taktdurchleitschaltung 300 gemäß einer
anderen Ausführungsart.
Die oben beschriebenen Konzepte können so abgeändert werden,
dass die in 10 gezeigte feinstrukturierte
Taktdurchleitschaltung in synchronen Systemen möglich wird. Ein e-Bit wird
in der Schaltung 301 in jeder Stufe 302 mit einem
synchronen Takt CLKSYN durch ein logisches UND verknüpft, damit
ein lokales Freigabetaktsignal (CLKE) erzeugt wird. Das e-Bit durchläuft ein 1-Bit-Register 301.
Wenn in einer Stufe kein e-Bit (e = 0) vorliegt, entsteht in dieser Stufe
auch kein lokales Freigabetaktsignal CLKE. Zur Ausführung der UND-Funktion
in Schaltung 301 kann eine der in 2A gezeigten ähnliche
Schaltung verwendet werden. Diese feinstrukturierte Taktdurchleitschaltung
liefert im Gegensatz zu einem in 11 gezeigten
herkömmlichen
synchronen Ansatz eine wesentlich geringere Leistungsaufnahme. Im
Vergleich zum Fall des IPCMOS ist die Leistungsaufnahme jedoch etwa
zweimal so hoch, da die Signalspeicher komplexer sind.
-
Gemäß der obigen
Beschreibung ist es wünschenswert,
Teile der vorhandenen synchronen Schaltungen durch asynchrone Schaltungen
zu ersetzen, wenn die Rechenleistung bei geringerer Leistungsaufnahme
erhöht
werden soll. Ein Problem dabei stellt die Schnittstelle zwischen
den synchronen und den asynchronen Teilen des Systems dar.
-
Gemäß 1 ergeben
zwei parallele Pfade einen Synchron-zu-asynchron-zu-synchron-Pfad 20, der
durch einen parallelen synchronen Pfad 11 gesteuert wird.
Der synchrone Pfad 11 enthält 1-Bit-Signalspeicher, die
durch den globalen synchronen Takt CLKSYN getaktet werden. Die Anzahl
der Stufen in diesem Pfad wird entsprechend der Anzahl der Verzögerungszyklen
des Synchron-zu-asynchron-zu-synchron-Pfades bei der maximalen Arbeitsfrequenz
gewählt.
Da jede der e-Bit-Signalspeicherstufen durch CLKSYN getaktet wird,
hängt die Zeit
für das
Durchlaufen eines e-Bits durch die Signalspeicher von der Anzahl
der Signalspeicherstufen in der Pipeline und von der Frequenz oder
Periode von CLKSYN ab. Wenn eine Operation ausgeführt werden
soll, wird das e-Bit auf „1" gesetzt, und wenn keine
Operation ansteht, wird das e-Bit entsprechend auf „0" gesetzt.
-
Wenn
das e-Bit auf „1" gesetzt ist, erzeugt
es in der Synchron-zu-asynchron-Stufe das Freigabetaktsignal und
schickt die Daten in diesen Pfad. Nachdem dasselbe e-Bit den synchronen
Zeitsteuerungspfad mit den 1-Bit-Signalspeichern durchlaufen hat,
liefert es auch das Zeitsignal, welches das Freigabetaktsignal in
der letzten Asynchron-zu-synchron-Stufe der Pipeline erzeugt. Wenn
das e-Bit den Wert „0" hat, bedeutet dies,
dass keine Operation ausgeführt
werden muss. In diesem Fall durchläuft das d-Bit „0" die 1-Bit-Zeitsteuerungssignalspeicher, es
werden jedoch im parallelen Synchron-zu-asynchron-zu-synchron-Pfad
keine lokalen Takte aktiviert. Somit sind diese lokalen Takte aktiv,
wenn das e-Bit den
Wert „1" hat, und inaktiv,
wenn das e-Bit den Wert „0" hat.
-
Die
zeitliche Steuerung der beiden Pfade beinhaltet das Durchleiten
der Daten durch den asynchronen Pfad, welche vor dem lokalen Freigabetakt der
letzten Stufe ankommen. Die Verschiebung und die Schwankung des
globalen Taktes wirkt sich bei diesem Ansatz nur einmal und nicht
in jeder Stufe aus. Der synchrone 1-Bit-e-Bit-Pfad wird während jedes
Zyklus durch den synchronen Takt aktiviert. Die lokalen Takte für jede Stufe
des Synchron-zu-asynchron-zu-synchron-Pfades hingegen, die mehrere
Bit breit sind, werden aktiviert, wenn eine Operation ausgeführt werden
soll. Das führt
zu einer deutlichen Verringerung der Leistungsaufnahme, wenn nicht während jedes
Zyklus eine Operation ausgeführt werden
soll. Außerdem
ist die Latenzzeit durch einen asynchronen IPCMOS-Pfad kürzer als
die eines herkömmlichen
synchronen Pfades. Das rührt
von der Zeitsteuerung in jeder Stufe her, die zwar nicht genau der
Zeitsteuerung beim herkömmlichen
Fall entsprechen muss, aber an die Logik dieser Stufe angepasst werden
kann.
-
12 zeigt
eine Synchron-zu-asynchron-Rücksetzschaltung 402,
die am Anfang des Zyklus von den nachfolgenden asynchronen Signalerkennungsschaltungen
(z.B. der Schaltung 31a) eine Bestätigung (ACK) empfängt, jedoch
wird die Schaltung 402 erst dann aktiv, wenn das Signal CLKSYN
nach LOW wechselt. Dadurch wird ein ordnungsgemäßes Funktionieren gewährleistet,
wenn die Bestätigung
eintrifft, während
CLKSYN noch aktiv ist. Die Schaltung 402 kann die in 2B gezeigte Schaltung 50 ersetzen.
Die Schaltung 402 agiert in ähnlicher Weise wie die in 2B beschriebene Schaltung 50.
Die Schaltung 402 enthält
einen Transistor 404, der durch ein POR-Signal (Power on reset, Einschalten
nach Rücksetzen)
aktiviert wird, welches beim Einschalten der Stromversorgung die
Bedingungen in der Schaltung initialisiert. Der in 12 dargestellte
Knoten n5 zeigt den Eingang in den Transistor 43, der mit
dem Takt Vorladetakt CLKP in Verbindung steht.
-
Da
der Takt CLKE ein relativ kurzer Impuls ist, stellt es kein Problem
dar, bei den asynchronen Schaltungen das ordnungsgemäße Funktionieren
zu gewährleisten,
wenn die Bestätigung
zu Anfang des Zyklus eintrifft. Da das e-Bit in einer Asynchron-zu-synchron-Schnittstelle
während
jedes synchronen Zyklus nur einen Signalspeicher und nicht die gesamte
Logik durchlaufen muss, ist es bereits zu Anfang des Zyklus gültig.
-
Das
bereits zu Anfang des Zyklus gültige e-Bit
kann gemäß 13 vorteilhaft
dazu verwendet werden, die Verzögerung
beim Erzeugen des Taktes CLKE für
die Asynchron-zu-synchron-Stufe
möglichst
stark zu verringern. 13 zeigt eine Schaltung 502,
welche die in 3A bzw. 3B beschriebene Funktionalität der Schaltungen 74 und 76 miteinander
kombiniert. Die Schaltung 502 verwendet ein unter Bezug
auf 12 beschriebenes POR-Signal (Power On Reset, Einschalten
nach Zurücksetzen).
Die Schaltung 502 verwendet die Eingangswerte e-Bit, CLKSYN,
POR und gibt ein Bestätigungssignal
ACK und den Takt CLKE aus. Mittels der Schaltung 502 wird
die Verzögerung
in vorteilhafter Weise verringert, da das e-Bit bereits zu Anfang des
Zyklus verwendet wird.
-
In 14 wurde
eine Pipeline mit 7 Stufen wie in 4 modelliert,
um die Ideen und Schaltungen von 12 und 13 für den Synchron-zu-asynchron-zu-synchron-Quittungsbetrieb zu
testen. 14 zeigt simulierte Signalverläufe für POR, die
Takte (CLKE1 bis CLKE7), die Daten (DATA IN und DATA OUT) und die
e-Bits (E1 und E7 in den Stufen 1 bzw. 7) sowie das Fehlersignal
ERROR. Für das
e-Bit wurde von Stufe 1 bis Stufe 7 eine Verzögerung von sechs synchronen
Zyklen gewählt,
was der Anzahl der Stufen entspricht. Die Signalverläufe zeigen
anschaulich, dass sich die Daten bei diesem Beispiel mit höherer Geschwindigkeit
durch die Pipeline bewegen und auf die Ankunft des e-Bits warten
müssen.
Wenn das e-Bit ankommt, werden die in entgegengesetzter Richtung
zu den Daten verlaufenden lokalen Taktsignale aus der Pipeline entfernt.
Die Anzahl der Verzögerungszyklen
im synchronen e-Bit-Pfad kann verringert werden.
-
Nachdem
bevorzugte Ausführungsarten
eines Systems und eines Verfahrens für eine Synchron-zu-asynchron-zu-synchron-Schnittstelle (die nur
der Veranschaulichung dienen und keine Einschränkung darstellen sollen) beschrieben
worden sind, ist anzumerken, dass ein Fachmann ausgehend von den
oben angegebenen Lehren Änderungen
und Abwandlungen daran vornehmen kann. Deshalb ist es klar, dass
an den bestimmten Ausführungsarten
der beschriebenen Erfindung Änderungen
vorgenommen werden können,
die im Geltungsbereich der in den beiliegenden Ansprüchen dargelegten
Erfindung liegen.