DE69021899T2 - DMA-Steuerung. - Google Patents

DMA-Steuerung.

Info

Publication number
DE69021899T2
DE69021899T2 DE69021899T DE69021899T DE69021899T2 DE 69021899 T2 DE69021899 T2 DE 69021899T2 DE 69021899 T DE69021899 T DE 69021899T DE 69021899 T DE69021899 T DE 69021899T DE 69021899 T2 DE69021899 T2 DE 69021899T2
Authority
DE
Germany
Prior art keywords
tag
memory
transfer
dma
dma controller
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
DE69021899T
Other languages
English (en)
Other versions
DE69021899D1 (de
Inventor
Richard G Fogg
Joseph Richard Mathis
James Otto Nicholson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69021899D1 publication Critical patent/DE69021899D1/de
Application granted granted Critical
Publication of DE69021899T2 publication Critical patent/DE69021899T2/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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

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

Description

  • Die vorliegende Erfindung bezieht sich auf Steuerungen mit dire)ctem Speicherzugriff (DMA).
  • In digitalen Computersystemen ist es üblich, einen direkten Speicherzugriff (DMA) zu verwenden, um Daten zwischen einem Systemspeicher, der an einen Hauptsystembus angeschlossen ist, und Ein-/Ausgabegeräten zu übertragen. Die Richtung der Datenübertragung kann vom Ein-/Ausgabegerät zu Speicher oder umgekehrt erfolgen. Eine DMA-Steuerung wird normalerweise verwendet, um Datenblöcke zwischen einem Ein-/Ausgabegerät und aufeinanderfolgenden Speicherstellen im Systemspeicher zu übertragen. Um eine Blockübertragung durchzuführen, benötigt die DMA-Vorrichtung eine Anfangsadresse für die Übertragung und eine Zählung der Anzahl an Datenelementen, bei denen es sich um Bytes, Wörter oder andere Dateneinheiten handeln kann, die parallel auf dem Systembus des Computers übertragen werden können. Um eine DMA-Blockübertragung durchzuführen, kann die DMA-Steuerung während der Dauer der Übertragung die Steuerung des Busses übernehmen oder jedesmal dann ein Datenelement übertragen, wenn der Systembus ansonsten nicht in Anspruch genommen ist. Letzteres Verfahren wird manchmal als Zyklusdiebstahl bezeichnet.
  • DMA-Steuerungen sind normalerweise so ausgelegt, daß sie mit mehreren unabhängigen Ein-/Ausgabekanälen, normalerweise vier oder acht, verbunden sind. Jeder Ein-/Ausgabekanal besitzt seine eigenen Puffer und Steuerregister zur Steuerung der DMA- Übertragungen zu und von diesem Kanal. Der Zentralprozessor des Systems besitzt für jeden Kanal direkten Zugriff auf die Register, so daß die Übertragungen einzeln gesteuert werden können.
  • Jede Übertragung kann nur einen Block nacheinander adressierter Daten umfassen. In vielen Situationen wäre es wünschenswert, eine zweite Blockübertragung zu oder von einer anderen Speicherstelle im Speicher durchzuführen, unmittelbar nachdem eine erste Übertragung abgeschlossen ist. In einem Verfahren, das als Datenverkettung bekannt ist, ermöglichen zahlreiche DMA-Steuerungen einem Zentralprozessor, die für die zweite Blockübertragung benötigten Informationen in eine weitere Gruppe von Steuerregistern innerhalb der DMA-Steuerung zu laden. Diese Steuerregister können spezielle Register sein, die zum Zweck der Datenverkettung beiseite gelegt werden, oder es kann sich um derzeit nicht in Verwendung befindliche Steuerregister für einen der anderen Ein-/Ausgabekanäle handeln. Nach Beendigung der ersten Blockübertragung werden die für die zweite Blockübertragung benötigten Informationen in die Steuerregister für den betreffenden Ein-/Ausgabekanal kopiert, und eine weitere Blockübertragung wird unmittelbar in die Wege geleitet. Implementiert die DMA-Steuerung eine Funktion, die unter dem Begriff auto relaod bekannt ist, werden ausgewählte Statusbits eingestellt, sobald die zweite Blockübertragung beginnt. Durch periodische Tests der Statusbits kann der Zentralprozessor bestimmen, wann die zweite Blockübertragung begonnen wurde, und die für eine dritte Blockübertragung erforderlichen Steuerinformationen, wenn gewünscht, in die Datenverkettungsregister laden.
  • In einigen Auslegungen von Computersystemen treten häufig aufeinanderfolgende Blockübertragungen in nicht zusammenhängende Bereiche des Speichers auf. Dies geschieht beispielsweise häufig in anfrageabhängigen virtuellen Speichern, in denen die Speicherseiten ebenfalls kontinuierlich zwischen dem Hauptsystemspeicher und einer Massenspeichervorrichtung, üblicherweise einer Festplatte, übertragen werden.
  • Dateien werden normalerweise als logisch aufeinanderfolgende Blöcke auf der Platte gespeichert, und werden häufig in viele nicht aufeinanderfolgende Seitenrahmen im Systemspeicher geladen. Wenn eine Datei auf die Platte geschrieben wird, müssen die verteilten Seitenrahmen zusammengestellt werden, um diese sequenziell auf die Platte schreiben zu können.
  • Das US-Patent 4,703,418 beschreibt eine DMA-Steuerung, die in einem Systemspeicher von einem Systemprozessor gespeicherte Steuerelemente verwendet und die die Speicheradresse und die Anzahl der zu übertragenden Bytes angibt. Die Steuerelemente werden nacheinander durch eine Ein-/Ausgabevorrichtung ausgeführt.
  • Das US-Patent 4,346,439 beschreibt eine DMA-Steuerung, in der ein Prozessor an eine Ein-/Ausgabevorrichtung die Anfangsadresse und die Anzahl der Einträge in einer Tabelle überträgt, wobei jeder Eintrag in der Tabelle eine Anfangsadresse und die Menge der zu übertragenden Daten enthält. Die Tabelle ist im Hauptspeicher gespeichert.
  • Der Fachmann auf diesem Gebiet erkennt eindeutig, daß der Zentralprozessor den Status der DMA-Übertragungen konstant überwachen muß, um jedesmal nach einer abgeschlossenen Datenübertragung eine neue Übertragung zu initiieren. Hierfür sind im allgemeinen zahlreiche zeitaufwendige Unterbrechungen des Zentralprozessors nötig, oder, schlimmer noch, periodische Abfragen der Status-Register der DMA-Steuerung durch den Zentralprozessor.
  • Die Erfordernis in DMA-Übertragungen einer Einbeziehung des Zentralprozessors zu einem derart hohen Grad ist eindeutig unerwünscht.
  • Die bisherige Technologie stellt daher keine DMA-Steuerung bereit, die eine große Anzahl aufeinanderfolgender Blockübertragungen zu und von nicht zusammenhängenden Speicherstellen ausführen kann, ohne daß hierfür der Eingriff eines Zentralprozessors des Systems erforderlich ist, nachdem die erste der Übertragungen begonnen hat. Eine solche Steuerung wäre in der Lage, Streu-/Sammeloperationen zwischen einem Hauptsystemspeicher und einer Plattenspeichervorrichtung auszuführen, eine äußerst wünschenswerte Operation in einem anfrageabhängigen virtuellen Speicher.
  • Entsprechend stellt die vorliegende Erfindung ein System zur Steuerung von Datenübertragungen zwischen einem Speicher und einer anderen Vorrichtung in einem digitalen Computer mit einem Zentralprozessor bereit, wobei das System folgendes umfaßt:
  • Eine Steuerung mit direktem Speicherzugriff (DMA) zur Übertragung von Daten zwischen dem Speicher und der anderen Vorrichtung entsprechend den Übertragungssteuerungsparametern in der genannten Steuerung; und einen Tag-Speicher, der an die genannte DMA-Steuerung gekoppelt ist, wobei der genannte Tagspeicher zwei oder mehrere Tag-Objekte mit Übertragungssteuerungsparametern enthält, folgendermaßen charakterisiert:
  • Der Tag-Speicher ist vom Systemspeicher getrennt und der Nutzung durch die DMA-Steuerung vorbehalten; auf ihn kann durch die genannte DMA-Steuerung zugegriffen werden, ohne daß eine Referenz zum genannten Zentralprozessor nötig ist; Übertragungssteuerungsparameter in der genannten DMA-Steuerung; eine neue Gruppe von Übertragungssteuerungsparametern in einem nächsten Tag-Objekt im genannten Tag-Speicher wird zur genannten DMA-Steuerung übertragen und entsprechend der genannten neuen Gruppe von Übertragungssteuerungsparametern eine neue Datenübertragung begonnen.
  • Daher umfaßt eine Steuerung mit direktein Speicherzugriff in Übereinstimmung mit der vorliegenden Erfindung einen separaten Speicher, der speziell für die Unterstützung von DMA-Funktionen vorgesehen ist. Dieser separate Speicher ist als Stapel mit einer Mehrzahl an Objekten organisiert. Jedes im Stapel gespeicherte Objekt enthält die für eine DMA-Blockübertragung erforderlichen Steuerinformationen. Jedes Objekt enthält außerdem einen Zeiger auf ein nächstes Objekt. Eine gewünschte Anzahl an Objekten kann miteinander in eine Verkettungsliste verkettet werden. Sobald eine DMA-Blockübertragung abgeschlossen ist, wird das nächste Objekt auf der Liste in die Steuerregister für den aktuellen Ein-/Ausgabekanal geladen und die nächste Blockübertragung automatisch gestartet. Auf diese Weise wird eine Reihe von Blockübertragungen ausgeführt, bis das Ende der Liste erreicht ist.
  • Die Erfindung stellt außerdem ein Verfahren zur Übertragung von Daten in einem Computersystem mit einein Zentralprozessor und einer Steuerung mit direktem Speicherzugriff (DMA) bereit, das folgende Schritte umfaßt:
  • (a) Speicherung zweier oder mehrerer Tag-Objekte (32, 34, 36), von denen jedes Steuerinformationen für eine Blockdatenübertragung enthält, in einem Tag-Speicher, der vom Systemspeicher getrennt ist und der Nutzung durch die DMA-Steuerung vorbehalten ist, mit der dieser verbunden ist, wobei auf den genannten Tag-Speicher durch die genannte DMA-Steuerung ohne Referenz zum genannten Zentralprozessor zugegriffen werden kann;
  • (b) Ausführung einer Blockdatenübertragung in Übereinstimmung mit in der DMA-Steuerung gespeicherten Steuerinformationen;
  • (c) Übertragung von Steuerinformationen von einem der genannten Tag-Objekte in zentrale Register;
  • (d) Ausführung einer Blockdatenübertragung entsprechend den Steuerinformationen, die in den Steuerregistern der DMA-Steuerung enthalten sind; und der DMA-Steuerung; und
  • (e) Wiederholung der Schritte (c) und (d), bis die Blockdatenübertragungen, die jedem der genannten zwei oder mehreren Tagobjekten entsprechen, ausgeführt wurden.
  • Um ein umfassendes Verständnis der vorliegenden Erfindung zu erzielen, wird nachfolgend ein bevorzugtes Ausführungsbeispiel unter Verweis auf die folgenden Begleitzeichnungen beschrieben:
  • FIGUR 1 ist ein Blockdiagramm eines Computersystems, das eine DMA-Steuerung verwendet, um zu Ein-/Ausgabegeräten eine Schnittstelle herzustellen;
  • FIGUR 2 ist ein Blockdiagramm, das den internen Aufbau eines Teils einer bevorzugten DMA-Steuerung darstellt;
  • FIGUR 3 stellt die in den Stapelobjekten enthaltenen Informationen dar; und
  • FIGUR 4 ist ein Flußdiagramm, das die Operation einer bevorzugten DMA-Steuerung darstellt.
  • Figur 1 ist ein Blockdiagramm eines Computersystems 10. Das System 10 umfaßt einen Zentralprozessor 12, der an einen Systembus 14 angeschlossen ist. Ebenfalls an den Bus 14 angeschlossen sind der Hauptsystemspeicher 16 und eine Steuerung 18 mit direktem Speicherzugriff (DMA). Die DMA-Steuerung 18 ist die Schnittstelle zwischen dem Systemspeicher 16 und allen am System 10 angeschlossenen Ein-/Ausgabegeräten 20. Die Ein/Ausgabegeräte 20 können Videosteuerungen, serielle und parallele Ports sowie Massenspeicherschnittstellen wie beispielsweise Plattenlaufwerkssteuerungen umfassen. Ebenfalls an die DMA-Steuerung 18 angeschlossen ist ein separater Speicher, der als Tag-Tabelle 22 bezeichnet wird. Die Tag-Tabelle ist ein spezieller Speicher, der nur zur Verwendung durch die DMA- Steuerung 18 vorgesehen ist, wie nachfolgend beschrieben wird.
  • Figur 2 stellt die internen Eigenschaften der DMA-Steuerung 18 und die Tag-Tabelle 22 dar, die für die vorliegende Erfindung relevant sind. Jeder Kanal der DMA-Steuerung 18 enthält vier Register zur Steuerung der DMA-Operation. Diese sind ein Adreßregister 24, ein Steuerregister 26, ein Next-Register 28 und ein Zählregister 30. Zu Beginn einer Blockübertragung wird die Anfangsadresse für den Block in das Adreßregister 24 geladen. Die Länge des Blocks wird in das Zählregister 30 geladen. Das Steuerregister 26 enthält die für die Übertragung relevanten Informationen, beispielsweise, ob es sich um eine Leseoperation aus dem oder eine Schreiboperation in den Hauptsystemspeicher handelt. Das Steuerregister kann auch ein Bit enthalten, das angibt, ob das Register 24 inkrementiert oder dekrementiert wird, nachdem jedes Datenelement übertragen wurde.
  • Nach jeder Übertragung des Datenelements durch die DMA-Steuerung wird das Zählregister 30 dekrementiert, und das Adreßregister 24 wird entsprechend dem Wert des geeigneten Bits im Steuerregister 26 inkrementiert oder dekrementiert. Sobald der Wert des Zählregisters 30 Null erreicht, ist die Blockübertragung abgeschlossen.
  • Zu diesem Zeitpunkt wird der Wert im Next-Register 28 überprüft. Zeigt er auf ein gültiges Objekt oder einen gültigen Tag im Stapelspeicher 22, werden die in diesem Objekt enthaltenen Werte in die Register 24, 26, 28 und 30 geladen. Die nächste Blockdatenübertragung beginnt dann automatisch.
  • Die Tag-Tabelle 22 enthält eine Mehrzahl an Tags. In Tag 2 werden die drei Tags 32, 34 und 36 gezeigt. Jedes Tag ist ein Speicherobjekt, das alle Informationen enthält, die für ein erneutes Laden der Register 24, 26, 28 und 30 für eine weitere Blockübertragung erforderlich sind. Die Tags sind in einem Stapel organisiert und durch Zeiger miteinander verkettet. Wird ein Tag in die Register der DMA-Steuerung geladen, wird der Zeiger zum nächsten Tag in das Next-Register 28 geladen.
  • Eine Erstübertragung ist dadurch definiert, daß der Zentralprozessor Werte direkt in die Register der DMA-Steuerung 18 schreibt. Jedes Tag definiert daraufhin eine nachfolgende Übertragung. Zu Beginn zeigt der Wert NEXT, der im Next-Register 28 enthalten ist, auf den ersten Tag 32. Dieser Tag stellt einen Zeiger zum folgenden Tag 34 bereit, der wiederum auf das letzte Tag 36 zeigt. Das letzte Tag 36 enthält einen Zeiger auf NULL, der angibt, daß es sich um das letzte Tag einer Liste handelt. NULL ist ein reservierter Zeigerwert, der nicht auf ein gültiges Stapelobjekt zeigt. Anstattdessen wird dieser Wert durch die DMA-Steuerung 18 als Signal dafür interpretiert, daß das Ende des Tag-Stapels erreicht ist.
  • Figur 3 zeigt eine bevorzugte Struktur für jedes der Tags in der Tag-Tabelle 22. Jedes Tag enthält vier Felder, ein Adreßfeld 40, ein Steuerfeld 42, ein Next-Feld 44 und ein Zählfeld 46. Diese vier Felder entsprechen den vier Registern 24, 26, 28 und 30 in der DMA-Steuerung 18. Das 32-Bit-Adreßfeld 40 ermöglicht der DMA-Steuerung 18 den Zugriff auf einen 4-Gigabyte-Adreßraum. Das 12-Bit-Zählfeld 46 ermöglicht eine maximale Blockübertragungsgröße von 4096 Wörtern, und das 12-Bit- Tagfeld 44 ermöglicht den Zugriff auf 4096 Tag-Objekte innerhalb der Tag-Tabelle 22. Das Ende des Stapelzeigers NULL besteht vorzugsweise vollständig aus binären Einsen (hexadezimal FFF) oder vollständig aus binären Nullen.
  • Wenn das Computersystem einen virtuellen Speicher verwendet, wird die Größe des Zählfeldes 46 vorzugsweise so ausgewählt, daß eine vollständige Seite im viertuellen Speichersystem als ein Datenblock übertragen werden kann. Wenn also der virtuelle Speicher beispielsweise Seiten mit 1024 Wörtern pro Seite verwendet, wäre das Zählfeld 46 nur 10 Bits lang. Die übrigen Bits (in diesem Fall 2 Bits) könnten, wenn gewünscht, dazu verwendet werden, um das nächste Feld 44 14 Bits lang zu machen. Da jede Seite als eine Einheit in virtuellen Speichersystemen behandelt wird und aufeinanderfolgende Seitenrahmen im Hauptspeicher häufig unzusammenhängend sind, führt die Anpassung des Zählfeldes an die Seitengröße zur optimalsten Nutzung des Tag-Tabellenspeichers.
  • Da jedes Tag acht Bytes lang ist und auf 4096 Tags zugegriffen werden kann, muß die Tag-Tabelle 22 bis zu 32 Kilobytes lang sein, um die maximale Anzahl an Tags enthalten zu können.
  • Figur 4 zeigt den von der DMA-Steuerung 18 verwendeten Steuerfluß zur Herstellung einer Serie aufeinanderfolgender Blockübertragungen. Zunächst werden in Schritt 50 die DMA-Register 24, 26, 28, 30 direkt mit den geeigneten Werten für die erste Datenübertragung geladen. Zu diesem Zeitpunkt, entweder vor oder nach dem Laden der Register, müssen alle erforderlichen Informationen für die verbleibenden Tags für diese Übertragung in die Tag-Tabelle 22 geladen werden. Dieses Laden führt der Zentralprozessor 12 aus.
  • Ein Datenelement wird daraufhin entsprechend der im Adreßregister 24 gespeicherten Adresse übertragen 52. Der Wert im Zählregister 30 wird dekrementiert 54. Schritt 54 umfaßt die gleichzeitige Inkrementierung oder Dekrementierung des Werts im Adreßregister 24 je nach der gewünschten Richtung, die im Steuerregister 26 eingestellt ist.
  • Danach wird ein Test durchgeführt 56, in dem festgestellt wird, ob die Übertragung abgeschlossen ist. Dieser erfolgt durch Überprüfung des Ausführungsbits vom Zählregister 30. Wenn die Übertragung noch nicht abgeschlossen ist, kehrt die Steuerung zurück zu Schritt 52. Ist jedoch der Wert im Zählregister 30 gleich 0, was darauf hindeutet, daß die Übertragung abgeschlossen ist, geht die Steuerung über zu Schritt 58, wo der Wert im nächsten Register 28 getestet wird. Ist der Wert im nächsten Register nicht gleich Null, wird das nächste Tag in die Register in der DMA-Steuerung 18 aus der Tag-Tabelle 22 geladen 60, und die Steuerung kehrt zurück zu Schritt 52.
  • Ist der Wert im Next-Register gleich Null, dann wurde das letzte Tag verwendet, und die Steuerung kehrt zurück zu Schritt 62. In Schritt 62 erfolgt eine Mitteilung an den Zentralprozessor 12, daß die Übertragungsserie abgeschlossen ist. Im allgemeinen erfolgt dies durch Aufstellung eines Interrupts auf dem Bus 14.
  • Dem Fachmann auf diesem Gebiet ist ersichtlich, daß die oben beschriebene DMA-Steuerung eine Verteilungs-/Sammlungsfunktion zur Verwendung in einem virtuellen Speicher implementiert. Wenn ein umfangreicher Datenblock in nicht aufeinanderfolgende Speicherseiten eingelesen werden soll, teilt der Zentralprozessor diese Seiten zu und richtet die Tag-Tabelle 22 durch die DMA-Steuerung 18 ein. Die DMA-Übertragung wird daraufhin begonnen, und die DMA-Steuerung 18 arbeitet die gesamte Übertragung ab, bis diese abgeschlossen ist.
  • Ein ähnliches Verfahren wird angewandt, um verteilte Seiten anzusammeln, um sie in den Speicher zu schreiben. Der Zentralprozessor 12 legt fest, welche Seiten in den Speicher geschrieben werden, in welcher Reihenfolge dies geschehen soll und richtet die Tag-Tabelle 22 über die DMA-Steuerung 18 ein. Die DMA-Übertragung wird dann ausgelöst und wird vollständig von der DMA-Steuerung 18 bearbeitet, bis die Übertragung abgeschlossen ist.
  • Da die Tag-Tabelle als Stapel organisiert ist, ist es möglich, mehrere verkettete Listen darin zu speichern. Damit ist es möglich, eine separate verkettete Liste zu speichern, beispielsweise für jeden Ein-/Ausgabekanal, der von der DMA- Steuerung 18 unterstützt wird. Da die Tag-Tabelle 22 als Stapel organisiert ist, ist die einzige Einschränkung der Anzahl separater Übertragungen, die in einer größeren Übertragung für einen einzelnen Ein-/Ausgabekanal verkettet werden können, durch die Anzahl verbleibender freier Speicherstellen innerhalb der Tag-Tabelle 22 gegeben.

Claims (6)

1. Ein System zur Steuerung von Datenübertragungen zwischen einem Speicher (16) und einer anderen Vorrichtung (20), wobei das System folgendes umfaßt:
Eine Steuerung mit direktem Speicherzugriff (DMA) (18) zur Übertragung von Daten zwischen dem Speicher und der anderen Vorrichtung entsprechend den Übertragungssteuerungsparametern in der genannten Steuerung; und
einen Tag-Speicher (22), der an die genannte DMA-Steuerung gekoppelt ist, wobei der genannte Tag-Speicher zwei oder mehrere Tag-Objekte (32, 34, 36) mit Übertragungssteuerungsparametern enthält,
folgendermaßen charakterisiert:
Der Tag-Speicher ist vom Systemspeicher getrennt und der Nutzung durch die DMA-Steuerung vorbehalten; auf ihn kann durch die genannte DMA-Steuerung zugegriffen werden, ohne daß eine Referenz zum genannten Zentralprozessor nötig ist; und
wobei nach Abschluß einer Datenübertragung, die durch die Übertragungssteuerungsparameter in der genannten DMA- Steuerung definiert ist, eine neue Gruppe von Übertragungssteuerungsparametern in einem nächsten Tag-Objekt im genannten Tag-Speicher zur genannten DMA-Steuerung übertragen und entsprechend der genannten neuen Gruppe von Übertragungssteuerungsparametern eine neue Datenübertragung begonnen wird.
2. Ein System gemäß Anspruch 1, bei dem die genannte Steuerung mit direktem Speicherzugriff (DMA) ein Adreßregister (24), ein Steuerregister (26) und ein Zählregister (30) enthält und die Übertragungssteuerungsparameter Adreßwerte, Steuerwerte und Zählwerte enthalten, die jeweils in die genannten Register gesetzt werden.
3. Ein System gemäß Anspruch 1 oder 2, bei dem der genannte digitale Computer ein seitenweise organisiertes virtuelles Speichersystem umfaßt, und wobei
ein vollständiger Seitenrahmen des genannten virtuellen Speichersystems während einer der genannten Datenübertragungen, die durch die Übertragungssteuerungsparameter in der genannten Steuerung mit direktem Speicherzugriff (DMA) definiert ist, übertragen werden kann.
4. Ein System gemäß allen vorherigen Ansprüchen, wobei der genannte Tag-Speicher als ein Speicher organisiert ist, in dem jedes Tag-Objekt (32, 34, 36) einen Zeiger zu einem nächsten Tag-Objekt enthält und in dem eine Mehrzahl an Tag-Objekten, die miteinander verbundene Datenübertragungen definieren, in einer Liste verkettet sind.
5. Ein Verfahren zur Übertragung von Daten in einem Computersystem mit einem Zentralprozessor (12) und einer Steuerung mit direktem Speicherzugriff (DMA) (18), das folgende Schritte umfaßt:
(a) Speicherung zweier oder mehrerer Tag-Objekte (32, 34, 36), von denen jedes Steuerinformationen für eine Blockdatenübertragung enthält, in einem Tag-Speicher (22), der vom Systemspeicher getrennt ist und der Nutzung durch die DMA-Steuerung vorbehalten ist, mit der dieser verbunden ist, wobei auf den genannten Tag-Speicher durch die genannte DMA-Steuerung ohne Referenz zum genannten Zentralprozessor zugegriffen werden kann;
(b) Ausführung einer Blockdatenübertragung in Übereinstimmung mit in der DMA-Steuerung gespeicherten Steuerinformationen;
(c) Übertragung von Steuerinformationen von einem der genannten Tag-Objekte in Steuerregister der DMA-Steuerung;
(d) Ausführung einer Blockdatenübertragung entsprechend den Steuerinformationen, die in den Steuerregistern der DMA- Steuerung enthalten sind.
(e) Wiederholung der Schritte (c) und (d), bis die Blockdatenübertragungen, die jedem der genannten zwei oder mehreren Tag-Objekten entsprechen, ausgeführt wurden.
6. Ein Verfahren gemäß Anspruch 5, bei dem die genannten Tag-Objekte (32, 34, 36) im Speicher als Stapel gespeichert sind, in dem jedes Tag-Objekt einen Zeiger zu einem nächsten Tag-Objekt besitzt und in dem eine Mehrzahl von Tag-Objekten, die miteinander verbundene Datenübertragungen definieren, in einer Liste verkettet sind.
DE69021899T 1989-01-13 1990-01-11 DMA-Steuerung. Expired - Fee Related DE69021899T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/297,778 US5251303A (en) 1989-01-13 1989-01-13 System for DMA block data transfer based on linked control blocks

