DE3810231C2 - - Google Patents

Info

Publication number
DE3810231C2
DE3810231C2 DE3810231A DE3810231A DE3810231C2 DE 3810231 C2 DE3810231 C2 DE 3810231C2 DE 3810231 A DE3810231 A DE 3810231A DE 3810231 A DE3810231 A DE 3810231A DE 3810231 C2 DE3810231 C2 DE 3810231C2
Authority
DE
Germany
Prior art keywords
dma
channel
channels
devices
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE3810231A
Other languages
English (en)
Other versions
DE3810231A1 (de
Inventor
Chester Asbury Heath
Jorge Eduardo Boca Raton Fla. Us Lenta
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3810231A1 publication Critical patent/DE3810231A1/de
Application granted granted Critical
Publication of DE3810231C2 publication Critical patent/DE3810231C2/de
Granted 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/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/374Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator

Description

Die vorliegende Erfindung bezieht sich auf einen Digitalrechner nach dem Oberbegriff des Anspruchs 1 und ein Verfahren zu seinem Betrieb. Die Erfindung wird insbesondere in einem Mikrocomputer- oder Mini­ computersystem mit einer DMA-Steuereinheit (DMA = Direct Memory Access, direkter Speicherzugriff) benutzt und erlaubt DMA-Übertragungen für mehr Peripheriegeräte als im System physische DMA-Kanäle vorhanden sind. Die Verwendung von gemeinsam benutzbaren DMA-Kanälen ist in der Firmendruckschrift INTEL AP-286 "80186/188 Interface to Intel Microcontrollers" vom Oktober 1986 beschrieben.
Viele heutige Computersysteme verwenden DMA-Kanäle, um Peripheriegeräten die Übertragung von Daten, hauptsächlich in den und aus dem Hauptspeicher ohne Umweg über die CPU (Central Processing Unit, zentrale Recheneinheit) zu erlauben. Ein Umgehen der CPU hat natürlich den Vorteil erhöhter Datenübertragungsraten und verbesserter Gesamtsystemeffizienz, weil die CPU frei ist, während der Datenübertragung andere Aufgaben zu verrichten.
Es ist heute die am meisten verbreitete Praxis, einen physischen DMA-Kanal für jede Peripherieeinheit bereit­ zustellen, der DMA-Zugriffe erlaubt sind. Ein Beispiel eines Computersystems, das eine solche Anordnung verwendet, ist der IBM PC Computer.
Die Anzahl der Peripheriegeräte, die ein Benutzer an sein Computersystem anschließen kann, steigt jedoch und es wird erwartet, daß sie weiter steigt; z. B. sind kürzlich optische Plattenleser, zusätzliche Kommunikationsgeräte, Festplatten, Magnetband-Back-up- Geräte, Hochgeschwindigkeitsdrucker usw. verfügbar geworden, die alle vorteilhaften Gebrauch von DMA- Zugriffen machen können.
Auf der anderen Seite kostet das Hinzufügen weiterer physischer DMA-Kanäle Systemhardware, also eine höhere Anzahl integrierter Schaltkreise, Platz auf der Platine und auf dem Bus. Es wurde in Erwägung gezogen, DMA-Kanäle von Peripheriegeräten gemeinsam benutzen zu lassen, mit der Einschränkung einer gegenseitigen exklusiven Benutzung. Die gemeinsame Nutzung von DMA-Kanälen wird z. B. in den IBM XT und AT Computersystemen verwendet. Diese Betriebsweisen verlangen sowohl umfangreiche Änderungen am Betriebssystem als auch zusätzliche Unterprogramme, um die mit jedem DMA-Kanal verknüpften Peripheriegeräte daran zu hindern, gleichzeitig zu arbeiten. Eine bedeutende Belastung der Leistungsfähigkeit erfolgt auch dann, wenn die Dateiverwaltung nicht hinreichend "intelligent" abläuft, um überlappte Suchoperationen der Leseköpfe zu erlauben. Das Problem verschärft sich in Situationen, z. B. wenn eine LAN-Zusatzeinrichtung (LAN = Local Area Network, lokales Netzwerk) und eine Datei-, Steuer- und Verwaltungseinheit die gleiche DMA-Stufe (level) gemeinsam benutzen und eine LAN-Dateiserviceroutine zwischen den beiden Geräten hin und her vermitteln muß.
Das US Patent Nr. 39 25 766 von Bardotti et al. offenbart ein Computersystem, bei dem Peripheriegeräten Prioritätsstufen zugeteilt sind und Zugriffsanforde­ rungen zu einem Speicher gemäß den Prioritätsstufen aus­ gewählt werden. Die Zuordnung der Prioritätsstufen kann geändert werden je nach den Gründen, aus denen die Anforderungssignale erzeugt werden, oder je nach den speziellen Lastbedingungen des Centralprozessors. Es werden jedoch keine DMA-Pfade bereitgestellt.
In dem US Patent Nr. 44 00 771 von Suzuki et al. ist ein Multiprozessorsystem gezeigt, in welchem jeder der Prozessoren auf einen einzigen Speicher zugreifen kann. Ein programmierbarer Registerschaltkreis speichert Prioritätsinformation, die einen Prioritätsgrad für den Speicherzugriff jedes der Prozessoren angibt. Die Prioritätsinformation kann von Hand, durch einen externen Schaltkreis, oder von wenigstens einem der Prozessoren geändert werden. Das Patent von Suzuki et al. verwendet dennoch keinen DMA-Zugriff von mehreren Peripheriegeräten auf einen Speicher.
Das US Patent Nr. 42 57 095 von Nadir ist bezüglich seiner Lehre über Arbitrierungstechniken für Bus-Zugriffe (bus arbitration techniques) von Interesse, ebenso das Buch "Multi-Microprocessor Systems for Real- Time Applications" von B. Conte und D. Corso, Dordrecht, Holland, 1985, insbesondere S. 117-224.
Die folgenden US Patente betreffen den allgemeinen Hintergrund bezüglich Computersystemen mit DMA-Steuereinheiten:
US 43 71 932 von Dinwiddie, Jr., et al., US 44 19 728 von Larson, US 45 38 224 von Peterson, US 45 56 952 von Brewer et al. und US 45 84 703 von Hallberg.
Es ist daher die Aufgabe der vorliegenden Erfindung, einen Digitalrechner der eingangs genannten Art anzugeben, bei dem die Anzahl der über DMA-Kanäle anschließbaren Peripheriegeräte über die Zahl der physisch vorhandenen DMA-Kanäle hinaus erhöht werden kann, ohne daß ein großer Schaltungsaufwand oder umfangreiche Änderungen der Programmierung erforderlich sind; außerdem soll ein entsprechendes Verfahren für eine DMA-Zugriffssteuerung angegeben werden.
Diese Aufgabe wird durch die in den Ansprüchen 1 und 5 gekennzeichnete Erfindung gelöst; Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wird ein Computersystem bereitgestellt, in dem eine Vielzahl von Peripheriegeräten DMA-Zugriff verlangt, wobei die Anzahl der Peripheriegeräte größer als die Anzahl der in dem System bereitgestellten DMA-Kanäle ist. Einige der Peripheriegeräte erhalten feste, exklusiv zugeordnete DMA-Kanäle zugeteilt, während sich andere der Peripheriegeräte die übrigbleibenden DMA-Kanäle teilen. Diese gemeinsam benutzten übrigbleibenden Kanäle werden im folgenden als "programmierbare" DMA-Kanäle bezeichnet. Diese zusätzlichen DMA-Kanäle sind nicht physisch vorhanden und können deshalb als "virtuelle" DMA-Kanäle bezeichnet werden, um sie von den physischen oder "realen" DMA- Kanälen zu unterscheiden.
Jedem der Peripheriegeräte wird eine Kanalpriorität zugewiesen. Ein Arbitrierungsschaltkreis (arbitration circuit) speichert Werte der DMA-Kanalzuweisung, und zwar einen für jeden der im System bereitgestellten DMA-Kanäle. Für jedes Peripheriegerät mit exklusiv zugeordnetem DMA-Kanal wird ein fester Wert der DMA-Kanalzuweisung gespeichert, während für die übrigen Peripheriegeräte, die sich die programmierbaren DMA-Kanäle teilen, ein programmierbarer Wert der DMA-Kanalzuweisung gespeichert wird.
Wenn ein Peripheriegerät DMA-Zugriff verlangt, dann übermittelt es seinen Kanalprioritätswert auf einen Arbitrierungs-Bus. Der höchste Kanalprioritätswert "gewinnt" auf dem Arbitrierungs-Bus. Der gewinnende Kanalprioritätswert wird mit den festen und programmierbaren DMA-Kanalzuweisungswerten verglichen. Wird bei dem Vergleich des Kanalprioritätswertes eine Übereinstimmung mit einem der gespeicherten festen oder der programmierbaren DMA-Kanalzuweisungswerte festgestellt, dann wird Zugriff auf den entsprechenden DMA-Kanal gewährt.
Es ist ein Vorteil der Erfindung, daß jedem Peripheriegerät mit DMA-Zugriffsmöglichkeit seine eigene Arbitrierungsstufe für den DMA-Zugriff zugewiesen wird. Es ist ein weiterer Vorteil der Erfindung, daß die Zuweisung von DMA-Kanälen an Peripheriegeräte leicht softwaremäßig gesteuert werden kann, ohne umfangreiche Änderungen am Betriebssystem zu erfordern.
Im folgenden Ausführungsbeispiel wird auf Zeichnungen Bezug genommen. Hierin bedeuten:
Fig. 1 ein Blockdiagramm eines Computersystems, in dem eine Ausführungsform der Erfindung verwendet ist.
Fig. 2 eine Prinzipdarstellung zur Erläuterung der Wirkungsweise der vorliegenden Erfindung.
Fig. 3 ein logisches Diagramm mit Einzelheiten eines Arbitrierungsschaltkreises, das Peripheriegeräte des Computersystems von Fig. 1 zeigt.
Fig. 4 ein Diagramm mit Einzelheiten eines Bus im Computersystem von Fig. 1.
Fig. 5 ein detailiertes logisches Diagramm eines zentralen Arbitrierungs-Steuerschaltkreises, der in dem Computersystem gemäß der Erfindung verwendet wird.
Fig. 6 ein detailiertes logisches Diagramm eines DMA-Steuerschaltkreises, der in einer Ausführungsform der Erfindung benutzt wird.
Zunächst wird auf Fig. 1 der beiliegenden Zeichnungen Bezug genommen, worin ein Blockdiagramm eines Computersystems gezeigt ist, in welchem die gegenwärtige Erfindung vorteilhaft genutzt wird.
Eine CPU kommuniziert mit einem Hauptspeicher 15, einer Bus-Steuereinheit 16 und einem Mathematik-Co-Prozessor 14 über einen System-Bus 26. Die Kommunikation zwischen der CPU und ihren angeschlossenen Peripheriegeräten wird durch eine Bus-Steuereinheit 16 vermittelt, die mit den Peripheriegeräten über einen Gemeinschafts-Bus (family bus) 25 verbunden ist. Im vorliegenden Beispiel gehören zu den Peripheriegeräten ein Hilfsspeicher 17, zwei Kommunikationsgeräte 18 und 19, eine Festplatte (hard file) 20, eine optische Platte 21 und zwei Diskettenstationen 22, 23. Andere Peripheriegeräte können natürlich, je nach Systembedürfnissen, genauso gut benützt werden. Die Peripheriegeräte werden allgemein durch die DMA-untergeordneten (slave) Einheiten 24 dargestellt.
Eine DMA-Steuereinheit 12 wird bereitgestellt, um wenig­ stens ausgewählten Peripheriegeräten direkten Speicherzugriff zu erlauben. Zu diesem Zweck wird, wie weiter unten genauer erklärt werden wird, der Gemeinschafts-Bus, oder zumindest ein Teil davon, zu der DMA-Steuereinheit 12 abgezweigt. Jedes Peripheriegerät mit DMA-Zugriffsmöglichkeit ist mit einem Arbitrierungsschaltkreis 28 ausgestattet und jedem Peripheriegerät, das einen Arbitrierungsschaltkreis hat, wird eine Arbitrierungs-(oder Prioritäts-)Stufe (arbitration level) zugeordnet. Wie wieder weiter unten genauer erklärt werden wird, gehört zur DMA-Steuereinheit ein zentraler Arbitrierungssteuer­ schaltkreis 11, um zwischen Peripheriegeräten zu arbitrieren (schlichten), die gleichzeitig DMA-Zugriff verlangen, und um die DMA-Steuereinheit darüber zu informieren, welches Peripheriegerät Zugriff erhalten soll.
In dem Computersystem gemäß dem Ausführungsbeispiel der Erfindung ist die Anzahl der Peripheriegeräte mit DMA- Zugriffserlaubnis größer als die Anzahl der im System vorhandenen physischen DMA-Kanäle. Gemäß der vorliegenden Erfindung sind einigen dieser Geräte exklusiv feste DMA-Kanäle zugeordnet, während sich die anderen die restlichen DMA-Kanäle teilen. Auf die gemeinsam benutzten (programmierbaren) Kanäle wird in der Reihenfolge von zuvor zugewiesenen Prioritäten zugegriffen.
Im vorliegenden Beispiel wird angenommen, daß es acht physische DMA-Kanäle gibt, die mit 0 bis 7 bezeichnet werden. Es wird weiterhin angenommen, daß die Kanäle 0 und 4 gemeinsam benutzt (shared) sind, und daß die restlichen Kanäle 1-3 und 5-7 individuellen Peripheriegeräten zugeordnet sind.
Im folgenden wird auf Fig. 2 Bezug genommen, welche eine Zeichnung darstellt, um die Prinzipien der vorliegenden Erfindung zu erklären. Ein Comparator (Vergleichsschaltkreis) mit zwei Gruppen von Eingängen wird bereitgestellt. Die eine Gruppe besteht aus vier Leitungen eines Bus ARBUS (arbitration bus). Der Wert auf dem ARBUS kennzeichnet das Peripheriegerät, das gegenwärtig einen DMA-Kanal verlangt und die höchste Arbitrierungs(prioritäts)-Stufe hat. Wenn dieses Peripheriegerät eines von jenen mit fest zugeordneten Kanälen 1-3 oder 5-7 ist, dann wird ihm direkt Zugriff auf jenen Kanal gewährt. Wenn andererseits das Peripheriegerät eines von jenen ist, die sich einen programmierbaren DMA-Kanal (Kanäle 0 und 4) teilen, dann wird ihm ein Zugriff nur dann gewährt, wenn seine Prioritätsstufe einem der in den Registern 6 und 7 voreingestellten Werte entspricht. Dieser Vorgang wird im folgenden genauer unter Bezug auf die Fig. 3-6 erklärt werden.
Fig. 3 ist ein logisches Schalt-Diagramm des Arbitrierungsschaltkreises 28, der in jedem Peripherie­ gerät mit DMA-Zugriffsmöglichkeit verwendet wird. Die dem Peripheriegerät zugeordnete Arbitrierungsstufe (arbitration level) wird in ein Register 70 gesetzt, auf das im folgenden als das Register der Kanalprioritäts­ zuweisung Bezug genommen wird. Dies kann nach einer von vielen bekannten Techniken erfolgen. Vorzugsweise adressiert die CPU das Peripheriegerät über einen vorher zugewiesenen Port (Anschluß), so daß die Arbitrierungs­ stufe softwaremäßig gesetzt werden kann. Dies kann vorgenommen werden über das BIOS (Basic Input-Output System, elementares Eingabe-Ausgabesystem), das POST (Power-On Self Test, Selbsttest beim Einschalten), beim Rücksetzen (reset), das Betriebssystem oder, wenn gewünscht, über das Anwendungsprogramm. Andererseits ist es möglich, den Wert der Kanalprioritätszuweisung mit Hardware-Schaltern einzugeben.
Der verwendete Arbitrierungsschaltkreis 28 ist mit einem Arbiter 72 implementiert. Dieser Schaltkreis und die verschiedenen in Fig. 3 angezeigten Signale sind offenbart und im Detail diskutiert im American National Standard/IEEE Standard No. ANSI/IEEE Std 696-1983, veröffentlicht durch das Institute of Electrical and Electronics Engineers, Inc., am 13. Juni 1983. Im allgemeinen ist jedes in das Arbitrierungsschema einge­ gliederte Gerät mit einem derartigen Schaltkreis ausgestattet und die Schaltkreise sind über einen ARBUS untereinander verbunden. Im gezeigten Beispiel hat der ARBUS vier Datenleitungen TMA 0-TMA 3, womit 16 verschiedene Arbitrierungsstufen ermöglicht werden. Jedoch kann jede gewünschte Anzahl verwendet werden. Während einer Arbitrierungszeitperiode, die durch die Steuersignale pHLDA und HOLD gezeichnet ist, übermitteln alle Geräte, die Kontrolle über den Bus zu erhalten wünschen (bei jenen Geräten hat das IWANT-Signal den hohen Signalpegel bzw. den ("1")-Zustand), ihre Arbitrierungs(prioritäts)-Stufen auf den ARBUS. Dies geschieht im Beispiel von Fig. 3, wenn das Signal /APRIO ("/" bedeutet ein "unterer Pegel=wahr" ("low-truth") Signal) in den unteren ("0") Zustand geht. Der im Register 70 gespeicherte Wert wird dann durch die UND- Glieder 71 auf den Arbiter 72 geschaltet und von dort auf die ARBUS-Leitungen TMA 0-TMA 3. Am Ende der Arbitrierungsperiode wird der Wert auf den ARBUS- Leitungen TMA 0-TMA 3 gleich dem Wert der Arbitrierungs­ stufe desjenigen Gerätes sein, das die höchste Stufe (level) hat. Die Wellenform der hier erwähnten verschiedenen Signale wird im Detail in dem zitierten ANSI/IEEE Standard gezeigt.
In der diskutierten Ausführungsform stellt der ARBUS einen Teil des Gemeinschafts-Busses 25 dar, der die Peripheriegeräte mit der Bus-Steuereinheit 16 und daher mit der CPU 10 verbindet. Die Beziehung zwischen dem ARBUS und dem Gemeinschafts-Bus 25 wird insgesamt in Fig. 4 gezeigt.
Einzelheiten des zentralen Arbitrierungsschaltkreises 11 und der DMA-Steuereinheit 12 sind entsprechend in den Fig. 5 bzw. 6 gezeigt, auf die im folgenden Bezug genommen wird.
Wie in Fig. 5 angezeigt, werden die Signale HOLD und pHLDA aus dem ARBUS dazu benutzt, ein Signal /ARBTIME zu erzeugen. Dieses Signal ist im "0"-Zustand während der Zeit, in der eine Arbitrierung zwischen den um einen DMA-Kanal konkurrierenden Peripheriegeräten stattfinden soll. Es bleibt lange genug im "0"-Zustand, bis die Signale auf dem ARBUS ihren eingeschwungenen Zustand erreicht haben, d. h., genügend lange für eine vollendete Durchführung der Arbitrierung. Um das Signal /ARBTIME zu erzeugen, wird pHLDA durch einen Inverter 61 invertiert, dann zusammen mit dem Signal HOLD auf zugeordnete Eingänge des Exklusiv-ODER-Gliedes (XOR) 62 gegeben. Ein monostabiler Multivibrator 63 mit einer Ausgangs­ pulsperiode länger als die Arbitrierungszeit auf dem ARBUS wird durch die vordere Kante des Ausgangspulses aus dem XOR-Glied 62 ausgelöst (triggered). Der Ausgang des monostabilen Multivibrators wird mit dem Ausgang des XOR-Gliedes 62 in einem ODER-Glied (OR) 64 verknüpft und erzeugt so /ARBTIME. Natürlich sind andere Anordnungen möglich, um /ARBTIME zu erzeugen. Bei einer Methode werden die DMA-Anforderungssignale jedes Gerätes über eine ODER-Beziehung miteinander verknüpft und die so erhaltenen Ausgangssignale zur Erzeugung eines Impulses passender Länge verwendet. In jedem Fall besteht die Grundanforderung darin, /ARBTIME in den "0"-Zustand zu setzen, um die Zeitperioden zu definieren, in denen eine Arbitrierung auf dem ARBUS stattfindet.
Für jeden programmierbaren physischen DMA-Kanal im System wird eine Vergleichslogik 40 bereitgestellt und für jeden festen Kanal eine Vergleichslogik 49. Jede Vergleichslogik 40 für die programmierbaren DMA-Kanäle (Kanäle 0 und 4 des vorliegenden Beispiels) enthält ein Register 41, das als Register für die DMA-Kanalzuweisung bezeichnet und von der CPU mit einer DMA-Kanalzuweisung geladen wird. Die Vergleichslogik-Schaltungen 49, also die für die festen Kanäle, sind identisch mit den Vergleichslogik-Schaltungen 40, mit der Ausnahme, daß das Register 41 durch eine Anzahl von Schaltern ersetzt wird, mit denen die Kanalzuweisung manuell vorgenommen wird. Nur eine der Vergleichslogik-Schaltungen 40 und 49 ist daher im Detail gezeigt, da die übrigen der Vergleichslogik-Schaltungen 40 und 49 identisch und ihre Eingangssignale dieselben sind.
Die Ausgänge der Register 41 in den programmierbaren Kanälen (Vergleichslogik 40) und die Ausgänge der Schalter in den festen Kanälen (Vergleichslogik 49) werden mit den Signalen TMA 0-TMA 3 durch einen Satz von XOR-Gliedern 42 verglichen, deren Ausgänge auf die Eingänge eines NOR-Gliedes (ODER-Glied mit negiertem Ausgang) 43 gegeben werden. Wenn eine Übereinstimmung zwischen den Kanalzuweisungen und den von TMA 0-TMA 3 dargestellten Signalen am Ende der Arbitrierungsperiode festgestellt wird, d. h., wenn die entsprechenden Signale den identischen Zustand aufweisen, dann wird der Ausgang des NOR-Gliedes 43 (VERGLEICHE 0-VERGLEICHE 7) im "1"- Zustand sein. Natürlich kann nur ein NOR-Glied 43 zur selben Zeit einen aktiven Ausgang haben.
Mit Bezug nun auf Fig. 6 wird am Ende der Arbitrierungs­ zeit, wenn /ARBTIME in den "1"-Zustand zurückgeht, eine "1" aus einem der Signale VERGLEICHE 0-VERGLEICHE 7 im "1"-Zustand in einen der beiden Verriegelungen 51 der DMA-Steuereinheit 12 gesetzt. Die übrigen Signale der VERGLEICHE 0-VERGLEICHE 7 werden im "0"-Zustand sein und daher wird eine "0" in die entsprechenden Positionen der Verriegelung 51 gesetzt werden.
Die Ausgänge der Verriegelungen 51 werden auf die ent­ sprechenden DMA-Anforderungseingänge (DREQ 0-DREQ 3) zweier DMA-Steuereinheiten-IC's 52 in Kaskadenschaltung gegeben. In dem gerade diskutierten Ausführungsbeispiel ist jeder der IC's 52 vom Typ "8237 Programmierbare DMA-Steuereinheit", wie sie von der Intel Corp. hergestellt wird. Die DMA-Steuereinheiten-IC's 52 sind über NOR-Glieder 53 in Kaskaden geschaltet. Als CPU kann ein beliebiger Typ der Intel iAPX 86 Mikroprozessorserie gewählt werden, wie z. B. die 8088, 8086 oder 80286. Wegen Details bezüglich der Verbindung zwischen den beiden DMA-Steuereinheiten IC's und der CPU wird auf das 1985 Intel. Microsystem Components Handbook, Seiten 2-57 bis 2-71 verwiesen.
Daher wird einem Peripheriegerät mit fest zugeordneter DMA-Kanalzuweisung die sofortige Benutzung eines DMA- Kanals garantiert, sobald das Peripheriegerät auf dem ARBUS gewinnt. Wenn ein Peripheriegerät, das sich einen der DMA-Kanäle mit anderen teilt, auf dem ARBUS gewinnt, dann wird es die sofortige Benutzung eines DMA-Kanals nur dann erhalten, wenn sein Wert der Kanal-Prioritätszuweisung, so wie er in dem Register 70 für die Kanal-Prioritätszuweisung gespeichert ist, mit dem DMA-Kanalzuweisungswert in einem der beiden Register 41 übereinstimmt. Natürlich können das BIOS, das Betriebssystem oder die Anwendungsprogramme fortlaufend die Kanalzuweisungswerte neu programmieren, die in den DMA-Kanalzuweisungsregistern 41 der beiden Vergleichs­ logik-Schaltungen 40 für die programmierbaren Kanäle gespeichert sind, um sicherzustellen, daß alle Peripheriegeräte, die nach Zugriff verlangen, schließlich einen DMA-Kanal benutzen können. Viele verschiedene Programmierverfahren können implementiert werden, um die Werte, die in den DMA-Kanalzuweisungs­ registern 41 und den Kanalprioritätszuweisungsregistern 70 der Arbitrierungsschaltkreise gespeichert sind, in Abhängigkeit von der vorliegenden Anwendung zu steuern. In einem einfachen Beispiel sind die in die Prioritäts­ zuweisungsregister 70 gesetzten Werte fest und die in die DMA-Kanalzuweisungsregister 41 gesetzten Werte wechseln sich der Reihe nach mit wenigstens einigen der Werte in den Prioritätszuweisungsregistern 70 ab, um so jedem mit einem der programmierbaren DMA-Kanäle verbundenen Peripheriegerät eine Chance zu geben, die Benutzung eines DMA-Kanals zu erreichen. Wenn "intelligente" Peripheriegeräte mit eigenen Steuerein­ heiten verwendet werden, dann können komplexere Verfahren implementiert werden. Wenn z. B. ein einem programmierbaren DMA-Kanal zugewiesenes Peripheriegerät Zugriff wünscht, dann kann das Peripheriegerät beim Betriebssystem oder beim BIOS die Verfügbarkeit eines der programmierbaren Kanäle abfragen. Wenn ein Kanal verfügbar ist, dann kann seine Nummer in die Register 70 und 41 gesetzt werden, um einen Zugriff zu garantieren. Da jedoch die Auswahl des Programmierschemas außerhalb des Bereiches der vorliegenden Erfindung und in der Zuständigkeit des Benutzers liegt, werden hier keine weiteren Beispiele diskutiert.
Andere Anwendungen der Erfindung können ebenfalls in Betracht gezogen werden. Zum Beispiel können erfindungsgemäß benutzte programmierbare DMA-Kanäle als redundante Ersatzkanäle (back-ups) für einige der fest zugeordneten Kanäle benutzt werden, wodurch eine erhöhte Zuverlässigkeit des Systems erreicht wird.

Claims (5)

1. Digitalrechner mit mehreren Peripheriegeräten (17-24), die an eine Sammelleitung (25) ange­ schlossen sind und direkte Speicherzugriffe (DMA) unter Steuerung einer DMA-Steuereinheit (12) über einen von mehreren DMA-Kanälen durchführen können und mit einer Arbiterschaltung (11) für Zugriffs­ anforderungen, dadurch gekennzeichnet, daß erste Vergleichsvorrichtungen (49) vorgesehen sind, in denen DMA-Kanalzuweisungswerte erster ausgewählter DMA-Kanäle fest gespeichert sind, um mit Kanalprioritätszuweisungswerten von Peripherie­ geräten (17-24) verglichen zu werden, daß zweite Vergleichs­ vorrichtungen (40) vorgesehen sind, in denen DMA-Kanalzuweisungswerte zweiter ausgewählter DMA-Kanäle in programmierbaren Registern (41) speicherbar sind, um mit Kanalprioritätszuweisungs­ werten von Peripheriegeräten (17-24) verglichen zu werden und daß die Vergleichsvorrichtungen Steuersignale für die DMA-Kanalauswahl liefern.
2. Digitalrechner nach Anspruch 1, dadurch gekenn­ zeichnet, daß für jedes Peripheriegerät (17-24) programmier­ bare Einrichtungen (70) vorgesehen sind, in denen der DMA-Kanalprioritätszuweisungswert für den DMA-Kanal speicherbar ist, an den das Peripherie­ gerät (17-24) angeschlossen ist.
3. Digitalrechner nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Kanalprioritätszuweisungswerte in einer dezentralen Arbitriereinrichtung (28) in jedem Peripheriegerät (17-24) mit DMA-Zugriff gespeichert sind und daß nach Abschluß einer Arbitrierung der höchste aktive Kanalprioritätszuweisungswert als Eingangssignal an die ersten und zweiten Vergleichs­ vorrichtungen abgegeben wird.
4. Digitalrechner nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Kanalprioritäts­ zuweisungswerte und die DMA-Kanalzuweisungswerte durch Programmsteuerung gesetzt werden.
5. Verfahren zur Steuerung des direkten Zugriffs (DMA) zum Speicher eines Digitalrechners durch dessen Peripheriegeräte (17-24) über eine Sammelleitung (25), mit einem Arbitrierungsschritt zur Auflösung gleichzeitiger Zugriffsanforderungen, gekennzeichnet durch die folgenden Schritte:
  • - Speichern eines Kanalprioritätszuweisungswertes für jedes Peripheriegerät (17-24);
  • - Speichern eines DMA-Kanalzuweisungswerts für jeden DMA-Kanal, wobei DMA-Kanalzuweisungswerte fest für DMA-Kanäle gespeichert werden, die ausgewählten Peripheriegeräten (17-24) exclusiv zugeordnet sind und DMA-Kanalzuweisungsworte programmierbar für DMA-Kanäle speicherbar sind, denen mehrere Peripheriegeräte (17-24) zur gemeinsamen abwechselnden Benutzung zugeordnet sind;
  • - Arbitrieren zwischen DMA-Kanalanforderungen und Auswahl des höchsten aktiven Kanalprioritäts­ zuweisungswertes;
  • - Vergleichen des höchsten ausgewählten Kanalprioritätszuweisungswertes mit den gespeicherten DMA-Kanalzuweisungswerten;
  • - Auswahl des DMA-Kanals mit übereinstimmendem Vergleichsergebnis.
DE3810231A 1987-03-27 1988-03-25 Digitalrechner mit programmierbarer dma-steuerung Granted DE3810231A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/030,786 US4901234A (en) 1987-03-27 1987-03-27 Computer system having programmable DMA control

Publications (2)

Publication Number Publication Date
DE3810231A1 DE3810231A1 (de) 1988-10-06
DE3810231C2 true DE3810231C2 (de) 1989-10-26

Family

ID=21856024

Family Applications (3)

Application Number Title Priority Date Filing Date
DE8787118545T Expired - Fee Related DE3782045T2 (de) 1987-03-27 1987-12-15 Rechnersystem mit multikanaldirektspeicherzugriffsarbitrierung.
DE8804104U Expired DE8804104U1 (de) 1987-03-27 1988-03-25
DE3810231A Granted DE3810231A1 (de) 1987-03-27 1988-03-25 Digitalrechner mit programmierbarer dma-steuerung

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE8787118545T Expired - Fee Related DE3782045T2 (de) 1987-03-27 1987-12-15 Rechnersystem mit multikanaldirektspeicherzugriffsarbitrierung.
DE8804104U Expired DE8804104U1 (de) 1987-03-27 1988-03-25

Country Status (17)

Country Link
US (1) US4901234A (de)
EP (1) EP0288607B1 (de)
JP (1) JPS63244158A (de)
KR (1) KR950008227B1 (de)
CN (1) CN1013068B (de)
AR (1) AR240681A1 (de)
AT (1) ATE81220T1 (de)
BE (1) BE1000819A3 (de)
DE (3) DE3782045T2 (de)
ES (1) ES2035027T3 (de)
FR (1) FR2613095A1 (de)
GB (1) GB2202977B (de)
GR (1) GR3006676T3 (de)
HK (2) HK33692A (de)
IT (1) IT1216132B (de)
NL (1) NL185106C (de)
SG (1) SG13092G (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4239968A1 (en) * 1991-11-28 1993-06-09 Ricoh Co., Ltd., Tokio/Tokyo, Jp Data transmission system for host computer and peripherals - has direct memory access controller operating with interface to control transfers

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185864A (en) * 1989-06-16 1993-02-09 International Business Machines Corporation Interrupt handling for a computing system with logical devices and interrupt reset
US5307468A (en) * 1989-08-23 1994-04-26 Digital Equipment Corporation Data processing system and method for controlling the latter as well as a CPU board
DE3928481C2 (de) * 1989-08-29 1994-09-22 Diehl Gmbh & Co Prioritätsorientiertes dezentrales Busvergabesystem
EP0453863A2 (de) * 1990-04-27 1991-10-30 National Semiconductor Corporation Verfahren und Gerät zur Ausführung einer Mediumzugriffssteuerung/Wirtsystemschnittstelle
US5974015A (en) * 1990-05-14 1999-10-26 Casio Computer Co., Ltd. Digital recorder
US5519684A (en) * 1990-05-14 1996-05-21 Casio Computer Co., Ltd. Digital recorder for processing in parallel data stored in multiple tracks
DE69118781T2 (de) * 1990-08-31 1996-10-31 Advanced Micro Devices Inc Übertragungssteuerungssystem für einen Rechner und Peripheriegeräte
US5581530A (en) * 1990-09-06 1996-12-03 Casio Computer Co., Ltd. Digital recorder for processing of parallel data stored in multiple tracks and using cross-fade processing
EP0524940A1 (de) * 1991-02-19 1993-02-03 International Business Machines Corporation Kanalauswahlsarbitrierung
US6026443A (en) * 1992-12-22 2000-02-15 Sun Microsystems, Inc. Multi-virtual DMA channels, multi-bandwidth groups, host based cellification and reassembly, and asynchronous transfer mode network interface
US5640598A (en) * 1994-07-12 1997-06-17 Mitsubishi Denki Kabushiki Kaisha Data transfer processing system
US5495614A (en) * 1994-12-14 1996-02-27 International Business Machines Corporation Interface control process between using programs and shared hardware facilities
JP3320233B2 (ja) * 1995-02-06 2002-09-03 キヤノン株式会社 記録装置
US5664197A (en) * 1995-04-21 1997-09-02 Intel Corporation Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller
US5761534A (en) * 1996-05-20 1998-06-02 Cray Research, Inc. System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network
US6154793A (en) * 1997-04-30 2000-11-28 Zilog, Inc. DMA with dynamically assigned channels, flexible block boundary notification and recording, type code checking and updating, commands, and status reporting
US6092137A (en) * 1997-11-26 2000-07-18 Industrial Technology Research Institute Fair data bus arbitration system which assigns adjustable priority values to competing sources
US6473780B1 (en) * 1998-04-01 2002-10-29 Intel Corporation Scheduling of direct memory access
US6260081B1 (en) * 1998-11-24 2001-07-10 Advanced Micro Devices, Inc. Direct memory access engine for supporting multiple virtual direct memory access channels
US7089344B1 (en) * 2000-06-09 2006-08-08 Motorola, Inc. Integrated processor platform supporting wireless handheld multi-media devices
JP2003006003A (ja) * 2001-06-18 2003-01-10 Mitsubishi Electric Corp Dmaコントローラおよび半導体集積回路
JP4245852B2 (ja) * 2002-03-19 2009-04-02 富士通マイクロエレクトロニクス株式会社 ダイレクトメモリアクセス装置
US7062582B1 (en) * 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
US20050038946A1 (en) * 2003-08-12 2005-02-17 Tadpole Computer, Inc. System and method using a high speed interface in a system having co-processors
US7240129B2 (en) * 2004-02-25 2007-07-03 Analog Devices, Inc. DMA controller having programmable channel priority
US7533195B2 (en) * 2004-02-25 2009-05-12 Analog Devices, Inc. DMA controller for digital signal processors
US7130982B2 (en) * 2004-03-31 2006-10-31 International Business Machines Corporation Logical memory tags for redirected DMA operations
US8006001B2 (en) * 2004-09-22 2011-08-23 Lsi Corporation Method and apparatus for manipulating direct memory access transfers
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7483422B2 (en) * 2005-02-10 2009-01-27 International Business Machines Corporation Data processing system, method and interconnect fabric for selective link information allocation in a data processing system
US7395361B2 (en) * 2005-08-19 2008-07-01 Qualcomm Incorporated Apparatus and methods for weighted bus arbitration among a plurality of master devices based on transfer direction and/or consumed bandwidth
US20090259789A1 (en) * 2005-08-22 2009-10-15 Shuhei Kato Multi-processor, direct memory access controller, and serial data transmitting/receiving apparatus
JP4499008B2 (ja) * 2005-09-15 2010-07-07 富士通マイクロエレクトロニクス株式会社 Dma転送システム
US7689732B2 (en) * 2006-02-24 2010-03-30 Via Technologies, Inc. Method for improving flexibility of arbitration of direct memory access (DMA) engines requesting access to shared DMA channels
CN106294233B (zh) * 2015-06-29 2019-05-03 华为技术有限公司 一种直接内存访问的传输控制方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE622921A (de) * 1961-10-06
US3766526A (en) * 1972-10-10 1973-10-16 Atomic Energy Commission Multi-microprogrammed input-output processor
IT971304B (it) * 1972-11-29 1974-04-30 Honeywell Inf Systems Sistema di accesso a priorita variabile dinamicamente
US4075691A (en) * 1975-11-06 1978-02-21 Bunker Ramo Corporation Communication control unit
US4400771A (en) * 1975-12-04 1983-08-23 Tokyo Shibaura Electric Co., Ltd. Multi-processor system with programmable memory-access priority control
US4090238A (en) * 1976-10-04 1978-05-16 Rca Corporation Priority vectored interrupt using direct memory access
US4257095A (en) * 1978-06-30 1981-03-17 Intel Corporation System bus arbitration, circuitry and methodology
US4437157A (en) * 1978-07-20 1984-03-13 Sperry Corporation Dynamic subchannel allocation
US4558412A (en) * 1978-12-26 1985-12-10 Honeywell Information Systems Inc. Direct memory access revolving priority apparatus
CA1132265A (en) * 1978-12-26 1982-09-21 Minoru Inoshita Direct memory access revolving priority apparatus
US4281381A (en) * 1979-05-14 1981-07-28 Bell Telephone Laboratories, Incorporated Distributed first-come first-served bus allocation apparatus
US4371932A (en) * 1979-07-30 1983-02-01 International Business Machines Corp. I/O Controller for transferring data between a host processor and multiple I/O units
US4516199A (en) * 1979-10-11 1985-05-07 Nanodata Computer Corporation Data processing system
IT1209338B (it) * 1980-07-24 1989-07-16 Sits Soc It Telecom Siemens Disposizione circuitale per il trasferimento di dati tra la memoria di un elaboratore elettronico e le unita' di interfaccia delle periferiche ad esso collegate.
JPS58223833A (ja) * 1982-06-23 1983-12-26 Fujitsu Ltd ダイレクト・メモリ・アクセス制御方式
US4528626A (en) * 1984-03-19 1985-07-09 International Business Machines Corporation Microcomputer system with bus control means for peripheral processing devices
US4688166A (en) * 1984-08-03 1987-08-18 Motorola Computer Systems, Inc. Direct memory access controller supporting multiple input/output controllers and memory units
JPS61131153A (ja) * 1984-11-30 1986-06-18 Toshiba Corp Dma転送制御方式
JPS61133461A (ja) * 1984-12-04 1986-06-20 Fujitsu Ltd Dma転送制御方式
US4847750A (en) * 1986-02-13 1989-07-11 Intelligent Instrumentation, Inc. Peripheral DMA controller for data acquisition system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4239968A1 (en) * 1991-11-28 1993-06-09 Ricoh Co., Ltd., Tokio/Tokyo, Jp Data transmission system for host computer and peripherals - has direct memory access controller operating with interface to control transfers

Also Published As

Publication number Publication date
BE1000819A3 (fr) 1989-04-11
KR950008227B1 (ko) 1995-07-26
GB2202977B (en) 1991-07-24
NL185106B (nl) 1989-08-16
ATE81220T1 (de) 1992-10-15
GB8728927D0 (en) 1988-01-27
DE3782045D1 (de) 1992-11-05
ES2035027T3 (es) 1993-04-16
GR3006676T3 (de) 1993-06-30
HK33692A (en) 1992-05-15
AR240681A1 (es) 1990-08-31
DE8804104U1 (de) 1988-06-30
NL185106C (nl) 1990-01-16
CN88100962A (zh) 1988-12-14
HK1000295A1 (en) 1998-02-20
US4901234A (en) 1990-02-13
FR2613095A1 (fr) 1988-09-30
JPS63244158A (ja) 1988-10-11
NL8800715A (nl) 1988-10-17
DE3810231A1 (de) 1988-10-06
EP0288607B1 (de) 1992-09-30
KR880011675A (ko) 1988-10-29
IT8819827A0 (it) 1988-03-18
GB2202977A (en) 1988-10-05
JPH0467224B2 (de) 1992-10-27
SG13092G (en) 1992-04-16
DE3782045T2 (de) 1993-04-15
IT1216132B (it) 1990-02-22
EP0288607A1 (de) 1988-11-02
CN1013068B (zh) 1991-07-03

Similar Documents

Publication Publication Date Title
DE3810231C2 (de)
DE3300260C2 (de)
DE2760322C2 (de)
DE3300262C2 (de)
DE3300261C2 (de)
DE3909948C2 (de)
DE4135749B4 (de) Prozessormodul für eine programmierbare Steuerung mit einer intelligenten Funktionsmodulschnittstelle
DE4222043C1 (de)
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE3905478A1 (de) Verfahren und vorrichtung fuer die buszuweisung in einem computersystem
DE3606211A1 (de) Multiprozessor-computersystem
DE2313724A1 (de) Elektronische datenverarbeitungsanlage
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
DE3535436C2 (de)
DE3049774C2 (de)
DE4018481C2 (de)
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
DE3142504A1 (de) Mehrfachplattenspeicher-uebertragungssystem
EP0739509A1 (de) Anordnung mit master- und slave-einheiten
DE3340123A1 (de) Kommunikationseinheit zur kopplung von mikrorechnern
DE2951055C2 (de)
DE2900380C2 (de)
EP0377886B1 (de) Anordnung zum Übertragen von in mehrere Teile unterteilten Datenwörtern
EP0673525A1 (de) Anordnung mit mehreren funktionseinheiten.
DE3935707A1 (de) System zur verbindung von rechnern mit ihrer peripheren ausruestung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee