-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die Erfindung betrifft allgemein
integrierte Schaltkreischips und entsprechende Verfahren und Geräte (Bauelemente)
und insbesondere Schnittstellen, die verwendet werden können, um
Requests (Anforderungen, Anfragen) zu plazieren, die Antworten erfordern.
-
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 spezifischen Funktion
und es können
natürlich
verschiedene Schaltkreiseinheiten auf einem Chip zur Durchführung derselben
Funktion bereitgestellt werden, oder zur Durchführung verschiedener Funktionen.
Die Schaltkreiseinheiten können
zeitlich sequenziell oder simultan arbeiten und sie können voneinander
unabhängig
funktionieren, oder abhängig
von dem Betrieb anderer Schaltkreiseinheiten.
-
Im letzteren Falle sind die Schaltkreiseinheiten
gewöhnlicherweise
miteinander über
eine Schnittstelle 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 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 initiiert, 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 eine
Anforderung zu plazieren oder auf eine empfangene Anforderung zu
antworten. Bei Anforderungen 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 keine Antwort erfordert.
-
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 (Geräte) aufgeteilt werden.
Der Begriff Host bedeutet dann eine Schaltkreiseinheit, die Dienste
für das
abhängige
Device bereitstellt. Eine Transaktion von dem Host zu dem Device
wird als downstream bezeichnet, während eine Transaktion in der
anderen Richtung als upstream bezeichnet wird. In bidirektionalen
Konfigurationen kann sowohl der Host als auch der Device Anforderungen
und Antworten senden und empfangen, so dass ein Device sowohl Source
als auch Target sein kann, und auch der Host kann sowohl als Source
als auch als Device arbeiten.
-
Ein Gebiet, in dem integrierte Schaltkreischips
vielfach 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 auf dem Motherboard von 1 zu findenden Grundelemente 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 bereitgestellt, 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
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
gewöhnlich
der 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/Mauscontroller
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
einen PCI-Bus miteinander verbunden, der als Systembus arbeitet,
so dass die Northbridge 105 als Host-zu-PCI-Brücke arbeitet,
die eine Verbindung zwischen dem Hostbus, der eine Verbindung zu
dem Prozessor 100 bereitstellt, und dem PCI-Bus ausbildet,
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 und
die Southbridge 110 als I/O-Controllerhub arbeiten. In
solchen Strukturen sind die Northbridge 105 und die Southbridge
110 nicht
länger über einen
Systembus miteinander verbunden, sondern über eine spezifische Hub-Schnittstelle.
-
Um den Bedarf an Hochgeschwindigkeits-Chip-zu-Chip-Kommunikation
in solchen Hub-Schnittstellen abzudecken, wurde die HyperTransportTM-Technologie
entwickelt, die eine hochperformante Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung
auf dem Board zur Verbindung integrierter Schaltkreise miteinander
auf einem Motherboard bereitstellt. 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 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.
-
Insbesondere in Systemen, in denen
eine Hochgeschwindigkeitskommunikation durch Schnittstellen wie
etwa solchen gemäß der Hyperransport-Technologie
möglich
gemacht wurde, kann ein Problem auftreten, wenn langsame Geräte angetrieben
werden. Beispielsweise kann es die Aufgabe einer HyperTransport-zu-PCI-Brücke sein,
eine PCI-gemäße Schnittstelle
mit einer HyperTransport-gemäßen Schnittstelle
zu verbinden. Die PCI-gemäße Schnittstelle
ist eine Niedergeschwindigkeitsschnittstelle, die durch einzelne
PCI-Geräte blockiert
werden kann. Immer wenn ein PCI-Gerät eine Anforderung plaziert,
kann es ein Anforderungssignal auf einer spezifischen Signalleitung
setzen. Die Hypertransport-zu-PCI-Brücke wird dann eine entsprechende
Anforderung upstream senden. Wenn die Anforderung eine Antwort erfordert,
werden die Antwortdaten bei der Brücke ankommen und an das PCI-Gerät gesendet
werden. Das PCI-Gerät wird
das Anforderungssignal dann heruntersetzen, wenn es die Antwort
empfängt.
-
In solchen Systemen kann keine andere
Anforderung in der PCI-Schnittstelle plaziert werden, so lange die
Antwort nicht an das anfordernde PCI-Gerät geliefert wurde. Das bedeutet,
dass das PCI-Gerät
die PCI-Schnittstelle blockiert, so dass kein Datentransfer in der
Zeit zwischen dem Plazieren der Anforderung und dem Zurücksenden
der Antwort stattfinden kann. Darüber hinaus wird sogar die Hochgeschwindigkeitupstreamschnittstelle
bezüglich jedes
Datenverkehrs blockiert, der PCI-Geräte betrifft, da es keinen PCI-bezogenen Datenverkehr
in der HyperTransport-Verbindung vor dem Empfangen der Antwort geben
kann. Dies ist nachteilig, da die Hochgeschwindigkeitsfähigkeiten
der Upstreamschnittstelle nicht effizient genutzt werden können.
-
ÜBERSICHT ÜBER DIE
ERFINDUNG
-
Ein verbesserter integrierter Schaltkreischip und
ein entsprechendes Device und Verfahren werden bereitgestellt, die
die Betriebsgeschwindigkeit erhöhen
und die Effizienz insbesondere dann verbessern können, wenn Schnittstellentechnologien
verwendet werden, die den Datenverkehr blockieren können.
-
In einer Ausgestaltung wird ein integrierter Schaltkreischip
bereitgestellt, der eine Schnittstellenschaltung umfasst, die mit
einer ersten Signalleitung zum Empfangen von Anforderungen von wenigstens einer
anfordernden Einheit verbunden ist. Die Anforderungen erfordern,
dass Antworten an die jeweilige anfordernde Einheit zurückgesendet
werden. Die Anforderungen werden von der entsprechenden anfordernden
Einheit plaziert, indem ein Anforderungssignal auf der ersten Signalleitung
gesetzt wird. Das Anforderungssignal wird von der jeweiligen anfordernden
Einheit zurückgesetzt,
wenn eine Antwort an die jeweilige anfordernde Einheit zurückgesendet
wird. Der integrierte Schaltkreischip umfasst ferner eine Anforderungsverarbeitungsschaltung,
die verbunden ist, um die empfangenen Anforderungen zu verarbeiten.
Die Schnittstellenschaltung ist weiterhin mit einer zweiten Signalleitung
verbunden, um eine Retryanforderung an die aktuelle anfordernde
Einheit zu senden, um die aktuelle anfordernde Einheit aufzufordern,
ihr Anforderungssignal zurückzusetzen,
obwohl eine Antwort noch nicht zurückgesendet worden ist, und
das Anforderungssignal später
erneut zu setzen. Die Schnittstellenschaltung ist ferner mit einer
dritten Signalleitung verbunden, um ein Erledigungssignal zusammen
mit der Retryanforderung an die aktuelle anfordernde Einheit zu
senden. Das Erledigungssignal gibt an, ob die Anforderung, die von
der aktuellen anfordernden Einheit empfangen worden ist, von der Anforderungsverarbeitungsschaltung
verarbeitet werden konnte.
-
In einer anderen Ausgestaltung kann
eine HyperTransport-zu-PCI-Brücke
bereitgestellt werden, die eine PCI-Targetschnittstelleneinrichtung
und eine HyperTransport-Sourceschnittstelleneinrichtung umfasst.
Die PCI-Targetschnittstelleneinrichtung ist mit einer ersten Signalleitung
verbunden, um Anforderungen von wenigstens einer PCI-Sourceeinrichtung
zu empfangen. Die Anforderungen erfordern, dass Antworten an die
jeweilige PCI-Sourceeinrichtung
zurückgesendet
werden. Die Anforderungen werden von der jeweiligen PCI-Sourceeinrichtung plaziert,
indem ein Anforderungssignal auf der ersten Signalleitung gesetzt
wird. Das Anforderungssignal wird von der jeweiligen PCI-Sourceeinrichtung
heruntergesetzt, wenn eine Antwort an die jeweilige PCI-Sourceeinrichtung
zurückgesendet
worden ist. Die HyperTransport-Sourceschnittstelleneinrichtung ist
verbunden, um Signale entsprechend den empfangenen Anforderungen
an ein HyperTransport-gemäßes Targetgerät zu senden.
Die PCI-Targetschnittstelleneinrichtung ist ferner mit einer zweiten Signalleitung
verbunden, um eine Retryanforderung an die aktuelle PCI-Sourceeinrichtung
zu senden, um die aktuelle PCI-Sourceeinrichtung
aufzufordern, ihr Anforderungssignal herunterzusetzen, obwohl eine Antwort
noch nicht zurückgesendet
worden ist, und das Anforderungssignal später erneut zu setzen. Die PCI-Targetschnittstelleneinrichtung
ist ferner mit einer dritten Signalleitung verbunden, um ein Erledigungssignal
zusammen mit der Retryanforderung an die aktuelle PCI-Sourceeinrichtung
zu senden. Das Erledigungssignal gibt an, ob die Anforderung, die von
der aktuellen PCI-Sourceeinrichtung empfangen worden ist, von der
HyperTransport-Sourceschnittstelleneinrichtung verarbeitet werden
konnte.
-
In noch einer anderen Ausgestaltung
wird ein Southbridgebauelement bereitgestellt, um eine Brücke von
einem Niedergeschwindigkeitsdatenkanal zu einem Hochgeschwindigkeitsdatenkanal
in einem Computersystem auszubilden. Das Southbridgebauelement umfasst
eine Niedergeschwindigkeitsschnittstelleneinrichtung, die mit einer
ersten Signalleitung zum Empfangen von Anforderungen von wenigstens
einer anfordernden Einheit verbunden ist. Die Anforderungen erfordern,
dass Antworten an die jeweilige anfordernde Einheit zugesendet werden. Die
Anforderungen werden von der jeweiligen anfordernden Einheit plaziert,
indem ein Anforderungssignal auf der ersten Signalleitung gesetzt
wird. Das Anforderungssignal wird von der jeweiligen anfordernden
Einheit zurückgesetzt,
wenn eine Antwort an die jeweilige anfordernde Einheit zurückgesendet
worden ist. Das Southbridgebauelement umfasst ferner eine Hochgeschwindigkeitsschnittstelleneinrichtung, die
verbunden ist, um Signale entsprechend den empfangenen Anforderungen
an ein Upstreamtargetgerät
zu senden. Die Niedergeschwindigkeitsschnittstelleneinrichtung ist
ferner mit einer zweiten Signalleitung verbunden, um eine Retryanforderung
an die aktuelle anfordernde Einheit zu senden, um die aktuelle anfordernde
Einheit aufzufordern, ihr Anforderungssignal zurückzusetzen, obwohl eine Antwort noch
nicht zurückgesendet
worden ist, und das Anforderungssignal später erneut zu setzen. Die Niedergeschwindigkeitsschnittstelleneinrichtung
ist ferner mit einer dritten Signalleitung verbunden, um ein Erledigungssignal
zusammen mit der Retryanforderung an die aktuelle anfordernde Einheit
zu senden. Das Erledigungssignal gibt an, ob die Anforderung, die
von der aktuellen anfordernden Einheit empfangen worden ist, von
der Hochgeschwindigkeitsschnittstelleneinrichtung verarbeitet werden konnte.
-
In einer weiteren Ausgestaltung kann
ein PCI-Gerät
bereitgestellt werden, das eine Masterschnittstelleneinrichtung
umfasst, die mit einer ersten Signalleitung zum Senden einer Anforderung
an ein PCI-Targetgerät
verbunden ist. Die Anforderung erfordert eine Antwort. Die Masterschnittstelleneinrichtung
ist angepasst, um die Anforderung durch Setzen eines Anforderungssignals
auf der ersten Signalleitung und durch Heruntersetzen des Anforderungssignals
beim Empfang der Antwort zu plazieren. Die Masterschnittstelleneinrichtung
ist ferner mit einer zweiten Signalleitung verbunden, um eine Retryanforderung
von dem PCI-Targetgerät
zu empfangen. Die Masterschnittstelleneinrichtung ist ferner mit
einer dritten Signalleitung verbunden, um ein Erledigungssignal
von dem PCI-Targetgerät
zusammen mit der Retryanforderung zu empfangen. Das Erledigungssignal
gibt an, ob die an das PCI-Targetgerät gesendete Anforderung von
dem PCI-Targetgerät verarbeitet
werden konnte. Die Masterschnittstelleneinrichtung ist imstande,
das Anforderungssignal beim Empfang der Retryanforderung herunterzusetzen,
obwohl eine Antwort noch nicht empfangen worden ist, und das Anforderungssignal
später
erneut zu setzen. Die Masterschnittstelleinrichtung ist imstande,
eine modifizierte Anforderung zu senden, wenn sie das Anforderungssignal
erneut setzt, falls das Erledigungssignal angibt, dass die an das
PCI-Targetgerät
gesendete Anforderung nicht von dem PCI-Targetgerät verarbeitet
werden konnte.
-
Gemäß noch einer weiteren Ausgestaltung wird
ein Verfahren zum Betreiben eines integrierten Schaltkreischips
bereitgestellt. Das Verfahren umfasst das Empfangen von Anforderungen
von wenigstens einer anfordernden Einheit. Die Anforderungen erfordern,
dass Antworten an die jeweilige anfordernde Einheit zurückgesendet
werden. Die Anforderungen werden von der jeweiligen anfordernden
Einheit durch Setzen eines Anforderungssignals plaziert. Das Anforderungssignal
wird von der jeweiligen anfordernden Einheit heruntergesetzt, wenn
eine Antwort an die jeweilige anfordernde Einheit zurückgesendet
worden ist. Das Verfahren umfasst ferner das Verarbeiten der empfangenen
Anforderungen und das Senden einer Retryanforderung an die aktuelle
anfordernde Einheit, um die aktuelle anfordernde Einheit aufzufordern, ihr
Anforderungssignal herunterzusetzen, obwohl eine Antwort noch nicht
zurückgesendet
worden ist, und das Anforderungssignal später erneut zu setzen. Das Verfahren
umfasst ferner das Senden eines Erledigungssignals an die aktuelle
anfordernde Einheit zusammen mit der Retryanforderung. Das Erledigungssignal
gibt an, ob die Anforderung, die von der aktuellen anfordernden
Einheit empfangen worden ist, bereits verarbeitet werden konnte.
-
In noch einer weiteren Ausgestaltung
kann ein Verfahren zum Betreiben eines PCI-Gerätes bereitgestellt werden.
Das Verfahren umfasst das Senden einer Anforderung an ein PCI-Targetgerät durch Setzen
eines Anforderungssignals. Die Anforderung erfordert eine Antwort.
Das Verfahren umfasst ferner das Empfangen einer Retryanforderung
von dem PCI-Targetgerät
und das Bestimmen, ob das Anforderungssignal heruntergesetzt werden
soll, obwohl eine Antwort noch nicht empfangen worden ist. Ist dies
der Fall, so wird das Anforderungssignal heruntergesetzt und später erneut
gesetzt. Das Verfahren umfasst ferner das Heruntersetzen des Anforderungssignals,
wenn die Antwort empfangen worden ist. In dem Verfahren umfasst
das erneute Setzen des Anforderungssignals das Bestimmen, ob eine modifizierte
Anforderung gesendet werden soll, wenn das Erledigungssignal angezeigt
hat, dass die an das PCI-Targetgerät gesendete Anforderung von
dem PCI-Targetgerät
nicht verarbeitet werden konnte.
-
Gemäß noch einer anderen Ausgestaltung umfasst
ein Computersystem ein PCI-Gerät
und eine Southbridge, die mit dem PCI-Gerät verbunden ist. Das PCI-Gerät ist imstande,
eine Anforderung an die Southbridge zu senden, indem es ein Anforderungssignal
setzt. Die Southbridge ist imstande, eine Antwort an das PCI-Gerät zurückzusenden.
Das PCI-Gerät
ist eingerichtet, um das Anforderungssignal herunterzusetzen, wenn
es die Antwort empfängt. Die
Southbridge ist ferner eingerichtet, um eine Retryanforderung an
das PCI-Gerät
zu senden, um das PCI-Gerät
aufzufordern, sein Anforderungssignal herunterzusetzen, obwohl eine
Antwort noch nicht zurückgesendet
worden ist, und das Anforderungssignal später erneut zu setzen. Die Southbridge
ist ferner eingerichtet, um ein Erledigungssignal an das PCI-Gerät zusammen
mit der Retryanforderung zu senden. Das Erledigungssignal gibt an,
ob die Anforderung, die von der aktuellen anfordernden Einheit empfangen
worden ist, verarbeitet werden konnte.
-
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 gewöhnlichen
Motherboardlayouts schematisch verdeutlicht;
-
2 ein
Blockdiagramm ist, das die Komponenten eines Computersystems gemäß einer
Ausgestaltung verdeutlicht;
-
3 die
Niedergeschwindigkeitsschnittstelle gemäß einer Ausgestaltung verdeutlicht;
-
4 ein
Timingdiagramm ist, das Schreib- und Lesetransaktionen in der Schnittstelle
von 3 verdeutlicht;
-
5 ein
Flussdiagramm ist, das den Hauptprozess des Betreibens der in 3 gezeigten Schnittstelle
gemäß einer
Ausgestaltung verdeutlicht;
-
6 ein
Timingdiagramm eines Busmasterleseprozesses gemäß einer Ausgestaltung ist,
bei dem die Retryanforderung ignoriert wird;
-
7 ein
Timingdiagramm ist, das einen Busmasterleseprozess gemäß einer
Ausgestaltung verdeutlicht, bei dem die Retryanforderung nicht ignoriert
wird und ein HyperTransport-Zyklus eingeleitet wird;
-
8 ein
Timingdiagramm ist, das einen Busmasterleseprozess gemäß einer
Ausgestaltung verdeutlicht, bei dem die Retryanforderung nicht ignoriert
wird und ein HyperTransport-Zyklus nicht eingeleitet wird; und
-
9 ein
Flussdiagramm ist, das den Brückenarbeitsprozess
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 2 Bezug
genommen, so werden die Hardwarekomponenten eines Computersystems
gemäß einer
Ausgestaltung gezeigt. Wie aus der 2 gesehen
werden kann, wird eine HyperTransport-zu-PCI-Brücke 200 bereitgestellt,
die über
eine HyperTransport-gemäße Schnittstelle
mit einer Hostbrücke 210 verbunden
ist, die in Upstreamrichtung liegt. Ferner ist die Brücke 200 mit
einem PCI-Gerät 220 über eine
PCI-gemäße Schnittstelle
verbunden.
-
Während
die vorliegende Ausgestaltung und die folgende Diskussion auf der
in 2 gezeigten Konfiguration
basiert, ist anzumerken, dass andere Ausgestaltungen möglich sind,
bei denen andere Niedergeschwindigkeits- und Hochgeschwindigkeitsschnittstellentechnologien
verwendet werden können.
Darüber
hinaus ist anzumerken, dass die Ausgestaltungen nicht auf Brücken zwischen
Niedergeschwindigkeits- und Hochgeschwindigkeitskanälen beschränkt sind.
Vielmehr kann die Brücke 200 jedes Datenverarbeitungsgerät sein,
das Antworten auf hereinkommende Anforderungen erzeugt und die erzeugten
Antworten an die anfordernde Einheit zurücksendet.
-
Es ist ferner anzumerken, dass das
System von 2 in eher
vereinfachter Art gezeigt wird, da andere Komponenten in dem System
existieren können,
die nicht explizit gezeigt worden sind. Beispielsweise kann die
Hypertransport-zu-PCI-Brücke 200 in einem
Southbridgebauelement enthalten sein. Ferner kann mehr als nur ein
PCI-Gerät 220 mit
der Brücke 200 verbunden
sein. Darüber
hinaus kann es in einigen oder allen PCI-Geräten mehrere Busmastereinrichtungen
geben und jede Busmastereinrichtung kann auf der Schnittstelle separat
und unabhängig agieren,
beispielsweise um Anforderungen zu plazieren.
-
Wird nun auf 3 Bezug genommen, so werden die Schnittstellenkomponenten
in der Brücke 200 und
das PCI-Gerät 220 in
weiteren Einzelheiten gemäß einer
Ausgestaltung gezeigt. Wie aus der Figur ersehen werden kann, umfasst
jede der sich gegenüberstehenden
Einheiten eine PCI-Masterschnittstelle 310, 340 und
eine PCI-Targetschnittstelle 300, 350. Das PCI-Gerät 220 verwendet
seine Masterschnittstelleneinrichtung 340 zum Plazieren von
Upstreamanforderungen an die Targetschnittstelleneinrichtung 300 der
Brücke 200.
Wenn auf die Anforderung eine Antwort von der Brücke 200 folgt, kann
die Targetschnittstelleneinrichtung 300 der Brücke 200 verwendet
werden, um die Antwort an die Masterschnittstelleneinrichtung 340 des
PCI-Geräts 220 zurückzusenden.
Andererseits kann die PCI-Masterschnittstelleneinrichtung 310 der
Brücke 200 verwendet
werden, um Downstreamanforderungen an die Targetschnittstelleneinrichtung 350 des PCI-Gerätes 220 zu
plazieren und Antworten können an
die Brücke 200 in
im wesentlichen derselben Weise wie oben diskutiert in der anderen
Richtung zurückgesendet
werden.
-
Wie aus der Figur ersichtlich ist,
umfasst die HyperTransport-zu-PCI-Brücke 200 ferner HyperTransport-Master-
und -Targetschnittstellen 320, 330 zum Abwickeln
des Datenverkehrs über
die HyperTransportverbindung im Falle von Upstreamanforderungen
bzw. Downstreamanforderungen. Das bedeutet, dass eine Upstreamanforderung,
wenn sie von dem PCI-Gerät 220 plaziert
wird, in der PCI-Targetschnittstelle 300 empfangen und
in der HyperTransport-Masterschnittstelle 320 der
Brücke 200 verarbeitet
wird, um die Anforderung in Upstreamrichtung zu senden. Die HyperTransport-Masterschnittstelle 320 kann
ferner dafür
verantwortlich sein, Antworten zu empfangen, die zu Upstreamanforderungen
gehören.
-
Wenn nun die PCI-Schnittstelle gemäß der in 3 gezeigten Schnittstelle
in weiteren Einzelheiten diskutiert wird, so sind jede der Paare
bildenden Master- und
Targetschnittstelleneinrichtungen über eine Anzahl von Signalleitungen
miteinander verbunden. Eine Anforderung kann in jeder Richtung durch Setzen
eines Anforderungssignals auf der spezifischen Signalleitung gesetzt
werden. Der Empfänger des
jeweiligen Anforderungssignals kann ein Erledigungssignal (Readysignal,
Bereitschaftssignal) zurücksenden.
Ferner kann es eine Signalleitung zum Kommunizieren von Befehls-
und Byte-Enable-Informationen geben.
-
Wenn in den Ausgestaltungen die PCI-Targetschnittstelle 300 eine
Anforderung von PCI-Gerät 220 empfängt, so
signalisiert sie zusammen mit der Retryanforderung an das PCI-Gerät 220 mittels
des Erledigungssignals, ob die HyperTransport-Masterschnittstelle 320 die
Anforderung verarbeiten konnte. Das Erledigungssignal wird auf einen
hohen Pegel gesetzt, wenn die Anforderung verarbeitet werden konnte;
andernfalls ist der Erledigungssignal-Pegel niedrig. Wenn das Erledigungssignal
niedrig war, d.h. die Anforderung sofort verarbeitet werden konnte,
ist es dem PCI-Gerät 220 gestattet,
seine Anforderung zu modifizieren, wenn es sie erneut versucht ("retry"). Die
PCI-Targetschnittstelle 300 ist
angepasst, um unter solchen Umständen
modifizierte Anforderungen anzunehmen. Modifizierte Anforderungen
können Anfor derungen
nach einer anderen Datenmenge sein. Beispielsweise kann das PCI-Gerät 220 beim erneuten
Versuch der Anforderung mehr Daten anfordern, als es dies ursprünglich tat.
Dies wird die Gesamtperformance verbessern, da es das Kombinieren
von zwei oder mehr Anforderungen gestattet und somit das Trafficvolumen
auf dem Bus reduziert.
-
Anforderungen können Schreib- und Leseanforderungen
sein. In beiden Fällen
kann es nötig sein,
dass die anfordernde Einheit Adressen und Daten an das andere Gerät kommuniziert,
und sie kann dies unter Verwendung der Adressdatensignalleitung tun.
Wenn der Anforderung eine Antwort folgt, kann die Datensignalleitung
verwendet werden.
-
Beispiele dafür, wie Schreib- und Lesetransaktionen
unter Verwendung der Schnittstellle von 3 übertragen
werden können,
sind in dem Timingdiagramm von 4 verdeutlicht.
Zunächst
gibt es eine Schreibtransaktion, die im Zyklus 400 übertragen
wird. Wie aus der Figur ersehen werden kann, wird die Adressleitung
verwendet, um eine Adresse zum Lokalisieren des Speicherplatzes,
in den geschrieben werden soll, gefolgt von den zu schreibenden
Daten zu senden.
-
Im Zyklus 410 wird eine
Lesetransaktion durchgeführt.
Die anfordernde Einheit kommuniziert die Adresse, aus der zu lesen
ist, unter Verwendung der Adressleitung. Die Antwort auf diese Speicherleseanforderung
wird durch die am Ende des Zyklus auf der Datensignalleitung zurückgesendeten
Daten gebildet.
-
Schließlich wird im Zyklus 420 des
Timingdiagramm von 4 gezeigt,
wie eine Schreibtransaktion mit mehreren Datenphasen verarbeitet
werden kann. Die anfordernde Einheit verwendet die Adressleitung
zum Adressieren des jeweiligen Speicherortes. Ferner werden mehrere
Datenphasen auf derselben Signalleitung gesendet. Wie ferner aus
der Figur ersehen werden kann, kann eine zusätzliche Signalleitung verwendet
werden, um die Datenphasen zu zählen.
-
Wird nun zu 3 zurückgegangen,
so umfasst die Schnittstelle 300, 340, die zum
Plazieren von Upstreamanforderungen verwendet werden kann, ferner
eine Retrysignalleitung. Diese Signalleitung kann verwendet werden,
um es dem PCI-Target, d.h. der HyperTransport-zu-PCI-Brücke 200 in
der vorliegenden Ausgestaltung, zu ermöglichen, ein Retryanforderungsbit
während
Speicherleseanforderungen zu setzen. Der Busmaster, d.h. die PCI-Masterschnittstelle 340,
darf das Anforderungssignal, das auf der Anforderungssignalleitung
plaziert worden ist, heruntersetzen und einen neuen Busmasterzyklus starten.
Der Master 340 darf die Retryanforderung auch ignorieren
und sein Anforderungssignal auf der Anforderungssignalleitung aktiv
halten. Wie aus der Diskussion unten ersichtlich werden wird, gestattet dies,
mehrere Leseanforderungen zu überlappen und
den Datendurchsatz zu erhöhen.
-
Im allgemeinen kann es das Retryanforderungssignal
dem nächsten
Upstreamtarget der Anforderung, z.B. der Brücke 200 in der vorliegenden
Ausgestaltung, ermöglichen,
diese Anforderung entgegenzunehmen, sie in Upstreamrichtung zu senden und
die anfordernde Einheit zu "retryen". Die anfordernde Einheit kann
ihr Anforderungssignal heruntersetzen, um den Pfad zu entblocken,
oder auch nicht. Durch erneutes Setzen des Anforderungssignals kann
die anfordernde Einheit dieselbe Leseanforderung später erneut
versuchen.
-
Durch das Entblocken der Schnittstelle
wird es anderen anfordernden Einheiten ermöglicht, eine Anforderung zu
plazieren und wahrscheinlich auch eine Retryanforderung zu erhalten.
Wie oben erwähnt,
können
anfordernde Einheiten andere PCI-Geräte oder andere Busmaster innerhalb
ein und desselben PCI-Geräts 220 sein.
-
Wie in 3 gezeigt,
kann die PCI-Targetschnittstelle 300 der Brücke 200 einen
Anforderungspuffer 360 und einen Antwortpuffer 370 umfassen.
Der Anforderungspuffer 360 kann verwendet werden, um Anforderungen
zu speichern, die Antworten erfordern, die noch nicht zurückgesendet
worden sind. Das bedeutet, dass jede Anforderung, die plaziert worden
ist, in dem Puffer 360 gespeichert werden kann, obwohl
die PCI-Masterschnittstelle 340 eventuell eine Retryanforderung
von der Targetschnittstelle 300 annimmt. Wenn die PCI-Masterschnittstelle 340 dieselbe
Leseanforderung später
erneut versucht und eine Antwort verfügbar ist, wird die Anforderung
aus dem Puffer 360 zu der Zeit gelöscht, wenn die Antwort an die
anfordernde Einheit zurückgesendet
wird. Zum Speichern von Antworten kann der Antwortpuffer 370 verwendet
werden.
-
Es ist anzumerken, dass in anderen
Ausgestaltungen der Anforderungspuffer 360 und/oder der Antwortpuffer 370 innerhalb
der HyperTransport-Masterschnittstelle 320 der Brücke 200 liegen kann.
Ferner können
die Puffer woanders innerhalb der Brücke 200 liegen und
die Puffer können
sogar externe Einheiten sein.
-
Wird nun zu 5 übergegangen,
die ein Flussdiagramm ist, das den Arbeitsprozess gemäß einer
Ausgestaltung verdeutlicht, so kann das PCI-Gerät 220 anfänglich eine
Upstreamanforderung in Schritt 500 durch das Setzen der Anforderungsleitung
plazieren. Die HyperTransport-zu-PCI-Brücke 200 empfängt die
Anforderung und verarbeitet sie im Schritt 510. Wie oben erwähnt wurde,
kann die Verarbeitung der Anforderung durch das Senden der Anforderung
in Upstreamrichtung zu der Hostbrücke 210 erfolgen.
-
Die HyperTransport-zu-PCI-Brücke 200 kann
dann die Retryanforderungsleitung im Schritt 520 setzen. In einer
Ausgestaltung kann die Brücke 200 die
Retryanforderung senden, wann immer sie eine Anforderung empfängt, die
eine Antwort erfordert. In einer anderen Ausgestaltung kann die
Brücke 200 die
Retryanforderung nur in bestimmten Fällen plazieren. Beispielsweise
kann das Plazieren von Retryanforderungen nur für bestimmte anfordernde Einheiten möglich sein.
Alternativ kann das Plazieren von Retryanforderungen nur für bestimmte
Arten von Anforderungen möglich
sein, z.B. bei Speicherleseanforderungen. In diesem Fall kann Schritt
520 einen Unterschritt des Bestimmens, ob die empfangene Anforderung
eine dieser Anforderungsarten ist, umfassen.
-
Ist eine Retryanforderung an die
anfordernde Einheit im Schritt 520 einmal gesendet, kann die anfordernde
Einheit im Schritt 530 bestimmen, ob sie die Retryanforderung ignorieren
wird oder annimmt. Wenn die anfordernde Einheit entscheidet, die
Retryanforderung zu ignorieren, setzt sich der Prozess mit dem Senden
der Antwort von der Brücke 200 an
die anfordernde Einheit im Schritt 570 fort, sobald sie verfügbar sein
wird, und mit dem Heruntersetzen des Anforderungssignals auf der
Anforderungsleitung durch das PCI-Gerät 220 im Schritt 580.
-
Wenn jedoch das PCI-Gerät 220 im
Schritt 530 entscheidet, die Retryanforderung anzunehmen, so setzt
sie ihr Anforderungssignal in Schritt 540 herunter, um die PCI-Schnittstelle
zu entblocken. Die Schnittstelle kann dann in Schritt 550 für andere
Anforderungen verwendet werden. Das PCI-Gerät 220 kann im Schritt
560 seine Anforderung durch das erneute Setzen des Anforderungssignals
erneut versuchen.
-
Beispielhafte Timingdiagramme zur
Verdeutlichung des Retrymechanismusses der oben diskutierten Schnittstelle
sind in den 6 bis 8 angegeben. Wird zunächst zu 6 übergegangen, so wird ein Busmasterlesezyklus
gezeigt, bei dem die Retryanforderung ignoriert wird. Das PCI-Gerät 220 kommuniziert
die Adresse 600, von der Daten zu lesen sind, an die Brücke 200.
Ferner kommuniziert das PCI-Gerät 220 eine
Befehlsidentifizierung 610 an die Brücke 200, die die Brücke 200 darüber informiert, dass
die Anforderung eine Speicherleseanforderung ist. Die Brücke 200 sendet
dann eine Retryanforderung 620 an das PCI-Gerät 220 zurück, jedoch
wird von dem PCI-Gerät 220 in
Erwiderung hierauf nichts getan. Somit bleibt die Schnittstelle blockiert,
bis die gelesenen Daten 630, 640 verfügbar und
von der Brücke 200 an
das PCI-Gerät 220 gesendet
worden sind.
-
Ein ähnliches Timingdiagramm wird
in 7 gezeigt, wobei
eine Speicherleseanforderung 700 von dem PCI-Gerät 220 plaziert
wird. Nachdem die Brücke 200 eine
Retryanforderung 710 gesendet hat, setzt das PCI-Gerät 220 das
Anforderungssignal 720 zurück. Das PCI-Gerät 220 setzt
das Anforderungssignal 730 dann erneut, um noch einmal
dieselbe Leseanforderung 740 zu senden. Es ist anzumerken, dass
das PCI-Gerät 220 denselben
Zählwert
beim Wiederversuch der Anforderung verwendet. Da eine Antwort in
dem Beispiel von 7 verfügbar ist,
werden die Daten 750, 760 von der Brücke 200 an
das PCI-Gerät 220 gesendet.
-
Wird nun zu 8 übergegangen,
so unterscheidet sich dieses Timingdiagramm von dem der 7 darin, dass kein HyperTransport-Zyklus
eingeleitet wird. Wie aus dem Diagramm ersichtlich ist, wird das
Erledigungssignal von der HyperTransport-zu-PCI-Brücke 200 ungesetzt
gelassen, wenn diese die Retryanforderung plaziert. Nach erneutem Setzen
des Anforderungssignals wird ein Befehl plaziert, dem ein anderer
Zählwert
zugeordnet ist.
-
Während
der Gesamtarbeitsprozess gemäß einer
Ausgestaltung oben unter Bezugnahme auf das Flussdiagramm von 5 diskutiert worden ist,
so wird eine detailliertere Sicht auf den Brückbetriebsprozess nun bereitgestellt,
wobei auf 9 übergegangen
wird. Im Schritt 900 wird festgestellt, ob die Befehlsidentifizierung
angibt, dass ein Speicherleseprozess von dem PCI-Gerät 220 angefordert
wurde. Ist dies der Fall, so wird im Schritt 910 bestimmt, ob die
Anforderungsadresse und -größe bereits
in dem Befehlspuffer 360 gepuffert ist. Ist dies der Fall,
so war die Anforderung bereits früher plaziert und wird nun erneut
versucht. Es wird daher in Schritt 920 überprüft, ob eine Antwort in dem
Antwortpuffer 370 verfügbar
ist. Ist eine Antwort verfügbar,
so wird sie im Schritt 930 an das PCI-Gerät 220 ausgeliefert. Wenn
jedoch keine Antwort verfügbar ist,
so setzt die Brücke 200 im
Schritt 950 das Retryanforderungssignal, um zu versuchen, die Anforderung
erneut zu unterdrücken,
um die Schnittstelle zu entblocken.
-
Wenn im Schritt 910 festgestellt
wird, dass die Anforderung zum ersten Mal plaziert worden ist, so
wird in Schritt 960 überprüft, ob es
in dem Anforderungspuffer 360 ausreichend Platz zum Puffern
einer Anforderung gibt. Ist dies der Fall, so wird der Befehl im
Schritt 970 gepuffert, und andernfalls sendet die Brücke 200 eine
Retryanforderung im Schritt 950. Selbst wenn der Befehl im Schritt
970 gepuffert werden kann, sendet die Brücke 200 die Retryanforderung
im Schritt 990, um dazu aufzufordern, die Schnittstelle zu entblocken.
-
Wie aus dem Flussdiagramm von 9 gesehen werden kann, kann
es weitere Signale geben, die zur Steuerung des Brückenbetriebs
verwendet werden. Beispielsweise kann ein In-Verarbeitung-Signal
in Schritt 980 gesetzt und in Schritt 940 gelöscht werden, um zu signalisieren,
dass eine Anforderung noch anhängig
ist. Ferner kann ein Antwortverfügbarkeitssignal
verwendet werden, um zu signalisieren, dass eine Antwort von der
Hostbrücke 210 empfangen
worden ist. Das Antwortverfügbarkeitssignal
wird in Schritt 940 gelöscht,
nachdem die Antwort in Schritt 930 an das PCI-Gerät 220 ausgeliefert
worden ist.
-
Wie aus der vorhergehenden Diskussion
der Retrytechnik nach den Ausgestaltungen ersichtlich ist, kann
ein Host (z.B. eine HyperTransport-zu-PCI-Brücke 200) einem Busmaster
(z.B. einem PCI-Gerät 220 oder
einer seiner Untereinheiten) die Chance geben, eine Busmasterspeicherleseanforderung
abzubrechen, eine andere Busmasteranforderung zu starten und die
erste Busmasteranforderung erneut zu versuchen. Der anfordernde
Busmaster kann diese Option nutzen oder auch nicht. Somit ist es
den Busmastern gestattet, das Retryanforderungssignal zu ignorieren.
Andere Anforderungen als Busmasterspeicherleseanforderungen brauchen
das Anforderungssignal nicht herunterzusetzen, bevor der Busmasterzyklus
beendet ist. In der vorliegenden Ausgestaltung wird das Retryanforderungssignal
innerhalb der Adressenphase des Busmasters gesetzt.
-
Durch die Hinzufügung der Retryfähigkeiten zu
der Niedergeschwindigkeitsschnittstelle gemäß den oben beschriebenen Ausgestaltungen
kann die Gesamtverwendung der internen Bandbreite dadurch verbessert
werden, dass mehrere anhängige Anforderungen
zulässig
sind, die von dem Host in einer Art Pipeline bedient werden. Dies
kann die Betriebsgeschwindigkeit erhöhen und die Effizienz der Datenbearbeitung
verbessern.
-
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 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 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äss
zu verstehen, dass die Erfindung nicht durch die spezifisch verdeutlichten
Ausgestaltungen, sondern nur durch den Umfang der beigefügten Ansprüche beschränkt wird.