專利名稱:自適應的大頁分配方法及裝置的制作方法
技術(shù)領域:
本申請涉及計算機技術(shù)領域,特別涉及一種自適應的大頁分配方法及裝置。
背景技術(shù):
典型的計算終端中通常包含一個CPU (Central Processing Unit,中央處理器) 和一個物理內(nèi)存,若干用戶進程共用該物理內(nèi)存?,F(xiàn)有技術(shù)中,對于每個用戶進程,都可以通過虛地址實現(xiàn)對物理內(nèi)存的訪問,即當某個用戶程序訪問虛地址時,CPU通過查詢 TLB (Translation Look side Buffer,轉(zhuǎn)換旁視緩沖器)執(zhí)行虛實轉(zhuǎn)換。虛地址是虛空間的描述符,物理地址是物理空間的描述符,每個用戶進程都有自己的虛空間,每個虛空間可以對應不同的物理空間。TLB中的條目記錄的就是虛空間與物理空間的對應關(guān)系,當根據(jù)用戶進程訪問的虛空間查詢TLB時,如果無法找到對應的物理空間,則表示TLB不命中(稱為 TLB-MISS),在TLB中增加條目記錄該虛空間與當前所分配的物理空間的對應關(guān)系?,F(xiàn)有計算終端的CPU通過提供了一種大頁的方式,來減少TLB-MISS的次數(shù),每個頁面都對應了一定大小的虛空間和實空間。該大頁方式的原理就是每一個TLB條目,從原來一個虛擬頁面尋址一個物理頁面,變成尋址多個物理頁面,不同的物理頁面數(shù)稱為不同的頁面粒度。由此同樣多的TLB條目就可以映射更大的物理空間,從而減少了 TLB-MISS的次數(shù)。發(fā)明人在對現(xiàn)有技術(shù)的研究過程中發(fā)現(xiàn),現(xiàn)有技術(shù)中通常規(guī)定固定頁面粒度的大頁配置,例如,均限定為512個物理頁面的配置,則當計算終端無法找到滿足該固定頁面粒度的大頁配置時,就會造成申請失??;另外,當虛擬頁面不能正好匹配固定頁面粒度的大頁配置時,將造成內(nèi)存資源浪費,例如,計算終端配置的頁面粒度為256頁,而虛擬頁面為264 頁時,按照現(xiàn)有方式則需要為該虛擬頁面分配兩個大頁(每個大頁包含256個物理頁面), 但由于第二個物理大頁中僅需要使用8個物理頁面,因此造成了內(nèi)存資源的浪費。
發(fā)明內(nèi)容
本申請實施例的目的在于提供一種自適應的大頁分配方法及裝置,以解決現(xiàn)有技術(shù)中的大頁分配方式,容易配置失敗且浪費內(nèi)存資源的問題。為解決上述技術(shù)問題,本申請實施例提供如下技術(shù)方案一種自適應的大頁分配方法,包括獲取用戶進程的虛地址空間;將所述虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,得到若干大頁的組合;將所述匹配得到的若干大頁的組合分配給所述虛地址空間。還包括預先配置包含若干頁面粒度的大頁策略。所述若干頁面粒度包括512物理頁面、256物理頁面、64物理頁面、8物理頁面。所述獲取用戶進程的虛擬地址空間包括
獲取用戶進程的虛地址;根據(jù)所述虛地址計算所述虛地址對應的虛地址空間,得到所述虛地址空間的起始地址和結(jié)束地址。將所述虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,得到若干大頁的組合包括將所述虛地址空間轉(zhuǎn)換為對應的虛擬頁面;將所述虛擬頁面依次與所述大頁策略中按照從高到低的順序排列的頁面粒度進行比較;根據(jù)比較的結(jié)果生成若干大頁的組合。所述將所述虛擬頁面依次與所述大頁策略中按照從高到低的順序排列的頁面粒度進行比較包括按照頁面粒度從高到低的順序提取一種頁面粒度;判斷所述虛擬頁面是否大于所提取的頁面粒度的大頁數(shù),若是,則為所述虛擬地址空間分配與所提取的頁面粒度對應的大頁,并在未提取完所有頁面粒度時,返回所述按照頁面粒度從高到低的順序提取一種頁面粒度的步驟;若否,并在未提取完所有頁面粒度時,直接返回所述按照頁面粒度從高到低的順序提取一種頁面粒度的步驟;當按照頁面粒度從高到低的順序提取完所有頁面粒度后,為剩余的虛擬頁面分配與其大小一致的物理頁面。還包括當所述虛擬頁面大于所提取的頁面粒度的大頁數(shù)時,判斷物理內(nèi)存中是否有滿足與所提取的頁面粒度對應的大頁,若是,則執(zhí)行所述為虛擬地址空間分配與所提取的頁面粒度對應的大頁的步驟,否則,執(zhí)行所述按照頁面粒度從高到低的順序提取一種頁面粒度的步驟。一種自適應的大頁分配裝置,包括獲取單元,用于獲取用戶進程的虛地址空間;匹配單元,用于將所述虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,得到若干大頁的組合;分配單元,用于將所述匹配得到的若干大頁的組合分配給所述虛地址空間。還包括預置單元,用于預先配置包含若干頁面粒度的大頁策略。所述獲取單元包括虛地址獲取單元,用于獲取用戶進程的虛地址;虛地址計算單元,用于根據(jù)所述虛地址計算所述虛地址對應的虛地址空間,得到所述虛地址空間的起始地址和結(jié)束地址。所述匹配單元包括空間轉(zhuǎn)換單元,用于將所述虛地址空間轉(zhuǎn)換為對應的虛擬頁面;頁面比較單元,用于將所述虛擬頁面依次與所述大頁策略中按照從高到低的順序排列的頁面粒度進行比較;大頁組合單元,用于根據(jù)比較的結(jié)果生成若干大頁的組合。
由以上本申請實施例提供的技術(shù)方案可見,本申請實施例中獲取用戶進程的虛地址空間,將虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,將匹配得到的若干大頁的組合分配給所述虛地址空間。本申請采用大頁配置策略,將虛地址空間與不同頁面粒度進行匹配獲得大頁組合,由于未限制固定的頁面粒度,因此可以靈活地進行大頁分配,不會造成物理頁面的申請失敗;并且,由于頁面粒度不固定,因此所分配的大頁組合不會占用多余的內(nèi)存資源,提高了內(nèi)存資源的利用率。
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本申請自適應的大頁分配方法的第一實施例流程圖;圖2為本申請自適應的大頁分配方法的第二實施例流程圖;圖3為本申請自適應的大頁分配裝置的第一實施例框圖;圖4A為本申請自適應的大頁分配裝置的第二實施例框圖;圖4B為圖4A中獲取單元的實施例框圖;圖4C為圖4A中匹配單元的實施例框圖。
具體實施例方式在如下本申請的多個實施例中,有些實施例提供了一種自適應的大頁分配方法, 有些實施例提供了一種自適應的大頁分配裝置。為了使本技術(shù)領域的人員更好地理解本申請實施例中的技術(shù)方案,并使本申請實施例的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本申請實施例中技術(shù)方案作進一步詳細的說明。參見圖1,為本申請自適應的大頁分配方法的第一實施例流程圖步驟101 獲取用戶進程的虛地址空間。具體的,獲取用戶進程的虛地址,根據(jù)所述虛地址計算所述虛地址對應的虛地址空間,得到所述虛地址空間的起始地址和結(jié)束地址。步驟102 將虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,得到若干大頁的組合。具體的,將虛地址空間轉(zhuǎn)換為對應的虛擬頁面,將所述虛擬頁面依次與所述大頁策略中按照從高到低的順序排列的頁面粒度進行比較,根據(jù)比較的結(jié)果生成若干大頁的組
I=I O其中,頁面粒度可以包括包含512物理頁面、256物理頁面、64物理頁面、8物理頁面。步驟103 將匹配得到的若干大頁的組合分配給該虛地址空間。參見圖2,為本申請自適應的大頁分配方法的第二實施例流程圖,該實施例詳細示出了本申請中自適應的大頁分配過程
步驟201 預先配置包含若干頁面粒度的大頁策略。頁面粒度可以包括包含512物理頁面、256物理頁面、64物理頁面、8物理頁面。 需要說明的是,本申請實施例不限制于上述頁面粒度的配置,可以根據(jù)計算終端的實際需要靈活配置頁面粒度。步驟202 獲取用戶進程的虛地址。在計算終端的操作系統(tǒng)虛擬內(nèi)存機制中,用戶進程的虛擬內(nèi)存由若干虛地址空間組成,用戶進程所要訪問的虛地址均屬于這些虛地址空間中。步驟203 根據(jù)虛地址計算該虛地址對應的虛地址空間,得到該虛地址空間的起始地址和結(jié)束地址。根據(jù)虛擬地址計算出該虛地址所處的虛地址空間時,根據(jù)虛地址空間在操作系統(tǒng)核心中的組織方式,例如,可以采用現(xiàn)有技術(shù)中的紅黑樹搜索方式,即通過搜索紅黑樹得到該虛地址空間的描述符,根據(jù)該描述符可以獲取虛地址空間的起始地址和結(jié)束地址,起始地址和結(jié)束地址用[start end]表示。步驟204 將虛地址空間轉(zhuǎn)換為對應的虛擬頁面。計算終端的操作系統(tǒng)可以設定基礎頁面的大小,例如一個基礎頁面有4K,則對于 8K的虛地址空間就相應包含2個虛擬頁面,同理,8K的物理內(nèi)存空間也相應包含2個物理頁面。在得到虛地址空間的大小后,用虛地址空間的大小除以基礎頁面的大小就可以得到轉(zhuǎn)換后的虛擬頁面。步驟205 將虛擬頁面依次與大頁策略中按照從高到低的順序排列的頁面粒度進行比較。具體的,按照頁面粒度從高到低的順序提取一種頁面粒度;判斷虛擬頁面是否大于所提取的頁面粒度的大頁數(shù),若是,則為該虛擬地址空間分配與所提取的頁面粒度對應的大頁,并在未提取完所有頁面粒度時,返回所述按照頁面粒度從高到低的順序提取一種頁面粒度的步驟;若否,并在未提取完所有頁面粒度時,直接返回所述按照頁面粒度從高到低的順序提取一種頁面粒度的步驟;當按照頁面粒度從高到低的順序提取完所有頁面粒度后,為剩余的虛擬頁面分配與其大小一致的物理頁面。以虛地址空間為264頁面為例,現(xiàn)有技術(shù)中,當固定的頁面粒度為256物理頁面時,則需要為該虛地址空間分配2個256物理頁面的大頁,相當于浪費了 248物理頁面的物理內(nèi)存空間;而采用本申請實施例后,可以靈活地為該虛擬地址空間分配一個256物理頁面的大頁和一個8物理頁面的大頁,因此不會浪費物理內(nèi)存空間。另外,需要說明的是,上述實施過程中均假設內(nèi)存中含有符合頁面粒度的大頁。進一步的,當判斷虛擬頁面大于所提取的頁面粒度的大頁數(shù)時,還可以判斷物理內(nèi)存的使用情況,即判斷此時內(nèi)存中是否有滿足與所提取的頁面粒度對應的大頁。例如,假設虛擬頁面數(shù)為66頁,此時滿足64物理頁面的頁面粒度,但在實際的物理內(nèi)存中沒有64物理頁面的大頁,此時操作系統(tǒng)核心則無法為其分配64物理頁面的大頁,因而需要轉(zhuǎn)入下一步判定是否滿足下一級頁面粒度32物理頁面的內(nèi)存空間,如果滿足,則為其分配32物理頁面的大頁,否則,轉(zhuǎn)入下一個頁面粒度的判斷,知道根據(jù)物理內(nèi)存的實際情況分配完大頁。本申請實施例中對于判斷物理內(nèi)存的內(nèi)存管理機制,可以采用現(xiàn)有對內(nèi)存進行監(jiān)
7測的方式,具體的監(jiān)測過程在此不再贅述。步驟206 根據(jù)比較的結(jié)果生成若干大頁的組合。步驟207 將匹配得到的若干大頁的組合分配給虛地址空間。下面以為361頁面的虛地址空間進行大頁分配為例描述本申請實施例的分配過程假設預先配置的頁面粒度按照從高到低的順序包括512物理頁面、256物理頁面、 64物理頁面、8物理頁面。當確定用戶進程需要訪問的虛空間大小為361頁面時,按照如下過程將361頁面的虛空間與各個頁面粒度進行比較將虛空間361頁面與最高的512物理頁面進行比較;由于361頁面小于512物理頁面,因此順序比較下一個頁面粒度,將361頁面與256物理頁面進行比較,由于361頁面大于256物理頁面,因此可以為虛地址空間分配一個256物理頁面的大頁,361頁面減去已分配的256物理頁面,剩余105頁面;將105頁面順序與下一個頁面粒度64物理頁面進行比較,由于105頁面大于64物理頁面,因此繼續(xù)為虛空間地址分配一個64物理頁面的大頁,105頁面減去已分配的64物理頁面,剩余41頁面;將41頁面順序與下一個頁面粒度8物理頁面進行比較,由于41頁面大于8物理頁面, 因此繼續(xù)為虛空間地址分配五個8物理頁面的大頁,41頁面減去已分配的40物理頁面,剩余1頁面;此時所有的頁面粒度已經(jīng)比較完畢,將該1頁面按照系統(tǒng)中的基礎頁面進行處理,即分配1物理頁面。通過上述自適應的大頁分配過程,得到的大頁組合包括1個256物理頁面,1個64 物理頁面,5個8物理頁面和1個基礎物理頁面,將上述大頁組合分配給361頁面的虛地址空間即可。由此可知,由于未限制固定的頁面粒度,因此采用本申請實施例的自適應分配方式,可以靈活地進行大頁分配,不會造成物理頁面的申請失??;并且,由于頁面粒度不固定, 因此所分配的大頁組合不會占用多余的內(nèi)存資源,提高了內(nèi)存資源的利用率。與本申請自適應的大頁分配方法的實施例相對應,本申請還提供了自適應的大頁分配裝置的實施例。參見圖3,為本申請自適應的大頁分配裝置的第一實施例框圖該大頁分配裝置包括獲取單元310、匹配單元320和分配單元330。其中,獲取單元310,用于獲取用戶進程的虛地址空間;匹配單元320,用于將所述虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,得到若干大頁的組合;分配單元330,用于將所述匹配得到的若干大頁的組合分配給所述虛地址空間。參見圖4A,為本申請自適應的大頁分配裝置的第二實施例框圖該大頁分配裝置包括預置單元410、獲取單元420、匹配單元430和分配單元 440。其中,預置單元410,用于預先配置包含若干頁面粒度的大頁策略。獲取單元420,用于獲取用戶進程的虛地址空間;匹配單元430,用于將所述虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,得到若干大頁的組合;分配單元440,用于將所述匹配得到的若干大頁的組合分配給所述虛地址空間。參見圖4B,為圖4A中獲取單元420的實施例框圖
該獲取單元420包括虛地址獲取單元421,用于獲取用戶進程的虛地址;虛地址計算單元422,用于根據(jù)所述虛地址計算所述虛地址對應的虛地址空間,得到所述虛地址空間的起始地址和結(jié)束地址。參見圖4C,為圖4A中匹配單元430的實施例框圖該匹配單元430包括空間轉(zhuǎn)換單元431,用于將所述虛地址空間轉(zhuǎn)換為對應的虛擬頁面;頁面比較單元432,用于將所述虛擬頁面依次與所述大頁策略中按照從高到低的順序排列的頁面粒度進行比較;大頁組合單元433,用于根據(jù)比較的結(jié)果生成若干大頁的組合。具體的,頁面比較單元432按照頁面粒度從高到低的順序提取一種頁面粒度;判斷所述虛擬頁面是否大于所提取的頁面粒度的大頁數(shù),若是,則為所述虛擬地址空間分配與所提取的頁面粒度對應的大頁,并在未提取完所有頁面粒度時,返回執(zhí)行所述按照頁面粒度從高到低的順序提取一種頁面粒度;若否,并在未提取完所有頁面粒度時,直接返回執(zhí)行所述按照頁面粒度從高到低的順序提取一種頁面粒度;當按照頁面粒度從高到低的順序提取完所有頁面粒度后,為剩余的虛擬頁面分配與其大小一致的物理頁面。通過以上的實施方式的描述可知,本申請實施例中獲取用戶進程的虛地址空間, 將虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,將匹配得到的若干大頁的組合分配給所述虛地址空間。本申請采用大頁配置策略,將虛地址空間與不同頁面粒度進行匹配獲得大頁組合,由于未限制固定的頁面粒度,因此可以靈活地進行大頁分配, 不會造成物理頁面的申請失?。徊⑶?,由于頁面粒度不固定,因此所分配的大頁組合不會占用多余的內(nèi)存資源,提高了內(nèi)存資源的利用率。本領域的技術(shù)人員可以清楚地了解到本申請實施例中的技術(shù)可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請實施例中的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本申請各個實施例或者實施例的某些部分所述的方法。本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上所述的本申請實施方式,并不構(gòu)成對本申請保護范圍的限定。任何在本申請的精神和原則之內(nèi)所作的修改、等同替換和改進等,均應包含在本申請的保護范圍之內(nèi)。
權(quán)利要求
1.一種自適應的大頁分配方法,其特征在于,包括 獲取用戶進程的虛地址空間;將所述虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,得到若干大頁的組合;將所述匹配得到的若干大頁的組合分配給所述虛地址空間。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括預先配置包含若干頁面粒度的大頁策略。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述若干頁面粒度包括512物理頁面、 256物理頁面、64物理頁面、8物理頁面。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取用戶進程的虛擬地址空間包括 獲取用戶進程的虛地址;根據(jù)所述虛地址計算所述虛地址對應的虛地址空間,得到所述虛地址空間的起始地址和結(jié)束地址。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,得到若干大頁的組合包括將所述虛地址空間轉(zhuǎn)換為對應的虛擬頁面;將所述虛擬頁面依次與所述大頁策略中按照從高到低的順序排列的頁面粒度進行比較;根據(jù)比較的結(jié)果生成若干大頁的組合。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述將所述虛擬頁面依次與所述大頁策略中按照從高到低的順序排列的頁面粒度進行比較包括按照頁面粒度從高到低的順序提取一種頁面粒度;判斷所述虛擬頁面是否大于所提取的頁面粒度的大頁數(shù),若是,則為所述虛擬地址空間分配與所提取的頁面粒度對應的大頁,并在未提取完所有頁面粒度時,返回所述按照頁面粒度從高到低的順序提取一種頁面粒度的步驟;若否,并在未提取完所有頁面粒度時,直接返回所述按照頁面粒度從高到低的順序提取一種頁面粒度的步驟;當按照頁面粒度從高到低的順序提取完所有頁面粒度后,為剩余的虛擬頁面分配與其大小一致的物理頁面。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,還包括當所述虛擬頁面大于所提取的頁面粒度的大頁數(shù)時,判斷物理內(nèi)存中是否有滿足與所提取的頁面粒度對應的大頁,若是,則執(zhí)行所述為虛擬地址空間分配與所提取的頁面粒度對應的大頁的步驟,否則,執(zhí)行所述按照頁面粒度從高到低的順序提取一種頁面粒度的步馬聚ο
8.—種自適應的大頁分配裝置,其特征在于,包括 獲取單元,用于獲取用戶進程的虛地址空間;匹配單元,用于將所述虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,得到若干大頁的組合;分配單元,用于將所述匹配得到的若干大頁的組合分配給所述虛地址空間。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括預置單元,用于預先配置包含若干頁面粒度的大頁策略。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述獲取單元包括 虛地址獲取單元,用于獲取用戶進程的虛地址;虛地址計算單元,用于根據(jù)所述虛地址計算所述虛地址對應的虛地址空間,得到所述虛地址空間的起始地址和結(jié)束地址。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述匹配單元包括 空間轉(zhuǎn)換單元,用于將所述虛地址空間轉(zhuǎn)換為對應的虛擬頁面;頁面比較單元,用于將所述虛擬頁面依次與所述大頁策略中按照從高到低的順序排列的頁面粒度進行比較;大頁組合單元,用于根據(jù)比較的結(jié)果生成若干大頁的組合。
全文摘要
本申請實施例公開了一種自適應的大頁分配方法及裝置,包括獲取用戶進程的虛地址空間;將所述虛地址空間的范圍分別與所配置的大頁策略中的頁面粒度進行匹配,得到若干大頁的組合;將所述匹配得到的若干大頁的組合分配給所述虛地址空間。本申請采用大頁配置策略,將虛地址空間與不同頁面粒度進行匹配獲得大頁組合,由于未限制固定的頁面粒度,因此可以靈活地進行大頁分配,不會造成物理頁面的申請失?。徊⑶?,由于頁面粒度不固定,因此所分配的大頁組合不會占用多余的內(nèi)存資源,提高了內(nèi)存資源的利用率。
文檔編號G06F12/02GK102446136SQ20101050913
公開日2012年5月9日 申請日期2010年10月14日 優(yōu)先權(quán)日2010年10月14日
發(fā)明者殷紅武, 王星焱, 許國春, 鄭巖, 黃高陽 申請人:無錫江南計算技術(shù)研究所