新四季網

提供用於i/o適配器的隊列對的方法、系統和存儲介質的製作方法

2023-05-06 11:21:16

專利名稱:提供用於i/o適配器的隊列對的方法、系統和存儲介質的製作方法
技術領域:
本公開內容通常涉及計算機和處理器體系結構、輸入/輸出(I/O)處理、作業系統,以及更具體地說,涉及用於I/O適配器的低等待時間(low-latency)隊列對(QP)。
背景技術:
I/O適配器,諸如能遠程直接存儲器存取(remote direct memoryaccess)(RDMA)的適配器,或RDMA網絡接口卡(RNIC),諸如InfiniBandTM(IB)主機通道適配器(host channel adapter)(HCA),定義了用於在網絡結構上將消息信息從軟體消費者傳送到適配器的隊列對(QPs)。工業標準,諸如可從InfiniBandTrade Association獲得的InfiniBandTM體系結構規格和來自RDMA Consortium的iWarp,規定在QP上攜帶的消息信息是以攜帶屬於該消息的控制信息的工作隊列單元(work queue element,WQE)的形式。此外,一個或多個數據描述符指向將傳送的消息數據或所接收的消息將處的位置。
一些QP應用、諸如高性能計算(HPC)需要降低在將消息從一個計算節點傳送到另一個節點的過程中產生的等待時間。即使在現在,上述的工業標準機制也不再適合高性能計算系統。需要一種增強標準QP語義以便能實現由這些應用所需的更低等待時間同時對現有硬體的影響最小的機制。

發明內容
本發明旨在提出一種用於提供消除與工作隊列單元有關的開銷以及定義為允許將消息直接放在隊列對上所需的機制的低等待時間隊列對的系統、方法和計算機可讀介質。
一個方面是用於提供用於輸入/輸出(I/O)適配器的隊列對的系統,包括主存儲器、I/O適配器和處理器。主存儲器具有發送隊列和接收隊列。I/O適配器將在鏈路上接收的消息放在接收隊列中,並在鏈路上傳送在發送隊列中保存的消息。處理器與主存儲器和I/O適配器進行通信,並且執行主存儲器中的用戶處理(consumer process)。用戶處理存取發送隊列和接收隊列。
另一方面是提供用於I/O適配器的隊列對的方法。I/O適配器將在鏈路上接收的消息放在接收隊列中。I/O適配器在鏈路上傳送保存在發送隊列中的消息。接收隊列和發送隊列在主存儲器中。用戶處理存取發送隊列和接收隊列。用戶處理在與主存儲器和I/O適配器通信的處理器上執行。
另一方面是計算機可讀介質,存儲用於執行提供用於I/O適配器的隊列對的方法的指令。I/O適配器將在鏈路上接收的消息放在接收隊列中。I/O適配器在鏈路上傳送保存在發送隊列中的消息。接收隊列和發送隊列在主存儲器中。用戶處理存取發送隊列和接收隊列。用戶處理在與主存儲器和I/O適配器通信的處理器上執行。


根據下述說明書、附加權利要求和附圖,將更好地理解本發明的這些和其他特徵、方面和優點,其中圖1是用於本發明的實施例的示例性操作環境的、現有技術中的分布式計算系統的圖;圖2是用於本發明的實施例的示例性操作環境的一部分的、現有技術中的主機通道適配器的圖;圖3是示例說明用於本發明的實施例的示例性操作環境的一部分的、現有技術中的工作請求的處理的圖;圖4是示例說明現有技術中的分布式計算機系統的一部分的圖,所述系統的一部分是用於本發明的實施例的示例性操作環境的一部分,其中使用可靠的連接服務;圖5是用於本發明的實施例的示例性操作環境的一部分的、用在現有技術中的分層通信體系結構的圖;圖6是現有技術中的標準隊列對結構的框圖;以及圖7是低等待時間隊列對的示例性實施例的框圖。
具體實施例方式
本發明的示例性實施例提供了消除與工作隊列單元有關的開銷並且定義為允許將消息直接放在隊列對上所需的機制的低等待時間隊列對。示例性實施例最好在分布式計算系統、諸如具有終端節點、交換機、路由器和互連這些部件的鏈路的現有技術系統區域網(SAN)中實現。圖1至5顯示了用於本發明的實施例的示例性操作環境的各個零件。圖6顯示了現有技術中的標準隊列對結構。圖7顯示了低等待時間隊列對的示例性實施例。
圖1是分布式計算機系統的圖。圖1表示的分布式計算機系統採用系統區域網(SAN)100的形式,並且僅是為示例性目的而提供的。下面所述的本發明的示例性實施例能在各種其他類型和結構的計算機系統上實現。例如,實現示例性實施例的計算機系統的範圍從具有一個處理器和少量輸入/輸出(I/O)適配器的小伺服器到具有幾百或幾千個處理器和幾千個I/O適配器的巨大並行巨型計算機系統。
SAN100是分布式計算機系統內的高帶寬、低等待時間的網絡互連節點。節點是連接到網絡的一個或多個鏈路以及形成網絡內的消息的源和/或目的地的任何部件。在所述的例子中,SAN100包括以主機處理器節點102、主機處理器節點104、冗餘陣列獨立磁碟(RAID)子系統節點106和I/O底盤節點108的形式的節點。在圖1中所示的節點僅用於示例目的,因為SAN100能連接任意數目和任意類型的獨立處理器節點、I/O適配器節點和I/O設備節點。這些節點的任何一個都能充當終端節點,在此定義為SAN100中發起或最終使用消息或幀的設備。
在一個示例性實施例中,分布式計算機系統中存在錯誤處理機制,其中,該錯誤處理機制允許分布式計算機系統、諸如SAN100中的終端節點間的可靠連接或可靠數據報通信。
消息,如在此所使用的,是數據交換的應用定義的單位,其是協作的處理過程間的通信的基本單位。分組是由連網協議頭部和/或尾部封裝的數據的一個單位。頭部通常提供用於引導幀通過SAN100的控制和路由信息。尾部通常包含用於確保不在破壞內容的情況下遞送分組的控制和循環冗餘校驗(CRC)。
SAN100包含支持分布式計算機系統內的I/O和處理器間通信(IPC)的通信和管理基礎設施。圖1所示的SAN100包括交換通信結構116,其允許許多設備在安全、遠程管理的環境中同時利用高帶寬和低等待時間傳送數據。終端節點能在多個埠上通信以及利用通過SAN結構的多個通路。能將通過圖1所示的SAN的多個埠和通路用於容錯和增加的帶寬數據傳送。
圖1中的SAN100包括交換機112、交換機114、交換機146和路由器117。交換機是將多個鏈路連接在一起並且允許使用小的頭部目的地局部標識符(DLID)欄位將分組從一個鏈路路由到另一鏈路的設備。路由器是將多個子網連接在一起並且能使用大的頭部目的地全局唯一標識符(DGUID)將幀從第一子網的一個鏈路路由到第二子網中的另一鏈路的設備。
在一個實施例中,鏈路是任何兩個網絡結構單元、諸如終端節點、交換機或路由器間的全雙工信道。示例性的適當的鏈路包括但不限於銅電纜、光纜以及底板和印刷電路板上的印刷電路銅線。
對可靠服務類型,終端節點,諸如主機處理器終端節點和I/O適配器終端節點生成請求分組並返回應答分組。交換機和路由器沿從源點到目的地傳遞分組。除在網絡中的每一級處更新的不同CRC尾部欄位外,交換機不變地向前傳送分組。當路由分組時,路由器更新不同CRC尾部欄位並修改頭部中的其他欄位。
在圖1所示的SAN100中,主機處理器節點102、主機處理器節點104和I/O底盤108包括至少一個通道適配器(CA)以與SAN100進行接口。在一個實施例中,每個通道適配器是充分詳細地實現到在SAN結構116上傳送的源或接收器(sink)分組的通道適配器接口的端點。主機處理器節點102包含以主機通道適配器118和主機通道適配器120的形式的通道適配器。主機處理器節點104包含主機通道適配器122和主機通道適配器124。主機處理器節點102還包括由總線系統134互連的中央處理單元126-130和存儲器132。主機處理器節點104類似地包括由總線系統144互連的中央處理單元136-140和存儲器142。
主機通道適配器118和120提供到交換機112的連接,而主機通道適配器122和125提供到交換機112和114的連接。
在一個實施例中,主機通道適配器用硬體實現。在該實現中,主機通道適配器硬體卸下許多中央處理單元I/O適配器通信開銷。主機通道適配器的該硬體實現還允許交換網上的多個並行通信,而沒有與通信協議有關的傳統開銷。在一個實施例中,圖1中的主機通道適配器和SAN100為分布式計算機系統的I/O和處理器間通信(IPC)用戶提供零處理器複製數據傳送,而不包含作業系統內核處理,並利用硬體來提供可靠的容錯通信。
如圖1所示,路由器117耦合到連到其他主機或其他路由器的廣域網(WAN)和/或區域網(LAN)連接。圖1中的I/O底盤108包括I/O交換機146和多個I/O模塊148-156。在這些例子中,I/O模塊採用適配器卡的形式。圖1中所示的示例性適配器卡包括用於I/O模塊148的SCSI適配器卡、到用於I/O模塊152的光纖通道集線器和光纖通道判優環(FC-AL)設備的適配器卡、用於I/O模塊150的Ethernet適配器卡、用於I/O模塊154的圖形適配器卡、以及用於I/O模塊156的視頻適配器卡。能實現任何已知類型的適配器卡。I/O適配器還包括I/O適配器中的交換機以便將適配器卡連接到SAN結構。這些模塊包含目標通道適配器158-166。
在該例子中,圖1中的RAID子系統節點106包括處理器168、存儲器170、目標通道適配器(TCA)172和多個冗餘和/或帶狀存儲盤單元174。目標通道適配器172能夠是全功能主機通道適配器。
SAN100處理用於I/O的數據通信和處理器間通信。SAN100支持用於I/O所需的高帶寬和可擴展性(scalability),並且還支持用於處理器間通信所需的極其低的等待時間和低CPU開銷。用戶客戶機還能繞過作業系統內核處理和直接存取網絡通信硬體,諸如主機通道適配器,這允許高效的消息傳遞協議。SANl00適合於當前計算模型,並且是用於I/O和計算機群集通信的新形式的構造塊。另外,圖1中的SAN100允許I/O適配器節點在它們間通信或與分布式計算機系統中的任一或全部處理器節點通信。通過連接到SAN100的I/O適配器,最終I/O適配器節點基本上具有與SAN100中的任何主機處理器節點相同的通信能力。
在一個實施例中,圖1所示的SAN100支持通信語義(channelsemantics)和存儲器語義(memory semantics)。通道語義有時稱為發送/接收或推進通信(push communication)操作。通道語義是在傳統的I/O通道中採用的通信類型,其中,源設備推進數據,並且目的地設備確定數據的最終目的地。在通道語義中,從源處理傳送的分組指定地處理的通信埠,但不指定分組將被寫入在目的地處理的存儲器空間的何位置處。因此,在通道語義中,目的地處理預先分配何處放置所傳送的數據。
在存儲器語義中,源處理直接讀取或寫入遠程節點目的地處理的虛擬地址空間。遠程目的地處理僅需要與用於數據的緩衝器的位置通信,並且不需要包括在任一數據的傳送中。因此,在存儲器語義中,源處理髮送包含目的地處理的目的地緩衝存儲器地址的數據分組。在存儲器語義中,目的地處理預先準許源處理訪問其存儲器。
對I/O和處理器間通信來說,通常通道語義和存儲器語義都是必需的。典型的I/O操作採用通道和存儲器語義的組合。在圖1所示的分布式計算機系統的示例性I/O操作中,主機處理器節點,諸如主機處理器節點102通過使用通道語義向盤I/O適配器、諸如RAID子系統目標通道適配器(TCA)172發送盤寫入命令,來啟動I/O操作。盤I/O適配器檢查該命令,並且使用存儲器語義來直接從主機處理器節點的存儲器空間讀取數據緩衝器。在讀取數據緩衝器後,盤I/O適配器採用通道語義來將I/O完成消息推回到主機處理器節點。
在一個示例性實施例中,在圖1中所示的分布式計算機系統執行採用虛擬地址和虛擬存儲器保護機制的操作以便確保對所有存儲器的正確和適當存取。在這種分布式計算機系統中運行的應用不要求使用用於任何操作的物理尋址。
現在,參考圖2,描述現有技術中的主機通道適配器的圖。圖2所示的主機通道適配器200包括一組隊列對(QP)202-210,用來將消息傳送到主機通道適配器埠212-216。通過虛擬通路(VL)218-234,引導數據緩衝到主機通道適配器埠212-216,其中,每個VL具有其自己的流量控制。子網管理器通過用於每個物理埠的局部地址,即埠的LID,配置通道適配器。子網管理器代理(SMA)236是為配置通道適配器的目的而與子網管理器通信的實體。存儲器變換和保護(MTP)238是將虛擬地址變換成物理地址並驗證存取權限的機制。直接存儲器存取(DMA)240相對於隊列對202-210,使用存儲器242,提供直接存儲器存取操作。
單個通道適配器,諸如圖2所示的主機通道適配器200,能支持幾千個隊列對。相反,I/O適配器中的目標通道適配器通常支持更少數目的隊列對。每個隊列對包括發送工作隊列(SWQ)和接收工作隊列。發送工作隊列用來發送通道和存儲器語義消息。接收工作隊列接收通道語義消息。客戶調用作業系統專用編程接口,其在此稱為Verbs,以便將工作請求(WR)放在工作隊列上。
現在參考圖3,描述舉例說明現有技術中的工作請求的處理的圖。在圖3中,存在接收工作隊列300、發送工作隊列302和完成隊列304,用於處理來自以及用於用戶306的請求。來自用戶306的這些請求最終被發送到硬體308。在該例子中,用戶306生成工作請求310和312,以及接收工作完成314。如圖3所示,放在工作隊列上的工作請求被稱為工作隊列單元(WQE)。
發送工作隊列302包含工作隊列單元(WQEs)322-328,其描述了將在SAN結構上傳送的數據。接收工作隊列300包含工作隊列單元(WQE)316-320,其描述何處放置來自SAN結構的到來通道語義數據。工作隊列單元由主機通道適配器中的硬體308處理。
Verbs還提供用於從完成隊列304檢索已完成工作的機制。如圖3所示,完成隊列304包含完成隊列單元(CQE)330-336。完成隊列單元包含有關先前已完成的工作隊列單元的信息。完成隊列304用來創建用於多個隊列對的完成通信的單個點。完成隊列單元是完成隊列上的數據結構。該單元描述已完成的工作隊列單元。完成隊列單元包含足夠的信息來確定隊列對和指定完成的工作隊列單元。完成隊列上下文是包含指針、長度和管理各個完成隊列所需的其他信息的信息塊。
圖3所示的支持發送工作隊列302的示例性工作請求如下。發送工作隊列是用來將一組局部數據段推進到由遠程節點的接收工作隊列單元參考(reference)的數據段的通道語義操作。例如,工作隊列單元328包含到數據段4338、數據段5340和數據段6342的參考。每個發送工作請求的數據段包含虛擬連續的存儲器空間。用來參考局部數據段的虛擬地址在創建局部隊列對的處理的地址上下文中。
在一個實施例中,圖3所示的接收工作隊列300僅支持一種工作隊列單元,其稱為接收工作隊列單元。接收工作隊列單元提供描述向其中寫入到來的發送消息的局部存儲器空間的通道語義操作。接收工作隊列單元包括描述幾個虛擬連續的存儲器空間的散射列表(scatterlist)。到來的發送消息被寫入這些存儲器空間中。虛擬地址在創建局部隊列對的處理的地址上下文中。
對處理器間通信,用戶模式軟體處理通過隊列對,直接從緩衝器駐留在存儲器中的位置處傳送數據。在一個實施例中,通過隊列對的傳送繞過作業系統並消耗更少主機指令周期。隊列允許零處理器複製數據傳送而不涉及作業系統內核。零處理器複製數據傳送提供了對高帶寬和低等待時間通信的有效支持。
當創建隊列對時,設置隊列對以便提供選定類型的傳輸服務。在一個實施例中,實現本發明的分布式計算機系統支持四種傳輸服務可靠連接、不可靠連接、可靠數據報和不可靠數據報連接服務。
利用可靠連接服務以便在分布式處理間通信的分布式計算機系統的一部分通常如圖4所示。圖4中的分布式計算機系統400包括主機處理器節點1、主機處理器節點2,以及主機處理器節點3。主機處理器節點1包括處理A410。主機處理器節點3包括處理C420和處理D430。主機處理器節點2包括處理E440。
主機處理器節點1包括隊列對4、6和7,每個隊列對具有發送工作隊列和接收工作隊列。主機處理器節點2具有隊列對9,主機處理器節點3具有隊列對2和5。分布式計算機系統400的可靠連接服務將本地隊列對與一個並且僅僅一個遠程隊列對關聯。因此,隊列對4用來與隊列對2通信;隊列對7用來與隊列對5通信;以及隊列對6用來與隊列對9通信。
位於可靠連接服務中的一個隊列對上的WQE使數據被寫入由連接的隊列對的接收WQE參考的接收存儲器空間中。RDMA操作在連接隊列對的地址空間上操作。
在一個實施例中,因為硬體維持順序號並應答所有分組傳送,所以使可靠連接服務可靠。硬體和SAN驅動器軟體的組合重試任何失敗的通信。隊列對的處理客戶機即使在存在誤碼、運行下接收以及網絡擁塞的情況下,也能獲得可靠通信。如果有備選的通路存在於SAN結構中,那麼即使在結構交換機、鏈路或通道適配器埠發生故障的情況下,也能維持可靠通信。
另外,可以利用應答來在SAN結構上可靠地傳送數據。應答可以是,或可以不是處理級應答,即驗證接收處理已經使用數據的應答。作為選擇,應答可以是僅表示數據已經到達其目的地的應答。
實現本發明的分層通信體系結構500的一個實施例通常如圖5所示。圖5的分層體系結構圖顯示了數據通信通路的各個層以及層間傳遞的數據和控制信息的組織結構。
主機通道適配器終端節點協議層(由例如終端節點511所採用的)包括由用戶503所定義的上層協議502、傳輸層504、網絡層506、鏈路層508和物理層510。交換層(由例如交換機513採用的)包括鏈路層508和物理層510。路由層(由例如路由器515採用)包括網絡層506、鏈路層508和物理層510。
分層體系結構500通常遵循典型通信棧的主要原則。關於終端節點511的協議層,例如,上層協議502採用Verbs來在傳輸層504創建消息。網絡層506在網絡子網(516)間路由分組。鏈路層508在網絡子網(518)內路由分組。物理層510將每個位或位組發送到其他設備的物理層。每一層不知道上或下層如何執行它們的功能。
用戶503和505表示將其他層用於在終端節點間通信的應用或處理。傳輸層504提供端對端消息移動。在一個實施例中,傳輸層提供如上所述的四種傳輸服務可靠連接服務、可靠數據報服務、不可靠數據報服務和原始數據報服務。網絡層506通過一個子網或多個子網執行到目的地終端節點的分組路由。鏈路層508執行在鏈路上的流量受控的、糾錯的和區分優先級的分組遞送。
物理層510執行技術相關的位傳輸。經鏈路522、524和526,在物理層間傳遞位或位組。鏈路能用印刷電路銅線、銅電纜、光纜或通過其他適當的鏈路實現。
圖6表示現有技術中標準的隊列對結構。圖6通過點划水平線分成兩部分,即線上的主存儲器600和線下的主機通道適配器(HCA)602。
主存儲器600保持發送隊列604和接收隊列606,它們組成隊列對608。這些隊列包括工作隊列單元(WQE)。發送隊列中的每個WQE描述將在鏈路上傳送的消息的特性和位置。例如,WQE1 610指向消息1611,WQE2 612指向消息2613,WQE3 614指向消息3615,WQE4 616指向消息4 617。此外,用戶軟體處理保持發送隊列尾指針618和接收隊列尾指針620。
HCA602包括QP表622,它具有多個條目624(QPTEs a/k/a QP上下文)。每個條目626包括發送隊列頭指針628、接收隊列頭指針630、發送隊列加法器計數636、接收隊列加法器計數638以及其他信息640。
圖6所示的標準隊列對用在傳送和接收消息的過程中。
為傳送消息,HCA602首先取出WQE。然後,通過地址轉換處理,由WQE中的虛擬地址、密鑰和長度信息確定主存儲器中的消息的物理地址。接著,取出主存儲器600中的消息。最後,構建一個或多個分組以便在鏈路上傳送該消息。
當HCA602在鏈路上接收分組時,分組頭部的一部分包括QP號。適配器將分組中的消息放在具有那個號的QP608的接收隊列606上。然後,取出接收隊列606的頭部處的WQE(WQE1 660)以便確定將該消息放在主存儲器600中的何處。通過用於那個QP號的QP表622的條目626中的接收隊列頭指針630,指向接收隊列的頭部。HCA602取出WQE(WQE1 660),其包含描述放置該消息的位置的虛擬地址、密鑰和長度,HCA執行變換以便確定物理地址,然後,HCA將該消息放在該處。
圖7顯示了低等待時間隊列對的示例性實施例。低等待時間是指用來將消息從一個節點傳送到另一個節點所花費的時間。有一些性能關鍵的應用,諸如高性能計算,其中需要低等待時間。例如,與使用本發明的示例性實施例所花費的時間相比,具有標準QP的I/O適配器的一些建模處理花費約兩倍的時間來將消息從一個節點中的存儲器傳送到另一個節點中的存儲器。
圖7通過點划水平線分成兩部分,即線上的主存儲器700和線下的I/O適配器702。主存儲器700與處理器、諸如伺服器有關。在處理器上運行的用戶軟體使用由硬體產生器、I/O適配器702產生的數據。數據可以是消息或任何類型的數據。I/O適配器702的例子包括支持RDMA(RDMA-capable)的適配器或RNIC、HCA或任何其他類型的適配器。最好是,I/O適配器702相對靠近主存儲器700。
主存儲器700保持發送隊列704和接收隊列706,它們組成隊列對708。
適配器702包括QP表712,它具有按QP號716索引的多個條目(QPTEs a/k/a QP上下文)。每個條目718包括發送隊列頭指針720、接收隊列頭指針722、消息的發送隊列長度724、消息的接收隊列長度726、發送隊列加法器計數728、接收隊列加法器計數730、消息的發送隊列號732、消息的接收隊列數734、每個完成的多個發送隊列消息738、接收隊列完成與否740以及其他信息742。最好是,隊列表712中的信息在I/O適配器中被高速緩存。
例如,在傳送和接收消息的過程中,使用圖7所示的示例性低等待時間隊列對。為傳送消息710,用戶應用簡單地將710消息直接放在發送隊列704上。用戶通知I/O適配器702通過將那個號碼存儲在發送隊列加法器計數718中,已經將一個或多個消息710放在發送隊列704上。然後,I/O適配器702直接從主存儲器710取出由發送隊列頭指針720參考的消息,並構建分組以便在鏈路上發送。當適配器702在鏈路上接收分組時,適配器702簡單地直接在接收隊列706上移動消息710。因此,等待時間低於圖6所示的標準隊列對並且更高效。
示例性低等待時間隊列對的一個應用是在高性能計算環境中,其中,有在集群中連接的多個節點並且在非常大的任務上執行並行處理。數據和控制消息在節點間流動。圖7的示例性實施例將有助於增加這種系統的處理速度。通常,在這種系統中的消息可能是128位元組長。
與圖6相比,沒有用在圖7所示的示例性實施例中的WQE。消除WQEs出現了在圖7的示例性實施例中解決的四個問題。
第一,適配器702需要在沒有任何WQE的情況下,能查找將傳送的消息710。這通過將消息710直接放在發送隊列704上來解決。
第二,適配器702需要知道接收或將傳送的消息710的長度。這通過生成如由LL消息724的SQ長度和LL消息726的RQ長度所述的QP表條目718的特性、即長度來解決。該長度是固定大小,這對適配器702硬體是有利的。消息大小的例子包括128位元組、256位元組、512位元組等等。
第三,軟體用戶需要成功消息傳送的完成通知以便回收隊列上的空間。傳統上,這種信息是WQE中的可選擇參數。期望每次生成用於不只一個消息710的完成隊列條目,以便降低帶寬和提高性能。因此,每個QP表條目718包括每個完成的多個發送隊列消息738。每個完成的發送隊列消息數738可以是任何所需數,包括一。
類似地,軟體用戶需要知道何時接收消息710。這通過全有或全無(all-or-nothing)選項來解決,其是QP表條目718中的接收隊列完成與否740欄位。在「全有」模式中,對所接收的每個710消息給出完成。在「全無」模式中,對所接收的消息710,永不給出完成。在這種情況下,接收消息710的事實被嵌入在接收隊列706的消息710本身中。例如,消息710內的有效位能由軟體用戶詢問以確定何時接收有效消息710。
第四,適配器702需要知道何時將隊列對708配置成低等待時間隊列對。這通過生成配置選項、即低等待時間來解決。例如,當創建隊列對時,軟體用戶能將隊列對配置成低等待時間隊列對708或標準隊列對608(圖6)。
本發明的示例性實施例具有許多優點。本發明的示例性實施例提供了消除與工作隊列單元有關的開銷的低等待時間隊列對並且定義了允許將消息直接放在隊列對上所需的機制。能在鏈路的發送和接收端實現這些節省。仿真結果已經表明使用本發明能使節點到節點的等待時間大約減半。另外,示例性實施例能與不實現那些示例性實施例的其他標準節點互相操作,而沒有不利影響(但是不實現當在兩個節點上實現時的全部性能好處)。
如上所述,可以以用於實施那些處理的計算機實現的處理和裝置的形式,實現本發明的實施例。本發明的實施例也可以用包含有形介質、諸如軟盤、CD-ROMs、硬碟驅動器或任何其他計算機可讀存儲介質中包含的指令的電腦程式代碼的形式來實現,其中,當將電腦程式代碼加載到計算機中並由其執行時,計算機變為用於實施本發明的裝置。本發明也能用電腦程式代碼的形式實現,例如,無論該程序代碼是否存儲在存儲介質中、加載到和/或由計算機執行、或在一些傳輸介質上、諸如電線或電纜、通過光纖或經電磁輻射傳送,其中,當將電腦程式代碼加載到計算機中並由其執行時,計算機變為用於實施本發明的裝置。當在通用微處理器上執行時,電腦程式碼段配置微處理器以便創建專用邏輯電路。
儘管已經參考示例性實施例描述了本發明,但本領域的技術人員將理解到可以做出各種改變並且可以用等效物代替其元件,而不背離本發明的範圍。此外,各種部件可以用硬體、軟體、或固件或其任意組合來實現。最後,可以做出各種改進來使特定情形或材料適用於本發明的教導,而不背離其本質範圍。因此,本發明不限於作為用於實現本發明所預期的最佳或唯一方式公開的特定實施例,而是本發明將包括落在附加權利要求書範圍內的所有實施例。使用術語第一、第二等不表示任何順序或重要性,而是使用術語第一、第二等來區別元件。使用術語一、一個等不表示數量的限制,相反表示存在至少一個引用項。
權利要求
1.一種用於提供用於輸入/輸出-I/O適配器的隊列對的系統,包括主存儲器,具有發送隊列和接收隊列;I/O適配器,用於將在鏈路上接收的消息放在所述接收隊列中,以及用於在鏈路上傳送在所述發送隊列中保存的消息;以及處理器,與所述主存儲器和所述I/O適配器通信,所述處理器執行所述主存儲器中的用戶處理,所述用戶處理存取發送隊列和接收隊列。
2.如權利要求1所述的系統,其中,所述發送隊列和所述接收隊列不保持工作隊列單元-WQE。
3.如權利要求1所述的系統,其中,所述I/O適配器包括隊列對表,所述隊列對表包括用於所述發送隊列的發送隊列特性和用於所述接收隊列的接收隊列特性。
4.如權利要求3所述的系統,其中,所述發送隊列特性包括消息長度。
5.如權利要求3所述的系統,其中,所述接收隊列特性包括消息長度。
6.如權利要求3所述的系統,其中,所述隊列對表包括用於當消息已經放在所述發送隊列上時通知所述I/O適配器的發送隊列加法器計數器。
7.如權利要求3所述的系統,其中,所述特性包括每個完成的多個發送隊列消息。
8.如權利要求3所述的系統,其中,所述特性包括是否具有接收隊列完成。
9.如權利要求1所述的系統,其中,所述用戶處理配置特定隊列對,以便所述I/O適配器將指向在所述鏈路上接收的消息的工作隊列單元-WQE放在用於那個特定隊列對的接收隊列中,以及在所述鏈路上傳送由保存在用於那個特定隊列對的發送隊列中的WQE指向的消息。
10.一種提供用於輸入/輸出-I/O適配器的隊列對的方法,包括由I/O適配器將在鏈路上接收的消息放在主存儲器的接收隊列中;由I/O適配器在鏈路上傳送保存在發送隊列中的消息,所述發送隊列在所述主存儲器中;由用戶處理存取所述發送隊列和所述接收隊列,所述用戶處理在與所述主存儲器和所述I/O適配器通信的處理器上執行。
11.如權利要求10所述的方法,其中,所述發送隊列和所述接收隊列不保存工作隊列單元-WQE。
12.如權利要求10所述的方法,其中,所述I/O適配器包括隊列對表,所述隊列對表包括用於所述發送隊列的發送隊列特性和用於所述接收隊列的接收隊列特性。
13.如權利要求12所述的方法,其中,所述發送隊列特性包括消息長度。
14.如權利要求12所述的方法,其中,所述接收隊列特性包括消息長度。
15.如權利要求12所述的方法,其中,所述隊列對表包括用於當消息已經放在所述發送隊列上時,通知所述I/O適配器的發送隊列加法器計數器。
16.如權利要求12所述的方法,其中,所述特性包括每個完成的多個發送隊列消息。
17.如權利要求12所述的方法,其中,所述特性包括是否具有接收隊列完成。
18.如權利要求10所述的方法,進一步包括由所述用戶處理配置特定隊列對,以便所述I/O適配器將指向在所述鏈路上接收的消息的工作隊列單元-WQE放在用於那個特定隊列對的接收隊列中,以及在所述鏈路上傳送由保存在用於那個特定隊列對的發送隊列中的WQE指向的消息。
19.一種計算機可讀介質,存儲用於執行提供用於輸入/輸出-I/O適配器的隊列對的方法的指令,所述方法包括由I/O適配器將在鏈路上接收的消息放在主存儲器的接收隊列中;由I/O適配器在鏈路上傳送保存在發送隊列中的消息,所述發送隊列在所述主存儲器中;由用戶處理存取所述發送隊列和所述接收隊列,所述用戶處理在與所述主存儲器和所述I/O適配器通信的處理器上執行。
全文摘要
為I/O適配器提供低等待時間隊列對(QP),其消除了與工作隊列單元(WQEs)有關的開銷,並且定義了為允許將消息直接放在隊列對上所需的機制。
文檔編號H04L12/56GK1815458SQ20051012461
公開日2006年8月9日 申請日期2005年11月9日 優先權日2004年11月10日
發明者戴維·F.·克拉多克, 託馬斯·A.·格裡格, 凱文·J.·雷利 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