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

一種指令緩存鎖實(shí)現(xiàn)方法

文檔序號(hào):6335207閱讀:196來(lái)源:國(guó)知局
專利名稱:一種指令緩存鎖實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及體系結(jié)構(gòu)中的存儲(chǔ)領(lǐng)域,特別涉及一種指令緩存鎖實(shí)現(xiàn)方法。
背景技術(shù)
目前大多數(shù)嵌入式系統(tǒng)的性能在很大程度上是受內(nèi)存平均訪問(wèn)延遲來(lái)決定的,提 高緩存的命中率就能減少內(nèi)存的訪問(wèn)次數(shù),也就能提高系統(tǒng)性能。當(dāng)前的一些嵌入式處理 器都使用緩存鎖機(jī)制,在軟件的控制下將一些內(nèi)存塊鎖在緩存中。緩存的作用主要是緩解 調(diào)整處理器與低速主存之間速度及性能上的不匹配,在實(shí)際過(guò)程中,指令緩存在嵌入式系 統(tǒng)性能和能源消耗方面起到至關(guān)重要的作用,因?yàn)橹噶钍窃诿總€(gè)時(shí)鐘周期都要提取的。指 令緩存性能的提高,對(duì)整個(gè)系統(tǒng)性能影響很大,很多技術(shù)都是針對(duì)指令緩存性能進(jìn)行改進(jìn) 的。指令緩存鎖機(jī)制主要是用于實(shí)時(shí)要求較高的系統(tǒng),實(shí)時(shí)判斷性強(qiáng)。在高實(shí)時(shí)性系 統(tǒng)中,最壞情況下的執(zhí)行時(shí)間是多任務(wù)實(shí)時(shí)任務(wù)調(diào)度分析算法的輸入數(shù)據(jù),但是這種方法 用在微型硬件結(jié)構(gòu)上就難以評(píng)估一個(gè)安全可靠的最壞運(yùn)行時(shí)間。在緩存中靜態(tài)鎖住一些指 令,最壞運(yùn)行時(shí)間的可預(yù)測(cè)性變得更高。目前也有人提出過(guò)一些關(guān)于指令緩存鎖的方法,例 如LRU算法(最近最少使用算法),對(duì)于在內(nèi)存中但最近又不用的數(shù)據(jù)塊(內(nèi)存塊),每次 調(diào)換時(shí),找到最近最少使用的那個(gè)頁(yè)面調(diào)出內(nèi)存。還有一些緩存鎖方法是循環(huán)結(jié)構(gòu),每次循 環(huán)都要進(jìn)行評(píng)估預(yù)測(cè),性能損耗大,且用得是相同的方法來(lái)評(píng)估性價(jià)比這就導(dǎo)致不精確。前 人也曾為每一數(shù)據(jù)訪問(wèn)指令而提出的基于引用長(zhǎng)度窗口的數(shù)據(jù)緩存鎖機(jī)制,數(shù)據(jù)緩存鎖沒(méi) 有評(píng)估好性價(jià)比,也不能保證性能提高。