Publications (2)

Publication Number Publication Date
DE69021899D1 DE69021899D1 (de) 1995-10-05
DE69021899T2 true DE69021899T2 (de) 1996-04-18

Family

ID=23147703

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69021899T Expired - Fee Related DE69021899T2 (de) 1989-01-13 1990-01-11 DMA-Steuerung.

Country Status (4)

Country Link
US (1) US5251303A (de)
EP (1) EP0378423B1 (de)
JP (1) JPH0623968B2 (de)
DE (1) DE69021899T2 (de)

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2778222B2 (ja) * 1990-08-15 1998-07-23 日本電気株式会社 半導体集積回路装置
US5473761A (en) * 1991-12-17 1995-12-05 Dell Usa, L.P. Controller for receiving transfer requests for noncontiguous sectors and reading those sectors as a continuous block by interspersing no operation requests between transfer requests
US5740465A (en) * 1992-04-08 1998-04-14 Hitachi, Ltd. Array disk controller for grouping host commands into a single virtual host command
US5721954A (en) * 1992-04-13 1998-02-24 At&T Global Information Solutions Company Intelligent SCSI-2/DMA processor
GB2270780A (en) * 1992-09-21 1994-03-23 Ibm Scatter-gather in data processing systems.
US5708849A (en) * 1994-01-26 1998-01-13 Intel Corporation Implementing scatter/gather operations in a direct memory access device on a personal computer
JPH0877347A (ja) * 1994-03-08 1996-03-22 Texas Instr Inc <Ti> 画像/グラフィックス処理用のデータ処理装置およびその操作方法
US5651127A (en) * 1994-03-08 1997-07-22 Texas Instruments Incorporated Guided transfers with variable stepping
DE4423496A1 (de) * 1994-07-05 1996-01-11 Philips Patentverwaltung Vermittlungsvorrichtung mit einer Direkt-Speicherzugriffssteuerung
US5860022A (en) * 1994-07-26 1999-01-12 Hitachi, Ltd. Computer system and method of issuing input/output commands therefrom
US5590356A (en) * 1994-08-23 1996-12-31 Massachusetts Institute Of Technology Mesh parallel computer architecture apparatus and associated methods
US5619646A (en) * 1994-09-27 1997-04-08 International Business Machines Corporation Method and system for dynamically appending a data block to a variable length transmit list while transmitting another data block over a serial bus
US5634099A (en) * 1994-12-09 1997-05-27 International Business Machines Corporation Direct memory access unit for transferring data between processor memories in multiprocessing systems
US6405281B1 (en) * 1994-12-09 2002-06-11 Neomagic Israel Ltd Input/output methods for associative processor
US5644784A (en) * 1995-03-03 1997-07-01 Intel Corporation Linear list based DMA control structure
US5864712A (en) * 1995-03-17 1999-01-26 Lsi Logic Corporation Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment
EP0732659B1 (de) * 1995-03-17 2001-08-08 LSI Logic Corporation (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
US5765200A (en) * 1995-06-07 1998-06-09 International Business Machines Corporation Logical positioning within a storage device by a storage controller
US5894564A (en) * 1995-06-07 1999-04-13 International Business Machines Corporation System for identifying memory segment bounded by previously accessed memory locations within data block and transferring thereof only when the segment has been changed
US5765022A (en) * 1995-09-29 1998-06-09 International Business Machines Corporation System for transferring data from a source device to a target device in which the address of data movement engine is determined
US5657479A (en) * 1995-12-04 1997-08-12 Silicon Graphics, Inc. Hierarchical display list processing in graphics data retrieval system
US5968143A (en) * 1995-12-13 1999-10-19 International Business Machines Corporation Information handling system for transfer of command blocks to a local processing side without local processor intervention
US5870627A (en) * 1995-12-20 1999-02-09 Cirrus Logic, Inc. System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue
US5828901A (en) * 1995-12-21 1998-10-27 Cirrus Logic, Inc. Method and apparatus for placing multiple frames of data in a buffer in a direct memory access transfer
US6108722A (en) * 1996-09-13 2000-08-22 Silicon Grpahics, Inc. Direct memory access apparatus for transferring a block of data having discontinous addresses using an address calculating circuit
US5930480A (en) * 1996-10-10 1999-07-27 Apple Computer, Inc. Software architecture for controlling data streams based on linked command blocks
JP3133004B2 (ja) * 1996-11-21 2001-02-05 株式会社日立製作所 ディスクアレイ装置およびその制御方法
US6381657B2 (en) * 1997-01-31 2002-04-30 Hewlett-Packard Company Sharing list for multi-node DMA write operations
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US6055583A (en) * 1997-03-27 2000-04-25 Mitsubishi Semiconductor America, Inc. DMA controller with semaphore communication protocol
US6128674A (en) * 1997-08-08 2000-10-03 International Business Machines Corporation Method of minimizing host CPU utilization in driving an adapter by residing in system memory a command/status block a soft interrupt block and a status block queue
US5963499A (en) * 1998-02-05 1999-10-05 Cypress Semiconductor Corp. Cascadable multi-channel network memory with dynamic allocation
US6065070A (en) * 1998-03-18 2000-05-16 National Semiconductor Corporation DMA configurable channel with memory width N and with steering logic comprising N multiplexors, each multiplexor having a single one-byte input and N one-byte outputs
US6199121B1 (en) 1998-08-07 2001-03-06 Oak Technology, Inc. High speed dynamic chaining of DMA operations without suspending a DMA controller or incurring race conditions
JP3446653B2 (ja) * 1999-03-26 2003-09-16 日本電気株式会社 データ転送装置
US6782465B1 (en) * 1999-10-20 2004-08-24 Infineon Technologies North America Corporation Linked list DMA descriptor architecture
US6665746B1 (en) * 2000-03-31 2003-12-16 International Business Machine Corporation System and method for prioritized context switching for streaming data memory transfers
US6708283B1 (en) 2000-04-13 2004-03-16 Stratus Technologies, Bermuda Ltd. System and method for operating a system with redundant peripheral bus controllers
US6633996B1 (en) 2000-04-13 2003-10-14 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus architecture
US6691257B1 (en) 2000-04-13 2004-02-10 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus protocol and method for using the same
US6735715B1 (en) 2000-04-13 2004-05-11 Stratus Technologies Bermuda Ltd. System and method for operating a SCSI bus with redundant SCSI adaptors
US6687851B1 (en) 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
US6820213B1 (en) 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
US6467020B1 (en) * 2000-05-17 2002-10-15 Neomagic Israel Ltd. Combined associate processor and memory architecture
US7089344B1 (en) * 2000-06-09 2006-08-08 Motorola, Inc. Integrated processor platform supporting wireless handheld multi-media devices
US6791555B1 (en) 2000-06-23 2004-09-14 Micron Technology, Inc. Apparatus and method for distributed memory control in a graphics processing system
TW583547B (en) * 2000-06-23 2004-04-11 Agere Syst Guardian Corp Linked-list memory-access control for a concentrator
US6772300B1 (en) * 2000-08-30 2004-08-03 Intel Corporation Method and apparatus for managing out of order memory transactions
US6948010B2 (en) 2000-12-20 2005-09-20 Stratus Technologies Bermuda Ltd. Method and apparatus for efficiently moving portions of a memory block
US6766479B2 (en) 2001-02-28 2004-07-20 Stratus Technologies Bermuda, Ltd. Apparatus and methods for identifying bus protocol violations
US6928583B2 (en) * 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
US6996750B2 (en) 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
US6678754B1 (en) * 2001-07-30 2004-01-13 Lsi Logic Corporation Methods and structure for recursive scatter/gather lists
JP4212811B2 (ja) * 2002-01-10 2009-01-21 富士通株式会社 情報処理システム、インタフェース装置、情報処理装置、情報記憶装置
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7200024B2 (en) 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7254331B2 (en) 2002-08-09 2007-08-07 Micron Technology, Inc. System and method for multiple bit optical data transmission in memory systems
US7149874B2 (en) 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US7519779B2 (en) * 2002-08-26 2009-04-14 International Business Machines Corporation Dumping using limited system address space
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US7102907B2 (en) 2002-09-09 2006-09-05 Micron Technology, Inc. Wavelength division multiplexed memory module, memory system and method
US7219169B2 (en) * 2002-09-30 2007-05-15 Sun Microsystems, Inc. Composite DMA disk controller for efficient hardware-assisted data transfer operations
JP4331488B2 (ja) * 2003-02-20 2009-09-16 パナソニック株式会社 集積回路及びそれを用いた電子機器
US7245145B2 (en) 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7107415B2 (en) 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7428644B2 (en) 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7210059B2 (en) 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7136958B2 (en) 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7310752B2 (en) 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7234070B2 (en) 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7216196B2 (en) * 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
US7188219B2 (en) 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7181584B2 (en) 2004-02-05 2007-02-20 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
US7412574B2 (en) 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7447240B2 (en) 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US7213082B2 (en) 2004-03-29 2007-05-01 Micron Technology, Inc. Memory hub and method for providing memory sequencing hints
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7162567B2 (en) 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US7222213B2 (en) 2004-05-17 2007-05-22 Micron Technology, Inc. System and method for communicating the synchronization status of memory modules during initialization of the memory modules
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
JP2006048593A (ja) * 2004-08-09 2006-02-16 Fujitsu Ltd Dma転送装置およびdma転送装置の転送制御方法
US7392331B2 (en) 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US20060259657A1 (en) * 2005-05-10 2006-11-16 Telairity Semiconductor, Inc. Direct memory access (DMA) method and apparatus and DMA for video processing
TWI295019B (en) * 2005-06-06 2008-03-21 Accusys Inc Data transfer system and method
US20070005881A1 (en) * 2005-06-30 2007-01-04 Garney John I Minimizing memory bandwidth usage in optimal disk transfers
US8001285B1 (en) 2007-12-11 2011-08-16 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for reducing host processor activity during interaction with peripheral devices
US8205020B2 (en) * 2009-12-23 2012-06-19 Xerox Corporation High-performance digital image memory allocation and control system
US9195581B2 (en) * 2011-07-01 2015-11-24 Apple Inc. Techniques for moving data between memory types
GB2548603B (en) * 2016-03-23 2018-09-26 Advanced Risc Mach Ltd Program loop control

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4040026A (en) * 1974-05-08 1977-08-02 Francois Gernelle Channel for exchanging information between a computer and rapid peripheral units
US4065810A (en) * 1977-01-26 1977-12-27 International Business Machines Corporation Data transfer system
JPS5911135B2 (ja) * 1979-01-17 1984-03-13 株式会社日立製作所 デ−タ処理システムのデ−タ転送方式
EP0077863B1 (de) * 1981-10-28 1986-09-17 International Business Machines Corporation Abtasteinrichtung für Übertragungsleitungen, bestimmt für eine Übertragungssteuerung
US4482951A (en) * 1981-11-12 1984-11-13 Hughes Aircraft Company Direct memory access method for use with a multiplexed data bus
IT1151351B (it) * 1982-01-19 1986-12-17 Italtel Spa Disposizione circuitale atta a realizzare lo scambio di dati tra una coppia di elaboratori operanti secondo il principio master-slave
US4451884A (en) * 1982-02-02 1984-05-29 International Business Machines Corporation Cycle stealing I/O controller with programmable offline mode of operation
US4729094A (en) * 1983-04-18 1988-03-01 Motorola, Inc. Method and apparatus for coordinating execution of an instruction by a coprocessor
JPH0754442B2 (ja) * 1983-11-24 1995-06-07 大倉電気株式会社 プロセス制御システム
US4716525A (en) * 1985-04-15 1987-12-29 Concurrent Computer Corporation Peripheral controller for coupling data buses having different protocol and transfer rates
US4703418A (en) * 1985-06-28 1987-10-27 Hewlett-Packard Company Method and apparatus for performing variable length data read transactions
JPS62267847A (ja) * 1986-05-16 1987-11-20 Nec Corp Dma転送制御回路
US4891751A (en) * 1987-03-27 1990-01-02 Floating Point Systems, Inc. Massively parallel vector processing computer
US4930065A (en) * 1987-08-20 1990-05-29 David Computer Corporation Automatic data channels for a computer system
US4930069A (en) * 1987-11-18 1990-05-29 International Business Machines Corporation Mechanism and method for transferring data between bus units having varying master and slave DMA capabilities

Also Published As

Publication number Publication date
US5251303A (en) 1993-10-05
JPH0623968B2 (ja) 1994-03-30
EP0378423A3 (de) 1991-05-29
EP0378423B1 (de) 1995-08-30
DE69021899D1 (de) 1995-10-05
JPH02227763A (ja) 1990-09-10
EP0378423A2 (de) 1990-07-18

Similar Documents

Publication Publication Date Title
DE69021899T2 (de) DMA-Steuerung.
DE69322985T2 (de) Ein-/Ausgabesteuerungssystem und Ein-/Ausgabesteuerungsverfahren im System
DE2350884C2 (de) Adreßumsetzungseinheit
DE2209282C3 (de) Datenverarbeitungsanlage
DE69229716T2 (de) Schaltungsarchitektur zum mehrkanaligen DMA-Betrieb
DE69031506T2 (de) Verfahren und Gerät zur Anwendungsbeschränkung eines asynchronen Bus mit verteilter Zugriffssteuerung
DE3786967T2 (de) Protokoll zum Ungültigerklären eines Cachespeichers für ein digitales Datenverarbeitungssystem.
DE69107506T2 (de) Verfahren und Vorrichtung zur Gleichzeitigkeitssteuerung von gemeinsamen Datenaktualisierungen und Abfragen.
DE69507290T2 (de) Gerät zur datenpuffer-überwachung in einem plattenspeichersystem
DE69534616T2 (de) System und Verfahren zum Verarbeiten von E/A-Anfragen über einen Schnittstellenbus zu einer Speicherplattenanordnung
DE68923026T2 (de) Speicherdiagnosegerät und Verfahren.
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE2755897A1 (de) Ein/ausgabe-system
DE3049774C2 (de)
DE602004010399T2 (de) Neuadressierbare virtuelle dma-steuer und statusregister
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE2432608A1 (de) Speicheranordnung fuer datenverarbeitungseinrichtungen
DE60027357T2 (de) Eine Unterbrechungssteuerung und ein Mikrorechner, der diese Unterbrechungssteuerung beinhaltet
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
DE3688136T2 (de) Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation.
EP0111161B1 (de) Vorrichtung zur Mikrobefehls-Bereitstellung für mindestens zwei unabhängig arbeitende Funktionseinheiten in einem integrierten, mikroprogrammierten elektronischen Baustein und Verfahren zu ihrem Betrieb
DE10105627B4 (de) Mehrfachanschlussspeichereinrichtung, Verfahren und System zum Betrieb einer Mehrfachanschlussspeichereinrichtung
EP0057755A2 (de) Mikrorechnersystem zum raschen Auffinden von Kennzeichenblöcken
DE69226683T2 (de) Verfahren zum effizienten Zugriff von Daten in einer Verknüpfungstabelle
DE69518465T2 (de) Verarbeitungseinheit mit Erkennung eines Byteausrichtungsmechanismuses im Speicherkontrollmechanismus

Legal Events

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