DE69322356T2 - Synchrone/asynchrone Aufteilung einer asynchronen Busschnittstelle - Google Patents

Synchrone/asynchrone Aufteilung einer asynchronen Busschnittstelle

Info

Publication number
DE69322356T2
DE69322356T2 DE69322356T DE69322356T DE69322356T2 DE 69322356 T2 DE69322356 T2 DE 69322356T2 DE 69322356 T DE69322356 T DE 69322356T DE 69322356 T DE69322356 T DE 69322356T DE 69322356 T2 DE69322356 T2 DE 69322356T2
Authority
DE
Germany
Prior art keywords
data
asynchronous
bus
signal
state machine
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 - Fee Related
Application number
DE69322356T
Other languages
English (en)
Other versions
DE69322356D1 (de
Inventor
Chester A. North Chelmsford Massachusetts 01863 Pawlowski
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE69322356D1 publication Critical patent/DE69322356D1/de
Application granted granted Critical
Publication of DE69322356T2 publication Critical patent/DE69322356T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Diese Erfindung bezieht sich allgemein auf Computersysteme und insbesondere auf die Übertragung von Daten zwischen einer Datenübertragungsvorrichtung und einem asynchronen Abschnitt eines Computersystems.
  • Wie im Stand der Technik bekannt ist, umfassen Computersysteme im allgemeinen wenigstens eine Zentraleinheit (CPU), einen Hauptspeicher zum Speichern von Daten, wenigstens eine Eingabe/Ausgabe-(E/A)-Vorrichtung sowie einen Systembus, der die obenerwähnten Vorrichtungen mit der CPU verbindet. Die E/A-Vorrichtung besitzt im allgemeinen einen Anschluß, der mit einem E/A-Bus verbunden ist, der Zugriff auf eines oder mehrere Peripheriegeräte bietet.
  • Im allgemeinen werden E/A-Vorrichtungen verwendet, um Daten zwischen dem Systembus und dem E/A-Bus zu übertragen, so daß am E/A-Bus vorhandene Peripheriegeräte mit dem Rest des Computersystems verbunden werden. Viele unterschiedliche Typen von Peripheriegeräten, wie z. B. Massenspeichervorrichtungen, d. h. Plattenlaufwerke, Bandlaufwerke und dergleichen, Drucker, andere Computersysteme und andere E/A-Busse und dergleichen können am E/A-Bus vorhanden sein. Diese Peripheriegeräte besitzen im allgemeinen viele unterschiedliche Eigenschaften, einschließlich der Geschwindigkeit, mit der sie arbeiten. Um die Operationsgeschwindigkeit der schnellsten Vorrichtungen zu nutzen, während weiterhin langsameren Vorrichtungen erlaubt wird, am E/A-Bus zu arbeiten, wird der E/A-Bus häufig als asynchroner Bus ausgeführt. Ein asyn chroner Bus ist ein Bus, bei dem kein gemeinsames Takt- oder Zeitgebersignal vorhanden ist, auf das sich andere Signale wie z. B. Adressen, Daten und Steuersignale beziehen. Ein synchroner Bus ist ein Bus, bei dem alle Vorrichtungen Bussignale auf dem Bus mit Bezug auf die Übergänge (d. h. auf das Setzen und/oder Zurücksetzen) eines gemeinsamen Takt- oder Zeitgebersignals setzen und zurücksetzen.
  • Asynchrone Busse arbeiten im allgemeinen mit Quittungssignalen, die zwischen Vorrichtungen auf dem Bus ausgetauscht werden. Jedes Quittungssignal ist üblicherweise einem oder mehreren Bussignalen zugeordnet, wobei dann, wenn eine Vorrichtung einen Übergang eines Quittungssignals veranlaßt, z. B. eines Adreßimpulsquittungssignals, dies üblicherweise anzeigt, daß seine zugehörigen Signale, d. h. die Adreßsignale, gültig sind. Alle geeigneten Vorrichtungen am Bus setzen ein entsprechendes Quittungssignal, um anzuzeigen, daß sie die Signale, d. h. die Adreßsignale, empfangen haben. Auf diese Weise kann eine schnelle Vorrichtung mit einer langsamen Vorrichtung kommunizieren, in dem auf die Quittungssignale der zugehörigen langsamen Vorrichtung gewartet wird, was jeder Vorrichtung erlaubt, so schnell wie möglich zu arbeiten.
  • Im allgemeinen ist es in einem Computersystem, wie z. B. dem obenbeschriebenen, erforderlich, Daten zum und vom asynchronen E/A-Bus zu übertragen. Frühere Techniken verwenden eine Busschnittstellenschaltung zum Steuern der Übertragungen mit dem asynchronen Bus. Eine Technik syhchronisiert die asynchronen Busquittungssignale vor deren Verwendung. Ein Problem bei diesem Lösungsansatz besteht darin, daß er die Geschwindigkeit der Datenübertragungsrate beschränkt. Ein alternativer Lösungsansatz ist, eine asynchrone Schnittstelle zu verwenden, um Daten mit dem asynchronen Bus zu übertragen. Ein Vorteil dieses Lösungsansatzes besteht darin, daß die Datenübertragung auf dem asynchronen Bus sehr schnell ist. Ein Nachteil ist, daß die asynchrone Schnittstelle im allgemeinen sehr kompliziert und teuer ist.
  • Ferner ist eine Bustransaktion bekannt, ob synchron oder asynchron, die im allgemeinen eine Befehls/Adreß-Phase oder einen Zyklus verwendet, die eine anfängliche Übertragung von Informationen bezüglich der eingeleiteten Transaktion sein können, gefolgt von einer Datenphase oder einem Datenzyklus, die viele Übertragungen von Daten sein können. Eine Vorrichtung führt eine Transaktion auf dem Bus durch, indem sie zuerst über eine bestimmte Form der Busarbitrierung Zugriff auf den Bus erlangt. Nach dem Erlangen des Zugriffs beginnt die Vorrichtung mit der Transaktion durch Senden eines Befehls und einer Adresse auf den Bus (Befehl/Adreß-Phase). Alle Vorrichtungen am Bus prüfen die Adresse und den Befehl. Die Vorrichtungen prüfen häufig auf Parität und andere Fehler. Die Vorrichtungen decodieren ferner die Adresse, um zu ermitteln, ob sie ein Ziel der Transaktion sind, im folgenden als Bus- Slave-Vorrichtung bezeichnet. Die Bus-Slave-Vorrichtung oder die Vorrichtungen müssen ferner die Befehls- und Adreßinformationen decodieren, um einen geeigneten zu verfolgenden Logikpfad zu ermitteln. Die Busse, insbesondere E/A-Busse, an denen viele unterschiedliche Typen von Peripheriegeräten mit unterschiedlichen Eigenschaften vorhanden sein können, sind sehr kompliziert. Es kann mehrere Wege für eine Vorrichtung geben, um nach der Decodierung der Adreß- und Befehlsinformationen fortzufahren.
  • Unabhängig davon, ob der Bus ein synchroner oder ein asynchroner Bus ist, wird die Transaktionssteuerung des Busses häufig von Zustandsmaschinen bewerkstelligt, d. h. durch sequentielle Schaltungen. Ein Typ von Zustandsmaschine ist eine synchrone Zustandsmaschine, die Speicherelemente verwendet, die als Flip-Flops bezeichnet werden und ihren Binärwert nur zu diskreten Zeitpunkten ändern können. Synchrone Zustandsmaschinen enthalten im allgemeinen kombinatorische Logikschaltungen, die sogenannte "Zustandsgleichungen" implementieren. Die Zustandsgleichungen definieren die Operation oder den Fluß der Zustandsmaschine. Als Antwort auf die Ausgaben der kombinatorischen Logikschaltungen erzeugen die Flip-Flops Ausgangsbits, als Zustandsbits bezeichnet, die die Zustände der Zustandsmaschine definieren. Die kombinatorische Logik empfängt Eingaben von einer externen Logik und von den Flip-Flops und erzeugt Ausgaben für die externe Logik und für die Flip-Flops. Der Übergang eines Taktsignals erlaubt den Flip-Flops, ihre Eingangssignale zu verarbeiten, um die nächsten Ausgangszustände der Flip-Flops zu erzeugen. Die Zykluszeit des Taktsignals, d. h. die Zeitspanne von der steigenden Flanke zur fallenden Flanke, kann so gewählt werden, daß sie dem kleinsten Wert entspricht, der den Flip-Flops erlaubt, ihre Eingangssignale zu verarbeiten, und der kombinatorischen Logik erlaubt, die veränderten Eingaben von den Flip- Flops zu verarbeiten. Das Taktsignal darf somit nicht wechseln, bis die Flip-Flop-Eingänge gültig sind, d. h. sich nach dem Übergang beruhigt haben, "spannungsspitzenfrei" oder "rauschfrei" sind und für wenigstens eine Zeitspanne gleich der Eingangseinschwingzeit der Flip-Flops gültig waren. Während diese Anforderung die synchrone Zustandsmaschine daran hindert, aufgrund von Spannungsspitzen vorzeitig oder unrichtig zu wechseln, beschränkt sie auch die Geschwindigkeit der Zustandsmaschine auf den Taktzyklus, welcher auf die Ausbreitungsverzögerung durch den langsamsten Pfad beschränkt ist.
  • Eine E/A-Vorrichtung, die eine synchrone Zustandsmaschine verwendet, um Daten mit einem asynchronen Bus zu übertragen, muß ferner alle empfangenen asynchronen Busquittungssignale vor deren Verwendung synchronisieren. Um asynchrone Signale zu synchronisieren, kann eine zweistufige Flip-Flop-Vorrichtung verwendet werden, d. h. ein zweistufiger Synchronisierer. Mit einem zweistufigen Synchronisierer wird das asynchrone Signal in einen ersten Flip-Flop-Eingang eingegeben, wobei der Synchronisierungstakt verwendet wird, um dem Signalwert zu ermöglichen, durch das Flip-Flop zu laufen und an einem Ausgang des ersten Flip-Flops zu erscheinen, wenn das Signal das Flip-Flop vor dem Taktübergang erreicht. Der Ausgang des ersten Flip-Flops wird anschließend in einen Eingang eines zweiten Flip-Flops eingegeben, das in einer ähnlichen Weise durch ein Taktsignal gesteuert wird. Die zwei Stufen sind erforderlich, um eine Metastabilität zu verhindern, d. h., wenn das asynchrone Signal bei oder unmittelbar vor dem Taktübergang wechselt, kann der Ausgang des ersten Flip-Flops instabil sein. Das zweite Flip-Flop ermöglicht, daß sich der Ausgang des ersten Flip-Flops einen ganzen Taktzyklus lang stabilisiert, bevor der Wert des Signals zu seinem Ausgang weitergeleitet wird. Die synchrone Zustandsmaschine kann dann den Ausgang des zweiten Flip-Flops beim nächsten Taktübergang verarbeiten. Im ungünstigsten Fall wechselt das asynchrone Signal unmittelbar nach dem Taktübergang, wobei das erste Flip-Flop den Wert bis zum folgenden Taktübergang nicht weiterleitet. Wenn dies auftritt, verarbeitet die asynchrone Zustandsmaschine das Signal bis zu einem vierten Taktübergang nicht. Dementsprechend besteht ein Problem bei der Verwendung einer synchronen Zustandsmaschine für die Verbindung mit einem asynchronen Bus darin, daß eine Schaltung erforderlich ist, um die empfangenen asynchronen Quittungssignale zu synchronisieren. Diese Schaltung oder dieser "Synchronisierer" führt eine lange Latenzperiode zwischen dem zur Übertragung bereitstehenden Daten und den übertragenen Daten ein, da der Synchronisierer die Übergänge der asynchronen Signale unveränderlich um bis zu drei bis vier Taktzyklen verzögert.
  • Ein weiterer Typ von Zustandsmaschine ist die asynchrone Zustandsmaschine. Asynchrone Zustandsmaschinen sind grundsätzlich kombinatorische Schaltungen mit Rückkopplungspfaden, deren Ausgänge von der Reihenfolge abhängen, mit der sich ihre Eingangsvariablen ändern. Ähnlich der synchronen Zustandsmaschine implementiert die kombinatorische Logik Zustandsgleichungen, die die Operation oder den Fluß der Zustandsmaschine definieren. Es gibt jedoch keine Speicherelemente, d. h. Flip-Flops, weshalb die Ausgänge der asynchronen Zustandsmaschine zu jedem Zeitpunkt durch Änderungen irgendeines Eingangs der Zustandsmaschine beeinflußt werden können. Die kombinatorische Logik, die die asynchrone Zustandsmaschine enthält, erzeugt die Zustandsbits und andere Ausgangssignale, weshalb die Änderungen von einem Zustand zum nächsten nicht durch ein Taktsignal wie bei der synchronen Zustandsmaschine gesteuert werden. Somit ändert die asynchrone Zustandsmaschine die Zustände so schnell, wie die kombinatorische Logik die empfangenen Signale verarbeiten kann. Im allgemeinen ist die asynchrone Zustandsmaschinenschnittstelle zu einem asynchronen Bus sehr viel schneller als die obenerwähnte synchrone Zustandsmaschine. Um zu verhindern, daß Störspitzen auf den Zustandsbits die asynchrone Zustandsmaschine in ungültige Zustände zwingen, wird zu jedem Zeitpunkt, zu dem die Zustandsmaschine den Zustand ändert, jedesmal nur einem Zustandsbit erlaubt, sich zu ändern. Somit hat nur dieses Zustandsbit die Möglichkeit, Störspitzen aufzuweisen, wodurch die asynchrone Zustandsmaschine nicht in einen unrichtigen Zustand übergeht. Im allgemeinen führt dies zu einer großen Anzahl erforderlicher Zustände und somit zu einer großen Anzahl von Zustandsbits, die das Ausmaß der zum Implementieren der Zustandsmaschine erforderlichen Schaltung erhöhen.
  • Asynchrone Zustandsmaschinen müssen ferner gefährdungssicher ausgelegt sein. Eine Gefährdung kann auftreten, wenn sich Eingänge der Zustandsmaschine ändern und sich somit der Zustand der Zustandsmaschine ändert, jedoch einige Ausgänge der Zustandsmaschine ruhig verharren sollen. Da sich der Zustand ändert, kann sich in diesem Fall ein Ausgang vorübergehend (d. h. durch eine Störspitze) auf einen anderen Pegel als den Ruhewert ändern, was die Zustandsmaschine veranlassen kann, sich ungeeignet in einen falschen Zustand zu versetzen. Um dieses Problem zu beseitigen, werden die asynchronen Zustandsmaschinengleichungen mit zusätzlichen Termen versehen, nämlich Gefährdungstermen, um diese möglichen Störspitzen daran zu hindern, Übergänge in falsche Zustände zu verursachen. Diese hinzugefügten Gefährdungsterme erhöhen weiter das Ausmaß der zum Implementieren der asynchronen Zustandsmaschine erforderlichen Schaltung.
  • Dementsprechend ist die Verwendung asynchroner Schnittstellen zur Verbindung mit einem asynchronen Bus der bevorzugte Lösungsansatz, wenn Geschwindigkeit das Hauptziel ist. Da Computersysteme jedoch komplexer werden, werden die diesen Systemen zugeordneten Busstrukturen komplexer. Ein Problem bei der Verwendung einer asynchronen Schnittstelle zur Verbindung mit einem solchen komplexen Bus besteht somit darin, daß die Schnittstelle dementsprechend komplex wird und mit Zunahme der Komplexität der Busstruktur die Größe und die Kosten der Schnittstelle ansteigen.
  • Außer der obenerwähnten Situation gibt es viele andere Situationen, in denen Daten mit einem asynchronen Bus übertragen werden müssen. Der obenerwähnte Systembus kann synchron oder asynchron sein. Wenn der Systembus asynchron ist, treten viele der mit der Verbindung zu einem asynchronen Bus verbundenen Schwierigkeiten auf, wenn eine Verbindung zum Systembus hergestellt wird.
  • "24 MHz Grey-coded state machine for adapting 12 MHz synchronous bus interface logic to ASYNCHRONE ZUSTANDSMASCHINE/400 I/O bus", IBM Technical Disclosure Bulletin, Bd. 34, Nr. 4B, September 1991, beschreibt eine Busschnittstellenlogik, die eine erste Schaltung enthält, die mit 12 MHz läuft, sowie eine zweite Schaltung, die mit 24 MHz läuft, wobei zwischen diesen keine Taktphasenbeziehung besteht.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung beruht in ihrer allgemeinsten Form auf einer Datenübertragungsvorrichtung, wie sie im Anspruch 1 genannt ist.
  • Wie hier beschrieben worden ist, enthält eine Datenübertragungsvorrichtung eine Einrichtung zum Steuern der Datenübertragung mit einem asynchronen Bus. Die Einrichtung zum Steuern der Datenübertragung enthält ein synchrones Logiknetzwerk zum Schaffen einer Transaktionsverbindung zwischen dem asynchronen Bus und der Datenübertragungsvorrichtung während einer Anfangsphase der Transaktion und ein asynchrones Logiknetzwerk zum Bewerkstelligen der Datenübertragung zwischen dem asynchronen Bus und der Datenübertragungsvorrichtung während einer anschließenden Transaktionsphase. Mit einer solchen Anordnung kann das synchrone Logiknetzwerk die Transaktionssteuerung während einer Zeitspanne bewirken, während der viele Ermittlungen von der Datenübertragungsvorrichtung durchgeführt werden müssen. Obwohl das synchrone Logiknetzwerk langsamer sein kann als ein entsprechendes asynchrones logisches Netzwerk, weist es eine erheblich kleinere Schaltung auf als das asynchrone Logiknetzwerk. Andererseits bietet das asynchrone Logiknetzwerk eine Transaktionssteuerung während einer Zeitspanne, während der von der Datenübertragungsvorrichtung wenige Ermittlungen durchgeführt werden müssen. Obwohl daher ein entsprechendes synchrones Logiknetzwerk mit etwas weniger Hardware implementiert werden kann als das asynchrone Logiknetzwerk, ist das synchrone Logiknetzwerk erheblich langsamer als das asynchrone Logiknetzwerk. Es wird somit eine Datenübertragungsvorrichtung mit einem minimalen Schaltungsaufwand geschaffen, während eine Datenübertragung mit einer hohen Geschwindigkeit ermöglicht wird.
  • In einer hier beschriebenen Abwandlung enthält eine Datenübertragungsvorrichtung eine Einrichtung zum Verbinden mit einem asynchronen Bus und eine Einrichtung zum Steuern der Datenübertragung zwischen der Schnittstelleneinrichtung zum asynchronen Bus und dem asynchronen Bus. Die Einrichtung zum Steuern der Datenübertragung zwischen der Schnittstelleneinrichtung zum asynchronen Bus und dem asynchronen Bus enthält eine Einrichtung zum synchronen Steuern einer Anfangsverbindungsphase der Transaktion und eine Einrichtung zum asynchronen Steuern einer anschließenden Datenübertragungsphase der Transaktion. Mit einer solchen Anordnung bewerkstelligt die synchrone Steuereinrichtung die Transaktionssteuerung während einer anfänglichen Verbindungsphase, wenn von der Datenübertragungsvorrichtung viele Ermittlungen durchgeführt werden müssen. Die synchrone Steuereinrichtung ist, obwohl sie typischerweise langsamer ist als eine entsprechende asynchrone Steuereinrichtung, mit deutlich weniger Schaltungsaufwand implementiert. Andererseits bewerkstelligt die asynchrone Steuereinrichtung die Transaktionssteuerung während einer anschließenden Datenübertragungsphase, während der von der Datenübertragungseinrichtung wenige Ermittlungen durchgeführt werden müssen. Dementsprechend ist die asynchrone Steuereinrichtung mit etwas weniger Hardware implementiert als eine entsprechende synchrone Steuereinrichtung und entsprechend schneller als eine synchrone Steuereinrichtung. Somit wird die Datenübertragungsvorrichtung mit einem minimalen Aufwand an Schaltung geschaffen, während eine Datenübertragung mit hoher Geschwindigkeit ermöglicht wird.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Ein genaueres Verständnis der Erfindung kann aus der folgenden Beschreibung einer bevorzugten Ausführungsform erhalten werden, die lediglich beispielhaft vorgestellt wird und in Verbindung mit den beigefügten Zeichnungen zu verstehen ist, in welchen:
  • Fig. 1 ein Blockschaltbild eines Computernetzes mit einem Systembus ist, der über eine E/A-Vorrichtung gemäß einer Ausführungsform der Erfindung mit einem E/A-Bus verbunden ist;
  • Fig. 2 ein genaueres Blockschaltbild der E/A-Vorrichtung der Fig. 1;
  • Fig. 3 ein genaueres Blockschaltbild der Slave-Steuervorrichtung der Fig. 2 gemäß einer Ausführungsform der Erfindung;
  • Fig. 4 ein Zustandsdiagramm, das den Fluß der ersten synchronen Zustandsmaschine der Fig. 3 zeigt;
  • Fig. 5 ein Zustandsdiagramm, das den Fluß der ersten asynchronen Zustandsmaschine der Fig. 3 zeigt;
  • Fig. 6 eine Wahrheitstabelle, die die Operation der ersten asynchronen Zustandsmaschine der Fig. 3 zeigt;
  • Fig. 7 ein Karnaugh-Diagramm, das die Bedingungen zeigt, unter denen ein bestimmtes Ausgangssignal gesetzt wird, das in der Wahrheitstabelle in Fig. 6 gezeigt ist;
  • Fig. 8 ein Zustandsdiagramm, das den Fluß der zweiten synchronen Zustandsmaschine der Fig. 3 zeigt; und
  • Fig. 9 ein Zustandsdiagramm, das den Fluß der zweiten asynchronen Zustandsmaschine der Fig. 3 zeigt.
  • GENAUE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Wie oben erwähnt, verwendet diese Erfindung eine Vorrichtung zum Übertragen von Daten und Empfangen von Daten zu bzw. von einem asynchronen System, wie z. B. einem asynchronen Bus. Eine Schnittstellenvorrichtung zum asynchronen Bus ist unterteilt in einen synchronen Abschnitt und einen asynchronen Abschnitt. Ein Anfangsabschnitt einer Transaktion auf dem asynchronen Bus wird gesteuert durch den synchronen Abschnitt, während ein anschließender Datenübertragungsabschnitt der Transaktion vom asynchronen Abschnitt gesteuert wird. Dies reduziert den Schaltungsaufwand, der erforderlich ist, um die Schnittstellenvorrichtung zu schaffen, während eine schnelle Datenübertragung mit dem asynchronen Bus über die Schnittstellenvorrichtung bewerkstelligt wird.
  • Wie in Fig. 1 gezeigt, enthält ein Computernetz 10 ein Computersystem 12, das eine Zentraleinheit (CPU) 12a, ein Hauptspeichermodul 12b und eine Eingabe/Ausgabe-(E/A)- Vorrichtung 12c enthält, die über einen Systembus 12d miteinander verbunden sind. Es können mehrere CPUs, Hauptspeichermodule und E/A-Vorrichtungen am Systembus vorhanden sein, obwohl der Einfachheit halber in Fig. 1 nur jeweils eines gezeigt ist. Das Computernetz 10 enthält ferner einen E/A-Bus 13, der verwendet wird, um das Computersystem mit einer Peripherievorrichtung 14 zu verbinden, ein zweites Computersystem 16, das vom gleichen Systemtyp wie das Computersystem 12 sein kann oder einen anderen Computersystemtyp aufweisen kann, sowie eine Busschnittstelle 18. Beispiele von Peripherievorrichtungen, die mit dem Bus 13 verbunden sein können, umfassen Bandlaufwerke, Plattenlaufwerke, Drucker und dergleichen. Es können mehrere Peripheriegeräte, Computersysteme und Busschnittstellen, d. h. Vorrichtungen, die so beschaffen sind, daß sie Daten zwischen wenigstens zwei Bussen übertragen, am E/A-Bus vorhanden sein, obwohl der Klarheit halber in Fig. 1 nur jeweils eines gezeigt ist. Hierbei besitzt jede der Vorrichtungen 14, 16 und 18 eine entsprechende Schnittstellenvorrichtung 14a, 16a und 18a, wie gezeigt ist, um die jeweilige Vorrichtung mit dem E/A-Bus 13 zu verbinden. Wie ferner gezeigt ist, ist die Busschnittstellenvorrichtung 18 so angeordnet, daß sie den E/A-Bus 13 mit einem dritten Bus 19 verbindet, der ein Computersystembus (wie der Bus 12d) oder ein weiterer Netzbus (wie der Bus 13) sein kann.
  • Die E/A-Vorrichtung 12c ist vorgesehen, um die Übertragung von Daten zwischen dem E/A-Bus 13 und dem Systembus 12d zu bewerkstelligen. In diesem Beispiel arbeiten der Systembus 12d und die am Systembus vorhandenen Vorrichtungen synchron zu einem gemeinsamen Taktsignal, während der E/A-Bus 13 und die am E/A-Bus vorhandenen Vorrichtungen asynchron arbeiten. Dementsprechend wird die E/A- Vorrichtung 12c verwendet, um Daten zwischen dem synchro nen Computersystem und dem asynchronen E/A-Bus zu übertragen.
  • Häufig verbindet der E/A-Bus 13 Vorrichtungen miteinander, die unterschiedliche Eigenschaften aufweisen können. Ein flexibles Protokoll, d. h. eine vorgegebene Bussteuertechnik, durch die Daten über den Bus übertragen werden können, ist hier auf dem E/A-Bus 13 implementiert, um den verschiedenen Eigenschaften der unterschiedlichen mit dem Bus 13 verbundenen Vorrichtungen gerecht zu werden, und erlaubt solchen Vorrichtungen, optimal zu arbeiten. Ein Beispiel eines flexiblen Protokolls für den E/A-Bus 13 ist das sogenannte "Futurebus+" (FBUS)-Protokoll, wie es in den Spezifikationen ausgeführt ist, die geliefert werden vom Insitute for Electrical and Electronic Engineers, einschließlich IEEE STD. 896.1-1991: Logical Layer Specification. Als erläuterndes Beispiel wird die E/A-Vorrichtung 12c bezüglich der Verbindung mit einem E/A-Bus 13, der das FBUS-Protokoll implementiert, beschrieben. Es ist jedoch klar, daß die E/A-Vorrichtung 12c auf andere Typen von Bussen angewendet werden kann und daß die Beschreibung des FBUS eine bevorzugte Ausführungsform der Erfindung darstellt. Bevor fortgefahren wird, wird eine kurze Beschreibung des FBUS gegeben.
  • Der FBUS ist ein Niedrigpegel-Aktiv-Bus, (d. h. ein gesetztes (aktives) Signal weist einen niedrigeren Spannungspegel auf als ein nicht gesetztes (deaktiviertes) Signal. Der Systembus 12d ist häufig ein Hochpegel-Setz- Bus (d. h. ein gesetztes Signal weist einen höheren Spannungspegel auf als ein nicht gesetztes Signal). Die E/A-Vorrichtung 12c muß auf die Setzpegel jeweils richtig antworten. Im folgenden bezieht sich gesetzt bzw. zurückgesetzt auf die geeigneten Setz- und Zurücksetz-Logikpegel für den jeweiligen Bus.
  • Wenn eine Vorrichtung, wie z. B. die E/A-Vorrichtung 12c, das Peripheriegerät 14, das Computersystem 16 und die Busschnittstelle 18, die in Fig. 1 gezeigt sind, in eine Transaktion unter Verwendung des Busses 13 eintreten, erlangen die Vorrichtungen die Steuerung des Busses über einen Prozeß, der als "Arbitrierung" bekannt ist. Die Arbitrierung ist ein Schritt bei der Implementierung eines Protokolls, in welchem eine als FBUS-Master-Vorrichtung bezeichnete Vorrichtung unter konkurrierenden Vorrichtungen ausgewählt wird, um für eine gegebene Zeitperiode, als "Transaktion" bezeichnet, den Bus 13 zu nutzen. Die Bus-Master-Vorrichtung ist eine der Vorrichtungen, die in einer Transaktion verwendet wird, und wird von einem (nicht gezeigten) Arbitrierer ausgewählt. Es gibt viele unterschiedliche Typen von Arbitrierungstechniken, die im Stand der Technik bekannt sind. Der FBUS verwendet einen (nicht gezeigten) zentralen Arbitrierer, an den alle Vorrichtungen am FBUS, die die Steuerung des FBUS erlangen möchten, d. h. eine FBUS-Master-Vorrichtung werden möchten, ein Busanforderungssignal senden. Der zentrale Arbitrierer gewährt die Steuerung des FBUS einer der Vorrichtungen, die ein Busanforderungssignal gesendet haben, entsprechend einem vorgegebenen Schema, das eine solche Steuerung unter den verschiedenen Vorrichtungen, die Zugriff auf den Bus erlangen möchten, verteilt. Schemen, die vom Arbitrierer implementiert werden, umfassen Prioritätsschemen, zyklische Umlaufschemen und dergleichen. Wenn einer Vorrichtung vom Arbitrierer eine Erlaubnis zugesandt wird, erhält sie typischerweise den Status der Bus-Master-Auswahl. Die Vorrichtung übt aktuell die Steuerung aus, d. h. sie wird die Bus-Master- Vorrichtung, wenn irgendeine laufende Transaktion auf dem Bus abgeschlossen ist.
  • Sobald eine Vorrichtung die Steuerung des Busses erhält, d. h. eine Bus-Master-Vorrichtung wird, sendet die Bus- Master-Vorrichtung Adressen- und Befehlsinformationen auf geeigneten Busleitungen, um eine Verbindungsphase einzuleiten. Im folgenden werden einige der vom FBUS implementierten Normsignale beschrieben. Diese Signale werden im folgenden in Verbindung mit den Fig. 1 bis 2 beschrieben. Für den FBUS 13 ist die Adresse hier auf den FBUS- Adreß/Daten-Leitungen (AD) 63 bis 0 plaziert, nämlich AD< 63 : 0> , wobei der Befehl auf den FBUS-Befehlsleitungen (cm) 7 bis 0 plaziert ist, nämlich cm< 7 : 0> . Die Befehlsleitungen in der Verbindungsphase zeigen an, welche AD- Leitungen gültige Daten enthalten, nämlich AD< 31 : 0> und möglicherweise AD< 63 : 32> . Nach dem Setzen der geeigneten Befehls- und Adreßbits setzt die FBUS-Master-Vorrichtung ein Adressensynchronisation-Quittungssignal, nämlich FB_AS, um anzuzeigen, daß die Busleitungen gültige Daten enthalten und daß alle am Bus vorhandenen Module die Daten prüfen sollen. Die Vorrichtungen am Bus antworten durch Setzen eines Adreßbestätigungssignals, nämlich FB_AK, und nehmen die Adreß- und Befehlsinformationen auf dem Bus auf. Die Bus-Slave-Vorrichtung setzt sofort ein Datenbestätigungs-Umkehrquittungssignal, nämlich FB_DI, für die spätere Verwendung. Die antwortenden Vorrichtungen decodieren die Adresse, um zu ermitteln, ob sie ein Ziel der Transaktion, d. h. eine Bus-Slave-Vorrichtung, sind und decodieren den Befehl, um zu ermitteln, welcher Typ von Transaktion eingeleitet worden ist. Die Vorrichtungen prüfen ferner auf Parität und andere Fehler. Wenn z. B. beim Decodieren eines Befehls festgestellt wird, daß er für eine Transaktion gilt, die die Bus-Slave- Vorrichtung nicht handhaben kann, wird ein Fehler signalisiert.
  • Der FBUS bietet acht Statusleitungen (ST), nämlich ST< 7 : 0> , für die Verwendung durch antwortende Vorrichtungen, um die Bus-Master-Vorrichtung über signifikante Ereignisse zu unterrichten, wie z. B. darüber, daß sie ein Ziel der Transaktion sind oder daß Fehler aufgetreten sind und dergleichen. Sobald die Adresse decodiert worden ist, hat wenigstens eine Vorrichtung festgestellt, daß sie ein Ziel der Transaktion, d. h. die Bus-Slave-Vorrichtung, ist oder daß Fehler vorliegen. Die Bus-Slave- Vorrichtung setzt die geeignete Statusleitung auf dem FBUS, wobei dann, wenn die Vorrichtung bereit ist, mit der nächsten Phase der Transaktion fortzufahren, die Vorrichtung ein Adreßbestätigungs-Umkehrquittungssignal, nämlich FB_AI, zurücksetzt. Alle Vorrichtungen, einschließlich derjenigen, die kein Ziel der Transaktion sind, setzen das FB_AI-Signal zurück als Bestätigung für die Bus-Master-Vorrichtung, daß sie die Adresse decodiert und auf Fehler geprüft haben.
  • Nach dem Zurücksetzen des FB_AI-Signals durch alle Vorrichtungen am Bus kann die Bus-Master-Vorrichtung mit der Datenübertragungsphase fortfahren. Zu Beginn der Datenphase kann die Bus-Master-Vorrichtung über die Befehlsleitungen zur Bus-Slave-Vorrichtung Informationen über die Menge an Daten liefern, die in der aktuellen Transaktion übertragen werden. Daten können zwischen der Bus- Master-Vorrichtung und der Bus-Slave-Vorrichtung über die Leitungen AD< 63 : 0> und über die Datenleitungen 255 bis 64, nämlich D< 255 : 64> , übertragen werden. Die von der Bus-Master-Vorrichtung in der Verbindungsphase gesendeten Befehlsinformationen geben an, welche der verfügbaren Leitungen, gültige Daten enthalten, nämlich die Datenbreite, d. h. AD< 31 : 0> und möglicherweise AD< 63 : 32> , D< 127 : 64> und D< 255 : 128> , und ob die Transaktion eine Übertragung von Daten zur Bus-Slave-Vorrichtung, d. h. ein Schreibvorgang, oder das Anfordern von Daten von der Bus-Slave-Vorrichtung, d. h. ein Lesevorgang, ist. Wenn die Transaktion ein Schreibvorgang ist, plaziert die Bus- Master-Vorrichtung die zu übertragenden Daten auf den geeigneten Busleitungen nach dem Erfassen des Zurückset zens des FB_AI-Signals und setzt ein Datensynchronisierungsquittungssignal, nämlich FB_DS, zurück. Wenn die Transaktion ein Lesevorgang ist, setzt die Bus-Master- Vorrichtung sofort die Adresse zurück und setzt das Signal FB_DS nach dem Erfassen des Zurücksetzens des Signals FB_AI. Nach dem Erfassen des Setzens des FB_DS- Signals antwortet die Bus-Slave-Vorrichtung für einen Lesevorgang oder einen Schreibvorgang sofort durch Setzen eines Datenbestätigungs-Quittungssignals, nämlich FB_DK, für eine spätere Verwendung. Im Fall eines Lesevorgangs bereitet anschließend die Bus-Slave-Vorrichtung das Plazieren der Daten auf dem Bus vor, wobei dann, wenn die Bus-Master-Vorrichtung Informationen über die Menge an zu übertragenden Daten geliefert hat, die Bus-Slave-Vorrichtung diese Informationen verwenden kann, um die Daten effizienter vom Hauptspeicher 12b (Fig. 1) zur Bus- Master-Vorrichtung zu übertragen.
  • Nachdem die Bus-Slave-Vorrichtung die Daten auf den Busleitungen angenommen hat (eine Schreiboperation von der Bus-Master-Vorrichtung), oder Daten auf den Busleitungen plaziert hat (eine Leseoperation der Bus-Master- Vorrichtung), setzt die Bus-Slave-Vorrichtung das Signal FB_DI zurück. Dies zeigt der Bus-Master-Vorrichtung an, daß die Bus-Slave-Vorrichtung Daten entnommen hat oder Daten auf dem Bus bereit gestellt hat und ferner einen Status, nämlich ST< 7 : 0> , auf dem Bus bereit gestellt hat. Die Bus-Master-Vorrichtung liefert dann mehr Daten (bei einem Schreibvorgang) oder nimmt die von der Bus-Slave- Vorrichtung gesendeten Daten auf (bei einem Lesevorgang) und nimmt den von der Bus-Slave-Vorrichtung gesendeten Status auf. Wenn die Bus-Master-Vorrichtung für die nächste Datenübertragung bereit ist, setzt die Bus- Master-Vorrichtung das Signal FB_DS zurück. Sowohl die Setzflanke als auch die Rücksetzflanke des Signals FB_DS werden zur Datenübertragung verwendet. Die Setzflanke des Signals FB_DS kennzeichnet den Beginn eines "ungeraden Datentaktes", während die Rücksetzflanke des Signals FB_DS den Beginn eines "geraden Datentaktes" kennzeichnet. Die Bus-Slave-Vorrichtung antwortet auf das Zurücksetzen des Signals FB_DS sofort mit dem erneuten Setzen des Signals FB_DI für eine spätere Verwendung. Wenn die Bus-Slave-Vorrichtung erneut Daten entnommen oder Daten geliefert hat und den Status geliefert hat, setzt die Bus-Slave-Vorrichtung das Signal FB_DK zurück. Das Zurücksetze n des Signals FB_DK zeigt an, daß die Bus-Slave- Vorrichtung den geraden Datentakt beendet hat, d. h. die Bus-Slave-Vorrichtung hat entweder Daten angenommen oder Daten geliefert, und den Status geliefert hat (das vorherige Zurücksetzen des Signals FB_DI zeigt an, daß die Bus-Slave-Vorrichtung den ungeraden Datentakt beendet hat).
  • Im allgemeinen finden mehrere solcher Datentakte in ähnlicher Weise wie oben umrissen statt. Wenn die Bus- Master-Vorrichtung das Senden oder Empfangen von Daten bewerkstelligt hat, setzt die Bus-Master-Vorrichtung das Signal FB_AS zurück und geht in die Trennungsphase über. Die Bus-Slave-Vorrichtung setzt sofort das Signal FB_AI und setzt anschließend das Signal FB_DI und das Signal FB_DK bei Bedarf zurück, abhängig davon, ob die letzte Datenübertragung ein gerader oder ein ungerader Datentakt war. Die Bus-Master-Vorrichtung setzt anschließend das Signal FB_DS zurück, wenn die letzte Datenübertragung ein gerader Datentakt war. Anschließend setzt die Bus-Slave- Vorrichtung irgendeinen geeigneten Status und empfängt in bestimmten Situationen Informationen von den Datenleitungen, die von der Bus-Master-Vorrichtung gesendet worden sind, und setzt das Signal FB_AK zurück. Die Bus-Master- Vorrichtung empfängt anschließend den Status, womit die Transaktion beendet ist.
  • Flexible Protokolle erlauben, daß viele Vorrichtungen mit unterschiedlichen Fähigkeiten Daten untereinander austauschen. Diese Flexibilität vergrößert jedoch im allgemeinen die Komplexität. Hochentwickelten Vorrichtungen kann erlaubt werden, Daten mit ähnlich hochentwickelten Vorrichtungen oder mit weniger entwickelten Vorrichtungen auszutauschen. Zu Beginn einer Transaktion müssen viele Ermittlungen bezüglich der Transaktion, die durchgeführt werden soll, und darüber, wie die Transaktion durchgeführt werden soll, durchgeführt werden. Diese Ermittlungen erfordern Zeit und können erfordern, daß die Bus- Master-Vorrichtung oder die Bus-Slave-Vorrichtung in bestimmter Weise antworten. Im Fall des FBUS werden die meisten dieser Ermittlungen in der Verbindungsphase durchgeführt, während die anschließende Datenphase relativ wenige Ermittlungen zu Beginn der Datenphase erfordert. Eine Ermittlung für den FBUS ist der Typ der durchzuführenden Transaktion, z. B. Lesen, Schreiben, Partial, Geteilt (split) und dergleichen. Alle diese Transaktionen werden in der IEEE-Norm 896.1-1991 genauer beschrieben. Andere Ermittlungen umfassen, welche Adreßleitungen verwendet werden sollen, welche Datenleitungen verwendet werden sollen, wieviele Daten übertragen werden sollen und dergleichen. Jede Ermittlung erfordert, daß die Bus- Master-Vorrichtung und die Bus-Slave-Vorrichtung unterschiedlich arbeiten.
  • Wie in Fig. 2 gezeigt, ist die E/A-Vorrichtung 12c über eine asynchrone Busschnittstelle 20 mit dem asynchronen E/A-Bus 13 verbunden. Die asynchrone Busschnittstelle 20 enthält herkömmliche Schnittstellenschaltungen 22, 24, 26, 27 und 28, die der Adresse 22 zugewiesen sind (AD< 63 : 0> ), und die Signale Quittung 24 (FB_AS, FB_DS, FB_AI, FB_AK, FB_DI, FB_DK), Status 26 (ST< 7 : 0> ) und Befehl 27 (cm< 7 : 0> ) auf dem asynchronen Bus. Diese Schaltung enthält (nicht gezeigte) Leitungsabschlüsse zum Erhalten der geeigneten Signalintegrität auf dem asynchronen Bus durch Vorsehen eines geeigneten angepaßten Impedanzabschlusses, sowie (nicht gezeigte) Puffer zum Schaffen einer geeigneten Spannungspegelumsetzung zwischen den Spannungspegeln der Signale auf dem asynchronen Bus und den Spannungspegeln der Signale im Rest der E/A- Vorrichtung 12c. Die asynchrone Busschnittstelle 20 enthält ferner (nicht gezeigte) Sendeempfänger zum Senden und Empfangen von Daten sowie eine (nicht gezeigte) Kombinationslogik zum Decodieren der empfangenen Signale oder zum Codieren der zu sendenden Signale.
  • Die E/A-Vorrichtung 12c enthält ferner eine Slave-Steuervorrichtung 32 und eine Master-Steuervorrichtung 34, die über die asynchrone Busschnittstelle 20 mit dem asynchronen E/A-Bus 13 verbunden sind. Die E/A-Vorrichtung 12c enthält ferner eine Synchronisierer-Logikschaltung 36, die zwischen den Steuervorrichtungen 32, 34 angeschlossen ist, sowie die Quittungsschaltung 24 der asynchronen Busschnittstelle 20. Die Synchronisiererlogik 36 enthält herkömmliche zweistufige Synchronisierer (nicht gezeigt), wie vorher beschrieben worden ist, um alle empfangenen Signale zu synchronisieren. Ein Oszillator 38 ist ebenfalls ein Teil der E/A-Vorrichtung 12c und liefert ein CLK-Signal 38a zur Synchronisiererlogik 36 und zur Slave- Steuervorrichtung 32. Das CLK-Signal 38a kann ferner von anderen Komponenten der E/A-Vorrichtung 12c (nicht gezeigt) verwendet werden, wobei das CLK-Signal 38a vom Systembus 12d geliefert werden kann, anstatt es vom Oszillator 38 zu liefern, wenn der Systembus 12d ein synchroner Bus ist. Die Steuervorrichtungen 32, 34 empfangen asynchrone Quittungssignale direkt von der Quittungsschaltung 24 und synchronisierte Quittungssignale von der Synchronisiererlogik 36. Die Slave-Steuervorrichtung 32 antwortet auf Transaktionen, die von anderen am asynchronen E/A-Bus 13 vorhandenen Vorrichtungen einge leitet werden, während die Master-Steuervorrichtung 34 Transaktionen auf dem asynchronen E/A-Bus 13 einleitet.
  • Wie in Fig. 2 gezeigt, sind beide Steuervorrichtungen 32, 34 ferner mit einer Gattermatrix 40 verbunden. Die Gattermatrix 40 enthält eine kombinatorische Logik, die so beschaffen ist, daß sie unter anderem eine Bank von Datenpuffern zur Verfügung stellt, die den Datenpuffer 42a und den Datenpuffer 42b enthalten, sowie eine Steuerlogik 44 und eine Systembusschnittstelle 46. Es können mehr als zwei Datenpuffer in der Bank der Datenpuffer 42a, 42b vorhanden sein, jedoch sind in Fig. 2 der Klarheit halber nur zwei gezeigt. Über die Gattermatrix 40 sind die Steuervorrichtungen 32, 34 mit dem Systembus 12d verbunden und können Daten zu den Vorrichtungen, wie z. B. der CPU 12a oder dem Hauptspeicher 12b, die am Systembus vorhanden sind (Fig. 1), senden und von diesen empfangen.
  • Wie in Fig. 3 gezeigt, enthält die Slave-Steuervorrichtung 32 hier eine Verzögerungslogik 48 und vier Zustandsmaschinen 50-53; eine erste synchrone Zustandsmaschine 50, eine erste asynchrone Zustandsmaschine 51, eine zweite synchrone Zustandsmaschine 52 und eine zweite asynchrone Zustandsmaschine 53. Die Verzögerungslogik 48 enthält eine Verzögerungsschaltung, die gewöhnliche Verzögerungselemente und eine kombinatorische Logik enthält. Über die Verzögerungslogik 48 können Signale um vorgegebene oder veränderliche Zeitperioden verzögert werden. Die Zustandsmaschinen 50-53 sind Logikschaltungen, die bestimmte Zustandsgleichungen implementieren. Häufig werden programmierbare Matrixlogikkomponenten (PAL-Komponenten) verwendet, da sie für die Implementierung von Zustandsmaschinen gut geeignet sind. Beide synchronen Zustandsmaschinen 50, 52 sind synchron zum CLK-Signal 38a und ändern ihre Zustände, wenn eine geeig nete Zustandsgleichung wahr ist (kombinatorische Logik) und das CLK-Signal 38a wechselt (Flip-Flop-Speicherelemente). Wie vorher erwähnt worden ist, kann das CLK- Signal 38a vom synchronen Systembus kommen, wodurch die synchronen Zustandsmaschinen 50, 52 synchron zum Systembus sind, oder das CLK-Signal 38a kann vom Oszillator 38 kommen. Wenn das CLK-Signal vom Oszillator 38 kommt, kann die Periode des CLK-Signals so gewählt werden, daß es eine Ableitung der Periode des Systembustaktes ist, was den synchronen Zustandsmaschinen 50, 52 erlaubt, effizienter zu arbeiten als mit der Periode des Systembustaktsignals. Beide asynchronen Zustandsmaschinen 51, 53 ändern ihre Zustände (es wechselt nur ein Zustandsbit bei jeder Zustandsänderung), wenn eine geeignete Zustandsgleichung einschließlich der Gefährdungsterme, wahr ist (kombinatorische Logik). Diese vier Zustandsmaschinen werden verwendet, um auf Transaktionen zu antworten, die auf dem asynchronen E/A-Bus 13 eingeleitet werden.
  • Wie in Fig. 3 gezeigt, empfängt die erste synchrone Zustandsmaschine 50 eine Leitung, die das CLK-Signal 38a führt, sowie eine Leitung, die ein Datenpuffer-Verfügbar- Signal 44a führt, nämlich BUFFER_AVAILABLE. Das Signal BUFFER_AVAILABLE 44a kann ein Signal sein oder ein Satz von Datenpufferstatussignalen von der Steuerlogik 44 in der Gattermatrix 40 (Fig. 2). Die erste synchrone Zustandsmaschine 50 empfängt auch eine Leitung, die ein Mastersignal 34a empfängt, d. h. MASTER, von der Mastersteuervorrichtung 34 (Fig. 1), und Leitungen, die das synchronisierte Datenquittungssignal 36b führen, d. h. SYNCH_AS und SYNCH_DS, und zwar jeweils von der Synchronisiererlogik 36 (Fig. 2). Die Quittungsschaltung 24 der asynchronen Schnittstelle 36b sendet empfangene Versionen von asynchronen Busquittungssignalen zu der Synchronisiererlogik 36 (Fig. 2). Zum Beispiel sind die Signale FB_AS und FB_DS von dem asynchronen E/A-Bus and die Quittungsschaltung 24 gekoppelt, die empfangene Versionen dieser Signale 24a und 24b, d. h. FB_R_AS und FB_R_DS, jeweils an die Synchronisiererlogik 36 sendet (Fig. 2). Die erste synchrone Zustandsmaschine 50 empfängt auch die Codiersignale von der asynchronen Busschnittstelle 20 (Fig. 2). Die erste synchrone Zustandsmaschine empfängt eine Decodierleitung, die ein Signal 22a von der Adressenschaltung 22 empfängt, das angibt, ob die E/A-Vorrichtung 12c eine Bus-Slave- Einrichtung, d. h. SLAVE. Die erste synchrone Zustandsmaschine empfängt auch Decodierleitungen, die Signale 27a und 27b von der Befehlsschaltung 27 empfängt, die den Typ der Transaktion jeweils angeben, d. h. PARTIAL und SPLIT_RESP. Die erste synchrone Zustandsmaschine 50 verwendet diese Signale zum Bestimmen, wenn eine andere Einrichtung als der asynchrone E/A-Bus 13 (Fig. 1) eine Transaktion initiiert.
  • Wie ebenso in Fig. 3 gezeigt ist, liefert die erste synchrone Zustandsmaschine 50 eine Leitung, die ein Datenpuffer-Adreßstrobe-Signal 50a führt, d. h. BUFFER_AS, das durch die Steuerlogik 44 in der Gattermatrix 40 empfangen wird (Fig. 2). Die erste synchrone Zustandsmaschine 50 liefert ferner eine Leitung, die das Signal 50b führt, nämlich NO_CONN_HOLD, das von der ersten asynchronen Zustandsmaschine 51 empfangen wird, sowie ein Leitung, die das Signal 50c führt, nämlich GO, das von der zweiten synchronen Zustandsmaschine 52 empfangen wird. Die erste synchrone Zustandsmaschine 50 liefert ferner Leitungen, die die Signale 50d und 50e führen, nämlich MBX_SEL bzw. LT_MASK, die für bestimmte Transaktionen erforderlich sind, die später genauer beschrieben werden. Diese Signale erlauben der ersten synchronen Zustandsmaschine 50, die erste asynchrone Zustandsmaschine 51 anzuhalten, bis die Adreß- und Befehlsinformationen, die von der Bus-Master-Vorrichtung geliefert werden, aufgenommen und decodiert worden sind, um zu ermitteln, ob die E/A-Vorrichtung eine Bus-Slave- Vorrichtung ist und ob irgendwelche Fehler vorliegen, so daß die E/A-Vorrichtung den geeigneten Verbindungsphasenstatus auf den Leitungen ST< 7 : 0> des asynchronen Busses liefern kann. Die erste synchrone Zustandsmaschine 50 hält ferner die zweite synchrone Zustandsmaschine 52 an, bis der Typ der Transaktion ermittelt worden ist und somit die erste synchrone Zustandsmaschine das GO-Signal 50c setzt.
  • Das Signal BUFFER_AVAILABLE 44a von der Steuerlogik 44 in der Gattermatrix 40 zeigt an, daß ein Datenpuffer in der Bank der Datenpuffer 42a, 42b der Gattermatrix 40 (Fig. 2) verfügbar ist. Alternativ könnte die Slave- Steuervorrichtung 32 die Anzahl der Datenpuffer und deren Verfügbarkeit mit einer (nicht gezeigten) zusätzlichen Schaltung verfolgen, die zusätzliche andere Signale (nicht gezeigt) von der Gattermatrix verwendet. Dieses Beispiel ordnet diese Pufferverfügbarkeitsschaltung in der Gattermatrix an, wodurch die Schaltung für sowohl die Master- als auch die Slave-Steuervorrichtungen 32 bzw. 34 zentralisiert sind. Die große Menge an Schaltung, die in einer Gattermatrix verfügbar ist, kann mehr Flexibilität ermöglichen. Zum Beispiel kann die Schaltung in der Gattermatrix fähig sein, leichter für eine dynamische Änderung der Größe der Datenpuffer zu sorgen, und dergleichen. Der Ausdruck "verfügbar", wie er hier verwendet wird, zeigt an, daß ein Datenpuffer leer ist, so daß er für den Fall eines asynchronen E/A-Bus-Schreibvorgangs, der von einer Bus-Master-Vorrichtung empfangen wird, Daten vom asynchronen E/A-Bus aufnehmen kann, oder daß er im Fall eines asynchronen E/A-Bus-Lesevorgangs, der von einer Bus-Master-Vorrichtung empfangen wird, Daten vom synchronen Systembus aufnehmen kann:
  • Das Signal MASTER 34a wird von der Master-Steuervorrichtung 34 zurückgesetzt, wenn die Master-Steuervorrichtung eine Transaktion auf dem asynchronen E/A-Bus 13 einleitet (Fig. 1 und 2). Das Signal SYNCH_AS 36a und das Signal SYNCH_DS 36b sind synchronisierte Versionen der empfangenen asynchronen E/A-Busadresse und der Datenquittungssignale 24a und 24b, nämlich FB_R_AS bzw. FB_R_DS. Das SLAVE-Signal 22a zeigt an, ob die E/A-Vorrichtung 12c (Fig. 1) eine Bus-Slave-Vorrichtung ist, wobei das PARTIAL-Signal 27a und das SPLIT RESP-Signal 27b anzeigen, welcher Typ von Transaktion eingeleitet worden ist.
  • Das BUFFER AS-Signal 50a kann von der ersten synchronen Zustandsmaschine 50 gesetzt werden, um die Steuerlogik 44 in der Gattermatrix 40 (Fig. 2) zu veranlassen, die Adreß- und Befehlssignale zu verwenden, die von der Adreßschaltung 22 und der Befehlsschaltung 27 der asynchronen Busschnittstelle 20 (Fig. 2) aufgenommen wurden. Im Fall eines Schreibvorgangs wird die Adresse und der Befehl von der Gattermatrixsteuerlogik verwendet, um die von der Bus-Master-Vorrichtung empfangenen Daten in der Bank der Datenpuffer 42a, 42b der Gattermatrix zu speichern, woraufhin die Steuerlogik die Adresse verwendet, um die Daten von der Bank der Datenpuffer zum Hauptspeicher 12b am Systembus 12d zu übertragen (Fig. 1). Im Fall eines Lesevorgangs werden die Adreßinformationen von der Gattermatrixsteuerlogik verwendet, um die erforderlichen Daten vom Hauptspeicher am Systembus zur Bank der Datenpuffer der Gattermatrix zu übertragen, woraufhin die Steuerlogik die Adreß- und Befehlsinformationen verwendet, um die Daten von der Bank der Datenpuffer zum asynchronen E/A-Bus zu übertragen.
  • Das Setzen des NO_CONN_HOLD-Signals 50b zeigt der ersten asynchronen Zustandsmaschine 51 an, daß eine weitere Vorrichtung am asynchronen E/A-Bus eine Transaktion einleitet, daß die Adreß- und Befehlsinformationen am asynchronen E/A-Bus aufgenommen worden sind und wenigstens teilweise decodiert worden sind, so daß der geeignete Verbindungsphasenstatus auf den Leitungen ST< 7 : 0> des asynchronen E/A-Busses plaziert worden sind, und daß ein Datenpuffer in der Bank der Datenpuffer 42a, 42b der Gattermatrix für die Transaktion zur Verfügung steht.
  • In den Zustandsdiagrammen der Fig. 4, 8 und 9 stellen die Ovale Zustände dar, wobei Pfeile, die in die Ovale führen und aus diesen heraus führen, die Pfade darstellen, denen die Zustandsmaschine von einem Zustand zu einem weiteren folgen kann. Ein aus einem Oval herausführender und in das gleiche Oval zurückführender Pfeil zeigt eine Schleifenbedingung an, bei der die Zustandsmaschine in diesem Zustand verharrt, bis eine Zustandsgleichung wahr wird, die der Zustandsmaschine erlaubt, in einen nächsten Zustand überzugehen. Sternchen (*) auf der linken Seite von Signalen, die neben Pfeilen angeordnet sind, die von einem Oval in ein weiteres Oval führen, zeigen an, daß dies Ausgangssignale der Zustandsmaschine sind. Aufwärtsgerichtete und abwärtsgerichtete Pfeile auf der rechten Seite von Ausgangssignalen stellen das Setzen bzw. Zurücksetzen des Zustandsmaschinenausgangssignals dar, wenn die Zustandsmaschine von einem Oval zu einem weiteren Oval wechselt. Die synchronen Zustandsmaschinen 50 und 52 sind hier unter Verwendung herkömmlicher D-Typ-Flip-Flops implementiert, weshalb die Ausgangssignale der Zustandsmaschine, die beim Eintritt in einen Zustand als gesetzt gezeigt sind, automatisch zurückgesetzt werden, wenn sie nicht im nächsten Zustand gesetzt gezeigt sind. Gleichungen neben Pfeilen, die von einem Oval in ein weiteres Oval führen, stellen wenigstens einen Teil der Zustandsgleichung dar, die erfüllt sein muß, um in das Oval, d. h. den Zustand, einzutreten, in das der Pfeil hineinführt. Beide asynchronen Zustandsmaschinen 51 und 53 können in ihren Zustandsgleichungen ferner Gefährdungsterme enthalten, die der Einfachheit halber in den Zustandsdiagrammen nicht enthalten sind. Innerhalb der Zustandsgleichungen stellt AND die Grundfunktion "und" der Booleschen Algebra dar, während OR die Grundfunktion "oder" der Booleschen Algebra darstellt und NOT die Grund-Komplementfunktion der Booleschen Algebra darstellt. Ein von einem Oval in einen Kreis mit einer darin enthaltenen Nummer führender Pfeil ist wenigstens einem weiteren Kreis mit der gleichen enthaltenen Nummer zugeordnet, der einen Pfeil besitzt, der in ein weiteres Oval führt. Diese Kreise mit der gleichen darin enthaltenen Nummer stellen Verbindungen dar, wie wenn jedes Oval mit einem in einen Kreis mit einer darin enthaltenen Nummer führender Pfeil einen Pfeil besitzt, der direkt in das Oval führt, das einen Pfeil von einem die gleiche Nummer enthaltenden Kreis aufnimmt. Die Zustandsdiagramme verwenden diese Kreise, um die Zeichnungen zu vereinfachen.
  • Die Fig. 4 zeigt ein Zustandsdiagramm, das die Operation der ersten synchronen Zustandsmaschine 50 der Fig. 3 darstellt. Die erste synchrone Zustandsmaschine 50 beginnt in einem Zustand Idle_50 und geht in einen Zustand Wait_1 über, wenn die Zustandsgleichung: BUFFER_AVAILABLE 44a AND (NOT_MASTER 34a) AND_SYNCH AS 36a, gültig wird (d. h. das Signal BUFFER_AVAILABLE 44a und das Signal SYNCH_AS 36a sind gesetzt und das Signal MASTER 34a ist zurückgesetzt). Diese Signale zeigen an, daß eine Transaktion am asynchronen E/A-Bus eingeleitet worden ist, daß die E/A-Vorrichtung die Transaktion nicht initiiert, und daß ein Datenpuffer in der Bank der Datenpuffer 42a, 42b der Gattermatrix 40 (Fig. 2) verfügbar ist.
  • Wenn diese erste Zustandsgleichung erfüllt ist, geht die Zustandsmaschine beim nächsten Übergang des CLK-Signals 38a in den Zustand Wait_1 über und setzt das Signal BUFFER_AS 50a. Für den Zustand Wait_1 gibt es keine Zustandsgleichung, weshalb beim nächsten Übergang des CLK-Signals 38a die Zustandsmaschine automatisch in einen Zustand Wait_2 übergeht. Die Zustandsmaschine verharrt in ähnlicher Weise im Zustand Wait_1 für einen Übergang des CLK-Signals und setzt weiterhin das Signal BUFFER_AS 50a. Die Zustände Wait_1 und Wait_2 werden als "Warte"-Zustände bezeichnet, da sie verwendet werden, um in die Operation der Zustandsmaschine Taktzyklusverzögerungen einzufügen. Die Anzahl der Wartezustände kann sich in Abhängigkeit von den speziellen Eigenschaften des Busses und der Schnittstellenvorrichtung, die mit dem Bus verbunden ist, ändern. Die Anzahl der Wartezustände ist in diesem Beispiel größer oder gleich der Zeitperiode gewählt, die für die Adreßschaltung 22 und die Befehlsschaltung 27 der asynchronen Busschnittstelle 20 (Fig. 2) erforderlich ist, um die Adreß- und Befehlssignale, die vom asynchronen E/A-Bus empfangen werden, aufzunehmen und wenigstens teilweise zu decodieren, so daß die (nicht gezeigte) Fehlerschaltung ermitteln kann, ob ein Fehler aufgetreten ist, und die Adreßschaltung 22 ermitteln kann, ob die E/A-Vorrichtung eine Bus-Slave-Vorrichtung ist. Die Zeitperiode reicht aus, um der E/A-Vorrichtung zu ermöglichen, die notwendigen Statusinformationen zu ermitteln und die Statusinformationen auf den Leitungen ST< 7 : 0> zu plazieren, und um der Steuerlogik 44 in der Gattermatrix 40 (Fig. 2) zu ermöglichen, die Adreßinformationen zu nutzen.
  • Vom Zustand Wait_2 geht die erste synchrone Zustandsmaschine 50 in einen Zustand Conn_Hnd über, wo sie das Signal NO_CONN_HOLD 50b für die erste asynchrone Zustandsmaschine 51 (Fig. 3) setzt. Das Setzen des Signals NO_CONN_HOLD 50b erlaubt der ersten asynchronen Zustandsmaschine 51, auf den asynchronen E/A-Bus mit Verbindungsphasenquittungssignalen zu antworten, die später genauer beschrieben werden. Die erste synchrone Zustandsmaschine 50 untersucht anschließend das SLAVE-Signal 22a, das PARTIAL-Signal 27a und das SPILT_RESP-Signal 27b. Das PARTIAL-Signal 27a und das SPLIT_RESP-Signal 27b zeigen zwei Typen von Transaktionen an, die später genauer beschrieben werden. Das SLAVE-Signal 22a zeigt an, daß die E/A-Vorrichtung ein Ziel der aktuellen Transaktion ist. Wenn das SLAVE-Signal 22a zurückgesetzt wird, d. h. es gilt NOT_SLAVE 22a, ist die E/A-Vorrichtung nicht das Ziel der Transaktion, wobei in den Zustand Not Slave übergegangen wird. Die Zustandsmaschine verharrt im Zustand Not_Slave, bis die Transaktion beendet ist, was durch das Zurücksetzen des Signals SYNCH_AS 36a gekennzeichnet ist. Wenn das Signal SYNCH_AS 36a zurückgesetzt wird, geht die erste synchrone Zustandsmaschine 50 in den Zustand Idle_50 über und setzt das Signal NO_CONN_HOLD 50b für die erste asynchrone Zustandsmaschine 51, um der ersten asynchronen Zustandsmaschine 51 zu erlauben, die Trennungsphasenquittungssignale zu behandeln, die später genauer beschrieben werden.
  • Wenn das SLAVE-Signal 22a gesetzt und das PARTIAL-Signal 27a und das SPLIT_RESP-Signal 27b zurückgesetzt sind, d. h. SLAVE 22a AND (NOT PARTIAL 27a) AND (NOT SPLIT RESP 27b) ist erfüllt, ist die Transaktion eine einfache Datenübertragung. Daher geht die erste synchrone Zustandsmaschine 50 in einen Zustand Strt_Data über und setzt das GO-Signal 50c für die zweite synchrone Zustandsmaschine 50, um die Datenübertragungsphase zu beginnen, wie später genauer beschrieben wird. Die erste synchrone Zustandsmaschine 50 verharrt anschließend im Zustand Strt_Data, bis die Transaktion beendet ist, was durch das Zurücksetzen des Signals SYNCH_AS 36a angezeigt wird. Nach dem Zurücksetzen des Signals SYNCH_AS 36a kehrt die Zustandsmaschine in den Zustand Idle_50 zurück, um auf das Einleiten einer weiteren Transaktion zu warten und setzt das Signal NO_CONN_HOLD 50b.
  • Falls erforderlich, kann die erste synchrone Zustandsmaschine 50 Wartezustände hinzufügen, um das Setzen des Signals NO_CONN_HOLD_50b zu verzögern, gefolgt vom Zurücksetzen des Signals SYNCH_AS 36a. Eine Bus-Slave- Vorrichtung, die eine Transaktion aufteilt (was später genauer beschrieben wird), muß z. B. die Trennungsidentifikation der Bus-Master-Vorrichtung in der Trennungsphase aufnehmen, welche die Bus-Master-Vorrichtung auf den Datenleitungen plaziert. Die Bus-Slave-Vorrichtung kann eine zusätzliche Zeitspanne benötigen, um diese Informationen aufzunehmen, als in der Trennungsphase einer abgeschlossenen Transaktion erforderlich ist, wobei die erste synchrone Zustandsmaschine 50 die zusätzliche Zeitspanne liefern kann, indem Wartezustände gefolgt vom Zurücksetzen des Signals SYNCH_AS 36a hinzugefügt werden. Ein zusätzlicher Pfad in der ersten synchronen Zustandsmaschine 50 kann hinzugefügt werden, um diese Situation handzuhaben, so daß andere Transaktionen nicht unnötig verzögert werden.
  • Während der Operation der ersten synchronen Zustandsmaschine 50 zeigt das Setzen des PARTIAL-Signals 27a an, daß außer den für die Datenübertragung gewählten verfügbaren Leitungen, nämlich die Leitungen AD< 31 : 0> und möglicherweise die Leitungen AD< 63 : 32> , D< 255 : 128> und D< 127 : 64> , nur bestimmte Gruppen von acht Leitungen, z. B. AD< 7 : 0> und AD< 31 : 24> von AD< 31 : 0> gültige Daten enthalten. Die erste Datenübertragung in einer Partialtransaktion enthält Daten, die als Datenübertragungsmaske verwendet werden. Die Maske wird in der Schaltung gespeichert, wie z. B. in einem (nicht gezeigten) Register, und während der Transaktion für anschließende Datenübertragungen verwendet. Die Maske ist 32 Bits breit, wobei je des Bit einer Gruppe von acht Leitungen (1 Byte an Daten) entspricht. Zum Beispiel entspricht das Maskenbit 0 den Leitungen AD< 7 : 0> , während das Maskenbit 31 den Leitungen D< 255 : 248> entspricht. Eine Konvention ist eingerichtet, um anzuzeigen, wann eine bestimmte Gruppe von Leitungen, d. h. AD< 7 : 0> ... D< 255 : 248> , ein gültiges Byte an Daten enthält. Die hier verwendete Konvention besteht darin, daß dann, wenn das Maskenbit 0 eine logische 1 ist, "1", die entsprechenden Leitungen, d. h. AD< 7 : 0> , gültige Daten enthalten. Wenn das Maskenbit 0 eine logische 0 ist, "0", sind die Daten nicht gültig.
  • Das Setzen des SPLIT_RESP-Signals 27b zeigt an, daß die Bus-Master-Vorrichtung eine geteilte Antworttransaktion einleitet. Eine geteilte Antworttransaktion ist eine Transaktion, bei der die aktuelle Bus-Master-Vorrichtung auf eine frühere Transaktion antwortet, die von einer weiteren Vorrichtung, d. h. der ursprünglichen Bus- Master-Vorrichtung, die nun die aktuelle Bus-Slave-Vorrichtung ist, eingeleitet wurde. Zum Beispiel kann eine ursprüngliche Bus-Slave-Vorrichtung ermitteln, daß eine beträchtliche Menge an Zeit erforderlich ist, um Daten wiederzugewinnen, die erforderlich sind, um eine Leseanfrage von einer ursprünglichen Bus-Master-Vorrichtung zu bedienen. In einem solchen Fall kann die ursprüngliche Bus-Slave-Vorrichtung die Transaktion vor der Datenübertragungsphase aufteilen, d. h. beenden, so daß andere Vorrichtungen am asynchronen E/A-Bus Transaktionen durchführen können, während die ursprüngliche Bus-Slave-Vorrichtung die angeforderten Daten wiedergewinnt. Wenn die ursprüngliche Bus-Slave-Vorrichtung die angeforderten Daten wiedergewonnen hat, kann sie die Transaktion fortsetzen, indem sie eine geteilte Antworttransaktion einleitet, d. h. die Bus-Master-Vorrichtung wird, und die angeforderten Daten zur aktuellen Bus-Slave-Vorrichtung sendet, d. h. zur ursprünglichen Bus-Master-Vorrichtung.
  • Sowohl eine partielle als auch eine geteilte Antworttransaktion erfordern zusätzliche Maßnahmen zu denjenigen, die für einen einfachen Lesevorgang oder Schreibvorgang erforderlich sind. Die Zustandsmaschine handhabt diese zusätzlichen Maßnahmen durch zusätzliche Zustände. Wenn in der ersten synchronen Zustandsmaschine das Partial-Signal 27a und das SLAVE -Signal 22a gesetzt sind, d. h. SLAVE 22a AND PARTIAL 27a ist während des Zustands Conn_Hnd erfüllt, rückt die Zustandsmaschine zu einem Zustand Partial vor und wartet auf das Setzen des Signals SYNCH_DS 36b von der Synchronisiererlogik 28 (Fig. 2). Wenn das Signal SYNCH_AS 36a im Zustand Partial zurückgesetzt wird, d. h. NOT_SYNCH_AS ist erfüllt, bevor das Signal SYNCH_DS 36b gesetzt wird, ist die Transaktion beendet worden und die Zustandsmaschine setzt das Signal NO_CONN_HOLD 50b und geht in den Zustand Idle_50 über, um auf das Einleiten einer weiteren Transaktion auf dem asynchronen E/A-Bus zu warten. Nach dem Setzen des Signals SYNCH_DS 36b, während sich die Zustandsmaschine im Zustand Partial befindet, geht jedoch die erste synchrone Zustandsmaschine 50 in einen Zustand Lt_Mask über und setzt das Signal LT MASK 50e. Das Signal LT_MASK 50e veranlaßt die (nicht gezeigte) Bytemaskenregisterschaltung, die Bytemaskendaten zwischenzuspeichern. Das Signal LT MASK 50e wird ferner zur zweiten asynchronen Zustandsmaschine 53 gesendet, um der zweiten asynchronen Zustandsmaschine 53 zu ermöglichen, auf dem asynchronen E/A-Bus mit den geeigneten Datenphasenquittungssignalen zu antworten, die später genauer beschrieben werden. Wenn die Zustandsgleichung: SYNCH_AS 36a AND (NOT_SYNCH_DS 36b) gültig wird, geht die Zustandsmaschine anschließend in einen Zustand Wait_3 über. Zwischen dem Zustand Lt Mask und dem Zustand Wait_3 können mehrere Wartezustände eingefügt werden, um die benötigte Schaltung einzustellen und um eine partielle Transaktion zu bewerk stelligen. Wenn die Schaltung bereit ist und die Maskendaten aufgenommen worden sind, geht die erste synchrone Zustandsmaschine 50 in den Zustand Strt Data über und setzt das GO-Signal 50c.
  • Wenn während des Zustands Conn_Hnd in der ersten synchronen Zustandsmaschine 50 das Signal SPLIT_RESP 27b und das SLAVE-Signal 22a gesetzt sind und das PARTIAL-Signal 27a zurückgesetzt ist, d. h. es gilt SLAVE 22a AND (NOT PARTIAL 27a) AND_SPLIT_RESP 27b, geht die Zustandsmaschine in einen Zustand Split über und setzt das MBX SEL- Signal 50d. Das MBX_SEL-Signal 50d wird von der (nicht gezeigten) Schaltung verwendet, um die vorher geteilte Transaktion zu verarbeiten. Es kann eine beliebige Anzahl von Wartezuständen, z. B. der Zustand Wait_4, hinzugefügt werden, um eine ausreichende Zeitspanne zur Vorbereitung einer solchen Schaltung zu ermöglichen. Wenn die Schaltung vorbereitet ist, um auf die geteilte Antworttransaktion zu antworten, geht die erste synchrone Zustandsmaschine 50 in den Zustand Strt Data über und setzt das GO- Signal 50c.
  • Die obenbeschriebene Zustandsmaschine bewerkstelligt einige der vielen Ermittlungen, die durchgeführt werden müssen, wenn die E/A-Vorrichtung 12c (Fig. 1) eine Bus- Slave-Vorrichtung ist. Es kann viele andere Ermittlungen geben, die in der Verbindungsphase einer Transaktion durchgeführt werden, wie z. B. Ermittlungen, die von den Eigenschaften der E/A-Vorrichtung 12c, der Bus-Master- Vorrichtung, und vom asynchronen E/A-Bus 13 abhängen. Zum Beispiel kann die E/A-Vorrichtung 12c eine geteilte Transaktion einleiten, wie oben beschrieben worden ist.
  • Die Implementierung des Protokolls der Verbindungsphase als die erste synchrone Zustandsmaschine 50 schafft eine langsamere Zustandsmaschine, als wenn das Protokoll als eine entsprechende asynchrone Zustandsmaschine implementiert wäre, aufgrund der Notwendigkeit der Synchronisierung des FB_R_AS-Signals 24a, nämlich des SYNCH AS-Signals 36a, und des FB_R_DS-Signals 24b, nämlich des SYNCH DS-Signals 36b, wie oben beschrieben worden ist (Fig. 2). Die erste synchrone Zustandsmaschine 50 kann ferner langsamer sein als eine entsprechende asynchrone Zustandsmaschine, da die synchrone Zustandsmaschine ihren Zustand nicht ändert, bis die geeignete Zustandsgleichung wahr ist und das CLK-Signal 38a wechselt, während eine entsprechende asynchrone Zustandsmaschine den Zustand ändert, sobald die geeignete Zustandsgleichung wahr wird.
  • Eine E/A-Vorrichtung, die zur Verbindung mit einem asynchronen Bus verwendet wird, der ein flexibles Protokoll implementiert, das einer großen Anzahl unterschiedlicher Vorrichtungen erlaubt, optimal zu arbeiten, wie z. B. der FBUS, erfordert, daß die E/A-Vorrichtung viele Ermittlungen durchführt, einschließlich der Ermittlung, ob die E/A-Vorrichtung eine Bus-Slave-Vorrichtung ist, welcher Typ von Transaktion eingeleitet worden ist, und wie diese Transaktion zu behandeln ist. Nachdem diese vielen Ermittlungen durchgeführt worden sind, kann es erforderlich sein, daß die E/A-Vorrichtung auf entsprechende unterschiedliche Arten antwortet. Diese unterschiedlichen Antworten können mittels unterschiedlicher Pfade in einer Zustandsmaschine der E/A-Vorrichtung behandelt werden. Wie vorher erwähnt, erlauben asynchrone Zustandsmaschinen, daß sich pro Zustandsänderung nur ein Zustandsbit ändert. Synchrone Zustandsmaschinen, wie z. B. die erste synchrone Zustandsmaschine 50, sind daher im allgemeinen besser geeignet als eine asynchrone Zustandsmaschine, um unterschiedliche Pfade von einem Zustand zu vielen anderen Zustanden zu implementieren, teilweise aufgrund der Tatsache, daß synchrone Zustandsmaschinen nicht darauf beschränkt sind, pro Zustandsübergang die Änderung nur eines Zustandsbits zu erlauben. Ferner erlaubt eine synchrone Zustandsmaschine auch das einfache Hinzufügen von Wartezuständen zu den vielen Pfaden, d. h. ohne zusätzliche Schaltung, die von der Zustandsmaschine benötigt werden können, um eine ausreichende Zeitspanne zu ermöglichen, damit eine spezielle Schaltung einschwingen kann oder Signale sich durch die spezielle Schaltung fortpflanzen können.
  • Um zu einer asynchronen Zustandsmaschine Wartezustände hinzuzufügen, wäre eine zusätzliche Schaltung erforderlich, z. B. eine Verzögerungslogik, um ein vorheriges Signal zu verzögern. Da ferner die Anzahl der Zustände in einer asynchronen Zustandsmaschine zunimmt, nimmt die Anzahl der Zustandsbits aufgrund der Notwendigkeit, daß nur einem Zustandsbit erlaubt wird, sich pro Zustandsübergang zu ändern, erheblich zu (eine entsprechende synchrone Zustandsmaschine kann weniger Zustandsbits erfordern). Die Anzahl der Gefährdungsterme, die für eine asynchrone Zustandsmaschine erforderlich sind, nimmt · ebenfalls mit der Anzahl der Zustandsbits und der Eingangssignale zu. Wenn das Protokoll der Verbindungsphase als eine entsprechende asynchrone Zustandsmaschine implementiert wird, ist die entsprechende asynchrone Zustandsmaschine im allgemeinen sehr groß, was erheblich mehr Schaltungsaufwand erfordert als die erste synchrone Zustandsmaschine 50, aufgrund der Anforderung, daß nur eine Zustandsbitänderung pro Zustandsübergang erlaubt ist, und ferner aufgrund der Notwendigkeit des Einschließens von Gefährdungstermen in die Zustandsgleichungen, wie oben beschrieben worden ist.
  • Wenn außerdem eine solche asynchrone Zustandsmaschine in schnell programmierbaren Logikmatrixvorrichtungen (PAL- Vorrichtungen) implementiert ist, kann der Übergang der Zustandsmaschine von einem Zustand zu einem weiteren langsamer sein als die Ausbreitungsverzögerung eines einzelnen PAL, aufgrund der Menge der Schaltung, die erforderlich ist, um die asynchrone Zustandsmaschine aufzubauen. Es müssen eventuell eine oder mehrere PALs gestapelt werden, um die Zustandsgleichungen der asynchronen Zustandsmaschine zu implementieren. Der Term "gestapelt" wird hier verwendet, um eine Anordnung zu bezeichnen, in der eine erste PAL eines oder mehrere Signale zu einer zweiten PAL sendet, die dann eines oder mehrere Signale zur ersten PAL oder zu anderen PALs zurücksendet, die ihrerseits möglicherweise Signale zur ersten PAL senden. Jedesmal wenn eine PAL gestapelt wird, um eine Zustandsgleichung zu implementieren, wird zu der Übergangszeit für den entsprechenden Zustand eine PAL- Verzögerung hinzugefügt. Somit erfordert die Implementierung des Protokolls der Verbindungsphase als asynchrone Zustandsmaschine die Verwendung einer großen Anzahl von Logikschaltungen, wobei dann, wenn die asynchrone Zustandsmaschine durch PAL-Vorrichtungen implementiert wird, es erforderlich sein kann, PALs zu stapeln, was die asynchrone Zustandsmaschine verlangsamt, wodurch wenigstens teilweise der angenommene Geschwindigkeitsvorteil der asynchronen Zustandsmaschine gegenüber der ersten synchronen Zustandsmaschine 50 aufgehoben wird.
  • Wie in Fig. 3 gezeigt und vorher erwähnt worden ist, empfängt die erste asynchrone Zustandsmaschine 51 eine Leitung, die das NO_CONN_HOLD-Signal 50b von der ersten synchronen Zustandsmaschine 50 führt. Die erste asynchrone Zustandsmaschine 51 empfängt ferner eine Leitung, die das FB_R_AS-Signal 24a von der Adreßschaltung 22 der asynchronen Busschnittstelle 20 führt (Fig. 2). Das FB_R_AS-Signal 24a ist eine empfangene Version des FB_AS- Signals auf dem asynchronen E/A-Bus, im Gegensatz zur gesendeten Version, nämlich FB_T_AS 34b, die von der Master-Steuervorrichtung 34 (Fig. 2) gesetzt wird, wenn die E/A-Vorrichtung 12c die Bus-Master-Vorrichtung ist. Die erste asynchrone Zustandsmaschine 51 erzeugt eine Leitung, die ein Signal 51a führt, nämlich FB_T_AK, die die gesendete Version des asynchronen Adreßbestätigungssignals ist, nämlich FB_AK, auf dem asynchronen E/A-Bus. Die erste asynchrone Zustandsmaschine 51 erzeugt ferner eine Leitung, die ein Signal 51b führt, nämlich FB_T_AI, das die Sendeversion des asynchronen Adreßbestätigungsumkehrsignals ist, nämlich FB_AI. Sowohl das FB_T_AK-Signal 51a als auch das FB_T_AI-Signal 51b werden zur Quittungsschaltung 22 der asynchronen Busschnittstelle 20 für die Übertragung auf dem asynchronen E/A-Bus als das FB_AI- Signal bzw. das FB_AK-Signal gesendet.
  • In Fig. 5 ist ein Zustandsdiagramm gezeigt, das die Operation der ersten asynchronen Zustandsmaschine 51 der Fig. 3 zeigt. Die erste asynchrone Zustandsmaschine 51 beginnt in einem Zustand Idle_51 mit dem zurückgesetzten Signal FB_T_AK 51a und dem gesetzten Signal FB_T_AI 51b. Die Zustandsmaschine geht in den Zustand Idle_51 über, wenn das Signal NO_CONN_HOLD 50b von einer vorangehenden Transaktion zurückgesetzt ist, und geht in einen Zustand Wt_Sync_1 über, wenn das FB_R AS-Signal 24a gesetzt ist, was eine neue Transaktion anzeigt. Die erste asynchrone Zustandsmaschine 51 wartet im Zustand Wt Sync 1, bis die erste synchrone Zustandsmaschine 50 das NO_CONN_HOLD- Signal 50b setzt. Nach dem Erfassen des Setzens des NO_CONN_HOLD-Signals 50b geht die erste asynchrone Zustandsmaschine 51 in den Zustand Wait End über und beendet die Verbindungsphasenquittungssignale auf dem asynchronen Bus durch Setzen des Signals FB_T_AK 51a, während das FB_T_AI-Signal 51b weiterhin gesetzt bleibt. Wie oben beschrieben worden ist, setzt die erste synchrone Zustandsmaschine 50 das NO_CONN_HOLD-Signal 50b, nachdem die Adreß- und Befehlsinformationen, die auf dem asynchronen E/A-Bus 13 (Fig. 1) geliefert werden, aufgenommen worden sind und der geeignete Verbindungsphasenstatus auf den Leitungen ST< 7 : 0> des asynchronen E/A-Busses plaziert worden sind. Obwohl die erste asynchrone Zustandsmaschine 51 das Setzen des FB_R_AS-Signals 24a empfängt, bevor die erste synchrone Zustandsmaschine 50 das Setzen des entsprechenden Signals, SYNCH_AS_36a, empfängt, wird die erste asynchrone Zustandsmaschine 51 angehalten, d. h. sie ist nicht fähig, in den Zustand Wait End einzutreten und das Verbindungsphasenprotokoll abzuschließen, durch die Verwendung des NO_CONN_HOLD-Signals 50b, bis die Adreß- und Befehlsinformationen, die auf dem asynchronen E/A-Bus geliefert werden, aufgenommen worden sind und wenigstens teilweise von der ersten synchronen Zustandsmaschine 50 decodiert worden sind.
  • Die erste asynchrone Zustandsmaschine 51 verharrt im Zustand Wait End, bis die asynchrone E/A-Bus-Transaktion beendet ist, die durch das Zurücksetzen des FB_R_AS- Signals 24a gekennzeichnet ist. Die Zustandsmaschine geht anschließend in einen Zustand Wt_Sync_2 über und setzt das FB_T_AI-Signal 51b, während weiterhin das FB_T_AK- Signal 51a gesetzt bleibt. Nach dem Setzen des NO_CONN_HOLD-Signals 50b durch die erste synchrone Zustandsmaschine 50, während sich die erste asynchrone Zustandsmaschine 51 im Zustand Wt_Sync_2 befindet, geht die erste asynchrone Zustandsmaschine in den Zustand Idle_51 über, um auf eine weitere asynchrone E/A-Bus- Transaktion zu warten, und setzt das FB_T_AK-Signal 51a zurück, während das FB_T_AI-Signal 51b weiter gesetzt bleibt. Wie oben beschrieben worden ist, setzt die erste synchrone Zustandsmaschine 50 das NO_CONN_HOLD-Signal 50b, nachdem die von der Bus-Master-Vorrichtung auf den Datenleitungen gesendeten Trennungsphasendaten aufgenommen worden sind, falls erforderlich, und nachdem der Status auf den Leitungen ST< 7 : 0> plaziert worden ist.
  • Die erste asynchrone Zustandsmaschine 51 ist hier eine einfache Zustandsmaschine, die vier Zustände umfaßt. Die Anforderung, daß sich nur ein Zustandsbit pro Zustandsübergang ändern darf, beeinflußt somit nicht die Anzahl der Zustandsbits, die zum Implementieren der asynchronen Zustandsmaschine erforderlich sind. Zum Beispiel können die Zustände der ersten asynchronen Zustandsmaschine 51 durch zwei Zustandsbits dargestellt werden, nämlich Y0 und Y1. Die Zustandsbits Y0, Y1 können intern von der Schaltung der Zustandsmaschine verwendet werden, oder es können die Logikpegel der Bits auf (nicht gezeigten) Ausgangsleitungen der Zustandsmaschine geführt werden, so daß sie von einer anderen Schaltung verwendet werden. Durch Zulassen nur einer Bitänderung pro Zustandsübergang durch Verwendung einer sogenannten "Gray"-Codierung können die Zustandsbits Y0, Y1 für den Zustand Idle_51 gleich "00" sein, d. h. 0 stellt ein zurückgesetztes Zustandsbit dar, während 1 ein gesetztes Zustandsbit darstellt, wobei die Zustände Wt_SYNCH_1, Wait End und wt_Sync_2 durch die Zustandsbits Y0, Y1 gleich "01", "11" bzw. "10" dargestellt werden können. Es sind keine zusätzlichen Zustandsbits erforderlich, um die vier Zustände der ersten asynchronen Zustandsmaschine zu implementieren, während pro Zustandsübergang weiterhin nur einem Zustandsbit erlaubt wird, sich zu ändern.
  • In Fig. 6 ist eine Wahrheitstabelle gezeigt, die der ersten asynchronen Zustandsmaschine 51 der Fig. 3 und 5 entspricht. Eine "0" oder eine "1" in der Wahrheitstabelle der Fig. 6 stellt ein zurückgesetztes bzw. ein gesetztes Bit dar. Ein "X" in der Wahrheitstabelle stellt ein "Bedeutungslos"-Bit dar, d. h. dieses Bit ist bezüglich der Ausgänge der Zustandsmaschine unerheblich. Die ersten und zweiten Spalten stellen die aktuellen Setzpegel der Zustandsbits Y0 und Y1 der Zustandsmaschine dar. Zum Beispiel stellt Y0, Y1 gleich "00" dar, daß die erste asynchrone Zustandsmaschine sich momentan im Zustand Idle_51 befindet, während "01" den Zustand Wt_Sync_1 darstellt, "11" den Zustand Wait End darstellt und "1" den Zustand Wt Sync 2 darstellt (Fig. 5). Die dritte Spalte der Wahrheitstabelle stellt den Setzpegel des FB_R_AS-Signals 24a dar, während die vierte Spalte den Setzpegel des NO_CONN_HOLD-Signals 50b darstellt. Die fünften und sechsten Spalten der Wahrheitstabelle stellen die nächsten Zustandsetzpegel der Zustandsbits Y0 und Y1 der Zustandsmaschine dar, nämlich Y0' und Y1'. Die siebte Spalte stellt den Setzpegel des Ausgangssignals FB_T_AK 51a der ersten asynchronen Zustandsmaschine 51 dar, während die achte Spalte den Setzpegel des Ausgangssignals FB_T_AI 51b darstellt.
  • Die nächsten Zustandsbits Y0' und Y1' (Spalten 5 und 6) und die Zustandsmaschinenausgangssignale FB_T_AK 51a und FB_T_AI 51b (Spalten 7 und 8) werden bestimmt aus den aktuellen Zustandsbits Y0 und Y1 (Spalten 1 und 2) und den Zustandsmaschineneingangssignalen FB_R_AS 24a und NO_CONN_HOLD 50b (Spalten 3 und 4) entsprechend dem in Fig. 5 gezeigten Zustandsdiagramm. Zum Beispiel zeigt die zweite Zeile der Wahrheitstabelle der Fig. 6, daß der aktuelle Zustand der Zustand Idle_51 ist, d. h. die Zustandsbits Y0 und Y1 sind gleich "00", das FB_R AS- Signal 24a zurückgesetzt ist und das NO_CONN_HOLD-Signal 50b unerheblich ist, d. h. "X". Das in Fig. 5 gezeigte Zustandsdiagramm zeigt an, daß bei diesen gegebenen Bedingungen die erste asynchrone Zustandsmaschine 51 in den Zustand Wt_Sync_1 übergeht, der mit Y0' und Y1' in den fünften und sechsten Spalten der Zeile 2 gleich "01" dargestellt wird, und das FB_T_AK-Signal 51a und das FB_T_AI-Signal 51b setzt, was in den Spalten 7 und 8 der Zeile 2 mit "11" gezeigt ist.
  • In Fig. 7 ist ein Karnaugh-Diagramm gezeigt, das die Bedingungen zeigt, unter denen das Ausgangssignal FB_T_AK 51a der asynchronen Zustandsmaschine 51 gemäß der Wahrheitstabelle der Fig. 6 gesetzt wird. Eine "1" im Karnaugh-Diagramm stellt eine Bedingung dar, bei der das FB_T_AK-Signal 51a gesetzt wird, während eine "0" zeigt, daß das FB_T_AK-Signal 51a nicht gesetzt wird. Mit dem Karnaugh-Diagramm kann die Gleichung für das Signal FB_T_AK 51a ermittelt werden. Für eine entsprechende synchrone Zustandsmaschine wäre die Gleichung nach der Termreduktion: [{(NOT Y0) AND FB_R_AS 24a} OR {Y0 AND Y1} OR {Y0 AND (NOT FB_R_AS 24a) AND NOT NO CONN HOLD 50b}]. Die drei Terme dieser Gleichung, die durch die "OR"- Funktion getrennt sind, sind gezeigt durch die drei Gruppierungen der "Einsen", die durch durchgezogene Linien im Karnaugh-Diagramm der Fig. 7 verbunden sind. Es ist jedoch notwendig, den Gefährdungsterm: OR {Y1 AND FB_R_AS 24a}, hinzuzufügen, der durch die Gruppierung von "Einsen" gezeigt ist, die im Karnaugh-Diagramm der Fig. 7 für die erste asynchrone Zustandsmaschine 51 mittels gestrichelter Linien verbunden sind. Wie vorher erwähnt worden ist, verhindert das Hinzufügen von Gefährdungstermen zu den Ausgangsgleichungen und Zustandsgleichungen von asynchronen Zustandsmaschinen, daß eine Störspitze auf einem Eingangssignal der Zustandsmaschine oder einem Zustandsbit die asynchrone Zustandsmaschine veranlaßt, in einen falschen Zustand überzugehen. Ähnliche Karnaugh- Diagramme für die Erzeugung der Gleichungen einschließlich der Gefährdungsterme für das Zustandsmaschinenausgangssignal FB_T_AI 51b und für die Zustandsbits Y0 und Y1 der ersten asynchronen Zustandsmaschine 51 können aus der Wahrheitstabelle der Fig. 6 erzeugt werden.
  • Eine entsprechende synchrone Zustandsmaschine, die so beschaffen ist, daß sie in der gleichen Weise arbeitet wie die erste asynchrone Zustandsmaschine 51, würde nur insofern weniger Schaltung erfordern, als der Gefährdungsterm nicht erforderlich wäre. Synchrone Zustandsmaschinen können jedoch nur den Zustand ändern, wenn die Zustandsgleichung wahr ist und das CLK-Signal 38a wechselt. Andererseits antwortet die asynchrone Zustandsmaschine 51 sofort, d. h. sobald die Verzögerung durch die Schaltung der Zustandsmaschine es zuläßt, auf das Setzen des FB_R_AS-Signals 24a durch Setzen des FB_T_AK-Signals 51a und antwortet ferner sofort auf das Setzen des NO CONN HOLD-Signals 50b entweder durch Zurücksetzen des FB_T_AI-Signals 51b oder durch Zurücksetzen des FB_T_AK- Signals 51a. Dementsprechend ist die erste asynchrone Zustandsmaschine 51 deutlich schneller als eine entsprechende synchrone Zustandsmaschine, da die asynchrone Zustandsmaschine in einen nächsten Zustand übergeht, sobald die Zustandsgleichung wahr wird.
  • Die erste asynchrone Zustandsmaschine 51 wird hier verwendet, um die Verbindungsphasenquittungssignale als Antwort auf nur einige Eingangssignale zu erzeugen. Die vielen Ermittlungen, die während der Verbindungsphase erforderlich sind, werden von der ersten synchronen Zustandsmaschine 50 bewerkstelligt, die anschließend der ersten asynchronen Zustandsmaschine 51 erlaubt, schnell auf die Verbindungsphasenquittungssignale zu antworten, sobald die Ermittlungen abgeschlossen sind. Die Einsparungen, die durch die geringe Vergrößerung der Schaltung, die erforderlich ist, um die Zustandsmaschine 51 asynchron zu implementieren, erreicht werden, reichen hier nicht aus, um den Verlust an Geschwindigkeit zu rechtfertigen, der bei der Verwendung einer synchronen Zustandsmaschine auftreten würde.
  • Wie in Fig. 3 gezeigt, empfängt die zweite synchrone Zustandsmaschine 52 zusätzlich zum GO-Signal 50c von der ersten synchronen Zustandsmaschine 50 eine Leitung, die das Signal 27c führt, nämlich READ, von der Befehlsschaltung 27 der asynchronen Schnittstelle 20 (Fig. 2). Das READ-Signal 27c ist ein Befehlsdecodierungssignal, das dann, wenn es gesetzt ist, anzeigt, daß die Bus-Master- Vorrichtung eine Lesetransaktion anfordert, und dann, wenn es zurückgesetzt ist, anzeigt, daß die Bus-Master- Vorrichtung eine Schreibtransaktion anfordert. Die zweite synchrone Zustandsmaschine 52 empfängt ferner Leitungen, die das SYNCH_AS-Signal 36a und das SYNCH_DS-Signal 36b führen, sowie Leitungen von der zweiten asynchronen Zustandsmaschine 53, die ein Zustandsbitsignal 53a führen, nämlich 50, und ein Signal 53c, nämlich FLO_THRU. Die zweite synchrone Zustandsmaschine 52 empfängt ferner das CLK-Signal 38a, wie oben erwähnt worden ist.
  • Außerdem empfängt die zweite synchrone Zustandsmaschine 52 eine Leitung, die ein Puffer-Bereit-Signal 44b von der Steuerlogik 44 in der Gattermatrix 40 (Fig. 2) führt, nämlich BUFFER_READY. Ähnlich wie das Signal BUFFER_AVAILABLE 44a, das der Steuerlogik 44 zur ersten synchronen Zustandsmaschine 50 gesendet wird, kann die Puffer-Fertig-Schaltung, die das BUFFER_READY-Signal 44b erzeugt, in der Slave-Steuervorrichtung 32 angeordnet sein (Fig. 2), wobei zusätzliche Signale von der Gattermatrix zur Slave-Steuervorrichtung gesendet werden. In diesem Beispiel ist die Puffer-Fertig-Schaltung (nicht gezeigt) wiederum in der Steuerlogik 44 der Gattermatrix 40 angeordnet, um eine zentrale Anordnung der Schaltung zu ermöglichen und die Flexibilität zu schaffen, den die große Schaltungsmenge bietet, die in der Gattermatrix zur Verfügung steht. Das Signal BUFFER_READY 44b wird verwendet, um anzuzeigen, daß ein Datenpuffer in der Bank der Datenpuffer 42a, 42b in der Gattermatrix 40 bereit ist. Der Ausdruck "bereit", wie er hier verwendet wird, zeigt an, daß ein Datenpuffer im Fall eines von der Bus-Master- Vorrichtung eingeleiteten Lesevorgangs aus dem Hauptspei cher wiedergewonnene Daten enthält, die zum asynchronen E/A-Bus gesendet werden sollen.
  • Die zweite synchrone Zustandsmaschine 52 schafft mehrere Leitungen, die Signale führen, die das FORCE_LT-Signal 52a enthalten, das verwendet wird, um die Adreßschaltung 22 und die Datenschaltung 28 der asynchronen Schnittstelle 20 zu steuern (Fig. 2). Das FORCE_LT-Signal 52a kann ein Signal oder eine Gruppe von Signalen sein, die so beschaffen sind, daß sie Sendeempfänger in der Adreßschaltung 22 und der Datenschaltung 28 während des ersten Datentaktes einer Transaktion steuern (oder während des zweiten Datentaktes, wenn die Transaktion eine Partial- Transaktion ist). Das FORCE_LT-Signal 52a kann ferner verwendet werden, um anschließende Datentakte zu übertragen, die in eine erste Stelle eines Datenpuffers in der Bank der Datenpuffer 42a, 42b der Gattermatrix 40 (Fig. 2) während einer Transaktion geladen oder daraus wiedergewonnen werden. Die zweite synchrone Zustandsmaschine 52 erzeugt ferner ein Signal 52b, nämlich FETCH, das zur Steuerlogik 44 in der Gattermatrix 40 gesendet wird, um die Steuerlogik zu veranlassen, einen Datenpuffer oder mehrere Daten über die Systembusschnittstelle 46 der Gattermatrix 40 aus dem Hauptspeicher 12b am Systembus 12d (Fig. 1) auszulesen. Schließlich erzeugt die zweite synchrone Zustandsmaschine 52 ein Signal 52d, das verwendet wird, um die Transaktionssteuerung auf die zweite asynchrone Zustandsmaschine 53 zu übertragen, nämlich SET_FLO_THRU.
  • Mit diesen Signalen setzt die erste synchrone Zustandsmaschine 50 das Signal NO_CONN_HOLD 50b zurück, was der ersten asynchronen Zustandsmaschine 51 erlaubt, das FB_T_AK-Signal 51a und das FB_T_AI-Signal 51b als Antwort auf die Verbindungsphasenquittungssignale, die von der Bus-Master-Vorrichtung bei Bedarf über den asynchronen Bus 13 gesendet werden, zu erzeugen. Gleichzeitig hiermit gibt die erste synchrone Zustandsmaschine 50 die Steuerung der Transaktion an die zweite synchrone Zustandsmaschine 52 weiter. Die zweite synchrone Zustandsmaschine 52 antwortet auf einen Anfangsabschnitt der Datenübertragungsphase einer Transaktion, bevor die Transaktionssteuerung an die zweite asynchrone Zustandsmaschine 53 weitergegeben wird, die Signale erzeugt, die zur Quittungsschaltung 24 der asynchronen Schnittstelle 20 gesendet werden, um die aktuellen Datenphasenquittungssignale auf den asynchronen E/A-Bus 13 zu liefern. In einer Ausführungsform der Erfindung beendet die zweite asynchrone Zustandsmaschine 53 die Datenübertragungsphase der Transaktion, indem sie alle Datentakte überträgt, die von der Bus-Master-Vorrichtung zwischen der E/A-Vorrichtung und dem asynchronen Bus eingeleitet worden sind. Ein Datentakt ist eine Übertragung von Daten zwischen zwei Vorrichtungen am asynchronen Bus über die Datenleitungen des asynchronen Busses, nämlich AD< 31 : 0> und möglicherweise AD< 63 : 32> , D< 127 : 64> und D< 255 : 128> . In einer weiteren Ausführungsform der Erfindung, die hier beschrieben wird, überträgt die zweite asynchrone Zustandsmaschine 53 Datentakte zwischen der E/A-Vorrichtung und dem asynchronen Bus, bis ein Datenpuffer in der Bank der Datenpuffer 42a, 42b der Gattermatrix 40 (Fig. 2) gefüllt (Schreibvorgang) oder geleert (Lesevorgang) ist, woraufhin sie die Steuerung der Transaktion an die zweite synchrone Zustandsmaschine 52 zurückgibt. Die zweite synchrone Zustandsmaschine 52 gibt anschließend die Transaktionssteuerung an die zweite asynchrone Zustandsmaschine 53 zurück, gefolgt von der Übertragung des anschließenden Datentaktes zu einer ersten Stelle in einem Datenpuffer (Lesevorgang) oder aus einer ersten Stelle in einem Datenpuffer (Schreibvorgang).
  • In Fig. 8 ist ein Zustandsdiagramm gezeigt, das die Operation der zweiten synchronen Zustandsmaschine 52 der Fig. 3 darstellt. Die zweite synchrone Zustandsmaschine 52 beginnt in einem Zustand Idle_52 und kann in einen Zustand Write oder einen Zustand Read übergehen. Wenn die Zustandsgleichung: GO 50c AND (NOT READ 27c) erfüllt ist, geht die zweite synchrone Zustandsmaschine 52 in den Zustand Write über. Die zweite synchrone Zustandsmaschine 52 geht in den Zustand Write über, nach dem Setzen des GO-Signals 50c durch die erste synchrone Zustandsmaschine 50, wenn die Bus-Master-Vorrichtung eine Schreibtransaktion einleitet, d. h. das READ-Signal 27c zurückgesetzt ist. Wenn das SYNCH AS-Signal 36a zurückgesetzt ist, d. h. NOT_SYNCH AS 36a ist erfüllt, während sich die zweite synchrone Zustandsmaschine im Zustand Write befindet, kehrt die Zustandsmaschine in den Zustand Idle_52 zurück. Wenn jedoch die Zustandsgleichung: SYNCH_AS 36a AND BUFFER_AVAILABLE 44a AND(SYNCH DS 36b AND (NOT 50 53a) OR (NOT_SYNCH DS 36b) AND 50 53a) erfüllt ist oder gültig wird, während sich die Zustandsmaschine im Zustand Write befindet, geht die Zustandsmaschine in einen Zustand 1st_Db über und setzt das FORCE_LT-Signal 52a.
  • Das Setzen des SYNCH_DS-Signals 36b, während das S0- Zustandsbitsignal 53a der zweiten asynchronen Zustandsmaschine 53 zurückgesetzt ist (SYNCH DS 36b AND (NOT 50 53a) ist gültig), zeigt den Beginn eines ungeraden Datentaktes an. Das Zurücksetzen des SYNCH DS-Signals 36b, während das 50-Zustandsbitsignal 53a der zweiten asynchronen Zustandsmaschine 53 gesetzt ist ((NOT SYNCH_DS 36b) AND NOT 50 53a ist gültig), zeigt den Beginn eines geraden Datentaktes an. Beide Bedingungen werden mit Bezug auf die zweite asynchrone Zustandsmaschine 53 genauer beschrieben. Wenn eine der obengenannten Bedingungen wahr ist und das SYNCH_AS-Signal 36a gesetzt ist, antwortet die zweite synchrone Zustandsmaschine 52 durch Setzen des FORCE_LT-Signals 52a, das während einer Schreibtransaktion die Sendeempfänger in der Datenschaltung 28 der asynchronen Schnittstelle 20 (Fig. 2) veranlaßt, während des ersten Datentaktes auf dem asynchronen E/A-Bus Daten zu empfangen.
  • Bei den meisten Transaktionen antwortet die zweite synchrone Zustandsmaschine 52 auf den ersten ungeraden Datentakt,. d. h. SYNCH_DS 36b AND (NOT 50 53a) ist erfüllt. In dem Fall einer Partial-Transaktion jedoch antwortet die erste synchrone Zustandsmaschine 50 auf den ersten ungeraden Datentakt, der die Maskendaten führt, weshalb die zweite synchrone Zustandsmaschine 52 auf einen ersten geraden Datentakt antwortet, d. h. (NOT SYNCH_DS 36b) AND 50 53a ist erfüllt. Die zweite synchrone Zustandsmaschine 52 muß nicht prüfen, ob das BUFFER_AVAILABLE-Signal 44b gesetzt ist, um auf den ersten Datentakt (ungerade oder gerade) einer Schreibtransaktion zu antworten, da in dem Setzen des GO-Signals 50c von der ersten synchronen Zustandsmaschine 50 impliziert ist, das ein Datenpuffer zur Verfügung steht. Das GO-Signal 50c wird nicht gesetzt, solange nicht das BUFFER_AVAILABLE-Signal 44a gesetzt ist, was anzeigt, daß ein Datenpuffer in der Bank der Datenpuffer 42a, 42b in der Gattermatrix 40 (Fig. 2) verfügbar ist, um die vom asynchronen E/A-Bus 13 oder vom synchronen Systembus 12d (Fig. 1) empfangenen Daten zu speichern. Als Antwort auf jeden Datentakt, der in einer ersten Stelle in einem nachfolgenden Datenpuffer zu speichern ist, muß jedoch die zweite synchrone Zustandsmaschine 52 nicht prüfen, ob ein Datenpuffer bereit ist, um die zusätzlichen Daten zu speichern, d. h. das BUFFER_AVAILABLE-Signal 44a ist gesetzt.
  • Wenn während des Zustands Idle_52 die Zustandsgleichung: GO 50c AND READ 27c erfüllt ist oder erfüllt wird, geht die zweite synchrone Zustandsmaschine 52 in einen Zustand wt Read über. Die zweite synchrone Zustandsmaschine 52 geht in den Zustand Wt Read über, nach dem Setzen des GO- Signals 50c durch die erste synchrone Zustandsmaschine 50, wenn die Bus-Master-Vorrichtung eine Lesetransaktion einleitet, d. h. das READ-Signal 27c gesetzt ist. Der Zustand Wt Read ist ein Wartezustand, während dem die Datenschaltung 28 der asynchronen Schnittstelle 20 (Fig. 2) vorbereitet wird, um Daten auf den asynchronen Bus zu legen (die Anzahl der Wartezustände kann in Abhängigkeit von den Eigenschaften der asynchronen Schnittstelle schwanken).
  • Die zweite synchrone Zustandsmaschine 52 geht vom Zustand Wt_Read beim nächsten Übergang des CLK-Signals 38a automatisch in den Zustand Read über. Wenn das SYNCH_AS- Signal 36a zurückgesetzt wird, d. h. es gilt NOT_SYNCH_AS 36a, während sich die zweite synchrone Zustandsmaschine im Zustand Read befindet, geht die Zustandsmaschine in den Zustand Idle_52 zurück. Wenn jedoch die Zustandsgleichung: SYNCH_AS 36a AND BUFFER_READY 44b AND (SYNCH_DS 36b AND (NOT S0 53a) OR (NOT SYNCH_DS 36b) AND 50 53a) gültig wird, während sich die Zustandsmaschine im Zustand Read befindet, geht die Zustandsmaschine in den Zustand ist Db über und setzt das Signal FORCE LT 52a. Diese Zustandsgleichung ist der Zustandsgleichung ähnlich, die gültig sein muß, damit die Zustandsmaschine vom Zustand Write in den Zustand 1st_Db übergeht, mit der Ausnahme, daß diese Zustandsgleichung erfordert, daß das BUFFER_READY-Signal 44b gesetzt ist.
  • Während einer Lesetransaktion wartet die zweite synchrone Zustandsmaschine 52, bis die Systembusschnittstellenlogik 46 in der Gattermatrix 40 (Fig. 2) die erforderlichen Daten vom Hauptspeicher 12b wiedergewonnen hat und wenigstens einen Datenpuffer in der Bank der Datenpuffer 42a, 42b der Gattermatrix 40 mit den benötigten Daten gefüllt hat, bevor sie das FORCE_LT-Signal 52a setzt. Während einer Lesetransaktion wird das FORCE LT-Signal 52a verwendet, um die Sendeempfänger in der Adreßschaltung 22 und der Datenschaltung 28 der asynchronen Schnittstelle 20 (Fig. 2) zu veranlassen, die zu sendenden Daten mit dem ersten Datentakt (ungerade oder gerade) auf den asynchronen E/A-Bus zu senden.
  • Nach dem Zustand ist Db enthält das Zustandsdiagramm der Fig. 8 die Wartezustände Wait_6 und Wait_7. Diese Wartezustände werden hier hinzugefügt, um der E/A-Vorrichtung zu erlauben, im Fall einer Lesetransaktion Daten aus der Bank der Datenpuffer 42a, 42b in der Gattermatrix 40 (Fig. 2) auf den asynchronen E/A-Bus zu legen, oder um der E/A-Vorrichtung zu erlauben, im Fall einer Schreibtransaktion Daten vom asynchronen E/A-Bus wiederzugewinnen und die Daten in einen Datenpuffer in der Bank der Datenpuffer 42a, 42b in der Gattermatrix 40 zu laden (die Anzahl der Wartezustände kann in Abhängigkeit von den Eigenschaften des asynchronen E/A-Busses, der asynchronen Schnittstelle 20 und der Gattermatrix 40 variieren).. Wenn die Daten im Fall eines Lesevorgangs auf den asynchronen E/A-Bus gelegt worden sind und gültig sind, oder wenn die Daten im Fall eines Schreibvorgangs in einen Datenpuffer geladen worden sind, geht die zweite synchrone Zustandsmaschine 52 in den Zustand Async_Db über und setzt das SET_FLO_THRU-Signal 52d. Die zweite asynchrone Zustandsmaschine setzt das Signal FLO THRU 53c unverzüglich auf das Erfassen des Setzens des Signals SET_FLO_THRU 52d hin. Die zweite synchrone Zustandsmaschine 52 empfängt das Setzen des FLO THRU-Signals 53c vor dem nächsten Übergang des CLK-Signals 38a. Das Setzen des SET_FLO_THRU-Signals 52d erlaubt der zweiten asynchronen Zustandsmaschine 53, die Übertragung des Datentaktes (ungerade oder gerade) abzuschließen und auf die anschließenden Datentakte in der Transaktion zu antworten. Dies wird mit Bezug auf die zweite asynchrone Zustandsmaschine 53 im folgenden genauer beschrieben.
  • Wenn während des Zustands Async Db die Transaktion endet, gekennzeichnet durch das Zurücksetzen des SYNCH_ AS-Signals 36a, kehrt die zweite synchrone Zustandsmaschine 52 in den Zustand Idle_52 zurück. Andernfalls verharrt die zweite synchrone Zustandsmaschine 52 im Zustand Async Db, bis die zweite asynchrone Zustandsmaschine 53 die Transaktionssteuerung an die zweite synchrone Zustandsmaschine 52 zurückgibt, indem sie das FLO_THRU-Signal 53c zurücksetzt, d. h. NOT FLO_THRU 53c gilt. Die zweite asynchrone Zustandsmaschine 53 kann die Transaktionssteuerung an die zweite synchrone Zustandsmaschine 52 zurückgeben, wenn ein Datenpuffer in der Bank der Datenpuffer 42a, 42b in der Gattermatrix 40 (Fig. 2) gefüllt oder geleert worden ist, in Abhängigkeit davon, ob die Transaktion eine Lesetransaktion oder eine Schreibtransaktion war. Mit dem Zurücksetzen des FLO THRU-Signals 53c kann die zweite synchrone Zustandsmaschine 52 entweder in den Zustand Write oder in den Zustand Next_Buf übergehen.
  • Im Fall eines Schreibvorgangs, d. h. NOT READ 27c ist erfüllt, geht die zweite synchrone Zustandsmaschine 52 von Zustand Async_Db in den Zustand Write über und wartet auf das Setzen des BUFFER_AVAILABLE-Signals 44a und auf den Anfang des nächsten Datentaktes. Die zweite synchrone Zustandsmaschine 52 muß prüfen, ob ein Datenpuffer in der Bank der Datenpuffer 42a, 42b leer ist (verfügbar ist), und somit Daten vom asynchronen E/A-Bus annehmen kann, bevor sie fortfährt, um den nächsten Datentakt in einer Schreibtransaktion anzunehmen. Somit wartet die zweite synchrone Zustandsmaschine 52 auf das Setzen des BUFFER_AVAILABLE-Signals 44a.
  • Im Fall eines Lesevorgangs, d. h. das READ-Signal 27c ist gesetzt, geht die zweite synchrone Zustandsmaschine 52 vom Zustand Async_Db in den Wartezustand Next_Buf über und setzt das FETCH-Signal 52b. In einer Ausführungsform der Erfindung veranlaßt das FETCH-Signal 52b die Steuerlogik 44 in der Gattermatrix 40 (Fig. 2), einen vorher gefüllten Datenpuffer in der Bank der Datenpuffer 42a, 42b in der Gattermatrix 40 zu veranlassen, die Daten der asynchronen Schnittstelle 20 zuzuführen, und die Systembusschnittstellenlogik 46 zu veranlassen, die anschließend erforderlichen Daten aus dem Hauptspeicher 12b (Fig. 1) wiederzugewinnen, um den gerade geleerten Datenpuffer zu füllen. In einer weiteren Ausführungsform der Erfindung, in der nur ein Datenpuffer oder die Datenpuffer nicht mit Daten gefüllt sind, bevor diese benötigt werden, veranlaßt das FETCH-Signal 52b die Steuerlogik 44 in der Gattermatrix 40, die Systembusschnittstellenlogik 46 zu veranlassen, die anschließend erforderlichen Daten aus dem Hauptspeicher 12b wiederzugewinnen, um den Datenpuffer zu füllen. Diese zweite Ausführungsform kann mehr Zeit erfordern, aufgrund der Notwendigkeit, daß die Systembusschnittstellenlogik 46 die erforderlichen Daten wiedergewinnen muß. Beim nächsten Übergang des CLK-Signals geht die zweite synchrone Zustandsmaschine in den Zustand Read über, um auf das Setzen des BUFFER READY- Signals 44b und auf den Beginn des nächsten Datentaktes zu warten.
  • Die zweite synchrone Zustandsmaschine 52 kann durch die Zustände Write oder Read, 1st_Db, Wait_6, Wait_7 und Asynch_Db laufen und möglicherweise mehrmals durch den Zustand Next_Buf laufen, in Abhängigkeit von der Anzahl des Wertes der in der aktuellen Transaktion übertragenen Daten des Datenpuffers. Wie oben erwähnt ist, kann eine zweite asynchrone Zustandsmaschine 53 so beschaffen sein, daß sie die Übertragung aller Datentakte, die von der Bus-Master-Vorrichtung eingeleitet worden sind, abschließt, und daß die zweite synchrone Zustandsmaschine 52 nur einmal durch das Zustandsdiagramm der Fig. 8 läuft, das nicht den Zustand Next_Bufenthält, d. h. die Zustandsmaschine würde im Zustand Async Db auf das Ende der Transaktion warten, das durch das Zurücksetzen des SYNCH_AS-Signals 36a gekennzeichnet ist, und anschließend in den Zustand Idle_52 übergehen. In einer solchen Ausführungsform würden jedoch die Komplikationen, die durch die unterschiedlichen Datenpuffer in der Bank der Datenpuffer 42a, 42b in der Gattermatrix 40 (Fig. 2), die die Daten zuführen, oder die Notwendigkeit zum Wiedergewinnen der Daten aus dem Hauptspeicher entstehen, die zweite asynchrone Zustandsmaschine 53 komplizierter machen, weshalb die zweite asynchrone Zustandsmaschine 53 der bevorzugten Ausführungsform die Transaktionssteuerung an die zweite synchrone Zustandsmaschine 52 zurückgibt, um auf die Übertragung jedes Datentaktes zu einer ersten Stelle in einem anschließenden Datenpuffer zu antworten.
  • Das Implementieren des Protokolls des Anfangs der Datenphase als die zweite synchrone Zustandsmaschine 52 schafft eine langsamere Zustandsmaschine, als wenn das Protokoll als eine entsprechende asynchrone Zustandsmaschine implementiert würde, aufgrund der Notwendigkeit der Synchronisierung des Signals FB_R_AS 24a, nämlich SYNCH_AS 36a, und des Signals FB_R_DS 24b, nämlich SYNCH_DS 36b, wie oben beschrieben worden ist (Fig. 2). Die zweite synchrone Zustandsmaschine 52 kann ferner langsamer sein als eine entsprechende asynchrone Zustandsmaschine, da die synchrone Zustandsmaschine ihren Zustand nicht ändert, bis die geeignete Zustandsgleichung wahr ist und das CLK-Signal wechselt, während die entsprechende asynchrone Zustandsmaschine den Zustand ändert, sobald die geeignete Zustandsgleichung wahr wird.
  • Die Implementierung des Anfangs der Datenphase als die zweite synchrone Zustandsmaschine 52 erlaubt der Zustandsmaschine, bei den Stufen in der ersten Datenübertragung unterschiedliche Pfade zu verfolgen, während eine Lese- oder eine Schreibtransaktion unterschiedliche Anforderungen hat. Wie oben erwähnt, erlaubt die asynchrone Zustandsmaschine, daß sich nur ein Zustandsbit pro Zustandsübergang ändert, weshalb synchrone Zustandsmaschinen im allgemeinen besser geeignet sind, als asynchrone Zustandsmaschinen, um unterschiedliche Pfade von einem Zustand zu vielen anderen Zuständen zu implementieren. Eine synchrone Zustandsmaschine erlaubt ferner, daß leicht Wartezustände zu den vielen Pfaden hinzugefügt werden können, die von der Zustandsmaschine benötigt werden können, um ausreichend Zeit zur Verfügung zu stellen, damit spezielle Schaltungen einschwingen können oder damit Signale sich durch spezielle Schaltungen fortpflanzen können. Wenn das Protokoll des Anfangs der Datenphase als eine entsprechende asynchrone Zustandsmaschine implementiert wäre, wäre die entsprechende asynchrone Zustandsmaschine im allgemeinen sehr groß, was erheblich mehr Schaltungsaufwand erfordert als die zweite synchrone Zustandsmaschine 52, aufgrund der Anforderung, das nur eine Zustandsbitänderung pro Zustandsübergang erlaubt ist, und ferner aufgrund der Notwendigkeit des Einschließens von Gefährdungstermen in die Zustandsgleichungen, wie oben beschrieben worden ist. Ferner besteht die Möglichkeit, daß die PAL-Stapelung, wie oben beschrieben, den Geschwindigkeitsanstieg, der einer asynchronen Zustandsmaschine zugeordnet ist, teilweise aufheben kann.
  • Wie in Fig. 3 gezeigt, empfängt wie oben erwähnt die zweite asynchrone Zustandsmaschine 53 eine Leitung, die das LT_MASK-Signal 50e führt, von der ersten synchronen Zustandsmaschine 50, sowie eine Leitung, die das SET_FLO_THRU-Signal 52d von der zweiten synchronen Zustandsmaschine 52 führt. Die zweite asynchrone Zustandsmaschine empfängt ferner Leitungen, die das FB_R_AS- Signal 24a und das FB_R_DS-Signal 24b führen, von der Quittungsschaltung 24 der asynchronen Schnittstelle 20 (Fig. 2), und eine Leitung, die das SLAVE-Signal 22a führt, von der Adreßschaltung 22 der asynchronen Schnittstelle 20. Außerdem empfängt die zweite asynchrone Zustandsmaschine 53 Leitungen, die die verzögerten Versionen vom Signal FB_R_DS 24b, nämlich das Signal NO_HOLD_ODD 48a und das NO_HOLD_EVEN-Signal 48b, von der in Fig. 3 gezeigten Verzögerungslogik 48 führen.
  • Die zweite asynchrone Zustandsmaschine 53 empfängt ferner ein Signal 44c, nämlich LAST_DB, das anzeigt, daß der aktuelle Datenpuffer, in den Daten geladen worden sind oder aus dem diese entfernt worden sind, in der Bank der Datenpuffer 42a, 42b der Gattermatrix 40 (Fig. 2) nur jeweils Daten speichern oder liefern kann, die für einen weiteren Datentakt ausreichen. Die Steuerlogik 44 in der Gattermatrix 40 liefert das LAST_DB-Signal 44c und besitzt eine (nicht gezeigte) Schaltung, um aus den Adreß- und Befehlsinformationen, die vom asynchronen E/A-Bus aufgenommen worden sind, zu ermitteln, ob nur ein Datentakt in den aktuellen Datenpuffer geladen oder aus diesem entfernt werden kann. Ähnlich der Puffer-Verfügbarkeitsschaltung und der Puffer-Fertig-Schaltung kann die Letzter-Datentakt-Schaltung in der Slave-Steuervorrichtung 32 angeordnet sein (Fig. 2).
  • Wie in Fig. 3 gezeigt, empfängt die Verzögerungslogik 48 das Signal FB_R_DS 24b und das Signal FB_R_AS 24a von der Quittungsschaltung 24 der asynchronen Schnittstelle 40 (Fig. 2). Die Verzögerungslogik 48 empfängt ferner das READ-Signal 27c und die Signale DATA_LINES< 1 : 0> 27d von der Befehlsschaltung 27 der asynchronen Schnittstelle 20 und das Signal 53a des Zustandsbits 50 von der zweiten asynchronen Zustandsmaschine 53. Die Signale DATA_LINES< 1 : 0> 27d zeigen, welche Datenleitungen verwendet werden, um die Daten während der aktuellen Transaktion zu übertragen.
  • Zusätzlich zum Signal NO_HOLD_ODD 48a und dem Signal NO_HOLD_EVEN 48b liefert die Verzögerungslogik 48 ein Signal BUFFER DS 48c. Dieses Signal wird zur Steuerlogik 44 der Gattermatrix 40 (Fig. 2) gesendet und von der Steuerlogik 44 verwendet, um bis zur nächsten Stelle im aktuellen Datenpuffer zu inkrementieren. Ein Zähler in der Steuerlogik 44 liefert das Signal LAST DB 44c an die zweite asynchrone Zustandsmaschine 53.
  • Das Signal NO_HOLD_ODD 48a wird in bezug auf das Setzen des FB_R_DS-Signals 44b verwendet, um anzuzeigen, daß der ungerade Datentakt (das zustandsbit-50-Signal 53a ist gesetzt) im Fall eines Schreibvorgangs (das READ-Signal 27c ist zurückgesetzt) Daten von dem asynchronen E/A-Bus angenommen hat, oder daß der ungerade Datentakt im Fall eine Lesevorgangs (das READ-Signal 27c ist gesetzt) Daten auf dem asynchronen E/A-Bus plaziert hat. Das Signal NO_HOLD_EVEN 48b wird in bezug auf das Zurücksetzen des FB_R_DS-Signals 24b verwendet, um anzuzeigen, daß der gerade Datentakt (das Zustandsbit-50-Signal 53a ist zurückgesetzt) im Fall eines Schreibvorgangs Daten vom asynchronen E/A-Bus angenommen hat, oder daß der gerade Datentakt im Fall eines Lesevorgangs Daten auf dem asynchronen E/A-Bus plaziert hat. Die Verzögerungslogik 48 enthält die Verzögerungsschaltung und die Steuerschaltung (nicht gezeigt) um die Länge der Zeitspanne zu steuern, um die das NO_HOLD_ODD-Signal 48a und das NO_HOLD_EVEN- Signal 48b bezüglich des FB_R_DS-Signals 24b verzögert werden.
  • Die Länge der Zeitspanne, um die das NO_HOLD_ODD-Signal 48a und das NO_HOLD_EVEN-Signal 48b bezüglich des FB_R_DS-Signals 24b verzögert werden, kann in Abhängigkeit von der Transaktion schwanken. Ein Faktor im Zeitmaß, das erforderlich ist, ist die Anzahl der Datenleitungen, die für die Übertragung der Daten verwendet werden, wie durch die Signale DATA_LINES< 1 : 0> 27d gezeigt ist. Wenn z. B. die Datenpuffer in der Bank der Datenpuffer 42a, 42b in der Gattermatrix 40 (Fig. 2) 32 Bits breit sind, würde eine Transaktion mit 32 Bit Datenbreite auf dem asynchronen E/A-Bus eine kleinere Verzögerung des NO_HOLD_ODD-Signals 48a und des NO_HOLD_EVEN-Signals 48b bezüglich des FB_R_DS-Signals 24b erfordern, als eine Transaktion mit 64 Bit Datenbreite. Dies liegt daran, daß eine Transaktion mit 64 Bit Datenbreite erfordert, daß im Fall eines Lesevorgangs zwei Stellen aus einem Puffer wiedergewonnen werden müssen, und daß im Fall eines Schreibvorgangs zwei Stellen in einen Datenpuffer geladen werden müssen, während eine 32-Bit-Transaktion erfordert, daß nur eine Stelle wiedergewonnen oder geladen wird. In ähnlicher Weise würde eine Transaktion mit einer Datenbreite von 128 Bit auf dem asynchronen E/A-Bus eine längere Verzögerung des NO_HOLD_ODD-Signals 48a und des NO_HOLD_EVEN-Signals 48b bezüglich des FB_R_DS-Signals 24b erfordern als eine Transaktion mit einer Datenbreite von 64 Bit.
  • Wie in Fig. 3 gezeigt, liefert die zweite asynchrone Zustandsmaschine 53 Leitungen, die die Datenphasenquittungssignale 53d und 53e führen, nämlich FB_T_DK bzw. FB_T_DI. Wie oben erwähnt, liefert die zweite asynchrone Zustandsmaschine 53 ferner Leitungen an die zweite synchrone Zustandsmaschine 52, die ein Zustandsbit der zweiten asynchronen Zustandsmaschine 53 führen, nämlich das S0-Signal 53a und das FLO_THRU-Signal 53c. Mit diesen Signalen kann die zweite asynchrone Zustandsmaschine 53 auf Datentakte antworten, die von der Bus-Master-Vorrichtung eingeleitet worden sind, und kann die Transaktionssteuerung an die zweite synchrone Zustandsmaschine 52 entweder am Ende der Transaktion, d. h. das FB_R_AS- Signal 24a ist zurückgesetzt, oder nach dem Auffüllen oder Leeren eines Datenpuffers zurückgeben, d. h. das LAST_DB-Signal 44c wird gesetzt.
  • In Fig. 9 ist ein Zustandsdiagramm gezeigt, das die Operation der zweiten asynchronen Zustandsmaschine 53 der Fig. 3 erläutert. Die zweite asynchrone Zustandsmaschine 53 beginnt mit einem Zustand End_Even, dargestellt durch die Zustandsbits 50 (Signal 50 53a) und 51 gleich "00", bei zurückgesetztem Signal FB_T_DK 53d und Signal FB_T_DI 53e. Die Zustandsmaschine setzt das FB_T_DI-Signal 53e zu Beginn einer Transaktion, während sie im Zustand End Even verbleibt, wenn das FB_R_AS-Signal 24a und das SLAVE- Signal 22a gesetzt werden, d. h. es gilt FB_R_AS 24a AND SLAVE 22a, als Vorbereitung für die zukünftige Verwendung. Die zweite asynchrone Zustandsmaschine 53 geht in einen Zustand Beg Odd über, dargestellt durch die Zustandsbits 50 und 51 gleich "01", wenn die Zustandsgleichung FB_R_AS 24a AND SLAVE 22a AND FB_R_DS 24b gültig wird. Das Setzen von FB_R_DS 24b zeigt an, daß die Bus- Master-Vorrichtung den ersten ungeraden Datentakt einleitet. Nach dem Übergang in den Zustand Beg Odd setzt die zweite asynchrone Zustandsmaschine 53 das Signal FB_T_DK 53d und fährt fort mit dem Setzen des FB_T_DI-Signals 53e.
  • Wenn während des Zustands Begadd die Zustandsgleichung: FB_R_AS 24a AND SLAVE 22a AND FB_R_DS 24b AND NO_HOLD_ODD 48a AND (FLO THRU 53c OR LT MASK 50e) erfüllt wird, geht die Zustandsmaschine in den Zustand End_Odd über, dargestellt durch die Zustandsbits 50 und 51 gleich "11", und setzt das FB_T_DI-Signal 53e zurück, um den ersten gera den Datentakt abzuschließen, während das FB_T_DK-Signal 53d weiterhin gesetzt bleibt. Das Setzen des NO HOLD ODD- Signals 48a zeigt an, daß im Fall eines Schreibvorgangs die Daten am asynchronen E/A-Bus angenommen wurden, oder daß im Fall eines Lesevorgangs die Daten auf dem asynchronen E/A-Bus plaziert wurden. Das Setzen des LT MASK Signals 50e zeigt an, daß die Transaktion eine Partial-Transaktion ist und die erste synchrone Zustandsmaschine 50 veranlaßt hat, daß die Maskendaten zwischengespeichert werden. Das Setzen des FLO_THRU-Signals 53c zeigt an, daß die zweite synchrone Zustandsmaschine 52 das SET_FLO_THRU-Signal 52d gesetzt hat, was anzeigt, daß die Transaktion keine Partialtransaktion ist, und daß im Fall eines Schreibvorgangs die Daten für den ersten ungeraden Datentakt im Datenpuffer der Bank der Datenpuffer 42a, 42b der Gattermatrix 40 (Fig. 2) gespeichert wurden, oder daß im Fall eines Lesevorgangs die Daten auf dem asynchronen E/A-Bus plaziert wurden. Das Setzen des SED_FLO_THRU-Signals 52d zeigt ferner an, daß die zweite synchrone Zustandsmaschine 52 die Transaktionsteuerung an die zweite asynchrone Zustandsmaschine 53 übergeben hat, so daß die anschließenden Datentakte, die von der Bus- Master-Vorrichtung eingeleitet werden, von der zweiten asynchronen Zustandsmaschine 53 beantwortet werden sollten, bis das Signal LAST DB 44c gesetzt wird.
  • Wie oben erwähnt, veranlaßt das Setzen des SET_FLO_THRU- Signals die zweite asynchrone Zustandsmaschine 53, sofort das FLO_THRU-Signal 53c für die zweite synchrone Zustandsmaschine 52 zu setzen (die Gleichung ist in Fig. 9 nicht gezeigt). Die zweite asynchrone Zustandsmaschine 53 hält das FLO_THRU-Signal 53c gesetzt, bis die Steuerlogik 44 in der Gattermatrix 40 (Fig. 2) das LAST_DB-Signal 44c setzt und die zweite asynchrone Zustandsmaschine 53 diesen letzten Datentakt zum oder aus dem Datenpuffer in der Bank der Datenpuffer 42a, 42b in der Gattermatrix 40 übertragen hat, oder bis das FB_R_AS-Signal 42a zurückgesetzt worden ist.
  • Wenn während den Zustands End_Odd die Zustandsgleichung: FB_R_AS 24a AND SLAVE 22a AND (NOT FB_R_DS 24b) gültig wird, geht die Zustandsmaschine in den Zustand Beg Even über, der dargestellt wird durch die Zustandsbits 50 und 51 gleich "10", und setzt das FB_T_DI-Signal 53e als Vorbereitung für eine spätere Verwendung, während das FB_T_DK-Signal 53d weiter gesetzt bleibt. Das Zurücksetzen des FB_R_DS-Signals 24b bei gesetztem FB_R_AS-Signal 24a zeigt an, daß die Bus-Master-Vorrichtung einen geraden Datentakt einleitet.
  • Wenn während des Zustands Beg_Even die Zustandsgleichung: FB_R_AS 24a AND SLAVE 22a (NOT FB_R_DS 24b) AND NO_HOLD_EVEN 48b AND FLO THRU 53c gültig wird, geht die Zustandsmaschine in den Zustand End Even über und setzt das FB_T_DK-Signal 53d zurück, um den geraden Datentakt abzuschließen, während das FB_T_DI-Signal 53e weiterhin gesetzt bleibt. Das Setzen des NO_HOLD_EVEN-Signals 48b zeigt an, daß im Fall eines Schreibvorgangs die Daten für den geraden Datentakt vom asynchronen E/A-Bus aufgenommen worden sind und in einem Datenpuffer in der Bank der Datenpuffer 42a, 42b in der Gattermatrix 40 (Fig. 2) gespeichert worden sind, oder daß im Fall eines Lesevorgangs die Daten aus einem Datenpuffer wiedergewonnen und auf dem asynchronen E/A-Bus plaziert worden sind. Das Setzen des FLO_THRU-Signals 53c zeigt an, daß das SET_FLO_THRU-Signal 52d gesetzt worden ist, was anzeigt, daß die zweite synchrone Zustandsmaschine 52 im Fall eines Schreibvorgangs Daten für den ersten geraden Datentakt aufgenommen hat oder im Fall eines Lesevorgangs Daten für den ersten geraden Datentakt geliefert hat, und daß sie die Transaktionssteuerung an die zweite asynchrone Zustandsmaschine 53 übergeben hat, nachdem die erste synchrone Zustandsmaschine 50 die Maskendaten zwischengespeichert hat; oder das Setzen des SET_FLO_THRU-Signals 52d zeigt an, daß die zweite synchrone Zustandsmaschine 52 weiterhin die Transaktionssteuerung an die zweite asynchrone Zustandsmaschine 53 übergibt.
  • Die Zustände der zweiten asynchronen Zustandsmaschine 53 werden für soviele Datentakte wiederholt, wie durch die Bus-Master-Vorrichtung eingeleitet werden, oder bis die Steuerlogik 44 in der Gattermatrix 40 (Fig. 2) das LAST_DB-Signal 44c setzt.
  • Wenn während des Zustands End_Odd das FB_R_AS-Signal 24a zurückgesetzt wird, was das Ende der Transaktion kennzeichnet, werden sowohl das FB_T_DK-Signal 53d als auch das FB_T_DI-Signal 53e zurückgesetzt (in Fig. 9 nicht gezeigt) und die zweite asynchrone Zustandsmaschine 53 geht in den Zustand Beg Even über. Nach dem Zurücksetzen des NO_HOLD_EVEN-Signals 48b geht die zweite asynchrone Zustandsmaschine 53 in den Zustand End Even über und wartet auf die nächste Transaktion. Die Zustandsmaschine folgt dieser Sequenz, um sicherzustellen, daß sich pro Zustandsänderung nur ein Zustandsbit ändert.
  • Hier ist die zweite asynchrone Zustandsmaschine 53 ähnlich der ersten asynchrone Zustandsmaschine 51 eine einfache Zustandsmaschine, die vier Zustände umfaßt. Die Anforderung, daß sich pro Zustandsänderung nur ein Zustandsbit ändert, beeinflußt nicht die Anzahl der zum Implementieren der asynchrone Zustandsmaschine erforderlichen Zustandsbits. Eine Wahrheitstabelle ähnlich derjenigen der Fig. 6 und ein Karnaugh-Diagramm ähnlich demjenigen der Fig. 7, werden für jedes Zustandsbitsignal und 5 Ausgangssignal der zweiten asynchrone Zustandsmaschine 53 geschaffen. Aus den Karnaugh-Diagrammen können die Zu standsgleichungen für die Zustandsbits und die Ausgangssignale bestimmt werden, einschließlich der Gefährdungsterme, wie oben erwähnt worden ist. Aufgrund der Tatsache, daß beim Übertragen der Daten, die in einer ersten Stelle in einem Puffer gespeichert oder hieraus entnommen werden sollen, nach dem Übertragen des Datentaktes wenige Ermittlungen durchgeführt werden müssen, braucht die zweite asynchrone Zustandsmaschine nicht viele Ermittlungen durchzuführen. Es ist daher nur eine geringe Vergrößerung der Schaltung erforderlich, um die zweite asynchrone Zustandsmaschine 53 asynchron zu implementieren, im Gegensatz zu der Schaltung, die erforderlich wäre, um eine entsprechende synchrone Zustandsmaschine zu implementieren.
  • Die Datenübertragungsphase einer Transaktion macht normalerweise den Großteil der Transaktion aus. Eine Transaktion kann daher deutlich schneller abgeschlossen werden, wenn die Daten mit einer höheren Geschwindigkeit übertragen werden können. Sobald die zweite asynchrone Zustandsmaschine 53 die Transaktionssteuerung übernommen hat, wird die Datenübertragung deutlich schneller durchgeführt als dies eine entsprechende synchrone Zustandsmaschine aus den obengenannten Gründen erlauben würde.
  • Die obenbeschriebene Slave-Steuervorrichtung 32 (Fig. 2) erlaubt eine schnelle Datenübertragung, indem sie das Datenphasenprotokoll mittels der zweiten asynchronen Zustandsmaschine 53 implementiert. Die Schaltung der Slave-Steuervorrichtung 32 ist jedoch aufgrund der Implementierung des Verbindungsphasenprotokolls und des Anfangs des Datenphasenprotokolls mittels der ersten und zweiten synchronen Zustandsmaschinen 50 bzw. 52 minimal.
  • Die Master- und Slave-Steuervorrichtungen 34 bzw. 32 sind vollkommen unabhängig, weshalb sie beide wie oben be schrieben mittels einer Kombination aus synchronen und asynchronen Zustandsmaschinen implementiert werden können. Alternativ kann eine mittels eine streng synchronen Schaltung implementiert werden, während die andere wie oben beschrieben unter Verwendung einer Kombination aus synchronen und asynchronen Zustandsmaschinen implementiert wird. Wenn die Master-Steuervorrichtung 34 wie oben beschrieben mittels einer Kombination aus synchronen und asynchronen Zustandsmaschinen implementiert wird, ist sie der Slave-Steuervorrichtung 32 ähnlich, mit der Ausnahme, daß erste und zweite asynchrone Zustandsmaschinen die Slave-Quittungssignale vom E/A-Bus empfangen und die Master-Quittungssignale an den asynchronen E/A-Bus liefern, wobei die Master-Steuervorrichtung 34 die Adreß- und Befehlsinformationen liefern und die Statusinformationen empfangen würde. Die Signale, die zum Implementieren der Master-Steuervorrichtung 34 gemäß der Erfindung erforderlich sind, sind in Fig. 2 der Einfachheit halber nicht gezeigt.
  • Obwohl die bevorzugte Ausführungsform der Erfindung in bezug auf eine E/A-Vorrichtung beschrieben worden ist, die eine Datenübertragung zwischen einem synchronen Systembus und einem asynchronen E/A-Bus bewerkstelligt, ist für Fachleute offensichtlich, daß die Datenübertragungsvorrichtung andere synchrone Systeme mit asynchronen Bussen und Vorrichtungen verbinden kann. Zum Beispiel kann die obenbeschriebene Datenübertragungsvorrichtung verwendet werden, um die Datenübertragung zwischen einer synchronen Speichervorrichtung oder einer CPU und einem damit verbundenen asynchronen Bus zu bewerkstelligen. Es können zwei Dätenübertragungsvorrichtungen verwendet werden, um eine Schnittstelle zu zwei asynchronen Bussen zu schaffen und um Daten zwischen den zwei asynchronen Bussen zu übertragen, d. h. der Systembus ist asynchron statt wie oben beschrieben synchron. Die Komplexität der asynchronen Busse kann aufgrund der Schaltungseinsparungen, die durch Verwendung der Datenübertragungsvorrichtungen erreicht werden, die Geschwindigkeitsreduzierung der Datenübertragungsvorrichtung lohnenswert machen.
  • Mit den obenbeschriebenen bevorzugten Ausführungsformen der Erfindung wird für Fachleute offensichtlich, daß andere Ausführungsformen verwendet werden können, die deren Konzepte enthalten. Die Erfindung soll daher nicht auf die offenbarten Ausführungsformen beschränkt sein.

Claims (9)

1. Datenübertragungsvorrichtung (12c) zum Steuern der Datenübertragung zwischen einem asynchronen Bus (13) und einer synchronen Vorrichtung (12), mit:
einer Einrichtung (32, 34) zum Steuern der Datenübertragung mit dem asynchronen Bus (13), wobei die Datenübertragungsvorrichtung enthält:
ein synchrones Logiknetz (36, 50, 52) zur Schaffung einer Transaktionsverbindung zwischen dem asynchronen Bus und der Datenübertragungsvorrichtung während einer Anfangsphase der Transaktion;
ein asynchrones Logiknetz (40, 53) zur Schaffung einer Datenübertragung zwischen dem asynchronen Bus und der Datenübertragungsvorrichtung während einer nachfolgenden Phase der Transaktion;
einen Datenpuffer (42a, 42b), der an eine Schnittstelleneinrichtung (20) des asynchronen Busses und an die Steuereinrichtung (32, 34) angeschlossen ist, um zum asynchronen Bus (13) zu sendende Daten zu speichern und um vom asynchronen Bus empfangene Daten zu speichern;
wobei das synchrone Logiknetz (36, 50, 52) ferner enthält:
eine Einrichtung (52, 44b) zum Bestimmen, 1 daß der Datenpuffer (42a, 42b) während der Transaktion zu übertragende Daten speichert, und zum Abgeben der Transaktionssteuerung an das asynchrone Logiknetz (53) während der Übertragung von Daten an den asynchronen Bus;
eine Einrichtung (50) zum Bestimmen, daß der Datenpuffer (42a, 42b) verfügbar ist, um wäh rend der Transaktion empfangene Daten zu speichern, und zum Abgeben der Transaktionssteuerung an das asynchrone Logiknetz während des Empfangs von Daten vom asynchronen Bus;
wobei das asynchrone Logiknetz (40, 53) ferner eine Einrichtung (28, 53) zum Übertragen der im Datenpuffer gespeicherten Daten für die Transaktion und zum Zurückgeben der Transaktionssteuerung an das synchrone Logiknetz (36, 50, 52) während der Übertragung von Daten an den asynchronen Bus enthält; und
eine Einrichtung (20), die an die Steuereinrichtung (32, 34) angeschlossen ist, um eine Schnittstelle zwischen der Datenübertragungsvorrichtung und dem asynchronen Bus zu schaffen.
2. Datenübertragungsvorrichtung nach Anspruch 1, wobei das synchrone Logiknetz (36, 50, 52) ferner enthält:
eine Einrichtung (52) zum Bestimmen, daß der Datenpuffer (42a) zusätzliche Daten enthält, die für die Transaktion übertragen werden sollen, und zum Zurückgeben der Transaktionssteuerung an das asynchrone Logiknetz (53) während der Übertragung von Daten an den asynchronen Bus; und
eine Einrichtung (52) zum Bestimmen, daß der Datenpuffer (42a) verfügbar ist, um weitere vom asynchronen Bus (13) empfangene Daten für die Transaktion zu speichern, und zum Zurückgeben der Transaktionssteuerung an das asynchrone Logiknetz (53) während des Empfangs von Daten vom asynchronen Bus.
3. Datenübertragungsvorrichtung nach Anspruch 1, wobei die Vorrichtung ferner enthält: eine Einrichtung (44), die wenigstens auf einen Abschnitt einer Adresse und auf einen durch den asynchronen Bus bereitgestellten Befehl anspricht, um einen Speicherplatz im Datenpuffer (42a) zu bestimmen.
4. Datenübertragungsvorrichtung nach Anspruch 1, wobei die Vorrichtung ferner enthält: eine Einrichtung, die wenigstens auf einen Abschnitt einer Adresse und auf einen vom asynchronen Bus bereitgestellten Befehl anspricht, um eine Endstelle im Datenpuffer zu bestimmen.
5. Datenübertragungsvorrichtung nach irgendeinem der vorangehenden Ansprüche, wobei das synchrone Logiknetz (36, 50, 52) enthält:
eine erste synchrone Zustandsmaschine (50), die enthält:
eine Einrichtung, die ein Zwischenspeichersignal erzeugt, um auf dem asynchronen Bus vorhandene Adressen- und Befehlsinformationen einzufangen; und
eine Einrichtung (50) zum Erzeugen eines Haltesignals (50b), um das asynchrone Logiknetz (51) anzuhalten, und zum Bestimmen, daß die Datenübertragungsvorrichtung bereit ist, die nachfolgende Datenübertragungsphase der Transaktion zu beginnen.
6. Datenübertragungsvorrichtung nach Anspruch 1, wobei die Steuereinrichtung enthält: eine Einrichtung (34) zum Beginnen der Transaktion auf dem asynchronen Bus.
7. Datenübertragungsvorrichtung nach Anspruch 1, wobei die Steuereinrichtung enthält: eine Einrichtung (32), die auf vom asynchronen Bus empfangene Transaktionen antwortet.
8. Datenübertragungsvorrichtung nach Anspruch 1, wobei die Steuereinrichtung eine erste Steuereinrichtung (32) ist, die auf vom asynchronen Bus empfangene Transaktionen antwortet, und wobei die Datenübertragungsvorrichtung ferner enthält: eine zweite Steuereinrichtung (34) zum Beginnen von zum asynchronen Bus zu sendenden Transaktionen.
9. Datenübertragungsvorrichtung nach Anspruch 1, wobei die Vorrichtung ferner enthält: eine Einrichtung (46), die eine Schnittstelle mit einem synchronen Systembus (12D) schafft, der an die Datenübertragungsvorrichtung angeschlossen ist, um eine Datenübertragung zwischen dem synchronen Systembus und dem asynchronen Bus (13) zu schaffen.
DE69322356T 1992-10-07 1993-10-06 Synchrone/asynchrone Aufteilung einer asynchronen Busschnittstelle Expired - Fee Related DE69322356T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/957,977 US5592685A (en) 1992-10-07 1992-10-07 Synchronous/asynchronous partitioning of an asynchronous bus interface

Publications (2)

Publication Number Publication Date
DE69322356D1 DE69322356D1 (de) 1999-01-14
DE69322356T2 true DE69322356T2 (de) 1999-06-02

Family

ID=25500438

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69322356T Expired - Fee Related DE69322356T2 (de) 1992-10-07 1993-10-06 Synchrone/asynchrone Aufteilung einer asynchronen Busschnittstelle

Country Status (3)

Country Link
US (1) US5592685A (de)
EP (1) EP0592213B1 (de)
DE (1) DE69322356T2 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0654743A1 (de) * 1993-11-19 1995-05-24 International Business Machines Corporation Rechnersystem mit einem lokalen Bus eines Digitalsignalprozessors
US5963721A (en) * 1995-12-29 1999-10-05 Texas Instruments Incorporated Microprocessor system with capability for asynchronous bus transactions
US5909369A (en) * 1996-07-24 1999-06-01 Network Machines, Inc. Coordinating the states of a distributed finite state machine
EP0872800B8 (de) * 1997-04-14 2005-08-10 HMS Industrial Networks AB Verfahren und Einrichtung zum Datenaustausch zwischen zwei Prozessoreinheiten
US6154803A (en) * 1998-12-18 2000-11-28 Philips Semiconductors, Inc. Method and arrangement for passing data between a reference chip and an external bus
US6668300B1 (en) 2000-09-14 2003-12-23 Bae Systems Information And Electronic Systems Integration Inc. Computer device having multiple linked parallel busses and associated method
US7161999B2 (en) * 2002-01-02 2007-01-09 Intel Corporation Synchronizing data or signal transfer across clocked logic domains
US7523275B2 (en) * 2003-04-10 2009-04-21 International Business Machines Corporation Method, system, and program for maintaining a copy relationship between primary volumes and corresponding secondary volumes
US7411953B2 (en) * 2004-02-02 2008-08-12 Telefonaktiebolaget Lm Ericsson (Publ) Distributed finite state machine
US7299436B2 (en) * 2005-02-10 2007-11-20 International Business Machines Corporation System and method for accurately modeling an asynchronous interface using expanded logic elements
KR100738965B1 (ko) * 2006-03-07 2007-07-12 주식회사 하이닉스반도체 반도체 메모리 장치의 동기 모드 감지 회로 및 방법
KR100695289B1 (ko) * 2006-03-09 2007-03-16 주식회사 하이닉스반도체 반도체 메모리 장치의 어드레스 버퍼 및 어드레스 버퍼링방법
US9910819B2 (en) * 2013-03-11 2018-03-06 Microchip Technology Incorporated Two-wire serial interface and protocol
US9489009B2 (en) 2014-02-20 2016-11-08 Samsung Electronics Co., Ltd. System on chip, bus interface and method of operating the same

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3999163A (en) * 1974-01-10 1976-12-21 Digital Equipment Corporation Secondary storage facility for data processing systems
US4390969A (en) * 1980-04-21 1983-06-28 Burroughs Corporation Asynchronous data transmission system with state variable memory and handshaking protocol circuits
US4442504A (en) * 1981-03-09 1984-04-10 Allen-Bradley Company Modular programmable controller
US4615017A (en) * 1983-09-19 1986-09-30 International Business Machines Corporation Memory controller with synchronous or asynchronous interface
EP0303751B1 (de) * 1987-08-20 1992-05-20 International Business Machines Corporation Schnittstellenmechanismus für Informationsübertragungssteuerung zwischen zwei Vorrichtungen
US4965801A (en) * 1987-09-28 1990-10-23 Ncr Corporation Architectural arrangement for a SCSI disk controller integrated circuit
US4878173A (en) * 1988-05-16 1989-10-31 Data General Corporation Controller burst multiplexor channel interface
US5029124A (en) * 1988-05-17 1991-07-02 Digital Equipment Corporation Method and apparatus for providing high speed parallel transfer of bursts of data
US5097437A (en) * 1988-07-17 1992-03-17 Larson Ronald J Controller with clocking device controlling first and second state machine controller which generate different control signals for different set of devices
US5265216A (en) * 1991-06-28 1993-11-23 Digital Equipment Corporation High performance asynchronous bus interface
US5255375A (en) * 1992-01-10 1993-10-19 Digital Equipment Corporation High performance interface between an asynchronous bus and one or more processors or the like

Also Published As

Publication number Publication date
US5592685A (en) 1997-01-07
DE69322356D1 (de) 1999-01-14
EP0592213B1 (de) 1998-12-02
EP0592213A1 (de) 1994-04-13

Similar Documents

Publication Publication Date Title
DE3280451T2 (de) Verfahren zur Initialisierung eines Datenverarbeitungssystems.
DE68923834T2 (de) Leistungsfähiges Protokoll für die Übertragung zwischen asynchronen Vorrichtungen.
DE3788805T2 (de) Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem.
DE3889366T2 (de) Interface für ein Rechnersystem mit reduziertem Befehlssatz.
DE69634358T2 (de) Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen
DE69322356T2 (de) Synchrone/asynchrone Aufteilung einer asynchronen Busschnittstelle
DE3751514T2 (de) Adressieranordnung für RAM-Puffer-Steuereinrichtung.
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE69522608T2 (de) Mehreinrichtungskopplung
DE3914265C2 (de)
DE3752205T2 (de) Multiprozessor-Busprotokoll
DE2856483C2 (de)
DE69812651T2 (de) Mehrfachverwendbare modulen für komplexe integrierte halbleiterschaltungen
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE3688363T2 (de) Unterbrechungsabwicklung in einem Multiprozessorrechnersystem.
DE69829987T2 (de) E/a bus mit schnellen 16-bit zerteilten transaktionen
DE19900369A9 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE69031206T2 (de) Rechnersystem
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE69318348T2 (de) Schnittstelle für asynchronen Bus zur Minimisierung von Übertragungszeiten
DE69214702T2 (de) Speicherzugriff für die Datenübertragung in einer Ein-Ausgabevorrichtung
DE3732798A1 (de) Datenverarbeitungssystem mit ueberlappendem zugriff auf einen globalen speicher durch eine quelle mit hoher prioritaet
DE69520706T2 (de) Herstellungsverfahren für einen elektrischen Vorrichtungs-Adapter
DE69128985T2 (de) IEEE488-Schnittstelle

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee