DE60212190T2 - Übermittlung von transaktionstypen zwischen agenten in einem computersystem durch verwendung von paketkopfteilen mit einem erweiterten typen-/längenerweiterungsfeld - Google Patents

Übermittlung von transaktionstypen zwischen agenten in einem computersystem durch verwendung von paketkopfteilen mit einem erweiterten typen-/längenerweiterungsfeld Download PDF

Info

Publication number
DE60212190T2
DE60212190T2 DE60212190T DE60212190T DE60212190T2 DE 60212190 T2 DE60212190 T2 DE 60212190T2 DE 60212190 T DE60212190 T DE 60212190T DE 60212190 T DE60212190 T DE 60212190T DE 60212190 T2 DE60212190 T2 DE 60212190T2
Authority
DE
Germany
Prior art keywords
field
termination
request
packet header
packet
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
DE60212190T
Other languages
English (en)
Other versions
DE60212190D1 (de
Inventor
David Sacramento Harriman
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE60212190D1 publication Critical patent/DE60212190D1/de
Application granted granted Critical
Publication of DE60212190T2 publication Critical patent/DE60212190T2/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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/912Applications of a database
    • Y10S707/922Communications

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft das Gebiet der Computersysteme. Insbesondere betrifft die vorliegende Erfindung das Gebiet der Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindungen und der Datenaustauscharchitekturen.
  • ALLGEMEINER STAND DER TECHNIK
  • Rechnervorrichtungen, z.B. Computersysteme, Server, Netzwerkschalter und Leitwegrechner, drahtlose Datenaustauscheinheiten und ähnliches, bestehen typischerweise aus einer Anzahl verschiedener Elemente. Solche Elemente sind z.B. häufig ein Prozessor, eine Systemsteuerungslogik, ein Speichersystem, Eingabe- und Ausgabe-Schnittstellen und ähnliches. Um den Datenaustausch zwischen solchen Elementen zu erleichtern, waren Rechnervorrichtungen lange auf allgemeine Eingabe/Ausgabe-Busse angewiesen, um zu ermöglichen, daß diese verschiedenen Elemente des Rechnersystems miteinander Daten austauschen, um die Myriaden von Anwendungen zu unterstützen, die von solchen Vorrichtungen angeboten werden.
  • Vielleicht eine der allgegenwärtigsten solcher allgemeinen Busarchitekturen ist der Peripheral-Component-Interconnect-(PCI)-Bus. Der PCI-Bus-Standard (Peripheral Component Interconnect (PCI) Local Bus Specification, Ausgabe 2.2, veröffentlicht am 18. Dezember 1998) wird definiert durch eine parallele Mehrfachabzweig-Busarchitektur zum Verbinden von Chips, Erweiterungskarten und Prozessor/Speicher-Untersystemen mit Buszuteilung innerhalb einer Rechnervorrichtung. Während typische Verwirklichungen von PCI-Bussen einen Durchsatz von 133 Mbps (also 32 Bit mit 33 MHz) aufweisen, ermöglicht der PCI-2.2-Standard 64 Bit je Stift der Parallelverbindung, getaktet mit bis zu 133 MHz, was zu einem theoretischen Durchsatz von eben über 1 Gbps führt.
  • Der Durchsatz, den die PCI-Busarchitekturen bieten, hat bis vor kurzem für eine geeignete Bandbreite besorgt, um den internen Datenaustauscherfordernissen sogar der fortgeschrittensten Rechnervorrichtungen (z.B. Mehrprozessor-Server-Anwendungen, Netzwerkanwendungen usw.) zu genügen. Die jüngsten Fortschritte in der Verarbeitungsleistung und steigende Anforderungen an die Eingabe/Ausgabe-Bandbreite schaffen jedoch eine Situation, wo die früheren allgemeinen Architekturen wie die PCI-Bus-Architektur zu Verarbeitungs-Engpässen innerhalb solcher Rechnervorrichtungen geworden sind.
  • Eine andere Einschränkung, welche die früheren Architekturen mit sich bringen, ist es, daß sie typischerweise nicht gut dafür geeignet sind, isochrone (zeitabhängige) Datenströme zu verarbeiten. Ein Beispiel für einen isochronen Datenstrom ist ein Multimedia-Datenstrom, welcher einen Transportmechanismus erfordert, um sicherzustellen, daß die Daten so schell verbraucht werden, wie sie empfangen werden, und um sicherzustellen, daß der Audio-Teil mit dem Video-Teil synchronisiert ist. Herkömmliche allgemeine Eingabe/Ausgabe-Architekturen verarbeiten Daten asynchron oder in unregelmäßigen Intervallen, wie es die Bandbreite erlaubt. Eine solche asynchrone Verarbeitung von Multimedia-Datenströmen kann zu Datenverlusten und/oder einem nicht abgestimmten Audio- und Videoteil führen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung ist vollständiger zu verstehen aus der folgenden detaillierten Beschreibung und aus den begleitenden Zeichnungen der Ausführungsformen der Erfindung, welche jedoch die Erfindung nicht auf die speziellen beschriebenen Ausführungsformen beschränken sollen, sondern nur der Beschreibung und dem Verständnis dienen sollen.
  • 1 ist ein Blockdiagramm einer Ausführungsform eines Computersystems.
  • 2 ist eine graphische Darstellung eines beispielhaften verbesserten allgemeinen Eingabe/Ausgabe-Anschlusses.
  • 3 ist ein Diagramm, welches das Format einer Ausführungsform des Beginns eines Transaktionsebenen-Paketkopfes darstellt.
  • 4 ist ein Diagramm eines Anforderungs-Paketkopfes, welcher ein 32-Bit-Adreßformat unterstützt.
  • 5 ist ein Diagramm eines Anforderungs-Paketkopfes, welcher ein 64-Bit-Adreßformat unterstützt.
  • 6 ist ein Diagramm eines Paketkopfes für eine Mitteilung.
  • 7 ist ein Diagramm, welches ein Anforderungskopf-Format für eine Konfigurationstransaktion darstellt.
  • 8 ist ein Diagramm, welches eine Ausführungsform eines Formats für einen Beendigungskopf darstellt.
  • 9a und 9b bilden in Kombination ein Flußdiagramm eines Ausführungsbeispiels eines Verfahrens zur Behandlung empfangener Transaktionsebenenpakete.
  • 10 ist ein Flußdiagramm einer Ausführungsform eines Verfahrens zur Behandlung von Fehlerbedingungen in Zusammenhang mit empfangenen Anforderungspaketen.
  • 11 ist ein Flußdiagramm einer Ausführungsform eines Verfahrens zur Behandlung eines Beendigungspaketes, welches von einem Systemagenten nicht erwartet wird.
  • 12 ist ein Flußdiagramm einer Ausführungsform eines Verfahrens für eine anfordernde Einheit, welche ein Beendigungspaket mit einem anderen Beendigungsstatus als „Erfolgreiche Beendigung" behandelt.
  • 13 ist ein Flußdiagramm einer Ausführungsform eines Verfahrens für eine beendigende Einheit, welche ein Beendigungspaket mit einem anderen Beendigungsstatus als „Erfolgreiche Beendigung" behandelt.
  • DETAILLIERTE BESCHREIBUNG
  • Im folgenden werden Ausführungsformen einer Punkt-zu-Punkt-Verbindungsarchitektur auf Paketbasis, eines Datenaustauschprotokolls und ähnlicher Verfahren, um eine skalierbare und erweiterbare allgemeine Eingabe/Ausgabe-Datenaustauschplattform für den Einsatz innerhalb einer elektronischen Vorrichtung bereitzustellen, beschrieben. Die offenbarten Ausführungsformen umfassen eine verbesserte allgemeine Eingabe/Ausgabe-Ver bindungsarchitektur und ein damit zusammenhängendes Datenaustauschprotokoll. Ein Ausführungsbeispiel enthält einen oder mehrere eines Grundkomplexes, welcher eine Host Bridge, einen Schalter oder Endpunkte enthält, wobei jeder zumindest eine Untergruppe verbesserter allgemeiner Eingabe/Ausgabe-Merkmale beinhaltet, um einen verbesserten allgemeinen Eingabe/Ausgabe-Datenaustausch zwischen solchen Elementen zu unterstützen.
  • Der Datenaustausch zwischen den verbesserten allgemeinen Eingabe/Ausgabe-Merkmalen solcher Elemente wird in einer Ausführungsform unter Verwendung serieller Datenaustauschkanäle durchgeführt, wobei ein Datenaustauschprotokoll angewendet wird, welches eines oder mehrere neue Merkmale unterstützt, z.B., aber nicht darauf beschränkt, virtuelle Datenaustauschkanäle, Fehlerweiterleitung auf Tailer-Basis („Tailer" sind an Transaktionsebenenpakete angehängt, um eine Fehlerbedingung anzuzeigen), Unterstützung für bestehende Einheiten auf PCI-Basis, Mehrfachanforderungs-Antworttypen, Flußregelung und/oder Datenintegritätsmanagement-Merkmale. Das in dieser Ausführungsform unterstützte Datenaustauschprotokoll enthält einen Datenaustauschprotokollstapel, welcher eine physikalische Ebene, eine Datenübermittlungsebene und eine Transaktionsebene enthält.
  • In einer alternativen Ausführungsform beinhaltet ein Datenaustauschagent eine verbesserte allgemeine Eingabe/Ausgabe-Maschine, welche eine Untergruppe der vorstehenden Merkmale umfaßt. Ferner können ein oder mehrere Elemente der verschiedenen Ausführungsformen in Hardware, Software, einem sich ausbreitenden Signal oder einer Kombination davon verwirklicht werden.
  • 1 ist ein Blockdiagramm einer elektronischen Vorrichtung 100, bei welcher es sich in dieser Ausführungsform um ein Computersystem handelt. Das System 100 enthält einen Prozessor 102, eine Host Bridge 103, welche als Teil eines Grundkomplexes 104 enthalten ist, den Schalter 108 und den Endpunkt 110, jeweils wie dargestellt verknüpft. Der Grundkomplex 104, der Schalter 108 und der Endpunkt 110 enthalten ein oder mehrere Exemplare eines verbesserten allgemeinen Eingabe/Ausgabe-Datenaustauschanschlusses 106. Wie dargestellt, ist jedes der Elemente 102, 104, 108 und 110 durch eine Datenaustauschverbindung 112, welche einen oder mehrere verbesserte allgemeine Eingabe/Ausgabe-Datenaustauschkanäle unterstützt, über den verbesserten allgemeinen Eingabe/Ausgabe-Datenaustauschanschluß mit mindestens einem anderen Element verknüpft. Das System 100 soll für jedes System einer breiten Vielfalt an herkömmlichen und nichtherkömmlichen Rechnersystemen, Servern, Netzwerkschaltern, Netzwerk-Leitwegrechnern, Teilnehmergeräten für den drahtlosen Datenaustausch, Infrastrukturelementen für das drahtlose Telefonieren, PDA-Computer, Set-Top-Boxen oder irgendeine elektrische Vorrichtung stehen, die von den Datenaustausch-Ressourcen profitieren würde, die durch die Integration mindestens einer Untergruppe der verbesserten allgemeinen Eingabe/Ausgabe-Verbindungsarchitektur und/oder des hier beschriebenen Datenaustauschprotokolls eingeführt werden.
  • In diesem Ausführungsbeispiel steuert der Prozessor 102 eine oder mehrere Erscheinungsformen der funktionellen Möglichkeiten der elektronischen Vorrichtung 100. In dieser Hinsicht steht der Prozessor 102 für irgendeine aus einer breiten Vielfalt von Steuerlogikeinheiten, z.B., aber nicht darauf beschränkt, für eines oder mehrere aus einem Mikroprozessor, einer programmierbaren Logikeinheit (PLD), einer programmierbaren Logikanordnung (PLA), einer anwendungsspezifischen integrierten Schaltung (ASIC), einem Mikrocontroller und ähnlichem.
  • Der Grundkomplex 104 stellt eine Datenaustausch-Schnittstelle zwischen dem Prozessor 102 und dem Schalter 108 und dem Endpunkt 110 bereit. Wie hier verwendet, bezieht sich der Begriff „Grundkomplex" auf eine logische Einheit einer verbesserten allgemeinen Eingabe/Ausgabe-Hierarchie, welche einem Wirtscontroller, einem Speichercontrollerknoten, einem IO-Controllerknoten oder irgendeiner Kombination der obigen oder irgendeiner Kombination von Chipsatz/CPU-Elementen (d.h., in einer Computersystem-Umgebung) am nächsten ist. Obwohl in 1 als eine einzelne Einheit dargestellt, kann der Grundkomplex 104 mit mehreren physikalischen Komponenten verwirklicht werden. Der Grundkomplex 104 enthält einen oder mehrere verbesserte allgemeine Eingabe/Ausgabe-Anschlüsse 106, um den Datenaustausch mit anderen Peripherieeinheiten, z.B. dem Schalter 108, dem Endpunkt 110 und, obwohl nicht im einzelnen dargestellt, den bestehenden Brücken 114 oder 116, zu erleichtern. In einer Ausführungsform steht jeder verbesserte allgemeine Eingabe/Ausgabe-Schnittstellenanschluß für eine andere Hierarchiedomäne. In dieser Hinsicht beschreibt die Ausführungsform der 1 einen Grundkomplex 104 mit drei Hierarchiedomänen.
  • 2 ist eine graphische Darstellung eines beispielhaften verbesserten allgemeinen Eingabe/Ausgabe-Anschlusses 106. In dieser Ausführungsform verwirklicht der verbesserte allgemeine Eingabe/Ausgabe-Anschluß 106 einen Datenaustauschstapel, welcher eine Transaktionsebene 202, eine Datenübermittlungsebene 204 und eine physikalische Ebene 206 umfaßt, die, wie dargestellt, einen logischen Teilblock 208 und einen physikalischen Teilblock 210 enthält. Elemente der Transaktionsebene werden im folgenden detaillierter beschrieben.
  • Die Transaktionsebene 202 stellt eine Schnittstelle zwischen der verbesserten allgemeinen Eingabe/Ausgabe-Architektur und einem Einheits-Kernspeicher bereit. Eine hauptsächliche Aufgabe der Transaktionsebene 202 ist die Zusammenstellung und Zerlegung von Paketen für eine oder mehrere logische Einheiten innerhalb eines Agenten.
  • Eines der Hauptziele der verbesserten allgemeinen Eingabe/Ausgabe-Architektur ist es, die Effizienz des Datenaustausches zwischen Einheiten zu maximieren. In einer Ausführungsform verwirklicht die Transaktionsebene ein im Fließbandsystem verarbeitetes vollständiges Protokoll für zerteilte Transaktionen ebenso wie Mechanismen zum Differenzieren der Ordnungs- und Verarbeitungserfordernisse von Transaktionsebenenpaketen. Die Transaktionsebene umfaßt ferner die Konstruktion und die Verarbeitung von Transaktionsebenenpaketen.
  • Eine Ausführungsform der verbesserten allgemeinen Eingabe/Ausgabe-Architektur unterstützt die folgenden grundlegenden Transaktionstypen und Adreßräume: Speicher, E/A, Konfiguration und Mitteilung. Es werden zwei Adressierungstypen unterstützt: 32 Bit und 64 Bit.
  • Die Transaktionen werden unter Verwendung von Anforderungs- und Beendigungspaketen übertragen, welche einfach als Anforderungen und Beendigungen bezeichnet werden können. Beendigungen werden nur dort verwendet, wo sie benötigt werden, z.B.: um gelesene Daten zurückzusenden oder um die Beendigung von E/A- und von Konfigurations-Schreibtransaktionen zu bestätigen. Beendigungen sind durch den Wert in dem Anforderungseinheits-Kennungsfeld des Paketkopfes (unten beschrieben) mit ihren entsprechenden Anforderungen verbunden.
  • Alle Transaktionsebenenpakete in dieser Ausführungsform beginnen mit einem festgelegten Kopf. Einige Transaktionsebenenpakete enthalten Daten, die dem Kopf folgen, wie durch das Formatfeld festgelegt, welches in dem Transaktionsebenenpaketkopf spezifiziert ist. Das Transaktionsebenenpaket ist durch einen vorgegebenen Wert der maximalen Nutzlast in der Größe begrenzt. Die Transaktionsebenenpaketdaten betragen in dieser Ausführungsform vier Byte natürlich angeordnet und mit Inkrementen von Vier-Byte-Doppelwörtern.
  • 3 ist ein Diagramm, welches das Format einer Ausführungsform des Beginns eines Transaktionsebenenpaketkopfes darstellt. Jeder Transaktionsebenenpaketkopf enthält ein Drei-Bit-Formatfeld (Fmt[2:0]). Der Transaktionsebenenpaketkopf enthält auch ein Vier-Bit-Typenfeld (Typ[3:0]). Sowohl das Fmt- als auch das Typenfeld müssen decodiert werden, um das Format des Transaktionsebenenpaketes zu ermitteln. Tabelle 1 zeigt beispielhafte Decodierungen für das Fmt-Feld.
  • Figure 00070001
    Tabelle 1 – Fmt-Feld-Decodierungen
  • In dieser Ausführungsform enthält der Transaktionsebenenkopf auch ein Zwei-Bit-Erweitertes Typen-/Erweitertes Längenfeld (Et/El). Dieses Feld wird verwendet, um entweder das Typenfeld oder das Längenfeld zu erweitern, abhängig von dem Wert im Typenfeld. In dieser Ausführungsform ist das Längenfeld gewöhnlich ein Acht-Bit-Feld, kann aber erweitert werden, so daß es zu einem Zehn-Bit-Feld wird, wenn der Wert im Typenfeld anzeigt, daß das Et/El-Feld verwendet werden soll, um das Längenfeld zu erweitern. Das Typenfeld kann erweitert werden, so daß es zu einem Sechs-Bit-Feld wird, indem das Et/El-Feld angehängt wird, abhängig von dem Wert im Typen[3:0]-Feld. Siehe Tabelle 2 unten für beispielhafte Fmt-, Typen- und Et/El-Feld-Codierungen (in alternativen Ausführungsformen können andere Codierungsschemen verwendet werden). Das Et/El-Feld wird als Erweiterung des Typenfeldes benutzt, wenn nicht anders angegeben.
  • Figure 00070002
  • Figure 00080001
  • Figure 00090001
    Tabelle 2 – Fmt-, Typ- und Et/El-Codierungen
  • Anforderungspakete enthalten einen Anforderungskopf, welcher für einige Typen von Anforderungspaketen von einer gewissen Anzahl an Daten-Doppelwörtern gefolgt wird. Der Begriff „Doppelwort", wie er hier verwendet wird, bezeichnet eine 32-Bit-Länge der Daten. In diesem Ausführungsbeispiel wird das Längenfeld für Mitteilungsanforderungsköpfe nicht verwendet, außer für Mitteilungen, welche sich ausdrücklich auf eine Datenlänge beziehen. Ebenfalls ist in dieser Ausführungsform für Speicherleseanforderungen das Et/E1-Feld und Speicherschreibanforderungen mit dem Längenfeld verkettet, um ein Zehn-Bit-Längenfeld zu bilden. Das Zehn-Bit-Längenfeld erlaubt Lese- und Schreibanforderungen, welche bis zu 4 kB an Daten anzeigen. Andere Typen von Transaktionsebenenpaketen sind durch die Größe des Längen[7:0]-Feldes darauf begrenzt, bis zu 1 kB an Daten anzuzeigen. Die Datenmenge, die in jedem Transaktionsebenenpaket enthalten ist, ist in einer Ausführungsform auf eine vorgegebene maximale Nutzlast begrenzt. Für Transaktionsebenenpakete, welche Daten enthalten, sollte der Wert in dem Längenfeld und die tatsächliche Datenmenge gleich sein. Wenn der Empfänger ermittelt, daß der Längenfeldwert und die tatsächliche Datenmenge nicht übereinstimmen, dann wird das Paket als fehlgebildetes Transaktionsebenenpaket behandelt. Fehlgebildete Transaktionsebenenpakete werden unten beschrieben.
  • 4 ist ein Diagramm eines Anforderungspaketkopfes, welcher ein 32-Bit-Adreßformat unterstützt, und 5 ist ein Diagramm eines Anforderungspaketkopfes, welcher ein 64-Bit-Adreßformat unterstützt. In einer Ausführungsform verwenden Speicherleseanforderungen und Speicherschreibanforderungen entweder das 32-Bit-Adreßformat oder das 64-Bit-Adreßformat. Für Adressen unterhalb 4 GB wird das 32-Bit-Format verwendet.
  • Die Anforderungspaketköpfe der 4 und 5 enthalten auch ein Byte-Freigabefeld für das erste Doppelwort (Erstes DW BF) und ein Byte-Freigabefeld für das letzte Doppelwort (Letztes DW BF). Das erste Doppelwort-Byte-Freigabefeld enthält Byte-Freigaben für das erste Doppelwort jeder Speicherlese- oder -schreibanforderung. Dieses Feld enthält auch Byte-Freigaben für das einzige Doppelwort einer Eingabe/Ausgabe- oder Konfigurationsanforderung. Das Byte-Freigabefeld für das letzte Doppelwort enthält Byte-Freigaben für das letzte Doppelwort jeder Speicherlese- oder -schreibanforderung. Die Byte-Freigabe-Felder werden bei Mitteilungen nicht verwendet, weil diese Felder mit dem Mitteilungscodefeld für einen Mitteilungsanforderungskopf überlappen (siehe 7, unten erörtert).
  • In einer Ausführungsform zeigt für jedes Bit in den Byte-Freigabefeldern ein Wert von „0" an, daß das entsprechende Daten-Byte nicht geschrieben ist, oder, falls nicht vorauslesbar, an einer Beendigungseinheit ausgelesen ist. Der Begriff „Beendigungseinheit", wie er hier verwendet wird, soll für eine logische Einheit stehen, die von einem Anforderungspaketkopf adressiert wird. Ein Wert von „1" zeigt an, daß das entsprechende Daten-Byte geschrieben ist, oder, falls nicht vorauslesbar, an der Beendigungseinheit ausgelesen ist. Für das Byte-Freigabefeld für das erste Doppelwort entspricht das Bit 0 dem Byte 0 des ersten Daten-Doppelwortes. Das Bit 1 entspricht dem Byte 1 des ersten Daten-Doppelwortes. Das Bit 2 entspricht dem Byte 2 des ersten Daten-Doppelwortes. Das Bit 3 entspricht dem Byte 3 des ersten Daten-Doppelwortes. Für das Byte-Freigabefeld für das letzte Doppelwort entspricht das Bit 0 dem Byte 0 des letzten Daten-Doppelwortes. Das Bit 1 entspricht dem Byte 1 des letzten Daten-Doppelwortes. Das Bit 2 entspricht dem Byte 2 des letzten Daten-Doppelwortes. Das Bit 3 entspricht dem Byte 3 des letzten Daten-Doppelwortes. Die beispielhaften Paketköpfe der 4, 5, 6 und 8 enthalten ein Anforderungseinheits-Kennungsfeld, ein Markierungsfeld, ein Attributfeld und ein Kennungsfeld für virtuelle Kanäle. Das Anforderungseinheits-Kennungsfeld und das Markierungsfeld bilden zusammen ein Transaktionskennungsfeld. Das Anforderungseinheits-Kennungsfeld ist in ein Busnummernfeld, ein Einheitsnummernfeld und ein Funktionsnummernfeld unterteilt.
  • Das Markierungsfeld ist ein 5-Bit-Feld, welches von jeder anfordernden Einheit erzeugt wird. Der Markierungswert ist für alle unerledigten Anforderungen, die eine Beendigung für diese anfordernde Einheit erfordern, einmalig. Das Transaktionskennungsfeld ist in allen Anforderungen und Beendigungen enthalten. Bei dem Anforderungseinheits-Kennungsfeld handelt es sich in diesen Ausführungsbeispielen um einen 16-Bit-Wert, der für jede Funktion (eine Funktion ist ein unabhängiger Teil einer Multifunktionseinheit, welcher im Konfigurationsraum durch eine einmalige Funktionsnummer gekennzeichnet ist) einmalig ist. Funktionen erfassen die Busnummer, die mit allen Konfigurationsschreiboperationen, die von der Funktion beendet werden, mitgeliefert wird, und legen diese Nummer im Busnummernabschnitt des Anforderungseinheits-Kennungsfeldes ab. Jede logische Einheit in einer Komponente ist so konstruiert, daß sie auf eine einmalige Einheitsnummer für Konfigurationsanforderungen, welche diese Komponente adressieren, reagiert. In diesen Ausführungsbeispielen kann eine Komponente viele (möglicherweise bis zu mehrere Dutzend) logische Einheiten enthalten. Jede Funktion, die mit einer logischen Einheit in einer Komponente verbunden ist, ist so konstruiert, daß sie auf eine einmalige Funktionsnummer für Konfigurationsanforderungen, welche diese Komponente und diese logische Einheit adressieren, reagiert. Jede logische Einheit kann bis zu acht logische Funktionen enthalten.
  • Das Attributfeld spezifiziert Eigenschaften der Transaktion. Attribute, die in dem Attributfeld spezifiziert sein können, sind z.B. ein Prioritätsattribut, Transaktionsordnungsattribute und Cachespeicher-Kohärenzmanagement-Attribute.
  • Das Kennungsfeld für virtuelle Kanäle identifiziert den virtuellen Kanal. In diesen Ausführungsbeispielen handelt es sich bei dem Kennungsfeld für virtuelle Kanäle um ein 4-Bit-Feld, welches die Identifizierung von bis zu 16 virtuellen Kanälen auf einer Je-Transaktions-Basis ermöglicht. In diesen Ausführungsbeispielen wird für allgemeinen Verkehr der virtuelle Kanal 0 verwendet und für isochronen Verkehr ein anderer Kanal als 0 verwendet.
  • 6 ist ein Diagramm eines Paketkopfes für eine Mitteilung. Wie in Tabelle 2 zu sehen ist, können Mitteilungen Daten enthalten oder nicht und können eine Beendigung erfordern oder nicht. Mitteilungen werden von allen Einheiten in einem System decodiert, welche die verbesserte allgemeine Eingabe/Ausgabe-Verbindungsarchitektur unterstützen.
  • Für Mitteilungsanforderungen wird das Mitteilungsfeld decodiert, um den speziellen Zyklus zu ermitteln und um zu ermitteln, ob die Mitteilung eine Beendigung erfordert. In dieser Ausführungsform handelt es sich bei dem Mitteilungsfeld um ein 8-Bit-Feld, welches sich dort befindet, wo sich für andere Transaktionstypen normalerweise die Byte-Freigabefelder befinden. Nicht unterstützte Mitteilungen werden von der empfangenden Einheit als solche behandelt, die keine Beendigung erfordern (keine Beendigung erfordernde Transaktionen werden unten beschrieben).
  • In diesem Ausführungsbeispiel werden die Mitteilungen in Gruppen unterteilt. Es gibt acht Gruppen, bei welchen in der Anforderung Daten enthalten sind, und acht Gruppen, welche dies nicht tun. In anderen Ausführungsformen werden möglicherweise andere Anzahlen an Gruppen verwendet. In dieser Ausführungsform weisen, wie in Tabelle dargestellt, die acht Gruppen, bei welchen in den Anforderungen Daten enthalten sind, einen Wert von b010 im Fmt-Feld auf. Das Unterfeld s[2:0] beinhaltet ein Bit aus dem Typenfeld und die beiden Bits aus dem Et/El-Feld. Das Unterfeld s[2:0] zeigt eine von acht Gruppen an.
  • Beispiele für verschiedene Mitteilungen, die verwirklicht werden können, sind, aber nicht darauf beschränkt, die folgenden: Mitteilungen zum Entsperren von Einheiten; Mitteilungen zum Zurückstellen von Einheiten; Mitteilungen, die eine korrigierbare Fehlerbedingung anzeigen; Mitteilungen, die eine nicht korrigierbare Fehlerbedingung anzeigen; Mitteilungen, die eine schwere Fehlerbedingung anzeigen; Mitteilungen, die verwendet werden, um fehlerhafte Anforderungspakete zu melden; Mitteilungen, die sich auf das Strommanagement beziehen; Mitteilungen, die sich auf Ordnungssteuerung/-mangement beziehen; und Mitteilungen zum Emulieren von bestehenden (z.B. PCI)-Unterbrechungssignalen (oder anderen bestehenden Signalen). Diese verschiedenen Mitteilungstypen können in eine der zuvor beschriebenen Gruppen eingeteilt werden. Zum Beispiel können alle Strommanagement-Mitteilungen in einer Gruppe enthalten sein, und die Unterbrechungssignal-Mitteilungen können in einer anderen Gruppe enthalten sein.
  • 7 ist ein Diagramm, welches ein Anforderungskopfformat für eine Konfigurationstransaktion darstellt. Der Konfigurationsraum ist einer der vier unterstützten Adreßräume für diese Ausführungsbeispiele.
  • 8 ist ein Diagramm, welches eine Ausführungsform eines Formates für einen Beendigungskopf darstellt. Alle Leseanforderungen und einige Schreibanforderungen erfordern eine Beendigung. Beendigungen enthalten einen Beendigungskopf, welcher für einige Typen von Beendigungen von einer gewissen Anzahl an Daten-Doppelwörtern gefolgt wird. Das Beendigungsstatus[2:0]-Feld, welches in 8 dargestellt ist, zeigt den Status für eine Beendigung an. Tabelle 3 zeigt ein beispielhaftes Codierungsschema.
  • Figure 00130001
    Tabelle 3 – Codierungsschema für das Beendigungsstatusfeld
  • Das Beendigungseinheitskennungs[15:0]-Feld enthält denselben Typ von Informationen wie das oben beschriebene Anforderungseinheits-Kennungsfeld. Der in dem Beendigungseinheits-Kennungsfeld bereitgestellte Wert entspricht Bus/Einheit/Funktion des Agenten, welcher die Anforderung beendet. Die Beendigungsköpfe enthalten dieselben Werte für die Anforderungseinheitskennung, die Markierung und die Kanalkennung, wie sie im Kopf des Anforderungspaketes mitgeliefert wurden. Die Beendigungsköpfe enthalten auch im Attributfeld denselben Wert, wie er ursprünglich mit dem Kopf der Anforderung mitgeliefert wurde. Die Beendigungspakete werden über Schalter und Grundkomplexe zu dem Anschluß geleitet, welcher die entsprechende Anforderungstransaktion begonnen hat.
  • Für Speicherleseanforderungs-Transaktionen können einzelne Beendigungspakete weniger als die volle Datenmenge bereitstellen, die von der entsprechenden Leseanforderung angefordert wurde, solange alle der Beendigungspakete, welche mit der entsprechenden Leseanforderung verbunden sind, in Kombination die spezifizierte Datenmenge zurücksenden. In diesen Ausführungsbeispielen werden E/A- und Konfigurationsleseanforderungen mit genau einem Beendigungspaket beendet.
  • Eine Beendigung, die Daten enthält, spezifiziert die Datenmenge im Paketkopf. Wenn das Beendigungspaket in Wirklichkeit eine Datenmenge enthält, die sich von der spezifizierten Menge unterscheidet, dann führt dies zu einem fehlgebildeten Transaktionsebenenpaket.
  • 9a und 9b bilden in Kombination ein Flußdiagramm eines Ausführungsbeispiels für ein Verfahren zur Behandlung empfangener Transaktionsebenenpakete. Die unten beschriebenen Operationen müssen nicht notwendigerweise der Reihe nach geschehen. In einigen Ausführungsformen können einige Operationen gleichzeitig durchgeführt werden. In Block 905 wird eine Überprüfung durchgeführt, um zu ermitteln, ob die in den Fmt- und Längenfeldern des empfangenen Paketes enthaltenen Werte mit der tatsächlichen Größe des Paketes übereinstimmen. Eine Abweichung zeigt ein fehlgebildetes Paket an, und es resultiert ein Fehlerfall, wie in Block 925 dargestellt. Die Fehlerfallbehandlung wird unten beschrieben. Wenn die tatsächliche Größe des empfangenen Paketes keine Abweichung von den Fmt- und Längenfeldern anzeigt, dann wird die Verarbeitung in Block 910 fortgeführt.
  • Wenn es sich bei dem empfangenen Paket um eine Speicheranforderung unter Verwendung der 64-Bit-Adressierung handelt, dann werden die Adreß-Bits [63:32] in Block 910 überprüft, um zu sehen, ob irgendeines der Adreß-Bits [63:32] ungleich Null ist. Wenn keines der Adreß-Bits [63:32] ungleich Null ist, dann ist das Ergebnis ein fehlgebildetes Paket, und die Verarbeitung schreitet zu dem Fehlerfallblock 925 fort. Wenn mindestens eines der Adreß-Bits [63:32] ungleich Null ist, dann wird die Verarbeitung in Block 915 fortgeführt.
  • In Block 915 wird eine Überprüfung durchgeführt, um zu ermitteln, ob irgendwelche Felder in dem Paketkopf reservierte Werte enthalten. Wenn reservierte Werte gefunden werden, dann ist das Ergebnis ein fehlgebildetes Paket, und die Verarbeitung schreitet zu Block 925 fort. Wenn keine reservierten Werte gefunden werden, dann wird die Verarbeitung in Block 930 fortgeführt.
  • In Block 930 wird ermittelt, ob das Paket ein Anforderungspaket oder ein Beendigungspaket ist. Wem das Paket ein Beendigungspaket ist, dann schreitet die Verarbeitung zum Beendigungsbehandlungsblock 935 fort. Die Beendigungsbehandlung wird unten ausführlicher beschrieben. Wenn das empfangene Paket kein Beendigungspaket ist, dann wird die Verarbeitung in Block 940 fortgeführt. Man beachte, daß alle Pakete, die zu Block 940 laufen, Anforderungspakete sind.
  • In Block 940 wird eine Überprüfung durchgeführt, um zu ermitteln, ob es sich bei dem Anforderungspaket um einen Anforderungstyp handelt, welcher von der beendigenden Einheit unterstützt wird. Wenn der Anforderungstyp nicht unterstützt wird, dann ist das Ergebnis eine nicht unterstützte Anforderung, und die Verarbeitung schreitet zum Fehlerfallblock 925 fort. Wenn der nicht unterstützte Anforderungstyp eine Rundschreibmitteilung ist oder eine Mitteilung, welche eine Codierung verwendet, die für Rundschreibmitteilungen reserviert ist, dann wird in diesem Ausführungsbeispiel das Paket still verworfen, und kein Fehlerfall resultiert. Wenn der Anforderungstyp von der beendigenden Einheit unterstützt wird, dann wird die Verarbeitung in Block 945 fortgeführt.
  • Wenn, wie in Block 945 dargestellt, die Beendigungseinheit aufgrund eines internen Fehlers nicht auf das Anforderungspaket reagieren kann, dann ist das Ergebnis ein „Abbruch der Beendigungseinheit", und die Verarbeitung schreitet zum Fehlerfallblock 925 fort. Anderenfalls wird die Anforderung in Block 950 bedient. Bei der Bedienung der Anforderung kann es notwendig sein, die Verarbeitung, die in den Blöcken 940 und 945 angezeigt ist, zu wiederholen.
  • Wenn die Anforderung einmal erfolgreich bedient ist, dann wird die Verarbeitung in Block 955 fortgesetzt. Wie in Block 955 angezeigt, wird dann in Block 960 ein Beendigungspaket zurückgesendet, wenn die verarbeitete Anforderung eine Beendigung erfordert.
  • 10 ist ein Flußdiagramm einer Ausführungsform eines Verfahrens zur Behandlung von Fehlerbedingungen, die mit empfangenen Anforderungspaketen verbunden sind. Wie in Block 1010 zu sehen, wird dann, wenn für die empfangene Anforderung eine Beendigung erwartet wird, in Block 1020 eine Beendigung mit dem geeigneten Beendigungsstatus gesendet. Die Beendigung wird zu der anfordernden Einheit zurückgeleitet. Wenn für die empfangene Anforderung keine Beendigung erwartet wird, dann wird in Block 1030 eine Fehlermitteilung an die anfordernde Einheit gesendet. In Block 1040 wird der Fehler dem System gemeldet. Die Operation des Sendens der Fehlermitteilung, welche in Block 1030 dargestellt ist, kann als programmierbare Option verwirklicht werden.
  • Einige Systeme können zusätzlich zu der zuvor beschriebenen verbesserten allgemeinen Eingabe/Ausgabe-Verbindungsarchitektur einen oder mehrere PCI-Busse enthalten. Für Speicher-, E/A- und Konfigurationsanforderungen, welche durch die verbessere allgemeine Eingabe/Ausgabe-Verbindungsarchitektur wandern und für eine Einheit auf einem PCI-Bus bestimmt sind, stellt in diesen Ausführungsformen der Beendigungsstatus den gegenwärtigen PCI-Abbruch für den Zyklus dar. Zum Beispiel muß ein nicht gesendeter PCI-Zyklus gegenwärtig auf dem PCI-Bus bedient werden, bevor ein Beendigungsstatus ermittelt werden kann. Für alle anderen Fälle sind die Werte des Beendigungsstatus wie unten beschrieben definiert.
  • Wenn eine Anforderung von der Beendigungseinheit erfolgreich beendet worden ist, lautet der resultierende Wert des Beendigungsstatus „Erfolgreiche Beendigung" (in dieser Ausführungsform im Beendigungsstatusfeld als „000" codiert, wie in Tabelle 3 dargestellt). Zum Beispiel wird eine Leseanforderung von einer Host Bridge über einen Schalter zu einem Endpunkt einer Beendigungseinheit geleitet. Die Beendigungseinheit reagiert antwortet mit einem Beendigungspaket, welches den Status einer erfolgreichen Beendigung anzeigt, und antwortet auch mit den Daten für die Leseanforderung. Der Schalter leitet dieses Beendigungspaket zurück zu der Host Bridge.
  • Wenn eine Anforderung von der beendigenden Einheit empfangen und decodiert wird, die beendigende Einheit die angeforderte Transaktion aber nicht unterstützt und die Anforderung eine Beendigung erfordert, dann lautet der resultierende Beendigungsstatus „Nicht unterstützte Anforderung" (in dieser Ausführungsform im Beendigungsstatusfeld als „001" codiert, wie in Tabelle 3 dargestellt). Ein Beispiel für eine nicht unterstützte Anforderung wäre eine Speicherleseanforderung an eine unerreichbare Adresse. In diesem Fall kann die Beendigungseinheit die Anforderung nicht unterstützen, und die Anforderungseinheit erwartet eine Beendigung.
  • Für den Fall, daß eine Anforderung von der beendigenden Einheit empfangen und decodiert wird und die beendigende Einheit die angeforderte Transaktion nicht unterstützen kann und die anfordernde Einheit keine Beendigung erwartet, ist der resultierende Beendigungsstatus eine nicht unterstützte Anforderung. Da die anfordernde Einheit keine Beendigung erwartet, wird der Beendigungsstatus über eine Mitteilung an die anfordernde Einheit übermittelt, wie oben in Verbindung mit 10 beschrieben. Ein Beispiel für eine nicht unterstützte Anforderung, bei welcher die anfordernde Einheit keine Beendigung erwartet, ist eine Speicherschreibtransaktion an eine unerreichbare Adresse. Die Übermittlung des Beendigungsstatus über eine Mitteilung kann als optionales Merkmal verwirklicht werden.
  • Wenn eine beendigende Einheit eine Anforderung empfängt und decodiert, die beendigende Einheit aber aufgrund eines internen Fehlers nicht antworten kann, lautet der resultierende Beendigungsstatus „Abbruch der Beendigungseinheit" (in dieser Ausführungsform im Beendigungsstatusfeld als „100" codiert).
  • Wenn eine beendigende Einheit ein Paket empfängt, das Paketbildungsregeln verletzt, ist das Ergebnis ein „Fehlgebildetes Paket". Die beendigende Einheit antwortet auf diese Situation, indem sie eine Fehlermitteilung „Fehlgebildetes Paket" übermittelt, welche zu der anfordernden Einheit geleitet wird. Ein Schalter, welcher ein fehlgebildetes Paket empfängt, muß in dieser Ausführungsform das Paket zu dem stromaufwärts gelegenen Anschluß leiten, wenn kein anderer Anschluß positiv als der vorgesehene Zielanschluß identifiziert werden kann.
  • Wenn eine Lesebeendigung einen anderen Beendigungsstatus als „Erfolgreiche Beendigung" aufweist, werden mit dem Beendigungspaket keine Daten zurückgesendet. Die Lesebeendigung mit dem nicht erfolgreichen Beendigungsstatus ist die letzte Beendigung, die für die Anforderung übermittelt wird. Zum Beispiel kann eine Beendigungseinheit eine Leseanforderung zur Bedienung in vier Teile aufteilen, und das zweite Beendigungspaket führt zu dem Beendigungsstatus „Abbruch der Beendigungseinheit". Die letzten beiden Beendigungspakete werden nicht übermittelt. Die anfordernde Einheit betrachtet die Anforderung als beendet, wenn sie das Beendigungspaket mit dem nicht erfolgreichen Beendigungsstatus empfängt, und sollte keine weiteren Beendigungspakete erwarten, die dieser Leseanforderung entsprechen.
  • 11 ist ein Flußdiagramm einer Ausführungsform eines Verfahrens zur Behandlung eines Beendigungspaketes, welches von einem Systemagenten nicht erwartet wird. Eine „unerwartete Beendigung" tritt auf, wenn ein Agent eine Beendigung empfängt, welche nicht irgendwelchen unerledigten Anforderungen entspricht, die von demselben Agenten ausgegeben wurden. In dem beispielhaften Verfahren der 11 zeigt Block 1110 an, daß dann, wenn keine unerwartete Beendigung vorliegt, die normale Operation in Block 1120 fortgesetzt wird. Wenn jedoch eine unerwartete Beendigung empfangen wird, wird das unerwartete Beendigungspaket in Block 1130 verworfen. Nachdem das Paket verworfen ist, kann in Block 1140 die obige Fehlerbedingung an das System gemeldet werden. In diesem Ausführungsbeispiel kann die Meldung des Fehlers eine Option sein, die durch Software programmierbar ist.
  • 12 ist ein Flußdiagramm einer Ausführungsform eines Verfahrens für eine anfordernde Einheit, welche ein Beendigungspaket mit einem anderen Beendigungsstatus als „Erfolgreiche Beendigung" behandelt. Block 1210 zeigt an, daß dann, wenn der Beendigungsstatus „Erfolgreiche Beendigung" ist, die normale Operation in Block 1220 fortgesetzt wird. Wenn der Beendigungsstatus ein anderer als „Erfolgreiche Beendigung" ist, dann wird in Block 1230 der Wert des Beendigungseinheits-Kennungsfeldes aufgenommen. In dieser Ausführungsform wird der Wert der Beendigungseinheitskennung in einem Register gespeichert. Dann wird in dieser Ausführungsform in Block 1240 ein Bit „Empfangene Nicht Erfolgreiche Beendigung" in einem Register in der anfordernden Einheit eingestellt. In Block 1250 kann die obige Fehlerbedingung gemeldet werden. Die Meldung der Fehlerbedingung kann als programmierbare Option verwirklicht werden. Ein Softwareagent kann den Beendigungseinheits-Kennungswert und das Bit „Empfangene Nicht Erfolgreiche Beendigung" verwenden, um die Quelle für die Fehlerbedingung zurückzuverfolgen.
  • 13 ist ein Flußdiagramm einer Ausführungsform eines Verfahrens für eine beendigende Einheit, welche ein Beendigungspaket mit einem anderen Beendigungsstatus als „Erfolgreiche Beendigung" behandelt. Block 1310 zeigt an, daß dann, wenn der Beendigungsstatus eines übermittelten Beendigungspaketes „Erfolgreiche Beendigung" ist, die normale Operation in Block 1320 fortgesetzt wird. Wenn der Beendigungsstatus ein anderer als „Erfolgreiche Beendigung" ist, dann wird in Block 1330 der Wert der Anforderungseinheitskennungs- und der Markierungsfelder aufgenommen. In dieser Ausführungsform werden die Werte der Anforderungseinheitskennung und der Markierung in einem oder mehreren Registern gespeichert. Dann wird in dieser Ausführungsform in Block 1340 ein Bit „Übermittelte Nicht Erfolgreiche Beendigung" in einem Register in der beendigenden Einheit eingestellt. In Block 1350 kann die obige Fehlerbedingung gemeldet werden. Die Meldung der Fehlerbedingung kann als programmierbare Option verwirklicht werden. Ein Softwareagent kann die Anforderungseinheitskennungs- und Markierungswerte und das Bit „Übermittelte Nicht Erfolgreiche Beendigung" verwenden, um die Quelle für die Fehlerbedingung zurückzuverfolgen.
  • In der vorstehenden Beschreibung ist die Erfindung mit Bezug auf spezielle Ausführungsbeispiele beschrieben worden. Es wird jedoch ersichtlich sein, daß daran verschiedene Modifikationen und Veränderungen vorgenommen werden können, ohne den weiteren Umfang der Erfindung zu verlassen, wie er in den beigefügten Patentansprüchen ausgeführt ist. Die Beschreibung und die Zeichnungen sind dementsprechend als Veranschaulichung und nicht als Beschränkung anzusehen.
  • Bezugnahmen in der Beschreibung auf „eine Ausführungsform", „einige Ausführungsformen" oder „andere Ausführungsformen" bedeuten, daß ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft, die in Verbindung mit den Ausführungsformen beschrieben ist, in zumindest einigen Ausführungsformen enthalten ist, aber nicht notwendigerweise in allen Ausführungsformen der Erfindung. Das verschiedene Auftreten von „eine Ausführungsform" oder „einige Ausführungsformen" bezieht sich nicht notwendigerweise jedesmal auf dieselbe Ausführungsform.

Claims (18)

  1. Vorrichtung, welche umfaßt: eine Datenpfadausgabeeinheit zum Ausgeben eines Paketkopfes, dadurch gekennzeichnet, daß der Paketkopf ein erstes Feld zum Erweitern eines zweiten Feldes oder eines dritten Feldes in Abhängigkeit von dem Inhalt des zweiten Feldes umfaßt.
  2. Vorrichtung nach Anspruch 1, wobei das zweite Feld ein Typenfeld ist.
  3. Vorrichtung nach Anspruch 2, wobei das dritte Feld ein Längenfeld ist.
  4. Vorrichtung nach Anspruch 3, wobei das erste Feld verwendet wird, um das Längenfeld zu erweitern, wenn das Typenfeld eine Speicherleseanforderungstransaktion an zeigt.
  5. Vorrichtung nach Anspruch 4, wobei das erste Feld zwischen dem Typenfeld und dem Längenfeld und daran unmittelbar angrenzend in dem Paketkopf angeordnet ist.
  6. Vorrichtung nach Anspruch 5, wobei das Typenfeld in dem ersten Byte des Paketkopfes angeordnet ist, welcher von der Datenpfadausgabeeinheit auszugeben ist.
  7. Vorrichtung, welche umfaßt: eine Datenpfadeingabeeinheit zum Empfangen eines Paketkopfes, dadurch gekennzeichnet, daß der Paketkopf ein erstes Feld zum Erweitern eines zweiten Feldes oder eines dritten Feldes in Abhängigkeit von dem Inhalt des zweiten Feldes umfaßt.
  8. Vorrichtung nach Anspruch 7, wobei das zweite Feld ein Typenfeld ist.
  9. Vorrichtung nach Anspruch 8, wobei das dritte Feld ein Längenfeld ist.
  10. Vorrichtung nach Anspruch 9, wobei das erste Feld verwendet wird, um das Längenfeld zu erweitern, wenn das Typenfeld eine Speicherleseanforderungstransaktion anzeigt.
  11. Vorrichtung nach Anspruch 10, wobei das erste Feld zwischen dem Typenfeld und dem Längenfeld und daran unmittelbar angrenzend in dem Paketkopf angeordnet ist.
  12. Vorrichtung nach Anspruch 11, wobei das Typenfeld in dem ersten Byte des Paketkopfes angeordnet ist, welcher von der Datenpfadausgabeeinheit auszugeben ist.
  13. System, welches umfaßt: eine Übertragungsvorrichtung zum Übertragen eines Paketkopfes, wobei der Paketkopf ein erstes Feld zum Erweitern eines zweiten Feldes oder eines dritten Feldes in Abhängigkeit von dem Inhalt des zweiten Feldes umfaßt; und eine Empfangsvorrichtung, welche mit der Übertragungsvorrichtung gekoppelt ist, wobei die Empfangsvorrichtung den Paketkopf empfängt.
  14. System nach Anspruch 13, wobei das zweite Feld ein Typenfeld ist.
  15. System nach Anspruch 14, wobei das dritte Feld ein Längenfeld ist.
  16. System nach Anspruch 15, wobei das erste Feld verwendet wird, um das Längenfeld zu erweitern, wenn das Typenfeld eine Speicherleseanforderungstransaktion anzeigt.
  17. System nach Anspruch 16, wobei das erste Feld zwischen dem Typenfeld und dem Längenfeld und daran unmittelbar angrenzend in dem Paketkopf angeordnet ist.
  18. System nach Anspruch 17, wobei das Typenfeld in dem ersten Byte des Paketkopfes angeordnet ist, welcher von der Datenpfadausgabeeinheit auszugeben ist.
DE60212190T 2001-12-28 2002-12-05 Übermittlung von transaktionstypen zwischen agenten in einem computersystem durch verwendung von paketkopfteilen mit einem erweiterten typen-/längenerweiterungsfeld Expired - Lifetime DE60212190T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/041,028 US6944617B2 (en) 2001-12-28 2001-12-28 Communicating transaction types between agents in a computer system using packet headers including an extended type/extended length field
US41028 2001-12-28
PCT/US2002/039269 WO2003058469A1 (en) 2001-12-28 2002-12-05 Communicating transaction types between agents in a computer system using packet headers including an extended type/extended length field

Publications (2)

Publication Number Publication Date
DE60212190D1 DE60212190D1 (de) 2006-07-20
DE60212190T2 true DE60212190T2 (de) 2007-04-19

Family

ID=21914326

Family Applications (2)

Application Number Title Priority Date Filing Date
DE60212190T Expired - Lifetime DE60212190T2 (de) 2001-12-28 2002-12-05 Übermittlung von transaktionstypen zwischen agenten in einem computersystem durch verwendung von paketkopfteilen mit einem erweiterten typen-/längenerweiterungsfeld
DE60222191T Expired - Lifetime DE60222191T2 (de) 2001-12-28 2002-12-05 Übermittlung von Transaktionstypen zwischen Agenten eines Computersystems unter Verwendung von Paketköpfen mit erweitertem Typen-/erweitertem Längenfeld

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE60222191T Expired - Lifetime DE60222191T2 (de) 2001-12-28 2002-12-05 Übermittlung von Transaktionstypen zwischen Agenten eines Computersystems unter Verwendung von Paketköpfen mit erweitertem Typen-/erweitertem Längenfeld

