两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

固態(tài)硬盤數(shù)據(jù)緩存方法及裝置與流程

文檔序號(hào):11234017閱讀:1079來源:國知局
固態(tài)硬盤數(shù)據(jù)緩存方法及裝置與流程

本申請涉及存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種固態(tài)硬盤數(shù)據(jù)緩存方法及裝置。



背景技術(shù):

固態(tài)硬盤(英文:solidstatedrives,縮寫:ssd)通常指用固態(tài)電子存儲(chǔ)芯片陣列制成的硬盤,由控制單元和存儲(chǔ)單元組成。固態(tài)硬盤在接口的規(guī)范和定義、功能及使用方法上與普通硬盤相同,被廣泛應(yīng)用于各行各業(yè)。

固態(tài)硬盤不存在尋道時(shí)間,在隨機(jī)讀取零散小文件的時(shí)候效率較高,加載程序的速度較快。固態(tài)硬盤緩存技術(shù)即將需要頻繁讀寫的數(shù)據(jù)緩存到讀寫速度較為快速的固態(tài)硬盤中,加速這類熱點(diǎn)數(shù)據(jù)的讀寫速度。目前,固態(tài)硬盤主控通常采用業(yè)務(wù)無關(guān)性設(shè)計(jì),即固態(tài)硬盤主控不理解業(yè)務(wù)數(shù)據(jù)內(nèi)容,不預(yù)估各種類型數(shù)據(jù)的數(shù)據(jù)塊大小和訪問頻率。現(xiàn)有的固態(tài)硬盤數(shù)據(jù)緩存方法通常針對所有數(shù)據(jù)進(jìn)行統(tǒng)一處理,使用有限的ram空間對所有主機(jī)類型數(shù)據(jù)進(jìn)行統(tǒng)一緩存,其中,所有主機(jī)類型數(shù)據(jù)均采用相同方式存儲(chǔ)。

然而,在常用特征數(shù)據(jù)和非常用特征數(shù)據(jù)同時(shí)讀寫的情況下,現(xiàn)有的固態(tài)硬盤數(shù)據(jù)緩存方法,會(huì)造成非常用特征數(shù)據(jù)與常用特征數(shù)據(jù)搶占有限的緩存資源,引發(fā)常用特征數(shù)據(jù)與非常用特征數(shù)據(jù)的緩存數(shù)據(jù)交叉下刷,促使常用特征數(shù)據(jù)與非常用特征數(shù)據(jù)在閃存上交叉存放的概率提升,進(jìn)一步導(dǎo)致后續(xù)垃圾回收(英文:garbagecollection,縮寫:gc)機(jī)制搬移有效數(shù)據(jù)量的增加,并且,常用特征數(shù)據(jù)的緩存命中率低,下刷率較高,容易因?yàn)轭l繁訪問元數(shù)據(jù)而頻繁訪問閃存,導(dǎo)致固態(tài)硬盤的性能降低。



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

本申請?zhí)峁┮环N固態(tài)硬盤數(shù)據(jù)緩存方法及裝置,以解決現(xiàn)有的固態(tài)硬盤數(shù)據(jù)緩存方法導(dǎo)致固態(tài)硬盤的性能降低的問題。

第一方面,本申請實(shí)施例提供一種固態(tài)硬盤數(shù)據(jù)緩存方法,包括如下步驟:

檢測待緩存數(shù)據(jù)的數(shù)據(jù)塊大??;

判斷所述數(shù)據(jù)塊大小是否小于或等于第一閾值;

如果所述數(shù)據(jù)塊小于或等于第一閾值,查詢第一緩存資源池;

判斷所述第一緩存資源池的已用緩存區(qū)中是否存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù);

如果所述第一緩存資源池內(nèi)不存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),對所述待緩存數(shù)據(jù)標(biāo)記時(shí)間戳;

將所述待緩存數(shù)據(jù)緩存至所述第一緩存資源池的空閑緩存區(qū);

如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于第一閾值,判斷所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大小是否小于或者等于第二閾值;

如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊小于或者等于第二閾值,將所述待緩存數(shù)據(jù)緩存至第二緩存資源池,所述第二緩存資源池的空間配額小于所述第一緩存資源池的空間配額。

結(jié)合本申請實(shí)施例,在本申請實(shí)施例的第一種可實(shí)施方式中,將所述待緩存數(shù)據(jù)緩存至所述第一緩存資源池的空閑緩存區(qū)之后,包括:

判斷所述空閑緩存區(qū)的緩存資源是否小于預(yù)設(shè)資源閾值;

如果所述空閑緩存區(qū)的緩存資源小于預(yù)設(shè)資源閾值,將所述第一緩存資源池的已用緩存區(qū)中時(shí)間戳最遠(yuǎn)的數(shù)據(jù)下刷至nand-flash存儲(chǔ)介質(zhì)。

結(jié)合本申請實(shí)施例,在本申請實(shí)施例的第二種可實(shí)施方式中,判斷所述第一緩存資源池的已用緩存區(qū)中是否存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù)之后,包括:

如果所述第一緩存資源池的已用緩存區(qū)中存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),將所述待緩存數(shù)據(jù)緩存至所述第一緩存資源池的已用緩存區(qū),覆蓋與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),同時(shí)刷新緩存數(shù)據(jù)時(shí)間戳。

結(jié)合本申請實(shí)施例,在本申請實(shí)施例的第三種可實(shí)施方式中,如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于第一閾值,判斷所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大小是否小于或者等于第二閾值之后,包括:

如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于第二閾值,將所述待緩存數(shù)據(jù)寫入nand-flash存儲(chǔ)介質(zhì)。

結(jié)合本申請實(shí)施例,在本申請實(shí)施例的第四種可實(shí)施方式中,如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊小于或者等于第二閾值,將所述待緩存數(shù)據(jù)緩存至第二緩存資源池,所述第二緩存資源池的空間配額小于所述第一緩存資源池的空間配額之后,包括:

判斷所述第二緩存資源池內(nèi)是否寫滿一個(gè)閃存頁;

如果所述第二緩存資源池內(nèi)寫滿一個(gè)閃存頁,將所述第二緩存資源池內(nèi)的數(shù)據(jù)下刷至nand-flash存儲(chǔ)介質(zhì)。

第一方面,本申請還提供一種固態(tài)硬盤數(shù)據(jù)緩存裝置,包括:

檢測單元,用于檢測待緩存數(shù)據(jù)的數(shù)據(jù)塊大??;

第一判斷單元,用于判斷所述數(shù)據(jù)塊大小是否小于或等于第一閾值;

查詢單元,用于如果所述數(shù)據(jù)塊小于或等于第一閾值,查詢第一緩存資源池;

第二判斷單元,用于判斷所述第一緩存資源池的已用緩存區(qū)中是否存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù);

標(biāo)記單元,用于如果所述第一緩存資源池內(nèi)不存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),對所述待緩存數(shù)據(jù)標(biāo)記時(shí)間戳;

第一緩存單元,用于將所述待緩存數(shù)據(jù)緩存至所述第一緩存資源池的空閑緩存區(qū);

第三判斷單元,用于如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于第一閾值,判斷所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大小是否小于或者等于第二閾值;

第二緩存單元,用于如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊小于或者等于第二閾值,將所述待緩存數(shù)據(jù)緩存至第二緩存資源池,所述第二緩存資源池的空間配額小于所述第一緩存資源池的空間配額。

結(jié)合本申請實(shí)施,在本申請實(shí)施例的第一種可實(shí)施方式中,所述裝置還包括:

第四判斷單元,用于判斷所述空閑緩存區(qū)的緩存資源是否小于預(yù)設(shè)資源閾值;

下刷單元,用于如果所述空閑緩存區(qū)的緩存資源小于預(yù)設(shè)資源閾值,將所述第一緩存資源池的已用緩存區(qū)中時(shí)間戳最遠(yuǎn)的數(shù)據(jù)下刷至nand-flash存儲(chǔ)介質(zhì)。

結(jié)合本申請實(shí)施,在本申請實(shí)施例的第二種可實(shí)施方式中,所述裝置還包括:

第三緩存單元,用于如果所述第一緩存資源池的已用緩存區(qū)中存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),將所述待緩存數(shù)據(jù)緩存至所述第一緩存資源池的已用緩存區(qū),覆蓋與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),同時(shí)刷新緩存數(shù)據(jù)時(shí)間戳。

結(jié)合本申請實(shí)施,在本申請實(shí)施例的第三種可實(shí)施方式中,寫入單元,用于如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于第二閾值,將所述待緩存數(shù)據(jù)寫入nand-flash存儲(chǔ)介質(zhì)。

結(jié)合本申請實(shí)施,在本申請實(shí)施例的第四種可實(shí)施方式中,所述裝置還包括:

第五判斷單元,用于判斷所述第二緩存資源池內(nèi)是否寫滿一個(gè)閃存頁;

第二下刷單元,用于如果所述第二緩存資源池內(nèi)寫滿一個(gè)閃存頁,將所述第二緩存資源池內(nèi)的數(shù)據(jù)下刷至nand-flash存儲(chǔ)介質(zhì)。

由以上技術(shù)方案可知,本申請實(shí)施例提供的一種固態(tài)硬盤數(shù)據(jù)緩存方法及裝置,通過將固態(tài)硬盤緩存資源劃分為第一緩存資源池和第二緩存資源池,其中,第一緩存資源池壓和第二緩存資源池的配額大于第二緩存資源池,在緩存數(shù)據(jù)時(shí),檢測待緩存數(shù)據(jù)的數(shù)據(jù)塊大小,將數(shù)據(jù)塊小于或等于第一閾值的常用特征數(shù)據(jù)緩存至第一緩存資源池,將數(shù)據(jù)塊大于第一閾值的非常用特征數(shù)據(jù)緩存至第二緩存資源池,本方法可將有限的緩存資源盡量分給常用特征數(shù)據(jù),從而提升常用特征數(shù)據(jù)的緩存使用率,減少常用特征數(shù)據(jù)的下刷率,提升其緩存命中率,從而達(dá)到提升固態(tài)硬盤性能的目的。

附圖說明

為了更清楚地說明本申請的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本申請?zhí)峁┑囊环N固態(tài)硬盤數(shù)據(jù)緩存方法的示意圖。

圖2為本申請?zhí)峁┑囊环N固態(tài)硬盤數(shù)據(jù)緩存方法第一實(shí)施例的流程圖。

圖3為本申請?zhí)峁┑囊环N固態(tài)硬盤數(shù)據(jù)緩存方法第二實(shí)施例的流程圖。

圖4為本申請?zhí)峁┑囊环N固態(tài)硬盤數(shù)據(jù)緩存方法第三實(shí)施例的流程圖。

圖5為本申請?zhí)峁┑囊环N固態(tài)硬盤數(shù)據(jù)緩存方法第四實(shí)施例的流程圖。

圖6為本申提供的一種固態(tài)硬盤數(shù)據(jù)緩存方法請第五實(shí)施例的流程圖。

圖7為本申請?zhí)峁┑囊环N固態(tài)硬盤數(shù)據(jù)緩存裝置第一實(shí)施例的流程圖。

圖8為本申請?zhí)峁┑囊环N固態(tài)硬盤數(shù)據(jù)緩存裝置第二實(shí)施例的流程圖。

圖9為本申請?zhí)峁┑囊环N固態(tài)硬盤數(shù)據(jù)緩存裝置第三實(shí)施例的流程圖。

圖10為本申請?zhí)峁┑囊环N固態(tài)硬盤數(shù)據(jù)緩存裝置第四實(shí)施例的流程圖。

圖11為本申請?zhí)峁┑囊环N固態(tài)硬盤數(shù)據(jù)緩存裝置第五實(shí)施例的流程圖。

具體實(shí)施方式

請參閱圖1和圖2,本申請第一實(shí)施例提供一種固態(tài)硬盤數(shù)據(jù)緩存方法,包括如下步驟:

步驟s101,檢測待緩存數(shù)據(jù)的數(shù)據(jù)塊1的大小。

其中,待緩存數(shù)據(jù)的數(shù)據(jù)塊大小即數(shù)據(jù)io的大小,通常情況下,小io數(shù)據(jù)為文件系統(tǒng)元數(shù)據(jù),文件系統(tǒng)元數(shù)據(jù)的讀寫頻率遠(yuǎn)遠(yuǎn)大于數(shù)據(jù)本身,遠(yuǎn)超元數(shù)據(jù)本身在整個(gè)數(shù)據(jù)中的比例(元數(shù)據(jù)通常占整個(gè)數(shù)據(jù)量的6%左右)。在本實(shí)施例中被看作是常用特征數(shù)據(jù),從某些方面來講,常用特征數(shù)據(jù)在一定程度上表示熱點(diǎn)數(shù)據(jù),本實(shí)施例將讀/寫頻繁的數(shù)據(jù)都稱作常用特征數(shù)據(jù),需要使用盡可能多的緩存資源。

大io數(shù)據(jù)通常是采集回來的視頻數(shù)據(jù)等,在本實(shí)施例中可被看作是非常用特征數(shù)據(jù),本實(shí)施例將讀/寫相對不頻繁的數(shù)據(jù)稱作非常用特征數(shù)據(jù),需要使用少量緩存資源。

步驟s102,判斷所述數(shù)據(jù)塊1大小是否小于或等于第一閾值。

具體地,本實(shí)施例中,第一閾值為8k,即常用特征數(shù)據(jù)統(tǒng)一指小于等于8k大小的io數(shù)據(jù),非常用特征數(shù)據(jù)統(tǒng)一指大于8k大小的io數(shù)據(jù)。因此,在檢測待緩存數(shù)據(jù)的數(shù)據(jù)塊大小之后,通過判斷數(shù)據(jù)塊大小是否小于或等于8k,來劃分待緩存數(shù)據(jù)是常用特征數(shù)據(jù)還是非常用特征數(shù)據(jù)。

步驟s103,如果所述數(shù)據(jù)塊小于或等于第一閾值,查詢第一緩存資源池2。

具體地,如果待緩存數(shù)據(jù)的數(shù)據(jù)塊小于或等于8k,則將該數(shù)據(jù)劃分為常用特征數(shù)據(jù)。將固態(tài)硬盤的緩存資源劃分為第一緩存資源池和第二緩存資源池。第一緩存資源池和第二緩存資源池的配額大于第二緩存資源池,本實(shí)施例中,第一緩存資源池的配額為總量的90%~95%。在緩存數(shù)據(jù)時(shí),將數(shù)據(jù)塊小于或等于第一閾值的常用特征數(shù)據(jù)緩存至第一緩存資源池,將數(shù)據(jù)塊大于第一閾值的非常用特征數(shù)據(jù)緩存至第二緩存資源池。

步驟s104,判斷所述第一緩存資源池的已用緩存區(qū)21中是否存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù)。

上步查詢第一緩存資源池的目的在于,確定第一緩存資源池的已用緩存區(qū)中是否存在與待緩存數(shù)據(jù)相匹的歷史數(shù)據(jù),即判斷待緩存數(shù)據(jù)是否是新數(shù)據(jù)。

步驟s105,如果所述第一緩存資源池內(nèi)不存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),對所述待緩存數(shù)據(jù)標(biāo)記時(shí)間戳。

第一緩存資源池內(nèi)不存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),即說明待緩存數(shù)據(jù)是新數(shù)據(jù)。對所述待緩存數(shù)據(jù)標(biāo)記時(shí)間戳,使得所緩存的數(shù)據(jù)具有時(shí)間屬性。

步驟s106,將所述待緩存數(shù)據(jù)緩存至所述第一緩存資源池的空閑緩存區(qū)22。

第一緩存資源池2包括空閑緩存區(qū)22和已用緩存區(qū)21,待緩存數(shù)據(jù)是常用特征數(shù)據(jù),并且是新資源,則直接將該數(shù)據(jù)緩存至第一緩存資源池。

步驟s107,如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于第一閾值,判斷所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大小是否小于或者等于第二閾值。

例如,待緩存數(shù)據(jù)的數(shù)據(jù)塊大于8k,說明待緩存數(shù)據(jù)是非常用特征數(shù)據(jù),再判斷非常用特征數(shù)據(jù)的數(shù)據(jù)塊大小,以決定后續(xù)對該非常用特征數(shù)據(jù)的具體處理方法。

步驟s108,如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于第一閾值,但小于或者等于第二閾值,將所述待緩存數(shù)據(jù)緩存至第二緩存資源池3,所述第二緩存資源池3的空間配額小于所述第一緩存資源池2的空間配額。

例如,如果待緩存數(shù)據(jù)的數(shù)據(jù)塊大于8k,小于32k,使用第二緩存資源池緩存該數(shù)據(jù)。本方法可將有限的緩存資源盡量分給常用特征數(shù)據(jù),從而提升常用特征數(shù)據(jù)的緩存使用率,減少常用特征數(shù)據(jù)的下刷率,提升其緩存命中率,從而達(dá)到提升固態(tài)硬盤性能的目的。

請參閱圖1和圖3,本申請第二實(shí)施例提供一種固態(tài)硬盤數(shù)據(jù)緩存方法,與第一實(shí)施例的不同之處在于,將所述待緩存數(shù)據(jù)緩存至所述第一緩存資源池的空閑緩存區(qū)之后,包括:

步驟s109,判斷所述空閑緩存區(qū)的緩存資源是否小于預(yù)設(shè)資源閾值。

本實(shí)施例中,第一緩存資源池采用的數(shù)據(jù)下刷原則為資源受限原則,又可稱為水位控制原則,即在空閑緩存區(qū)的緩存資源小于預(yù)設(shè)資源閾值,即空閑緩存區(qū)的緩存資源低于下刷淘汰水位時(shí),將所述第一緩存資源池的已用緩存區(qū)中的數(shù)據(jù),下刷至nand-flash存儲(chǔ)介質(zhì),及時(shí)釋放第一緩存資源池的資源。

步驟s110,如果所述空閑緩存區(qū)的緩存資源小于預(yù)設(shè)資源閾值,將所述第一緩存資源池的已用緩存區(qū)中時(shí)間戳最遠(yuǎn)的數(shù)據(jù)下刷至nand-flash存儲(chǔ)介質(zhì)。

根據(jù)已用緩存區(qū)中的數(shù)據(jù)的時(shí)間屬性,選擇最早最老數(shù)據(jù)11進(jìn)行下刷,實(shí)現(xiàn)第一緩存資源池中資源的釋放。

請參閱圖1和圖4,本申請第三實(shí)施例提供一種固態(tài)硬盤數(shù)據(jù)緩存方法,與第一實(shí)施例的不同之處在于,判斷所述第一緩存資源池的已用緩存區(qū)中是否存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù)之后,包括:

步驟s111,如果所述第一緩存資源池的已用緩存區(qū)中存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),將所述待緩存數(shù)據(jù)緩存至所述第一緩存資源池的已用緩存區(qū),覆蓋與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),同時(shí)刷新緩存數(shù)據(jù)時(shí)間戳。

第一緩存資源池的已用緩存區(qū)中存在與待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),即說明待緩存數(shù)據(jù)不是新數(shù)據(jù),此時(shí)利用待緩存數(shù)據(jù)覆蓋與所述待緩存數(shù)據(jù)重復(fù)的歷史數(shù)據(jù),將待緩存數(shù)據(jù)緩存至所述第一緩存資源池的已用緩存區(qū),減少資源的占用。

請參閱圖1和圖5,本申請第三實(shí)施例提供一種固態(tài)硬盤數(shù)據(jù)緩存方法,與第一實(shí)施例的不同之處在于,如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于第一閾值,判斷所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大小是否小于或者等于第二閾值之后,包括:

步驟s112,如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于第二閾值,將所述待緩存數(shù)據(jù)寫入nand-flash存儲(chǔ)介質(zhì)。

例如,如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于32k,則不使用緩存資源緩沖該數(shù)據(jù),而是直接將其下刷至nand-flash存儲(chǔ)介質(zhì),減少對緩存資源的占用。

請參閱圖1和圖6,本申請第三實(shí)施例提供一種固態(tài)硬盤數(shù)據(jù)緩存方法,與第一實(shí)施例的不同之處在于,如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊小于或者等于第二閾值,將所述待緩存數(shù)據(jù)緩存至第二緩存資源池,所述第二緩存資源池的空間配額小于所述第一緩存資源池的空間配額之后,包括:

步驟s113,判斷所述第二緩存資源池內(nèi)是否寫滿一個(gè)閃存頁。

該步驟中,是否寫滿一個(gè)閃存頁,即指是否寫滿一個(gè)flashdiepage。

其中,nand-flash存儲(chǔ)介質(zhì)內(nèi)部分為chip、die、plane、block、page。chip是指芯片,一個(gè)封裝好的芯片就是一個(gè)chip。

die是晶圓上的小方塊,一個(gè)芯片里可能封裝若干個(gè)die,由于nand-flash的工藝不同,由此產(chǎn)生了die的概念,常見的有monodie、adie、bdie等,一個(gè)chip包含n個(gè)die。

plane是nand-flash能夠根據(jù)讀、寫、擦除等命令進(jìn)行操作的最小單位。一個(gè)plane就是一個(gè)存儲(chǔ)矩陣,一個(gè)die包含多個(gè)plane,一個(gè)plane包含若干個(gè)block。

block是nand-flash的最小擦除單位,一個(gè)block包含了若干個(gè)page。page是nand-flash的最小讀寫單位,一個(gè)page包含若干個(gè)byte。每個(gè)plane內(nèi)處于同一地址的page組合稱為flashdiepage。

步驟s114,如果所述第二緩存資源池內(nèi)寫滿一個(gè)閃存頁,將所述第二緩存資源池內(nèi)的數(shù)據(jù)下刷至nand-flash存儲(chǔ)介質(zhì)4。

本實(shí)施例中,針對非常用特征數(shù)據(jù),采用及時(shí)下刷原則,即新寫入第二緩存資源池的非常用特征數(shù)據(jù)寫滿一個(gè)flashdiepage大小,立即對多余數(shù)據(jù)12進(jìn)行下刷,下刷后立即釋放第二緩存資源池資源。

由以上技術(shù)方案可知,本申請實(shí)施例提供的一種固態(tài)硬盤數(shù)據(jù)緩存方法,,通過將固態(tài)硬盤緩存資源劃分為第一緩存資源池和第二緩存資源池,其中,第一緩存資源池壓和第二緩存資源池的配額大于第二緩存資源池,在緩存數(shù)據(jù)時(shí),檢測待緩存數(shù)據(jù)的數(shù)據(jù)塊大小,將數(shù)據(jù)塊小于或等于第一閾值的常用特征數(shù)據(jù)緩存至第一緩存資源池,將數(shù)據(jù)塊大于第一閾值的非常用特征數(shù)據(jù)緩存至第二緩存資源池,本方法可將有限的緩存資源盡量分給常用特征數(shù)據(jù),從而提升常用特征數(shù)據(jù)的緩存使用率,減少常用特征數(shù)據(jù)的下刷率,提升其緩存命中率,從而達(dá)到提升固態(tài)硬盤性能的目的。

請參閱圖7,為本申請實(shí)施例提供的一種固態(tài)硬盤數(shù)據(jù)緩存裝置的第一實(shí)施例,包括:

檢測單元71,用于檢測待緩存數(shù)據(jù)的數(shù)據(jù)塊大小。

第一判斷單元72,用于判斷所述數(shù)據(jù)塊大小是否小于或等于第一閾值。

查詢單元73,用于如果所述數(shù)據(jù)塊小于或等于第一閾值,查詢第一緩存資源池。

第二判斷單元74,用于判斷所述第一緩存資源池的已用緩存區(qū)中是否存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù)。

標(biāo)記單元75,用于如果所述第一緩存資源池內(nèi)不存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),對所述待緩存數(shù)據(jù)標(biāo)記時(shí)間戳。

第一緩存單元76,用于將所述待緩存數(shù)據(jù)緩存至所述第一緩存資源池的空閑緩存區(qū)。

第三判斷單元77,用于如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于第一閾值,判斷所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大小是否小于或者等于第二閾值。

第二緩存單元78,用于如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊小于或者等于第二閾值,將所述待緩存數(shù)據(jù)緩存至第二緩存資源池,所述第二緩存資源池的空間配額小于所述第一緩存資源池的空間配額。

請參閱圖8,為本申請實(shí)施例提供的一種固態(tài)硬盤數(shù)據(jù)緩存裝置的第二實(shí)施例,所述裝置還包括:

第四判斷單元79,用于判斷所述空閑緩存區(qū)的緩存資源是否小于預(yù)設(shè)資源閾值。

下刷單元80,用于如果所述空閑緩存區(qū)的緩存資源小于預(yù)設(shè)資源閾值,將所述第一緩存資源池的已用緩存區(qū)中時(shí)間戳最遠(yuǎn)的數(shù)據(jù)下刷至nand-flash存儲(chǔ)介質(zhì)。

請參閱圖9,為本申請實(shí)施例提供的一種固態(tài)硬盤數(shù)據(jù)緩存裝置的第三實(shí)施例,所述裝置還包括:

第三緩存單元81,用于如果所述第一緩存資源池的已用緩存區(qū)中存在與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),將所述待緩存數(shù)據(jù)緩存至所述第一緩存資源池的已用緩存區(qū),覆蓋與所述待緩存數(shù)據(jù)相匹配的歷史數(shù)據(jù),同時(shí)刷新緩存數(shù)據(jù)時(shí)間戳。

請參閱圖10,為本申請實(shí)施例提供的一種固態(tài)硬盤數(shù)據(jù)緩存裝置的第四實(shí)施例,所述裝置還包括:

寫入單元82,用于如果所述待緩存數(shù)據(jù)的數(shù)據(jù)塊大于第二閾值,將所述待緩存數(shù)據(jù)寫入nand-flash存儲(chǔ)介質(zhì)。

請參閱圖11,為本申請實(shí)施例提供的一種固態(tài)硬盤數(shù)據(jù)緩存裝置的第五實(shí)施例,所述裝置還包括:

第五判斷單元83,用于判斷所述第二緩存資源池內(nèi)是否寫滿一個(gè)閃存頁。

第二下刷單元84,用于如果所述第二緩存資源池內(nèi)寫滿一個(gè)閃存頁,將所述第二緩存資源池內(nèi)的數(shù)據(jù)下刷至nand-flash存儲(chǔ)介質(zhì)。

具體實(shí)現(xiàn)中,本申請還提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),其中,該計(jì)算機(jī)存儲(chǔ)介質(zhì)可存儲(chǔ)有程序,該程序執(zhí)行時(shí)可包括本發(fā)明提供的固態(tài)硬盤數(shù)據(jù)緩存方法的各實(shí)施例中的部分或全部步驟。所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(英文:read-onlymemory,簡稱:rom)或隨機(jī)存儲(chǔ)記憶體(英文:randomaccessmemory,簡稱:ram)等。

本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例中的技術(shù)可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)。基于這樣的理解,本發(fā)明實(shí)施例中的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的。

本說明書中各個(gè)實(shí)施例之間相同相似的部分互相參見即可。尤其,對于固態(tài)硬盤數(shù)據(jù)緩存裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見實(shí)施例中的說明即可。

以上所述的本申請實(shí)施方式并不構(gòu)成對本申請保護(hù)范圍的限定。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
永吉县| 泸溪县| 理塘县| 太仆寺旗| 肇州县| 呼图壁县| 吉首市| 安福县| 彭泽县| 元谋县| 灵宝市| 美姑县| 盐津县| 焉耆| 通辽市| 溆浦县| 北海市| 昌吉市| 东源县| 米泉市| 长宁区| 长寿区| 股票| 正镶白旗| 洛宁县| 基隆市| 武强县| 兴安县| 疏附县| 陇南市| 集安市| 广饶县| 达孜县| 丰台区| 乾安县| 峨边| 沁阳市| 景东| 库伦旗| 容城县| 吴堡县|