DE69023677T2 - DMA-Übertragung für Rechnersystem. - Google Patents
DMA-Übertragung für Rechnersystem.Info
- Publication number
- DE69023677T2 DE69023677T2 DE1990623677 DE69023677T DE69023677T2 DE 69023677 T2 DE69023677 T2 DE 69023677T2 DE 1990623677 DE1990623677 DE 1990623677 DE 69023677 T DE69023677 T DE 69023677T DE 69023677 T2 DE69023677 T2 DE 69023677T2
- Authority
- DE
- Germany
- Prior art keywords
- bus
- unit
- data
- controller
- cycle
- 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
Links
- 238000000034 method Methods 0.000 claims description 17
- 239000000872 buffer Substances 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims 4
- 230000007704 transition Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000630 rising effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
Description
- Die vorliegende Erfindung betrifft Direktspeicherzugriffsübertragungen auf Rechnersystemen.
- Zur Verbesserung der Leistung von Rechnersystemen werden häufig Direktspeicherzugriffseinheiten, im folgenden kurz als DMA-Einheiten bezeichnet, zur Übertragung von Daten zwischen Eingabe-/Ausgabeeinheiten (E/A) und dem Systemspeicher eingesetzt. Diese Einheiten sorgen für eine Blockdatenübertragung in beiden Richtungen. Alles, was für eine DMA-Übertragung benötigt wird, ist typischerweise die Bussteuerung, eine Startadresse und eine Länge für die Blockzählung.
- Die Standard-DMA-Schnittstelle zwischen dem Speicher und einer E/A-Einheit funktioniert gut, wenn eine direkte, dedizierte Verbindung zwischen dem DMA-Controller und der E/A- Einheit vorhanden ist. In einigen Systemen ist eine solch enge Kopplung zwischen dem DMA-Controller und den E/A-Einheiten jedoch nicht möglich. Beispielsweise ist im System2-Bus, der in der IBM PS/2-Mikrocomputerserie zum Einsatz kommt und auch als "Micro Channel"-Bus bezeichnet wird, eine solch enge Kopplung zwischen den E/A-Einheiten und dem mit dem Systemspeicher verbundenen DMA-Controller nicht möglich (Micro Channel, PS/2 und IBM sind Warenzeichen der International Business Machines Corporation). In diesen Geräten sind de facto zwei Busse vorhanden. Ein erster Bus, der als Systembus bezeichnet wird, verbindet den Hauptprozessor, den Systemhauptspeicher und einen Eingabe/Ausgabe-Cache-Controller (I/O Cache Controller, im folgenden kurz als IOCC bezeichnet), der die Funktionen einer DMA-Einheit einschließt, miteinander. Ebenfalls mit dem IOCC verbunden ist ein E/A-Bus. Dieser E/A- Bus wird als Micro Channel-Bus bezeichnet.
- Mit dem System verbundene E/A-Einheiten kommunizieren über den E/A-Bus. Mit dem Hauptprozessor und dem Systemspeicher kommunizieren diese Einheiten jedoch nur indirekt, d.h. über den IOCC. Der IOCC leitet die übertragenen Daten an den Hauptprozessor und Systemspeicher weiter.
- Da zwei separate Busse beteiligt sind, kann die DMA-Standardkonfiguration nicht verwendet werden. Alle E/A-Einheiten auf dem E/A-Bus befinden sich in einem E/A-Adreßbereich und müssen vom IOCC separat adressiert werden. Wenn der IOCC also ein Datenelement von einer E/A-Einheit lesen will, muß er zunächst eine Adresse generieren, dieses Datenelement vom E/A-Bus lesen, eine Adresse auf dem Systembus generieren und schließlich das Datenelement auf dem Systembus anordnen. Dadurch entsteht ein System, bei dem die Schnittstelle zwischen den beiden separaten Bussen, d.h. der IOCC, in einem Zyklus auf dem einem Bus lesen und im nächsten Zyklus auf den anderen Bus schreiben muß. Dies führt zu einer gewissen Systemineffizienz, da beide Busse nur mit halber Kapazität betrieben werden.
- In den "Patent Abstracts of Japan" Vol. 13, Nr. 4, S. 809 (3352) wird ein DMA-Controller des obengenannten Typs beschrieben. In dieser speziellen DMA-Schaltung ist eine Taktsignalwechselschaltung vorgesehen, damit für DMA-Übertragungen ein vom CPU-Taktsignal abweichendes Taktsignal verwendet werden kann. Dieses abweichende Taktsignal wird dann sowohl für den Leseschritt als auch für den Schreibschritt der DMA-Übertragung verwendet, wobei der DMA-Controller auf dem einen Bus während eines Taktzyklus eine Lesevorgang durchführt und auf dem anderen Bus während des nächsten Taktzyklus einen Schreibvorgang durchführt. Folglich arbeiten die Busse in diesem DMA-Controller immer noch ineffizient.
- Es wäre folglich wünschenswert, eine Schnittstelle zwischen zwei Bussen bereitzustellen, welche die DMA-Datenübertragung zwischen einer E/A-Einheit auf einem Bus und einem Systemspeicher auf dem anderen Bus verbessern könnte.
- Daher bietet die vorliegende Erfindung ein System zur Übertragung von Daten durch Direktspeicherzugriff zwischen einer ersten Einheit und einer zweiten Einheit, das folgendes umfaßt: einen ersten, mit der ersten Einheit gekoppelten Bus, wobei dieser erste Bus ein Taktsignal zur Steuerung des Datenübertragungszeitpunkts enthält; einen zweiten, mit der zweiten Einheit gekoppelten Bus, wobei dieser zweite Bus ein Taktsignal zur Steuerung des Datenübertragungszeitpunkts enthält; und einen mit dem ersten und dem zweiten Bus gekoppelten Controller zur Steuerung der Datenübertragung zwischen der ersten und der zweiten Einheit; wobei das System weiterhin dadurch gekennzeichnet ist, daß das Taktsignal des zweiten Busses vom Controller gesteuert wird, und daß der Controller während einer Datenübertragung zwischen der ersten und der zweiten Einheit ein Datenelement von einer Einheit während eines Zyklus des Bustakts dieser Einheit liest und ein Datenelement während eines Zyklus des Bustakts der anderen Einheit auf die andere Einheit schreibt, wodurch der Controller von der einen Einheit über den einen Bus liest, während er auf die andere Einheit über den anderen Bus schreibt.
- Die vorliegende Erfindung stellt außerdem ein Verfahren zur Übertragung von Daten mittels Direktspeicherzugriff zwischen einer ersten, mit einem ersten Bus verbundenen Einheit und einer zweiten, mit einem zweiten Bus verbundenen Einheit über einen Controller bereit, der mit dem ersten Bus und mit dem zweiten Bus gekoppelt ist, wobei der erste Bus ein Taktsignal zur Steuerung des Datenübertragungszeitpunkts aufweist, und der zweite Bus ein Taktsignal zur Steuerung des Datenübertragungszeitpunkts aufweist, und das Verfahren durch die folgenden Schritte gekennzeichnet ist: Einsatz des Controllers zur Steuerung des Taktsignals vom zweiten Bus, und - während einer Datenübertragung zwischen der ersten Einheit und der zweiten Einheit - Lesen eines Datenelements von der einen Einheit während eines Zyklus des Bustakts dieser Einheit und Schreiben eines Datenelements auf die andere Einheit während eines Zyklus des Bustakts der anderen Einheit, wodurch der Controller von der einen Einheit über den einen Bus liest, während er auf die andere Einheit über den anderen Bus schreibt.
- Wenn die beiden Busse die gleiche Datenübertragungsrate aufweisen, schließen die Lese- und Schreibschritte, die während der Datenübertragung zwischen der ersten Einheit und der zweiten Einheit stattfinden, die folgenden, vom Controller ausgeführten Schritte ein:
- (a) Lesen eines Datenelements von einer Einheit gemäß dem Bustaktsignal des Busses dieser Einheit;
- (b) Schreiben des Datenelements auf die andere Einheit gemäß dem Bustaktsignal des Busses der anderen Einheit;
- (c) Parallel zu Schritt (b): Lesen eines nächsten Datenelements von der einen Einheit;
- (d) Wiederholen der Schritte (b) und (c), bis alle zu übertragenden Datenelemente von der einen Einheit gelesen wurden; und
- (e) Schreiben eines letzten Datenelements auf die andere Einheit.
- Gegenstand der vorliegenden Erfindung ist ein mit zwei Bussen gekoppelter DMA-Controller, der auf einem Bus einen Lesevorgang durchführt, während er auf einem anderen Bus einen Schreibvorgang durchführt. In jedem Taktzyklus jedes Busses werden Daten übertragen. Da auf keinem der beiden Busse Wartezeiten erforderlich sind, können Hochgeschwindigkeits- Blockübertragungsverfahren, die auf einem Bus verfügbar sind, zur effizienten Blockdatenübertragung verwendet werden.
- In einem bevorzugten Ausführungsbeispiel beinhaltet die Blockdatenübertragung einen Hochgeschwindigkeits-Blockübertragungsmodus, in dem Daten mit einer höheren Rate übertragen werden, als dies bei einem normalen Buszyklus auf einem Bus möglich ist.
- Zum besseren Verständnis der vorliegenden Erfindung wird im folgenden ein bevorzugtes Ausführungsbeispiel unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben, in denen:
- Fig. 1 ein Blockdiagramm eines Computersystems mit zwei Bussen zeigt;
- Fig. 2 ein Flußdiagramm mit einem Datenübertragungsvorgang zwischen Einheiten auf zwei separaten Bussen gemäß der vorliegenden Erfindung veranschaulicht;
- Fig. 3 ein Zeitsteuerungsdiagramm zeigt, das einen Datenübertragungsvorgang gemäß der vorliegenden Erfindung veranschaulicht; und
- Fig. 4 ein Zeitsteuerungsdiagramm mit einer Hochgeschwindigkeits-Blockdatenübertragung gemäß der vorliegenden Erfindung veranschaulicht.
- Fig. 1 zeigt ein Blockdiagramm eines Computersystems 10, das einen Hauptsystembus 12 und einen E/A-Bus 14 einschließt. Ein Hauptprozessor 16 und ein Hauptsystemspeicher 18 sind mit dem Systembus 12 verbunden.
- Ein E/A-Cache-Controller (IOCC) 20 ist mit dem Systembus 12 und mit dem E/A-Bus 14 verbunden. Der IOCC 20 führt eine Reihe von E/A-Schnittstellenfunktionen durch und übernimmt auch die Steuerung eines kleinen Cache-Speichers (nicht ge- zeigt), der zur Pufferung des E/A-Busses 14 dient. Die für die vorliegende Erfindung relevante Funktion des IOCC 20 besteht darin, daß er als Controller mit Direktspeicherzugriff (DMA) eingesetzt wird. In seiner Funktion als DMA-Controller kann der IOCC 20 Daten zum und vom Systemspeicher 18 übertragen.
- An den E/A-Bus 14 ebenfalls angeschlossen sind E/A-Nebengeräte 22 und 24. Als E/A-Nebengeräte 22, 24 können beliebige Geräte verwendet werden, die für den Anschluß an den E/A-Bus 14 geeignet sind. Dazu gehören z.B. Video-Controller, Tastatur-Controller, serielle und parallele E/A-Anschlüsse sowie Platten-Controller. Von besonderem Interesse für die vorliegende Erfindung sind Einheiten wie z.B. Video-Controller und Platten-Controller, die für Blockdatenübertragungsvorgänge geeignet sind.
- Ein bevorzugtes Verfahren, das vom IOCC 20 zur Übertragung von Daten zwischen dem Systemspeicher 18 und einer E/A-Nebeneinheit 22 oder 24 verwendet wird, ist in Fig. 2 dargestellt. Im ersten Schritt initialisiert der IOCC 20 die DMA-Parameter 20. Typischerweise werden für eine DMA-Blockübertragung Informationen wie die Startadresse und Blocklänge benötigt. Schritt 30 enthält auch die gesamte notwendige Signaldatenübertragung an den Systemspeicher 18 und die E/A-Nebeneinheit (22 oder 24), zwischen denen die Übertragung erfolgt.
- Der IOCC 20 liest dann das erste zu übertragende Wort 32. Erfolgt die Übertragung von einer E/A-Nebeneinheit zum Systemspeicher 18, wird dieses Wort von der Nebeneinheit gelesen. Erfolgt die Übertragung vom Systemspeicher 18 zu einer E/A- Nebeneinheit, wird dieses Wort vom Systemspeicher 18 gelesen.
- Im nächsten Schritt wird eine Prüfung 34 durchgeführt, um festzustellen, ob die Übertragung abgeschlossen ist. Es ist möglich, nur ein einzelnes Datenwort zu übertragen, doch bei längeren Blöcken ist das Prüfergebnis 34 negativ.
- Ist die Übertragung noch nicht abgeschlossen, schreibt der IOCC 20 ein Wort 36 und liest gleichzeitig das nächste zu übertragende Wort 38. Jeder der Schreib- und Leseschritte wird auf dem Systembus 12 und dem E/A-Bus 14 gleichzeitig durchgeführt, abhängig von der Richtung der Datenübertragung. Die Flußsteuerung kehrt dann zu Schritt 34 zurück, um erneut zu prüfen, ob die Übertragung beendet ist.
- Nach Abschluß der Übertragung wird die Steuerung an Schritt 40 übergeben, die bewirkt, daß das letzte Wort auf die empfangende Einheit geschrieben wird. Der IOCC 20 schließt dann den Direktspeicherzugriff 42 ab, und der Vorgang ist beendet.
- Bei der in Fig. 2 beschriebenen Übertragung können der Systembus 12 und der E/A-Bus 14 unterschiedlichen Typs sein. Ist ein Bus schneller als der andere, wird der maximale Datendurchsatz selbstverständlich durch die Übertragungsgeschwindigkeit des langsameren Busses begrenzt. Fig. 2 ist für Systeme gedacht, in denen die Blockdatenübertragungsrate der beiden Busse gleich ist. Ist ein Bus wesentlich schneller als der andere, ist es möglich, den IOCC 20 mit einem Puffer (nicht gezeigt) auszustatten, um Lesevorgänge von diesem Bus bzw. Schreibvorgänge auf diesem Bus abzupuffern. Bei Verwendung eines Puffers könnten Übertragungen von und zu einem schnelleren Bus bei dessen normaler Übertragungsgeschwindigkeit erfolgen, wodurch einige Buszyklen freigegeben und von anderen Einheiten verwendet werden könnten.
- Fig. 3 ist ein Zeitsteuerungsdiagramm, das eine Blockdatenübertragung von einer Einheit auf dem E/A-Bus zum Systemspeicher 18 veranschaulicht. Im beschriebenen Ausführungsbeispiel ist der E/A-Bus 14 ein System2-Bus, wie er in der IBM PS/2- Mikrocomputerfamilie verwendet wird. Als Systembus 12 kann ein in solchen Mikrocomputern typischer Systembus oder ein anderer, auf diesem Fachgebiet bekannter Systembus, z.B. ein System2-Bus, eingesetzt werden. Einzelheiten zur Funktionsweise des Systembus 12 sind jedoch nicht Bestandteil der vorliegenden Erfindung.
- In Fig. 3 sind nur die Bussignale veranschaulicht, die zur Beschreibung der vorliegenden Erfindung notwendig sind. Zusätzliche Bussignale sind vorhanden, und ihre Funktion wird ausführlich in allgemein verfügbaren Dokumenten beschrieben.
- In Fig. 3 gibt das Signal SCHREIBEN IN SYSTEMSPEICHER die Zeitperioden an, in denen Daten über den Systembus 12 in den Systemspeicher 18 übertragen werden. Beim Signal SCHREIBEN IN SYSTEMSPEICHER handelt es sich nicht wirklich um ein Bussignal; ein hoher Wert gibt an, daß eine Busaktivität zur Übertragung von Daten stattfindet, während ein niedriger Wert angibt, daß über den Systembus 12 keine Datenübertragung erfolgt.
- Das Signal E/A ADR ist die Adresse, die vom IOCC 20 auf dem E/A-Bus 14 angeordnet wird. E/A S1 ist ein Signal, das angibt, daß ein Lesezyklus auf dem E/A-Bus stattfinden soll. E/A ADSP ist ein Signal mit der Bedeutung "Adreß-Signalspeicher" und dient zur Zwischenspeicherung von Adreßsignalen in Einheiten, die an den E/A-Bus 14 angeschlossen sind.
- E/A BEF ist das Taktsignal für den E/A-Bus 14. E/A DATEN LESEN steht für die Datenleitungen des E/A-Busses 14.
- Fig. 3 zeigt die relevanten Bussignale, wenn eine Übertragung von einer an den E/A-Bus 14 angeschlossenen Einheit zum Systemspeicher 18 erfolgt. Zuerst ermittelt der IOCC die Übertragungsparameter, einschließlich der Startadresse auf dem Systembus 12 und dem E/A-Bus 14, sowie die Länge des zu übertragenden Blocks.
- Der IOCC 20 überprüft dann die erste Adresse 50 auf den Leitungen E/A ADR. E/A S1 wird dann auf LOW 52 gesetzt, um anzugeben, daß es sich um einen Lesezyklus vom E/A-Bus 14 handelt. Anschließend wird ADSP auf LOW 54 gesetzt, um die Adresse 50 in der adressierten E/A-Nebeneinheit zwischenzuspeichern.
- Zwecks Beginn eines Buszyklus wird E/A BEF auf LOW 56 gesetzt. E/A ADSP wird gleichzeitig auf HIGH 58 gesetzt.
- Da dies ein Lesezyklus auf dem E/A-Bus ist, wie durch E/A S1 angegeben, werden Daten von der E/A-Nebeneinheit auf den Datenleitungen angeordnet. Nachdem der Buszyklus mit dem Übergang 56 von E/A BEF begonnen wurde, steuert die Nebeneinheit die E/A-Leitungen DATEN LESEN mit ihren vorherigen drei Zuständen mit dem Wert des ersten Datenelements 60 an.
- Für das Signal E/A S1 ist ein Übergang zu HIGH 62 zulässig, wie dies auf diesem Bus üblich ist. Die Werte auf E/A ADR werden geändert 64, um eine zweite Leseadresse 66 auf den Leitungen anzuordnen. Der Buszyklus wird abgeschlossen, wenn E/A BEF zu HIGH 68 übergeht; zu diesem Zeitpunkt wird das erste Datenelement 60 vom E/A-Bus 14 gelesen und in einem internen Register (nicht gezeigt) des IOCC 20 zwischengespeichert.
- Während des ersten E/A-Buszyklus war der Systembus aktiv 70. Während dieser Zeitperiode 70 werden die im IOCC 20 zwischengespeicherten Daten in den Systemspeicher 18 geschrieben. Die aktive Periode 70 IN SYSTEMSPEICHER SCHREIBEN schließt die Adressierung des Systemspeichers 18, Änderung der Steuersignale und das Schreiben von Daten auf den Systembus 12 ein.
- Die obige Übertragung wurde als ein Lesevorgang des ersten Datenelements vom E/A-Bus 14 beschrieben, auf den das Zwischenspeichern von Daten im IOCC 20 beim Übergang 68 von E/A BEF folgt. In der Beschreibung folgte darauf ein Schreibvorgang auf dem Systembus 12 während der aktiven Periode 70. Als alternative Variante ist eine Zwischenspeicherung des Datenelements 60 in einem Registerspeicher des IOCC 20 de facto nicht notwendig. Statt dessen ist es möglich, daß der IOCC 20 für eine direkte Verbindung zwischen den Datenleitungen des E/A-Busses 14 und dem Systembus 12 sorgt. Der ansteigende Übergang 68 von E/A BEF, in dem normalerweise die Zwischenspeicherung der Datenelemente 60 im IOCC erfolgt, kann statt dessen zur Erzeugung eines Steuersignals auf dem Systembus 12 verwendet werden, der bewirkt, daß die Daten sofort in den Systemspeicher 18 geschrieben werden.
- Die verbliebenen beiden und in Fig. 3 veranschaulichten Datenübertragungsvorgänge laufen in gleicher Weise ab. Das zweite Datenelement 72 wird im ansteigenden Übergang 74 von E/A BEF übertragen und während der aktiven Busperiode 76 in den Systemspeicher 18 geschrieben. Das endgültige Datenelement 78, das von der dritten Adresse 80 adressiert wird, wird während der aktiven Systembusperiode 82 in den Systemspeicher 18 geschrieben, wenn das E/A BEF-Signal zu HIGH 84 übergeht.
- Wie aus der obigen Beschreibung ersichtlich ist, wird ein neues Datenelement während eines jeden Buszyklus des E/A-Busses 14 gelesen und an den Systemspeicher 18 parallel zu den Datenlesevorgängen übertragen. Somit ist es nicht notwendig, einen Lesevorgang auf dem E/A-Bus 14 in einem Taktzyklus durchzuführen und einen Schreibzyklus auf dem Systembus 12 im darauffolgenden Systemtaktzyklus zu generieren.
- Fig. 4 zeigt eine Hochgeschwindigkeits-Datenübertragung unter Verwendung eines Protokolls, das als strömendes Datenübertragungsprotokoll bezeichnet wird. Die Funktionsweise von strömenden Datenübertragungsvorgängen wird detailliert in gleichzeitig anhängigen Patentanmeldungen beschrieben. Fig. 4 enthält nur diejenigen Signale, die zur Veranschaulichung notwendig sind, wie eine strömende Datenübertragung auf dem E/A- Bus 14 verwendet werden kann, um eine Blockübertragung von Daten in den Systemspeicher 18 vorzunehmen. Zusätzliche Steuersignale, die für die Übertragung, nicht jedoch für das Verständnis der vorliegenden Erfindung notwendig sind, werden in den obengenannten, gleichzeitig anhängigen Patentanmeldungen beschrieben.
- Fig. 4 veranschaulicht eine Übertragung aus dem Systemspeicher 18 in eine Nebeneinheit, die mit dem E/A-Bus 14 verbunden ist. Darin eingeschlossen ist ein Lesevorgang aus dem Systemspeicher 18 auf dem Systembus 12 und ein Schreibvorgang auf die E/A-Nebeneinheit auf dem E/A-Bus 14. Die E/A-Signale sind die gleichen wie in Fig. 3 gezeigt, außer daß E/A S1 durch E/A So substituiert und E/A DATEN LESEN durch E/A DATEN SCHREIBEN substituiert wurde. E/A S0 gibt an, daß ein Schreibvorgang auf einer mit dem E/A-Bus 14 verbundenen Einheit durchgeführt wird. E/A SD STROBE ist ein zusätzliches Hochgeschwindigkeitstaktsignal, das mit strömenden Datenübertragungsvorgängen verbunden ist; seine Funktion wird in den oben erwähnten, gleichzeitig anhängigen Patentanmeldungen beschrieben.
- Der IOCC 20 beginnt die Blockdatenübertragung durch Überprüfen der Startadresse 90 auf den Signalleitungen E/A ADR. Im nächsten Schritt wechselt E/A S0 in den Zustand LOW 92, um anzugeben, daß diese Übertragung ein Schreibvorgang auf dem E/A-Bus 14 ist. Als nächstes wechselt E/A ADSP in den Zustand LOW 94, um die Adresse 90 in der E/A-Nebeneinheit wie oben beschrieben zwischenzuspeichern.
- Die Datenleitungen des E/A-Busses 14, dargestellt durch E/A DATEN SCHREIBEN, werden vom IOCC 20 aktiviert. Wenn das erste Datenelement 96 vom Systembus verfügbar wird, wird es auf E/A DATEN SCHREIBEN angeordnet. Während einer aktiven Systembusperiode 98 wird das erste Datenelement aus dem Systemspeicher 18 gelesen und für den IOCC 20 verfügbar gemacht. Wie oben unter Bezugnahme auf Fig. 3 beschrieben wurde, kann der vom Systembus 12 gelesene Wert in einem internen Puffer des IOCC zwischengespeichert und dann für den E/A-Bus 14 verfüg- bar gemacht werden. Alternativ kann das Datenelement 96 direkt vom Systembus 12 mit dem E/A-Bus 14 verbunden werden.
- Der Übertragungszyklus beginnt, wenn E/A BEF in den Zustand LOW wechselt 100. Gleichzeitig wechselt das Signal E/A SD STROBE in den Zustand LOW 102.
- Das erste Datenelement 96 wird vom IOCC 20 an den E/A-Bus 14 beim zweiten fallenden Übergang 106 von E/A SD STROBE übertragen. Nach erfolgter Datenübertragung wird das nächste Datenelement 108 vom Systembus 12 während des nächsten aktiven Systembuszyklus 110 gelesen und während des fallenden Übergangs 112 von E/A SD STROBE an den E/A-Bus 14 übertragen.
- Dieser Vorgang kann über eine beliebige Anzahl von Datenzyklen fortgesetzt werden, bis der nächste bzw. letzte Datenzyklus erreicht ist. Das nächste bzw. letzte Datenelement 116 wird zumn E/A-Bus 14 beim letzten fallenden Übergang 118 von E/A SD STROBE übertragen. Nach Übertragung des nächsten bzw. letzten Datenelements 116 wird das letzte Datenelement 120 an E/A DATEN SCHREIBEN übertragen, nachdem es aus dem Systemspeicher 18 während der aktiven Systembusperiode 122 gelesen wurde.
- Das letzte Datenelement 120 wird an den E/A-Bus 14 durch den steigenden Übergang 124 von E/A BEF übertragen. Nach einem ausreichenden Verzögerungsintervall, in dem die mit dem E/A- Bus 14 verbundene E/A-Nebeneinheit das letzte Datenelement 120 lesen und zwischenspeichern kann, stellt der IOCC 20 einen Dreifachzustand 126 in den Datenpuffern auf dem E/A-Bus 14 her.
- Das oben beschriebene System und Verfahren ermöglichen eine effiziente Blockübertragung der Daten zwischen dem mit dem Systembus 12 verbundenen Systemspeicher 18 und einem mit dem E/A-Bus 14 verbundenen E/A-Nebengerät 22, 24. In jedem Taktzyklus wird auf jedem Bus ein Datenelement übertragen. Das hier beschriebene Verfahren sieht die Verwendung eines strömenden Hochgeschwindigkeitsdatenprotokolls auf dem E/A-BUS 14 vor, durch welches die Blockübertragungsrate von Daten durch den IOCC 20 erheblich gesteigert werden kann.
Claims (11)
1. Ein System zur Übertragung von Daten durch
Direktspeicherzugriff zwischen einer ersten Einheit (18)
und einer zweiten Einheit (22, 24), das folgendes
umfaßt:
Einen ersten Bus (12), der mit der ersten Einheit
(18) gekoppelt ist, wobei der erste Bus ein
Taktsignal zur Steuerung des Datenübertragungszeitpunkts
enthält;
Einen zweiten Bus (14), der mit der zweiten Einheit
(22, 24) gekoppelt ist, wobei der zweite Bus ein
Taktsignal zur Steuerung des
Datenübertragungszeitpunkts enthält; und
Einen Controller (20), der mit dem ersten Bus und dem
zweiten Bus gekoppelt ist und die Übertragung von
Daten zwischen der ersten (18) und der zweiten (22, 24)
Einheit steuert;
Wobei das System dadurch gekennzeichnet ist, daß:
Das Taktsignal des zweiten Busses der Steuerung des
Controllers unterliegt; und
Der Controller (20) während einem
Datenübertragungsvorgang zwischen der ersten Einheit (18) und der
zweiten Einheit (22, 24) ein Datenelement von der
einen Einheit während eines Zyklus des Bustakts
dieser Einheit liest, und ein Datenelement auf die
andere Einheit während eines Zyklus des Bustakts der
anderen Einheit schreibt, wodurch der Controller über
den einen Bus einen Lesevorgang auf der einen Einheit
durchführt, während er über den anderen Bus einen
Schreibvorgang auf der anderen Einheit durchführt.
2. Ein System wie in Patentanspruch 1 niedergelegt, in
dem das Taktsignal des zweiten Busses ein
Hochgeschwindigkeitstaktsignal zur Steuerung des
Datenübertragungszeitpunkts während einer
Hochgeschwindigkeitsdatenübertragung sein kann.
3. Ein System wie in Patentanspruch 1 oder 2
niedergelegt, bei dem - wenn der erste Bus und der zweite Bus
die gleiche Datenübertragungsrate aufweisen - der
Controller (20) während eines jeden Zyklus des
Bustakts der einen Einheit einen Lesevorgang auf der
einen Einheit durchführen kann und gleichzeitig
während eines jeden Zyklus des Bustakts der anderen
Einheit einen Schreibvorgang auf der anderen Einheit
durchführen kann.
4. Ein System wie in Patentanspruch 1 oder 2
niedergelegt, bei dem der Controller (20) einen Puffer
enthält, so daß der Controller (20) bei
unterschiedlichen Taktsignalen des ersten und zweiten Busses
während eines jeden Zyklus des Bustakts dieser
Einheit einen Lesevorgang auf der einen Einheit
durchführen kann und gleichzeitig während eines jeden
Zyklus des Bustakts der anderen Einheit einen
Schreibvorgang auf der anderen Einheit durchführen kann.
5. Ein System wie in einem beliebigen der vorstehenden
Patentansprüche offenbart, in dem die
Datenübertragung zwischen der ersten und der zweiten Einheit eine
Blockdatenübertragung ist, die eine Vielzahl von
aufeinanderfolgenden Datenelementen beinhaltet.
6. Ein Verfahren zur Übertragung von Daten durch
Direktspeicherzugriff zwischen einer ersten, mit einem
ersten Bus (12) verbundenen Einheit (18) und einer mit
einem zweiten Bus (14) verbundenen Einheit (22, 24)
über einen Controller (20), der mit dem ersten und
dem zweiten Bus gekoppelt ist, wobei der erste Bus
(12) ein Taktsignal zur Steuerung des
Datenübertragungszeitpunkts liefert und der zweite Bus (14)
ein Taktsignal zur Steuerung des
Datenübertragungszeitpunkts liefert, wobei das Verfahren durch
folgende Schritte gekennzeichnet ist:
Einsatz des Controllers (20) zur Steuerung des
zweiten Bustaktsignals; und
Während eines Datenübertragungsvorgangs zwischen der
ersten Einheit (18) und der zweiten Einheit (22, 24)
Lesen eines Datenelements von der einen Einheit
während eines Zyklus des Bustakts dieser Einheit, und
Schreiben eines Datenelements auf die andere Einheit
während eines Zyklus des Bustakts dieser anderen
Einheit;
Wodurch der Controller von der einen Einheit über
einen Bus liest, während er auf die andere Einheit
über den anderen Bus schreibt.
7. Ein Verfahren wie in Patentanspruch 6 niedergelegt,
bei dem das zweite Bustaktsignal ein
Hochgeschwindigkeitstaktsignal zur Steuerung des
Datenübertragungszeitpunkts während einer
Hochgeschwindigkeitsdatenübertragung sein kann.
8. Ein Verfahren wie in Patentanspruch 6 oder 7
niedergelegt, bei dem - wenn der erste Bus und der zweite
Bus die gleiche Datenübertragungsrate aufweisen - der
Controller (20) während eines jeden Zyklus des
Bustakts der einen Einheit einen Lesevorgang auf der
einen Einheit durchführen kann und gleichzeitig
während eines jeden Zyklus des Bustakts der anderen
Einheit einen Schreibvorgang auf der anderen Einheit
durchführen kann.
9. Ein Verfahren wie in Patentanspruch 6 oder 7
niedergelegt, bei dem der Controller (20) einen Puffer
enthält, so daß der Controller (20) bei
unterschiedlichen Taktsignalen des ersten und zweiten Busses
während eines jeden Zyklus des Bustakts der einen
Einheit einen Lesevorgang auf der einen Einheit
durchführen kann und gleichzeitig während eines jeden
Zyklus des Bustakts der anderen Einheit einen
Schreibvorgang auf der anderen Einheit durchführen
kann.
10. Ein Verfahren wie in Patentanspruch 8 niedergelegt,
bei dem die Lese- und Schreibschritte, die während
der Datenübertragung zwischen der ersten Einheit (18)
und der zweiten Einheit (22, 24) stattfinden, die
folgenden, vom Controller durchgeführten Schritte
beinhalten:
(a) Lesen eines Datenelements von einer Einheit gemäß
dem Bustaktsignal des Busses dieser Einheit;
(b) Schreiben des Datenelements auf die andere
Einheit gemäß dem Bustaktsignal des Busses der
anderen Einheit;
(c) Gleichzeitig mit Schritt (b): Lesen eines
nächsten Datenelements von der einen Einheit;
(d) Wiederholen der Schritte (b) und (c), bis alle zu
übertragenden Datenelemente von der einen Einheit
gelesen wurden; und
(e) Schreiben eines letzten Datenelements auf die
andere Einheit.
11. Ein Verfahren wie in einem beliebigen der
Patentansprüche 6 bis 10 niedergelegt, bei dem die
Datenübertragung zwischen der ersten und der zweiten
Einheit eine Blockdatenübertragung mit einer Vielzahl
aufeinanderfolgender Datenelemente beinhaltet.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29777489A | 1989-01-13 | 1989-01-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69023677D1 DE69023677D1 (de) | 1996-01-04 |
DE69023677T2 true DE69023677T2 (de) | 1996-06-20 |
Family
ID=23147689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1990623677 Expired - Fee Related DE69023677T2 (de) | 1989-01-13 | 1990-01-11 | DMA-Übertragung für Rechnersystem. |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0382342B1 (de) |
JP (1) | JPH02226454A (de) |
DE (1) | DE69023677T2 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE9103450L (sv) * | 1991-11-21 | 1993-02-08 | Icl Data Ab | Anordning foer oeverfoering av data mellan datasaendande och datamottagande enheter anslutna till en gemensam databuss. |
US5511165A (en) * | 1992-10-23 | 1996-04-23 | International Business Machines Corporation | Method and apparatus for communicating data across a bus bridge upon request |
US5793997A (en) * | 1996-01-11 | 1998-08-11 | Hewlett-Packard Company | Interface architecture for connection to a peripheral component interconnect bus |
AU2002328037A1 (en) * | 2002-09-23 | 2004-04-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Computer system and method for accessing external peripheral devices in a computer system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5587220A (en) * | 1978-12-26 | 1980-07-01 | Fuji Electric Co Ltd | Interface controller |
US4323967A (en) * | 1980-04-15 | 1982-04-06 | Honeywell Information Systems Inc. | Local bus interface for controlling information transfers between units in a central subsystem |
JPS6129961A (ja) * | 1984-07-23 | 1986-02-12 | Mitsubishi Electric Corp | デ−タ転送方式 |
JPS6148059A (ja) * | 1984-08-15 | 1986-03-08 | Hitachi Ltd | バスアダプタ |
JPS6346559A (ja) * | 1986-08-13 | 1988-02-27 | Nec Corp | Dmaコントロ−ラ |
US4775929A (en) * | 1986-10-14 | 1988-10-04 | Honeywell Bull Inc. | Time partitioned bus arrangement |
-
1989
- 1989-12-15 JP JP32416089A patent/JPH02226454A/ja active Pending
-
1990
- 1990-01-11 EP EP90300348A patent/EP0382342B1/de not_active Expired - Lifetime
- 1990-01-11 DE DE1990623677 patent/DE69023677T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69023677D1 (de) | 1996-01-04 |
EP0382342A2 (de) | 1990-08-16 |
EP0382342B1 (de) | 1995-11-22 |
EP0382342A3 (de) | 1991-03-20 |
JPH02226454A (ja) | 1990-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69018100T2 (de) | Datenübertragung über Busadressleitungen. | |
DE3914265C2 (de) | ||
DE3686436T2 (de) | Speichersystem mit hoher leistung. | |
DE69021594T2 (de) | Hochgeschwindigkeitsdatenübertragung auf einem Rechnersystembus. | |
DE3909896C2 (de) | ||
DE60036777T2 (de) | Gerät zur Signalsynchronisierung zwischen zwei Taktbereichen | |
DE69132195T2 (de) | System für verteilte Mehrfachrechnerkommunikation | |
DE3588009T2 (de) | Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung. | |
DE69422221T2 (de) | Genaue und komplette Übertragung zwischen verschiedenen Busarchitekturen | |
DE69031206T2 (de) | Rechnersystem | |
DE19828620B4 (de) | Während des Betriebs aufteilbarer Computerbus für einen verbesserten Betrieb mit sich ändernden Bustaktfrequenzen | |
DE112007003069T5 (de) | Mit Hochgeschwindigkeit arbeitende, aufgefächerte Systemarchitektur und Eingabe/Ausgabe-Schaltungen für nicht flüchtigen Speicher | |
DE69318348T2 (de) | Schnittstelle für asynchronen Bus zur Minimisierung von Übertragungszeiten | |
DE3732798A1 (de) | Datenverarbeitungssystem mit ueberlappendem zugriff auf einen globalen speicher durch eine quelle mit hoher prioritaet | |
DE3710813A1 (de) | Datenverarbeitungssystem sowie verfahren dafuer | |
DE69834220T2 (de) | Serielle Datenübertragung zwischen einem Datenverarbeitungsgerät und einer externen Speicheranordnung | |
DE3123382C2 (de) | Verfahren und Einrichtung zum Übertragen von Daten in einem Mehrprozessorsystem | |
DE69119149T2 (de) | Struktur zur direkten Speicher-zu-Speicher-Übertragung | |
DE69119147T2 (de) | Erweiterungskarte mit mehreren Geschwindigkeiten | |
DE69023677T2 (de) | DMA-Übertragung für Rechnersystem. | |
DE69932891T2 (de) | Informationsverarbeitungsgerät und -verfahren, und Darstellungsmedium | |
DE2609698C2 (de) | Elektronischer Rechner | |
DE69125815T2 (de) | Anordnung und Verfahren zu einer variablen Datenzuweisung | |
DE69410617T2 (de) | Datenbus | |
DE10110567B4 (de) | Datenverarbeitungssystem mit einstellbaren Takten für unterteilte synchrone Schnittstellen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |