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

數(shù)據(jù)處理方法及裝置與流程

文檔序號:11406684閱讀:272來源:國知局
數(shù)據(jù)處理方法及裝置與流程

本發(fā)明涉及通信領域,具體而言,涉及一種數(shù)據(jù)處理方法及裝置。



背景技術:

固態(tài)硬盤(solidstatedrives,簡稱ssd)是將先進的半導體技術融入大容量移動存儲而產(chǎn)生的新一代硬盤。由于內(nèi)部沒有類似磁頭這樣的機械結構,不需要移動磁頭定位數(shù)據(jù),所以固態(tài)硬盤啟動更快,并且由于沒有尋道時間,固態(tài)硬盤的存儲和讀寫速度也優(yōu)于機械硬盤。除高性能之外,固態(tài)硬盤相對于傳統(tǒng)磁盤的優(yōu)勢還包括:可靠性高、抗震性強、低功耗、低噪音等等。正因如此,固態(tài)硬盤開始在個人應用領域以及企業(yè)級應用中逐漸普及。

然而,固態(tài)硬盤還存在一些不足,比如寫前擦除、有限擦除次數(shù)、垃圾回收。其中,1)寫前擦除是指:固態(tài)硬盤有讀、寫和擦除三種操作,寫操作前必須先進行擦除,即無法直接進行覆蓋寫操作。例如,當需要修改已寫入的數(shù)據(jù)時,需要先將舊數(shù)據(jù)標記失效,再將新數(shù)據(jù)寫入空閑空間。寫前擦除的特性極大的降低了固態(tài)硬盤的寫性能。2)有限擦除次數(shù)是指:固態(tài)硬盤的擦除次數(shù)一般是十萬次到一百萬次,一旦擦穿則將無法繼續(xù)使用,需要將損壞單元所存儲的數(shù)據(jù)遷移到別的單元,且當損壞單元超過一定數(shù)量,整塊固態(tài)硬盤將無法使用。3)垃圾回收(garbagecollection,簡稱gc)是指:當沒有空閑空間進行寫操作時,需要釋放一部分空閑空間,也就是說,把所有有效頁面重新搬遷到一個或者幾個數(shù)據(jù)塊中,把不包含有效數(shù)據(jù)頁面的塊進行擦除來釋放自由空間。

目前,針對固態(tài)硬盤的垃圾回收,現(xiàn)有技術中常用的方法是采用經(jīng)典貪婪算法(greedyalgorithm),即選擇那些包含最多失效頁面的數(shù)據(jù)塊進行垃圾回收,數(shù)據(jù)塊中的頁面全部失效的將被優(yōu)先回收。也就是說,在固態(tài)硬盤中的空閑空間不足時,會將固態(tài)硬盤數(shù)據(jù)回收塊中的有效頁面進行搬遷,并對數(shù)據(jù)回收塊中的失效頁面進行擦除,以實現(xiàn)對固態(tài)硬盤的垃圾回收。然而,在現(xiàn)有的垃圾回收過程中,固態(tài)硬盤沒有對有效頁面數(shù)據(jù)頁面進行細分,即在搬遷過后,有效頁面數(shù)據(jù)中冷臟頁面數(shù)據(jù)會從緩存中置換出去,進一步還需對該冷臟頁面數(shù)據(jù)進行重新搬遷,即將剛剛搬遷到新位置的數(shù)據(jù)標記為失效,將緩存中的新數(shù)據(jù)寫入固態(tài)硬盤更新的位置。這樣在固態(tài)硬盤的使用過程中對有效頁面進行大量的、無謂的二次搬遷,將大大增加固態(tài)硬盤的開銷,從而影響固態(tài)硬盤中數(shù)據(jù)的處理效率。

針對上述提出的問題,目前尚未提出有效的解決方案。



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

本發(fā)明提供了一種數(shù)據(jù)處理方法及裝置,以至少解決相關技術中由于數(shù)據(jù)二次搬遷導致的數(shù)據(jù)處理效率較低的問題。

根據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)處理方法,包括:獲取回收請求,其中,上述回收請求用于請求對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收;響應上述回收請求從緩存的有效頁面數(shù)據(jù)中獲取第一類型的頁面數(shù)據(jù),其中,上述第一類型的頁面數(shù)據(jù)用于指示將要從上述緩存中置換存儲到上述固態(tài)硬盤的頁面數(shù)據(jù);將上述第一類型的頁面數(shù)據(jù)從上述緩存搬遷至上述固態(tài)硬盤中預定的搬遷位置,其中,上述預定的搬遷位置為執(zhí)行上述數(shù)據(jù)回收后上述有效頁面數(shù)據(jù)的存儲位置。

可選地,響應上述回收請求從緩存的有效頁面數(shù)據(jù)中獲取第一類型的頁面數(shù)據(jù)包括:獲取對上述緩存中的上述有效頁面數(shù)據(jù)的訪問頻率及修改標識;根據(jù)上述訪問頻率及上述修改標識獲取上述有效頁面數(shù)據(jù)的頁面類型,其中,上述有效頁面數(shù)據(jù)的頁面類型包括上述第一類型的頁面數(shù)據(jù)及第二類型的頁面數(shù)據(jù),上述第二類型的頁面數(shù)據(jù)用于指示未從上述緩存中置換存儲到上述固態(tài)硬盤的頁面數(shù)據(jù);根據(jù)上述有效頁面數(shù)據(jù)的頁面類型對上述有效頁面數(shù)據(jù)進行分離,得到上述第一類型的頁面數(shù)據(jù)。

可選地,上述第二類型的頁面數(shù)據(jù)包括第一頁面數(shù)據(jù)及第二頁面數(shù)據(jù),其中,根據(jù)上述訪問頻率及上述修改標識獲取上述有效頁面數(shù)據(jù)的頁面類型包括:將上述修改標識為未被修改的頁面數(shù)據(jù)作為上述第一頁面數(shù)據(jù),將上述修改標識為已被修改且上述訪問頻率大于等于第一預定閾值的頁面數(shù)據(jù)作為上述第二頁面數(shù)據(jù),將上述修改標識為已被修改且上述訪問頻率小于上述第一預定閾值的頁面數(shù)據(jù)作為上述第一類型的頁面數(shù)據(jù)。

可選地,在將上述第一類型的頁面數(shù)據(jù)從上述緩存搬遷至上述固態(tài)硬盤中預定的搬遷位置之前,還包括:至少根據(jù)上述第一類型的頁面數(shù)據(jù)確定上述固態(tài)硬盤的數(shù)據(jù)回收塊,其中,上述固態(tài)硬盤中各個數(shù)據(jù)塊中的頁面數(shù)據(jù)的頁面類型包括:未寫頁面數(shù)據(jù)、失效頁面數(shù)據(jù)、上述有效頁面數(shù)據(jù),上述各個數(shù)據(jù)塊中包括上述數(shù)據(jù)回收塊;對上述數(shù)據(jù)回收塊進行上述數(shù)據(jù)回收。

可選地,至少根據(jù)上述第一類型的頁面數(shù)據(jù)確定上述固態(tài)硬盤的數(shù)據(jù)回收塊包括:根據(jù)上述緩存中上述第一類型的頁面數(shù)據(jù)及上述固態(tài)硬盤中各個數(shù)據(jù)塊中的頁面數(shù)據(jù)獲取上述各個數(shù)據(jù)塊的數(shù)據(jù)回收率;根據(jù)上述數(shù)據(jù)回收率確定上述數(shù)據(jù)回收塊。

可選地,根據(jù)上述緩存中上述第一類型的頁面數(shù)據(jù)及上述固態(tài)硬盤中各個數(shù)據(jù)塊中的頁面數(shù)據(jù)獲取上述各個數(shù)據(jù)塊的數(shù)據(jù)回收率包括:重復執(zhí)行以下步驟,直至遍歷完上述固態(tài)硬盤中的上述各個數(shù)據(jù)塊:獲取當前數(shù)據(jù)塊的塊標識;獲取上述塊標識所標識的上述第一類型的頁面數(shù)據(jù)及上述失效頁面數(shù)據(jù);通過以下方式獲取上述當前數(shù)據(jù)塊的上述數(shù)據(jù)回收率:其中,上述r表示上述當前數(shù)據(jù)塊的上述數(shù)據(jù)回收率,上述a表示上述固態(tài)硬盤中上述當前數(shù)據(jù)塊的上述失效頁面數(shù)據(jù)的頁面數(shù)量,上述b表示上述緩存中的上述第一類型的頁面數(shù)據(jù)的頁面數(shù)量,上述p表示頁面大小,上述b表示 塊大小。

可選地,對上述數(shù)據(jù)回收塊進行上述數(shù)據(jù)回收包括:將上述數(shù)據(jù)回收塊中的上述有效頁面數(shù)據(jù)搬遷至上述預定的搬遷位置,并將上述有效頁面數(shù)據(jù)標記為上述失效頁面數(shù)據(jù);對上述數(shù)據(jù)回收塊中的上述失效頁面數(shù)據(jù)進行擦除。

可選地,在將上述第一類型的頁面數(shù)據(jù)從上述緩存搬遷至上述固態(tài)硬盤中預定的搬遷位置之前,還包括:根據(jù)上述固態(tài)硬盤中除上述數(shù)據(jù)回收塊之外的其他數(shù)據(jù)塊中上述未寫頁面數(shù)據(jù)的大小確定上述預定的搬遷位置。

根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)處理裝置,包括:第一獲取單元,用于獲取回收請求,其中,上述回收請求用于請求對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收;第二獲取單元,用于響應上述回收請求從緩存的有效頁面數(shù)據(jù)中獲取第一類型的頁面數(shù)據(jù),其中,上述第一類型的頁面數(shù)據(jù)用于指示將要從上述緩存中置換存儲到上述固態(tài)硬盤的頁面數(shù)據(jù);搬遷單元,用于將上述第一類型的頁面數(shù)據(jù)從上述緩存搬遷至上述固態(tài)硬盤中預定的搬遷位置,其中,上述預定的搬遷位置為執(zhí)行上述數(shù)據(jù)回收后上述有效頁面數(shù)據(jù)的存儲位置。

可選地,第二獲取單元包括:第一獲取模塊,用于獲取對上述緩存中的上述有效頁面數(shù)據(jù)的訪問頻率及修改標識;第二獲取模塊,用于根據(jù)上述訪問頻率及上述修改標識獲取上述有效頁面數(shù)據(jù)的頁面類型,其中,上述有效頁面數(shù)據(jù)的頁面類型包括上述第一類型的頁面數(shù)據(jù)及第二類型的頁面數(shù)據(jù),上述第二類型的頁面數(shù)據(jù)用于指示未從上述緩存中置換存儲到上述固態(tài)硬盤的頁面數(shù)據(jù);分離模塊,用于根據(jù)上述有效頁面數(shù)據(jù)的頁面類型對上述有效頁面數(shù)據(jù)進行分離,得到上述第一類型的頁面數(shù)據(jù)。

可選地,上述第二類型的頁面數(shù)據(jù)包括第一頁面數(shù)據(jù)及第二頁面數(shù)據(jù),其中,上述第二獲取模塊通過以下方式獲取上述有效頁面數(shù)據(jù)的頁面類型包括:將上述修改標識為未被修改的頁面數(shù)據(jù)作為上述第一頁面數(shù)據(jù),將上述修改標識為已被修改且上述訪問頻率大于等于第一預定閾值的頁面數(shù)據(jù)作為上述第二頁面數(shù)據(jù),將上述修改標識為已被修改且上述訪問頻率小于上述第一預定閾值的頁面數(shù)據(jù)作為上述第一類型的頁面數(shù)據(jù)。

可選地,還包括:第一確定單元,用于在將上述第一類型的頁面數(shù)據(jù)從上述緩存搬遷至上述固態(tài)硬盤中預定的搬遷位置之前,至少根據(jù)上述第一類型的頁面數(shù)據(jù)確定上述固態(tài)硬盤的數(shù)據(jù)回收塊,其中,上述固態(tài)硬盤中各個數(shù)據(jù)塊中的頁面數(shù)據(jù)的頁面類型包括:未寫頁面數(shù)據(jù)、失效頁面數(shù)據(jù)、上述有效頁面數(shù)據(jù),上述各個數(shù)據(jù)塊中包括上述數(shù)據(jù)回收塊;回收單元,用于對上述數(shù)據(jù)回收塊進行上述數(shù)據(jù)回收。

可選地,第一確定單元包括:第三獲取模塊,用于根據(jù)上述緩存中上述第一類型的頁面數(shù)據(jù)及上述固態(tài)硬盤中各個數(shù)據(jù)塊中的頁面數(shù)據(jù)獲取上述各個數(shù)據(jù)塊的數(shù)據(jù)回收率;確定模塊,用于根據(jù)上述數(shù)據(jù)回收率確定上述數(shù)據(jù)回收塊。

可選地,上述第三獲取模塊包括:處理子模塊,用于重復執(zhí)行以下步驟,直至遍歷完上述固態(tài)硬盤中的上述各個數(shù)據(jù)塊:獲取當前數(shù)據(jù)塊的塊標識;獲取上述塊標識所標識的上述第一類型的頁面數(shù)據(jù)及上述失效頁面數(shù)據(jù);通過以下方式獲取上述當前數(shù)據(jù)塊的上述數(shù)據(jù)回收率:其中,上述r表示上述當前數(shù)據(jù)塊的上述數(shù)據(jù)回收率,上述a表示上述固態(tài)硬盤中上述當前數(shù)據(jù)塊的上述失效頁面數(shù)據(jù)的頁面數(shù)量,上述b表示上述緩存中的上述第一類型的頁面數(shù)據(jù)的頁面數(shù)量,上述p表示頁面大小,上述b表示塊大小。

可選地,上述回收單元包括:搬遷模塊,用于將上述數(shù)據(jù)回收塊中的上述有效頁面數(shù)據(jù)搬遷至上述預定的搬遷位置,并將上述有效頁面數(shù)據(jù)標記為上述失效頁面數(shù)據(jù);擦除模塊,用于對上述數(shù)據(jù)回收塊中的上述失效頁面數(shù)據(jù)進行擦除。

可選地,還包括:第二確定單元,用于在將上述第一類型的頁面數(shù)據(jù)從上述緩存搬遷至上述固態(tài)硬盤中預定的搬遷位置之前,根據(jù)上述固態(tài)硬盤中除上述數(shù)據(jù)回收塊之外的其他數(shù)據(jù)塊中上述未寫頁面數(shù)據(jù)的大小確定上述預定的搬遷位置。

通過本發(fā)明,在獲取到對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收的回收請求時,通過將有效頁面數(shù)據(jù)中將要從緩存中置換存儲到固態(tài)硬盤的第一類型的頁面數(shù)據(jù)直接一次搬遷到固態(tài)硬盤中預定的搬遷位置,而無需先將第一類型的頁面數(shù)據(jù)置換到固態(tài)硬盤中,再進行一次重新搬遷,從而克服了相關技術中由于數(shù)據(jù)的二次搬遷所導致的數(shù)據(jù)處理效率低的問題,進而實現(xiàn)提高數(shù)據(jù)處理效率的效果,此外,還降低了固態(tài)硬盤在數(shù)據(jù)回收和緩存置換過程中的數(shù)據(jù)搬遷次數(shù)及其造成的額外開銷,提高了固態(tài)硬盤的性能。

附圖說明

此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:

圖1是根據(jù)本發(fā)明實施例的一種可選的數(shù)據(jù)處理方法的流程圖;

圖2是根據(jù)本發(fā)明實施例的一種可選的數(shù)據(jù)塊的結構示意圖;

圖3是根據(jù)本發(fā)明實施例的另一種可選的數(shù)據(jù)處理方法的流程圖;以及

圖4是根據(jù)本發(fā)明實施例的一種可選的數(shù)據(jù)處理裝置的示意圖。

具體實施方式

下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。

需要說明的是,本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第 二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。

實施例1

在本實施例中提供了一種數(shù)據(jù)處理方法,圖1是根據(jù)本發(fā)明實施例提供的一種可選的數(shù)據(jù)處理方法的流程圖,如圖1所示,該流程包括如下步驟:

步驟s102,獲取回收請求,其中,回收請求用于請求對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收;

步驟s104,響應回收請求從緩存的有效頁面數(shù)據(jù)中獲取第一類型的頁面數(shù)據(jù),其中,第一類型的頁面數(shù)據(jù)用于指示將要從緩存中置換存儲到固態(tài)硬盤的頁面數(shù)據(jù);

步驟s106,將第一類型的頁面數(shù)據(jù)從緩存搬遷至固態(tài)硬盤中預定的搬遷位置,其中,預定的搬遷位置為執(zhí)行數(shù)據(jù)回收后有效頁面數(shù)據(jù)的存儲位置。

