DE3782045T2 - Rechnersystem mit multikanaldirektspeicherzugriffsarbitrierung. - Google Patents
Rechnersystem mit multikanaldirektspeicherzugriffsarbitrierung.Info
- Publication number
- DE3782045T2 DE3782045T2 DE8787118545T DE3782045T DE3782045T2 DE 3782045 T2 DE3782045 T2 DE 3782045T2 DE 8787118545 T DE8787118545 T DE 8787118545T DE 3782045 T DE3782045 T DE 3782045T DE 3782045 T2 DE3782045 T2 DE 3782045T2
- Authority
- DE
- Germany
- Prior art keywords
- channel
- dma
- computer system
- access
- arbitration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000002093 peripheral effect Effects 0.000 claims description 53
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000001404 mediated effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/3625—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/374—Handling 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf einen Computer mit einer DMA-Steuereinheit (DMA = Direct Memory Access, direkter Speicherzugriff), mittels derer einem größere Anzahl Peripheriegeräte als physische DNA-Kanäle vorhanden sind DMA-Datenübertragungen durchführen können.
- 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übertragungsgeschwindigkeiten und verbesserter Gesamtsystemeffizienz, weil die CPU während der Datenübertragung andere Aufgaben verrichten kann.
- Es ist heute weitverbreitet, einen physischen DMA-Kanal für jedes Peripheriegerät bereitzustellen, dem DMA-Zugriffe erlaubt sind. Ein Beispiel eines Computersystems, das eine solche Anordnung verwendet, ist der IBM Personal Computer.
- Die Anzahl der Peripheriegeräte, die ein Benutzer an ein Computersystem anschließen kann, steigt jedoch und wird erwartungsgemäß noch weiter steigen; 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.
- Andrerseits kostet das Hinzufügen weiterer physischer DMA-Kanäle Systemhardware, Platz auf der Platine und dem Bus. Es wurde erwogen, DMA-Kanäle von Peripheriegeräten gemeinsam benutzen zu lassen, mit der Einschränkung gegenseitiger exklusiver Benutzung. Die gemeinsame Nutzung von DMA-Kanälen erfolgt beispielsweise in den IBM XT und AT Computersystemen. Diese Betriebsweisen verlangen sowohl umfangreiche Änderungen am Betriebssystem als auch zusätzliche Unterprogramme, um die zu jedem DMA-Kanal gehörenden Peripheriegeräte daran zu hindern, gleichzeitig zu arbeiten. Eine beträchtliche Belastung der Leistungsfähigkeit tritt auch dann auf, wenn die Dateiverwaltung nicht hinreichend "intelligent" abläuft, um überlappte Suchoperationen zu erlauben. Das Problem verschärft sich in bestimmten Situationen, z.B. wenn eine LAN-Zusatzeinrichtung (LAN = Local Area Network, lokales Netzwerk) und eine Datei-Steuereinheit 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. 3.925.766 von Bardotti et al. offenbart ein Computersystem, bei dem Peripheriegeräten Prioritätsstufen zugeordnet sind und Zugriffsanforderungen zu einem Speicher gemäß den Prioritätsstufen ausgewählt werden. Die Zuordnung der Prioritätsstufen läßt sich ändern je nach den Gründen, aus denen die Anforderungssignale erzeugt werden, oder je nach den speziellen Lastbedingungen des Zentralrechners. Es werden jedoch keine DMA-Pfade bereitgestellt.
- In dem US Patent Nr. 4.400.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ätsinformationen, die einen Prioritätsgrad für den Speicherzugriff jedes Prozessors angeben. Die Prioritätsinformationen können von Hand, durch einen externen Schaltkreis, oder wenigstens einem der Prozessoren geändert werden. Das Patent von Suzuki et al. verwendet jedoch keinen DMA-Zugriff von mehreren Peripheriegeräten auf einen Speicher.
- Das US Patent Nr. 4.257.095 von Nadir ist bezüglich seiner Lehre über Arbitrierungstechniken für Bus-Zugriffe (bus arbitration techniques) von Interesse.
- Folgende US Patente betreffen den allgemeinen Hintergrund von Computersystemen mit DMA-Steuereinheiten: 4.371.932 von Dinwiddie, Jr., et al., 4.419.728 von Larson, 4.538.224 von Peterson, 4.556.962 von Brewer et al. und 4.584.703 von Hallberg.
- Das IBM Technical Disclosure Bulletin, Vol. 27. Nr. 5, Seite 3150-3152 (1984) beschreibt ein Computersystem mit einer festen Anzahl von DMA-Kanälen, die über einen Bus mit einer Vielzahl von Peripheriegeräten verbunden sind, wobei sich die Peripheriegeräte die Kanäle über einen Zeitabschnitts-Arbitrierungsschaltkreis teilen.
- Es ist daher die Aufgabe der vorliegenden Erfindung, ein Computersystem mit einer DMA-Steuereinheit vorzusehen, bei dem sich die Peripheriegeräte, deren Anzahl die im System vorgesehenen physischen DMA-Kanäle überschreitet, die DMA-Kanäle teilen können, ohne auf die Probleme der vorstehenden Konzepte des Standes der Technik zu stoßen.
- Erfindungsgemäß ist ein Computersystem vorgesehen mit einer Mehrkanaleinheit mit direktem Speicherzugriff (DMA) und gemeinsamen Busmitteln zum Koppeln einer Vielzahl von Peripheriegeräten mit der DMA-Einheit, wobei die gemeinsamen Busmittel eine Anzahl von Peripheriegeräten mit der DMA-Einheit koppeln können, die größer ist als die Zahl der DMA-Kanäle, wobei mindestens ein DMA-Kanal über einen Arbitrierungssteuerschaltkreis von den Peripheriegeräten gemeinsam benutzt wird, dadurch gekennzeichnet, daß jedes zm gemeinsamen Bus Zugriff fordernde Peripheriegerät dem Bus einen damit verbundenen Kanalzuweisungswert zuführt, wobei eine Einheit, die Zugriff erhält, ihren Kanalzuweisungswert auf dem Bus stehen läßt, der Arbitrierungssteuerschaltkreis in jedem Kanal der DMA-Einheit Mittel umfaßt, um den Kanalzuweisungswert eines Zugriff fordernden Peripheriegerätes mit in dem Arbitrierungssteuerschaltkreis programmierten Kanalzuweisungsdaten zu vergleichen, um einen bestehenden Zugriff auf seinen Kanal festzustellen.
- Ein Ausführungsbeispiel der Erfindung wird nachstehend in Bezug auf beiliegende Zeichnungen beschrieben. Hierin bedeuten:
- Fig. 1 ein Blockdiagramm eines Computersystems, in dem die Erfindung verwendet wird;
- 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 Busses im Computersystem von Fig. 1;
- Fig. 5 ein detailliertes logisches Diagramm eines zentralen Arbitrierungs-Steuerschaltkreises, der in dem Computersystem gemäß der Erfindung verwendet wird, und
- Fig. 6 ein detailliertes logisches Diagramm eines DMA-Steuerschaltkreises, der bei der Erfindung benutzt wird.
- Zunächst wird auf Fig. 1 der beiliegenden Zeichnungen Bezug genommen, die ein Blockdiagramm eines Computersystems zeigt, in welchem die gegenwärtige Erfindung vorteilhaft genutzt wird.
- Eine CPU kommuniziert mit einem Hauptspeicher 15, einer Bus-Steuereinheit 16 und einem Mathematik-Coprozessor 14 über einen Systembus 26. Die Kommunikation zwischen der CPU und ihren zugehörigen Peripheriegeräten erfolgt unter Vermittlung einer Bus-Steuereinheit 16, 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 23. Andere Peripheriegeräte können natürlich, je nach Systembedürfnissen, genauso gut benutzt werden. Die Peripheriegeräte werden generisch durch DMA-untergeordnete (slave) Einheiten 24 dargestellt.
- Eine DMA-Steuereinheit 12 wird bereitgestellt, um wenigstens ausgewählten Peripheriegeräten direkten Speicherzugriff zu erlauben. Zu diesem Zweck wird, wie weiter unten genauer erklärt, der Gemeinschafts-Bus, oder zumindest ein Teil desselben, zur DMA-Steuereinheit 12 abgezweigt. Jedes Peripheriegerät 24 mit DMA-Zugriff ist mit einem Arbitrierungsschaltkreis 28 ausgestattet, und jedem Peripheriegerät mit einem Arbitrierungsschaltkreis wird eine Arbitrierungs- (Prioritäts-) Stufe (priority level) zugeordnet. Wie weiter unten genauer erklärt, gehört zur DMA-Steuereinheit ein zentrale Arbitrierungs-Steuerschaltkreis 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 zuvor zugewiesener Prioritäten zugegriffen.
- Im vorliegenden Beispiel wird angenommen, daß es acht physische DMA-Kanäle gibt, die mit 0 bis 7 bezeichnet sind. Es wird weiterhin angenommen, daß die Kanäle 0 und 4 gemeinsam benutzt (shared) und 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 Busses ARBUS (arbitration bus). Der Wert auf dem ARBUS kennzeichnet das Peripheriegerät, das gerade einen DMA-Kanal verlangt und die höchste Arbitrierungs- (Prioritäts-) Stufe aufweist. Wenn dieses Peripheriegerät eines von denen mit fest zugeordneten Kanälen 1 - 3 oder 5 - 7 ist, dann wird ihm direkt Zugriff auf jenen Kanal gewährt. Wenn andrerseits das Peripheriegerät zu denen gehört, die sich einen programmierbaren DMA-Kanal (Kanäle 0 und 4) teilen, dann erhält es nur dann Zugriff, wenn seine Prioritätsstufe einem der in den Registern 6 und 7 voreingestellten Werten entspricht. Dieser Vorgang wird im folgenden genauer unter Bezug auf die Figuren 3 - 6 erklärt.
- Fig. 3 ist ein logisches Schaltdiagramm eines der Arbitrierungsschaltkreise 28, die in jedem Peripheriegerät mit DMA-Zugriffsmöglichkeit verwendet werden. Die dem Peripheriegerät zugeordnete Arbitrierungsstufe (arbitration level) wird in ein Register 70 gesetzt, welches nachstehend als Register der Kanalprioritätszuweisung bezeichnet 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 Arbitrierungsstufe durch Software gesetzt werden kann. Dies kann erfolgen ü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. Andrerseits ist es möglich, den Wert der Kanalprioritätszuweisung mit Hardware-Schaltern einzugeben.
- Der eigentliche Arbitrierungschaltkreis ist mit einem Arbiter 72 implementiert. Dieser Schaltkreis und die verschiedenen in Fig. 3 angezeigten Signale sind offenbart und detailliert diskutiert im American National Standard/IEEE Standard No. ANSI/IEEE Std 696- 1983, veröffentlicht vom Institute of Electrical and Electronics Engineers, Inc., am 13. Juni 1983. Im allgemeinen ist jedes im Arbitrierungsschema eingegliederte Gerät mit einem derartigen Schaltkreis ausgestattet und die Schaltkreise sind über einen ARBUS miteinander verbunden. Im gezeigten Beispiel hat der ARBUS vier Datenleitungen TMA0 - TMA3, womit 16 verschiedene Arbitrierungsstufen ermöglicht werden. Jedoch kann jede gewünschte Anzahl verwendet werden. Während einer Arbitrierungsperiode, die durch die Steuersignale pHLDA und HOLD gekennzeichnet ist, übermitteln alle Geräte, die Kontrolle über den Bus erhalten möchten (bei jenen Geräten hat das IWANT-Signal den hohen Signalpegel bzw. den ("1")-Zustand), ihre Arbitrierungs- (Prioritäts-) Stufen auf den ARBUS. Im Beispiel von Fig. 3 geschieht das, wenn das Signal /APRIO ("/") bedeutet ein "unterer Pegel = wahr" ("low-truth") Signale) in den hohen ("1") 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 TMA0 - TMA3. Am Ende der Arbitrierunsperiode ist der Wert auf den ARBUS-Leitungen TMA0 - TMA3 gleich dem Wert der Arbitrierungsstufe des Gerätes, welches die höchste Stufe (level) hat. Die Wellenformen der hier erwähnten verschiedenen Signale sind im einzelnen in dem zitierten ANSI/IEEE Standard gezeigt.
- In der diskutierten bevorzugten Ausführungsform stellt der ARBUS einen Teil des Gemeinschafts-Busses 25 dar, durch den die Peripheriegeräte mit der Bus-Steuereinheit 16 und somit der CPU 10 verbunden werden. Die Beziehung zwischen dem ARBUS und dem Gemeinschafts- Bus 25 ist in Fig. 4 gezeigt.
- Einzelheiten des zentralen Arbitrierungsschaltkreises 11 und der DMA-Steuereinheit 12 sind in Fig. 5 bzw. 6 gezeigt, auf die nachfolgend Bezug genommen wird.
- Wie in Fig. 5 gezeigt, werden die Signale HOLD und pHLDA aus dem ARBUS zur Erzeugung eines Signals /ARBTIME benutzt. Dieses Signal ist im "0"-Zustand während der Zeit, in der eine Arbitrierung unter den um einen DMA-Kanal konkurrierenden Peripheriegeräten stattfinden soll. Es bleibt so lange im "0"-Zustand, bis die Signale auf dem ARBUS ihren eingeschwungenen Zustand erreicht haben, d.h., genügend lange bis zur Beendigung der Arbitrierung. Um das Signal /ARBTIME zu erzeugen, wird pHLDA durch einen Inverter 61 invertiert, dann zusammen mit dem Signal HOLD auf die jeweiligen Eingänge eines Exklusiv-ODER-Gliedes (XOR) 62 gegeben. Ein monostabiler Multivibrator 63 mit einer Ausgangspulsperiode, die die Arbitrierungszeit auf dem ARBUS überschreitet, wird durch die Vorderkante 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 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, durch die die Kanalzuweisung manuell erfolgt. Nur eine der Vergleichslogik-Schaltungen 40 und 49 ist daher im Detail gezeigt, da die übrigen 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 für die festen Kanäle (Vergleichslogik 49) werden mit den Signalen TMA0 - TMA3 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 TMA0 - TMA3 dargestellten Signalen am Ende der Arbitrierungsperiode festgestellt wird, d.h. wenn die entsprechenden Signale den identischen Zustand aufweisen, befindet sich der Ausgang des NOR-Gliedes 43 (VERGLEICHE 0 - VERGLEICHE 7) im "1"-Zustand. Natürlich kann nur immer ein NOR- Glied 43 einen aktiven Ausgang haben.
- Mit Bezug nun auf Fig. 6 wird am Ende der Arbitrierungszeit, wenn /ARBTIME in den "1"-Zustand zurückgeht, eine "1" aus einem der Signale VERGLEICHE 0 - VERGLEICHE 7 im "1"-Zustand in einer der beiden Verriegelungen 51 der DMA-Steuereinheit 12 gesetzt. Die übrigen Signale von VERGLEICHE 0 - VERGLEICHE 7 sind im "0"-Zustand, so daß eine "0" in den entsprechenden Positionen der Verriegelung 51 gesetzt ist.
- Die Ausgänge der Verriegelungen 51 werden auf die entsprechenden DMA-Anforderungseingänge (DREQ0 - DREQ3) zweier DMA-Steuereinheits-IC's 52 in Kaskadenschaltung gegeben. In dem gerade diskutierten Ausführungsbeispiel sind die IC's 52 jeweils vom Typ "8237 Programmierbare DMA-Steuereinheit", wie sie von der Intel Corp. hergestellt wird. Die DMA-Steuereinheits-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. Zu Details bezüglich der Verbindung zwischen den beiden DMA-Steuereinheits-IC's und der CPU sei 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, erhält es die sofortige Benutzung eines DMA-Kanals nur dann, wenn sein Kanal-Prioritätszuweisungswert, so wie er im 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 Vergleichslogik-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-Kanalzuweisungsregistern 41 und den Kanalprioritätszuweisungsregistern 70 der Arbitrierungsschaltungen gespeichert sind, in Abhängigkeit von der vorliegenden Anwendung zu steuern. In einem einfachen Beispiel sind die in den Prioritätszuweisungsregister 70 gesetzten Werte fest und die in den 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 Steuereinheiten verwendet werden, können komplexere Verfahren implementiert werden. Wenn z.B. ein einem programmierbaren DMA-Kanal zugewiesenes Peripheriegerät Zugriff wünscht, kann dieses Peripheriegerät beim Betriebssystem oder BIOS die Verfügbarkeit eines der programmierbaren Kanäle abfragen. Wenn ein Kanal verfügbar ist, dann kann seine Nummer in den Registern 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 (6)
1. Computersystem mit einer Mehrkanaleinheit (12) mit
direktem Speicherzugriff (DMA) und gemeinsamen
Busmitteln zum Koppeln einer Vielzahl von
Peripheriegeräten (17-24) mit der DMA-Einheit, wobei
die gemeinsamen Busmittel eine Anzahl von
Peripheriegeräten mit der DMA-Einheit koppeln können,
die größer ist als die Zahl der DMA-Kanäle, wobei
mindestens ein DMA-Kanal über einen
Arbitrierungssteuerschaltkreis (11) von den Peripheriegeräten
gemeinsam benutzt wird, dadurch gekennzeichnet,
daß jedes zum gemeinsamen Bus Zugriff fordernde
Peripheriegerät dem Bus einen damit verbundenen
Kanalzuweisungswert zuführt, wobei eine Einheit,
die Zugriff erhält, ihren Kanalzuweisungswert auf
dem Bus stehen läßt, der
Arbitrierungssteuerschaltkreis (11) in jedem Kanal der DMA-Einheit
Mittel umfaßt, um den Kanalzuweisungswert eines
Zugriff fordernden Peripheriegerätes mit in dem
Arbitrierungssteuerschaltkreis programmierten
Kanalzuweisungsdaten zu vergleichen, um einen
bestehenden Zugriff auf seinen Kanal
festzustellen.
2. Computersystem nach Anspruch 1, in dem jedes
Peripheriegerät (17 bis 24) ein
Arbitrierungsregister (70) zur Aufnahme des
Kanalzuweisungswertes umfaßt, wobei das Register zum Laden von
der System-CPU (10) gekoppelt wird.
3. Computersystem nach Anspruch 1 oder 2, in dem
mindestens ein DMA-Kanal als zugehöriger Kanal mit
einem einzigen Peripheriegerät gekoppelt ist und
der Arbitrierungssteuerschaltkreis (11) für den
oder jeden fest zugeordneten Kanal die
Kanalzuweisungsdaten vergleicht, um einen Zugriff auf den
zugeordneten Kanal festzustellen.
4. Computersystem nach Anspruch 3, in dem die
vorhereingestellten Kanalzuweisungsdaten durch
Schaltmittel in dem Arbitrierungssteuerschaltkreis
bestimmt werden.
5. Computersystem nach einem der vorherigen
Ansprüche, in dem der Arbitrierungssteuerschaltkreis für
den oder jeden gemeinsam benutzten DMA-Kanal
Registermittel (41) umfaßt, die von der System-CPU
und den Vergleichsschaltungsmitteln (42, 43)
Kanalzuweisungsdaten erhalten, um Daten aus den
Registermitteln mit dem Kanalzuweisungswert eines
Peripheriegerätes zu vergleichen, welches Zugriff
auf einen DMA-Kanal fordert, um bei
Übereinstimmung der verglichenen Daten
Vergleichsausgangssignale zur Verfügung zu stellen.
6. Computersystem nach Anspruch 5, in dem die
besagten Vergleichsausgangssignale dem DMA-Gerät
DMA-Anforderungseingangssignale übermitteln.
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 |
---|---|
DE3782045D1 DE3782045D1 (de) | 1992-11-05 |
DE3782045T2 true DE3782045T2 (de) | 1993-04-15 |
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 | Digitalrechner mit programmierbarer DMA-Steuerung |
DE3810231A Granted DE3810231A1 (de) | 1987-03-27 | 1988-03-25 | Digitalrechner mit programmierbarer dma-steuerung |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE8804104U Expired DE8804104U1 (de) | 1987-03-27 | 1988-03-25 | Digitalrechner mit programmierbarer DMA-Steuerung |
DE3810231A Granted DE3810231A1 (de) | 1987-03-27 | 1988-03-25 | Digitalrechner mit programmierbarer dma-steuerung |
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) |
Families Citing this family (38)
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 |
US5519684A (en) * | 1990-05-14 | 1996-05-21 | Casio Computer Co., Ltd. | Digital recorder for processing in parallel data stored in multiple tracks |
US5974015A (en) * | 1990-05-14 | 1999-10-26 | Casio Computer Co., Ltd. | Digital recorder |
EP0473280B1 (de) * | 1990-08-31 | 1996-04-17 | 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 |
WO1992015060A1 (en) * | 1991-02-19 | 1992-09-03 | International Business Machines Corporation | Channel selection arbitration |
US5530901A (en) * | 1991-11-28 | 1996-06-25 | Ricoh Company, Ltd. | Data Transmission processing system having DMA channels running cyclically to execute data transmission from host to memory and from memory to processing unit successively |
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 |
US7533195B2 (en) * | 2004-02-25 | 2009-05-12 | Analog Devices, Inc. | DMA controller for digital signal processors |
US7240129B2 (en) * | 2004-02-25 | 2007-07-03 | Analog Devices, Inc. | DMA controller having programmable channel priority |
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)
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 |
-
1987
- 1987-03-27 US US07/030,786 patent/US4901234A/en not_active Expired - Lifetime
- 1987-11-27 FR FR8716750A patent/FR2613095A1/fr not_active Withdrawn
- 1987-12-04 BE BE8701395A patent/BE1000819A3/fr not_active IP Right Cessation
- 1987-12-10 GB GB8728927A patent/GB2202977B/en not_active Revoked
- 1987-12-15 DE DE8787118545T patent/DE3782045T2/de not_active Expired - Fee Related
- 1987-12-15 ES ES198787118545T patent/ES2035027T3/es not_active Expired - Lifetime
- 1987-12-15 AT AT87118545T patent/ATE81220T1/de not_active IP Right Cessation
- 1987-12-15 EP EP87118545A patent/EP0288607B1/de not_active Expired - Lifetime
- 1987-12-25 JP JP62327583A patent/JPS63244158A/ja active Granted
-
1988
- 1988-02-25 CN CN88100962A patent/CN1013068B/zh not_active Expired
- 1988-02-27 KR KR1019880002038A patent/KR950008227B1/ko not_active IP Right Cessation
- 1988-03-18 IT IT8819827A patent/IT1216132B/it active
- 1988-03-23 AR AR31037988A patent/AR240681A1/es active
- 1988-03-23 NL NLAANVRAGE8800715,A patent/NL185106C/xx not_active IP Right Cessation
- 1988-03-25 DE DE8804104U patent/DE8804104U1/de not_active Expired
- 1988-03-25 DE DE3810231A patent/DE3810231A1/de active Granted
-
1992
- 1992-02-11 SG SG130/92A patent/SG13092G/en unknown
- 1992-05-07 HK HK336/92A patent/HK33692A/xx unknown
- 1992-12-24 GR GR920403114T patent/GR3006676T3/el unknown
-
1997
- 1997-09-24 HK HK97101822A patent/HK1000295A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
NL8800715A (nl) | 1988-10-17 |
HK33692A (en) | 1992-05-15 |
JPS63244158A (ja) | 1988-10-11 |
KR950008227B1 (ko) | 1995-07-26 |
IT1216132B (it) | 1990-02-22 |
EP0288607B1 (de) | 1992-09-30 |
GR3006676T3 (de) | 1993-06-30 |
DE8804104U1 (de) | 1988-06-30 |
JPH0467224B2 (de) | 1992-10-27 |
GB8728927D0 (en) | 1988-01-27 |
IT8819827A0 (it) | 1988-03-18 |
AR240681A1 (es) | 1990-08-31 |
ES2035027T3 (es) | 1993-04-16 |
BE1000819A3 (fr) | 1989-04-11 |
KR880011675A (ko) | 1988-10-29 |
GB2202977A (en) | 1988-10-05 |
NL185106B (nl) | 1989-08-16 |
SG13092G (en) | 1992-04-16 |
NL185106C (nl) | 1990-01-16 |
FR2613095A1 (fr) | 1988-09-30 |
DE3782045D1 (de) | 1992-11-05 |
CN1013068B (zh) | 1991-07-03 |
US4901234A (en) | 1990-02-13 |
HK1000295A1 (en) | 1998-02-20 |
ATE81220T1 (de) | 1992-10-15 |
GB2202977B (en) | 1991-07-24 |
CN88100962A (zh) | 1988-12-14 |
DE3810231A1 (de) | 1988-10-06 |
DE3810231C2 (de) | 1989-10-26 |
EP0288607A1 (de) | 1988-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3782045T2 (de) | Rechnersystem mit multikanaldirektspeicherzugriffsarbitrierung. | |
DE3909948C2 (de) | ||
DE3853574T2 (de) | Steuerung von Benutzerantworten in einem Übertragungsbus. | |
DE3586352T2 (de) | Busarbiter fuer datenverarbeitungssystem mit einem ein-/ausgabekanal. | |
DE69027515T2 (de) | Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung | |
DE69032481T2 (de) | Buszugriff für Digitalrechnersystem | |
DE68915701T2 (de) | Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung. | |
DE19580707C2 (de) | PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus | |
DE2760322C2 (de) | ||
DE69521549T2 (de) | Verfahren zur Verwaltung gemeinsamer Mittel mehrerer Verarbeitungseinheiten | |
DE69322221T2 (de) | Personalcomputer mit programmierbaren Schwellwert-Fiforegistern zur Datenübertragung | |
DE69515355T2 (de) | Mehrfacharbitrierungsschema | |
DE69028017T2 (de) | Arbitrierungssystem mit Beschränkung der aufeinanderfolgenden Zugriffsberechtigungen von Hochprioritätsanforderungen | |
DE3704056A1 (de) | Peripherer dma-controller fuer datenerfassungssysteme | |
DE68920929T2 (de) | Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. | |
DE3049774C2 (de) | ||
DE69028836T2 (de) | Datenverarbeitungssystem mit Direktspeicherzugriffssteuerung und Verfahren zur Busmasteränderung unter Verwendung Unterbrechungen mit gegebener Priorität | |
DE4018481A1 (de) | Mikroprozessor hold- und lock-schaltung | |
DE60036923T2 (de) | Dram-auffrischungsüberwachung und taktgenaue verteilte busarbitrierung in einer multiprozessorumgebung | |
DE4429764C2 (de) | Zeitgebereinrichtung für einen Mikrocomputer | |
DE69130721T2 (de) | Mikrorechnerbussteuerungssystem | |
DE69128823T2 (de) | Interner Bus für Arbeitsplatzschnittstellen | |
DE69827879T2 (de) | Zeitmultiplexschema zur Verklemmungsauflösung in distribuierter Arbitrierung | |
DE68922779T2 (de) | Datenverarbeitungssystem mit gemeinsamen Bus. | |
DE69130689T2 (de) | Signalprozessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |