CN101533670B - 实现存储设备损耗均衡的方法及存储设备 - Google Patents
实现存储设备损耗均衡的方法及存储设备 Download PDFInfo
- Publication number
- CN101533670B CN101533670B CN2009100826449A CN200910082644A CN101533670B CN 101533670 B CN101533670 B CN 101533670B CN 2009100826449 A CN2009100826449 A CN 2009100826449A CN 200910082644 A CN200910082644 A CN 200910082644A CN 101533670 B CN101533670 B CN 101533670B
- Authority
- CN
- China
- Prior art keywords
- storage unit
- memory cell
- physical memory
- logic storage
- data
- 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
- Read Only Memory (AREA)
Abstract
本发明实施例公开了一种存储设备中损耗均衡的方法,所述存储设备中存储有逻辑存储单元号与物理存储单元号的对应关系,该方法为:读取对第一物理存储单元的数据擦写操作次数的统计结果,第一物理存储单元为所述对应关系中第一逻辑存储单元号对应的第一物理存储单元号所标识的物理存储单元;在确定所述统计结果超过预先设定的阈值时,将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号,对所述第二物理存储单元号所标识的第二物理存储单元的数据擦写操作的次数小于所述阈值。采用本发明,能够动态调整逻辑存储单元号与物理存储单元号的对应关系,达到存储设备内损耗均衡的目的。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种实现存储设备损耗均衡的方法及存储设备。
背景技术
一般来说,存储设备的使用寿命是由存储单元的最大可擦写次数决定的,随着存储单元的擦写次数的增加,该存储单元最终变为只读状态,从而成为坏块。为了延长存储设备的使用寿命,行之有效的方法是在尽量小的影响性能的前提下,均衡使用存储设备中的所有存储单元,而不让某个或某几个存储单元被过度使用,这种均衡使用存储设备中的存储单元的技术成为损耗均衡(wear leveling)技术。
下面以目前常见的两种非易失性闪存NOR FLASH和NAND FLASH为例说明现有技术中实现损耗均衡的方法:
NAND FLASH可以达到高存储密度,并且写入和擦除的速度也很快,在大容量数据存储中存在优势,应用广泛。NAND FLASH中的基本存储单元为扇区,扇区也是进行擦写操作的基本单位。扇区的大小为528个字节,其中512字节用于存储数据,16字节用于存储坏块标识和错误校验码(ECC)。
为了达到损耗均衡的目的,在向NAND FLASH中某个逻辑扇区写入数据后,记录该逻辑扇区已写数据不可用,当需要对该逻辑扇区中的数据进行更新时,不是将该扇区擦除后重新写入更新后的数据,而是将更新后的数据写入其他可用即未保存数据的逻辑扇区。按照该方法,总是将新的数据写入未写入数据的新扇区,直到满足一定的条件时,比如,当前NAND FLASH中不存在可用扇区或可用扇区的数量较少时,才将已保存数据即记录为不可用的扇区统一 进行擦除,以保证NAND FLASH中存储空间的可用性。
可见,通过上述损耗均衡的方法,NAND FLASH中的扇区能够得到均衡使用,一般不会出现某个或某几个扇区被过度使用的情况。
NOR FLASH带有随机接入存储器(RAM)接口,有足够的地址引脚来寻址,可以很容易地存取NOR FLASH内部的每一个字节,应用程序可以直接在NOR FLASH内运行,不必再把代码读到系统RAM中,并且传输效率很高,在1~4MB的小容量时具有很高的成本效益。NOR FLASH中每个物理扇区的大小为256个字节,将NOR FLASH的整个存储空间进行逻辑扇区的划分,划分后每个逻辑扇区的大小为256+4个字节,其中,前256个字节用于存储数据,后4个字节用来存放ECC码和扇区号。
同样的,为了达到损耗均衡的目的,在向NOR FLASH某个逻辑扇区写入数据后,记录该逻辑扇区已写数据不可用,当需要对该逻辑扇区中的数据进行更新时,不是将该逻辑扇区擦除后重新写入更新后的数据,而是将更新后的数据写入其他可用即未保存数据的逻辑扇区。按照该方法,总是将新的数据写入未写入数据的新扇区,直到满足一定的条件时,才将已保存数据即记录为不可用的扇区统一进行擦除。
可见,通过上述损耗均衡的方法,NOR FLASH中的扇区能够得到均衡使用。
向扇区中写入数据是指将该扇区中的某些数据位设置成逻辑0;对扇区进行擦除是指将该扇区中的每一数据位都设置成逻辑1。一般在向扇区写入数据前需要将该扇区进行擦除。
在实现本发明的过程中,发明人发现现有技术中存在如下技术问题:
现有的损耗均衡的实现方案中,为了使得存储单元不被过度使用,在一定的时间内存储设备中总有一些存储单元不可用,使得对存储空间的利用受到了限制,并且实现复杂度也较高。
发明内容
本发明实施例提供一种存储设备中损耗均衡的方法及存储设备,用于以较低的复杂度解决现有技术中存储设备中的存储单元被过度使用的问题。
本发明实施例提供一种存储设备中损耗均衡的方法,所述存储设备中存储有逻辑存储单元号与物理存储单元号的对应关系,该方法包括:
在内存中统计对所述存储设备中的全部或部分物理存储单元的数据擦写操作的次数;在满足预先设定的数据擦写操作次数写入条件时,从在内存中的统计结果和保存在所述存储设备中统计结果记录区的物理存储单元的数据擦写操作次数中,选取数值最大的N个物理存储单元的数据擦写操作次数;所述N为大于0的整数;利用选取到的物理存储单元的数据擦写操作次数更新所述统计结果记录区;从所述统计结果记录区中读取对第一物理存储单元的数据擦写操作次数的统计结果,第一物理存储单元为所述对应关系中第一逻辑存储单元号对应的第一物理存储单元号所标识的物理存储单元;
在确定所述统计结果超过预先设定的阈值时,将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号,对所述第二物理存储单元号所标识的第二物理存储单元的数据擦写操作的次数小于所述预先设定的阈值。
本发明实施例提供一种存储设备中损耗均衡的装置,该装置包括:
第一存储单元,用于存储逻辑存储单元号与物理存储单元号的对应关系;
统计更新单元,用于在内存中统计对所述存储设备中的全部或部分物理存储单元的数据擦写操作的次数;在满足预先设定的数据擦写操作次数写入条件时,从在内存中的统计结果和保存在所述存储设备中统计结果记录区的物理存储单元的数据擦写操作次数中,选取数值最大的N个物理存储单元的数据擦写操作次数;所述N为大于0的整数;利用选取到的物理存储单元的数据擦写操作次数更新所述统计结果记录区;
读取单元,用于从所述统计结果记录区中读取对第一物理存储单元的数据 擦写操作次数的统计结果,第一物理存储单元为所述对应关系中第一逻辑存储单元号对应的第一物理存储单元号所标识的物理存储单元;
更新单元,用于在确定所述统计结果超过预先设定的阈值时,将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号,对所述第二物理存储单元号所标识的第二物理存储单元的数据擦写操作的次数小于所述预先设定的阈值。
本发明中,在存储设备中存储有逻辑存储单元号与物理存储单元号的对应关系,通过在第一物理存储单元的数据擦写操作次数超过预先设定的阈值时,将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号,第二物理存储单元的数据擦写操作次数小于预先设定的阈值,通过动态调整存储设备中逻辑存储单元号与物理存储单元号的对应关系,达到了避免第一物理存储单元被过度使用的问题。
附图说明
图1为本发明实施例提供的方法流程示意图;
图2为本发明实施例中存储单元擦写次数的统计流程示意图;
图3为本发明实施例提供的存储设备结构示意图。
具体实施方式
为了避免存储设备中的某个存储单元被过度使用,从而达到损耗均衡的目的,本发明实施例提供一种存储设备中损耗均衡的方法,本方法中,在存储设备中存储有逻辑存储单元号与物理存储单元号的对应关系,例如,第一逻辑存储单元号对应第一物理存储单元号,在第一物理存储单元的数据擦写操作次数超过预先设定的阈值时,将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号,第二物理存储单元的数据擦写操作次数小于预先设定的阈值。
参见图1,本发明实施例提供的存储设备中损耗均衡的方法,具体包括以下步骤:
步骤10:读取对第一物理存储单元的数据擦写操作次数的统计结果;
这里,第一物理存储单元为存储设备保存的逻辑存储单元号与物理存储单元号的对应关系中,第一逻辑存储单元号对应的第一物理存储单元号所标识的物理存储单元;
步骤11:确定读取到的统计结果是否超过预先设定的阈值;
步骤12:在统计结果超过预先设定的阈值时,将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号;
这里,对第二物理存储单元号所标识的第二物理存储单元的数据擦写操作的次数小于预先设定的阈值。
在将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之前,第二物理存储单元号对应第二逻辑存储单元号,在将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号的同时或之后,为了避免第二逻辑存储单元号不可用,还可以将第二逻辑存储单元号与第一物理存储单元号相对应,即将第一物理存储单元号与第二物理存储单元号互换。
较佳的,步骤12中,为了确保写入存储设备的数据不会因为逻辑存储单元号与物理存储单元号的对应关系的调整而丢失,在确定统计结果超过预定的阈值之后、并且将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之前,将第一物理存储单元中存储的数据写入第二物理存储单元。
步骤12中,第二物理存储单元可以按照如下方式确定:在确定统计结果超过预先设定的阈值之后、并且将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之前,在存储设备保存的逻辑存储单元号与物理存储单元号的对应关系中查找满足设定条件的第二逻辑存储单元号,将第二逻辑存储单元号对应的物理存储单元号确定为第二物理存储单元号,对第二逻辑存储单元号所标识的第二逻辑存储单元的数据擦写操作的次数小于预先设定的阈值。
这里的设定条件可以为第一条件或第二条件,具体如下:
第一条件为:第二逻辑存储单元号所标识的逻辑存储单元是未被使用过的逻辑存储单元;
第二条件为:第二逻辑存储单元号所标识的逻辑存储单元被擦写的次数不超过设定门限值,该门限值小于所述预先设定的阈值。
当然,设定条件并不局限于以上两种,可以根据需要进行设定。
上述从逻辑存储单元号与物理存储单元号的对应关系中查找满足第一条件的第二逻辑存储单元号的具体实现方式可以为:对于存储设备保存的逻辑存 储单元号与物理存储单元号的对应关系中的各逻辑存储单元号,根据预先设置在存储设备中的逻辑存储单元号与用于表示该逻辑存储单元号所标识的逻辑存储单元是否被使用过的使用标识的对应关系,确定该逻辑存储单元号对应的使用标识,若该使用标识为未被使用过,则记录该逻辑存储单元号;然后,从记录的逻辑存储单元号中选取一个逻辑存储单元号作为第二逻辑存储单元号。
同样的,从逻辑存储单元号与物理存储单元号的对应关系中查找满足第二条件的第二逻辑存储单元号的具体实现方式可以为:对于存储设备保存的逻辑存储单元号与物理存储单元号的对应关系中的各逻辑存储单元号,根据预先建立的逻辑存储单元号与擦写次数的对应关系,确定该逻辑存储单元号对应的擦写次数,若该擦写次数未超过设定门限值,则记录该逻辑存储单元号;然后,从记录的逻辑存储单元号中选取一个逻辑存储单元号作为第二逻辑存储单元号。
上述第一条件和第二条件还可以结合起来使用,例如,首先查找满足第一条件的第二逻辑存储单元号,若查找到,则结束;否则,继续查找满足第二条件的第二逻辑存储单元号,以此类推,这里不再穷举。
本发明中,需要对存储设备中物理存储单元的数据擦写次数进行统计,具体统计方法可以如下:
在内存中统计对存储设备中的全部或部分物理存储单元的数据擦写操作的次数;在满足预先设定的数据擦写操作次数写入条件时,从在内存中的统计结果和保存在存储设备中统计结果记录区的物理存储单元的数据擦写操作次数中,选取数值最大的N个物理存储单元的数据擦写操作次数,其中,N为大于0的整数;利用选取到的物理存储单元的数据擦写操作次数更新存储设备的统计结果记录区,即,将选取到的物理存储单元的数据擦写操作次数覆盖统计结果记录区中已有的记录。那么,步骤10中,是从存储设备的统计结果记录区中读取对第一物理存储单元的数据擦写操作次数的统计结果。
上述统计方法的具体实现可以采用如下算法:
在内存中开辟一个整数型数组,作为统计结果的存储区域,该数组中每个元素记录了一个逻辑存储单元号和该逻辑存储单元的数据擦写次数。该数组共有63个元素,也就是最多可记录63个逻辑存储单元的数据擦写次数。该数组划分为两个区,一个是固定区,另一个是浮动区,浮动区中元素的记录可以被替换,固定区中元素的记录不能被替换。浮动区中各元素记录的数据擦写次数为一次,固定区中各元素记录的数据擦写次数为两次以上。当然数组的大小可以根据实际需要随意指定。同时,在存储设备中划分一块统计结果记录区,该统计结果记录区用于保存从内存写入的统计结果数据。如图2所示,执行如下步骤来统计逻辑存储单元的擦写次数:
步骤20:逻辑存储单元A被执行数据擦除操作;
步骤21:读取数组中的第i个元素,该元素记录了逻辑存储单元B和逻辑存储单元B的数据擦写次数C;i的初始值为1;
步骤22:判断i是否等于63,即判断是否遍历到数组的最后一个元素,若是,则到步骤29;否则,到步骤23;
步骤23:判断A是否等于B,即判断A的记录是否已保存在数组中,若是,则到步骤24;否则,i加1,到步骤21;
步骤24:更新当前元素中记录的数据擦写次数C=C+1;
步骤25:查找存储设备的统计结果记录区中是否保存有逻辑存储单元B的数据擦写次数,若是,则将查找到的逻辑存储单元B的数据擦写次数加1;
步骤26:将当前元素划分为固定区的元素;
步骤27:固定区的元素数加1,浮动区的元素数减1;固定区和浮动区的元素数初始值为0;
步骤28:判断数组的全部元素是否均属于固定区,若是,则到步骤32,否则,到步骤30;
步骤29:将逻辑存储单元A的数据擦写次数1插入数组的当前可插入元素位置X,X的初始值为1,每插入一条记录后X加1,当X等于63时,X 会初始化为当前可插入位置的最小地址X=Y+1,其中Y为当前数组固定区的元素个数,X总是位于数组的浮动区;
步骤30:统计数组中保存的所有逻辑存储单元的数据擦写次数之和;
步骤31:判断统计的数据擦写次数之和是否超过设定的门限值,若是,则到步骤32,否则,到步骤33;
步骤32:更新存储设备中的统计结果记录区,具体的,首先按照从大到小的顺序,将数组中保存的逻辑存储单元的数据擦写次数和保存在存储设备中统计结果记录区的逻辑存储单元的数据擦写操作次数进行排序,从排序结果中选取前N个逻辑存储单元的数据擦写操作次数,并将选取的N个逻辑存储单元的数据擦写操作次数写入存储设备的统计结果记录区,统计结果记录区原有的记录被覆盖;
步骤33:本流程结束。
可见,上述数据擦写操作次数写入条件的具体内容可以是如下两种:第一种,为步骤28中提及的数组的全部元素均属于固定区,即数组中保存的逻辑存储单元的数据擦写次数均在两次以上;第二种,为步骤31中提及的统计的数据擦写次数之和超过设定的门限值。
在步骤24后,还可以执行步骤12中的更新操作,即:判断步骤24中更新后的逻辑存储单元的数据擦写次数是否超过预先设定的阈值,若是,则将对应关系(存储设备保存的逻辑存储单元号与物理存储单元号的对应关系)中该逻辑存储单元的逻辑存储单元号对应的物理存储单元号更新为数据擦写次数较小的其他物理存储单元号,并将该逻辑存储单元的记录在数组中删除,同时将固定区的元素数减1,浮动区的元素数加1。
采用上述方法,由于在进行数据擦写操作时,实际是对逻辑存储单元对应的物理存储单元进行擦写操作,因此,对存储设备中逻辑存储单元的数据擦写操作的次数进行统计,也就是对该逻辑存储单元对应的物理存储单元的数据擦写操作的次数进行统计。对存储设备中逻辑存储单元的数据擦写操作的次数进 行统计时,在存储设备中仅保存对少数几个(N个)逻辑存储单元的数据擦写操作次数的统计结果,这几个逻辑存储单元的擦写次数最多,能够合理的节省存储设备的存储资源,因为通常多次反复进行擦写操作的存储单元只集中在几个逻辑存储单元上,也就只需要对这几个逻辑存储单元执行步骤12中的更新操作,因此在存储设备中仅记录少数几个逻辑存储单元的数据擦写操作次数的统计结果是合理的。同时,在内存中统计逻辑存储单元的数据擦写次数后,在满足预先设定的数据擦写操作次数写入条件时,才执行后续更新存储设备中统计结果的操作,而不是实时进行更新,如果在两次更新操作之间出现断电情况,那么仅会丢失第一次更新后的统计结果,影响不大。
较佳的,步骤12中,为了确保数据不被写入坏块,需要定时判断存储设备中的物理存储单元是否为坏块,若是,则更新保存的逻辑存储单元号与物理存储单元号的对应关系,例如,判断物理存储单元号X所标识的物理存储单元X为坏块后,将该对应关系中的物理存储单元号X更新为物理存储单元号Y,物理存储单元号Y所标识的物理存储单元Y不是坏块,并且对物理存储单元Y的数据擦写操作的次数小于所述预先设定的阈值。判定是否为坏块的一个时机可以是,在步骤12中将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之后,将第一逻辑存储单元号对应的第二物理存储单元号更新为第三物理存储单元号,对第三物理存储单元号所标识的第三物理存储单元的数据擦写操作的次数小于所述预先设定的阈值,并且,第三物理存储单元并非坏块。在将物理存储单元号X更新为物理存储单元号Y之前,为了防止数据丢失,还可以将物理存储单元X中存储的数据写入到物理存储单元Y中。
判断某个物理存储单元是否为坏块的方法可以有以下两种:第一种,向物理存储单元写入数据,然后从该物理存储单元读出数据,若读出的数据一致,则说明该物理存储单元并非坏块,若不一致,则可判定该物理存储单元为坏块。第二种,擦除物理存储单元中的数据,然后从该物理存储单元读出数据,若读 出的数据的比特位全部为1,则说明该物理存储单元并非坏块,否则,可判定该物理存储单元为坏块。
在将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之后,对存储设备中的存储单元进行数据擦写操作的过程如下:
接收到携带第一逻辑存储单元号的数据擦写指令后,根据保存的逻辑存储单元号与物理存储单元号的对应关系,确定第一逻辑存储单元号对应第二物理存储单元号,并对第二物理存储单元进行数据擦写操作。
本发明中的存储设备可以是NORFLASH、NANDFLASH等非易失性闪存设备,还可以是磁盘等存储设备。
下面以NORFLASH为例进行说明:
NORFLASH中按照页的大小划分为若干个基本存储单元,每页256个字节,将该基本存储单元称为物理扇区,即物理扇区是NORFLASH的物理存储单元;将NORFLASH的磁盘扇区称为逻辑扇区,即逻辑扇区是NORFLASH的逻辑存储单元。
NORFLASH分为上层文件管理层、损耗均衡处理(FTL)层和驱动层。FTL层独立于驱动层之上,为上层文件管理层提供以逻辑地址为访问单位的对Flash进行数据读、写、擦除等相关指令函数。FTL层主要实现的功能有:逻辑地址到物理地址的转换、损耗均衡的页交换处理、以及坏块管理等。逻辑地址到物理地址的转换也就是逻辑扇区到物理扇区的转换。
NORFLASH的物理层上的存储结构可以分为信息区、页访问表(PageAccess Table,PAT)区和数据区,如下表所示:
信息区 | PAT区 | 数据区 |
其中,数据区用来存储用户写入的文件数据;
PAT区用来保存逻辑扇区与物理扇区的对应关系,如下表所示:
逻辑扇区号 | 物理扇区号 |
0001 | 0001 |
0002 | 0002 |
0003 | 0003 |
0004 | 0004 |
0005 | 0005 |
0006 | 0006 |
0007 | 0007 |
0008 | 0008 |
......。 | ...... |
信息区用来记录PAT区和数据区的起始地址和大小。由于PAT区的地址是固定的,在NORFLASH中存储PAT时,可以利用相对PAT起始地址的偏移量来表征逻辑扇区号,这样可以节省一半的空间,访问操作也会节省一半。
对NORFLASH进行损耗均衡处理的一个实例如下:
步骤S01:FTL层接收到上层文件管理层发来的携带逻辑地址a的数据写指令,确定逻辑地址a对应的逻辑扇区号为0001,逻辑扇区号等于逻辑地址除以物理扇区大小256的商;
步骤S02:FTL层通过查找PAT区中逻辑扇区号与物理扇区号的对应关系,确定逻辑扇区号0001对应的物理扇区号为0001;
步骤S03:FTL层将携带物理扇区号0001的数据写指令发送给驱动层;
步骤S04:驱动层确定物理扇区号0001对应的物理地址,物理地址等于物理扇区号乘以物理扇区大小256的结果,加上逻辑地址除以物理扇区大小256的余数;
步骤S05:驱动层向确定的物理地址对应的物理扇区写入数据;
步骤S06:在为定时读取擦写次数而设置的定时器超时时,读取物理扇区号0001所标识的物理扇区的数据擦写次数为4.53万次,超过了设定的阈值4.5万次,查找PAT表中未被使用过的物理扇区,查找结果为逻辑扇区号0008对应的物理扇区号0008,将物理扇区号0001与物理扇区号0008互换,此时,逻 辑扇区号0001对应物理扇区号0008,逻辑扇区号0008对应物理扇区号0001;如下表所示:
逻辑扇区号 | 物理扇区号 |
0001 | 0008 |
0002 | 0002 |
0003 | 0003 |
0004 | 0004 |
0005 | 0005 |
0006 | 0006 |
0007 | 0007 |
0008 | 0001 |
...... | ...... |
步骤S07:FTL层接收到上层文件管理层发来的携带逻辑地址a的数据写指令,确定逻辑地址a对应的逻辑扇区号为0001;
步骤S08:FTL层通过查找PAT区中逻辑扇区号与物理扇区号的对应关系,确定逻辑扇区号0001对应的物理扇区号为0008;
步骤S03:FTL层将携带物理扇区号0008的数据写指令发送给驱动层;
步骤S04:驱动层确定物理扇区号0008对应的物理地址,并向确定的物理地址对应的物理扇区写入数据。
在步骤S06中,除了定时读取物理扇区的数据擦写次数外,还可以在对该物理扇区进行数据擦除时读取该物理扇区的数据擦写次数,并判断读取到的数据擦写次数是否超过预先设定的阈值。
参见图3,本发明实施例还提供一种存储设备,该存储设备包括:
第一存储单元30,用于存储逻辑存储单元号与物理存储单元号的对应关系;
读取单元31,用于读取对第一物理存储单元的数据擦写操作次数的统计结果,第一物理存储单元为所述对应关系中第一逻辑存储单元号对应的第一物理存储单元号所标识的物理存储单元;
更新单元32,用于在确定所述统计结果超过预先设定的阈值时,将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号,对所述第二物理存储单元号所标识的第二物理存储单元的数据擦写操作的次数小于所述预先设定的阈值。
该存储设备还包括:
数据交换单元33,用于在所述更新单元将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之前,将第一物理存储单元中存储的数据写入第二物理存储单元。
该存储设备还包括:
查找单元34,用于在所述更新单元将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之前,从所述对应关系中查找第二逻辑存储单元号,将第二逻辑存储单元号对应的物理存储单元号作为第二物理存储单元号发送给所述更新单元;对所述第二逻辑存储单元号所标识的逻辑存储单元的数据擦写次数小于所述预先设定的阈值。
所述查找单元34包括:
记录单元,用于对于所述对应关系中的各逻辑存储单元号,根据预先设置在存储设备中的逻辑存储单元号与用于表示该逻辑存储单元号所标识的逻辑存储单元是否被使用过的使用标识的对应关系,确定该逻辑存储单元号对应的使用标识,若该使用标识为未被使用过,则记录该逻辑存储单元号;
选取单元,用于从所述记录单元中选取一个逻辑存储单元号作为第二逻辑存储单元号发送给所述更新单元。
该存储设备还包括:
第二存储单元35,用于存储所述存储设备中部分或全部物理存储单元的数据擦写的次数信息;
所述读取单元31用于:
从所述第二存储单元中读取对第一物理存储单元的数据擦写操作次数的 统计结果。
该存储设备还包括:
坏块管理单元36,用于判断第二逻辑存储单元是否为坏块,若是,则将第一逻辑存储单元号对应的第二物理存储单元号更新为第三物理存储单元号,对所述第三物理存储单元号所标识的第三物理存储单元的数据擦写操作的次数小于所述预先设定的阈值。
该存储设备还包括:
文件系统单元37,用于接收到携带第一逻辑存储单元号的数据擦写指令后,根据所述对应关系,确定第一逻辑存储单元号对应第二物理存储单元号,并对第二物理存储单元进行数据擦写操作。
综上,本发明的有益效果包括:
本发明实施例提供的方案中,在存储设备中存储有逻辑存储单元号与物理存储单元号的对应关系,通过在第一物理存储单元的数据擦写操作次数超过预先设定的阈值时,将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号,第二物理存储单元的数据擦写操作次数小于第一物理存储单元,能够动态调整存储设备中逻辑存储单元号与物理存储单元号的对应关系,以避免了存储设备中的某个存储单元被过度使用,从而达到了损耗均衡的目的。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种存储设备中损耗均衡的方法,其特征在于,所述存储设备中存储有逻辑存储单元号与物理存储单元号的对应关系,该方法包括:
在内存中统计对所述存储设备中的全部或部分物理存储单元的数据擦写操作的次数;在满足预先设定的数据擦写操作次数写入条件时,从在内存中的统计结果和保存在所述存储设备中统计结果记录区的物理存储单元的数据擦写操作次数中,选取数值最大的N个物理存储单元的数据擦写操作次数;所述N为大于0的整数;利用选取到的物理存储单元的数据擦写操作次数更新所述统计结果记录区;从所述统计结果记录区中读取对第一物理存储单元的数据擦写操作次数的统计结果,第一物理存储单元为所述对应关系中第一逻辑存储单元号对应的第一物理存储单元号所标识的物理存储单元;
在确定所述统计结果超过预先设定的阈值时,将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号,对所述第二物理存储单元号所标识的第二物理存储单元的数据擦写操作的次数小于所述预先设定的阈值。
2.如权利要求1所述的方法,其特征在于,在确定所述统计结果超过预定的阈值之后、并且将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之前,该方法进一步包括:
将第一物理存储单元中存储的数据写入第二物理存储单元。
3.如权利要求1所述的方法,其特征在于,在确定所述统计结果超过预先设定的阈值之后、并且将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之前,该方法进一步包括:
从所述对应关系中查找第二逻辑存储单元号,将第二逻辑存储单元号对应的物理存储单元号确定为第二物理存储单元号;对所述第二逻辑存储单元号所标识的逻辑存储单元的数据擦写操作的次数小于所述预先设定的阈值。
4.如权利要求3所述的方法,其特征在于,所述从所述对应关系中查找第二逻辑存储单元号包括:
对于所述对应关系中的各逻辑存储单元号,根据预先设置在所述存储设备中的逻辑存储单元号与用于表示该逻辑存储单元号所标识的逻辑存储单元是否被使用过的使用标识的对应关系,确定该逻辑存储单元号对应的使用标识,若该使用标识为未被使用过,则记录该逻辑存储单元号;
从记录的逻辑存储单元号中选取一个作为第二逻辑存储单元号。
5.如权利要求1所述的方法,其特征在于,在将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之后,该方法进一步包括:
判断第二物理存储单元是否为坏块,若是,则将第一逻辑存储单元号对应的第二物理存储单元号更新为第三物理存储单元号,对第三物理存储单元号所标识的第三物理存储单元的数据擦写操作的次数小于所述预先设定的阈值。
6.如权利要求1-4中任一所述的方法,其特征在于,在将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之后,该方法进一步包括:
接收到携带第一逻辑存储单元号的数据擦写指令后,根据所述对应关系,确定第一逻辑存储单元号对应第二物理存储单元号,并对第二物理存储单元进行数据擦写操作。
7.一种存储设备中损耗均衡的装置,其特征在于,该装置包括:
第一存储单元,用于存储逻辑存储单元号与物理存储单元号的对应关系;
统计更新单元,用于在内存中统计对所述存储设备中的全部或部分物理存储单元的数据擦写操作的次数;在满足预先设定的数据擦写操作次数写入条件时,从在内存中的统计结果和保存在所述存储设备中统计结果记录区的物理存储单元的数据擦写操作次数中,选取数值最大的N个物理存储单元的数据擦写操作次数;所述N为大于0的整数;利用选取到的物理存储单元的数据擦写操作次数更新所述统计结果记录区;
读取单元,用于从所述统计结果记录区中读取对第一物理存储单元的数据擦写操作次数的统计结果,第一物理存储单元为所述对应关系中第一逻辑存储单元号对应的第一物理存储单元号所标识的物理存储单元;
更新单元,用于在确定所述统计结果超过预先设定的阈值时,将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号,对所述第二物理存储单元号所标识的第二物理存储单元的数据擦写操作的次数小于所述预先设定的阈值。
8.如权利要求7所述的装置,其特征在于,该装置还包括:
数据交换单元,用于在所述更新单元将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之前,将第一物理存储单元中存储的数据写入第二物理存储单元。
9.如权利要求7所述的装置,其特征在于,该装置还包括:
查找单元,用于在所述更新单元将第一逻辑存储单元号对应的第一物理存储单元号更新为第二物理存储单元号之前,从所述对应关系中查找第二逻辑存储单元号,将第二逻辑存储单元号对应的物理存储单元号作为第二物理存储单元号发送给所述更新单元;对所述第二逻辑存储单元号所标识的逻辑存储单元的数据擦写次数小于所述阈值。
10.如权利要求9所述的装置,其特征在于,所述查找单元包括:
记录单元,用于对于所述对应关系中的各逻辑存储单元号,根据预先设置在所述存储设备中的逻辑存储单元号与用于表示该逻辑存储单元号所标识的逻辑存储单元是否被使用过的使用标识的对应关系,确定该逻辑存储单元号对应的使用标识,若该使用标识为未被使用过,则记录该逻辑存储单元号;
选取单元,用于从所述记录单元中选取一个逻辑存储单元号作为第二逻辑存储单元号发送给所述更新单元。
11.如权利要7所述的装置,其特征在于,该装置还包括:
坏块管理单元,用于判断第二物理存储单元是否为坏块,若是,则将第一逻辑存储单元号对应的第二物理存储单元号更新为第三物理存储单元号,对第三物理存储单元号所标识的第三物理存储单元的数据擦写操作的次数小于所述预先设定的阈值。
12.如权利要求7-10中任一所述的装置,其特征在于,该装置还包括:
文件系统单元,用于接收到携带第一逻辑存储单元号的数据擦写指令后,根据所述对应关系,确定第一逻辑存储单元号对应第二物理存储单元号,并对第二物理存储单元进行数据擦写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100826449A CN101533670B (zh) | 2009-04-23 | 2009-04-23 | 实现存储设备损耗均衡的方法及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100826449A CN101533670B (zh) | 2009-04-23 | 2009-04-23 | 实现存储设备损耗均衡的方法及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101533670A CN101533670A (zh) | 2009-09-16 |
CN101533670B true CN101533670B (zh) | 2012-05-02 |
Family
ID=41104209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100826449A Expired - Fee Related CN101533670B (zh) | 2009-04-23 | 2009-04-23 | 实现存储设备损耗均衡的方法及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101533670B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495281B2 (en) * | 2009-12-04 | 2013-07-23 | International Business Machines Corporation | Intra-block memory wear leveling |
KR101083642B1 (ko) * | 2010-07-07 | 2011-11-16 | 주식회사 하이닉스반도체 | 비휘발성 메모리장치 및 이의 동작방법 |
CN102169462B (zh) * | 2011-04-27 | 2014-03-05 | 中国科学院光电技术研究所 | 基于NAND Flash的数据记录方法与记录控制器 |
CN102915764A (zh) * | 2012-09-04 | 2013-02-06 | 邹粤林 | 提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器 |
CN103064792A (zh) * | 2012-12-26 | 2013-04-24 | 北京创毅讯联科技股份有限公司 | 数据写入方法及装置 |
CN103077096A (zh) * | 2012-12-31 | 2013-05-01 | 记忆科技(深圳)有限公司 | 数据纠错系统、固态硬盘及数据纠错方法 |
KR20150062039A (ko) * | 2013-11-28 | 2015-06-05 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 동작 방법 |
CN105159602B (zh) * | 2015-08-03 | 2019-04-09 | 北京联想核芯科技有限公司 | 数据处理方法及存储设备 |
CN105141891B (zh) * | 2015-08-04 | 2019-04-30 | 浙江宇视科技有限公司 | 一种警前录像缓存方法和装置 |
CN105224254B (zh) * | 2015-09-29 | 2019-01-22 | 北京联想核芯科技有限公司 | 一种数据处理方法及电子设备 |
CN105260320B (zh) * | 2015-10-12 | 2020-06-16 | 珠海格力电器股份有限公司 | 用于flash存储器的数据处理方法和装置 |
CN108536611B (zh) * | 2017-03-03 | 2022-05-13 | 西部数据技术公司 | 用于损耗均衡的系统和方法 |
CN107145450B (zh) * | 2017-03-24 | 2020-12-08 | 深圳市江波龙电子股份有限公司 | 视频监控数据存储方法和装置 |
CN107291405B (zh) * | 2017-08-17 | 2020-05-26 | 北京中电华大电子设计有限责任公司 | 一种NorFlash的数据管理方法与装置 |
US10902929B1 (en) * | 2019-08-29 | 2021-01-26 | Micron Technology, Inc. | Zone swapping for wear leveling memory |
CN110851079B (zh) * | 2019-10-28 | 2021-10-15 | 置富科技(深圳)股份有限公司 | 一种自适应的存储设备损耗均衡方法及系统 |
CN112988037A (zh) * | 2019-12-17 | 2021-06-18 | 国民技术股份有限公司 | 静态磨损均衡方法、终端和计算机可读存储介质 |
CN112256207A (zh) * | 2020-10-30 | 2021-01-22 | 深圳市芯天下技术有限公司 | 提高非易失型闪存擦写寿命方法、装置、存储介质和终端 |
CN114518834B (zh) * | 2020-11-18 | 2023-10-27 | 中移物联网有限公司 | 一种信息存储方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5633824A (en) * | 1995-03-30 | 1997-05-27 | Nec Corporation | File system for flash memory |
CN101329679A (zh) * | 2007-06-22 | 2008-12-24 | 株式会社东芝 | 非易失性存储器的控制装置和控制方法以及存储装置 |
-
2009
- 2009-04-23 CN CN2009100826449A patent/CN101533670B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5633824A (en) * | 1995-03-30 | 1997-05-27 | Nec Corporation | File system for flash memory |
CN101329679A (zh) * | 2007-06-22 | 2008-12-24 | 株式会社东芝 | 非易失性存储器的控制装置和控制方法以及存储装置 |
Non-Patent Citations (1)
Title |
---|
JP特开2001-14870A 2001.01.19 |
Also Published As
Publication number | Publication date |
---|---|
CN101533670A (zh) | 2009-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101533670B (zh) | 实现存储设备损耗均衡的方法及存储设备 | |
CN100419714C (zh) | 闪存存取方法、闪存文件系统的块替换方法及其管理装置 | |
CN100492322C (zh) | 非易失性存储系统中的损耗平衡 | |
CN101382918B (zh) | 一种基于数据交换区的NAND Flash闪存优化管理方法 | |
CN101169760B (zh) | 电子硬盘的存储空间的管理方法 | |
CN102135942B (zh) | 一种存储设备中实现损耗均衡的方法及存储设备 | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
CN103559138A (zh) | 固态硬盘及其空间管理方法 | |
CN102880556A (zh) | 一种实现Nand Flash磨损均衡的方法及其系统 | |
CN102841851A (zh) | 闪存管理方法和闪存设备 | |
CN101923448A (zh) | 一种nand闪存的转换层读写方法 | |
CN101963891A (zh) | 数据存储处理方法与装置、固态硬盘系统与数据处理系统 | |
CN101499315B (zh) | 快闪存储器平均磨损方法及其控制器 | |
US20120246394A1 (en) | Flash Memory Device and Data Writing Method for a Flash Memory | |
CN111651371B (zh) | 非对称型平面管理方法以及数据存储装置及其控制器 | |
CN102298543A (zh) | 一种存储器管理方法和装置 | |
CN103294607A (zh) | 一种存储管理方法 | |
CN102981970A (zh) | 闪存管理方法和系统 | |
CN104298615B (zh) | 一种存储器交换分区损耗的均衡方法 | |
CN101727397B (zh) | 区块管理与更换方法、闪存储存系统及其控制器 | |
US8856425B2 (en) | Method for performing meta block management, and associated memory device and controller thereof | |
CN107203341A (zh) | 基于闪存的数据存储方法、装置以及闪存芯片 | |
CN101241469B (zh) | 一种在嵌入式系统中存储、读取数据的方法及装置 | |
CN100431051C (zh) | 一种在nor flash中配置参数的方法 |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden Patentee after: BEIJING WATCHDATA Co.,Ltd. Address before: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden Patentee before: BEIJING WATCH DATA SYSTEM Co.,Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120502 |