DE10255937B4 - Ordnungsregelgesteuerte Befehlsspeicherung - Google Patents

Ordnungsregelgesteuerte Befehlsspeicherung Download PDF

Info

Publication number
DE10255937B4
DE10255937B4 DE10255937A DE10255937A DE10255937B4 DE 10255937 B4 DE10255937 B4 DE 10255937B4 DE 10255937 A DE10255937 A DE 10255937A DE 10255937 A DE10255937 A DE 10255937A DE 10255937 B4 DE10255937 B4 DE 10255937B4
Authority
DE
Germany
Prior art keywords
command
commands
posted
buffer
southbridge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE10255937A
Other languages
English (en)
Other versions
DE10255937A1 (de
Inventor
Frank Barth
Thomas Kunjan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Priority to DE10255937A priority Critical patent/DE10255937B4/de
Priority to US10/465,014 priority patent/US7181561B2/en
Publication of DE10255937A1 publication Critical patent/DE10255937A1/de
Application granted granted Critical
Publication of DE10255937B4 publication Critical patent/DE10255937B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration

Abstract

Southbridgebauelement mit einer Befehlssendeeinrichtung (220), die angepasst ist, um Befehle verschiedener Befehlstypen zu senden, wobei die Befehlssendeeinrichtung umfasst:
eine Befehlsspeichereinrichtung (310–370, 500–510), 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; und
eine Ordnungsregelsteuereinrichtung (300), die mit der Befehlsspeichereinrichtung verbunden ist, um gespeicherte Befehle, die zu senden sind, auszuwählen, wobei die Ordnungsregelsteuereinrichtung angepasst ist, um die Auswahl vordefinierter Befehlsordnungsregeln durchzuführen, wobei die Befehlsordnungsregeln befehlstypabhängig sind.

Description

  • 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 230260 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 230260 und führt eine Arbitrierung durch, um zu jeder Zeit einen der anfordernden Einheiten 230260 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 230260 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:
    Figure 00060001
  • 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 320370 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 320370 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 330370 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 320370 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 320370 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 320370 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 320370, 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.

Claims (60)

  1. Southbridgebauelement mit einer Befehlssendeeinrichtung (220), die angepasst ist, um Befehle verschiedener Befehlstypen zu senden, wobei die Befehlssendeeinrichtung umfasst: eine Befehlsspeichereinrichtung (310370, 500510), 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; und eine Ordnungsregelsteuereinrichtung (300), die mit der Befehlsspeichereinrichtung verbunden ist, um gespeicherte Befehle, die zu senden sind, auszuwählen, wobei die Ordnungsregelsteuereinrichtung angepasst ist, um die Auswahl vordefinierter Befehlsordnungsregeln durchzuführen, wobei die Befehlsordnungsregeln befehlstypabhängig sind.
  2. Southbridgebauelement nach Anspruch 1, wobei die Befehlsspeichereinrichtung eine Sequenz von Speicherelementen (320370) umfasst, um die Befehle in der Reihenfolge zu speichern, in der die Befehle empfangen worden sind.
  3. Southbridgebauelement nach Anspruch 1, wobei die Befehlsspeichereinrichtung umfasst: eine Befehlsqueue (500), die die Befehle speichert; und eine Zeigerqueue (510), die Zeiger auf ausgewählte Queueelemente der Befehlsqueue speichert.
  4. Southbridgebauelement nach Anspruch 3, wobei die Zeigerqueue einen Zeiger für jeden Befehlstyp speichert, wobei jeder der Zeiger auf ein Queueelement in der Befehlsqueue zeigt, wo der früheste Befehl des jeweiligen Befehlstyps gespeichert ist.
  5. Southbridgebauelement nach Anspruch 3, wobei die Zeigerqueue einen Zeiger auf das Queueelement, das den frühesten Posted-Befehl hält, einen Zeiger auf das Queueelement, das den frühesten Non-Posted-Befehl mit Daten hält, einen Zeiger auf das Queueelement, das den frühesten Non-Posted-Befehl ohne Daten hält, und einen Zeiger auf das Queueelement, das die früheste Antwort hält, speichert.
  6. Southbridgebauelement nach Anspruch 3, wobei die Befehlsqueue die Befehle in der Reihenfolge speichert, in der die Befehle empfangen worden sind.
  7. Southbridgebauelement nach Anspruch 3, wobei die Befehlsqueue die Befehle ungeordnet speichert, wohingegen die Zeigerqueue die Zeiger in der Reihenfolge speichert, in der die Befehle empfangen worden sind.
  8. Southbridgebauelement nach Anspruch 1, wobei die Ordnungsregelsteuereinrichtung angepasst ist, um die Auswahl abhängig von der Verfügbarkeit freien Pufferraumes beim Empfänger des jeweiligen Befehls durchzuführen.
  9. Southbridgebauelement nach Anspruch 8, wobei die Ordnungsregelsteuereinrichtung angepasst ist, um die Auswahl so durchzuführen, dass die Befehlsspeichereinrichtung in der Art eines FIFO-Puffers arbeitet.
  10. Southbridgebauelement nach Anspruch 8, wobei die Ordnungsregelsteuereinrichtung verbunden ist, um befehlstypabhängige Signale zu empfangen, die die Verfügbarkeit angeben.
  11. Southbridgebauelement nach Anspruch 10, wobei die befehlstypabhängigen Signale ein Signal, das die Verfügbarkeit freien Pufferraumes für einen Po- Posted-Befehl angibt, ein Signal, das die Verfügbarkeit freien Pufferraums für einen Non-Posted-Befehl angibt, und ein Signal, das die Verfügbarkeit freien Pufferraums für eine Antwort angibt, umfassen.
  12. Southbridgebauelement nach Anspruch 11, wobei die befehlstypabhängigen Signale weiterhin ein Signal umfassen, das die Verfügbarkeit freien Pufferraumsfür Non-Posted-Daten angibt.
  13. Southbridgebauelement nach Anspruch 10, weiterhin einen Schnittstellencontroller (520) umfassend, der mit der Ordnungsregelsteuereinrichtung verbunden ist, um die befehlstypabhängigen Signale auf Grundlage von Pufterfreigabenachrichten zu erzeugen, die von dem Empfänger empfangen werden, und um die erzeugten Signale an die Ordnungsregelsteuereinrichtung zu liefern.
  14. Southbridgebauelement nach Anspruch 13, wobei der Schnittstellencontroller wenigstens einen Pufferzähler (530) umfasst, der einen Zählwert speichert, der die Menge freien Pufferraums beim Empfänger angibt, wobei der Schnittstellencontroller angepasst ist, um den wenigstens einen Pufferzähler auf Grundlage der Pufferfreigabenachrichten zu aktualisieren.
  15. Southbridgebauelement nach Anspruch 14, wobei der wenigstens eine Pufferzähler einen speziellen Pufferzähler für jeden Befehlstyp umfasst.
  16. Southbridgebauelement nach Anspruch 14, wobei der wenigstens eine Pufferzähler einen Pufferzähler in Bezug auf Posted-Befehle, einen Pufferzähler in Bezug auf Non-Posted-Befehle, einen Pufferzähler in Bezug auf Non-Posted-Daten und einen Pufferzähler in Bezug auf Antworten umfasst.
  17. Southbridgebauelement nach Anspruch 14, wobei der Schnittstellencontroller weiterhin angepasst ist, um den wenigstens einen Pufferzähler auch dann zu aktualisieren, wenn ein Befehl gesendet wird.
  18. Southbridgebauelement nach Anspruch 13, wobei der Schnittstellencontroller ein HyperTransport-Schnittstellencontroller ist.
  19. Southbridgebauelement nach Anspruch 8, wobei der Pufferraum der Pufferung eines Befehles dient.
  20. Southbridgebauelement nach Anspruch 19, wobei der Pufferraum ferner der Pufferung von befehlstypspezifischen Daten dient.
  21. Southbridgebauelement nach Anspruch 1, wobei die Befehlstypen Posted-Befehle, Non-Posted-Befehle und Antworten umfassen.
  22. Southbridgebauelement nach Anspruch 21, wobei die Befehlstypen zwischen Non-Posted-Befehlen mit Daten und Non-Posted-Befehlen ohne Daten unterscheiden.
  23. Southbridgebauelement nach Anspruch 22, wobei die Befehlsordnungsregeln definieren, dass Non-Posted-Befehle ohne Daten Non-Posted-Befehle mit Daten überholen dürfen.
  24. Southbridgebauelement nach Anspruch 21, wobei die Befehlsordnungsregeln definieren, dass Posted-Befehle Non-Posted-Befehle überholen dürfen.
  25. Southbridgebauelement nach Anspruch 21, wobei die Befehlsordnungsregeln definieren, dass Posted-Befehle Antworten überholen dürfen.
  26. Southbridgebauelement nach Anspruch 21, wobei die Befehlsordnungsregeln definieren, dass Antworten Non-Posted-Befehle überholen dürfen.
  27. Southbridgebauelement nach Anspruch 21, wobei die Befehlsordnungsregeln definieren, dass Non-Posted-Befehle Antworten überholen dürfen.
  28. Southbridgebauelement nach Anspruch 21, wobei die Befehlsordnungsregeln definieren, dass kein Befehl Posted-Befehle überholen darf.
  29. Southbridgebauelement nach Anspruch 1, weiterhin einen Datendecodierer umfassend, wobei die Ordnungsregelsteuereinrichtung in dem Datendecodierer umfasst ist.
  30. Southbridgebauelement nach Anspruch 1, wobei die Befehlssendeeinrichtung angepasst ist, um die Befehle über eine HyperTransport-Verbindung zu senden.
  31. Computersystem umfassend: wenigstens eine Peripheriekomponente; und eine Southbridge mit einer Befehlssendeeinrichtung (220), die angepasst ist zum Senden von Befehlen verschiedener Befehlstypen, wobei die Befehlssendeeinrichtung umfasst: eine Befehlsspeichereinrichtung (310370, 500510), die angepasst ist, um hereinkommende Befehle verschiedener Befehlstypen von wenigstens einer Steuereinrichtung (230260) der wenigstens einen Peripheriekomponente zu empfangen, wobei die Befehlsspeichereinrichtung die Befehle in der Reihenfolge speichert, in der die Befehle empfangen worden sind; und eine Ordnungsregelsteuereinrichtung (300), die mit der Befehlsspeichereinrichtung verbunden ist, um gespeicherte Befehle, die zu senden sind, auszuwählen, wobei die Ordnungsregelsteuereinrichtung angepasst ist, um die Auswahl gemäß vordefinierter Befehlsordnungsregeln durchzuführen, wobei die Befehlsordnungsregeln befehlstypabhängig sind.
  32. Verfahren zum Betreiben eines Southbridgebauelements, wobei das Verfahren umfasst: Empfangen von Befehlen verschiedener Befehlstypen; Speichern der Befehle in der Reihenfolge, in der die Befehle empfangen worden sind; Auswählen (600620) gespeicherter Befehle, die zu senden sind, durch Anwenden vordefinierter Befehlsordnungsregeln, wobei die Befehlsordnungsregeln befehlstypabhängig sind; und Senden (630) der ausgewählten Befehle.
  33. Verfahren nach Anspruch 32, wobei der Schritt des Speicherns der Befehle umfasst: Schreiben der Befehle in eine Sequenz aus Speicherelementen (320370) in der Reihenfolge, in der die Befehle empfangen worden sind.
  34. Verfahren nach Anspruch 32, wobei der Schritt des Speicherns der Befehle umfasst: Speichern der Befehle in eine Befehlsqueue; und Speichern von Zeigern auf ausgewählte Queueelemente der Befehlsqueue in einer Zeigerqueue.
  35. Verfahren nach Anspruch 34, wobei der Schritt des Speicherns von Zeigern umfasst: Speichern eines Zeigers für jeden Befehlstyp, wobei jeder der Zeiger auf ein Queueelement in der Befehlsqueue zeigt, wo der früheste Befehl des jeweiligen Befehlstyps gespeichert ist.
  36. Verfahren nach Anspruch 34, wobei der Schritt des Speicherns von Zeigern umfasst: Speichern eines Zeigers auf das Queueelement, das den frühesten Posted-Befehl hält, eines Zeigers auf das Queueelement, das den frühesten Non-Posted-Befehle mit Daten hält, eines Zeigers auf das Queueelement, das den frühesten Non-Posted-Befehle ohne Daten hält, und eines Zeigers auf das Queueelement, das die früheste Antwort hält.
  37. Verfahren nach Anspruch 34, wobei die Befehle in der Befehlsqueue in der Reihenfolge gespeichert werden, in der die Befehle empfangen worden sind.
  38. Verfahren nach Anspruch 34, wobei die Befehle in der Befehlsqueue ungeordnet gespeichert werden, wohingegen die Zeiger in der Zeigerqueue in der Reihenfolge gespeichert werden, in der die Befehle empfangen worden sind.
  39. Verfahren nach Anspruch 32, wobei der Schritt des Auswählens gespeicherter Befehle abhängig von der Verfügbarkeit freien Pufferraums beim Empfänger des jeweiligen Befehls durchgeführt wird.
  40. Verfahren nach Anspruch 39, wobei der Schritt des Auswählens gespeicherter Befehle so durchgeführt wird, dass eine Befehlsspeicherung vom FIFO-Typ erreicht wird.
  41. Verfahren nach Anspruch 38, wobei der Schritt des Auswählens gespeicherter Befehle umfasst: Empfangen von befehlstypabhängigen Signalen, die die Verfügbarkeit angeben.
  42. Verfahren nach Anspruch 41, wobei die befehlstypabhängigen Signale ein Signal, das die Verfügbarkeit freien Pufferraums für einen Posted-Befehle angibt, ein Signal, das die Verfügbarkeit freien Pufferraums für einen Non-Posted-Befehle angibt, und ein Signal, das die Verfügbarkeit freien Pufferraumsfür eine Antwort angibt, umfassen.
  43. Verfahren nach Anspruch 42, wobei die befehlstypabhängigen Signale weiterhin ein Signal umfassen, das die Verfügbarkeit freien Pufferraums für Non-Posted-Daten angibt.
  44. Verfahren nach Anspruch 41, wobei der Schritt des Auswählens gespeicherter Befehle umfasst: Erzeugen der befehlstypabhängigen Signale auf Grundlage von Pufferfreigabenachrichten, die von dem Empfänger empfangen werden.
  45. Verfahren nach Anspruch 44, wobei das Erzeugen der befehlstypabhängigen Signale umfasst: Speichern wenigstens eines Pufferzählwertes, der die Menge freien Pufferraums beim Empfänger angibt, und Aktualisieren des wenigstens einen Pufferzählwertes auf Grundlage der Pufferfreigabenachrichten.
  46. Verfahren nach Anspruch 45, wobei der wenigstens eine Pufferzählwert einen speziellen Pufferzählwert für jeden Befehlstyp umfasst.
  47. Verfahren nach Anspruch 45, wobei der wenigstens eine Pufferzählwert einen Pufferzählwert in Bezug auf Posted-Befehle, einen Pufferzählwert in Bezug auf Non-Posted-Befehle, einen Pufferzählwert in Bezug auf Non-Posted-Daten und einen Pufferzählwert in Bezug auf Antworten umfasst.
  48. Verfahren nach Anspruch 45, wobei der wenigstens eine Pufferzählwert auch dann aktualisiert wird, wenn ein Befehl gesendet wird.
  49. Verfahren nach Anspruch 41, wobei der Pufferraum der Pufferung eines Befehls dient.
  50. Verfahren nach Anspruch 49, wobei der Pufferraum ferner der Pufferung von befehlstypspezifischen Daten dient.
  51. Verfahren nach Anspruch 32, wobei die Befehlstypen Posted-Befehle, Non-Posted-Befehle und Antworten umfassen.
  52. Verfahren nach Anspruch 52, wobei die Befehlstypen zwischen Non-Posted-Befehlen mit Daten und Non-Posted-Befehlen ohne Daten unterscheiden.
  53. Verfahren nach Anspruch 52, wobei die Befehlsordnungsregeln definieren, dass Non-Posted-Befehle ohne Daten Non-Posted-Befehle mit Daten überholen dürfen.
  54. Verfahren nach Anspruch 51, wobei die Befehlsordnungsregeln definieren, dass Posted-Befehle Non-Posted-Befehle überholen dürfen.
  55. Verfahren nach Anspruch 51, wobei die Befehlsordnungsregeln definieren, dass Posted-Befehle Antworten überholen dürfen.
  56. Verfahren nach Anspruch 51, wobei die Befehlsordnungsregeln definieren, dass Antworten Non-Posted-Befehle überholen dürfen.
  57. Verfahren nach Anspruch 51, wobei die Befehlsordnungsregeln definieren, dass Non-Posted-Befehle Antworten überholen dürfen.
  58. Verfahren nach Anspruch 51, wobei die Befehlsordnungsregeln definieren, dass kein Befehl Posted-Befehle überholen darf.
  59. Verfahren nach Anspruch 32, wobei der Schritt des Auswählens gespeicherter Befehle durch einen Datendecodierer des Southbridgebauelements durchgeführt wird.
  60. Verfahren nach Anspruch 32, wobei die ausgewählten Befehle über eine HyperTransport-Verbindung gesendet werden.
DE10255937A 2002-11-29 2002-11-29 Ordnungsregelgesteuerte Befehlsspeicherung Expired - Lifetime DE10255937B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE10255937A DE10255937B4 (de) 2002-11-29 2002-11-29 Ordnungsregelgesteuerte Befehlsspeicherung
US10/465,014 US7181561B2 (en) 2002-11-29 2003-06-19 Ordering rule controlled command storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10255937A DE10255937B4 (de) 2002-11-29 2002-11-29 Ordnungsregelgesteuerte Befehlsspeicherung

Publications (2)

Publication Number Publication Date
DE10255937A1 DE10255937A1 (de) 2004-06-24
DE10255937B4 true DE10255937B4 (de) 2005-03-17

Family

ID=32335857

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10255937A Expired - Lifetime DE10255937B4 (de) 2002-11-29 2002-11-29 Ordnungsregelgesteuerte Befehlsspeicherung

Country Status (2)

Country Link
US (1) US7181561B2 (de)
DE (1) DE10255937B4 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10234933A1 (de) 2002-07-31 2004-03-18 Advanced Micro Devices, Inc., Sunnyvale Pufferung von Non-Posted-Lesebefehlen und Antworten
DE10234934A1 (de) * 2002-07-31 2004-03-18 Advanced Micro Devices, Inc., Sunnyvale Antwortreihenwiederherstellungsmechanismus
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7788451B2 (en) * 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7447240B2 (en) * 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7454551B2 (en) * 2004-05-26 2008-11-18 Synopsys, Inc. Reconstructing transaction order using clump tags
US7363419B2 (en) * 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US20050289278A1 (en) * 2004-06-24 2005-12-29 Tan Thian A Apparatus and method for programmable completion tracking logic to support multiple virtual channels
US7865647B2 (en) * 2006-12-27 2011-01-04 Mips Technologies, Inc. Efficient resource arbitration
US8332608B2 (en) * 2008-09-19 2012-12-11 Mediatek Inc. Method of enhancing command executing performance of disc drive
US7613850B1 (en) * 2008-12-23 2009-11-03 International Business Machines Corporation System and method utilizing programmable ordering relation for direct memory access
US8543754B2 (en) * 2011-02-25 2013-09-24 International Business Machines Corporation Low latency precedence ordering in a PCI express multiple root I/O virtualization environment
US9489304B1 (en) * 2011-11-14 2016-11-08 Marvell International Ltd. Bi-domain bridge enhanced systems and communication methods
US9236064B2 (en) * 2012-02-15 2016-01-12 Microsoft Technology Licensing, Llc Sample rate converter with automatic anti-aliasing filter
US10628329B2 (en) * 2016-04-26 2020-04-21 Nxp Usa, Inc. Data processing system having a coherency interconnect
US10540316B2 (en) 2017-12-28 2020-01-21 Advanced Micro Devices, Inc. Cancel and replay protocol scheme to improve ordered bandwidth

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768548A (en) * 1992-04-15 1998-06-16 Intel Corporation Bus bridge for responding to received first write command by storing data and for responding to received second write command by transferring the stored data
DE69326066T2 (de) * 1992-03-25 2000-03-30 Zilog Inc Schnelle befehlsdekodierung in einem pipeline-prozessor
WO2000077624A1 (de) * 1999-06-10 2000-12-21 Infineon Technologies Ag Programmgesteuerte einheit

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112265A (en) * 1997-04-07 2000-08-29 Intel Corportion System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
US6618354B1 (en) * 1998-03-13 2003-09-09 Hewlett-Packard Development Company, L.P. Credit initialization in systems with proactive flow control
US6366968B1 (en) * 1998-06-26 2002-04-02 Intel Corporation Physical write packets processing when posted write error queue is full, with posted write error queue storing physical write requests when posted write packet fails
US6205506B1 (en) * 1998-08-25 2001-03-20 Stmicroelectronics, Inc. Bus interface unit having multipurpose transaction buffer
US6101568A (en) * 1998-08-25 2000-08-08 Stmicroelectronics, Inc. Bus interface unit having dual purpose transaction buffer
US6202101B1 (en) * 1998-09-30 2001-03-13 Compaq Computer Corporation System and method for concurrently requesting input/output and memory address space while maintaining order of data sent and returned therefrom
US6243781B1 (en) * 1998-12-03 2001-06-05 Intel Corporation Avoiding deadlock by storing non-posted transactions in an auxiliary buffer when performing posted and non-posted bus transactions from an outbound pipe
US6442631B1 (en) * 1999-05-07 2002-08-27 Compaq Information Technologies Group, L.P. Allocating system resources based upon priority
US6708244B2 (en) * 1999-07-22 2004-03-16 Cypress Semiconductor Corp. Optimized I2O messaging unit
US6601117B1 (en) * 2000-08-29 2003-07-29 Intel Corporation Arrangements for independent queuing/tracking of transaction portions to reduce latency
US6694390B1 (en) * 2000-09-11 2004-02-17 Intel Corporation Managing bus transaction dependencies
US6757768B1 (en) * 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US6823405B1 (en) * 2001-10-15 2004-11-23 Advanced Mirco Devices, Inc. Method and apparatus for initiating partial transactions in a peripheral interface circuit for an I/O node of a computer system
US6862673B2 (en) * 2001-11-14 2005-03-01 Silicon Integrated Systems Corporation Command order maintenance scheme for multi-in/multi-out FIFO in multi-threaded I/O links
US7072342B1 (en) * 2002-03-20 2006-07-04 Applied Micro Circuits Corporation Reordering of out-of-order packets
US6732242B2 (en) * 2002-03-28 2004-05-04 Intel Corporation External bus transaction scheduling system
US20040019729A1 (en) * 2002-07-29 2004-01-29 Kelley Richard A. Buffer management and transaction control for transition bridges
US6760793B2 (en) * 2002-07-29 2004-07-06 Isys Technologies, Inc. Transaction credit control for serial I/O systems
DE10234934A1 (de) 2002-07-31 2004-03-18 Advanced Micro Devices, Inc., Sunnyvale Antwortreihenwiederherstellungsmechanismus
DE10234933A1 (de) 2002-07-31 2004-03-18 Advanced Micro Devices, Inc., Sunnyvale Pufferung von Non-Posted-Lesebefehlen und Antworten

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69326066T2 (de) * 1992-03-25 2000-03-30 Zilog Inc Schnelle befehlsdekodierung in einem pipeline-prozessor
US5768548A (en) * 1992-04-15 1998-06-16 Intel Corporation Bus bridge for responding to received first write command by storing data and for responding to received second write command by transferring the stored data
WO2000077624A1 (de) * 1999-06-10 2000-12-21 Infineon Technologies Ag Programmgesteuerte einheit

Also Published As

Publication number Publication date
US7181561B2 (en) 2007-02-20
US20040107306A1 (en) 2004-06-03
DE10255937A1 (de) 2004-06-24

Similar Documents

Publication Publication Date Title
DE10255937B4 (de) Ordnungsregelgesteuerte Befehlsspeicherung
DE10234933A1 (de) Pufferung von Non-Posted-Lesebefehlen und Antworten
DE10234934A1 (de) Antwortreihenwiederherstellungsmechanismus
DE69725687T2 (de) Transaktionsübertragung zwischen Datenbussen in einem Rechnersystem
DE19580990C2 (de) Verfahren und Einrichtung zum Ausführen verzögerter Transaktionen
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
DE112011103916B4 (de) Speicherzugriffseinheit für gemeinsame Speichernutzung zwischen mehreren Prozessoren
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE10234992A1 (de) Retry-Mechanismus für blockierende Schnittstellen
DE19681745B4 (de) Verfahren zum Übergeben der Kontrolle des Zugriffs auf einen Hauptspeicher von einer Speichersteuereinrichtung auf eine weitere Steuereinrichtung und ein solches Verfahren ausführendes Computersystem
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE2921419C2 (de)
DE10030148A1 (de) Brückenvorrichtung
DE10213839B4 (de) DMA-Mechanismus für einen Hochgeschwindigkeitspaketbus
DE69724884T2 (de) Gerät und Verfahren zur positiven und subtraktiven Adressdekodierung auf einem Bus
CN87106353A (zh) 数字数据处理系统高速缓冲存储器内容的失效标记
DE4142756A1 (de) Datenweg-einrichtung zur kopplung zweier busse
CN107305534A (zh) 对使用NVMe接口的装置同时进行的内核模式和用户模式访问
DE10214067B4 (de) Integrierter Schaltkreischip mit Hochgeschwindigkeitsdatenschnittstelle sowie zugehöriges Southbridgebauelement und Verfahren
DE60026068T2 (de) System für externe transaktionen mit dynamischen prioritäten
DE102013018135A1 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE602004008060T2 (de) Usb host controller mit speicher für transferdeskriptoren
DE60217132T2 (de) Vorrichtung zur erhaltung der producer-consumer anordnung entlang einer ungeordneten schnittstelle
DE102012107577A1 (de) Multiport-Speicherelement sowie Halbleitervorrichtung und System mit demselben
DE60220309T2 (de) Software-transparentes system und verfahren zum vermitteln von peer- zu- peer nachrichten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R071 Expiry of right