DE69018100T2 - Datenübertragung über Busadressleitungen. - Google Patents

Datenübertragung über Busadressleitungen.

Info

Publication number
DE69018100T2
DE69018100T2 DE69018100T DE69018100T DE69018100T2 DE 69018100 T2 DE69018100 T2 DE 69018100T2 DE 69018100 T DE69018100 T DE 69018100T DE 69018100 T DE69018100 T DE 69018100T DE 69018100 T2 DE69018100 T2 DE 69018100T2
Authority
DE
Germany
Prior art keywords
data
slave
bus
master
transfer
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
DE69018100T
Other languages
English (en)
Other versions
DE69018100D1 (de
Inventor
Ravi Kumar Arimilli
Sudhir Dhawan
James Otto Nicholson
David William Siegel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69018100D1 publication Critical patent/DE69018100D1/de
Application granted granted Critical
Publication of DE69018100T2 publication Critical patent/DE69018100T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf die Datenübertragung auf einem Rechnerbus unter Verwendung der Bus-Adreßleitungen.
  • Computersyteme für allgemeine Zwecke sind normalerweise für die Übertragung von Daten zwischen verschiedenen Subsystemen über einen gemeinsam genutzten Datenpfad, Bus genannt, konzipiert. Die verschiedenen Subsysteme, wie Zentralprozessor, Cache-Controller und Eingabe/Ausgabe (E/A)-Subsysteme wie Tastatur, Bildschirmgeräte und Massenspeicher-Controller, können an einen einzigen Systembus angeschlossen werden. Auch der System-Hauptspeicher kann an den Systembus angeschlossen werden. In einigen Systemen wird der Hauptspeicher direkt mit dem Zentralprozessor verbunden, wobei der Systembus für die Übertragung von E/A-Daten durch einen Direktzugriffsspeicher (DMA) oder einen anderen E/A-Controller reserviert bleibt.
  • Da zwischen den zahlreichen Subsystemen auf einem einzigen Bus eine große Datenmenge übertragen wird, wird der Bus selbst oft zu einem Leistungsengpaß für das gesamte System. Der Entwurf eines Systembusses, der in der Lage ist, die an ihn gestellten Leistungsanforderungen zu erfüllen, ist eine schwierige Aufgabe. Diese Aufgabe wird in vielen Systemen noch dadurch erschwert, daß dem Bus-Konstrukteur die Art der in das System einzubauenden Ausstattung im voraus möglicherweise nicht genau bekannt ist. Es kann sein, daß viele verschiedene Subsysteme, die von verschiedenen Herstellern und mit unterschiedlichen Leistungsspezifikationen hergestellt wurden, gleichzeitig an einen einzigen Systembus angeschlossen werden müssen.
  • Der Systembus muß aber so konstruiert sein, daß er unabhängig von den an ihn angeschlossenen Subsystemen einwandfrei funktioniert. In der Praxis bedeutet dies gewöhnlich, daß beim Entwurf eines Busses der "kleinste gemeinsame Nenner" gefunden werden muß; das heißt, daß bestimmte Leistungsmerkmale zugunsten der Gesamtleistung bzw. des einwandfreien Zusammenwirkens mit allen Subsystemen nur eingeschränkt genutzt werden.
  • Die Art der an den Systembus angeschlossenen Subsysteme kann variieren. Bei einigen Subsystemen, zum Beispiel bei der Eingabe/Ausgabe über die Tastatur, wird zu einem bestimmten Zeitpunkt jeweils nur ein einziges Zeichen oder Wort übertragen. Andere Subsysteme, wie zum Beispiel die Bildschirm-Controller oder die DMA-Controller, die an Massenspeicher-Subsysteme angeschlossen sind, übertragen die Daten normalerweise in Wortblöcken. Um die effiziente Übertragung von Datenblöcken zu unterstützen, enthalten viele Systembusse in einigen Systemen einen Blockübertragungsmodus, auch "burst mode" genannt, der ausdrücklich zum Zwecke der Übertragung von Blöcken aufeinanderfolgender Datenworte konzipiert wurde. Wenn eine Blockübertragung im Gange ist, werden einige der Standard-Bussteuertransaktionen nicht verwendet, wodurch der overhead des Busses reduziert und die Datenübertragungsrate gesteigert wird.
  • Obwohl Blockübertragungsmodi eine effizientere Übertragung von Datenblöcken auf einem Bus ermöglichen, wird die Gesamtleistung des System-Busses dadurch eingeschränkt, daß alle Subsysteme immer an den Bus angeschlossen sind. Subsysteme mit einer potentiell höheren Leistung können so aufgrund der Leistungseinschränkungen des Busses, die es einigen Subsystemen mit geringerer Leistung ermöglichen, einwandfrei zu funktionieren, Daten nicht mit einer höheren Übertragungsrate übertragen. Bei den Bus-Entwürfen der herkömmlichen Computersysteme ist es nicht möglich, Daten von verschiedenen Subsystemen mit unterschiedlichen Datenübertragungsraten auf einem einzigen Bus zu übertragen. Außerdem können Daten mit einer Wortbreite, die größer als die für die normale Datenübertragung verwendete Wortbreite ist, nicht übertragen werden.
  • In der U.S. Patentschrift 4,213,176 wird ein System gemäß dem vorkennzeichnenden Teil des Anspruchs 1 beschrieben, in dem in einem bestimmten Betriebsmodus die Daten zwischen den verschiedenen Geräten sowohl unter Verwendung von Daten- als auch von Adreßleitungen übertragen werden. Jedoch werden auf jeder dieser Leitungen die Daten mit der normalen Übertragungsrate übertragen.
  • Es ist daher eine Aufgabe der Erfindung, ein System bereitzustellen, in dem Daten mit unterschiedlichen Übertragungsraten auf demselben Bus, entweder auf den Datenleitungen oder sowohl auf den Datenleitungen als auch auf den Adreßleitungen übertragen werden können.
  • Diese Aufgabe wird durch den kennzeichnenden Teil des Anspruchs 1 erfüllt.
  • Zum besseren Verständnis der Erfindung soll nun ein bevorzugtes Ausführungsbeispiel der Erfindung anhand eines Beispiels und unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben werden; es zeigt:
  • FIGUR 1 ein Blockdiagramm mit einem Master-Subsystem und einem Slave-Subsystem, die an einen Computer-Systembus angeschlossen sind;
  • FIGUR 2 ein Flußdiagramm, das die Arbeitsweise eines Datenübertragungsmodus mit hoher Geschwindigkeit erläutert;
  • FIGUREN 3a, 3b und 3c, die als zusammengehörig zu betrachten sind, ein Flußdiagramm, das den Betrieb einer Bus-Master-Einrichtung erläutert;
  • FIGUREN 4a und 4b, die als zusammengehörig zu betrachten sind, ein Flußdiagramm, das den Betrieb einer Bus-Slave-Einrichtung erläutert; und
  • FIGUR 5 ein Zeittakt-Diagramm, das die Bus-Signalfolgesteuerung für ein Datenübertragungsbeispiel erläutert.
  • Das im folgenden beschriebene bevorzugte Ausführungsbeispiel der Erfindung basiert auf dem Mikrokanal-Busprinzip, das in den von IBM vertriebenen PS/2-Mikrocomputer-Produkten eingebaut ist (IBM, PS/2 und Mikrokanal sind Handelsbezeichungen der International Business Machines Corporation). In dieser Beschreibung sind nur die zur Erläuterung dieses bevorzugten Ausführungsbeispiels der vorliegenden Erfindung benötigten Steuersignale enthalten; weitere Aspekte des Busses, auf denen diese Beschreibung aufbaut, können in der veröffentlichten Literatur nachgelesen werden.
  • Figur 1 zeigt einen Computer-Systembus 10 mit zwei angeschlossenen Subsystemen 12 und 14. Zur Vereinfachung sind die Bussignale in die Adreßsignale ADDR, die Datensignale DATA und die Steuersignale CTRL aufgeteilt. Die Adreßsignale ADDR definieren Speicherplätze im Hauptspeicher-Abbild des Systems. Bei Systemen wie der PS/2-Familie, die über getrennte Adreßräume für Systemspeicher- und E/A-Einrichtungen verfügen, umfassen die Adreßsignale ADDR außerdem ein Signal (nicht gezeigt), das angibt, ob die aktuelle Busadresse eine Speicheradresse oder eine E/A-Adresse ist.
  • An einer Datenblockübertragung mit hoher Geschwindigkeit gemäß dem vorliegenden Ausführungsbeispiel sind zwei Einrichtungen beteiligt. Eine Einrichtung 12, die mit dem Bus gekoppelt ist, wird als die Bus-Master-Einrichtung betrachtet, die andere Einrichtung wird als die Bus-Slave-Einrichtung 14 bezeichnet. Traditionell ist der Bus-Master 12 das Subsystem, das für die Übertragung verantwortlich ist. Der Slave 14 erzeugt Signale und kann die Übertragung beenden, seine Steuerungslogik ist jedoch im allgemeinen einfacher als die des Masters 12.
  • In vielen Systemen kann jedes gegebene Subsystem entweder als Master oder als Slave arbeiten. Insbesondere Subsysteme, die als Bus-Master arbeiten können, sind oft auch in der Lage, stattdessen als Slave zu arbeiten. Viele einfachere Einrichtungen, wie zum Beispiel die Speicher-Subsysteme, können nur als Slave arbeiten.
  • Die im folgenden beschriebene Hochgeschwindigkeits-Datenübertragung wird in dieser Beschreibung als Datenstromübertragung bezeichnet. Diese Terminologie dient zur Unterscheidung dieses neuen Übertragungs-Mechanismus von der früheren ("normalen") Übertragung im Blockmodus, die nach anderen Prinzipien funktioniert.
  • In den Figuren 2, 3, 4 und 5 wird angenommen, daß in allen Fällen der Bus-Master den beschriebenen Hochgeschwindigkeits- Übertragungsprozeß ausführen kann. Wenn der Master diese Hochgeschwindigkeitsübertragung nicht ausführen kann, entweder aufgrund des Entwurfs oder aufgrund des aktuellen Betriebsstatus des Masters, wird die Datenübertragung im normalen, vom Mikrokanal-Bus angewandten Modus ausgeführt.
  • Figur 2 ist ein high-level Blockdiagramm, das den Datenübertragungsprozeß entsprechend dem vorliegenden Ausführungsbeispiel erläutert. Es beginnt zunächst ein normaler Bus-Datenübertragungszyklus, 20. An diesem Punkt wurde noch keine Entscheidung darüber getroffen, ob dieser Zyklus eine normale Datenübertragung oder eine Datenstromübertragung sein wird. Nachdem der Zyklus begonnen hat, stellt der Bus-Master fest, ob die Slave-Einrichtung Datenstromübertragungen unterstützt, 22. Wenn nicht, wird ein normaler Bus-Zyklus ausgeführt, 24. Unterstützt der Slave Datenströme, wird, unter der Annahme, daß der Master dies ebenfalls tut, eine Prüfung durchgeführt, 26, um festzustellen, ob die Übertragung abgeschlossen ist. Wenn nicht, werden die Daten übertragen, 28, und die Steuerung geht zu Schritt 26. Während der Zeit, in der die Steuerung zwischen den Schritten 26 und 28 schleift, können die übrigen an den Bus angeschlossenen Einrichtungen nur erkennen, daß der ursprünglich in Schritt 20 begonnene Bus-Zyklus noch nicht abgeschlossen ist. Daher ignorieren sie sämtliche Signalveränderungen, die während der Blockdatenübertragung auftreten.
  • Wenn die Übertragung abgeschlossen ist, was bei Schritt 26 geprüft wird, wird der normale Bus-Zyklus abgeschlossen, 24. Die übrigen Einrichtungen am Bus funktionieren dann wieder normal. Es ist möglich, daß nur eine einzige Datenübertragung mit der höheren Übertragungsrate stattfindet, wobei wenig oder gar nichts gewonnen ist. Jedoch kann die maximale Anzahl von Datenelementen, die übertragen werden können, ziemlich hoch sein. In vielen Systemen wird die Höchstanzahl von einer zeitlichen Begrenzung des Busses bestimmt. Da bei Schritt 20 ein Datenzyklus begonnen, jedoch nicht abgeschlossen wurde, reagiert ein typischer Bus-Zeitbegrenzungs-Controller so, als ob die Slave-Einrichtung überhaupt nicht geantwortet hätte.
  • Die Figuren 3 und 4 sind Flußdiagramme, die die Funktion des Bus-Masters 12 beziehungsweise des Slaves 14 erläutern. Obwohl die einzelnen Schritte sequentiell dargestellt sind, werden einige Schritte in Wirklichkeit parallel ausgeführt. Zum Beispiel werden die Schritte 34 und 38 in Figur 3 in Wirklichkeit gleichzeitig ausgeführt. Auch die Schritte 40, 44 und 46 werden zusammen ausgeführt. Solche Implementierungsdetails werden in der gleichen Weise ausgeführt, wie vorher beim Mikrokanal-Bus.
  • Figur 3 ist ein detailliertes Flußdiagramm, das die Arbeitsweise eines Bus-Masters 12 erläutert, wie er in dem bevorzugten Ausführungsbeispiel verwendet wird. Wenn der Master 12 keine Datenstromübertragungen unterstützt, arbeitet er einfach im Normalmodus. Das Flußdiagramm der Figur 3 erläutert den Steuerungsfluß innerhalb eines Bus-Masters 12, der Datenstromübertragungen unterstützt.
  • Am Beginn eines Bus-Zyklus meldet der Master die Adresse und die Auswahl-Signale 30. Das Auswahl-Signal, SELECT, ist ein Signal, das anzeigt, ob es sich bei der auf dem Bus plazierten Adresse um eine Speicheradresse oder eine Adresse für einen E/A-Port handelt. Für eine Datenstromübertragung muß nur eine einzige Adresse gemeldet werden. Der Master 12 und der Slave 14 inkrementieren beide automatisch bei jeder Übertragung eines Datenelementes eine interne Adresse; dieser Vorgang wird nachfolgend beschrieben. Der Vorgang ist den Blockübertragungen nach dem bisherigen Stand der Technik in gewisser Weise analog, bei denen eine Startadresse und die Anzahl der zu übertragenden Datenelemente die einzigen adreßbezogenen Signale sind, die von einer DMA-Einrichtung benötigt werden. Bei DMA-Übertragungen nach dem bisherigen Stand der Technik meldet der DMA-Controller jedoch im typischen Fall eine Adresse für jedes übertragene Datenelement. In dem hier beschriebenen System inkrementieren sowohl der Master 12 als auch der Slave 14 die Adressen intern, so daß der Adreßbus nach Beginn der Datenstromübertragung nicht für Adressen benutzt wird. Wie nachfolgend beschrieben wird, wird in dem hier beschriebenen System keine Blocklänge im voraus definiert. Stattdessen kann die Übertragung entweder vom Master 12 oder vom Slave 14 beendet werden.
  • Kurz nachdem die Adresse gemeldet wurde, wird ein LESE/SCHREIB-Signal gemeldet, 32. Dieses Signal gibt an, ob Daten vom Master 12 zum Slave 14 übertragen werden sollen (Schreibzyklus) oder von der Slave-Einrichtung 14 zum Master 12 (Lesezyklus).
  • Als nächstes wird ein Adressen-Pufferungssignal, ADL, gemeldet, 34. Dieses Signal zeigt an, daß die im Augenblick auf den Adreßleitungen des Busses 10 befindliche Adresse gültig ist und bewirkt in der Regel, daß die Slave-Einrichtung 14 die Adresse in ihre internen Puffer schreibt. Die Bus-Definitionen schreiben im typischen Fall eine minimale Verzögerungszeit zwischen dem Zeitpunkt, an dem die Adressen gültig werden, und dem Zeitpunkt ihrer Pufferung mit dem ADL-Signal vor.
  • Der Bus-Master 12 bestimmt die Datenbreite, mit der er kommunizieren kann, 36. Einem Master 12 ist es eventuell nicht möglich, Daten mit der maximalen vom Bus 10 ermöglichten Breite zu übertragen. Beispiel: Bei einem 32-Bit Datenbus kann es sein, daß eine gegebene Einrichtung, die für diesen Zyklus als Bus-Master eingesetzt wird, nur 8 oder 16 Bits gleichzeitig übertragen kann. Bei den meisten Bus-Mastern verändert sich die maximale Breite des Masters nicht und ist in der Regel zu einem festen Zeitpunkt in der Vergangenheit festgelegt worden. Die Ergebnisse dieser Festlegung sollten jedoch bei Schritt 36 zur Verfügung stehen.
  • Handelt es sich bei der aktuellen Datenübertragung um eine Schreiboperation, bei der Daten vom Master zum Slave übertragen werden, meldet der Master 12 die Daten an (plaziert sie auf dem Datenbus), 38. Diese Daten können gleichzeitig mit ADL gemeldet werden. Der Master 12 meldet außerdem BE(0..3), 39, wobei es sich um ein 4-Bit-Signal handelt, das anzeigt, welche Bytes des Datenbusses zur Datenübertragung während eines normalen Zyklus verwendet werden. Dieses Signal hat während bestimmter Blockübertragungen noch eine zusätzliche Verwendungsmöglichkeit, wie nachfolgend beschrieben wird. Der Master beginnt dann den Datenzyklus 40, indem er den Bustakt umstellt. In dem bevorzugten, in Figur 5 erläuterten Ausführungsbeispiel, wird das hohe Taktsignal heruntergesteuert, um den Datenzyklus zu starten.
  • Wenn der Datenzyklus beginnt, stellt der Master 12 fest, ob der Slave 14 für die Datenübertragung bereit ist, 42. Dies geschieht durch Abtasten einer vom Slave 14 angetriebenen Steuerleitung, die anzeigt, ob der Slave 14 bereit ist. Ist der Slave 14 nicht bereit, geht die Steuerung weiter zu Schritt 80 (Figur 3c). Wenn der Slave 14 bereit ist, bestimmt der Master 12 die Datenbreite, 44, die von dem Slave abgewickelt werden kann. Die Breite wird auf für diesen Zweck reservierten Steuerleitungen erfaßt, die von dem gerade adressierten Slave bei jedem normalen Bus-Taktzyklus angetrieben werden. Ist die Master-Wortbreite größer als die vom Slave 14 unterstützte, muß der Master 12 diesen Zyklus abbrechen oder abschließen und dieselben Daten in entsprechend kleineren Segmenten, die der Slave annehmen kann, erneut senden.
  • In einem bevorzugten Ausführungsbeispiel wird die Datenbreite des Slave von einem Geräte-Größe-Signal DS(16.32) angezeigt, kombiniert mit MSDR, woraus sich ein 3-Bit-Signal ergibt. Die möglichen Werte von DS(16.32) und MSDR und die Bedeutungen, die jeder Werte-Permutation entsprechen, sind in Tabelle I dargestellt. Der Master 12 überträgt die Daten mit der geringeren Wortbreite des Masters und des Slaves. Tabelle I Datenbreite Reserviert
  • Alle Übertragungen mit 8, 16 und 32 Bit erfolgen auf den Datenleitungen. Bei 64-Bit-Übertragungen müssen Daten auch auf dem Adreßbus übertragen werden, wie nachfolgend beschrieben wird.
  • Bis einschließlich Schritt 44 entsprechen die vom Master 12 ausgeführten Aktionen den Vorgängen, die auch in jedem Bus- Zyklus ausgeführt werden. Das heißt, zur Unterstützung der Datenstromübertragung wurden noch keine speziellen Aktionen unternommen.
  • In Schritt 46 wird von dem Master 12 ein SDR-Signal geprüft, um festzustellen, ob dieses gültig ist. Das SDR-Signal zeigt an, ob die Slave-Einrichtung, 14, Datenstromübertragungen unterstützt. Wenn nicht, geht die Steuerung nach Schritt 47 (Figur 3B). Wenn der Master während dieses Bus-Zyklus Leseoperationen ausführte, holt er die Daten vom Datenbus, 47, und schließt den Datenzyklus ab, 48. Der Datenzyklus wird abgeschlossen, indem das niedrige Taktsignal hochgesteuert wird. Wenn das LESE/SCHREIB-Signal immer noch niedrig ist, müßte auch dieses Signal hochgesteuert werden. Das LESE/SCHREIB- Signal kann nach Prüfen des SDR-Signals jederzeit hochgesteuert werden. An diesem Punkt hat der Master 12 einen normalen Bus-Zyklus abgeschlossen.
  • Wenn der Slave 14 tatsächlich die Datenstromübertragung unterstützt, geht der Steuerungsfluß bei Schritt 49 weiter. Wenn der Master 12 nur ein einziges Datenelement zu übertragen hat, schließt er im typischen Fall einen normalen Datenzyklus ab, indem er die Übertragungssteuerung, unabhängig von Zustand des SDR-Signals von der Slave-Einrichtung, zwangsweise zu Schritt 47 führt.
  • Wird die Datenstromübertraqung eingeleitet, bewirkt der Master 12 zunächst, daß die Adreßleitungen 49 drei verschiedene Zustände annehmen können. Bei einer 64-Bit-Übertragung signalisiert der Master dann bei 50, daß die Adreßleitüngen für Daten genutzt werden. Für diese Signalisierung werden vorzugsweise alle BE(0..3)-Leitungen hochgesteuert. Dieser Schritt wird nur dann ausgeführt, wenn sowohl vom Master 12 als auch vom Slave 14 64-Bit-Übertragungen unterstützt werden. Handelt es sich um einen Schreibzyklus, legt der Master die zusätzlichen Daten auf die Adreßleitungen, bevor die erste Übertragung stattfindet. Der Master stellt anschließend fest, welche Übertragungsrate von der Slave-Einrichtung maximal unterstützt werden kann, 51. In einem bevorzugten Ausführungsbeispiel verwendet der Slave zur Anzeige dieser Übertragungsrate dasselbe SDR-Signal, mit dem er auch anzeigt, ob er eine Datenstromübertragung unterstützt. Tabelle II Arbeitsweise und Geschwindigkeit Normaler Übertragungszyklus
  • In einem bevorzugten Ausführungsbeispiel ist das Signal SDR ein 2-Bit-Signal, die vier möglichen Werte sind in Tabelle II angegeben. Die Bit-Paare 00, 10 und 01 zeigen an, daß der Slave 14 Datenstromübertragungen bei 20 MHz, 16 MHz beziehungsweise 10 MHz unterstützen kann. Diese Taktrateen entsprechen den Hochgeschwindigkeits-Taktzykluszeiten von 50ns, 62,5ns und 100ns.
  • Ist das vom Slave 14 gesetzte SDR-Signal 11, unterstützt der Slave Datenstromübertragungen überhaupt nicht und der Mater 12 bewirkt dann nur, daß der normale Übertragungszyklus, wie oben beschrieben, verwendet wird. Es handelt sich hier um den vom Master 12 in Schritt 46 überprüften Wert. Beträgt der SDR-Wert 11, wird das SDR-Signal als nicht gültig betrachtet.
  • Nachdem die Übertragungsrate festgestellt wurde, 51, steuert der Master 12 einen Hochgeschwindigkeitstakt an (Schritt 52), der als SD-STROBE bezeichnet wird. Es handelt sich hierbei um einen freilaufenden Takt, der von dem normalen Bustakt als vollständig getrenntes Signal zu betrachten ist.
  • Wie weiter oben beschrieben, wird der normale Bustakt bei einem normalen Buszyklus in Schritt 40 heruntergesteuert und in Schritt 48 zum Abschließen des Bus-Zyklus hochgesteuert. Bei einer Datenstromübertragung bleibt der normale Bustakt während der gesamten Übertragung niedrig.
  • Der nächste vom Master 12 auszuführende Schritt ist das Auftasten der Daten 54 (Figur 3b). Das heißt, der Master 12 wartet auf den nächsten Zyklus von SD STROBE. In einem bevorzugten Ausführungsbeispiel bewirken die Übergänge von SD STROBE von hoch nach niedrig tatsächlich das Auftasten der Daten, auf das in Schritt 54 Bezug genommen wurde.
  • Es kann sein, daß der Slave 14 zum Zeitpunkt der Datenauftastung noch nicht für die Datenübertragung bereit ist. Der Slave meldet diesen Zustand auf einer für diesen Zweck reservierten Signalleitung, die vom Master abgetastet wird (Schritt 56), und zwar zu dem Zeitpunkt, an dem SD STROBE von hoch nach niedrig übergeht. Wenn der Slave 14 nicht bereit ist, muß die Datenübertragung erneut versucht werden. Wenn daher der Master 12 auf den Slave 14 schreibt, werden dieselben Daten bei 58 nochmals auf den Datenleitungen angemeldet und die Steuerung kehrt zu Schritt 54 zurück.
  • Nachdem der Slave 14 die Daten erfolgreich übertragen hat, wie durch die Ja-Abzweigung von Schritt 56 angezeigt wird, prüft der Master 12 bei 60, ob das von dem Slave 14 angesteuerte SDR-Signal noch gültig ist. SDR ist nicht gültig, wenn SDR(0.1)=11, wie in Tabelle II gezeigt. Wenn SDR nicht gültig ist, wird hiermit angezeigt, daß der Slave 14 gerade dabei ist, die Datenübertragung zu beenden, und der Master 12 überträgt die Steuerung auf Schritt 62, wodurch der Hochgeschwindigkeitstakt (SD STROBE) gestoppt wird. Der Slave 14 muß das Beenden der Datenübertragung anzeigen, bevor das letzte Datenelement übertragen ist. Das heißt, nachdem der Slave 14 die Übertragung beendet hat, wird ein letztes Datenelement übertragen, wenn der normale Datenzyklus in Schritt 48 abgeschlossen wird.
  • Wenn das SDR-Signal in Schritt 60 gültig bleibt, geht die Steuerung zu Schritt 64 weiter. Wenn der Master 12 Daten vom Slave 14 liest, holt er die Daten 64 vom Bus und speichert sie in seinen internen Puffern. Anschließend inkrementiert der Master seine interne Adresse, 66. Nachdem er seine Adresse inkrementiert hat, meldet der Master, wenn er Daten auf den Slave schreibt, das nächste Datenelement an, 68.
  • Anschließend prüft der Master in Schritt 70, ob es sich bei diesem Zyklus um den verletzten Zyklus des Masters handelt. Wenn nicht, sind noch mindestens zwei weitere Datenelemente zu übertragen und der Steuerungsfluß kehrt zu Schritt 54 zurück.
  • Handelt es sich um den verletzten Zyklus des Masters, meldet der Master den Anzeiger des letzten Zyklus, 72. In dem bevorzugten Ausführungsbeispiel erfolgt die Anzeige des letzten Zyklus durch Hochsteuern des LESE-/SCHREIB-Signals, welches ursprünglich in Schritt 32 angemeldet wurde. Die Daten werden dann aufgetastet, 74, und es erfolgt eine Prüfung, 76, um festzustellen, ob der Slave bereit ist. Wenn nicht, werden dieselben Daten erneut angemeldet, wenn der Master auf den Slave schreibt, 78, und der Steuerungsfluß kehrt zu Schritt 74 zurück. Wie in Figur 5 gezeigt, erfolgt diese Feststellung der Bereitschaft des Slaves 14, indem darauf gewartet wird, daß die SDR-Signale in den hohen Zustand übergehen.
  • Ist der Slave in Schritt 76 bereit, wird der Hochgeschwindigkeitstakt (SD STROBE) gestoppt, 62, die Daten werden geholt, 47, wenn der Master vom Slave liest, und der Datenzyklus wird abgeschlossen, 48. Das letzte zu übertragende Datenelement wird immer bei Abschluß des normalen Zyklus übertragen, unabhängig davon, ob die Datenstromübertragung von dem Master 12 oder dem Slave 14 beendet wurde.
  • Gehen wir zu Schritt 42 zurück; wenn der Slave 14 nicht bereit war, ging die Steuerung nach Schritt 80, Figur 3c. In Schritt 80 wartet der Master 12 eine vorgeschriebene Mindestverzögerung ab und bestimmt dann die Datenbreite des Slaves 14, 82. Während dieser Verzögerung muß der Slave ein gültiges Datenbreitensignal anmelden, auch wenn er ansonsten nicht bereit ist. Diese Verzögerung erlaubt ein einwandfreies Funktionieren eines Bus-Konverters, der zum Anschließen eines zweiten Busses an den Bus 10 verwendet wird, wie in der Technik bekannt ist. Diese Verzögerung war bereits früher im Entwurf des Mikrokanal-Busses enthalten.
  • Zu dem Zeitpunkt, an dem die Datenbreite des Slaves, 14, festgestellt wird, 82, wird das SDR-Signal erneut auf Gültigkeit getestet, 84. SDR muß auch in Schritt 80 gemeldet werden, auch wenn der Slave 14 ansonsten nicht bereit ist. Wenn SDR jetzt gültig ist, wartet der Master 12, bis der Slave 14 bereit ist, 86, und der Steuerungsfluß kehrt zu Schritt 49 zurück (Figur 3a), um eine Datenstromübertragung mit hoher Geschwindigkeit auszuführen.
  • Werden Datenstromübertragungen vom Slave 14 nicht unterstützt, führt der Schritt 84 zu einem ungültigen SDR-Signal, und in Schritt 87 setzt der Master 12 das LESE/SCHREIB-Signal zurück. Wenn der Slave 14 bereit ist, die normale Busübertragung abzuschließen (Schritt 88), kehrt die Steuerung zu Schritt 47, Figur 3b, zurück und die normale Übertragung wird abgeschlossen.
  • Figur 4 erläutert die von der Slave-Einrichtung 14 bei einer Datenübertragung ausgeführte Schrittfolge. Vor einem neuen Datenzyklus plaziert der Master die entsprechende Adresse auf den Adreßleitungen und diese werden von dem Slave decodiert, 90. Der Slave 14 meldet dann bei 92 den Teil DS(16.32) seiner Gerätegröße an. Wie in Tabelle 1 gezeigt, ist für 64-Bit- Übertragungen DS(16.32) = 00 und MSDR = 0.
  • Wenn der Slave 14 nicht bereit ist, Daten zum Zeitpunkt der Zwischenspeicherung der Adresse, 90, zu übertragen, signalisiert er auf einer speziell für diesen Zweck reservierten Leitung (CHRDY in Figur 5), daß er nicht bereit ist, 96.
  • Die nächste vom Slave 14 durchgeführte Aktion hängt davon ab, ob er in der Lage ist, Datenstromübertragungen zu unterstützen, wie in Schritt 98 festgestellt wurde. Ist der Slave hierzu in der Lage, meldet er in Schritt 99 die Datenstromrate an, die von ihm abgewickelt werden kann. Diese Übertragungsrate wird aus Tabelle 2 ausgewählt. Wenn der Slave 14 64-Bit-Übertragungen abwickeln kann, meldet er gleichzeitig das Signal MSDR. MSDR kann jederzeit, nachdem es aufgetastet wurde, in den Drei-Zustands-Wert zurückgeführt werden, wenn der normale Bustakt abfällt, es sei denn, der Slave 14 war nicht bereit. Der Slave testet, ob er bereit ist, 100, wenn ja, signalisiert er dies in Schritt 101. Der Datenzyklus beginnt, 102, wenn der Master 12 den Bustakt antreibt (Schritt 40 in Figur 3). Es wird eine Prüfung durchgeführt, 104, um festzustellen, ob sich der Master 12 während des anstehenden Datenzyklus darauf vorbereitet, sein letztes Datenelement zu übertragen. Wenn nicht, legt der Slave 14 in Schritt 106 fest, ob er für die Übertragung des nächsten Datenelements bereit ist, oder nicht, wenn nicht, signalisiert er dem Master 12 ein Nicht bereit, 108. Wenn der Slave 14 bereit ist und wenn es sich um einen Lese-Zyklus handelt, meldet der Slave dem Bus in Schritt 110 Daten. Handelt es sich um eine 64-Bit-Leseoperation, werden die Daten sowohl auf den Adreßleitungen als auch auf den Datenleitungen angemeldet. 64-Bit-Übertragungen werden vom Master 12 in Schritt 50 von Figur 3 angezeigt.
  • Als nächstes werden die Daten aufgetastet, 112; wenn es sich um eine Schreiboperation vom Master 12 zum Slave 14 handelt, holt der Slave 14 die Daten vom Bus 114 und lädt sie in seine internen Puffer. Wenn es sich um eine 64-Bit-Übertragung handelt, werden die Daten wieder sowohl von den Adreßleitungen als auch von den Datenleitungen gelesen. Der Slave 14 inkrementiert dann seine interne Adresse 116 und stellt fest (Schritt 118, Figur 4b), ob dies der vorletzte Zyklus des Slave ist. Es handelt sich hier um eine Feststellung des Status der Slave-Einrichtung 14; daher bestimmt bei einigen Übertragungen die Slave-Einrichtung 14 die Größe der Datenstromübertragung. Diese Situation kann zum Beispiel in einem System auftreten, in dem der Slave eine gepufferte E/A-Einrichtung mit einer begrenzten Puffergröße ist. Bei einem Lesezyklus (Slave an Master) weiß der Slave, wieviele Daten er zu übertragen hat, und kann die Übertragung beenden, wenn alle Daten übertragen sind. Bei einer Schreiboperation (Master an Slave) kann es vorkommen, daß der Slave eine Übertragung beenden muß, um einen Pufferüberlauf zu verhindern.
  • In jedem Fall kehrt die Steuerung zu Schritt 104 zurück, wenn der Slave 14 nicht darauf vorbereitet ist, die Übertragung nach dem nächsten Datenelement zu beenden. Wenn sich der Slave tatsächlich darauf vorbereitet, die Übertragung zu beenden, prüft er, ob er bereit ist, 120, wenn nicht, wird ein Signal Nicht bereit gegeben, 122. Wenn der Slave bereit ist und es sich bei der Datenübertragung um eine Leseoperation handelt, meldet er sein letztes Datenelement an, 124.
  • Der Slave 14 setzt dann seine SDR-Rate in Schritt 126 auf 11 zurück. Dies wird vom Master 12 als eine Beendigung der Übertragung durch den Slave interpretiert, wie in Verbindung mit Figur 3 (Schritt 60) beschrieben wurde. Der Datenzyklus wird dann abgeschlossen, 128; wenn es sich hierbei um eine Schreibübertragung handelte, holt der Slave 14 die Daten vom Bus 130 und speichert sie in seinen Puffern zwischen.
  • Wenn der Master 12 die Übertragung beendet, wird bei Schritt 104 die Ja-Abzweigung genommen, wodurch die Steuerung nach Schritt 132 weitergegeben wird. Wie in Zusammenhang mit Figur 3 beschrieben wurde, wird durch Erhöhen des LESE/SCHREIB-Signals das Beendigungsereignis des Masters angezeigt. Wenn der Slave 14 nicht bereit ist, 132, geht er einfach in Wartestellung. Wenn er bereit ist, antwortet der Slave, indem er die SDR-Rate in Schritt 134 auf 11 zurücksetzt. Handelt es sich um eine Leseübertragung, plaziert der Slave seine Daten auf dem Bus 136 und wartet, bis der Datenzyklus abgeschlossen ist, 128. Wie im üblichen Fall werden die Daten, wenn es sich um eine Schreibübertragung handelt, nach Abschluß des Zyklus vom Bus 130 geholt.
  • Wenn der Slave 14 in Schritt 132 nicht bereit ist, ist es nicht notwendig, diesen Zustand zu signalisieren, wie es in den Schritten 96 und 122 geschieht. Wenn der Master 12 die Übertragung beendet und das LESE/SCHREIB-Signal erhöht, signalisiert der Slave 14 stattdessen, daß er bereit ist, indem er die SDR-Rate (Schritt 134) zurücksetzt. Dieses Handshaking-Protokoll verhindert, daß der Master 12 den Zyklus beendet, bevor der Slave 14 bereit ist, das letzte Datenelement zu übertragen.
  • Kehren wir zu Schritt 98 zurück; wenn der Slave 14 tatsächlich keine Datenstromübertragungen unterstützt, verzweigt die Steuerung zu Schritt 144. Der Slave 14 wartet, bis er bereit ist, 144, wenn er bereit ist, signalisiert er diese Bereitschaft, 142. Der normale Datenzyklus beginnt, 140, wenn es sich um einen Lesezyklus handelt, meldet der Slave 14 die Daten, 136. Der Datenzyklus wird dann, wie oben beschrieben, abgeschlossen, 128.
  • Figur 5 ist ein Zeittakt-Diagramm, das die meisten der in Verbindung mit den Figuren 3 und 4 beschriebenen Operationen für eine Beispielübertragung erläutert. Die beschriebene Beispielübertragung ist eine Datenstromübertragung mit vier Worten. Es werden verschiedene Optionen erläutert, zum Beispiel Lese- und Schreibübertragungen sowie vom Master und vom Slave beendete Übertragungen.
  • Die Adreßsignale des Busses 10 sind mit der Bezeichnung ADDR dargestellt. In dem Zeittakt-Diagramm der Figur 5 umfaßt ADDR die Speicher/E/A-Auswahlleitung (SELECT). ADDR ist 32 Bit breit, ohne SELECT. Die Signalleitungen S0 und S1 sind vom Master 12 angetriebene Steuerleitungen, die anzeigen, ob es sich um eine Lese- oder eine Schreibübertragung handelt. Wenn S0 niedrig ist, ist die Übertragung eine Lese-Übertragung. Wenn S1 niedrig ist, handelt es sich um eine Schreibübertragung. S0 und S1 können nicht beide gleichzeitig niedrig sein.
  • Das Signal BE(0..3) zeigt an, welche Bytes des 32-Bit-Datenbusses die Daten übertragen. Es wird außerdem vom Master 12 verwendet, um anzuzeigen, daß eine 64-Bit-Übertragung stattfindet. Das Signal ADL ist das Signal, das zum Zwischenspeichern der Adresse verwendet wird, CMD ist der normale Bustakt. SD STROBE ist der Hochgeschwindigkeitstakt, der bei Datenstromübertragungen verwendet wird. Die Signale ADDR, S0, S1, BE(0..3), ADL, CMD und SD STROBE werden vom Bus-Master 12 angetrieben.
  • Das Signal DATA enthält 8, 16 oder 32 Bit von parallelen Daten, je nachdem, welche Datenbreite sowohl vom Master 12 als auch vom Slave 14 unterstützt wird. Die DATA-Leitungen werden bei einer Schreibübertragung vom Master 12 und bei einer Leseübertragung vom Slave 14 angesteuert.
  • Der Slave 14 verwendet das Signal CHRDY, um anzuzeigen, ob er bereit ist, Daten zu übertragen, wie in Verbindung mit Figur 4 beschrieben. Das 2-Bit-Signal SDR(0.1) zeigt an, ob der Slave 14 Datenstromübertragungen unterstützt oder nicht, außerdem die Geschwindigkeit solcher Übertragungen, wenn sie unterstützt werden, wie in Tabelle II definiert. MSDR zeigt an, ob der Slave 14 64-Bit-Übertragungen unterstützt. Das 2-Bit-Signal DS(16.32) zeigt die Wortbreite des Slave an, wenn es mit MSDR kombiniert wird, wie in Tabelle I definiert. Die Signale CHRDY, SDR(0.1), MSDR und DS(16.32) werden vom Slave 14 angetrieben.
  • Zunächst kann nicht garantiert werden, daß die Adreßleitungen gültige Werte enthalten, 200. Um eine Übertragung einzuleiten, steuert der Master, 12, gültige Adreßsignale, 202, auf die Leitungen ADDR. Anschließend werden die entsprechenden Lese- oder Schreibsignale S0, S1 heruntergesteuert, 204. Der Slave 14 steuert seine Datenbreite auf DS(16.32), 205, wenn er erkennt, daß er adressiert wurde, 205. Nachdem die ADDR- Signale mindestens während einer definierten Mindestzeit gültig waren, wird ADL heruntergesteuert, 206, um die Adresse in die Puffer des Slaves zwischenzuspeichern. Wenn der Slave 14 den Übergang von ADL erkennt, setzt er die SDR-Signale, 208, um die von ihm unterstützte Übertragungsrate anzuzeigen. Die SDR-Signale werden in der Regel aus einer Drei-Zustands- Bedingung hochgesteuert, 210, wenn die Slave-Einrichtung 14 erkennt, daß sie adressiert wurde. Die Drei-Zustands-Bedingung für die Umsetzung zum hohen Signal wird hierbei nicht durch die Umsetzung von ADL gesteuert, wie es bei den DS-Signalen der Fall war.
  • Eandelt es sich um eine Schreibübertragung, plaziert der Master 12 anschließend Informationen 212 auf DATA, die vorher in die Lage versetzt wurde, drei verschiedene Zustände anzunehmen. Das Signal BE(0..3) wird auf die entsprechenden Werte gesteuert, 213, um anzuzeigen, welche Bytes von DATA für diese Übertragung verwendet werden. Der Master 12 beginnt dann den Datenzyklus, indem er CMD heruntersteuert, 214. Vorzugsweise wird SD STROBE gleichzeitig heruntergesteuert, 216, und ADL wird hochgesteuert, 218. Die in Figur 3 gezeigten Schritte 40, 44, 46, 50 und 52 finden somit gleichzeitig statt, Insofern, als der Master 12 den SD STROBE startet und gleichzeitig die Datenbreite und Übertragungsrate des Slaves bestimmt, zu dem Zeitpunkt, an dem CMD in den niedrigen Zustand übergeht, 214.
  • Nachdem CMD heruntergesteuert wurde, 214, kann der Slave 14 zulassen, daß DS(16.32) undefiniert wird, 219. Handelt es sich um eine Leseübertragung (Slave an Master), steuert der Slave in Antwort auf den Übergang hoch-niedrig von CMD, 214, das erste Datenelement (D0) auf die Datenleitungen, 220.
  • 64-Bit-Übertragungen müssen sowohl vom Master 12 als auch vom Slave 14 unterstützt werden. Handelt es sich um eine 64-Bit- Übertragung, werden die Adreßleitungen vom Master 12 in die Lage versetzt, drei verschiedene Zustände anzunehmen, 221, nachdem CMD heruntergesteuert wurde, 214. Anschließend werden alle BE(0..3) hochgesteuert, 222, um dem Slave 14 anzuzeigen, daß eine 64-Bit-Übertragung stattfinden soll. In Antwort auf den BE(0..3)-Übergang, 222, werden die Daten auf den Adreßleitungen plaziert, 223. Bei einer Schreibübertragung legt der Master 12 diese Daten auf ADDR, bei einer Leseübertragung legt der Slave 14 diese Daten auf ADDR. Das Handshaking der Übergänge ADDR - BE(0..3) und BE(0..3) - ADDR verhindert Kollisionen zwischen Adreß- und Datensignalen auf ADDR.
  • Das SD-STROBE-Signal läuft jetzt frei. Die Schritte "Daten auftasten" der Figuren 3 und 4 finden bei den Hoch-Niedrig- Übergängen 224, 225, 226 und 228 von SD STROBE statt. Nach jedem solchen Übergang plaziert die Einrichtung, die Daten auf den Bus steuert, das nächste Datenelement auf DATA, bei 64-Bit-Übertragungen auf ADDR. Solange der Slave mit der Übertragung Schritt halten kann, wird für jeden Zyklus von SD STROBE ein neues Datenelement in DATA und ADDR plaziert.
  • In dem Beispiel der Figur 5 stellt der Slave beim zweiten Hoch-Niedrig-Übergang, 224, von SD STROBE fest, daß er das Datenelement D1 im nächsten Zyklus nicht mehr übertragen kann. Diese Feststellung wird in Schritt 106 der Figur 4 getroffen. Da der Slave 14 nicht für die Übertragung des nächsten Datenelementes bereit ist, steuert er das Signal CHRDY herunter, 230. Wenn das Signal SD STROBE den nächsten Hoch- Niedrig-Übergang durchmacht, 225, erkennt der Master 12, daß der Slave 14 seine Nicht-Bereitschaft angezeigt hat, und zwar in Schritt 56 von Figur 3.
  • Das Signal SD STROBE läuft weiter, auch wenn keine Daten übertragen werden. Handelt es sich um einen Schreibzyklus, plaziert der Master 12 auch weiterhin dieselben Daten auf dem Bus. Bei einem Lesezyklus ignoriert der Master alle Daten, die sich in dem Moment auf dem Bus befinden, da angenommen wird, daß diese Daten ungültig sind. Figur 5 zeigt, daß CHRDY von dem Slave 14 nur für einen einzigen Taktzyklus niedrig gehalten wird, es kann jedoch gegebenenfalls auch länger niedrig gehalten werden. Wenn der Slave 14 bereit ist, das nächste Datenelement zu übertragen, geht die Steuerung in Figur 4 weiter nach Schritt 110 und CHRDY darf nach oben gehen, 232. Beim nächsten Hoch-Niedrig-Übergang von SD STROBE, 226, erkennt der Master 12, daß die Daten ordnungsgemäß übertragen wurden, und setzt seine normale Arbeit fort.
  • Eine vom Master beendete Übertragung wird angezeigt, wenn der Master 12 das entsprechende Signal, S0 oder S1, hochsteuert, 234. Dies wird vorzugsweise gleichzeitig mit einem Hoch-Niedrig-Übergang, 228, von SD STROBE durchgeführt. Dieser Übergang, 234, wird in Schritt 104 der Figur 4 erkannt, und der Slave 14 steuert, wenn er bereit ist, die Signale SDR(0.1) hoch, 236. Dies wird in Schritt 134 von Figur 4 gezeigt. Nachdem der Slave 14 seine Bereitschaft angezeigt hat, 236, steuert der Master 12 CMD hoch, 238, um den Datenzyklus zu beenden. Dieser Vorgang wird in Schritt 48 von Figur 3 und Schritt 128 von Figur 4 gezeigt. Das letzte Datenelement, D3 in Figur 5, wird während des positiven Übergangs von CMD, 238, übertragen.
  • Nachdem der Slave 14 den Niedrig-Hoch-Übergang, 238, von CMD erkannt hat, versetzt er, wenn es sich um eine Leseübertragung handelte, SDR(0.1) 240, DATA 242 und ADDR 243 in die Lage, drei verschiedene Zustände anzunehmen, um Buskollisionen mit anderen Einrichtungen zu verhindern.
  • Wenn der Slave 14 die Übertragung beendet, zeigt er dies durch einen Niedrig-Hoch-Übergang 244 von SDR(0.1) an. Der Master 12 erkennt diesen Übergang asynchron, so daß der Zeitpunkt des Übergangs 244 nicht mit SD STROBE synchron sein muß. Der Master 12 erkennt diesen Übergang in Schritt 60 von Figur 3. In Antwort auf die Übertragung-Ende-Meldung 244 vom Slave 14 steuert der Master 12 S0 oder S1 hoch, 246, und steuert außerdem CMD hoch, 238. Wie zuvor, wird das letzte Datenelement D3 beim Übergang niedrig-hoch von CMD, 238, übertragen. Außerdem werden DATA, ADDR und SDR(0.1) in die Lage versetzt, drei verschiedene Zustände anzunehmen, nachdem CMD hochgesteuert wurde.
  • Die übrigen Einrichtungen am Bus sind von der Übertragung der Figur 5 vollständig unbeeinflußt, weil CMD während der gesamten Übertragung niedrig blieb. Beim Heruntersteuern von ADL, 206, wurden die übrigen Einrichtungen, die nicht adressiert wurden, freigeschaltet. Dieser freigeschaltete Zustand wird nur bei CMD-Übergängen von niedrig nach hoch beendet, 238. Für die übrigen Einrichtungen sieht die Datenstromübertragung einfach wie eine verlängerte normale Übertragung aus.
  • Die bei einer normalen Übertragung stattfindenden Vorgänge sind links von der ersten gestrichelten Linie, 250, sowie rechts von der zweiten gestrichelten Linie, 252, dargestellt. Bei einer normalen Übertragung geht CMD nach unten, 214, D0 wird vom Master 12 oder vom Slave 14 auf dem Datenbus plaziert, und genau dieses Element D0 wird übertragen, wenn CMD von niedrig nach hoch übergeht, 238. Wie bereits weiter oben beschrieben, bleiben die übrigen Einrichtungen am Bus von allen zwischen den gestrichelten Linien stattfindenden Vorgängen unbeeinflußt.
  • Die Details der Bus-Schnittstellen, die zur Implementierung des oben beschriebenen Masters und Slaves benötigt werden, sind von einem Fachmann beherrschbar. Die Schnittstellen können programmierbare logische Anordnungen oder andere programmierbare Elemente nutzen, damit die Anzahl der Einzelelemente gering bleibt.
  • Wie der Fachmann erkennen wird, erlaubt die oben beschriebene Datenstromübertragung eine sehr hohe Übertragungsrate für Blockdaten. Sie ermöglicht sowohl Einrichtungen mit hoher Leistung als auch Einrichtungen mit niedriger Leistung eine normale Arbeitsweise am selben Bus. Diejenigen Elemente, für die eine Blockübertragung mit hoher Geschwindigkeit geeignet ist, wie zum Beispiel Massenspeicher-Controller und Bildschirm-Controller, können die Datenstromübertragung nutzen, während bei anderen Elementen in erster Linie der Kostenfaktor berücksichtigt werden kann. Da die Daten sowohl auf den Adreßleitungen als auch auf den Datenleitungen übertragen werden können, wird die effektive Übertragungsrate verdoppelt, ohne daß von einem der beteiligten Subsysteme eine höhere Leistung erbracht werden müßte.

Claims (4)

1. Ein System für die Übertragung von Daten in einem Digital-Computer, einen Bus (10) mit Adreßleitungen, Datenleitungen und Steuerleitungen umfassend, ein an den Bus angeschlossenes Master-Subsystem (12), ein an den Bus angeschlossenes Slave-Subsystem (14) und eine Steuerleitung in dem Bus zur Übertragung eines Übertragungsmodus- Signals, das anzeigt, ob die Datenübertragung zwischen dem Master-Subsystem (12) und dem Slave-Subsystem (14) in einem ersten Modus oder einem zweiten Modus stattfinden soll, und bei dem Daten zwischen dem Master-Subsystem (12) und dem Slave-Subsystem (14) auf den Datenleitungen übertragen werden, wenn das System im ersten Modus arbeitet, und Daten zwischen dem Master-Subsystem (12) und dem Slave-Subsystem (14) sowohl auf den Daten- als auch auf den Adreßleitungen übertragen werden, wenn das System im zweiten Modus arbeitet, dadurch gekennzeichnet, daß in dem Bus (10) eine erste Taktleitung für die Übertragung eines ersten Taktsignals (CMD, Figur 5) bereitgestellt wird, und eine weitere Taktleitung in dem Bus (10) zur Übertragung eines Hochgeschwindigkeits-Taktsignals (SD STROBE) bereitgestellt wird, und dadurch, daß, wenn das System in dem ersten Modus arbeitet, die Daten unter Steuerung durch das erste Taktsignal übertragen werden, und wenn das System in dem zweiten Modus arbeitet, die Daten unter Steuerung durch das Hochgeschwindigkeits-Taktsignal übertragen werden.
2. Ein System nach Anspruch 1, bei dem das Hochgeschwindigkeits-Taktsignal (SD STROBE) im Vergleich mit dem ersten Taktsignal (CMD) frei läuft, und daß im zweiten Modus die Daten während eines einzigen Zyklus des ersten Taktsignals übertragen werden.
3. Ein System nach Anspruch 1 oder 2, bei dem, bevor Daten im zweiten Modus übertragen werden, das Master-Subsystem dem Slave-Subsystem auf den Adreßleitungen eine Adresse mitteilt.
4. Ein System nach Anspruch 1, 2 oder 3, desweiteren eine Übertragungsrate-Leitung in dem Bus umfassend, für die Mitteilung eines Übertragungsrate-Signals, bei dem das Hochgeschwindigkeits-Taktsignal mit einer Rate arbeitet, die vom Übertragungsrate-Signal bestimmt wird, wenn das Übertragungsmodus-Signal den zweiten Modus anzeigt.
DE69018100T 1989-01-13 1990-01-11 Datenübertragung über Busadressleitungen. Expired - Fee Related DE69018100T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/297,772 US5109490A (en) 1989-01-13 1989-01-13 Data transfer using bus address lines

Publications (2)

Publication Number Publication Date
DE69018100D1 DE69018100D1 (de) 1995-05-04
DE69018100T2 true DE69018100T2 (de) 1995-10-05

Family

ID=23147683

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69018100T Expired - Fee Related DE69018100T2 (de) 1989-01-13 1990-01-11 Datenübertragung über Busadressleitungen.

Country Status (4)

Country Link
US (1) US5109490A (de)
EP (1) EP0378426B1 (de)
JP (1) JPH02227765A (de)
DE (1) DE69018100T2 (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237670A (en) * 1989-01-30 1993-08-17 Alantec, Inc. Method and apparatus for data transfer between source and destination modules
JP2504206B2 (ja) * 1989-07-27 1996-06-05 三菱電機株式会社 バスコントロ―ラ
JPH0398145A (ja) * 1989-09-11 1991-04-23 Hitachi Ltd マイクロプロセッサ
US5305436A (en) * 1990-04-02 1994-04-19 Hewlett-Packard Company Hose bus video interface in personal computers
US5263172A (en) * 1990-04-16 1993-11-16 International Business Machines Corporation Multiple speed synchronous bus having single clock path for providing first or second clock speed based upon speed indication signals
JPH04233059A (ja) * 1990-06-25 1992-08-21 Internatl Business Mach Corp <Ibm> 情報処理装置
US5301281A (en) * 1991-06-26 1994-04-05 Ast Research, Inc. Method and apparatus for expanding a backplane interconnecting bus in a multiprocessor computer system without additional byte select signals
DE69233194T2 (de) * 1991-10-04 2004-06-09 Bay Networks, Inc., Bedford Verfahren und vorrichtung für simultane paketbus.
JP2599539B2 (ja) * 1991-10-15 1997-04-09 インターナショナル・ビジネス・マシーンズ・コーポレイション 直接メモリ・アクセス装置及びルック・アヘッド装置
US5461705A (en) * 1991-10-23 1995-10-24 Seiko Epson Corporation Information processing device in an electronic apparatus utilizing an accessory control device and methods of application
US5410641A (en) * 1991-10-23 1995-04-25 Seiko Epson Corporation Intelligent cartridge for attachment to a printer to perform image processing tasks in a combination image processing system and method of image processing
US5537517A (en) * 1991-10-23 1996-07-16 Seiko Epson Corporation Information processing device in an electronic apparatus utilizing an accessory control device and methods of application
DE69228975T2 (de) * 1991-10-28 1999-11-18 Eastman Kodak Co., Rochester Steuerungsschaltung zur Datenübertragung von einem VME-Bus zu einer SCSI-Platteneinheit
US5592595A (en) * 1991-12-30 1997-01-07 Seiko Epson Corporation Intelligent cartridge for attachment to a printer to perform image processing tasks in a combination image processing system and method of image processing
US5255376A (en) * 1992-01-14 1993-10-19 Sun Microsystems, Inc. Method and apparatus for supporting a dual bit length protocol for data transfers
US5315706A (en) * 1992-05-27 1994-05-24 National Instruments Corporation High speed IEEE 488 bus interface system and method
US5392422A (en) * 1992-06-26 1995-02-21 Sun Microsystems, Inc. Source synchronized metastable free bus
US5631935A (en) * 1993-05-06 1997-05-20 Run-Rad Unlimited Networking, Ltd. Method and apparatus for governing information transfer using an efficient transport protocol
JPH07105023A (ja) * 1993-09-20 1995-04-21 Internatl Business Mach Corp <Ibm> データ処理システム内でスプリアス割込みを検出するための方法及び装置
CA2123447C (en) * 1993-09-20 1999-02-16 Richard L. Arndt Scalable system interrupt structure for a multiprocessing system
US5519876A (en) * 1993-12-23 1996-05-21 Unisys Corporation Processor communications bus having address lines selecting different storage locations based on selected control lines
US5555543A (en) * 1995-01-03 1996-09-10 International Business Machines Corporation Crossbar switch apparatus and protocol
US5638520A (en) * 1995-03-31 1997-06-10 Motorola, Inc. Method and apparatus for distributing bus loading in a data processing system
US5809291A (en) * 1997-02-19 1998-09-15 International Business Machines Corp. Interoperable 33 MHz and 66 MHz devices on the same PCI bus
US5958011A (en) * 1997-03-31 1999-09-28 International Business Machines Corporation System utilizing mastering and snooping circuitry that operate in response to clock signals having different frequencies generated by the communication controller
US5937167A (en) * 1997-03-31 1999-08-10 International Business Machines Corporation Communication controller for generating four timing signals each of selectable frequency for transferring data across a network
US6477143B1 (en) 1998-01-25 2002-11-05 Dror Ginossar Method and apparatus for packet network congestion avoidance and control
US6138200A (en) * 1998-06-09 2000-10-24 International Business Machines Corporation System for allocating bus bandwidth by assigning priority for each bus duration time slot to application using bus frame and bus duration
US20030126413A1 (en) * 2000-01-06 2003-07-03 Tony S. El-Kik Processor system including internal address generator for implementing single and burst data transfers
JP2001249891A (ja) 2000-03-03 2001-09-14 Sony Computer Entertainment Inc エンタテインメント装置
DE50114373D1 (de) * 2001-10-31 2008-11-13 Infineon Technologies Ag Datenübertragungseinrichtung
US6868464B2 (en) * 2002-01-03 2005-03-15 Intel Corporation Method, apparatus, and system for multi-line communication
US7076584B2 (en) * 2003-05-09 2006-07-11 Freescale Semiconductor, Inc. Method and apparatus for interconnecting portions of circuitry within a data processing system
US7571296B2 (en) * 2004-11-11 2009-08-04 Nvidia Corporation Memory controller-adaptive 1T/2T timing control
JP5595248B2 (ja) * 2010-12-02 2014-09-24 三菱電機株式会社 バスマスタ装置及びアドレスおよびデータ設定装置及びバス制御システム及びアドレスとデータの設定方法及びデータ転送要求情報送信方法及びプログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3656123A (en) * 1970-04-16 1972-04-11 Ibm Microprogrammed processor with variable basic machine cycle lengths
US3970997A (en) * 1974-08-29 1976-07-20 Honeywell Information Systems, Inc. High speed peripheral system interface
US4213176A (en) * 1976-12-22 1980-07-15 Ncr Corporation System and method for increasing the output data throughput of a computer
US4514808A (en) * 1978-04-28 1985-04-30 Tokyo Shibaura Denki Kabushiki Kaisha Data transfer system for a data processing system provided with direct memory access units
JPS56140459A (en) * 1980-04-04 1981-11-02 Hitachi Ltd Data processing system
JPS56143049A (en) * 1980-04-04 1981-11-07 Komatsu Ltd Output circuit
US4458308A (en) * 1980-10-06 1984-07-03 Honeywell Information Systems Inc. Microprocessor controlled communications controller having a stretched clock cycle
US4463421A (en) * 1980-11-24 1984-07-31 Texas Instruments Incorporated Serial/parallel input/output bus for microprocessor system
US4424565A (en) * 1981-06-22 1984-01-03 Bell Telephone Laboratories, Incorporated Channel interface circuit with high speed data message header field translation and direct memory access
US4507732A (en) * 1981-10-05 1985-03-26 Burroughs Corporation I/O subsystem using slow devices
US4626985A (en) * 1982-12-30 1986-12-02 Thomson Components - Mostek Corporation Single-chip microcomputer with internal time-multiplexed address/data/interrupt bus
US4665482A (en) * 1983-06-13 1987-05-12 Honeywell Information Systems Inc. Data multiplex control facility
US4691342A (en) * 1983-09-09 1987-09-01 Cts Corporation Multi-speed, full duplex modem
US4570220A (en) * 1983-11-25 1986-02-11 Intel Corporation High speed parallel bus and data transfer method
US4631702A (en) * 1984-02-28 1986-12-23 Canadian Patents and Deveopment Limited--Societe Canadienne des Brevets et d'Exploitation Limitee Computer speed control
US4727491A (en) * 1984-06-27 1988-02-23 Compaq Computer Corporation Personal computer having normal and high speed execution modes
US4835681A (en) * 1984-06-27 1989-05-30 Compaq Computer Corporation Personal computer having normal and high speed execution modes
JPS61133456A (ja) * 1984-11-30 1986-06-20 Sony Corp マイクロプロセツサの出力信号伝送装置
JPS62172458A (ja) * 1986-01-25 1987-07-29 Sharp Corp マイクロコンピユ−タシステムの出力ポ−トデ−タ設定回路
US4860193A (en) * 1986-05-22 1989-08-22 International Business Machines Corporation System for efficiently transferring data between a high speed channel and a low speed I/O device
US4851990A (en) * 1987-02-09 1989-07-25 Advanced Micro Devices, Inc. High performance processor interface between a single chip processor and off chip memory means having a dedicated and shared bus structure
US4851991A (en) * 1987-02-24 1989-07-25 Digital Equipment Corporation Central processor unit for digital data processing system including write buffer management mechanism
JPS63305447A (ja) * 1987-06-05 1988-12-13 Nec Corp メモリアクセス制御回路

Also Published As

Publication number Publication date
EP0378426B1 (de) 1995-03-29
DE69018100D1 (de) 1995-05-04
EP0378426A3 (de) 1991-04-03
US5109490A (en) 1992-04-28
EP0378426A2 (de) 1990-07-18
JPH02227765A (ja) 1990-09-10

Similar Documents

Publication Publication Date Title
DE69018100T2 (de) Datenübertragung über Busadressleitungen.
DE69021594T2 (de) Hochgeschwindigkeitsdatenübertragung auf einem Rechnersystembus.
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE3889366T2 (de) Interface für ein Rechnersystem mit reduziertem Befehlssatz.
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE68922784T2 (de) Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE2448212C2 (de) Asynchrone Sammelleitung zur Kommunikation mit selbstbestimmter Priorität zwischen Mutterrechnergeräten und Tochterrechnergeräten
DE2856483C2 (de)
DE69031658T2 (de) Vorrichtung und verfahren für instandhaltung von cache/zentralspeicherkonsistenz
DE3687367T2 (de) Ein/ausgabe-steuerungssystem.
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE69710515T2 (de) Verfahren und Vorrichtung zur Bestimmung von Wartezuständen auf einer Zyklusbasis in einem Datenverarbeitungssystem
DE69422221T2 (de) Genaue und komplette Übertragung zwischen verschiedenen Busarchitekturen
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69031206T2 (de) Rechnersystem
DE3909896A1 (de) Vorrichtung und verfahren fuer den zugriff zu in einem seitenspeicher gespeicherten daten
DE3732798A1 (de) Datenverarbeitungssystem mit ueberlappendem zugriff auf einen globalen speicher durch eine quelle mit hoher prioritaet
DE4018481A1 (de) Mikroprozessor hold- und lock-schaltung
DE69718710T2 (de) Busbrückenanordnung
DE69124043T2 (de) Arbeitsplatzrechner mit Schnittstellenmitteln zur Datenübertragung zwischen zwei Bussen
DE10214067A1 (de) Hochgeschwindigkeitsdatenschnittstelle auf einem Chip
DE3009530C2 (de)
DE68924893T2 (de) Datenübertragungsverfahren.
DE19580195C2 (de) Verfahren und Einrichtung zur Signalübertragung über eine gemeinsame Leitung

Legal Events

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