CN106371769B - 一种基于红黑树的物理块信息处理方法及信息处理模块 - Google Patents

一种基于红黑树的物理块信息处理方法及信息处理模块 Download PDF

Info

Publication number
CN106371769B
CN106371769B CN201610803048.5A CN201610803048A CN106371769B CN 106371769 B CN106371769 B CN 106371769B CN 201610803048 A CN201610803048 A CN 201610803048A CN 106371769 B CN106371769 B CN 106371769B
Authority
CN
China
Prior art keywords
physical block
block
erasing times
black tree
red black
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.)
Active
Application number
CN201610803048.5A
Other languages
English (en)
Other versions
CN106371769A (zh
Inventor
胡聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN CHIPSBANK TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN CHIPSBANK TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHENZHEN CHIPSBANK TECHNOLOGY Co Ltd filed Critical SHENZHEN CHIPSBANK TECHNOLOGY Co Ltd
Priority to CN201610803048.5A priority Critical patent/CN106371769B/zh
Publication of CN106371769A publication Critical patent/CN106371769A/zh
Application granted granted Critical
Publication of CN106371769B publication Critical patent/CN106371769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

本发明实施例公开了一种基于红黑树的物理块信息处理方法及信息处理模块,本发明实施例方法包括:遍历闪存中物理块的擦除次数;根据当前物理块的擦除次数将当前物理块的信息添加到物理块红黑树中;根据物理块红黑树确定擦除次数满足均衡磨损条件的目标物理块。本发明实施例还提供了一种信息处理模块,根据物理块的擦除次数将物理块的信息添加到物理块红黑树中,由于红黑树的平衡特性,根据物理块红黑树能够更加快速的确定擦除次数满足均衡磨损条件的目标物理块。

Description

一种基于红黑树的物理块信息处理方法及信息处理模块
技术领域
本发明涉及数据存储技术领域,具体涉及一种基于红黑树的物理块信息处理方法及信息处理模块。
背景技术
闪存由于其功耗低、体积小、防震抗摔和访问速度快等优点而选用于简易型可移动和嵌入式设备的存储领域。闪存以物理块为擦除单位,以物理页为编程单位,写入新的数据必须擦除一个物理块,一个物理页一个物理页分别写入。由于闪存的擦除次数有限,为了提高存储的使用寿命,需要对闪存内部的物理块进行统一管理,保证每个物理块都被平均的使用到,防止某些物理块的擦除次数过大,而某些物理块的擦除次数过小,该管理过程被称作均衡磨损,均衡磨损实现的好坏会直接影响到整个闪存的生命周期。
现实生活中的存储设备通常呈现出较高的数据访问局部性,即有些数据会被频繁访问,经常更新,这部分数据称为热数据;有些数据则很少或几乎不被访问,更新频率很小,这部分数据称为冷数据。均衡磨损通常是将存储在擦除次数满足均衡磨损条件的数据块的冷数据,搬移到擦除次数较大的空闲块中。擦除次数满足均衡磨损条件的数据块为擦除次数较小的物理块,一般首先根据最大擦除次数和擦除间隔阈值来确定擦除次数满足均衡磨损条件的目标数据块,之后根据最大写入顺序和写入间隔阈值来判断目标数据块中存储的数据是否为冷数据。由于需要频繁的查找擦除次数满足均衡磨损条件的物理块,因此均衡磨损功能实现的复杂与简单程度会更加影响到整个闪存盘的性能表现。
现有技术中,物理块的擦除次数通常是按照物理块的地址的顺序、以数组的形式进行保存的,形成物理块的擦除次数表,并直接根据擦除次数表来确定擦除次数满足均衡磨损条件的物理块。
在查找擦除次数满足均衡磨损条件的物理块的过程中,需要对擦除次数表中的数据进行遍历,逐个物理块进行擦除次数的比较,来确定擦除次数满足均衡磨损条件的物理块,由于闪存中包括的数据块数目庞大,需要进行的比较次数过多,耗时较长,降低闪存性能。
发明内容
本发明实施例提供了一种基于红黑树的物理块信息处理方法及信息处理模块,用于解决查找擦除次数满足均衡磨损条件的物理块的比较次数过多的问题。
为达到上述目的,本发明实施例的一方面提供了一种基于红黑树的物理块信息处理方法,包括:
遍历闪存中物理块的擦除次数;
根据当前物理块的擦除次数将所述当前物理块的信息添加到物理块红黑树中;
根据所述物理块红黑树确定擦除次数满足均衡磨损条件的目标物理块。
结合第一方面,在第一方面的第一种可能的实现方式中,在所述根据当前物理块的擦除次数将所述当前物理块的信息添加到物理块红黑树中之前,所述方法还包括:
判断所述当前物理块是否为有效数据块;
若是,则触发根据当前物理块的擦除次数将所述当前物理块的信息添加到物理块红黑树中的步骤;
所述物理块红黑树为数据块红黑树。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,根据所述数据块红黑树确定擦除次数满足均衡磨损条件的目标物理块包括:
查找所述数据块红黑树的最右节点;
确定所述数据块红黑树的最右节点对应的第一物理块的信息;
查找所述数据块红黑树的最左节点;
确定所述数据块红黑树的最左节点对应的第二物理块的信息;
判断所述第二擦除次数与所述第一擦除次数的差值是否超过擦除间隔阈值;
若是,则确定所述第二物理块为擦除次数满足均衡磨损条件的目标物理块;
若否,则判定不存在擦除次数满足均衡磨损条件的目标物理块。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,在所述判断所述当前物理块是否为有效数据块之前,所述方法还包括:
判断所述当前物理块是否为数据块;
若是,则触发判断所述当前物理块是否为有效数据块的步骤;
若否,则根据所述当前物理块的擦除次数将所述当前物理块的信息添加到空闲块红黑树中。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在所述确定所述第二物理块为擦除次数满足均衡磨损条件的目标物理块之后,所述方法还包括:
判断所述第二物理块的写入顺序和最大写入顺序的差值是否超过写入间隔阈值;
若是,查找所述空闲块红黑树的最右节点;
确定所述空闲块红黑树的最右节点对应的第三物理块的信息;
将所述第二物理块中的数据写入所述第三物理块中。
本发明实施例的第二方面提供了一种信息处理模块,包括:
遍历单元,用于遍历闪存中物理块的擦除次数;
第一添加单元,用于根据当前物理块的擦除次数将所述当前物理块的信息添加到物理块红黑树中,所述当前物理块的信息包括所述当前物理块的擦除次数;
第一确定单元,用于根据所述物理块红黑树确定擦除次数满足均衡磨损条件的目标物理块。
结合第二方面,在第二方面的第一种可能的实现方式中,所述信息处理模块还包括:
第一判断单元,用于判断所述当前物理块是否为有效数据块;
第一触发单元,用于当所述第一判断单元判定所述当前物理块为有效数据块时,触发所述第一添加单元;
所述物理块红黑树为数据块红黑树。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第一确定单元包括:
第一查找子单元,用于查找所述数据块红黑树的最右节点;
第一确定子单元,用于确定所述数据块红黑树的最右节点对应的第一物理块的信息,所述第一物理块的擦除次数为第一擦除次数;
第二查找子单元,用于查找所述数据块红黑树的最左节点;
第二确定子单元,用于确定所述数据块红黑树的最左节点对应的第二物理块的信息,所述第二物理块的擦除次数为第二擦除次数;
判断子单元,用于判断所述第二擦除次数与所述第一擦除次数的差值是否超过擦除间隔阈值;
第三确定子单元,用于当所述判断子单元判定所述第二擦除次数与所述第一擦除次数的差值超过擦除间隔阈值时,确定所述第二物理块为擦除次数满足均衡磨损条件的目标物理块;
判定子单元,用于当所述判断子单元判定所述第二擦除次数与所述第一擦除次数的差值不超过擦除间隔阈值时,判定不存在擦除次数满足均衡磨损条件的目标物理块。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述信息处理模块还包括:
第二判断单元,用于判断所述当前物理块是否为数据块;
第二触发单元,用于当所述第二判断单元判定所述当前物理块为数据块时,触发判断所述当前物理块是否为有效数据块的步骤;
第二添加单元,用于当所述第二判断单元判定所述当前物理块不是数据块时,根据所述当前物理块的擦除次数将所述当前物理块的信息添加到空闲块红黑树中。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述信息处理模块还包括:
第三判断单元,用于判断所述第二物理块的写入顺序和最大写入顺序的差值是否超过写入间隔阈值;
第一查找单元,用于当所述第三判断单元判定所述第二物理块的写入顺序和最大写入顺序的差值超过写入间隔阈值时,查找所述空闲块红黑树的最右节点;
第二确定单元,用于确定所述空闲块红黑树的最右节点对应的第三物理块的信息;
存储单元,用于将所述第二物理块中的数据写入所述第三物理块中。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例遍历闪存中物理块的擦除次数,并根据当前物理块的擦除次数将当前物理块的信息添加到物理块红黑树中,形成物理块红黑树之后,根据物理块红黑树确定擦除次数满足均衡磨损条件的目标物理块。由于红黑树的平衡特性,物理块红黑树会根据物理块的擦除次数大小来确定物理块的信息对应的节点位置,因此根据红黑树形式记录的物理块擦除次数,能够更加快速的确定擦除次数满足均衡磨损条件的目标物理块,减少对闪存性能的影响。
附图说明
图1是本发明基于红黑树的物理块信息处理方法一个实施例示意图;
图2是本发明基于红黑树的物理块信息处理方法另一个实施例示意图;
图3是本发明基于红黑树的物理块信息处理方法另一个实施例示意图;
图4是本发明信息处理模块一个实施例示意图;
图5是本发明信息处理模块另一个实施例示意图;
图6是本发明信息处理模块另一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于红黑树的物理块信息处理方法及信息处理模块,用于快速确定擦除次数满足均衡磨损条件的目标物理块。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着科学技术的飞速发展以及智能手机的普及,对高速大容量的闪存存储设备的需求也越来越大。闪存以其低成本,高密度以及非易失性的优点,越来越多的被使用于存储设备中作为存储介质。由于闪存介质的制作技术特性,使得其具有与磁介质完全不同的物理特性。
闪存以物理块为擦除单位,以物理页为编程单位,写入新的数据必须擦除一个物理块,一个物理页一个物理页分别写入。由于写入和擦除的单位不一致,因此在以闪存作为存储介质的系统中,都存在一个闪存转换层(Flash translation layer)FTL。由于闪存的擦除次数有限,为了提高存储设备的使用寿命,FTL需要对闪存内部的物理块进行统一管理,保证每个物理块都被平均的使用到,而不会出现某些物理块已经达到最大擦除次数,但是另一些物理块却擦除次数很少。该管理过程在闪存管理中称为均衡磨损,均衡磨损实现的好坏会直接影响到整个闪存的生命周期。
存储设备通常呈现出较高的数据访问局部性,即有些数据块中的数据会被频繁访问,经常更新,这部分数据称为热数据;有些数据块中的数据则很少或几乎不被访问,更新频率很小,这部分数据称为冷数据。因此,均衡磨损通常是将存储在擦除次数较小的数据块的冷数据,搬移到擦除次数较大的空块中。写有有效数据的物理块一般被称作数据块,未写入数据的物理块一般被称作空块。
在闪存的物理块管理中,会建立擦除次数表来记录每个物理块的擦除次数,以及写入顺序表来记录物理块的写入先后顺序。关于写入顺序,最近一次被访问的物理块的写入顺序最大,而写入顺序越小,说明该物理块中的数据越长时间未被访问,可见,写入顺序可以体现该物理块中的数据为冷数据还是热数据。
一般会根据这两个表来确定需要进行均衡磨损管理的物理块,具体的,一般会设定两个阈值,擦除间隔阈值和写入间隔阈值,来确定需要进行均衡磨损的物理块,即擦除次数较小且存储有冷数据的数据块。当某个物理块的擦除次数与最大擦除次数(当前擦除次数最大的物理块的擦除次数)的差值大于擦除间隔阈值时,可以确定该物理块的擦除次数较小,进一步判断该物理块的写入顺序与最大写入顺序(当前写入顺序最大的物理块的写入顺序)是否大于写入间隔阈值,若是,则说明该物理块中的数据为冷数据,可以判定该物理块需要进行均衡磨损。由于需要频繁的判断是否需要进行均衡磨损,因此均衡磨损功能实现的复杂与简单程度会更加影响到整个闪存盘的性能表现。
现有技术中,擦除次数以及写入顺序都是以数组的形式进行保存的,为了确定需要进行均衡磨损的物理块,需要对擦除次数表和写入顺序表中的数据进行遍历,逐个物理块进行擦除次数以及写入顺序的比较,来确定最大擦除次数和最大写入顺序,进而查找满足两个阈值条件的物理块。
但是,假如闪存中包含2048个物理块,就需要进行至少2047次比较,才能确定最大擦除次数。若闪存中不存在擦除次数满足擦除阈值条件的物理块,则至少还需要进行2047次比较,方能确定闪存中不存在需要均衡磨损的物理块。由于需要进行频繁的均衡磨损判断过程,若每一次的均衡磨损判断过程均需要进行如此大量的比较的话,对于整个闪存来说,性能损失很大。
为了解决上述问题,本发明提出一种基于红黑树的物理块信息处理方法及信息处理装置,用于提供一种物理块管理机制,以通过更少的比较次数找出需要进行均衡磨损的物理块。红黑树是一种自平衡二叉查找树。与普通二叉树不同在于,红黑树的每个节点都带有颜色属性,颜色或为红色或为黑色。红黑树在二叉树强制一般要求以外,还具有以下特性:节点是黑色或者红色;根节点是黑色;每个叶子结点都是黑色;每个红色节点的子页点都是黑色;从任一节点到其他每个叶子及所有路径都包含相同数目的黑色节点。
上述强制约束能够保证红黑树大致是平衡的,若根据物理块的擦除次数将物理块的信息插入红黑树中,则红黑树最左节点对应的物理块的擦除次数最小,最右节点对应的物理块的擦除次数最大,根据红黑树形式记录的物理块擦除次数,能够更加快速的确定擦除次数满足均衡磨损条件的目标物理块,减少对闪存性能的影响。
为了便于本领域技术人员的理解,本发明通过以下实施例对本发明提供的技术方案的具体实现过程进行说明。
请参阅图1,本发明实施例中基于红黑树的物理块信息处理方法一个实施例包括:
101、遍历闪存中物理块的擦除次数;
遍历闪存中物理块的擦除次数,在实际使用中,闪存中可以存储有物理块的擦除次数表,该表中记录有各个物理块的当前擦除次数,FTL可以对该表中各个物理块的擦除次数进行遍历。
102、根据当前物理块的擦除次数将当前物理块的信息添加到物理块红黑树中;
在FTL对物理块的擦除次数进行遍历的过程中,可以根据当前物理块的擦除次数将当前物理块的信息添加到物理块红黑树中。在遍历结束后,可以完成物理块红黑树的初始化过程。
103、根据物理块红黑树确定擦除次数满足均衡磨损条件的目标物理块。
在根据当前物理块的擦除次数将当前物理块的信息添加到物理块红黑树中之后,可以根据物理块红黑树确定擦除次数满足均衡磨损条件的目标物理块。
由于红黑树的均衡特性,物理块红黑树会根据物理块的擦除次数大小来确定物理块的信息对应的节点位置,因此根据红黑树形式记录的物理块擦除次数,能够更加快速的确定擦除次数满足均衡磨损条件的目标物理块,减少对闪存性能的影响。
请参阅图2,本发明实施例中基于红黑树的物理块信息处理方法另一个实施例包括:
201、判断当前物理块是否为有效数据块,若是,则执行步骤202,若否,则执行步骤203;
遍历物理块的擦除次数的过程中,首先判断当前物理块是否为有效数据块,存储有数据的物理块为数据块,若存储的数据为有效数据,则该数据块为有效数据块。
202、根据当前物理块的擦除次数将当前物理块的信息添加到数据块红黑树中;
若当前物理块为有效数据块,则根据当前物理块的擦除次数将当前物理块的信息添加到数据块红黑树中。优选的,若存在擦除次数相同的两个或多个物理块,则可以进一步根据物理块的写入顺序将这些物理块添加到数据块红黑树中。这样,物理块距离数据块红黑树的最左节点越近,其擦除次数越小,而擦除次数相同的物理块,写入顺序越小,其满足均衡磨损条件的可能性越大。
203、执行其他操作;
若当前物理块不是有效数据块,可以不将其添加至数据块红黑树中。步骤201至步骤203,能够得到由有效数据块的信息构成的红黑树,能够进一步方便查找擦除次数满足均衡磨损条件的红黑树。
参照步骤201至步骤203,遍历闪存中的物理块,能够完成数据块红黑树的初始化。
204、查找数据块红黑树的最右节点;
在数据块红黑树完成初始化之后,可以根据数据块红黑树确定需要进行均衡磨损的物理块。具体的,可以首先确定最大擦除次数,需要查找数据块红黑树的最右节点。若数据块红黑树中包括2048个数据块的信息,那么从根节点开始,需要经过10次查找,便能查找到数据块红黑树的最右节点。
205、确定数据块红黑树的最右节点对应的第一物理块的信息;
在查找到数据块红黑树的最右节点之后,可以确定数据块红黑树的最右节点对应的第一物理块的信息,可以在擦除次数表中确定第一物理块的第一擦除次数。根据红黑树的特性,第一物理块为闪存中有效数据块中擦除次数最大的数据块,第一擦除次数为最大擦除次数。
206、查找数据块红黑树的最左节点;
在数据块红黑树完成初始化之后,可以查找数据块红黑树的最左节点,若数据块红黑树中包括2048个数据块的信息,那么从根节点开始,同样需要经过10次查找,便能查找到数据块红黑树的最左节点。
207、确定当前节点对应的当前物理块的信息;
在查找到数据块红黑树的最左节点之后,当前节点即为红黑树的最左节点,根据红黑树的特性,若当前节点为红黑树的最左节点,当前节点对应的当前物理块的擦除次数为最小擦除次数。
208、判断当前物理块的擦除次数与第一擦除次数的差值是否超过擦除间隔阈值,若是,则执行步骤209,若否,则执行步骤213;
在确定当前物理块的信息之后,能够确定当前物理块的擦除次数,之后可以判断当前物理块的擦除次数与第一擦除次数的差值是否超过擦除间隔阈值,若是,则执行步骤209,若否,则执行步骤213。
209、确定当前物理块为擦除次数满足均衡磨损条件的目标物理块;
若判定当前物理块的擦除次数与第一擦除次数的差值超过擦除间隔阈值,则可以确定当前物理块为擦除次数满足均衡磨损条件的目标物理块。
210、判断当前物理块的写入顺序和最大写入顺序的差值是否超过写入间隔阈值,若是,则执行步骤211,若否,则执行步骤212;
在确定当前物理块为擦除次数满足均衡磨损条件的目标物理块之后,可以判断当前物理块的写入顺序和最大写入顺序的差值是否超过写入间隔阈值,若是,则执行步骤211,若否,则执行步骤212。闪存中一般存储有物理块的写入顺序表,可以通过写入顺序表来确定当前物理块的写入顺序。
211、对当前物理块进行均衡磨损;
若判定当前物理块的写入顺序和最大写入顺序的差值超过写入间隔阈值,则可以对当前物理块进行均衡磨损,具体的均衡磨损过程可以参考现有技术,此处不做具体限定。
212、查找当前节点的下一节点;
若判定当前物理块的写入顺序和最大写入顺序的差值未超过写入间隔阈值,可以查找当前节点的下一节点,根据红黑树的特性,下一节点对应的物理块的擦除次数大于或等于当前节点的擦除次数。通常仅需要一次查找便能找到当前节点的下一节点,找到下一节点之后,下一节点称为当前节点,可以返回到步骤207,确定当前节点对应的当前物理块的信息。
213、结束均衡磨损的过程。
在判定当前物理块的擦除次数与第一擦除次数的差值不超过擦除间隔阈值之后,或者在对当前物理块进行均衡磨损之后,可以结束此次均衡磨损的过程。
步骤204至步骤212为确定满足均衡磨损条件的物理块的过程,在实际使用中,也可以根据数据块红黑树采用其他判断标准及具体过程来实现,此处不做具体限定。
擦除次数越小的物理块越有可能满足上述两个阈值条件,若擦除次数最小的物理块不满足擦除次数的阈值条件,则可以直接确定闪存中不存在需要进行均衡磨损的物理块。因此优先判断擦除次数最小的物理块是否满足上述两个阈值条件能够最大程度的减少比较次数。假如一个闪存盘包含2048个物理块,则我们只需要进行10次查找即可确定最大擦除次数,并只需要10次查找便可确定最小擦除次数的物理块,并优先判断擦除次数最小的物理块是否满足上述两个阈值条件。和现有技术相比,比较次数大幅减少,同时可以减少均衡磨损的判定时长,减小对闪存性能的影响。
请参阅图3,本发明实施例中基于红黑树的物理块信息处理方法另一个实施例包括:
301、判断当前物理块是否为数据块,若是,则执行步骤302,若否,则执行步骤305;
遍历物理块的擦除次数的过程中,首先判断当前物理块是否为数据块,存储有数据的物理块一般称作为数据块,若当前物理块是数据块,则执行步骤302,若当前物理块不是数据块,则执行步骤305。
302、判断当前物理块是否为有效数据块,若是,则执行步骤303,若否,则执行步骤304;
在判定当前物理块为数据块之后,可以判断当前物理块是否为有效数据块,通常若当前物理块中存储的数据为有效数据,则可判定为有效数据块。若当前物理块是有效数据块,则执行步骤303,若当前物理块不是有效数据块,则执行步骤304。
303、根据当前物理块的擦除次数将当前物理块的信息添加到数据块红黑树中;
若判定当前物理块为有效数据块,则可以根据当前物理块的擦除次数将当前物理块的信息添加到数据块红黑树中。
304、根据当前物理块的擦除次数将当前物理块的信息添加到垃圾块红黑树中;
若判定当前物理块不是有效数据块,则当前物理块为垃圾块,可以根据当前物理块的擦除次数将当前物理块的信息添加到垃圾块红黑树中。
305、根据当前物理块的擦除次数将当前物理块的信息添加到空闲块红黑树中;
若判定当前物理块不是数据块,则当前物理块为空闲块,可以根据当前物理块的擦除次数将当前物理块的信息添加到空闲块红黑树中。
参照步骤301至步骤305,遍历闪存中的物理块,将闪存中的物理块均添加至红黑树中,之后能够完成红黑树的初始化,得到数据块红黑树、垃圾块红黑树和空闲块红黑树。垃圾块红黑树可以辅助垃圾块管理,在实际使用中,也可以仅建立数据块红黑树和空闲块红黑树。
306、查找数据块红黑树的最右节点;
307、确定数据块红黑树的最右节点对应的第一物理块的信息;
308、查找数据块红黑树的最左节点;
309、确定当前节点对应的当前物理块的信息;
310、判断当前物理块的擦除次数与第一擦除次数的差值是否超过擦除间隔阈值,若是,则执行步骤311,若否,则执行步骤314;
311、确定当前物理块为擦除次数满足均衡磨损条件的目标物理块;
312、判断当前物理块的写入顺序和最大写入顺序的差值是否超过写入间隔阈值,若是,则执行步骤315,若否,则执行步骤313;
313、查找当前节点的下一节点;
314、结束均衡磨损的过程;
步骤306至步骤312与图2对应的实施例中的步骤204至步骤210分别相同,步骤313与步骤314和图2对应的实施例中的步骤212与步骤213分别相同,此处不再赘述。
315、查找空闲块红黑树的最右节点;
在完成空闲块红黑树的初始化之后,可以查找空闲块红黑树的最右节点。若空闲块红黑树中包括2048个空闲块的信息,那么从根节点开始,需要经过10次查找,便能查找到空闲块红黑树的最右节点。
316、确定空闲块红黑树的最右节点对应的第三物理块的信息;
在查找到空闲块红黑树的最右节点之后,可以确定空闲块红黑树的最右节点对应的第三物理块的信息,根据红黑树的特性,第三物理块为擦除次数最大的空闲物理块。
317、将当前物理块中的数据存入第三物理块中。
若当前物理块的写入顺序和最大写入顺序的差值超过写入间隔阈值,在确定第三物理块的信息之后,可以将当前物理块中的数据存入第三物理块中,完成对当前物理块的均衡磨损。
步骤315和步骤316用于确定擦除次数最大的空闲块,只要在空闲块红黑树的初始化之后,步骤317之前完成即可,具体时序不做限定。步骤315至步骤317为对第二物理块进行均衡磨损的具体过程,通过空闲块红黑树确定擦除次数最大的空闲物理块,和现有技术相比,能够减少比较次数,减少均衡磨损对闪存性能的影响。
上面对本发明实施例中的基于红黑树的物理块信息处理方法进行了描述,下面对本发明实施例中的信息处理模块进行描述。
请参阅图4,本发明实施例中信息处理模块的一个实施例包括:
遍历单元401,用于遍历闪存中物理块的擦除次数;
第一添加单元402,用于根据当前物理块的擦除次数将当前物理块的信息添加到物理块红黑树中;
第一确定单元403,用于根据物理块红黑树确定擦除次数满足均衡磨损条件的目标物理块。
本实施例中的信息处理模块各单元间的关系参照图1对应的实施例,此处不再赘述。
请参阅图5,本发明实施例中信息处理模块的另一个实施例包括:
第一判断单元501,用于判断当前物理块是否为有效数据块。
第一添加单元502,用于根据当前物理块的擦除次数将当前物理块的信息添加到物理块红黑树中。
第一确定单元503,用于根据物理块红黑树确定擦除次数满足均衡磨损条件的目标物理块,第一确定单元503包括:
第一查找子单元5031,用于查找数据块红黑树的最右节点;
第一确定子单元5032,用于确定数据块红黑树的最右节点对应的第一物理块的信息,第一物理块的信息包括第一物理块的第一擦除次数;
第二查找子单元5033,用于查找数据块红黑树的最左节点;
第二确定子单元5034,用于确定当前物理块的信息,当前物理块的信息包括当前物理块的擦除次数;
判断子单元5035,用于判断当前物理块的擦除次数与第一擦除次数的差值是否超过擦除间隔阈值;
第三确定子单元5036,用于当判断子单元判定当前物理块的擦除次数与第一擦除次数的差值超过擦除间隔阈值时,确定当前物理块为擦除次数满足均衡磨损条件的目标物理块;
第三判断单元504,用于判断当前物理块的写入顺序和最大写入顺序的差值是否超过写入间隔阈值。
均衡磨损单元505,用于对当前物理块进行均衡磨损。
第二查找单元506,用于查找当前节点的下一节点。之后可以触发第二确定子单元5034。
本实施例中的信息处理模块各单元间的关系参照图2对应的实施例,此处不再赘述。
请参阅图6,本发明实施例中信息处理模块的一个实施例包括:
第二判断单元601,用于判断当前物理块是否为数据块。
第四判断单元602,用于判断当前物理块是否为有效数据块。
第一添加单元603,用于当第四判断单元602判定当前物理块为有效数据块时,根据当前物理块的擦除次数将当前物理块的信息添加到数据块红黑树中;
第三添加单元604,用于当第四判断单元602判定当前物理块不是有效数据块时,根据当前物理块的擦除次数将当前物理块的信息添加到垃圾块红黑树中;
第二添加单元605,用于当第二判断单元601判定当前物理块不是数据块之后,根据当前物理块的擦除次数将当前物理块的信息添加到空闲块红黑树中。
第一确定单元606,用于根据物理块红黑树确定擦除次数满足均衡磨损条件的目标物理块,第一确定单元503包括:
第一查找子单元6061,用于查找数据块红黑树的最右节点;
第一确定子单元6062,用于确定数据块红黑树的最右节点对应的第一物理块的信息,第一物理块的信息包括第一物理块的第一擦除次数;
第二查找子单元6063,用于查找数据块红黑树的最左节点;
第二确定子单元6064,用于确定当前物理块的信息,当前物理块的信息包括当前物理块的擦除次数;
判断子单元6065,用于判断当前物理块的擦除次数与第一擦除次数的差值是否超过擦除间隔阈值;
第三确定子单元6066,用于当判断子单元判定当前物理块的擦除次数与第一擦除次数的差值超过擦除间隔阈值时,确定当前物理块为擦除次数满足均衡磨损条件的目标物理块;
第三判断单元607,用于判断当前物理块的写入顺序和最大写入顺序的差值是否超过写入间隔阈值。
第二查找单元608,用于查找当前节点的下一节点。之后可以触发第二确定子单元6064。
第一查找单元609,用于查找空闲块红黑树的最右节点。
第二确定单元610,用于确定空闲块红黑树的最右节点对应的第三物理块的信息。
存储单元611,用于将当前物理块中的数据存入第三物理块中。
本实施例中的信息处理模块各单元间的关系参照图3对应的实施例,此处不再赘述。
本发明可以应用在基于闪存的固态存储系统或设备中,应用于计算机存储、服务器存储、移动设备存储、多媒体存储等领域。
在本申请所提供目标区域可以为默认的区域,也可以为用户预设的区域。并且,所述的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (6)

1.一种基于红黑树的物理块信息处理方法,其特征在于,包括:
遍历闪存中物理块的擦除次数;
根据当前物理块的擦除次数将所述当前物理块的信息添加到物理块红黑树中;
根据所述物理块红黑树确定擦除次数满足均衡磨损条件的目标物理块;
在所述根据当前物理块的擦除次数将所述当前物理块的信息添加到物理块红黑树中之前,所述方法还包括:
判断所述当前物理块是否为有效数据块;
若是,则触发根据当前物理块的擦除次数将所述当前物理块的信息添加到物理块红黑树中的步骤;
所述物理块红黑树为数据块红黑树;
根据所述数据块红黑树确定擦除次数满足均衡磨损条件的目标物理块包括:
查找所述数据块红黑树的最右节点;
确定所述数据块红黑树的最右节点对应的第一物理块的信息,所述第一物理块的擦除次数为第一擦除次数;
查找所述数据块红黑树的最左节点;
确定所述数据块红黑树的最左节点对应的第二物理块的信息,所述第二物理块的擦除次数为第二擦除次数;
判断所述第二擦除次数与所述第一擦除次数的差值是否超过擦除间隔阈值;
若是,则确定所述第二物理块为擦除次数满足均衡磨损条件的目标物理块;
若否,则判定不存在擦除次数满足均衡磨损条件的目标物理块。
2.根据权利要求1所述的红黑树的物理块信息处理方法,其特征在于,在所述判断所述当前物理块是否为有效数据块之前,所述方法还包括:
判断所述当前物理块是否为数据块;
若是,则触发判断所述当前物理块是否为有效数据块的步骤;
若否,则根据所述当前物理块的擦除次数将所述当前物理块的信息添加到空闲块红黑树中。
3.根据权利要求2所述的红黑树的物理块信息处理方法,其特征在于,在所述确定所述第二物理块为擦除次数满足均衡磨损条件的目标物理块之后,所述方法还包括:
判断所述第二物理块的写入顺序和最大写入顺序的差值是否超过写入间隔阈值;
若是,查找所述空闲块红黑树的最右节点;
确定所述空闲块红黑树的最右节点对应的第三物理块的信息;
将所述第二物理块中的数据写入所述第三物理块中。
4.一种信息处理模块,其特征在于,包括:
遍历单元,用于遍历闪存中物理块的擦除次数;
第一添加单元,用于根据当前物理块的擦除次数将所述当前物理块的信息添加到物理块红黑树中;
第一确定单元,用于根据所述物理块红黑树确定擦除次数满足均衡磨损条件的目标物理块;
所述信息处理模块还包括:
第一判断单元,用于判断所述当前物理块是否为有效数据块;
第一触发单元,用于当所述第一判断单元判定所述当前物理块为有效数据块时,触发所述第一添加单元;
所述物理块红黑树为数据块红黑树;
所述第一确定单元包括:
第一查找子单元,用于查找所述数据块红黑树的最右节点;
第一确定子单元,用于确定所述数据块红黑树的最右节点对应的第一物理块的信息,所述第一物理块的擦除次数为第一擦除次数;
第二查找子单元,用于查找所述数据块红黑树的最左节点;
第二确定子单元,用于确定所述数据块红黑树的最左节点对应的第二物理块的信息,所述第二物理块的擦除次数为第二擦除次数;
判断子单元,用于判断所述第二擦除次数与所述第一擦除次数的差值是否超过擦除间隔阈值;
第三确定子单元,用于当所述判断子单元判定所述第二擦除次数与所述第一擦除次数的差值超过擦除间隔阈值时,确定所述第二物理块为擦除次数满足均衡磨损条件的目标物理块;
判定子单元,用于当所述判断子单元判定所述第二擦除次数与所述第一擦除次数的差值不超过擦除间隔阈值时,判定不存在擦除次数满足均衡磨损条件的目标物理块。
5.根据权利要求4所述的信息处理模块,其特征在于,所述信息处理模块还包括:
第二判断单元,用于判断所述当前物理块是否为数据块;
第二触发单元,用于当所述第二判断单元判定所述当前物理块为数据块时,触发判断所述当前物理块是否为有效数据块的步骤;
第二添加单元,用于当所述第二判断单元判定所述当前物理块不是数据块时,根据所述当前物理块的擦除次数将所述当前物理块的信息添加到空闲块红黑树中。
6.根据权利要求5所述的信息处理模块,其特征在于,所述信息处理模块还包括:
第三判断单元,用于判断所述第二物理块的写入顺序和最大写入顺序的差值是否超过写入间隔阈值;
第一查找单元,用于当所述第三判断单元判定所述第二物理块的写入顺序和最大写入顺序的差值超过写入间隔阈值时,查找所述空闲块红黑树的最右节点;
第二确定单元,用于确定所述空闲块红黑树的最右节点对应的第三物理块的信息;
存储单元,用于将所述第二物理块中的数据写入所述第三物理块中。
CN201610803048.5A 2016-09-05 2016-09-05 一种基于红黑树的物理块信息处理方法及信息处理模块 Active CN106371769B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610803048.5A CN106371769B (zh) 2016-09-05 2016-09-05 一种基于红黑树的物理块信息处理方法及信息处理模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610803048.5A CN106371769B (zh) 2016-09-05 2016-09-05 一种基于红黑树的物理块信息处理方法及信息处理模块

Publications (2)

Publication Number Publication Date
CN106371769A CN106371769A (zh) 2017-02-01
CN106371769B true CN106371769B (zh) 2019-06-11

Family

ID=57900019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610803048.5A Active CN106371769B (zh) 2016-09-05 2016-09-05 一种基于红黑树的物理块信息处理方法及信息处理模块

Country Status (1)

Country Link
CN (1) CN106371769B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703670B (zh) * 2021-07-21 2023-08-25 苏州浪潮智能科技有限公司 一种磨损均衡控制方法、装置、设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572489A (zh) * 2013-10-23 2015-04-29 深圳市腾讯计算机系统有限公司 磨损均衡方法及装置
CN105740162A (zh) * 2015-12-31 2016-07-06 上海盈方微电子有限公司 应用于nand存储器的nftl数据存储系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150006846A1 (en) * 2013-06-28 2015-01-01 Saratoga Speed, Inc. Network system to distribute chunks across multiple physical nodes with disk support for object storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572489A (zh) * 2013-10-23 2015-04-29 深圳市腾讯计算机系统有限公司 磨损均衡方法及装置
CN105740162A (zh) * 2015-12-31 2016-07-06 上海盈方微电子有限公司 应用于nand存储器的nftl数据存储系统及方法

Also Published As

Publication number Publication date
CN106371769A (zh) 2017-02-01

Similar Documents

Publication Publication Date Title
CN104156380B (zh) 一种分布式存储器哈希索引方法及系统
CN105242871B (zh) 一种数据写入方法及装置
CN107122130B (zh) 一种数据重删方法及装置
CN109428913B (zh) 一种存储扩容方法及装置
CN108197285A (zh) 一种数据推荐方法以及装置
CN106406753B (zh) 一种数据存储方法及数据存储装置
CN109445713A (zh) 一种元数据卷的存储状态记录方法、系统及相关组件
CN103440207A (zh) 缓存方法及装置
CN106649349A (zh) 用于游戏应用的数据缓存方法、装置和系统
CN110109915A (zh) 用于管理哈希表的方法、设备和计算机程序产品
CN110888837B (zh) 对象存储小文件归并方法及装置
CN105260320B (zh) 用于flash存储器的数据处理方法和装置
CN106170757B (zh) 一种数据存储方法及装置
CN106407224A (zh) 一种键值存储系统中文件压实的方法和装置
CN104933051B (zh) 文件存储空间回收方法和装置
CN107463509A (zh) 缓存管理方法、缓存控制器以及计算机系统
CN106294211B (zh) 一种多路顺序流的检测方法及装置
CN108897859A (zh) 一种元数据检索方法、装置、设备及计算机可读存储介质
CN105159913A (zh) 一种待清理文件确定方法及装置
CN109471843A (zh) 一种元数据缓存方法、系统及相关装置
US11385900B2 (en) Accessing queue data
CN110795363A (zh) 一种存储介质的热页预测方法和页面调度方法
CN106371769B (zh) 一种基于红黑树的物理块信息处理方法及信息处理模块
CN113867627B (zh) 一种存储系统性能优化方法及系统
CN109814805A (zh) 存储系统中分条重组的方法及分条服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant