Gebiet der Erfindung
-
Die Erfindung bezieht sich auf Direktspeicherzugriffs (DMA)-
Steuervorrichtungen und im besonderen auf eine Schaltung, um der DMA-
Steuervorrichtung eine Übertragungsfähigkeit von Speicher zu Speicher zu
ermöglichen, wenn diese nicht von vornherein schon in der DMA-Steuervorrichtung
vorhanden ist.
Hintergrund der Erfindung
-
Direktspeicherzugriffs (DMA)-Steuervorrichtungen sind in der Technik
weithin bekannt. Eine solche DMA-Steuervorrichtung ist der µPD71071 von NEC
Electronics Inc. Typischerweise ist eine DMA-Steuervorrichtung als eigener
integrierter Schaltungschip mit Ein-/Ausgabeanschlüssen konfiguriert. Die Funktion
dieser diskreten DMA-Steuervorrichtung besteht darin,
Hochgeschwindigkeitsdatenübertragungen zwischen peripheren Geräten und Speicher oder
zwischen zwei Speicherstellen zu ermöglichen, ohne daß die Zentraleinheit (CPU)
selbst zum Lesen oder Schreiben von Daten benötigt wird. Die DMA-
Steuervorrichtung wird vom Benutzer mit Instruktionen programmiert, die
bestimmte Daten erkennen, die von einer Stelle zu einer anderen übertragen
werden sollen. Wenn der DMA-Steuervorrichtung später eine einfache
Datenübertragungsaufforderung erteilt wird, führt die DMA-Steuervorrichtung die
programmierten Datenübertragungsinstruktionen aus. Dadurch kann die CPU in
der Zeit, in der die DMA-Steuervorrichtung Daten von einer Stelle zu einer anderen
überträgt, andere Operationen durchführen.
-
In einer standardisierten diskreten DMA-Steuervorrichtung wie dem
µPD71071 ist in der DMA-Steuervorrichtung ein Register enthalten, um Daten
während einer Übertragung von Speicher zu Speicher vorübergehend zu
speichern. Die Daten, die von einer Ursprungsspeicherstelle gelesen werden,
müssen im Register in der DMA-Speichervorrichtung vorübergehend gespeichert
werden, bis die Adresse der Zielspeicherstelle von der DMA-Speichervorrichtung
auf dem Adreßbus bereitgestellt worden ist, und die adressierte Speicherstelle
bereit ist, die Daten zu empfangen.
-
Wenn eine Übertragung vom Speicher zur Ein-/Ausgabe (I/O)-
Vorrichtung durchgeführt wird, können die Daten vom Ursprungsspeicher direkt
dem Eingang der I/O-Vorrichtung zugeführt werden, ohne die Daten
vorübergehend zu speichern, da keine Adreßbits für die Adressierung der
ausgewählten I/O-Vorrichtung benötigt werden. Dies wird Fly-by-DMA genannt.
-
Die Datenübertragung von einer I/O-Vorrichtung zu einer Speicherstelle
kann darüberhinaus auch ohne vorübergehendes Speichern der Daten
durchgeführt werden, denn sobald die Speicherstelle adressiert ist, können die
Daten von der I/O-Vorrichtung einfach direkt zur adressierten Stelle gelesen
werden, ohne daß sie von der CPU oder der DMA-Speichervorrichtung
vorübergehend gespeichert werden müssen.
-
In Mikroprozessoren, die eine CPU und eine DMA-Steuervorrichtung
enthalten, kann die durch die DMA belegte Chipfläche durch Weglassen der in der
DMA-Speichervorrichtung befindlichen Zwischenspeicherregister, die für
vorübergehendes Speichern von Daten während einer direkten Übertragung von
Speicher zu Speicher benutzt werden würden, eingespart werden. Diese
Mikroprozessoren, die keine vorübergehenden Register in der DMA-
Steuervorrichtung enthalten, wie zum Beispiel die Mikroprozessormodelle V40
(µPD70208) oder V50 (µPD70216) von NEC Electronics Inc., können direkte
Übertragungen vom Speicher zur I/O-Vorrichtung oder von der I/O-Vorrichtung
zum Speicher durchführen, aber keine direkten Übertragungen von Speicher zu
Speicher.
-
Einem Anwender, der bereit ist, einen kleinen Teil der CPU-Zeit und die
Register in der CPU zu verwenden, um Daten zwischen zwei Speicherstellen zu
übertragen, genügen in der Regel Mikroprozessoren ohne diese Fähigkeit zur
direkten Übertragung von Speicher zu Speicher. Für einige Benutzer ist es jedoch
von Bedeutung, daß die CPU nicht einmal diese begrenzte CPU-Verarbeitungszeit
benötigt, um Übertragungen von Speicher zu Speicher durchzuführen.
-
Folglich wird auf diesem Gebiet eine Schaltung benötigt, die es
Mikroprozessorei, wie zum Beispiel den Modellen V40 oder V50, schnell und
einfach ermöglichen kann, Fähigkeiten zur direkten Übertragung von Speicher zu
Speicher zu besitzen, ohne eine Manipulation der Daten durch die CPU
erforderlich zu machen.
Zusammenfassung der Erfindung
-
Für einen Mikroprozessor, der eine CPU und eine DMA-
Steuervorrichtung mit eingeschränkten Fähigkeiten enthält, die direkte
Übertragungen vom Speicher zur I/O-Vorrichtung und umgekehrt ermöglicht, aber
- da die DMA-Steuervorrichtung im Mikroprozessorchip Daten, die von einer
Speichervorrichtung gelesen werden, nicht vorübergehend speichern kann -, keine
direkten Übertragungen von Speicher zu Speicher, kann die folgende Schaltung
verwendet werden, um direkte Übertragungen von Speicher zu Speicher zu
ermöglichen. Die erfinderische Schaltung besteht aus einem Mikroprozessor, wie
zum Beispiel dem Modell V40 oder V50, der mit einem Adreßbus und einem
Datenbus verbunden ist. Ein externes Register ist mit dem Datenbus verbunden
und wird vom Mikroprozessor gesteuert, um Daten während direkten
Übertragungen von Speicher zu Speicher vorübergehend zu speichern.
-
Somit kann unter Verwendung dieser Konfiguration ein Mikroprozessor,
der durch Weglassen vorübergehender Register in der DMA-Steuervorrichtung
eine relativ kleine Chipfläche besitzt, immer noch den Bedürfnissen des normalen
Anwenders genügen; wenn ein Anwender jedoch zusätzlich die Fähigkeit zur
direkten Übertragung von Speicher zu Speicher wünscht, kann der Mikroprozessor
in Verbindung mit einem externen Register benutzt werden, um diese Fähigkeit zur
direkten Übertragung von Speicher zu Speicher zu ermöglichen.
Kurze Beschreibung der Zeichnungen
-
Fig. 1 zeigt eine bevorzugte Ausführungsform der Erfindung.
-
Fig. 2 zeigt ein Beispiel eines Initialisierungs-Ablaufdiagramms für eine
DMA-Einheit innerhalb eines Mikroprozessors.
Genaue Beschreibung der bevorzugten Ausführungsform
-
Fig. 1 zeigt eine bevorzugte Ausführungsform der Erfindung, die einen
Mikroprozessor 10 enthält, wie beispielsweise ein Modell V40, V50 oder einen
anderen Mikroprozessor. Eine genaue Beschreibung der Mikroprozessoren vom
Modell V40 und V50 kann den Datenblättern für diese Vorrichtungen von NEC
Electronics, Inc. entnommen werden. Der Mikroprozessor 10 beinhaltet eine
Zentraleinheit (CPU) 14 und eine Direktspeicherzugriffs (DMA)- Steuereinheit 18.
Bei einer bevorzugten Ausführungsform ist die CPU 14 ein Modell V20 oder V30
von NEC Electronics, Inc. Die DMA-Steuereinheit 18 kann bei einer bevorzugten
Ausführungsform eine modifizierte µPD7 1071 DMA-Steuereinheit sein.
-
Da kein internes Register für die vorübergehende Speicherung von
Daten während der Adressierung der Zielspeicheradreßstelle vorhanden ist,
enthält das Mikroprozessor-Modell V40 oder V50 eine DMA-Steuereinheit ohne die
Fähigkeit einer direkten Übertragung von Speicher zu Speicher. Die DMA-Einheit
im Modell V40 und V50 ermöglicht deshalb nur direkte Übertragungen vom
Speicher zur I/O-Vorrichtung und von der I/O-Vorrichtung zum Speicher. Diese
beiden Übertragungsarten werden im nachfolgenden Übertragungen vom Speicher
zur I/O-Vorrichtung genannt.
-
Um die Fähigkeit zur direkten Übertragung von Speicher zu Speicher zu
ermöglichen, hat ein externes 16-Bit- oder 8-Bit-Register 24 Datenanschlüsse, die
über Leitungen 27 mit dem Datenbus 26 verbunden sind, wie in Fig. 1 gezeigt. Ein
Typ eines 8-Bit-Registers, das verwendet werden kann, ist das Modell 74LS374.
Der Datenbus 26 kann auch als Adreßbus fungieren, wenn Daten und Adreßbits
gemultiplext werden. In der Ausführungsform von Fig. 1 wird ein getrennter
Adreßbus 28 benutzt. Die Steuerleitung 30 verbindet einen Dateneingabe-
Freigabeanschluß des Registers 24 mit einem passenden Anschluß des
Mikroprozessors 10, um dem Register 24 ein Freigabesignal zu liefern, um es dem
Register 24 zu ermöglichen, die Daten auf dem Datenbus 26 zu speichern. Die
Steuerleitung 32 verbindet einen Ausgabe-Freigabeanschluß des Registers 24 mit
einem passenden Anschluß des Mikroprozessors 10, um ein Freigabesignal an
das Register 24 zu liefern, um es dem Register 24 zu ermöglichen, die
vorübergehend gespeicherten Daten auf den Datenbus 26 auszugeben.
-
Eine erste Speichervorrichtung 34 ist über Leitungen 36 mit dem
Datenbus 26 und über Leitungen 38 mit dem Adreßbus 28 verbunden. Ein Chip-
Auswahlanschluß der Speichervorrichtung 34 ist über die Leitung 42 mit einem
Ausgang des Adreßdecoders 40 verbunden. Adreß-Eingangsanschlüsse des
Adreßdecoders 40 sind durch Leitungen 44 mit passenden Adreßbusleitungen
gekoppelt, um Chip-Auswahladreßsignale zu liefern.
-
Eine zweite Speichervorrichtung 46 ist über Leitungen 48 mit dem
Datenbus 26 und über Leitungen 50 mit dem Adreßbus 28 verbunden. Ein Chip-
Auswahlanschluß der Speichervorrichtung 46 ist durch Leitung 52 mit einem
Ausgang des Adreßdecoders 40 verbunden.
-
Beim Mikroprozessor 10 sind durch Leitungen 54 und 56 Adreß- und
Datenanschüsse mit dem Adreßbus 28 bzw. dem Datenbus 26 verbunden, in der
Annahme, daß es kein Multiplexing von Adreß- und Datenbits gibt.
-
Freigabe- und Chip-Auswahlsignale, die dem Register 24, dem Speicher
34 und dem Speicher 46 vom Mikroprozessor 10 zur Verfügung gestellt werden,
werden von der DMA-Einheit 18 je nach Bedarf erzeugt, um Daten gemäß einem
Datenübertragungsprogramm, das in der DMA-Einheit 18 gespeichert ist, vom
Speicher 34 zum Speicher 46 oder umgekehrt zu übertragen. In einer typischen
DMA-Einheit werden getrennte Kanäle innerhalb der DMA-Einheit verwendet, um
die Datenübertragung zwischen zwei Vorrichtungen zu steuern. Um einem Kanal
innerhalb der DMA-Einheit die Steuerung der Datenübertragung zu oder von einer
bestimmten Speichervorrichtung zu ermöglichen, sind typischerweise folgende
Eigenschaften in dem Kanal programmiert:
-
Startadresse für die Übertragung
-
Übertragungszählung
-
DMA-Betriebsmodus
-
Größe der Übertragung (Byte/Worteinheiten)
-
In der in Fig. 1 gezeigten Ausführungsform wird ein erster Kanal der
DMA-Einheit 18 für die Steuerung der Datenübertragung in oder aus dem ersten
Speicher 34 programmiert, während ein zweiter Kanal für die Steuerung der
Datenübertragung in oder aus dem zweiten Speicher 46 programmiert wird.
Zusätzliche Kanäle in der DMA-Einheit 18 können für Datenübertragungen von
Speicher zur I/O-Vorrichtung verwendet werden (z.B. Fly-by Dienst).
-
Um Daten von der Speichervorrichtung 34 zur Speichervorrichtung 46
direkt zu übertragen, muß die DMA-Einheit 18 unter Verwendung eines ersten
Kanals der DMA-Einheit 18 zuerst adressierte Daten von der Source-
Speichervorrichtung 34 in das Register 24 übertragen, wobei Register 24 effektiv
als I/O-Vorrichtung behandelt wird. Im nächsten Zyklus überträgt ein zweiter Kanal
der DMA-Einheit 18 den Inhalt des Registers 24 zur adressierten Stelle in der
Zielspeichervorrichtung 46, um die Übertragung von Speicher zu Speicher
abzuschließen. Wieder wird das Register 24 effektiv als I/O-Vorrichtung behandelt.
-
Außerdem können Daten von einer Stelle in der Speichervorrichtung 34
zu einer anderen Stelle in der Speichervorrichtung 34 übertragen werden, oder
Daten können unter Verwendung derselben Technik von einer Stelle in der
Speichervorrichtung 46 zu einer anderen Stelle in der Speichervorrichtung 46
übertragen werden.
-
Unter Verwendung der Konfiguration von Fig. 1 werden somit zwei
Kanäle der DMA-Einheit 18 verwendet, um diese Übertragungsfähigkeit von
Speicher zu Speicher zu erlangen. Bei den Mikroprozessormodellen V40 und V50
besitzt die DMA-Einheit 18 vier kanäle, es verbleiben also zwei Kanäle, die für den
Fly-by Dienst zur Verfügung stehen.
-
Ein eine DMA-Einheit enthaltender Mikroprozessor würde
normalerweise während der Initialisierungsvorgänge programmiert werden, um die
Kanäle innerhalb der DMA-Einheit zu initialisieren, um diese direkte Übertragung
von Speicher zu Speicher durchzuführen. Fig. 2 zeigt ein Flußdiagramm eines
beispielhaften Initialisierungsvorgangs, der von jedem durchschnittlichen
Fachmann leicht als Programm geschrieben werden könnte. Zuerst werden in
Schritt 60 die verschiedenen Register in der DMA-Einheit zurückgesetzt. In den
Schritten 64 und 66 werden dann die Startadressen und die
Übertragungszählungen für die ersten und zweiten Kanäle in die geeigneten
Register der DMA-Einheit geladen. In Schritt 68 werden dann die DMA-
Betriebsmodi ausgewählt. Im Fall von Fig. 2, die von der Verwendung eines
Mikroprozessormodells V40 oder V50 ausgeht, werden der Busmodus und der
Auto-Initialisierungsstatus ausgewählt. In den Schritten 70 und 72 werden
schließlich das Timing/die zeitliche Steuerung des Schreibvorgangs und die
Kanapriorität festgesetzt, gefolgt von einer Freigabe der DMA-Einheit.
-
Während die DMA-Einheit 18 auf eine entsprechende Anforderung hin
die Datenübertragung sowohl von Speicher zu Speicher als auch vom Speicher zur
I/O-Vorrichtung steuert, kann die CPU 14 während des Betriebs des
Mikroprozessors 10 andere Operationen durchführen, die keinen Datenbus 26
oder Adreßbus 28 benötigen. Die DMA-Einheit und die CPU kommunizieren
miteinander, um zu ermitteln, welche von beiden den Adreß- und den Datenbus
steuert.
-
Die DMA-Einheit 18 im Mikroprozessor 10 ist, wenn sie so
angeschlossen ist wie in Fig. 1 gezeigt, besonders bei der Übertragung von
Datenblöcken von einem Festplattenlaufwerk zum Hauptspeicher eines Systems
von Nutzen, so daß die CPU die neuen Daten im Hauptspeicher bearbeiten kann.
Die DMA-Einheit 18 wird außerdem häufig für eine erweiterte Speicherverwaltung
verwendet, bei der Datenblöcke von externem RAM zum Hauptspeicher übertragen
werden.
-
Somit wurden eine neuartige Schaltung sowie ein neuartiges Verfahren
zur Durchführung direkter Übertragungen von Speicher zu Speicher beschrieben.
-
Die oben beschriebene Erfindung kann auf verschiedene
Mikroprozessor-Typen angewendet werden und ist nicht auf die
Mikroprozessormodelle V40 oder V50 beschränkt. Auch wenn in Fig. 1 gezeigt ist,
daß eine DMA-Einheit innerhalb des Mikroprozessors angeschlossen ist, kann
diese DMA-Einheit eine eigene Einheit sein oder auch zusammen mit anderen
Arten von Schaltungskomplexen in eine integrierte Schaltung eingebaut sein.
-
Obwohl spezielle Ausführungsformen der vorliegenden Erfindung
gezeigt und beschrieben wurden, wird es Experten klar sein, daß Änderungen und
Modifikationen vorgenommen werden können, ohne von den allgemeineren
Aspekten der Erfindung abzuweichen, und deshalb sollen die beigefügten
Ansprüche im Rahmen ihres Schutzumfangs alle solchen Änderungen und
Modifikationen umfassen, die in den Bereich dieser Erfindung fallen.