可選地,在本實施例中,上述數(shù)據(jù)處理方法可以但不限于應用于固態(tài)硬盤的垃圾數(shù)據(jù)回收過程中。也就是說,在本實施例中,在對作為固態(tài)硬盤中的垃圾的頁面數(shù)據(jù)進行數(shù)據(jù)回收時,可以在獲取到對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收的回收請求時,通過將有效頁面數(shù)據(jù)中將要從緩存中置換存儲到固態(tài)硬盤的第一類型的頁面數(shù)據(jù)直接一次搬遷到固態(tài)硬盤中預定的搬遷位置,而無需先將第一類型的頁面數(shù)據(jù)置換到固態(tài)硬盤中,再進行一次重新搬遷,從而克服了相關技術中由于數(shù)據(jù)的二次搬遷所導致的數(shù)據(jù)處理效率低的問題,進而實現(xiàn)在提高數(shù)據(jù)處理效率的同時,還大大降低了固態(tài)硬盤由于數(shù)據(jù)搬遷所造成的開銷。

可選地,在本實施例中,上述固態(tài)硬盤中包括:閃存轉換層(flashtranslationlayer,簡稱ftl),閃存轉換層用于通過映射表將邏輯地址映射為物理地址;負責標記固態(tài)硬盤中的頁面類型;檢測空閑空間,當出現(xiàn)不足時觸發(fā)數(shù)據(jù)回收,例如,當固態(tài)硬盤內(nèi)的已擦除塊的數(shù)量占總數(shù)據(jù)塊數(shù)的20%以下時,將觸發(fā)用于請求對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收的回收請求。

可選地,在本實施例中,上述有效頁面數(shù)據(jù)的頁面類型包括第一類型的頁面數(shù)據(jù)及第二類型的頁面數(shù)據(jù),其中,第一類型的頁面數(shù)據(jù)為將要從緩存中置換存儲到固態(tài)硬盤的頁面數(shù)據(jù),第二類型的頁面數(shù)據(jù)為未從緩存中置換存儲到固態(tài)硬盤的頁面數(shù)據(jù)。

可選地,在本實施例中,響應回收請求從緩存的有效頁面數(shù)據(jù)中獲取第一類型的頁面數(shù)據(jù)包括:獲取對緩存中的有效頁面數(shù)據(jù)的訪問頻率及修改標識;根據(jù)訪問頻率及修改標識獲取有效頁面數(shù)據(jù)的頁面類型,其中,有效頁面數(shù)據(jù)的頁面類型包括第一類型的頁面數(shù)據(jù)及第二類型的頁面數(shù)據(jù),第二類型的頁面數(shù)據(jù)用于指示未從緩存中置換存儲到固態(tài)硬盤的頁面數(shù)據(jù);根據(jù)有效頁面數(shù)據(jù)的頁面類型對有效頁面數(shù)據(jù)進行分離,得到第一類型的頁面數(shù)據(jù)。

例如,用于臨時緩存有效頁面數(shù)據(jù)的緩存層(cachelayer),將根據(jù)最近最久未使用(leastrecentlyused)算法將緩存中的頁面排成隊列(最近最久未使用隊列,即lru隊列)。其中,lru隊列可以但不限于根據(jù)預定閾值分為熱(hot)頁面和冷(cool)頁面,例如,預定閾值為10,則lru隊列的隊尾10%被標記為冷(cool)頁面,前90%的頁面被標記為熱(hot)頁面。其中,lru隊列可以但不限于根據(jù)訪問頻率排序。

進一步,將在緩存層中被修改的頁面數(shù)據(jù)標記為臟(dirty)頁面,未被修改的頁面數(shù)據(jù)標記為干凈(clean)頁面。冷頁面中的臟頁面被稱為冷臟(cooldirty)頁面(用cd標識)、熱頁面中的臟頁面被稱為熱臟(hotdirty)頁面(用hd標識)。

需要說明的是,在緩存中的頁面數(shù)據(jù)存在兩個副本,一個是在固態(tài)硬盤中的副本,一個是在緩存中的副本。如果是干凈頁面,則兩個副本內(nèi)容完全相同;如果是臟頁面,則緩存中的副本為最新頁面數(shù)據(jù),固態(tài)硬盤中的副本為舊頁面數(shù)據(jù)。也就是說,固態(tài)硬盤中冷臟頁面與緩存中冷臟頁面是同一頁面的不同副本,緩存中的冷臟頁面存儲著新數(shù)據(jù),固態(tài)硬盤中存儲著冷臟頁面的舊數(shù)據(jù)。在本實施例中,通過將緩存置換與數(shù)據(jù)回收進行靈活結合,以使緩存中的冷臟頁面被置換出去時,可以將固態(tài)硬盤中存儲著舊數(shù)據(jù)的冷臟頁面標記為失效頁面數(shù)據(jù),并將緩存中冷臟頁面對應的新數(shù)據(jù)直接寫入固態(tài)硬盤中更新后的位置(如執(zhí)行數(shù)據(jù)回收后預定的搬遷位置)。從而避免先將冷臟頁面通過緩存置換搬遷到固態(tài)硬盤中,在進行數(shù)據(jù)回收的過程中,再執(zhí)行一次二次搬遷的步驟,從而克服了相關技術中由于數(shù)據(jù)的二次搬遷所導致的數(shù)據(jù)處理效率低的問題,進而實現(xiàn)在提高數(shù)據(jù)處理效率的同時,還大大降低了固態(tài)硬盤由于數(shù)據(jù)搬遷所造成的開銷。

例如,如圖2所示,固態(tài)硬盤中每一個數(shù)據(jù)塊中可以但不限于包括以下5種類型的頁面數(shù)據(jù):未寫頁面數(shù)據(jù)(可以用未寫頁面表示)、失效頁面數(shù)據(jù)(可以用失效頁面表示)、有效頁面數(shù)據(jù)(可以用有效頁面表示),其中,有效頁面數(shù)據(jù)包括:干凈頁面數(shù)據(jù)(可以用干凈頁面表示)、熱臟頁面數(shù)據(jù)(可以用熱臟頁面表示)及冷臟頁面數(shù)據(jù)(可以用冷臟頁面表示)。其中,未寫頁面數(shù)據(jù)是該數(shù)據(jù)塊中的空閑空間,已經(jīng)被擦除過或從未被分配,可以直接將數(shù)據(jù)寫入。干凈頁面數(shù)據(jù)是指該頁面已被寫入數(shù)據(jù),同時該頁面數(shù)據(jù)未在緩存中被修改;熱臟頁面數(shù)據(jù)是指該頁面數(shù)據(jù)已在緩存中被修改,但由于被頻繁訪問而暫未從緩存中置換出的頁面數(shù)據(jù);冷臟頁面數(shù)據(jù)是指該頁面數(shù)據(jù)已在緩存中被修改,且未被頻繁訪問,即將被緩存置換算法置換出去;失效頁面數(shù)據(jù)是指該頁面數(shù)據(jù)被修改過,新數(shù)據(jù)已經(jīng)寫到其他位置,那么舊數(shù)據(jù)即為失效數(shù)據(jù)。此外,在本實施例中,上述緩存中用于存儲有效頁面數(shù)據(jù),其中可以但不限于包括以下3種類型的頁面數(shù)據(jù):干凈頁面數(shù)據(jù)、熱臟頁面數(shù)據(jù)及冷臟頁面數(shù)據(jù)。

也就是說,在本實施例中,上述第二類型的頁面數(shù)據(jù)可以包括但不限于:干凈頁面數(shù)據(jù)、熱臟頁面數(shù)據(jù),上述第一類型的頁面數(shù)據(jù)可以包括但不限于冷臟頁面數(shù)據(jù)。其中,需要說明的是由于有效頁面數(shù)據(jù)中的干凈頁面數(shù)據(jù)在緩存中與固態(tài)硬盤中存儲的內(nèi)容一致,因而,在本實施例中,干凈頁面數(shù)據(jù)可以但不限于與熱臟頁面數(shù)據(jù)均被視為未從 緩存中置換存儲到固態(tài)硬盤的第二類型的頁面數(shù)據(jù)。

可選地,在本實施例中,在將第一類型的頁面數(shù)據(jù)從緩存搬遷至固態(tài)硬盤中預定的搬遷位置之前,還包括:

s1,至少根據(jù)第一類型的頁面數(shù)據(jù)確定固態(tài)硬盤的數(shù)據(jù)回收塊;

s2,對數(shù)據(jù)回收塊進行數(shù)據(jù)回收。

可選地,在本實施例中,上述對數(shù)據(jù)回收塊進行數(shù)據(jù)回收可以包括:將數(shù)據(jù)回收塊中的有效頁面數(shù)據(jù)搬遷至預定的搬遷位置,并將有效頁面數(shù)據(jù)標記為失效頁面數(shù)據(jù);對數(shù)據(jù)回收塊中的失效頁面數(shù)據(jù)進行擦除。

可選地,在本實施例中,上述至少根據(jù)第一類型的頁面數(shù)據(jù)確定固態(tài)硬盤的數(shù)據(jù)回收塊可以但不限于至少根據(jù)第一類型的頁面數(shù)據(jù)獲取固態(tài)硬盤中各個數(shù)據(jù)塊的數(shù)據(jù)回收率,通過比較得到的數(shù)據(jù)回收率來確定數(shù)據(jù)回收塊(如確定數(shù)據(jù)回收塊的塊標識)。

可選地,在本實施例中,通過比較得到的數(shù)據(jù)回收率確定數(shù)據(jù)回收塊的方式包括以下至少之一:

1)將數(shù)據(jù)回收率最高的數(shù)據(jù)塊作為數(shù)據(jù)回收塊;

2)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,則比較這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量,數(shù)值大者作為數(shù)據(jù)回收塊;

3)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,且這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量相同,則比較這些數(shù)據(jù)塊的第二類型的頁面數(shù)據(jù)的數(shù)量,數(shù)值小者作為數(shù)據(jù)回收塊;

4)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,且這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量相同,第二類型的頁面數(shù)據(jù)的數(shù)量也相同,則將塊標識最大的數(shù)據(jù)塊作為數(shù)據(jù)回收塊。

可選地,在本實施例中,至少根據(jù)第一類型的頁面數(shù)據(jù)獲取固態(tài)硬盤中各個數(shù)據(jù)塊的數(shù)據(jù)回收率可以包括但不限于:根據(jù)第一類型的頁面數(shù)據(jù)及固態(tài)硬盤中各個數(shù)據(jù)塊中的失效頁面數(shù)據(jù)來確定數(shù)據(jù)回收率。

可選地,在本實施例中,在將第一類型的頁面數(shù)據(jù)從緩存搬遷至固態(tài)硬盤中預定的搬遷位置之前,還包括:根據(jù)固態(tài)硬盤中除數(shù)據(jù)回收塊之外的其他數(shù)據(jù)塊中未寫頁面數(shù)據(jù)的大小確定預定的搬遷位置。以使固態(tài)硬盤中的有效頁面數(shù)據(jù)可以全部重新搬遷至其他數(shù)據(jù)塊中未寫頁面數(shù)據(jù)對應的區(qū)域。

具體結合以下示例進行說明,如圖3所示,該方法包括:

s302,系統(tǒng)觸發(fā)回收請求;

s304,獲取緩存中所有頁面數(shù)據(jù)的頁面類型,從中獲取第一類型的頁面數(shù)據(jù);

s306,計算固態(tài)硬盤中各個數(shù)據(jù)塊的數(shù)據(jù)回收率;

s308,確定數(shù)據(jù)回收塊;

s310,選取預定的搬遷位置;

s312,將數(shù)據(jù)回收塊中第二類型的頁面數(shù)據(jù)直接拷貝至搬遷位置預定的搬遷位置;

s314,將數(shù)據(jù)回收塊中與第一類型的頁面數(shù)據(jù)對應的頁面數(shù)據(jù)標記為失效頁面,將緩存中最新的第一類型的頁面數(shù)據(jù)拷貝至預定的搬遷位置;

s316,將該數(shù)據(jù)回收塊擦除。

通過本申請?zhí)峁┑膶嵤├?,在獲取到對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收的回收請求時,通過將有效頁面數(shù)據(jù)中將要從緩存中置換存儲到固態(tài)硬盤的第一類型的頁面數(shù)據(jù)直接一次搬遷到固態(tài)硬盤中預定的搬遷位置,而無需先將第一類型的頁面數(shù)據(jù)置換到固態(tài)硬盤中,再進行一次重新搬遷,從而克服了相關技術中由于數(shù)據(jù)的二次搬遷所導致的數(shù)據(jù)處理效率低的問題,進而實現(xiàn)提高數(shù)據(jù)處理效率的效果,此外,還降低了固態(tài)硬盤在數(shù)據(jù)回收和緩存置換過程中的數(shù)據(jù)搬遷次數(shù)及其造成的額外開銷,提高了固態(tài)硬盤的性能。

作為一種可選的方案,響應回收請求從緩存的有效頁面數(shù)據(jù)中獲取第一類型的頁面數(shù)據(jù)包括:

s1,獲取對緩存中的有效頁面數(shù)據(jù)的訪問頻率及修改標識;

s2,根據(jù)訪問頻率及修改標識獲取有效頁面數(shù)據(jù)的頁面類型,其中,有效頁面數(shù)據(jù)的頁面類型包括第一類型的頁面數(shù)據(jù)及第二類型的頁面數(shù)據(jù),第二類型的頁面數(shù)據(jù)用于指示未從緩存中置換存儲到固態(tài)硬盤的頁面數(shù)據(jù);

s3,根據(jù)有效頁面數(shù)據(jù)的頁面類型對有效頁面數(shù)據(jù)進行分離,得到第一類型的頁面數(shù)據(jù)。

可選地,在本實施例中,第二類型的頁面數(shù)據(jù)包括第一頁面數(shù)據(jù)及第二頁面數(shù)據(jù),其中,根據(jù)訪問頻率及修改標識獲取有效頁面數(shù)據(jù)的頁面類型包括:將修改標識為未被修改的頁面數(shù)據(jù)作為第一頁面數(shù)據(jù),將修改標識為已被修改且訪問頻率大于等于第一預定閾值的頁面數(shù)據(jù)作為第二頁面數(shù)據(jù),將修改標識為已被修改且訪問頻率小于第一預定閾值的頁面數(shù)據(jù)作為第一類型的頁面數(shù)據(jù)。

也就是說,在本實施例中,固態(tài)硬盤中的ftl將實時檢測固態(tài)硬盤的空閑空間,在檢測出空閑空間不足并觸發(fā)回收請求后,系統(tǒng)將開始遍歷緩存中的lru隊列,并對lru 隊列中的頁面數(shù)據(jù)標記頁面類型。

例如,假設用于分界的預定閾值為10%,則緩存層將lru隊列的隊尾的10%頁面標記為冷頁面,將其余頁面標記為熱頁面。進一步,分別遍歷冷頁面及熱頁面,將冷頁面中的臟頁面標記為冷臟頁面(cd),將熱頁面中的臟頁面標記為熱臟頁面(hd),并將標記出的頁面類型通知固態(tài)硬盤中的ftl。

也就是說,在獲取到緩存中標記的頁面數(shù)據(jù)的頁面類型后,則可以通過分離獲取第一類型的頁面數(shù)據(jù)(即冷臟頁面),從而便于對該第一類型的頁面數(shù)據(jù)進行一次搬遷,搬遷至執(zhí)行數(shù)據(jù)回收后有效頁面數(shù)據(jù)的存儲位置,而避免執(zhí)行緩存置換及數(shù)據(jù)回收過程中的兩次搬遷,達到減小開銷的效果。

作為一種可選的方案,在將第一類型的頁面數(shù)據(jù)從緩存搬遷至固態(tài)硬盤中預定的搬遷位置之前,還包括:

s1,至少根據(jù)第一類型的頁面數(shù)據(jù)確定固態(tài)硬盤的數(shù)據(jù)回收塊,其中,固態(tài)硬盤中各個數(shù)據(jù)塊中的頁面數(shù)據(jù)的頁面類型包括:未寫頁面數(shù)據(jù)、失效頁面數(shù)據(jù)、有效頁面數(shù)據(jù),各個數(shù)據(jù)塊中包括數(shù)據(jù)回收塊;

s2,對數(shù)據(jù)回收塊進行數(shù)據(jù)回收。

可選地,在本實施例中,上述至少根據(jù)第一類型的頁面數(shù)據(jù)確定固態(tài)硬盤的數(shù)據(jù)回收塊包括:

s12,根據(jù)緩存中第一類型的頁面數(shù)據(jù)及固態(tài)硬盤中各個數(shù)據(jù)塊中的頁面數(shù)據(jù)獲取各個數(shù)據(jù)塊的數(shù)據(jù)回收率;

s14,根據(jù)數(shù)據(jù)回收率確定數(shù)據(jù)回收塊。

可選地,在本實施例中,通過比較得到的數(shù)據(jù)回收率確定數(shù)據(jù)回收塊的方式包括以下至少之一:

1)將數(shù)據(jù)回收率最高的數(shù)據(jù)塊作為數(shù)據(jù)回收塊;

2)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,則比較這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量,數(shù)值大者作為數(shù)據(jù)回收塊;

3)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,且這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量相同,則比較這些數(shù)據(jù)塊的第二類型的頁面數(shù)據(jù)的數(shù)量,數(shù)值小者作為數(shù)據(jù)回收塊;

4)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,且這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量相同,第二類型的頁面數(shù)據(jù)的數(shù)量也相同,則將塊標識最大的數(shù)據(jù) 塊作為數(shù)據(jù)回收塊。

需要說明的是,在本實施例中,上述作為緩存的緩存層的映射表中不僅存儲了頁面數(shù)據(jù)標記的頁面類型,還對應存儲了頁面數(shù)據(jù)在置換存儲到固態(tài)硬盤后預設的位置信息(如數(shù)據(jù)塊的塊標識)。

例如,假設第一類型的頁面數(shù)據(jù)為冷臟頁面,則ftl可以統(tǒng)計由緩存獲取的標記為第一類型的頁面數(shù)據(jù)的冷臟頁面的數(shù)量,及固態(tài)硬盤各個數(shù)據(jù)塊中失效頁面數(shù)據(jù)的數(shù)量,以數(shù)據(jù)塊為單位,分別獲取各個數(shù)據(jù)塊中失效頁面數(shù)量和冷臟頁面數(shù)量,利用上述失效頁面數(shù)量和冷臟頁面數(shù)量計算各個數(shù)據(jù)塊的數(shù)據(jù)回收率。

通過本申請?zhí)峁┑膶嵤├?,通過數(shù)據(jù)回收率來準確定位固態(tài)硬盤中用于進行數(shù)據(jù)回收的數(shù)據(jù)回收塊,從而實現(xiàn)對固態(tài)硬盤準確高效的數(shù)據(jù)回收,進而保證固態(tài)硬盤中數(shù)據(jù)的處理效率。

作為一種可選的方案,根據(jù)緩存中第一類型的頁面數(shù)據(jù)及固態(tài)硬盤中各個數(shù)據(jù)塊中的頁面數(shù)據(jù)獲取各個數(shù)據(jù)塊的數(shù)據(jù)回收率包括:

s1,重復執(zhí)行以下步驟,直至遍歷完固態(tài)硬盤中的各個數(shù)據(jù)塊:

s12,獲取當前數(shù)據(jù)塊的塊標識;

s14,獲取塊標識所標識的第一類型的頁面數(shù)據(jù)及失效頁面數(shù)據(jù);

s16,通過以下方式獲取當前數(shù)據(jù)塊的數(shù)據(jù)回收率:

其中,r表示當前數(shù)據(jù)塊的數(shù)據(jù)回收率,a表示固態(tài)硬盤中當前數(shù)據(jù)塊的失效頁面數(shù)據(jù)的頁面數(shù)量,b表示緩存中的第一類型的頁面數(shù)據(jù)的頁面數(shù)量,p表示頁面大小,b表示塊大小。

需要說明的是,在本實施例中,固態(tài)硬盤中讀寫操作的單位是頁面,其中,頁面大小通常為2kb,訪問延遲一般為15us到200us。擦除操作的單位是塊,其中,塊大小通常為128kb,擦除一塊需要2ms左右的開銷。

通過本申請?zhí)峁┑膶嵤├?,通過上述方式依次計算固態(tài)硬盤中各個數(shù)據(jù)塊的數(shù)據(jù)回收率,從而保證所確定的數(shù)據(jù)回收塊的準確性,進而實現(xiàn)對固態(tài)硬盤準確高效的數(shù)據(jù)回收。

作為一種可選的方案,對數(shù)據(jù)回收塊進行數(shù)據(jù)回收包括:

s1,將數(shù)據(jù)回收塊中的有效頁面數(shù)據(jù)搬遷至預定的搬遷位置,并將有效頁面數(shù)據(jù)標 記為失效頁面數(shù)據(jù);

s2,對數(shù)據(jù)回收塊中的失效頁面數(shù)據(jù)進行擦除。

例如,假設第一類型的頁面數(shù)據(jù)以冷臟頁面為例,第二類型的頁面數(shù)據(jù)以干凈頁面和熱臟頁面為例,則在執(zhí)行數(shù)據(jù)回收的過程中,可以將數(shù)據(jù)回收塊中的干凈頁面和熱臟頁面直接拷貝至預定的搬遷位置,并修改ftl中上述頁面數(shù)據(jù)對應的位置信息。并將數(shù)據(jù)回收塊中的相應有效頁面數(shù)據(jù)標記為失效頁面數(shù)據(jù)(可以用失效頁面表示)。

進一步,將數(shù)據(jù)回收塊中的冷臟頁面也標記為失效頁面數(shù)據(jù),并將在緩存中該冷臟頁面的最新數(shù)據(jù)拷貝至預定的搬遷位置。然后,將該冷臟頁面在緩存中的最新數(shù)據(jù)刪除,同時修改ftl中上述頁面數(shù)據(jù)對應的位置信息。

然后,擦除數(shù)據(jù)回收塊中的頁面數(shù)據(jù),將該數(shù)據(jù)回收塊標記為“已擦除”,以實現(xiàn)對固態(tài)硬盤的數(shù)據(jù)回收,釋放空閑空間的目的。

通過本申請?zhí)峁┑膶嵤├?,通過上述方式實現(xiàn)對固態(tài)硬盤的數(shù)據(jù)回收保證了有效頁面數(shù)據(jù)中的第一類型的頁面數(shù)據(jù)和第二類型的頁面數(shù)據(jù)均可一次搬遷到預定的搬遷位置,避免了對第一類型的頁面數(shù)據(jù)的二次搬遷,實現(xiàn)了降低固態(tài)硬盤的開銷的效果。

作為一種可選的方案,在將第一類型的頁面數(shù)據(jù)從緩存搬遷至固態(tài)硬盤中預定的搬遷位置之前,還包括:

s1,根據(jù)固態(tài)硬盤中除數(shù)據(jù)回收塊之外的其他數(shù)據(jù)塊中未寫頁面數(shù)據(jù)的大小確定預定的搬遷位置。

例如,統(tǒng)計數(shù)據(jù)回收塊中有效頁面數(shù)據(jù)的大小,查看實時更新的ftl,查詢固態(tài)硬盤其他數(shù)據(jù)塊中滿足該有效頁面數(shù)據(jù)的大小的未寫數(shù)據(jù)頁面,將查找到的數(shù)據(jù)塊作為該數(shù)據(jù)回收塊的有效頁面數(shù)據(jù)的預定的搬遷位置。

通過本申請?zhí)峁┑膶嵤├?,通過根據(jù)固態(tài)硬盤中除數(shù)據(jù)回收塊之外的其他數(shù)據(jù)塊中未寫頁面數(shù)據(jù)的大小確定預定的搬遷位置,以保證數(shù)據(jù)回收塊中的有效頁面數(shù)據(jù)可以全部搬遷。

通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。

實施例2

在本實施例中還提供了一種數(shù)據(jù)處理裝置,該裝置用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進行過說明的不再贅述。如以下所使用的,術語“模塊”可以實現(xiàn)預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構想的。

圖4是根據(jù)本發(fā)明實施例提供的一種可選的數(shù)據(jù)處理裝置的示意圖,如圖4所示,該裝置包括:

1)第一獲取單元402,用于獲取回收請求,其中,回收請求用于請求對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收;

2)第二獲取單元404,用于響應回收請求從緩存的有效頁面數(shù)據(jù)中獲取第一類型的頁面數(shù)據(jù),其中,第一類型的頁面數(shù)據(jù)用于指示將要從緩存中置換存儲到固態(tài)硬盤的頁面數(shù)據(jù);

3)搬遷單元406,用于將第一類型的頁面數(shù)據(jù)從緩存搬遷至固態(tài)硬盤中預定的搬遷位置,其中,預定的搬遷位置為執(zhí)行數(shù)據(jù)回收后有效頁面數(shù)據(jù)的存儲位置。

可選地,在本實施例中,上述數(shù)據(jù)處理裝置可以但不限于應用于固態(tài)硬盤的垃圾數(shù)據(jù)回收過程中。也就是說,在本實施例中,在對作為固態(tài)硬盤中的垃圾的頁面數(shù)據(jù)進行數(shù)據(jù)回收時,可以在獲取到對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收的回收請求時,通過將有效頁面數(shù)據(jù)中將要從緩存中置換存儲到固態(tài)硬盤的第一類型的頁面數(shù)據(jù)直接一次搬遷到固態(tài)硬盤中預定的搬遷位置,而無需先將第一類型的頁面數(shù)據(jù)置換到固態(tài)硬盤中,再進行一次重新搬遷,從而克服了相關技術中由于數(shù)據(jù)的二次搬遷所導致的數(shù)據(jù)處理效率低的問題,進而實現(xiàn)在提高數(shù)據(jù)處理效率的同時,還大大降低了固態(tài)硬盤由于數(shù)據(jù)搬遷所造成的開銷。

可選地,在本實施例中,上述固態(tài)硬盤中包括:閃存轉換層(flashtranslationlayer,簡稱ftl),閃存轉換層用于通過映射表將邏輯地址映射為物理地址;負責標記固態(tài)硬盤中的頁面類型;檢測空閑空間,當出現(xiàn)不足時觸發(fā)數(shù)據(jù)回收,例如,當固態(tài)硬盤內(nèi)的已擦除塊的數(shù)量占總數(shù)據(jù)塊數(shù)的20%以下時,將觸發(fā)用于請求對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收的回收請求。

可選地,在本實施例中,上述有效頁面數(shù)據(jù)的頁面類型包括第一類型的頁面數(shù)據(jù)及第二類型的頁面數(shù)據(jù),其中,第一類型的頁面數(shù)據(jù)為將要從緩存中置換存儲到固態(tài)硬盤的頁面數(shù)據(jù),第二類型的頁面數(shù)據(jù)為未從緩存中置換存儲到固態(tài)硬盤的頁面數(shù)據(jù)。

可選地,在本實施例中,第二獲取單元404包括:(1)第一獲取模塊,用于獲取對緩存中的有效頁面數(shù)據(jù)的訪問頻率及修改標識;(2)第二獲取模塊,用于根據(jù)訪問頻率及修改標識獲取有效頁面數(shù)據(jù)的頁面類型,其中,有效頁面數(shù)據(jù)的頁面類型包括第一類型的頁面數(shù)據(jù)及第二類型的頁面數(shù)據(jù),第二類型的頁面數(shù)據(jù)用于指示未從緩存中置換存 儲到固態(tài)硬盤的頁面數(shù)據(jù);(3)分離模塊,用于根據(jù)有效頁面數(shù)據(jù)的頁面類型對有效頁面數(shù)據(jù)進行分離,得到第一類型的頁面數(shù)據(jù)。

例如,用于臨時緩存有效頁面數(shù)據(jù)的緩存層(cachelayer),將根據(jù)最近最久未使用(leastrecentlyused)算法將緩存中的頁面排成隊列(最近最久未使用隊列,即lru隊列)。其中,lru隊列可以但不限于根據(jù)預定閾值分為熱(hot)頁面和冷(cool)頁面,例如,預定閾值為10,則lru隊列的隊尾10%被標記為冷(cool)頁面,前90%的頁面被標記為熱(hot)頁面。其中,lru隊列可以但不限于根據(jù)訪問頻率排序。

進一步,將在緩存層中被修改的頁面數(shù)據(jù)標記為臟(dirty)頁面,未被修改的頁面數(shù)據(jù)標記為干凈(clean)頁面。冷頁面中的臟頁面被稱為冷臟(cooldirty)頁面(用cd標識)、熱頁面中的臟頁面被稱為熱臟(hotdirty)頁面(用hd標識)。

需要說明的是,在緩存中的頁面數(shù)據(jù)存在兩個副本,一個是在固態(tài)硬盤中的副本,一個是在緩存中的副本。如果是干凈頁面,則兩個副本內(nèi)容完全相同;如果是臟頁面,則緩存中的副本為最新頁面數(shù)據(jù),固態(tài)硬盤中的副本為舊頁面數(shù)據(jù)。也就是說,固態(tài)硬盤中冷臟頁面與緩存中冷臟頁面是同一頁面的不同副本,緩存中的冷臟頁面存儲著新數(shù)據(jù),固態(tài)硬盤中存儲著冷臟頁面的舊數(shù)據(jù)。在本實施例中,通過將緩存置換與數(shù)據(jù)回收進行靈活結合,以使緩存中的冷臟頁面被置換出去時,可以將固態(tài)硬盤中存儲著舊數(shù)據(jù)的冷臟頁面標記為失效頁面數(shù)據(jù),并將緩存中冷臟頁面對應的新數(shù)據(jù)直接寫入固態(tài)硬盤中更新后的位置(如執(zhí)行數(shù)據(jù)回收后預定的搬遷位置)。從而避免先將冷臟頁面通過緩存置換搬遷到固態(tài)硬盤中,在進行數(shù)據(jù)回收的過程中,再執(zhí)行一次二次搬遷的步驟,從而克服了相關技術中由于數(shù)據(jù)的二次搬遷所導致的數(shù)據(jù)處理效率低的問題,進而實現(xiàn)在提高數(shù)據(jù)處理效率的同時,還大大降低了固態(tài)硬盤由于數(shù)據(jù)搬遷所造成的開銷。

例如,如圖2所示,固態(tài)硬盤中每一個數(shù)據(jù)塊中可以但不限于包括以下5種類型的頁面數(shù)據(jù):未寫頁面數(shù)據(jù)(可以用未寫頁面表示)、失效頁面數(shù)據(jù)(可以用失效頁面表示)、有效頁面數(shù)據(jù)(可以用有效頁面表示),其中,有效頁面數(shù)據(jù)包括:干凈頁面數(shù)據(jù)(可以用干凈頁面表示)、熱臟頁面數(shù)據(jù)(可以用熱臟頁面表示)及冷臟頁面數(shù)據(jù)(可以用冷臟頁面表示)。其中,未寫頁面數(shù)據(jù)是該數(shù)據(jù)塊中的空閑空間,已經(jīng)被擦除過或從未被分配,可以直接將數(shù)據(jù)寫入。干凈頁面數(shù)據(jù)是指該頁面已被寫入數(shù)據(jù),同時該頁面數(shù)據(jù)未在緩存中被修改;熱臟頁面數(shù)據(jù)是指該頁面數(shù)據(jù)已在緩存中被修改,但由于被頻繁訪問而暫未從緩存中置換出的頁面數(shù)據(jù);冷臟頁面數(shù)據(jù)是指該頁面數(shù)據(jù)已在緩存中被修改,且未被頻繁訪問,即將被緩存置換算法置換出去;失效頁面數(shù)據(jù)是指該頁面數(shù)據(jù)被修改過,新數(shù)據(jù)已經(jīng)寫到其他位置,那么舊數(shù)據(jù)即為失效數(shù)據(jù)。此外,在本實施例中,上述緩存中用于存儲有效頁面數(shù)據(jù),其中可以但不限于包括以下3種類型的頁面數(shù)據(jù):干凈頁面數(shù)據(jù)、熱臟頁面數(shù)據(jù)及冷臟頁面數(shù)據(jù)。

也就是說,在本實施例中,上述第二類型的頁面數(shù)據(jù)可以包括但不限于:干凈頁面數(shù)據(jù)、熱臟頁面數(shù)據(jù),上述第一類型的頁面數(shù)據(jù)可以包括但不限于冷臟頁面數(shù)據(jù)。其中, 需要說明的是由于有效頁面數(shù)據(jù)中的干凈頁面數(shù)據(jù)在緩存中與固態(tài)硬盤中存儲的內(nèi)容一致,因而,在本實施例中,干凈頁面數(shù)據(jù)可以但不限于與熱臟頁面數(shù)據(jù)均被視為未從緩存中置換存儲到固態(tài)硬盤的第二類型的頁面數(shù)據(jù)。

可選地,在本實施例中,上述裝置還包括:(1)第一確定單元,用于在將第一類型的頁面數(shù)據(jù)從緩存搬遷至固態(tài)硬盤中預定的搬遷位置之前,至少根據(jù)第一類型的頁面數(shù)據(jù)確定固態(tài)硬盤的數(shù)據(jù)回收塊,其中,固態(tài)硬盤中各個數(shù)據(jù)塊中的頁面數(shù)據(jù)的頁面類型包括:未寫頁面數(shù)據(jù)、失效頁面數(shù)據(jù)、有效頁面數(shù)據(jù),各個數(shù)據(jù)塊中包括數(shù)據(jù)回收塊;(2)回收單元,用于對數(shù)據(jù)回收塊進行數(shù)據(jù)回收。

可選地,在本實施例中,上述回收單元通過以下步驟實現(xiàn)對數(shù)據(jù)回收塊進行數(shù)據(jù)回收:將數(shù)據(jù)回收塊中的有效頁面數(shù)據(jù)搬遷至預定的搬遷位置,并將有效頁面數(shù)據(jù)標記為失效頁面數(shù)據(jù);對數(shù)據(jù)回收塊中的失效頁面數(shù)據(jù)進行擦除。

