-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die Erfindung betrifft allgemein
Southbridges und entsprechende integrierte Schaltkreise, Computersysteme
und Verfahren, und insbesondere die Implementierung von Ordnungsregeln
beim Senden von Befehlen verschiedener Typen.
-
2. Beschreibung des Standes
der Technik
-
Integrierte Schaltkreischips werden
oft zur Datenverarbeitung verwendet und umfassen bekanntermaßen eine
Anzahl verschiedener Schaltkreiseinheiten (Schaltungseinheiten).
Allgemein dient jede Schaltkreiseinheit der Durchführung einer
speziellen Funktion, und es kann natürlich verschiedene Schaltkreiseinheiten auf
einem Chip zur Durchführung
derselben Funktion oder zur Durchführung verschiedener Funktionen
geben. Die Schaltkreiseinheiten können zeitlich sequentiell oder
simultan arbeiten und unabhängig
voneinander funktionieren, oder auch abhängig vom Betrieb anderer Schaltkreiseinheiten.
-
In letzterem Fall sind Schaltkreiseinheiten
in der Regel über
eine Schnittstelle miteinander verbunden, um es den Schaltkreiseinheiten
zu gestatten, 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 durch das Senden von Transaktionen von einer Schaltkreiseinheit
zu der anderen Schaltkreiseinheit bewerkstelligt. 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 zwischen der Source und dem Target auch zwischenliegende
Einheiten geben kann.
-
Transaktionen können verwendet werden, um einen
Request (Anforderung, Anfrage) zu plazieren oder auf einen empfangenen
Request zu antworten. Nimmt man die Requests, so können Posted-Requests von
Non-Posted-Requests
unterschieden werden, abhängig
davon, ob der Request eine Antwort erfordert. Genauer gesagt ist
ein Non-Posted-Request ein Request, der eine Antwort erfordert,
während
ein Posted-Request keine Antwort benötigt.
-
Befasst man sich mit den 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 als upstream bezeichnet
wird. In bidirektionalen Konfigurationen können sowohl der Host als auch
das Device Requests und Antworten senden und empfangen, so dass
ein Device Source sowie Target sein kann, und auch der Host kann
als Source oder Target funktionieren.
-
Ein Gebiet, in dem solche integrierten
Schaltkreischips häufig
verwendet werden, sind Personalcomputer. Wird auf 1 Bezug genommen, so sind die Hardwarekomponenten
eines gewöhnlichen
Motherboardlayouts gezeigt. Es ist anzumerken, dass diese Figur
nur ein Beispiel eines Motherboardlayouts zeigt und andere Konfigurationen
ebenfalls existieren. Die Grundelemente, die auf dem Motherboard
von 1 zu finden sind,
schließen
die CPU (Central Processing Unit, zentrale Verarbeitungseinheit)
100,
eine Northbridge 105, eine Southbridge 110 und
den Systemspeicher 115 ein.
-
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
Interface) verbindet. Der PCI-Bus wird in Personalcomputern gewöhnlich verwendet,
um einen Datenpfad zwischen dem Prozessor 100 und Peripheriegeräten wie
etwa Videokarten, Soundkarten, Netzwerkschnittstellenkarten und
Modems bereitzustellen. Der AGP-Bus ist ein Hochgeschwindigkeitsgraphikerweiterungsbus,
der den Displayadapter und den Systemspeicher 115 direkt verbindet.
AGP arbeitet unabhängig
vom 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
gewöhnlich
derjenige Chip in einem System-Core-Logic-Chipsatz, der den IDE-Bus (IDE:
Integrated Drive Electronics) oder EIDE-Bus (EIDE: Enhanced IDE)
steuert, einen 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 über
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 eine Verbindung zu
dem Prozessor 100 bereitstellt, und den PCI-Bus ausbildet,
wobei die Southbridge 110 z. B. als 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 Northbridge 105 und die Southbridge 110 nicht
länger über einen
Systembus miteinander verbunden, sondern über ein spezielles Hubinterface.
-
Um den Bedarf an Hochgeschwindigkeits-Chip-zu-Chip-Kommunikation
in solchen Hubschnittstellen zu erfüllen, wurde die HyperTransportTM-Technologie
entwickelt, die eine hochperformante Hochgeschwindigkeits-Punkt-Zu-Punkt-Verbindung
auf dem Board zur Verbindung integrierter Schaltungen miteinander
auf einem Motherboard bereitstellt. Sie kann signifikant schneller
als ein PCI-Bus bei einer äquivalenten
Anzahl von Pins sein. Die HyperTransport-Technologie ist entworfen
worden, um signifikant mehr Bandbreite als aktuelle Technologien
bereitzustellen, um Antworten mit geringer Latenz zu verwenden,
um eine geringe Pinzahl bereitzustellen, um zu Legacy-Computerbussen
kompatibel zu sein, um auf neue Systemnetzwerkarchitekturbusse erweiterbar
zu sein, um für
Betriebssysteme transparent zu sein, und um eine geringe Auswirkung
auf Peripherietreiber zu haben.
-
Die Hardwarekomponenten eines HyperTransport-gemäßen Southbridgebauelements
(oder I/O-Hubs) sind in 2 gezeigt.
Eine Anzahl von Busmastern 230 – 260 werden bereitgestellt,
um periphere Systemkomponenten zu steuern. Die Controller können beispielsweise
einen Festplattencontroller 230, einen Ethernetcontroller 240,
einen USB-Controller (USB: Universal Serial Bus) 250 und
einen AC'97-Controller
(AC: Audio Codec) 260 einschließen. Diese Controller arbeiten
als Busmaster, um mit einer Sendeeinrichtung 220 und einer
Empfangseinrichtung 210 des Bauelements zu interagieren.
Die Sendeeinrichtung 220 empfängt Requests von den Controllern 230 – 260 und
führt eine
Arbitrierung durch, um zu jeder Zeit einen der anfordernden Einheiten 230 – 260 auszuwählen. Auf
Grundlage der empfangenen Requests sendet die Sendeeinrichtung 220 Befehle
an die HyperTransport-Schnittstelleneinrichtung 200, die
eine Schnittstelle zu einer HyperTransport-gemäßen Verbindung unterhält. Empfangene
Antworten werden von der HyperTransport-Schnittstelleneinrichtung 200 der
Empfangseinrichtung 210 zugeführt, wo die Antworten an die
jeweiligen Controller 230 – 260 weitergeleitet
werden, die die Ursprungseinheiten der Requests waren. Somit ist
die HyperTransport-Schnittstelle eine Split-Transaction-Schnittstelle, d. h. Requests
und Antworten werden auf dem Bus als vollständig entkoppelte und unabhängige Transaktionen übertragen.
-
Die HyperTransport-Spezifikation
definiert drei Typen von Befehlspaketen: Posted-Befehle, Non-Posted-Befehle
und Antworten. Ordnungsregeln werden für alle Typen des I/O-Verkehrs
definiert. Geordnete Operationen, die Antworten zurückgeben
(Lesevorgänge
oder Non-Posted-Schreibvorgänge)
müssen
ihre Vervollständigung
beim Target in der richtigen Reihenfolge (Ordnung) durchführen, und
alle I/O-Geräte
müssen
imstande sein, Antworten ungeordnet ("out of order") anzunehmen oder sich auf einen ausstehenden
Non-Posted-Request einzuschränken.
Eine Brücke,
die zwischen einem HyperTransport-Technologie-Gerät und einem I/O-Protokoll
liegt, das erfordert, dass Antworten in der richtigen Reihenfolge
zurückgegeben
werden, muss eine hinreichende Pufferung bereitstellen, um so viele
Antworten neu ordnen zu können,
wie sie ausstehende Requests haben kann.
-
Wie oben erwähnt wurde, kennt die HyperTransport-Technologie
drei Typen von Verkehr: Posted-Requests, Non-Posted-Requests und
Antworten, jeweils in einem getrennten virtuellen Kanal. Diese drei
Verkehrstypen können
durch ihre Befehlscodierung unterschieden werden. Sowohl Requests
als auch Antworten weisen ein PassPW-Bit auf, das angibt, dass Posted-Schreibvorgänge überholt
werden dürfen.
Die Paketordnungsregeln können
dann zusammengefasst werden durch:
-
In der Tabelle gibt "Nein" an, dass die nachfolgend
ausgegebene Transaktion nicht vor der vorherigen Transaktion vollständig abgewickelt
werden darf. "Ja" gibt an, dass die
nachfolgend ausgegebene Transaktion die vorige Transaktion überholen
können
muss, und dem in der Spalte angegebenen Pakettyp kann es nicht gestattet
werden, den in der Zeile angegebenen Pakettyp an irgendeinem Punkt
in der HyperTransport-Fabric oder dem Host zu blockieren. "Ja/Nein" gibt an, dass die
nachfolgend ausgegebene Transaktion optional vor der vorherigen
Transaktion abgewickelt werden darf, wenn es irgendeinen Vorteil
dabei gibt. In diesem Fall gibt es keine Ordnungserfordernisse zwischen
den zwei Transaktionen. Jedoch muss eine Neuordnung nicht unterstützt werden
und das Nichtneuordnen der Pakete wird nicht zu einem Deadlock führen.
-
Da folglich verschiedene Befehlstypen
verschiedene Regeln zu erfüllen
haben, besteht die gängigste Art,
die HyperTransport-Technologieordnungsregeln zu implementieren,
darin, mehrere Puffer bereitzustellen, die jeweils einem der Befehlstypen
gewidmet sind. Dies vereinfacht es, den nächsten zu sendenden Befehl einfach
durch Auswählen
des entsprechenden Puffers und Auslesen des ersten Befehls in diesem
Puffer zu erlangen. Jedoch weist diese Vorgehensweise einige Nachteile
auf.
-
Ein Problem mit diesem Stand der
Technik besteht darin, dass zu jeder Zeit, zu der ein Befehl empfangen
wird, sein Befehlstyp bestimmt werden muss. Somit ist eine Typerkennung
zu der Zeit der Pufferung des Befehls durchzuführen, um den Puffer zu bestimmen,
in den der Befehl geschrieben werden soll. Dies ist ziemlich ineffizient
und reduziert die Gesamtbetriebsgeschwindigkeit.
-
Ein weiteres Problem bei separaten
Puffern besteht darin, dass die Puffer einen Gesamtpufferraum in signifikantem
Umfang erfordern, um sicherzustellen, dass die Puffer nicht leerlaufen.
Somit sind herkömmliche Schaltungen,
die verwendet werden, um die Befehlsordnungsregeln zu erfüllen, von
großer
Größe und führen zu
hohen Schaltkreisentwicklungs- und
Schaltkreisherstellungskosten. Darüber hinaus sind die Techniken nach
dem Stand der Technik nachteilig, da sie die Designrobustheit reduzieren,
was es schwierig macht, das Design zu verifizieren.
-
Neben der HyperTransport-Technologie
existieren andere Schnittstellentechniken, bei denen Befehle verschiedener
Typen in einer Weise gesendet werden, dass bestimmte Ordnungsregeln
erfüllt
werden. Solche Schnittstellentechniken weisen dieselben oder ähnliche
Probleme auf, wie dies oben unter Bezugnahme auf die HyperTransport-Technologie
beschrieben worden ist.
-
ÜBERSICHT ÜBER DIE
ERFINDUNG
-
Eine verbesserte Befehlsspeichertechnik
wird bereitgestellt, die mit Befehlsordnungsregeln umgehen und eine
verbesserte Effizienz und erhöhte
Betriebsgeschwindigkeit aufweisen kann.
-
In einer Ausgestaltung wird ein Southbridgebauelement
mit einer Befehlssendeeinrichtung bereitgestellt, die angepasst
ist, um Befehle verschiedener Befehlstypen zu senden. Die Befehlssendeeinrichtung
umfasst eine Befehlsspeichereinrichtung, die angepasst ist, um hereinkommende
Befehle verschiedener Befehlstypen zu empfangen und die Befehle
in der Reihenfolge zu speichern, in der die Befehle empfangen worden sind.
Die Befehlssendeeinrichtung umfasst ferner eine Ordnungsregelsteuereinrichtung,
die mit der Befehlsspeichereinrichtung verbunden ist, um gespeicherte
Befehle, die zu senden sind, auszuwählen. Die Ordnungsregelsteuereinrichtung
ist angepasst, um die Auswahl abhängig von vordefinierten Befehlsordnungsregeln durchzuführen. Die
Befehlsordnungsregeln sind befehlstypabhängig.
-
In einer anderen Ausgestaltung kann
ein integrierter Schaltkreischip bereitgestellt werden, der eine Befehlsspeicherschaltung
umfasst, die angepasst ist, um hereinkommende Befehle verschiedener
Befehlstypen zu empfangen und die Befehle in der Reihenfolge zu
speichern, in der die Befehle empfangen worden sind. Der integrierte
Schaltkreischip umfasst ferner eine Ordnungsregelsteuerschaltung,
die mit der Befehlsspeicherschaltung verbunden ist, um gespeicherte
Befehle, die auszugeben sind, auszuwählen. Die Ordnungsregelsteuerschaltung
ist angepasst, um die Auswahl abhängig von vordefinierten Befehlsordnungsregeln
durchzuführen.
Die Befehlsordnungsregeln sind befehlstypabhängig.
-
In noch einer anderen Ausgestaltung
umfasst ein Computersystem wenigstens eine Peripheriekomponente
und eine Southbridge, die eine Befehlssendeeinrichtung aufweist,
die angepasst ist, um Befehle verschiedener Befehlstypen zu senden.
Die Befehlssendeeinrichtung umfasst eine Befehlsspeichereinrichtung, die
angepasst ist, um hereinkommende Befehle verschiedener Befehlstypen
von wenigstens einer Steuereinheit der wenigstens einen Peripheriekomponente
zu empfangen. Die Befehlsspeichereinrichtung speichert die Befehle
in der Reihenfolge, in der die Befehle empfangen worden sind. Die
Befehlssendeeinrichtung umfasst ferner eine Ordnungsregelsteuereinrichtung,
die mit der Befehlsspeichereinrichtung verbunden ist, um gespeicherte
Befehle, die zu senden sind, auszuwählen. Die Ordnungsregelsteuereinrichtung
ist angepasst, um die Auswahl abhängig von vordefinierten Befehlsordnungsregeln
durchzuführen.
Die Befehlsordnungsregeln sind befehlstypabhängig.
-
In einer weiteren Ausgestaltung wird
ein Verfahren zum Betreiben einer Southbridgebauelements bereitgestellt.
Das Verfahren umfasst das Empfangen von Befehlen verschiedener Befehlstypen,
das Speichern der Befehle in der Reihenfolge, in der die Befehle
empfangen worden sind, das Auswählen
gespeicherter Befehle, die zu senden sind, durch Anwenden vordefinierter
Befehlsordnungsregeln, die befehlstypabhängig sind, und das Senden der
ausgewählten
Befehle.
-
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 herkömmlichen
Southbridge oder eines I/O-Hubs
verdeutlicht;
-
3 ein
schematisches Diagramm ist, das den Befehlsqueuemechanismus gemäß einer
Ausgestaltung verdeutlicht;
-
4 einen
Befehlsqueuemechanismus gemäß einer
anderen Ausgestaltung verdeutlicht;
-
5 ein
Blockdiagramm ist, das die Komponenten eines Southbridgebauelements
gemäß einer
Ausgestaltung verdeutlicht; und
-
6 ein
Flussdiagramm ist, das den Prozess des Sendens von Befehlspaketen
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 durch
gleiche Bezugszeichen angegeben sind.
-
Wird nun auf die Zeichnungen und
insbesondere auf 3 Bezug
genommen, so ist der Befehlsqueuemechanismus gemäß einer Ausgestaltung gezeigt.
Eine Sequenz aus Speicherelementen 320 – 370 wird bereitgestellt,
um die Befehle in der Reihenfolge zu speichern, in der die Befehle
empfangen worden sind. In der Ausgestaltung von 3 speichert das Speicherelement 320 eine
Antwort, die Elemente 330, 340 und 370 speichern
Non-Posted-Befehle und die Elemente 350 und 360 speichern
Posted-Befehle. Wie aus 3 gesehen
werden kann, werden Non-Posted-Befehle
mit Daten von Non-Posted-Befehlen ohne Daten unterschieden.
-
Die Ausgestaltung von 3 umfasst ferner einen Multiplexer 310,
der mehrere Eingangsanschlüsse aufweist
zum Empfangen des ersten Befehls, d. h. des im Element 320 unabhängig vom
Typ dieses Befehls gespeicherten Befehl, und der ersten Antwort,
des ersten Posted-Befehls und der ersten Non-Posted-Befehle mit
und ohne Daten.
-
Der Multiplexer 310 wird
von der Ordnungsregelsteuereinrichtung 300 gesteuert, um
einen seiner Eingangsanschlüsse
auszuwählen
und den entsprechenden Befehl an einen upstream gelegenen Empfänger auszugeben.
-
Obwohl keine Beschränkung auf
die Ausgestaltung einer HyperTransportgemäßen Befehlsqueue besteht, unterstützt die
Schaltung von 3 die
folgenden Ordnungsregeln: Weder Posted-Befehle noch Non-Posted-Befehle
noch Antworten dürfen
Posted-Befehle überholen
(passieren), jedoch dürfen
Posted-Befehle Antworten und Non-Posted-Befehle in den Fällen überholen,
in denen Non-Posted-Befehle oder Antworten nicht übertragen
werden können.
Non-Posted-Befehle oder Antworten können Posted-Befehle nicht überholen,
jedoch können
sie einander überholen
und können
von Posted-Befehlen überholt
werden. Das bedeutet: Posted-Befehle dürfen Non-Posted-Befehle überholen; Antworten dürfen Non-Posted-Befehle überholen; und
Non-Posted-Befehle dürfen
Antworten überholen.
Darüber
hinaus dürfen
Non-Posted-Befehle ohne Daten Non-Posted-Befehle mit Daten überholen.
-
Diese Ordnungsregeln werden in der
Technik gemäss
der Ausgestaltungen dadurch behandelt, dass eine Befehlsspeichereinrichtung 320 – 370 zum
Speichern von Befehlen aller Typen in der Reihenfolge, in der die
Befehle empfangen werden, bereitgestellt wird. Die ersten Befehle
jedes Typs können
individuell adressiert werden, um aus dem Speicher ausgelesen und
an den Empfänger
gesendet zu werden. Die Auswahl des jeweiligen Befehls wird von
der Ordnungsregelsteuereinrichtung 300 bewerkstelligt,
die die oben erwähnten
Ordnungsregeln erfüllt.
-
Wie aus 3 ersichtlich ist, empfängt die
Ordnungsregelsteuereinrichtung 300 Pufferverfügbarkeitssignale,
die die Ordnungsregelsteuereinrichtung 300 über den
Umstand informieren, dass der Empfänger genügend Pufferraum hat, um den
Befehl zu empfangen und zu puffern, oder auch nicht. Die Pufferverfügbarkeitssignale
umfassen ein Kein-Posted-Befehlspuffer-Signal, ein Kein-Non-Posted-Befehlspuffer-Signal,
ein Kein-Non-Posted-Datenpuffer-Signal
und ein Kein-Antwortpuffer-Signal. Wenn beispielsweise kein Antwortpuffer
aktuell beim Empfänger
verfügbar
ist, wird die Ordnungsregelsteuereinrichtung 300 davon
Abstand nehmen, den Multiplexer 310 zu steuern, die erste
Antwort auszuwählen.
Stattdessen wird die Ordnungsregelsteuereinrichtung 300 den
nächsten
Befehl im Speicher bestimmen, der einen anderen Befehlstyp aufweist
und ohne Verletzung der Ordnungsregeln ausgewählt werden kann.
-
Das Folgende ist ein Beispiel dafür, wie die
Ausgestaltung von 3 arbeitet.
Die Ordnungsregelsteuereinrichtung 300 wird zunächst versuchen,
den ersten Befehl auszugeben, d. h. den im Element 320 gespeicherten
Befehl. Im vorliegenden Fall ist dieser Befehl eine Antwort. Wenn
kein Antwortpuffer beim Empfänger verfügbar ist,
würde die
Ordnungsregelsteuereinrichtung 300 dann jeden der verbleibenden
Befehlstypen untersuchen, einen nach dem anderen, wobei mit dem
allerobersten Befehl, der keine Antwort ist, begonnen wird. Im vorliegenden
Falle wäre
dies ein Non-Posted-Befehl mit Daten, der im Speicherelement 330 gespeichert
ist.
-
Das Senden eines Non-Posted-Befehls
mit Daten erfordert sowohl einen Befehlspuffer als auch einen Datenpuffer
auf der Seite des Empfängers.
Wenn der Empfänger
zu diesem Zeitpunkt einen Befehlspuffer verfügbar hat, jedoch keinen Datenpuffer,
wird die Ordnungsregelsteuereinrichtung 300 davon Abstand
nehmen, den in Element 330 gespeicherten Befehl auszuwählen; vielmehr
wird sie zum Element 340 übergehen. In diesem Element
ist ein Non-Posted-Befehl ohne Daten gespeichert, und da dieser
Befehl keinen freien Datenpuffer beim Empfänger erfordert, hat die Ordnungsregelsteuereinrichtung 300 nun
einen Befehl gefunden, der gesendet werden kann. Da Non-Posted-Befehle
ohne Daten Non-Posted-Befehle
mit Daten überholen
dürfen, und
da Non-Posted-Befehle Antworten überholen
dürfen,
kann der im Element 340 gespeicherte Befehl tatsächlich ausgewählt werden,
ohne die Ordnungsregeln zu verletzen. Somit würde dieser Befehl im vorliegenden
Fall zur Sendung ausgewählt
werden.
-
Wenn der Empfänger jedoch nicht einmal einen
Pufferraum zum Speichern von Non-Posted-Daten verfügbar hätte, würde die
Ordnungsregelsteuereinrichtung 300 zum Element 350 übergehen,
um zu prüfen, ob
der in diesem Speicherelement gespeicherte Befehl auf der Empfängerseite
gepuffert werden kann, und ob es ihm gestattet ist, die anderen
Befehle zu überholen.
-
Wird nun zur 4 übergegangen,
so ist eine andere Ausgestaltung gezeigt, die der von 3 ähnelt, jedoch bezüglich der
Reihenfolge der gespeicherten Befehle verschieden ist. In dem Beispiel
von 4 ist der erste
Befehl ein Posted-Befehl, und die Reihenfolge der folgenden Befehle
unterscheidet sich von der der 3.
Das bedeutet, dass der erste Posted-Befehl nun im Element 320 gespeichert
ist, während
dies in 3 das Element 350 war. Ähnliche Änderungen
treffen für
die erste Antwort, den ersten Non-Posted-Befehl mit Daten und den
ersten Non-Posted-Befehl ohne Daten zu.
-
Wird die Ausgestaltung von 4 genommen, so ist anzumerken,
dass die Ordnungsregelsteuereinrichtung 300 jedoch beim
Speicherelement 320 steckenbleiben würde, da dieses Element einen
Posted-Befehl speichert. Wie oben erwähnt wurde, dürfen weder
Posted-Befehle noch Non-Posted-Befehle
noch Antworten einen Posted-Befehl überholen. Somit würde die
Ordnungsregelsteuereinrichtung 300, wenn es keinen Pufferraum
beim Empfänger
zum Speichern des Posted-Befehls gibt, die Befehle, die in den nachfolgenden
Speicherelementen 330 – 370 gespeichert
sind, nicht überprüfen, da
diese Befehle nicht ausgewählt
werden könnten,
ohne die Befehlsordnungsregeln zu verletzen.
-
Wie aus den 3 und 4 und
der obigen Beschreibung der Ausgestaltungen ersichtlich ist, wird
eine Datenspeichereinrichtung 320 – 370 bereitgestellt,
die die hereinkommenden Befehle in der Reihenfolge speichert, wie
sie empfangen worden sind. Im Fall, dass der Empfänger genügend Pufferraum
hat, um alle Erfordernisse bezüglich
jedes Befehlstyps zu erfüllen,
würde die
Ordnungsregelsteuereinrichtung 300 den Multiplexer 310 stets
so steuern, um den ersten Befehl auszuwählen, d. h. den Befehl, der
im Speicherelement 320 gespeichert ist, ungeachtet seines
Befehlstyps. Somit würde
die Befehlsspeichereinrichtung 320 – 370 dann als FIFO-Puffer
(FIFO: First In First Out) arbeiten.
-
Wird nun zur 5 übergegangen,
so ist ein Blockdiagramm der Komponenten innerhalb eines Southbridgebauelements
gezeigt, um die Technik der obigen Ausgestaltungen zu implementieren.
Die Befehlsspeichereinrichtung 320 – 370 der 3 und 4 entspricht der Befehlsqueue 500 und
der Zeigerqueue 510 der 5.
Die Befehlsqueue 500 empfängt die hereinkommenden Befehle,
speichert die Befehle in der Reihenfolge, in der sie empfangen worden
sind, und gibt den Befehl aus, der von der Ordnungsregelsteuereinheit 300 ausgewählt worden
ist. Die Zeigerqueue 510 speichert Zeiger (Pointer) auf
den ersten Befehl, die erste Antwort, den ersten Posted-Befehl,
den ersten Non-Posted-Befehl ohne Daten und den ersten Non-Posted-Befehl mit
Daten. Unter Verwendung dieser Zeiger kann die Zeigerqueue 510 verwendet
werden, um die jeweiligen Speicherelemente in der Befehlsqueue 500 zu
adressieren. Darüber
hinaus kann die Zeigerqueue 510 ein Signal an die Befehlsqueue 500 senden,
um die Befehlsqueue 500 zu aktualisieren, wenn ein Befehl
einmal gesendet worden ist.
-
Die Ordnungsregelsteuereinrichtung 300,
die die Zeigerqueue 510 anweist, den nächsten Befehl zu adressieren,
der die Ordnungsregeln erfüllt,
empfängt
die oben beschriebenen Pufferverfügbarkeitssignale von dem HyperTransport-Controller 520.
Der HyperTransport-Controller 520 empfängt Pufferfreigabenachrichten
von dem potentiellen Empfänger
bzw. den potentiellen Empfängern
der Befehle. Die Pufferfreigabenachrichten informieren den HyperTransport-Controller 520 über die
Anzahl verfügbarer
Puffer, d. h. über
den freien Pufferraum.
-
Der HyperTransport-Controller 520 der
vorliegenden Ausgestaltung umfasst einen Pufferzähler 530 für jeden
Befehlstyp. Der Pufferzähler 530 speichert
einen Zählwert,
der jedesmal erhöht
wird, wenn eine Pufferfreigabenachricht empfangen wird, die angibt,
dass ein Puffer beim Empfänger
freigemacht wurde. Darüber hinaus
vermindert der HyperTransport-Controller 520 jedesmal,
wenn ein Befehl gesendet wird, den jeweiligen Pufferzähler unter
der Annahme, dass der gesendete Befehl einen Puffer belegen wird.
Wenn dieser Puffer dann wieder verfügbar gemacht wird, beispielsweise
indem der Befehl vom Empfänger
verarbeitet wird, wird eine weitere Pufferfreigabenachricht an den
HyperTransport-Controller 520 gesendet. Das bedeutet, dass
der HyperTransport-Controller den Pufferzähler 530 mit jedem
Befehl, der gesendet wird, vermindern und den Pufferzähler automatisch
auf Grundlage der empfangenen Pufferfreigabenachrichten erhöhen kann.
-
Wird nun zur 6 übergegangen,
die ein Flussdiagramm ist, das den Prozess des Sendens von Befehlspaketen
verdeutlicht, so wählt
die Ordnungsregelsteuereinrichtung 300 im Schritt 600 einen
nächsten
Befehlstyp aus, wenn der in dem allerobersten Speicherelement 320 gespeicherte
Befehl nicht gesendet werden kann. Es wird dann in Schritt 610 überprüft, ob Pufferraum
verfügbar
ist, der für
den ausgewählten
Befehlstyp benötigt
wird. Ist dies der Fall, so steuert die Ordnungsregelsteuereinrichtung 300 die
Speichereinrichtung, um den jeweiligen ersten Befehl des ausgewählten Befehlstyps
auszugeben (Schritt 630). Wenn jedoch kein Pufferraum verfügbar ist,
wendet die Ordnungsregelsteuereinrichtung 300 die Ordnungsregeln
in Schritt 620 an, um zu bestimmen, ob Befehlstypen existieren,
die die früheren
Befehle überholen
dürfen,
und der Prozess kehrt dann zum Schritt 600 zurück.
-
Es ist anzumerken, dass das Flussdiagramm
von 6 nur zur Erläuterung
gezeigt wird, und jede andere Abfolge von Verfahrensschritten stattdessen
verwendet werden kann, die geeignet wären, um die Ausgestaltungen
der 3 bis 5 zu betreiben. Beispielsweise
kann der Schritt 620 oder ein ähnlicher
Schritt auch zwischen den Schritten 610 und 630 gelegen sein.
-
Die obigen Ausgestaltungen wurden
im Zusammenhang mit dem Betrieb eines Southbridgebauelements beschrieben.
In dieser Ausgestaltung können
Eingangsbefehle von Peripheriekomponentencontrollern kommen, wie
etwa solchen, die in 2 gezeigt
sind. In diesem Beispiel würden
die ausgewählten
Befehle in Upstream-Richtung gesendet werden. Es ist jedoch anzumerken,
dass andere Ausgestaltungen existieren können, in denen die eingegebenen
Befehle aus Downstream-Richtung empfangen und die ausgewählten Befehle
ebenso in Downstream-Richtung gesendet werden.
-
Darüber hinaus ist zu erwähnen, dass
andere Ausgestaltungen existieren, die keine Southbridges in Computersystemen
betreffen. In diesen Ausgestaltungen können die Schaltungen der 3 bis 5 in einem integrierten Schaltkreischip
umfasst sein, der Befehle verschiedener Befehlstypen empfängt und
es erfordert, dass nur solche Befehle gesendet werden, die bestimmte
Ordnungsregeln erfüllen,
die befehlstypabhängig sind.
-
Darüber hinaus ist anzumerken,
dass die obigen Ausgestaltungen im Zusammenhang mit der HyperTransport-Technologie
verwendet werden können,
jedoch nicht hierauf beschränkt
sind.
-
Die obigen Ausgestaltungen weisen
Vorteile auf, das sie nur eine Speichereinrichtung 320 – 370, 500, 510 benötigen, um
Befehle aller Befehlstypen in einer vereinheitlichten Weise zu speichern.
Dies verbessert die Effizienz und erhöht die Betriebsgeschwindigkeit.
-
Darüber hinaus ist dies vorteilhaft,
da es die oben diskutierten Probleme des Standes der Technik überwindet.
Genauer gesagt gestatten die Ausgestaltungen eine kompakte Implementierung
der Ordnungsregeln, da alle Befehle und Daten in einem Speicher
gehalten werden. Dies erhöht
die Designrobustheit und vereinfacht die Verifikation. Die Implementierung
der Ausgestaltungen kann einen FIFO-ähnlichen Befehlsspeicher aufweisen,
der eine Steuereinheit umfasst, die Logikschaltungen und Flip-Flops
aufweist und Zeiger auf ein RAM-Modul (RAM: Random Access Memory,
Speicher mit wahlfreiem Zugriff) speichert. Der Speicher umfasst
ferner das RAM-Modul,
das die vollständigen
Befehle und die zugeordneten Daten hält.
-
Während
die Erfindung unter Bezugnahme auf physikalische Ausgestaltungen
beschrieben worden ist, die in Übereinstimmung
damit konstruiert worden sind, wird Fachleuten ersichtlich sein,
dass zahlreiche 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 beabsichtigten 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.