欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

內(nèi)存分配方法、內(nèi)存分配裝置及服務(wù)器與流程

文檔序號:12363544閱讀:206來源:國知局
內(nèi)存分配方法、內(nèi)存分配裝置及服務(wù)器與流程

本發(fā)明涉及微處理器設(shè)計領(lǐng)域,尤其涉及一種內(nèi)存分配方法、內(nèi)存分配裝置及服務(wù)器。



背景技術(shù):

存儲系統(tǒng)是指計算機中由存放程序和數(shù)據(jù)的各種存儲設(shè)備、控制部件以及管理信息調(diào)度的硬件和軟件所組成的系統(tǒng)。現(xiàn)代計算機采用由多級存儲設(shè)備組成的存儲體系,包括高速緩沖存儲器cache、主存儲器、外存儲器三級,其中,主存儲器又稱主存、內(nèi)存,普遍采用動態(tài)隨機存取存儲器(Dynamic Random Access Memory,簡稱DRAM)。計算機中,存儲系統(tǒng)的存儲容量應(yīng)確保各種應(yīng)用程序的需要,存儲系統(tǒng)的存儲速度應(yīng)盡量與中央處理器(Central Processing Unit,簡稱CPU)的處理速度相匹配。但是,由于CPU性能提升的速度遠大于DRAM性能提升的速度,因此,形成了CPU計算性能和存儲性能之間的速度差,稱為存儲墻問題。

為了提高存儲系統(tǒng)的存儲性能,提出了各種各樣的管理策略,例如預(yù)取策略。所謂預(yù)取策略,是指存儲系統(tǒng)根據(jù)CPU發(fā)出的地址歷史信息,預(yù)測CPU將要訪問的地址,提前將該預(yù)測的地址從下級存儲設(shè)備中取到上級存儲設(shè)備中(比如,從內(nèi)存預(yù)取到cache中),加快了應(yīng)用程序的執(zhí)行速度。圖1為現(xiàn)有的存儲系統(tǒng)的結(jié)構(gòu)示意圖,如圖1所示,內(nèi)存空間配置統(tǒng)一的管理策略,當應(yīng)用程序發(fā)出頁面請求時,操作系統(tǒng)將頁面請求分配到配置了管理策略的內(nèi)存空間中。

但是,隨著處理器性能的提升,處理器可以同時執(zhí)行多個線程,不同的線程具有不同的訪存需求和訪存特點,例如:計算密集型的應(yīng)用對訪存延遲比較敏感,而圖像和視頻應(yīng)用則對訪存帶寬比較敏感。由于應(yīng)用程序不同的訪存需求和訪存特點,對存儲系統(tǒng)的管理策略提出了不同的要求,尤其是當這些線程交織在一起,內(nèi)存控制器面對的訪存請求具有非常大的不規(guī)則性和 不可預(yù)測性,從而使得存儲系統(tǒng)的存儲性能受到了嚴重影響。而且,隨著多核處理器的發(fā)展,多線程訪存行為更加復(fù)雜。圖2為多核處理器的結(jié)構(gòu)示意圖,如圖2所示,多核處理器一般包含幾個對稱的處理器核,它們各自擁有私有的一級/二級緩存,通過互連總線訪問共享的最后一級緩存和內(nèi)存控制器。由于多個處理器核同時訪問共享的內(nèi)存控制器,更加加劇了對內(nèi)存資源的競爭,使得多線程訪存多樣性問題和存儲墻問題變得更為突出。

現(xiàn)有技術(shù)中,針對多線程的訪存多樣性問題,可以采用線程分簇的內(nèi)存調(diào)度,將線程分為延遲敏感型和帶寬敏感型兩類,內(nèi)存控制器在進行命令調(diào)度時,優(yōu)先調(diào)度延遲敏感型的線程,對于帶寬敏感型的線程,通過周期性地重排線程的優(yōu)先級來保證線程間的公平性。但是,線程分簇調(diào)度可以平衡存儲系統(tǒng)的吞吐率和公平性問題,卻不能發(fā)揮DRAM的最大性能,影響了存儲系統(tǒng)的存儲效率,加劇了存儲墻問題。



技術(shù)實現(xiàn)要素:

本發(fā)明提供一種內(nèi)存分配方法、內(nèi)存分配裝置及服務(wù)器,可以針對應(yīng)用程序的訪存特征采取差異化的管理策略,解決了多線程訪存多樣性問題,并提升了存儲系統(tǒng)的存儲效率,緩解了存儲墻問題。

第一方面,本發(fā)明提供一種內(nèi)存分配方法,包括:

接收應(yīng)用程序的頁面請求,所述頁面請求中攜帶所述應(yīng)用程序的標識;

確定所述應(yīng)用程序的標識對應(yīng)的訪存特征;

根據(jù)所述應(yīng)用程序的訪存特征確定管理策略,并將所述應(yīng)用程序的頁面請求分配至所述管理策略對應(yīng)的地址空間中。

結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述確定所述應(yīng)用程序的標識對應(yīng)的訪存特征,包括:

在應(yīng)用程序特征表中查詢是否存在所述應(yīng)用程序的標識,所述應(yīng)用程序特征表中包括多個應(yīng)用程序的標識及對應(yīng)的訪存特征;

若存在,則獲得所述應(yīng)用程序的標識對應(yīng)的訪存特征;

若不存在,則通過自學習過程或者調(diào)用所述應(yīng)用程序的預(yù)設(shè)應(yīng)用程序編程接口API,獲得所述應(yīng)用程序的訪存特征,并將所述應(yīng)用程序的標識及對應(yīng)的訪存特征存儲在所述應(yīng)用程序特征表中。

結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,所述通過自學習過程獲得所述應(yīng)用程序的訪存特征,包括:

將所述應(yīng)用程序的連續(xù)N次頁面請求分配至一個管理策略對應(yīng)的地址空間中,統(tǒng)計所述管理策略對應(yīng)的地址空間與所述應(yīng)用程序之間的親和度;N為大于等于1的整數(shù);

判斷所述親和度是否大于預(yù)設(shè)閾值;

若是,則根據(jù)所述親和度獲得所述應(yīng)用程序的訪存特征;

若否,則重新分配一個管理策略對應(yīng)的地址空間,直至管理策略對應(yīng)的地址空間與所述應(yīng)用程序之間的親和度大于預(yù)設(shè)閾值;或者,直至不存在其他管理策略對應(yīng)的地址空間,則學習過程結(jié)束,根據(jù)親和度獲得所述應(yīng)用程序的訪存特征。

結(jié)合第一方面、第一方面的第一或第二種任一種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述管理策略包括:流式預(yù)取策略、基于內(nèi)容的預(yù)取策略,以及不預(yù)取策略。

結(jié)合第一方面、第一方面的第一或第二種任一種可能的實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,所述應(yīng)用程序的訪存特征包括:應(yīng)用程序的空間局部性和應(yīng)用程序的時間局部性。

第二方面,本發(fā)明提供一種內(nèi)存分配裝置,包括:

接收模塊,用于接收應(yīng)用程序的頁面請求,所述頁面請求中攜帶所述應(yīng)用程序的標識;

處理模塊,用于確定所述應(yīng)用程序的標識對應(yīng)的訪存特征;

分配模塊,用于根據(jù)所述應(yīng)用程序的訪存特征確定管理策略,并將所述應(yīng)用程序的頁面請求分配至所述管理策略對應(yīng)的地址空間中。

結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述處理模塊還包括查詢模塊、第一獲取模塊、第二獲取模塊和第三獲取模塊;

所述查詢模塊用于,在應(yīng)用程序特征表中查詢是否存在所述應(yīng)用程序的標識,所述應(yīng)用程序特征表中包括多個應(yīng)用程序的標識及對應(yīng)的訪存特征;

所述第一獲取模塊用于,若所述應(yīng)用程序特征表中存在所述應(yīng)用程序的標識,則獲得所述應(yīng)用程序的標識對應(yīng)的訪存特征;

所述第二獲取模塊用于,若所述應(yīng)用程序特征表中不存在所述應(yīng)用程序 的標識,則通過自學習過程獲得所述應(yīng)用程序的訪存特征,并將所述應(yīng)用程序的標識及對應(yīng)的訪存特征存儲在所述應(yīng)用程序特征表中;

所述第三獲取模塊用于,若所述應(yīng)用程序特征表中不存在所述應(yīng)用程序的標識,則調(diào)用所述應(yīng)用程序的預(yù)設(shè)API,獲得所述應(yīng)用程序的訪存特征,并將所述應(yīng)用程序的標識及對應(yīng)的訪存特征存儲在所述應(yīng)用程序特征表中。

結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,所述第二獲取模塊具體用于:

將所述應(yīng)用程序的連續(xù)N次頁面請求分配至一個管理策略對應(yīng)的地址空間中,統(tǒng)計所述管理策略對應(yīng)的地址空間與所述應(yīng)用程序之間的親和度;N為大于等于1的整數(shù);

判斷所述親和度是否大于預(yù)設(shè)閾值;

若是,則根據(jù)所述親和度獲得所述應(yīng)用程序的訪存特征;

若否,則重新分配一個管理策略對應(yīng)的地址空間,直至管理策略對應(yīng)的地址空間與所述應(yīng)用程序之間的親和度大于預(yù)設(shè)閾值;或者,直至不存在其他管理策略對應(yīng)的地址空間,則學習過程結(jié)束,根據(jù)親和度獲得所述應(yīng)用程序的訪存特征。

結(jié)合第二方面、第二方面的第一或第二種任一種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述管理策略包括:流式預(yù)取策略、基于內(nèi)容的預(yù)取策略,以及不預(yù)取策略。

結(jié)合第二方面、第二方面的第一或第二種任一種可能的實現(xiàn)方式,在第二方面的第四種可能的實現(xiàn)方式中,所述應(yīng)用程序的訪存特征包括:應(yīng)用程序的空間局部性和應(yīng)用程序的時間局部性。

第三方面,本發(fā)明提供一種服務(wù)器,包括:內(nèi)存控制器,內(nèi)存,外存儲器,處理器;

所述內(nèi)存控制器用于將所述內(nèi)存劃分為多個地址空間,并為所述地址空間配置管理策略;

所述處理器,用于運行所述外存儲器存儲的程序用以執(zhí)行如第一方面、第一方面的第一至第四種任一種可能的實現(xiàn)方法。

本發(fā)明提供一種內(nèi)存分配方法、內(nèi)存分配裝置及服務(wù)器。本發(fā)明提供的內(nèi)存分配方法,包括:接收應(yīng)用程序的頁面請求,所述頁面請求中攜帶所述 應(yīng)用程序的標識;確定所述應(yīng)用程序的標識對應(yīng)的訪存特征;根據(jù)所述應(yīng)用程序的訪存特征確定管理策略,并將所述應(yīng)用程序的頁面請求分配至所述管理策略對應(yīng)的地址空間中。本發(fā)明提供的內(nèi)存分配方法,內(nèi)存空間被劃分為多個地址空間,并對每個地址空間配置管理策略,可以針對應(yīng)用程序的訪存特征采取差異化的管理策略,將應(yīng)用程序的頁面請求分配到適合該應(yīng)用程序訪存特征的管理策略對應(yīng)的地址空間中,解決了多線程訪存多樣性問題,提升了存儲系統(tǒng)的存儲效率,緩解了存儲墻問題。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為現(xiàn)有的存儲系統(tǒng)的結(jié)構(gòu)示意圖;

圖2為多核處理器的結(jié)構(gòu)示意圖;

圖3為本發(fā)明實施例一提供的內(nèi)存分配方法的流程圖;

圖4為本發(fā)明實施例一提供的內(nèi)存分配方法所應(yīng)用的存儲系統(tǒng)的結(jié)構(gòu)示意圖;

圖5為本發(fā)明實施例二提供的內(nèi)存分配方法的流程圖;

圖6為本發(fā)明實施例三提供的內(nèi)存分配方法的流程圖;

圖7為本發(fā)明實施例一提供的內(nèi)存分配裝置的結(jié)構(gòu)示意圖;

圖8為本發(fā)明實施例二提供的內(nèi)存分配裝置的結(jié)構(gòu)示意圖;

圖9為本發(fā)明實施例一提供的服務(wù)器的結(jié)構(gòu)示意圖。

具體實施方式

為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

圖3為本發(fā)明實施例一提供的內(nèi)存分配方法的流程圖,圖4為本發(fā)明實施例一提供的內(nèi)存分配方法所應(yīng)用的存儲系統(tǒng)的結(jié)構(gòu)示意圖。本實施例提供的內(nèi)存分配方法,執(zhí)行主體可以是內(nèi)存分配裝置,例如:芯片、單片機等,該內(nèi)存分配裝置可以集成在計算機或者服務(wù)器上。該內(nèi)存分配方法中的內(nèi)存為廣義的內(nèi)存,可以為cache,也可以為主存。而且,該內(nèi)存分配方法所應(yīng)用的存儲系統(tǒng)的結(jié)構(gòu)如圖4所示,內(nèi)存空間可以被劃分為多個地址空間,并且,每個地址空間配置一個管理策略,相應(yīng)的,內(nèi)存分配裝置、計算機或者服務(wù)器支持將內(nèi)存空間劃分為多個地址空間,以及為每個地址空間配置一個管理策略。如圖3所示,該內(nèi)存分配方法可以包括:

步驟101、接收應(yīng)用程序的頁面請求,頁面請求中攜帶應(yīng)用程序的標識。

其中,應(yīng)用程序的標識可以唯一區(qū)分不用的應(yīng)用程序,應(yīng)用程序標識可以有多種實現(xiàn)方式,例如:應(yīng)用程序的名稱,本實施例對此不加以限制。

步驟103、確定應(yīng)用程序的標識對應(yīng)的訪存特征。

應(yīng)用程序運行時,在一段時間里,應(yīng)用程序與存儲器件之間的交互會體現(xiàn)出一定的特點和規(guī)律性,這些特點和規(guī)律即為應(yīng)用程序的訪存特征。例如,有些應(yīng)用程序基于順序訪問方式,有些應(yīng)用程序基于鏈表型訪問方式,有些應(yīng)用程序中某些程序段不能同時運行或者根本不運行,有些應(yīng)用程序中經(jīng)常運行相同的指令和數(shù)據(jù)等等。

可選的,應(yīng)用程序的訪存特征可以包括:應(yīng)用程序的空間局部性和應(yīng)用程序的時間局部性。

所謂應(yīng)用程序的空間局部性,反映了與應(yīng)用程序當前引用數(shù)據(jù)地址相近地址中的數(shù)據(jù)被使用的趨勢,即,在空間上,與當前被訪問數(shù)據(jù)的地址相近地址中的數(shù)據(jù),可能在最近的一段時間內(nèi)也會被訪問使用。

所謂應(yīng)用程序的時間局部性,反映了應(yīng)用程序中對相同地址的數(shù)據(jù)重新引用的趨勢,即,在時間上,當前地址中的數(shù)據(jù)被訪問,那么在最近的一段時間內(nèi),該地址中的數(shù)據(jù)會被再次訪問使用。

步驟105、根據(jù)應(yīng)用程序的訪存特征確定管理策略,并將應(yīng)用程序的頁面請求分配至管理策略對應(yīng)的地址空間中。

在本步驟中,由于獲取了應(yīng)用程序的訪存特征,則根據(jù)該訪存特征確定與該訪存特征相匹配的管理策略,并將應(yīng)用程序的頁面請求分配至配置了該 管理策略的地址空間中。從而,基于內(nèi)存資源劃分以及配置不同的管理策略,針對不同應(yīng)用程序的訪存特征,采用針對性的管理策略來優(yōu)化應(yīng)用程序頁面請求的內(nèi)存分配,從而可以解決多線程訪存多樣性問題,而且,由于針對應(yīng)用程序的訪存特征采取適合的管理策略,最大化地發(fā)揮了內(nèi)存的存儲效率,緩解了存儲墻問題。

可選的,管理策略可以包括:流式預(yù)取策略、基于內(nèi)容的預(yù)取策略,以及不預(yù)取策略。

流式預(yù)取策略、基于內(nèi)容的預(yù)取策略,以及不預(yù)取策略,是基于應(yīng)用程序空間局部性的管理策略。流式預(yù)取策略是指順序訪問時預(yù)取連續(xù)地址的預(yù)取策略;基于內(nèi)容的預(yù)取策略是指在鏈表型訪問密集時根據(jù)數(shù)據(jù)內(nèi)容進行預(yù)取的預(yù)取策略;不預(yù)取策略是指不采用任何預(yù)取技術(shù)。所以,根據(jù)應(yīng)用程序的空間局部性,可以確定不同的管理策略,例如:若應(yīng)用程序的空間局部性好,即,與應(yīng)用程序當前引用數(shù)據(jù)地址相近的地址中的數(shù)據(jù)被訪問使用的概率很大,則說明該應(yīng)用程序可能采用了順序訪問,則該應(yīng)用程序適合流式預(yù)取策略。若應(yīng)用程序的空間局部性不好,即,與應(yīng)用程序當前引用數(shù)據(jù)地址相近的地址中的數(shù)據(jù)被訪問使用的概率很小,則說明該應(yīng)用程序可能采用了鏈表型訪問,則該應(yīng)用程序適合基于內(nèi)容的預(yù)取策略或者不預(yù)取策略。

可選的,管理策略還可以包括:最近最少使用(Least Recently Used,簡稱LRU)替換策略,以及不緩存策略。

LRU替換策略以及不替換策略是基于應(yīng)用程序時間局部性的管理策略,尤其應(yīng)用于cache。LRU替換策略是指在每次替換內(nèi)存塊時,都選擇內(nèi)存組中最近最長時間未被訪問的內(nèi)存塊的替換策略;不緩存策略是指不在內(nèi)存中緩存該應(yīng)用程序的數(shù)據(jù)。所以,根據(jù)應(yīng)用程序的時間局部性,可以確定不同的管理策略,例如:若應(yīng)用程序的時間局部性好,即,應(yīng)用程序中對相同地址的數(shù)據(jù)重新引用的概率很大,則該應(yīng)用程序適合LRU替換策略,將該應(yīng)用程序的頁面請求分配至配置了LRU替換策略的地址空間中,使該應(yīng)用程序的數(shù)據(jù)盡可能的保存在內(nèi)存中。若應(yīng)用程序的時間局部性不好,即,應(yīng)用程序中對相同地址的數(shù)據(jù)重新引用的概率很小,則該應(yīng)用程序適合不緩存策略,使該應(yīng)用程序的數(shù)據(jù)不進入內(nèi)存中,以減少對內(nèi)存的污染。

可選的,管理策略還可以包括:頁面交織地址映射策略和基于排列的頁 面交織地址映射策略。

頁面交織地址映射策略和基于排列的頁面交織地址映射策略,屬于地址映射技術(shù)。地址映射是指將處理器等訪存部件發(fā)送來的線性物理地址翻譯為對應(yīng)于內(nèi)存顆粒的片選、bank地址、行地址和列地址。其中,頁面交織地址映射策略屬于傳統(tǒng)的地址映射策略,基于排列的頁面交織地址映射策略,能夠降低最后一級緩存沖突缺失導(dǎo)致的DRAM行沖突的比例。

可選的,管理策略還可以包括:DRAM開頁策略和DRAM關(guān)頁策略。

DRAM開頁策略和DRAM關(guān)頁策略,屬于DRAM的頁面管理策略。DRAM開頁策略保持DRAM行處于激活態(tài),適用于空間局部性好的應(yīng)用程序。DRAM關(guān)頁策略保持DRAM行處于空閑態(tài),適用于空間局部性不好的應(yīng)用程序。

本實施例提供了一種內(nèi)存分配方法,包括:接收應(yīng)用程序的頁面請求,確定應(yīng)用程序的標識對應(yīng)的訪存特征,根據(jù)應(yīng)用程序的訪存特征確定管理策略,并將應(yīng)用程序的頁面請求分配至管理策略對應(yīng)的地址空間中。本實施例提供的內(nèi)存分配方法,基于內(nèi)存空間被劃分為多個地址空間,并對每個地址空間配置管理策略,可以針對應(yīng)用程序的訪存特征采取差異化的管理策略,將應(yīng)用程序的頁面請求分配到適合該應(yīng)用程序訪存特征的管理策略對應(yīng)的地址空間中,解決了多線程訪存多樣性問題,提升了存儲系統(tǒng)的存儲效率,緩解了存儲墻問題。

圖5為本發(fā)明實施例二提供的內(nèi)存分配方法的流程圖,本實施例在實施例一的基礎(chǔ)上,提供了實施例一中步驟103的一種具體實施方式。如圖5所示,本實施例提供的內(nèi)存分配方法,可以包括:

步驟201、接收應(yīng)用程序的頁面請求,頁面請求中攜帶應(yīng)用程序的標識。

步驟203、在應(yīng)用程序特征表中查詢是否存在應(yīng)用程序的標識。

其中,應(yīng)用程序特征表中包括多個應(yīng)用程序的標識及對應(yīng)的訪存特征。在本實施例中,對于應(yīng)用程序特征表的存儲位置不做限定,可以存儲在內(nèi)存中,也可以存儲在外部存儲器中。

若在應(yīng)用程序特征表中存在應(yīng)用程序的標識,則執(zhí)行步驟205;若在應(yīng)用程序特征表中不存在應(yīng)用程序的標識,則執(zhí)行步驟207。

步驟205、獲得應(yīng)用程序的標識對應(yīng)的訪存特征。

如果在應(yīng)用程序特征表中存在應(yīng)用程序的標識,則直接在應(yīng)用程序特征表中查詢獲得應(yīng)用程序的標識對應(yīng)的訪存特征,之后執(zhí)行步驟209。

步驟207、通過自學習過程或者調(diào)用應(yīng)用程序的預(yù)設(shè)應(yīng)用程序編程接口(Application Programming Interface,簡稱API),獲得應(yīng)用程序的訪存特征,并將應(yīng)用程序的標識及對應(yīng)的訪存特征存儲在應(yīng)用程序特征表中。

若在應(yīng)用程序特征表中不存在應(yīng)用程序的標識,在本步驟中,可以通過自學習過程或者調(diào)用應(yīng)用程序的預(yù)設(shè)API獲得應(yīng)用程序的訪存特征,之后執(zhí)行步驟209。

所謂自學習過程,就是在將應(yīng)用程序的頁面請求分配到不同管理策略對應(yīng)的地址空間的過程中,獲得應(yīng)用程序的訪存特征。通過自學習過程可以獲得應(yīng)用程序的準確的訪存特征,在確定應(yīng)用程序相匹配的管理策略時提高了準確性。

通過調(diào)用應(yīng)用程序的預(yù)設(shè)API獲得應(yīng)用程序的訪存特征,是指程序員將應(yīng)用程序的訪存特征作為已知信息編寫在應(yīng)用程序中,并設(shè)置預(yù)設(shè)API,當在應(yīng)用程序特征表中不存在應(yīng)用程序的標識時,內(nèi)存分配裝置將判斷應(yīng)用程序是否具有預(yù)設(shè)API,如果應(yīng)用程序具有預(yù)設(shè)API,則內(nèi)存分配裝置調(diào)用該預(yù)設(shè)API直接獲得應(yīng)用程序的訪存特征。需要說明的是,調(diào)用預(yù)設(shè)API獲得應(yīng)用程序的訪存特征,可以在查詢應(yīng)用程序特征表之前執(zhí)行,也可以在查詢應(yīng)用程序特征表之后執(zhí)行。

步驟209、根據(jù)應(yīng)用程序的訪存特征確定管理策略,并將應(yīng)用程序的頁面請求分配至管理策略對應(yīng)的地址空間中。

本實施例提供了一種內(nèi)存分配方法,包括:接收應(yīng)用程序的頁面請求,確定應(yīng)用程序的標識對應(yīng)的訪存特征,根據(jù)應(yīng)用程序的訪存特征確定管理策略,并將應(yīng)用程序的頁面請求分配至管理策略對應(yīng)的地址空間中。其中,確定應(yīng)用程序的標識對應(yīng)的訪存特征,包括:在應(yīng)用程序特征表中查詢是否存在應(yīng)用程序的標識,若存在,則獲得應(yīng)用程序的標識對應(yīng)的訪存特征,若不存在,則通過自學習過程或者調(diào)用預(yù)設(shè)API獲得應(yīng)用程序的訪存特征。本實施例提供的內(nèi)存分配方法,基于內(nèi)存空間被劃分為多個地址空間,并對每個地址空間配置管理策略,可以針對應(yīng)用程序的訪存特征采取差異化的管理策略,將應(yīng)用程序的頁面請求分配到適合該應(yīng)用程序訪存特征的管理策略對應(yīng) 的地址空間中,解決了多線程訪存多樣性問題,提升了存儲系統(tǒng)的存儲效率,緩解了存儲墻問題。

圖6為本發(fā)明實施例三提供的內(nèi)存分配方法的流程圖,本實施例在實施例一和實施例二的基礎(chǔ)上,提供了通過自學習過程獲取應(yīng)用程序訪存特征的具體實施方式。如圖6所示,本實施例提供的內(nèi)存分配方法,可以包括:

步驟301、接收應(yīng)用程序的頁面請求,頁面請求中攜帶應(yīng)用程序的標識。

步驟303、在應(yīng)用程序特征表中查詢是否存在應(yīng)用程序的標識。

步驟305、若在應(yīng)用程序特征表中不存在應(yīng)用程序的標識,將應(yīng)用程序的連續(xù)N次頁面請求分配至一個管理策略對應(yīng)的地址空間中,統(tǒng)計管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度。

其中,N為大于等于1的整數(shù)。

其中,統(tǒng)計管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度可以采用多種實現(xiàn)方式,例如:可以采用性能計數(shù)器的方式,其中,性能計數(shù)器需要區(qū)分出不同的應(yīng)用程序,可以通過區(qū)分應(yīng)用程序的標識實現(xiàn),也可以通過分時段統(tǒng)計不同的應(yīng)用程序?qū)崿F(xiàn),而且,性能計數(shù)器的數(shù)目可以根據(jù)實際需要進行設(shè)置,可以在整個內(nèi)存空間中設(shè)置一個,也可以在每個地址空間中設(shè)置一個。

其中,管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度反映了應(yīng)用程序?qū)芾聿呗缘倪m應(yīng)程度,即,親和度反映了應(yīng)用程序的存儲特征,例如:流式預(yù)取對應(yīng)的地址空間與應(yīng)用程序之間的親和度很高,則說明該應(yīng)用程序的空間局部性好。

步驟307、判斷親和度是否大于預(yù)設(shè)閾值。

若親和度大于預(yù)設(shè)閾值,則執(zhí)行步驟309;若親和度不大于預(yù)設(shè)閾值,則執(zhí)行步驟311。

步驟309、根據(jù)親和度獲得應(yīng)用程序的訪存特征。

若親和度大于預(yù)設(shè)閾值,則說明該管理策略適合于該應(yīng)用程序,根據(jù)該親和度可以獲得應(yīng)用程序的訪存特征,之后執(zhí)行步驟313。

步驟311、重新分配一個管理策略對應(yīng)的地址空間,直至管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度大于預(yù)設(shè)閾值;或者,直至不存在其他管理策略對應(yīng)的地址空間,則學習過程結(jié)束,根據(jù)親和度獲得應(yīng)用程序的訪 存特征。

若親和度不大于預(yù)設(shè)閾值,則說明該管理策略不適合該應(yīng)用程序,需要匹配下一個管理策略,即,重新分配一個管理策略對應(yīng)的地址空間給該應(yīng)用程序,重新統(tǒng)計新分配的管理策略對應(yīng)的地址空間與該應(yīng)用程序之間的親和度,并判斷親和度是否大于預(yù)設(shè)閾值。所以,最終執(zhí)行結(jié)果有兩種,一種是存在管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度大于預(yù)設(shè)閾值,另外一種是不存在管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度大于預(yù)設(shè)閾值。無論是否存在,都根據(jù)親和度獲得應(yīng)用程序的訪存特征,之后執(zhí)行步驟313。

其中,預(yù)設(shè)閾值可以根據(jù)實際需要進行設(shè)置,針對不同的管理策略可以設(shè)置統(tǒng)一的預(yù)設(shè)閾值,也可以設(shè)置不同的預(yù)設(shè)閾值。

其中,根據(jù)親和度獲得應(yīng)用程序的訪存特征,可以包括:

若存在管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度大于預(yù)設(shè)值,則根據(jù)該管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度,獲得應(yīng)用程序的訪存特征;或者,

若不存在管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度大于預(yù)設(shè)值,則根據(jù)最后一個管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度,獲得應(yīng)用程序的訪存特征;或者,

若不存在管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度大于預(yù)設(shè)值,則根據(jù)任意一個管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度,獲得應(yīng)用程序的訪存特征。

下面以一個包括具體參數(shù)的實例來詳細說明步驟305~步驟311的執(zhí)行過程,參數(shù)具體為:內(nèi)存空間被劃分為3個地址空間,地址空間0配置流式預(yù)取策略A,流式預(yù)取策略A對應(yīng)預(yù)設(shè)閾值a,地址空間1配置基于內(nèi)容的預(yù)取策略B,基于內(nèi)容的預(yù)取策略B對應(yīng)預(yù)設(shè)閾值b,地址空間2配置不預(yù)取策略C,不預(yù)取策略C對應(yīng)預(yù)設(shè)閾值c,通過性能技術(shù)器的方式統(tǒng)計管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度,地址空間0配置性能計數(shù)器0,地址空間1配置性能計數(shù)器1,地址空間2配置性能計數(shù)器2,N取值為2,則步驟305~步驟311的執(zhí)行過程如下:

將應(yīng)用程序的第1次頁面請求分配至地址空間0中,啟動性能計數(shù)器0, 配置性能計數(shù)器0監(jiān)測該頁面的訪存情況,經(jīng)過預(yù)設(shè)時間T0后,讀取性能計數(shù)器0的統(tǒng)計結(jié)果。當應(yīng)用程序第2次進行頁面請求時,繼續(xù)將應(yīng)用程序的第2次頁面請求分配至地址空間0中,啟動性能計數(shù)器0,配置性能計數(shù)器0監(jiān)測該頁面的訪存情況,經(jīng)過預(yù)設(shè)時間T0后,讀取性能計數(shù)器0的統(tǒng)計結(jié)果。計算這兩次性能計數(shù)器統(tǒng)計結(jié)果的平均值,作為流式預(yù)取策略A對應(yīng)的地址空間0與應(yīng)用程序之間的親和度P[A,0]。判斷P[A,0]是否大于預(yù)設(shè)閾值a,判斷結(jié)果為P[A,0]不大于預(yù)設(shè)閾值a,說明流式預(yù)取策略A不適合該應(yīng)用程序。

將應(yīng)用程序的第3次頁面請求分配至地址空間1中,啟動性能計數(shù)器1,配置性能計數(shù)器1監(jiān)測該頁面的訪存情況,經(jīng)過預(yù)設(shè)時間T1后,讀取性能計數(shù)器1的統(tǒng)計結(jié)果。當應(yīng)用程序第4次進行頁面請求時,繼續(xù)將應(yīng)用程序的第4次頁面請求分配至地址空間1中,啟動性能計數(shù)器1,配置性能計數(shù)器1監(jiān)測該頁面的訪存情況,經(jīng)過預(yù)設(shè)時間T1后,讀取性能計數(shù)器1的統(tǒng)計結(jié)果。計算這兩次性能計數(shù)器統(tǒng)計結(jié)果的平均值,作為基于內(nèi)容的預(yù)取策略B對應(yīng)的地址空間1與應(yīng)用程序之間的親和度P[B,1]。判斷P[B,1]是否大于預(yù)設(shè)閾值b,判斷結(jié)果為P[B,1]大于預(yù)設(shè)閾值b,說明基于內(nèi)容的預(yù)取策略B適合該應(yīng)用程序,根據(jù)親和度P[B,1]獲得該應(yīng)用程序的訪存特征,則根據(jù)該應(yīng)用程序的訪存特征,后續(xù)該應(yīng)用程序的頁面請求都會被分配到配置了基于內(nèi)容的預(yù)取策略B對應(yīng)的地址空間1中。

步驟313、將應(yīng)用程序的標識及對應(yīng)的訪存特征存儲在應(yīng)用程序特征表中。

步驟315、根據(jù)應(yīng)用程序的訪存特征確定管理策略,并將應(yīng)用程序的頁面請求分配至管理策略對應(yīng)的地址空間中。

本實施例提供了一種內(nèi)存分配方法,包括:接收應(yīng)用程序的頁面請求,確定應(yīng)用程序的標識對應(yīng)的訪存特征,根據(jù)應(yīng)用程序的訪存特征確定管理策略,并將應(yīng)用程序的頁面請求分配至管理策略對應(yīng)的地址空間中。本實施例提供的內(nèi)存分配方法,基于內(nèi)存空間被劃分為多個地址空間,并對每個地址空間配置管理策略,通過自學習方式獲取應(yīng)用程序的準確的訪存特征,針對應(yīng)用程序的訪存特征采取差異化的管理策略,將應(yīng)用程序的頁面請求分配到適合該應(yīng)用程序訪存特征的管理策略對應(yīng)的地址空間中,解決了多線程訪存 多樣性問題,提升了存儲系統(tǒng)的存儲效率,緩解了存儲墻問題。

圖7為本發(fā)明實施例一提供的內(nèi)存分配裝置的結(jié)構(gòu)示意圖。如圖7所示,本實施例提供的內(nèi)存分配裝置,可以包括:

接收模塊11,用于接收應(yīng)用程序的頁面請求,頁面請求中攜帶應(yīng)用程序的標識。

處理模塊13,用于確定應(yīng)用程序的標識對應(yīng)的訪存特征。

分配模塊15,用于根據(jù)應(yīng)用程序的訪存特征確定管理策略,并將應(yīng)用程序的頁面請求分配至管理策略對應(yīng)的地址空間中。

可選的,管理策略可以包括:流式預(yù)取策略、基于內(nèi)容的預(yù)取策略,以及不預(yù)取策略。

可選的,應(yīng)用程序的訪存特征包括:應(yīng)用程序的空間局部性和應(yīng)用程序的時間局部性。

本實施例提供的內(nèi)存分配裝置,基于內(nèi)存空間被劃分為多個地址空間,并對每個地址空間配置管理策略,可以針對應(yīng)用程序的訪存特征采取差異化的管理策略,將應(yīng)用程序的頁面請求分配到適合該應(yīng)用程序訪存特征的管理策略對應(yīng)的地址空間中,解決了多線程訪存多樣性問題,提升了存儲系統(tǒng)的存儲效率,緩解了存儲墻問題。

圖8為本發(fā)明實施例二提供的內(nèi)存分配裝置的結(jié)構(gòu)示意圖,本實施例在圖7所示實施例一的基礎(chǔ)上,提供了處理模塊13的另一種實現(xiàn)方式。如圖8所示,本實施例提供的內(nèi)存分配裝置,可以包括:

接收模塊11,用于接收應(yīng)用程序的頁面請求,頁面請求中攜帶應(yīng)用程序的標識。

處理模塊13,用于確定應(yīng)用程序的標識對應(yīng)的訪存特征。

分配模塊15,用于根據(jù)應(yīng)用程序的訪存特征確定管理策略,并將應(yīng)用程序的頁面請求分配至管理策略對應(yīng)的地址空間中。

其中,處理模塊13還可以包括查詢模塊131、第一獲取模塊133、第二獲取模塊135和第三獲取模塊137。

其中,查詢模塊131用于,在應(yīng)用程序特征表中查詢是否存在應(yīng)用程序的標識,應(yīng)用程序特征表中包括多個應(yīng)用程序的標識及對應(yīng)的訪存特征。

所述第一獲取模塊133用于,若應(yīng)用程序特征表中存在應(yīng)用程序的標識, 則獲得應(yīng)用程序的標識對應(yīng)的訪存特征。

所述第二獲取模塊135用于,若應(yīng)用程序特征表中不存在應(yīng)用程序的標識,則通過自學習過程獲得應(yīng)用程序的訪存特征,并將應(yīng)用程序的標識及對應(yīng)的訪存特征存儲在應(yīng)用程序特征表中。

所述第三獲取模塊137用于,若應(yīng)用程序特征表中不存在應(yīng)用程序的標識,則調(diào)用應(yīng)用程序的預(yù)設(shè)API,獲得應(yīng)用程序的訪存特征,并將應(yīng)用程序的標識及對應(yīng)的訪存特征存儲在應(yīng)用程序特征表中。

可選的,第二獲取模塊135具體用于:

將應(yīng)用程序的連續(xù)N次頁面請求分配至一個管理策略對應(yīng)的地址空間中,統(tǒng)計管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度,N為大于等于1的整數(shù)。

判斷親和度是否大于預(yù)設(shè)閾值;若是,則根據(jù)親和度獲得應(yīng)用程序的訪存特征;若否,則重新分配一個管理策略對應(yīng)的地址空間,直至管理策略對應(yīng)的地址空間與應(yīng)用程序之間的親和度大于預(yù)設(shè)閾值;或者,直至不存在其他管理策略對應(yīng)的地址空間,則學習過程結(jié)束,根據(jù)親和度獲得應(yīng)用程序的訪存特征。

本實施例提供的內(nèi)存分配裝置,基于內(nèi)存空間被劃分為多個地址空間,并對每個地址空間配置管理策略,可以針對應(yīng)用程序的訪存特征采取差異化的管理策略,將應(yīng)用程序的頁面請求分配到適合該應(yīng)用程序訪存特征的管理策略對應(yīng)的地址空間中,解決了多線程訪存多樣性問題,提升了存儲系統(tǒng)的存儲效率,緩解了存儲墻問題。

圖9為本發(fā)明實施例一提供的服務(wù)器的結(jié)構(gòu)示意圖。如圖9所示,該服務(wù)器100可以包括:內(nèi)存控制器23,內(nèi)存25,外存儲器27,處理器21。

其中,內(nèi)存控制器23用于將內(nèi)存劃分為多個地址空間,并為地址空間配置管理策略。

處理器21,用于運行外存儲器27存儲的程序用以執(zhí)行圖3所示實施例一至圖6所示實施例三中的內(nèi)存分配方法。

該處理器21的具體結(jié)構(gòu)可以參照圖7或圖8所示實施例中的內(nèi)存分配裝置。

最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對 其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
都安| 通渭县| 长汀县| 岳西县| 泸州市| 宝清县| 彰化市| 东莞市| 无极县| 阜南县| 三穗县| 垣曲县| 潍坊市| 成都市| 房产| 七台河市| 什邡市| 盱眙县| 隆德县| 清镇市| 太白县| 玛纳斯县| 南郑县| 密山市| 临泉县| 乌什县| 玉环县| 湟源县| 沂源县| 泗阳县| 成都市| 东兴市| 威宁| 桐庐县| 合川市| 梅河口市| 双牌县| 洪湖市| 山阴县| 南召县| 额敏县|