-
GEBIET
-
Diese Erfindung bezieht sich auf das Gebiet von Zwischenverbindungen und insbesondere auf das Ermöglichen ID-basierter Ströme über PCI Express.
-
HINTERGRUND
-
Computersysteme weisen eine Anzahl von Komponenten und Elementen auf. Oftmals sind die Komponenten über einen Bus oder eine Zwischenverbindung gekoppelt. Zuvor waren Eingabe-/Ausgabe(Input/Output(I/O))-Einrichtungen durch eine konventionelle parallele multi-drop-Busarchitektur miteinander verbunden, die als Peripheral Component Interconnect (PCI) bezeichnet wird. Neuerdings wird eine neue Generation eines I/O-Busses verwendet, die als PCI Express (PCIe) bezeichnet wird, um schnellere Zwischenverbindungen zwischen Einrichtungen unter Verwendung eines seriellen Kommunikationsprotokolls auf der physikalischen Ebene zu ermöglichen.
-
Eine PCIE-Architektur weist ein geschichtetes Protokoll zum Kommunizieren zwischen Einichtungen auf. Beispielsweise bilden eine physikalische Schicht, eine Verbindungsschicht und eine Übertragungsschicht einen PCIE-Protokollstapel. Die PCIe-Verbindung wird um dafür vorgesehene unidirektionale Paare serieller Punkt-zu-Punkt-Verbindungen aufgebaut, die als eine Spur (lane) bezeichnet werden. Eine Verbindung zwischen Einrichtungen weist eine bestimmte Anzahl von Spuren auf, wie etwa eine, zwei, sechzehn, zweiunddreißig, und so weiter. Die gegenwärtige PCIE-Spezifikation, base spec 2.0, ist unter http://www.pcisig.com/specifications/pciexpress/ erhältlich.
-
Herkömmliche PCIe-Ordnungsregeln wurden geschaffen, um ein Hersteller-Verbraucher-Programmiermodell zu ermöglichen. Unter diesem Modell müssen Lesevorgänge einer bestimmten Einichtung die Schreibvorgänge, die zuvor erzeugt wurden, anschieben (push). Ein solches Programmiermodell gewährleistet, dass der Lesevorgang eines Speicherortes X immer die neuesten Daten erhält, die an den Speicherort geschrieben wurden.
-
Jedoch führt dieses Ordnungserfordernis dazu, dass Anforderungen von einem Anforderungsstrom (einer Sequenz von Lese- oder Schreibtransaktionen, die den gleichen Anforderer und die gleiche Destination haben) einen anderen unabhängigen Anforderungsstrom beeinträchtigen. Diese Beeinträchtigung bzw. Störung kann einen bedeutenden Leistungsengpass verursachen. Das Problem ist besonders ausgeprägt, wenn unversandte Anforderungen hinter versandten Anforderungen blockiert werden, da Leseanforderungen latenzsensitiv sind.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die vorliegende Erfindung wird durch Beispiele illustriert und soll durch die Figuren der beigefügten Zeichnungen nicht eingeschränkt werden.
-
1 illustriert eine Ausführungsform eines Systems, das eine serielle Punkt-zu-Punkt-Zwischenverbindung enthält, um VO-Einrichtungen in einem Computersystem zu verbinden.
-
2 illustriert eine Ausführungsform eines geschichteten Protokollstapels.
-
3 illustriert eine Ausführungsform einer Speicherordnungslogik.
-
4 illustriert eine Ausführungsform eines Pakets, das ein ID-basiertes Ordnungsflag aufweist.
-
5 illustriert eine Ausführungsform einer Ordnungstabelle.
-
6 illustriert eine Ausführungsform eines Flussdiagramms zum Ermöglichen von Einrichtungs-ID-basierten-Strömen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, wie etwa Beispiele spezifischer Zwischenverbindungen, spezifischer Pakete/Nachrichten, spezifischer Felder und Orte innerhalb von Paketen/Nachrichten, spezifischer Orte einer Logik/eines Caches, etc., um ein tiefgreifendes Verständnis der vorliegenden Erfindung zu liefern. Einem Fachmann ist jedoch ersichtlich, dass diese spezifischen Details nicht eingesetzt werden müssen, um die vorliegende Erfindung umzusetzen. In anderen Beispielen wurden wohlbekannte Komponenten oder Verfahren, wie etwa Cachelogik/Implementation, Peripheral Component Interconnect Express(PCIe)-Nachrichtenprotokolle, PCIe-Felder/Pakete in Transaktionen und andere PCIe-basierte Implementationen nicht detailliert beschrieben, um ein unnötiges Verschleiern der vorliegenden Erfindung zu vermeiden.
-
Das Verfahren und die Vorrichtung, die hierin beschrieben sind, dienen dem Ermöglichen ID-basierter Ströme über PCIe. Insbesondere wird ein Umgehen eingereihter Anforderungen in einem Switch unter Bezugnahme auf eine versandte Anforderung diskutiert, die verzögert ist (aufgrund Kredit oder anderer Ereignisse, wie Seitenfehler). Jedoch sind die Verfahren und Vorrichtungen für ID-basierte Ströme nicht in dieser Hinsicht eingeschränkt, da sie auf oder in Verbindung mit jeder integrierten Schaltkreiseinrichtung implementiert werden können, wie etwa jeder Eingabe-/Ausgabeeinrichtung oder anderen Computerkomponenten, ebenso wie in Verbindung mit jedem Typ einer seriellen Punkt-zu-Punkt-Zwischenverbindung.
-
Verbindung/Zwischenverbindung eines seriellen geschichteten Punkt-zu-Punkt-Protokolls.
-
Unter Bezugnahme auf 1 ist eine Ausführungsform eines Systems einschließlich Einrichtungen, die über eine serielle Verbindung mit einem Controller-Hub gekoppelt sind, illustriert. System 100 weist Prozessor 105 und Systemspeicher 110, die mit Controller-Hub 115 gekoppelt sind, auf. Prozessor 105 weist irgendein Verarbeitungselement, wie etwa einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Co-Prozessor oder anderen Prozessor auf. Prozessor 105 ist mit Controller-Hub 115 durch Front-Side-Bus (FSB) 106 gekoppelt. In einer Ausführungsform ist FSB 106 eine serielle Punkt-zu-Punkt-Zwischenverbindung, wie unten beschrieben ist.
-
Systemspeicher 110 weist irgendeine Speichereinrichtung auf, wie etwa Random-Access-Speicher (random access memory (RAM)), nicht-flüchtigen (non-volatile (NV)) Speicher oder anderen Speicher, der Einrichtungen in System 100 zugänglich ist. Systemspeicher 110 ist durch Speicherschnittstelle 116 mit Controller-Hub 115 gekoppelt. Beispiele einer Speicherschnittstelle schließen eine Speicherschnittstelle mit doppelter Datenrate (DDR), eine DDR-Speicherschnittstelle mit dualem Kanal und eine dynamische RAM(DRAM)-Speicherschnittstelle ein.
-
In einer Ausführungsform ist Controller-Hub 115 ein Root-Hub oder Root-Controller in einer Peripheral Component Interconnect Express(PCIe oder PCIE)-Zwischenverbindungshierarchie. Beispiele für Controller-Hub 115 schließen einen Chipsatz, einen Speichercontroller-Hub (memory controller hub (MCH)), eine Northbridge, einen Zwischenverbindungs-Controller-Hub (interconnect controller hub (ICH)), eine Southbridge und einen Root-Controller/Hub ein. Oftmals bezieht sich der Begriff Chipsatz auf zwei physikalisch verschiedene Controller-Hubs, d. h. einen Speichercontroller-Hub (MCH), der mit einem Zwischenverbindungs-Controller-Hub (interconnect controller hub (ICH)) gekoppelt ist.
-
Hierbei ist Controller-Hub 115 mit dem Switch/der Bridge 120 durch die serielle Verbindung 119 gekoppelt. Eingabe-/Ausgabemodule 117 und 121, die ebenfalls als Schnittstellen/Ports 117 und 121 bezeichnet werden können, weisen einen geschichteten Protokollstapel auf oder implementieren diesen, um Kommunikation zwischen Controller-Hub 115 und Switch 120 zu ermöglichen. Ein Modul, wie etwa Module 117, 118, 121, 122, 124, 126, 129 und 131, können in Hardware, Software, Firmware oder jeder Kombination derselben implementiert sein. Darüber hinaus variieren Modulgrenzen gewöhnlich, und Funktionen werden gemeinsam, ebenso wie getrennt in unterschiedlichen Umgebungen, implementiert. In einer Ausführungsform sind mehrere Einrichtungen in der Lage, mit dem Switch 120 gekoppelt zu werden.
-
Switch 120 lenkt Pakete/Nachrichten von Einrichtungen 125 und 128 stromaufwärts, d. h. in einer Hierarchie aufwärts hin zu einem Root-Controller, zu Controller-Hub 115, und stromabwärts, d. h. in einer Hierarchie abwärts weg von einem Root-Controller, von Prozessor 105 oder Systemspeicher 110 zu Einrichtungen 125 und 128. Einrichtungen 125 und 128 schließen irgendeine interne oder externe Einrichtung oder Komponente ein, die mit einem elektronischen System gekoppelt werden soll, wie etwa eine I/O-Einrichtung, einen Netzwerk-Schnittstellencontroller (Network Interface Controller (NIC)), eine Zusatzkarte, einen Audioprozessor, einen Netzwerkprozessor, eine Festplatte, eine Speichereinrichtung, eine CD-/DVD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichereinrichtung, eine Firewire-Einrichtung, eine Universal-Serial-Bus(USB)-Einrichtung, einen Scanner und andere Eingabe-/Ausgabeeinrichtungen. Switch 120 schließt Speicherordnungslogik 140 ein, wie im Folgenden ausführlicher beschrieben ist, um Einrichtungs-ID-basierte Ströme zu ermöglichen.
-
Grafikbeschleuniger 130 wird ebenfalls mit Controller-Hub 115 durch serielle Verbindung 132 gekoppelt. In einer Ausführungsform ist Grafikbeschleuniger 130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Switch 120, und damit I/O-Einrichtungen 125 und 128, wird sodann mit dem ICH gekoppelt. I/O-Module 131 und 118 sollen außerdem einen geschichteten Protokollstapel implementieren, um zwischen Grafikbeschleuniger 130 und Controller-Hub 115 zu kommunizieren.
-
Im Hinblick auf 2 ist eine Ausführungsform eines geschichteten Protokollstapels illustriert. Der geschichtete Protokollstapel 200 weist irgendeinen geschichteten Kommunikationsstapel auf, wie etwa einen Quick-Path-Zwischenverbindungs(quick path interconnect(QPI))-Stapel, PCIe-Stapel oder anderen Protokollstapel. In einer Ausführungsform ist Protokollstapel 200 ein PCIe-Protokollstapel, der eine Transaktionsschicht 205, Verbindungsschicht 210 und physikalische Schicht 220 aufweist. Eine Schnittstelle, wie etwa Schnittstellen 117, 118, 121, 122, 124, 126, 129 und 131 in 1, kann/können als Kommunikationsprotokollstapel 200 dargestellt werden. Eine Darstellung als ein Kommunikationsprotokollstapel wird auch als ein Modul oder eine Schnittstelle bezeichnet, das/die einen Protokollstapel implementiert oder aufweist.
-
Transaktionsschicht
-
In einer Ausführungsform soll Transaktionsschicht 205 eine Schnittstelle zwischen dem Verarbeitungskern einer Einrichtung und der Zwischenverbindungsarchitektur, wie etwa Datenverbindungssschicht 210 und physikalischer Schicht 220, bereitstellen. In dieser Hinsicht liegt eine wichtige Zuständigkeit der Transaktionsschicht 205 im Zusammensetzen und Auseinandernehmen von Paketen (d. h., Transaktionsschichtpakete oder TLPs). PCIe implementiert geteilte Transaktionen, d. h. Transaktionen, bei denen Anforderung und Antwort zeitlich getrennt ist, was einer Verbindung erlaubt, anderen Verkehr zu übertragen, während die Zieleinrichtung Daten für die Antwort aufnimmt.
-
Zusätzlich verwendet PCIe kreditbasierte Flusssteuerung. Bei diesem Schema verkündet eine Einrichtung einen Anfangskreditbetrag für jeden der Empfangspuffer in Transaktionsschicht 205. Eine externe Einrichtung an dem gegenüberliegenden Ende der Verbindung, wie etwa Controller-Hub 115 in 1, zählt die Anzahl von Kreditpunkten, die durch jede TLP verbraucht werden. Eine Transaktion kann gesendet werden, wenn die Transaktion einen Kreditrahmen nicht übersteigt. Nach dem Empfangen einer Antwort wird ein Kreditbetrag wiederhergestellt. Ein Vorteil eines Kreditschemas ist, dass die Latenz einer Kreditrückgabe nicht die Leistung beeinträchtigt, vorausgesetzt, dass der Kreditrahmen nicht erreicht wird.
-
In einer Ausführungsform weisen vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingabe-/Ausgabeadressraum und einen Nachrichtenadressraum auf. Speicherraumtransaktionen weisen einen oder mehrere Leseanforderungen und Schreibanforderungen auf, um Daten zu/von einem im Speicher abgebildeten Ort zu übertragen. In einer Ausführungsform sind Speicherraumtransaktionen in der Lage, zwei verschiedene Adressformate, z. B. ein kurzes Adressformat, wie etwa eine 32-Bit Adresse, oder ein langes Adressformat, wie etwa eine 64-Bit Adresse, zu verwenden. Konfigurationsraumtransaktionen werden verwendet, um auf Konfigurationsraum der PCIe-Einrichtungen zuzugreifen. Transaktionen auf den Konfigurationsraum schließen Leseanforderungen und Schreibanforderungen ein. Nachrichtenraumtransaktionen (oder einfach Nachrichten) sind definiert, In-Band-Kommunikation zwischen PCIe-Agenten zu unterstützen.
-
Daher setzt Transaktionsschicht 205 in einer Ausführungsform Paketkopf/-Nutzlast 206 zusammen. Formate für Paketköpfe/-Nutzlasten können in der PCIe-Spezifikation, z. B. der PCIe base spec 2.0, nachgeschlagen werden, die unter http://www.pcisig.com/specifications/pciexpress/ erhältlich ist.
-
Verbindungsschicht
-
Verbindungsschicht 210, auch als Datenverbindungsschicht 210 bezeichnet, agiert als eine Zwischenstufe zwischen Transaktionsschicht 205 und der physikalischen Schicht 220. In einer Ausführungsform liegt eine Zuständigkeit der Datenverbindungsschicht 210 darin, einen verlässlichen Mechanismus zum Austauschen von Transaktionsschichtpaketen (Transaction Lager Packets (TLPs)) zwischen zwei Komponenten [über] eine Verbindung bereitzustellen. Eine Seite der Datenverbindungsschicht 210 akzeptiert TLPs, die von der Transaktionsschicht 205 zusammengesetzt wurden, wendet Paketsequenzbezeichner 211, d. h. eine Identifizierungsnummer oder Paketnummer, an, berechnet und wendet einen Fehlererkennungscode, d. h. CRC 212, an und schickt die modifizierten TLPs an die physikalische Schicht 220 zur Versendung über eine Physikalische an eine externe Einrichtung.
-
Physikalische Schicht
-
In einer Ausführungsform weist die physikalische Schicht 220 den logischen Unterblock 221 und elektrischen Unterblock 222 auf, um ein Paket an eine externe Einrichtung physikalisch zu senden. Hierbei ist der logische Unterblock 221 für die „digitalen” Funktionen der physikalischen Schicht 221 zuständig. In dieser Hinsicht weist der logische Unterblock einen Sendebereich zum Vorbereiten ausgehender Information zur Versendung durch den physikalischen Unterblock 222 und einen Empfangsbereich zum Identifizieren und Vorbereiten empfangener Information auf, bevor diese an die Verbindungsschicht 210 übermittelt wird.
-
Der physikalische Block 222 weist einen Sender und einen Empfänger auf. Der Sender wird von dem logischen Unterblock 221 mit Symbolen versorgt, die der Sender serialisiert und an eine externe Einrichtung sendet. Der Empfänger wird von einer externen Einrichtung mit serialisierten Symbolen versorgt und wandelt die empfangenen Signale in einen Bitstrom um. Der Bitstrom wird deserialisiert und an den logischen Unterblock 221 geliefert. In einer Ausführungsform wird ein 8b/10b-Sendecode eingesetzt, bei dem Zehn-Bit-Symbole gesendet/empfangen werden. Hierbei werden spezielle Symbole verwendet, um ein Paket mit den Rahmen 223 einzurahmen. Zusätzlich liefert der Empfänger in einem Beispiel auch einen Symboltakt, der aus dem eintreffenden seriellen Strom ermittelt wird.
-
Wie oben angegeben, ist ein geschichteter Protokollstapel, obwohl Transaktionsschicht 205, Verbindungsschicht 210 und physikalische Schicht 220 unter Bezugnahme auf eine spezifische Ausführungsform eines PCIe-Protokollstapels diskutiert wurden, nicht in dieser Hinsicht beschränkt. Tatsächlich kann irgendein geschichtetes Protokoll enthalten/implementiert sein. Beispielsweise enthält ein Port/eine Schnittstelle, die als ein geschichtetes Protokoll dargestellt ist: (1) eine erste Schicht zum Zusammensetzen von Paketen, d. h. eine Transaktionsschicht, eine zweite Schicht zum Sequenzieren von Paketen, d. h. eine Verbindungsschicht; und eine dritte Schicht zum Senden der Pakete, d. h. eine physikalische Schicht.
-
Als nächstes wird unter Bezugnahme auf 3 eine Ausführungsform einer Speicherordnungslogik illustriert. Wie gezeigt, enthält der intelligente Switch 300 Speicherordnungslogik 305, Schlange 308 versandter Anforderungen (die versandte Anforderungen 310A–N enthält) und Zeiger 322, Schlange 314 unversandter Anforderungen (die unversandte Anforderungen 316A–N enthält) und Zeiger 324, Beendigungsschlange 318 (die Beendungen 320A–N enthält) und Zeiger 326 und Port 350 (der ein Stromaufwärts- oder Stromabwärtsport sein kann).
-
Speicherordnungslogik 305 implementiert ein Verfahren zum Ermöglichen Einrichtungs-ID-basierter Ströme, beispielsweise wie unter Bezugnahme auf 6 beschrieben, und kann ID-basierten Ordnungsaktivierer 332, Schlangenauswähler 334, Zeigerbehandler 336, Anforderer-/Beender-ID-Vergleicher 338 und IDO-Flag-Prüfung 340 einschließen.
-
Unter Bezugnahme auf 4 ist eine Ausführungsform eines Pakets einschließlich eines ID-basierten Ordnungsflags illustriert. Ein Paket bezeichnet jede Anforderung, Nachricht, Zugriff oder anderes Gruppieren von Information, die auf einem Bus/einer Zwischenverbindung gesendet werden soll. In der gezeigten Ausführungsform weist Paket 400 andere Informationensfelder 405 auf. Beispiele anderer Information 405 schließen reservierte Felder, Formatfelder, Typenfelder, Attributfelder, Längenfelder, PCIe-spezifische Felder und jede anderen Protokoll-spezifischen Felder ein. Zusätzlich weist Paket 400 Anforderer-ID 415 (Bytes 4 und 5), die einen anfordernden Agenten/eine anfordernde Einrichtung referenzieren und Teil eines globalen ID-/Transaktionsdescriptors sein können oder eine globale ID/Transaktions-ID aufweisen können und Adressfeld 420, um einen Adressort zu referenzieren, auf.
-
Attributbits 402 und 404 können Ordnungsmodelle 450, 455, 460 und 465 wie gezeigt einsetzen. Attributbit 402, das das gegenwärtig reservierte Bit 2 von Byte 1 verwenden kann, stellt ein ID-basiertes Ordnungsflag dar, das durch einen Anforderer oder Beender gesetzt werden kann, um anzuzeigen, dass eine Anforderung oder Beendigung ordnungsunabhängig ist und versandte Anforderungen umgehen kann.
-
Als nächstes wird unter Bezugnahme auf 5 eine Ausführungsform einer Ordnungstabelle illustriert. Tabelle 500 ähnelt Tabelle 2-24 der PCIe-Spezifikation, ist jedoch modifiziert, um Umgehen früher eingereihter, jedoch verzögerter, versandter Speicherschreib- oder Nachrichtenanforderungen (Spalte 2) eines unabhängigen Anforderungsstromes in bestimmten Beispielen zu ermöglichen.
-
Gemäß Zelle 505 darf eine Speicherschreib- oder Nachrichtenanforderung: mit nicht gesetztem Attributbit 404 gelockerter Ordnung und nicht gesetztem ID-Ordnungsbit 402 nicht passieren (a); mit gesetztem Attributbit 404 gelockerter Ordnung und nicht gesetztem ID-Ordnungsbit 402 passieren (b); und mit nicht gesetztem Attributbit 404 gelockerter Ordnung und gesetztem ID-Ordnungsbit 402 jede andere Speicherschreib- oder Nachrichtenanforderung passieren, wenn die IDs ihrer Anforderer 415 sich unterscheiden (c).
-
Gemäß Zelle 510 darf eine Leseanforderung: mit nicht gesetztem Attributbit 404 gelockerte Ordnung und nicht gesetztem ID-Ordnungsbit 402 nicht passieren (a); mit gesetztem Attributbit 404 gelockerter Ordnung und nicht gesetztem ID-Ordnungsbit 402 nicht passieren (b); und mit nicht gesetztem oder gesetztem Attributbit 404 gelockerter Ordnung und gesetztem ID-Ordnungsbit 402 jede andere Speicherschreib- oder Nachrichtenanforderung passieren, falls die IDs ihrer Anforderer 415 sich unterscheiden (c).
-
Gemäß Zelle 515 können I/O- oder Konfigurationsschreibanforderungen keine Speicherschreib- oder Nachrichtenanforderung passieren. Dies erhält eine starke Schreibordnung aufrecht, die benötigt wird, um einen Hersteller/Verbraucher im Benutzungsmodell zu unterstützen.
-
Gemäß Zelle 520 darf eine Lesebeendung: mit nicht gesetztem Attributbit 404 gelockerter Ordnung und nicht gesetztem ID-Ordnungsbit 402 nicht passieren (a); mit gesetztem Attributbit 404 gelockerter Ordnung und nicht gesetztem ID-Ordnungsbit 402 passieren (b); und mit nicht gesetztem Attributbit 404 gelockerter Ordnung und gesetztem ID-Ordnungsbit 402 jede andere Speicherschreib- oder Nachrichtenanforderung passien, falls ihre Beender-ID eine andere ist als die Anforderer-ID 415 des Speicherschreibvorgangs (c).
-
Schließlich dürfen gemäß Zelle 525 I/O- oder Konfigurationsschreibbeendigung durch Speicherschreib- und Nachrichtenanforderungen blockiert werden oder diese passieren. Solche Transaktionen bewegen sich eigentlich in entgegengesetzte Richtung und weisen daher keine Ordnungsbeziehung auf.
-
Als nächstes ist unter Bezugnahme auf 6 eine Ausführungsform eines Flussdiagramms zum Ermöglichen Einrichtungs-ID-basierter Ströme illustriert. In Fluss 605 bestimmt ein ID-basierter Ordnungsaktivierer 332, ob eine Gelegenheit besteht, eine versandte Anforderung zu umgehen. In einer Ausführungsform befördert Aktivierer 332 den Prozess zu Fluss 610, wenn er feststellt, dass eine versandte Anforderung verzögert ist.
-
Schlangenauswähler 334 wählt dann in Fluss 610 eine Schlange, um nach einem anderen Paket zum Senden zu suchen. In einer Ausführungsform wählt Auswähler 334 die Schlange 308 versandter Anforderungen, die Schlange 314 unversandter Anforderungen oder Beendigungsschlange 318 basierend darauf, welche Schlange die meisten Einträge hat. In einer anderen Ausführungsform wählt Auswähler 334 immer als erstes die Schlange 314 unversandter Anforderungen, um nach einem anderen Paket zu suchen. In Fluss 615 kann Zeigerbehandler 336 einen oder mehrere Zeiger 322, 324, 326 inkrementieren, falls beispielsweise ein früheres potentielles anderes Paket nicht passieren durfte (d. h. nicht von einem unabhängigen Strom oder ohne das ID-Ordnungsbit 402 gesetzt zu haben).
-
Als nächstes bestimmt in Fluß 620 Anforderer-/Beender-ID-Vergleicher 338, ob sich die Anforderer-/Seender-ID des potentiellen anderen Pakets von irgendeiner der früher empfangenen versandten Anforderungen in der Schlange 308 versandter Anforderungen unterscheidet. In einer Ausführungsform verwendet Vergleichselement 338 einen Zeiger versandter Anforderungen, der mit jeder unversandten Anforderung und Beendung gespeichert ist, um zu bestimmen, welche versandten Anforderungen in der Schlage 308 versandter Anforderungen vor dem potentiellen anderen Paket empfangen wurden. Falls festgestellt wurde, dass das potentielle andere Paket einem unabhängigen Strom früher empfangener versandter Anforderungen angehörte, fährt der Prozess mit Fluss 625 fort. Andernfalls kehrt der Prozess zu Fluss 605 zurück.
-
In Fluss 625 verifiziert IDO-Flag-Prüfung 340, dass ID-Ordnungsbit 402 in dem potentiellen anderen Paket gesetzt ist, und, falls dies der Fall ist, wird in Fluss 630 das andere Paket über Port 350 gesendet. Andernfalls kehrt der Prozess zu Fluss 605 zurück.
-
Die Ausführungsformen von Verfahren, Software, Firmware oder Code, die oben dargelegt sind, können über Anweisungen oder Code, die auf einem maschinenzugänglichen oder maschinenlesbaren Medium gespeichert sind, die durch ein Verarbeitungselement ausführbar sind, implementiert sein. Ein maschinenzugängliches/-lesbares Medium schließt irgendeinen Mechanismus ein, der Information in einer durch eine Maschine, wie etwa einen Computer oder elektronisches System, lesbaren Form bereitstellt (d. h. speichert und/oder sendet). Beispielsweise schließt ein maschinenzugängliches Medium Random-Access-Speicher (random access memory (RAM)), wie etwa statischen RAM (SRAM) oder dynamischen RAM (DRAM); ROM; magnetisches oder optisches Speichermedium; Flash-Speichervorrichtungen; elektrische, optische, akustische oder andere Formen propagierter Signale (beispielsweise Trägerwellen, Infrarotsignale, digitale Signale); etc. ein.
-
Bezugnahmen in dieser Beschreibung auf „eine (1) Ausführungsform” oder „eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder ein Charakteristikum, das in Verbindung mit der Ausführungsform beschrieben ist, in wenigstens einer Ausführungsform der Erfindung enthalten ist. Daher beziehen sich die Auftritte der Phrasen „in einer (1) Ausführungsform” oder „in [irgend]einer Ausführungsform” an verschiedenen Stellen in dieser Spezifikation nicht notwendigerweise alle auf die gleiche Ausführungsform. Darüber hinaus können die bestimmten Merkmale, Strukturen oder Charakteristiken in irgendeiner geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert werden.
-
In der vorangehenden Beschreibung wurde eine ausführliche Beschreibung unter Bezugnahme auf spezifische beispielhafte Ausführungsformen geliefert. Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne von dem breiteren Geist und Schutzbereich der Erfindung, wie sie in den beigefügten Ansprüchen ausgeführt ist, abzuweichen. Die Spezifikation und Zeichnungen sind daher in einem illustrativen Sinne und nicht in einem einschränkenden Sinn zu betrachten. Darüber hinaus bezieht sich die vorangehende Verwendung von Ausführungsform und anderer beispielhafter Sprache nicht notwendigerweise auf die gleiche Ausführungsform oder das gleiche Beispiel, sondern kann sich auf unterschiedliche und bestimmte Ausführungsformen, ebenso wie potentiell die gleiche Ausführungsform, beziehen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- http://www.pcisig.com/specifications/pciexpress/ [0003]
- http://www.pcisig.com/specifications/pciexpress/ [0025]