-
Technisches
Gebiet der Erfindung
-
Die
Erfindung betrifft ein Verfahren zur Durchführung von Busarbitration bzw.
Buszugriffsregelung zwischen zwei Steuerchips in einem Chipsatz
mit preemptiver Fähigkeit.
-
Stand der
Technik
-
1 ist
ein schematisches Diagramm das die Architektur eines Computersystems
mit einem PCI-(programmbedingte Unterbrechung) Bussystem zeigt.
Wie gezeigt enthält
das Computersystem eine CPU 10 und eine Primärspeichereinheit 11 und
ist durch eine Hostbrücke 12 an
ein PCI-Bussystem 14 gekoppelt, das weiter an mehrere PCI-Einheiten,
wie ein Grafikadapter 16a, eine Expansionsbusbrücke 16b,
einen LAN-(lokalen Netzwerk) Adapter 16c und einen SCSI-(Schnittstelle
für Kleincomputer)
Hostbus-Adapter 16d. Jeder dieser Adapter kann eine Anforderung
(REQ) ausgeben um das PCI-Bussystem 14 zu verwenden, wenn eine
Transaktion durch das PCI-Bussystem 14 beabsichtigt ist.
Das Anforderungssignal wird zuerst zu der Rostbrücke 12 zur Arbitration
gesendet. Wenn die Anforderung bewilligt ist, gibt die Rostbrücke 12 ein
Bewilligungssignal (GNT) zurück,
um die Verwendung des PCI-Bussystems 14 durch den anrforderungsausgebenden
Adapter zu bewilligen.
-
Die
Datenkommunikation zwischen der Rostbrücke 12 und den PCI-Einheiten 16a, 16b, 16c, 16d über das
PCI-Bussystem 14 wird durch die Verwendung eines Satzes
Steuersignale erreicht, der umfasst: FRAME (Taktrahmen), AD (Adresse),
CBE (Befehl-/Byte-einschalten),
REQ (anfordern), GNT (bewilligen), IRDY (Initiator bereit), TRDY
(Ziel bereit) und DEVSEL (Vorrichtungsauswahl). Ein Beispiel der
zeitlichen Verläufe
und der Signalverläufe
dieser Signale wird in 2 veranschaulicht. In dieser
Spezifikation bezieht sich der Ausdruck „Initiator" auf die Einheit, die eine Anforderung
zur Verwendung des PCI-Bussystems 14 eingeleitet hat, diese
kann sowohl die Rostbrücke 12 als
auch irgendeine der PCI-Einheiten 16a, 16b, 16c, 16d sein,
während sich
der Ausdruck „Ziel" auf die Einheit
bezieht, an die der Initiator beabsichtigt seine Daten zu übertragen.
-
Das
FRAME-Signal wird durch den Initiator ausgegeben, um den Startzeitpunkt
und die Dauer der beabsichtigten Datenkommunikation über das
PCI-Bussystem 14 anzuzeigen. Wenn das FRAME-Signal auf
den Zustand „Tief" gesetzt ist, gestattet
es dem Initiator Zugriff auf das PCI-Bussystem 14 zu erlangen.
Während der
Adressierungsphase wird der Initiator das, die gültige Adresse anzeigende, AD-Signal
und das CBE-Signal (CBE[3:0]) zum Freigeben des Befehl-/Byte-Transfers
ausgeben. Das CBE-Signal ist aus 4 Bits zusammengesetzt, die 16
verschiedene Befehle darstellen können. Das CBE-Signalformat
wird in den PCI-Standards vollständig
beschrieben, so dass deren Beschreibung nicht weiter ausgeführt wird.
Anschließend,
während
der Datenphase, wird der Initiator das AD-Signal, stellvertretend
für die
zu übertragenden
Daten, über
das PCI-Bussystem 14, an das Ziel abschicken. Wenn das
FRAME-Signal ausgeschaltet ist, zeigt es an, dass die Übertragung
abgeschlossen ist. Wenn der Initiator bereit ist Daten abzuschicken,
wird das IRDY-Signal eingeschaltet; und wenn das Ziel bereit ist,
die Daten zu empfangen, wird das TRDY-Signal eingeschaltet. Während der
Leseoperationen zeigt das Einschalten des IRDY-Signals an, dass
der Initiator bereit ist, Daten von dem Ziel zu empfangen; wohingegen
während
Schreiboperationen das Einschalten des TRDY-Signals anzeigt, dass
das Ziel bereit ist, Daten zu empfangen. Wenn das Ziel die Transaktion
stoppen will, gibt es das STOP-Signal an den Initiator aus.
-
2 zeigt
ein Beispiel der Signalverläufe
und der zeitlichen Verläufe
der vorstehend erwähnten, durch
die PCI-Standars spezifizierten Signale, für einen Initiator, um eine
Leseoperation bei einem Ziel durchzuführen. In diesem Diagramm wird
die, mit dem Bezugszeichen 20 versehene, Dauer als Bustransaktionsperiode
bezeichnet, während
der der Datenaustausch durchgeführt
wird. Die Bustransaktionsperiode 20 umfasst eine Adressierungsphase 22 und
mehrere Datenphasen 24a, 24b, 24c. Jede
der Datenphasen 24a, 24b, 24c umfasst
einen, jeweils durch die Bezugszeichen 26a, 26b, 26c gekennzeichneten,
Wartetakt und einen, jeweils durch die Bezugszeichen 28a, 28b, 28c gekennzeichneten
Datentransfertakt.
-
Das
PCI-Bussystem wird durch ein Systemtaktsignal CLK getaktet. Währen der
ersten Periode T1 des CLK, gibt der Initiator
ein FRAME-Signal aus, um anzuzeigen, dass er beabsichtigt Daten
zu einem bestimmten Ziel zu übertragen.
Anschließend
schickt der Initiator das AD-Signal ab, das die Startadresse anzeigt
und das Ziel angibt, wo der Initiator beabsichtigt Daten zu lesen.
Danach schickt der Initiator das CBE-Signal ab. Das CBE-Signal ist
während
aller Datenphasen 24a, 24b, 24c in dem
eingeschalteten Zustand. Während
der nächsten
Periode T2 gibt der Initiator das IRDY-Signal
aus, das anzeigt, dass er zur Datenkommunikation bereit ist. Da
jedoch diese Periode der Wartetakt 26a in der Datenphase 24a ist,
ist das Ziel immer noch nicht bereit. Während der nächsten Periode T3 ist
das Ziel bereit, und gibt daher das TRDY-Signal, das diesen Zustand
anzeigt, aus. Dies veranlasst das Ziel dazu, während des Datentransfertakt 28a,
Daten an den Initiator zu übertragen.
Während
der nächsten
Periode T4 schaltet das Ziel das TRDY-Signal
aus, und zeigt damit an, dass die Übertragung der momentanen Daten
abgeschlossen ist, und bereitet dann das nächste Datenstück zum Transfer
vor. Dieses ist der Wartetakt 26b der Datenphase 24b.
Während
der nächsten
Periode T5 schaltet das Ziel das TRDY-Signal
wieder ein, und zeigt damit an, dass es bereit ist Daten zu transferieren.
Wenn das IRDY-Signal während
des Datentransferzuklus 28b ebenfalls eingeschaltet ist,
fängt der
Initiator an Daten von dem Ziel zu lesen. Während der nächsten Periode T6 schaltet
der Initiator das IRDY-Signal aus, um anzuzeigen, dass er nicht
in der Lage ist irgendwelche weiteren Daten zu empfangen. Da jedoch
das TRDY-Signal weiterhin in dem eingeschalteten Zustand ist, wird
der Wartetakt 26c durch den Initiator aktiviert. Während der nächsten Periode
T7 ist der Initiator wieder bereit Daten
zu empfangen und schaltet damit das IRDY-Signal ein. Wenn das TRDY-Signal
während
des Datentransfertakt 28c ebenfalls eingeschaltet ist,
beginnt der Initiator Daten von dem Ziel zu lesen. Dies vervollständigt die
Leseoperation.
-
Ein
Nachteil der durch den PCI-Standard spezifizierten Datenkommunikation
ist jedoch, dass sie die Verwendung komplexer Steuersignale mit
schwierig zu handhabenden Wartezuständen und Arbitration erfordert.
Darüber
hinaus erfordert sie mindestens 45 bis 50 Stifte auf dem Steuerchipsatz,
um alle durch den PCI-Standard spezifizierten Signale zu handhaben.
Zum Beispiel in dem System der 1 ist z.B.
die Hostbrücke 12 durch
einen oberen Brückenchip
ausgeführt,
während
die Expansxionsbusbrücke 16b durch
einen unteren Brückenchip
ausgeführt
ist. In den meisten PCs ist der untere Brückenchip ein unerläßlicher
Steuerchip.
-
In
vielen Fällen
können
die Transaktionen zwischen den verschiedenen Chips bei einem Chipsatz,
beispielsweise zwischen einem unteren Brückenchip und einem oberen Brückenchip,
nur einen kleinen Teil des ganzen Satzes von Funktionen verwenden,
die durch die verwendeten Busstandards spezifiziert werden. Die große Anzahl
von Funktionen werden in der Hoffnung bereitgestellt, dass die Busarchitektur
an die Verwendung in vielen verschiedenen Arten von Umgebungen angepasst
werden kann. Diese Maßnahme
jedoch kann verhindern, dass einige fortschrittliche Funktionen
in die Busarchitektur integriert werden können. Mit Fortschreiten der
IC-Packungstechnologie kann ein Steuerchipsatz eine steigende Anzahl
Chips in einer einzelnen Vorrichtung einschließen, aber dies würde ebenfalls
die Anzahl von äusseren
Anschlussstiften unerwünscht erhöhen. Daher
besteht ein Bedarf nach einer Busarchitektur, die dabei helfen kann
die Transaktionen zwischen den verschiedenen Chips eines Chipsatzes
zu beschleunigen, während
die Gesamtzahl äusserer
Anschlussstifte des Chipsatzes auf ein Minimum reduziert wird. Zum
Beispiel besteht ein Bedarf nach einen reduzierten Satz Signalleitungen
in dem Bus zwischen einem unteren und einem oberen Brückenchip,
der trotzdem noch PCI-kompatibel ist, und der somit noch zusammen
mit bestehenden Komponenten verwendet werden kann.
-
Warm
immer ein Chip Daten transferieren will, wird er eine Anforderung
ausgeben, den Bus zu verwenden. Er kann den Bus nur zur Übertragung
von Daten verwenden, nachdem er die Steuerung des Busses erlangt.
In dem Fall, dass ein Chip großvolumige
Video-/Audio-Daten über
den Bus übertragen
muss, aber die Steuerung des Busses nicht in kurzer Zeit erlangen
kann, da der Bus länger
von einem anderen Chip verwendet wird, würde dieses ohne Zweifel die
Kommunikationsleistung des Gesamtsystems herabsetzen.
-
Des
Weiteren wird in WO94/15302 A1 mit dem Titel „METHOD AND APPARATUS FOR
ARBITRATING ON AN ACYCLIC DIRECTED GRAPH" ein Busarbitrationsschema in einem
System realisiert, wo eine Arbiträranordnung von Knoten auf einem
Systembus in einen azyklisch bestimmten Graphen zerfällt. Die
hierarchische Anordnung von Knoten hat einen Knoten, der als Root
bezeichnet wird, während
alle anderen Knoten bekannte Eltern/Kind-Beziehungen mit den Knoten,
mit denen sie verbunden sind aufweisen. Jeder Knoten kann eine Vielzahl
von Kind-Ports mit einem gängigen
vorbestimmten Bestätigungsprioritätsschema
aufweisen. Ausgeglichene Bus-Zugangsarbitration wird für die Busbewilligung
in einer Abfolge bereitgestellt, die den vorbestimmten Port-Prioritäten entspricht
und allen Knoten einen Turn auf dem Bus gestattet. Der Root-Knoten kann
immer seinen Prioritätszugangsstatus
durchsetzen um Buszugang zu erhalten, was nützlich ist um einem Root-Knoten
auszuhelfen, der isochronen Datentransfer benötigt. Als Alternative kann
ein Token-Passing-Arbitrationsschema realisiert werden, wo der Token
für den
Buszugang um die Knoten gemäß dem zuvor
beschriebenen vorbestimmten Port-Prioritätsschema herumgeführt wird.
Preemptivbusinitialisierung kann durch jeden Knoten infolge der
Erkennung eines erfordernden Fehlers oder dem Hinzufügen oder
der Wegnahme einer Verbindung zu einem existierenden Knoten getriggert
werden.
-
Ferner,
in WO 99/45472 A1 mit dem Titel „MULTI-PROCESSOR SYSTEM WITH
SHARED MEMORY" sind
ein Verfahren und ein System zum gemeinsamen Benutzen eines Datenspeichers
durch eine Vielzahl von Prozessoren in einem Computersystem offenbart.
Eine Vielzahl von Prozessoren ist mit einem Datenspeicher verbunden
um auf den Datenspeicher in einer N-bit-Bandbreite zuzugreifen.
Ein aktives Signal für
den Zugriff auf den Datenspeicher wird von der Vielzahl der Prozessoren
empfangen. Ein Prozessor, der Zugriff auf den Datenspeicher beantragt,
bringt ein aktives Signal vor. Aus den Prozessoren, die aktive Signale
vorbringen, wird ein Prozessor als ein Speicher-Master für den Datenspeicher
ausgewählt.
Dann werden die N-bit großen Daten
zwischen dem ausgewähltem
Prozessor und dem Datenspeicher in einem Zeitfenster übertragen,
das durch einen Taktzyklus definiert wird. Nur einem Prozessor ist
es während
eines gegebenen Zeitschlitzes erlaubt auf den Datenspeicher zuzugreifen.
Die N-bit-Bandbreite ist groß genug,
um die Datenbedürfnisse
aller Prozessoren zu befriedigen.
-
Aber
weder WO 94/15302 A1 noch WO 99/45472 A1 beschreibt ein Verfahren
zum Durchführen
eines Zwischenprozesses zwischen den Steuerchips zwischen einem
Chipsatz, um eine Transaktion von hoher Priorität zu erlauben, wenn eine Busarbitration
durch irgend einen der Steuerchips durchgeführt wird.
-
Zusammenfassung
der Erfindung
-
Es
ist die Aufgabe dieser Erfindung ein Verfahren zur Durchführung von
Busarbitration zwischen zwei Steuerchips bei einem Chipsatz mit
preemptiver Fähigkeit
bereitzustellen, die eine Transaktion hoher Priorität ermöglicht,
Steuerung des Busses durch eine Preemptivanforderung in kurzer Zeit
zu erlangen, so dass die Kommunikationsleistung des Gesamtsystems
gesteigert werden kann.
-
Diese
Aufgabe wird mit den Merkmalen des Patentanspruchs 1 gelöst.
-
In
vorteilhafter Weise ist das Verfahren der Erfindung zur Durchführung einer
Busarbitration zwischen einem ersten Steuerchip und einem zweiten
Steuerchip eines Chipsatzes mit Preemptivfähigkeit ausgelegt, wobei der
erste Steuerchip und der zweite Steuerchip über einen gemeinsam genutzten
Zweiweg-Bus (AD, BE) zur Datenübertragung
zwischen dem ersten Steuerchip und dem zweiten Steuerchip miteinander
verbunden sind. Die beiden Steuerchips können beispielsweise ein oberer
Brückenchip
und ein unterer Brückenchip sein.
Durch Vorgabe wird einer der beiden Steuerchips als Bushalter festgelegt,
während
der andere als Busempfänger
festgelegt wird. Wenn der momentane Busempfänger, während des Betriebs, beabsichtigt
eine Transaktion hoher Priorität
durchzuführen
kann er eine Preemptivanforderung ausgeben, um den momentanen Bushalter
zu fragen, die Steuerung des Busses abzugeben. In Antwort auf diese
Preemptivanforderung wird der momentane Bushalter zuerst einen Wartezeitgeber
starten und, bevor der Wartezeitgeber seine vorbestimmte Zeit erreicht,
wird der momentane Bushalter dem momentanen Busempfänger den
Bus uneingeschränkt übertragen,
und es dem momentanen Busempfänger
ermöglicht
der Bushalter zu werden, und dadurch den Bus zur Durchführung einer
Transaktion hoher Priorität
zu verwenden. Dieses preemptive Schema kann helfen die Kommunikationsleistung
des Gesamtsystems zu verbessern.
-
Kurze Beschreibung
der Zeichnungen
-
Die
Erfindung kann durch lesen der folgenden, detaillierten Beschreibung
der bevorzugten Ausführungsformen
mit Bezug auf die begleitenden Zeichnungen vollständiger verstanden
werden, worin:
-
1 (Stand
der Technik) ein schematisches Diagramm ist, das die Architektur
eines Computersystems mit einem PCI-Bussystem zeigt;
-
2 (Stand
der Technik) ein Signaldiagramm ist, das die Signalverläufe und
die zeitlichen Verläufe verschiedener,
durch den PCI-Standard spezifizierter, Signale für einen Initiator zeigen, um
eine Leseoperation bei einem Ziel durchzuführen;
-
3 ein
Schematisches Diagramm ist, das die Architektur eines Computersystems
zeigt, das das erfindungsgemäße Verfahren
zur Busarbitration zwischen einem oberen und einem unteren Brückenchip
verwendet;
-
4 ein
Signaldiagramm ist, das die Signalverläufe und die zeitlichen Verläufe verschiedener,
von dem erfindungsgemäßen Verfahren
verwendeter Signale zeigt;
-
5 ein
Signaldiagramm ist, das die Signalverläufe und die zeitlichen Verläufe verschiedener,
von dem erfindungsgemäßen Verfahren
verwendeter Signale zeigt;
-
6 ein
Signaldiagramm ist, das die Signalverläufe und die zeitlichen Verläufe verschiedener,
von dem erfindungsgemäßen Verfahren
verwendeter Signale zeigt; und
-
7 ein
Signaldiagramm ist, das die Signalverläufe und die zeitlichen Verläufe verschiedener,
von dem erfindungsgemäßen Verfahren
verwendeter Signale zeigt.
-
Detaillierte
Beschreibung von bevorzugten Ausführungsformen
-
Die
Erfindung schlägt
ein Verfahren zum Durchführen
von Busarbitration zwischen zwei Steuerchips in einem Chipsatz vor,
die durch einen gemeinsamen Bus miteinander verbunden sind, mit
der Aufgabe zu entscheiden, welcher der Steuerchips den Bus halten
soll. Um dies zu erreichen ist die Erfindung durch die Verwendung
eines verringerten Satzes von Signalen gekennzeichnet, die gemeinsam
als VLINK bezeichnet werden, statt des herkömmlichen PCI-spezifizierten
Satzes von Signalen zur Datenkommunikation zwischen den zwei Steuerchips.
Die beiden Steuerchips können
beispielsweise ein oberer Brückenchip
und ein unterer Brückenchip
sein. Die Gesamtzahl von Signalleitungen zur Datenkommunikation
zwischen dem oberen Brückenchip
und dem unteren Brückenchip
können
mit VLINK auf 15 verringert werden, was deutlich weniger als 45 im
Fall des Standes der Technik ist, so dass die Kommunikationsleistung
verbessert werden kann. Details der Erfindung sind im Folgenden
mit Bezug auf die 3, 4, 5, 6 und 7 offenbart.
-
3 ist
ein schematisches Diagramm das die Architektur eines Computersystems
zeigt, das das erfindungsgemäße Verfahren
verwendet. Wie gezeigt umfasst das Computersystem eine CPU 24,
einen unteren Brückenchip 30,
einen oberen Brückenchip 32,
und eine primäre
Speichereinheit 36. Die Datenkommunikation zwischen dem
unteren Brückenchip 30 und
dem oberen Brückenchip 32 wird
durch einen VLINK-definierten Satz von Signalleitungen ausgeführt, umfassend
DNCMD, DNSTB, BE, AD, UPSTB ans UPCMD. Die Verwendung des VLINK-Schemas
ermöglicht
es, dass die Anzahl der Signalleitungen zwischen dem unteren Brückenchip 30 und
dem oberen Brückenchip 32 auf
15 verringert wird, was deutlich weniger als 45 im Falle des Standes
der Technik ist. Die Bedeutungen dieser Signale sind in der folgenden
Tabelle I dargestellt.
-
Tabelle
I (VLINK-definierte Signale)
-
Wie
in 3 gezeigt, umfasst die Datenkommunikation zwischen
dem unteren Brückenchip 30 und dem
oberen Brückenchip 32 auch
den PCI-spezifizierten Bus AD, mit Ausnahme, das er hier auf nur
8 Signalleitungen verringert ist. Die PCI-spezifizierten Signale
CBE, FRAME, IRDY, TRDY, STOP, DEVSEL, REQ und GNT sind hier gemeinsam
auf eine einzelne Zweiweg-Signalleitung BE und Einweg-Signalleitungen
DNCMD, DNSTB, UPSTB und UPCMD verringert. Der VLINK-definierte Signalsatz
umfasst von der unteren Brücke
ausgegebene UPCMD (Aufwärtsstrecken-Befehl)
und UPSTB (Aufwärtsstrecken-Abtastung) und von
der oberen Brücke
ausgegebene DNCMD (Abwärtsstrecken-Befehl)
und DNSTB (Abwärtsstrecken-Abtastung).
Dies gestattet es sowohl dem unteren Brückenchip 30 als auch
dem oberen Brückenchip 32 in
der Lage zu sein, Befehls- und Abtastsignale unabhängig voneinander
auszugeben, um die Steuerung des AD-Buses zum Datentransfer zu erlangen.
-
4 ist
ein Signaldiagramm, das den Signalverlauf und zeitlichen Verlauf
der durch das VLINK-Schema definierten Abtast- und Datensignale
in Bezug auf das Taktsignal, zeigt. Wie gezeigt umfasst jedes Taktsignal
zwei Abtasttakte, was bedeutet, dass das vorstehend erwähnte UPSTB-Signal
und DNSTB-Signal beide die doppelte Frequenz des Taktsignals haben.
Jeder Taktzyklus enthält
vier steigende/fallende Flanken in dem Abtastsignal, und daher können vier
Bits während
dieser Periode bestimmt werden. Folglich können insgesamt 32 Datenbit
durch den 8-Bit AD-Bus während
jedes Taktsignals übertragen
werden. Im Gegensatz benötigt
die PCI-Bus Architektur insgesamt 32 Signalleitungen zur Übertragung
dieser Daten. Die BE-Signalleitung wird dazu verwendet, die Information über die
Datenlänge
zu transferieren, deren Wert von 1 bis 16 (4 Bit) während jedes
Taktzyklus sein kann.
-
Die
UPCMD- und DNCMD-Signale werden zum Bestimmen der Art der beabsichtigten
Transaktion verwendet. Das UPCMD-Signal wird durch den unteren Brückenchip 30 erzeugt,
welcher umfasst: C2PRA (Lesebestätigung
von oberer zu unterer Brücke),
C2PWA (Schreibbestätigung
von oberer zu unterer Brücken), P2CR
(Leseanforderung von unterer zu oberer Brücke) und C2CW (Schreibanforderung
von unterer zu oberer Brücke).
Tabelle II zeigt die Codierung dieser Signale in bezug auf Bittakte.
-
-
-
Es
sollte zur Kenntnis genommen werden, dass das REQ-(Busanforderung)
Signal während
des Bittaktes 0 ausgegeben wird, der nicht von den Signaltakten
anderer Arten von Transaktionen überlappt
ist, so dass es jederzeit ausgegeben werden kann, sogar zur gleichen
Zeit, wenn ein Befehl des Transaktionstyps ausgegeben wird. Das
DNCMD-Signal wird durch einen oberen Brückenchip 32 erzeugt,
welcher umfasst: C2PIOR (Eingabe-/Ausgabe-Lesen von oberer zu unterer Brücke), C2PMR
(Lesebefehl von oberer zu unterer Brücke), C2PIOW (Eingabe-/Ausgabe-Schreibbefehl
von oberer zu unterer Brücke),
C2PMW (Schreibbefehl von unterer zu oberer Brücke), P2CRA (Lesebestätigung von
unterer zu oberer Brücke),
und P2CWA (Schreibbestätigung
von unterer zu oberer Brücke).
Tabelle III zeigt die Codierung dieser Signale in bezug auf Bittakte (zur
Kenntnis genommen, dass die Definition des GNT-Signals nicht enthalten
ist).
-
-
Wenn
die untere Brücke
eine Sequenz von P2CR- und/oder P2CW-Signalen ausgibt, wird die
obere Brücke
als Antwort die P2CRA-/P2CWA-Signale zurückgeben. Gleichfalls wenn die
obere Brücke
eine Sequenz von C2PIOR-, C2PMR-, C2PIOW- und C2PMW-Signalen ausgibt,
wird die untere Brücken
als Antwort die C2PRA- und C2PWA Signale zurückgeben. Diese Signale sollten
nur ausgegeben werden, nachdem die gesamten Daten der beabsichtigten
Transaktion übertragungsbereit
vorbereitet sind, um so jeder ungewünschten Unterbrechung beim
Datentransfer vorzubeugen. Zum Beispiel kann die untere Brücke das P2CW-Signal
nur ausgeben, nachdem die gesamten Daten der beabsichtigten Transaktion übertragungsbereit vorbereitet
sind; und die obere Brücke
kann das P2CRA-Signal nur ausgeben, nachdem die gesamten Daten der
beabsichtigten Transaktion übertragungsbereit
vorbereitet sind. Dies kann dabei helfen unerwünschten Unterbrechungen beim
Datentransfer vorzubeugen. Wenn kein Lese-/Schreibsignale auszugeben
sind, wird ein NOP-Signal erzeugt. Allgemein definiert ist die Erfindung
zur Verwendung auf einem Chipsatz ausgelegt, der einen ersten und
einen zweiten Steuerchip (wie der vorstehend erwähnte und in 3 gezeigte
unteren Brückenchip
und oberen Brückenchip)
umfasst, wobei der erste Steuerchip und der zweite Steuerchip miteinander
durch einen VLINK-definierten Satz von Signalleitungen verbunden
sind, umfassend einen gemeinsam genutzten Zweiweg-Bus, zum Zweck
der Durchführung
der Busarbitration zwischen dem ersten und dem Steuerchip zur ausschließlichen
Verwendung des gemeinsam genutzten Zweiweg-Busses. Im Folgenden
bezieht sich der Ausdruck „Bushalter" auf den der zwei
Chips, der momentan den gemeinsam genutzten Zweiweg-Bus hält, während sich „Busempfänger" auf den anderen
Chip bezieht.
-
Während des
Betriebs muss der zweite Steuerchip den ersten Steuerchip über die
fest-Takt-Busbefehle
und die Anzahl der Takte zur Verwendung des gemeinsam genutzten
Zweiweg-Busses informieren. Wenn
der zweite Steuerchip ein Zugriffsbefehl (zum Beispiel einen Lesebefehl)
an den ersten Steuerchip ausgibt, muss der zweite Steuerchip die
Anzahl der für
die Übertragung
des Bestätigungssignals
und der angeforderten Daten des ersten Steuerchips verwendeten Impulse
registrieren. Diese Information ist von dem ausgegebenen Befehlen
des zweiten Steuerchips abhängig.
Zum Beispiel, wenn die untere Brücke
ein P2CR-Signal an die obere Brücke
ausgibt, kann, da das P2CR-Signal die Informationen über die
Datenlänge
umfasst und da kein Wartezustand für irgendein VLINK-definiertes
Signal erfordert wird, die untere Brücke die Anzahl der zur Übertragung
des P2CRA-Antwortsignals und der angeforderten Daten erforderten
Impulse erfahren.
-
Tabelle
IV (Preemptives Busarbitrationsschema der Erfindung)
-
-
Tabelle
IV zeigt das durch die Erfindung ausgeführte preemptive Busarbitrationschema.
In dieser Tabelle stellt N den ersten Steuerchip (beispielsweise
den, in 3 gezeigten, oberen Brückenchip 32)
dar; S stellt den zweiten Steuerchip (beispielsweise den, in 3 gezeigten,
unteren Brückenchip 30)
dar; DNREQ stellt das, durch den ersten Steuerchip ausgegebene,
Busanforderungssignal dar; und UPREQ stellt das, durch den zweiten
Steuerchip ausgegebene, Busanforderungssignal dar. Weiter bedeutet „S-Preemptibel", dass der zweite
Steuerchip die Hochprioritäts-(preemptiv)
Anforderung ausgeben kann, wenn der erste Steuerchip momentan der
Bushalter ist; während „N-Preemptibel" bedeutet, dass der
erste Steuerchip die Hochprioritäts-(preemptiv)
Anforderung ausgeben kann, wenn der zweite Steuerchip momentan der
Bushalter ist. Die Bedeutung der Tabelle wird im Folgenden erklärt.
-
Es
wird vorausgesetzt, dass bei der Initialisierung der erste Steuerchip
als der Bushalter festgelegt wird. Danach, falls sowohl der erste
als auch der zweite Steuerchip kein Busanforderungssignal ausgeben, wird
der erste Steuerchip der Bushalter bleiben.
-
Falls
der erste Steuerchip kein Busabforderungssignal ausgibt, während der
zweite Steuerchip das Busanforderungssignal UPREQ ausgibt, wird
der Bus an den zweiten Steuerchip übertragen.
-
Wenn
andererseits der erste Steuerchip das Busanforderungssignal DNREQ
ausgibt, während
der zweite Steuerchip kein Busanforderungssignal ausgibt, wird der
Bus weiterhin durch den ersten Steuerchip gehalten.
-
In
dem Fall, dass der erste Steuerchip das Busanforderungssignal DNREQ
ausgibt, während gleichzeitig
der zweite Steuerchip das Busanforderungssignal UPREQ ausgibt, wird
der Bus weiterhin durch den ersten Steuerchip gehalten. Der zweite
Steuerchip kann jedoch eine Preemptivanforderung über die
UPCMD-Signalleitung ausgeben, um die Verwendung des Busses zu verlangen.
Die Preemtivanforderung wird den ersten Steuerchip aktivieren einen
Wartezeitgeber zu starten; und bevor der Wartezeitgeber seine vorbestimmte Zeit
erreicht, wird der Bus an den zweiten Steuerchip übertragen.
-
Es
wird weiter vorausgesetzt, dass der zweite Steuerchip momentan der
Bushalter ist. Danach, falls sowohl der erste Steuerchip als auch
der zweite Steuerchip kein Busanforderungssignal ausgeben, wird
der zweite Steuerchip der Bushalter bleiben.
-
Falls
der zweite Steuerchip kein Busabforderungssignal ausgibt, während der
erste Steuerchip das Busanforderungssignal DNREQ ausgibt, wird der
Bus an den ersten Steuerchip übertragen.
-
Andererseits,
wenn der zweite Steuerchip das Busanforderungssignal UPREQ ausgibt,
während
der erste Steuerchip kein Busanforderungssignal ausgibt, wird der
zweite Steuerchip der Bushalter bleiben.
-
In
dem Fall, dass der zweite Steuerchip das Busanforderungssignal UPREQ
ausgibt, während
gleichzeitig der erste Steuerchip das Busanforderungssignal DNREQ
ausgibt, wird der Bus weiterhin über
den zweiten Steuerchip gehalten. Der erste Steuerchip kann jedoch
eine Preemptivanforderung durch die DNCMD-Signalleitung ausgeben,
um die Verwendung des Busses zu verlangen. Die Preemtivanforderung
wird den zweiten Steuerchip aktivieren einen Wartezeitgeber zu starten;
und bevor der Wartezeitgeber seine vorbestimmte Zeit erreicht, wird
der Bus an den zweiten Steuerchip übertragen.
-
Nachdem
der zweite Steuerchip das Busanforderungssignal UPREQ ausgibt, stellt
er auch fest, ob der erste Steuerchip sein Anforderungssignal DNREQ
ausgibt. Falls keine Anforderung durch den ersten Steuerchip ausgegeben
wird, waret der zweite Steuerchip eine vorbestimmte Zeitdauer bevor
er die Steuerung des Busses erlangt. Der Zweck dieser Wartezeit
ist es den Umstand zu verhindern, in dem der andere Steuerchip, beispielsweise
der erste Steuerchip, ein Busanforderungssignal ausgegeben hat,
das, wegen der Signal-Übertragungsverzögerung,
nicht sofort durch den zweiten Steuerchip festgestellt wird. Außerdem um
zu verhindern, dass die beiden Steuerchips den Bus gleichzeitig
betreiben, wartet der momentane Bushalter einen weiteren Takt, genannt
Durchlauftakt, bevor er den Bus an den anderen Chip weiterleitet.
Weder der Bushalter noch der Busempfänger betreibt den Bus während des
Durchlauftaktes.
-
Andererseits,
wenn der zweite Steuerchip feststellt, dass der Bus momentan durch
den ersten Steuerchip verwendet wird, wartet der zweite Steuerchip
bis der erste Steuerchip die Verwendung des Busses abschließt, bevor
er die Steuerung des Busses erlangen kann. In dem Fall, dass der
zweite Steuerchip beabsichtigt eine Transaktion hoher Priorität durchzuführen, zum
Beispiel zum Übertragen
von Video-/Audiodaten, kann er ein Preemptivanforderungssignal über die
UPCMD-Signalleitung ausgeben, das dann den ersten Steuerchip dazu
zwingen kann, die Steuerung des Busses abzugeben, und sie, in der
vorstehend beschriebenen Weise, an den zweiten Steuerchip übertragen.
-
5 und 6 sind
Signaldiagramme, die jeweils die Signalverläufe und die zeitlichen Verläufe der verschiedenen
Signale zeigen, durch die der erste und der zweite Steuerchip zur
Anforderung der Verwendung des Busses verwendet werden. In diesem
Signaldiagramm bedeutet HCLK das Systemtaktsignal; DNREQ# bedeutet
das durch den ersten Steuerchip ausgegebene Busanforderungssignal;
UPREQ# bedeutet das durch den zweiten Steuerchip ausgegebene Busanforderungssignal;
NOE# bedeutet das Ausgabe-einschalt-Signal des ersten Steuerchips;
SOE# bedeutet das Ausgabe-einschalt-Signal des zweiten Steuerchips;
und AD bedeutet das Adresse-/Datensignal, das über den gemeinsam genutzten
Zweiweg-Bus zwischen dem ersten und dem zweiten Steuerchip übertragen
werden (das Symbol # bedeutet, dass das zugeordnete Signal eingeschaltet
wird, wenn es in den niedrigen Spannungszustand gebracht wird).
-
Verweisend
auf 5 sind sowohl DNREQ# als auch UPREQ#, während der
T1 und T2, durch Vorgabe ausgeschaltet (Hoch), und dadurch wird
der erste Steuerchip als Bushalter festgelegt. Um eine Transaktion
bei T4 durchzuführen,
sollte DNREQ# bei T3 eingeschaltet (Tief) sein. Bei T5 ist UPREQ#
eingeschaltet (Tief). Da jedoch DNREQ# bis T11 in dem eingeschalteten
Zustand bleibt, kann der zweite Steuerchip vor dieser Zeit nicht
der Bushalter werden. Da der erste Steuerchip den Bus bei T11 nicht
mehr verwenden muss, schaltet er DNREQ# bei T10 aus. Da weiter UPREQ#
bis T9 in dem eingeschalteten Zustand bleibt und DNREQ# bei T10
ausgeschaltet wird, wird NOE# bei T11 ausgeschaltet. Dies macht
T11 zu einem Durchlauftakt. Während
T11 bringt der zweite Steuerchip die Daten der beabsichtigten Transaktion
in den Bus, und bei dem folgenden T12 können diese Daten über den
Bus übertragen
werden. Da der zweite Steuerchip den Bus bei T13 nicht verwenden
wird, wird UPREQ# bei T12 ausgeschaltet. Da jedoch DNREQ# während T11
und T12 in einem ausgeschalteten Zustand bleibt, wird der Bus immer
noch durch den zweiten Steuerchip gehalten. Bei T13 wird DNREQ#
ausgeschaltet, und da UPREQ# in dem Folgenden T14 eingeschaltet
bleibt, wird der Bus immer noch durch den zweiten Steuerchip gehalten.
Bei T15 gibt der zweite Steuerchip eine Transaktionsanforderung
aus und schaltet dadurch DNREQ# ein. Bei T16 wird UPREQ# ausgeschaltet.
Dies bewirkt, dass der zweite Steuerchip seine Steuerung über den
Bus bei T17 abtritt; und dass der erste Steuerchip bei dem folgenden
T18 der Bushalter wird.
-
6 zeigt
das Signaldiagramm im Falle einer Scheinanforderung. In diesem Fall
sind die Signalverläufe
im Wesentlichen dieselben wie in 5 ausser,
dass die DNREQ# bei T16 ausgeschaltet und bei T17 eingeschaltet
wird. Bei T18 ist der erste Steuerchip der Bushalter während der
zweite Steuerchip der Busempfänger
ist. Während
dieser Zeit gibt der erste Steuerchip eine Transaktionsanforderung
aus. Vor dieser hat der erste Steuerchip DNREQ# bei T16 ausgeschaltet
und der zweite Steuerchip hat bei T15 UPREQ# eingeschaltet; folglich
kann der zweite Steuerchip, nachdem er vom Bushalter zum Busempfänger geworden
ist, während der
nächsten
beiden Takte nach dem Durchlauftakt, nicht Bushalter werden.
-
7 ist
ein Signaldiagramm das die Signalverläufe und die zeitlichen Verläufe verschiedener,
durch den ersten und zweiten Steuerchip verwendeter, Signale zeigt,
wenn eine Preemptivanforderung an den Bus ausgegeben wird. Im Fall
von 5 schaltet der erste Steuerchip DNREQ bei T6 aus,
da er keine Transaktion bei T7 hat. Diese Aktion macht jedoch T7
zu einem Durchlauftakt, was bewirkt, dass der ersten Steuerchip
den Bus bei T7 aufgibt, und der zweite Steuerchip bei T8 der Bushalter
wird.
-
Im
Fall von 5 wird vorausgesetzt, dass der
zweite Steuerchip beabsichtigt den Bus bei T5 zu verwenden, aber
nicht in der Lage ist, dies zu tun, da der erste Steuerchip immer
noch DNREQ# einschaltet. Unter diesem Umstand kann der zweite Steuerchip
das UPCMD-Signal
dazu verwenden, eine Preemptivanforderung auszugeben. Wie in 7 gezeigt,
wird angenommen, dass der erste Steuerchip beabsichtigt den Bus bei
T7 zu verwenden, aber der zweite Steuerchip immer noch UPREQ# einschaltet.
In diesem Fall kann der erste Steuerchip das DNCMD-Signal dazu verwenden,
eine Preemptivanforderung auszugeben, um dem zweiten Steuerchip
zu sagen, dass der beabsichtigt eine Transaktion hoher Priorität über den
Bus durchzuführen.
Als Antwort auf diese Anforderung wird der zweite Steuerchip einen
Wartezeitgeber starten; zu der Zeit an der der Wartezeitgeber seine
vorbestimmte Zeit erreicht, wird der zweite Steuerchip den Bus vorbehaltlos an
den ersten Steuerchip übergeben,
wobei dem ersten Steuerchip ermöglicht
wird, den Bus zur Durchführung der
beabsichtigten Transaktion hoher Priorität zu verwenden.