CN101819821B - 一种固态硬盘动态损耗均衡方法 - Google Patents
一种固态硬盘动态损耗均衡方法 Download PDFInfo
- Publication number
- CN101819821B CN101819821B CN2010101380048A CN201010138004A CN101819821B CN 101819821 B CN101819821 B CN 101819821B CN 2010101380048 A CN2010101380048 A CN 2010101380048A CN 201010138004 A CN201010138004 A CN 201010138004A CN 101819821 B CN101819821 B CN 101819821B
- Authority
- CN
- China
- Prior art keywords
- piece
- block
- data
- pointer
- erasing times
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种固态硬盘动态损耗均衡方法,其特征在于:设置一种带两个指针和一个翻转标志位的数组表;表中数组元素存储空块的擦除次数和物理块地址信息;指针1和指针2分别指向最近更新的等于擦除次数阈值的数组元素和低于擦除次数阈值的数组元素;翻转标志位区分奇偶次翻转。所述方法包括两类操作:数据擦除时块信息添加进空块数组表;数据写入时块信息从空块数组表删除。数据擦除时块信息添加进空块数组表操作包含以下步骤:比较阈值;对应指针移位;添加块信息。数据写入时块信息从空块数组表删除操作包含以下步骤:挑选数组元素;对应指针移位;删除块信息。本发明的有益效果是:简单化;高效性;占用资源少;兼容性好。
Description
技术领域
本发明涉及电子信息领域,尤其是涉及固态硬盘动态损耗均衡方法。
背景技术
由于目前采用的带有机械式磁头读写的磁存储硬盘,在速度、可靠性等方面已经越来越不适应现在的需要,因磁存储硬盘可靠性导致的数据安全问题日益严重。大容量闪存固态存储系统正好弥补了常规硬盘的这一缺陷,因此同样也具有巨大的市场,据Gartner预计电子硬盘在2012年将发展成44亿美元的市场规模(有人称这一预测过于保守,实际发展速度将更快),而这一切得益于闪存技术的进步以及巨头公司们的推动。目前这一市场处于开发起步,市场份额逐年增加的阶段。
固态硬盘的管理策略及方法作为大容量闪存固态存储系统的主控部分,决定了固态硬盘存储系统的性能,目前仅被Intel、Samsung等国外大厂所掌握,核心技术对外保密。并且现有固态硬盘的主控理论及技术发展仍不完善,现有产品在实际使用过程中暴露出许多问题,系统结构及管理策略仍需要进一步深入探索与研究。而动态损耗均衡方法是固态硬盘管理策略及方法的核心,其任务是要解决固态硬盘中个别存储块被经常读写造成过早损坏而另一些数组却很少使用的问题。
目前为止,还没有一个真正圆满的解决动态损耗均衡的方法。目前在损耗均衡方面,主要研究单位有韩国的Samsung、Seoul National University,台湾的National Taiwan University、National Chiao-Tung University等,提出了Hot-clod swapping、Turn-based selection、Old-block protection、ErasePool等方法。由于这些方法所占用的存储空间比较大、方法复杂度大和系统访问速度比较慢,因此对大容量固态硬盘不太实用。
发明内容
本发明所要解决的技术问题是提供一种固态硬盘动态损耗均衡方法,简单高效地解决固态硬盘动态损耗均衡问题,以解决已知动态损耗均衡方法的复杂度大,占用系统资源多,不实用的缺点。
为了解决上述技术问题,本发明提出的固态硬盘动态损耗均衡方法,包括数据擦除时块信息添加进空块数组表和数据写入时块信息从空块数组表删除,其特征是:事先建立空块数组表、无效块数组表和数据块数据表,分别用于存储固态硬盘中的空块中各个块的物理地址和擦除次数、无效块中各个块的物理地址和擦除次数,以及数据块中各个块的物理地址和擦除次数;并在空块数组表中设置第一指针,用于标注擦除次数大于设定阈值的空块的边界,和第二指针,用于标注擦除次数小于设定阈值的空块的边界;所述空块是指已经过擦除可以重新写入数据的块,所述数据块是其中写有有效数据的块,所述无效块是指数据已经标注为删除但其中物理信息尚未真正擦除的块;
所述数据擦除时块信息添加进空块数组表包括如下步骤:A、将相应块从无效块数据表中移除,添加到空块数据表,并且当相应块的擦除次数大于设定阈值时,第一指针向指定方向移动一个位置,当相应块的擦除次数小于设定阈值时第二指针向指定方向移动一个位置;
所述数据写入时块信息从空块数组表删除包括如下步骤:B、将相应块从空块数据表中移除,添加到数据块数据表,并且第二指针向指定方向移动一个位置。
优选地,本发明还包括如下特征:
所述步骤A中包括如下步骤:擦除次数加1,比较相应块的块擦除次数与设定阈值的大小,若擦除次数小于阈值,则第二指针向指定方向移动一个位置,并把相应块的物理地址和擦除次数信息添加到第二指针所指位置;若擦除次数大于阈值,第一指针向指定方向移动一个位置,并把相应块的物理地址和擦除次数信息添加到第一指针所指位置。
所述步骤B包括如下步骤:找到第二指针的位置,将第二指针所指位置的数组元素从空块数组表中删除,且对应的第二指针向指定方向移动一个位置。
在空块数组表中还设置翻转标志位,当空块数组中没有低于阈值的空块存在且空块数组中的空块数不为零时,空块数组进入翻转过程,即空块数组中的所有块的擦除次数都清零或减去同一值,翻转标志位取反,同时对调第一指针和第二指针所指的位置向移动方向。
当空块数组表里没有空块时,启动所述步骤A。
本发明的有益效果是:(1)简单化,本方法通过简化动态损耗均衡方法过程为两类操作,且这两类操作的耦合性很低,来降低固态硬盘动态损耗均衡方法的复杂程度;(2)高效性,固态硬盘动态损耗均衡时的查找方法复杂度大大降低(复杂度为O(1)),提高了固态硬盘的读写性能;(3)占用资源少,本固态硬盘动态损耗均衡方法基于数组数据结构,占用的系统资源少,包括内存和闪存存储空间(4)兼容性好,本固态硬盘动态损耗均衡方法可以与其它静态损耗均衡方法结合起来使用,进一步提高固态硬盘的读写速度和寿命。
附图说明
图1a、1b是本发明固态硬盘动态损耗均衡方法的数据擦除时块信息添加进空块数组表的操作过程示意图。
图2a、2b是本发明数据写入时块信息添加进空块数组表的操作过程示意图。
具体实施方式
下面结合具体实施方式并对照附图1和附图2对本发明进一步说明。
本方法是一个包含于固态硬盘数据写入和擦除过程中的闪存块擦写次数均衡方法,它具有基于一种带两个指针和一个翻转标志位的数组数据结构。为此,建立空块数组表、无效块数组表和数据块数据表,分别用于存储固态硬盘中的空块中各个块的物理地址和擦除次数、无效块中各个块的物理地址和擦除次数,以及数据块中各个块的物理地址和擦除次数;并在空块数组表中设置第一指针(下称指针1),用于标注擦除次数大于设定阈值的空块的边界,和第二指针(下称指针2),用于标注擦除次数小于设定阈值的空块的边界;所述空块是指已经过擦除可以重新写入数据的块,所述数据块是其中写有有效数据的块,所述无效块是指数据已经标注为删除但其中物理信息尚未真正擦除的块。
所述方法包括两类操作:数据擦除时块信息添加进空块数组表;数据写入时块信息从空块数组表删除。数据擦除时块信息添加进空块数组表操作包含以下步骤:比较阈值;对应指针移位;添加块信息。数据写入时块信息从空块数组表删除操作包含以下步骤:挑选数组元素;对应指针移位;删除块信息。
其中,在上述的数据擦除时块信息添加进空块数组表的比较阈值步骤中,包括:擦除次数加1,根据块的擦除次数与设定阈值的比较结果,确定在数组中的添加位置。
其中,在上述的数据擦除时块信息添加进空块数组表的对应指针移位步骤中,包括:根据阈值比较结果,移动对应的指针,使之指向下一个空位置。
其中,在上述的数据擦除时块信息添加进空块数组表的添加块信息步骤中,包括:添加物理块地址和块的擦除次数。
其中,在上述的数据写入时块信息从空块数组表删除的挑选数组元素步骤中,所挑选的数组元素就是指针2所指向的最近更新的低于擦除次数阈值的数组元素。
其中,在上述的数据写入时块信息从空块数组表删除的对应指针移位步骤中,包括:移动对应的指针,使之指向下一个数组元素位置。
其中,在上述的数据写入时块信息从空块数组删除的删除块信息步骤时,删除数组对应元素中保存的物理块地址和块擦除次数。
上述方法包括的两类操作互相独立。
上述方法在空块数组里没有空块时,必须启动数据擦除时块信息添加进空块数组操作。
上述方法在空块数组里没有低于阈值的空块且空块数组元素个数不等于零时,翻转标志位取反,同时块的擦除次数清零或减去同一数值,两个指针对调位置。
其中两个指针分别指向最近更新的等于擦除次数阈值的数组元素和低于擦除次数阈值的数组元素;翻转标志位区分奇偶次翻转;两个指针和翻转标志位都存储在闪存介质中,在计算机运行时则可读入到SDRAM中,以便减小对闪存介质的损耗。所述方法包括两类操作:数据擦除时块信息添加进空块数组表;数据写入时块信息从空块数组表删除。数据擦除时块信息添加进空块数组表操作包含以下步骤:比较阈值;对应指针移位;添加块信息。数据写入时块信息从空块数组表删除操作包含以下步骤:挑选数组元素;对应指针移位;删除块信息。
当块中的数据被擦除后,该块就可以添加到空块数组表中了。数据擦除时块信息添加进空块数组表的步骤如图1a、1b所示:先擦除次数加1,比较块擦除次数与设定阈值的大小(阈值不宜太大,也不宜太小,图中为32。太大时块与块之间读写次数突变太大,会导致损耗均衡效果不好,不利于动态损耗均衡的实现,太小则翻转过于频繁。一般取16-48),以确定在数组中的添加位置。若擦除次数小于阈值,指针2向后(翻转标志位=0时,如图1a)或向前(翻转标志位=1时,如图1b;注意图1b中指针1和指针2已对调位置)移动一个位置,再把块信息(物理块地址5,擦除次数10)添加到指针2所指位置;若擦除次数大于阈值,指针1向后(翻转标志位=0时,图中未示出)或向前(翻转标志位=1时,图中未示出)移动一个位置,再把块信息添加到指针1所指位置。由此可见,指针2就代表擦除次数小于阀值的空块的边界,指针1则是表示擦除次数大于阀值的空块的边界。擦除次数小于阀值的空块是可以直接在其中写入数据的块,而擦除次数大于阀值的空块则暂时不能写入数据,只能等到所有空块的擦除次数均大于阀值时发生翻转后才能写入数据,具体见下面详述。
至于等于阈值时是向前还是向后,取决于阈值的取法,由于阈值本身有一个灵活取值的范围,所以等于阈值时向前还是向后均可。
当向空块中写入数据时,空块就变成了数据块,因此需要将它从空块数组表中删除(即移出)。在上述的块信息从空块数组删除的步骤,如图2所示,包括:首先挑选空块数组中指针2所指位置的数组元素(物理地址块5,擦除次数10),然后对应的指针2向前(翻转标志位=0时,如图2a)或向后(翻转标志位=1时,如图2b)移动一个位置,最后删除原指针2所指位置的元素。由于写入时直接找到指针2所指位置的数组元素,查找方法复杂度大大降低(复杂度为O(1),即没有任何复杂度),提高了固态硬盘的读写性能。
当空块数组中没有低于阈值的空块存在且空块数组中的空块数不为零时,空块数组进入翻转过程,即空块数组中的所有块的擦除次数都清零或减去同一数值(比如32)或者将阈值增加一数值(比如32),翻转标志位取反,同时对调指针1和指针2所指的位置。翻转后,原先暂时不能写入数据的空块变得可以写入了。
这样,在一次翻转到下一次翻转之间,各个块均得到同等机会的擦除次数(均被擦除了32次),实现了动态损耗均衡。
图中,短箭头表示指针,虚线表示指针将要移往的位置,长箭头表示块的移动方向;左边格子表示空块数组表,其中的数字中,上一排表示擦除次数,下一排表示物理地址;右边的格子表示无效块(图1a、1b)或数据块数组表(图2a、2b),其右侧的数字“5”和“10”分别表示物理地址和擦除次数。
由以上描述可见,本方法通过简化动态损耗均衡方法过程为两类操作:一是数据擦除时将块添加进空块数组表,一是数据写入时将块从空块数组表中移出。这两类操作的耦合性很低,降低了固态硬盘动态损耗均衡方法的复杂程度。
另外,本固态硬盘动态损耗均衡方法基于数组数据结构,数组中只存储了每个块的物理地址和擦除次数,所以占用的系统资源少,包括内存和闪存存储空间都会少。
而且,本固态硬盘动态损耗均衡方法可以与其它静态损耗均衡方法结合起来使用,进一步提高固态硬盘的读写速度和寿命。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,则应当视为属于本发明由所提交的权利要求书确定的保护范围。
Claims (5)
1.一种固态硬盘动态损耗均衡方法,包括数据擦除时块信息添加进空块数组表和数据写入时块信息从空块数组表删除,其特征是:事先建立空块数组表、无效块数组表和数据块数据表,分别用于存储固态硬盘中的空块中各个块的物理地址和擦除次数、无效块中各个块的物理地址和擦除次数,以及数据块中各个块的物理地址和擦除次数;并在空块数组表中设置第一指针,用于标注擦除次数大于设定阈值的空块的边界,和第二指针,用于标注擦除次数小于设定阈值的空块的边界;所述空块是指已经过擦除可以重新写入数据的块,所述数据块是其中写有有效数据的块,所述无效块是指数据已经标注为删除但其中物理信息尚未真正擦除的块;
所述数据擦除时块信息添加进空块数组表包括如下步骤:A、将相应块从无效块数据表中移除,添加到空块数组表,并且当相应块的擦除次数大于设定阈值时,第一指针向指定方向移动一个位置,当相应块的擦除次数小于设定阈值时第二指针向指定方向移动一个位置;
所述数据写入时块信息从空块数组表删除包括如下步骤:B、将相应块从空块数组表中移除,添加到数据块数据表,并且第二指针向指定方向移动一个位置。
2.如权利要求1所述的固态硬盘动态损耗均衡方法,其特征是:所述步骤A中包括如下步骤:
擦除次数加1,比较相应块的块擦除次数与设定阈值的大小,若擦除次数小于阈值,则第二指针向指定方向移动一个位置,并把相应块的物理地址和擦除次数信息添加到第二指针所指位置;若擦除次数大于阈值,第一指针向指定方向移动一个位置,并把相应块的物理地址和擦除次数信息添加到第一指针所指位置。
3.如权利要求1或2所述的固态硬盘动态损耗均衡方法,其特征是:所述步骤B包括如下步骤:
找到第二指针的位置,将第二指针所指位置的数组元素从空块数组表中删除,且对应的第二指针向指定方向移动一个位置。
4.如权利要求1或2所述的固态硬盘动态损耗均衡方法,其特征是:在空块数组表中还设置翻转标志位,当空块数组中没有低于阈值的空块存在且空块数组中的空块数不为零时,空块数组进入翻转过程,即空块数组中的所有块的擦除次数都清零或减去同一数值,或将阈值增加一数值,翻转标志位取反,同时对调第一指针和第二指针所指的位置向移动方向。
5.如权利要求1或2所述的固态硬盘动态损耗均衡方法,其特征是:当空块数组表里没有空块时,启动所述步骤A。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101380048A CN101819821B (zh) | 2010-03-25 | 2010-03-25 | 一种固态硬盘动态损耗均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101380048A CN101819821B (zh) | 2010-03-25 | 2010-03-25 | 一种固态硬盘动态损耗均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101819821A CN101819821A (zh) | 2010-09-01 |
CN101819821B true CN101819821B (zh) | 2012-08-29 |
Family
ID=42654868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101380048A Expired - Fee Related CN101819821B (zh) | 2010-03-25 | 2010-03-25 | 一种固态硬盘动态损耗均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101819821B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789423B (zh) * | 2012-07-11 | 2014-12-10 | 山东华芯半导体有限公司 | 四池闪存磨损均衡方法 |
CN104111893A (zh) * | 2013-06-21 | 2014-10-22 | 芜湖美的厨卫电器制造有限公司 | 数据的存储方法 |
KR20170078310A (ko) * | 2015-12-29 | 2017-07-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN107908570A (zh) * | 2017-10-25 | 2018-04-13 | 记忆科技(深圳)有限公司 | 一种实现固态硬盘磨损均衡的方法 |
CN109669643A (zh) * | 2018-12-25 | 2019-04-23 | 苏州沃联网络信息科技有限责任公司 | 适用于电子标价签的数据传输方法 |
CN114924690B (zh) * | 2022-02-23 | 2024-04-19 | 华东师范大学 | 一种基于非均衡磨损闪存的读性能优化方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354681A (zh) * | 2008-09-23 | 2009-01-28 | 美商威睿电通公司 | 存储器系统、非易失性存储器的磨损均衡方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144516A1 (en) * | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
-
2010
- 2010-03-25 CN CN2010101380048A patent/CN101819821B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354681A (zh) * | 2008-09-23 | 2009-01-28 | 美商威睿电通公司 | 存储器系统、非易失性存储器的磨损均衡方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101819821A (zh) | 2010-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113196226B (zh) | 固态驱动器中的分区命名空间 | |
CN101819821B (zh) | 一种固态硬盘动态损耗均衡方法 | |
US10445231B2 (en) | Method and system for storage device metadata management and processing | |
KR101303524B1 (ko) | 불휘발성 메모리에 대한 메타데이터 리던던시 스킴 | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
US8650379B2 (en) | Data processing method for nonvolatile memory system | |
CN102737715B (zh) | 用于nor闪存的数据掉电保护方法 | |
CN104572478A (zh) | 数据存取方法和数据存取装置 | |
CN101819509A (zh) | 一种固态硬盘读写方法 | |
CN103294604A (zh) | 闪存器件和使用闪存器件的电子设备 | |
CN101324862B (zh) | 闪存存储管理方法 | |
CN109643274B (zh) | 多个数据温度区的交叉点存储器的磨损均衡方法 | |
CN108628771A (zh) | 信息处理装置、存储设备以及信息处理系统 | |
CN103559138A (zh) | 固态硬盘及其空间管理方法 | |
CN109254926A (zh) | 数据储存装置及非挥发式存储器操作方法 | |
US20050144396A1 (en) | Coalescing disk write back requests | |
KR20100065786A (ko) | 빠른 파워-오프를 위한 캐시 동기화 방법 및 시스템 | |
TWI473100B (zh) | Flash memory system and its operation method | |
CN101383190A (zh) | 应用于固态硬盘的闪存均衡损耗算法 | |
CN104778018A (zh) | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 | |
CN102662856A (zh) | 一种固态硬盘及其存取方法 | |
CN105607862A (zh) | 一种dram与mram结合具有备份电源的固态硬盘 | |
CN102520885B (zh) | 一种混合硬盘的数据管理系统 | |
CN101609431B (zh) | 闪存装置的运作方法及闪存装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120829 Termination date: 20150325 |
|
EXPY | Termination of patent right or utility model |