發(fā)明內(nèi)容
為了提高系統(tǒng)性能和降低能源消耗,提高緩存命中率,減少低級(jí)存儲(chǔ)器的訪問(wèn),本 發(fā)明提出一種指令緩存鎖實(shí)現(xiàn)方法。本發(fā)明解決技術(shù)問(wèn)題所采用的技術(shù)方案是一種指令緩存鎖實(shí)現(xiàn)方法,所述方法包括如下步驟1)程序概要分析預(yù)先運(yùn)行一段程序,記錄包括內(nèi)存塊訪問(wèn)順序和引用次數(shù)、重復(fù)訪問(wèn)的時(shí)間間隔、 命中次數(shù);2)選擇內(nèi)存塊鎖入緩存程序開(kāi)始運(yùn)行時(shí),對(duì)每個(gè)內(nèi)存塊設(shè)置一個(gè)訪問(wèn)計(jì)數(shù)器和LRU計(jì)數(shù)器,訪問(wèn)計(jì)數(shù)器 記錄內(nèi)存塊的訪問(wèn)次數(shù),對(duì)每個(gè)內(nèi)存塊中的訪問(wèn)計(jì)數(shù)器和LRU計(jì)數(shù)器分別分配權(quán)重m、N2, 根據(jù)步驟1)記錄內(nèi)存塊命中次數(shù),按照Ni*訪問(wèn)次數(shù)+N2*(LRU計(jì)數(shù)器的極限值-LRU值) 進(jìn)行統(tǒng)計(jì),如果統(tǒng)計(jì)值超過(guò)閾值M,則將該內(nèi)存塊鎖在緩存中,并滿足鎖入緩存中內(nèi)存塊總 數(shù)不超過(guò)緩存空間容量,N1+N2 = 1。所述訪問(wèn)計(jì)數(shù)器權(quán)值m值為0.3彡m彡0.6,所述LRU計(jì)數(shù)器權(quán)值N2值為0. 4 ≤ N2 ≤ 0. 7。所述選擇內(nèi)存塊鎖入緩存,如果鎖入緩存中的內(nèi)存塊命中次數(shù)小于閾值A(chǔ),則調(diào)高 LRU計(jì)數(shù)器的權(quán)重;如果鎖入緩存中內(nèi)存塊命中次數(shù)超過(guò)閾值B,則調(diào)高內(nèi)存塊訪問(wèn)計(jì)數(shù)器 的權(quán)重;如果未鎖入緩存中內(nèi)存塊的統(tǒng)計(jì)值大于鎖入緩存中內(nèi)存塊的值,則將該內(nèi)存塊鎖 入緩存中。所述選擇內(nèi)存塊鎖入緩存,如果未鎖入緩存中內(nèi)存塊的統(tǒng)計(jì)值大于鎖入緩存中內(nèi) 存塊的值,則將該內(nèi)存塊替換緩存中小于該統(tǒng)計(jì)值的內(nèi)存塊。本發(fā)明具有的有益效果是鎖在緩存中的內(nèi)存塊是不會(huì)被替換算法替換出去的, 只有在鎖被解除時(shí)才能被替換,這些具有鎖狀態(tài)的內(nèi)存塊是一些引用次數(shù)較多的塊,將它 們保留在緩存中能大大提高緩存命中率,減少低級(jí)存儲(chǔ)器的訪問(wèn),減少了平均內(nèi)存訪問(wèn)延 遲。這種鎖緩存技術(shù)在性能和節(jié)能方面都有很大的提高,相對(duì)于之前的一些節(jié)能技術(shù)精確
度更高。


圖1是本發(fā)明一種實(shí)施例的流程圖;圖2是本發(fā)明一種實(shí)施例的局部流程圖。
具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明提供的指令緩存鎖實(shí)現(xiàn)方法作進(jìn)一步詳細(xì)的描述圖1是本發(fā)明一種實(shí)施例的流程圖,該方法包括如下步驟1)程序概要分析,預(yù)先運(yùn)行一段程序,記錄包括內(nèi)存塊訪問(wèn)順序和引用次數(shù)、重復(fù) 訪問(wèn)的時(shí)間間隔、命中次數(shù);2)選擇內(nèi)存塊鎖入緩存程序開(kāi)始運(yùn)行時(shí),對(duì)每個(gè)內(nèi)存塊設(shè)置一個(gè)訪問(wèn)計(jì)數(shù)器和LRU計(jì)數(shù)器,訪問(wèn)計(jì)數(shù)器 記錄內(nèi)存塊的訪問(wèn)次數(shù),對(duì)每個(gè)內(nèi)存塊中的訪問(wèn)計(jì)數(shù)器和LRU計(jì)數(shù)器分別分配權(quán)重m、N2, 根據(jù)步驟1)記錄內(nèi)存塊命中次數(shù),按照Ni*訪問(wèn)次數(shù)+N2*(LRU計(jì)數(shù)器的極限值-LRU值) 進(jìn)行統(tǒng)計(jì),如果統(tǒng)計(jì)值超過(guò)閾值M,則將該內(nèi)存塊鎖在緩存中,并滿足鎖入緩存中內(nèi)存塊總 數(shù)不超過(guò)緩存空間容量,N1+N2 = 1。本發(fā)明的內(nèi)存塊的LRU算法為已有技術(shù),對(duì)內(nèi)存塊設(shè)置LRU計(jì)數(shù)器,當(dāng)該內(nèi)存塊命 中時(shí),命中的內(nèi)存塊的LRU計(jì)數(shù)器清零,未命中的LRU計(jì)數(shù)器加1。訪問(wèn)計(jì)數(shù)器用于記錄內(nèi) 存塊訪問(wèn)次數(shù),第一次裝入緩存時(shí)該計(jì)數(shù)器值為0,每次訪問(wèn)到它時(shí)就增加1。閾值M可以 進(jìn)行設(shè)定,例如4/16、3/16等值。其中1)程序概要分析過(guò)程如下①模擬運(yùn)行一段程序圖2是本發(fā)明局部流程圖,要對(duì)程序特征進(jìn)行分析,就需要 先模擬運(yùn)行一段程序,或者完整地運(yùn)行一次。在這個(gè)過(guò)程中,要記錄程序內(nèi)存塊訪問(wèn)序列, 每個(gè)內(nèi)存塊被引用的次數(shù)。②程序運(yùn)行過(guò)程特征分析根據(jù)之前程序運(yùn)行的記錄信息,對(duì)程序特征進(jìn)行分析, 這是為內(nèi)存塊鎖算法選擇最優(yōu)鎖方案提供基礎(chǔ)信息。這些分析包括內(nèi)存塊訪問(wèn)順序和引用 次數(shù),重復(fù)訪問(wèn)的時(shí)間間隔,命中次數(shù)及跳轉(zhuǎn)記錄。
這個(gè)階段可執(zhí)行一次,保存的信息可供以后使用,這可避免多次重復(fù)無(wú)效的執(zhí)行 程序,一次記錄信息可供終身使用,對(duì)于不同的輸入數(shù)據(jù),程序的行為可能會(huì)不一樣,也可 根據(jù)輸入數(shù)據(jù)進(jìn)行更新,從總體來(lái)看,這部分只不會(huì)對(duì)程序性能造成負(fù)面影響。通過(guò)在機(jī)器 上運(yùn)行一段程序,并記錄訪問(wèn)信息,從而得到訪問(wèn)較多的內(nèi)存塊。程序概要分析過(guò)程中,可以使用臨時(shí)內(nèi)存塊重復(fù)引用信息表來(lái)模擬程序行為,臨 時(shí)內(nèi)存塊引用件中包含程序運(yùn)行過(guò)程中一些內(nèi)存塊的訪問(wèn)記錄。這部分是為后面的鎖算法 提供基礎(chǔ)信息,一般是在程序運(yùn)行前操作完成,或是程序以前運(yùn)行保存下來(lái)的。2)選擇內(nèi)存塊鎖入緩存是否將該內(nèi)存塊鎖入緩存中,可以采用最優(yōu)算法和啟發(fā)式算法。①最優(yōu)算法,實(shí)現(xiàn)步驟按照Ni*訪問(wèn)次數(shù)+N2* (LRU計(jì)數(shù)器的極限值-LRU值)進(jìn)行統(tǒng)計(jì),如果統(tǒng)計(jì)值超 過(guò)閾值M,則將該內(nèi)存塊鎖在緩存中,并滿足鎖入緩存中內(nèi)存塊總數(shù)不超過(guò)緩存空間容量, N1+N2 = 1。閾值M可以進(jìn)行設(shè)定。在程序概要分析時(shí),當(dāng)獲得命中較多的內(nèi)存塊時(shí),將其m值設(shè)定為較大,未命中 或者命中較少的內(nèi)存塊的m值設(shè)定為較小。當(dāng)一個(gè)內(nèi)存塊的訪問(wèn)次數(shù)很大(相對(duì)于其他塊來(lái)說(shuō)),LRU計(jì)數(shù)時(shí)不是最高那么就 可以考慮將它鎖在緩存中;如果一個(gè)塊訪問(wèn)次數(shù)較少,但是它的LRU計(jì)數(shù)器很低,那么也可 心考慮將它鎖在緩存,其中還有一點(diǎn)就是當(dāng)前鎖在緩存中的內(nèi)存塊數(shù)不能超過(guò)緩存空間容 量,如果被鎖的塊的LRU計(jì)數(shù)器增加較多時(shí),便對(duì)它解鎖,認(rèn)為它對(duì)緩存命中無(wú)貢獻(xiàn)。緩存是分組的,每個(gè)組獨(dú)立分析,最終選擇能使這個(gè)組的命中率達(dá)到最高的方案。 對(duì)每一個(gè)內(nèi)存塊,要分析它是否能鎖在緩存中,搜索空間可以看成是一個(gè)二叉搜索樹(shù)。在二 叉搜索樹(shù)中和每一級(jí)都是對(duì)應(yīng)于一個(gè)內(nèi)存塊的鎖判定方案,是否要鎖該塊,當(dāng)?shù)竭_(dá)葉子結(jié) 點(diǎn)或者緩存組中鎖定的內(nèi)存塊數(shù)量為組關(guān)聯(lián)行數(shù)時(shí),就停止搜索,返回一個(gè)鎖策略。二叉搜索樹(shù)中的每一級(jí)對(duì)應(yīng)一個(gè)內(nèi)存塊的鎖策略,在搜索過(guò)程中,當(dāng)發(fā)現(xiàn)鎖住該 塊在指令緩存中時(shí)能增加總體命中率時(shí),便表示這塊將被標(biāo)記不鎖狀態(tài),否則為非鎖狀態(tài)。 它會(huì)為程序分析信息表中記錄的每一個(gè)內(nèi)存塊進(jìn)行鎖判定,根據(jù)狀態(tài)計(jì)算命中率,最后選 擇命中率最高的狀態(tài)作為最終方案。②啟發(fā)式算法,實(shí)現(xiàn)步驟啟發(fā)式算法是相對(duì)于最優(yōu)算法,它的目的也是尋找一種使緩存命中率最高的鎖方 案,所謂啟發(fā)也就是會(huì)受前面搜索結(jié)果的影響(啟發(fā))。它也是根據(jù)各內(nèi)存塊的訪問(wèn)頻率, 以尋找能達(dá)到最高緩存命中率的鎖方案。如果鎖入緩存中的內(nèi)存塊命中次數(shù)小于閾值A(chǔ),則調(diào)高LRU計(jì)數(shù)器的權(quán)重。閾值A(chǔ) 的值可以預(yù)先設(shè)定,例如2。如果鎖入緩存中內(nèi)存塊命中次數(shù)超過(guò)閾值A(chǔ),則調(diào)高內(nèi)存塊訪問(wèn)計(jì)數(shù)器的權(quán)重。閾如果未鎖入緩存中內(nèi)存塊的統(tǒng)計(jì)值大于鎖入緩存中內(nèi)存塊的值,則將該內(nèi)存塊鎖 入緩存中。將未鎖入緩存中內(nèi)存塊的統(tǒng)計(jì)值與鎖入緩存中內(nèi)存塊值分別比較,只要有大于 任一鎖入緩存中內(nèi)存塊值則將該內(nèi)存塊鎖入緩存中。如果未鎖入緩存中內(nèi)存塊的統(tǒng)計(jì)值大于鎖入緩存中內(nèi)存塊的值,則將該內(nèi)存塊替 換緩存中的內(nèi)存塊。將未鎖入緩存中內(nèi)存塊的統(tǒng)計(jì)值與鎖入緩存中內(nèi)存塊值分別比較,如果有未鎖入緩存中內(nèi)存塊的統(tǒng)計(jì)值大于鎖入緩存中內(nèi)存塊的統(tǒng)計(jì)值,則將該內(nèi)存塊替換緩 存中的內(nèi)存塊。啟發(fā)式算法根據(jù)前面被鎖住的塊的訪問(wèn)次數(shù)和LRU計(jì)數(shù)器進(jìn)行下一個(gè)塊的尋找。 前面最優(yōu)算法是綜合考慮訪問(wèn)次數(shù)和LRU計(jì)數(shù)器。如果之前的判定方式是訪問(wèn)次數(shù)權(quán)重 大一點(diǎn),而且在被鎖后訪問(wèn)也比較多(這可通過(guò)訪問(wèn)計(jì)數(shù)器或LRU計(jì)數(shù)器判斷),那么表示 之前的訪問(wèn)次數(shù)權(quán)重大一點(diǎn)的方案是可靠的,這次仍然可用這種方式,反之則應(yīng)該增加LRU 數(shù)值的權(quán)重,因?yàn)榍懊娴逆i方案表現(xiàn)并不太好(被鎖的內(nèi)存塊沒(méi)被訪問(wèn)或者訪問(wèn)太少)。3)程序運(yùn)行每次程序運(yùn)行前,便將這些標(biāo)記為鎖狀態(tài)的內(nèi)存塊鎖在指令緩存中,這樣在程序 運(yùn)行過(guò)程中,這些訪問(wèn)頻繁的內(nèi)存塊就不會(huì)丟失。實(shí)施例現(xiàn)有一個(gè)程序A,程序運(yùn)行過(guò)程中的一段內(nèi)存塊訪問(wèn)序列為 (m0mlm2m3m4m5m6m7) 10,這個(gè)序列訪問(wèn)10次,各塊都映射到同一個(gè)緩存組中,緩存是4路相 聯(lián)的。在不鎖的情況下,這個(gè)訪問(wèn)序列全都不命中,也就是80次訪問(wèn)全部丟失,按照指令緩 存鎖技術(shù),如果將這8個(gè)內(nèi)存塊中的任意4塊,如m0,ml,m2, m3鎖在指令緩存中,就會(huì)減少 一半的丟失。這個(gè)過(guò)程很簡(jiǎn)單,最主要的就是在外設(shè)上存儲(chǔ)好程序內(nèi)存塊訪問(wèn)信息及各塊 的鎖狀態(tài)策略。這個(gè)例子中,在m0_m7的訪問(wèn)結(jié)束后,每個(gè)塊的訪問(wèn)計(jì)數(shù)器值都為0,不好區(qū)分鎖 哪個(gè)塊更好,但是LRU計(jì)數(shù)值不一樣,m4m5m6m7的值比較低,分別是3,2,1,0那么可以考慮 將它們鎖在內(nèi)存中,再經(jīng)過(guò)一輪訪問(wèn)后,被鎖的塊確實(shí)被訪問(wèn)了,則鎖住這些塊的方案是比 較好的。相對(duì)于LRU算法來(lái)說(shuō),它增加了一個(gè)訪問(wèn)計(jì)數(shù)值的考慮,就是這兩個(gè)計(jì)數(shù)值的權(quán)重 之和來(lái)判定鎖方案,它們之間的權(quán)重可以是0. 5,0. 5。權(quán)重可以在程序概要分析時(shí)確定,當(dāng) 獲得命中較多的內(nèi)存塊時(shí),將其m值設(shè)定為較大,未命中或者命中較少的內(nèi)存塊的m值設(shè) 定為較小。也可以是其他值,在啟發(fā)式算法中,這些值是可變化的。如果前面被鎖的塊訪問(wèn)次數(shù)比較多,則權(quán)重分配不變,否則,訪問(wèn)計(jì)數(shù)器的權(quán)重值 降低0. 1,LRU計(jì)數(shù)器的值增加0. 1。當(dāng)LRU計(jì)數(shù)值的權(quán)重為1時(shí)就是LRU算法。與LRU的另一區(qū)別是LRU是每次有新 的塊要進(jìn)入緩存時(shí)都要判定,將LRU數(shù)值最大的塊換出去,而塊鎖方法并不是有新行要進(jìn) 來(lái)是就判定而是經(jīng)過(guò)幾次(緩存空間大小,如4路組就是4)緩存訪問(wèn)后如果被鎖的塊還沒(méi) 被用到,則進(jìn)行新行鎖判定,這個(gè)緩存的訪問(wèn)次數(shù)可以通過(guò)被鎖塊的LRU值(它們中最大 的)來(lái)確定。最優(yōu)算法m0mlm2m3訪問(wèn)完后,接著訪問(wèn)m4,這時(shí)要要用鎖判定了,這5塊的訪問(wèn)計(jì)數(shù) 器值都為0,LRU計(jì)數(shù)器值為4,3,2,1,0,(目前還沒(méi)有塊被鎖在緩存中)鎖方案選擇 0. 5*0+0. 5*(4-LRU值),結(jié)果分別是0,0. 5,1,1. 5,2,那么鎖住m4,m3,ml, m2,并將它們的 LRU計(jì)數(shù)器和訪問(wèn)次數(shù)計(jì)數(shù)器設(shè)為0,接著訪問(wèn)m5,不用計(jì)算權(quán)值,因?yàn)榫彺嬖L問(wèn)次數(shù)還沒(méi) 超過(guò)4,同理m6,m7。下一輪訪問(wèn)mO,在4次緩存訪問(wèn)中沒(méi)訪問(wèn)被鎖塊,如果下次還沒(méi)訪問(wèn) 被鎖塊,則要重新鎖方案選擇,后續(xù)訪問(wèn)序列為ml,m2,m3,m4,被鎖塊被訪問(wèn)了,所以仍然保持鎖狀態(tài)。啟發(fā)式算法初始?jí)K的選擇與最優(yōu)算法類似,不同點(diǎn)在于新鎖方案選擇時(shí),如果ml,m2, m3, m4 的訪問(wèn)計(jì)數(shù)值比較小,則表明之前訪問(wèn)次數(shù)多的塊不一定在將來(lái)會(huì)被訪問(wèn),所以權(quán)值計(jì)數(shù) 為0. 4*訪問(wèn)次數(shù)+0. 6* (4-LRU值),最后選擇數(shù)值最大的4塊鎖在緩存中。
權(quán)利要求
一種指令緩存鎖實(shí)現(xiàn)方法,其特征在于所述方法包括如下步驟1)程序概要分析預(yù)先運(yùn)行一段程序,記錄包括內(nèi)存塊訪問(wèn)順序和引用次數(shù)、重復(fù)訪問(wèn)的時(shí)間間隔、命中次數(shù);2)選擇內(nèi)存塊鎖入緩存程序開(kāi)始運(yùn)行時(shí),對(duì)每個(gè)內(nèi)存塊設(shè)置一個(gè)訪問(wèn)計(jì)數(shù)器和LRU計(jì)數(shù)器,訪問(wèn)計(jì)數(shù)器記錄內(nèi)存塊的訪問(wèn)次數(shù),對(duì)每個(gè)內(nèi)存塊中的訪問(wèn)計(jì)數(shù)器和LRU計(jì)數(shù)器分別分配權(quán)重N1、N2,根據(jù)步驟1)記錄內(nèi)存塊命中次數(shù),按照N1*訪問(wèn)次數(shù)+N2*(LRU計(jì)數(shù)器的極限值 LRU值)進(jìn)行統(tǒng)計(jì),如果統(tǒng)計(jì)值超過(guò)閾值M,則將該內(nèi)存塊鎖在緩存中,并滿足鎖入緩存中內(nèi)存塊總數(shù)不超過(guò)緩存空間容量,N1+N2=1。
2.根據(jù)權(quán)利要求1所述的指令緩存鎖實(shí)現(xiàn)方法,其特征在于所述訪問(wèn)計(jì)數(shù)器權(quán)值m 值為0. 3 ≤ N1 ≤ 0. 6,所述LRU計(jì)數(shù)器權(quán)值N2值為0. 4≤N2 ≤0. 7。
3.根據(jù)權(quán)利要求1或2所述的指令緩存鎖實(shí)現(xiàn)方法,其特征在于所述選擇內(nèi)存塊鎖 入緩存,如果鎖入緩存中的內(nèi)存塊命中次數(shù)小于閾值A(chǔ),則調(diào)高LRU計(jì)數(shù)器的權(quán)重;如果鎖入緩存中內(nèi)存塊命中次數(shù)超過(guò)閾值A(chǔ),則調(diào)高內(nèi)存塊訪問(wèn)計(jì)數(shù)器的權(quán)重;如果未鎖入緩存中內(nèi)存塊的統(tǒng)計(jì)值大于鎖入緩存中內(nèi)存塊的值,則將該內(nèi)存塊鎖入緩 存中。
4.根據(jù)權(quán)利要求1所述的指令緩存鎖實(shí)現(xiàn)方法,其特征在于所述選擇內(nèi)存塊鎖入緩 存,如果未鎖入緩存中內(nèi)存塊的統(tǒng)計(jì)值大于鎖入緩存中內(nèi)存塊的值,則將該內(nèi)存塊替換緩 存中小于該統(tǒng)計(jì)值的內(nèi)存塊。
全文摘要
一種指令緩存鎖實(shí)現(xiàn)方法,所述方法包括如下步驟1)程序概要分析,預(yù)先運(yùn)行一段程序,記錄包括內(nèi)存塊訪問(wèn)順序和引用次數(shù)、重復(fù)訪問(wèn)的時(shí)間間隔、命中次數(shù);2)選擇內(nèi)存塊鎖入緩存,對(duì)每個(gè)內(nèi)存塊設(shè)置一個(gè)訪問(wèn)計(jì)數(shù)器和LRU計(jì)數(shù)器,訪問(wèn)計(jì)數(shù)器記錄內(nèi)存塊的訪問(wèn)次數(shù),將每個(gè)內(nèi)存塊中的訪問(wèn)計(jì)數(shù)器和LRU計(jì)數(shù)器分別分配權(quán)重N1、N2,按照N1*訪問(wèn)次數(shù)+N2*(LRU計(jì)數(shù)器的極限值-LRU值)進(jìn)行統(tǒng)計(jì),如果統(tǒng)計(jì)值超過(guò)閾值M,則將該內(nèi)存塊鎖在緩存中,N1+N2=1。本發(fā)明鎖在指令緩存中的內(nèi)存塊只有在鎖被解除時(shí)才能被替換,大大提高緩存命中率,減少低級(jí)存儲(chǔ)器的訪問(wèn),減少了平均內(nèi)存訪問(wèn)延遲。
文檔編號(hào)G06F9/38GK101989236SQ201010531799
公開(kāi)日2011年3月23日 申請(qǐng)日期2010年11月4日 優(yōu)先權(quán)日2010年11月4日
發(fā)明者樂(lè)金明, 喬福明, 虞保忠, 陳天洲, 馬建良 申請(qǐng)人:浙江大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
浙江省| 定结县| 新余市| 临江市| 塘沽区| 东源县| 平和县| 苍溪县| 贞丰县| 青铜峡市| 什邡市| 额尔古纳市| 五家渠市| 棋牌| 鄂托克前旗| 松桃| 霍林郭勒市| 钦州市| 宁乡县| 武宁县| 伊吾县| 天台县| 双柏县| 太康县| 高碑店市| 亚东县| 黑河市| 垦利县| 清远市| 孟津县| 叶城县| 信丰县| 湘阴县| 田东县| 鹤壁市| 宜都市| 黄陵县| 锡林郭勒盟| 治多县| 周宁县| 惠来县|