DE69028017T2 - Arbitrierungssystem mit Beschränkung der aufeinanderfolgenden Zugriffsberechtigungen von Hochprioritätsanforderungen - Google Patents
Arbitrierungssystem mit Beschränkung der aufeinanderfolgenden Zugriffsberechtigungen von HochprioritätsanforderungenInfo
- Publication number
- DE69028017T2 DE69028017T2 DE69028017T DE69028017T DE69028017T2 DE 69028017 T2 DE69028017 T2 DE 69028017T2 DE 69028017 T DE69028017 T DE 69028017T DE 69028017 T DE69028017 T DE 69028017T DE 69028017 T2 DE69028017 T2 DE 69028017T2
- Authority
- DE
- Germany
- Prior art keywords
- access
- request
- bump
- signals
- requester
- 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
- 238000013475 authorization Methods 0.000 title claims description 10
- 238000012545 processing Methods 0.000 claims description 7
- 238000000034 method Methods 0.000 description 12
- 208000013841 papillary glioneuronal tumor Diseases 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 3
- 101100524347 Xenopus laevis req-b gene Proteins 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101100345335 Arabidopsis thaliana GNT2 gene Proteins 0.000 description 1
- 101000747588 Homo sapiens UDP-glucuronosyltransferase 1-6 Proteins 0.000 description 1
- 101000841498 Homo sapiens UDP-glucuronosyltransferase 1A1 Proteins 0.000 description 1
- 101150093077 Mgat2 gene Proteins 0.000 description 1
- 101100345342 Rattus norvegicus Mgat3 gene Proteins 0.000 description 1
- 102100029151 UDP-glucuronosyltransferase 1A10 Human genes 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000037351 starvation 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/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/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
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
- Diese Erfindung bezieht sich auf Arbitrierungen von Prioritätsanforderungen für den Zugriff auf Systemressourcen und im einzelnen auf die Busarbitrierung, inbesondere die Sternbusarbitrierung, ein Prozeß zur Regelung der Zuweisung eines Anforderers aus einer Vielzahl von gleichzeitigen Anforderern für den Zugriff auf eine Systemressource, normalerweise einen Systembus. Wenn einem Anforderer (einem Gerät oder einem Prozessor) die Kontrolle über die Ressource gegeben wird, kann er diese besitzen, bis seine Aufgabe abgeschlossen ist, oder für einen vorbestimmten Zeitraum.
- Bei elektronischen Rechnersystemen muß der Prozessor normalerweise auf die Eingabe- und Ausgabegeräte zugreifen, damit er funktionieren kann. Um den Rechnerbetrieb so effizient wie möglich zu gestalten, arbeiten solche Geräte unabhängig vom Zentralprozessor. Das heißt, anders als bei den ersten Rechnersystemen, bei denen die Geräte durch den Zentralprozessor gesteuert wurden, wird bei modernen Geräten die Verarbeitungsfunktion in die einzelnen Geräte verlagert, wodurch der Zentralprozessor und die einzelnen Geräte gleichzeitig und voneinander unabhängig arbeiten können. Es kommt jedoch manchmal vor, daß die Geräte sich Ressourcen mit anderen Geräten und mit dem Zentralprozessor teilen müssen. Der Hauptspeicher ist beispielsweise eine Ressource, die sich mehrere Geräte teilen müssen; auf ihn wird über einen Systembus zugegriffen. Der Zentralprozessor bearbeitet Daten, die im Speicher stehen, und einige Geräte dienen dazu, von außerhalb des Systems zur Verarbeitung vorliegende Daten in dem Speicher zu speichern, während andere Geräte Daten aus dem Speicher aus lesen, die außerhalb des Systems gebraucht werden, zum Beispiel um Ergebnisse einer Berechnung und Verarbeitung auszudrucken.
- Um eine Störung der Arbeitsabläufe im Zentralprozessor weitestgehend zu vermeiden, wird eine Technik eingesetzt, die als direkter Speicherzugriff (DMA) bekannt ist; mit dieser Technik können die Geräte aus dem Speicher lesen oder in diesen schreiben, ohne daß ein Eingreifen des Zentralprozessors erforderlich ist. Die Adresse der Daten im Speicher ist in dem Gerät gespeichert (oder in einem Kanal, über den das Gerät arbeitet) und dient zum Adressieren des Speichers in einem oder mehreren Zyklen, während der Zentralprozessor und andere Geräte auf den Speicher nicht zugreifen können. Das DMA-Verfahren arbeitet als Interrupt-Verfahren, so genannt, weil es nicht immer regelmäßig und periodisch Zugriff zum Speicher verlangt, und das Zentralsystem fur einen Zugriff asynchron unterbricht. Ein solcher Prozeß wird auch Zyklusraub genannt.
- Es können nicht alle Geräte, einschließlich des Zentralprozessors, gleichzeitig auf den Speicherbus zugreifen, weil es dann keine Möglichkeit geben würde, die einzelnen Signale voneinander zu unterscheiden. Die Anforderungen von Ressourcen müssen daher arbitriert werden, und zwar so, daß die Anforderungen aller Geräte erfüllt werden. Einige Geräte arbeiten mit höheren Datenübertragungsraten als andere. Ein Plattenspeicher kann zum Beispiel die Daten schneller lesen und schreiben, als ein Lochstreifengerät. Das heißt, das schnellere Gerät benötigt schnelleren und häufigeren Zugriff auf den Speicherbus, als langsamere Geräte. Es muß daher für eine Zugriffspriorität zwischen den einzelnen Geräten gesorgt werden.
- Bei der Zuweisung von Prioritäten an die einzelnen Geräte eines Systems müssen jedoch noch andere Gesichtspunkte als nur die Geschwindigkeit berücksichtigt werden. Es muß auch verhindert werden, daß ein oder mehrere Hochprioritätsgeräte ein Gerät mit niedriger Priorität verdrängen, so daß dieses Gerät nicht mehr richtig arbeitet, weil es nicht ausreichenden Zugang zu den Systemressourcen bekommt, oder weil es zu selten Zugang zu den Ressourcen bekommt, was zu einem Datenverlust führen würde.
- Systeme mit fester Priorität mit Hardware-Implementierung haben den Vorteil einer sehr schnellen Arbitrierung ohne Störung der Vorgänge im Zentralprozessor. Systeme mit variabler Priorität, die vom Zentralprozessor gesteuert werden, sind flexibler, jedoch auch langsamer, und erfordern ein Eingreifen des Zentralprozessors.
- Es wurden mehrere Techniken entwickelt, in denen die Zuweisungspriorität wechselte, z.B. bei der umlaufenden Priorität zwischen den einzelnen Geräten, bei der serielle Prozeduren oder Abfrageprozeduren und andere komplizierte Verfahren eingesetzt werden.
- Die U.S. Patentschrift 4,229,791 beschreibt den Einsatz einzelner Arbitrierungsschaltungen, die den Zugriff auf einen gemeinsamen Bus steuern. Jede Schaltung hat eine vorher zugewiesene Prioritätsstufe, kann jedoch dem System zugeschaltet oder aus diesem entfernt oder gesperrt werden, ohne daß die Abläufe in den anderen Einheiten beeinflußt werden.
- In der U.S. Patentschrift 4,257,095 wird ein gemeinsam genutzter Systembus mit einer Arbitrierungsschaltung beschrieben, die es einem Gerät mit niedrigerer Priorität erlaubt, auf den Systembus zuzugreifen, wenn ein Gerät mit höherer Priorität, das die Kontrolle über den Systembus hat, gerade nicht in Betrieb ist oder nicht auf den Systembus, sondern auf einen anderen Bus zugreift.
- In der U.S. Patentschrift 4,499,538 wird eine parallele asynchrone Arbitrierung von Zugriffsanforderungen beschrieben, die eine feste Prioritat, eine zyklisch-sequentielle oder eine gemischte Priorität haben können.
- Die U.S. Patentschrift 4,716,523 beschreibt einen programmierbaren selektiven Datentransfer-Modus, durch den der Datentransfer im DMA-Verfahren oder in einem Interrupt-gesteuerten Verfahren erfolgen kann. DMA- und Zeichen-Interrupt-Anforderungen werden arbitriert, um die Kontrolle an einen DMA- Controller oder einen Zeichen-Interrupt-Controller zu übergeben.
- In der U.S. Patentschrift 3,840,859 wird eine Eingabe/Ausgabesteuereinheit in einem Datenverarbeitungssystem beschrieben, bei der die Anzahl der gleichzeitig ablaufenden E/A-Operationen, die diese Einheit annehmen kann, geregelt ist, um das Auftreten übermäßig häufiger Zugriffsfehler zu verhindern und bei der Verteilung der System-E/A-Operationen zwischen allen Eingabe-/Ausgabesteuereinheiten zu helfen, wenn hiervon mehr als eine vorhanden ist. Es wird ein kontinuierlicher Vergleich zwischen einer Schwellenvariablen, welche die momentane Bandbreite einer E/A-Steuereinheit definiert, und einer Verkehrsvariablen durchgeführt, wobei die Verkehrsvariable von der Anzahl und dem Typ der gleichzeitigen E/A-Operationen abgeleitet wird, die zu einem gegebenen Zeitpunkt auf einer bestimmten Eingabe-/Ausgabesteuereinheit ablaufen. Wenn die Verkehrsvariable gleich der Schwellenvariablen für diese Einheit oder größer als diese ist, wird diese Eingabe-/Ausgabesteuereinheit angewiesen, keine weiteren E/A-Operationen mehr anzunehmen. Durch entsprechendes Anpassen der Schwellenvariablen für jede Eingabe- /Ausgabesteuereinheit bei einer Vielzahl von E/A-Steuereinheiten in einem Datenverarbeitungssystem, kann eine optimale Zuweisung der E/A-Operationen des gesamten Systems unter den einzelnen Eingabe-/Ausgabesteuereinheiten des Systems erfolgen.
- In der Forschungsoffenlegung Nr. 271 vom November 1986, Havant GB, Seite 668, wird ein Algorithmus zur Anpassung der Arbitrierungspriorität beschrieben. Ein Algorithmus wird mit einem Arbitrierer verwendet, der sein Prioritätsschema dynamisch anpassen kann, um sich an veränderte Bedingungen in einer gemeinsam genutzten Einrichtung einzustellen. Einrichtungen, in denen dieser Algorithmus eingesetzt wird, sind zum Beispiel ein Busarbitrierer mit wählbarer umlaufender Höchstpriorität, der nach jeder Anforderung/Zugriffsberechtigung eine neue Stelle in dem PRIORITÄTS-ARRAY referenziert und die Untereinheit, deren Adresse an dieser neuen Stelle gefunden wird, in die höchste Priorität erhebt, ein Prioritäts-Array, das mindestens einen Eintrag für jede Untereinheit enthält (die durch ihre Adresse identifiziert wird); wenn für eine bestimmte Untereinheit mehr Einträge, das heißt Adressen, vorhanden sind, so wird diese Untereinheit öfter zur höchsten Priorität erhoben; und ein Aktivitätsregister, das den Aushungerungsgrad angibt. Ein größere Zahl zeigt an, daß eine bestimmte Untereinheit eine beliebige Anzahl von Malen längere Zeit auf eine Zuteilung gewartet hat.
- Die Erfindung nach Anspruch 1 vermeidet die Nachteile eines reinen Software- oder eines reinen Hardware-Systems, indem sie die Vorteile beider Systeme miteinander verbindet. Sie vermeidet außerdem das Problem, daß ein langsamer Anforderer mit niedriger Priorität ausgegrenzt wird, indem die Anzahl der den Hochprioritätsanforderern gewährten aufeinanderfolgenden Zugriffe begrenzt wird.
- Mit der Erfindung kann mehreren Anforderern eine Prioritätsstufe zugewiesen werden, und es können sämtliche Konflikte gelöst werden, wobei der Anzahl der aufeinanderfolgenden Zugriffe eines Anforderers eine Grenze zugewiesen wird, und zwar in einem einzigen Anforderungs/Zugriffsberechtigungszyklus.
- Gemäß der Erfindung weist ein System Zugriffsprioritätsstufen zu und setzt die zugehörigen Bump-Werte. Wenn Zugriffsanforderungen empfangen werden, erfolgt die Arbitrierung dieser Anforderungen entsprechend den zugewiesenen Prioritäten, den Bump-Werten und den empfangenen Zugriffsanforderungen. Wenn eine Zugriffsaniorderung auf Höchstprioritätsstufe gewährt wird, wird für diese Anforderung entsprechend den gesetzten Bump-Werten eine aufeinanderfolgende Anzahl von Zugriffsberechtigungen festgehalten. Wenn für mehr als einen aufeinanderfolgenden Anforderungs-/Zugriffsberechtigungszyklus ein Zugriff verlangt wird, kann der Zugriff auf dieser Prioritätsstufe solange wie erforderlich gehalten werden.
- Spezifische Ausführungsbeispiele der Erfindung sind in den Unteransprüchen 2 bis 8 dargelegt.
- Die Erfindung wird unter Bezugnahme auf die verschiedenen Figuren, in denen spezifische Ausführungsbeispiele der Erfindung dargestellt werden, und in denen gleiche Zahlen gleiche Elemente bezeichnen, ausführlich beschrieben.
- FIG. 1 ist ein Blockdiagramm der Arbitrierungslogik.
- FIG. 2 ist ein Blockdiagramm des Controllers für das Arbitrierungssystem.
- FIG. 3 ist ein Blockdiagramm der Bumplogiksteuerung.
- FIG. 4 ist eine Tabelle, in der die Zustandsmaschine zur Steuerung der Arbitrierungslogik spezifiziert wird.
- Folgende Definitionen sollen die Beschreibung des bevorzugten Ausführungsbeispiels verständlicher und überschaubarer machen.
- Ein Bus-Master ist ein Schaltkreis, der auf mindestens einen zugeordneten Bus zugreifen und diesen steuern kann, und der für ein ordnungsgemäßes Funktionieren auf einen Bus zugreifen muß, zum Beispiel für Transfers mit direktem Speicherzugriff (DMA) zum Austausch von Daten zwischen einem Systemspeicher und einem Eingabe-/Ausgabegerät ohne Eingreifen des Systemprozessors.
- Eine Sternarbitrierung ist ein Prioritätsanforderungssystem, das Zugriffsanforderungen parallel empfängt, und bei dem eine von mehreren parallelen Anforderungen zu einer Zugriffsberechtigung für den Anforderer mit der höchsten Priorität oder gemäß einem anderen Kriterium führt.
- Das beschriebene Sternarbitrierungssystem hat vier Bus-Master, die in jeder Kombination und Reihenfolge um die Kontrolle eines Busses miteinander konkurrieren. Durch die Beschränkung auf vier Bus-Master wird die Systembeschreibung leichter verständlich, das System kann jedoch auf eine beliebige Anzahl von Bus-Mastern erweitert werden. Die verwendete Notation macht die Erweiterung des Systems auf mehr als vier Anforderer deutlich und hilft zum Verständnis der Beschreibung. Das für den Buszugriff beschriebene System gilt auch für andere Systeme mit mehreren Anforderern für den Zugriff auf Systemressourcen im allgemeinen.
- Das Sternarbitrierungssystem gemäß der Erfindung hat programmierbare Variablen, die durch einen zugeordneten Prozessor gesetzt werden können. Zu den programmierbaren Funktionen gehört eine Prioritätsstufenzuweisung für jeden Bus-Master und ein jedem Bus-Master zugeordneter Bump-Wert, der eine Bussperrfunktion steuert. Das System kann Konflikte lösen, die dadurch entstehen, daß mehr als einem Bus-Master dieselbe Prioritätsstufe zugewiesen wird.
- Der Bump-Wert bestimmt die Anzahl von Anforderungs/Zugriffsberechtigungszyklen, die ein Bus-Master höherer Priorität anderen Bus-Mastern, die einen Zugriff auf den Bus anfordern, abtreten muß.
- Die Anzahl der Bus-Master in der folgenden Beschreibung ist auf vier begrenzt; sie sind mit A, B, C oder D bezeichnet und allgemein als X dargestellt. Jeder hat eine getrennte Anforderungsleitung, REQX, und eine getrennte Berechtigungsleitung, GNTX. Jeder Bus-Master hat eine zugewiesene Priorität, Px(1,0), das heißt, eine aus zwei Bits bestehende binäre Zahl. Der Wert 00, oder dezimal 0, stellt die höchste Priorität dar, und der Wert 11, dezimal 3, ist die niedrigste Priorität. Die den Bus-Mastern zugewiesenen Prioritäten müssen sich nicht unbedingt gegenseitig ausschließen. Mit anderen Worten, es können verschiedenen Bus-Mastern dieselben Prioritätsstufen zugewiesen werden.
- Jeder Bus-Master hat außerdem einen ihm zugewiesenen Bump- Wert, BX(1,0), aus Darstellungsgründen eine binäre Zahl mit zwei Bits. Der einem Bus-Master zugewiesene Bump-Wert legt die Anzahl von Anforderungs-/Zugriffsberechtigungszyklen fest, die der Bus-Master an andere Bus-Master abtreten muß, und zwar ausschließlich dann, wenn noch andere Anforderungen anstehen.
- Die Prioritätsstufen und die Bump-Werte werden vom steuernden Prozessor über einen Prozessorbus geliefert. Zur Taktung wird eine Zweiphasen-Takt eingesetzt und das System ist so angeordnet, daß die in Reaktion auf Anforderungen gewährte Prioritat in einem Anforderungs-/Zugriffsberechtigungszyklus abgeschlossen wird, durch Einsetzen eines mehrstufigen logischen Netzes.
- Obwohl PX und BX als Zwei-Bit-Werte beschrieben sind, können sie auf eine beliebige Bit-Anzahl erweitert werden. Wenn X eine Prioritätsanforderung gewährt wird, wird ein Signal GPX gesetzt und bleibt für die Anzahl von Anforderungs/Zugriffsberechtigungszyklen gesetzt, die durch den Bump- Wert, BX(1,0), dargestellt sind. Das Setzen von GPX bewirkt, daß die Prioritätsstufe des zugeordneten Busmasters X um eine Stufe nach unten gesetzt wird, beispielsweise von Stufe 0 auf Stufe 1. Wenn ein anderer Bus-Master die Kontrolle über den Bus bekommt, wird der Bump-Wert bei jedem Anforderungs/Zugriffsberechtigungszyklus zurückgezählt, bis er Null erreicht, wodurch der zugehörige Bus-Master nochmals die Kontrolle über den Bus erhält, oder wenn die anderen einen Zugriff anfordernden Bus-Master bis zur selben Prioritätsstufe zurückgesetzt wurden. Mit anderen Worten, der Bump-Wert setzt die Anzahl von Anforderungs-/Zugriffsberechtigungszyklen, in denen andere Bus-Master die Kontrolle über den Bus zwischen aufeinanderfolgenden Zugriffen durch jeden Bus-Master bekommen können. Der Wert von BX wird
- 1) zurückgezählt, wenn ein neuer Bus-Master die Kontrolle über den Bus bekommt,
- 2) auf Null gesetzt, wenn kein Bus-Master die Kontrolle über den Bus anfordert, und
- 3) auf seinen ursprünglichen Wert gesetzt, wenn der zugehörige Bus-Master die Kontrolle über den Bus bekommt.
- Wenn zwei Bus-Mastern dieselbe Prioritätsstufe zugewiesen wurde oder es zu einem Konflikt kommt, wird die Priorität in alphabetischer Reihenfolge gewährt. Das heißt, A geht vor B, B geht vor C, und so weiter. Die Entscheidung hieruber wird aufgrund der Art und Weise getroffen, in der die Anforderungsleitungen mit der Logik verbunden sind.
- Es werden zwei programmierbare Betriebsmodi bereitgestellt. Der eine ist ein nicht verzahnter Betriebsmodus, ACMODE = 1, bei dem der Prozessor häufiger auf den Bus zugreifen kann, der andere ist ein verzahnter Betriebsmodus, ACMODE = 0, der aufeinanderfolgende Prioritätsanforderungen effizienter abwickeln kann. Der Betriebsmodus kann abhängig davon gesetzt werden, ob eine große Anzahl von Prozessor-Speicherzugriffen voraussehbar ist, oder eine große Anzahl von Prioritätsanforderungen erforderlich sein wird, zum Beispiel das Laden großer Datenmengen, beispielsweise Seitenpuffer.
- In der folgenden Beschreibung stellt "&" die logische UND- Operation dar; "v" stellt die logische ODER-Operation dar; "@" stellt die logische Exklusiv-ODER-Operation dar; und "'" stellt die logische NICHT-Operation dar.
- Der Buchstabe X stellt in dem bevorzugten Ausführungsbeispiel die variablen Bezeichner A, B, C und D dar. REQX stellt zum Beispiel vier Signale dar, nämlich REQA, REQB, REQC und REQD. Hierdurch kann eine Notation allgemeiner Art eingesetzt werden, die jede Anzahl von variablen Bezeichnern einschließt. Zum Beispiel: bei einem Ausführungsbeispiel, das acht Anforderungsstufen benötigt, kann REQX REQA bis REQH darstellen. Für die Prioritäts- und Bump-Werte können auch mehr als zwei Bits (Binärziffern) verwendet werden. Die verwendete Notation macht die Erfindung außerdem leichter verständlich.
- Zwei Zeitimpulse, T1 und T2, wechseln einander ab; sie enthalten einen Zweiphasentakt für Taktgabezwecke.
- FIG. 1 zeigt das logische Diagramm für das Arbitrierungsnetz. Ein Bus-Latch 101, der eine Vielzahl von Flip-Flops umfaßt, dient zum Einleiten des Prozesses durch Speichern von Bits von einem Prozessorbus in Reaktion auf ein START-Signal, das von einem Zeitimpuls T1 durch ein UND-Gatter 103 durchgeschaltet wird. Das Ausgangssignal von dem UND-Gatter 103 wird auch als RST-Signal von der Steuerlogik verwendet.
- In dem beschriebenen Ausführungsbeispiel bilden acht Bits (zwei Bits pro Bus-Master) die Bump-Werte, die über einen Multiplexer 105 in ein Acht-Bit-Register 109 eingetastet werden. Das heißt, die gespeicherten Bits aus dem Register 101 werden durch den Multiplexer 105 durch einen Zeitimpuls T2 in das Register 109 eingetastet. Zur gleichen Zeit werden acht Bits, welche die Prioritätszuweisungen bezeichnen, in ein Register 111 eingetastet. Zu einem Zeitpunkt T1 wird der Inhalt des Registers 109 in ein Register 119 eingetastet und der Inhalt des Registers 111 wird in ein Register 115 eingetastet.
- Derselbe T1-Taktgebeimpuls speichert außerdem in einem Vier- Bit-Register 117 die aktiven Prioritätsanforderungssignale REQA, REQB, REQC oder REQD. Diese Signale werden kollektiv mit REQX bezeichnet und werden zusammen geODERt, um ein VREQX-Signal zu erzeugen, das von der Steuerlogik verwendet wird.
- Zwischen dem Zeitimpuls T1 und dem nächsten Zeitimpuls T2 laufen die Signale von den Registern 115, 117 und 119 durch vier Stufen einer Kombinationslogik. Die Kombinationslogik auf der vierten Stufe 127 erzeugt eine neue durch ein Zeitgabesignal eingetastete Prioritätsgewährung, PGNT. Die Ausgangssignale aus der vierten Stufe 127 der Kombinationslogik werden durch einen Zeitimpuls T2 in die Flip-Flops 131, 133, 135 und 137 eingetastet.
- Die erste Stufe 121 der Kombinationslogik kombiniert die Bump-Wert-Bits BX(1,0) und die REQX-Bits, um vier Ausgangssignale&sub1; XREQ, zu erzeugen.
- XREQ = REQX & (GPX & LR)' ( 1)
- hierbei ist GPX = BX1 v BX0, und ( 2)
- LR = v(REQX & GPX') ( 3)
- Enthält das linke Element der logischen Gleichung ein X, wird der Ausdruck, der das rechte Element der logischen Gleichung bildet, viermal ausgewertet, und es werden hintereinander für X die logischen Variablenbezeichner A, B, C und D eingesetzt.
- In der Gleichung (1) wird beispielsweise angezeigt, daß vier logische Signale erzeugt werden, nämlich AREQ, BREQ, CREQ und DREQ. Jede Signalkomponente wird abgeleitet, indem man in dem rechten Element der Gleichung denselben Variablenbezeichner austauscht, zum Beispiel,
- AREQ = REQA & (GPA & LR)',
- BREQ = REQB & (GPB & LR)',
- und so weiter.
- Die Gleichung (3) hat für LR auf der linken Seite keinen Variablenbezeichner X, jedoch erscheint X in dem rechten Ausdruck. Die in Gleichung (3) verwendete Notation gibt an, daß der Term in Klammern für alle Werte von X geEODERt wird, das heißt, für A, B, C und D. Das heißt,
- LR=(REQA & GPA') v (REQB & GPB') v
- (REQC & GPC') v (REQD & GPD').
- Die XREQ-Signale von der ersten Stufe 121 der Kombinationslogik werden als Eingangssignale an die nächsten beiden Stufen der Kombinationslogik 123 und 125 angelegt.
- Die XREQ-Signale werden ebenfalls geODERt und liefern ein VXREQ-Signal an den Controller, das in einer nachfolgend noch ausführlicher beschriebenen Weise eingesetzt wird.
- Die zweite Stufe 123 der Kombinationslogik kombiniert die XREQ-Signale und die PX(1,0)-Prioritätssignale und erzeugt vier Ausgangssignale, GNT(0-3), und zwar wie folgt:
- GNT0 = REQ0; ( 4)
- GNT1 = REQ1 & REQ00'; ( 5)
- GNT2 = REQ2 & (REQ1 v REQ0)'; ( 6)
- GNT3 = REQ3 & (REQ2 v REQ1 v REQ0)', ( 7)
- hierbei ist REQn = v(XREQ & PX(1,0)=n), n=0,1,2,3. ( 8)
- Gleichung (8) wird als das ODERn der geUNDeten Werte von XREQ mit den Prioritätsbits Px(1,0) interpretiert, welche auf den angegebenen Wert von n dekodiert werden. Zum Beispiel
- REQ0 = v(XREQ & PX1 & PX0') ( 9)
- = v(XREQ & (PX1 v PX0)') (10)
- Gleichung (10) wird unter Anwendung des Demorganschen Theorems von Gleichung (9) abgeleitet.
- Ein anderes Beispiel der Gleichung (8) unter Einsatz von n=2 ist
- REQ2 = (AREQ & (PA1' v PA0)') v
- (BREQ & (PB1' v PB0)') v
- (CREQ & (PC1' v PC0)') v
- (DREQ & (PD1' v PD0)'). (11)
- Die Gleichungen (4) bis (7) können verallgemeinert werden zu GNTn = REQn & v(REQi)' für i = 0,1,...,n-1
- In der dritten Stufe 125 der Kombinationslogik werden die Signale XREQ, GNT (0-3) und PX (1,0) miteinander kombiniert und erzeugen vier Ausgangssignale, XGNT, durch XGNT = XREQ & v(GNTn & PX(1,0)=n) (12)
- Die XGNT-Signale werden durch ein Steuersignal PGNT eingetastet, das nachfolgend noch ausführlich beschrieben wird, und erzeugen ein Signal GNTX, das letzte Prioritätsgewährungssignal, das in einem entsprechenden Flip-Flop 131, 133, 135 oder 137 durch einen Zeitimpuls T2 gespeichert wird. Die Prioritätsgewährungssignale werden erzeugt durch GNTX=PGNT & XGNT & (v(YGNT))' Y=A,B...,X-1 (13)
- wobei Y eine Ersatzvariable, das heißt, eine Scheinvariable für X ist, um den geODERten Wert der logischen Variablenbezeichner bis X, jedoch X nicht einschließend, zu benennen. Zum Beispiel,
- GNTC = PGNT & CGNT & (AGNT v BGNT)' (14)
- Die GNTX-Signale werden von der Steuerlogik verwendet und werden auch geODERt, um ein VGNTX-Signal zu erzeugen, das vom Controller verwendet wird.
- Der Multiplexer 105 stellt acht parallele Multiplexer dar, die jeweils von den Signalen XK0 und XK1 gesteuert werden. Das heißt, es gibt zwei Bit-Bump-Werte für jeden Anforderungskanal, A, B, C und D. Die Multiplexer können die Register 109 zurücksetzen, indem sie logische Nullen eintasten, wenn die Werte von XK1 und XK0 gleich Null sind. Wenn die XK- Werte gleich Eins sind, werden die Bits vom Register 101 zum Register 109 durchgeschaltet. Wenn die XK-Werte Zwei sind, werden die momentanen Bump-Werte im Register 119 zurückge- zählt und im Register 109 gespeichert. Ein XK-Wert von Drei führt den vorherigen Bump-Wert des Registers 119 in das Register 109 zurück.
- FIG. 3 zeigt ein Blockdiagramm der Bump-Steuerlogik. Die Steuerlogik 301 wird für jeden Wert von X beliefert, in dem beschriebenem Ausführungsbeispiel vier Werte. Alle Eingangssignale zu der Logik 301 sind für jeden Wert von X, mit Ausnahme des Signals GNTX, gleich. Die Signale STATE C und DMAREQ werden von der Controller-Logik geliefert, wie nachfolgend ausführlich beschrieben wird. Die Signale VXREQ und VREQX wurden weiter oben beschrieben. Das Signal HOLD wird von einem steuernden Prozessor geliefert und kann in einem zusätzlichen Latch von den Prozessormagazinen im Register 101 der FIG. 1 gespeichert werden.
- Die Ausgangssignale, XK1 und XK0, von der Bump-Steuerlogik 301 steuern einen zugehörigen Multiplexer 1051 der in FIG. 1 gezeigt wird.
- Der Multiplexer 105 wird durch folgende logischen Gleichungen gesteuert:
- XK=0: v(REQX)' v RST (15)
- XK=1: PRI & XGNT (16)
- XK=2: PRI & XGNT' (17)
- XK=3: v(REQX) & RST' & PRI' (18)
- hierbei ist PRI = STATE C & VXREQ & DMAREQ & HOLD' (19)
- Von den Gleichungen (15)-(18) werden die logischen Gleichungen für die einzelnen Steuerbits abgeleitet:
- XK1 = (PRI & GNTX') v (v(REQX) & RST' & PRI') (20)
- XK0 = v(REQX)' v RST v (PRI & GNTX) (21)
- Die obigen Gleichungen sind eine komplette Spezifikation des logischen Netzes der Bump-Steuerlogik 301.
- Der Rückwärtszähler 107 in FIG. 1, einer pro Bump-Wert- Gruppe&sub1; arbeitet entsprechend den folgenden logischen Gleichungen:
- BX1* = (BX1 @ BX0)' (22)
- BX0* = BX0' (23)
- hierbei steht BXn* für die Ausgangssignale vom Rückwärtszähler 107, die durch den Zeitimpuls T1 in das Register 109 eingetastet werden.
- Die Quelle der Signale, welche in der Gleichung 19 die PRI- Signale bilden, ist der Controller, wie nachfolgend noch ausführlich erklärt wird.
- Zusätzlich zu den Prioritätszuordnungen, PX, und den Bump- Werten BX, die vom Prozessor geliefert werden, gibt es noch andere Signale vom Prozessor, die von Interesse sind, hierunter ein LSP-Signal (Laden/Speichern steht an), welches anzeigt, daß der Zentralprozessor den Zugriff auf den Bus anfordert. Hierdurch werden die Prioritätsanforderungsgewährungen gesperrt, bis der Zentralprozessor den von ihm angeforderten Zugriff auf den Bus abgeschlossen hat.
- Wenn ein Bus-Master die Kontrolle über den Bus für mehr als einen Anforderungs-/Zugriffsberechtigungszyklus anfordert, das heißt, für ein DMA-Bündel von mehreren Anforderungs/Zugriffsberechtigungszyklen, sendet er ein HOLD-Signal. Ein HOLD-Signal kann aber auch von einer Ressource gesendet werden, wenn diese mehrere zusammenhängende Anforderungs/Zugriffsberechtigungszyklen anfordert.
- Diese Signale steuern die in FIG. 2 gezeigte Controller-Zustandsmaschine. Die Controller-Logik umfaßt eine sequentielle Zustandsmaschine mit vier Zuständen. Die Signale vom Control- ler, die hierbei von Interesse sind, sind die Signale PGNT und DMAREQ.
- Das DMAREQ-Signal wird vom Controller gesendet, wenn eine Anforderung die Zugriffsberechtigung erhält, um den Controller, eine Zustandsmaschine, davon abzuhalten, einen Zustand zu verändern, oder einer weiteren Anforderung die Zugriffsberechtigung zu gewähren&sub1; bis der Bus-Master, dem die Zugriffsberechtigung gewährt wurde, tatsächlich die Kontrolle über den Bus übernommen hat. Das DMAREQ-Signal wird zurückgesetzt, wenn ein Bus-Master die Kontrolle über den Bus übernimmt. In der Logik des Controllers wird durch ein Ausgangssignal von der Steuerlogik ein Flip-Flop 203 gesetzt, der das DMAREQ- Signal liefert. Der Flip-Flop 203 wird zurückgesetzt, wenn ein Bus-Master die Kontrolle über den Bus erhält, wie es von dem Signal VGNTX angezeigt wird.
- Die Eingangssignale in die controller-Logik 201 sind das momentane Zustandssignal, die Signale vom Prozessor (HOLD, LSP, ACMODE) und das VXREQ-Signal von der Arbitrierungslogik der FIG. 1.
- Die Ausgangssignale von der Controller-Logik 201 sind das Signal PGNT und das Signal, welches das DMAREQ-Signal setzt. In einem kompletten System sind möglicherweise noch andere Ausgangssignale erforderlich, die jedoch zur Beschreibung der Erfindung nicht von Interesse und auch nicht erforderlich sind.
- Die Tabelle der FIG. 4 ist eine vollständige Spezifikation der Controller-Logik.
- Die ersten neun Reihen der FIG. 4 stellen Eingangssignale und Zustandssignale des Controllers dar.
- Die unteren sechs Reihen der FIG. 4 sind die Ausgangssignale, die sich aus den Eingangs- und den Zustandssignalen ergeben.
- Die oberen vier Reihen sind die möglichen Maschinenzustände. (Die Zustandskennzeichen von A, B, C und D haben keine Beziehung zueinander und sind vollkommen unabhängig von den Kennzeichen der Bus-Master.) Im verzahnten Modus verwendet der Controller alle vier Zustände. Im nicht verzahnten Modus werden nur die Zustände A und C verwendet.
- Zustand A ist der Ausgangszustand beim ersten Einschalten der Maschine und ist im Betrieb der Leerlauf zustand. Zustand B ist der Wartezustand oder der Festhaltezustand. Zustand C ist der GO-Zustand, in dem die Operationen der Hardware gesteuert werden, hauptsächlich durch die Erzeugung des PGNT-Signals. Zustand D ist der Lückenzustand; er erhält die Steuersignale vom Zustand C, um einen glatten übergang in den Leerlaufzustand zu ermöglichen.
- In den Spalten der ersten neun Reihen zeigt ein Wert 1, daß sich die Maschine in dem Zustand befindet, der durch die Reihe dargestellt wird, in der die 1 erscheint, oder daß das durch die Reihe dargestellte logische Signal wahr (aktiv) ist. Eine 0 stellt das dazugehörige logische Signal als falsch (inaktiv) dar. Eine Leerstelle bedeutet, daß der Wert des logischen Signals nicht benötigt wird, allgemein als nicht zu beachtender Wert bezeichnet.
- In den Spalten der unteren sechs Reihen weist ein X darauf hin, daß das der Reihe mit dem X zugeordnete Signal erzeugt wird. Die Maßnahme ist das logische UND-Ergebnis der Variablen in den oberen neun Reihen derselben Spalte.
- Beispielsweise zeigt die erste Spalte, daß sich der Controller im Zustand A befindet, daß das Signal LSP aktiv ist und daß das Signal ACMODE inaktiv ist. Die aus dieser Kombination von Signalen entstehende Maßnahme ist die Auswahl von A, das heißt, bewirke, daß der Zustand A der nächste Zustand ist. Die logische Gleichung, die durch die erste Spalte dargestellt wird, sieht wie folgt aus:
- SELECT A = STATE A & LSP & ACMODE' (24)
- Die zweite Spalte stellt die Maßnahme im Zustand A dar, wenn sich die Maschine nicht im ACMODE befindet und sowohl das Signal DMAREQ als auch das Signal HOLD aktiv sind, während das Signal LSP inaktiv ist. Der nächste ausgewählte Zustand ist der Zustand B. Das heißt,
- SELECT B = STATE A & LSP' & ACMODE' & DMAREQ & HOLD (25)
- Im Zustand B bewirken dieselben Signale, daß der Zustand B als der nächste Zustand ausgewählt wird, das heißt, der Controller tritt in den Wartezustand ein und bleibt in diesem Zustand.
- Wenn das LSP-Signal im Zustand B aktiv ist, während das ACMODE-Signal inaktiv bleibt, wird der Zustand A ausgewählt.
- Die Maßnahmen, die in den Zuständen des Controllers der FIG. 4 von Interesse sind, finden in den Zuständen C und D statt, wenn das Signal VXREQ aktiv ist. Diese Bedingungen erzeugen die Signale DMAREQ und PGNT. Diese beiden Signale hängen nur von dem Zustand und vorn Signal VXREQ ab.
- Die letzten sechs Spalten zeigen die Zustandsübergänge im ACMODE. Die Ausgangssignale, DMAREQ und PGNT, werden nur im Zustand C erzeugt, wenn das Signal VXREQ aktiv ist. Ohne die Zwischenzustände B und D kann die Controller-Maschine jedoch auf voneinander abhängige, aufeinanderfolgende Anforderungssignale reagieren.
Claims (8)
1. Ein Zugriffsprioritäts-Arbitrierungssystem in einem
Datenverarbeitungssystem, um für die Dauer eines Zeitraums
einen Anforderer aus einer Vielzahl von gleichzeitigen
Anforderern auszuwählen, folgendes umfassend:
Mittel, um an jedem Zeitraum Zugriffsanforderungen von
jedem der genannten Vielzahl von Anforderern zu
empfangen;
Mittel, um jedem Anforderer der genannten Vielzahl von
Anforderern Prioritätsstufen zuzuweisen;
Mittel, um für jeden Anforderer der genannten Vielzahl
von Anforderern die ursprünglichen Bump-Werte zu setzen,
wobei der genannte Bump-Wert die Anzahl von Zeiträumen
darstellt, die ein gegebener Anforderer an andere
Anforderer mit niedrigerer Prioritätsstufe zwischen
aufeinanderfolgenden Auswahlen des genannten gegebenen
Anforderers abtreten muß;
Mittel, um an jedem Zeitraum den genannten Bump-Wert,
der einem gegebenen Anforderer zugeordnet ist, auf Null
zu setzen, wenn kein anderer Anforderer da ist;
Mittel, um an jedem Zeitraum den genannten Bump-Wert,
der einem gegebenen Anforderer zugeordnet ist, auf
seinen ursprünglichen Wert zu setzen, wenn der genannte
gegebene Anforderer ausgewählt wird;
Mittel, um an jedem Zeitraum einen Bump-Wert, der nicht
Null ist, und der einem gegebenen Anforderer zugeordnet
ist, zurückzuzählen, wenn ein anderer Anforderer
ausgewählt wird;
Mittel, die auf die genannten Prioritätsstufen, auf die
genannten Zugriffsanforderungen und auf die genannten
Bump-Werte reagieren, zum Auswählen eines Anforderers
aus der genannten Vielzahl von Anforderern.
2. Das System nach Anspruch 1, Mittel enthaltend zum
Steuern eines Betriebsmodus, so daß die Arbitrierung
schneller ausgeführt werden kann, wenn eine große Anzahl von
Zugriffsanforderungen erwartet wird.
3. Datenverarbeitungsystem, ein
Zugriffsprioritäts-Arbitrierungssystem nach Anspruch 1 umfassend, und weiter
folgendes umfassend:
eine Vielzahl von Anforderungsleitungen, um an das
genannte Zugriffsprioritäts-Arbitrierungssystem
Anforderungssignale zu senden, die anzeigen, daß ein Zugriff
auf Ressourcen angefordert wird;
ein erstes Mittel zur Zuweisung von Prioritätsstufen für
jede der genannten Vielzahl von Anforderungsleitungen;
ein zweites Mittel, um jeder der genannten Vielzahl von
Anforderungsleitungen einen Bump-Wert zuzuweisen; und
Ausgabemittel, die auf das genannte Zugriffsprioritäts-
Arbitrierungssystem und die genannten
Anforderungssignale reagieren, zur Einspeisung von
Zugriffsgewährungssignalen in eine der genannten Vielzahl von
Anforderungsleitungen.
4. System nach Anspruch 3, folgendes umfassend:
Modus-Mittel zum Setzen eines Betriebsmodus; und
Mittel, die auf das genannte Modus-Mittel reagieren, und
die bewirken, daß der genannte Ausgang
Zugriffsberechtigungssignale mit einer anderen Geschwindigkeit
einspeist.
5. System nach Anspruch 3 oder 4, Aussperrungsmittel
enthaltend, die auf die genannten
Zugriffsberechtigungssignale und auf die genannten Bump-Werte reagieren, zum
Sperren eines Zugriffsberechtigungssignals an eine
Anforderungsleitung, an die zuvor ein
Zugriffsberechtigungssignal gesendet wurde, wenn der diesem zugeordnete
Bump-Wert größer als Null ist.
6. System nach Anspruch 5, weiter umfassend Rückzählmittel,
die auf das genannte Aussperrmittel und die genannten
Berechtigungssignale reagieren, zum Rückzählen eines
Bump-Wertes, der nicht Null ist, und der einer
Anforderungsleitung zugeordnet ist, wenn ein Zugriffssignal
einer anderen Anforderungsleitung gewährt wird.
7. System nach Anspruch 6, weiter enthaltend
Initialisierungs-Mittel, die auf ein Nichtvorhandensein der
genannten Anforderungssignale reagieren, um alle Bump-Werte
auf einen Wert zu setzen, der von dem genannten zweiten
Mittel gesetzt wurde.
8. System nach Anspruch 7, weiter enthaltend
Nullstellungsmittel, die auf die genannten Anforderungssignale
reagieren, um einen Bump-Wert einer Anforderungsleitung,
die ein Anforderungssignal sendet, auf Null zu setzen,
wenn keine anderen Anforderungssignale vorliegen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/473,014 US5506989A (en) | 1990-01-31 | 1990-01-31 | Arbitration system limiting high priority successive grants |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69028017D1 DE69028017D1 (de) | 1996-09-12 |
DE69028017T2 true DE69028017T2 (de) | 1997-02-06 |
Family
ID=23877830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69028017T Expired - Fee Related DE69028017T2 (de) | 1990-01-31 | 1990-12-28 | Arbitrierungssystem mit Beschränkung der aufeinanderfolgenden Zugriffsberechtigungen von Hochprioritätsanforderungen |
Country Status (4)
Country | Link |
---|---|
US (1) | US5506989A (de) |
EP (1) | EP0439987B1 (de) |
JP (1) | JP2559906B2 (de) |
DE (1) | DE69028017T2 (de) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE515316C2 (sv) * | 1994-09-13 | 2001-07-16 | Ericsson Telefon Ab L M | Förfarande och anordning för att styra ett datanät |
US5787264A (en) * | 1995-05-08 | 1998-07-28 | Apple Computer, Inc. | Method and apparatus for arbitrating access to a shared bus |
US6330326B1 (en) | 1998-03-27 | 2001-12-11 | At&T Corp. | Dynamic staffing of service centers to provide substantially zero-delay service |
US6233645B1 (en) * | 1998-11-02 | 2001-05-15 | Compaq Computer Corporation | Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high |
US6530000B1 (en) | 1999-03-24 | 2003-03-04 | Qlogic Corporation | Methods and systems for arbitrating access to a disk controller buffer memory by allocating various amounts of times to different accessing units |
US6425032B1 (en) | 1999-04-15 | 2002-07-23 | Lucent Technologies Inc. | Bus controller handling a dynamically changing mix of multiple nonpre-emptable periodic and aperiodic devices |
US6523098B1 (en) * | 1999-12-22 | 2003-02-18 | Intel Corporation | Mechanism for efficient low priority write draining |
FR2829253A1 (fr) * | 2001-08-31 | 2003-03-07 | Koninkl Philips Electronics Nv | Controle d'acces dynamique d'une fonction a ressource collective |
US7111228B1 (en) | 2002-05-07 | 2006-09-19 | Marvell International Ltd. | System and method for performing parity checks in disk storage system |
US7287102B1 (en) | 2003-01-31 | 2007-10-23 | Marvell International Ltd. | System and method for concatenating data |
US7007114B1 (en) * | 2003-01-31 | 2006-02-28 | Qlogic Corporation | System and method for padding data blocks and/or removing padding from data blocks in storage controllers |
US7099963B2 (en) * | 2003-03-10 | 2006-08-29 | Qlogic Corporation | Method and system for monitoring embedded disk controller components |
US7039771B1 (en) | 2003-03-10 | 2006-05-02 | Marvell International Ltd. | Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers |
US7219182B2 (en) * | 2003-03-10 | 2007-05-15 | Marvell International Ltd. | Method and system for using an external bus controller in embedded disk controllers |
US7870346B2 (en) * | 2003-03-10 | 2011-01-11 | Marvell International Ltd. | Servo controller interface module for embedded disk controllers |
US7064915B1 (en) | 2003-03-10 | 2006-06-20 | Marvell International Ltd. | Method and system for collecting servo field data from programmable devices in embedded disk controllers |
US7492545B1 (en) | 2003-03-10 | 2009-02-17 | Marvell International Ltd. | Method and system for automatic time base adjustment for disk drive servo controllers |
US7526691B1 (en) | 2003-10-15 | 2009-04-28 | Marvell International Ltd. | System and method for using TAP controllers |
US7139150B2 (en) * | 2004-02-10 | 2006-11-21 | Marvell International Ltd. | Method and system for head position control in embedded disk drive controllers |
US7120084B2 (en) | 2004-06-14 | 2006-10-10 | Marvell International Ltd. | Integrated memory controller |
US8166217B2 (en) * | 2004-06-28 | 2012-04-24 | Marvell International Ltd. | System and method for reading and writing data using storage controllers |
US9201599B2 (en) * | 2004-07-19 | 2015-12-01 | Marvell International Ltd. | System and method for transmitting data in storage controllers |
US7757009B2 (en) | 2004-07-19 | 2010-07-13 | Marvell International Ltd. | Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device |
US8032674B2 (en) * | 2004-07-19 | 2011-10-04 | Marvell International Ltd. | System and method for controlling buffer memory overflow and underflow conditions in storage controllers |
US20060026329A1 (en) * | 2004-07-30 | 2006-02-02 | Yu James K | System and method for an arbiter rewind |
US7386661B2 (en) | 2004-10-13 | 2008-06-10 | Marvell International Ltd. | Power save module for storage controllers |
US7240267B2 (en) * | 2004-11-08 | 2007-07-03 | Marvell International Ltd. | System and method for conducting BIST operations |
US7802026B2 (en) * | 2004-11-15 | 2010-09-21 | Marvell International Ltd. | Method and system for processing frames in storage controllers |
US7577832B2 (en) * | 2004-12-14 | 2009-08-18 | Hewlett-Packard Development Company, L.P. | Apparatus and method for booting a system |
US7609468B2 (en) | 2005-04-06 | 2009-10-27 | Marvell International Ltd. | Method and system for read gate timing control for storage controllers |
US8984198B2 (en) * | 2009-07-21 | 2015-03-17 | Microchip Technology Incorporated | Data space arbiter |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3840859A (en) * | 1972-07-03 | 1974-10-08 | Burroughs Corp | Method and apparatus for regulating input/output traffic of a data processing system |
US4554628A (en) * | 1981-08-17 | 1985-11-19 | Burroughs Corporation | System in which multiple devices have a circuit that bids with a fixed priority, stores all losing bids if its bid wins, and doesn't bid again until all stored bids win |
JPH0193854A (ja) * | 1987-10-05 | 1989-04-12 | Fujitsu Ltd | バス・アービタ |
US4920486A (en) * | 1987-11-23 | 1990-04-24 | Digital Equipment Corporation | Distributed arbitration apparatus and method for shared bus |
JPH02181854A (ja) * | 1989-01-06 | 1990-07-16 | Toshiba Corp | 要求調停方式 |
-
1990
- 1990-01-31 US US07/473,014 patent/US5506989A/en not_active Expired - Fee Related
- 1990-12-28 JP JP2408611A patent/JP2559906B2/ja not_active Expired - Lifetime
- 1990-12-28 EP EP90480221A patent/EP0439987B1/de not_active Expired - Lifetime
- 1990-12-28 DE DE69028017T patent/DE69028017T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2559906B2 (ja) | 1996-12-04 |
JPH04260954A (ja) | 1992-09-16 |
EP0439987B1 (de) | 1996-08-07 |
EP0439987A2 (de) | 1991-08-07 |
US5506989A (en) | 1996-04-09 |
DE69028017D1 (de) | 1996-09-12 |
EP0439987A3 (en) | 1992-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69028017T2 (de) | Arbitrierungssystem mit Beschränkung der aufeinanderfolgenden Zugriffsberechtigungen von Hochprioritätsanforderungen | |
DE3687257T2 (de) | Arbitrierungsvorrichtung zur bestimmung der zugriffsprioritaet auf einen gemeinsamen bus. | |
DE3751391T2 (de) | Verfahren und Vorrichtung zur Speichersteuerung. | |
DE69032481T2 (de) | Buszugriff für Digitalrechnersystem | |
DE69632369T2 (de) | HDLC-Anordnung mit verteiltem internen Bus | |
DE69312192T2 (de) | Aufteilung des buszugriffs zwischen mehreren endlichen automaten mit minimaler wartezeit und priorisierung von ähnlichen zyklustypen | |
DE68922784T2 (de) | Mehrfachbus-Mikrorechnersystem mit Busarbitrierung. | |
DE102005051478B4 (de) | Flashdatenspeichervorrichtung | |
DE69423928T2 (de) | Dynamisch programmierbarer Busarbiter mit Einrichtung zur historischen Rückmeldung | |
DE69128815T2 (de) | Warteschlangen für gegenseitige Verriegelung | |
DE69124905T2 (de) | Datenverarbeitungsvorrichtung zur dynamischen Zeiteinstellung in einem dynamischen Speichersystem | |
DE69834519T2 (de) | Bussteuerungssystem und -verfahren | |
DE2809405C3 (de) | Prioritätssteuerschaltung | |
DE69027515T2 (de) | Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung | |
DE60314347T2 (de) | Betriebsmittelverwaltungsgerät | |
DE68915701T2 (de) | Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung. | |
DE69634182T2 (de) | Direktspeicherzugriffssteuerung mit programmierbarer Zeitsteuerung | |
DE69030640T2 (de) | Multiprozessorarbitrierung in für Einzelprozessor bestimmten Arbitrierungsschemas | |
DE69224279T2 (de) | Verfahren und Gerät zur Arbitrierung auf Basis der Verfügbarkeit von Betriebsmitteln | |
DE3850387T2 (de) | Vorrichtung und verfahren zum zugriff eines knotens auf einen bus. | |
DE69515355T2 (de) | Mehrfacharbitrierungsschema | |
DE69030636T2 (de) | Doppeldomänenspeichersteuerung | |
DE69026367T2 (de) | Prioritätsvorrichtung mit programmierbarer knotenverweilzeit | |
DE602004012310T2 (de) | Speicherschnittstelle für systeme mit mehreren prozessoren und einem speichersystem | |
DE4018481A1 (de) | Mikroprozessor hold- und lock-schaltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |