一種管理高速緩存的方法及存儲(chǔ)裝置制造方法
【專利摘要】本發(fā)明實(shí)施例公開(kāi)了管理高速緩存的方法及裝置,其中所述方法應(yīng)用于存儲(chǔ)裝置中,所述存儲(chǔ)裝置包括高速緩存,所述方法包括:所述存儲(chǔ)裝置確定保存在所述高速緩存中的目標(biāo)數(shù)據(jù)是否為順序流中的數(shù)據(jù);當(dāng)所述存儲(chǔ)裝置確定所述目標(biāo)數(shù)據(jù)為順序流中的數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列;所述存儲(chǔ)裝置根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。本發(fā)明實(shí)施例,可有效將高速緩存中的順序流數(shù)據(jù)快速進(jìn)行淘汰,保證高速緩存的高效利用率。
【專利說(shuō)明】一種管理高速緩存的方法及存儲(chǔ)裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,尤其涉及一種管理高速緩存的方法及存儲(chǔ)裝置。
【背景技術(shù)】
[0002]高速緩存是存在于主存(比如,硬盤(pán))與CPU之間的一級(jí)存儲(chǔ)器,由靜態(tài)存儲(chǔ)芯片(Static RAM, SRAM)組成,容量比較小但速度比主存高得多,接近于CPU的速度。局部性原理是高速緩存的理論基礎(chǔ)。局部性原理分為時(shí)間局部性和空間局部性。其中,時(shí)間局部性是指:如果數(shù)據(jù)在時(shí)間點(diǎn)TO被訪問(wèn),那么從TO開(kāi)始的一段時(shí)間內(nèi),該數(shù)據(jù)被再次訪問(wèn)的可能性會(huì)比TO時(shí)刻之前高。空間局部性是指:如果數(shù)據(jù)在時(shí)間點(diǎn)TO被訪問(wèn),那么從TO開(kāi)始的一段時(shí)間內(nèi),該數(shù)據(jù)周圍的其他數(shù)據(jù)被訪問(wèn)的可能性比TO時(shí)刻高。
[0003]因?yàn)榫植啃栽淼拇嬖?,使得人們可以根?jù)訪問(wèn)歷史記錄來(lái)預(yù)測(cè)未來(lái)的輸入輸出訪問(wèn)情況,進(jìn)而將那些硬盤(pán)中預(yù)計(jì)相對(duì)會(huì)被頻繁訪問(wèn)的數(shù)據(jù)提升到性能較高的存儲(chǔ)介質(zhì)中,再周期性地將數(shù)據(jù)同步回低速設(shè)備(比如硬盤(pán)中),從而提升整個(gè)系統(tǒng)的性能。
[0004]目前,存儲(chǔ)裝置可通過(guò)輪轉(zhuǎn)算法(CLOCK算法)對(duì)高速緩存中的數(shù)據(jù)進(jìn)行管理,在CLOCK算法中,將高速緩存中的數(shù)據(jù)從邏輯上組織在一個(gè)環(huán)狀數(shù)據(jù)結(jié)構(gòu)中,并配有一個(gè)指針,稱為CLOCK指針。CLOCK指針按照一定的速率,按照順時(shí)針或者逆時(shí)針?lè)较蜓h(huán)遍歷所述環(huán)狀數(shù)據(jù)結(jié)構(gòu)中的高速緩存中的數(shù)據(jù)。同時(shí),高速緩存中的每個(gè)數(shù)據(jù)有一個(gè)狀態(tài)屬性參數(shù) recency,
[0005]當(dāng)數(shù)據(jù)被訪問(wèn)時(shí),其recency取值I,當(dāng)CLOCK指針旋轉(zhuǎn)到一個(gè)數(shù)據(jù),當(dāng)所述數(shù)據(jù)的recency取值為I時(shí),將所述數(shù)據(jù)的recency修改為O,所述數(shù)據(jù)的recency取值為O時(shí),將所述數(shù)據(jù)從所述高速緩存中淘汰。
[0006]上述現(xiàn)有技術(shù)提供了一種對(duì)高速緩存中的數(shù)據(jù)進(jìn)行管理的方法,但是,該現(xiàn)有技術(shù)中以CLOCK指針旋轉(zhuǎn)的頻率決定數(shù)據(jù)在高速緩存中的保存時(shí)間,當(dāng)被訪問(wèn)的數(shù)據(jù)為順序流(順序流包括兩個(gè)或兩個(gè)以上在硬盤(pán)中地址連續(xù)的數(shù)據(jù))中的數(shù)據(jù)時(shí),順序流的數(shù)據(jù)會(huì)很快占滿整個(gè)緩存,從而浪費(fèi)高速緩存的空間,造成高速緩存的利用效率較低。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施例提供一種管理高速緩存的方法及存儲(chǔ)裝置,可有效將高速緩存中的順序流數(shù)據(jù)快速進(jìn)行淘汰,保證高速緩存的高效利用率。
[0008]本發(fā)明第一方面提供一種管理高速緩存的方法,所述方法應(yīng)用于存儲(chǔ)裝置中,所述存儲(chǔ)裝置包括高速緩存,所述方法包括:
[0009]所述存儲(chǔ)裝置確定保存在所述高速緩存中的目標(biāo)數(shù)據(jù)是否為順序流中的數(shù)據(jù);
[0010]當(dāng)所述存儲(chǔ)裝置確定所述目標(biāo)數(shù)據(jù)為順序流中的數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列;
[0011]所述存儲(chǔ)裝置根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。[0012]結(jié)合第一方面,在第一種可行的實(shí)施方式中,所述方法還可包括:
[0013]當(dāng)所述存儲(chǔ)裝置確定所述目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值為第一數(shù)值,則將所述目標(biāo)數(shù)據(jù)寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列,并當(dāng)所述數(shù)據(jù)淘汰隊(duì)列為空后,根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
[0014]結(jié)合第一方面,在第二種可行的實(shí)施方式中,所述方法還可包括:
[0015]當(dāng)所述存儲(chǔ)裝置確定目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值大于第一數(shù)值,則按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
[0016]結(jié)合第一方面的第一種可行的實(shí)施方式,在第三種可行的實(shí)施方式中,所述方法還可包括:
[0017]當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),若所述目標(biāo)數(shù)據(jù)在所述數(shù)據(jù)淘汰隊(duì)列或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中,從所述高速緩存中獲取所述目標(biāo)數(shù)據(jù),將所述目標(biāo)數(shù)據(jù)從所述數(shù)據(jù)淘汰隊(duì)列中或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中刪除,并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
[0018]結(jié)合第一方面的第二種可行的實(shí)施方式,在第四種可行的實(shí)施方式中,所述方法還可包括:
[0019]當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),從所述高速緩存中獲取所述目標(biāo)數(shù)據(jù),并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
[0020]本發(fā)明第二方面提供一種存儲(chǔ)裝置,包括高速緩存,所述存儲(chǔ)裝置還包括:
[0021]判定模塊,用于確定保存在所述高速緩存中的目標(biāo)數(shù)據(jù)是否為順序流中的數(shù)據(jù);
[0022]第一處理模塊,用于當(dāng)所述判定模塊確定所述目標(biāo)數(shù)據(jù)為順序流中的數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列,并根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
[0023]結(jié)合第二方面,在第一種可行的實(shí)施方式中,所述存儲(chǔ)裝置還可包括:
[0024]第二處理模塊,用于當(dāng)所述判定模塊確定目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值為第一數(shù)值,則將所述目標(biāo)數(shù)據(jù)寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列,并當(dāng)所述數(shù)據(jù)淘汰隊(duì)列為空后,根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
[0025]結(jié)合第二方面,在第二種可行的實(shí)施方式中,所述存儲(chǔ)裝置還可包括:
[0026]第三處理模塊,用于當(dāng)所述判定模塊確定所述目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值大于第一數(shù)值,則按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
[0027]結(jié)合第二方面的第一種可行的實(shí)施方式,在第三種可行的實(shí)施方式中,所述第二處理模塊,還用于當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),若所述目標(biāo)數(shù)據(jù)在所述數(shù)據(jù)淘汰隊(duì)列或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中,則從所述高速緩存中獲取所述目標(biāo)數(shù)據(jù),將所述目標(biāo)數(shù)據(jù)從所述數(shù)據(jù)淘汰隊(duì)列中或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中刪除,并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
[0028]結(jié)合第二方面的第二種可行的實(shí)施方式,在第四種可行的實(shí)施方式中,所述第三處理模塊,還用于當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),從所述高速緩存中獲取所述目標(biāo)數(shù)據(jù),并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
[0029]由上可見(jiàn),在本發(fā)明的一些可行的實(shí)施方式中,所述存儲(chǔ)裝置確定保存在所述高速緩存中的目標(biāo)數(shù)據(jù)是否為順序流中的數(shù)據(jù);當(dāng)所述存儲(chǔ)裝置確定所述目標(biāo)數(shù)據(jù)為順序流中的數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列;所述存儲(chǔ)裝置根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。由此,本發(fā)明實(shí)施例通過(guò)數(shù)據(jù)淘汰隊(duì)列管理順序流中的目標(biāo)數(shù)據(jù)的淘汰,可有效將高速緩存中屬于順序流的目標(biāo)數(shù)據(jù)進(jìn)行淘汰,保證高速緩存的高效利用率。
【專利附圖】
【附圖說(shuō)明】
[0030]圖1為本發(fā)明的管理高速緩存的方法的一實(shí)施例的流程示意圖。
[0031]圖2為本發(fā)明的管理高速緩存的方法的另一實(shí)施例的流程示意圖。
[0032]圖3為本發(fā)明的存儲(chǔ)裝置的一實(shí)施例的結(jié)構(gòu)組成示意圖。
[0033]圖4為本發(fā)明的存儲(chǔ)裝置的另一實(shí)施例的結(jié)構(gòu)組成示意圖。
[0034]圖5為本發(fā)明的存儲(chǔ)裝置的另一實(shí)施例的結(jié)構(gòu)組成示意圖。
【具體實(shí)施方式】
[0035]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
[0036]圖1為本發(fā)明的管理高速緩存的方法的一實(shí)施例的流程示意圖。具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的管理高速緩存的方法可應(yīng)用于存儲(chǔ)裝置中,所述存儲(chǔ)裝置包括高速緩存。如圖1所示,本發(fā)明實(shí)施例的方法可包括:
[0037]步驟S110,存儲(chǔ)裝置確定保存在所述高速緩存中的目標(biāo)數(shù)據(jù)是否為順序流中的數(shù)據(jù)。
[0038]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的順序流可包括兩個(gè)或兩個(gè)以上在硬盤(pán)等低速設(shè)備中地址連續(xù)的數(shù)據(jù),順序流的判斷方法多種多樣,在比不進(jìn)行贅述。以硬盤(pán)為例,比如,比如,當(dāng)四個(gè)被連續(xù)訪問(wèn)的數(shù)據(jù)的邏輯快地址依次遞增時(shí),則可認(rèn)為這四個(gè)數(shù)據(jù)形成一個(gè)順序流,其中四個(gè)數(shù)據(jù)的均為該順序流中的數(shù)據(jù)。
[0039]步驟S111,當(dāng)所述存儲(chǔ)裝置確定所述目標(biāo)數(shù)據(jù)為順序流中的數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列。
[0040]具體實(shí)現(xiàn)中,在步驟S111,當(dāng)將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列時(shí),若所述順序流中的其他數(shù)據(jù)未寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中,本發(fā)明實(shí)施例,還可將所述目標(biāo)數(shù)據(jù)所屬的順序流中的其他數(shù)據(jù)也寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中。并且,順序流中的數(shù)據(jù)在所述數(shù)據(jù)淘汰隊(duì)列中的排放順序與所述數(shù)據(jù)在順序流中的順序可一致。
[0041]假設(shè),硬盤(pán)中的數(shù)據(jù)的一個(gè)順序流中的數(shù)據(jù)的地址分別為:1、2、3、4。當(dāng)存儲(chǔ)裝置接收到訪問(wèn)地址為4的數(shù)據(jù)時(shí),在把地址為4的數(shù)據(jù)寫(xiě)入高速緩存時(shí),檢查硬盤(pán)中地址為1、2、3的數(shù)據(jù)是不是都在高速緩存中,如果都在高速緩存中,這時(shí),可識(shí)別出地址4的數(shù)據(jù)為順序流中的數(shù)據(jù),這樣,存儲(chǔ)裝置可在將地址為4的數(shù)據(jù)寫(xiě)入高速緩存的數(shù)據(jù)淘汰隊(duì)列時(shí),并且,將地址1-3的數(shù)據(jù)也寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列。
[0042]當(dāng)然,具體實(shí)現(xiàn)中,當(dāng)將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列時(shí),所述目標(biāo)數(shù)據(jù)所屬的順序流的中的其他數(shù)據(jù)也可能已經(jīng)寫(xiě)入了所述數(shù)據(jù)淘汰隊(duì)列,則此時(shí),僅將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列即可。
[0043]步驟S112,所述存儲(chǔ)裝置根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
[0044]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的數(shù)據(jù)淘汰隊(duì)列可為先進(jìn)先出(First In First Out,FIFO)隊(duì)列,這樣在從數(shù)據(jù)淘汰隊(duì)列中淘汰數(shù)據(jù)時(shí),可優(yōu)先淘汰先進(jìn)入隊(duì)列的數(shù)據(jù)。當(dāng)然,本發(fā)明實(shí)施例的數(shù)據(jù)淘汰隊(duì)列也可為其他形式的隊(duì)列,并不限于FIFO。
[0045]由上可見(jiàn),在本發(fā)明上述實(shí)施例中,將順序流的數(shù)據(jù)的淘汰單獨(dú)通過(guò)數(shù)據(jù)淘汰隊(duì)列來(lái)完成,可有效將高速緩存中的順序流數(shù)據(jù)快速進(jìn)行淘汰,保證高速緩存的高效利用率。
[0046]圖2為本發(fā)明的管理高速緩存的方法的另一實(shí)施例的流程示意圖。如圖2所示,其可包括:
[0047]步驟S210,存儲(chǔ)裝置確定保存在所述高速緩存中的目標(biāo)數(shù)據(jù)是否為順序流中的數(shù)據(jù)。
[0048]具體實(shí)現(xiàn)中,步驟S210與步驟SllO可相同,在此可不進(jìn)行贅述。
[0049]步驟S211,當(dāng)所述存儲(chǔ)裝置確定所述目標(biāo)數(shù)據(jù)為順序流中的數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列。
[0050]具體實(shí)現(xiàn)中,步驟S211與步驟Slll可相同,在此可不進(jìn)行贅述。
[0051]具體實(shí)現(xiàn)中,將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列之后,還可將所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)(可簡(jiǎn)記為iecencyl)取值為第一數(shù)值。具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例可通過(guò)當(dāng)前狀態(tài)屬性參數(shù)的取值來(lái)指示目標(biāo)數(shù)據(jù)是否即將被淘汰。比如,當(dāng)所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl取值為第一數(shù)值(比如,第一數(shù)值可為“O”)時(shí),表示所述目標(biāo)數(shù)據(jù)是即將從高速緩存中淘汰的數(shù)據(jù)。
[0052]步驟S212,所述存儲(chǔ)裝置根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
[0053]具體實(shí)現(xiàn)中,步驟S212可與步驟SI 12相同,在此可不進(jìn)行贅述。
[0054]步驟S221,當(dāng)所述存儲(chǔ)裝置確定所述目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值為第一數(shù)值,則將所述目標(biāo)數(shù)據(jù)寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列,并當(dāng)所述數(shù)據(jù)淘汰隊(duì)列為空后,根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
[0055]步驟S222,當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),若所述目標(biāo)數(shù)據(jù)在所述數(shù)據(jù)淘汰隊(duì)列或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中,從所述高速緩存中獲取所述目標(biāo)數(shù)據(jù),將所述目標(biāo)數(shù)據(jù)從所述數(shù)據(jù)淘汰隊(duì)列中或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中刪除,并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
[0056]步驟S231,當(dāng)所述存儲(chǔ)裝置確定所述目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值大于第一數(shù)值,則按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
[0057]步驟S232,當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),從所述高速緩存中獲取所述目標(biāo)數(shù)據(jù),并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
[0058]具體實(shí)現(xiàn)中,在步驟S221或步驟S231,本發(fā)明實(shí)施例可通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷高速緩存中的數(shù)據(jù),并根據(jù)輪轉(zhuǎn)指針遍歷到的目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值,對(duì)高速緩存中的所述目標(biāo)數(shù)據(jù)是否需要被淘汰進(jìn)行相應(yīng)處理。比如,在步驟S221或步驟S231,可通過(guò)CLOCK指針按照預(yù)定的速度和預(yù)定的方向(比如,順時(shí)針或逆時(shí)針)循環(huán)遍歷所述高速緩存中的數(shù)據(jù),當(dāng)所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值為第一數(shù)值,則將所述目標(biāo)數(shù)據(jù)寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列,并當(dāng)所述數(shù)據(jù)淘汰隊(duì)列為空后,根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。如前所述,當(dāng)所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl取值為第一數(shù)值(比如,第一數(shù)值可為“O”)時(shí),表示所述目標(biāo)數(shù)據(jù)是即將從高速緩存中淘汰的數(shù)據(jù);而當(dāng)所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl的取值大于第一數(shù)值,則按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。具體實(shí)現(xiàn)中,當(dāng)目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl的取值大于第一數(shù)值(比如,取值為“ I ”),表示在輪轉(zhuǎn)指針下次循環(huán)到所述目標(biāo)數(shù)據(jù)之前,所述目標(biāo)數(shù)據(jù)不會(huì)從所述高速緩存中淘汰。
[0059]所述按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值中的遞減規(guī)則可為遞減n,其中,η為正整數(shù)。本發(fā)明實(shí)施例,當(dāng)目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl的取值大于第一數(shù)值(比如,recencyl的取值可為“ I”或“2”或其他)時(shí),按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl的取值的作用在于,使所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl隨著輪轉(zhuǎn)指針循環(huán)的次數(shù)的增加,逐漸降低,直至降低為所述第一數(shù)值,由此,最終通過(guò)步驟S221將所述目標(biāo)數(shù)據(jù)寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中,以便對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
[0060]由此可見(jiàn),本發(fā)明實(shí)施例的CLOCK指針的作用不再像現(xiàn)有技術(shù)那樣直接用于淘汰數(shù)據(jù),而僅是選擇一些即將被淘汰的數(shù)據(jù)放入淘汰候補(bǔ)隊(duì)列,由淘汰候補(bǔ)隊(duì)列根據(jù)預(yù)定先進(jìn)先出的規(guī)則實(shí)施數(shù)據(jù)的真正淘汰??捎行У貙?duì)高速緩存的存儲(chǔ)陣列的性能進(jìn)行削峰填谷。
[0061]具體實(shí)現(xiàn)中,在步驟S222中,充分考慮了即將被淘汰的數(shù)據(jù)重新變?yōu)闊狳c(diǎn)被訪問(wèn)數(shù)據(jù)后的處理方案。具體的,在步驟S222,當(dāng)處于數(shù)據(jù)淘汰隊(duì)列或數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中的目標(biāo)數(shù)據(jù)被訪問(wèn)時(shí),將所述目標(biāo)數(shù)據(jù)從所述數(shù)據(jù)淘汰隊(duì)列中或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中刪除,并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。由此,可避免變?yōu)闊狳c(diǎn)的目標(biāo)數(shù)據(jù)被執(zhí)行淘汰處理。
[0062]其中,步驟S222或步驟S232中按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值,具體可為,將所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值遞增η。本發(fā)明實(shí)施例,將所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl的取值按照預(yù)設(shè)的遞增規(guī)則修改的作用在于,使所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl隨著訪問(wèn)次數(shù)的增加,逐漸增加,由此,本發(fā)明實(shí)施例可使訪問(wèn)頻繁的目標(biāo)數(shù)據(jù)不會(huì)在短時(shí)間寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中,而避免了將熱點(diǎn)被訪問(wèn)數(shù)據(jù)進(jìn)行淘汰。[0063]具體實(shí)現(xiàn)中,在其他的實(shí)施例中,本發(fā)明的管理高速緩存的方法可僅包括圖2中S210-S221-S222的分支;或者,本發(fā)明的管理高速緩存的方法也可僅包括圖2中的S210-S231-S232 的分支。
[0064]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的方法還可包括:通過(guò)歷史狀態(tài)屬性參數(shù)(可簡(jiǎn)記為:recency2)記錄所述當(dāng)前狀態(tài)屬性參數(shù)recencyl的歷史最近一次的取值。由此,本發(fā)明實(shí)施例可通過(guò)兩個(gè)狀態(tài)屬性參數(shù)來(lái)記錄高速緩存中的數(shù)據(jù)被訪問(wèn)的狀態(tài),這樣便可記錄下數(shù)據(jù)曾經(jīng)被訪問(wèn)的變化趨勢(shì),比如,假設(shè)數(shù)據(jù)A, TO時(shí)刻recencyl取值為I, recency2取值為0,Tl時(shí)刻該數(shù)據(jù)A被再次訪問(wèn),則recencyl取值變?yōu)?,recency2取值將跟隨變?yōu)镮。由TO和Tl時(shí)刻的recencyl和recency2的取值的變化便可知,數(shù)據(jù)A在TO至Tl時(shí)刻的訪問(wèn)趨勢(shì)是次數(shù)增多。
[0065]具體實(shí)現(xiàn)中,在本發(fā)明實(shí)施例包括歷史狀態(tài)屬性參數(shù)recency2和當(dāng)前狀態(tài)屬性參數(shù)recencyl的前提下,本發(fā)明實(shí)施例的方法還可包括:
[0066]當(dāng)輪轉(zhuǎn)指針(比如,CLOCK指針)連續(xù)掃描所述高速緩存中的X個(gè)數(shù)據(jù)后,所述X個(gè)數(shù)據(jù)中有Y個(gè)數(shù)據(jù)的歷史狀態(tài)屬性參數(shù)recency2大于當(dāng)前狀態(tài)屬性參數(shù)recencyl,則倉(cāng)ij建一個(gè)冷指針指向所述X個(gè)數(shù)據(jù)的第一個(gè)數(shù)據(jù);
[0067]其中,所述X和Y為正整數(shù)。
[0068]此時(shí),輪轉(zhuǎn)指針可直接移至所述冷指針?biāo)赶虻奈恢谩?br>
[0069]由此,本發(fā)明實(shí)施例通過(guò)冷指針來(lái)改變輪轉(zhuǎn)指針的指示位置,可便于輪轉(zhuǎn)指針跳到不常被訪問(wèn)的數(shù)據(jù)區(qū)域,而直接迅速將這些數(shù)據(jù)移入淘汰候補(bǔ)隊(duì)列進(jìn)行淘汰。這樣可提高高速緩存的數(shù)據(jù)的淘汰速率,提高整個(gè)系統(tǒng)的性能。
[0070]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的方法還可包括:
[0071]當(dāng)所述數(shù)據(jù)淘汰隊(duì)列中的數(shù)據(jù)量加上所述淘汰候補(bǔ)隊(duì)列中的數(shù)據(jù)量小于第一閾值時(shí),加快所述輪轉(zhuǎn)指針(比如,CLOCK指針)遍歷所述高速緩存中的數(shù)據(jù)的速度;
[0072]當(dāng)所述數(shù)據(jù)淘汰隊(duì)列中的數(shù)據(jù)量加上所述淘汰候補(bǔ)隊(duì)列中的數(shù)據(jù)量大于第二閾值時(shí),將所述輪轉(zhuǎn)指針(比如,CLOCK指針)遍歷所述高速緩存中的數(shù)據(jù)的速度調(diào)整為所述預(yù)定的速度;
[0073]所述第二閾值大于所述第一閾值。具體實(shí)現(xiàn)中,所述第一閾值和所述第二閾值可為絕對(duì)的數(shù)值,也可是百分比,當(dāng)采用百分比時(shí),先將百分比乘上高速緩存中的總數(shù)量之后,再跟數(shù)據(jù)淘汰隊(duì)列中的數(shù)據(jù)量加上所述淘汰候補(bǔ)隊(duì)列中的數(shù)據(jù)量之和進(jìn)行比較。
[0074]由此,本發(fā)明實(shí)施例通過(guò)控制輪轉(zhuǎn)指針的移動(dòng)速度,從而保證淘汰候補(bǔ)隊(duì)列及數(shù)據(jù)淘汰隊(duì)列中的相對(duì)低價(jià)值數(shù)據(jù)的數(shù)據(jù)量保持在一個(gè)合理的水平,從而可達(dá)到有效吸收系統(tǒng)突發(fā)的輸入輸出的效果。相應(yīng)的,本發(fā)明實(shí)施例提供了可用于實(shí)施本發(fā)明的管理高速緩存的方法的存儲(chǔ)裝置的實(shí)施例。
[0075]圖3為本發(fā)明的存儲(chǔ)裝置的一實(shí)施例的結(jié)構(gòu)組成示意圖。如圖3所示,其可包括:高速緩存30、判定模塊31和第一處理模塊32,其中,
[0076]高速緩存30,用于緩存數(shù)據(jù);
[0077]判定模塊31,用于確定保存在所述高速緩存30中的目標(biāo)數(shù)據(jù)是否為順序流中的數(shù)據(jù)。
[0078]第一處理模塊32,用于當(dāng)所述判定模塊31確定所述目標(biāo)數(shù)據(jù)為順序流中的數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存30的數(shù)據(jù)淘汰隊(duì)列,并根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存30中寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
[0079]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的順序流可包括兩個(gè)或兩個(gè)以上在硬盤(pán)等低速設(shè)備中地址連續(xù)的數(shù)據(jù),順序流的判斷方法多種多樣,在比不進(jìn)行贅述。以硬盤(pán)為例,比如,當(dāng)四個(gè)被連續(xù)訪問(wèn)的數(shù)據(jù)的邏輯快地址依次遞增時(shí),則可認(rèn)為這四個(gè)數(shù)據(jù)形成一個(gè)順序流,其中四個(gè)數(shù)據(jù)的均為該順序流中的數(shù)據(jù)。
[0080]具體實(shí)現(xiàn)中,當(dāng)所述第一處理模塊32將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存30的數(shù)據(jù)淘汰隊(duì)列時(shí),若所述順序流中的其他數(shù)據(jù)未寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中,本發(fā)明實(shí)施例中,所述第一處理模塊32還可用于將所述目標(biāo)數(shù)據(jù)所屬的順序流中的其他數(shù)據(jù)也寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中。并且,所述第一處理模塊32將所述順序流中的數(shù)據(jù)在所述數(shù)據(jù)淘汰隊(duì)列中的排放順序與所述數(shù)據(jù)在順序流中的順序可一致。
[0081]假設(shè),硬盤(pán)中的數(shù)據(jù)的一個(gè)順序流中的數(shù)據(jù)的地址分別為:1、2、3、4。當(dāng)存儲(chǔ)裝置接收到訪問(wèn)地址為4的數(shù)據(jù)時(shí),在把地址為4的數(shù)據(jù)寫(xiě)入高速緩存時(shí),檢查硬盤(pán)中地址為1、
2、3的數(shù)據(jù)是不是都在高速緩存中,如果都在高速緩存中,這時(shí),判定模塊31可確定地址4的數(shù)據(jù)為順序流中的數(shù)據(jù),這樣,第一處理模塊32可在將地址為4的數(shù)據(jù)寫(xiě)入高速緩存的數(shù)據(jù)淘汰隊(duì)列時(shí),將地址1-3的數(shù)據(jù)也寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列。
[0082]當(dāng)然,具體實(shí)現(xiàn)中,當(dāng)將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列時(shí),所述目標(biāo)數(shù)據(jù)所屬的順序流的中的其他數(shù)據(jù)也可能已經(jīng)寫(xiě)入了所述數(shù)據(jù)淘汰隊(duì)列,則此時(shí),僅將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列即可。
[0083]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的數(shù)據(jù)淘汰隊(duì)列可為先進(jìn)先出(First In First Out,FIFO)隊(duì)列,這樣在從數(shù)據(jù)淘汰隊(duì)列中淘汰數(shù)據(jù)時(shí),可優(yōu)先淘汰先進(jìn)入隊(duì)列的數(shù)據(jù)。當(dāng)然,本發(fā)明實(shí)施例的數(shù)據(jù)淘汰隊(duì)列也可為其他形式的隊(duì)列,并不限于FIFO。
[0084]由上可見(jiàn),在本發(fā)明上述實(shí)施例中,將順序流的數(shù)據(jù)的淘汰單獨(dú)通過(guò)數(shù)據(jù)淘汰隊(duì)列來(lái)完成,可有效將高速緩存中的順序流數(shù)據(jù)快速進(jìn)行淘汰,保證高速緩存的高效利用率。
[0085]圖4為本發(fā)明的存儲(chǔ)裝置的另一實(shí)施例的結(jié)構(gòu)組成示意圖。如圖4所示,其可包括:高速緩存40、判定模塊41、第一處理模塊42、第二處理模塊43以及第三處理模塊44,其中:
[0086]所述高速緩存40可與圖3中的高速緩存30相同,在此不進(jìn)行贅述。
[0087]所述判定模塊41可與圖3中的判定模塊31相同,在此不進(jìn)行贅述。
[0088]所述第一處理模塊42可與圖3中的第一處理模塊32相同,在此不進(jìn)行贅述。
[0089]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的第一處理模塊42在將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列之后,還可將所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)(可簡(jiǎn)記為:recencyl)取值為第一數(shù)值。具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例可通過(guò)當(dāng)前狀態(tài)屬性參數(shù)的取值來(lái)指示目標(biāo)數(shù)據(jù)是否即將被淘汰。比如,當(dāng)所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl取值為第一數(shù)值(比如,第一數(shù)值可為“O”)時(shí),表示所述目標(biāo)數(shù)據(jù)是即將從高速緩存中淘汰的數(shù)據(jù)。
[0090]所述第二處理模塊43,用于當(dāng)所述判定模塊41確定目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值為第一數(shù)值,則將所述目標(biāo)數(shù)據(jù)寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列,并當(dāng)所述數(shù)據(jù)淘汰隊(duì)列為空后,根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存40中寫(xiě)入所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理,以及當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),若所述目標(biāo)數(shù)據(jù)在所述數(shù)據(jù)淘汰隊(duì)列或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中,則從所述高速緩存40中獲取所述目標(biāo)數(shù)據(jù),將所述目標(biāo)數(shù)據(jù)從所述數(shù)據(jù)淘汰隊(duì)列中或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中刪除,并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
[0091]所述第三處理模塊44,用于當(dāng)所述判定模塊41確定所述目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值大于第一數(shù)值,則按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值,以及當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),從所述高速緩存中獲取所述目標(biāo)數(shù)據(jù)給所述存儲(chǔ)裝置,并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
[0092]具體實(shí)現(xiàn)中,第二處理模塊43或第三處理模塊44可用于通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷高速緩存中的數(shù)據(jù),并根據(jù)輪轉(zhuǎn)指針遍歷到的目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值,對(duì)高速緩存中的所述目標(biāo)數(shù)據(jù)是否需要被淘汰進(jìn)行相應(yīng)處理。比如,第二處理模塊43或第三處理模塊44,可用于通過(guò)CLOCK指針按照預(yù)定的速度和預(yù)定的方向(比如,順時(shí)針或逆時(shí)針)循環(huán)遍歷所述高速緩存中的數(shù)據(jù),當(dāng)所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值為第一數(shù)值,則將所述目標(biāo)數(shù)據(jù)寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列,并當(dāng)所述數(shù)據(jù)淘汰隊(duì)列為空后,根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。如前所述,當(dāng)所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl取值為第一數(shù)值(比如,第一數(shù)值可為“O”)時(shí),表示所述目標(biāo)數(shù)據(jù)是即將從高速緩存中淘汰的數(shù)據(jù);而當(dāng)所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl的取值大于第一數(shù)值,則按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。具體實(shí)現(xiàn)中,當(dāng)目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl的取值大于第一數(shù)值(比如,取值為“ 1”),表示在輪轉(zhuǎn)指針下次循環(huán)到所述目標(biāo)數(shù)據(jù)之前,所述目標(biāo)數(shù)據(jù)不會(huì)從所述高速緩存中淘汰。
[0093]其中,所述按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值中的遞減規(guī)則可為遞減n,其中,η為正整數(shù)。本發(fā)明實(shí)施例,當(dāng)目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl的取值大于第一數(shù)值(比如,recencyl的取值可為“ I”或“2”或其他)時(shí),按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl的取值的作用在于,使所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl隨著輪轉(zhuǎn)指針循環(huán)的次數(shù)的增加,逐漸降低,直至降低為所述第一數(shù)值,由此,最終通過(guò)步驟S221將所述目標(biāo)數(shù)據(jù)寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中,以便對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
[0094]由此可見(jiàn),本發(fā)明實(shí)施例的CLOCK指針的作用不再像現(xiàn)有技術(shù)那樣直接用于淘汰數(shù)據(jù),而僅是選擇一些即將被淘汰的數(shù)據(jù)放入淘汰候補(bǔ)隊(duì)列,由淘汰候補(bǔ)隊(duì)列根據(jù)預(yù)定先進(jìn)先出的規(guī)則實(shí)施數(shù)據(jù)的真正淘汰??捎行У貙?duì)高速緩存的存儲(chǔ)陣列的性能進(jìn)行削峰填谷。
[0095]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例,充分考慮了即將被淘汰的數(shù)據(jù)重新變?yōu)闊狳c(diǎn)被訪問(wèn)數(shù)據(jù)后的處理方案。具體的,當(dāng)處于數(shù)據(jù)淘汰隊(duì)列或數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中的目標(biāo)數(shù)據(jù)被訪問(wèn)時(shí),第二處理模塊43可用于將所述目標(biāo)數(shù)據(jù)從所述數(shù)據(jù)淘汰隊(duì)列中或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中刪除,并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。由此,可避免變?yōu)闊狳c(diǎn)的目標(biāo)數(shù)據(jù)被執(zhí)行淘汰處理。
[0096]其中,按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值,具體可為,將所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值遞增η。本發(fā)明實(shí)施例,將所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl的取值按照預(yù)設(shè)的遞增規(guī)則修改的作用在于,使所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)recencyl隨著訪問(wèn)次數(shù)的增加,逐漸增加,由此,本發(fā)明實(shí)施例可使訪問(wèn)頻繁的目標(biāo)數(shù)據(jù)不會(huì)在短時(shí)間寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中,而避免了將熱點(diǎn)被訪問(wèn)數(shù)據(jù)進(jìn)行淘汰。
[0097]進(jìn)一步,在其他的一些實(shí)施例中,本發(fā)明實(shí)施例的存儲(chǔ)裝置還可包括記錄模塊(未圖示)和/或指針管理模塊(未圖示),其中:
[0098]所述記錄模塊,用于通過(guò)歷史狀態(tài)屬性參數(shù)recency2記錄所述當(dāng)前狀態(tài)屬性參數(shù)recencyl的歷史最近一次的取值。由此,本發(fā)明實(shí)施例可通過(guò)兩個(gè)狀態(tài)屬性參數(shù)來(lái)記錄高速緩存中的數(shù)據(jù)被訪問(wèn)的狀態(tài),這樣便可記錄下數(shù)據(jù)曾經(jīng)被訪問(wèn)的變化趨勢(shì),比如,假設(shè)數(shù)據(jù)A,TO時(shí)刻recencyl取值為1,recency〗取值為0,Tl時(shí)刻該數(shù)據(jù)A被再次訪問(wèn),則recencyl取值變?yōu)?, recency2取值將跟隨變?yōu)镮。由TO和Tl時(shí)刻的recencyl和recency2的取值的變化便可知,數(shù)據(jù)A在TO至Tl時(shí)刻的訪問(wèn)趨勢(shì)是次數(shù)增多。
[0099]所述指針管理模塊,用于當(dāng)輪轉(zhuǎn)指針(比如,CLOCK指針)連續(xù)掃描所述高速緩存中的X個(gè)數(shù)據(jù)后,所述X個(gè)數(shù)據(jù)中有Y個(gè)數(shù)據(jù)的歷史狀態(tài)屬性參數(shù)recency2大于當(dāng)前狀態(tài)屬性參數(shù)recencyl,則倉(cāng)Il建一個(gè)冷指針指向所述X個(gè)數(shù)據(jù)的第一個(gè)數(shù)據(jù),并將所述輪轉(zhuǎn)指針直接移至所述冷指針?biāo)赶虻臄?shù)據(jù), 其中,所述X和Y為正整數(shù)。
[0100]由此,本發(fā)明實(shí)施例通過(guò)冷指針來(lái)改變輪轉(zhuǎn)指針的指示位置,可便于輪轉(zhuǎn)指針跳到不常被訪問(wèn)的數(shù)據(jù)區(qū)域,而直接迅速將這些數(shù)據(jù)移入淘汰候補(bǔ)隊(duì)列進(jìn)行淘汰。這樣可提高高速緩存的數(shù)據(jù)的淘汰速率,提高整個(gè)系統(tǒng)的性能。
[0101]具體實(shí)現(xiàn)中,所述指針管理模塊還用于當(dāng)所述數(shù)據(jù)淘汰隊(duì)列中的數(shù)據(jù)量加上所述淘汰候補(bǔ)隊(duì)列中的數(shù)據(jù)量小于第一閾值時(shí),加快所述輪轉(zhuǎn)指針(比如,CLOCK指針)遍歷所述高速緩存中的數(shù)據(jù)的速度;當(dāng)所述數(shù)據(jù)淘汰隊(duì)列中的數(shù)據(jù)量加上所述淘汰候補(bǔ)隊(duì)列中的數(shù)據(jù)量大于第二閾值時(shí),將所述輪轉(zhuǎn)指針(比如,CLOCK指針)遍歷所述高速緩存中的數(shù)據(jù)的速度調(diào)整為所述預(yù)定的速度;所述第二閾值大于所述第一閾值。具體實(shí)現(xiàn)中,所述第一閾值和所述第二閾值可為絕對(duì)的數(shù)值,也可是百分比,當(dāng)采用百分比時(shí),先將百分比乘上高速緩存中的總數(shù)量之后,再跟數(shù)據(jù)淘汰隊(duì)列中的數(shù)據(jù)量加上所述淘汰候補(bǔ)隊(duì)列中的數(shù)據(jù)量之和進(jìn)行比較。
[0102]由此,本發(fā)明實(shí)施例通過(guò)控制輪轉(zhuǎn)指針的移動(dòng)速度,從而保證淘汰候補(bǔ)隊(duì)列及數(shù)據(jù)淘汰隊(duì)列中的相對(duì)低價(jià)值數(shù)據(jù)的數(shù)據(jù)量保持在一個(gè)合理的水平,從而可達(dá)到有效吸收系統(tǒng)突發(fā)的輸入輸出的效果。
[0103]以上實(shí)施例均是從的管理高速緩存的設(shè)備所包含的功能模塊的角度對(duì)設(shè)備的結(jié)構(gòu)組成進(jìn)行了限定,具體實(shí)現(xiàn)中,如圖5所示,作為本發(fā)明實(shí)施例的存儲(chǔ)裝置的一種硬件結(jié)構(gòu)實(shí)施例,本發(fā)明的存儲(chǔ)裝置可包括存儲(chǔ)器51和處理器52,其中,存儲(chǔ)器51包括高速緩存,除此之外,所述存儲(chǔ)器51中還存儲(chǔ)有特定的程序代碼,處理器52可通過(guò)調(diào)用存儲(chǔ)器51中的所述特定的程序代碼,用于執(zhí)行本發(fā)明圖1或圖2實(shí)施例所示的存儲(chǔ)裝置所執(zhí)行的流程。[0104] 以上所列舉的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種管理高速緩存的方法,其特征在于,所述方法應(yīng)用于存儲(chǔ)裝置中,所述存儲(chǔ)裝置包括高速緩存,所述方法包括: 所述存儲(chǔ)裝置確定保存在所述高速緩存中的目標(biāo)數(shù)據(jù)是否為順序流中的數(shù)據(jù); 當(dāng)所述存儲(chǔ)裝置確定所述目標(biāo)數(shù)據(jù)為順序流中的數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列; 所述存儲(chǔ)裝置根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
2.如權(quán)利要求1所述的管理高速緩存的方法,其特征在于,還包括: 當(dāng)所述存儲(chǔ)裝置確定所述目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值為第一數(shù)值,則將所述目標(biāo)數(shù)據(jù)寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列,并當(dāng)所述數(shù)據(jù)淘汰隊(duì)列為空后,根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
3.如權(quán)利要求1所述的管理高速緩存的方法,其特征在于,還包括: 當(dāng)所述存儲(chǔ)裝置確定目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值大于第一數(shù)值,則按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
4.如權(quán)利要求2所述的管理高速緩存的方法,其特征在于,還包括: 當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),若所述目標(biāo)數(shù)據(jù)在所述數(shù)據(jù)淘汰隊(duì)列或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中,從所述高速緩存中獲取所述目標(biāo)數(shù)據(jù),將所述目標(biāo)數(shù)據(jù)從所述數(shù)據(jù)淘汰隊(duì)列中或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中刪除,并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)`前狀態(tài)屬性參數(shù)的取值。
5.如權(quán)利要求3所述的管理高速緩存的方法,其特征在于,還包括: 當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),從所述高速緩存中獲取所述目標(biāo)數(shù)據(jù),并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
6.一種存儲(chǔ)裝置,包括高速緩存,其特征在于,所述存儲(chǔ)裝置還包括: 判定模塊,用于確定保存在所述高速緩存中的目標(biāo)數(shù)據(jù)是否為順序流中的數(shù)據(jù); 第一處理模塊,用于當(dāng)所述判定模塊確定所述目標(biāo)數(shù)據(jù)為順序流中的數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述高速緩存的數(shù)據(jù)淘汰隊(duì)列,并根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
7.如權(quán)利要求6所述的存儲(chǔ)裝置,其特征在于,還包括: 第二處理模塊,用于當(dāng)所述判定模塊確定目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值為第一數(shù)值,則將所述目標(biāo)數(shù)據(jù)寫(xiě)入數(shù)據(jù)淘汰候補(bǔ)隊(duì)列,并當(dāng)所述數(shù)據(jù)淘汰隊(duì)列為空后,根據(jù)先進(jìn)先出的原則,對(duì)所述高速緩存中寫(xiě)入所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中的所述目標(biāo)數(shù)據(jù)進(jìn)行淘汰處理。
8.如權(quán)利要求6所述的存儲(chǔ)裝置,其特征在于,還包括: 第三處理模塊,用于當(dāng)所述判定模塊確定所述目標(biāo)數(shù)據(jù)不是順序流中的數(shù)據(jù),且通過(guò)輪轉(zhuǎn)指針循環(huán)遍歷到所述目標(biāo)數(shù)據(jù)時(shí),所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值大于第一數(shù)值,則按照預(yù)設(shè)的遞減規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
9.如權(quán)利要求7所述的存儲(chǔ)裝置,其特征在于,所述第二處理模塊,還用于當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),若所述目標(biāo)數(shù)據(jù)在所述數(shù)據(jù)淘汰隊(duì)列或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中,則從所述高速緩存中獲取所述目標(biāo)數(shù)據(jù),將所述目標(biāo)數(shù)據(jù)從所述數(shù)據(jù)淘汰隊(duì)列中或所述數(shù)據(jù)淘汰候補(bǔ)隊(duì)列中刪除,并按照與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
10.如權(quán)利要求8所述的存儲(chǔ)裝置,其特征在于,所述第三處理模塊,還用于當(dāng)所述存儲(chǔ)裝置接收到請(qǐng)求訪問(wèn)所述目標(biāo)數(shù)據(jù)的訪問(wèn)請(qǐng)求時(shí),從所述高速緩存中獲取所述目標(biāo)數(shù)據(jù),并按照 與所述遞減規(guī)則反向的遞增規(guī)則修改所述目標(biāo)數(shù)據(jù)的當(dāng)前狀態(tài)屬性參數(shù)的取值。
【文檔編號(hào)】G06F12/08GK103761052SQ201310740472
【公開(kāi)日】2014年4月30日 申請(qǐng)日期:2013年12月28日 優(yōu)先權(quán)日:2013年12月28日
【發(fā)明者】龔濤 申請(qǐng)人:華為技術(shù)有限公司