DE60222191T2 - Übermittlung von Transaktionstypen zwischen Agenten eines Computersystems unter Verwendung von Paketköpfen mit erweitertem Typen-/erweitertem Längenfeld - Google Patents

Übermittlung von Transaktionstypen zwischen Agenten eines Computersystems unter Verwendung von Paketköpfen mit erweitertem Typen-/erweitertem Längenfeld Download PDF

Info

Publication number
DE60222191T2
DE60222191T2 DE60222191T DE60222191T DE60222191T2 DE 60222191 T2 DE60222191 T2 DE 60222191T2 DE 60222191 T DE60222191 T DE 60222191T DE 60222191 T DE60222191 T DE 60222191T DE 60222191 T2 DE60222191 T2 DE 60222191T2
Authority
DE
Germany
Prior art keywords
field
point
type
packet
request
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
DE60222191T
Other languages
English (en)
Other versions
DE60222191D1 (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
Application granted granted Critical
Publication of DE60222191D1 publication Critical patent/DE60222191D1/de
Publication of DE60222191T2 publication Critical patent/DE60222191T2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft das Gebiet von Computersystemen. Genauer betrifft diese Erfindung das Gebiet der Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindungs- und – Kommunikationsarchitektur.
  • Allgemeiner Stand der Technik
  • Rechengeräte, z.B. Computersysteme, Server, Netzwerkvermittlungen und Router, drahtlose Kommunikationsvorrichtungen, und dergleichen bestehen typischerweise aus einer Anzahl von ungleichen Elementen. Derartige Elemente beinhalten häufig einen Prozessor, eine Systemsteuerungslogik, ein Speichersystem, Ein- und Ausgabeschnittstellen, und dergleichen. Zur Erleichterung der Kommunikation zwischen derartigen Elementen haben sich Rechengeräte lange Zeit auf Allzweck-Ein-/Ausgangsbusse verlassen, um diese ungleichen Elemente des Rechensystems zu befähigen, zur Unterstützung der unzähligen Anwendungen, die durch diese Geräte angeboten werden, miteinander zu kommunizieren.
  • Vielleicht eine der am verbreitetsten vorhandenen Allzweck-Busarchitekturen ist der Peripherkomponentenverbindungsbus (Peripheral Component Internonnect (PCI) bus). Der PCI-Bus-Standard (Peripheral Component Interconnect (PCI) Local Bus Specification, Rev. 2.2, veröffentlicht am 18. Dezember 1998) definiert eine Multi-Drop-, Parallelbusarchitektur zur Verbindung von Chips, Erweiterungskarten, und Prozessor/Speicher-Subsystemen auf eine vermittelte Weise in einem Rechengerät. Während typische PCI-Bus-Ausführungen einen Durchsatz von 133 Mbps (d.h., 32 Bit bei 33 MHz) aufweisen, gestattet der PCI-2.2-Standard 64 Bit pro Pin der parallelen Verbindung, die auf bis zu 133 MHz getaktet sind, was zu einem theoretischen Durchsatz von gerade über 1 Gbps führt.
  • Der Durchsatz, der durch die PCI-Busarchitektur bereitgestellt wird, hat bis vor kurzem eine ausreichende Bandbreite bereitgestellt, um den internen Kommunikationsbedürfnissen sogar der fortschrittlichsten Rechengeräte (z.B. Mehrfachprozessorserveranwendungen, Netzwerkgeräte, usw.) entgegenzukommen. Doch die jüngsten Fortschritte bei der Verarbeitungsleistung und die zunehmenden Eingangs-/Ausgangsbandbreitenanforderungen schaffen eine Situation, in der frühere Allzweck-Architekturen wie etwa die PCI-Busarchitektur zu Verarbeitungsengpässen in derartigen Rechengeräten geworden sind.
  • Eine andere Beschränkung, die mit früheren Architekturen verbunden ist, ist, daß sie typischerweise nicht gut geeignet sind, isochrone (zeitabhängige) Datenströme zu verarbeiten. Ein Beispiel eines isochronen Datenstroms ist ein Multimediadatenstrom, der einen Transportmechanismus benötigt, um sicherzustellen, daß die Daten so schnell verbraucht werden, wie sie empfangen werden, und um sicherzustellen, daß der Audioteil mit dem Videoteil synchronisiert ist. Herkömmliche Allzweck-Eingangs-/Ausgangsarchitekturen verarbeiten Daten asynchron, oder in willkürlichen Intervallen, wie es die Bandbreite gestattet. Diese asynchrone Verarbeitung von Multimediastromdaten kann zu verlorenen Daten und/oder fehlausgerichtetem Ton und Bild führen.
  • Die Erfindung ist wie in den beiliegenden Ansprüchen 1, 7 und 13 bekanntgemacht gestaltet.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird aus der nachstehend gegebenen ausführlichen Beschreibung und aus den beiliegenden Zeichnungen von Ausführungsformen der Erfindung, die jedoch nicht als Beschränkung der Erfindung auf die bestimmten beschriebenen Ausführungsformen aufgefaßt werden sollten, sondern nur zur Erklärung und zum Verständnis dienen, näher verstanden werden.
  • 1 ist ein Blockdiagramm einer Ausführungsform eines Computersystems.
  • 2 ist eine graphische Erläuterung eines beispielhaften verbesserten allgemeinen Eingangs/Ausgangsanschlusses.
  • 3 ist ein Diagramm, das das Format einer Ausführungsform des Beginns eines Transaktionsschichtpaketkopfs zeigt.
  • 4 ist ein Diagramm eines Anforderungspaketkopfs, der ein 32-Bit-Adressenformat unterstützt.
  • 5 ist ein Diagramm eines Anforderungspaketkopfs, der ein 64-Bit-Adressenformat unterstützt.
  • 6 ist ein Diagramm eines Paketkopfs für eine Nachricht.
  • 7 ist ein Diagramm, das ein Anforderungskopfformat für eine Konfigurationstransaktion zeigt.
  • 8 ist ein Diagramm, das eine Ausführungsform eines Formats für einen Beendigungskopf zeigt.
  • 9a und 9b bilden in Kombination ein Ablaufdiagramm einer beispielhaften Ausführungsform eines Verfahrens zur Behandlung empfangener Transaktionsschichtpakete.
  • 10 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zur Behandlung von Fehlerbedingungen, die mit empfangenen Anforderungspaketen verbunden sind.
  • 11 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zur Behandlung eines Beendigungspakets, das nicht von einem Systemagenten erwartet wird.
  • 12 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens für eine anfordernde Vorrichtung, die ein Beendigungspaket mit einem anderen Beendigungsstatus als „erfolgreiche Beendigung" behandelt.
  • 13 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens für eine beendigende Vorrichtung, die ein Beendigungspaket mit einem anderen Beendigungsstatus als „erfolgreiche Beendigung" behandelt.
  • Ausführliche Beschreibung
  • Nachstehend sind Ausführungsformen einer paketbasierten Punkt-zu-Punkt-Verbindungsarchitektur, eines Kommunikationsprotokolls, und im Zusammenhang stehender Verfahren zur Bereitstellung einer skalierbaren und erweiterbaren allgemeinen Eingangs /Ausgangskommunikationsplattform zum Einsatz innerhalb eines elektronischen Geräts beschrieben. Die offenbarten Ausführungsformen umfassen eine verbesserte allgemeine Eingangs-/Ausgangsverbindungsarchitektur und ein zugehöriges Kommunikationsprotokoll. Eine beispielhafte Ausführungsform beinhaltet eines oder mehrere aus einem Wurzelkomplex einschließlich einer Host-Brücke, einer Vermittlung, oder Endpunkten, die jeweils zumindest einen Untersatz von verbesserten allgemeinen Eingangs-/Ausgangsmerkmalen enthalten, um eine verbesserte allgemeine Eingangs-/Ausgangskommunikation zwischen diesen Elementen zu unterstützen.
  • Die Kommunikation zwischen den verbesserten allgemeinen Eingangs-/Ausgangseinrichtungen dieser Elemente wird in einer Ausführungsform unter Verwendung serieller Kommunikationskanäle durchgeführt, die ein Kommunikationsprotokoll einsetzen, das eines oder mehrere erfinderische Merkmale einschließlich, jedoch ohne Beschränkung darauf, virtueller Kommunikationskanäle, der anhangbasierten Fehlerübermittlung („Anhänge" werden an Transaktionsschichtpakete angehängt, um einen Fehlerzustand anzugeben), der Unterstützung für PCI-basierte Vorläufervorrichtung, Antwortarten auf mehrere Anforderungen, Ablaufsteuerungs- und/oder Datenintegritätsverwaltungseinrichtungen unterstützt. Das Kommunikationsprotokoll, das in dieser Ausführungsform unterstützt wird, beinhaltet einen Kommunikationsprotokollstapel, der eine physikalische Schicht, eine Datenverbindungsschicht, und eine Transaktionsschicht beinhaltet.
  • In einer alternativen Ausführungsform enthält ein Kommunkationsagent eine verbesserte allgemeine Eingangs-/Ausgangsmaschine, die einen Untersatz der vorhergehenden Merkmale enthält. Ferner können ein oder mehrere Elemente der verschiedenen Ausführungsformen in Hardware, Software, einem verbreiteten Signal, oder einer Kombination davon ausgeführt sein.
  • 1 ist ein Blockdiagramm eines elektronischen Geräts 100, das für diese Ausführungsform ein Computersystem ist. Das System 100 beinhaltet einen Prozessor 102, eine Host-Brücke 103, die als Teil eines Wurzelkomplexes 104 enthalten ist, eine Vermittlung 108 und einen Endpunkt 110, die jeweils wie gezeigt gekoppelt sind. Der Wurzelkomplex 104, die Vermittlung 108 und der Endpunkt 110 beinhalten eine oder mehrere Instanzen eines verbesserten allgemeinen Eingangs-/Ausgangsanschlusses 106. Wie gezeigt ist jedes der Elemente 102, 104, 108 und 110 durch eine Kommunikationsverbindung 112, die einen oder mehrere verbesserte allgemeine Eingangs-/Ausgangskommunikationskanäle unterstützt, über den verbesserten allgemeinen Eingangs-/Ausgangsanschluß 106 mit zumindest einem anderen Element gekoppelt. Das System 100 soll jedes beliebige aus einer breiten Vielfalt von traditionellen und nicht traditionellen Rechensystemen, Server, Netzwerkvermittlungen, Netzwerkroutern, drahtlosen Kommunikationsteilnehmereinheiten, drahtlosen Kommunikationsfernsprechinfrastrukturelementen, Minicomputer, Set-Top-Boxen, oder jedes beliebigen elektrischen Geräts, das aus den Kommunikationsbetriebsmitteln, eingebracht durch die Integration zumindest eines Untersatzes der verbesserten allgemeinen Eingangs-/Ausgangsverbindungsarchitektur und/oder des Kommunikationsprotokolls, die hierin beschrieben sind, einen Nutzen ziehen würde, darstellen.
  • In dieser beispielhaften Ausführungsform steuert der Prozessor 102 einen oder mehrere Gesichtspunkte der funktionellen Fähigkeit des elektronischen Geräts 100. In dieser Hinsicht ist der Prozessor 102 für eine breite Vielfalt von Steuerlogikvorrichtungen einschließlich, jedoch ohne Beschränkung darauf, einem oder mehreren aus einem Mikroprozessor, einer programmierbaren Logikvorrichtung (PLD), einer programmierbaren Logikanordnung (PLA), einer anwendungsspezifischen integrierten Schaltung (ASIC), einer Mikrosteuerung, und dergleichen repräsentativ.
  • Der Wurzelkomplex 104 stellt eine Kommunikationsschnittstelle zwischen dem Prozessor 102 und der Vermittlung 108 und dem Endpunkt 110 bereit. Wie hierin verwendet bezieht sich der Ausdruck „Wurzelkomplex" auf eine logische Einheit einer verbesserten allgemeinen Eingangs/Ausgangshierarchie, die einer Hoststeuerung, einem Speichersteuerungsknoten, einem E/A-Steuerungsknoten, oder jeder beliebigen Kombination der obigen, oder irgendeiner Kombination von Chipsatz/ZVE-Elementen (d.h., in einer Rechensystemumgebung) am nächsten ist. Obwohl er in 1 als einzelne Einheit dargestellt ist, kann der Wurzelkomplex 104 mit mehreren physischen Komponenten ausgeführt werden. Der Wurzelkomplex 104 ist mit einer oder mehreren verbesserten allgemeinen Eingangs-/Ausgangsanschlüssen 106 bestückt, um die Kommunikation mit anderen Peripheriegeräten, z.B. der Vermittlung 108, dem Endpunkt 110, und, obwohl nicht speziell dargestellt, den Vorläuferbrücken 114, oder 116 zu erleichtern. In einer Ausführungsform stellt jeder verbesserte allgemeine Eingangs/Ausgangsschnittstellenanschluß eine andere Hierarchiedomäne dar. In dieser Hinsicht bezeichnet die Ausführungsform von 1 einen Wurzelkomplex 104 mit drei Hierarchiedomänen.
  • 2 ist eine graphische Darstellung eines beispielhaften allgemeinen Eingangs/Ausgangsanschlusses 106. In dieser Ausführungsform führt der verbesserte allgemeine Eingangs-/Ausgangsanschluß 106 einen Kommunikationsstapel aus, der eine Transaktionsschicht 202, eine Datenverbindungsschicht 204 und eine physikalische Schicht 206, die wie gezeigt einen logischen Unterblock 208 und einen physikalischen Unterblock 210 beinhaltet, umfasst. Elemente der Transaktionsschicht werden nachstehend ausführlicher besprochen werden.
  • Die Transaktionsschicht 202 stellt eine Schnittstelle zwischen der verbesserten allgemeinen Eingangs-/Ausgangsarchitektur und einem Vorrichtungskern bereit. Eine Hauptverantwortlichkeit der Transaktionsschicht 202 ist der Aufbau und der Abbau von Paketen für eine oder mehrere logische Vorrichtungen in einem Agenten.
  • Eines der Hauptziele der verbesserten allgemeinen Eingangs-/Ausgangsarchitektur ist, die Leistungsfähigkeit der Kommunikation zwischen Vorrichtungen zu maximieren. In einer Ausführungsform führt die Transaktionsschicht ein geleitetes vollständig getrenntes Transaktionsprotokoll wie auch Mechanismen für das Unterscheiden der Klassierungs- und Verarbeitungsanforderungen von Transaktionsschichtpaketen aus. Die Transaktionsschicht umfaßt ferner den Transaktionsschichtpaketaufbau und die –verarbeitung.
  • Eine Ausführungsform der verbesserten allgemeinen Eingangs-/Ausgangsarchitektur unterstützt die folgenden grundlegenden Transaktionstypen und Adressenräume: Speicher, E/A, Konfiguration und Nachricht. Es werden zwei Adressierungstypen unterstützt: 32 Bit und 64 Bit.
  • Transaktionen werden unter Verwendung von Anforderungs- und Beendigungspaketen getragen, die einfach als Anforderungen und Beendigungen bezeichnet werden können. Beendigungen werden nur verwendet, wo sie benötigt werden: z.B. um Lesedaten zurückzusenden oder um die Beendigung von E/A- und Konfigurationsschreibtransaktionen zu bestätigen. Beendigungen sind durch den Wert im Anfordererkennungsfeld des Paketkopfs (nachstehend besprochen) mit ihren entsprechenden Anforderungen verbunden.
  • Alle Transaktionsschichtpakete in dieser Ausführungsform beginnen mit einem definierten Kopf. Einige Transaktionsschichtpakete beinhalten Daten, die dem Kopf wie durch das im Transaktionsschichtpaketkopf bestimmte Formatfeld bestimmt folgen. Das Transaktionsschichtpaket ist durch einen vorbestimmten Höchstnutzlastgrößenwert in der Größe beschränkt. Die Transaktionsschichtpaketdaten in dieser Ausführungsform sind vier Byte in natürlicher Ausrichtung und in Schrittgrößen von Vier-Byte-Doppelworten.
  • 3 ist ein Diagramm, das das Format einer Ausführungsform des Beginns eines Transaktionsschichtpaketkopfs zeigt. Jeder Transaktionsschichtpaketkopf beinhaltet ein Drei-Bit-Formatfeld (Fmt[2:0]). Der Transaktionsschichtpaketkopf beinhaltet auch ein Vier-Bit-Typenfeld (Typ[3:0]) Sowohl das Fmt- als auch das Typenfeld muß decodiert werden, um das Transaktionsschichtpaketformat zu bestimmen. Die nachstehende Tabelle 1 zeigt beispielhafte Codierungen für das Fmt-Feld.
    000 2-Doppelwort-Kopf, keine Daten
    001 3-Doppelwort-Kopf, keine Daten
    010 4-Doppelwort-Kopf, keine Daten
    101 3-Doppelwort-Kopf, mit Daten
    110 4-Doppelwort-Kopf, mit Daten
    Tabelle 1 – Fmt-Feld-Codierungen
  • Der Transaktionsschichtkopf für diese Ausführungsform beinhaltet auch ein erweitertes Typen/erweitertes Längenfeld (Et/El) von zwei Bit. Dieses Feld wird verwendet, um abhängig vom Wert im Typenfeld entweder das Typenfeld oder das Längenfeld zu erweitern. Das Längenfeld für diese Ausführungsform ist gewöhnlich ein Acht-Bit-Feld, kann aber erweitert werden, um ein Zehn-Bit-Feld zu werden, wenn der Wert im Typenfeld angibt, daß das Et/El-Feld verwendet werden soll, um das Langenfeld zu erweitern. Das Typenfeld kann, abhängig vom Wert im Typen[3:0]feld, durch Anhängen des Et/El-Felds erweitert werden, um ein Sechs-Bit-Feld zu werden. Siehe die nachstehende Tabelle für beispielhafte Fmt-, Typen- und Et/El-Feld-Codierungen (alternative Ausführungsformen können andere Codierungsschemata verwenden). Das Et/El-Feld wird, außer wo angegeben, als Erweiterung des Typenfelds verwendet.
    Pakettyp Fmt[2:0] Typ[3:0] Et/El[1:0] Beschreibung
    MRd 001 010 1001 E19 E18 Speicherleseanforderung, Et/El-Feld für Länge [9:8] verwendet
    MRdLk 001 010 1011 00 Speicherleseanforderung – gesperrt
    MWr 101 110 0001 E19 E18 Speicherschreibanforderung – keine Gegentransaktion, Et/El-Feld für Länge [9:8] verwendet
    IORd 001 1010 00 E/A-Leseanforderung
    IOWr 101 1010 00 E/A-Schreibanforderung
    CfgRd0 001 1010 01 Konfiguration Lesetyp 0
    DfgWr0 101 1010 01 Konfiguration Schreibtyp 0
    CfgRd1 001 1010 11 Konfiguration Lesetyp 1
    CfgWr1 101 1010 11 Konfiguration Schreibtyp 1
    Msg 010 011s2 s1S0 Nachrichtenanforderung – das Unterfeld s[2:0] bestimmt eine Gruppe von Nachrichten. Das Nachrichtenfeld muß decodiert wer-den, um den spezifischen Zyklus einschließlich des Umstands, ob eine Beendi-gung erforderlich ist, oder nicht, zu bestimmen.
    MsgD 110 011s2 s1s0 Nachrichtenanforderung mit Daten – das Unterfeld s[2:0] bestimmt eine Gruppe von Nachrichten. Das Nachrichtenfeld muß decodiert werden, um den spezifischen Zyklus einschließ-lich des Umstands, ob eine Beendigung erforderlich ist, oder nicht, zu bestimmen.
    MsgComm 110 110c2 c1c0 Nachricht für fortgeschrittenes Vermitteln. Das Unterfeld c[2:0] bestimmt den Nachrichtentyp: 000 – Einzelruf, Datenpaket 001 – Gruppenruf, Datenpaket 010 – Signalisierungspaket ohne Unterbrechung 011 – reserviert 100 – Nullsignalisierungspaket, Unterbrechung an Host in der Bestimmungshierarchie 101 – Nullsignalisierungspaket, Unterbrechung an Bestimmungsvorrichtung 110 – Signalisierungspaket, mit Unterbrechung an Host in der Bestimmungshierarchie 111 – Signalisierungspaket, mit Unterbrechung an Bestimmungsvorrichtung
    Cpl 001 0100 00 Beendigung ohne Daten – für E/A- und Konfigurationsschreibbeendigungen, und Speicherlesebeendigungen mit einem anderen Beendigungsstatus als „erfolgreiche Beendigung" verwendet.
    CplD 101 0100 E19 E18 Beendigung mit Daten – für Speicher-, E/A- und Konfigurationslesebeendigungen verwendet, Et/El-Feld für Länge [9:8] verwendet
    CplDLk 101 0101 01 Beendigung für gesperrtes Speicherlesen
  • Anforderungspakete beinhalten einen Anforderungskopf, auf den für einige Typen von Anforderungspaketen irgendeine Anzahl von Doppelworten von Daten folgen wird. Wie hierin verwendet gibt der Ausdruck „Doppelwort" eine 32-Bit-Länge von Daten an. Für diese beispielhafte Ausführungsform wird das Längenfeld für Nachrichtenanforderungsköpfe außer für Nachrichten, die sich ausdrücklich auf eine Datenlänge beziehen, nicht verwendet. Außerdem wird das El/Et-Feld für diese Ausführungsform für Speicherleseanforderungen und Speicherschreibanforderungen mit dem Längenfeld verkettet, um ein Zehn-Bit-Längenfeld zu bilden. Das Zehn-Bit-Längenfeld gestattet Lese- und Schreibanforderungen, die bis zu 4 kB Daten angeben. Andere Typen von Transaktionsschichtpaketen sind durch die Größe des Längen[7:0]felds beschränkt, um bis zu 1 kB Daten anzugeben. Die Menge an Daten, die in jedem beliebigen Transaktionsschichtpaket beinhaltet ist, ist in einer Ausführungsform auf eine vorbestimmte Höchstnutzlastgröße beschränkt. Für Transaktionsschichtpakete, die Daten beinhalten, sollten der Wert im Längenfeld und die tatsächliche Menge an Daten gleich sein. Wenn der Empfänger bestimmt, daß der Längenfeldwert und die tatsächliche Menge an Daten nicht übereinstimmen, wird das Paket als ein mißgebildetes Transaktionsschichtpaket behandelt. Mißgebildete Transaktionsschichtpakete sind nachstehend beschrieben.
  • 4 ist ein Diagramm eines Anforderungspaketkopfs, der ein 32-Bit-Adressenformat unterstützt, und 5 ist ein Diagramm eines Anforderungspaketkopfs, der ein 64-Bit-Adressenformat unterstützt. Für eine Ausführungsform können Speicherleseanforderungen und Speicherschreibanforderungen entweder das 32-Bit-Adressenformat oder das 64-Bit-Adressenformat verwenden. Für Adressen unter 4 GB wird das 32-Bit-Format verwendet.
  • Die Anforderungspaketköpfe von 4 und 5 beinhalten auch ein Feld zur Bytefreigabe des ersten Doppelworts (First Double Word Byte Enable field, 1st DW BE), und ein Feld zur Bytefreigabe des letzten Doppelworts (Last Double Word Byte Enable field, Last DW BE). Das Feld zur Bytefreigabe des ersten Doppelworts enthält Bytefreigaben für das erste Doppelwort jeder beliebigen Speicherlese- oder –schreibanforderung. Dieses Feld enthält auch Bytefreigaben für das einzige Doppelwort einer Ein-/Ausgangs- oder einer Konfigurationsanforderung. Das Feld zur Bytefreigabe des letzten Doppelworts enthält Bytefreigaben für das letzte Doppelwort jeder beliebigen Speicherlese- oder –schreibanforderung. Die Bytefreigabefelder werden nicht mit Nachrichten verwendet, da diese Felder das Nachrichtencodefeld für einen Nachrichtenanforderungskopf überlappen (siehe die nachstehend besprochene 7).
  • Für eine Ausführungsform gibt ein Wert von „0" für jedes Bit in den Bytefreigabefeldern an, daß das entsprechende Byte von Daten nicht an einem Beendiger geschrieben oder, falls nicht vorabrufbar, gelesen ist. Wie hierin verwendet soll der Ausdruck „Beendiger" eine logische Vorrichtung angeben, die von einem Anforderungspaketkopf angesprochen wird. Ein Wert von „1" gibt an, daß das entsprechende Byte von Daten am Beendiger geschrieben, oder falls nicht vorabrufbar, gelesen ist. Für das Feld zur Bytefreigabe des ersten Doppelworts entspricht das Bit 0 dem Byte 0 des ersten Doppelworts von Daten. Das Bit 1 entspricht dem Byte 1 des ersten Doppelworts von Daten. Das Bit 2 entspricht dem Byte 2 des ersten Doppelworts von Daten. Das Bit 3 entspricht dem Byte 3 des ersten Doppelworts von Daten. Für das Feld zur Bytefreigabe des letzten Doppelworts entspricht das Bit 0 dem Byte 0 des letzten Doppelworts von Daten. Das Bit 1 entspricht dem Byte 1 des letzten Doppelworts von Daten. Das Bit 2 entspricht dem Byte 2 des letzten Doppelworts von Daten. Das Bit 3 entspricht dem Byte 3 des letzten Doppelworts von Daten.
  • Die beispielhaften Paketköpfe von 4, 5, 6, und 8 beinhalten ein Anfordererkennungsfeld, ein Markierungsfeld, ein Attributfeld, und ein Virtualkanalkennungsfeld. Das Anfordererkennungsfeld und das Markierungsfeld bilden zusammen ein Transaktionskennungsfeld. Das Anfordererkennungsfeld ist in ein Busnummernfeld, ein Vorrichtungsnummernfeld, und ein Funktionsnummernfeld geteilt.
  • Das Markierungsfeld ist ein 5-Bit-Feld, das durch jede anfordernde Vorrichtung erzeugt wird. Der Markierungswert ist für alle ausstehenden Anforderungen, die eine Beendigung erfordern, für diese anfordernde Vorrichtung einzigartig. Das Transaktionskennungsfeld ist in allen Anforderungen und Beendigungen beinhaltet. Das Anfordererkennungsfeld für diese beispielhaften Ausführungsformen ist ein 16-Bit-Wert, der für jede Funktion einzigartig ist (eine Funktion ist ein unabhängiger Abschnitt einer Mehrfachfunktionsvorrichtung, der im Konfigurationsraum durch eine einzigartige Funktionsnummer identifiziert ist). Funktionen erfassen die Busnummer, die mit allen Konfigurationsschreibtätigkeiten, die durch die Funktion beendet wurden, geliefert wird, und liefern diese Nummer im Busnummernabschnitt des Anfordererkennungsfelds. Jede logische Vorrichtung in einer Komponente ist dazu gestaltet, für Konfigurationsanforderungen, die diese Komponente ansprechen, auf eine einzigartige Vorrichtungsnummer zu antworten. Für diese beispielhaften Ausführungsformen kann eine Komponente viele (vielleicht bis zu mehrere Dutzend) logische Vorrichtungen enthalten. Jede Funktion, die mit einer logischen Vorrichtung in einer Komponente verbunden ist, ist dazu gestaltet, für Konfigurationsanforderungen, die diese Komponente und diese logische Vorrichtung ansprechen, auf eine einzigartige Funktionsnummer zu antworten. Jede logische Vorrichtung kann bis zu acht logische Funktionen enthalten.
  • Das Attributfeld bestimmt Eigenschaften der Transaktion. Attribute, die im Attributfeld bestimmt werden können, beinhalten ein Prioritätsattribut, Transaktionsklassierungsattribute, und Pufferkohärenzverwaltungsattribute.
  • Das Virtualkanalkennungsfeld identifiziert den virtuellen Kanal. Für diese beispielhaften Ausführungsformen ist das Virtualkanalkennungsfeld ein 4-Bit-Feld, das eine Identifikation von bis zu 16 virtuellen Kanälen auf einer Pro-Transaktions-Basis gestattet. Für diese beispielhaften Ausführungsformen wird der virtuelle Kanal 0 für Allzweck-Verkehr und ein anderer virtueller Kanal als 0 für isochronen Verkehr verwendet.
  • 6 ist ein Diagramm eines Paketkopfs für eine Nachricht. Wie in Tabelle 2 ersichtlich können Nachrichten Daten beinhalten oder keine Daten beinhalten, und können sie eine Beendigung erfordern oder keine Beendigung erfordern. Nachrichten werden durch alle Vorrichtungen in einem System decodiert, die die verbesserte allgemeinen Eingangs/Ausgangsverbindungsarchitektur unterstützen.
  • Für Nachrichtenanforderungen wird das Nachrichtenfeld decodiert, um den bestimmten Zyklus zu bestimmen, und um zu bestimmen, ob die Nachricht Daten beinhaltet, und ob die Nachricht eine Beendigung erfordert. Für diese Ausführungsform ist das Nachrichtenfeld ein 8-Bit-Feld, das sich dort befindet, wo sich für andere Transaktionstypen normalerweise die Bytefreigabefelder befinden. Nicht unterstützte Nachrichten werden durch die empfangende Vorrichtung als keine Beendigung erfordernd behandelt (Transaktionen, die keine Beendigung erfordern, sind nachstehend besprochen).
  • Für diese beispielhafte Ausführungsform sind Nachrichten in Gruppen geteilt. Es gibt acht Gruppen, die mit der Anforderung Daten beinhalten, und acht Gruppen, die dies nicht tun. Es sind andere Ausführungsformen möglich, die unterschiedliche Anzahlen von Gruppen verwenden. Für diese Ausführungsform weisen die acht Gruppen, die mit den Anforderungen Daten beinhalten, wie in Tabelle 2 gezeigt im Fmt-Feld einen Wert von b110 auf. Die acht Gruppen, die keine Daten beinhalten, weisen im Fmt-Feld einen Wert von b010 auf. Das Unterfeld s[2:0] enthält ein Bit vom Typenfeld und die beiden Bits vom Et/El-Feld. Das Unterfeld s[2:0] gibt eine der acht Gruppen an.
  • Beispiele für verschiedene Nachrichten, die ausgeführt werden können, beinhalten, jedoch ohne Beschränkung darauf, die folgenden: Nachrichten zum Entsperren von Vorrichtungen; Nachrichten zum Rückstellen von Vorrichtungen; Nachrichten, die einen korrigierbaren Fehlerzustand angeben; Nachrichten, die einen nicht korrigierbaren Fehlerzustand angeben; Nachrichten, die einen verhängnisvollen Fehlerzustand angeben; Nachrichten, die verwendet werden, um schlechte Anforderungspakete zu melden; Nachrichten im Zusammenhang mit der Leistungsverwaltung; Nachrichten im Zusammenhang mit der Klassierung der Steuerung/Verwaltung; und Nachrichten zur Emulation von Vorläufer(z.B. PCI)-Unterbrechungssignalen (oder anderen Vorläufersignalen). Diese verschiedenen Nachrichtentypen können in eine der vorher besprochenen Gruppen unterteilt werden. Zum Beispiel können alle Leistungsverwaltungsnachrichten in einer Gruppe enthalten sein, und können die Unterbrechungssignalisierungsnachrichten in einer anderen Gruppe enthalten sein.
  • 7 ist ein Diagramm, das ein Anforderungskopfformat für eine Konfigurationstransaktion zeigt. Der Konfigurationsraum ist für diese beispielhaften Ausführungsformen einer der vier unterstützten Adressenräume.
  • 8 ist ein Diagramm, das eine Ausführungsform eines Formats für einen Beendigungskopf zeigt. Alle Leseanforderungen und einige Schreibanforderungen erfordern eine Beendigung. Beendigungen beinhalten einen Beendigungskopf, dem für einige Typen der Beendigung irgendeine Anzahl von Doppelworten von Daten folgt. Das in 8 gezeigte Beendigungsstatus[2:0]feld gibt den Status für eine Beendigung an. Tabelle 3 zeigt ein beispielhaftes Codierungsschema.
    Beendigungsstatus [2:0] Status
    000 erfolgreiche Beendigung
    001 nicht unterstütze Anforderung – Beendigung erwartet
    011 reserviert
    100 Beendigerabbruch
    Tabelle 3 – Beendigungsstatusfeldcodierungsschema
  • Das Beendigerkennungs[15:0]feld enthält den gleichen Typ von Information wie das oben beschriebene Anfordererkennungsfeld. Der Wert, der im Beendigerkennungsfeld bereitgestellt wird, entspricht dem Bus/der Vorrichtung/der Funktion des Agenten, der die Anforderung beendet. Beendigungsköpfe enthalten die gleichen Werte für die Anfordererkennung, die Markierung und die Kanalkennung, wie sie im Kopf des Anforderungspakets geliefert wurden. Beendigungsköpfe enthalten auch im Attributfeld den gleichen Wert, wie er ursprünglich mit dem Kopf der Anforderung geliefert wurde. Beendigungspakete werden durch Vermittlungen und Wurzelkomplexe zu dem Anschluß geroutet, der die entsprechende Anforderungstransaktion begonnen hat.
  • Für Speicherleseanforderungstransaktionen können individuelle Beendigungspakete weniger als das gesamte Ausmaß an Daten, das durch die entsprechende Leseanforderung angefordert wurde, bereitstellen, solange alle Beendigungspakete, die mit der entsprechenden Leseanforderung verbunden sind, in Kombination das bestimmte Ausmaß an Daten zurücksenden. Für diese beispielhaften Ausführungsformen werden E/A- und Konfigurationsleseanforderungen mit genau einem Beendigungspaket beendet.
  • Eine Beendigung, die Daten beinhaltet, gibt die Menge der Daten im Paketkopf an. Wenn das Beendigungspaket tatsächlich eine Menge an Daten enthält, die sich von der angegebenen Menge unterscheidet, ergibt sich ein mißgebildetes Transaktionsschichtpaket.
  • 9a und 9b bilden in Kombination ein Ablaufdiagramm einer beispielhaften Ausführungsform eines Verfahrens zur Behandlung empfangener Transaktionsschichtpakete. Die nachstehend beschriebenen Tätigkeiten müssen nicht notwendigerweise in einer fortlaufenden Weise stattfinden. Einige Ausführungsformen können einige Tätigkeiten gleichzeitig durchführen. Bei Block 905 wird eine Prüfung vorgenommen, um zu bestimmen, ob die Werte, die im Fmt- und im Längenfeld des empfangenen Pakets enthalten sind, der tatsächlichen Größe des Pakets entsprechen. Eine Fehlentsprechung gibt ein mißgebildetes Paket an, und es ergibt sich wie bei Block 925 gezeigt ein Fehlerfall. Die Fehlerfallbehandlung wird nachstehend besprochen werden. Wenn die tatsächliche Größe des empfangenen Pakets keine Fehlentsprechung mit dem Fmt- und dem Längenfeld angibt, setzt die Verarbeitung bei Block 910 fort.
  • Wenn das empfangene Paket eine Speicheranforderung ist, die eine 64-Bit-Adressierung verwendet, werden dann bei Block 910 die Adressenbits [63:32] geprüft, um herauszufinden, ob jegliche der Adressenbits [63:32] nicht Null sind. Wenn keines der Adressenbits [63:32] nicht Null ist, ist das Ergebnis ein mißgebildetes Paket und geht die Verarbeitung zum Fehlerfallblock 925 über. Wenn zumindest eines der Adressenbits [63:32] nicht Null ist, setzt die Verarbeitung bei Block 915 fort.
  • Bei Block 915 wird eine Prüfung vorgenommen, um zu bestimmen, ob jegliche Felder im Paketkopf reservierte Werte enthalten. Wenn reservierte Werte gefunden werden, ist das Ergebnis ein mißgebildetes Paket und geht die Verarbeitung zu Block 925 über. Wenn keine reservierten Werte gefunden werden, setzt die Verarbeitung bei Block 930 fort.
  • Bei Block 930 wird eine Bestimmung vorgenommen, ob das Paket ein Anforderungspaket oder ein Beendigungspaket ist. Wenn das Paket ein Beendigungspaket ist, geht die Verarbeitung zum Beendigungsbehandlungsblock 935 über. Die Beendigungsbehandlung wird nachstehend näher besprochen werden. Wenn das empfangene Paket kein Beendigungspaket ist, setzt die Verarbeitung bei Block 940 fort. Es ist zu beachten, daß alle Pakete, die zu Block 940 laufen, Anforderungspakete sind.
  • Bei Block 940 wird eine Prüfung vorgenommen, um zu bestimmen, ob das Anforderungspaket ein Anforderungstyp ist, der durch die beendigende Vorrichtung unterstützt wird. Wenn der Anforderungstyp nicht unterstützt wird, ist das Ergebnis eine nicht unterstützte Anforderung und geht die Verarbeitung zum Fehlerfallblock 925 über. Für diese beispielhafte Ausführungsform wird das Paket still fallen gelassen und kommt es zu keinem Fehlerfall, wenn der Typ der nicht unterstützten Anforderung eine Sendenachricht oder eine Nachricht ist, die eine für Sendenachrichten reservierte Codierung verwendet. Wenn der Anforderungstyp durch die beendigende Vorrichtung unterstützt wird, setzt die Verarbeitung bei Block 945 fort.
  • Wenn die beendigende Vorrichtung wie bei Block 945 gezeigt aufgrund eines internen Fehlers nicht fähig ist, auf das Anforderungspaket zu antworten, ist das Ergebnis ein „Beendigerabbruch" und geht die Verarbeitung zum Fehlerfallblock 925 über. Andernfalls wird die Anforderung bei Block 950 bedient. Bei der Bedienung der Anforderung kann es nötig sein, die durch die Blöcke 940 und 945 angegebene Verarbeitung zu wiederholen.
  • Sobald die Anforderung erfolgreich bedient ist, setzt die Verarbeitung bei Block 955 fort. Wenn die verarbeitete Anforderung wie durch Block 955 angegeben eine Beendigung erfordert, wird bei Block 960 ein Beendigungspaket zurückgesendet.
  • 10 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zur Behandlung von Fehlerbedingungen, die mit empfangenen Anforderungspaketen verbunden sind. Wenn die empfangene Anforderung wie bei Block 1010 ersichtlich eine Beendigung erwartet, wird bei Block 1020 eine Beendigung mit dem passenden Beendigungsstatus gesendet. Die Beendigung wird zur anfordernden Vorrichtung zurückgeroutet. Wenn die empfangene Anforderung keine Beendigung erwartet, wird bei Block 1030 eine Fehlermeldung zur anfordernden Vorrichtung gesendet. Der Fehler wird dem System bei Block 1040 gemeldet. Die bei Block 1030 angegebene Fehlernachrichtensendetätigkeit kann als eine programmierbare Option ausgeführt sein.
  • Einige Systeme können zusätzlich zur vorher besprochenen verbesserten allgemeinen Eingangs/Ausgangsverbindungsarchitektur einen oder mehrere PCI-Busse beinhalten. Für Speicher-, E/A- und Konfigurationsanforderungen, die durch die verbesserte allgemeine Eingangs/Ausgangsverbindungsarchitektur laufen und für eine Vorrichtung an einem PCI-Bus bestimmt sind, stellt der Beendigungsstatus für diese Ausführungsformen den tatsächlichen PCI-Abschluß für diesen Zyklus dar. Zum Beispiel muß ein PCI-Zyklus, der einer Gegentransaktion bedarf, tatsächlich am PCI-Bus bedient werden, bevor ein Beendigungsstatus bestimmt werden kann. Für alle anderen Fälle sind die Beendigungsstatuswerte wie nachstehend besprochen definiert.
  • Wenn eine Anforderung durch die beendigende Vorrichtung erfolgreich beendet wurde, ist der sich ergebende Beendigungsstatuswert „erfolgreiche Beendigung" (im Beendigungsstatusfeld für diese Ausführungsform wie in Tabelle 3 angegeben als „000" codiert). Zum Beispiel wird eine Leseanforderung von einer Hostbrücke durch eine Vermittlung zu einem Computerendpunkt geroutet. Der Beendiger antwortet mit einem Beendigungspaket, das einen erfolgreichen Beendigungsstatus angibt, und antwortet auch mit den Daten für die Leseanforderung. Die Vermittlung routet dieses Beendigungspaket zur Hostbrücke zurück.
  • Wenn eine Anforderung durch die beendigende Vorrichtung empfangen und decodiert wird, aber die beendigende Vorrichtung die angeforderte Transaktion nicht unterstützt und die Anforderung eine Beendigung erfordert, ist der sich ergebende Beendigungsstatus „nicht unterstützte Anforderung" (im Beendigungsstatusfeld für diese Ausführungsform wie in Tabelle 3 angegeben als „001" codiert). Ein Beispiel für eine nicht unterstützte Anforderung wäre eine Speicherleseanforderung an eine Adresse außer Reichweite. In diesem Fall ist der Beendiger nicht fähig, die Anforderung zu unterstützen, und erwartet der Anforderer eine Beendigung.
  • Falls eine Anforderung durch die beendigende Vorrichtung empfangen und decodiert wird und die beendigende Vorrichtung nicht fähig ist, die angeforderte Transaktion zu unterstützen, und die anfordernde Vorrichtung keine Beendigung erwartet, ist der sich ergebende Beendigungsstatus eine nicht unterstützte Anforderung. Da die anfordernde Vorrichtung keine Beendigung erwartet, wird der Beendigungsstatus über eine wie oben in Verbindung mit 10 beschriebene Nachricht zur anfordernden Vorrichtung kommuniziert. Ein Beispiel einer nicht unterstützten Anforderung, bei der die anfordernde Vorrichtung keine Beendigung erwartet, ist eine Speicherschreibtransaktion an eine Adresse außer Reichweite. Die Kommunikation des Beendigungsstatus über eine Nachricht kann als ein optionales Merkmal ausgeführt sein.
  • Wenn eine beendigende Vorrichtung eine Anforderung empfangt und decodiert, aber die beendigende Vorrichtung aufgrund eines internen Fehlers nicht fähig ist, zu antworten, ist der sich ergebende Beendigungsstatus ein „Beendigerabbruch" (für diese Ausführungsform im Beendigungsstatusfeld als „100" codiert).
  • Wenn eine beendigende Vorrichtung ein Paket empfangt, das Paketbildungsregeln verletzt, ist das Ergebnis ein „mißgebildetes Paket". Die beendigende Vorrichtung antwortet durch das Senden einer Fehlernachricht „mißgebildetes Paket", die zur anfordernden Vorrichtung geroutet wird, auf diese Situation. Eine Vermittlung, die ein mißgebildetes Paket empfangt, muß das Paket für diese Ausführungsform zum stromaufwärts befindlichen Anschluß routen, wenn kein anderer Anschluß eindeutig als der beabsichtigte Bestimmungsanschluß 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 gesendet wird. Zum Beispiel kann ein Beendiger eine Leseanforderung zur Bedienung in vier Teile teilen und führt das zweite Beendigungspaket zu einem Beendigungsstatus „Beendigerabbruch". Die letzten beiden Beendigungspakete werden nicht gesendet. Die anfordernde Vorrichtung betrachtet die Anforderung als abgeschlossen, sobald sie das Beendigungspaket mit dem nicht erfolgreichen Beendigungsstatus empfängt, und sollte keine zusätzlichen Beendigungspakete erwarten, die dieser Leseanforderung entsprechen.
  • 11 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zur Behandlung eines Beendigungspakets, das nicht von einem Systemagenten erwartet wird. Eine „unerwartete Beendigung" tritt auf, wenn ein Agent eine Beendigung empfängt, die keiner ausstehenden Anforderung, die durch diesen Agenten ausgegeben wurde, entspricht. Für das beispielhafte Verfahren von 11 gibt Block 1110 an, daß die normale Tätigkeit bei Block 1120 weitergeht, wenn keine unerwartete Beendigung vorhanden ist. Wenn jedoch eine unerwartete Beendigung empfangen wird, wird das unerwartete Beendigungspaket bei Block 1130 verworfen. Nachdem das Paket verworfen wurde, kann der obige Fehlerzustand bei Block 1140 dem System gemeldet werden. Für diese beispielhafte Ausführungsform kann die Meldung des Fehlers eine Option sein, die durch Software programmierbar ist.
  • 12 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens für eine anfordernde Vorrichtung, die ein Beendigungspaket mit einem anderen Beendigungsstatus als „erfolgreiche Beendigung" behandelt. Block 1210 gibt an, daß die normale Tätigkeit bei Block 1220 weitergeht, wenn der Beendigungsstatus eine „erfolgreiche Beendigung" ist. Wenn der Beendigungsstatus anders als „erfolgreiche Beendigung" ist, wird bei Block 1230 der Wert des Anfordererkennungsfelds aufgezeichnet. Für diese Ausführungsform wird der Anfordererkennungswert in einem Register gespeichert. Dann wird für diese Ausführungsform bei Block 1240 ein Bit „empfangene nicht erfolgreiche Beendigung" in einem Register in der anfordernden Vorrichtung gesetzt. Der obige Fehlerzustand kann bei Block 1250 gemeldet werden. Die Meldung des Fehlerzustands kann als eine programmierbare Option ausgeführt sein. Ein Softwareagent kann den Anfordererkennungswert und das Bit „empfangene nicht erfolgreiche Beendigung" verwenden, um die Quelle des Fehlerzustands ausfindig zu machen.
  • 13 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens für eine beendigende Vorrichtung, die ein Beendigungspaket mit einem anderen Beendigungsstatus als „erfolgreiche Beendigung" behandelt. Block 1310 gibt an, daß die normale Tätigkeit bei Block 1320 weitergeht, wenn der Beendigungsstatus eines gesendeten Beendigungspakets eine „erfolgreiche Beendigung" ist. Wenn der Beendigungsstatus anders als „erfolgreiche Beendigung" ist, wird bei Block 1330 der Wert des Anforderkennungs- und des Markierungsfelds aufgezeichnet. Für diese Ausführungsform werden die Werte der Anfordererkennung und der Markierung in einem oder mehreren Registern gespeichert. Dann wird für diese Ausführungsform bei Block 1340 ein Bit „gesendete nicht erfolgreiche Beendigung" in einem Register in der beendigenden Vorrichtung gesetzt. Der obige Fehlerzustand kann bei Block 1350 gemeldet werden. Die Meldung des Fehlerzustands kann als eine programmierbare Option ausgeführt sein. Ein Softwareagent kann die Werte der Anfordererkennung und der Markierung und das Bit „gesendete nicht erfolgreiche Beendigung" verwenden, um die Quelle des Fehlerzustands ausfindig zu machen.
  • In der vorhergehenden Beschreibung wurde die Erfindung unter Bezugnahme auf bestimmte beispielhafte Ausführungsformen davon beschrieben. Es wird jedoch einleuchtend sein, daß daran verschiedenste Abwandlungen und Veränderungen vorgenommen werden können, ohne vom breiteren Umfang der Erfindung, wie er in den beiliegenden Ansprüchen bekannt gemacht ist, abzuweichen. Die Beschreibung und die Zeichnungen sollen demgemäß anstatt in einem beschränkenden Sinn vielmehr in einem erläuternden Sinn betrachtet werden.
  • Eine Bezugnahme in dieser Beschreibung auf „eine Ausführungsform", „einige Ausführungsformen", oder „andere Ausführungsformen" bedeutet, daß ein bestimmtes Merkmal, ein bestimmter Aufbau, oder eine bestimmte Eigenschaft, das, der bzw. die in Verbindung mit den Ausführungsformen beschrieben ist, in zumindest einigen Ausführungsformen, aber nicht notwendigerweise allen Ausführungsformen, der Erfindung beinhaltet ist. Das verschiedentliche Auftreten von „einer Ausführungsform" oder „einigen Ausführungsformen" bezieht sich nicht notwendigerweise immer auf die gleichen Ausführungsformen.

Claims (18)

  1. Vorrichtung eines Datenverarbeitungssystems, umfassend: einen Kommunikationsstapel, um über eine Punkt-zu-Punkt-Verbindung mit einer anderen Vorrichtung im Datenverarbeitungssystem zu kommunizieren, wobei der Kommunikationsstapel eine Transaktionsschicht, eine Datenverbindungsschicht, und eine physikalische Schicht aufweist, wobei die Transaktionsschicht mehrere Pakete in Reihe über die Punkt-zu-Punkt-Verbindung zur anderen Vorrichtung senden soll, wobei jedes Paket einen Paketkopf aufweist, dadurch gekennzeichnet, daß der Paketkopf ein erstes Feld beinhaltet, um abhängig von den Inhalten eines zweiten Felds eines aus dem zweiten Feld und einem dritten Feld zu erweitern.
  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 angibt.
  5. Vorrichtung nach Anspruch 4, wobei sich das erste Feld zwischen und unmittelbar neben dem Typenfeld und dem Längenfeld im Paketkopf befindet.
  6. Vorrichtung nach Anspruch 5, wobei sich das Typenfeld im ersten Byte des Paketkopfs, der durch die Datenpfadausgabeeinheit ausgegeben werden soll, befindet.
  7. Vorrichtung eines Datenverarbeitungssystems, umfassend: einen Kommunikationsstapel, um über eine Punkt-zu-Punkt-Verbindung mit einer anderen Vorrichtung im Datenverarbeitungssystem zu kommunizieren, wobei der Kommunikationsstapel eine Transaktionsschicht, eine Datenverbindungsschicht, und eine physikalische Schicht aufweist, wobei die Transaktionsschicht mehrere Pakete in Reihe über die Punkt-zu-Punkt-Verbindung von einer anderen Vorrichtung empfangen soll, wo bei jedes Paket einen Paketkopf aufweist, dadurch gekennzeichnet, daß der Paketkopf ein erstes Feld beinhaltet, um abhängig von den Inhalten eines zweiten Felds eines aus dem zweiten Feld und einem dritten Feld zu erweitern.
  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 angibt.
  11. Vorrichtung nach Anspruch 10, wobei sich das erste Feld zwischen und unmittelbar neben dem Typenfeld und dem Längenfeld im Paketkopf befindet.
  12. Vorrichtung nach Anspruch 11, wobei sich das Typenfeld im ersten Byte des Paketkopfs, der durch die Datenpfadausgabeeinheit ausgegeben werden soll, befindet.
  13. System, umfassend: eine Punkt-zu-Punkt-Verbindung; eine sendende Vorrichtung, die einen ersten Kommunikationsstapel aufweist, der eine Transaktionsschicht, eine Datenverbindungsschicht, und eine physikalische Schicht beinhaltet, wobei die Transaktionsschicht mehrere Pakete seriell auf die Punkt-zu-Punkt-Verbindung senden soll, wobei jedes Paket einen Paketkopf aufweist; und eine empfangende Vorrichtung, die über die Punkt-zu-Punkt-Verbindung kommunikativ mit der sendenden Vorrichtung gekoppelt ist, wobei die empfangende Vorrichtung einen zweiten Kommunikationsstapel aufweist, der eine Transaktionsschicht, eine Datenverbindungsschicht, und eine physikalische Schicht beinhaltet, wobei die Transaktionsschicht die mehreren Pakete über die Punkt-zu-Punkt-Verbindung seriell von der sendenden Vorrichtung empfangen soll, dadurch gekennzeichnet, daß der Paketkopf ein erstes Feld beinhaltet, um abhängig von den Inhalten eines zweiten Felds eines aus dem zweiten Feld und einem dritten Feld zu erweitern.
  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 angibt.
  17. System nach Anspruch 16, wobei sich das erste Feld zwischen und unmittelbar neben dem Typenfeld und dem Längenfeld im Paketkopf befindet.
  18. System nach Anspruch 17, wobei sich das Typenfeld im ersten Byte des Paketkopfs, der durch die Datenpfadausgabeeinheit ausgegeben werden soll, befindet.
DE60222191T 2001-12-28 2002-12-05 Übermittlung von Transaktionstypen zwischen Agenten eines Computersystems unter Verwendung von Paketköpfen mit erweitertem Typen-/erweitertem Längenfeld Expired - Lifetime DE60222191T2 (de)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
DE60222191D1 DE60222191D1 (de) 2007-10-11
DE60222191T2 true DE60222191T2 (de) 2008-01-03

Family

ID=21914326

Family Applications (2)

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
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

Family Applications After (1)

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

Country Status (9)

Country Link
US (1) US6944617B2 (de)
EP (2) EP1459195B1 (de)
JP (1) JP4044523B2 (de)
CN (1) CN1608255B (de)
AT (2) ATE329315T1 (de)
AU (1) AU2002362100A1 (de)
DE (2) DE60222191T2 (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
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
US7536495B2 (en) * 2001-09-28 2009-05-19 Dot Hill Systems Corporation Certified memory-to-memory data transfer between active-active raid controllers
US7403525B2 (en) * 2002-05-15 2008-07-22 Broadcom Corporation Efficient routing of packet data in a scalable processing resource
US7046668B2 (en) * 2003-01-21 2006-05-16 Pettey Christopher J 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
US7698483B2 (en) * 2003-01-21 2010-04-13 Nextio, Inc. Switching apparatus and method for link initialization in a shared I/O environment
US7103064B2 (en) 2003-01-21 2006-09-05 Nextio Inc. Method and apparatus for shared I/O in a load/store fabric
US8346884B2 (en) 2003-01-21 2013-01-01 Nextio Inc. Method and apparatus for a shared I/O network interface 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
US8032659B2 (en) * 2003-01-21 2011-10-04 Nextio Inc. Method and apparatus for a shared I/O network interface controller
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
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
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 中国电信股份有限公司 用户信息传输方法、装置、系统和计算机可读存储介质
EP4080839B1 (de) * 2020-01-22 2024-01-03 Huawei Technologies Co., Ltd. Verfahren und vorrichtung zur datenübertragung auf pcie-basis
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 日本電気株式会社 障害装置特定システム
EP0552288A1 (de) 1990-10-03 1993-07-28 Thinking Machines Corporation Paralleles rechnersystem
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
US5909427A (en) 1995-07-19 1999-06-01 Fujitsu Network Communications, Inc. Redundant switch system and method of operation
CN1104687C (zh) * 1996-01-31 2003-04-02 伊普思龙网络公司 传输网络中在包路由选择和包交换之间动态转换的改进方法及设备
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
US6944617B2 (en) 2005-09-13
EP1684189A2 (de) 2006-07-26
CN1608255B (zh) 2012-12-05
US20030126281A1 (en) 2003-07-03
TWI274497B (en) 2007-02-21
ATE329315T1 (de) 2006-06-15
DE60212190T2 (de) 2007-04-19
DE60222191D1 (de) 2007-10-11
JP4044523B2 (ja) 2008-02-06
EP1459195B1 (de) 2006-06-07
EP1459195A1 (de) 2004-09-22
JP2005514838A (ja) 2005-05-19
CN1608255A (zh) 2005-04-20
EP1684189B1 (de) 2007-08-29
ATE371900T1 (de) 2007-09-15
AU2002362100A1 (en) 2003-07-24
WO2003058469A1 (en) 2003-07-17
DE60212190D1 (de) 2006-07-20
EP1684189A3 (de) 2006-08-02
TW200305323A (en) 2003-10-16

Similar Documents

Publication Publication Date Title
DE60222191T2 (de) Übermittlung von Transaktionstypen zwischen Agenten eines Computersystems unter Verwendung von Paketköpfen mit erweitertem Typen-/erweitertem Längenfeld
DE69829840T2 (de) Medienzugriffskontroller und Medienunabhängige Schnittstelle(MII) zum Verbinden an eine physikalische Schicht Vorrichtung
DE60303026T2 (de) System, verfahren und produkt zur verwaltung des datenverkehrs in einem netzwerk
DE69928603T2 (de) Medienzugriffssteuerung
DE102009021865B4 (de) Bereitstellung eines Präfixes für einen Datenkopf
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE69634916T2 (de) Verfahren und vorrichtung zur filterung von mehradresspaketen in einem lokalen netz durch ein transparentes zwischensystem
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE602004010571T2 (de) Vorrichtung und Verfahren zur Lastverteilung in einem Blade-Server unter Verwendung von freier Bandbreite auf der Verbindung
DE2953444C2 (de) Anordnung und Verfahren für ein digitales Datenübertragungsnetzwerk
DE60201682T2 (de) Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute
DE60213616T2 (de) Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung
DE112008002402T5 (de) Erzeugung von einer logischen APIC-ID mit Cluster ID und Intra-Cluster ID
DE3222390A1 (de) Kanal-schnittstellenschaltungsanordnung
DE69935065T2 (de) Datenübertragungssteuerinrichtung und elektronisches gerät
DE102008049018A1 (de) Filtern und Routen in einer Management Component Transport Protocol-Zwischenverbindung
DE69813657T2 (de) Architektur eines virtuellen Netzes
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
DE102021127325A1 (de) Flexibles hochverfügbarkeits-computing mit parallel konfigurierbaren geweben
WO2020126760A1 (de) Teilnehmerstation für ein serielles bussystem und verfahren zur kommunikation in einem seriellen bussystem
EP3900273B1 (de) Teilnehmerstation für ein serielles bussystem und verfahren zur kommunikation in einem seriellen bussystem
DE102004042068B4 (de) Verfahren, computerlesbares Medium und System zum Handhaben eines fehlgeschlagenen Verbindungstrainings
DE69735546T2 (de) Paketvermittelte leitweglenkung-architektur für mehrere gleichzeitige verbindungen
DE3338341A1 (de) Mehrfachbusanordnung fuer die verbindung von prozessoren und speichern in einem mehrprozessorsystem
DE60315630T2 (de) Verfahren und Zugangsmultiplexer zum Einrichten eines Pfades, der eine bestimmte QoS-Klasse hat

Legal Events

Date Code Title Description
8364 No opposition during term of opposition