本申請(qǐng)涉及在分段操作系統(tǒng)中提供用于頁(yè)面轉(zhuǎn)換的預(yù)轉(zhuǎn)換段的設(shè)備和方法。具體地,提供了一種產(chǎn)生用在虛擬到真實(shí)地址轉(zhuǎn)換中的預(yù)轉(zhuǎn)換段的機(jī)制,其中,被確定為滿足一個(gè)密度閾值的段被提升到預(yù)轉(zhuǎn)換的段的類別。與這些段相關(guān)聯(lián)的頁(yè)面被移動(dòng)到存儲(chǔ)器的一個(gè)連續(xù)部分,并更新對(duì)應(yīng)于所述段的段表?xiàng)l目,以將該段指示為預(yù)轉(zhuǎn)換段,并包括存儲(chǔ)器的所述連續(xù)部分的真實(shí)基地址。在一個(gè)實(shí)施例中,當(dāng)移動(dòng)每一個(gè)頁(yè)面時(shí),更新其頁(yè)表?xiàng)l目以指向該頁(yè)的新位置,使得在將所述段提升為預(yù)轉(zhuǎn)換段的期間該頁(yè)仍能被訪問(wèn)。這樣,可以通過(guò)將所述真實(shí)段基地址、頁(yè)標(biāo)識(shí)符以及頁(yè)面中的字節(jié)偏移連接起來(lái)進(jìn)行虛擬到真實(shí)地址的轉(zhuǎn)換。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)總體上涉及用于訪問(wèn)計(jì)算機(jī)存儲(chǔ)器的部分的地址轉(zhuǎn)換。具體地,本專利技術(shù)涉及通過(guò)提供用于頁(yè)面轉(zhuǎn)換的預(yù)轉(zhuǎn)換段繞過(guò)已知的地址轉(zhuǎn)換系統(tǒng)的轉(zhuǎn)換后備緩沖區(qū)(TLB)分級(jí)結(jié)構(gòu)的機(jī)制。
技術(shù)介紹
隨著現(xiàn)代計(jì)算設(shè)備中更快的處理器和大量的存儲(chǔ)器的出現(xiàn),應(yīng)用程序開(kāi)始使用更大的工作集合,也就是,更大量的數(shù)據(jù)和指令需要被裝入系統(tǒng)存儲(chǔ)器。更快的處理器能夠支持更高級(jí)的多路編程,這接下來(lái)又導(dǎo)致累積工作集合大小的增加。無(wú)論現(xiàn)代計(jì)算設(shè)備中的物理存儲(chǔ)器有什么巨大的增長(zhǎng),存儲(chǔ)器地址映射機(jī)制的大小,例如轉(zhuǎn)換后備緩沖器(TLB)的大小,都沒(méi)有多大增加,這是由于硬件成本和其它的約束。轉(zhuǎn)換后備緩沖器(TLB)是處理器中的一個(gè)表,其包含存儲(chǔ)器的最近被訪問(wèn)的頁(yè)面的虛擬地址和真實(shí)地址之間的交叉引用(相互對(duì)照)。TLB的功能就象主存儲(chǔ)器中最近被訪問(wèn)的頁(yè)的一個(gè)“熱表”或者說(shuō)快速查找索引。當(dāng)出現(xiàn)高速緩存遺漏(差錯(cuò))時(shí),數(shù)據(jù)必須從虛擬存儲(chǔ)器中的地址被取出。該虛擬存儲(chǔ)器地址必須被轉(zhuǎn)換為真實(shí)存儲(chǔ)器地址,或者說(shuō)物理地址。如果所需頁(yè)面的真實(shí)存儲(chǔ)器地址不在TLB中,則當(dāng)用其它手段確定真實(shí)地址時(shí)導(dǎo)致進(jìn)一步的延遲。因?yàn)門LB的大小沒(méi)有隨著物理存儲(chǔ)器的大小的增加而增加,現(xiàn)代計(jì)算設(shè)備中的TLB的范圍不足以支持大的工作集合。結(jié)果,隨著工作集合的變大,TLB遺漏率上升。另外,大的工作集合還導(dǎo)致大的頁(yè)面表占用區(qū)域(footprint)。這使得要滿足TLB遺漏所需的頁(yè)面表?xiàng)l目越來(lái)越?jīng)]有可能在最靠近處理器的高速緩存級(jí)別中找到。從而,滿足TLB遺漏所花的時(shí)間量也增加。對(duì)于大存儲(chǔ)器的機(jī)器來(lái)說(shuō),TLB遺漏已經(jīng)成為關(guān)鍵的性能瓶頸。對(duì)TLB等待時(shí)間問(wèn)題提出的解決方案包括增加存儲(chǔ)器的頁(yè)面的大小,例如超頁(yè)面(superpage),并提供對(duì)多頁(yè)面大小的支持。超頁(yè)面是被設(shè)計(jì)為減少轉(zhuǎn)換后備緩沖區(qū)(TLB)的數(shù)量和映射存儲(chǔ)器所需的頁(yè)面表?xiàng)l目的機(jī)制。超頁(yè)面是用來(lái)增加由每一個(gè)頁(yè)面表?xiàng)l目映射的存儲(chǔ)器的大的虛擬頁(yè)面。超頁(yè)面增加TLB相對(duì)覆蓋范圍,減少TLB遺漏的數(shù)量,需要昂貴的(緩慢)的地址轉(zhuǎn)換。當(dāng)需要映射大的對(duì)象時(shí),超頁(yè)面是有用的,但是不適用于所有應(yīng)用。如果應(yīng)用不要求映射大的對(duì)象,則超頁(yè)面的使用會(huì)導(dǎo)致可觀的內(nèi)部碎片化,而不會(huì)顯著減少轉(zhuǎn)換條目的數(shù)量。對(duì)多頁(yè)面大小(包括超頁(yè)面)提供額外的支持要求對(duì)操作系統(tǒng)進(jìn)行大量的修改,這會(huì)對(duì)轉(zhuǎn)換機(jī)制引入額外的開(kāi)銷。因此,最好有一種改進(jìn)的機(jī)制來(lái)執(zhí)行虛擬地址到真實(shí)地址的轉(zhuǎn)換,減少大存儲(chǔ)器系統(tǒng)的頁(yè)面表所需的大小,同時(shí)使執(zhí)行這樣的轉(zhuǎn)換的開(kāi)銷最小化。
技術(shù)實(shí)現(xiàn)思路
本專利技術(shù)提供了一種產(chǎn)生用在虛擬到真實(shí)地址轉(zhuǎn)換中的預(yù)轉(zhuǎn)換段的機(jī)制。使用這種機(jī)制,被確定為滿足一個(gè)密度閾值的段被提升到預(yù)轉(zhuǎn)換的段的類別。與這些段相關(guān)聯(lián)的頁(yè)面被移動(dòng)到存儲(chǔ)器的物理上連續(xù)的部分,并更新對(duì)應(yīng)于所述段的段表?xiàng)l目,以將該段指示為預(yù)轉(zhuǎn)換段,并包括存儲(chǔ)器的所述連續(xù)部分的真實(shí)基地址。這樣,為了執(zhí)行虛擬到真實(shí)地址的轉(zhuǎn)換,所要做的只是將所述真實(shí)段基地址、頁(yè)標(biāo)識(shí)符以及頁(yè)面中的字節(jié)偏移連接起來(lái)。當(dāng)解析該地址時(shí),頁(yè)標(biāo)識(shí)符提供到存儲(chǔ)器的連續(xù)部分的偏移,從而標(biāo)識(shí)頁(yè)面的基本地址,頁(yè)面中的字節(jié)偏移提供了頁(yè)面中從頁(yè)面的基本地址的偏移。結(jié)果,可以僅根據(jù)真實(shí)段基地址、頁(yè)標(biāo)識(shí)符和頁(yè)面中的字節(jié)偏移來(lái)標(biāo)識(shí)存儲(chǔ)器位置,沒(méi)有必要使用轉(zhuǎn)換后備緩沖區(qū)和頁(yè)面表分級(jí)結(jié)構(gòu)來(lái)解決虛擬到真實(shí)地址的轉(zhuǎn)換。除了上述之外,本專利技術(shù)另外的方面提供一種用于預(yù)轉(zhuǎn)換段的“懶惰”提升機(jī)制。也就是,對(duì)于被示為提升到預(yù)轉(zhuǎn)換段的標(biāo)準(zhǔn)的段,這樣進(jìn)行提升,使得段內(nèi)的頁(yè)面在提升階段是可訪問(wèn)的。使用本專利技術(shù),當(dāng)一個(gè)段滿足提升標(biāo)準(zhǔn)時(shí),將一個(gè)提升請(qǐng)求置于專用內(nèi)核進(jìn)程的隊(duì)列中。當(dāng)隊(duì)列中有一個(gè)請(qǐng)求時(shí)所述專用內(nèi)核進(jìn)程被喚醒,并按如下方式處理所述請(qǐng)求。首先,所述內(nèi)核進(jìn)程判斷是否存在大小足以存儲(chǔ)所述段的存儲(chǔ)器的連續(xù)部分。如果沒(méi)有,則延遲該請(qǐng)求的處理,直到存在足夠大小的連續(xù)存儲(chǔ)器部分可用。如果存在大小足以存儲(chǔ)所述段的存儲(chǔ)器的連續(xù)部分,則將所述段的頁(yè)面一次一個(gè)地拷貝到該存儲(chǔ)器的連續(xù)部分。當(dāng)拷貝每一個(gè)頁(yè)面時(shí),其對(duì)應(yīng)的頁(yè)面表?xiàng)l目被更新到該頁(yè)的新存儲(chǔ)器位置的點(diǎn)。這樣,在提升階段使得頁(yè)面可訪問(wèn)。當(dāng)所有頁(yè)面都被拷貝到存儲(chǔ)器的連續(xù)部分時(shí),該段的段表?xiàng)l目被更新為包括所述存儲(chǔ)器連續(xù)部分的真實(shí)基地址,并設(shè)置預(yù)轉(zhuǎn)換段標(biāo)記字段。之后,可以使用所述段表?xiàng)l目解決對(duì)所述段中的頁(yè)面的訪問(wèn),而不用必須在頁(yè)面表或者轉(zhuǎn)換后備緩沖器中進(jìn)行查找。閱讀下面對(duì)優(yōu)選實(shí)施例的詳細(xì)說(shuō)明后,本領(lǐng)域的普通技術(shù)人員會(huì)明了本專利技術(shù)的上述以及其它特征和優(yōu)點(diǎn)。附圖說(shuō)明在所附的權(quán)利要求中說(shuō)明了據(jù)認(rèn)為是本專利技術(shù)的特征的新穎特征。但是,本專利技術(shù)本身以及其優(yōu)選的使用方式,以及其目的和優(yōu)點(diǎn),可以結(jié)合下面對(duì)說(shuō)明性實(shí)施例的詳細(xì)說(shuō)明以及附圖得到最好的理解。附圖中圖1是可以實(shí)現(xiàn)本專利技術(shù)的計(jì)算設(shè)備的舉例的框圖;圖2是一個(gè)示意圖,用于說(shuō)明一種現(xiàn)有技術(shù)的方法,用于將虛擬地址轉(zhuǎn)換為用于訪問(wèn)物理存儲(chǔ)器中的指令/數(shù)據(jù)的物理地址;圖3圖解了對(duì)可變大小數(shù)據(jù)塊的分段虛擬地址映射的傳統(tǒng)形式;圖4圖示了本專利技術(shù)的用于預(yù)轉(zhuǎn)換段的虛擬到真實(shí)地址轉(zhuǎn)換機(jī)制的舉例的概要圖;圖5圖示了根據(jù)本專利技術(shù)的一個(gè)實(shí)施例,用于將一個(gè)段提升為預(yù)轉(zhuǎn)換段的處理的一個(gè)例子;圖6的流程圖概要圖示了根據(jù)本專利技術(shù)的一個(gè)實(shí)施例,用于將一個(gè)段提升為預(yù)轉(zhuǎn)換段的舉例的操作;圖7的流程圖概要圖示了當(dāng)進(jìn)行虛擬到真實(shí)地址轉(zhuǎn)換時(shí),本專利技術(shù)的舉例的操作;圖8示意示了根據(jù)本專利技術(shù)的一個(gè)實(shí)施例,用于預(yù)轉(zhuǎn)換段的“懶惰”段提升機(jī)制的一個(gè)例子;圖9的流程圖概要圖示了當(dāng)對(duì)預(yù)轉(zhuǎn)換段進(jìn)行“懶惰”段提升時(shí),本專利技術(shù)的舉例的操作。具體實(shí)施例方式本專利技術(shù)提供了用于產(chǎn)生預(yù)轉(zhuǎn)換段,以繞過(guò)用于頁(yè)表轉(zhuǎn)換的轉(zhuǎn)換后備緩沖器分級(jí)結(jié)構(gòu)的設(shè)備和方法。因而,本專利技術(shù)在計(jì)算設(shè)備,比如獨(dú)立的計(jì)算設(shè)備、客戶計(jì)算設(shè)備、服務(wù)器計(jì)算設(shè)備等中實(shí)現(xiàn)。圖1是可以實(shí)現(xiàn)本專利技術(shù)的計(jì)算設(shè)備的一個(gè)例子。當(dāng)然,對(duì)圖1的舉例的計(jì)算設(shè)備所示的結(jié)構(gòu)可以進(jìn)行許多修改而不脫離本專利技術(shù)的實(shí)質(zhì)范圍,圖1不是要對(duì)可以實(shí)現(xiàn)本專利技術(shù)的計(jì)算設(shè)備的類型進(jìn)行任何限制。見(jiàn)圖1,根據(jù)本專利技術(shù)的一個(gè)實(shí)施例,圖示了可以實(shí)現(xiàn)本專利技術(shù)的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)100可以是包括連接到系統(tǒng)總線106的多個(gè)處理器102和104的對(duì)稱多處理器(SMP)系統(tǒng)。或者,也可以使用單處理器系統(tǒng)。連接到系統(tǒng)總線106的還有存儲(chǔ)器控制器/高速緩存108,以提供到本地存儲(chǔ)器109的接口。I/O總線橋110連接到系統(tǒng)總線206,提供到I/O總線112的接口。存儲(chǔ)器控制器/高速緩存108和I/O總線橋110也可以如圖所示集成在一起。存儲(chǔ)器控制器/高速緩存108最好包括虛擬到真實(shí)地址轉(zhuǎn)換模塊150,其目的是將一個(gè)或者多個(gè)處理器102、104提供的虛擬地址轉(zhuǎn)換為用于訪問(wèn)本地存儲(chǔ)器109中的存儲(chǔ)器位置的真實(shí)地址,或者說(shuō)物理地址。虛擬到真實(shí)地址轉(zhuǎn)換模塊150可以利用本地存儲(chǔ)器109中的段表160和頁(yè)表170進(jìn)行該虛擬到真實(shí)地址轉(zhuǎn)換,如后所述。連接到I/O總線112的外設(shè)部件互連(PCI)總線橋114提供到PCI本地總線116的接口。可以向PCI本地總線116連接許多調(diào)制解調(diào)器。典型的PCI總線應(yīng)用支持四個(gè)PCI擴(kuò)展槽或者內(nèi)裝連接器。可以通過(guò)經(jīng)由內(nèi)裝連接器連接到PCI本地總線116的調(diào)制解調(diào)器118和網(wǎng)絡(luò)適配器120提供到其它計(jì)算設(shè)備的通信鏈接。另本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
在數(shù)據(jù)處理設(shè)備中進(jìn)行虛擬到真實(shí)地址轉(zhuǎn)換的方法,包括:接收用于訪問(wèn)存儲(chǔ)器的一個(gè)位置的虛擬地址,其中該虛擬地址包括一個(gè)段標(biāo)識(shí)符;根據(jù)該段標(biāo)識(shí)符進(jìn)行段表查找,找出一個(gè)段表?xiàng)l目;根據(jù)所述段表?xiàng)l目判斷該段是否是一個(gè)預(yù)轉(zhuǎn)換段; 如果所述段是一個(gè)預(yù)轉(zhuǎn)換段,則根據(jù)在所述段表?xiàng)l目中所標(biāo)識(shí)的真實(shí)段基地址產(chǎn)生用于訪問(wèn)對(duì)應(yīng)于所述虛擬地址的存儲(chǔ)器位置的真實(shí)地址。
【技術(shù)特征摘要】
US 2004-2-19 10/782,6761.在數(shù)據(jù)處理設(shè)備中進(jìn)行虛擬到真實(shí)地址轉(zhuǎn)換的方法,包括接收用于訪問(wèn)存儲(chǔ)器的一個(gè)位置的虛擬地址,其中該虛擬地址包括一個(gè)段標(biāo)識(shí)符;根據(jù)該段標(biāo)識(shí)符進(jìn)行段表查找,找出一個(gè)段表?xiàng)l目;根據(jù)所述段表?xiàng)l目判斷該段是否是一個(gè)預(yù)轉(zhuǎn)換段;如果所述段是一個(gè)預(yù)轉(zhuǎn)換段,則根據(jù)在所述段表?xiàng)l目中所標(biāo)識(shí)的真實(shí)段基地址產(chǎn)生用于訪問(wèn)對(duì)應(yīng)于所述虛擬地址的存儲(chǔ)器位置的真實(shí)地址。2.如權(quán)利要求1所述的方法,其中,如果所述段不是一個(gè)預(yù)轉(zhuǎn)換段,則該方法還包括在轉(zhuǎn)換后備緩沖器和頁(yè)表中的至少一個(gè)中查找所述虛擬地址,從而產(chǎn)生一個(gè)用于訪問(wèn)對(duì)應(yīng)于所述虛擬地址的存儲(chǔ)器位置的真實(shí)地址。3.如權(quán)利要求1所述的方法,其中,根據(jù)所述段表?xiàng)l目判斷所述段是否是預(yù)轉(zhuǎn)換段的步驟包括判斷所述段表?xiàng)l目中的一個(gè)預(yù)轉(zhuǎn)換段標(biāo)記字段是否具有表示所述段為預(yù)轉(zhuǎn)換段的特定值。4.如權(quán)利要求1所述的方法,其中,根據(jù)所述段表?xiàng)l目判斷所述段是否是預(yù)轉(zhuǎn)換段的步驟包括判斷真實(shí)段基地址字段中是否存儲(chǔ)有一個(gè)真實(shí)基地址。5.如權(quán)利要求1所述的方法,其中,根據(jù)所述真實(shí)段基地址產(chǎn)生用于訪問(wèn)對(duì)應(yīng)于所述虛擬地址的存儲(chǔ)器位置的真實(shí)地址的步驟包括將所述段的段表?xiàng)l目中標(biāo)識(shí)的真實(shí)段基地址、所述段內(nèi)的一個(gè)頁(yè)面的頁(yè)標(biāo)識(shí)符以及所述頁(yè)面中的字節(jié)偏移拼接起來(lái)。6.如權(quán)利要求5所述的方法,其中,所述真實(shí)段基地址和所述頁(yè)標(biāo)識(shí)符的拼接由轉(zhuǎn)換硬件中的第一加法器完成,其中,所述真實(shí)段基地址和所述頁(yè)標(biāo)識(shí)符的拼接結(jié)果與所述頁(yè)面中的字節(jié)偏移的拼接由轉(zhuǎn)換硬件中的第二加法器完成。7.如權(quán)利要求1所述的方法,其中,如果所述段可以被整體訪問(wèn),則所述段為預(yù)轉(zhuǎn)換段。8.如權(quán)利要求1所述的方法,其中,如果所述段的密度大于一個(gè)可調(diào)的閾值密度,則該段是預(yù)轉(zhuǎn)換段。9.在數(shù)據(jù)處理設(shè)備中進(jìn)行虛擬到真實(shí)地址轉(zhuǎn)換的計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品,包括第一指令,用于接收用于訪問(wèn)存儲(chǔ)器的一個(gè)位置的虛擬地址,其中該虛擬地址包括一個(gè)段標(biāo)識(shí)符;第二指令,用于根據(jù)該段標(biāo)識(shí)符進(jìn)行段表查找,找出一個(gè)段表?xiàng)l目;第三指令,用于根據(jù)所述段表?xiàng)l目判斷該段是否是一個(gè)預(yù)轉(zhuǎn)換段;第四指令,用于如果所述段是一個(gè)預(yù)轉(zhuǎn)換段,則根據(jù)在所述段表?xiàng)l目中所標(biāo)識(shí)的真實(shí)段基地址產(chǎn)生用于訪問(wèn)對(duì)應(yīng)于所述虛擬地址的存儲(chǔ)器位置的真實(shí)地址。10.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,其中,根據(jù)所...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:江綿宙,蘇加查卡什亞普,
申請(qǐng)(專利權(quán))人:國(guó)際商業(yè)機(jī)器公司,
類型:發(fā)明
國(guó)別省市:US[美國(guó)]
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。