DE69834519T2 - Bussteuerungssystem und -verfahren - Google Patents

Bussteuerungssystem und -verfahren Download PDF

Info

Publication number
DE69834519T2
DE69834519T2 DE69834519T DE69834519T DE69834519T2 DE 69834519 T2 DE69834519 T2 DE 69834519T2 DE 69834519 T DE69834519 T DE 69834519T DE 69834519 T DE69834519 T DE 69834519T DE 69834519 T2 DE69834519 T2 DE 69834519T2
Authority
DE
Germany
Prior art keywords
bus
unit
priority level
request
control
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 - Lifetime
Application number
DE69834519T
Other languages
English (en)
Other versions
DE69834519D1 (de
Inventor
Juan G. Cary Revilla
Thomas A. Raleigh Satorius
Mark M. Cary Schaffer
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 DE69834519D1 publication Critical patent/DE69834519D1/de
Application granted granted Critical
Publication of DE69834519T2 publication Critical patent/DE69834519T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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/364Handling 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)
  • Selective Calling Equipment (AREA)
  • Traffic Control Systems (AREA)

Description

  • Die vorliegende Erfindung betrifft die Busleistung und insbesondere die dynamische Steuerung eines Busses mit einer Vielzahl von funktionsmäßig mit diesem verbundenen Einheiten, um den Durchsatz zu verbessern und die Latenzzeit zu verkürzen.
  • Die Anzahl von Funktionen auf einem einzigen integrierten Schaltkreischip nimmt gemeinsam mit einer steigenden Chipdichte weiterhin zu. Diese ein "System auf einem Chip" bildenden integrierten Schaltkreise verwenden normalerweise eine allgemeine, gemeinsam genutzte Busarchitektur zur Bereitstellung der Datenübertragungsverbindung zwischen den verschiedenen Einheiten und Teilsystemen des "Computersystems". Ein allgemeiner Bus stellt eine kostengünstige Datenübertragungsverbindung bereit, da er von mehreren Einheiten im Computersystem gemeinsam genutzt werden kann. Die Verbindung mehrerer Einheiten mit einem einzigen Bus beeinträchtigt jedoch möglicherweise die maximale Busleistung.
  • Das Erzielen einer maximalen Busleistung ist in einer Architektur mit gemeinsam genutztem Bus möglicherweise schwierig. Zu Faktoren, die einen erheblichen Einfluss auf die Busleistung haben, gehören der Systemdurchsatz (d.h. die Bandbreite) und die Systemantwortzeit (d.h. die Latenzzeit). Für die Ermittlung des Durchsatzes oder der Bandbreite ist eine Bustransaktion eine von der Einheit ausgeführte Bustransaktion, die sich am Empfangsende der Übertragung befindet. Der Durchsatz oder die Bandbreite ist die durchschnittliche Anzahl von Bustransaktionen über einen bestimmten Zeitraum. Die Antwortzeit oder Latenzzeit ist die Zeit, die benötigt wird, um eine Bustransaktion für eine bestimmte Einheit auszuführen, beginnend mit dem Zyklus, in dem die Einheit zum ersten Mal den Bus anfordert, bis zu dem Zyklus, in dem der letzte Teil von Daten von der Einheit über den Bus an eine zweite Einheit übertragen wird. Eine Einheit, die den Zugriff auf einen Bus oder die Steuerung eines Busses anfordert und Daten über einen Bus überträgt und empfängt, kann als eine "Haupteinheit" ("master") bezeichnet werden. Eine Einheit, die Daten über einen Bus überträgt und empfängt und auf eine Haupteinheit anspricht, kann als eine "untergeordnete Einheit" ("slave") bezeichnet werden. Eine untergeordnete Einheit kann nicht den Zugriff auf einen Bus oder die Steuerung eines Busses anfordern.
  • Um einen hohen Grad an Busleistung zu erzielen, muss der Durchsatz hoch sein, während die Latenzzeit kurz sein muss. Um einen hohen Grad an Busdurchsatz zu erzielen, ist die untergeordnete Einheit außerdem vorzugsweise nie inaktiv (idle), und infolgedessen ist der Bus vorzugsweise niemals inaktiv. Da die Latenzzeit sich auf die Zeit bezieht, die beginnend mit dem Zyklus, in dem eine Haupteinheit erstmals den Bus anfordert, bis zu dem Zyklus, in dem die letzten Daten von der Haupteinheit über den Bus übertragen werden, zum Ausführen einer Bustransaktion benötigt wird, beinhaltet die Latenzzeit im Gegensatz dazu jedoch den Zeitraum, in dem eine Haupteinheit darauf wartet, dass der Bus verfügbar (d.h. inaktiv) wird. Infolgedessen wird die Latenzzeit verringert, indem es gestattet wird, dass der Bus inaktiv ist.
  • Im Bemühen zur Verbesserung der Busleistung einschließlich des Durchsatzes und der Antwortzeit wurden eine Anzahl verschiedener architektonischer Ausführungen entwickelt. Viele dieser Schemas beruhen auf der "Prioritäts"-Stufe der Einheit, die versucht, die Steuerung des Busses zu erlangen. Die US-Patentschrift Nr. 5 438 666 von Craft et al. beschreibt beispielsweise ein Buszuteilungssystem zur Steuerung des Zugriffs auf einen Bus. Das Buszuteilungssystem von Craft et al. unterbricht die Steuerung des Busses durch eine erste Einheit, wenn eine zweite Einheit mit einer höheren Priorität den Zugriff auf den Bus anfordert. Sobald die zweite Einheit ihren Zugriff auf den Bus beendet, wird die Steuerung des Busses wieder der ersten Einheit übergeben. Die Übertragung der Steuerung wird ausgeführt, ohne dass der Ablaufsteuerungsaufwand der Zuteilung einer Priorität zwischen Bushaupteinheiten mit aktiven Busanforderungen notwendig wird.
  • Die US-Patentschrift Nr. 5 140 680 von Best beschreibt ein Buszuteilungssystem für ein Computernetz mit mehreren Haupteinheiten und untergeordneten Einheiten, die einen allgemeinen Bus gemeinsam nutzen. Das Buszuteilungssystem beinhaltet eine Buszuteilungslogik in jeder Haupteinheit und berücksichtigt die Verarbeitungsverzögerung der langsamsten Haupteinheit, wenn festgelegt wird, welche Haupteinheit zu einem gegebenen Zeitpunkt den Zugriff auf den Bus haben soll.
  • Als ein weiteres Beispiel beschreibt die US-Patentschrift Nr. 5 388 228 von Heath et al. ein Buszuteilungssystem mit einer zentralen Buszuteilungssteuerschaltung und einer lokalen Zuteilungseinrichtung (arbiter), die jeder Einheit zugeordnet wird, die versucht, Zugriff auf einen allgemeinen Bus zu erhalten. Heath et al. schaffen außerdem die Voraussetzungen für die Programmierung jeder Einheit, so dass sie in einem linearen oder in einem Ausgleichmodus (fairness mode) betrieben wird. Beim Betrieb im Ausgleichmodus gibt eine erste Einheit, die Zugriff auf den Bus hat, auf die Anforderung einer zweiten Einheit nach dem Buszugriff hin die Steuerung des Busses auf, sobald die erste Einheit eine entsprechende Anzahl von Übertragungsvorgängen ausgeführt hat, wobei der anfordernden Einheit mit der nächsthöchsten Prioritätsstufe das Erlangen der Steuerung des Busses ermöglicht wird.
  • Andere Ausführungen, die eine gemeinsame Nutzung eines allgemeinen Busses beinhalten, haben versucht, die widersprüchlichen Gestaltungsanforderungen eines hohen Durchsatzes und einer kurzen Latenzzeit anzugehen, indem Übertragungsvorgänge mit langen geschlossenen Übertragungsblöcken verwendet werden, um höhere Durchsätze zu erreichen, wobei Latenzzeitgeber von Haupteinheiten (master latency timers) verwendet werden, um die Latenzzeit durch eine Begrenzung der Länge der Übertragungsblöcke zu verringern. Latenzzeitgeber können normalerweise unter Verwendung eines programmierbaren Registers und eines Zählers in einer Haupteinheit realisiert werden. Der anfängliche Latenzzeit-Zählwert, der die maximale Anzahl von Taktzyklen darstellt, in denen die Haupteinheit die Steuerung oder den Eignerstatus (ownership) über den allgemeinen Bus beibehalten kann, wird in das programmierbare Register geladen. Normalerweise wird der Zählwert jedes Mal, wenn die Einheit die Steuerung des Busses erhält, auf null zurückgesetzt. Sobald der Wert des Zählers den im Register gespeicherten Wert erreicht (d.h., der Latenzzeitgeber ist abgelaufen), muss die entsprechende Einheit, die die Steuerung über den Bus innehat, die Steuerung unabhängig von den Busnutzungsbedingungen des Systems aufgeben.
  • In Systemen, in denen die Busnutzung gering ist (d.h., die Datenübertragung über den Bus ist verhältnismäßig gering), hat eine Einheit, deren Latenzzeitgeber abgelaufen ist und die folglich die Steuerung des Busses aufgeben muss, auch wenn sie weitere Daten über den Bus übertragen muss, infolgedessen eine Bandbreite (d.h. einen Durchsatz), die unnötigerweise begrenzt sein kann. In Systemen, in denen die Busnutzung insofern verhältnismäßig hoch ist, als verschiedene Einheiten gleichzeitig den Bus anfordern, wird eine Einheit außerdem den Bus wahrscheinlich verwenden, bis ihr Latenzzeitgeber abläuft. Die Steuerung des Busses durch eine Einheit bis zum Ablaufen ihres Latenzzeitgebers bewirkt, dass andere Einheiten auf die Verfügbarkeit des Busses warten und infolgedessen verhältnismäßig hohe Latenzzeiten durchmachen.
  • Außerdem können sich die Busnutzungsbedingungen in einem System im Lauf der Zeit ändern, beispielsweise von einer geringen zu einer starken Nutzung und wieder zurück zu einer geringen Nutzung. Infolgedessen kann es notwendig sein, dass der Latenzzeitgeber jeder Einheit aktualisiert werden muss, um eine maximale Busleistung zu erzielen. Eine Latenzzeit kann aktualisiert werden, indem das Register und der Zähler neu programmiert werden. Zur Neuprogrammierung des Latenzzeitgebers jeder Einheit ist jedoch ein erheblicher Aufwand erforderlich, insbesondere falls dies regelmäßig geschieht. Folglich ist die Verwendung von Latenzzeitgebern zur Verbesserung der Busleistung aufgrund der dynamischen Änderung von Busnutzungsbedingungen im Allgemeinen unwirtschaftlich.
  • Obwohl gegenwärtig verschiedene Buszuteilungsschemas oder Latenzzeitgeber verwendet werden, um den Zugriff auf einen allgemeinen Bus in Systemen mit mehreren Einheiten zu steuern, gehen diese Ausführungen nach dem Stand der Technik die widersprüchlichen Gestaltungsanforderungen eines hohen Durchsatzes und einer geringen Latenzzeit möglicherweise nicht wirkungsvoll an. Außerdem berücksichtigen diese Ausführungen nach dem Stand der Technik nicht die dynamische Änderung von Busnutzungsbedingungen. Zur Verbesserung der maximalen Busleistung müssen die widersprüchlichen Probleme eines hohen Durchsatzes und einer kurzen Latenzzeit angegangen werden, wobei eine dynamische Änderung von Busnutzungsbedingungen berücksichtigt werden muss.
  • Dementsprechend stellt die Erfindung ein Verfahren zur dynamischen Steuerung des Zugriffs auf einen Bus mit einer Vielzahl von funktionsmäßig mit diesem verbundenen Einheiten bereit, wobei jede der Einheiten eine ihr zugeordnete Prioritätsstufe aufweist, wobei das Verfahren den folgenden Schritt umfasst:
    Steuern der Dauer der Steuerung des Busses durch eine erste der Einheiten auf der Grundlage der Verknüpfung eines Latenzzeitgebers mit der der ersten Einheit zugeordneten Prioritätsstufe und einer Prioritätsstufe, die einer anstehenden Anforderung von einer zweiten der Einheiten nach der Steuerung des Busses zugeordnet ist.
  • In einer bevorzugten Ausführungsform enthält der Steuerungsschritt die folgenden Schritte: Freigabe einer Anforderung zur Steuerung des Busses von der ersten Einheit durch die Bussteuereinheit; Empfangen einer Anforderung zum Steuern des Busses und einer der Anforderung von der zweiten Einheit zugeordneten Prioritätsstufe in der Bussteuereinheit; und Übertragen der Prioritätsstufe, die der von der zweiten Einheit empfangenen Anforderung zugeordnet ist, und eines zugeordneten Signals für eine anstehende Anforderung von der Bussteuereinheit an die erste Einheit auf den Empfang der Anforderung von der zweiten Einheit hin. Folglich empfängt die erste Einheit auf die freigegebene Anforderung (granted request) hin als Erstes die Steuerung des Busses von der Bussteuereinheit; und anschließend empfängt sie von der Bussteuereinheit die der anstehenden Steuerungsanforderung von der zweiten Einheit zugeordnete Prioritätsstufe. Die Prioritätsstufe der ersten Einheit wird sodann mit der der Anforderung von der zweiten Einheit zugeordneten Prioritätsstufe verglichen, was zu einer Verlängerung der Dauer der Steuerung des Busses durch die erste Einheit führt, falls die der ersten Einheit zugeordnete Prioritätsstufe zumindest so hoch wie die der zweiten Einheit zugeordnete Prioritätsstufe ist, oder zur Beendigung der Steuerung des Busses durch die erste Einheit, falls die der ersten Einheit zugeordnete Prioritätsstufe geringer als die der zweiten Einheit zugeordnete Prioritätsstufe ist. Es ist zu beachten, dass eine solche Verlängerung oder Beendigung der Steuerung (und in der Tat wahlweise der Vergleich) nur stattfindet, nachdem der der ersten Einheit zugeordnete Latenzzeitgeber bereits abgelaufen ist; andernfalls wird die Steuerung des Busses durch die erste Einheit fortgesetzt, bis der der ersten Einheit zugeordnete Latenzzeitgeber abgelaufen ist.
  • Außerdem stellt die Erfindung ein Verfahren zur dynamischen Steuerung des Zugriffs auf einen Bus mit einer Vielzahl von funktionsmäßig mit diesem verbundenen Einheiten bereit, wobei jede der Einheiten eine ihr zugeordnete Prioritätsstufe aufweist, wobei das Verfahren den folgenden Schritt umfasst:
    Empfangen einer Anforderung zum Steuern des Busses und einer der Anforderung zugeordneten Prioritätsstufe von einer zweiten der Einheiten; und
    Übertragen der Prioritätsstufe, die der von der zweiten Einheit empfangenen Anforderung zugeordnet ist, und eines zugeordneten Signals für eine anstehende Anforderung an eine erste der Einheiten, die auf den Empfang der Anforderung von der zweiten Einheit hin die Steuerung des Zugriffs auf den Bus innehat.
  • Vorzugsweise gehen dem Schritt des Übertragens die folgenden Schritte voraus: Vergleichen der der zweiten Einheit zugeordneten Prioritätsstufe mit den Prioritätsstufen, die jeder anderen Einheit außer der ersten Einheit zugeordnet sind, um die Prioritätsstufe mit dem höchsten Wert zu ermitteln; und Ersetzen der ermittelten Prioritätsstufe für die zweite Prioritätsstufe.
  • Die bevorzugte Ausführungsform weist einen anfänglichen Schritt des Anforderns der Steuerung des Busses von der Bussteuereinheit durch die erste Einheit aus der Vielzahl von Einheiten auf, wobei die Anforderung durch die erste Einheit eine ihr zugeordnete Prioritätsstufe aufweist. Diese Anforderung wird in der Bussteuereinheit empfangen, die die Prioritätsstufen auswertet, die den von verschiedenen Einheiten empfangenen Anforderungen zugeordnet sind, um eine erste Prioritätsstufe mit dem höchsten Wert unter den empfangenen Prioritätsstufen zu ermitteln, und um die der ermittelten ersten Prioritätsstufe zugeordnete Einheit als eine erste Einheit zu kennzeichnen. Die Steuerung des Busses kann sodann auf den Auswertungsschritt hin an die erste Einheit übergeben werden, um die Übertragung von Daten, beispielsweise von Anwendungsdaten, Computerprogrammbefehlen und Adressendaten, zwischen der ersten Einheit und dem Bus zu ermöglichen.
  • In einer anderen bevorzugten Ausführungsform umfasst der Steuerungsschritt die folgenden Schritte: Freigeben (granting) einer Anforderung von einer ersten der Einheiten zur Steuerung des Busses; Empfangen einer Anforderung zur Steuerung des Busses und einer der Anforderung zugeordneten Prioritätsstufe von einer zweiten der Einheiten; Übertragen der Prioritätsstufe, die der von der zweiten Einheit empfangenen Anforderung zugeordnet ist, und eines zugeordneten Signals für eine anstehende Anforderung an die erste Einheit auf den Empfang der Anforderung von der zweiten Einheit hin; und Steuern der Dauer der Steuerung des Busses durch die erste Einheit auf der Grundlage einer Verknüpfung von einem der ersten Einheit zugeordneten Latenzzeitgeber und einem Vergleich der Prioritätsstufe der ersten Einheit mit der der Anforderung von der zweiten Einheit zugeordneten Prioritätsstufe.
  • In dieser bevorzugten Ausführungsform umfasst der Steuerungsschritt außerdem die folgenden Schritte: Fortsetzen der Steuerung des Busses durch die erste Einheit, falls der der ersten Einheit zugeordnete Latenzzeitgeber nicht abgelaufen ist; Verlängern der Dauer der Steuerung des Busses durch die erste Einheit, falls die der ersten Einheit zugeordnete Prioritätsstufe mindestens so hoch wie die der zweiten Einheit zugeordnete Prioritätsstufe ist und der der ersten Einheit zugeordnete Latenzzeitgeber abgelaufen ist; und Beenden der Steuerung des Busses durch die erste Einheit, falls die der ersten Einheit zugeordnete Prioritätsstufe geringer als die der zweiten Einheit zugeordnete Prioritätsstufe ist und der der ersten Einheit zugeordnete Latenzzeitgeber abgelaufen ist.
  • Außerdem stellt die Erfindung ein System zur dynamischen Steuerung eines Busses bereit, wobei das System Folgendes umfasst
    eine Vielzahl von Einheiten, wobei jede der Einheiten eine ihr zugeordnete Prioritätsstufe und einen ihr zugeordneten Latenzzeitgeber aufweist; und
    eine Bussteuereinheit, die mit jeder der Einheiten funktionsmäßig verbunden ist, um die Dauer der Steuerung des Busses durch eine erste der Einheiten auf der Grundlage einer Verknüpfung des Latenzzeitgebers und der der ersten Einheit zugeordneten Prioritätsstufe und einer Prioritätsstufe, die einer anstehenden Anforderung von einer zweiten der Einheiten nach der Steuerung des Busses zugeordnet ist, zu steuern.
  • In einer Ausführungsform umfasst die Bussteuereinheit Folgendes: ein Mittel zur Freigabe einer Anforderung von einer ersten der Einheiten zur Steuerung des Busses; ein Mittel zum Empfangen einer Anforderung zur Steuerung des Busses und einer der Anforderung zugeordneten Prioritätsstufe von einer zweiten der Einheiten; ein Rückmeldungsmittel zum Übertragen der Prioritätsstufe, die der von der zweiten Einheit empfangenen Anforderung zugeordnet ist, an die erste Einheit auf den Empfang der Anforderung von der zweiten Einheit hin; und ein Mittel zum Steuern der Dauer der Steuerung des Busses durch die erste Einheit auf der Grundlage einer Verknüpfung des der ersten Einheit zugeordneten Latenzzeitgebers und eines Vergleichs der Prioritätsstufe der ersten Einheit mit der der Anforderung von der zweiten Einheit zugeordneten Prioritätsstufe.
  • Außerdem stellt die vorliegende Erfindung noch ein System zur dynamischen Steuerung des Zugriffs auf einen Bus mit einer Vielzahl von funktionsmäßig mit diesem verbundenen Einheiten bereit, wobei jede der Einheiten eine ihr zugeordnete Prioritätsstufe aufweist, wobei das System Folgendes umfasst:
    ein Mittel zum Empfangen einer Anforderung zur Steuerung des Busses und einer der Anforderung zugeordneten Prioritätsstufe von einer zweiten der Einheiten; und
    ein Rückmeldungsmittel zum Übertragen der Prioritätsstufe, die der von der zweiten Einheit empfangenen Anforderung zugeordnet ist, auf den Empfang der Anforderung von der zweiten Einheit hin an eine erste der Einheiten, die die Steuerung des Zugriffs auf den Bus innehat.
  • In einer Ausführungsform umfasst das Rückmeldungsmittel Folgendes: ein Feststellungsmittel zum Vergleichen der Prioritätsstufe, die jeder anderen außer der ersten Einheit zugeordnet ist, von der eine Steuerungsanforderung empfangen wird, um die Prioritätsstufe mit dem höchsten Wert zu ermitteln; und ein Übertragungsmittel zum Übertragen der ermittelten Prioritätsstufe und eines Signals für eine anstehende Anforderung an die erste Einheit.
  • Außerdem stellt die Erfindung noch ein System zum dynamischen Zugriff auf einen Bus bereit, wobei das System Folgendes umfasst:
    eine Vielzahl von Einheiten, wobei jede der Einheiten funktionsmäßig mit dem Bus verbunden ist und eine ihr zugeordnete Prioritätsstufe aufweist; und
    ein Dauermittel zum Steuern der Dauer des Zugriffs auf den Bus durch eine erste der Einheiten auf der Grundlage der Verknüpfung eines Latenzzeitgebers mit der der ersten Einheit zugeordneten Prioritätsstufe und einer Prioritätsstufe, die einer anstehenden Anforderung zur Steuerung des Busses von einer zweiten Einheit zugeordnet ist.
  • Außerdem stellt die Erfindung noch ein Computerprogrammprodukt zur dynamischen Steuerung des Zugriffs auf einen Bus mit einer Vielzahl von funktionsmäßig mit diesem verbundenen Einheiten bereit, wobei jede der Einheiten eine ihr zugeordnete Prioritätsstufe aufweist, wobei das Computerprogrammprodukt Folgendes umfasst:
    ein computerlesbares Speichermedium mit einem im Medium enthaltenen computerlesbaren Codemittel, wobei das computerlesbare Codemittel Folgendes umfasst:
    ein Computerbefehlsmittel zum Steuern der Dauer der Steuerung des Busses durch eine erste der Einheiten auf der Grundlage der Verknüpfung eines Latenzzeitgebers mit der der ersten Einheit zugeordneten Prioritätsstufe und einer Prioritätsstufe, die einer anstehenden Anforderung zur Steuerung des Busses von einer zweiten der Einheiten zugeordnet ist.
  • Außerdem stellt die Erfindung noch ein Computerprogrammprodukt zur dynamischen Steuerung des Zugriffs auf einen Bus mit einer Vielzahl von funktionsmäßig mit diesem verbundenen Einheiten bereit, wobei jede der Einheiten eine ihr zugeordnete Prioritätsstufe aufweist, wobei das Computerprogrammprodukt Folgendes umfasst:
    ein computerlesbares Speichermedium mit einem im Medium enthaltenen computerlesbaren Codemittel, wobei das computerlesbare Codemittel Folgendes umfasst:
    ein Computerbefehlsmittel zum Empfangen einer Anforderung zum Steuern des Busses und einer der Anforderung zugeordneten Prioritätsstufe von einer zweiten der Einheiten; und
    ein Computerbefehlsmittel zum Übertragen der Prioritätsstufe, die der von der zweiten Einheit empfangenen Anforderung zugeordnet ist, und eines zugeordneten Signals für eine anstehende Anforderung an eine erste der Einheiten, die die Steuerung des Zugriffs auf den Bus innehat, auf den Empfang der Anforderung von der zweiten Einheit hin.
  • Es wird verstanden, dass solche Systeme und Computerprogramme Vorteile aus denselben bevorzugten Merkmalen ziehen wie die Verfahren der Erfindung.
  • Unter einem anderen Aspekt betrachtet stellt die Erfindung ein Verfahren zum dynamischen Zugriff auf einen Bus mit einer Vielzahl von funktionsmäßig mit diesem verbundenen Einheiten bereit, wobei jede der Einheiten eine ihr zugeordnete Prioritätsstufe aufweist, wobei das Verfahren den folgenden Schritt umfasst:
    Steuern der Dauer des Zugriffs auf den Bus durch eine erste der Einheiten auf der Grundlage einer Verknüpfung eines Latenzzeitgebers mit der der ersten Einheit zugeordneten Prioritätsstufe und einer Prioritätsstufe, die einer anstehenden Anforderung zur Steuerung des Busses von einer zweiten Einheit zugeordnet ist.
  • Vorzugsweise umfasst der Steuerungsschritt die folgenden Schritte: Empfangen der Steuerung des Busses durch eine erste Einheit von einer Bussteuereinheit auf eine Anforderung von der ersten Einheit und einer ihr zugeordneten Prioritätsstufe hin; und Empfangen einer zweiten Prioritätsstufe von der Bussteuereinheit, wobei die zweite Prioritätsstufe einer anstehenden Steuerungsanforderung zugeordnet ist, die durch die Bussteuereinheit von einer zweiten Einheit empfangen wird. Außerdem wird es bevorzugt, dass der Steuerungsschritt weiterhin den folgenden Schritt umfasst: Steuern der Dauer der Steuerung des Busses durch die erste Einheit auf der Grundlage einer Verknüpfung eines der ersten Einheit zugeordneten Latenzzeitgebers und eines Vergleichs der Prioritätsstufe der ersten Einheit mit der zweiten Prioritätsstufe, die der Anforderung von der zweiten Einheit zugeordnet ist. Außerdem wird es bevorzugt, dass dem Schritt des Empfangens der Steuerung des Busses durch eine erste Einheit der folgende Schritt vorausgeht: Anfordern der Steuerung des Busses durch die erste Einheit aus der Vielzahl von Einheiten von der Bussteuereinheit, wobei die Anforderung von der ersten Einheit eine ihr zugeordnete Prioritätsstufe aufweist.
  • Folglich versuchen die hierin beschriebenen Systeme, Verfahren und Computerprogrammprodukte, die Busleistungsfähigkeit in einem Computersystem zu verbessern, in dem mehrere Einheiten einen allgemeinen Bus gemeinsam nutzen, und insbesondere den Durchsatz zu erhöhen und die Latenzzeit zu verringern, wobei eine Anpassung an dynamische Änderungen von Busnutzungsbedingungen erfolgt. Der Zugriff von mehreren Einheiten auf einen allgemeinen Bus wird daher in der bevorzugten Ausführungsform gesteuert, indem die Auswirkung von Prioritätsstufen und Latenzzeit verknüpft werden und indem der Latenzzeitgeber einer Einheit dynamisch gesteuert wird.
  • Wie im Folgenden ausführlicher beschrieben wird, weist in der bevorzugten Ausführungsform jede Haupteinheit im System einen zugeordneten Latenzzeitgeber und eine Prioritätsstufenanzeige auf. Der Latenzzeitgeber kann unter Verwendung eines Registers realisiert werden, das die maximale Anzahl von Zyklen, in denen die Einheit den Bus steuern kann, und einen Zählwert zum Zählen der Steuerungszyklen darstellt. Die Prioritätsstufenanzeige stellt die der Einheit zugeordnete Prioritätsstufe dar. Das System steuert den Bus dynamisch unter Verwendung einer Bussteuereinheit, die mit jeder der Einheiten funktionsmäßig verbunden ist. Die Bussteuereinheit steuert die Dauer, für die eine erste Einheit die Steuerung über den Bus innehat, auf der Grundlage der Verknüpfung des der ersten Einheit zugeordneten Latenzzeitgebers, der der ersten Einheit zugeordneten Prioritätsstufe und der Prioritätsstufe, die einer anstehenden Anforderung zugeordnet ist, die durch die Bussteuereinheit von einer zweiten Einheit empfangen wird. Außerdem verhindert das System, dass die anderen Einheiten den Bus steuern, wenn eine Einheit die Steuerung des Busses innehat. Die Bussteuereinheit umfasst ein Mittel zum Freigeben einer Anforderung von einer ersten Einheit zur Steuerung des Busses. Außerdem enthält die Bussteuereinheit ein Mittel zum Empfangen einer Anforderung zur Steuerung des Busses und einer zugeordneten Prioritätsstufe von einer zweiten Einheit und ein Rückmeldungsmittel, um die Prioritätsstufe, die der von der zweiten Einheit empfangenen Anforderung zugeordnet ist, auf den Empfang der Anforderung von der zweiten Einheit hin an die erste Einheit zu übertragen. Außerdem enthält die Bussteuereinheit ein Mittel zum Steuern der Dauer der Steuerung des Busses durch die erste Einheit auf der Grundlage einer Verknüpfung des der ersten Einheit zugeordneten Latenzzeitgebers und der Ergebnisse eines Vergleichs der Prioritätsstufe der ersten Einheit mit der der Anforderung von der zweiten Einheit zugeordneten Prioritätsstufe. Außerdem kann die Bussteuereinheit auch noch ein Mittel zum Fortsetzen der Steuerung des Busses durch die erste Einheit umfassen, falls der Latenzzeitgeber der ersten Einheit nicht abgelaufen ist, auch wenn die Prioritätsstufe der zweiten Einheit höher als die Prioritätsstufe der ersten Einheit ist. Außerdem wird ein Verlängerungsmittel (extension means) zum Verlängern der Dauer der Steuerung des Busses durch die erste Einheit bereitgestellt, falls die der ersten Einheit zugeordnete Prioritätsstufe höher als die oder gleich der der zweiten Einheit zugeordneten Prioritätsstufe ist, auch wenn der der ersten Einheit zugeordnete Latenzzeitgeber abgelaufen ist. Das System beendet die Steuerung des Busses durch die erste Einheit oder gibt diese ab, falls die der ersten Einheit zugeordnete Prioritätsstufe geringer als die der zweiten Einheit zugeordnete Prioritätsstufe ist und der der ersten Einheit zugeordnete Latenzzeitgeber abgelaufen ist.
  • In einer ersten alternativen Ausführungsform weist jede der Einheiten eine ihr zugeordnete Prioritätsstufe auf, und eine erste Einheit hat die Steuerung des Busses inne. Das System empfängt eine Anforderung zur Steuerung des Busses und eine zugeordnete Prioritätsstufe von einer zweiten Einheit und vergleicht die jeder anderen außer der ersten Einheit zugeordnete Prioritätsstufe, von der eine Steuerungsanforderung empfangen wurde, um die Prioritätsstufe mit dem höchsten Wert zu ermitteln. Die ermittelte Prioritätsstufe mit dem höchsten Wert und ein entsprechendes Signal für eine anstehende Anforderung werden an die erste Einheit rückübertragen.
  • In einer zweiten alternativen Ausführungsform weist jede Einheit außerdem eine ihr zugeordnete Prioritätsstufe auf, und das System steuert die Dauer des Zugriffs auf den Bus durch die erste Einheit auf der Grundlage der Verknüpfung des Latenzzeitgebers mit der der ersten Einheit zugeordneten Prioritätsstufe und einer Prioritätsstufe, die einer anstehenden Anforderung von einer zweiten Einheit zur Steuerung des Busses zugeordnet ist. Außerdem empfängt die erste Einheit die Steuerung des Busses von einer Bussteuereinheit auf ihre Anforderung zur Steuerung der Einheit und die ihr zugeordnete Prioritätsstufe hin. Außerdem empfängt die erste Einheit eine zweite Prioritätsstufe von der Bussteuereinheit, die einer anstehenden Steuerungsanforderung zugeordnet ist, die durch die Bussteuereinheit von einer zweiten Einheit empfangen wird. Die erste Einheit setzt die Steuerung des Busses fort, falls ihr Latenzzeitgeber nicht abgelaufen ist, auch wenn ihre Prioritätsstufe niedriger als die der Anforderung von einer zweiten Einheit zugeordnete zweite Prioritätsstufe ist. Die erste Einheit verlängert die Dauer ihrer Steuerung des Busses, falls ihre zugeordnete Prioritätsstufe höher als oder gleich groß wie die einer zweiten Einheit zugeordnete Prioritätsstufe ist, auch wenn der der ersten Einheit zugeordnete Latenzzeitgeber abgelaufen ist. Schließlich gibt die erste Einheit ihre Steuerung des Busses frei oder beendet diese, falls ihre zugeordnete Prioritätsstufe niedriger als die der zweiten Einheit zugeordnete Prioritätsstufe ist und der der ersten Einheit zugeordnete Latenzzeitgeber abgelaufen ist.
  • Der hierin beschriebene Lösungsansatz verknüpft die Verwendung von Priorität und Latenzzeit zur Verbesserung der Busleistung, wobei der Latenzzeitgeber der Einheit, die die Steuerung des Busses innehat, dynamisch geändert werden kann. Dies wird ausgeführt, indem ein abgelaufener Latenzzeitgeber überschrieben und es der entsprechenden Einheit ermöglicht wird, die Steuerung des Busses so lange fortzusetzen, wie ihre Priorität mindestens so hoch wie die Prioritätsanzeige der anstehenden Anforderung ist. Sobald die Prioritätsanzeige der anstehenden Anforderung höher als die Prioritätsstufe der gegenwärtig den Bus steuernden Einheit ist, gibt die gegenwärtig den Bus steuernde Einheit die Steuerung des Busses auf oder beendet diese.
  • Nun wird eine bevorzugte Ausführungsform der Erfindung lediglich beispielhaft ausführlich beschrieben, wobei auf die folgenden Zeichnungen Bezug genommen wird:
  • 1 ist ein Blockschaltbild, das ein Computersystem darstellt;
  • 2 ist ein Blockschaltbild, das die Beziehungen zwischen den Haupteinheiten, der Bussteuereinheit und einer untergeordneten Einheit darstellt;
  • 3 ist ein Blockschaltbild, das die Rückmeldungslogikschaltung der in 2 gezeigten Bussteuereinheit darstellt;
  • 4 ist eine Flussdiagrammdarstellung, die die Funktionsweise des dynamischen Steuerungssystems darstellt; und
  • 5 ist ein Zeitdiagramm, das beispielhafte Vorgänge des dynamischen Steuerungssystems darstellt.
  • Mit Bezugnahme auf 1 zeigt ein Blockschaltbild ein allgemein bei 100 dargestelltes Computersystem, wobei das Computersystem 100 sich vorzugsweise auf einem einzigen integrierten Schaltkreischip befindet. Das Computersystem 100 weist eine Anzahl von Einheiten und einen Bus auf. Insbesondere weist das Computersystem 100 mehrere Haupteinheiten auf, zu denen eine Zentraleinheit ("CPU") 102 4XX PowerPC ("PPC"), eine Steuereinheit 104 mit direktem Speicherzugriff und eine PowerPC-Haupteinheit 106 mit lokalem Bus gehören. Außerdem weist das Computersystem 100 eine externe Busschnittstelleneinheit ("EBIU") 108 auf, zu der eine Steuereinheit 108a des dynamischen Arbeitsspeichers ("DRAM") und eine Ein/Ausgabe- ("E/A"-) Steuereinheit 108b gehören. Außerdem weist das Computersystem 100 noch eine auf dem Chip befindliche periphere Bus- ("OPB"-) Brücke 110, eine OPB-Haupteinheit 112 und eine untergeordnete OPB-Einheit 114, einen parallelen Anschluss 116 und einen seriellen Anschluss 118 auf.
  • Schließlich weist das Computersystem 100 zwei Bussteuereinheiten auf, eine allgemein mit 120 bezeichnete Bussteuereinheit und eine allgemein mit 122 bezeichnete Bussteuereinheit. Die Bussteuereinheit 120 beinhaltet eine Zuteilungseinrichtung 130, eine Rückmeldungslogikschaltung 131 und einen lokalen PowerPC-4XX-Bus 132. Die Bussteuereinheit 122 beinhaltet eine Zuteilungseinrichtung 134, eine Rückmeldungslogikschaltung 135 und einen auf dem Chip befindlichen peripheren Bus 136.
  • Die 4XX-PPC-CPU 102, die DMA-Steuereinheit 104 und die PLB-Haupteinheit 106 sind Beispiele von "Haupt"-Einheiten und können als "Haupteinheit 1", "Haupteinheit 2" bzw. "Haupteinheit 3" bezeichnet werden. Die EBIU 108 und die OPB-Brücke 110 sind Beispiele für "untergeordnete" Einheiten.
  • Die Haupteinheit 1 102, die Haupteinheit 2 104 und die Haupteinheit 3 106 sind jeweils funktionsmäßig mit der Bussteuereinheit 120 verbunden. Außerdem sind die untergeordnete Einheit 108 und die untergeordnete Einheit 110 funktionsmäßig mit der Bussteuereinheit 120 verbunden. In dem allgemein bei 100 dargestellten Computersystem fungiert die untergeordnete Einheit 110 (d.h. die OPB-Brücke) als eine untergeordnete Einheit und verbindet funktionsmäßig die Haupteinheit 1 102 oder die Haupteinheit 2 104 oder die Haupteinheit 3 106 mit der Bussteuereinheit 122.
  • Wie in 1 dargestellt wird, kann der hierin beschriebene Lösungsansatz die Verbindung einer Vielzahl von Haupteinheiten untereinander oder Funktionen mit einem gemeinschaftlich genutzten Bus ermöglichen, kann jedoch auch ebenso die Verbindung einer Vielzahl von untergeordneten Einheiten mit einem gemeinschaftlich genutzten Bus ermöglichen. In einer bevorzugten Ausführungsform sind die Funktionen der Haupteinheiten und die Funktionen der untergeordneten Einheiten in einem einzigen integrierten Chip enthalten, derselbe Lösungsansatz kann jedoch verwendet werden, um auf einem einzigen Chip befindliche Einheiten, beispielsweise das Computersystem 100, über einen externen Bus 140 mit auf einem anderen Chip befindlichen Einheiten zu verbinden.
  • Mit Bezugnahme auf 2 wird nun die Funktionsweise des die Bussteuereinheit 120 enthaltenen dynamischen Steuerungssystems beschrieben. Jede Haupteinheit weist einen Latenzzeitgeber auf. Beispielsweise weist die Haupteinheit 1 102 den Latenzzeitgeber 102a, die Haupteinheit 2 104 den Latenzzeitgeber 104a und die Haupteinheit 3 106 den Latenzzeitgeber 106a auf.
  • In einer Ausführungsform verwendet das von der Bussteuereinheit 120 realisierte Buszuteilungsschema ein dynamisches Prioritätsschema. In diesem Schema hat jede Haupteinheit eine ihr zugeordnete Prioritätsstufe. In einem bestimmten Prioritätsschema kann die Prioritätsstufe eine von vier Stufen sein, die durch ein Zwei-Bit-Anforderungsprioritätssignal dargestellt werden. In der Reihenfolge von der höchsten Priorität zur niedrigsten Priorität sind die Anforderungsprioritätsstufen die folgenden: "11" stellt eine Prioritätsstufe "hoch" dar, "10" stellt eine Prioritätsstufe "mittelhoch" dar, "01" stellt eine Prioritätsstufe "mittelniedrig" dar und "00" stellt eine Prioritätsstufe "niedrig" dar. Fachleute werden verstehen, dass vielfältige andere Prioritätsschemas verwendet werden können.
  • Im Betrieb überträgt eine Haupteinheit eine Busanforderung und eine entsprechende Anforderungspriorität an die Bussteuereinheit 120. Wenn die Haupteinheit 1 102 beispielsweise eine Busanforderung überträgt, überträgt sie gleichzeitig ein Busanforderungssignal 202 und ein Anforderungsprioritätssignal 204 an die Bussteuereinheit 120.
  • Falls die Bussteuereinheit 120 gleichzeitig Busanforderungen von mehr als einer Haupteinheit empfängt, stellt die Zuteilungseinrichtung 130 fest, ob der Bus 132 verfügbar ist, vergleicht alle Anforderungsprioritätsstufen und erteilt die Steuerung des Busses 132 der Haupteinheit mit der höchsten Prioritätsstufe. Sobald die Zuteilungseinrichtung 130 die Steuerung des Busses 132 der Haupteinheit übergeben hat, die die höchste Anforderungspriorität in Verbindung mit ihrer Busanforderung übertrug, ermittelt die Rückmeldungslogikschaltung 131 sodann die Stufe der höchsten Anforderungspriorität unter jenen Einheiten mit noch anstehenden Busanforderungen. Die sich ergebende aktuelle anstehende Anforderungspriorität wird zusammen mit der Tatsache, dass eine weitere Anforderung anstehend ist, über die Verbindungen 151 bzw. 152 an jede Haupteinheit rückübertragen. Diese Daten werden sodann von der Haupteinheit verwendet, die gegenwärtig die Steuerung des Busses innehat, um festzustellen, ob sie ihre Steuerung des Busses vor Beendigung ihrer Datenübertragung beenden muss, um eine andere Haupteinheit den Bus verwenden zu lassen. Mit anderen Worten, die Haupteinheit, die gegenwärtig die Steuerung des Busses innehat, kann ihre Nutzung des Busses bis zur Übertragung aller Daten, die sie gegenwärtig übertragen muss, fortsetzen, indem sie ihren Latenzzeitgeber in Abhängigkeit von der Priorität der gegenwärtig anstehenden Anforderung dynamisch ändert (d.h. indem sie ihren abgelaufenen Latenzzeitgeber überschreibt).
  • Mit Bezugnahme auf 2 überträgt die Haupteinheit 1 102 ihre Busanforderung 202 und die Anforderungspriorität 204 an die Bussteuereinheit 120. Ähnlich überträgt die Haupteinheit 2 104 ihre Busanforderung 212 und die Anforderungspriorität 214 an die Bussteuereinheit 120. Schließlich überträgt die Haupteinheit 3 106 ihre Busanforderung 222 und die Anforderungspriorität 224 an die Bussteuereinheit 120. Sobald die Bussteuereinheit 120 eine oder mehrere Busanforderungen und entsprechende Anforderungsprioritäten empfängt, ermittelt die Zuteilungseinrichtung 130, die eine Komponente der Bussteuereinheit 120 ist, die Haupteinheit, die eine Busanforderung mit der höchsten Anforderungspriorität übertrug und teilt den Bus 132 der entsprechenden Haupteinheit zu. Die Haupteinheit, der der Bus zugeteilt wurde, empfängt ein Zuteilungssignal, schaltet ihr Anforderungssignal aus und beginnt mit der Übertragung eines Datenblocks (burst). Unter der Annahme, dass die Zuteilungseinrichtung 130 beispielsweise feststellte, dass die Haupteinheit 1 102 die höchste Priorität hatte, überträgt sie ein Zuteilungssignal 208 an die Haupteinheit 1 102, die Haupteinheit 1 102 empfängt das Zuteilungssignal 208, schaltet ihr Anforderungssignal 202 ab und beginnt mit der Übertragung von "Block"-Daten 206 an die Bussteuereinheit 120, die den Datenblock über den Bus 132 an die untergeordnete Einheit 108 überträgt. Falls die Haupteinheit 2 104 die höchste Priorität hatte, empfängt sie auf ähnliche Weise das Zuteilungssignal 218, schaltet ihr Anforderungssignal 212 ab und beginnt mit der Übertragung von "Block"-Daten 216. Falls die Haupteinheit 3 106 schließlich die höchste Priorität hatte, empfängt sie das Zuteilungssignal 228, schaltet ihr Anforderungssignal 222 ab und beginnt mit der Übertragung von "Block"-Daten 226.
  • Die Rückmeldungslogikschaltung 131 verarbeitet die verbleibenden Busanforderungen während jedes Taktzyklus. Insbesondere vergleicht die Rückmeldungslogikschaltung 131 die Busanforderungssignale, um festzustellen, ob noch Anforderungen anstehen. Außerdem vergleicht die Rückmeldungslogikschaltung 131 auch die Anforderungsprioritätsstufen für jede anstehende Anforderung, um aus den gegenwärtig anstehenden Anforderungen die anstehende Anforderung mit der höchsten Priorität zu ermitteln. Die Schaltung 131 rücküberträgt sodann den Wert der gegenwärtig höchsten Priorität einer anstehenden Anforderung und die Tatsache, dass eine Anforderung ansteht, während jedes Taktzyklus auf den Verbindungen 151 bzw. 152 an jede Haupteinheit. Fachleute werden verstehen, dass das Prioritätssignal der anstehenden Anforderung und das Signal der anstehenden Anforderung gesondert oder als ein verknüpftes Signal rückübertragen werden können.
  • Mit Bezugnahme auf 3 wird eine bevorzugte Ausführungsform der Rückmeldungslogikschaltung 131 dargestellt. Wie in 3 dargestellt wird, werden die Busanforderungen der Haupteinheiten, nämlich die Anforderung 202 der Haupteinheit 1, die Anforderung 212 der Haupteinheit 2 und die Anforderung 222 der Haupteinheit 3 von der Rückmeldungslogikschaltung 131 unter Verwendung eines logischen "ODER"-Gatters 240 verglichen. Falls irgendeine der Haupteinheiten gegenwärtig eine anstehende Busanforderung aufweist, ist der Ausgang des ODER-Gatters 240 auf HIGH oder eine logische "1". Der Ausgang des logischen ODER-Gatters 240 stellt das Signal der anstehenden Anforderung dar, das über die Verbindung 152 an jede Haupteinheit rückübertragen wird.
  • Außerdem werden die Busanforderungssignale von jeder der Haupteinheiten unter Verwendung einer "UND"-Gatterlogik auch mit ihrer entsprechenden Anforderungsprioritätsstufe verknüpft. Obwohl nur eine einzige Datenübertragungsleitung (z.B. die Datenübertragungsleitung zwischen der Anforderungspriorität 204 der Haupteinheit 1 und dem "UND"-Gatter 242) gezeigt wird, werden Fachleute verstehen, dass diese eine Leitung die gesamten Eingangsleitungen für das Anforderungsprioritätssignal in das "UND"-Gatter 242 zeigt. In einer bestimmten Ausführungsform wird die Anforderung 202 der Haupteinheit 1 unter Verwendung des logischen "UND"-Gatters 242 mit ihrer entsprechenden Anforderungspriorität 204 der Haupteinheit 1 verknüpft. Die Anforderung 212 der Haupteinheit 2 und die Anforderungspriorität 214 der Haupteinheit 2 werden unter Verwendung des logischen "UND"-Gatters 244 verknüpft. Schließlich werden die Anforderung 222 der Haupteinheit 3 und die Anforderungspriorität 224 der Haupteinheit 3 unter Verwendung des logischen "UND"-Gatters 246 verknüpft. Die Ergebnisse der Vergleiche der logischen "UND"-Gatter 242, 244 und 246 werden unter Verwendung des Vergleichers 248 verglichen. Das Ergebnis des Vergleichers 248 stellt das Signal der Priorität der anstehenden Anforderung dar, das die höchste Prioritätsstufe unter allen gegenwärtig anstehenden Busanforderungen anzeigt. Das Signal der Priorität der anstehenden Anforderung wird über die Verbindung 151 an jede Haupteinheit rückübertragen.
  • 4 ist ein Flussdiagramm, und 5 ist ein Zeitdiagramm, das die obige Prozedur darstellt. Mit Bezugnahme auf 4 wird als Erstes ein Flussdiagramm der Arbeitsgänge des dynamischen Steuerungssystems gezeigt. Die im Flussdiagramm von 4 dargestellten Arbeitsgänge werden im Kontext einer Haupteinheit betrachtet. Das System beginnt, wenn eine Haupteinheit eine Busanforderung bei 402 macht. Anschließend beginnt die Haupteinheit, während jedes Taktzyklus bei 404 eine Prüfung auszuführen, um festzustellen, ob sie eine Buszuteilungssignal von der Zuteilungseinrichtung empfangen hat. Falls kein Zuteilungssignal empfangen wird, setzt die Haupteinheit die Anforderung des Busses und die Überprüfung ihres Zuteilungssignals während jedes Taktzyklus fort. Falls bei 404 ein Zuteilungssignal von der Haupteinheit empfangen wird, übernimmt die Haupteinheit die Steuerung des Busses, setzt ihren Latenzzeitzähler auf "0" und kann bei 406 mit der Übertragung eines Datenblocks beginnen.
  • Anschließend führt die Haupteinheit während jedes Zyklus bei 408 eine Prüfung aus, um festzustellen, ob ihr Latenzzeitzähler abgelaufen ist. Falls ihr Latenzzeitzähler nicht abgelaufen ist, stellt die Haupteinheit sodann bei 412 fest, ob sie den Bus noch immer steuern muss (z.B. falls sie weitere Übertragungsvorgänge über den Bus ausführen muss). Falls die Haupteinheit weitere Übertragungsvorgänge über den Bus ausführen muss, setzt sie ihren Datenblock bei 414 fort und wiederholt die Vorgänge der Entscheidungsblöcke 408, 410 und 412 während jedes Zyklus. Falls die Haupteinheit bei 412 feststellt, dass sie den Bus nicht mehr benötigt (z.B. muss sie keine weiteren Übertragungen über den Bus ausführen), gibt sie den Bus bei 416 frei, wodurch die Datenübertragung beendet wird.
  • Falls die Haupteinheit bei 408 feststellt, dass ihr Latenzzeitzähler abgelaufen ist, stellt sie bei 424 fest, ob die Priorität der anstehenden Anforderung höher als ihre eigene Priorität ist. Falls die Priorität der anstehenden Anforderung höher als die Priorität der Haupteinheit ist, gibt die Haupteinheit den Bus bei 430 frei. Falls die Priorität der anstehenden Anforderung nicht höher als ihre eigene Priorität ist, stellt die Haupteinheit sodann bei 426 fest, ob sie weitere Übertragungsvorgänge ausführen muss. Falls sie weitere Übertragungsvorgänge ausführen muss (oder die Steuerung des Busses fortsetzen muss), setzt die Haupteinheit während des aktuellen Zyklus die Übertragung des Übertragungsblocks bei 428 fort und kehrt zu 424 zurück, um den Vergleichsprozess der Priorität der anstehenden Anforderung gegenüber ihrer eigenen Priorität während des nächsten Zyklus fortzusetzen. Falls die Haupteinheit bei 426 feststellt, dass sie den Bus nicht mehr benötigt, gibt sie den Bus bei 427 frei und stoppt.
  • Sobald die Haupteinheit den Bus bei 430 freigibt, stellt sie bei 432 fest, ob sie weitere Übertragungsvorgänge ausführen muss (d.h., sie benötigt erneut die Steuerung des Busses). Falls die Haupteinheit bei 432 feststellt, dass sie den Bus nicht für weitere Zyklen steuern muss, stoppt sie die Verarbeitung, bis sie eine neue Busanforderung an die Bussteuereinheit überträgt. Falls die Haupteinheit andererseits bei 432 feststellt, dass sie die Steuerung des Busses für weitere Zyklen erneut benötigt, überträgt sie bei 402 eine weitere Anforderung an die Bussteuereinheit. Anschließend geht die Verarbeitung weiter, wie oben beschrieben wird.
  • Mit Bezugnahme auf 5 wird ein Zeitdiagramm gezeigt, das ein Beispiel der Funktionsweise darstellt. In dem in 5 dargestellten bestimmten Beispiel empfängt die Zuteilungseinrichtung 130 während des Zyklus 1 eine Busanforderung von der Haupteinheit 1 mit einer Anforderungspriorität von "10". Da keine weiteren Anforderungen anstehen, rücküberträgt die Zuteilungseinrichtung 130 während des Zyklus 2 ein Zuteilungssignal an die Haupteinheit 1. Auf den Empfang eines Zuteilungssignals hin schaltet die Haupteinheit 1 ihr Anforderungssignal aus, setzt ihren Latenzzeitzähler zurück und beginnt während des Zyklus 2 mit der Steuerung des Busses. In dem in 5 dargestellten Beispiel beginnt die Haupteinheit 1 während des Zyklus 2 sofort mit der Übertragung eines Datenblocks über den Bus. Außerdem stellt die Rückmeldungslogikschaltung 131 (siehe 2) während des Zyklus 2 fest, dass keine weitere Anforderung ansteht und rücküberträgt eine "0" an jede Haupteinheit.
  • Während des Zyklus 3 überträgt die Haupteinheit 2 eine Busanforderung mit einer Anforderungspriorität von "10". Die Rückmeldungslogikschaltung 131 stellt fest, dass die Busanforderung der Haupteinheit 2 ansteht und dass sie eine Anforderungspriorität von "10" hat. Infolgedessen rücküberträgt die Rückmeldungslogikschaltung 131 während des Zyklus 3 Signale an jede Haupteinheit, die anzeigen, dass eine Anforderung ansteht und dass die Priorität der anstehenden Anforderung "10" ist. Während des Zyklus 3 empfängt die Haupteinheit 1 das Signal der Priorität der anstehenden Anforderung und das Signal der anstehenden Anforderung von der Rückmeldungslogikschaltung 131. Daraufhin vergleicht die Haupteinheit 1 die Priorität der anstehenden Anforderung von "10" mit ihrer eigenen Priorität von "10", überprüft ihren Latenzzeitgeber, um festzustellen, ob er abgelaufen ist, und stellt fest, dass sie mit der Steuerung des Busses fortfahren kann. Folglich setzt die Haupteinheit 1 die Steuerung des Busses während des Zyklus 3 fort.
  • Die Bussteuereinheit 120 empfängt während des Zyklus 4 eine Busanforderung von der Haupteinheit 3. Diese Busanforderung hat eine Prioritätsstufe von "01". Daraufhin stellt die Rückmeldungslogikschaltung 131 fest, dass gegenwärtig Busanforderungen anstehend sind und vergleicht außerdem die Anforderungsprioritätsstufen und stellt fest, dass die höchste Priorität einer anstehenden Anforderung "10" ist. Infolgedessen setzt die Rückmeldungslogikschaltung 131 das Signal der anstehenden Anforderung auf "1" und setzt außerdem das Signal der anstehenden Priorität auf "10", was der höchsten Prioritätsstufe einer anstehenden Anforderung entspricht, und überträgt diese Signal zurück an jede Haupteinheit.
  • Auf den Empfang des Signals der anstehenden Anforderung und der Priorität der anstehenden Anforderung hin vergleicht die Haupteinheit 1 die Priorität der anstehenden Anforderung während des Zyklus 4 mit ihrer eigenen Prioritätsstufe. Die Haupteinheit 1 stellt während des Zyklus 4 fest, dass ihre eigene Priorität mindestens so hoch wie die-Priorität der anstehenden Anforderung ist. Während des Zyklus 4 stellt die Haupteinheit 1 jedoch auch fest, dass ihr Latenzzeitgeber abgelaufen ist. Da ihre Priorität mindestens so hoch wie die Priorität der anstehenden Anforderung ist, ändert die Haupteinheit 1 dennoch dynamisch ihren Latenzzeitgeber, indem sie ihn überschreibt, und fährt mit der Steuerung des Busses und der Übertragung ihres "Datenblocks" fort. Dieser Prozess geht während der Zyklen 5 und 6 weiter.
  • Während des Zyklus 7 entscheidet die Haupteinheit 3, eine andere Busanforderung mit einer Anforderungspriorität von "11" zu übertragen. Daraufhin stellt die Rückmeldungslogikschaltung 131 fest, dass eine Anforderung anstehend ist und dass die höchste Prioritätsstufe einer anstehenden Anforderung "11" ist. Infolgedessen rücküberträgt die Rückmeldungslogikschaltung 131 während des Zyklus 7 ein Signal einer anstehenden Anforderung und eine Prioritätsstufe einer anstehenden Anforderung von "11" an jede Haupteinheit.
  • Die Haupteinheit 1 empfängt das Signal der anstehenden Anforderung und die Prioritätsstufe der anstehenden Anforderung von "11" während des Zyklus 7 von der Rückmeldungslogikschaltung 131. Daraufhin vergleicht die Haupteinheit 1 die Prioritätsstufe der anstehenden Anforderung von "11" mit ihrer eigenen Prioritätsstufe von "10" und stellt fest, dass die Prioritätsstufe der anstehenden Anforderung höher ist. Infolgedessen stoppt die Haupteinheit 1 ihren Datenblock und gibt die Steuerung des Busses während des Zyklus 7 frei.
  • Während des Zyklus 8 stellt die Zuteilungseinrichtung 130 fest, dass der Bus verfügbar ist, und stellt auf der Grundlage eines Vergleichs der Prioritätsstufen der anstehenden Anforderungen für die Haupteinheit 2 und die Haupteinheit 3 fest, dass die Haupteinheit 3 die höchste Priorität einer anstehenden Anforderung aufweist, und teilt den Bus während des Zyklus 8 der Haupteinheit 3 zu. Infolgedessen beginnt die Haupteinheit 3 während des Zyklus 8 mit der Steuerung des Busses und leitet einen Datenblock auf dem Bus ein. Die Rückmeldungslogikschaltung setzt die Verarbeitung während der Zyklen 9 und 10 fort, wie oben beschrieben wurde. Auf der Grundlage der Priorität und des Latenzzeitgebers der Haupteinheit 3 setzt diese ihren "Datenblock" über den Bus fort, bis dieser während des Zyklus 10 abgeschlossen ist. Anschließend gibt die Haupteinheit 3 nach der Beendigung ihres Übertragungsblocks den Bus während des Zyklus 10 frei.
  • Schließlich stellt die Zuteilungseinrichtung 130 während des Zyklus 11 fest, dass der Bus verfügbar ist. Infolgedessen stellt die Zuteilungseinrichtung 130 fest, dass die Busanforderung der Haupteinheit 2 noch immer ausstehend ist und dass sie die höchste Priorität einer anstehenden Anforderung hat. Die Zuteilungseinrichtung 130 teilt den Bus während des Zyklus 11 der Haupteinheit 2 zu, und daraufhin beginnt die Haupteinheit 2 während des Zyklus 11 mit der Steuerung des Busses und startet einen Datenblock über den Bus.
  • Es sei darauf hingewiesen, das die Zuteilungseinrichtung 130 eine beliebige Anzahl bekannter Verfahren zur Auswahl von konkurrierenden Prioritätsstufen verwenden kann. Die Ausführung der Zuteilungseinrichtung 130 kann daher vom gewünschten Buszuteilungsschema abhängen.
  • Es wird verstanden, dass die Erfindung nicht auf die Übertragung irgendeines spezifischen Typs von Daten oder Signalen auf dem Bus begrenzt ist, sondern auf die Übertragung eines beliebigen Typs von Daten, z.B. Befehlsdaten, Adressendaten, Datenbus- und Übertragungskennzeichner, Übertragungsblocksignale, Bussperrsignale und so weiter, angewandt werden kann. Obwohl die bevorzugte Ausführungsform vordefinierte Status für die untergeordneten Einheiten und die Haupteinheiten aufweist, werden Fachleute außerdem verstehen, dass jede beliebige Einheit für einen bestimmten Vorgang eine untergeordnete Einheit und für einen anderen Vorgang eine Haupteinheit sein kann. Außerdem ist es zu erkennen, dass die vorliegende Erfindung nicht nur auf die Übertragung von "geschlossenen Übertragungsblöcken", sondern auch auf Bussperrmechanismen und andere die Bussteuerung betreffende Anwendungen, die die Busleistung beeinflussen können, angewandt werden kann. Außerdem versteht es sich von selbst, dass an Stelle der Verwendung einer positiven Logik, bei der eine positive Spannung einem logischen Zustand von "1" entspricht, jedes geeignete Mittel zum Kennzeichnen eines aktiven und eines inaktiven Zustands verwendet werden kann.
  • Außerdem werden Fachleute verstehen, dass die vorliegende Erfindung in Form einer kompletten Hardwareausführungsform, einer kompletten Softwareausführungsform oder einer Ausführungsform, die Software- und Hardwareaspekte verknüpft, vorliegen kann. Normalerweise wird jeder Block oder Schritt des Zeitdiagramms und des Flussdiagramms durch Computerprogrammbefehle ausgeführt, die in einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung geladen werden, um eine Maschine zu erzeugen, so dass die Befehle, die im Computer oder in der anderen programmierbaren Vorrichtung ausgeführt werden, ein Mittel zum Ausführen der im Block bzw. in den Blöcken oder im Schritt bzw. in den Schritten des Zeitdiagramms oder Flussdiagramms angegebenen Funktionen erzeugen. Diese Computerprogrammbefehle werden im Allgemeinen in einem computerlesbaren Speicher gespeichert, der einen Computer oder eine andere programmierbare Vorrichtung anweisen kann, auf eine bestimmte Weise zu funktionieren, indem eine Reihe von Verarbeitungsschritten veranlasst werden, die im Computer oder in der anderen programmierbaren Vorrichtung ausgeführt werden sollen.

Claims (8)

  1. Verfahren zur dynamischen Steuerung des Zugriffs auf einen Bus mit einer Vielzahl von Einheiten, die funktionsmäßig mit diesem verbunden werden können, wobei jeder der Einheiten eine Prioritätsstufe zugeordnet ist, wobei das Verfahren den folgenden Schritt umfasst: Empfangen einer Anforderung zum Steuern des Busses und einer der Anforderung zugeordneten Prioritätsstufe von einer zweiten der Einheiten; gekennzeichnet durch den folgenden Schritt: Übertragen der Prioritätsstufe, die der von der zweiten Einheit empfangenen Anforderung zugeordnet ist, und eines zugeordneten Signals für eine anstehende Anforderung an einer erste der Einheiten, die die Steuerung des Zugriffs auf den Bus innehat, auf den Empfang der Anforderung von der zweiten Einheit hin.
  2. Verfahren nach Anspruch 1, wobei dem Schritt des Übertragens die folgenden Schritte vorausgehen: Vergleichen der der zweiten Einheit zugeordneten Prioritätsstufe mit den Prioritätsstufen, die jeder anderen Einheit außer der ersten Einheit zugeordnet sind, um die Prioritätsstufe mit dem höchsten Wert zu ermitteln; und Ersetzen der ermittelten Prioritätsstufe für die zweite Prioritätsstufe.
  3. Verfahren nach irgendeinem vorhergehenden Anspruch, das außerdem den anfänglichen Schritt des Anforderns der Steuerung des Busses durch die erste Einheit aus der Vielzahl von Einheiten von der Bussteuereinheit umfasst, wobei die Anforderung von der ersten Einheit eine ihr zugeordnete Prioritätsstufe aufweist.
  4. Verfahren nach Anspruch 3, wobei der anfängliche Schritt außerdem die folgenden Schritte umfasst: Empfangen von mindestens einer Anforderung zur Steuerung des Busses und einer der Anforderung zugeordneten Prioritätsstufe von der Vielzahl von Einheiten in der Bussteuereinheit; Auswerten der Prioritätsstufen, die den von den Einheiten empfangenen Anforderungen zugeordnet sind, um eine erste Prioritätsstufe mit dem höchsten Wert unter den empfangenen Prioritätsstufen zu ermitteln und um die der ermittelten ersten Prioritätsstufe zugeordnete Einheit als eine erste Einheit zu kennzeichnen; und Erteilen der Steuerung des Busses an die erste Einheit auf den Auswertungsschritt hin.
  5. Verfahren nach irgendeinem vorhergehenden Anspruch, das außerdem den folgenden Schritt umfasst: Übertragen von Daten zwischen der ersten Einheit und dem Bus auf den Steuerungsschritt hin.
  6. Verfahren nach Anspruch 5, wobei die Daten mindestens einen Datentyp aus Anwendungsdaten, Computerprogrammbefehlen und Adressendaten umfassen.
  7. System zur dynamischen Steuerung des Zugriffs auf einen Bus mit einer Vielzahl von Einheiten, die funktionsmäßig mit diesem verbunden werden können, wobei jede der Einheiten eine ihr zugeordnete Prioritätsstufe aufweist, wobei das System Folgendes umfasst: ein Mittel zum Empfangen einer Anforderung zur Steuerung des Busses und einer der Anforderung zugeordneten Prioritätsstufe von einer zweiten der Einheiten; dadurch gekennzeichnet, dass das System Folgendes umfasst: ein Rückmeldungsmittel zum Übertragen der Prioritätsstufe, die der von der zweiten Einheit empfangenen Anforderung zugeordnet ist, auf den Empfang der Anforderung von der zweiten Einheit hin an eine erste der Einheiten, die die Steuerung des Zugriffs auf den Bus innehat.
  8. Computerprogrammprodukt zur dynamischen Steuerung des Zugriffs auf einen Bus mit einer Vielzahl von Einheiten, die funktionsmäßig mit diesem verbunden werden können, wobei jede der Einheiten eine ihr zugeordnete Prioritätsstufe aufweist, wobei das Computerprogrammprodukt Folgendes umfasst: ein computerlesbares Speichermedium mit einem im Medium enthaltenen computerlesbaren Codemittel, wobei das computerlesbare Codemittel Folgendes umfasst: ein Computerbefehlsmittel zum Empfangen einer Anforderung zur Steuerung des Busses und einer der Anforderung zugeordneten Prioritätsstufe von einer zweiten der Einheiten; dadurch gekennzeichnet, dass das computerlesbare Codemittel Folgendes umfasst: ein Computerbefehlsmittel zum Übertragen der Prioritätsstufe, die der von der zweiten Einheit empfangenen Anforderung zugeordnet ist, und eines zugeordneten Signals für eine anstehende Anforderung an die erste der Einheiten, die die Steuerung des Zugriffs auf den Bus innehat, auf den Empfang der Anforderung von der zweiten Einheit hin.
