DE60213616T2 - Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung - Google Patents

Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung Download PDF

Info

Publication number
DE60213616T2
DE60213616T2 DE60213616T DE60213616T DE60213616T2 DE 60213616 T2 DE60213616 T2 DE 60213616T2 DE 60213616 T DE60213616 T DE 60213616T DE 60213616 T DE60213616 T DE 60213616T DE 60213616 T2 DE60213616 T2 DE 60213616T2
Authority
DE
Germany
Prior art keywords
output interface
general input
egio
flow control
credit
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
DE60213616T
Other languages
English (en)
Other versions
DE60213616D1 (de
Inventor
Jasmin Portland Ajanovic
J. David Sacramento HARRIMAN
Blaise Cameron Park FANNING
M. David Portland LEE
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23221101&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60213616(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE60213616D1 publication Critical patent/DE60213616D1/de
Application granted granted Critical
Publication of DE60213616T2 publication Critical patent/DE60213616T2/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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • 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
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4252Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a handshaking protocol
    • 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/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4269Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a handshaking protocol, e.g. Centronics connection
    • 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
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes

Description

  • ERFINDUNGSGEBIET
  • Ausführungsformen der Erfindung beziehen sich allgemein auf das Gebiet der GIO-Busarchitekturen (GIO – General Input/Output = Allgemeine Eingabe/Ausgabe) und insbesondere auf eine Architektur, ein Protokol und damit verbundene Verfahren zur Implementierung von Flußregelung zwischen Elementen innerhalb einer GIO-Busarchitektur.
  • ALLGEMEINER STAND DER TECHNIK
  • Computervorrichtungen, wie Computersysteme, Server, Netwerkschalter und -router, drahtlose Kommunikationsgeräte und andere elektronische Vorrichtungen, bestehen typisch aus einer Anzahl von elektronischen Komponenten oder Elementen. Diese Elemente enthalten oft einen Prozessor, Mikrocontroller oder sonstige Steuerlogik, ein Speichersystem, eine oder mehrere Eingabe- und Ausgabeschnittstellen, periphere Elemente und dergleichen. Zur Ermöglichung der Kommunikation zwischen diesen Elementen verlassen sich Computervorrichtungen seit langem auf eine allgemeine Eingabe/Ausgabe-Busarchitektur, damit diese ungleichen Elemente der Computerverrichtung miteinander kommunizieren können, um Millionen von Anwendungen für diese Vorrichtungen unterstützen zu können.
  • Eine der am meisten verbreiteten konventionellen GIO-Busarchitekturen ist wohl die PCI-Busarchitektur (Peripheral Component Interconnect Bus Architecture). Der PCI-Bus-Standard (Peripheral Component Interconnect (PCI) Local Bus Specification, Rev. 2.2, vom 18. Dezember 1998) definiert eine parallele "Multidrop" Busarchitektur zum Zusammenschalten von Chips, Erweiterungskarten und Prozessor/Speichersubsystemen in willkürlicher Weise innerhalb einer Computervorrichtung.
  • Während konventionelle PCI-Busimplementierungen einen Durchsatz von 133 MBps (das heißt 32 Bytes bei 33 MHz) aufweisen, sieht der PCI 2.2 Standard 64 Bytes pro Stift der parallelen Verbindung mit einem Takt von max. 133 MHz vor, was einen theoretischen Durchsatz von etwas mehr als 1 GBps bedeutet. Hierbei sorgte der von solchen konventionellen „Multidrop" PCI-Busarchitekturen gebotene Durchsatz für eine angemessene Bandbreite, die selbst für die fortgeschrittensten Computervorrichtungen (Multiprozessorserver-Anwendungen. Netzwerkvorrichtungen usw.) ausreichend war. In Anbetracht der kürzlichen Fortschritte in der Verarbeitungsleistung jedoch, die über die 1 GHz Schwelle hinausgehende Verarbeitungsgeschwindigkeiten ermöglichen, und des weitverbreiteten Einsatzes von Breitband für den Internetzugriff sind konventionelle GIO-Architekturen wie die PCI-Busarchitektur zu Engpässen innerhalb solcher Computervorrichtungen geworden.
  • Eine weitere, mit konventionellen GIO-Architekturen allgemein verknüpfte Begrenzung besteht darin, daß sie typisch nicht gut zur Handhabung/Verarbeitung von isochronen (oder zeitabhängigen) Datenströmen geeignet sind. Ein Beispiel für einen solchen isochronen Datenstrom sind Multimedien-Datenströme, die einen isochronen Transportmechanismus erfordern, um sicherzustellen, daß die Daten, so wie sie empfangen werden, verbraucht werden, und daß der Audio-Anteil mit dem Video-Anteil synchronisiert wird.
  • Konventionelle GIO-Architekturen verarbeiten die Daten asynchron oder in zufälligen Intervallen, so wie es die Bandbreite gestattet. Eine derartige asynchrone Verarbeitung isochroner Daten kann zu einer Fehlausrichtung von Audio sowie Video führen, so daß bestimmte Provider mit isochronem Multimedieninhalt Regeln haben, die bestimmten Daten den Vorrang vor anderen Daten geben, das heißt, Audiodaten den Vorrang vor Videodaten geben, so daß mindestens der Endverbraucher einen relativ stetigen (das heißt, ununterbrochenen) Audiostrom empfängt, so daß er den Gesang genießen, die Geschichte verstehen kann usw., die mit dem Strom übertragen wird.
  • Die Infiniband-Architektur, Version 1.0, Band 1, Allgemeine Spezifikationen, offenbart ein Flußregelungsverfahren für virtuelle Spuren. Ein vom Empfänger gesendetes Flußregelungspaket teilt dem Sender die Anzahl der Blöcke mit, die der Empfänger ohne ein Überlaufen des Puffers empfangen kann.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfinding ist beispielhaft, nicht einschränkend, anhand der Figuren der beigefügten Zeichnungen veranschaulicht, in denen gleiche Ziffern gleiche Elemente bezeichnen, und in denen:
  • 1 ein Blockdiagramm einer elektronischen Vorrichtung ist, die einen oder mehrere Aspekte einer erfindungsgemäßen Ausführungsform enthält, um die Kommunikation zwischen einem oder mehreren konstituierenden Elementen der Vorrichtung zur ermöglichen;
  • 2 eine grafische Darstellung eines beispielhaften Kommunikationsstapels gemäß einer erfindungsgemäßen Ausführungsform ist, der von einem oder mehreren Elementen der elektronischen Vorrichtung verwendet wird, um die Kommunikation zwischen diesen Elementen zu ermöglichen;
  • 3 eine grafische Darstellung eines beispielhaften Transaktionsschicht-Datagramms gemäß einer erfindungsgemäßen Ausführungsform ist;
  • 4 eine grafische Darstellung einer beispielhaften Kommunikationsverbindung gemäß einer erfindungsgemäßen Ausführungsform ist, die einen oder mehrere virtuelle Kanäle umfaßt, um die Kommunikation zwischen einem oder mehreren Elementen des elektronischen Geräts zu ermöglichen;
  • 5 ein Ablaufdiagramm eines beispielhaften Verfahrens gemäß einer erfindungsgemäßen Ausführungsform ist, um isochrone Kommunikationsressourcen innerhalb der EGIO-Architektur bereitzustellen;
  • 6 ein Ablaufdiagramm eines beispielhaften Verfahrens zur Implementierung von Flußregelung innerhalb der EGIO-Architektur gemäß einer erfindungsgemäßen Ausführungsform ist;
  • 7 ein Ablaufdiagramm eines beispielhaften Verfahrens zur Implementierung von Datenintegritätsmerkmalen innerhalb der EGIO-Architektur gemäß einer erfindungsgemäßen Ausführungsform ist;
  • 8 ein Blockdiagramm eines beispielhaften Kommunikationsagenten zur selektiven Implementierung eines oder mehrerer Aspekte der Erfindung gemäß einer erfindungsgemäßen Ausführungsform ist:
  • 9 ein Blockdiagramm verschiedener Paketkopfzeilenformate ist, die die innerhalb der Transaktionsschicht der vorliegenden Erfindung verwendet werden;
  • 10 ein Blockdiagramm einer beispielhaften Speicherarchitektur gemäß einer erfindungsgemäßen Ausführungsform ist, die zur Realisierung eines oder mehrerer Aspekte der vorliegenden Erfindung verwendet wird;
  • 11 ein Statusdiagramm eines beispielhaften Linksstatusmaschinendiagramms gemäß einer erfindungsgemäßen Ausführungsform ist; und
  • 12 ein Blockdiagramm eines Zugriff erlaubenden Mediums ist, dessen Inhalt bei Zugriff durch eine elektronische Vorrichtung einen oder mehrere Aspekte der vorliegenden Erfindung implementiert.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen der Erfindung betreffen allgemein eine Allzweck-Eingabe/Ausgabe-(GIO)-Architektur, ein Protokoll und damit verbundene Verfahren, um darin die Flußregelung zu implementieren. Dabei werden eine innovative verbesserte allgemeine Eingabe/Ausgabe-(EGIO)-Zusammenschaltarchitektur, ein zugehöriges Kommunikationsprotokoll und damit verbundene Verfahren eingeführt. Gemäß einer beispielhaften Ausführungsform beinhalten die Elemente einer EGIO-Architektur einen oder mehrere Root-Komplexe (die zum Beispiel in einer Brücke implementiert sind), einen Schalter und Endpunkte, die jeweils mindestens einen Subsatz von EGIO-Merkmalen enthalten, um die EGIO-Kommunikation zwischen diesen Elementen zu unterstützen.
  • Die Kommunikation zwischen den EGIO-Einrichtungen dieser Elemente erfolgt mit Hilfe serieller Kommunikationskanäle unter Einsatz eines EGIO-Kommunikationsprotokolls, welches wie im folgenden ausführlich beschrieben wird, ein oder mehrere innovative Merkmale unterstützt, einschließlich, aber nicht beschränkt auf, virtuelle Kommunikationskanäle, „Tailer"-Fehlerweiterleitung, Unterstützung für PCI-basierte Altsystemgeräte und deren Interrupts, Mehrfachanforderungsantworttypen, Flußregelung und/oder Datenintegritätsmanagement- Einrichtungen. Gemäß eines Aspekts der Erfindung wird das Kommunikationsprotokoll innerhalb jedes der Elemente der Computervorrichtung durch Einführung eines EGIO-Kommunikationsprotokollstapels unterstützt, wobei der Stapel eine physische Schicht, eine Datenlinkschicht und eine Transaktionsschicht umfaßt.
  • Verweise in dieser Spezifikation auf „eine Ausführungsform" bedeuten, daß ein in Verbindung mit der Ausführungsform beschriebenes Merkmal, eine Struktur oder Eigenschaft in mindestens einer Ausführungsform der Erfindung enthalten ist. Somit beziehen sich solche Ausdrücke wie „in einer Ausführungsform" an verschiedenen Stellen in dieser Spezifikation nicht unbedingt in jedem Fall auf die gleiche Ausführungsform. Weiterhin können die jeweiligen Merkmale, Strukturen oder Eigenschaften in jeder geeigneten Weise oder in einer oder mehreren Ausführungsformen kombiniert werden.
  • Angesichts des Vorhergesagten und der folgenden Beschreibung wird ein Fachmann erkennen, daß ein oder mehrere der Elemente der vorliegenden Erfindung sehr gut in Hardware, in Software, in ein fortgepflanztes Signal oder eine Kombination derselben eingebettet werden können. Die Erfindung ist in den Ansprüchen 1 und 14 definiert.
  • TERMINOLOGIE
  • Bevor die Einzelheiten der innovativen EGIO-Zusammenschaltarchitektur, des Kommunikationsprotokolls und der damit verbundenen Verfahren besprochen werden, soll im folgenden das in der ausführlichen Beschreibung benutzte Vokabular definiert werden:
    • • Ankündigen: Im Zusammenhang mit der EGIO-Flußregelung bezieht sich dieser Ausdruck auf die Handlung eines Empfängers, der unter Einsatz einer Flußregelungs-Aktualisierungsnachricht des EGIO-Protokolls Information über seine verfügbaren Flußregelungskredite sendet;
    • • Abschließer: eine logische Vorrichtung, die von einer Anforderung adressiert wird;
    • • Abschließer-ID: eine Kombination aus einer oder mehreren Buskennungen (wie Nummer), Gerätekennungen und einer Funktionskennung eines Abschließers, die den Abschließer der Anforderung eindeutig identifiziert;
    • • Abschluß: ein Paket zum Terminieren oder teilweisen Terminieren einer Sequenz wird als Abschluß bezeichnet. Gemäß einer beispielhaften Implementierung entspricht ein Abschluß einer vorhergehenden Anforderung und beinhaltet in manchen Fällen Daten;
    • • Konfigurationsraum: einer von vier Adreßräumen innerhalb der EGIO-Architektur. Pakete mit einer Konfigurationsraumadresse dienen zur Konfiguration einer Vorrichtung;
    • • Komponente: eine physische Vorrichtung (das heißt, innerhalb eines einzelnen Pakets);
    • • Datenlink-Schicht: die Zwischenschicht der EGIO-Architektur, die zwischen der Transaktionsschicht (oben) und der physischen Schicht (unten) liegt;
    • • DLLP: Das Datenlinkschichtpaket ist ein auf der Datenlinkschicht erzeugtes und verbrauchtes Paket zur Unterstützung von Linkmanagementfunktionen, die auf der Datenlinkschicht durchgeführt werden;
    • • DOWNSTREAM: bezieht sich entweder auf die relative Position eines Elements oder auf den von der Host-Brücke ausgehenden Informationsfluß;
    • • Endpunkt: ein EGIO-Gerät mit einem Konfigurationsraumkopf vom Typ 00h;
    • • Flußregelung: ein Verfahren zum Übermitteln von Empfangspufferinformation von einem Empfänger an einen Sender, um den Überlauf des Puffers zu verhindern und zu gewährleisten, daß sich der Sender an die Ordnungsregeln hält;
    • • Flußregelungspaket (FCP): ein Transaktions-Flußregelungspaket (TLP) zum Senden von Flußregelungsinformation von einer Transaktionsschicht in einer Komponente an eine Transaktionsschicht in einer anderen Komponente;
    • • Funktion: ein unabhängiger Abschnitt eines Mehrfunktionsgeräts, das im Konfigurationsraum durch eine eindeutige Funktionskennung (zum Beispiel eine Funktionsnummer) identifiziert wird;
    • • Hierarchie: definiert die in der EGIO-Architektur implementierte I/O-Zusammenschalttopologie. Eine Hierarchie ist durch einen Root-Komplex gekennzeichnet, der der Link entspricht, die dem Zählgerät (zum Beispiel der Host-CPU) am nächsten liegt;
    • • Hierarchie-Domaine: eine EGIO-Hierarchie wird durch einen Root-Komplex in viele Fragmente aufgeteilt, die mehr als eine EGIO-Schnittstelle bereitstellen, wobei diese Fragmente als Hierarchie-Domaine bezeichnet werden;
    • • Host-Brücke: verbindet einen Host-CPU-Komplex mit einem Root-Komplex; die Host-Brücke kann den Root-Komplex bereitstellen;
    • • IO-Raum: einer von vier Adreßräumen der EGIO-Architektur;
    • • Spur: Ein Satz verschiedener Signalpaare der physischen Link – ein Paar zum Senden und ein Paar zum Empfangen. Eine by-N Link umfaßt N-Spuren;
    • • Link: ein Doppel-Simplex-Kommunikationspfad zwischen zwei Komponenten; die Sammlung von zwei Ports (ein Sende- und ein Empfangsport) und ihre verbindende Spur/Spuren;
    • • Logischer Bus: die logische Verbindung zwischen einer Reihe von Geräten, die die gleiche Busnummer im Konfigurationsraum aufweisen;
    • • Logisches Gerät: ein Element einer EGIO-Architektur, welches einer eindeutigen Gerätekennung im Konfigurationsraum entspricht;
    • • Speicherraum: einer von vier Speicherplätzen der EGIO-Architektur;
    • • Nachricht: ein Paket mit einem Nachrichtenraumtyp;
    • • Nachrichtenraum: einer von vier Speicherplätzen der EGIO-Architektur. Sonderzyklen, wie in PCI definiert, sind als Subsatz im Nachrichtenraum enthalten und stellen dementsprechend eine Schnittstelle mit Altsystem-Geräten bereit;
    • • Altsystem-Softwaremodelle: die Softwaremodelle, die zum Initialisieren, Entdecken, Konfigurieren und Benutzen eines Altsystem-Geräts benötigt werden (zum Beispiel ermöglicht die Aufnahme eines PCI-Softwaremodells in beispielsweise eine EGIO-zu-Altsystem-Brücke die Zusammenwirkung mit Altsystem-Geräten);
    • • Physische Schicht: die Schicht der EGIO-Architektur, die direkt mit dem Kommunikationsmedium zwischen den beiden Komponenten verbunden ist;
    • • Port: eine mit einer Komponente verknüpfte Schnittstelle zwischen dieser Komponente und einer EGIO-Link;
    • • Empfänger: die Komponente, die Paketinformation über eine Link empfängt, ist der Empfänger (manchmal als Ziel bezeichnet);
    • • Anforderung: ein zur Initiierung einer Sequenz benutztes Paket wird als Anforderung bezeichnet. Eine Anforderung enthält Betriebscode und in manchen Fällen Adreß- und Längeninformation, Daten oder andere Information;
    • • Anforderer: ein logisches Gerät, das als erstes eine Sequenz in die EGIO-Domaine einführt;
    • • Anforderer-ID: eine Kombination aus einer oder mehreren Buskennungen (wie Nummer), Gerätekennungen und einer Funktionskennung eines Anforderers, die den Anforderer eindeutig identifiziert. In den meisten Fällen leitet eine EGIO-Brücke oder ein EGIO- Schalter Anforderungen von einer an eine andere Schnittstelle, ohne die Anforderer-ID zu ändern. Eine von einem Bus außer einem EGIO-Bus ausgehende Brücke sollte typisch die Anforderer-ID speichern, um sie beim Erstellen eines Abschlusses für diese Anforderung zu benutzen;
    • • Root-Komplex: eine Entität, die eine Host-Brücke und einen oder mehrere Root-Ports enthält;
    • • Root-Port: Ein EGIO-Port in einem Root-Komplex, der einen Teil der EGIO-Zusammenschalthierarchie über eine zugehörige virtuelle PCI-PCI-Brücke abbildet;
    • • Sequenz: eine einzelne Anforderung und Null- oder mehr Abschlüsse, die mit der Ausführung einer einzelnen logischen Übertragung durch einen Anforderer verknüpft sind;
    • • Sequenz-ID: eine Kombination aus einer oder mehreren Anforderer-IDs und eine Markierung, wobei die Kombination Anfordungen und Abschlüsse, die Teil einer gemeinsamen Sequenz sind, eindeutig identifiziert;
    • • Gespaltene Transaktion: eine einzelne logische Übertragung, enthaltend eine anfängliche Transaktion (die gespaltene Anforderung), die das Ziel (den Abschließer oder die Brücke) mit einer gespaltenen Antwort terminiert, gefolgt von einer oder mehr Transaktionen (gespaltenen Abschlüssen), die vom Abschließer (oder der Brücke) initiiert werden, um die gelesenen Daten (falls ein Lesevorgang) oder eine Abschlußnachricht an den Anforderer zurückzusenden;
    • • Symbol: eine 10-Bit-Menge, die als Ergebnis der 8b/10b-Kodierung erzeugt wird;
    • • Symbolzeit: die Zeitspanne, die zum Plazieren eines Symbols auf eine Spur benötigt wird;
    • • Markierung: eine Nummer, die einer gegebenen Sequenz von einem Anforderer zugewiesen wird, um sie von anderen Sequenzen zu unterscheiden – Teil der Sequenz-ID;
    • • Transaktionsschichtpaket: TLP ist ein Paket, das von der Transaktionsschicht zur Weiterleitung einer Anforderung oder eines Abschlusses erzeugt wird;
    • • Transaktionsschicht: die Außenschicht (oberste) Schicht der EGIO-Architektur, die auf der Ebene der Transaktionen (zum Beispiel Lesen, Schreiben usw.) operiert;
    • • Transaktions-Descriptor: ein Element eines Paketkopfes, das zusätzlich zu Adresse, Länge und Typ die Eigenschaften einer Transaktion beschreibt.
  • Beispielhafte elektronische Vorrichtung und EGIO-Architektur
  • 1 zeigt ein Blockdiagramm der elektronischen Vorrichtung 100, die eine verbesserte allgemeine Eingabe/Ausgabe-(EGIO)-Zusammenschaltarchitektur, ein Protokoll und damit verbundene Verfahren gemäß einer beispielhaften erfindungsgemäßen Ausführungsform darstellt. Wie dargestellt, enthält die elektronische Vorrichtung 100 eine Anzahl elektronischer Elemente einschließlich eines oder mehrerer Prozessoren 102, eines Root-Komplexes (wie zum Beispiel eine Host-Brücke) 104, Schalter 108 und Endpunkte 110, die jeweils, wie dargestellt, gekoppelt sind. Entsprechend der Lehre der vorliegenden Erfindung sind mindestens der Root-Komplex 104, die Schalter 108 und die Endpunkte 110 mit einer oder mehreren Instanzen einer EGIO-Kommunikationsschnittstelle 106 versehen, um einen oder mehrere Anspekte von erfindungsgemäßen Ausführungsformen zu ermöglichen.
  • Wie dargestellt, ist jedes der Elemente 102, 104, 108 und 110 kommunikativ mit mindestens einem anderen Element über eine Kommunikationslink 112 gekoppelt, die einen oder mehrere EGIO-Kommunikationskanäle über die EGIO-Schnittstelle 106 unterstützt. Gemäß einer beispielhaften Implementierung werden die Betriebsparameter der EGIO-Zusammenschaltarchitektur während eines Initialisierungsereignisses der elektronischen Host-Vorrichtung oder nach dem dynamischen Anschluß eines peripheren Geräts an die elektronische Vorrichtung (zum Beispiel ein im Betrieb steckbares (Hot-Plug) Gerät) eingerichtet. Wie oben angegeben, dient die elektronische Vorrichtung 100 als Beispiel für eine große Vielfalt von traditionellen und nicht-traditionellen Computersystemen, Servern, Netzwerkschaltern, Netzwerkroutern, drahtlosen Kommunikationsteilnehmereinheiten, drahtlosen Kommunikationselementen der Telefonieinfrastruktur, PDAs (persönlichen Digitalassistenten), Set-Top-Boxen oder sonstigen elektrischen Vorrichtungen, die von den Kommunikationsressourcen profitieren würden, die durch die Integration mindestens eines Subsatzes der EGIO-Zusammenschaltarchitektur, des Kommunikationsprotokolls oder der hier beschriebenen zugehörigen Verfahren eingeführt werden.
  • Gemäß des illustrativen Beispiels in 1 ist die elektronische Vorrichtung 100 mit einem oder mehreren Prozessoren 102 ausgerüstet. In diesem Beispiel steuern die Prozessoren 102 einen oder mehrere Aspekte der funktionalen Fähigkeit der elektronischen Vorrichtung 100. Hierbei sind der oder die Prozessoren 102 beispielhaft für eine breite Vielfalt von Steuerlogik, wie einen oder mehrere Mikroprozessoren, ein programmierbares Logikgerät (PLD), eine programmierbare Logikanordnung (PLA), einen anwendungsspezifischen Schaltkreis (ASIC), einen Mikrocontroller und dergleichen, ohne jedoch darauf beschränkt zu sein.
  • Wie oben erwähnt, stellt der Root-Komplex 104 eine EGIO-Kommunikationsstelle zwischen dem Prozessor 102 und/oder einem Prozessor-/Speicher-Komplex und einem oder mehreren anderen Elementen 108, 110 der EGIO-Architektur der elektronischen Vorrichtung bereit. In diesem Beispiel bezieht sich der Root-Komplex 104 auf eine logische Entität einer EGIO-Hierarchie, die in einem Hostcontroller, einer Speicher-Controller-Nabe, einer IO-Controller-Nabe, einer beliebigen Kombination der obigen oder einer Kombination aus Chipset-/CPU-Elementen am nächsten ist. In dieser Hinsicht kann der Root-Komplex 104, obwohl er in 1 als eine einzelne Einheit dargestellt ist, sehr gut als eine einzige logische Entität verstanden werden, die viele physische Komponenten aufweisen kann.
  • Gemäß des illustrativen Beispiels in 1 ist der Root-Komplex 104 mit einer oder mehreren EGIO-Schnittstellen 106 ausgerüstet, um die Kommunikation mit anderen peripheren Geräten, zum Beispiel Schalter 108, Endpunkten 110 und, obwohl nicht besonders ausführlich dargestellt, mit Altsystembrücken 114 oder 116 zu ermöglichen. Gemäß einer beispielhaften Implementierung stellt jede EGIO-Schnittstelle 106 eine andere EGIO-Hierarchie-Domaine dar. Hierbei bezeichnet die dargestellte Implementierung von 1 einen Root-Komplex 104 mit drei (3) Hierarchie-Domainen. Es wird darauf hingewiesen, daß obwohl gemäß der Darstellung mehrere separate EGIO-Schnittstellen 106 enthalten sind, auch andere Implemeutierungen möglich sind, in denen eine einzelne Schnittstelle 106 mit mehreren Ports ausgerüstet ist, um die Kommunikation mit mehreren Geräten zu ermöglichen.
  • Gemäß einer beispielhaften Implementierung trägt der Root-Komplex 104 die Verantwortung zur Identifizierung der Kommunikationsanforderungen (wie virtuelle Kanalanforderungen, isochrone Kanalanforderungen, usw.) für jedes der Elemente der EGIO-Architektur. Gemäß einer beispielhaften Implementierung werden diese Kommunikationanforderungen während eines Initialisierungsereignisses der Host-Vorrichtung 100 oder eines seiner Elemente (zum Beispiel in einem Steckereignis während des Betriebs (Hot-Plug) an den Root-Komplex 104 weitergeleitet. In einer anderen Ausführungsform fragt der Root-Komplex 104 diese Elemente ab, im die Kommunikationsanforderungen zu identifizieren. Nachdem diese Kommunikationsparameter identifiziert sind, richtet der Root-Komplex 104, zum Beispiel auf dem Verhandlungsweg, die Bedingungen der EGIO-Kommunikationseinrichtungen für jedes Element der Architektur ein.
  • In der hier offenbarten EGIO-Architektur koppeln Schalter selektiv Endpunkte innerhalb der und zwischen den EGIO-Hierarchien und/oder Domainen. Gemäß einer beispielhaften Implementierung weist ein EGIO-Schalter 108 mindestens einen Upstream-Port (das heißt, in Richtung des Root-Komplexes 104) und mindestens einen Downstream-Port auf. Gemäß einer Implementierung identifiziert ein Schalter 108 einen Port (das heißt einen Port einer Schnittstelle oder die Schnittstelle 106 selbst), der der Host-Brücke am nächsten liegt, als Upstream-Port, während alle anderen Ports Downstream-Ports sind. Gemäß einer Implementierung erscheinen die Schalter 108 gegenüber der Konfigurationssoftware (wie Altsystem-Konfigurationssoftware) als PCI-zu-PCI-Brücke, die die PCI-Brückenmechanismen für Routing-Transaktionen benutzen.
  • Im Zusammenhang mit Schaltern 108 werden Peer-zu-Peer-Transaktionen als Transaktionen definiert, für die sowohl der Empfangsport als auch der Sendeport Downstream-Ports sind. Gemäß einer Implementierung unterstützen die Schalter 108 das Routing aller möglichen Transaktionsschichtpakete (TLP) außer denen, die mit einer verriegelten Transaktionssequenz von einem beliebigen Port zu einem beliebigen anderen Port verknüpft sind. Hierbei sollten alle ausgestrahlten Nachrichten typisch vom Empfangsport zu allen anderen Ports auf dem Schalter 108 geroutet werden. Ein Transaktionsschichtpaket, welches nicht zu einem Port geführt werden kann, sollte typisch durch Schalter 108 als nicht-unterstütztes TLP terminiert werden. Die Schalter 108 modifizieren bei der Übertragung vom Empfangsport zum Sendeport typisch keine Transaktionsschichtpakete (TLP), es sei denn, die Modifikation ist erforderlich, um einer anderen Protokollanforderung für den Sendeport (zum Beispiel, wenn der Sendeport an eine Altsystembrücke 114, 116 gekoppelt ist) zu entsprechen.
  • Es versteht sich, daß die Schalter 108 im Namen anderer Geräte handeln und in dieser Hinsicht keine Vorabkenntnis der Verkehrstypen und Verkehrsmuster haben. Gemäß einer Implementierung, die im folgenden ausführlich besprochen werden soll, werden die Flußregelungs- und Datenintegritätsaspekte der vorliegenden Erfindung auf pro-Link-Basis, nicht auf Ende-zu-Ende-Basis implementiert. Somit sind gemäß einer solchen Implementierung die Schalter 108 an Protokollen beteiligt, die für Flußregelung und Datenintegrität eingesetzt werden. Zur Teilnahme an der Flußregelung unterhält der Schalter 108 eine separate Flußregelung für jeden der Ports, um die Performance-Eigenschaften des Schalters 108 zu verbessern. Desgleichen unterstützt der Schalter 108 Datenintegritätsprozesse auf pro-Link-Basis, indem er jedes am Schalter ankommende TLP mittels des unten ausführlich beschriebenen TLP-Fehlersuchmechanismus prüft. Gemäß einer Implementierung ist den Downstream-Ports eines Schalters 108 erlaubt, neue EGIO-Hierarchie-Domainen zu bilden.
  • Immer noch unter Bezugnahme auf 1 wird ein Endpunkt 110 als Gerät mit einem Konfigurationsraumkopf vom Typ 00hex (00h) definiert. Endpunktgeräte 110 können entweder Anforderer oder Abschließer einer semantischen EGIO-Transaktion sein, entweder im eigenen Namen oder im Namen eines distinktiven nicht-EGIO-Geräts. Zu nicht einschränkenden Beispielen für solche Endpunkte 110 gehören EGIO entsprechende Grafikgeräte, EGIO entsprechende Speichercontroller und/oder Geräte, die eine Verbindung zwischen EGIO und einer anderen Schnittstelle, wie einem universalen seriellen Bus (USB), dem Ethernet und dergleichen, implementieren. Im Gegensatz zu einer im folgenden ausführlich beschriebenen Altsystembrücke 114, 116 ist es durchaus möglich, daß ein als Schnittstelle für Geräte, die nicht EGIO entsprechen, fungierender Endpunkt 110 nicht die volle Softwareunterstützung für solche Geräte bereitstellt. Während Geräte, die einen Host-Prozessorkomplex 102 mit der EGIO-Architektur verbinden, als Root-Komplex 104 betrachtet werden, können sie durchaus vom gleichen Gerätetyp wie andere inrerhalb der EGIO-Architektur untergebrachte Endpunkte 110 sein, und unterscheiden sich nur durch ihren Standort mit Bezug auf den Prozessorkomplex 102.
  • Gemäß der Lehre der vorliegenden Erfindung können Endpunkte 110 in eine oder mehrere von drei Kategorien: (1) Altsystem- und EGIO entsprechende Endpunkte, (2) Altsystemendpunkte und (3) EGIO entsprechende Endpunkte, gegliedert werden, die jeweils andere Betriebsregeln innerhalb der EGIO-Architektur haben.
  • Wie oben angegeben, unterscheiden sich EGIO entsprechende Endpunkte 110 von Altsystem-Endpunkten (wie 118, 120) dadurch, daß ein EGIO-Endpunkt 110 einen Konfigurationsraumkopf vom Typ 00h aufweist. Jeder dieser Endpunkte (110, 118 und 120) unterstützt Konfigurationsanforderungen als Abschließer. Diese Endpunkte können Konfigurationsanforderungen erzeugen und können entweder als Altsystemendpunkt oder als EGIO entsprechender Endpunkt eingestuft werden, aber möglicherweise mit der Voraussetzung, daß dabei die zusätzlichen Regeln eingehalten werden.
  • Altsystem-Endpunkte (wie 118, 120) können IO-Anforderungen als Abschließer unterstützen und IO-Anforderungen erzeugen. Altsystem-Endpunkte (118, 120) können Verriegelungssemantiken, beispielsweise in Übereinstimmung mit konventionellem PCI-Betrieb, als Abschließer erzeugen, wenn dies nach ihren Altsystemsoftware-Unterstützungsanforderungen erforderlich ist. Altsystem-Endpunkte (118, 120) geben typisch keine verriegelte Anforderung aus.
  • EGIO entsprechende Endpunkte 110 als Abschließer unterstützen typisch keine IO-Anforderungen und erzeugen keine IO-Anforderungen. EGIO-Endpunkte 110 als Abschließer unterstützen keine verriegelten Anforderungen und erzeugen keine verriegelten Anforderungen als Anforderer.
  • EGIO-zu-Altsystembrücken 114, 116 sind spezialisiserte Endpunkte 110 mit weitreichender, zum Beispiel voller Softwareunterstützung für die Altsystembrücken (118, 120), die eine Schnittstelle mit der EGIO-Architektur aufweisen. Hierbei weist eine EGIO-Altsystembrücke 114, 116 typisch einen (oder mehr als einen) Upstream-Port mit mehreren (oder nur einem) Downstream-Ports auf. Verriegelte Anforderungen werden gemäß des Altsystemsoftware-Modells (wie des PCI-Softwaremodells) unterstützt. Ein Upstream-Port einer EGIO-Altsystembrücke 114, 116 sollte Flußregelung auf pro-Link-Basis unterstützen und die Flußregelungs- und Datenintegritätsregeln der EGIO-Architektur einhalten, wie im folgenden ausführlich erklärt.
  • In diesem Beispiel ist die Kommunikationlink 112 beispielhaft für eine große Vielfalt von Kommunikationsmedien einschließlich, aber nicht begrenzt auf, Kupferleitungen, optische Leitungen, drahtlose Kommunikationskänäle, eine infrarote Kommunikationslink und dergleichen. Gemäß einer beispielhaften Implementierung besteht die EGIO-Link 112 aus einem Paar verschiedener serieller Leitungen, je einem Paar zur Unterstützung der Sende- und Empfangskommunikationen, um Vollduplex-Kommunikationsfähigkeit zu unterstützen. Gemäß einer Implementierung bietet die Link eine skalierbare serielle Taktfrequenz mit einer anfänglichen (grundlegenden) Betriebsfrequenz von 2,5 GHz. Die Schnittstellenbreite pro Richtung kann maßstäblich ab x1. x2. x4. x8. x12. x16. x32 physischen Spuren geändert werden. Wie oben erklärt und im folgenden ausführlicher beschrieben, kam die EGIO-Link 112 durchaus viele virtuelle Kanäle zwischen Geräten unterstützen, so daß Unterstützung für ununterbrochene Kommunikation des isochronen Verkehrs zwischen diesen Geräten auf einem oder mehrere virtuellen Kanälen, wie einem Kanal für Audio und einem Kanal für Video, gewährleistet ist.
  • Beispiel einer EGIO-Schnittstellenarchitektur
  • Gemäß der veranschaulichten beispielhaften Implementierung von 1 kann die EGIO-Schnittstelle 106 als Kommunikationsprotokollstapel dargestellt werden, umfassend eine Transaktionsschicht 202, eine Datenlinkschicht 204 und eine physische Schicht 208. Gemäß der Darstellung umfaßt die physische Linkschicht-Schnittstelle einen logischen Teilblock 210 und einen physischen Teilblock, die jeweils im folgenden näher erklärt werden.
  • Transaktionsschicht 202
  • Gemäß der Lehre der vorliegenden Erfindung stellt die Transaktionsschicht 202 eine Schnittstelle zwischen der EGIO-Architektur und einem Gerätekern bereit. Hierbei ist die Transaktionsschicht 202 in erster Linie verantwortlich für die Zusammenstellung und Auflösung von Paketen (wie Transaktionsschichtpakete oder TLPs) für ein oder mehrere logische Geräte innerhalb eines Hostgeräts (oder Agenten).
  • Adreßräume, Transaktionstypen und Benutzung
  • Transaktionen bilden die Basis für die Übertragung von Information zwischen einem Initiatoragenten und einem Zielagenten. Gemäß einer beispielhaften Ausführungsform sind vier Adreßräume innerhalb der EGIO-Architektur definiert, wie zum Beispiel ein Konfigurationsadreßraum, ein Speicheradreßraum, ein Eingabe/Ausgabeadreßraum und ein Nachrichtenadreßraum (siehe zum Beispiel 7, im folgenden ausführlicher erklärt).
  • Zu Speicherraumtransaktionen (706) gehören eine oder mehrere Leseanforderungen und Schreibanforderungen, um Daten zu/aus einem Speicherabbildungsort zu übertragen. Speicherraumtransaktionen können zwei verschiedene Adreßformate benutzen, beispielsweise ein kurzes Adreßformat (zum Beispiel 32-Bit-Adresse) oder ein langes Adreßformat (zum Beispiel 64-Bit-Länge). Gemäß einer beispielhaften Ausführungsform stellt die EGIO-Architektur konventionelle Lese- Änderungs- und Schreibsequenzen mittels Verriegelunasprotokollsemantiken bereit (zum Beispiel könnte ein Agent den Zugriff auf geänderten Speicherraum verriegeln).
  • Insbesondere kann Unterstützung für Downstream-Verriegelung gemäß bestimmten Geräteregeln erlaubt sein (Brücke, Schalter, Endpunkt, Altsystembrücke). Wie oben erwähnt, werden diese Verriegelungssemantiken zugunsten von Altsystemgeräten unterstützt.
  • IO-Raumtransaktionen (704) dienen zum Zugriff auf Eingabe/Ausgabe-Abbildungsspeicherregister innerhalb eines IO-Adreßraums (wie eines 16-Bit-IO-Adreßraums). Manche Prozessoren 102, wie zum Beispiel Intel-Architektur-Prozessoren und andere, enthalten n IO-Raumdefinition durch den Anweisungssatz des Prozessors. Dementsprechend enthalten IO-Raumtransaktionen Leseanforderungen und Schreibanforderungen, um Daten von/zu einem IO-Abbildungsort zu übertragen.
  • Konfigurationsraum-Transaktionen (702) dienen zum Zugriff auf Konfigurationsraum der EGIO-Geräte. Zu Transaktionen, die zum Konfigurationsraum gehen, gehören Leseanforderungen und Schreibanforderungen. Insofern als konventionelle Prozessoren typisch keinen nativen Konfigurationsraum enthalten, wird dieser Raum über einen Mechanismus abgebildet, der softwarekompatibel mit Zugriffsmechanismen für konventionellen PCI-Konfigurationsraum ist (wie der CFC/CFC8-basierte PCI-Konfigurationsmechanismus Nr. 1). Man kann aber auch einen Speicher-Alias-Mechanismus zum Zugriff auf Konfigurationsraum verwenden.
  • Nachrichtenraum-Transaktionen (708) (oder einfach Nachrichten) werden zur Unterstützung von Inbandkommunikation zwischen EGIO-Agenten über Schnittstelle 106 definiert. Konventionelle Prozessoren enthalten keine Unterstützung für nativen Nachrichtenraum, dieser wird daher über EGIO-Agenten innerhalb der EGIO-Schnitsstelle 106 aktiviert. Gemäß einer beispielhaften Implementierung werden traditionelle „Seitenband"-Signale, wie Interrupts und Energiemanagementanforderungen, als Nachrichten zur Reduzierung der zur Unterstützung solcher Altsystemsignale erforderlichen Stiftanzahl implementiert. Manche Prozessoren und der PCI-Bus enthalten das Konzept der „speziellen Zyklen", die auch in den Nachrichten innerhalb der EGIO-Schnittstelle 106 abgebildet werden. Gemäß einer Ausführungsform werden Nachrichten allgemein in zwei Kategorien gegliedert: Standardnachrichten und lieferanten-definierte Nachrichten.
  • Gemäß einer veranschaulichten beispielhaften Ausführungsform versteht man unter Standardnachrichten eine Allzweck-Nachrichtengruppe und eine Systemmanagement- Nachrichtengruppe. Allzweck-Nachrichten können einzelne Zielnachrichten oder Broadcast/Multicast-Nachrichten sein. Die Systemmanagement-Nachrichtengruppe kann eine oder mehrere Interrupt-Steuernachrichten, Energiemanagementnachrichten, Ordnungssteuerprimitive und Fehlersignale beinhalten, wofür unten Beispiele angeführt werden.
  • Gemäß einer beispielhaften Implementierung beinhalten die Allzweck-Nachrichten Nachrichten zur Unterstützung von verriegelten Transaktionen. Gemäß dieser beispielhaften Implementierung wird eine UNLOCK-Nachricht (Entriegelungsnachricht) eingeführt, wobei Schalter (wie 108) typisch die UNLOCK-Nachricht über jeden Port weiterleiten sollten, der an einer verriegelten Transaktion beteiligt sein kann. Endpunktgeräte (wie 110, 118, 120), die eine UNLOCK-Nachricht empfangen, obwohl sie nicht verriegelt sind, ignorieren diese Nachricht. Andernfalls entriegeln sich verriegelte Geräte bei Empfang der UNLOCK-Nachricht.
  • Gemäß einer beispielhaften Implementierung beinhaltet die Systemmanagement-Nachrichtengruppe spezielle Nachrichten zum Ordnen und/oder zur Synchronisierung. Eine solche Nachricht ist eine FENCE-Nachricht, die strikte Ordnungsregeln für Transaktionen einrichtet, die von empfangenden Elementen der EGIO-Architektur erzeugt werden. Gemäß einer Implementierung reagiert auf solche FENCE-Machrichten nur ein ausgewählter Subsatz von Netzwerkelementen, wie Endpunkte. Zusätzlich zu dem Vorhergesagten werden Nachrichten, die einen korrigierbaren Fehler, einen nicht korrigierbaren Fehler und fatale Fehler anzeigen, hier vorweggenommen, zum Beispiel durch den Einsatz von „Tailer"-Fehlerweiterleitung, wie unten besprochen.
  • Gemäß eines Aspekts der vorliegenden Erfindung stellt, wie oben erwähnt, die Systemmanagement-Nachrichtengruppe das Melden von Interrupts mittels Inbandnachrichten bereit. Gemäß einer Implementierung wird das Nachrichtenpaar ASSERT_INTx/DEASSERT_INTx eingeführt, wobei die Ausgabe einer Assert-Interrupt-Nachricht über die Hostbrücke 104 an den Prozessorkomplex gesendet wird. Gemäß einer veranschaulichten beispielhaften Implementierung spiegeln die Benutzungsregeln für das Nachrichtenpaar ASSERT_INTx/DEASSERT_INTx die PCI INTx# Signale wider, die in der oben erwähnten PCI-Spezifikation zu finden sind. Von jedem Gerät sollte es tpyisch für jede Übertragung von ASSERT_INTx eine entsprechende Übertragung von DEASSERT_INTx geben. Für ein bestimmtes ,x' (A, B, C oder D) sollte typisch nur eine Übertragung von ASSERT_INTx erfolgen, die einer Übertragung von DEASSERT_INTx vorausgeht. Schalter sollten typisch ASSERT_INTx/DEASSERT_INTx Nachrichten an den Root-Komplex 104 leiten, wobei der Root-Komplex typisch ASSERT_INTx/DEASSERT_INTx Nachrichten verfolgen sollte, um virtuelle Interrupt-Signale zu erzeugen und diese Signale an System-Interrupt-Ressourcen weiterzuleiten.
  • Neben den Allzweck- und Systemmanagement-Nachrichtengruppen richtet die EGIO-Architektur ein Standardrahmenwerk ein, innerhalb dessen Lieferanten der Kernlogik (zum Beispiel Chipset) ihre eigenen lieferanten-definierten Nachrichten definieren können, die an die spezifischen Betriebsanforderungen ihrer Plattformen angepaßt sind. Dieses Rahmenwerk wird über ein gemeinsames Nachrichtenkopfzeilenformat eingerichtet, in dem Kodierungen für lieferantendefinierte Nachrichten als ,reserviert' definiert werden.
  • Transaktions-Descriptor
  • Ein Transaktions-Descriptor ist ein Mechanismus zum Fördern von Information vom Ursprungspunkt zum Servicepunkt und wieder zurück. Er stellt ein umfassendes Mittel zur Bereitstellung einer generischen Zusammenschaltlösung bereit, die neu auftauchende Anwendungstypen unterstützen kann. In dieser Hinsicht unterstützt der Transaktions-Descriptor das Identifizieren von Transaktionen im System, das Ändern der Reihenfolge (Ordnen) von Standardtransaktionen und das Verknüpfen von Transaktionen mit virtuellen Kanälen mittels des virtuellen Kanal-ID-Mechanismus. In 3 ist ein Transaktions-Descriptor grafisch veranschaulicht.
  • Mit Bezug auf 3 ist ein grafisches Bild eines Datagramms mit einem beispielhaften Transaktions-Descriptor gemäß der Lehre der vorliegenden Erfindung dargestellt. Gemäß der Lehre der vorliegenden Erfindung enthält der Transaktions-Descriptor 300 ein globales ID-Feld 302, ein Attributfeld 306 und ein virtuelles Kanal-ID-Feld 308. Gemäß der dargestellten beispielhaften Implementierung umfaßt das globale ID-Feld 302 ein Lokaltransaktions-ID-Feld 308 und ein Quellen-ID-Feld 310.
  • Globale Transaktionskennung 302
  • In diesem Beispiel ist die globale Transaktionskennung eindeutig für alle ausstehenden Anforderungen. Gemäß der dargestellten beispielhaften Implementierung von 3 besteht die globale Transaktionskennung 302 aus zwei Teilfeldern: dem Lokaltransaktions-ID-Feld 308 und dem Quellen-ID-Feld 310. Gemäß einer Implementierung ist das Lokaltransaktions-ID-Feld 308 ein acht-Bit-Feld, das von jedem Anforderer erzeugt wird, und es ist eindeutig für alle ausstehenden Anforderungen, die einen Abschluß für diesen Anforderer benötigen. Die Quellenkennung identifiziert eindeutig den EGIO-Agenten innerhalb der EGIO-Hierarchie. Demgemäß stellt das Lokaltransaktions-ID-Feld 308 zusammen mit der Quellenkennung die globale Identifikation einer Transaktion innerhalb einer Hierarchie-Domaine bereit.
  • Gemäß einer Implementierung erlaubt die Lokaltransaktionskennung 308 das Handhaben von Anforderungen/Abschlüssen aus einer einzelnen Quelle von Anforderungen außerhalb der Reihenfolge (vorbehaltlich der Ordnungsregeln, die unten ausführlicher beschrieben werden). Zum Beispiel kann eine Quelle von Leseanforderungen Lesevorgang A1 und A2 erzeugen. Der Zielagent, der diese Leseanforderungen bearbeitet, kann als erstes einen Abschluß für die Transaktionskennung von Anforderung A2 und als zweites einen Abschluß für A1 zurückgeben. Innerhalb des Abschlußpaketkopfes identifiziert die Lokaltransaktionskennungsinformation, welche Transaktion abgeschlossen wird. Ein solcher Mechanismus ist besonders wichtig für Vorrichtungen, die verteilte Speichersysteme verwenden, da er die Handhabung von Leseanforderungen auf effizientere Weise gestattet. Es wird darauf hingewiesena, daß bei der Unterstützung solcher nicht folgerichtigen Abschlüsse davon ausgegangen wird, daß Geräte, die Leseanforderungen ausgeben, vorab sicherstellen, daß Pufferraum für den Abschluß zugewiesen wird. Wie oben erwähnt, insofern als EGIO-Schalter 108 keine Endpunkte sind (das heißt, nur Abschlußanforderungen an entsprechende Endpunkte weiterleiten), braucht kein Pufferraum reserviert zu werden.
  • Eine einzelne Leseanforderung kann zu mehreren Abschlüssen führen. Abschlüsse, die zu einer einzelnen Leseanforderung gehören, können außerhalb der Reihenfolge mit Bezug zueinander zurückgegeben werden. Dies wird dadurch unterstützt, daß der Adressenversatz der ursprünglichen Anforderung, die einem teilweisen Abschluß innerhalb des Kopfes eines Abschlußpakets entspricht (zum Beispiel Abschlußkopf), bereitgestellt wird.
  • Gemäß einer beispielhaften Implementierung enthält das Quellen-ID-Feld 310 einen 16-Bit-Wert, der eindeutig für jedes logische EGIO-Gerät ist. Es wird darauf hingewiesen, daß ein einzelnes EGIO-Gerät mehrere logische Geräte enthalten kann. Der Quellen-ID-Wert wird während der Systemkonfiguration in einer Weise zugewiesen, die transparent für den Standard-PCI-Buszählmechanismus ist. EGIO-Geräte richten intern und autonom einen Quellen-ID-Wert ein, indem sie zum Beispiel Busnummerinformation, die während der anfänglichen Konfigurationszugriffe auf diese Geräte verfügbar ist, zusammen mit intern verfügbarer Information einsetzen, die zum Beispiel eine Gerätenummer und eine Stromnummer angibt. Gemäß einer Implementierung wird diese Busnummerinformation während der EGIO-Konfigurationszyklen mit Hilfe eines Mechanismus erzeugt, der dem zur PCI-Konfiguration benutzten Mechanismus gleicht. Gemäß einer Implementierung wird die Busnummer von einem PCI-Initialisierungsmechanismus zugewiesen und von jedem Gerät erfaßt. Im Falle von im Betrieb steckbaren und im Betrieb austauschbaren Geräten müssen diese Geräte diese Busnummerinformation nach jedem Konfigurationszykluszugriff neu erfassen, um die Transparenz gegenüber den Softwarestapeln des im Betrieb steckbaren Controllers (zum Beispiel Standard-Controller (SHPC)) zu ermöglichen.
  • Gemäß einer Implementierung der EGIO-Architektur kann eine physische Komponente ein oder mehrere logische Geräte (oder Agenten) enthalten. Jedes logische Gerät ist darauf eingerichtet, auf Konfigurationszyklen zu antworten, die an seine eigene Gerätenummer gerichtet sind, das heißt, die Notation der Gerätenummer ist in das logische Gerät eingebettet. Gemäß einer Implementierung sind sechzehn logische Geräte in einer einzigen physischen Komponente erlaubt. Jedes dieser logischen Geräte kann eine oder mehrere Streaming Engines enthalten, zum Beispiel maximal sechzehn. Dementsprechend kann eine einzelne physische Komponente bis zu 256 Streaming Engines enthalten.
  • Mit verschiedenen Quellenkennungen markierte Transaktionen gehören zu verschiedenen logischen EGIO-Eingabe/Ausgabe-(IO)-Quellen und können deshalb, vom Ordnungsgesichtspunkt aus betrachtet, vollständig unabhängig von einander gehandhabt werden. Im Falle von Peer-zu-Peer-Transaktionen zwischen drei Parteien kann eine Fence-Ordnungssteuerprimitive verwendet werden, um gegebenenfalls das Ordnen zu erzwingen.
  • In diesem Beispiel hält sich das globale Transaktion-ID-Feld 302 des Transaktions-Descriptors 300 an mindestens einen Subsatz der folgenden Regeln:
    • (a) Jede Abschluß-benötigt-Anforderung wird mit einer globalen Transaktions-ID markiert (GTID);
    • (b) Allen von einem Agenten initiierten ausstehenden Abschluß-benötigt-Anforderungen sollte typisch eine eindeutige GTID zugewiesen werden;
    • (c) Abschluß-nicht-benötigt-Anforderungen benutzen das Lokaltransaktions-ID-Feld 308 der GTID nicht, und das Lokaltransaktions-ID-Feld 308 wird als ,Reserviert' betrachtet;
    • (d) Das Ziel modifiziert keineswegs die Anforderungs-GTID, sondern wiederholt sie lediglich als Echo in der Kopfzeile eines Abschlußpakets für alle mit der Anforderung verknüpften Abschlüsse, in denen der Initiator die GTID zum Decken der Abschlüsse mit der ursprünglichen Anforderung benutzte.
  • Attributfeld 304
  • In diesem Beispiel gibt das Attributfeld 304 Eigenschaften und Beziehungen der Transaktion an. Das Attributfeld 304 wird benutzt, um zusätzliche Information bereitzustellen, die das Ändern der Standardhandhabung von Transaktionen gestattet. Diese Änderungen können für verschiedene Aspekte der Handhabung der Transaktionen innerhalb des Systems selbst gelten, wie zum Beispiel Ordnen, Kohärenzmanagement (zum Beispiel Snoop-Attribute) und Priorität. Ein beispielhaftes Format für das Attributfeld 304 ist durch die Teilfelder 312-318 dargestellt.
  • Wie dargestellt, enthält das Attributfeld 304 ein Prioritätsteilfeld 312. Das Prioritätsteilfeld kann von einem Initiator geändert werden, um eine Priorität für die Transaktion zu setzen. In einer beispielhaften Implementierung kann zum Beispiel das Prioritätsfeld 312 Klasse oder Qualität der Serviceeigenschaften einer Transaktion oder eines Agenten verkörpern, wodurch die Verarbeitung anderer Systemelemente beeinflußt wird.
  • Das Attributfeld ,Reserviert' 314 ist für zukünftigen oder lieferanten-definierten Gebrauch reserviert. Mögliche Benutzungsmodelle, die Prioritäts- oder Sicherheitsattribute benutzen, können über das Attributfeld ,Reserviert' implementiert werden.
  • Das Attributfeld ,Ordnen' 316 ist für wahlweise Information betreffend den Ordnungstyp gedacht, der zum Ändern der Standardordnungsregeln innerhalb der gleichen Ordnungsebene dienen kann (wobei die Ordnungsebene den Verkehr umfaßt, der vom Hostprozessor (102) und vom IO-Gerät mit seiner entsprechenden Quellenkennung initiiert wird). Gemäß einer beispielhaften Implementierung bedeutet ein Ordnungsattribut von „0", daß Standard-Ordnungsregeln gelten, und ein Ordnungsattribut von „1", daß die Regeln gelockert sind, wobei Schreibvorgänge in der gleichen Richtung einander überholen können. Geräte benutzen gelockerte Ordnungssemantiken hauptsächlich zum Verschieben von Daten und Transaktionen mit Standardordnung für Lese/Schreib-Statusinformation.
  • Das Attributfeld ,Snoop' 318 enthält wahlweise Information über den Type des Cache-Kohärenz-Managements, welches Standard-Cache-Kohärenz-Managementregeln innerhalb der gleichen Ordnungsebene ändern kann (wobei die Ordnungsebene den Verkehr umfaßt, der vom Hostprozessor 102 und vom IO-Gerät mit seiner entsprechenden Quellenkennung initiiert wird). In einer beispielhaften Implementierung entspricht ein Wert von „0" im Snoop-Attributfeld 318 einem Standard-Cache-Kohärenz-Managementschema, wobei Transaktionen „durchsucht (snooped)" werden, um Cache-Kohärenz auf Hardwarebeene zu erzwingen. Andererseits suspendiert ein Wert von „1" im Snoop-Attributfeld 318 die Standard-Cache-Kohärenz-Managementschemen, und Transaktionen werden nicht durchsucht. Die Daten, auf die zugegriffen wird, sind vielmehr entweder nicht zwischenspeicherbar, oder ihre Kohärenz wird von Software gemanagt.
  • Virtuelles Kanal-ID-Feld 306
  • In diesem Beispiel identifiziert das virtuelle Kanal-ID-Feld 306 einen unabhängigen virtuellen Kanal, der der Transaktion zugewiesen ist. Gemäß einer Ausführungsform ist die virtuelle Kanalkennung (VCID) ein vier-Bit-Feld, welches die Identifizierung von bis zu sechzehn virtuellen Kanälen (VCs) auf pro-Transaktions-Basis gestattet. Beispiele von VCID-Definitionen sind in Tabelle 1 unten angeführt:
    Figure 00210001
    Figure 00220001
    Tabelle 1: Virtuelle Kanal-ID-Kodierung
  • Virtuelle Kanäle
  • Gemäß eines Aspekts der vorliegenden Erfindung unterstützt die Transaktionsschicht 202 der EGIO-Schnittstelle 106 das Einrichten und Benutzen von virtuellen Kanälen innerhalb der Bandbreite der EGIO-Kommunikationslink 112. Der oben erwähnte virtuelle Kanalaspekt (VC) der vorliegenden Erfindung dient zum Definieren separater logischer Kommunikationsschnittstellen innerhalb einer einzelnen physischen EGIO-Link 112, basierend auf der benötigten Unabhängigkeit des Inhalts, der auf dem Kanal zu führen ist. In dieser Hinsicht können virtuelle Kanäle aufgrund einer oder mehrerer Eigenschaften, wie Bandbreitenerfordernisse, Serviceklasse, Servicetyp (zum Beispiel Systemservicekanal), usw. eingerichtet werden.
  • Die Kombination von virtuellen Kanalkennungen und Verkehrsklassen- (oder Transaktionsklassen-) Kennungen dient dem Zweck, Unterstützung für unterschiedliche Dienste und Servicequalität (QoS) für bestimmte Anwendungsklassen bereitzustellen. In diesem Beispiel ist eine Verkehrsklasse (oder Transaktionsklasse) ein Label eines Transaktionsschichtpakets, welches unverändert von Ende zu Ende durch die EGIO-Struktur hindurch übertragen wird. An jedem Servicepunkt (zum Schalter, Root-Komplex, usw.) werden die Verkehrsklassen-Labels vom Servicepunkt dazu benutzt, die entsprechenden Bearbeitungsverfahren anzuwenden. In dieser Hinsicht werden separate VCs zur Abbildung von Verkehr benutzt, der von verschiedenen Handhabungsverfahren und Bearbeitungsprioritäten profitieren würde. Zum Beispiel kann Verkehr, der eine deterministische Servicequalität benötigt, im Sinne der Zusicherung einer Datenmenge von X zur Übertragung innerhalb einer Zeitperiode von T auf einem isochronen (oder zeitkoordinierten) virtuellen Kanal abgebildet werden. Auf verschiedenen virtuellen Kanälen abgebildete Transaktionen weisen vielleicht keine Ordnungserfordernisse mit Bezug zu einander auf. Das heißt, virtuelle Kanäle funktionieren als separate logische Schnittstellen gemäß verschiedener Flußregelungsregeln und Attribute.
  • Gemäß einer beispielhaften Implementierung beinhaltet jeder EGIO-Kommunikationsport (Eingabe- oder Ausgabeport) eines EGIO entsprechenden Elements eine Portfähigkeits-Datenstruktur (nicht speziell dargestellt). Information, betreffend die Fähigkeit des Ports, wie (a) die Anzahl der vom Port unterstützten virtuellen Kanäle, (b) die jedem der virtuellen Kanälen zugeordneten Verkehrsklassen, (c) ein oder mehrere Port-VC-Statusregister, (d) ein oder mehrere Port-VC-Steuerregister und (e) das oder die diesen virtuellen Kanälen zugeordneten Arbitrationssysteme, werden in der Portfähigkeits-Datenstruktur geführt. Gemäß einer beispielhaften Implemetierung werden die Kommunikationsbetriebsparameter und die damit verknüpften Portfähigkeitsparameter zwischen gekoppelten Elementen auf einer pro-Link-, pro-VC-Basis verhandelt.
  • Mit Bezug auf den vom Hostprozessor 102 initiierten Verkehr benötigen virtuelle Kanäle möglicherweise eine Ordnungssteuerung, basierend auf Standardordnungsmechanismusregeln, oder aber der Verkehr wird vollkommen ordnungslos gehandhabt. Gemäß einer beispielhaften Implementierung umfassen VCs folgende zwei Verkehrstypen: Allzweck-IO-Verkehr und isochronen Verkehr. Das heißt, gemäß einer beispielhaften Implementierung werden zwei viruelle Kanaltypen beschrieben: (1) Virtuelle Allzweck-IO-Kanäle und (2) isochrone virtuelle Kanäle.
  • In diesem Beispiel hält die Transaktionsschicht 202 eine unabhängige Flußregelung aufrecht für jeden der virtuellen Kanäle, die aktiv von der Komponenten unterstützt werden. In diesem Beispiel sollten alle EGIO entsprechenden Komponenten typisch eine „Best Effort" Serviceklasse für einen allgemeinen virtuellen Standardkanal vom IO-Typ, wie einen virtuellen Kanal 0, unterstützen, wobei es keine Ordnungsbeziehungen zwischen ungleichen virtuellen Kanälen dieses Typs gibt. Als Standard wird VC 0 für Allzweck-IO-Verkehr benutzt, während VC 1 oder höher (zum Beispiel VC1-VC7) für die Handhabung von isochronem Verkehr eingesetzt wird. In anderen Implementierungen kann jeder virtuelle Kanal jeden beliebigen Verkehrstyp handhaben. Eine begriffliche Darstellung der EGIO-Link mit mehreren, unabhängig gemanagten virtuellen Kanälen ist in 4 zu sehen.
  • 4 zeigt eine grafische Darstellung einer beispielhaften EGIO-Link 112 mit mehreren virtuellen Kanälen (VC) gemäß eines Aspektes der vorliegenden Erfindung. Gemäß der veranschaulichten beispielhaften Implementierung von 4 umfaßt die EGIO-Link 112 mehrere virtuelle Kanäle 402, 404, die zwischen den EGIO-Schnittstellen 106 erstellt wurden. Gemäß einer beispielhaften Implementierung sind mit Bezug auf den virtuellen Kanal 402 aus mehreren Quellen 406A ... N kommende Verkehrsströme veranschaulicht, unterschieden durch mindestens ihre Quellenkennung. Wie dargestellt, wurde der virtuelle Kanal 402 eingerichtet, ohne Ordnungserfordernisse zwischen Transaktionen aus verschiedenen Quellen (zum Beispiel Agenten, Schnittstellen usw.) einzurichten.
  • Desgleichen umfaßt der virtuelle Kanal 404 Verkehr aus mehreren Quellen mehreren Transaktionen 408A ... N, wobei jede der Transaktionen mit mindestens einer Quellenkennung gekennzeichnet ist. Gemäß des veranschaulichsten Beispiels sind die aus Quelle ID 0 406A kommenden Transaktionen strikt geordnet, soweit sie nicht durch das Attributfeld 304 des Transaktionskopfes geändert wurden, während die Transaktionen aus Quelle 408N keine Ordnungsregeln haben.
  • Isochrone Kanäle
  • Wie oben erwähnt, werden isochrone Kanäle eingerichtet, um zeitempfindlichen Inhalt (zum Beispiel Streaming von Multimedieninhalt) zwischen einem Anforderer-Agenten und einem oder mehreren Abschließer-Agenten in der EGIO-Architektur 100 zu übertragen. Gemäß einer beispielhaften Implementierung existieren innerhalb der EGIO-Architektur zwei verschiedene isochrone Kommunikationsbeispiele, wie zum Beispiel ein Endpunkt-zu-Root-Komplex-Modell und ein Peer-zu-Peer- (oder Endpunkt-zu Endpunkt)-Kommunikationsmodell.
  • In dem Endpunkt-zu-Root-Komplex-Modell besteht der primäre isochrone Verkehr aus Speicherlese- und Schreibanforderungen an den Root-Komplex 104 und Lese-Abschlüssen aus dem Root-Komplex 104. Im Peer-zu-Peer-Modell ist isochroner Verkehr beschränkt auf Unicast- Pushonly-Transaktionen (zum Beispiel auf abgeschickte Transaktionen wie Speicherschreibvorgänge oder Nachrichten).
  • Um isochrone Datenübertragung mit garantierter Bandbreite und deterministischer Servicelatenz zu unterstützen, wird ein isochroner „Kontrakt" zwischen dem Anforderer-/Abschließerpaar und der EGIO-Kommunikationsstruktur eingerichtet. Gemäß einer Ausführungsform erzwingt der „Kontrakt" Ressourcenreservierung und Verkehrsregelung, um eine zu große Teilnahme und eine Verstopfung des virtuellen Kanals zu verhindern.
  • Ein beispielhaftes Verfahren zum Einrichten und Managen eines isochronen Datenkanals innerhalb der EGIO-Architektur ist in 5 dargestellt. Gemäß der veranschaulichten beispielhaften Ausführungsform von 5 beginnt das Verfahren mit Block 502, an dem die Kommunikationsfähigkeit eines oder mehrerer Elemente der EGIO-Struktur (das heißt Root-Komplex 104, Schalter 108, Endpunkte 110, Links 112, Brücken 114 usw.) identifiziert wird.
  • Gemäß einer beispielhaften Implementierung wird die Kommunikationsfähigkeit mindestens eines EGIO-Struktur-Subsatzes einem Bandbreiten-Manager des Root-Komplexes 104 präsentiert, der die Zuweisung von isochronen Kommunikationsressourcen innerhalb der EGIO-Architektur managt. Die Präsentierung der Kommunikationsfähigkeit eines Elements tritt während der Initialisierungsperiode des Elements ein, zum Beispiel beim Starten der elektronischen Hostvorrichtung 100, oder nach dem Einstecken eines EGIO entsprechenden Geräts in die elektronische Hostvorrichtung während des Betriebs.
  • Während des normalen Betriebs der elektronischen Hostvorrichtung 100 kann es notwendig oder wünschenswert sein, einen isochronen Kommunikationskanal zwischen zwei (oder mehr) Agenten innerhalb der elektronischen Hostvorrichtung 100 einzurichten. In einem solchen Fall empfängt der Bandbreitemnanager des Root-Komplexes 104 eine Anforderung für isochrone Kommunikationsressourcen innerhalb der EGIO-Struktur von einem (oder im Auftrag von) einem Anforderer-/Abschließerpaar, Block 504. In diesem Beispiel enthält die Anforderung eine Angabe der gewünschten Kommunikationsressourcen, zum Beispiel der Bandbreiten- und Servicelatenzerfordernisse.
  • In Block 506, nach Empfang der Anforderung für isochrone Kommunikationsressourcen, analysiert der Bandbreitemnanager des Root-Komplexes 104 die verfügbaren Kommunikationsressourcen mindestens eines entsprechenden Subsatzes der EGIO-Architektur, um in Block 508 zu bestimmen, ob die Anforderung für isochrone Kommunikationsressourcen erfüllt werden kann. Gemäß einer Ausführungsform analysiert der Bandbreitenmanager des Root-Komplexes 104 die mit Ports 106, Schalter(n) 108, Link(s) 112 usw. verknüpfte Information, umfassend den Kommunikationspfad zwischen Requester und Abschließer, um zu bestimmen, ob die Bandbreiten- und Servicelatenzerfordernisse erfüllt werden können. In anderen Ausführungsformen richtet das Anforderer-/Abschließerpaar lediglich den isocronen Kontrakt (oder eine Vereinbarung betreffend die Betriebsparameter) zwischen sich selbst und irgendwelchen dazwischen liegenden Elementen auf einer Link-zu-Link-Basis ein.
  • Wenn in Block 508 der Bandbreitemnanager des Root-Komplexes 104 bestimmt, daß die angeforderten Kommunikationsressourcen nicht verfügbar sind, lehnt der Root-Komplex 104 die Anforderung für den isochronen Kanal ab und kann anzeigen, daß die angeforderten Ressourcen nicht verfügbar sind, Block 510. Gemäß bestimmter Ausführungsformen kann auch eine Anzeige der verfügbaren Ressourcen vom Anforderer-/Abschließerpaar bereitgestellt werden, die daraufhin beschließen können, die Anforderung für isochrone Kommunikationsressourcen neu auszugeben, obgleich in Übereinstimmung mit den bezeichneten verfügbaren Ressourcen. In einer anderen Ausführungsform teilt der Bandbreitenmanager der Entität, die die Ressource angefordert hat, mit, daß eine bestimmte Bandbreite (die vielleicht unter der angeforderten liegt) zugewiesen wurde. In diesem Fall wäre es für die anfordernde Entität nicht erforderlich, die Anforderung neu auszugeben.
  • Gemäß einer beispielhaften Ausführungsform, bei der Bestimmung, ob die Anforderung für isochrone Kommunikationsressourcen erfüllt werden kann, und bei der Einrichtung des isochronen Kontrakts in Block 512, berechnet der Bandbreitenmanager die Bandbreitenerfordernisse des Anforderer-/Abschließerpaares wie folgt: BW = (N·Y)T [1]
  • Die Formel definiert die zugewiesene Bandbreite (BW) als Funktion der angegebenen Anzahl (N) von Transaktionen einer angegebenen Nutzdatengröße (Y) innerhalb einer angegebenen Zeitperiode (T).
  • Ein weiterer wichtiger Parameter im isochronen Kontrakt ist Latenz. Basierend auf dem Kontrakt sind isochrone Transaktionen innerhalb einer angegebenen Latenz (L) abzuschließen. Nach Zulassung eines Anforderer-/Abschließerpaares durch den Bandbreitenmanager für isochrone Kommunikation werden unter normalen Betriebsbedingungen Bandbreite und Latenz dem Anforderer durch den Abschließer und durch irgendein dazwischen liegendes EGIO-Architekturelement (wie Schalter, Link(s), Root-Komplex, usw.) garantiert.
  • Demgemäß definiert der in Block 512 entwickelte isochrone Kontrakt spezifische Service-Disziplinen, die von der/den EGIO-Schnittstellen 106 implementiert werden, die an der isochronen Kommunikation innerhalb der EGIO-Architektur beteiligt sind. Die Service-Disziplinen werden den EGIO-Schaltern und Abschließern (wie Endpunkten 110, Root-Komplex 104, usw.) auferlegt derart, daß der Service isochroner Anforderungen einem spezifischen Serviceintervall (t) unterliegt. Der Mechanismus wird benutzt, um das Steuerverfahren bereitzustellen, wenn ein von einem Anforderer eingeführtes isochrones Paket bearbeitet wird.
  • Folglich wird der isochrone Verkehr derart geregelt, Block 514, daß nur Pakete, die in Übereinstimmung mit dem verhandelten isochronen Kontrakt in die EGIO-Architektur eingegeben wurden, gut vorankommen und damit anfangen können, von den EGIO-Architekturelementen bearbeitet zu werden. Ein nicht im Einklang stehender Anforderer, der versucht, mehr isochronen Verkehr einzugeben, als nach dem verhandelten Kontrakt erlaubt ist, wird daran durch einen weiter unten ausführlicher beschriebenen Flußregelungsmechanismus gehindert (siehe zum Beispiel den Merkmalsatz der Datenlinkschicht).
  • Gemäß einer beispielhaften Implementierung wird die isochrone Zeitperiode (T) einheitlich in virtuelle Zeitfenstereinheiten (t) eingeteilt. Innerhalb eines virtuellen Zeitfensters ist eine einzelne isochrone Anforderung zugelassen. Gemäß einer Ausführungsform wird die Größe (oder Dauer) des von einer EGIO-Komponente unterstützten virtuellen Zeitfensters als Kopfinformation innerhalb einer. Datenstruktur der EGIO-Schnittstelle bereitgestellt. In anderen Implementierungen wird die Größe des virtuellen Zeitfensters durch eine Broadcast-Nachricht von der EGIO-Komponente nach Empfang eines Initialisierungsereignisses (zum Beispiel Kaltstart, Zurücksetzung, usw.) gemeldet. In einer weiteren Implementierung wird die Größe des virtuellen Zeitfensters über eine spezielle Informationsnachricht von der EGIO-Komponente nach Empfang einer speziellen Anforderungsnachricht gemeldet. In einer weiteren Implementierung kann die Größe des virtuellen Zeitfensters festgelegt werden, und die isochrone Bandbreitenmanagersoftware kann aktive und inaktive Fenster (während der Bandbreitenzuweisung) derart übereinander legen, daß in Wirklichkeit „breitere" Zeitfenster erstellt werden.
  • Gemäß einer Ausführungsform beträgt die Dauer des virtuellen Zeitfensters (t) 100 ns. Die Dauer der isochronen Zeitperiode (T) richtet sich nach der Anzahl der Phasen des unterstützten zeitbasierten Arbitrationsschemas (zum Beispiel dem zeitbasierten gewichteten Round-Robin (WRR) (oder der gewichteten Sequenz)). Gemäß einer Ausführungsform wird die Anzahl der Phasen durch die Anzahl der isochronen virtuellen Zeitfenster definiert, gekennzeichnet durch die Anzahl der Einträge in einer innerhalb jedes Elements unterhaltenen Port-Arbitrationstabelle. Wenn die Port-Arbitrationstabelle gleich 128 ist, stehen 128 virtuelle Zeitfenster (t) in einer isochronen Zeitperiode zur Verfügung, das heißt T=12,8 μs.
  • Gemäß einer beispielhaften Ausführungsform wird eine maximale Nutzdatengröße (Y) für isochrone Transaktionen während der EGIO-Konfigurationsperiode eingerichtet. Nach der Konfiguration wird die maximale Nutzdatengröße innerhalb einer gegebenen EGIO-Hierarchie-Domaine festgelegt. Der Wert der festgelegten maximalen Nutzdatengröße dient zur Etatplanung der isochronen Bandbreite, ungeachtet der tatsächlichen Größe der mit isochronen Transaktionen verknüpften Nutzdaten zwischen einem Anforderer und einem Abschließer.
  • Bei der gegebenen Diskussion der isochronen Periode (T), der virtuellen Zeitfenster (t) und der maximalen Nutzdaten (Y) ist die maximale Anzahl der virtuellen Zeitfenster innerhalb einer Zeitperiode: Nmax= T/t. [2]
  • Und die maximale spezifizierbare isochrone Bandbreite ist: BWmax= Y/t. [3]
  • Die Granularität, mit der die isochrone Bandbreite zugewiesen wird, ist folglich definiert als: BWgranularity= Y/T. [4]
  • Die Zuweisung der isochronen Bandbreite BWlink zu einer Kommunikationslink 112 ist wie die Zuweisung von Nlink virtuellen Zeitfenstern pro isochrone Periode (T), wobei Nlink gegeben ist durch: Nlink = BWlink/BWgranularity [5]
  • Um den geregelten Zugriff auf die Link aufrechtzuerhalten, richtet ein Port des Schalters, der als Ausgangsport für isochronen Verkehr dient, eine Datenstruktur ein (wie die oben erwähnte Port-Arbitrationstabelle), die mit maximal Nmax Einträgen gefüllt wird, wobei Nmax die maximale Anzahl der isochronen Sitzungen angesichts der Linkbandbreiten-, Granularitäts- und Latenzerfordernissen ist. Ein Eintrag in der Tabelle entspricht einem virtuellen Zeitfenster in der isochronen Zeitperiode (T). Wenn einem Tabelleneintrag der Wert einer Portnummer (PN) zugeteilt wird, bedeutet das, daß das Zeitfenster einem durch die Portnummer bezeichneten Ausgangsport zugewiesen ist. Folglich werden Nlink virtuelle Zeitfenster dem Eingangsport zugewiesen, wenn Nlink Einträge in der Port-Arbitrationstabelle vorhanden sind, die den Wert von PN aufweisen. Der Ausgangsport kann eine isochrone Anforderungstransaktion vom Eingangsport für weiteren Service nur dann zulassen, wenn der vom isochronen Zeitzähler des Ausgangsports (der für jede t Zeit um eins (1) ansteigt und sich zurücksetzt, wenn T erreicht ist) erreichte Tabelleneintrag auf PN gesetzt ist. Selbst wenn ausstehende isochrone Anforderungen im Eingangsport bereitstehen, werden sie erst bei Eintreten der nächsten Arbitrationsrunde bearbeitet (zum Beispiel zeitbasierte, gewichtete Round-Robin (WWR) Arbitration). In dieser Weise dient die zeitbasierte Port-Arbitrationsdatenstruktur sowohl der isochronen Bandbreitenzuweisung als auch der Verkehrsregelung.
  • In diesem Beispiel setzt sich die oben besprochene Transaktionslatenz aus der Latenz durch die EGIO-Struktur hindurch und der vom Abschließer mitgebrachten Latenz zusammen. Isochrone Transaktionslatenz wird für jede Transaktion definiert und in virtuellen Zeitfenstereinheiten t gemessen.
  • Für einen Abschließer im Endpunkt-zu-Root-Komplex-Kommunikationsmodell wird die Leselatenz als Round-Trip-Latenz definiert, das heißt, als Verzögerung ab der Zeit, zu der das Gerät seiner Transaktionsschicht ein Speicherlese-Anforderungspaket unterbreitet (auf der Sendeseite) bis zu der Zeit, zu der der entsprechende Leseabschluß an der Transaktionsschicht des Geräts ankommt (auf der Empfangsseite). Für einen Anforderer in jedem Kommunikationsmodell wird die Schreiblatenz als Verzögerung ab der Zeit, zu der der Anforderer eine Speicherschreibanforderung an die Übertragungsseite seiner Transaktionsschicht abschickt, bis zu der Zeit, zu der der Datenschreibvorgang innerhalb des Speichersubsystems des Abschließers global sichtbar wird, definiert. Ein Speicherschreibvorgang erreicht den Punkt globaler Sichtbarkeit, wenn alle Agenten, die auf diese Speicheradresse zugreifen, die aktualisierten Daten erhalten.
  • Als Teil des isochronen Kontrakts wird eine obere Grenze und eine untere Grenze für isochrone Transaktionslatenz bereitgestellt. Die Größe der isochronen Datenpuffer in einem Anforderer kann mit Hilfe der minimalen und maximalen isochronen Transaktionslatenzen bestimmt werden. Wie im folgendnen ausführlicher ausgeführt, ist die minimale isochrone Transaktionslatenz sehr viel kleiner als die maximale isochrone Transaktionslatenz.
  • Für einen Anforderer kann die maximale isochrone (Lese-oder Schreib-) Transaktionslatenz (L) durch folgende Gleichung (6) ausgedrückt werden: L=Lfabric + Lcompleter [6]wobei Lfabric die maximale Latenz der EGIO-Struktur und Lcompleter die maximale Latenz des Abschließers ist.
  • Die Transaktionslatenz für eine EGIO-Link 112 oder die EGIO-Struktur wird als Verzögerung ab der Zeit, zu der eine Transaktion am Übertragungsende abgeschickt wird, bis zu der Zeit, zu der sie am Empfangsende zur Verfügung steht, definiert. Dies gilt für sowohl Lese- als auch Schreibtransaktionen. In dieser Hinsicht richtet sieh Lfabric nach der Topologie, der durch jede Link 112 bedingten Latenz und dem Arbitrationspunkt im Pfad vom Anforderer zum Abschließer.
  • Weiterhin mit Bezug auf 5 fährt der Prozeß mit Block 516 fort, wobei der Bandbreitenmanager bestimmt, ob der Einsatz eines isochronen Kommunikationskanals abgeschlossen ist. Das heißt, der Bandbreitenmanager bestimmt, ob die isochrone Kommunikationssitzung beendet ist und ob dementsprechend die virtuellen Kanalressourcen, die zur Unterstützung des isochronen Kanals zugewiesen wurden, zum Einsatz durch die EGIO-Struktur freigegeben werden können. Gemäß einer Ausführungsform empfängt der Bandbreitenmanager eine Angabe von einem oder mehreren Anforderer-/Abschließerpaaren, daß die isochronen Ressourcen nicht länger benötigt werden. In einer anderen Ausführungsform beschließt der Bandbreitenmanager nach einer bestimmten Inaktivitätsperiode, daß die isochronen Kommunikationen abgeschlossen sind.
  • Wenn in Block 516 der Bandbreitenmanager bestimmt, daß die isochrone Kommunikation nicht abgeschlossen ist, fährt der Prozeß be Block 514 fort.
  • Oder der Prozeß fährt bei Block 518 fort, wobei der Bandbreitemnanager den isochronen Kontrakt storniert und dadurch die Bandbreite für die Unterstützung der restlichen virtuellen Kanäle freigibt. Gemäß einer Ausführungsform teilt der Bandbreitemnanager einem oder mehreren anderen Elementen der EGIO-Architektur mit, daß der isochrone Kontrakt nicht länger erzwungen wird.
  • Ordnen von Transaktionen
  • Obwohl es vielleicht einfacher ist, die folgerichtige Verarbeitung aller Antworten zu erzwingen, versucht die Transaktionsschicht 202, indem sie das Neuordnen von Transaktionen gestattet, die Performance zu bessern. Um ein solches Neuordnen zu ermöglichen „markiert" die Transaktionsschicht 202 die Transaktionen. Das heißt, gemäß einer Ausführungsform fügt die Transaktionsschicht 202 einen Transaktions-Descriptor zu jedem Paket hinzu, damit dessen Sendezeit durch Elemente in der EGIO-Architektur optimiert werden kann (zum Beispiel durch Neuordnen), ohme die relative Reihenfolge, in der das Paket ursprünglich verarbeitet wurde, aus den Augen zu verlieren. Diese Transaktions-Descriptoren werden dazu verwendet, das Routen der Anforderungs- und Abschlußpakete durch die EGIO-Schnittstellenhierarchie zu erleichtern.
  • Somit besteht einer der innovativen Aspekte der EGIO-Zusammenschaltarchitektur und des Kommunikationsprotokolls darin, daß Kommunikation außerhalb der Reihenfolge bereitgestellt wird, wobei durch Reduktion von Ruhe- oder Wartezuständen der Datendurchsatz verbessert wird.
  • In dieser Hinsicht benutzt die Transaktionsschicht 202 einen Satz von Regeln, um die Ordnungserfordernisse für EGIO-Transaktionen zu definieren. Transaktionsordnungserfordernisse werden definiert, um den korrekten Betrieb mit der Software zu gewährleisten, die zur Unterstützung des Produzenten-Verbraucher-Ordnungsmodells dient, während gleichzeitig eine verbesserte Transaktionshandhabungsflexibilität für Anwendungen, die auf verschiedenen Ordnungsmodellen basieren, gewährt wird (zum Beispiel gelockertes Ordnen für Anwendungen mit angehängten Grafiken). Im folgenden werden die Ordnungserfordernisse für zwei verschiedene Modelltypen – ein Einzelebenen-Ordnungsmodell und ein Mehrfachebenen-Ordnungsmodell – erklärt.
  • Grundlegendes Ordnen von Transaktionen - Einzelebenen-Ordnungsmodell
  • Angenommen, zwei Komponenten sind über eine EGIO-Architektur miteinander verbunden, wie in 1 dargestellt: ein Speichersteuernetzknoten, der eine Schnittstelle mit einem Hostprozessor und einem Speichersubsystem bereitstellt, und ein IO-Steuernetzknoten, der eine Schnittstelle mit einem IO-Subsystem bereitstellt. Beide Knoten enthalten interne Warteschlangen, die eingehenden und ausgehenden Verkehr handhaben, und in diesem einfachen Modell ist der gesamte IO-Verkehr auf einer einzelnen „Ordnungsebene" abgebildet. (Es wird darauf hingewiesen, daß die Quellen-ID-Information des Transaktions-Descriptors eine eindeutige Identifizierung jedes Agenten innerhalb einer EGIO-Hierarchie bereitstellt. Ferner sei darauf hingewiesen, daß der auf die Quellen-ID abgebildete IO-Verkehr verschiedene Transaktionsordnungsattribute aufweisen kann). Ordnungsregeln für diese Systemkonfiguration sind zwischen dem IO-initiierten Verkehr und Hostinitiierten Verkehr definiert. Aus dieser Perspektive betrachtet, stellt der auf die Quellen-ID abgebildete Verkehr zusammen mit dem vom Hostprozessor initiierten Verkehr Verkehr dar, der innerhalb einer einzelnen „Ordnungsebene" geführt wird.
  • Ein Beispiel für diese Transaktionsordnungsregeln ist unten mit Bezug auf Tabelle II dargestellt. Die in dieser Tabelle definierten Regeln gelten gleichermaßen für alle Transaktionstypen im EGIO-System einschließlich Speicher, IO, Konfiguration und Nachrichten. In Tabelle II unten stellen die Spalten die erste von zwei Transaktionen und die Reihen die zweite dar. Die Tabelleneinträge werden wie folgt definiert:
    • Ja – die zweite Transaktion sollte typisch die erste überholen können, um Stillstand zu vermeiden. (Wenn ein Stau eintritt, muß die zweite Transaktion die erste Transaktion überholen können. Gerechterweise sollte "Hungersnot" vermieden werden.)
    • J/N – Keine Erfordernisse. Die erste Transaktion kann wahlweise die zweite Transaktion überholen oder von ihr blockiert werden.
    • Nein – die zweite Transaktion sollte typisch nicht die erste Transaktion überholen können. Dies ist erforderlich, um wirksames Ordnen aufrechtzuerhalten.
    Figure 00330001
    Tabelle II. Transaktionsordnung und Vermeidung von Stillstand für Einzelordnungsebene
    Figure 00340001
    Figure 00350001
    Tabelle III: Transaktionsordnungs-Erklärungen
  • Fortgeschrittene Transaktionsordnung – „Mehrebenen" Transaktionsordnungsmodell
  • Im vorhergehenden Abschnitt wurden Ordnungsregeln innerhalb einer einzelnen „Ordnungsebene" definiert. Wie oben erwähnt, verwendet die EGIO-Zusammenschaltarchitektur und das Kommunikationsprotokoll einen eindeutigen Transaktions-Descriptor-Mechanismus, um zusätzliche Information mit einer Transaktion zur Unterstützung von ausgereifteren Ordnungsbeziehungen zu verknüpfen. Felder im Transaktions-Descriptor gestatten die Erstellung von mehreren „Ordnungsebenen", die, vom IO-Verkehrsordnungsgesichtpunkt aus betrachtet, unabhängig von einander sind.
  • Jede „Ordnungsebene" besteht aus Warteschlangen-/Pufferlogik, die einem bestimmten IO-Gerät entspricht (durch eine eindeutige Quellen-ID gekennzeichnet) und aus Warteschlangen/Pufferlogik, die vom Hostprozessor initiierten Verkehr führt. Das Ordnen innerhalb der „Ebene" wird typisch nur zwischen diesen beiden definiert. Die im vorherigen Abschnitt definierten Regeln zur Unterstützung des Produzenten-/Verbraucherbenutzungsmodells und zur Vermeidung von Stillständen werden für jede „Ordnungsebene" unabhängig von anderen „Ordnungsebenen" erzwungen. Zum Beispiel können Leseabschlüsse für Anforderungen, die von „Ebene" N initiiert wurden, Leseabschlüsse für Anforderungen, die von „Ebene" M initiiert wurden, umgehen. Jedoch können weder die Leseabschlüsse für Ebene N noch die für Ebene M die abgeschickten Speicherschreibvorgänge umgehen, die vom Host initiiert wurden.
  • Obwohl der Einsatz des Ebenenabbildungsmechanismus das Vorhandensein von mehreren Ordnungsebenen gestattet, können manche oder alle der Ordnungsebenen „zusammengeklappt" werden, um die Implementierung zu vereinfachen (das heißt, Kombinieren mehrerer separat gesteuerter Puffer/FIFOs zu einer einzigen Einheit). Wenn alle Ebenen zusammengeklappt sind, wird der Transaktions-Descriptor-Quellen-ID-Mechanismus nur dazu benutzt, das Routen von Transaktionen zu erleichtern, und nicht dazu, das Ordnen zwischen unabhängigen IO-Verkehrsströmen zu lockern.
  • Außer dem Vorhergesagten sorgt der Transaktions-Descriptor-Mechanismus für das Ändern der Standardreihenfolge (Ordnung) innerhalb einer einzelnen Ordnungsebene mittels eines Ordnungsattributs. Änderungen an der Reihenfolge können folglich auf Pro-Transaktions-Basis gesteuert werden.
  • Format des Transaktionsschichtprotokollpakets
  • Wie oben erwähnt, verwendet die innovative EGIO-Architektur ein paketbasiertes Protokoll, um Information zwischen Transaktionsschichten von zwei Geräten auszutauschen, die mit einander kommunizieren. Die EGIO-Architektur unterstützt generell die Transaktionstypen Speicher, IO, Konfiguration und Nachrichten. Diese Transaktionen werden typisch mittels Anforderer- und Abschlußpaketen durchgeführt, wobei Abschlußpakete nur bei Bedarf, das heißt, zur Rückgabe von Daten oder zur Bestätigung des Empfangs einer Transaktion benutzt werden.
  • Mit Bezug auf 9 ist ein Beispiel eines Transaktionsschichtprotokolls gemäß der Lehre der vorliegenden Erfindung dargestellt. Gemäß der veranschaulichten beispielhaften Implementierung von 9 umfaßt der TLP-Kopf 900 ein Formatfeld, ein Typenfeld, ein ET/EL-Feld mit erweitertem Typ/erweiterter Länge und ein Längenfeld. Zu beachten ist, daß manche TLPs auf den Kopf folgende Daten enthalten, so wie es das im Kopf angegebene Formatfeld bestimmt. Kein TLP sollte mehr Daten als die von MAX_PAYLOAD_SIZE gesetzte Grenze enthalten. Gemäß einer beispielhaften Implementierung bestehen TLP-Daten aus vier-Byte, sind natürlich ausgerichtet und in Inkrementen eines Vier-Byte-Doppelworts (DW).
  • In diesem Beispiel gibt das Formatfeld (FMT) das Format des TLPs gemäß folgender Definitionen an:
    • • 000-2DW Kopfzeile, keine Daten
    • • 001-3DW Kopfzeile, keine Daten
    • • 010-4DW Kopfzeile, keine Daten
    • • 101-3DW Kopfzeile, mit Daten
    • • 110-4DW Kopfzeile, mit Daten
    • • Alle anderen Kodierungen sind reserviert
  • Das TYPE-Feld dient zur Kennzeichnung der Typenkodierungen im TLP. Gemäß einer Implementierung sollten sowohl Format [2:0] als auch Typ [3:0] typisch dekodiert werden, um das TLP-Format zu bestimmen. Gemäß einer Implementierung wird der Wert des Typ [3:0] Feldes dazu benutzt, das Typenfeld oder Längenfeld zu erweitern. Das ET/EL-Feld wird typisch nur dazu benutzt, das Längenfeld mit Speichertyp-Leseanforderungen zu erweitern.
  • Das Längenfeld gibt die Länge der Nutzdaten an, wiederum in DW-Inkrementen von:
    :0000 0000 = 1DW
    :0000 0001 = 2DW
    : ...
    :1111 1111 = 256DW
  • In der folgenden Tabelle IV ist eine Zusammenfassung von mindestens einem Subsatz der beispielhaften TLP-Transaktionstypen, ihrer entsprechenden Kopfzeilenformate und einer Beschreibung zu finden:
    Figure 00380001
    Figure 00390001
    Tabelle IV: TLP-Typ-Zusammenfassung
  • Weitere Angaben zu Anforderungen und Abschlüssen sind in Anhang A zu finden.
  • Flußregelung
  • Eine allgemein mit konventionellen Flußregelungssystemen verbundene Begrenzung besteht darin, daß sie auf eventuell auftauchende Problem reagieren, anstatt von vornherein aktiv die Möglichkeit des Auftauchens solcher Probleme zu reduzieren. In dem konventionellen PCI-System zum Beispiel sendet ein Sender Information an einen Empfänger, bis er eine Nachricht empfängt, die Übertragung bis auf Weiteres anzuhalten/zu suspendieren. Auf diese Anforderungen können dann Anforderungen zur erneuten Übertragung von Paketen ab einem gegebenen Punkt in der Übertragung folgen. Darüber hinaus, insofern als solche Flußregelungsmechanismen Hardwarebasiert sind, sind sie nicht für oben beschriebene, dynamisch eingerichtete, unabhängig verwaltete virtuelle Kanäle geeignet. Der Fachman wird erkennen, daß diese reaktiven Ansätze zu verschwendeten Zyklen führen und in dieser Hinsicht unrentabel sein dürften.
  • Zur Handhabung dieser Begrenzung enthält die Transaktionsschicht 202 der EGIO-Schnittstelle 106 einen Flußregelungsmechanismus, der die Möglichkeit des Auftauchens von Überlaufbedingungen reduziert, und gleichzeitig, auf Pro-Link-Basis, das Einhalten der Ordnungsregeln des zwischen Initiator und Abschließer eingerichteten virtuellen Kanals gewährleistet.
  • Gemäß eines Aspekts der vorliegenden Erfindung wird das Konzept eines „Flußregelungskredits" eingeführt, wobei ein Empfänger die Information betreffs (a) der Größe des Puffers (in Krediten) und (b) des aktuell verfügbaren Pufferraums gemeinsam mit einem Sender für jeden der virtuellen Kanäle benutzt (das heißt, auf pro-virtueller Kanalbasis), die zwischen dem Sender und dem Empfänger eingerichtet wurden. Dies ermöglicht der Transaktionsschicht 202 des Senders, eine Schätzung des verfügbaren Pufferraums (zum Beispiel eine Zählung der verfügbaren Kredite) zu unterhalten, der zur Übertragung über einen identifizierten virtuellen Kanal zugewiesen wurde, und ihre Übertragung über irgendeinen der virtuellen Kanäle aktiv zu drosseln, wenn sie bestimmt, daß diese Übertragung zu einer Überlaufbedingung im Empfangspuffer führen würde.
  • Gemäß eines Aspekts der vorliegenden Erfindung aktiviert die Transaktionsschicht 202 selektiv Flußregelung, um den Überlauf eines mit einem virtuellen Kanal verbundenen Empfangspuffers zu verhindern, und um die Übereinstimmung mit den oben erwähnten Ordnungsregeln zu ermöglichen. Gemäß einer Implementierung wird der Flußregelungsmechanismus der Transaktionsschicht 202 von einem Sender benutzt, um den in einem Agenten (Empfänger) verfügbaren Wareteschlangen/Pufferraum über die EGIO-Link 112 zu verfolgen. In dieser Hinsicht hat somit, im Gegensatz zum konventionellen Flußregelungsmechanismus der Sender, nicht der Empfänger, zu bestimmen, wann der Empfänger vorübergehend unfähig ist, mehr Inhalt über den virtuellen Kanal zu empfangen. In diesem Beispiel bedeutet Flußregelung nicht, daß eine Anforderung den endgültigen Abschließer erreicht hat.
  • Innerhalb der EGIO-Architektur ist Flußregelung orthogonal zum Datenintegritätsmechanismus, der zur Implementierung eines zuverlässigen Informationsaustauschs zwischen einem Sender und einem Empfänger benutzt wird. Das heißt, die Flußregelung kann den Fluß der Information des Transaktionsschichtpakets (TLP) vom Sender zum Empfänger als perfekt behandeln, da die Datenintegritätsmechanismen (wie unten besprochen) sicherstellen, daß beschädigte und verloren gegangene TLPs durch erneute Übertragung korrigiert werden. In diesem Beispiel werden unter Flußregelungsmechanismus die virtuellen Kanäle der EGIO-Link 112 verstanden. In dieser Hinsicht wird jeder von einem Empfänger unterstützte, virtuelle Kanal in den Flußregelungskrediten (FCC) reflektiert, die von Empfänger angekündigt werden.
  • Gemäß einer beispielhaften Implementierung wird die Flußregelung von der Transaktionsschicht 202 in Zusammenarbeit mit der Datenlinkschicht 204 durchgeführt. Das heißt, die Flußregelungsinformation wird zwischen zwei Seiten einer EGIO-Link 112 (zum Beispiel auf pro-VC-Basis) gefördert, wobei Datenlinkschichtpakete (DLLP) zum Einsatz durch den Flußregelungsmechanismus der Transaktionsschicht 202 zum Einsatz kommen. Zur besseren Illustration der Beschreibung des Flußregelungsmechanismus wird zwischen folgenden Paketinformationstypen, oder Flußregelungskredittypen unterschieden:
    • (a) Abgeschickte Anforderungskopfzeilen (PH)
    • (b) Abgeschickte Anforderungsdaten (PD)
    • (c) Nicht abgeschickte Anforderungskopfzeilen (NPH)
    • (d) Nicht abgeschickte Anforderungsdaten (NPD)
    • (e) Lese-, Schreib- und Nachrichtenabschlusskopfzeilen (CPLH)
    • (f) Lese- und Nachrichtenabschlußdaten (CPLD)
  • Wie oben erwähnt, ist die Maßeinheit in der EGIO-Implementierung aktiver Flußregelung ein Flußregelungskredit (FCC). Gemäß einer einzelnen Implementierung beträgt der Flußregelungskredit sechzehn (16) Bytes von Daten. Für Kopfzeilen ist die Flußregelungskrediteinheit eine Kopfzeile. Wie oben erwähnt, wird unabhängige Flußregelung für jeden virtuellen Kanal unterhalten. Dementsprechend werden separate Anzeigen von Krediten unterhalten und vom Flußregelungsmechanismus innerhalb der Transaktionsschicht 202 für jeden der obigen Paketinformationstypen ((a)-(f) wie oben gekennzeichnet) auf pro-VC-Basis verfolgt. Gemäß der veranschaulichten beispielhaften Implementierung werden durch die Übertragung von Paketen Flußregelungskredite gemäß der folgenden Aufstellung verbraucht:
    • – Speicher/IO/Konfigurationsleseanforderung: 1NPH Einheit
    • – Speicherschreibanforderung: 1PH + nPD Einheiten (wobei n mit der Größe der Nutzdaten verknüpft ist, zum Beispiel Länge der Daten, dividiert durch die Größe der Flußregelungseinheit (z.B. 16 Bytes)
    • – IO/Konfigurationsschreibanforderung: 1NPH + 1NPD
    • – Nachrichtenanforderungen: Je nach Nachricht mindestens 1PH und/oder 1NPH Einheit(en)
    • – Abschlüsse mit Daten: 1CPLH + nCPLD (wobei n auf die Größe der Daten bezogen ist, dividiert durch die Größe der Flußregelungsdateneinheit, z.B. 16 Bytes)
    • – Abschlüsse ohne Daten: 1CPLH
  • Für jeden verfolgten Informationstyp gibt es drei konzeptuale Register, jedes acht (8) Bit breit, um die (im Sender) verbrauchten Kredite, ein Kreditlimit (im Sender) und Kreditzuweisungen (im Empfänger) zu überwachen. Das Kreditverbrauchsregister enthält eine Zählung der Gesamtanzahl von Flußregelungseinheiten, zum Beispiel im Modula-256, die seit Initialisierung verbraucht wurden. Nach Einführung der architektonischen Elemente des Flußregelungsmechanismus soll nun mit Bezug auf 6 ein beispielhaftes Initialisierungs- und Betriebsverfahren beschrieben werden.
  • 6 zeigt ein Ablaufdiagramm eines beispielhaften Betriebsverfahrens des Flußregelungsmechanismus der EGIO-Architektur gemäß einer einzelnen erfindungsgemäßen Ausführungsform. Gemäß der dargestellten beispielhaften Implementierimg von 6 beginnt das Verfahren mit Block 602, wo der hier beschriebene, mit mindestens einem anfänglichen virtuellen Kanal verknüpfte Flußregelungsmechanismus nach Initialisierung oder Rücksetzung der Hardware initialisiert wird. Gemäß einer beispielhaften Implementierung wird der mit VC0 (zum Beispiel der virtuelle Standardkanal für Massenkommunikation) verknüpfte Flußregelungsmechanismus initialisiert, wenn die Datenlinkschicht 204 der EGIO-Schnittstelle 106 eines EGIO-Elements initialisiert ist.
  • In Block 604 aktualisiert der Flußregelungsmechanismus der Transaktionsschicht 202 die Parameter eines oder mehrerer Flußregelungsregister. Das heißt, nach Initialisierung wird das Kreditverbrauchsregister auf Null (0) gesetzt und steigt inkremental, wenn sich die Transaktionsschicht verpflichtet, Information an die Datenlinkschicht zu senden. Die Größe des Inkrements ist mit der Anzahl der Kredite verknüpft, die von der zu sendenden Information verbraucht wird. Gemäß einer Implementierung läuft der Zähler nach Erreichen des Zählerhöchstwerts über oder setzt sich auf Null zurück. Gemäß einer Implementierung wird zur Wartung des Zählers 8-Bit-Modulo-Arithmetik ohne Vorzeichen benutzt.
  • Das vom Sender geführte Kreditlimitregister enthält den Grenzwert der maximalen Anzahl von Flußregelungseinheiten, die verbraucht werden können. Nach Schnittstellen-Initialisierung (zum Beispiel Start, Rücksetzung usw.) wird das Kreditlimitregister auf Null gesetzt und anschließend aktualisiert, um den in einer Flußregelungs-Aktualisierungsnachricht (wie oben erwähnt) nach Empfang der Nachricht angegebenen Wert anzuzeigen.
  • Das vom Empfänger gewartete Kreditzuweisungsregister enthält eine Zählung der Gesamtanzahl der dem Sender seit Initialisierung gewährten Kredite. Der Zählwert wird anfänglich entsprechend der Puffergröße und der Zuweisungsregeln des Empfängers eingestellt. Dieser Wert kann in Flußregelungs-Aktualisierungsnachrichten aufgenommen werden.
  • In Block 606 bestimmt die EGIO-Schnittstelle 106, ob zusätzliche virtuelle Kanäle, das heißt mehr als Standard-VCO, benötigt werden. Falls ja, initialisiert die Transaktionsschicht während des Einrichtens solcher zusätzlichen VCs den mit diesen VCs verknüpften Flußregelungsmechanismus und aktualisiert das/die Flußregelungsregister dementsprechend. Block 608.
  • Wie oben, steigt beim Initialisieren des mit einem virtuellen Kanal verknüpften Flußregelungsmechanismus der Wert an, während die Empfängertransaktionsschicht verarbeitete Information aus ihrem Emfpangspuffer entfernt. Die Größe des Inkrements ist mit der Größe des zur Verfügung gestellten Raums verknüpft. Gemäß einer Ausführungsform sollten anfänglich die Empfänger typisch die Kredite auf Werte einstellen, die gleich oder größer als die folgenden Werte sind:
    • – PH: 1 Flußregelungseinheit (FCU);
    • – PD: FCU gleich der größtmöglichen Einstellung der maximalen Nutzdatengröße des Geräts;
    • – NPH: 1FCU;
    • – NPD: FCU gleich der größtmöglichen Einstellung der maximalen Nutzdatengröße des Geräts;
    • – Schaltergeräte – CPLH: 1FCU;
    • – Schaltergeräte – CPLD: FCU gleich der größtmöglichen Einstellung der maximalen Nutzdatengröße des Geräts bzw. der größten Leseanforderung, die das Gerät je erzeugen würde, je nachdem welches der kleinere Wert ist;
    • – Root und Endpunktgeräte – CPLH oder CPLD: 255 FCUs (alle 1), ein Wert, den der Sende als unendlich betrachtet, und der deshalb nie drosselt.
  • Gemäß einer solchen Implementierung würde ein Empfänger typisch keine Kreditzuweisungsregisterwerte einstellen, die größer als 127 FCUs für jeden Nachrichtentyp sind.
  • Gemäß einer weiteren Implementierung kann ein Empfänger (oder Sender) auch, anstatt das Kreditzuweisungsregister unter Einsatz des oben genannten Zählerverfahrens zu führen, die verfügbaren Kredite dynamisch anhand der folgenden Gleichung berechnen: C_A=(Krediteinheitsnummer der zuletzt empfangenen Übertragung)+(verfügbarer Empfangspufferraum) [7]
  • Wie oben erwähnt, implementiert ein Sender die konzeptualen Register (verbrauchter Kredit, Kreditlimit) für jeden der virtuellen Kanäle, die er benutzen würde. Desgleichen implementieren Empfänger die konzeptualen Register (zugewiesene Kredite) für jeden der virtuellen Kanäle, die von ihm unterstützt werden. Nach Einrichten des/der Flußregelungsregister für die entsprechenden VCs ist die EGIO-Schnittstelle zur Teilnahme an der EGIO-Kommunikation bereit, während der Prozeß bei Block 610 fortfährt.
  • Bei Block 610 empfängt die EGIO-Schnittstelle in einem Sender ein Datagramm zur Übertragung auf einem VC. In Block 612, vor der Übertragung des empfangenen Datagramms, bestätigt der Flußregelungsmechanismus in der Transaktionsschnicht 202 des EGIO-Elements, welches das Datagramm über die EGIO-Link überträgt, daß eine solche Übertragung nicht zu einer Überlaufbedingung am Empfänger führt. Gemäß einer beispielhaften Implementierung bewirkt der Flußregelungsmechanismus der Transaktionsschnicht 202, daß diese Bestimmung mindestens teilweise auf dem Kreditverfügbarkeitsregister und der Anzahl der Kredite beruht, die durch die Übertragung des Datagramms verbraucht werden.
  • Um die Übertragung von Information aktiv zu verhindern, falls dadurch ein Überlauf des Empfangspuffers eintreten würde, kann ein Sender einen Informationstyp senden, wenn die Zählung der verbrauchten Kredite plus Anzahl der mit den zu sendenden Daten verknüpften Krediteinheiten gleich dem oder geringer als der Kreditlimitwert ist, das heißt: Cred_Req=(Cred_Consumed+<Info_cred>)mod2[field size] [8]
  • Wobei die Feldgröße acht (8) für PH, NPH, CLPH und zwölf (12) für PD, NPD und CPLD ist.
  • Wenn ein Sender Flußregelungsinformation für Abschlüsse (CPLs) empfängt, die nicht-unendliche Kredite (das heißt, <255 FCUs) anzeigen, drosselt der Sender Abschlüsse entsprechend dem verfügbaren Kredit. Bei Berechnung von Kreditbenutzung und -rückgabe wird die Information von verschiedenen Transaktionen nicht innerhalb eines Kredits gemischt. Desgleichen wird bei Berechnung von Kreditbenutzung und -rückgabe die Kopf- und Dateninformation einer Transaktion nie innerhalb eines Kredits gemischt. Somit folgen die Sender, wenn die Übertragung eines Pakets infolge eines Mangels an Flußregelungskrediten blockiert wird, den Ordnungsregeln (oben) bei der Bestimmung, welche Pakettypen das „aufgehaltene" Paket umgehen dürfen.
  • Wenn bei Block 612 der Flußregelungsmechanismus bestimmt, daß der Empfänger nicht genügend Pufferraum zum Empfang des Datagramms hat, suspendiert der Flußregelungsmechanismus vorübergehend die Übertragung auf dem zugeordneten virtuellen Kanal, bis das/die Flußregelungsregister im Sender aktualisiert sind, um diese Übertragung zu gestatten, Block 614. Gemäß einer beispielhaften Implementierung werden Aktualisierungen durch eine Flußregelungsaktualisierungsnachricht empfangen, wie im folgenden ausführlich beschrieben.
  • Wenn bei Block 612 der Flußregelungsmechanismus beschließt, daß die Übertragung des Datagramms nicht zu einer Überlaufbedingungen am Empfänger führt, fährt die EGIO-Schnittstelle 106 mit der Übertragung des Datagramms fort, Block 616. Wie oben erwähnt, sind an der Übertragung des Datagramms Verfahrensschritte (zum Beispiel Hinzufügung von Kopfzeilen, Datenintegritätsinformation usw.) in der Transaktionsschicht 202, der Datenlinkschicht 204 und/oder der physischen Schicht 206 beteiligt.
  • Gemäß einer Ausführungsform gibt der Flußregelungsmechanismus im Empfänger in Antwort auf den Empfang eines Datagramms über einen virtuellen Kanal eine Flußregelungsaktualisierung aus. Eine solche Aktualisierung kann in Form einer Kopfzeile in einem Bestätigungspaket usw. erfolgen. In einer solchen Ausführungsform wird die Rückgabe von Flußregelungskrediten für eine Transaktion nicht so verstanden, als ob die Transaktion abgeschlossen wäre oder Systemsichtbarkeit erreicht hätte. MSIs (Message Signaled Interrupts – durch Nachrichten angezeigte Interrupts), die eine Speicherschreibanforderungssemantik benutzen, werden wie jeder andere Speicherschreibvorgang behandelt. Wenn eine nachfolgende FC-Aktualisierungsnachricht (vom Empfänger) einen niedriger als ursprünglich angezeigten credit_limit-Wert angibt, sollte der Sender das neue niedrigere Limit respektieren und gibt dann möglicherweise einen Nachrichtenfehler aus.
  • Gemäß des hier beschriebenen Flußregelungsmechanismus, falls ein Empfänger mehr Information als den zugewiesenen Krediten entsprechend empfängt (das heißt Überschreitung der Kreditzuweisung), zeigt der Empfänger dem Sender gegenüber einen Empfänger-Überlauffehler an und leitet eine Datenlinkebenen-Wiederholungsanforderung für das Paket ein, das den Überlauf verursacht hat.
  • In Block 618 aktualisiert der mit dem betreffenden virtuellen Kanal im Sender verknüpfte Flußregelungsmechanismus nach Empfang der Flußregelungsaktualisierungsinformation das/die Flußregelungsregister entsprechend, um die Flußregelung weiterhin zu ermöglichen.
  • Nach Einführen der architektonischen Elemente und beispielhaften betrieblichen Details, wie oben angegeben, soll nun ein beispielhaftes Protokoll zur Übermittlung von Flußregelungsinformation vorgestellt werden.
  • Gemäß einer beispielhaften Ausführungsform wird die Flußregelungsinformation auf der Datenlinkschicht 204 mittels Flußregelungspaketen übermittelt.
  • Flußregelungspakete (FCPs)
  • Gemäß einer Implementierung wird die zur Führung der obigen Register notwendige Flußregelungsinformation mittels Flußregelungspaketen (FCPs) zwischen Geräten übermittelt. Ein beispielhaftes Flußregelungspaket ist grafisch in 9 dargestellt. Gemäß einer Ausführungsform bestehen Flußregelungspakete 900 aus Zwei-DW-Kopfzeilenformat-und-Förderinformation für einen spezifischen virtuellen Kanal betreffend den Status der sechs Kreditregister, die von der Flußregelungslogik der Transaktionsempfangsschicht für jeden VC geführt werden.
  • Gemäß einer Ausführungsform der Lehre der vorliegenden Erfindung gibt es zwei FCP-Typen:
    Anfangs-FCP und Aktualisierungs-FCP, wie in 9 dargestellt. Wie oben erwähnt, wird die Anfangs-FCP 902 nach Initialisierung der Transaktionsschicht ausgegeben. Nach Initialisierung der Transaktionsschicht werden die Aktualisierungs-FCPs 904 dazu benutzt, Information in den Registern zu aktualisieren.
  • Der Empfang einer Anfangs-FCP 902 während des normalen Betriebs verursacht eine Zurücksetzung des lokalen Flußregelungsmechanismus und die Übertragung einer Anfangs-FCP 902. Der Inhalt einer Anfangs-FCP 902 enthält mindestens einen Subsatz der angekündigten Kredite für jede PH, PD, NPH, NPD, CPHL, CPHD und Kanal-ID (zum Beispiel den betreffenden virtuellen Kanal, für den FC-Information gilt).
  • Das Format einer Aktualisierungs-FCP 904 gleicht dem Format der Anfangs-FCP 902. Es wird darauf hingewiesen, daß obwohl die FC-Kopfzeile nicht, wie im Kopfzeilenformat von anderen Transaktionsschichtpaketen üblich, ein Längenfeld enthält, ist die Größe des Pakets eindeutig, weil es keine mit diesem Paket verknüpften zusätzlichen DW-Daten gibt.
  • Fehlerweiterleitung
  • Im Gegensatz zu konventionellen Fehlerweiterleitungs-Mechanismen verläßt sich die EGIO-Architektur auf „Tailer-Information, die an Datagramme, die aus verschiedenen Gründen, wie unten besprochen, als defekt identifiziert wurden, angehängt wird. Gemäß einer beispielhaften Implementierung verwendet die Transaktionsschicht 202 eine Reihe gut bekannter Fehlersuchtechniken, wie zum Beispiel CRC-Fehlerkontrolle (CRC = zyklische Redundanzprüfung) und dergleichen.
  • Gemäß einer Implementierung verwendet die EGIO-Architektur, um Fehlerweiterleitungsmerkmale zu ermöglichen, einen sogenannten „Tailer", der an TLPs angehängt wird, die bekannte fehlerhafte Daten führen. Zu möglichen Beispielen für den Einsatz von „Tailer"-Fehlerweiterleitung gehören:
    Beispiel Nr. 1: Beim Lesen aus dem Hauptspeicher wird ein nicht korrigierbarer ECC-Fehler angetroffen
    Beispiel Nr. 2: Paritätsfehler beim Schreiben eines PCIs auf den Hauptspeicher
    Beispiel Nr. 3: Datenintegritätsfehler auf einem internen Datenpuffer oder Cache.
  • Gemäß einer beispielhafen Implementierung wird Fehlerweiterleitung nur für Leseabschlußdaten oder Schreibdaten benutzt. Das heißt, Fehlerweiterleitung wird typisch nicht in Fällen benutzt, in denen der Fehler im Verwaltungs-Overhead auftritt, das mit dem Datagramm verknüpft ist, wie zum Beispiel in einer Kopfzeile (wie Anforderungsphase, Adresse/Befehl, usw.). In diesem Beispiel können Anforderungen/Abschlüsse mit Kopfzeilenfehlern im allgemeinen nicht weitergeleitet werden, da ein echter Zielort nicht positiv identifiziert werden kann, und deshalb eine solche Fehlerweiterleitung direkte Auswirkungen oder Nebenwirkungen nach sich ziehen könnte, wie zum Beispiel Datenbeschädigung, Systemausfall usw. Gemäß einer Ausführungsform wird Fehlerweiterleitung zur Fehlerfortpflanzung durch das System, Systemdiagnose, benutzt. Fehlerweiterleitung benutzt keine Datenlinkschichtwiederholung, und somit werden TLPs, die mit einem „Tailer" abschließen, nur dann wiederholt, wenn Übertragungsfehler auf der EGIO-Link 112 vorhanden sind, wie vom TLP-Fehler-Detektionsmechanismus bestimmt (zum Beispiel CRC (zyklische Redundanzprüfung) usw.). Der Tailer kann daher letztendlich bewirken, daß der Urheber der Anforderung diese erneut ausgibt (auf der Transaktionsschicht der obigen) oder eine andere Maßnahme trifft.
  • In diesem Beispiel sind alle EGIO-Empfänger (zum Beispiel diejenigen innerhalb der EGIO-Schnittstelle 106) fähig, mit einem „Tailer" endende TLPs zu verarbeiten. Unterstützung zum Hinzufügen eines „Tailers" in einem Sender ist optional (und daher kompatibel mit Altsystemgeräten). Schalter 108 routen einen Tailer zusammen mit dem Rest eines TLPs. Hostbrücken 104 mit Peer-Routing-Unterstützung routen typisch einen Tailer zusammen mit dem Rest eines TLP, sind jedoch nicht gezwungen dies zu tun. Fehlerweiterleitung gilt typisch für die Daten innerhalb einer Schreibanforderung (abgeschickt oder nicht abgeschickt) oder eines Leseabschlusses. TLPs, von denen der Sender weiß, daß sie fehlerhafte Daten enthalten, sollten mit dem Tailer enden.
  • Gemäß einer beispielhaften Implementierung besteht der Tailer aus zwei DW, wobei alle Bytes [7:5] Null (zum Beispiel 000), und alle Bits [4:1] Einsen (zum Beispiel 1111) sind, während alle anderen Bits reserviert sind. Ein EGIO-Empfänger betrachtet alle Daten innerhalb eines mit einem Tailer endenden TLPs als beschädigt. Bei Verwendung von Fehlerweiterleitung bewirkt der Empfänger, daß alle Daten des angegebenen TLPs als schlecht („vergiftet") markiert werden. Innerhalb einer Transaktionsschicht parst ein Parser typisch bis zum Ende des ganzen TLPs und prüft sofort die folgenden Daten, um zu erfahren, ob die Daten abgeschlossen sind oder nicht.
  • Datenlinkschicht 204
  • Wie oben erwähnt, fungiert die Datenlinkschicht 204 von 2 als Zwischenschicht zwischen der Transaktionsschicht 202 und der physischen Schicht 206. Die Datenlinkschicht 204 dient in erster Linie dazu, einen zuverlässigen Mechanismus für den Austausch von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten über eine EGIO-Link 112 bereitzustellen. Die Übertragungsseite der Datenlinkschicht 204 akzeptiert TLPs, die von der Transaktionsschicht 202 zusammengestellt werden, gibt ihnen eine Paketsequenzkennung (zum Beispiel eine Kenn-Nummer), berechnet und gibt ihnen einen Fehlersuchcode (zum Beispiel CRC-Code) und unterbreitet die modifizierten TLPs der physischen Schicht 206 zur Übertragung über einen oder mehrere ausgewählte virtuelle Kanäle, die innerhalb der Bandbreite der EGIO-Link 112 eingerichtet wurden.
  • Die empfangende Datenlinkschicht 204 ist dafür verantwortlich, die Integrität der empfangenen TLPs zu prüfen (zum Beispiel mittels CRC-Mechanismen usw.) und diejenigen TLPs der Transaktionsschicht 204, für die die Integritätsprüfung positiv verlief, zur Zerlegung vor Weiterleitung an den Gerätekern zu unterbreiten. Zu von der Datenlinkschicht 204 bereitgestellten Diensten gehören allgemein Datenaustausch, Fehlersuche und Neuversuch, Initialisierung und Energiemanagement sowie Datenlinkschicht-Intercomdienste. Alle innerhalb der oben genannten Kategorien angebotenen Dienste sind im folgenden nach Kategorie aufgelistet:
  • Datenaustauschdienste
    • – Annahme von TLPs zur Übertragung von der Sendetransaktionsschicht i. Annahme von TLPs, die über die Link von der physischen Schicht empfangen wurden, und ihre Beförderung zur Empfangstransaktionsschicht
  • Fehlersuche und Neuversuch
    • – TLP-Sequenznummer und CRC-Erzeugung
    • – Speicherung übertragener TLPs für erneuten Übertragungsversuch über die Datenlinkschicht
    • – Datenintegritätsprüfung
    • – Bestätigen und erneuter Übertragungsversuch für DLLPs
    • – Fehleranzeigen für Fehlerberichte und Aufzeichnungsmechanismen i. Link Ack Timeout-Uhr
  • Initialisierung und Energiemanagementdienste
    • – Verfolgung des Linkzustands und Beförderung des aktiven/Rücksetz-/unterbrochenen Zustands zur Transaktionsschicht
  • Datenlinkschicht-Intercomdienste
    • – Benutzung für Linkmanagementfunktionen einschließlich Fehlersuche nd Neuversuch
    • – Übertragung zwischen Datenlinkschichten der zwei direkt miteinander verbundenen Komponenten
    • – Nicht offen gegenüber den Transaktionsschichten
  • Wie innerhalb der EGIO-Schnittstelle 106 benutzt, erscheint die Datenlinkschicht 204 als Informationskanal mit unterschiedlicher Latenz gegenüber der Transaktionsschicht 202. Jegliche in die Sendedatenlinkschicht eingeführte Information erscheint zu einer späteren Zeit am Ausgang der Empfangsdatenlinkschicht. Die Latenz richtet sich nach einer Anzahl von Faktoren einschließlich Pipeline-Latenzen, Breite und Betriebsfrequenz der Link 112, Übertragung von Kommunikationssignalen über das Medium und Verzögerungen, die durch einen Neuversuch der Datenlinkschicht verursacht werden. Wegen dieser Verzögerungen kann die Sendedatenlinkschicht Gegendruck an die Sendetransaktionsschicht 202 anlegen, und die Empfangsdatenlinkschicht übermittelt die An- oder Abwesenheit von gültiger Information an die Empfangstransaktionsschicht 202.
  • Gemäß einer Implementierung verfolgt die Datenlinkschicht 204 den Zustand der EGIO-Link 112. Das heißt also, die DDL 204 übermittelt den Linkstatus zusammen mit der Transaktion 202 und den physischen Schichten 206 und führt Linkmanagement durch die physische Schicht 206 hindurch aus. Gemäß einer Implementierung enthält die Datenlinkschicht eine Linksteuer- und Managementzustandsmaschine, um diese Managementaufgaben durchzuführen, wobei ein Beispiel dieser Maschine in 11 veranschaulicht ist. Gemäß der beispielhaften Implementierung von 11 werden die Zustände 1100 der Linksteuer- und Managementzustandsmaschine wie folgt definiert:
  • Beispielhafte DLL-Link-Zustände
    • • LinkDown (LD) – die physische Schicht berichtet, daß die Link nicht funktioniert oder der Port nicht angeschlossen ist
    • • LinkInit (LI) – die physische Schicht berichtet, daß die Link funktioniert und initialisiert wird
    • • LinkActive(LA) – Normaler Betriebsmodus
    • • LinkActDefer (LAD) – Normaler Betrieb unterbrochen, physische Schicht versucht, den Betrieb wiederaufzunehmen
  • Entsprechende Managementregeln pro Zustand:
    • • LinkDown (LD) Anfänglicher Zustand nach einer Komponentenrücksetzung im Anschluß an Eintritt in LD: Rücksetzung der gesamten Datenlinkschichtinformation auf Standardwerte Während in LD: Keine TLP-Information mit der Transaktions- oder physischen Schicht austauschen Keine DLLP-Information mit der physischen Schicht austauschen Keine DLLPs erzeugen oder akzeptieren Zurück zu LI, wenn: die Transaktionsschicht anzeigt, daß die Link von SW nicht deaktiviert wurde
    • • LinkInit (LI) Während in LI: Keine TLP-Information mit der Transaktions- oder physischen Schicht austauschen Keine DLLP-Information mit der physischen Schicht austauschen Keine DLLPs erzeugen oder akzeptieren Zurück zu LA, wenn: die physische Schicht anzeigt, daß die Link-Schulung erfolgreich war Zurück zu LD, wenn: die physische Schicht anzeigt, daß die Link-Schulung erfolglos war
    • • LinkActive (LA) Während in LinkActive: TLP-Information mit den Transaktions- und physischen Schichten austauschen DLLP-Information mit der physischen Schicht austauschen DLLPs erzeugen und akzeptieren Zurück zu LinkActDefer, wenn der Managementmechanismus für Datenlinkschichtwiederholung anzeigt, daß eine Link-Neuschulung erforderlich ist, ODER wenn die physische Schicht berichtet, daß gerade eine Schulung erfolgt.
    • • LinkActDefer (LAD) Während in LinkActDefer: Keine TLP-Information mit der Transaktions- oder physischen Schicht austauschen Keine DLLP-Information mit der physischen Schicht austauschen Keine DLLPs erzeugen oder akzeptieren Zurück zu LinkActive, wenn: die physische Schicht anzeigt, daß die Neuschulung erfolgreich war Zurück zu LinkDown, wenn: – die physische Schicht anzeigt, daß die Neuschulung fehlgeschlagen ist.
  • Datenintegritätsmanagement
  • In diesem Beispiel werden Datenlinkschichtpakete (DLLPs) dazu benutzt, den EGIO-Linkdatenintegritätsmechanismus zu unterstützen. Dementsprechend stellt gemäß einer Implementierung die EGIO-Architektur folgende DLLPs zur Unterstützung des Linkdatenintegritätsmanagements bereit:
    • • Ack DLLP: Bestätigung der TLP-Sequenznummer – dient zur Anzeige des erfolgreichen Empfangs einer Anzahl von TLPs
    • • Nack DLLP: Negative Bestätigung der TLP-Sequenznummer – dient zur Anzeige eines Datenlinkschicht-Neuversuchs
    • • Ack Timeout DLLP: Zeigt die vor Kurzem übertragene Sequenznummer an – dient zum Nachweisen mancher Formen von TLP-Verlusten
  • Wie oben erwähnt, liefert die Transaktionsschicht 202 TLP-Grenzinformation an die Datenlinkschicht 204 und ermöglicht dadurch der DLL 204, eine Fehlersuche – Sequenznummer- und zyklische Redundanzprüfung (CRC) – an das TLP anzulegen. Gemäß einer beispielhaften Implementierung validiert die Empfangsdatenlinkschicht empfangene TLPs, indem sie die Sequenznummer, den CRC-Code und sonstige Fehleranzeigen der physischen Empfangsschicht prüft. Im Falle eines Fehlers in einem TLP wird Datenlinkschicht-Neuversuch zur Wiederherstellung benutzt.
  • CRC, Sequenznummer und Neuversuchsmanagement (Sender)
  • Die Mechanismen, die zur Bestimmung der TLP CRC und der Sequenznummer sowie zur Unterstützung eines Datenlinkschicht-Neuversuchs benutzt werden, sind im Sinne von konzeptualen „Zählern" und „Flags" beschrieben, wie folgt:
  • CRC und Sequenznummerregln (Sender)
  • Benutzt werden folgende 8-Bit-Zähler:
    • • TRANS_SEQ – speichert die Sequenznummer von TLPs, die für die Übertragung vorbereitet wird. – im LinkDown-Zustand steht alles auf Null Erhöhung um 1 nach jedem TLP, das übertragen wurde Wenn nur Einsen eingestellt sind, verursacht die Weiterzählung eine Rücksetzung auf Nullen (Rollover) Empfang eines Nak DLLP bewirkt, daß der Wert auf die Sequenznummer zurückgesetzt wird, die im Nak DLLP – ACKD_SEQ – speichert die Sequenznummer, die im zuletzt empfangenen Link-zu-Link-Bestätigungs-DLLP bestätigt wurde. im LinkDown-Zustand steht alles auf Eins
    • • Jedem TLP wird eine 8-Bit-Sequenznummer zugewiesen – Der Zähler TRANS-SEQ speichert diese Nummer – Wenn TRANS-SEQ gleich (ACKD_SEQ_1) Modulo 256 ist, sollte der Sender typisch so lange kein anderes TLP übertragen, bis ein Ack DLLP das ACKD_SEQ derart aktualisiert, daß die Bedingung (TRANS-SEQ ==ACKD_SEQ-1) Modulo 256 nicht länger wahr ist.
    • • TRANS-SEQ wird an das TLP angelegt, indem der 1-Byte-Wert an den Anfang des TLPs gesetzt wird ein einzelnes reserviertes Byte an den Anfang des TLPs gesetzt wird
    • • Eine 32b CRC wird mit dem folgenden Algorithmus für das TLP berechnet und an das Ende des TLPs angehängt – Das benutzte Polynom ist 0×04C11DB7 Das gleiche CRC-32, das vom Ethernet benutzt wird – Das Berechnungsverfahren ist wie folgt: 1) Der Anfangswert der CRC-32-Berechnung ist das DW, das dadurch gebildet wird, daß der Sequenznummer 24 Nullen vorangestellt werden 2) Die CRC-Berechnung geht weiter unter Einsatz jedes DW des TLP aus der Transaktionsschicht in Reihenfolge ab dem DW einschließlich Byte Null der Kopfzeile bis zum letzten DW des TLPs 3) Die Bit-Folge aus der Berechnung wird fertiggestellt und das Ergebnis ist die TLP CRC 4) Das CRC DW wird an das Ende des TLPs angehängt
    • • Kopien der übertragenen TLPs sind typisch im Datenlinkschicht-Neuversuchspuffer zu speichern
    • • Wenn ein Ack DLLP von einem anderen Gerät empfangen wird: – Laden des ACKD_SEQ mit dem angegebenen Wert in das DLLP – Löschen von TLPs aus dem Neuversuchspuffer mit Sequenznummern im Bereich: Ab dem vorherigen Wert von ACKD_SEQ + 1 Bis zum neuen Wert von ACKD_SEQ
    • • Wenn ein Nak DLLP von einer anderen Komponente auf der Link empfangen wird: – Wenn ein TLP gerade an die physische Schicht übertragen wird, geht die Übertragung weiter, bis die Übertragung dieses TLPs abgeschlossen ist – Zusätzliche TLPs werden der Transaktionsschicht so lange nicht entnommen, bis die folgenden Schritte abgeschlossen sind: – Bis TLPs aus dem Neuversuchspuffer gelöscht sind, die Sequenznummern aufweisen im Bereich von: vorheriger Wert von ACKD_SEQ + 1 Wert im Nak-Sequenznummerfeld des Nak DLLPs – Alle restlichen TLPs im Neuversuchspuffer werden der physischen Schicht erneut zur Übertragungswiederholung in der ursprünglichen Reihenfolge vorgelegt. Hinweis: Dies beinhaltet alle TLPs mit Sequenznummern im Bereich: – Wert im Nak-Sequenznummerfeld der Nak DLLP + 1 – Wert von TRANS_SEQ – 1 Wenn keine TLPs im Neuversuchspuffer übriggeblieben sind, war Nak DLLP fehlerhaft Das fehlerhafte Nak DLLP muß typisch, wie im Fehlerverfolgungs- und Protokollabschnitt angegeben, erscheinen Weitere Maßnahmen seitens des Senders sind nicht erforderlich.
  • CRC und Sequenznummer (Empfänger)
  • In ähnlicher Weise werden im folgenden die Mechanismen, die zum Prüfen der TLP CRC und der Sequenznummer und zur Unterstützung des Datenlinkschicht-Neuversuchs benutzt werden, im Sinne von konzeptualen "Zählern" und "Flags" beschrieben:
    • • Benutzt wird der folgende 8-Bit-Zähler: – NEXT_RCV_SEQ – speichert die erwartete Sequenznummer für das nächste TLP im LinkDown-Zustand steht alles auf Null Erhöhung um 1 für jedes akzeptierte TLP oder wenn das DLLR_IN_PROGRESS Flag (unten beschrieben) durch Akzeptieren eines TLPs entfernt wird, mit dem Wert (Trans.Seq.Num + 1) geladen wird, jedesmal, wenn eine Linkschicht DLLP empfangen und das DLLR_IN_PROGRESS Flag entfernt wird. – Die Synchronisierung eines Sequenznummerverlusts zwischen Sender und Empfänger wird angezeigt, wenn der Wert NEXT_RCV_SEQ ein anderer als der Wert ist, der von einem empfangenen TLP oder einem Ack Timeout DLLP angegeben wird; in diesem Fall:
    • • Wenn das DLLR_IN_PROGRESS Flag gesetzt ist, – ist das DLLR_IN_PROGRESS Flag zurückzusetzen – ist ein „Sent Bad DLLR DLLP" Fehler an die Protokollierung/Verfolgung zu schicken – Hinweis: Dies zeigt an, daß ein DLLR DLLP (Nak) aus Versehen gesendet wurde
    • • Wenn das DLLR_IN_PROGRESS Flag nicht gesetzt ist, – ist das DLLR_IN_PROGRESS Flag zu setzen und Nak DLLP zu initiieren – Hinweis: Dies zeigt an, daß ein TLP verloren gegangen ist
    • • Der folgende 3-Bit-Zähler wird benutzt: – DLLRR_COUNT – zählt, wie oft DLLR_DLLP in einer angegebenen Zeitperiode ausgegeben wird
    • • Ist im LinkDown-Zustand eingestellt auf b'000
    • • Wird für jedes ausgegebene Nak DLLP um 1 erhöht
    • • Wenn der Zähler b'100 erreicht: – Geht die Linksteuerzustandsmaschine von LinkActive zu LinkActDefer – Wird DLLRR_COUNT auf b'000 zurückgesetzt
    • • Wenn DLLRR_COUNT nicht gleich b'000 ist, nimmt er alle 256 Symbolzeiten um 1 ab – Das heißt, er ist gesättigt bei b'000
    • • Folgendes Flag wird benutzt – DLLR_IN_PROGRESS
    • • Im folgenden werden die Gesetzt/Entfernbedingungen beschrieben:
    • • Wenn DLLR_IN_PROGRESS gesetzt ist, werden alle empfangenen TLPs abgelehnt (bis das von DLLR_DLLP angezeigte TLP empfangen wird)
    • • Wenn DLLR_IN_PROGRESS entfernt ist, werden empfangene TLPs wie unten beschrieben geprüft
    • • Um ein TLP akzeptieren zu können, müssen folgende Bedingungen typisch wahr sein: – Die empfangene TLP-Sequenznummer ist gleich NEXT_RCV_SEQ – Die physische Schicht hat keine Fehler beim Empfang des TLPs angezeigt – Die TLP CRC Prüfung zeigt keinen Fehler an.
    • • Wenn ein TLP akzeptiert wird: – Wird der Transaktionsschichtteil des TLPs an die Empfangstransaktionsschicht weitergeleitet – Falls gesetzt, wird das DLLR_IN_PROGRESS Flag entfernt – Nimmt NEXT_RCV_SEQ zu
    • • Wenn ein TLP nicht akzeptiert wird: – Wird das DLLR_IN_PROGRESS Flag gesetzt – Wird ein Nak DLLP gesendet
    • • Das Ack/Nak-Sequenznummerfeld sollte typisch den Wert (NEXT_RCV_SEQ-1) enthalten
    • • Das Nak-Typ (NT) Feld sollte typisch die Ursache des Nak angeben: – b'00 – von physischer Schicht identifizierter Fehler empfangen – b'01 – TLP CRC Prüfung fehlgeschlagen – b'10 – Sequenznummer inkorrekt – b'11 – von physischer Schicht identifizierter Framing-Fehler empfangen
    • • Der Empfänger sollte typisch nicht zulassen, daß die Zeit ab Empfang der CRC für TLP bis zur Übertragung des Nak 1023 Symbolzeiten überschreitet, wie vom Port der Komponenten gemessen. – Hinweis: NEXT_RCV_SEQ nimmt nicht zu
    • • Wenn die Empfangsdatenlinkschicht das erwartete TLP nach einem Nak DLLP nicht innerhalb von 512 Symbolzeiten empfängt, wird Nak DLLP wiederholt. – Wenn nach vier Versuchen das erwartete TLP noch immer nicht empfangen wurde, handelt der Empfänger wie folgt: er geht in den LinkActDefer-Zustand und initiiert Link-Neuschulung durch die physische Schicht er zeigt an, daß ein größerer Fehler in der Fehlerverfolgung und -Protokollierung eingetreten ist
    • • Datenlinkschichtbestätigungs-DLLPs sollten typisch dann übertragen werden, wenn folgende Bedingungen wahr sind: – Die Datenlinksteuer- und Managementzustandsmaschine ist im LinkActive-Zustand – TLPs wurden akzeptiert, aber noch nicht durch Senden eines Bestätigungs-DLLPs bestätigt – Mehr als 512 Symbolzeiten sind seit dem letzten Bestätigungs-DLLP verstrichen
    • • Datenlinkschichtbestätigungs-DLLPs können öfter als erforderlich übertragen werden
    • • Datenlinkschichtbestätigungs-DLLPs geben den Wert (NEXT_RCV_SEQ-1) im Ack-Sequenznummerfeld an.
  • Ack-Timeout-Mechanismus
  • Angenommen, ein TLP auf der Link 112 ist beschädigt, so daß der Empfänger das Vorhandensein des TLPs nicht wahrnimmt. Das verloren gegangene TLP wird entdeckt, wenn ein späteres TLP gesendet wird, weil die TLP-Sequenznummer nicht mit der erwarteten Sequenznummer am Empfänger übereinstimmt. Die Sendedatenlinkschicht 204 kann jedoch im allgemeinen nicht die Zeit begrenzen, in der ihr das nächste TLP von der Sendetransportschicht vorgelegt wird. Der Ack-Timeout-Mechanismus gestattet dem Sender, die Zeit zu begrenzen, die zur Entdeckung des verloren gegangenen TLPs durch den Empfänger benötigt wird.
  • Ack-Timeout-Mechanismus-Regeln
    • • Wenn der Sendeneuversuchspuffer TLPs enthält, für die kein Ack DLLP empfangen wurde, und wenn keine TLPs oder Link DLLPs für eine Periode, die 1024 Symbolzeiten überschreitet, übertragen wurden, sollte typisch ein Ack-Timeout-DLLP gesendet werden.
    • • Nach dem Senden eines Ack-Timeout-DLLPs sollte die Datenlinkschicht typisch so lange keine TLPs an die physische Schicht zur Übertragung schicken, bis ein Bestätigungs-DLLP von der Komponenten auf der Seite der Link empfangen wurde. – Wenn für eine 1023 Symbolzeiten überschreitende Periode kein Bestätigungs-DLLP empfangen wurde, wird das Ack-Timeout-DLLP nochmals 1024 Symbolzeiten nach der vierten sukzessiven Übertragung eines Ack-Timeout-DLLPs ohne Empfang eines Bestätigungs-DLLPs gesendet, dann Eintritt in den LinkActDefer-Zustand und Einleitung der Link-Neuschulung durch die physische Schicht
    • • Anzeige eines größeren Fehlers in der Fehlerverfolgung und Protokollierung.
  • Nach Einführung der architektonischen Elemente und Protokollelemente des Datenintegritätsmechanismus der Datenlinkschicht 204 oben wird Bezug auf 7 genommen, in welcher eine beispielhafte Implementiewrung des Datenintegritätsmechanismus gemäß einer beispeilhaften Ausführungsform vorgestellt wird.
  • 7 ist ein Flußdiagramm eines beispielhaften Verfahrens zur Überwachung der Datenintegrität innerhalb der EGIO-Architektur gemäß einer beispielhaften Ausführungsform der Erfindung. Gemäß der dargestellten beispielhaften Implementierung in 7 beginnt das Verfahren bei Block 702, wobei ein Datagramm über einen virtuellen Kanal an einer EGIO-Schnittstelle 106 eines EGIO-Elements empfangen wird. Wie oben dargestellt, wird das Datagramm über die physische Linkschicht 206 empfangen, bevor es zur Datenlinkschicht 204 aufsteigt. Gemäß bestimmter Ausführungsformen bestimmt die physische Schicht 206, ob das empfangene Datagramm den Paket-Framing-Erfordernissen usw. entspricht. In bestimmten Ausführungsformen wird ein Datagramm, das diese Framing-Erfordernisse nicht erfüllt, verworfen, ohne zum Datenintegritätsmechanismus der Datenlinkschicht 204 aufzusteigen oder von ihm analysiert zu werden. Wenn das Framing bestätigt wird, entfernt die physische Schicht die Framing-Begrenzungen vom Datagramm, wobei ein Datenlinkschichtpaket offenbart wird, welches zur Datenlinkschicht aufsteigt.
  • Bei Block 704, nach Empfang des Datagramms von der physischen Schicht 206, wird die Integrität des Datenlinkschichtpakets innerhalb der Datenlinkschicht 204 bestätigt. Wie oben angegeben, verwendet die Datenlinkschicht 204 die Sequenznummer, CRC Information oder mehrere derselben usw., um zu bestätigen, daß die Information innerhalb des DLLPs, einschließlich des TLLPs, korrekt ist.
  • Wenn die Datenlinkschicht 204 bei Block 704 eine Schwachstelle in der Integriträt des empfangenen DLLPs feststellt, ruft die Datenlinkschicht 204 eine Instanz des oben beschriebenen Fehlerverarbeitungsmechanismus auf.
  • Wenn die Datenlinkschicht 204 bei Block 704 die Integrität des empfangenen DLLPs bestätigt, steigt mindestens ein Subsatz des empfangenen DLLPs zur Transaktionsschicht 202 auf, Block 708. Gemäß einer beispielhaften Implementierung wird die datenlinkschicht-spezifische Information (zum Beispiel Kopfzeile, Fußzeile, usw.) entfernt, um eine TLLP aufzudecken, die an die Transaktionsschicht zur weiteren Verarbeitung weitergeleitet wird.
  • Physische Schicht 206
  • Unter weiterer Bezugnahme auf 2 wird nun die physische Schicht 206 erklärt. In diesem Beispiel isoliert die physische Schicht 206 die Transaktionsschicht 202 und die Datenlinkschicht 204 von der für den Linkdatenaustausch verwendeten Signaltechnologie. Gemäß der in 2 dargestellten beispielhaften Implementierung wird die physische Schicht in die funktionalen Teilblöcke 208 (logischer Teilblock) und 210 (phyischer Teilblock) aufgeteilt.
  • In diesem Beispiel ist der logische Teilblock 208 verantwortlich für die „digitalen" Funktionen der physischen Schicht 206. Zu diesem Zweck hat der logische Teilblock 204 zwei hauptsächliche Unterteilungen: einen Sendeabschnitt, der ausgehende Information zur Übertragung durch den physischen Teilblock 210 vorbereitet, und einen Empfängerabschnitt, der die empfangene Information identifiziert und vorbereitet, bevor sie an die Linkschicht 204 weitergeleitet wird. Der logische Teilblock 208 und der physische Teilblock 210 koordinieren den Portzustand über eine Status- und Steuerregisterschnittstelle. Die Steuer- und Managementfunktionen der physischen Schicht 206 werden von logischen Teilblock 208 gelenkt.
  • Gemäß einer beispielhaften Implementierung verwendet die EGIO-Architektur einen 8b/10b Übertragungscode. Bei Einsatz dieses Systems werden Acht-Bit-Zeichen als drei Bits behandelt und fünf Bits auf eine vier-Bit-Codegruppe bzw. eine sechs-Bit-Codegruppe abgebildet. Diese Codegruppen werden verkettet, um ein zehn-Bit-Symbol zu bilden. Das von der EGIO-Architektur verwendete 8b/10b Kodierungssystem stellt spezielle Symbole bereit, die sich von den zur Darstellung von Zeichen benutzten Datensymbolen unterscheiden. Diese speziellen Symbole werden für verschiedene Linkmanagementmechanismen benutzt, siehe unten. Weiterhin werden spezielle Symbole auch zum Framen von DLLPs und TLPs benutzt, die es ermöglichen, auf einfache und leichte Weise zwischen diesen zwei Pakettypen zu unterscheiden.
  • Der physische Teilblock 210 enthält einen Sender und einen Empfänger. Der Sender wird vom logischen Teilblock 208 mit Symbolen versorgt, welche er serialisiert und auf der Link 112 sendet. Der Empfänger wird von der Link 112 mit serialisierten Symbolen versorgt. Er wandelt die empfangenen Signale in einen Bitstrom um, der entserialisiert wird und dem logischen Teilblock 208 zusammen mit einem aus dem eingehenden seriellen Strom wiederhergestellten Symboltaktgeber zugeführt wird. Es versteht sich, daß in diesem Beispiel die EGIO-Link 112 ein Kommunikationsmedium aus einer breiten Vielfalt von Kommunikationsmedien sein kann, einschließlich einer elektrischen Kommunikationslink, einer optischen Kommunikationslink, einer HF-Kommunikationslink, einer Infrarot-Kommunikationslink, einer drahtlosen Kommunikationslink, und dergleichen. In dieser Hinsicht ist jeder der Sender und/oder Empfänger, der den physischen Teilblock 210 der physischen Schicht 206 enthält, geeignet für eine oder mehrere der vorerwähnten Kommunikationslinks.
  • BEISPIELHAFTER KOMMUNIKATIONSAGENT
  • In 8 ist ein Blockdiagramm eines beispielhaften Kommunikationsagenten mit mindestens einem Subsatz der mit der vorliegenden Erfindung verknüpften Merkmale gemäß einer beispielhaften Implementierung der vorliegenden Erfindung dargestellt. Gemäß der in 8 dargestellten beispielhaften Implementierung enthält der Kommunikationsagent 800 Steuerlogik 802, eine EGIO-Kommunikationsmaschine 804, Speicherraum für Datenstrukturen 806 und wahlweise eine oder mehrere Anwendungen 808.
  • In diesem Beispiel stellt die Steuerlogik 802 Verarbeitungsressourcen für jedes der Elemente der EGIO-Kommunikationsmaschine 804 bereit, um selektiv einen oder mehrere Aspekte der vorliegenden Erfindung zu implementieren. Dabei können als Steuerlogik 802 ein oder mehrere Mikroprozessoren, ein Mikrocontroller, eine endliche Zustandsmaschine, ein programmierbares Logikgerät, eine feldprogrammierbare Gate-Anordnung oder Inhalt verwendet werden, der bei der Ausführung Steuerlogik implementiert, die wie eins der vorgenannten Teile funktioniert.
  • Die dargestellte EGIO-Kommunikationsmaschine 804 umfaßt eine oder mehrere Transaktionsschicht-Schnittstellen 202, eine Datenlinkschnittstelle 204 und eine physische Schicht-Schnittstelle 206, bestehend aus einem logischen Teilblock 208 und einem physischen Teilblock 210 als Schnittstelle zum Kommunikationsagenten 800 mit einer EGIO-Link 112. In diesem Beispiel führen die Elemente der EGIO-Kommunikationsmaschine 804 Funktionen ähnlich, wenn nicht gleich, der oben beschriebenen Funktionen aus.
  • Gemäß der in 8 dargestellten beispielhaften Implementierung enthält der dargestellte Kommunikationsagent 800 Datenstrukturen 806. Wie im folgenden ausführlicher mit Bezug auf 10 erklärt, können die Datenstrukturen 806 Speicherraum, IO-Raum, Konfigurationsraum und Nachrichtenraum enthalten, der von der Kommunikationsmaschine 804 zur Ermöglichung der Kommunikation zwischen Elementen der EGIO-Architektur verwendet wird.
  • In diesem Beispiel dienen Anwendungen 808 dazu, eine breite Vielfalt von Anwendungen darzustellen, die selektiv von der Kommunikationsmaschine 804 aufgerufen werden, um das EGIO-Kommunikationsprotokoll und zugehörige Managementfunktionen zu implementieren. Gemäß einer beispielhaften Implementierung sind der Bandbreitenmanager, der Flußregelungsmechanismus, der Datenintegritätsmechanismus und die Unterstützung für Altsystem-Interrupts als ausführbarer Inhalt in den Kommunikationsagenten 800 eingebettet, der selektiv von einem oder mehreren entsprechenden Elementen der EGIO-Kommunikationsmaschine 804 aufgerufen wird.
  • BEISPIELHAFTE DATENSTRUKTUR(EN)
  • 10 zeigt eine grafische Darstellung einer oder mehrerer Datenstrukturen, die von den EGIO-Schnittstellen 106 gemäß einer Implementierung der vorliegenden Erfindung verwendet werden. Insbesondere sind, wie in der beispielhaften Implementierung in 10 dargestellt, vier (4) Adreßräume zum Einsatz innerhalb der EGIO-Architektur definiert: der Konfigurationsraum 1010, der IO-Raum 1020, der Speicherraum 1030 und der Nachrichtenraum 1040. Wie dargestellt, enthält der Konfigurationsraume 1010 ein Kopfzeilenfeld 1012 mit Information über die EGIO-Kategorie, zu der ein Host-Gerät gehört (zum Beispiel Endpunkt, Schalter, Root-Komplex usw.). Jeder dieser Adreßräume führt seine entsprechenden oben angegebenen Funktionen aus.
  • ANDERE AUSFÜHRUNGSFORMEN
  • 12 zeigt ein Blockdiagramm eines Speichermediums, in dem mehrere Anweisungen gespeichert sind einschließlich solcher zur Implementierung eines oder mehrerer Aspekte der EGIO-Zusammenschaltarchitektur und des Kommunikationsprotokolls gemäß einer weiteren Ausführungsform der vorliegenden Erfindung.
  • Allgemein gesagt, zeigt 12 ein Maschinenzugriffsmedium/-gerät 1200 mit darin gespeichertem Inhalt 1202 einschließlich mindestens eines Subsatzes, der bei Ausführung durch eine Zugriffsmaschine die innovative EGIO-Schnittstelle 106 der vorliegenden Erfindung implementiert. In diesem Beispiel können als Maschinenzugriffsmedium 1200 eine beliebige Anzahl von dem Fachmann bekannten Medien verwendet werden, wie zum Beispiel flüchtige Speichergeräte, nichtflüchtige Speichergeräte, magnetische Speichermedien, optische Speichermedien, fortgepflanzte Signale und dergleichen. Desgleichen reflektieren die ausführbaren Anweisungen eine beliebige Anzahl von in der Technik bekannten Softwaresprachen, wie zum Beispiel C++, Visual Basic, HTML (Hypertext Markup Language), Java, XML (eXtensible Markup Language) und dergleichen. Außerdem versteht es sich, daß das Medium 1200 nicht am gleichen Standort wie ein Hostsystem untergebracht sein muß. Das heißt, Medium 1200 kann auch in einem entfernten Server untergebracht sein, der kommunikativ mit einem Ausführungssystem gekoppelt ist und Zugriff auf dieses hat. Dementsprechend ist die Softwarerimplementierung von 12 als illustrativ zu betrachten, da davon ausgegangen wird, daß andere Speichermedien und Softwareausführungsformen in den Geltungsbereich der vorliegenden Erfindung fallen.
  • Obwohl die Erfindung sowohl in der ausführlichen Beschreibung als auch in der Zusammenfassung in sprachspezifischen und strukturellen Merkmalen und/oder methodologischen Schritten beschrieben wurde, versteht es sich, daß die in den beigefügten Ansprüchen definierte Erfindung nicht unbedingt auf die beschriebenen spezifischen Merkmale oder Schritte beschränkt ist. Die spezifischen Merkmale und Schritte werden vielmehr als beispielhafte Formen zur Implementierung der beanspruchten Erfindung offenbart. Es ist jedoch augenscheinlich, daß verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne von dem breiteren Geltungsbereich der vorliegenden Erfindung abzuweichen. Die vorliegende Spezifikation und die Figuren sind daher als illustrativ, nicht als restriktiv zu betrachten. Die Beschreibung und die Zusammenfassung sind nicht als erschöpfend oder als Beschränkung zu verstehen, daß heißt, sie dienen nicht dem Zweck, die vorliegende Erfindung auf die präzisen offenbarten Formen zu begrenzen.
  • Die in den folgenden Ansprüchen verwendeten Ausdrücke sind nicht in dem Sinne zu verstehen, daß sie die Erfindung auf die in der Spezifikation offenbarten spezifischen Ausführungsformen begrenzen. Vielmehr ist der Geltungsbereich der Erfindung gänzlich durch die folgenden Ansprüche zu bestimmen.

Claims (26)

  1. Verfahren, umfassend: Initialisieren (602) eines Flußregelungsmechanismus innerhalb einer allgemeinen Eingabe/Ausgabe-Schnittstelle eines Sendegeräts, das nach Initialisierung eines virtuellen Kanals mit diesem verknüpft wird; und Verfolgen der Pufferverfügbarkeit in einem entfernten Empfangsgerät, das eine allgemeine Eingabe/Ausgabe-Schnittstelle aufweist, die mit der allgemeinen Eingabe/Ausgabe-Schnittstelle des Sendegeräts über den virtuellen Kanal gekoppelt ist, indem eine Anzeige überwacht wird, die mit einer Inhaltsmenge verknüpft ist, die von der allgemeinen Eingabe/Ausgabe-Schnittstelle des Sendegeräts an die entfernte allgemeine Eingabe/Ausgabe-Schnittstelle des Empfangsgeräts übertragen wird; und selektives Suspendieren der Übertragung (614) eines Pakets an die entfernte allgemeine Eingabe/Ausgabe-Schnittstelle des Empfangsgeräts über den virtuellen Kanal, wenn die allgemeine Eingabe/Ausgabe-Schnittstelle des Sendegeräts bestimmt, daß die Verfügbarkeit des Empfangspuffers eine Schwelle erreicht hat; gekennzeichnet durch Bestimmen gemäß Ordnungsregeln, welchen Pakettypen es ermöglicht werden soll, das nicht übertragene Paket zu umgehen.
  2. Verfahren nach Anspruch 1, ferner umfassend: Markieren von Transaktionen durch Hinzufügen eines Transaktions-Descriptors zu einem Paket, der ein Ordnungsattribut einschließlich des Ordnungstyps enthält.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Schwelle zum Verhindern einer Pufferüberlaufbedingung gesetzt wird.
  4. Verfahren nach Anspruch 1 oder 2, ferner umfassend: Wiederaufnehmen der Übertragung des Inhalts auf dem virtuellen Kanal, wenn die allgemeine Eingabe/Ausgabe-Schnittstelle des Sendegeräts eine Anzeige von der entfernten allgemeinen Eingabe/Ausgabe-Schnittstelle des Empfangsgeräts empfängt, daß der Empfangspuffer verfügbar ist.
  5. Verfahren nach Anspruch 4, wobei die empfangene Anzeige ein Aktualisierungs-Flußregelungspaket ist.
  6. Verfahren nach Anspruch 1 oder 2, ferner umfassend: Wiederaufnehmen der Übertragung des Inhalts auf dem virtuellen Kanal, nachdem ein Zeitraum verstrichen ist.
  7. Verfahren nach Anspruch 1 oder 2, wobei das den Flußregelungsmechanismus initialisierende Element umfaßt: Empfangen einer Anzeige von der entfernten allgemeinen Eingabe/Ausgabe-Schnittstelle des Empfangsgeräts betreffend eine Anzahl von Krediten, die der Ubertragung an die entfernte allgemeine Eingabe/Ausgabe-Schnittstelle von dem Sendegerät zugewiesen sind, wobei ein Kredit mit einer Inhaltsmenge verknüpft ist.
  8. Verfahren nach Anspruch 7, wobei das Initialisierungselement ferner umfaßt: Einrichten eines oder mehrerer Kreditverbrauchspuffer und eines Kreditlimitpuffers in der allgemeinen Eingabe/Ausgabe-Schnittstelle des Sendegeräts, wobei der Kreditlimitpuffer mit einer Anzeige der Kredite gefüllt wird, die von der entfernten allgemeinen Eingabe/Ausgabe-Schnittstelle des Empfangsgeräts zugewiesen werden.
  9. Verfahren nach Anspruch 7, ferner umfassend: Bestimmen einer Anzahl von Krediten, die von einer voraussichtlichen Inhaltsübertragung von der allgemeinen Eingabe/Ausgabe-Schnittstelle des Sendegeräts zu der entfernten allgemeinen Eingabe/Ausgabe-Schnittstelle des Empfangsgeräts verbraucht werden können; und selektives Übertragen (616) des Inhalts an die entfernte allgemeine Eingabe/Ausgabe-Schnittstelle des Empfangsgeräts, wenn die festgelegte Anzahl von Krediten, die nach Hinzufügen zum Kreditverbrauchspuffer durch das Sendegerät von der voraussichtlichen Übertragung verbraucht werden können, nicht die Anzeige von Krediten überschreitet, die dem Kreditlimitpuffer zugewiesen wurden.
  10. Verfahren nach Anspruch 9, ferner umfassend: Aktualisieren (618) des Kreditverbrauchspuffers mit dem Sendegerät mit einer Anzeige der durch eine Übertragung verbrauchten Kredite, wenn die Übertragung durchgeführt wird.
  11. Verfahren nach Anspruch 9, ferner umfassend: Suspendieren der Übertragung des Inhalts, wenn vom Sendegerät bestimmt wird, daß die von der voraussichtlichen Übertragung zu verbrauchenden Kredite bewirken würden, daß der Kreditverbrauchspuffer über die von Kreditlimitpuffer erlaubte Grenze hinaus ansteigen würde.
  12. Verfahren nach Anspruch 11, ferner umfassend: Empfangen einer Anzeige von der entfernten allgemeinen Eingabe/Ausgabe-Schnittstelle, die eine Kreditverfügbarkeit anzeigt.
  13. Verfahren nach Anspruch 12, ferner umfassend: Aktualisieren des Kreditverbrauchsregisters in der allgemeinen Eingabe/Ausgabe-Schnittstelle des Sendegeräts, wodurch die Kreditverfügbarkeit reflektiert wird, die in der empfangenen Anzeige von der entfernten allgemeinen Eingabe/Ausgabe-Schnittstelle angegeben ist.
  14. Allgemeine Eingabe/Ausgabe-Schnittstelle in einem Sendegerät, umfassend: eine physische Schicht (206) zum Koppeln der allgemeinen Eingabe/Ausgabe-Schnittstelle an die Kommunikationslink einer allgemeinen Eingabe/Ausgabe-Schnittstelle; und eine über eine Datenlinkschicht (204) mit der physischen Schicht (206) gekoppelte Transaktionsschicht (202), die einen Flußregelungsmechanismus enthält, der dynamisch nach Initialisierung eines virtuellen Kanals zwischen der allgemeinen Eingabe/Ausgabe-Schnittstelle und einer entfernten allgemeinen Eingabe/Ausgabe-Schnittstelle des Empfangsgeräts eingerichtet wird, um eine Fähigkeit der entfernten allgemeinen Eingabe/Ausgabe-Schnittstelle zu überwachen, Übertragungen von der allgemeinen Eingabe/Ausgabe-Schnittstelle zu empfangen und weitere Übertragungen zu suspendieren, wenn bestimmt wird, daß weitere Übertragungen zu einer Überlaufbedingung an der entfernten allgemeinen Eingabe/Ausgabe-Schnittstelle im Empfangsgerät führen würden; dadurch gekennzeichnet, daß das Sendegerät entsprechend der Ordnungsregeln bestimmt, welche Pakettypen ein nicht übertragenes Paket umgehen dürfen.
  15. Allgemeine Eingabe/Ausgabe-Schnittstelle nach Anspruch 14, wobei die Transaktionsschicht (202) Transaktionen markiert, indem sie einen Transaktions-Descriptor zu einem Paket hinzufügt, der ein Ordnungsattribut einschließlich des Ordnungstyps enthält.
  16. Allgemeine Eingabe/Ausgabe-Schnittstelle nach Anspruch 14 oder 15, wobei ein Flußregelungsmechanismus initialisiert und mit jedem aus einer Mehrzahl von Kanälen verknüpft wird, die in der allgemeinen Eingabe/Ausgabe-Schnittstelle und der entfernten allgemeinen Eingabe/Ausgabe-Schnittstelle eingerichtet wurden.
  17. Allgemeine Eingabe/Ausgabe-Schnittstelle nach Anspruch 16, wobei die Suspendierung von Übertragungen in einem aus einer Mehrzahl von Kanälen nicht die Übertragung auf einem der anderen eingerichteten virtuellen Kanäle beeinflußt.
  18. Allgemeine Eingabe/Ausgabe-Schnittstelle nach Anspruch 17, wobei der Flußregelungsmechanismus ferner umfaßt: einen Kreditlimitpuffer, der mit einem von der entfernten allgemeinen Eingabe/Ausgabe-Schnittstelle empfangenen Wert gefüllt wird, der eine Anzahl von Flußregelungskrediten bezeichnet, die dem virtuellen Kanal während der Initialisierung des virtuellen Kanals zugewiesen wurden.
  19. Allgemeine Eingabe/Ausgabe-Schnittstelle nach Anspruch 18, wobei der Flußregelungsmechanismus ferner umfaßt: Einen Kreditverbrauchspuffer, der einen Wert unterhält, der mit einer Inhaltsmenge verknüpft ist, die an die entfernte allgemeine Eingabe/Ausgabe-Schnittstelle übertragen wird.
  20. Allgemeine Eingabe/Ausgabe-Schnittstelle nach Anspruch 19, wobei der Flußregelungsmechanismus des Sendegeräts bestimmt, ob die entfernte allgemeine Eingabe/Ausgabe-Schnittstelle des Empfangsgeräts eine voraussichtliche Übertragung von Inhalt durch Hinzufügen von Flußregelungskrediten empfangen kann, die durch die voraussichtliche Übertragung vom Kreditverbrauchspuffer verbraucht würden, um festzustellen, ob die voraussichtliche Übertragung bewirken würde, daß der Kreditverbrauchspuffer eine mit dem Kreditlimitpuffer verknüpfte Schwelle überschreiten würde.
  21. Allgemeine Eingabe/Ausgabe-Schnittstelle nach Anspruch 19, wobei der Flußregelungsmechanismus weitere Übertragungen auf einem virtuellen Kanal suspendiert, wenn der Kreditverbrauchspuffer die mit dem Kreditlimitpuffer verknüpfte Schwelle erreicht.
  22. Allgemeine Eingabe/Ausgabe-Schnittstelle nach Anspruch 21, wobei die mit dem Kreditlimitpuffer verknüpfte Schwelle eine Anzahl von Krediten ist, die der Kreditlimitpuffer angibt.
  23. Allgemeine Eingabe/Ausgabe-Schnittstelle nach Anspruch 21, wobei der Flußregelungsmechanismus die Übertragung auf dem virtuellen Kanal nach Empfang einer Aktualisierungsnachricht wiederaufnimmt, die angibt, daß die entfernte allgemeine Eingabe/Ausgabe-Schnittstelle bereit ist, zusätzliche Übertragungen zu empfangen.
  24. Allgemeine Eingabe/Ausgabe-Schnittstelle nach Anspruch 23, wobei die Aktualisierungsnachricht eine Anzeige der Kreditverfügbarkeit des Empfangspuffers enthält, wobei der Flußregelungsmechanismus den Kreditverbrauchspuffer mit der Anzeige der Kreditverfügbarkeit in der Aktualisierungsnachricht aktualisiert.
  25. Elektronische Komponente, geeignet zum Einsatz in einem elektronischen Gerät, umfassend eine allgemeine Eingabe/Ausgabe-Schnittstelle gemäß einem der Ansprüche 14 bis 24.
  26. Elektronische Vorrichtung, umfassend eine Mehrzahl von elektronischen Komponenten gemäß Anspruch 25.
DE60213616T 2001-08-24 2002-08-23 Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung Expired - Lifetime DE60213616T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US31470801P 2001-08-24 2001-08-24
US314708P 2001-08-24
PCT/US2002/026933 WO2003019393A1 (en) 2001-08-24 2002-08-23 A general intput/output architecture, protocol and related methods to implement flow control

Publications (2)

Publication Number Publication Date
DE60213616D1 DE60213616D1 (de) 2006-09-14
DE60213616T2 true DE60213616T2 (de) 2007-08-09

Family

ID=23221101

Family Applications (3)

Application Number Title Priority Date Filing Date
DE60213616T Expired - Lifetime DE60213616T2 (de) 2001-08-24 2002-08-23 Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung
DE60222782T Expired - Lifetime DE60222782D1 (de) 2001-08-24 2002-08-23 Eine allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zur unterstützung von bestehenden unterbrechungen
DE60226627T Expired - Lifetime DE60226627D1 (de) 2001-08-24 2002-08-23 Ehörige verfahren um datenintegrität zu verwalten

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE60222782T Expired - Lifetime DE60222782D1 (de) 2001-08-24 2002-08-23 Eine allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zur unterstützung von bestehenden unterbrechungen
DE60226627T Expired - Lifetime DE60226627D1 (de) 2001-08-24 2002-08-23 Ehörige verfahren um datenintegrität zu verwalten

Country Status (9)

Country Link
US (13) US7536473B2 (de)
EP (3) EP1421501B1 (de)
KR (3) KR100624610B1 (de)
CN (3) CN100357922C (de)
AT (3) ATE374971T1 (de)
AU (1) AU2002326752A1 (de)
DE (3) DE60213616T2 (de)
HK (2) HK1063862A1 (de)
WO (3) WO2003019394A1 (de)

Families Citing this family (224)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918021B2 (en) * 2001-05-10 2005-07-12 Hewlett-Packard Development Company, L.P. System of and method for flow control within a tag pipeline
ES2185496B1 (es) * 2001-07-17 2005-06-01 Universidad Politecnica De Valencia Equipo y metodo en linea para la deteccion, determinacion de la evolucion y cuantificacion de biomasa microbiana y otras sustancias que absorben a lo largo del espectro de luz durante el desarrollo de procesos biotecnologicos.
EP1421501B1 (de) 2001-08-24 2006-08-02 Intel Corporation Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung
US9836424B2 (en) * 2001-08-24 2017-12-05 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US6918060B2 (en) * 2001-10-31 2005-07-12 Intel Corporation Bounding data transmission latency based upon link loading and arrangement
US6880111B2 (en) * 2001-10-31 2005-04-12 Intel Corporation Bounding data transmission latency based upon a data transmission event and arrangement
US7099318B2 (en) * 2001-12-28 2006-08-29 Intel Corporation Communicating message request transaction types between agents in a computer system using multiple message groups
US6918001B2 (en) * 2002-01-02 2005-07-12 Intel Corporation Point-to-point busing and arrangement
US7065746B2 (en) * 2002-01-11 2006-06-20 Stone Bond Technologies, L.P. Integration integrity manager
US20040131072A1 (en) * 2002-08-13 2004-07-08 Starent Networks Corporation Communicating in voice and data communications systems
US7251704B2 (en) * 2002-08-23 2007-07-31 Intel Corporation Store and forward switch device, system and method
US8270423B2 (en) 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US7630305B2 (en) * 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US8233392B2 (en) * 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7447794B1 (en) * 2002-12-04 2008-11-04 Silicon Graphics, Inc. System and method for conveying information
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
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
US7512717B2 (en) * 2003-01-21 2009-03-31 Nextio Inc. Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture
US7174413B2 (en) * 2003-01-21 2007-02-06 Nextio Inc. Switching apparatus and method for providing shared I/O within a load-store fabric
US7219183B2 (en) * 2003-01-21 2007-05-15 Nextio, Inc. Switching apparatus and method for providing shared I/O within a load-store fabric
US7103064B2 (en) * 2003-01-21 2006-09-05 Nextio Inc. Method and apparatus for shared I/O in a load/store fabric
US7502370B2 (en) * 2003-01-21 2009-03-10 Nextio Inc. Network controller for obtaining a plurality of network port identifiers in response to load-store transactions from a corresponding plurality of operating system domains within a load-store architecture
US7493416B2 (en) * 2003-01-21 2009-02-17 Nextio Inc. Fibre channel controller shareable by a plurality of operating system domains within a 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
US7188209B2 (en) * 2003-04-18 2007-03-06 Nextio, Inc. Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets
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
US8032659B2 (en) * 2003-01-21 2011-10-04 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US7457906B2 (en) * 2003-01-21 2008-11-25 Nextio, Inc. Method and apparatus for shared I/O in a load/store fabric
US7836211B2 (en) * 2003-01-21 2010-11-16 Emulex Design And Manufacturing Corporation Shared input/output load-store architecture
US7046668B2 (en) 2003-01-21 2006-05-16 Pettey Christopher J 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
EP1646173A1 (de) * 2003-07-15 2006-04-12 Sony Corporation Funkkommunikationssystem, funkkommunikationseinrichtung, funkkommunikationsverfahren und computerprogramm
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US8098669B2 (en) 2003-08-04 2012-01-17 Intel Corporation Method and apparatus for signaling virtual channel support in communication networks
US20050058130A1 (en) * 2003-08-04 2005-03-17 Christ Chris B. Method and apparatus for assigning data traffic classes to virtual channels in communications networks
US7237098B2 (en) * 2003-09-08 2007-06-26 Ip-First, Llc Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US7167941B2 (en) 2003-09-10 2007-01-23 Intel Corporation Multi-port device configuration
US8112574B2 (en) * 2004-02-26 2012-02-07 Super Talent Electronics, Inc. Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes
US20050137966A1 (en) * 2003-12-19 2005-06-23 Munguia Peter R. Flow control credit synchronization
GB2409370A (en) * 2003-12-20 2005-06-22 Hewlett Packard Development Co A storage switch and plurality of data sinks
US7698361B2 (en) * 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US7672222B2 (en) * 2004-01-12 2010-03-02 Hewlett-Packard Development Company, L.P. Link failures
US7606253B2 (en) * 2004-01-12 2009-10-20 Hewlett-Packard Development Company, L.P. Successful transactions
US7436777B2 (en) * 2004-01-12 2008-10-14 Hewlett-Packard Development Company, L.P. Failed link training
US7613958B2 (en) * 2004-01-12 2009-11-03 Hewlett-Packard Development Company, L.P. Error detection in a system having coupled channels
US8046464B2 (en) * 2004-03-10 2011-10-25 The Boeing Company Quality of service resource management apparatus and method for middleware services
US7548758B2 (en) * 2004-04-02 2009-06-16 Nortel Networks Limited System and method for peer-to-peer communication in cellular systems
US8661332B2 (en) * 2004-04-30 2014-02-25 Microsoft Corporation Method and apparatus for document processing
US7512878B2 (en) * 2004-04-30 2009-03-31 Microsoft Corporation Modular document format
US7383500B2 (en) * 2004-04-30 2008-06-03 Microsoft Corporation Methods and systems for building packages that contain pre-paginated documents
US7549118B2 (en) * 2004-04-30 2009-06-16 Microsoft Corporation Methods and systems for defining documents with selectable and/or sequenceable parts
US7487448B2 (en) * 2004-04-30 2009-02-03 Microsoft Corporation Document mark up methods and systems
US20050254085A1 (en) * 2004-05-12 2005-11-17 Koji Oshikiri Image forming system
US7721159B2 (en) * 2005-02-11 2010-05-18 Hewlett-Packard Development Company, L.P. Passing debug information
US7624213B2 (en) * 2005-02-11 2009-11-24 Hewlett-Packard Development Company, L.P. Passing identification information
US20050289306A1 (en) * 2004-06-28 2005-12-29 Sridhar Muthrasanallur Memory read requests passing memory writes
US20050289271A1 (en) * 2004-06-29 2005-12-29 Martinez Alberto J Circuitry to selectively produce MSI signals
JP2006012001A (ja) * 2004-06-29 2006-01-12 Ifu Agency Kk 情報処理システム及び情報処理方法
US7266631B2 (en) * 2004-07-29 2007-09-04 International Business Machines Corporation Isolation of input/output adapter traffic class/virtual channel and input/output ordering domains
US7607070B2 (en) * 2004-09-13 2009-10-20 National Instruments Corporation System and method for in-line consistency checking of packetized data
US7617450B2 (en) 2004-09-30 2009-11-10 Microsoft Corporation Method, system, and computer-readable medium for creating, inserting, and reusing document parts in an electronic document
US7552242B2 (en) * 2004-12-03 2009-06-23 Intel Corporation Integrated circuit having processor and switch capabilities
US7738484B2 (en) * 2004-12-13 2010-06-15 Intel Corporation Method, system, and apparatus for system level initialization
US7464300B2 (en) * 2004-12-14 2008-12-09 Intel Corporation Method, apparatus and system to detect and signal sequential hot plug failure diagnostics
US7752632B2 (en) 2004-12-21 2010-07-06 Microsoft Corporation Method and system for exposing nested data in a computer-generated document in a transparent manner
US7770180B2 (en) 2004-12-21 2010-08-03 Microsoft Corporation Exposing embedded data in a computer-generated document
US7673060B2 (en) * 2005-02-01 2010-03-02 Hewlett-Packard Development Company, L.P. Systems and methods for providing reliable multicast messaging in a multi-node graphics system
US9026744B2 (en) * 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
US7987306B2 (en) * 2005-04-04 2011-07-26 Oracle America, Inc. Hiding system latencies in a throughput networking system
US8223745B2 (en) * 2005-04-22 2012-07-17 Oracle America, Inc. Adding packet routing information without ECRC recalculation
EP1894337A1 (de) * 2005-06-13 2008-03-05 Koninklijke Philips Electronics N.V. Verfahren und empfänger zur datenübertragung unter verwendung von taktbereichen
DE102005028221B4 (de) * 2005-06-17 2007-10-11 Infineon Technologies Ag Vorrichtung und Verfahren zum Schutz der Integrität von Daten
JP4684031B2 (ja) * 2005-07-11 2011-05-18 富士通株式会社 バス・システム、バス管理装置、ノード装置、およびバス管理装置用のプログラム
US8548963B2 (en) * 2005-08-09 2013-10-01 International Business Machines Corporation Context sensitive media and information
CN101268455B (zh) * 2005-08-10 2010-11-03 新加坡科技研究局 无线传输协议
US7315456B2 (en) * 2005-08-29 2008-01-01 Hewlett-Packard Development Company, L.P. Configurable IO subsystem
US7870263B2 (en) * 2005-12-27 2011-01-11 At&T Intellectual Property I, L.P. Carrier interoperability for critical services
US7917676B2 (en) * 2006-03-10 2011-03-29 Qualcomm, Incorporated Efficient execution of memory barrier bus commands with order constrained memory accesses
JP2007316722A (ja) * 2006-05-23 2007-12-06 Nec Electronics Corp 回路ボード
EP1863232A1 (de) * 2006-05-29 2007-12-05 Stmicroelectronics Sa Bandbreitenzuteiler auf einem Chip
ATE445277T1 (de) * 2006-06-22 2009-10-15 Xelerated Ab Prozessor und verfahren für einen prozessor
US8213294B2 (en) * 2006-06-27 2012-07-03 International Business Machines Corporation Mechanism for detecting and clearing I/O fabric lockup conditions for error recovery
US8149797B2 (en) * 2006-06-30 2012-04-03 Hewlett-Packard Development Company, L.P. Visualization of RF neighbor correlation in a single view
US7783817B2 (en) * 2006-08-31 2010-08-24 Qualcomm Incorporated Method and apparatus for conditional broadcast of barrier operations
US7945719B2 (en) * 2006-09-20 2011-05-17 Intel Corporation Controller link for manageability engine
US7500023B2 (en) * 2006-10-10 2009-03-03 International Business Machines Corporation Facilitating input/output processing by using transport control words to reduce input/output communications
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
KR100850355B1 (ko) 2006-12-05 2008-08-04 한국전자통신연구원 피어 투 피어 프락시 서버 및 그 통신 방법
EP1936854B1 (de) * 2006-12-20 2013-11-06 Alcatel Lucent Rückübertragungsbasiertes DSLAM und xDSL Modem für verlustbehaftete Medien
US20080263248A1 (en) * 2007-04-20 2008-10-23 Harriman David J Multi-drop extension for a communication protocol
US7953863B2 (en) * 2007-05-08 2011-05-31 Intel Corporation Techniques for timing optimization in wireless networks that utilize a universal services interface
US8391354B2 (en) * 2007-05-14 2013-03-05 Broadcom Corporation Method and system for transforming uncompressed video traffic to network-aware ethernet traffic with A/V bridging capabilities and A/V bridging extensions
DE102007029116A1 (de) * 2007-06-25 2009-01-02 Continental Automotive Gmbh Verfahren zum Betreiben eines Mikrocontrollers und einer Ausführungseinheit sowie ein Mikrocontroller und eine Ausführungseinheit
US8897211B2 (en) * 2007-06-29 2014-11-25 Alcatel Lucent System and methods for providing service-specific support for multimedia traffic in wireless networks
US8019910B2 (en) * 2007-07-31 2011-09-13 Hewlett-Packard Development Company, L.P. Transaction flow control in PCI express fabric
US8086769B2 (en) * 2008-01-17 2011-12-27 International Business Machines Corporation Method for detecting circular buffer overrun
US20100198999A1 (en) * 2009-02-05 2010-08-05 Qualcomm Incorporated Method and system for wireless usb transfer of isochronous data using bulk data transfer type
US7689751B2 (en) * 2008-02-15 2010-03-30 Sun Microsystems, Inc. PCI-express system
US7707346B2 (en) * 2008-03-12 2010-04-27 Lsi Corporation PCI express multi-root IOV endpoint retry buffer controller
JP2009284119A (ja) * 2008-05-21 2009-12-03 Yokogawa Electric Corp フィールドバス通信システム及びデータ管理装置
CN102112969A (zh) * 2008-06-01 2011-06-29 惠普开发有限公司 Pci express链路中的队列共享和重配置
US7818468B2 (en) * 2008-06-29 2010-10-19 Texas Instruments Incorporated Method and system for processing control information
US8218580B2 (en) 2008-07-15 2012-07-10 Intel Corporation Managing timing of a protocol stack
US8165080B2 (en) * 2008-08-22 2012-04-24 Qualcomm Incorporated Addressing schemes for wireless communication
JP5280135B2 (ja) * 2008-09-01 2013-09-04 株式会社日立製作所 データ転送装置
US8166207B2 (en) 2008-09-29 2012-04-24 Intel Corporation Querying a device for information
US9141446B2 (en) * 2008-10-24 2015-09-22 Sap Se Maintenance of message serialization in multi-queue messaging environments
US7907546B1 (en) * 2008-11-13 2011-03-15 Qlogic, Corporation Method and system for port negotiation
WO2010060206A1 (en) 2008-11-26 2010-06-03 Calgary Scientific Inc. Method and system for providing remote access to a state of an application program
US7895380B2 (en) * 2009-01-21 2011-02-22 Ati Technologies Ulc Communication protocol for sharing memory resources between components of a device
US10055105B2 (en) 2009-02-03 2018-08-21 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
US9727508B2 (en) * 2009-04-27 2017-08-08 Intel Corporation Address learning and aging for network bridging in a network processor
US20100296520A1 (en) * 2009-05-19 2010-11-25 Matthews David L Dynamic quality of service adjustment across a switching fabric
US8199759B2 (en) * 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
US9367487B1 (en) 2009-06-10 2016-06-14 Nvidia Corporation Mitigating main crossbar load using dedicated connections for certain traffic types
US8065465B1 (en) * 2009-06-10 2011-11-22 Nvidia Corporation Mitigating main crossbar load using dedicated connections for certain traffic types
US8325194B1 (en) 2009-06-10 2012-12-04 Nvidia Corporation Mitigating main crossbar load using dedicated connections for certain traffic types
US8918534B2 (en) * 2009-09-29 2014-12-23 Cleversafe, Inc. Writing data slices to ready and non-ready distributed storage units in a distributed storage network
US8973074B2 (en) * 2010-04-22 2015-03-03 Samsung Electronics Co., Ltd. Method and system for isochronous communication in audio/video networks
US9003466B2 (en) 2010-04-22 2015-04-07 Samsung Electronics Co., Ltd. Method and system for isochronous data stream management in high speed audio/video networks
TWI413907B (zh) * 2010-06-02 2013-11-01 Realtek Semiconductor Corp 一種用於訊號傳輸之省電方法及裝置
US20130151750A1 (en) * 2010-08-19 2013-06-13 Balaji Kanigicherla Multi-root input output virtualization aware switch
US9741084B2 (en) 2011-01-04 2017-08-22 Calgary Scientific Inc. Method and system for providing remote access to data for display on a mobile device
TWI428758B (zh) * 2011-01-13 2014-03-01 Prolific Technology Inc 電腦系統之操作方法
CA2734860A1 (en) 2011-03-21 2012-09-21 Calgary Scientific Inc. Method and system for providing a state model of an application program
US9430432B2 (en) * 2011-04-21 2016-08-30 Ineda Systems Pvt. Ltd. Optimized multi-root input output virtualization aware switch
JP2014522066A (ja) * 2011-08-09 2014-08-28 エルエスアイ コーポレーション 入出力デバイスとコンピューティングホストとの相互運用
US9720747B2 (en) * 2011-08-15 2017-08-01 Calgary Scientific Inc. Method for flow control and reliable communication in a collaborative environment
CN103782541B (zh) 2011-08-15 2018-11-27 卡尔加里科学公司 一种提供远程访问至少一个应用程序的方法
US8681606B2 (en) * 2011-08-30 2014-03-25 International Business Machines Corporation Implementing redundancy on infiniband (IB) networks
US8943257B2 (en) 2011-09-30 2015-01-27 Intel Corporation Protocol neutral fabric
CN103959708B (zh) 2011-09-30 2017-10-17 卡尔加里科学公司 包括用于协作远程应用共享和注释的交互式数字表层的非耦合应用扩展
RU2611041C9 (ru) 2011-11-23 2017-08-29 Калгари Сайентифик Инк. Способы и системы для совместной конференцсвязи и совместного использования программного приложения
WO2013128284A1 (en) 2012-03-02 2013-09-06 Calgary Scientific Inc. Remote control of an application using dynamic-linked library (dll) injection
TWI584120B (zh) * 2012-03-23 2017-05-21 Lsi公司 用於動態調適快取的方法及系統
US8437343B1 (en) * 2012-05-22 2013-05-07 Intel Corporation Optimized link training and management mechanism
US9729673B2 (en) 2012-06-21 2017-08-08 Calgary Scientific Inc. Method and system for providing synchronized views of multiple applications for display on a remote computing device
MY169964A (en) 2012-06-29 2019-06-19 Intel Corp An architected protocol for changing link operating mode
JP2014023094A (ja) * 2012-07-23 2014-02-03 Fujitsu Ltd パケットスイッチ、伝送装置及びパケット伝送方法
WO2014019117A1 (en) * 2012-07-30 2014-02-06 Hewlett-Packard Development Company, L. P. Booting printer
JP2014033318A (ja) * 2012-08-02 2014-02-20 Fujitsu Ltd パケット通信を行うシステムおよび通信方法
US9201829B2 (en) * 2012-09-06 2015-12-01 Apple Inc. Low power, area-efficient tracking buffer
US9092581B2 (en) * 2012-10-09 2015-07-28 Intel Corporation Virtualized communication sockets for multi-flow access to message channel infrastructure within CPU
US8958302B2 (en) * 2012-12-04 2015-02-17 Intel Corporation Apparatus, system and method of controlling data flow over a wireless communication link with credit allocation
CN103929684B (zh) * 2013-01-14 2018-06-15 华为技术有限公司 一种基于流媒体选择码流分段的方法、播放器和终端
US9075952B2 (en) * 2013-01-17 2015-07-07 Intel Corporation Controlling bandwidth allocations in a system on a chip (SoC)
US9395924B2 (en) 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US20140281099A1 (en) * 2013-03-14 2014-09-18 Broadcom Corporation METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR CONTROLLING FLOW OF PCIe TRANSPORT LAYER PACKETS
US9229894B2 (en) * 2013-04-09 2016-01-05 Apple Inc. Protocol conversion involving multiple virtual channels
US9160678B2 (en) * 2013-04-15 2015-10-13 International Business Machines Corporation Flow control credits for priority in lossless ethernet
JP5932146B2 (ja) * 2013-05-20 2016-06-08 華為技術有限公司Huawei Technologies Co.,Ltd. ピーシーアイエクスプレスのエンドポイントデバイスにアクセスするための方法、コンピューターシステム、および、装置
US9552323B1 (en) * 2013-07-05 2017-01-24 Altera Corporation High-speed peripheral component interconnect (PCIe) input-output devices with receive buffer management circuitry
JP6060051B2 (ja) * 2013-08-08 2017-01-11 アラクサラネットワークス株式会社 パケット中継装置及びパケット中継方法
US10218524B2 (en) 2013-09-17 2019-02-26 Cisco Technology, Inc. Bit indexed explicit replication for layer 2 networking
US11451474B2 (en) 2013-09-17 2022-09-20 Cisco Technology, Inc. Equal cost multi-path with bit indexed explicit replication
US10003494B2 (en) 2013-09-17 2018-06-19 Cisco Technology, Inc. Per-prefix LFA FRR with bit indexed explicit replication
US9438432B2 (en) * 2013-09-17 2016-09-06 Cisco Technology, Inc. Bit indexed explicit replication packet encapsulation
US9806897B2 (en) 2013-09-17 2017-10-31 Cisco Technology, Inc. Bit indexed explicit replication forwarding optimization
US9544230B2 (en) 2013-09-17 2017-01-10 Cisco Technology, Inc. Migration support for bit indexed explicit replication
US9942053B2 (en) 2013-09-17 2018-04-10 Cisco Technology, Inc. Bit indexed explicit replication using internet protocol version 6
US10461946B2 (en) 2013-09-17 2019-10-29 Cisco Technology, Inc. Overlay signaling for bit indexed explicit replication
JP6046016B2 (ja) * 2013-09-25 2016-12-14 株式会社日立製作所 伝送システムおよび伝送方法
US9747244B2 (en) 2013-11-22 2017-08-29 Qualcomm Incorporated Clockless virtual GPIO
GB201321148D0 (en) * 2013-11-29 2014-01-15 Bridgeworks Ltd Data transfer
JP2017505473A (ja) 2013-11-29 2017-02-16 カルガリー サイエンティフィック インコーポレイテッド クライアントサーバリモートアクセスシステムにおけるクライアントの非管理サービスへの接続の提供方法
US9471522B2 (en) 2013-12-04 2016-10-18 International Business Machines Corporation Resource allocation by virtual channel management and bus multiplexing
US10270705B1 (en) * 2013-12-18 2019-04-23 Violin Systems Llc Transmission of stateful data over a stateless communications channel
US9385962B2 (en) * 2013-12-20 2016-07-05 Intel Corporation Method and system for flexible credit exchange within high performance fabrics
BR112016012902A2 (pt) * 2014-01-16 2017-08-08 Intel Corp Aparelho, método e sistema para um mecanismo de configuração rápida
US9563591B2 (en) 2014-03-06 2017-02-07 International Business Machines Corporation Peripheral component interconnect express (PCIe) ping in a switch-based environment
WO2015138245A1 (en) * 2014-03-08 2015-09-17 Datawise Systems, Inc. Methods and systems for converged networking and storage
US9619427B2 (en) 2014-04-21 2017-04-11 Qualcomm Incorporated Hybrid virtual GPIO
US9733847B2 (en) * 2014-06-02 2017-08-15 Micron Technology, Inc. Systems and methods for transmitting packets in a scalable memory system protocol
US9904645B2 (en) * 2014-10-31 2018-02-27 Texas Instruments Incorporated Multicore bus architecture with non-blocking high performance transaction credit system
US9710406B2 (en) 2014-12-15 2017-07-18 Intel Corporation Data transmission using PCIe protocol via USB port
US9747245B2 (en) * 2014-12-17 2017-08-29 Intel Corporation Method, apparatus and system for integrating devices in a root complex
CN105867835A (zh) * 2015-01-23 2016-08-17 深圳市硅格半导体有限公司 存储装置数据服务质量管理方法及存储装置
US9906378B2 (en) 2015-01-27 2018-02-27 Cisco Technology, Inc. Capability aware routing
EP3251286B1 (de) 2015-01-30 2019-10-02 Calgary Scientific Inc. Hochgradig skalierbare fehlertolerante fernzugangsarchitektur und verfahren zur verbindung damit
US10015264B2 (en) 2015-01-30 2018-07-03 Calgary Scientific Inc. Generalized proxy architecture to provide remote access to an application framework
US9934179B2 (en) * 2015-02-17 2018-04-03 Mediatek Inc. Wafer-level package with at least one input/output port connected to at least one management bus
US10341221B2 (en) 2015-02-26 2019-07-02 Cisco Technology, Inc. Traffic engineering for bit indexed explicit replication
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10089275B2 (en) 2015-06-22 2018-10-02 Qualcomm Incorporated Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system
US10176126B1 (en) * 2015-06-29 2019-01-08 Cadence Design Systems, Inc. Methods, systems, and computer program product for a PCI implementation handling multiple packets
TWI553467B (zh) * 2015-08-24 2016-10-11 鴻海精密工業股份有限公司 記憶體自檢修正系統及方法
US10229076B2 (en) 2015-09-09 2019-03-12 International Business Machines Corporation Peripheral component interconnect express (PCIE) pseudo-virtual channels using vendor defined messages
US10140242B2 (en) 2015-09-10 2018-11-27 Qualcomm Incorporated General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US9985891B2 (en) * 2016-04-07 2018-05-29 Oracle International Corporation Congestion management in distributed systems using autonomous self-regulation
US10630743B2 (en) 2016-09-23 2020-04-21 Cisco Technology, Inc. Unicast media replication fabric using bit indexed explicit replication
US10637675B2 (en) 2016-11-09 2020-04-28 Cisco Technology, Inc. Area-specific broadcasting using bit indexed explicit replication
KR20180063419A (ko) 2016-12-01 2018-06-12 삼성전자주식회사 호스트와 양방향 통신을 수행하도록 구성된 스토리지 장치 및 그것의 동작 방법
US10397144B2 (en) * 2016-12-22 2019-08-27 Intel Corporation Receive buffer architecture method and apparatus
US10572434B2 (en) 2017-02-27 2020-02-25 International Business Machines Corporation Intelligent certificate discovery in physical and virtualized networks
US10447496B2 (en) 2017-03-30 2019-10-15 Cisco Technology, Inc. Multicast traffic steering using tree identity in bit indexed explicit replication (BIER)
US10164794B2 (en) 2017-04-28 2018-12-25 Cisco Technology, Inc. Bridging of non-capable subnetworks in bit indexed explicit replication
JP7087419B2 (ja) * 2018-02-02 2022-06-21 富士通株式会社 データ受信装置、データ送受信システム、及びデータ送受信システムの制御方法
CN110389711B (zh) * 2018-04-20 2023-04-04 伊姆西Ip控股有限责任公司 帮助端点设备实现sr-iov功能的方法、设备和非瞬态计算机可读介质
FR3081581B1 (fr) * 2018-05-22 2020-09-04 Bull Sas Procede d'envoi de donnees, programme d'ordinateur et systeme associes
WO2020068132A1 (en) * 2018-09-28 2020-04-02 Yang Shao Wen Interactive environments using visual computing and immersive reality
US11038749B2 (en) * 2018-12-24 2021-06-15 Intel Corporation Memory resource allocation in an end-point device
CN111416776A (zh) * 2019-01-07 2020-07-14 华为技术有限公司 传输数据的方法和网络设备
CN113785536A (zh) 2019-05-23 2021-12-10 慧与发展有限责任合伙企业 用于在数据驱动的智能网络中促进跟踪器分组的系统和方法
US10877761B1 (en) * 2019-12-08 2020-12-29 Mellanox Technologies, Ltd. Write reordering in a multiprocessor system
US11734105B2 (en) * 2020-07-06 2023-08-22 International Business Machines Corporation Efficient error reporting in a link interface
US20220012201A1 (en) * 2020-07-07 2022-01-13 Apple Inc. Scatter and Gather Streaming Data through a Circular FIFO
US11362939B2 (en) * 2020-08-31 2022-06-14 Micron Technology, Inc. Flow control for a multiple flow control unit interface
US11513848B2 (en) * 2020-10-05 2022-11-29 Apple Inc. Critical agent identification to modify bandwidth allocation in a virtual channel
US20210311895A1 (en) * 2020-11-16 2021-10-07 Intel Corporation Disaggregation of computing devices using enhanced retimers with circuit switching
KR102529761B1 (ko) 2021-03-18 2023-05-09 에스케이하이닉스 주식회사 PCIe 디바이스 및 그 동작 방법
KR102521902B1 (ko) * 2021-03-23 2023-04-17 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
KR102496994B1 (ko) 2021-03-23 2023-02-09 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
US20220327088A1 (en) * 2021-04-12 2022-10-13 Icron Technologies Corporation Predicting free buffer space in a usb extension environment
US11824795B2 (en) 2021-08-31 2023-11-21 Apple Inc. Communication channels with both shared and independent resources
US20230251980A1 (en) * 2022-02-10 2023-08-10 Mellanox Technologies, Ltd. Devices, methods, and systems for disaggregated memory resources in a computing environment
US11916802B2 (en) 2022-03-31 2024-02-27 International Business Machines Corporation Data transmission flow control regime
CN114895879B (zh) * 2022-07-14 2022-11-04 四川航天信息有限公司 管理系统设计方案确定方法、装置、设备及存储介质

Family Cites Families (190)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5897A (en) * 1848-10-31 Improvement in the manufacture of alkaline chromates
US3668810A (en) * 1970-07-17 1972-06-13 Cabana Theatres Inc Theater with separate viewing booths
US4430700A (en) 1981-07-31 1984-02-07 Norand Corporation System and method for communication between nodes of a closed loop local communication path
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
US4475192A (en) 1982-02-16 1984-10-02 At&T Bell Laboratories Data packet flow control scheme for switching networks
US4663748A (en) * 1984-04-12 1987-05-05 Unisearch Limited Local area network
CA1254981A (en) 1986-02-18 1989-05-30 Lester Kirkland Communications switching system
US5007051A (en) 1987-09-30 1991-04-09 Hewlett-Packard Company Link layer protocol and apparatus for data communication
US5001707A (en) * 1989-11-02 1991-03-19 Northern Telecom Limited Method of providing reserved bandwidth in a dual bus system
EP0462349B1 (de) * 1990-06-21 1995-02-22 International Business Machines Corporation Breitbandringkommunikationssystem und Zugriffssteuerungsverfahren
US5353382A (en) 1990-10-15 1994-10-04 California Institute Of Technology Programmable synapse for neural network applications
CA2060223C (en) * 1991-02-12 1999-07-20 Clarence C. Lee Injectable medical lubricating fluid composition and method of use
US5164938A (en) 1991-03-28 1992-11-17 Sprint International Communications Corp. Bandwidth seizing in integrated services networks
JP3278865B2 (ja) 1991-06-28 2002-04-30 日本電気株式会社 トラヒック制御方法
US5432907A (en) 1992-05-12 1995-07-11 Network Resources Corporation Network hub with integrated bridge
GB2268373A (en) * 1992-06-20 1994-01-05 Ibm Error recovery in an information communication system
US5463629A (en) 1992-07-13 1995-10-31 Ko; Cheng-Hsu Dynamic channel allocation method and system for integrated services digital network
CA2104753C (en) 1992-10-29 1999-02-16 Kotikalapudi Sriram Bandwidth allocation, transmission scheduling, and congestion avoidance in broadband atm networks
US5289461A (en) * 1992-12-14 1994-02-22 International Business Machines Corporation Interconnection method for digital multimedia communications
US5353282A (en) * 1993-03-18 1994-10-04 Northern Telecom Limited Local area network embedded in the communication switch core
JP2639335B2 (ja) * 1993-12-22 1997-08-13 日本電気株式会社 Atm網における輻輳制御方式
US5463762A (en) 1993-12-30 1995-10-31 Unisys Corporation I/O subsystem with header and error detection code generation and checking
US5457701A (en) 1994-01-06 1995-10-10 Scientific-Atlanta, Inc. Method for indicating packet errors in a packet-based multi-hop communications system
US5485455A (en) * 1994-01-28 1996-01-16 Cabletron Systems, Inc. Network having secure fast packet switching and guaranteed quality of service
US5633867A (en) 1994-07-01 1997-05-27 Digital Equipment Corporation Local memory buffers management for an ATM adapter implementing credit based flow control
IT1266895B1 (it) 1994-07-26 1997-01-21 Cselt Centro Studi Lab Telecom Procedimento per l'allocazione ottimale delle risorse per il trasporto di flussi informativi a banda variabile su reti in tecnica atm, e nodo
US5689550A (en) * 1994-08-08 1997-11-18 Voice-Tel Enterprises, Inc. Interface enabling voice messaging systems to interact with communications networks
US5450411A (en) 1994-09-02 1995-09-12 At&T Global Information Solutions Company Network interface for multiplexing and demultiplexing isochronous and bursty data streams in ATM networks
US5561669A (en) 1994-10-26 1996-10-01 Cisco Systems, Inc. Computer network switching system with expandable number of ports
JP3563127B2 (ja) * 1994-11-09 2004-09-08 富士通株式会社 トラヒック制御方式
US5634620A (en) * 1994-11-10 1997-06-03 Verot; Thierry R. E. Clamp assembly for motor flushing device
US5570355A (en) 1994-11-17 1996-10-29 Lucent Technologies Inc. Method and apparatus enabling synchronous transfer mode and packet mode access for multiple services on a broadband communication network
US5693647A (en) 1994-12-22 1997-12-02 Ligand Pharmaceuticals Incorporated Steroid receptor modulator compounds and methods
US5513314A (en) * 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
US5583995A (en) * 1995-01-30 1996-12-10 Mrj, Inc. Apparatus and method for data storage and retrieval using bandwidth allocation
US5594732A (en) * 1995-03-03 1997-01-14 Intecom, Incorporated Bridging and signalling subsystems and methods for private and hybrid communications systems including multimedia systems
US5600644A (en) * 1995-03-10 1997-02-04 At&T Method and apparatus for interconnecting LANs
US5668810A (en) * 1995-04-26 1997-09-16 Scientific-Atlanta, Inc. Data transmission protocol method and apparatus
JP3434642B2 (ja) 1995-07-07 2003-08-11 株式会社東芝 パケットスケジューリング装置
US5917805A (en) 1995-07-19 1999-06-29 Fujitsu Network Communications, Inc. Network switch utilizing centralized and partitioned memory for connection topology information storage
US5745837A (en) 1995-08-25 1998-04-28 Terayon Corporation Apparatus and method for digital data transmission over a CATV system using an ATM transport protocol and SCDMA
JPH09116541A (ja) * 1995-10-16 1997-05-02 Toshiba Corp 通信制御装置
US5844887A (en) * 1995-11-30 1998-12-01 Scorpio Communications Ltd. ATM switching fabric
US5793997A (en) 1996-01-11 1998-08-11 Hewlett-Packard Company Interface architecture for connection to a peripheral component interconnect bus
JP2929991B2 (ja) * 1996-01-29 1999-08-03 日本電気株式会社 最適化クレジット制御方法
BR9707253A (pt) * 1996-01-31 1999-06-01 Ipsilon Networks Inc Processos de transmitir pacetes entre um nó a montante e um nó a jusante em uma rede e de comutar um fluxo em um primeiro nó produto de programa de computador unídade de comutação básica em um sistema para transmitir pacotes em uma rede unidade de porta de comutador e agente de comutação
US5771387A (en) * 1996-03-21 1998-06-23 Intel Corporation Method and apparatus for interrupting a processor by a PCI peripheral across an hierarchy of PCI buses
US5748613A (en) * 1996-03-29 1998-05-05 Hewlett-Packard Company Communication pacing method
US5938224A (en) * 1996-04-08 1999-08-17 Brackett; Douglas C. Hydraulic bicycle with conjugate drive motors and variable stroke crankshaft
US5983278A (en) * 1996-04-19 1999-11-09 Lucent Technologies Inc. Low-loss, fair bandwidth allocation flow control in a packet switch
US5850557A (en) * 1996-05-10 1998-12-15 Intel Corporation Method and apparatus for reducing bus bridge thrashing by temporarily masking agent requests to allow conflicting requests to be completed
US6026460A (en) * 1996-05-10 2000-02-15 Intel Corporation Method and apparatus for sequencing system bus grants and disabling a posting buffer in a bus bridge to improve bus efficiency
US6400681B1 (en) 1996-06-20 2002-06-04 Cisco Technology, Inc. Method and system for minimizing the connection set up time in high speed packet switching networks
US6065052A (en) * 1996-07-01 2000-05-16 Sun Microsystems, Inc. System for maintaining strongly sequentially ordered packet flow in a ring network system with busy and failed nodes
US5867480A (en) 1996-09-12 1999-02-02 Cabletron Systems, Inc. Method and apparatus for controlling congestion in a network node
JPH10178451A (ja) * 1996-10-17 1998-06-30 Fujitsu Ltd ハイブリッド交換機、交換機、及びこれらの交換機におけるstmデータ再配置方法
US6249819B1 (en) 1996-12-06 2001-06-19 Fujitsu Network Communications, Inc. Method for flow controlling ATM traffic
US5953338A (en) 1996-12-13 1999-09-14 Northern Telecom Limited Dynamic control processes and systems for asynchronous transfer mode networks
FR2759518B1 (fr) * 1997-02-07 1999-04-23 France Telecom Procede et dispositif d'allocation de ressources dans un reseau numerique de transmission par paquets
US6018816A (en) * 1997-04-04 2000-01-25 Canon Kabushiki Kaisha Information processing system and method, image processing system and method, information processing apparatus and computer readable memory
US6044406A (en) 1997-04-08 2000-03-28 International Business Machines Corporation Credit-based flow control checking and correction method
US5825748A (en) 1997-04-08 1998-10-20 International Business Machines Corporation Credit-based flow control checking and correction system
FI109504B (fi) 1997-04-15 2002-08-15 Nokia Corp Reitin optimointi pakettipohjaisessa tietoliikenneverkossa
US5935224A (en) * 1997-04-24 1999-08-10 Microsoft Corporation Method and apparatus for adaptively coupling an external peripheral device to either a universal serial bus port on a computer or hub or a game port on a computer
US6253334B1 (en) * 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6208645B1 (en) 1997-05-30 2001-03-27 Apple Computer, Inc. Time multiplexing of cyclic redundancy functions in point-to-point ringlet-based computer systems
US5923655A (en) 1997-06-10 1999-07-13 E--Net, Inc. Interactive video communication over a packet data network
US6269464B1 (en) 1997-06-18 2001-07-31 Sutmyn Storage Corporation Error checking technique for use in mass storage systems
US5875308A (en) 1997-06-18 1999-02-23 International Business Machines Corporation Peripheral component interconnect (PCI) architecture having hot-plugging capability for a data-processing system
US6078565A (en) * 1997-06-20 2000-06-20 Digital Equipment Corporation Method and apparatus to expand an on chip FIFO into local memory
US6073142A (en) 1997-06-23 2000-06-06 Park City Group Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments
US6128666A (en) 1997-06-30 2000-10-03 Sun Microsystems, Inc. Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine
US6003062A (en) * 1997-07-16 1999-12-14 Fore Systems, Inc. Iterative algorithm for performing max min fair allocation
US6173333B1 (en) * 1997-07-18 2001-01-09 Interprophet Corporation TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols
US5948136A (en) * 1997-07-30 1999-09-07 Sony Corporation Hardware authentication mechanism for transmission of data between devices on an IEEE 1394-1995 serial bus network
DE19835668A1 (de) 1997-08-07 1999-02-25 Matsushita Electric Ind Co Ltd Übertragungsmedienverbindungsvorrichtung, steuernde Vorrichtung, gesteuerte Vorrichtung und Speichermedium
US6009448A (en) * 1997-08-18 1999-12-28 Industrial Technology Research Institute Pipelined parallel-serial architecture for a modified least mean square adaptive filter
US6170025B1 (en) * 1997-08-29 2001-01-02 Intel Corporation Distributed computer system supporting remote interrupts and lock mechanism
US6333929B1 (en) * 1997-08-29 2001-12-25 Intel Corporation Packet format for a distributed system
US6683850B1 (en) * 1997-08-29 2004-01-27 Intel Corporation Method and apparatus for controlling the flow of data between servers
US6055643A (en) * 1997-09-25 2000-04-25 Compaq Computer Corp. System management method and apparatus for supporting non-dedicated event detection
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6157972A (en) 1997-12-05 2000-12-05 Texas Instruments Incorporated Apparatus and method for processing packetized information over a serial bus
US6347097B1 (en) * 1997-12-05 2002-02-12 Texas Instruments Incorporated Method and apparatus for buffering received data from a serial bus
US6137793A (en) 1997-12-05 2000-10-24 Com21, Inc. Reverse path multiplexer for use in high speed data transmissions
US7283561B1 (en) * 1997-12-12 2007-10-16 Level 3 Communications, Llc Secure network architecture with quality of service
US6118761A (en) * 1997-12-18 2000-09-12 Advanced Micro Devices, Inc. Apparatus and method for generating rate control frames in a workgroup switch based on traffic contribution from a network switch port
US6493343B1 (en) * 1998-01-07 2002-12-10 Compaq Information Technologies Group System and method for implementing multi-pathing data transfers in a system area network
US5987610A (en) 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6198722B1 (en) * 1998-02-27 2001-03-06 National Semiconductor Corp. Flow control method for networks
JP3075251B2 (ja) 1998-03-05 2000-08-14 日本電気株式会社 非同期転送モード交換網における仮想パス帯域分配システム
US6618354B1 (en) 1998-03-13 2003-09-09 Hewlett-Packard Development Company, L.P. Credit initialization in systems with proactive flow control
US6279035B1 (en) * 1998-04-10 2001-08-21 Nortel Networks Limited Optimizing flow detection and reducing control plane processing in a multi-protocol over ATM (MPOA) system
US6266345B1 (en) 1998-04-24 2001-07-24 Xuan Zhon Ni Method and apparatus for dynamic allocation of bandwidth to data with varying bit rates
US6046979A (en) * 1998-05-04 2000-04-04 Cabletron Systems, Inc. Method and apparatus for controlling the flow of variable-length packets through a multiport switch
GB2337406B (en) 1998-05-11 2003-05-14 Fujitsu Ltd Scheduling circuitry and methods
JPH11328972A (ja) * 1998-05-18 1999-11-30 Mitsubishi Electric Corp 半導体装置、その設計方法およびその検査方法
US6577631B1 (en) 1998-06-10 2003-06-10 Merlot Communications, Inc. Communication switching module for the transmission and control of audio, video, and computer data over a single network fabric
US6134662A (en) * 1998-06-26 2000-10-17 Vlsi Technology, Inc. Physical layer security manager for memory-mapped serial communications interface
US6366968B1 (en) * 1998-06-26 2002-04-02 Intel Corporation Physical write packets processing when posted write error queue is full, with posted write error queue storing physical write requests when posted write packet fails
US6711632B1 (en) * 1998-08-11 2004-03-23 Ncr Corporation Method and apparatus for write-back caching with minimal interrupts
JP3543647B2 (ja) 1998-10-27 2004-07-14 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6421720B2 (en) * 1998-10-28 2002-07-16 Cisco Technology, Inc. Codec-independent technique for modulating bandwidth in packet network
EP1001574A1 (de) 1998-11-10 2000-05-17 International Business Machines Corporation Verfahren und System in einem Paketvermittlungsnetz zur dynamischen Anpassung der Bandbreite eines virtuellen Pfades mit kontinuierlichem Bitrate, in Übereinstimmung mit der Netzwerkbelastung
US6618782B1 (en) * 1998-11-23 2003-09-09 Advanced Micro Devices, Inc. Computer interconnection bus link layer
US6421751B1 (en) * 1998-11-23 2002-07-16 Advanced Micro Devices, Inc. Detecting a no-tags-free condition in a computer system having multiple outstanding transactions
US6499079B1 (en) 1998-11-23 2002-12-24 Advanced Micro Devices, Inc. Subordinate bridge structure for a point-to-point computer interconnection bus
US6457084B1 (en) * 1998-11-23 2002-09-24 Advanced Micro Devices, Inc. Target side distributor mechanism for connecting multiple functions to a single logical pipe of a computer interconnection bus
US6611891B1 (en) * 1998-11-23 2003-08-26 Advanced Micro Devices, Inc. Computer resource configuration mechanism across a multi-pipe communication link
US6457081B1 (en) * 1998-11-23 2002-09-24 Advanced Micro Devices, Inc. Packet protocol for reading an indeterminate number of data bytes across a computer interconnection bus
US6470410B1 (en) 1998-11-23 2002-10-22 Advanced Micro Devices, Inc. Target side concentrator mechanism for connecting multiple logical pipes to a single function utilizing a computer interconnection bus
US6690676B1 (en) 1998-11-23 2004-02-10 Advanced Micro Devices, Inc. Non-addressed packet structure connecting dedicated end points on a multi-pipe computer interconnect bus
US6938094B1 (en) 1999-09-17 2005-08-30 Advanced Micro Devices, Inc. Virtual channels and corresponding buffer allocations for deadlock-free computer system operation
US6483805B1 (en) 1998-12-28 2002-11-19 Nortel Networks Limited Internet differentiated services service for transaction applications
US6333931B1 (en) * 1998-12-28 2001-12-25 Cisco Technology, Inc. Method and apparatus for interconnecting a circuit-switched telephony network and a packet-switched data network, and applications thereof
US6928469B1 (en) 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
KR100434463B1 (ko) * 1999-01-07 2004-06-05 삼성전자주식회사 부호분할다중접속 통신시스템의 데이터 통신 장치 및 방법
US6343260B1 (en) 1999-01-19 2002-01-29 Sun Microsystems, Inc. Universal serial bus test system
US6680906B1 (en) 1999-03-31 2004-01-20 Cisco Technology, Inc. Regulating packet traffic in an integrated services network
US6775280B1 (en) * 1999-04-29 2004-08-10 Cisco Technology, Inc. Methods and apparatus for routing packets using policy and network efficiency information
JP2003512746A (ja) * 1999-05-21 2003-04-02 エイヴィシー・システムズ フリット・キャッシングを備えたファブリック・ルータ
US6625146B1 (en) 1999-05-28 2003-09-23 Advanced Micro Devices, Inc. Method and apparatus for operating a network switch in a CPU-less environment
US6393506B1 (en) 1999-06-15 2002-05-21 National Semiconductor Corporation Virtual channel bus and system architecture
JP2003507931A (ja) 1999-08-19 2003-02-25 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 自動繰り返し要求プロトコル
AU6863300A (en) * 1999-09-08 2001-04-10 Mellanox Technologies Ltd. Remote event handling in a packet network
US7010607B1 (en) * 1999-09-15 2006-03-07 Hewlett-Packard Development Company, L.P. Method for training a communication link between ports to correct for errors
US6950438B1 (en) * 1999-09-17 2005-09-27 Advanced Micro Devices, Inc. System and method for implementing a separate virtual channel for posted requests in a multiprocessor computer system
US7269728B1 (en) 1999-09-21 2007-09-11 Nortel Networks Limited Apparatus and method for distributing management keys in a multicast domain
US6947410B1 (en) * 1999-11-16 2005-09-20 Cisco Technology, Inc. System and method for communicating data packets using a backplane switch
JP2001175630A (ja) 1999-12-14 2001-06-29 Fujitsu Ltd データ送信装置、データ受信装置、データ転送装置および方法
US6810520B2 (en) * 1999-12-17 2004-10-26 Texas Instruments Incorporated Programmable multi-standard MAC architecture
US6460050B1 (en) 1999-12-22 2002-10-01 Mark Raymond Pace Distributed content identification system
US6922408B2 (en) * 2000-01-10 2005-07-26 Mellanox Technologies Ltd. Packet communication buffering with dynamic flow control
US20010047383A1 (en) 2000-01-14 2001-11-29 Dutta Prabal K. System and method for on-demand communications with legacy networked devices
US6628615B1 (en) 2000-01-18 2003-09-30 International Business Machines Corporation Two level virtual channels
US6757291B1 (en) 2000-02-10 2004-06-29 Simpletech, Inc. System for bypassing a server to achieve higher throughput between data network and data storage system
JP2001230810A (ja) * 2000-02-16 2001-08-24 Fujitsu Ltd パケット流量制御装置および方法
US6728211B1 (en) * 2000-03-07 2004-04-27 Cisco Technology, Inc. Method and apparatus for delaying packets being sent from a component of a packet switching system
US6735173B1 (en) * 2000-03-07 2004-05-11 Cisco Technology, Inc. Method and apparatus for accumulating and distributing data items within a packet switching system
US6810396B1 (en) * 2000-03-09 2004-10-26 Emc Corporation Managed access of a backup storage system coupled to a network
US6751214B1 (en) 2000-03-30 2004-06-15 Azanda Network Devices, Inc. Methods and apparatus for dynamically allocating bandwidth between ATM cells and packets
US7054279B2 (en) 2000-04-07 2006-05-30 Broadcom Corporation Method and apparatus for optimizing signal transformation in a frame-based communications network
US6381672B1 (en) * 2000-05-11 2002-04-30 Advanced Micro Devices, Inc. Speculative opening of a new page when approaching page boundary during read/write of isochronous streams
US6330225B1 (en) 2000-05-26 2001-12-11 Sonics, Inc. Communication system and method for different quality of service guarantees for different data flows
CN100499872C (zh) 2000-06-02 2009-06-10 雷迪塞斯公司 没有回声消除的ip语音通信的装置和方法
US6721353B1 (en) * 2000-06-21 2004-04-13 Cisco Technology, Inc. Network compatibility
US6901519B1 (en) 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
US6647412B1 (en) 2000-06-23 2003-11-11 Nokia Internet Communications Inc. Method and network for propagating status information
US6707821B1 (en) 2000-07-11 2004-03-16 Cisco Technology, Inc. Time-sensitive-packet jitter and latency minimization on a shared data link
ATE397346T1 (de) * 2000-07-25 2008-06-15 Juniper Networks Inc Netzwerkarchitektur und verfahren zur transparenten online-querschnittskodierung und zum transport von netzwerkkommunikationsdaten
US6658519B1 (en) * 2000-07-28 2003-12-02 International Business Machines Corporation Bus bridge with embedded input/output (I/O) and transaction tracing capabilities
US7154854B1 (en) * 2000-08-18 2006-12-26 Nortel Networks Limited Automatic distribution of RTS and frag thresholds
US7339892B1 (en) * 2000-08-18 2008-03-04 Nortel Networks Limited System and method for dynamic control of data packet fragmentation threshold in a wireless network
US6880084B1 (en) 2000-09-27 2005-04-12 International Business Machines Corporation Methods, systems and computer program products for smart card product management
US6601056B1 (en) * 2000-09-28 2003-07-29 Microsoft Corporation Method and apparatus for automatic format conversion on removable digital media
US20020154633A1 (en) 2000-11-22 2002-10-24 Yeshik Shin Communications architecture for storage-based devices
US20020112084A1 (en) * 2000-12-29 2002-08-15 Deen Gary D. Methods, systems, and computer program products for controlling devices through a network via a network translation device
US6721813B2 (en) * 2001-01-30 2004-04-13 Advanced Micro Devices, Inc. Computer system implementing a system and method for tracking the progress of posted write transactions
US6765885B2 (en) * 2001-02-09 2004-07-20 Asustek Computer Inc. Determination of acceptable sequence number ranges in a communications protocol
US7542474B2 (en) 2001-02-26 2009-06-02 Sony Corporation Method of and apparatus for providing isochronous services over switched ethernet including a home network wall plate having a combined IEEE 1394 and ethernet modified hub
US6763025B2 (en) 2001-03-12 2004-07-13 Advent Networks, Inc. Time division multiplexing over broadband modulation method and apparatus
US7072300B1 (en) * 2001-03-23 2006-07-04 Advanced Micro Devices, Inc. Action tag generation within a network based on priority or differential services information
US6745272B2 (en) * 2001-04-04 2004-06-01 Advanced Micro Devices, Inc. System and method of increasing bandwidth for issuing ordered transactions into a distributed communication system
US6639919B2 (en) 2001-05-01 2003-10-28 Adc Dsl Systems, Inc. Bit-level control for dynamic bandwidth allocation
US7023899B2 (en) * 2001-05-10 2006-04-04 Lucent Technologies Inc. Method for reliable signaling information transmission in a wireless communication system
US7426575B1 (en) * 2001-05-14 2008-09-16 Turin Networks Discard policy method and apparatus
US20020178243A1 (en) * 2001-05-15 2002-11-28 Kevin Collins Apparatus and method for centrally managing network devices
US6757768B1 (en) * 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US6832279B1 (en) * 2001-05-17 2004-12-14 Cisco Systems, Inc. Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node
US7012893B2 (en) * 2001-06-12 2006-03-14 Smartpackets, Inc. Adaptive control of data packet size in networks
US20030005039A1 (en) * 2001-06-29 2003-01-02 International Business Machines Corporation End node partitioning using local identifiers
US7372811B1 (en) 2001-08-07 2008-05-13 Cisco Technology, Inc. Load balancing model for multilink frame relay
US20030115513A1 (en) * 2001-08-24 2003-06-19 David Harriman Error forwarding in an enhanced general input/output architecture and related methods
US6691192B2 (en) * 2001-08-24 2004-02-10 Intel Corporation Enhanced general input/output architecture and related methods for establishing virtual channels therein
US7177971B2 (en) * 2001-08-24 2007-02-13 Intel Corporation General input/output architecture, protocol and related methods to provide isochronous channels
US9836424B2 (en) 2001-08-24 2017-12-05 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
EP1421501B1 (de) 2001-08-24 2006-08-02 Intel Corporation Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung
US6950394B1 (en) * 2001-09-07 2005-09-27 Agilent Technologies, Inc. Methods and systems to transfer information using an alternative routing associated with a communication network
US7315911B2 (en) * 2005-01-20 2008-01-01 Dot Hill Systems Corporation Method for efficient inter-processor communication in an active-active RAID system using PCI-express links
US6944719B2 (en) * 2002-05-15 2005-09-13 Broadcom Corp. Scalable cache coherent distributed shared memory processing system
US6760793B2 (en) * 2002-07-29 2004-07-06 Isys Technologies, Inc. Transaction credit control for serial I/O systems
US7301898B1 (en) * 2002-07-29 2007-11-27 Brocade Communications Systems, Inc. Credit sharing for fibre channel links with multiple virtual channels
US7808895B2 (en) * 2003-10-30 2010-10-05 Intel Corporation Isochronous device communication management
US20050137966A1 (en) * 2003-12-19 2005-06-23 Munguia Peter R. Flow control credit synchronization
US7032052B2 (en) * 2004-01-15 2006-04-18 Dell Products L.P. Information handling system capable of operating with multiple types of expansion cards in a common industry standard connector
US7296101B2 (en) * 2004-02-17 2007-11-13 Intel Corporation Method and system for using a patch module to process non-posted request cycles and to control completions returned to requesting device
US7430607B2 (en) 2005-05-25 2008-09-30 Microsoft Corporation Source throttling using CPU stamping
US8516165B2 (en) * 2005-10-19 2013-08-20 Nvidia Corporation System and method for encoding packet header to enable higher bandwidth efficiency across bus links
US7694049B2 (en) * 2005-12-28 2010-04-06 Intel Corporation Rate control of flow control updates
US7694025B1 (en) 2006-03-31 2010-04-06 Integrated Device Technology, Inc. Method and device for base address sorting and entry into base address registers

Also Published As

Publication number Publication date
US20130268712A1 (en) 2013-10-10
US20140189174A1 (en) 2014-07-03
US8819306B2 (en) 2014-08-26
EP1421501B1 (de) 2006-08-02
US7231486B2 (en) 2007-06-12
US20140129747A1 (en) 2014-05-08
DE60213616D1 (de) 2006-09-14
US9071528B2 (en) 2015-06-30
US20030115380A1 (en) 2003-06-19
AU2002326752A1 (en) 2003-03-10
KR20040029010A (ko) 2004-04-03
KR100647161B1 (ko) 2006-11-23
CN100357922C (zh) 2007-12-26
ATE335237T1 (de) 2006-08-15
EP1419446B1 (de) 2007-10-03
WO2003019394A1 (en) 2003-03-06
US20030158992A1 (en) 2003-08-21
HK1063862A1 (en) 2005-01-14
US7536473B2 (en) 2009-05-19
US20140185436A1 (en) 2014-07-03
CN100409606C (zh) 2008-08-06
US9736071B2 (en) 2017-08-15
KR20040029002A (ko) 2004-04-03
KR20040036919A (ko) 2004-05-03
WO2003019393A1 (en) 2003-03-06
EP1442548A2 (de) 2004-08-04
US7152128B2 (en) 2006-12-19
US7353313B2 (en) 2008-04-01
KR100624610B1 (ko) 2006-09-19
US9088495B2 (en) 2015-07-21
HK1064537A1 (en) 2005-01-28
DE60226627D1 (de) 2008-06-26
US20090193164A1 (en) 2009-07-30
US9602408B2 (en) 2017-03-21
CN1547705A (zh) 2004-11-17
US20150178241A1 (en) 2015-06-25
US20130254451A1 (en) 2013-09-26
US9565106B2 (en) 2017-02-07
US20030145134A1 (en) 2003-07-31
US8566473B2 (en) 2013-10-22
CN100367254C (zh) 2008-02-06
US20130254452A1 (en) 2013-09-26
US9049125B2 (en) 2015-06-02
EP1442548B1 (de) 2008-05-14
KR100750036B1 (ko) 2007-08-16
DE60222782D1 (de) 2007-11-15
ATE374971T1 (de) 2007-10-15
US9860173B2 (en) 2018-01-02
CN1547704A (zh) 2004-11-17
EP1421501A1 (de) 2004-05-26
WO2003019391A2 (en) 2003-03-06
ATE395759T1 (de) 2008-05-15
US20070038793A1 (en) 2007-02-15
EP1419446A1 (de) 2004-05-19
US20130117474A1 (en) 2013-05-09
WO2003019391A3 (en) 2003-05-30
CN1547823A (zh) 2004-11-17

Similar Documents

Publication Publication Date Title
DE60213616T2 (de) Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung
DE60219047T2 (de) Eine allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zum aufbau virtueller kanäle darin
DE60216299T2 (de) Allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zur bereitstellung virtueller kanäle
DE102009061279B3 (de) Bereitstellung eines Präfixes für einen Datenkopf
US20140304448A9 (en) General input/output architecture, protocol and related methods to implement flow control
DE112010002178T5 (de) Verfahren und vorrichtung für id-basierte ströme über pci-express
DE112013005090T5 (de) Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit
DE112008001727T5 (de) Endpunkt-zu-Endpunkt-Flusskontrolle in einem Netzwerk
DE112013007700T5 (de) Eingabe-Ausgabe-Datenausrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition