一種存儲器數(shù)據(jù)回收方法、裝置及系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明涉及控制領域,尤其涉及一種存儲器數(shù)據(jù)回收方法、裝置及系統(tǒng)。
【背景技術】
[0002] 硬盤通常分為機械硬盤HDD和固態(tài)硬盤SSD,機械硬盤即為普通傳統(tǒng)硬盤,支持覆 蓋寫入,因此刪掉數(shù)據(jù)只需標記,在被新數(shù)據(jù)覆蓋之前可以很容易找回;而固態(tài)硬盤是用固 態(tài)電子存儲芯片陣列而制成的硬盤,由控制單元和存儲單元組成,其不支持覆蓋寫入,因此 要先擦除,即垃圾回收。
[0003] 數(shù)據(jù)回收主要是從含有失效數(shù)據(jù)的塊中選擇合適的塊進行回收操作,其中,塊位 于內(nèi)存庫Bank中,內(nèi)存庫Bank中有多個塊block,每個塊block包含多個頁page。將其中的有 效數(shù)據(jù)存儲至更新塊中,對原塊中的數(shù)據(jù)進行擦除,以增加空白塊,達到釋放可用空間的目 的,保持有足夠多的空白塊用來寫入數(shù)據(jù)。
[0004] 目前,通常采用的方法是:綜合考慮塊block的擦、寫次數(shù)和有效頁page的個數(shù),定 義損失函數(shù),并將損失函數(shù)的最大值作為數(shù)據(jù)回收塊,即數(shù)據(jù)回收存儲單元,但是在數(shù)據(jù)回 收的過程中只能一次選擇回收一個塊,這就造成了資源的浪費,增加了數(shù)據(jù)回收的次數(shù),降 低了效率。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明提供一種存儲器數(shù)據(jù)回收方法、裝置及系統(tǒng),以解決現(xiàn)有技術中 一次只能選擇回收一個存儲單元,造成了資源的浪費,增加了存儲器數(shù)據(jù)回收的次數(shù),降低 了效率的問題,其具體方案如下:
[0006] -種存儲器數(shù)據(jù)回收方法,包括:
[0007] 獲取所述存儲器中Μ個存儲單元的第一狀態(tài)參數(shù);
[0008] 基于所述第一狀態(tài)參數(shù)確定所述Μ個存儲單元中的第一存儲單元;
[0009] 獲取所述存儲單元中與所述第一存儲單元滿足第一預定條件的Ν個存儲單元;
[0010] 當滿足第二預定條件時,對所述第一存儲單元和Ν個存儲單元中的數(shù)據(jù)進行處理, 其中Μ、Ν為大于1的整數(shù),且Ν不大于Μ。
[0011] 進一步的,所述獲取所述存儲單元中與所述第一存儲單元滿足第一預定條件的Ν 個存儲單元,具體為:
[0012] 獲取所述存儲單元中與所述第一存儲單元滿足第一預定條件的Ν個存儲單元的第 二狀態(tài)參數(shù)。
[0013] 進一步的,所述獲取所述存儲單元中與所述第一存儲單元滿足第一預定條件的Ν 個存儲單元,具體為:
[0014] 獲取所述存儲單元中與所述第一存儲單元的第二狀態(tài)參數(shù)相差在第一范圍內(nèi)的Ν 個存儲單元。
[0015] 進一步的,當滿足第二預定條件時,對所述第一存儲單元和Ν個存儲單元中的數(shù)據(jù) 進行處理,具體為:
[0016] 當所述存儲器中的空白存儲單元的數(shù)量小于第一閾值時,對所述第一存儲單元和 N個存儲單元中的數(shù)據(jù)進行處理。
[0017] 進一步的,當滿足第二預定條件時,對所述第一存儲單元和N個存儲單元中的數(shù)據(jù) 進行處理,具體為:
[0018] 當接收到啟動指令時,對所述第一存儲單元和N個存儲單元中的數(shù)據(jù)進行處理。 [0019]進一步的,所述對所述第一存儲單元和N個存儲單元中的數(shù)據(jù)進行處理,具體為:
[0020] 獲取所述第一存儲單元和N個存儲單元中第二狀態(tài)參數(shù)相同的存儲單元;
[0021] 將所述第二狀態(tài)參數(shù)相同的存儲單元中的數(shù)據(jù)保存至第二存儲單元;
[0022] 將所述第二狀態(tài)參數(shù)相同的存儲單元中除第二存儲單元外的其他存儲單元中的 數(shù)據(jù)進行清除。
[0023] 一種存儲器數(shù)據(jù)回收裝置,包括:存儲器,及與所述存儲器相連的處理器,
[0024]所述存儲器中包括Μ個存儲單元;
[0025]所述處理器用于獲取所述存儲器中Μ個存儲單元的第一狀態(tài)參數(shù),基于所述第一 狀態(tài)參數(shù)確定所述Μ個存儲單元中的第一存儲單元,并獲取所述存儲單元中與所述第一存 儲單元滿足第一預定條件的Ν個存儲單元,當滿足第二預定條件時,對所述第一存儲單元和 Ν個存儲單元中的數(shù)據(jù)進行處理,其中,Μ、Ν為大于1的整數(shù),且Ν不大于Μ。
[0026]進一步的,所述處理器獲取所述存儲器中與所述第一存儲單元滿足第一預定條件 的Ν個存儲單元,具體為:
[0027]所述處理器獲取所述存儲單元中與所述第一存儲單元滿足第一預定條件的Ν個存 儲單元的第二狀態(tài)參數(shù)。
[0028]進一步的,所述處理器獲取所述存儲器中與所述第一存儲單元滿足第一預定條件 的Ν個存儲單元,具體為:
[0029] 所述處理器獲取所述存儲單元中與所述第一存儲單元的第二狀態(tài)參數(shù)相差在第 一范圍內(nèi)的Ν個存儲單元。
[0030] 進一步的,所述當滿足第二預定條件時,所述處理器對所述第一存儲單元和Ν個存 儲單元中的數(shù)據(jù)進行處理,具體為:
[0031] 當所述存儲器中的空白存儲單元的數(shù)量小于第一閾值時,所述處理器對所述第一 存儲單元和Ν個存儲單元中的數(shù)據(jù)進行處理。
[0032]進一步的,當滿足第二預定條件時,所述處理器對所述第一存儲單元和Ν個存儲單 元中的數(shù)據(jù)進行處理,具體為:
[0033]當所述處理器接收到啟動指令時,對所述第一存儲單元和Ν個存儲單元中的數(shù)據(jù) 進行處理。
[0034]進一步的,所述處理器對所述第一存儲單元和Ν個存儲單元中的數(shù)據(jù)進行處理,具 體為:
[0035] 所述處理器獲取所述第一存儲單元和Ν個存儲單元中第二狀態(tài)參數(shù)相同的存儲單 元;將所述第二狀態(tài)參數(shù)相同的存儲單元中的數(shù)據(jù)保存至第二存儲單元;并將所述第二狀 態(tài)參數(shù)相同的存儲單元中除第二存儲單元外的其他存儲單元中的數(shù)據(jù)進行清除。
[0036] -種存儲器數(shù)據(jù)回收系統(tǒng),包括:第一獲取單元,與所述第一獲取單元相連的確定 單元,與所述確定單元相連的第二獲取單元,與所述第二獲取單元相連的處理單元,其中:
[0037] 所述第一獲取單元用于獲取所述存儲器中Μ個存儲單元的第一狀態(tài)參數(shù);
[0038] 所述確定單元用于基于所述第一狀態(tài)參數(shù)確定所述Μ個存儲單元中的第一存儲單 元;
[0039]所述第二獲取單元用于獲取所述存儲單元中與所述第一存儲單元滿足第一預定 條件的Ν個存儲單元;
[0040] 所述處理單元用于當滿足第二預定條件時,對所述第一存儲單元和Ν個存儲單元 中的數(shù)據(jù)進行處理,其中Μ、Ν為大于1的整數(shù),且Ν不大于Μ。
[0041] 從上述技術方案可以看出,本申請公開的存儲器數(shù)據(jù)回收方法、裝置及系統(tǒng),應用 于固態(tài)硬盤,通過獲取存儲器中Μ個存儲單元的第一狀態(tài)參數(shù),基于第一狀態(tài)參數(shù)確定Μ個 存儲單元中的第一存儲單元,獲取存儲單元中與第一存儲單元滿足第一預定條件的Ν個存 儲單元,當滿足第二預定條件時,對第一存儲單元和Ν個存儲單元中的數(shù)據(jù)進行處理,其中, Μ、Ν為大于1的整數(shù),且Ν不大于Μ。本方案通過選取與第一存儲單元滿足第一預定條件的Ν個 存儲單元,實現(xiàn)了對第一存儲單元和Ν個存儲單元中數(shù)據(jù)的處理,實現(xiàn)了對多個存儲單元數(shù) 據(jù)的回收,提高了回收效率,降低了存儲器數(shù)據(jù)回收的次數(shù),避免了資源的浪費。
【附圖說明】
[0042] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0043] 圖1為本發(fā)明實施例公開的一種存儲器數(shù)據(jù)回收方法的流程圖;
[0044] 圖2為本發(fā)明實施例公開的一種存儲器數(shù)據(jù)回收方法的流程圖;
[0045] 圖3為本發(fā)明實施例公開的一種存儲器數(shù)據(jù)回收方法的流程圖;
[0046] 圖4為本發(fā)明實施例公開的一種存儲器數(shù)據(jù)回收裝置的結構示意圖;
[0047] 圖5為本發(fā)明實施例公開的一種存儲器數(shù)據(jù)回收系統(tǒng)的結構示意圖。
【具體實施方式】
[0048] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
[0049 ]本發(fā)明公開了 一種存儲器數(shù)據(jù)回收方法,其流程圖如圖1所示,包括:
[0050] 步驟SI 1、獲取存儲器中Μ個存儲單元的第一狀態(tài)參數(shù);
[0051] 存儲器中包括多個存儲單元,可以記為Μ,Μ為大于1的整數(shù)。
[0052] 步驟S12、基于第一狀態(tài)參數(shù)確定Μ個存儲單元中的第一存儲單元;
[0053] 具體的,第一狀態(tài)參數(shù)可以為損失函數(shù)值,根據(jù)Μ個存儲單元的損失函數(shù)值選取第 一存儲單元。
[0054]其中,存儲器中的存儲單元可以具體為數(shù)據(jù)塊block,數(shù)據(jù)塊中包括頁數(shù)據(jù)page,
[0056] 其中,數(shù)據(jù)塊為最小的擦寫單元,頁數(shù)據(jù)page為最小的寫單元。[0055] 那么,損失函數(shù)cost具體為:
[0057] 兵屮,globalWrietTJ仕仔1甫益屮的與伏數(shù),blockWrite為當前的寫次數(shù), blockErase為當前的擦次數(shù),GloablValidPages為存儲器中的有效頁個數(shù), BlockValidPages為當前的有效頁個數(shù)。
[