新四季網

在分段作業系統中提供用於頁面轉換的預轉換段的設備和方法

2023-10-08 12:12:24 1

專利名稱:在分段作業系統中提供用於頁面轉換的預轉換段的設備和方法
技術領域:
本發明總體上涉及用於訪問計算機存儲器的部分的地址轉換。具體地,本發明涉及通過提供用於頁面轉換的預轉換段繞過已知的地址轉換系統的轉換後備緩衝區(TLB)分級結構的機制。
背景技術:
隨著現代計算設備中更快的處理器和大量的存儲器的出現,應用程式開始使用更大的工作集合,也就是,更大量的數據和指令需要被裝入系統存儲器。更快的處理器能夠支持更高級的多路編程,這接下來又導致累積工作集合大小的增加。無論現代計算設備中的物理存儲器有什麼巨大的增長,存儲器地址映射機制的大小,例如轉換後備緩衝器(TLB)的大小,都沒有多大增加,這是由於硬體成本和其它的約束。
轉換後備緩衝器(TLB)是處理器中的一個表,其包含存儲器的最近被訪問的頁面的虛擬地址和真實地址之間的交叉引用(相互對照)。TLB的功能就象主存儲器中最近被訪問的頁的一個「熱表」或者說快速查找索引。
當出現高速緩存遺漏(差錯)時,數據必須從虛擬存儲器中的地址被取出。該虛擬存儲器地址必須被轉換為真實存儲器地址,或者說物理地址。如果所需頁面的真實存儲器地址不在TLB中,則當用其它手段確定真實地址時導致進一步的延遲。
因為TLB的大小沒有隨著物理存儲器的大小的增加而增加,現代計算設備中的TLB的範圍不足以支持大的工作集合。結果,隨著工作集合的變大,TLB遺漏率上升。另外,大的工作集合還導致大的頁面表佔用區域(footprint)。這使得要滿足TLB遺漏所需的頁面表條目越來越沒有可能在最靠近處理器的高速緩存級別中找到。
從而,滿足TLB遺漏所花的時間量也增加。對於大存儲器的機器來說,TLB遺漏已經成為關鍵的性能瓶頸。
對TLB等待時間問題提出的解決方案包括增加存儲器的頁面的大小,例如超頁面(superpage),並提供對多頁面大小的支持。超頁面是被設計為減少轉換後備緩衝區(TLB)的數量和映射存儲器所需的頁面表條目的機制。超頁面是用來增加由每一個頁面表條目映射的存儲器的大的虛擬頁面。超頁面增加TLB相對覆蓋範圍,減少TLB遺漏的數量,需要昂貴的(緩慢)的地址轉換。
當需要映射大的對象時,超頁面是有用的,但是不適用於所有應用。如果應用不要求映射大的對象,則超頁面的使用會導致可觀的內部碎片化,而不會顯著減少轉換條目的數量。對多頁面大小(包括超頁面)提供額外的支持要求對作業系統進行大量的修改,這會對轉換機制引入額外的開銷。
因此,最好有一種改進的機制來執行虛擬地址到真實地址的轉換,減少大存儲器系統的頁面表所需的大小,同時使執行這樣的轉換的開銷最小化。

發明內容
本發明提供了一種產生用在虛擬到真實地址轉換中的預轉換段的機制。使用這種機制,被確定為滿足一個密度閾值的段被提升到預轉換的段的類別。與這些段相關聯的頁面被移動到存儲器的物理上連續的部分,並更新對應於所述段的段表條目,以將該段指示為預轉換段,並包括存儲器的所述連續部分的真實基地址。這樣,為了執行虛擬到真實地址的轉換,所要做的只是將所述真實段基地址、頁標識符以及頁面中的字節偏移連接起來。
當解析該地址時,頁標識符提供到存儲器的連續部分的偏移,從而標識頁面的基本地址,頁面中的字節偏移提供了頁面中從頁面的基本地址的偏移。結果,可以僅根據真實段基地址、頁標識符和頁面中的字節偏移來標識存儲器位置,沒有必要使用轉換後備緩衝區和頁面表分級結構來解決虛擬到真實地址的轉換。
除了上述之外,本發明另外的方面提供一種用於預轉換段的「懶惰」提升機制。也就是,對於被示為提升到預轉換段的標準的段,這樣進行提升,使得段內的頁面在提升階段是可訪問的。使用本發明,當一個段滿足提升標準時,將一個提升請求置於專用內核進程的隊列中。當隊列中有一個請求時所述專用內核進程被喚醒,並按如下方式處理所述請求。
首先,所述內核進程判斷是否存在大小足以存儲所述段的存儲器的連續部分。如果沒有,則延遲該請求的處理,直到存在足夠大小的連續存儲器部分可用。如果存在大小足以存儲所述段的存儲器的連續部分,則將所述段的頁面一次一個地拷貝到該存儲器的連續部分。當拷貝每一個頁面時,其對應的頁面表條目被更新到該頁的新存儲器位置的點。這樣,在提升階段使得頁面可訪問。
當所有頁面都被拷貝到存儲器的連續部分時,該段的段表條目被更新為包括所述存儲器連續部分的真實基地址,並設置預轉換段標記欄位。之後,可以使用所述段表條目解決對所述段中的頁面的訪問,而不用必須在頁面表或者轉換後備緩衝器中進行查找。
閱讀下面對優選實施例的詳細說明後,本領域的普通技術人員會明了本發明的上述以及其它特徵和優點。


在所附的權利要求中說明了據認為是本發明的特徵的新穎特徵。但是,本發明本身以及其優選的使用方式,以及其目的和優點,可以結合下面對說明性實施例的詳細說明以及附圖得到最好的理解。附圖中圖1是可以實現本發明的計算設備的舉例的框圖;圖2是一個示意圖,用於說明一種現有技術的方法,用於將虛擬地址轉換為用於訪問物理存儲器中的指令/數據的物理地址;圖3圖解了對可變大小數據塊的分段虛擬地址映射的傳統形式;圖4圖示了本發明的用於預轉換段的虛擬到真實地址轉換機制的舉例的概要圖;圖5圖示了根據本發明的一個實施例,用於將一個段提升為預轉換段的處理的一個例子;圖6的流程圖概要圖示了根據本發明的一個實施例,用於將一個段提升為預轉換段的舉例的操作;圖7的流程圖概要圖示了當進行虛擬到真實地址轉換時,本發明的舉例的操作;圖8示意示了根據本發明的一個實施例,用於預轉換段的「懶惰」段提升機制的一個例子;圖9的流程圖概要圖示了當對預轉換段進行「懶惰」段提升時,本發明的舉例的操作。
具體實施例方式
本發明提供了用於產生預轉換段,以繞過用於頁錶轉換的轉換後備緩衝器分級結構的設備和方法。因而,本發明在計算設備,比如獨立的計算設備、客戶計算設備、伺服器計算設備等中實現。圖1是可以實現本發明的計算設備的一個例子。當然,對圖1的舉例的計算設備所示的結構可以進行許多修改而不脫離本發明的實質範圍,圖1不是要對可以實現本發明的計算設備的類型進行任何限制。
見圖1,根據本發明的一個實施例,圖示了可以實現本發明的數據處理系統的框圖。數據處理系統100可以是包括連接到系統總線106的多個處理器102和104的對稱多處理器(SMP)系統。或者,也可以使用單處理器系統。連接到系統總線106的還有存儲器控制器/高速緩存108,以提供到本地存儲器109的接口。I/O總線橋110連接到系統總線206,提供到I/O總線112的接口。存儲器控制器/高速緩存108和I/O總線橋110也可以如圖所示集成在一起。
存儲器控制器/高速緩存108最好包括虛擬到真實地址轉換模塊150,其目的是將一個或者多個處理器102、104提供的虛擬地址轉換為用於訪問本地存儲器109中的存儲器位置的真實地址,或者說物理地址。虛擬到真實地址轉換模塊150可以利用本地存儲器109中的段表160和頁表170進行該虛擬到真實地址轉換,如後所述。
連接到I/O總線112的外設部件互連(PCI)總線橋114提供到PCI本地總線116的接口。可以向PCI本地總線116連接許多數據機。典型的PCI總線應用支持四個PCI擴展槽或者內裝連接器。可以通過經由內裝連接器連接到PCI本地總線116的數據機118和網絡適配器120提供到其它計算設備的通信連結。
另外的PCI總線橋122和124對另外的PCI本地總線126和128提供接口,這些PCI本地總線可以支持另外的數據機或者網絡適配器。這樣,數據處理系統100允許連接到多個網絡計算機。如圖所示,直接或者間接連接到I/O總線112的還可以有存儲器映射圖形適配器130和硬碟132。
本領域的普通技術人員知道,圖1所示的硬體是可以變化的。例如,除了圖示的硬體之外,或者取代圖示的硬體,還可以使用其它外圍設備,比如光碟驅動器等。圖示的例子不是要對本發明加以任何結構上的限制。
圖1所示的數據處理系統例如可以是運行高級交互執行(AIX)作業系統或者LINUX作業系統的IBM eServer pSeries system(國際商用機器公司(International Business Machines Corporation inArmonk,New York)的產品)。
在本發明的一個優選實施例中,圖1所示的計算設備使用虛擬存儲系統,其中,應用程式使用虛擬地址訪問存儲器中的指令和數據,所述虛擬地址必須被解析為真實的存儲器地址,以訪問真實的存儲器位置。因此,本地存儲器109利用分段的虛擬地址空間。如前所述,本發明的目標在於改善使用分段虛擬地址空間的系統的地址轉換,手段是通過提供一種產生預轉換段的機制。
圖2的舉例的示意解了一種現有技術的方法,用於將虛擬地址轉換為物理地址以訪問物理存儲器中的指令/數據。如圖2所示,虛擬地址200包括頁標識符210和頁面中的偏移220。虛擬地址頁標識符210是用頁表230索引的。頁表230包括物理頁面地址240和表示映射是否有效的有效位250。如果設置了有效位,則頁表提供對應的物理頁號,也就是,頁面在存儲器中的起始地址。如果沒有設置有效位,則該頁面在存儲器中不存在。物理地址240包括與頁面中的虛擬地址偏移220相拼接(連接,concatenate)的物理頁面基地址260。
圖3圖解了對於可變大小數據塊的分段虛擬地址映射的傳統形式。在分段虛擬存儲器中,除了頁標識符210和頁面中的偏移220之外,虛擬地址還包括段標識符310,該段標識符由一個段表320索引,段表包括一個有效位330、頁表地址340和頁表大小350。虛擬地址頁標識符210和段表頁表大小350被提供給一個大小檢查函數360。該大小檢查函數360檢查頁ID 210和頁表大小350,以生成由頁表地址340所標識的頁表中的偏移。大小檢查函數360的輸出以及作為頁表基地址的頁表地址340由頁表370索引。根據該頁表,識別物理頁面基地址380或者真實頁號。然後將頁面中的偏移220與物理頁面基地址380拼接起來,產生物理地址390。
如前所述,本發明提供了一種機制來繞過用於預轉換段的如圖3所示的頁表分級結構。通過研究運行各種應用程式的各種計算設備上的頁表,已經觀察到,對於大量的段(在所進行的試驗中幾乎佔99%),段的整個地址範圍被映射到頁表中。也就是,段中的每一個頁面存在於存儲器中。另外,幾乎所有這些段有完全連續的頁面構成。在所進行的試驗中,表現出這些特點的段總共佔所訪問的頁面的大約87%。
鑑於這些發現,本發明的基本前提是完全避免不得不訪完全用於具有這些特點的段的轉換後備緩衝器/頁表分級結構。這可以這樣實現將屬於這樣的一個被整體訪問的段的所有頁面分配到一個連續的物理存儲器中。所述段的連續存儲區的基地址可以被存儲為用於該段的段表條目中的一個欄位。這樣,對段內所有頁面的訪問可以只通過段表條目進行轉換,而完全不需要訪問TLB/頁表分級結構。這樣,實質上,對於需要經過傳統的轉換機制的段,釋放了當前在TLB和頁表中使用的空間的87%。這導致TLB丟失更少,頁表佔用區域更小。這樣,當出現TLB丟失時,所需的頁表條目更有可能在高速緩存中找到。
另外,通過標識可以被整體訪問的段,並提供僅根據段表條目進行轉換的機制,本發明減少了執行轉換本身所花的時間,因為不在需要執行這些段的TLB查找和/或頁表查找。這樣,從TLB分級結構中有效地取出了可以被整體訪問的段,從而,對於需要使用標準TLB分級結構轉換機制的其它段來說,釋放了TLB分級結構中的空間。這允許更大的存儲系統具有轉入存儲器中的更大的工作集合,從而減少TLB丟失。
圖4圖解了用於預轉換段的本發明的虛擬到真實地址轉換機制的舉例的概要圖。如圖4所示,用於訪問存儲器位置的處理器提供虛擬地址410。該虛擬地址410包括段標識符420、頁標識符430和頁面中的字節偏移440。
當本發明的虛擬到真實地址轉換機制接收到虛擬地址410時,首先在段表450中查找段標識符420,以確定該段是否是一個預轉換段。如圖所示,段表450包括段表條目(STE),段表條目包括預轉換標記欄位460、真實段基地址欄位470,以及頁表地址欄位480。如果支持可變大小頁面,則可以如圖3所示提供額外大小欄位。另外,在備選實施例中,可以不是單獨的預轉換標記欄位460和真實段基地址欄位470,而將這兩個欄位合併,使得,當真實段基地址欄位470中存在預定值比如-1時,就判定該段不是預轉換段,如果真實段基地址欄位470的值不是-1,則該值為該段的實際的真實基地址。
所述預轉換標記欄位460存儲的值標識對應的段是否經過了預轉換。如果一個段已經按照後面描述的方式被整體裝入真實存儲器的一個連續部分,則該段就就是經過了預轉換的。所述真實段基地址欄位470存儲存儲器的該連續部分的真實基地址。頁表地址欄位480與圖3所描述的現有技術相同,在所述段不是預轉換段時被使用。
可以根據段標識符420在段表450中查找段,並確定在預轉換標記欄位460中所設置的值,從而判斷該段是否是預轉換段。例如,如果該欄位460是單個比特,並且在段被預轉換時設置它,則如果在該段表中進行查找時確定設置該比特,則可以確定該段是一個預轉換段。
如果該段是一個預轉換段,則從欄位470取出該段的真實基地址。然後確定對應於虛擬地址410的存儲器位置的真實地址490,或者說物理地址,也就是真實段基地址470、頁標識符430以及頁面440中的字節偏移的拼接。
在解析該地址時,向計算設備的轉換硬體提供一個額外的加法器,用於對真實段基地址470和頁標識符430作加法,頁標識符是真實基地址470所標識的段中的偏移。傳統的轉換硬體然後將所述字節偏移加到頁面440中,以產生整個真實地址,包括真實段基地址470、頁標識符430和頁面440中的字節偏移的加和。本質上,使用這種地址轉換方案,轉換硬體是這樣標識存儲器位置確定標識真實存儲器的頁面的段中的偏移,然後確定標識實際的真實存儲器位置的頁面中的偏移。
如上所述,本發明對可以被整體訪問的段進行操作。這樣,本發明包括一種用於標識可以被整體訪問的段(相對於不能被整體訪問的其它段)的機制。這些段的標識是基於段的「密度」,所謂「密度」是指該段中存在於存儲器中、從而具有有效頁表條目的所有頁面的百分比,也就是,對這些頁面設置了用於頁表條目的有效位。從該定義,可以清楚,那些密度為1的段(也就是,該段中的所有頁面都在存儲器中,並且具有有效的頁表條目)可以使用所述段表標識符被整體訪問。
儘管密度「1」可以確保在對段進行預轉換時沒有存儲空間的浪費,也就是,段中的所有頁面都將被或者已經被訪問,預轉換的過程不會裝入不會或者沒有被訪問的頁面,但是沒有必要堅持密度必需為1才能獲得本發明的優點。也就是,通過允許分配密度小於1的段作為預轉換段,在地址轉換成本(例如CPU時間)方面的節約量可以提高。
使用小於1的密度會導致某種程度的「存儲空間浪費」,因為段中的某些頁面沒有實際被訪問,也不能被訪問。但是,通過規定一個可調的閾值密度,並且只分配超過該可調閾值密度的段作為預轉換段,可以限制存儲空間浪費的量,同時實現轉換成本的節省。另外,預轉換段中的「空洞」,也就是預轉換段中實際上還沒有被訪問的頁面,不一定表示「浪費的存儲空間」,因為它們可能實際上包含可以在將來被訪問的頁面(從而潛在地減少了頁面錯誤)。這樣,與其它的現有技術(比如超頁面(superpages))相比,在本發明中,浪費存儲空間的問題實際上是一個小得多的問題。在超頁面技術中,內部分段造成存儲空間浪費,並且沒有約束這種存儲空間浪費的機制。
為了標識可以作為預轉換段被分配的段,本發明使用一種「提升」機制,其中,當段的密度被確定為超過一個可調閾值密度時,將這樣的段「提升」到預轉換段的級別。所述可調閾值密度的設置可以基於任何數量的標準,取決於具體的實現,這些標準包括但不限於段的類型、基於每一個處理(類似於段保護域)或者基於全系統,等等。所述可調閾值密度最好由虛擬到真實地址轉換模塊150根據針對具體的實現建立的標準來設置和存儲。
為了確定某個段是否超過了所述可調閾值密度值,要監視段的密度。這可以通過計算被訪問的段頁面數與在段的訪問範圍(該信息可以從該段的相應段表條目獲得)內定義的總頁數的比值來實現。每當出現頁面錯誤或者進行頁表條目的映射時,重新計算或者調整所述密度,從而保持該比值計算值為最新的。
例如,當發生頁面錯誤或者當映射一個頁表條目時,對於對應的段,將有效頁表條目數,也就是設置了有效位的頁表條目數,增加1(建立的新的有效頁表條目的數量)。該數量然後被除以該段的訪問範圍的頁面總數。得到的比值然後與可調密度閾值進行比較,以確定是否滿足或者超過所述可調閾值密度。
當一個段達到規定的可調閾值密度時,或者超過規定的可調閾值密度時,該段被提升為預轉換段。圖5圖解了該提升過程的一個例子。
如圖5所示,在判斷了是否達到或者超過所述可調閾值密度之後,將該段的地址範圍內的所有頁面510移動到存儲器520的一個物理上連續的部分。如果可調閾值密度小於1,則填充該段中的「空洞」。也就是,使達到可調閾值密度時存儲器中不存在的段的頁面從存儲設備530進入存儲器。這樣,整個段就被分配到存儲器520的一個物理上連續的部分中。
然後將對應於該段的段表條目540更新,以設置所述預轉換標記欄位550,來標識該段要被預轉換。另外,更新所述段表條目540,使之包括真實段基地址欄位560中的真實段基地址,該段基地址對應於存儲該段的物理存儲器的所述連續部分的開始。在一個備選實施例中,欄位550和560被合併起來,更新所述段表條目540的處理可以只涉及用一個地址值來替換真實段基地址欄位560中的表示非預轉換段的值。
這樣,對預轉換段中的頁面中的訪問不需要通過TLB和頁表分級結構來將虛擬地址轉換為真實地址。要做的只是由虛擬到真實地址轉換模塊查找段表中的真實段基地址,將頁標識符和頁面中的字節偏移拼接到真實段基地址上,並標識存儲位置的真實地址。如前所述,使用轉換硬體中的另外的加法器,頁標識符對所述真實段基地址所標識的段提供一個偏移,頁面中的字節偏移標識由所述段中的偏移所標識的頁面內的存儲器位置。
由於本發明的使用,對應於被指定為預轉換段的段內的頁面的TLB中的條目不再為了地址轉換的目的而被訪問。先前由這些條目佔據的空間就能夠重新用於不屬於預轉換段的頁面,從而極大地減少了TLB丟失的數量。由於屬於預轉換段的頁面不再需要在頁表中維持有效條目,頁表的佔用區域也大大減小,整個頁面更容易適應TLB和高速緩存。結果,減少了TLB和高速緩存丟失。
由於所進行的研究表明絕大多數段都可以被歸入預轉換段,如果使用小於1的可調密度閾值,則可以有更多的段可以被歸入此類,結果可以獲得更好的TLB覆蓋率,使得相關頁表條目在高速緩存中的概率更高,並且,由於TLB命中率得到提高並且TLB丟失處理次數減少,地址轉換開銷顯著降低。另外,如果發生TLB丟失,由於頁表佔用區域減小,則頁面轉換條目組更有可能在高速緩存分級結構中處於更高層次。
所述可調密度閾值允許在存儲空間浪費和使用本發明獲得的上述好處之間折衷。在存儲空間豐富的計算機系統中,所述閾值密度可以設置為較低的值(小於1.0),以允許更多的段被歸類為預轉換段。如果存儲空間不豐富,則可以將閾值密度設置為1.0,從而消除存儲空間的浪費,而仍然獲得所述改進的轉換機制的好處。另外,所述密度閾值可以在運行時改變,從而允許根據系統當前的存儲空間需求來進行控制。
圖6、7和9的流程圖概括了本發明的舉例的操作。可以理解,流程圖的每一個方框,以及流程圖中的方框的組合,可以用電腦程式指令來實現。這些電腦程式指令可以被提供給處理器或者其它可編程數據處理設備,從而形成一個機器,使得在所述處理器或者其它可編程數據處理設備上執行的指令形成用於實現所述流程圖方框中所說明的功能的裝置(手段)。這些電腦程式指令也可以被存儲在計算機可讀的存儲器或者存儲介質中,能夠指令處理器或者其它可編程數據處理設備按照特定的方式工作,從而,存儲在計算機可讀存儲器或者存儲介質中的指令構成一種製品,其包括實現所述流程圖方框中描述的功能的指令裝置(手段)。
因此,流程圖中的方框支持用於執行規定功能的裝置的組合、用於執行規定功能的步驟的組合以及用於執行規定功能的程序指令裝置。還可以理解,流程圖的每一個方框,以及流程圖中的方框的組合,可以由執行規定的功能或者步驟的專用的基於硬體的計算機系統實現,或者由專用硬體和計算機指令的組合來實現。
圖6的流程圖概括了根據本發明的一個實施例,將一個段提升為預轉換段的舉例的操作。如圖6所示,操作的開始是判斷是否發生了請求檢查段以確定是否要將該段提升為預轉換段級別的事件(步驟610)。如前所述,該事件可以是一個頁面錯誤或者被映射的頁表條目等。如果沒有發生這樣的事件,則操作結束。如果發生了這樣的事件,則確定段地址範圍(步驟615)。
標識所述頁表中對應於所述段地址範圍的頁表條目(步驟620),並累計有效的頁表條目數量的計數(步驟625)。另外,還累計頁表條目總數的計數(步驟630)。然後將有效條目數除以段範圍內的頁表條目總數(步驟635),所得到的比值與一個可調密度閾值進行比較(步驟640)。
判斷該比值是否等於或大於所述可調密度閾值(步驟645)。如果不是,則操作結束。如果該比值大於或等於所述可調密度閾值,則對該段分配存儲器的一個連續部分(步驟650)。然後將該段地址範圍內的頁面移動到存儲器的該物理連續的部分(步驟655)。如前所述,這可以包括如果頁面不在存儲器中(如果可調密度閾值小於1),則從存儲設備取出頁面,從而填充所述段中的空洞。
然後,更新段表條目中對應於該段的預轉換段標記欄位,以反映出該段是預轉換段(步驟660)。然後更新段表條目中的真實段基地址欄位,以使之包括存儲器的所述物理連續部分的真實基地址(步驟665)。如前所述,在一個備選實施例中,只有真實段基地址欄位需要更新,以指示所述真實段基地址,因為在該欄位中非預轉換段的值會是-1。然後結束操作。
圖7的流程圖概述了當執行虛擬到真實地址轉換時,本發明的舉例的操作。如圖7所示,操作的開始是接收用於轉換的虛擬地址(步驟710)。然後使用段標識符進行段表查找(步驟720)。然後評估所述預轉換段標記欄位中的值,或者所述真實段基地址欄位中的值,以確定其是否表示該段是預轉換段(步驟730)。如果該段是預轉換段,則所述真實地址被確定為段表條目中的真實段基地址、頁標識符和頁面中的字節偏移的拼接(步驟740)。如果該段被確定為不是預轉換段,則按照已知的方式進行頁表查找(步驟750),將所述真實地址確定為真實頁號和頁面中的字節偏移的拼接(步驟760)。然後結束操作。
這樣,本發明提供了一種機制,避免了與使用轉換後備緩衝器(TLB)和頁表分級結構的虛擬到真實地址轉換相關的瓶頸。本發明減小了TLB和頁表的佔用區域,並提高了對大多數段進行轉換的速度。這極大地提高了計算設備在TLB和頁表使用以及訪問次數方面的效率,因為轉換的速度得到提高,並且減少了TLB和高速緩存丟失的數量。
如前所述,本發明的各個方面提供了一種將存儲器的段提升為預轉換段狀態的機制,在預轉換段狀態中,執行虛擬到真實地址轉換所需的只是段表。上面所描述的機制包括一個可調參數,用於標識哪些段滿足提升到預轉換段狀態的閾值標準。當將一個段提升到預轉換段狀態時,所有段的存儲頁面被拷貝到物理存儲器的一個連續部分,在該段的段表條目中建立單個轉換條目。轉換條目包含該段的真實基地址。
儘管這種機制對已知的虛擬地址轉換機制進行了改善,但是仍然有這樣的可能性類似於與使用超頁面的已知機制相關的問題,本發明也可能會受到長的頁面錯誤處理等待時間的影響。對於超頁面,當頁面首次被訪問從而需要被裝入存儲器時,就會出現所述長的頁面錯誤處理等待時間。在能夠訪問頁面中的數據之前,過程需要等待整個超頁面被裝入。
對於預轉換段,當選擇一個段以提升到預轉換段時,會發生長的頁面錯誤處理等待時間。此時,所述段需要拷貝到物理存儲器的一個連續部分。拷貝開銷與段的大小成比例。在此提升階段,對段內頁面的任何訪問都必需等待段拷貝完成和新轉換的建立。這樣,在段提升階段,一個處理可能受到長的訪問等待延遲的影響。
在超頁面的情況下,對於所遭受的長的等待時間實在沒有解決之道,因為超頁面情形中的基本傳輸大小與超頁面的大小是相同的。但是,對於預轉換段,可以提供一種機制,該機制事實上可以縮短在段提升階段期間處理的訪問等待時間。
使用本發明,通過提供一個「懶惰」提升策略,可以緩解訪問正在經過段提升階段的段內的頁面時處理過程的長時間等待,在所述「懶惰」提升策略中,被提升的段的頁面被一個後臺處理拷貝到其新位置。對應於所述頁面的頁表條目被重新映射到存儲器中該頁面的新位置。
當段內的所有頁面都已被拷貝之後,寫入段表中的段轉換條目,並將該段標記為預轉換段。同時,在提升階段中,處理過程可以繼續訪問段的頁面,因為它們具有有效的頁表條目。這樣,在能夠訪問被提升的段中的頁面之前,處理過程不需要等待整個段被拷貝,從而避免了太長的頁面錯誤處理等待時間。
圖8是一個舉例的示意圖,根據本發明的一個實施例,圖示了預轉換段的懶惰段提升機制的一個例子。在此實施例中,提供了一個專用內核處理(kproc)810,其負責維護段提升請求。當選擇提升一個段時,如前所述,用kproc 810對請求排隊,從而請求提升相應的段。請求隊列820可以是,例如,先進先出(FIFO)隊列,或者對尺度大的段賦予更高優先級的優先隊列,等等。當隊列820中沒有請求時,kproc 810進入睡眠狀態,當有請求被加入隊列820時,其被喚醒。
當kproc 810維護隊列820中的請求時,kproc 810首先分配物理存儲器830的一個連續部分用於存儲在該請求中訪問的段。如果不能找到連續的物理存儲器的大小適當的一部分來存儲段,則推遲該提升請求,例如將其推回到請求隊列820中,直到在連續的物理存儲器中有適當大小的部分可用。
一旦有物理存儲器830的連續部分可用,則將其分配給所述段,然後將段的每一個頁840-860拷貝到存儲器830的該區域。在存儲器中不存在的頁面(例如,如果可調閾值段密度被設置為小於1.0)被調頁到物理存儲器830的所分配的部分。當拷貝每一個頁面時,頁表870中其對應的頁表條目(PTE)被重新映射到物理存儲器830中它的新位置。當所有頁面840-860被拷貝到物理存儲器830的所分配的部分中時,然後就更新對應於該段的段表880中的段表條目,使之包括物理存儲器830的所分配部分的真實基地址,並將該段設置為預轉換段狀態。
在專用kproc 810的操作期間,也就是在提升階段期間,對段內頁面840-860的訪問可以繼續得到滿足,因為這些頁面在頁表870中具有有效的頁表條目。如果頁面已經被拷貝,則其頁表條目指向其在物理存儲器830的所述分配部分中的新位置。如果頁面沒有被拷貝,則其頁表條目指向其在存儲器中的初始位置。如果訪問正在拷貝中的頁面,則該訪問必需等待,直到在滿足該訪問之前完成頁面拷貝。可以使用諸如優先加速(priority boosting)等方案來確保儘早滿足所述訪問。這樣,任何頁面訪問的等待時間都不會超過基本頁面大小的頁面錯誤等待時間。
圖9的流程圖概括了對預轉換段執行懶惰段提升時本發明的舉例的操作。如圖9所示,操作的開始是判斷在隊列中是否有段提升請求(步驟910)。如果隊列中沒有段提升請求,則操作返回步驟910等待,直到隊列中有段提升請求。如果隊列中有段提升請求,則獲取隊列中的下一個請求(步驟915)。
然後判斷存儲器是否存在大小足以存儲所述段的連續部分(步驟920)。如果沒有,則對提升所述段的請求重新排隊以便以後處理(步驟925)。如果存儲器存在足夠大小的連續部分,則將其分配用於所述段的存儲(步驟930)。
然後將段地址範圍內的下一個頁面移動到存儲器的所分配的連續部分(步驟935)。該頁移動之後,更新該頁的頁表條目以指向該頁在存儲器的所述分配的連續部分中的新位置(步驟940)。然後判斷段地址範圍內的所有頁面是否都已移動(步驟945)。若否,則操作返回步驟935,將下一個頁面移動到存儲器的連續部分。如果段的所有頁面都已移動,則在段表中設置該段的預轉換段標記欄位(步驟950),並將存儲器的該連續部分的真實基地址設置為該段的段表條目中的真實段基地址欄位中的真實段基地址值(步驟955)。然後結束操作。
這樣,本發明提供了一種對滿足提升到預轉換段的標準的段的「懶惰」提升機制。這種預轉換段的「懶惰」提升機制相對於現有技術中使用超頁面具有若干優點,其中最重要的是減少了頁面錯誤處理等待時間。當一個應用程式首次訪問一個超頁面並導致頁面錯誤時,在能夠滿足所述訪問之前整個超頁面需要被裝入存儲器。由於超頁面傾向於比較大,這就會導致較長的頁面錯誤處理時間。如上所述,當對預轉換段使用懶惰頁面提升時,即使在提升階段中,對段內頁面的訪問也可得到滿足,因為頁面的拷貝是一次一頁,並且每一個被拷貝的頁面在頁表中也具有其新物理地址的條目。如果要訪問正在拷貝中的頁面,則在滿足該訪問之前,進行該訪問的處理過程必需等待該頁面拷貝完成。但是,該等待時間只是與基本頁面大小(例如對於AIX/PowerPC來說為4k)成比例,則比超頁面的等待時間要短得多。
重要得是要注意到,上面在全功能數據處理系統的上下文中對本發明進行了說明,本領域的普通技術人員知道,本發明的處理過程能夠以指令的計算機可讀介質的形式以及多種形式加以分布,無論實際用於進行所述分布的信號承載介質的具體類型如何,本發明都同等適用。計算機可讀介質的例子包括可記錄介質比如軟盤、硬碟驅動器、RAM、CD-ROM、DVD-ROM,以及傳輸介質比如數字和模擬通信鏈路、使用諸如射頻和光波傳輸等傳輸形式的無線或者有線通信鏈路。計算機可讀介質可以採用編碼格式的形式,所述編碼格式可以被解碼以實際用於具體的數據處理系統中。
上面對本發明的描述是為了解釋和說明的目的,不是要窮盡本發明或者將本發明限制於所公開的形式。對於本領域普通技術人員來說,許多修改和變型都是顯而易見的。上面對實施例的選擇和描述是為了更好地解釋本發明的原理和實際應用,並使得本領域的其它普通技術人員能夠理解本發明的進行了適合所能想到的具體用途的各種修改之後的各種實施例。
權利要求
1.在數據處理設備中進行虛擬到真實地址轉換的方法,包括接收用於訪問存儲器的一個位置的虛擬地址,其中該虛擬地址包括一個段標識符;根據該段標識符進行段表查找,找出一個段表條目;根據所述段表條目判斷該段是否是一個預轉換段;如果所述段是一個預轉換段,則根據在所述段表條目中所標識的真實段基地址產生用於訪問對應於所述虛擬地址的存儲器位置的真實地址。
2.如權利要求1所述的方法,其中,如果所述段不是一個預轉換段,則該方法還包括在轉換後備緩衝器和頁表中的至少一個中查找所述虛擬地址,從而產生一個用於訪問對應於所述虛擬地址的存儲器位置的真實地址。
3.如權利要求1所述的方法,其中,根據所述段表條目判斷所述段是否是預轉換段的步驟包括判斷所述段表條目中的一個預轉換段標記欄位是否具有表示所述段為預轉換段的特定值。
4.如權利要求1所述的方法,其中,根據所述段表條目判斷所述段是否是預轉換段的步驟包括判斷真實段基地址欄位中是否存儲有一個真實基地址。
5.如權利要求1所述的方法,其中,根據所述真實段基地址產生用於訪問對應於所述虛擬地址的存儲器位置的真實地址的步驟包括將所述段的段表條目中標識的真實段基地址、所述段內的一個頁面的頁標識符以及所述頁面中的字節偏移拼接起來。
6.如權利要求5所述的方法,其中,所述真實段基地址和所述頁標識符的拼接由轉換硬體中的第一加法器完成,其中,所述真實段基地址和所述頁標識符的拼接結果與所述頁面中的字節偏移的拼接由轉換硬體中的第二加法器完成。
7.如權利要求1所述的方法,其中,如果所述段可以被整體訪問,則所述段為預轉換段。
8.如權利要求1所述的方法,其中,如果所述段的密度大於一個可調的閾值密度,則該段是預轉換段。
9.在數據處理設備中進行虛擬到真實地址轉換的計算機可讀介質中的電腦程式產品,包括第一指令,用於接收用於訪問存儲器的一個位置的虛擬地址,其中該虛擬地址包括一個段標識符;第二指令,用於根據該段標識符進行段表查找,找出一個段表條目;第三指令,用於根據所述段表條目判斷該段是否是一個預轉換段;第四指令,用於如果所述段是一個預轉換段,則根據在所述段表條目中所標識的真實段基地址產生用於訪問對應於所述虛擬地址的存儲器位置的真實地址。
10.如權利要求9所述的電腦程式產品,其中,根據所述段表條目判斷所述段是否是預轉換段的第三指令包括判斷所述段表條目中的一個預轉換段標記欄位是否具有表示所述段為預轉換段的特定值的指令。
11.如權利要求9所述的電腦程式產品,其中,根據所述段表條目判斷所述段是否是預轉換段的第三指令包括判斷真實段基地址欄位中是否存儲有一個真實基地址的指令。
12.如權利要求9所述的電腦程式產品,其中,根據所述真實段基地址產生用於訪問對應於所述虛擬地址的存儲器位置的真實地址的第四指令包括將所述段的段表條目中標識的真實段基地址、所述段內的一個頁面的頁標識符以及所述頁面中的字節偏移拼接起來的指令。
13.如權利要求9所述的電腦程式產品,其中,如果所述段可以被整體訪問,則所述段為預轉換段。
14.如權利要求9所述的電腦程式產品,其中,如果所述段的密度大於一個可調的閾值密度,則該段是預轉換段。
15.在數據處理設備中進行虛擬到真實地址轉換的設備,包括接收用於訪問存儲器的一個位置的虛擬地址的裝置,其中該虛擬地址包括一個段標識符;根據該段標識符進行段表查找以找出一個段表條目的裝置;根據所述段表條目判斷該段是否是一個預轉換段的裝置;如果所述段是一個預轉換段,則根據在所述段表條目中所標識的真實段基地址產生用於訪問對應於所述虛擬地址的存儲器位置的真實地址的裝置。
16.如權利要求15所述的設備,其中,根據所述段表條目判斷所述段是否是預轉換段的裝置包括判斷所述段表條目中的一個預轉換段標記欄位是否具有表示所述段為預轉換段的特定值的裝置。
17.如權利要求15所述的設備,其中,根據所述段表條目判斷所述段是否是預轉換段的裝置包括判斷真實段基地址欄位中是否存儲有一個真實基地址的裝置。
18.如權利要求15所述的設備,其中,根據所述真實段基地址產生用於訪問對應於所述虛擬地址的存儲器位置的真實地址的裝置包括將所述段的段表條目中標識的真實段基地址、所述段內的一個頁面的頁標識符以及所述頁面中的字節偏移拼接起來的裝置。
19.如權利要求15所述的設備,其中,所述拼接裝置包括轉換硬體中的第一加法器和第二加法器,其中,所述真實段基地址和所述頁標識符的拼接由轉換硬體中的第一加法器完成,所述真實段基地址和所述頁標識符的拼接結果與所述頁面中的字節偏移的拼接由轉換硬體中的第二加法器完成。
20.如權利要求15所述的設備,其中,如果所述段的密度大於一個可調的閾值密度,則該段是預轉換段。
全文摘要
本申請涉及在分段作業系統中提供用於頁面轉換的預轉換段的設備和方法。具體地,提供了一種產生用在虛擬到真實地址轉換中的預轉換段的機制,其中,被確定為滿足一個密度閾值的段被提升到預轉換的段的類別。與這些段相關聯的頁面被移動到存儲器的一個連續部分,並更新對應於所述段的段表條目,以將該段指示為預轉換段,並包括存儲器的所述連續部分的真實基地址。在一個實施例中,當移動每一個頁面時,更新其頁表條目以指向該頁的新位置,使得在將所述段提升為預轉換段的期間該頁仍能被訪問。這樣,可以通過將所述真實段基地址、頁標識符以及頁面中的字節偏移連接起來進行虛擬到真實地址的轉換。
文檔編號G06F12/10GK1658172SQ20051000642
公開日2005年8月24日 申請日期2005年1月31日 優先權日2004年2月19日
發明者江綿宙, 蘇加查·卡什亞普 申請人:國際商業機器公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