-
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