[發明專利]一種實現Nand Flash磨損均衡的方法及其系統有效
| 申請號: | 201210335273.2 | 申請日: | 2012-09-12 |
| 公開(公告)號: | CN102880556A | 公開(公告)日: | 2013-01-16 |
| 發明(設計)人: | 李紅;姜旭峰;李坤;程士慶;陳浩杰;吳朝暉 | 申請(專利權)人: | 浙江大學 |
| 主分類號: | G06F12/06 | 分類號: | G06F12/06;G06F13/18 |
| 代理公司: | 杭州天勤知識產權代理有限公司 33224 | 代理人: | 胡紅娟 |
| 地址: | 310027 浙*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 實現 nand flash 磨損 均衡 方法 及其 系統 | ||
技術領域
本發明屬于存儲技術領域,具體涉及一種實現Nand?Flash磨損均衡的方法及其系統。
背景技術
閃存(Flash?Memory)是嵌入式系統中一種常用的存儲介質,它是一種非易失、防震、節能的存儲設備。Nand?Flash是現在市場上主要的非易失閃存芯片,其特有的結構能提供極高的單元密度,可以達到高存儲密度,同時其寫入和擦除的速度也較快。
一個閃存通常是由若干個閃存塊(block)組成的,每個閃存塊又分成若干個物理頁(page)。頁是寫入數據的最小單位,塊是擦除數據的最小單位。頁內數據不能被反復寫入,只有當包含該頁的塊被擦除后才能重新寫入。而每個閃存塊的擦除次數是有限制的,一般是在十萬次到一百萬次之間,只要其中有一個閃存塊的擦除次數達到了上限,數據存儲就會變得不可靠,會影響到整個閃存的壽命。
為了避免對Nand?Flash某一Block的頻繁讀寫造成該快的老化加速,目前最常用的算法是磨損均衡算法。磨損均衡包括兩大類算法:
一類是針對數據寫入過程中通過控制寫入的物理塊,動態均衡所有物理塊擦除次數的動態磨損均衡算法;動態磨損均衡算法可以確保我們在分配塊進行寫入時采取較優的策略,實現整體上的負載均衡。可是該方法忽略了冷數據存在,如果有的塊上存放著冷數據,那么該塊就永遠不會被擦除;
另一類是通過調整物理塊上存儲的數據(經常被擦寫的熱數據和不經常被擦寫的冷數據),靜態地均衡所有物理塊擦除次數的靜態磨損均衡算法,周期性地交換冷數據和熱數據,靜態磨損均衡算法解決了動態算法忽略冷數據的問題,但是頻繁的調整冷熱數據無疑會增加系統的開銷,同時也會帶來很多額外的磨損。
發明內容
針對現有技術所存在的上述技術缺陷,本發明提供了一種實現Nand?Flash磨損均衡的方法及其系統,能夠更好的均衡Nand?Flash中各Block的擦除次數,提高Nand?Flash的使用壽命。
一種實現Nand?Flash磨損均衡的方法:統計Nand?Flash中每個Block的擦除次數,并計算出各Block的熱度;根據Block的數據存儲信息以及熱度將各Block分配至以下三個鏈表中:熱數據塊鏈表、冷數據塊鏈表和空閑塊鏈表;定時啟動冷塊處理程序;
當Nand?Flash有數據寫入時,以擦除次數少作為優先挑選原則,依次從空閑塊鏈表中挑選出若干個Block,將數據寫入這些Block中,并對這些Block重新分配;
當對臟塊進行回收時,擦除其所存放的數據,并使其擦除次數加1,進而根據其擦除次數將臟塊放入空閑塊鏈表中相應位置;
根據公式R=D/Dmax計算Block的熱度;其中,R為Block的熱度,D為Block的擦除次數,Dmax為Nand?Flash中擦除次數最大的Block的擦除次數。
根據以下標準對各Block進行分配:將存有有用數據且當前熱度大于給定閾值的Block分配至熱數據塊鏈表中;將存有有用數據且當前熱度小于或等于給定閾值的Block分配至冷數據塊鏈表中;將未存有任何數據的Block分配至空閑塊鏈表中且按擦除次數由少到多進行排列。
所述的臟塊為Nand?Flash中存有無用數據的Block。
所述的有用數據為存儲在Nand?Flash中未被用戶刪除且能被讀取的數據;所述的無用數據為存儲在Nand?Flash中已被用戶刪除且不能被讀取的數據。
所述的冷塊處理程序為:首先,以擦除次數多作為優先挑選原則,依次從空閑塊鏈表中挑選出n個Block,n為冷數據塊鏈表中Block的個數;然后,將冷數據塊鏈表中各Block上存放的數據對應復制給空閑塊鏈表中挑選出的n個Block;最后,將冷數據塊鏈表中各Block歸為臟塊并從冷數據塊鏈表中移除,并對空閑塊鏈表中寫入數據的這n個Block重新分配。
一種用于實現上述方法的系統,包括:
熱數據塊鏈表,用于存放存有有用數據且當前熱度大于給定閾值的Block;
冷數據塊鏈表,用于存放存有有用數據且當前熱度小于或等于給定閾值的Block;
空閑塊鏈表,用于按擦除次數由少到多的次序存放未存有任何數據的Block;
統計模塊,用于統計Nand?Flash中每個Block的擦除次數,并計算各Block的熱度;
數據寫入模塊,用于當Nand?Flash有數據寫入時,以擦除次數少作為優先挑選原則,依次從空閑塊鏈表中挑選出若干個Block,并將數據寫入這些Block中;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江大學,未經浙江大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210335273.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種電子碰撞電離源
- 下一篇:區熔單晶爐下軸運動機構





