-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich allgemein auf ein Multi-Prozessor Computersystem
und spezieller auf ein Verfahren und eine Vorrichtung zum Verteilen
von Haushalts- bzw. Organisationsfunktionen zwischen mehreren Prozessoren
in einem Multi-Prozessor Computersystem.
-
Verwandte Technik
-
Ein
Computer besitzt typischerweise eine oder mehrere Zentralverarbeitungseinheiten
(„Prozessoren") zusätzlich zu
dedizierten funktonalen Einheiten, wie z. B. einem Speicher, einer
Bus-Arbitrierungseinheit, einem Speicherauffrischcontroller und einen
oder mehrere Daten- und Instruktionszwischenspeicher bzw. -caches,
die alle hierin als „Komponenten" bezeichnet werden.
Ein Computersystem, das mehr als einen Prozessor besitzt, wird als
ein Mehr- bzw. Multiprozessorsystem bezeichnet.
-
Kommunikation
zwischen den Prozessoren und Komponenten findet über einen Systembus statt, der
die Komponenten und Prozessoren zusammenschaltet bzw. koppelt. Die
Kommunikation über
den Bus findet in einer „Transaktion” statt.
Wie wohl bekannt ist, können
Instanzen auftreten, bei denen mehr als ein Prozessor versucht,
eine Transaktion auf dem Bus gleichzeitig herauszugeben. Der Prozess
des Bestimmens welcher der Prozessoren den Bus steuern wird und
welchem somit erlaubt wird eine Transaktion auf dem Bus in dieser
Situation herauszugeben, wird als Arbitrierung bezeichnet. Der Prozessor,
der die Arbitrierung gewinnt, wird hierin als der „Busmeister" bzw. „bus master" bezeichnet.
-
Die
Arbitrierung findet in der Bus-Arbitrierungseinheit statt. In einem
System mit einem einzelnen Prozessor kann die Bus-Arbitrierungseinheit
extern von dem Prozessor sein, oder kann in den Prozessor integriert
sein. Eine funktionale Einheit wie beispielsweise eine Bus-Arbitrierungseinheit
wird als „intern" bzw. „integriert" bezeichnet, wenn
die durch die funktionale Einheit durchgeführten Funktionen wenigstens
teilweise durch den Prozessor ausgeführt werden. Im Gegensatz dazu
wird eine funktionale Einheit als „extern" bezeichnet, wenn die durch die funktionale
Einheit durchgeführten
Funktionen nicht durch den Prozessor durchgeführt werden. Wie in der Technik
wohl bekannt ist, beinhaltet eine externe Funktionseinheit typischerweise
dedizierte Schaltungen bzw. Schaltkreise, die konfiguriert sind
zum Durchführen
eines spezifischen Satzes an Funktionen.
-
1 zeigt
ein exemplarisches Multi-Prozessor Computersystem unter Verwendung
eines externen Bus-Arbitrierers zum Durchführen der Bus-Arbitrierung. Wie
in 1 gezeigt ist, besitzt das Multi-Prozessor System
einen Zentralrechner bzw. einen Host 10 und eine Vielzahl
von Prozessoren 12a, 12b ... 12n, die
alle mit einem Systembus 14 verbunden sind. Eine externe
Arbitrierungseinheit 13 empfängt Signale auf den Bus-Anforderungsleitungen
bzw. Bus-Anfrageleitungen (R) und bestimmt welchen von den anfragenden
Prozessoren die Busmeisterschaft gemäß irgendeinem bekannten Protokoll
gewährt werden
sollte. Der Prozessor (oder Host), der die Arbitrierung gewinnt,
wird über
ein Signal auf einer Bestätigungsleitung
(A) benachrichtigt, die den Arbitrierer 13 und den Prozessor
oder Host verbindet. Um der Busmeister zu werden, erklärt bzw.
legt ein Prozessor ein Signal auf seiner Bus-Anfrageleitung (R) an,
und wartet auf die externe Bus-Arbitrierungseinheit 13,
um ihm die Meisterschaft von dem Bus zu gewähren, und zwar mittels eines
Signals auf seiner assoziierten Bestätigungsleitung (A). Die Arbitrierung unter
Verwendung eines externen Bus-Arbitrierers erfordert somit sowohl
eine Anfrage- als auch eine Bestätigungsleitung
für jeden
Prozessor.
-
In
vielen Computersystemen, einschließlich dem in 1 dargestellten
System, werden unterschiedliche Arten von Transaktionen wichtiger
als andere Arten von Transaktionen erachtet. Zum Beispiel könnte ein
Computersystem Transaktionen, die direkten Speicherzugriff (direct
memory access, DMA) involvieren, eine Priorität gegenüber anderen Arten von Transaktionen
geben. Um Anfragen von veränderlicher
Priorität
zu befriedigen, ist es in derartigen Systemen üblich, die Prozessoren 12a bis 12n und die
Bus-Arbitrierungseinheit 13 mit
einer oder mehreren Prioritätsanfrageleitungen
(P) zu koppeln. Wenn ein Prozessor es wünscht eine Prioritätstransaktion auf
dem Bus herauszugeben, legt der Prozessor ein Signal über seine
Prioritätsanfrageleitung
an. Die externe Arbitrierungseinheit 13 verarbeitet die
Anfrage und weist den Bus vorzugsweise an den Prozessor zu, der
das Signal über
die Prioritätsanfrageleitung anlegt.
-
Die
Arbitrierung unter Verwendung einer externen Bus-Arbitrierungseinheit 13 kann
raumintensiv werden, da mehrere dedizierte Leitungen vorgesehen
werden müssen,
um jeden Prozessor 12a bis 12n und den Host 10 mit
der externen Arbitrierungseinheit 13 zu koppeln. In dem
dargestellten Beispiel sind eine Anfrageleitung, eine Bestätigungsleitung und
wenigstens eine Prioritätsanfrageleitung
notwendig, um die Bus-Arbitrierung für jeden Prozessor durchzuführen. Wenn
die Anzahl von Prozessoren, die mit dem Bus verbunden sind groß ist, ist
eine signifikante Menge an Platz notwendig, um zur Arbitrierung
genutzt zu werden.
-
Zusätzlich zu
mehreren Prozessoren setzen Computer typischerweise Festkörperspeicherkomponenten
ein, wie z. B. Komponenten mit Speicher mit dynamischem wahlfreien
Zugriff (dynamic random access memory, DRAM). Der Ausdruck DRAM
wird hierin genutzt werden um jedwelche Art von Speicher mit dynamischem
wahlfreien Zugriff zu bezeichnen, einschließlich von DRAM (dynamischer
bzw. dynamic RAM), SDRAM (synchrones bzw. synchronous DRAM), DRDRAM
(direct rambus DRAM) und andere Arten von Speicher.
-
Digitale
Information, die im DRAM gehalten wird, ist im Allgemeinen in der
Form von Ladung, die in einer zweidimensionalen Anordnung von Kondensatoren
gespeichert ist. Die auf jedem Kondensator gespeicherte Ladung kann
während
einer Leseoperation abgefühlt
werden, oder während
einer Schreiboperation geändert
werden. Zusätzlich
geht Ladung mit der Zeit kontinuierlich verloren, und zwar aufgrund
von Verlusten bzw. Leckagen. Die Größe des Verlusts hängt ab von
den Verarbeitungs- und Betriebsbedingungen, sowie auch von Umgebungsfaktoren,
wie z. B. Temperatur und Versorgungsspannung.
-
Aufgrund
dieses Verlusts muss die Ladung auf individuellen Kondensatoren
in der Kondensatoranordnung von dem DRAM periodisch wieder aufgefrischt
werden.
-
Um
eine Auffrischoperation durchzuführen, wird
digitale Information auf herkömmliche
Weise von dem DRAM gelesen, und sofort in das DRAM zurückgeschrieben.
Auf diese Art und Weise kann die Ladung auf den individuellen Kondensatoren
verstärkt werden,
ohne den Inhalt von der Speicheranordnung bzw. Speichermatrix zu. ändern. Um
die Integrität
von dem Inhalt von der Speicheranordnung sicherzustellen, muss das
DRAM aufgefrischt werden, bevor der Verlust bzw. die Leckage verursacht,
dass die in den Kondensatoren gespeicherte Ladung unterhalb einen
vorher bestimmten Pegel fällt.
Da der DRAM typischerweise in Zeilen und Spalten organisiert ist, wird
die Auffrischung von dem DRAM typischerweise zeilenweise durchgeführt, obwohl
andere Auffrischschemata auch möglich
sind.
-
Die
Steuerung von DRAM-Auffrischprozedur in einer Mehrprozessorenumgebung
wird typischerweise durch einen externen DRAM-Auffrischcontroller gehandhabt, wie
es in der Offenbarung der
US-A-4
706 232 gezeigt ist. Der externe DRAM-Auffrischcontroller
besitzt einen Auffrischzähler,
der die aufzufrischende Zeile anzeigt, und einen Reset bzw. eine
Rücksetzung,
die es ermöglicht,
den Auffrischzähler
zurückzusetzen,
beispielsweise auf die erste Zeile. Obwohl die durch den DRAM-Auffrischcontroller
durchgeführten
Funktionen wichtig für
den Betrieb des Computers sind, verbraucht der DRAM-Auffrischcontroller
wertvollen Raum, der andernfalls für andere Komponenten genutzt
werden könnte.
Zusätzlich
muss der DRAM-Auffrischcontroller mit dem DRAM verbunden sein, und
zwar entweder über
eine oder mehrere dedizierte Leitungen oder über den Systembus. Wenn der
DRAM-Auffrischcontroller den Systembus zum Steuern der DRAM-Auffrischoperationen
nutzt, ist die Systemperformance insgesamt verschlechtert, und zwar
durch die Reduzierung der Datenmenge, die andernfalls transferiert
werden könnte.
Wenn der DRAM-Auffrischcontroller mit dem DRAM über eine oder mehrere dedizierte
Leitungen verbunden ist, wird wertvoller Raum verbraucht, der andernfalls
für andere
Zwecke genutzt werden könnte.
-
Die
europäische
Patentanmeldung, die veröffentlicht
wurde als
EP 0737925 bezieht
sich auf ein verteiltes Bus-Arbitrierungssystem mit einer Pipeline zum
Auflösen
von Buswettbewerb zwischen Prozessoren, die an einen gemeinsamen
Systembus gekoppelt sind.
-
Entsprechend
ist eine Vorrichtung notwendig, die eine Performance von Wartungsfunktionen ermöglicht,
wie z. B. Bus-Arbitrierung und DRAM-Auffrischoperationen, und zwar in einer
Multiprozessorumgebung, während
die Menge an Platz und andere Systemressourcen, die zum Durchführen dieser
Funktionen erforderlich sind, minimiert werden.
-
Zusammenfassung der Erfindung
-
Die
vorliegende Erfindung ist eine Vorrichtung, die die Performance
von Wartungsfunktionen, wie z. B. DRAM-Auffrischoperationen ermöglicht, während die
Menge an Platz minimiert wird, die zum Durchführen dieser Funktionen in einer
Multiprozessorumgebung notwendig ist. Eine Vorrichtung gemäß der Erfindung
ist im unabhängigen
Anspruch 1 definiert. Weitere Ausführungsbeispiele der Erfindung sind
in den angehängten
abhängigen
Ansprüchen spezifiziert.
-
In ähnlicher
Weise, gemäß Ausführungsbeispielen
der vorliegenden Erfindung zum Durchführen von DRAM-Auffrischoperationen,
ist jeder Prozessor versehen mit einem lokalen DRAM-Auffrischcontroller,
der wenigstens einen Anschluss bzw. einen Pin mit einer oder mehreren
dedizierten DRAM-Auffrischleitungen
verbunden hat. In einem bevorzugten Ausführungsbeispiel besitzt jeder
Prozessor einen Pin, der mit einer einzelnen DRAM-Auffrischleitung verbunden
ist. Jeder lokale DRAM-Auffrischcontroller, wenn er zum Durchführen von
DRAM-Auffrischoperationen verantwortlich ist, gibt DRAM-Auffrischsignale
an das DRAM über
die DRAM-Auffrischleitung heraus. Wenn er nicht zum Durchführen von DRAM-Auffrischoperationen
verantwortlich ist, überwacht
jeder lokale DRAM-Auffrischcontroller die DRAM-Auffrischleitung, fühlt DRAM-Auffrischsignale ab,
die durch andere DRAM-Auffrischcontroller
herausgegeben werden, und nutzt die abgefühlten Signale zum Aktualisieren
seines DRAM-Auffrischzeilenzählers.
Eine Rücksetzleitung
kann auch vorgesehen sein zum Zurücksetzen des Zählers. Alternativ kann
das Zurücksetzen
des Controllers durchgeführt werden über die
einzelne DRAM-Auffrischleitung. Das Versehen jedes Prozessors mit
einem lokalen DRAM-Auffrischcontroller eliminiert den Bedarf für einen
externen DRAM-Auffrischcontroller,
spart somit Platz und entfernt den DRAM-Auffrischcontroller als eine im Wettbewerb
stehende Komponente für
die Meisterschaft über
den Bus. Auch wird durch Sicherstellen dass jeder DRAM-Auffrischcontroller
aktuelle Information bezüglich
der DRAM-Auffrischoperationen
besitzt, eine Duplizierung von Auffrischoperationen während Handoffs
bzw. Weitergaben zwischen Prozessoren minimiert. Somit ist der neu
verantwortliche DRAM-Auffrischcontroller fähig, mit der DRAM-Auffrischoperation
weiterzumachen, und zwar wo der DRAM-Auffrischcontroller des letzten Prozessors
gestoppt hat.
-
Kurze Beschreibung der Zeichnungen
-
Diese
Erfindung ist in ihren wesentlichen Grundzügen in den angehängten Ansprüchen herausgestellt.
Die obigen und weitere Vorteile dieser Erfindung können besser
verstanden werden durch Bezug auf die folgende Beschreibung, wenn
man diese zusammen mit den begleitenden Zeichnungen betrachtet,
wobei die Zeichnungen Folgendes zeigen:
-
1 ist
ein funktionales Blockdiagramm von einem herkömmlichen Multiprozessorsystem;
-
2 ist
ein funktionales Blockdiagramm von einem Multiprozessorsystem, das
ein Ausführungsbeispiel
dieser Erfindung aufweist;
-
3 ist
ein funktionales Blockdiagramm von einem Bus-Arbitrierungssystem zur Nutzung in dem
Multiprozessorsystem der 2;
-
4 ist
ein funktionales Blockdiagramm von einem Prozessor zur Nutzung in
dem Bus-Arbitrierungssystem der 3;
-
5 bis 8 sind
Timing- bzw. Zeitsteuerungsdiagramme, die Aspekte von dem Bus-Arbitrierungsprotokoll
gemäß einem
Ausführungsbeispiel darstellen;
und
-
9 ist
ein funktionales Blockdiagramm von einem Bus-Arbitrierungssystem zur Nutzung in dem
System der 2, in dem Fall, in dem der Host versehen
ist mit einem Speicherauffrischcontroller üblicher Konfiguration, wobei
die anderen Speicherauffrischcontroller in den Prozessoren enthalten
sind.
-
Detaillierte Beschreibung
-
In
einem Ausführungsbeispiel
beinhaltet das Multiprozessorsystem dieser Erfindung ein verteiltes DRAM-Auffrischsystem,
in dem jeder Prozessor einen funktional äquivalenten lokalen DRAM-Auffrischcontroller
besitzt. Signale auf einer Auffrischleitung bzw. Refresh-Leitung
werden durch jeden von den lokalen DRAM-Auffrischcontrollern überwacht,
um ein synchrones Aktualisieren der lokalen DRAM-Auffrischzähler und
Zurücksetzen
von den lokalen DRAM-Auffrischzählern zu
ermöglichen.
Somit, wenn die Meisterschaft bzw. Herrschaft über den Bus von einem Prozessor
zu dem anderen weitergeht, kann der lokale DRAM-Auffrischcontroller
des neuen Busmeisters mit dem DRAM-Auffrischprozess weitermachen, ohne
dass es erforderlich ist, dass Information von dem alten Busmeister
zu dem neuen Busmeister transferiert wird, und ohne dass DRAM-Auffrischoperationen
dupliziert werden.
-
In
dem Mehrfach- bzw. Multiverarbeitungssystem der 2 sind
ein Host bzw. eine Zentraleinheit 10 und eine Vielzahl
von Prozessoren 12a bis 12n mit bzw. durch einen
Systembus 14 verbunden. Ein DRAM 16 ist mit dem
Systembus 14 verbunden, und eine Brücke 18 verbindet den
Systembus mit einem externen Bus 20, wie z. B. einem Bus
zum Koppeln bzw. Zusammenschalten peripherer Komponenten (peripheral
component interconnect, PCI). Komponenten, wie z. B. ein Prozessor 22 und
ein Speicher 24 können
mit dem PCI-Bus 20 verbunden sein, sowie auch zahlreiche
andere Komponenten mit diesem Bus verbunden sein können. Jeder
Prozessor 12a bis 12n beinhaltet eine lokale Arbitrierungseinheit 26, 26a bis 26n,
die mit Anfrageleitungen und Prioritätszugangsleitungen bzw. Prioritätszugriffsleitungen
gekoppelt ist. Der Host 10 ist mit einer Host-Arbitrierungseinheit
versehen, die eine übliche Konfiguration
mit den lokalen Arbitrierungseinheiten 26a bis 26n besitzen
kann, oder die anders konfiguriert sein kann, wie es unten detaillierter
beschrieben wird. Die Zusammenschaltung bzw. Kopplung zwischen dem
Systembus 14, dem Host 10 und den Prozessoren 12,
sowie auch die Arbitrierungsleitungen sind detaillierter in 3 dargestellt.
-
Wie
in 3 gezeigt ist, beinhaltet ein verteiltes Arbitrierungssystem
einen Host 10 und Prozessoren 12a bis 12n,
die mit dem Systembus 14 verbunden sind. Der Systembus 14 kann
irgendein bekannter Bus sein, über
den Transaktionen stattfinden können.
Die lokalen Arbitrierer bzw. Vermittler 26a bis 26n sind
in jedem Prozessor 12a bis 12n enthalten. Ein
Host-Arbitrierer 25 ist in ähnlicher Weise in dem Host 10 enthalten.
Obwohl die Arbitrierer 25, 26a bis 26n extern
von dem Host 10 oder den Prozessoren 12a bis 12n sein
können,
ist es aktuell vorgesehen, dass die Arbitrierer 25, 26a bis 26n intern in
dem Host 10 bzw. den Prozessoren 12a bis 12n sein
werden. Die lokalen Arbitrierer 25, 26a bis 26n können in
einer üblichen
Konfiguration gebildet sein. Alternativ kann der Host-Arbitrierer 25 anders
als die lokalen Arbitrierer 26a bis 26n konfiguriert
sein. Das Bilden der lokalen Arbitrierer 26a bis 26n und
optional des Host-Arbitriers 25 nach einer üblichen
Konfiguration ermög licht
es den Arbitrierern jeweils zu dem gleichen Ergebnis zu kommen,
und zwar unter der Voraussetzung eines bestimmten Satzes an Eingaben.
-
In
der folgenden Diskussion wird angenommen, dass der Host 10 eine
Host-Arbitrierungseinheit 25 besitzt, die nicht eine gemeinsame
Konfiguration mit den lokalen Arbitrierungseinheiten 26a bis 26n hat.
Falls jedoch es gewünscht
würde dies
zu tun, könnte
der Host 10 mit einer üblich
bzw. gemeinsam konfigurierten lokalen Arbitrierungseinheit versehen sein.
In dieser Situation könnte
die Arbitrierung mit dem Host 10 auf eine ähnliche
Art und Weise stattfinden, wie bei den restlichen Prozessoren. 9 stellt dieses
alternative Ausführungsbeispiel
dar. Wenn einer der Prozessoren eine Transaktion auf dem Systembus 14 herausgeben
muss, wird der Prozessor ein Signal anlegen um Busmeister zu werden,
und zwar auf seiner assoziierten Bus-Anforderungsleitung. Da jeder lokale
Arbitrierer 26a bis 26n mit der Bus-Anforderungsleitung
des Prozessors verbunden ist, wird jeder lokale Arbitrierer 26a bis 26n das
Signal auf der Bus-Anforderungsleitung des Prozessors empfangen,
und jene Eingabe bei einer bevorstehenden Arbitrierung nutzen. Da
alle lokalen Arbitrierer 26a bis 26n in einem
Cluster von Prozessoren 12a bis 12n synchron betrieben
werden (in einem Gleichschritt auf einer zyklusweisen Basis), beobachtet
und folgt jeder Prozessor 12a bis 12n der Arbitrierungssequenz
von dem Systembus 14. Falls deshalb das Ergebnis von einer
nachfolgenden Arbitrierung ist, dass der anfragende bzw. anfordernde
Prozessor der Busmaster wird, wird die Meisterschaft dem anfordernden
Prozessor gewährt,
ohne dass es erforderlich ist, dass das Arbitrierungsergebnis an
den anfordernden Prozessor kommuniziert wird. In diesem Fall werden alle
anderen Prozessoren das Recht des anfordernden Prozessors den Systembus 14 zu
meistern bzw. zu beherrschen, anerkennen und es unterlassen, Transaktionen
auf den Systembus 14 herauszugeben. In ähnlicher Weise, falls das Ergebnis
von der Arbitrierung ist, dass der anfordernde Prozessor nicht der
Busmeister wird, wird sein assoziierter lokaler Arbitrierer verhindern,
dass der anfordernde Prozessor versucht, eine Transaktion auf den
Systembus 14 herauszugeben.
-
Ein
eindeutiger Aspekt des Nutzens von lokalen Arbitrierern 26a bis 26n anstelle
eines fernen Arbitrierers 13 ist, dass es keinen Bedarf
gibt das Ergebnis der Arbitrierung an die Prozessoren 12a bis 12n zu
kommunizieren. Stattdessen wird jeder Prozessor 12a bis 12n mit
dem Arbitrierungsergebnis direkt von seinem lokalen Arbitrierer 26a bis 26n versorgt.
Entsprechend sind Bestätigungsleitungen nicht
erforderlich. Dies reduziert wesentlich den Bedarf an Platz, der
zum Durchführen
von Arbitrierung notwendig ist.
-
Wie
in den 3 und 4 gezeigt ist, wird die Bus-Arbitrierung
erreicht unter Verwendung von Signalen auf Leitungen BR0 bis BR7,
HBR und HBG. Diese Signale können
digital, analog, optisch oder irgendeine andere Art von Signal sein,
das nutzbar ist zum Kommunizieren von Information zwischen dem Host 10 und
den Prozessoren 12a bis 12n. Die Signale auf den
Leitungen BR0 bis BR7 werden zum Arbitrieren bzw. Vermitteln zwischen
den Prozessoren 12a bis 12n genutzt, und die Signale
auf den Leitungen HBR und HBG werden genutzt, um die Steuerung von
dem Systembus 14 an und von dem Host 10 zu geben.
In diesem Zusammenhang wird ein Signal auf der Leitung BR0 durch
den Prozessor 0 genutzt zum Anfordern der Meisterschaft über den
Bus 14, ein Signal auf BR1 wird durch den Prozessor 1 genutzt
zum Anfordern der Meisterschaft über
den Bus 14 usw. Ein Signal auf der Leitung HBR wird durch den
Host 10 genutzt, um die Meisterschaft von dem Bus 14 anzufordern,
und ein Signal auf der Leitung HBG wird genutzt, um die Meisterschaft über den Bus 14 an
den Host 10 zu geben. Dedizierte Pins bzw. Anschlüsse an dem
Host 10 und den Prozessoren 12a bis 12n ermöglichen
einen kontinuierlichen Zugang auf und ein Überwachen von Signalen auf den
Leitungen, die zur Arbitrierung genutzt werden.
-
Da
die lokalen Arbitrierer 26a bis 26n einen dedizierten
Eingangspin zum Überwachen
von Signalen auf der Anforderungsleitung von dem Host 10 und
von jedem Prozessor 12a bis 12n, der in der Arbitrierung
teilnimmt, haben muss, ist die Anzahl von Prozessoren 12a bis 12n,
die für
eine Meisterschaft auf dem Systembus 14 arbitrieren bzw.
vermitteln können,
durch die Hardware limitiert, die genutzt wird zum Implementieren
der lokalen Arbitrierer 26, 26a bis 26n.
Entsprechend, z. B. in dem dargestellten Ausführungsbeispiel, besitzt jeder
Arbitrierer 26, 26a bis 26n 10 Eingabegins,
die mit den Leitungen HBR, HBG und BR0 bis BR7 verbunden sind. Somit
können
in diesem Ausführungsbeispiel
bis zu 8 Prozessoren 12a bis 12n für die Meisterschaft
von dem Systembus 14 gleichzeitig arbitrieren bzw. vermitteln. Falls
weniger als die maximale Anzahl von Prozessoren mit dem Systembus 14 verbunden
sind, werden die ungenutzten Pins deaktiviert (deasserted) um die lokalen
Arbitrierer daran zu hindern, zu versuchen die Busmeisterschaft
einem nicht teilnehmenden Prozessor zu gewähren. Obwohl das dargestellte
Ausführungsbeispiel
8 Prozessoren zeigt, die mit dem Systembus 14 verbunden
sind, kann diese Anzahl variiert werden durch Ändern der Anzahl von Bus-Anforderungsleitungen
und Pins oder durch Deaktivieren verschiedener Bus-Anforderungsleitungen.
Dementsprechend sind die hierin offenbarten Konzepte nicht auf ein
System beschränkt,
das 8 Prozessoren nutzt und sind in gleicher Weise auf ein System
anwendbar, das wenigstens 2 Prozessoren nutzt.
-
Jeder
Prozessor 12a bis 12n ist mit einer Identifikationsnummer
versehen. In einem exemplarischen Ausführungsbeispiel ist die Identifikationsnummer
dem Prozessor 12a bis 12n unter Verwendung von
einem oder mehreren Identifikationspins 28a bis 28n zugewiesen.
Jedes andere Verfahren zum Identifizieren der Prozessoren kann genauso
genutzt werden.
-
Wenn
einer von den Prozessoren 12x wünscht der Meister von dem Bus
zu werden, legt er ein Signal an seine eigene Bus-Anforderungsleitung an,
zur gleichen Zeit die anderen Bus-Anforderungsleitungen nach Signalen überwachend.
Falls kein Signal von einem Prozessor mit einer höheren Priorität auf einer
anderen Bus-Anforderungsleitung angelegt wird, wird die Meisterschaft über den
Bus an den neuen Anforderer gegeben, und zwar nachdem der aktuelle
Busmeister seine Transaktionen vollendet hat. Der neue Busmeister
behält
die Busmeisterschaft durch Anlegen des Signals auf seiner eigenen Bus-Anforderungsleitung
kontinuierlich solang er der Meister ist. Der Prozessor, der Busmeister
ist, behält die
Meisterschaft über
den Bus bis (1) er keine weiteren schwebenden bzw. wartenden Transaktionen mehr
hat; (2) ein Zähler 30 abläuft und
die Meisterschaft zu einem anderen anfordernden Prozessor weitergegeben
wird, um ein Verhungern des Busses zu verhindern oder (3) seine
Meisterschaft unterbrochen wird, um es zu ermöglichen, dass Transaktionen
mit höherer
Priorität
stattfinden. Der Transfer von der Meisterschaft findet statt dadurch,
dass der aktuelle Busmeister seine Bus-Anforderungsleitung freigibt.
-
Wenn
der aktuelle Meister den Systembus 14 aufgibt, gibt er
das Signal auf seiner assoziierten Bus-Anforderungsleitung frei
bzw. deaktiviert dieses und es wird ihm die niedrigste Priorität zugewiesen. In
dem vorliegenden Ausführungsbeispiel
wird ein Leerlaufzyklus eingeführt,
wenn die Meisterschaft von dem aktuellen Meister zu dem neuen Meister weitergegeben
wird. Ein unmittelbares Aufeinanderfolgen (Pipelining) der Meisterschaft
von dem Bus kann möglich
sein unter Verwendung bekannter Techniken zum Eliminieren dieses
Ruhe- bzw. Leerlaufzyklusses, obwohl in dem vorliegenden bevorzugten
exemplarischen Ausführungsbeispiel
es kein Pipelining zwischen Meistern gibt.
-
Ein
rotierendes Bus-Prioritätsschema
ist implementiert, um eine Bus-Fairness
zwischen den Prozessoren 12a bis 12n sicherzustellen.
Falls zwei oder mehrere Prozessoren gleichzeitig Bus-Anforderungssignale
auf ihren assoziierten Bus-Anforderungsleitungen anlegen bzw. geltend
machen, wird dem Prozessor mit der höchsten Priorität die Meisterschaft
von bzw. über
den Bus gewährt.
Die Priorität zwischen
den Prozessoren kann auf jedwelche andere bekannte Art und Weise
bestimmt werden.
-
Wenn
einem anfordernden Prozessor die Meisterschaft über den Bus nicht gewährt wird,
legt der anfordernde Prozessor kontinuierlich sein Bus-Anforderungssignal
auf seiner assoziierten Bus-Anforderungsleitung an, bis ihm die
Meisterschaft über
den Bus gewährt
wird, es erforderlich ist, dass er das Signal freigibt bzw. zurücknimmt,
um eine Anforderung mit höherer
Priorität
unterzubringen, oder er die Meisterschaft über den Systembus 14 nicht
länger
fordert.
-
Es
kann wünschenswert
sein die Zeit zu limitieren, die ein einzelner Prozessor die Meisterschaft über den
Bus behält
zum Vermeiden einer Bus-Verhungerung
von anderen Prozessoren in dem System. Um dieses Limit vorzusehen,
ist der Zähler 30 (siehe 4)
in jedem lokalen Arbitrierer 26a bis 26n vorgesehen.
Der Zähler 30 definiert
die maximale Zeitdauer, die der Prozessor den Bus 14 meistern kann,
wenn andere Prozessoren auch die Meisterschaft von dem Bus anfordern.
Der Zähler 30 wird
auf einen vordefinierten Wert initiiert, wenn der Prozessor die
Meisterschaft über
den Systembus 14 erlangt, und startet hoch- oder runterzuzählen. Das
Zählen wird
pausiert, falls die Meisterschaft von dem Bus temporär zu dem
Host oder einem anderen Prozessor mit einer Transaktion mit einer
höheren
Priorität transferiert
wird. Falls der Zähler 30 einen
zweiten vordefinierten Wert erreicht, und ein anderer Prozessor
die Meisterschaft über
den Bus 14 anfordert, vollendet der Prozessor seine Transaktion
und gibt die Meisterschaft über
den Systembus 14 für
wenigstens einen Zyklus auf. Falls keine andere Anforderung nach
der Meisterschaft über
den Systembus 14 angelegt worden ist, wenn der Zähler 30 den
zweiten vorher definierten Wert erreicht, wird der Zähler 30 zurückgesetzt
und startet wiederum hinauf oder hinunter zu zählen, während der Prozessor 12 weiterhin die
Meisterschaft über
den Bus behält.
In einem bevorzugten Ausführungsbeispiel
ist einer von den ersten und zweiten vordefinierten Werten Null,
somit zu einem System führend
mit nur einem einzelnen vordefinierten Wert.
-
Wie
oben erwähnt,
werden mehrere Arten von Transaktionen wichtiger erachtet als andere
Arten von Transaktionen. Um diese Transaktionen aufzunehmen, können Prozessoren
bzw. kann ein Prozessor oder der Host 10 mit einer Transaktion
mit Priorität
temporär
den aktuellen Busmeister unterbrechen, und die temporäre Meisterschaft über den
Systembus 14 erlangen. In dem illustrierten Ausführungsbeispiel
wird es einem Prozessor mit einer Transaktion mit Kernprioritätszugriff
(core priority access CPA) oder einer Transaktion mit DMA-Prioritätszugriff
(DMA priority access, DPA) erlaubt, den aktuellen Busmeister zu
unterbrechen und die temporäre Meisterschaft über den
Bus zu erlangen. Um diese Transaktionen mit höherer Priorität zu ermöglichen, sind
eine CPA-Leitung und eine DPA-Leitung vorgesehen, über die
die Prozessoren 12a bis 12n Prioritätsanforderungssignale
anlegen können,
um die Meisterschaft über
den Bus zu erlangen.
-
In ähnlicher
Weise kann der Host 10 die temporäre Meisterschaft über den
Bus erlangen durch Anlegen eines Signals auf einer Host-Busanforderungsleitung
(host bus request, HBR). Die Verwendung von den CPA-, DPA- und HBR-Leitungen
ist unten detaillierter erörtert.
-
Ein
Prozessor 12x wird ein Signal an die CPA-Prioritätsanforderungsleitung
anlegen, wenn er eine Kerntransaktion besitzt, die auf externen
Speicher zugreifen muss. Dies erlaubt es einem Prozessor, Hintergrundtransfers
von einem DMA-Kanal, der dem Busmeister gehört, zu unterbrechen, und die Steuerung
von dem bzw. über
den Systembus 14 zu erlangen. Der aktuelle Busmeister beendet
in dieser Situation seine Transaktion und leitet die Meisterschaft über den
Bus an den anfordernden Prozessor weiter durch Freigeben bzw. Aufheben
des Signals auf seiner assoziierten Bus-Anforderungsleitung bzw.
Bus-Anfrageleitung. Wenn ein Signal auf der CPA-Prioritätsanforderungsleitung
angelegt wird, können
nur Prozessoren mit Kerntransaktionen den Bus 14 anfordern
bzw. anfragen. Die anderen anfordernden Prozessoren geben ihre Bus-Anforderungsleitungen
frei, wenn sie abfühlen,
dass ein Signal auf der CPA-Prioritätsanforderungsleitung angelegt
worden ist. Wenn mehr als ein Prozessor den Systembus 14 anfordert
durch Anlegen eines Signals auf seiner Bus-Anforderungsleitung,
zusammen mit einem Signal auf der CPA-Prioritätsanforderungsleitung, erlangt
der Prozessor mit der höchsten
Priorität
die Busmeisterschaft. Die Zuweisung der Busmeisterschaft zwischen
Prozessoren mit gleicher Priorität
ist oben erörtert
und kann implementiert werden unter Verwendung jedwelchem bekannten
Protokoll.
-
Die
Forderung, dass jene Prozessoren, die nicht ein Signal an die CPA-Prioritätsanforderungsleitung
anlegen, um Signale auf ihren entsprechenden Bus-Anforderungsleitungen
zu deaktivieren bzw. zu entfernen, ermöglicht es, dass Prioritätsanforderungen
gleichzeitig durch die lokalen Arbitrierer 26a bis 26n unter
Verwendung einer einzelnen Leitung verarbeitet werden. Speziell,
da das Protokoll erfordert, dass alle Prozessoren die nicht ein
Signal auf der CPA-Prioritätsanforderungsleitung
anlegen Signale deaktivieren bzw. entfernen, die Anforderungen für die Meisterschaft über den
Bus anzeigen sobald ein Signal auf der CPA-Prioritätsanforderungsleitung
abgefühlt
wird, muss notwendigerweise jedwelche Bus-Anforderungsleitung, die
angelegt wird wenn ein Signal auf der CPA-Prioritätsanforderungsleitung
angelegt wird, eine Transaktion mit hoher Priorität besitzen.
Entsprechend kann eine Arbitrierung bzw. Vermittlung zwischen mehreren
Prozessoren mit gleichzeitigen Prioritätstransaktionen unter Verwendung von
nur einer einzelnen Prioritätsleitung
stattfinden. Ein Beispiel kann diesen Prozess darstellen.
-
Mit
Bezug auf die 3 wird angenommen, dass die
folgenden Signale gleichzeitig angelegt bzw. aktiviert werden:
Prozessor
1 – BR1,
CPA
Prozessor 2 – BR2,
CPA
Prozessor 3 – BR3
Prozessor
4 – BR4.
-
Nach
dem Bestimmen durch die Prozessoren 3 und 4, dass ein Signal auf
der CPA-Prioritätsanforderungsleitung
angelegt worden ist, deaktivieren bzw. entfernen die Prozessoren
3 und 4 Signale auf ihren Bus-Anforderungsleitungen
BR3 bzw. BR4. Zu diesem Zeitpunkt sind nur Signale auf den Bus-Anforderungsleitungen,
die mit den Prozessoren 1 und 2 (BR1, BR2) assoziiert sind, und
ein Signal auf der CPA-Prioritätsanforderungsleitung
angelegt. Entsprechend realisieren die Arbitrierer 26a bis 26n, dass
zwei Prozessoren gleichzeitig Signale auf der CPA-Prioritätsanforderungsleitung
angelegt haben, und somit dass zwei Anforderungen mit hoher Priorität gemacht
worden sind. Entsprechend können
die Arbitrierer 26a bis 26n die Priorität von der
Busmeisterschaft zwischen den Prozessoren 1 und 2 gemäß einem
ge wöhnlichen
Prioritätsschema
zuweisen. Auf diese Art und Weise ermöglicht das Interpretieren der Kombinationen
von angelegten bzw. aktivierten Leitungen, dass der Prioritätszugriff
auf den Systembus 14 gehandhabt wird, unter Verwendung
einer einzelnen Prioritätsanforderungsleitung,
ohne dass eine dedizierte Prioritätsanforderungsleitung für jeden Prozessor 12 erforderlich
ist.
-
Mehrere
Ebenen von Priorität
können
auf eine ähnliche
Art und Weise unter Verwendung zusätzlicher Prioritätszugriffsleitungen
implementiert werden. Zum Beispiel kann in dem in 3 dargestellten
Ausführungsbeispiel
eine zweite Prioritätsebene
unter Verwendung einer DPA-Prioritätsanforderungsleitung
vorgesehen werden. Ein Signal auf der DPA-Prioritätsanforderungsleitung wird
durch einen Prozessor angelegt bzw. aktiviert, wenn der Prozessor
eine DMA-Transakion mit hoher Priorität die externen Speicher involviert
durchführen
muss. Da diese Transaktionen als von niedrigerer Priorität als die CPA-Transaktionen
erachtet werden, muss ein Prozessor 12a bis 12n nur
ein Signal auf der DPA-Prioritätsanforderungsleitung
anlegen, wenn ein Signal auf der CPA-Prioritätsanforderungsleitung nicht
angelegt ist. Das Anlegen eines Signals auf der DPA-Prioritätsanforderungsleitung
erlaubt es, dass ein DMA-Kanal mit hoher Priorität, der einem abhängigen bzw.
Slave-Prozessor 12 erlaubt Hintergrundtransfers von einem
DMA-Kanal mit regulärer
Priorität,
der einem Meisterprozessor gehört,
zu unterbrechen, und temporär
die Meisterschaft über
den Bus 14 zu erlangen.
-
Wenn
ein Signal auf der DPA-Prioritätsanforderungsleitung
angelegt wird, terminiert der aktuelle Meister seine Transaktion
und gibt die Busmeisterschaft an den anfordernden Prozessor durch
Aufheben bzw. Deaktivieren des Signals auf seiner Bus-Anforderungsleitung.
Irgendwelche anderen anfordernden Prozessoren, die nicht eine Transaktion besitzen
für die
das Anlegen eines Signals auf der DPA-Prioritätsanforderungsleitung oder
der CPA-Prioritätsanforderungsleitung
angemessen wäre,
deaktivieren bzw. entfernen in ähnlicher
Weise Signale auf ihren Bus-Anforderungsleitungen, wenn sie abfühlen, dass
ein Signal auf der DPA-Prioritätsanforderungsleitung
angelegt wird. Anders ausgedrückt,
wenn ein Signal auf der DPA-Prioritätsanforderungsleitung
angelegt wird, können
nur Prozessoren 12a bis 12n mit Kerntransaktionen
oder Transaktionen, die DMA-Transfers mit hoher Priorität involvieren,
den Bus anfordern. Wenn mehr als ein Prozessor den Systembus 14 anfordert
durch Anlegen eines Signals an seine entsprechende Bus-Anforderungsleitung zusammen
mit einem Signal auf der DPA-Prioritätsanforderungsleitung,
erlangt der Prozessor mit der höchsten
Priorität
die Busmeisterschaft. Durch die Erfordernisse, dass die Prozessoren 12a bis 12n Signale
auf ihren entsprechenden Bus-Anforderungsleitungen deaktivieren,
wenn ein Signal auf der DPA-Prioritätsanforderungsleitung angelegt
wird (und sie nicht ein Signal auf der DPA-Prioritätsanforderungsleitung
anlegen), kann eine einzelne Leitung benutzt werden zum Vorsehen
von DMA-Prioritätszugriff
auf alle Prozessoren 12a bis 12n. Die Nutzung einer
Kombination von Signalen auf den Bus-Anforderungsleitungen und den
Prioritätsanforderungsleitungen
ermöglicht
es den Bus-Arbitrierungseinheiten mehrere Prioritätsebenen
bzw. -niveaus unter Verwendung einer minimalen Anzahl von Leitungen
unterzubringen.
-
Bei
diesem Arbitrierungsprozess besitzen anfordernde Prozessoren, die
ein Signal auf der CPA-Prioritätsanforderungsleitung
anlegen, eine höhere
Priorität
gegenüber
anfordernden Prozessoren, die Signale auf die DPA-Prioritätsanforderungsleitung
anlegen. Somit werden anfordernde Prozessoren, die ein Signal auf
die DPA-Prioritätsanforderungsleitung
anlegen, Signale auf ihren entsprechenden Bus-Anforderungsleitungen
(und der DPA-Prioritätsanforderungsleitung)
deaktivieren, wenn sie abfühlen,
dass ein Signal auf der CPA-Prioritätsanforderungsleitung durch
einen anderen Prozessor angelegt worden ist.
-
Andere
Prioritätsschemata
können
auch benutzt werden, mehr oder weniger Prioritätsanforderungsleitungen einbeziehend.
Zum Beispiel könnten drei,
vier oder mehr Prioritätsanforderungsleitungen genutzt
werden zum Vorsehen von drei, vier oder mehr Prioritätsebenen.
Auch kann gleichzeitiges Anlegen von Signalen an zwei oder mehr
Prioritätsanforderungsleitungen
(wie z. B. gleichzeitiges Anlegen von Signalen auf die CPA-Prioritätsanforderungsleitung
und die DPA-Prioritätsanforderungsleitung) durch
den gleichen Prozessor genutzt werden zum Vorsehen von zusätzlichen
Prioritätsebenen.
Entsprechend ermöglichen
Kombinationen von Anforderungssignalen und Prioritätssignalen,
dass mehrere Prioritätsebenen
unter Verwendung einer minimalen Anzahl von Prioritätsanforderungsleitungen
aufgenommen werden.
-
Der
Host 10 kann der Busmeister sein. Wenn der Host 10 es
wünschen
würde,
Busmeister zu werden, veranlasst er, dass seine Host-Arbitrierungseinheit 25 ein
Signal an eine Host-Bus-Anforderungsleitung (host bus request, HBR)
anlegt. Der aktuelle Busmeister, nachdem er bestimmt, dass ein Signal auf
der Leitung HBR angelegt worden ist, vervollständigt seine aktuelle Transaktion
und gibt den Systembus 14 frei durch Anlegen eines Signals
auf einer Host-Bus-Genehmigungsleitung (host bus grant, HBG). Der
Host 10 behält
das Signal auf der Leitung HBR angelegt, so lang er den Bus benötigt. Der
Meister, der zuletzt den Systembus 14 freigegeben hat, behält ein Signal
auf seiner entsprechenden Bus-Anforderungsleitung bei, so dass,
wenn der Host 10 das Signal auf der Leitung HBR deaktiviert,
er die Meisterschaft über
den Bus wiedergewinnt.
-
Manchmal
kann der Busmeister in Transaktionen engagiert sein, die nicht sicher
unterbrochen werden können.
Entsprechend kann es für
den Busmeister wichtig werden, den Systembus 14 zu verriegeln,
um zu verhindern, dass die Meisterschaft über den Bus temporär neu zugewiesen
wird. Entsprechend sieht das Arbitrierungssystem für einen
Prozessor 12 die Fähigkeit
vor, den Bus zu verriegeln. Im Speziellen, um den Bus zu verriegeln,
legt der Busmeister ein Signal auf seiner Bus-Anforderungsleitung
an, und behält
dieses bei, erlangt die Meisterschaft über den Bus und legt dann ein
Signal auf einer Leitung an, die dediziert ist zum Verriegeln des Busses,
hierin bezeichnet als die Verriegelungs- bzw. Lock-Leitung. Wenn
ein Signal auf der Verriegelungsleitung angelegt ist, wird das Anlegen
eines Signals auf den CPA- oder DPA-Prioritätsanforderungsleitungen oder
den Host-Bus- Anforderungsleitungen
die Meisterschaft über
den Bus nicht beeinflussen. In ähnlicher
Weise wird ein Ablaufen des Zählers 30 nicht
veranlassen, dass die Meisterschaft von dem Systembus 14 aufzugeben
ist. Die einzige Situation in der die Meisterschaft über den
Systembus 14 beeinflusst wird, nachdem der Systembus 14 verriegelt worden
ist, ist wenn ein Signal auf sowohl der Host-Bus-Anforderungsleitung als auch der
Backoff-Leitung gleichzeitig angelegt wird. Nachdem der Busmeister
seine Transaktion, die erfordert dass der Systembus 14 zu
verriegeln ist, vollendet hat, wird das Signal auf der Verriegelungsleitung
entfernt und die gewöhnliche
Arbitrierung wird wieder aufgenommen.
-
Jeder
Prozessor ist auch mit einem Backoff-Pin versehen, der mit einer
Leitung verbunden ist, die genutzt wird zum Zurückhalten des aktuellen Prozessors
von dem Bus, hierin bezeichnet als die Backoff-Leitung. Außer wenn
ein Signal auf der Verriegelungsleitung angelegt worden ist, wird
der Prozessor, der der aktuelle Busmeister ist, sofort die Meisterschaft über den
Bus 14 aufgeben, wenn ein Signal auf der Backoff-Leitung
angelegt wird. Dieser Prozess wird unten beschrieben.
-
Jetzt
Bezug nehmend auf 2 kann eine Situation auftreten,
in der ein lokaler Prozessor es wünschen würde, eine Transaktion herauszugeben, um
von dem Speicher zu lesen, der an dem PCI-Bus 20 angeschlossen
ist. Der lokale Prozessor wird Arbitrieren bzw. Vermitteln für und die
Meisterschaft über
den Systembus 14 erlangen, und die Transaktion an den PCI-Bus 20 über die
Brücke 18 herausgeben.
Zu der gleichen Zeit kann der Prozessor 22 auf dem PCI-Bus 20 jedoch
versuchen, von einem Speicher zu lesen, der mit dem Systembus 14 verbunden ist,
oder von dem Speicher des lokalen Prozessors. In dieser Situation
versuchen sowohl der lokale Prozessor als auch der externe Prozessor 22,
der mit dem PCI-Bus 20 verbunden ist, den Zugriff auf den Systembus 14 gleichzeitig
zu erlangen. Auch, da die lokalen und externen Prozessoren nicht
miteinander assoziiert sind, gibt es kein Arbitrierungsprotokoll, das
die Meisterschaft zwischen dem lokalen Prozessor und dem externen
Prozessor 22 bestimmen wird. Diese Situation ist als gegenseitiges
Sperren bzw. Deadlock bekannt.
-
Um
das Deadlock bzw. die Blockierung aufzulösen, ist jeder Prozessor mit
einem Backoff-Pin versehen, der mit der Backoff-Leitung verbunden
ist. Die Brücke 18,
abfühlend
dass die Blockierung aufgetreten ist, wird ein Signal auf der Backoff-Leitung anlegen.
Anlegen eines Signals auf der Backoff-Leitung terminiert die Meisterschaft über den
Systembus 14 für
alle Prozessoren 12 und den Host 10 solang die
Transaktion durch den fernen Prozessor 22 noch nicht vollständig erledigt
ist. Nach dem Vervollständigen
der Transaktion durch den fernen Prozessor 22 wird die
Brücke 18 das
Signal auf der Backoff-Leitung entfernen bzw. deaktivieren und dem
lokalen Prozessor 12, der ursprünglich die Meisterschaft über den
Systembus 14 besessen hat, wird erlaubt seine Transaktion
zu vervollständigen.
In diesem Fall würde
es dem lokalen Prozessor mit der Meisterschaft über den Systembus 14 wiederum
erlaubt werden zu versuchen, auf den Speicher der mit dem PCI-Bus 20 verbunden
ist, zuzugreifen.
-
Ein
Ausführungsbeispiel
von einem Arbitrierungsprotokoll wird jetzt detaillierter mit Bezug
auf die in den 5 bis 8 dargestellten
Signaldiagramme beschrieben werden. Jedwelches Arbitrierungsprotokoll,
das geeignet ist zum Zuweisen der Meisterschaft über den Systembus 14 zwischen
dem Host 10 und den Prozessoren 12a bis 12n,
könnte
genutzt werden anstelle von oder zusätzlich zu dem dargestellten
Protokoll. Das exemplarische Protokoll stellt eine Art dar des Weitergebens
der Meisterschaft über den
Bus zwischen den mehreren Prozessoren und dem Host in gerechter
Weise dar, während
es ermöglicht
wird, dass Aufgaben mit höherer
Priorität
bevorzugter Zugriff auf den Bus gewährt wird. In dem beschriebenen
Protokoll wird die Meisterschaft über den Bus einer anfordernden
Einrichtung in der folgenden Reihenfolge der Priorität gewährt:
- (1) Host 10 (ein Signal auf HBR angelegt)
- (2) Prozessor 12 (ein Signal auf BR zusammen mit einem
Signal auf CPA angelegt)
- (3) Prozessor 12 (ein Signal auf BR zusammen mit einem
Signal auf DPA angelegt)
- (4) Prozessor 12 (ein Signal auf BR angelegt).
-
Selbst
wenn der Prozessor die Meisterschaft über den Bus besitzt, gibt es
jedoch mehrere Fälle, bei
denen es für
den Prozessor erforderlich ist, die Meisterschaft temporär an einen
anderen anfordernden Prozessor oder den Host 10 zu geben.
Diese Bedingungen beinhalten:
- (1) Ein Signal
auf der Backoff-Leitung wird angelegt, und Signale auf den Host-Bus-Gewährungs- und
Verriegelungsleitungen werden nicht angelegt (der externe Prozessor
erlangt temporär
die Meisterschaft über
den Bus 14).
- (2) Der aktuelle Meister fordert den Systembus 14 nicht
an, und ein anderer Prozessor oder der Host 10 aktiviert
seine Bus-Anforderungsleitung
oder Host-Bus-Anforderungsleitung bzw. legt ein Signal daran an
(der neue Prozessor oder der Host 10 erlangt die Meisterschaft über den
Bus 14).
- (3) Der aktuelle Meister fordert den Systembus 14 an
durch Anlegen eines Signals auf seine Bus-Anforderungsleitung und
optional eines Signals an die DPA-Prioritätsanforderungsleitung, aber
nicht an die CPA-Prioritätsanforderungsleitung
und ein anderer Prozessor legt ein Signal an seine Bus-Anforderungsleitung
und die CPA-Prioritätsanforderungsleitung
an (der neue Prozessor wird der temporäre Busmeister).
- (4) Der aktuelle Meister fordert den Systembus 14 an
durch Anlegen eines Signals auf seine Bus-Anforderungsleitung, aber
nicht auf die CPA- oder DPA-Prioritätsanforderungsleitungen und
ein anderer Prozessor legt ein Signal an seine Bus-Anforderungsleitung
und die DPA-Prioritätsanforderungsleitung
an (der neue Prozessor wird der temporäre Busmeister).
- (5) Der aktuelle Busmeister fordert den Systembus 14 an
durch Anlegen eines Signals auf seine Bus-Anforderungsleitung und
optional eines Signals auf die CPA- oder DPA-Prioritätsanforderungsleitung
und der Host 10 legt ein Signal an die Host-Bus-Anforderungsleitung
an (der Host 10 wird der temporäre Busmeister nach der Vollendung
der aktuellen Transaktion und dem Anlegen eines Signals auf die
Host-Bus-Gewährleitung durch
den aktuellen Meister).
- (6) Der aktuelle Meister fordert den Systembus 14 an
durch Anlegen eines Signals auf seine Bus-Anforderungsleitung und
optional eines Signals auf die CPA- oder DPA-Prioritätsanforderungsleitung, jedoch
läuft der
Wert von dem Zähler 30 ab,
und ein anderer Prozessor legt ein Signal auf seine Bus-Anforderungsleitung
an (der neue Prozessor wird der Busmeister).
-
Signaldiagramme
von Signalen auf den Arbitrierungsleitungen sind in den 5 bis 8 dargestellt.
In diesen Figuren findet die Arbitrierung wie oben erörtert in
mehreren gemeinsam konfigurierten lokalen Arbitrierungseinheiten 26a bis 26n gleichzeitig
statt. Alle Arbitrierungseinheiten werden synchron betrieben. Ein
Taktsignal MCLK ist vorgesehen, um Operationen von den Arbitrierungseinheiten
und dem Systembus zu regeln. Um das Verständnis des Arbitrierungsprozesses
zu ermöglichen,
sind nur Signale auf Bus-Anforderungsleitungen,
die mit drei Prozessoren (BR0, BR1 und BR2) assoziiert sind, dargestellt.
In den Signaldiagrammen der 5 bis 8 ist
ein Signal angelegt bzw. aktiv, wenn das Signal niedrig ist. Die
entgegengesetzte Konvention könnte jedoch
genauso gut adaptiert werden.
-
5 stellt
das Arbitrierungsprotokoll zwischen mehreren anfordernden Prozessoren
beim Fehlen von jedwelchen Prioritätsanforderungen dar. In 5,
während
dem Taktzyklus 1, ist der Prozessor 0 der Busmeister, ein Signal
auf der Bus-Anforderungsleitung BR0 wird angelegt, und Signale auf
den Bus-Anforderungsleitungen
BR1 und BR2 werden nicht angelegt bzw. sind nicht aktiv. Die Signale
auf den Prioritätsanforderungsleitungen
CPA, DPA und der Host-Bus-Anforderungsleitung HBR werden in diesem
Szenario auch nicht angelegt und werden während der gesamten in 5 dargestellten
Arbitrierung nicht angelegt verbleiben. Das Anlegen von Signalen
auf der Leitung CPA, DPA, HBR und HBG wird ausführlicher unten in Verbindung
mit den 6 bis 8 dargestellt.
-
Während des
Taktzyklus 2 wird ein Signal auf der Leitung BR1 angelegt bzw. aktiviert
und während dem
Taktzyklus 3 wird ein Signal auf der Leitung BR2 angelegt. Da das
Anlegen eines Signals auf den Leitungen BR1 oder BR2 das Recht des
aktuellen Busmeisters zum Fortfahren als Busmeister nicht unterbrechen
kann, hat das Anlegen von Signalen auf den Leitungen BR1 und BR2
keinen unmittelbaren Effekt auf die Meisterschaft über den
Bus. Entsprechend verbleibt der Prozessor 0 der Busmeister bis er
seine Transaktionen vollendet hat, und das Signal auf seiner Bus-Anforderungsleitung
BR0 beim Zyklus 5 entfernt bzw. deaktiviert. Der Zyklus 5 ist ein Übergabe- bzw.
Wechselzyklus, während
dem kein Prozessor der Meister über
den Systembus 14 ist, und während dem keine Daten über den
Bus transferiert werden. Beim Zyklus 6 wird der Prozessor 1 der
Busmeister aufgrund seiner Priorität über den Prozessor 2. Man beachte,
dass die Reihenfolge in der die Prozessoren den Systembus 14 anfordern,
nicht darüber
bestimmend ist, welcher Prozessor der nächste Busmeister werden wird.
Stattdessen, wie oben erörtert,
zum Sicherstellen eines gleichmäßigen bzw.
fairen Zugriffs auf den Systembus 14 durch alle Prozessoren,
wird ein rotierendes Prioritätsschema
genutzt. Obwohl ein rotierendes Prioritätsschema in diesem Ausführungsbeispiel
genutzt wird, könnten
auch andere Prioritätsschemata
genauso gut genutzt werden. Somit würde der Prozessor 1 der Busmeister
werden, selbst wenn die Reihenfolge in der die Prozessoren 1 und
2 den Systembus 14 angefordert haben, umgekehrt wäre.
-
Nachdem
er Busmeister wird, verbleibt der Prozessor 1 Busmeister bis er
seine Transaktion beim Zyklus 10 vollendet hat. Während der
Prozessor 1 der Busmeister ist, legt der Prozessor 0 ein Signal
auf die Leitung BR0 beim Zyklus 9 an. Nach dem Wechselzyklus (Zyklus
11) geht die Meisterschaft über den
Systembus 14 weiter zum Prozessor 2. Der Transfer der Meisterschaft
zum Prozessor 2 findet statt, weil der Prozessor 2 Priorität gegenüber dem Prozessor
0 besitzt (der Prozessor 0 hat die niedrigste Priorität aufgrund
der Tatsache, dass er der letzte Prozessor war, der die Meisterschaft über den
Bus 14 abgetreten hat). Nach dem Vollenden seiner Transaktion
beim Zyklus 16 gibt der Prozessor 2 die Meisterschaft über den
Systembus 14 an den Prozessor 0 weiter, welcher die Meisterschaft über den
Systembus 14 während
dem Zyklus 17 annimmt.
-
Die
Meisterschaft über
den Bus kann unterbrochen werden entweder wenn der Host 10 oder
die höchste
Priorität
in dem System besitzt) den Systembus 14 anfordert, durch
Anlegen eines Signals an die Host-Bus-Anforderungsleitung HBR oder wenn einer der
anderen Prozessoren den Systembus 14 anfordert und ein
Signal an eine von den Prioritätsanforderungsleitungen
CPA oder DPA anlegt. Die Arbitrierung beim Vorhandensein von einem
Signal auf einer Prioritätsanforderungsleitung
wird jetzt mit Bezug auf die 6 bis 8 erörtert werden.
-
6 ist
ein Signaldiagramm, das das Arbitrierungsprotokoll darstellt, wenn
ein Signal auf der CPA-Prioritätsanforderungsleitung
angelegt wird. Wie in 6 gezeigt, ist der Prozessor
0 anfangs der Busmeister. Während
dem Zyklus 1, legt der Prozessor 1 ein Signal auf die Leitung BR1
an. Wie oben bemerkt, beeinflusst dies jedoch nicht die Busmeisterschaft.
Somit, während
dem Zyklus 2, behält
der Prozessor 0 die Busmeisterschaft.
-
Während dem
Zyklus 3, legt der Prozessor zwei Signale auf die Leitungen BR2
und CPA an. Da das Anlegen eines Signals auf die Leitung CPA die temporäre Busmeisterschaft
beeinflusst, veranlasst das Anlegen von Signalen auf die Leitung
BR2 und CPA, dass der Prozessor 1 und der Prozessor 0 handeln. Im
Speziellen deaktiviert bzw. entfernt der Prozessor 1 während dem
nächsten
Taktzyklus (Zyklus 4) das Signal auf der Leitung BR1. In ähnlicher
Weise, während
dem Zyklus 5, entfernt bzw. deaktiviert der Prozessor 0 das Signal
auf der Leitung BR0, um die temporäre Meisterschaft über den
Sys tembus 14 an den Prozessor 2 abzutreten. Nachdem der
Prozessor 2 seine Prioritätstransaktionen
beim Zyklus 10 vollendet hat, tritt er die Steuerung über den
Systembus 14 ab (Zyklus 11), und zwar durch Entfernen bzw.
Deaktivieren des Signals auf seiner Bus-Anforderungsleitung und
dem Signal auf der Leitung CPA. Während dem Zyklus 12 legen sowohl
der Prozessor 1 als auch der Prozessor 0 Signale auf ihre entsprechende
Bus-Anforderungsleitung
an. Da jedoch der Prozessor 0 die Meisterschaft über den Systembus 14 vor
dem Anlegen von Signalen auf die Leitungen CPA und BR2 durch den
Prozessor 2 hatte, hat der Prozessor 0 Priorität gegenüber dem Prozessor 1. Entsprechend
gewinnt der Prozessor 0 die Meisterschaft über den Systembus 14 wieder,
und ist fähig seine
Transaktionen zu vollenden. Nach der Vollendung seiner Transaktionen
gibt der Prozessor 0 die Meisterschaft über den Systembus 14 beim
Zyklus 17 auf, und der Prozessor 1 wird im Zyklus 18 der Busmeister.
-
7 ist
ein Signaldiagramm von einer Arbitrierung, die mehrere Prozessoren
involviert, von denen einer ein Signal auf die DPA-Prioritätsanforderungsleitung
anlegt. Wie in 6 gezeigt, besitzt der Prozessor
0 anfangs die Meisterschaft über
den Bus. Während
dem Zyklus 1 legt der Prozessor 1 ein Signal auf die Leitung BR1
an, ohne ein Signal auf die Leitung CPA oder Leitung DPA anzulegen.
Wie oben mit Bezug auf 5 erörtert, beeinflusst dies nicht die
Meisterschaft über
den Bus. Entsprechend fährt der
Prozessor 0 fort der Meister von dem Bus zu sein.
-
Während dem
Zyklus 3 legt der Prozessor 2 Signale an, sowohl auf die Leitung
BR2 als auch die DPA-Prioritätsanforderungsleitung.
Da dies die Meisterschaft über
den Bus beeinflusst, deaktiviert bzw. entfernt der Prozessor 1 das
Signal auf der Leitung BR1 und der Prozessor 0 entfernt das Signal
auf der Leitung BR0 und zwar während
dem Zyklus 4. Entsprechend, nach einem Leerlaufübergabezyklus (Zyklus 5) wird
der Prozessor 2 der Busmeister.
-
Nach
dem Vollenden seiner Transaktion entfernt der Prozessor 2 die Signale
auf den Leitungen BR2 und DPA, gibt somit die Meisterschaft über den Bus
auf. Dies veranlasst, dass der Prozessor 1 ein Signal auf der Leitung
BR1 während
dem Zyklus 11 wieder anlegt, und veranlasst dass der Prozessor 0 ein
Signal auf der Leitung BR0 während
dem Zyklus 12 wieder anlegt. Da der Prozessor 0 der Meister war vor
dem Anlegen des Signals auf der Leitung DPA, besitzt der Prozessor
0 Priorität
gegenüber
dem Prozessor 1 selbst, obwohl der Prozessor 1 ein Signal auf seiner
Bus-Anforderungsleitung einen Zyklus früher wieder angelegt hat als
der Prozessor 0 ein Signal auf seiner Bus-Anforderungsleitung wieder
angelegt hat. Somit, beim Zyklus 13, gewinnt der Prozessor 0 die
Meisterschaft über
den Bus wieder. Nach der Vollendung seiner Transaktion, entfernt
der Prozessor 0 das Signal auf der Leitung BR0 beim Zyklus 17, somit
den Systembus 14 an den Prozessor mit der dann höchsten Priorität überlassend.
Wie in 6 gezeigt, ist in diesem Fall der Prozessor mit der
nächsthöchsten Priorität der Prozessor
1. Der Prozessor 1 wird die Meisterschaft über den Systembus 14 behalten,
durch Anlegen eines Signals auf der Leitung BR1 während seiner
Transaktion.
-
In
dem Arbitrierungsprozess besitzt ein Prozessor, der ein Signal auf
der CPA-Prioritätsanforderungsleitung
anlegt, eine höhere
Priorität
gegenüber einem
Prozessor, der ein Signal auf die DPA-Prioritätsanforderungsleitung anlegt.
Somit wird ein Prozessor, der ein Signal auf die Leitung DPA anlegt,
das Signal auf der Leitung DPA und seine assoziierten Bus-Anforderungsleitung
entfernen bzw. deaktivieren, nachdem er abfühlt, dass ein anderer Prozessor ein
Signal auf der Leitung CPA angelegt hat. Da dies unkompliziert ist,
wird keine weitere Erläuterung
geliefert.
-
8 ist
ein Signaldiagramm einer Arbitrierung, die das gleichzeitige Anlegen
von zwei Signalen auf die Leitung CPA und das Anlegen durch den Host 10 von
einem Signal auf die Leitung HBR involviert. In 8,
während
dem Zyklus 1, ist der Prozessor 0 der Meister und ein Signal auf
der Leitung BR0 ist angelegt. Während
dem Zyklus 2 legen sowohl die Prozessoren 1 als auch 2 Signale auf
ihren entsprechenden Bus-Anforderungsleitungen BR1 und BR2 an, während sie
auch gleichzeitig Signale auf der Leitung CPA anlegen. Während dem
Zyklus 3 legt der Host 10 ein Signal auf der Leitung HBR
an.
-
Ansprechend
darauf, vollendet der Prozessor 0 seine Transaktion. Wie in dieser
Figur gezeigt, kann die Vollendung der Transaktion des Prozessors 0
einen Zyklus oder mehr brauchen. Entsprechend, im Zyklus 5, nach
der Vervollständigung
der Transaktion des Prozessors 0, entfernt bzw. deaktiviert der Prozessor
0 das Signal auf der Leitung BR0 und legt gleichzeitig ein Signal
auf der Leitung HBG an.
-
Anlegen
eines Signals auf der Leitung HBG übergibt die Meisterschaft über den
Systembus 14 an den Host 10. Der Host 10 behält die Meisterschaft über den
Systembus 14 so lang wie notwendig, durch Anlegen und Beibehalten
eines Signals auf der Leitung HBR. Nach der Vollendung seiner Transaktion, entfernt
der Host 10 das Signal auf der Leitung HBR beim Zyklus
10, um die Meisterschaft über
den Bus abzugeben und die Meisterschaft über den Bus an den Prozessor
0 zurückzugeben.
Da die Prozessoren 1 und 2 jedoch beide Signale auf den Leitungen BR1
und BR2 und Signale auf der Leitung CPA angelegt haben, kehrt die
Meisterschaft nicht zurück
zum Prozessor 0, wie es andernfalls der Fall wäre. Stattdessen, da das Anlegen
eines Signals auf die Leitung CPA durch einen oder mehrere Prozessoren
Priorität gegenüber einer
Transaktion ohne Priorität
annimmt, geht die Meisterschaft weiter zu einem der Prozessoren,
die ein Signal auf der Leitung CPA anlegen. In diesem Fall, da die
Signale auf der Leitung CPA sowohl durch den Prozessor 1 als auch
den Prozessor 2 angelegt worden sind, wird dem Prozessor mit der höheren Priorität die Meisterschaft über den
Bus gewährt.
In dem illustrierten Beispiel wird dem Prozessor 1 die Priorität gegenüber dem
Prozessor 2 gegeben, und die Meisterschaft geht zum Prozessor 1
im Zyklus 12 über.
Nach dem Vollenden seiner Transaktion, gibt der Prozessor 1 die
Meisterschaft über
den Systembus 14 auf, durch Entfernen des Signals auf seiner
Bus-Anforderungsleitung
BR1 und durch Entfernen des Signals auf der Leitung CPA (durch den Prozessor
1), um die Meisterschaft über
den Systembus 14 an den Prozessor 2 im Zyklus 16 weiterzugeben.
-
Man
beachte, dass in diesem Fall das Anlegen eines Signals auf der Leitung
HBR es dem Prozessor 0 ermöglichen
würde,
seine Transaktion zu vollenden, selbst obwohl ein Signal auf CPA
durch einen anderen Prozessor angelegt worden ist. Falls dies nicht
der Fall wäre,
und es dem Prozessor 0 nicht erlaubt worden wäre seine Transaktion vor dem Abtreten
der Busmeisterschaft an den Host 10 zu vollenden, würde nach
der Vollendung der Transaktion von dem Prozessor 2 die Meisterschaft über den Systembus 14 zurück zum Prozessor
0 kehren – d.
h. der Prozessor 0 würde
eine Priorität
gegenüber
den anderen Prozessoren besitzen, die nachfolgend Signale auf ihre
entsprechende Bus-Anforderungsleitung anlegen, ohne gleichzeitig
ein Signal auf die Leitung CPA oder DPA anzulegen.
-
Zusätzlich zu
einem lokalen Arbitrierer, ist jeder Prozessor auch mit einem lokalen
DRAM-Auffrischcontroller 32 versehen. Wie oben erörtert, muss der
DRAM periodisch aufgefrischt werden, und wird typischerweise zeilenweise
aufgefrischt. Dementsprechend besitzt ein DRAM-Auffrischcontroller 32 typischerweise
einen Zeilenzähler 34,
der die Zeile von dem DRAM anzeigt, die zuletzt aufgefrischt wurde,
und besitzt einen Rücksetzer
zum Zurücksetzen des
Zeilenzählers 34,
wenn die letzte Zeile von dem DRAM aufgefrischt ist.
-
Weitergeben
(Handing off) der DRAM-Auffrischung zwischen mehreren Prozessoren 12 wird
dadurch ermöglicht,
dass jeder Prozessor mit einem lokalen DRAM-Auffrischcontroller 32 versehen
ist. Zusätzlich,
wie in 9 gezeigt, kann der Host 10 mit einem
DRAM-Auffrischcontroller 32 versehen sein. Versehen des
Hosts mit einem DRAM-Auffrischcontroller 32 ist nur notwendig,
wenn der Host selbst auf das DRAM zugreifen kann. Jeder lokale DRAM-Auffrischcontroller 32 ist
versehen mit einem Auffrischeingangspin zum Empfangen von Signalen
auf einer Auffrischleitung. Signale, die bezogen sind auf den Auffrischprozess,
werden über
die Leitung angelegt, so dass alle lokalen DRAM-Auffrischcontroller 32 die
gleiche Eingabe besitzen. Diese Signale können genutzt werden zum Erhöhen des
DRAM-Auffrischzählers 34 oder
zum Zurücksetzen
des Zählers 34.
Optional kann der DRAM-Auffrischzähler 34 konfiguriert
sein um automatisch zu dem ersten vordefinierten Wert zurückzukehren,
nachdem der zweite vordefinierte Wert erreicht wird. Weil alle lokalen DRAM-Auffrischcontroller 32 die
gleiche Konfiguration haben, synchronisiert sind und mit den gleichen Eingaben
versehen werden, sind alle lokalen DRAM-Auffrischcontroller 32 aktuell,
was den Zustand bzw. Status von dem DRAM-Auffrischprozess betrifft.
Entsprechend, wenn die Meisterschaft über den Systembus 14 von
einem Prozessor 12 zu einem anderen Prozessor 12 transferiert
wird, ist der lokale DRAM-Auffrischcontroller 32 fähig, den
DRAM-Auffrischprozess fortzuführen,
wenn der vorhergehende Busmaster gestoppt hat, und zwar ohne exzessive Duplizierung.
-
Wenn
die Meisterschaft über
den Bus zu dem Host 10 weitergeht, veranlasst der Auffrischcontroller,
dass das DRAM in einen Selbstauffrischzustand eintritt, bevor der
Bus dem Host gewährt
wird. In dieser Situation muss der Host nicht irgendeine Auffrischoperation
durchführen,
und ist tatsächlich nicht
mit einem DRAM-Auffrischcontroller versehen (3). Optional,
falls es gewünscht,
wäre es
dem Host 10 zu erlauben, auf das DRAM direkt zuzugreifen,
könnte
der Host 10 mit einem DRAM-Auffrischcontroller mit einer
gemeinsamen Konfiguration wie die anderen DRAM-Auffrischcontroller
in den Prozessoren 12a bis 12n, wie in 9 gezeigt,
versehen sein.