[go: up one dir, main page]

DE602004010399T2 - Neuadressierbare virtuelle dma-steuer und statusregister - Google Patents

Neuadressierbare virtuelle dma-steuer und statusregister Download PDF

Info

Publication number
DE602004010399T2
DE602004010399T2 DE602004010399T DE602004010399T DE602004010399T2 DE 602004010399 T2 DE602004010399 T2 DE 602004010399T2 DE 602004010399 T DE602004010399 T DE 602004010399T DE 602004010399 T DE602004010399 T DE 602004010399T DE 602004010399 T2 DE602004010399 T2 DE 602004010399T2
Authority
DE
Germany
Prior art keywords
location
transmission
status
data
parameter
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
DE602004010399T
Other languages
English (en)
Other versions
DE602004010399D1 (de
Inventor
Jie Portland Ni
William Portland FUTRAL
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE602004010399D1 publication Critical patent/DE602004010399D1/de
Application granted granted Critical
Publication of DE602004010399T2 publication Critical patent/DE602004010399T2/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)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft das Definieren virtueller DMA-Register in einem Speicheradreßraum, um den Status von DMA-Übertragungen zu steuern und zu überwachen.
  • ALLGEMEINER STAND DER TECHNIK
  • Verschiedene Computersystemarchitekturen haben eine Anzahl von Ansätzen angewendet und Versuche unternommen, Datenblöcke zwischen Vorrichtungen (einschließlich Speichervorrichtungen, I/O-Vorrichtungen usw.) innerhalb eines Computersystems über Busse effizient zu übertragen. Einer der einfachsten Ansätze bestand darin, der CPU (zentrale Verarbeitungseinheit) zu ermöglichen, einen Datenblock aus einer Vorrichtung zu lesen und dann den Datenblock in eine andere Vorrichtung zu schreiben. Allerdings wird diese Aufgabe oft als eine für andere alternative Mechanismen besser geeignete Aufgabe betrachtet, so daß sich die CPU mehr der Ausführung komplexerer Berechnungen und anderer Rechenaufgaben widmen kann.
  • Ein weit verbreiteter alternativer Mechanismus ist die Hinzufügung einer DMA (direkter Speicherzugriff)-Steuerung zu solch einem Computersystem, um die Bewegung von Datenblöcken zwischen dem Systemspeicher des Computersystems und anderen Vorrichtungen zu übernehmen. In der Regel sind solche DMA-Steuerungen programmiert, um eine spezifische Übertragung eines Datenblocks auszuführen, indem die CPU die Parameter der Übertragung direkt in Register innerhalb der DMA-Steuerung schreibt. Während die Übertragung eines Datenblocks ausgeführt wird, ist die CPU in der Regel programmiert, um eines oder mehrere der Register innerhalb der DMA-Steuerung abzufragen, um den Status der Übertragung abzufragen.
  • Jedoch hat die Verwendung solch einer DMA-Steuerung Nachteile. Wenngleich die CPU von der Last befreit wird, die Übertragung eines Datenblocks tatsächlich auszuführen, wird es dennoch oft als uneffizient betrachtet, daß die CPU-Abfrageregister innerhalb der DMA-Steuerung den Status der Übertragung abfragen. Auch können in vielen Umsetzungen von Computersystemen Schreibvorgänge, die von der CPU in Programmregister innerhalb der DMA-Steuerung ausgeführt werden, und Lesevorgänge, die von der CPU zum Abfragen eines Status aus dem Register innerhalb der DMA-Steuerung ausgeführt werden, länger dauern als für wünschenswert erachtet wird.
  • Ein anderer weit verbreiteter alternativer Mechanismus ist die Aufnahme von Bus-Mastering-Fähigkeiten in verschiedene I/O-Vorrichtungen innerhalb eines Computersystems, so daß die Vorrichtungen selbst dazu in der Lage sind, die Übertragung von Datenblöcken selbständig auszuführen. In der Regel sind solche Übertragungen derart programmiert, daß sie stattfinden, indem die CPU Parameter der Übertragung direkt in Register innerhalb solch einer Bus-Mastering-Vorrichtung schreibt. Während also die Übertragung eines Datenblocks ausgeführt wird, fragt die CPU eines oder mehrere der Register innerhalb der Bus-Mastering-Vorrichtung ab, um den Status der Übertragung abzufragen.
  • Jedoch hat solch eine Verwendung einer Bus-Mastering-Vorrichtung Nachteile. Wenngleich die CPU von der Last befreit wird, die Übertragung eines Datenblocks tatsächlich auszuführen, können Schreibvorgänge, die von der CPU in Programmregister innerhalb der DMA-Steuerung ausgeführt werden, und Lesevorgänge, die von der CPU zum Abfragen eines Status aus Registern innerhalb der DMA-Steuerung ausgeführt werden, länger dauern als für wünschenswert erachtet wird. Auch können Lesevorgänge, die von einer Bus-Mastering-Vorrichtung insbesondere zum Lesen eines Datenblocks aus dem Systemspeicher ausgeführt werden, länger dauern als für wünschenswert erachtet wird.
  • Das Dokument US 6 023 738 A offenbart ein Verfahren zum Übertragen von Daten an I/O-Vorrichtungen, wobei ermöglicht wird, daß eine sehr große Datenmenge an eine I/O-Vorrichtung übertragen wird, ohne die zentrale Verarbeitungseinheit zu benutzen und ohne daß der Prozessor den Raum, der in dem FIO-Eingabepuffer verfügbar ist, lesen muß, wodurch die Übertragungsgeschwindigkeit bedeutend erhöht wird. Um diese Ergebnisse zu erreichen, offenbart das Dokument des Standes der Technik, daß ein Anwendungsprogramm einen ersten großen Bereich im virtuellen Speicher als einen Übertragungspuffer definiert und ein zweiter kleiner Bereich im virtuellen Speicher Mitteilungen über den Status einer Übertragung aufweist. Außerdem werden nach dem Festlegen des ersten Bereichs und des zweiten Bereichs Befehle zum Übertragen von Daten bekanntermaßen an die DMA-Maschine gesendet und Übertragungsstatus werden aus Speicherstellen gelesen. Genauer gesagt, nachdem der erste und der zweite Bereich im Speicher geschaffen worden sind, reicht es zum Ausführen einer Übertragung aus, daß das Anwendungsprogramm die Datensequenz in den Puffer schreibt und den Versatz und die Länge der zu übertragenden Daten an die DMA-Maschine überträgt. Nachdem folglich die Basisadresse des Bereichs in dem Speicher zum Halten der Mitteilung über den Status jeglicher Übertragung ge schaffen worden ist, wird die gleiche Basisadresse zur Statusmitteilung für jede bestimmte zu übertragende Datensequenz benutzt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden für den Fachmann angesichts der folgenden ausführlichen Beschreibung ersichtlich sein. Es zeigen:
  • 1 ein Blockdiagramm von Ausführungsformen, die ein Computersystem anwenden.
  • 2 ein anderes Blockdiagramm von anderen Ausführungsformen, die ein Computersystem anwenden.
  • 3 ein Blockdiagramm von Ausführungsformen einer Interaktion zwischen Vorrichtungen, die dabei sind, einen Datenblock zu übertragen.
  • 4 ein Blockdiagramm von Ausführungsformen einer Interaktion zwischen Vorrichtungen, die dabei sind, eine Vielzahl von Datenblöcken zu übertragen.
  • 5 ein anderes Blockdiagramm von Ausführungsformen einer Interaktion zwischen Vorrichtungen, die dabei sind, eine Vielzahl von Datenblöcken zu übertragen.
  • 6 noch ein anderes Blockdiagramm von Ausführungsformen einer Interaktion zwischen Vorrichtungen, die dabei sind, eine Vielzahl von Datenblöcken zu übertragen.
  • 7 ein wieder anderes Blockdiagramm von anderen Ausführungsformen, die ein Computersystem anwenden.
  • 8 ein Flußdiagramm einer Ausführungsform.
  • 9 ein Flußdiagramm einer anderen Ausführungsform.
  • 10 ein Flußdiagramm einer wieder anderen Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zu Zwecken der Erläuterung zahlreiche Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Jedoch wird für den Fachmann ersichtlich sein, daß diese spezifischen Details nicht erforderlich sind, um die vorliegende Erfindung wie nachstehend beansprucht umzusetzen.
  • Die Erfindung ist durch die beiliegenden unabhängigen Ansprüche 1, 10 und 13 definiert.
  • Die vorliegende Erfindung wie nachstehend beansprucht betrifft die Einbindung einer Unterstützung zur Verwaltung virtueller Register für eine DMA-Steuerung in Speicherstellen innerhalb anderer Vorrichtungen eines Computersystems oder anderen ähnlichen elektronischen Systems. Wenngleich sich die folgende Erläuterung auf DMA-Steuerungen innerhalb von Computersystemen konzentriert, wird der Fachmann verstehen, daß die vorliegende Erfindung wie nachstehend beansprucht als Unterstützung von elektronischen Systemen mit DMA-Steuerungen oder einer anderen ähnlich zweckbestimmten Logik zum Bewegen von Datenblöcken zwischen Vorrichtungen umgesetzt werden kann.
  • 1 ist ein Blockdiagramm von Ausführungsformen, die ein Computersystem anwenden. Das Computersystem 100 besteht mindestens teilweise aus der CPU (zentrale Verarbeitungseinheit) 110, dem Bus 119, der Logik 120, dem Bus 149, dem Systemspeicher 140, dem Bus 159 und der Vorrichtung 150. Die CPU 110, der Bus 119, die Logik 120, der Bus 149 und der Systemspeicher 140 bilden eine Form von Kern des Computersystems 100, der dazu fähig ist, maschinenlesbare Befehle auszuführen, die innerhalb des Systemspeichers 140 und/oder innerhalb anderer Vorrichtungen des Computersystems 100 gespeichert sein können. Allerdings, wie der Fachmann ohne weiteres erkennen wird, handelt es sich hierbei nur um ein Beispiel vieler möglicher Formen eines Kerns von Computersystem 100, wobei dieses Computersystem 100 ferner auch aus anderen Bussen und Vorrichtungen bestehen kann, die nicht dargestellt sind.
  • In verschiedenen Ausführungsformen könnte die CPU 110 eine beliebige einer Vielzahl von CPU-Arten sein, einschließlich einer CPU, die mindestens einen Teil des weithin bekannten und verwendeten „x86"-Befehlssatzes ausführen kann, der von Intel Corporation, einem Unternehmen aus Santa Clara, Kalifornien, stammt. Auch könnten in verschiedenen möglichen Ausführungsformen mehr als eine CPU zusammen mit zusätzlichen Bussen und/oder Vorrichtungen vorliegen, um mehr als eine CPU (nicht dargestellt) zu unterstützen. Die Logik 120 ist mit der CPU 110 über den Bus 119 verbunden und führt verschiedene Funktionen aus, die die Ausführung von Befehlen von der CPU 110 unterstützen, einschließlich der Steuerung und Zugangsbereitstellung der CPU 110 zu dem Systemspeicher 140, mit dem die Logik 120 ferner über den Bus 149 verbunden ist. Die Logik 120 stellt auch zu anderen Vorrichtungen, die das Computersystem 100 bilden, einen Zugang bereit, wie die Vorrichtung 150, mit der die Logik 120 über den Bus 159 verbunden ist.
  • Dadurch, daß sie mit den Bussen 119, 149 und 159 verbunden ist und der CPU 110 einen Zugang sowohl zu dem Systemspeicher 140 als auch der Vorrichtung 150 bereitstellt, um Transaktionen zu ermöglichen, durch die Adressen, Befehle und Daten übertragen werden, dient die Logik 120 als eine „Brücke" zwischen diesen Bussen. In ihrer Funktion als Brücke stellt die Logik 120 für das Computersystem 100 auch eine Speichersteuerung 122, um die Ausführung von Transaktionen auf Bus 149 zu unterstützen, und die Busschnittstelle 127 bereit, um die Ausführung von Transaktionen auf Bus 159 zu unterstützen. Um die CPU 110 teilweise von der Last der Ausführung einiger Übertragungen von Datenblöcken zu befreien, stellt die Logik 120 ferner die DMA-Steuerung 130 bereit.
  • In verschiedenen Ausführungsformen könnte der Systemspeicher 140 irgendeiner einer Vielfalt von wahlfreien Zugriffsspeicher (RAM)-Typen sein, einschließlich Fast-Page-Mode-(FPM), Extended-Data-Out-(EDO), Single-Data-Rate-(SDR) oder Double-Data-Rate-(DDR)-Formen eines synchronen dynamischen RAM (SDRAM) oder RAM, der die RAMBUSTM-Schnittstelle oder andere Schnittstellen verwendet. Die Speichersteuerung 122 und der Bus 149 sind konfiguriert, um die Zeitgabe- und/oder Protokollanforderungen eines oder mehrer Speichertypen und/oder Speicherschnittstellen zu unterstützen.
  • In verschiedenen Ausführungsformen können der Bus 159 und/oder andere Busse, die ein Computersystem 100 bilden können, gestaltet sein, um sich an die Eigenschaften und/oder Spezifikationen einer beliebigen einer Vielfalt von weithin bekannten Formen von Bussen anzupassen, die auf dem Fachgebiet der Computergestaltung "standardisiert" wurden, wie die erweiterte Industriestandardarchitektur (EISA), Micro-ChannelTM-Architektur (MCA), die periphere Komponentenverbindung (PCI), PCI-X, PCI Express usw. Die Busschnittstellen 127 und 157 sind konfiguriert, um die Zeitgabe- und/oder Protokollanforderungen von Bus 159 zu unterstützen.
  • In einer Ausführungsform führt die CPU 110 eine Reihe von Befehlen aus, die die CPU 110 dazu veranlaßt, die DMA-Steuerung 130 zu programmieren, um eine Übertragung eines Datenblocks zwischen Datenspeicherstellen 146 und 148 innerhalb des Systemspeichers 140 auszuführen. Die CPU 110 schreibt in ein oder mehrere Parameterregister 133 Werte, die verschiedene Parameter der auszuführenden Übertragung angeben, einschließlich, jedoch nicht beschränkt auf die Anfangadressen von Datenspeicherstellen 146 und 148, einen Wert, der die zu übertragende Datenmenge angibt (das heißt, die Größe des Datenblocks), einen Wert, der angibt, daß der Status der Übertragung an der Statusspeicherstelle 144 bereitzustellen ist, der innerhalb des Systemspeichers 140 zugeordnet ist, und einen Wert in ein oder mehrere Steuerbits, um das Stattfinden der Übertragung zu bewirken. Die DMA-Steuerung 130 führt dann die Übertragung aus. Während der Ausführung dieser Übertragung ist die CPU 110 dazu in der Lage, die Statusspeicherstelle 144 ein- oder mehrmals zu lesen, um zu bestimmen, ob die DMA-Steuerung 130 einen Wert in die Statusspeicherstelle 144, die angibt, daß die Übertragung vollendet worden ist, geschrieben hat oder nicht. Da es bei der Gestaltung von Computersystemen wie dem Computersystem 100 übliche Praxis ist, einen Pfad mit sehr geringer Latenz zwischen CPUs und Systemspeicher zu schaffen, ist es wahrscheinlich, daß die CPU 110 dazu fähig ist, den Status der Übertragung wiederholt zu überprüfen, indem die Statusspeicherstelle 144 innerhalb des Systemspeichers 140 viel schneller gelesen wird als bei dem Ansatz des Standes der Technik, bei dem das Lesens aus einem Register innerhalb der DMA-Steuerung 130 stattfindet.
  • In einer anderen Ausführungsform führt die CPU 110 eine Befehlsreihe aus, die die CPU 110 dazu veranlaßt, die DMA-Steuerung 130 zu programmieren, um eine Übertragung eines Datenblocks zwischen Datenspeicherstellen 146 und 148 innerhalb des Systemspeichers 140 auszuführen, indem verschiedene Parameter der auszuführenden Übertragung in eine andere Parameterspeicherstelle 143 geschrieben werden, die innerhalb des Systemspeichers 140 zugeordnet ist. Solche Parameter könnten einschließen, sind jedoch nicht beschränkt auf die Anfangsadressen der Datenspeicherstellen 146 und 148, einen Wert, der die zu übertragende Datenmenge angibt, und einen Wert, der angibt, daß der Status der Übertragung an der Statusspeicherstelle 144 bereitzustellen ist. Die CPU 110 wird auch dazu veranlaßt, in ein oder mehrere Parameterregister 133 einen Wert zu schreiben, der die Anfangsadresse einer alternativen Parameterspeicherstelle 143 angibt, und einen Wert in ein oder mehrere Steuerbits als ein Auslöser, um zu bewirken, daß die Übertragung stattfindet. Als Reaktion auf diesen Auslöser führt die DMA-Steuerung 130 dann die Übertragung aus. Während der Ausführung der Übertragung ist die CPU 110 dazu in der Lage, die Statusspeicherstelle 144 ein- oder mehrmals zu lesen, um zu bestimmen, ob die DMA-Steuerung 130 einen Wert in die Statusspeicherstelle 144, die angibt, daß die Übertragung vollendet worden ist, geschrieben hat oder nicht.
  • In einer Variation dieser Ausführungsform ist die Statusspeicherstelle 144 entweder Teil einer alternativen Parameterspeicherstelle 143 oder ist an einer Adresse innerhalb des Systemspeichers 140 zugeordnet, die sich bei einem vorbestimmten Versatz von der Basisadresse der alternativen Parameterspeicherstellen 143 befindet. In einer anderen Variation dieser Ausführungsform ist die DMA-Steuerung 130 (entweder über Parameterregister 133 oder eine alternative Parameterspeicherstelle 143) mit einer Adresse für die Statusspeicherstelle 144 separat programmiert.
  • In wieder anderen Variationen dieser Ausführungsform wird der Status der Übertragung in eine alternative Statusspeicherstelle 164 innerhalb des Vorrichtungsspeichers 160 der Vorrichtung 150 geschrieben und die DMA-Steuerung 130 wird (entweder über Parameterregister 133 oder die alternative Parameterspeicherstelle 143) mit der Adresse für die alternative Statusspeicherstelle 164 programmiert. Die alternative Statusspeicherstelle 164 besteht aus einer oder mehreren Speicherstellen, die innerhalb des Vorrichtungsspeichers 160, einem Speicherpuffer innerhalb der Vorrichtung 150, der für einen beliebigen einer Anzahl möglicher Zwecke je nach der Natur der Vorrichtung 150 benutzt werden kann, wie der Fachmann ohne weiteres verstehen wird, zugeordnet sind. Ein Vorteil des Schreibens des Status der Übertragung in eine alternative Statusspeicherstelle 164 innerhalb des Vorrichtungsspeichers 160 der Vorrichtung 150 ist, daß die Vorrichtung 150 auf solch einen Status als eine Bedingung zur Ausführung einer anderen Aufgabe warten kann und unerwünschte Verzögerungen vermieden werden können, indem kein Status in die Statusspeicherstelle 144 innerhalb des Systemspeichers 140 geschrieben wird, aus der der Status danach an die Vorrichtung 150 übertragen werden müßte. Der Vorteil kann noch größer sein, wenn die nachfolgende Statusübertragung von der Statusspeicherstelle 144 zu der alternativen Statusspeicherstelle 164 erfordert, daß die Vorrichtung 150 Bus-Mastering-Fähigkeiten einsetzt, die die Vorrichtung 150 besitzen kann, um die Statusspeicherstelle 144 zu lesen. Wie der Fachmann verstehen wird, kann die Ausführung eines Lesevorgangs über einen Bus wie den Bus 159 bis zur Vollendung länger dauern als ein Schreibvorgang und kann einen Bus auch zeitweise sperren. Dies beruht darauf, daß ein Lesevorgang zum Lesen eines Datenstücks wie des Status der Übertragung zuerst die Ausführung einer Datenanfrage über einen Bus und danach eine Wartezeit erfordert, bis die angeforderten Daten bereitgestellt werden können. In Abhängigkeit der Gestaltung von Bus 159 können Kohärenz- und Ordnungsregeln von Lese- und Schreibvorgängen erfordern, daß der Bus 159 nicht benutzt wird oder daß mindestens die Vorrichtung 150 mindestens keinen untergeordneten Satz anderer Übertragungen über Bus 159 ausführt, bis der Status empfangen wird. Folglich können sowohl der Systemspeicher 140 als auch die Vorrichtung 150 sowie die beiden Busse 149 und 159 in Abhängigkeit von den Umständen zum Zeitpunkt des Beginns eines Lesevorgangs mit der Beantwortung und Vollendung eines Lesevorgangs vorübergehend monopolisiert werden, um den Status aus der Statusspeicherstelle 144 zu lesen. Wenn der Status jedoch direkt von der DMA-Steuerung 130 in die Vorrichtung 150 geschrieben wird, ist es möglich, sich die weniger strengen Anforderungen, denen Schreibvorgänge gewöhnlich unterliegen, zu Nutze zu machen, um die Kohärenz und Ordnung derart zu bewahren, daß der Schreibvorgang in den Schreibpuffer 128 der Busschnittstelle 127 gesendet und dann später über den Bus 159 an die Vorrichtung 150 übertragen werden kann, wenn möglich mit geringerer Wahrscheinlichkeit, daß der Bus 159 gesperrt wird.
  • 2 ist ein anderes Blockdiagramm von Ausführungsformen, die ein Computersystem anwenden. Die Bezugszeichen in 2 sollen im Allgemeinen den Bezugszeichen in 1 entsprechen und ähnlich wie das Computersystem 100 aus 1 besteht das Computersystem 200 mindestens teilweise aus der CPU 210, dem Bus 219, der Logik 220, dem Bus 249, dem Systemspeicher 240, dem Bus 259 und der Vorrichtung 250. Wie bei dem Computersystem 100 wird der Fachmann ohne weiteres erkennen, daß es sich nur um ein Beispiel vieler möglicher Formen eines Kerns von Computersystem 200 handelt und daß das Computersystem 200 ferner auch aus anderen Bussen und Vorrichtungen bestehen kann, die nicht dargestellt sind. Die Logik 220 ist mit der CPU 210 über den Bus 219 verbunden und führt verschiedene Funktionen aus, die die Ausführung von Befehlen von der CPU 210 unterstützen, einschließlich der Steuerung und Zugangsbereitstellung der CPU 210 zu dem Systemspeicher 240, mit dem die Logik 220 ferner über die Speichersteuerung 222 innerhalb der Logik 220 und Bus 249 verbunden ist. Die Logik 220 stellt auch zu anderen Vorrichtungen, die das Computersystem 200 bilden, einen Zugang bereit, wie zu der Vorrichtung 250, mit der die Logik 220 über die Busschnittstelle 227 innerhalb der Logik 220 und Bus 259 verbunden ist.
  • In einer Ausführungsform führt die CPU 210 eine Befehlsreihe (die möglicherweise innerhalb des Systemspeichers 240 gespeichert ist) aus, die die CPU 210 dazu veranlaßt, die DMA-Steuerung 230 zu programmieren, um eine Übertragung eines Datenblocks zwischen einer Datenspeicherstelle 246 innerhalb des Systemspeichers 240 und einer Datenspeicherstelle 266 innerhalb der Vorrichtung 250 auszuführen. Die CPU 210 schreibt verschiedene Parameter der auszuführenden Übertragung in Speicherstellen innerhalb der Parameterspeicherstelle 243, die innerhalb des Systemspeichers 240 zugeordnet ist. Solche Parameter könnten einschließen, sind jedoch nicht beschränkt auf die Anfangsadressen der Datenspeicherstellen 246 und 266, einen Wert, der die zu übertragende Datenmenge angibt, und einen Wert, der angibt, daß der Status der Übertragung an der Statusspeicherstelle 244 bereitzustellen ist, die innerhalb des Systemspeichers 240 zugeordnet ist. Die CPU 210 wird auch dazu veranlaßt, in ein oder mehrere Parameterregister 233 innerhalb der Vorrichtung 250 einen Wert zu schreiben, der die Anfangsadresse der Parameterspeicherstelle 243 angibt, und einen Wert in ein oder mehrere Steuerbits als ein Auslöser, um zu bewirken, daß die Übertragung stattfindet. Die DMA-Steuerung 230 führt dann die Übertragung als Reaktion auf den Auslöser aus. Während der Ausführung der Übertragung ist die CPU 210 dazu in der Lage, die Statusspeicherstelle 244 ein- oder mehrmals zu lesen, um zu bestimmen, ob die DMA-Steuerung 230 einen Wert in die Statusspeicherstelle 244, die angibt, daß die Übertragung vollendet worden ist, geschrieben hat oder nicht.
  • In einer Variation dieser Ausführungsform ist die Statusspeicherstelle 244 Teil der Parameterspeicherstelle 243 oder wird an einer Adresse innerhalb des Systemspeichers 240 zugeordnet, die sich bei einem vorbestimmten Versatz von der Basisadresse der Parameterspeicherstelle 243 befindet. In einer anderen Variation dieser Ausführungsform wird die DMA-Steuerung 230 (entweder innerhalb der Parameterregister 233 oder Parameterspeicherstelle 243) mit einer Adresse für die Statusspeicherstelle 244 separat programmiert. In noch einer anderen Variation dieser Ausführungsform wird der Status der Übertragung in die alternative Statusspeicherstelle 264 innerhalb des Vorrichtungsspeichers 260 der Vorrichtung 250 geschrieben und die DMA-Steuerung 230 wird mit der Adresse für die alternative Statusspeicherstelle 264 programmiert, wodurch ermöglicht wird, daß die Vorrichtung 250 gegebenenfalls schneller mit dem Status der Übertragung bereitgestellt wird.
  • In einer anderen Ausführungsform führt die CPU 210 eine Befehlsreihe aus, die die CPU 210 dazu veranlaßt, die DMA-Steuerung 230 zu programmieren, um eine Übertragung eines Datenblocks zwischen Datenspeicherstellen 246 und 266 auszuführen, indem verschiedene Parameter der auszuführenden Übertragung in eine alternative Parameterspeicherstelle 263 geschrieben werden, die innerhalb des Vorrichtungsspeichers 260 der Vorrichtung 250 zugeordnet ist. Wie vorher könnten solche Parameter einschließen, sind jedoch nicht beschränkt auf die Anfangsadressen der Datenspeicherstellen 246 und 266, einen Wert, der die zu übertragende Datenmenge angibt, und einen Wert, der angibt, daß der Status der Übertragung an der alternativen Status speicherstelle 264 bereitzustellen ist. Die CPU 210 wird auch dazu veranlaßt, in ein oder mehrere Parameterregister 233 einen Wert zu schreiben, der die Anfangsadresse der alternativen Parameterspeicherstellen 263 angibt, und einen Wert in ein oder mehrere Steuerbits als ein Auslöser, um zu bewirken, daß die Übertragung stattfindet. Die DMA-Steuerung 230 führt dann die Übertragung als Reaktion auf den Auslöser aus. Während dieser Ausführung der Übertragung ist entweder die Vorrichtung 250 oder die CPU 210 dazu in der Lage, die Statusspeicherstelle 264 ein- oder mehrmals zu lesen, um zu bestimmen, ob die DMA-Steuerung 230 einen Wert in die Statusspeicherstelle 264, die angibt, daß die Übertragung vollendet worden ist, geschrieben hat oder nicht.
  • 3 ist ein Blockdiagramm von Ausführungsformen von Interaktionen zwischen Vorrichtungen, die dabei sind, einen Datenblock zu übertragen. Genauer stellt 3 die Interaktion der Steuervorrichtung 310, DMA-Steuerung 330 und einer oder mehrer Speichervorrichtungen und/oder Speicherbereitstellungsvorrichtungen bei der Ausführung der Übertragung eines Datenblocks von der Quellendatenspeicherstelle 346 zu der Zieldatenspeicherstelle 348 dar. Die Steuervorrichtung 310 könnte eine CPU (entweder eines Computersystems oder eines anderen elektronischen Systems), eine Mikrosteuerung, ein Sequenzer usw. sein, die bzw. der Befehle 312 ausführen kann, um das Stattfinden einer Übertragung eines Datenblocks zu bewirken, indem die Steuervorrichtung 310 dazu veranlaßt wird, Register innerhalb der DMA-Steuerung 330 zu programmieren, mit der die Steuervorrichtung 310 verbunden ist. Der adressierbare Raum 340 ist eine Abbildung von Adreßstellen, auf die sowohl von der Steuervorrichtung 310 als auch von der DMA-Steuerung 330 zugegriffen werden kann.
  • In einigen Ausführungsformen kann der adressierbare Raum 340 vollständig aus einer einzigen Systemspeichervorrichtung (nicht dargestellt) bestehen, mit der sowohl die Steuervorrichtung 310 als auch die DMA-Steuerung 330 verbunden ist. Solche Ausführungsformen können weitgehend mit Ausführungsformen aus 1 übereinstimmen, wobei sich sowohl die Quellendatenspeicherstelle 346 als auch die Zieldatenspeicherstelle 348 innerhalb einer Systemspeichervorrichtung wie dem Systemspeicher 140 befinden, in ähnlicher Weise wie die Datenspeicherstellen 146 und 148. In anderen Ausführungsformen kann der adressierbare Raum 340 aus einer Kombination von Speichervorrichtungen und/oder Puffer innerhalb anderer Vorrichtungen bestehen, mit denen sowohl die Steuervorrichtung 310 als auch die DMA-Steuerung 330 verbunden sind. Solche Ausführungsformen können weitgehend mit Ausführungsformen aus 2 übereinstimmen, wobei die Quellendatenspeicherstelle 346 und die Zieldatenspeicher stelle 348 innerhalb unterschiedlicher Vorrichtungen zugeordnet sind, in ähnlicher Weise wie die Datenspeicherstelle 246 innerhalb des Systemspeichers 240 zugeordnet ist und die Datenspeicherstelle 266 innerhalb des Vorrichtungsspeichers 260 der Vorrichtung 250 zugeordnet ist. Genauer kann zum Beispiel die Quellendatenspeicherstelle 346 innerhalb eines Systemspeichers angeordnet sein und die Zieldatenspeicherstelle 348 kann innerhalb eines Puffers in einer anderen Vorrichtung angeordnet sein.
  • Die Steuervorrichtung 310 wird (als Folge der Ausführung von Befehlen 312) dazu veranlaßt, die Ausführung einer Übertragung eines Datenblocks von der Quellendatenspeicherstelle 346 zu der Zieldatenspeicherstelle 348 vorzubreiten, indem sie die Basisadressen sowohl der Quellendatenspeicherstelle 346 als auch der Zieldatenspeicherstelle 348 zusammen mit der zu übertragenden Datenmenge und der Adresse der Statusspeicherstelle 344 in die Parameterspeicherstelle 343 schreibt. Die Steuervorrichtung 310 schreibt auch die Basisadresse der Parameterspeicherstelle 343 in Parameterregister 333 innerhalb der DMA-Steuerung 330 zusammen mit einem oder mehreren Bits, um die DMA-Steuerung 330 zur Ausführung der Datenübertragung auszulösen.
  • Als Reaktion auf diesen Auslöser greift die DMA-Steuerung 330 auf die Parameterspeicherstelle 343 an der Basisadresse zu, die in die Parameterregister 333 programmiert worden ist, um die Basisadressen sowohl der Quellendatenspeicherstelle 346 als auch der Zieldatenspeicherstelle 348, die zu übertragende Datenmenge und die Basisadresse der Statusspeicherstelle 344 zu erhalten. Die DMA-Steuerung 330 führt die Übertragung eines Datenblocks von der Quellendatenspeicherstelle 346 an die Zieldatenspeicherstelle 348 aus und schreibt den Status der Übertragung in die Statusspeicherstelle 344. Die Steuervorrichtung 310 liest den Status der Übertragung aus der Statusspeicherstelle 344, um zu bestimmen, ob die DMA-Steuerung 330 einen Wert, der angibt, daß die Datenübertragung vollendet worden ist, in die Statusspeicherstelle 344 geschrieben hat oder nicht.
  • 4 ist ein Blockdiagramm von Ausführungsformen von Interaktionen zwischen Vorrichtungen, die dabei sind, eine Vielzahl von Datenblöcken zu übertragen. Spezifisch stellt 4 die Interaktion von Steuervorrichtung 410, DMA-Steuerung 430 und einer oder mehrerer Speichervorrichtungen und/oder Speicherbereitstellungsvorrichtungen bei der Ausführung der Übertragung eines Datenblocks von der Quellendatenspeicherstelle 446a an die Zieldatenspeicherstelle 448a und danach die Übertragung eines anderen Datenblocks von der Quellendatenspeicherstelle 446b an die Zieldatenspeicherstelle 448b dar. Die Bezugseichen in 4 sollen im All gemeinen den Bezugszeichen in 3 entsprechen und ähnlich wie die Steuervorrichtung 310 aus 3 könnte die Steuervorrichtung 410 eine CPU (entweder eines Computersystems oder eines anderen elektronischen Systems), Mikrosteuerung, Sequenzer usw. sein, die bzw. der Befehle 412 ausführen kann, um das Stattfinden der Übertragung von Datenblöcken zu bewirken, indem Register innerhalb der DMA-Steuerung 430 programmiert werden, mit der die Steuervorrichtung 410 verbunden ist. Der adressierbare Raum 440 ist eine Abbildung von Adreßstellen, auf die sowohl von der Steuervorrichtung 410 als auch von der DMA-Steuerung 430 zugegriffen werden kann.
  • In einigen Ausführungsformen kann der adressierbare Raum 440 vollständig aus einer einzigen Systemspeichervorrichtung (nicht dargestellt) bestehen, mit der sowohl die Steuervorrichtung 410 als auch die DMA-Steuerung 430 verbunden ist. In anderen Ausführungsformen kann der adressierbare Raum 440 aus einer Kombination von Speichervorrichtungen und/oder Puffer innerhalb anderer Vorrichtungen bestehen, mit denen sowohl die Steuervorrichtung 410 als auch die DMA-Steuerung 430 verbunden sind. Zum Beispiel können sowohl die Quellendatenspeicherstelle 446a als auch die Zieldatenspeicherstelle 448b innerhalb eines Systemspeichers angeordnet sein und sowohl die Quellendatenspeicherstelle 446b als auch die Zieldatenspeicherstelle 448a können innerhalb eines Puffer in einer anderen Vorrichtung angeordnet sein.
  • Die Steuervorrichtung 410 wird (als Folge der Ausführung von Befehlen 412) dazu veranlaßt, die Ausführung einer Vielzahl von Übertragungen von Datenblöcken vorzubreiten, indem sie die Basisadressen von Quellendatenspeicherstellen 446a und 446b und Zieldatenspeicherstellen 448a und 448b zusammen mit entsprechenden zu übertragenden Datenmengen und entsprechenden Adressen von Statusspeicherstellen 444a und 444b in entsprechende Parameterspeicherstellen 443a und 443b schreibt. Die Steuervorrichtung 410 schreibt auch die Basisadresse der Parameterspeicherstelle 443a in Parameterregister 433 innerhalb der DMA-Steuerung 430 zusammen mit einem oder mehreren Bits, um die DMA-Steuerung 430 zum Beginn der Übertragung von Datenblöcken auszulösen.
  • Als Reaktion auf diesen Auslöser greift die DMA-Steuerung 430 auf die Parameterspeicherstelle 443a an der Basisadresse zu, die in die Parameterregister 433 programmiert worden ist, um die Basisadressen sowohl der Quellendatenspeicherstelle 446a als auch der Zieldatenspeicherstelle 448a, die zu übertragende Datenmenge und die Basisadresse der Statusspeicherstelle 444a zu erhalten. Die DMA-Steuerung 430 führt die Übertragung eines Datenblocks von der Quellendatenspeicherstelle 446a an die Zieldatenspeicherstelle 448a aus und schreibt den Status der Übertragung in die Statusspeicherstelle 444a. Die DMA-Steuerung 430 greift dann auf die Parameterspeicherstelle 443b zu, um die Basisadressen sowohl der Quellendatenspeicherstelle 446b als auch der Zieldatenspeicherstelle 448b, die zu übertragende Datenmenge und die Basisadresse der Statusspeicherstelle 444b zu erhalten. Die DMA-Steuerung 430 führt dann die Übertragung eines Datenblocks von der Quellendatenspeicherstelle 446b an die Zieldatenspeicherstelle 448b aus und schreibt den Status der Übertragung in die Statusspeicherstelle 444b. Die Steuervorrichtung 410 liest den Status der Übertragungen aus den Statusspeicherstellen 444a und 444b, um zu bestimmen, ob die DMA-Steuerung 430 einen Wert, der angibt, daß die Datenübertragungen vollendet worden sind, in die Statusspeicherstelle 444a und 444b geschrieben hat oder nicht.
  • In einer Ausführungsform dient die Basisadresse der Parameterspeicherstelle 443a, die in die Parameterregister 433 geschrieben worden ist, als der Zeiger auf die Basis einer oder mehrerer Parameterspeicherstellen (wie die Parameterspeicherstelle 443a), die an vorbestimmten Intervallen (wobei die Länge der Intervalle entweder in die DMA-Steuerung 430 programmiert oder darin festverdrahtet ist) in einer Kette derart positioniert sind, daß die DMA-Steuerung 430 nur die Basisadresse der ersten Parameterspeicherstelle in der Kette benötigt und die DMA-Steuerung 430 wiederholt durch die Kette gehen kann, bis die letzte Parameterspeicherstelle mit Parametern für eine Übertragung eines Datenblocks gefunden wird. In solch einer Ausführungsform kann die Steuervorrichtung 410 auch einen Wert in die Parameterregister 433 schreiben, der die Menge von Parameterspeicherstellen in solch einer Kette angibt. Allerdings kann in einer anderen Ausführungsform jede Parameterspeicherstelle die Basisadresse der nächsten Parameterspeicherstelle in einer Kette von Parameterspeicherstellen bereitstellen, wodurch die Notwendigkeit beseitigt wird, daß jede Parameterspeicherstelle in einer Kette von Parameterspeicherstellen an vorbestimmten Intervallen innerhalb des adressierbaren Raums 440 angeordnet ist. In solch einer Ausführungsform kann die letzte Parameterspeicherstelle in solch einer Kette anstatt einer Basisadresse einen Wert bereitstellen, der angibt, daß die letzte Parameterspeicherstelle in der Kette erreicht worden ist.
  • 5 ist ein anderes Blockdiagramm von Ausführungsformen von Interaktionen zwischen Vorrichtungen, die dabei sind, eine Vielzahl von Datenblöcken zu übertragen. Genauer stellt 5 die Interaktion einer DMA-Steuerung und einer oder mehrerer Speichervorrichtungen und/oder Speicherbereitstellungsvorrichtungen bei der Ausführung der Übertragung einer Vielzahl von Datenblöcken dar (die Datenblöcke sind aus Klarheitsgründen nicht dargestellt). Die Bezugszeichen in 5 sollen im Allgemeinen den Bezugszeichen in 4 entsprechen und ähnlich wie in 4 ist der adressierbare Raum 540 eine Abbildung von Adreßstellen, die sowohl für eine Steuervorrichtung (nicht dargestellt) als auch die DMA-Steuerung 530 zugänglich sind.
  • Ähnlich wie in 4 sind eine Vielzahl von Parameterspeicherstellen (543a bis 543d) innerhalb des adressierbaren Raums 540 zugeordnet worden und ähnlich der ausführlichen Erläuterung bezüglich 4 greift die DMA-Steuerung 530 auf jede der Parameterspeicherstellen 543a bis 543d zu, um Basisadressen für Quellendaten- und Zieldatenspeicherstellen zusammen mit zu übertragenden Datenmengen und entsprechenden Basisadressen für die Statusspeicherstellen zu erhalten, in welche Werte geschrieben werden sollen, die den Status jeder Übertragung angeben. Im Gegensatz zu den im Hinblick auf 4 erläuterten Ausführungsformen beschreibt 5 jedoch Ausführungsformen, in denen ausgehend von den Parameterspeicherstellen 543a bis 543d auf die gleiche Stelle, nämlich die Statusspeicherstelle 544, als einzige gemeinsame Stelle gezeigt wird, in welche der Status jeder Übertragung von der DMA-Steuerung 530 zu schreiben ist. Diese Verwendung einer einzigen Statusspeicherstelle würde einer Steuervorrichtung ermöglichen, den Status einer Vielzahl von Übertragungen mit wiederholten Zugriffen auf nur eine Stelle mit dem adressierbaren Raum 540 zu überwachen. In solch einer Ausführungsform können die Werte, die von der DMA-Steuerung 530 in die Statusspeicherstelle 544 geschrieben werden, zusätzlich eine Form von Identifizierungswert enthalten, der ermöglichen würde, daß eine Steuervorrichtung unterscheidet, welche Übertragungen vollendet worden sind und/oder welche Übertragung gegenwärtig ausgeführt wird.
  • 5 stellt auch die Verwendung von Parameterregistern 533 dar, um die Basisadressen sowohl der ersten als auch der letzten Parameterspeicherstelle zu liefern, um sowohl den Beginn einer oder mehrerer Übertragungen von Datenblöcken als auch eine Zählung der Anzahl existierender Übertragungen in einer Kette von Übertragungen auszulösen. Wie oben erläutert, können einige Ausführungsformen einen vorbestimmten Intervall eines Adreßraums zwischen Basisadressen anwenden, an dem jede Parameterspeicherstelle innerhalb des adressierbaren Raums 540 positioniert wäre, und andere Ausführungsformen können Zeiger innerhalb jeder Parameterspeicherstelle anwenden, die die Basisadresse der nächsten Parameterspeicherstelle in einer Kette von Parameterspeicherstellen bereitstellen, damit eine Vielzahl entsprechender Übertragungen ausgeführt wird.
  • 6 ist ein wieder anderes Blockdiagramm von Ausführungsformen von Interaktionen zwischen Vorrichtungen, die dabei sind, eine Vielzahl von Datenblöcken zu übertragen. Genauer stellt 6 die Interaktion einer DMA-Steuerung und einer oder mehrerer Speichervorrichtungen und/oder Speicherbereitstellungsvorrichtungen bei der Ausführung der Übertragung einer Vielzahl von Datenblöcken dar (die Datenblöcke sind aus Klarheitsgründen nicht dargestellt). Die Bezugszeichen in 6 sollen im Allgemeinen den Bezugszeichen in 5 entsprechen und ähnlich wie in 5 ist der adressierbare Raum 640 eine Abbildung von Adreßstellen, die sowohl für eine Steuervorrichtung (nicht dargestellt) als auch die DMA-Steuerung 630 zugänglich sind. Ähnlich wie in 5 sind eine Vielzahl von Parameterspeicherstellen (643a bis 643c) innerhalb des adressierbaren Raums 640 zugeordnet worden und ähnlich der ausführlichen Erläuterung bezüglich 5 greift die DMA-Steuerung 630 auf jede der Parameterspeicherstellen 643a bis 643c zu, um Basisadressen für Quellendaten- und Zieldatenspeicherstellen zusammen mit zu übertragenden Datenmengen und entsprechenden Basisadressen für die Statusspeicherstellen zu erhalten, in welche Werte geschrieben werden sollen, die den Status jeder Übertragung angeben. Im Gegensatz zu den mit Bezug auf 5 erläuterten Ausführungsformen stellt 6 jedoch Parameterspeicherstellen 643a bis 643c dar, die innerhalb des adressierbaren Raums 640 in unregelmäßigen Intervallen zugeordnet sind, wobei die Zeiger für die nächste Parameterspeicherstelle innerhalb jeder Parameterspeicherstelle bereitgestellt sind. Bei der Ausführung jeder Übertragung greift die DMA-Steuerung 630 auf den Zeiger auf die nächste Parameterspeicherstelle zu, um die Basisadresse der nächsten Parameterspeicherstelle zu erhalten, bis der Zugriff auf den Zeiger innerhalb der Parameterspeicherstelle 643c, um die Basisadresse einer anderen Parameterspeicherstelle zu erhalten, einen Zeiger bereitstellt, der anzeigt, daß keine weiteren Parameterspeicherstellen mit Parametern für eine Übertragung eines Datenblocks vorhanden sind, wobei die DMA-Steuerung 630 an diesem Punkt mit der Ausführung von Übertragungen von Datenblöcken aufhört.
  • 6 stellt auch die Verwendung von Zeigern auf Statusspeicherstellen dar, um den Status von Datenübertragungen, der den Parameterspeicherstellen 643a und 643c entspricht, einer gemeinsamen Statusspeicherstelle (nämlich der Statusspeicherstelle 644ac) bereitzustellen und um den Status der Datenübertragung, der der Parameterspeicherstelle 643b entspricht, einer anderen Statusspeicherstelle (nämlich der Statusspeicherstelle 644b) bereitzustellen. Solch eine Verwendung getrennter und gemeinsamer Statusspeicherstellen kann sich als vorteilhaft erweisen, wenn eine Vielzahl von Übertragungen mit der Ausführung einer Funktion von einem Com putersystem in Beziehung steht, zu dem die DMA-Steuerung 630 gehört, während andere Übertragungen mit der Ausführung einer anderen Funktion innerhalb des gleichen Computersystems in Beziehung stehen. Genauer können die Statusspeicherstellen 644ac und 644b innerhalb verschiedener Speichervorrichtungen und/oder Vorrichtungen mit Speicherpuffern zugeordnet sein. Zum Beispiel kann die Statusspeicherstelle 644ac innerhalb eines Systemspeichers zugeordnet sein, so daß eine CPU den Status der entsprechenden Übertragungen effizient überwachen kann, während die Statusspeicherstelle 644b innerhalb eines Speicherpuffers zugeordnet sein kann, der von einer anderen Vorrichtung bereitgestellt wird, so daß die andere Vorrichtung den Status der entsprechenden Übertragung effizient überwachen kann.
  • 7 ist ein anderes Blockdiagramm von Ausführungsformen, die ein Computersystem anwenden. Die Bezugszeichen in 7 sollen im Allgemeinen den Bezugszeichen in 2 entsprechen und ähnlich wie das Computersystem 200 aus 2 besteht das Computersystem 700 mindestens teilweise aus der CPU 710, dem Bus 719, der Logik 720, dem Bus 749, dem Systemspeicher 740, dem Bus 759 und der Vorrichtung 750. Wie bei dem Computersystem 200 wird der Fachmann ohne weiteres erkennen, daß es sich nur um ein Beispiel vieler möglicher Formen eines Kerns von Computersystem 200 handelt und daß das Computersystem 200 ferner auch aus anderen Bussen und Vorrichtungen bestehen kann, die nicht dargestellt sind. Die Logik 720 ist mit der CPU 710 über den Bus 719 verbunden und führt verschiedene Funktionen aus, die die CPU 710 unterstützen, einschließlich der Steuerung und Zugangsbereitstellung der CPU 710 zu dem Systemspeicher 740, mit dem die Logik 720 ferner über die Speichersteuerung 722 innerhalb der Logik 720 und Bus 749 verbunden ist. Die Logik 720 stellt auch zu anderen Vorrichtungen, die das Computersystem 700 bilden, einen Zugang bereit, wie zu der Vorrichtung 750, mit der die Logik 720 über die Busschnittstelle 727 innerhalb der Logik 720 und Bus 759 verbunden ist.
  • In einer Ausführungsform führt die CPU 710 eine Reihe von Befehlen 712 aus, die innerhalb des Systemspeichers 740 gespeichert sind und die CPU 710 dazu veranlassen, die DMA-Steuerung 730 zu programmieren, um eine Übertragung eines Datenblocks von der Datenspeicherstelle 746, die innerhalb des Systemspeichers 740 zugeordnet ist, an die Datenspeicherstelle 766, die innerhalb des Systemspeichers 760 von Vorrichtung 750 zugeordnet ist, auszuführen. Die CPU 710 schreibt verschiedene Parameter der auszuführenden Übertragung in Speicherstellen innerhalb der DMA-Übertragungs-Parameterspeicherstelle 743, die innerhalb des Systemspeichers 740 zugeordnet ist. Solche Parameter könnten einschließen, sind jedoch nicht beschränkt auf die Anfangsadressen der Datenspeicherstellen 746 und 766, einen Wert, der die zu übertragende Datenmenge angibt, und einen Wert, der angibt, daß der Status der Übertragung an der DMA-Übertragungs-Statusspeicherstelle 764 bereitzustellen ist, die innerhalb des Systemspeichers 760 zugeordnet ist. Die CPU 710 wird auch dazu veranlaßt, in ein oder mehrere Parameterregister 733 innerhalb der DMA-Steuerung 730 einen Wert zu schreiben, der die Anfangsadresse der DMA-Übertragungs-Parameterspeicherstelle 743 angibt, und einen Wert in ein oder mehrere Steuerbits als ein Auslöser, um zu bewirken, daß die Übertragung stattfindet. Die DMA-Steuerung 730 führt dann die Übertragung aus. Während der Ausführung dieser Übertragung ist die CPU 710 und/oder die Vorrichtung 750 dazu in der Lage, die DMA-Übertragungs-Statusspeicherstelle 764 ein- oder mehrmals zu lesen, um zu bestimmen, ob die DMA-Steuerung 730 einen Wert in die DMA-Übertragungs-Statusspeicherstelle 764, die angibt, daß die Übertragung vollendet worden ist, geschrieben hat oder nicht.
  • Die CPU 710 führt auch mehrere Reihen von Befehlen 712 aus, die die CPU 710 dazu veranlassen, die Vorrichtung 750 zur Ausführung einer Übertragung eines Datenblocks von der Datenspeicherstelle 768, die innerhalb des Vorrichtungsspeichers 760 in der Vorrichtung 750 zugeordnet ist, an die Datenspeicherstelle 748, die innerhalb des Systemspeichers 740 zugeordnet ist, zu programmieren. Die CPU 710 schreibt in Vorrichtungsübertragungs-Parameterregister 768 verschiedene Parameter der auszuführenden Übertragung. Solche Parameter könnten einschließen, sind jedoch nicht beschränkt auf die Anfangsadressen der Datenspeicherstellen 768 und 748 und einen Wert, der die zu übertragende Datenmenge angibt. Die Vorrichtung 750 führt dann die Übertragung aus.
  • Die Verwendung der DMA-Steuerung 730 zum Übertragen von Daten aus dem Systemspeicher 740 an die Vorrichtung 750 und die Verwendung von Bus-Mastering-Funktionen von Vorrichtung 750 zum Übertragen von Daten von der Vorrichtung 750 an den Systemspeicher 740 können bei der Bewegung von Datenblöcken effizienter sein als mit der Verwendung entweder nur der DMA-Steuerung 730 oder nur der Vorrichtung 750 zur Ausführung beider Übertragungen möglich wäre. Folglich wird jede Übertragung als ein oder mehrere Schreibvorgänge über den Bus 759 ausgeführt, wobei die Schreibpuffer 728 und 758, die die entsprechenden Busschnittstellen 727 und 757 bereitstellen können, zum Vorteil genutzt werden. Die Verwendung des Schreibpuffers 728 ermöglicht das Schreiben von Daten von der DMA-Steuerung 730 in den Vorrichtungsspeicher 760 durch den Bus 759, der derart gepuffert oder „entsendet" wird, daß, während sich ein Teil der Daten von dem Schreibpuffer 728 durch den Bus 759 zu dem Vorrichtungsspeicher 760 ausbreitet, die DMA-Steuerung 730 einen anderen Teil der Daten aus dem Systemspeicher 740 lesen kann. Dementsprechend ermöglicht die Verwendung des Schreibpuffers 758 von den Bus-Mastering-Funktionen von Vorrichtung 750 das Schreiben von Daten von Vorrichtung 750 in den Systemspeicher 740 durch den Bus 759, der auch derart „entsendet" wird, daß, während sich ein Teil der Daten von dem Schreibpuffer 758 durch den Bus 759 zu dem Systemspeicher 740 ausbreitet, die Vorrichtung 750 einen anderen Teil der Daten aus dem Vorrichtungsspeicher 760 lesen kann.
  • In einigen Ausführungsformen kann diese Verwendung einer Kombination von DMA-Steuerung 730 und Bus-Mastering-Funktionen von Vorrichtung 750 dadurch erreicht werden, daß die CPU 710 eine Befehlsreihe ausführt, die von einem Vorrichtungstreiber bereitgestellt wird, der zu der Vorrichtung 750 gehört. Solch ein Vorrichtungstreiber kann mit einem Betriebssystem interagieren, das im Laufe des normalen Betriebs des Computers 700 auch von der CPU 710 ausgeführt wird, um die Effizienz von Datenübertragungen zwischen dem Vorrichtungsspeicher 760 innerhalb der Vorrichtung 750 und dem Systemspeicher 740 zu erhöhen, indem die Verwendung der Bus-Masterin-Funktionen von Vorrichtung 750 zum Lesen von Daten aus dem Systemspeicher 740 vermieden wird und die Verwendung der DMA-Steuerung 730 zum Lesen von Daten aus dem Vorrichtungsspeicher 760 vermieden wird.
  • 8 ist ein Flußdiagramm einer Ausführungsform. Bei Schritt 810 werden die Basisadressen der Quellen- und Zielstellen der zu übertragenden Daten, die zu übertragende Datenmenge und die Basisadresse der Statusstelle, in die der Status der Übertragung geschrieben werden soll, von einer DMA-Steuerung über DMA-Register oder einen anderen Mechanismus bereitgestellt. Der DMA-Steuerung wird signalisiert, mit der Ausführung der DMA-Übertragung zu beginnen und tut dies bei 820. Während der Ausführung der Übertragung liest eine CPU oder andere Vorrichtung bei 830 den Status der Übertragung aus der Statusstelle, in die die DMA-Steuerung den Status schreiben soll. Wenn die DMA-Steuerung mit Bezug auf Schritt 840 noch keinen Wert in die Statusstelle geschrieben hat, in die der Status zu schreiben ist, der die Vollendung der Übertragung angibt, wird bei 830 ein weiterer Lesevorgang des Status ausgeführt. Anderenfalls ist das Ende erreicht, wenn die DMA-Steuerung einen Wert in die Statusstelle geschrieben hat, in die der Status zu schreiben ist, der die Vollendung der Übertragung angibt.
  • 9 ist ein Flußdiagramm einer anderen Ausführungsform einer Übertragung eines Datenblocks. Bei 910 werden Übertragungsparameter, die einschließen, jedoch nicht beschränkt sind auf die Basisadressen der Datenquellen- und Datenzielstellen der zu übertragenden Daten, die zu übertragende Datenmenge und die Basisadresse der Statusstelle, in die der Status der Übertragung zu schreiben ist, in eine Parameterstelle innerhalb eines Systemspeichers oder einer anderen Speichervorrichtung oder Vorrichtung mit einem adressierbaren Speicher wie einem Puffer geschrieben. Bei 920 wird die Basisadresse der Parameterstelle, in die die Parameter der Übertragung bei 910 geschrieben wurden, über DMA-Register oder andere Mechanismen einer DMA-Steuerung bereitgestellt. Der DMA-Steuerung wird signalisiert, mit der Ausführung der DMA-Übertragung zu beginnen, und tut dies bei 930. Während der Ausführung der Übertragung liest eine CPU oder andere Vorrichtung bei 940 den Status der DMA-Übertragung aus einer adressierbaren Statusstelle, in die die DMA-Steuerung den Status schreiben soll. Wenn die DMA-Steuerung mit Bezug auf Schritt 950 noch keinen Wert in die Statusstelle geschrieben hat, in die der Status zu schreiben ist, der die Vollendung der Übertragung angibt, wird bei 940 ein weiterer Lesevorgang des Status ausgeführt. Anderenfalls ist das Ende erreicht, wenn die DMA-Steuerung einen Wert in die Statusstelle geschrieben hat, in die der Status zu schreiben ist, der die Vollendung der Übertragung angibt.
  • 10 ist ein Flußdiagramm einer Ausführungsform. Bei 1010 werden Parametersätze wie Basisadressen von Datenquellen- und Datenzielstellen, Datenmengen und Basisadressen von Statusstellen in eine Vielzahl von Parameterstellen für eine Vielzahl von Übertragungen geschrieben, wobei jede der Vielzahl von Übertragungsstellen jeder der Vielzahl auszuführender Übertragungen entspricht. Bei 1020 wird die Basisadresse der ersten der Vielzahl von Parameterstellen, in die die Parameter der Übertragung geschrieben wurden, über DMA-Register oder andere Mechanismen einer DMA-Steuerung bereitgestellt. Der DMA-Steuerung wird signalisiert, mit der Ausführung der DMA-Übertragung zu beginnen und tut dies bei 1030, und wenn diese DMA-Übertragung bei 1030 vollendet ist, wird der Status, der die Vollendung dieser DMA-Übertragung anzeigt, bei 1040 in die Statusstelle geschrieben, die dieser Übertragung entspricht. Wenn bei 750 ein Anzeichen für eine andere Parameterstelle mit Parametern für eine andere, noch auszuführende Übertragung vorliegt, dann wird diese Übertragung bei 1030 ausgeführt. Anderenfalls ist das Ende erreicht, wenn es keine weiteren Parameterstellen gibt, die noch auszuführenden Übertragungen entsprechen.
  • In jeder der oben beschriebenen Ausführungsformen, in denen eine Vielzahl von Übertragungsparameterstellen zur Unterstützung der Ausführung einer Vielzahl von Übertragungen zugeordnet sind, kann es Variationen dieser Ausführungsformen geben, in denen die Übertragungsparameterstellen in einer kreisförmigen oder „FIFO"-artigen Weise benutzt werden kön nen, in der Parameterstellen als eine Schleife benutzt werden, um für neue Übertragungen wiederholt und erneut benutzt zu werden. Wenn Übertragungsparameterstellen Zeiger zum Lenken einer DMA-Steuerung auf die Basisadresse einsetzen, bei der eine nächste Übertragungsparameterstelle zu finden ist, können solche Zeiger derart benutzt werden, daß der Zeiger darauf, was anderenfalls die „letzte" Übertragungsparameterstelle hätte sein können, darauf zeigt, was anderenfalls die „erste" Übertragungsparameterstelle hätte sein können. Wenn Übertragungsparameterstellen keine Zeiger einsetzen, sondern darauf angewiesen sind, innerhalb des adressierbaren Raums einer Speichervorrichtung (oder anderen Vorrichtung, die Speicherstellen bereitstellt) an vorbestimmten Intervallen positioniert zu werden, kann eine DMA-Steuerung mit einer Anzeige bereitgestellt werden, welche Übertragungsparameterstelle die letzte in der Kette von Übertragungsparameterstellen ist, so daß die DMA-Steuerung „in Form einer Schleife" zu der ersten zurückgehen kann.
  • Die Erfindung ist in Verbindung mit der bevorzugten Ausführungsform beschrieben worden. Es ist klar, daß für den Fachmann angesichts der vorstehenden Beschreibung zahlreiche Alternativen, Modifikationen, Variationen und Verwendungen ersichtlich sind. Der Fachmann wird auch verstehen, daß die vorliegende Erfindung als Unterstützung für elektronische Vorrichtungen umgesetzt werden kann, die keine Computersysteme sind, wie für Audio-/Videounterhaltungsvorrichtungen, Steuervorrichtungen in Fahrzeugen, Geräten, die von einer elektronischen Schaltung gesteuert werden, usw.

Claims (13)

  1. Computersystemvorrichtung zum Bestimmen, ob eine Übertragung eines Datenblocks vollendet worden ist, mit – einer ersten Speichervorrichtung (140; 240; 740), in der eine Quellendatenstelle (146; 246; 746), die einen zu übertragenden Datenblock aufweist, zugeordnet ist; – einer zweitem Speichervorrichtung (140; 260; 760), in der eine Zieldatenstelle (148; 266; 766) für den zu übertragenden Datenblock zugeordnet ist; und – einer Steuervorrichtung (110; 210; 710), die sowohl mit der ersten als auch der zweiten Speichervorrichtung verbunden ist und maschinenlesbare Befehle ausführen kann; gekennzeichnet durch eine DMA-Steuerung (130; 230; 630; 730), die mit der Steuervorrichtung (110; 210; 710) und sowohl der ersten als auch der zweiten Speichervorrichtung (140; 240; 260; 740; 760) verbunden ist und ein Übertragungsstatusstellen-Basisadreßregister (133; 233; 633; 733) aufweist, in das die Steuervorrichtung (110; 210; 710) einen Wert schreibt, der für eine Übertragung eine Basisadresse einer Statusspeicherstelle (144; 244; 644ac; 743) angibt, bei der die DMA-Steuerung (130; 230; 630; 730) einen Wert schreibt, der einen Status dieser Übertragung des Datenblocks von der Quellendatenstelle zu der Zieldatenstelle angibt und in die die Steuervorrichtung (110; 210; 710) einen Wert schreibt, der für eine andere Übertragung eine Adresse einer anderen Statusspeicherstelle (164; 264; 644b; 764) angibt, bei der die DMA-Steuerung (130; 230; 630; 730) einen Wert schreibt, der einen Status dieser anderen Übertragung des Datenblocks von der Quellendatenstelle zu der Zieldatenstelle angibt, wobei die Statusspeicherstelle (144; 244; 644ac; 743) und die andere Statusspeicherstelle (164; 264; 644b; 764) in unterschiedlichen Speichervorrichtungen (140, 160; 240, 260; 740, 760) angeordnet sind und die unterschiedlichen Speichervorrichtungen (140, 160; 240, 260; 740, 760) innerhalb unterschiedlicher Vorrichtungen (140, 150; 240, 250; 740, 750) angeordnet sind, wobei die Steuervorrichtung (110; 210; 710) auf die Statusspeicherstelle (144; 244; 644ac; 743) zugreift und eine andere Vorrichtung, die nicht die Steuervorrichtung (110; 210; 710) ist, auf die andere Statusspeicherstelle (164; 264; 644b; 764) zugreift.
  2. Vorrichtung nach Anspruch 1, wobei die DMA-Steuerung (130; 230; 630; 730) Parameterregister (133; 233; 633; 733) aufweist, in welche die Steuervorrichtung (110; 210; 710) mindestens die Basisadresse der Quellendatenstelle, die Basisadresse der Zieldatenstelle und die Datenmenge schreibt, die den zu übertragenden Datenblock bildet.
  3. Vorrichtung nach Anspruch 1, wobei die DMA-Steuerung (130; 230; 630; 730) mindestens ein Übertragungsparameterstellen-Basisadreßregister (133; 233; 633; 733) aufweist, in das die Steuervorrichtung einen Wert schreibt, der die Basisadresse einer Parameterstelle angibt, aus der die DMA-Steuerung (130; 230; 630; 730) Parameter der Übertragung des Datenblocks erhält.
  4. Vorrichtung nach Anspruch 3, wobei die Parameterstelle, aus der die DMA-Steuerung (130; 230; 630; 730) die Parameter der Übertragung erhält, mindestens die Basisadresse der Quellendatenstelle, die Basisadresse der Zieldatenstelle und die Datenmenge, die den zu übertragenden Datenblock bildet, speichert.
  5. Vorrichtung nach Anspruch 1, wobei – der Datenblock in einer ersten Übertragung von der Quellendatenstelle zu der Zieldatenstelle zu übertragen ist; und wobei – die DMA-Steuerung (130; 230; 630; 730) ein Übertragungsparameterstellen-Basisadreßregister (133; 233; 633; 733) aufweist, in das die Steuervorrichtung (110; 210; 710) einen Wert schreibt, der die Basisadresse einer ersten Parameterspeicherstelle (143; 243; 343; 443a; 643a, 643c; 743) angibt, aus der die DMA-Steuerung Parameter der ersten Übertragung erhält, bevor die Übertragung ausgeführt wird.
  6. Vorrichtung nach Anspruch 5, wobei die erste Parameterspeicherstelle (143; 243; 343; 443a; 643a, 643c; 743), aus der die DMA-Steuerung (130; 230; 630; 730) die Parameter der ersten Übertragung erhält, mindestens die Basisadresse der Quellendatenstelle, die Basisadresse der Zieldatenstelle und die Datenmenge, die den zu übertragenden Datenblock bildet, speichert.
  7. Vorrichtung nach Anspruch 6, wobei die erste Parameterspeicherstelle (143; 243; 343; 443a), von der die DMA-Steuerung (130; 230) die Parameter der ersten Übertragung erhält, ferner die Basisadresse der ersten Übertragungsstatus-Speicherstelle (144; 244; 344; 444a) speichert, in die die Steuervorrichtung (110; 210) einen Wert schreibt, der einen Status der ersten Übertragung angibt.
  8. Vorrichtung nach Anspruch 6, wobei die erste Parameterspeicherstelle (443a), von der die DMA-Steuerung (130; 230) die Parameter der ersten Übertragung erhält, ferner die Basisadresse der zweiten Parameterspeicherstelle (443b) speichert, von der die DMA-Steuerung (130; 230) die Parameter einer zweiten Übertragung erhält.
  9. Vorrichtung nach Anspruch 8, wobei die zweite Parameterspeicherstelle (443b), von der die DMA-Steuerung (130; 230) die Parameter der zweiten Übertragung erhält, ferner die Basisadresse einer zweiten Übertragungsstatus-Speicherstelle (444b) speichert, in die die Steuervorrichtung einen Wert schreibt, der einen Status der zweiten Übertragung angibt.
  10. Verfahren zum Bestimmen, ob eine Übertragung eines Datenblocks vollendet worden ist, umfassend die folgenden Schritte: – Schreiben eines ersten Satzes von Parameter (910) für eine Übertragung eines ersten Datenblocks (446a; 448a; 746), die von einer DMA-Steuerung (430) ausgeführt werden soll, in eine erste Übertragungsparameter-Speicherstelle (143; 243; 443a; 643a, 643b, 643c; 743), die in einer Speichervorrichtung (140; 240; 440; 640; 740) zugeordnet ist, wobei die Parameter für die Über tragung des ersten Datenblocks aus einer Basisadresse einer ersten Übertragungsstatus-Speicherstelle (144; 244; 444a; 644ac; 743) oder einer anderen Übertragungsstatus-Speicherstelle (164; 264; 644b; 764) bestehen; – Schreiben der Basisadresse der ersten Übertragungsstatus-Speicherstelle oder der anderen Übertragungsstatus-Speicherstelle (920) in ein Register (133; 233; 433; 733) der DMA-Steuerung (130; 230; 430; 730) vor Ausführen der Übertragung; – Auslösen der DMA-Steuerung (130; 230; 430; 730), um mit der Ausführung der Übertragung des ersten Datenblocks (930) zu beginnen, indem auf die erste Übertragungsparameter-Speicherstelle (143; 243; 443a; 643a, 643b, 643c; 743) zugegriffen wird, um Parameter der auszuführenden Übertragung des Datenblocks zu erhalten; und – Zugreifen auf die erste Übertragungsstatus-Speicherstelle (940; 144; 244; 444a; 743) oder die andere Übertragungsstatus-Speicherstelle (164; 264; 764), um zu bestimmen, ob die DMA-Steuerung (130; 230; 430; 730) in die erste Übertragungsstatus-Speicherstelle (144; 244; 444a; 644ac; 743) oder die andere Übertragungsstatus-Speicherstelle (164; 264; 644b; 764) einen Wert geschrieben hat oder nicht, der anzeigt, daß die Übertragung des ersten Datenblocks vollendet worden ist, wobei die erste Übertragungsstatus-Speicherstelle (144; 244; 444a; 644a; 743) und die andere Übertragungsstatus-Speicherstelle (164; 264; 644b; 764) in unterschiedlichen Vorrichtungen (140, 150; 240, 250; 740, 750) angeordnet sind, wobei die Steuervorrichtung (110; 210; 710) auf die Statusspeicherstelle (144; 244; 644ac; 743) zugreift und eine andere Vorrichtung, die nicht die Steuervorrichtung (110; 210; 710) ist, auf die andere Statusspeicherstelle (164; 264; 644b; 764) zugreift.
  11. Verfahren nach Anspruch 10, wobei das Auslösen der DMA-Steuerung (430; 630) zum Beginnen der Ausführung der Übertragung des ersten Datenblocks ferner durch Folgendes gekennzeichnet ist: – Erhalten, von der ersten Übertragungsparameter-Speicherstelle (143; 243; 443a; 643a, 643b, 643c; 743), der Basisadresse einer ersten Datenquellenstelle, aus welcher der erste Datenblock während der Übertragung des ersten Datenblocks gelesen wird, wobei die erste Datenquellenstelle in einer ersten Speichervorrichtung (140; 240; 440; 740) zugewiesen ist; – Erhalten, von der ersten Übertragungsparameter-Speicherstelle (143; 243; 443a; 643a, 643b, 643c; 743), der Basisadresse einer ersten Zielstelle, in welche der erste Datenblock während der Übertragung des ersten Datenblocks geschrieben wird, wobei die erste Datenzielstelle in einer zweiten Speichervorrichtung (140; 260; 760) zugewiesen ist; und – Erhalten, von der ersten Übertragungsparameter-Speicherstelle (143; 243; 443a; 643a, 643b, 643c; 743), eines Wertes, der die Datenmenge angibt, aus welcher der erste zu übertragende Datenblock besteht.
  12. Verfahren nach Anspruch 10, ferner gekennzeichnet durch: Zugreifen auf die erste Übertragungsparameter-Speicherstelle (643a, 643b), um die Basisadresse einer zweiten Übertragungsparameter-Speicherstelle (643b, 643c) zu erhalten, die einen zweiten Satz von Parameter für die Übertragung eines zweiten Datenblocks aufweist.
  13. Maschinenlesbares Medium, umfassend Code, der bei Ausführung von einem Prozessor in einer elektronischen Vorrichtung bewirkt, daß die elektronische Vorrichtung ein Verfahren nach einem der vorhergehenden Ansprüche 10 bis 12 ausführt.
