DE60202749T2 - Schnittstelle von synchron zu asynchron zu synchron - Google Patents

Schnittstelle von synchron zu asynchron zu synchron Download PDF

Info

Publication number
DE60202749T2
DE60202749T2 DE60202749T DE60202749T DE60202749T2 DE 60202749 T2 DE60202749 T2 DE 60202749T2 DE 60202749 T DE60202749 T DE 60202749T DE 60202749 T DE60202749 T DE 60202749T DE 60202749 T2 DE60202749 T2 DE 60202749T2
Authority
DE
Germany
Prior art keywords
synchronous
stage
asynchronous
signal
stages
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60202749T
Other languages
English (en)
Other versions
DE60202749D1 (de
Inventor
Stanley Schuster
Peter Cook
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60202749D1 publication Critical patent/DE60202749D1/de
Application granted granted Critical
Publication of DE60202749T2 publication Critical patent/DE60202749T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Communication Control (AREA)

Description

  • 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.

Claims (9)

  1. Synchron-zu-asynchron-zu-synchron-Schnittstelle, welche Folgendes umfasst: eine Vielzahl von derart miteinander gekoppelten Stufen (22a bis 22d), dass sie eine Pipeline für die Datenübertragung bilden; wobei die Vielzahl der Stufen Folgendes beinhaltet: eine erste Stufe (22a), welche eine Synchron-zu-asynchron-Datenübertragung durchführt; mindestens eine Zwischenstufe (22b bis 22c), welche eine Asynchron-zu-synchron-Datenübertragung durchführt; eine letzte Stufe (22d), welche eine Asynchron-zu-synchron-Datenübertragung durchführt; und einen Pfad mit einem synchronen Takt (12), welcher der Vielzahl von Stufen ein Zeitsignal zuführt, damit die erste und die letzte Stufe Operationen ausführen können, wenn sich das Zeitsignal an dieser Stufe befindet.
  2. Schnittstelle nach Anspruch 1, in welcher die erste und die letzte Stufe eine Schaltung mit einem lokalen Takt beinhalten und die Schaltung mit dem lokalen Takt ein UND-Gatter enthält, um das Zeitsignal und ein synchrones Taktsignal einer UND-Operation zu unterziehen.
  3. Schnittstelle nach Anspruch 2, in welcher das Zeitsignal durch ein synchrones 1-Bit-Register zugeführt wird.
  4. Schnittstelle nach Anspruch 2, in welcher die der ersten Stufe entsprechende Schaltung mit dem lokalen Takt eine mit der ersten Stufe gekoppelte Vorladeschaltung umfasst, welche einen Vorladeimpuls erzeugt, wenn von der mindestens einen Zwischenstufe eine Handshake-Quittung empfangen wird, dass Daten empfangen wurden.
  5. Schnittstelle nach Anspruch 4, in welcher die der ersten Stufe entsprechende Schaltung mit dem lokalen Takt ferner ein Signal „Daten gültig" umfasst, das dann erzeugt wird, wenn ein lokales Taktsignal durchläuft, und das zurückgesetzt wird, wenn der Vorladeimpuls durchläuft, wobei das Signal „Daten gültig" zu der mindestens einen Zwischenstufe gesendet wird, um anzuzeigen, dass gültige Daten verfügbar sind.
  6. Schnittstelle nach Anspruch 2, in welcher die der letzten Stufe entsprechende Schaltung mit dem lokalen Takt ferner eine mit der letzten Stufe gekoppelte Vorladeschaltung umfasst, welche für die letzte Stufe einen Vorladeimpuls und einen Bestätigungsimpuls erzeugt, der durch den durchlaufenden synchronen Takt ausgelöst und durch das durchlaufende lokale Taktsignal beendet wird.
  7. Schnittstelle nach Anspruch 2, in welcher die der letzten Stufe entsprechende Schaltung mit dem lokalen Takt ferner ein Fehlersignal umfasst, das erzeugt wird, wenn das lokale Taktsignal und ein Signal „Daten gültig" von der mindestens einen Zwischenstufe anzeigen, dass Daten ungültig sind.
  8. Schnittstelle nach Anspruch 1, in welcher die mindestens eine Zwischenstufe eine Vielzahl von Stufen enthält, die in einer Reihe angeordnet und vorwärts und rückwärts miteinander gekoppelt sind.
  9. Verfahren zur Synchron-zu-asynchron-zu-synchron-Datenübertragung, welches die folgenden Schritte umfasst: Bereitstellen einer Vielzahl von Stufen (22a bis 22d), die in Reihe miteinander gekoppelt sind, wobei die Vielzahl der Stufen eine erste Stufe (22a), welche eine Synchron-zu-Asynchron-Datenübertragung durchführt, mindestens eine Zwischenstufe (22b, 22c), welche eine Asynchron-zu-synchron-Datenübertragung durchführt, und eine letzte Stufe (22d) beinhaltet, welche eine Asynchron-zu-synchron-Datenübertragung durchführt; und Aktivieren der ersten und der letzten aus der Vielzahl der Stufen nur dann, wenn eine Operation zum Ermöglichen der Datenübertragung durchgeführt werden soll, wobei die erste und die zweite Stufe durch lokale Taktsignale aktiviert werden, die durch eine in jeder aus der Vielzahl von Stufen enthaltenen Taktschaltung erzeugt werden, wobei die lokalen Taktsignale durch ein synchrones Taktsignal und ein Zeitsignal erzeugt werden.
DE60202749T 2001-02-27 2002-02-20 Schnittstelle von synchron zu asynchron zu synchron Expired - Lifetime DE60202749T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/794,467 US6848060B2 (en) 2001-02-27 2001-02-27 Synchronous to asynchronous to synchronous interface
US794467 2001-02-27
PCT/GB2002/000752 WO2002069164A2 (en) 2001-02-27 2002-02-20 Synchronous to asynchronous to synchronous interface

Publications (2)

Publication Number Publication Date
DE60202749D1 DE60202749D1 (de) 2005-03-03
DE60202749T2 true DE60202749T2 (de) 2005-12-29

Family

ID=25162698

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60202749T Expired - Lifetime DE60202749T2 (de) 2001-02-27 2002-02-20 Schnittstelle von synchron zu asynchron zu synchron

Country Status (11)

Country Link
US (1) US6848060B2 (de)
EP (1) EP1366413B1 (de)
JP (1) JP3777160B2 (de)
KR (1) KR20030084923A (de)
CN (1) CN1270231C (de)
AT (1) ATE288104T1 (de)
AU (1) AU2002233528A1 (de)
CA (1) CA2436410A1 (de)
DE (1) DE60202749T2 (de)
TW (1) TW550473B (de)
WO (1) WO2002069164A2 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7987341B2 (en) * 2002-10-31 2011-07-26 Lockheed Martin Corporation Computing machine using software objects for transferring data that includes no destination information
US7260753B2 (en) * 2003-07-14 2007-08-21 Fulcrum Microsystems, Inc. Methods and apparatus for providing test access to asynchronous circuits and systems
US7047468B2 (en) * 2003-09-25 2006-05-16 International Business Machines Corporation Method and apparatus for low overhead circuit scan
KR20070004705A (ko) * 2004-03-10 2007-01-09 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 전자 회로와 그 동작 방법
US20070162768A1 (en) * 2004-03-10 2007-07-12 Koninklijke Philips Electronics, N.V. Electronic circuit
US7076682B2 (en) 2004-05-04 2006-07-11 International Business Machines Corp. Synchronous pipeline with normally transparent pipeline stages
US20060041693A1 (en) * 2004-05-27 2006-02-23 Stmicroelectronics S.R.L. Asynchronous decoupler
US8073974B2 (en) * 2004-10-01 2011-12-06 Lockheed Martin Corporation Object oriented mission framework and system and method
US8055821B2 (en) * 2004-11-17 2011-11-08 International Business Machines Corporation Apparatus, system, and method for converting a synchronous interface into an asynchronous interface
JP4676888B2 (ja) * 2005-01-25 2011-04-27 パナソニック株式会社 データ処理装置
US7724027B2 (en) * 2005-03-31 2010-05-25 Rozas Guillermo J Method and system for elastic signal pipelining
US7639764B2 (en) * 2005-08-17 2009-12-29 Atmel Corporation Method and apparatus for synchronizing data between different clock domains in a memory controller
JP5354427B2 (ja) 2006-06-28 2013-11-27 アクロニクス セミコンダクター コーポレイション 集積回路のための再構成可能論理ファブリックおよび再構成可能論理ファブリックを構成するためのシステムおよび方法
US7861014B2 (en) * 2007-08-31 2010-12-28 International Business Machines Corporation System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel
US7865674B2 (en) * 2007-08-31 2011-01-04 International Business Machines Corporation System for enhancing the memory bandwidth available through a memory module
US7818497B2 (en) * 2007-08-31 2010-10-19 International Business Machines Corporation Buffered memory module supporting two independent memory channels
US8082482B2 (en) * 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US8086936B2 (en) * 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US7840748B2 (en) * 2007-08-31 2010-11-23 International Business Machines Corporation Buffered memory module with multiple memory device data interface ports supporting double the memory capacity
US7584308B2 (en) * 2007-08-31 2009-09-01 International Business Machines Corporation System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel
US7899983B2 (en) 2007-08-31 2011-03-01 International Business Machines Corporation Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module
US8019919B2 (en) * 2007-09-05 2011-09-13 International Business Machines Corporation Method for enhancing the memory bandwidth available through a memory module
US7558887B2 (en) * 2007-09-05 2009-07-07 International Business Machines Corporation Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel
US8065647B2 (en) * 2007-10-19 2011-11-22 The University Of Utah Research Foundation Method and system for asynchronous chip design
US8527797B2 (en) 2007-12-26 2013-09-03 Qualcomm Incorporated System and method of leakage control in an asynchronous system
US7925824B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency
US7770077B2 (en) * 2008-01-24 2010-08-03 International Business Machines Corporation Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem
US7925825B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to support a full asynchronous interface within a memory hub device
US7930470B2 (en) * 2008-01-24 2011-04-19 International Business Machines Corporation System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller
US7930469B2 (en) 2008-01-24 2011-04-19 International Business Machines Corporation System to provide memory system power reduction without reducing overall memory system performance
US8140936B2 (en) * 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
US7925826B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency
TWI407744B (zh) * 2008-02-04 2013-09-01 Realtek Semiconductor Corp 網路信號處理裝置
DE102009000698A1 (de) * 2009-02-06 2010-08-12 Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik Prüfschaltung zur Prüfung einer Durchführung eines Handshake-Protokolls und Verfahren zur Prüfung einer Durchführung eines Handshake-Protokolls
US7900078B1 (en) * 2009-09-14 2011-03-01 Achronix Semiconductor Corporation Asynchronous conversion circuitry apparatus, systems, and methods
US8928386B1 (en) * 2013-03-12 2015-01-06 Xilinx, Inc. Circuits for and methods of asychronously transmitting data in an integrated circuit
US10289186B1 (en) * 2013-10-31 2019-05-14 Maxim Integrated Products, Inc. Systems and methods to improve energy efficiency using adaptive mode switching
US9594395B2 (en) * 2014-01-21 2017-03-14 Apple Inc. Clock routing techniques
US20150341032A1 (en) * 2014-05-23 2015-11-26 Advanced Micro Devices, Inc. Locally asynchronous logic circuit and method therefor
CN108694146B (zh) * 2017-04-11 2021-03-12 华大恒芯科技有限公司 一种异步/同步接口电路
US11960898B2 (en) 2020-12-18 2024-04-16 Red Hat, Inc. Enabling asynchronous operations in synchronous processors
CN115048889B (zh) * 2022-08-16 2022-11-01 井芯微电子技术(天津)有限公司 基于后端时序收敛仿真的异步路径提取方法及系统
US20240160593A1 (en) * 2022-11-16 2024-05-16 STMicroelectronics S.r..l. Asynchronous Controller for Processing Unit

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5187800A (en) 1985-01-04 1993-02-16 Sun Microsystems, Inc. Asynchronous pipelined data processing system
US4837740A (en) 1985-01-04 1989-06-06 Sutherland Ivan F Asynchronous first-in-first-out register structure
GB9114513D0 (en) * 1991-07-04 1991-08-21 Univ Manchester Condition detection in asynchronous pipelines
JPH05233380A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd 並列実行性能測定処理方法
WO1993019529A1 (en) * 1992-03-19 1993-09-30 Vlsi Technology Inc. Asynchronous-to-synchronous synchronizers, particularly cmos synchronizers
US5939898A (en) * 1997-06-24 1999-08-17 International Business Machines Corporation Input isolation for self-resetting CMOS macros
US6038656A (en) * 1997-09-12 2000-03-14 California Institute Of Technology Pipelined completion for asynchronous communication
US6128678A (en) * 1998-08-28 2000-10-03 Theseus Logic, Inc. FIFO using asynchronous logic to interface between clocked logic circuits
US6182233B1 (en) 1998-11-20 2001-01-30 International Business Machines Corporation Interlocked pipelined CMOS
US6247134B1 (en) * 1999-03-31 2001-06-12 Synopsys, Inc. Method and system for pipe stage gating within an operating pipelined circuit for power savings
US6393579B1 (en) * 1999-12-21 2002-05-21 Intel Corporation Method and apparatus for saving power and improving performance in a collapsable pipeline using gated clocks
US6611920B1 (en) * 2000-01-21 2003-08-26 Intel Corporation Clock distribution system for selectively enabling clock signals to portions of a pipelined circuit

Also Published As

Publication number Publication date
JP2004526241A (ja) 2004-08-26
WO2002069164A2 (en) 2002-09-06
US20020120883A1 (en) 2002-08-29
DE60202749D1 (de) 2005-03-03
US6848060B2 (en) 2005-01-25
EP1366413A2 (de) 2003-12-03
JP3777160B2 (ja) 2006-05-24
CA2436410A1 (en) 2002-09-06
CN1270231C (zh) 2006-08-16
ATE288104T1 (de) 2005-02-15
EP1366413B1 (de) 2005-01-26
KR20030084923A (ko) 2003-11-01
WO2002069164A3 (en) 2002-11-21
TW550473B (en) 2003-09-01
AU2002233528A1 (en) 2002-09-12
CN1514968A (zh) 2004-07-21

Similar Documents

Publication Publication Date Title
DE60202749T2 (de) Schnittstelle von synchron zu asynchron zu synchron
DE4320681C2 (de) Schieberegisterzelle
DE2349377C2 (de) Schaltwerk zur Durchführung von Datenverarbeitungsoperationen
DE2360762C3 (de) Integrierte Großschaltung zur Durchführung von Datenverarbeitungsoperationen und Prüfoperationen
DE3490015C2 (de)
DE4100671C2 (de)
DE4326134B4 (de) Eingangswechseldetektorschaltung
DE102005060394A1 (de) Schaltungsanordnung und Verfahren zum Betreiben einer Schaltungsanordnung
DE3725823A1 (de) Integrierte halbleiterschaltvorrichtung
DE19882086B4 (de) Verfahren und Vorrichtung zum Implementieren einer adiabatischen Logikfamilie
DE69918718T2 (de) Verfahren und vorrichtung zur verminderung von signalübertragungsverzögerungen unter verwendung vonverschiebegattern
DE2401334A1 (de) Synchronisationsstufe
DE60101169T2 (de) Logikschaltkreis mit Pipeline-Struktur
DE3829730A1 (de) Register fuer eine nacheinanderfolgende hochgeschwindigkeits-approximation in einem analog-digital-wandler
DE19741915A1 (de) Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen
DE4305677A1 (en) Test circuit, esp. for LSI circuits - has clock, test data and test control inputs, and is connected between two circuit stages
DE4318422A1 (de) Integrierte Schaltung mit Registerstufen
AT512192B1 (de) Synchrone sequentielle logikvorrichtung mit doppelt getriggerten flipflops sowie eine methode zum gezielt zeitversetzten triggern solcher zustandspeichernden register
DE3838939C2 (de)
DE10004108C1 (de) Schaltungsanordnung zur Generierung eines Ausgangs-Taktsignals mit optimierter Signalgenerierungszeit
DE1814496A1 (de) Schaltanordnung mit Haupt- und Tochterschalter
DE60320057T2 (de) System und Verfahren zur Schaltungsprüfung
EP1179738A2 (de) Anordnung zum Testen eines integrierten Schaltkreises
DE19519226C2 (de) Mehrstufiger Synchronzähler
DE19929600A1 (de) Asynchrone Differentielle Abfühl-Logikschaltung (ASDL)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7