一種基于協(xié)作的固態(tài)盤(pán)存儲(chǔ)系統(tǒng)性能提高方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,更具體地,涉及一種基于協(xié)作的固態(tài)盤(pán)存儲(chǔ)系統(tǒng)性能提尚方法。
【背景技術(shù)】
[0002]固態(tài)盤(pán)(Solid State Drive,簡(jiǎn)稱(chēng)SSD)是用固態(tài)電子存儲(chǔ)芯片陣列而制成的硬盤(pán),當(dāng)前的固態(tài)盤(pán)主要是基于FLASH芯片。隨著固態(tài)盤(pán)成本的降低,固態(tài)盤(pán)存儲(chǔ)系統(tǒng)已被廣泛應(yīng)用于車(chē)載、視頻監(jiān)控、軍事、網(wǎng)絡(luò)終端、電力、醫(yī)療等領(lǐng)域。
[0003]如今,在固態(tài)盤(pán)的應(yīng)用中,多核處理器等技術(shù)在主機(jī)端的的使用使得主機(jī)端擁有越來(lái)越強(qiáng)大的資源,然而,處于設(shè)備端的固態(tài)盤(pán)資源卻相對(duì)不足,這會(huì)造成固態(tài)盤(pán)性能下降,同時(shí)會(huì)影響用戶(hù)的體驗(yàn)效果。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種基于協(xié)作的固態(tài)盤(pán)存儲(chǔ)系統(tǒng)性能提高方法和系統(tǒng),其目的在于,基于熱數(shù)據(jù)識(shí)別,通過(guò)主機(jī)端和設(shè)備端進(jìn)行協(xié)作式垃圾回收,解決現(xiàn)有固態(tài)盤(pán)系統(tǒng)中存在的固態(tài)盤(pán)資源不足,從而影響用戶(hù)體驗(yàn)效果的技術(shù)冋題。
[0005]為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種基于協(xié)作的固態(tài)盤(pán)存儲(chǔ)系統(tǒng)性能提尚方法,包括以下步驟:
[0006](I)文件系統(tǒng)選擇固態(tài)盤(pán)中無(wú)效頁(yè)面最多的塊作為待回收塊BlockMllec;t;
[0007](2)文件系統(tǒng)根據(jù)熱數(shù)據(jù)識(shí)別方法判斷該待回收塊Blodw^t是否是熱塊,如果是則轉(zhuǎn)至步驟(3);否則轉(zhuǎn)至步驟(5);
[0008](3)文件系統(tǒng)在固態(tài)盤(pán)的所有熱塊中尋找是否存在有滿(mǎn)足Ufree> = Uvalid的熱塊,如果有則轉(zhuǎn)入步驟(4),否則設(shè)置標(biāo)簽Clean_To_Block = _1,然后轉(zhuǎn)入步驟(7),其中Ufree表示該熱塊的空閑頁(yè)利用率,Uvalid表示待回收塊Block 有效頁(yè)利用率;
[0009](4)文件系統(tǒng)在滿(mǎn)足Ufree> = Uvalid的多個(gè)熱塊中尋找使U 最小的熱塊,并將尋找到的該熱塊標(biāo)記為Blocktawt,然后轉(zhuǎn)入步驟(7);
[0010](5)文件系統(tǒng)在固態(tài)盤(pán)的所有冷塊中尋找是否存在有滿(mǎn)足Ufree> = Uvalid的冷塊,如果有則轉(zhuǎn)入步驟(6),否則設(shè)置標(biāo)簽Clean_To_Block = _1,然后轉(zhuǎn)入步驟(7);
[0011](6)文件系統(tǒng)在滿(mǎn)足Uf_> = Uvalid的多個(gè)冷塊中尋找使U 最小的冷塊,并將尋找到的該冷塊標(biāo)記為Blocktawt,然后轉(zhuǎn)入步驟(7);
[0012](7)文件系統(tǒng)根據(jù)上述獲得的塊Blocktmget以及待回收塊Block collect中需要回收的有效數(shù)據(jù)頁(yè)面所在的位置、或標(biāo)簽Clean_T0_Bl0ck生成GC命令,并將該GC命令發(fā)送到固態(tài)盤(pán);
[0013](8)固態(tài)盤(pán)判斷該GC命令中的標(biāo)簽Clean_To_Block是否為-1,如果是,則固態(tài)盤(pán)執(zhí)行默認(rèn)的垃圾回收操作,然后過(guò)程結(jié)束,否則將GC命令中待回收塊Bl0CkrallK;t中的有效數(shù)據(jù)讀出,并將讀出的有效數(shù)據(jù)迀移到塊Blocktawt中。
[0014]優(yōu)選地,熱塊是固態(tài)盤(pán)中包含熱數(shù)據(jù)頁(yè)最多的15%個(gè)數(shù)據(jù)塊,固態(tài)盤(pán)中剩余的塊為冷塊。
[0015]優(yōu)選地,GC命令的格式為 BlocKBlockc^llect, Blockctjllec^Bitmap, Blocktarget, Clean_To_Block>,其中 Blockrallect_Bitmap 代表待回收塊 Blockrallect*需要回收的有效數(shù)據(jù)頁(yè)面所在的位置。
[0016]按照本發(fā)明的另一方面,提供了一種基于協(xié)作的固態(tài)盤(pán)存儲(chǔ)系統(tǒng)性能提高系統(tǒng),包括:
[0017]第一模塊,用于文件系統(tǒng)選擇固態(tài)盤(pán)中無(wú)效頁(yè)面最多的塊作為待回收塊Blockcollect;
[0018]第二模塊,用于文件系統(tǒng)根據(jù)熱數(shù)據(jù)識(shí)別方法判斷該待回收塊Blockrallert是否是熱塊,如果是則轉(zhuǎn)至第三模塊;否則轉(zhuǎn)至第五模塊;
[0019]第三模塊,用于文件系統(tǒng)在固態(tài)盤(pán)的所有熱塊中尋找是否存在有滿(mǎn)足Uf_> =Uvalid的熱塊,如果有則轉(zhuǎn)入第四模塊,否則設(shè)置標(biāo)簽Clean_T0_Bl0Ck = _1,然后轉(zhuǎn)入第七模塊,其中Uf_表示該熱塊的空閑頁(yè)利用率,U valid表示待回收塊Block rallec;t的有效頁(yè)利用率;
[0020]第四模塊,用于文件系統(tǒng)在滿(mǎn)足Ufree> = Uvalid的多個(gè)熱塊中尋找使U 小的熱塊,并將尋找到的該熱塊標(biāo)記為Blocktmgrt,然后轉(zhuǎn)入第七模塊;
[0021]第五模塊,用于文件系統(tǒng)在固態(tài)盤(pán)的所有冷塊中尋找是否存在有滿(mǎn)足Uf_> =Uvalid的冷塊,如果有則轉(zhuǎn)入第六模塊,否則設(shè)置標(biāo)簽Clean_T0_Bl0ck = _1,然后轉(zhuǎn)入第七豐吳塊;
[0022]第六模塊,用于文件系統(tǒng)在滿(mǎn)足Ufree> = Uvalid的多個(gè)冷塊中尋找使U _最小的冷塊,并將尋找到的該冷塊標(biāo)記為Blocktmgrt,然后轉(zhuǎn)入第七模塊。
[0023]第七模塊,用于文件系統(tǒng)根據(jù)上述獲得的塊Blocktmget以及待回收塊Block collect中需要回收的有效數(shù)據(jù)頁(yè)面所在的位置、或標(biāo)簽Clean_T0_Bl0ck生成GC命令,并將該GC命令發(fā)送到固態(tài)盤(pán);
[0024]第八模塊,用于固態(tài)盤(pán)判斷該GC命令中的標(biāo)簽Clean_To_Block是否為_(kāi)1,如果是,則固態(tài)盤(pán)執(zhí)行默認(rèn)的垃圾回收操作,然后過(guò)程結(jié)束,否則將GC命令中待回收塊Blockrallert中的有效數(shù)據(jù)讀出,并將讀出的有效數(shù)據(jù)迀移到塊Block tmgrt中。
[0025]總體而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:
[0026]1、本發(fā)明解決了現(xiàn)有固態(tài)盤(pán)系統(tǒng)中存在的固態(tài)盤(pán)資源不足的技術(shù)問(wèn)題:由于采用了步驟(I),將無(wú)效數(shù)據(jù)最多的塊挑選出來(lái),并采用步驟(2),將該塊識(shí)別為熱塊或冷塊,進(jìn)而采用步驟(3) (4) (5)和步驟(6),尋找出滿(mǎn)足條件的塊,使該塊可以容納步驟(I)所挑選的塊的有效數(shù)據(jù),將固態(tài)盤(pán)的部分垃圾回收功能放到主機(jī)端文件系統(tǒng)來(lái)執(zhí)行,因此彌補(bǔ)了固態(tài)盤(pán)內(nèi)部資源的相對(duì)不足。
[0027]2、本發(fā)明提高了固態(tài)盤(pán)的性能,進(jìn)而提高了固態(tài)盤(pán)存儲(chǔ)系統(tǒng)的整體性能,改善了用戶(hù)的體驗(yàn)效果。
【附圖說(shuō)明】
[0028]圖1是本發(fā)明基于協(xié)作的固態(tài)盤(pán)存儲(chǔ)系統(tǒng)性能提高方法的示意圖。
[0029]圖2是本發(fā)明基于協(xié)作的固態(tài)盤(pán)存儲(chǔ)系統(tǒng)性能提高方法的細(xì)化流程圖。
【具體實(shí)施方式】
[0030]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0031]如圖1和2所示,本發(fā)明基于協(xié)作的固態(tài)盤(pán)存儲(chǔ)系統(tǒng)性能提高方法包括以下步驟:
[0032](I)文件系統(tǒng)選擇固態(tài)盤(pán)中無(wú)效頁(yè)面最多的塊作為待回收塊,并將該待回收塊標(biāo)記為 Blockrallect;
[0033](2)文件系統(tǒng)根據(jù)熱數(shù)據(jù)識(shí)別方法(Hot data identificat1n method)判斷該待回收塊Blocketjlleet是否是熱塊(Hot block),如果是則轉(zhuǎn)至步驟(3);否則轉(zhuǎn)至步驟(5);具體而言,熱數(shù)據(jù)識(shí)別方法是根據(jù)數(shù)據(jù)的訪(fǎng)問(wèn)頻率來(lái)對(duì)數(shù)據(jù)進(jìn)行區(qū)分的一種技術(shù),在用戶(hù)對(duì)數(shù)據(jù)訪(fǎng)問(wèn)的過(guò)程中,有的數(shù)據(jù)會(huì)被頻繁訪(fǎng)問(wèn),而有的數(shù)據(jù)很少被訪(fǎng)問(wèn),被頻繁訪(fǎng)問(wèn)的數(shù)據(jù)稱(chēng)為熱數(shù)據(jù),而很少被訪(fǎng)問(wèn)的數(shù)據(jù)稱(chēng)為冷數(shù)據(jù),在固態(tài)盤(pán)中包含熱數(shù)據(jù)頁(yè)最多的15%個(gè)塊被稱(chēng)為熱塊,剩余塊則稱(chēng)為冷塊(Cold block);
[0034](3)文件系統(tǒng)在固態(tài)盤(pán)的所有熱塊中尋找是否存在有滿(mǎn)足Ufree> = Uvalid的熱塊,如果有則轉(zhuǎn)入步驟(4),否則設(shè)置標(biāo)簽Clean_To_Block = _1,然后轉(zhuǎn)入步驟(7),其中Ufree表示該熱塊的空閑頁(yè)利用率,其等于該熱塊中不包含數(shù)據(jù)的頁(yè)面數(shù)量與該熱塊中所有頁(yè)面數(shù)量的比值,Uvalid表示待回收塊Block。。_的有效頁(yè)利用率,其等于該熱塊中包含有效數(shù)據(jù)的頁(yè)面數(shù)量與該熱塊中所有頁(yè)面數(shù)量的比值;
[0035](4)文件系統(tǒng)在滿(mǎn)足Ufree> = Uvalid的多個(gè)熱塊中尋找使U 最小的熱塊,并將尋找到的該熱塊標(biāo)記為Blocktawt,然后轉(zhuǎn)入步驟(7);
[0036](5)文件系