TW583543B - Infiniband work and completion queue management via head only circular buffers - Google Patents

Infiniband work and completion queue management via head only circular buffers Download PDF

Info

Publication number
TW583543B
TW583543B TW091121511A TW91121511A TW583543B TW 583543 B TW583543 B TW 583543B TW 091121511 A TW091121511 A TW 091121511A TW 91121511 A TW91121511 A TW 91121511A TW 583543 B TW583543 B TW 583543B
Authority
TW
Taiwan
Prior art keywords
queue
entry point
index
completion
scope
Prior art date
Application number
TW091121511A
Other languages
English (en)
Inventor
Richard Louis Arndt
David F Craddock
Thomas Anthony Gregg
Ian David Judd
Gregory Francis Pfister
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Application granted granted Critical
Publication of TW583543B publication Critical patent/TW583543B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Description

583543 ⑴ 玖、發明說明 、 (發明說明應敘明:發明所屬之技術領域、先前技術、内容、實施方式及圖式簡單說明) 才目關的應用 本申請案係有關於一般性讓渡和申請中的美國專利申 請序號__一^—(委託待審案號AUS920010479US1),命 名為”使用頭部及尾部指標器以管理工作及完成佇列之裝 置及方法,,’歸檔於___ 以及美國專利申請序號 —(委託待審案號AUS92〇01〇478USl),命名為,,藉 由頭部和尾部圓形的緩衝器以及非直接工作佇列進入點 之無限頻帶工作及完成佇列管理”,歸檔於相同日期,以 及在此被合併參考。 發明背景 1 .技術背景: 本發明指的是一改良的資料處理系統。更明確地,本發 明指的是一種裝置和方法有效的實現佇列對和完成仔列 於硬體中,其對該佇列對僅使用頭部指標器,以及對完成 件列僅使用尾部指標器,管理圓形的緩衝器。 2 ·相關技藝的描述: 無限頻帶(IB)提供一硬體訊息傳遞機制能給1/〇 (1/0)裝 置’以及在内邵流程通訊(IP C)和一般計算節點之間使用 。用戶藉由宣告發送/接收訊息至在通道配接器(CA)上的 發送/接收工作佇列(WQ),以存取IB訊息傳遞硬體。該發 送/接收工作佇列(WQ)被指派至一用戶當做一仵列對(QP) 。用戶經由IB發送和接收工作完成(WC),從一完成件列(CQ) 取回這些訊息的結果。 022518 583543 ,. (2) 發明說明續頁 該源頭的CA負責分段外送的訊息,以及傳遞它們至該 終點。該終點的C A負貴重組回來的訊息,以及將它們放 置於由該終點用戶指定的記憶體空間内。這裡有兩種CA 型別:主CA和目標CA。該主CA被一般目的計算節點使用 ,以存取IB光纖。用戶使用IB軟體動詞存取主CA的功能。 直譯軟體動詞並直接存取該CA的軟體就是眾所皆知的通 道介面(CI)。 需要一有效率的機制從該用戶傳遞工作請求至該CA的 硬體。除此之外,需要一相似的機制給該C A的硬體傳遞 工作完成至該用戶。因此,這將會是有益的去擁有如此的 方法,裝置和程式與一些最佳技術,從該用戶傳遞工作請 求至該CA硬體,以及傳遞工作完成至該用戶。 發明概述 本發明提供一種具有(主機和I/O)末端節點,交換器,路 由器和連接器互相連接這些元件的分散式計算系統。該末 端節點使用發出和接收仵列對,以傳送和接收訊息。當一 訊息已經完全地被送出或接收,以及是否有一錯誤發生於 該訊息傳送或接收處理期間,該末端節點會使用完成佇列 ,以通知的該使用者。本發明描述一機制可以將這些佇列 對和完成佇列實現於硬體中。一方法只使用所述硬體的頭 部指標器,控制從該用戶的工作請求傳移至該通道配接器 硬體中,連同一機制只使用該硬體的尾部指標器,用以從 該通道配接器硬體傳遞工作完成至該用戶。以這樣的設計 ,該通道配接器硬體可以告知該CI,一工作請求已經被完 022519 583543 、 · (3) 發明說明續頁 成,並且以單一寫入至系統記憶體,提供該工作完成訊息 。另外,提供幾個機制可以用來改善這些程序在不同的記 憶體组態下的整個效率( 圖示簡單說明 被認為是本發明特點之新穎特徵被敘述於附件的申請 專利範圍内。然而,本發明本身和一較佳的使用模式,進 一步的目的和優點將會以參照下列說明具體實施例的詳· 細描述,伴隨著圖表而得到暸解,其中: 圖1是依照本發明較佳的具體實施例,描述一分散式計 算系統的圖解; 圖2是依照本發明較佳的具體實施例,一主處理器節點 的功能方塊圖; 圖3A是依照本發明較佳的具體實施例,一主通道配接器 的圖解; 圖3B是依照本發明較佳的具體實施例,是一交換器的圖 解; 圖3C是依照本發明較佳的具體實施例,是路由器的圖解; 圖4是依照本發明較佳的具體實施例,說明工作請求處 理的圖表; 圖5是依照本發明較佳的具體實施例,其使用一可靠的 連接服務,說明一分散式計算系統之一部分的圖解; 圖6是依照本發明較佳的具體實施例,其使用一可靠的資 料元連接服務,說明一分散式計算系統之一部分的圖解; 圖7是依照本發明較佳的具體實施例,說明一資料封包; 022520 -9- 583543 ⑷ 發明說明續頁 圖8是依照本發明較佳的具體實施例,說明一分散式計 算系統之一部分的圖解; 圖9是依照本發明較佳的具體實施例,說明用於一分散 式網路系統的一網路定址圖解; 圖10是依照本發明較佳的具體實施例,其描述SAN光纖 子網路架構,以說明一分散式計算系統之一部分的圖解; 圖11是於較佳的具體實施例内所使用的分層式通信架 構圖解; 圖12是依照本發明較佳的具體實施例,表示一實例的圖 解,其工作佇列於該硬體中僅使用頭部指標器存取使用頁 指標器,索引和加法器組合的佇列; 圖13是依照本發明較佳的具體實施例,表示一實例的圖 解,其完成佇列於該硬體中僅使用尾部指標器存取使用頁 指標器,索引和加法器組合的佇列; 圖14是依照本發明較佳的具體實施例,說明當一用戶宣 告一工作請求至一工作佇列,通道介面運作的流程圖;
圖15是依照本發明較佳的具體實施例,說明主通配接器 運作的流程圖;以及 圖16是依照本發明較佳的具體實施例,說明當一用戶已 經請求工作完成訊息,通道介面運作的流程圖; 較佳具體實施例的詳細說明 本發明提供一管理工作及完成佇列的裝置和方法,其在 該硬體裡對工作佇列使用頭部指標器,對完成佇列使用尾 部指標器。本發明可能被實現於硬體中,軟體中或一硬體 022521 -10- 583543 _· * (5) 發明說 和軟體的組合。本發明最妤是實現於一分散式計算系統, 例如一系統區域網路(SAN),具有末端節點,交換器,路 由备和連接器互相連接這些元件。每個末端節點使用發适 和接收佇列對,以傳送和接收訊息。該末端節點分割訊息 成封包,並傳送該封包於該連接器上。該交換器和路由器 互相連接末端節點’並遞送該封包至適合的末端節點。該 末端節點在該終點,重新組合該封包成一訊息。 圖1是依照本發明較佳具體實施例的一分散式計算系統 圖解。圖1所代表的分散式計算系統是一系統區域網路 (SAN) 100的形式,而且只提供來說明的目的,而以下描 述的本發明具體實施例可以被實現於其他多種類型和組 態的電腦系統上。舉例來說,實現本發明的電腦系統可從 只有一處理器的小型伺服器加上幾個1/0 (I/O)轉接器至大 型平行處理的超級電腦系統加上幾百個和幾千個處理器 和幾千個I/O轉接器。此外,本發明能被實現於由一網際 網路或企業内網路所連接的遠端電腦系統的設備中。 SAN 100是一高頻寬,低延遲時間的網路互相連接節點 於分散式計算系統内。一節點是附著於一網路的一個或多 個連接器的任何元件,以及於網路内形成訊息的起始點及 [或]終點。在所描述的例子中,SAN 100包括主處理機節點 102,主處理機節點1〇4,冗餘行列獨立的磁碟(RAID)次系 統節點106,和I/O底板節點1〇8。於圖1中描述的節點只是 為了說明的目的而已,為SAN 100能連接任何的數目和類 型的獨立處理器節點,I/O配接器節點和1/〇裝置節點。該 022522 -11 - 583543 ⑹ 任何的節點都能當做末端節點的功能,在此處可— 裝置於SAN 100上開始或最後消耗訊息或框架。 在本:明的一個具體實施例中,分散式計算系統裡存在 ㈣丨"曰祆處理機制在末端節點之
許可靠的連接或可靠資料元雨 L 非貝行兀通^於分散式計算系統内,例
如 SAN 100。 1 J -訊息’如在此處所使用的’是一資料交換的定義應用 單元’其是在合作程序之間的—通信原始單元。一封包是 由網路協定的檔頭及[或]樓尾將資料的一個單元裝入。樓 頭通常是提供控制和通道遞送訊息以導引該框架通過 SAN 100。榀尾通常包含控制和循環冗餘檢查資料, 確認傳送的封包沒有内容被破壞。 SAN 100包含通信和管理設施,於分散式計算系統裡支 援I⑽内部程序通信㈣)。在圖所示的san剛包括一 切@的it H纖i i 6 ’丨允許許多裝置同時地使用高頻寬 :專遞資料及低延遲時間於一保密,遠端的管理環境。末端 二..占在多個埠上通信,並且利用多種通道通過該SAN光 纖。圖1所示的通過該SAN之多個埠和通道用來當作故障 容許度,以及增加頻寬資料的轉移。 圖1的SAN100包括交換器112,交換器114,交換器146和 路由器117。一交換器是一裝置可以連接多個連接器,並 允"午在子、.罔路内使用一小檔頭終點區域識別碼(DLID) 搁區,路線遞送封包從一交換器至另一交換器。一路由器 -12- 022523 583543 ⑺ 發明說明續頁 是一裝置可以連接多個子網路一起,並且能夠使用一大樓 頭終點全域識別碼(DGUID)攔區,從第一個子網路的一連 接器遞送框架至第二個子網路的另一連接器。 在一個具體實施例中,一連接器是一全對工通道於任何 的二個網路光纖元件之間’例# :末端節,點’交換器或路 由器。適當的連接器包括,但是沒被限制在於例子,銅線 光纖纜線和印刷電路版鋼線和印刷電路板。 對於可非的服務形式,末端節點,例如主機處理器末端 即點,以及I/O配接器末端節點,產生請求封包和回送回 應封包。交換器和路由器向前遞送封包,從該源頭至該 終點。除了對不同的CRC檔尾襴區以外,其於該網路内的 每個級更新,交換器遞送該封包而不修改。路由器更新不 同的CRC檔尾欄區並且於該表頭裡修改其他的攔區當封 包被遞送時。 如圖1說明的SAN 100中,主機處理器節點1〇2,主處理器 即點104和I/O機箱1〇8包括至少一個通道配接器(CA)至介 面至SAN 100。在一具體實施例中,每個通道配接器是一 末端點’其非常詳細地實現該通道配接器介面至源頭,或 破壞在SAN架構116上傳輸的封包。主處理機節點1〇2包含 以主通道配接器118和主通道配接器12〇形式的通道配接 咨。主處理器節點104包含主通道配接器122和主通道配接 為124。主處理器節點1〇2也包括中央處理單位126- 13〇和一 记憶體132以匯流排系統134互相連接。主處理機節點1〇4 同樣地包括中央處理單位136-14〇和一記憶體142由一匯流 022524 -13 - ⑻ 發明說明續頁 排系統I44互相連接。 主通道配接器118和120提供一連接至交換器112當主通 道配接器122和124提供一連接至交換器112和114。 在/個具體實施例中,一主通道配接器是於硬體中實現 。在這個實現中,該主通道配接器硬體卸載許多中央處理 單元和I/O輸出配接器通信的開銷。該主通道配接器的硬 體實現也允許多種協同通信於一開關式網路而不需要與 傳統通信協定有關的開銷。在一具體實施例中’圖1的主 通道配接器和SAN 100提供分散式計算系統的I/O和内部程 序通信(IPC)用戶零處理器-複製資料轉移,不需要作業系 統核心來處理,而且運用硬體提供可靠的,故障容許的通 信。 如圖1所示,路由器117被耦合至廣域網路(WAN)及[或] 區域網路(LAN)連接至其他的主機或其他的路由器。圖1 的I/O機箱108包括一 I/O開關146和多種I/O模組148- 156。在 這些例子中,該I/O模組是一配接器卡的形式。圖1描述的 實例轉接器卡包括一 SCSI轉接器作為I/O模組卡148 ; —配 接器卡至光纖通道集線器,以及光纖通道仲裁迴路(FC-AL) 裝置給I/O模組152 ; —乙太網路配接器卡給I/O模組150 ; 一圖形配接器卡給I/O模組154,以及一影像配接器卡給I/O 模組156。任何的已知類型配接器卡接能被實現。I/O配接 器也包括一交換器於該1/ Ο配接器背面板,以轉合配接器 卡至該SAN架構。這些模組包含目標通道配接器158- 166。 在這個例子中,圖1的RAID次系統節點106包括一處理器 022525 -14- 583543 ⑼ 發明說明續頁 168,一記憶體170,一目標通道配接器(TCA) 172和多種冗 餘及[或]條紋狀儲存碟單位174。目標通道配接器1 72可以 是一全功能的主通道配接器。 SAN 100處理資料通信給I/O和内部程序通信。SAN 100支 援I/ O需求的高頻寬和可提升性,且也支援内部程序通信 需求的極低延遲時間和低中央處理器開銷。用戶可以省略 作業系統核心處理,而直接存取網路通信硬體,例如:主 通道配接器,其致能有效率的訊息遞送協定。SAN 100適 合於目前的計算模型,而且是一建構方塊給新形式的I/O 和電腦群通信。進一步地,圖1的SAN 100允許I/O配接器節 點在它們之中通信或與任何或全部的分散式計算系統的 處理器節點通信。以一 I/O配接器附上該SAN 100,產生的 I/O配接器節點大體上有相同的通信能力給SAN 100裡的任 何主處理機節點。 在一個具體實施例中,在圖1所示的SAN 100支援通道資 料定義和記憶體資料定義。通道資料定義有時指的是送/ 收或推送通信運算。通道資料定義是通信的類型運用於一 傳統的I/O,其中一來源裝置推送資料,和一終點裝置決 定一資料的最後終點。在通道資料定義,從一來源程序傳 輸一封包敘述一終點處理通信埠,但沒有敘述在該終點程 序記憶體中,該封包將會被寫入。因此,於通道資料定義 中,終點處理前部署放置該傳輸資料。 在記憶體資料定義中,一來源程序直接地讀出或寫入一 遠端節點終點程序的虛擬地址空間。該遠端節點終點程序 -15 - 022526 583543 ,. (10) 發明說明續頁 只需要通知位置緩衝器要求資料,並不需要參與任何資料 的轉移。因此,在記憶體資料定義中,一來源程序傳送一 資料封包包含該終點程序的終點緩衝器記憶體位址。在記 憶體資料定義中,終點程序先前地允許來源程序存取它的 記憶體。 通道資料定義和記憶體資料定義典型地都是I/O和内部 程序通信兩者所必需的。一典型的I/O運算運用一通道和 記憶體資料定義的組合。在圖1分散式計算系統之I/O運算 說明實例中,一主處理機節點,例如主處理機節點102, 藉由使用通道資料定義啟動一 I/O運算,以送出一磁碟寫 入指令至一磁碟I/O配接器,例如:RAID次系統目標通道 配接器(TCA) 172。該磁碟I/O配接器檢查該命令和使用記 憶體資料定義直接地從該主處理機節點的記憶體空間讀 取資料緩衝器。在資料緩衝器被讀取之後,該磁碟I/O配 接器運用通道資料定義以推送一 I/O完成訊息背板至該主 處理機節點。 在一個典範的具體實施例中,圖1的分散式計算系統執 行一運算,運用虛擬地址和虛擬記憶體保護機制,以確定 正確和適當的存取至所有的記憶體。在如此的一分散式計 算系統執行應用程式不需使用實際定址給任何的運算。 轉到圖2,一主處理機的功能方塊圖依照本發明的較佳 具體實施例被描述。主處理機節點200是一主處理機節點 的實例,例如:圖1中的主處理器節點102。在這個例子中 ,在圖2所示的主處理機節點200包括一組用戶202-208,其 -16- 022527 583543 一 _ (11) 發明說明續頁 是在主處理機節點200上的程序執行。主處理機節點2〇〇也 包括通道配接器210和通道配接器212。通道配接器包各 埠214和216而通道配接器212包含埠218和220。每個璋連接 到一連接器。該埠能連接至一 SAN子網路或多個SAN子網 路,例如:圖1裡的SAN 100。在這些例子中,通道配接器 是主通道配接器的形式。 用戶202-208經由該軟體動詞介面222和訊息和資料服務 224傳遞訊息至SAN。一軟體動詞介面本質上是一主通道配 接器功能性的抽象描述。一作業系統可以經由它的程式介 面暴露一些或所有的軟體動詞功能性。基本上,這個介面 定義該主機的行為。另外地,主處理機節點200包括一訊 息和資料服務224,其是一較高層的介面而非軟體動詞層 ’且被用來處理經由通道配接器210和通道配接器212收到 的訊息和資料。訊息和資料服務224提供一介面至用戶 202-208處理訊息和其他的資料。 現在參考至圖3A,一主機通道配接器的圖解依照本發明 的較佳具體實施例被描述。在圖3 A中所示的主機通道配 接器300A包括一組佇列對(QPs) 302A-310A,用來傳遞訊息 至該主通道配接器埠3 12 A- 3 1 6 A。對主通道配接器埠的資 料緩衝312A-316A經由虛擬通道(VL) 318A-334A引導,其中 每個VL具有它自己的流量控制。子網路管理器以本地位 址組態通道配接器給每個實體埠,也就是埠的LID。子網 路管理器代理(SMA) 336A是一實體,為了與該子網路管理 器通信,以組態化通道配接器。記憶體移轉和保護(MTP) -17-
022528 583543 (12) 發明說明續頁 338A是一轉換虛擬位址至實體位址的機制,且允許存取權 限。直接記憶體存取(DMA) 340A使用記憶體340A對應佇列 對302A-310A提供給直接記憶體存取運算。 一單通道配接器,例如在圖3 A中所示的該主機通道配接 器300A,可以支援數千個佇列對。相反的,一 I/O配接器 中的目標通道配接器通常只支援少數的佇列對。每個佇列 對由一發送工作佇列對和一接收工作佇列對所組成的。該 發送工作佇列對用來發送通道和記憶體資料定義訊息。該 接收工作佇列對收到通道資料定義的訊息。一用戶呼叫一 作業系統特定的程式介面,在此處指的是軟體動詞,以置 放工作請求(WRs)在一工作佇列上。 圖3B依照本發明的較佳具體實施例描述一交換器300B 。交換器300B包括一分封遞送302B經由虛擬通道,例如: 虛擬通道306B,與許多埠304B通信。通常,一交換器,例 如:交換器300B,能遞送封包從一埠至相同交換器上的任 何其他埠。 同樣地,圖3C依照本發明的較佳具體實施例描述一路由 器300C。路由器300C包括一分封遞送302C經由虛擬通道, 例如:虛擬通道306C,與許多埠304C通信。如交換器300B ,路由器300C通常將可以遞送封包從一埠至相同交換器上 的任何其他埠。 通道配接器,交換器和路由器運用多種虛擬通道於單一 實體連接器裡内。如圖3A,3B和3C所說明的,實體埠連接 末端節點,交換器和路由器至一子網路。封包從封包的來 -18- 022529 (13) 發明說明續頁 Z ^耆一個或多個虛擬通道之内注入該SAN架構網路至 :封包的終點。虛擬通道的選擇從與該封包有關的服務層 —被映射在任何-個時間,只有—條虛擬通道在給定的 男把連接裔上前進。虛擬通道提供一技術用以運用連接層 /人‘里k制至一虛擬通道,而不影響另一個虛擬通道。當 于G由之碰揎,服務品質(q〇s)或其他考量,在一虛擬 通C阻塞’於一不同的虛擬通道上的封包被允許前進。 運用虛镟通道有很多的理由,下列列出某些理由: 虛挺通這提供QoS。在一個具體實施例的實例中,某虛 和疋通道保留為鬲優先權或等通量以提供QoS。 虛板通道避免造成死結。虛擬通道允許網路拓撲包含迴 路以傳送封包通過所有的實體連接器,且仍然可保證該迴 路不會引起背壓式依存關係而造成死結。 虛擬通遒減輕首頭阻隔。當一交換器沒有可用的積分給 封包使用於給定的虛擬通道,使用不同虛擬通道的封包具 有充足的積分而被允許向前進。 現在參考圖4,依照本發明的較佳具體實施例,說明工 作請求處理的圖解被描述。在圖4中,提出一接收工作佇 列400 ’發送工作佇列4〇2和完成佇列4〇4處理從或至用戶 406的請求。從用戶402的這些請求最後被送到硬體408。在 這個例_子中,用戶406產生工作請求41〇和412而且接收工作 完成414。如圖4所示,工作請求被置於工作佇列上被稱為 工作佇列元件(WQEs)。 發送工作佇列402包含工作佇列元件(v/QEs) 422-428,描 022530 (14) 發明說明續頁 述傳輸資料於之SAN架構上。接收工作佇列400包含工作佇 列凡件(WQEs) 416-420,描述從該SAN架構置放進入點通道 貝料定義的地方。一工作佇列元件於主通道配接器被硬體 408處理。 該軟體動詞也提供一機制用以從完成佇列4〇4取回完成 的工作。如圖4所示,完成佇列404包含完成佇列元件 (CQEs) 430-436。完成佇列元件包含關於先前完成的工作仵 列元件之資訊。完成佇列404被用來產生單一完成通知的 點給多種佇列對。一完成佇列元件是在一完成仵列上的資 料結構。這個元件描述一完成的工作佇列元件。該完成佇 列元件包含足夠的訊息,以決定該佇列對以及特定完成的 工作佇列元件。一完成佇列組態内容是一訊息方塊包含指 標器,長度和其他的訊息需要被管理個別的完成仔列。 在圖4所示支援傳送工作佇列402的實例工作請求如下 。一傳送工作請求是一通道資料定義運算,以推送一組本 地資料分段至由遠端節點接收工作佇列元件的資料分段 。舉例來說,工作佇列元件428包含參考至資料分割4 438 ,負料分割5 440和資料分割6 442。每個傳送工作請求的 資料分段包含一實際相鄰的記憶體空間。被用來參考本地 資料分段的虛擬位址是在該程序的位址組態内容中,其創 造本地彳宁列對。 一遠产直接$憶體存取(RDMA)讀取工作請求提供一記 憶體資料定義運算以讀取在遠端節點上之一實際相鄰的 記憶體。一記憶體空間不是一記憶體區域的部分,就是一 -20· 02ΡΛ31 583543 ., (15) I發明說明續頁 記憶體視窗的部分。一記憶體區域參考一組先前註冊實際 相鄰的記憶體位址,其被虛擬位址和長度定義。一記憶體 視窗參考一組實際相鄰的記憶體位址,其被限制至先前註 冊的區域。 RDMA讀取工作請求在一遠端末端節點,讀出實際相鄰 的記憶體,以及寫入資料至一實際相鄰的記憶體。類似於 發送工作請求,RDMA讀取工作佇列元件使用的虛擬位址 以參考本地資料分段是在創造本地佇列之程序組態内容 中。舉例來說,工作佇列元件416於接收工作佇列400參考 資料分段1 444,資料分段2 446和資料分段3 448。該遠端 虛擬位址是在該程序位址組態内容,其擁有遠端佇列對, 被該RDMA讀取工作佇列元件鎖定。 一 RDMA寫入工作佇列元件提供一記憶體資料定義運算 ,以在一遠端末端節點上,寫入一實際相鄰的記憶體。 RDMA寫入工作佇列元件包含一本地實際相鄰的記憶體的 散佈表,以及該遠端記憶體的虛擬位址寫入至本地記憶體。
一 RDMA提取運算子工作佇列元件提供一記憶體資料定 義運算,以在一遠端字元組執行一原子運算。RDMA提取 運算子工作佇列元件是結合了 RDMA讀取,修改和RDMA 寫入運算。該RDMA提取運算子工作佇列元件支援一些讀 取修改寫入運算,例如:比較和互換如果相等時。一限制 (非限制)遠端存取鍵(11_鍵)工作佇列元件提供一指令給 該主機通道配接器硬體結合(分離)記憶體視窗至一記憶 體區域,以修改(破壞)一記憶體視窗。該R鍵是每個RDMA -21 - 022532 583543 (16) 發明說明續頁 存取的部份,以及用來使遠端程序允許對該緩衝器的存取 有效。 在一個具體實施例中,圖4所示的接收工作佇列400只支 援工作佇列元件的一個類型,其被稱為一接收工作佇列元 件。該接收工作佇列几件提供一通道資料定義運算描述一 本地記憶體空間至被寫入的送進來發送訊息。該接收工作 佇列元件包括一散佈表’描述一些實際相鄰的記憶體空間 。一送進來發送訊息是寫入這些記憶體空間的。該虛擬位 址是在該程序的位址組態内容中,其創造本地佇列對。 對内部程序通信而I ’ 一使用者模式軟體程序直接從記 憶體中的緩衝器,經由佇列對轉移資料。在一個具體實施 例中,經由佇列對的轉移略過作業系統,以及需要很少的 主指令週期。佇列對允許零處理器-拷貝資料轉移,而不 需要作業系統核心參與。零處理器-拷貝資料轉移提供有 效率的支援高頻寬和低延遲時間的通信。 當一佇列對被創造時,佇列對被設定以提供一 、 Q選擇的 傳送服務類型。在一個具體實施例中,實現本發明的分气 式計算系統支援四類型的傳送服務:可靠的連接,不可靠 連接’可靠的資料元和不可靠的資料元連接服務。 非 可靠和不可靠連接服務以一個且只有一個凟μ 逆%佇列結 合一本地佇列對。連接服務需要一程序,以產峰 反王一佇列對 給每個程序在S AN架構上通信。因此,如果矣一加χ ^ 卿Ν主處 理機節點包含Ρ程序,且在每個節點上的所有 1 β r處理都希 望與所有其他節點上的處理通信,每個主處理機節點— * 要 022533 -22- 583543 發明說明續頁 P2 X (N - 1)佇列對。而且一程序能 、查括严邡嵙$ P 相同主通道配接器上 連接一 ^丁列對至另一個俘列對。 圖5概略說明一分散式計算系统 ,. 3邵分運用可靠連接服 務分散式處理之間通信。圖5中的八 . 非迷接服 、七挪德— 乃政式計算系統500包括 一王處理機郎點1,一主處理機節 、——旁邱她一 ·、、,占2和一主處理機節點3 。該王處理機郎點1包括一處理Α 5〗Ω 、 王處理機節點3包括 一處理C 520和一處理d 530。主處珲嫵〜 里機郎點2包括一處理Ε 540。 主處理機節點i包括仵列對4, 6和7,每個具有一發送工 作仵列和接收工作仔列。主處理機節點2具有一仵列對9 且主處理器節點3具有作列對2和5。分散式計算系統鳩的 可靠連接服務以—個且只卜個遠^宁列結合一本地作 列對。因此,佇列對4被用爽盥柃 T傲用术興仔列對2通信,佇列對7被用 來與佇列對5通信,以及佇列對6被用來與佇列對9通信。 置t ,仔列上的WQE於可靠連接服務造成資料被寫入 至接收€憶體内,其祐遠 、被連接ff列對的一接收WQE所參考。 RDMA運算在連接仵列斟 任彳丁列對的位址空間上操作。 在本4月的個具體實施例中,該可靠連接服務是可靠 的因為硬眼維持順序號碼,且回應所有封包傳遞。—硬 體和S A N驅動赴㈣从4人 季人m的組合重試任何已失敗的通信。該佇列 對的處理客戶#^ 又仔了非的通信,即使出現位元誤差,收到 錯誤和網路擁塞。4 、 如果其它可能的通道存在於該SAN架構 中’,可靠的通信便可被維持甚至失敗出現在光纖交換器, 連接器或通道配接器埠。 022534 -23 - 583543 ., (18) 發明說明續頁 除此之外,回應可能被運用到通過該SAN架構時,遞送 資料的可靠性。該回應可以,或不可以是一程序層次的回 應,也就是一回應使一接收程序消耗資料有效。二者擇一 地,該回應可以是只能指示資料已到達它的終點。 可靠資料元服務以一個和只有一個遠端端至端組態内 容結合一本地端至端組態内容。可靠資料元服務允許一佇 列對客戶程序,在任何其他遠端節點上,與任何其他佇列 對通信。在一接收工作佇列,可靠資料元服務允許在任何 其他的遠端節點上,從任何發送工作佇列的送進來訊息。 可靠資料元服務大大地改良擴充性,因為可靠資料元服 務是無連接的。因此,具有一固定數目的佇列對的末端節 點能用可靠資料元服務,而非可靠連接傳送服務與更多程 序和末端節點通信。舉例來說,如果每一個N主處理機節 點包含P程序,且在每個節點的所有P處理希望在所有其他 節點上與所有處理通信,在每個節點上,該可靠連接服務 需要P2 X (N - 1)個佇列對。相反地,該無連接可靠資料元 服務在每個節點上只需要P個佇列對+ (N - 1)個EE組態内 容做完全相同的通信。 圖6概略說明一分散式計算系統的部分運用可靠連接服 務分散式處理之間通信。圖6中的分散式計算系統600包括 主處理機節點1,一主處理機節點2和一主處理機節點3。 主處理機節點1包括一處理A 610具有一佇列對4。主處理機 節點2有一程序C 620,其具有一佇列對24和一處理D 630, 其具有一佇列對25。主處理機節點3有一程序E 640,其具 -24- 022535 583543 , ^ (19) 發明說明續頁 有一仵列對14。 在由分散式計算系統600實現的可靠資料元服務中,佇 列對是耦合於一無連接的傳送服務。舉例來說,一可靠資 料元服務搞合佇列對4至佇列對24,25和14。特別的是, 一可靠資料元服務允許佇列對4的發送工作佇列可靠地傳 遞訊息至佇列對24,25和14中的接收工作佇列。同樣地, 該佇列對24,25和14的發送佇列可以可靠地傳遞訊息至佇 列對4中的接收工作佇列。 在本發明的一個具體實施例中,該可靠資料元服務運用 與每個訊息框架有關的順序號碼和回應,以確定相同程度 的可靠度為可靠的連接服務。端至端(EE)的組態内容維持 端至端特定的狀態,以追蹤順序數字,回應和逾時值。EE組 態内容的端至端狀態在一對末端節點之間,被所有無連接 的佇列對通信所分享。每個末端節點需要至少一個EE組 態内容給每一個末端節點於可靠資料元服務它想通信(舉 例來說:一給定的末端節點至少需要N個EE組態内容可以 有可靠資料元服務和N個其他的末端節點的)。 不可靠資料元服務是無連接的,不可靠資料元服務被管 理應用程式運用以發現及整合新的交換器,路由器和末端 節點整合至一給定的分散式計算系統。不可靠資料元服務 並不提供該可靠連接服務和該可靠資料元服務的可靠度 保證。該不可靠資料元服務因此操作以少量狀態的訊息在 每個末端節點維護。 換到圖7,一資料封包的說明依照一本發明的較佳具體 -25 - 022538 583543 ,, (20) 發明說明續頁 實施例被描述。一資料封包是一單位的資訊遞送通過該 SAN架構。資料封包是一末端節點至末端節點的構造,而因 此被末端節點創造且消耗。因為封包到一通道配接器(不 是主機就是目標),該資料封包既非被產生也不是被該 SAN架構裡的交換器和路由器消耗。不是讓資料封包至一 通道配接器,交換器和路由器只是移動請求封包或回應封 包靠近至最後終點,修改不同連接標頭欄區於該處理。路 由器也修改封包的網路標頭當該封包越過一子網路邊界 。在穿過一子網路方面,單一個封包停留在一單一服務層 次上。 訊息資料700包含資料分段1 702,資料分段2 704和資料 分段3 706,其相似於在圖4中說明的資料分段。在這個例 子中,這些資料分段形成一封包708,其被置入資料封包 712内的封包負載量710。另外地,資料封包712包含CRC 714 ,用來當誤差檢查。另外地,路線遞送標頭716和傳輸標 頭7 1 8出現於資料封包7 12内。路線遞送標頭7 16被用來為資 料封包712辨認來源和終點埠。傳輸標頭71 8在這個例子中 是敘述資料封包7 12的終點佇列對。另外地,傳輸標頭7 1 8 也提供訊息,例如:操作碼,封包順序號碼和分割給資料 封包712。 該操作碼辨明封包是否是該第一,最後,中間或只是一 封包訊息。該操作碼也定義出運算是否是一發送,RDMA 寫入,RDMA讀取/或原子的。該封包順序號碼被起始化當 通信被建立時,而且每一次增量一佇列對會產生一新的封 -26- 022537 (21) 發明說明續頁 包。一末端節點埠可能祜@ &丄、 知t 千』此筱組怨化成一個或可能是多個重疊 集的成員,稱為分割。 在圖8 + 刀散式電腦系統部分的描述說明-實例的 請求和回應處理。i8的分散式電腦系統包括一主處理機 節點802#主處理機即點8〇4。主處理機節點⑽2包括一主 通道配接器806。主處理機節點8〇4包括一主通道配接器8〇8 圖8的刀政式私腦系統包括一 san架構“ο,其包括一交 換器812和-叉換器814。肖SAN架構包括一連結搞合主通 迢配接芬806至X換器812; 一連結耦合交換器812至交換器 814 ;而且一連結_合主通道配接器8〇8至交換器814。
在?茨實例處理中’主處理機節點8〇2包括一客戶程序a 。主處理機節點804包括一客戶程序b。客戶程序A由佇列 對23 (824和826)與主通道配接器硬體8〇6互動。客戶程序b 由佇列對24 (828和830)與主通道配接器硬體808互動。佇列 對23和24是資料結構,包括一發送工作佇列和一接收工作 仵列。程序A藉由宣告工作仔列元件,發動訊息請求至仵 列對23的發送佇列824。這樣的一個工作佇列元件在圖4中 被說明。客戶程序的訊息請求被包含在發送工作仵列元件 中的集合列表所參考。該集合列表的每個資料分段指到一 實際相鄰的本地記憶體,其包含該訊息的一部份,例如資 料分段1,2和3所指示的,其分別地擁有在圖4中的訊息部 份1,2和3。主通道配接器806裡的硬體讀取儲存於實際相 鄰緩衝器中的工作佇列元件和分段訊息至資料封包内,例 如在圖7中所說明的資料封包。資料封包被遞送通過SAN -27- 022538 (22) 583543 發明說明續頁 架構,以及當作可靠的傳遞服務,被最後蚊 所回應。如果不連續地回應,該資料 、’冬點的末端節點 、 ^ 宁包祕十、rr 再傳送。資料封包被來源末端節點產生 來源末端節點 消耗。 b被终點末端節點
參考圖9 ’依照本發明的較佳具體 散式網路系統之網路定址的圖解被描迷〗’說明用於分 一邏輯識別碼給一主機節點,例如··一、〜主機名字提供 配接器節點。該主機名字辨認末端節點處埋機節點或I/O 被送往程序,其常駐在主機名字定義的:=j、’因此訊息 ,每個節點都有一個主機文念.. 端節點上。因此 疋至每個元件。一元件可 e 〒了以疋一父換态,路由器或CA。 每個CA埠906分配一個或多個全域獨一⑴(guid)識別符 號904。使用多個GUlDs(akaip位址)是有一些理由,有某 些疋在下列例子中說明。在一個具體實施例中,不同的ιρ 位址辨認在末端節點上不同的分割或服務。在一不同的具 體實施例中,不同的IP位址用來定義不同的服務品質(Q〇s) 屬性。然而在另一個具體實施例,不同的IP位址辨認通過 外邵子網路路線的不同路徑。 一 GUID 908被指定至一交換器91〇。 一本地ID (LID)指的是—短位址⑴,用來於單一子網路 内識別一 CA埠。在一個具體實施例中,一子網路最多有 216個末端節點,交換器和路由器,而且因此該LID是16位 兀。一 LID (SLID)和—終點UD (DLID)是該來源和終點LIDs _533 -28- (23) 發明說明續頁 被用於本地網路標頭。一單一 CA埠906最多有2LMC LIDs 912 被指定到它。LMC代表該CA的LID遮蔽控制襴位。一遮蔽 是一位元的樣本用來接受或拒絕位元樣本於另外的資料 組。 多種LIDs的使用是有一些理由,某些可由接下來的例子 提供。在一個具體實施例中,不同的LIDs於一末端節點辨 識不同的分割或服務。在另外的一個具體實施例中,不同 的LIDs用來定義不同的QoS屬性。在再進一步的具體實施 例中,不同的LID定義通過該子網路的不同路徑。一單一 交換器埠914具有一 LID 916與它有關。 一對一的對應並不需要存在於LIDs和GUIDs之間,因為 對每個埠,一個CA比GUIDs可以有更多或較少的LIDs。對 有多個冗餘埠和冗餘傳導性的CAs至SAN架構,該CAs,但 是不一定要,在它每一個埠上使用相同的LID和GUID。 一分散式電腦系統的部分依照本發明的較佳具體實施 例於圖10中被說明。分散式電腦系統1000包括一子網路 1002和一子網路1004。子網路1〇〇2包括主處理機節點1()〇6 ,1008和1010。子網路1004包括主處理機節點1012和1〇14。 子網路1002包括交換器1016和1018。子網路1〇〇4包括交換器 1020和 1022 〇 路由器連接子網路。舉例來說,子網路1〇〇2被連接到1〇〇4 與路由器1024和1026。在一具體實施例中,一子網路最多 有216個末端節點,交換器和路由器。 一子網路被定義成一群末端節點和_接交換器,其被處 -29- 022540 583543 · · (24) 發明說明續頁 理成一單元。典型地,一子網路佔據單一地理的或功能的 區域。舉例來說,一單一電腦系統在一個房間中便能夠被 定義為一子網路。在一個具體實施例中,一子網路裡的交 換器能執行非常快速的蟲孔或切過路線給訊息。 一交換器於一子網路内檢查DLID於該子網路内的獨特 性,以允許該交換器很快地而且有效率地遞送送進來的訊 息封包。在一個具體實施例中,交換器是一相對地簡單的 電路,而且典型地被實現成一單一的積體電路。一子網路 可以有由串接交換器形成的幾百或幾千個末端節點。 如圖10所說的,對延伸至較大的系統,子網路與路由器 一起被連接,例如:路由器1024和1026。該路由器直譯IP 終點ID (舉例來說:IPv6終點ID)和遞送像IP—樣的封包。 一交換器的實例具體實施例被說明於圖3B中。每個I/O 路徑在一交換器或路由器上有一埠。通常,一交換器能遞 送封包在相同的交換器上從一璋至任何其他的埠。 於一子網路内,例如:子網路1002或子網路1004,從來 源埠至一終點埠的路徑是由該終點主通道配接器璋的LID 決定。在子網路之間,一路徑的決定是由該終點主通道配 接器埠的IP位址(舉例來說:IPv6位址)和該路由器埠的LID 位址,其將被用來到達終點的子網路。 在一個具體實施例中,該請求封包使用的路徑和對應正 回應(ACK)或負回應(NAK)框架的請求封包不需要是對稱 的。在運用某一路線遞送的具體實施例中,交換器根據 DLID選擇一輸出埠。在一個具體實施例中,在一個具體實 -30- 022541 583543 . · (25) 發明說明續頁 施例中’路線遞送的決定標準包含於一個路線遞送表。在 一其它可能的具體實施例中,一交換器運用一分開的標準 組給每個輸入埠。 一資料處理於本發明的分散式電腦系統典型地是由一 些硬體和軟體步驟所組成。一客戶程序資料傳送服務可以 是一使用者模式或一核心模式程序。客戶程序存取主通道 配接器硬體經由一個或多個佇列對,例如:在圖中3A,5 和6說明的佇列對。該客戶程序呼叫一作業系統特定的程 式規劃介面,在此處被稱為”軟體動詞π。實現軟體動詞的 該軟體碼宣告一工作佇列元件至該給定佇列對工作佇列。 有許多可能宣告一工作佇列元件的方法,以及許多可能 的工作佇列元件格式,其允許各種不同的成本/效能的設 計點,但不影響相容性。然而一用戶程序必須在定義明確 的方法裡,通信至軟體動詞,以及傳輸至SAN架構的資料 格式和協定必須被定義詳細’以允許裝置相容於一相異的 環境内。 在一個具體實施例中,通道配接器硬體偵測出工作佇列 元件宣告以及存取該工作佇列元件。在這個具體實施例中 ,通道配接器硬體轉譯並且使該工作佇列元件的虛擬位址 有效和存取資料。 一送出的訊息被分成一個或多個資料封包。在一個具體 實施例中,通道配接器硬體加入一傳送標頭和一網路標頭 至每一個封包。該傳送標頭包括順序號碼和其他的傳送訊 息。網路標頭包括路線遞送訊息,例如終點IP位址和其他 -31 - 583543 · · (26) 發明說明續頁 的網路路線遞送訊息。該連接標頭包含終點本地的識別碼 (DLID)或其他的本地路線遞送訊息。該適合的連接標頭總 是被加至該封包。該適合的全域網路標頭被加至一給定的 封包如果終點末端節點是在一遠端子網路上。 如果運用一可靠的傳送服務,當一請求資料封包到達它 的終點末端節點,回應資料封包被該終點末端節點使用, 以讓請求資料封包發送者知道該請求資料封包是有效的 ,並在該終點接收。回應資料封包回應一或多個有效和已 接受的請求資料封包。該請求者可以有多個未解決的請求 資料封包在它收到任何的回應之前。在一個具體實施例中 ,多個未解決訊息的數目,也就是請求資料封包,被決定 當一佇列對被創造時。 一分層式架構1100的具體實施例用以實現本發明在圖 11中以圖解形式說明。圖11的分層式架構表示各種不同層 的資料通訊路徑,和資料和控制訊息的組織在層之間傳遞。 主通道配接器末端節點協定層(由末端節點1111所運用 ,舉例來說)包括一較上層級協定1102被用戶1103,一傳輸 層1104 ; —網路層1106 ; —鏈結層1108和一實體層1110所定 義。交換器層(由交換器所運用1113,舉例來說)包括鏈結 層1108和實體層1110。路由器層(由路由器1115所運用,舉 例來說)包括網路層1106,鏈結層1108和實體層1110。 通常分層式架構1100跟隨一典型通信堆疊大綱。對於末 端節點1111的協定,舉例來說,較上層協定110 2運用軟體 動詞,以在傳輸層1104產生訊息。網路層1106在網路子網 32-
022^43 * 4 * 4583543 (27) 路U 11 6)之間遞送封包。鏈結層11 〇8在一網路子網路(丨丨i 8) 遞送封包。實體層1110發送位元或位元組至其他裝置的實 體層。每一個層不知道較上或較低層如何執行它們的功能。 用戶1103和1105代表應用程式或程序,運用於其他的層 用以在末端節點之間通信。傳輸層丨丨〇4提供端至端訊息移 動。在一個具體實施例中,傳輸層提供四種類型的傳送服 務如上所述是一可罪的連接服務;可靠的資料元服務;不 可靠的資料元服務;和原始資料元服務。網路層11〇6執行 封包遞迗通過一子網路或多個子網路至終點末端節點。鏈 結層1108執行流量控制,誤差檢查和通過連接器的優先封 包遞送。 實體層111G執行相依技術的位元傳輸。位元或位元組經 由連接器1122,1124和:Π26在實體層之間通過。連接能由 P刷私各鋼線銅纜線,光纖或與其他的適當的連接器一起 實現。 口又針對圖1-11在上描述的SAN環境内操作。本發明 ^供機制用於管理工作和完成佇列於該SAN架構内,其 ,:尾"卩私松益。本發明的描述將會被提供給該工作 和成τ到兩者,為的是要瞭解頭部和尾部指標器是如何 、 用將會被激賞的是下列本發明操作的描述有關 工作和疋成件列是典範的,且修改是可以做到而不離開本 發明的精神和範圍。 工作仔列結構 圖12表不—實例工作佇列,其可以不是一發送佇列就是 022544 -33· (28) 發明說明續頁 一接收佇列。工作佇列1200是由一個或多個頁所組成的, 雖然其他的容量可以使用,但其典型的容量是4 K位元。 在圖12裡的例子中,佇列使用四個頁,第0頁1201,第1頁 1202,第2頁1203,和第3頁1204,其位在系統記憶體12〇5 。選擇WQE的容量以致於WQEs的數目放入一頁中是二的 次方。舉例來說,以一 64位元組的WQE,64 WQEs可以放 入一 4K的頁。在圖12裡的例子中,這將會提供一 256個WQEs 的佇列深度。提供不同的佇列深度可以由改變頁的數目以 組成該工作佇列。該硬體的簡化可利用將頁數為二的次方 ,而仍然維持相當大的彈性於工作佇列大小的選擇。 一工作佇列分頁表(WQPT) 1210被維護,其包含一頁的 列表1215以組成該工作佇列。這可以位於系統記憶體或 HCA記憶體,但是在任一情況下,它的位置被儲存於HCA 1220。對每個工作佇列,HCA維持二個索引給該工作佇列 指標器1230。該第一個,WQPT索引1232,被用來將上述的 WQPT列入索引。在圖12裡的例子中,具有一工作佇列包 含四個頁,WQPT的索引是二位元。該第二個索引是WQ頁 索引1234,其被用來將該工作件列的每個頁編入索引中。 舉例來說,以一 64位元組WQE和 一 4K大小的頁,WQ頁的 索引會是6位元。 對一工作佇列,該CI維持一尾部指標器125〇和該hCA維 持一頭部指標1236。該尾部指標器的維持是由該CI指至位 置於下一個WQE將會置放的工作佇列。頭部指標器的維持 是由該HCA指至位置於下一個WQE將會處理的工作仵列。 -34- 583543 * * (29) 發明說明續頁 該HCA維持WQEs數目的WQE計數器1260於該佇列上,且 提供一設備允許CI增加總數,當一 WQE使用WQE加法器 1262宣告至該佇列。該CI也維持一 WQEs數目的總數1254於 該佇列上。該CI增量它的WQE總數1254—次當它將一 WQE 送入佇列便減一,當WQE被確認已被處理時,從該CQ取回 它相關的CQE。該HCA增加它的WQE 1264是由該CI將數目 寫入WQE加法器1262當該CI將WQEs的數目送入佇列。該 HCA將它的WQE總數1264減一當一 WQE已經被處理。 該WQ的起始狀態是空的,其中該HCA維持的頭部索引 1236是相等於該CI維持的尾部索引1250,以及兩者都參考 該佇列的頂部。除此之外,該HCA和CI兩者所維持的WQE 總數都是零。 完成佇列結構 圖13表示一完成佇列的例子。完成佇列1300由一個或多 個頁所組成,典型的容量是4 K位元組,然而其他的容量 大小能夠被使用。在圖13裡的例子中,該佇列使用位於系 統記憶體1305的四個頁,第0頁1301,第1頁1302,第2頁1303 和第3頁1304。選擇CQE的容量以致於CQEs的數目放入一頁 中是二的次方。舉例來說,以一 64位元組的CQE,64 CQEs 可以放入一 4K的頁。在圖13裡的例子中,這將會提供一 256 個CQEs的佇列深度。提供不同的佇列深度可以由改變頁的 數目以組成該CQ。該硬體的簡化可以使頁數為二的次方 ,而仍然維持相當大的彈性於工作佇列大小的選擇。 一工作佇列分頁表(CQPT) 1310被維護,其包含一頁的列 -35 - 022546 583543 (30) 發明說明續頁 表13 15以組成該CQ。這可以位於系統記憶體或HCA記憶體 ,但是在任一情況下,它的位置被儲存於HCA 1320。對每 個CQ,HCA維持二個索引給該完成佇列指標器1330。該第 一個,CQPT索引1332,被用來將上述的CQPT列入索引。在 圖13裡的例子中,具有一 CQ包含四個頁,CQPT的索引是 二位元。該第二個索引是CQ頁索引1334,其被用來將該CQ 的每個頁編入索引中。舉例來說,以一 64位元組CQE和一 4K大小的頁,CQ頁的索引會是6位元。 對一 CQ,該CI維持一頭部指標器1340和該HCA維持一尾 部指標1338。該頭部指標器1340的維持是由該CI指至位置 於下一個CQE將會處理的完成佇列。該尾部指標器1338的 維持是由該HCA指至位置於下一個CQE將會送入佇列的完 成仵列。 該可用的CQE總數是在該CQ上可使用的空槽數。該HCA 維持一 CQE計數器1360,以及一設備,允許該CI加入可用 的CQE計數1364在一 CQE已經使用可用的CQE加法器1362處 理過之後。該CI將可用的CQE總數1364加一當它處理一 CQE 時。該CI對HCA下指令以寫入一至CQE加法器1362,以執行 這個增量。該HCA將它的可用CQE總數1364減一當一 CQE在 該CQ上被送入佇列。 該CQ的起始狀態是空的,其中該HCA維持的尾部索引 1338是相等於該CI維持的頭部索引1340,以及兩者都參考 該佇列的頂部。除此之外,該HCA維持的可用CQE總數是 等於CQE的最大數目,其能被儲存於該CQ上。 0222A? -36- 583543 (31) 發明說明續頁 詳細的工作請求運算 參照圖14,一流程表依照本發明的較佳具體實施例,說 明一通道介面的運算當用戶宣告一工作請求至一工作佇 列。該程序在收到一工作請求便開始,並且該CI將WQE總 數的CI,s本地拷貝與儲存於該工作佇列的WQEs最大數目 做比較(步驟1402),以檢查工作佇列是否是滿的。如果它 們是相等的,仵列就是滿的’那麼這工作請求不會被接受 直到HCA指出一個或多個wQEs已經藉由宣告一個或多個 CQEs至完成佇列來處理(步驟14〇4)。如果在步驟1402中佇 列不是滿的,該WQE被寫入至由該尾部索引參考的位置( 步驟1406)。 CI建立一 WQE,定義該請求和在該仵列的尾部寫入這個 WQE。該尾部的位置是由該尾部索引所決定的’其是該 WQPT索引和WQ頁索引的組合。進入點該頁内之頁位址和 偏移的組合提供該WQE置放的位址。二者擇一地,如果該 工作彳宁列頁對應至^一鄰近的虛擬位址空間’遠CI可以維持 一 WQ尾部指標器,也就是一虛擬位址,和使用硬體位址 傳輸在該佇列上,儲存WQE於該適當的位置。 該尾部索引然後被增加,以便它參考下一個WQE將會置 放的位置(步驟1408)。該CI然後使用HC A設備,將HC A的 WQE總數加一(步驟1410),以告知該HCA工作佇列上有一 個或多個WQEs需要處理。該WQE總數CI’的本地拷貝也被 增加。之後,該程序結束。 當尾部索引被增加時,如果該頁索引包住,WQPT索?1 0ZZZ48 -37- (32) 發明說明續頁 被增加一。如果WQPT索引包住,工作佇列已經被包至該 佇列的頂端。雖然CI是在檢查和更新該尾部索引和寫入 WQE至該佇列的尾部的程序中,它需要完全鎖住這些資源 ,以防止它們被其他的程序使用。 現在回到圖1 5,一流程表依照本發明的較佳具體實施例 ,說明一主通道配接器的運算。該程序開始和HCA以週期 性檢查WQE總數,監視該工作佇列(步驟1502)。對於WQE 總數是否為零會產生一決定(步驟1504)。如果是零,該佇 列是空的以及程序回到步驟1502以檢查WQE總數。如果在 步驟1504中,WQE總數不是零,會有WQE被處理,以及HCA 傳送訊息的請求。二者擇一地,當CI使用設備於HCA内加 至WQE總數,HCA可以使用這個當做一個指示,這裡有一 WQE需要處理。 當有一個WQE需要處理時,該HCA是以第一個置放包含 WQE的頁來決定的(步驟1506)。這可由使用HCA的頭部 WQPT索引之WQPT編入。該頁内的位置然後根據該WQ頁索 引以及該WQE的大小來決定。 該程序然後傳送訊息(步驟1508)。接收任何需要的回應 以及WQE處理被完成。該HCA增加該頭部索引它自己的拷 貝(步驟1510)。當該頭部索引被增加,如果該頁索引被包 裹,則該WQPT索引被加一。如果WQPT索引被包裹,該工 作佇列已經被包裹至該佇列的頂端。該HCA也將它的WQE 減一。 在WQE處理完成之後,該HCA以寫入一 CQE至該CQ的尾 -38- 022549 (33) 發明說明續頁 部,以通知CI。於CQE内的欄區之一是一有效的位元,其 指示該CI這是一有效的CQE。注意該硬體必須保證所有其 他的攔區於該CQE已經是被寫入的,其不是在有效的位元 被寫入之前,或者同時被寫入的。在寫入CQE之前,HCA 首先以檢查可用的CQE總數不是零,來檢查CQ是不是滿的 (步驟1512)。如果它是零,CQ是滿的,而且該運算在發生 誤差時(步驟1514)被結束。如果CQ在步驟15 12中不是滿的 ,該HCA使用HCA’的尾部CQPT索引決定以第一個置放頁來 儲存CQE的位置(步騾1516)。然後在頁内位置的決定是根 據該CQ頁索引和該CQE的大小,以及該程序寫入cqe至完 成佇列(步驟1518)。該HCA然後增加它的CQ尾部索w ,因 此該CQPT索引可被增加一,如果該頁索引包裹時(步驟 020)。如果該CQPT索引包裹,該CQ尾部已被包裝至該仲 列的頂端。該HCA也將它的可用CQE總數減一(步驟1522) 炎JL結束。 現在回到圖16,一流程表依照本發明的較佳具體實施例 ,説明一通道介面的運算當用戶已經請求工作完成訊息時 。糝序開始並且檢查位於該CQ頭部的CQE是否有它的有效 位元組,以指示它是有效的(步驟16 0 2)。CI然後判定〔q是 否為空(步驟1604)。如果該CQ是空的,該程序結束。如果 在步驟1604中,CQ不為空,CI在該CQ頭部讀取CQE (步驟 005)。這個CQE被該CQ頭部索引結合該CQ分頁表所參考 。二者擇一地,如果該CQ頁對應至一相鄰的虛擬位址空 間,CI可以維持一 CQ頭部指標器,其是一虛擬位址,以及 -39- 022^0 583543 · · (34) 發明說明續頁 使用硬體位址轉譯,以從該CQ上適當的位置取得CQE。該 CQE的内容然後被用來傳回該工作完成訊息至請求的用 戶(步驟1606)。 在CQE被該CI處理之後,CQ頭部索引的增量方式與CI增 加WQ尾部索引的方式相似(步驟1608)。該CI使CQE可以設 定有效位元於該CQE内,以指示非有效性,而讓HCA能再 次使用(步驟1610)。CI然後告知HCA該CQE已經使用HCA設 備被處理,將HCA的可用CQE總數加一(步驟1612)。除此之 外,CI現在可將該WQ WQE的CI拷貝減一,以再利用對應 這個CQE的WQE (步驟1614),而該程序便結束。在該工作 佇列上釋放空間之前,該CI需要執行這個更新的WQE總數 ,以保證有一對應的空間於該CQ上。 雖然CI是在檢查和更新該CQ頭部索引,從佇列的頭部讀 取該CQE,以及重新設定該CQE的有效位元,它需要完全 鎖住這些資源,以防止它們被其他的程序使用。 最佳化 下列各項是於此發明中,對較早描述的基本方法之最佳 化列表: 1) 該CI可以在幾個WQEs已經於該工作佇列上被置放後, 只更新HCA的WQE總數一次,並加上已經宣告的WQE數目 ,來減少對HCA的寫入數目。 2) 該CI可以在幾個WQEs已經從該CQ取回之後,只更新 HCA的可用CQE總數一次,來減少對HCA的寫入數目。在 這情況下,該C A需要提供一機制,以任意增加可用的總 -40- 583543 * (35) 發明說明續頁 數,η,而不是一。 3) 如果該工作佇列或CQ是相鄰於一虛擬位址空間中,CI 可以參考使用虛擬位址和使用硬體位址轉譯機制的佇列 ,以執行儲存或取回。在這情況下,在針對該仵列末端的 虛擬位址所做的存取和檢查以偵測何時一包裹已經發生 之後,用來參考該佇列的虛擬位址會以該WQE或CQE的長 度增加。 4) 對於工作佇列其容納單頁内的,當佇列很小或該頁容 量太大時便可能發生,該WQPT和WQPT的索引可能被消除 。該單頁的實際位址會一直需要被儲存。 5) 對於CQ其容納單頁内的,當佇列很小或該頁容量太大 時便可能發生,該CQPT和CQPT的索引可能被消除。該單 頁的實際位址會一直需要被儲存。 6) 如果該工作佇列位於鄰近的實際記憶體,其可以被CI 和HCA存取的,該WQPT和WQPT的索引可能被消除。 7) 如果該CQ位於鄰近的實際記憶體,其可以被CI和HCA 存取的,該CQPT和CQPT的索引可能被消除。 這是重要的去注意當本發明已在整個功能性資料處理 系統的上下文中被描述,那些原來熟悉於該技藝的人士將 會激賞本發明的程序能分配於電腦可讀取的指令形式和 多種不同的形式和本發明的使用都是相等地,不管是該特 定類型的信號媒體實際上用來實行該分配。該電腦可讀取 媒體的實例包括可記錄型媒體,例如:一軟式磁碟,一硬 式磁碟驅動,一隨機存取記憶體,CD-ROM,DVD-ROM, -41 - 0£2552 583543 (36) 發明說明續頁 和傳輸型媒體,例如:數位及類比通訊連接器,有線或無 線通訊連接器,使用傳輸形式,例如:射頻和光傳輸。該 電腦可讀取媒體可能是用編碼的格式,其被解碼以實際用 於特定的資料處理系統。 本發明的描述是當作證明和描述的目的,而不是想要限 制本發明於已揭露的形式。許多修改和變更對於熟悉於該 技藝的人士會是易於明白的。所選擇和描述的具體實施例 是為了詳加解釋本發明的原則,實際的應用和使其他熟悉 於該技藝的人士能夠了解本發明有各種不同修改的具體 實施例,如同適合於該特殊用途。 022^53

Claims (1)

  1. 583543 拾、申請專利範圍 1. 一種管理一仔列的方法,包含: 在該通道介面内產生一佇列尾部索引; 在一主通道配接器内,產生一佇列頭部索引給該佇列; 在一主通道配接器内,產生一佇列進入點計數給該佇 列;以及 使用該頭部索引,該尾部索引和該佇列進入點計數去 控制該佇列。 2. 如申請專利範圍第1項之方法,其中該佇列是一工作佇 列,以及其中如果該工作佇列是滿的,該佇列進入點 計數被用來做決定。 3. 如申請專利範圍第1項之方法,其中該佇列是一工作佇 列,以及其中該佇列尾部索引被用來決定一工作佇列 内的位置,在此一工作佇列進入點可以被該通道介面 寫入。 4. 如申請專利範圍第1項之方法,其中該佇列是一工作佇 列,以及其中該佇列頭部索引被用來決定一工作佇列 進入點是該主通道配接器要處理的。 5. 如申請專利範圍第1項之方法,其中該佇列是一工作佇 列,以及其中如果該工作佇列是空的,該佇列進入點 計數被用來做決定。 6. 如申請專利範圍第1項之方法,其中該佇列頭部索引是 由一佇列指標器表格索引和一佇列頁索引所組成。 7 .如申請專利範圍第1項之方法,其中該佇列是一工作佇 -43- 583543 ·, 申請專利範圍續頁 歹1J ,以及其中控制該佇列包括: 決定該工作彳宁列是否是滿的;以及 如果該工作佇列不是滿的,則接受一工作請求。 8. 如申請專利範圍第7項之方法,其中接受該工作請求包 括: 寫入一工作佇列進入點,對應至該工作佇列的一位置 中的工作請求,其被該佇列尾部指標器辨別; 增加該佇列尾部指標器;以及 增加該佇列進入點計數。 9. 如申請專利範圍第8項之方法,其中不執行更新該佇列 進入點計數給該佇列尾部指標器的每一個增量。 10. 如申請專利範圍第1項之方法,其中該佇列是一工作佇 列,以及其中控制該佇列包括: 決定該工作佇列是否是空的; 在該主通道配接器中,如果工作佇列不是空的,則處 理對應至該佇列頭部索引的一工作佇列進入點,以及 在完成處理該工作佇列進入點之後,宣告一完成佇列 進入點至一完成佇列。 11. 一種管理一仔列的方法,包含: 在該通道介面内產生一佇列頭部索引; 在一主通道配接器内,產生一佇列尾部索引給該佇列; 在一主通道配接器内,產生一可用佇列進入點計數給 該佇列;以及 使用該頭部索引,該尾部索引和該可用佇列進入點計 -44- 583543 · · 申請專利範圍續頁 數去控制該佇列。 12. 如申請專利範圍第11項之方法,其中該佇列是一完成佇 列,以及其中該佇列頭部索引是用來辨別將被該通道 介面處理的完成佇列進入點。 13. 如申請專利範圍第11項之方法,其中該佇列是一完成佇 列,以及其中如果該完成佇列是空的,該可用佇列進 入點計數被用來做決定。 14. 如申請專利範圍第11項之方法,其中該佇列是一完成佇 列,以及其中如果該完成佇列是滿的,該可用佇列進 入點計數被用來做決定。 15. 如申請專利範圍第11項之方法,其中該佇列是一完成佇 列,以及其中佇列尾部索引被用來辨別該完成佇列内 的位置,在此該完成佇列進入點可以被寫入。 16. 如申請專利範圍第11項之方法,其中該佇列尾部索引是 由一佇列指標器表格索引和一佇列頁索引所組成。 17. 如申請專利範圍第11項之方法,其中該佇列是一完成佇 列,以及其中控制佇列包括: 決定完成佇列是否是滿的;以及 寫入一完成佇列進入點至該完成佇列的一位置,其被 該佇列尾部指標器辨別如果該完成佇列不是滿的。 18. 如申請專利範圍第17項之方法,其中該佇列是一完成 仔列,以及其中控制仔列包括: 決定完成fp列是否是2的;以及 如果該完成佇列不是空的,處理被該佇列頭部索引辨 -45 - 583543 * · 申請專利範圍續頁 別的完成佇列進入點。 19. 一種於一電腦可讀取媒介中管理一佇列的電腦程式產 品,包含: 指令在該通道介面内,產生一彳宁列尾部索引; 指令在一主通道配接器内,產生一佇列頭部索引給該 仔列; 指令在一主通道配接器内,產生一佇列進入點計數給 該佇列;以及 指令使用該頭部索引,該尾部索引和該佇列進入點計 數去控制該仔列。 20. 如申請專利範圍第19項之電腦程式產品,其該佇列是 一工作佇列,以及其中如果該工作佇列是滿的,該佇 列進入點計數被用來做決定。 21. 如申請專利範圍第19項之電腦程式產品,其中該佇列 是一工作佇列,以及其中如果該工作佇列是空的,該 可用佇列進入點計數被用來做決定。 22. 如申請專利範圍第19項之電腦程式產品,其中該佇列 是一工作佇列,以及其中指令用以控制佇列包括: 指令以決定工作佇列是否是滿的;以及 指令以接受一工作請求如果該工作佇列不是滿的。 23. 如申請專利範圍第22項之電腦程式產品,其中該接受 工作請求的指令包括: 指令寫入一工作仵列進入點,對應至該工作彳宁列的一 位置中的工作請求,其被該佇列尾部指標器辨別; 02255? -46- 583543 · · 申請專利範圍續頁 指令增加該佇列尾部指標器;以及 指令增加該佇列進入點計數。 24. 如申請專利範圍第23項之電腦程式產品,其中該佇列 進入點計數不對該佇列尾部指標器的每個增量做更新。 25. 如申請專利範圍第19項之電腦程式產品,其中該佇列 是一工作佇列,以及其中指令用以控制佇列包括: 指令決定工作佇列是否是空的; 在該主通道配接器中,如果工作佇列不是空的,則指令 處理對應至該佇列頭部索引的一工作佇列進入點,以及 在完成處理該工作佇列進入點之後,指令宣告一完成 佇列進入點至一完成佇列。 26. —種於一電腦可讀取媒介中管理一佇列的電腦程式產 品,包含: 指令在該通道介面内,產生一仵列頭部索引; 指令在一主通道配接器内,產生一佇列頭部索引給該 佇列; 指令在一主通道配接器内,產生一可用佇列進入點計 數給該佇列;以及 指令使用該頭部索引,該尾部索引和該可用佇列進入 點計數去控制該佇列。 27. 如申請專利範圍第26項之電腦程式產品,其中該佇列 是一完成佇列,以及其中如果該完成佇列是空的,該 可用佇列進入點計數被用來做決定。 28. 如申請專利範圍第26項之電腦程式產品,其中該佇列 是一完成佇列,以及其中如果該完成佇列是滿的,該 •47· 583543 申請專利範圍續頁 可用佇列進入點計數被用來做決定。 29. 如申請專利範圍第26項之電腦程式產品,其中該佇列 是一完成佇列,以及其中指令用以控制佇列包括: 指令決定完成佇列是否是滿的;以及 指令寫入一完成佇列進入點至該完成佇列的一位置 ,其被該佇列尾部指標器辨別如果該完成佇列不是滿的。 30. 如申請專利範圍第29項之電腦程式產品,其中該佇列 是一完成仔列,以及其中指令用以控制仵列包括·· 指令決定完成佇列是否是空的;以及 如果該完成佇列不是空的,指令處理被該佇列頭部索 引辨別的完成佇列進入點。 31. —種管理一工作佇列的裝置,包含: 一通道介面;以及 一主通道配接器耦合至該通道介面,其中該通道介面 包括一佇列尾部索引給該佇列,該主通道配接器包括一 佇列頭部索引給該佇列和一佇列進入點計數給佇列,以及 其中主通道配接器和通道介面使用該頭部索引,該尾 部索引和該佇列進入點計數去管理該佇列。 32. —種管理一完成佇列的裝置,包含: 一通道介面;以及 一主通道配接器槁合至該通道介面,其中該通道介面 包括一佇列頭部索引給該佇列,該主通道配接器包括一 佇列尾部索引給該佇列和一佇列進入點計數給佇列,以及 其中主通道配接器和通道介面使用該頭部索引,該尾 部索引和該佇列進入點計數去管理該佇列。 -48-
TW091121511A 2001-09-24 2002-09-19 Infiniband work and completion queue management via head only circular buffers TW583543B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/961,900 US20030058875A1 (en) 2001-09-24 2001-09-24 Infiniband work and completion queue management via head only circular buffers

Publications (1)

Publication Number Publication Date
TW583543B true TW583543B (en) 2004-04-11

Family

ID=25505164

Family Applications (1)

Application Number Title Priority Date Filing Date
TW091121511A TW583543B (en) 2001-09-24 2002-09-19 Infiniband work and completion queue management via head only circular buffers

Country Status (3)

Country Link
US (1) US20030058875A1 (zh)
JP (1) JP2003216592A (zh)
TW (1) TW583543B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020167902A1 (en) * 2001-04-27 2002-11-14 Foster Michael S. Method and system for performing security via virtual addressing in a communications network
US7200144B2 (en) * 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US7447197B2 (en) * 2001-10-18 2008-11-04 Qlogic, Corporation System and method of providing network node services
US7310345B2 (en) * 2001-11-01 2007-12-18 International Business Machines Corporation Empty indicators for weighted fair queues
US20030101158A1 (en) * 2001-11-28 2003-05-29 Pinto Oscar P. Mechanism for managing incoming data messages in a cluster
US20080008202A1 (en) * 2002-10-31 2008-01-10 Terrell William C Router with routing processors and methods for virtualization
US7024613B2 (en) * 2003-02-06 2006-04-04 International Business Machines Corporation Method and apparatus for implementing infiniband transmit queue
US7212547B2 (en) * 2003-02-06 2007-05-01 International Business Machines Corporation Method and apparatus for implementing global to local queue pair translation
US7512143B2 (en) * 2003-10-16 2009-03-31 International Business Machines Corporation Buffer management for a target channel adapter
US8055818B2 (en) * 2004-08-30 2011-11-08 International Business Machines Corporation Low latency queue pairs for I/O adapters
US7356625B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation Moving, resizing, and memory management for producer-consumer queues by consuming and storing any queue entries from an old queue before entries from a new queue
US7437447B2 (en) * 2004-11-12 2008-10-14 International Business Machines Corporation Method and system for authenticating a requestor without providing a key
US7860930B2 (en) * 2006-12-19 2010-12-28 International Business Machines Corporation Communication between host systems using a transaction protocol and shared memories
JP5598493B2 (ja) 2012-03-30 2014-10-01 富士通株式会社 情報処理装置、演算装置および情報転送方法
JP7010129B2 (ja) * 2018-04-19 2022-01-26 富士通株式会社 プロセッサ及び情報処理装置
CN117280674A (zh) * 2021-06-18 2023-12-22 华为技术有限公司 用于远程直接内存访问的设备和方法
US11880593B2 (en) * 2021-08-13 2024-01-23 Samsung Electronics Co., Ltd. Host, operating method of host and storage system
WO2023147440A2 (en) * 2022-01-26 2023-08-03 Enfabrica Corporation System and method for one-sided read rma using linked queues
US20230289297A1 (en) * 2022-03-14 2023-09-14 Samsung Electronics Co., Ltd. Systems and methods for managing memory utilization

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6170003B1 (en) * 1993-08-10 2001-01-02 International Computers Limited Apparatus and method for communicating messages between data processing nodes using remote reading of message queues
US5671365A (en) * 1995-10-20 1997-09-23 Symbios Logic Inc. I/O system for reducing main processor overhead in initiating I/O requests and servicing I/O completion events
US6006292A (en) * 1997-03-13 1999-12-21 Adaptec, Inc. Method of managing hardware control blocks utilizing endless queue maintained to never be empty and containing tail pointer only accessible by process executing on system processor
US5905905A (en) * 1997-08-05 1999-05-18 Adaptec, Inc. System for copying IOBS from FIFO into I/O adapter, writing data completed IOB, and invalidating completed IOB in FIFO for reuse of FIFO
US6609161B1 (en) * 2000-06-01 2003-08-19 Adaptec, Inc. Two-dimensional execution queue for host adapters

Also Published As

Publication number Publication date
JP2003216592A (ja) 2003-07-31
US20030058875A1 (en) 2003-03-27

Similar Documents

Publication Publication Date Title
TW583544B (en) Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries
TW583543B (en) Infiniband work and completion queue management via head only circular buffers
US7283473B2 (en) Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network
US7095750B2 (en) Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts
US7493409B2 (en) Apparatus, system and method for implementing a generalized queue pair in a system area network
US6748559B1 (en) Method and system for reliably defining and determining timeout values in unreliable datagrams
US7165110B2 (en) System and method for simultaneously establishing multiple connections
EP1399829B1 (en) End node partitioning using local identifiers
US6578122B2 (en) Using an access key to protect and point to regions in windows for infiniband
US7555002B2 (en) Infiniband general services queue pair virtualization for multiple logical ports on a single physical port
US20030061296A1 (en) Memory semantic storage I/O
US8370447B2 (en) Providing a memory region or memory window access notification on a system area network
US20030023786A1 (en) Apparatus and method for managing work and completion queues using head and tail pointers
US6834332B2 (en) Apparatus and method for swapping-out real memory by inhibiting i/o operations to a memory region and setting a quiescent indicator, responsive to determining the current number of outstanding operations
US20050018669A1 (en) Infiniband subnet management queue pair emulation for multiple logical ports on a single physical port
US20030050990A1 (en) PCI migration semantic storage I/O
US7092401B2 (en) Apparatus and method for managing work and completion queues using head and tail pointers with end-to-end context error cache for reliable datagram
US6978300B1 (en) Method and apparatus to perform fabric management
US20030093627A1 (en) Open format storage subsystem apparatus and method
US20030018828A1 (en) Infiniband mixed semantic ethernet I/O path
US20020073257A1 (en) Transferring foreign protocols across a system area network
US20130191548A1 (en) Processing STREAMS Messages Over a System Area Network
US6950945B2 (en) Apparatus and method for intersystem lock optimization
JP2004506980A (ja) コンピュータネットワークを介してブロックレベルストレージアクセスを提供するためのアーキテクチャ
US20020198927A1 (en) Apparatus and method for routing internet protocol frames over a system area network

Legal Events

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