專利名稱::用于NGIO/InfiniBand的制作方法
技術領域:
:本發明涉及數據網絡,更具體地說,涉及具有用于管理和驗證遠程密鑰的機制的主機結構適配器,所述遠程密鑰對應于在這種數據網絡中未處理(outstanding)的數據事務(例如,讀/寫操作)。
背景技術:
:數據網絡通常由通過點對點鏈路連接的多個獨立并且群集的節點的網絡組成。每個節點都可以是中間節點,諸如交換機/交換元件、中繼器以及路由器,或者是所述網絡中的終端節點,諸如主機系統以及I/O單元(例如,數據服務器、存儲器子系統以及網絡設備)。消息數據往往經由中間節點從源傳送到目的地。現有的互連傳輸機制,諸如在由PCI專業組(SIG)于1995年6月1日提出的“PCILocalBusSpecification,Revision2.1(PCI本地總線規范,修訂版2.1)”中描述的PCI(PeripheralComponentInterconnect(外圍部件互連))總線,可以被利用以經由數據網絡來遞送往返于I/O設備的消息數據,所述I/O設備也就是存儲器子系統和網絡設備。然而,PCI總線利用共享的存儲器映像總線體系結構來遞送往返于存儲器子系統和網絡設備的消息數據,其中所述共享的存儲器映像總線體系結構包括一條或多條共享的I/O總線。共享的I/O總線會因在存儲器以及網絡外圍設備中所要求的總線判優而造成嚴重的性能制約,以及當需要額外的存儲器和網絡外圍設備時引起可靠性、靈活性以及可擴展性的問題。因此,現有的互連技術已經無法跟上計算機的發展和因此產生的增加了的需求,并且無法承受由因特網的迅速發展帶來的強加于服務器集群、應用處理以及企業計算的負擔。針對現有PCI總線體系結構的缺陷的出現的解決方案是InfiniBandTM及其前身下一代I/O(NextGenerationI/O)(NGIO),所述下一代I/O(NGIO)已經由Intel公司以及其他公司研發出來,用以提供基于標準的I/O平臺,所述I/O平臺為了在數據網絡中的終端節點間傳送可靠的數據而使用了交換結構以及獨立的I/O通道來代替共享存儲器映像總線體系結構,正如NGIOForum在1999年7月20日“NextGenerationInput/Output(NGIO)Specification(下一代輸入/輸出(NGIO)規范)”以及InfiniBandTMTradeAssociation在2000年10月24日提出的“InfiniBandTMArchitectureSpecification(InfiniBandTM體系結構規范)”所闡述的。使用NGIO/InfiniBandTM,主機系統可以使用虛擬接口(VI)結構與一個或多個遠程系統進行通信,其中所述虛擬接口結構符合由Compaq公司、Intel公司以及Microsoft公司,于1997年12月16日提出的“VirtualInterface(VI)ArchitectureSpecification,Version1.0(虛擬接口(VI)體系結構規范,第1.0版)”。NGIO/InfiniBandTM以及VI硬件和軟件可以常常用來支持兩個存儲器區域之間的數據傳送,特別是支持經由一條或多條指定通道在不同系統上的兩個存儲器區域之間的數據傳送。使用VI體系結構的每個主機系統可以包括多個VI,也稱為工作隊列(WQ),所述工作隊列成對形成,并包括入站和出站隊列,其中工作請求(WR)經由數據網絡加以郵送,以描述數據移動操作以及描述要被移動以便處理和/或傳輸的數據的位置。每個主機系統可以用作啟動消息數據傳送(信息發送操作)的源(啟動器)系統,或者用作消息傳遞操作(信息接收操作)的目標系統。從用戶提交的工作請求使得稱為工作隊列元件(WorkQueueElement“WQE”)的工作指令被郵送到與給定的網絡接口卡相關聯的工作隊列上,用于數據傳送操作,其中所述數據傳送操作諸如發送/接收操作以及遠程存儲器直接訪問ARDMA@的讀/寫操作。可以創建和管理在主機系統上的通信設備間的通過數據網絡一條或多條通道,以便能夠執行所請求的操作。由于NGIO/InfiniBandTM是在市場中尚未出現的新興互連技術,因而沒有用于NGIO/InfiniBandTM應用的已知具體實現接口機制。更具體地說,還不存在已知的用于主機系統的網絡接口卡,來使用基于通道、交換結構的體系結構將其連接到數據網絡上,以支持主機系統上通信設備間或者主機系統間或者經由數據網絡的數據移動操作。現有的用于主機系統的網絡接口卡不適用于新興的NGIO/InfiniBandTM互連技術,并且因此無法使NGIO/InfiniBandTM的功能性最優。由此,需要一種為NGIO/InfiniBandTM應用而特別設計的、性能驅動的如下主機結構適配器,所述主機結構適配器安裝在數據網絡中的主機系統上并使用基于通道、交換結構的體系結構。此外,還需要一種方法或機制,所述方法或機制用于經由基于通道的交換結構在這種數據網絡中來管理和驗證對應于未完成數據事務(例如,讀/寫操作)的遠程密鑰。附圖簡述當結合附圖考慮并參考一下的詳細描述,將使本發明示范性實施例得到更完全的理解,以及將同樣容易理解本發明的多個附帶的優點變得更加易于理解,在所述附圖中,同樣的參考符號表示同一或相似組件,其中圖1舉例說明了依照本發明實施例的示例性數據網絡,所述數據網絡具有通過基本交換機的相應鏈路互連的幾個節點;圖2舉例說明了依照本發明實施例的另一個示例性數據網絡,所述數據網絡具有通過多級交換結構的相應鏈路互連的多個節點;圖3A-3D舉例說明了在依照本發明實施例的示例性數據網絡中的,從源節點傳輸到目的地節點的消息數據的分組格式以及采用“工作隊列元件”(WQE)形式被郵送的對數據傳送操的工作請求;圖4A-4B舉例說明了依照本發明不同實施例的示例性數據網絡的示例性主機系統的框圖;圖5舉例說明依照本發明實施例的主機系統的操作系統(OS)的示例性軟件驅動程序堆棧;圖6舉例說明依照本發明實施例的使用NGIO/InfiniBandTM以及VI體系結構的示例性主機系統的框圖,所述主機系統經由交換結構來支持數據傳送;圖7舉例說明依照本發明實施例的依照NGIO/InfiniBandTM以及VI體系結構加以配置的示例性主機結構適配器,所述主機結構適配器經由交換結構100’來支持數據傳送。圖8舉例說明依照本發明實施例的示例性主機結構適配器的微引擎(ME);圖9舉例說明依照本發明實施例的主機結構適配器的微引擎(ME)的示例性實現方式;圖10舉例說明依照本發明實施例的示例性的遠程密鑰管理器塊(RMB),所述塊用于檢查主機存儲器中與未處理的RDMA操作對應的遠程密鑰的有效性;圖11舉例說明依照本發明實施例的示例性高級遠程密鑰的驗證;以及圖12舉例說明依照本發明實施例的遠程密鑰管理器塊(RMB)的示例性的單個密鑰驗證。圖13A-13H舉例說明依照本發明實施例的正常遠程密鑰管理器塊(RMB)操作的示例性時序圖;圖14A-14H舉例說明依照本發明實施例的正常遠程密鑰管理器塊(RMB)操作完成的示例性時序圖;圖15A-15H舉例說明依照本發明實施例的、在其中存在保護范圍(ProtectionDomain,PD)失配的遠程密鑰管理器塊(RMB)操作的示例性時序圖;圖16A-16K舉例說明依照本發明實施例的、在其總存在多個密鑰失配的遠程密鑰管理器塊(RMB)操作的示例性時序圖;圖17A-17M舉例說明依照本發明實施例的、在其中存在多個密鑰失配于間歇式RQ存儲器訪問的遠程密鑰管理器塊(RMB)操作的示例性時序圖。在所有的附圖描述中,在虛擬接口(VI)體系結構規范中闡述的術語“VI”,也通稱為在“NextGenerationInput/Output(NGIO)Specification(下一代輸入/輸出(NGIO)規范)”中闡述的工作隊列對(WQP),或者簡稱為在“InfiniBandTMArchitectureSpecification(InfiniBandTM體系結構規范)”中所闡述的隊列對(QP)。由此,“VI”、“WQP”以及“QP”可互換使用并且它們表示同一意思。詳細描述本發明適用于所有類型的數據網絡、I/O硬件適配器以及芯片組,包括將諸如計算機、服務器、外設、存儲器子系統以及用于數據通信的通信設備的終端站鏈接在一起的后繼芯片設計(follow-onchipdesign)。這種數據網絡的例子可包括局域網(LAN)、廣域網(WAN)、校園網(CAN)、城域網(MAN)、全球區域(globalarea)網(GAN)、無線個人區域網(WPAN)、以及系統區域網(SAN),所述系統區域網(SAN)包括使用下一代I/O(NGIO)、FutureI/O(FIO)、InfiniBandTM的新開發的計算機網絡和包括基于通道、交換結構的體系結構的那些網絡,所述基于通道、交換結構的體系結構可以隨著計算機技術的進步變為可用來提供可擴展的性能。LAN系統可包括以太網、FDDI(光纖分布式數據接口)令牌環LAN、異步傳輸模式(ATM)LAN、光纖通道以及無線LAN。然而,為簡單起見,以下的論述將主要集中在包括一個或多個硬件結構適配器的主機系統上,用于在具有多個示例性節點(例如,計算機、服務器以及I/O單元)的簡單數據網絡中為通道連接提供物理鏈路,所述示例性節點由相應的鏈路和交換機互連,不過本發明的范圍并不限于此。現在將注意力集中在附圖、特別是圖1上,在所述圖中舉例說明了依照本發明實施例的簡單數據網絡10,所述簡單數據網絡10具有幾個用于數據通信的互連節點。如圖1所示,數據網絡10例如可包括一個或多個集中交換機100以及4個不同的節點A,B,C和D。每個節點(終端點)可以對應一個或多個I/O單元以及主機系統,所述主機系統包括計算機和/或服務器,在所述服務器上提供有多種應用程序或服務。I/O單元可包括一個或多個處理器、存儲器、一個或多個I/O控制器以及其他與其連接的本地I/O資源,并且所述I/O單元按照復雜性范圍可從諸如局域網(LAN)適配器的單個I/O設備到大容量存儲器充足的RAID子系統。每個I/O控制器(IOC)提供I/O服務或I/O功能,并且可以操作來在本地控制、或者經由例如局域網(LAN)或廣域網(WAN)遠程地控制諸如存儲設備(例如,硬盤驅動器以及磁帶驅動器)這樣的一個或多個I/O設備。集中交換機100例如可包括交換機端口0、1、2和3,每個交換機端口經由相應的物理鏈路110、112、114和116與4個不同節點A,B,C和D的相應節點相連接。每個物理鏈路可支持多條邏輯點對點通道。每條通道可以是雙向通信路徑,以用于允許命令和數據在所述網絡內部的兩個連接的節點(例如,主機系統、交換機/交換元件以及I/O單元)間流動。每條通道可稱為單個的點對點連接,其中數據可以在所述終端點(例如,主機系統和I/O單元)之間傳送。集中交換機100還可包含使用例如顯示路由和/或目的地地址路由的路由信息,用于經由相應鏈路將數據從源節點(數據發送器)路由到目標節點(數據接收器),并且所述集中交換機100還包含用于冗余的重新路由(re-routing)信息。在圖1中示出的終端點或終端站(例如,主機系統和I/O單元)、交換機以及鏈路的特定數目和結構,僅作為示例性的數據網絡而提供。在所有類型的數據網絡中的多個終端站(例如,主機系統和I/O單元)、交換機以及鏈路的各種實現方式和結構都是可能的。依照本發明的示例性實施例或實現方式,在圖1中示出的示例性數據網絡的終端點或終端站(例如,主機系統和I/O單元),可以與NGIOForum于1999年7月20日提出的“NextGenerationInput/Output(NGIO)Specification(下一代輸入/輸出(NGIO)規范)”以及由InfiniBandTM貿易委員會于2000年10月24日提出的InfiniBandTM體系結構規范相兼容。依照NGIO/InfiniBandTM規范,交換機100可以是NGIO/InfiniBandTM交換結構(例如,與多個主機系統和I/O單元相連的鏈路、路由器、交換機和/或交換單元的集合),并且終端點可以是包括一個或多個主機通道適配器(HCA)的主機系統,或者是包括一個或多個目標通道適配器(TCA)的遠程系統,諸如I/O單元。主機通道適配器(HCA)和目標通道適配器(TCA)兩者都可以被廣泛地視為結構適配器,所述結構適配器被提供以用來使終端點接口至NGIO交換結構,并且能夠符合以下規范來實現,這些規范是由NGIOForum于1999年5月13日提出的“NextGenerationI/OLinkArchitectureSpecificationHCASpecification,Revision1.0(下一代I/O鏈路體系結構規范HCA規范,修訂版1.0)”和/或InfiniBandTM規范,以用于使終端點(節點)經由NGIO/InfiniBandTM通道并以例如高達每秒2.5千兆位(Gbps)的最小數據傳送速率彼此進行通信。例如,圖2舉例說明了依照本發明實施例的使用NGIO/InfiniBandTM體系結構的示例性數據網絡(即,系統區域網絡SAN)10’,所述數據網絡用于將消息數據從源節點傳送到目的地節點。如圖2所示,數據網絡10’包括NGIO/InfiniBandTM交換結構100’(由多個交換機組成的多級交換結構),用于允許主機系統和遠程系統與大量的其他主機系統和遠程系統經由一條或多條指定通道進行通信。通道連接僅僅是一種抽象概念,它經由交換結構100’建立以允許在源終端點和目的地終端點(例如,主機和遠程系統以及連接至交換結構100’的I/O單元)上的兩個工作隊列對(WQP)彼此通信。每條通道可以支持多個不同連接語義之一。物理上,一個通道可被限制為主機系統的硬件端口。每條通道可以是要確認的或是不要確認的。要確認的通道可以提供消息和數據以及有關在所述通道的遠端檢測出的錯誤信息的可靠傳輸。通常,主機系統和任意一個遠程系統間有一條通道可能足夠了,但是在相鄰端口間展開的數據傳送速度可以減少等待時間并增加帶寬。由此,希望有用于獨立的控制流和數據流的獨立通道。例如,可以創建一條通道以用于發送請求以及答復信息。可以創建獨立的通道或者通道組以用于在主機系統和任意一個遠程系統間移動數據。此外,任何數目的終端站、交換機以及鏈路可以用來在終端站和交換機之間、經由相應的NGIO/InfiniBandTM鏈路以分組的組的形式中繼數據。例如,節點A可以代表諸如主計算機或主服務器的主機系統130,在所述主機系統上提供有多種應用程序或服務。同樣地,節點B可以代表另一個網絡150,所述網絡150包括但并不限于局域網(LAN)、廣域網(WAN)、以太網、ATM以及光纖通道網絡,所述網絡經由高速串行鏈路加以連接。節點C代表I/O單元170,所述I/O單元170包括一個或多個I/O控制器以及連接到其上的I/O單元。同樣,節點D可代表諸如目標計算機或目標服務器的遠程系統190,在所述遠程系統上提供有各種應用程序或服務。作為替代,節點A、B、C和D還可以代表NGIO結構100’的個體交換機,所述個體交換機可用作主機系統130和遠程系統150、170和190間的中間節點。多級交換結構100’可包括結構管理器250,所述結構管理器與所有交換機相連以用于管理所有的網絡管理功能。然而,結構管理器250可替代性地作為主機系統130、第二網絡150、I/O單元170,或者作為遠程系統190的一部分被并入,以用于管理所有網絡管理功能。在任一情形下,結構管理器250都可被配置成用于學習網絡拓撲,確定交換表(switchtable)或者轉發(forward)數據庫,檢測和管理網絡中的錯誤或者鏈路失敗以及執行其他網絡管理功能。主機通道適配器(HCA)120可以被使用以便經由高速串行NGIO/InfiniBandTM鏈路提供主機系統130(例如服務器)的存儲器控制器(未示出)和交換結構100’之間的接口。同樣地,目標通道適配器(TCA)140和160可以被使用以便經由高速串行NGIO/InfiniBandTM鏈路提供多級交換結構100’和I/O控制器(例如,存儲器和聯網設備)之間的接口,其中所述I/O控制器是第二網絡150或者I/O單元170的I/O控制器。相獨立地,另一個目標通道適配器(TCA)180可以被使用以便經由高速串行NGIO/InfiniBandTM鏈路提供遠程系統190的存儲器控制器(未示出)和交換結構100’之間的接口。主機通道適配器(HCA)以及目標通道適配器(TCA)兩者都可以被廣泛地認為是結構適配器,所述結構適配器被提供以便將主機系統130或者任意一個遠程系統150、170和190與交換結構100’相接口,并且可以依照由NGIOForum于1999年5月13日提出的“NextGenerationI/OLinkArchitectureSpecificationHCASpecification,Revision1.0(下一代I/O鏈路體系結構規范HCA規范,修訂版1.0)”來實現,以用于使終端點(節點)能夠經由NGIO/InfiniBandTM通道彼此進行通信。然而,NGIO/InfiniBandTM僅僅是本發明的一個示例性實施例或者實現方式,而本發明并不限于此。更確切地說,本發明可以適用于多種且任意數目的數據網絡、主機和I/O單元。例如,可以與FutureInput/Output(FIO)一起來實施本發明。FIO規范仍未發布,是由于NGIO隨后的合并協議與FIO部分合并成為了InfiniBanrdTM體系結構規范,所述規范是由InfiniBand貿易委員會(1999年8月27日形成)提出的,其因特網網址是http//www.InfiniBandta.org.@。圖3A-3B舉例說明了依照由InfiniBandTM貿易委員會于2000年10月24日提出的InfiniBanrdTM結構體系規范、從源節點(數據發送器)經過交換機和/或中間節點傳送到目的地節點(數據接收器)的消息數據的分組的格式的實施例。如圖3A所示,消息數據300可以代表一序列一個或多個數據分組310(通常從由工作請求定義的數據傳送大小中導出)。每個分組310可以包括首部信息312、可變格式分組有效負載314以及循環冗余校驗(CRC)信息316。依據由NGIOForum于1999年7月20日預先提出的“NextGenerationInput/Output(NGIO)Specification(下一代輸入/輸出(NGIO)規范)”,同樣的分組也可以稱為單元分組,所述單元分組具有作為消息數據的最小公共部分(attheleastcommondenominator)(LCD)的類似首部信息。然而,NGIO的首部信息所包含的可以小于InfiniBandTM的首部信息。不過,為了本公開內容的目的,在此將通過InfiniBandTM協議在下面描述所述數據分組,但是還可以與通過NGIO協議描述的數據單元進行互換。如圖3B所示,依照InfiniBandTM規范的首部信息312可以包括不同類型的首部,所述不同類型的首部包括例如,本地路由首部320,全局路由首部322、基區傳輸首部324以及擴展傳輸首部,所述擴展傳輸首部諸如數據擴展傳輸首部326、RDMA擴展傳輸首部328以及原子(Atomic)擴展傳輸首部330。本地路由首部320包括如下字段,所述字段由在圖2所示的示例性數據網絡10’中的交換機使用來進行本地路由。本地路由首部320例如可包括但不限于用于標識InfiniBandTM鏈路級別協議的鏈路版本字段331;用于標識數據網絡10’中的目的地端口和數據路徑的目的地本地ID字段332;用于標識數據分組的大小的分組長度字段333;以及用于標識源端口(注入點)的源本地ID334。全局路由首部322包括用于在圖2所示的示例性數據網絡10’的節點間路由數據分組的字段。所述全局路由首部322例如可以包括但不限于用于以全局服務級別通信的通信量類別字段335;用于以字節的方式表明分組長度的有效負載長度字段336;用于標識將分組注入到數據網絡10’中的端口的全局標識符(GID)的源GID字段333;以及用于標識將要從數據網絡10’中吸收分組的端口的GID的目的地GID字段338。基區傳輸首部324包括用于在圖2所示的數據網絡10’中進行數據消息傳輸的字段。所述基區傳輸首部324例如可以包括但不限于用于指示分組類型的操作碼字段339,所述操作碼字段標識所述分組是數據消息的第一個、最后、中間分組還是僅有的一個分組,并標識所述分組是否指定操作(發送、RDMA寫操作、RDMA讀操作、原子操作);用于表明在目的地的工作隊列對(WQP)編號的目的地QP字段340;用于檢測丟失或重復的分組的分組序列號(PSN)字段341。數據擴展傳輸首部326包括用于數據報服務的附加傳輸字段。所述數據擴展傳輸首部326例如可以包括但不限于用于授權訪問接收隊列的隊列密鑰(Q_Key)字段342;以及用于表明在源節點的WQP編號的源QP字段343。RDMA擴展傳輸首部328包括用于RDMA操作的附加傳輸字段。所述RDMA擴展傳輸首部328例如可以包括但不限于用于提供RDMA操作的虛擬地址的虛擬地址(VA)字段344;用于授權訪問RDMA操作的遠程密鑰(Rkey)字段345;以及用于表明存儲器直接訪問操作的長度(以字節表示)的長度字段346。原子擴展傳輸首部330包括用于原子分組以及原子操作的附加傳輸字段。所述原子擴展傳輸首部330例如可以包括但不限于用于提供遠程虛擬地址的虛擬地址(VA)字段347;用于授權訪問遠程虛擬地址的遠程密鑰(Rkey)字段348;以及用于提供在原子操作中的操作數的交換和比較數據字段349。將工作隊列元件“WQE”從主機系統130經由交換結構100’郵送到適合的工作隊列(WQ)上,以用來描述數據的移動操作以及描述要被移動以便處理和/或傳輸的數據的位置。這種“WQE”通常提供用于完成發送隊列以及接收隊列操作所需要的所有信息。存在幾種類別的發送隊列操作,包括發送、遠程存儲器訪問(RDMA)以及存儲器綁定。對于發送操作來說,WQE在用戶硬件的存儲器空間中指定一個數據塊以發送到目的地,讓已經在目的地排隊的接收WQE指定將所述數據放置在何處。對于RDMA操作來說,WQE還指定在遠程用戶存儲器中的地址。由此RDMA操作無需包括目的地的接收工作隊列。有三種類型的RDMA操作,分別是RDMA寫操作、RDMA讀操作以及原子操作。RDMA寫操作規定硬件將數據從所述用戶存儲器傳送到遠程用戶存儲器。RDMA讀操作規定硬件將數據從遠程存儲器傳送到所述用戶存儲器。原子操作規定硬件來執行遠程存儲單元的讀取。所述遠程系統返回讀取的值,并且通過將已更新的值寫回到同一位置來有條件地修改/替換遠程存儲器的內容。換言之,原子操作是讀操作、修改操作以及寫操作的組合操作。原子操作的一個例子是相等條件的比較和交換(CompareandSwapifEqual)操作。WQE指定遠程存儲單元、比較值以及新值。遠程WQP讀取指定的存儲單元,將所述值與在消息中提供的所述比較值進行比較,并且僅當這些值相等時,WQP才將新值寫入同一存儲單元。在任一情況下,遠程WQP都將它從所述存儲單元讀取的值返回到提出請求的WQP。另一種原子操作的例子是FetchAdd操作,在該操作下,遠程WQP讀取指定的存儲單元,將讀取到的值返回到提出請求的WQP,并給所述值加上在消息中提供的值,然后將結果寫入同一存儲單元。存儲器綁定指示硬件改變存儲器注冊關系并且改變存儲器窗口的綁定。綁定存儲器窗口的操作使預先分配的存儲器窗口與現有存儲器區域內的指定地址范圍、連同一組指定的遠程訪問特權相關聯。可以只有一個接收隊列操作,且它用于指定接收數據的緩沖器。當用戶執行發送操作時,接收WQE指定所述硬件將從所述用戶那里接收到的數據放置在的位置。遠程用戶每次成功地執行發送操作時,所述硬件從接收隊列獲取下一個條目,并將所接收的數據放置在所述接收WQE中指定的存儲單元,且在完成隊列(CQ)上設置完成隊列條目,用于向用戶表明已經完成接收操作。由此發送操作的執行引發了遠程用戶的接收隊列操作。每個發送/接收WQE可以用于控制單個分組的傳輸或接收。發送“WQE”以及RDMA寫“WQE”額外提供了用于描述虛擬地址的“集合”列表,以便從本地系統存儲器206取出輸出數據(所述列表用于確切地描述從本地系統存儲器206中取出輸出數據的位置)。接收“WQE”以及RDMA讀“WQE”另一方面提供了用于描述虛擬地址的“分散”列表,以便在本地系統存儲器206中放置輸入數據(所述列表用于確切地描述在本地系統存儲器206中存儲輸入數據的位置)。發送“WQE”只有在發送工作隊列鏈路上是有效的。與此相對,接收“WQE”只有在接收工作隊列鏈路上是有效的。RDMA“WQE”是發送/接收“WQE”的超集,并且可包括表明被傳送的信息的遠程地址的附加信息。與發送/接收操作不同,其中所述遠程系統還使用工作請求來確定將消息數據發送到何處并從何處接收,而RDMA“WQE”通過使用發送到遠程系統的虛擬地址(VA)、存儲器處理(MH)以及遠程密鑰來明確地指示遠程系統將消息數據發送到何處并從何處接收。遠程密鑰可以用于在遠程系統上將虛擬地址轉換到物理地址。通常,每個“WQE”以控制段開始,緊隨控制段之后的是可選的地址段以及任意數目的數據段。控制段可包括控制和狀態信息。用于讀/寫RDMA操作的地址段可包括遠程緩沖器信息(即,與以接收讀/寫請求為目標的VI相關聯的存儲器)。用于發送/接收操作以及讀/寫RDMA操作這二者的數據段可包括有關本地系統存儲器206的信息(即,與發出發送/接收或者讀/寫請求的VI相關聯的存儲器)。圖3C-3D分別舉例說明了依照本發明實施例的示例性的發送/接收型“WQE”350A以及示例性的讀/寫RDMA型“WQE”350B。如圖3C所示,發送/接收“WQE”350A可包括控制段360以及數據段370,所述數據段370包括段長度字段372、存儲器處理字段374以及虛擬地址字段376。段長度字段372指定待發送或者待接收的消息數據的長度。存儲器處理(MH)字段374可用來驗證發送/請求過程(即VI)擁有已注冊的存儲器區域,所述存儲器區域由段長度字段372和虛擬地址(VA)字段376來指示。此外,可以包括本地密鑰378以執行在本地生成的虛擬地址到物理地址的轉換。對于發送操作來說,虛擬地址(VA)字段376標識將要在發送VI=s的本地存儲器空間中發送的消息數據的起始存儲器單元。對于接收操作來說,虛擬地址(VA)字段376標識將要在請求VI=s的本地存儲器空間中存儲所接收的消息數據的位置的起始存儲器單元。如圖3D所示,讀/寫RDMA“WQE”350B可包括控制段360、地址段380以及數據段370。地址段380可包括遠程存儲器處理字段382以及遠程虛擬地址字段384。數據段370可包括段長度字段372、本地存儲器處理字段374以及本地虛擬地址字段376。此外,還可以包括本地密鑰378,以執行在本地生成的虛擬地址到物理地址的轉換。還可包括遠程密鑰(“Rkey”)386,以便在遠程系統上執行從遠程生成的虛擬地址到物理地址的轉換。更具體的說,遠程密鑰386是指存儲器區域或者存儲器窗口,與虛擬地址一起用來標識本地系統存儲器206的適當的頁,以便遠程系統來訪問本地系統存儲器206。對于RDMA讀操作來說,遠程虛擬地址(VA)384標識待讀取的消息數據在遠程過程的存儲器空間中的存儲單元。本地虛擬地址(VA)376標識將要放置所接收的消息數據的位置在本地過程的存儲器空間中的起始存儲單元。用來存儲消息數據的存儲器量可以通過段長度字段372來指定。對于RDMA寫操作來說,遠程虛擬地址(VA)字段384標識待寫入的消息數據在遠程過程的存儲器空間中的存儲單元。本地虛擬地址(VA)字段376標識用于讀取待傳送分組的消息數據的位置在本地過程的存儲器空間中的的起始存儲單元。消息數據的大小通過段長度字段372來指定。遠程存儲器處理(MH)字段382對應于與由遠程虛擬地址(VA)字段384標識的存儲器相關聯的存儲器處理(MH)。本地存儲器處理字段374對應于與由本地虛擬地址字段376標識的存儲器相關聯的存儲器處理(MH)。回到論述中,在圖4A中示出了主機系統130的一個示例性實施例。參考圖4A,主機系統130可包括一個或多個與主機總線203連接的處理器202A-202N。多個存儲器202A-202N的每一個都可以對單一的項(I/O操作)進行操作,并且所述多個處理器202A-202N的全部都可以在同一時間對一個列表上的多個項進行操作。I/O以及存儲器控制器204(或芯片組)可與主機總線203相連。主存儲器206可與I/O以及存儲器控制器204相連。I/O橋208可操作來橋接或接口在I/O和存儲器控制器204以及I/O總線205之間。多個I/O控制器可連接到I/O總線205上,包括I/O控制器210以及212。I/O控制器210以及212(包括連接到其上的任一I/O設備)可提供基于總線的I/O資源。一個或多個主機結構適配器120還可與I/O總線205相連。作為替代,一個或多個主機結構適配器120可直接連接到I/O以及存儲器控制器(或芯片組)204,以避免如圖4B所示的I/O總線205固有的限制。在圖4A-4B所示的任一實施例中,都可以提供一個或多個主機結構適配器120以用于連接主機系統130和NGIO/InfiniBandTM的交換結構100’。圖4A-4B僅舉例說明了主機系統130的示例性實施例。這種主機系統130的系統配置的寬的陣列是可行的。還可以提供用于主機結構適配器120的軟件驅動程序堆棧,以允許主機系統130經由NGIO/InfiniBandTM交換結構100’與一個或多個遠程系統150、170以及190交換消息數據,同時更適宜與多種當前可利用的諸如Windows2000的操作系統相兼容。圖5舉例說明主機系統130的示例性軟件驅動程序堆棧。如圖5所示,主機操作系統(OS)500可包括內核510、I/O管理器520、用于提供到各種I/O控制器的接口的多個通道驅動程序530A-530N,以及主機結構適配器軟件堆棧(驅動程序模塊),所述主機結構適配器軟件堆棧包括結構總線驅動程序540以及一個或多個結構適配器設備專用驅動程序550A-550N,所述結構適配器設備專用驅動程序用于與連接到交換結構100’(例如I/O控制器)上的設備建立通信,并且執行大部分驅動器的通用功能。這樣的主機操作系統(OS)500例如可以是Windows2000,而這樣的I/O管理器520例如可以是即插即用的管理器。通道驅動程序530A-530N提供主機操作系統(OS)進行如下活動所必需的抽象,所述活動包括執行對連接到交換結構100’上的設備的IO操作,封裝來自主機操作系統(OS)的IO請求,并將所述IO請求跨越交換結構100’發送到相連接的設備上。此外,通道驅動程序530A-530N還分配諸如存儲器以及工作隊列(WQ)對的必要資源,以便將工作項郵送到附屬結構設備。提供主機結構適配器軟件堆棧(驅動程序模塊),以用于訪問交換結構100’以及有關結構配置、結構拓撲的信息以及連接信息。這種主機結構適配器軟件堆棧(驅動程序模塊)可用于建立與遠程系統(例如I/O控制器)間的通信,并且執行大部分驅動器的通用功能,例如包括主機結構適配器初始化以及配置、通道配置、通道抽象、資源管理、結構管理服務和操作、發送/接收IO事務消息、遠程直接存儲器訪問(RDMA)事務(例如,讀和寫操作)、隊列管理、存儲器注冊、描述符管理、消息流控制以及瞬時錯誤處理及恢復。這種軟件驅動程序模塊可以使用諸如C、C++以及VisualBasic等高級編程語言來編寫,并且可以被提供在計算機實體介質上,諸如存儲器設備;磁盤(硬盤、軟盤以及可拆卸盤);諸如磁帶的其他磁介質;諸如CD-ROM盤的光介質,或者可以經由因特網下載,所述軟件驅動程序模塊可以由結構管理員用來方便地插入或下載到現有的操作系統(OS)中。這種軟件驅動程序模塊還可與如下的現有操作系統(OS)綁定在一起,所述操作系統可以由特定的設備驅動程序來啟動。主機結構適配器(另外,也稱為主機通道適配器″HCA″)驅動程序模塊可由三個功能層組成,這三個功能層是HCA服務層(HSL)、HCA抽象層(HCAAL)以及HCA設備專用驅動程序(HDSD),這種結構符合Intel于1999年8月6日提出的“NextGenerationI/OArchitecture)HostChannelAdapterSoftwareSpecification(下一代I/O體系結構主機通道適配器軟件規范)”,“NextGenerationI/OIntelHCAConnectionServicesLayerHighLevelDesign(下一代I/OIntelHCA連接服務層高層次設計)”,“NextGenerationI/OIntelHCAAbstractionLayerHighLevelDesign(下一代I/OIntelHCA抽象層高層次設計)”以及“NextGenerationI/OIntelHCAFabricServicesLayerHighLevelDesign(下一代I/OIntelHCA結構服務層高層次設計)”。例如,對于所有通道驅動程序530A-530N來說固有的可以是包括用于提供一組公共服務532A-532N的HCA服務層(HSL)的通道訪問層(CAL),包括通道驅動程序530A-530N用于實例化和使用NGIO/InfiniBandTM協議在NGIO/InfiniBandTM通道上執行數據傳送所要求的結構服務、連接服務以及HCA服務。結構總線驅動程序540可對應于HCA抽象層(HCAAL),用于管理所有設備專用驅動程序,控制主機系統130中所有HCA共用的共享資源以及主機系統130中每個HCA的專用資源,并且向HSL發布事件信息并控制對特定設備功能的訪問。同樣地,一個或多個結構適配器設備專用驅動程序550A-550N可以對應于HCA設備專用驅動程序(所有類型的牌子X設備以及所有類型的牌子Y設備),用于向一個或多個HCA的初始化、配置以及控制接口全部提供抽象接口。當在主機系統130中有不同牌子設備的HCA時,可提供多個HCA設備專用驅動程序。更具體地說,結構總線驅動程序540或者HCA抽象層(HCAAL)可以向主機結構適配器軟件堆棧提供所有必要的服務(驅動程序模塊),所述服務例如包括配置和初始化主機系統中所有HCA共用的資源,使HCA的配置和初始化與HCA設備專用驅動程序相協調,控制對所有HCA共用資源的訪問,控制訪問由每個HCA提供的資源,以及從HCA發送事件通知到通道訪問層(CAL)的HCA服務層(HSL)。此外,結構總線驅動程序540或者HCA抽象層(HCAAL)還可以向HCA服務層(HSL)輸出客戶管理功能、資源查詢功能、資源分配功能以及資源配置及控制功能,并且向HCA設備專用驅動程序輸出事件及錯誤通知功能。資源隊列功能例如包括查詢所有HCA以及單個HCA共用的資源屬性,端口的狀態,以及端口、工作隊列對(WQP)以及完成隊列(CQ)的配置。資源分配功能例如包括端口、保護標記、工作隊列對(WQP)、完成隊列(CQ)以及HCA的控制接口的保存以及釋放。資源配置及控制功能例如包括配置端口,執行HCA控制操作以及端口控制操作,配置工作隊列對(WQP),對工作隊列對(WQP)的發送或接收隊列執行操作,配置完成隊列(CQ),以及對完成隊列(CQ)執行操作。主機系統130可以與一個或多個遠程系統150、170以及190通信,包括使用符合由Compaq公司、Intel公司以及Microsoft公司于1997年12月16日提出的“VirtualInterface(VI)ArchitectureSpecification,Version1.0(虛擬接口(VI)體系結構規范,版本1.0)”的虛擬接口(VI)體系結構直接附連到交換結構100’(即附屬結構的I/O控制器)的I/O單元以及I/O控制器(以及附連的I/O設備)。VI體系結構包括4個基本組件虛擬接口(VI),其中工作請求經由交換結構100’加以郵送,以描述數據移動操作以及描述要被移動以便處理和/或傳輸的數據的位置;可以是應用程序的VI用戶;可以是用于負責實例化VI的硬件以及軟件組件的VI提供者;以及完成隊列(CQ)。VI是允許VI用于直接訪問VI提供者的這樣一種機制。每個VI代表通信終端點,并且終端點對可以被邏輯地連接以支持經由數據網絡的一個或多個指定通道的雙向、點對點的數據傳送。依據VI體系結構,主機結構適配器120以及VI內核代理可以組成VI提供者以直接執行終端點虛擬化,并且包括通常由圖5中所示的主機操作系統(OS)內核510以及設備專用驅動程序550A-550N執行的多路復用、去多路復用以及數據傳送調度的任務。然而,其他的體系結構也可以用來實現本發明。在“VirtualInterface(VI)ArchitectureSpecification(虛擬接口(VI)體系結構規范)”中提出的術語“VI”,也可稱為如“NextGenerationInput/Output(NGIO)Specification(下一代輸入/輸出(NGIO)規范)”中提出的工作隊列對(WQP),或者簡稱為如“InfiniBandTMArchitectureSpecification(InfiniBandTM體系結構規范)”中提出的隊列對(QP)。由此,“VI”、“WQP”以及“QP”本文的下文中可以互換。圖6舉例說明使用NGIO/InfiniBandTM以及VI體系結構以支持經由交換結構100’的數據傳送的示例性主機系統。如圖6所示,主機系統130除了包括一個或多個包含操作系統(OS)堆棧500的處理器202外,還包括主機存儲器206以及如圖2、4A-4B以及5所示的至少一個主機結構適配器(HCA)120,在符合NGIO/InfiniBandTM以及VI體系結構的主機結構適配器(HCA)120中提供的傳輸引擎600,所述傳輸引擎用于經由交換結構100’進行數據傳送。一個或多個主機結構適配器(HCA)120可以被方便的利用以擴展冗余用的端口和多個交換結構的數目。如圖6所示,傳輸引擎600可包括多個成對形成的工作隊列(WQ),所述工作隊列包括接收隊列(用于輸入的“RQ”)以及發送隊列(用于輸出的“SQ”),諸如工作隊列對(WQP)610A-610N,其中工作請求“WQE”可以經由交換結構100’加以郵送,以用來描述數據移動操作以及描述要被移動以便處理和/或傳輸的數據的位置,所述傳輸引擎600還包括完成隊列(CQ)620,所述完成隊列620可以用于通知工作請求的完成。作為替代,這種傳輸引擎600可以是主機存儲器206的硬件存儲器部件,所述主機存儲器206獨立于主機結構適配器(HCA)120而存在,以便處理來自多個主機結構適配器(HCA)120的整體,所述傳輸引擎600還可以作為主機操作系統(OS)的內核級設備驅動程序的一部分被提供。所有的工作隊列(WQ)可共享經由一個或多個主機結構適配器(HCA)120到交換結構100’的物理端口。工作隊列對(WQP)的發送隊列(用于輸出請求的“SQ”)可以用作“啟動器”,所述“發送隊列”經由交換結構100’請求例如到遠程VI的正常消息發送,請求遠程直接存儲器訪問ARDMA@的讀操作,所述讀操作請求消息要從目標系統的特定存儲單元加以讀取,以及經由交換結構100’請求遠程直接存儲器訪問ARDMA@寫操作,所述寫操作請求消息要被寫入到目標系統的特定存儲單元。工作隊列對(WQP)的接收隊列(用于輸入請求的“RQ”)可以用作“應答器”,所述“接收隊列”經由交換結構100’從目標系統接收對來自正常發送、RDMA讀操作和RDMA寫操作的消息的請求。在這種示例性的數據網絡中,可以使用NGIO/InfiniBandTM以及VI硬件和軟件來經由交換結構100’支持兩個存儲器區域間的數據傳送,所述兩個存儲器區域通常位于不同系統上。每個主機系統都可以作為啟動消息數據傳送(消息發送操作)的源(啟動器)系統,或者作為用于消息傳遞操作(信息接收操作)的目標系統。這種主機系統的例子包括如下主機服務器以及如下I/O單元,所述主機服務器提供各種應用程序或服務,而所述I/O單元提供面向存儲器以及面向網絡的IO服務。對工作的請求可以郵送到與給定的結構適配器(HCA)相關聯的工作隊列對(WQP)610A-610N上(所述工作是諸如消息發送/接收操作這樣的數據移動操作和RDMA讀/寫操作),一條或多條通道可被創建并有效管理以便能夠執行所請求的操作。現在參考圖7,在圖7中舉例說明了根據本發明實施例的在主機系統上安裝的且依照NGIO/InfiniBandTM體系結構配置的示例性主機結構適配器120,所述主機結構適配器用于經由交換結構100’支持數據傳送。所述示例性主機結構適配器120被特別設計成用來將主機系統連接到用于服務的數據網絡100的基于通道的交換結構100’上,以便有效地建立并管理NGIO/InfiniBandTM通道,并且支持主機系統上的通信設備間的數據移動操作,或者支持直接連接到一起或者經由使用基于通道、交換結構的體系結構的數據網絡100’連接的主機系統之間的數據移動操作。此外,主機結構適配器120實現了如下的硬件,所述硬件是為增加性能和效率而加以設計的,并且為了但不限于具有最小硬件投資的NGIO/InfiniBandTM應用加以優化,其中所述NGIO/InfiniBandTM應用包括控制NGIO/InfiniBandTM協議以最小的流水線的執行,以及控制以最少等待時間的NGIO/InfiniBandTM數據的處理。如圖7所示,主機結構適配器120可包括如下微控制器子系統700以及如下串行接口730,所述微控制器子系統700控制NGIO/InfiniBandTM協議的執行,所述串行接口730提供與交換結構100’的接口,通常經由硬件SERDES(串行化/去串行化設備)來實現。微控制器子系統700以及串行接口730都可以作為主機結構適配器120的專用集成電路(ASIC)來實現。微控制器子系統700包括稱為微引擎(ME)710的一個或多個可獨立編程的直接存儲器訪問(DMA)引擎,所述微引擎(ME)710用于在主機存儲器206(參見圖6)和串行鏈路之間建立、發送、接收以及確認NGIO/InfiniBandTM分組,所述微控制器子系統700還包括受微引擎(ME)710控制的諸如主機接口712這樣的專用硬件接口邏輯塊、地址轉換接口714、前后關系(context)存儲器接口716、本地總線接口718、完成隊列/門鈴(doorbell)管理器接口720以及先進先出(FIFO)接口722,以用來執行實現NGIO/InfiniBandTM以及VI規范所必需的許多ME功能,例如包括主機事務處理、前后關系更新、物理地址轉換、主機描述符的獲取、門鈴管理、FIFO數據移動以及完成隊列(CQ)的管理。微引擎(ME)710可執行微代碼以協調用于發送和接收NGIO/InfiniBandTM分組的發送隊列(SQ)和接收隊列(RQ)的操作,并且支持符合NGIO/InfiniBandTM協議的完成隊列(CQ)以及通道。微引擎(ME)710還可以通過一組微寄存器的讀操作和寫操作來控制所有的接口塊。微寄存器可以與由多個接口塊提供的數據一起使用來幫助加速ME功能。通常,用于控制發送隊列(SQ)的微引擎(ME)710可稱為SQ微引擎(ME),同樣的,用于控制接收隊列(RQ)的微引擎(ME)710可稱為RQ微引擎(ME)。主機接口712,為了對數據事務、針對主機系統130和促進讀操作完成的讀和寫事務的工作請求,提供至如圖4A所示的主機系統130的I/O總線205或者至圖4B所示的主機系統130的I/O及存儲器控制器204的接口,所述工作請求來自主機系統130,采用如圖3B-3C中所示的工作隊列元件“WQE”的形式,所述數據事務包括控制不同請求者間的判優以及數據/控制多路復用。地址轉換接口714提供至地址轉換塊(ATB)(未示出)的接口,負責使用系統存儲器的轉換及保護表(TranslationandProtectionTable,TPT)管理從虛擬地址(用于編址程序空間)到物理地址(用于編址系統空間)的轉換,并且還負責為不同事務類型(寫、RDMA讀以及RDMA寫)驗證對系統存儲器的訪問。在一個示例性的實現方式中,主機存儲器206可包括多達227(128兆)的4K字節的頁面,其中每個系統存儲器頁面可以被映像到多達16兆兆字節的系統存儲器地址空間中的任意位置。每個系統存儲器頁面還可以通過轉換及保護表(TPT)內的如下條目來訪問,其中所述條目包括如下信息,所述信息諸如是對應于物理地址的例如4K字節頁面的編號、存儲器保護屬性(RDMA寫允許、RDMA讀允許、本地存儲器寫允許)以及如下的保護范圍(PD),所述保護范圍的值與分配給轉換請求的啟動器(請求轉換的工作隊列對)的值相匹配。前后關系存儲器接口(CMI)716提供至前后關系管理器(未示出)的接口,負責提供用于“VI”或者如下工作隊列對“WQP”所必需的前后關系信息,所述工作隊列對“WQP”用于發送和接收NGIO/InfiniBandTM分組。所述前后關系信息包括用于所有類型的數據傳送操作所必需的所有的控制、狀態以及信息。前后關系存儲器接口716還提供至主機軟件的接口,并且提供了不同類型的存儲器映像寄存器組,所述存儲器映像寄存器組指定通道配置并且啟動通道操作。例如,所述存儲器映像寄存器組可包括全局HCA前后關系寄存器,所述全局HCA前后關系寄存器影響發送隊列(SQ)以及工作隊列(WQ)的操作,并且所述存儲器映像寄存器組還包括用于控制通道建立的工作隊列對(WQP)寄存器,以及如下完成隊列(CQ)寄存器,所述完成隊列(CQ)寄存器指定完成隊列(CQ)在主機存儲器206中的位置和長度,并且控制在寫入所述完成隊列(CQ)的條目時是否產生中斷。本地總線接口718提供至本地數據總線的接口,負責支持系統可訪問的前后關系連接以及通道操作,并且負責將信號數據轉換為用于微引擎(ME)710的適當形式,包括微代碼加載。完成隊列/門鈴管理器接口720提供至完成隊列(CQ)引擎以及門鈴管理器的接口,并且提供VI體系結構的存儲器注冊規則。完成隊列(CQ)引擎(未示出)負責郵送全局事件以及完成隊列(CQ)的條目。門鈴管理器(未示出)負責跟蹤未處理的工作請求的數量。FIFO接口722提供至串行接口730的接口。所述FIFO接口722可包括接收FIFO接口722A以及發送FIFO接口722B,所述接收FIFO接口722A被安排成用于經由接收FIFO以及串行接口730從交換結構100′接收請求和/或分組,所述發送FIFO接口722B被安排成用于經由發送FIFO以及串行接口730向交換結構100′發送請求和/或分組。接收FIFO接口722A可由微引擎(ME)710使用以處理經由串行接口730輸入的分組,所述處理過程包括檢查如圖3A所示的每個分組的首部中的錯誤,以及在將數據傳遞給主機接口712之前檢查是否需要讀取額外的數據。發送FIFO接口722B可由微引擎(ME)710使用來為隨后的經由串行接口730的傳輸建立數據分組。此外,還可以包括調度程序(未示出),以用于安排到前后關系管理器的下一個虛擬接口(VI),并且支持與工作隊列對(WQP)的發送隊列(SQ)和接收隊列(RQ)相關聯的數據分組的通信量的優先權。這種調度程序可被提供以用于為被調度的功能而連接前后關系存儲器接口716、本地總線接口718以及完成隊列/門鈴管理器接口720。圖8舉例說明依照本發明實施例的示例性的微引擎(ME)710,所述微引擎(ME)710被配置以處理發送隊列操作和接收隊列操作之一,所述操作包括多個獨立的操作(稱為任務)以用于實現具有最小硬件投資的性能效率。如圖8所示,微引擎(ME)710可包括一個或多個數據多路復用器(MUX)810、算術邏輯單元(ALU)820、指令譯碼器830、微定序器840以及指令存儲器850。所述指令存儲器850可存儲能夠被下載的用于ME指令的微代碼。數據MUX810可以根據ME指令提供適合的接口數據。算術邏輯單元(ALU)820可以執行任意的算術、邏輯和移位操作。指令譯碼器830可以向微定序器840提供系統控制以確定要被執行的下一條指令或地址,執行來自指令存儲器850的ME指令,并確定ALU820的功能。微定序器840可檢查ME指令序列,并確定將由指令譯碼器820執行的下一條指令。示例性的微引擎(ME)710所包括的數據MUX810、算術邏輯單元(ALU)820、指令譯碼器830、微定序器840以及指令存儲器850的一個示例性實現方式可以參照圖9在下面進行描述。數據MUX810有兩個輸入數據MUX,分別為輸入MUX-A810A以及輸入MUX-B810B,這兩個數據MUX提供兩條輸入到ALU820的32位總線(A-總線和B-總線)。A-總線812可以將基于ME指令的目的地字段的譯碼的數據提供給ALU820。同樣的,B-總線814可以將基于ME指令的源字段的譯碼的數據提供給ALU820。到輸入數據MUX810A和810B中的數據輸入可以由外部接口塊來提供,所述外部接口單元諸如是控制ME功能所需要的先進先出(FIFO)接口722、主機接口712、地址轉換接口714、VI前后關系存儲器接口716、本地總線接口718以及完成隊列/門鈴管理器接口720。輸入MUX-B810B可包括經由2:1多路復用器(MUX)860以及邏輯與門870的、來自于ME指令的立即數。目的地/源字段的譯碼,產生對MUX-A810A和MUX-B810B的輸入的選擇,可以由指令譯碼器830加以執行。算術邏輯單元(ALU)820ALU820可包括兩個(A和B)32位的數據輸入,并執行基于ME指令的操作碼(OpCode)字段的功能。所支持的功能包括但不限于加、減、或、異或、與、比較、循環右移、左移位、位測試以及移動(直通)。指令譯碼器830譯碼ME指令,并向ALU820提供功能選擇信號。在執行選擇的功能后,ALU820根據輸出來設置標志。所述標志例如可包括0和進位。如果算術功能的結果是0,則設置Z標志。相對而言,如果算術功能導致進位輸出,則設置C標志。ALU功能的結果可影響Z標志的狀態。指令存儲器850指令存儲器850可以是被提供以用于存儲微代碼的靜態隨機訪問存儲器SRAM,以便經由2:1多路復用器(MUX)860和邏輯與門870提供ME指令。所述微代碼能夠被下載到SRAM中,以用于今后NGIO/InfiniBandTM規范增強的改變。SRAM可包括2K×44位并且可經由本地總線進行加載。每條ME指令可例如是22位,并且SRAM的每個字允許有兩條指令。帶有32位立即數的指令共占用44位,作為兩條指令來計算。由SRAM提供的微代碼可以采用不同的代碼格式來利用。微定序器840微定序器840可通過ME指令的譯碼以及標志寄存器信息來確定微引擎(ME)710的地址序列。下一個地址序列可由指令譯碼器830來控制,所述指令譯碼器830將控制字段信息的8位(即8個控制字段信號)傳遞到微定序器840。實現如圖7所示的主機機構適配器的最大挑戰將是在處理NGIO/InfiniBandTM分組的過程中使微引擎(ME)710的性能和資源最大化,以及在保持整體傳送速率的同時使存儲器帶寬最優。可將專用的硬件輔助(HWA)邏輯并入到一個或多個專用硬件接口塊中,所述專用硬件接口塊諸如主機接口712、地址轉換接口714、VI前后關系存儲器接口716、本地總線接口718、完成隊列/門鈴管理器接口720以及FIFO接口722,以便輔助它們各自的接口功能,并在處理NGIO/InfiniBandTM分組的過程中通過硬件計算來幫助降低微引擎(ME)710的負載。存儲在前后關系存儲器接口716的內部前后關系存儲器中的用于發送和接收NGIO/InfiniBandTM分組的前后關系信息,在ME周期期間需要以如下方式來加以更新,所述方式使存儲器帶寬最優并保持整體數據傳送速率。通常這種前后關系信息可被更新以提供用于所有類型的數據傳送所必需的所有的控制、狀態以及信息。前后關系存儲器總是使用前后關系信息的最新值加以更新,并且微引擎(ME)710訪問前后關系信息的最新值以進行工作(諸如消息發送/接收操作這樣的數據移動操作和RDMA讀/寫操作)。現在轉向圖10,在所述圖中舉例說明了依照本發明實施例的示例性遠程密鑰管理器塊(RMB),所述遠程密鑰管理器塊用于檢查對應于在主機存儲器206中未處理的RDMA操作的遠程密鑰(“Rkey”)的有效性。遠程密鑰(“Rkey”)通常出現在以如參考圖3C-3D描述的描述符(“WQE”)的形式的請求消息數據中,并且由微引擎(ME)710使用來為未處理的RDMA讀/寫操作通過地址轉換塊(ATB)標識用于虛擬地址到物理地址轉換的適合頁面。遠程密鑰(Rkey)能夠通過使用在工作隊列對(WQP)的發送隊列(SQ)上郵送的綁定工作請求或者描述符(“WQE”)而被無效。如先前所描述的典型描述符(“WQE”)是被郵送的對正常數據傳送操作的工作請求,所述正常數據傳送操作諸如正常發送、RDMA寫操作以及RDMA讀操作。與正常描述符(WQE)相比,綁定描述符是被郵送的對非數據操作的工作請求,所述非數據操作諸如移動或無效在發送隊列(SQ)上的主機存儲器206的特定存儲器區域內的“存儲器窗口”,以限制RDMA數據傳送。存儲器區域是主機結構適配器120可以訪問的、主機存儲器206的正常塊,通常不小于4K字節,(對應于一個存儲頁面)。和存儲器區域相比,“存儲器窗口”指定了更小范圍的存儲器區域,例如5字節。綁定描述符(“WQE”)允許軟件完全關閉(無效)“存儲器窗口”以便防止工作隊列對(WQP)訪問所述“存儲器窗口”,或者允許軟件移動(放大或縮小)所述“存儲器窗口”到主機存儲器206的不同存儲器區域。如圖10所示,遠程密鑰管理器塊(RMB)1010可包括用于發送隊列(SQ)1010A以及用于接收隊列(RQ)1010B的相獨立的RMB,所述發送隊列(SQ)1010A以及接收隊列(RQ)1010B分別對應于用于工作隊列對(WQP)的發送隊列(SQ)的微引擎(ME)710A以及用于工作隊列對(WQP)的接收隊列(RQ)的微引擎(ME)710B。SQRMB1010A包括微引擎接口(“ME-I/F”)1020A,所述微引擎接口提供至SQ微引擎(ME)710A的接口,并且所述SQRMB1010A還包括RMB接口(“RMB-I/F”)1030A,所述RMB接口提供至RQRMB1010B的接口。RQRMB1010B包括微引擎接口(“ME-I/F”)1020B、RMB接口1030B以及遠程密鑰存儲器1040,其中所述微引擎接口1020B提供至RQ微引擎(ME)710B的接口,用于允許ME的讀操作和寫操作;所述RMB接口1030B提供至SQRMB1010A的接口,用于接收來自于SQRMB1010A的密鑰無效請求,以及用于通知SQRMB1010A其當前處于繁忙狀態還是空閑狀態;所述遠程密鑰存儲器1040存儲遠程密鑰(Rkey)。這種遠程密鑰存儲器1040可對應于1280×28的隨機訪問存儲器(RAM),并且可以按照如下進行組織<p>8、中心處理器按控制終端指令進行工作。本實用新型多制式遠程目標管理裝置的有益效果本裝置上設有與傳輸媒體相連接的端口,自身裝置與傳輸媒體分立,通過多制式移動終端連接裝置,外掛于各種制式公網終端之上(如有線電話、GSM、CDMA以及未來的3D等移動通信手機)也可外掛于各種獨立的無線通信專網終端(如短波、超短波以及微波網終端);采用了遠程聲、像采集、傳輸、存儲功能,突破了市場同類產品只能聽聲不能錄音以及只能聽聲不能看像的限制,可為用戶提供有效的第一手資料;在系統中增加了硬件看門狗,它對系統中的動態信息不斷進行分析、判斷,適時刪除無用的信息,對系統進行自動維護,可有效的避免信息阻塞的發生。另外,該系統設定了撥出信號優先權,這樣就保證了在有外界電話撥入的情況下,也會優先處置報知(報警)信息,解決了監控或管理的盲點;受控目標異常情況遠程自動、分組無線跟蹤、定位技術突破了以往幾種監控系統只能單一跟蹤定位的局限;綠色環保該產品對受控目標的監控是通過數字化的電磁手段進行的,而且采用公用電話網作為傳輸信道,既減少了電磁污染,又克服了以往傳統的警笛式報警方式帶來的擾民現象,符合國家環保要求;體積小重量輕。比市場現有同類產品體積和重量小三分之一;生產成本低于市場同類產品,便于市場推廣;安裝方便。該產品接點少,不損壞受控目標整體結構,不需特殊培訓即可安裝;用途廣,既可用于防盜防搶,也可用于防火、防有害物體泄漏,還可用于醫療救護、車輛救援以及特殊目標的管理;既可用于固定目標,也可用于移動目標的管理。圖1是多制式遠程目標管理裝置的結構框圖;圖2是中心處理器電路原理圖。具體實施例方式結合附圖具體說明本實用新型多制式遠程目標管理裝置的結構及運行原理。本實施例所采用的電子原器件均為市售商品,其中心處理器所用原器件型號如下表多制式遠程目標管理裝置,包括觸摸開關、磁碰開關、感應頭、攝像頭、圖象壓縮卡、調制解調器、無線通信裝置、中心處理器,圖象壓縮卡安裝在中心處理器視頻壓縮板接口上,調制解調器連接在圖象壓縮卡接口上,觸摸開關、磁碰開關、感應頭連接在中心處理器上,攝像頭連接在圖象壓縮卡上,無線通信終端連接在調制解調器、中心處理器上。RQ微引擎(ME)710B可初始化主機存儲器206中的保護范圍(PD)。零“0”PD表示所述PD是無效的。Rkey對應于未處理的RDMA操作。RQ微引擎(ME)710B在希望SQRMB1010A處理的Rkey上設置有效位。SQ微引擎(ME)710A將保護范圍(PD)以及其想要匹配的Rkey提供給SQRMB1010A。SQ微引擎(ME)710A然后通過將SQ起始位寫到RMB寄存器中來開始RAM操作。SQRMB1010A以VI“0”開始走察遠程密鑰存儲器1040。SQRMB1010A檢查以便查看遠程密鑰存儲器的“PD”是否與提供給SQ的“PD”相匹配。如果遠程密鑰存儲器的“PD”與提供給SQ的PD不匹配,則SQRMB1010A跳過對用于所述VI的Rkey的處理。如果遠程密鑰存儲器的“PD”與提供給SQ的PD匹配,則SQRMB1010A從遠程密鑰存儲器1040中讀取遠程密鑰“0”。如果存儲器遠程密鑰“0”不匹配(有效位是非真或者有效位是真而存儲器遠程密鑰“0”不對應于SQRkey(提供給SQ的key)),則SQRMB1010A移動以檢查下一個Rkey。如果存儲器遠程密鑰“0”與提供給SQ的密鑰匹配(有效位是真并且存儲器遠程密鑰0=SQRkey),則SQRMB1010A清除對應于遠程密鑰存儲器1040中的Rkey“0”的有效位。遠程密鑰存儲器1040可以是單個讀和單個寫端口存儲器。當SQRMB1010A試圖走察遠程密鑰存儲器1040時,可以同時對遠程密鑰存儲器1040進行RQ讀操作以及寫操作。所以,SQRMB1010A在接收隊列(RQ)正試圖讀遠程密鑰存儲器1040的那些時鐘周期中,延遲讀取存儲器的訪問,并且在接收隊列(RQ)正試圖寫入遠程密鑰存儲器1040的那些時鐘周期中,延遲寫訪問。一旦SQRMB1010A為了檢查用于所有VI的所有Rkey而走察了整個遠程密鑰存儲器1040,就可使發送隊列(SQ)的完成信號有效。然后,SQRMB1010A等待由發送隊列(SQ)開始。還存在一種實現應該被注意的情形,即讀和寫都針對遠程密鑰存儲器1040的同一地址。在所述情形下,讀數據不是有效的。由此,當讀取地址和寫入地址相同并且在同一時間周期內對遠程密鑰存儲器1040正在進行寫和讀操作時,將寫數據而不是存儲器讀取數據直接傳送給讀總線。圖11舉例說明依照本發明實施例的示例性高級遠程密鑰的驗證。遠程密鑰的驗證可由工作隊列對(WQP)的發送隊列(SQ)來激活,以便檢查在遠程密鑰存儲器1040中對應于未處理的RDMA操作的遠程密鑰(Rkey)的有效性。如先前所描述的,這種遠程密鑰(Rkey)與虛擬地址一起使用以用來描述授權遠程系統訪問如圖4A-4B所示的主機系統130的本地存儲器206。如圖11所示,在框1110,微引擎(ME)710的微代碼確定是否將“描述符”(“WQE”)形式的工作請求郵送到發送隊列(SQ)上,即,在發送隊列(SQ)上是否有任意VI待處理。描述符(WQE)通常針對正常數據傳送操作而加以郵送,諸如正常發送、RDMA寫操作以及RDMA讀操作。如果在發送隊列(SQ)上沒有要郵送的工作請求或者沒有待處理的VI,則微引擎(ME)710保持空閑。然而,在框1112,如果在發送隊列(SQ)上有已郵送的工作請求或者有待處理的VI,那么微代碼確定所述被郵送的描述符是否是綁定描述符。綁定描述符是為非數據操作而郵送的工作請求,所述非數據操作諸如移動或無效在發送隊列(SQ)上的于主機存儲器206的存儲器區域內的“存儲器窗口”,以限制RDMA數據傳送。在框1114,如果所述已郵送的描述符不是綁定描述符,那么微代碼能夠針對正常數據傳送操作進行處理,諸如正常發送、RDMA寫操作以及RDMA讀操作。通常,如圖7中所示的整個微控制器子系統700可以操作以用來處理正常數據傳送操作,諸如正常發送、RDMA寫操作以及RDMA讀操作。然而,在框1116,如果已郵送的描述符是綁定描述符,那么微代碼確定“存儲器窗口”是否被無效。在框1118,如果“存儲器窗口”沒有被無效,那么微代碼記錄所述“存儲器窗口”被移動(總是“真”),并且進入框1120,以對主機存儲器206執行寫操作以便移動所述“存儲器窗口”。然而,如果“存儲器窗口”被無效,那么地址轉換塊(ATB)(未示出)前進,在框1122對主機存儲器206執行寫操作以便破壞所述“存儲器窗口”。在任一情況后,在框1124,RMB1010可被激活以搜索所有使用所述“存儲器窗口”的未處理的RDMA操作。接著,在框1126,RMB1010標識使用過這一“存儲器窗口”的遠程密鑰(Rkey)。如果使用過這一“存儲器窗口”的遠程密鑰(Rkey)被標識,那么RMB1010前進,并在框1128使所述遠程密鑰(Rkey)無效,直到在框1130將所有的遠程密鑰(Rkey)都無效掉為止。如果任何遠程密鑰(Rkey)都沒有被標識,那么在框1130,RMB1010以使所有遠程密鑰(Rkey)都無效而完成并返回到空閑狀態。如果所有的遠程密鑰(Rkey)都沒有被無效,那么RMB101O返回到框1124以搜索所有使用所述“存儲器窗口”的未處理的RDMA操作,直到所有的遠程密鑰(Rkey)都被標記為“無效的”為止,從而使得任何新的遠程密鑰(Rkey)或新的工作隊列對(WQP)都不可以進入并使用所述“存儲器窗口”。圖12舉例說明了如圖11中的框1124-1130中所示的由遠程密鑰管理器塊(RMB)1010執行的示例性的單個密鑰的驗證。依照InfiniBandTM體系結構規范,存在256個“VI”(也稱為“WQP”或“QP”)。所有的256個VI需要被單獨地處理,以便為無效操作而比較存儲器Rkey(來自于遠程密鑰存儲器1040的遠程密鑰)和SQRkey(來自于發送隊列的遠程密鑰)。然而,“VI”的數目并不限于此。只要主機結構適配器120支持這種“VI”,任意數目的“VI”都可以。如圖12所示,RMB1010保持空閑狀態,直到SQ微引擎(ME)710A請求密鑰無效為止。在這期間,RQ微引擎(ME)710B可以是活動的,并且可以隨意對所述遠程密鑰(Rkey)進行讀和寫。在框1210,如果存在RQ讀操作,則RMB1010等待預定的時間,例如一個時鐘周期。如果沒有任何活動的RQ讀操作,或者在接收隊列(RQ)上不再有任何的活動,則在框1212,RMB1010啟動保護范圍(PD)比較,即,將存儲器PD(來自于遠程密鑰存儲器1040的PD)和提供給SQ的PD(來自于發送隊列的PD)進行比較。如果存儲器PD與提供給SQ的PD不匹配,則RMB1010跳過對所述VI的Rkey的處理,并且在框1214繼續執行以確定是否所有的VI都已完成。這是因為,如果存儲器PD與提供給SQ的PD不匹配,那么沒有任何Rkey將匹配。由此,RMB1010可跳過對所述VI的Rkey的處理,以便節省時間和時鐘周期。然而,如果存儲器的PD與提供給SQ的PD匹配,則RMB1010知道所述工作隊列對(WQP)被允許使用所述Rkey。如框1216-1230中所示的,RMB1010然后前進以便讀取遠程密鑰,并且啟動順序地針對所有與所述特定VI相關聯的遠程密鑰(Rkey)的遠程密鑰比較。每個VI關聯四(4)個遠程密鑰,所述四個遠程密鑰包括正在每個工作隊列對(WQP)中進行的一(1)個RDMA寫和三(3)個RDMA讀。然而,與每個VI關聯的遠程密鑰的數目并不限于此。由于在此實施例中每個VI關聯四(4)個遠程密鑰,因而RMB1010為了密鑰無效必須順序地啟動四次不同的遠程密鑰比較。具體而言,在框1216,RMB1010從遠程密鑰存儲器1040讀取遠程密鑰“0”并將其與提供給SQ的密鑰進行比較。如果存儲器遠程密鑰“0”與提供給SQ的密鑰不匹配(有效位非真或者有效位為真而存儲器遠程密鑰“0”不對應于SQRkey),則RMB1010移動以檢查下一個Rkey。然而,如果存儲器遠程密鑰“0”與提供給SQ的密鑰匹配(有效位是真且存儲器遠程密鑰0=SQRkey),則在框1218,RMB1010清除對應于遠程密鑰存儲器1040中的Rkey“0”的有效位。接著,在框1220,RMB1010從遠程密鑰存儲器1040讀取遠程密鑰“1”并將其與提供給SQ的密鑰進行比較。如果存儲器遠程密鑰“1”與提供給SQ的密鑰不匹配,則RMB1010移動以檢查下一個Rkey。如果存儲器遠程密鑰“1”與提供給SQ的密鑰匹配,則在框1222,RMB1010清除對應于遠程密鑰存儲器1040中的Rkey“1”的有效位。同樣的,RMB1010前進,在框1224處從遠程密鑰存儲器1040讀取遠程密鑰“2”并將其與提供給SQ的密鑰進行比較。如果存儲器遠程密鑰“2”與提供給SQ的密鑰不匹配,則RMB1010移動以檢查下一個Rkey。如果存儲器遠程密鑰“2”與提供給SQ的密鑰匹配,則在框1226,RMB1010清除對應于遠程密鑰存儲器1040中的Rkey“2”的有效位。最后,在框1228處,RMB1010從遠程密鑰存儲器1040讀取遠程密鑰“3”并將其與提供給SQ的密鑰進行比較。如果存儲器遠程密鑰“3”與提供給SQ的密鑰不匹配,則在框1214,RMB1010移動以確定是否所有的VI都完成。如果存儲器遠程密鑰“3”與提供給SQ的密鑰匹配,則在框1230,RMB1010清除對應于遠程密鑰存儲器1040中的Rkey“3”的有效位,并且進入框1214以確定是否所有VI都完成。圖13A-13H舉例說明了依照本發明實施例的正常遠程密鑰管理器塊(RMB)操作的示例性時序圖。具體而言,圖13A示出了以每8ns為時鐘周期的示例性時序圖。圖13B示出了從發送隊列(SQ)開始的SQ起始的示例性時序圖。圖13C示出了對應于發送隊列(SQ)完成的示例性時序圖。圖13D示出了依照本發明實施例的RMB1010的當前狀態的示例性時序圖。圖13E示出了進行中的當前“VI”或工作隊列對(WQP)的示例性時序圖。圖13F示出了依照本發明實施例的RMB1010的存儲器讀操作(rmb_mem_re)的示例性時序圖。圖13G示出了依照本發明實施例的RMB1010的存儲器讀地址(rmb_mem_rd_addr)的示例性時序圖。圖13H示出了依照本發明實施例的存儲器讀數據(rmb_mem_rd_data)的示例性時序圖。在這一情況下,將討論RMB對單個“VI”(也稱為“WQP”或“WP”)的所有Rkey的處理以及轉換到下一個VI。假設存儲器PD與提供給SQ的PD匹配。并假設存儲器Rkey與提供給SQ的Rkey不匹配。下面將討論對所述操作的一個周期接一個周期的說明如圖13A-13H所示,RMB1010在周期#1以及周期#2期間保持空閑。在周期#3,當發送隊列(SQ)如圖13B所示那樣開始RMB操作時,RMB1010如圖13F所示那樣使遠程密鑰存儲器1040的“讀使能”有效,并且驅動正確的地址以讀取第一VI、即VI“0”的保護范圍(PD),如圖13G所示。在周期#4,將存儲器PD與提供給SQ的PD比較。因為存在匹配,所有RMB1010開始讀取對應于所述VI的遠程密鑰(Rkey)。如圖13C所示,使發送隊列(SQ)的完成指示(完成信號)無效。在周期#5,#6和#7,如果來自遠程密鑰存儲器1040的Rkey“0”,“1”和“2”與提供給SQ的Rkey不匹配,則RMB1010繼續讀遠程密鑰存儲器1040。在周期#8,如果從遠程密鑰存儲器1040讀取的Rkey“3”與提供給SQ的Rkey不匹配,則結束對當前VI的Rkey的處理。如圖13F所示,RMB1010使遠程密鑰存儲器140的“讀使能”無效。在周期#9,RMB1010進行檢查以查看是否所有的VI都完成(參見圖12的框1214)。如果所有的VI還沒有完成,并且接收隊列(RQ)沒有正在訪問遠程密鑰存儲器1040,則RMB1010開始讀取下一個VI、即VI“1”的保護范圍(PD)。在周期#10,以與參照周期#4描述的方式相同的方式來再次對存儲器PD和提供給SQ的PD進行比較。然而,VI#被加1。在周期#11,#12以及#13,與參考周期#5,#6和#7所描述的方式一樣,如果來自遠程密鑰存儲器1040的Rkey“0”,”1”和“2”與提供給SQ的Rkey不匹配,則RMB1010繼續讀遠程密鑰存儲器1040。圖14A-14H舉例說明了依照本發明實施例的完成正常遠程密鑰管理器塊(RMB)操作的示例性時序圖。圖14A示出了以每8ns為時鐘周期的示例性時序圖。圖14B示出了從發送隊列(SQ)開始的SQ起始的示例性時序圖。圖14C示出了對應于發送隊列(SQ)完成的示例性時序圖。圖14D示出了依照本發明實施例的RMB1010的當前狀態的示例性時序圖。圖14E示出了進行中的當前“VI”或工作隊列對(WQP)的示例性時序圖。圖14F示出了依照本發明實施例的RMB1010的存儲器讀操作(rmb_mem_re)的示例性時序圖。圖14G示出了依照本發明實施例的RMB1010的存儲器讀地址(rmb_mem_rd_addr)的示例性時序圖。圖14H示出了依照本發明實施例的存儲器讀數據(rmb_mem_rd_data)的示例性時序圖。在這一情況下,將討論RMB對最后VI的最后兩個密鑰的處理和到空閑狀態的轉換。假設存儲器Rkey與提供給SQ的Rkey不匹配。下面將討論對所述操作的一個周期接一個周期的說明如圖14A-14H所示,在周期#1和周期#2期間,RMB1010保持在處理VIMax的中間。在周期#3和周期#4,RMB1010確定從遠程密鑰存儲器1040中順序讀取的Rkey“2”以及Rkey“3”與提供給SQ的用于VIMax的Rkey不匹配,如圖14H所示。在周期#5,RMB1010進行檢查以查看是否所有的VI都完成(參見圖12的框1214)。如果所有的VI都完成,則RMB1010如圖14C所示,在下一個時鐘周期轉換為空閑。如圖14E所示,RMB1010還使發送隊列(SQ)的完成指示(完成信號)有效。如圖14D所示,在周期#6,VI#翻轉至零“0”以準備下一個RMB1010操作的開始。如圖14C所示,在周期#7和#8,然后RMB1010保持空閑。圖15A-15H舉例說明了依照本發明實施例的、在其中存在保護范圍(PD)失配的遠程密鑰管理器塊(RMB)操作的示例性時序圖。在此情況下,RMB1010開始處理VI。假設存儲器PD與提供給SQ的PD不匹配。由此,RMB1010跳過處理當前VI的Rkey,并轉移到下一個VI。圖15A示出了以每8ns為時鐘周期的示例性時序圖。圖15B示出了從發送隊列(SQ)開始的SQ起始的示例性時序圖。圖15C示出了依照本發明實施例的RMB1010的當前狀態的示例性時序圖。圖15D示出了來自于RMB1010的PD失敗指示的示例性時序圖。圖15E示出了進行中的當前“VI”或工作隊列對(WQP)的示例性時序圖。圖15F示出了依照本發明實施例的RMB1010的存儲器讀(rmb_mem_re)操作的示例性時序圖。圖15G示出了依照本發明實施例的RMB1010的存儲器讀地址(rmb_mem_rd_addr)的示例性時序圖。圖15H示出了依照本發明實施例的存儲器讀數據(rmb_mem_rd_data)的示例性時序圖。下面將論述所述操作的一個周期接一個周期的說明如圖15A-15H所示,在周期#1和周期#2期間,RMB1010保持空閑。如圖15B所示,在周期#3,當發送隊列(SQ)開始RMB操作時,RMB1010使遠程密鑰存儲器1040的“讀使能”有效,并驅動正確的地址以讀取第一VI即VI“0”的保護范圍(PD)。如圖15C所示,在周期#4,將存儲器PD與提供給SQ的PD進行比較。由于存在失配,必須終止對當前VI的Rkey處理。由此,RMB1010停止讀取對應于所述VI的遠程密鑰(Rkey)。如圖15G所示,讀取的地址與下一個VI的PD地址一起被加載。在周期#5,RMB1010進行檢查以查看是否所有的VI都已完成(參見圖12的框1214)。如果所有的VI都沒有完成,并且接收隊列(RQ)沒有在訪問遠程密鑰存儲器1040,則RMB1010開始讀取下一個VI即VI“1”的保護范圍(PD)。如圖15E所示,在周期#6,VI#被加1。如圖15C所示,將存儲器PD與提供給SQ的PD比較。由于存在匹配,RMB1010開始讀取對應于所述VI的遠程密鑰(Rkey)。在周期#7和#8,如果來自遠程密鑰存儲器1040的Rkey“0”和“1”與提供給SQ的Rkey不匹配,則RMB1010繼續讀遠程密鑰存儲器1040。圖16A-16K舉例說明了依照本發明實施例、在其中存在多個密鑰失配的遠程密鑰管理器塊(RMB)操作的示例性時序圖。在這種情況下,RMB1010開始處理VI。假設存儲器PD與提供給SQ的PD匹配。并假設所有的存儲器Rkey與提供給SQ的Rkey匹配。由此,RMB1010必須清除每個Rkey各自的有效位。此外還示出了到下一個VI的轉換。具體而言,圖16A示出了以每8ns為時鐘周期的示例性時序圖。圖16B示出了從發送隊列(SQ)開始的SQ起始的示例性時序圖。圖16C示出了依照本發明實施例的RMB1040的當前狀態的示例性時序圖。圖16D示出了來自RMB1010的PD失敗指示的示例性時序圖。圖16E示出了進行中的當前“VI”或工作隊列對(WQP)的示例性時序圖。圖16F示出了依照本發明實施例的RMB1010的存儲器讀(rmb_mem_re)操作的示例性時序圖。圖16G示出了依照本發明實施例的RMB1010的存儲器讀地址(rmb_mem_rd_addr)的示例性時序圖。圖16H示出了依照本發明實施例的存儲器讀數據(rmb_mem_rd_data)的示例性時序圖。圖16I示出了依照本發明實施例的RMB1010的存儲器寫(rmb_mem_we)操作的示例性時序圖。圖16J示出了依照本發明實施例的RMB1010的存儲器寫地址(rmb_mem_wr_addr)的示例性時序圖。圖16K示出了依照本發明實施例的存儲器寫數據(rmb_mem_wr_data)的示例性時序圖。下面將論述所述操作的一個周期接一個周期的說明如圖16A-16K所示,在周期#1以及周期#2期間,RMB1010保持空閑。在周期#3,當發送隊列(SQ)如圖16B所示那樣開始RMB操作時,RMB1010如圖16F所示那樣使遠程密鑰存儲器1040的“讀使能”有效,并且驅動正確的地址以讀取第一VI即VI“0”的保護范圍(PD),如圖16G所示。在周期#4,將存儲器PD與提供給SQ的PD相比較。由于存在匹配,RMB1010開始讀取對應于所述VI的遠程密鑰(Rkey)。在周期#5,來自遠程密鑰存儲器1040的RKey“0”與提供給SQ的Rkey匹配。由此,RMB1010停止讀遠程密鑰存儲器1040。在周期#6,必須清除對應于遠程密鑰存儲器1040中的Rkey“0”的有效位。由此,如圖16I所示,RMB1010使遠程密鑰存儲器1040的“寫使能”有效。此外,RMB1010開始讀Rkey“1”。在周期#7,來自遠程密鑰存儲器1040的Rkey”1”與提供給SQ的Rkey匹配。由此,RMB1010停止讀遠程密鑰存儲器1040。在周期#8,必須清除對應于遠程密鑰存儲器1040中的Rkey“1”的有效位。由此,如圖16I所示,RMB1010使遠程密鑰存儲器1040的“寫使能”有效。RMB1010并且開始讀Rkey“2”。在周期#9,來自遠程密鑰存儲器1040的Rkey“2”與提供給SQ的Rkey匹配。由此,RMB1010停止讀遠程密鑰存儲器1040。在周期#10,必須清除對應于遠程密鑰存儲器1040中的Rkey“2”的有效位。由此,如圖16I所示,RMB1010使遠程密鑰存儲器1040的“寫使能”有效。RMB1010并且開始讀Rkey“3”。在周期#11,來自遠程密鑰存儲器1040的RKey“3”與提供到SQ的Rkey匹配。由此,RMB1010停止讀遠程密鑰存儲器1040。在周期#12,必須清除對應于遠程密鑰存儲器1040中的Rkey“3”的有效位。由此,如圖16I所示,RMB1010使遠程密鑰存儲器1040的“寫使能”有效。在周期#13,RMB1010進行檢查并查看是否所有的VI都完成(參見圖12的框1214)。如果所有的VI還沒有完成,并且接收隊列(RQ)沒有在訪問遠程密鑰存儲器1040,則RMB1010開始讀取下一個VI即VI“1”的保護范圍(PD)。在周期#14,以參見周期#4所描述的相同的方式,再次將存儲器PD與提供給SQ的PD進行比較。然而,VI#被加1。在周期#15,來自遠程密鑰存儲器1040的Rkey“0”與提供給SQ的Rkey匹配,除了VI不同外,所述過程與參考周期#5所描述的方式一樣。圖17A-17M舉例說明了依照本發明實施例的遠程密鑰管理器塊(RMB)操作的示例性時序圖,在所述操作過程中存在具有與間斷的RQ存儲器訪問的多次密鑰失配。在這種情況下,RMB1010開始處理VI。假設存儲器PD與提供給SQ的PD匹配。并假設所有的存儲器Rkey與提供給SQ的Rkey匹配。由此,RMB1010必須清除每個Rkey各自的有效位。但是,RQ微引擎(ME)710B會在RMB1010正試圖訪問存儲器1040的周期上訪問存儲器1040。因此,將論述潛在的存儲器訪問沖突。此外還示出了到下一個VI的轉換。具體而言,圖17A示出了以每8ns為時鐘周期的示例性時序圖。圖17B示出了從發送隊列(SQ)開始的SQ起始的示例性時序圖。圖17C示出了來自接收隊列(RQ)的RQ源地址的示例性時序圖。圖17D示出了RMB1010的RQ存儲器寫操作的示例性時序圖。圖17E示出了依照本發明實施例的RMB1040的當前狀態的示例性時序圖。圖17F示出了來自于RMB1010的密鑰失敗指示的示例性時序圖。圖17G示出了正在處理的當前“VI”或工作隊列對(WQP)的示例性時序圖。圖17H示出了依照本發明實施例的RMB1010的存儲器讀(rmb_mem_re)的示例性時序圖。圖17I示出了依照本發明實施例的RMB1010的存儲器讀地址(rmb_mem_rd_addr)的示例性時序圖。圖17J示出了依照本發明實施例的存儲器讀數據(rmb_mem_rd_data)的示例性時序圖。圖17K示出了依照本發明實施例的RMB1010的存儲器寫(rmb_mem_we)操作的示例性時序圖。圖17L示出了依照本發明實施例的RMB1010的存儲器寫地址(rmb_mem_wr_addr)的示例性時序圖。圖17M示出了依照本發明實施例的存儲器寫數據(rmb_mem_wr_data)的示例性時序圖。下面將論述所述操作的一個周期接一個周期的說明如圖17A-17M所示,在周期#1和周期#2期間,RMB1010保持空閑。在周期#3,如圖17所示,發送隊列(SQ)開始RMB操作。由此,RMB1010必須讀取對應于VI“0”(也稱為“WQP”或“QP”)的保護范圍(PD)。然而,在這一時鐘上,接收隊列(RQ)正試圖讀遠程密鑰存儲器1040。由此,RMB1010等待,直到接收隊列(RQ)不活動為止。在周期#4,如圖17I以及17J所示,當RQ不活動時,RMB1010使遠程密鑰存儲器1040的“讀使能”有效,并且驅動正確的地址以讀取第一VI即VI“0”的保護范圍(PD)。在周期#5,將存儲器PD與提供給SQ的PD比較。因為存在匹配,RMB1010必須開始讀取對應于所述VI的Rkey。但是,在這一時鐘上,接收隊列(RQ)正試圖讀遠程密鑰存儲器1040。由此,RMB1010等待,直到接收隊列(RQ)不活動為止。在周期#6,RMB1010開始讀來自于遠程密鑰存儲器1040的Rkey“0”。在周期#7,來自遠程密鑰存儲器1040的Rkey“0”與提供給SQ的Rkey匹配。由此,RMB1010停止讀遠程密鑰存儲器1040。在周期#8,必須清除對應于遠程密鑰存儲器1040中的Rkey“0”的有效位。然而,在這一時鐘上,接收隊列(RQ)正在寫入遠程密鑰存儲器1040。由此,RMB1010等待,直到接收隊列(RQ)不活動為止。在周期#9,當接收隊列(RQ)不活動時,RMB1010清除對應于存儲器1040中的Rkey“0”的有效位。而后,RMB1010開始讀Rkey“1”。在周期#10,來自遠程密鑰存儲器1040的Rkey“1”與提供給SQ的Rkey不匹配。RMB1010必須讀來自于遠程密鑰存儲器1040的Rkey“2”。但是,在這一時鐘上,接收隊列(RQ)正試圖讀遠程密鑰存儲器1040。由此,RMB1010等待,直到接收隊列(RQ)不活動為止。在周期#11,當接收隊列(RQ)不活動時,RMB1010開始讀來自于遠程密鑰存儲器1040的Rkey“2”。在周期#12,來自遠程密鑰存儲器1040的Rkey“1”與提供給SQ的Rkey不匹配。由此,RMB1010必須讀來自于遠程密鑰存儲器1040的Rkey“3”。但是在這一時鐘上,接收隊列(RQ)正試圖讀遠程密鑰存儲器1040。由此,RMB1010等待,直到接收隊列(RQ)不活動為止。在周期#13,當接收隊列(RQ)不活動時,RMB1010開始讀來自遠程密鑰存儲器1040的Rkey“3”。在周期#14,來自遠程密鑰存儲器1040的Rkey“3”與提供給SQ的Rkey匹配。由此,RMB1010停止從遠程密鑰存儲器1040中讀取。在周期#15,RMB1010想要清除對應于遠程密鑰存儲器1040中的Rkey“3”的有效位。但是在這一時鐘上,接收隊列(RQ)正在寫遠程密鑰存儲器1040。因而,RMB1010等待,直到接收隊列(RQ)不活動為止。在周期#16,當接收隊列(RQ)不活動時,RMB1010清除對應于遠程密鑰存儲器1040中的Rkey“0”的有效位。在周期#17,RMB1010進行檢查并查看是否所有的VI都完成。如果不是所有的VI都完成,并且接收隊列(RQ)沒有正在訪問存儲器1040,那么RMB1010開始讀下一個VI即VI#1(也稱為“WQP#1”或“QP#1”)的PD。在周期#18,以參考周期#4所描述的方式相同的方式,RMB1010使存儲器1040的“讀使能”有效,并驅動正確的地址以讀取VI#1的密鑰“0”。但是VI#被加1。圖13A-13H、14A-14H、15A-15H、16A-16K以及17A-17M所示的時序圖,是受ASIC工藝以及其它因素的要求而控制的。如果ASIC工藝和技術要求(諸如芯片制造工藝)不同,那么圖10-12中所示的這些步驟以及圖13A-13H、14A-14H、15A-15H、16A-16K以及17A-17M中所示的時序圖的實現將不同地被完成。然而仍要遵照在本申請中所描述的基本原理。此外,除了參照圖10-12所描述的本申請的這些方法外,還有兩種(2)其它可能的方式可用來實現遠程密鑰管理器塊(RMB)。這些可能的方式包括完全以硬件或者完全以微代碼的方式來實現遠程密鑰管理器塊(RMB)。如果遠程密鑰管理器塊(RMB)完全以硬件方式來實現,那么將會創建出許多競爭條件(racecondition),這是由于SQ綁定描述符及RQRDMA操作,和主機存儲器窗口無效或移動之間復雜的交互。此外,如果InfiniBandTM規范將來會改變,并且這如果并非不可能的話,那么硬件將來的修改或升級會變得非常困難。如果遠程密鑰管理器塊(RMB)完全以微代碼的方式來實現,那么每個WQP至少需要9個時鐘周期(5個讀周期以及4個寫周期)。為支持256個WQP,將需要總計為256(WQP)×9(時鐘/WQP)×8(ns/時鐘)~18us。這意味著在這一時間期間,主機結構適配器將會被完全地停止,并且無法處理SQ分組。這會引起分組超時,以及其它InfiniBandTM相關的一致性問題。如上所述,依照本發明實施例的、使用基于通道、交換結構的體系結構的、在數據網絡中的主機系統上安裝的主機結構適配器,有效地管理NGIO/InfiniBandTM通道,并且支持主機系統上的通信設備間的數據移動操作,或者支持直接連接在一起或經由使用基于通道的、交換結構的體系結構的數據網絡連接在一起的主機系統之間的數據移動操作。為具有最小硬件投資的NGIO/InfiniBandTM的功能性,而優化所述主機結構適配器,包括控制NGIO/InfiniBandTM協議以最小流水線的執行。主機結構適配器的微控制子系統被設計以用于控制NGIO/InfiniBandTM協議以最小流水線的執行。此外,實現了密鑰驗證機制,以用于在這種數據網絡中管理并且無效對應于未處理數據事務(例如,讀/寫操作)的遠程密鑰,以便授權遠程系統經由基于通道的交換結構來有效訪問主機存儲器。雖然已經舉例說明和描述了被視為本發明的示例性的實施例,但是本領域技術人員將能夠理解,隨著技術的發展,在不脫離本發明真正范圍的情況下,可以進行各種變化和修改,并且可以利用等價物來代替其元件。例如,本發明適用于所有類型的數據網絡和LAN系統,所述數據網絡包括但不限于局域網(LAN)、廣域網(WAN)、校園網(CAN)、城域網(MAN)、全球區域網絡(GAN)、以及如下的系統區域網絡(SAN),所述系統區域網絡使用下一代I/O(NGIO)、FutureI/O(FIO)、InfiniBandTM以及ServerNet,所述LAN系統包括以太網、FDDI(光纖分布式數據接口)令牌環LAN、異步傳輸模式(ATM)LAN、光線通道以及無線LAN。此外,在不脫離本發明真實范圍的情況下,可以作出其它的修改以使本發明的教導適應特殊的情形。由此,應該意識到本發明并不限于所公開的各種示例性實施例,而是包括在所附權利要求書限定的范圍內的所有實施例。權利要求1.一種主機結構適配器,包括一個或多個微引擎,被安排成用于響應來自主機系統的對數據傳送操作的工作請求,經由交換結構來建立連接以及支持數據傳送操作;以及遠程密鑰管理器,被安排成用于經由所述交換結構來管理遠程密鑰以及檢查遠程密鑰的有效性,所述遠程密鑰對應于未處理的數據傳送操作。2.如權利要求1所述的主機結構適配器,進一步包括包含多個工作隊列對(WQP)的傳輸引擎,在所述多個工作隊列對中,描述符形式的工作請求經由所述交換結構被郵送,以用來描述數據傳送操作以及描述要被移動以便處理和/或傳輸的數據的位置。3.如權利要求2所述的主機結構適配器,其特征在于所述工作隊列對(WQP)均包括用作“啟動器”的發送隊列(SQ),所述發送隊列經由所述交換結構請求到遠程系統的遠程虛擬接口(VI)的正常消息發送,請求遠程直接存儲器訪問(RDMA)讀操作,所述讀操作請求消息要從所述遠程系統的特定存儲單元加以讀取,以及經由所述交換結構請求遠程直接存儲器訪問(RDMA)寫操作,所述寫操作請求消息要被寫入所述遠程系統的特定存儲單元;以及用作“應答器”的接收隊列,所述接收隊列經由所述交換結構從所述遠程系統接收對來自正常發送、RDMA讀操作和RDAM寫操作的消息的請求。4.如權利要求3所述的主機結構適配器,其特征在于所述微引擎以及所述遠程密鑰管理器依照“InfiniBandTM規范”加以配置,并且作為專用集成電路(ASIC)的一部分加以實現。5.如權利要求3所述的主機結構適配器,其特征在于所述微引擎包括發送隊列(SQ)微引擎,被安排成用于控制工作隊列對(WQP)的發送隊列(SQ)的操作;以及接收隊列(RQ)微引擎,被安排成用于控制工作隊列對(WQP)的接收隊列(RQ)的操作。6.如權利要求5所述的主機結構適配器,其特征在于所述遠程密鑰管理器包括遠程密鑰存儲器,所述遠程密鑰存儲器用于存儲儲存的遠程密鑰,所述儲存的遠程密鑰用于與包含在用于密鑰驗證的工作請求中的遠程密鑰進行比較。7.如權利要求6所述的主機結構適配器,其特征在于所述遠程密鑰用于為包括RDMA讀/寫操作的未處理數據傳送操作標識用于從虛擬地址到物理地址轉換的適當頁。8.如權利要求7所述的主機結構適配器,其特征在于所述工作請求以用于正常數據傳送操作的描述符的形式而被郵送,所述正常數據傳送操作諸如正常發送、RDMA寫操作以及RDMA讀操作,或者以用于非數據操作的綁定描述符的形式而被郵送,所述非數據操作諸如在發送隊列(SQ)上移動或無效所述主機系統的主機存儲器的特定存儲器區域內的“存儲器窗口”,以限制RDMA數據傳送操作。9.如權利要求6所述的主機結構適配器,其特征在于所述遠程密鑰存儲器是具有單個讀端口和單個寫端口的隨機訪問存儲器(RAM)。10.如權利要求8所述的主機結構適配器,其特征在于所述遠程密鑰管理器被啟動來通過以下操作檢查遠程密鑰的有效性,所述操作包括確定在發送隊列(SQ)上郵送的描述符是否是用于非數據操作的綁定描述符;如果所述郵送的描述符不是綁定描述符,那么針對正常數據傳送操作,諸如正常發送、RDMA寫操作以及RDMA讀操作進行處理;如果所述郵送的描述符是綁定描述符,那么確定所述“存儲器窗口”是否是無效的;如果所述“存儲器窗口”不是無效的,那么記錄所述“存儲器窗口”被移動,并且對所述主機系統的主機存儲器執行寫操作以移動所述“存儲器窗口”;如果所述“存儲器窗口”是無效的,那么對所述主機系統的主機存儲器執行寫操作以破壞所述“存儲器窗口”;搜索所有使用所述“存儲器窗口”的未處理RDMA操作,以標識使用過所述“存儲器窗口”的遠程密鑰;如果使用過所述“存儲器窗口”的遠程密鑰被標識了,則使所述遠程密鑰無效,直到所有遠程密鑰都被無效為止;如果任何遠程密鑰都沒有被標識,則完成所有遠程密鑰的無效,并且返回到空閑狀態;以及如果所有的遠程密鑰都沒有被無效,那么返回以便搜索所有使用所述“存儲器窗口”的未處理RDMA操作,直到所有的遠程密鑰被標記為“無效的”為止,從而使得任何新的遠程密鑰或者新的工作隊列對(WQP)都不可以進入并且使用所述“存儲器窗口”。11.如權利要求10所述的主機結構適配器,其特征在于所述遠程密鑰管理器在來自所述SQ微引擎請求密鑰無效時被啟動,以便通過以下操作來使遠程密鑰無效,所述操作包括啟動虛擬接口(VI)的存儲器PD和提供給SQ的PD之間的保護范圍(PD)比較;如果存儲器PD與提供給SQ的PD不匹配,則跳過對用于所述VI的遠程密鑰的處理,并且確定是否所有的VI都被處理了;以及如果存儲器PD與提供給SQ的PD匹配,則讀取遠程密鑰,并且啟動順序地針對所有與用于密鑰無效的所述VI相關聯的遠程密鑰的遠程密鑰比較。12.如權利要求11所述的主機結構適配器,其特征在于所述遠程密鑰管理器啟動通過以下操作對與所述VI相關聯的所有遠程密鑰的遠程密鑰比較,所述操作包括從遠程密鑰存儲器讀取第一遠程密鑰,并將其與提供給SQ的密鑰進行比較;如果所述第一遠程密鑰與提供給SQ的密鑰不匹配,則移動以檢查下一個遠程密鑰;如果所述第一遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的第一遠程密鑰的有效位;從遠程密鑰存儲器讀取第二遠程密鑰,并且將其與提供給SQ的密鑰進行比較;如果所述第二遠程密鑰與提供給SQ的密鑰不匹配,則移動以檢查下一個遠程密鑰;如果所述第二遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的第二遠程密鑰的有效位;從遠程密鑰存儲器讀取第三遠程密鑰,并且將其與提供給SQ的密鑰進行比較;如果所述第三存儲器遠程密鑰與提供給SQ的密鑰不匹配,則移動以檢查下一個遠程密鑰;如果所述第三遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的第三遠程密鑰的有效位;從遠程密鑰存儲器讀取最后的遠程密鑰,并將其與提供給SQ的密鑰進行比較;如果所述最后的遠程密鑰與提供給SQ的密鑰不匹配,則移動以確定是否所有的VI都被處理;以及如果所述最后的遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的最后的遠程密鑰的有效位,并確定是否所有的VI都被處理。13.一種安裝在主機系統上的、用于連接至數據網絡的交換結構的主機結構適配器,包括至少一個微引擎(ME),被安排成用于經由所述交換結構來建立連接以及支持數據傳送;串行接口,被安排成用于接收來自所述交換結構的用于數據傳送操作的數據分組,并將其傳輸;主機接口,被安排成用于接受來自所述主機系統的對數據傳送操作的工作請求,并以描述符的形式將其傳輸;前后關系存儲器,被安排成用于存儲所述微引擎(ME)用來處理對數據傳送操作的工作請求所必需的前后關系信息;門鈴管理器,被安排成用于更新所述微引擎(ME)用來處理對數據傳送操作的工作請求所必需的前后關系信息;以及遠程密鑰管理器,被安排成用于管理遠程密鑰,并檢查與未處理的數據傳送操作對應的遠程密鑰的有效性。14.如權利要求13所述的主機結構適配器,進一步包括包含多個工作隊列對(WQP)的傳輸引擎,在所述工作隊列對中,描述符形式的工作請求經由所述交換結構被郵送,以用來描述數據傳送操作以及描述要被移動以便處理和/或傳輸的數據的位置。15.如權利要求14所述的主機結構適配器,其特征在于所述工作隊列對(WQP)均包括用作“啟動器”的發送隊列(SQ),所述發送隊列經由所述交換結構請求到遠程系統的遠程虛擬接口(VI)的正常消息發送,請求遠程直接存儲器訪問(RDMA)讀操作,所述讀操作請求消息要從所述遠程系統的特定存儲單元加以讀取,以及經由所述交換結構請求遠程直接存儲器訪問(RDMA)寫操作,所述寫操作請求消息要被寫入所述遠程系統的特定存儲單元;以及用作“應答器”的接收隊列,所述接收隊列經由所述交換結構從所述遠程系統接收對來自正常發送、RDMA讀操作和RDAM寫操作的消息的請求。16.如權利要求13所述的主機結構適配器,其特征在于所述微引擎、主機接口、串行接口、前后關系存儲器、門鈴管理器以及所述遠程密鑰管理器依照“InfiniBandTM規范”加以配置,并且作為專用集成電路(ASIC)的一部分加以實現。17.如權利要求15所述的主機結構適配器,其特征在于所述微引擎包括發送隊列(SQ)微引擎,被安排成用于控制工作隊列對(WQP)的發送隊列(SQ)的操作;以及接收隊列(RQ)微引擎,被安排成用于控制工作隊列對(WQP)的接收隊列(RQ)的操作。18.如權利要求17所述的主機結構適配器,其特征在于所述遠程密鑰管理器包括遠程密鑰存儲器,所述遠程密鑰存儲器存儲儲存的遠程密鑰,所述儲存的遠程密鑰用于與包含在用于密鑰驗證的工作請求中的遠程密鑰進行比較。19.如權利要求18所述的主機結構適配器,其特征在于所述遠程密鑰用于為包括RDMA讀/寫操作的未處理數據傳送操作標識用于從虛擬地址到物理地址轉換的適當頁。20.如權利要求19所述的主機結構適配器,其特征在于所述工作請求以用于正常數據傳送操作的描述符的形式而被郵送,所述正常數據傳送操作諸如正常發送、RDMA寫操作以及RDMA讀操作,或者以用于非數據操作的綁定描述符的形式而被郵送,所述非數據操作諸如在發送隊列(SQ)上移動或無效所述主機系統的主機存儲器的特定存儲器區域內的“存儲器窗口”,以限制RDMA數據傳送操作。21.如權利要求18所述的主機結構適配器,其特征在于所述遠程密鑰存儲器是1280×28的具有單個讀端口和單個寫端口的隨機訪問存儲器(RAM)。22.如權利要求20所述的主機結構適配器,其特征在于所述遠程密鑰管理器被啟動來通過以下操作來檢查遠程密鑰的有效性,所述操作包括確定在發送隊列(SQ)上郵送的描述符是否是用于非數據操作的綁定描述符;如果所述郵送的描述符不是綁定描述符,那么針對正常數據傳送操作,諸如正常發送、RDMA寫操作以及RDMA讀操作進行處理;如果所述郵送的描述符是綁定描述符,那么確定所述“存儲器窗口”是否是無效的;如果所述“存儲器窗口”不是無效的,那么記錄所述“存儲器窗口”被移動,并且對所述主機系統的主機存儲器執行寫操作以移動所述“存儲器窗口”;如果所述“存儲器窗口”是無效的,那么對所述主機系統的主機存儲器執行寫操作以破壞所述“存儲器窗口”;搜索所有使用所述“存儲器窗口”的未處理RDMA操作,以標識使用過所述“存儲器窗口”的遠程密鑰;如果使用過所述“存儲器窗口”的遠程密鑰被標識了,則使所述遠程密鑰無效,直到所有遠程密鑰都被無效為止;如果任何遠程密鑰都沒有被標識,則完成使所有遠程密鑰的無效,并且返回到空閑狀態;以及如果所有的遠程密鑰都沒有被無效,那么返回以便搜索所有使用所述“存儲器窗口”的未處理RDMA操作,直到所有的遠程密鑰被標記為“無效的”為止,從而使得任何新的遠程密鑰或者新的工作隊列對(WQP)都不可以進入并且使用所述“存儲器窗口”。23.如權利要求22所述的主機結構適配器,其特征在于所述遠程密鑰管理器在來自所述SQ微引擎請求密鑰無效時被啟動,以便通過以下操作來使遠程密鑰無效,所述操作包括啟動虛擬接口(VI)的存儲器PD和提供給SQ的PD之間的保護范圍(PD)比較;如果存儲器PD與提供給SQ的PD不匹配,則跳過對用于所述VI的遠程密鑰的處理,并且確定是否所有的VI都被處理了;以及如果存儲器PD與提供給SQ的PD匹配,則讀取遠程密鑰,并且啟動順序地針對所有與用于密鑰無效的所述VI相關聯的遠程密鑰的遠程密鑰比較。24.如權利要求23所述的主機結構適配器,其特征在于所述遠程密鑰管理器啟動通過以下操作對與所述VI相關聯的所有遠程密鑰的遠程密鑰比較,所述操作包括從遠程密鑰存儲器讀取第一遠程密鑰并將其與提供給SQ的密鑰進行比較;如果所述第一遠程密鑰與提供給SQ的密鑰不匹配,則移動以檢查下一個遠程密鑰;如果所述第一遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的第一遠程密鑰的有效位;從遠程密鑰存儲器讀取第二遠程密鑰并且將其與提供給SQ的密鑰進行比較;如果所述第二遠程密鑰與提供給SQ的密鑰不匹配,則移動以檢查下一個遠程密鑰;如果所述第二遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的第二遠程密鑰的有效位;從遠程密鑰存儲器讀取第三遠程密鑰并且將其與提供給SQ的密鑰進行比較;如果所述第三存儲器遠程密鑰與提供給SQ的密鑰不匹配,則移動以檢查下一個遠程密鑰;如果所述第三遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的第三遠程密鑰的有效位;從遠程密鑰存儲器讀取最后的遠程密鑰,并將其與提供給SQ的密鑰進行比較;如果所述最后的遠程密鑰與提供給SQ的密鑰不匹配,則移動以確定是否所有的VI都被處理;以及如果所述最后的遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的最后的遠程密鑰的有效位,并確定是否所有的VI都被處理。25.一種用于在主機系統上安裝的主機結構適配器中檢查如下遠程密鑰的有效性的方法,所述遠程密鑰對應于未處理的遠程直接存儲器訪問(RDMA)操作,包括確定要在發送隊列(SQ)上加以處理的任意虛擬接口(VI)是否是用于非數據操作的綁定描述符;如果被郵送的描述符不是綁定描述符,則針對正常數據傳送操作進行處理;如果所述郵送的描述符是綁定描述符,那么確定所述“存儲器窗口”是否是無效的;如果所述“存儲器窗口”不是無效的,那么記錄所述“存儲器窗口”被移動,并且對所述主機系統的主機存儲器執行寫操作以移動所述“存儲器窗口”;如果所述“存儲器窗口”是無效的,那么對所述主機系統的主機存儲器執行寫操作以破壞所述“存儲器窗口”;搜索所有使用所述“存儲器窗口”的未處理RDMA操作,以標識使用過所述“存儲器窗口”的遠程密鑰;如果使用過所述“存儲器窗口”的遠程密鑰被標識了,則使所述遠程密鑰無效,直到所有遠程密鑰都被無效為止;如果任何遠程密鑰都沒有被標識,則完成所有遠程密鑰的無效,并且返回到空閑狀態;以及如果所有的遠程密鑰都沒有被無效,那么返回以便搜索所有使用所述“存儲器窗口”的未處理RDMA操作,直到所有的遠程密鑰被標記為“無效的”為止,從而使得任何新的遠程密鑰或者新的工作隊列對(WQP)都不可以進入并且使用所述“存儲器窗口”。26.如權利要求25所述的方法,其特征在于所述遠程密鑰通過以下步驟被無效,所述步驟包括啟動虛擬接口(VI)的存儲器PD和提供給SQ的PD之間的保護范圍(PD)比較;如果存儲器PD與提供給SQ的PD不匹配,則跳過對用于所述VI的遠程密鑰的處理,并且確定是否所有的VI都被處理了;以及如果存儲器PD與提供給SQ的PD匹配,則讀取遠程密鑰,并且啟動順序地針對所有與用于密鑰無效的所述VI相關聯的遠程密鑰的遠程密鑰比較。27.如權利要求26所述的方法,其特征在于用于與所述VI相關聯的所有遠程密鑰的所述遠程密鑰比較通過以下步驟加以執行,所述步驟包括從遠程密鑰存儲器讀取第一遠程密鑰并將其與提供給SQ的密鑰進行比較;如果所述第一遠程密鑰與提供給SQ的密鑰不匹配,則移動以檢查下一個遠程密鑰;如果所述第一遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的第一遠程密鑰的有效位;從遠程密鑰存儲器讀取第二遠程密鑰并且將其與提供給SQ的密鑰進行比較;如果所述第二遠程密鑰與提供給SQ的密鑰不匹配,則移動以檢查下一個遠程密鑰;如果所述第二遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的第二遠程密鑰的有效位;從遠程密鑰存儲器讀取第三遠程密鑰并且將其與提供給SQ的密鑰進行比較;如果所述第三存儲器遠程密鑰與提供給SQ的密鑰不匹配,則移動以檢查下一個遠程密鑰;如果所述第三遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的第三遠程密鑰的有效位;從遠程密鑰存儲器讀取最后的遠程密鑰,并將其與提供給SQ的密鑰進行比較;如果所述最后的遠程密鑰與提供給SQ的密鑰不匹配,則移動以確定是否所有的VI都被處理;以及如果所述最后的遠程密鑰與提供給SQ的密鑰匹配,則清除對應于遠程密鑰存儲器中的最后的遠程密鑰的有效位,并確定是否所有的VI都被處理。全文摘要一種配備一個或多個主機結構適配器的主機系統,所述主機結構適配器安裝在所述主機系統中,用于連接到數據網絡的交換結構。所述主機結構適配器可包括至少一個微引擎(ME),被安排成用于經由交換結構建立連接以及支持數據傳送操作;串行接口,被安排成接收并傳輸來自交換結構的用于數據傳送操作的數據分組;主機接口,被安排成用于接收并傳輸來自所述主機系統的對數據傳送操作的主機數據傳送工作請求;前后關系存儲器,被安排成用于提供數據傳送操作所必需的前后關系信息;門鈴管理器,被安排成用于更新所述微引擎(ME)用來處理對數據傳送操作的主機數據傳送請求所必需的前后關系信息;以及遠程密鑰管理器,被安排成用于管理遠程密鑰并檢查與未處理的數據傳送操作對應的遠程密鑰的有效性。文檔編號H04L29/06GK1640089SQ02810710公開日2005年7月13日申請日期2002年2月21日優先權日2001年3月26日發明者B·帕塔薩拉蒂,B·M·萊特納,D·J·加斯巴羅申請人:英特爾公司