一種分頁存儲器件的壓縮管理方法及裝置的製作方法
2023-04-27 09:52:46 2
專利名稱:一種分頁存儲器件的壓縮管理方法及裝置的製作方法
技術領域:
本發明屬於存儲器技術領域,尤其涉及一種分頁存儲器件的壓縮管理方法及裝置。
背景技術:
當前通用的數據壓縮方法包括無損數據壓縮和有損數據壓縮,如基於統計模型的壓縮技術和基於字典模型的壓縮技術為無損數據壓縮技術;多媒體數據壓縮包括音頻壓縮、圖像壓縮、視頻壓縮等則大多為有損數據壓縮技術;對存儲設備而言,必須使用無損的數據壓縮方式。現有的無損數據壓縮方式包括一、字典型數據壓縮方法,如表I所示
權利要求
1.一種分頁存儲器件的壓縮管理方法,其特徵在於,所述方法包括 步驟A、以頁為單元建立字典,所述字典內記錄有頁數據、所述頁數據對應的特徵碼以及所述頁數據寫入的物理頁地址; 步驟B、獲取寫命令,所述寫命令包含有待寫入頁數據以及所述待寫入頁數據寫入的邏輯頁地址;獲取所述待寫入頁數據的特徵碼,判斷所述字典中是否存在與所獲取的特徵碼相同的特徵碼;若否,執行所述寫命令,根據所述待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將所述待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址。
2.如權利要求1所述的方法,其特徵在於,所述字典為靜態字典,所述靜態字典中的頁數據為寫入次數大於或者等於第一閾值的數據和/或用戶關心的數據。
3.如權利要求1所述的方法,其特徵在於,所述字典為動態字典; 所述方法在獲取寫命令的步驟之前還包括 設定第二閾值,對寫入分頁存儲器件的頁數據的寫入次數進行計數; 在所述執行所述寫命令,根據所述待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據步驟之後還包括 在所述待寫入頁數據的寫入次數達到所述第二閾值時,將該待寫入頁數據更新到所述動態字典中。
4.如權利要求1所述的方法,其特徵在於,所述字典包含靜態字典和動態字典;所述靜態字典中的頁數據為寫入次數大於或者等於第一閾值的數據和/或用戶關心的數據; 所述方法在獲取寫命令的步驟之前還包括 設定第二閾值,對寫入分頁存儲器件的頁數據的寫入次數進行計數; 所述獲取所述待寫入頁數據的特徵碼,判斷所述字典中是否存在與所獲取的特徵碼相同的特徵碼具體包括 獲取所述待寫入頁數據的特徵碼,判斷所述靜態字典中是否存在與所獲取的特徵碼相同的特徵碼,若否,根據所述待寫入頁數據寫入分頁存儲器件的次數判斷所述待寫入頁數據是否需要更新到所述動態字典。
5.如權利要求3或4所述的方法,其特徵在於,所述方法還包括 當所述動態字典的存儲容量達到第三閾值時,刪除所述動態字典中無效的條目或者在預設時間內未使用的條目,所述無效的條目為所述動態字典中存儲的頁數據的寫入地址已經寫入了其他數據,導致該頁數據無效;所述預設時間內未使用的條目為該條目對應的頁數據在預設時間內未寫入過分頁存儲器件。
6.如權利要求3或4所述的方法,其特徵在於,所述方法還包括 在所述頁數據的寫入次數達到所述第二閾值之後繼續對所述頁數據的寫入次數進行計數,當所述動態字典的存儲容量達到第三閾值時,刪除所述動態字典中寫入次數小於第四閾值的頁數據。
7.如權利要求1所述的方法,其特徵在於,所述步驟B具體包括 在所述分頁存儲器件支持多種哈希算法時,對當前寫命令中的待寫入頁數據進行多次消息摘錄,獲取每次消息摘錄後的特徵碼,判斷所述字典中是否存在與所述每次消息摘錄後的特徵碼都相同的特徵碼,若否,執行當前寫命令,根據當前寫命令中待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將當前寫命令中待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址,其中所述字典中記錄有頁數據多次消息摘錄後的特徵碼; 或者,在所述分頁存儲器件支持一種哈希算法時,對當前寫命令中的待寫入頁數據進行多次不同偏移的消息摘錄,獲取每次不同偏移消息摘錄後的特徵碼,判斷所述字典中是否存在與所述每次不同偏移消息摘錄後的特徵碼都相同的特徵碼,若否,執行當前寫命令,根據當前寫命令中待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將當前寫命令中待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址,其中所述字典中記錄有頁數據多次不同偏移消息摘錄後的特徵碼; 或者,在所述分頁存儲器件支持錯誤檢查和糾正ECC碼時,獲取當前寫命令中待寫入頁數據的ECC碼和消息摘錄後的特徵碼,判斷所述字典中是否同時存在該ECC碼和消息摘錄後的特徵碼,若否,執行當前寫命令,根據當前寫命令中待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將當前寫命令中待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址,其中所述字典中記錄有頁數據的ECC碼和消息摘錄後的特徵碼; 或者,獲取當前寫命令中待寫入頁數據的特徵碼,在所述字典中存在與所獲取的特徵碼相同的特徵碼時,判斷所述待寫入頁數據中的N個字節與所述字典中相同特徵碼對應的頁數據中的N個字節是否全部相同,若否,執行當前寫命令,根據當前寫命令中待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將當前寫命令中待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址,其中所述N為大於零且小於或者等於所述分頁存儲器中頁的大小的整數。
8.如權利要求1所述的方法,其特徵在於,所述步驟B具體包括 獲取當前寫命令中待寫入頁數據的特徵碼,對所述特徵碼進行消息摘錄獲得二次摘錄值,判斷所述字典中是否存在所述二次摘錄值,若存在,再判斷所述字典中是否存在所述特徵碼,若否,執行當前寫命令,根據當前寫命令中待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將當前寫命令中待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址,其中所述字典中記錄有頁數據對應特徵碼的二次摘錄值。
9.如權利要求1至8任一項所述的方法,其特徵在於,所述獲取所述待寫入頁數據的特徵碼具體包括 通過哈希算法獲取所述待寫入頁數據的特徵碼。
10.一種分頁存儲器件的壓縮管理裝置,其特徵在於,所述裝置包括 字典建立單元,用於以頁為單元建立字典,所述字典內記錄有頁數據、所述頁數據對應的特徵碼以及所述頁數據寫入的物理頁地址; 處理單元,用於獲取寫命令,所述寫命令包含有待寫入頁數據以及所述待寫入頁數據寫入的邏輯頁地址;獲取所述待寫入頁數據的特徵碼,判斷所述字典中是否存在與所獲取的特徵碼相同的特徵碼;若否,執行所述寫命令,根據所述待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將所述待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址。
11.如權利要求10所述的裝置,其特徵在於,所述字典為靜態字典,所述靜態字典中的頁數據為寫入次數大於或者等於第一閾值的數據和/或用戶關心的頁數據。
12.如權利要求10所述的裝置,其特徵在於,所述字典為動態字典; 所述處理單元在獲取寫命令之前還用於,設定第二閾值,對寫入分頁存儲器件的頁數據的寫入次數進行計數; 所述處理單元在執行所述寫命令,根據所述待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據之後,還用於在所述頁數據的寫入次數達到所述第二閾值時,將該頁數據更新到所述動態字典中。
13.如權利要求10所述的裝置,其特徵在於,所述字典包含靜態字典和動態字典;所述靜態字典中的頁數據為寫入次數大於或者等於第一閾值的數據和/或用戶關心的數據; 所述處理單元在獲取寫命令之前還用於,設定第二閾值,對寫入分頁存儲器件的頁數據的寫入次數進行計數; 所述處理單元,用於獲取所述待寫入頁數據的特徵碼,判斷所述靜態字典中是否存在與所獲取的特徵碼相同的特徵碼,若否,根據所述待寫入頁數據寫入分頁存儲器件的次數判斷所述待寫入頁數據是否需要更新到所述動態字典。
14.如權利要求12或13所述的裝置,其特徵在於,所述處理單元還用於,當所述動態字典的存儲容量達到第三閾值時,刪除所述動態字典中無效的條目或者在預設時間內未使用的條目,所述無效的條目為所述動態字典中存儲的頁數據的寫入地址已經寫入了其他數據,導致該頁數據無效;所述預設時間內未使用的條目為該條目對應的頁數據在預設時間內未寫入過分頁存儲器件。
15.如權利要求12或13所述的裝置,其特徵在於,所述處理單元還用於,在所述頁數據的寫入次數達到所述第二閾值之後繼續對所述頁數據的寫入次數進行計數,當所述動態字典的存儲容量達到第三閾值時,刪除所述動態字典中寫入次數小於第四閾值的頁數據。
16.如權利要求10所述的裝置,其特徵在於,所述處理單元具體用於, 在所述分頁存儲器件支持多種哈希算法時,對當前寫命令中的待寫入頁數據進行多次消息摘錄,獲取每次消息摘錄後的特徵碼,判斷所述字典中是否存在與所述每次消息摘錄後的特徵碼都相同的特徵碼,若否,執行當前寫命令,根據當前寫命令中待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將當前寫命令中待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址,其中所述字典中記錄有頁數據多次消息摘錄後的特徵碼; 或者,在所述分頁存儲器件支持一種哈希算法時,對當前寫命令中的待寫入頁數據進行多次不同偏移的消息摘錄,獲取每次不同偏移消息摘錄後的特徵碼,判斷所述字典中是否存在與所述每次不同偏移消息摘錄後的特徵碼都相同的特徵碼,若否,執行當前寫命令,根據當前寫命令中待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將當前寫命令中待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址,其中所述字典中記錄有頁數據多次不同偏移消息摘錄後的特徵碼; 或者,在所述分頁存儲器件支持錯誤檢查和糾正ECC碼時,獲取當前寫命令中待寫入頁數據的ECC碼和消息摘錄後的特徵碼,判斷所述字典中是否同時存在該ECC碼和消息摘錄後的特徵碼,若否,執行當前寫命令,根據當前寫命令中待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將當前寫命令中待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址,其中所述字典中記錄有頁數據的ECC碼和消息摘錄後的特徵碼; 或者,獲取當前寫命令中待寫入頁數據的特徵碼,在所述字典中存在與所獲取的特徵碼相同的特徵碼時,判斷所述待寫入頁數據中的N個字節與所述字典中相同特徵碼對應的頁數據中的N個字節是否全部相同,若否,執行當前寫命令,根據當前寫命令中待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將當前寫命令中待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址,其中所述N為大於零且小於或者等於所述分頁存儲器中頁的大小的整數。
17.如權利要求10所述的裝置,其特徵在於,所述處理單元具體用於, 獲取當前寫命令中待寫入頁數據的特徵碼,再對所述特徵碼進行消息摘錄獲得二次摘錄值,判斷所述字典中是否存在所述二次摘錄值,若存在,再判斷所述字典中是否存在所述特徵碼,若否,執行當前寫命令,根據當前寫命令中待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將當前寫命令中待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址,其中所述字典中記錄有頁數據對應特徵碼的二次摘錄值。
18.如權利要求10至17任一項所述的裝置,其特徵在於,所述處理單元,用於通過哈希算法獲取所述待寫入頁數據的特徵碼。
全文摘要
本發明適用於存儲器技術領域,提供了一種分頁存儲器件的壓縮管理方法及裝置,所述方法包括以頁為單元建立字典,所述字典內記錄有頁數據、所述頁數據對應的特徵碼以及所述頁數據寫入的物理頁地址;獲取寫命令,所述寫命令包含有待寫入頁數據以及所述待寫入頁數據寫入的邏輯頁地址;獲取待寫入頁數據的特徵碼,判斷所述字典中是否存在與所獲取的特徵碼相同的特徵碼;若否,執行所述寫命令,根據所述待寫入頁數據寫入的邏輯頁地址寫入所述待寫入頁數據;若是,不執行所述寫命令,將所述待寫入頁數據寫入的邏輯頁地址指向與所述待寫入頁數據具有相同特徵碼的頁數據寫入的物理頁地址。通過本發明可有效解決以頁為最小存儲單元的存儲器件的管理問題。
文檔編號G06F11/10GK103049388SQ201210519408
公開日2013年4月17日 申請日期2012年12月6日 優先權日2012年12月6日
發明者郭丹, 梁小慶 申請人:深圳市江波龍電子有限公司