-
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.