[go: up one dir, main page]

DE60316969T2 - One-shot-rdma mit einem 2-bit-zustand - Google Patents

One-shot-rdma mit einem 2-bit-zustand Download PDF

Info

Publication number
DE60316969T2
DE60316969T2 DE60316969T DE60316969T DE60316969T2 DE 60316969 T2 DE60316969 T2 DE 60316969T2 DE 60316969 T DE60316969 T DE 60316969T DE 60316969 T DE60316969 T DE 60316969T DE 60316969 T2 DE60316969 T2 DE 60316969T2
Authority
DE
Germany
Prior art keywords
message
flag
resource
shot
access
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
DE60316969T
Other languages
English (en)
Other versions
DE60316969D1 (de
Inventor
Uri Irvine ELZUR
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.)
Broadcom Corp
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Broadcom Corp filed Critical Broadcom Corp
Application granted granted Critical
Publication of DE60316969D1 publication Critical patent/DE60316969D1/de
Publication of DE60316969T2 publication Critical patent/DE60316969T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Der Bedarf an Bandbreite in Netzwerkanwendungen und an schnelleren Netzwerk-Übertragungsgeschwindigkeiten erhöht sich schneller als die Speicherbandbreite und die Verarbeitungsleistung der Computer-Knoten, die den Datenverkehr verarbeiten. Der Umstieg auf 10-Gigabit-Ethernet verschlimmert das Problem noch weiter. In der Regel erfordert die Kommunikation über TCP/IP Datenkopiervorgänge, die wertvolle CPU- und Speicherressourcen belegen und zusätzlich Latenzzeiten bewirken.
  • Die RDMA-Technologie (ferner Direktspeicherzugriff) über TCP behandelt verschiedene Probleme hinsichtlich der Bandbreite und der Verarbeitungsleistung. Mit RDMA über TCP kann ein bedeutender Teil des Protokollverarbeitungsaufwands auf den Ethernet-Adapter verlagert werden, beispielsweise auf eine RDMA-Netzwerkschnittstellenkarte (RNIC). Außerdem enthält jedes ankommende Netzwerkpaket genügend Informationen, damit das Paket direkt an einer endgültigen Zielspeicheradresse platziert werden kann. Aufgrund der RDMA innewohnenden DDP-Eigenschaft (Direct Data Placement) entfällt die Notwendigkeit von Zwischenspeicherkopien und von weiterem, verwandtem Bedarf an Speicher- und Prozessorressourcen. Ferner kann gegebenenfalls die Notwendigkeit zur Datenpufferung in der NIC entfallen. Außerdem führt die Verringerung von Datenkopiervorgängen, die durch RDMA vorgesehen wird, zu verringerten Latenzzeiten.
  • Mit RDMA kann ein erster Computer Informationen direkt in den Speicher eines zweiten Computers schreiben, wobei sehr geringe Anforderungen hinsichtlich der Bandbreite des Speicherbusses und des Verarbeitungsaufwands einer damit verbundenen CPU gestellt werden. Die Speicherschutz-Semantik kann ebenfalls beibehalten werden. Daher werden durch RDMA, genauso wie durch Direktspeicherzugriff im Allgemeinen, viele Vorteile bereitgestellt.
  • Beim Lesen aus einer bzw. beim Schreiben in eine Speicherposition, die einem Speicherbereich (MR) oder einem Speicherfenster (MW) zugeordnet ist, müssen einige Anwendungen unter Umständen sicherstellen, dass auf den Speicher genau ein Mal oder eine begrenzte Anzahl von Malen zugegriffen werden kann. Beispielsweise gibt es Sicherheitsbedenken hinsichtlich dessen, dass der Host-Speicher während eines längeren Zeitraums offen liegt. Bei der Verwaltung von Host-Speicher können übermäßige aufwandsbedingte Kosten dadurch entstehen, dass die Registrierung des MR oder MW bei der RNIC rückgängig gemacht wird, die Ressource einem anderen Consumer zugewiesen wird (beispielweise einem anderen Thread oder einer anderen Speicherposition) und die Ressource wieder bei der RNIC registriert wird. Das Rückgängigmachen der Ressourcen-Registrierung verbraucht Softwareressourcen und macht die Wiederverwendung der Ressourcen weniger effizient, weil eine längere Zeit von dem Zeitpunkt, zu dem das ferne Element die Ressourcen zuletzt nutzt, bis zu dem Zeitpunkt, zu dem sie entfernt werden und für einen anderen Zweck zur Verfügung stehen, erforderlich ist. Wenn alternativ Speicher bei der RNIC registriert ist, während derselbe Speicher einem anderen Consumer zugewiesen wird, können unerwünschte Nebeneffekte auftreten, weil Ressourcen offen gelegt werden, während diese sich möglicherweise in einem Übergang befinden.
  • RDMA über TCP stellt die DDP-Funktionalität wie oben beschrieben bereit. RDMA erlaubt flexibel das Platzieren von Informationen an der angegebenen Speicherposition, selbst wenn das TCP-Segment, das diese Informationen trägt, nicht in der richtigen Reihenfolge am Ziel ankommt, was zu einer TCP-Lücke führt. Eine Unterstützung einer 'One-Shot'-Ressourcen-Nutzung, wenn ein DDP-Dienst für nicht in der richtigen Reihenfolge befindliche Rahmen angefordert wird, verkompliziert den Steuermechanismus für die 'One-Shot'-Nutzung oder erfordert alternativ ein Puffern, bis die TCP-Lücke geschlossen ist. Beide Optionen erhöhen zusätzlich die Kosten und Komplexität und sollten, wenn irgend möglich, vermieden werden. Demgemäß gibt es beim Stand der Technik von DDP/RDMA einen hohen Bedarf an weniger komplizierter Speichersteuerungstechnologie, bei der nur wenig oder keine zusätzliche Pufferung erforderlich ist.
  • Weitere Einschränkungen und Nachteile herkömmlicher und traditioneller Ansätze werden für die Fachleute auf diesem Gebiet durch Vergleich solcher Systeme mit der vorliegenden Erfindung offensichtlich, wie sie in dem übrigen Teil der vorliegenden Anmeldung unter Bezugnahme auf die Zeichnungen dargelegt ist.
  • Sony Corporation ( EP 0 887 735 A2 ) offenbart ein Verfahren zur Speicherverwaltung, das ein jedem Speicherblock zugewiesenes 8-Bit-Lösch-Flag (zur Angabe des Verwendungszustands des Blocks) nutzt, um die Verarbeitungsgeschwindigkeit zu erhöhen. Wenn in einem vorbestimmten Block befindliche Daten nicht mehr benötigt werden, wird die Initialisierung des vorbestimmten Blocks (das heißt das Löschen von in dem Block gespeicherten Daten) unmittelbar vor dem Zeitpunkt vorgenommen, zu dem neue Daten in den Block geschrieben werden sollen. Wenn beispielsweise Daten eines bestimmten Blocks nicht mehr benötigt werden, wird das Lösch-Flag des Blocks in einen Löschzustand versetzt. Wenn dann neue Daten in den Block geschrieben werden sollen, während sich das Lösch-Flag in dem Löschzustand befindet, wird der Block zunächst initialisiert, wodurch ermöglicht wird, dass neue Daten in den Block geschrieben werden. Nachdem Daten in den Block geschrieben wurden, wird das Lösch-Flag entweder auf den Zustand 'Head in-use' (das heißt, der Datenkopf wird in den Block geschrieben) oder auf den Zustand 'in-use' (das heißt, ein Zwischenabschnitt der Daten wird in den Block geschrieben) gesetzt. Somit gibt der Zustand des Lösch-Flags den Verwendungszustand des Blocks an (beispielsweise: Daten nicht länger erforderlich, Datenkopf gespeichert oder Zwischendaten gespeichert).
  • Garcia et al. ( US 6,163,834 ) offenbaren ein zweistufiges Suchschema zum Zugreifen auf eine Umsetzungs- und Schutztabelle. Ein virtueller Schnittstellen-Consumer (VI) kann auf den gesamten registrierten Speicher verweisen, indem er eine virtuelle Seitennummer und den damit verbundenen Speicher-Handle-Index (MHI) an eine Netzwerkschnittstellenkarte (NIC) übermittelt. Die NIC führt dann die Umsetzung der virtuellen Adresse in die physische Adresse durch. Beispielsweise verwendet die NIC den Speicher-Handle-Index (das heißt einen Zeiger), um das Speicher-Handle von einer MHI-Tabelle der ersten Stufe abzurufen. Die NIC subtrahiert dann das Memory-Handle von der virtuellen Seitennummer, um einen Pseudo-Adresszeiger (PSA) zu generieren, der auf einen Eintrag für eine physische Seitennummer (PPN) in der Umsetzungs- und Schutztabelle (TPT) zeigt. Garcia et al. offenbaren die Verwendung des zweistufigen Verfahrens zum Zugreifen auf eine TPT, um (1) Base/Bound-Checking zu implementieren und (2) die TPT-Einträge neu anzuordnen, damit eine Fragmentierung entfällt.
  • Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zum Verwalten von Speicherressourcen bereitzustellen, für das nur wenig oder keine zusätzliche Pufferung erforderlich ist.
  • Diese Aufgabe wird durch ein Verfahren erfüllt, das in dem unabhängigen Anspruch 1 angegeben ist. Vorteilhafte Ausführungsbeispiele der Erfindung sind in den Unteransprüchen definiert.
  • Beispielhafte Ausführungsbeispiele der vorliegenden Erfindung stellen ein System und Verfahren zum Verwalten von Speicherressourcen in einem System bereit, das einen fernen Direktzugriff auf Speicher erlaubt. Ein beispielhaftes Ausführungsbeispiel der vorliegenden Erfindung sieht das automatische Aufheben des Bindens von gebundenen Ressourcen für den direkten Speicherzugriff auf der Grundlage von Informationen vor, die in Nachrichten von einer fernen Quelle empfangen wurden. Diese Informationen können beispielsweise einen Indikator für das letzte Segment umfassen, um anzugeben, dass es sich bei dem Nachrichtensegment um das letzte erwartete Nachrichtensegment für eine Nachricht handelt. Das automatische Aufheben des Bindens kann beispielsweise lediglich als Reaktion auf Informationen erfolgen, die von der fernen Quelle empfangen wurden. Das automatische Aufheben des Bindens kann auch beispielsweise vollständig durch Verarbeitungs-Hardware erfolgen, die auf einer Netzwerkschnittstellenkarte angeordnet ist. Ein weiteres beispielhaftes Ausführungsbeispiel der vorliegenden Erfindung sieht eine Speicherverwaltung von Speicherabschnitten vor, auf die fern und direkt zugegriffen werden kann, indem ein Flag zugewiesen wird, um anzugeben, wann für einen Speicherabschnitt besondere Zugriffsbeschränkungen, wie eine festgelegte Anzahl von zulässigen fernen Zugriffen, gelten. Ein beispielhaftes Ausführungsbeispiel der vorliegenden Erfindung sieht den One-Shot-Zugriff auf eine Speicherressource vor, die einer fernen Einheit zur Verfügung gestellt wird. Wenn die Anforderungen für den One-Shot-Zugriff erfüllt sind, wird das Binden der Speicherressource aufgehoben, und ein weiterer Zugriff wird verweigert. Noch ein weiteres beispielhaftes Ausführungsbeispiel der Erfindung sieht ein Flag vor, das den Zustand darstellt, in dem die Zugriffsbeschränkungen, die zu einem bestimmten Speicherabschnitt gehören, erfüllt worden sind. Bei dem Flag kann es sich beispielsweise um ein Bit handeln, das gesetzt wird, um anzugeben, dass eine ferne Ressource die für sie angegebene Zuteilung von Zugriffen für eine bestimmte Speicherressource aufgebraucht hat.
  • Diese und weitere Vorteile, Aspekte und neuartige Merkmale der vorliegenden Erfindung sowie Einzelheiten eines veranschaulichten Ausführungsbeispiels davon werden aus der folgenden Beschreibung und den Zeichnungen noch besser deutlich.
  • KURZE BESCHREIBUNG MEHRERER ANSICHTEN DER ZEICHNUNGEN
  • 1 ist eine schematische Ansicht eines beispielhaften Systems gemäß verschiedenen Aspekten der vorliegenden Erfindung, das eine Ressource offen legt, auf die ein fernes Peer-System zugreifen soll.
  • 2 ist eine schematische Ansicht, welche die Registrierung von Speicherressourcen und das Aufheben des Bindens von Speicherressourcen als Reaktion auf eine Software-Anforderung veranschaulicht.
  • 3 ist eine schematische Ansicht, die gemäß verschiedenen Aspekten der vorliegenden Erfindung die Registrierung von Speicherressourcen und das automatische Aufheben des Bindens von Speicherressourcen als Reaktion auf in einer fernen Nachricht ankommende Informationen veranschaulicht.
  • 4 ist eine schematische Ansicht, die gemäß verschiedenen Aspekten der vorliegenden Erfindung die Funktionsweise des One-Shot-Modells für das Szenario veranschaulicht, in dem eine Nachricht an eine offen gelegte Ressource gesendet wird.
  • 5 ist eine schematische Ansicht, die gemäß verschiedenen Aspekten der vorliegenden Erfindung die Funktionsweise des One-Shot-Modells für das Szenario veranschaulicht, in dem eine One-Shot-Ressource ihre eine Nachricht empfangen hat und eine zweite Nachricht versucht, auf die One-Shot-Ressource zuzugreifen.
  • 6 ist eine schematische Ansicht, die gemäß verschiedenen Aspekten der vorliegenden Erfindung die Funktionsweise des One-Shot-Modells für das Szenario veranschaulicht, in dem zwei aufeinander folgende Nachrichten, die das Ziel haben, auf dieselbe Ressource zuzugreifen, nicht in der richtigen Reihenfolge ankommen.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Im Folgenden wird auf 1 Bezug genommen, bei der es sich um eine schematische Ansicht eines beispielhaften Systems 100 gemäß verschiedenen Aspekten der vorliegenden Erfindung handelt, das eine Ressource offen legt, auf die ein fernes Peer-System zugreifen soll. Ein Beispiel für ein solches System ist das RDMA-Modell (ferner Direktspeicherzugriff). Obwohl sich die folgende Erörterung gelegentlich auf Aspekte des RDMA-Modells konzentriert, ist die vorliegende Erfindung unter keinen Umständen auf ein bestimmtes Speicherzugriffsmodell beschränkt, das einen fernen Computer umfasst.
  • Bei dem RDMA-Modell kann sich eine Anwendung, der eine Ressource gehört und die sie einem fernen Peer-System offen legen möchte, in dem Benutzerraum 110 oder in dem Kernel-Raum 120 ihres Computers befinden. Der Benutzerraum 110 und der Kernel-Raum 120 sind innerhalb des Betriebssystems definiert. Die Anwendung kann beispielsweise eine Arbeitsanforderung (WQE) an die RNIC 130 übermitteln, wobei sie eine Arbeitswarteschlange (WQ) 140 verwendet, die zu einer Verbindung gehört, die als Warteschlangenpaar (QP) 150 bezeichnet wird. Die RNIC 130 liest die Einträge in der WQ 140, führt die WQE aus und informiert die Anwendung über ihren Status, indem sie einen Beendigungseintrag (CQE) in die zu dem QP 150 gehörende Beendigungswarteschlange (CQ) 160 absetzt. Die Anwendung 155 bzw. die Benutzer-DLL erwirbt dann den Beendigungseintrag (CQE) von der Beendigungswarteschlange (CQ) 160 und verarbeitet den CQE, um eine Benachrichtigung bezüglich der Beendigung der vorherigen Arbeitsanforderung (WQE) der Anwendung zu erhalten.
  • Eine Benutzerraumanwendung 155 kann sich auf eine Speicherressource als Bereich von virtuellen Adressen (VA) beziehen. Diese Speicherressource kann lokal und durch ein fernes Peer-System verwendet werden, wobei bestimmte Regeln eingehalten werden (beispielsweise die RDMA-Regeln), je nachdem, ob es sich bei der Speicherressource um einen Speicherbereich (MR) oder um ein Speicherfenster (MW) handelt. Weitere Informationen zu solchen Speicherressourcen und zu RDMA im Allgemeinen sind in den RDMA-Regeln enthalten, wie sie beispielsweise von dem RDMA Consortium veröffentlicht werden und die hiermit durch Bezugnahme in ihrer Gesamtheit in diese Anmeldung aufgenommen werden.
  • Die Anwendung oder eine Middleware-Software, die für die Anwendung arbeitet (beispielsweise Winsock Direct "WSD" 176 oder Socket Direct Protocol "SDP" 179 zusammen mit der Benutzer-DLL (dynamische Linking-Bibliothek) 177 und dem Kernel-Treiber 178), registriert den MR bzw. das MW bei der RNIC, bevor die Ressource einem fernen Peer-System offen gelegt werden kann. Die Anwendung 155 oder andere Software kann beispielsweise den MR bzw. das MW unter Verwendung der WQ 140 oder auf irgend einem anderen Kommunikationsweg bei der RNIC 130 registrieren. Sowie die RNIC 130 die Ressource registriert, liefert die RNIC 130 an die Anwendung bzw. die Middleware-Software, die für die Anwendung arbeitet (oder allgemeiner an den "Consumer"), ein Token zurück. Der Consumer verwendet dieses Token für zukünftige Verweise auf die registrierte Ressource durch den lokalen Consumer oder das ferne Peer-System. Dieses Tag wird als STag (Lenkungs-Tag) bezeichnet.
  • Wenn die RNIC 130 von einem fernen Peer-System eine Anforderung empfängt, auf die Ressource zuzugreifen, umfasst die Anforderung auch das STag, das die RNIC 130 analysieren wird, um festzustellen, ob das ferne Peer-System über Zugriffsrechte verfügt, und um festzustellen, ob das ferne Peer-System versucht, über die registrierten Begrenzungen der Ressource hinaus zuzugreifen, wie sie von dem lokalen Consumer festgelegt wurden, der die Ressource bei der RNIC 130 registriert hat.
  • Im Gegensatz zu dem Consumer, der virtuelle Adressen oder physische Adressen verwenden kann, greift die Hardware (bzw. in diesem Beispiel die RNIC 130) unter Verwendung physischer Adressen auf den Speicher zu. Die RNIC 130 verwaltet in der Regel ihre Umsetzungen von virtuellen Adressen (VA) in physische Adressen (PA) in einer Umsetzungs- und Schutztabelle (TPT), zusammen mit dem STag und den damit verbundenen Ressourcenbegrenzungen. Wenn der lokale Consumer bestimmt, dass die Ressource nicht langer offen gelegt sein soll, übermittelt der lokale Consumer (beispielsweise über die WQ oder durch andere Mittel) eine Anforderung an die RNIC 130, die Registrierung (bzw. das Binden) der Ressource aufzuheben.
  • Jede derartige Anforderung an die RNIC 130 verbraucht Zeit für den Consumer, um die Anforderung aufzubauen und die Anforderung über den Bus, der die Host-CPU und die RNIC 130 verbindet, an die RNIC 130 zu übermitteln. Die RNIC 130 verarbeitet dann die Anforderung, aktualisiert ihre interne(n) Tabelle(n) (TPT) und sendet eine Beendigungsangabe und den Status an den Consumer zurück. In vie len Fällen erfordern dieser Zugriff auf die Hardware und dessen Verwaltung im Vergleich zu anderen Systemaktivitäten eine beträchtliche Menge an Zeit und können demgemäß die gesamte Systemleistung verschlechtern.
  • Es sei angemerkt, dass die Anwendung (bzw. der Consumer) sich auch in dem Kernel-Raum anstatt in dem Benutzerraum befinden kann. Beispielsweise könnte ein Protokoll in Betracht gezogen werden, das dem Speicher-Stack des Betriebssystems Dienste bereitstellt (zum Beispiel iSCSI-Erweiterungen für RDMA oder iSER). In einem solchen Szenario können dieselben oder ähnliche Mechanismen wie die oben beschriebenen verwendet werden, wobei jedoch anstelle von Benutzerkomponenten Kernel-Komponenten verwendet werden.
  • Im Folgenden wird auf 2 Bezug genommen, wobei es sich um eine schematische Ansicht handelt, welche die Registrierung von Speicherressourcen und das Aufheben des Bindens von Speicherressourcen als Reaktion auf eine Software-Anforderung gemäß verschiedenen Aspekten der vorliegenden Erfindung veranschaulicht. Die Speicherressource kann beispielsweise einen fortlaufenden Adressraum in dem virtuellen Adressraum (VA) oder eine Scatter-Gather-Liste (SGL) in dem physischen Adressraum (PA) darstellen, der als fortlaufender Raum in dem virtuellen Adressraum beschrieben werden kann.
  • Die Software bezeichnet einen Adressraum "A" 220. Die Software setzt eine Anforderung an die Hardware (beispielsweise an die RNIC) ab, die Ressource 230 zu registrieren. Als Reaktion auf die Registrierungsanforderung aktualisiert die RNIC ihre Tabelle 240 (beispielsweise eine Umsetzungs- und Schutztabelle, TPT) mit einer Zuordnung der virtuellen Adresse oder der physischen Adresse zu dem zugewiesenen STag und mit weiteren verwandten Informationen, wie beispielsweise Begrenzungen der Ressource sowie Zugriffsrechten.
  • Nachdem die Hardware die Ressource registriert hat und der Ressource ein STag zugewiesen hat, kann die Software eine Sendeanforderung 245 einschließlich STag an die Hardware absetzen, was dazu führt, dass die Hardware eine Nachricht 250 an das ferne System 255 sendet, mit der das STag bekannt gemacht (beziehungsweise angekündigt) wird. Zu diesem Zeitpunkt ist die Ressource registriert, und das ferne System 255 weiß, welches STag für den Zugriff auf die entsprechende Ressource in dem lokalen System 257 verwendet werden muss.
  • Bei Fortsetzung des in 2 veranschaulichten Beispiels setzt das ferne System 255 einen RDMA-Schreibbefehl 260 mit dem geeigneten STag ab, was dazu führt, dass eine RDMA-Schreibnachricht 262 durch ein Netzwerk zu dem lokalen System 257 gelangt. Die Ausführung der RDMA-Schreibnachricht 262 führt dazu, dass Daten in die Speicherressource geschrieben werden, die durch den STag-Wert angegeben wird, der die RDMA-Schreibnachricht 262 begleitet.
  • Zu einem bestimmten Zeitpunkt setzt der lokale Consumer eine Anforderung zum Aufheben des Bindens 270 ab, um den weiteren Zugriff auf die Ressource zu unterbinden. Dies kann beispielsweise dadurch eingeleitet werden, dass das ferne System 255 eine Anforderung zum Senden des Status 256 absetzt, um eine Sendenachricht 259 an das lokale System 257 zu senden, die angibt, dass der Zugriff des fernen Systems auf das STag X abgeschlossen ist. Die Sendenachricht 259 kann wiederum eine Angabe 272 von der Hardware auslösen, welche der Software mitteilt, dass das STag X erledigt ist. Die Anforderung zum Aufheben des Bindens 270 kann die Ressource identifizieren, indem sie den geeigneten STag-Wert in die Anforderung mit einschließt. Bei der Anforderung zum Aufheben des Bindens 270 handelt es sich um die Aktivität, bei der die Registrierung der Ressource (beispielsweise MR oder MW) aus der Hardware entfernt wird. Wenn beispielsweise eine Speicherprotokollanforderung abgeschlossen ist, soll das Binden der Fenster an das QP aufgehoben werden, so dass der Speicher wiederverwendet werden kann.
  • Durch das Ausführen der Anforderung zum Aufheben des Bindens 270 kann die Hardware (zum Beispiel eine RNIC) ihre Tabelle 280 aktualisieren, indem sie das STag und entsprechende Einträge löscht. Somit löst die Hardware wirksam die Zuordnung zwischen STag und Ressource auf. Schließlich kann die Hardware der Software angeben 290, dass das Binden der Ressource aufgehoben wurde.
  • In dem vorigen Beispiel hat die Software auf dem lokalen System den Vorgang zum Aufheben des Bindens als Reaktion auf einen Satz von Bedingungen eingeleitet. Wie zuvor bereits erläutert, führt diese Aktivität in der Regel zu einer beträchtlichen Menge an Systemaufwand, der die Systemleistung verschlechtern kann. Ein beispielhafter RDMA-Transfer, beispielsweise ein RDMA-Transfer, der durch eine Benutzerraumanwendung verursacht wurde, kann Folgendes umfassen: Einrichten eines Speicherbereichs, Einrichten eines Fensters, Mitteilung an die ferne Vorrichtung, dass das Fenster eingerichtet wurde, Senden von Daten durch die ferne Vorrichtung an das Fenster, Benachrichtigung der Vorrichtung, dass der Datentransfer an das Fenster beendet ist, Abbauen des Fensters und Einrichten eines neuen Fensters. Durch Vermeiden oder Vereinfachen eines oder mehrerer der vorgenannten Schritte lässt sich eine wesentliche Einsparung von Systemaufwand erzielen.
  • Teilweise auf diese Möglichkeit zur Verbesserung gerichtet, sieht ein Aspekt der vorliegenden Erfindung vor, dass die Hardware das Binden der Ressource unter bestimmten Bedingungen automatisch aufhebt. Diese Funktionalität wird im Folgenden auch als "automatisches Aufheben des Bindens" bezeichnet. Die Hardware kann zu einem Zeitpunkt eine Angabe (beispielsweise "letztes Segment") von dem fernen System empfangen, die in eine Nachricht eingebettet ist, die es von dem fernen System empfangen hat. Die Hardware kann diese Angabe verwenden, um ein automatisches Aufheben des Bindens einzuleiten. Die Hardware kann auch Informationen verwenden, die während der Registrierung bereitgestellt wurden (zum Beispiel Informationen, die angeben, wie viele Male auf die Ressource zugegriffen werden konnte), um ein automatisches Aufheben des Bindens einzuleiten. Demgemäß benötigt die Hardware nicht notwendigerweise eine Führung durch andere Ressourcen des lokalen Systems und kann allein anhand von Informationen von dem fernen System handeln.
  • Demgemäß braucht die Software die Hardware nicht anzuweisen, das Binden der Ressource aufzuheben. Die Hardware sollte jedoch die Software darüber informieren, dass die Ressource entfernt wurde. Die Hardware kann diese Kommunikation auf vielfältige Weise durchführen. Um beispielsweise den lokalen Systemaufwand so gering wie möglich zu halten, kann die Angabe mit anderen Informationen konsolidiert werden, wenn ist es nicht erforderlich ist, eine direkte Angabe zu übermitteln.
  • Im Folgenden wird auf 3 Bezug genommen, wobei es sich um eine schematische Ansicht 300 handelt, welche die Registrierung von Speicherressourcen und das automatische Aufheben des Bindens von Speicherressourcen als Reaktion auf in einer fernen Nachricht ankommende Informationen gemäß verschiedenen Aspekten der vorliegenden Erfindung veranschaulicht. 3 ähnelt 2, bis die RDMA-Schreibnachricht 362 an dem lokalen System 357 ankommt. Es ist signifikant, dass der in 3 veranschaulichte Prozess die in 2 gezeigte Anforderung zum Aufheben des Bindens 270 von der Software an die Hardware nicht umfasst. Die Hardware kann allein anhand der Informationen von dem fernen System 355 agieren, oder beispielsweise anhand der Statusnachricht.
  • Die RDMA-Schreibnachricht 362 kommt an dem lokalen System 357 an, und darin ist ein Indikator (zum Beispiel L = 1) eingebettet, der für das lokalen System 357 bedeutet, dass dies das einzige oder letzte Segment der RDMA-Schreibnachricht 362 ist. Schreibnachrichten können aus nur einem Nachrichtensegment oder aus einer großen Anzahl von Nachrichtensegmenten bestehen. Außerdem kann die Hardware eine Angabe aus dem Inhalt einer Nachricht ableiten, beispielsweise der Statusnachricht. Sowie der Indikator erkannt wird, hebt die Hardware (zum Beispiel die RNIC) automatisch das Binden der Ressource auf. Anders ausgedrückt macht die Hardware automatisch die Zuordnung zwischen STag und Speicher ungültig, beispielsweise indem die Zuordnung aus der Umsetzungstabelle 380 der Hardware entfernt wird. Abschließend kann die Hardware der Software angeben 390, dass die Hardware das Binden der Ressource aufgehoben hat. Die Hardware kann auf einen beliebigen einer großen Anzahl von potenziellen Indikatoren von dem fernen System 355 einwirken. Demgemäß ist der Schutzumfang der vorliegenden Erfindung keinesfalls auf einen beschränkten Satz von Indikatoren, beispielsweise das L-Bit für den RDMA, beschränkt.
  • Wie zuvor bereits erwähnt, kann es für den Consumer (zum Beispiel aus Gründen der Sicherheit, wegen der Anwendungsleistung, der Pufferzirkulation, der Immunität gegen Bugs, usw.) ein Problem sein, dass Speicher während längerer Zeiträume offen gelegt ist. Ein weiterer vorteilhafter Aspekt der vorliegenden Erfindung sieht die Verwendung einer Ressource vor, die für das ferne Peer-System nur eine begrenzte Anzahl von Malen/Nachrichten lang offen gelegt ist. Die RNIC kann das Binden der Ressource beispielsweise aufheben, nachdem die angegebene Anzahl von Zugriffen auf die Ressource durchgeführt worden ist. Bei diesem Aspekt der vorliegenden Erfindung können Zugriffe gezählt werden, beispielsweise von eins bis zu relativ hohen Werten. Eine maximale Anzahl eins von Zugriffen kann zu einem One-Shot-Modus führen, eine maximale Anzahl N von Zugriffen zu einem N-Shot-Modus.
  • Das Beispiel einer Begrenzung auf einen Zugriff wird weiter unten noch ausführlicher erörtert. Dies beschränkt jedoch keinesfalls den Schutzumfang der vorlie genden Erfindung auf eine Implementierung mit einem Zugriff bzw. eine One-Shot-Implementierung. Für einen Mehrfach-Zugriff auf die Ressource (N-Shot) kann bei einem Aspekt der vorliegenden Erfindung ein weiteres Feld zu der Datenstruktur hinzugefügt werden, das die Ressource für die RNIC beschreibt. Die Daten in diesem zusätzlichen Feld können beispielsweise die Anzahl von Malen darstellen, welche die RNIC Zugriff auf die Ressource gewähren soll. Nach genau dieser Anzahl von Malen kann die RNIC das Binden der Ressource automatisch aufheben und damit einen weiteren Zugriff verhindern.
  • Um den Dienst mit einem Zugriff vorzusehen (dieser wird in diesem Dokument auch als "One-Shot" bezeichnet), können bei einem Aspekt der vorliegenden Erfindung zwei Flags zu der Datenstruktur hinzugefügt werden, die mit der offen gelegten Ressource (zum Beispiel dem MW oder dem MR) verbunden sind: ein One-Shot-Modus-Flag (OSM) und ein One-Shot-Fired-Flag (OSF). Es sei angemerkt, dass die RNIC diese Strukturen beispielsweise separat oder an ein QP gebunden halten kann. Es sei außerdem angemerkt, dass bei einem Aspekt der vorliegenden Erfindung einzelne Bits für das OSM- und das OSF-Flag verwendet werden. Demgemäß werden das OSM- und das OSF-Flag nachfolgende oft auch als das OSM-Bit bzw. OSF-Bit bezeichnet. Diese beispielhafte Verwendung von Einzelbit-Flags beschränkt in keiner Weise den Schutzumfang der vorliegenden Erfindung auf Einzelbit-Flags. Beispielsweise werden Aspekte der vorliegenden Erfindung auf einfache Weise um ein N-Shot-Modus-Flag (NSM) und ein N-Shot-Fired-Flag (NSF) erweitert.
  • Wenn eine Ressource als OSM-Ressource konfiguriert ist, wird das OSM-Bit in der mit der Ressource verbundenen Datenstruktur gesetzt. Wenn die RNIC die Ressource registriert und der Zugriff auf die Ressource beginnt, prüft die RNIC, ob eine vollständige Nachricht empfangen wurde. Eine vollständige Nachricht kann beispielsweise mehrere unabhängige TCP-Segmente umfassen, die getrennt empfangen wurden (das heißt ein fernes Peer-System kann eine RDMA-Schreibnachricht vorbereiten, die mehrere DDP-Segmente für das direkte Platzieren von Daten umfasst).
  • Bei dem letzten Segment der Nachricht von dem fernen Peer-System ist das L-Bit (Last Bit) gesetzt. Weitere Informationen zu dem L-Bit können der DDP-Spezifikation entnommen werden, die hiermit durch Bezugnahme in ihrer Gesamtheit in diese Anmeldung aufgenommen wird. Beim Empfang des Nachrichtensegments, in dem das gesetzte L-Bit enthalten ist, setzt die RNIC das OSF-Bit. Dieses gesetzte Bit (bzw. Flag) dient als Angabe, dass ein Segment mit gesetztem L-Bit für eine bestimmte Ressource empfangen wurde. Wenn in der empfangenen TCP-Folge bis zu der Position des Segments, welches das L-Bit enthält, keine Lücke vorhanden ist (das heißt, die Empfänger-RNIC hat alle vorherigen Folgeabschnitte dieser Nachricht empfangen und platziert), hebt die RNIC automatisch das Binden der Ressource auf, wodurch jeglicher weiterer Zugriff darauf verhindert wird.
  • Im Folgenden wird auf 4 Bezug genommen, wobei es sich um eine schematische Ansicht handelt, die gemäß verschiedenen Aspekten der vorliegenden Erfindung die Funktionsweise des One-Shot-Modells für das Szenario veranschaulicht, in dem eine Nachricht an die offen gelegte Ressource (zum Beispiel entweder an ein MW oder an einen MR) gesendet wird. Die Software des lokalen Systems 410 setzt eine Anforderung für die RNIC ab, die Ressource an der Adresse "A" 420 als One-Shot-Ressource zu registrieren. Als Reaktion darauf verbindet die RNIC einen STag-Wert "X" mit der Adresse "A" und aktualisiert ihre Ressourcentabelle 430 (zum Beispiel eine ferne TPT-Tabelle), damit diese einen Datenstruktureintrag zur Verwaltung der Ressource umfasst. Außerdem setzt die RNIC das One-Shot-Modus-Bit (OSM) in ihrer Ressourcentabelle 430, um der Anforderung der Software, die Ressource als One-Shot-Ressource zu bezeichnen, zu entsprechen.
  • Nachdem die RNIC die Ressource gemäß der Anforderung der Software registriert hat 420, setzt die Software eine Sendeanforderung ab 440, um das mit der verfügbaren One-Shot-Ressource verbundene STag bekannt zu machen. Die RNIC wiederum überträgt die Sendenachricht 445 an das ferne System 450. Als Reaktion auf das Empfangen der Sendenachricht 445 setzt das ferne System 450 eine RDMA-Schreibanforderung 455 ab, die zur Übertragung einer Nachricht M1 führt.
  • In diesem Beispiel handelt es sich bei der Nachricht um eine RDMA-Schreibnachricht mit zwei Segmenten. Das ferne System 450 sendet zunächst das RDMA-Schreibsegment eins 460 an das lokale System 410. Das RDMA-Schreibsegment eins 460 identifiziert das STag und setzt das L-Bit auf 0, da es sich bei dem RDMA-Schreibsegment eins 460 nicht um das letzte Segment der vollständigen RDMA-Schreibnachricht handelt. Das lokale System 410 empfängt das RDMA-Schreibsegment eins 460, und die RNIC erkennt nicht, dass das L-Bit gesetzt ist, so dass die RNIC den direkten Speicherzugriff normal erfolgen lässt und keine weitere besondere Maßnahme durchführt.
  • Als Nächstes sendet das ferne System 450 das RDMA-Schreibsegment zwei 465 an das lokale System 410. Das RDMA-Schreibsegment zwei 465 identifiziert das STag und setzt das L-Bit auf 1, da das RDMA-Schreibsegment zwei 465 das letzte Segment der vollständigen RDMA-Schreibnachricht ist. Das lokale System 410 empfängt das RDMA-Schreibsegment zwei 465, und die RNIC erkennt, dass das L-Bit gesetzt ist, was angibt, dass es sich bei dem RDMA-Schreibsegment zwei 465 um das letzte Segment der RDMA-Schreibnachricht handelt. Als Reaktion darauf setzt die RNIC das geeignete One-Shot-Fired-Bit (OSF) in ihrer Ressourcentabelle 470 auf 1, um anzugeben, dass das letzte Segment der Nachricht für die One-Shot-Ressource empfangen wurde. Wenn das letzte Segment (bzw. der letzte Abschnitt) der Nachricht empfangen wurde und keine Lücken in der TCP-Folge vorhanden sind, hebt die RNIC das Binden der Ressource auf und sendet die entsprechende Angabe 480 an die Software.
  • Aspekte des One-Shot-Mechanismus können zusätzliche Nachrichten von der geschützten Ressource fernhalten, sobald die Ressource eine vollständige Nachricht empfangen hat. Dies ist unter Bezugnahme auf 5 veranschaulicht. 5 ist eine schematische Ansicht 500, die gemäß verschiedenen Aspekten der vorliegenden Erfindung die Funktionsweise des One-Shot-Modells für das Szenario veranschaulicht, in dem eine One-Shot-Ressource ihre eine Nachricht empfangen hat und eine zweite Nachricht versucht, auf die One-Shot-Ressource zuzugreifen. Die in 5 veranschaulichte One-Shot-Funktionsweise ähnelt der, die in 4 veranschaulicht ist, bis das ferne System 510 eine zweite Nachricht 520 einleitet.
  • Wenn die zweite Nachricht 520 an dem lokalen System 530 ankommt, kann sich die Ressourcentabelle der RNIC in einem von zwei Zuständen befinden. In dem ersten Zustand hat die RNIC als Reaktion auf das Ankommen des letzten Segments 540 von Nachricht eins das Aufheben des Bindens der Ressource beendet, wie in der Ressourcentabelle 535 gezeigt. Da das STag nicht an eine verfügbare Ressource gebunden ist, blockiert die RNIC demgemäß den Zugriff von Nachricht zwei 520 auf eine Ressource und kann eine Fehlerangabe generieren 545. In dem zweiten Zustand hat die RNIC als Reaktion auf das Ankommen des letzten Segments 540 von Nachricht eins das Aufheben des Bindens der Ressource noch nicht durchgeführt, aber die RNIC hat wenigstens das OSF-Flag in der Ressourcentabelle 550 gesetzt. Da das OSF-Flag für das entsprechende STag in der Ressourcentabelle 550 gesetzt ist, kann die RNIC demgemäß den Zugriff von Nachricht zwei 520 auf die Ressource blockieren und eine Fehlerangabe 545 generieren.
  • Es sei angemerkt, dass das DDP- und das RDMA-Protokoll keine Nachrichtennummerierung für Nachrichten aufweisen, die an Puffer mit Tags adressiert sind, wie diejenigen, die durch ein MW oder einen MR beschrieben sind. Die Empfänger-RNIC kann jedoch manchmal die Reihenfolge bestimmen, indem sie beispielsweise die TCP-Folgenummer verwendet. Somit kann die RNIC Strategien für die Speicherverwaltung implementieren, und diese Aspekte der vorliegenden Erfindung sollten nicht durch verschiedene andere Aspekte der vorliegenden Erfindung beschränkt werden. Um beispielsweise jegliches Platzieren von Daten außer den Segmenten der M1 zu verhindern, kann die RNIC ihren Empfang auf streng in der richtigen Reihenfolge befindliche TCP-Segmente beschränken. Alternativ kann die RNIC beispielsweise nicht in der richtigen Reihenfolge befindliche Daten puffern, bis die TCP-Lücke geschlossen ist, und dann Entscheidungen hinsichtlich der Platzierung treffen.
  • Zur weiteren Veranschaulichung von Aspekten der vorliegenden Erfindung kann das Szenario betrachtet werden, in dem zwei Nachrichten (M1 und M2) an dasselbe Fenster gesendet werden, aber nicht in der richtigen Reihenfolge ankommen. In diesem Szenario ist die RDMA-Netzwerkschnittstellenkarte (RNIC) in der Lage festzustellen, dass eine Fehlerbedingung vorliegt. Im Folgenden wird zur Veranschaulichung auf 6 Bezug genommen.
  • 6 ist eine schematische Ansicht 600, die gemäß verschiedenen Aspekten der vorliegenden Erfindung die Funktionsweise des One-Shot-Modells für das Szenario veranschaulicht, in dem zwei aufeinander folgende Nachrichten, die das Ziel haben, auf dieselbe Ressource zuzugreifen, nicht in der richtigen Reihenfolge ankommen. Anfänglich sendet das ferne System 610 Nachricht eins 621 an das lokale System 630, die für STag X bestimmt ist. Dann sendet das ferne System 610 zum Beispiel versehentlich Nachricht zwei 622 an das lokale System 630, die ebenfalls für STag X bestimmt ist. Aufgrund der inkonsistenten Latenzzeiten im Netzwerk oder aus einem anderen Grund kommt Nachricht zwei 622 im lokalen System 630 an, bevor Nachricht eins 621 ankommt.
  • Wenn Nachricht zwei 622 mit dem gesetzten L-Bit (oder einem anderen Indikator) an dem lokalen System 630 ankommt, setzt die RNIC in ihrer Ressourcentabelle 640 das OSF-Flag. Da Nachricht zwei 622 vor Nachricht eins 621 angekommen ist, besteht eine Bedingung mit TCP-Lücke. Es sei angemerkt, dass die RNIC das Binden der Ressource nicht aufhebt, bis die TCP-Segmente bis hin zu dem Segment, welches das L-Bit enthielt, empfangen wurden.
  • Wenn Nachricht eins 621 an dem lokalen System 630 ankommt und versucht, auf die dem STag X entsprechende One-Shot-Ressource zuzugreifen, stellt die RNIC bei einer Suche in ihrer Ressourcentabelle 640 fest, dass das OSF-Flag für die Ressource gesetzt ist. Diese Bedingung kann beispielsweise die RNIC veranlassen, Nachricht eins 621 den Zugriff auf die Ressource zu verweigern und eine Fehlerbedingung zu generieren 650. Die RNIC kann unter Umständen nicht über die Zustände verfügen, um eine Fehlerangabe mit dem exakten Header für M2 zu generieren, so dass sie möglicherweise den Header von M1 mit einem Fehlercode verwendet, der angibt, dass eine frühere Nachricht M2 nicht in der richtigen Reihenfolge vorhanden war, welche das Setzen des OSF-Flags für das Fenster bewirkt hat.
  • Es sei angemerkt, dass es in dem Fall, in dem Segmente von zwei Nachrichten M1 und M2 unterwegs gemischt werden, vorkommen kann, dass Mehrfach-Platzierungen in dieselbe Speicherressource (siehe Erörterung weiter oben bezüglich des Verhinderns von Mehrfach-Platzierungen) erfolgen. Aufgrund des letztendlichen Empfangs von zwei Nachrichten, die ein gesetztes L-Bit (oder einen anderen Indikator) enthalten, wird die RNIC den Fehler schließlich erkennen.
  • Zusammengefasst lässt sich sagen, dass verschiedene Aspekte der vorliegenden Erfindung eine effiziente Implementierung eines fernen One-Shot- oder N-Shot-Direktzugriffs auf Speicher vorsehen, einschließlich des automatischen Aufhebens des Bindens von Speicherressourcen.
  • Während die Erfindung unter Bezugnahme auf bestimmte Aspekte der Erfindung beschrieben wurde, ist es für Fachleute auf diesem Gebiet eindeutig verständlich, dass verschiedene Änderungen vorgenommen werden können und ersatzhalber äquivalente Elemente verwendet werden können, ohne dass vom Schutzumfang der Erfindung abgewichen wird. Außerdem können viele Modifikationen vorgenommen werden, um eine bestimmte Situation oder ein bestimmtes Material an die Lehre der Erfindung anzupassen, ohne von ihrem Schutzumfang abzuweichen. Daher ist beabsichtigt, dass die Erfindung nicht auf das spezielle offenbarte Ausführungsbeispiel beschränkt ist, sondern dass die Erfindung alle Ausführungsbeispiele umfasst, die von dem durch die angehängten Ansprüche definierten Schutzumfang umfasst werden.

Claims (9)

  1. Verfahren zum Verwalten von Speicherressourcen in einem System, das für den fernen Direktzugriff auf Speicher konfiguriert ist, wobei das Verfahren Folgendes umfasst: Setzen eines Modus-Flags, das mit einem Speicherabschnitt verbunden ist, um eine maximale Anzahl von Zugriffen auf den Speicherabschnitt anzugeben; und Setzen eines Fired-Flags, das mit einem Speicherabschnitt verbunden ist, um anzugeben, dass der Zugriff auf den Speicherabschnitt gemäß der maximalen Anzahl von Zugriffen beendet ist.
  2. Verfahren nach Anspruch 1, wobei es sich wenigstens bei einem von dem Modus-Flag und dem Fired-Flag um ein einzelnes Bit handelt.
  3. Verfahren nach Anspruch 1, wobei die Schritte zum Setzen der Flags durch eine Netzwerkschnittstellenkarte (130) durchgeführt werden.
  4. Verfahren nach Anspruch 1, wobei es sich bei dem Modus-Flag um ein One-Shot-Modus-Flag handelt, wobei es sich bei dem Fired-Flag um ein One-Shot-Fired-Flag handelt und wobei sich der Speicherabschnitt in einem One-Shot-Modus befindet.
  5. Verfahren nach Anspruch 4, wobei das Setzen des Fired-Flags folgende Schritte umfasst: Empfangen einer Nachricht, die wenigstens ein Nachrichtensegment umfasst, wobei das wenigstens eine Nachrichtensegment Zugriff auf den Speicherabschnitt im One-Shot-Modus anfordert und ein Indikator-Bit aufweist; Bestimmen, ob das Indikator-Bit gesetzt ist; und wenn der Schritt zum Bestimmen bestimmt, dass das Indikator-Bit gesetzt ist, Setzen des One-Shot-Fired-Flags als Reaktion auf das wenigstens eine Nach richtensegment, um einen weiteren Zugriff auf den Speicherabschnitt zu blockieren.
  6. Verfahren nach Anspruch 1, wobei: das Setzen des Modus-Flags das Setzen eines N-Shot-Modus-Flags umfasst, das mit dem Speicherabschnitt verbunden ist, der in einem N-Shot-Modus mit einer maximalen Anzahl N von Zugriffen funktionieren soll; und das Setzen des Fired-Flags das Setzen eines N-Shot-Fired-Flags umfasst, um einen weiteren Zugriff auf das Speichersegment zu blockieren, wobei das N-Shot-Fired-Flag gesetzt wird, nachdem N Nachrichten empfangen wurden, die Zugriff auf den Speicherabschnitt anfordern.
  7. Verfahren nach Anspruch 1, wobei das Setzen des Modus-Flags das Binden des Speicherabschnitts für fernen Direktzugriff umfasst; und das Setzen des Fired-Flags das automatische Aufheben des Bindens des Speicherabschnitts umfasst.
  8. Verfahren nach Anspruch 1, wobei das Setzen des Modus-Flags das Binden eines Speicherabschnitts für den DMA-Zugriff umfasst; und das Setzen des Fired-Flags Folgendes umfasst: Empfangen einer Nachricht, die eine Vielzahl von Nachrichtensegmenten aufweist, wobei ein Nachrichtensegment der Vielzahl von Nachrichtensegmenten Zugriff auf den Speicherabschnitt anfordert, Bestimmen, ob es sich bei dem Nachrichtensegment um ein letztes Nachrichtensegment der Nachricht handelt, wenn der Schritt zum Bestimmen des letzten Nachrichtensegments bestimmt, dass es sich bei dem Nachrichtensegment um das letzte Nachrichtensegment der Nachricht handelt, Bestimmen, ob vor dem Nachrichtensegment eine TCP-Lücke vorhanden ist, und wenn der Schritt zum Bestimmen der TCP-Lücke bestimmt, dass vor dem Nachrichtensegment eine TCP-Lücke vorhanden ist, Verzögern des automatischen Aufhebens des Bindens des Speicherabschnitts, bis die TCP-Lücke geschlossen ist.
  9. Verfahren nach Anspruch 8, wobei das Setzen des Fired-Flags ferner das Puffern empfangener Nachrichtensegmente umfasst, bis die TCP-Lücke geschlossen ist.
