專利名稱:使用聚合的小頁面的擴展的頁面大小的制作方法
技術領域:
本發(fā)明涉及計算機處理器,特別是涉及虛擬存儲器環(huán)境中的頁面轉換。
背景技術:
現(xiàn)代計算機系統(tǒng)利用虛擬存儲器來提高性能。例如,為了在利用更大容量的硬盤存儲的同時有效地利用存儲器,處理器經(jīng)常集成虛擬尋址機制(mechanism),其中虛擬地址是指比存儲器的物理尺寸大許多的地址空間。虛擬尋址機制通常是通過處理器硬件和操作系統(tǒng)軟件的組合來執(zhí)行的。在實踐中,大的虛擬地址空間通常是分成網(wǎng)頁。每當處理器讀或寫虛擬存儲器地址時,專門的處理器硬件就將地址轉換成位于物理存儲器上的頁面(有時也稱為幀)上的物理位置或存儲在磁盤上的頁面(或幀)的索引。如果索引是存儲在磁盤上的幀,操作系統(tǒng)就將該幀移動到物理存儲器中,如果有必要,還交換出最近未訪問的幀。使用分頁的地址轉換通常涉及稱為頁轉換表的系列的數(shù)據(jù)結構。要將虛擬地址轉換成物理地址,虛擬地址的低階位可被直接映射到物理地址,而虛擬地址的高階位可用于索引到頁面轉換表以找到物理地址的高階位。在層次頁面表執(zhí)行中,處理器可將虛擬地址的高階位分成一個或多個位域,每一個對應到不同層次的頁面轉換表的等級。將虛擬地址映射到物理地址的頁轉換表中的項一般可簡稱為頁面表項(PTE)。通過將PTE緩存在稱為轉換后備緩沖器(TLB)的CPU緩存中,虛擬地址轉換的速度可能會增加。TLB可以有固定數(shù)量的插槽來存儲PTE。由于訪問TLB項一般比使用頁面轉換表進行地址轉換的速度快,所以TLB的大小和涵蓋可能是系統(tǒng)整體性能的重要指標。TLB 的涵蓋取決于每一個TLB項所代表的頁面的大小。常見的電腦架構只提供了虛擬存儲器的頁面大小的粗略選擇。例如,著名的X86-64架構提供大小為4KB、2MB和IGB的頁面。較小的頁面大小減少了 TLB的有效容量,增加了 TLB訪問的未命中率。不幸的是,非常大的頁面大小往往會造成不需要大型數(shù)據(jù)集的應用程序的存儲器配置效率低下。鑒于上述考慮,可能需要通過改善TLB未命中率和/或增加TLB有效容量而同時保持有效的存儲器使用以提高系統(tǒng)性能的系統(tǒng)和方法。除了上述考慮外,盡管改善TLB未命中率和容量可能提供一些增強的功能,每當引入增強的功能時還使處理器能繼續(xù)運行現(xiàn)有的軟件可能是可取的。因此,繼續(xù)支持傳統(tǒng)的分頁模式的處理器增強可能是可取的。
發(fā)明概述公開了包括虛擬存儲器分頁機制的處理器的各種實施例。虛擬存儲器分頁機制使在處理器上運行的操作系統(tǒng)能使用第一大小和第二大小的頁面。第二大小大于第一大小。 虛擬存儲器分頁機制進一步使操作系統(tǒng)能形成包括第一大小的兩個或更多的連續(xù)頁面的一系列頁面的超級頁面。超級頁面的大小小于第二大小。該處理器還包括頁面表,所述頁面表包括用于在每一個超級頁中所包括的所述兩個或更多的連續(xù)頁面中的每一個的單獨項。虛擬存儲器分頁機制使操作系統(tǒng)使用單一的虛擬地址來訪問每一個超級頁面。所述處理器還包括轉換后備緩沖器(TLB)。虛擬存儲器分頁機制將TLB中的單項解釋為指包括與響應檢測到與TLB中的所述項有關的超級頁面使能指示器有效的超級頁面對應的一系列頁面的存儲器區(qū)。在一個實施例中,超級頁面的大小是64KB。在一個實施例中,虛擬存儲器分頁機制響應檢測到與TLB中的項有關的超級頁面使能指示器是有效的,將所述頁面表中的項解釋為指包括超級頁面的一部分的存儲器區(qū)。 在進一步的實施例中,超級頁面使能指示器是可軟件設置的。虛擬存儲器分頁機制響應于檢測到所述頁面表中的至少兩個項中的至少一個項缺失或包括與所述頁面表中的至少兩個項中的其他項的屬性不一致的屬性而發(fā)出頁面錯誤。在再進一步的實施例中,所述虛擬存儲器分頁機制同時且獨立地使超級頁面在處理器上操作的第一操作系統(tǒng)和第二操作系統(tǒng)中的一個或兩個上使用。在再進一步的實施例中,第一操作系統(tǒng)是虛擬環(huán)境中的客機操作系統(tǒng),配置為使用第一頁面表將客機地址空間中的虛擬地址轉換為客機地址空間的物理地址,第二操作系統(tǒng)是虛擬環(huán)境中的主機操作系統(tǒng),配置為使用第二頁面表將客機地址空間中的物理地址轉換為主機地址空間的物理地址。在再進一步的實施例中,虛擬存儲器分頁機制使操作系統(tǒng)能使用兩個或兩個以上的不同的超級頁面大小的超級頁。在此實施例中,每個超級頁面的大小等于兩個或多個連續(xù)的、 對齊的第一大小的頁面的大小,每個超級頁面的大小小于第二大小。考慮下面的說明和附圖,這些和其他的實施例將變得明顯。
圖1是可包含擴展的頁面大小的計算機系統(tǒng)的一個實施例的概略框圖。圖2示出了可以通過處理器在系統(tǒng)中使用的地址轉換系統(tǒng)的一個實施例。圖3示出了將頁面表的項或TLB中的項映射到存儲器的一個實施例。圖4示出了控制寄存器中包含的、表示支持擴展的頁面大小的位域的一個實施例。圖5示出了模型特定寄存器(MSR)中包含的位域的一個實施例。圖6示出了可由操作系統(tǒng)用來定義超級頁面的數(shù)據(jù)結構項的一個實施例。圖7示出了可由處理器執(zhí)行訪問超級頁面的分頁流程的一個實施例。圖8示出了可用于檢查從支持超級頁面的處理器中的分頁表中讀取的超級頁面項的有效性的流程的一個實施例。圖9示出了可用于配置處理器使用超級頁面的流程的一個實施例。雖然本發(fā)明可進行各種修改和以其他形式進行,但在附圖中以示例的方式示出了具體的實施例,在本文進行了詳細說明。然而,應理解,附圖及其詳細的說明不是為了將本發(fā)明限制于所公開的特定形式,與此相反,本發(fā)明包括在所附的權利要求書所定義的本發(fā)明的精神和范圍內(nèi)的所有修改、等同物及替代物。
詳細說明圖1是可包含擴展的頁面大小的計算機系統(tǒng)100的一個實施例的概略框圖。處理器110被示為與外圍設備120和物理存儲器130聯(lián)接。外圍設備120可包括存儲設備170、 網(wǎng)絡接口 174和可移動介質(zhì)177。所示的實施例是典型的通用計算機系統(tǒng)。然而,所示的組件,特別是處理器110,可能會在各種各樣的設備中發(fā)現(xiàn),諸如控制系統(tǒng)、家電、汽車、消費類電子產(chǎn)品之類或事實上采用計算和存儲或處理數(shù)據(jù)的任何設備中發(fā)現(xiàn)。處理器110是可通過提供地址轉換功能支持虛擬存儲器的各種處理器的任何一個的說明。處理器Iio可包括與I/O接口 160和2級(U)高速緩存器150聯(lián)接的一個或多個核140。核140可包括聯(lián)接到L2高速緩存器150的一級(Li)高速緩存器145。物理存儲器130通常包括RAM,但也可以是聯(lián)接到處理器110和提供對數(shù)據(jù)的相對快速的訪問以處理在處理器110上的執(zhí)行的任何類型的數(shù)據(jù)存儲。與此相反,存儲設備170 —般可存儲比物理存儲器130較大的量的數(shù)據(jù),有較慢的訪問時間。常見的存儲設備包括硬盤、軟盤、 光盤或任何其他合適的數(shù)據(jù)存儲設備。根據(jù)計算機系統(tǒng)100的預定用途,其他各種外圍設備120可通過I/O接口 160聯(lián)接到處理器110。例如,外圍設備120可包括鍵盤、顯示器、揚聲器、磁盤驅動器、輸入/輸出端口等。存儲器130、外圍設備120和處理器110之間的互連可包括地址總線和數(shù)據(jù)總線, 并可以包括共享總線、開關結構或在計算機系統(tǒng)中將組件聯(lián)在一起的任何其他合適的連接系統(tǒng)。在替代實施例中,計算機系統(tǒng)100可包括多于或少于兩個級別的高速緩存器。在操作過程中,當核140需要第一次訪問頁面數(shù)據(jù)時,相應的數(shù)據(jù)可從存儲設備 170移動到存儲器130。核140可隨后將頁面的一個或多個部分(例如,高速緩存線)從存儲器130移動到Ll高速緩存器145。由于需要額外的高速緩存線,它們也可以被移動到Ll 高速緩存器145。如果Ll高速緩存器145中沒有足夠的空間,就可將高速緩存線移動(驅逐)到L2高速緩存器150。類似地,當L2高速緩存器150已滿時,可將高速緩存線移至存儲器130,當存儲器130已滿時,可將頁面移至存儲設備170。確定當特定的高速緩存器已滿時移動哪一部分頁面的技術在本領域是眾所周知的。這些技術的每一個都可被稱為高速緩存器替換策略或高速緩存器算法。圖2示出了可通過處理器110在系統(tǒng)100中使用的地址轉換系統(tǒng)200的一個實施例。系統(tǒng)200包括轉換后備緩沖器(TLB) 210、頁面表220和磁盤230。在一個實施例中,TLB 210和頁面表220可被納入到處理器110中,盤230可以是與存儲設備170類似的各種存儲設備。在操作過程中,處理器Iio可獲得虛擬地址240來使來自過程的所需的頁面執(zhí)行讀或寫虛擬存儲器位置的指令。隨后處理器110可以試圖通過咨詢TLB210的項找出與虛擬地址240對應的物理地址。如果從虛擬到物理的轉換存在于TLB210中(稱作TLB命中),包括幀編號的物理地址250可返回到處理器110。如果從虛擬到物理的轉換不存在于TLB 210中(稱作TLB未命中),處理器110就可試圖通過咨詢頁面表220中的項找出與虛擬地址240對應的物理地址。如果從虛擬到物理的轉換存在于頁面表220中(稱作頁面表命中),轉換項就可被寫入TLB210。隨后,處理器110可通過咨詢TLB210中的項重試訪問,現(xiàn)在可能會找到所要的項。如果從虛擬到物理的轉換不存在于頁面表220中(稱作頁面表未命中),處理器110 就可作頁面故障的聲明。頁面故障可導致所要的頁面從磁盤230檢索,將相應的項寫入頁面表220。在頁面表220已經(jīng)更新后,處理器110可以通過咨詢TLB 210中的項重新訪問。 由于TLB210還沒有更新,TLB未命中會發(fā)生。然而,處理器110可隨后咨詢在頁面表220中的項,頁面表擊中可能發(fā)生,轉換項可被寫入TLB 210。隨后,處理器110可以通過咨詢TLB 210中的項,現(xiàn)在可以找到所需的項。如果所需的頁面不能從磁盤230檢索到,例如,如果所需的訪問是無效的,就可由諸如在處理器110上執(zhí)行的操作系統(tǒng)之類的軟件宣布和處理分段故障(segmentation fault)或其他類似的故障。頁面表220中的項可使用多種格式中的任何格式將虛擬地址轉換為物理地址。一般來說,虛擬地址包括用作頁面表220的索引的一些位域和用作頁面表220確定的頁的偏移的低階位。在不同的實施例中,頁面表220可以包括一個或多個層次,每一個層次由虛擬地址的特定的位域索引。因此,在虛擬地址中的高階位域的格式取決于頁面大小和頁面表 220中的數(shù)量層次。無論頁面表層次的數(shù)量如何,頁面表項和相應的TLB項可用于將虛擬地址轉化為包括物理幀號的物理地址。支持虛擬尋址的處理器可以使用多種操作模式的不同長度的虛擬地址。這樣的操作模式可以定義操作系統(tǒng)和處理器解釋虛擬地址中的位域的方式以及在虛擬地址轉換到物理地址時位域的使用方式。在一個實施例中,處理器110保持與X86架構兼容的處理器運行模式的向后的兼容性。增加TLB的涵蓋和減少TLB未命中的可能性的一種方法是增加TLB中的每一個項所代表的頁面的大小。處理器110可配置為使用下面說明的通過控制寄存器設置的擴展的頁面大小。圖3示出了將頁面表310中的項或TLB 350中的項映射到存儲器330的一個實施例。在所示實施例中,頁面表項可對應4KB的頁面,TLB項可對應于較大的頁面大小,例如64KB的頁面。頁面表310可包括頁面表項301-318等。TLB350可包括項351-357等。 存儲器330可包括頁面331-348等。項301-318中的每一個可對應4KB的頁面。如圖所示,項301對應頁面331,項302對應頁面332,依此類推。項351-357中的每一個可對應一個64KB的頁面。例如,如圖所示,項352對應于包括頁面331-346的存儲器區(qū),該區(qū)也可稱為超級頁面。此處使用的超級頁面可指包括兩個或多個連續(xù)的、匯總的和對齊的4KB的頁面的存儲器區(qū)。此外,為了方便起見并不失一般性,在下面的討論中,位于Ll高速緩存器、 L2高速緩存器或存儲器的物理幀的任何部分可以指是在存儲器中,與在存儲設備中的幀不同。如下所述,處理器110和在其上執(zhí)行的操作系統(tǒng)可使用各種數(shù)據(jù)結構來確定是否支持超級頁,是否啟用與否超級頁,哪一個TLB項對應于小(例如4KB)頁面和哪一個TLB項對應于到超級頁面。圖4示出了控制寄存器400中包含的、表示支持擴展的頁面大小的位域的一個實施例??刂萍拇嫫?00可對應于整合x86架構的處理器中的控制寄存器4(CR4)。CR4寄存器包括定義處理器的能力的一些位。如圖所示,寄存器400包括與超級頁面相關的兩個位 401和402。位401稱作頁面大小擴展位或PSE位,表示頁面是4KB還是啟用物理地址擴展 (PAE)時的標準的、較大的頁面大小4MB或2MB。如果位401沒有使用,就支持4KB的頁面大小。此外,寄存器400包括位402,位402稱作擴展頁面模式(XPM)支持位,如果設置,就表明支持擴展模式的頁面大小。在一個實施例中,處理器110可支持單一的擴展頁面大小。例如,可支持64KB的頁面大小。在替代實施例中,可支持超過一個擴展頁面的大小??商峁└鞣N機制,以確定支持哪些擴展頁面大小。下面的部分說明了這樣的一個機制。圖5示出了在模型特定寄存器(MSR) 500中包含的位域的一個實施例。MSR500包括定義處理器支持的擴展模式頁面大小的一些位。如圖所示,在一個實施例中,寄存器500 包括位501-508。假設如上所述由位401和402的值指示的那樣支持擴展頁面大小,支持的頁面大小由表1所示的位501-508的值來指示。
權利要求
1.一種處理器,包括虛擬存儲器分頁機制,其中所述虛擬存儲器分頁機制配置為使所述處理器上運行的操作系統(tǒng)能使用第一大小的頁面和第二大小的頁面,所述第二大小大于所述第一大小;形成超級頁面,所述超級頁面包括一系列包括所述第一大小的兩個或多個連續(xù)的頁面,其中超級頁面的大小小于所述第二大小;和頁面表,所述頁面表包括用于在每一個超級頁面中所包括的所述兩個或多個連續(xù)的頁面中的每一個的單獨項。
2.如權利要求1所述的處理器,其中所述虛擬存儲器分頁機制進一步配置為使在所述處理器上運行的操作系統(tǒng)能使用單一的虛擬地址來訪問每一個超級頁面。
3.如權利要求1所述的處理器,其中超級頁的大小是64KB。
4.如權利要求2所述的處理器,還包括轉換后備緩沖器(TLB),其中所述虛擬存儲器分頁機制配置為將所述TLB中的單項解釋為指包括與響應檢測到與所述TLB中的所述項有關的超級頁面使能指示器有效的超級頁面對應的一系列頁面的存儲器區(qū)。
5.如權利要求4所述的處理器,其中所述虛擬存儲器分頁機制進一步配置為將所述頁面表中的項解釋為指包括響應檢測到與所述頁面表中的所述項有關的超級頁面使能指示器有效的超級頁面的一部分的存儲器區(qū)。
6.如權利要求4所述的處理器,其中所述超級頁面使能指示器是可由軟件設置的。
7.如權利要求2所述的處理器,其中所述虛擬存儲器分頁機制進一步配置為響應于檢測到所述頁面表中的所述至少兩個項中的至少一個項缺失或包括與所述頁面表中的所述至少兩個項中的其他項的相應屬性不一致的屬性而發(fā)出頁面故障。
8.如權利要求1所述的處理器,其中所述虛擬存儲器分頁機制進一步配置為同時且獨立地使超級頁面在在所述處理器上運行的第一操作系統(tǒng)和第二操作系統(tǒng)中的一個或兩個上使用。
9.如權利要求8所述的處理器,其中所述第一操作系統(tǒng)是虛擬環(huán)境中的客機操作系統(tǒng),配置為使用第一頁面表將客機地址空間中的虛擬地址轉換為客機地址空間的物理地址,所述第二操作系統(tǒng)是虛擬環(huán)境中的主機操作系統(tǒng),配置為使用第二頁面表將客機地址空間中的物理地址轉換為主機地址空間中的物理地址。
10.如權利要求1所述的處理器,其中所述虛擬存儲器分頁機制進一步配置使所述操作系統(tǒng)使用兩個或兩個以上的不同超級頁面大小的超級頁面,其中每一個超級頁面的大小等于兩個或多個連續(xù)的、對齊的所述第一大小的頁面的大小,其中每一個超級頁面的大小小于所述第二大小。
11.一種用于處理器中的虛擬存儲器分頁的方法,所述方法包括使在所述處理器上運行的操作系統(tǒng)能使用第一大小的頁面和第二大小的頁面,所述第二大小大于所述第一大??;使所述操作系統(tǒng)形成超級頁面,所述超級頁面包括一系列包括所述第一大小的兩個或更多個連續(xù)的頁面,其中超級頁面的大小小于所述第二大小;和包括在頁面表中的單獨項,所述單獨項用于在每一個超級頁面中所包括的所述兩個或更多個連續(xù)的頁面中的每一個。
12.如權利要求11所述的方法,還包括使在所述處理器上運行的所述操作系統(tǒng)使用單一的虛擬地址來訪問每一個超級頁面。
13.如權利要求11所述的方法,其中超級頁的大小是64KB。
14.如權利要求12所述的方法,還包括將TLB中的單項解釋為指包括與響應檢測到與 TLB中的所述項有關的超級頁面使能指示器有效的超級頁面對應的一系列頁面的存儲器區(qū)。
15.如權利要求14所述的方法,還包括將所述頁面表中的項解釋為指包括響應檢測到與所述頁面表中的所述項有關的超級頁面使能指示器有效的超級頁面的一部分的存儲器區(qū)。
16.如權利要求14所述的方法,其中所述超級頁面使能指示器是可由軟件設置的。
17.如權利要求12所述的方法,還包括響應于檢測到所述頁面表中的所述至少兩個項中的至少一個項缺失或包括與所述頁面表中的所述至少兩個項中的其他項的相應屬性不一致的屬性而發(fā)出頁面故障。
18.如權利要求11所述的方法,還包括同時且獨立地使超級頁面在在所述處理器上運行的第一操作系統(tǒng)和第二操作系統(tǒng)中的一個或兩個上使用。
19.如權利要求18所述的方法,其中所述第一操作系統(tǒng)是虛擬環(huán)境中的客機操作系統(tǒng),配置為使用第一頁面表將客機地址空間中的虛擬地址轉換為客機地址空間的物理地址,所述第二操作系統(tǒng)是虛擬環(huán)境中的主機操作系統(tǒng),配置為使用第二頁面表將客機地址空間中的物理地址轉換為主機地址空間中的物理地址。
20.如權利要求11所述的方法,還包括使所述操作系統(tǒng)使用兩個或兩個以上的不同超級頁面大小的超級頁面,其中每一個超級頁面的大小等于兩個或更多個連續(xù)的、對齊的第一大小的頁面的大小,其中每一個超級頁面的大小小于所述第二大小。
全文摘要
一種包括虛擬存儲器分頁機制的處理器。所述虛擬存儲器分頁機制使在處理器上運行的操作系統(tǒng)能使用第一大小和第二大小的頁面,所述第二大小大于所述第一大小。所述機制進一步使所述操作系統(tǒng)能使用包括第一大小的兩個或更多個連續(xù)頁面的超級頁面。超級頁面的大小小于所述第二大小。所述處理器還包括一個頁面表,所述頁面表包括用于在每一個超級頁面中所包括的所述頁面中的每一個的單獨項。所述操作系統(tǒng)使用單一的虛擬地址來訪問每一個超級頁面。所述機制將轉換后備緩沖器TLB中的單項解釋為指包括與響應檢測到與TLB中的所述項有關的超級頁面使能指示器有效的超級頁面對應的一系列頁面的存儲器區(qū)。
文檔編號G06F9/26GK102473091SQ201080030133
公開日2012年5月23日 申請日期2010年6月30日 優(yōu)先權日2009年7月1日
發(fā)明者烏維·M·達諾夫斯基, 塞巴斯蒂安·比米勒, 大衛(wèi)·S·克里斯蒂, 托馬斯·弗列韋爾, 斯蒂芬·迪斯特爾霍斯特, 邁克爾·P·霍穆特 申請人:超威半導體公司