-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft im Allgemeinen das Gebiet von Hochleistungscomputersystemen;
im Besonderen betrifft sie Signalisierungsprotokolle und Betriebserfordernisse,
die mit Bussen zum Einsatz bei hochentwickelten Mikroprozessoren verbunden
sind.
-
Hintergrund der Erfindung
-
Die
Entwicklung von immer fortgeschritteneren Mikroprozessoren und zugehörigen Busarchitekturen
verläuft
in rasantem Tempo. Beispielsweise hat die Intel Corporation aus
Santa Clara, Kalifornien, vor kurzem ihren neuesten Prozessor, den
Pentium ProTM, zu einer Zeit eingeführt, zu
der die Marktnachfrage nach dem Pentium®-Prozessor
der vorigen Generation immer noch anstieg. Der Pentium ProTM bietet einen großen Leistungsanstieg gegenüber dem Pentium®-Prozessor der vorigen
Generation und führt
eine neue, hochleistungsfähige
Pipelined-Systembusarchitektur ein.
-
Ein
Dilemma ergibt sich für
Computersystementwickler, die auf der neuesten Busarchitektur basierende
Systeme entwickeln wollen, die aber noch immer Prozessorausführungen
entgegenkommen wollen, die auf Prozessoren früherer Generation oder Prozessoren
mit wechselnden Busarchitekturen basieren. Beispielsweise würden viele
Systemdesigner ihre Computersysteme gerne so entwerfen, dass sie mit
dem neuen Pentium ProTM-Bus von Intel kompatibel
sind – um
Vorteile aus den Eigenschaften des Stands der Technik zu ziehen-,
aber die immer noch die gegenwärtige
Marktnachfrage nach Kompatibilität
mit der Pentium®-Prozessorarchitektur
erfüllen müssen. Das
bedeutet im Allgemeinen, dass der Systemprozessor dieselbe Anschlussbelegung
haben muss und/oder in Übereinstimmung
mit der für den
Pentium®-Prozessor
entworfenen Busarchitektur operieren muss.
-
Leider
unterscheidet sich das Bussignalisierungsprotokoll des Pentium ProTM-Prozessors signifikant vom Bussignalisierungsprotokoll
des Pentium®-Prozessors.
Als Ergebnis werden Systementwickler vor die unangenehme Wahl gestellt,
entweder Kompatibilität
mit Durchschnittsprozessorausführungen
zu erhalten – während sie
auf die Vorteile in Verbindung mit einer Busarchitektur nach dem
Stand der Technik verzichten – oder
ihr System in Entsprechung mit dem Signalisierungsprotokoll der
fortgeschrittenen Busarchitektur des Pentium ProTM-Prozessors
zu entwerfen – auf
Kosten reduzierter Marktakzeptanz wegen der breiteren Kundenbasis
für Pentium®-Prozessor-basierte
Systeme. Daher besteht Bedarf für
eine Computersystemarchitektur, die für den Einsatz bei einer Vielzahl
von Prozessortypen geeignet ist, wobei jeder Prozessortyp möglicherweise
eine wechselnde Busarchitektur verwendet.
-
Beispiele
von Anordnungen im Stand der Technik sind in WO 95/25310 und WO
96/03697 offenbart.
-
Wie
man sehen wird, überkommt
die vorliegende Erfindung die dem Stand der Technik innewohnenden
Probleme durch das Bereitstellen eines Prozessor-Subsystems in Form
einer Steckkarte oder eines Steckmoduls, die/das durch eine standardisierte
Computerbusschnittstelle an einen Host gekoppelt ist. Die Erfindung
bietet Kompatibilität
mit einer großen
Vielzahl von Prozessortypen, während sie
die Notwendigkeit von Modifizierungen der grundlegenden Systemarchitektur
vermeidet. Die vorliegende Erfindung ermöglicht einem Prozessor früherer Generation
(beispielsweise einem Pentium®-Prozessor) vorteilhaft,
Informationen zu/von anderen an den Hochleistungs(d.h. einen Pentium
ProTM-Prozessor)-Systembus gekoppelten Agenten
in einer nahtlosen Art und Weise zu übertragen.
-
Zusammenfassung der Erfindung
-
Die
vorliegende Erfindung ist durch Anspruch 1 definiert. Sie behandelt
ein Prozessor-Subsystem, welches einen Prozessor und eine Buswandlereinrichtung
zur Verwendung mit einem Host-Computersystem umfasst, das einen
standardisierten Systembus unterstützt. Eine standardisierte Busschnittstelle
stellt eine Verbindung zum Systembus bereit und erlaubt eine Kommunikation
zwischen dem Prozessor-Subsystem und dem Host. Das Host-System umfasst
Komponenten wie einen Hostprozessor, einen Hauptspeicher, Peripheriegeräte etc.
Der Prozessor in dem Subsystem arbeitet in Übereinstimmung mit einer spezifischen
Busschnittstelle, die sich von der standardisierten Busschnittstelle
des Hostsystems unterscheidet. Die Buswandlereinrichtung stellt
eine Wandlung zwischen der standardisierten Busschnittstelle des
Hostsystems und der spezifischen Busschnittstelle des Prozessors sowie
eine Cache-Kohärenz-Steuereinheit
mit einem Buffer bereit.
-
In
einer Ausführungsform
ist das Prozessor-Subsystem auf einer Karte beherbergt, die in einen
Steckplatz des Host-Computersystems gesteckt oder eingeführt werden
kann. Die Karte umfasst das Prozessor-Subsystem mit einem Prozessor,
der entsprechend einem sich vom Signalisierungsprotokoll des Systembusses
unterscheidenden, spezifischen Signalisierungsprotokoll arbeitet.
Eine Buswandlereinrichtung ist mit den Prozessoranschlüssen und der
standardisierten Busschnittstelle der Karte, die mit dem Systembus
verbindet, gekoppelt. Die Buswandlereinrichtung wandelt das Signalisierungsprotokoll
des Systembusses in das Signalisierungsprotokoll des Prozessor-Subsystems
um und umgekehrt.
-
Das
Host-Computersystem, das an das Prozessor-Subsystem anschließt, kann
eine Vielzahl selbstständiger
Agenten unterstützen.
Diese selbstständigen
Agenten können
zusätzliche
Prozessoren, verschiedene wohlbekannte Einrichtungen so wie DMA(direct
memory access)-Geräte
oder andere Subsysteme umfassen. Diese Agenten kommunizieren in
einer Implementierung mittels einer Pipelined-Busarchitektur miteinander.
An den Pipelined-Bus gekoppelte Agenten sind entweder als symmetrische
Agenten oder Prioritätsagenten
klassifiziert. Die symmetrischen Agenten unterstützen ein Distributed-Arbitration-Verfahren
gemäß einem
zirkularen Prioritätsal gorithmus.
-
Das
Prozessor-Subsystem ist als ein symmetrischer Agent am Pipelined-Bus
klassifiziert und fordert den Busbesitz für den Prozessor gemäß dem zirkularen
Prioritätsalgorithmus
an. In einer spezifischen Implementierung kann ein Ro-und-Robin-Algorithmus
verwendet werden. In den meisten Fällen können Prioritätsagenten
sofortigen Busbesitz vor jedem symmetrischen Agenten gewinnen, indem
sie ein Prioritätsanforderungssignal
auf den Bus senden.
-
Kurze Beschreibung der
Zeichnungen
-
Die
vorliegende Erfindung wird durch die folgende detaillierte Beschreibung
und die begleitenden Zeichnungen besser verstanden werden, die aber
die Erfindung nicht auf die spezifischen gezeigten Ausführungsformen
reduzieren, sondern vielmehr nur der Erklärung und dem Verständnis dienen
sollen.
-
1 veranschaulicht
die Außenanschlüsse des
Pentium®-Prozessors.
-
2 ist
ein Blockdiagramm einer Ausführungsform
der vorliegenden Erfindung auf hoher Ebene.
-
3 zeigt
eine Ausführungsform
der Erfindung in einem Computersystem, das mehrere, mit einem Hochleistungsbus
gekoppelte Agenten umfasst.
-
4 ist
ein konzeptuelles Blockdiagramm einer Ausführungsform der Buswandlereinrichtung aus 2.
-
5 veranschaulicht
eine Ausführungsform
der Arbitrierungswandlerschaltung aus 4.
-
6 ist
ein Blockdiagramm einer Ausführungsform
der Wandlerschaltung für
ausgehende Anfragen gemäß 4.
-
7 zeigt
eine Ausführungsform
des Bussperrungs wandlers aus 4.
-
8 zeigt
eine Ausführungsform
des Wandlers für
eingehende Anfragen.
-
9 ist
ein Blockdiagramm einer Ausführungsform
der Cache-Kohärenz-Steuereinheit
aus 4.
-
10 veranschaulicht
die Wandlerlogikeinheit für
das Busanfrageprotokoll, die in einer Ausführungsform der vorliegenden
Erfindung eingesetzt wird.
-
Detaillierte Beschreibung
-
Ein
Prozessor-Subsystem für
eine universelle Computerarchitektur wird beschrieben, die einen zusammen
mit einer Buswandlereinrichtung, welche das Signalisierungsprotokoll
des Prozessors in das Signalisierungsprotokoll eines Hochleistungssystembusses
umwandelt, auf einer Steckkarte oder einem Steckmodul beherbergten
Prozessor umfasst. In der folgenden Beschreibung sind zahlreiche
spezifische Details angegeben, so wie Agententypen, logische Blöcke, Signalverbindungen
etc., um für
ein gründliches
Verständnis
der vorliegenden Erfindung zu sorgen. Der Fachmann mit gewöhnlichen
Fähigkeiten
in der Datenverarbeitung wird verstehen, dass die Erfindung ohne
viele dieser Details betrieben werden kann. In anderen Beispielen
wurden bekannte Signal-Zeitsteuerungen, Komponenten und Schaltungen nicht
im Detail beschrieben, um die Erfindung nicht zu verschleiern.
-
Der
Computerfachmann wird außerdem
verstehen, dass die folgende Beschreibung verschiedene Ausdrücke mit
einer spezifischen, festgelegten Bedeutung im relevanten Technikgebiet
umfasst. Beispielsweise weiß der
Fachmann, dass der Ausdruck "standardisierte
Busschnittstelle" bedeutet, dass
die Signalübertragung
zwischen einem Agenten und einem Bus einem üblicherweise verwendeten, im ganzen
System angewendeten Signalisierungsprotokoll folgt. Weiterhin bezieht
sich die standardisierte Busschnittstelle nicht notwendi gerweise
auf einen Industriestandard von dem Typ, der von verschiedenen professionellen
Organisationen vorangetrieben wird. Vielmehr kann die Schnittstelle
basierend auf beliebigen aus einer Anzahl von Kriterien gewählt werden. Beispielsweise
ist eine Ausführungsform
der vorliegenden Erfindung offenbart, bei der die standardisierte
Busschnittstelle auf einer Hochleistungsbusarchitektur basiert,
welche Rückwärtskompatibilität mit früheren Prozessorgenerationen
bereitstellt. In anderen Beispielen kann die standardisierte Busschnittstelle
auf eine relative einfache Busarchitektur basiert sein, um Kosten
zu reduzieren oder einen Markt mit höherem Volumen mit reduzierter
Komponentenkomplexität
unterstützen.
-
1 veranschaulicht
die Signalschnittstelle des Pentium®-Mikroprozessors
von Intel. Zur Hintergrundinformation kann eine detaillierte Erklärung vom
Betrieb und den Funktionen des in 1 gezeigten
Signals sowie das zum Pentium®-Mikroprozessor gehörige Bussignalisierungsprotokoll
in zahlreichen Veröffentlichungen
gefunden werden. Zum Beispiel enthält das Buch "Pentium Processor
System Architecture, Second Edition" von Don Anderson und Tom Shanley, Addison-Wesley
Publishing Company (1995), eine solche Beschreibung.
-
Obwohl
die folgende Diskussion sich auf den Pentium®-Mikroprozessor in
beispielhaften Ausführungsformen
der Erfindung bezieht, sollte verstanden werden, dass derzeit andere
Mikroprozessoren existieren – oder
zukünftig
existieren werden –,
welche wechselnde interne Architekturen verwenden, während sie
anschlusskompatibel mit dem Pentium®-Mikroprozessor bleiben.
Ebenso stellen andere Prozessoren Signale mit ähnlichen Funktionen bereit
und wurden mit einer unterschiedlichen Anschlussbelegung entworfen,
erhalten aber Kompatibilität
mit der für
den Pentium®-Mikroprozessor definierten
Busarchitektur.
-
Deswegen
soll die Bezugnahme auf den Pentium®-Mikroprozessor in
der vorliegenden Anmeldung auch diese Äquivalente mit einschließen. Anders
ausgedrückt,
ist die Erfindung nicht auf den Pentium®-Mikroprozessor
begrenzt; vielmehr kann die Erfindung mit beliebigen Datenverarbeitungseinrichtungen
praktiziert werden. Zusätzlich
sollte der Fachmann verstehen, dass Prozessoren mit verschiedenen
Architekturen leicht angepasst werden können, um die von der vorliegenden
Erfindung gebotenen Vorteile auszunutzen, obwohl die vorliegende
Erfindung in Zusammenhang mit einem auf der Pentium ProTM-Prozessorarchitektur
basierenden Host-System beschrieben ist.
-
Nun
ist in Bezug auf 2 ein Blockdiagramm einer Ausführungsform
der vorliegenden Erfindung auf hoher Ebene gezeigt. In der Ausführungsform
von 2 ist eine Vielzahl von Integrierten-Schaltkreis-Geräten auf
einer Leiterplatten(Printed circuit board, PCB)-Karte (oder -modul) 200 angebracht
oder beherbergt. Die Karte 200 umfasst einen Prozessor 11,
der mit einem oder mehreren Cache-Speichern entlang von Leitungen 17 verbunden ist.
Weiterhin umfasst die Karte 200 eine Buswandlereinrichtung 15,
welche mit dem Prozessor 11 durch Leitungen 18 verbunden
ist. Die Buswandlereinrichtung 15 wiederum ist mit Systembus 101 verbunden. In
der beschriebenen Ausführungsform
umfasst der Systembus 101 einen hochleistungsfähigen Pipelined-Bus
mit einer standardisierten Busschnittstelle.
-
Daten-,
Adress- und Steuerleitungen 19, 13 bzw. 16 können direkt
vom Prozessor 11 zum Systembus 101 (wie gezeigt)
verbunden werden, oder alternativ durch die Wandlereinrichtung 15 gekoppelt werden.
-
Wie
später
näher erläutert wird,
bewirkt die Buswandlereinrichtung 15 eine Konvertierung
des Bussignalisierungsprotokolls und der elektrischen Charakteristika,
die mit dem Prozessor 11 verbunden sind, in das Signalisierungsprotokoll
und die elektrischen Charakteristika, die mit dem Systembus 101 verbunden
sind, und umgekehrt. Auf diese Weise können Informationen zwischen
dem Prozessor und anderen an den Systembus 101 gekoppelten
Agenten übertragen
werden. (Zu beachten ist, dass die Signalleitungen 14 darstellen
sollen, dass es andere, mit anderen Einrichtungenen auf der Karte 200 verbundene
Eingangs-/Ausgangsleitungen zum Prozessor 11 geben kann.
Beispielsweise können
die Lei tungen 14 Takteingangssignale, Betriebspotentialversorgungsleitungen,
Verbindungen zu zusätzlichen integrierten
Schaltkreisen etc. umfassen.)
-
Nun
ist in Bezug auf 3 eine Ausführungsform der vorliegenden
Erfindung in einem Computersystem gezeigt, die mehrere, an einen
Hochleistungs-Bus 101 gekoppelte Agenten umfasst. In der
Ausführungsform
von 3 umfasst der Bus 101 einen Pipelined-Bus
mit einer Architektur, wie sie für den
Pentium ProTM-Prozessor entworfen wurde.
Die Prozessorkarte 200 ist mit einer Vielzahl von entlang einer
Kante angeordneten Schnittstellenanschlüssen dargestellt. Diese Anschlüsse können in
einen angepassten Verbinder 201 mit einem Schlitz mit einem Satz
entsprechender Anschlussverbindungen eingesteckt werden. Beispielsweise
kann diese Konfiguration eine Zusatzkarte (daughtercard) darstellen,
die mit einer Hauptplatine (motherboard) über einen zur Verfügung stehenden
Einsteckplatz im Computersystem verbunden ist. Diese Struktur ermöglicht dem Hochleistungs-Bus 101 das
Zusammenschalten einer Anzahl von Prozessorkarten, von denen jede
beliebige aus einer Vielzahl verschiedener Prozessoren umfassen
kann.
-
Wie
man sieht, umfasst die Prozessorkarte 200 einen Prozessor
(PA) 11, der mit Cachespeichern 12a–12c gekoppelt
ist und auch mit dem Bus 101 über die Buswandlereinrichtung 15 verbunden
ist. Andere, mit dem Bus 101 verbundene Einrichtungen umfassen
einen Busmaster 205, eine Direkt-Speicherzugriff(DMA)-Einrichtung 202,
(ein) I/O-Gerät(e) 207,
Erweiterungsgeräte 203 und
eine Gruppe von in einer Gerätegruppe 206 organisierte
Prozessoren (PB). Als Beispiel können die
Prozessoren PB Pentium ProTM-Prozessoren
umfassen, die mit der Busarchitektur des Pipelined-Busses 101 kompatibel
sind. Daher ist in dem Computersystem von 3 ein Multiprozessor(MP)-System
veranschaulicht.
-
Für Zwecke
der folgenden Diskussion kann der Hochleistungs-Bus 101 als
den Pentium ProTM-Prozessor-Bus der Intel
Corporation bezeichnend angesehen werden. Das zum Pentium ProTM-Prozessor-Bus gehörige Signalisierungsprotokoll
ist in der Veröffentlichung "Pentium ProTM-Processor Familiy Developer's Manual, Volume
1: Specifications" (1996)
dargelegt, die von der Intel Corporation unter der Rufnummer 1-800-879-4683 erhältlich ist.
Um bestimmte Aspekte der vorliegenden Erfindung besser zu verstehen,
werden trotzdem verschiedene Attribute des Pentium ProTM-Prozessor-Busses
diskutiert werden, weil sie die Erfindung betreffen.
-
Zunächst sollte
es verstanden werden, dass es nach dem Busarbitrierungsprotokoll
des Pentium ProTM-Prozessor-Busses zwei Klassen
von Bus-Agenten gibt: symmetrische Agenten und Prioritätsagenten.
Symmetrische Agenten unterstützen eine
faire, verteilte Arbitrierung unter Verwendung eines Round-Robin(d.h.
Umlaufende-Priorität)-Algorithmus.
Jeder symmetrische Agent hat eine einzigartige Agentenidentifikation
(ID), die bei einem RESET zugewiesen wird; einen rotierenden ID-Wert,
welcher den symmetrischen Agenten mit der niedrigsten Priorität für das nächste Arbitrierungsereignis
wiedergibt; und einen symmetrischen Besitzzustands-Anzeiger, der
entweder einen "Belegt
(busy)"- oder einen "Frei(idle)"-Zustand anzeigt.
In der Ausführungsform
von 3 tritt die Prozessorkarte 200 beispielsweise
als einer von mehreren symmetrischen Agenten auf, die an den Bus 101 gekoppelt
sind.
-
In
einer typischen Systemkonfiguration wie der in 3 gezeigten
können
symmetrische Agenten Einrichtungen wie die individuell oder in einer
Gerätegruppe 206 organisierten
Prozessoren PB, den Busmaster 205 und
verschiedene Erweiterungsgeräte 203 umfassen,
die an den Bus 101 gekoppelt gezeigt sind. In dem Computersystem
aus 3 kann die Direkt-Speicherzugriffs(DMA)-Einrichtung
als ein Hoch-Prioritätsagent
funktionieren, da sie normalerweise einen direkten Pfad zum Speicher
benötigt.
In anderen Konfigurationen kann (können) der (die) Prioritäts-Agent(en)
einen Hoch-Prioritäts-Arbiter
umfassen, der für
mehrere I/O-Geräte, wie
vom I/O-Block 207 in 3 dargestellt,
arbitriert.
-
Ein
Arbitrierungsereignis ist der Vorgang, durch den ein neuer symmetrischer
Busbesitzer festgestellt und geändert
wird. Bei jedem Arbitrierungsereignis wird der symme trische Agent
mit der höchsten
Priorität
der symmetrische Besitzer. Zu beachten ist, dass der symmetrische
Besitzer nicht notwendigerweise der Gesamtbusbesitzer ist, weil
ein Prioritätsagent,
welcher eine höhere
Priorität
als jeder symmetrische Besitzer hat, den Busbesitz von einem symmetrischen
Agenten an sich reißen
kann. Sobald der Prioritätsagent
für den
Bus arbitriert, hindert er den symmetrischen Besitzer am Eintreten
in eine neue Anfragephase, außer
die neue Transaktion ist Teil einer andauernden Operation mit gesperrtem Bus.
Operationen mit gesperrtem Bus sind atomare Operationen, die nicht
unterbrochen werden können. Ein
Beispiel einer solchen Busoperation ist ein Lese-Modifiziere-Schreibe-Zyklus.
-
Nun
ist in Bezug auf 4 ein konzeptuelles Blockdiagramm
einer Ausführungsform
der Buswandlereinrichtung 15 gezeigt, die zuvor in 2&3 gezeigt
war. Die gestrichelten Linien 10 und 100 stellen
die Bussignalschnittstelle zwischen Wandler 15 in Prozessor 11 bzw.
in Bus 101 dar. Der Fachmann wird verstehen, dass jede
der Schnittstellen 10 und 100 Daten- und Adresslatchs,
Spannungsübersetzungsschaltkreise,
Signalkonvertierungslogik etc. umfassen kann, wie es zum Übersetzen
und Konvertieren der Spannungs- und logischen Pegel, die zu der
jeweiligen Busschnittstelle gehören notwendig
ist.
-
In
dem Fall der Busschnittstelle 100, die an den Pipelined-Bus 101 angeschlossen
ist, ist darin eine Schnittstelleneinheit In-Order Queue(IOQ) 70 enthalten.
Die IOQ 70 ist ein zum Pentium ProTM-Prozessor-Bus
gehöriger
Standardlogikblock, welcher den aktuellen Zustand des Busses 101 beobachtet. Alle
Busagenten behalten einen identischen IOQ-Zustand bei, um jede an den Bus ausgegebene
Transaktion zu verfolgen. Wenn eine Transaktion an den Bus ausgegeben
wird, wird sie ebenfalls in die IOQ jedes Agenten eingegeben.
-
Die
Tiefe der IOQ 70 begrenzt, wie viele In-Order-Transaktionen gleichzeitig
am Bus ausstehen können.
Weil Transaktionen ihre Antworten und Daten in derselben Reihenfolge
empfangen, wie sie ausgegeben wurden, ist die oberste Transaktion
in der IOQ 70 die nächste
Transaktion, die in die Antwort- und Datenphasen eintritt. Nach
Vervollständigung
einer Antwortphase wird eine Transaktion aus der IOQ entfernt. Die
IOQ ist auch für
das Senden von Signalen wie HIT#/HITM#, DRDY#, DBSY# sowie anderen
Busprotokollsignalen verantwortlich. Die vorgegebene Tiefe der IOQ
ist acht; jedoch können Busagenten
die IOQ 70 bis zu einer Tiefe von Eins durch die Aktivierung
von Anschluss A7# auf RESET# konfigurieren.
-
In
der Buswandlereinrichtung 15 ist ein Bus-Arbitration-Wandler
(BRC) 60 enthalten, der die zu den verschiedenen Busprotokollen
gehörigen
Arbitersignale konvertiert. Beispielsweise ermöglicht der BAC 60 dem
Prozessor 11, Kontrolle oder Besitz über den Pipelined-Bus 101 zu
erlangen, indem seine Arbitersignale korrekt in das zum Bus 101 gehörige Busprotokoll
umgewandelt werden.
-
Ein
detailliertes Blockdiagramm von Bus-Arbiter-Wandler 60 ist
in 5 veranschaulicht. In dem BAC 60 sind
Zustandsmaschinen 61 zur Feststellung der Agentenidentifikation(ID),
eine Zustandsmaschine 62 zur Feststellung des symmetrischen
Besitzers, eine Halt-Aufprägungs-Logik 63 und
eine Busanfragelogik 64 enthalten. Es wird anerkannt, dass
in dem symmetrischen Arbitrierungsschema von Systembus 101 jeder
Agent, der Zugang zum Bus fordert, ein passendes Anfrage(BREQ#)-Signal
aufprägen muss.
Beispielsweise kann Prozessor 11 seine Absicht, eine Anfrage
an Bus 101 zu senden, durch Ansteuern der BREQ#-Signalleitung
entsprechend dem Busprotokoll von Prozessor 11 anzeigen.
-
Die
Signale BREQ, LOCK# und HLDA werden von der Busanfragelogik 64 in
den Prozessor 11 eingegeben. (Es ist zu beachten, dass
jedes Signal, welches einen logisch niedrigen Zustand annimmt, wenn
es aufgeprägt
wird, von dem Pfund-Zeichen # gefolgt wird. Beispielsweise wird
das LOCK#-Signal niedrig aufgeprägt,
wenn Prozessor 11 eine atomare Transaktion ausführt.)
-
Das
BREQ-Signal ist die Busanfrageausgabe, die vom Prozessor 11 aufgeprägt wird,
um die Busanfragelogik 64 darüber zu informieren, dass für ihn die
Erlangung des Besit zes des Busses 101 erforderlich ist,
um einen Buszyklus auszuführen.
Das HLDA-Signal ist eine Halt-Anerkennungs (hold acknowledge)-Ausgabe,
die vom Prozessor 11 aufgeprägt wird, um andere anfragende
Einrichtungen darüber zu
informieren, dass er den Bus nicht länger besitzt. Gemäß dem zum
Prozessor 11 gehörigen
Busprotokoll wird HLDA nicht aufgeprägt, bevor alle ausstehenden
Buszyklen (d.h., die zuvor gepipelined wurden) vervollständigt sind.
Die Busanfragelogik 64 wandelt das vom Prozessor 11 erzeugte
Busanfragesignal in das BREQ#[0]-Signal um, das mit dem zum Protokoll
des Systembus 101 gehörigen
Busanfragesignal kompatibel ist.
-
In
einer Ausführungsform
erlangt der Bus-Arbiter-Wandler 60 Besitz
des Busses 101 als ein symmetrischer Agent entsprechend
dem auf dem Pentium-ProTM-Prozessor-Bus
implementierten Round-Robin-Arbitrierungsschema. Um korrekt mit dem
Bus 101 zu verbinden, muss jedem symmetrischen Agent eine
symmetrische Agentenidentifikation (ID) zugewiesen werden. Dies
ist der Zweck von Zustandsmaschine 61 zur Feststellung
der Agenten-ID. Beim Anschalten oder beim Reset empfängt die
Zustandsmaschine 61 zur Feststellung der symmetrischen
Agenten-ID die BREQ#[3:0]-Signalleitungen, um die Agenten-ID-Zuteilung
von Prozessorkarte 200 festzustellen. Die Agenten-ID-Information
wird der Zustandsmaschine 62 zur Feststellung des symmetrischen
Besitzers zur Verfügung
gestellt.
-
Um
Besitz des Systembusses 101 zu erlangen, wird das Symmetrische-Agenten-BREQ#[0]-Signal
aufgeprägt,
und die Zustandsmaschine 62 zur Feststellung des symmetrischen
Besitzers überprüft den Zustand
des Busses, um festzustellen, wann Besitz als ein symmetrischer
Agent gemäß dem Busprotokoll
des Pentium-ProTM-Prozessor-Busses erlangt werden
kann. Die zum Systembus 101 gehörigen Busarbitrierungssignale
umfassen BREQ#[3:0], BPRI#, LOCK# (gezeigt in 7)
und RESET#. Die BREQ[3:0]-Bussignale sind in einer rotierenden Weise
mit den symmetrischen Agenten – einschließlich der
Buswandlereinrichtung 15 der Prozessorkarte 200 – verbunden.
Diese Anordnung initialisiert jeden symmetri schen Agenten mit einer
einzigartigen Agenten-ID während
des Anschaltens oder eines RESETs. Die Busanfragesignale BREQ#[3:0]
stellen einen Mechanismus bereit, durch den individuelle symmetrische
Agenten Busbesitzanfragen senden und empfangen, um für Besitz
eines Systembusses 101 zu arbitrieren.
-
Das
BPRI#-Signal ist ein Prioritätsanfragesignal,
durch das ein symmetrischer Agent Busbesitzanforderungen von einem
Hoch-Prioritäts-Busagenten
empfängt.
Beispielsweise kann BPRI# von einem Prioritäts-Rgenten aufgeprägt werden,
so dass er für sofortigen
Besitz des Busses 101 arbitrieren kann. Die symmetrischen,
an den Bus 101 gekoppelten Agenten empfangen das BPRI#-Signal
als eine Anzeige, dass ein Prioritätsagent Besitz des Busses anfordert.
-
Bei
einem Arbitrierungsereignis auf Bus 101 kann die Prozessorkarte 200 ein
symmetrischer Busbesitzer werden, wenn sie aktuell die höchste Priorität im System
hat. Ein Prioritäts-Agent
kann anschließend
den Bus anfordern und Besitz vor der Prozessorkarte 200 erlangen.
Beispielsweise kann das I/O-Gerät 207 (siehe 3)
Besitz des Busses von der Tochterkarte 200 erlangen, indem
sie BPRI# aufprägt,
außer
natürlich,
wenn die Prozessorkarte 200 eine atomare Transaktion durchführt und
das LOCK#-Signal aufgeprägt
hat. Prozessorkarte 200 kann natürlich in einer alternativen
Ausführungsform als
ein Prioritätsagent
bestimmt sein.
-
Die
Halt-Aufprägungs-Logik 63 ist
zum Empfangen des BPRI#-Signals vom Bus 101 gekoppelt und
erzeugt HOLD- und AHOLD-Signale als Eingabe zum Prozessor 11.
Wenn das BPRI#-Signal
auf dem Bus 101 aufgeprägt
ist, heißt
das, dass ein Hoch-Prioritäts-Agent
interveniert, um den Busbesitz zu erlangen. In Reaktion auf das
BPRI#-Signal informiert die Halt-Aufprägungs-Logik 63 den
Prozessor 11, keine weiteren Anfragen mehr auszugeben.
-
Zu
beachten ist, dass das AHOLD(address hold)-Signal den Prozessor 11 veranlasst,
mit dem Treiben seines Adressbusses aufzuhören, so dass der Prozessor
unfähig
ist, Buszyklen zu steuern. Daher ermöglicht das Treiben der HOLD- und AHOLD-Signale
der Buswandlereinrichtung 15, mit anderen symmetrischen
Agenten am Bus 101 zu arbeiten. Dies zwingt den Prozessor 11,
den Bus nicht standardmäßig zu besitzen,
wohingegen der Prozessor bei der Busarchitektur des Pentium®-Prozessors den
Bus standardmäßig besitzt.
In einer Systemkonfiguration mit mehreren Prozessoren oder Agenten eliminiert
die Verwendung der HOLD- und AHOLD-Signale die Möglichkeit, dass sich zwei oder mehr
Prozessoren gegenseitig nachgeben, wodurch ein Systemsillstand ("live lock situation") entstehen könnte.
-
Die
Busanfragelogik 64 erzeugt auch die BOFF#-Signaleingabe zum
Prozessor 11, um ihn zur sofortigen Abgabe der Kontrolle über den
Bus zu veranlassen, falls ein Hoch-Prioritäts-Agent den Busbesitz mit
Hilfe des BPRI#-Siganls
anfordert. Nachdem das BOFF#-Signal entfernt wurde, startet der
Prozessor 11 den gesamten Buszyklus neu.
-
In
einer alternativen Ausführungsform
funktioniert die Prozessorkarte 200 anstatt als ein symmetrischer
Agent als ein Hoch-Prioritäts-Agent
im Computersystem.
-
Nun
in Bezug auf 4 und 6 umfasst die
Buswandlereinrichtung 15 weiterhin einen Wandler für ausgehende
Anfragen (ORC) 20, welcher vom Prozessor 11 erzeugte
Anfragen zum Ausgeben auf dem Systembus 101 umwandelt.
In einer beispielhaften Ausführungsform
müssen
Verschlüsselungen
der ausgehenden Anfragen vom Protokoll des Pentium®-Prozessors
in das Signalisierungsprotokoll des Pentium-ProTM-Prozessor-Busses 101 übersetzt
werden, sobald Besitz des Busses 101 durch den Pentium®-Prozessor
erlangt wurde. Weiterhin implementiert der Pentium-ProTM-Bus
einen zweitaktigen Anfragenzyklus, während der Pentium®-Prozessor
mit nur einem Taktzyklus arbeitet. Daher ist der ORC 20 verantwortlich
für eine
korrekte Aneinanderreihung von Anfragen vom Prozessor 11 sowie
für eine
Umwandlung zu verschiedenen Anfragentyp-Anschlüssen von dem Pentium®-
zu dem Pentium-ProTM-Prozessor-Bus.
-
Der
Wandler für
ausgehende Anfragen 20 schließt eine Zustandsmaschine 21 für Anfragen-Cycling,
Anfragenencoder 22 und 23 und einen Attributencoder 26 ein.
Die Zustandsma schine 21 für Anfragen-Cycling empfängt ein
Signal auf Leitung 66 von BRC 60, welches anzeigt,
dass der Prozessor 11 den Besitz des Busses 101 erlangt
hat. An diesem Punkt kann der Prozessor 11 sein ADS# (Adresszustand)- Ausgangssignal
aufprägen,
um anzuzeigen, dass eine gültige
Adresse und Buszyklusdefinition anliegen.
-
Die
Zustandsmaschine 21 verwendet diese Information zum Erzeugen
von zu Multiplexerschaltkreisschaltungen 24 und 25 gekoppelten
Steuersignalen für
die verschiedenen Anfragen- und
Verschlüsselungsänderungen,
so dass die eintaktigen Prozessoranfragen in die korrekte Reihenfolge
als zwei getrennte Taktzyklen auf dem Systembus 101 gebracht
werden können.
Die Verschlüsselung
für die
zwei Anfragezyklen wird von Blöcken 22 und 23 ausgeführt, die
als Eingaben das Schreibe/Lese (W/R#)-Signal, das Speicher- oder
I/O-Transaktions(M/IO#)-Signal
und das Buszyklusdefinitions(CACHE#)-Signal von Prozessor 11 empfangen.
Das CACHE#-Signal
wird vom Prozessor während
Cache-Zurückschreibezyklen
aufgeprägt,
und auch, um externen Speichern zu Notiz zu bringen, dass der Prozessor
eine Cache-Zeilenfüllung
unter Verwendung eines Burst-Buszyklus durchführen will.
-
Zusätzlich empfängt der
Anfragenencoder 22 das D/C#(Daten/Code)-Signal, um den
Typ der angeforderten Leseoperation anzuzeigen.
-
Die
verschlüsselten,
von den Blöcken 22 und 23 erzeugten
Ausgangssignale werden in den Multiplexer 24 eingegeben.
Der ausgewählte
Ausgang von Multiplexer 24 wird von der Zustandsmaschine 21 für Anfragen-Cycling
gesteuert, wie in 6 gezeigt. Wenn ein ADS#-Signal
von der Zustandsmaschine 21 für Anfragen-Cycling auf den
Bus 101 gelegt wird, werden die verschiedenen Anfragetypen vom
Prozessor 11 während
des ersten Zyklus vom Encoder 22 verschlüsselt. Zu
dieser Zeit werden die vom Prozessor 11 bereitgestellten
Adresssignale für die
Ausgabe auf die Systembusadressleitungen A#[35:3] mittels Multiplexer 25 ausgewählt. Grundlegende
Informationen über
den Anfragentyp werden ebenfalls während des ersten Zyklus mittels
der REQ#[4:0]-Leitungen auf den Systembus 101 gelegt. Anfragenencoder 22 kann
unter Verwendung von gewöhnlicher,
kombinatorischer Logik implementiert werden, welche gemäß einer
Ausführungsform
der vorliegenden Erfindung die Pentium®-Typ-Anschlüsse in passende
Anfragen-Typ-Signale auf dem Pentium-ProTM-Prozessor-Bus umwandelt.
-
Während des
zweiten Taktzyklus wählt
der Multiplexer 24 den Regb[4:0]-Ausgang von Encoder 23 für die Ausgabe
auf den Systembus 101 aus. Ebenfalls während des zweiten Zyklus werden
die Adresssignalleitungen zum Senden zusätzlicher Informationen über den
Anfragentyp zum Pipelined-Bus verwendet. Diese Information umfasst
verschiedene Attribute des Anfragentyps, wie die Byte-Enable-Signalleitungen
(BE#[7:0]); ein Zyklus-Aufspaltungs(SCYC#)-Signal, das Logik davon unterrichtet,
dass die gesperrte Übertragungsanfrage die
doppelte Anzahl von Buszyklen aufweist wie erwartet; das Seiten-Durchschreibe(PWT)-Signal,
welches spezifiziert, ob der L2-Cache eine Zurückschreibe- oder Durchschreibe-Methode
für die
Zeile, in die geschrieben wird, verwenden soll; und das CACHE#-Signal.
Diese Information wird als Ausgabe auf den Adressleitungen von Systembus 101 vom Multiplexer 25 während des
zweiten Zyklus ausgewählt.
-
In
einer Systemkonfiguration, welche einen antwortenden Agenten einschließt, welcher
eine Transaktion verzögern
kann (d.h., eine inkorrekte Vervollständigung veranlasst), sollte
der ORC 20 Logik umfassen, welche die DEN#-Signalleitung mit
jeder auf den Bus 101 ausgegebenen Anfrage aufhebt. Das
DEN#-Signal ist das Verzögerung-Enable-Signal und wird auf
den Bus 101 im zweiten Takt der Anfragephase auf den EXFl#/Ab4#-Anschluss
(d.h., Bit 4 der Zweiter-Zyklus-Adress-Anschlüsse) getrieben. Die
gewöhnliche,
kombinatorische Logik von Zustandsmaschine 21 kann beispielsweise
diese Signalisierungslogik einschließen. Aufheben von DEN# bei
jeder ausgehenden Anfrage hindert jeden antwortenden Agenten am
Verzögern
einer Transaktion.
-
Adressenparitäts- und
Paritätsanfrage-Signale
werden ebenfalls von den Blöcken 27 bzw. 28 auf
Bus 101 als Teil einer ausgehenden Anfrage erzeugt.
-
Die
Buswandlereinrichtung 15 umfasst weiterhin einen Bussperrwandler(BLC)-Schaltkreis 50, welcher
den Bus befähigt,
während
atomarer Transaktionen, das heißt,
Transaktionen über
etliche Taktzyklen, die nicht unterbrochen werden können, gesperrt
zu sein. Obwohl das Sperrprotokoll für den Pentium®-Prozessor ähnlich wie
das auf dem Pentium-ProTM-Prozessor-Bus implementierte Sperrsignalisierungsprotokoll
ist, variiert der exakte Zeitpunkt, an dem eine Sperrung in Bezug
auf die verschiedenen Busprotokolle aufgeprägt werden kann.
-
7 veranschaulicht
einen Bussperrwandler mit einer Sperrwandlerzustandsmaschine 51,
die ein LOCK#-Signal von Prozessor 11 sowie eine Eingabe
vom ORC 20 empfängt.
Beim Systembus 101 ist das LOCK#-Signal ein bidirektionales
Signal, das unter alle Agenten auf den Bus geschaltet wird. Gemäß dem Busarbitrierungsprotokoll
des Pentium-ProTM-Prozessors kann ein aktueller Busbesitzer LOCK#
aufprägen,
um eine unteilbare, busgesperrte Operation zu definieren.
-
Kurz
nachdem der Prozessor 11 sein LOCK#-Signal aufgeprägt hat,
empfängt
der Systembus 101 das übersetzte
LOCK#-Signal von
der Sperrwandlerzustandsmaschine gemäß dem Signalisierungsprotokoll
von Bus 101. Die Zustandsmaschine 51 implementiert
im Wesentlichen eine variable Verzögerung – sie wartet, bis der ORC 20 Signale
so wie ADS# usw. erzeugt, bevor sie das entsprechende LOCK#-Signal
auf Bus 101 prägt.
Das LOCK#-Signal auf Bus 101 dauert durch die Folgen von
atomaren Transaktionen an und wird dann aufgehoben, nachdem die
Transaktionen vervollständigt
wurden. Wiederum wird die Aufhebung gemäß dem passenden Signalisierungsprotokoll
von Bus 101 vorgenommen.
-
Wie
man in 4 sieht, schließt die Buswandlereinrichtung 15 auch
einen Wandler für
eingehende Anfragen(IRC) 30 zum Umwandeln von Signalanfragen
auf dem Systembus 101 in Signale ein, die in den Prozessor 11 eingegeben
werden können. Gemäß dem Signalisierungsprotokoll
des Pentium®-Prozessors wird ein
Externer-Adressimpuls-(external address strobe, EADS#)-Signal aufgeprägt, um dem
Prozessor mitzuteilen, dass eine gültige Adresse an seinem lokalen
Adress bus anliegt, und dass diese Adresse überwacht (snooped) werden kann.
Wenn die Überwachung
(snoop) aktiviert ist, überträgt der Prozessor
die Speicheradresse vom Bus zu den Cacheverzeichnissen, und eine
Suche findet statt. Aber weil der Pentium-ProTM-Prozessor-Bus
kein EADS#-Signal oder ein Äquivalent
davon beinhaltet, implementiert die Erfindung das folgende Schema.
-
Nachdem
der Pipelined-Bus 101 normalerweise ein Systembus mit mehreren
Agenten ist, zeigt ein ADS#-Signal auf dem Bus eine Anfrage von
einem der mehreren Agenten an. Alle an den Bus gekoppelten Agenten
beobachten diese Anfragen einfach und entscheiden in Abhängigkeit
vom Anfragentyp, ob es passend ist, den Bus 101 zu überwachen (snoop),
und auch, was mit den Informationen getan wird.
-
Wie
in 8 gezeigt, umfasst IRC 30 einen Wandler-Logikblock für eingehende
Anfragen 31, welcher Anfragesignale REQ#[4:0] vom Systembus 101 empfängt. Der
Logikblock empfängt
ebenfalls das ADS#-Signal von Bus 101. Die Wandler-Logik
für eingehende
Anfragen 31 entscheidet, ob eine Anfrage auf Bus 101 vom
Prozessor 11 überwachbar
(snoopable) ist. Wenn die aktuelle Transaktion auf Systembus 101 überwachbar
(snoopable) ist, veranlasst der Logikblock 31, dass EADS#
zusammen mit der Adressinformation in den Prozessor getrieben wird. Zu
beachten ist, dass der IRC-Logikblock 31 Tri-State-Buffer 33 und 34 steuert,
um das EADS#-Signal und die Adressanschlüsse von Prozessor 11 aufzuprägen/aufzuheben.
-
Der
Wandler-Logikblock für
eingehende Anfragen 31 erzeugt auch das Invalidate(INV)-Signal, um
den Prozessor 11 anzuweisen, entweder die Cache-Zeile gültig zu
lassen, oder sie im Fall eines Snoop Hits als ungültig zu
markieren. Wenn die Cache-Zeile gültige Daten enthält, wird
die Zeile in einen Geteilte-Cache-Kohärenz-Zustand versetzt. Zu beachten
ist, dass der Logikblock 31 sicherstellen sollte, dass
das Address Hold(AHOLD)-Signal aufgeprägt ist, so dass der Prozessor 11 den
Bus korrekt überwachen
(snoop) kann. Dies sichert den Erhalt der Cacheübereinstimmung.
-
An
diesem Punkt sollte man sich klarmachen, dass die Implementierung
von dem in 8 gezeigten IRC 31 annimmt,
dass der Systembus 101 zum Zweck der Signalkonvention de-pipelined
wurde. In alternativen Ausführungsformen
der Erfindung kann es wünschenswert
sein, den Bus 101 nicht zu de-pipelinen. In einer solchen
Implementierung würde
die Buswandlereinrichtung 15 ferner einen Wartschlangenmechanismus
umfassen, welcher alle Snoops zu Prozessor 11 senden würde, während er den
Systembus 101 periodisch blockieren würde.
-
Zu
beachten ist weiterhin, dass der IRC 31 eine Snoop-Steuerlogik einschließt, die
das Senden von 36-Bit-Anfragen auf dem Systembus 101 zu
der Prozessorschnittstelle verhindert. Beispielsweise ist der Pentium®-Prozessor
auf 32-Bit Anfragen beschränkt.
Daher stellt der IRC-Logikblock 31 sicher, dass Anfragen,
die größer als
32 Bit sind, nicht vom Prozessor 11 überwacht (snooped) werden.
-
9 ist
ein detailliertes Diagramm der Cache-Kohärenz-Steuereinheit
(CCC) 40, die in der Buswandlereinrichtung 15 aus 3 gezeigt
ist. In der Ausführungsform
aus 9 umfasst die CCC 40 eine Snoopergebnis-Wandler-Zustandsmaschine 41, die
mit einem Dirty-Data-Buffer 42 gekoppelt ist, der wiederum
den Datenbus durch die Tri-State-Buffer 43 treibt.
Sobald der IRC 31 der Zustandsmaschine 41 signalisiert
hat, dass ein snoop in den Prozessor 11 getrieben wurde,
stellt der Prozessor einige Taktzyklen später der CCC 40 Signale
zur Verfügung, welche
entweder das Auftreten eines Cache-Hits, eines Cache-Hits auf eine
schmutzige (dirty) Zeile oder einen Cache-Miss anzeigen. Diese Information
wird mittels der Signalleitungen HIT/HITM und ADS signalisiert.
-
Die
Snoopergebnis-Wandler-Zustandsmaschine 41 kommuniziert
auch mit der zum Bus 101 gehörigen In-Order Queue (IOQ).
Die IOQ beobachtet den Systembus und sendet passende Signale an die
Zustandsmaschine und den Tri-State-Buffer 43, so dass die
Daten gemäß dem Signalisierungsprotokoll
von Bus 101 zum Bus 101 übertragen werden können. In
einer Ausführungsform
umfasst die IOQ gewöhnliche
Buszustands-Verfolgungs-Logik.
Die Buszustands-Verfolgungs-Logik stellt einfach Zustandsinformationen
zur korrekten Zeit mittels Systembus 101 dar.
-
In
einer Ausführungsform
umfasst die IOQ eine Vielzahl von Einträgen, wobei jeder Eintrag zu einer
aktuellen Transaktion auf dem Pipelined-Bus übersetzt. Jeder IOQ-Eintrag verfolgt
auch den Zustand der Transaktion. In dieser Weise können alle Busagenten
jede Transaktion verfolgen, wie sie durch die Pipeline auf den Bus
fließt.
Für die
derzeit beschriebene Ausführungsform
hat die IOQ eine Tiefe von "1", da der Bus für die Umwandlung
zu Prozessor 11 depipelined ist.
-
Die
Zustandsmaschine 41 übermittelt
auch einige der Informationen von dem Snoop-Ereignis zurück an die
Busverfolgungslogik von Systembus 101. Im Fall eines Hits
auf eine saubere Zeile oder eines Cache-Miss meldet die Zustandsmaschine 41 dem
Systembus 101 einfach diesen Zustand zu der passenden Zeit.
Aber wenn ein Hit auf eine schmutzige (dirty) Zeile auftritt (d.h.,
der Prozessor prägt
das HITM#-Signal auf), erfordert diese Situation eine spezielle
Handhabe, da Prozessor 11 so entworfen ist, dass er dirty
data sofort ausgibt.
-
Wenn
ein auf einen Snoop Hit folgendes ADS#-Signal von der Zustandsmaschine 41 entdeckt wird,
bedeutet dies, dass der Prozessor 11 sofort dirty data
aussenden wird. Nachdem das Signalisierungsprotokoll von Systembus 101 nicht
erlaubt, Daten in dieser Weise auszugeben, ergreift der Dirty-Data-Buffer 42 die
Daten, wie sie vom Prozessor 11 ausgegeben werden, so dass
sie zu der passenden Zeit auf den Bus 101 gelegt werden
können.
Dieser Vorgang verläuft
natürlich
unter der Steuerung der Snoopergebnis-Wandler-Zustandsmaschine 41. Die Buszustandsverfolgungslogik
in der IOQ ist in der Implementierung von 9 ebenfalls
mit dem Dirty-Data-Buffer 42 gekoppelt, da sie die Information besitzt,
die anzeigt, wenn die dirty data auf den Systembus 101 gesendet
werden können,
um die Transaktion zu vervollständigen.
-
Alternativ
kann die Snoopergebnis-Wandler-Zustandsmaschine 41 das
BRDY#-Signal verwenden, um die vom Prozes sor ausgegebenen Daten
zu drosseln. In dieser alternativen Implementierung kann der Buffer 42 eliminiert
werden, und die Datenbusleitungen von Prozessor 11 können einfach von
den Tristategeräten 43 getristated
werden, bevor sie mit dem Systembus 101 gekoppelt werden.
Bei dieser Ausführungsform
ist zu beachten, dass BRDY# verwendet wird, um anzuzeigen, dass
die aktuell adressierte Einrichtung Daten von dem Pentium®-Prozessor
in Antwort auf einen Schreibbefehl akzeptiert hat. Mit anderen Worten
wirkt die Snoopergebnis-Zustandsmaschine 41 so,
dass sie direkte Datenübertragung
zum Systembus 101 durch Bereitstellung eines passenden
Handshake-Signals ermöglicht.
-
Zur
Wiederholung: der Logikblock 41 nimmt das Snoopergebnis
von Prozessor 11 und gibt es an die IOQ weiter, die in
die Busschnittstelle 101 integriert ist. Im Fall, dass
ein HITM#-Signal vom Prozessor 11 aufgeprägt wird,
wartet die Snoopergebnis-Wandler-Zustandsmaschine 41, bis
das nächste ADS#-Signal
vom Prozessor 11 ausgegeben wurde, da dies den Beginn einer
Ausgabe von dirty data signalisiert.
-
10 veranschaulicht
die Busanfragenprotokollwandler-Logikeinheit 70, die eine
gewöhnliche Zustandsmaschine
und kombinatorische Logik umfasst. Wie gezeigt, umfasst die Logikeinheit 70 eine Busprotokollwandler-Zustandsmaschine 72 und
eine In-Order Queue 71. Die Zustandsmaschine 71 führt erforderliche
Protokollsignalwandlungen zwischen dem Prozessor 11 und
dem Systembus 101 aus. Die In-Order Queue 71 wird
zum Verfolgen des Zustandes beider Busse auf den entgegengesetzten
Seiten der Schnittstelle verwendet. Die IOQ 71 umfasst
gewöhnliche
Logik und Registerspeicher zum Halten von Buszustandsinformation,
wie gemäß dem Protokoll
des Systembusses 101 spezifiziert.
-
Zusätzlich zu
der Beobachtung der Zustands der auf beiden Seiten der Busschnittstelle
gezeigten Signale stellt die Logikeinheit 70 auch die notwendigen
Handshake-Signale bereit, beispielsweise Datenübertragungs-Handshaking. (Zu
beachten ist bei bestimmten Beispielen, dass die Bussignale auf
entgegengesetzten Seiten der Schnittstelle sehr ähnliche Funktionen haben. Beispielsweise
das an den Prozessor 11 gekoppelte ADS#-Signal ist ein
unidirektionales Adressimpulssignal. Die entsprechende Umwandlung
ist in ein ADS#-Signal von Systembus 101, welches bidirektionaler
Natur ist.)
-
Wie
man sieht, konvertiert die Busbeobachtungs-Logikeinheit 0 verschiedene Signale,
die zwischen Systembus 101 und Prozessor 11 übertragen werden.
In diese Gruppe eingeschlossen ist das Adressenparitäts-Fehlersignal
AERR# gemäß einer Ausführungsform
der vorliegenden Erfindung. Ein Agent, der einen Paritätsfehler
entdeckt, prägt
das AERR#-Signal
während
der Fehlerphase der Transaktion auf. Alle Busagenten beobachten
das AERR# und brechen die fehlerhafte Transaktion im nächsten Takt
ab, indem sie die Transaktion aus der In-Order Queue entfernen und
alle verbleibenden, zu der Transaktion gehörigen Phasen löschen. Das
entsprechende Adressenparitäts-Signal
auf der Prozessorseite der Schnittstelle ist APCHK#. Im Fall eines Adressenparitätsfehlers
aktiviert der Prozessor 11 APCHK#.
-
Ebenfalls
auf der Systembusseite der Schnittstelle von Logikeinheit 70 sind
die Signale HIT#/HITM# umfasst. HIT# und HITM# werden verwendet,
um die Gültigkeit
oder Ungültigkeit
einer Zeile im überwachenden
(snooping) Agenten anzuzeigen, ob die Zeile im modifizierten (schmutzigen(dirty))
Zustand im speichernden Agenten ist, oder ob die Snoop-Phase ausgeführt werden
sollte. Die HIT#- und
HITM#-Signale werden verwendet, um die Cache-Kohärenz auf der Systemebene zu
erhalten. Wie zuvor erklärt,
wenn ein überwachender
(snooping) Agent HITM# aufprägt, übernimmt
der Agent Verantwortung für
das Zurückschreiben
der modifizierten Zeile während
der Datenphase (ein implizites Zurückschreiben). Das DEFER#-Signal
wird ebenfalls in der Snoop-Phase gesteuert. Das DEFER# wird aufgehoben,
um anzuzeigen, dass für
die Transaktion eine ordentliche Vervollständigung garantiert werden kann.
Ein Agent, der DEFER# aufprägt,
stellt korrekte Entfernung der Transaktion von der IOQ 71 sicher,
indem er die passende Antwort erzeugt. Die Antwortsignalgruppe einer
Transaktion tritt nach einer Snoop-Phase derselben Transaktion auf
und umfasst die Si gnale RS#[2:0], welche das erforderliche Snoop-Ergebnis
beschreibende Kodierungen bereitstellen. Der Antwortagent ist der
Agent, der verantwortlich für
die Vervollständigung
der obersten Transaktion des IOQ 71 ist. Für Schreib-Transaktionen wird
TRDY# von dem Antwortagent aufgeprägt, um anzuzeigen, dass er
bereit ist, Schreib- oder Zurückschreibdaten
zu akzeptieren.
-
Die
Datenübertragungssignalgruppe
enthält Signale,
die in der Datenphase gesteuert werden und umfasst DBSY#/DRDY# (Datenbus
belegt und Daten bereit). DRDY# zeigt an, dass gültige Daten auf dem Bus liegen
und gelatcht werden müssen.
Der Datenbusbesitzer prägt
DRDY# für
jeden Takt auf, in dem gültige
Daten übertragen
werden sollen. DBSY# wird verwendet, um den Bus vor der ersten DRDY#
und zwischen DRDY#-Aufprägungen
für einen
mehrerer Takte dauernden Datentransfer zu halten. Die Snoop-, Antwort-
und Datenphasensignale werden alle mittels IOQ 71 verfolgt.
-
Die
Busprotokollwandlerzustandsmaschine 72 stellt dem Prozessor 11 Ausgänge bereit,
welche die Nächste-Adresse-Eingabe (NA#) umfassen.
Die NA#-Eingabe wird von einem GErät aufgeprägt, welches anfordert, dass
der nächste
Buszyklus über
die Busse vor Ende des aktuellen Zyklus gesendet werden soll. Das
External-Right-Buffer-Empty(EWBE#)-Signal wird dem Prozessor 11 zur
Verfügung gestellt,
um sicherzustellen, dass Speicheroperationen in der Reihenfolge
der Ausführung
auftreten (d.h., starke Speicherordnung). Dies stellt sicher, dass
alle gepufferten Schreiboperationen vervollständigt werden, indem die nächste Anweisung
ausgeführt
wird. Wie zuvor diskutiert, zeigt das BRDY#-Signal an, dass das
aktuell adressierte Gerät gültige Daten
an den Datenbusanschlüssen
in Antwort auf eine Lesesoperation präsentiert hat, oder dass das
aktuell adressierte Gerät
Daten vom Prozessor in Antwort auf eine Schreiboperation akzeptiert
hat. Ähnlich
ist KEN# das Cachesteuersignal, welches anzeigt, ob ein Speicherplatz,
der gelesen wird, in einem cache-baren Adressraum liegt. Wenn eine
Adresse nicht cache-bar ist, wird die KEN#-Leitung inaktiv geschaltet,
was dem Prozessor mitteilt, keine Cache-Zeilenfüllung aus zuführen.