DE602004010399T 2003-06-30 2004-06-23 Neuadressierbare virtuelle dma-steuer und statusregister Expired - Fee Related DE602004010399T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US610660 1996-03-04
US10/610,660 US7120708B2 (en) 2003-06-30 2003-06-30 Readdressable virtual DMA control and status registers
PCT/US2004/020197 WO2005006201A1 (en) 2003-06-30 2004-06-23 Readdressable virtual dma control and status registers

Publications (2)

Publication Number Publication Date
DE602004010399D1 DE602004010399D1 (de) 2008-01-10
DE602004010399T2 true DE602004010399T2 (de) 2008-10-09

Family

ID=33541181

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004010399T Expired - Fee Related DE602004010399T2 (de) 2003-06-30 2004-06-23 Neuadressierbare virtuelle dma-steuer und statusregister

Country Status (9)

Country Link
US (1) US7120708B2 (de)
EP (1) EP1639481B1 (de)
JP (2) JP4800207B2 (de)
KR (1) KR100868395B1 (de)
CN (1) CN100421097C (de)
AT (1) ATE379812T1 (de)
DE (1) DE602004010399T2 (de)
TW (1) TWI296762B (de)
WO (1) WO2005006201A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI258077B (en) * 2004-05-11 2006-07-11 Winbond Electronics Corp Method of DMA and program DMA controller for card reader
US8200879B1 (en) 2004-06-29 2012-06-12 National Semiconductor Corporation Memory interface including an efficient variable-width bus
EP1617335A1 (de) * 2004-07-12 2006-01-18 Stmicroelectronics SA Programmierungsmethode eines DMA-Controllers in einem on-Chip System und dazügehörendes on-Chip System
US20070162642A1 (en) * 2005-12-19 2007-07-12 Ivo Tousek A dma controller with multiple intra-channel software request support
GB2433611A (en) * 2005-12-21 2007-06-27 Advanced Risc Mach Ltd DMA controller with virtual channels
US20080082715A1 (en) * 2006-09-29 2008-04-03 Honeywell International Inc. Data transfers over multiple data buses
KR100891508B1 (ko) * 2007-03-16 2009-04-06 삼성전자주식회사 가상 디엠에이를 포함하는 시스템
DE102007029833B4 (de) * 2007-06-28 2019-03-28 Texas Instruments Deutschland Gmbh Mikrocontroller mit Datenmodifikationsmodul und System umfassend ein Datenmodifikationsmodul
US7822885B2 (en) * 2007-10-16 2010-10-26 Applied Micro Circuits Corporation Channel-less multithreaded DMA controller
JP5268841B2 (ja) * 2009-09-11 2013-08-21 三菱電機株式会社 情報処理装置
JP5527512B2 (ja) * 2009-09-28 2014-06-18 ソニー株式会社 バスプロトコル変換装置及びバスプロトコル変換方法
JP5351339B2 (ja) * 2010-06-07 2013-11-27 株式会社日立製作所 データ転送装置及びデータ転送方法
TWI465905B (zh) 2010-09-22 2014-12-21 Toshiba Kk 記憶體系統、主機控制器、及直接記憶體存取之控制方法
US8959278B2 (en) * 2011-05-12 2015-02-17 Freescale Semiconductor, Inc. System and method for scalable movement and replication of data
DE102016211768A1 (de) * 2016-06-29 2018-01-04 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung und Betriebsverfahren hierfür
CN107643992B (zh) * 2017-09-27 2020-09-08 成都忆芯科技有限公司 PCIe控制器与使用PCIe控制器的环回数据通路
CN109739805B (zh) * 2018-12-27 2023-06-23 北京中星微电子有限公司 配置模块的参数的方法和配置模块的参数的装置
CN113032300A (zh) * 2021-03-23 2021-06-25 安谋科技(中国)有限公司 数据的传输控制方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04177445A (ja) * 1990-11-08 1992-06-24 Nec Corp ディスクリプタ制御方式
JPH04324561A (ja) * 1991-04-25 1992-11-13 Shikoku Nippon Denki Software Kk Dma情報のポーリング制御装置
EP0544083A3 (en) * 1991-11-26 1994-09-14 Ibm Interleaved risc-type parallel processor and processing methods
JPH0696007A (ja) * 1992-09-17 1994-04-08 Fujitsu Ltd Dma転送方式
US5828903A (en) * 1994-09-30 1998-10-27 Intel Corporation System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
US5687395A (en) * 1994-10-28 1997-11-11 Hewlett-Packard Company Main memory buffer for low cost / high performance input/output of data in a computer system
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
KR0160193B1 (ko) * 1995-12-30 1998-12-15 김광호 직접메모리접근 제어장치
US6049842A (en) * 1997-05-01 2000-04-11 International Business Machines Corporation Efficient data transfer mechanism for input/output devices
US6065071A (en) 1998-03-26 2000-05-16 Nvidia Corporation Method and apparatus for trapping unimplemented operations in input/output devices
US6023738A (en) 1998-03-30 2000-02-08 Nvidia Corporation Method and apparatus for accelerating the transfer of graphical images
US6134607A (en) * 1998-04-03 2000-10-17 Avid Technology, Inc. Method and apparatus for controlling data flow between devices connected by a memory
US6202106B1 (en) 1998-09-09 2001-03-13 Xilinx, Inc. Method for providing specific knowledge of a structure of parameter blocks to an intelligent direct memory access controller
JP3206568B2 (ja) * 1998-10-28 2001-09-10 日本電気株式会社 Dma制御方法及び装置
US6314478B1 (en) * 1998-12-29 2001-11-06 Nec America, Inc. System for accessing a space appended to a circular queue after traversing an end of the queue and upon completion copying data back to the queue
GB2371641B (en) * 2001-01-27 2004-10-06 Mitel Semiconductor Ltd Direct memory access controller for circular buffers
US7287101B2 (en) 2003-08-05 2007-10-23 Intel Corporation Direct memory access using memory descriptor list

Also Published As

Publication number Publication date
CN100421097C (zh) 2008-09-24
DE602004010399D1 (de) 2008-01-10
JP2007520770A (ja) 2007-07-26
EP1639481B1 (de) 2007-11-28
JP2011204269A (ja) 2011-10-13
KR20060028705A (ko) 2006-03-31
US20040267979A1 (en) 2004-12-30
WO2005006201A1 (en) 2005-01-20
ATE379812T1 (de) 2007-12-15
JP4800207B2 (ja) 2011-10-26
KR100868395B1 (ko) 2008-11-11
TW200508876A (en) 2005-03-01
EP1639481A1 (de) 2006-03-29
CN1813248A (zh) 2006-08-02
JP5275414B2 (ja) 2013-08-28
US7120708B2 (en) 2006-10-10
TWI296762B (en) 2008-05-11

Similar Documents

Publication Publication Date Title
DE602004010399T2 (de) Neuadressierbare virtuelle dma-steuer und statusregister
DE69023018T2 (de) Prozessor-Unterbrechungssteuerung.
DE69021899T2 (de) DMA-Steuerung.
DE69226928T2 (de) Verfahren und Direktspeicherzugriffssteuerung zum asynchronen Daten-Lesen von einem -Schreiben in einen Speicher mit verbessertem Durchfluss
DE4010384C2 (de) Verfahren zur Burst-Datenübertragung
DE69124946T2 (de) Bidirektionaler FIFO-Puffer zur Schnittstellenbildung zwischen zwei Bussen
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE2744531C2 (de) Anordnung zur Auswahl von Unterbrechnungsprogrammen in einer Datenverarbeitungsanlage
DE69031367T2 (de) Blockübertragungs- und Koprozessorschnittstellenbefehl
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69031547T2 (de) Befehlsausgabe für ein Rechnersystem
DE10048072A1 (de) Linklisten-DMA-Descriptor-Architektur
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE60211452T2 (de) DMA-Übertragung von Daten und Prüfinformation zu und von einem Datenspeicherungsgerät
WO2005073865A2 (de) Vorrichtung zur datenübertragung zwischen speichern
DE2523372A1 (de) Eingabe/ausgabe-anschlussteuereinrichtung
DE69219848T2 (de) Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE69127771T2 (de) Datenübertragungssteuerungsvorrichtung
DE69427512T2 (de) Direktspeicherzugriffssteuerung
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE69027919T2 (de) Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher
DE69726400T2 (de) Festkörper-datenprozessor mit vielseitiger mehrquellen-unterbrechungsorganisation
DE69429214T2 (de) Verfahren und Gerät zur Ausführung eines Kommunikationsprotokolls infolge einer Unterbrechung

Legal Events

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