DE60316969T 2002-08-14 2003-08-14 One-shot-rdma mit einem 2-bit-zustand Expired - Lifetime DE60316969T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US40381702P 2002-08-14 2002-08-14
US403817P 2002-08-14
PCT/US2003/025543 WO2004017173A2 (en) 2002-08-14 2003-08-14 One shot rdma having a 2-bit state

Publications (2)

Publication Number Publication Date
DE60316969D1 DE60316969D1 (de) 2007-11-29
DE60316969T2 true DE60316969T2 (de) 2008-07-31

Family

ID=31888286

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60316969T Expired - Lifetime DE60316969T2 (de) 2002-08-14 2003-08-14 One-shot-rdma mit einem 2-bit-zustand

Country Status (4)

Country Link
US (1) US7398300B2 (de)
EP (1) EP1543658B1 (de)
DE (1) DE60316969T2 (de)
WO (1) WO2004017173A2 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299266B2 (en) * 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
US7603491B2 (en) * 2003-06-19 2009-10-13 Intel Corporation Bandwidth conserving protocol for command-response bus system
US7404190B2 (en) * 2003-09-18 2008-07-22 Hewlett-Packard Development Company, L.P. Method and apparatus for providing notification via multiple completion queue handlers
US8959171B2 (en) * 2003-09-18 2015-02-17 Hewlett-Packard Development Company, L.P. Method and apparatus for acknowledging a request for data transfer
US7912979B2 (en) * 2003-12-11 2011-03-22 International Business Machines Corporation In-order delivery of plurality of RDMA messages
US20050138126A1 (en) * 2003-12-23 2005-06-23 Timucin Ozugur Peer-to-peer e-mail
US7383312B2 (en) * 2003-12-29 2008-06-03 International Business Machines Corporation Application and verb resource management
US7577707B2 (en) * 2004-04-21 2009-08-18 International Business Machines Corporation Method, system, and program for executing data transfer requests
US7526574B2 (en) * 2004-04-21 2009-04-28 International Business Machines Corporation Method for communicating data transfer requests between data transfer protocols
US7779081B2 (en) * 2004-07-16 2010-08-17 International Business Machines Corporation Method, system, and program for forwarding messages between nodes
US20060168092A1 (en) * 2005-01-21 2006-07-27 International Business Machines Corporation Scsi buffer memory management with rdma atp mechanism
KR101515359B1 (ko) * 2011-09-30 2015-04-29 인텔 코포레이션 시스템 코-프로세서에 대한 직접 i/o 액세스
US9037753B2 (en) 2013-08-29 2015-05-19 International Business Machines Corporation Automatic pinning and unpinning of virtual pages for remote direct memory access
CN107766261A (zh) * 2017-09-22 2018-03-06 华为技术有限公司 数据校验的方法、装置以及网卡
US11025564B2 (en) 2019-02-22 2021-06-01 Microsoft Technology Licensing, Llc RDMA transport with hardware integration and out of order placement
US11068412B2 (en) 2019-02-22 2021-07-20 Microsoft Technology Licensing, Llc RDMA transport with hardware integration

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956341A (en) * 1996-12-13 1999-09-21 International Business Machines Corporation Method and system for optimizing data transmission line bandwidth occupation in a multipriority data traffic environment
JP3718578B2 (ja) * 1997-06-25 2005-11-24 ソニー株式会社 メモリ管理方法及びメモリ管理装置
US6333929B1 (en) * 1997-08-29 2001-12-25 Intel Corporation Packet format for a distributed system
US6163834A (en) * 1998-01-07 2000-12-19 Tandem Computers Incorporated Two level address translation and memory registration system and method
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
US6799220B1 (en) * 2000-04-13 2004-09-28 Intel Corporation Tunneling management messages over a channel architecture network
DE60135304D1 (de) * 2001-04-04 2008-09-25 Ericsson Telefon Ab L M Verfahren zur Datenflusssteuerung
US7519650B2 (en) * 2002-09-05 2009-04-14 International Business Machines Corporation Split socket send queue apparatus and method with efficient queue flow control, retransmission and sack support mechanisms

