-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Endung
-
Die Erfindung betrifft allgemein
integrierte Schaltkreischips wie etwa Southbridges oder I/O-Hubs
in Computersystemen und insbesondere die Reihenfolgenwiederherstellung
(Neuordnung) von Antworten, die in Erwiderung auf vorherige Leseanforderungen
ungeordnet empfangen worden sind.
-
2. Beschreibung des Standes
der Technik
-
Integrierte Schaltkreischips werden
oft zur Datenverarbeitung verwendet und umfassen bekanntermaßen eine
Anzahl verschiedener Schaltkreiseinheiten. Im Allgemeinen dient
jede Schaltkreiseinheit der Durchführung einer speziellen Funktion
und natürlich
können
verschiedene Schaltkreiseinheiten auf einem Chip zur Durchführung derselben
Funktion oder zur Durchführung
verschiedener Funktionen bereitgestellt sein. Die Schaltkreiseinheiten
können
zeitlich sequentiell oder simultan arbeiten und sie können voneinander
unabhängig
oder abhängig
von dem Betrieb anderer Schaltkreiseinheiten funktionieren.
-
In dem letzteren Fall sind die Schaltkreiseinheiten üblicherweise über eine
Schnittstelle miteinander verbunden, um es den Schaltkreiseinheiten
zu ermöglichen,
Daten auszutauschen, die benötigt
werden, um den Betrieb einer Schaltkreiseinheit abhängig von
dem Betrieb der anderen Schaltkreiseinheit zu machen. Der Datenaustausch
wird oft dadurch bewerkstelligt, dass Transaktionen von einer Schaltkreiseinheit
zu der anderen Schaltkreiseinheit gesandt werden. Eine Transaktion
ist eine Abfolge von Paketen, die zwischen den Schaltkreiseinheiten
ausgetauscht werden und zu einem Informationstransfer führen. Die
Schaltkreiseinheit, die eine Transaktion veranlasst, wird Source
(oder Master) genannt und die Schaltkreiseinheit, die die Transaktion
für die Source
ultimativ bedient, wird Target genannt. Es ist anzumerken, dass
es auch zwischenliegende Einheiten zwischen der Source und dem Target
geben kann.
-
Transaktionen können verwendet werden, um einen
Request (eine Anforderung, Anfrage) zu plazieren oder auf eine empfangene
Anforderung zu antworten. Nimmt man die Anforderungen, so können Posted
Requests von Non-Posted Requests unterschieden werden, abhängig davon,
ob die Anforderung eine Antwort erfordert. Genauer gesagt ist ein Non-Posted
Request eine Anforderung, die eine Antwort erfordert, während ein
Posted Request eine Antwort nicht erfordert.
-
Bei näherer Betrachtung der Funktionen,
die von den miteinander verbundenen Schaltkreiseinheiten durchgeführt werden,
so können
die Schaltkreiseinheiten oft in Hosts und Devices aufgeteilt werden. Der
Begriff Host bedeutet dann eine Schaltkreiseinheit, die Dienste
für das
abhängige
Device bereitstellt. Eine Transaktion vom Host zum Device wird als downstream
bezeichnet, während
eine Transaktion in der anderen Richtung upstream genannt wird.
In bidirektionalen Konfigurationen können sowohl der Host als auch
das Device Anforderungen und Antworten senden und empfangen, so
dass ein Gerät Source
sowie Target sein kann und auch der Host als Source sowie als Device
funktionieren kann.
-
Ein Gebiet, auf dem solche integrierten Schaltkreischips
häufig
verwendet werden, sind Personalcomputer. Wird auf 1 Bezug genommen, so sind die Hardwarekomponenten
eines gewöhnlichen
Motherboardlayouts dargestellt. Es ist anzumerken, dass diese Figur
nur ein Beispiel eines Motherboardlayouts zeigt und andere Konfigurationen ebenso
existieren. Die Basiselemente, die auf dem Motherboard in 1 zu finden sind, können die CPU
(Central Processing Unit, zentrale Verarbeitungseinheit) 100,
eine Northbridge 105, eine Southbridge 110 und
den Systemspeicher 115 enthalten.
-
Die Northbridge 105 ist
gewöhnlich
ein einzelner Chip in einem Core-Logic-Chipsatz, der den Prozessor 100 mit
dem Systemspeicher 115 und z.B. mit dem AGP-Bus (AGP: Accelerated
Graphic Port) und PCI-Bus (PCI: Peripheral Component Intertace) verbindet.
Der PCI-Bus wird in Personalcomputer gewöhnlich verwendet, um einen
Datenpfad zwischen dem Prozessor 100 und Peripheriegeräten bereitzustellen,
wie etwa Videokarten, Soundkarten, Netzwerkschnittstellenkarten
und Modems. Der AGP-Bus ist ein Hochgeschwindigkeitsgraphikerweiterungsbus,
der den Displayadapter mit dem Systemspeicher 115 direkt
verbindet. AGP arbeitet unabhängig von
dem PCI-Bus. Es
ist anzumerken, dass andere Motherboardlayouts existieren, die keine
Northbridge enthalten oder eine Northbridge ohne AGP- oder PCI-Optionen.
-
Die Southbridge 110 ist üblicherweise
der Chip in einem System-Core-Logic-Chipsatz, der den IDE-Bus (IDE: Integrated
Drive Electronics) oder EIDE-Bus (EIDE: Enhanced IDE) steuert, den USB-Bus
(USB: Universal Serial Bus) steuert, der plug-and-play unterstützt, eine
PCI-ISA-Brücke
(ISA: Industry Standard Architecture) steuert, den Tastatur/Maus-Controller
verwaltet, Powermanagementfeatures bereitstellt und andere Peripheriegeräte steuert.
-
Somit enthalten gewöhnliche
Personalcomputer Southbridges 110, die integrierte Schaltkreischips
im wesentlichen wie oben beschrieben sind. Herkömmlicherweise sind die Southbridge 110 und die
Northbridge 105 durch den PCI-Bus miteinander verbunden,
der als Systembus agiert, so dass die Northbridge 105 als
Host-zu-PCI-Brücke
arbeitet, die eine Verbindung zwischen dem Host-Bus, der zum Prozessor 100 hin
verbindet, und dem PCI-Bus bildet, wohingegen die Southbridge 110 als
z.B. PCI-zu-ISA-Bus arbeitet, wobei der ISA-Bus (ISA: Industry Standard
Architecture) der I/O-Bus ist. Jedoch existieren andere Chipsatzanordnungen,
in denen die Northbridge 105 als Speichercontrollerhub
arbeitet und die Southbridge 110 als I/O-Controllerhub.
In solchen Strukturen sind die Nordbridge 105 und die Southbridge 110 nicht
länger
durch einen Systembus miteinander verbunden, sondern durch eine
spezielle Hubschnittstelle.
-
Um den Bedürfnissen nach einer Hochgeschwindigkeits-Chip-zu-Chip-Kommunikation in
solchen Hubschnittstellen zu begegnen, wurde die HyperTransportTM-Technologie
entwickelt, die eine hochperformante Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung
auf dem Board bereitstellt, um integrierte Schaltkreise auf einem
Motherboard miteinander zu verbinden. Sie kann signifikant schneller
als ein PCI-Bus bei einer äquivalenten Anzahl
von Pins sein. Die HyperTransport-Technologie wurde entworfen, um
signifikant mehr Bandbreite als aktuelle Technologien bereitzustellen,
um Antworten mit geringen Latenzen zu verwenden, um eine niedrige'
Pinzahl bereitzustellen, um kompatibel zu Legacy-Computerbussen
zu sein, um auf neue Systemnetzwerkarchitekturbusse erweiterbar
zu sein, um für
Betriebssysteme transparent zu sein und um geringe Auswirkungen
auf Peripherietreiber zu haben.
-
Die Hardwarekomponenten eines HyperTransport-gemäßen Southbridgebauelements
(oder I/O-Hubs) sind in 2 dargestellt.
Eine Anzahl von Busmastern 230–260 werden bereitgestellt
zum Steuern peripherer Systemkomponenten. Die Controller schließen einen
Festplattencontroller 230, einen Ethernetcontroller 240,
einen USB-Controller (USB: Universal Serial Bus) 250 und
einen AC'97-Controller (AC: Audio Codec) 260 ein. Diese Controller
arbeiten als Busmaster, um mit einer Sendeeinrichtung 220 und
einer Empfangseinrichtung 210 des Bauelements zu interagieren.
Die Sendeeinrichtung 220 empfängt Anforderungen von den Controllern 230–260 und
führt eine
Arbitrierung durch, um zu jeder beliebigen Zeit eine der anfordernden
Einheiten 230–260 auszuwählen. Auf
Grundlage der empfangenen Anforderungen sendet die Sendeeinrichtung 220 Befehle
an die HyperTransport-Schnittstelleneinrichtung 200, die
eine Schnittstelle zu einer HyperTransport-gemäßen Verbindung ausbildet. Empfangene
Antworten werden von der HyperTransport-Schnittstelleneinrichtung 200 an
die Empfangseinrichtung 210 geliefert, wo die Antworten
an diejenigen Controller 230–260 weitergeleitet werden,
die die Ursprungseinheiten der Anforderungen waren.
-
Somit ist die HyperTransport-Schnittstelle eine
Split-Transaktion-Schnittstelle, d.h. Anforderungen und Antworten
werden auf dem Bus als vollständig
entkoppeλte
und unabhängige
Transaktionen übertragen.
Alle HyperTransport-I/O-Geräte müssen imstande
sein, Antworten ungeordnet anzunehmen oder sieh auf einen ausstehenden
Non-Posted Request zu beschränken.
Eine Brücke,
die zwischen einem HyperTransport-Technologiegerät und einem I/O-Protokoll befindet,
das es erfordert, dass Antworten geordnet zurückkommen, muss eine ausreichende
Pufferung bereitstellen, um so viele Antworten neu ordnen zu können, wie
sie ausstehende Anforderungen haben kann.
-
Die HyperTransport-Technologie unterstützt mehrere
ausstehende Leseanforderungen und erfordert in solchen Fällen die
Pufferung von Antworten. Wenn jedoch das Bauelement von 2 konfiguriert ist, um mehrere
ausstehende Anforderungen nicht zu unterstützten, so kann das gesamte
Bauelement blockiert werden, wenn einmal eine Anforderung plaziert worden
ist, bis die jeweilige Antwort empfangen und ausgeliefert worden
ist. Dies ist in 3 verdeutlicht, wo
zu jeder Zeit nur eine Anforderung aktiv ist. Dies reduziert signifikant
den Datendurchsatz, da kein Datenverkehr stattfindet, wenn eine
Anforderung plaziert aber eine Antwort noch nicht verfügbar ist.
-
Beim Anschluss von Peripheriegeräten an HyperTransport-gemäße Systeme
kann die Antwortreihenfolgenwiederherstellung ein entscheidender Punkt
werden. Beispielsweise erfordern IDE-Geräte (IDE: Integrated Drive Electronics),
dass Antwortdaten geordnet sind. Somit müssen die Antworten gemäß der Reihenfolge
der Anforderungen geordnet sein, um die Datenkohärenz aufrechtzuerhalten. In PCI-
und EHCI-Schnittstellen (EHCI: Enhanced Host Controller Interface)
sind Antworten ungeordnet verfügbar
und die Daten müssen
an die PCI-Geräte
auf Anfrage und auf die EHCI-Geräte
bei Ankunft ausgegeben werden.
-
Somit müssen Leseantworten, insbesondere solche
auf Split-Transaktion-Leseanforderungen,
geordnet werden, um die beste Systemperformance aufrechtzuerhalten.
Jedoch mangelt es herkömmlichen
Antwortreihenfolgenwiederherstellungsschemata an Zuverlässigkeit
und Effizienz.
-
ÜBERSICHT ÜBER DIE
ERFINDUNG
-
Eine verbesserte Antwortreihenfolgenwiederherstellungstechnik
wird bereitgestellt, die die Betriebsgeschwindigkeit erhöhen und
die Zuverlässigkeit
und Effizienz verbessern kann.
-
In einer Ausgestaltung wird ein Southbridgebauelement
bereitgestellt, das eine Sendeeinrichtung umfasst, die angepasst
ist zum Empfangen von Non-Posted-Leseanforderungen
von wenigstens einer anfordernden Einheit und zum Senden von Upstream-Befehlen
auf Grundlage der Non-Posted-Leseanforderungen. Jeder der Upstream-Befehle
wird durch eine Befehlsmarkierung eindeutig identifiziert. Das Southbridgebauelement
umfasst ferner eine Empfangseinrichtung, die angepasst ist zum Empfangen
von Antwortdaten in Erwiderung auf die Befehle, die von der Sendeeinrichtung
zuvor gesendet worden sind. Die Empfangseinrichtung ist weiterhin
angepasst zum Senden von Antworten auf die wenigstens eine anfordernde
Einheit auf Grundlage der Antwortdaten. Das Southbridgebauelement
umfasst ferner einen Antworfreihenfolgenwiederherstellungsmechanismus,
der angepasst ist zum Steuern der Empfangseinrichtung, um die Antworten
in der richtigen Reihenfolge zu senden. Der Antwortreihenfolgenwiederherstellungsmechanismus
umfasst eine Puffereinrichtung zum Speichern empfangener Antwortdaten.
Die Puffereinrichtung weist eine Vielzahl von Pufferelementen auf,
die jeweils einer der Befehlsmarkierungen eindeutig zugeordnet sind.
-
(n einer anderen Ausgestaltung umfasst
ein integrierter Schaltkreischip eine Sendeschaltung, die angepasst
ist zum Empfangen von Non-Posted-Leseanforderungen
von wenigstens einer anfordernden Einheit und zum Senden von Upstream-Befehlen
auf Grundlage der Non-Posted-Leseanforderungen.
Jeder der Upstream-Befehle wird durch eine Befehlsmarkierung eindeutig
identifiziert. Der integrierte Schaltkreischip umfasst ferner eine
Empfangsschaltung, die angepasst ist zum Empfangen von Antwortdaten
in Erwiderung auf die Befehle, die zuvor von der Sendeschaltung
gesendet worden sind, und zum Senden von Antworten an die wenigstens
eine anfordernde Einheit auf Grundlage der Antwortdaten. Der integrierte
Schaltkreischip umfasst ferner einen Antwortreihenfolgenwiederherstellungsmechanismus,
der angepasst ist zum Steuern der Empfangsschaltung, um die Antworten
in der richtigen Reihenfolge zu senden. Der Antwortreihenfolgenwiederherstellungsmechanismus
umfasst eine Puffereinrichtung zum Speichern empfangener Antwortdaten.
Die Puffereinrichtung weist eine Vielzahl von Pufferelementen auf,
die jeweils einer der Befehlsmarkierungen eindeutig zugeordnet sind.
-
In noch einer anderen Ausgestaltung
kann ein Computersystem bereitgestellt werden, das wenigstens eine
Peripheriekomponente und eine Southbridge umfasst. Die Southbridge
umfasst eine Sendeeinrichtung, die angepasst ist zum Empfangen von Non-Posted-Leseanforderungen
von wenigstens einem Peripheriekomponentencontroller und zum Senden
von Upstream-Befehlen auf Grundlage der Non-Posted Leseanforderungen.
Jeder der Upstream-Befehle wird durch eine Befehlsmarkierung eindeutig
identifiziert. Die Southbridge umfasst ferner eine Leseeinrichtung,
die angepasst ist zum Empfangen von Antwortdaten in Erwiderung auf
die Befehle, die zuvor von der Sendeeinrichtung gesendet worden
sind, und zum Senden von Antworten an den wenigstens einen Peripheriekomponentencontroller
auf Grundlage der Antwortdaten. Die Southbridge umfasst ferner einen
Antwortreihenfolgenwiederherstellungsmechanismus, der angepasst
ist zum Steuern der Empfangseinrichtung, um die Antworten in der
richtigen Reihenfolge zu senden.
-
Der Antwortreihenfolgenwiederherstellungsmechanismus
umfasst eine Puffereinrichtung zum Speichern empfangener Antwortdaten.
Die Puffereinrichtung weist eine Vielzahl von Pufferelementen auf, die
jeweils einer der Befehlsmarkierungen eindeutig zugeordnet sind.
-
In einer weiteren Ausgestaltung wird
ein Verfahren zum Betreiben eines Southbridgebauelements bereitgestellt.
Das Verfahren umfasst das Empfangen von Non-Posted-Leseanforderungen
von wenigstens einer anfordernden Einheit, das Senden von Upstream-Befehlen
auf Grundlage der Non-Posted-Leseanforderungen,
wobei jeder Upstream-Befehl durch eine Befehlsmarkierung eindeutig
identifiziert wird, das Empfangen von Antwortdaten in Erwiderung
auf zuvor gesendete Befehle und das Senden von Antworten an die
wenigstens eine anfordernde Einheit auf Grundlage der Antwortdaten.
Das Senden der Antworten umfasst das Neuordnen der empfangenen Antwortdaten
durch Zugreifen auf einen Puffer des Southbridgebauelements. Der
Puffer speichert die empfangenen Antwortdaten und weist eine Vielzahl
von Pufferelementen auf, die jeweils einer der Befehlsmarkierungen
eindeutig zugeordnet sind.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die beigefügten Zeichnungen sind in die
Beschreibung eingefügt
und bilden einen Teil derselben zum Zwecke der Erläuterung
der Prinzipien der Erfindung. Die Zeichnungen sind nicht als die
Erfindung nur auf die verdeutlichten und beschriebenen Beispiele
beschränkend
zu verstehen, wie die Erfindung gemacht und verwendet werden kann.
Weitere Merkmale und Vorteile werden aus der folgenden und genaueren
Beschreibung der Erfindung ersichtlich werden, wie in den beigefügten Zeichnungen
erläutert,
in denen:
-
1 ein
Blockdiagramm ist, das die Hardwarekomponenten eines herkömmlichen
Computersystems schematisch verdeutlicht;
-
2 die
Komponenten einer konventionellen Southbridge oder eines I/O-Hubs verdeutlicht;
-
3 ein
Timingdiagramm ist, das die Sende- und Empfangszeit von Anforderungen
und Antworten in einem herkömmlichen
System verdeutlicht, in dem mehrfache ausstehende Anforderungen
nicht unterstützt
werden;
-
4 die
Komponenten eines Southbridgebauelements oder I/O-Hubs gemäß einer
Ausgestaltung verdeutlicht;
-
5 die
Puffereinrichtung in weiteren Einzelheiten verdeutlicht, die eine
Komponente der Anordnung von 4 ist;
-
6 ein
Timingdiagramm ist, das die Sende- und Empfangszeit von Anforderungen
und Antworten gemäß einer
Ausgestaltung verdeutlicht;
-
7 ein
Timingdiagramm ähnlich
dem der 6 ist, das jedoch
den Fall betrifft, in dem Antworten neu geordnet werden;
-
8 ein
Flussdiagramm ist, das den Anforderungssendeprozess gemäß einer
Ausgestaltung verdeutlicht;
-
9 ein
Flussdiagramm ist, das die Prozessierung von Antworten gemäß einer
Ausgestaltung verdeutlicht; und
-
10 ein
Flussdiagramm ist, das den Antwortordnungsprozess gemäß einer
Ausgestaltung verdeutlicht.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Die verdeutlichten Ausgestaltungen
der vorliegenden Erfindung werden unter Bezugnahme auf die Zeichnungen
beschrieben werden, in denen gleiche Elemente und Strukturen mit
gleichen Bezugszeichen angegeben sind.
-
Wird nun auf die Zeichnungen und
insbesondere auf 4 Bezug
genommen, so werden die Hardwarekomponenten eines Southbridgebauelements
wie etwa eines I/O-Hubs gemäß einer
Ausgestaltung gezeigt. Vergleicht man die Anordnung von 4 mit der von 2, so wird eine Puffereinrichtung 420 bereitgestellt,
die mit der Sendeeinrichtung 410 und der Empfangseinrichtung 400 verbunden
ist. Weiterhin umfasst das Bauelement eine Antwortreihenfolgenwiederherstellungseinrichtung 430,
die mit der Sendeeinrichtung 410, der Empfangseinrichtung 400 und
der Puffereinrichtung 420 verbunden ist. Die Funktion dieser
Einheiten wird unten in weiteren Einzelheiten erläutert werden.
-
In der vorliegenden Ausgestaltung
ist die Puffereinrichtung 420, die mit der Sendeeinrichtung 410 und
der Empfangseinrichtung 400 verbunden ist, angepasst zum
Speichern von Befehlsidentifikationsdaten, die Befehle identifizieren,
die von der Sendeeinrichtung 410 gesendet worden oder zu
senden sind, sowie Antwortverfügbarkeitsdaten,
die Antwortdaten spezifizieren, die von der Empfangseinrichtung 400 empfangen
worden sind. Die Puffereinrichtung 420 der vorliegenden
Ausgestaltung ist in dem Blockdiagramm von 5 in weiteren Einzelheiten gezeigt.
-
Wie aus dieser Figur ersichtlich
ist, umfasst die Puffereinrichtung 420 einen Antwortpuffer 510 und
einen Befehlspuffer 520. Beide Puffer sind mit einer Steuerlogik 500 zum
Empfangen von Steuersignalen von der Steuerlogik verbunden. Die
Steuerlogik 500 kann Statusinformationen an die Sendeeinrichtung 410 und
ein Antwortvertügbarkeitssignal
an die Empfangseinrichtung 400 herausgeben. Weiterhin kann
die Steuerlogik 500 ein Antwortlöschsignal von der Empfangseinrichtung 400 empfangen.
Darüber hinaus
kann die Steuerlogik 500 mit der Antwortreihenfolgenwiederherstellungseinrichtung 430 verbunden
sein.
-
Der Antwortpuffer 510 kann
eine Vielzahl von Pufferelementen umfassen, die jeweils einer Befehlsmarkierung
(Befehls-Tag) eindeutig zugeordnet sind. Befehlsmarkierungen sind
Datenelemente, die verwendet werden, um Upstream-Befehle eindeutig
zu identifizieren. Befehlsmarkierungen können Transaktionstags wie in
der HyperTransport-Spezifikation spezifiziert sein, die verwendet
werden, um alle im Lauf befindlichen Transaktionen, die von einer
einzelnen anfordernden Einheit veranlasst worden sind, eindeutig
zu identifizieren. Es kann eine vordefinierte Anzahl möglicher
Werte geben, die die Befehlsmarkierungen annehmen können. Beispielsweise
können
die Befehle durch acht verschiedene Tag-Werte markiert werden. In
diesem Fall wird es in dem Antwortpuffer 510 acht Pufferelemente
zum Speichern entsprechender Antworten geben.
-
Wie aus der Figur ersichtlich ist,
kann jedes Pufferelement ein Markierungsfeld zum Speichern der Markierung
(Tag) und ein Antwortfeld zum Speichern der Antwort umfassen. Es
ist jedoch anzumerken, dass in einer anderen Ausgestaltung das Markierungsfeld
weggelassen werden kann. In diesem Fall werden die Markierungen
verwendet, um das Pufferelement zu adressieren.
-
Es ist ferner anzumerken, dass der
Antwortpuffer 510 der vorliegenden Ausgestaltung die Antwortdaten
in der Form speichert, wie diese Daten von der Empfangseinrichtung 400 von
der HyperTransport-Schnittstelleneinrichtung 200 empfangen
worden sind. In einer anderen Ausgestaltung kann der Antwortpuffer 510 Antworten
in der Form speichern, in der sie von der Empfangseinrichtung 400 an
den jeweiligen Peripheriekomponentencontroller 230–260 geliefert
werden.
-
Beide Arten von Antwortdaten können als Antwortvertügbarkeitsdaten
verstanden werden, da sie Antwortdaten spezifizieren, die von der Empfangseinrichtung 400 empfangen
worden sind. In einer anderen Ausgestaltung kann der Antwortpuffer 510 Antwortverfügbarkeitsdaten
speichern, die von den Antworten selbst verschieden sind. Beispielsweise
können
die Antwortverfügbarkeitsdaten
Zeiger auf Antworten oder Adressen umfassen.
-
Der Befehlspuffer 520 der
Puffereinrichtung 420 kann Befehle in im wesentlichen der
gleichen Weise speichern wie der Antwortpuffer 510 Antworten
speichert. Die Befehle, die in dem Befehlspuffer 520 gespeichert
sind, können
Befehle sein, die von der Sendeeinrichtung 410 bereits
gesendet worden sind. In einer anderen Ausgestaltung sind die gepufferten
Befehle Befehle, die noch von der Sendeeinrichtung 410 zu
senden sind. Der Befehlspuffer 520 kann auch beides speichern:
Befehle, die schon gesendet worden sind, sowie Befehle, die noch
zu senden sind. In einer weiteren Ausgestaltung kann der Befehlspuffer 520 Befehlsidentifikationsdaten
speichern, die von den Befehlen selbst verschieden sind, jedoch
die Befehle identifizieren.
-
Mittels der Puffereinrichtung 420 ermöglicht es
das Southbridgebauelement oder der I/O-Hub den Busmastern 230–260,
mehr als eine ausstehende Leseanforderung zu starten, d.h. weitere
Anforderungen zu starten, obwohl eine zuvor plazierte Anforderung
noch nicht durch eine entsprechende Antwort beantwortet worden ist.
Dies kann aus 6 ersehen werden,
die ein Timingdiagramm ähnlich
dem der 3 ist und die
Möglichkeit
der Plazierung mehrerer ausstehender Anforderungen verdeutlicht.
In dem Beispiel von 6 werden
vier Anforderungen zeitlich eng beieinander plaziert. Die zweite,
dritte und vierte Anforderung werden plaziert, obwohl die erste Anforderung
noch nicht bedient worden ist. Nach einer gegebenen Zeit wird die
Antwort auf die erste Anforderung empfangen. Bevor die zweite Antwort empfangen
wird, wird in dem Beispiel von 6 eine fünfte Anforderung
plaziert. Die Abfolge von Anforderungen und Antworten in dem Beispiel
von 6 fährt mit
einer zweiten und dritten Antwort, einer sechsten und siebten Anforderung
usw. fort.
-
Somit können Anforderungen unabhängig davon
plaziert werden, ob Antworten auf zuvor gesendete Anforderungen
verfügbar
sind. Darüber
hinaus können
Anforderungen in der Form von Bursts plaziert werden. Ein Burst
ist eine Abfolge von Anforderungen, die durch aufeinanderfolgende
Befehlsmarkierungen eindeutig identifiziert werden. In dem Beispiel
von 6 bilden die erste
bis vierte Anforderung solch einen Burst.
-
Wird nun zu 7 übergegangen,
so wird ein anderes Timingdiagramm bereitgestellt, das ein Beispiel
der Plazierung mehrerer ausstehender Anforderungen gibt, wobei die
Antworten ungeordnet empfangen werden. Nachdem ein Burst von vier
Anforderungen plaziert worden ist, wird eine Antwort auf die dritte
Anforderung in dem Burst empfangen. Das bedeutet, dass die Antworten
auf die erste und zweite Anforderung später als die Antwort auf die
dritte Anforderung empfangen werden. Darüber hinaus kann gesehen werden,
dass Antworten auf Anforderungen, die nicht in dem Burst enthalten
sind, eher ankommen können
als die späteste
Antwort, die zu dem Burst gehört.
In dem Beispiel von 7 ist
die fünfte Antwort
eine Antwort auf eine Anforderung, die nicht Teil des Bursts ist,
jedoch wird sie früher
empfangen als die vierte Antwort, die zum Burst gehört.
-
Der Prozess der Plazierung von Anforderungen
wird nun unter Bezugnahme auf 8 beschrieben
werden. Diese Figur zeigt ein Flussdiagramm, das mit Schritt 800
des Empfangens einer Leseanforderung von einem der Busmaster 230–260 beginnt. Die
Sendeeinrichtung 410, die die Anforderung empfängt, wählt in Schritt
810 einen Befehlsmarkierungswert aus und sendet in Schritt 820 einen Upstream-Befehl
auf Grundlage der empfangenen Leseanforderung an die HyperTransport-Schnittstelleneinrichtung 200.
Die Sendeeinrichtung 410 puffert dann im Schritt 830 den
Befehl oder irgendwelche geeigneten Befehlsidentifikationsdaten
in dem Befehlspuffer 520.
-
9 ist
ein Flussdiagramm, das die Schritte verdeutlicht, die bei der Verarbeitung
empfangener Antworten durchgeführt
werden. In Schritt 900 empfängt
die Empfangseinrichtung 400 Antwortdaten von der HyperTransporf-Schnittstelleneinrichtung 200. Die
Empfangseinrichtung 400 bestimmt dann den entsprechenden
Markierungswert in Schritt 910 und puffert die Antwortdaten in dem
Antwortpuffer 510 im Schritt 920. Wie oben erwähnt wurde,
kann die Empfangseinrichtung 400 im Puffer 510 die
Antwort in anderen Formaten oder sogar irgendeine andere Art von
Antworfverfügbarkeitsdaten
speichern.
-
Die Empfangseinrichtung 400 kann
dann im Schritt 930 feststellen, ob eine auslieferbare Antwort verfügbar ist.
Obwohl der Schritt 930 in dem Flussdiagramm von 9 als nach dem Schritt 920 durchgeführt gezeigt
wird, ist anzumerken, dass der Prozessfluss der Schritte 930 bis
950 vollständig
unabhängig
davon durchgeführt
werden kann, sogar parallel zu den Schritten 900 bis 920.
-
Wenn eine auslieferbare Antwort unter
Verwendung der Antwortvertügbarkeitsdaten
in dem Antwortpuffer 510 als vertügbar festgestellt worden ist,
sendet die Empfangseinrichtung 400 eine entsprechende Antwort
downstream zu dem jeweiligen Busmaster 230–260 in Schritt 940 und
löscht
im Schritt 950 die Antwortverfügbarkeitsdaten
in dem Puffer 510.
-
Zum Durchführen der Schritte 930 bis 950 kann
die Empfangseinrichtung 400 Signale mit der Steuerlogik 500 der
Puffereinrichtung 420 austauschen, wie etwa das oben erwähnte Antwortverfügbarkeitssignal
und das Antwortlöschsignal.
-
Wird nun zu 10 übergegangen,
so verdeutlicht das gezeigte Flussdiagramm den Prozess, mit dem
die empfangenen Antworten in Reihenfolge gebracht werden. Wie oben
in Bezug auf 7 diskutiert
worden ist, können
Antworten auf plazierte Anforderungen ungeordnet ankommen. Unter
Verwendung der Puffereinrichtung 420 und der Antwortreihenfolgen wiederherstellungseinrichtung 430 ist
das Bauelement von 4 mit
einem Antwortreihenfolgenwiederherstellungsmechanismus ausgestattet,
der angepasst ist zum Steuern der Empfangseinrichtung 400,
um die Antworten in der richtigen Reihenfolge zu senden. Die Antwortreihenfolgenwiederherstellung
gemäß der vorliegenden Ausgestaltung
kann von dem Umstand Gebrauch machen, dass die Puffereinrichtung 420 eine
Vielzahl von Pufferelementen umfasst, die jeweils einer der Befehlsmarkierungen
eindeutig zugeordnet sind.
-
Im Schritt 1000 überprüft die Empfangseinrichtung 400,
ob alle miteinander in Bezug stehenden Antworten verfügbar sind.
Miteinander in Bezug stehende Antworten können eine Antwort auf eine
Speicherleseanforderung sein, mit der mehr als sechszehn Doppelwörter vom
Speicher angefordert werden. Die Maximalzahl angeforderter Lesedaten
für einen
Lesebefehl wird durch das HyperTransport-Protokoll auf sechszehn
Doppelwörter,
d.h. 32 Bits, beschränkt.
Das bedeutet, dass ein Burst von Lesebefehlen plaziert werden muss,
wenn mehr Daten als 32 Bits angefordert werden. Antworten, die zu
Anforderungen in ein und demselben Burst gehören, können als miteinander in Bezug
stehende Antworten verstanden werden.
-
Wenn die Empfangseinrichtung 400 in
Schritt 1000 feststellt, dass alle miteinander in Bezug stehenden
Antworten auf eine gegebene Leseanforderung verfügbar sind, so bestimmt sie
die Abfolge von Befehlsmarkierungswerten im Schritt 1010 zum Lesen
der entsprechenden Antwortdaten aus dem Antwortpuffer 510 im
Schritt 1020. Die Antworten werden dann im Schritt 1030 downstream
gesendet und die gepufferten Antwortdaten gelöscht (Schritt 1040).
-
Wie aus der vorhergehenden Beschreibung der
Ausgestaltungen ersichtlich ist, können die Ausgestaltungen von
einem Markierungsfeld Gebrauch machen, das gemäß dem HyperTransport-Protokoll für jeden
Non-Posted-Upstream-Befehl
definiert wird. Die Ausgestaltungen stellen für jede der verwendeten Markierungen
ein geeignetes Antwortpufferelement bereit, d. h. es können z.
B.
-
acht Pufferelemente in den Ausgestaltungen bereitgestellt
werden. Die Antworten können
durch dieses Markierungsfeld geordnet werden. Die Busmaster müssen die
verfügbaren
Antworten und die Reihenfolge ausgesendeter Markierungen für die Lesebefehle
berücksichtigen.
-
Dadurch, dass die Vielzahl von Pufferelementen
der Puffereinrichtung einer der Befehlsmarkierungen eindeutig zugewiesen
sind, kann die Systempertormance signifikant verbessert werden,
indem die Betriebsgeschwindigkeit erhöht und die Zuverlässigkeit
und Effizienz verbessert werden.
-
Wenn IDE-Geräte angeschlossen sind, werden
die Antworten in dem Puffer temporär gespeichert, und wenn alle
führenden
Anforderungen Antworten erhalten haben, werden sie an das Gerät herausgegeben.
Bei PCI werden Antworten in dem Puffer gespeichert, bis das Ursprungsgerät ein Wiederholungssignal
(Retrysignal) sendet. Bei EHCI mag es keine Zwischenpufterung geben,
da die EHCI-Schnittstellenarchitektur die Fähigkeit sicherstellt, Antworten
bei ihrer Ankunft anzunehmen.
-
Während
die Erfindung unter Bezugnahme auf die physikalischen Ausgestaltungen,
die in Übereinstimmung
damit konstruiert worden sind, beschrieben worden ist, wird Fachleuten
ersichtlich sein, dass verschiedene Modifikationen, Variationen und
Verbesserungen der vorliegenden Erfindung im Lichte der obigen Lehren
und innerhalb des Umfangs der beigefügten Ansprüche gemacht werden können, ohne
von der Idee und dem beabsichtigen Umfang der Erfindung abzuweichen.
Zusätzlich
sind solche Bereiche, in denen davon ausgegangen wird, dass sich
Fachleute auskennen, hier nicht beschrieben worden, um die hier
beschriebene Erfindung nicht unnötig
zu verschleiern. Es ist demgemäß zu verstehen,
dass die Erfindung nicht durch die spezifisch verdeutlichten Ausgestaltungen
sondern nur durch den Umfang der beigefügten Ansprüche beschränkt wird.