DE3936339C2 - DMA-Controller - Google Patents
DMA-ControllerInfo
- Publication number
- DE3936339C2 DE3936339C2 DE3936339A DE3936339A DE3936339C2 DE 3936339 C2 DE3936339 C2 DE 3936339C2 DE 3936339 A DE3936339 A DE 3936339A DE 3936339 A DE3936339 A DE 3936339A DE 3936339 C2 DE3936339 C2 DE 3936339C2
- Authority
- DE
- Germany
- Prior art keywords
- dma
- transfer
- channel
- channel change
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
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 Erfindung betrifft einen DMA-Controller.
Der Controller für direkten Speicherzugriff (DMA), be
sitzt nicht nur eine Datenerfassungs- (oder Trichter-)
Funktion hat, sondern er ist auch dazu fähig, Wechsel
zwischen Kanälen gemäß Prioritätsstufen durchzuführen.
Das DMA-Übertragungssystem beinhaltet ein doppeltes
Adressierungsmodus-System, das erst die Adresse des
Quellgerätes ausgibt, um Daten von dem Quellgerät zum
DMA-Übertragungsdaten-Zwischenspeicher-Register (tempo
räres Register) eines DMA-Controllers zu übertragen, und
danach die Adresse des Zielgerätes, um Daten vom tempo
rären Register zum Ziel zu übertragen. Einige der DMA-
Controller mit doppeltem Adressierungsmodus haben Daten
erfassungsfunktion. Zum Beispiel werden dort, wo ein
32-bit-DMA-Controller Daten von einer Input/Output-
Einheit mit einem 8-bit-Ausgang zu einem Speicher mit
einer 32-bit-Datenbusbreite überträgt, vier Bytes Daten
zu einem temporären Register als Antwort auf DMA-
Anforderungen übertragen, und dann all die 32-bit Daten
auf einmal zu vorbestimmten Regionen des Speichers über
tragen. Dort, wo Daten von dem 32-bit-Speicher zu der
8-bit-Ausgang-I/O-Einheit übertragen werden, werden zu
dem einen notwendigen Byte Daten als Antwort auf die er
ste DMA-Anforderung noch 3 Bytes Daten zusätzlich vom
Speicher zum temporären Register übertragen, und Über
tragungen von dem temporären Register zur I/O-Einheit in
den folgenden DMA-Anforderungen ausgeführt.
Der DMA-Controller, der eine solche Datenerfassungsfunk
tion hat, ist mit temporären Registern ausgestattet, die
je einem Kanal dienen, so daß ein Kanalwechsel während
der Datenübertragung sofort durchgeführt wird. Dieses
wird durch die Tatsache ermöglicht, daß die verbleiben
den Daten beim Kanalwechsel während der Datenerfassung
in dem temporären Register zwischengespeichert werden.
Ein konventioneller 2-Kanal-DMA-Controller wird in Bezug
auf Fig. 8-13 beschrieben werden.
Fig. 8 zeigt ein System mit einem konventionellen DMA-
Controller. Dieses System beinhaltet einen 32-bit-DMA-
Controller 1, eine 32-bit-zentrale-Verarbeitungseinheit
(CPU) 2, die erste 8-bit-Input/Output-Einheit (I/O) 3,
die zweite 8-bit-Input/Output-Einheit (I/O) 4, einen
Speicher 5 mit einer 32-bit-Datenbusbreite, einen 32-
bit-Datenbus, um den DMA-Controller 1, die CPU 2 und den
Speicher 5 zu verbinden, den ersten 8-bit-Datenbus 7, um
die erste 8-bit-I/O-Einheit 3 und den 32-bit-Datenbus 6
zu verbinden, den zweiten 8-bit-Datenbus 8, um die zwei
te 8-bit-I/O-Einheit 4 und den 32-bit-Datenbus, die er
sten und zweiten 32-bit (vier Byte) langen temporären
Register 11 und 12, die in dem DMA-Controller 1 bereit
gestellt werden, und die erste und zweite Speicherregion
51 und 52 in dem Speicher 5 zu verbinden.
Der DMA-Controller 1 ist programmiert, DMA-Übertragungen
zwischen der I/O-Einheit 3 und der Speicherregion 51
(der Anfangsadresse 1a) und zwischen der I/O-Einheit 4
und der Speicherregion 52 mit der Hilfe jedes der tempo
rären Register 11 und 12 vorzunehmen, und den DMA-
Übertragungen auf der Seite der I/O-Einheit 4 eine höhe
re Priorität als auf der Seite der I/O-Einheit 3 zuzu
ordnen. Zum Zweck der Vereinfachung wird der Weg von der
I/O-Einheit 3 zu dem temporären Register 11 zur Spei
cherregion 51 im folgenden "Kanal 1" genannt, und wird
der Weg von der I/O-Einheit 4 zum temporären Register 12
zur Speicherregion 52 im folgenden "Kanal 2" genannt.
Fig. 9 zeigt in einem Blockdiagramm den essentiellen
Teil des konventionellen DMA-Controllers 1, der eine
Übertragungsanforderungskontrolle, um DMA-Übertragungs
anforderungen sowohl von der I/O-Einheit 3, der I/O-
Einheit 4 oder auch von der Software (Speicher-zu-
Speicher-DMA-Übertragung) entsprechend vorbestimmter
Prioritätsstufen für die Ausführung der DMA-
Anforderungen oder Kanalbezeichnungen zu kontrollieren;
Register 14 und 15, in die DMA-Kontrollinformation, wie
eine Quelladresse, eine Zieladresse, und ein I/O-zu-
Speicher-, Speicher-zu-I/O-, oder Speicher-zu-Speicher-
Übertragungsmodus durch die CPU 2 für jeden Kanal vor
der DMA-Übertragung gespeichert wird, und einen Selektor
16 beinhaltet, der auf ein Kanalbezeichnungssignal von
der Übertragungsanforderungskontrolle 13 antwortet, um
die gewünschte Kontrollinformation auszuwählen.
Weiterhin beinhaltet es eine DMA-Übertragungskontrol
logik 17, die ein DMA-Anforderungssignal von der Über
tragungsanforderungskontrolle 13 empfängt und die DMA-
Übertragungen, wie Ausgabe von Quell- und Zieladressen
und temporären Registern, als Antwort zu DMA-
Kontrollinformationen aus Registern 14 und 15, durch den
Selektor 16 kontrolliert, und einen Selektor 18, der auf
ein Kanalbezeichnungssignal von der Übertragungsanforde
rungskontrolle 13 antwortet, um die Ausgabe der DMA-
Übertragungslogik 17 zu entweder dem temporären Register
11 oder 12 schalten.
Fig. 10-13 illustrieren das Zeitverhalten von ver
schiedenen DMA-Übertragungen in dem obigen konventionel
len System, wobei RQ1-1, RQ1-2, . . . die DMA-Anfor
derungen in dem Kanal 1 repräsentieren, RQ2-1, RQ2-2,
. . . die DMA-Anforderungen in dem Kanal 2, 1-R, 2-R, . . .
Übertragungszyklen von der 1/O-Einheit 3 oder der Spei
cherregion 51 zum temporären Register 11, 1-W, 2-W, . . .
Übertragungszyklen von dem temporären Register 11 zur
Speicherregion 51 oder zur I/O-Einheit 3 repräsentieren.
Während der Operation wird vor allem die Erklärung in
bezug zu Fig. 10-11 gemacht, in denen keine Kanal
wechselanforderungen auftauchen; z. B. treten keine
DMA-Anforderungen im dem Kanal 2 während der DMA-
Übertragung in dem Kanal 1 auf.
Fig. 10 illustriert den Fall, wo DMA-Übertragungen von
der I/O-Einheit 3 zur Speicherregion 51 durchgeführt
werden. Die Übertragungsanforderungskontrolle 13 antwor
tet zur DMA-Anforderung RQ1-1, jeden Kanalselektor 16,
18 auf Kanal 1 zu setzen, und die DMA-Übertragungs
kontrollogik 17 überträgt über Datenbusse 7, 6 8-Bit-
Daten zu dem 8-bit-Register 1A des temporären Registers
11. Danach antwortet es sequentiell auf die DMA-
Anforderungen RQ1-2, RQ1-3 und RQ1-4, die Daten sequen
tiell zu entsprechenden 8-bit-Registern 1B, 1C, und 1D
(2-R, 3-R, und 4-R) zu übertragen. Sobald die Daten zum
8-bit-Register 1D übertragen sind, werden die 32 Bit an
Daten, mit denen das temporäre Register 11 jetzt gefüllt
ist, alle auf einmal zum Speicher 51 an den Adressen 1a,
1b, 1c und 1d (1W) übertragen. Anschließend wird dieser
Zyklus wiederholt. Der Kanalwechsel wegen einer Kanal
wechselanforderung, die während einer Periode zwischen
den Übertragungszyklen 1-R und 3-R stattfindet, wird
"Kanalwechsel während der Datenerfassung" genannt.
Fig. 11 zeigt den Fall, in dem DMA-Übertragungen von
der Speicherregion 51 zur I/O-Einheit 3 durchgeführt
werden. Als Antwort zur ersten DMA-Anforderung RQ1-1,
werden 32 Bit an Daten auf einmal von der Speicherregion
51 an den Adressen 1a, 1b, 1c und 1d zu dem temporären
Register 11 (1-R) übertragen. Nur 8 Bit der Daten, die
zu dem 8-bit-Register 1A des temporären Registers 11
übertragen wurden, werden zur I/O-Einheit 3 (1-W) über
tragen. Dann werden 8 Bit Daten sequentiell zur I/O-
Einheit 3 aus den entsprechenden 8-bit-Registern 1B, 1C
und 1D des temporären Registers 11, entsprechend den
DMA-Anforderungen RQ1-2, RQ1-3 und RQ1-4 (2-W, 3-W und
4W) übertragen. Der Kanalwechsel infolge einer Kanal
wechselanforderung, die während einer Periode zwischen
den Übertragungszyklen 1-W und 3-W gemacht wird, wird
"Kanalwechsel während der Datenerfassung" genannt.
Die Fig. 12-13 illustrieren die Fälle, bei denen
eine Kanalwechselanforderung während der Datenerfassung
für einen Kanalwechsel auftritt; z. B. findet eine DMA-
Anforderung in Kanal 2 zum Wechsel zu Kanal 2 während
der Datenerfassung in der DMA-Übertragung im Kanal 1
statt.
Fig. 12 illustriert den Fall in dem eine Kanalwechsel
anforderung RQ2-1 während des zweiten Datentransfers
(2-R) von der I/O-Einheit 3 zum temporären Register 11
in der DMA-Übertragung von der I/O-Einheit 3 zur Spei
cherregion 51 stattfindet. Sobald der 2-R Zyklus beendet
ist, schaltet die Übertragungsanforderungskontrolle 13
die entsprechenden Selektoren 16 und 18 auf Kanal 2, um
die DMA-Übertragung 10 durchzuführen. An diesem Punkt
benutzt der Kanal 2 das ihm dienende temporäre Register
12. Falls die Kanal-1-DMA-Anforderung RQ1-3 immer noch
besteht, wenn alle Kanal-2-DMA-Anforderungen RQ2 enden,
wird ein Wechsel zu Kanal 1 durchgeführt, um die DMA-
Übertragung (3-R und folgende Übertragungen) durchzufüh
ren.
Fig. 13 illustriert den Fall, in dem eine Kanalwech
selanforderung RQ2-1 während einer zweiten Datenübertra
gung (2-W) vom temporären Register 11 zur I/O-Einheit 3
in der DMA-Übertragung von der Speicherregion 51 zur
I/O-Einheit 3 stattfindet. Der Kanalwechsel wird in der
gleichen Weise, wie in Fig. 12 durchgeführt.
Wie oben beschrieben wurde, muß die Anzahl der temporä
ren Register in den konventionellen DMA-Controllern
gleich der der Kanäle sein, was in einer angewachsenen
Chipgröße resultiert.
Als Stand der Technik ist dabei die DE 31 29 296 A1 und
die US-Firmenschrift INTEL: 'Mikroprocessor and Periphe
ral Handbook'; Vol. 1, 1987, S. 2-205-2-222 zu nennen.
Während letztere Schrift zwar einen DMA-Controller mit
einem temporären Register beschreibt, ist dieser jedoch
nicht zu einem Kanalwechsel eingerichtet.
In der genannten deutschen Schrift hingegen sind die
Zellen des temporären Registers eindeutig einer der
Schnittstellen zugeordnet, so daß für den Fall das Daten
von der I/O-Einheit an den Speicher übertragen werden
und kein Kanalwechsel stattfindet, die Daten an das tem
poräre Register 8 Bit-Weise übertragen und dann, wenn
sich die Daten zu 32 Bit addieren, diese Daten auf ein
mal an die Zieleinrichtung übertragen. Weiter werden so
gar für den Fall, daß ein Kanalwechsel stattfindet, be
vor die Daten erfaßt wurden, Daten aus dem vorherigen
Kanal in dem temporären Register belassen, da ein tempo
räres Register für jeden der Kanäle vorgesehen ist. Da
her werden die erfindungsgemäßen Probleme nicht auftre
ten und keine Ansätze zu einer Lösung geboten.
Demzufolge ist es Aufgabe der Erfindung, einen DMA-
Controller mit Datenerfassungsfunktion zu schaffen, der
bei einer Datenübertragung von einer I/O-Einheit zum
Speicher, oder bei einer Übertragung in umgekehrter
Richtung zum Kanalwechsel mit einem einzelnen temporären
Register, unabhängig von der Anzahl der Kanäle, fähig
ist.
Dabei wird ein DMA-Controller geschaffen, der ein ein
zelnes temporäres Register, das für jeden Kanal benutzt
wird, und eine Kanalwechselkontrolleinheit beinhaltet,
um Kanalwechsel während der Datenerfassung in der Über
tragung von der I/O-Einheit zum Speicher, nachdem all
die Daten, die von der I/O-Einheit zum temporären Regi
ster übertragen wurden, zu einer bestimmten Region eines
Speichers übertragen wurden, durchzuführen, aber sofort
einen Kanalwechsel während der Datenerfassung in der
Übertragung vom Speicher zur I/O-Einheit durchzuführen,
so daß DMA-Übertragungen, in denen Kanalwechsel während
der Datenerfassung durchgeführt werden, ohne Schwierig
keiten durchgeführt werden können, und so ein Anwachsen
der Chipgröße verhindert wird.
Zudem wird ein DMA-Controller geschaffen, der eine Ka
nalwechselkontrolleinheit beinhaltet, die keinen Kanal
wechsel durchführt, bis die Datenerfassung und ihre
Übertragung abgeschlossen sind, wenn es Kanalwechselan
forderungen während der Datenerfassung und eine DMA-
Anforderung in dem gleichen Kanal, wie während der Da
tenerfassung gibt, die aber den gleichen Kanalwechsel
wie oben beschrieben durchführt, wenn es keine DMA-
Anforderungen in dem gleichen Kanal gibt, und so nicht
nur ein Anwachsen in der Chipgröße verhindert, sondern
auch die Übertragungseffizienz steigert.
Weitere Merkmale und Vorteile der Erfindung ergeben sich
aus den Ansprüchen und der Beschreibung, in der ein Aus
führungsbeispiel der Erfindung anhand einer Zeichnung
erläutert wird. Dabei zeigt bzw. zeigen:
Fig. 1 ein Blockdiagramm eines Systems, das
einen DMA-Controller beinhaltet;
Fig. 2a ein Blockdiagramm des essentiellen
Teils eines DMA-Controllers;
Fig. 2b eine Tabelle, die den Zusammenhang
zwischen Input- und Outputbedingungen
des DMA-Controllers aus Fig. 2a
zeigt;
Fig. 3 und 4 Diagramme des Zeitverhaltens, die die
Operationen des DMA-Controllers aus
Fig. 2a zeigen;
Fig. 5a ein Blockdiagramm des essentiellen
Teils eines DMA-Controllers;
Fig. 5b eine Tabelle, die den Zusammenhang
zwischen Input- und Outputbedingungen
des DMA-Controllers aus Fig. 5a
zeigt;
Fig. 6 und 7 Diagramme des Zeitverhaltens, die die
Operationen des DMA-Controllers aus
Fig. 5a zeigen;
Fig. 8 ein Blockdiagramm eines Systems, das
einen konventionellen DMA-Controller
enthält;
Fig. 9 ein Blockdiagramm des essentiellen
Teils eines konventionellen DMA-
Controllers; und
Fig. 10-13 Diagramme des Zeitverhaltens, die die
Operationen des konventionellen DMA-
Controllers zeigen.
In Fig. 1 sind die Komponenten 1-8, 11, 51 und 52
identisch mit oder gleichwertig zu denen der Fig. 8. Es
sollte jedoch beachtet werden, daß das temporäre Regi
ster 12 aus Fig. 8 entfernt wurde, und daß das einzelne
temporäre Register 11 für beide Kanäle 1 und 2 benutzt
wird.
In Fig. 2a sind die Komponenten 11 und 13-17 identisch
mit oder gleichwertig zu denen der Fig. 9. Es sollte je
doch beachtet werden, daß das temporäre Register 11 und
der Selektor 18 der Fig. 9 durch eine Kanalwechselkon
trolleinheit 19 ersetzt werden. Die Übertragungsanforde
rungskontrolle 13 gibt eine gleicher-Kanal-DMA-Anfor
derung und eine Kanalwechselanforderung anstelle der
konventionellen DMA-Anforderung aus, und erzeugt eine
Kanalbezeichnung als Antwort zu einer Kanalwechselauto
risierung von der Kanalwechselkontrolleinheit 19. Der
Selektor 16 hat einen Kontakt 16a, um DMA-Kontrollin
formation zur DMA-Übertragungskontrollogik 17 in der
gleichen Weise, wie bei dem Konventionellen zu schalten,
und einen Kontakt 16b, um Übertragungsmodusinformation
zu schalten, die für die Kanalwechselkontrolleinheit 19
notwendig ist. Die DMA-Übertragungskontrollogik 17 ver
sorgt die Kanalwechselkontrolleinheit 19 mit einem Sig
nal, das anzeigt, daß Datenerfassung sich noch in der
Durchführung befindet, und einem Signal, daß die Beendi
gung des Kanalwechsels anzeigt, und erhält eine Kanal
wechseldurchführungsanforderung und eine DMA-Anforderung
von der Kanalwechselkontrolleinheit 19. Das zeigt an,
daß als Antwort zu einem Kanalwechselautorisierungssig
nal die Übertragungsanforderungskontrolle 13 Kanäle
wechselt und die gleicher-Kanal-Anforderung bestätigt,
wenn dies noch nicht geschehen ist, und Kanalwechselan
forderungen verneint. Dann erhält die DMA-Übertragungs
kontrollogik 17 die gewechselte DMA-Kontrollinformation
und DMA-Anforderung und führt DMA-Übertragungen zu einem
neuen Kanal mit der Hilfe desselben temporären Registers
11 aus.
Die Kanalwechselkontrolleinheit 19 beinhaltet ein AND-
Gatter 19a, das von dem Kontakt 16b ein Signal mit "H"-
Pegel im I/O-zu-Speicher-Übertragungsmodus und von der
DMA-Übertragungskontrollogik ein Signal mit "H"-Pegel
während der Datenaufnahme empfängt; ein AND-Gatter 19b,
das ein Signal von dem AND-Gatter 19a und einen "H"-
Pegel, der eine Kanalwechselanforderung von der Übertra
gungsanforderungskontrolle 13 anzeigt, erhält und die
DMA-Übertragungskontrollogik 17 mit einem "H"-Pegel ver
sorgt, der eine Kanalwechseldurchführungsanforderung an
zeigt; ein AND-Gatter 19c, das ein invertiertes Signal
der Kanalwechselanforderung und einen "H"-Pegel, der ei
ne gleicher-Kanal-DMA-Anforderung anzeigt, erhält, und
die DMA-Übertragungskontrollogik 17 mit einem "H"-Pegel
versorgt, der eine DMA-Anforderung anzeigt; ein AND-
Gatter 19d, das ein invertiertes Signal von dem AND-
Gatter 19a und eine Kanalwechselanforderung empfängt;
und ein OR-Gatter 19e, das ein Signal vom AND-Gatter 19d
und einen "H"-Pegel, der ein Kanalwechseldurchführungs
beendigungssignal anzeigt, empfängt und die Übertra
gungsanforderungskontrolle 13 mit einem "H"-Pegel ver
sorgt, der ein Kanalwechselautorisierungssignal anzeigt.
Die entsprechenden Eingabebedingungen und die zugehöri
gen Ausgangszustände werden in Fig. 2b gezeigt.
Das Zeitverhalten von verschiedenen DMA-Übertragungen
wird in den Fig. 3 und 4 gezeigt, worin RQ1-1, RQ1-2,
. . . .; RQ2-1, RQ2-2, . . .; und 1-R, 2-R, . . .; und 1-W,
2-W, . . . gleichwertig denen der Fig. 10-13 sind, und
1-T und 2-T Transferzyklen, die für diese Realisation
nötig sind, sind.
Fig. 3 illustriert die DMA-Übertragungen von der I/O-
Einheit 3 zu der Speicherregion 51, bei der eine Kanal
wechselanforderung RQ2-1 zur Zeit der zweiten Datenüber
tragung 2-R von der I/O-Einheit 3 zum temporären Regi
ster 11 stattfindet. Sobald der 2-R Zyklus vollendet
ist, werden die Daten, die zu den 8-bit-Registern 1A und
1B des temporären Registers 11 von der I/O-Einheit 3
übertragen wurden, zur Speicherregion 51 zu den Adressen
1a und 1b (1-T) übertragen und anschließend zum Kanal 2
um eine DMA-Übertragung 10 durchzuführen. Dadurch wird
der Gebrauch des allgemeinen temporären Registers 11 in
dem Kanal 2 die DMA-übertragenen Daten im Kanal 1 nicht
beeinflußen. Falls die DMA-Anforderung RQ1-3 im Kanal 1
weiterhin existiert, wenn die DMA-Anforderungen RQ2 im
Kanal 2 enden, wird ein Wechsel zum Kanal 1 ausgeführt,
um die dritte DMA-Übertragung (3-R) und folgende DMA-
Übertragungen durchzuführen. Beim Übertragungszyklus 1-W
zum Speicher 5 jedoch werden nur 16 Bit an Daten, die zu
den 8-bit-Registern 1C und 1D des temporären Registers
11 übertragen wurden, zur Speicherregion 51 an den
Adressen 1c und 1d als Antwort zu der dritten und vier
ten DMA-Anforderung übertragen.
Fig. 4 illustriert die DMA-Übertragung von dem Speicher
51 zu der I/O-Einheit 3 bei der eine Kanalwechselanfor
derung RQ2-1 während der zweiten Datenübertragung (2-W)
vom temporären Register 11 zur I/O-Einheit 3 stattfin
det. Sobald Zyklus 2-W beendet ist, wird ein Wechsel zum
Kanal 2 durchgeführt, um eine DMA-Übertragung 10 durch
zuführen. Diese DMA-Übertragung 10 löscht die Daten, die
in dem 8-bit-Register 10 und 1D des Kanals 1 verbleiben.
Dieses bereitet jedoch keine Probleme, weil die Daten
nicht Antwort auf die entsprechende DMA-Anforderung
sind. Wenn immer noch die DMA-Anforderung RQ1-3 im Kanal
1 besteht, wenn alle DMA-Anforderungen RQ2 des Kanal 2
enden, wird ein Wechsel zu Kanal 1 vorgenommen. Da an
diesen Punkt keine Daten des Kanals 1 im temporären Re
gister 11 verblieben sind, werden Daten von der Spei
cherregion 51 an den Adressen 1c und 1d zu den 8-bit-
Registern 1C und 1D des temporären Registers 11 (2-T)
transferiert, und anschließend zur I/O-Einheit 3 (3-W,
4-W). Obwohl eine kontinuierliche DMA-Anforderung im
gleichen Kanal zusammen mit einer Kanalwechselanforde
rung in den verschiedenen DMA-Übertragungen beschrieben
wurde, wird der gleiche Kanalwechsel auch während der
Datenerfassung für unterbrechende DMA-Anforderungen zu
sammen mit Kanalwechselanforderungen zwischen den unter
brechenden DMA-Anforderungen durchgeführt.
Die Übertragungseffizienz konnte in einigen Fällen ge
steigert werden, indem man die Bedingungen, unter denen
Kanalwechsel während der Datenerfassung akzeptiert und
durchgeführt werden, so festsetzt, daß kein Kanalwechsel
durchgeführt wird, wenn es eine DMA-Anforderung in dem
gleichen Kanal, wie während der Datenerfassung zusammen
mit einer Kanalwechselanforderung gibt, aber ein Kanal
wechsel in der gleichen Weise wie in der obigen Realisa
tion durchgeführt wird, wenn es keine DMA-Anforderung in
dem gleichen Kanal gibt.
Fig. 5a zeigt in einem Blockdiagramm den essentiellen
Teil des DMA-Controllers 1 um eine solche Funktion ent
sprechend zu einer anderen Realisation durchzuführen.
Dieser DMA-Controller ist identisch mit dem von Fig. 2a,
außer daß eine Kanalwechselkontrolleinheit 20 sich von
der Kanalwechselkontrolleinheit 19 in der inneren Struk
tur unterscheidet. Die Kanalwechselkontrolleinheit 20
beinhaltet ein AND-Gatter 20a, das vom Kontakt 16b ein
Signal mit "H"-Pegel in dem I/O-zu-Speicher-
Übertragungsmodus und von der DMA-Übertragungs
kontrollogik 17 ein Signal mit "H"-Pegel während der Da
tenerfassung erhält; ein AND-Gatter 20b, daß von der
Übertragungsanforderungkontrolle 13 einen "H"-Pegel er
hält, der eine gleicher-Kanal-DMA-Anforderung anzeigt;
ein AND-Gatter 20c, das Signale von den Gattern 20b und
20a erhält; ein AND-Gatter 20d das ein Signal, das an
zeigt, daß sich Datenerfassung in der Durchführung be
findet, und gleicher-Kanal-DMA-Anforderungen empfängt;
ein AND-Gatter 20e, das ein invertiertes Signal der Ka
nalwechselanforderung und der gleichen-Kanal-DMA-Anfor
derung erhält; ein OR-Gatter 20f, das Signale von den
AND-Gattern 20d und 20e erhält und die DMA-Über
tragungskontrollogik 17 mit einem "H"-Pegel, der eine
DMA-Anforderung anzeigt, versorgt; ein AND-Gatter 20g,
das ein invertiertes Signal vom AND-Gatter 20a und ein
Signal vom AND-Gatter 20b erhält; ein AND-Gatter 20h,
das ein invertiertes Signal des Signals, das anzeigt,
daß die Datenerfassung in der Durchführung ist und der
Kanalwechsel- und gleicher-Kanal-DMA-Anforderungen, emp
fängt; ein OR-Gatter 20i, das Signale von den AND-
Gattern 20g und 20h empfängt und einen "H"-Pegel, der
ein Kanalwechseldurchführungsabschlußsignal von der
DMA-Übertragungskontrollogik 17 anzeigt, erhält, und die
Übertragungsanforderungskontrolle 13 mit einem "H"-Pegel
versorgt, der ein Kanalwechselautorisierungssignal an
zeigt. Das heißt, daß um zu bestimmen, ob es eine glei
cher-Kanal-DMA-Anforderung zusammen mit einer Kanalwech
selanforderung gibt, die AND-Gatter 20b, 20d und 20h und
das OR-Gatter 20f zur Kanalwechselkontrolleinheit 19 der
ersten Realisation hinzugefügt werden und die Ausgabe
des AND-Gatters 20h mit der Eingabe des OR-Gatters 20i
verbunden ist.
Die entsprechenden Eingabebedingungen und die dazugehö
rigen Ausgabezustände sind in Fig. 5b gezeigt.
Das Zeitverhalten von verschiedenen DMA-Übertragungen in
der Realisation wird in Fig. 6 für Übertragungen von der
I/O-Einheit 3 zur Speicherregion 51 und Fig. 7 für Über
tragungen von der Speicherregion 51 zur I/O-Einheit 3
gezeigt.
In Fig. 3 und 6, und 4 und 7 zeigt ein Vergleich der
Übertragungszyklen in dem Kanal 1, daß der Zyklus 1-T in
Fig. 3 und der Zyklus 2-T in Fig. 4 in den Fig. 6 und 7
eliminiert sind, und damit die Übertragungseffizienz
vergrößert wird. Aus Fig. 5b ist ersichtlich, daß wenn
es keine gleicher-Kanal-Anforderungen gibt, die Kanal
wechsel in der gleichen Weise wie in der ersten Realisa
tion ausgeführt werden.
Obwohl die DMA-Controller, die nur zwei Kanäle haben,
oben beschrieben wurden, ist die Erfindung auf DMA-
Controller mit mehr Kanälen anwendbar, und diese benöti
gen nur ein temporäres Register 11 und eine Kanalwech
selkontrolleinheit 19 oder 20 unabhängig von der Anzahl
der Kanäle. Obwohl die Kanalwechselkontrolleinheiten 19
und 20 beschrieben wurden, indem spezifische Ausdrücke
benutzt wurden, können viele Änderungen und Modifikatio
nen vorgenommen werden, um die gleiche Funktion zu er
reichen. Das 32-bit (vier Byte) temporäre Register 11
kann entsprechend der Systemkonfiguration verändert wer
den.
Wie oben beschrieben, ist der DMA-Controller mit einem
einzelnen temporären Register versehen, das für jeden
Kanal benutzt wird, und einer Kanalwechselkontrollein
heit, um Kanalwechsel während der Datenerfassung in der
Übertragung von der I/O-Einheit zum Speicher durchzufüh
ren, nachdem all die Daten, die von der I/O-Einheit zum
temporären Register übertragen wurden, zu der vorbe
stimmten Region eines Speichers übertragen wurden, aber
sofort einen Kanalwechsel während der Datenerfassung in
der Übertragung vom Speicher zu der I/O-Einheit durchzu
führen, so daß die DMA-Übertragung in der der Kanalwech
sel während der Datenerfassung stattfindet, ohne Schwie
rigkeiten durchgeführt werden kann, und so ein Anwachsen
der Chipgröße verhindert wird.
Einer anderen Realisation zufolge, wird eine Kanalwech
selkontrolleinheit bereitgestellt, die den Kanalwechsel
nicht durchführt, bis die Datenerfassung und ihre Über
tragung beendet sind, wenn es eine Kanalwechselanforde
rung während der Datenerfassung und eine DMA-Anforderung
in dem gleichen Kanal wie während der Datenerfassung
gibt, aber den gleichen Kanalwechsel wie in der obigen
Realisation durchführt, wenn es keine DMA-Anforderungen
im gleichen Kanal gibt, und so nicht nur ein Anwachsen
der Chipgröße verhindert, sondern auch die Übertragungs
effizienz vergrößert.
Claims (2)
1. DMA-Controller, verbunden mit einem Datenbus (6),
der mit einer Prozessoreinheit (CPU 2) und einer Mehr
zahl von Peripherieeinheiten (z. B. I/O-Einheit 3, 4
und Speicher 5) verbunden ist, von denen eine beliebige
Ursprungseinheit oder Zieleinheit werden kann,
wobei der DMA-Controller eine Vielzahl von Kanal- Registern für jeden der Kanäle besitzt, in denen durch die Prozessoreinheit (CPU 2) vorbestimmte DMA-Steuerinformation für jeden der zuvor definier ten Kanäle enthalten ist, wie z. B. die Ursprungs- Adreßinformation, die Ziel-Adreßinformation und ei ne Übertragungs/Richtungs-Modus-Information, die anzeigt, aus welchem Ursprung zu welchem Ziel ein Transfer ausgeführt werden soll, und
der DMA-Controller Daten aus der Ursprungseinheit an eine Zieleinheit entsprechend der DMA- Steuerinformation aus den Kanal-Registern, die durch eine DMA-Anforderung (DMARQ1, DMARQ2, . . .) für jeden der Kanäle bestimmt wurden, überträgt,
wobei der DMA-Controller umfaßt:
wobei der DMA-Controller eine Vielzahl von Kanal- Registern für jeden der Kanäle besitzt, in denen durch die Prozessoreinheit (CPU 2) vorbestimmte DMA-Steuerinformation für jeden der zuvor definier ten Kanäle enthalten ist, wie z. B. die Ursprungs- Adreßinformation, die Ziel-Adreßinformation und ei ne Übertragungs/Richtungs-Modus-Information, die anzeigt, aus welchem Ursprung zu welchem Ziel ein Transfer ausgeführt werden soll, und
der DMA-Controller Daten aus der Ursprungseinheit an eine Zieleinheit entsprechend der DMA- Steuerinformation aus den Kanal-Registern, die durch eine DMA-Anforderung (DMARQ1, DMARQ2, . . .) für jeden der Kanäle bestimmt wurden, überträgt,
wobei der DMA-Controller umfaßt:
- - nur ein einzelnes dediziertes Register (ein tempo
räres Register (11)) mit einer Bit-Kapazität, die
mit der maximalen Bit-Anzahl aus den Daten-Bit-
Anzahlen übereinstimmt, die mit einem Mal mit jeder
der peripheren Einheiten übertragen werden können,
wobei eine Übertragungsanforderungsteuerung
(13), die die DMA-Anforderung für jeden der
Kanäle (DMA RQ1, DMA RQ2) aufnimmt,
- - ein Kanal-Register auswählt,
- - DMA-Kontrollinformation, die in dem ausge wählten Kanal-Register gespeichert ist, in einen Ausgabezustand versetzt und
- - weiter eine Kanalwechsel-Durchführungsan forderung zur Anforderung eines Kanalwech sels als Antwort auf einen von der empfan genen DMA-Anforderung ausgewählten Kanal wechsel ausgibt,
- - einer DMA-Übertragungssteuerung (17), die eine
DMA-Übertragung durch Steuern des dedizierten Regi
sters (des temporären Registers (11)) auf der Basis
der DMA-Steuerinformation aus einem ausgewählten
Kanal-Register (14, 15) und einer Kanalwechsel
steuerung (19) durchführt,wobei für den Fall, daß
- 1. die Übertragungs/Richtungs-Modusinformation aus den DMA-Steuerinformationen aus einem be stimmten Kanal-Register einen besonderen Modus anzeigt (I/O-Einheit→Speicher Übertragungs modus), der eine Übertragung aus einer peri pheren Einheit an eine andere periphere Ein heit anzeigt, die dazu in der Lage ist, größe re Anzahlen an Bit-Kapazität mit einem Mal zu übertragen als im Fall der vorigen peripheren Einheit, und
- 2. die Kanalwechsel-Steuerung (19) erfaßt, daß die DMA-Übertragungssteuereung (17) sich bei dem Durchführen der DMA-Übertragung in dem be stimmten Modus befindet und weiter die DMA- Kanalwechsel-Steuerung (19) die Kanalwechsel durchführungsanforderung aus der Übertragungs anforderungssteuerung (13) aufnimmt,
- 3. die Kanalwechselsteuerung (19) das Kanalwech seldurchführungsanforderungssignal ausgibt, um die DMA-Übertragungssteuerung (17) zu veran lassen, den Kanalwechsel für die Übertragung aller Daten vorzunehmen, die schon an das de dizierte Register (das temporäre Register (11)), an die Zieleinheit und weiter übertagen wurden,
- 1. die Kanalwechselsteuerung (19) ein Kanal wechselbeendigungssignal empfängt, das an zeigt, daß der Kanalwechselvorgang von der DMA-Übertragungssteuerung (17) beendet wurde, oder
- 2. für den Fall, daß die Übertragungsrichtungs-
Modus-Information aus der DMA-Steuerungsin
formation aus einem bestimmten Kanal-Register
nicht den spezifischen Modus anzeigt und
auch die Kanalwechselsteuerung (19) das Kanal wechseldurchführungsanforderungssignal aus der Übertragungsanforderungsteuerung (13) emp fängt, - 3. wird die Kanalwechselsteuerung (19) ein Kanal
wechselautorisierungssignal an die Übertra
gungsanforderungssteuerung (13) ausgeben, um
die Übertragungsanforderungssteuerung (13) zu
veranlassen, das Kanal-Register zu schalten,
um dadurch den Kanalwechsel zu autorisieren, und die DMA-Übertragungssteuerung (17) zu ver anlassen, die DMA-Übertragung entsprechend der DMA-Steuerungsinformation aus dem geschalteten Kanal-Register durchzuführen.
2. DMA-Controller nach Anspruch 1, dadurch gekenn
zeichnet, daß die Übertragungsanforderungssteuerung
(13),
weiter die gleichen DMA-Anforderungssignale ausgibt, wenn die Übertragungsanforderungssteuerung kontinuier lich die gleiche DMA-Anforderung empfängt, wobei für den Fall, daß
weiter die gleichen DMA-Anforderungssignale ausgibt, wenn die Übertragungsanforderungssteuerung kontinuier lich die gleiche DMA-Anforderung empfängt, wobei für den Fall, daß
- 1. die Kanalwechselsteuerung (19) erfaßt, daß die
DMA-Übertragungssteuerung (17) sich bei der
Durchführung der DMA-Übertragung befindet und
auch ein Gleicher-Kanal-DMA-Anforderungssignal aus der Übertragungsanforderungssteuerung (13) empfängt, - 2. die Kanalwechselsteuerung (19), die DMA- Übertragungssteuerung (17) dazu veranlaßt, ei ne DMA-Übertragung, der zur Zeit durchgeführt wird, ohne Ausgabe eines Kanalwechselanforde rungssignals an die DMA-Übertragungssteuerung (17) weiter durchzuführen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1083186A JP2550496B2 (ja) | 1989-03-30 | 1989-03-30 | Dmaコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3936339A1 DE3936339A1 (de) | 1990-10-04 |
DE3936339C2 true DE3936339C2 (de) | 2000-08-31 |
Family
ID=13795293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3936339A Expired - Fee Related DE3936339C2 (de) | 1989-03-30 | 1989-10-28 | DMA-Controller |
Country Status (5)
Country | Link |
---|---|
US (1) | US5031097A (de) |
JP (1) | JP2550496B2 (de) |
KR (1) | KR920008460B1 (de) |
DE (1) | DE3936339C2 (de) |
FR (1) | FR2645298B1 (de) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04363745A (ja) * | 1991-05-17 | 1992-12-16 | Toshiba Corp | Dmaコントローラ |
JPH0567039A (ja) * | 1991-09-06 | 1993-03-19 | Toshiba Corp | Dmaチヤネル制御装置 |
US5721954A (en) * | 1992-04-13 | 1998-02-24 | At&T Global Information Solutions Company | Intelligent SCSI-2/DMA processor |
US5598579A (en) * | 1994-04-25 | 1997-01-28 | Compaq Computer Corporation | System fpr transferring data between two buses using control registers writable by host processor connected to system bus and local processor coupled to local bus |
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 |
DE69614291T2 (de) * | 1995-03-17 | 2001-12-06 | Lsi Logic Corp., Fort Collins | (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung |
US5826106A (en) * | 1995-05-26 | 1998-10-20 | National Semiconductor Corporation | High performance multifunction direct memory access (DMA) controller |
JP2002041445A (ja) * | 2000-05-19 | 2002-02-08 | Matsushita Electric Ind Co Ltd | 高性能dmaコントローラ |
KR20020021739A (ko) * | 2000-09-16 | 2002-03-22 | 박종섭 | 디엠에이 제어기 |
US7380069B2 (en) * | 2004-11-19 | 2008-05-27 | Marvell International Technology Ltd. | Method and apparatus for DMA-generated memory write-back |
US7383363B2 (en) * | 2004-11-20 | 2008-06-03 | Marvell International Technology Ltd. | Method and apparatus for interval DMA transfer access |
KR100703406B1 (ko) * | 2005-02-04 | 2007-04-03 | 삼성전자주식회사 | Dma 제어 장치 및 방법 |
JP2007219641A (ja) * | 2006-02-14 | 2007-08-30 | Oki Electric Ind Co Ltd | ダイレクトメモリアクセスコントローラ |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3129296A1 (de) * | 1980-07-24 | 1982-03-04 | ITALTEL Società Italiana Telecomunicazioni S.p.A., 20149 Milano | "schaltungsanordnung zur schnelluebertragung von daten" |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1132265A (en) * | 1978-12-26 | 1982-09-21 | Minoru Inoshita | Direct memory access revolving priority apparatus |
US4750107A (en) * | 1985-01-07 | 1988-06-07 | Unisys Corporation | Printer-tape data link processor with DMA slave controller which automatically switches between dual output control data chomels |
US4847750A (en) * | 1986-02-13 | 1989-07-11 | Intelligent Instrumentation, Inc. | Peripheral DMA controller for data acquisition system |
-
1989
- 1989-03-30 JP JP1083186A patent/JP2550496B2/ja not_active Expired - Lifetime
- 1989-08-25 US US07/398,815 patent/US5031097A/en not_active Expired - Lifetime
- 1989-09-15 FR FR8912124A patent/FR2645298B1/fr not_active Expired - Fee Related
- 1989-10-28 DE DE3936339A patent/DE3936339C2/de not_active Expired - Fee Related
-
1990
- 1990-03-30 KR KR1019900004354A patent/KR920008460B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3129296A1 (de) * | 1980-07-24 | 1982-03-04 | ITALTEL Società Italiana Telecomunicazioni S.p.A., 20149 Milano | "schaltungsanordnung zur schnelluebertragung von daten" |
Non-Patent Citations (1)
Title |
---|
US-Firmenschrift: INTEL, Microprocessor and Pheripheral Handbook 1987, Vol. I, S. 2-205 bis 2-222 * |
Also Published As
Publication number | Publication date |
---|---|
US5031097A (en) | 1991-07-09 |
KR920008460B1 (ko) | 1992-09-30 |
KR900015009A (ko) | 1990-10-25 |
JPH02259861A (ja) | 1990-10-22 |
DE3936339A1 (de) | 1990-10-04 |
FR2645298B1 (fr) | 1993-05-07 |
JP2550496B2 (ja) | 1996-11-06 |
FR2645298A1 (fr) | 1990-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69032384T2 (de) | Datenpuffer | |
DE2702090C3 (de) | Datenverarbeitungssystem mit einem zentralen Prozessor | |
DE2641741C2 (de) | Rechenanlage aus mehreren miteinander über ein Sammelleitungssystem verbundenen und zusammenwirkenden Einzelrechnern und einem Steuerrechner | |
DE2251876C3 (de) | Elektronische Datenverarbeitungsanlage | |
DE3011552C2 (de) | ||
DE2760322C2 (de) | ||
EP0006164B1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE3936339C2 (de) | DMA-Controller | |
DE3131341A1 (de) | "pufferspeicherorganisation" | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE3300263A1 (de) | Schaltungsanordnung zur zuteilung des zugriffs zu einer auf anforderungsbasis gemeinsam benutzten sammelleitung | |
DE3502147C2 (de) | ||
DE1524166B1 (de) | Schaltungsanordnung zur Herstellung von Verbindungen zwischen mehreren unabhaengigen Teilen und einem gemeinsamen Teil einer Datenverarbeitungsanlage | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE2422732C2 (de) | Hierarchische Speicheranordnung | |
DE2454613C2 (de) | Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage | |
EP0185260B1 (de) | Schnittstelle für direkten Nachrichtenaustausch | |
CH634938A5 (de) | Einrichtung fuer die weiterleitung von speicherzugriffsanforderungen. | |
DE3787235T2 (de) | Übertragungssysteme mit Paketbildung. | |
DE102005040109B4 (de) | Halbleiterspeicherchip | |
DE69807738T2 (de) | Verfahren und vorrichtung zur byteausrichtung | |
EP0215276B1 (de) | Verfahren und Schaltungsanordnung zum Übertragen von Datensignalen an eine Gruppe von zu einem Ringleitungssystem gehörenden Steuereinrichtungen | |
EP0010135A1 (de) | Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchführen von Ein-/Ausgabeoperationen | |
DE2606295C3 (de) | Anordnung zur Übertragung von Zeichen zwischen über einen Multiplexkanal ansteuerbaren peripheren Einheiten und einem Arbeitsspeicher eines Zentralprozessors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |