-
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.