Also Published As

Publication number Publication date
US20040034725A1 (en) 2004-02-19
WO2004017173A3 (en) 2004-05-27
WO2004017173A2 (en) 2004-02-26
EP1543658A4 (de) 2006-01-11
US7398300B2 (en) 2008-07-08
EP1543658A2 (de) 2005-06-22
EP1543658B1 (de) 2007-10-17
DE60316969D1 (de) 2007-11-29

Similar Documents

Publication Publication Date Title
DE60316969T2 (de) One-shot-rdma mit einem 2-bit-zustand
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE69505871T2 (de) Taktfehlererkennungsschaltung
DE102005014727B4 (de) Hardwarekoordination von Power Management-Aktivitäten
DE60036465T2 (de) Rechneradapterkarte für die kombinierung von eingang-/ausgangfertigstellungsberichten und verwendung derselben
DE602005003142T2 (de) Vorrichtung und verfahren zur unterstützung von verbindungsherstellung in einem offload der netzwerkprotokollverarbeitung
DE60316783T2 (de) Erkennung von Speichermangel und Feinabschaltung
DE69322125T2 (de) Verfahren zur Implementierung eines Protokollstapels für Datenkommunikation
DE4003759C2 (de) Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen
DE69330548T2 (de) Datentransfereinheit zur Benutzung in parallelen Verarbeitungssystemen
DE69803852T2 (de) Dos-anwenderprogrammünterstützungen für ein modem ohne steuerung
DE69836778T2 (de) Vorrichtung und Verfahren zur Fernpufferspeicherzuordnung und Verwaltung für Nachrichtenübertragung zwischen Netzknoten
DE19982854B4 (de) Verfahren und Einrichtung zum Minimieren von Leerlaufbedingungen eines asynchronen Sendefifos und von Überlaufbedingungen eines Empfangsfifos
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE19733151B4 (de) Vorrichtung und Verfahren für einen virtuellen Gerätezugriff in einem Computersystem
DE69620070T2 (de) Vielfachknoten-Datenverarbeitungssystem und Verfahren zur Übertragung von Nachrichten in diesem Vielfachknoten-Datenverarbeitungssystem
DE102013114256A1 (de) Systeme und Verfahren zur Beibehaltung der Informationskohärenz
DE10047266A1 (de) Dynamische Mac-Zuweisung und -Konfiguration
DE112012006227T5 (de) Remotezugriff auf den direkten Speicher mit reduzierter Latenzzeit
DE10065656A1 (de) Faserkanalschnittstellensteuerungseinrichtung, die eine nicht blockierende Ausgabe und Eingabe von Faserkanaldatenrahmen und Quittierungsrahmen in und von einem Faserkanal durchführt
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE112013000812T5 (de) Variable Bestätigungsrate zum Verringern von Buskonflikt in Gegenwart von Datenübertragungsfehlern
DE69629331T2 (de) System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M