DE3704056A1 - Peripherer dma-controller fuer datenerfassungssysteme - Google Patents
Peripherer dma-controller fuer datenerfassungssystemeInfo
- Publication number
- DE3704056A1 DE3704056A1 DE19873704056 DE3704056A DE3704056A1 DE 3704056 A1 DE3704056 A1 DE 3704056A1 DE 19873704056 DE19873704056 DE 19873704056 DE 3704056 A DE3704056 A DE 3704056A DE 3704056 A1 DE3704056 A1 DE 3704056A1
- Authority
- DE
- Germany
- Prior art keywords
- dma
- peripheral
- address
- memory
- signal
- 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.)
- Withdrawn
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Small-Scale Networks (AREA)
- Selective Calling Equipment (AREA)
Description
Die Erfindung bezieht sich auf Geräte und Techniken
zur Durchführung von DMA(direkter Speicherzugriff)-
Operationen in Rechnersystemen, insbesondere Datenerfassungssystemen,
die mit einer großen Anzahl von
peripheren Geräten verbunden sind, und ganz speziell
auf ein einzigartiges peripheres DMA-Controllersystem
zur Verwendung in Verbindung mit einem Rechner, der
Daten von einer großen Anzahl von Peripheriegeräten
sammelt und verarbeitet.
Als Hintergrund wird eine kurze Beschreibung der DMA
gegeben. Benutzerprogramme können so geschrieben werden,
daß sie einen Rechner in die Lage versetzen, auf
Speicherplätze zuzugreifen. Diese Speicherplätze können
Plätze im internen Speicher des Computers oder
Plätze in externen Speichern, wie Magnetplattenlaufwerken,
Floppydisklaufwerken, Tastaturen und einer
großen Anzahl weiterer Arten von Peripheriegeräten,
wie Analog-Digital-Wandlern, Digital-Analog-Wandlern,
Interfaceadaptern, usw., sein, wobei jeder wenigstens
eine Adresse besitzt, mittels der er angesprochen werden
kann. In vielen Fällen ist es sehr unerwünscht,
daß von dem Computerprogrammierer verlangt wird, daß
er alle Speicherplätze und alle Speicherübertragungen
verfolgt. Ein Speicherzugriff, der vom Computerprogrammierer
gesteuert und verfolgt wird, kann als programmierter
Speicherzugriff bezeichnet werden. Der programmierte
Computer erzeugt die Adressen auf einem Adreßbus,
der mit dem adressierten Peripheriegerät oder
Speicher verbunden ist. Oft ist es jedoch sehr angenehm,
wenn ein externe oder peripheres Gerät in der Lage
ist, eine Informationsübertragung von seinem eigenen
Speicherplatz auf einen anderen Speicherplatz, z. B.
den Computerspeicher, vollständig und fast automatisch
zu bewirken, so daß das Benutzerprogramm den Einzelheiten
der Informationsübertragung keine Aufmerksamkeit
schenken muß. Die Technik, mittels derer solche Informationsübertragungen
erreicht werden, wird als DMA
oder direkter Speicherzugriff bezeichnet.
Direkte Speicherzugriffstechniken werden üblicherweise
in Datenerfassungssystemen verwendet, in denen eine
große Anzahl von aufeinanderfolgenden Plätzen von einem
Speicher in den anderen oder von einer Gruppe nicht-
aufeinanderfolgender Plätze zu einer anderen Gruppe
aufeinanderfolgender Speicherplätze eines Rechners
übertragen werden soll. In Datenerfassungssystemen wird
üblicherweise unter DMA-Kontrolle ein und nur ein
Analog-Digital-Wandler zur Messung von einer Liste
von analogen Kanälen betrieben. Frühere DMA-Techniken
waren nicht geeignet, wenn es galt, eine große Anzahl
von Peripheriegeräten mit unterschiedlichen, nicht-
aufeinanderfolgenden Adressen zu betreiben, weil der
DMA-Controller, der die DMA-Operationen bewirkt, einen
eigenen Kanal für jedes solches Peripheriegerät benötigt.
Die Verwendung solcher mehrkanaliger DMA-Controller,
mit je einem Kanal für jedes Peripheriegerät, würde
so teuer werden, daß es sich von selbst verbietet.
Bisher benutzten die meisten Datenerfassungssysteme von
der Art, die die Erfassung von Daten von einer großen
Anzahl von Peripheriegeräten mit nicht aufeinanderfolgenden
Adressen erfordern, Abfrage- oder Unterbrechungstechniken.
Abfragetechniken haben den Vorteil einfacher
Hard- und Software und relativ hoher Arbeitsgeschwindigkeit,
unterliegen aber dem Nachteil, daß die gesammelten
Daten dem "Jitter" unterliegen, d. h. einer Unsicherheit
darüber, wann genau die abgefragten Ereignisse
eingetreten sind. Eine solche Unsicherheit kann wiederum
zu auffälligen Fehlern führen, die sehr schwer zu
entdecken und zu korrigieren sind. Abfragetechniken
machen einen "Hintergrundbetrieb" sehr schwierig.
("Hintergrundbetrieb" ist die Verwendung des Computers
dergestalt, daß die Datenerfassung in einer Weise abläuft,
die für das Betriebsprogramm nahezu "unsichtbar"
ist.) Abfragetechniken erfordern es üblicherweise,
daß ein bestimmter Computer ausschließlich dem Datenerfassungszweck
gewidmet wird. Dies ist oftmals unbefriedigend,
da es üblicherweise vorteilhaft wäre, den
Rechner gleichzeitig für andere Aufgaben zusätzlich zu
den Datenerfassungsaufgaben zu benutzen.
Datenerfassungstechniken, die mit Unterbrechungen arbeiten,
sind im allgemeinen langsamer als Abfragetechniken.
Dies liegt an der "überschüssigen" Software und
Zeit, die für jeden Unterbrechungsvorgang benötigt
wird. Unterbrechungstechniken können beachtliche
Schwierigkeiten mit der Buszuteilung verursachen, wenn
eine Vielzahl von Peripheriegeräten an dieses System
angeschlossen ist, die in der Lage sind, Unterbrechungen
auszulösen. Unterbrechungsabhängige Datenerfassungssysteme
machen es üblicherweise auch erforderlich,
daß ein Rechner ausschließlich der Datenerfassungsfunktion
gewidmet wird.
Die allgemeine Situation ist bisher folgende, daß es
keine hochbefriedigende Technik zur Durchführung einer
stabilen, sehr schnellen, wirtschaftlichen, weitgehend
"unsichtbaren" Datenerfassung von einer großen Anzahl
von Peripheriegräten mit nicht-aufeinanderfolgenden
Adressen gibt, bei der die verschiedenen, oben erwähnten
Schwierigkeiten ausgeschlossen werden können.
Somit ist es eine erste Aufgabe der Erfindung, ein
peripheres DMA-Controllersystem zu schaffen, das eine
relativ billige, bequeme Datenübertragung auf eine
große Anzahl von aufeinanderfolgenden Speicherplätzen
von einer großen Anzahl von Peripheriegeräten mit
nicht-aufeinanderfolgenden Adressen erlaubt.
Ein weiteres Ziel der Erfindung ist es, eine billige
und sehr schnelle Vorrichtung und Technik für DMA
von Gerät-zu-Speicher zu schaffen.
Erfindungsgemäß werden diese Aufgaben durch einen peripheren
DMA-Controller zum Anschluß an einen Prozessor
mit einem Datenbus, einem Adreßbus und einem internen
DMA-Controller mit einem DMA-Anforderungseingang und
einem DMA-Quittungsausgang gelöst. Der periphere DMA-
Controller umfaßt dabei einen Rahmenkartenspeicher
zur Speicherung von einer Vielzahl nicht-aufeinanderfolgender
Adressen von verschiedensten Peripheriegeräten,
die mit dem Datenbus und einer Schaltung zur
Verbindung und Trennung des Adreßbusses und des Datenbusses
mit dem Rahmenkartenspeicher verbunden sind.
Damit wird dem Prozessor erlaubt, die nicht-aufeinanderfolgenden
Adressen in aufeinanderfolgende Adressen
des Rahmenkartenspeichers zu laden. Der periphere DMA-Controller
umfaßt einen Adressenzähler, der mit den
Adreßeingängen des Rahmenkartenspeichers und einer
Sequenzerschaltung verbunden ist. Diese Sequenzerschaltung
erzeugt ein DMA-Anforderungssignal am DMA-
Anforderungseingang des internen DMA-Controllers
auf ein Übertragungsanforderungssignal von einer bestimmten
Quelle hin. In der beschriebenen Ausführungsform
der Erfindung ist der Rahmenkartenspeicher ein zweitoriger
Speicher. Eine DMA-Freigabeanforderung, die
vom Sequenzer auf ein DMA-Quittungssignal vom internen
DMA-Controller hin erzeugt wird, verbindet den Datenbus
mit dem peripheren Datenbus und trennt den Adreßbus
von dem zweitorigen Speicher und dem peripheren
Adreßbus. Weiter wird dadurch der Adreßzähler freigegeben,
damit er Adressen an den zweitorigen Speicher
liefern kann. Nachdem jede Peripheriegeräteadresse im
Rahmenkartenspeicher an den peripheren Adreßbus ausgegeben
worden ist, wodurch jedesmal die DMA-Übertragung
von einem Byte von Daten bewirkt wurde, gibt der interne
DMA-Controller die Steuerung des Adreßbusses und des
Datenbusses für einen Befehlszyklus an den Prozessor
zurück. Auf diese Weise können DMA-Übertragungen von
Daten aus einer großen Anzahl von Peripheriegeräten
mit nicht-aufeinanderfolgenden Adressen in aufeinanderfolgenden
Adressen des Speichers des Prozessors oder in
umgekehrter Richtung bewirkt werden. Dabei wird nur ein
einziger Kanal des internen, peripheren CMA-Controllers
benötigt, und es ist nicht erforderlich, daß der Prozessor
den DMA-Übertragungsoperationen gewidmet wird.
In der beschriebenen Ausführungsform der Erfindung ist
eine Vielzahl von verschiedenen Betriebsarten zugelassen,
die durch die Programmierung der internen Zeitquellenauswahlschaltung
und Auslösequellenauswahlschaltung
eingestellt werden können.
Die Erfindung wird anhand der beiliegenden Zeichnungen
näher erläutert; es zeigen:
Fig. 1 ein Blockschaltbild des Datenerfassungssystems
einschließlich des peripheren DMA-Controllers
der vorliegenden Erfindung:
Fig. 2 eine Blockschaltbild des internen DMA-
Steuerlogikblocks der Fig. 1;
Fig. 3 ein Zeitdiagramm zur Beschreibung des
Betriebs des Systems von Fig. 1;
Fig. 4A bis 4F detallierte Schaltpläne der verschiedenen
Blocks von Fig. 1 und 2;
Fig. 5 eine Speicherkartendarstellung zur Erklärung
des Betriebs der Erfindung;
Fig. 6 ein Flußdiagramm der Schritte, die von
einem Programm in dem Rechner der Fig. 1 ausgeführt
werden müssen, um das System so aufzusetzen, daß es eine
DMA-Operation mit dem peripheren DMA-Controller davon
ausführt; und
Fig. 7 ein Zustandsdiagramm des DMA-Sequenzers,
der in Fig. 2 enthalten ist.
Entsprechend Fig. 1 besteht das Datenerfassungssystem 1
aus einem peripheren DMA-Controller 2 (Steuergerät
für den direkten Speicherzugriff) in Verbindung mit dem
internen Bus 4 eines IBM Personal Computer (PC) und
einer Vielzahl von Peripheriegeräten 49-1 bis 49-N,
von denen jedes zwischen einen peripheren Datenbus 5 B
und einen peripheren Adreß/Steuer-Bus 28 geschaltet
ist. Bei den Peripheriegeräten 49-1 usw. handelt es
sich typischerweise, in der beschriebenen Ausführungsform,
um bis zu 64 Analog-Digital-Wandler, Digital-
Analog-Wandler, periphere Interfaceanschlüsse oder verschiedene
andere Speichergeräte. In der beschriebenen
Ausführungsform der Erfindung handelt es sich bei dem
peripheren DMA-Controller 2 um eine einzelne, gedruckte
Schaltungskarte, welche in einen leeren Schlitz, der
im IBM PC 3 vorgesehen ist, eingesteckt werden kann.
Man beachte, daß der IBM PC 3, der auch als Hostrechner 3
bezeichnet wird, aus einem internen Prozessor 3 A,
der durch einen Bus 3 B und einer Multiplexerschaltung
3 C mit dem internen Bus 4 verbunden wird, besteht. Die
andere Gruppe von Eingängen der Multiplexerschaltung
3 C ist über den Bus 3 E mit einem internen DMA-Controller
3 D des Hostrechners 3 verbunden. Die Multiplexerschaltung
3 C wird in Abhängigkeit von dem Betriebsprogramm
des Hostcomputers 3 gesteuert, um entweder
dem Prozessor 3 A oder dem internen DMA-Controller 3 D
den Zugriff auf den internen Bus 4 zu erlauben. Der interne
Bus 4 besteht aus einem bidirektionellen, internen
Datenbus 5 A mit den Leitern D 0-D 7, 20 Adreßleitungen
A 0-A 19 und einer Vielzahl anderer Steuersignale,
welche dem Fachmann bekannt sind.
Der IBM PC 3 kann durch ein einzelnes "Interrupt"
(Unterbrechungs)-Signal unterbrochen werden. Dieses
kann von irgendeiner externen Quelle erzeugt werden,
wie durch eines der Peripheriegeräte 49-1, usw.
Der periphere DMA-Controller 2 besteht aus einer ersten
Adreß-Decoderschaltung 10, deren Einzelheiten in Fig. 4A
gezeigt werden. Die Eingänge der Adreß-Decoderschaltung
10 sind mit den Adreßleitungen A 10-A 19 verbunden, die
gemeinsam durch das Bezugszeichen 6 B bezeichnet werden.
Die Adreß-Decoderschaltung 10 erzeugt ein Signal auf
der Leitung 11, dem Eingang des ODER-Gatters 12, um
ein Freigabesignal zu erzeugen, welches an die Übertragungsschaltung
13 des Datenbusses angelegt wird. Die
Datenbusübertragungsschaltung 13 verbindet kontrollierbar
die Leitungen des Computerdatenbusses 5 A mit den
entsprechenden Leitungen des bidirektionellen, peripheren
Datenbusses 5 B, wobei die Richtung durch die Richtungssignale
(Lesen/Schreiben) auf Leitung 28 A des
peripheren Adreß/Steuer-Busses 28 bestimmt wird. Die
Übertragungsschaltung 13 des Datenbusses kann z. B. ein
konventioneller 74LS245-Octalüberträger-IC sein.
Die Leitungen A 0-A 9 des Computeradreßbusses, welche gemeinsam
durch das Bezugszeichen 6 A bezeichnet werden,
ein Speicherschreibsignal MEMWR und ein Speicherlesesignal
MEMR werden als Eingänge an die Schaltung 14 angelegt,
welche aus three-state-Puffern, PC-Adressen-
und -Steuerschaltungen besteht. Die Adreßausgänge der
three-state-Pufferschaltung von Block 14 erzeugen Signale
auf den Leitungen des peripheren Adreß/Steuer-
Busses 28 entsprechend den Zuständen der verschiedenen
Eingangsleitungen des Blocks 14, wenn sie freigegeben
werden. Ein Freigabeeingang der Schaltungen von Block
14 wird von dem CMA-Freigabesignal gesteuert, welches
von einem Inverter 48 erzeugt wird, dessen Eingang mit
Leitung 23 verbunden ist.
Die DMA-Steuerlogikschaltung 19 erzeugt ein Signal
DMAEN (Freigabe für direkten Speicherzugriff) auf Leitung
23. Die Leitung 23 ist mit dem anderen Eingang
des ODER-Gatters 12 verbunden. Das Signal DMAEN hat
die Aufgabe, den Datenbusübertrager 13 zur elektrischen
Verbindung des Computerdatenbusses 5 A mit dem
peripheren Datenbus 5 B freizugeben. Das Signal DMAEN
führt auch eine Abtrennung der Computeradreßleitungen
A 0-A 9 vom peripheren Adreß/Steuer-Bus 28 durch.
Der periphere Adreß/Steuer-Bus 28 ist entsprechend der
vorliegenden Erfindung mit einem ersten Adreßtor 16 B
eines zweitorigen "Rahmenkartenspeichers" 15 verbunden.
Der Rahmenkartenspeicher 15 besteht aus einem ersten
Datentor 16 A, welches mit den entsprechenden Leitungen
des peripheren Datenbusses 5 B verbunden ist.
Ein zweites Adreßtor 17 B des Rahmenkartenspeichers 15
wird durch die Leitungen 20 mit den Adreßausgängen der
DMA-Steuerlogikschaltung 19 verbunden.
Die DMA-Steuerlogikschaltung 19 erzeugt das oben erwähnte
DMAEN (direkter Speicherzugriff-Freigabe)-Signal
auf Leitung 23. Die DMA-Steuerlogikschaltung 19
überträgt ebenfalls ein DMA-Anforderungssignal DMA
REQ auf Leitung 7 an den internen Computerdatenbus 4,
erhält ein DMA-Quittungssignal DMA ACK auf Leitung 8
vom internen Computerbus 4 und ein Längenregistersignal
T/C auf Leitung 9 vom internen Computerdatenbus 4.
Die drei vorerwähnten "handshaking"-Signale werden
empfangen und erzeugt durch die interne DMA-Steuerung
3 D des IB PC 3. Gegebenenfalls kann die DMA-Steuerlogikschaltung
19 ein RDMAEN-Signal auf Leitung 26
empfangen.
Der Rahmenkartenspeicher 15 besteht weiter aus einem
zweiten Datentor 17 A, welcher durch einen internen 16
Bit-Bus 28 B mit dem Block 18, welcher aus three-state-
Puffern, DMA-Adressenschaltung und Steuerschaltungen
besteht und dessen Einzelheiten in Fig. 4C dargestellt
werden, verbunden ist. Die Ausgänge der three-state-
Pufferschaltung in Block 18 sind mit dem peripheren
Adreß/Steuer-Bus 28 verbunden. Das Datentor 17 A erzeugt
außerdem zwei Signale EOF (Rahmenende) und EOG (Gruppenende)
auf den Leitungen 21 bzw. 22.
Die DMA-Steuerlogikschaltung 19 ist mit den acht Leitungen
des peripheren Datenbusses 5 B, mit den zwölf
Leitungen des peripheren mit einem RDMA INIT-Signal auf Leitung
25 verbunden. Die DMA-Steuerlogikschaltung 19 erzeugt
außerdem ein DMA INIT-Signal auf Leitung 24. Die Einzelheiten
der DMA-Steuerlogikschaltung 19 werden in
Fig. 2 gezeigt.
Nach Fig. 2 ist das Herz der DMA-Stuerlogikschaltung
19 eine DMA-Sequenzerschaltung 29 A. Diese ist eine
"Zustandamaschine", die in Form eines in geeigneter
Weise programmierten Bausteins für "programmierbare
Array-Logik" (PAL) 29, der in Fig. 4D dargestellt ist,
ausgeführt ist. Eine gestrichelte Linie 29 in Fig. 2
umschließt den DMA-Sequenzer 29 A und einige andere
Funktionen, die alle auf dem oben erwähnten PAL-IC
implementiert sind. Dabei ist auch eine "Latch"-Funktion
69 eingeschlossen, die ein START-Signal an ihrem
Eingang "Setzen" und ein STOP-Signal an ihrem Eingang
"Löschen" empfängt und ein Gatteranforderungssignal
REQGT (wird in der folgenden Tabelle 3 erwähnt) auf
Leitung 70 erzeugt. Die Funktion eines UND-Gatters 71,
das das REQGT-Signal und eine Übertragungsanforderung
XREQ auf Leitung 42 empfängt, ist ebenfalls in dem
PAL-IC 29 enthalten. Das Ergebnis der UND-Funktion 71
wird als Eingangssignal an die DMA-Sequenzer-Zustandsmaschine
29 A angelegt. Der Fachmann kann nach den Zustandsdefinitionen
aus Tabelle 1, dem Zustandsdiagramm
in Fig. 7 und der entsprechenden Wahrheitstabelle
in Tabelle 2 entscheiden, wie das PAL 29 zu programmieren ist.
Die DMA-Sequenzerschaltung 29 A erzeugt das DMA-Anforderungssignal
DMA REQ auf Leitung 7 und überträgt es zu
dem Hostrechner 3; außerdem empfängt sie das DMA-Quittungssignal
DMA ACK auf Leitung 8 vom DMA-Controller
3 D innerhalb des Hostrechners 3. Weiterhin erzeugt die
DMA-Sequenzerschaltung 29 A ein DMA-Freigabesignal DMAEN
auf Leitung 23. Die DMA-Sequenzerschaltung 29 A empfängt
ebenso ein DMA INIT (DMA-Anfangszustand)-Signal auf
Leitung 24, ein START-Signal, welches von der Startauswahlschaltung
33 erzeugt wird, ein STOP-Signal, das
von der Stoppauswahlschaltung 35 erzeugt wird, eine
Übertragungsanforderung XREQ auf Leitung 42, das EOF
(Rahmenende)-Signal auf Leitung 21 und das EOG (Gruppenende)-
Signal auf Leitung 22.
Die DMA-Steuerlogikschaltung 19 enthält weiterhin eine
"three-state"-Rahmenadreßzählerschaltung 31, die von
dem DMAEN-Signal auf Leitung 23 als Anwort auf ein
DMA ACK (DMA-Quittungs)-Signal vom DMA-Controller 3 D
des Hostrechners freigegeben wird. Die Ausgänge des
Rahmenadreßzählers 31 sind mit den einzelnen Leitungen
des Busses 20 verbunden, um die Adressen an den Rahmenkartenspeicher
15 weiterzugeben. Der Rahmenspeicheradressenzähler
31 wird zurückgesetzt durch ein Signal,
welches vom Ausgang des ODER-Gatters 32 erzeugt wird,
dessen einer Eingang des EOF-Signal 21 empfängt. Der
andere Eingang des ODER-Gatters 32 empfängt das DMA
INIT-Signal auf Leitung 24.
Das DMA-Übertragungsanforderungssignal XREQ auf Leitung
42 wird von der DMA-Zeitquellenwahl-Logikschaltung
40 erzeugt. Das Signal XREQ wird an den Eingang eines
UND-Gatters 39 mit zwei Eingängen angelegt, dessen Ausgang
mit dem Takteingang einer Quellenereigniszählerschaltung
38 verbunden ist. Der Ausgang des Quellenereigniszählers
38 wird von Leitung 37 mit verschiedenen
"Betriebsart"-Eingängen der Startauswahlschaltung 33
und der Stoppauswahlschaltung 35 verbunden. Die Startauswahlschaltung
33 hat drei Eingänge, die ein Startbefehlssignal
STRTCMD von der Steuerlogik 45 auf Leitung
34 empfangen. Die Stoppauswahlschaltung 35 hat
zwei Eingänge, die ein Stoppbefehlssignal STPCMD von
der Steuerlogik 45 auf Leitung 36 empfangen. Die Stoppauswahlschaltung
35 hat zwei weitere Eingänge zum
Empfang des T/C (Längenregister)-Signals auf Leitung 9.
Die Startauswahlschaltung 33 und die Stoppauswahlschaltung
35 sind Bestandteile der DMA-Betriebsart-
Steuerschaltung, die durch das Bezugszeichen 81 in
Fig. 4F bezeichnet wird. Die Beziehung zwischen dem
STRTCMD-Signal 34, dem STPCMD-Signal 36, dem START-Signal
33 A, dem STOP-Signal 35 A und dem REQGT-Signal 70
ist festgelegt in der Wahrheitstabelle von Tabelle 3,
in der der tiefgesetzte Buchstabe "n" den gegenwärtigen
Taktimpuls darstellt, und die tiefgesetzten Buchstaben
"n + 1" den nächsten Taktimpuls bezeichnen.
Die Auslösequellenauswahlschaltung 41 und die DMA-
Zeitquellenauswahlschaltung 40 sind beide mit einer
Mehrzahl von Eingangsleitungen verbunden, welche gemeinsam
durch das Bezugszeichen 27 bezeichnet werden.
Von diesen muß ein "Ereignis"- oder "Quellen"-Signal
ausgewählt werden, um eine DMA-Übertragung auszulösen.
Weiterhin muß von ihnen ein Zeit- oder "Auslöse"-Signal
ausgewählt werden, das die Aufgabe hat, den Anfangs-
und Endzeitpunkt einer DMA-Übertragung zu steuern,
in Übereinstimmung mit einem von den fünf unterschiedlichen
Betriebszuständen, die im folgenden erläutert
werden.
Eine "Latch"-Schaltung 43 ist einerseits mit einem Ausgang
der Auslösequellenauswahlschaltung 41 und andererseits
mit einem Eingang des UND-Gatters 39 verbunden.
Eine "Latch"-Schaltung (d. h. eine einklinkende Schaltung)
ist erforderlich, da das ausgewählte Auslösequellensignal
ein kurzer Impuls sein kann. Infolgedessen
ist es die Aufgabe der "Latch"-Schaltung 43, den
Pegel eines solchen kurzen Impulses zu speichern.
Eine Schrittmacher-Uhrenschaltung 44, die den Zeitablauf
der DMA-Übertragungen, die von dem peripheren DMA-
Controller 2 bewirkt werden, steuert, erzeugt ein Signal,
welches an eine der Leitungen 27 angelegt wird.
Die Steuerlogikschaltung 45 in der DMA-Steuerlogik 19
besitzt Eingänge, welche mit dem äußeren Datenbus 5 B
und dem peripheren Steuer/Adreß-Bus-28 verbunden sind.
In Abhängigkeit von diesen Eingängen erzeugt die Steuerlogikschaltung
45 eine Vielzahl von Steuer/Freigabesignalen
auf den Leitungen 46, welche jeweils mit einem
der ganzen Blöcke, die in Fig. 2 dargestellt sind, verbunden
sind. Zum besseren Verständnis der Zeichnung
sind jedoch die meisten Verbindungen der Leitungen 46
nicht dargestellt, da sie leicht vom Fachmann gemäß
der Information in den Fig. 4A-4F vorgesehen werden
können.
Nachdem nun die Grundstruktur des peripheren DMA-Controllers 2
beschrieben worden ist, wird die grundlegende
Betriebsweise des Systems, das in den Fig. 1 und 2
dargestellt ist, beschrieben werden. Nach der Beschreibung
der grundlegenden Betriebsweise wird die Betriebsweise
des IBM PC Hostrechners 3 beschrieben werden,
wie sie erforderlich ist, um den DMA-Controller 3 D des
Hostrechners so zu programmieren, daß eine DMA-Übertragung
bewirkt wird. Danach wird eine Anzahl anderer
Betriebsarten für die beschriebene Ausführungsform der
Erfindung beschrieben werden. Schließlich wird eine
detaillierte Beschreibung der logischen Schaltungen
in den einzelnen Blocks der Fig. 1 und 2 mit Bezug auf
die Fig. 4A-4F gegeben werden, um dem Fachmann eine
Anleitung für die richtige Konstruktion der vorliegenden,
bevorzugten Ausführungsform der Erfindung zu geben.
Wie oben erwähnt, besitzt der IBM Personal Computer
oder Hostrechner 3 einen internen Prozessor 3 A und einen
internen Host-DMA-Controller 3 D, bei denen es sich um
programmierbare Maschinen handelt. Der Host-DMA-Controller
3 D kann eine DMA-Übertragung mit einem Gerät
bewirken, das er als ein einziges Peripheriegerät erkennt
und das in Übereinstimmung mit der vorliegenden
Erfindung der periphere DMA-Controller 2 ist.
Während des normalen Betriebs des Hostrechners 3 sind
die Adressen A 0-A 9 wirksam mit den entsprechenden Leitungen
des peripheren Adreß/Steuer-Busses 28 verbunden.
Dadurch wird der Hostrechner 3 in die Lage versetzt,
den zweitorigen Rahmenkartenspeicher 15 und jedes
andere der Peripheriegeräte 49-1 . . . 49-N zu adressieren,
wenn der Datenbusübertrager 13 freigegeben
ist. Der Datenbusübertrager 13 wird durch die Decodierung
der Adreßbits A 10-A 19 freigegeben, um einen direkten
Zugriff des Hostrechner 3 auf den äußeren Datenbus
5 B zu ermöglichen, während die DMA-Steuerlogikschaltung
19 nicht den zweitorigen Rahmenkartenspeicher
15 anspricht.
Das Speicherschreibsignal MEMWR und das Speicherlesesignal
MEMR sind ebenfalls von dem internen Bus des
Hostrechners 4 durch three-state-Pufferschaltungen in
Block 14 mit dem peripheren Adreß/Kontroll-Bus 28 gekoppelt.
Auf diese Weise kann der Hostrechner 3 normale Lese-
und Schreiboperationen auf den Rahmenkartenspeicher 15
des peripheren DMA-Controllers 2 während des normalen
Betriebs ausführen und genau auf jedes der Peripheriegeräte
49-1, usw. Genau genommen, kann der Hostrechner
Daten in das Tor 16 A des zweitorigen Rahmenkartenspeichers
15 schreiben, der für den Hostrechner 3 wie 128
sequentielle Ein-Bit-Speicherplätze erscheint.
Wie oben erwähnt, ist der DMA-Controller 3 D des Hostrechners
eine programmierbare Maschine. Während der
Ausführung eines Benutzerprogramms durch den Prozessor
3 A kann er die Systembusse (5 A, 6 A und 6 B) nicht
überwachen. Sowohl der DMA-Controller 3 D des Hostrechners
als auch der periphere DMA-Controller 2 laufen
dann leer. Wenn das Benutzerprogramm die Ausführung
eines DMA-Zugriffs anfordert, wird der Prozessor 3 A
den DMA-Controller 3 D des Hostrechners mit dem Speicherplatz
programmieren, auf den durch die gewünschte
DMA-Übertragung zugegriffen werden soll. Der Prozessor
3 A programmiert außerdem den DMA-Controller 3 D des
Hostrechners mit der Anzahl von Bytes, die während des
DMA-Zugriffs übertragen werden sollen. Er gibt dann
den DMA-Controller 3 D des Hostrechners frei, den internen
Bus 4, der die Busse 5 B, 6 A und 6 B des Hostrechners 3
einschließt, zu "übernehmen". Auf diese
Weise muß der Hostrechner 3 einen DMA-Zugriff vorbereiten,
indem er zuerst den DMA-Controller 3 D des
Hostrechners geeignet programmiert. Sobald dies durchgeführt
ist, läuft der DMA-Zugriff ab, ohne eine weitere
Maßnahme des internen Prozessors 3 A zu erfordern.
Der DMA-Controller des IBM PC ist ein "klassischer"
Gerät-zu-Speicher-DMA-Controller, der ein Byte vom Datenbus
zu dem bestimmten Speicherplatz überträgt während
eines jeden DMA-"handshaking"-Zyklus.
Ein Befehl zur "Selbstinitialisierung" kann ebenfalls
in den DMA-Controller 3 D des Hostrechners einprogrammiert
werden. Dann lädt der DMA-Controller 3 D des
Hostrechners sein laufendes Adreßregister vom Basisregister
nach, sobal der programmierte Bytezähler
auf Null heruntergezählt ist, und beginnt mit einer
neuen Sequenz. Dieses Verfahren wird angewendet, um
Information von vor einem Auslösezeitpunkt und danach
in einem Datenpuffer zu lesen, wie im folgenden beschrieben.
Wenn die programmierte Verzögerung weniger
als die Puffergröße ist, werden die Daten, welche nach
Vollendung der Sequenz im Speicher zurückbleiben, aus
einer Mischung von neuen und alten Daten bestehen. Das
laufende Adreßregister des DMA-Controllers 3 D des
Hostrechners wird den Ort des letzten übertragenen
Bytes angeben. Der Auslösepunkt kann dann lokalisiert
werden, indem man von diesem Byte rückwärts durch die
vom Quellenereignisauslöseregister angegebenen Zahl von
Rahmen zurückgeht, so daß dann alles zwischen dem laufenden
Adreßzeiger und dem Auslösepunkt Daten aus einer
Zeit nach der Auslösung und der Rest aus der Zeit vor
der Auslösung ist.
Nachdem der DMA-Controller 3 D des Hostrechners zur
Ausführung eines DMA-Zugriffs programmiert ist, kann
er diesen DMA-Zugriff mit dem peripheren DMA-Controller 2
durchführen, indem er einen normalen DMA-Zugriff auf
ein Byte zwischen dem peripheren Datenbus 5 B und einem
internen Speicherplatz des Hostrechners 3 durchführt.
Eine solche Übertragung von einem Byte wird als "DMA-
Zyklus" bezeichnet. Am Ende eines DMA-Zyklus gibt der
DMA-Controller 3 D des Hostrechners die Steuerung des
Busses 4 an den Prozessor 3 A zurück. Ein "Rahmen" wird
definiert als derjenige Datenblock, der zum Speicher
übertragen wird, jedesmal wenn ein "DMA-Zugriff" erfolgt.
Ein "DMA-Zugriff" besteht aus der Anzahl von
DMA-Ein-Byte-Zyklen, die erforderlich sind, um alle
Elemente des Rahmens zu übertragen, d. h. alle Einträge
im Rahmenkartenspeicher 15 aufzulisten.
Beim "Aufsetzen" oder Programmieren eines DMA-Zugriffs
schreibt der Hostrechner 3 eine "Rahmenliste" in aufeinanderfolgende
Speicherplätze des zweitorigen Rahmenkartenspeichers
15. Jeder Eintrag in der Rahmenliste
besteht aus einer Zehn-Bit-Adresse eines Peripheriegeräts,
welches mit dem peripheren Adreß/Steuer-Bus 28
und dem äußeren Datenbus 5 B verbunden ist, einem "Richtungs-"
oder Lese/Schreib-Bit zur Angabe der Richtung
des gewünschten DMA-Zugriffs, einem EOF (Rahmenende)-
Zeichenbit, um anzugeben, daß das letzte Element des
Listeneintrags übertagen worden ist, d. h. daß der
ganze Rahmen übertragen worden ist, und einem EOG
(Gruppenende)-Zeichenbit, welches, wie im folgenden
erläutert, verwendet werden kann, um einen DMA-Betrieb
mit höherer Geschwindigkeit zu bewirken.
Während eines jeden DMA-Zyklus des Hostrechners greift
die DMA-Steuerlogik (oder "Listencontroller") 19 auf
den zweitorigen Rahmenkartenspeicher 15 zu, der dabei auf eine
Eintragung in der Rahmenliste zeigt. Der Inhalt dieses
Rahmenelements in der Liste wird zu der Adresse des
Bytes, welches während dieses DMA-Zyklus übertragen
wird. Am Ende eines jeden DMA-Zyklus erhöht die periphere
DMA-Steuerlogik 19 die Listenadresse im Rahmenkartenspeicher-
Adreßzähler 31 (Fig. 2) um Eins, so daß
die periphere DMA-Steuerlogik 19 auf das nächste Element
des Rahmens für den nächsten DMA-Zyklus zeigt.
Wenn das EOF-Zeichen eine "0" ist (d. h. "aktiv") in
dem gegenwärtigen Rahmenelement, womit angezeigt wird,
daß der ganze Rahmen übertragen worden ist, setzt die
DMA-Steuerlogik 19 den Rahmenkartenspeicher-Adreßzähler
31 auf Null für den nächsten DMA-Zyklus.
Im folgenden sollen die logischen Zustände verschiedener,
hier vorkommender Signale definiert werden. Beim
EOF-Signal bedeutet eine "1" einen "inaktiven" Zustand.
Bei EOG bedeutet die "1" seinen "inaktiven" Zustand.
Bei DMA ACK bedeutet eine "1" den "inaktiven" Zustand.
Bei DMA REQ bedeutet hingegen eine "1" den "aktiven"
Zustand. Bei DMAEN bedeutet eine "1" den "inaktiven"
Zustand. Bei DMA INIT definiert der "1"-Pegel den "inaktiven"
Zustand.
Während eines jeden DMA-Speicherzyklus steuert die
periphere DMA-Steuerlogik 19 den peripheren Adreßbus
28 und die Daten des Rahmenelements, auf das der
Adreßzähler 31 zeigt, werden als Adreß- und Steuersignal
auf den peripheren Adreßbus 28 ausgegeben.
Sobald ein bestimmter DMA-Zyklus beendet ist, schaltet
die periphere DMA-Steuerlogik 19 die Steuerung des
peripheren Adreßbusses zurück an den Hostrechner 3, indem
das DMAEN(DMA-Freigabe)-Signal auf Leitung 23 auf
"1" gesetzt wird. Dadurch werden die Leitungen des Datenbusses
5 A mit den entsprechenden Leitungen des
peripheren Datenbusses 5 B verbunden und die three-state-
Puffer in Block 14 freigegeben. Am Ende eines jeden
DMA-Zyklus erhöht die periphere DMA-Steuerlogik 19
ebenfalls den Rahmenkartenspeicher-Adreßzähler 31, so
daß er auf das nächste Rahmenelement im Rahmenkartenspeicher
15 zeigt und somit für die nächste Zeitübertragung
bereit ist, bis das EOF-Zeichen gesetzt wird.
Wenn das EOF-Zeichen in seinen "aktiven" Zustand, d. h.
auf "0", gesetzt wird, wird der Rahmenkartenspeicher-
Adreßzähler 31 auf die Adresse des ersten Rahmenelements
für die nächste "DMA-Übertragung" zurückgesetzt.
Auf diese Weise kann die Rahmenliste, die die sequentiellen
Adressen von bis zu 64 Acht-Bit-Peripheriegeräten
enthält, deren Werte alle zufällig sein können,
an sequentielle Plätze eines Zielspeichers übertragen
werden, wobei nur der eine verfügbare DMA-Kanal des
DMA-Controllers 3 D des Hostrechners benutzt wird.
Der Betrieb des peripheren DMA-Controllers wird durch
ein "Übertragungsanforderungssignal", genannt XREQ,
eingeleitet, welches aus einer Vielzahl von Eingangsleitungen
27 ausgewählt werden kann, abhängig davon,
wie die DMA-Zeitquellenauswahlschaltung 40 anfänglich
vom Prozessor 3 A programmiert worden ist.
Das Übertragungsanforderungssignal XREQ kann jedes beliebige
externe Signal sein, das gleichzeitig mit einem
Ereignis, daß dem System 1 aus Fig. 1 (das im
Prinzip ein Datenerfassungssytem ist) zu überwachen
versucht, auftritt. Das ausgewählte XREQ-Signal kann
z. B. eine Unterbrechungsanforderung von irgendeinem
der Peripheriegeräte 49-1 . . . 49-N sein, irgendein anderes
externes Signal oder ein Signal von dem Schrittmacheruhrenschaltkreis
44 der Fig. 2. Das Übertragungsanforderungssignal
XREQ könnte z. B. als Antwort auf
ein "Ende der Umwandlung"-Signal von einem Analog-
Digital-Wandler erzeugt werden.
Die Schrittmacheruhrenschaltung 44 kann auf jede Arbeitsfrequenz
von 0,001 Hz bis 2 MHz programmiert werden,
um so die Anzahl der Übertragungen pro Sekunde
zu bestimmen, welche während einer DMA-Übertragung
erreicht werden können.
Mit den vorstehenden Informationen wird es nun einfach
sein, den "handshaking"-Betrieb zu beschreiben, der
zwischen dem DMA-Controller 3 D des Hostrechners und
der peripheren DMA-Controllerlogik abläuft, während
ein DMA-Zyklus erfolgt.
Es wird angenommen, daß das Gruppenende-Signal EOG logisch
"1" ist, wie dies normalerweise bei einem IBM PC
der Fall ist. Auf ein Übertragungsanforderungssignal
XREQ auf Leitung 42 (Fig. 2), das von der DMA-Zeitquellenauswahlschaltung
40 ausgewählt worden ist, veranlaßt
die DMA-Sequenzerschaltung 29, daß das Signal
DMA REQ auf Leitung 7 erzeugt wird (unter der Annahme,
daß die Startauswahlschaltung 33 das Signal START
auf Leitung 33 A erzeugt hat).
Der DMA-Controller 3 D des Hostrechners reagiert daraufhin
automatisch mit der Erzeugung eines DMA-Quittungssignals
DMA ACK auf Leitung 8. Auf dieses DMA ACK-
Signal hin erzeugt der periphere DMA-Sequenzer 29 ein
Signal DMAEN auf Leitung 23, wodurch der periphere
Adreß/Steuer-Bus 28 vom PC-Adreßbusstecker 6 A getrennt
wird und die Ausgänge des Rahmenkartenspeicher-Adreßzählers
31 freigegeben werden, so daß der zweitorige
Rahmenkartenspeicher 15 durch die DMA-Steuerlogik 19
angesprochen wird. Dies veranlaßt, daß die Daten des
ersten Rahmenelements auf Bus 28 B erscheinen.
Auf das Signal DMAEN hin verbindet die three-state-
Pufferschaltung von Block 18 den Bus 28 B mit dem peripheren
Adreß/Steuer-Bus 28. Das Richtungssignal auf
Leitung 28 A gibt die Datenbusübertragerschaltung 13
in der richtigen Richtung frei, abhängig von der Richtung
der gewünschten DMA-Übertragung. Das DMA REQ-Signal
wird für einen Zyklus unterbrochen. Dadurch wird
dem Prozessor des Hostrechners 3 erlaubt, einen Zyklus
zu arbeiten. Wenn das Rahmenende-Signal EOF nicht auf
Leitung 21 "aktiv" ist bezüglich des gegenwärtigen
Rahmenelements, erzeugt der DMA-Sequenzer 29 dann sofort
eine neue logische "1" auf der DMA REQ-Leitung 7,
wartet auf ein weiteres DMA ACK-Signal auf Leitung 8
und führt eine Datenübertragung entsprechend dem nächsten
Eintrag, d. h. dem nächsten Rahmenelement, in der
Rahmenliste durch.
(Man beachte, daß der interne DMA-Controller im IBM PC
vier Kanäle besitzt und diese Vorrang haben. Wenn der
periphere DMA-Controller 2 der vorliegenden Erfindung
die Steuerung des Busses nach einer DMA-Übertragung
eines einzelnen Byte abgibt, muß der interne DMA-
Controller des IBM PC zwischen dem peripheren DMA-
Controller und anderen Kanälen des internen DMA-Controllers,
die ebenfalls Übertragungen anfordern können,
abwägen. Zusätzlich dazu wird der Prozessor 3 A
stets wenigstens einen Befehlszyklus benutzen.)
Wenn ein ganzer Datenblock aus allen Bytes aller Rahmen,
die zu der angeforderten DMA-Übertragung gehören,
übertragen worden ist, erzeugt der DMA-Controller 3 D
des Hostrechners das Längenregistriersignal T/C auf Leitung 9.
Dieses informiert die Stopplogik 35 der Fig. 2,
ein STOP-Signal auf Leitung 35 A zu erzeugen, wodurch
der DMA-Sequenzer 29 davon informiert wird, daß die
gesamte DMA-Sequenz vollständig ist.
Wenn beispielsweise ein Benutzerprogramm Daten von einem
analogen Kanal (wie einem Analog-Digital-Wandler)
und den Inhalt eines 16-Bit-Zählers einlesen möchte,
wobei jedes dieser Peripheriegeräte zwischen dem peripheren
Datenbus 5 B und dem peripheren Adreßbus 28 angeschlosen
ist, wird das Benutzerprogramm zuerst die
Adressen dieser Peripheriegeräte nacheinander in die
Rahmenliste im zweitorigen Rahmenkartenspeicher 15
schreiben. Für dieses Beispiel erläutern die Kurven
in Fig. 3 den "handshaking"-Betrieb zwischem dem peripheren
DMA-Controller 19 und dem internen DMA-Controller
3 D des Hostrechners, unter der Annahme, daß jeder
Rahmen nur vier Bytes enthält. (Man beachte, daß jeder
Rahmen in dem hier beschriebenen System aus bis zu 64
Bytes bestehen kann.) Der erste Impuls 54 A der ÜbertragungsanforderungskurveXREQ erscheint auf Leitung
42 (nachdem er durch die DMA-Zeitquellenauswahlschaltung
40 aus einer der Leitungen 27 ausgewählt wurde).
Dies veranlaßt den DMA-Sequenzer 29, einen ersten Impuls
55 A der DMA-Anforderungskurve DMA REQ zu erzeugen.
Kurz darauf schaltet das DMA ACK⁺-Signal nach "low",
wie durch Bezugszeichen 56 A angegeben.
(Man beachte, daß die Sternchen bzw. das Symbol + hier
verwendet werden, um logisch komplementäre Signal zu
bezeichnen, da das Überstreichen, wie es üblich ist,
um logisch komplementäre Signal zu bezeichnen, Schwierigkeiten
beim Druck bereiten würde.)
Danach erzeugt der DMA-Sequenzer 29 das DMAEN-Signal
auf Leitung 30, wodurch die Steuerung der peripheren
Daten- und Adreßbusse an die periphere DMA-Steuerlogik
19 übergeben wird und die Ausgänge des Adreßzählers 31
freigegeben werden. Dadurch wird die Übertragung des
ersten Bytes des Rahmens in der gewünschten Richtung
bewirkt und das Signal DMA REQ veranlaßt, "inaktiv"
zu werden.
Die Steuerung des internen Busses 4 wird vom DMA-Controller
3 D des Hostrechners an den Prozessor 3 A für
die Dauer von DMA ACK zurückgegeben und dann wird ein
neuer DMA REQ-Impuls 55 B erzeugt. Dann entsteht ein
zweiter DMA ACK-Impuls 56 B, und das zweite Byte des
Rahmens wird übertragen. Diese gleiche Abfolge wird
für alle vier Bytes des oben definierten Rahmens wiederholt.
Während des letzten der vier DMA-Zyklen erscheint
der EOF-Impuls 57 am Tor 7 A des zweitorigen
Speichers 15, um anzuzeigen, daß das laufende Byte das
letzte im Rahmen ist, welches übertragen werden soll.
Wenn das Längenregistersignal T/C nicht erzeugt worden
ist, ist das STOP-Signal auf Leitung 35 A noch nicht
erschienen, so daß der DMA-Sequenzer 29 den nächsten
Übertragungsanforderungsimpuls 54 B auf Leitung 42 annimmt.
Der vorhergehende Ablauf wird sich so lange
wiederholen, bis der ganze, ursprünglich angeforderte
DMA-Datenblock übertragen worden ist. Zu diesem Zeitpunkt
wird das T/C-Signal vom DMA-Controller 3 D des
Hostrechners erzeugt, das STOP-Signal erscheint und
veranlaßt den DMA-Sequenzer 29, die DMA-Funktion zu
beenden.
Man beachte dabei, daß das Erscheinen des EOF-Signals
nur das Ende einer Rahmenübertragung anzeigt, nicht
das eines Datenblocks, welcher aus vielen Rahmen bestehen
kann. Das heißt, daß das EOF-Signal lediglich
das Ende eine "DMA-Übertragung" oder der Übertragung
eines Rahmens anzeigt. Die Anzahl von Übertragungen
entspricht der Anzahl von Bytes (der Byte-Zählung),
die in den DMA-Controller 3 D des Hostrechners einprogrammiert
worden ist, multipliziert mit der Anzahl
der Bytes pro Rahmen. Das Längenregistersignal T/C
wird nur erzeugt, wenn alle angeforderten Bytes übertragen
worden sind.
Ein weitergehendes Verständnis der Funktion kann vielleicht
durch die Speicherkarte der Fig. 5 erreicht werden.
Fig. 5 zeigt eine Speicherkarten-Zeichnung, in der
alle dem Hostrechner 3 zugänglichen Adressen durch den
Block 70 bezeichnet werden. Die Adressen aller Geräte,
welche sowohl an den peripheren Datenbus 5 B als auch
an den peripheren Adreßbus 28 angeschlossen sind, werden
durch den Block 65 bezeichnet. Die relativen Speicherplätze
von vier der Peripheriegeräte 49 werden in der
Speicherkarte 65 der peripheren Busses gezeigt, insbesondere
die Adresssen, welche als Byte 1, Byte 2, Byte 3
und Byte 4 bezeichnet werden. Man beachte, daß diese
Adressen nicht direkt aufeinanderfolgen und sich nicht
in einer Reihe nacheinander befinden.
Das Ziel einer typischen DMA-Übertragung würde es sein,
die Bytes 1 bis 4 von ihren nicht-benachbarten, nicht-aufeinanderfolgenden
Plätzen in der Speicherkarte 65
des peripheren Busses schnell an vier benachbarte, in
Reihenfolge aufeinanderfolgende Adressen, beginnend
mit der Basisadresse 67, in der Speicherkarte 70 des
Hostrechners zu übertrgen. Der Pfeil 61 stellt die
Übertragung des ersten Bytes von dem Peripheriegerät,
in dem es ursprünglich gespeichert ist, an die niedrigste
Adresse oder Basisadresse 67 in einem Teil des
Speichers des Hostrechners, der als "Datenpuffer" 67 A
bezeichnet wird, dar. Gleichermaßen stellen die Pfeile
62, 63 und 64 die Ein-Byte-DMA-Übertragungen von Daten
aus den Peripheriegeräten 49, in denen die Bytes 2,
3 und 4 gespeichert sind, an die nächsten drei aufeinanderfolgenden
Adressen in dem Puffer 67 A dar.
Ein wichtiger Vorteil der oben beschriebenen Funktion
ist es, daß der Hostrechner 3 sich nicht den DMA-Übertragungen
widmen muß, während sie passieren, und stattdessen
andere Datenverarbeitungsaufgaben zwischen den
DMA-Speicherzyklen wahrnehmen kann. Mit anderen Worten
wird die oben beschriebene DMA-Übertragungstechnik
durch das "Stehlen" von Zyklen von dem Prozessor 3 A
bewirkt. Nachdem der DMA-Controller 3 D des Hostrechners
so programmiert ist, daß er die DMA-Übertragung ausführt,
erfolgt die DMA-Übertragung im wesentlichen
"unsichtbar" für das Anwenderprogramm.
Ein weiterer Vorteil ist es, daß DMA-Übertragungen mit
Peripheriegeräten 49 erreicht werden können, die keine
zusätzlichen Schaltungen besitzen, mit denen sie in der
Lage wären, die oben beschriebenen "handshaking"-Funktionen
mit dem DMA-Controller 3 D des Hostrechners
durchzuführen. Dies reduziert die Kosten der Peripheriegeräte
und erlaubt DMA-Übertragungen mit normalen, billigen
Peripheriegeräten.
Noch wichtiger ist vielleicht die Tatsache, das DMA-Übertragungen
zu einer großen Anzahl von Peripheriegeräten
mit nur einem einzigen Kanal des DMA-Controllers
des Hostrechners erreicht werden können. Normalerweise
würde es unakzeptabel teuer sein, für jedes Peripheriegerät,
mit dem eine DMA-Übertragung durchgeführt
werden soll, einen eigenen Kanal des DMA-Controllers
vorzusehen.
Die vorliegende Erfindung sieht somit einen externen
Block logischer Schaltungen vor, der die Fähigkeit zum
"DMA-handshaking" besitzt und der den Hostrechner nachbildet,
soweit die Peripheriegeräte 49 betroffen sind,
so daß die Peripheriegeräte keine speziellen Fähigkeiten
zur Durchführung von DMA-Übertragungen haben
müssen.
Bei der oben beschriebenen Funktion des Systems nach
Fig. 1 wird angenommen, daß das Gruppenende-Signal EOG
logisch "1" ist anstatt logisch "0". Wenn EOG "1" ist,
hält die DMA-Sequenzerlogik 29 DMA REQ auf "high", bis
EOG oder EOF "aktiv" oder "0" ist. Dies verhindert, daß
die Steuerung des internen Busses 4 zwischen den DMA-
Zyklen an den Prozessor 3 A zurückgegeben wird, und
kann daher eine erheblich höhere DMA-Datenübertragungsrate
erreichen. Wenn der Hostrechner 3 jedoch ein IBM
PC ist, kann dies eine sehr gefährliche Technik sein,
da einer der DMA-Controllerkanäle des Hostrechners für
die automatische Auffrischung des internen, dynamischen
RAM benutzt wird. Wenn die DMA-Übertragung eines
großen, zusammenhängenden Blocks durchgeführt wird,
während das EOG-Signal auf "1" gehalten wird, und eine
solche Übertragung länger dauert, als die minimale
Wiederauffrischungszeit des dynamischen Speichers, besteht
eine große Gefahr, daß gespeicherte Daten verlorengehen.
Nach Fig. 2 erhält der DMA-Sequenzer 29 die Signale
XREQ, EOF, EOG, DMA INIT, START, DMA ACK und STOP und
erzeugt ensprechend die Signale DMA REQ und DMAEN.
Das Signal XREQ zeigt dem DMA-Sequenzer 29 an, daß die
Übertragung eines ganzen Rahmens benötigt wird, d. h.
wann er eine DMA-Übertragung beginnen soll. Das Signal
START informiert den DMA-Sequenzer 29, zu welchem genauen
Zeitpunkt er das XREQ-Signal auswerten soll, das
typischerweise periodisch ist, besonders, wenn es von
der Schrittmacheruhrschaltung 44 erzeugt wird. (Das
START-Signal kann auf viele verschiedene Weisen erzeugt
werden, abhängig davon, welche der fünf oben erwähnten
Betriebsarten ausgewählt ist. Das STOP-Signal
kann ebenfalls auf verschiedene Weisen erzeugt werden,
einschließlich eines Computerbefehls oder durch das
Auftreten des Längenregistersignals T/C).
Das Erscheinen des EOF-Signals, das anzeigt, daß der
DMA-Sequenzer 29 die Übertragung eines ganzen Rahmens
durchgeführt hat, bedeutet, daß der DMA-Sequenzer keine
weiteren DMA-Speicherzyklen veranlassen soll, bis er
ein anderes XREQ-Signal erhält. Der DMA-Sequenzer 29
kann auf verschiedene Weise ausgeführt werden. In der
vorliegenden, bevorzugten Ausführungsform der Erfindung
ist der DMA-Sequenzer 29 eine Zustandsmaschine,
die als programmierter Array-Logik(PAL)-IC ausgeführt
ist. Dazu kann ein PAL16R4-IC, hergestellt von National
Semiconductor oder anderen, verwendet werden.
Das DMA INIT-Signal wird von der Steuer/Logikauswahlschaltung
45 abgegeben, initialisiert den DMA-Sequenzer
29 und setzt den Rahmenkartenspeicher-Adreßzähler
31 zurück. Das DMA INIT-Signal wird aufgrund eines
Computerbefehls ausgegeben. Der PC programmiert die
Steuer/Logikauswahlschaltung 45 so, daß sie das DMA
INIT-Signal erzeugt.
Die Zeitquellenauswahlschaltung 40 arbeitet in Reaktion
auf eines der Steuersignale 46 von der Steuer/
Auswahllogik 45. Dabei wird eines der acht externen
Signale 27 ausgewählt und als XREQ-Singal auf Leitung
42 benutzt. Man bedenke jedoch, daß der DMA-Sequenzer
29 die XREQ-Signale ignoriert, bis ein START-Signal
auf Leitung 33 A von der Startlogik 33 erzeugt worden
ist. Die Auslösequellenauswahlschaltung 41 steuert,
welches der acht Signale 27 als Auslöser benutzt wird,
um den Zeitpunkt des Betriebsbeginns für den DMA-Sequenzer
29 genau festzulegen (nachdem ein XREQ-Signal
empfangen wurde). Der Quellenereigniszähler 38 zählt
die Anzahl der XREQ-Impulse und erzeugt ein Ausgangssignal
auf Leitung 34, wenn eine vorbestimmte Anzahl
(einprogrammiert in den Quellenereigniszähler) von
XREQ-Impulsen eingetroffen ist. Die Schaltung wird benutzt,
um genau festzulegen, wann entweder ein START-
Signal oder ein STOP erzeugt wird, abhängig davon,
welche Betriebsart ausgewählt ist. Damit wird festgelegt,
wann der DMA-Sequenzer 29 beginnen oder aufhören
soll, Übertragungsanforderungssignale XREQ zu berücksichtigen.
Der Ausgang des Quellenereigniszählers 38 treibt ebenfalls
die Stopplogik 35 über die Leitung 37. Der Quellenereigniszähler
38 kann so programmiert werden, daß
er den Beginn und das Ende eines DMA-Prozesses steuert,
wenn eine bestimmte Betriebsart gewählt wurde. Dies
kann sehr nützlich sein in einem Datenerfassungssystem,
in dem beabsichtigt ist, eine Reihe von Signalen zu
überwachen, und dabei das Ziel verfolgt wird, zusammenhängende
Daten für einen vorbestimmten Zeitraum vor
und einen vorbestimmten Zeitraum nach einem asynchronen
"Ereignissignal" zu sammeln. Der DMA-Controller 3 D
des Hostrechners kann programmiert werden, so daß er
seinen Puffer 67 A (Fig. 5) füllt, beginnend mit der
oben erwähnten Basisadresse, und eine vorherbestimmte
Anzahl von Bytes sammelt oder überträgt und dann den
Prozeß wiederholt. Unter Benutzung der "beginne sofort,
halte mit einer Verzögerung nach einem Ereignis an"-
Betriebsart (im folgenden beschrieben), wird der oben
erwähnte Puffer fortlaufend in einer umlaufenden Weise
gefüllt, bis das interessierende Ereignis, welches
überwacht wird, passiert. Wenn es sich ereignet, wird
eine Anzahl N weiterer Abtastwerte oder Bytes gesammelt.
Danach wird die Datenerfassung gestoppt und die
Daten im Puffer umfassen N Werte, welche nach dem interessierenden
Ereignis oder Auslöser eingetroffen sind,
und eine Anzahl entsprechend der Pufferlänge minus N
Meßwerte, die vor dem auslösenden Ereignis gesammelt
wurden.
In Übereinstimmung mit vorliegender Erfindung werden
die Startlogik 33 und die Stopplogik 35 auf dem gleichen
PAL ausgeführt wie der DMA-Sequenzer 29. Die
Wahrheitstabelle, die in das PAL programmiert werden
muß, um die Start- und Stopplogikfunktionen zu implementieren,
wird in Tabelle 3 angegeben.
Das Auslöseereignis ist dasjenige Ereignis, welches
genau die ganze Serie der DMA-Übertragungen, die einen
Datenerfassungslauf oder eine DMA-Übertragung umfassen,
startet oder beendet. Es folgt eine Liste der Betriebsarten,
d. h. der verschiedenen Möglichkeiten zur
Erzeugung der START- und STOP-Signale.
- (1) Betriebsart 0: "Starte aufgrund eines Ereignisses mit Verzögerung, stoppe aufgrund Längenregistersignal T/C". Die erwähnte Verzögerung ist die vorprogrammierte Einstellung des Quellenereigniszählers 38. Dieser Zähler muß mit der richtigen Verzögerung vorprogrammiert sein und durch das von der Auslösequellen- Auswahlschaltung 41 ausgewählte Auslösesignal freigegeben sein. Diese Betriebsart ist sinnvoll, um einen festen "Schnappschuß" von Daten aufzunehmen, der durch ein interessierendes Ereignis ausgelöst wurde.
- (2) Betriebsart 1: "Starte mit Verzögerung nach einem Ereignis, halte auf Befehl an." In dieser Betriebsart beginnen die Übertragungen nach dem Auftreten eines interessierenden Ereignisses und werden fortgesetzt, bis der Computer einen Stoppbefehl ausgibt. Im Speicher des Hostrechners bleiben die jüngsten Daten erhalten.
- (3) Betriebsart 2: "Starte auf Befehl, halte aufgrund Längenregistersignal T/C an." Eine festgelegte Puffergröße an Daten wird übertragen, der Beginn der Übertragung wird jedoch durch einen Programmbefehl statt durch ein Ereignis ausgelöst.
- (4) Betriebsart 3: "Starte auf Befehl, halte an mit Verzögerung nach einem Ereignis." Dieses Verfahren wird angewandt, um Informationen von vor und nach dem Auslösezeitpunkt in den Datenpuffer zu laden. Der Datenpuffer ist ein Umlaufpuffer im Speicher durch die Wirkung des Selbstinitialisierungs-Kommandos. Wenn die programmierte Verzögerung geringer ist als die Puffergröße, dann bestehen die Daten, die nach Ablauf der DMA-Sequenz im Speicher verbleiben, aus einer Mischung von Informationen von vor und nach dem Auslösezeitpunkt.
- (5) Betriebsart 4: "Starte auf Befehl, halte auf Befehl an." Programmierte Kommandos starten und beenden die DMA-Übertragung.
Die verschiedenen Eingänge der Startauswahlschaltung
33 und der Stoppauswahlschaltung 35 entsprechen den
oben beschriebenen Betriebsarten 0 bis 4. Abhängig davon,
welche der fünf Betriebsarten in die Steuerlogik
45 einprogrammiert ist, wird der entsprechende Eingang
der Startauswahlschaltung 33 und der Stoppauswahlschaltung
35 ausgewählt und mit den Leitungen 33 A oder
35 A verbunden.
Nun folgt ein ausführliches Beispiel, wie der Prozessor
3 A des Hostrechners den DMA-Controller 3 D des Hostrechners
"aufsetzt" oder "programmiert", um eine DMA-
Übertragung zu bewirken. In dem angenommenen Beispiel,
das unter Bezug auf das Flußdiagramm von Fig. 6 beschrieben
wird, wird der DMA-Controller 3 D des Hostrechners
mit PCDMA bezeichnet und der periphere DMA-Controller
mit IDMA. In diesem Beispiel sollen 500 Rahmen
zu je vier Bytes im DMA-Betrieb von vier peripheren
Busadressen in den Speichers des Hostrechners übertragen
werden. Die folgenden vier hexadezimalen Adressen
$101, $209, $301 und $302 werden benutzt. (Ein
Dollar-Zeichen vor einer Adresse bedeutet hexadezimale
Codierung.) Die DMA-Übertragung ist so aufgesetzt oder
programmiert, daß sie aufgrund eines externen Ereignisses
beginnt, und zwar mit einer Verzögerung von zwei
Übertragungsanforderungen, die in den Quellenereigniszähler
38 einprogrammiert ist. Die DMA-Übertragung ist
so programmiert, daß sie aufgrund des Längenregistersignals
T/C anhält. Die Übertragungen werden zeitlich
durch die Schrittmacheruhrenschaltung 44 gesteuert.
Wie in Fig. 6 gezeigt, beginnt die Programmierung des
DMA-Controllers des Hostrechners bei der Sprungmarke
100. Im Block 101 wird eine Zieladresse $4000 in den
DMA-Controller 3 D des Hostrechners geladen. In Block
102 wird dann die Byteanzahl durch Multiplikation von
500 Rahmen mal vier Byte pro Rahmen berechnet. Es ergibt
sich, daß 2000 Byte übertragen werden müssen. In
Block 103 wird die Byteanzahl in das Byteanzahlregister
des DMA-Controllers 3 D des Hostrechners geladen.
Als nächstes wird die Übertragungsart in den DMA-Controller
des Hostrechners eingespeichert. Im vorliegenden
Beispiel bedeutet diese Betriebsart, daß ein DMA
REQ-Signal ein DMA ACK-Signal erzeugt. Die Anforderung
des peripheren DMA-Controllers muß vor jedem DMA-
Zyklus gegenüber den Anforderungen anderer Peripheriegeräte,
die mit dem IBM PC-Bus 4 verbunden sein könnten,
abgewogen werden. Die Übertragungsart zeigt auch
an, daß es sich um eine "Leseübertragung" handelt, was
bedeutet, daß das R/W-Signal gesetzt wird, um anzuzeigen,
daß Daten von den Peripheriegeräten gelesen und
in den Speicher des Hostrechners 3 geschrieben werden.
Im Block 105 der Fig. 6 schreibt der Prozessor 3 A die
Rahmenlistenbytes 1 und 2 in den zweitorigen Rahmenkartenspeicher
15. Mit anderen Worten wird die Adresse
des ersten Bytes, das übertragen werden soll, $101,
in die Speicherplätze $80 und $81 des Rahmenkartenspeichers
geschrieben. Dabei wird angenommen, daß die
Rahmenkarte in der beschriebenen Ausführung der Erfindung
festgelegt ist auf die Plätze $80 bis $FF des
Adreßbusses 6 A.
Als nächstes wird die Peripheriegeräteadresse $209 auf
die Plätze $82 und $83 des Rahmenkartenspeichers geschrieben,
wie in Block 106 dargestellt. In Block 107
werden die Bytes 5 und 6 oder $301 auf die Speicherplätze
$84 und $85 geschrieben. In Block 108 wird
$302 auf Plätze $86 und $87 geschrieben. In jedem der
Blocks 105-108 ist das EOG-Bit auf "1" gesetzt. In
Block 108 ist das EOF-Bit auf "1" gesetzt, um damit
anzuzeigen, daß der ganze Rahmen übertragen worden
ist.
In Block 109 setzt der Hostrechner die Schrittmacheruhrenfrequenz.
In Block 110 schreibt der Hostrechner
ein DMA-Betriebsart-Byte in die Steuerlogik-Auswahlschaltung
45 der Fig. 2. Im vorliegenden Beispiel wird
die oben erwähnte "Betriebsart 0" gewählt. In Block
111 wird der Quellenereigniszähler 38 so programmiert,
daß er die Erzeugung des Startsignals um zwei XREQ-
Signale verzögert. In Block 112 wird die DMA-Zeitquellenauswahlschaltung
40 so programmiert, daß sie
das Schrittmacheruhrensignal als "Quelle" des XREQ-
oder Übertragungsanforderungssignals auswählt.
Als nächstes wird in Block 113 ein externes Auslösesignal,
möglicherweise ein anderes der Signale 27 als
der Ausgang der Schrittmacheruhr 44, als DMA-Auslösesignal
ausgewählt. Dann wird in Block 114 das IDMA
INIT-Bit in der Steuer/Logik-Auswahlschaltung 45 so
programmiert, das der DMA-Sequenzer 29, die Rahmenkartenspeicheradreßschaltung
31 und andere Schaltungen
korrekt initialisiert werden. Dann gibt der Prozessor
3 A in Block 115 den DMA-Controller 3 D des Hostrechners
frei, indem er ein Wort in dessen DMA-Steuerregister
schreibt.
Als nächstes wird die Schrittmacheruhr freigegeben, wie
in Block 116 angegeben, damit sie anfängt, ihre Impulse
mit der programmierten Frequenz auszugeben. In
Block 117 gibt der Prozessor 3 A den Quellenereigniszähler
38 frei, damit dieser zu zählen beginnt. In
Block 118 löscht der Prozessor 3 A das DMA INIT-Signal,
wodurch der periphere DMA-Controller 2 für die gewünschte
DMA-Übertragung freigegeben wird. Wenn das
äußere Ereignis eintrifft, wird der Quellenereigniszähler
38 zwei weitere Zeitschritte zählen (diese sind
als XREQ-Signale ausgewählt) und wird dann beginnen,
DMA REQ-Signale einzuleiten. Dieser Betrieb wird fortgesetzt,
bis alle 2000 Bytes übertragen worden sind,
ohne eine weitere Tätigkeit des Hostrechners.
Ein Programm zur Durchführung der im Flußdiagramm der
Fig. 6 angegebenen Schritte ist als Anlage 1 beigefügt.
Als nächstes wird die Zustandsmaschine, die benutzt wird,
um den DMA-Sequenzer 29 der Fig. 2 auszuführen, beschrieben
werden. Ein typisches Zustandsdiagramm ist
in Fig. 7 dargestellt. Die Zustandsmaschine der Fig. 7
besitzt fünf Zustände, nämlich Zustand 0, Zustand 1,
Zustand 2, Zustand 3 und Zustand 4. Tabelle 1, oben,
beschreibt jeden der Zustände, indem sie die Eingangspegel
und die Ausgangspegel des DMA-Sequenzers 29 für den
jeweiligen Zustand angibt. In Tabelle 1 bedeutet der
logische Pegel "X", daß diese Bedingung einen beliebigen
Wert annehmen kann. Der Zustand 0 wird als "Leerlauf"-
Zustand definiert, in dem der DMA-Sequenzer auf
ein XREQ- oder Übertragungsanforderungs-Signal wartet,
um aktiv zu werden. Die Information aus Tabelle 1 definiert
die "1"- und "0"-Zustände von EOF, EOG, DMA
ACK und DMA REQ. Das Rahmenende-Signal EOF in Tabelle 1
ist "inaktiv", wenn EOF = "1". EOG = "1", definiert
den "inaktiven" Zustand. DMA ACK = "1" definiert den
inaktiven Zustand. DMA REQ gleich "0" bedeutet inaktiven
Zustand. Mit anderen Worten definiert der Pegel
eines jeden Eingangs und Ausgangs im Leerlauf den
inaktiven Zustand dieser Eingänge und Ausgänge.
Zustand 1 zeigt an, daß das XREQ-Signal aktiv geworden
ist. Dies veranlaßt DMA REQ, von "0" auf "1" umzuschalten.
DMAEN verbleibt inaktiv, da der DMA-Sequenzer
auf eine Quittung vom Hostrechner wartet.
Im Zustand 2 ist die Quittung eingetroffen, DMA ACK
wird aktiv, d. h. "0", und DMAEN wird aktiv von "1"
auf "0", so daß der periphere DMA-Controller 2 nun den
peripheren Datenbus und den peripheren Adreßbus steuert.
Im Zustand 2 bleiben EOG und EOF inaktiv.
Der Zustand 3, der dem Zustand 2 ähnlich ist, mit der
Ausnahme, das EOG aktiv wird von "1" auf "0", bewirkt,
das DMA REQ auf den inaktiven Pegel zurückgeht. DMAEN
verbleibt aktiv im Zustand 3.
Im Zustand 4 ist DMA ACK aktiv. EOF ist aktiv geworden
und DMA REQ ist inaktiv und DMAEN ist aktiv. Zustand 4
definiert die Rahmenende-Bedingung.
Im Zustandsdiagramm der Fig. 7 wird jeder der oben erwähnten
Zustände durch einen Kreis mit der Zustandsnummer
darin dargestellt, und die Pfeile zwischen den
Zuständen stellen die Ereignisse dar, die den DMA-
Sequenzer veranlassen, von einem Zustand in den anderen
überzugehen. Logische Ausdrücke für diese Ereignisse
sind neben den entsprechenden Pfeilen dargestellt.
Die Wahrheitstabelle (Tabelle 2), oben, stellt im wesentlichen
die gleiche Information dar, die in dem
Zustandsdiagramm der Fig. 7 gezeigt wird. Der Fachmann
kann leicht logische Gleichungen aus der Wahrheitstabelle
oder dem Zustandsdiagramm ableiten; daher werden
die Einzelheiten hier nicht dargestellt.
Tabelle 3 definiert die Wahrheitstabelle für die Start-
und Stopplogik, die durch die Bezugszeichen 33 und 35
in Fig. 2 dargestellt wird. Der Fachmann kann die Information
der Tabellen 2 und 3 problemlos benutzen, um
ein PAL so zu programmieren, daß man den DMA-Sequenzer,
die Startlogik und die Stopplogik erhält, oder er kann
mit Leichtigkeit die logischen Gleichungen für die
Funktionen dieser Schaltungen ableiten und kann natürlich
diese logischen Gleichungen benutzen, um eine geeignete
logische Schaltung zu entwerfen.
STRT= START
STP= STOP
STRTCMD= START-BEFEHL
STPCMD= STOP-BEFEHL
REQGT n = eine Gatteranforderung.
Der in Fig. 1 dargestellte Datenbusübertrager 13 kann
ein 74LS245-IC sein, das weit verbreitet ist. Die
erste Adreßdecoderschaltung 10 der Fig. 1 und die damit
verbundenen Schaltungen sind in Fig. 4A wesentlich
detaillierter dargestellt. Die erste Adreßcoderschaltung
10 besteht in der Hauptsache aus einem zehnstelligen
DIP-Schalter 10 A, einem digitalen Vergleicher
10 B, der ein 74LS85-IC sein kann, und einem digitalen
Vergleicher 10 C, der ein 74ALS520-IC sein kann.
Die Schaltung von Block 14 der Fig. 1 wird in allen
Einzelheiten in Fig. 4B dargestellt. die three-state-
Puffer werden durch die Bezugszeichen 14 A und 14 B dargestellt
und können 74LS244-three-state-Puffer-IC sein.
Fig. 4C zeigt die three-state-Puffer von Block 18 der
Fig. 1. Diese Puffer werden mit zwei 74LS244-IC ausgeführt.
Fig. 4D zeigt die Verbindungen zu dem PAL (programmierte
Array-Logik)-IC 29 A, durch den der DMA-Sequenzer 29,
die Startlogik 33 und die Stopplogik 35 ausgeführt
sind. Es wird ein PAL16R4-IC verwendet.
Fig. 4E ist ein detailliertes Blockschaltbild des zweitorigen
Rahmenkartenspeichers 15. Bauteilbezeichnungen
für im Handel erhältliche ICs sind innerhalb der
einzelnen Blocks angegeben. Das WRT⁺-Signal ist ein
Lese/Schreib-Signal. Das LISTEN(Liste freigeben)-Signal
wird durch die zweite Decodierlogik 10 (Fig. 1)
erzeugt, um anzuzeigen, daß der Hostrechner 3 auf den
Rahmenkartenspeicher 15 zugreift. Das HOST-Signal (Fig. 4E)
zeigt an, daß eine Programmübertragung an die Peripheriegeräte
49 abläuft.
Fig. 4F ist ein detailliertes Blockschaltbild der
Steuerlogikschaltung 45 von Fig. 1. Die Steuerlogikschaltung
45 setzt den DMA-Controller auf. Block 45 A
der Fig. 4F enthält Latches, durch die der Prozessor
3 A den Status des peripheren DMA-Controllers 2 lesen
kann, um damit zu entscheiden, ob eine DMA-Übertragung
sich ereignet und ob es Fehler im DMA-Betrieb gegeben
hat. Block 38, 44 umfaßt ein Zeit/Zählerschaltung,
die zwei Zwecken dient. Genau genommen enthält die
Schaltung drei Zähler, von denen zwei benutzt werden,
um das Schrittmacheruhrensignal zu erzeugen, welche
an die Leitung, die mit der Schrittmacheruhrschaltung
44 in Fig. 2 verbunden ist, angelegt wird. Der dritte
Zähler wird verwendet, um die Verzögerung zu erzeugen,
die durch die Quellenereigniszählerschaltung 38 (Fig. 2)
auf Leitung 37 entsteht und an die Startauswahlschaltung
33 und die Stoppauswahlschaltung 35 angelegt
wird.
Der 74LS374-IC, der in Block 80 der Fig. 4F enthalten
ist, wird als "Betriebsart-Steuerregister" verwendet.
Seine Ausgänge entscheiden, ob Betriebsart 0, Betriebsart 1,
Betriebsart 2, Betriebsart 3 oder Betriebsart 4
in die Steuerlogik 45 der Fig. 2 einprogrammiert
worden ist. Diese Schaltung gibt ebenfalls
die Schrittmacheruhr 44 und den Quellenereigniszähler
38 frei. Das 74LS153-IC, das in Block 81 der Fig. 4F
enthalten ist, ist eine Multiplexerschaltung und hat
die Aufgabe, die Quelle des Start- und Stoppsignals,
welches von den Blocks 33 und 35 in Fig. 2 erzeugt wird,
auszuwählen. Die Zeitquellenauswahlschaltung und Auslösequellenauswahlschaltung
sind in Block 40 und 41
der Fig. 4F enthalten. Diese Schaltung umfaßt einen
Multiplexer, der auswählt, welche der acht Leitungen,
die von den oktalen Latches ausgehen, mit dem UND-
Gatter 39 und dem Latch 43 verbunden werden. Typischerweise
schreibt der Prozessor 3 A vier Bit der
acht Oktal-Latches in Block 82, um den Auslöseauswahlkanal
zu bestimmem, und beschreibt die vier anderen
Bits, um den Ereignisquellenkanal auszuwählen.
Die DMA-Zeitquellenauswahlschaltung 40 und die Auslösequellenauswahl
41 sind mittels eines PAL16H2-programmierten
Array-Logik-IC ausgeführt, wie in Fig. 4F angegeben.
Tabelle 4 zeigt die Wahrheitstabelle, die in
diesen IC einprogrammiert ist.
Wobei A n , B n und C n die Multiplexerkanal-Auswahleingänge
und STB n ein Freigabeeingang ist, die alle von
der Steuerlogik 45 kommen.
In Tabelle 4 stellt ein Y n einen der beiden Ausgänge des
PAL's dar, d. h. entweder den Zeitquellenausgang oder
den Auslösequellenausgang. Die Eingänge sind ein Abtastsignal
STB n , A n , B n und C n , die einen Freigabeeingang
und drei Adreßeingänge darstellen. Das PAL-
Chip umfaßt zwei der Wahrheitstabellen der Tabelle 4,
eine für die DMA-Zeitquellenauswahlschaltung 40 und
eine weitere für die Auslösequellenauswahlschaltung
41. Für die eine der Wahrheitstabellen ist Y n XREQ
und für die andere Wahrheitstabelle entspricht Y n
dem Eingang zur Latch-Schaltung 43.
In der beschriebenen Ausführungsform der Erfindung ist
die Schaltung des peripheren DMA-Controllers 2 der
Fig. 1 auf einer gedruckten Schaltungskarte zusammengefaßt,
die in einen leeren Schlitz im IBM PC eingesteckt
werden kann. Dabei ist diese gedruckte Schaltungskarte
so ausgeführt, daß drei solcher gedruckten
Schaltungskarten in drei leere Schlitze im IBM
PC eingesteckt und verkettet ("daisy chained") werden
können, daß bis zu 192 Peripheriegeräte 49 durch DMA-
Übertragungen überwacht und daraus gelesen oder hineingeschrieben
werden können. Wenn mehr als einer der
peripheren DMA-Controller in den IBM PC eingesteckt
wird, arbeitet einer der drei peripheren DMA-Controller 2
als "Meister" und die anderen ein oder zwei als
"Sklaven", die in einer verketteten (daisy chained)
Anordnung mit dem Meister verbunden sind. Die DMAEN-
Leitung 23 und die DMA INIT-Leitung 24 des Meisters
sind mit den Leitungen 26 und 25 des "ersten" verkettetten
"Sklaven"-Geräts, d. h. mit demjenigen, welches
dem "Meister" am nächsten liegt, verbunden. Die Leitungen
23 und 24 des ersten verketteten "Sklaven" sind
dann entsprechend mit den Leitungen 26 und 25 des zweiten
verketteten "Sklaven"-Geräts verbunden. Die Stecker,
die durch Bezugszeichen 30 in Fig. 2 bezeichnet
werden, können so umgesetzt werden, das die RDMAEN-
Leitung 26 anstelle der DMAEN-Leitung 23 zu dem DMA-
Sequenzerblock 29 A und die RDMA INIT-Leitung 25 anstelle
der DMA INIT-Leitung 24 zur Steuerlogik 45
führt, wenn der periphere DMA-Controller 2 als "Sklave"
statt als "Meister" verwendet werden soll.
In der beschriebenen Ausführungsform der Erfindung
wird der Rahmenkartenspeicher-Adreßzähler 31 mittels
eines IC 74LS590 ausgeführt, wie in Fig. 4E gezeigt.
Der Quellenereigniszähler 38 wird als Intel 8254-IC
ausgeführt (siehe Fig. 4F). Die DMA-Zeitquellenauswahlschaltung
40 und die Auslösequellenauswahl 41 werden
ebenfalls in Fig. 4F dargestellt und sind mittels
eines PAL16H2-PAL's und einer 74LS374 oktalen Latch-
Schaltung ausgeführt.
Die oben beschriebene Ausführungsform der Erfindung
löst das alte Problem, einen wirtschaftlichen DMA-
Betrieb in Datenerfassungssystemen durchzuführen, indem
ein einziger DMA-Controllerkanal des Hostrechners
effektiven Zugang zu einer sehr großen Anzahl von
Peripheriegeräten hat und in der Lage ist, DMA-Übertragungen
vom großen Mengen von Daten von nicht-sequentiellen,
peripheren Adreßplätzen zu benachbarten,
aufeinanderfolgenden Plätzen im Speicher des Hostrechners
oder in umgekehrter Richtung durchzuführen.
Dies wird erreicht, ohne daß der Hostrechner vollständig
der DMA- oder Datenerfassungsfunktion gewidmet
werden muß.
Während die Erfindung mit Bezug auf eine Ausführungsform
davon beschrieben wurde, wird der Fachmann in der
Lage sein, verschiedenste Veränderungen an der beschriebenen
Ausführung der Erfindung durchzuführen,
ohne von dem wahren Geist und Inhalt der Erfindung abzugehen.
Die oben beschriebene Schaltung könnte beispielsweise
leicht abgewandelt werden, um in Verbindung
mit einem VME BUS, einem MULTI BUS, Bussen von
Computern, die durch die Digital Equipment Corporation
hergestellt wurden, Motorola's VERSA BUS und im allgemeinen
in Verbindung mit jedem speicherkartierten
Eingang/Ausgang-Untersystem zu arbeiten.
Claims (9)
1. Verfahren zur Durchführung einer DMA-Übertragung
zwischen einem Pufferspeicher und einer Vielzahl
von Peripheriegeräten mit nicht-aufeinanderfolgenden
Adressen, gekennzeichnet durch folgende Verfahrensschritte:
- (a) die Verwendung eines zweitorigen Speichers mit einem ersten Adressentor und einem entsprechenden ersten Datentor und einem zweiten Adressentor und einem entsprechenden zweiten Datentor;
- (b) das Betreiben eines Prozessors, um eine Byte-Anzahl und eine Anfangsadresse des Pufferspeichers in einem DMA-Controller zu schreiben;
- (c) das Schreiben der nicht-aufeinanderfolgenden Peripheriegeräteadressen an aufeinanderfolge Plätze des zweitorigen Speichers, beginnend mit einem ersten Platz, unter Benutzung des ersten Adressentors und des ersten Datentors;
- (d) die Erzeugung eines Anforderungssignals und dessen Übertragung an den DMA-Controller;
- (e) den Betrieb des DMA-Controllers, um in Reaktion auf das Anforderungssignal ein Quittungssignal zu erzeugen, wenn ein Datenbus verfügbar ist;
- (f) die Erzeugung eines Freigabesignals in Reaktion auf das Quittungssignal und Anlegen einer Adresse des ersten Platzes an das zweite Adressentor in Reaktion auf das Freigabesignal und Bewirken der Ausgabe der Peripherieadresse, die an diesem Platz gespeichert ist, über das zweite Datentor an die Adreßeingänge des Peripheriegeräts;
- (g) den Betrieb des CMA-Controllers zur Ausgabe der ersten Pufferspeicheradresse an den Pufferspeicher und Veranlassung der Übertragung eines ersten Byte von Daten zwischen dem adressierten Peripheriegerät und dem adressierten Platz des Pufferspeichers; und
- (h) die Wiederholung der Schritte (e) bis (g) für den nächsten, direkt folgenden Platz des zweitorigen Speichers und des Pufferspeichers.
2. Verfahren nach Anspruch 1 unter zusätzlicher
Verwendung eines Datenbusses und eines Adreßbusses,
wobei jeder von dem Prozessor und dem DMA-Controller
gesteuert werden kann, eines peripheren Datenbusses,
der mit den Datenanschlüssen der Peripheriegeräte und
dem ersten Datentor verbunden ist, und eines peripheren
Adreßbusses, der mit den Adreßanschlüssen der
Peripheriegeräte und mit dem ersten Adreßtor verbunden
ist, wobei Schritt (c) die Verbindung des Datenbusses
mit dem peripheren Datenbus in Reaktion auf
das Freigabesignal und die Verbindung des Adreßbusses
mit dem peripheren Adreßbus in Reaktion auf das Freigabesignal
und den Betrieb des Prozessors dergestalt,
daß er auf das erste Adreßtor und das erste Datentor
mittels des peripheren Adreßbusses und des peripheren
Datenbusses zugreit, umfaßt.
3. Verfahren nach Anspruch 2, wobei zusätzlich ein
Adreßzähler zur Speicherung von Adressen von Plätzen
im zweitorigen Speicher vorgesehen ist, der mit dem
zweiten Adreßtor verbunden ist, und wobei Schritt (f)
zusätzlich die Freigabe des Adreßzählers umfaßt, wodurch
darin gespeicherte Speicheradressen an das zweite
Adreßtor in Reaktion auf das Freigabesignal angelegt
werden.
4. Verfahren nach Anspruch 3, wobei Schritt (f)
das Abkoppeln des Adreßbusses von dem peripheren Datenbus
in Reaktion auf das Freigabesignal und die
Verbindung des zweiten Datentors mit dem peripheren
Adreßbus in Reaktion auf das Freigabesignal umfaßt.
5. Vorrichtung zur Durchführung einer DMA-Übertragung
zwischen einem Pufferspeicher und einer Vielzahl
von Peripheriegeräten mit nicht-aufeinanderfolgenden
Adressen, dadurch gekennzeichnet, daß sie folgende
Elemente umfaßt:
- (a) einen Speicher;
- (b) eine Vorrichtung zum Schreiben einer Byteanzahl und einer ersten Adresse des Pufferspeichers in einen DMA-Controller;
- (c) eine Vorrichtung zum Schreiben der nichtaufeinanderfolgenden Peripheriegeräte-Adressen an aufeinanderfolgende Plätze des Speichers;
- (d) eine Vorrichtung zur Erzeugung eines Anforderungssignals und seiner Übertragung an den DMA- Controller, wobei der DMA-Controller als Antwort ein Quittungssignal erzeugt;
- (e) eine Vorrichtung zur Erzeugung eines Freigabesignals in Reaktion auf das Quittungssignal;
- (f) eine Vorrichtung zum Zugriff auf aufeinanderfolgende Plätze des Speichers in Reaktion auf das Freigabesignal, wobei der Speicher veranlaßt wird, die Peripheriegeräte-Adressen auszugeben;
- (g) eine Vorrichtung zur Verbindung von Adreßeingängen der Peripheriegeräte mit den peripheren Ausgangsanschlüssen für Adressen und Daten der Peripheriegeräte mit dem Pufferspeicher in Reaktion auf das Freigabesignal; und
- (h) eine Vorrichtung zum Betrieb des DMA- Controllers dergestalt, daß er aufeinanderfolgende Plätze des Pufferspeichers anspricht und dabei die Übertragung eines ersten Bytes von Daten zwischen den adressierten Peripheriegeräten und dem adressierten Platz des Pufferspeichers bewirkt.
6. Vorrichtung zur Ausführung einer DMA-Übertragung
zwischen einem ersten Speicher und einer Vielzahl
von Peripheriegeräten mit nicht-aufeinanderfolgenden
Adressen, wobei der erste Speicher durch einen Datenbus
und einem Adressenbus mit einem Prozessor und einem
DMA-Controller verbunden ist und die Peripheriegeräte
mit einem peripheren Datenbus und einem peripheren
Adressenbus verbunden sind, gekennzeichnet
durch folgende Elemente:
- (a) einen zweiten Speicher, der die nicht-aufeinanderfolgenden Adressen an aufeinanderfolgenden Plätzen speichert; und
- (b) eine Steuervorrichtung zur Erzeugung einer
Vielzahl von Freigabesignalen auf Anforderung des
DMA-Controllers, wobei
- (1) der periphere Datenbus mit dem Datenbus verbunden wird,
- (2) der periphere Adreßbus von dem Adreßbus abgekoppelt wird,
- (3) ein Datentor des zweiten Speichers mit dem peripheren Adreßbus verbunden wird, und
- (4) der zweite Speicher so adressiert wird, und er veranlaßt wird, eine der nicht-aufeinanderfolgenden Adressen an den peripheren Datenbus auszugeben und die zweite Speicheradresse heraufzusetzen,
- all das in Reaktion auf jeweils ein Freigabesignal.
7. Vorrichtung nach Anspruch 6 einschließlich einer
Vorrichtung , die den Prozessor veranlaßt, die
nicht-aufeinanderfolgenden Adressen in den zweiten
Speicher zu schreiben.
8. Vorrichtung nach Anspruch 7 einschließlich einer
Vorrichtung, die den DMA-Controller veranlaßt,
auf aufeinanderfolgende Plätze des ersten Speichers
zuzugreifen, wenn der Datenbus mit dem peripheren Datenbus
in Reaktion auf eines der Freigabesignale verbunden
ist.
9. Vorrichtung nach Anspruch 8, wobei der DMA-
Controller die Steuerung des Datenbusses und des
Adreßbusses nach der Erzeugung eines jeden Freigabesignals
an den Prozessor zurückgibt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/829,408 US4847750A (en) | 1986-02-13 | 1986-02-13 | Peripheral DMA controller for data acquisition system |
Publications (1)
Publication Number | Publication Date |
---|---|
DE3704056A1 true DE3704056A1 (de) | 1987-08-20 |
Family
ID=25254455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19873704056 Withdrawn DE3704056A1 (de) | 1986-02-13 | 1987-02-10 | Peripherer dma-controller fuer datenerfassungssysteme |
Country Status (5)
Country | Link |
---|---|
US (1) | US4847750A (de) |
JP (1) | JPS62210560A (de) |
DE (1) | DE3704056A1 (de) |
FR (1) | FR2594242B1 (de) |
GB (1) | GB2186719B (de) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4989113A (en) * | 1987-03-13 | 1991-01-29 | Texas Instruments Incorporated | Data processing device having direct memory access with improved transfer control |
US5241661A (en) * | 1987-03-27 | 1993-08-31 | International Business Machines Corporation | DMA access arbitration device in which CPU can arbitrate on behalf of attachment having no arbiter |
US4901234A (en) * | 1987-03-27 | 1990-02-13 | International Business Machines Corporation | Computer system having programmable DMA control |
US4975832A (en) * | 1987-06-25 | 1990-12-04 | Teac Corporation | Microcomputer system with dual DMA mode transmissions |
US5185877A (en) * | 1987-09-04 | 1993-02-09 | Digital Equipment Corporation | Protocol for transfer of DMA data |
US5142672A (en) * | 1987-12-15 | 1992-08-25 | Advanced Micro Devices, Inc. | Data transfer controller incorporating direct memory access channels and address mapped input/output windows |
JPH01237864A (ja) * | 1988-03-18 | 1989-09-22 | Fujitsu Ltd | Dma転送制御装置 |
US4980846A (en) * | 1988-04-07 | 1990-12-25 | Impact Systems, Inc. | Process and apparatus for controlling on-line a parameter of a moving sheet |
JPH01265347A (ja) * | 1988-04-18 | 1989-10-23 | Matsushita Electric Ind Co Ltd | アドレス生成装置 |
US5625842A (en) * | 1988-05-18 | 1997-04-29 | Zilog, Inc. | System for the automatic transfer of message status in digital data communication |
JPH0233645A (ja) * | 1988-07-22 | 1990-02-02 | Mitsubishi Electric Corp | コンピュータ |
US5161219A (en) * | 1989-01-13 | 1992-11-03 | International Business Machines Corporation | Computer system with input/output cache |
JP2550496B2 (ja) * | 1989-03-30 | 1996-11-06 | 三菱電機株式会社 | Dmaコントローラ |
DE4022365C2 (de) * | 1989-07-20 | 2000-02-24 | Nippon Telegraph & Telephone | Datenübertragungssystem |
EP0454064B1 (de) * | 1990-04-23 | 1999-08-18 | Matsushita Electric Industrial Co., Ltd. | Datenübertragungssystem und -Verfahren |
EP0454605A3 (en) * | 1990-04-25 | 1992-04-22 | International Business Machines Corporation | Bus request device in a direct memory access (dma) system |
US5696989A (en) * | 1990-06-25 | 1997-12-09 | Nec Corporation | Microcomputer equipped with DMA controller allowed to continue to perform data transfer operations even after completion of a current data transfer operation |
EP0473276B1 (de) * | 1990-08-31 | 1996-12-18 | Advanced Micro Devices, Inc. | Integrierte digitale Verarbeitungsvorrichtung |
US5414815A (en) * | 1990-09-17 | 1995-05-09 | Schwede; Gary W. | Method and apparatus for transferring data directly between a memory device and a peripheral device in a single address cycle under the control of a processor |
US5390304A (en) * | 1990-09-28 | 1995-02-14 | Texas Instruments, Incorporated | Method and apparatus for processing block instructions in a data processor |
JPH0823859B2 (ja) * | 1990-09-28 | 1996-03-06 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システム |
US5313610A (en) * | 1991-07-03 | 1994-05-17 | Picker International, Inc. | Direct memory access control device for use with a single n-bit bus with MOF the n-bits reserved for control signals and (n-m) bits reserved for data addresses |
WO1993012481A2 (en) * | 1991-12-13 | 1993-06-24 | Avid Technology, Inc. | Buffer and frame indexing |
TW276312B (de) * | 1992-10-20 | 1996-05-21 | Cirrlis Logic Inc | |
US5522050A (en) * | 1993-05-28 | 1996-05-28 | International Business Machines Corporation | Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus |
US5548746A (en) * | 1993-11-12 | 1996-08-20 | International Business Machines Corporation | Non-contiguous mapping of I/O addresses to use page protection of a process |
US5640598A (en) * | 1994-07-12 | 1997-06-17 | Mitsubishi Denki Kabushiki Kaisha | Data transfer processing system |
CA2135505C (en) * | 1994-11-09 | 1999-11-09 | Patrick K. Kam | Dma emulation for non-dma capable interface cards |
US5678063A (en) * | 1995-04-19 | 1997-10-14 | National Instruments Corporation | System and method for performing efficient random write operations |
US5668957A (en) * | 1995-11-02 | 1997-09-16 | International Business Machines Corporation | Method and apparatus for providing virtual DMA capability on an adapter connected to a computer system bus with no DMA support |
US5781747A (en) * | 1995-11-14 | 1998-07-14 | Mesa Ridge Technologies, Inc. | Method and apparatus for extending the signal path of a peripheral component interconnect bus to a remote location |
JP2996183B2 (ja) * | 1996-08-16 | 1999-12-27 | 日本電気株式会社 | Dma機能を備えたデータ処理装置 |
US6092116A (en) * | 1996-12-11 | 2000-07-18 | Lsi Logic Corporation | DMA controller with response message and receive frame action tables |
US6055619A (en) * | 1997-02-07 | 2000-04-25 | Cirrus Logic, Inc. | Circuits, system, and methods for processing multiple data streams |
US6259957B1 (en) | 1997-04-04 | 2001-07-10 | Cirrus Logic, Inc. | Circuits and methods for implementing audio Codecs and systems using the same |
US6145027A (en) * | 1997-07-09 | 2000-11-07 | Texas Instruments Incorporated | DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements |
US6453365B1 (en) | 1998-02-11 | 2002-09-17 | Globespanvirata, Inc. | Direct memory access controller having decode circuit for compact instruction format |
US6412027B1 (en) | 1998-02-11 | 2002-06-25 | Globespanvirata, Inc. | Direct memory access controller having on-board arbitration circuitry |
US6415338B1 (en) * | 1998-02-11 | 2002-07-02 | Globespan, Inc. | System for writing a data value at a starting address to a number of consecutive locations equal to a segment length identifier |
JP3600001B2 (ja) * | 1998-03-02 | 2004-12-08 | 沖電気工業株式会社 | 割り込み処理回路 |
US6087867A (en) * | 1998-05-29 | 2000-07-11 | Lsi Logic Corporation | Transaction control circuit for synchronizing transactions across asynchronous clock domains |
US6301264B1 (en) | 1998-06-02 | 2001-10-09 | Lsi Logic Corporation | Asynchronous data conversion circuit |
US6105086A (en) * | 1998-06-04 | 2000-08-15 | Lsi Logic Corporation | Data communication circuit and method for buffering data between a shared resource and multiple interfaces |
US6122680A (en) * | 1998-06-18 | 2000-09-19 | Lsi Logic Corporation | Multiple channel data communication buffer with separate single port transmit and receive memories having a unique channel for each communication port and with fixed arbitration |
US6219725B1 (en) * | 1998-08-28 | 2001-04-17 | Hewlett-Packard Company | Method and apparatus for performing direct memory access transfers involving non-sequentially-addressable memory locations |
US6393498B1 (en) * | 1999-03-02 | 2002-05-21 | Mentor Arc Inc. | System for reducing processor workloads with memory remapping techniques |
JP3446653B2 (ja) * | 1999-03-26 | 2003-09-16 | 日本電気株式会社 | データ転送装置 |
JP2001154976A (ja) * | 1999-11-25 | 2001-06-08 | Canon Inc | Dmaコントローラ及びその制御方法 |
US6687255B1 (en) | 2000-03-21 | 2004-02-03 | Lsi Logic Corporation | Data communication circuit having FIFO buffer with frame-in-FIFO generator |
US6622183B1 (en) | 2000-03-21 | 2003-09-16 | Lsi Logic Corporation | Data transmission buffer having frame counter feedback for re-transmitting aborted data frames |
US20050271126A1 (en) * | 2004-06-04 | 2005-12-08 | Chen-Min Chiang | High-speed transmission apparatus |
US7734832B2 (en) * | 2004-11-10 | 2010-06-08 | Microsoft Corporation | Method and system for structured programmed input/output transactions |
US8079036B2 (en) * | 2004-11-10 | 2011-12-13 | Microsoft Corporation | Method and system for structured DMA transactions |
JP2006251916A (ja) * | 2005-03-08 | 2006-09-21 | Fujitsu Ltd | Dma転送システム及びdma転送方法 |
GB2433333B (en) * | 2005-12-13 | 2011-07-13 | Advanced Risc Mach Ltd | Distributed direct memory access provision within a data processing system |
KR20150095139A (ko) * | 2014-02-12 | 2015-08-20 | 삼성전자주식회사 | 채널 버퍼로의 직접 접근이 가능한 직접 메모리 접근 컨트롤러 및 시스템. |
US20150326684A1 (en) * | 2014-05-07 | 2015-11-12 | Diablo Technologies Inc. | System and method of accessing and controlling a co-processor and/or input/output device via remote direct memory access |
US10983936B2 (en) | 2019-02-27 | 2021-04-20 | Microchip Technology Incorporated | Programmable arbitrary sequence direct memory access controller for configuring multiple core independent peripherals |
US11886365B2 (en) * | 2020-09-14 | 2024-01-30 | Apple Inc. | DMA control circuit with quality of service indications |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3973243A (en) * | 1974-10-15 | 1976-08-03 | The Bendix Corporation | Digital image processor |
US4271466A (en) * | 1975-02-20 | 1981-06-02 | Panafacom Limited | Direct memory access control system with byte/word control of data bus |
US4075691A (en) * | 1975-11-06 | 1978-02-21 | Bunker Ramo Corporation | Communication control unit |
US4067059A (en) * | 1976-01-29 | 1978-01-03 | Sperry Rand Corporation | Shared direct memory access controller |
JPS533029A (en) * | 1976-06-30 | 1978-01-12 | Toshiba Corp | Electronic computer |
GB1574468A (en) * | 1976-09-30 | 1980-09-10 | Burroughs Corp | Input-output subsystem in a digital data processing system |
JPS5454540A (en) * | 1977-10-11 | 1979-04-28 | Hitachi Ltd | Data buscontrol system |
DK157954C (da) * | 1978-01-23 | 1990-08-13 | Data General Corp | Databehandlingsanlaeg med direkte lageradgang |
US4164786A (en) * | 1978-04-11 | 1979-08-14 | The Bendix Corporation | Apparatus for expanding memory size and direct memory addressing capabilities of digital computer means |
JPS5911135B2 (ja) * | 1979-01-17 | 1984-03-13 | 株式会社日立製作所 | デ−タ処理システムのデ−タ転送方式 |
US4319323A (en) * | 1980-04-04 | 1982-03-09 | Digital Equipment Corporation | Communications device for data processing system |
JPS5789128A (en) * | 1980-11-25 | 1982-06-03 | Hitachi Ltd | Controlling system for information interchange |
JPS5793422A (en) * | 1980-11-29 | 1982-06-10 | Omron Tateisi Electronics Co | Dma controller |
US4400772A (en) * | 1980-12-30 | 1983-08-23 | International Memories, Inc. | Method and apparatus for direct memory access in a data processing system |
US4658350A (en) * | 1981-08-12 | 1987-04-14 | International Business Machines Corp. | Extended addressing apparatus and method for direct storage access devices |
US4482951A (en) * | 1981-11-12 | 1984-11-13 | Hughes Aircraft Company | Direct memory access method for use with a multiplexed data bus |
FR2523746B1 (fr) * | 1982-03-17 | 1987-07-10 | Inst Francais Du Petrole | Dispositif associe a un calculateur pour commander des transferts de donnees entre un systeme d'acquisition de donnees et un ensemble comportant un appareil d'enregistrement et de lecture |
US4538224A (en) * | 1982-09-30 | 1985-08-27 | At&T Bell Laboratories | Direct memory access peripheral unit controller |
US4530053A (en) * | 1983-04-14 | 1985-07-16 | International Business Machines Corporation | DMA multimode transfer controls |
GB2139384B (en) * | 1983-04-19 | 1986-05-14 | Texas Instruments Ltd | Computing apparatus |
US4591973A (en) * | 1983-06-06 | 1986-05-27 | Sperry Corporation | Input/output system and method for digital computers |
US4528626A (en) * | 1984-03-19 | 1985-07-09 | International Business Machines Corporation | Microcomputer system with bus control means for peripheral processing devices |
GB2162406B (en) * | 1984-06-18 | 1988-03-09 | Logica | Computer system |
JPS6145347A (ja) * | 1984-08-10 | 1986-03-05 | Nec Corp | マイクロコンピユ−タ |
-
1986
- 1986-02-13 US US06/829,408 patent/US4847750A/en not_active Expired - Fee Related
-
1987
- 1987-02-03 JP JP62023413A patent/JPS62210560A/ja active Pending
- 1987-02-10 DE DE19873704056 patent/DE3704056A1/de not_active Withdrawn
- 1987-02-12 FR FR878701774A patent/FR2594242B1/fr not_active Expired - Fee Related
- 1987-02-12 GB GB8703270A patent/GB2186719B/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
FR2594242A1 (fr) | 1987-08-14 |
JPS62210560A (ja) | 1987-09-16 |
FR2594242B1 (fr) | 1993-04-30 |
GB2186719B (en) | 1990-04-18 |
GB2186719A (en) | 1987-08-19 |
GB8703270D0 (en) | 1987-03-18 |
US4847750A (en) | 1989-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3704056A1 (de) | Peripherer dma-controller fuer datenerfassungssysteme | |
DE3688763T2 (de) | Mehrfachport-Übertragungsadaptiervorrichtung. | |
DE3204905C2 (de) | ||
DE3650036T2 (de) | Mehrfachport-Diensterweiterungsadapter für Übertragungssteuerung. | |
DE3810231C2 (de) | ||
DE68922784T2 (de) | Mehrfachbus-Mikrorechnersystem mit Busarbitrierung. | |
DE3300262C2 (de) | ||
DE2856483C2 (de) | ||
DE69217664T2 (de) | Multimedia-signalprozessor-rechnersystem | |
DE4121446C2 (de) | Terminal-Server-Architektur | |
DE3650092T2 (de) | E/a-steuerung mit zwei funktionen. | |
EP0006164B1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE2448212A1 (de) | Asynchrone sammelleitung zur selbstbestimmten kommunikation zwischen mutterrechnergeraeten und tochtergeraeten | |
DE68920929T2 (de) | Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. | |
DE3110196A1 (de) | Datenverarbeitungssystem | |
DE2422802A1 (de) | Datenverarbeitungsanlage | |
DE3732798A1 (de) | Datenverarbeitungssystem mit ueberlappendem zugriff auf einen globalen speicher durch eine quelle mit hoher prioritaet | |
DE69031524T2 (de) | Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen | |
DE3725343A1 (de) | Vielzweck-kanalsteuersystem | |
DE4018481C2 (de) | ||
DE3642324A1 (de) | Multiprozessoranlage mit prozessor-zugriffssteuerung | |
DE4003759A1 (de) | Verfahren und anordnung zur uebertragung von daten ueber einen bus zwischen selektiv ankoppelbaren stationen | |
DE69214702T2 (de) | Speicherzugriff für die Datenübertragung in einer Ein-Ausgabevorrichtung | |
DE69025524T2 (de) | Vorrichtung und Verfahren zur Steuerung von Speicherzugriffsanforderungen in einem digitalen Datenverarbeitungssystem | |
EP0107026A1 (de) | Speicherprogrammierbare Steuerung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8141 | Disposal/no request for examination |