用半虛擬化的管理程序提供全虛擬化的附屬部件的制作方法【專利說明】用半虛擬化的管理程序提供全虛擬化的附屬部件[0001]本發(fā)明要求美國專利申請(申請序列號:13/646,773)的優(yōu)先權(quán),該美國專利申請題目為"用了半虛擬化管理程序提供全虛擬化的附屬部件",于2012年8月提交至美國專利商標局,其內(nèi)容通過引用被全部納入本文?!?br>背景技術:
】[0002]-個或多個方面總的來說涉及了計算環(huán)境的內(nèi)存,特別涉及了便于內(nèi)存訪問。[0003]系統(tǒng)配置包括用于存儲應用以及數(shù)據(jù)的物理內(nèi)存。物理內(nèi)存數(shù)量固定,經(jīng)常不足以支撐用戶的需求。因此,為了提供額外的內(nèi)存,或者至少在表象上額外的內(nèi)存,使用了一種被稱為虛擬內(nèi)存的內(nèi)存管理技術。虛擬內(nèi)存采用了虛擬尋址(virtualaddressing)技術,提供了比主內(nèi)存的物理規(guī)??雌饋泶蟮枚嗟牡刂贩秶?。[0004]為了訪問包括虛擬內(nèi)存的系統(tǒng)配置中的主內(nèi)存,要求內(nèi)存訪問包括有效地址(effectiveaddress)。有效地址被轉(zhuǎn)換成用于訪問物理內(nèi)存的實地址(realaddress)。[0005]采用地址轉(zhuǎn)換技術實施轉(zhuǎn)換。有幾種地址轉(zhuǎn)換技術可供使用。例如,在由國際商業(yè)機器公司提供的PowerPC系統(tǒng)中,通過選擇與有效地址相關的有效段識別符(ESID)表條目,并且使用該條目通過哈希算法定位一組頁表條目,通過所找到的頁表條目,將有效地址被轉(zhuǎn)換為對應的實地址。在進一步的例子中,是在同樣由國際商業(yè)機器公司提供的z/Architechture中,通過分層結(jié)構(gòu)的轉(zhuǎn)換表(ahierarchyoftranslationtables)將有效地址轉(zhuǎn)換為對應的實地址。通過用有效地址的一部分對轉(zhuǎn)換表建立索引,以便能找到分層結(jié)構(gòu)中的下一個轉(zhuǎn)換表的地址,直到獲得實地址(或絕對地址)。兩種地址轉(zhuǎn)換技術對各自的操作系統(tǒng)各有優(yōu)點?!?br/>發(fā)明內(nèi)容】[0006]通過部署便于客戶(guest)內(nèi)存地址的轉(zhuǎn)換的計算機程序產(chǎn)品,克服了現(xiàn)有技術的缺點,還提供了額外的優(yōu)點。所述計算機程序產(chǎn)品包括處理電路可讀的計算機可讀存儲媒介并且由所述處理電路執(zhí)行存儲的指令所實施的方法,舉例來說,該方法包括:通過附屬部件獲取與該客戶內(nèi)存地址相關的地址轉(zhuǎn)換錯誤的指示,所述附屬部件與客戶操作系統(tǒng)相隔離并且不相同,并運行在系統(tǒng)配置的處理器之上,所述系統(tǒng)配置包括管理程序支持的客戶操作系統(tǒng),所述管理程序是半虛擬化管理程序,所述半虛擬化管理程序被配置使得與客戶內(nèi)存地址的主機(host)轉(zhuǎn)換相關的地址轉(zhuǎn)換錯誤的一部分由所述客戶操作系統(tǒng)管理;以及基于獲得的所述地址轉(zhuǎn)換錯誤的指示,由所述附屬部件向管理程序提供地址轉(zhuǎn)換信息,以使所述客戶內(nèi)存地址的主機轉(zhuǎn)換能夠成功完成。[0007]再次,還描述了與一個或多個方面相關的方法和系統(tǒng),并對其要求了權(quán)利。進一步的,還描述了與一個或多個方面相關的服務,在此可能對其要求權(quán)利。[0008]再次,通過所描述的技術實現(xiàn)了額外的特征以及優(yōu)勢。其他實施例以及方面在這里做了詳細描述,并被認為是所要求權(quán)利的一部分?!靖綀D說明】[0009]特別指出了一個或多個方面,舉例來說,還在說明書結(jié)尾部分的權(quán)利要求中明確的要求了權(quán)利。在以下結(jié)合了附圖的詳細描述中,前述內(nèi)容和一個或多個方面的事項、物體、特征、以及優(yōu)勢是明顯的,其中的附圖包括:[0010]圖IA描述了計算環(huán)境的一個示例;[0011]圖IB描述了計算環(huán)境的另一示例;[0012]圖2A示出了采用哈希頁表技術的映射到物理內(nèi)存的虛擬內(nèi)存的高級別視圖的示例;[0013]圖2B示出了生成虛擬地址的技術的示例;[0014]圖2C描述了哈希頁表轉(zhuǎn)換結(jié)構(gòu)的一個例子;[0015]圖3描述了段旁視緩沖(segmentlookasidebuffer)的例子,包括段旁視緩存條目的示例字段;[0016]圖4A描述了頁表的一個不例;[0017]圖4B描述了頁表條目的一個不例;[0018]圖5A描述了層級轉(zhuǎn)換機制的一個示例;[0019]圖5B描述了標引(indexing)高級別轉(zhuǎn)換表的一個示例;[0020]圖6A描述了z/Architecture的頁表條目的一個示例;[0021]圖6B描述了PowerISA架構(gòu)的頁表條目的一個不例;[0022]圖7A描述了選擇轉(zhuǎn)換機制的邏輯過程(logic)的一個示例;[0023]圖7B描述了由管理程序?qū)嵤┑挠糜谔幚淼刂忿D(zhuǎn)換產(chǎn)生的錯誤的邏輯過程的一個實施例;[0024]圖8A描述了初始化分區(qū)的邏輯過程的一個實施例;[0025]圖8B描述了分派分區(qū)(dispatchapartition)的邏輯過程的一個實施例;[0026]圖8C描述了轉(zhuǎn)換一個配置并分派的分區(qū)中地址的邏輯過程的實施例;[0027]圖9A描述了支持異構(gòu)客戶的管理程序的一個例子;[0028]圖9B描述了使用附屬部件便利管理地址轉(zhuǎn)換錯誤的管理程序的一個實施例;[0029]圖10A描述了用于管理地址轉(zhuǎn)換錯誤的半虛擬化邏輯過程的一個實施例;[0030]圖10B描述了使用附屬部件便利管理地址轉(zhuǎn)換錯誤管理的一個實施例;[0031]圖10C描述了管理地址錯誤的一個實施例的進一步細節(jié);[0032]圖11描述了基數(shù)轉(zhuǎn)換機制的一個實施例;[0033]圖12描述了基數(shù)上的基數(shù)的轉(zhuǎn)換機制的一個例子;[0034]圖13描述了哈希頁表上的基數(shù)的轉(zhuǎn)換機制的一個例子;[0035]圖14描述了使用一種類型轉(zhuǎn)換結(jié)構(gòu)指向另一類型轉(zhuǎn)換結(jié)構(gòu)以實施地址轉(zhuǎn)換的一個例子;[0036]圖15描述了偏移上的基數(shù)的轉(zhuǎn)換機制的一個實施例;[0037]圖16描述了哈希頁表轉(zhuǎn)換機制的一個例子;[0038]圖17描述了動態(tài)地址轉(zhuǎn)換(DAT)機制的一個例子;[0039]圖18描述了采用一個或多個方面的計算機程序產(chǎn)品的一個實施例?!揪唧w實施方式】[0040]在一個方面,提供一個系統(tǒng)配置,其有不同類型的可用的轉(zhuǎn)換結(jié)構(gòu),用于將內(nèi)存地址從一種格式(例如,有效地址,特別是與其相關的虛擬地址)轉(zhuǎn)換到另一種格式(例如,實地址)。在一個系統(tǒng)配置中,能夠同時支持多個地址轉(zhuǎn)換結(jié)構(gòu)格式(例如,多頁表格式,比如哈希頁表以及層級頁表)。[0041]進而,在一個方面,提供一個系統(tǒng)配置,其包括多個分區(qū)以及與其關聯(lián)的不同轉(zhuǎn)換機制。例如,一個分區(qū)具有與其關聯(lián)的用于將客戶虛擬地址轉(zhuǎn)換到主機物理地址的單級別轉(zhuǎn)換機制,另一分區(qū)具有用于將客戶虛擬地址轉(zhuǎn)換到主機物理地址的嵌套級別轉(zhuǎn)換機制。單個管理程序(hypervisor)支持不同的轉(zhuǎn)換機制以及分區(qū)。管理程序例如是半虛擬化(paravirtualized)的管理程序。因此,在一個方面,在單級別轉(zhuǎn)換機制中的與地址轉(zhuǎn)換關聯(lián)的錯誤至少在部分上由客戶操作系統(tǒng)管理。然而,對于那些使用嵌套級別轉(zhuǎn)換的分區(qū),還提供了全虛擬化。通過全虛擬化,客戶操作系統(tǒng)不介入由主機級轉(zhuǎn)換導致的地址轉(zhuǎn)換錯誤的管理。為了通過半虛擬化管理程序支持全虛擬化,提供了便于解決由主機級轉(zhuǎn)換導致的地址轉(zhuǎn)換錯誤的附屬部件。正如此處所使用的,附屬部件是一種幫手部件,一般以輔助模式連接、增加或耦合至一個實體,并不限于任何具體的附屬結(jié)構(gòu)。[0042]不同架構(gòu)的計算環(huán)境都可以采納和使用本文所提供的一個或多個方面。例如,由國際商業(yè)機器公司所提供的基于PowerPC架構(gòu)的環(huán)境可以包括一個或多個方面,其他架構(gòu)的計算環(huán)境一例如由國際商業(yè)機器公司提供的z/Architecture-也一樣。PowerPC架構(gòu)的環(huán)境還被稱為PowerISA,2007年7月23日的PowerISA?說明書的第2.06版的修訂版B中有描述,這里全文引用該文獻作為參考,z/Architecture的描述見于2010年8月公開的z/Architecture-操作準則(公開號SA22-7932當前第1頁1 2 3