DE60013470T2 - Gerät zur initialisierung einer rechnerschnittstelle - Google Patents

Gerät zur initialisierung einer rechnerschnittstelle Download PDF

Info

Publication number
DE60013470T2
DE60013470T2 DE60013470T DE60013470T DE60013470T2 DE 60013470 T2 DE60013470 T2 DE 60013470T2 DE 60013470 T DE60013470 T DE 60013470T DE 60013470 T DE60013470 T DE 60013470T DE 60013470 T2 DE60013470 T2 DE 60013470T2
Authority
DE
Germany
Prior art keywords
interface
hub
agent
computer system
coupled
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 - Lifetime
Application number
DE60013470T
Other languages
English (en)
Other versions
DE60013470D1 (de
Inventor
J. David HARRIMAN
Jasmin Ajanovic
Serafin Garcia
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 DE60013470D1 publication Critical patent/DE60013470D1/de
Application granted granted Critical
Publication of DE60013470T2 publication Critical patent/DE60013470T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function

Description

  • Die vorliegende Erfindung betrifft das Gebiet der Computersysteme. Im Besonderen betrifft die vorliegende Erfindung das Gebiet der Detektierungsvorrichtungen, die mit einer Hub- bzw. Verteilerschnittstelle in einem Computersystem gekoppelt sind.
  • STAND DER TECHNIK
  • Frühere Systeme basieren für gewöhnlich auf Standardbussen wie etwa dem Peripheral Component Inteconnect (PCI) Bus gemäß der Specification Revision 2.1, entwickelt von der PCI Special Interest Group, Portland, Oregon, USA, der eine Kommunikation zwischen Chipsatzkomponenten eines Computersystems ermöglicht. Zum Beispiel kann eine von einem Prozessor stammende Transaktion, die für ein Plattenlaufwerk gedacht ist, zuerst einer ersten Chipsatzkomponente zugeführt werden, die als Intermediär zwischen dem Prozessorbus und einem PCI-Bus fungiert. Die erste Chipsatzkomponente stellt die Transaktion in der Folge über den PCI-Bus an eine zweite System-Chipsatzkomponente zu, welche die Transaktion danach an das Plattenlaufwerk weiterleitet.
  • Busse, wie etwa der PCI-Bus, sorgen für die Kommunikation mit anderen Bausteinen bzw. Vorrichtungen von Computersystemen, wie etwa mit Grafiksteuereinheiten und Netzwerkadaptern. Da Busse wie der PCI-Bus eine Schnittstelle zwischen einer Vielzahl von Komponentenarten vorsehen müssen, die jeweils verschiedenartige Anforderungen aufweisen, sind die Busse nicht unbedingt dahingehend optimiert, dass sie eine Kommunikation zwischen Chipsatz-Komponenten ermöglichen. Hersteller von Chipsätzen, die auf Standardbusse bzw. genormte Busse wie etwa den PCI-Bus setzen, müssen ferner die Busstandards erfüllen, um die Kompatibilität mit anderen Komponenten zu gewährleisten, und wobei sie nicht die Freiheit besitzen, in Bezug auf die Art und Weise der Kommunikation der Chipsatz-Komponenten untereinander wesentlichen Änderungen vorzunehmen.
  • Ein weiterer Aspekt, mit dem Hersteller von Chipsatz-Komponenten in Bezug auf die Entwicklung und Produktion von Chipsatz-Komponentenkonfrontiert sind, wie etwa gemäß der allgemeinen Offenbarung in dem U.S. Patent US-A-5.675.813, ist die Notwendigkeit, bei der Verwendung von Bussen wie etwa dem PCI-Bus zur Kommunikation zwischen Chipsatz-Komponenten standardisierten Speise- und Signalisierungsspannungen zu entsprechen, wodurch die Hersteller auf bestimmte Entwicklungspraktiken und Fertigungstechnologien festgelegt sind. Somit wäre es wünschenswert, eine flexible Punkt-zu-Punkt-Schnittstelle vorzusehen, die eine optimale Kommunikation zwischen Chipsatz-Komponenten vorsieht. Darüber hinaus wäre ein Mechanismus zur Initialisierung einer derartigen Schnittstelle wünschenswert, wobei das Vorhandensein eines mit dem Chipsatz gekoppelten Bausteins über die Schnittstelle festgestellt wird. Ferner wäre es vorteilhaft, Bausteinidentifikationsnummern zuzuweisen, wenn ein Baustein detektiert wird, so dass ein Prozessor die Bausteine abrufen und lesen kann.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß der vorliegenden Erfindung ein Computersystem gemäß dem gegenständlichen Anspruch 1. Weitere Ausführungsbeispiele der vorliegenden Erfindung sind in den anhängigen Unteransprüchen ausgeführt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird in den Abbildungen der beigefügten Zeichnungen beispielhaft und ohne einzuschränken veranschaulicht, wobei übereinstimmende Elemente darin mit den gleichen Bezugsziffern bezeichnet sind. In den Zeichnungen zeigen:
  • 1 ein Blockdiagramm eines Ausführungsbeispiels eines Computersystems;
  • 2 ein Blockdiagramm eines Ausführungsbeispiels von über eine Verteilerschnittstelle verbundenen Agenten;
  • 3 ein Blockdiagramm eines Ausführungsbeispiels eines Anwesenheitsdetektierungsmechanismus;
  • 4 ein Flussdiagramm eines Ausführungsbeispiels der Initialisierung einer Verteilerschnittstelle;
  • 5 ein Zeitsteuerungsdiagramm einer Split-Transaction, die durch ein Ausführungsbeispiel einer Schnittstelle implementiert wird;
  • 6 ein Zeitsteuerungsdiagramm der Arbitrierung und Übertragung von Datenpaketen gemäß einem Ausführungsbeispiel;
  • 7 ein Zeitsteuerungsdiagramm der Flusssteuerung von Datenpaketen gemäß einem Ausführungsbeispiel;
  • 8 ein Flussdiagramm, welches die Schritte der Reaktion auf Flusssteuerungsoperationen gemäß einem Ausführungsbeispiel beschreibt;
  • 9 die physikalische Signalschnittstelle gemäß einem Ausführungsbeispiel; und
  • 10 ein Zeitsteuerungsdiagramm der Quellen-synchronen Taktung gemäß einem Ausführungsbeispiel.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Beschrieben werden ein Verfahren und eine Vorrichtung zur Initialisierung einer Hub- bzw. einer Verteilerschnittstelle. In der folgenden genauen Beschreibung der vorliegenden Erfindung werden zahlreiche spezifische Einzelheiten ausgeführt, um ein umfassendes Verständnis der vorliegenden Erfindung zu vermitteln. Für den Fachmann auf dem Gebiet ist es jedoch offensichtlich, dass die vorliegende Erfindung auch ohne die spezifischen Einzelheiten ausgeführt werden kann. In anderen Fällen sind allgemein bekannte Strukturen und Bausteine bzw. Vorrichtungen in Blockdiagrammform und nicht im Detail dargestellt, um die vorliegende Erfindung nicht unnötig zu verschleiern.
  • Bestimmte Abschnitte der folgenden genauen Beschreibung sind als Algorithmen und symbolische Darstellungen der Operationen an Datenbits in einem Computerspeicher vorgesehen. Diese algorithmischen Beschreibungen und Darstellungen werden von Fachleuten auf dem Gebiet der Datenverarbeitung eingesetzt, um den Kern der eigenen Arbeiten anderen Fachleuten auf dem Gebiet zu vermitteln. Als Algorithmus gilt hierin und allgemein eine in sich widerspruchsfreie Schrittfolge, die zu einem gewünschten Ergebnis führt. Die Schritte erfordern physikalische Manipulationen physikalischer Größen. Für gewöhnlich jedoch nicht unbedingt sind diese Größen in Form von elektrischen oder magnetischen Signalen vorgesehen, die gespeichert, übertragen, verknüpft, verglichen und anderweitig behandelt werden können. Überwiegend aus Gründen des allgemeinen Gebrauchs hat es sich zeitweise als praktisch erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Terme, Ziffern oder dergleichen zu bezeichnen.
  • Hiermit wird jedoch festgestellt, dass all diese und ähnliche Begriffe den entsprechenden physikalischen Größen zugeordnet werden müssen und lediglich praktische Bezeichnungen für diese Größen darstellen. Sofern hierin in der Folge keine anders lautenden Angaben gemacht werden, wird hiermit festgestellt, dass in der vorliegenden Erfindung Erwähnungen der Begriffe wie "verarbeiten" oder "berechnen" oder "errechnen" oder "bestimmen" oder "anzeigen" oder dergleichen die Handlung bzw. Aktion und die Prozesse eines Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung betreffen, die Daten behandelt und transformiert, die als physikalische (elektronische) Größen in den Registern und Speicherndes Computersystems dargstellt sind, und zwar in andere Daten, die in ähnlicher Weise als physikalische Größen in den Speichern oder Registern des Computersystems oder anderen derartigen Informationsspeicher-, Übertragungs- oder Anzeigevorrichtungen dargestellt werden.
  • Die vorliegende Erfindung betrifft ferner eine Vorrichtung zur Ausführung der hierin genannten Operationen. Die Vorrichtung kann speziell für die erforderlichen Zwecke konstruiert sein oder einen Allzweckcomputer umfassen, der selektiv durch ein in dem Computer gespeichertes Computerprogramm aktiviert oder neu konfiguriert wird. Ein derartiges Computerprogramm kann in einem Computer lesbaren Speichermedium gespeichert werden, wie zum Beispiel unter anderem auf jeder Art von Plattenspeicher, wie etwa Floppy-Disks, optischen Disks, CD-ROMs und magnetooptischen Disks, Nur-Lese-Speichern (ROMs), Direktzugriffsspeichern (RAMs), EPROMs, EEPROMs, magnetischen oder optischen Karten oder jeder anderen Medienart, die sich zum Speichern elektronischer Befehle eignet, und wobei diese jeweils mit einem Computersystembus gekoppelt sind.
  • Die hierin präsentierten Algorithmen und Anzeigen beziehen sich nicht inhärent auf einen speziellen Computer oder eine sonstige Vorrichtung. In Verbindung mit Programmen gemäß den Lehren hierin können verschiedene Allzweckvorrichtungen verwendet werden, wobei es aber auch praktisch sein kann, mehrere spezielle Vorrichtungen zur Ausführung der erforderlichen Verfahrensschritte zu gestalten. Die erforderliche Struktur für eine Vielzahl dieser Vorrichtungen wird aus der folgenden Beschreibung deutlich. Darüber hinaus wird die vorliegende Erfindung nicht in Bezug auf eine bestimmte Programmiersprache beschrieben. Hiermit wird festgestellt, dass eine Vielzahl von Programmiersprachen zur Implementierung der hierin beschriebenen Lehren verwendet werden kann.
  • Die Programme, die ausführbare Anweisungen aufweisen, können durch eine oder mehrere Programmiervorrichtungen (z.B. eine Zentraleinheit (CPU), einen Prozessor, eine Steuereinheit, etc.) in einem oder mehreren Personalcomputer-, Server-, Workstation- und anderen Systemen ausgeführt werden.
  • Die Abbildung aus 1 zeigt ein Blockdiagramm eines Ausführungsbeispiels eines Computersystems 100. Das Computersystem 100 weist eine mit dem Bus 105 gekoppelte Zentraleinheit (CPU) 102 auf. In einem Ausführungsbeispiel handelt es sich bei der CPU 102 um einen Prozessor der Pentium® Prozessorfamilie, einschließlich der Pentium® II Prozessorfamilie und der Pentium® III Prozessoren, die von der Intel Corporation, Santa Clara, Kalifornien, USA, erhältlich sind. Alternativ können auch andere CPUs verwendet werden.
  • Ferner ist ein Speichersteuereinheits-Hub (MCH) 110 mit dem Bus 105 gekoppelt. Der MCH 110 kann eine Speichersteuereinheit 112 aufweisen, die mit einem Hauptsystemspeicher 115 gekoppelt ist. Der Hauptsystemspeicher 115 speichert Datensequenzen der Anweisungen, die von der CPU 102 oder einer anderen Vorrichtung in dem System 100 ausgeführt werden. In einem Ausführungsbeispiel weist der Hauptsystemspeicher 115 einen dynamischen Direktzugriffsspeicher (DRAM) auf, wobei der Hauptsystemspeicher 115 jedoch auch unter Verwendung anderer Speicherarten implementiert werden kann. Zusätzliche Bausteine können ebenfalls mit dem Bus 105 gekoppelt werden, wie zum Beispiel mehrere CPUs und/oder mehrere Systemspeicher.
  • Der MCH 110 kann auch eine mit einem Grafikbeschleuniger 130 gekoppelte Grafikschnittstelle 113 aufweisen. In einem Ausführungsbeispiel ist die Grafikschnittstelle 113 über einen Accelerated Graphics Port (AGP) mit einem Grafikbeschleuniger 130 gekoppelt, wobei der Port gemäß einer AGP Specification Revision 2.0 Schnittstelle arbeitet, die von der Intel Corporation, Santa Clara, Kalifornien, USA, entwickelt worden ist. In weiteren Ausführungsbeispielen kann die Grafikschnittstelle 113 unter Verwendung einer Hub-Schnittstellensteuereinheit 120 implementiert werden, die mit einem Grafikbeschleuniger 130 gekoppelt ist.
  • Der MCH 110 kann ferner eine Hub-Schnittstelle 120 aufweisen, die mit einer Brücke 125 gekoppelt ist. Die Brücke 125 kann eine Schnittstelle zwischen dem MCH 110 und einem Systembus vorsehen. Die Brücke ist über die Hub-Schnittstelle A mit dem MCH 110 gekoppelt. Ferner ist der MCH 110 über die Hub-Schnittstelle B mit einem Ein-/Ausgabe-Steuerungs-Hub (ICH) 140 gekoppelt. Der ICH 140 sieht eine Schnittstelle zu den Ein-/Ausgabe-Bausteinen (E/A-Bausteine) in dem Computersystem 100 vor. Der ICH 140 kann eine oder mehrere Schnittstellen-Steuereinheiten aufweisen. Zum Beispiel kann eine Schnittstellen-Steuereinheit 120 über die Hub-Schnittstelle C mit einer Netzwerkschnittstelle 160 verbunden werden. Darüber hinaus kann eine weitere Schnittstellen-Steuereinheit 120 mit einem Faserkanal 165 gekoppelt werden.
  • Über eine Hub-Schnittstelle miteinander gekoppelte Bausteine bzw. Vorrichtungen können als Hub-Agenten bezeichnet werden. Ein Hub-Agent, der in einem Computersystem 100 in Bezug auf die Bewegungsdistanz näher an der CPU 102 positionierter Hub-Agent kann als ein oberhalb liegender bzw. Upstream-Agent bezeichnet werden, während ein weiter von der CPU 102 entfernter Agent als unterhalb liegender bzw. Downstream-Agent bezeichnet wird. Die Brücke 125 liegt zum Beispiel unterhalb des MCH 110, während der ICH 140 unterhalb des MCH 110 liegt, und wobei die Netzwerkschnittstelle 160 und der Faserkanal 165 Downstream-Agenten in Bezug auf MCH 110 und ICH 140 sind. Der Durchschnittsfachmann auf dem Gebiet erkennt allerdings, dass die Hub-Schnittstellen 120 mit anderen Bausteinen bzw.
  • Vorrichtungen gekoppelt werden können.
  • Der ICH 140 kann ferner eine Brücke 146 aufweisen, die eine herkömmliche Schnittstelle zu einem PCI-Bus vorsieht. Die Brücke 146 sieht einen Datenpfad zwischen der CPU 102 und Pexipheriegeräten vor. Zu den Bausteinen bzw. Vorrichtungen, die mit dem PCI-Bus 142 gekoppelt werden können, zählen eine Audio-Vorrichtung 150 und ein Plattenlaufwerk 155. Der Durchschnittsfachmann auf dem Gebiet erkennt jedoch, dass auch andere Vorrichtungen mit dem PCI-Bus 142 gekoppelt werden können. Darüber hinaus erkennt der Durchschnittsfachmann, dass die CPU 102 und der MCH 110 kombiniert werden können, so dass ein einzelner Chip gebildet wird. Ferner kann in anderen Ausführungsbeispielen ein Grafikbeschleuniger 140 in dem MCH 110 vorgesehen sein.
  • Die Abbildung aus 2 zeigt ein Blockdiagramm eines Ausführungsbeispiels einer Hub-Schnittstelle, die einen Upstream-Agenten 220 und einen Downstream-Agenten 230 koppelt.
  • Eine Hub-Schnittstelle ist ein Mechanismus zur Verbindung von Hauptbaublöcken der Kernlogik eines Computersystems, wie etwa des Systems 100, über einen verhältnismäßig schmalen Datenpfad mit verhältnismäßig großer Bandbreite. Zwischen den einzelnen Komponenten in einem Computersystem 100, wie etwa zwischen dem MCH 110 und der Brücke 125, wird die Verbindung von Punkt zu Punkt implementiert. Gemäß einem Ausführungsbeispiel erfolgt die Informationsübertragung über die Hub-Schnittstelle unter Verwendung eines Paket-basierten Split-Transaction-Protokolls. Hub-Schnittstellen werden nachstehend im Text in näheren Einzelheiten beschrieben.
  • Die Hub-Schnittstelle weist einen bidirektionalen Datenpfad 251, ein Stoppsignal, ein Signal Anforderung A (RQA) 254 und ein Signal Anforderung B (RQB) 258 sowie ein Systemrücksetzsignal 255 auf. Gemäß einem Ausführungsbeispiel ist der Datenpfad acht Bit breit. Die Datenpfadbreite kann jede Breite aufweisen, die einer Potenz von 2 entspricht. Das Stoppsignal 243 ist ein für die Flusssteuerung verwendetes bidirektionales Signal. Das Signal RQA 254 und das Signal RQB 258 sind Anforderungssignale, die bei normalem Systembetrieb geltend gemacht werden, um die Steuerung der Hub-Schnittstelle anzufordern.
  • Darüber hinaus kann das Signal RQB 258 während einem Zurücksetzen des Systems verwendet werden, um zu detektieren, ob ein Downstream-Agent 230 tatsächlich mit einem Upstream-Agent 220 gekoppelt ist. Die Hub-Schnittstelle kann ferner weitere Signalpfade aufweisen, wie etwa ein Taktsignal, einen oder mehr Daten-Strobes, die mit der vierfachen Frequenz des Taktsignals arbeiten, und ein Spannungsreferenzsignal (nicht abgebildet). Alternativ können die Daten-Strobes mit einem Vielfachen des Taktsignals als vier arbeiten. Die Daten-Strobes können zum Beispiel eine Rate aufweisen, die achtmal so hoch ist wie die des Systemtaktsignals.
  • Die Hub-Schnittstelle ist mit Schnittstellen-Steuereinheiten 120 und 232 in dem Upstream-Agent 220 und entsprechend dem Downstream-Agent 230 gekoppelt. Die Schnittstellen-Steuereinheiten 120 und 232 steuern die Interaktion zwischen den Hub-Schnittstellenagenten. Die Schnittstellen-Steuereinheit 120 weist ein Anwesenheitsdetektierungsmodul 225 auf, das feststellt, ob der Downstream-Agent 230 vorhanden ist. Die Schnittstellen-Steuereinheit 232 weist eine Anwesenheitsbestätigungseinheit 235 auf, die ein Signal an das Anwesenheitsdetektierungsmodul 225 übermittelt, wobei das Vorhandensein des Downstream-Agenten 230 bestätigt wird. Gemäß einem Ausführungsbeispiel wird der Anwesenheitsdetektierungsprozess während der Systeminitialisierung ausgeführt. Die Systeminitialisierung wird an einer Hub-Schnittstele detektiert, wenn das Rücksetzsignal 255 deaktiviert wird.
  • Der Upstream-Agent 220 weist ferner eine Steuerlogik 228 auf. Die Steuerlogik 228 empfängt Signale von dem Anwesenheitsdetektierungsmodul 225, das identifiziert, ob eine Vorrichtung mit dem Upstream-Agenten 220 gekoppelt ist. Die Steuerlogik 228 speichert ferner eine Zuweisung einer Vorrichtungsidentifikationsnummer (ID) an den Upstream-Agenten 220. Die Steuerlogik 228 speichert diese Informationen und spricht auf die CPU 102 immer an, wenn die CPU 102 die Vorrichtungs-ID für den die Steuerlogik 228 aufweisenden Agenten adressiert.
  • Die Abbildung aus 3 zeigt ein Blockdiagramm eines Ausführungsbeispiels des Mechanismus zur Detektierung des Vorhandenseins einer Vorrichtung zwischen dem Anwesenheitsdetektierungsmodul 225 und der Anwesenheitsbestätigungseinheit 235. Das Anwesenheitsdetektierungsmodul 225 und die Anwesenheitsbestätigungseinheit 235 sind über das Signal RQB 258 gekoppelt. Gemäß einem Ausführungsbeispiel weisen das Anwesenheitsdetektierungsmodul 225 und die Anwesenheitsbestätigungseinheit 235 die entsprechenden Widerstände R1 und R2 auf. R1 ist ein Pull-Up-Widerstand, der mit der Leitungsspannung VCC gekoppelt ist, während der Widerstand R2 ein Pull-Down-Widerstand ist, der mit der Erde gekoppelt ist. Ferner ist der Widerstand R1 mit einem kleinen Widerstand im Vergleich zu dem Widerstand R2 gestaltet.
  • Während einer Schnittstelleninitialisierung (d.h. der Deaktivierung des Rücksetzsignals 255) überwacht die Steuerlogik 228 das Signal RQB 258, um zu bestimmen, ob ein Downstream-Agent 230 mit dem Upstream-Agent 220 gekoppelt ist. Gemäß einem Ausführungsbeispiel tastet die Steuerlogik 228 das Signal RQB 258 an einer inaktiv werdenden Flanke einer Zurücksetzung beim Einschalten ab, um zu bestimmen, ob ein Downstream-Agent vorhanden ist. Wenn kein Downstream-Agent 230 vorhanden ist, wird das RQB-Signal 258 hoch gezogen, was dazu führt, dass ein hoher Logikwert an die Steuerlogik 228 übermittelt wird. Wenn ein Downstream-Agent 230 detektiert wird, wird das Signal RQB 258 auf die Erde gezogen, da der Widerstand R1 im Vergleich zu R2 einen hohen Widerstand aufweist. In der Folge wird ein niedriger Logikwert an die Steuerlogik 228 übermittelt, der darstellt, dass der Upstream-Agent 230 vorhanden ist. Der Durchschnittsfachmann wird erkennen, dass die Widerstände R1 und R2 durch andere Vorrichtungen bzw. Bausteine ersetzt werden können, wie zum Beispiel durch Transistoren. Ferner können das Anwesenheitsdetektierungsmodul 225 und die Anwesenheitsbestätigungseinheit 235 so konfiguriert werden, dass immer dann ein hoher Logikwert übermittelt wird, wenn eine Vorrichtung detektiert wird, und wobei ein niedriger Logikwert übermittelt wird, wenn keine Vorrichtung vorhanden ist.
  • Nach der Systeminitialisierung ruft die CPU 102 die Steuerlogik 228 in jedem Upstream-Agenten 220 ab, um zu bestimmen, ob ein Downstream-Agent 230 mit jedem speziellen Upstream-Agenten 220 gekoppelt ist. Wenn kein Agent detektiert wird, spricht die Steuerlogik 228 nicht auf die Abfrageanforderung der CPU 102 an. Wenn ferner keine Vorrichtung an dem Upstream-Agenten 220 detektiert wird, verwaltet die CPU 102 den Upstream-Agenten 220 als würde dieser nicht existieren. Wenn ein Downstream-Agent 230 detektiert wird, empfängt die CPU 102 eine Antwort von dem Upstream-Agenten und ruft in der Folge den Downstream-Agenten ab.
  • Gemäß einem Ausführungsbeispiel werden allen Komponenten in einem Computersystem 100 bei der Konfiguration Vorrichtungs-ID-Nummern zugewiesen. Zusätzlich sind die Komponenten-Vorrichtungs-ID-Nummern auf MCH 110 und ICH 140 aufgeteilt. Zum Beispiel können Komponenten in dem MCH 110 die Vorrichtungs-ID-Nummern zwischen 0 und 7 zugewiesen werden, während den Komponenten in dem ICH 140 die Vorrichtungs-ID-Nummern zwischen 8 und 31 zugewiesen werden. Wenn ein Upstream-Agent 220 ferner logische interne Bausteine bzw. Vorrichtungen auf den Downstream-Agenten abbildet, verwendet der Upstream-Agent 220 die Vorrichtungs-ID-Nummern 16–31 für alle internen Vorrichtungen, die auf den Downstream-Agenten abgebildet werden.
  • Die Abbildung aus 4 ist ein Flussdiagramm für ein Ausführungsbeispiel der Einleitung der Hub-Schnittstelle 120 (z.B. des Upstream-Agenten 220). In dem Verfahrensblock 410 wird eine Hub-Schnittstelle nach einem Zurücksetzen des Computersystems 100 beim Einschalten zurückgesetzt. In dem Verfahrensschritt 420 tastet der Upstream-Agent 220 das RQB-Signal 258 ab, um zu bestimmen, ob ein Downstream-Agent mit der Hub-Schnittstelle gekoppelt ist. In dem Verfahrensblock 430 wird ein Signal an die Steuerlogik 228 übermittelt, das anzeigt, ob ein Downstream-Agent detektiert worden ist. In dem Verfahrensblock 434 wird bestimmt, ob ein Downstream-Agent durch den Upstream-Agenten 220 detektiert worden ist. Wenn eine Downstream-Vorrichtung nicht detektiert worden ist, deaktiviert der Upstream-Agent in dem Verfahrensblock 436 die Hub-Schnittstelle.
  • In dem Verfahrensblock 440 ruft die CPU 102 den Upstream-Agenten 220 ab. In dem Verfahrensblock 450 wird bestimmt, ob die CPU 102 eine Abrufantwort von dem Upstream-Agenten 220 empfängt. Wenn die CPU 102 eine Antwort von dem Upstream-Agenten 220 empfängt, ruft die CPU 102 in dem Verfahrensblock 460 den Downstream-Agenten 230 ab. Wenn bestimmt worden ist, dass kein Downstream-Agent mit dem Upstream-Agenten 220 gekoppelt ist, spricht die Steuerlogik 228 in dem Verfahrensblock 470 nicht auf die Abrufanforderung der CPU 102 an, da die Hub-Schnittstelle deaktiviert ist. Folglich wird der Upstream-Agent 220 für die CPU 102 und das Computersystem 100 unsichtbar.
  • In erneutem Bezug auf die Abbildung aus 2 sehen die Hub-Agenten eine zentrale Verbindung zwischen zwei oder mehr einzelnen Bussen und/oder anderen Arten von Kommunikationsleitungen vor. Durch die Verwendung der Hub-Schnittstelle für die Verbindung zwischen dem MCH 110 und dem ICH 140 wird ein verbesserter Zugang zwischen den E/A-Komponenten und dem CPU-/Speicher-Teilsystem vorgesehen (z.B. eine höhere Bandbreite, Protokollunabhängigkeit und geringere Latenz). Darüber hinaus kann die Hub-Schnittstelle auch die Skalierbarkeit eines Computersystems verbessern (z.B. eine Erweiterung von einer Basis-Desktopplattform auf hoch entwickelte Desktopplattformen oder eine Workstationplattform), indem ein Backbone für E/A-Baublöcke vorgesehen wird.
  • Um die verbesserte Schnittstelle vorzusehen, weist die Hub-Schnittstelle ein oder mehrere eindeutige bzw. einzigartige Merkmale auf. In einem Ausführungsbeispiel werden Transaktionen unter Verwendung eines Paket-basierten Split-Transaction-Protokolls über die Hub-Schnittstelle übertragen. Zum Beispiel wird für den Start bzw. den Beginn einer Transaktion ein Anforderungspaket (Request Packet) verwendet, und wobei in der Folge ein separates Durchführungspaket (Completion Packet) zur Beendigung einer Transaktion verwendet werden kann, sofern dies erforderlich ist.
  • Die Abbildung aus 5 veranschaulicht ein Beispiel für eine Split-Transaction über die Hub-Schnittstelle. Gemäß der Abbildung aus 5 erlangt ein Hub-Agent anfänglich die Herrschaft über die Hub-Schnittstelle durch Arbitrierung 502. Auf die Arbitrierung erfolgt eine Anforderungsphase 504. Bei Bedarf (z.B. im Fall der Rückführung von Daten für eine Lesetransaktion) folgt auf die Anforderungsphase eine Durchführungsphase 508. Vor der Durchführungsphase führt der antwortende Hub-Agent zuerst allerdings eine Arbitrierung 506 um die Herrschaft über die Hub-Schnittstelle durch.
  • Zwischen der Zeit des Übermittelns eines Anforderungspakets und eines entsprechenden Durchführungspakets über die Hub-Schnittstelle können einzelne nicht miteinander in Verbindung stehende Pakete gemäß vorbestimmten Anordnungsregeln über die Hub-Schnittstelle übermittelt werden, wie dies nachstehend im Text näher beschrieben wird. Bei einer Leseanforderung von einem Peripheriegerät an einen Speicher kann das Vorsehen der angeforderten Daten zum Beispiel mehrere Taktzyklen in Anspruch nehmen, bis die Daten bereit stehen, um in einem Durchführungspaket zurückgeführt zu werden. Während der Zeit, die erforderlich ist, um die angeforderten Daten zu erhalten, können separate, nicht im Verhältnis zueinander stehende Durchführungs- und/oder Anforderungspakete, die in einer Warteschlange/Pipe des MCH 110 warten, an den ICH 140 übertragen werden.
  • Gemäß der Abbildung aus 5 wird jede Anforderung oder Durchführung ferner als ein Paket über die Schnittstelle übertragen. Bei Schreibtransaktionen sind Daten der Anforderung zugeordnet. Bei Lesetransaktionen sind Daten der Durchführung zugeordnet. In einigen Fällen existiert mehr als eine Durchführung für eine Anforderung, wenn das Durchführungspaket nicht verbunden ist, wobei es wirksam in mehrere Durchführungspakete aufgeteilt wird.
  • In einem Ausführungsbeispiel verwendet die Hub-Schnittstelle ferner Transaktionsdeskriptoren für ein Routing des Verkehrs an der Hub-Schnittstelle sowie zur Identifikation der Attribute einer Transaktion. Zum Beispiel können die Deskriptoren verwendet werden, um eine Transaktion als isochron oder asynchron zu definieren, die als Folge gemäß einem vordefinierten Protokoll behandelt werden kann.
  • In einem Ausführungsbeispiel wird die Bandbreite ferner teilweise dadurch erhöht, dass die Datenpakete über einen Quellen-synchronen Taktmodus übermittelt werden. In einem Ausführungsbeispiel sieht die Hub-Schnittstelle ferner die höhere Bandbreite trotz der Verwendung einer schmalen Verbindung vor (z.B. weniger Stifte/Anschlussflächen).
  • In alternativen Ausführungsbeispielen kann eine Hub-Schnittstelle jedoch mit weniger als allen eindeutigen Merkmalen gemäß den vorstehenden Ausführungen implementiert werden, ohne dabei vom Umfang der vorliegenden Erfindung abzuweichen. Die Hub-Schnittstelle kann ferner zur Verbindung von Brücken und/oder anderen Komponenten in einem Chipsatz oder außerhalb eines Chipsatzes miteinander verbunden werden.
  • Transaktions-, Protokoll- und physikalische Schichten
  • Zur besseren Veranschaulichung wird die Hub-Schnittstelle in drei Abschnitten beschrieben: einer Transaktionsschicht, einer Protokollschicht und einer physikalischen Schicht. Die Unterscheidung zwischen den Schichten bzw. den Ebenen ist allerdings veranschaulichend und nicht einschränkend, so dass folglich kein spezielles bevorzugtes Ausführungsbeispiel impliziert wird.
  • Transaktionsschicht
  • In einem Ausführungsbeispiel der Hub-Schnittstelle unterstützt die Transaktionsschicht das Routing separater, über die Hub-Schnittstelle übermittelter Transaktionen (die aus einem oder mehreren Paketen bestehen können). In einem Ausführungsbeispiel erzeugt die Transaktionsschicht der Hub-Schnittstelle zum Beispiel Transaktionsdeskriptoren, die in den Anforderungs- und Datenpaketen enthalten sind. Die Transaktionsdeskriptoren können zur Unterstützung der Arbitrierung zwischen Warteschlagen in einem Hub-Agent (z.B. MCH) verwendet werden und/oder zur Erleichterung des Routings von Anforderungen und Datenpaketen durch die Hub-Schnittstelle.
  • In einem Ausführungsbeispiel unterstützen die Transaktionsdeskriptoren zum Beispiel das Routing von Durchführungspaketen zurück zu dem die Anforderung einleitenden Agenten auf der Basis der anfänglich vorgesehenen (in einem Anforderungspaket) Routing-Informationen. Die Transaktionsdeskriptoren unterstützen ferner die Reduzierung der Paketdecodierungslogik in den Hub-Agenten, die möglichst so gering wie möglich gehalten wird.
  • In alternativen Ausführungsbeispielen sehen die Transaktionsdeskriptoren ferner die Fähigkeit zur Unterscheidung der Behandlung von Anforderungen auf der Basis ihrer entsprechenden Transaktionsattribute vor. Die in den Transaktionsdeskriptoren identifizierten Transaktionsattribute können Operationen zum Beispiel als isochron identifizieren (d.h. Operationen, die feste Datenmengen regelmäßig bewegen, wie zum Beispiel Video- oder Audio-Operationen in Echtzeit). Als Folge dessen können die Operationen gemäß der Identifikation durch die Transaktionsattribute gemäß einem entsprechenden vorbestimmten Routing-Protokoll behandelt werden, um einen bestimmten Operationstyp zu unterstützten (z.B. isochron).
  • In einem Ausführungsbeispiel weisen die Transaktionsdeskriptoren zwei Felder auf: ein Routing-Feld und ein Attributfeld. In alternativen Ausführungsbeispielen können mehr oder weniger Felder verwendet werden, um eine oder mehr. Funktionen der Transaktionsdeskriptoren vorzusehen.
  • In einem Ausführungsbeispiel handelt es sich bei dem Routing-Feld um ein für das Paket-Routing verwendetes Feld mit sechs Bit, wie dies unten in Tabelle 1 dargestellt ist. Die Größe des Routing-Felds sowie des Attributfelds ist veränderlich.
  • Tabelle 1: Routing-Feld des Transaktionsdeskriptors
    Figure 00170001
  • Wie dies in Tabelle 1 dargestellt ist, werden drei Bits des Routing-Felds für die Hub-ID verwendet, welche den Hub-Agenten identifiziert, der die Transaktion eingeleitet hat. In alternativen Ausführungsbeispielen können in dem Routing-Feld zusätzliche Bits verwendet werden, um eine Hierarchie der Hub-Schnittstelle vorzusehen, die acht überschreitet.
  • In einem System können zum Beispiel mehrere Hub-Schnittstellenhierarchien existieren, wobei der Agent an der Spitze der Hierarchien in diesem Fall in der Lage sein sollte, Routing-Durchführungen zurück zu der Basis der Hierarchie zu führen. In diesem Zusammenhang umfasst "Hierarchie" mehrere verbundene Hub-Schnittstellensegmente, die an einem "Wurzel"-Agenten der Hub-Schnittstelle (z.B. einem MCH) beginnen. Das Computersystem 100 kann zum Beispiel nur eine Hub-Schnittstellenhierarchie aufweisen. Die Abbildung aus 1 veranschaulicht hingegen ein Beispiel für ein Computersystem 100 auf der Basis einer Mehrzahl von Hub-Schnittstellenhierarchien. In Ausführungsbeispielen, die nur eine Hub-Schnittstellenhierarchie implementieren, kann ein Standardwert von "000" in dem Hub-ID-Feld verwendet werden.
  • Die verbleibenden drei Bits des Routing-Felds können zum Identifizieren interner Pipes/Warteschlangen in einem Hub-Schnittstellen-Agenten verwendet werden. Zum Beispiel kann der E/A-Steuerungs-Hub internen USB (Universal Serial Bus) Host-Steuereinheit-Verkehr und Busmastering-ID (BM-ID) Verkehr über separate "Pipes" unterstützen. Diesbezüglich kann die Pipe-ID verwendet werden, um dem Servicing-Agenten (z.B. MCH 110) zu vermitteln, dass durch verschiedene "Pipes" eingeleiteter Verkehr verschiedene Attribute aufweist und gemäß einem vorbestimmten Protokoll behandelt werden kann. Wenn ein Hub-Schnittstellen-Agent keine separaten internen Pipes implementiert, kann ein Standardwert von "000" in dem Pipe-ID-Feld verwendet werden.
  • In einem alternativen Ausführungsbeispiel weisen die Transaktionsdeskriptoren ferner ein Attributfeld auf. In einem Ausführungsbeispiel handelt es sich bei dem Attributfeld um einen Wert von drei Bits, der spezifiziert, wie eine Transaktion zu behandeln ist, wenn sie von einen Ziel-Hub-Schnittstellen-Agenten empfangen wird. In bestimmten Fällen unterstützt das Attributfeld einem System die Unterstützung anspruchsvoller Anwendungsbelastungen, wobei dies von der Bewegung abhängig ist, und wobei die Daten mit bestimmten Anforderungen oder sich unterscheidenden Eigenschaften verarbeitet werden.
  • Zum Beispiel kann das Attributfeld die isochrone Datenbewegung zwischen Vorrichtungen unterstützen, wie dies von wenigen neu entwickelten externen Bussen verwendet wird. Derartige Datenbewegungsanforderungen müssen aufrechterhalten werden, wenn Daten durch die Hub-Schnittstelle zwischen E/A-Bausteinen und dem CPU-/Speicher-Teilsystem fließen.
  • In alternativen Ausführungsbeispielen können zusätzliche Transaktionsattribute die Fähigkeit aufweisen, zwischen "snopped" Verkehr zu unterscheiden, wobei die Cache-Kohärenz durch Hardware (d.h. Chipsatz) unterstützt wird, und "nonsnooped" Verkehr, der auf Software-Mechanismen beruht, um eine Datenkohärenz in dem System zu gewährleisten. Ein weiteres mögliches Attribut wäre ferner ein "explizit vorab erfassbarer" Hinweis zur Unterstützung einer Form des Lese-Cachings sowie zur Ermöglichung einer effizienteren Nutzung der Hauptspeicherbandbreite.
  • Anordnungsregeln
  • Die Transaktionsdeskriptoren können ferner zur Unterstützung der Anordnungsregeln zwischen über die Hub-Schnittstelle übermittelten Transaktionen verwendet werden. In einem Ausführungsbeispiel werden Transaktionen mit identischen Transaktionsdeskriptoren zum Beispiel in strikter Reihenfolge ausgeführt (d.h. die erste Transaktion wird immer zuerst ausgeführt).
  • Transaktionen mit dem gleichen Routing-Feld und mit sich unterscheidenden Attributfeldern können hingegen im Verhältnis zueinander neu angeordnet werden. In einem Ausführungsbeispiel müssen isochrone Transaktionen zum Beispiel in Bezug auf asynchrone Transaktionen nicht strikt angeordnet werden.
  • In einem Ausführungsbeispiel der Hub-Schnittstelle sind zulässig Datenübermittlungen zulässig, um Fortschritt in Bezug auf die Anforderungen zu machen, und zwar entweder in die gleiche Richtung oder in die entgegengesetzte Richtung. In eine Richtung verlaufende Lesedurchführungen können Leseanforderungen weiterleiten, die in die gleiche Richtung fließen. Ferner können Schreibanforderungen Leseanforderungen weiterleiten, die in die gleiche Richtung fließen.
  • In alternativen Ausführungsbeispielen können die Anordnungsregeln für über die Hub-Schnittstelle verlaufende Transaktionen hingegen variieren. In einem Ausführungsbeispiel implementiert die Hub-Schnittstelle zum Beispiel die Anordnungsregeln, die in Peripheral Component Interconnect (Revision 2.2) vorgesehen sind, um den Verkehrsfluss über die Hub-Schnittstelle in entgegengesetzte Richtungen zu bestimmen.
  • Protokollschicht
  • In einem Ausführungsbeispiel verwendet die Hub-Schnittstelle ein Paket-basiertes Protokoll mit zwei Arten von Paketen: Anforderung und Durchführung. Ein Anforderungspaket wird für jede Hub-Schnittstellen-Transaktion verwendet. Durchführungspakete werden sofern erforderlich zum Beispiel zur Rückführung von Lesedaten oder zur Bestätigung einer Durchführung bestimmter Arten von Schreibtransaktionen verwendet (z.B. E/A-Schreiboperationen und Speicherschreiboperationen mit angeforderter Durchführung). Durchführungspakete werden ihren entsprechenden Anforderungspaketen durch Transaktionsdeskriptoren und die Anordnung zugeordnet, wie dies vorstehend im Text in dem Abschnitt zur Transaktionsschicht erörtert worden ist.
  • In einem Ausführungsbeispiel verwendet die Hub-Schnittstelle ferner ein Arbitrierungsprotokoll, das symmetrisch und verteilt ist. Zum Beispiel steuert jeder Hub-Agent ein Anforderungssignal, das von dem anderen Agenten überwacht wird, der mit der gleichen Schnittstelle verbunden ist. Ein Einräumungssignal wird nicht verwendet, und Agenten bestimmen unabhängig die Herrschaft über die Schnittstelle.
  • In einem Ausführungsbeispiel wird kein explizites Framing- bzw. Begrenzungssignal verwendet. Es besteht eine implizite Beziehung zwischen dem Arbitrierungsereignis, das einem Agenten die Herrschaft, über die Schnittstelle erteilt, und dem Beginn der Übermittlung eines Agenten. In einem alternativen Ausführungsbeispiel können Framing-Signale verwendet werden.
  • Das Ende der Paketübermittlung erfolgt, wenn ein Hub-Schnittstellen-Agent, der die Herrschaft über die Schnittstelle besitzt (wie z.B. dabei ist, Daten zu übermitteln), die Steuerung der Schnittstelle freigibt, indem er ein Anforderungssignal deaktiviert. In einem Ausführungsbeispiel wird die Flusssteuerung auch unter Verwendung eines STOP Signals erreicht, um Pakete zu wiederholen oder zu trennen, wie dies nachstehend im Text näher beschrieben wird.
  • Paketdefinition
  • In einem Ausführungsbeispiel der Hub-Schnittstelle werden Daten mit einer vielfachen Rate (z.B. 1x, 4x, 8x) des Hub-Schnittstellentakts (HLCK) übertragen, wobei es sich bei diesem in einem Ausführungsbeispiel um einen gemeinsamen Takt handelt, der von den Hub-Agenten gemeinsam genutzt wird, die durch die Hub-Schnittstelle verbunden sind. Die Daten werden über einen Datensignalpfad (D) der Hub-Schnittstelle übermittelt, mit einer "Schnittstellenbreite" einer bestimmten Zweierpotenz (z.B. 8, 16, 24, 32). Als Folge dessen kann die Hub-Schnittstelle variierende Datenübertragungsgranularitäten (d.h. Übertragungsbreiten) aufweisen, abhängig von der Übertragungsrate und der Breite des Datensignalpfads. Zum Beispiel bei einer Schnittstellenbreite von acht Bit im 4fach-Modus, entspricht die Übertragungsbreite 32 Bit je HLCK. Als eine Folge dessen kann durch eine Variation der Transferrate und/oder der Schnittstellenbreite des Datensignalpfads die Übertragungsbreite (d.h. die Anzahl der je HCLK übertragenen Bytes) skaliert werden.
  • In einem Ausführungsbeispiel können die Pakete ferner größer sein als die Übertragungsbreiten. Daraus folgt, dass die Pakete in mehreren Abschnitten (d.h. Paketbreiten) übertragen werden. In einem Ausführungsbeispiel sind die Pakete in Paketbreiten der Größe von Doppelwörtern (32 Bits) unterteilt.
  • Bei einer Übertragungsbreite von 32 Bit werden die Bytes einer Paketbreite an der Schnittstelle beginnend mit dem wertniedrigsten Byte (Byte 0) und abschließend mit dem werthöchsten Byte (Byte 3) dargestellt, wie dies in Tabelle 2 abgebildet ist. Bei einer Übertragungsbreite von 64 Bit (z.B. eine Schnittstelle mit einer Breite von sechzehn Bit im 4fach-Modus) wird das wertniedrigste Doppelwort (Paketbreite) an den niedrigeren Bytes des Datensignals übertragen (z.B. PD[0:7]), und das werthöhere Doppelwort wird parallel an den oberen Bytes des Datensignals übertragen (z.B. PD [15:8]). Die beiden Beispiele sind in der folgenden Tabelle 2 dargestellt.
  • Tabelle 2: Anordnung der Byteübermittlung für Schnittstellenbreiten von 8 und 16 Bit
    Figure 00230001
  • Die Protokollschicht der Hub-Schnittstelle ist auch für die Begrenzung der Daten verantwortlich. Diesbezüglich definieren die durch die Hub-Schnittstelle implementierten Framing- bzw. Begrenzungsregeln wie eine oder mehrere Paketbreiten auf eine Gruppe von Übertragungsbreiten abgebildet werden müssen. Zur Vereinfachung des Parsing von Paketen in Paketbreiten werden in einem Ausführungsbeispiel der Hub-Schnittstelle die drei folgenden Framing-Regeln implementiert: ein Header-Abschnitt eines Pakets beginnt an dem ersten Byte einer Übertragungsbreite; ein Datenabschnitt eines Pakets (falls vorhanden) beginnt an dem ersten Byte einer Übertragungsbreite; und ein Paket belegt eine integrale Anzahl von Übertragungsbreiten.
  • Etwaige verfügbare Übertragungsbreiten, die nicht von einem Paket verbraucht werden, können mit einer unechten Doppelwortübertragung (DW-Übertragung) gefüllt werden, wobei sie von dem empfangenden Hub-Agenten ignoriert werden. In alternativen Ausführungsbeispielen können mehr, weniger und/oder andere Begrenzungsregeln von der Hub-Schnittstelle verwendet werden.
  • Die folgenden Tabellen 3 und 4 veranschaulichen Beispiele für die vorstehend ausgeführten Begrenzungsregeln für eine Übertragungsbreite von 64 Bit.
  • Tabelle 3: Anforderung, die eine 32-Bit-Adressierung verwendet und drei Datendoppelwörter verwendet
    Figure 00240001
  • Tabelle 4: Anforderung, die eine 64-Bit-Adressierung verwendet und drei Datendoppelwörter verwendet
    Figure 00240002
  • Anforderungspakete
  • Das Paket-Headerformat für Anforderungspakete gemäß einem Ausführungsbeispiel ist in den folgenden Tabellen 5 und 6 dargestellt. In den in den Tabellen 5 und 6 abgebildeten Beispielen handelt es sich bei dem Basis-Header um ein Doppelwort, mit einem erforderlichen zusätzlichen Doppelwort für eine 32-Bit-Adressierung und mit zwei zusätzlich erforderlichen Doppelwörtern für den 64-Bit-Adressierungsmodus. Die Felder der Header gemäß den Tabellen 5 und 6 werden in den folgenden Tabellen beschrieben.
  • In alternativen Ausführungsbeispielen der Hub-Schnittstelle können die in dem Header des Anforderungspakets enthaltenen Felder variieren. Zum Beispiel kann der Header zusätzliche Felder, weniger Felder oder andere Felder an Stelle der nachstehend dargestellten Felder aufweisen. Ferner kann auch die Codierung der Felder variieren. Tabelle 5: Header-Format des Anforderungspakets für eine 32-Bit-Adressierung
    Figure 00250001
    Tabelle 6: Header-Format des Anforderungspakets für eine 64-Bit-Adressierung
    Figure 00250002
    Transaktionsdeskriptor Die Transaktionsdeskriptor-Routing- und Attributfelder gemäß der vorstehenden Beschreibung.
    rq/cp Mit einer '0' identifizierte Anforderungspakete und mit '1' identifizierte Durchführungspakete an dieser Stelle.
    cr Durchführung erforderlich ('1') oder keine Durchführung erforderlich (''0').
    r/w Lesen ('0') oder Schreiben ('1'). Dieses Feld zeigt an, ob Daten in mit einer Durchführung (Lesen) oder einer Anforderung (Schreiben) enthalten sind.
    Adressformat (af) Das Adressierungsformat ist entweder impliziert ('0') oder 32/64 Bit ('1').
    Sperre (Lock bzw. lk) Kennzeichen zum Anzeigen, dass die Anforderung Teil einer gesperrten Sequenz ist. Anforderungen und Durchführungen in einer gesperrten Sequenz weisen dieses Bit gesetzt auf. Hub-Agenten, die Sperren nicht erfassen, ignorieren das Kennzeichen und füllen das Feld mit '0'.
    Datenlänge Die Datenlänge ist in Doppelwörtern gegeben, die so codiert sind, dass die Anzahl der dargestellten Doppelwörter eins über dieser Anzahl liegt. Somit stellt '000000' ein Doppelwort dar.
    Raum Dieses Feld wählt die Zielraumart für die Anforderung aus. In einem Ausführungsbeispiel zählen zu den möglichen Zielräumen Speicher ("00") und EA ("01").
    1. DW BE Bytefreigaben für das erste Doppelwort jeder Lese- oder Schreibanforderung an Speicher oder EA. Bytefreigaben sind aktiv niedrig. Wenn nur ein Doppelwort für eine Anforderung gegeben ist, wird dieses Bytefreigabefeld verwendet. In einem Ausführungsbeispiel ist es unzulässig, eine Speicher- oder EA-Lese- oder Schreibanforderung ohne freigegebene Bytes auszugeben.
    Letzte DW BE Bytefreigaben für das letzte Doppelwort einer Lese- oder Schreibanforderung. Bytefreigaben sind aktiv niedrig. Wenn für eine Anforderung nur ein Doppelwort gegeben ist, muss dieses Feld inaktiv ("1111") sein. Bytefreigaben können nicht zusammenhängend sein (z.B. "0101"). Das Feld wird bei speziellen Zyklen nie verwendet, da es das Feld "Spezielle Zykluscodierung" überlappt.
    Adresse [31:2] Die 32-Bit-Adresse wird wie bei PCI für den gleichen Zyklustyp erzeugt. Das Doppelwort ist für die 32- und 64-Bit-Adressierungsmodi enthalten (jedoch nicht für den implizierten Adressierungsmodus.
    Erweiterte Adresse (ea) Zeigt eine 32-Bit-Adressierung ('0') oder eine 64-Bit-Adressierung ('1') an.
    Konfig.typ (ct) Dieses Bit wird nur für Konfigurationszyklen zum Anzeigen des Typs 0 ('0') oder des Typs 1 ('1') des Konfigurationstyps verwendet. Da Konfigurationszyklen immer mit 32-Bit-Adressierung ausgeführt werden, wird dieses Bit durch das Bit "Erweiterte Adresse" überlappt.
    Adresse [63:32] Obere Adressbits für den 64-Bit-Adressierungsmodus. Das Doppelwort ist für den 64-Bit-Adressierungsmodus enthalten.
  • Durchführungspakete
  • Die nachstehende Tabelle 7 zeigt das Header-Format für ein Durchführungspaket gemäß einem Ausführungsbeispiel. In einem Ausführungsbeispiel handelt es sich bei dem Header um ein Doppelwort. Die Felder der Header gemäß der Darstellung in Tabelle 8 werden nach der Tabelle beschrieben.
  • In alternativen Ausführungsbeispielen der Hub-Schnittstelle können die in dem Header für ein Durchführungspaket enthaltenen Felder jedoch variieren. Zum Beispiel kann der Header zusätzliche Felder, weniger Felder oder andere Felder an Stelle der nachstehend beschriebenen und abgebildeten Felder aufweisen. Ferner kann auch die Codierung der Feldervariieren.
    Figure 00290001
    Tabelle 7: Header-Format für ein Durchführungspaket
    Transaktionsdeskriptor Die Transaktionsdeskriptor-Routing- und Attributfelder gemäß der vorstehenden Beschreibung in dem Transaktionsabschnitt.
    rq/cp Durchführungspakete sind an dieser Stelle mit eine '1' identifiziert.
    r/w Lesen ('0') oder Schreiben ('1'). Dieses Feld zeigt an, ob Daten. in mit einer Durchführung (Lesen) oder einer Anforderung (Schreiben) enthalten sind.
    Sperre (Lock bzw. lk) Kennzeichen zum Anzeigen, dass die Durchführung Teil einer gesperrten Sequenz ist. Anforderungen und Durchführungen in einer gesperrten Sequenz weisen dieses Bit gesetzt auf. Hub-Agenten, die Sperren nicht erfassen, ignorieren das Kennzeichen und füllen das Feld mit '0'.
    Datenlänge Die Datenlänge ist in Doppelwörtern gegeben, die so codiert sind, dass die Anzahl der dargestellten Doppelwörter eins über dieser Anzahl liegt. Somit stellt '000000' ein Doppelwort dar.
    Durchführungsstatus Zeit den Durchführungsstat usunter Verwendung vorbestimmter Werte an.
    Reserviert Alle reservierten Bits sind auf '0' gesetzt.
  • In einem Ausführungsbeispiel der Hub-Schnittstelle können Durchführungen für Speicherleseoperationen weniger als die angeforderte vollständige Datenmenge vorsehen, sofern die ganze Anforderung letztendlich vollständig ausgeführt wird. Durchführungen von Speicherschreiboperationen können in ähnlicher Weise anzeigen, dass weniger als die ganze Anforderung ausgeführt worden ist. Dies kann erfolgen, um die Latenzvoraussetzung einer bestimmten Plattform für eine bestimmte Hub-Schnittstelle zu erfüllen.
  • Darüber hinaus speichert für eine Anforderung, die eine vollständige Durchführung voraussetzt, in einem Ausführungsbeispiel der Initiator Informationen über die Anforderung, die in einem Puffer des einleitenden Hub-Agenten gespeichert werden können. Diese Informationen können zum Beispiel den Transaktionsdeskriptor, die Größe des Pakets, den Sperrstatus, Routing-Informationen, etc. aufweisen. Beim Empfang der Durchführung(en) gleicht der Initiator ferner die Durchführung(en) mit der entsprechenden Anforderung ab. Bei mehreren Durchführungen sammelt der Initiator einen Zählwert der für die ursprüngliche Anforderung ausgeführten Daten, bis die ursprüngliche Anforderung vollständig ausgeführt ist.
  • Schnittstellen-Arbitrierung und Paketbegrenzung
  • Wenn sich die Schnittstelle in einem Ausführungsbeispiel der Hub-Schnittstelle im Leerlauf befindet, gilt die Geltendmachung einer Anforderung von einem mit der Schnittstelle verbundenen Hub-Agenten als ein Arbitrierungsereignis. Der erste anfordernde Agent erlangt die Herrschaft über die Schnittstelle. Wenn Agenten gleichzeitig die Herrschaft anfordern und sich die Hub-Schnittstelle im Leerlauf befindet, ist der zuletzt bearbeitete Hub-Agent erfolgreich. In einem Ausführungsbeispiel verfolgen alle Hub-Agenten den zuletzt behandelten Status (z.B. über eine Statusflagge eines internen Registers). In einem alternativen Ausführungsbeispiel können alternative Arbitrierungsroutinen verwendet werden.
  • Nachdem ein Hub-Agent die Kontrolle bzw. die Herrschaft über die Schnittstelle erlangt hat, bleibt er in Kontrolle über die Schnittstelle, bis er die Transaktion vollendet hat oder bis eine zugewiesene zeitliche Bandbreite abgelaufen ist. In einem Ausführungsbeispiel ist in jedem Hub-Agent zum Beispiel ein Zeitschlitzzähler vorgesehen, um die Bandbreitenzuweisung zu regeln und um die Verweildauer der Herrschaft der Schnittstelle eines Agenten zu begrenzen. Die einem Hub-Agenten zugewiesene Zeit (d.h. der Zeitschlitzwert) kann sich von dem der Hub-Schnittstellenagenten unterscheiden oder mit diesen übereinstimmen, die mit der gleichen Schnittstelle verbunden sind. Der Zeitschlitzzähler beginnt bei der Erfassung der Herrschaft über die Schnittstelle und zählt Hub-Schnittstellen-Basistaktperioden.
  • In einem Ausführungsbeispiel ist jeder Hub-Agent für die Verwaltung der eigenen Zeitschlitzzuweisung verantwortlich. In einem Ausführungsbeispiel kann somit ein Zeitschlitzwert über ein Hub-Schnittstellen-Befehlsregister für jede Schnittstelle in jedem Hub-Agenten programmiert werden.
  • Die Abbildung aus 6 veranschaulicht ein Beispiel der Arbitrierung für die Hub-Schnittstelle zwischen dem Hub-Agenten A und dem Hub-Agenten B sowie die Übertragung von zwei Paketen. Das Beispiel veranschaulicht die Arbitrierung aus einem Leerlaufzustand der Schnittstelle, woraufhin die Schnittstelle in den Leerlauf zurückkehrt. In dem veranschaulichten Ausführungsbeispiel verwendet die Schnittstelle einen 4fach-Datenübertragungsmodus mit einem Datensignalpfad (PD) von acht Bit. In dem in der Abbildung aus 6 veranschaulichten Beispiel handelt es sich bei dem Agenten A um den zuletzt behandelten Agenten (MRS). Als Folge dessen macht der Agent A dessen externes Anforderungssignal (RQA) geltend und tastet den Zustand des Anforderungssignals (RQB) des Agenten B an der Taktflanke 1 ab (die inaktiv dargestellt ist), bevor die Paketübermittlung von der gleichen Flanke beginnt.
  • In einem Ausführungsbeispiel existiert eine Verzögerung um zwei Takte, bevor die übermittelten Daten (d.h. Daten von dem Agenten A) in dem Empfänger (d.h. dem Agenten B) verfügbar sind, beginnend von der Taktflanke 3. Das erste Paket besteht aus zwei Doppelwörtern 602 und 604 und setzt zwei Basistakte zur Übermittlung in dem 4fach-Modus voraus. Das zweite Paket sind drei Doppelwörter 606, 608 und 610 und setzt in dem 4fach-Modus drei Basistakte voraus.
  • Flusssteuerung
  • In einem Ausführungsbeispiel können Pakete durch einen empfangenden Agenten wiederholt oder getrennt werden, und zwar aufgrund eines fehlenden Anforderungswarteschlangenraums, Datenpufferraums oder aus anderen Gründen. In einem Ausführungsbeispiel wird die Flusssteuerung unter Verwendung eines STOP Signals erreicht.
  • Die Abbildung aus 7 veranschaulicht ein Beispiel der Nutzung des STOP Signals. Gemäß der Veranschaulichung macht der Agent A dessen externes Anforderungssignal (RQA) geltend und tastet den Zustand des Anforderungssignals (RQB) des Agenten B an der Taktflanke 1 ab (die inaktiv dargestellt ist), bevor die Paketübermittlung von der gleichen Flanke (z.B. der Taktflanke 1) beginnt.
  • Nach einer Verzögerung von zwei Takten sind die von dem Agenten A übermittelten Daten in dem Empfänger an dem Agent B verfügbar, beginnend von der Taktflanke 3. In einem Ausführungsbeispiel besteht nach dem Empfang von Daten, die von dem Agenten A übermittelt werden, die erste Möglichkeit für den Agenten B, die Flusssteuerung zu durch Geltendmachung des STOP Signals an der Taktflanke 4 vorzusehen, wie dies in der Abbildung aus 7 dargestellt ist.
  • Wenn sich die Herrschaft des PD-Signals von einem Hub-Agenten zu dem anderen ändert, wird zusätzlich die Herrschaft des STOP Signals nach einer vorbestimmten Anzahl von Takten ausgetauscht. In einem Ausführungsbeispiel wird das STOP Signal ferner an Basistakten abgetastet, die der letzten Übertragung einer Paketbreite entsprechen. In einem 4fach-Modus (unter Verwendung eines PD-Signals mit einer Breite von acht Bit) wird das STOP Signal bei jedem Basistakt abgetastet. In einem 1fach-Modus wird das STOP Signal jedoch bei jedem vierten Takt abgetastet (wobei der Beginn einer Transaktion als Referenzpunkt verwendet wird).
  • Nach dem Empfang eines STOP Signals bestimmt der Hub-Agent, der das STOP Signal empfängt, ob er das Senden weiterer Pakete wiederholen bzw. erneut versuchen kann. Die Abbildung aus 8 zeigt ein Flussdiagramm, das die Schritte beschreibt, die von einem Hub-Agenten bei der Bestimmung ausgeführt werden, ob er gemäß einem Ausführungsbeispiel das Senden eines Pakets nach dem Empfang eines STOP Signals erneut versuchen kann.
  • In dem Schritt 802 empfängt der Hub-Agent, der aktuelle Pakete übermittelt, ein STOP Signal. Als Reaktion darauf bestimmt der Hub-Agent, der das STOP Signal empfängt, in dem Schritt 804, ob der andere Agent (der das STOP Signal aktiviert hat) die Herrschaft über die Schnittstelle anfordert, und zwar durch Abtasten des Anforderungssignals der anderen Hub-Agenten (z.B. RQB).
  • Wenn der Empfänger des STOP Signals bestimmt, dass der Agent, der das STOP Signal gesendet hat, die Herrschaft über die Schnittstelle nicht anfordert, kann der aktuelle Herrscher über die Schnittstelle in dem Schritt 806 versuchen, nach der Wiederherstellung von dem STOP ein Paket zu übermitteln. Wenn andererseits bestimmt wird, dass der Agent, der das STOP Signal aktiviert hat, die Herrschaft anfordert, bestimmt der aktuelle Herrscher 808 in dem Schritt, ob dessen Zeitschlitz abgelaufen ist.
  • Wenn der Zeitschlitz für den aktuellen Eigentümer bzw. Herrscher der Schnittstelle abgelaufen ist, gibt der aktuelle Herrscher bzw. Inhaber in dem Schritt 810 die Herrschaft frei. Wenn der Zeitschlitz für den aktuellen Inhaber noch nicht abgelaufen ist, kann der aktuelle Inhaber ein Paket mit einem Attribut übermitteln, das sich von dem unterbrochenen Paket unterscheidet. Im Besonderen bestimmt der aktuelle Inhaber in dem Schritt 812, ob er ein Paket mit einem Attributtyp aufweist, der sich von allen anderen Paketen unterscheidet, die in der aktuellen Arbitrierungssitzung wiederholt worden sind (d.h. der Periode der Herrschaft des aktuellen Inhabers), das übermittelt werden muss.
  • Wenn der aktuelle Inhaber ein Paket mit einem anderen Attribut aufweist, kann der aktuelle Inhaber in dem Schritt 814 die Übermittlung eines Pakets versuchen. Ansonsten gibt der aktuelle Inhaber die Herrschaft über die Schnittstelle frei.
  • Physikalische Schnittstelle
  • In einem Ausführungsbeispiel implementiert die Hub-Schnittstelle eine physikalische Schnittstelle, die mit einer Grundfrequenz von 66 MHz oder 100 MHz arbeitet. Andere Frequenzen können ebenfalls verwendet werden. In einem Ausführungsbeispiel verwendet die physikalische Schnittstelle darüber hinaus eine Quellen-synchrone (SS) Datenübertragungstechnik, die eine Quadraturtaktung zur Datenübertragung mit dem Vierfachen des Basis-Hub-Schnittstellentakts aufweisen kann. In einem Ausführungsbeispiel mit einer 8-Bit-Datenschnittstelle (z.B. PD), die mit einer Grundfrequenz von entweder 66 MHz oder 100 MHz arbeitet, kann somit als Folge dessen eine entsprechende Bandbreite von 266 Megabyte pro Sekunde (MB/Sek.) oder von 400 MB/Sek. erreicht werden.
  • In einem Ausführungsbeispiel unterstützt die Hub-Schnittstelle ferner einen Spannungsbetrieb von 1,8 V und basiert auf einer CMOS-Signalisierung (CMOS als englische Abkürzung von Complementary Metal-Oxid Semiconductor Process). In alternativen Ausführungsbeispielen kann die Schnittstelle hingegen mit alternativen Frequenzen und/oder mit Datenschnittstellen mit anderen Größen arbeiten, um variierende Bandbreiten vorzusehen und um alternative Betriebsspannungen auf der Basis einer alternativen Signalverarbeitung vorzusehen.
  • Definition externer Signale
  • Die Abbildung aus 9 veranschaulicht die physikalische Signalschnittstelle der Hub-Schnittstelle zwischen zwei Hub-Agenten gemäß einem Ausführungsbeispiel. Gemäß der Abbildung aus 9 verwendet die physikalische Schnittstelle der Hub-Schnittstelle einen bidirektionalen Datenbus von acht Bit (PD[7:0]) mit einem differentiellen Paar von Quellensynchronen Strobe-Signalen (PSTRBN, PSTRBP) für die Datentaktung. In einem alternativen Ausführungsbeispiel kann die Schnittstelle breiter vorgesehen werden. Gemäß der Abbildung aus 9 kann zum Beispiel auch ein zusätzlicher Datenbus von acht Bit (PD[15:8]) in Verbindung mit einem zusätzlichen Paar von Quellen-synchronen Strobe-Signalen (PUSTRBN, PUSTRBP) verwendet werden. In einem alternativen Ausführungsbeispiel können zum Beispiel unidirektionale Datensignale verwendet werden.
  • Zusätzlich verbindet ein unidirektionales Arbitrierungssignal alle Agenten miteinander (RQA, RQB), und ein bidirektionales STOP Signal wird von dem empfangenden Agenten zur Steuerung des Datenflusses verwendet, wie dies bereits vorstehend im Text beschrieben worden ist. Zu zusätzlichen Schnittstellensignalen zählen die Signale Systemrücksetzung (Reset), gemeinsamer Takt (HLCLK) und Spannungsreferenz (HLVREF). Ferner enthalten sind Signale für jeden Hub-Agenten (ZCOMP) zur Abstimmung der Treiberausgabeimpedanz auf den entsprechenden Wert, um Fertigungs- und Temperaturschwankungen zu kompensieren.
  • Die in der in der Abbildung aus 9 veranschaulichten Schnittselle dargestellten physikalischen Signale werden in der folgenden Tabelle 8 näher beschrieben. In alternativen Ausführungsbeispielen der Hub-Schnittstelle sind die in der physikalischen Schnittstelle enthaltenen Signale veränderlich. Zum Beispiel kann die physikalische Schnittstelle mehr, weniger oder andere Signale aufweisen, die von den in der Abbildung aus 9 abgebildeten Signalen abweichen und in der nachstehenden Tabelle 8 näher beschrieben sind.
  • Tabelle 8: Hub-Schnittstellen-Signale für 8-Bit-Agenten
    Figure 00370001
  • Figure 00380001
  • Figure 00390001
  • Signal; es ist eine Ausgabe einer Systemkomponente und eine Eingabe in die andere(n) Komponente(n). Ferner ist Reset asynchron in Bezug auf HLCLK.
  • Transfermodusbetrieb gemeinsamer Takt
  • In einem Ausführungsbeispiel werden zahlreiche der über die Hub-Schnittstelle übertragenen Signale gemäß einem gemeinsamen Taktmodus übermittelt. Im Besonderen steht die Zeitsteuerung der Signale, die über den gemeinsamen Taktmodus übertragen werden, im Verhältnis zu einem einzelnen Takt (z.B. dem Hub-Schnittstellentakt). In alternativen Ausführungsbeispielen können die Signale mit einem Systemtakt verbunden sein, der sich außerhalb der Hub-Schnittstellen-Agenten befindet. Ferner können in einem System mehr als ein Hub-Schnittstellen-Segment existieren, wobei in diesem Takt verschiedene Basistakte für verschiedene Segmente verwendet werden können. Zum Beispiel kann eine Komponente sowohl eine Basis-Hub-Schnittstelle von 66 MHz und eine Basis-Hub-Schnittstelle von 100 MHz implementieren.
  • Quellen-synchroner Transfermodusbetrieb
  • In einem Ausführungsbeispiel werden die Pakete/Daten unter Verwendung eines Quellen-synchronen Taktmodus übermittelt, wobei eine Technik zur Multiplikation der Datentransferrate der Daten vorgesehen wird. In einem Ausführungsbeispiel, das zum Beispiel einen 4fach-Quellen-synchronen Taktmodus mit einem Datensignalpfad von acht Bit verwendet, setzt die Übermittlung eines Doppelworts (d.h. vier Byte) nur einen Hub-Schnittstellen-Taktzyklus (HLCK) voraus. Alternativ erfordert das Übermitteln eines Doppelworts unter Verwendung des 1fach-Quellen-synchronen-Taktmodus an einem Datensignalpfad von acht Bit einen vollständigen Hub-Schnittstellen-Taktzyklus für die Durchführung.
  • In einem Ausführungsbeispiel der Quellen-synchronen Übertragung werden im Besonderen Strobes (z.B. PSTRBN/PSTRBP) mit einer Datenübermittlung gemäß einer vorbestimmten Zeitsteuerungsbeziehung zwischen den Strobes und den Daten gesendet. Die Strobes werden danach zur Speicherung der Daten in dem empfangenden Hub-Agent verwendet.
  • In einem Ausführungsbeispiel werden die Flanken der Strobes PSTRBP/PSTRBN im Besonderen von dem empfangenden Hub-Agenten zur Identifikation des Vorhandenseins und der Zeitsteuerung der Daten verwendet, die über die Datensignalpfade übertragen werden. Wie dies zum Beispiel in dem Zeitsteuerungsdiagramm aus 10 veranschaulicht ist, entspricht eine erste Datenübertragung in einem Ausführungsbeispiel der ansteigenden Flanke von PSTRBP und der abfallenden Flanke von PSTRBN. Eine zweite Datenübertragung entspricht der ansteigenden Flanke von PSTRBN und der abfallenden Flanke von PSTRBP.
  • In einem Ausführungsbeispiel gemäß der weiteren Darstellung in der Abbildung aus 10 sind die Übermittlungsflanken der Strobes PSTRBP/PSTRBN ferner nahe der Mitte des gültigen Datenfensters positioniert. Als Folge dessen erhält der empfangende Agent ein Eingabedaten-Abtastfenster zur Berücksichtigung verschiedener Schrägläufe der Systemzeitsteuerung. In einem Ausführungsbeispiel werden ferner gültige Mindestdaten vor der Strobe-Flanke (tDvb) und gültige Mindestdaten nach der Strobe-Flanke (tDva) von dem empfangenden Hub-Agenten verwendet, um die übermittelten Daten zu identifizieren und zu speichern. Nachdem der empfangende Hub-Agent die eingehenden Daten gespeichert hat, werden die Daten danach über einen kurzen Zeitraum zur neuerlichen Synchronisierung der Daten mit dem Hub-Schnittstellentakt (HLCK) gespeichert, bevor sie gemeinsam mit dem Hub-Agenten weitergeleitet werden.

Claims (13)

  1. Computersystem (100), das folgendes umfasst: eine Zentraleinheit (CPU) (102), die mit einem Speichersteuereinheits-Hub (MCH) (110) gekoppelt ist, der eine erste Schnittstellensteuereinheit (120) aufweist und eine erste Schnittstelle (A), die mit dem MCH (110) gekoppelt ist, um Daten direkt zwischen dem MCH (110) und einem ersten Hub-Agenten (220) in dem Computersystem zu übertragen, wobei das genannte Computersystem dadurch gekennzeichnet ist, dass die genannte erste Schnittstelle folgendes umfasst: einen ersten Datensignalpfad zur Übermittlung von Daten in Paketen unter Verwendung eines Paket-basierenden Split-Transaction-Protokolls; und eine Gruppe von Steuerleitungen, mit einer Systemrücksetzsignalleitung und Anforderungssignalleitungen, die während dem normalen Systembetrieb zur Anforderung der Steuerung der genannten ersten Schnittstelle (A) verwendet werden, wobei die erste Schnittstelle eine Punkt-zu-Punkt-Verbindung zwischen dem MCH und dem ersten Hub-Agenten vorsieht, und wobei die erste Schnittstellensteuereinheit (120) des MCH (110) derart funktionsfähig ist, dass sie das Vorhandensein des ersten Hub-Agenten (220) über die erste Schnittstelle (A) detektiert, unter Verwendung der Anforderungssignalleitung von dem genannten Hub-Agenten zu der genannten ersten Schnittstellensteuereinheit während einer Zurücksetzung des Systems.
  2. Computersystem (100) nach Anspruch 1, wobei das System ferner folgendes umfasst: eine mit dem MCH (110) gekoppelte zweite Schnittstelle (B); und einen mit der zweiten Schnittstelle gekoppelten zweiten Hub-Agenten (230).
  3. Computersystem (100) nach Anspruch 2, wobei der MCH (110) ferner eine zweite Schnittstellensteuereinheit (120) umfasst, die mit der zweiten Schnittstelle (B) gekoppelt ist, welche das Vorhandensein des zweiten Hub-Agenten (230) detektiert.
  4. Computersystem (100) nach Anspruch 2, wobei der erste Hub-Agent (220) eine Netzwerkschnittstellenkarte (160) ist, und wobei der zweite Hub-Agent ein Grafikbeschleuniger (130) ist.
  5. Computersystem (100) nach einem der vorstehenden Ansprüche, wobei die erste Schnittstellensteuereinheit (120) folgendes aufweist: ein Anwesenheitsdetektierungsmodul (225); und eine Steuerlogik (228), die mit dem Anwesenheitsdetektierungsmodul (225) gekoppelt ist.
  6. Computersystem (100) nach Anspruch 5, wobei das Anwesenheitsdetektierungsmodul (225) die erste Schnittstelle (A) überwacht, um das Vorhandensein des ersten Hub-Agenten (220) zu detektieren.
  7. Computersystem (100) nach Anspruch 6, wobei die Steuerlogik (228) auf eine Abrufanforderung anspricht, wenn der erste Hub-Agent (220) detektiert wird, und wobei sie auf die Abrufanforderung nicht anspricht, wenn der erste Hub-Agent (220) nicht detektiert wird.
  8. Computersystem (100) nach Anspruch 5, wobei der erste Hub-Agent (220) ein Anwesenheitsdetektierungsmodul (225) zur Übermittlung eines Anwesenheitsbestätigungssignals über die erste Schnittstelle (A) an das Anwesenheitsdetektierungsmodul (225) aufweist.
  9. Computersystem (100) nach einem der vorstehenden Ansprüche, wobei das System ferner folgendes umfasst: eine mit der CPU (102) gekoppelte Speichersteuereinheit (112); und eine Grafikschnittstelle (130).
  10. Computersystem (100) nach Anspruch 1, wobei das System ferner folgendes umfasst: einen Schnittstellensteuerungs-Hub (ICH) (140), der mit dem MCH (110) gekoppelt ist; eine zweite Schnittstelle (B), die mit dem ICH (140) gekoppelt ist; und einen zweiten Hub-Agenten (230), der mit der zweiten Schnittstelle (B) gekoppelt ist.
  11. Computersystem (100) nach Anspruch 10, wobei der ICH (140) eine mit der zweiten Schnittstelle (B) gekoppelte zweite Schnittstellensteuereinheit (225) umfasst, die das Vorhandensein des zweiten Hub-Agenten (230) detektiert.
  12. Computersystem (100) nach Anspruch 11, wobei der ICH (140) ferner eine Peripheral Component Interface (PCI) Brücke (146) aufweist, die mit einem PCI-Bus (142) gekoppelt ist.
  13. Computersystem (100) nach Anspruch 10, wobei die sich in dem MCH (110) befindenden Komponenten Komponentenadressen in einem ersten Adressraum zugeordnet sind, und wobei die sich in dem ICH (140) befindenden Komponenten Komponentenadressen in einem zweiten Adressraum zugeordnet sind.
DE60013470T 1999-10-07 2000-09-27 Gerät zur initialisierung einer rechnerschnittstelle Expired - Lifetime DE60013470T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US414377 1999-10-07
US09/414,377 US6374317B1 (en) 1999-10-07 1999-10-07 Method and apparatus for initializing a computer interface
PCT/US2000/026584 WO2001027777A1 (en) 1999-10-07 2000-09-27 Method and apparatus for initializing a computer interface

Publications (2)

Publication Number Publication Date
DE60013470D1 DE60013470D1 (de) 2004-10-07
DE60013470T2 true DE60013470T2 (de) 2005-09-15

Family

ID=23641192

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60013470T Expired - Lifetime DE60013470T2 (de) 1999-10-07 2000-09-27 Gerät zur initialisierung einer rechnerschnittstelle

Country Status (9)

Country Link
US (1) US6374317B1 (de)
EP (1) EP1226506B1 (de)
CN (1) CN1193301C (de)
AU (1) AU7724400A (de)
BR (1) BR0014597A (de)
DE (1) DE60013470T2 (de)
HK (1) HK1044609A1 (de)
TW (1) TWI232381B (de)
WO (1) WO2001027777A1 (de)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859846B2 (en) * 1999-05-12 2005-02-22 Sony Corporation Method of distributed recording whereby the need to transition to a second recording device from a first recording device is broadcast by the first recording device
US6636912B2 (en) * 1999-10-07 2003-10-21 Intel Corporation Method and apparatus for mode selection in a computer system
US6721859B1 (en) * 1999-10-21 2004-04-13 Sony Corporation Multi-protocol media storage device implementing protocols optimized for storing and retrieving both asynchronous and isochronous data
US6496895B1 (en) * 1999-11-01 2002-12-17 Intel Corporation Method and apparatus for intializing a hub interface
US6615306B1 (en) * 1999-11-03 2003-09-02 Intel Corporation Method and apparatus for reducing flow control and minimizing interface acquisition latency in a hub interface
US6516375B1 (en) * 1999-11-03 2003-02-04 Intel Corporation Peripheral component interconnect (PCI) configuration emulation for hub interface
US7039047B1 (en) 1999-11-03 2006-05-02 Intel Corporation Virtual wire signaling
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US6754815B1 (en) * 2000-03-31 2004-06-22 Intel Corporation Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US6934817B2 (en) * 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7194634B2 (en) * 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US7073071B1 (en) 2000-03-31 2006-07-04 Intel Corporation Platform and method for generating and utilizing a protected audit log
US6957332B1 (en) * 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US6734862B1 (en) 2000-06-14 2004-05-11 Intel Corporation Memory controller hub
US6976162B1 (en) * 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7720821B1 (en) 2000-06-30 2010-05-18 Sony Corporation Method of and apparatus for writing and reading time sensitive data within a storage device
US7116331B1 (en) 2000-08-23 2006-10-03 Intel Corporation Memory controller hub interface
US7793111B1 (en) * 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US6859208B1 (en) * 2000-09-29 2005-02-22 Intel Corporation Shared translation address caching
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7124292B2 (en) * 2001-05-21 2006-10-17 Sony Corporation Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7124273B2 (en) * 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6820177B2 (en) * 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7142674B2 (en) * 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
KR100481511B1 (ko) * 2002-08-26 2005-04-07 삼성전자주식회사 방송수신장치 및 그 제어방법
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US20040128345A1 (en) * 2002-12-27 2004-07-01 Robinson Scott H. Dynamic service registry
US7900017B2 (en) 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US20050044292A1 (en) * 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US7739521B2 (en) * 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) * 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7636844B2 (en) * 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US20050108534A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Providing services to an open platform implementing subscriber identity module (SIM) capabilities
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050152539A1 (en) * 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US20050216920A1 (en) * 2004-03-24 2005-09-29 Vijay Tewari Use of a virtual machine to emulate a hardware device
US7356735B2 (en) * 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) * 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US20050288056A1 (en) * 2004-06-29 2005-12-29 Bajikar Sundeep M System including a wireless wide area network (WWAN) module with an external identity module reader and approach for certifying the WWAN module
US7305592B2 (en) * 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) * 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) * 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
JP2007052543A (ja) * 2005-08-16 2007-03-01 Fujitsu Ltd バス通信装置、バス通信方法
US7734839B1 (en) 2005-08-25 2010-06-08 American Megatrends, Inc. Method and integrated circuit for providing enclosure management services utilizing multiple interfaces and protocols
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US8078770B1 (en) * 2007-08-10 2011-12-13 American Megatrends, Inc. Combining multiple SGPIO streams to provide device status indicators
US7685329B1 (en) 2007-08-10 2010-03-23 American Megatreads, Inc. Detecting the presence and activity of a mass storage device
US8260976B1 (en) 2009-01-30 2012-09-04 American Megatrends, Inc. Multiple frequency state detection for serial I/O interfaces
US8358100B2 (en) * 2009-11-03 2013-01-22 Maxim Integrated Products, Inc. USB dedicated charger identification circuit
US11449489B2 (en) * 2017-11-09 2022-09-20 International Business Machines Corporation Split transaction coherency protocol in a data processing system

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4033417A1 (de) 1990-10-20 1992-04-23 Basf Ag Verfahren zur herstellung von mit metalloxiden dotierten zinkoxidpigmenten
US5191649A (en) 1990-12-21 1993-03-02 Intel Corporation Multiprocessor computer system with data bus and ordered and out-of-order split data transactions
JP3411300B2 (ja) 1992-02-18 2003-05-26 株式会社日立製作所 情報処理装置
US5553310A (en) 1992-10-02 1996-09-03 Compaq Computer Corporation Split transactions and pipelined arbitration of microprocessors in multiprocessing computer systems
US5590292A (en) 1992-12-08 1996-12-31 Compaq Computer Corporation Scalable tree structured high speed input/output subsystem architecture
US5687388A (en) 1992-12-08 1997-11-11 Compaq Computer Corporation Scalable tree structured high speed input/output subsystem architecture
US5469435A (en) 1994-01-25 1995-11-21 Apple Computer, Inc. Bus deadlock avoidance during master split-transactions
US5533204A (en) 1994-04-18 1996-07-02 Compaq Computer Corporation Split transaction protocol for the peripheral component interconnect bus
US5546546A (en) 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
JPH08147702A (ja) 1994-11-11 1996-06-07 Mitsumi Electric Co Ltd 光ディスク書き込み方法
US5621897A (en) 1995-04-13 1997-04-15 International Business Machines Corporation Method and apparatus for arbitrating for a bus to enable split transaction bus protocols
US5933612A (en) 1995-05-02 1999-08-03 Apple Computer, Inc. Deadlock avoidance in a split-bus computer system
US5996036A (en) 1997-01-07 1999-11-30 Apple Computers, Inc. Bus transaction reordering in a computer system having unordered slaves
US5761444A (en) 1995-09-05 1998-06-02 Intel Corporation Method and apparatus for dynamically deferring transactions
US5675813A (en) 1995-10-26 1997-10-07 Microsoft Corporation System and method for power control in a universal serial bus
US5978874A (en) 1996-07-01 1999-11-02 Sun Microsystems, Inc. Implementing snooping on a split-transaction computer system bus
US5911052A (en) 1996-07-01 1999-06-08 Sun Microsystems, Inc. Split transaction snooping bus protocol
US6021456A (en) 1996-11-12 2000-02-01 Herdeg; Glenn Arthur Method for communicating interrupt data structure in a multi-processor computer system
US6012118A (en) 1996-12-30 2000-01-04 Intel Corporation Method and apparatus for performing bus operations in a computer system using deferred replies returned without using the address bus
US5918025A (en) 1996-12-31 1999-06-29 Intel Corporation Method and apparatus for converting a five wire arbitration/buffer management protocol into a two wire protocol
US5832243A (en) 1996-12-31 1998-11-03 Compaq Computer Corporation Computer system implementing a stop clock acknowledge special cycle
US5870567A (en) 1996-12-31 1999-02-09 Compaq Computer Corporation Delayed transaction protocol for computer system bus
US5930485A (en) 1997-01-07 1999-07-27 Apple Computer, Inc. Deadlock avoidance in a computer system having unordered slaves
US5991824A (en) 1997-02-06 1999-11-23 Silicon Graphics, Inc. Method and system for simultaneous high bandwidth input output
US5909594A (en) 1997-02-24 1999-06-01 Silicon Graphics, Inc. System for communications where first priority data transfer is not disturbed by second priority data transfer and where allocated bandwidth is removed when process terminates abnormally
US6185641B1 (en) * 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US5944805A (en) 1997-08-21 1999-08-31 Advanced Micro Devices, Inc. System and method for transmitting data upon an address portion of a computer system bus during periods of maximum utilization of a data portion of the bus
US5889968A (en) 1997-09-30 1999-03-30 Intel Corporation Method and apparatus for interlocking a broadcast message on a bus

Also Published As

Publication number Publication date
BR0014597A (pt) 2002-06-11
CN1402849A (zh) 2003-03-12
US6374317B1 (en) 2002-04-16
DE60013470D1 (de) 2004-10-07
EP1226506B1 (de) 2004-09-01
WO2001027777A1 (en) 2001-04-19
CN1193301C (zh) 2005-03-16
EP1226506A1 (de) 2002-07-31
AU7724400A (en) 2001-04-23
TWI232381B (en) 2005-05-11
HK1044609A1 (en) 2002-10-25

Similar Documents

Publication Publication Date Title
DE60013470T2 (de) Gerät zur initialisierung einer rechnerschnittstelle
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE19982871B4 (de) Speichersystem mit jeweils einen Speichermodul-Controller enthaltenden Speichermodulen
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE69836426T2 (de) Steuergerät für einen universellen seriellen Bus
DE60037036T2 (de) Vier-gepumpte busarchitektur-/protokoll
DE69836437T2 (de) Speichersystem mit speichermodul mit einem speichermodul-steuerbaustein
DE69832410T2 (de) Pipeline-kommunikationssystem mit fester latenz-zeit unter verwendung von dynamischer echtzeit-bandbreitenzuweisung
DE69722117T2 (de) Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung
DE60017774T2 (de) Verfahren und vorrichtung zur unterstützung von mehrtaktübertragung in einem rechnersystem mit einer punkt-zu-punkt halb-duplex verbindung
DE19900345B4 (de) Schnittstellenmodul für einen Universellen Seriellen Bus (USB) zur Verbindung mit einem USB über eine Programmierschnittstelle für eine USB-Funktion und Vorrichtung zum Anschluß an einen universellen seriellen Bus
DE60313323T2 (de) Dram, der zugriffe verschiedener burst-länge unterstützt, ohne die burst-längeneinstellung im modusregister zu verändern
DE60212190T2 (de) Übermittlung von transaktionstypen zwischen agenten in einem computersystem durch verwendung von paketkopfteilen mit einem erweiterten typen-/längenerweiterungsfeld
DE4142756A1 (de) Datenweg-einrichtung zur kopplung zweier busse
DE112013005044T5 (de) Ausführen von eingehenden PCIE-Schreiboperationen in einen Speicher und Partnereinrichtungen per Dualcast
DE10234991A1 (de) Hostcontrollerdiagnose für einen seriellen Bus
DE10234934A1 (de) Antwortreihenwiederherstellungsmechanismus
DE69726302T2 (de) Busschnittstellensteuerungsschaltung
DE10234990B4 (de) Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE102007029833B4 (de) Mikrocontroller mit Datenmodifikationsmodul und System umfassend ein Datenmodifikationsmodul
DE10030148A1 (de) Brückenvorrichtung
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus
DE10211054A1 (de) USB-Hostcontroller
DE10314175A1 (de) Bussystem sowie Informationsverarbeitungssystem, das ein Bussystem einschliesst

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806