DE60005157T2 - Verfahren und anordnung für blockdatenübertragung - Google Patents

Verfahren und anordnung für blockdatenübertragung Download PDF

Info

Publication number
DE60005157T2
DE60005157T2 DE60005157T DE60005157T DE60005157T2 DE 60005157 T2 DE60005157 T2 DE 60005157T2 DE 60005157 T DE60005157 T DE 60005157T DE 60005157 T DE60005157 T DE 60005157T DE 60005157 T2 DE60005157 T2 DE 60005157T2
Authority
DE
Germany
Prior art keywords
data
address
input
bus
output device
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
DE60005157T
Other languages
English (en)
Other versions
DE60005157D1 (de
Inventor
Robert J. Duggan
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.)
Deka Products LP
Original Assignee
Deka Products LP
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 Deka Products LP filed Critical Deka Products LP
Publication of DE60005157D1 publication Critical patent/DE60005157D1/de
Application granted granted Critical
Publication of DE60005157T2 publication Critical patent/DE60005157T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)

Description

  • Hintergrund 1. Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im allgemeinen auf das Gebiet der Datenübertragungen zwischen Vorrichtungen. Insbesondere bezieht sich die vorliegende Erfindung auf ein System, das die Blockübertragung von Daten zu einer Eingabe/Ausgabe-Vorrichtung erlaubt.
  • 2. Technisches Gebiet
  • Wenn Daten übertragen werden, verwendet ein typisches computergestütztes System Adressen- und Datenbusse, um die Kommunikation zwischen einem Mikroprozessor und anderen zugeordneten Vorrichtungen zu erlauben. Der Adressenbus wird verwendet, um eine spezielle Stelle in einer zugeordneten Vorrichtung (entweder innerhalb oder außerhalb des Computers selbst) zu adressieren, wohin die spezifischen Daten zu übertragen sind. Dies wird ausgeführt, indem die vorgegebene Adresse für die externe Vorrichtung, zu der der Mikroprozessor der Daten zu übertragen wünscht, auf dem Adressenbus abgelegt wird.
  • Sobald die Adresse für die gewünschte Stelle der Daten auf dem Bus abgelegt worden ist, bestimmt jede externe Vorrichtung, ob der Mikroprozessor wünscht, dass die Daten zu ihr zu übertragen sind. Dies wird durch viele bekannte Verfahren des Standes der Technik ausgeführt, wobei es im allgemeinen ausgeführt wird, indem jede Vorrichtung die Adresse auf dem Adressenbus mit ihrer (oder ihren) eigenen im Voraus zugewiesenen Adresse (oder Adressen) vergleicht. Falls die Adresse übereinstimmt, nimmt die externe Vorrichtung die auf dem Datenbus dargestellten Daten und speichert sie in ihrem eigenen Speicher. Alternativ können derartige Übertragungen ausgeführt werden, indem der Mikroprozessor die Vorrichtung über eine Steuerleitung alarmiert, dass er vorhat, Daten zu der Vorrichtung zu übertragen. Nach der Alarmierung der Vorrichtung legt der Mikroprozessor eine Adresse innerhalb der Vorrichtung (wie z. B. eine Adresse eines Registers) auf dem Adressenbus ab. Die Daten werden typischerweise als ein Datenwort übertragen, dessen Größe abhängig von der Breite des Datenbusses variiert.
  • Um eine signifikante Datenmenge zur externen Vorrichtung zu übertragen, kann der Mikroprozessor wiederholt die Adresse der externen Vorrichtung auf dem Adressenbus ablegen. Die externe Vorrichtung fährt damit fort, jedes auf dem Datenbus dargestellte aufeinander folgende Datenwort zu nehmen, wobei sie es in ihrem Speicher speichert.
  • Der Mikroprozessor kann einen Zeiger aufrechterhalten, der einer Speicherstelle entspricht, die die Daten enthält, die er zur externen Vorrichtung zu übertragen wünscht. Wie jedes Datenwort zur externen Vorrichtung übertragen wird, wird der Zeiger aktualisiert, damit er der nächsten Stelle der Daten entspricht, die der Mikroprozessor zur externen Vorrichtung zu übertragen wünscht. Um zu sichern, dass jedes aufeinander folgende Datenwort zur gleichen externen Vorrichtung übertragen wird (vorausgesetzt, der Mikroprozessor wünscht, dass das nächste Datenwort zu dieser Vorrichtung übertragen wird), wird jedoch die Adresse auf dem Adressenbus konstant gehalten, wenn der Zeiger auf das nächste Datenwort im Mikroprozessor aktualisiert wird.
  • Einige moderne Mikroprozessoren enthalten außerdem die Fähigkeit, diesen Prozess zu rationalisieren, indem sie die Übertragung großer Datenblöcke von einer Speicherstelle zu einer anderen Speicherstelle durch die Ausführung einer "Blockübertragung" erlauben. Wie im Stand der Technik wohl bekannt ist, können die Blockübertragungen durch Übertragungen mit direktem Speicherzugriff (DMA-Übertragungen) unter Verwendung separater zusätzlicher Mikroprozessor-Strukturen oder anderer zusätzlicher Hardware- und/oder Software-Strukturen (einem "DMA-Controller") ausgeführt werden. Die DMA-Übertragungen können viel schneller als eine wortweise Datenübertragung sein. Die Zunahme der Geschwindigkeit kommt von der Einbeziehung der separaten Struktur, um das Inkrementieren des Zeigers, der der Speicherstelle entspricht, die das Datenwort enthält, das als nächstes übertragen ist, und der entsprechenden Adresse, wo die Daten empfangen werden, abzuwickeln.
  • Die DMA-Übertragungen können wie folgt ausgeführt werden. Die erste Speicherstelle, die von dem Block zu übertragen ist, und die Größe des Blocks werden bestimmt und dem DMA-Controller bereitgestellt. Das Ziel wird außerdem bestimmt. Der DMA-Controller hält den Zielzeiger aufrecht, der der Adresse entspricht, zu der die Daten in der Speicherstelle zu übertragen sind. Jede Speicherstelle im Block des Speichers, der zu übertragen ist, wird dann erfolgreich auf dem Daten bus abgelegt. Nach jeder Übertragung werden sowohl der Speicherzeiger als auch der Zielzeiger des DMA-Controllers inkrementiert. Wie in der Technik wohl bekannt ist, können die Verfahren des "Inkrementierens" eines Zeigers variieren, wobei sie die Inkrementierung enthalten, die durch eine verkettete Liste geht, oder einfacher nur einen festen Wert zum im Zeiger im gespeicherten aktuellen Wert hinzufügt.
  • Die DMA-Übertragungen erlauben die schnelle Übertragung von Daten zwischen Speicherstellen, wenn sowohl die Stelle, wo die Daten gegenwärtig gespeichert sind, als auch die Stelle, zu der sie zu übertragen sind, diskrete Adressen besitzen, die sich in der gleichen Weise verändern, in der die Zeiger inkrementiert werden. Wenn ein Datenblock von einer Speicherstelle zu einer anderen Speicherstelle übertragen wird, von denen sich beide innerhalb derselben Speichereinheit oder desselben Speichertyps befinden, arbeitet dieser Typ der Adressierung sehr effektiv.
  • Es gibt jedoch Situationen, in denen die Daten nicht zu sequentiellen oder inkrementalen Adressen übertragen werden, sondern stattdessen alle zur selben Adresse übertragen werden. Dies tritt z. B. auf, wenn die Daten zu bestimmten Eingabe/Ausgabe-Vorrichtungen zu übertragen sind. Jeder Eingabe/Ausgabe-Vorrichtung kann eine eindeutige Adresse oder Gruppe von Adressen zugewiesenen sein. Wenn eine Gruppe von Adressen einer speziellen Eingabe/Ausgabe-Vorrichtung zugewiesen ist, bedeutet dies typischerweise, dass die spezielle Vorrichtung sowohl Informationen vom Mikroprozessor empfangen als auch Informationen zum Mikroprozessor senden kann. Ein derartiger Typ einer Eingabe/Ausgabe-Vorrichtung ist ein universeller asynchroner Empfänger/Sender (UART).
  • Ein UART enthält typischerweise mehrere Register, die Zustands- und Eingabe/Ausgabe-Daten enthalten. Jedes Register besitzt eine eindeutige Adresse, die in den Speicherraum des Mikroprozessors abgebildet ist. Die Eingabe- und Ausgaberegister, wobei jedes eine eindeutige Adresse besitzt, besitzen die Fähigkeit, mehrere Datenwörter in schneller Folge durch die Verwendung eines internen Puffers für diese Register zu empfangen oder zu senden. Der interne Puffer kann z. B. ein Silostapel (FIFO-Stapel) sein. Wie wohl bekannt ist, kann ein derartiger Stapel mehrere Datenwörter in schneller Folge empfangen und speichern.
  • In Systemen, die keine Blockübertragungen verwenden, erzeugen die eindeutigen Adressen für die Eingabe- und Ausgaberegister keine realen Schwierigkeiten. Wie oben beschrieben worden ist, muss der Mikroprozessor nur die Adresse der gewünschten Stelle im UART (z. B. das Eingaberegister) auf dem Adressenbus halten, während die Daten sequentiell auf dem Bus abgelegt werden. Dies wird ausgeführt, indem der Mikroprozessor eine Übertragung zwischen zwei Stellen (d. h. dem Speicher und dem UART) einleitet. Falls die Zielstelle dem Eingaberegister des UART entspricht, aktiviert der Mikroprozessor eine Steuerleitung, die den UART anweist, die Daten in sein Eingaberegister zu lesen. Die Adresse des spezifischen Registers in der Eingabe/Ausgabe-Vorrichtung für das Speichern der Daten wird durch den Adressenbus zum UART geleitet.
  • In Systemen, die eine Blockübertragung verwenden, wird jedoch die Adresse des Ziels inkrementiert. Dies verursacht wiederum, dass die sequentiellen Daten des Datenblocks an verschiedenen Stellen enden.
  • Das Merkmal des Verbindens von Eingabe/Ausgabe-Vorrichtungen mit einem Adressenbus, sodass jede von mehreren Adressen stets einer einzigen Adresse entspricht, ist aus US-A-5687357 bekannt.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung ist durch eine Vorrichtung entsprechend dem unabhängigen Anspruch 1 und ein entsprechendes Verfahren entsprechend dem unabhängigen Anspruch 12 definiert.
  • Kurzbeschreibung der Zeichnung
  • Die vorangehenden und andere Aufgaben und Vorteile werden aus der folgenden ausführlichen Beschreibung und den beigefügten Figuren deutlicher verstanden. Die folgende Beschreibung und die mit ihr in Beziehung stehenden Figuren sind lediglich beispielhaft gegeben, wobei sie in keiner Weise den Umfang der vorliegenden Erfindung einschränken. In den Figuren ist:
  • 1 ein Blockschaltplan der typischen Verbindungen des Standes der Technik zwischen einem Mikroprozessor und einer externen Eingabe/Ausgabe-Vorrichtung.
  • 2 zeigt eine Verbindung des Standes der Technik einer Eingabe/Ausgabe-Vorrichtung mit einem Adressenbus.
  • 3 ist eine beispielhafte Ausführungsform eines Aspekts der vorliegenden Erfindung.
  • 4 zeigt eine beispielhafte Ausführungsform, wie gemäß der vorliegenden Erfindung mehrere Eingabe/Ausgabe-Vorrichtungen mit einem Adressenbus verbunden werden können.
  • 5 zeigt eine Ausführungsform, wie gemäß der vorliegenden Erfindung mehrere Eingabe/Ausgabe-Vorrichtungen mit einem Datenbus verbunden werden können.
  • 6 zeigt eine alternative Ausführungsform, wie gemäß der vorliegenden Erfindung mehrere Eingabe/Ausgabe-Vorrichtungen mit einem Datenbus verbunden werden können.
  • 7 ist ein Ablaufplan, der ein beispielhaftes Verfahren zeigt, durch das Datenblöcke gemäß einer Ausführungsform der vorliegenden Erfindung übertragen werden können.
  • Ausführliche Beschreibung der Erfindung
  • 1 zeigt eine herkömmliche Konfiguration des Standes der Technik, durch die ein Mikroprozessor 100 mit einer externen Eingabe/Ausgabe-Vorrichtung (E/A-Vorrichtung) 102 verbunden ist. Wie gezeigt ist, sind der Mikroprozessor 100 und die E/A-Vorrichtung 102 beide mit einem gemeinsamen Adressenbus 104 und einem gemeinsamen Datenbus 106 verbunden. Der Mikroprozessor 100 und die Vorrichtung 102 besitzen außerdem optional eine (gestrichelt gezeigte) Steuerleitung 108, die zwischen sie geschaltet ist.
  • Der Mikroprozessor 100 kann der einzige Mikroprozessor eines Computers sein oder kann ein Mikroprozessor sein, der ein Teil eines DMA-Controllers ist, der spezifisch und nur verwendet wird, um DMA-Übertragungen zwischen dem (nicht gezeigten) Systemspeicher auszuführen. Der Speicher kann sich innerhalb oder außerhalb des Mikroprozessors 100 befinden. Für die Erklärung muss es jedoch nur selbstverständlich sein, dass der Mikroprozessor 100 auf die Daten auf dem Datenbus 106 zugreifen und die Daten auf dem Datenbus 106 ablegen kann.
  • Wie oben beschrieben worden ist, legt der Mikroprozessor 100 eine Adresse auf dem Adressenbus 104 ab, die dem entspricht, wohin die Daten, die sich gegenwärtig auf dem Datenbus 106 befinden, zu übertragen sind. In dieser Weise kann der Mikroprozessor 100 alle Datenbewegungen zu und von der E/A-Vorrichtung 102 steuern.
  • In 2 ist eine ausführlichere Darstellung der Verbindungskonfiguration des Standes der Technik zwischen einem Mikroprozessor 100 und einer E/A-Vorrichtung 102 gezeigt. 2 wird verwendet, um die Mängel und Probleme einer derartigen Konfiguration deutlicher zu erklären, die mit der Übertragung von Datenblöcken in Beziehung stehen.
  • Wie gezeigt ist, ist 2 im wesentlichen die gleiche wie 1. Der Adressenbus 104 und der Datenbus 106' sind jedoch ausführlicher gezeigt. Insbesondere besteht der Adressenbus 104 aus mehreren einzelnen Adressenleitungen A0, . . ., A31. Der Datenbus 106 besteht ähnlich aus mehreren Datenleitungen D0, . . ., D15, wobei jede Datenleitung ein Datenbit darstellt. Es sollte angemerkt werden, dass die Anzahl der Adressen- und Datenleitungen variabel ist. In dieser Ausführungsform ist der Adressenbus 104 als 32 Bits breit gezeigt worden, während der Datenbus 106 16 Bits breit ist. In typischen Systemen entsprechen die Breiten des Adressenbusses 104 und des Datenbusses 106 der Größe des Adressenraums bzw. der Größe eines Datenworts, die durch den Mikroprozessor 100 verwendet werden. Folglich besitzt der in 2 gezeigte Mikroprozessor 100 einen 32-Bit-Adressenraum und ein 16-Bit-Datenwort.
  • Die Verbindungen von sowohl dem Adressenbus 104 als auch dem Datenbus 106 zur E/A-Vorrichtung 102 sind außerdem von denjenigen, die in 1 gezeigt sind, geändert worden. Wie in 2 gezeigt ist, gibt es mehrere direkte Verbindungen von der E/A-Vorrichtung 102 sowohl zum Adressenbus 104 als auch zum Datenbus 106. Die Anzahl der Verbindungen hängt sowohl von der Größe des Datenworts, das die E/A-Vorrichtung 102 handhaben kann, als auch der Breite der physikalischen Adresse der Vorrichtung ab. Wie gezeigt ist, kann die Vorrichtung 102 durch drei Bits adressiert werden, wobei sie ein 8-Bit-Datenwort besitzt. Die Datenverbindungen der E/A-Vorrichtung 102 sind mit den niedrigen 8 Bits (D0 bis D7) des Datenbusses 106 verbunden, während die Adressenverbindungen mit den niedrigsten drei Bits (A0 bis A2) des Adressenbusses 104 verbunden sind.
  • In dieser Ausführungsform besitzt die E/A-Vorrichtung 102 wenigstens zwei Register, ein Eingaberegister 202 und ein Ausgaberegister 204. Jedes Register besitzt typischerweise seine eigene diskrete Adresse. In der folgenden Erklärung wird angenommen, dass das Eingaberegister 202 eine Adresse von 0 besitzt, und dass das Ausgaberegister 204 eine Adresse von 1 besitzt. Folglich kann im Mikroprozessor 100 die hexadezimale Zahl FF00H, die dem Eingaberegister 202 entsprechen soll, und die Adresse FF01H für das Ausgaberegister 204 abgebildet sein. Wie oben beschrieben worden ist, können in vielen E/A-Vorrichtungen 102 dem Eingaberegister 202 und dem Ausgaberegister 204 ein Stapel oder ein Puffer zugeordnet sein.
  • Falls der Mikroprozessor 100 angewiesen wird, die an einer beliebigen Speicheradresse (z. B. 1110H) enthaltenen Daten zur Speicheradresse FF00N (d. h. dem Eingaberegister 202 der E/A-Vorrichtung 102) zu übertragen, ereignen sich die folgenden Ereignisse. Zuerst verwendet der Mikroprozessor 100 eine (nicht gezeigte) Speicherabbildung, um zu bestimmen, dass die Adresse FF00H dem Eingaberegister 202 der E/A-Vorrichtung 102 entspricht. Dann legt der Mikroprozessor 100 die Inhalte der Speicheradresse 1110H auf dem Datenbus 106, die Adresse 0 (d. h. die Adresse der Speicherabbildung des Eingaberegisters 202) auf dem Adressenbus 104 ab, wobei er die Steuerleitung 108 aktiviert, um die E/A-Vorrichtung 102 zu alarmieren, dass die Übertragung von Daten zu ihr bevorsteht. Dann kopiert die E/A-Vorrichtung 102 die Daten auf dem Datenbus 106 zu dem durch die Adresse auf dem Adressenbus 104 adressierten Register, in diesem Beispiel zum Eingaberegister 202. Falls der Mikroprozessor dann angewiesen wird, die Inhalte der Speicheradresse 1101H zur Speicheradresse FF00H zu übertragen, wird der gleiche Prozess wiederholt. In dieser Weise werden alle Daten zur gleichen Adresse übertragen. Dieser Typ der Speicherübertragung kann als eine serielle Übertragung der Datenwörter zur gleichen Stelle betrachtet werden.
  • In diesem Kontext können im allgemeinen Blockübertragungsmechanismen nicht angewendet werden. Eine DMA-Übertragung konsultiert eine Speicherabbildung nur einmal pro Blockübertragung. Sobald die erste Zieladresse aus der Speicher abbildung bestimmt ist, wird sie in einem Zielzeiger gespeichert, der jedes Mal, wenn ein Datenwort des Blocks übertragen wird, inkrementiert wird. Dieser inkrementierte Zeigerwert wird aufeinander folgend auf der Adressenleitung abgelegt.
  • Unter Verwendung des obigen Beispiels wird angenommen, dass der Mikroprozessor 100 angewiesen wird, einen Block aus Datenwörtern beginnend an der Speicherstelle 1110N zur Stelle FF00H zu übertragen. Das erste Datenwort (d. h. die Daten an der Stelle 1110H) wird auf dem Datenbus 106 abgelegt. Die Stelle der ersten Speicherstelle (d. h. 1110H) wird im Speicherzeiger gespeichert. Dann verwendet der Mikroprozessor die Speicherabbildung, um die Speicherstelle FFOOH nachzuschlagen, wobei er sie wie oben in die Adresse 0 umsetzt, die das Eingaberegister 202 der E/A-Vorrichtung 102 bezeichnet. Diese Adresse (0) wird in einem Zielzeiger gespeichert. Die im Zielzeiger (0) gespeicherte Adresse wird auf dem Adressenbus 104 abgelegt, wobei das Datenwort gespeichert wird, wie oben beschrieben worden ist. Während der Übertragung des zweiten Datenworts (d. h. der Daten an der Stelle 1111H) inkrementiert der Mikroprozessor 100 jedoch sowohl den Speicher- als auch den Zielzeiger. Der Zielzeiger enthält nun den Wert 1, der verursacht, dass das Datenwort im Ausgaberegister 204 anstatt im gewünschten Eingaberegister 202 gespeichert wird. Folglich ist die in 2 gezeigte Konfiguration für die Blockübertragungen von Daten nicht förderlich.
  • Ein Versuch des Standes der Technik, dieses Problem zu überwinden, ist im US-Patent Nr. 5.687.357, erteilt an Priem, offenbart. Priem lehrt die Verwendung eines Adressendecodierers, um aufeinander folgende Adressen auf die gleiche Adresse zu decodieren, wenn das System eine Blockübertragung ausführt. Die Hinzufügung des Decodierers erfordert jedoch die Implementierung zusätzlicher Hardware oder Software, um die Adressen auf die gleiche Adresse umzusetzen. Die Hinzufügung zusätzlicher Komponenten erfordert mehr physikalischen Raum und schränkt auch die Geschwindigkeit der Speicherübertragungen auf die Zeit ein, die für die Decodierung erforderlich ist, falls eine derartige Decodierung langsamer als die Rate ist, mit der die E/A-Vorrichtung die Daten empfangen/senden kann. Bestimmte Ausführungsformen der vorliegenden Erfindung erleichtern oder überwinden dieses Problem.
  • 3 zeigt eine Ausführungsform der vorliegenden Erfindung. In dieser Ausführungsform ist keine zusätzliche Decodierungs-Schaltungsanordnung oder -Soft ware erforderlich, um eine DMA-Blockübertragung der Daten zu einer einzigen Zieladresse auszuführen.
  • Die in 3 gezeigte Ausführungsform enthält einen Mikroprozessor 100, eine E/A-Vorrichtung 102, einen Adressenbus 104 und einen Datenbus 106. Die E/A-Vorrichtung 102 ist durch die Vorrichtungsadressenleitungen 304a, . . ., 304c mit dem Adressenbus 104 und durch die Vorrichtungsdatenleitungen 306a, . . ., 306h mit dem Datenbus 106 verbunden. In dieser Ausführungsform besitzt der Mikroprozessor 100 einen 32-Bit-Adressenraum und ein 16-Bit-Datenwort. Die Größe des Adressenraums und des Datenworts ist in der vorliegenden Erfindung nicht von großer Wichtigkeit, wobei sie variieren können. Wie oben sind der Mikroprozessor 100 und die E/A-Vorrichtung 102 durch eine Steuerleitung 108 verbunden. Wie ein Durchschnittsfachmann leicht erkennen wird, kann die Steuerleitung 108 unter manchen Umständen weggelassen werden, wie z. B. wenn die E/A-Vorrichtung 102 die Fähigkeit besitzt, den Adressenbus 104 abzufragen, um zu bestimmen, ob Daten zu ihr übertragen werden.
  • Wie gezeigt ist, ist die E/A-Vorrichtung 102 direkt mit dem Adressenbus 104 verbunden. Im Gegensatz zu 2 sind jedoch die Vorrichtungsadressenleitungen 304 vom Bit niedrigster Ordnung des Adressenbusses 104 versetzt. Das heißt, die Adressenleitung niedrigster Ordnung (die Vorrichtungsadressenleitung 304a, wie gezeigt ist) ist nicht mit dem Bit niedrigster Ordnung des Adressenbusses 104 (z. B. A0) verbunden. In dieser Ausführungsform sind die Vorrichtungsadressenleitungen 304 um vier Bits- versetzt, wobei die Vorrichtungsadressenleitung 304a niedrigster Ordnung mit dem Bit A4 fünftniedrigster Ordnung des Adressenbusses 104 verbunden ist. Dies erlaubt, dass sequentielle Zieladressen alle zur gleichen Stelle adressiert werden, ohne irgendeine Decodierungs-Schaltungsanordnung oder -Software aufnehmen zu müssen.
  • Die Operation der Blockübertragung gemäß der vorliegenden Erfindung wird unter Verwendung des obenbeschriebenen Beispiels beschrieben. In dem oben erörterten Beispiel wurden die Informationen in der zweiten Speicherstelle (z. B. 1111H) infolge der inkrementalen Zunahme der im Zielzeiger gespeicherten Adresse zum falschen Register der E/A-Vorrichtung 102 gelenkt. Falls die E/A-Vorrichtung 102 mit dem Adressenbus 104 verbunden ist, wie in 3 gezeigt ist, erscheinen beide Adressen (0 und 1) als die gleiche. Das heißt, weil die E/A-Vorrichtung 102 nicht mit den vier Adressenleitungen A0–A3 niedrigster Ordnung verbunden ist, erscheinen die Zahlen FF00H bis FF0FH alle als die Adresse FF00H.
  • Hinsichtlich des obenbeschriebenen Zielzeigers neu formuliert erscheinen die inkrementalen Adressen 0 bis 7 der E/A-Vorrichtung 102 als eine 0.
  • Der obenbeschriebene Versatz beträgt vier Bits. Dies lässt 16 Speicherstellen in die gleiche Stelle kollabieren. Folglich werden die obenbeschriebenen Probleme überwunden, in dem die Verbindung der Adressenleitungen 304 zum Adressenbus 104 implementiert wird, wobei die Adressenleitung 304a niedrigster Ordnung von der Adressenbusleitung A0 niedrigster Ordnung versetzt ist.
  • Wie soeben beschrieben worden ist, betrug der Versatz vier Bits, wobei dadurch erlaubt wird, dass 8 Datenwörter zur gleichen Adresse als Block übertragen werden. Es kann ein anderer Versatz verwendet werden. Ein Faktor, der den Betrag des Versatzes beeinflusst, ist die Größe des Puffers, der dem Register bei der gewünschten Adresse zugeordnet ist. Vorzugsweise ist der Versatzbetrag gleich der Größe des zugeordneten Puffers. Falls z. B. die Größe des Puffers 4 Wörter beträgt, kann der Versatz 2 Bits betragen. Dies würde z. B. erlauben, dass die Adressen 1-3 (0001b–0010b), die 4 diskrete Adressen darstellen, alle zur gleichen Stelle (d. h. dem dritten Bitwert, der in diesem Fall 0 ist) adressiert werden. Obwohl der Versatzbetrag nicht gleich der Größe des Puffers der Größe eines Blocks, der übertragen werden kann, sein muss, kann dies für die meisten Anwendungen die effizienteste Anordnung sein.
  • Die obenbeschriebene E/A-Vorrichtung 102 kann irgendeine geeignete bekannte oder später entwickelte Vorrichtung sein, die serielle Übertragungen von Daten zu einer einzigen Adresse ausführen kann. Die E/A-Vorrichtung 102 könnte z. B. ein UART, ein Modem, ein Plattenlaufwerk, ein Logik-Controller oder eine Netzschnittstelle sein. Wie oben erwähnt worden ist, können ein Puffer, ein Stapel oder ähnliche Datenstrukturen, die dem Register zugeordnet sind, das in der E/A-Vorrichtung 102 adressiert wird, verwendet werden (müssen aber nicht verwendet werden).
  • Die vorliegende Erfindung kann an Situationen angepasst werden, in denen Daten zum im wesentlichen gleichen Zeitpunkt von einer einzelnen Stelle zu zwei anderen Stellen zu übertragen sind. Jede Stelle kann ein Steuer-Untersystem sein. In vielen Fällen wird die zeitliche Steuerung der Ausgaben aus den Steuer- Untersystemen kritisch, wobei sich zwingende Anforderungen ergeben können, dass jedes Steuer-Untersystemen eine Ausgabe innerhalb des im wesentlichen gleichen Zeitpunkts erzeugt. Ein Zugang ist, in beiden Untersystemen einen gemeinsamen Takt vorzusehen, um ihren Betrieb zu synchronisieren. Die Bereitstellung eines einzelnen Takts führt jedoch einen Grad des Ausfalls einer einzelnen Vorrichtung ein, der den Betrieb des Systems unterbrechen oder möglicherweise zerstören könnte. Folglich ist die Einführung eines gemeinsamen Taktes in ein fehlertolerantes System keine akzeptable Lösung.
  • Fehlertolerante Systeme vewenden typischerweise unabhängige und parallele Steuer-Untersysteme, um zu sichern, dass ein Ausfall in einem Steuer-Untersystem nicht das ganze System sperrt. Die Ausgaben jedes Steuer-Untersystems werden verglichen, um das Vorhandensein eines Fehlers in einem Untersystem zu erfassen. Wie in der Technik wohl bekannt ist, wird dann eine Entscheidungsoder Abstimmungsprozedur aufgerufen, um zu wählen, welche Untersystem-Ausgabe beim Steuern irgendeines Abschnitts des Systems verwendet wird. Die zwei Untersysteme können z. B. beide fähig sein, einen einzelnen Aktuator (z. B. einen Motor) anzusteuern.
  • Bestimmte Ausführungsformen der vorliegenden Erfindung können einige oder eine dieser Probleme lindern, indem sie erlauben, dass eine einzelne Speicherübertragung vom Mikroprozessor bei zwei oder mehr Steuer-Untersystemen gleichzeitig ankommt. Der Begriff Steuer-Untersystem, wie er hierin verwendet wird, kann mit irgendeiner vorausgehend beschriebenen allgemeinen E/A-Vorrichtung gleichgesetzt werden. Folglich enthält für die Einfachheit und Kontinuität der Erörterung die im folgenden erörterte E/A-Vorrichtung 102 ein Steuer-Untersystemen, ist jedoch nicht darauf eingeschränkt. Vorzugsweise ist die E/A-Vorrichtung 102 ein UART.
  • Ferner erlaubt gemäß einer weiteren Ausführungsform die vorliegende Erfindung die gleichzeitige Übertragungen von Datenblöcken zu mehreren E/A-Vorrichtungen, wobei alle Datenblöcke zur gleichen Adresse übertragen werden.
  • In 4 ist eine beispielhafte Ausführungsform eines Systems, das gleichzeitig Daten zu zwei E/A-Vorrichtungen 102 und 102' übertragen kann, offenbart. Die Anzahl der E/A-Vorrichtungen muss nicht gleich zwei sein, wobei sie in einigen Anwendungen, abhängig von der Menge der gewünschten Redundanz, größer sein kann.
  • In diesem Beispiel enthält das System eine erste E/A-Vorrichtung 102, eine zweite E/A-Vorrichtung 102' und einen Mikroprozessor 100. Der Mikroprozessor 100 ist durch eine Steuerleitung 118 sowohl mit der ersten als auch mit der zweiten E/A-Vorrichtung 102 bzw. 102' direkt verbunden. Der Mikroprozessor 100 ist mit allen Leitungen des Adressenbusses 104 verbunden, wobei er eine Adresse auf dem Adressenbus 104 ablegen kann. Wie gezeigt ist, sind beide E/A-Vorrichtungen 102 und 102' mit den gleichen Adressenleitungen (A4 bis A6) verbunden. Vorausgesetzt, dass beide E/A-Vorrichtungen 102 und 102' die gleiche Adresse besitzen, weil sie mit den gleichen Leitungen des Adressenbusses 104 verbunden sind, können beide Vorrichtungen gleichzeitig adressiert werden.
  • Es wird angenommen, dass der Mikroprozessor wünscht, dass Informationen in das Eingaberegister 202 der ersten E/A-Vorrichtung übertragen werden. Diese Übertragung kann abgeschlossen werden, wie oben ausführlich beschrieben worden ist. In einem fehlertoleranten System ist es jedoch typischerweise erwünscht, dass diese Informationen gesichert werden. Das heißt, die Daten müssen zu zwei unabhängigen Stellen (Vorrichtungen) übertragen werden. Typischerweise würde der Mikroprozessor 100, um dies zu tun, zuerst die Daten zur ersten Vorrichtung übertragen und dann die gleichen Daten zu einer anderen Vorrchtung erneut übertragen. Dies erfordert mehr Zyklen des Mikroprozessors 100, wobei es dadurch den Zusatzaufwand vergrößert und den Mikroprozessor 100 verlangsamt. Ferner stellt dieser Typ der sequentiellen Übertragung die Daten nicht beiden Vorrichtungen gleichzeitig bereit.
  • Gemäß einem Aspekt der vorliegenden Erfindung können jedoch, weil sowohl die erste E/A-Vorrichtung 102 als auch die zweite E/A-Vorrichtung 102' mit den gleichen Adressenleitungen (A4–A6) verbunden sind, sie gleichzeitig adressiert werden. Nachdem der Mikroprozessor z. B. den E/A-Vorrichtungen 102 und 102' über die Steuerleitung 104 signalisiert hat, dass er Daten zu ihnen zu übertragen wünscht, legt der Mikroprozessor 100 eine Adresse 0 auf dem Adressenbus 104 ab, um die Daten auf dem Datenbus 106 zu den Eingaberegistern beider Vorrichtungen zu lenken. Das heißt selbstverständlich, es wird angenommen, dass beide E/A-Vorrichtungen 102 und 102 die Adresse 0 ihren entsprechenden Eingaberegistern zugewiesen haben. In dieser Weise werden die Daten auf dem Datenbus 106 gleichzeitig zu beiden E/A-Vorrichtungen 102 und 102' übertragen.
  • Wie in 4 gezeigt ist, sind die entsprechenden Verbindungen sowohl der ersten E/A-Vorrichtung 102 als auch der zweiten E/A-Vorrichtung 102' mit dem Adressenbus 106 um 4 Bits versetzt. Dies erlaubt, wie oben ausführlich beschrieben worden ist, die effizienten Blockübertragungen der Daten zu jeder Vorrichtung. Weil insbesondere beide Vorrichtungen durch die gleiche Steuerleitung 108 gesteuert werden und beide direkt mit den gleichen Adressenleitungen (A4 bis A6) verbunden sind, können die Blockübertragungen der Daten gleichzeitig sowohl zur ersten E/A-Vorrichtung 102 als auch zur zweiten E/A-Vorrichtung 102' ausgeführt werden.
  • In 4 sind sowohl beide E/A-Vorrichtungen 102 und 102' als auch der Mikroprozessor 100 mit dem Datenbus 106 verbunden. In Bezug auf die 5 und 6 werden zwei verschiedene beispielhafte Verbindungen der E/A-Vorrichtungen 102 und 102' mit dem Datenbus 106 und bestimmte Vorteile und Verwendungen von jeder beschrieben.
  • 5 zeigt sowohl die erste als auch die zweite E/A-Vorrichtung 102 bzw. 102', die mit den gleichen Abschnitten des Datenbusses 106 verbunden sind. Spezieller sind beide Vorrichtungen mit den Datenleitungen niedriger Ordnung (D0 bis D7) des Datenbusses 106 verbunden. Wenn beide E/A-Vorrichtungen 102 und 102' in dieser Weise konfiguriert sind, empfangen sie die gleichen Daten. Wie gezeigt ist, ist nur ein Abschnitt der Datenleitungen des Datenbusses 106 mit den E/A-Vorrichtungen 102 und 102' verbunden. Wie jedoch ein Durchschnittsfachmann leicht erkennen wird, könnten die E/A-Vorrichtungen 102 und 102' abhängig von der Anwendung mit allen Datenleitungen oder irgendeinem Abschnitt von ihnen verbunden sein.
  • Ein Beispiel einer Situation, in der sich eine derartige Verbindung, wie sie in 5 gezeigt ist, ergeben kann, ist in einem System, das zwei Kopien aller gespeicherten Daten erfordert. Indem beide E/A-Vorrichtungen 102 und 102' mit den gleichen Datenleitungen verbunden sind, und weil sie beide durch eine gemeinsame Steuerleitung 108 gesteuert werden, werden die auf dem Datenbus 106 dargestellten Daten gleichzeitig an zwei Stellen (den E/A-Vorrichtungen 102 und 102') gespeichert. Diese gleichzeitige Speicherung glaubt die Erzeugung von zwei Kopien der Daten, die beide gleich zugänglich sind. Dies erlaubt vorteilhaft die Erzeugung einer Sicherungskopie der Daten, ohne die Zeit zu beanspruchen, um das Original in eine Sicherungsdatei zu kopieren.
  • Eine weitere Anwendung der gleichzeitigen Übertragung derselben Daten sind die obenerwähnten fehlertoleranten Systeme. Durch das Übertragen der Daten zu zwei Stellen wird der Ausfall eines Steuer-Untersystems den Betrieb der Vorrichtung, die durch die Untersysteme gesteuert wird, nicht ernstlich beeinflussen.
  • 6 zeigt ein alternatives Verbindungsschema zwischen dem Datenbus 106 und den ersten und zweiten E/A-Vorrichtungen 102 bzw. 102'. Wie gezeigt ist, ist die erste E/A-Vorrichtung 102 mit den Datenleitungen niedriger Ordnung (D0 bis D7) verbunden, während die zweite E/A-Vorrichtung 102' mit den Datenleitungen höherer Ordnung (D8 bis D15) verbunden ist. Dies erlaubt, dass unter Verwendung des einzelnen Übertragungsbefehls zwei verschiedene Datenwörter gleichzeitig zu zwei verschiedenen Stellen übertragen werden. Folglich sind verschiedene Daten für jede der E/A-Vorrichtungen, die mit dem Datenbus verbunden sind, die alle durch eine einzelne Adresse adressierbar sind, gleichzeitig verfügbar.
  • Die in 6 gezeigte Konfiguration erlaubt z. B. die gleichzeitige Steuerung von zwei entgegenwirkenden Aktuatoren (d. h. Motoren). Falls jede der E/A-Vorrichtungen 102 und 102' mit (nicht gezeigten) verschiedenen Aktuatoren verbunden ist, können beide Aktuatoren durch den Mikroprozessor 100 gesteuert werden, der ein einzelnes Datenstück oder einen einzelnen Datenblock überträgt.
  • In einem System, das z. B. Motoren verwendet, um ein Rad in einer aufrechten Position aufrechtzuerhalten, kann einen Motor auf jeder Seite des Rades verwendet werden, um das Rad aufrecht zu halten. Wenn das Rad beginnt, sich zu einer Seite zu neigen, wird der Motor auf der anderen Seite betätigt, um das Rad zurück in die Senkrechte zu bringen. Falls nur ein Motor (durch eine E/A-Vorrichtung) auf einmal Informationen darüber empfangen kann, wie er arbeiten sollte, kann die Steuerung des Rades überzogen werden. Das heißt, ein Motor läuft, bis der andere beginnt, zu laufen. In dieser Weise wird das Rad "taumeln", zurückzuführen auf die durch das einzelne sequentielle Laufen jedes Motors übertragene Hin- und Herbewegung. Falls jedoch beide Motoren Informationen gleichzeitig empfangen könnten, könnte dies vermindert werden. Wenn das Rad z. B. durch einen Motor zur Senkrechten gebracht wird, könnte der entgegenwirkende Motor gleichzeitig langsam in Betrieb gesetzt werden, sodass das Rad niemals aus der Senkrechten abgelenkt wird.
  • Alternativ könnten sowohl die ersten als auch die zweiten E/A-Vorrichtungen 102 bzw. 102' die gleichen Informationen empfangen und trotzdem in der in 6 gezeigten Weise mit dem Datenbus verbunden sein. In diesem Fall würde der (nicht gezeigte) Mikroprozessor 100 lediglich auf den Datenleitungen D0 bis D7 niedriger Ordnung völlig gleiche Daten ablegen, wie er sie auf den Datenleitungen D8 bis D15 hoher Ordnung ablegt.
  • 7 ist ein Ablaufplan, der eine Ausführungsform eines Verfahrens zum Übertragen von Daten unter Verwendung einer beispielhaften Ausführungsform der vorliegenden Erfindung ausführlich beschreibt. Im Schritt 702 wird eine Adresse auf einem Adressenbus abgelegt. Die auf dem Bus abgelegte Adresse wird auf dem Bus für eine Zeitperiode gehalten, die lang genug ist, dass die Daten vom Bus gelesen werden. Im Schritt 704 wird ein Abschnitt der Daten im zu übertragenden Datenblock (d. h. ein Datenwort) auf dem Datenbus abgelegt. Der Schritt 704 kann während derselben Zeitperiode auftreten, in der die Adresse auf dem Bus gehalten wird.
  • In einer Ausführungsform können zwei oder mehrere Datenblöcke parallel übertragen werden. In dieser Ausführungsform kann der erste Abschnitt jedes Datenblocks gleichzeitig auf den Abschnitten des Datenbusses, z. B. den oberen und unteren Hälften des Busses, abgelegt werden. Wie oben beschrieben worden ist, kann ein DMA-Controller verwendet werden, um die Adressen und die Daten auf dem Bus abzulegen.
  • Sobald die Daten auf dem Datenbus abgelegt sind, werden im Schritt 706 die Daten zu einer Vorrichtung (d. h. einer Datenspeichervorrichtung) übertragen, die ein Speicherelement besitzt, um die Daten zu empfangen. Die Daten können durch eine Vorrichtung oder durch mehrere Vorrichtungen empfangen werden, wie oben beschrieben worden ist. In beiden Fällen wird das Verfahren fortgesetzt, bis der ganze Block übertragen worden ist, wie im Block 708 bestimmt wird. Nach jedem anschließenden Durchlauf durch den Ablaufplan nach 7 wird die Adresse, die auf dem Adressenbus abgelegt und gehalten wird, inkrementiert. Unter Verwendung der obenbeschriebenen Ausführungsform wird jedoch jede Übertragung eines Datenwortes in einen Block sequentiell im gleichen Speicherelement gespeichert, ungeachtet der Inkrementierung der Adresse.
  • Nachdem auf diese Weise verschiedene veranschaulichende Ausführungsformen der vorliegenden Erfindung, einige ihrer Vorteile und optionalen Merkmale beschrieben worden sind, ist offensichtlich, dass derartige Ausführungsformen lediglich beispielhaft und nicht als Einschränkung dargestellt worden sind. Die Fachleute auf dem Gebiet könnten leicht sowohl Änderungen und Verbesserungen an diesen Ausführungsformen als auch zusätzliche Ausführungsformen entwerfen, ohne vom Erfindungsgedanken und Umfang der Erfindung abzuweichen. Obwohl z. B. die Verbindungen zwischen den E/A-Vorrichtungen und mehreren Bussen als direkte Verbindungen ohne eine dazwischenliegende Schaltungsanordnung oder dazwischenliegende Vorrichtungen über diejenigen hinaus, die erforderlich sind, um eine derartige Verbindung zu verwirklichen, gezeigt worden sind, könnten diese Verbindungen eine zusätzliche Schaltungsanordnung oder zusätzliche Vorrichtungen besitzen, die zwischen irgendeinem der Busse und irgendeiner der E/A-Vorrichtungen angeordnet sind. Außerdem ist die Breite der Adressen- und Datenbusse vollständig variabel, wie es der Adressenraum des Mikroprozessors ist. Außerdem ist die Größe des Datenwortes, die die E/A-Vorrichtung handhaben kann, ebenfalls variabel. Außerdem können die Steuerleitungen so konfiguriert sein, dass, selbst wenn zwei Vorrichtungen die gleiche Adresse besitzen, die Informationen nur zu einer von ihnen übertragen werden. Demzufolge ist die Erfindung nur eingeschränkt, wie in den folgenden Ansprüchen und ihren Äquivalenten definiert ist.

Claims (24)

  1. Vorrichtung für die Ausführung von Datenübertragungen, die einen Adressenbus mit mehreren Adressenleitungen und einen Datenbus mit mehreren Datenleitungen besitzt und umfaßt: eine erste Eingabe/Ausgabe-Vorrichtung, die mit dem Adressenbus und mit dem Datenbus verbunden ist und mit dem Adressenbus in der Weise verbunden ist, daß jede von mehreren Adressen stets einer einzigen Adresse in der ersten Eingabe/Ausgabe-Vorrichtung entspricht; und eine zweite Eingabe/Ausgabe-Vorrichtung, die mit dem Adressenbus und mit dem Datenbus verbunden ist und mit dem Adressenbus in der Weise verbunden ist, daß jede von mehreren Adressen stets einer einzigen Adresse in der zweiten Eingabe/Ausgabe-Vorrichtung entspricht; wobei die Vorrichtung dadurch gekennzeichnet ist, daß die mehreren Adressen, die einer einzigen Adresse in der ersten Eingabe/Ausgabe-Vorrichtung entsprechen, gleich den mehreren Adressen sind, die einer einzigen Adresse in der zweiten Eingabe/Ausgabe-Vorrichtung entsprechen.
  2. Vorrichtung nach Anspruch 1, bei der die erste und die zweite Eingabe/Ausgabe-Vorrichtung universelle asynchrone Empfänger/Sender sind.
  3. Vorrichtung nach Anspruch 1, bei der die erste und die zweite Eingabe/Ausgabe-Vorrichtung nicht mit einem Adressendecodierer verbunden sind.
  4. Vorrichtung nach Anspruch 1, bei der die Verbindung der ersten und zweiten Eingabe/Ausgabe-Vorrichtung mit dem Adressenbus versetzt ist.
  5. Vorrichtung nach Anspruch 4, bei der der Versatzbetrag gleich der Größe der Datenstruktur ist, die sich in den Eingabe/Ausgabe-Vorrichtungen befindet, um Datenübertragungen abzuwickeln.
  6. Vorrichtung nach Anspruch 1, die ferner einen DMA-Controller umfaßt, der mit dem Adressenbus und mit dem Datenbus verbunden ist.
  7. Vorrichtung nach Anspruch 1, bei der die Verbindung mit dem Adressenbus der ersten Eingabe/Ausgabe- Vorrichtung um einen festen Betrag versetzt ist und die zweite Eingabe/Ausgabe-Vorrichtung mit dem Adressenbus in der Weise verbunden ist, daß der Versatz gleich dem der ersten Eingabe/Ausgabe-Vorrichtung ist.
  8. Vorrichtung nach Anspruch 7, bei der die erste und die zweite Eingabe/Ausgabe-Vorrichtung universelle asynchrone Empfänger/Sender sind.
  9. Vorrichtung nach Anspruch 8, bei der die erste und die zweite Eingabe/Ausgabe-Vorrichtung mit denselben Datenbusleitungen verbunden sind.
  10. Vorrichtung nach Anspruch 8, bei der die erste Eingabe/Ausgabe-Vorrichtung mit Datenbusleitungen niedrigerer Ordnung des Datenbusses und die zweite Eingabe/Ausgabe-Vorrichtung mit Datenbusleitungen höherer Ordnung des Datenbusses verbunden ist.
  11. Vorrichtung nach Anspruch 10, bei der die Datenbusleitungen niedrigerer Ordnung und die Datenbusleitung höherer Ordnung nicht dieselben Datenbusleitungen sind.
  12. Verfahren zum elektronischen Übertragen eines ersten Blocks aus Datenelementen an ein Speicherelement einer ersten Vorrichtung und eines zweiten Blocks aus Datenelementen an ein Speicherelement einer zweiten Vorrichtung über einen Bus, der einen Adressenabschnitt und einen Datenabschnitt besitzt, wobei das Verfahren die folgenden Schritte umfaßt: (a) Ablegen und Halten einer ersten Adresse auf dem Adressenabschnitt des Busses; (b) während des Schrittes (a) Übertragen eines ersten Datenelements des ersten Blocks an das Speicherelement der ersten Vorrichtung; und (c) gleichzeitig zum Schritt (b} Übertragen eines ersten Datenelements des zweiten Blocks an das Speicherelement der zweiten Vorrichtung.
  13. Verfahren nach Anspruch 12, das ferner die folgenden Schritte umfaßt: (d) Ablegen und Halten einer zweiten Adresse auf dem Adressenabschnitt des Busses; (e) während des Schrittes (d) Übertragen eines zweiten Datenelements des ersten Blocks an das Speicherelement der ersten Vorrichtung; und (f) gleichzeitig zum Schritt (e) Übertragen eines zweiten Datenelements des zweiten Blocks an das Speicherelement der zweiten Vorrichtung.
  14. Verfahren nach Anspruch 12, bei dem das erste Datenelement des ersten Blocks ein Datenwort ist und bei dem das erste Datenelement des zweiten Blocks ein Datenwort ist.
  15. Verfahren nach Anspruch 12, bei dem das Speicherelement der ersten Vorrichtung ein Register ist und die erste Vorrichtung ein universeller asynchroner Empfänger/Sender ist.
  16. Verfahren nach Anspruch 12, bei dem das Speicherelement der zweiten Vorrichtung ein Register ist und die zweite Vorrichtung ein universeller asynchroner Empfänger/Sender ist.
  17. Verfahren nach Anspruch 12, bei dem das erste Datenelement des ersten Blocks gleich dem ersten Element des zweiten Datenblocks ist.
  18. Verfahren nach Anspruch 12, bei dem das erste Datenelement des ersten Blocks von dem ersten Element des zweiten Datenblocks verschieden ist.
  19. Verfahren nach Anspruch 12, bei dem die Schritte (a), (b) und (c) durch einen DMA-Controller ausgeführt werden.
  20. Verfahren nach Anspruch 13, bei dem die Schritte (d), (e) und (f) durch einen DMA-Controller ausgeführt werden.
  21. Vorrichtung nach Anspruch 1, bei der: die erste Eingabe/Ausgabe-Vorrichtung umfaßt: mehrere Dateneingänge, um Daten von dem Datenbus zu empfangen; ein Speicherelement, um die von dem Datenbus empfangenen Daten zu speichern; mehrere Adresseneingänge, um eine Adresse von dem Adressenbus zu empfangen; und eine Einrichtung zum Bestimmen, ob die von einem der Adresseneingänge empfangene Adresse einer Adresse entspricht, die der ersten Vorrichtung zugewiesen ist; und bei der die zweite Eingabe/Ausgabe-Vorrichtung umfaßt: mehrere Dateneingänge, um Daten von dem Datenbus zu empfangen; ein Speicherelement, um die von dem Datenbus empfangenen Daten zu speichern; mehrere Adresseneingänge, um eine Adresse von dem Adressenbus zu empfangen; und eine Einrichtung zum Bestimmen, ob die von einem der Adresseneingänge empfangene Adresse einer Adresse entspricht, die der zweiten Eingabe/Ausgabe-Vorrichtung zugewiesen ist.
  22. Vorrichtung nach Anspruch 21, bei der die von der ersten Eingabe/Ausgabe-Vorrichtung und von der zweiten Eingabe/Ausgabe-Vorrichtung empfangenen Daten dazu verwendet werden, mehrere Aktuatoren anzusteuern.
  23. Vorrichtung nach Anspruch 21, bei der die von der ersten Eingabe/Ausgabe-Vorrichtung empfangenen Daten gleich den Daten sind, die von der zweiten Eingabe/Ausgabe-Vorrichtung empfangen werden.
  24. Vorrichtung nach Anspruch 21, bei der die von der ersten Eingabe/Ausgabe-Vorrichtung empfangenen Daten von den Daten, die von der zweiten Eingabe/Ausgabe-Vorrichtung empfangen werden, verschieden sind.
DE60005157T 1999-03-04 2000-03-03 Verfahren und anordnung für blockdatenübertragung Expired - Fee Related DE60005157T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US26238199A 1999-03-04 1999-03-04
US262381 1999-03-04
PCT/US2000/005589 WO2000052588A1 (en) 1999-03-04 2000-03-03 Method and apparatus for the block transfer of data

Publications (2)

Publication Number Publication Date
DE60005157D1 DE60005157D1 (de) 2003-10-16
DE60005157T2 true DE60005157T2 (de) 2004-07-08

Family

ID=22997258

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60005157T Expired - Fee Related DE60005157T2 (de) 1999-03-04 2000-03-03 Verfahren und anordnung für blockdatenübertragung

Country Status (12)

Country Link
US (1) US20020144029A1 (de)
EP (1) EP1159686B1 (de)
JP (1) JP2002538551A (de)
KR (1) KR20010102481A (de)
AT (1) ATE249645T1 (de)
AU (1) AU771453B2 (de)
CA (1) CA2363737A1 (de)
DE (1) DE60005157T2 (de)
ID (1) ID30228A (de)
MX (1) MXPA01008933A (de)
TW (1) TW487844B (de)
WO (1) WO2000052588A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020068658A (ko) * 2001-02-21 2002-08-28 신이균 다층 데이터버스의 제어방법
FR2880705A1 (fr) 2005-01-10 2006-07-14 St Microelectronics Sa Procede de conception d'un peripherique compatible dma
JP4676378B2 (ja) * 2006-05-18 2011-04-27 株式会社バッファロー データ記憶装置およびデータ記憶方法
US9875125B2 (en) 2013-06-14 2018-01-23 International Business Machines Corporation Parallel mapping of client partition memory to multiple physical adapters
US11862117B2 (en) * 2020-11-25 2024-01-02 Texas Instruments Incorporated Method and apparatus for matched buffer decompression

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5228130A (en) * 1988-09-14 1993-07-13 National Semiconductor Corporation Multi-channel peripheral interface using selectively flaggable channel register sets for concurrent write in response to any selected channel register write instruction
US5608889A (en) * 1994-08-17 1997-03-04 Ceridian Corporation DNA controller with wrap-around buffer mode
US5687357A (en) * 1995-04-14 1997-11-11 Nvidia Corporation Register array for utilizing burst mode transfer on local bus
US5774680A (en) * 1995-12-11 1998-06-30 Compaq Computer Corporation Interfacing direct memory access devices to a non-ISA bus

