TWI582609B - 用於在遠端節點和本地節點之間執行遠端記憶體存取(rma)資料傳輸的方法和設備 - Google Patents

用於在遠端節點和本地節點之間執行遠端記憶體存取(rma)資料傳輸的方法和設備 Download PDF

Info

Publication number
TWI582609B
TWI582609B TW104124258A TW104124258A TWI582609B TW I582609 B TWI582609 B TW I582609B TW 104124258 A TW104124258 A TW 104124258A TW 104124258 A TW104124258 A TW 104124258A TW I582609 B TWI582609 B TW I582609B
Authority
TW
Taiwan
Prior art keywords
remote
data
read
rma
request
Prior art date
Application number
TW104124258A
Other languages
English (en)
Other versions
TW201621699A (zh
Inventor
熊建新
羅勃 伍德瑞夫
法蘭克 貝瑞
Original Assignee
英特爾股份有限公司
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 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201621699A publication Critical patent/TW201621699A/zh
Application granted granted Critical
Publication of TWI582609B publication Critical patent/TWI582609B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

用於在遠端節點和本地節點之間執行遠端記憶體存取(RMA)資料傳輸的方法和設備
本發明係有關於透過主動訊息支持遠端記憶體存取應用程式介面。
在具有分散式記憶體配置(例如,叢集(cluster))的電腦系統中,每一運算節點具有直接存取本身擁有之附連的本地記憶體。附連到其他節點上的記憶體被稱為遠端記憶體。通常遠端記憶體是不能直接地存取且訊息傳遞機制被使用來在節點之間溝通。
遠端記憶體存取(Remote Memory Access,RMA)指的是一個軟體介面其給人的印象是遠端記憶體可被直接存取的。雖有許多RMA操作的形式,但最終它們可以概括為兩個:讀取和寫入。讀取操作從遠端記憶體位址範圍複製資料至本地緩衝內。寫入操作從本地緩衝複製資料至遠端記憶體位址範圍內。
現有的遠端記憶體存取(RMA)的實施通常 分為兩個類別。對應於實施的第一類別使用電腦節點之間的下層互連結構(underlying interconnection fabrics)之遠端直接記憶體存取(Remote Direct Memory Access,RDMA)能力。InfiniBand(IB)主控制器轉接器(Host Controller Adaptors,HCAs)如那些來自Mellanox支持硬體中RDMA功能。該功能是透過一種稱為IB Verbs的軟體介面暴露於應用。具有IB Verbs,為了執行RMA操作,使用者建立工作請求且發佈到工作佇列(queue)。HCA接著處理佇列以及在硬體中執行RDMA。由第二類別使用的方法係透過常規訊息傳遞介面(message passing interface,MPI)來模擬RMA功能。一個範例係在MPICH/MPICH2(高效能MPI)中單側(one-sided)操作的實施。這在請求-回應方式進行。由於RMA操作之非同步(asynchronous)性質,一個單獨的線程(thread)通常需要以確保請求得到處理。
現有的RMA實施有許多缺點。在RDMA基實施下,需要專門的硬體。在訊息傳遞基實施下,關於相關的訊息之額外流量必須透過互連結構傳輸,因此減少結構之有效頻寬。
100,200,300,400,500‧‧‧本地節點
102,202,302,402,205,554‧‧‧遠端節點
104,206,306‧‧‧源緩衝
106,210,308‧‧‧RMA寫入模組
108,212,310‧‧‧AM寫入回覆處理器
110,214‧‧‧AM寫入請求處理器
112,314,514‧‧‧RMA位址空間
114,204,304‧‧‧互連
116‧‧‧源資料
118,222,316‧‧‧AM寫入請求
120‧‧‧記憶體複製操作
122,226‧‧‧AM寫入回覆
124,228,330‧‧‧目的緩衝
126,232,332‧‧‧RMA讀取模組
128,234‧‧‧AM讀取回覆處理器
130,236,336‧‧‧AM讀取請求處理器
132,334‧‧‧AM讀取請求
134‧‧‧遠端資料
136,240,242‧‧‧AM讀取回覆
138,224,244‧‧‧記憶體複本
208,218‧‧‧時隙
220,241‧‧‧封包
312‧‧‧RMA進展模組
318‧‧‧發送操作
320‧‧‧發送資料
322‧‧‧入隊操作
324,338‧‧‧佇列
326‧‧‧出隊操作
328,344‧‧‧接收操作
340‧‧‧發送區塊
404‧‧‧網路鏈路
406‧‧‧位址範圍
408‧‧‧存取鑰匙
410,412‧‧‧訊息
416‧‧‧存取錯誤訊息
500,550‧‧‧節點
502‧‧‧主機板
504‧‧‧處理器
506‧‧‧記憶體
508‧‧‧儲存器
510‧‧‧網路介面
512‧‧‧CPU
516‧‧‧記憶體介面
518,520‧‧‧PCIe介面
522‧‧‧直接記憶體存取引擎
524‧‧‧傳送緩衝
526‧‧‧接收緩衝
530‧‧‧MAC模組
532‧‧‧封包處理引擎或NPU
534‧‧‧PHY電路
536‧‧‧調解層
538a-d‧‧‧PHY子層
540‧‧‧串行器/解串器
542‧‧‧傳送埠
544‧‧‧傳送緩衝
546‧‧‧傳送器
548,556‧‧‧接收埠
552‧‧‧接收器
558‧‧‧傳送埠
560‧‧‧光學鏈路
562‧‧‧主操作系統
564‧‧‧應用程式
566‧‧‧AM處理器
568‧‧‧RMA模組
當藉由下列詳細說明並結合該等附圖時,前述方面以及許多本發明的附帶優點將變得更容易理解,其中各個圖式中相同參考數字指的是相同的部分,除非有特別指明: 第1a圖係根據各種本發明一實施例示出在資料區塊透過AM寫入請求處理器的使用被寫入到遠端節點之位址空間內之RMA寫入的示意圖;第1b圖係根據各種本發明一實施例示出在資料區塊係透過AM讀取請求處理器及AM讀取回應處理器的使用從遠端節點之位址空間讀取之RMA讀取的示意圖;第2a圖根據各種本發明一實施例示出在資料係透過使用第1a圖中所示之方案的複數個封包被傳輸之RMA寫入實施的示意圖;第2b圖係根據各種本發明一實施例示出在資料係透過使用第1b圖中所示之方案的複數個封包被傳輸之RMA讀取實施的示意圖;第3a圖係根據各種本發明一實施例示出在資料區塊透過AM請求處理器的使用在發送操作之後被寫入到遠端節點之位址空間內之標記訊息RMA寫入的示意圖;第3b圖係根據各種本發明一實施例示出在資料區塊透過AM請求處理器、RMA進展模組(RMA progress module)及RMA讀取模組的使用從遠端節點之位址空間讀取之標記訊息RMA讀取的示意圖;第4圖係示出一種對應於存取鑰匙交換及記憶體登記操作之在本地節點和遠端節點之間訊息交換的時間流程圖;以及第5圖係配置以促進根據本發明所揭露之本地和遠端節點操作各方面之節點結構的方塊示意圖。
【發明內容及實施方式】
本發明敘述用於透過主動訊息(Active Message,AM)實現RMA應用程式介面(application programming interfaces,APIs)的方法、設備及軟體的實施例。在下面敘述中,許多具體細節被闡述以提供透徹的理解本發明所揭露及說明的實施例。本領域有關的技術人員可以意識到本發明可以沒有一個或多個具體細節或利用其它方法、組件、材料等等而實施。在其它情況下,已知的結構、材料或操作沒有示出或詳細敘述以避免模糊本發明的各方面。
為了清楚起見,本發明圖式中單獨的組件也可以由它們在圖式中標籤被指出,而不是由具體元件編號。另外,元件編號指的是組件之特定類型(相對於特定的組件),元件編號可能會顯示一個元件編號後面加上意思是「典型」的「(typ)」。應可理解這些組件的配置是可能存在之典型相似組件但沒有顯示在所繪示的圖式或以其它類似但沒有被標以單獨元件符號之組件是為了簡單和清楚。相反的,「(typ)」不應被解釋為組件、元件等等的意思,其通常是用於所揭露的功能、實施、目的等等。
在本發明所揭露之實施例方面,主動訊息技術被實施以促進在其中資料從在使用RMA遠端節點的記憶體中寫入或讀取的RMA寫入和讀取操作。AM的基本 構想係用以當訊息到達時允許一片段碼在目標側被自動地執行。此片段碼被稱為AM處理器。多個AM處理器可與AM機制被預先註冊且AM訊息可以指透過指定用於AM處理器之對應的標識符的任一個。AM訊息可以是一個請求或是一個回覆,這兩者都可以攜帶資料加上一些額外的控制資訊,並且可以導致指定的處理器的執行。AM請求除了在AM處理器內部以外可在任何地方被發出;而AM回覆僅能在AM處理器內部被發出,並且對於每一AM請求至多可以發出一個回覆。
在本發明所揭露之實施例方面,當相應的AM請求或回覆到達其目標時,主動訊息處理器被自動地執行。這提供了RMA操作所需要之必要的非同步(asynchronous)處理機制。基本上,一個RMA寫入操作可以被實現為從其中複製資料到目標位址的源緩衝及AM處理攜帶資料的AM請求。一個RMA讀取操作可以被實現為攜帶目標位址資訊、其中經由AM回覆發送資料返回之AM處理器以及其中複製資料至目標緩衝之另一AM處理器的AM請求。
第1a、1b圖根據各種本發明一實施例示出用於在本地節點100和遠端節點102之間傳輸資料塊的寫入和讀取機制。如第1a圖所示,本地節點100包括源緩衝(src_buf)104、RMA寫入(rma_write( ))模組106以及AM寫入回覆處理器108。遠端節點102包括AM寫入請求處理器110以及RMA位址空間112。本地節點100經 由互連114通訊地耦接遠端節點102。
從源緩衝104至RMA位址空間112之源資料116區塊之RMA寫入過程如下。源資料116藉由RMA寫入模組106從源緩衝104被讀取,其產生其中透過互連114發送至AM處理器110之AM寫入請求118。AM寫入請求118包括源資料116,以及有關於遠端記憶體範圍至其中源資料116是要被寫入的資訊。這包括在RMA位址空間112中資料116開始要被寫入之開始位址(rma_addr),且可任意的包括大小(長度)、存取鑰匙和/或訊息標記。在目標側的AM寫入請求處理器(AM寫入請求處理器110)接著藉由DMA或記憶體複製操作120複製源資料116至RMA位址空間112內,起始於位址rma_addr。在一實施例中,當AM寫入請求處理器110已經完成複製複製源資料116至RMA位址空間112時,一任意的AM寫入回覆122可被發送返回發起方(initiator)(本地節點100),如果一個完整事件是期望的。如圖所示,AM寫入回覆122被定向至其中被配置以處理完整事件之AM寫入回覆處理器108。
第1b圖顯示由本地節點100及遠端節點102與RMA讀取操作連接中採用的進一步資源和複數個AM。這包括目的緩衝(dest_buf)124、RMA讀取(rma_read( ))模組126以及用於本地節點100之AM讀取回覆處理器128及用於遠端節點102之AM讀取請求處理器130。在一實施例中,AM寫入回覆處理器108及 AM讀取回覆處理器128對應於相同的AM處理器。同樣地,在一實施例中,AM寫入請求處理器110及AM讀取請求處理器130對應於相同的AM處理器。
RMA讀取操作過程如下。RMA讀取API 126發送AM讀取請求132至辨識遠端位址範圍開始於其中要被讀取之資料(例如,遠端資料134)被儲存於rma_addr之AM讀取請求處理器130。在一實施例中AM讀取請求132包括開始位址(rma_addr)、長度以及可包括存取鑰匙和/或訊息標記。回應於接收AM讀取請求132,AM讀取請求處理器130從遠端節點102藉由被定向至AM讀取回覆處理器128之AM讀取回覆136發送遠端資料134之複本至本地節點100。在收到AM讀取回覆136,AM讀取回覆處理器128取回遠端資料134之複本以及執行DMA或記憶體複本138以寫入遠端資料134之複本至目的緩衝124,完成RMA讀取操作。
一般而言,AM機制可具有藉由單一AM訊息被傳遞之資料量的限制。為了克服這種限制,資料量大於用於單一AM訊息之限制可被分為更小的資料單元(例如,封包)及以管道方式(pipelined fashion)被傳遞。透過使用此技術之互連204導致資料在本地節點200和遠端節點202之間傳遞之RMA讀取及RMA寫入操作的範例示出於第2a及2b圖。
如第2a圖所示,本地節點200包括具有多個時隙(slots)208源緩衝206、RMA寫入模組210及AM 寫入回覆處理器212。遠端節點202包括AM寫入請求處理器214及被劃分為多個時隙218之RMA記憶體空間216。
管道的RMA寫入過程如下。儲存於源緩衝206中相應的時隙之資料係藉由RMA寫入模組210存取且藉由相應的AM寫入請求222以複數個封包220被傳遞。相同於上述,在一實施例中每一AM寫入請求包括開始位址(rma_addr)、及任意長度、存取鑰匙和/或訊息標記。在由AM處理器214收到,每一AM請求222被處理,導致其中從RMA位址空間216中開始寫入資料到相應的位址範圍之相應的記憶體複本224的產生。在採用完整事件之實施例中,一或多個AM寫入回覆226被返回至AM處理器212。例如,AM寫入回覆可被返回用於每一完整的封包寫入、或AM寫入回覆可確認多個封包寫入之完整,例如提供單一AM寫入回覆226用於給定的源資料傳遞,不管發送的封包數目。
為了說明的目的,用於每一封包220之源資料之部分被描述為儲存在源緩衝206中相應的時隙208並寫入至在RMA位址空間216中相應的時隙218;然而,應當意識到源緩衝206和/或RMA位址空間216不需要被劃分為多個時隙,但通常可被配置為其中資料可被儲存之一個或多個位址空間。此外,每一封包220之大小可以相同,或可使用不同大小。例如,在一實施例中封包採用適用於由互連204使用之底層傳輸協定(underlying transport protocol)的最大傳遞單元(maximum transfer unit,MTU)(注意最後的封包可具有小於MTU之大小)。同時,包含於封包內之資料應以複製源資料區塊藉由多個封包要被傳遞的方式寫入至RMA位址空間。在一實施例中,封包資料依順序被寫入,而在其它實施例中,只要完成寫入資料區塊包含源資料區塊的複製,不按順序寫入是被允許的。
如第2b圖所示,本地節點200更包括具有多個時隙230之目的緩衝228、RMA讀取模組232及AM讀取回覆處理器234。遠端節點202更包括AM讀取請求處理器236。當與多個封包RMA寫入,資料藉由使用多個封包之RMA讀取模組232被傳遞。每一封包傳遞係相似於第1b圖之用於RMA讀取之資料區塊傳遞,並且進行如下。RMA讀取模組232發送針對由AM讀取請求處理器236處理的AM讀取請求240。每一AM讀取請求240從其中要被讀取之遠端資料被儲存之rma_addr開始辨識遠端位址範圍。類似於上述,在一實施例中AM讀取請求240包括開始位址(rma_addr)、長度及任意存取鑰匙和/或訊息標記。
回應於接收每一AM讀取請求240,AM讀取請求處理器236發送包含藉由針對AM讀取回覆處理器234之AM讀取回覆242從遠端節點202至本地節點200的封包241之遠端資料之部分之複本。在收到每一AM讀取回覆242,AM讀取回覆處理器234取回在封包241中 之遠端資料之複本及執行DMA或記憶體複本244以藉由封包寫入遠端資料傳遞的複本至目的緩衝228之相應的時隙230,完成用於封包之RMA讀取操作。與示於第2a圖和上述討論之多個封包讀取操作,用於目的緩衝228之時隙及RMA位址空間216的使用係為了說明的目的,作為封包之大小在一些實施例中可變化。
封包大小可以是藉由管線實施之可實現的最大頻寬之限制因素。然而,用於大資料傳遞之額外的效能提升可以藉由利用標記訊息通過機制達成,如果這樣的機制是可用的。標記訊息通過係相似於常規訊息通過,在它們兩者皆被執行如發送在一側而接收在另一側的方面。然而,標記訊息通過也附加標記至每一訊息,使得接收器可以選擇接收哪個訊息。這有效地將單一通訊劃分成多個通道。在一實施例中,標記係使用來辨識不同RMA操作,為了確保成對的發送和接收操作之間的一對一匹配。
使用標記訊息之讀取和寫入範例示出於第3a及3b圖中。如第3a圖中所示之在標記訊息寫入操作中,源資料區塊藉由互連304從本地節點300被傳遞至遠端節點302。在進一步細節中,本地節點300包括其中源資料被儲存之源緩衝306及RMA寫入模組308,而遠端節點302包括AM寫入請求處理器310、RMA進展模組312及RMA位址空間314。
標記訊息寫入操作過程如下。RMA寫入包含接著發送操作318之AM寫入請求316。AM寫入請求 316僅攜帶有關遠端位址範圍的資訊,沒有任何資料有效負載(payload);而發送資料320係經由後續發送操作318被傳遞。在收到AM寫入請求316,AM處理器310產生相應的RMA寫入請求以及經由入隊操作322置放RMA寫入請求至RMA佇列324內。當入隊的RMA寫入請求係由RMA進展模組312接續出隊操作326隨後被處理時,接收操作328與由AM寫入請求316作為在RMA位址空間314內之接收緩衝提供的遠端位址範圍被發佈。這個接收操作應與在發起方(即,本地節點300)發佈之發送320匹配及得到源資料到在RMA位址空間314中之預期的遠端位址範圍內。一般而言,發送AM寫入請求及相應的資料發送可以是非同步的,雖然較佳是AM寫入請求應於其相關的資料發送前發送。在一實施例中,接收操作328可暫時地緩衝發送資料區塊320在被寫入至RMA位址空間314之前。
如第3b圖所顯示,本地節點300更包括配置以促進如下的標記訊息讀取操作之目的緩衝330及RMA讀取模組332。如同標記訊息寫入操作,RMA讀取包括接續AM讀取請求之接收操作以及AM讀取請求處理器將導致發送請求在目標側發佈。在目標側的RMA佇列是需要的因為通常訊息通過操作無法在AM處理器內發佈。
如第3b圖所示,RMA讀取模組332發佈其中針對在遠端節點302之AM讀取請求處理器336以及由在遠端節點302之AM讀取請求處理器336接收之AM讀 取請求334。AM讀取請求處理器336產生相應的RMA讀取請求及出隊在RMA讀取請求佇列338中的讀取請求,同時在RMA進展模組312中的發送區塊340從RMA讀取請求佇列338出隊讀取請求、從RMA位址空間314取回相應的資料及經由第二操作314發送資料至在RMA讀取模組332中的接收操作344。接收操作344接著寫入資料至目的緩衝330內,完成遠端讀取操作。
根據所使用的特定方法,按照前述實施方式之將被用於RMA讀取和寫入的記憶體位址空間可以需要或不需要預先註冊。例如,一些實施例採用不需要記憶體註冊之PSM(Performance Scaled Messaging)。PSM定義專為HPC而設計的API。其定義處理高階能力之標示的訊息API以及可以有效地支持訊息通過介面(Message Passing Interface,MPI)標準的實現。在此期間,PSM的內部實施可以專注於有關資料移動策略和調節及例如QoS(Quality of Service)、分散常規(dispersive routine)、彈性(resiliency)等等的先進特徵之具體細節。主動訊息也被提供作為實驗性特徵。
PSM被設計來實現為使用者空間庫(user space library)。用於使用PSM之RMA資料傳輸的細節在由QLogic發行、PSM開發者或在各種由OpenFabrics Alliance發行PSM相關檔案之PSM程式員手冊被提供。PSM係包括在版本1.5.2之OFED(OpenFabrics Enterprise Distribution)內,且是一種IB Verbs對等體。 雖然InfiniBand有針對性的使用,在採用本發明PSM實施例下,類似PSM功能可被實施用於非InfiniBand硬體,諸如乙太網路(Ethernet)網路接頭(adaptors)。
如上述提到,PSM不需要記憶體註冊。任意地,輕型記憶體註冊機制可被實現以提供存取認證(access validation)。該實現考量可包括將要存取之記憶體區控制結構,諸如連續位址空間或位址範圍之排序的不相交列表。在一實施例中,控制結構位址可被使用作為存取鑰匙。
第4圖示出了由透過網路鏈路404連接的本地節點400和遠端節點402執行之操作和訊息時間流程。儘管被描繪為直接連接,應該理解的是網路鏈路404可以穿過一個或多個附加網路元件,諸如切換等等。該時間流程開始於本地節點400在本地節點400的本地記憶體中的一或多個位址空間中註冊一或多個位址範圍406。本地節點400接著透過被發送至諸如遠端節點402之一或多個遠端節點的鑰匙發行訊息410發行存取鑰匙408。在一實施例中,存取鑰匙408被加密以辨識由本地節點400註冊之註冊位址範圍/空間。
接著,存取鑰匙408被使用於由遠端節點402發佈之RMA寫入及RMA讀取請求的驗證以存取在由本地節點400註冊之位址範圍/空間內的記憶體。如第4圖下面部分所描述的,對應於AM寫入請求或AM讀取請求之訊息412從遠端節點402發送至本地節點400。訊息 412包括存取鑰匙408。在接收之後,AM寫入或AM讀取係由本地節點400使用存取鑰匙408驗證。此驗證操作也可以驗證由開始位址指定之位址範圍以及請求之精確的或偵測的大小以驗證當它在註冊的位址範圍/空間。如果驗證成功,存取註冊的記憶體是允許的;否則不允許。在一實施例中,如果本身的AM寫入或AM讀取請求驗證失敗,存取錯誤訊息416被返回至遠端節點402。
第5圖係配置以被實現為使用來實現本發明揭露之實施例的(本地)節點500之範例設備的方塊示意圖。(應該認識到「本地」或「遠端」節點係從該節點觀點出發,且本發明敘述之操作及功能可藉由操作如不論在上下文中RMA寫入或讀取操作之本地節點或遠端節點的單一節點實現)。在一實施例中,節點500包含配置以被安裝在伺服器機殼(chassis)的伺服器刀鋒(server blade)或伺服器模組。該伺服器刀鋒/模組包括一其上安裝各種組件之主機板(main board)502,包括處理器504、記憶體506、儲存器508及網路介面510。主機板502一般將包括一或多個用於從伺服器機殼接收電源以及用於與在機殼中的其他組件溝通之連接器。例如,一種常見刀鋒伺服器或模組架構採用包括多個連接器之背板(backplane)或相似物,在其中安裝相應於伺服器刀鋒或模組之配合連接器。
處理器504包括含有一或多個核心之CPU 512。該CPU和/或核心被耦接至互連514,其係說明在 處理器中實現一或多個互連(為簡單起見示出為單一互連)。互連514也被耦接至記憶體介面(I/F)516及PCIe(Peripheral Component Interconnect Express)介面518。記憶體介面516被耦接至記憶體506,而PCIe介面518提供用於耦接處理器504至各種輸入/輸出(I/O)裝置之介面,各種輸入/輸出(I/O)裝置包括儲存器508及網路介面510。一般而言,儲存器508係說明性的一或多個非揮發儲存裝置,例如但不限制於磁性或光學磁片驅動器、固態驅動器(SSD)、快閃記憶體晶片或模組等等。
網路介面510係說明性的各種型態之可以在伺服器節點實現之網路介面,例如乙太網路網路接頭或NIC。網路介面510包括PCIe介面520、直接記憶體存取(DMA)引擎522、傳送緩衝524、接收緩衝526、MAC模組530及封包處理引擎或NPU(Network Processor Unit)532。網路介面510更包括含有用於實現乙太網路實體層之電路和邏輯的PHY電路534。還描述一個任意的調解(reconciliation)層536。
PHY電路534包括一組PHY子層538a-d、串行器(serializer)/解串器(deserializer)(SERDES)540、包括傳送緩衝544及一或多個傳送器546之傳送埠542以及包括接收緩衝550及一或多個接收器552之接收埠548。節點500進一步示出為透過有線或光學鏈路560被鏈接與包括接收埠556及傳送埠558之遠端節點554通訊。根據被實現的特定乙太網路PHY,可採用PHY子層 不同的組合,以及不同傳送器和接收器的配置。例如,10GE PHY將採用不同PHY電路,40GE或100GE PHY。
各種軟體組件在CPU512之一或多個核心被執行以實現實施例之軟體基方面,例如上面敘述有關第1a、1b、2a、2b、3a及3b圖。第5圖中描述之範例軟體包括主操作系統562、應用程式564及用於實現各種AM處理器566及RMA模組568之軟體指令。全部或部分的軟體組件通常將被儲存在板上的節點,如由儲存器508描述的。此外,在一些實施例下一或多個組件可透過網路下載以及載入至記憶體506和/或儲存器508內。
在節點500操作期間,主操作系統562的部分將載入記憶體,連同被執行在OS使用者空間之一個或應用程式564。AM處理器566和RMA模組558可使用OS驅動器或相似物被實現,或可被實現如在OS使用者空間中執行的軟體組件。在一些實施例中,全部或部分的AM處理器566和/或RMA模組558可被實現為嵌入式軟體,其中嵌入式軟體係在一或多個在網路介面510實現之處理元件執行,網路介面例如封包處理引擎/NPU 532。作為另一選項,全部或部分的AM處理器操作和/或RMA模組操作可透過一或多個承載在節點502上之虛擬機器被實現(未示出)。
在第5圖中示出的實施例中,MAC模組530被敘述作為網路介面510的一部份,其中網路介面包含硬體組件。用於實現各種由網路介面510支持之操作的邏輯 可被實現透過嵌入的邏輯和/或運行在封包處理引擎/NPU 532上之嵌入的軟體或一或多個其它處理器元件。作為一個範例,嵌入式邏輯可被採用於準備用於從傳送埠542向外傳輸之上層封包。這包括在乙太網路封包中上層封包之封裝(例如,TCP/IP、UDP、其他協定等等)及接著乙太網路封包之構成(framing),其中乙太網路封包被使用來產生乙太網路框的流。
一般而言,由封包處理引擎/NPU 532執行之封包處理操作可透過嵌入式邏輯和/或嵌入式軟體實現。封包處理被實現以管理在網路介面510內以及也在網路介面510和記憶體506之間之資料轉發。這包括DMA引擎522的使用,其中DMA引擎522係配置以使用DMA寫入從接收緩衝526轉發資料至記憶體506,導致資料透過PCIe介面520和518以不包含CPU 512的方式被轉發至記憶體506中。在一些實施例中,傳送緩衝524及接收緩衝526包含記憶體映對IO(MMIO)位址空間,MMIO位址空間係配置以使用網路領域中已知的技術促進DMA在這些緩衝和記憶體506之間傳輸。
沒有、全部的或部分的MAC操作可在主處理器504上運行的軟體中實現。在一使用分離MAC架構之實施例中,乙太封包封裝及解封裝(decapsulation)操作在軟體中被實現,而乙太網路構成及分解(deframing)透過硬體實現(例如,透過嵌入式邏輯或在網路介面510之封包處理引擎/NPU 532上運行之嵌入式軟體)實現。
採用AM請求、AM回覆及相關的AM處理器之RMA寫入及RMA方案所提供優點超過現有的RMA技術。例如,因為這些方案可透過在主機上執行的軟體實現,原先需要專用配置硬體(例如,InfiniBand HCAs)之RMA資料傳輸可被擴展給其它協定使用,例如但不限制於乙太網路。該方案可與現有技術結合,例如PSM之使用或標示的訊息APIs以進一步提升功能和性能。
本文所敘述的發明標的的其他方面載於下列編號子句中:
1.一種用於在遠端節點和本地節點之間執行遠端記憶體存取(RMA)資料傳輸的方法,該方法包含:在其中資料從該本地節點被寫入至該遠端節點中執行RMA寫入,藉由:在該本地節點上讀取將從源緩衝寫入的資料;從該本地節點發送第一主動訊息(AM)寫入請求至在該遠端節點上的AM處理器,該第一AM寫入請求含有將被寫入的資料及該資料是要被寫入在該遠端節點上之遠端記憶體位址空間中的開始位址;以及在該遠端節點上藉由提取來自該第一AM寫入請求的該資料以該AM處理器來處理該第一AM寫入請求及在該開始位址開始寫入該資料至在該遠端記憶體位址空間中的位址範圍內。
2.如子句1所述之方法,更包含:從該遠端節點發送AM寫入回覆至該本地節點,該 AM寫入回覆指示該資料已成功地寫入至該遠端記憶體位址空間內;以及採用在該本地節點上的AM處理器以處理該AM寫入回覆訊息。
3.如子句1或2所述之方法,更包含:分割將被寫入的該資料為複數個封包;對該複數個封包的每一者,讀取對應於來自在該本地節點上之該源緩衝之封包的封包資料;從該本地節點發送含有該封包資料及該封包資料將被寫入在該遠端節點上之遠端記憶體位址空間中的開始位址的相應的AM請求至在該遠端節點上的該AM處理器;以及在該遠端節點上藉由提取來自該相應的AM請求的該封包資料以該AM處理器來處理該相應的AM請求及在該開始位址開始寫入該資料至在該遠端記憶體位址空間中的位址範圍內,其中該第一AM寫入請求對應於用來傳輸該複數個封包之資料之第一封包的AM寫入請求。
4.如子句3所述之方法,更包含:偵測全部的該封包資料已成功地寫入該遠端記憶體位址空間;從該遠端節點發送指示該封包資料已成功地寫入該遠端記憶體位址空間內的AM回覆至該本地節點;以及 採用在該本地節點上的AM處理器以處理該AM回覆訊息。
5.如任何前面子句所述之方法,更包含:在其中資料從該遠端節點讀取及被傳遞至該本地節點執行RMA讀取,藉由:發送AM讀取請求至在遠端節點上的該AM處理器,該AM讀取請求辨識在該遠端位址空間中資料將被讀取的位址範圍;回應於接收該AM讀取請求訊息,取回將經由在該遠端節點上之該AM處理器從該遠端位址空間讀取的該資料及經由AM讀取回覆訊息發送取回的資料至該本地節點;以及在該本地節點上藉由提取來自該AM讀取回覆的該資料及寫入該資料至該本地節點上的目標緩衝內以該AM處理器來處理該AM讀取請求。
6.如任何前面子句所述之方法,更包含:在其中使用複數個封包將資料從該遠端節點讀取且傳遞至該本地節點中執行RMA讀取,其中對於每一個該複數個封包的資料被傳輸藉由:發送相應的AM讀取請求至在該遠端節點上的該AM處理器,該AM讀取請求辨識在該遠端位址空間中封包資料將被讀取的位址範圍;回應於接收的該AM讀取請求訊息,取回將經由在該遠端節點上之該AM處理器從該遠端位址空間被讀取 的該封包資料及經由AM讀取回覆訊息發送取回的封包資料至該本地節點;以及在該本地節點上藉由提取來自該AM讀取回覆的該封包資料以該AM處理器來處理該AM讀取請求及寫入該封包資料至該本地節點上的目標緩衝內。
7.如任何前面子句所述之方法,更包含:採用使用標記訊息方案之用於該第一AM寫入請求之標記訊息;以及在該遠端節點上採用該AM處理器以檢查該標記訊息以驗證該遠端節點係該第一AM寫入請求的預定接收者。
8.如任何前面子句所述之方法,更包含:在該本地節點註冊在該遠端節點上之該遠端記憶體空間中的至少一位址範圍在其中資料可使用一或多個從該遠端節點發送之AM寫入請求被寫入內。
9.如子句8所述之方法,更包含:發行存取鑰匙至對應於註冊有該本地節點之至少一位址範圍的該遠端節點;包括該存取鑰匙在該第一AM寫入請求中;以及經由在該遠端節點上之該AM處理器檢查該存取鑰匙以驗證該第一AM寫入請求是否被允許。
10.一種具有第一及第二組指令儲存在上的非暫態電腦可讀媒體,其配置以被分別地執行任何前面子句所述之方法在本地及遠端節點上。
11.一種用於在遠端節點和本地節點之間執行 遠端記憶體存取(RMA)資料傳輸的方法,該方法包含:在其中資料從該本地節點被寫入至該遠端節點中執行RMA寫入,藉由:從該本地節點發送第一主動訊息(AM)寫入請求至在該遠端節點上的AM處理器,該第一AM寫入請求在其中該資料是要被寫入時辨識在該遠端節點上之遠端記憶體位址空間中的位址範圍;讀取將從在該本地節點上的源緩衝寫入的資料及發送該資料至該遠端節點;處理由該遠端節點接收的該資料以導致該資料被寫入至該遠端記憶體位址空間內以佔據在該第一AM寫入請求中辨識的該位址範圍。
12.如子句11所述之方法,更包含:接收複數個AM寫入請求,每一個AM寫入請求在其中關聯於AM寫入請求將被隨後發送之資料區塊將被寫入時辨識在該遠端節點上之該遠端記憶位址空間中的位址範圍,每一包括標記AM寫入請求辨識關聯資料的該區塊;藉由在該遠端節點上的該AM處理器將在該遠端節點上RMA寫入佇列中每一AM寫入請求入隊(enqueuing);從該本地節點接收複數個資料區塊,關聯於先前接收的AM寫入請求且含有來自其中該先前接收的AM寫入請求的標記之每一資料區塊可被辨識;從該RMA寫入佇列將該AM寫入請求出隊(dequeuing);以及 處理每一出隊的AM寫入請求以確定其中關聯於AM寫入請求將被寫入在該遠端記憶體位址空間中的該接收的資料區塊。
13.如子句11或12所述之方法,更包含其中資料從該遠端節點讀取且傳遞至該本地節點執行RMA讀取,藉由:發送AM讀取請求至該遠端節點上的該AM處理器,該AM讀取請求辨識在該遠端位址空間中資料將被讀取的位址範圍;回應於接收的該AM讀取請求訊息,藉由在該遠端節點上的該AM處理器產生對應於該AM讀取請求辨識在該遠端位址空間中資料將被讀取時之該位址範圍的RMA讀取請求;處理在該遠端節點上的該RMA讀取請求,導致該資料從藉由被從該遠端位址空間取回及發送至該遠端節點的RMA讀取請求中被定義的該遠端位址空間而被讀取;以及寫入從該遠端節點被發送至該遠端節點上的目的緩衝內的該取回的資料。
14.如子句13所述之方法,更包含:回應於接收的該AM讀取請求訊息,藉由在該遠端節點上的該AM處理器產生及入隊對應於在該遠端節點上之RMA讀取請求佇列中之該AM讀取請求辨識在該遠端位址空間中資料將被讀取之該位址範圍的RMA讀取請求; 從該RMA讀取請求佇列將該RMA讀取請求出隊,以及取回將從由在該RMA讀取請求中該位址範圍定義的該遠端位址空間被讀取的資料及發送該取回的資料至該本地節點。
15.如子句14所述之方法,其中該出隊、資料取回及發送操作係由從在該遠端節點上的該AM處理器分離之該遠端節點上的RMA讀取功能執行。
16.如任何子句11-15所述之方法,更包含與該本地節點註冊在該遠端節點上之該遠端記憶體空間中的至少一位址範圍進入其中資料可使用從該本地節點發送之一或多個AM寫入請求被寫入內。
17.如子句16所述之方法,更包含:發行存取鑰匙至對應於註冊有該本地節點之至少一位址範圍的該遠端節點;包括該存取鑰匙在該第一AM寫入請求中;以及經由在該遠端節點上之該AM處理器檢查該存取鑰匙以驗證該第一AM寫入請求是否被允許。
18.一種具有第一及第二組指令儲存在上的非暫態電腦可讀媒體,其配置以被分別地執行任何前面子句11-17所述之方法在本地及遠端節點上。
19.一種設備,包含:網路介面;包括本地記憶體位址空間的記憶體; 寫入請求主動訊息(AM)處理器,其配置以,藉由該網路介面接收透過與該網路接面耦接之通訊鏈路從遠端設備發送之第一AM寫請求,該第一AM寫入請求對應於由該遠端設備發佈之遠端記憶體存取(RMA)寫入且含有該資料是要被寫入在記憶體中的該本地記憶位址空間中的開始位址被寫入的第一資料;藉由從該第一AM寫入請求取回的該資料處理該第一寫入請求,且在該開始位址開始寫入該資料至在該遠端記憶體位址空間中的位址範圍內;以及發送AM寫入回覆至指示該資料已經成功地寫入至該遠端記憶體位址空間內的該遠端設備。
20.如子句19所述之設備,更包含:RMA寫入模組,其配置根據對應於RMA寫入至在該遠端設備上記憶體中的遠端記憶體位址被產生及被發送至該遠端設備的第二AM寫入請求以執行AM寫入操作,該第二AM寫入請求含有將在該資料是要被寫入之該遠端記憶體位址空間中的開始位址被寫入的第二資料;以及寫入回覆AM處理器,其配置以在成功地寫入該第二資料至該遠端記憶體位址空間內時處理從該遠端裝置發送之AM寫入請求。
21.如子句20所述之設備,更包含源緩衝,且其中該RMA寫入模組更配置以:分割將被寫入至該遠端記憶體位址空間的第三資料為複數個封包; 對該複數個封包的每一者,讀取對應於封包來自該源緩衝的封包資料;發送相應AM請求至含有該封包資料及該封包將被寫入在該遠端設備上之該遠端記憶體位址空間中相應的開始位址之在該遠端設備上的寫入請求AM處理器。
22.如任何子句19-21所述之設備,其中該寫入請求AM處理器更配置以:從該遠端設備接收複數個AM寫入請求,每一個該複數個AM寫入請求含有對應於被分割複數個封包且將被寫入至在該本地記憶體位址空間中相應的開始位址之該本地記憶體位址空間的第三資料之遠端寫入之相應的封包資料;取回用於每一該複數個AM寫入請求的該封包資料及寫入該封包資料至該本地記憶體位址空間內由AM寫入請求定義的該開始的位址;檢測整體該第三資料已被寫入至該本地記憶體位址空間內;以及發送AM寫入回覆至指示該第三資料已被成功地寫入至該本地記憶體位址空間內的該遠端設備。
23.如任何子句19-22所述之設備,更包含:在該本地記憶體內的目的緩衝;寫入回覆AM處理器;以及RMA讀取模組,其配置以:產生及發送AM讀取請求至在該遠端設備上的讀 取請求AM處理器,該AM讀取請求辨識在該遠端設備之資料之該遠端位址空間將被讀取的位址範圍;回應於該AM讀取請求從該遠端設備接收含有從該遠端位址空間之該資料的該AM讀取回覆;以及藉由從該AM讀取回覆取回該資料及寫入該資料至該目的緩衝內以該讀取回覆AM處理器處理該AM讀取回覆。
24.如任何子句19-23所述之設備,其中該RMA讀取模組更配置以在其中資料係從該遠端設備及使用複數個封包傳輸讀取執行RMA讀取,其中用於每一該複數個封包的資料係遠端地讀取藉由,發送相應的AM讀取請求至在該遠端設備上之該AM讀取請求處理器,該AM讀取請求辨識在該遠端位址空間內之封包將被讀取的位址範圍;回應於每一相應的AM讀取請求,從該遠端設備接收含有從該遠端位址空間讀取該封包資料之AM讀取回覆;以及藉由取回從該AM讀取請求的該封包及寫入該封包資料至該目的緩衝內以該讀取回覆AM處理器處理該AM讀取回覆。
25.如任何子句19-24所述之設備,更包含:讀取請求AM處理器,其配置以:從辨識在該本地位址空間內之含有資料將被讀取之資料的該遠端設備接收AM讀取請求; 從在該AM讀取請求中辨識的該位址範圍取回該資料;以及發送AM回覆至含有被取回的資料之該遠端設備。
23.一種設備,包含:網路介面;包括本地記憶體位址空間的記憶體;寫入請求主動訊息(AM)處理器,其配置以,藉由該網路介面接收透過與該網路接面耦接之通訊鏈路從遠端設備發送之複數個AM寫入請求,每一AM寫入請求對應於由該遠端設備發佈之遠端記憶體存取(RMA)寫入且含有將被寫入至該本地記憶體位址空間內相應的資料,開始位址在其中該相應的資料的開始將被寫入;以及在RMA寫入佇列中產生RMA寫入請求及將該RMA寫入請求出隊;以及RMA進展模組,其配置以,從該遠端設備接收複數個資料區塊,關聯於先前接收的AM寫入請求且含有來自其中該先前接收的AM寫入請求的標記之每一資料區塊可被辨識;從該RMA寫入佇列將該RMA寫入請求出隊;以及處理每一出隊的RMA寫入請求以確定其中關聯於RMA寫入請求將被寫入在該本地記憶體位址空間中的該接收的資料區塊。
27.如子句26所述之設備,更包含: 在該記憶體中的源緩衝;以及RMA寫入模組,其配置以,發送AM讀取請求至該遠端設備,該AM寫入請求辨識在其中該資料是要被寫入至該遠端設備記憶體中遠端記憶體位址內位址範圍之該AM讀取請求;讀取將從該源緩衝被寫入的該資料,以及發送該資料至該遠端設備,其中該資料在發送該AM寫入請求之後被發送,且該資料連同配置以使用來匹配被發送至該AM寫入請求之該資料的標記被發送。
28.如子句26或27所述之設備,更包含:RMA讀取請求佇列;讀取請求AM處理器,其配置以,從該遠端設備接收辨識在該本地位址空間中資料將被讀取之位址範圍的AM讀取請求;回應於接收的該AM讀取請求訊息,產生對應於辨識在該本地位址空間中資料將被讀取之該位址範圍之RMA讀取請求;入隊在該RMA讀取請求佇列中的該RMA讀取請求;以及。
RMA進展模組,其配置以,從該RMA讀取請求佇列出隊該RMA讀取請求;讀取在該RMA讀取請求中來自由該位址範圍定義之該本地位址的資料;以及 發送被讀取至該遠端設備的該資料。
29.如子句28所述之設備,更包含:佔據該記憶體之一部分的目的緩衝;以及RMA讀取模組配置以,發送AM讀取請求至該遠端設備,該AM讀取請求辨識在該遠端設備上記憶體中遠端記憶體空間中將被讀取之位址範圍;從該遠端設備接收已經從該遠端位址空間讀取的資料;以及寫入該以接收的資料至該目的緩衝內。
30.一種具有指令儲存在上的非暫態電腦可讀媒體,其配置以被執行在包括網路介面及包括本地位址空間之記憶體的節點上,該指令包括:寫入請求主動訊息(AM)處理器,其配置以,藉由該網路介面接收透過與該網路接面耦接之通訊鏈路從遠端設備發送之第一AM寫請求,該第一AM寫入請求對應於由該遠端設備發佈之遠端記憶體存取(RMA)寫入且含有該資料是要被寫入在記憶體中的該本地記憶位址空間中的開始位址被寫入的第一資料;藉由從該第一AM寫入請求取回的該資料處理該第一寫入請求,且在該開始位址開始寫入該資料至在該遠端記憶體位址空間中的位址範圍內;以及發送AM寫入回覆至指示該資料已經成功地寫入至該遠端記憶體位址空間內的該遠端設備。
31.如子句30所述之非暫態電腦可讀媒體,其更包含:RMA寫入模組,其配置根據對應於RMA寫入至在該遠端設備上記憶體中的遠端記憶體位址被產生及被發送至該遠端設備的第二AM寫入請求以執行AM寫入操作,該第二AM寫入請求含有將在該資料是要被寫入之該遠端記憶體位址空間中的開始位址被寫入的第二資料;以及寫入回覆AM處理器,其配置以在成功地寫入該第二資料至該遠端記憶體位址空件內處理從該遠端裝置發送之AM寫入請求。
32.如子句31所述之非暫態電腦可讀媒體,更包含源緩衝,且其中該RMA寫入模組更配置以:分割將被寫入至該遠端記憶體位址空間的第三資料為複數個封包;對該複數個封包的每一者,讀取對應於封包來自該源緩衝的封包資料;發送AM請求至含有該封包資料及該封包將被寫入在該遠端設備上之該遠端記憶體位址空間中相應的開始位址之在該遠端設備上的寫入請求AM處理器。
33.如任何子句30-32所述之非暫態電腦可讀媒體,其中該寫入請求AM處理器更配置以:從該遠端設備接收複數個AM寫入請求,每一個該複數個AM寫入請求含有對應於被分割複數個封包且將被寫入至在該本地記憶體位址空間中相應的開始位址之該本地 記憶體位址空間的第三資料之遠端寫入之相應的封包資料;取回用於每一該複數個AM寫入請求的該封包資料及寫入該封包資料至該本地記憶體位址空間內由AM寫入請求定義的該開始的位址;檢測整體該第三資料已被寫入至該本地記憶體位址空間內;以及發送AM寫入回覆至指示該第三資料已被成功地寫入至該本地記憶體位址空間內的該遠端設備。
34.如任何子句30-33所述之非暫態電腦可讀媒體,其中該節點更包含在該本地記憶體之目的緩衝,及該指令更包含:寫入回覆AM處理器;以及RMA讀取模組,其配置以,在執行時:產生及發送AM讀取請求至在該遠端設備上的讀取請求AM處理器,該AM讀取請求辨識在該遠端設備之資料之該遠端位址空間將被讀取的位址範圍;回應於該AM讀取請求從該遠端設備接收含有從該遠端位址空間之該資料的該AM讀取回覆;以及藉由從該AM讀取回覆取回該資料及寫入該資料至該目的緩衝內以該讀取回覆AM處理器處理該AM讀取回覆。
35.如任何子句30-34所述之非暫態電腦可讀媒體,其中該RMA讀取模組更配置以在其中資料係從該 遠端設備及使用複數個封包傳輸讀取執行RMA讀取,其中用於每一該複數個封包的資料係遠端地讀取藉由,發送相應的AM讀取請求至在該遠端設備上之該AM讀取請求處理器,該AM讀取請求辨識在該遠端位址空間內之封包將被讀取的位址範圍;回應於每一相應的AM讀取請求,從該遠端設備接收含有從該遠端位址空間讀取該封包資料之AM讀取回覆;以及藉由取回從該AM讀取請求的該封包及寫入該封包資料至該目的緩衝內以該讀取回覆AM處理器處理該AM讀取回覆。
36.如任何子句30-35所述之非暫態電腦可讀媒體,其中該指令更包含:讀取請求AM處理器,其配置以:從辨識在該本地位址空間內之含有資料將被讀取之資料的該遠端設備接收AM讀取請求;從在該AM讀取請求中辨識的該位址範圍取回該資料;以及發送AM回覆至含有被取回的資料之該遠端設備。
37.一種具有指令儲存在上的非暫態電腦可讀媒體,其配置以被執行在包括網路介面及包括本地位址空間之記憶體的節點上,該指令包括:寫入請求主動訊息(AM)處理器,其配置以,在執行時, 藉由該網路介面接收透過與該網路接面耦接之通訊鏈路從遠端設備發送之複數個AM寫入請求,每一AM寫入請求對應於由該遠端設備發佈之遠端記憶體存取(RMA)寫入且含有將被寫入至該本地記憶體位址空間內相應的資料,開始位址在其中該相應的資料的開始將被寫入;以及在RMA寫入佇列中產生RMA寫入請求及出隊該RMA寫入請求;以及RMA進展模組,其配置以,在執行時,從該遠端設備接收複數個資料區塊,關聯於先前接收的AM寫入請求且含有來自其中該先前接收的AM寫入請求的標記之每一資料區塊可被辨識;從該RMA寫入佇列出隊該RMA寫入請求;以及處理每一出隊的RMA寫入請求以確定其中關聯於RMA寫入請求將被寫入在該本地記憶體位址空間中的該接收的資料區塊。
38.如子句37所述之非暫態電腦可讀媒體,其中該節點更包含在該記憶體中的源緩衝,其中該指令更包含:RMA寫入模組,其配置以,在執行時,發送AM讀取請求至該遠端設備,該AM寫入請求辨識在其中該資料是要被寫入至該遠端設備記憶體中遠端記憶體位址內位址範圍之該AM讀取請求;讀取將從該源緩衝被寫入的該資料,以及發送該資料至該遠端設備,其中該資料在發送該AM 寫入請求之後被發送,且該資料連同配置以使用來匹配被發送至該AM寫入請求之該資料的標記被發送。
39.如子句37或38所述之非暫態電腦可讀媒體,其中該節點包含RMA讀取請求佇列,且其中該指令更包含:讀取請求AM處理器,其配置以,在執行時,從該遠端設備接收辨識在該本地位址空間中資料將被讀取之位址範圍的AM讀取請求;回應於接收的該AM讀取請求訊息,產生對應於辨識在該本地位址空間中資料將被讀取之該位址範圍之RMA讀取請求;入隊在該RMA讀取請求佇列中的該RMA讀取請求;以及RMA進展模組,其配置以,從該RMA讀取請求佇列出隊該RMA讀取請求;讀取在該RMA讀取請求中來自由該位址範圍定義之該本地位址的資料;以及發送被讀取至該遠端設備的該資料。
40.如子句39所述之非暫態電腦可讀媒體,其中該節點更包含佔據該記憶體之一部分的目的緩衝,且其中該指令更包含:RMA讀取模組配置以,在執行時,發送AM讀取請求至該遠端設備,該AM讀取請求辨識在該遠端設備上記憶體中遠端記憶體空間中將被讀取之 位址範圍;從該遠端設備接收已經從該遠端位址空間讀取的資料;以及寫入該已接收的資料至該目的緩衝內。
儘管一些實施例已參照特定的實施進行了說明,根據一些實施例,其他的實施方式是可能的。此外,示出於圖示中或本發明所敘述之元件或其它特徵的配置和/或順序不一定需要以特定示出或敘述的方式配置。根據一些實施例,許多其它的配置方式是可能的。
在圖式中所示出的每一個系統中,在一些情況下的元件各個可具有相同元件編號或不同的元件編號用以表明所表示的元件可能是不同的和/或相似的。然而,元件可為足夠靈活以具有不同實現並且與本發明示出或描述中一些或全部的系統工作。示出於圖式中的各種元件可以是相同或不同的。哪一個被稱作第一元件以及哪一個被稱作第二元件是任意的。
在敘述及申請專利範圍中,用語「耦接」及「連接」與它們的衍生物可以被使用。應當可理解的是這些用語並不是旨在作為彼此的同義詞。相反的,在特定實施例中,「連接」可被使用來指出兩個或多個元件彼此之間直接物理或電性接觸。「耦接」可以指兩個或多個元件彼此之間直接物理或電性接觸。然而,「耦接」也可以指兩個或多個元件彼此之間不是直接接觸,但仍然彼此合作或互動。
本文的演算法一般被認為是導致期望的結果的自相容序列之動作或操作。這包括物理量之物理操作。通常,儘管不是必須的,這些量採用能夠被儲存、傳輸、結合、比較以及其他操作之電或磁訊號的形式。主要為了通用的原因,已經多次證實方便將這些訊號稱為位元、值、元件、符號、字符、用語、數字等等。然而,應該理解的是,所有這些和類似的用語都將與適當的物理量相關聯並且僅僅是應用於這些量的方便的標籤。
實施例是本發明的實現或範例。參考說明書中「一實施例」、「一個實施例」、「一些實施例」或「其它實施例」意味著在實施例連接中敘述的特定特徵、結構或特徵被包括在本發明之至少一些的實施例中,但不一定是所有的實施例。不同的表現形式的「一實施例」、「一個實施例」或「一些實施例」不一定都指相同的實施例。
不是所有在本文中敘述或示出組件、特徵、結構、特性等等必須包括在特定的實施例中。例如,如果說明書陳述組件、特徵、結構或特性「可」、「可能」或「可以」被包括,不要求該特定的組件、特徵、結構或特性被包括。如果說明書或申請專利範圍指「一」元件,這並不意味著只存在一個元件。如果說明書或申請專利範圍指「一額外的」元件,這並不排除存在多於一個額外的元件。
如上面所討論,本發明實施例的各個方面可 由相應的軟體和/或嵌入式組件及應用程式促進,例如,在由嵌入式處理器或相似物執行,伺服器或裝置處理器或軟體和/或韌體上運行的軟體。因此,本發明實施例可被使用作為或支持由一些形式之處理核心(例如電腦之CPU、多核心處理器之一或多個核心)、在處理器或核心上運行之虛擬機器或其它在電腦可讀或機器可讀非暫態儲存介質或在其中的實施或實現而執行的軟體程式、軟體模組、韌體和/或分散式軟體。電腦可讀或機器可讀非暫態儲存介質包括用於以機器(例如,電腦)可讀之形式儲存或傳輸資訊之任何機制。例如,電腦可讀或機器可讀非暫態儲存介質包括以電腦或運算機器(例如,運算裝置、電子裝置等等)可存取之形式提供(即,儲存和/或傳輸)資訊之任何機制,例如可記錄/不可記錄介質(例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟儲存介質、光學儲存介質、快閃記憶體裝置等等)。該內容可以是可直接執行的(「物件」或「可執行」形式)、源碼或不同碼(「三角(delta)」或「批次(patch)」碼)。電腦可讀或機器可讀非暫態儲存介質也可以包括可從內容下載之儲存器或資料庫。電腦可讀或機器可讀非暫態儲存介質也可以包括在銷售或運送的時間具有內容儲存其上之裝置或產品。因此,運送具有預先儲存內容的裝置或透過通訊介質提供用於下載之內容可被理解為提供包含具有本發明敘述的這些內容之電腦可讀或機器可讀非暫態儲存介質的製造物。
前文中被稱為程序、伺服器、或工具之本發明敘述的各種組件可以是用來執行所述的該等功能之裝置。本發明敘述的每一組件包括軟體、硬體、或這些項目的一組合。可將該等組件實施為軟體模組、硬體模組、特殊用途硬體(例如,特定應用硬體、特定應用積體電路(ASICs)、數位信號處理器(DSPs)等的特殊用途硬體)、嵌入式控制器、固線式(hardwired)電路、硬體邏輯等的裝置。軟體內容(例如,資料、指令、配置、資訊等等)可經由包括電腦可讀或機器可讀非暫態儲存介質的製造物而提供,該軟體內容提供了代表可被執行的指令之內容。該內容可導致電腦執行本發明敘述的各種功能/操作。
如本文所使用的,物件列表加入用語「至少一」可以表示所列之物件的任一組合。例如,片語「至少一A、B、及/或C」用語表示(A)、(B)、(C)、(A及B)、(A及C)、(B及C)、或(A、B及C)。
上面敘述之本發明所示出的實施例中,包括摘要敘述的,並不旨在窮舉或將本發明限制於所揭露之精確型式。而本發明的具體實施例和範例在本文中敘述是用於說明目的,各種本發明範圍內之均等修改是可能的,如同那些相關領域技術人員將可理解到。
當參考上述詳細敘述這些修改可以做出本發明。在後面之申請專利範圍中所使用之用語不應被解釋為 限制本發明於說明書和圖式中所揭露之具體實施例。相反的,本發明的範圍應由後面之申請專利範圍完全地確定,它們將根據解釋申請專利範圍之既定原則來解釋。
100‧‧‧本地節點
102‧‧‧遠端節點
104‧‧‧源緩衝
106‧‧‧RMA寫入模組
108‧‧‧AM寫入回覆處理器
110‧‧‧AM寫入請求處理器
112‧‧‧RMA位址空間
114‧‧‧互連
116‧‧‧源資料
118‧‧‧AM寫入請求
120‧‧‧記憶體複製操作
122‧‧‧AM寫入回覆

Claims (25)

  1. 一種用於在遠端節點和本地節點之間執行遠端記憶體存取(RMA)資料傳輸的方法,該方法包含:在其中資料從該本地節點被寫入至該遠端節點中執行RMA寫入,藉由:在該本地節點上讀取將從源緩衝寫入的資料;從該本地節點發送第一主動訊息(AM)寫入請求至在該遠端節點上的AM處理器,該第一AM寫入請求含有將被寫入的資料及該資料是要被寫入在該遠端節點上之遠端記憶體位址空間中的開始位址;以及在該遠端節點上藉由提取來自該第一AM寫入請求的該資料以該AM處理器來處理該第一AM寫入請求及在該開始位址開始寫入該資料至在該遠端記憶體位址空間中的位址範圍內。
  2. 如申請專利範圍第1項所述之方法,更包含:從該遠端節點發送AM寫入回覆至該本地節點,該AM寫入回覆指示該資料已成功地寫入至該遠端記憶體位址空間內;以及採用在該本地節點上的AM處理器以處理該AM寫入回覆訊息。
  3. 如申請專利範圍第1項所述之方法,更包含:分割將被寫入的該資料為複數個封包;對該複數個封包的每一者,讀取對應於來自在該本地節點上之該源緩衝之封 包的封包資料;從該本地節點發送含有該封包資料及該封包資料將被寫入在該遠端節點上之遠端記憶體位址空間中的開始位址的相應的AM請求至在該遠端節點上的該AM處理器;以及在該遠端節點上藉由提取來自該相應的AM請求的該封包資料以該AM處理器來處理該相應的AM請求及在該開始位址開始寫入該資料至在該遠端記憶體位址空間中的位址範圍內,其中該第一AM寫入請求對應於用來傳輸該複數個封包之資料之第一封包的AM寫入請求。
  4. 如申請專利範圍第3項所述之方法,更包含:偵測全部的該封包資料已成功地寫入該遠端記憶體位址空間;從該遠端節點發送指示該封包資料已成功地寫入該遠端記憶體位址空間內的AM回覆至該本地節點;以及採用在該本地節點上的AM處理器以處理該AM回覆訊息。
  5. 如申請專利範圍第1項所述之方法,更包含:在其中資料從該遠端節點讀取及被傳遞至該本地節點執行RMA讀取,藉由:發送AM讀取請求至在該遠端節點上的該AM處理器,該AM讀取請求辨識在該遠端位址空間中資料將被讀取的位址範圍; 回應於接收該AM讀取請求訊息,取回將經由在該遠端節點上之該AM處理器從該遠端位址空間讀取的該資料及經由AM讀取回覆訊息發送該取回的資料至該本地節點;以及在該本地節點上藉由提取來自該AM讀取回覆的該資料及寫入該資料至該本地節點上的目標緩衝內以該AM處理器來處理該AM讀取請求。
  6. 如申請專利範圍第1項所述之方法,更包含:在其中使用複數個封包將資料從該遠端節點讀取且傳遞至該本地節點中執行RMA讀取,其中對於每一個該複數個封包的資料被傳輸藉由:發送相應的AM讀取請求至在該遠端節點上的該AM處理器,該AM讀取請求辨識在該遠端位址空間中封包資料將被讀取的位址範圍;回應於接收的該AM讀取請求訊息,取回將經由在該遠端節點上之該AM處理器從該遠端位址空間被讀取的該封包資料及經由AM讀取回覆訊息發送該取回的封包資料至該本地節點;以及在該本地節點上藉由提取來自該AM讀取回覆的該封包資料以該AM處理器來處理該AM讀取請求及寫入該封包資料至該本地節點上的目標緩衝內。
  7. 如申請專利範圍第1項所述之方法,更包含:採用使用標記訊息方案之用於該第一AM寫入請求之標記訊息;以及 在該遠端節點上採用該AM處理器以檢查該標記訊息以驗證該遠端節點係該第一AM寫入請求的預定接收者。
  8. 如申請專利範圍第1項所述之方法,更包含:在該本地節點註冊在該遠端節點上之該遠端記憶體空間中的至少一位址範圍在其中資料可使用一或多個從該遠端節點發送之AM寫入請求被寫入內;發行存取鑰匙至對應於註冊有該本地節點之至少一位址範圍的該遠端節點;包括該存取鑰匙在該第一AM寫入請求中;以及經由在該遠端節點上之該AM處理器檢查該存取鑰匙以驗證該第一AM寫入請求是否被允許。
  9. 一種用於在遠端節點和本地節點之間執行遠端記憶體存取(RMA)資料傳輸的方法,該方法包含:在其中資料從該本地節點被寫入至該遠端節點中執行RMA寫入,藉由:從該本地節點發送第一主動訊息(AM)寫入請求至在該遠端節點上的AM處理器,該第一AM寫入請求在其中該資料是要被寫入時辨識在該遠端節點上之遠端記憶體位址空間中的位址範圍;讀取將從在該本地節點上的源緩衝寫入的資料及發送該資料至該遠端節點;處理由該遠端節點接收的該資料以導致該資料被寫入至該遠端記憶體位址空間內以佔據在該第一AM寫入請求中辨識的該位址範圍。
  10. 如申請專利範圍第9項所述之方法,更包含:接收複數個AM寫入請求,每一個AM寫入請求在其中關聯於AM寫入請求將被隨後發送之資料區塊將被寫入時辨識在該遠端節點上之該遠端記憶位址空間中的位址範圍,每一包括標記AM寫入請求辨識關聯資料的該區塊;藉由在該遠端節點上的該AM處理器將在該遠端節點上RMA寫入佇列中每一AM寫入請求入隊(enqueuing);從該本地節點接收複數個資料區塊,關聯於先前接收的AM寫入請求且含有來自其中該先前接收的AM寫入請求的標記之每一資料區塊可被辨識;從該RMA寫入佇列將該AM寫入請求出隊(dequeuing);以及處理每一出隊的AM寫入請求以確定其中關聯於AM寫入請求將被寫入在該遠端記憶體位址空間中的該接收的資料區塊。
  11. 如申請專利範圍第9項所述之方法,更包含其中資料從該遠端節點讀取且傳遞至該本地節點執行RMA讀取,藉由:發送AM讀取請求至該遠端節點上的該AM處理器,該AM讀取請求辨識在該遠端位址空間中資料將被讀取的位址範圍;回應於接收的該AM讀取請求訊息,藉由在該遠端節點上的該AM處理器產生對應於該AM讀取請求辨識在該遠端位址空間中資料將被讀取時之該位址範圍的 RMA讀取請求;處理在該遠端節點上的該RMA讀取請求,導致該資料從藉由被從該遠端位址空間取回及發送至該遠端節點的RMA讀取請求中被定義的該遠端位址空間而被讀取;以及寫入從該遠端節點被發送至該遠端節點上的目的緩衝內的該取回的資料。
  12. 如申請專利範圍第11項所述之方法,更包含:回應於接收的該AM讀取請求訊息,藉由在該遠端節點上的該AM處理器產生及入隊對應於在該遠端節點上之RMA讀取請求佇列中之該AM讀取請求辨識在該遠端位址空間中資料將被讀取之該位址範圍的RMA讀取請求;從該RMA讀取請求佇列將該RMA讀取請求出隊,以及取回將從在該RMA讀取請求中該位址範圍定義的該遠端位址空間被讀取的資料及發送該取回的資料至該本地節點。
  13. 如申請專利範圍第12項所述之方法,其中該出隊、資料取回及發送操作係由從在該遠端節點上的該AM處理器分離之該遠端節點上的RMA讀取功能執行。
  14. 如申請專利範圍第9項所述之方法,更包含與該本地節點註冊在該遠端節點上之該遠端記憶體空間中的至少一位址範圍進入其中資料可使用從該本地節點發送之一或多個AM寫入請求被寫入內。
  15. 一種設備,包含:網路介面;包括本地記憶體位址空間的記憶體;寫入請求主動訊息(AM)處理器,其配置以,藉由該網路介面接收透過與該網路接面耦接之通訊鏈路從遠端設備發送之第一AM寫請求,該第一AM寫入請求對應於由該遠端設備發佈之遠端記憶體存取(RMA)寫入且含有該資料是要被寫入在記憶體中的該本地記憶位址空間中的開始位址被寫入的第一資料;藉由從該第一AM寫入請求取回的該資料處理該第一寫入請求,且在該開始位址開始寫入該資料至在該遠端記憶體位址空間中的位址範圍內;以及發送AM寫入回覆至指示該資料已經成功地寫入至該遠端記憶體位址空間內的該遠端設備。
  16. 如申請專利範圍第15項所述之設備,更包含:RMA寫入模組,其配置根據對應於RMA寫入至在該遠端設備上記憶體中的遠端記憶體位址被產生及被發送至該遠端設備的第二AM寫入請求以執行AM寫入操作,該第二AM寫入請求含有將在該資料是要被寫入之該遠端記憶體位址空間中的開始位址被寫入的第二資料;以及寫入回覆AM處理器,其配置以在成功地寫入該第二資料至該遠端記憶體位址空間內時處理從該遠端裝置發送之AM寫入請求。
  17. 如申請專利範圍第16項所述之設備,更包含源 緩衝,且其中該RMA寫入模組更配置以:分割將被寫入至該遠端記憶體位址空間的第三資料為複數個封包;對該複數個封包的每一者,讀取對應於封包來自該源緩衝的封包資料;發送相應AM請求至含有該封包資料及該封包將被寫入在該遠端設備上之該遠端記憶體位址空間中相應的開始位址之在該遠端設備上的寫入請求AM處理器。
  18. 如申請專利範圍第15項所述之設備,其中該寫入請求AM處理器更配置以:從該遠端設備接收複數個AM寫入請求,每一個該複數個AM寫入請求含有對應於被分割複數個封包且將被寫入至在該本地記憶體位址空間中相應的開始位址之該本地記憶體位址空間的第三資料之遠端寫入之相應的封包資料;取回用於每一該複數個AM寫入請求的該封包資料及寫入該封包資料至該本地記憶體位址空間內由AM寫入請求定義的該開始的位址;檢測整體該第三資料已被寫入至該本地記憶體位址空間內;以及發送AM寫入回覆至指示該第三資料已被成功地寫入至該本地記憶體位址空間內的該遠端設備。
  19. 如申請專利範圍第15項所述之設備,更包含:在該本地記憶體內的目的緩衝; 寫入回覆AM處理器;以及RMA讀取模組,其配置以:產生及發送AM讀取請求至在該遠端設備上的讀取請求AM處理器,該AM讀取請求辨識在該遠端設備之資料之該遠端位址空間將被讀取的位址範圍;回應於該AM讀取請求從該遠端設備接收含有從該遠端位址空間之該資料的該AM讀取回覆;以及藉由從該AM讀取回覆取回該資料及寫入該資料至該目的緩衝內以該讀取回覆AM處理器處理該AM讀取回覆。
  20. 如申請專利範圍第19項所述之設備,其中該RMA讀取模組更配置以在其中資料係從該遠端設備及使用複數個封包傳輸讀取執行RMA讀取,其中用於每一該複數個封包的資料係遠端地讀取藉由,發送相應的AM讀取請求至在該遠端設備上之該AM讀取請求處理器,該AM讀取請求辨識在該遠端位址空間內之封包將被讀取的位址範圍;回應於每一相應的AM讀取請求,從該遠端設備接收含有從該遠端位址空間讀取該封包資料之AM讀取回覆;以及藉由取回從該AM讀取請求的該封包及寫入該封包資料至該目的緩衝內以該讀取回覆AM處理器處理該AM讀取回覆。
  21. 如申請專利範圍第15項所述之設備,更包含: 讀取請求AM處理器,其配置以:從辨識在該本地位址空間內之含有資料將被讀取之資料的該遠端設備接收AM讀取請求;從在該AM讀取請求中辨識的該位址範圍取回該資料;以及發送AM回覆至含有被取回的資料之該遠端設備。
  22. 一種設備,包含:網路介面;包括本地記憶體位址空間的記憶體;寫入請求主動訊息(AM)處理器,其配置以,藉由該網路介面接收透過與該網路接面耦接之通訊鏈路從遠端設備發送之複數個AM寫入請求,每一AM寫入請求對應於由該遠端設備發佈之遠端記憶體存取(RMA)寫入且含有將被寫入至該本地記憶體位址空間內相應的資料,開始位址在其中該相應的資料的開始將被寫入;以及在RMA寫入佇列中產生RMA寫入請求及將該RMA寫入請求出隊;以及RMA進展模組,其配置以,從該遠端設備接收複數個資料區塊,關聯於先前接收的AM寫入請求且含有來自其中該先前接收的AM寫入請求的標記之每一資料區塊可被辨識;從該RMA寫入佇列將該RAM寫入請求出隊; 以及處理每一出隊的RAM寫入請求以確定其中關聯於RAM寫入請求將被寫入在該本地記憶體位址空間中的該接收的資料區塊。
  23. 如申請專利範圍第22項所述之設備,更包含:在該記憶體中的源緩衝;以及RMA寫入模組,其配置以,發送AM讀取請求至該遠端設備,該AM寫入請求辨識在其中該資料是要被寫入至該遠端設備記憶體中遠端記憶體位址內位址範圍之該AM讀取請求;讀取將從該源緩衝被寫入的該資料,以及發送該資料至該遠端設備,其中該資料在發送該AM寫入請求之後被發送,且該資料連同配置以使用來匹配被發送至該AM寫入請求之該資料的標記被發送。
  24. 如申請專利範圍第22項所述之設備,更包含:RMA讀取請求佇列;讀取請求AM處理器,其配置以,從該遠端設備接收辨識在該本地位址空間中資料將被讀取之位址範圍的AM讀取請求;回應於接收的該AM讀取請求訊息,產生對應於辨識在該本地位址空間中資料將被讀取之該位址範圍之RMA讀取請求;將在該RMA讀取請求佇列中的該RMA讀取請求入隊;以及 RMA進展模組,其配置以,從該RMA讀取請求佇列將該RMA讀取請求出隊;讀取在該RMA讀取請求中來自由該位址範圍定義之該本地位址的資料;以及發送被讀取至該遠端設備的該資料。
  25. 如申請專利範圍第24項所述之設備,更包含:佔據該記憶體之一部分的目的緩衝;以及RMA讀取模組配置以,發送AM讀取請求至該遠端設備,該AM讀取請求辨識在該遠端設備上記憶體中遠端記憶體空間中將被讀取之位址範圍;從該遠端設備接收已經從該遠端位址空間讀取的資料;以及寫入該已接收的資料至該目的緩衝內。
TW104124258A 2014-09-02 2015-07-27 用於在遠端節點和本地節點之間執行遠端記憶體存取(rma)資料傳輸的方法和設備 TWI582609B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/475,337 US9632973B2 (en) 2014-09-02 2014-09-02 Supporting RMA API over active message

Publications (2)

Publication Number Publication Date
TW201621699A TW201621699A (zh) 2016-06-16
TWI582609B true TWI582609B (zh) 2017-05-11

Family

ID=54062991

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104124258A TWI582609B (zh) 2014-09-02 2015-07-27 用於在遠端節點和本地節點之間執行遠端記憶體存取(rma)資料傳輸的方法和設備

Country Status (8)

Country Link
US (1) US9632973B2 (zh)
JP (1) JP6189898B2 (zh)
KR (1) KR101752964B1 (zh)
CN (1) CN105389120B (zh)
DE (1) DE102015112634A1 (zh)
FR (1) FR3025331A1 (zh)
GB (1) GB2531864B (zh)
TW (1) TWI582609B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI761846B (zh) * 2020-06-01 2022-04-21 鴻海精密工業股份有限公司 自動資料傳輸方法、裝置及存儲介質

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448901B1 (en) * 2015-12-15 2016-09-20 International Business Machines Corporation Remote direct memory access for high availability nodes using a coherent accelerator processor interface
JP6725662B2 (ja) * 2016-07-28 2020-07-22 株式会社日立製作所 計算機システムおよび処理方法
US20180089044A1 (en) * 2016-09-27 2018-03-29 Francesc Guim Bernat Technologies for providing network interface support for remote memory and storage failover protection
US11763351B2 (en) * 2017-03-29 2023-09-19 Oklahoma Blood Institute Fundraising platform
CN110704343B (zh) * 2019-09-10 2021-01-05 无锡江南计算技术研究所 面向众核处理器访存和片内通信的数据传输方法与装置
WO2023044861A1 (en) * 2021-09-26 2023-03-30 Intel Corporation Concept for providing access to remote memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448698A (en) * 1993-04-05 1995-09-05 Hewlett-Packard Company Inter-processor communication system in which messages are stored at locations specified by the sender
US5790804A (en) * 1994-04-12 1998-08-04 Mitsubishi Electric Information Technology Center America, Inc. Computer network interface and network protocol with direct deposit messaging
US20060069788A1 (en) * 2004-06-24 2006-03-30 International Business Machines Corporation Interface method, system, and program product for facilitating layering of a data communications protocol over an active message layer protocol
US20120023304A1 (en) * 2010-07-22 2012-01-26 International Business Machines Corporation Flow control for reliable message passing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2736237B2 (ja) 1995-03-06 1998-04-02 技術研究組合新情報処理開発機構 遠隔メモリアクセス制御装置
US6240444B1 (en) * 1996-09-27 2001-05-29 International Business Machines Corporation Internet web page sharing
US20050080869A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Transferring message packets from a first node to a plurality of nodes in broadcast fashion via direct memory to memory transfer
US7636813B2 (en) 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7694310B2 (en) 2006-08-29 2010-04-06 International Business Machines Corporation Method for implementing MPI-2 one sided communication
US7979645B2 (en) 2007-09-14 2011-07-12 Ricoh Company, Limited Multiprocessor system for memory mapping of processing nodes
US7925842B2 (en) 2007-12-18 2011-04-12 International Business Machines Corporation Allocating a global shared memory
CN102306115B (zh) * 2011-05-20 2014-01-08 华为数字技术(成都)有限公司 异步远程复制方法、系统及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448698A (en) * 1993-04-05 1995-09-05 Hewlett-Packard Company Inter-processor communication system in which messages are stored at locations specified by the sender
US5790804A (en) * 1994-04-12 1998-08-04 Mitsubishi Electric Information Technology Center America, Inc. Computer network interface and network protocol with direct deposit messaging
US20060069788A1 (en) * 2004-06-24 2006-03-30 International Business Machines Corporation Interface method, system, and program product for facilitating layering of a data communications protocol over an active message layer protocol
US20120023304A1 (en) * 2010-07-22 2012-01-26 International Business Machines Corporation Flow control for reliable message passing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI761846B (zh) * 2020-06-01 2022-04-21 鴻海精密工業股份有限公司 自動資料傳輸方法、裝置及存儲介質

Also Published As

Publication number Publication date
GB2531864B (en) 2019-04-24
CN105389120A (zh) 2016-03-09
US9632973B2 (en) 2017-04-25
TW201621699A (zh) 2016-06-16
GB2531864A (en) 2016-05-04
JP2016053946A (ja) 2016-04-14
US20160062944A1 (en) 2016-03-03
JP6189898B2 (ja) 2017-08-30
KR101752964B1 (ko) 2017-07-03
KR20160027902A (ko) 2016-03-10
CN105389120B (zh) 2018-09-21
GB201513562D0 (en) 2015-09-16
FR3025331A1 (zh) 2016-03-04
DE102015112634A1 (de) 2016-03-03

Similar Documents

Publication Publication Date Title
TWI582609B (zh) 用於在遠端節點和本地節點之間執行遠端記憶體存取(rma)資料傳輸的方法和設備
US11016911B2 (en) Non-volatile memory express over fabric messages between a host and a target using a burst mode
US20220197838A1 (en) System and method for facilitating efficient event notification management for a network interface controller (nic)
US11184439B2 (en) Communication with accelerator via RDMA-based network adapter
EP3028162B1 (en) Direct access to persistent memory of shared storage
US7903660B1 (en) Protocol to implement token ID mechanism for network data transfer
US7937447B1 (en) Communication between computer systems over an input/output (I/O) bus
US9411775B2 (en) iWARP send with immediate data operations
US10868743B2 (en) System and method for providing fast platform telemetry data
US8244826B2 (en) Providing a memory region or memory window access notification on a system area network
JP5805879B2 (ja) 拡張ヘッダを用いたパケット送信
US20020141424A1 (en) Host-fabric adapter having work queue entry (WQE) ring hardware assist (HWA) mechanism
WO2017000593A1 (zh) 报文处理方法及装置
CN105743610B (zh) 用于多网络分组操作的数据完整性的技术
US11095626B2 (en) Secure in-line received network packet processing
JP2013214050A (ja) ランダム値生成方法およびシステム
WO2019190859A1 (en) Efficient and reliable message channel between a host system and an integrated circuit acceleration system
WO2015039687A1 (en) Transmission and reception devices for reducing the delay in end-to-end delivery of network packets
CN110958216B (zh) 安全的在线网络分组传输
JP2015216450A (ja) 情報処理装置、情報処理システム及び中継プログラム
EP3631640B1 (en) Communication between field programmable gate arrays
CN114978950B (zh) 基于fpga、cpu协同的网络算法调用方法及系统
US9936003B1 (en) Method and system for transmitting information in a network
US20230239351A1 (en) System and method for one-sided read rma using linked queues

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees