DE102009021865B4 - Bereitstellung eines Präfixes für einen Datenkopf - Google Patents
Bereitstellung eines Präfixes für einen Datenkopf Download PDFInfo
- Publication number
- DE102009021865B4 DE102009021865B4 DE102009021865.3A DE102009021865A DE102009021865B4 DE 102009021865 B4 DE102009021865 B4 DE 102009021865B4 DE 102009021865 A DE102009021865 A DE 102009021865A DE 102009021865 B4 DE102009021865 B4 DE 102009021865B4
- Authority
- DE
- Germany
- Prior art keywords
- prefix
- header
- tlp
- units
- opcode
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- Hintergrund
- Computersysteme enthalten eine Anzahl von Komponenten und Elementen, die typischerweise über einen Bus oder Interconnect gekoppelt sind. Bisher wurden Eingabe/Ausgabe (Input/Output(IO)-Geräte durch eine herkömmliche Mehrpunkt(multidrop)-Parallelbusarchitektur, als Peripheral Component Interconnect (PCI) bezeichnet, miteinander gekoppelt. In jüngster Zeit wurde eine neue Generation eines IO-Busses, als PCI-Express (PCIe) bezeichnet, verwendet, um schnellere Verbindung zwischen Geräten zu erleichtern, die ein serielles Bitübertragungsebene-Kommunikationsprotokoll (serial physical layer cmmunication protocol) aufweisen.
- Eine PCIe-Architektur enthält ein Schichtenprotokoll für Kommunikation zwischen den Geräten. Beispielsweise bilden eine physische Schicht, Sicherungsschicht und Transaktionsschicht einen PCIe-Protokollstapel. Die PCIe-Verbindung wird um dedizierte unidirektionale Paare von seriellen Punk-zu-Punkt-Verbindungen, als eine Lane bezeichnet wird, aufgebaut. Eine Verbindung zwischen Geräten enthält eine gewisse Anzahl von Lanes, wie zum Beispiel, eine, zwei, sechzehn, zweiunddreißig u. s. w. Die aktuelle PCIe-Spezifikation, PCI ExpressTM Specification Base Version 2.0 (am 17. Januar 2007 veröffentlicht) ist erhältlich unter http://www.pcisig.com/specifications/pciexpress/.
- Eine physische Schicht kann drei Arten von Verbindungsverkehr übertragen: geordnete Mengen, Datensicherungsschichtpakete (Data Link Layer Packets (DLLPs)) und Transaktionsschichtpakete (Transaction Layer Packets (TLPs)). Lokaler Verbindungsverkehr, der geordnete Mengen und DLLPs enthält, wird nicht weitergeleitet und überträgt keine Routing-Information. Im Gegensatz dazu können TLPs von Verbindung zu Verbindung unter Verwendung von Routing-Information, die in einem Paketkopf enthalten ist, gehen. Genauer gesagt enthält jedes TLP einen Drei- oder Vier-Doppelwort(Double Word (DW)) (12 oder 16 Byte)-Kopf. In dem 3DW- oder 4DW-Kopf befinden sich unter anderem zwei Felder: Typ und Format (Fmt), die das Format des Restes des Kopfes und das Routing-Verfahren definieren, das auf das gesamte TLP anzuwenden ist, wenn es sich zwischen Geräten in einem PCIe-System bewegt. Während der Kopf benötigte Information bereitstellt, ist sein Format fest und verhindert es Flexibilität hinsichtlich der Bereitstellung von zusätzlicher Information mittels des Kopfes.
- GLASER, Steve: Multi-Root IOV. In: PCI.SIG Developers Conference, Mai 2007, S. 1–80 offenbart ein Verfahren, umfassend Generieren eines Präfix-Kopfes mit einem Opcode-Feld und einem Präfix-spezifischen Feld für ein von einem Sender zu sendendes erstes Paket, umfassend Generieren des Opcode-Feldes, mit einem vorab festgelegten Wert zum Anzeigen des Vorhandenseins des Präfix-Kopfes und zum Anzeigen eines Opcode, und Senden des ersten Pakets von dem Sender an einen Empfänger entlang eines Interconnect, wobei das erste Paket den Präfix-Kopf, dem ein Kopf folgt, enthält.
- Zur prinzipiellen Anwendung von spezifischen PCIe-Übertragungsverfahren mit Transaktions-Layer-Paketen werden beispielhaft
US 2005/0144339 A1 US 2006/0253619 A1 - BUDRUK R. [u. a.]: PCI Express System Architecture. Inc.: MindShare, August 2003. S. 105–152 offenbart einen TLP-Header, der ein 2-Bit-Formatfeld FMT aufweist, welches zusätzlich zum 6-Bit-Befehlsfeld TYPE existiert und die Headerlänge variabel definiert und damit empfangsseitig auswertet.
- Der vorliegenden Erfindung liegt somit die Aufgabe zugrunde, die Flexibilität hinsichtlich der Bereitstellung von zusätzlichen Informationen eines Präfix-Kopfes zu erhöhen.
- Erfindungsgemäß wird diese Aufgabe gelöst durch ein Verfahren gemäß Anspruch 1, eine Vorrichtung gemäß Anspruch 7 und ein System gemäß Anspruch 12.
- Die jeweiligen Unteransprüche betreffen jeweilige vorteilhafte Ausführungsformen derselben.
- Kurzbeschreibung der Zeichnungen
-
1 zeigt ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung. -
2 zeigt einen Basis-TLP-Präfix-Kopf gemäß einer Ausführungsform der vorliegenden Erfindung. -
3 zeigt ein Blockdiagramm eines TLP-Präfixes, der an ein TLP angehängt ist, gemäß einer Ausführungsform der vorliegenden Erfindung. -
4 zeigt ein Blockdiagramm eines TLP-Präfix-Kopfes, der gemäß einer Ausführungsform der vorliegenden Erfindung erweitert ist. -
5 –5B zeigen Stapeln von TLP-Präfixen und Kopf gemäß einer Ausführungsform der vorliegenden Erfindung. -
6A –6C zeigen unterschiedliche Kopf-Kredit-Zuteilungen gemäß einer Ausführungsform der vorliegenden Erfindung. -
7 zeigt ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung. - Ausführliche Beschreibung
- Ausführungsformen können das PCIe-Architektur-Kopfformat zur Unterstützung von aufkommenden Anwendungsanforderungen erweitern. Genauer gesagt kann in zahlreichen Ausführungsformen ein TLP-Präfix, das eine architektierte Definition von zusätzlicher Kopfinformation ist, die an einen TLP-Kopf angehängt werden kann, verwendet werden, um Flexibilität von Information zu ermöglichen, die in einem TLP oder einem anderen derartigen Paketkopf bereitgestellt wird. Das heißt, während zum Beispiel hierin die Anwendung auf TLPs eines PCIe-Systems beschrieben wird, ist der Schutzbereich diesbezüglich nicht beschränkt und können Ausführungsformen verwendet werden, um Senden von zusätzlicher Kopfinformation für Pakete von zahlreichen Kommunikationsprotokollen zu ermöglichen.
- In unterschiedlichen Implementierungen kann dieser TLP-Präfix-Kopf als eine Kapselungsschicht für PCIe-Transaktionsschichtköpfe verwendet werden, zusätzliche Routing-Information bereitstellen, um Zwischen-Routing-Elementen beim Routen von TLPs zu helfen, Transakationsverarbeitungshinweise für einen Completer bereitstellen und/oder lieferantenspezifische Debug-Information bereitstellen. Ferner kann ein Präfix gemäß einer Ausführungsform der vorliegenden Erfindung verwendet werden, um Sicherheitsinformation bereitzustellen und für zukünftigen Gebrauch Modelle bereitzustellen, die erweiterte Köpfe benötigen können, um zusätzliche Information bereitzustellen, die in einem gegenwärtig spezifizierten Kopfformat fehlt.
- In
1 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt, das Geräte bzw. Einrichtungen enthält, die über eine serielle Verbindung mit einem Controller Hub gekoppelt sind. System100 enthält einen Prozessor105 und einen Systemspeicher110 , der mit einem Controller Hub115 gekoppelt ist. Der Prozessor105 enthält irgendein Verarbeitungselement, wie zum Beispiel einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Co-Prozessor oder einen anderen Prozessor. Der Prozessor105 ist mit dem Controller Hub115 über einen Frontseitenbus (Front-Side bus (FSB))106 gekoppelt. In einer Ausführungsform ist der FSB106 ein serieller Punkt-zu-Punkt (Point-to-Point(PtP))-Interconnet, wie oben beschrieben. - Der Systemspeicher
110 enthält irgendeinen Speicherbaustein, wie zum Beispiel einen Direktzugriffsspeicher (Random Access Memory (RAM)), nichtflüchtigen Speicher (Non-Volatile(NV))-Speicher oder einen anderen Speicher, der durch Einrichtungen in dem System100 zugänglich ist. Der Systemspeicher110 ist mit dem Controller Hub115 über eine Speicherschnittstelle116 gekoppelt. - In einer Ausführungsform ist der Controller Hub
115 ein Root-Hub oder Root-Controller in einer PCIe-Verbindungshierarchie. Beispiele für den Controller Hub115 schließen einen Chipsatz, einen Memory Controller Hub (MCH), eine Northbridge, einen Input/Output-Controller Hub (ICH), eine Southbridge und einen Root-Controller Hub ein. Hier ist der Controller Hub115 über eine serielle Verbindung119 mit einem Switch/einer Brücke120 gekoppelt. Eingabe/Ausgabe-Module117 und121 , die auch als Schnittstellen/Ports117 und121 bezeichnet werden können, schließen einen Schichtenprotokollstapel ein bzw. implementieren diesen, um Kommunikation zwischen dem Controller Hub115 und dem Switch120 zu liefern. In einer Ausführungsform sind mehrere Einrichtungen mit dem Switch120 koppelbar. Es sind auch Ausführungsformen denkbar, bei denen ein Prozessor und Chipsatz in demselben Gehäuse integriert sind. Ferner erfordert diese Technik keine Überarbeitung eines PCIe-Protokolls und kann sie unter anderem durch PCIe 2.0, 1.1-kompatible Einrichtungen bzw. Geräte implementiert werden. Somit können Ausführungsformen überall dort verwendet werden, wo ein PCIe-Interconnect zur Kommunikation verwendet wird. - Der Switch
120 lenkt Pakete/Nachrichten von einer Einrichtung125 stromaufwärts, d. h. eine Hierarchie zum Controller Hub115 hinauf, und stromabwärts, d. h. eine Hierarchie hinab weg vom Controller Hub115 zur Einrichtung125 . Eingabe/Ausgabe-Module122 und126 implementieren einen Schichtenprotokollstapel zur Kommunikation zwischen Switch120 und Einrichtung125 . Die Einrichtung125 enthält irgendeine interne oder externe Einrichtung oder Komponente, die mit einem elektronischen System, wie zum Beispiel einer E/A-Einrichtung, einem Network Interface Controller (NIC), einer Add-in-Karte, einem Audioprozessor, einem Netzwerkprozessor, einer Festplatte, einer Speichereinrichtung, einem Monitor, einem Drucker, einer Maus, einer Tastatur, einem Router, einer tragbaren Speichereinrichtung, einer Firewire-Einrichtung, einer USB(Universal Serial Bus)-Einrichtung, einem Scanner und anderen Eingabe/Ausgabe-Einrichtungen koppelbar ist. - Ein Graphikbeschleuniger
130 ist auch mit dem Controller Hub115 über eine serielle Verbindung132 gekoppelt. In einer Ausführungsform ist der Graphikbeschleuniger130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Switch120 und dementsprechend E/A-Einrichtung125 ist dann mit dem ICH gekoppelt. E/A-Module131 und118 dienen auch zur Implementierung eines Schichtenprotokollstapels zur Kommunikation zwischen Graphikbeschleuniger130 und Controller Hub115 . - In einer Ausführungsform kann ein PCIe-Protokollstapel eine Transaktionsschicht, eine Sicherungsschicht und eine physische Schicht enthalten. In einer Ausführungsform dient die Transaktionsschicht zum Bereitstellen einer Schnittstelle zwischen dem Verarbeitungskern einer Einrichtung und der Interconnect-Architektur, wie zum Beispiel einer Datensicherungsschicht und einer physischen Schicht. Diesbezüglich ist die Transaktionsschicht hauptsächlich für das Zusammenfügen und Zerlegen von Paketen (d. h. Transaktionsschichtpakete oder TLPs) verantwortlich. Man beachte, dass zur sanften Implementierung von Zuverlässigkeit-Verfügbarkeit-Funktionstüchtigkeit (Reliability-Availibilty-Serviceability (RAS)) PCIe zuverlässige Protokollfehlerdetektions-, -korrektur- und -berichtsleistung auf drei kooperativen Funktionsschichten einer Gerätearchitektur liefert: physische, Sicherungs- und Transaktionsschichten. In einem PCIe-basierten Design vereinigen sich ein oder mehrere TLPs zur Bildung einer Transaktion, die über eine Verbindung von einem Gerät auf dem Bus zu einem anderen gesendet wird. Für ein bestimmtes TLP liefert ein Gerät Fehlerdetektion und -korrektur auf Geräteebene durch Analyse von Zuverlässigkeitsmechanismen, die in jedem TLP vorhanden sind. Diese Fehlerdetektions/korrekturverantwortlichkeiten erstrecken sich über die drei funktionalen Geräteebenen. PCIe implementiert auch geteilte Transaktionen, d. h. Transaktionen mit zeitlich getrennter Anfrage und Antwort, was einer Verbindung ermöglicht, anderen Verkehr zu übertragen, während das Zielgerät Daten für die Antwort erfasst.
- Zusätzlich verwendet PCIe Kredit-basierte Flusskontrolle. In diesem Schema zeigt ein Gerät eine anfängliche Kreditmenge für jeden der Empfangspuffer in der Transaktionsschicht an. Ein externes Gerät an dem gegenüberliegenden Ende der Verbindung, wie zum Beispiel Controller Hub
115 in1 , zählt die Anzahl von Krediten, die von jedem TLP verbraucht werden. Eine Transaktion kann erfolgen, wenn die Transaktion keine Kreditgrenze überschreitet. Bei Empfang einer Antwort wird eine Kreditmenge wiederhergestellt. Ein Vorteil eines Kreditschemas besteht darin, dass die Latenz von Kreditrückkehr nicht die Leistung beeinträchtigt, vorausgesetzt dass die Kreditgrenze nicht erreicht wird. - Die Sicherungsschicht wirkt als eine Zwischenstufe zwischen der Transaktionsschicht und der physischen Schicht. In einer Ausführungsform besteht eine Verantwortlichkeit der Datensicherungsschicht darin, einen zuverlässigen Mechanismus zum Austauschen von TLPs zwischen zwei Komponenten durch eine Verbindung zu liefern. Eine Seite der Sicherungsschicht akzeptiert TLPs, die von der Transaktionsschicht zusammengefügt sind, wendet Identifizierer an, berechnet und wendet einen Fehlerdetektionscode, d. h. zyklische Wiederherstellungscodes (Cyclic Recovery Codes (CRC)), an und sendet die modifizierten TLPs zur physischen Schicht zum Senden über eine physikalische Verbindung an ein externes Gerät.
- In einer Ausführungsform sendet die physische Schicht ein Paket physikalisch an ein externes Gerät. Die physische Schicht enthält einen Sendeabschnitt zum Vorbereiten von abgehender Information zum Senden und einen Empfangsabschnitt zum Identifizieren und Vorbereiten von empfangener Information vor Leiten zur Sicherungsschicht. Die physische Schicht enthält einen Sender und einen Empfänger. Der Sender ist mit Symbolen ausgestattet, die der Sender serialisiert und an ein externes Gerät sendet. Der Empfänger wird mit serialisierten Symbolen von einem externen Gerät versorgt und wandelt die empfangenen Signale in einen Bit-Strom um. Der Bit-Strom wird deserialisiert und an einen logischen Unterblock geliefert. In einer Ausführungsform wird ein 8b/10b-Sendecode verwendet, wobei Zehn-Bit-Symbole gesendet/empfangen werden. Zusätzlich liefert in einem Beispiel der Empfänger auch einen Symboltakt, der aus dem eintreffenden seriellen Strom zurückgewonnen ist. Obwohl die Transaktionsschicht, Sicherungsschicht und physische Schicht unter Bezugnahme auf eine spezielle Ausführungsform eines PCIe-Protokollstapels erörtert worden sind, ist ein Schichtenprotokollstapel, wie oben angegeben, nicht derart beschränkt. In der Tat kann jedes Schichtenprotokoll enthalten/implementiert sein.
- Somit erfolgt eine Kommunikation unter Geräten in einem PCIe-System über das Senden von einem oder mehreren TLPs, die in Kombination eine Transaktion bilden, die über eine zwischen zwei Geräten angeschlossene Verbindung gesendet wird. Unter Verwendung der oben beschriebenen drei Schichten kann somit ein TLP gesendet werden, das zahlreiche Informationen enthält. Genauer gesagt kann die physische Schicht Frame-Information an einem Anfang und Ende eines TLP liefern. Die Sicherungsschicht kann wiederum eine Sequenzzahl an das Paket sowie einen Verbindungs-CRC liefern. Die Transaktionsschicht kann wiederum einen Kopf, der an Daten (falls vorhanden) angehängt ist, und einen optionalen Ende-zu-Ende-CRC (ECRC) generieren. Auf diese Weise kann ein gesendetes TLP die folgenden Teile in Folge enthalten: ein Simple Transmission Protocol(STP)-Framing-Feld, ein Sequenzfeld, ein Kopffeld, ein Datenfeld, ein ECRC-Feld und Link-CRC(LCRC)-Feld und ein Framing End-Feld. Wie oben beschrieben, ist dieses Format des TLP-Kopfes fest und liefert es keine Flexibilität hinsichtlich der Bereitstellung von zusätzlichen Informationen, die mit einem derartigen Kopf verbunden sind.
- Zur Erhöhung von Flexibilität können TLP-Präfixe gemäß einer Ausführungsform der vorliegenden Erfindung an TLPs gehängt werden, die durch die PCI-Spezifikation definiert sind. In einer solchen Ausführungsform kann die Basis-TLP-Präfix-Größe ein Doppelwort (Double Word (DW)) betragen und kann sie an TLP-Köpfe, sowohl gegenwärtig definierte als auch zukünftige TLP-Köpfe, angehängt werden. Wie in
2 gezeigt ist, die einen Basis-TLP-Präfix-Kopf gemäß einer Ausführungsform der vorliegenden Erfindung zeigt, kann das Präfix ein Opcode-Feld und Präfix-spezifisches Feld enthalten. Wie in2 gezeigt ist, enthalten genauer gesagt die Daten10 einen Basis-TLP-Präfix-Kopf, der aus einem Präfix DW20 mit einem ersten Feld25 gebildet ist, das mit einem Opcode-Feld und einem Präfix-spezifischen Feld28 übereinstimmen kann, das zahlreiche Informationen liefern kann, die auf dem Opcode-Feld basieren, mit dem es verbunden ist. Wie in der Ausführungsform von2 gezeigt ist, kann das Opcode-Feld25 fest, d. h. vorab festgelegte höchstwertige Bits (Most Significant Bits (MSBs)) aufweisen. Genauer gesagt können die drei MSBs einen Wert von „100” aufweisen, um das Vorhandensein eines Präfixes anzuzeigen. Die niedrigstwertigen Bits (Least Significant Bits (LSBs)), die in der Ausführungsform von2 als die 5 LSBs gezeigt sind, können einen variierenden Wert aufweisen, um einer bestimmten Opcode-Zuordnung zu entsprechen. - In einer Ausführungsform kann das Opcode-Feld mit den folgenden Zuweisungen verbunden sein Tabelle 1
– 100 – ttttt, wobei ttttt der TLP-Präfix-Opcode ist (d. h. bis zu 32 Präfixe können definiert werden); – 100-00000 – lieferantenspezifisch; – 100-00001 – erweitertes Opcode-Präfix; – 100-11111 – TLP-Präfix-Erweiterung; und – 100-andere – für zukünftige Verwendung reserviert. - In
3 ist ein Blockdiagramm eines TLP-Präfixes gezeigt, das gemäß einer Ausführungsform der vorliegenden Erfindung an ein TLP gehängt ist. Wie in3 gezeigt ist, enthalten Daten10' ein TLP-Präfix20 , das dem oben in Verbindung mit2 beschriebenen entsprechen kann, und einen TLP-Kopf30 . Wie in3 gezeigt ist, ist nur ein erstes DW des TLP-Kopfes gezeigt. Es versteht sich jedoch, dass in zahlreichen Implementierungen ein TLP-Kopf aus drei oder vier DWs gebildet werden kann. Der TLP-Kopf30 kann zahlreiche Felder enthalten. In3 gezeigte spezielle Felder enthalten ein Formatfeld32 , ein Typenfeld34 und ein Längenfeld36 . Formatfeld32 und Typenfeld34 können zum Definieren des Formats des Rests des Kopfes30 und des auf dem gesamten TLP zu verwendenden Routing-Verfahren verwendet werden, wenn es unterschiedliche Geräte durchläuft. Außerdem kann ein Längenfeld36 eine Länge eines Datenabschnitts des TLP, der dem Kopf30 folgt, anzeigen. Man beachte, dass die Struktur des Kopfes30 durch das PCIe-Protokoll fest ist und somit einen Mangel an Flexibilität aufweist. Somit können Ausführungsformen der vorliegenden Erfindung die Flexibilität liefern, um zusätzliche Informationen, die mit einem TLP-Kopf verbunden sind, durch Aufnahme von einem oder mehreren TLP-Präfixen vor dem TLP-Kopf bereitzustellen. - Zur Herbeiführung von Funktionalität kann TLP-Präfix-Unterstützung (durch die Hierarchie) End-End ermöglicht werden. Der Bereich kann jedoch in einigen Fällen auf Link-Link für lokale Verbindungs-TLP-Präfixe (link local TLP prefixes) beschränkt werden, während andere zu Endpunkt- und Zwischen-Switches gelenkt werden können. Für Routing-Elemente (z. B. Switches, Peer-Peer usw.) können TLP-Präfixe standardmäßig übergehbar sein, sofern nicht ein bestimmtes Nutzungsmodell von ihnen verlangt, dass sie verstanden und verarbeitet werden. Zum Beispiel kann ein Per-hop-Append-Remove-TLP, das an dem fernen Ende der Verbindung angeschlossen und regeneriert (Link-Local-TLPs) ist, verwendet werden.
- In zahlreichen Systemen kann es zwei TLP-Präfix-Typen geben. Erstens kann ein lokales TLP-Präfix einer Verbindung vorgesehen sein, für das Routing-Elemente das TLP zum Routen oder für andere Zwecke verarbeiten müssen. Ein derartiges Präfix kann verwendet werden, wenn beide Enden das TLP-Präfix verstehen. Das heißt, dass der Typ von Präfix kein Blind pass für Routing-Elemente ist. Man beachte, dass ein ECRC auf lokale TLP-Präfix-Köpfe einer Verbindung nicht anwendbar sind.
- Ein zweites Präfix kann ein globales TLP-Präfix sein, das dort verwendet werden kann, wo das TLP durch Routing-Elemente geht, als solche können Routing-Elemente nicht TLP-Präfix-Inhalte kennen. Wenn ein Basis-TLP durch ECRC geschützt wird, dann wird auch ein korrespondierendes globales TLP-Präfix durch ECRC geschützt.
- Das in
2 gezeigte Basis-TLP-Präfix liefert 24 Bits für TLP-Opcode-spezifische Felder. In gewissen Nutzungsfällen kann diese Anzahl von Bits nicht ausreichen und kann bzw. können ein oder mehrere zusätzliche DWs verwendet werden, um für TLP-Präfix-Erweiterung zu sorgen, zum Beispiel wenn zusätzliche Opcode-spezifische Bits erforderlich sind. In solchen Fällen können die TLP-Präfix-Opcode-Kodierung von 100-11111 verwendet werden, um für eine Erweiterung des TLP-Opcode-spezifischen Feldes zu sorgen. Die Vorteile von TLP-Erweiterungs-Opcode sind wie folgt: Liefern einer TLP-Präfix-Architektur mit fester DW-Größe, die, falls erforderlich, erweitert werden kann; Ermöglichen einer Definition von TLP-Präfixen, die Felder mit mehr als 24 Bits erfordern; und Bereitstellen der Fähigkeit, die TLP-Präfix-Opcode-spezifischen Felder in der Zukunft zu vergrößern, ohne das Ökosystem zu beeinflussen. - In
4 ist ein Blockdiagramm eines erweiterten TLP-Präfix-Kopfes gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. In4 zeigt ein Blockdiagramm von Daten10'' , die einen erweiterten TLP-Präfix-Kopf gemäß einer Ausführungsform der vorliegenden Erfindung enthalten. Das heißt, dass zusätzlich zu einem ersten Präfix-DW20 zwei zusätzliche erweiterte Präfix-DWs40 und45 vorhanden sind. Auf diese Weise können zusätzliche Informationen bereitgestellt werden. Man beachte, dass beide erweiterten Präfixe40 und45 dieselbe Opcode-Zuordnung, nämlich „10011111”, aufweisen, was, wie oben in Tabelle 1 zu sehen ist, mit dem TLP-Präfix-Expanisionscode übereinstimmt. Somit kann das mit diesen beiden erweiterten Präfixen verbundene Präfix-spezifische Feld48 zusätzliche Informationen liefern, zum Beispiel zusätzliche Daten zu denjenigen, die in dem Präfix-Doppelwort20 vorhanden sind. - In gewissen Fällen kann TLP-Präfix-Stapeln verwendet werden, bei dem mehrere TLP-Präfixe an andere TLP-Präfixe oder TLP-Köpfe angehängt werden können (und die als ein Stapel betrachtet werden können). Die folgenden Regeln gelten für Stapeln von TLP-Präfixen in einer Ausführungsform. TLP-Präfixe können übereinander gestapelt werden, wobei die gestapelten TLP-Präfixe Basis-TLP-Präfixe oder Erweiterungs-TLP-Präfixe sein können. Es ist zulässig, dass mehrere TLP-Präfixe gestapelt werden. Globale TLP-Präfixe können auf anderen globalen TLP-Präfixen oder einem Standardkopf-TLP gestapelt werden, aber nicht auf einem lokalen TLP-Präfix einer Verbindung. Im Gegensatz dazu können jedoch lokale TLP-Präfixe einer Verbindung auf irgendeinem anderen TLP-Präfix oder Kopf-TLP gestapelt werden.
-
5A zeigt zulässiges Stapeln von TLP-Präfixen und einem Kopf gemäß einer Ausführungsform der vorliegenden Erfindung. Wie in5A gezeigt ist, ist eine Stapel100 bereitgestellt, der einen TLP-Kopf105 , 1 – N globale TLP-Präfixe110 und 1 – N lokale TLP-Präfixe einer Verbindung115 enthält. In einer Ausführungsform kann ein derartiger Stapel100 zulässig sein, da lokale TLP-Präfixe115 einer Verbindung auf globalen Präfixen110 gestapelt sind (die wiederum auf TLP-Kopf105 gestapelt sind). Wie in5B gezeigt ist, kann im Gegensatz dazu Stapel120 in gewissen Ausführungsformen nicht zulässig sein, da globale TLP-Präfixe135 nicht auf lokalen TLP-Präfixen130 einer Verbindung gestapelt werden dürfen. - Wie oben beschrieben, können TLP-Präfixe erweitert und gestapelt werden. Somit kann ein Empfänger das Basis-TLP detektieren, um den Typ von TLP zu Routing- und Flusskontrollezwecken zu ermitteln. Die Regeln zum Detektieren des Basis-TLP gemäß einer Ausführungsform sind wie folgt: Wenn ein TLP-Präfix detektiert wird (z. B. durch Vorhandensein eines vorab festgelegten Präfix-Codes von 100 in den drei MSBs des ersten Bytes des Präfix) werden alle nachfolgenden DWs gescannt, bis ein nicht-100-Kodieren für diese Bits detektiert wird. Die Anzahl von zwischenzeitlich gezählten DWs ist TLP-Präfixe, entweder gestapelt oder erweitert. Man beachte, dass kein separates Abschlussbit zum Detektieren des Endes von TLP-Präfixen notwendig ist.
- Gemäß dem PCIe-Protokoll ist eine Kopf-Flusskontrolle-Granularität eine Einheit von Kopfkredit, wobei eine Einheit 16 Bytes (B) gleicht (in Anbetracht dessen, dass 16 B einem TLP-Kopf entsprechen). Ein TLP-Präfix-DW (d. h. ein Basis-TLP-Präfix oder erweitertes TLP-Präfix), das an ein Kopf-TLP gehängt ist, braucht einen zusätzlichen Kopfkredit (zusätzlich zum Basiskopfkredit).
- Ein architektierter konfigurierbarer maximaler TLP-Präfix-Größenparameter kann für zahlreiche Komponenten festgelegt werden. Genauer gesagt muss ein Empfänger die TLP-Präfixe in einem Speicherelement aufbewahren, bis das Standard-TLP detektiert ist, wonach er das TLP in die geeignete Pufferresource bewegen kann (für die die Flusskontrolle ausgewiesen ist). Somit sollte die Fähigkeit von Zwischen/Stufenpuffern eines Empfängers betrachtet werden, d. h. eine Grenze der Anzahl von TLP-Präfix-DWs, die in einem Paket ausgegeben werden kann. Diese Granularität kann als eine unterstützte maximale TLP-Präfix-Größe definiert sein, z. B. in Mehrfachem von Kopfgranularität – 1, 2, 4, etc. Dieser architektierte Konfigurationsparameter kann als eine maximale TLP-Präfix-Größe bezeichnet werden und kann durch Bereitstellen eines Feldes in einem PCIe-Fähigkeitsregister aufgefunden und über ein PCIe-Steuerregister programmiert werden.
- Wie in
6A gezeigt ist, sind somit, wenn zwei TLP-Präfixe210 auf einem TLP200 gestapelt werden, zwei Kopfkredite notwendig, da zusätzlich zum einzigen Kopfkredit, der für einen 16 B-Kopf notwendig ist, ein zusätzlicher Kredit zum Unterstützen der beiden TLP-Präfixe notwendig ist. Wie in6A gezeigt ist, können in ähnlicher Weise dieselben zwei Kopfkredite zum Unterstützen eines Stapels von TLP-Präfixen215 verwendet werden, der vier DWs (d. h. 16 Bytes) aufweist. Wie in6C gezeigt ist, sind im Gegensatz dazu drei Kopfkredite notwendig, um einen Präfix-Stapel220 zu unterstützen, der vier Doppelwörter enthält, da 20 Bytes, die einen Kredit wert sind, zum Unterstützen dieses Stapels220 notwendig sind. Während dies mit dieser speziellen Implementierung in den6A –6C gezeigt ist, können andere Kopfkreditregeln in anderen Ausführungsformen gelten. - In
7 ist ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in7 gezeigt ist, kann ein Verfahren300 durch eine Transaktionsschicht einer Sendeeinrichtung implementiert werden, um ein TLP-Präfix gemäß einer Ausführungsform der vorliegenden Erfindung zu erzeugen. Das Verfahren300 kann damit beginnen, dass bestimmt wird, ob zusätzliche Information in einem TLP-Kopf (Raute310 ) gesendet werden soll. Während diesbezüglich keine Beschränkung besteht, kann genannte zusätzliche Information zum Kapseln weiterer Daten in dem TLP-Kopf, Bereitstellen von zusätzlichen Routing-Informationen für Zwischen-Routingelemente, Bereitstellen von Transkationsverarbeitung usw. verwendet werden. Wenn solche zusätzliche Information bereitgestellt werden soll, geht die Steuerung zu Block320 . - Bei Block
320 kann ein TLP-Präfix-Kopf mit einem Opcode-Feld un einem Präfix-spezifischen Feld generiert werden. In einer Ausführungsform kann der TLP-Präfix-Kopf beispielsweise wie der in2 gezeigte Basiskopf generiert werden. Als nächstes kann ermittelt werden, ob zusätzlich zur in diesem Basis-Präfix-Kopf bereitgestellten Information zusätzliche Information in dem TLP-Präfix (Raute33 ) enthalten sein soll. Falls ja, geht die Steuerung in einer Schleife zu Block320 zurück. Andernfalls kann bzw. können die eine oder mehreren Präfix-Kopfeinheiten gesendet werden (Block340 ). Das heißt, dass genannte TLP-Präfix-Einheiten von der Transaktionsschicht zu einer Datensicherungsschicht und auf einer physischen Schicht und dann über eine Verbindung zu einer Empfangseinrichtung bzw. zu einem Empfangsgerät gesendet werden können, die bzw. das diese Information durch eine physische Schicht, eine Datensicherungsschicht und eine Transaktionsschicht der Empfangseinrichtung bzw. des Empfangsgerätes zum Dekodieren und Handling entsprechend gehen lassen kann. - Nach Senden des TLP-Präfix-Kopfes kann ein TLP-Kopf, der ein herkömmlicher TLP-Kopf sein kann, der zahlreiche Felder, wie zum Beispiel ein Formatfeld, ein Typfeld u. s. w. enthält, gesendet werden. Genanntes Senden kann in derselben Weise wie für den TLP-Präfix-Kopf erfolgen. Nach genanntem TLP-Kopf-Senden kann irgendeine Nutzlast, die auch mit dem TLP gesendet werden soll, gesendet werden (Block
360 ). Empfang und Handling des Präfixes, des TLP-Kopfes und zusätzlicher Paketinformation kann in dem Empfänger unter Verwendung der zahlreichen Schichten erfolgen. Während dies mit dieser speziellen Implementierung in der Ausführungsform von7 gezeigt ist, ist der Schutzbereich der vorliegenden Erfindung diesbezüglich nicht beschränkt. - Somit können Ausführungsformen Flexibilität hinsichtlich der in einem Paket-Kopf bereitgestellten Information liefern, ohne dass ad-hoc-Lösungen oder die Verwendung von reservierten Kopffeldern zum Liefern/Einführen von neuen Merkmalen oder Punktlösungen notwendig sind. In einigen Ausführungsformen ermöglicht ein TLP-Präfix eine leichte Definition und Implementierung, so dass ein minimaler Einfluss auf das Ökosystem und eine skalierbare Lösung vorliegt. TLP-Präfixe können gestapelt/erweitert werden, wie oben beschrieben, was dazu verwendet werden kann, um für zukünftige Unterstützung zu sorgen, wie zum Beispiel Kodieren, das für zahlreiche Lieferanten definiert ist, oder Kodieren, das für Verwaltung definiert ist. Ferner sind keine neuen Flusskontrolltypen notwendig.
- Ausführungsformen können als Code implementiert und auf einem Speichermedium gespeichert werden, auf dem Anweisungen gespeichert sind, die verwendet werden können, um ein System zur Durchführung der Anweisungen zu programmieren. Das Speichermedium kann, ohne aber darauf beschränkt zu sein, jede Art von Platte, einschließlich Floppy Disk, optische Platte, CD-ROMs (Compact Disk Read-Only Memories), CD-RWs (Compact Disk Rewritables) und magnetooptische Platten, Halbleitereinrichtungen, wie zum Beispiel Nur-Lese-Speicher (ROMs), Direktzugriffsspeicher (RAMs), wie zum Beispiel dynamische Direktzugriffsspeicher (DRAMs), statische Direktzugriffsspeicher (SRAMs), löschbare programmierbare Nur-Lese-Speicher (EPROMs), Flash-Speicher, elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROMs), magnetische oder optische Karten oder irgendeine andere Art von Medien, die zum Speichern von elektronischen Anweisungen geeignet sind, sein.
- Während die vorliegende Erfindung unter Bezugnahme auf eine begrenzte Anzahl von Ausführungsformen beschrieben worden ist, werden Fachleute auf dem Gebiet zahlreiche Modifikationen und Variationen derselben erkennen. Es ist beabsichtigt, dass die beigefügten Ansprüche all diese Modifikationen und Variationen abdecken, die unter den wahren Geist und Schutzbereich der vorliegenden Erfindung fallen.
Claims (16)
- Verfahren, umfassend: Generieren eines Präfix-Kopfes mit einem Opcode-Feld und einem Präfix-spezifischen Feld für ein von einem Sender zu sendendes erstes Paket, umfassend Generieren des Opcode-Feldes, das einen ersten Abschnitt mit einem vorab festgelegten Wert zum Anzeigen des Vorhandenseins des Präfix-Kopfes und einen zweiten Abschnitt zum Anzeigen eines Opcode enthält; und Senden des ersten Pakets von dem Sender an einen Empfänger entlang eines Interconnect, wobei das erste Paket den Präfix-Kopf, dem ein Kopf folgt, enthält, ferner umfassend Generieren des Präfix-Kopfes mit einem erweiterten Präfix-Kopf, der eine Vielzahl von Einheiten enthält, die jeweils ein Opcode-Feld und ein Präfix-spezifisches Feld enthalten.
- Verfahren nach Anspruch 1, ferner umfassend Einschließen von Rooting-Information in den Präfix-Kopf für einen Zwischenempfänger des ersten Pakets.
- Verfahren nach Anspruch 2, ferner umfassend Generieren des Präfix-Kopfes als ein lokales Präfix zur Verarbeitung durch den Zwischenempfänger.
- Verfahren nach Anspruch 1, ferner umfassend Generieren des Präfix-Kopfes als ein globales Präfix zum Leiten durch den Empfänger ohne Dekodieren durch den Empfänger.
- Verfahren nach Anspruch 1, ferner umfassend Generieren des Präfix-Kopfes, der eine Vielzahl von gestapelten Präfix-Einheiten enthält, wobei mindestens einige der gestapelten Präfix-Einheiten globale Präfix-Einheiten sind, die durch ein Routing-Element ohne Dekodieren geleitet werden sollen.
- Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass mindestens einige der gestapelten Präfix-Einheiten lokale Präfix-Einheiten sind, die in dem Routing-Element verarbeitet werden sollen, um zusätzliche Routing-Informationen für das Routing-Element zu liefern.
- Vorrichtung, umfassend: eine erste Komponente zum Kommunizieren mit einer zweiten Komponente über einen Punkt-zu-Punkt-(PtP)-Interconnect, wobei die erste Komponente zum Senden eines ersten Paketes entlang des PtP-Interconnects dient, das erste Paket ein Kopf-Präfix mit einem Opcode-Feld und einem Datenfeld enthält, wobei das Opcode-Feld einen ersten Abschnitt mit einem vorab festgelegten Wert zum Anzeigen des Vorhandenseins des Kopf-Präfixes und einen zweiten Abschnitt zum Anzeigen eines Opcodes aufweist, wobei das erste Paket ferner einen Kopf enthält, der dem Kopf-Präfix folgt, wobei die erste Komponente zum Senden des ersten Paketes mit einem erweiterten Kopf-Präfix dient, der eine Vielzahl von Einheiten enthält, wobei jede dasselbe Opcode-Feld und ein anderes Datenfeld enthält.
- Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass die erste Komponente eine Sicherungsschicht zum Generieren eines ersten Kopf-Präfixes und eine Transaktionsschicht zum Generieren eines zweiten Kopf-Präfixes enthält, wobei die ersten und zweiten Kopf-Präfixe mit dem Kopfverbunden sind.
- Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass das erste Kopf-Präfix zum Liefern von Routing-Informationen für ein Zwischen-Routing-Element dient, das mit dem Punkt-zu-Punkt-(PtP)-Interconnect gekoppelt ist.
- Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass die erste Komponente zum Generieren des Kopf-Präfixes dient, das eine Vielzahl von gestapelten Präfix-Einheiten enthält, wobei mindestens einige der gestapelten Präfix-Einheiten globale Präfix-Einheiten sind, die durch ein Routing-Element ohne Dekodierung geleitet werden sollen.
- Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass die erste Komponente zum Generieren des Präfix-Kopfes dient, der eine Vielzahl von Präfix-Einheiten enthält, wobei eine erste Präfix-Einheit das Opcode-Feld enthält, das einen ersten Opcode-Wert, der einem Kodieren entspricht, zum Dekodieren durch einen Empfänger aufweist, und die restlichen Präfix-Einheiten das Opcode-Feld enthalten, das einen zweiten Opcode-Wert aufweist, um anzuzeigen, dass das korrespondierende Datenfeld mit der ersten Präfix-Einheit verbunden ist.
- System, umfassend: einen Sender zum Senden eines ersten Transaktionsschichtenpaket (TLP), das ein Kopf-Präfix mit einem Kodierfeld und einem Datenfeld enthält, wobei das Kodierfeld einen ersten Abschnitt mit einem vorab festgelegten Wert zum Anzeigen des Vorhandenseins des Kopf-Präfixes und einen zweiten Abschnitt zum Anzeigen eines Opcodes aufweist, wobei der erste Code zum Anzeigen des Vorhandenseins eines erweiterten Präfixes in dem ersten TLP dient oder ein zweiter Code zum Anzeigen des Vorhandenseins von Opcode-Information in dem Datenfeld dient, wobei das erste TLP ferner einen Kopf enthält, der dem Kopf-Präfix folgt; einen Empfänger, der durch einen Punkt-zu-Punkt(PtP)-Interconnect mit dem Sensor gekoppelt ist; und einen dynamischen Direktzugriffsspeicher (DRAM), der mit dem Empfänger und Sender gekoppelt ist, wobei der Sender zum Senden des ersten Pakets mit dem erweiterten Präfix dient, der eine Vielzahl von Einheiten enthält, die jeweils den ersten Code und ein anderes Datenfeld aufweisen.
- System nach Anspruch 12, dadurch gekennzeichnet, dass der Sender zum Generieren des Kopf-Präfixes dient, das eine Vielzahl von gestapelten Präfix-Einheiten enthält, wobei mindestens einige der gestapelten Präfix-Einheiten globale Präfix-Einheiten sind, die durch ein Routing-Element ohne Dekodieren geleitet werden sollen.
- System nach Anspruch 13, dadurch gekennzeichnet, dass die Vielzahl von gestapelten Präfix-Einheiten zum Verbrauchen eines einzigen Kopfkredits dient, wenn die Anzahl von Präfix-Einheiten geringer als ein vorab festgelegter Schwellenwert ist.
- System nach Anspruch 12, dadurch gekennzeichnet, dass der Sender zum Generieren des Präfix-Kopfes dient, der eine Vielzahl von Präfix-Einheiten enthält, wobei eine erste Präfix-Einheit das Kodierfeld mit dem zweiten Abschnitt enthält, der einen ersten Opcode-Wert, der einem Opcode entspricht, zum Dekodieren durch den Empfänger aufweist, und die restlichen Präfix-Einheiten das Kodierfeld mit dem zweiten Abschnitt enthalten, der den ersten Code aufweist, um anzuzeigen, dass das korrespondierende Datenfeld mit dem Opcode der ersten Präfix-Einheit verbunden ist.
- System nach Anspruch 12, dadurch gekennzeichnet, dass der Empfänger ein Konfigurationsregister mit einem maximalen Präfix-Parameter enthält, der einem maximalen erweiterten Präfix entspricht, das durch den Empfänger gehandhabt werden kann.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/156,409 | 2008-05-30 | ||
US12/156,409 US7849252B2 (en) | 2008-05-30 | 2008-05-30 | Providing a prefix for a packet header |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102009021865A1 DE102009021865A1 (de) | 2009-12-10 |
DE102009021865B4 true DE102009021865B4 (de) | 2017-08-24 |
Family
ID=41268993
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102009061279.3A Active DE102009061279B3 (de) | 2008-05-30 | 2009-05-19 | Bereitstellung eines Präfixes für einen Datenkopf |
DE102009021865.3A Active DE102009021865B4 (de) | 2008-05-30 | 2009-05-19 | Bereitstellung eines Präfixes für einen Datenkopf |
DE102009061731.0A Active DE102009061731B3 (de) | 2008-05-30 | 2009-05-19 | Bereitstellung eines Präfixes für einen Datenkopf |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102009061279.3A Active DE102009061279B3 (de) | 2008-05-30 | 2009-05-19 | Bereitstellung eines Präfixes für einen Datenkopf |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102009061731.0A Active DE102009061731B3 (de) | 2008-05-30 | 2009-05-19 | Bereitstellung eines Präfixes für einen Datenkopf |
Country Status (3)
Country | Link |
---|---|
US (1) | US7849252B2 (de) |
CN (3) | CN103490997B (de) |
DE (3) | DE102009061279B3 (de) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8139575B2 (en) * | 2007-06-29 | 2012-03-20 | International Business Machines Corporation | Device, system and method of modification of PCI express packet digest |
US7852757B1 (en) * | 2009-03-10 | 2010-12-14 | Xilinx, Inc. | Status based data flow control for chip systems |
US9021156B2 (en) | 2011-08-31 | 2015-04-28 | Prashanth Nimmala | Integrating intellectual property (IP) blocks into a processor |
US8930602B2 (en) | 2011-08-31 | 2015-01-06 | Intel Corporation | Providing adaptive bandwidth allocation for a fixed priority arbiter |
US8713234B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Supporting multiple channels of a single interface |
US8805926B2 (en) | 2011-09-29 | 2014-08-12 | Intel Corporation | Common idle state, active state and credit management for an interface |
US8874976B2 (en) | 2011-09-29 | 2014-10-28 | Intel Corporation | Providing error handling support to legacy devices |
US8711875B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Aggregating completion messages in a sideband interface |
US8713240B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Providing multiple decode options for a system-on-chip (SoC) fabric |
US8775700B2 (en) | 2011-09-29 | 2014-07-08 | Intel Corporation | Issuing requests to a fabric |
US8929373B2 (en) * | 2011-09-29 | 2015-01-06 | Intel Corporation | Sending packets with expanded headers |
US9053251B2 (en) | 2011-11-29 | 2015-06-09 | Intel Corporation | Providing a sideband message interface for system on a chip (SoC) |
US9032102B2 (en) * | 2012-03-02 | 2015-05-12 | International Business Machines Corporation | Decode data for fast PCI express multi-function device address decode |
JP5928087B2 (ja) * | 2012-03-29 | 2016-06-01 | 富士通株式会社 | スイッチ、情報処理装置および通信制御方法 |
US9003090B1 (en) | 2014-03-25 | 2015-04-07 | DSSD, Inc. | PCI express fabric routing for a fully-connected mesh topology |
JPWO2015155997A1 (ja) * | 2014-04-11 | 2017-04-27 | 日本電気株式会社 | 設定装置、制御装置、設定方法及びネットワークスイッチ |
US9946683B2 (en) * | 2014-12-24 | 2018-04-17 | Intel Corporation | Reducing precision timing measurement uncertainty |
US10491525B2 (en) | 2015-03-10 | 2019-11-26 | Huawei Technologies Co., Ltd. | Traffic engineering feeder for packet switched networks |
US10698849B2 (en) * | 2015-03-11 | 2020-06-30 | Apple Inc. | Methods and apparatus for augmented bus numbering |
CN106533991B (zh) * | 2016-10-14 | 2019-09-20 | 盛科网络(苏州)有限公司 | 堆叠系统中可变长堆叠头的实现方法及其设备 |
US10911261B2 (en) | 2016-12-19 | 2021-02-02 | Intel Corporation | Method, apparatus and system for hierarchical network on chip routing |
US10846126B2 (en) | 2016-12-28 | 2020-11-24 | Intel Corporation | Method, apparatus and system for handling non-posted memory write transactions in a fabric |
EP3439210B1 (de) * | 2017-07-31 | 2019-12-25 | Mitsubishi Electric R&D Centre Europe B.V. | Zuverlässige durchschaltung für ieee 802.1-zeitempfindliche netzwerkstandards |
US10795400B2 (en) * | 2018-04-30 | 2020-10-06 | Qualcomm Incorporated | Time synchronization for clocks separated by a communication link |
CN109150584B (zh) * | 2018-07-04 | 2022-02-25 | 北京中创腾锐技术有限公司 | 一种基于simd指令的为网络分组分类提供加速支持的方法 |
US11775470B2 (en) * | 2019-11-20 | 2023-10-03 | Intel Corporation | Transaction layer packet format |
EP4086778A4 (de) * | 2020-01-22 | 2023-01-18 | Huawei Technologies Co., Ltd. | Pcie-basiertes datenübertragungsverfahren, -gerät und -system |
WO2021147051A1 (zh) * | 2020-01-22 | 2021-07-29 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
CN113498595B (zh) * | 2020-01-22 | 2022-10-11 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
CN113498596B (zh) * | 2020-01-22 | 2022-10-11 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
CN114475733A (zh) * | 2022-01-07 | 2022-05-13 | 北京全路通信信号研究设计院集团有限公司 | 一种基于以太网通信的计算机联锁方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144339A1 (en) * | 2003-12-24 | 2005-06-30 | Wagh Mahesh U. | Speculative processing of transaction layer packets |
US20060253619A1 (en) * | 2005-04-22 | 2006-11-09 | Ola Torudbakken | Virtualization for device sharing |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1157032C (zh) * | 1998-10-26 | 2004-07-07 | 高通股份有限公司 | 具有共同ip地址的移动终端和无线设备 |
KR100513863B1 (ko) * | 2003-04-29 | 2005-09-09 | 삼성전자주식회사 | 호스트의 이동성을 지원할 수 있는 무선 근거리 네트워크시스템 및 그의 동작방법 |
US7571242B2 (en) * | 2003-10-24 | 2009-08-04 | Alcatel Lucent | Method for accelerated packet processing |
US7464174B1 (en) * | 2005-03-07 | 2008-12-09 | Pericom Semiconductor Corp. | Shared network-interface controller (NIC) using advanced switching (AS) turn-pool routing field to select from among multiple contexts for multiple processors |
US20060268913A1 (en) * | 2005-05-27 | 2006-11-30 | Utstarcom, Inc. | Streaming buffer system for variable sized data packets |
JP4394624B2 (ja) * | 2005-09-21 | 2010-01-06 | 株式会社日立製作所 | 計算機システム及びi/oブリッジ |
-
2008
- 2008-05-30 US US12/156,409 patent/US7849252B2/en active Active
-
2009
- 2009-05-19 DE DE102009061279.3A patent/DE102009061279B3/de active Active
- 2009-05-19 DE DE102009021865.3A patent/DE102009021865B4/de active Active
- 2009-05-19 DE DE102009061731.0A patent/DE102009061731B3/de active Active
- 2009-05-31 CN CN201310370083.9A patent/CN103490997B/zh active Active
- 2009-05-31 CN CN201310369747.XA patent/CN103490852B/zh active Active
- 2009-05-31 CN CN2009101426034A patent/CN101594306B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144339A1 (en) * | 2003-12-24 | 2005-06-30 | Wagh Mahesh U. | Speculative processing of transaction layer packets |
US20060253619A1 (en) * | 2005-04-22 | 2006-11-09 | Ola Torudbakken | Virtualization for device sharing |
Non-Patent Citations (3)
Title |
---|
BUDRUK R. [u.a.]: PCI Express System Architecture. Inc. : MindShare, August 2003. S.105-152. - ISBN 0-321-15630-7 * |
COWAN, Joe: In: PCI-SIG. Beaverton: PCIe 2.0 Errata & Protocol Extensions. April 2008. - Firmenschrift * |
GLASER, Steve: Multi-Root IOV. In: PCI.SIG Developers Conference, Mai 2007, S.1-80. * |
Also Published As
Publication number | Publication date |
---|---|
DE102009021865A1 (de) | 2009-12-10 |
US20090296740A1 (en) | 2009-12-03 |
DE102009061279B3 (de) | 2020-04-23 |
CN101594306B (zh) | 2013-09-18 |
CN103490852B (zh) | 2018-05-18 |
CN103490852A (zh) | 2014-01-01 |
CN103490997B (zh) | 2017-09-26 |
US7849252B2 (en) | 2010-12-07 |
DE102009061731B3 (de) | 2024-02-29 |
CN101594306A (zh) | 2009-12-02 |
CN103490997A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102009021865B4 (de) | Bereitstellung eines Präfixes für einen Datenkopf | |
DE60213616T2 (de) | Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung | |
DE112015006944B4 (de) | Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe | |
DE102020125353A1 (de) | Transaktionsschichtpaketformat | |
DE60219047T2 (de) | Eine allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zum aufbau virtueller kanäle darin | |
DE102018128569A1 (de) | Nebensprecherzeugung in einem link für mehrere spuren während des spurtestens | |
DE202010018100U1 (de) | Vorrichtung für ID-basierte Ströme über PCI-Express | |
DE112004002567T5 (de) | Lane-zu-Lane-Entzerrung über Nicht-Daten-Symbolverarbeitung für eine serielle Punkt-zu-Punkt-Verbindung | |
DE60216299T2 (de) | Allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zur bereitstellung virtueller kanäle | |
DE112015006961T5 (de) | Verbindungsfehlerdetektion in mehrfachchipgehäusen | |
DE112013005090T5 (de) | Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit | |
DE102005021515A1 (de) | System und Verfahren für ein informationsverarbeitendes System mit PCI-Express Advanced Switching | |
DE112013007732T5 (de) | PCI-Express-Erweiterungen | |
DE112013007726T5 (de) | Verbesserungen eines Zwischenverbindungs-Retimers | |
DE112007002605T5 (de) | Speichersystem mit seriellem Hochgeschwindigkeitspuffer | |
DE112005003124T5 (de) | Schnittstelle PCI Express zu erweitertem Schaltnetzwerk | |
DE112018001088T5 (de) | Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung | |
DE112010004006T5 (de) | Zuverlässige kommunikationen in chipintegrierten netzwerken | |
DE112013000808T5 (de) | Dekodierdaten zur schnellen Dekodierung von Adressen von PCI-Express-Multifunktionseinheiten | |
DE112015006516T5 (de) | BUS-Einrichtung-Funktion-Adressraumabbildung | |
DE102020119682A1 (de) | System, einrichtung und verfahren zum erhöhen der effizienz von streckenübermittlungen | |
DE60017774T2 (de) | Verfahren und vorrichtung zur unterstützung von mehrtaktübertragung in einem rechnersystem mit einer punkt-zu-punkt halb-duplex verbindung | |
DE112021003094T5 (de) | System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen | |
DE69626929T2 (de) | Bidirektionale parallelschnittstelle | |
DE102020115989A1 (de) | Dynamische Präsentation von Zwischenverbindungsprotokollfähigkeitsstrukturen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: H04L0012560000 Ipc: H04L0012745000 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: H04L0012560000 Ipc: H04L0012745000 Effective date: 20121121 |
|
R130 | Divisional application to |
Ref document number: 102009061279 Country of ref document: DE Effective date: 20131106 Ref document number: 102009061731 Country of ref document: DE Effective date: 20131106 Ref document number: 102009061731 Country of ref document: DE Effective date: 20131230 Ref document number: 102009061279 Country of ref document: DE Effective date: 20131230 |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: H04L0012745000 Ipc: H04L0045748000 |