本發(fā)明涉及固態(tài)硬盤,更具體地說是指一種自適應(yīng)nand閃存的頁面替換方法及系統(tǒng)。
背景技術(shù):
1、nand閃存作為一種電子非易失性存儲介質(zhì),以塊為單位組織,每個塊通常包含從256kb到20mb大小的多個頁面。其結(jié)構(gòu)允許讀取和編程命令按頁執(zhí)行,但擦除操作則是在包含多個頁面的塊級別上執(zhí)行。這意味著在寫入任何頁面之前,必須先擦除整個塊。一般情況下,寫入操作的速度遠低于讀取操作,寫入操作的延遲大約是讀取操作的七倍。此外,擦除操作所需的時間比寫入操作更長,兩者之間的速度差異可達數(shù)個數(shù)量級。nand閃存的擦除次數(shù)相對較少,通常在1萬到10萬次擦除循環(huán)之間,因此其使用壽命有限。與讀取操作相比,寫入和擦除操作的成本要高得多,尤其是擦除操作,需要消耗大量的時間和能量,并且會對nand閃存的壽命造成嚴(yán)重影響。
2、在做頁面處理時,處理器與磁盤之間的性能差距使得傳統(tǒng)的存儲系統(tǒng)無法滿足高性能計算的需求,nand閃存雖然在讀取速度上表現(xiàn)出色,但在寫入和擦除操作上存在明顯的性能瓶頸。nand閃存的讀取操作成本較低,而寫入和擦除操作成本較高?,F(xiàn)有的緩存替換算法往往只關(guān)注提高緩存命中率或減少寫入次數(shù),忽略了讀取和寫入操作的不對稱成本特性,導(dǎo)致不必要的i/o成本增加。nand閃存的擦除次數(shù)有限,頻繁的擦除操作會顯著縮短其使用壽命?,F(xiàn)有的緩存策略未能有效延長nand閃存的壽命,影響了系統(tǒng)的長期可靠性。雖然在操作系統(tǒng)和nand閃存之間設(shè)置數(shù)據(jù)頁的緩存區(qū)可以減少i/o操作,但緩存使用的存儲器價格高、容量小,不是最優(yōu)方案?,F(xiàn)有的緩存替換算法未能充分利用歷史信息來預(yù)測未來的訪問模式,導(dǎo)致緩存管理效率低下。
3、因此,有必要設(shè)計一種新的方法,實現(xiàn)適應(yīng)nand閃存的特性,兼顧讀取和寫入操作的不對稱成本,并延長nand閃存的使用壽命,從而達到最優(yōu)的整體性能。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種自適應(yīng)nand閃存的頁面替換方法及系統(tǒng)。
2、為實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:一種自適應(yīng)nand閃存的頁面替換方法,包括:
3、獲取訪問頁面相關(guān)信息;
4、根據(jù)所述訪問頁面相關(guān)信息判斷頁面是否是新頁面或者沒有訪問歷史記錄的頁面;
5、若所述頁面是新頁面或者沒有訪問歷史記錄的頁面,對所述頁面進行標(biāo)記,并將標(biāo)記后的所述頁面插入在兩個緩存列隊中,其中一個列隊包含所有l(wèi)ir頁面和hir頁面,另一個列隊包含所有駐留的hir頁面;
6、當(dāng)包含所有l(wèi)ir頁面和hir頁面的列隊是堆棧已滿,則從另一列隊中選擇受害者頁面,并對所述受害者頁面進行處理;
7、對包含所有l(wèi)ir頁面和hir頁面的列隊進行修剪堆棧;
8、自學(xué)習(xí)調(diào)整hir頁面的緩存量;
9、判斷當(dāng)前所述hir頁面的緩存量是否等于目標(biāo)緩存量;
10、若當(dāng)前所述hir頁面的緩存量等于目標(biāo)緩存量,則進入結(jié)束步驟;
11、若當(dāng)前所述hir頁面的緩存量不等于目標(biāo)緩存量,則執(zhí)行所述從另一列隊中選擇受害者頁面,并對所述受害者頁面進行處理。
12、其進一步技術(shù)方案為:所述根據(jù)所述訪問頁面相關(guān)信息判斷頁面是否是新頁面或者沒有訪問歷史記錄的頁面之后,還包括:
13、若頁面不是新頁面也不是沒有訪問歷史記錄的頁面,更新頁狀態(tài),并執(zhí)行所述對包含所有l(wèi)ir頁面和hir頁面的列隊進行修剪堆棧。
14、其進一步技術(shù)方案為:所述對所述頁面進行標(biāo)記,并將標(biāo)記后的所述頁面插入在列隊中,包括:
15、將所述頁面標(biāo)記為hir頁面,并將標(biāo)記后的所述頁面插設(shè)在兩個緩存列隊中。
16、其進一步技術(shù)方案為:所述從另一列隊中選擇受害者頁面,并對所述受害者頁面進行處理,包括:
17、選擇另一列隊底部的頁面作為受害者頁面;
18、當(dāng)所述受害者頁面為干凈頁面時,驅(qū)逐所述受害者頁面;當(dāng)所述受害者頁面為臟頁面且對應(yīng)的深度冷標(biāo)志為0時,將所述受害者頁面保留在當(dāng)前列隊中,并將對應(yīng)的深度冷標(biāo)志設(shè)置為1;當(dāng)所述受害者頁面為臟頁面且對應(yīng)的深度冷標(biāo)志為1時,驅(qū)逐所述受害者頁面。
19、其進一步技術(shù)方案為:所述對包含所有l(wèi)ir頁面和hir頁面的列隊進行修剪堆棧,包括:
20、對包含所有l(wèi)ir頁面和hir頁面的列隊從底部遍歷到頂部,對hir頁面轉(zhuǎn)換為lir狀態(tài)的頁面,且對頁面是臟頁且深度冷標(biāo)志為1的頁面進行驅(qū)逐,對頁面是干凈或者深度冷標(biāo)志為0的頁面轉(zhuǎn)換為lir狀態(tài),并移動至列隊的頂部。
21、其進一步技術(shù)方案為:所述自學(xué)習(xí)調(diào)整hir頁面的緩存量,包括:
22、計算每次訪問頁面后的hir頁面的緩存量,以得到新的緩存量;
23、根據(jù)新的緩存量調(diào)用函數(shù)adjust_lh_process()檢查當(dāng)前的hir頁面的緩存量是否需要調(diào)整。
24、其進一步技術(shù)方案為:所述計算每次訪問頁面后的hir頁面的緩存量,以得到新的緩存量,包括:
25、采用計算每次訪問頁面后的hir頁面的緩存量,以得到新的緩存量,其中,lbuf是按頁面單位給出的緩存大小,l’hir為新的緩存量;rrw為讀/寫比率。
26、其進一步技術(shù)方案為:所述根據(jù)新的緩存量調(diào)用函數(shù)adjust_lh_process()檢查當(dāng)前的hir頁面的緩存量是否需要調(diào)整,包括:
27、當(dāng)前的hir頁面的緩存量大于新的緩存量時,從包含所有駐留的hir頁面的列隊中選擇頁面進行刪除,當(dāng)前的hir頁面的緩存量小于新的緩存量時,將包含所有l(wèi)ir頁面和hir頁面的列隊底部的lir頁面轉(zhuǎn)換為包含所有駐留的hir頁面的列隊頂部的hir頁面。
28、本發(fā)明還提供了一種自適應(yīng)nand閃存的頁面替換系統(tǒng),包括:
29、信息獲取單元,用于獲取訪問頁面相關(guān)信息;
30、頁面判斷單元,用于根據(jù)所述訪問頁面相關(guān)信息判斷頁面是否是新頁面或者沒有訪問歷史記錄的頁面;
31、標(biāo)記單元,用于若所述頁面是新頁面或者沒有訪問歷史記錄的頁面,對所述頁面進行標(biāo)記,并將標(biāo)記后的所述頁面插入在兩個緩存列隊中,其中一個列隊包含所有l(wèi)ir頁面和hir頁面,另一個列隊包含所有駐留的hir頁面;
32、受害者頁面選擇單元,用于當(dāng)包含所有l(wèi)ir頁面和hir頁面的列隊是堆棧已滿,則從另一列隊中選擇受害者頁面,并對所述受害者頁面進行處理;
33、修剪單元,用于對包含所有l(wèi)ir頁面和hir頁面的列隊進行修剪堆棧;
34、自學(xué)習(xí)單元,用于自學(xué)習(xí)調(diào)整hir頁面的緩存量;
35、緩存量判斷單元,用于判斷當(dāng)前所述hir頁面的緩存量是否等于目標(biāo)緩存量;若當(dāng)前所述hir頁面的緩存量等于目標(biāo)緩存量,則進入結(jié)束步驟;若當(dāng)前所述hir頁面的緩存量不等于目標(biāo)緩存量,則執(zhí)行所述從另一列隊中選擇受害者頁面,并對所述受害者頁面進行處理。
36、本發(fā)明還提供了一種計算機設(shè)備,所述計算機設(shè)備包括存儲器及處理器,所述存儲器上存儲有計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)上述的方法。
37、本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是:本發(fā)明通過獲取頁面訪問信息,判斷頁面是否為新頁面或無訪問記錄,若是,則標(biāo)記并插入至包含lir和hir頁面的列隊及駐留hir頁面的列隊中;當(dāng)lir和hir頁面列隊滿時,從駐留hir頁面列隊中選取受害者頁面進行處理,優(yōu)先考慮臟頁面以減少不必要的寫入操作;對lir和hir頁面列隊進行修剪,確保列隊結(jié)構(gòu)合理,減少因列隊溢出導(dǎo)致的頻繁替換;利用自學(xué)習(xí)機制動態(tài)調(diào)整hir頁面的緩存量,以適應(yīng)不同工作負載模式下的最優(yōu)性能需求;持續(xù)監(jiān)測并調(diào)整hir頁面的緩存量至目標(biāo)值,確保緩存策略既能最大化命中率又能最小化寫入成本;通過上述流程優(yōu)化緩存管理,有效平衡讀寫操作成本,延長nand閃存的使用壽命,從而實現(xiàn)系統(tǒng)整體性能的最優(yōu)化。
38、下面結(jié)合附圖和具體實施例對本發(fā)明作進一步描述。