[發明專利]一種均衡分配Flash存儲塊的數據存儲方法有效
| 申請號: | 201210443669.9 | 申請日: | 2012-11-09 |
| 公開(公告)號: | CN102981966A | 公開(公告)日: | 2013-03-20 |
| 發明(設計)人: | 劉慶彬 | 申請(專利權)人: | 青島海信寬帶多媒體技術有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 青島聯智專利商標事務所有限公司 37101 | 代理人: | 李升娟 |
| 地址: | 266555 山東省青*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 均衡 分配 flash 存儲 數據 方法 | ||
技術領域
?本發明涉及數據存儲技術,具體地說,是涉及在Flash中存儲數據的方法,更具體地說,是涉及均衡分配Flash存儲塊的數據存儲方法。
背景技術
Flash存儲器與傳統硬盤的I/O操作不同,其讀寫以位或頁為單元,但擦除操作必須以存儲塊(也即物理塊block)為單元。Flash的一個存儲塊通常容量較大,且存儲塊的擦除次數有限,例如,norFlash為10萬次,nandflash為100萬次。在讀寫存儲塊的數據時,通常的做法是將存儲塊的地址作為物理地址,通過邏輯地址與物理地址進行映射來訪問存儲塊。因此,相同類型的數據將會存儲在相同物理地址的存儲塊中。由于不同類型的數據更新速度不同,極容易出現有些存儲塊讀取頻率高、有些存儲塊讀取頻率低的現象。受存儲塊擦除次數所限,如果某個或某些存儲塊讀寫頻率較高,則這類塊將被頻繁擦除使用而很快耗盡。同時,那些所存儲的數據讀取頻率較低的存儲塊利用率較低、擦除頻率低,從而造成存儲塊使用嚴重不均衡,降低了Flash存儲器的整體使用壽命。
為提高使用壽命,現有技術有一種方法,是將Flash存儲器中的數據保存到內存中,數據的改動大部分在內存中進行,只有在非常有必要時才將數據寫入到Flash存儲塊中,以此減少Flash存儲塊的擦除次數,進而提高使用壽命。但這種方法存在使用局限性,對于存儲及時性較高的情況顯得無能為力,比如,存儲及時性高、寫入頻率高的系統注冊表數據信息,應用該方法仍無法從根本上解決Flash存儲器各存儲塊使用不均勻導致的使用壽命低的問題。
發明內容
本發明針對現有技術中Flash存儲器因各存儲塊使用不均勻導致的使用壽命低的問題而提供了一種均衡分配Flash存儲塊的數據存儲方法,有效解決了部分存儲塊過度使用、部分存儲塊不能充分利用的問題,提高了Flash存儲器的使用壽命。
為實現上述發明目的,本發明采用下述技術方案予以實現:
一種均衡分配Flash存儲塊的數據存儲方法,所述方法包括存在數據存儲請求時的存儲過程,該過程包括下述步驟:
a1、根據數據存儲請求中的邏輯地址查找相應的邏輯塊及與邏輯塊相對應的存儲塊,作為存儲源存儲塊;
a2、獲取當前時間和標志存儲源存儲塊最后一次執行擦除操作的擦除時間,計算兩者的時間差,并與第一設定時間差作比較;
a3、在計算的時間差大于第一設定時間差時,將存儲源存儲塊作為存儲目的存儲塊,將要存儲的數據寫入至存儲目的存儲塊;
a4、在計算的時間差不大于第一設定時間差時,從可用的存儲塊隊列中選擇一個低使用頻率的存儲塊作為存儲目的存儲塊,將要存儲的數據寫入至該存儲目的存儲塊中,同時將該存儲目的存儲塊與步驟a中的邏輯塊進行映射。
如上所述的方法,?Flash存儲器中的每個存儲塊設置有歷史擦除總次數記錄,在所述步驟a4中,從可用的存儲塊隊列中選擇一個歷史擦除總次數比所述存儲源存儲塊的歷史擦除總次數少于第一設定擦除次數的存儲塊作為存儲目的存儲塊。?
如上所述的方法,為方便后續的判斷和使用,Flash存儲器中的每個存儲塊設置有最近一次塊轉移之后的擦除次數記錄和最后一次執行擦除操作的擦除時間記錄,在所述步驟a3中,將要存儲的數據寫入至存儲目的存儲塊之后,將該存儲目的存儲塊的歷史擦除總次數及最近一次塊轉移之后的擦除次數分別加1,并將其最后一次執行擦除操作的擦除時間更新為當前寫入數據的時間;在所述步驟a4中,將要存儲的數據寫入至存儲目的存儲塊之后,將該存儲目的存儲塊的歷史擦除總次數加1,將其最近一次塊轉移之后的擦除次數置1,并將其最后一次執行擦除操作的擦除時間更新為當前寫入數據的時間。
如上所述的方法,為平衡數據存儲效率和存儲塊的使用壽命,在所述步驟a4中,在計算的時間差不大于第一設定時間差時,先判斷存儲源存儲塊最近一次塊轉移之后的擦除次數是否大于第二設定擦除次數;在不大于第二設定擦除次數時,將存儲源存儲塊作為存儲目的存儲塊,在大于第二設定擦除次數時,從可用的存儲塊隊列中選擇一個低使用頻率的存儲塊作為存儲目的存儲塊。
如上所述的方法,為實現數據存儲效率與存儲塊使用壽命的進一步平衡,在所述存儲源存儲塊最近一次塊轉移之后的擦除次數大于設定擦除次數時,首先將該存儲源存儲塊加入到受保護隊列,每加入一次受保護隊列,其受保護次數加1;然后,判斷該存儲源存儲塊受保護次數是否大于設定保護次數;在不大于設定保護次數時,將存儲源存儲塊作為存儲目的存儲塊,在大于設定保護次數時,從可用的存儲塊隊列中選擇一個低使用頻率的存儲塊作為存儲目的存儲塊。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于青島海信寬帶多媒體技術有限公司,未經青島海信寬帶多媒體技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210443669.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種單體支柱增壓裝置
- 下一篇:注水井測井鋼絲瀝水裝置





