-
Die
vorliegende Erfindung bezieht sich ganz allgemein auf das Gebiet
der Synchronisierung asynchroner Daten, insbesondere auf die Synchronisierung
von Daten, die von einem asynchronen Peripheriegerät auf einen
Bustaktgeber ausgelesen wurden.
-
Häufig werden
Flipflops als Speicherelemente in digitalen Logiksystemen verwendet.
Flipflops greifen ihre Eingangsinformationen an der Anstiegsflanke
oder der abfallenden Flanke des Taktimpulses ab und halten die abgegriffenen
Eingangsinformation weiterhin als ihre Ausgangsinformation bis zur nächsten Taktflanke.
Wegen der Verwendung von Flipflops in digitalen Logiksystemen stellt
die Metastabilität
eine wichtige Überlegung
in der Auslegung dar, mit der nahezu alle Entwickler von digitalen
Logiksystemen zu kämpfen
haben. Wenn ein Flipflop in einen metastabilen Zustand umschaltet,
ist seine Ausgangsinformation unbekannt und kann zwischen einem
logischen HOHEN Pegel und einem logischen NIEDRIGEN Pegel liegen
oder auch schwingen. Wenn sich die Ausgangsinformation vor der nächsten Taktflanke
nicht auf einen stabilen Wert auflöst bzw. umsetzt, kann der metastabile
Zustand zu anderen Logikbausteinen weitergeleitet werden, die mit
dem Ausgang des Flipflops verbunden sind. Auch wenn sich die Ausgangsinformation
vor der nächsten
Taktflanke auflöst,
kann außerdem
der Wert unrichtig sein, was dazu führt, dass unzulässige Daten
zu anderen Logikbausteinen weitergeleitet werden, welche mit dem
Ausgang des Flipflops verbunden sind. Metastabilität ergibt
sich dann, wenn sich während
der Einstell- und/oder Haltezeit eines Flipflops ein Fipflop-Eingang
verändert.
-
Bei
den meisten digitalen Logiksystemen verändern sich die Eingänge zu den
Flipflops während
der Einstell- und der Haltezeiten nicht, weil die Systeme als völlig synchrone
Systeme konzipiert sind, welche die technischen Vorgaben für ihre Bauelemente
erfüllen
oder übertreffen.
Bei einer vollständig
synchronen Auslegung weisen die Eingänge zu den Flipflops eine feste
Beziehung zum Taktgeber auf, was bedeutet, dass sie mit dem Taktgeber
synchronisiert sind. Es gibt jedoch einige Systeme, bei denen eine
völlig
synchrone Auslegung unter Verwendung eines einzigen Haupt- bzw.
Bezugstaktgebers nicht möglich
ist oder bei denen bestimmte Vorteile aufgrund der Verwendung einer
asynchronen Auslegung erzielt werden. Bei diesen Systemen besteht
die Notwendigkeit, Teilsysteme miteinander zu verbinden, die keine
definierte Beziehung zwischen ihren Taktgebern besitzen, also unterschiedliche Taktgeberbereiche
aufweisen. Dies führt
häufig
zu einer Notwendigkeit, Daten von einem der Taktgeberbereiche als
asynchronen Eingang in einen Flipflop im anderen Taktgeberbereich
zu liefern. Damit diese Systeme korrekt funktionieren, ist es erforderlich,
den einlaufenden asynchronen Eingang mit dem Taktgeberbereich des
Flipflops zu synchronisieren. Auch wenn die Beschreibung hier auf
Flipflops bezogen ist, bezieht sich der metastabile Zustand mit
den zugehörigen
Schwierigkeiten auch auf andere Arten von Speicherelementen in einem
digitalen logischen System, wie zum Beispiel bei Einrast-Kippschaltern („Latches") oder aus Einrast-Kippschaltern
aufgebauten Kombinationen.
-
Line
derartige Synchronisierung wird häufig benötigt, um Daten von asynchronen
Peripheriegeräten
zu einem Busmaster bzw. Busleitungs-Hauptbauelement in einer Rechneranlage
zu übertragen. 1 stellt
ein Blockschaltbild einer Rechneranlage mit einem asynchronen Peripheriegerät 106 dar.
Die meisten modernen Bussysteme sind mit irgendeiner Art von Bus-Schnittstellenlogik 100 ausgerüstet, welche
die Datenübertragung
zwischen einem Peripheriegerät 106 und
einem Busmaster 104 unter Verwendung einer Busleitung 102 steuert.
Die Bus-Schnittstellenlogik 100 arbeitet dabei in einem Taktgeberbereich,
der mit dem Taktgeberbereich des Busmasters 104 synchronisiert
werden kann. Das Peripheriegerät 106 arbeitet
jedoch in seinem eigenen Taktgeberbereich, der anders ist als der
Taktgeberbereich der Bus-Schnittstellenlogik 100.
Im typischen Fall ist die Frequenz des Taktgeberbereichs des Peripheriegeräts 106 niedriger
als die Frequenz im Taktgeberbereich der Bus-Schnittstellenlogik 100. Wenn
Daten aus einem asynchronen Peripheriegerät 106 ausgelesen werden,
werden die Daten auf die Busleitung 102 gelegt. Die Daten
auf der Busleitung werden dann unter Einsatz von Flipflops abgegriffen, die
in Form eines Registers entweder in der Bus-Schnittstellenlogik 102 oder
im Busmaster 104 eingerichtet sind.
-
Ohne
Synchronisierung der ausgelesenen Daten mit dem Bustakt kann ein
asynchrones Peripheriegerät
die Daten während
der Einstell- und/oder Halte-Zeiten
der von der Bus-Schnittstellenlogik 100 verwendeten Flipflops
auf die Busleitung zuliefern, wobei eines oder mehrere der Flipflops
zum Umschalten in einen metastabilen Zustand veranlasst wird bzw.
werden. Deshalb synchronisiert in den meisten Systemen das Peripheriegerät 106 die
Verbringung von Daten auf die Busleitung 102 mit dem Taktgeberbereich
der Bus-Schnittstellenlogik 100 unter
Verwendung der Synchronisierlogik 108 am oder im Peripheriegerät 106.
Das Peripheriegerät 106 empfängt dann
den Takt von der Busleitung und die Synchronisierlogik 108 synchronisiert
die Übertragung
der ausgelesenen Daten auf der Busleitung 108 mit dem Bustaktgeber.
-
2 stellt
eine typische Logik im Peripheriegerät 106 für die Ausgabe
ausgelesener Daten auf die Busleitung 102 dar, wobei diese
eine Synchronisierlogik 108 einschließt. Damit ein Peripheriegerät die Daten
mit dem Bustaktgeber synchronisiert und für einen stabilen Wert auf der
Busleitung sorgt, setzt die Synchronisierlogik 108 im allgemeinen
einen Lesepufferspeicher 202 voraus, der den internen bzw. die
interne Daten-Austausch/-Aktualisierung
innerhalb des Peripheriegeräts
von den auf die Busleitung geleiteten ausgelesenen Daten isoliert.
Ein „update_enable"-Signal bzw. Aktualisierungs-Freigabesignal
wird aktiviert, um Daten, die auf die Busleitung geführt werden
sollen, in ein internes Register 206 auszulesen. Ganz allgemein
ist das Aktualisierungs-Freigabesignal lang genug, damit es mit
dem Bustaktgeber synchronisiert werden kann. Gegebenenfalls verwenden
jedoch einige Anwendungen ein kürzeres
Aktualisierungs-Freigabesignal mit einer Logik, welche das Aktualisierungs-Freigabesignal zur
korrekten Synchronisierung mit dem Bustaktgeber erweitert. Logik 204 synchronisiert
dann das Aktualisierungs-Freigabesignal mit dem Bustaktgeber, so
dass die Daten in den Lesepufferspeicher 202 übertragen
und infolgedessen in einer mit dem Bustaktgeber synchronisierten
Weise auf die Busleitung geführt
werden.
-
Die
an jedem Peripheriegerät
vorgenommene Synchronisierung ist jedoch von Nachteil, da bei jeder
Peripherieeinheit eine Synchronisierlogik benötigt wird. Wenn außerdem jedes
Peripheriegerät
die Synchronisierung vornimmt, wird die Synchronisierung dezentralisiert
und damit nicht unbedingt in gleicher Weise für jedes Peripheriegerät durchgeführt. Es
wäre deshalb
vorteilhaft, wenn man in der Lage wäre, stabile zulässige Daten
von einem asynchronen Peripheriegerät auf einen Busmaster zu leiten, ohne
dass es erforderlich ist, dass jedes Peripheriegerät ihren
Ausgang mit dem Bustaktgeber synchronisiert. Ganz allgemein gesprochen
wäre es
von Vorteil, wenn eine zentralisierte Synchronisierung für die Weiterleitung
von Daten zwischen Bauelementen in unterschiedlichen Taktgeberbereichen
vorgesehen ist.
-
Die
Druckschrift
US 5345453 offenbart
Abgreifung aufeinander folgender Abtastwerte eines Datensignals
in einem ersten und einen zweiten Taktzyklus des Taktgebers des
Empfängers
beschrieben, woraufhin die Abtastwerte dann verglichen werden. Wenn
die Abtastwerte identisch sind, werden die abgegriffenen Daten ausgegeben.
Wenn die Abtastwerte nicht identisch sind, werden weitere Abgreifungen in
anschließenden
dritten und vierten Taktzyklen vorgenommen, und wenn dann auch die
dritten und vierten Abtastwerte nicht identisch sind, könnte eine
Metastabilität
eingetreten sein und es wird ein vorgegebener Ersatzwert erzeugt.
-
KURZBESCHREIBUNG DER ERFINDUNG
-
Gemäß einem
Aspekt der vorliegenden Erfindung ist eine Schaltung für die synchronisierte Weiterleitung
von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich
zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich vorgesehen.
Die Schaltung weist ein Datenregister zum Abgreifen von Daten auf,
die während
eines ersten Bustaktzyklus von dem ersten Bauteil auf eine Datenbusleitung
gegeben werden, sowie einen Vergleichen bzw. Komparator zum Vergleichen
der Daten auf der Datenbusleitung während eines zweiten darauf
folgenden Bustaktzyklus mit den durch das Datenregister abgegriffenen
Daten. Die Schaltung besitzt außerdem
einen Multiplexer zur Ausgabe der abgegriffenen Daten an das zweite
Bauteil während
eines dritten, darauf folgenden Buszyklus, wenn die abgegriffenen
Daten gleich den Daten auf der Datenbusleitung während des zweiten, nachfolgenden
Bustaktzyklus sind, und zur Ausgabe von Daten auf der Datenbusleitung
an das zweite Bauteil während
des dritten nachfolgenden Bustaktzyklus, wenn die abgegriffenen
Daten nicht gleich den Daten auf der Datenbusleitung während des
zweiten Bustaktzyklus sind.
-
Ein
weiterer Aspekt der vorliegenden Erfindung sieht ein Verfahren für die synchronisierte
Weiterleitung von Daten von einem ersten Bauteil mit einem ersten
Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich
vor. Dabei werden während
eines ersten Bustaktzyklus Daten, die von dem ersten Bauteil auf
eine Datenbusleitung gegeben wurden, abgegriffen. Daten auf der
Datenbusleitung werden während
eines zweiten darauf folgenden Bustaktzyklus mit den abgegriffenen
Daten verglichen. Wenn die abgegriffenen Daten gleich den Daten
auf der Datenbusleitung während
eines zweiten nachfolgenden Bustaktzyklus sind, werden die abgegriffenen
Daten an das zweite Bauteil während eines
dritten nachfolgenden Buszyklus ausgegeben. Wenn die abgegriffenen
Daten nicht gleich den Daten auf der Datenbusleitung während des
zweiten nachfalgenden Bustaktzyklus sind, werden Daten auf die Datenbusleitung
während
des dritten nachfolgenden Bustaktzyklus an das zweite Bauteil ausgegeben.
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung ist ein Computer vorgesehen,
welcher ein asynchrones Peripheriegerät aufweist, welches ausgelesene
Daten dadurch an einen Busmaster bzw. ein Busleitungs-Hauptbauelement übermittelt,
dass die ausgelesenen Daten auf eine Peripherie-Busleitung und eine Bus-Schnittstellenlogik
gegeben werden, um die ausgelesenen Daten zu synchronisieren. Die
Bus-Schnittstellenlogik umfasst ein Datenregister zum Abgreifen
von ausgelesenen Daten auf der Peripherie-Busleitung während eines ersten Bustaktzyklus;
ferner einen Vergleichen zum Vergleichen der ausgelesenen Daten
auf der Peripherie-Busleitung während
eines zweiten darauf folgenden Bustaktzyklus mit den abgegriffenen
ausgelesenen Daten; und ferner einen Multiplexer zur Ausgabe der
abgegriffenen ausgelesenen Daten während eines dritten darauf
folgenden Buszyklus, wenn die abgegriffenen ausgelesenen Daten gleich
den ausgelesenen Daten auf der Datenbusleitung während eines zweiten nachfolgenden
Bustaktzyklus sind, und zur Ausgabe von ausgelesenen Daten auf die
Datenbusleitung während
des dritten darauf folgenden Bustaktzyklus, wenn die abgegriffenen
ausgelesenen Daten nicht gleich den ausgelesenen Daten auf der Datenbusleitung
während
eines zweiten darauf folgenden Bustaktzyklus sind.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 stellt
ein Blockschaltbild eines Rechnersystems mit einem asynchronen Peripheriegerät dar;
-
2 ist
die Ansicht einer Synchronisierlogik gemäß Stand der Technik an oder
in einem Peripheriegerät
zur Ausgabe ausgelesener Daten auf eine Peripherie-Busleitung;
-
3 zeigt
ein Blockschaltbild eines Computersystems gemäß der vorliegenden Erfindung, das
ein asynchrones Peripheriegerät
umfasst;
-
4 stellt
das Verfahren gemäß der vorliegenden
Erfindung dar, das mittels einer Synchronisierlogik realisiert wurde;
-
5a ist
die Darstellung eines Ausführungsbeispiels
einer Synchronisierlogik, mit welcher das in 4 darstellte
Verfahren durchgeführt
wird;
-
5b ist
die Darstellung von Zeitsteuerungs-Wellenformen in dem Fall, dass
nPWAIT für
einen Bustaktzyklus nicht aktiviert ist; und
-
5c zeigt
Zeitsteuerungs-Wellenformen für
den Fall, das nPWAIT von einem asynchronen Peripheriegerät über mehr
als einen Taktzyklus nicht aktiviert wurde, um die Dauer des Lesezugriffs
zu verlängern.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
Auch
wenn die vorliegende Erfindung nachstehend anhand eines bevorzugten
Ausführungsbeispiels
für die
Synchronisierung zwischen einem Peripheriegerät und einem Busmaster bei einer
Rechneranlage beschrieben wird, ist sie nicht auf diese Ausführungsform
beschränkt.
Die vorliegende Erfindung ist in der Form vorgesehen, dass sie für die Weiterleitung
digitaler Daten von einem beliebigen Ursprungs-Bauteil mit einem
ersten Taktgeberbereich zu irgendeinem Ziel-Bauteil mit einem zweiten Taktgeberbereich
einsetzbar ist.
-
3 stellt
ein Blockschaltbild eines Computersystems gemäß der vorliegenden Erfindung
dar, das ein asynchrones Peripheriegerät 306 umfasst. Das
Computersystem gemäß der vorliegenden
Erfindung ist ähnlich
dem Computersystem aus 1. Wie bei der Rechneranlage
aus 1 weist das Computersystem gemäß der vorliegenden Erfindung eine
Bus-Schnittstellenlogik 300 auf,
welche die Übertragung
von Daten zwischen einem Peripheriegerät 306 und einem Busmaster 304 unter
Verwendung der Busleitung 302 steuert. Die Bus-Schnittstellenlogik 300 arbeitet
in einem Taktgeberbereich, der normalerweise mit dem Taktgeberbereich
des Busmasters 304 synchronisiert ist. Das Peripheriegerät 306 arbeitet
jedoch in seinem eigenen Taktgeberbereich, der sich vom Taktgeberbereich
der Bus-Schnittstellenlogik 300 unterscheidet. Die Frequenz
des Taktgebers im Peripheriegerät 306 ist
im typischen Fall – wenn
auch nicht immer – niedriger als
die Frequenz des Taktgebers der Bus-Schnittstellenlogik 300. Das
asynchrone Peripheriegerät 306 verändert jedoch
die ausgelesenen Daten nicht schneller als die Frequenz des Taktgebers
in der Bus-Schnittstellenlogik 300. Wenn Daten aus dem Peripheriegerät 306 gerade
ausgelesen werden, gibt das Gerät
die Daten auf die Busleitung 302, und die Bus-Schnittstellenlogik 300 arbeitet
mit Flipflops, die als Register zum Abgreifen der Daten ausgelegt
sind. Statt jedoch in jedem Peripheriegerät eine Synchronisierlogik vorzusehen,
ist die Logik 308 in die Bus-Schnittstellenlogik 302 eingebaut,
um sicherzustellen, dass die von der Busleitung 102 gelesenen Daten
zulässig
und stabil sind, ehe sie zum Busmaster 304 weitergeleitet
werden.
-
Deshalb übermittelt
das Peripheriegerät 306 für ein Auslesen
bzw. einen Auslesevorgang aus dem Peripheriegerät 306 die ausgelesenen
Daten auf die Busleitung 302 asynchron vom Bustaktgeber.
Die Logik 308 stellt dann sicher, dass zulässige Daten
dadurch zum Busmaster 304 weitergeleitet werden, dass das
in 4 dargestellte Verfahren durchgeführt wird.
Gemäß der Darstellung
ermittelt die Logik 308 als erstes, ob bzw. dass das Peripheriegerät 306 asynchron
ist (Schritt 400). Die Logik 308 greift dann die
Daten, welche das Peripheriegerät 306 auf
die Busleitung legt, zweimal oder öfter ab (Schritt 402). Die
Logik 308 vergleicht die Werte der aufeinander folgenden
abgegriffenen Daten (Schritt 404). Wenn die abgegriffenen
Daten gleich sind, werden sie zum Busmaster 304 als zulässige Daten
zurückgeführt (Schritt 406).
Wenn sie sich unterscheiden, werden die Daten im nächsten Zyklus
als zulässige
Daten zum Busmuster 304 zurückgeleitet (Schritt 408).
-
5a stellt
ein Ausführungsbeispiel
für eine
Synchronisierlogik 308 dar, welche mit dem Verfahren nach 4 arbeitet.
Bei diesem Ausführungsbeispiel
handelt es sich bei den Daten um eine Menge aufeinander bezogener
Bits, welche ein einzelne Information repräsentieren, beispielsweise ein
Datenwort. Diese Bits werden zusammenhängend bzw. kohärent gehalten,
um eine zulässige
Information zu erhalten. Auch wenn dies nicht dargestellt ist, sind auch
Ausführungsbeispiele,
bei denen die Daten eine Kombination aus voneinander unabhängigen Bits
darstellen, im Rahmen der vorliegenden Erfindung vorgesehen. In
diesem Fall ist es nicht notwendig, den Zusammenhang bzw. die Kohärenz zwischen
den Bits aufrechtzuerhalten, und sie können unabhängig voneinander geändert werden.
Auch wenn hier ein Register mit einem torgesteuerten Takt als Mechanismus
zum Zuleiten von Daten auf die Busleitung vorgesehen ist, sind in ähnlicher
Weise auch andere Formen der Realisierung vorgesehen. Zum Beispiel
lässt sich
ein Register mit Rückmelde- bzw.
Rückkopplungs-Multiplexer,
ein Einzelregister mit seinem eigenen Takt für jedes Bit oder ein nicht-torgesteuerter
Taktgeber verwenden. Auch wenn hier die Busleitung als Busleitung
mit drei Zuständen
dargestellt ist, würde
in gleicher Weise ein Fachmann auf diesem Gebiet erkennen, dass
jede Art von Busleitung in den Rahmen der vorliegenden Erfindung
fällt.
-
Wenn
ein Lesevorgang eingeleitet wird (z. B. durch ein Lese-Freigabesignal
(Read Enable), das vom Busmaster 304 geliefert wird) liefert
das Peripheriegerät 306 an
die Bus-Schnittstellenlogik 300 ein Signal – nPWAIT – um die
Bus-Schnittstellenlogik 300 darüber zu informieren,
dass das Peripheriegerät 306 asynchron
ist und infolgedessen eine Synchronisierung vorgenommen werden muss.
Bei vielen Bussystemen wird auch ein Signal dazu verwendet, die
Dauer des Lesezugriffs bei langsamen Peripheriegeräten zu verlängern, also
bei Peripherieeinheiten, die mit einer niedrigeren Frequenz laufen oder
aus irgendwelchen anderen Gründen
innerhalb eines Bus-Taktzyklus ihre Daten nicht bereit haben. Das
dargestellte Ausführungsbeispiel
für die
Synchronisierlogik 308 kombiniert die Verwendung von nPWAIT
dazu, der Bus-Schnittstellenlogik mitzuteilen, dass eine Synchronisierung
vorgenommen werden muss, und um die Dauer des Lesezugriffs zu verlängern.
-
Anstatt
im Peripheriegerät 306 einen
Lesepufferspcicher zu verwenden, werden direkt nach einem Lesezugriff
die Daten von einem Register 506 direkt zu einer Peripherie-Busleitung 510 geleitet. Gleich
nach einem Lesezugriff sendet außerdem das Peripheriegerät 306 das
Signal nPWAIT auf niedrigem Pegel (LOW). Wenn das Peripheriegerät 306 die Dauer
des Lesezugriffs verlängern
muss, wird nPWAIT über
die Anzahl der Bustaktzyklen auf niedrigem Pegel gesendet, um welche
das Peripheriegerät 306 eine
Verlängerung
des Lesezugriffs benötigt. Wenn
das Peripheriegerät 306 nur
die Bus-Schnittstellenlogik 300 darüber informieren muss, dass
eine Synchronisierung vorzunehmen ist, wird nPWAIT auf niedrigem
Pegel (LOW) über
einen Bustaktzyklus gesendet. In diesem Fall dauert der Zugriff
auf die Peripherie-Busleitung 3 Bustaktzyklen.
-
Wenn
das Peripheriegerät 306 anzeigt,
dass Synchronisierung erforderlich ist, führt die Bus-Schnittstellenlogik 300 Synchronisierung
unter Verwendung der Synchronisierlogik 308 aus. Die Synchronisierlogik 308 umfasst
ein Datenregister 500, das an die Peripherie-Busleitung 510 angeschlossen
ist, sowie einen Vergleicher, dessen einer Eingang mit der Peripherie-Busleitung 510 verbunden
ist und dessen anderer Eingang mit dem Ausgang des Datenregisters 500 verbunden
ist, und ferner einen Multiplexer 504 zum Auswählen zwischen der
Peripherie-Busleitung 510 und dem Ausgang des Datenregisters 500 als
Eingang DIN zum Busmaster 304. Der Eingang DIN wird an
ein (hier nicht dargestelltes) Register geliefert, das der Busmaster 304 verwendet,
um die Daten vom Peripheriegerät 306 abzugreifen
und zu übernehmen.
Die Synchronisierlogik 308 umfasst außerdem die Logik 508 zum
Steuern des Betriebs des Datenregisters 500, des Vergleichens 502 und
des Multiplexers 504, um das in 4 dargestellte
Verfahren durchzuführen.
-
Die
Funktionsweise der Synchronisierlogik 508 wird in Verbindung
mit 5b erläutert,
in welcher Zeitsteuerungs-Wellenformen in dem Fall, dass nPWAIT
für einen
Bustaktzyklus nicht aktiviert ist, dargestellt sind, das für einen
Bustaktzyklus nicht aktiviert ist. Auch wenn hier der Bustaktgeber
PCLK in der Weise dargestellt ist, dass er die gleiche Frequenz
und die gleiche Phasenbeziehung wie der Haupttaktgeber MCLK der
Busleitung aufweist, ist dies nicht notwendig. Gelegentlich mag
es zu einer geringfügigen
Verschiebung zwischen diesen beiden Taktgebern kommen, oder es kann
der Takt von PCLK von MCLK abgeteilt werden, weshalb eine geringere
Frequenz vorliegt, was jeweils von der Realisierung des Systems
abhängig
ist. Im Verlauf eines Lesezugriffs wird gemäß der Darstellung nPWAIT während des
ersten Bustaktzyklus des Lesevorgangs nicht aktiviert. Wenn nPWAIT
nicht aktiviert wird, werden die während des ersten Buszyklus
auf die Busleitung 510 gebrachten Daten – Data 1 – am Ende
des ersten Bustaktzyklus in das Datenregister 500 eingelesen.
Der Vergleicher 502 vergleicht während des zweiten Bustaktzyklus
die Daten auf der Busleitung 510 – Data 2 – mit den Daten Data 1 im Datenregister 500.
Zu Beginn des dritten Bustaktzyklus wird das Ergebnis des Vergleichens 502 dazu
verwendet, den Multiplexer 504 so anzusteuern, dass entweder
die Daten Data 1 aus dem Datenregister 500 oder die Daten
auf der Busleitung 510 wähnend des dritten Bustaktzyklus
ausgegeben wenden. Es ist ersichtlich, dass dann, wenn die Daten
Data 1 gleich den Daten Data 2 sind, der Ausgang aus dem Datenregister 500 (also
die Daten 1) vom Multiplexer 504 als Eingang DIN auf den
Busmaster 304 ausgegeben wird. Wenn aber die Daten Data
1 nicht gleich den Daten Data 2 sind, werden die auf der
Busleitung 510 vorhandenen Daten vom Multiplexer 504 als
Eingang DIN auf den Busmaster 304 ausgegeben.
-
Die
Bus-Schnittstellenlogik 308 liefert ein Wartesignal nWAIT,
das den Busmaster 306 in einen Wartezustand versetzt, bis
DIN gültig
bzw. zulässig ist.
Das Signal nWAIT versetzt den Busmaster 306 auf jede geeignete
Weise in einen Wartezustand, zum Beispiel unter Deaktivierung bzw.
Sperren des Taktgebers des Busmasters oder dadurch, dass eine Weiterschaltung
bzw. ein Weiterschreiten des Busmasters 306 zum nächsten Zustand
unter Ausführung
von NOP-Operationen verhindert wird.
-
5c stellt
Zeitsteuerungs-Wellenformen in dem Fall dar, dass nPWAIT länger als über einen Taktzyklus
vom Peripheriegerät 306 nicht
aktiviert wird, um so die Dauer des Lesezugriffs zu verlängern. Wenn
nPWAIT gemäß der Darstellung
länger als über einen
Bustaktzyklus nicht aktiviert wird, handelt es sich bei den Daten,
die der Multiplexer 504 als DIN ausgibt, um die Daten auf
der Busleitung 510 auf dem bzw. im letzten Zyklus des Zugriffs
(d. h. dem Zyklus, der auf die Anstiegsflanke von nPWAIT folgt).
-
Auch
wenn nPWAIT hier in der Weise dargestellt ist, dass angezeigt wird,
dass Synchronisierung notwendig ist, und es zum Verlängern des
Lesezugriffs herangezogen wird, ist es möglich, für jede Funktion zwei separate
Signale zu verwenden. Weiterhin ist es auch möglich, die Notwendigkeit für ein Signal
zu beseitigen, das darauf hinweist, dass das Peripheriegerät asynchron
ist. Durch Führen
einer Liste mit den Peripheriegeräten, die asynchron sind, und
automatische Realisierung der vorliegenden Erfindung für diese
Peripheriegeräte
kann die Bus-Schnittstellenlogik immer noch Synchronisierung vornehmen,
ohne dass ein Signal notwendig ist, um anzeigen, dass Synchronisierung
benötigt
wird.
-
Die
vorliegende Erfindung wurde zwar im Zusammenhang mit einem bevorzugten
Ausführungsbeispiel
dargestellt und beschrieben, doch können daran verschiedene Veränderungen,
Weglassungen und Ergänzungen
in ihrer Form und in Einzelheiten vorgenommen werden, ohne vom Umfang
der Erfindung abzuweichen, wie er in den Ansprüchen definiert wird.