專利名稱:用于多層翻譯和保護表的方法和裝置的制作方法
技術領域:
本發明涉及一種數據網絡,具體地說,涉及一種翻譯和保護表(TPT)的翻譯入口的排列和使用。
背景技術:
在網絡結構中,操作系統(OS)使網絡硬件虛擬為一組邏輯通信端點,以及到這些端點(如計算機、服務器和/或I/O設備)中硬件的多路訪問。操作系統(OS)還可以實現使連接端點之間通信可靠的協議(如傳輸控制協議,TCP)。
操作系統(OS)可接收請求,以發送消息(數據)和指定與該消息相關的數據位置的虛擬地址,將該消息復制到消息緩沖器,并翻譯該虛擬地址。然后,OS安排存儲器復制操作,以將來自消息緩沖器存儲器中的數據復制到目標設備。可使用翻譯和保護表(TPT)將以描述符或工作隊列形式接收的虛擬地址翻譯為物理地址,并在數據轉移(移動)操作期間,在主網絡適配器能夠訪問它們(例如用于到/從遠端設備轉移)之前定義存儲器區域。這就需要更為有效地使用和訪問翻譯保護表(TPT)的技術,以在數據轉移操作期間提供另外的存儲器訪問保護的同時,執行虛擬到物理的地址翻譯。
附圖簡述通過結合附圖,并參照以下詳細描述,使得對本發明實施例的更加全面的理解,以及本發明的很多優點變得顯而易見,并被更好地理解,在附圖中,使用相同編號標注相同或類似組件,其中
圖1示出了根據本發明一個實施例的數據網絡;圖2示出了根據本發明一個實施例的數據網絡主機的方框圖;
圖3示出了根據本發明另一實施例的數據網絡主機的方框圖;圖4示出了根據本發明一個實施例的數據網絡主機的軟件驅動器堆棧的一個例子;圖5示出了翻譯和保護表的一個例子;圖6示出了翻譯和保護表的一個例子;圖7示出了根據本發明一個實施例的翻譯和保護表、以及翻譯入口、和區域入口;以及圖8示出了根據本發明一個實施例的翻譯和保護表、翻譯入口、區域入口、以及窗口區域入口。
具體實施例方式
本發明適用于所有類型的數據網絡和設計為將以下各項鏈接到一起相互通訊的群集器(cluster)計算機、服務器、外設、存儲設備、以及用于通信通信設備。該數據網絡的例子包括局域網(LAN)、廣域網(WAN)、校園網(CAN)、城域網(MAN)/全球域網(GAN),存儲區域網和系統區域網(SAN),包括使用下一代I/O(NGIO)的新開發的數據網絡、未來I/O(FIO)、Infiniband、服務器網、以及那些隨著計算機技術發展將來會變得可用的網絡。LAN系統包括以太網、FDDI(光纖分布數據接口)標志環LAN、異步傳輸模式(ATM)LAN、光纖信道、以及無線LAN。盡管本發明不局限于此,但是為簡明起見,討論將主要集中在示例性的簡單數據網絡使用,這些數據網絡具有通過互連基礎結構(fabric)鏈接到一起的幾個示例性的主機和包括I/O控制器的I/O單元。
現在注意附圖,特別是圖1,其中示出了具有用于數據通信的幾個互連端點(節點)的示例性數據網絡。如圖1所示,例如,數據網絡100包括互連基礎結構102(以下稱為“交換基礎結構”),其由一個或多個交換機A、C和C、相應的物理鏈路構成,和對應于一個或多個I/O單元1和2的幾個端點(節點),以及諸如主機110和主機112的計算機和服務器。I/O單元1包括與其連接的一個或多個控制器,其包括I/O控制器1(IOC1)和I/O控制器2(IOC2)。類似地,I/O單元2包括與其連結的I/O控制器3(IOC3)。可操作I/O控制器1、2和3(IOC1、IOC2和IOC3)中的每一個控制器以控制一個或多個I/O設備。例如,可將I/O單元1的I/O控制器1(IOC1)連結到I/O設備122,將I/O控制器2(IOC2)連結到I/O設備124。類似地,可將I/O單元2的I/O控制器3(IOC3)連結到I/O設備132和134。I/O設備可是以下幾種I/O設備中的任何一種存儲設備(例如硬盤驅動、磁盤驅動)或其他I/O設備。
可將主機和包括附加I/O控制器和I/O設備的I/O單元組織成稱為群集器的組,典型地,每個群集器包括一個或多個主機和一個或多個I/O單元(每個I/O單元包括一個或多個I/O控制器)。可通過交換基礎結構102主機與I/O單元互連,其中交換基礎結構是交換機A、B和C、以及連接交換機A、B和C之間相應的物理鏈路的集合。
另外,每個I/O單元包括一個或多個I/O控制器基礎結構(IOC-基礎結構)適配器,作為交換基礎結構102與I/O控制器(例如IOC1、IOC2和IOC3)之間的接口。例如,IOC-基礎結構適配器120可使I/O單元1的I/O控制器1和2(IOC1和IOC2)接口到交換基礎結構1 02,而IOC-基礎結構適配器130可將I/O單元2的I/O控制器3(IOC3)接口到交換基礎結構102。
圖1所示的主機、I/O單元、I/O控制器、I/O設備、交換機和鏈路的特定數量和排列僅作為簡單數據網絡的示例。在所有類型的數據網絡中任何數量的主機、I/O單元、I/O控制器、I/O設備、交換機和鏈路實現和排列上的大范圍變化也是可能的。
圖2示出了主機(例如主機110或主機112)的示例性實施例。參照圖2,主機110包括連結到主機總線203的處理器202。一個I/O和存儲器控制器204(或芯片集)連結到主機總線203。一個主存儲器206連結到I/O和存儲器控制器204。一個I/O網橋208作為I/O及存儲器控制器204與I/O總線205之間的橋或接口。將包括控制器210和212的幾個I/O控制器連結到I/O總線205。I/O控制器210和212(包括與其連結的任何I/O裝置)提供基于總線的I/O資源。
可將一個或多個主機-基礎結構適配器220連結到I/O總線205。另一選擇,可將主機-基礎結構適配器220直接連結到I/O和存儲器控制器(或芯片集)204,以避免I/O總線205的任何限制(見圖3)。在上述兩種情況中的任何一種情況下,可將主機-基礎結構適配器220考慮為用于將主機110接口到交換基礎結構102的網絡接口卡類型(例如通常包括硬件和固件的NIC)。可利用主機-基礎結構適配器220來向主機110提供基礎結構通信能力。例如,主機-基礎結構適配器220可轉換主機格式和兼容于交換基礎結構102兼容格式之間的數據。對于從主機110發送的數據,主機適配器220可將數據格式化為包含一個或多個信元序列的一個或多個分組,所述信元包括信元頭信息和數據信息。
根據實施例或實施的一個例子,本發明數據網絡的主機或I/O單元與Infiniband結構兼容。Infiniband信息/技術規范目前正在開發中,將由Infiniband貿易協會(Infiniband Trade Association)(成立于1999年8月27日)發布,該協會的因特網網址為http//www.infinibandta.org。數據網絡I/O單元的主機還可與“下一代輸入/輸出(NGIO)技術規范”兼容,其是由NGIO論壇于1999年3月26日提出的。主機-基礎結構適配器220可以為主信道適配器(HostChannel Adapter)(HCA),IOC基礎結構適配器可以為目標信道適配器(TCA)。主信道適配器(HCA)用于經串行鏈路提供主機110或112與交換基礎結構102之間的接口。類似地,目標信道適配器(TCA)用于經高速串行鏈路提供交換基礎結構102與I/O單元1或2的I/O控制器、或另一個網絡之間的接口,該網絡包括,但不僅限于局域網(LAN)、廣域網(WAN)、以太網、ATM和光纖信道網絡。主信道適配器(HCA)與目標信道適配器(TCA)都可在Infiniband結構中實現,或符合由Intel Corp于1999年5月13日提出的“下一代I/O結構主信道適配器軟件技術規范,版本1.0”(Next GenerationI/O ArchitectureHost Channel Adapter Specification,Revision 1.0)。而且,每個主機可包括一個或多個主機-基礎結構適配器(例如HCA)。但是,Infiniband和NGIO僅作為本發明實施例或實施的舉例,本發明不受此限制。相反,本發明可適用于數據網絡、主機和I/O的各種變化。
如參照圖2-3所進行的描述,可將I/O單元和相應的I/O控制器直接連結到交換基礎結構102,而不是作為主機110的一部分。例如,可將包括I/O控制器1和2(IOC1和IOC2)的I/O單元1和包括I/O控制器3(IOC3)的I/O單元2直接(或獨立地)連結到交換基礎結構102。換言之,如圖1-3所示,與將其作為主機110一部分的情況相反,將I/O單元(及與其相連的I/O控制器和I/O設備)作為單獨的或獨立的I/O資源附加到交換基礎結構102。結果,能夠靈活地將包括連結到交換基礎結構102的I/O控制器(和I/O設備)的I/O單元分配到一個或多個主機(而不是根據物理地連結到主機的本地I/O總線,來具有預定或固定的主機分配)。因為這些組件直接附加到交換基礎結構102,而不是作為主機的一部分連接,因此,附加到交換基礎結構102的I/O單元、I/O控制器以及I/O設備可作為基礎結構附加的I/O資源(即基礎結構附加的I/O單元、基礎結構附加的I/O控制器和基礎結構附加的I/O設備)。
而且,主機110可檢測,然后,直接尋址I/O單元和I/O控制器(和附加I/O設備),并與其交換數據,其中該I/O單元和I/O控制器通過主機-基礎結構適配器220直接附加到交換基礎結構102(即基礎結構附加的I/O控制器)。可提供一種用于主機-基礎結構適配器220的軟件驅動器堆棧,以允許主機110與遠程I/O控制器和I/O設備通過交換基礎結構102來交換數據,同時優選地,其與許多當前可用的諸如Windows 2000的操作系統兼容。
圖4示出了根據本發明實施例舉例的示例性主機110的軟件驅動器堆棧,其具有基礎結構附加I/O資源。如圖4所示,主機操作系統(OS)400包括核心410、I/O管理器420、以及用于接口到各種I/O控制器的多個I/O控制器驅動器,其包括I/O控制器驅動器430和432。根據一個示例性實施例,主機操作系統(OS)400是Windows 2000,I/O管理器是即插即用管理器。
而且,基礎結構適配器驅動器軟件模塊能夠訪問交換基礎結構102、關于基礎結構配置的信息、基礎結構拓撲結構、以及連接信息。該驅動器軟件模塊包括基礎結構總線驅動器(上驅動器)440、以及基礎結構適配器設備驅動器(下驅動器)442,其用來建立與目標附加代理(例如,I/O控制器)之間的通信,并執行多數驅動器共同的功能,例如,包括信道提取、發送/接收IO事務消息、遠程直接存儲器存取(RDMA)事務(例如讀和寫操作)、隊列管理、存儲器注冊、描述符管理、消息流控制、以及瞬時錯誤處理和恢復。可將該軟件模塊提供在諸如軟盤或光盤(CD)ROM的有形媒介上,或通過互聯網下載,其可用于插入到或下載到主機操作系統(OS)或其他可行方法。
主機110使用虛擬接口(VI)結構,與直接附加到交換基礎結構102(即基礎結構附加的I/O控制器)的I/O單元和I/O控制器(和附加的I/O裝置)通信。根據Compaq Corp.、Intel Corp.和Microsoft Corp.于1997年12月16日提出的“虛擬接口(VI)結構技術規范,版本1.0”(Virtual Interface(VI)Architecture Specification,Version 1.0),VI結構包括4個基本組件成對工作隊列(發送隊列和接收隊列)的虛擬接口(VI)、可能是應用程序的VI使用者、可以是負責實例化的VI硬件或軟件組件的VI提供者、以及完成隊列(CQ)。VI是允許VI使用者直接訪問VI提供者的機構。每個VI代表一個通信端點,端點對被邏輯地連接,以支持雙向、點對點的數據傳送。如圖4所示,在VI結構中,主機-基礎結構適配器220和VI核心代理構成了VI提供者,以直接地執行端點虛擬化,并包括多路復用、去多路復用、通常由主機操作系統(OS)核心410和裝置驅動器442執行的數據傳送調度的任務。
可使用如圖5所示的翻譯和保護表(TPT)230將虛擬地址翻譯為物理地址,其中該虛擬地址是以成對隊列(例如描述數據移動請求的數據結構)分組描述符格式接收的,并定義可被主機-基礎結構適配器220訪問(即對主機存儲器的有效訪問)的主機存儲器206的存儲器區域。而且,翻譯和保護表(TPT)230還可用于驗證主機-基礎結構適配器220的訪問許可權,并在訪問主機110中任何其他存儲器之前執行地址翻譯。翻譯和保護表TPT)230包括系統存儲器地址空間中的多個TPT入口,例如,TPT(0)、TPT(1)、…TPT(t-1)、TPT(t-2)。每個TPT入口(以下也稱為翻譯入口)代表主機存儲器206一個單獨一頁,例如物理連續的主機存儲器206的4KB。如以下將要描述的,TPT表230還包括多于一層的區域入口。因此,TPT表230包括翻譯入口和區域入口。每個區域入口包括多層翻譯入口。可在主機存儲器206內存儲TPT表230,或將其存儲在主機110、或主機-基礎結構適配器220、或與主機基礎結構相關的存儲器221的不同存儲器區域。
圖6示出了用于將虛擬地址翻譯為物理地址的另一個翻譯和保護表(TPT)240。如上所討論的,TPT表240驗證主機-基礎結構適配器220的訪問許可權,并在訪問主機110中任何其他存儲器之前執行地址翻譯。每個TPT 240包括與虛擬緩沖器相關的多個入口。例如,如圖6所示,3個虛擬緩沖器與TPT 240相關,即虛擬緩沖器A(Vba)、虛擬緩沖器B(VBb)和虛擬緩沖器C(VBc)。每個翻譯入口對應于虛擬緩沖器的一頁,例如4KB或4MB數據。其他數據量也在本發明的范圍內。在本例中,每個入口對應4KB數據,虛擬緩沖器A包括8KB數據,虛擬緩沖器B包括12KB數據,虛擬緩沖器C包括12KB數據。更為具體地,TPT 240包括用于分別尋址虛擬緩沖器A第1頁和第2頁的入口244和246。TPT 240還包括用于分別尋址緩沖器B第1頁、第2頁和第3頁的入口248、250和252。TPT 240進一步包括用于分別尋址虛擬緩沖器C第1頁、第2頁和第3頁的入口256、258和260。TPT 240還包括分隔不同虛擬緩沖器頁的未使用部分242。即,未使用部分242分隔虛擬緩沖器A與虛擬緩沖器B,類似地,未使用部分242分隔虛擬緩沖器B與虛擬緩沖器C。也可將未使用部分242提供在TPT 240的開始與結束部分。
圖7顯示了根據本發明示例性實施例的另一翻譯和保護表(TPT)260。圖7還顯示了翻譯入口300、區域入口400、和鍵入口500,將在以下對其進行描述。該TPT表206包括在單一TPT表中嵌入的兩種類型的表。該兩種類型的表對應于兩種類型的入口(即翻譯入口和區域入口)。可通過入口類型位來區分該兩種類型的入口,將在以下進行描述。區域入口也可被稱為(或被分類為)本地區域入口或可綁定(bindable)區域入口。本地或可綁定區域入口與一個或多個翻譯入口的集合描述已注冊的存儲器區域。在TPT表260中,至少一個翻譯入口跟隨在一個區域入口之后。例如,入口261是與區域入口400類似的區域入口。因為每個區域入口都被至少一個翻譯入口跟隨,因此,至少262位于由區域入口261定義的區域(或表)內。入口263、264和265也可以位于由區域入口261定義的區域(或表)內。與每個翻譯入口的單一入口相比較,每個區域入口對應于TPT表260內的一個特定區域。TPT表260、鍵入口500、翻譯入口300和區域入口400代表本發明一個示例性實施例,其他實施例、配置、安排也在本發明的范圍內。
翻譯入口300包括以下字段1位入口類型字段302、1位高速緩存字段304、16位保護域字段306、3位訪問權字段308、1位保留字段310、1位保留字段312、以及41位物理地址字段320。翻譯入口300的其他配置和各字段的位數也在本發明的范圍內。翻譯入口300也可以具有比圖7所示字段更多的字段或更少的字段。
區域入口400包括以下字段1位入口類型字段402、2位區域類型字段404、1位頁大小字段406、1位保留字段408、1位保留字段410、6位鍵字段412、20位大小字段414、以及32位翻譯句柄字段420。區域入口400的其他配置和各字段的位數也在本發明的范圍內。區域入口400也可以具有比圖7所示字段更多的字段或更少的字段。
鍵入口500包括6位鍵字段502和26位TPT索引字段504。鍵入口500可被稱為(或被分類為)用于遠程訪問的R鍵。另一種選擇,鍵入口500也可被稱為(或被分類為)用于本地訪問的L鍵。在操作中,鍵字段502的6位可與區域入口400(或隨后描述的窗口入口610的鍵字段622)的鍵字段412的6位比較,以驗證以下描述的訪問權。TPT索引字段504用于引用區域入口的其中之一或翻譯入口的其中之一(根據其索引號碼)。鍵入口500的其他配置和各字段的位數也在本發明的范圍內。鍵入口500也可以具有比圖7所示字段更多的字段或更少的字段。
以下將描述翻譯入口300、區域入口400和鍵入口500的不同字段。在翻譯入口300中,入口類型字段302的位(類似地,在區域入口400中入口類型字段402的位、以及窗口區域入口600的入口類型字段612的位)可以區別于(a)入口是否為翻譯入口(如翻譯入口300);或(b)入口是否為區域入口(如區域入口400或窗口區域入口600)。例如,如果該位為0,則入口為翻譯入口。另一方面,如果該位為1,則入口為區域入口。該位幫助提供了具有翻譯入口和區域入口的2層表。高速緩存字段304的位用于確定高速緩存的屬性。保護域字段306的位用于確定訪問許可。訪問權字段308的位用于確定允許的操作。最后,物理頁地址字段320的位用于定義與由翻譯入口300代表的物理頁相關的向上物理地址位。
在區域入口400中,入口類型字段402的位可區別于(a)入口是否為翻譯入口(如翻譯入口300);或(b)入口是否為區域入口(如區域入口400或窗口區域入口600)。區域類型字段404的2位用于區分不同類型的區域。例如,區域類型字段404的2位可區分為本地區域(位00)、可綁定區域(位01)、窗口區域(位10)、以及窗口擴展區域(位11)。用于本地區域的“本地區域”和“可綁定區域”術語描述存儲器區域和與該存儲器區域相關的遠程訪問權。例如,本地區域是系統沒有打開到特定區域的存儲器窗口的區域,可綁定區域是系統打開了到特定區域的存儲器區域的區域。換言之,如果一個區域是可綁定的,則打開了到該區域的存儲器窗口。頁大小字段406的位用于區分翻譯入口的不同大小(即頁大小),例如4KB頁大小或4MB頁大小。可將其用于確定跟隨的翻譯入口的數量。鍵字段412的位用于驗證索引各自入口的鍵入口500(L鍵或R鍵)。大小字段414的位可確定翻譯入口300的區域邊界。最后,翻譯句柄字段420的位可與虛擬地址一起用于確定哪個翻譯入口帶有頁信息。
圖8顯示了根據本發明示例性實施例的另一個翻譯和保護表(TPT)270。圖8還顯示了翻譯入口300、區域入口400和窗口區域入口600。TPT表270和窗口區域入口600代表本發明的一個示例性實施例,其他實施例、配置和安排同樣在本發明的范圍內。
以下將描述窗口區域入口600。全窗口區域入口包括類型窗口區域,跟隨其后的是兩個類型的窗口擴展區域(即每個存儲器窗口提供3個TPT槽)。在TPT表270中,該兩個窗口擴展順序地跟隨(即在TPT索引中)在窗口入口之后。例如,窗口區域入口600包括窗口入口610,跟隨其后的是窗口擴展入口入口630和窗口擴展入口640。窗口入口定義許可、訪問權、以及窗口下面本地區域的位置。存儲器窗口可以是能夠從遠程實體訪問的地址范圍。
窗口入口610包括以下字段1位入口類型字段612、2位區域類型字段614、3位訪問權字段616、1位邊界字段618、1位頁大小字段620、6位鍵字段622、16位保護域字段624和32位鍵字段626。按照與上述描述區域入口400相同的方式,入口類型字段612的位可區分翻譯入口與區域入口,區域類型字段614的2位能夠區分不同類型的區域入口,例如本地、可綁定、窗口或窗口擴展。訪問權字段616的位用于區分允許的遠程操作類型,例如遠程讀訪問、遠程寫訪問、遠程原子訪問(讀修正寫)。邊界字段618的位用于區分窗口是有界的還是無界的。例如,0位對應于無界窗口,1位對應于有界窗口。頁大小字段620的位用于區分翻譯入口的不同大小(即頁大小),例如4KB頁大小或4MB頁大小。鍵字段622的位用于驗證索引該入口的鍵入口500。即,鍵字段622的6位與鍵字段502的6位比較,以檢驗訪問權。保護域字段624的位用于驗證訪問許可,而鍵字段626的位用于將L鍵保持為由鍵入口500所描述的鍵,并用于指向窗口基于的本地區域(即,將窗口與下面區域相關)。窗口入口610的其他配置和各字段的位數也在本發明的范圍內。窗口入口610也可以具有比圖8所示字段更多的字段或更少的字段。
如上所述,窗口擴展入口630和窗口擴展入口640是能夠在區域類型字段614中被識別的區域類型。窗口擴展入口630和640幫助定義映射區域的字節層起始地址和該區域的長度(以字節為單位)。窗口擴展入口630包括以下字段1位入口類型字段632、2位區域類型字段634、24位長度字段636和32位基地址字段638。類似地,窗口擴展區域640包括以下字段1位入口類型字段642、2位區域類型字段644、24位長度字段646和32位基地址字段648。窗口入口600的入口類型字段632和642,以及區域類型字段634和644與以上討論的入口類型字段304和402,以及區域類型字段404類似。窗口擴展入口630和640的其他配置和各字段的位數也在本發明的范圍內。窗口擴展入口630和640也可以具有比圖8所示字段更多的字段或更少的字段。
可通過逐次地組合基地址字段638和648的位,來獲得窗口區域的基地址。可通過逐次地組合長度字段636和646的位,來獲得窗口長度。更為具體地,為獲得窗口區域的長度(48位),可從長度字段636提供(48位長度的)低24位,從長度字段646提供(48位長度的)高24位。而且,為獲得窗口的基地址(64位),可從基地址字段638提供(64位的)低32位,從基地址648提供(64位的)高32位。虛擬地址和長度(以字節為單位)可定義存儲器區域的虛擬邊界。
本發明實施例提供的存儲器窗口具有以下特征允許對現有注冊存儲器區域的所選部分的遠程訪問權。這一點可稱為綁定一個窗口。以不同方式表達為,區域入口400對應于TPT表內的特定區域。例如,TPT表260包括不同入口261、262、263、264、265和266。區域入口400對應于入口261。262-265入口中的每個入口對應于作為該區域一部分的特定翻譯入口300。入口類型字段402的位可區分不同類型的入口(即翻譯入口或區域入口)。而且,可通過使用窗口區域入口將遠程訪問權給予遠程實體,以寫入(或修正)區域入口內的特定范圍,例如區域入口的100字節(即形成存儲器窗口)。窗口擴展入口中的基地址和長度能夠識別該區域入口的100字節。
如以上所討論的,鍵入口500可以是分為鍵字段502和TPT索引字段504的R鍵或L鍵。鍵字段502提供唯一的鍵值,以區分不同階段。鍵字段502定義區域的當前階段,并在每次區域入口400的內容被修正時進行改變。索引字段504指向TPT表260中的特定區域入口。區域入口定義存儲器映射區域的邊界和屬性。
以下將描述執行遠程翻譯查詢的操作。其他實施例也在本發明的范圍內。每個遠程操作請求提供一個虛擬地址(VA)、一個R鍵(即鍵入口500)和長度。R鍵通過使用索引字段,用于通過利用索引字段504定位區域入口400。根據區域入口400中鍵字段412的位檢查鍵入口500中鍵字段502的位。假設該檢驗是成功的,則區域類型字段404的位確定該區域是否為本地區域、可綁定區域、窗口區域或窗口擴展區域。取決于區域的類型,以下將描述可能出現的不同操作。
如果該區域是窗口區域,則根據窗口址邊界檢查虛擬地址(VA)和長度。也可使用窗口入口610中遠程訪問權字段616的位,來檢查遠程訪問權。鍵字段626的位用于定位備份該窗口的存儲器區域。可通過以下方式做到這一點檢查該區域的類型是可綁定的、檢查鍵、檢查虛擬地址和長度的區域邊界,并使用翻譯句柄和虛擬地址來定位翻譯入口。定位了翻譯入口300,檢查入口類型字段302的位,以確定該入口是翻譯入口,檢查保護域字段306的位,并從物理頁地址字段320確定物理頁地址。
另一方面,如果區域類型被確定為可綁定的或本地的,則執行以下操作。檢查TPT邊界的翻譯句柄,虛擬地址(VA)和長度。翻譯句柄、頁大小和虛擬地址用于定位翻譯入口。定位了翻譯入口300,檢查入口類型字段302的位,以確定該入口是翻譯入口,檢查保護域字段306的位,從訪問權字段檢查遠程訪問權,從物理頁地址字段320確定物理頁地址。
以下將描述執行本地翻譯的操作。其他操作也在本發明的范圍內。每個本地操作指定若干(零或以上)數據段,每個段提供一個虛擬地址(VA)、一個L鍵(即鍵入口500)和一個長度。L鍵可用于定位區域入口400。然后,根據區域類型字段404的位來檢驗區域類型為可綁定的或本地的。根據區域入口400中鍵字段412的位檢查鍵入口500內的鍵字段502的位。然后檢查區域邊界的虛擬地址和長度。翻譯句柄字段420的位、頁大小字段415和虛擬地址用于定位翻譯入口。定位了翻譯入口300,就檢查入口類型字段302的位,以確定該入口為翻譯入口,檢查保護域字段306的位,從訪問權字段308檢查本地訪問權,并從物理頁地址字段320確定物理頁地址。
可對窗口區域執行地址邊界檢查。如上所討論的,可從基地址字段638和648、從緊隨窗口入口610后的兩個翻譯入口的(即窗口擴展入口)的長度字段636和646,來確定窗口區域的基地址和窗口長度。窗口擴展入口630和640中的每個入口可具有ARegion@類型(在入口類型字段612中)的入口類型,以及A Window Extension@(在區域類型字段614中)的區域類型。
接收到的虛擬地址大于或等于基地址(即,基地址638和648的組合),且虛擬地址小于基地址加窗口長度(即,長度字段636和646的組合)。而且,接收到的虛擬地址加給定的窗口長度小于基地址加窗口長度。窗口長度大于零。
以下將描述對本地區域進行的地址邊界檢查。地址可到翻譯入口層。可從區域入口400提取特定區域的若干有效的翻譯地址入口。當與句柄組合(在句柄字段420中)時的接收的虛擬地址翻譯為TPT索引號碼。TPT索引可具有從區域入口的索引加1到區域入口的索引加1加大小(從大小字段414)的范圍。對于除零以外的長度,假設的虛擬地址加長度(即,從長度字段636和646的組合)減1,當與翻譯句柄結合,翻譯為TPT索引號碼。如上所述,TPT索引具有的范圍為從區域入口的索引加1到區域入口的索引加1加大小(從頁大小字段414)。
以上示例和描述了本發明的示例性實施例,應被本領域普通技術人員所理解,而且隨著技術的發展,可進行各種變化與修改,在不背離本發明范圍的情況下,等效物可替代本發明中的組件。本發明適用于所有類型的冗余型網絡,包括但不僅限于Infiniband、下一代輸入/輸出(NGIO)、ATM、SAN(系統廣域網或存儲廣域網)、服務器網、未來輸入/輸出(FIO)、光纖信道、以及以太網。而且,可由這樣一種計算機處理器來執行上述過程,該處理器執行組織為程序或用戶指定的狀態機器的指令。適用有形地體現計算機程序指定的存儲裝置包括所有非易失性存儲器的形式,包括但不僅限于諸如EPROM、EEPROM的半導體存儲器裝置,以及高速存儲裝置;磁盤(固定的、軟盤和可移動的);諸如磁帶的其他磁性媒體;以及諸如CD-ROM盤的光媒介。本發明不受各種公開實施例的限制。相反,在不背離本發明的精神與范圍的情況下,對于本領域普通技術人員來說,可有各種其他修改與變化。
權利要求
1.一種主機,其包括處理器;連結到所述處理器的主機存儲器;以及主機-基礎結構適配器,其連結到所述處理器,并提供與交換基礎結構的接口,該交換基礎結構包括一個或多個基礎結構附加的I/O控制器,主機-基礎結構適配器包括用于從所述主機存儲器訪問翻譯和保護表的邏輯,以進行數據事務,所述翻譯和保護表包括多個翻譯入口和至少一個區域入口,所述至少一個區域入口包括多層翻譯入口。
2.根據權利要求1所述的主機,其中所述多個翻譯入口中的每個入口包括入口類型字段,以區分所述翻譯入口的其中之一與所述至少一個區域入口,所述至少一個區域入口包括入口類型字段,以區分所述翻譯入口的其中之一和所述至少一個區域入口。
3.根據權利要求1所述的主機,其中所述至少一個區域入口對應于包括所述翻譯和保護表內所述多層翻譯入口的一個特定區域。
4.根據權利要求1所述的主機,其中所述至少一個區域入口包括鍵字段,以驗證索引所述至少一個區域入口的鍵入口。
5.根據權利要求1所述的主機,其中所述至少一個區域入口包括翻譯句柄字段,以確定包含所需頁信息的所述翻譯入口。
6.根據權利要求1所述的主機,其中所述至少一個區域入口包括區域類型字段,以區分多個區域類型。
7.根據權利要求6所述的主機,其中所述多個區域類型包括窗口區域類型和窗口擴展入口類型,每個窗口區域類型與第一窗口擴展入口類型和第二窗口擴展入口類型相關。
8.根據權利要求7所述的主機,其中在所述第一窗口擴展入口類型和所述第二擴展入口類型中的數據與映射區域的起始地址和所述映射區域長度相關。
9.根據權利要求1所述的主機,其中所述主機-基礎結構適配器執行虛擬到物理地址翻譯,并使用所述翻譯和保護表中的入口,驗證對所述主機存儲器的訪問。
10.一種網絡,其包括交換基礎結構;連結到所述交換基礎結構的I/O控制器;以及主機,其包括操作系統、主機存儲器、主機-基礎結構適配器,其從所述主機存儲器訪問翻譯和保護表,以用于數據事務,所述翻譯和保護表包括多個翻譯入口和至少一個區域入口,所述至少一個區域入口包括多層翻譯入口。
11.根據權利要求10所述的網絡,其中所述翻譯入口中的每個入口包括入口類型字段,以區分所述翻譯入口的其中之一與所述至少一個區域入口,所述至少一個區域入口包括入口類型字段,以區分所述翻譯入口的其中之一和所述至少一個區域入口。
12.根據權利要求10所述的網絡,其中所述至少一個區域入口對應于包括所述翻譯和保護表內所述多層翻譯入口的一個特定區域。
13.根據權利要求10所述的網絡,其中所述至少一個區域入口包括鍵字段,以驗證索引所述至少一個區域入口的鍵入口。
14.根據權利要求10所述的網絡,其中所述至少一個區域入口包括區域類型字段,以區分多個區域類型。
15.根據權利要求14所述的網絡,其中所述多個區域類型包括窗口區域類型和窗口擴展入口類型,每個窗口區域類型與第一窗口擴展入口類型和第二窗口擴展入口類型相關。
16.根據權利要求15所述的網絡,其中在所述第一窗口擴展入口類型和所述第二擴展入口類型中的數據與映射區域的起始地址和所述映射區域長度相關。
17.一種裝置,其存儲翻譯和保護表,以用于虛擬到物理的地址翻譯,其驗證對單個的翻譯和保護表入口的訪問請求,所述翻譯和保護表包括多個翻譯入口和至少一個區域入口,所述至少一個區域入口包括多層翻譯入口。
18.根據權利要求17所述的裝置,其中所述多個翻譯入口中的每個入口包括入口類型字段,以區分所述翻譯入口的其中之一與所述至少一個區域入口,所述至少一個區域入口包括入口類型字段,以區分所述多個翻譯入口的其中之一和所述至少一個區域入口。
19.根據權利要求17所述的裝置,其中所述至少一個區域入口包括鍵字段,以驗證索引所述至少一個區域入口的鍵入口。
20.根據權利要求17所述的裝置,其中所述至少一個區域入口包括區域類型字段,以區分多個區域類型。
21.根據權利要求20所述的裝置,其中所述多個區域類型包括窗口區域類型和窗口擴展入口類型,每個窗口區域類型與第一窗口擴展入口類型和第二窗口擴展入口類型相關。
22.根據權利要求21所述的裝置,其中在所述第一窗口擴展入口類型和所述第二擴展入口類型中的數據與映射區域的起始地址和所述映射區域長度相關。
23.一種主機-基礎結構適配器,其連結到所述處理器,并提供與交換基礎結構的接口,主機-基礎結構適配器包括用于從存儲器訪問翻譯和保護表的邏輯,以進行數據事務,所述翻譯和保護表包括多個翻譯入口和至少一個區域入口,所述至少一個區域入口包括多層翻譯入口。
24.根據權利要求23所述的主機-基礎結構適配器,其中所述多個翻譯入口中的每個入口包括入口類型字段,以區分所述翻譯入口的其中之一與所述至少一個區域入口,所述至少一個區域入口包括入口類型字段,以區分所述多個翻譯入口的其中之一和所述至少一個區域入口。
25.根據權利要求23所述的主機-基礎結構適配器,其中所述至少一個區域入口包括鍵字段,以驗證索引所述至少一個區域入口的鍵入口。
26.根據權利要求23所述的主機-基礎結構適配器,其中所述至少一個區域入口包括區域類型字段,以區分多個區域類型。
27.一種驗證對主機的訪問請求的方法,所述主機被連結到交換基礎結構,并包括處理器、連結到處理器的主機存儲器,以及主機-基礎結構適配器,該適配器連結到所述處理器,并提供與所述交換基礎結構的接口,所述方法包括以下步驟從所述主機存儲器訪問翻譯和保護表,以用于數據事務,所述翻譯和保護表包括多個翻譯入口和至少一個區域入口,所述至少一個區域入口包括多層翻譯入口;接收索引所述翻譯入口其中之一和所述區域入口的鍵入口;以及比較在所述翻譯入口其中之一的與所述區域入口的鍵字段,以驗證訪問。
28.根據權利要求27所述的方法,其中所述多個翻譯入口中的每個入口包括入口類型字段,以區分所述翻譯入口的其中之一與所述至少一個區域入口,所述至少一個區域入口包括入口類型字段,以區分所述多個翻譯入口的其中之一和所述至少一個區域入口。
29.根據權利要求27所述的方法,其中所述至少一個區域入口包括區域類型字段,以區分多個區域類型。
30.根據權利要求29所述的方法,其中所述多個類型區域包括窗口區域類型和窗口擴展入口類型,每個窗口區域類型與第一窗口擴展入口類型和第二窗口擴展入口類型相關。
全文摘要
一種主機,其包括處理器、連結到所述處理器的主機存儲器;以及主機-基礎結構適配器,其連結到所述處理器,并提供與交換基礎結構的接口,該交換基礎結構包括一個或多個附加于基礎結構的I/O控制器,主機-基礎結構適配器包括用于從所述主機存儲器訪問翻譯和保護表的邏輯,以進行數據事務,所述翻譯和保護表包括多個翻譯入口和至少一個區域入口。所述至少一個區域入口包括多層翻譯入口。
文檔編號G06F13/38GK1518701SQ01822609
公開日2004年8月4日 申請日期2001年10月29日 優先權日2000年12月19日
發明者弗朗克·L·貝里, 弗朗克 L 貝里 申請人:英特爾公司