-
HINTERGRUND DER ERFINDUNG
-
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.
-
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.
-
Die
DE 693 26 066 T2 betrifft
eine schnelle Befehlsdecodierung in einem Pipeline-Prozessor. Die beschriebene
Technik betrifft zentrale Steuereinheiten und insbesondere CISC-Computer.
Es wird beschrieben, dass Segmente eines Befehls abgerufen und assembliert
werden. Ein Auswahlsignal wird erwähnt. Es ist eine Befehls-Vorausleseeinheit
mit einer Vorauslese-Warteschlange vorgesehen. Ferner sind ein High-Order-Decoder
und ein Low-Order-Decoder vorgesehen.
-
Die
WO 00/77624 A1 beschreibt eine programmgesteuerte Einheit und betrifft
Mikroprozessoren und Mikrocontroller, RISC-Prozessoren, superskalare
Prozessoren und arithmetisch-logische Einheiten. Befehle können unterschiedlichen
Befehlsgruppen angehören
und werden in unterschiedlichen Komponenten der programmgesteuerten
Einheit gleichzeitig ausgeführt.
Ein erster Zwischenspeicher speichert Operanden und ein zweiter
Zwischenspeicher das Ergebnis. Ein Registerblock enthält Register
des Prozessors.
-
Die
US 5,768,548 beschreibt
Bus-Brücken.
Die Brücke
kann einen Datenpuffer umfassen. Wenigstens zwei Typen von Schreibbefehlen
und wenigstens zwei Typen von Lesebefehlen werden verwendet.
-
ÜBERSICHT ÜBER DIE
ERFINDUNG
-
Der
Erfindung liegt die Aufgabe zugrunde, eine verbesserte Befehlsspeichertechnik
für eine
Southbridge bereitzustellen, die mit Befehlsordnungsregeln umgehen
und eine verbesserte Effizienz und erhöhte Betriebsgeschwindigkeit
aufweist.
-
Diese
Aufgabe wird durch die in den unabhängigen Patentansprüchen angegebene
Erfindung gelöst.
-
Bevorzugte
Ausgestaltungen sind in den Unteransprüchen angegeben.
-
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.