DE69834519T 1997-03-25 1998-03-19 Bussteuerungssystem und -verfahren Expired - Lifetime DE69834519T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/823,736 US5862353A (en) 1997-03-25 1997-03-25 Systems and methods for dynamically controlling a bus
US823736 1997-03-25

Publications (2)

Publication Number Publication Date
DE69834519D1 DE69834519D1 (de) 2006-06-22
DE69834519T2 true DE69834519T2 (de) 2007-05-03

Family

ID=25239587

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69834519T Expired - Lifetime DE69834519T2 (de) 1997-03-25 1998-03-19 Bussteuerungssystem und -verfahren

Country Status (6)

Country Link
US (1) US5862353A (de)
EP (1) EP0867814B1 (de)
JP (1) JP3596799B2 (de)
AT (1) ATE326725T1 (de)
DE (1) DE69834519T2 (de)
ES (1) ES2265160T3 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076127A (en) * 1996-11-06 2000-06-13 International Business Machines Corporation Configuration of a single point bus arbitration scheme using on-chip arbiters
JP3429149B2 (ja) * 1996-12-19 2003-07-22 ソニー株式会社 伝送装置及びサーバ装置並びに伝送方法
US6055584A (en) * 1997-11-20 2000-04-25 International Business Machines Corporation Processor local bus posted DMA FlyBy burst transfers
US6784890B1 (en) * 1998-03-02 2004-08-31 Intel Corporation Accelerated graphics port expedite cycle throttling control mechanism
US6154769A (en) * 1998-03-27 2000-11-28 Hewlett-Packard Company Scheduling server requests to decrease response time and increase server throughput
US6085271A (en) * 1998-04-13 2000-07-04 Sandcraft, Inc. System bus arbitrator for facilitating multiple transactions in a computer system
US5991900A (en) * 1998-06-15 1999-11-23 Sun Microsystems, Inc. Bus controller
US6240476B1 (en) * 1998-08-21 2001-05-29 International Business Machines Corporation Dynamic allocation of bus master control lines to peripheral devices
US6266718B1 (en) * 1998-10-14 2001-07-24 Micron Technology, Inc. Apparatus for controlling data transfer operations between a memory and devices having respective latencies
US6304923B1 (en) 1998-10-14 2001-10-16 Micron Technology, Inc. Method for prioritizing data transfer request by comparing a latency identifier value received from an I/O device with a predetermined range of values
US6438629B1 (en) * 1999-02-02 2002-08-20 Maxtor Corporation Storage device buffer access control in accordance with a monitored latency parameter
JP4030216B2 (ja) * 1999-03-09 2008-01-09 インターナショナル・ビジネス・マシーンズ・コーポレーション マイクロプロセッサとマイクロプロセッサを含むシステム及びマイクロプロセッサのバスサイクル制御方法
JP2001184300A (ja) * 1999-12-27 2001-07-06 Hitachi Ltd データ処理プロセッサ
EP1164493B1 (de) * 2000-06-16 2005-11-30 STMicroelectronics S.r.l. Arbitrierungsverfahren mit variablen Prioritäten, zum Beispiel für Verbindungsbussen, und entsprechendes System
US6587905B1 (en) 2000-06-29 2003-07-01 International Business Machines Corporation Dynamic data bus allocation
SE0004832L (sv) * 2000-12-22 2002-02-26 Ericsson Telefon Ab L M Digitalt bussystem
KR20030012049A (ko) * 2001-07-30 2003-02-12 엘지전자 주식회사 아비터의 액세스 제어 방법 및 장치
US7107374B1 (en) * 2001-09-05 2006-09-12 Xilinx, Inc. Method for bus mastering for devices resident in configurable system logic
JP2003186824A (ja) * 2001-12-18 2003-07-04 Canon Inc バス使用権優先度調整装置およびシステム
US6880028B2 (en) * 2002-03-18 2005-04-12 Sun Microsystems, Inc Dynamic request priority arbitration
KR100455396B1 (ko) * 2002-10-14 2004-11-06 삼성전자주식회사 마스터 블록들의 우선 순위를 결정하는 파라미터 발생회로 및 파라미터 발생 방법.
JP4266619B2 (ja) * 2002-11-25 2009-05-20 株式会社ルネサステクノロジ 調停回路
US7024506B1 (en) * 2002-12-27 2006-04-04 Cypress Semiconductor Corp. Hierarchically expandable fair arbiter
US7478025B1 (en) * 2003-04-18 2009-01-13 Unisys Corporation System and method to support dynamic partitioning of units to a shared resource
US7350117B2 (en) * 2004-10-05 2008-03-25 International Business Machines Corporation Management of microcode lock in a shared computing resource
US20060095905A1 (en) * 2004-11-01 2006-05-04 International Business Machines Corporation Method and apparatus for servicing threads within a multi-processor system
US7392418B2 (en) * 2004-12-17 2008-06-24 International Business Machines Corporation Capacity on demand using signaling bus control
CN100365602C (zh) * 2004-12-31 2008-01-30 北京中星微电子有限公司 实现多个主动装置对单一总线上从动装置进行存取的设备
US7467245B2 (en) * 2005-07-22 2008-12-16 Cisco Technology, Inc. PCI arbiter
US7809993B2 (en) * 2006-01-17 2010-10-05 International Business Machines Corporation Apparatus, system, and method for receiving digital instructions at devices sharing an identity
TWI318355B (en) * 2006-04-17 2009-12-11 Realtek Semiconductor Corp System and method for bandwidth sharing in busses
CN101692212B (zh) * 2009-06-19 2012-11-14 无锡中星微电子有限公司 一种访问存储器的方法、系统和总线仲裁装置
US8751715B1 (en) * 2010-03-31 2014-06-10 Enc Corporation System and method for controlling device access
US9684633B2 (en) * 2013-01-24 2017-06-20 Samsung Electronics Co., Ltd. Adaptive service controller, system on chip and method of controlling the same

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3886524A (en) * 1973-10-18 1975-05-27 Texas Instruments Inc Asynchronous communication bus
JPS5812611B2 (ja) * 1975-10-15 1983-03-09 株式会社東芝 デ−タテンソウセイギヨホウシキ
US4275440A (en) * 1978-10-02 1981-06-23 International Business Machines Corporation I/O Interrupt sequencing for real time and burst mode devices
IT1100916B (it) * 1978-11-06 1985-09-28 Honeywell Inf Systems Apparato per gestione di richieste di trasferimento dati in sistemi di elaborazione dati
US4375639A (en) * 1981-01-12 1983-03-01 Harris Corporation Synchronous bus arbiter
JPS58107934A (ja) * 1981-12-21 1983-06-27 Matsushita Electric Ind Co Ltd バス制御方式
US4535330A (en) * 1982-04-29 1985-08-13 Honeywell Information Systems Inc. Bus arbitration logic
US4602327A (en) * 1983-07-28 1986-07-22 Motorola, Inc. Bus master capable of relinquishing bus on request and retrying bus cycle
US5388228A (en) * 1987-09-30 1995-02-07 International Business Machines Corp. Computer system having dynamically programmable linear/fairness priority arbitration scheme
US5140680A (en) * 1988-04-13 1992-08-18 Rockwell International Corporation Method and apparatus for self-timed digital data transfer and bus arbitration
JP2633900B2 (ja) * 1988-04-22 1997-07-23 株式会社日立製作所 共通バス制御方法
US4987529A (en) * 1988-08-11 1991-01-22 Ast Research, Inc. Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters
EP0426413B1 (de) * 1989-11-03 1997-05-07 Compaq Computer Corporation Multiprozessorarbitrierung in für Einzelprozessor bestimmten Arbitrierungsschemas
JPH0810445B2 (ja) * 1990-09-21 1996-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 動的バス調停方法及び装置
CA2051029C (en) * 1990-11-30 1996-11-05 Pradeep S. Sindhu Arbitration of packet switched busses, including busses for shared memory multiprocessors
US5301283A (en) * 1992-04-16 1994-04-05 Digital Equipment Corporation Dynamic arbitration for system bus control in multiprocessor data processing system
JP2854474B2 (ja) * 1992-09-29 1999-02-03 三菱電機株式会社 バス使用要求調停装置
US5546548A (en) * 1993-03-31 1996-08-13 Intel Corporation Arbiter and arbitration process for a dynamic and flexible prioritization
US5530838A (en) * 1993-06-10 1996-06-25 Ricoh Company, Ltd. Method and apparatus for controlling access to memory which is common to plural, priority-ordered central processing units and which is indirectly accessible via a transfer control unit
US5471590A (en) * 1994-01-28 1995-11-28 Compaq Computer Corp. Bus master arbitration circuitry having improved prioritization
US5623672A (en) * 1994-12-23 1997-04-22 Cirrus Logic, Inc. Arrangement and method of arbitration for a resource with shared user request signals and dynamic priority assignment
US5572686A (en) * 1995-06-05 1996-11-05 Apple Computer, Inc. Bus arbitration scheme with priority switching and timer

Also Published As

Publication number Publication date
EP0867814A3 (de) 2004-11-10
ATE326725T1 (de) 2006-06-15
DE69834519D1 (de) 2006-06-22
JP3596799B2 (ja) 2004-12-02
ES2265160T3 (es) 2007-02-01
EP0867814B1 (de) 2006-05-17
EP0867814A2 (de) 1998-09-30
JPH10293745A (ja) 1998-11-04
US5862353A (en) 1999-01-19

Similar Documents

Publication Publication Date Title
DE69834519T2 (de) Bussteuerungssystem und -verfahren
DE68922784T2 (de) Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE102008034500B4 (de) Arbitrierung
DE68928772T2 (de) Datenverarbeitungssystem mit sich um Zugriff auf verteilte Betriebsmittel bewerbenden Einheiten und mit auf den Status der verteilten Betriebsmittel reagierender Schiedsrichtereinheit
EP0929041B1 (de) Verfahren und Anordnung zum Betreiben eines Bussystems
EP0179936B1 (de) Verfahren und Einrichtung zur Steuerung einer Sammelleitung
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE69613423T2 (de) Unterbrechungssystem in einem Mikroprozessor
DE3851534T2 (de) Vorrichtung und verfahren zur buszugriffssteuerung.
DE69028017T2 (de) Arbitrierungssystem mit Beschränkung der aufeinanderfolgenden Zugriffsberechtigungen von Hochprioritätsanforderungen
DE69222469T2 (de) Verfahren zur Verminderung der Restbandbreite eines Busses in einem Rechnersystem
DE3820544C2 (de) Ortsbereichsnetzsystem mit einem hiermit gekoppelten Mehrcomputersystem und Verfahren zur Steuerung hiervon
DE69224279T2 (de) Verfahren und Gerät zur Arbitrierung auf Basis der Verfügbarkeit von Betriebsmitteln
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69515355T2 (de) Mehrfacharbitrierungsschema
DE3850387T2 (de) Vorrichtung und verfahren zum zugriff eines knotens auf einen bus.
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE3114816A1 (de) Schaltungsanordnung fuer eine datenverarbeitende anlage mit mehreren unterschiedlichen einheiten und einer prioritaetssteuerung
DE69114321T2 (de) Zum Durchführen der Unterbrechungsverschachtelungsfunktion geeignetes Unterbrechungssteuerungsgerät.
DE69625673T2 (de) Zweimode-Arbitrierungsverfahren für Rechnersysteme mit null bis zwei Latenzzyklen
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.
DE4018481C2 (de)
DE4035837A1 (de) Bus-hauptschnittstellenschaltung mit transparenter unterbrechung einer datenuebertragungsoperation
DE69219848T2 (de) Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)