可選地,在本實施例中,上述第一確定單元通過以下步驟實現(xiàn)至少根據(jù)第一類型的頁面數(shù)據(jù)確定固態(tài)硬盤的數(shù)據(jù)回收塊:至少根據(jù)第一類型的頁面數(shù)據(jù)獲取固態(tài)硬盤中各個數(shù)據(jù)塊的數(shù)據(jù)回收率,通過比較得到的數(shù)據(jù)回收率來確定數(shù)據(jù)回收塊(如確定數(shù)據(jù)回收塊的塊標識)。

可選地,在本實施例中,通過比較得到的數(shù)據(jù)回收率確定數(shù)據(jù)回收塊的方式包括以下至少之一:

1)將數(shù)據(jù)回收率最高的數(shù)據(jù)塊作為數(shù)據(jù)回收塊;

2)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,則比較這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量,數(shù)值大者作為數(shù)據(jù)回收塊;

3)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,且這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量相同,則比較這些數(shù)據(jù)塊的第二類型的頁面數(shù)據(jù)的數(shù)量,數(shù)值小者作為數(shù)據(jù)回收塊;

4)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,且這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量相同,第二類型的頁面數(shù)據(jù)的數(shù)量也相同,則將塊標識最大的數(shù)據(jù)塊作為數(shù)據(jù)回收塊。

可選地,在本實施例中,至少根據(jù)第一類型的頁面數(shù)據(jù)獲取固態(tài)硬盤中各個數(shù)據(jù)塊的數(shù)據(jù)回收率可以包括但不限于:根據(jù)第一類型的頁面數(shù)據(jù)及固態(tài)硬盤中各個數(shù)據(jù)塊中的失效頁面數(shù)據(jù)來確定數(shù)據(jù)回收率。

可選地,在本實施例中,在將第一類型的頁面數(shù)據(jù)從緩存搬遷至固態(tài)硬盤中預定的搬遷位置之前,還包括:根據(jù)固態(tài)硬盤中除數(shù)據(jù)回收塊之外的其他數(shù)據(jù)塊中未寫頁面數(shù)據(jù)的大小確定預定的搬遷位置。以使固態(tài)硬盤中的有效頁面數(shù)據(jù)可以全部重新搬遷至其 他數(shù)據(jù)塊中未寫頁面數(shù)據(jù)對應的區(qū)域。

具體結合以下示例進行說明,如圖3所示,上述數(shù)據(jù)處理裝置可以通過以下步驟實現(xiàn)對固態(tài)硬盤的數(shù)據(jù)回收:

s302,系統(tǒng)觸發(fā)回收請求;

s304,獲取緩存中所有頁面數(shù)據(jù)的頁面類型,從中獲取第一類型的頁面數(shù)據(jù);

s306,計算固態(tài)硬盤中各個數(shù)據(jù)塊的數(shù)據(jù)回收率;

s308,確定數(shù)據(jù)回收塊;

s310,選取預定的搬遷位置;

s312,將數(shù)據(jù)回收塊中第二類型的頁面數(shù)據(jù)直接拷貝至搬遷位置預定的搬遷位置;

s314,將數(shù)據(jù)回收塊中與第一類型的頁面數(shù)據(jù)對應的頁面數(shù)據(jù)標記為失效頁面,將緩存中最新的第一類型的頁面數(shù)據(jù)拷貝至預定的搬遷位置;

s316,將該數(shù)據(jù)回收塊擦除。

通過本申請?zhí)峁┑膶嵤├?,在獲取到對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收的回收請求時,通過將有效頁面數(shù)據(jù)中將要從緩存中置換存儲到固態(tài)硬盤的第一類型的頁面數(shù)據(jù)直接一次搬遷到固態(tài)硬盤中預定的搬遷位置,而無需先將第一類型的頁面數(shù)據(jù)置換到固態(tài)硬盤中,再進行一次重新搬遷,從而克服了相關技術中由于數(shù)據(jù)的二次搬遷所導致的數(shù)據(jù)處理效率低的問題,進而實現(xiàn)提高數(shù)據(jù)處理效率的效果,此外,還降低了固態(tài)硬盤在數(shù)據(jù)回收和緩存置換過程中的數(shù)據(jù)搬遷次數(shù)及其造成的額外開銷,提高了固態(tài)硬盤的性能。

作為一種可選的方案,第二獲取單元包括:

1)第一獲取模塊,用于獲取對緩存中的有效頁面數(shù)據(jù)的訪問頻率及修改標識;

2)第二獲取模塊,用于根據(jù)訪問頻率及修改標識獲取有效頁面數(shù)據(jù)的頁面類型,其中,有效頁面數(shù)據(jù)的頁面類型包括第一類型的頁面數(shù)據(jù)及第二類型的頁面數(shù)據(jù),第二類型的頁面數(shù)據(jù)用于指示未從緩存中置換存儲到固態(tài)硬盤的頁面數(shù)據(jù);

3)分離模塊,用于根據(jù)有效頁面數(shù)據(jù)的頁面類型對有效頁面數(shù)據(jù)進行分離,得到第一類型的頁面數(shù)據(jù)。

可選地,在本實施例中,上述第二類型的頁面數(shù)據(jù)可以包括:第一頁面數(shù)據(jù)及第二頁面數(shù)據(jù),其中,第二獲取模塊通過以下方式獲取有效頁面數(shù)據(jù)的頁面類型包括:將修改標識為未被修改的頁面數(shù)據(jù)作為第一頁面數(shù)據(jù),將修改標識為已被修改且訪問頻率大于等于第一預定閾值的頁面數(shù)據(jù)作為第二頁面數(shù)據(jù),將修改標識為已被修改且訪問頻率小于第一預定閾值的頁面數(shù)據(jù)作為第一類型的頁面數(shù)據(jù)。

也就是說,在本實施例中,固態(tài)硬盤中的ftl將實時檢測固態(tài)硬盤的空閑空間,在檢測出空閑空間不足并觸發(fā)回收請求后,系統(tǒng)將開始遍歷緩存中的lru隊列,并對lru隊列中的頁面數(shù)據(jù)標記頁面類型。

例如,假設用于分界的預定閾值為10%,則緩存層將lru隊列的隊尾的10%頁面標記為冷頁面,將其余頁面標記為熱頁面。進一步,分別遍歷冷頁面及熱頁面,將冷頁面中的臟頁面標記為冷臟頁面(cd),將熱頁面中的臟頁面標記為熱臟頁面(hd),并將標記出的頁面類型通知固態(tài)硬盤中的ftl。

也就是說,在獲取到緩存中標記的頁面數(shù)據(jù)的頁面類型后,則可以通過分離獲取第一類型的頁面數(shù)據(jù)(即冷臟頁面),從而便于對該第一類型的頁面數(shù)據(jù)進行一次搬遷,搬遷至執(zhí)行數(shù)據(jù)回收后有效頁面數(shù)據(jù)的存儲位置,而避免執(zhí)行緩存置換及數(shù)據(jù)回收過程中的兩次搬遷,達到減小開銷的效果。

作為一種可選的方案,還包括:

1)第一確定單元,用于在將第一類型的頁面數(shù)據(jù)從緩存搬遷至固態(tài)硬盤中預定的搬遷位置之前,至少根據(jù)第一類型的頁面數(shù)據(jù)確定固態(tài)硬盤的數(shù)據(jù)回收塊,其中,固態(tài)硬盤中各個數(shù)據(jù)塊中的頁面數(shù)據(jù)的頁面類型包括:未寫頁面數(shù)據(jù)、失效頁面數(shù)據(jù)、有效頁面數(shù)據(jù),各個數(shù)據(jù)塊中包括數(shù)據(jù)回收塊;

2)回收單元,用于對數(shù)據(jù)回收塊進行數(shù)據(jù)回收。

可選地,在本實施例中,第一確定單元包括:

(1)第三獲取模塊,用于根據(jù)緩存中第一類型的頁面數(shù)據(jù)及固態(tài)硬盤中各個數(shù)據(jù)塊中的頁面數(shù)據(jù)獲取各個數(shù)據(jù)塊的數(shù)據(jù)回收率;

(2)確定模塊,用于根據(jù)數(shù)據(jù)回收率確定數(shù)據(jù)回收塊。

可選地,在本實施例中,通過比較得到的數(shù)據(jù)回收率確定數(shù)據(jù)回收塊的方式包括以下至少之一:

1)將數(shù)據(jù)回收率最高的數(shù)據(jù)塊作為數(shù)據(jù)回收塊;

2)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,則比較這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量,數(shù)值大者作為數(shù)據(jù)回收塊;

3)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,且這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量相同,則比較這些數(shù)據(jù)塊的第二類型的頁面數(shù)據(jù)的數(shù)量,數(shù)值小者作為數(shù)據(jù)回收塊;

4)如果有若干個數(shù)據(jù)塊的數(shù)據(jù)回收率相同且為最高值,且這些數(shù)據(jù)塊中的第一類型的頁面數(shù)據(jù)的數(shù)量相同,第二類型的頁面數(shù)據(jù)的數(shù)量也相同,則將塊標識最大的數(shù)據(jù) 塊作為數(shù)據(jù)回收塊。

需要說明的是,在本實施例中,上述作為緩存的緩存層的映射表中不僅存儲了頁面數(shù)據(jù)標記的頁面類型,還對應存儲了頁面數(shù)據(jù)在置換存儲到固態(tài)硬盤后預設的位置信息(如數(shù)據(jù)塊的塊標識)。

例如,假設第一類型的頁面數(shù)據(jù)為冷臟頁面,則ftl可以統(tǒng)計由緩存獲取的標記為第一類型的頁面數(shù)據(jù)的冷臟頁面的數(shù)量,及固態(tài)硬盤各個數(shù)據(jù)塊中失效頁面數(shù)據(jù)的數(shù)量,以數(shù)據(jù)塊為單位,分別獲取各個數(shù)據(jù)塊中失效頁面數(shù)量和冷臟頁面數(shù)量,利用上述失效頁面數(shù)量和冷臟頁面數(shù)量計算各個數(shù)據(jù)塊的數(shù)據(jù)回收率。

通過本申請?zhí)峁┑膶嵤├ㄟ^數(shù)據(jù)回收率來準確定位固態(tài)硬盤中用于進行數(shù)據(jù)回收的數(shù)據(jù)回收塊,從而實現(xiàn)對固態(tài)硬盤準確高效的數(shù)據(jù)回收,進而保證固態(tài)硬盤中數(shù)據(jù)的處理效率。

作為一種可選的方案,第三獲取模塊包括:

1)處理子模塊,用于重復執(zhí)行以下步驟,直至遍歷完固態(tài)硬盤中的各個數(shù)據(jù)塊:

s1,獲取當前數(shù)據(jù)塊的塊標識;

s2,獲取塊標識所標識的第一類型的頁面數(shù)據(jù)及失效頁面數(shù)據(jù);

s3,通過以下方式獲取當前數(shù)據(jù)塊的數(shù)據(jù)回收率:

其中,r表示當前數(shù)據(jù)塊的數(shù)據(jù)回收率,a表示固態(tài)硬盤中當前數(shù)據(jù)塊的失效頁面數(shù)據(jù)的頁面數(shù)量,b表示緩存中的第一類型的頁面數(shù)據(jù)的頁面數(shù)量,p表示頁面大小,b表示塊大小。

需要說明的是,在本實施例中,固態(tài)硬盤中讀寫操作的單位是頁面,其中,頁面大小通常為2kb,訪問延遲一般為15us到200us。擦除操作的單位是塊,其中,塊大小通常為128kb,擦除一塊需要2ms左右的開銷。

通過本申請?zhí)峁┑膶嵤├?,通過上述方式依次計算固態(tài)硬盤中各個數(shù)據(jù)塊的數(shù)據(jù)回收率,從而保證所確定的數(shù)據(jù)回收塊的準確性,進而實現(xiàn)對固態(tài)硬盤準確高效的數(shù)據(jù)回收。

作為一種可選的方案,回收單元包括:

1)搬遷模塊,用于將數(shù)據(jù)回收塊中的有效頁面數(shù)據(jù)搬遷至預定的搬遷位置,并將有效頁面數(shù)據(jù)標記為失效頁面數(shù)據(jù);

2)擦除模塊,用于對數(shù)據(jù)回收塊中的失效頁面數(shù)據(jù)進行擦除。

例如,假設第一類型的頁面數(shù)據(jù)以冷臟頁面為例,第二類型的頁面數(shù)據(jù)以干凈頁面和熱臟頁面為例,則在執(zhí)行數(shù)據(jù)回收的過程中,可以將數(shù)據(jù)回收塊中的干凈頁面和熱臟頁面直接拷貝至預定的搬遷位置,并修改ftl中上述頁面數(shù)據(jù)對應的位置信息。并將數(shù)據(jù)回收塊中的相應有效頁面數(shù)據(jù)標記為失效頁面數(shù)據(jù)(可以用失效頁面表示)。

進一步,將數(shù)據(jù)回收塊中的冷臟頁面也標記為失效頁面數(shù)據(jù),并將在緩存中該冷臟頁面的最新數(shù)據(jù)拷貝至預定的搬遷位置。然后,將該冷臟頁面在緩存中的最新數(shù)據(jù)刪除,同時修改ftl中上述頁面數(shù)據(jù)對應的位置信息。

然后,擦除數(shù)據(jù)回收塊中的頁面數(shù)據(jù),將該數(shù)據(jù)回收塊標記為“已擦除”,以實現(xiàn)對固態(tài)硬盤的數(shù)據(jù)回收,釋放空閑空間的目的。

通過本申請?zhí)峁┑膶嵤├?,通過上述方式實現(xiàn)對固態(tài)硬盤的數(shù)據(jù)回收保證了有效頁面數(shù)據(jù)中的第一類型的頁面數(shù)據(jù)和第二類型的頁面數(shù)據(jù)均可一次搬遷到預定的搬遷位置,避免了對第一類型的頁面數(shù)據(jù)的二次搬遷,實現(xiàn)了降低固態(tài)硬盤的開銷的效果。

作為一種可選的方案,還包括:

1)第二確定單元,用于在將第一類型的頁面數(shù)據(jù)從緩存搬遷至固態(tài)硬盤中預定的搬遷位置之前,根據(jù)固態(tài)硬盤中除數(shù)據(jù)回收塊之外的其他數(shù)據(jù)塊中未寫頁面數(shù)據(jù)的大小確定預定的搬遷位置。

例如,統(tǒng)計數(shù)據(jù)回收塊中有效頁面數(shù)據(jù)的大小,查看實時更新的ftl,查詢固態(tài)硬盤其他數(shù)據(jù)塊中滿足該有效頁面數(shù)據(jù)的大小的未寫數(shù)據(jù)頁面,將查找到的數(shù)據(jù)塊作為該數(shù)據(jù)回收塊的有效頁面數(shù)據(jù)的預定的搬遷位置。

通過本申請?zhí)峁┑膶嵤├?,通過根據(jù)固態(tài)硬盤中除數(shù)據(jù)回收塊之外的其他數(shù)據(jù)塊中未寫頁面數(shù)據(jù)的大小確定預定的搬遷位置,以保證數(shù)據(jù)回收塊中的有效頁面數(shù)據(jù)可以全部搬遷。

需要說明的是,上述各個模塊是可以通過軟件或硬件來實現(xiàn)的,對于后者,可以通過以下方式實現(xiàn),但不限于此:上述模塊均位于同一處理器中;或者,上述模塊分別位于多個處理器中。

實施例3

本發(fā)明的實施例還提供了一種存儲介質??蛇x地,在本實施例中,上述存儲介質可以被設置為存儲用于執(zhí)行以下步驟的程序代碼:

s1,獲取回收請求,其中,回收請求用于請求對固態(tài)硬盤中的頁面數(shù)據(jù)進行數(shù)據(jù)回收;

s2,響應回收請求從緩存的有效頁面數(shù)據(jù)中獲取第一類型的頁面數(shù)據(jù),其中,第一類型的頁面數(shù)據(jù)用于指示將要從緩存中置換存儲到固態(tài)硬盤的頁面數(shù)據(jù);

s3,將第一類型的頁面數(shù)據(jù)從緩存搬遷至固態(tài)硬盤中預定的搬遷位置,其中,預定的搬遷位置為執(zhí)行數(shù)據(jù)回收后有效頁面數(shù)據(jù)的存儲位置。

可選地,在本實施例中,上述存儲介質可以包括但不限于:u盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質。

可選地,本實施例中的具體示例可以參考上述實施例及可選實施方式中所描述的示例,本實施例在此不再贅述。

顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。

以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
贞丰县| 和静县| 康定县| 凤山市| 阜南县| 通州市| 洛隆县| 澎湖县| 南汇区| 泰宁县| 武冈市| 新民市| 治县。| 桑日县| 津南区| 永新县| 始兴县| 蓬溪县| 连山| 临泽县| 雷山县| 海阳市| 海林市| 永丰县| 化隆| 沐川县| 思南县| 同江市| 灵山县| 沂水县| 武川县| 石嘴山市| 白玉县| 福清市| 青铜峡市| 通道| 白城市| 定日县| 万全县| 民丰县| 莱州市|