Also Published As

Publication number Publication date
AU3720200A (en) 2000-09-21
ID30228A (id) 2001-11-15
WO2000052588A1 (en) 2000-09-08
JP2002538551A (ja) 2002-11-12
EP1159686B1 (de) 2003-09-10
ATE249645T1 (de) 2003-09-15
MXPA01008933A (es) 2002-04-24
CA2363737A1 (en) 2000-09-08
EP1159686A1 (de) 2001-12-05
WO2000052588A9 (en) 2001-12-27
DE60005157D1 (de) 2003-10-16
AU771453B2 (en) 2004-03-25
KR20010102481A (ko) 2001-11-15
US20020144029A1 (en) 2002-10-03
TW487844B (en) 2002-05-21

Similar Documents

Publication Publication Date Title
DE3204905C2 (de)
DE2522748C2 (de) Peripheriekopplungsadapter zur Steuerung der Informationsübertragung zwischen einer Datensammelleitung eines Zentralprozessors und daran angeschlossenen peripheren Einheiten
DE2856483C2 (de)
DE3222390C2 (de)
DE3914265C2 (de)
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE2350884C2 (de) Adreßumsetzungseinheit
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69123952T2 (de) Rechneradressierungseinrichtung
DE69127771T2 (de) Datenübertragungssteuerungsvorrichtung
DE69324323T2 (de) Mehrstationskommunikationsbussystem, sowie eine Master-Station und eine Slave-Station für den Einsatz in einem solchen System
EP0895165B1 (de) Kommunikationssystem mit einer DMA-Einheit
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas
DE60005157T2 (de) Verfahren und anordnung für blockdatenübertragung
DE69503010T2 (de) Mikroprozessor zur Ausführung von Befehlen,von denen ein Teil des Operandfelds als Operationscode zu gebrauchen ist
DE3787235T2 (de) Übertragungssysteme mit Paketbildung.
DE3936339A1 (de) Controller fuer direkten speicherzugriff
DE10036643B4 (de) Verfahren und Vorrichtung zur Auswahl von Peripherieelementen
EP0057755B1 (de) Mikrorechnersystem zum raschen Auffinden von Kennzeichenblöcken
DE69320732T2 (de) Verfahren zur Gerätadressierung und zur Datensignalübertragung auf einem Bus
DE2751307C2 (de) Einrichtung zur Steuerung einer IS-Glasformmaschine
DE69213413T2 (de) Zwischenprozessor-Kommunikationsystem und Verfahren für Mehrprozessorschaltkreis
EP1308846B1 (de) Datenübertragungseinrichtung
EP0525214B1 (de) Verfahren zum Betreiben eines Automatisierungsgeräts
DE69428645T2 (de) Datenbussteuerung mit Pegeleinstellungsschaltung

Legal Events

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