DE102009030047A1 - Verfahren und System zur Übertragung von Daten zwischen Datenspeichern durch entfernten direkten Speicherzugriff sowie Netzwerkstation die eingerichtet ist um in dem Verfahren als Sendestation bzw. als Empfangstation zu operieren - Google Patents

Verfahren und System zur Übertragung von Daten zwischen Datenspeichern durch entfernten direkten Speicherzugriff sowie Netzwerkstation die eingerichtet ist um in dem Verfahren als Sendestation bzw. als Empfangstation zu operieren Download PDF

Info

Publication number
DE102009030047A1
DE102009030047A1 DE102009030047A DE102009030047A DE102009030047A1 DE 102009030047 A1 DE102009030047 A1 DE 102009030047A1 DE 102009030047 A DE102009030047 A DE 102009030047A DE 102009030047 A DE102009030047 A DE 102009030047A DE 102009030047 A1 DE102009030047 A1 DE 102009030047A1
Authority
DE
Germany
Prior art keywords
buffer
buffers
receive
rdma
transport
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.)
Withdrawn
Application number
DE102009030047A
Other languages
English (en)
Inventor
Frank Gläser
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.)
Deutsche Thomson OHG
Original Assignee
Deutsche Thomson OHG
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 Deutsche Thomson OHG filed Critical Deutsche Thomson OHG
Priority to DE102009030047A priority Critical patent/DE102009030047A1/de
Priority to PCT/EP2010/058608 priority patent/WO2010149576A1/en
Priority to EP10728631.2A priority patent/EP2446606B1/de
Priority to US13/379,392 priority patent/US8706927B2/en
Publication of DE102009030047A1 publication Critical patent/DE102009030047A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

Bei dem Verfahren werden Daten zwischen einem ersten Speicher, der einem Quellrechner zugeordnet ist, und einem zweiten Speicher, der einem Zielrechner zugeordnet ist, über ein Neztwerk durch entfernten direkten Speicherzugriff (RDMA) übertragen. Quellrechnerseitig wird eine vorbestimmte Anzahl von unmittelbar aufeinander folgenden Sendepuffern aus einem kontinuierlichen Pufferspeicherbereich ausgewählt und in einem einzigen RDMA-Sende-Prozess zum Zielrechner übertragen. Zielrechnerseitig werden ein RDMA-Datentransfer über den gesamten kontinuierlichen Pufferspeicherbereich und eine Puffersequenzprozedur durchgeführt. Die Puffersequenzprozedur veranlasst, dass die emfangenen Puffer in der gesendeten Reihenfolge der Zielanwendung zugeführt werden.

Description

  • Die Erfindung betrifft ein Verfahren und ein System zur Übertragung von Daten zwischen Datenspeichern durch entfernten direkten Speicherzugriff (RDMA = engl, remote direct memory access).
  • Stand der Technik
  • RDMA-Datentransportverfahren, bei denen z. B. PC-Erweiterungskarten oder andere Schnittstellen verwendet werden, die über eine RDMA-Hardware entfernte Speicherbereiche lesen und schreiben können sind Stand der Technik. Bei einem RDMA-Datentransportverfahren werden Daten ohne zusätzliche Kopie vom Speicher des Quellrechners in den Speicher des Zielrechners kopiert. Der Kopiervorgang wird dabei von der Hardware einer Netzwerkkarte ausgeführt. Dadurch wird ein sehr schneller Datentransfer ermöglich, ohne hierfür CPU-Belastungen in Quell- und Zielrechner beanspruchen zu müssen.
  • Man unterscheidet grundsätzlich zwei Arten von RDMA-Operationen: die RDMA-Read-Operation und die RDMA-Write-Operation.
  • Bei einer die RDMA-Read-Operation sendet eine Sendeanwendung ein kleines Informationspaket (in der englischen Fachliteratur mit ”info packet” bezeichnet), das Werte für die Speicheradresse und der Länge der Sendedatenpuffer beinhaltet, zu einer Empfangsanwendung. Nach dem Empfang der im angesprochenen Informationspaket enthaltenen Adressinformationen führt die Empfangsanwendung eine RDMA-Read-Operation zu der entfernten Speicheradresse durch und überträgt Daten zum eigenen Anwendungs-Empfangsdatenpufferspeicher.
  • Es existieren verschiedene RDMA-Datenübertragungsverfahren, bei denen vergleichsweise kleine Transportdatenpuffer verwendet werden, wie beispielsweise in RDMA-basierten Speicherprotokollimplementierungen wie SRP (SCSI RDMA Protocol) oder iSER (iSCSI Extensions for RDMA) in Verbindung mit RDMA-Streaming-Anwendungen.
  • Nachteilig ist hierbei anzusehen, dass bei RDMA-Datenübertragungen, die solche kleine Transportdatenpuffern nutzen, die auf zusätzliche Informationspaketen basierende Übertragung von Sende- oder Empfangsadressen einen signifikanten Overhead darstellt, der letztlich die zur Verfügung stehende Transportdatenrate verringert.
  • Erfindung
  • Die Aufgabe der vorliegenden Erfindung besteht nun darin, bei gleicher Größe der von der Nutzeranwendung verwendeten Transportdatenpuffer den RDMA-transportspezifischen Overhead im Vergleich zum Stand der Technik zu reduzieren.
  • Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte Ausführungsformen der Erfindung sind in weiteren Ansprüchen definiert.
  • Bei dem Verfahren werden Daten zwischen einem ersten Speicher, der einem Quellrechner zugeordnet ist, und einem zweiten Speicher, der einem Zielrechner zugeordnet ist, über ein Netzwerk durch entfernten direkten Speicherzugriff (RDMA) übertragen. Quellrechnerseitig wird eine vorbestimmte Anzahl von Sendepuffern aus einem kontinuierlichen Pufferspeicher ausgewählt und in einem einzigen RDMA-Sende-Prozess zum Zielrechner übertragen. Zielrechnerseitig werden ein RDMA-Datentransfer über den gesamten ausgewählten Pufferspeicherbereich und eine Puffersequenzprozedur durchgeführt. Die Puffersequenzprozedur veranlasst, dass die empfangenen Puffer in der gesendeten Reihenfolge der Zielanwendung zugeführt werden.
  • Gemäß einer Ausgestaltung des erfindungsgemäßen Verfahrens werden alle bei dem Verfahren verwendeten Transportpuffer aus einem registrierten kontinuierlichen Pufferspeicherbereich allokiert.
  • Der beim erfindungsgemäßen Verfahren verwendete Pufferspeicher besteht insbesondere aus einem Bereich zusammenhängender physikalischer Speicheradressen des Quell- bzw. Zielrechners.
  • Der Pufferspeicherbereich wird in einzelne Datenblöcke unterteilt. Jedem allokierbaren Transportpuffer wird eine Verwaltungsdatenstruktur zugeordnet, die eine Speichernummer zur Identifikation der Position des betreffenden Transportpuffers im Pufferspeicherbereich und eine Sequenznummer zur Identifikation des Transportpuffers im Transportdatenstrom umfasst.
  • Bei einer Ausführungsvariante des erfindungsgemäßen Verfahrens umfasst das Verfahren folgende Schritte:
    • – Bereitstellen der Transportpuffer aus dem registrierten kontinuierlichen Pufferspeicherbereich seitens der Sendeanwendung und der Empfangsanwendung;
    • – einen Füllschritt, bei dem Sendepuffer in eine asynchrone Sendepufferwarteschlange eingefügt werden;
    • – Suchen einer vorbestimmten Anzahl von unmittelbar aufeinander folgenden Transportpuffern im kontinuierlichen Pufferspeicherbereich in der asynchronen Sendepufferwarteschlange, basierend auf der jeweiligen Speichernummer in jeder Verwaltungsdatenstruktur durch einen Sendeverarbeitungsthread;
    • – Senden der Speicheradresse des ersten gefundenen Transportpuffers, gemeinsam mit dem Wert für die Länge des gesamten Bereichs der gefundenen Transportpuffer und der entsprechenden Sequenznummern vom Quellrechner zum Zielrechner in einem ersten RDMA-Informationspaket,
    • – einen Exekutionsschritt, bei dem eine asynchrone Empfangsoperation durchgeführt wird;
    • – einen RDMA-Lese-Schritt, der das Empfangen des ersten RDMA-Informationspaketes, das Ermitteln der erforderlichen Anzahl von kontinuierlichen Empfangspuffern aus der Empfangspufferwarteschlange und das Durchführen einer RDMA-Read-Operation umfasst, um die Daten von allen beteiligten Sendepuffern zu den Empfangspuffern zu übertragen;
    • – einen auf eine erfolgreiche RDMA-Read-Operation folgenden Lesekomplettierungsbestätigungsschritt, bei dem eine RDMA-Read-Complete-Nachricht zum Zielrechner übertragen wird;
    • – einen auf einen erfolgreichem RDMA-Transport folgenden Einreihungsschritt, bei dem den Empfangspuffern die zugehörigen Sequenznummern zugewiesen und die Empfangspuffer in einer Empfangspufferkomplettierungs-Warteschlange eingereiht werden; und
    • – einen Komplettierungsschritt, bei dem die Empfangspuffer zur Nutzeranwendung vervollständigt werden.
  • Gemäß einer Ausgestaltung des erfindungsgemäßen Verfahrens umfasst der Füllschritt das Füllen der Sendepuffer durch die Sendeanwendung, das Aufrufen von Sendefunktionen durch die Sendeanwendung, um die Sendepuffer in die asynchrone Sendepufferwarteschlange zu füllen und die sequentielle Zuweisung von Sequenznummern zu den Sendepuffer in der Reihenfolge des Funktionsaufrufs durch die Sendefunktionsverarbeitung.
  • Bei einer Ausführungsvariante des erfindungsgemäßen Verfahrens umfasst der Exekutionsschritt das Aufrufen asynchroner Empfangsfunktionen durch die Empfangsanwendung, um alle verfügbaren Datenempfangspuffer in eine asynchrone Empfangspufferwarteschlange einzufügen und das automatische Sortieren der Datenempfangspuffer in der Empfangspufferwarteschlange nach fallender oder steigender Pufferspeichernummer.
  • Gemäß einer Ausführungsform des erfindungsgemäßen Verfahrens umfasst der Einreihungsschritt das Trennen der einzelnen Empfangspuffer, die Zuweisung der entsprechenden Sequenznummern zu Empfangspuffer-Verwaltungsstrukturen durch den Empfangsverarbeitungsthread, das Einfügen der getrennten Empfangspuffer an einem Ende der Empfangspufferkomplettierungs-Warteschlange und das Sortieren der eingefügten Empfangspuffer in der Empfangspufferkomplettierungs-Warteschlange nach steigender oder fallender Sequenznummer.
  • Beispielsweise umfasst der Komplettierungsschritt die Entnahme der Transportpuffer am anderen Ende der Empfangspufferkomplettierungs-Warteschlange, das Leeren der Empfangspufferkomplettierungs-Warteschlange und die Rückgabe der Tramspotpuffer an die Empfangspufferwarteschlange.
  • Gemäß einer Ausgestaltung des erfindungsgemäßen Verfahrens wird im Lesekomplettierungsbestätigungsschritt ein zweites RDMA-Informationspakets zum Sender gesendet, um die RDMA-Read-Operation zu beenden.
  • Das erfindungsgemäße Verfahren hat den Vorteil, dass der Overhead für den Adressentransport und die Anzahl der erforderlichen RDMA-Operationen im Vergleich zum Stand der Technik deutlich verringert werden. Dieser Vorteil ist besonders gewichtig bei Verfahren, die mit kleinen Transportpuffern durchgeführt werden, etwa bei einem RDMA-Streaming der Fall ist.
  • Zeichnungen
  • Im Folgenden werden weitere Vorteile und Einzelheiten der Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Es zeigen:
  • 1 ein prinzipielles Ablaufdiagramm zur Veranschaulichung des Ablaufs einer Datenübertragung beim erfindungsgemäßen Verfahren; und
  • 2 einen Graphen mit das erfindungsgemäße Verfahren charakterisierenden Messergebnissen.
  • Beispielhaft aufzufassende Ausführungsform der Erfindung
  • 1 zeigt ein rein prinzipielles Ablaufdiagramm zur Veranschaulichung des Ablaufs einer Datenübertragung beim erfindungsgemäßen Verfahren. Die einzelnen Unterprozeduren des erfindungsgemäßen Verfahrens sind gemäß den eingekreisten Ziffern 0 bis 11 in 1 nummeriert.
  • Bei dem erfindungsgemäßen Verfahren wird ein Transportpufferpool bereitgestellt, der von der RDMA-Transport-Software gesteuert oder kontrolliert wird
  • Sämtliche bei dem erfindungsgemäßen Verfahren verwendeten Transportdatenpuffer sind aus diesem Transportpufferpool durch die Nutzeranwendung zu allokieren. Der Transportpufferpool entsteht aus einem kontinuierlichen Pufferspeicherbereich, der für den Direktspeicherzugriff DMA (Direct Memory Access) registriert und in Datenblöcke B1, B2, B3 ... B12 (in der englischen Fachliteratur mit ”chunks” bezeichnet) unterteilt ist, deren Größe der erforderliche Sende-/Empfangsdatenpuffergröße entspricht. Außer der Speicheradresse und dem Wert der Pufferlänge besteht jeder allokierbare Transportdatenpuffer aus einer Verwaltungsstruktur, die eine Speichernummer zur Identifikation der Position des betreffenden Transportpuffers im Pufferspeicherbereich und eine Sequenznummer zur Identifikation des Transportpuffers im Transportdatenstrom umfasst.
  • Bei dem erfindungsgemäßen Verfahren werden zunächst in zwei Initialisierungsunterprozeduren (Unterprozedur-Nr. 0 und Unterprozedur-Nr. 1) Transportpufferdaten aus einem registrierten kontinuierlichen Pufferspeicherbereich durch die Sendeanwendung und die Empfangsanwendung bereitgestellt.
  • Danach erfolgt die Unterprozedur-Nr. 2, die das Füllen der Sendepuffer durch die Sendeanwendung, das Aufrufen von Sendefunktionen durch die Sendeanwendung, um die Datensendepuffer in die asynchrone Sendepufferwarteschlange WS zu füllen sowie die sequentielle Zuweisung von Sequenznummern S1, S2, S3, S4, S5, S6, S7, S8, S9, S10 zu den Sendepuffern in der Reihenfolge des Funktionsaufrufs durch die Sendefunktionsverarbeitung umfasst.
  • Die auf die Unterprozedur-Nr. 2 folgende Unterprozedur-Nr. 3 umfasst das Suchen einer vorbestimmten Anzahl von Transportpuffern mit kontinuierlichen Pufferspeichern in der asynchronen Sendepufferwarteschlange WS basierend auf der jeweiligen Speichernummer in jeder Pufferverwaltungsstruktur durch den Sendeverarbeitungsthread TS.
  • In der Unterprozedur Nr. 4 werden die Speicheradresse des ersten errichteten Puffers, gemeinsam mit dem Wert für die Länge des gesamten kontinuierlichen Pufferspeichers aller errichteten Puffer und der entsprechenden Sequenznummern S1, S2, S3, S4, S5, S6, S7, S8, S9, S10 vom Quellrechner zum Zielrechner in einem ersten RDMA-Informationspaket IP1 gesendet.
  • Das erste Informationspaket IP1 umfasst Informationen über die Puffer-Adresse, die Pufferlänge, die Anzahl der Sub-Puffer.
  • Das erste Informationspaket IP1 umfasst ferner ein erstes Sub-Puffer Beschreibungsarray, das wiederum Informationen über die Sequenznummer, den Adressenoffset, die Pufferlänge und die Anzahl der Bytes umfasst
  • Nach der Unterprozedur Nr. 4 erfolgt die Unterprozedur Nr. 5, die das Aufrufen asynchroner Empfangsfunktionen durch die Empfangsanwendung, um alle verfügbaren Empfangspuffer in eine asynchrone Empfangspufferwarteschlange WE einzufügen und das automatisches Sortieren der Empfangspuffer in der Empfangspufferwarteschlange WE nach fallender oder steigender Pufferspeichernummer umfasst.
  • Die Unterprozedur Nr. 6 umfasst das Suchen einer bestimmten Anzahl von Transportpuffern mit dem kontinuierlichen Pufferspeicher.
  • Die Unterprozedur Nr. 7 umfasst das Empfangen des ersten RDMA-Informationspaketes IP1 und Ermitteln der erforderlichen Anzahl von kontinuierlichen Empfangspuffern aus der Empfangspufferwarteschlange WE, sowie das Durchführen einer RDMA-Read-Operation, um die Daten von allen beteiligten Sendepuffern zu den Empfangspuffern zu übertragen.
  • Nach erfolgreicher RDMA-Read-Operation wird ein zweites RDMA-Informationspaket IP2 zum Quellrechner gesendet, um die RDMA-Read-Operation zu beenden.
  • Die Unterprozedur Nr. 8 umfasst einen Lesekomplettierungsbestätigungsschritt, bei dem eine RDMA-Read-Complete-Nachricht in Gestalt eines zweiten Informationspaketes IP2 zum Quellrechner übertragen wird.
  • Das zweite Informationspaket IP2, das die Read-Complete-Nachricht darstellt, umfasst Informationen über die Puffer-Adresse, die Pufferlänge, die Anzahl der Sub-Puffer.
  • Das zweite Informationspaket IP2 umfasst ferner ein zweites Sub-Puffer Beschreibungsarray, das wiederum Informationen über die Sequenznummer, den Adressenoffset, die Pufferlänge und die Anzahl der Bytes umfasst.
  • In der auf den erfolgreichen RDMA-Transport folgenden Unterprozedur Nr. 9 erfolgt das Trennen der einzelnen Empfangspuffer und die Zuweisung der entsprechenden Sequenznummern zu Empfangspuffer-Verwaltungsstrukturen durch die Empfangsverarbeitungsthread TE, das-Einfügen der getrennten Empfangspuffer an einem Ende der Empfangspufferkomplettierungs-Warteschlange KE sowie das Sortieren der eingefügten Empfangspuffer in der Empfangspufferkomplettierungs-Warteschlange KE nach steigender oder fallender Sequenznummer.
  • Die Unterprozedur Nr. 10 umfasst die Entnahme der Tramsportpuffer am anderen Ende der asynchronen Empfangspufferkomplettierungs-Warteschlange KE, das Leeren der Empfangspufferkomplettierungs-Warteschlange KE sowie die Rückgabe der Tramspotpuffer an die Empfangspufferwarteschlange WE.
  • Gleichzeitig (oder) Im Anschluß an die Unterprozedur Nr. 8 erfolgen auf der Seite der Sendeanwendung in der Unterprozedur Nr. 11 das Einfügen aller beteiligten Sendedatenpuffer in die asynchronen Sendepufferkomplettierungs-Warteschlange KS durch den Sendeverarbeitungsthread TS, die Entnahme der komplettierten Sendepuffer aus der Sendepufferkomplettierungs-Warteschlange KS und ein erneutes Füllen und Einfügen der Sendepuffer in die Sendepufferwarteschlange WS durch die Sendeanwendung.
  • In diesem Zusammenhang ist anzumerken, dass mit dem Empfang von IP2 durch die Sendeanwendung alle Sendepuffer zur erneuten Nutzung freigegeben werden können. Dies kann auch zeitgleich mit Unterprozedur 10 erfolgen, da beide Prozeduren (10 und 11) auf verschiedenen Rechnern ausgeführt werden. Die Freigabe aller Sendepuffer zur erneuten Nutzung findet aber in jedem Fall nach dem Empfang von IP2 statt.
  • Als Fazit basiert die Erfindung auf der Idee, mehrere Pufferadressen in einem Informationspaket zu senden, um so den zusätzlichen Transport-Overhead von Adressübertragungen zu verringern. Nun kann eine RDMA-read/write-Operation nur zu einem zusammenhängenden Speicherbereich auf der jeweils anderen Seite ausgeführt werden. Dies bedeutet mit anderen Worten, dass der Transport-Overhead für die Übertragung der fernen Pufferadressen reduziert und die RDMA-Operation für jede einzelne ferne Adresse durchzuführen ist.
  • 2 zeigt einen Graphen mit das erfindungsgemäße Verfahren charakterisierenden Messergebnissen. In dem Graphen ist die Datenrate (in MBit/Sekunde) über der Puffergröße (in Bytes) aufgetragen.
  • Indem im Graphen die Ergebnisse, die bei der Verwendung eines Transportpuffers (erste Kurve K1) und zehn Transportpuffern (zweite Kurve K2) verglichen werden, spiegelt der Graph in eindringlicher Weise die Vorteile des erfindungsgemäßen Verfahrens in Abhängigkeit der verwendeten Puffergröße wider.
  • Dabei ist zu beachten, dass die mit dem Testgerät erreichbare maximale Datenrate 11800 Mbit/Sekunde beträgt.

Claims (11)

  1. Verfahren zur Übertragung von Daten zwischen einem ersten Speicher, der einem Quellrechner zugeordnet ist, und einem zweiten Speicher, der einem Zielrechner zugeordnet ist, über ein Netzwerk durch entfernten direkten Speicherzugriff (RDMA remote direct memory access), wobei Quellrechnerseitig eine vorbestimmte Anzahl von unmittelbar aufeinander folgenden Sendepuffern aus einem zusammenhängenden Pufferspeicherbereich ausgewählt und in einem einzigen RDMA-Datentransfer zum Zielrechner übertragen wird und wobei Zielrechnerseitig eine Puffersequenzprozedur durchgeführt wird, die veranlasst, dass die empfangenen Daten aus den Sendepuffern in der gesendeten Reihenfolge der Zielanwendung zugeführt werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass alle bei dem Verfahren verwendeten Transportpuffer aus einem registrierten zusammenhängenden Pufferspeicherbereich allokiert werden, der in einzelne Datenblöcke (B1, B2, B3 ... B12) der Größe eines Transportpuffers unterteilt wird, wobei jedem allokierbaren Transportpuffer eine Verwaltungsstruktur zugeordnet wird, die eine Speichernummer zur Identifikation der Position des betreffenden Transportpuffers im Pufferspeicherbereich und eine Sequenznummer zur Identifikation des Transportpuffers im Transportdatenstrom umfasst.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass das Verfahren folgende Schritte umfasst: – Bereitstellen der Transportpuffer aus dem registrierten zusammenhängenden Pufferspeicherbereich seitens der Sendeanwendung und der Empfangsanwendung; – einen Füllschritt, bei dem Sendepuffer in eine asynchrone Sendepufferwarteschlange (WS) eingefügt werden; – Suchen einer vorbestimmten Anzahl von zusammenhängenden Transportpuffern in der asynchronen Sendepufferwarteschlange (WS) basierend auf der jeweiligen Speichernummer in jeder Verwaltungsdatenstruktur durch einen Sendeverarbeitungsthread (TS); – Senden der Speicheradresse des ersten Transportpuffers, gemeinsam mit dem Wert für die Länge des im vorhergehenden Schritt ausgewählten Pufferspeicherbereichs für die vorbestimmte Anzahl von Transportpuffern und der entsprechenden Sequenznummern vom Quellrechner zum Zielrechner in einem ersten RDMA-Informationspaket (IP1); – einen Exekutionsschritt, bei dem eine asynchrone Empfangsoperation durchgeführt wird; – einen RDMA-Lese-Schritt, der das Empfangen des ersten RDMA-Informationspaketes (IP1), das Ermitteln der erforderlichen Anzahl von kontinuierlichen Empfangspuffern aus einer asynchronen Empfangspufferwarteschlange (WE) und das Durchführen einer RDMA-Read-Operation umfasst, um die Daten von allen beteiligten Sendepuffern zu den Empfangspuffern zu übertragen; – einen auf eine erfolgreiche RDMA-Read-Operation folgenden Lesekomplettierungsbestätigungsschritt, bei dem eine RDMA-Read-Complete-Nachricht zum Quellrechner übertragen wird; – einen auf einen erfolgreichem RDMA-Transport folgenden Einreihungsschritt, bei dem den Empfangspuffern die zugehörigen Sequenznummern zugewiesen und die Empfangspuffer in eine Empfangspufferkomplettierungs-Warteschlange (KE) eingereiht werden; und – einen Komplettierungsschritt, bei dem die Empfangspuffer zur Nutzeranwendung vervollständigt werden.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass der Füllschritt das Füllen der Sendepuffer durch die Sendeanwendung, das Aufrufen von Sendefunktionen durch die Sendeanwendung, um die Sendepuffer in die asynchrone Sendepufferwarteschlange (WS) zu füllen und die sequentielle Zuweisung von Sequenznummern zu den Sendepuffern in der Reihenfolge des Funktionsaufrufs durch die Sendefunktionsverarbeitung umfasst.
  5. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass der Exekutionsschritt das Aufrufen asynchroner Empfangsfunktionen durch die Empfangsanwendung, um alle verfügbaren Empfangspuffer in die asynchrone Empfangspufferwarteschlange (WE) einzufügen und das automatische Sortieren der Empfangspuffer in der Empfangspufferwarteschlange (WE) nach fallender oder steigender Pufferspeichernummer umfasst.
  6. Verfahren nach einem der Ansprüche 3 bis 5, dadurch gekennzeichnet, dass der Einreihungsschritt das Trennen der einzelnen Empfangspuffer, die Zuweisung der entsprechenden Sequenznummern zu Empfangspuffer-Verwaltungsstrukturen durch einen Empfangsverarbeitungsthread (TE), das Einfügen der getrennten Empfangspuffer an einem Ende der Empfangspufferkomplettierungs-Warteschlange (KE) und das Sortieren der eingefügten Empfangspuffer in der Empfangspufferkomplettierungs-Warteschlange (KE) nach steigender oder fallender Sequenznummer umfasst.
  7. Verfahren nach einem der Ansprüche 3 bis 6, dadurch gekennzeichnet, dass der Komplettierungsschritt die Entnahme der Transportpuffer am anderen Ende der Empfangspufferkomplettierungs-Warteschlange (KE), das Leeren der Empfangspufferkomplettierungs-Warteschlange (KE) und die Rückgabe der Transportpuffer an die Empfangspufferwarteschlange (WE) umfasst.
  8. Verfahren nach einem der Ansprüche 3 bis 7, dadurch gekennzeichnet, dass im Lesekomplettierungsbestätigungsschritt eine Read-Complete-Nachricht insbesondere in Gestalt eines zweiten RDMA-Informationspakets (IP2) zum Quellrechner gesendet wird, um die RDMA-Read-Operation zu beenden.
  9. System zur Übertragung von Daten zwischen Datenspeichern durch entfernten direkten Speicherzugriff, dadurch gekennzeichnet, dass im System die Hardware und/oder die Software und/oder Steuermittel und/oder Programmmittel zur Durchführung des Verfahrens nach einem der vorangehenden Ansprüche vorgesehen sind.
  10. Netzwerkstation die eingerichtet ist als Sendestation in dem Verfahren nach einem der vorhergehenden Ansprüche 1 bis 8 zu operieren.
  11. Netzwerkstation die eingerichtet ist als Empfangsstation in dem Verfahren nach einem der vorhergehenden Ansprüche 1 bis 8 zu operieren.
