DE3704056A1 - Peripherer dma-controller fuer datenerfassungssysteme - Google Patents

Peripherer dma-controller fuer datenerfassungssysteme

Info

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
Application number
DE19873704056
Other languages
English (en)
Inventor
Richard A Daniel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intelligent Instrumentation Inc
Original Assignee
Intelligent Instrumentation Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intelligent Instrumentation Inc filed Critical Intelligent Instrumentation Inc
Publication of DE3704056A1 publication Critical patent/DE3704056A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • 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.
Tabelle 1
Tabelle 2
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.
Tabelle 3
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.
Tabelle 4
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.
DE19873704056 1986-02-13 1987-02-10 Peripherer dma-controller fuer datenerfassungssysteme Withdrawn DE3704056A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 マイクロコンピユ−タ

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