Country Status (9)

Country Link
US (1) US6944617B2 (de)
EP (2) EP1684189B1 (de)
JP (1) JP4044523B2 (de)
CN (1) CN1608255B (de)
AT (2) ATE371900T1 (de)
AU (1) AU2002362100A1 (de)
DE (2) DE60212190T2 (de)
TW (1) TWI274497B (de)
WO (1) WO2003058469A1 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536495B2 (en) * 2001-09-28 2009-05-19 Dot Hill Systems Corporation Certified memory-to-memory data transfer between active-active raid controllers
US7146448B2 (en) * 2001-09-28 2006-12-05 Dot Hill Systems Corporation Apparatus and method for adopting an orphan I/O port in a redundant storage controller
US7403525B2 (en) * 2002-05-15 2008-07-22 Broadcom Corporation Efficient routing of packet data in a scalable processing resource
US7617333B2 (en) * 2003-01-21 2009-11-10 Nextio Inc. Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture
US7953074B2 (en) 2003-01-21 2011-05-31 Emulex Design And Manufacturing Corporation Apparatus and method for port polarity initialization in a shared I/O device
US8032659B2 (en) * 2003-01-21 2011-10-04 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US7103064B2 (en) 2003-01-21 2006-09-05 Nextio Inc. Method and apparatus for shared I/O in a load/store fabric
US7664909B2 (en) * 2003-04-18 2010-02-16 Nextio, Inc. Method and apparatus for a shared I/O serial ATA controller
US8102843B2 (en) * 2003-01-21 2012-01-24 Emulex Design And Manufacturing Corporation Switching apparatus and method for providing shared I/O within a load-store fabric
US7698483B2 (en) * 2003-01-21 2010-04-13 Nextio, Inc. Switching apparatus and method for link initialization in a shared I/O environment
US8346884B2 (en) 2003-01-21 2013-01-01 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US7046668B2 (en) * 2003-01-21 2006-05-16 Pettey Christopher J Method and apparatus for shared I/O in a load/store fabric
US7917658B2 (en) 2003-01-21 2011-03-29 Emulex Design And Manufacturing Corporation Switching apparatus and method for link initialization in a shared I/O environment
US7836211B2 (en) 2003-01-21 2010-11-16 Emulex Design And Manufacturing Corporation Shared input/output load-store architecture
JP4564740B2 (ja) * 2003-11-12 2010-10-20 株式会社リコー 画像機器システム
US7411591B2 (en) * 2003-12-24 2008-08-12 Intel Corporation Graphics memory switch
US7606933B2 (en) * 2004-02-11 2009-10-20 Cray Canada Corporation Shared memory and high performance communication using interconnect tunneling
US7543096B2 (en) 2005-01-20 2009-06-02 Dot Hill Systems Corporation Safe message transfers on PCI-Express link from RAID controller to receiver-programmable window of partner RAID controller CPU memory
US7487274B2 (en) * 2005-08-01 2009-02-03 Asic Architect, Inc. Method and apparatus for generating unique identification numbers for PCI express transactions with substantially increased performance
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US7681089B2 (en) * 2007-02-20 2010-03-16 Dot Hill Systems Corporation Redundant storage controller system with enhanced failure analysis capability
US20090310489A1 (en) * 2008-06-17 2009-12-17 Bennett Andrew M Methods and apparatus using a serial data interface to transmit/receive data corresponding to each of a plurality of logical data streams
US8055805B2 (en) 2009-03-31 2011-11-08 Intel Corporation Opportunistic improvement of MMIO request handling based on target reporting of space requirements
US8839057B2 (en) * 2011-02-03 2014-09-16 Arm Limited Integrated circuit and method for testing memory on the integrated circuit
JP6035704B2 (ja) * 2011-03-18 2016-11-30 セイコーエプソン株式会社 周辺装置、管理装置及び機種情報送信方法
US9575922B2 (en) * 2013-09-27 2017-02-21 Intel Corporation Apparatus, system, and method for improving equalization with a software equalization algorithm
CN110858834B (zh) * 2018-08-23 2022-02-08 中国电信股份有限公司 用户信息传输方法、装置、系统和计算机可读存储介质
WO2021147050A1 (zh) * 2020-01-22 2021-07-29 华为技术有限公司 一种基于PCIe的数据传输方法及装置
CN115334169B (zh) * 2022-04-28 2023-06-06 深圳证券通信有限公司 一种节省网络带宽的通信协议编码方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3332601A1 (de) 1983-09-09 1985-03-28 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung zum registrieren von adressen von einen fehlerhaften speicherinhalt aufweisenden speicherzellen
JPH0746322B2 (ja) 1988-05-23 1995-05-17 日本電気株式会社 障害装置特定システム
JPH06500655A (ja) 1990-10-03 1994-01-20 スィンキング マシンズ コーポレーション 並列コンピュータ・システム
CA2065578C (en) 1991-04-22 1999-02-23 David W. Carr Packet-based data compression method
JP2700843B2 (ja) 1991-12-10 1998-01-21 三菱電機株式会社 多重通信制御装置
JP3625302B2 (ja) 1994-07-19 2005-03-02 株式会社東芝 ネットワークシステムのデータ送達装置および方法
US5678007A (en) 1994-11-22 1997-10-14 Microsoft Corporation Method and apparatus for supporting multiple outstanding network requests on a single connection
JPH11510004A (ja) 1995-07-19 1999-08-31 フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド サブキューを使用するポイントツーマルチポイント伝送
CA2243359A1 (en) * 1996-01-31 1997-08-07 Ipsilon Networks, Inc. Improved method and apparatus for dynamically shifting between routing and switching packets in a transmission network
US5968197A (en) 1996-04-01 1999-10-19 Ericsson Inc. Method and apparatus for data recovery
US5917830A (en) * 1996-10-18 1999-06-29 General Instrument Corporation Splicing compressed packetized digital video streams
JPH10341247A (ja) 1997-06-10 1998-12-22 Sony Corp データ送信装置、データ受信装置、データ伝送システム及びデータ伝送方法
US6084869A (en) 1997-10-06 2000-07-04 Hughes Electronics Corporation Resource reservation for packet-switched multiple-path communication system
US6055236A (en) * 1998-03-05 2000-04-25 3Com Corporation Method and system for locating network services with distributed network address translation
US6154839A (en) * 1998-04-23 2000-11-28 Vpnet Technologies, Inc. Translating packet addresses based upon a user identifier
JP2000003330A (ja) 1998-06-16 2000-01-07 Sony Corp 情報処理装置および方法、並びに提供媒体
US6515967B1 (en) 1998-06-30 2003-02-04 Cisco Technology, Inc. Method and apparatus for detecting a fault in a multicast routing infrastructure
US6359877B1 (en) 1998-07-21 2002-03-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for minimizing overhead in a communication system
US6389016B1 (en) 1998-10-14 2002-05-14 Nortel Networks Limited Data communication system and method for transporting data
US6424625B1 (en) 1998-10-28 2002-07-23 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for discarding packets in a data network having automatic repeat request
JP2000209220A (ja) * 1999-01-14 2000-07-28 Toshiba Corp コンピュ―タ、ネットワ―ク制御装置、およびこれらを用いたシステム並びにリモ―ト起動方法
KR100429187B1 (ko) * 1999-05-11 2004-04-28 엘지전자 주식회사 비동기 전송방식 이동통신 패킷 네트웍 및 패킷 데이터 전송 방법
ATE389209T1 (de) * 1999-05-31 2008-03-15 Thomson Licensing Verfahren zur vorverarbeitung von datenpaketen in einer busschnittstelle
CN1136706C (zh) * 1999-09-01 2004-01-28 信息产业部武汉邮电科学研究院 一种用于英特网与准同步数字体系融合的适配方法
US6519731B1 (en) 1999-10-22 2003-02-11 Ericsson Inc. Assuring sequence number availability in an adaptive hybrid-ARQ coding system
US7333514B2 (en) 2001-08-09 2008-02-19 Telefonaktiebolaget Lm Ericsson (Publ) Flexible frame scheduler for simultaneous circuit-and packet-switched communication
US6691192B2 (en) * 2001-08-24 2004-02-10 Intel Corporation Enhanced general input/output architecture and related methods for establishing virtual channels therein
US6965571B2 (en) 2001-08-27 2005-11-15 Sun Microsystems, Inc. Precise error reporting

Also Published As

Publication number Publication date
TW200305323A (en) 2003-10-16
TWI274497B (en) 2007-02-21
JP4044523B2 (ja) 2008-02-06
EP1684189A2 (de) 2006-07-26
CN1608255B (zh) 2012-12-05
EP1459195A1 (de) 2004-09-22
EP1684189B1 (de) 2007-08-29
ATE371900T1 (de) 2007-09-15
CN1608255A (zh) 2005-04-20
EP1684189A3 (de) 2006-08-02
JP2005514838A (ja) 2005-05-19
US6944617B2 (en) 2005-09-13
DE60212190D1 (de) 2006-07-20
DE60222191D1 (de) 2007-10-11
EP1459195B1 (de) 2006-06-07
WO2003058469A1 (en) 2003-07-17
DE60222191T2 (de) 2008-01-03
ATE329315T1 (de) 2006-06-15
AU2002362100A1 (en) 2003-07-24
US20030126281A1 (en) 2003-07-03

Similar Documents

Publication Publication Date Title
DE60212190T2 (de) Übermittlung von transaktionstypen zwischen agenten in einem computersystem durch verwendung von paketkopfteilen mit einem erweiterten typen-/längenerweiterungsfeld
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
US7099318B2 (en) Communicating message request transaction types between agents in a computer system using multiple message groups
DE60213616T2 (de) Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung
DE102009021865B4 (de) Bereitstellung eines Präfixes für einen Datenkopf
DE102008035120B4 (de) Prozessorauswahl für einen Interrupt, die einen Prozessorcluster identifiziert
DE60033529T2 (de) Netzprozessor, speicherorganisation und verfahren
DE69935065T2 (de) Datenübertragungssteuerinrichtung und elektronisches gerät
DE69829840T2 (de) Medienzugriffskontroller und Medienunabhängige Schnittstelle(MII) zum Verbinden an eine physikalische Schicht Vorrichtung
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE112008002402T5 (de) Erzeugung von einer logischen APIC-ID mit Cluster ID und Intra-Cluster ID
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
DE60303119T2 (de) Echtzeitdatenströmung von antworten auf lesezugriffe in einer verbindung zwischen zwei datenknoten
DE102007029833A1 (de) Datenmodifikationsmodul
US7184399B2 (en) Method for handling completion packets with a non-successful completion status
DE2749884C2 (de)
DE60109051T2 (de) Verfahren und vorrichtung zur datenübertragung über eine ac-97 protokollverbindung
DE4100018C2 (de) Verfahren zur Bedienungsbedarfsmitteilung zwischen zwei Stationen eines Computerbusses
DE60206901T2 (de) Mehrere buffers zum entfernen von unerwünschter kopfdaten von erhaltenen datenpaketen
DE69931604T2 (de) Datenübertragungssteuereinrichtung und elektronisches gerät
US7191375B2 (en) Method and apparatus for signaling an error condition to an agent not expecting a completion
US20030126274A1 (en) Communicating transaction types between agents in a computer system using packet headers including format and type fields
DE102019210552B4 (de) Fahrzeugelektronikeinheit mit einer physikalischen Netzwerkschnittstelle und mehreren, virtuelle Netzwerkschnittstellen aufweisenden virtuellen Maschinen sowie Datenkommunikationsverfahren
DE60312539T2 (de) Einrichtung mit mitteln zum transferieren von informationen, die angeben, ob die einrichtung dma unterstützt oder nicht

Legal Events

Date Code Title Description
8364 No opposition during term of opposition