DE102009030047A 2009-06-22 2009-06-22 Verfahren und System zur Übertragung von Daten zwischen Datenspeichern durch entfernten direkten Speicherzugriff sowie Netzwerkstation die eingerichtet ist um in dem Verfahren als Sendestation bzw. als Empfangstation zu operieren Withdrawn DE102009030047A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102009030047A DE102009030047A1 (de) 2009-06-22 2009-06-22 Verfahren und System zur Übertragung von Daten zwischen Datenspeichern durch entfernten direkten Speicherzugriff sowie Netzwerkstation die eingerichtet ist um in dem Verfahren als Sendestation bzw. als Empfangstation zu operieren
PCT/EP2010/058608 WO2010149576A1 (en) 2009-06-22 2010-06-18 Method for the recovery of a clock and system for the transmission of data between data memories by remote direct memory access, and network station set up to operate in the method as a transmitting or, respectively, receiving station
EP10728631.2A EP2446606B1 (de) 2009-06-22 2010-06-18 Verfahren und system zur datenübertragung zwischen datenspeichern mittels remote-direktspeicherzugriff
US13/379,392 US8706927B2 (en) 2009-06-22 2010-06-18 Method for the recovery of a clock and system for the transmission of data between data memories by remote direct memory access and network station set up to operate in the method as a transmitting or, respectively, receiving station

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102009030047A DE102009030047A1 (de) 2009-06-22 2009-06-22 Verfahren und System zur Übertragung von Daten zwischen Datenspeichern durch entfernten direkten Speicherzugriff sowie Netzwerkstation die eingerichtet ist um in dem Verfahren als Sendestation bzw. als Empfangstation zu operieren

Publications (1)

Publication Number Publication Date
DE102009030047A1 true DE102009030047A1 (de) 2010-12-23

Family

ID=42664865

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009030047A Withdrawn DE102009030047A1 (de) 2009-06-22 2009-06-22 Verfahren und System zur Übertragung von Daten zwischen Datenspeichern durch entfernten direkten Speicherzugriff sowie Netzwerkstation die eingerichtet ist um in dem Verfahren als Sendestation bzw. als Empfangstation zu operieren

Country Status (4)

Country Link
US (1) US8706927B2 (de)
EP (1) EP2446606B1 (de)
DE (1) DE102009030047A1 (de)
WO (1) WO2010149576A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571925B (zh) * 2011-12-19 2014-08-27 华中科技大学 一种在光纤通道环境中利用rdma存取数据的方法
CN104205078B (zh) 2012-04-10 2018-01-19 英特尔公司 具有降低的延迟的远程直接存储器访问
WO2013154540A1 (en) * 2012-04-10 2013-10-17 Intel Corporation Continuous information transfer with reduced latency
CN103645994A (zh) * 2013-11-05 2014-03-19 华为技术有限公司 一种数据处理方法及设备
CN106462525A (zh) * 2014-06-10 2017-02-22 慧与发展有限责任合伙企业 使用远程直接内存访问(rdma)复制数据
US10019276B2 (en) * 2015-05-27 2018-07-10 Red Hat Israel, Ltd. Dynamic non-uniform memory architecture (NUMA) locality for remote direct memory access (RDMA) applications
US10509764B1 (en) 2015-06-19 2019-12-17 Amazon Technologies, Inc. Flexible remote direct memory access
US10332235B1 (en) 2018-05-01 2019-06-25 At&T Intellectual Property I, L.P. Direct memory access for graphics processing unit packet processing
CN117827390A (zh) * 2018-05-29 2024-04-05 华为技术有限公司 数据处理方法以及计算机设备
US10795840B2 (en) 2018-11-12 2020-10-06 At&T Intellectual Property I, L.P. Persistent kernel for graphics processing unit direct memory access network packet processing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60111551T2 (de) * 2000-08-24 2006-05-04 Sun Microsystems, Inc., Santa Clara Mechanismus zur vervollständigung von nachrichten im speicher

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7958224B2 (en) * 1999-02-17 2011-06-07 Catalina Marketing Corporation Incentive network for distributing incentives on a network-wide basis and for permitting user access to individual incentives from a plurality of network servers
US7580406B2 (en) 2004-12-31 2009-08-25 Intel Corporation Remote direct memory access segment generation by a network controller
WO2007139426A1 (en) * 2006-05-31 2007-12-06 Intel Corporation Multiple phase buffer enlargement for rdma data transfer
US20090271802A1 (en) * 2008-04-27 2009-10-29 Giora Biran Application and verb resource management

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60111551T2 (de) * 2000-08-24 2006-05-04 Sun Microsystems, Inc., Santa Clara Mechanismus zur vervollständigung von nachrichten im speicher

Also Published As

Publication number Publication date
US20120102243A1 (en) 2012-04-26
EP2446606A1 (de) 2012-05-02
EP2446606B1 (de) 2014-08-06
WO2010149576A1 (en) 2010-12-29
US8706927B2 (en) 2014-04-22

Similar Documents

Publication Publication Date Title
DE102009030047A1 (de) Verfahren und System zur Übertragung von Daten zwischen Datenspeichern durch entfernten direkten Speicherzugriff sowie Netzwerkstation die eingerichtet ist um in dem Verfahren als Sendestation bzw. als Empfangstation zu operieren
DE3222389C2 (de)
DE112020002496T5 (de) System und verfahren zur erleichterung eines effizienten host-speicherzugriffs von einer netzwerkschnittstellensteuerung (nic)
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE60029251T2 (de) Mpeg-ummultiplexer mit mehreren eingängen und mehreren ausgängen
EP1976202B2 (de) Anordnung und Verfahren zum Übermitteln eines Datenstroms über gebündelte Netzwerkzugangsleitungen, sowie Sende- und Empfangshilfsvorrichtung und Sende- und Empfangsverfahren dafür
DE69829987T2 (de) E/a bus mit schnellen 16-bit zerteilten transaktionen
DE3243830A1 (de) Multiprozessor-unterbrechungsanordnung
DE3838240A1 (de) Datenprozessor
DE2332734A1 (de) Datenverarbeitungssystem
DE3301628A1 (de) Schaltungsanordnung fuer den datenaustausch zwischen zwei rechnern
CH634940A5 (en) Channel-adapter arrangement
DE102011008793A1 (de) Nachrichtenweitergabe-Rahmenwerk für Audio-/Video-Streaming in einer Topologie von Geräten
DE102021207394A1 (de) Zusammenführen von paketen auf der grundlage von hinweisen, die vom netzwerkadapter erzeugt werden
DE112015006192T5 (de) Kommunikationsvorrichtung, Kommunikationsverfahren und Programm
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE102015203202B4 (de) Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen
EP3378212B1 (de) Verfahren zum betreiben eines kommunikationsnetzwerkes, steuervorrichtung und datenverarbeitungsvorrichtung
DE60210748T2 (de) System und Verfahren zum Verbinden von Rahmendaten durch das Einfügen von Bestimmungsfeldern in Steuerblöcke
DE112013001211T5 (de) Multithread-Paketverarbeitung
DE102008001548B4 (de) Teilnehmerknoten eines Kommunikationssystems, Kommunikationssystem und Verfahren zum Übertragen einer Nachricht in dem Kommunikationssystem
DE112006001542T5 (de) Verfahren, Vorrichtung und System für posted write Buffer für Speicher mit unidirektionaler Vollduplex-Schnittstelle
DE60022186T2 (de) Unterhaltung einer entfernten Warteschlange unter Benutzung von zwei Zählern in der Verschiebesteuerung mit Hubs und Ports
DE102020111039A1 (de) Geräteunterstützung bestellte und unbestellte transaktionsklassen
DE3738639A1 (de) Speicher-stern-netz

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20120103