TWI234371B - A method of performing iSCSI commands and a data processing system using the method - Google Patents

A method of performing iSCSI commands and a data processing system using the method Download PDF

Info

Publication number
TWI234371B
TWI234371B TW092117094A TW92117094A TWI234371B TW I234371 B TWI234371 B TW I234371B TW 092117094 A TW092117094 A TW 092117094A TW 92117094 A TW92117094 A TW 92117094A TW I234371 B TWI234371 B TW I234371B
Authority
TW
Taiwan
Prior art keywords
iscsi
instruction
queue
scope
package
Prior art date
Application number
TW092117094A
Other languages
English (en)
Other versions
TW200404430A (en
Inventor
William Todd Boyd
Douglas J Joseph
Michael Anthony Ko
Renato John Recio
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
Publication of TW200404430A publication Critical patent/TW200404430A/zh
Application granted granted Critical
Publication of TWI234371B publication Critical patent/TWI234371B/zh

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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Description

1234371
相關申請案: 本申請案與專利中請案案號,、「 RDMA功能的網路卡所用的記憶體管 —二―名為具有 MANAGEMENT OFFLOAD FOR RDMA ENABLED NETWORK A D A P T E R S)」的中請案相關,係於同一过、 受讓人,在此並引為參考。 ❺並讓渡給同一 一、【發明所屬之技術領域】 本發明係與主電腦與輸入/輪出(1/〇)裝置之
通訊協定有關’特別是本發明提供一方 ' +A ^rTr. . . j疋伞知乃杈供方法,透過傳輸控制 協疋(Transmisslon control prot〇c〇1,Tc 記憶體存取(Remote Direct Memory Access,以下 RDM),使得仵列對(Queue Pair)資源可用來執行網際_ 小型電腦糸統介面(以下簡稱為iSCSl)儲存協定。 -一、【先别技術】 在網際網路協定(以下簡稱為][P)網路中,軟體提供一 套訊息傳遞機制,用來與輸入/輸出裝置、一般用途電腦 =ost)、以及特定用途電腦溝通。訊息傳遞機制由傳輸協 定(transport protocol)、上層協定(upper level protocol )以及應用程式介面組成。目前用於Ip網路中最關 鍵的傳輸協定標準為傳輸控制協定(Transmissi〇n cQntrQl Protocol,簡稱為TCP)以及使用者資料元協定(user Datagram Protocol,簡稱為UDP),TCP提供可靠的服務,
第7頁 1234371 五、發明說明(2) 而U D P提供不可靠的服務,未來還有串流控制傳輸協定 (Stream control transmission protocol,簡稱為SCTP) 可用來提供可靠的服務。裝置或電腦所執行的程序 (process)透過上層協定,比如說套接層(s〇ckets)、 i S C S I、以及直接存取播案系統(D A F S)來存取網際網路協定 網路。 然而傳輸控制協定/網際網路協定(transniissic)n control protocol/internet protocol,以下簡稱為
T C P / I P ) I人體會耗費相當的處理器與記憶體資源,這個問題 被廣泛的討論(參考j.Kay,J.Pasquale於IEEE/ACM Transactions on Networking,第4 卷第6 期817 至828 頁發 表的「研究與降低TCP/IP處理負擔(profiling and reducing processing overheads in TCP/IP),以及d.d Clark’ V· Jacobson,J·Romkey,H·Sal wen 於1 989 年6 月 IEEE通訊雜誌、第27卷第6期23至29頁發表的「分析Tcp/Ip 處理負載(An analysis 〇f TCP processing
overhead)」。在未來,網路堆疊(netw〇rk以“。會繼續 4耗過量的資源,其中有下列幾項原因:網路應用增加、 2網路安全協定、還有基礎的交換網路頻寬成長速度比 2理器與記憶體的頻寬成長速度要快等。為了解決這個 3 Ϊ敬業界將網路堆疊處理工作轉交由網際網路協定組卸 (IP Suite 〇ffi〇ad Engine,簡稱為 Ips〇E)處理。
第8頁 1234371 五、發明說明(3) 業界有兩種卸載的方法,第一種採用現有的Tcp/丨p網 路堆:!: ’而不增加;§員外的協定’這種方法可以將T c p / I p卸 載給硬體,但不幸的是,無法忽視接收端複製(c〇py)的需 求,在上述論文中,複製是影響CPU使用量最大的原因之 一,為了要減少複製的需求,業界正研究第二種方法,其 中包含在TCP和SCTP協定上加上框架化(Framing)、直接資 料放置(Direct Data Placement, DDP)以及遠端直接記憶 體存取(Remote Direct Memory Access,RDMA)。用來支援 這兩種方式的I P S 0 E相似’主要不同點在於採用第二種方法 的硬體必須支援額外的協定。 I PS0E提供一節點間訊息傳遞機制,供套接層 (Sockets)、iSCSI以及直接存取檔案系統使用。胃在主電腦 或裝置上執行的程序,利用發布傳送/接收的訊息給Ips〇E 上的傳送/接收工作佇列的方式,以存取丨p網路,這些程 序又可稱為「消費者(consumer)」。 —
指定給一個消費者的傳送/接收工作佇列(w〇rk queue,WQ),被稱為一個佇列對(Queue pair,Qp)。訊息 可以透過成種不同的傳輸類型遞送:傳統傳輸控制協定 (TCP)、RDMA TCP、使用者資料元協定(UDp)、與串流控制 傳輸協疋(SCTP)。消費者透過IPS0E的傳送與接收工作完成 (WC)佇列,從完成佇列(completl〇n queue,CQ)取回訊息 的結果,來源IPS0E則負責分割向外傳送的訊息,將它們送 mf
III 111 1234371 五、發明說明(4) 往目的地。目的地IPSOE負責重新組合接收到的訊息,把它 們放在目的地的消費者所指定之記憶體空間内,這些消費 者利用IPSOCIP Suite Offload)的動詞(verbs)介面存取 IPS0E所支援的功能,解譯動詞和直接存取1?§〇£的軟體稱 為IPSO介面(簡稱為IPS0I)。 目鈾主機的CPU (中央處理單元)執行大多數的丨p協定 組處理工作。IPS0E在聯繫其他一般用途電腦與1/()裝置上 提供較高的效能,不過我們需要一個簡單的機制讓Ips〇E内 的硬體機制可以解譯iSCSI指令,處理iscsi指令, iSCSI指令的完成結果。 ^ 三、【發明内容】 f f Γ提供一種1 SCSI驅動程式(driVer)銜接網際網路 卸載引擎(IP Suite Gfflc)ad Engine,ips 理=式產品以及分散式資料處理系、统。分散式 貝枓處理糸統包含端點、交換器、路由器以及交互 件:m端點採用傳送與接收佇列對來傳送與接收 路息切割為訊框(frame)並透過連線傳送。交換 :地的端點並將訊框轉送到合適的端點,目、 7而點再重新組合訊框成為訊息。 本發明提供一機 i S C S I指令、並解譯i 制讓IPSOE可以解譯iSCSi指令、處理 SCS I指令的完成結果。透過本發明所 1234371 五、發明說明(5) ,不的機制,IPSOE可以卸載主電腦cpu的以以丨作用,讓更 夕的CPU資源可以用在執行應用軟體上。 四、【實施方式】 π本發明揭示的分散式運算系統具有端點(endnode)、交 θ路由°。以及供乂互連接前述元件的連線。端點可 二二=路協定組卸載引擎(IP Suite 〇ffload _ 點利用ί Τ以主機軟體為主的網際網路協定組。每-端 ^ 傳达人接收佇列對來傳送訊息,並將訊息切割為訊 二過連線傳送’交換器與路由器交互連接端 : 到合適端點,然後目的地之端點再將訊 框重新組合為訊息。 Τ 中所^ i矣為沾明的一個較佳實施例的分散式電腦系統。圖 二所=表的,政式電腦系統採網際網路協定網路(IP網 本笋明二的形式,在此僅供參考’而以下所敘述的 二各種不同形式與型態的電腦系統加 貝„ 牛來°兒,貫施本發明的電腦系統可以是單一處 J有輸入,輸出(1/〇)轉接器的小伺服器,乃至 轉接器的大規模平 路(intranet)連接的L J :月可f ”際網路或内部網 /巧按的遢端電腦系統中實施。 IP網路100是位於分散式電腦系統 (n〇de)的高頻寬、低潛時(low-latenc 交互連結節點 網路,節點是任何
第11頁 1234371 明說明(6^ ' 1 ~一 -----— 多個網路連線的元件(c〇mp〇nent),並形成網路中 包二t ::以及/或目的地。在所述的範例中,IP網路100 =各主機處理器節點102、主機處理器節點1〇4,以及容錯 ^Λτ獨立磁碟陣列(redundant array independent disk,曰 D )认系統節點丨〇 6等形式的節點。圖j所示的節點僅供參 ¥ ΐ中1p網路1 〇〇可以連接任意數目與任意型態的獨立處 时節·、沾任個節點都可以作為端點(en(jnode ),在此定 義為可以產生或最終接收Ip網路1〇〇中的訊息或訊框的裝 長在本發明的一實施例中,分散式電腦系統具有錯誤處 理機制(error handling mechanism),讓分散式電腦系 統’如IP網路1 〇〇中的端點,可以利用Tcp或%丁?進行通 訊。 在此所指的訊息(message),是由應用定義 (application-defined)的資料交換單元,是合作過程中通 訊的原始單位。訊框則是網際網路協定組(Interne1:
Protocol Suite)標頭(header)以及 / 或者檔尾(trailer) 所封裝的資料單元,一般來說,標頭提供控制與路由資 訊’用以指示訊框通過I p網路1 〇 〇,檔尾則包含控制與循環 冗餘檢查(cyclic redundancy check, CRC)資料,用以確 認所傳遞的訊框的内容是否損壞。
第12頁 1234371 五、發明說明(7) 在分散式電腦系統中,I P網路1 0 0包含通訊與管理架構 供支援各種形式的流量(t r a f f i c),比如說儲存、内部程序 通訊(interprocess communication,IPC)、標案存取以及 套接層(sockets)通訊。圖1中的IP網路1 〇〇包含交換式通訊 結構(switched communications fabric)116,讓許多裝置 在安全、遠端管理的環境中同時以高頻寬與低潛時的特性 傳輸資料。端點可經由多個埠通訊,並採用丨p網路交換結 構(IP net fabric)中的多重路徑,其中在ip網路交換結構 中的多重埠與路徑可提供容錯與更多的資料傳輸頻寬。 圖1的IP網路100包含交換器112、交換器ι14以及路由 器1 1 7。路由器是連接多重連線的裝置,利用第二層目的地 位址攔位(layer 2 destination address field)讓訊框從 一個連線移動至另一連線。當連線是乙太網路(Ethernet) 時,目的地攔位為媒體存取控制(Media Access c〇ntr〇1 簡稱為MAC)位址。路由器是以第三層目的地位址攔位進行 汛框路由的哀置,§第二層協定(layer 3 pr〇t〇c〇i)為ip 時,目的地位址欄位為IP位址。 #
在一貫施例中,連線是介於任意兩個網路結構要 間,比如說端點、交換器或路由器之間的全雙工通道工 duplex channel),適合作為連線的範例包括但不限於銅 線、光纖、背板上的印刷電路銅線線跡(trace)以及印刷 路板等。
1234371 五、發明說明(8) 在可靠的服務類型(TCP與SCTP )中,類似主處理器端 點與I/O轉接器端點這類的端點,產生要求(request)訊框 並回傳確認(acknowledgment)訊框,交換器與路由器則從 來源一路傳遞訊框至目的地。 在圖1所示之I P網路1 〇 〇中,主機處理器節點丨〇 2、主機 處理器節點104以及RAID次系統節點106至少包含IPS0E,用 以銜接IP網路1 00。在一實施例中,每一 IPS〇E是一結束點 (endpoint),以充分的細節實施ips〇I,提供或丟棄 (source or sink)在IP網路交換結構1〇〇上所傳送的訊框。 主機處理器102包含主機IPS0E(host IPS0E)118與IPS0E 120等形式,主機處理器節點1〇4包含IPS0E 122與IPS0E 124,主機處理器節點1〇2同樣包含中央處理器單元(CPU) 126至130,以及由匯流排系統134所連結的記憶體132,主 機處理器節點104同樣地包含中央處理器單元(CPU) 136至 140,以及由匯流排系統144所連結的記憶體142。 網際網路協定組卸載引擎11 8提供連結至交換器11 2, 其中IPS0E 124提供連結至交換器114,而IPS0E 120與122 提供連結至交換器11 2與11 4。 在一實施例中,I PS0E為硬體或是硬體加上卸載微處理 器(offload microprocessor) ^ is. ^ ,在 Jt f青況下,網際
第14頁 1234371 五、發明說明(9) 網路協定組(IP sui te)的處理工作由IPSOE處理,此方式可 允許在交換網路上同時多重通訊,避免通訊協定所產生的 傳統流量負擔(overhead)。在一實施例中,圖1所示的· I PS0E與I P網路1 0 0為分散式電腦系統的消費者提供零處理 IM复製(zero processor-copy)資料傳輸,而不會牽涉到作· 業系統核心程序,並且利用硬體提供可靠、容錯的通訊。 、如圖1所示,路由器117透過廣域網路(WAN)以及/或者 區域網路(LAN)的連線銜接至其他主機或其他路由器。 例中,圖1的1^10次系統節點106包含處理器168 冗憶體170、IPS〇E 172、以及多重冗餘(multlple 二dundant )以及/或者條狀儲存磁碟機單元 storage disk unit)174 〇 i F網路1 0 0管理儲存、内部處 套接層(sockets)的資料通訊。Ip網路^ ^播案存取以- 序,直接存取網路通訊元件使= 業系統核心程 定的IPS0E。IP網路1〇〇適合現 執行訊息傳遞協 各種新型儲存、叢集以及一般網;板型,而且可以作為 外,圖1的1P網路10。可以讓儲存節=建構方塊。此 J何或所有分散式電腦系統内 理:通訊,或者與 存裝置接上IP網路100,此儲存節。。即點通訊,一旦儲 * 土本上就擁有與I p網5; 1234371 五、發明說明(ίο) ^ 1 0 0中任何主機處理器節點相同的通訊能力。 在一實施例中,圖1的I p網路1 〇 〇支援通道語意 (channel semantics)與記憶體語意。通道語意有時指傳送 /接收或推播(push)通訊作業,通道語意是應用在傳統1/〇 通道的通訊型態,其中來源裝置推播資料,而目的地裝置 決定資料的最終目的地。在通道語意中,從來源程序 (source process)傳送的訊框會標明目的地程序 (destination process)的通訊埠,但不會標明訊框合 目的地程序的那一個記憶體空間中,因此,在通道語曰棄·、 =二目,地私序預先分配(pre — all〇cate)傳送的資料要 直在何處。 在記憶體語 目的地程序的虛 衝器(b u f f e r )聯 傳輸。因此,在 地程序之目的地 意中,目的地程 ί源程序直接讀取或寫入遠端節點 炊要卡次2通编目的地程序只需要向緩 記憶體;意m要::到任何資料的 緩衝記憶體位址的資料 的 序先前就允許來源’在§己憶體語 丁水原私序存取它的記憶體。 通道語意與 一般網路通訊上 體語意的組合。 範例中,主機處 理器節點,比如* a、、、先中所不的儲存作業 主機處理器節點102利用通
第16胃 石己憶體語意兩者美太η 必備的。典型的二t疋儲存、叢集以及 在FM \ Μ 存作業採用通道盘記情 在圖1的分散式電 一 、。匕隱 !234371
=浯意傳送磁碟寫入指令給RAID次系 動儲存作業。ΡΑΤΠΑβ 几^ 172,以啟 技^ ^ 乂系統檢查指令,並使用記憶五音吉 =取主械處理态即點的記憶體空間中的資料 一 一璜取資料緩衝器後,RAI d -欠车續利用、畜、音^ ^ 时 成心(C〇mpletl〇n message)回主機處理器節點。
在一貫施例中,圖丨的分散式電腦系統執行的作 二,位址與虛擬記憶體保護機制,以確保能夠正確盥適者 ::子取所有記憶體。在這種分散式電腦系統中所執;的; 用並不需要在每個作業都用到實體定址。 圖2為根據本發明一較佳實施例的主電腦處理器節點的 功能方塊圖,主機處理器節點2〇〇是主機處理器節點,如间 圖1中的主機處理器節點i 〇 2。 σ ° 在此例中,圖2所示的主機處理器節點2〇〇包含一組消 費者2 02至208,是主機處理器節點20 0所執行的程序,主機
處理器節點200並包含IPSOE 210與212,IPSOE 210包含埠^ 214與216,而IPSOE 212包含埠218與220,每一埠連接—連 線。這些埠可以連接至一個子網路(s u b n e t)或多個I ρ網路 的子網路,例如圖1的IP網路1 〇 〇。 消費者2 0 2至2 0 8透過動詞介面2 2 2以及訊息暨資料服$ 2 24傳輸訊息,動詞介面實際上是抽象地描述ipsoe的功
第17頁 1234371 五、發明說明(12) 能’作業系統也許會透過它的程式化介面公開一部分或所 有的動詞功能’基本上,這個介面定義主機的行為。此 外,主機處理器節點2〇〇包含訊息暨資料服務224,其為動 詞層以上的階層,係用來處理Ips〇E 210與IPSOE 212所收, 到的訊息與資料,訊息暨資料服務224提供消費者202至208 · 用以處理訊息及其它資料的介面。 圖3 A為根據本發明的一個較佳實施例所述之I pS〇E,圖 3A 的 IPSOE 300A 包含一組符列對(queue pair,Qp) 3〇2A 至 31 0A,係用來傳輸訊息至ipsoe埠31 2A至31 6A,傳送給 < IPS0E埠312A至316A的資料是透過網路層的服務品質欄位 (quality of service field),比如說在網際網路協定第6 版本(IP Version 6)規格中的(Traffic Class)攔位318A 至 3 3 4 A加以緩衝。每一網路層的服務品質攔位都有自己的流 量控制,網際網路任務工程小組(Internet Engineering Task Force, IETF)的標準網路協定係用來配置所有連接網 路的I PS0E的連線與網路位址,其中有位址解析協定 (Address Resolution Protocol, ARP)以及動 ϋ 主機酉己置 協定(Dynamic Host Configuration Protocol, DHCP)兩 種。記憶體轉譯與保護(Memory translation and protection,MTP)338A是轉譯虛擬位址為實體位址、並驗 證存取權限的機制。直接記憶體存取(DMA) 34 0A利用記憶體 350A以及佇列對302A至310A提供直接記憶體存取的作業。
第18頁 1234371 五、發明說明(13) --- 像是圖3A所示的單一 ipS0E 3〇〇A可以支援數千個佇列 對,每一佇列對包含一傳送工作佇列(send w〇rk queue, SWQ)以及一個接收工作佇列(receive w〇rk queue,㈣㈨ 傳送工作佇列係用來傳送通道與記憶體語意訊息,接收工 作佇列接收通道語意訊息。消費者呼叫作業系統 式化介面,在此指的是動詞(verb),將工作要求 request,WR)放置到工作佇列上。 圖3B為根據本發明的一個較佳實施例所描述的交換器 300B,父換裔3 0 0B包含訊框中繼(frame relay)3〇2B,其透 過連線或網路層服務品質攔位如網際網路第4版本(ιρ version 4)的服務型態攔位3〇6β以連接複數個埠3〇“,一 般來說,像是交換器3 0 0B這類的交換器可以把訊框從一個 埠遞送到任何一個在同一交換器上的谭。 同樣地,圖3C為根據本發明的一個較佳實施例所示 路由器30 0C,路由器3〇〇c包含訊框中繼3〇2c,盆透過網路 層服務品質欄位如網際網路第4版本(Ip versi〇n 型態欄位30 6C以連接複數個埠3〇4C,路由器3〇(^和交換器务 300B —樣,一般可以把訊框從一個埠遞送到 同》
一路由器上的埠。 』 ,牧|〇J 圖4為根據本發明的一個較佳實施例之處理工 圖表。在圖4中,接收工作p 衣的 伐叹工丁列4 〇 〇、傳达工作佇列4 〇 2以及 1234371 五、發明說明(14) 完成件列(completion queue)404用來處理與消費者4〇β往 來的要求。來自消費者406的要求最後會送到硬體4〇8。此 例中,消費者4 06產生工作要求4 10與412與接收工作完成 4 1 4,如圖4所示,放置在工作佇列上的工作要求被稱為工 作仵列要件(work queue element, WQE)。
— 傳送工作佇列402包含描述要傳送給ip網路交換結構的 資料的工作佇列要件(WqE)422 S428,接收工作佇列4〇()包 含^作符列要件(WQE)416至420,用以描述如何將來自IP網 路父換結構的通道語意資料放置於何處。硬體4〇8在Ips〇E 處理工作彳宁列要件。 而動詞同樣也提供一機制供從完成佇列4〇4取回完成t 作如圖4所示’完成佇列4 0 4包含完成佇列要件 (completion queue element, CQE)43〇 至 436,直中完成 乂含先前完成的工作佇列要件的資訊,此、外,完成 :„為了多個佇列對,提供單-的完成通知點,而: ^ I ', ^是完成佇列上的資料結構,此一要件描述了已
3佇列ί件。完成佇列要件包含足夠的資訊可判 及已完成的特定工作佇列要件。完成佇列内容 :产=疋一訊息方塊’其中包含指標(P〇inters)以指' 長度以及其他管理個別完成符列所需的資訊。 支援傳送 作件列402的工作要求範例如圖4所示 傳
1234371 五、發明說明(15) 送工作要求是一通道語意作業,用以推播一組本地的資料 £ Ί又(d a t a s e g ni e n t )至退:^而郎點的接收工作仔列要件所才气 示的資料區段。舉例來說,工作佇列要件428參照第4資才$ 區段438、第5資料區段440以及第6資料區段442,每一傳送 工作要求的資料區段包含虛擬連續記憶體區域的一部分, 而用來參照本地資料區段的虛擬位址是在產生本地佇列對 的程序的位址内容中。 遠端直接記憶體存取(remote direct memQ:fy aeeess> RDMA)之讀取工作要求(read work reqUest)提供記憶體語 思作業,以磧取运端節點上的虛擬連續記憶體空間。記憶 體空間(memory space)可以是記憶體區域(mem〇ry regi〇n) 或是記憶體區間(memory window)的一部分,記憶體區域參 照先前註冊過、由虛擬位址與長度所定義的一組虛擬連續 d丨思體位址’兄憶體區間參照一組虛擬連續記憶體位址, 由先如已$主冊的區域所定義。 RDMA之讀取工作要求讀取遠端端點上的虛擬連續記憶 體空間’並且將資料寫入本地的虛擬連續記憶體空 間。RDMA之讀取工作佇列要件用以參照本地資料區段所用 的虛擬位址疋在產生本地作列對的程序的位址内容中,這 點和傳迗工作要求的作業類似,遠端虛擬位址則是在擁有 遠端仔列對的程序的位址内容中,而此遠端佇列對則是由 RDMA之讀取工作仔列要件對應。 1234371 五、發明說明(16) RDMA之寫A工作4宁列要件提供記憶體語意㈣,以寫 入遠端節點上的虛擬連續記憶體空間。舉例來說,在接收 工作仔列400中的工作仵列要件416參照第丨資料區段⑷、 第2資料區段446以及第3資料區段448。RDMA之寫入工作佇 列要件包含本地虛擬連續記憶體空間的分散清單(scatter 1 ist),以及本地記憶體空間要寫入的遠端記憶體空間的虛 擬位址。 RDMA之提取操作(FetchOp)工作佇列要件提供記憶體語 意作業’在遠端字元(word)上執行原子作業(at〇mic operation)。提取操作工作佇列要件結合RDMA的讀取、修 改以及寫入作業’可支援多種讀取—修正—寫入(read-modify-write)作業,比如說比較後相同則交換(c〇mpare and Swap i f equal )。RDMA之提取操作並不包含在目前的 「RDMA用於IP」(RDMA over IP)標準化成果中,不過它可 能可以作為某些實際系統的加值功能,因此附帶一提。 連結/釋放遠端存取金鑰(bind/unbind remote access key,簡稱為R —Key)工作佇列要件可聯繫/解除關 連(associate/disassociate)記憶體區間與一記憶體區 域,提供I P S 0 E —個可以修改/去除(m 〇 d i f y / d e s t r 〇 y )記憶 體區間的指令。R_Key是每個RDMA存取的一部分,用來驗證 (validate)遠端程序已經允許存取緩衝器。
第22頁 1234371 五、發明說明(17) 種工^個實施例中,圖4中的接收工作仔列400僅支援一 種工作仔列要件,稱為接 ^丁賴u僅叉扠 (=供…意作業傳作仔列 工作二:V:::SSage)要寫入的本地記憶體空間。接收 憶體空間,進來的傳;X:寫述多個虛擬連續記 擬位址則位於產生本地心虛 softwtr^prll!)^^ 傳送資料,在-個實施例中,透妾;;^體中的緩衝器 了作業系統,而且花費比較少的主;二=的過程跳過 許零處理器複製(zero processo卜copay)1料傳列對允 會牽涉到作業系統核心程序,零處制:ϋ,而不 高頻寬與低潛時的通訊。 处理㈣製資料傳輸提供 -旦產生符列對後“宁列對可設定提供 務型態,在一個實施例中,實施本發明的 傳輪服 支援以下的傳輸型態:TCP ' SCTP以及UDP。月工電腦系統 TCP與SCTP聯繫本地的—個佇列對和遠端 — 對,TCP與SCTP要求一個程序為每個程序產生—:個符列 用來在IP網路交換結構上通訊。因此,如果Ν 1τ列對, U主機處理器
1234371 五、發明說明(19) 有序列號碼(sequence number)並確認所有訊框的 以能夠提供可靠的運作。硬體與j路驅動刖 合可以重新嘗試失敗的連結,仔列對的程序使二:體的組 ⑹ocess Cl^nt)即使是在有誤碼(…err〇r)
Uecevve underrun)或網路壅塞時,都可以保有 + / 訊。如果在I P網路交換結構中存在著替代的路徑传^ 網路中的父換器、連線或][pSQE埠發生問題疋 靠的通訊。 彳以維持可
此外可利用確涊(acknowledgement)的方式,本τρ姻 路交換結構中可靠地傳遞資肖,確認的方式可以在: 需,是程序Ρ身層的確認,也就是說,確認是用 程序已經將資料消Ρ另外,確認可以是 經到達目的地。 只不貝料已 UDP疋屬於無連結式(c〇nnecti〇niess)協定,管理應用 利用UDP找出與整合新的交換器、$由器以及端點在一特定 j分散式電腦系統中。UDP並不會提供Tcp或%!^ 一類的可 罪度保證’ UDP根據每一端點所持有的較少狀態資訊(丨e ss state information)運作 ° 圖6為根據本發明的一個較佳實施例的資料訊框圖示。 資料訊框是透過I P網路交換結構遞送的一資訊單位,資料 訊框是端點至端點(endnode —t〇-endn〇de)的結構,由端點
第25頁 1234371 五、發明說明(20) __
所產生與消化。對於寄送給IPs〇E 了是由⑽路交換結構中的交換器和路由器所產貝框既 2它們:肖化,實際上’交換器和路由 :: 或確認訊框移近最終的…也,修改程序中的連匕= 位(link header field)。路由$ &办運、、泉才示頭欄 ., 、 ^ φ杰在汛框穿過子網路 (subnet)的邊界時,也可修正訊框的網路標頭,在橫 網路時,早一訊框會停留在單一服務層級上。 ” -料:ΐ3資料區段1 6 02、資料區段2 604以及 =枓Η又3 606 ’和圖4所示之資料區段相仿。在此例中, 貧料區段形成-訊細8,放置於資料訊框612的訊 (payload)610中,此外,資料呻MR1 9 四 戰 rrpr,,ly1 + ^ 貝枓成框612包含循環冗餘檢查 = , :誤。另外,路由標頭616和傳輸標頭 ^ 貝枓吼框612中,其中,路由標頭616用來辨識資料 訊框612的來源和目的地埠,傳輸標頭618在此範例中標明 資料訊框6 1 2的序列號碼、來源和目的地埠。當通訊建立 後,就會啟動序列號碼,遇到訊框標頭、直接資料放置/ 遠端直接記憶體存取(DDP/RDMA)標頭、資料酬載以及循環 冗餘檢查的每一個位元組都會加!。範例中的訊框標頭62〇 標明與訊框相關的目的地佇列對號碼,與直接資料放置以 及/或者遠端直接記憶體存取(DDP/RDMA)標頭加上資料酬 載加上循環冗餘檢查的長度。直接資料放置以及/或者遠 端直接記憶體存取標頭622標明資料酬載所用的訊息辨識元 (message identifier)以及放置資訊(placement
1234371 五、發明說明(21) information),訊息辨識元對於訊息中的所有訊框來說都 是一定的’訊息辨識元包括傳送 '寫入RDMA以及讀取 RDMA等等。 圖7顯示分散式電腦系統的一部分,係用來示範要求與 確< 乂易。圖7的分散式電腦系統包含主機處理器節點7 〇 2 以及主機處理器節點7〇4,主機處理器節點7〇2包含Ips〇E 706,主機處理器節點704包含IPS〇E 7〇8。圖7的分散式電 腦系統包含IP網路交換結構71 〇,其中有交換器71 2與交換
器714 ’IP網路交換結構包含連接Ips〇E 706至交換器712的 連線’連接父換裔7 1 2與交換器7 1 4的連線,還有連接I p s 〇 e 708至交換器714的連線。 在交易的範例中,主機處理器節點7〇2包含使用端程序 A,主機處理器節點7〇4包含使用端程序6,使用端程序A透 過佇列對23與主機IPS0E硬體706互動,而使用端程序β透過 4丁列對2 4與主機I PS0E硬體7 〇 8互動,佇列對2 3與2 4都是包 含傳送工作佇列與接收工作佇列的資料結構。
、程序Α藉由向佇列對23中的傳送佇列發布工作佇列要 以啟動訊息要求,此一工作佇列要件已於圖4中說明,使 端程序A的訊息要求則放在傳送工作佇列要件中的聚集清 (gather 1 ist),在聚集清單中每一資料區段指向本地的 擬連續記憶體區域的-部份,記憶體區域中包含訊息的一
第27頁 1234371 五、發明說明(22) 它們 部分,如資料區段1、2、3所示(4 4 4、4 4 6、4 4 8 ) 刀別保留圖4中的訊息部份1、2、3 〇 主機I P S Ο E 7 0 6中的硬體讀取工作仵列要件,並且把儲 存在虛擬連續緩衝器内的訊息切割成資料訊框(如圖6所示 的資料訊框)。資料訊框透過I P網路交換結構遞送,並且由 最終目的地端點確認,以達成可靠的傳輸服務。如果確認 不成功,來源端點將重新傳送資料訊框,資料訊框由來源 端點產生,並由目的地端點消化。 圖8為根據本發明的一個較佳實施例,用於分散式電腦 土統的網路定址(network addressing}。主機名稱為主機 =點,例如說主機處理器節點或1/〇轉接器節點的邏輯身 分,主機名稱是用來辨識端點,讓訊息可傳送至由主機名 稱標明的端點的程序,因此,每一個節點有一個主機名 稱’不過一個節點可擁有多個Ips〇E。 單一連線層位址804 (例如乙太網路媒體存取層位址 (Ethernet Media Access Layer Address, MAC Address))被指定給端點元件8〇2的每一個埠8〇6。元件可 以疋IP S Ο E、父換裔或路由器,所有的I p g 〇 e和路由器元件 具有MAC位址,交換器上每個媒體存取點也具有一個MAc位 址〇
IIBH *11
第28頁 1234371 發明說明(23) 一個網路位址8 1 2 (例如I p位址)被指定給端點元件 802的每一個埠806,元件可以是IPS〇E、交換器或路由器, 所有的I PSOE和路由器元件都必須具有網路位址,交換器上 的 個媒體存取點也具有一個M A C位址。 交換器81 0的每個埠並沒有相關的連線層位址,不過交 換抑8 1 0 了以具備一個媒體存取點8 1 4,和相關的連線層位 址8 0 8以及網路層位址81 6。
w /圖9為根據本發明的一個較佳實施例所繪示的分散式電 腦系統的一部分,分散式電腦系統9〇〇包含子網路9〇2與 904,子網路902包含主機處理器節點9〇6、9〇8以及91〇,子 ,路=4包含主機處理器節點912以及914,子網路9〇2包含 又換為916與918,子網路9〇4包含交換器92〇與922。 路由裔產生與連接子網路,舉例來說,子網路9 〇 2透過 路由器924與926連接至子难^ , 安卞、,罔路9 〇 4,在一實施例中,子網路 最夕擁有2 1 6個端點、交換器與路由器。 子網路的定義是由一群端 一管理單位。基本上,子網路 例來說,一個房間中的一台電 路,在一實施例中,子網路内 速蟲洞(wormhole)或直接穿透 點和串接的交換器組成的單 是在單一地域或功能區。舉 腦系統也可以定義為一子網 的交換器可以執行訊息的高 式(cut-through)路由。
第29頁 1234371 五、發明說明(24)
子網路内的交換器檢查 框。在一實施例中 上 迷萑貝地遞达進來的訊息訊 以單-積體電J成父;Γ是相當簡單的電路,基本上是 聯的交換器組成的端點。、’罔路可以擁有數百至數千個由串 如圖9所示,為了 i 由器,比如路由二f充為更大的系,统,子網路經由路 器9 2 4與9 2 6連接起來,敗士哭站 n 網路層位址(例士 τρ ^ 思按屹木,路由态解#目的地 、例如IP位址),用以遞送訊框。 父換态的實施範例如圖3β 一 I/O路徑具有_埠,^換一戈路由裔上母 遞送至同一交檢W如 又β又換态可將訊框由一個埠 又換态内的任何其他的埠。 从垃在子網路中’比如說子網路90 2或904,來源埠到目的 車之路徑是由目的地主機IPS0E.的連線層位址(例如 位址)所決定,子網路之間的路徑是由目的地I PS〇£填 的網路?位址(例如Ip位址)、及用以到達目的地子網路 的路由裔埠的連線層位址(例如μ a c位址)所決定。 在一貫施例中,要求訊框(reqUest frame)以及要求訊 框對應的已確認訊框(3(:}111(^16(^1116111:,人〇1()所分別使用之 路徑並不須對稱。在採用不明顯路由(〇bl ivi〇us r〇uting) 1234371 五、發明說明(25) :實施例中,交換器根據連線層位址(例如MAC位 輸出槔,在一實施例中,交換器採用一組路由決定準則 ^〇^lng decision criteria)來決定所有的輸入埠。在一 p例中,路由決定準則在—路由表中;在另—實施例 中,父換器對每一個輸入埠採用個別的準則組。 個硬ίίΐϋ的分散式電腦系統中的資料交易基本上由數 以是二用、ί f步驟組成,一個使用端程序資料傳輸服務可 程序,^ Ϊ式(USeri〇de)或核心模式(kernel-m〇de)的 的符列们 用端六程式透過一或多個符列對(例如圖3 A與5所示 ΓίΠ:入取1麗引擎。使用端程式。乎叫作業系統的 介面,在此稱為「動詞」,執行動詞的軟體碼 在、.°义的佇列對工作佇列上發布工作佇列要件。 可能ΞΪ作:列要件可利用多種可能的方式,以及多種 影響到:二’這樣可以提供各種成本/效能點,但是不會 定義之方=生。不過使用者程序(user Process)必須以已 盥協定v ^ f動詞溝通,而1P網路交換結構上的資料格式 通。 須標示清楚,讓裝置能夠在不同廠商的環境中互 存取工竹1 ^例中’ 1 PS〇E硬體偵測工作佇列要件的發布並 作佇列座Ϊ列要件,在此情況下,1PS〇E硬體轉譯和驗證工 牛的虛擬位址,並存取資料。
第31頁
1234371 五、發明說明(26)
方备♦丨J 外送的訊息會被分成一或多個資料訊框。在’接 中,IPSOE硬體在每一訊框上加上直接資料放置/遠端直》 · 記憶體存取標頭、訊框標頭、循環冗餘檢查、傳輸標頻\ · • 么塔| 及網路標頭。傳輸標頭包含序列號碼與其他傳輸資訊路 路標頭包含像是目的地I p位址以及其他網路路由資訊的) 由資訊;連線標頭包含目的地連線層位址(例如MAC位址 或其他本地路由資訊。 當使用TCP或SCTP,而要求資料訊框抵達目的地端,點 ^ 時,目的地端點會使用確認資料訊框讓傳送要求資料訊樞 的人知道要求資料訊框已獲得目的地驗證與接受。確認資 料訊框可確認一或多個有效和已接受的要求資料訊框,要 求者在還沒收到確認前,可擁有多個未完成(〇utstanding) 要求資料訊框。在一實施例中,多個未完成訊息的數目, 也就是要求資料訊框,會在產生符列對時決定。 圖1 0為用於本發明的一個較佳實施例中的分層通訊架 構,其中顯示資料通訊路徑的各種階層,還有階^資ς 的組織與控制資訊傳遞的方式。 · θ ' IPSOE端點協定階層(例如由端點丨〇丨丨所採用八 消費者1 0 0 3定義的上層協定1 002、傳輸層1〇〇4、 ι 3 1 0 0 6、連線層1 0 08以及實體層1〇1〇,交換層(例如由^換
1234371
路由層 連線層 益1 013所採用)包含連線 (例如由路由器1015所接用、七If肢層1010 1 nn« LV Β ^ a 斤抓用)包含網路層1006 iUU8以及貫體層1010。
,分層架構1 000遵循典型通訊堆疊的要點。 對於端點1011的協定声氺1 芦且J U 於展mru太^ ώ層來 層協定1 002採用動詞在傳 δί1心,傳輸層1 0 0 4傳遞訊息1 0 1 4至網路層 在網二::1 0 06在子網路1016間遞送訊框,連線層1_ 在、,周路内的子網路1018遞送訊框,實體層1010傳送位元或 ,疋組給其他裝置的實體層,每一層都不清楚上層或下層 疋如何執行它們的功能。 消費者1 0 0 3與1 0 0 5代表端點間採用其他階層通訊的應 用或程序,傳輸層1 0 04提供端對端(end —t〇-end)訊息活 動。在一貫施例中,傳輪層提供4種傳輸服務類型,包括傳 統 TCP、TCP 上的 RDMA (RDMA over TCP) 、SCTP 以及 UDP, 網路層1 0 0 6遞送訊框經由一或多個子網路而到達目的地端 點’連線層1 0 〇 8執行連線間的流量控制、錯誤檢查以及訊 框傳遞優先順序排列等工作。 實體層1 0 1 0執行特定技術相關的位元傳輸,位元或位 元群組透過連線1 022、1 024以及1 0 2 6,在實體層間傳遞。 連線可以採用背板上的印刷電路銅線線跡、銅線、光纖或 者其他適合的連線。
第33頁 1234371
iSCSI IPSOE支援iSCSI交易,其中iscsi交易由1SCSI 指令(iSCSI Command)、選擇性的資料傳輸(Data Transfer)、以及iSCSI 回應(iSCSI Resp^s^ =成。來自 作業系統的專屬儲存介面啤叫會被動詞轉譯給Ips〇E的 iSCSI軟體/硬體介面,動詞是存在於系統記憶體的資料結 構'存在於轉接器記憶體的資料結構以及轉接哭暫存哭 (register)的混合,某些iSCSI動詞可透過函&庫 (一個可連結的函式庫,提供連接iscsi功能的應用程式介 面)直接由使用者空間存取(例如傳送—丨I指令), 其他的iSCSI動詞只能透過iscsug動程式(iscsi Drive 從核心存取(例如註冊一記憶體區域)。 iscsiH 來說’ iSCSI函式庫產生封裳( 厂二?,其中包含iscsl指令以及相關的資料傳輸資4 區早。封裝的iSCSI指令透過傳送佇列(Send Queue)1 5挪1 IPSGE,心⑶IPSGE產生iscsi指令的起始4 藏(Initiator Tag)。走已私;):© 您士 κ . g t始才示紙有兩個用途,其一是它聯^ 1 曰7 、遠擇性聯繫的資料傳輸,以及i SCS I回應
= = °綠其次,當iSCSI指令要求進行資料傳輸(例^ 伴二隸1 :取磁碟)日寺,起始標籤包含轉接器的記憶體 保。隻與轉澤表,以及+你 至餘值(key value)等的索引。
1234371 五、發明說明(29) 輸,將iSCSI指令的回應結果放在接收佇列以^61^
Queue) ’ iSCSI函式庫取回回應,作為回應完成(Resp〇nse Completion)。 對於iSCSI目標轉接器(Target Adapter)來說,轉接器
韌體(firmware)透過接收佇列轉譯收到的iSCSI指令, iSCSI目標轉接器產生和iSCSI指令相關的目標標籤(Target Tag),目標標籤的用途與起始標籤相同,只不過它是用來 辨識目標轉接器記憶體位置與狀態。i scs I目標轉接器對傳 送仔列發布工作要求,以執行任何和i scsI指令相關的資料 傳輸’一旦完成iSCSI指令後,iSCSI目標轉接器會對接收 仔列發布一回應訊息。 iSCSI轉接器透過iSCSI IPS0E動詞-開啟(Open) -聯繫 iSCSI驅動程式,此一動詞會傳回一標示iscsi轉接器的獨 特代號,也就是說,如果單一系統擁有多個i SCS I轉接器, 每一個都會有獨特的代號,iSCSI程式庫每一次在找iscsi 轉接器時必須使用此一代號,一亘i SCS I轉接器和i SCS I驅 動程式取得聯繫,就必須等到關閉後才能重新開啟。 每個i SCS I轉接器都有一組固定與變動的屬性,比如說 此轉接器支援多少個iSCSI佇列對(Queue Pair)。iSCSI驅 動程式可透過iscsi ipsoe動詞-查詢(Query) —決定這些屬
第35頁 1234371 五、發明說明(30) iSCSI轉接器的變動屬性可透過iSCSi Ips〇E動詞一修 改(modify) -加以更動,此一動詞並用來啟動丨^以轉接器 控制架構(Control Structure),比如說記憶體保護表 (Memory Protection Table) 〇 iSCSI驅動程式透過lSCSI IPS0E動詞_ iSCSI轉接器切斷聯繫。
列對:=ip,=tlon Domain,PD)用來聯繫以叫宁 列對以/lSCSI記憶體區域與標籤, I 接器中的仵列對都連到一個保護範在:SS,轉 繫同一保護範圍。 夕個彳丁歹】對可以聯 每一個圮憶體區域、標籤或佇列對 圍’多個記憶體區域、標藏或件列對 么個保護範 圍。 ^繫同一保護範 佇列對存取記憶體區域的 圍:記憶體區域的保護範圍時才:列對的保護範 的作業只有在記憶體同樣地,記 圍和知列對的保護範圍相符時才能進行戈才示織的保護範 第36頁 1234371
五、發明說明(31) iSCSI驅動程式產生iscsi保護範圍(iSPD)。ises ^ 範圍可為一處理識別(pr〇cess ID)。13(:31驅動程式維^遵 包含被iSCSI函式庫所規劃放置之所有iSCSI保護範圍的、~ i SCS I轉接器在佇列對、記憶體區域以及標籤輪入棚 (Tag Entries)維持保護範圍,所以^以丨轉接器並 特殊的保護範圍控制架構。 而 、每一個iscsI IPSOE支援一定數目的iSCSI佇列對(簡稱 為iSQP),iSQP的數目跟ipS0E轉接器内的記憶體配置量曰有 關,可用的iSQP數目和圖11的SCSI内容表暫存器(scTR) 1101有關,SCSI内谷表暫存器並包含uqp内容表(scT)n〇2 的開始位址,iSQP内容表位於iSCSI轉接器上。
iSQP内容表包含每一iSQP的%51内容表輸入(scsi Context Table Entry,簡稱為SCTE)n〇3,SCTE 包含iSCSI 内谷11 0 4,傳送佇列内容11 〇 5、接收佇列内容丨丨〇 6以及工p 内容1107。 如圖1 2所示’ 1 SCS I函式庫採用動詞以提交工作佇列要 件(WQE ) 1 2 0 1給傳送佇列或接收佇列,相關的傳送與接收佇 列可通稱為IPSOE SCSI佇列對(iSQp),iSQp並不能直接由 SCSI消費者(SCSI Consumer)存取,只能透過動詞加以操
1234371 五、發明說明(32) 縱〇 iSQP是透過動詞產生 指定一組完整的起始屬性 旦產生後’ i S C S I函式庫必須 在1 SQP的每個工作佇列上的工作佇列要件1 20 1的最大 數目是在iSQP產生時,由SCSI函式庫所設定。 可用的工作佇列要件數目是計算在還沒有被相關的完 成佇列(CQ)解放的佇列中,佇列上尚未完成的工作佇列要 件數目加上已完成的佇列輸入(C〇mpieted Queue Entries) 的數目。 iSQP内容1 20 2可透過iSCSI IPS0E介面的動詞-查詢 iSQP(Query iSQP)-取回。 iSQP内容1202可透過iSCSi IPS0E介面的動詞-修改 iSQP(Modify iSQP)-加以更動,iSQP可以在工作佇列/要件 仍然未完成時修改,而根據丨PS〇E工作佇列的位置與完成 佇列的指標(pointer ),可能不會馬上修改。 iSQP IP0SE 介面的動詞—銷毁 iSQP(Destr〇y iSQp)-可 以去除iSQP ’ 一旦iSQP遭到銷毁後,我們就認定在Ips〇E的 範圍内不會有任何未完成(〇 u t s t a n d i n g)的工作件列要
第38頁 1234371 五、發明說明(33) " ----- 件。SCS I貧料庫要能夠清除任何關連的資源,去除一個 i/QP可釋放出在IPSOE中任何分配的資源,而傳回此一動詞 後,未兀成的工作仔列要件也不會繼續進行。 IPSOE SCSI傳送工作佇列包含iSCSI封裝指令12〇3,封 ^的iSCjl指令包含iSCSI指令,以及有關此指令的分散或
♦集清單(scatter or gather 1 i St,簡稱為SGL) 1 204。每 個SGL要件(element)包含一個虛擬位址、L — Key以及長度。 虛擬位址是SGL要件的第一個位元組的位址,長度就是S^L 要件的位元組長度,L一Key就是與SGL要件相關的記憶體區 域的代號。 IPSOE SCSI接收工作佇列包含iSCSI封裝回應,封裝的 iSCSI回應包含iSCSI指令’以及有關此指令的分散或聚集 清單(SGL) ’每個SGL要件(element)包含一個虛擬位址、 圖1 3的完成佇列(CQ)1 301可在同一 ipsoe上透過iSQP傳 送多個工作完成(work completion),IPSOE支援完成仔 列’以作為工作狩列要件完成的通知機制,完成彳宁列可以 聯繫零或多個工作佇列,任何完成佇列可以服務傳送符 列、接收佇列、或兩者皆可,而多個i SQP的工作狩列可以 聯繫單一的完成彳宁列。
第39頁 1234371 五、發明說明(34) ' --- 完成仔列可透過iSQP IPSOE動詞-產生完成符列 (Create CQ )-產生,在完成佇列上的完成佇列輸入 (completion dUeue entries,CQE) 13〇2 的最大未完成數 目是在完成佇列產生時,由iscsi函式庫所設定,iSCSI函 式庫要確定所選擇的最大數目足夠讓SCSI消費者作業,並 且在任何情況下,處理完成佇列溢位(〇verfl〇w)所造成的 錯誤。
IPS0E會在取出完成佇列中的下一個完成佇列輸入前, 偵測與報告完成作列溢位,此一錯誤會被當作一個附屬的 非同步錯疾(affiliated asynchronous errors)來呈報。 完成佇列的唯--個屬性是最大輸入數目,這個屬性可透 過iSQP動詞-查詢完成仔列(Query CQ) -取得,iSCSI資料庫 負責記錄有那些工作佇列是與一完成佇列相關。 完成佇列可透過iSQP IPS0E動詞-修改完成佇列 (Mod i f y CQ )-變更其大小,當與此完成佇列相關的工作佇 列上有未完成的工作佇列要件時,可變更完成佇列的大 小,而iSQP IPS0E動詞-變更CQ大小(Resize CQ)-可執行 變更的動作。 iSQP IP0SE介面的動詞-銷毀完成佇列(Destroy CQ) -可以去除完成佇列,如果在去除完成佇列時,還有工作佇
第40頁 1234371 五、發明說明(35) --—-- 列與完成#列相關,則IPSOE會ϋ報錯誤,而完成符列也不 去除完成佇列可釋放任何Ips〇E介面分配給此完成佇 的資源。 圖1 4所示為一個i SQP的狀態變遷圖表,是用來維持一 致的定義與簡化錯誤語意,其中iscSI IPS〇E動詞-修改 iSQP-係用於變遷iSQP的狀態。另外,當Ips〇E遇到完成錯 誤時’會將iSQP移至錯誤狀態(Err〇r state) 1 40 5。 新產生的iSQP會被放在重置狀態(Reset state) 1 4 Ο 1 ’在任何狀悲下都可以遷移至重置狀態,只要在修改 1 SQP屬性時註明是重置狀態即可。在重置狀態中丨SqP内容 與工作佇列資源皆已分配。在產生或遷移至重置狀態時, i SQP與工作佇列屬性都已設為起始化預設值。去除丨SqP的 話可從重置狀態跳開,如此就不在狀態圖上。當丨pS〇E對應 的i SQP是在重置狀態,它會忽略已提交給工作佇列的工作 佇列要件,對應的I PSOE工作佇列内容會被更新。在重置狀 態下工作佇列是空的。在工作佇列中沒有未完成的工作佇 列要件。所有的工作佇列處理工作會被取消,而進來的訊 息如果是給重置狀態下的i S Q P,會被悄悄地丟棄。 在已起始(Initial ized, Init)狀態1402下,基本的
第41頁 1234371 五、發明說明(36) iSQP屬性會被動詞-修改iSQP-調整,只有從重置狀態1401 才能進至此狀態,SCSI函式庫只有使用動詞-修改iSQP-才 能跳出已起始狀態,而不用移除i SQP。去除i SQP的話可從 已起始狀態跳開,如此就不在狀態圖上,此時工作佇列要 件仍可提交給接收佇列,但是進來的訊息就不會獲得處 理。提交工作佇列要件給傳送佇列則為錯誤情況,如果工 作佇列要件已提交給傳送佇列,則會被忽略,而傳送佇列 内容則不會被影響。在兩種佇列上的工作佇列處理作業會 停止。進來的訊息如果是給已起始狀態下的丨SQP,會被悄 悄地丟棄。 在準備接收(Ready to Receive,rtR)狀態 1 403, I PS0E可將工作佇列要件發布至傳送佇列。進來的訊息如果 疋給準備接收狀態下的i SQP,則會獲得正常的處理,只有 攸已起始狀恶1 4 0 2利用動詞-修改丨§ q p —才能進入此狀態, 去除i SQP的話可從準備接收狀態跳開,如此就不在狀態圖 上’在傳送佇列上的工作佇列處理作業會停止,如果有工 作佇列要件已提交給傳送佇列會被忽略,而傳送佇列内容 不會受到影響。 在遷移至準備傳送(Ready to Send, RTS)狀態1404 前,必須先完成TCP/SDP通訊建立協定,讓要求者的iSQP和 回應者的i SQP建立連線,只有從準備接收狀態狀態1 4 0 3才 月b進入此一狀態,而採用動詞_ —修改i g Q p — _是♦一可以從
第42頁 1234371
,備傳送狀態離開、而不用去除iSQP的方法,去除以扑 "舌可從準備傳送狀態跳開,如此就不在狀態圖上。在準備 傳送狀態下,i SQP上的工作佇列要件會正常的作業,進 P訊息如果是給準備傳送狀態下的i SQp,會獲得正常的2 ▲ 在錯誤狀態(Error)1405,iSQP上的正常作業會停止 造成完成錯誤(Completion Error)以致於進入錯举曰7
=列要會透過完成件列回傳正確的完成錯 i ^工佇列要件可能部份或執行完成,因此可能合 =二到接收器(receiver)的狀態。傳送作業可能部份或^ ^成,因此,完成佇列輸入可能或可能沒有在上 l_a讀取作業可能已完成—部分,因此,ϋ產 J牛的賢料區段所指向的記憶體位置内 丁歹? “作業也可能已完成,,因此,工:;ί要: 鈿位址所指向的記憶體位置内容可能不明確❶跟在產 2成錯誤的工作佇列要件後面的工作 =狀態遷移後才提交的,…入錯誤狀J件並J =
發Πϊ:成注滿錯誤(Fiush Err〇r)的指示。在錯驾 二合旦了塑i t =工作符列要件有# ▼能正在處J里’因此可 月匕,衫a到遂為節點,可能的效應如上 列要件類型而定,㈣動詞_•改聲是唯一可m 狀態1401的方法,去除isqp也可從; 禾毛生附屬非同步錯誤,可能沒辦法繼續進
第43頁 1234371 五、發明說明(38) 行工作佇列要件,在這個狀態下,未完成的工作佇列要件 也不會元成’在處理錯誤通知時,i g C S I函式庫需確認在強 迫iSQP重置前,所有的錯誤處理都已完成。
圖1 5為根據本發明的一個較佳實施例之流程圖,圖中 為主機的程序針對目標轉接器啟動i scs I交易。首先,一要 求或功能呼叫傳送到iscsi函式庫或作業系統核心(〇S kernel)以執行某特定記憶體區域的iSCSI指令(步驟 1 5 0 0 ) 。iSCSI函式庫或作業系統核心結合iscsi指令與一
起始標籤(Initiator Tag),形成封裝的iSCSI指令(步驟 B 〇f )三起始標籤如同記憶體代號,讓目標轉接器可以對 己L體疋址’封裝的丨g C s I指令放在傳送仔列上,用以傳$ m轉人接器(步驟i5G4)。一旦目標轉接器' 收到封裝的 、曰々,就開始交易過程,直接存取記憶體區域(步專 1 ο υ 〇 ) 〇 售1 1 . 器的資料直;代表主機轉接器可能將來自目標轉接 =貝Λ7二目標轉接器。這種直接存取的方式可
讀取盥寫入I步 頁外負擔。因此,本發明可以讓1/1 行。·、、過私直接對原始來源或目的地記憶體區域執 ^中=根據本發明的一個較佳實施例所繪示的流程 °…目標轉接器完成iSCSI指令的程序。目標轉接器 圖
第44頁 1234371 11 11 ——— 五、發明說明(39) 首先接收封裝的i SCS I指令(步驟丨6 〇 0 )。此封裝的i scs t 指令^包含目標轉接器中會受到iscsI指令影響的資料區段 的清單,這些資料區段會對應到目標轉接器内的記憶體區 域。而在步驟1 602,產生與目標轉接器記憶體 Π = ·二著上步驟i :作;=w:曰?每一工作要求包含目標標籤,最後 作要求會放置於目標轉接器的傳送 iSCSI指令(步驟16〇6)。 用以元成 要’主意的是,儘管本發明已經用完整 系、統加以說明,不過熟悉此技藝者”貪料處理 序可以分配在電腦可讀媒體或其他:發明的私 及其他多種形式中,而本發明 材的指令 ;來攜帶與分配訊號的媒介為何。電腦==用’不論 括可錄式媒體,比方說磁碟片、 :媒體的範例包 :、DVD-_光碟機,以及傳 二體_ : CD__光碟 比通訊連線、使用射頻或光 某體,比如說數位與類 :加電腦可讀媒體可採編碼的形二、=線通訊連線 jr生描述素材包括、但機器功能的資訊, …運算功…、物件:及;;':構:令、規則、 來限二已經用圖示與描述的方式力、 制本發明的範轉,熟悉此技月,但並非用 π考可做各種其他修正、 第45頁 1234371
第46頁 1234371
有關本發明的各項新穎特性將在接下來的申請專利範 w中逐次闡述,而本發明只是較佳的使用模式,更進一步 的目的與優點可參考接下來所示範的較佳實施例,並搭配 以下的圖表說明加以了解,其中: σ 圖1為根據本發明的一個較隹實施例所繪示的分散式電腦系 統的示意圖; ,2為根據本發明的一個較佳實施例所繪示的主電腦處理器 節點的功能方塊圖; 圖3 Α為根據本發明的一個較佳實施例的網際網路協定组卸 載引擎(IPSOE)示意圖; 、、 圖3B為根據本發明的一個軾佳實施例的交換器示意圖; 圖3 C為根據本發明的一個較佳實施例的路由器示意圖; 。-為根據本發明的一個較佳實施例所緣示的處理工作要求 的示意圖; 〆 、=5一為^根據本發明的一個較佳實施例所繪示的分散式電腦系 傳二=分示意圖,其中採用傳輸控制協定(tcp)或串流控制 t(SGTP)#m 二,根據本發明的一個較佳實施例的資料訊框示竟 本^明的一個較佳貫施例所繪示的分散式電腦系 冲分示意圖; 圖8免 系统的根*據本發明的一個較佳實施例所繪示用於分散式電腦 圖9為1肩路定址示意圖; 、^據本發明的一個較佳實施例所繪示的分散式電腦系
第47頁 1234371 圖式簡單說明 統一部分示意圖; 二意圖用於本& ^的—個較佳實施例中的分層通訊架構的 明所繪示的佇列對(QP)狀態示意圖; 意圖;乂 發明所繪示的iSCSl佇列對内容(context)示 圖1 3為才g j 蘇本务明所繪示的工作佇列(WQ)示意圖; :立”、、根據本發明所繪示的完成佇列(CQ )與完成佇列内容 示思圖; Θ f根據本發明的一個較佳實施例所翁示的流程圖,代 ,主機的程序針對目標器網際網路小型電腦系統 介面(iscsi)交易;以及 回 :根據本發明的一個較佳實施例所繪示的流程圖,代 ^ 轉接器完成網際網路小型電腦系統介面(i S C S I)指令 的程序。 元件符號說明 102 104 106 110
主機處理器節點 J機處理器節點 =f式獨立磁碟陣列(R AID)次系統節點 控制台 11 2 交換器
第48頁 1234371 圖式簡單說明 114 交換器 116 交換式通訊結構 117 路由器 118 主機網際網路協定組卸載引擎 120 網際網路協定組卸載引擎 122 網際網路協定組卸載引擎 124 網際網路協定組卸載引擎 126- 130 中央處理單元(CPU) 132 記憶體 134 匯流排系統 136- 140 中央處理單元(CPU) 142 記憶體 144 匯流排系統 168 處理器 170 記憶體 172 網際網路協定組卸載引擎 174 多重冗餘/條狀儲存磁碟機單元 200 主機處理器節點 20 2 - 208消費者 210 網際網路協定組卸載引擎 212 網際網路協定組卸載引擎 214 埠 216 埠 218 埠
第49頁
1234371 圖式簡單說明 22 0 埠 2 2 2 動詞介面 2 2 4 訊息暨資料服務 3 0 0 A網際網路協定組卸載引擎 302A-310A佇列對 31 2A-31 6A網際網路協定組卸載弓I擎埠 318A-3 34A服務品質欄位 338A 記憶體轉譯與保護 3 4 0 A 直接記憶體存取
3 0 0B 交換器 3 0 2 B 訊框中繼 304B 埠 3 0 6B服務型態欄位 3 0 0 C 路由器 3 0 2 C 訊框中繼 304C 埠 3 0 6 C服務型態欄位
4 0 0 接收工作佇列 4 0 2 傳送工作佇列 4 0 4 完成佇列 40 6消費者 4 0 8硬體 4 1 0 工作要求 4 1 2 工作要求
第50頁 1234371 圖式簡單說明 4 1 4 工作完成 4 1 6-420 工作佇列要件 422-428 工作佇列要件 430-436完成佇列要件 438第4資料區段
440第5資料區段 442 第6資料區段 444 第1資料區段 446 第2資料區段 448 第3資料區段
5 0 0 分散式電腦糸統 510 程序A
520 程序C
5 3 0 程序D 54 0 程序E
6 0 0 訊息貧料 6 0 2 資料區段1 6 04 資料區段2 6 0 6 資料區段3 6 0 8 訊框 6 1 0 訊框酬載 6 1 2 貢料訊框 6 1 4循環冗餘檢查 6 1 6 路由標頭
第51頁 1234371 圖式簡單說明 6 1 8傳輸標頭 6 2 0 訊框標頭 6 2 2 直接資料放置/遠端直接記憶體存取標頭 7 0 0 分散式電腦系統 7 0 2 主機處理器節點 7 0 4 主機處理器節點 7 0 6 網際網路協定組卸載引擎 7 0 8 網際網路協定組卸載引擎 7 1 Ο I P網路交換結構 7 1 2 交換器 7 1 4 交換器 8 0 2 端點元件 8 0 4 單一連線層位址 80 6 埠 8 0 8 每個交換器一個媒體存取點M A C位址 8 1 0交換器 8 1 2 每個埠一個I P位址 8 1 4 媒體存取點 8 1 6 每個交換器一個媒體存取點I P位址 9 0 0 分散式電腦系統 9 0 2 子網路 9 0 4 子網路 9 0 6 主機處理器節點 9 0 8 主機處理器節點
第52頁 1234371 圖式簡單說明 910 主機處理器 節點 912 主機處理器 節點 914 主機處理器 節點 916 交換器 918 交換器 920 交換器 922 交換器 924 路由器 926 路由器 1000 分層架構 1002 上層協定 1003 消費者 1004 傳輸層 1005 消費者 1006 網路層 1008 連線層 1010 實體層 1011 端點 1013 交換器 1014 訊息 1015 路由器 1016 網際網路子網路 1018 網路内子網路 1020 流量控制
第53頁
1234371 圖式簡單說明 1 0 2 2 連線 1 0 24連線 1 0 2 6 連線 1101 SCSI内容表暫存器 1102 iSQP内容表 1103 SCSI内容表輸入 1104 iSCSI内容(套接層内容) I 1 0 5 傳送工作佇列内容 II 0 6 接收工作佇列内容 1107 IP内容 1 2 0 1 工作佇列 1 2 02 iSQP 内容 1 2 0 3 iSCSI封裝指令 1 2 04分散/聚集清單(SGL) 1301完成佇列(CQ) 1 3 02 完成佇列輸入(CQE)

Claims (1)

  1. 案號 92117094 年93·9月.15曰 修正 六、申請專利範圍 1 · 一種執行網際網路小型電腦系統介面(以下簡稱丨s c s I) 指令的方法,包含·· 結合一iSCSI指令與一標籤(tag),以形成一封裝 iSCSI 指令(encapsulated iSCSI command),其中該標戴 與一 5己憶體區域相關’用以保留與該封裝i s C S I指令相關 的資料;以及 猎由直接存取该3己憶體區域’執行該封裝i s g I指令 所指定的一iSCSI交易。 2·如申請專利範圍第1項所述之方法,其中直接存取該記 憶體區域包含寫入與該封裝iSCSI指令相關的資料至該記 憶體區域。 3·如申請專利範圍第1項所述之方法,其中直接存取該記 憶體區域包含讀取與該封裝iSCSI指令相關的資料至g記 憶體區域。 ~ ° 4·如申請專利範圍第1項所述之方法,其中該iSCSi交易包 含傳輸與該封裝iSCSI指令相關的資料至一目標轉接哭 (target adapter) ° 5.如申請專利範圍第1項所述之方法,其中該iSCSi交易包 含從一目標轉接器(target adapter)傳輸與該封裝iscsi 指令相關的資料。
    4IBM0335TW-替換頁-091504.ptc 第55頁 1234371 — 9am 案號 92117Μ4_^-§ 倐正 ___ 六、申請專利範圍 6 ·如申請專利範圍第1項所述之方法,其中該標籤包含一 記憶體轉譯表(memory translation table)的一索引 (index) 〇 7·如申請專利範圍第1項所述之方法,並進一步包含: 放置該封裝i SCS I指令於一硬體網路卸載引擎 (hardware network offload)的傳送仔列(send queue)之 上以供處理。 8 ·如申請專利範圍第1項所述之方法,並進一步包含: 判定該iSCSI交易是否已完成;以及 因應該iSCSI父易已完成的一判定’放置一完成仔列 要件(completion queue element)於一完成仔列之上。 9 · 一種運作於一目標轉接器的方法,包含: 接收來自一主轉接器(host adapter)的一封裝iSCSI 指令,其中該封裝iSCSI指令包含一iSCSI指令、一起始器 才不籤(initiator tag) ’ 以及一資料區段(data segment) 的清單; 因應接收该封裴i S C S I指令,產生與該目標轉接器内 至少一個對照該資料區段的清單的記憶體區域相關之一目 標標籤;以及 因應接收該封裝iSCSI指令,傳送工作要求至該主轉
    4 旧 M0335TW嗜換頁-091504.ptc 第56頁 12349a 9. is 案號921Π094 年 月 日 铬ϊί _ 六、申請專利範圍 接器以達成該封裝i SCSI指令,其中該工作要求包含該目 標標籤。 I 0 ·如申請專利範圍第9項所述之方法,其中傳送工作要求 至該主轉接器包含放置工作要求於一傳送佇列上以供處 理。 II ·如申請專利範圍第9項所述之方法,其中從該主轉接器 接收该封裝i S C SI指令包含從^一接收彳宁列讀取該封裝丨$ c s I 指令。 12· —種在至少一電腦可讀媒體(computer readable medium)内之電腦程式產品(computer program product),該電腦程式產品包含功能性描述素材 (functional descriptive material),當被一電腦執行 時,可讓該電腦執行以下動作,包含: 結合一 iSCSI指令與一標籤以形成一封裝igcsi指八 其中該標籤與一記憶體區域相關,用以保留與該封裝7 ’ i S C S I指令相關的資料;以及 藉由直接存取該記憶體區域,執行該封裝丨S C § I指a 所指定的一 iSCSI交易。 々 1 3·如申請專利範圍第1 2項所述之電腦程式產品,其中 接存取該記憶體區域包含寫入與該封裝丨scs I指令相
    4 旧 M0335TW考換頁-〇91504.ptc |42|#Λ .. 六 -^^92117094 申請專利範圍 資料至該記憶體區域 93. 9. 1S ^---1 絛正 14·如申請專利範圍第12項所述之電腦程式產品,其中直 ,存取該圮憶體區域包含讀取與該封裝i SCS I指令相關的 貧料至該記憶體區域。 1 5·如f請專利範圍第1 2項所述之電腦程式產品,其中該 iSCSI父易包含傳輸與該封裝〖SCSI指令相關的資料至一目 標轉接器。 1 6 ·如申請專利範圍第1 2項所述之電腦程式產品,其中該 lSCSI交易包含從一目標轉接器傳輸與該封裝iSCSI指令相 關的資料。 17·如申請專利範圍第丨2項所述之電腦程式產品,其中該 標籤包含一記憶體轉譯表的一索引。 1 8 ·如申請專利範圍第1 2項所述之電腦程式產品,包含額 外的功能性描述素材,當被該電腦執行時,可讓該電腦執 行以下動作,包含: 放置該封裝i SCS I指令於〆硬體網路卸載引擎的傳送 符列之上以供處理。 1 9 ·如申請專利範圍第1 2項所述之電腦程式產品,包含額
    4旧M0335TW-替換頁-091504.ptc 笫 58 頁 案號 921170Qz! 跑9· U
    M34371 六、申請豕利範圍 外的功能性描述素材,當被診、 〜 行以下動作,包含: 電知執行時’可讓該電腦執 ;以及 判定,放置一完成佇列 判定該iSCSI交易是否已$ 因應該iSCSI交易已完成 要件於一完成彳宁列之上。 、 2 0 · —種在至少一電腦可讀甜 腦程式產品包含功能性描述辛材内之電腦程式產品,該電 時,使該目標轉接器執行以3作當;:目標轉接器執行 接收來自一主轉接器的—封裝iSCSI指令,JL中 裝is⑶指令包含-iSCSI指令、一起始^ :、中^亥封― 料區段的清單; 时知紙 U及一育 因應接收該封裝iSCSI指令,產生豳好n讲±Α 至少^固對照該資料區段的清單的記憶體5區:接器一内 標標籤;以及 Μ日關 < 目 因應接收該封裝iSCSI指令,傳送工作要求至該主轉 接器以達成該封裝iscsI指令,其中工作要求包含該目標 標籤。 2 1 ·如申請專利範圍第2 〇項所述之電腦程式產品,其中傳 送工作要求至該主轉接器包含放置工作要求於一傳送佇列 上以供處理。 2 2 ·如申請專利範圍第2 0項所述之電腦程式產品,其中由
    4 旧 M0335TW-替換頁-091504.ptc 93· 9· 15 — JL 曰 修正 1234371 案號 92117M4 六、申請專利範圍 該主轉接器接收該封giSCsi 該封裝iSCSI指令。 指令包含從一接收佇列讀取 2 3 · —種資料處理系統,包含·· 一主電腦(host computer),包含至少一個處理器與 記憶體;以及 w • 一與該主電腦相關的網路卸載引擎(network off l〇ad engine),用以透過一網路傳送與接收資訊至一以以!輸入 /輸出轉接器’並包含一傳送仵列; 其中該至少一個處理器結合一 i SCSI指令與一標籤以 形成一封裝1 SCSI指令,該標籤與該記憶體内之一記憶體 區域相關’用以保留與該封裝丨scs I指令相關的資料; 其中該主電腦放置該封裝i SCS I指令於該傳送佇列 上;以及 其中該網路卸載引擎藉由直接存取該記憶體區域,執 行該封裳iscsi指令標明的一iscsj交易。 24·如申請專利範圍第23項所述之資料處理系統,其中執 行該iscsi交易包含透過該網路傳輸該封裝iSCSi指令至該 轉接器。
    4BM0335TW-替換頁-091504.ptc 第60頁
TW092117094A 2002-09-05 2003-06-24 A method of performing iSCSI commands and a data processing system using the method TWI234371B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/235,686 US20040049603A1 (en) 2002-09-05 2002-09-05 iSCSI driver to adapter interface protocol

Publications (2)

Publication Number Publication Date
TW200404430A TW200404430A (en) 2004-03-16
TWI234371B true TWI234371B (en) 2005-06-11

Family

ID=31990544

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092117094A TWI234371B (en) 2002-09-05 2003-06-24 A method of performing iSCSI commands and a data processing system using the method

Country Status (3)

Country Link
US (1) US20040049603A1 (zh)
CN (1) CN1239999C (zh)
TW (1) TWI234371B (zh)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089280B1 (en) 2001-11-02 2006-08-08 Sprint Spectrum L.P. Autonomous eclone
US7627693B2 (en) * 2002-06-11 2009-12-01 Pandya Ashish A IP storage processor and engine therefor using RDMA
US7415723B2 (en) * 2002-06-11 2008-08-19 Pandya Ashish A Distributed network security system and a hardware processor therefor
US20040049580A1 (en) * 2002-09-05 2004-03-11 International Business Machines Corporation Receive queue device with efficient queue flow control, segment placement and virtualization mechanisms
JP4123088B2 (ja) * 2003-08-06 2008-07-23 株式会社日立製作所 ストレージネットワーク管理装置及び方法
US8959171B2 (en) * 2003-09-18 2015-02-17 Hewlett-Packard Development Company, L.P. Method and apparatus for acknowledging a request for data transfer
US20060010273A1 (en) * 2004-06-25 2006-01-12 Sridharan Sakthivelu CAM-less command context implementation
US7478138B2 (en) 2004-08-30 2009-01-13 International Business Machines Corporation Method for third party, broadcast, multicast and conditional RDMA operations
US7522597B2 (en) 2004-08-30 2009-04-21 International Business Machines Corporation Interface internet protocol fragmentation of large broadcast packets in an environment with an unaccommodating maximum transfer unit
US7813369B2 (en) 2004-08-30 2010-10-12 International Business Machines Corporation Half RDMA and half FIFO operations
US8023417B2 (en) 2004-08-30 2011-09-20 International Business Machines Corporation Failover mechanisms in RDMA operations
US7480298B2 (en) 2004-08-30 2009-01-20 International Business Machines Corporation Lazy deregistration of user virtual machine to adapter protocol virtual offsets
US8364849B2 (en) 2004-08-30 2013-01-29 International Business Machines Corporation Snapshot interface operations
US7430615B2 (en) 2004-08-30 2008-09-30 International Business Machines Corporation RDMA server (OSI) global TCE tables
US20060075057A1 (en) * 2004-08-30 2006-04-06 International Business Machines Corporation Remote direct memory access system and method
CN100442256C (zh) * 2004-11-10 2008-12-10 国际商业机器公司 提供用于i/o适配器的队列对的方法、系统和存储介质
CN100396065C (zh) * 2005-01-14 2008-06-18 清华大学 一种iSCSI存储系统的实现方法
CN1834912B (zh) * 2005-03-15 2011-08-31 蚬壳星盈科技有限公司 用于可扩展互联网引擎的iSCSI引导驱动系统及方法
US20060265525A1 (en) * 2005-05-23 2006-11-23 Boyd William T System and method for processor queue to linear block address translation using protection table control based on a protection domain
US20070005815A1 (en) * 2005-05-23 2007-01-04 Boyd William T System and method for processing block mode I/O operations using a linear block address translation protection table
US7464189B2 (en) * 2005-05-23 2008-12-09 International Business Machines Corporation System and method for creation/deletion of linear block address table entries for direct I/O
US7502871B2 (en) * 2005-05-23 2009-03-10 International Business Machines Corporation Method for query/modification of linear block address table entries for direct I/O
US7552240B2 (en) * 2005-05-23 2009-06-23 International Business Machines Corporation Method for user space operations for direct I/O between an application instance and an I/O adapter
US7502872B2 (en) * 2005-05-23 2009-03-10 International Bsuiness Machines Corporation Method for out of user space block mode I/O directly between an application instance and an I/O adapter
TWI273399B (en) * 2005-07-11 2007-02-11 Via Tech Inc Command process method for RAID
US7657662B2 (en) * 2005-08-31 2010-02-02 International Business Machines Corporation Processing user space operations directly between an application instance and an I/O adapter
US20070168567A1 (en) * 2005-08-31 2007-07-19 Boyd William T System and method for file based I/O directly between an application instance and an I/O adapter
US7577761B2 (en) * 2005-08-31 2009-08-18 International Business Machines Corporation Out of user space I/O directly between a host system and a physical adapter using file based linear block address translation
US7500071B2 (en) * 2005-08-31 2009-03-03 International Business Machines Corporation Method for out of user space I/O with server authentication
CN1753406B (zh) * 2005-10-26 2010-06-30 华中科技大学 一种基于iSCSI协议的IP存储控制方法及其装置
US20070156974A1 (en) * 2006-01-03 2007-07-05 Haynes John E Jr Managing internet small computer systems interface communications
US20070258478A1 (en) * 2006-05-05 2007-11-08 Lsi Logic Corporation Methods and/or apparatus for link optimization
US9141557B2 (en) 2006-12-08 2015-09-22 Ashish A. Pandya Dynamic random access memory (DRAM) that comprises a programmable intelligent search memory (PRISM) and a cryptography processing engine
US7996348B2 (en) 2006-12-08 2011-08-09 Pandya Ashish A 100GBPS security and search architecture using programmable intelligent search memory (PRISM) that comprises one or more bit interval counters
JP2008226040A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd 情報処理装置及びコマンド多重度制御方法
TWI348850B (en) * 2007-12-18 2011-09-11 Ind Tech Res Inst Packet forwarding apparatus and method for virtualization switch
CN101741870B (zh) * 2008-11-07 2012-11-14 英业达股份有限公司 因特网小型计算机接口的储存系统
US8655974B2 (en) * 2010-04-30 2014-02-18 International Business Machines Corporation Zero copy data transmission in a software based RDMA network stack
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US9092149B2 (en) 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US8904121B2 (en) * 2011-09-22 2014-12-02 Hitachi, Ltd. Computer system and storage management method
CN102333210B (zh) * 2011-10-28 2014-03-26 杭州华三通信技术有限公司 一种视频数据存储方法及其设备
US9354933B2 (en) * 2011-10-31 2016-05-31 Intel Corporation Remote direct memory access adapter state migration in a virtual environment
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
US9071585B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Copy offload for disparate offload providers
US9251201B2 (en) 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
JP6378044B2 (ja) * 2014-10-31 2018-08-22 東芝メモリ株式会社 データ処理装置、データ処理方法およびプログラム
US20160248628A1 (en) * 2015-02-10 2016-08-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Queue pair state transition speedup
CN104731529A (zh) * 2015-03-17 2015-06-24 浪潮集团有限公司 一种iSCSI存储器的识别与配置使用方法
US10146439B2 (en) * 2016-04-13 2018-12-04 Samsung Electronics Co., Ltd. System and method for high performance lockless scalable target
US10764367B2 (en) 2017-03-15 2020-09-01 Hewlett Packard Enterprise Development Lp Registration with a storage networking repository via a network interface device driver
CN111064680B (zh) * 2019-11-22 2022-05-17 华为技术有限公司 一种通信装置及数据处理方法
US20220398215A1 (en) * 2021-06-09 2022-12-15 Enfabrica Corporation Transparent remote memory access over network protocol

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6034963A (en) * 1996-10-31 2000-03-07 Iready Corporation Multiple network protocol encoder/decoder and data processor
US5920881A (en) * 1997-05-20 1999-07-06 Micron Electronics, Inc. Method and system for using a virtual register file in system memory
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US20020107962A1 (en) * 2000-11-07 2002-08-08 Richter Roger K. Single chassis network endpoint system with network processor for load balancing
US7401126B2 (en) * 2001-03-23 2008-07-15 Neteffect, Inc. Transaction switch and network interface adapter incorporating same
US20030046330A1 (en) * 2001-09-04 2003-03-06 Hayes John W. Selective offloading of protocol processing
US7620692B2 (en) * 2001-09-06 2009-11-17 Broadcom Corporation iSCSI receiver implementation
US6845403B2 (en) * 2001-10-31 2005-01-18 Hewlett-Packard Development Company, L.P. System and method for storage virtualization
US7627693B2 (en) * 2002-06-11 2009-12-01 Pandya Ashish A IP storage processor and engine therefor using RDMA
US7752361B2 (en) * 2002-06-28 2010-07-06 Brocade Communications Systems, Inc. Apparatus and method for data migration in a storage processing device
US8010707B2 (en) * 2002-08-30 2011-08-30 Broadcom Corporation System and method for network interfacing

Also Published As

Publication number Publication date
US20040049603A1 (en) 2004-03-11
CN1487417A (zh) 2004-04-07
TW200404430A (en) 2004-03-16
CN1239999C (zh) 2006-02-01

Similar Documents

Publication Publication Date Title
TWI234371B (en) A method of performing iSCSI commands and a data processing system using the method
TW583544B (en) Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries
US6799220B1 (en) Tunneling management messages over a channel architecture network
US8150935B2 (en) iSCSI receiver implementation
US7577707B2 (en) Method, system, and program for executing data transfer requests
CN100361100C (zh) 对用于单通道适配器的多个资源进行逻辑分区的方法和系统
EP1552409B1 (en) One-shot rdma
Shanley InfiniBand network architecture
US7406481B2 (en) Using direct memory access for performing database operations between two or more machines
US6938138B2 (en) Method and apparatus for managing access to memory
JP5735883B2 (ja) ローカル・アダプタの読み取り操作により操作の完了が確認されるまで操作の肯定応答を遅延させる方法
JP3033935B2 (ja) アダプタ・ハードウェアへのインターフェース方法
US20030061296A1 (en) Memory semantic storage I/O
US7200641B1 (en) Method and system for encoding SCSI requests for transmission using TCP/IP
CN105556930A (zh) 针对远程存储器访问的nvm express控制器
US20060013251A1 (en) Method, system, and program for enabling communication between nodes
TW200404432A (en) Memory management offload for RDMA enabled adapters
US20080181224A1 (en) Apparatus and system for distributing block data on a private network without using tcp/ip
US20130311690A1 (en) Method and apparatus for transferring information between different streaming protocols at wire speed
JPH0981487A (ja) ネットワークデータ転送方法
CN1985492B (zh) 支持iSCSI读操作和iSCSI烟囱的方法和系统
TW583543B (en) Infiniband work and completion queue management via head only circular buffers
US7409432B1 (en) Efficient process for handover between subnet managers
US6898638B2 (en) Method and apparatus for grouping data for transfer according to recipient buffer size
CN104714904A (zh) 采用窗口映射机制的RapidIO控制器及其控制方法

Legal Events

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