存储器的磨损次数平衡方法及装置与流程

文档序号:11063424阅读:364来源:国知局
存储器的磨损次数平衡方法及装置与制造工艺

本发明属于存储技术领域,尤其涉及存储器的磨损次数平衡方法及装置。



背景技术:

闪存(flash)是一种容量大、读写速度高、功耗小且成本低的非易失性存储器,其在断电后仍能保存数据,因此在存储领域得到了广泛应用。闪存内部的存储介质包含多个块(block),当有数据需要写入闪存的某个区域时,若该区域已经写有数据,则必须以块为单位将该区域的已有数据擦除后再写入新数据,每个块的可擦除次数有限,若擦除次数过于频繁,将会产生坏块,坏块的数量累积到一定程度就会导致闪存的稳定性下降,甚至无法被继续使用。通常,闪存中块的已擦除次数也被称为块的磨损次数。

在闪存的实际使用过程中,存储冷数据的块由于很少发生写入操作,因此磨损次数通常较少,而存储热数据的块会频繁发生写入操作,因此磨损次数通常较大,导致这两类块的磨损次数在闪存的使用过程中无法保持平衡,缩短了闪存的使用寿命。现有技术采用将数据从磨损次数小的块搬移到磨损次数大的空块中的方案,使得磨损次数小的块成为空块以供数据写入,由此来平衡块的磨损次数,然而,由于搬移到磨损次数大的空块中的数据有可能是热数据,这样反而会加大该块的磨损次数,使得闪存中块的磨损次数的失衡程度加剧,影响了闪存的稳定性及寿命。



技术实现要素:

有鉴于此,本发明实施例提供了存储器的磨损次数平衡方法及装置,以解决现有技术可能导致存储器中块的磨损次数的失衡程度加剧,影响存储器的稳 定性及寿命的问题。

第一方面,本发明实施例提供了一种存储器的磨损次数平衡方法,包括:

创建并维护存储器的块信息表,所述块信息表中记录了所述存储器的每个块实时的磨损次数;

当所述存储器执行数据写入操作时,在所述块信息表中为写入数据的块配置第一磨损信息,所述第一磨损信息为当前时刻所述块信息表中记录的所述磨损次数的最大值;

计算所述当前时刻的第一差值和第二差值,所述第一差值为所述存储器中所有空块的所述磨损次数的最大值与所述存储器中所有数据块的所述磨损次数的最小值的差值,所述第二差值为所述写入数据的块的所述第一磨损信息与第二磨损信息的差值,所述第二磨损信息为所述块信息表中已配置的所述第一磨损信息的最小值;

所述空块是指没有数据的可利用块,所述数据块是指已写有数据的块。

判断所述第一差值是否不小于预设的第一阈值且所述第二差值是否不小于预设的第二阈值;

若所述第一差值不小于所述预设的第一阈值且所述第二差值不小于所述预设的第二阈值,将第一块中的数据迁移至第二块中,所述第一块的所述第一磨损信息与所述第二磨损信息相等,所述第二块为所述存储器中所述磨损次数最大的空块。

第二方面,本发明实施例提供了一种存储器的磨损次数平衡装置,包括:

块信息表单元,用于创建并维护存储器的块信息表,所述块信息表中记录了所述存储器的每个块实时的磨损次数;

配置单元,用于当所述存储器执行数据写入操作时,在所述块信息表中为写入数据的块配置第一磨损信息,所述第一磨损信息为当前时刻所述块信息表中记录的所述磨损次数的最大值;

计算单元,用于计算所述当前时刻的第一差值和第二差值,所述第一差值 为所述存储器中所有空块的所述磨损次数的最大值与所述存储器中所有数据块的所述磨损次数的最小值的差值,所述第二差值为所述写入数据的块的所述第一磨损信息与第二磨损信息的差值,所述第二磨损信息为所述块信息表中已配置的所述第一磨损信息的最小值;

判断单元,用于判断所述第一差值是否不小于预设的第一阈值且所述第二差值是否不小于预设的第二阈值;

数据迁移单元,用于若所述第一差值不小于所述预设的第一阈值且所述第二差值不小于所述预设的第二阈值,将第一块中的数据迁移至第二块中,所述第一块的所述第一磨损信息与所述第二磨损信息相等,所述第二块为所述存储器中所述磨损次数最大的空块。

本发明实施例所提供的存储器的磨损次数平衡方法简单有效,并可以保证在磨损平衡的过程中,往磨损次数最大的空块里填充的是冷数据,使得磨损次数最大的块能够被真正冷却下来,逐渐达到存储器的磨损次数平衡,提升了存储器的稳定性,延长了存储器的使用寿命。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的存储器的磨损次数平衡方法的实现流程图;

图2是本发明另一实施例提供的存储器的磨损次数平衡方法的实现流程图;

图3是本发明另一实施例提供的存储器的磨损次数平衡方法的实现流程图;

图4是本发明实施例提供的存储器的磨损次数平衡装置的结构框图。

具体实施方式

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透切理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

图1示出了本发明实施例提供的存储器的磨损次数平衡方法的实现流程,详述如下:

在S101中,创建并维护存储器的块信息表,所述块信息表中记录了所述存储器的每个块实时的磨损次数。

所述存储器,包括但不限于随机存取存储器(RAM)、闪存等,在块信息表中,键名可以用于指示存储器中的每个块,例如块的块号信息,而对应的键值则包括了该块实时的磨损次数,即该块实时的已擦除次数。

在S102中,当所述存储器执行数据写入操作时,在所述块信息表中为写入数据的块配置第一磨损信息,所述第一磨损信息为当前时刻所述块信息表中记录的所述磨损次数的最大值。

在块信息表中,键名对应的键值除了包括块实时的磨损次数,还可以包括第一磨损信息,在存储器执行数据写入操作时,第一磨损信息被添加为写入数据的块对应的键值,其值为当前时刻块信息表中所记录的所有块的磨损次数的最大值。由于存储器会不断地执行读写操作,因此,每个块所被添加的第一磨损信息的值也可能会时刻发生变化。

此外,在本发明实施例中,在块信息表中为写入数据的块配置第一磨损信息之前,若已在块信息表中为该写入数据的块配置过第一磨损信息,则如图2所示,所述方法还包括:

S106,在所述块信息表中清除之前已为所述写入数据的块配置的所述第一磨损信息。

先将之前配置的第一磨损信息清除,再写入当前最新的第一磨损信息,以保证块信息表的更新,同时保证在每个时间点上,块信息表中每个块对应的第一磨损信息只有一个。

同时,如图3所示,S102中所述存储器执行数据写入操作可包括如下操作:

S301,检测预写入数据的块是否为空块。

S302,若所述预写入数据的块不为空块,将所述预写入数据的块擦除为空块。

S303,在确认所述预写入数据的块为空块后,将数据写入该块。

即,在每次向块写入数据之前,需要确保该块为空块(即未写有数据的块)才将数据写入,若该块为数据块(即写有数据的块),则需要将该块中的已有数据先擦除,再将当前需要写入的数据写入该块。

在S103中,计算所述当前时刻的第一差值和第二差值,所述第一差值为所述存储器中所有空块的所述磨损次数的最大值与所述存储器中所有数据块的所述磨损次数的最小值的差值,所述第二差值为所述写入数据的块的所述第一磨损信息与第二磨损信息的差值,所述第二磨损信息为所述块信息表中已配置的所述第一磨损信息的最小值。

其中,在第一差值的计算过程中,首先从块信息表中获取存储器中当前时刻所有空块实时的磨损次数中的最大值,以及从块信息表中获取存储器中当前时刻所有数据块实时的磨损次数中的最小值,再计算得到上述二者的差值。在第二差值的计算过程中,首先从块信息表中获取当前时刻写入数据的块的第一磨损信息,以及从块信息表中获取当前时刻已为不同的块所配置的第一磨损信息中的最小值,再计算得到上述二者的差值。

在S104中,判断所述第一差值是否不小于预设的第一阈值且所述第二差值是否不小于预设的第二阈值。

在S105中,若所述第一差值不小于所述预设的第一阈值且所述第二差值不小于所述预设的第二阈值,将第一块中的数据迁移至第二块中,所述第一块的所述第一磨损信息与所述第二磨损信息相等,所述第二块为所述存储器中所述磨损次数最大的空块。

在计算得到当前时刻的上述第一差值和第二差值之后,分别判断上述两个差值是否均大于或等于各自对应的预设阈值,其中,上述两个差值各自对应的预设阈值均为大于或等于1的整数。若上述两个差值均大于或等于各自对应的预设阈值,则对存储器进行磨损平衡处理。磨损平衡处理的具体方法为:将存储器中第一磨损信息与第二磨损信息相等的块中的数据,搬移至存储器中实时的磨损次数最大的空块中,这样一来,当前存储器中磨损次数最大的空块就会被冷数据填充,以使其真正冷却下来,从而减少存储器各个块磨损次数中的最大值与最小值之差,真正达到存储器的磨损次数平衡。

本发明实施例所提供的存储器的磨损次数平衡方法简单有效,并可以保证在磨损平衡的过程中,往磨损次数最大的空块里填充的是冷数据,使得磨损次数最大的块能够被真正冷却下来,逐渐达到存储器的磨损次数平衡,提升了存储器的稳定性,延长了存储器的使用寿命。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上文实施例所述的存储器的磨损次数平衡方法,图4示出了本发明实施例提供的存储器的磨损次数平衡装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分。

参照图4,该装置包括:

块信息表单元41,创建并维护存储器的块信息表,所述块信息表中记录了所述存储器的每个块实时的磨损次数;

配置单元42,当所述存储器执行数据写入操作时,在所述块信息表中为写 入数据的块配置第一磨损信息,所述第一磨损信息为当前时刻所述块信息表中记录的所述磨损次数的最大值;

计算单元43,计算所述当前时刻的第一差值和第二差值,所述第一差值为所述存储器中所有空块的所述磨损次数的最大值与所述存储器中所有数据块的所述磨损次数的最小值的差值,所述第二差值为所述写入数据的块的所述第一磨损信息与第二磨损信息的差值,所述第二磨损信息为所述块信息表中已配置的所述第一磨损信息的最小值;

判断单元44,判断所述第一差值是否不小于预设的第一阈值且所述第二差值是否不小于预设的第二阈值;

数据迁移单元45,若所述第一差值不小于所述预设的第一阈值且所述第二差值不小于所述预设的第二阈值,将第一块中的数据迁移至第二块中,所述第一块的所述第一磨损信息与所述第二磨损信息相等,所述第二块为所述存储器中所述磨损次数最大的空块。

可选地,所述装置还包括:

清除单元,在所述块信息表中为写入数据的块配置第一磨损信息之前,在所述块信息表中清除之前已为所述写入数据的块配置的所述第一磨损信息。

可选地,所述装置还包括:

检测单元,检测预写入数据的块是否为空块;

擦除单元,若所述预写入数据的块不为空块,将所述预写入数据的块擦除为空块;

写入单元,在确认所述预写入数据的块为空块后,将数据写入该块。

可选地,所述第一阈值和所述第二阈值均为大于或等于1的整数。

可选地,所述存储器包括闪存。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不 同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的 形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1