DE60217408T2 - Informationsaustausch zwischen lokal synchronen schaltungen - Google Patents

Informationsaustausch zwischen lokal synchronen schaltungen Download PDF

Info

Publication number
DE60217408T2
DE60217408T2 DE60217408T DE60217408T DE60217408T2 DE 60217408 T2 DE60217408 T2 DE 60217408T2 DE 60217408 T DE60217408 T DE 60217408T DE 60217408 T DE60217408 T DE 60217408T DE 60217408 T2 DE60217408 T2 DE 60217408T2
Authority
DE
Germany
Prior art keywords
circuit
handshake
memory
module
local synchronous
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
DE60217408T
Other languages
English (en)
Other versions
DE60217408D1 (de
Inventor
L. Jozef KESSELS
M. Adrianus PEETERS
Paul Wielage
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE60217408D1 publication Critical patent/DE60217408D1/de
Application granted granted Critical
Publication of DE60217408T2 publication Critical patent/DE60217408T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

  • Die Erfindung bezieht sich auf eine digitale elektronische Schaltung mit einem oder mehreren lokalen synchronen Schaltungsmodulen.
  • Aus der Veröffentlichung von J. Muttersbach, T. Villiger und W. Fichtner mit dem Titel „Practical Design of Globally Asynchronous Locally Synchronous Systems", veröffentlicht im Sitzungsbericht des internationalen Symposiums über fortgeschrittene Forschung an asynchronen Schaltungen und Systemen, April 2000, Seiten 52–59, ist bekannt, eine Kommunikation zwischen einer Anzahl von lokalen synchronen Schaltungsmodulen bereitzustellen.
  • Die meisten heutigen Schaltungen sind synchrone Schaltungen, in welchen der innere Datentransport zwischen allen verschiedenen Registern (möglicherweise über sequenziell logische Schaltungen) von einem einzigen zentralen Uhrsignal oder einer Vielzahl von synchronisierten Uhrsignalen zeitlich gesteuert wird. Aus verschiedenen Gründen ist es wünschenswert, auf Architekturen mit einer Vielzahl von derartigen synchronen Schaltungsmodulen zu wechseln, die jeweils von ihrem eigenen Uhrsignal gesteuert werden, wobei die Uhrsignale der verschiedenen Schaltungen voneinander asynchron sind. Folglich ist jedes Schaltungsmodul lokal synchron, aber die verschiedenen Module arbeiten voneinander asynchron.
  • In derartigen Schaltungen mit lokalen synchronen Modulen entsteht ein Problem, wenn Information zwischen verschiedenen Module ausgetauscht werden muss. Da die Uhrsignale der verschiedenen Module nicht synchronisiert sind können die verschiedenen Module nicht ohne weitere Maßnahmen miteinander verbunden werden. Es ist notwendig, Schnittstellenschaltungen bereitzustellen, um zu gewährleisten, dass ein Modul, das Information ausgibt, diese Information nicht ändert, wenn ein anderes Modul die Information gleichbleibend benötigt, um die Information zu Lesen.
  • Der Artikel von Muttersbach et al. enthüllt eine Schaltung, die Schnittstellenschaltungen mit einer pausierbaren Uhr vorsieht. Wenn Information zwischen einem ersten und zweiten Modul ausgetauscht werden muss, werden die Uhren dieser Module temporär gestoppt. Während die Uhren gestoppt werden, wird ein herkömmlicher asynchroner Handshake für die Übertragung der Information verwendet. Der asynchrone Handshake verwendet zwei Signale: Ein Anfragesignal vom ersten Modul an das zweite Modul, um anzugeben, wann die Information verfügbar ist, und ein Bestätigungssignal vom zweiten Modul zurück zum ersten Modul, um mitzuteilen, wann die Information erhalten wurde.
  • Die pausierbaren Uhrschaltungen von Muttersbach et al. enthalten jeweils einen Arbiter (ein gegenseitiges Ausschlusselement) und eine invertierende Verzögerungslinie, deren Ausgang über den Arbiter an ihren Eingang gekoppelt ist. Eine Rückkopplung vom Ausgang der Verzögerungslinie an ihren Eingang bewirkt die Erzeugung von Uhrimpulsen. Das Eingangssignal der Verzögerungslinie wird als Uhrsignal in die lokale synchrone Schaltung eingespeist. Die pausierbare Uhrschaltung gewährleistet, dass der aktive Teil des Uhrsignals (der Uhrimpuls, während dem die Uhr hoch ist) immer dieselbe Länge hat. Der passive Teil (Uhr niedrig) kann verlängert werden, wenn die Uhr pausiert wird. Uhrstörungen (kürzere Zeiten zwischen Uhrübergängen) werden verhindert. Der Arbiter gewährleistet, dass Handshake-Signale nur ausgetauscht werden, wenn das Uhrsignal passiv ist (niedrig). Allerdings hat der Arbiter den Nachteil, dass er im Falle von Metastabilität unvorhersagbare Verzögerungen verursachen kann. Metastabilität tritt ein, wenn an den Eingängen des Arbiters nahezu gleichzeitig Übergänge stattfinden. In diesem Fall kann es lange Zeit dauern, bevor eines der Signale durchgelassen wird.
  • Für den Informationsaustausch erfordert die Schaltung von Muttersbach et al. ein Register zwischen den Modulen, um die Information temporär zu speichern. Dies liegt daran, dass der Handshake ausgeführt wird, während die Uhr passiv ist, damit die Module selbst während dem Handshake keine Daten ändern oder erhalten können. Das Register bewirkt eine Übertragung in der Schaltung, und es verzögert die Reaktionszeit der Schaltung.
  • Unter anderem ist es ein Ziel der Erfindung, eine Schaltung mit einem lokalen synchronen Schaltungsmodul bereitzustellen, wobei der Uhreingang zum lokalen synchronen Schaltungsmodul es nicht erfordert, während dem Austausch von Daten zwischen dem lokalen synchronen Schaltungsmodul und weiteren Schaltungen passiv gemacht zu werden.
  • Unter anderem ist es ein anderes Ziel der Erfindung, eine Schaltung mit lokalen synchronen Modulen bereitzustellen, wobei während dem Informationsaustausch zwischen den Modulen kein Register erforderlich ist.
  • Unter anderem ist es ein anderes Ziel der Erfindung, eine Schaltung mit lokalen synchronen Modulen bereitzustellen, wobei die Verwendung von Schaltungen mit Metastabilitätsproblemen minimal ist.
  • Die Schaltung gemäß der Erfindung wird in Anspruch 1 dargelegt. Gemäß der Erfindung bleibt die Verzögerungslinie in den Oszillatorschaltungen während dem Informationsaustausch zwischen den lokalen synchronen Modulen ein aktiver Teil der Schaltung. Während dem Austausch wird die Kopplung vom Ausgang der Verzögerungslinie an ihren Eingang umgeleitet, sodass die Verzögerungslinie an der Erzeugung von Handshake-Signalen teilnimmt, die den lokalen synchronen Modulen auch als Uhrsignale dienen.
  • In einer Ausführungsform der Schaltung gemäß der Erfindung wird die Kopplung zwischen dem Ausgang der Verzögerungslinie und ihrem Eingang durch einen lokalen Pfad geleitet, sodass die Uhrsignale autonom erzeugt werden, solange das lokale synchrone Schaltungsmodul den Austausch von Information mit der weiteren Schaltung nicht benötigt. Wenn Information ausgetauscht werden muss, wird die Kopplung zur Erzeugung einer Handshake-Schaltung umgeleitet. Folglich kann das lokale synchrone Schaltungsmodul mit Höchstgeschwindigkeit arbeiten, wenn kein Austausch von Information erforderlich ist.
  • In einer weiteren Ausführungsform wird die Information unter Verwendung temporär überlagerter Informationsaustauschtransaktionen ausgetauscht, beispielsweise beim Senden aufeinander folgender Befehle und zurückkommender Reaktionen auf jeden Befehl, während ein nachfolgender Befehl gesendet wird. Wenn ein letzter Befehl gesendet wurde, findet ein unterschiedlicher Betrieb statt, da eine Reaktion empfangen werden muss, ohne dass ein nachfolgender Befehl gesendet wird. In dieser Ausführungsform wird die Kopplung zwischen dem Ausgang der Verzögerungslinie und ihrem Eingang über den lokalen Pfad umgeleitet, wenn der letzte Befehl gesendet wurde, aber der lokale Pfad bleibt deaktiviert, bis die letzte Reaktion erhalten wurde. Folglich wird der Austausch von Information zeitlich richtig gesteuert, und es wird vermieden, dass das Timing für neue Befehle ausgelöst wird. Dies kann vorzugsweise für das Lesen von Daten aus einem Speicher angewendet werden, wenn die Daten einer Adressierung zurückkommen, während eine nächste Adressierung stattfindet. Gemäß der Ausführungsform muss kein nächster Speicherzyklus von der Handshake-Schnittstelle gestartet werden, um die Daten zu erhalten.
  • In einer weiteren Ausführungsform ist es möglich, die von dem Befehl abhängige Deaktivierung aufzuheben. Wenn folglich keine Reaktion erforderlich ist, kann die Uhr unverzüglich mit Höchstgeschwindigkeit arbeiten, ohne die Reaktion abzuwarten. Beispielsweise im Falle des Speicherzugriffs, wobei die Uhr unverzüglich nach einem Schreibvorgang mit hoher Geschwindigkeit arbeiten und nach einem Lesevorgang verzögert werden kann, wenn Daten von Speicher zurückkommen müssen.
  • In einer anderen Ausführungsform ist eine Vielzahl von weiteren Schaltungen angeordnet, die voneinander asynchron arbeiten können. In diesem Fall ist ein Demultiplexer angeordnet, welcher eine Auswahl einer Vielzahl von Kopplungen ermöglicht, um den Ausgang der Verzögerungslinie an ihren Eingang zu koppeln. Verschiedene Kopplungenarten stellen mit verschiedenen weiteren Schaltungsarten die Erzeugung von Handshakes bereit.
  • In einer anderen Ausführungsform ist eine Vielzahl von lokalen synchronen Schaltungsmodulen angeordnet, welche den Zugang zur weiteren Schaltung teilen. In diesem Fall können von der weiteren Schaltung Handshakes mit jedem der lokalen synchronen Schaltungsmodule ausgetauscht werden. Es wird ein Arbiter verwendet, um zu arbitrieren, an welches der lokalen synchronen Schaltungsmodule der Handshake geht. Folglich können multiple lokale synchrone Schaltungsmodule den Zugang zur weiteren Schaltung teilen. In einer Ausführungsform kann das lokale synchrone Modul die Kopplung entweder lokal oder synchron mit der Arbiter zwischen den Ausgang und den Eingang seiner Verzögerungslinie umleiten. Folglich kann das lokale synchrone Modul mit Höchstgeschwindigkeit arbeiten, wenn es nicht auf den Speicher zugreifen muss, und sein Uhrsignal wird um ein Minimum verzögert, wenn es auf den Speicher zugreift. In einer weiteren Ausführungsform ist die weitere Schaltung ein Speicher, und es ist ein Austauschmodul enthalten, damit der Arbiter vor den Speicher tritt, als wenn es ein ungeteilter Speicher wäre. Folglich werden bei den lokalen synchronen Schaltungsmodulen das lokale synchrone Schaltungsmodul aufgrund der Tatsache minimal verzögert, dass sie denselben Speicher teilen. In einer Ausführungsform müssen Schreibvorgänge nicht warten, bis die Daten von dem geteilten Speicher zurückkommen.
  • Natürlich kann das lokale synchrone Schaltungsmodul mit seiner Verzögerungslinie und Handshake-Schnittstelle in eine integrierte Schaltung eingebaut sein. Die weiteren Schaltungen, mit denen das lokale synchrone Schaltungsmodul kommuniziert, kann in derselben integrierten Schaltung enthalten sein, oder sie können in gesonderten integrierten Schaltungen enthalten sein, die über das lokale synchrone Schaltungsmodul mit der integrierten Schaltung verbunden werden können.
  • Diese und andere vorteilhafte Aspekte der Schaltung gemäß der Erfindung werden mehr im Detail und unter Verwendung der folgende Figuren beschriebenen.
  • 1 zeigt eine Schaltung mit einem lokalen synchronen Modul;
  • 2 zeigt ein lokales synchrones Modul mit einer Umleitschaltung;
  • 3 einen Handshake-Demultiplexer;
  • 4 zeigt ein lokales synchrones Modul und einen Speicher;
  • 5 zeigt Signale, die während dem Austausch von Information auftreten;
  • 6 zeigt ein lokales synchrones Modul mit einem Speicher;
  • 7 zeigt ein lokales synchrones Modul mit einer Vielzahl von Speichern;
  • 8 zeigt eine Vielzahl von Schaltungsmodulen mit einer geteilten zweiten Schaltung; und
  • 9 zeigt ein Austauschmodul.
  • 1 zeigt eine Schaltung mit einer ersten Schaltung 10, einer zweiten Schaltung 12, einer Handshake-Schnittstellenschaltung 14 und einer Schnittstelle 16 für den Austausch von Informationen. Die erste Schaltung 10 enthält ein lokales synchrones Schaltungsmodul 100 und eine Uhrschaltung 102. Das lokale synchrone Schaltungsmodul 100 enthält eine Vielzahl von Registern 108 und logischen und/oder arithmetischen Schaltungen 109. Ausgänge der Register 108 sind über logische und/oder arithmetische Schaltungen 109 an Eingänge der Register 108 gekoppelt. Dieser Anschluss kann eine Pipelinie bilden mit verschiedenen der aufeinander folgenden Register 108 von aufeinander folgenden Stufen der Pipeline und/oder in Schleifen, in welchen ein Ausgang eines oder mehrerer der Register 108 direkt oder indirekt an seine Eingänge zurückgespeist wird.
  • Die Uhrschaltung 102 ist an einen Uhreingang 106 für Uhrregister 108 gekoppelt. Die Uhrschaltung 102 enthält eine invertierende Verzögerungslinie 104 (beispielsweise wie eine Kaskade einer ungeraden Zahl von Invertern eingebaut). Ein Eingang der Verzögerungslinie 104 ist an den Uhreingang 106 gekoppelt.
  • Es sind für den Austausch von Informationen Register 108 vom lokalen synchronen Schaltungsmodul 100 über die Schnittstelle 16 an die zweite Schaltung 12 gekoppelt (falls erforderlich können sequenzielle logische Schaltungen in der Kopplung enthalten sein). Der Eingang und der Ausgang der invertierenden Verzögerungslinie 104 der ersten Schaltung 10 sind über eine Handshake-Schnittstelle an die zweite Schaltung gekoppelt 12.
  • Während dem Betrieb ist das lokale synchrone Schaltungsmodul 100 wie eine herkömmliche synchrone Schaltung ausgelegt. Also während dem Betrieb wird die Vielzahl von Registern 108 über einen gemeinsamen Uhreingang 106 getaktet, um den Datenausgang direkt von den Registern 108 oder nach einer intermediären Verarbeitung durch die logischen und/oder arithmetischen Schaltungen 109 zu laden. Im Prinzip gibt es viele verschiedene Pfade, durch die die Daten von den Registern 108 parallel zurück zu den Register 108 fließen. Jeder Pfad kann ein unterschiedliches Zeitintervall benötigen, um die Daten von den Registern 108 zurück an die Register 108 zu übertragen. Die Zeitdauer, mit dem das Register 108 getaktet werden kann, sollte eine kleinstmögliche Dauer überschreiten, welche dem größten Zeitintervall entspricht, der für die Übertragung aller Daten von den Registern 108 zurück an die Register erforderlich ist plus der für die Register 108 erforderlichen Zeit für das Setup und Laden der Daten. Die Verzögerungslinie 104 erzeugt eine Verzögerung, die dieser kleinstmöglichen Dauer entspricht. Deshalb würde, wenn der Eingang der Verzögerungslinie 104 an ihren Ausgang gekoppelt wäre, die Verzögerungslinie eine Uhroszillation mit der erforderlichen Zeitdauer erzeugen.
  • Die Verzögerungslinie 104 ist an die Handshake-Schnittstelle 14 gekoppelt, um die Uhroszillation der Uhrschaltung 102 mit Handshakes von der zweiten Schaltung 12 zu synchronisieren. Dies ermöglicht es, Daten mit der zweiten Schaltung 12 auszutauschen. Eine aufsteigende Signalflanke am Ausgang der invertierenden Verzögerungslinie 104 wird wie eine Anfrage Creq zur Datenübertragung behandelt und zur zweiten Schaltung 12 weitergeleitet. Während der Datenübertragung von beispielsweise der ersten Schaltung 10 zur zweiten Schaltung 12 werden die zu übertragenden Daten von den Registern 108 ausgegeben und an der Informationsaustauschschnittstelle 16 zwischen der ersten Schaltung 10 und der zweiten Schaltung 12 stabil. Wenn die zweite Schaltung 12 anzeigt, dass die Anfrage angenommen wurde (beispielsweise wenn die Daten in die zweite Schaltung geladen wurden), wird ein Bestätigungssignal Cack von der zweiten Schaltung 12 zurück an den Eingang der Verzögerungslinie 104 durchgelassen, was die Verzögerungslinie 104 dazu veranlasst, das Creq-Signal nach einer Verzögerung wieder zurückzustellen. Der Fall im Creq-Signal zeigt der zweiten Schaltung 12 an, dass die erste Schaltung 10 die Daten von der Schnittstelle entfernt hat. Wenn die zweite Schaltung 12 ihrerseits anzeigt, dass neue Daten an die Schnittstelle 16 gebracht werden können, wird das Bestätigungssignal Cack niedrig gewählt, was die Verzögerungslinie 104 dazu veranlasst, das Creq-Signal nach einer Verzögerung wieder zurückzustellen etc. Folglich wird die Verzögerungslinie 104 als eine Uhr für lokale synchrone Schaltungen 100 und zugleich als eine Handshake-Schnittstelle für die zweite Schaltung 12 betrieben.
  • Es ist zu verstehen, dass obwohl dieser Mechanismus hinsichtlich der Datenübertragung von der ersten Schaltung 10 zur zweiten Schaltung 12 beschriebenen wurde, der Mechanismus ebenfalls für die Datenübertragung von der zweiten Schaltung 12 zur ersten Schaltung 10 anzuwenden ist.
  • 2 zeigt die erste Schaltung 10 mit der lokalen synchronen Schaltung 100 und der Uhrschaltung 102, gekoppelt an eine Multiport-Handshake-Schnittstelle 20. Das lokale synchrone Schaltungsmodul 100 hat einen ausgewählten Ausgang Sel, gekoppelt an die Multiport-Handshake-Schnittstelle 20. Die Multiport-Handshake-Schnittstelle 20 enthält einen Handshake-Demultiplexer 22 mit einem Steuereingang, gekoppelt an den Sel-Ausgang vom lokalen synchronen Schaltungsmodul 100, und mit einem ersten Port und einer Vielzahl von zweiten Ports 24a–c, 26. Der erste Port ist an den Eingang und den Ausgang der Verzögerungslinie 104 gekoppelt. Eine Anzahl der zweiten Ports 24a–c ist an respektive Handshake-Schnittstellen 14 gekoppelt, die ihrerseits an verschiedene weiteren Schaltungen (nicht gezeigt) gekoppelt sein können, die eine Handshake-Schnittstelle wie die zweiten Schaltungen bewerkstelligen können. Einer der zweiten Ports 26 hat einen Anfrageausgang und einen Bestätigungseingang, die aneinander gekoppelt sind.
  • Während dem Betrieb arbeitet der Demultiplexer 22, um über einen ausgewählten zweiten Port 24a–c, 26 eine Kopplung vom Ausgang der Verzögerungslinie 104 an den Eingang der Verzögerungslinie 104 bereitzustellen. Der Demultiplexer 22 leitet also ein Signal von seinem ersten Port an einen ausgewählten zweiten Port 24a–c, 26. Der zweite Port 24a–c, 26 wird unter der Steuerung des Steuereingangs sel ausgewählt. Wenn das lokale synchronisierte Schaltungsmodul 100 den Austausch von Information mit anderen Schaltungen, die nicht lokal synchron mit ihm sind, nicht benötigt, wird der Anschluss zwischen dem Eingang und dem Ausgang der Verzögerungslinie 104 durch den Port 26 geleitet, der den Anfrageausgang und den Bestätigungseingang dieses Ports direkt verbindet. Folglich wird die Oszillatorschaltung 102 wie ein Ringoszillator bei einer größtmöglichen Uhrfrequenz, bei der das lokale synchrone Schaltungsmodul 100 arbeiten kann, zu einer Grundoszillation gebracht.
  • Wenn das lokale synchrone Schaltungsmodul 100 über die Schnittstelle 16 kommunizieren muss, weist es den Demultiplexer 22 an, die Kopplung zwischen dem Eingang und dem Ausgang der Verzögerungslinie 104 über einen anderen Port, ausgewählt gemäß der Schaltung (nicht gezeigt), mit der die Information zu kommunizieren ist, umzuleiten. In diesem Fall werden die Ausgangssignale der Verzögerungslinie 104 über eine Handshake-Schnittstelle 14 zu Eingangssignalen der Verzögerungslinie des relevanten Ports. Folglich wird Dauer des auf die lokale synchrone Schaltung 100 angewandten Uhrsignals generell verringert, um sie an die Geschwindigkeit des Informationsaustauschs anzupassen.
  • 3 zeigt mehr im Detail eine Bauweise eines Demultiplexers mit zwei zweiten Ports. Der Demultiplexer enthält einen ersten und zweiten selbst haltenden Schalter 30, 32, ein erstes und ein zweites AND-Gate 34, 36 und ein OR-Gate 38. Der Creq-Ausgang der Verzögerungslinie 104 von Prozessor 10 ist an die Uhreingänge der selbst haltenden Schalter 30, 32 und an die ersten Eingänge der AND-Gates 34, 36 gekoppelt. Der sel-Ausgang des synchronen Moduls 100 des Prozessor 10 ist respektive über einen invertierenden und einen nicht invertierenden Eingang an die Dateneingänge der selbst haltenden Schalter 30, 32 gekoppelt. Die Datenausgänge der selbst haltenden Schalter 30, 32 sind an die Ausgänge (Req1, Req2) der zweiten Ports des Demultiplexers 140 gekoppelt. Die selbst haltenden Schalter 30, 32 sind vom transparent-niedrigen Typ, welcher das sel-Signal (oder seine Umkehrung) durchlässt, wenn Creq niedrig ist, und den letzten Wert von sel (oder seine Umkehrung) beibehält, wenn Creq hoch ist. Die Eingänge Ack1, Ack2 der zweiten Ports sind an die Eingänge von OR-Gates 38 gekoppelt. Der Ausgang von OR-Gate 38 ist an den Eingang Cack der Verzögerungslinie und den Eingang Creq des Prozessors 10 und den Uhreingang des synchronen Moduls 100 gekoppelt. Es ist zu verstehen, dass wenn eine größere Anzahl von Ports erforderlich ist, eine entsprechende größere Anzahl selbst haltender Schalter 30, 32 angeordnet sein kann, wobei sie für einen respektiven Port jeweils ein respektives sel-Signal selbst halten. Das respektive sel Signale kann unter Verwendung eines Mehrfachlinien-sel-Ausgangs von der ersten Schaltung 10, beispielsweise mit Linien für jeden Port, erhalten werden.
  • Während dem Betrieb bewirkt des lokale synchrone Schaltungsmoduls eine Änderung der logischen Ebene von Steuersignal sel in einem Zeitpunkt, wenn Creq hoch ist. Als Ergebnis wird der neue Wert von sel an die AND-Gates 34, 36 durchgelassen, sobald Creq niedrig wird. Danach lässt eines der AND-Gates 34, 36 das CReq Signal an einen entsprechenden Ausgang CReq1, Creq2 durch, wobei das andere AND-Gate das Creq-Signal sperrt und seinen Ausgang Creq1, Creq2 niedrig hält. Übergänge von niedrig nach hoch an einem beliebigen der Bestätigungseingänge Ack1, Ack2 werden an den Bestätigungsausgang Cack des ersten Ports weitergeleitet.
  • 4 zeigt eine Schaltung, in der das lokale synchrone Schaltungsmodul 100 Teil eines Prozessors 10 ist, der mit einem Speicher 12 kommuniziert. Obwohl ein einziger Speicher 42 gezeigt wird, kann Speicher 42 tatsächlich eine Reihe von Speicherelementen enthalten, die synchron miteinander arbeiten, und/oder Speicher 42 kann eine Cache-Struktur enthalten. Die Schaltung von 4 ist eine spezifische Anwendung der Schaltung wie in 2 gezeigt. Zusätzlich wurden spezielle Maßnahmen in der Handshake-Schnittstelle ergriffen, um die Verwendung einer herkömmlichen Speicher- und Prozessorbauweise zu ermöglichen. Derartige Bauweisen ermöglichen Pipeline-Lesevorgänge, in denen in einem Uhrzyklus eine Adressierung des Speichers stattfindet, wobei die erhaltenen Daten später zurückgeführt werden, und zugleich eine nachfolgende Adressierung des Speichers stattfindet.
  • Die Schaltung von 4 enthält einen Speicher 42 und eine Handshake-Schnittstelle 44. Der Speicher 42 hat eine Zugriff/Daten-Datenschnittstelle, gekoppelt an Prozessor 10 (der Zugriffsteil der Schnittstelle sieht die Übertragung von Adressierungen und optional weiteren Signalen wie Lese/Schreib-Steuersignalen vor). Speicher 42 hat einen Speicher-Bereitschaftsausgang „bereit" für die Rückspeisung über eine Handshake-Schnittstelle 44 an einen Speicher-Anfrageeingang Mreq. Die Handshake-Schnittstelle 44 enthält einen Handshake-Demultiplexer 440, ein Muller-C-Element 442 und ein AND-Gate 444. Das bekannte Muller-C-Element ist dafür ausgelegt, eine logische Eins oder eine logische Null auszugeben, wenn sein Eingangssignal respektive logisch eins oder logisch niedrig ist, und seinen vorherigen Ausgangsignalwert zurückzuhalten, wenn der Eingangssignale abweicht.
  • Der Demultiplexer 440 hat einen ersten Port, gekoppelt an den Eingang Cack und den Ausgang Creq der Verzögerungsschaltung 104 des Oszillators des Prozessors 10. Der Demultiplexer hat einen zweiten Port A (Zugangsport) und einen dritten Port S (Wechselport), jeweils mit einem Eingang (Aack, Sack) und einem Ausgang (Sreq, Sack). Der Demultiplexer 440 hat einen Steuereingang sel, gespeist von der synchronen Schaltung 100 des Prozessors 10.
  • Während dem Betrieb hat Prozessor 10 zwei Betriebsmodi, einen ersten Modus, in dem nicht auf Speicher 12 zugegriffen wird, und einen zweiten Modus, in dem auf Speicher 12 zugegriffen wird. Im ersten Modus gibt das synchrone Modul 100 das Steuersignal sel aus, um dem Demultiplexer 440 eine Kopplung des ersten Ports (Creq, Cack) und des dritten Ports A (Sreq, Sack) anzuweisen. Folglich sind der Ausgang Creq und der Eingang Cack der Verzögerungslinie 104 über das AND-Gate 444 gekoppelt. Normalerweise ist das Bereitschaftssignal von Speicher 12 hoch, sodass das AND-Gate 144 das Signal von Creq nach Cack einfach durchlässt. Als Ergebnis findet eine Oszillation statt, in der Creq und Cack abwechselnd logisch hoch und logisch niedrig sind und ein Uhrsignal für das synchrone Modul 100 erzeugen. Die Verzögerung der Verzögerungslinie 104 ist ausgelegt, sodass die von der Kaskade, der Verzögerungslinie 104, dem Demultiplexer 440 und dem AND-Gate 444 verursachte Gesamtverzögerung zu Uhrperioden führt, die mindestens so lange wie jede erforderliche Verzögerungszeit sind, um im lokalen synchronen Schaltungsmodul 100 Daten zwischen Registern zu leiten.
  • Wenn das lokale synchrone Schaltungsmodul 100 auf einen Speicher 12 zugreifen muss, veranlasst es die Schnittstellenschaltung 44, die Kopplung vom Ausgang Creq der Verzögerungslinie 104 an den Eingang Cack der Verzögerungslinie 104 umzuleiten. Anstatt durch das AND-Gate 444 führt diese Kopplung jetzt durch das Muller-C-Element 442. Als Ergebnis entsteht eine gemeinsame Oszillatorschaltung, die sowohl für den Prozessor 10 als auch den Speicher 12 einen oder mehrere Uhrimpulse erzeugt, um die Übertragung von Information wie Adressierungen und Daten zwischen dem Prozessor 10 und dem Speicher 12 zeitlich zu steuern. Im Falle eines Speicher-Lesevorgangs behält das synchrone Modul 100 diese Kopplung durch das Muller-C-Element 142 während dem Austausch der Adressierung und der nachfolgenden Daten bei. Während einem Schreibvorgang muss die Kopplung nur während einem simultanen Austausch der Adressierungs- und Dateninformation aufrecht erhalten bleiben.
  • 5 zeigt mehr im Detail Signale, die während dem Speicherzugriff auftreten. Zuerst wird während einem Speicher-Lesevorgang, anfänglich im ersten Modus, der Ausgang Areq des zweiten Ports A des Demultiplexers 440 logisch niedrig. Beim Start des Speicherzugriffs führt das synchrone Modul 100 über die Zugriffs/Daten-Schnittstelle eine Adressierung (optional mit Daten) auf Speicher 42 durch und bewirkt eine Änderung 50 der logischen Ebene von Steuersignal sel in einem Zeitpunkt, wenn Creq hoch ist. Als Ergebnis wird der neue Wert von sel an die AND-Gates 34, 36 durchgelassen, sobald Creq niedrig wird. Danach bleibt Sreq niedrig, solange sel diesen Wert beibehält.
  • Der nächste Übergang von niedrig nach hoch 52 von Creq wird zum Ausgang Areq des Demultiplexers 140 durchgelassen. Da „bereit" hoch ist, führt dies zu einem Übergang von niedrig nach hoch 54 bei Mreq, Aack (wie Mreq zusammen gezeigt) und Cack. Dieser Übergang 54 startet im synchronen Modul 100 einen nächsten Uhrzyklus und signalisiert Speicher 42, dass die Zugriffsinformation, bestehend aus einer Adressierung und optional aus Daten, zur Verfügung steht und dass unter Verwendung dieser Information ein Speicherbetrieb erforderlich ist. In diesem Uhrzyklus führt das synchrone Modul 100 sel wieder zurück, um den Feedback-Teil des Uhroszillators an die nächsten Flanken des Creq-Demultiplexers 440 umzuleiten, sodass die nachfolgenden Übergänge von Creq über das AND-Gate 444 verlaufen.
  • Speicher 42 antwortet der aufsteigenden Flanke an Mreq, indem er „bereit" niedrig macht, um mitzuteilen, dass die Information von Prozessor 10 erhalten wurde. Nach einer Verzögerung, bestimmt von der invertierenden Verzögerungsschaltung 104, führt die aufsteigende Flanke 54 an Cack zu einer fallenden Flanke 56 an Creq und Areq. Der geändert Wert von sel wird jetzt an die AND-Gates 34, 36 weitergeleitet. Wenn „bereit" und Aack niedrig sind, macht das Muller-C-Element 442 MReq, Aack und Cack niedrig, womit der aktive Teil des Uhrzyklus endet. Es ist darauf hinzuweisen, dass die Zeit, in der Mreq niedrig wird, davon abhängt, wer von Areq (Creq) und „bereit" am letzten niedrig wird, d.h. dass das Zeitintervall, in dem MReq, Aack und Cack hoch sind, länger sein kann als die von der Verzögerungsschaltung 104 verursachte Verzögerung.
  • Als Reaktion auf den niedrigen Wert von Cack löst die Verzögerungsschaltung 104 nach einer von der Verzögerungsschaltung 104 bestimmten Verzögerung einen Übergang von niedrig nach hoch 58 in Creq und Sreq aus. Speicher 42 löst in „bereit" einen Übergang von niedrig nach hoch 59 aus, wenn beim Lesen Daten verfügbar wurden. Allgemein ist das Zeitintervall bis zu diesem Übergang 59 sehr viel länger als die von der Verzögerungsschaltung 104 verursachte Verzögerung. Wenn beide Sreq und „bereit" hoch sind, macht das AND-Gate 144 Sack und Cack hoch. Dies taktet das synchrone Modul 100 und veranlasst es, die Daten von Speicher 42 zu laden. Da „bereit" jetzt hoch und sel wieder auf der ursprünglichen Ebene ist hängt die für das synchronen Modul 100 erzeugte Frequenz des Uhrsignals nicht länger von vom Speicher 42 bestimmten Verzögerungen ab. Folglich geht das synchrone Modul 100 mit seinen eigenen lokalen Uhrimpulsen auf Hochgeschwindigkeitsbetrieb zurück, bis der nächste Speicher-Lesevorgang erforderlich ist.
  • Wenn das synchrone Modul 100 eine Reihe von aufeinander folgenden Lesevorgängen ausführen muss, kann es sel auf der beim Start des ersten Betriebs erreichten Ebene unverändert lassen. Folglich wird als Reaktion auf jeden Übergang von niedrig nach hoch des „Bereitschaftssignals" ein nächster Mreq-Impuls erzeugt (vorausgesetzt, dass Speicher 42 langsamer als Prozessor 10 ist). Während jedem nächsten Mreq-Impuls liefert Prozessor 10 eine neue Adressierung an die Zugriffs/Daten-Schnittstelle, zusammen mit Empfangsdaten einer vorherigen Adressierung, wenn diese vorherige Adressierung in einen Lesevorgang einbezogen war.
  • Die als Reaktion von der letzten Adressierung (oder der einzigen Adressierung im Falle eines einzigen Lesevorgangs) erhaltenen Daten werden entgegengenommen, wenn der Demultiplexer 440 die Signale über den dritten Port S bereits zwischen den Ausgang und den Eingang der invertierenden Verzögerungslinie 104 leitet. Da das AND-Gate 444 mit diesem Port S verbunden ist wird der Übergang von niedrig nach hoch vom Ausgang Creq der Verzögerungslinie 104 nur dann an den Eingang Cack der Verzögerungslinie 104 zurückgeleitet, wenn das „Bereitschaftssignal" hoch wurde. Folglich wird gewährleistet, dass der erste Impuls, der über den dritten Port S verläuft, nur durchgelassen wird, wenn Daten verfügbar sind. Da der zweite Port A nicht verwendet wird, um eine Verzögerung zu versichern, bis die Daten verfügbar sind, wird kein neuer Mreq-Impuls erzeugt, sodass der Speicher 42 für den Empfang einer nächsten Adressierung in Bereitschaftszustand bleibt. Natürlich kann auch Mehrfachzugangsbetrieb verwirklicht werden, indem die logische Ebene von sel bei jedem Zugangsvorgang zurück- und vorgestellt wird.
  • Im Prinzip können Uhrimpulse für Schreibvorgänge auf dieselbe Weise wie für Lesevorgänge erzeugt werden. In diesem Fall wartet der Prozessor 10, bis die Daten in Speicher 12 gespeichert wurden, und die Prozessoruhr wird verzögert, bis das Speichern vollendet wurde. In einer Ausführungsform allerdings wartet der Prozessor 10 nicht die Vollendung des Schreibens ab, sondern setzt über die Zeit den Betrieb bei voller Geschwindigkeit fort, in der Speicher 12 weiterhin mit dem Speichern der Daten beschäftigt ist.
  • 6 zeigt eine abgeänderte Schaltung, die diese Betriebsart unterstützt. Zusätzlich zu den in 4 gezeigten Komponenten enthält die Schaltung von 6 ein zusätzliches AND-Gate 64, ein Lese-Flipflop 62 und ein OR-Gate 60. Das zusätzliche AND-Gate 64 empfängt von der Schnittstelle zwischen Prozessor 10 und Speicher 42 das sel-Signal und ein Lese/Schreib-Steuersignal. Der Ausgang des zusätzlichen AND-Gates 64 ist an den Dateneingang des Lese-Flipflops 62 gekoppelt. Der Lese-Flipflop 62 wird von der aufsteigende Flanke von Cack getaktet. Der Datenausgang des Lese-Flipflops 62 ist zusammen mit dem Bereitschaftsausgang von Speicher 42 an das OR-Gate 60 gekoppelt. Der Ausgang des OR-Gates 60 ist an das AND-Gate 444 gekoppelt, das Sreq über den dritten Port nach Areq durchlässt.
  • Folglich wird die direkte Kopplung des Bereitschaftssignals zum AND-Gate 444 durch eine indirekte Kopplung ersetzt, die, sofern kein Lesevorgang stattgefunden hat, den Eingang des AND-Gates 444 dazu zwingt, hoch zu sein. Folglich werden Übergänge von niedrig nach hoch an Sreq (verursacht durch Übergänge von niedrig nach hoch an Creq) nur im Falle eines Lesevorgangs verzögert. Im Falle eines Schreibvorgangs ist nach dem Zugriff auf Speicher 42 der erste Impuls über den dritten Port S so schnell wie jeder andere über den dritte Port S geleitete Impuls. Im Falle eines Lesevorgangs wird dieser erste Impuls verzögert, bis Speicher 42 bereit ist.
  • Die Erklärung von 4 und 6 setzt eine „tiefe" Speicherpipelinie voraus, d.h. es wird vorausgesetzt, dass die Daten einer Adressierung des Speichers einen Zyklus nach der angewendeten Adressierung ausgegeben werden. Natürlich kann ein tieferer Pipelinespeicher verwendet werden, welcher die Daten nach einer größeren Anzahl von Zyklen nach dem Zugriff ausgibt. In diesem Fall bleiben die Pipeline-Daten in Speicher 42. Wenn der Prozessor 10 einzelne Lesevorgänge ausführen muss, muss er für eine ausreichende Anzahl von Zyklen die Wahl des zweiten Ports A beibehalten, damit Speicher 42 die Daten erzeugt. Ähnlich setzt die Erklärung voraus, dass nur während einem einzigen Zyklus Daten zusammen mit einer Adressierung durchgelassen werden. Wenn mehr als ein aufeinander folgender Zyklus verwendet wird, kann der Prozessor für eine Anzahl von Zyklen die Wahl des zweiten Ports A beibehalten, nachdem Speicher 42 die Adressierung ausgegeben hat.
  • Eine Anzahl von Speichern, die gegenseitig asynchron arbeiten, können parallel zu Speicher 42 verwendet werden. In diesem Fall kann die Bestätigung von Anfragen Creq vom Prozessor 10 von den Speichern gesteuert werden, auf die zugegriffen wird und von denen, die Daten ausgegeben haben. Dies kann beispielsweise unter Verwendung einer entsprechend größeren Anzahl von Muller-C-Elementen 442 und zweiten Ports A am Demultiplexer 440, jeder für respektive einen der Speicher, verwirklicht werden. In diesem Fall werden für jeden Speicher ein zusätzliches AND-Gate 64, ein Lese-Flipflop 62 und ein OR-Gate 60 vorgesehen. Es wird ein weiteres AND-Gate für die Eingabe der Ausgangssignale aller ODER-Gates 60 vorgesehen. Der Ausgang des weiteren AND-Gates wird in das AND-Gate 444 und in die zusätzlichen Eingänge der Muller-C-Elemente eingegeben, sodass aufsteigende Impulse von diesen C-Elementen und den AND-Gates nur durchgelassen werden, wenn alle ODER-Gates anzeigen, dass der vorherige Vorgang entweder kein Lesezugriff war oder dass der Zugriffsspeicher bereit ist.
  • 7 zeigt eine Ausführungsform mit einer Vielzahl von Speichern 70a–c. Der Prozessor 10 hat gesonderte Ports 72, 74 für Schreibdaten und Lesedaten. Ähnlich haben die Speicher 70a–c gesonderte Ports für Schreib- und Lesedaten. Es ist ein Lesedaten-Multiplexer zwischen den Lesedaten-Ports der Speicher 70a–c und dem Lesen-Port des Prozessors 10 vorgesehen. Dieser Multiplexer 76 lässt die Lesedaten vom zugegriffenen Speicher zum Prozessor 10 durch. Der Multiplexer 76 kann für die verschiedenen Speicherbeispielsweise von den Ausgängen von Lese-Flipflops gesteuert werden, da diese Flipflops anzeigen, welcher der Speicher im vorherigen Zyklus gelesen wurde. Aber es gibt natürlich viele andere Arten für die Steuerung des Multiplexers, die verwendet werden können, so kann stattdessen beispielsweise ein Auswahlregister, das das sel-Signal des vorherigen Zyklus speichert, für die Steuerung des Multiplexers verwendet werden.
  • Es ist darauf hinzuweisen, dass die beschriebenen Schaltungen lediglich Beispiele der Schaltung gemäß der Erfindung sind. Beispielsweise kann, ohne von der Erfindung abzuweichen, die Verwendung der Signalebenen eines Teils oder all der Schaltungen invertiert werden. In Verbindung hierzu könnten die lokalen synchronen Schaltungen vom Ausgang der Verzögerungslinie getaktet werden. Die notwendige Inversion, um eine Oszillation durch die Verzögerungslinie auszulösen, könnte in der Handshake-Schaltung vorgesehen werden. Die Erfindung ist auch nicht auf ein bestimmtes Handshake-Protokoll beschränkt, das als Beispiel verwendet wurde. Es können auch andere Handshake-Protokolle, beispielsweise unter Verwendung einer größeren oder kleineren Anzahl von Handshake-Linien, verwendet werden.
  • Wie gezeigt kommuniziert das lokale synchrone Schaltungsmodul 10 mit einer zweiten Schaltung 12, welche ein Speicher sein kann. Die zweite Schaltung kann eine asynchrone Schaltung sein, oder sie kann eine lokale synchrone Schaltung an sich sein, die unter der Steuerung einer Uhroszillatorschaltung arbeitet, deren Verzögerungspfad mit Schaltungsmodul 10 durch die Handshake-Schnittstelle umgeleitet wird. Folglich wird während dem Handshake eine gemeinsame Uhroszillatorschaltung gebildet.
  • 8 zeigt eine Schaltung mit einer Vielzahl von lokalen synchronen Schaltungsmodulen 80a–c, jede mit ihrer eigenen Uhroszillatorschaltung 81a–c. Die lokalen synchronen Schaltungsmodule 80a–c haben über denselben Port der zweiten Schaltung alle Zugang zur zweiten Schaltung 82. Jedes lokale synchrone Schaltungsmodul hat zwischen dem lokalen synchronen Schaltungsmodul 80a–c und der zweiten Schaltung 82 seine eigene Handshake-Schnittstelle 84a–c. Eine Arbiter-Schaltung 88 ist zwischen den Handshake-Schnittstellen 84a–c und der zweiten Schaltung 82 enthalten. Es ist ein Multiplexer und/oder Demultiplexer 86 zwischen den Informationsaustausch-Schnittstellen der lokalen synchronen Schaltungsmodule 80a–c und der zweiten Schaltung 82 enthalten. Ein Multiplexer und/oder Demultiplexer 86 wird vom Arbiter 88 gesteuert.
  • Während dem Betrieb sind die lokalen synchronen Module 80a–c abwechselnd an die zweite Schaltung 82 gekoppelt. In diesem Zeitpunkt wird die Kopplung zwischen dem Ausgang und dem Eingang der Verzögerungslinie in ihrer Uhrschaltung über eine Handshake-Schnittstelle 84a–c umgeleitet, womit die zweite Schaltung 82 und die Handshake-Signale durch die Verzögerungslinie fließen.
  • Jedes lokale synchrone Modul 80a–c kann die Kopplung zwischen dem Ausgang und dem Eingang der Verzögerungslinie in ihrer Uhrschaltung dazu bringen, über eine Handshake-Schnittstelle mit der zweiten Schaltung 82 umgeleitet zu werden. Der Arbiter 88 lässt die Handshake-Signale zwischen der zweiten Schaltung 82 und der Handshake-Schnittstelle 84a–c des relevanten lokalen synchronen Schaltungsmoduls 80a–c durch. Wenn ein anderes der lokalen synchronen Schaltungsmodule 80a–c versucht, einen weiteren Handshake mit der zweiten Schaltung zu starten, während ein früherer Handshake noch nicht abgeschlossen ist, leitet der Arbiter 88 den weiteren Handshake nur dann an die zweite Schaltung 82, nachdem der frühere Handshake abgeschlossen wurde. Dies kann beispielsweise nur dann mit der Bestätigung der Anfrage des weiteren Handshake erfolgen, nachdem der frühere Handshake abgeschlossen wurde. Wenn zwei oder mehr lokale synchrone Schaltungsmodule 80a–c zugleich den Zugang zur zweite Schaltung versuchen, wählt der Arbiter eines dieser Schaltungsmodule 80a–c aus und lässt zuerst den Handshake dieses Schaltungsmoduls durch. Der Arbiter 88 veranlasst den Multiplexer und/oder den Demultiplexer 86 dazu, die Informationsaustausch-Schnittstelle der zweiten Schaltung 82 an die Informationsaustausch-Schnittstelle des Schaltungsmoduls 80a–c anzuschließen, dessen Handshake er durchlässt. Arbiter-Schaltungen, um asynchrone Handshakes durchzulassen, sind an sich bekannt.
  • In einer anderen Ausführungsform können jeweils zwischen respektive einem der lokalen synchronen Schaltungsmodule 80a–c und dem Multiplexer und/oder Demultiplexer 86 Speicher (d.h. selbst haltende Schalter und/oder Flipflops) vorgesehen sein. Die zwischen den lokalen synchronen Schaltungsmodulen 80a–c und der zweiten Schaltung 82 ausgetauschte Information wird, beispielsweise als Reaktion auf ein Anfragesignal vom relevanten lokalen synchronen Schaltungsmoduls 80a–c, während dem Handshake gespeichert. Dies hat den Vorteil, dass der Arbiter den Handshake des lokalen synchronen Schaltungsmoduls 80a–c bestätigen kann, bevor die zweite Schaltung 82 reagiert hat. In diesem Fall initiiert der Arbiter 82 ein gesondertes Handshake mit der zweiten Schaltung 82, um die Information vom Speicher auszutauschen, wenn der gesonderte Handshake von der zweiten Schaltung 82 beantwortet wird.
  • Eine kompliziertere Bauweise wird vorzugsweise im Falle von überlagertem Informationsaustausch verwendet, wenn beispielsweise die zweite Schaltung 82 ein Speicher ist, der eine Adressierung im selben Zyklus eingibt, in dem er Lesedaten für eine vorherige Adressierung ausgibt. In diesem Fall wird der Schaltung von 8 vorzugsweise ein Austauschmodul hinzugefügt.
  • 9 zeigt ein Austauschmodul für die Verwendung solch einer Schaltung. Das Austauschmodul enthält ein erstes Register 90, ein zweites Register 92, einen Wiederholer 94 und einen Sequenzer 96. Der Wiederholer 94 und der Sequenzer 96 sind herkömmliche asynchrone Schaltungsbauteile. Grundsätzlich startet der Wiederholer 94 ein Handshake, und nachdem dieser Handshake beendet wurde, startet er einen anderen Handshake und so weiter und so fort. Der Sequenzer 96 startet ein Handshake an seinem links liegenden Port, wenn der Sequenzer 96 ein Anfragesignal von dem Wiederholer 94 empfängt, und der Sequenzer 96 startet ein Handshake mit seinem rechts liegenden Port, nachdem der Handshake von seinem links liegenden Port bestätigt wurde. Wenn der Handshake am rechts liegenden Port bestätigt wurde, bestätigt der Sequenzer 96 den Handshake des Wiederholers 92.
  • Das erste Register 90 speichert Adressierungen für den Speicher als Reaktion auf Bestätigungssignale vom links liegenden Port. Das zweite Register speichert Lesedaten vom Speicher als Reaktion auf Bestätigungssignale vom rechts liegenden Port.
  • In einer Ausführungsform ist einerseits ein Austauschmodul dieses Typs zwischen jedem der lokalen synchronen Module 90a–c und andererseits der Arbiter 88 und der Multiplexer und/oder Demultiplexer 86 enthalten.
  • Das Austauschmodul lässt die Verbindung des Speichers, des Multiplexers und/oder Demultiplexers 86 und des Arbiters 88 für jedes lokale synchrone Schaltungsmodul 90a–c erscheinen, als wenn es ein Speicher wäre, der nicht mit anderen lokalen synchronen Schaltungsmodulen 90a–c geteilt wird. Das Austauschmodul bestätigt Anfragen vom lokalen synchronen Schaltungsmodul 80a–c, speichert die entsprechenden Adressierungen im ersten Register 90 und startet ein Handshake für den Speicher 92. Beim nächsten Handshake erfolgt die Bestätigung des lokalen synchronen Schaltungsmoduls 80a–c nur, nachdem der Speicher den Handshake bestätigt hat, der als Reaktion auf den vorausgehen Handshake gestartet wurde. In diesem Zeitpunkt stehen die Daten, die als Reaktion auf die vorausgehende Adressierung gelesen wurden, im zweite Register zur Verfügung.
  • Folglich kann unter Verwendung der Ausführungsformen der lokalen synchronen Module 90a–c und deren Handshake-Schnittstelle von 4 und/oder 6 das lokale synchrone Module 90a–c mit Höchstgeschwindigkeit arbeiten, wenn es nicht auf den Speicher zugreifen muss, wobei sein Uhrsignal um ein Minimum verzögert wird, wenn es auf den Speicher zugreift. Wenn der Speicher viel schneller als eines oder mehrere der lokalen synchronen Schaltungsmodule 80a–c ist, wird das lokale synchrone Schaltungsmodul 80a–c aufgrund der Tatsache kaum verzögert, dass sie denselben Speicher teilen, weil der Handshake zwischen dem Austauschmodul und dem lokalen synchronen Schaltungsmodul ausgeführt werden kann, bevor der Arbiter Zugang gewährt hat. Schreibvorgänge müssen für den nächsten Handshake nicht warten, bis die Daten zurückkommen.
  • Natürlich können die lokalen synchronen Module 90a–c und ihre Handshake-Schnittstellen zahlreiche Ports haben, wie in 4 und 6 gezeigt. In diesem Fall können zahlreiche Speicher, möglicherweise in größerem oder kleinerem Umfang geteilt, über verschiedene Ports parallel miteinander verbunden werden. Folglich findet in den Uhrsignalen keine Verzögerung statt, wenn die lokalen synchronen Module 90a–c und ihre Handshake-Schnittstellen auf verschiedene Speicher zugreifen. Ähnlich können sich einige der Ports gegenseitig an die lokalen synchronen Module 90a–c und ihre Handshake-Schnittstellen anschließen. Folglich ist kein Speicher für die Kommunikation zwischen den lokalen synchronen Schaltungsmodulen 90a–c erforderlich, und aufgrund der Speicher findet keine Verzögerung statt.
  • Creq
    = Anfrage zur Datenübertragung
    Cack
    = Bestätigungssignal
    Sel
    = ausgewählter Ausgang
    Areq
    = Ausgang des zweiten Ports A
    ready
    = bereit
    Aack
    = Eingang von Port A und Port S
    Mreq
    = Speicher-Anfrageeingang
    Sreq, Sack
    = Ausgang von Port A und Port S
    Req1, 2
    = Ausgänge der zweiten Ports
    Ack1, 2
    = Bestätigungseingänge
    A, D valid
    = gültig
    Req (cf. Not Ready)
    = Anfrage (cf. nicht bereit)
    Req (Arbiter)
    = Anfrage (Arbiter)
    Ack (cf. Mreq)
    = Bestätigung (cf. Speicher-Anfrageeingang)
    Ack (Arbiter)
    = Bestätigung (Arbiter)
    Address
    = Adressierung
    Data
    = Daten

Claims (10)

  1. Digitale elektronische Schaltung mit: – einem lokalen synchronen Schaltungsmodul (100) mit einem Uhreingang (106) und Speicherelementen (108), wobei der Uhreingang zur Zeitspeicherung von Information verwendet wird, die in dem lokalen synchronen Schaltungsmodul zwischen den Speicherelementen übertragen werden; – einer Verzögerungsschaltung (104) mit einem Eingang und einem Ausgang, gekoppelt an den Uhreingang, wobei die Verzögerungsschaltung eine Verzögerung bewirkt, die, wenn in einen Uhroszillator eingebaut, eine Zeitdauer gewährleistet, die mindestens so lange ist, wie für die Übertragung der Information zwischen den Speicherelementen erforderlich; – einer weiteren Schaltung (12); – einer Handshake-Schaltung (102, 14), um Handshake-Signale für die zeitliche Steuerung der Informationsübertragung zwischen den Speicherelementen und der weiteren Schaltung zu erzeugen, wobei die Handshake-Schaltung die Verzögerungsschaltung enthält, sodass mindestens ein Teil der Handshake-Signale während einer Handshake-Transaktion zeitlich gesteuert wird, während sie die Verzögerungsschaltung durchlaufen, und dem Uhreingang zugeführt werden, um das lokale synchrone Schaltungsmodul zu takten.
  2. Digitale elektronische Schaltung gemäß Anspruch 1, wobei die Schaltung unter der Steuerung des lokalen synchronen Schaltungsmoduls eine Umleitschaltung für die Umleitung einer Kopplung zwischen dem Ausgang und dem Eingang der Verzögerungsschaltung enthält, die Umleitschaltung die Kopplung zwischen einem lokalen Pfad umleitet, was die Verzögerungslinie zur autonomen Erzeugung einer lokalen Uhroszillation veranlasst, und einen Handshake-Pfad, der die Verzögerungslinie dazu veranlasst, mindestens einen Teil der Handshake-Signale durch die von den weiteren Schaltungen synchronisierte Handshake-Schaltung zu leiten.
  3. Digitale elektronische Schaltung gemäß Anspruch 2, wobei die weitere Schaltung angeordnet ist, um unter Verwendung temporärer überlagerterer Informationsaustausch-Transaktionen zu arbeiten, der lokale Pfad einen Deaktivierungseingang für die Deaktivierung der Rückkopplung der Signalübergänge vom Ausgang an den Eingang der Verzögerungsschaltung enthält, der Deaktivierungseingang an einen Ausgang der weiteren Schaltung gekoppelt ist, die die Rückkopplung deaktiviert, bis die weitere Schaltung einen letzten Teil einer letzten vorhergehenden Informationsaustausch-Transaktion beendet hat.
  4. Digitale elektronische Schaltung gemäß Anspruch 3, die eine Befähigungsschaltung für die Aufhebung der Deaktivierung der Kopplung über den lokalen Pfad durch die weitere Schaltung enthält, bevor der letzte Teil der letzten vorhergehenden Informationsaustausch-Transaktion vollendet wurde, wobei die besagte Aufhebung unter der Steuerung eines Befehlssignals vom lokalen synchronen Schaltungsmodul gewählt wird.
  5. Digitale elektronische Schaltung gemäß Anspruch 2, wobei die weitere Schaltung eine Vielzahl von Einheiten enthält, jede mit einer respektiven Handshake-Schnittstelle, die Umleitschaltung die Kopplung über eine ausgewählte der Handshake-Schnittstellen umleitet, und die besagte ausgewählte Handshake-Schnittstelle unter der Steuerung des lokalen synchronen Schaltungsmoduls ausgewählt wird.
  6. Digitale elektronische Schaltung gemäß Anspruch 2, wobei die weitere Schaltung einen Speicher mit einer Adressierungs- und Datenschnittstelle enthält, die an das lokale synchrone Schaltungsmodul gekoppelt ist, die Informationsübertragung zwischen dem Speicherelement und der weiteren Schaltung die Übertragung einer Adressierung und von Daten beinhaltet, die Umleitschaltung die Kopplung durch den Handshake-Pfad leitet, wenn das lokale synchrone Schaltungsmodul auf den Speicher zugreift, und danach durch der lokalen Pfad leitet.
  7. Digitale elektronische Schaltung gemäß Anspruch 3, wobei die weitere Schaltung einen Speicher mit einer Adressierungs- und Datenschnittstelle enthält, die an das lokale synchrone Schaltungsmodul gekoppelt ist, der Speicher zur Erzeugung eines Bereitschaftssignal angeordnet ist, das signalisiert, dass Daten verfügbare sind und zugleich signalisiert, dass der Speicher bereit ist, eine nächste Adressierung zu erhalten, der Handshake-Pfad, wenn er aktiv ist, das Bereitschaftssignal an einen Anfrageeingang des Speichers speist und der Deaktivierungseingang angeordnet ist, den lokalen Pfad zu deaktivieren, bis das Bereitschaftssignal anzeigt, dass Daten verfügbar sind.
  8. Digitale elektronische Schaltung gemäß Anspruch 1, wobei das lokale synchrone Schaltungsmodul eines einer Vielzahl von lokalen synchronen Schaltungsmodulen ist, jedes lokale synchrone Schaltungsmodul seine eigene Handshake-Schaltung und seine eigene Verzögerungsschaltung enthält, die an seinen Uhreingang gekoppelt ist, die digitale elektronische Schaltung einen Arbiter und einen Multiplexer und/oder Demultiplexer enthält, der zwischen den lokalen synchronen Schaltungsmodulen und der Handshake-Schaltungen gekoppelt ist, und der Arbiter einen Befehl arbitriert, mit dem die Handshake-Transaktionen von verschiedenen der lokalen synchronen Schaltungsmodule über den Multiplexer und/oder Demultiplexer, begleitet vom Austausch von Informationen des lokalen synchronen Schaltungsmoduls, vorankommen können.
  9. Digitale elektronische Schaltung gemäß Anspruch 8, wobei die weitere Schaltung ein Speicher ist, der Lesedaten überlagert mit Adressierungen überträgt, die digitale elektronische Schaltung ein respektives Austauschmodul für jedes lokale synchrone Schaltungsmodul enthält und das Austauschmodul ausgelegt ist, um den Speicher erscheinen zu lassen, als würde er nicht mit einem anderen lokalen synchronen Schaltungsmodul geteilt werden.
  10. Systemkomponente mit: – einem lokalen synchronen Schaltungsmodul (100) mit einem Uhreingang (106) und Speicherelementen (108), wobei der Uhreingang die Speicherung von Information zeitlich steuert, die in dem lokalen synchronen Schaltungsmodul zwischen den Speicherelementen übertragen wurden; – einer Verzögerungsschaltung (104) mit einem Eingang und einem Ausgang, gekoppelt an den Uhreingang, wobei die Verzögerungsschaltung eine Verzögerung bewirkt, die mindestens so lange ist wie ein Zeitintervall, das für die Informationsübertragung zwischen den Speicherelementen erforderlich ist; – einem Anschluss (16) zum Anschließen einer weiteren Schaltung (12); – einer Handshake-Schaltung (102, 14), um Handshake-Signale für die zeitliche Steuerung der Informationsübertragung zwischen den Speicherelementen und dem Anschluss für die weitere Schaltung zu erzeugen, wobei die Handshake-Schaltung die Verzögerungsschaltung enthält, sodass mindestens ein Teil der Handshake-Signale während einer Handshake-Transaktion zeitlich gesteuert wird, während sie die Verzögerungsschaltung durchlaufen, und dem Uhreingang zugeführt werden, um das lokale synchrone Schaltungsmodul zu takten.
DE60217408T 2002-01-02 2002-12-06 Informationsaustausch zwischen lokal synchronen schaltungen Expired - Lifetime DE60217408T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP02075578 2002-01-02
EP02075578 2002-01-02
PCT/IB2002/005204 WO2003060727A2 (en) 2002-01-02 2002-12-06 Information exchange between locally synchronous circuits

Publications (2)

Publication Number Publication Date
DE60217408D1 DE60217408D1 (de) 2007-02-15
DE60217408T2 true DE60217408T2 (de) 2007-10-04

Family

ID=8185592

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60217408T Expired - Lifetime DE60217408T2 (de) 2002-01-02 2002-12-06 Informationsaustausch zwischen lokal synchronen schaltungen

Country Status (9)

Country Link
US (1) US7185220B2 (de)
EP (1) EP1464001B1 (de)
JP (1) JP4404637B2 (de)
KR (1) KR100956304B1 (de)
CN (1) CN100507891C (de)
AT (1) ATE350712T1 (de)
AU (1) AU2002367038A1 (de)
DE (1) DE60217408T2 (de)
WO (1) WO2003060727A2 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1759368A (zh) * 2003-01-23 2006-04-12 罗切斯特大学 多时钟域微处理器
DE10303673A1 (de) * 2003-01-24 2004-08-12 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Asynchrone Hüllschaltung für eine global asynchrone, lokal synchrone (GALS) Schaltung
CN101147320A (zh) * 2005-03-22 2008-03-19 皇家飞利浦电子股份有限公司 实现异步延迟的电子电路
JP2007164286A (ja) * 2005-12-09 2007-06-28 Sony Corp 情報信号処理装置、機能ブロックおよび機能ブロックの制御方法
US7856516B2 (en) 2006-10-27 2010-12-21 Kyocera Mita Corporation Interfacing incompatible signaling using generic I/O and interrupt routines
WO2009147566A1 (en) * 2008-06-02 2009-12-10 Koninklijke Philips Electronics N.V. Asynchronous communication
US8300752B2 (en) * 2008-08-15 2012-10-30 International Business Machines Corporation Method, circuit, and design structure for capturing data across a pseudo-synchronous interface
US8189723B2 (en) * 2008-08-15 2012-05-29 International Business Machines Corporation Method, circuit, and design structure for capturing data across a pseudo-synchronous interface
CN101377691B (zh) * 2008-09-05 2012-01-11 无锡中星微电子有限公司 一种apb总线跨时钟域访问的电路及方法
US8625714B2 (en) * 2011-05-12 2014-01-07 St-Ericsson Sa Time delay estimation
US10505704B1 (en) * 2015-08-02 2019-12-10 Wave Computing, Inc. Data uploading to asynchronous circuitry using circular buffer control
GB2580165B (en) * 2018-12-21 2021-02-24 Graphcore Ltd Data exchange in a computer with predetermined delay
CN114024893A (zh) * 2021-11-18 2022-02-08 群联电子股份有限公司 时钟重整电路模块、信号传输系统及信号传输方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3560793B2 (ja) * 1997-11-27 2004-09-02 株式会社東芝 データ転送方法
US7065665B2 (en) * 2002-10-02 2006-06-20 International Business Machines Corporation Interlocked synchronous pipeline clock gating

Also Published As

Publication number Publication date
AU2002367038A1 (en) 2003-07-30
CN1666186A (zh) 2005-09-07
CN100507891C (zh) 2009-07-01
WO2003060727A2 (en) 2003-07-24
JP2005515544A (ja) 2005-05-26
EP1464001A2 (de) 2004-10-06
DE60217408D1 (de) 2007-02-15
WO2003060727A3 (en) 2004-03-11
ATE350712T1 (de) 2007-01-15
EP1464001B1 (de) 2007-01-03
JP4404637B2 (ja) 2010-01-27
KR20040073538A (ko) 2004-08-19
US7185220B2 (en) 2007-02-27
KR100956304B1 (ko) 2010-05-10
AU2002367038A8 (en) 2003-07-30
US20050141257A1 (en) 2005-06-30

Similar Documents

Publication Publication Date Title
DE3750680T2 (de) Multiprozessor-Busprotokoll.
DE60217408T2 (de) Informationsaustausch zwischen lokal synchronen schaltungen
DE68923834T2 (de) Leistungsfähiges Protokoll für die Übertragung zwischen asynchronen Vorrichtungen.
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE69632634T2 (de) Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit
DE102005051478B4 (de) Flashdatenspeichervorrichtung
DE3788805T2 (de) Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem.
DE69229081T2 (de) Mikroprozessor mit externem Speicher
DE68915701T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung.
DE60036777T2 (de) Gerät zur Signalsynchronisierung zwischen zwei Taktbereichen
DE69518286T2 (de) Speicherübertragungsgeschwindigkeitsbegrenzung für PCI-Meister
DE69838852T2 (de) Verfahren und vorrichtung zur kopplung von signalen zwischen zwei schaltungen, in verschiedenen taktbereichen arbeitend
DE3784050T2 (de) Ein paralleler datenprozessor.
DE60214992T2 (de) Mehrbit-prefetch-ausgangsdatenweg
DE69318348T2 (de) Schnittstelle für asynchronen Bus zur Minimisierung von Übertragungszeiten
DE69013394T2 (de) Datenverarbeitungssystem mit Zweiwegarbiter zur Steuerung des Zugangs zu einem Systembus.
DE69819648T2 (de) Zweitorpuffer
DE69230699T2 (de) Asynchrone Hochleistungs-Busschnittstelle
DE10210904A1 (de) Speichermodul, zugehöriges Speichersystem und Taktsignalerzeugungsverfahren
DE4129614A1 (de) System und verfahren zur datenverarbeitung in einer mehrzahl von betriebsarten entsprechend programminterner parallelverarbeitungseigenschaften unter verwendung eines cachespeichers
DE69822866T2 (de) System und verfahren zum beenden von lock-step-sequenzen in einem multiprozessorsystem
DE69802426T2 (de) Taktschema für digitales signalprozessorsystem
DE3850447T2 (de) Asynchrone Übertragungssysteme.
DE69119147T2 (de) Erweiterungskarte mit mehreren Geschwindigkeiten
DE60011629T2 (de) Speicher mit mehrfachen datenraten

Legal Events

Date Code Title Description
8320 Willingness to grant licences declared (paragraph 23)
8364 No opposition during term of opposition