DE69733384T2 - Prozessoruntersystem für den Gebrauch mit einer universellen Rechnerarchitektur - Google Patents

Prozessoruntersystem für den Gebrauch mit einer universellen Rechnerarchitektur Download PDF

Info

Publication number
DE69733384T2
DE69733384T2 DE69733384T DE69733384T DE69733384T2 DE 69733384 T2 DE69733384 T2 DE 69733384T2 DE 69733384 T DE69733384 T DE 69733384T DE 69733384 T DE69733384 T DE 69733384T DE 69733384 T2 DE69733384 T2 DE 69733384T2
Authority
DE
Germany
Prior art keywords
bus
processor
signal
cache
converter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69733384T
Other languages
English (en)
Other versions
DE69733384D1 (de
Inventor
Matthew A. Beaverton Fisch
Michael W. Beaverton Rhodehamel
Jr. James E. West Linn Jacobson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE69733384D1 publication Critical patent/DE69733384D1/de
Application granted granted Critical
Publication of DE69733384T2 publication Critical patent/DE69733384T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Description

  • 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 12a12c 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.

Claims (8)

  1. Prozessor-Subsystem (200) mit einer Schnittstelle zur Verbindung mit einem Bus (101) eines Computersystems, das einen Host-Prozessor (205) aufweist, wobei der Bus gemäß einem ersten Signalisierungsprotokoll arbeitet, und das Subsystem folgendes umfasst: einen Prozessor (11), der gemäß einem zweiten Signalisierungsprotokoll arbeitet, das sich vom ersten Signalisierungsprotokoll unterscheidet; eine Buswandlereinrichtung (15), die an den Prozessor (11) gekoppelt ist, die das erste Signalisierungsprotokoll des Busses (101) in das zweite Signalisierungsprotokoll des Prozessors (11) umwandelt, und umgekehrt, so dass sowohl der Host-Prozessor (205) als auch der Prozessor (11) in der Lage sind, Information auf den Bus (101) zu übertragen, dadurch gekennzeichnet, dass: die Buswandlereinrichtung (15) eine Cache-Kohärenz-Steuereinheit (40) umfasst, die ein Signal vom Prozessor (11) empfängt, das entweder einen Cache-Hit, einen Cache-Hit auf eine modifizierte Zeile, oder einen Cache-Miss anzeigt, wobei die Cache-Kohärenz-Einheit (40) einen Zwischenspeicher aufweist, der dirty data in Reaktion auf die Ausgabe des Cache-Hits auf die modifizierte Zeile vom Prozessor (11) speichert, wobei die dirty data dann durch die Cache-Kohärenz-Steuereinheit (40) zum Bus (101) gemäß dem ersten Signalisierungsprotokoll gesendet werden.
  2. Prozessor-Subsystem nach Anspruch 1, das ferner folgendes umfasst: wenigstens einen Cache-Speicher (12a12c), der mit dem Prozessor gekoppelt ist.
  3. Prozessor-Subsystem nach Anspruch 2, bei dem der Prozessor, die Buswandlereinrichtung und wenigstens ein Cache-Speicher innerhalb eines Moduls enthalten sind, wobei das Modul entweder als symmetrischer Agent oder als Prioritätsagent gemäß einem Distributed-Arbitration-Verfahren des Busses klassifiziert ist.
  4. Prozessor-Subsystem nach Anspruch 3, bei dem die Buswandlereinrichtung eine Arbitration-Wandlerlogik (60) aufweist, die Besitz über den Bus zugunsten des Prozessors gemäß einem zirkularen Prioritätsalgorithmus erhält.
  5. Prozessor-Subsystem nach Anspruch 4, bei dem die Buswandlereinrichtung ferner folgendes umfasst: einen Wandler (20) für ausgehende Anfragen, der jede Anfrage vom Prozessor in erste und zweite Anfragezyklen auf dem Bus umwandelt.
  6. Prozessor-Subsystem nach Anspruch 1, bei dem der Bus einem Pipelined-Bus umfasst.
  7. Prozessor-Subsystem nach Anspruch 1, bei dem die Buswandlereinrichtung ferner folgendes umfasst: einen Wandler (30) für eingehende Anfragen, der eine Transaktion auf dem Bus identifiziert, die vom Prozessor lauschbar ist, wobei die Transaktion vom Wandler für eingehende Anfragen dem Prozessor eingegeben wird.
  8. Prozessor-Subsystem nach Anspruch 5, bei dem die Buswandlereinrichtung ferner folgendes umfasst: einen Bussperrwandler (50), der ein vom Prozessor im Zusammenhang mit einer atomaren Transaktion erzeugtes erstes Sperrsignal in ein zweites Sperrsignal umwandelt, das auf dem Bus gemäß dem ersten Signalisierungsprotokoll bereitgestellt wird.
DE69733384T 1996-07-03 1997-06-27 Prozessoruntersystem für den Gebrauch mit einer universellen Rechnerarchitektur Expired - Fee Related DE69733384T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US675854 1996-07-03
US08/675,854 US5764934A (en) 1996-07-03 1996-07-03 Processor subsystem for use with a universal computer architecture

Publications (2)

Publication Number Publication Date
DE69733384D1 DE69733384D1 (de) 2005-07-07
DE69733384T2 true DE69733384T2 (de) 2006-04-27

Family

ID=24712229

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69733384T Expired - Fee Related DE69733384T2 (de) 1996-07-03 1997-06-27 Prozessoruntersystem für den Gebrauch mit einer universellen Rechnerarchitektur

Country Status (9)

Country Link
US (1) US5764934A (de)
EP (1) EP0817089B1 (de)
JP (1) JPH113313A (de)
KR (1) KR980010805A (de)
CN (1) CN1176434A (de)
BR (1) BR9703861A (de)
CZ (1) CZ211097A3 (de)
DE (1) DE69733384T2 (de)
MY (1) MY114584A (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822549A (en) * 1996-07-15 1998-10-13 Micron Electronics, Inc. Computer system and bus controller for controlling access to a computer bus
US5905876A (en) * 1996-12-16 1999-05-18 Intel Corporation Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system
US6430654B1 (en) * 1998-01-21 2002-08-06 Sun Microsystems, Inc. Apparatus and method for distributed non-blocking multi-level cache
US6480952B2 (en) 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
US6308255B1 (en) * 1998-05-26 2001-10-23 Advanced Micro Devices, Inc. Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system
US6053346A (en) 1998-06-08 2000-04-25 3M Innovative Properties Company Reusable one-piece storage and shipping container
US6266744B1 (en) 1999-05-18 2001-07-24 Advanced Micro Devices, Inc. Store to load forwarding using a dependency link file
US6473832B1 (en) 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Load/store unit having pre-cache and post-cache queues for low latency load memory operations
US6473837B1 (en) 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Snoop resynchronization mechanism to preserve read ordering
US6427193B1 (en) * 1999-05-18 2002-07-30 Advanced Micro Devices, Inc. Deadlock avoidance using exponential backoff
US6609169B1 (en) 1999-06-14 2003-08-19 Jay Powell Solid-state audio-video playback system
US7231411B1 (en) 1999-09-15 2007-06-12 Koninklijke Philips Electronics N.V. Removable card system with downloadable agent for communicating with a digital television receiver or other host device
US6658502B1 (en) * 2000-06-13 2003-12-02 Koninklijke Philips Electronics N.V. Multi-channel and multi-modal direct memory access controller for optimizing performance of host bus
JP2002091725A (ja) * 2000-09-11 2002-03-29 Canon Inc 情報処理装置及びシステム及びその制御方法と周辺装置とプリンタドライバ
JP2002091745A (ja) * 2000-09-11 2002-03-29 Canon Inc 印刷制御装置及びシステム及びその制御方法と印刷装置とプリンタドライバ
JP2002086853A (ja) 2000-09-11 2002-03-26 Canon Inc 情報処理装置及びシステム及びその制御方法と周辺装置とプリンタドライバ
JP2002091724A (ja) * 2000-09-11 2002-03-29 Canon Inc 情報処理装置及びシステム及びその情報処理方法とデバイスドライバ
US7162620B2 (en) * 2002-03-13 2007-01-09 Sony Computer Entertainment Inc. Methods and apparatus for multi-processing execution of computer instructions
KR100703357B1 (ko) * 2003-08-16 2007-04-03 삼성전자주식회사 보조제어부를 구비하는 휴대용 단말기의 캐시메모리구현장치 및 방법
US20050210229A1 (en) * 2004-03-22 2005-09-22 Prashant Sethi Method and system for configuration of processor integrated devices in multi-processor systems
US7469312B2 (en) * 2005-02-24 2008-12-23 International Business Machines Corporation Computer system bus bridge
US20060190655A1 (en) * 2005-02-24 2006-08-24 International Business Machines Corporation Apparatus and method for transaction tag mapping between bus domains
US7710741B1 (en) * 2005-05-03 2010-05-04 Nvidia Corporation Reconfigurable graphics processing system
CN113721729B (zh) * 2017-03-28 2024-05-14 上海山里智能科技有限公司 一种综合计算系统
US10649505B2 (en) 2018-04-11 2020-05-12 Dell Products, Lp Adaptable graphics board with a reconfigurable I/O module board for use in information handling systems
US10254793B1 (en) 2018-04-11 2019-04-09 Dell Products, Lp Adaptable graphics board form factor with adjacent orientation to a motherboard for use with plural external I/O requirements in information handling systems
US10852783B2 (en) 2018-04-11 2020-12-01 Dell Products, Lp Relative height adjustable connector system for motherboard to graphics board transition with a plating alternative in information handling systems
US10852784B2 (en) 2018-04-11 2020-12-01 Dell Products, Lp Relative height adjustable connector system for motherboard to graphics board transition in information handling systems
US11126464B2 (en) 2018-07-27 2021-09-21 Vmware, Inc. Using cache coherent FPGAS to accelerate remote memory write-back
US11947458B2 (en) * 2018-07-27 2024-04-02 Vmware, Inc. Using cache coherent FPGAS to track dirty cache lines
US10761984B2 (en) 2018-07-27 2020-09-01 Vmware, Inc. Using cache coherent FPGAS to accelerate remote access
US11231949B2 (en) 2018-07-27 2022-01-25 Vmware, Inc. Using cache coherent FPGAS to accelerate post-copy migration
US11099871B2 (en) 2018-07-27 2021-08-24 Vmware, Inc. Using cache coherent FPGAS to accelerate live migration of virtual machines
US20230251980A1 (en) * 2022-02-10 2023-08-10 Mellanox Technologies, Ltd. Devices, methods, and systems for disaggregated memory resources in a computing environment

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
IT1230238B (it) * 1989-06-08 1991-10-18 Bull Hn Information Syst Adattatore di interfaccia da vme a multibus ii.
US5297272A (en) * 1989-08-02 1994-03-22 Advanced Logic Research, Inc. Apparatus for automatically disabling and isolating a computer's original processor upon installation of a processor upgrade card
US5412795A (en) * 1992-02-25 1995-05-02 Micral, Inc. State machine having a variable timing mechanism for varying the duration of logical output states of the state machine based on variation in the clock frequency
US5490279A (en) * 1993-05-21 1996-02-06 Intel Corporation Method and apparatus for operating a single CPU computer system as a multiprocessor system
US5586270A (en) * 1993-09-30 1996-12-17 Intel Corporation Method and apparatus for upgrading a central processing unit and existing memory structure in a computer system
TW400483B (en) * 1994-03-01 2000-08-01 Intel Corp High performance symmetric arbitration protocol with support for I/O requirements
AU1989395A (en) * 1994-03-14 1995-10-03 Apple Computer, Inc. A peripheral processor card for upgrading a computer
WO1996003697A1 (en) * 1994-07-21 1996-02-08 Apple Computer, Inc. Method for semaphore communication between incompatible bus locking architectures
US5555510A (en) * 1994-08-02 1996-09-10 Intel Corporation Automatic computer card insertion and removal algorithm

Also Published As

Publication number Publication date
DE69733384D1 (de) 2005-07-07
JPH113313A (ja) 1999-01-06
BR9703861A (pt) 1998-09-08
US5764934A (en) 1998-06-09
EP0817089B1 (de) 2005-06-01
CN1176434A (zh) 1998-03-18
CZ211097A3 (cs) 1998-03-18
EP0817089A2 (de) 1998-01-07
MY114584A (en) 2002-11-30
KR980010805A (ko) 1998-04-30
EP0817089A3 (de) 1998-01-21

Similar Documents

Publication Publication Date Title
DE69733384T2 (de) Prozessoruntersystem für den Gebrauch mit einer universellen Rechnerarchitektur
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE69016837T2 (de) VME-Multibus II-Schnittstellen-Anpassungsbaustein.
DE3751426T2 (de) Busschnittstellenschaltung für digitalen Datenprozessor.
DE3889366T2 (de) Interface für ein Rechnersystem mit reduziertem Befehlssatz.
DE69030640T2 (de) Multiprozessorarbitrierung in für Einzelprozessor bestimmten Arbitrierungsschemas
EP0559409B1 (de) Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem
DE3486299T2 (de) Bus-Arbitrierungssystem.
DE60037036T2 (de) Vier-gepumpte busarchitektur-/protokoll
US5896513A (en) Computer system providing a universal architecture adaptive to a variety of processor types and bus protocols
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
EP0535696B1 (de) Vorrichtung zur Vermeidung von Prozessorblockierungen in einem Multiprozessorsystem
DE60304455T2 (de) Usb host controller
DE3485980T2 (de) Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem.
DE60125112T2 (de) PCI-Arbiter mit unter Spannung stellbarer Steuerungsunterstützung
DE102009061252B3 (de) Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes
DE69724884T2 (de) Gerät und Verfahren zur positiven und subtraktiven Adressdekodierung auf einem Bus
DE69030688T2 (de) Halte- und Verriegelungsschaltung für Mikroprozessor
DE10234991A1 (de) Hostcontrollerdiagnose für einen seriellen Bus
DE69726302T2 (de) Busschnittstellensteuerungsschaltung
DE4417068A1 (de) Verfahren und Einrichtung zum Betreiben eines Einzel-Prozessor-Computersystems als Mehr-Prozessor-System
US5845107A (en) Signaling protocol conversion between a processor and a high-performance system bus
DE68920443T2 (de) Systembus mit multiplexbetriebenen steuer-kennzeichnungsinformationen und daten.
DE69919584T2 (de) Betriebsmittelsteuerung in einer datenverarbeitungsanlage

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee