CN102135942A - 一种存储设备中实现损耗均衡的方法及存储设备 - Google Patents
一种存储设备中实现损耗均衡的方法及存储设备 Download PDFInfo
- Publication number
- CN102135942A CN102135942A CN2010106173133A CN201010617313A CN102135942A CN 102135942 A CN102135942 A CN 102135942A CN 2010106173133 A CN2010106173133 A CN 2010106173133A CN 201010617313 A CN201010617313 A CN 201010617313A CN 102135942 A CN102135942 A CN 102135942A
- Authority
- CN
- China
- Prior art keywords
- storage unit
- physical address
- logical address
- bad piece
- record
- 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.)
- Granted
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种存储设备中实现损耗均衡的方法及存储设备,该方法包括:确定存储单元出现坏块并记录下出现坏块的存储单元出现坏块时对应的逻辑地址后,或者,每次将记录的擦写次数清零后,开始记录该逻辑地址当前对应的物理地址所标识的存储单元的擦写次数,其中,存储设备中存储有存储单元的物理地址与逻辑地址的当前对应关系;当记录的擦写次数达到设定阈值时,从没有出现坏块的存储单元中选择一个存储单元,将该逻辑地址当前对应的物理地址更新为从没有出现坏块的存储单元中选择的存储单元的物理地址,并将记录的擦写次数清零。通过记录出现坏块的逻辑存储单元擦写次数,可有效避免擦写次数过多的存储单元被写坏,提高存储设备的使用寿命。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种存储设备中实现损耗均衡的方法及存储设备。
背景技术
NOR Flash技术是目前常用的一种闪存技术,采用该技术可以按字节快速读写,但是,每个字节在写入数据之后,不能直接再次写入,而必须先将之前写入的数据擦除。采用NOR Flash技术进行擦除时,只能以页为单位进行擦除操作,一般页的大小为256字节。从上层来看,擦除所完成的功能就是把擦除的这一页内的每一位都重新设置成逻辑1。
NOR Flash的使用寿命是非常有限的,由NOR Flash中页的最大可擦除次数决定,随着擦除次数的增加,该页最终会变成只读状态,成为坏页。通常NOR Flash中每页的最大可擦除次数为10万次。当在智能卡领域中使用NORFlash技术时,由于智能卡对于文件系统的存储介质不仅要求读写速度快、数据准确、有掉电保护功能,而且对于存储介质的使用寿命要求也比较高,例如,智能卡中的某些数据需要修改200万次左右,远远超过了NOR Flash的最大可擦除次数。因此,迫切需要提高NOR Flash的使用寿命,为此,需要平衡使用NOR Flash中所有的页,而不让某一页过度使用。这种技术就是损耗均衡技术。
目前,在NOR Flash中应用损耗均衡技术时主要有两种实现方式。第一种实现方式的核心思想在于:将NOR Flash中的整个存储空间划分为若干个大小相等的存储单元,每个存储单元的大小为256+4个字节,其中后四个字节用来存放校验码和存储单元号,然后再利用存储单元映射等算法实现损耗均衡。但是,由于NOR Flash技术中是将256个字节作为一页,而采用上述存储单元划分方法势必会出现跨页的情况,当需要擦除时,还需要判断跨页情况,造成NOR Flash擦除相对缓慢。第二种实现方式的核心思想在于:从整个存储空间中划分出部分存储单元作为管理存储单元,用于记录物理存储单元与逻辑存储单元的对应关系,对于上层文件系统只提供逻辑存储单元的读写函数。对于擦写次数较多的存储单元,将其数据写入某空闲存储单元,并修改物理存储单元与逻辑存储单元的对应关系,以实现各个存储单元的均衡使用。其中,物理存储单元和逻辑存储单元的关系如下:每个存储单元都有其对应的物理地址和逻辑地址,且每个存储单元对应的物理地址是固定不变的,用于唯一的标识一个存储单元,而存储单元对应的逻辑地址则是可以改变的,物理地址所对应的存储单元称为物理存储单元,逻辑地址所对应的存储单元称为逻辑存储单元。具体实现时,在NOR Flash上开辟一段空间作为统计区,用于记录最近一段时间操作的存储单元对应的擦除次数,由于统计区的空间有限,只能记录一小部分存储单元的擦写次数,因此,在内存中还要开辟同样大小的一段空间作为统计数据的临时记录,用于辅助记录擦写次数。但是,采用这种方式,并不能准确判断哪个存储单元的擦除次数频繁,而且,在统计擦写次数时,统计区由于擦写频繁很容易被写坏。以上以NOR Flash为例说明,但并不对存储设备构成限制,除了NOR Flash之外,其他的很多存储设备也会遇到类似的问题。
由此可见,现有技术主要存在以下缺点:某些存储单元因擦写次数过多很容易被写坏,导致NOR Flash等存储设备的使用寿命非常有限。
发明内容
本发明提供了一种存储设备中实现损耗均衡的方法及存储设备,用以解决现有技术中某些存储单元因擦写次数过多容易被写坏,导致存储设备的使用寿命非常有限的问题。
一种存储设备中实现损耗均衡的方法,包括:
确定存储单元出现坏块并记录下出现坏块的存储单元出现坏块时对应的逻辑地址后,或者,每次将记录的第一擦写次数清零后,开始记录所述逻辑地址当前对应的物理地址所标识的存储单元的第一擦写次数,其中,所述存储设备中存储有存储单元的物理地址与逻辑地址的当前对应关系;
当记录的第一擦写次数达到设定阈值时,从没有出现坏块的存储单元中选择一个存储单元,将所述逻辑地址当前对应的物理地址更新为从没有出现坏块的存储单元中选择的存储单元的物理地址,并将记录的第一擦写次数清零。
一种实现损耗均衡的存储设备,包括:
记录模块,用于确定存储单元出现坏块并记录下出现坏块的存储单元出现坏块时对应的逻辑地址后,或者,每次将记录的第一擦写次数清零后,开始记录所述逻辑地址当前对应的物理地址所标识的存储单元的第一擦写次数;
更新模块,用于当记录的第一擦写次数达到设定阈值时,从没有出现坏块的存储单元中选择一个存储单元,将所述逻辑地址当前对应的物理地址更新为从没有出现坏块的存储单元中选择的存储单元的物理地址,并将记录的第一擦写次数清零;
存储模块,用于存储各个存储单元的物理地址与逻辑地址的当前对应关系。
本发明实施例中通过记录出现坏块的存储单元出现坏块时对应的逻辑地址以及该逻辑地址当前对应的物理地址所标识的存储单元的擦写次数,可以有效防止擦写次数过多的存储单元被写坏,实现损耗均衡,从而显著提高了存储设备的使用寿命。
附图说明
图1为本发明实施例中的一种存储设备中实现损耗均衡的方法流程图;
图2为本发明实施例中实现损耗均衡的存储设备的结构示意图。
具体实施方式
本发明实施例提供了一种存储设备中实现损耗均衡的方法及存储设备,可以有效防止擦写次数过多的存储单元被写坏,从而显著提高存储设备的使用寿命。
本发明实施例提供了一种存储设备中实现损耗均衡的方法,如图1所示,包括:
S101:确定存储单元出现坏块并记录下出现坏块的存储单元出现坏块时对应的逻辑地址后,或者,每次将记录的第一擦写次数清零后,开始记录所述逻辑地址当前对应的物理地址所标识的存储单元的第一擦写次数,其中,所述存储设备中存储有存储单元的物理地址与逻辑地址的当前对应关系。
这里,存储单元出现坏块,具体指:该存储单元损坏,即无论该坏块仅仅位于存储单元的某个局部,还是覆盖了整个存储单元,都说明该存储单元已经损坏,无法再次使用。
其中,所述确定存储单元出现坏块,并记录下出现坏块的存储单元出现坏块时对应的逻辑地址后,还可以进一步包括:从预留的空闲存储单元中选择一个存储单元,将所述逻辑地址当前对应的物理地址更新为从预留的空闲存储单元中选择的存储单元的物理地址,并将所述出现坏块的存储单元中的数据写入从预留的空闲存储单元中选择的存储单元。并且,所述预留的空闲存储单元的个数大于等于出现坏块的存储单元的个数。
S102:当记录的第一擦写次数达到设定阈值时,从没有出现坏块的存储单元中选择一个存储单元,将所述逻辑地址当前对应的物理地址更新为从没有出现坏块的存储单元中选择的存储单元的物理地址,并将记录的第一擦写次数清零。
为了实现数据的可靠备份,所述将所述逻辑地址当前对应的物理地址更新为从没有出现坏块的存储单元中选择的存储单元的物理地址的步骤之前,还可以进一步包括:将所述逻辑地址当前对应的物理地址所标识的存储单元中的数据写入备份存储单元,并在更新记录存储单元中记录写入备份存储单元的操作;将写入备份存储单元中的数据写入从没有出现坏块的存储单元中选择的存储单元,并在更新记录存储单元中记录写入选择的存储单元的操作。其中,每当需要对数据区中的某个存储单元进行数据更新时,或者,对数据区中出现坏块的存储单元进行替换时,备份存储单元和更新记录存储单元分别用于保存当前操作所对应的原始数据以及更新操作信息,以便在突然断电后根据备份存储单元和更新记录存储单元中保存的内容继续完成更新或替换操作。当下次再需要对某个存储单元进行数据更新或替换时,则需要先擦除备份存储单元和更新记录存储单元中的内容,然后再通过备份存储单元和更新记录存储单元保存当前操作所对应的原始数据以及更新操作信息。总之,通常情况下,备份存储单元和更新记录存储单元是配合在一起使用的,共同完成数据更新时的掉电保护功能,每当出现某个存储单元需要进行更新或替换时,备份存储单元和更新记录存储单元都要擦除一次,且二者的擦除次数相同。当然,具体实现时,也可以为备份存储单元或更新记录存储单元预留较大的存储容量,使得备份存储单元或更新记录存储单元可以在完成多次存储单元的更新或替换操作之后再进行擦除,但是,这样还需要额外记录备份存储单元或更新记录存储单元的已用空间及可用空间,并且,还需要分别记录备份存储单元以及更新记录存储单元的擦除次数,需要额外占用存储空间且增加了管理的复杂度,因此,在本实施例中,备份存储单元和更新记录存储单元都在每次执行存储单元的更新或替换操作之前进行擦除。
由此可以看出,备份存储单元和更新记录存储单元擦除次数相同且擦写频繁,为了防止备份存储单元和更新记录存储单元因擦写次数过多而损坏,本方法还可以包括以下步骤:确定所述备份存储单元和更新记录存储单元对应的逻辑地址后,或者,每当记录的第二擦写次数清零后,开始记录所述备份存储单元或更新记录存储单元对应的逻辑地址当前对应的物理地址所标识的存储单元的第二擦写次数;当记录的第二擦写次数达到设定阈值时,从没有出现坏块的存储单元中选择两个存储单元,并将所述备份存储单元和更新记录存储单元对应的逻辑地址当前对应的物理地址分别更新为所述两个存储单元的物理地址,并将记录的第二擦写次数清零。这里,由于备份存储单元和更新记录存储单元的擦写次数相同,因此,为了节约存储空间,简化管理操作,可以只对备份存储单元和更新记录存储单元中的任意一个的擦写次数进行记录。
在本方法中,在将所述逻辑地址当前对应的物理地址更新为从没有出现坏块的存储单元中选择的存储单元的物理地址之后,如果接收到携带所述逻辑地址的数据擦写指令,则根据该数据擦写指令对所述逻辑地址当前对应的物理地址所标识的存储单元进行擦写。
通过采用本发明实施例提供的方法,通过记录出现坏块的逻辑存储单元的擦写次数,可以有效避免擦写次数过多的存储单元被写坏,合理实现损耗均衡,从而提高存储设备的使用寿命。
下面以一个优选实施例详细描述一下本发明提供的实现损耗均衡的方法。在本实施例中,以NOR Flash为例进行介绍,当然,本发明提供的方法还可以应用于其他存储设备上,如NAND FLASH或EEPROM等。NOR Flash上的存储单元也称为扇区,为了操作方便,本实施例中的一个存储单元的大小为256个字节,与NOR Flash中的一页的大小一致,因此,操作时不会出现跨页的现象。当然,也可以将存储单元的大小划分为256个字节的整数倍,同样可以防止跨页情况。
本发明实施例提供的方案,仅记录擦写频繁的部分存储单元的擦写次数,对这些存储单元进行损耗均衡处理。由于NOR Flash中的每页,也就是本发明实施例中提到的每个存储单元都受到擦除次数10万次的限制,所以经常擦写的存储单元应该参与均衡操作。但是,损耗均衡的处理,是建立在明确参与均衡的存储单元的擦写次数之上的,如果每个存储单元的擦写次数都要明确记录,势必会在空间、时间上占用很大资源,且记录擦写次数的存储单元也会频繁擦写。
由于本发明为了防止操作过程中因断电所导致的操作错误,在对某个存储单元中的数据进行修改之前,需要先将该存储单元原来存储的数据写到备份存储单元中,然后再将修改之后的数据写入该存储单元,并且,在此过程中,还需要在更新记录存储单元中记录每一步所执行的操作,以便于断电后根据更新记录存储单元中记录的操作步骤以及备份存储单元中存储的数据进行数据恢复。因此,备份存储单元和更新记录存储单元在每次修改数据时都要进行擦写,所以,首先确定这两个存储单元擦写频繁,应该记录擦写次数。另外,数据区的存储单元,即用于存储数据的存储单元中哪些存储单元擦写频繁是无法事先得知的,因此,可以在某个存储单元出现坏块,即损坏之后对其进行记录。当某个存储单元出现坏块时,则说明该存储单元出现坏块时对应的逻辑地址当前对应的物理地址所标识的存储单元擦写频繁,因此,需要对该逻辑地址当前对应的物理地址所标识的存储单元的擦写次数进行记录。
为此,本发明将所有的存储单元分为两部分,一部分用于存储管理信息,另外一部分用于存储数据信息。
其中,管理信息对应的全部存储单元可以进一步分为以下7部分,即:
启动存储单元:用于在磁盘格式化后记录各个部分的大小及产品的相关信息,上电后作为全局变量读出,只有格式化时会擦写一次。
坏块地址:用于当数据区有存储单元出现坏块时,在此记录相关信息。每条信息的内容包括:坏块所在存储单元的物理地址、坏块所在存储单元出现坏块时的逻辑地址、保留区用于替换的存储单元的物理地址。该部分的每个存储单元可以记录多条信息,且只有当数据区有存储单元出现坏块时,才需要记录一条,以后不会重复擦写。
坏块替换记录:由于当存储单元出现坏块后,需要从保留区找到空闲的存储单元替代出现坏块的存储单元,涉及到记录坏块所在存储单元的地址、修改页访问表(Page Access Table,PAT)等操作,为了防止在这一处理过程中掉电,需要在坏块替换记录中记录已完成的步骤,以便上电后继续完成坏块的替换过程。每出现一个坏块,该部分所对应的存储单元将会擦除一次。
PAT:即页访问表,在该表中记录了每个存储单元的逻辑地址与物理地址的当前对应关系,当对应关系改变时,需要修改该表中的记录。其中,物理地址,也叫硬件地址,用于唯一的标识各个存储单元;逻辑地址,用于提供给上层文件系统,上层文件系统在写入数据时,根据逻辑地址对相应的存储单元进行操作。
数据区部分存储单元的擦除次数:用N个存储单元记录数据区前N个出现坏块的存储单元在出现坏块时对应的逻辑地址当前对应的物理地址所标识的存储单元的擦写次数。其中,N的具体数值由保留区的存储单元个数决定。
更新记录存储单元地址:用于存储更新记录存储单元的物理地址,地址记录只需要4字节,而本存储单元的大小为256字节,因此,本存储单元可写入64次地址,以最后一条记录作为当前更新记录存储单元的物理地址。当更新记录存储单元的擦除次数达到设定阈值后,需要参与均衡,此时会改变更新记录存储单元的地址,同时相应的在该存储单元中记录当前更新记录存储单元的物理地址。
备份存储单元地址:用于存储备份存储单元的物理地址,由于备份存储单元和更新记录存储单元的擦除次数相同,因此,当更新记录存储单元改变地址时,也需要修改备份存储单元的地址,此时,需要相应修改该存储单元的记录。
数据信息对应的全部存储单元可以进一步分为以下4个部分,即:
保留区:在保留区中预留了一些空闲存储单元用于替换损坏的存储单元。当数据区有存储单元出现坏块,需要替换时,从保留区中找到一个空闲存储单元,代替出现坏块的存储单元,同时修改逻辑地址与物理地址的对应关系。其中,保留区中的存储单元个数可以由系统在格式化时进行设置。
数据区:提供给上层文件系统的区域,即用于存储数据的存储单元,利用PAT将物理地址转换为逻辑地址,供文件系统使用。
更新记录存储单元:为防止写NOR Flash过程中掉电,每次进行写操作前,都要将欲操作的步骤写入此存储单元,以便上电恢复后继续完成操作,保证磁盘数据正确性。
备份存储单元:NOR Flash执行写操作时,需要先对操作的存储单元进行擦除,再写入。为防止这一过程中掉电,在更新某存储单元中的数据时,先将旧数据,即原始数据写入备份存储单元,擦除该存储单元中的数据,再将欲写入的内容与备份存储单元中的内容合并,写回该存储单元。
上述每一部分都是页的整数倍,不会出现跨页情况,便于操作。
当数据区有存储单元出现坏块后,先以保留区中的一存储单元替换该出现坏块的存储单元,然后开始记录出现坏块的存储单元出现坏块时对应的逻辑地址当前对应的物理地址所标识的存储单元的擦写次数。每擦除一次,在其记录擦除次数的存储单元中的相应偏移写入1字节数据,例如第一次擦除,在0偏移写入0x5A,第二次擦除,在1偏移写入0x5A......。当记录的存储单元擦除次数达到设定阈值,如256时,将在数据区找到一个不需要记录擦除次数的存储单元,与达到次数的存储单元进行替换。每次写数据区前,查看是否有需要均衡的区域,如果有,先进行损耗均衡替换,然后才进行数据区内容的更新。损耗均衡替换可以按照备份存储单元、更新记录存储单元、数据区的顺序进行,当然也可以采用其他顺序,此处不作限定。由于备份存储单元、更新记录存储单元相对擦除次数更多,所以可以先替换,每次只替换一个存储单元,可以提高处理速度。
下面详细介绍一下备份存储单元、更新记录存储单元以及数据区的替换过程:
当备份存储单元的擦除次数达到设定阈值后,从不需要记录擦除次数的存储单元中选择一个存储单元与备份存储单元进行替换,替换后选择的这一存储单元即成为新的备份存储单元。具体替换过程为:将选择的这一存储单元中的数据写入备份存储单元,并将选择的这一存储单元的当前逻辑地址与备份存储单元的当前逻辑地址进行替换,假设本实施例中备份存储单元对应的逻辑地址为0001,每当需要向备份存储单元写入数据时,也就是向逻辑地址0001当前对应的物理地址所标识的存储单元写入数据。因此,初始状态时,备份存储单元的逻辑地址为0001,物理地址也为0001,选择的存储单元的逻辑地址为0003,物理地址也为0003,当确定物理地址为0001的备份存储单元的擦除次数达到设定阈值后,将选择的物理地址为0003的存储单元中的数据写入物理地址为0001的备份存储单元中,然后擦除物理地址为0003的存储单元中的数据,同时,将逻辑地址0001当前对应的物理地址修改为0003,并在备份存储单元地址中记录新的备份存储单元的物理地址,即物理地址0003。而且,还要在PAT中将逻辑地址为0003的存储单元对应的物理地址修改为0001,具体的,在修改PAT中的数据时,为了防止断电,可以先将PAT中存储该数据的存储单元中的原始内容写入物理地址为0003的新的备份存储单元中,然后再擦除PAT中存储该数据的存储单元中的内容,再将修改后的内容与物理地址为0003的新的备份存储单元中的内容合并,写回PAT中存储该数据的存储单元中,实现对PAT的修改。在执行上述每一步骤之后,都需要在更新记录存储单元中记录相关的操作,以防止因断电而丢失数据。通过上述操作,即把逻辑地址0001对应的物理地址修改为0003,因此,下次再需要向备份存储单元中写入数据时,则直接写入逻辑地址0001当前对应的物理地址0003所标识的存储单元,从而使得物理地址为0003的存储单元成为新的备份存储单元,实现了备份存储单元的均衡处理。
当更新记录存储单元的擦除次数达到设定阈值后,从不需要记录擦除次数的存储单元中选择一个存储单元与更新记录存储单元进行替换,替换后选择的这一存储单元即成为新的更新记录存储单元。具体替换过程为:将选择的这一存储单元中的数据写入备份存储单元,并将选择的这一存储单元的当前逻辑地址与更新记录存储单元的当前逻辑地址进行替换,假设本实施例中更新记录存储单元对应的逻辑地址为0002,每当需要向更新记录存储单元写入数据时,也就是向逻辑地址0002当前对应的物理地址所标识的存储单元写入数据。因此,初始状态时,更新记录存储单元的逻辑地址为0002,物理地址也为0002,选择的存储单元的逻辑地址为0005,物理地址为0005,当确定物理地址为0002的更新记录存储单元的擦除次数达到设定阈值后,将选择的物理地址为0005的存储单元中的数据先写入备份存储单元中,然后擦除物理地址为0005的存储单元中的数据,然后,将物理地址为0002的原更新记录存储单元中的内容,即已经记录的与该替换更新记录存储单元的操作有关的更新数据写入物理地址为0005的存储单元中,即物理地址为0005的存储单元成为新的更新记录存储单元,之后再向更新记录存储单元中写入更新操作时,则写入物理地址为0005的新的更新记录存储单元中,并且,擦除物理地址为0002的原更新记录存储单元中的内容,将之前写入备份存储单元中的数据写入物理地址为0002的存储单元中,即将物理地址为0005的存储单元中的原始数据保存在了物理地址为0002的存储单元中,同时,将逻辑地址0002当前对应的物理地址修改为0005,并在更新记录存储单元地址中记录新的更新记录存储单元的物理地址,即物理地址0005,而且,还要在PAT中将逻辑地址为0005的存储单元对应的物理地址修改为0002。在执行上述每一步骤之后,都需要在更新记录存储单元中记录相关的操作,以防止因断电而丢失数据。通过上述操作,即把逻辑地址0002对应的物理地址修改为0005,因此,下次再需要向更新记录存储单元中写入数据时,则直接写入逻辑地址0002当前对应的物理地址0005所标识的存储单元,从而使得物理地址为0005的存储单元成为新的更新记录存储单元,实现了更新记录存储单元的均衡处理。
当数据区有存储单元出现坏块时,需要从保留区中选择一个存储单元与出现坏块的存储单元进行替换:即将数据区出现坏块的存储单元中的数据写入保留区中所选择的存储单元,并在坏块地址中记录出现坏块的存储单元的物理地址、出现坏块的存储单元的逻辑地址以及从保留区选择的存储单元的物理地址。假设数据区出现坏块的存储单元出现坏块时的逻辑地址为0003,该出现坏块的存储单元的物理地址也为0003,假设从保留区选择的这一存储单元的物理地址为0006,将选择的这一存储单元与出现坏块的存储单元进行替换,即将逻辑地址0003对应的物理地址修改为0006,并开始记录物理地址为0006的这一存储单元,即出现坏块的存储单元出现坏块时的逻辑地址0003当前对应物理地址所标识的存储单元的擦除次数,当物理地址为0006的存储单元的擦除次数达到设定阈值时,从不需要记录擦除次数的存储单元中选择一个存储单元,假设选择的不需记录擦除次数的存储单元的逻辑地址为0008,其所对应的物理地址为0008,将物理地址为0008的存储单元当前对应的逻辑地址与物理地址为0006的存储单元当前对应的逻辑地址0003进行替换,则替换后逻辑地址0003当前对应存储单元的物理地址为0008,并开始记录物理地址为0008的存储单元的擦除次数。具体替换过程为:将物理地址为0006的存储单元中的数据写入备份存储单元,并擦除该存储单元中的数据,然后,将物理地址为0008的存储单元中的数据写入物理地址为0006的存储单元,然后,再将备份存储单元中的数据写入物理地址为0008的存储单元中,同时,还要在PAT中将逻辑地址为0003的存储单元所对应的物理地址修改为0008,将逻辑地址为0008的存储单元所对应的物理地址修改为0006。在执行上述每一步骤之后,都需要在更新记录存储单元中记录相关的操作,以防止因断电而丢失数据。当下次再需要对逻辑地址0003进行操作时,则会相应的操作该逻辑地址当前对应的物理地址所标识的存储单元,即物理地址为0008的存储单元,从而实现了数据区的损耗均衡处理。
在本实施例中,之所以要单独记录更新记录存储单元地址,是因为当更新记录存储单元进行替换时,需要修改PAT,而所修改的PAT地址又需要记录在更新记录存储单元中,如果更新记录存储单元的地址没有单独存储,就无法找到需要修改的PAT了,单独记录备份存储单元地址的原因与之类似。
通过采用上述方法,可以大大降低各个存储单元的总擦写次数,以记录PAT的存储单元为例:只有当某个存储单元参与均衡或者出现坏块后进行替换时,存储单元的逻辑地址和物理地址的对应关系才会发生变化,此时才会更新PAT。因此,如果PAT出现坏块,即擦除达到10万次,假设保留区的存储单元个数为10个,也就是说记录数据区中10个存储单元的擦除次数,最坏情况为这10个存储单元的逻辑地址都在PAT的同一存储单元中,即数据区这10个存储单元中的每个存储单元平均修改PAT1万次,而每个存储单元的数据擦除次数达到256次后才会修改PAT一次,再加上一开始不记录擦除次数,即存储单元出现坏块前的擦除次数10万次,则PAT中的每个存储单元平均可擦除10000×256+100000=266万次,远远超过擦写200万次的要求。
其他存储单元的计算方法类似,当磁盘达到寿命时,各部分擦写次数统计如表1所示:
表1
由此可见,本发明可以将部分数据的擦写次数提高到200万次以上,达到对于智能卡产品的使用寿命要求。并可根据实际产品需求,调整数据区记录擦写次数的存储单元个数,为每款产品提供个性化设计,从而避免产生管理区域过大,减少数据存储空间的情况。
本发明实施例还提供了一种实现损耗均衡的存储设备,如图2所示,包括:
记录模块21,用于确定存储单元出现坏块并记录下出现坏块的存储单元出现坏块时对应的逻辑地址后,或者,每次将记录的第一擦写次数清零后,开始记录所述逻辑地址当前对应的物理地址所标识的存储单元的第一擦写次数;
更新模块22,用于当记录的第一擦写次数达到设定阈值时,从没有出现坏块的存储单元中选择一个存储单元,将所述逻辑地址当前对应的物理地址更新为从没有出现坏块的存储单元中选择的存储单元的物理地址,并将记录的第一擦写次数清零;
存储模块23,用于存储各个存储单元的物理地址与逻辑地址的当前对应关系。
较佳的,所述更新模块22,进一步用于:确定出现坏块的存储单元出现坏块时对应的逻辑地址之后,从预留的空闲存储单元中选择一个存储单元,将所述逻辑地址当前对应的物理地址更新为从预留的空闲存储单元中选择的存储单元的物理地址,并将所述出现坏块的存储单元中的数据写入从预留的空闲存储单元中选择的存储单元。
较佳的,所述更新模块22,具体用于:将所述逻辑地址当前对应的物理地址所标识的存储单元中的数据写入备份存储单元,并在更新记录存储单元中记录写入备份存储单元的操作;将写入备份存储单元中的数据写入从没有出现坏块的存储单元中选择的存储单元,并在更新记录存储单元中记录写入选择的存储单元的操作。
较佳的,所述更新模块22,进一步用于:确定所述备份存储单元和更新记录存储单元对应的逻辑地址后,或者,每当记录的第二擦写次数清零后,开始记录所述备份存储单元或更新记录存储单元对应的逻辑地址当前对应的物理地址所标识的存储单元的第二擦写次数;当记录的第二擦写次数达到设定阈值时,从没有出现坏块的存储单元中选择两个存储单元,并将所述备份存储单元和更新记录存储单元对应的逻辑地址当前对应的物理地址分别更新为所述两个存储单元的物理地址,并将记录的第二擦写次数清零。
较佳的,所述存储设备还包括:接收模块,用于接收到携带所述逻辑地址的数据擦写指令后,对所述逻辑地址当前对应的物理地址所标识的存储单元进行擦写。
通过采用本发明实施例提供的存储设备,通过记录出现坏块的逻辑存储单元的擦写次数,可以有效避免擦写次数过多的存储单元被写坏,合理实现损耗均衡,从而提高存储设备的使用寿命。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种存储设备中实现损耗均衡的方法,其特征在于,包括:
确定存储单元出现坏块并记录下出现坏块的存储单元出现坏块时对应的逻辑地址后,或者,每次将记录的第一擦写次数清零后,开始记录所述逻辑地址当前对应的物理地址所标识的存储单元的第一擦写次数,其中,所述存储设备中存储有存储单元的物理地址与逻辑地址的当前对应关系;
当记录的第一擦写次数达到设定阈值时,从没有出现坏块的存储单元中选择一个存储单元,将所述逻辑地址当前对应的物理地址更新为从没有出现坏块的存储单元中选择的存储单元的物理地址,并将记录的第一擦写次数清零。
2.如权利要求1所述的方法,其特征在于,所述确定存储单元出现坏块,并记录下出现坏块的存储单元出现坏块时对应的逻辑地址后,进一步包括:从预留的空闲存储单元中选择一个存储单元,将所述逻辑地址当前对应的物理地址更新为从预留的空闲存储单元中选择的存储单元的物理地址,并将所述出现坏块的存储单元中的数据写入从预留的空闲存储单元中选择的存储单元。
3.如权利要求2所述的方法,其特征在于,所述预留的空闲存储单元的个数大于等于出现坏块的存储单元的个数。
4.如权利要求1所述的方法,其特征在于,所述将所述逻辑地址当前对应的物理地址更新为从没有出现坏块的存储单元中选择的存储单元的物理地址的步骤之前,进一步包括:
将所述逻辑地址当前对应的物理地址所标识的存储单元中的数据写入备份存储单元,并在更新记录存储单元中记录写入备份存储单元的操作;
将写入备份存储单元中的数据写入从没有出现坏块的存储单元中选择的存储单元,并在更新记录存储单元中记录写入选择的存储单元的操作。
5.如权利要求4所述的方法,其特征在于,还包括:
确定所述备份存储单元和所述更新记录存储单元对应的逻辑地址后,或者,每当记录的第二擦写次数清零后,开始记录所述备份存储单元或更新记录存储单元对应的逻辑地址当前对应的物理地址所标识的存储单元的第二擦写次数;
当记录的第二擦写次数达到设定阈值时,从没有出现坏块的存储单元中选择两个存储单元,并将所述备份存储单元和更新记录存储单元对应的逻辑地址当前对应的物理地址分别更新为所述两个存储单元的物理地址,并将记录的第二擦写次数清零。
6.如权利要求1所述的方法,其特征在于,所述将所述逻辑地址当前对应的物理地址更新为从没有出现坏块的存储单元中选择的存储单元的物理地址的步骤之后,进一步包括:
接收到携带所述逻辑地址的数据擦写指令后,对所述逻辑地址当前对应的物理地址所标识的存储单元进行擦写。
7.一种实现损耗均衡的存储设备,其特征在于,包括:
记录模块,用于确定存储单元出现坏块并记录下出现坏块的存储单元出现坏块时对应的逻辑地址后,或者,每次将记录的第一擦写次数清零后,开始记录所述逻辑地址当前对应的物理地址所标识的存储单元的第一擦写次数;
更新模块,用于当记录的第一擦写次数达到设定阈值时,从没有出现坏块的存储单元中选择一个存储单元,将所述逻辑地址当前对应的物理地址更新为从没有出现坏块的存储单元中选择的存储单元的物理地址,并将记录的第一擦写次数清零;
存储模块,用于存储各个存储单元的物理地址与逻辑地址的当前对应关系。
8.如权利要求7所述的存储设备,其特征在于,所述更新模块,进一步用于:确定出现坏块的存储单元出现坏块时对应的逻辑地址之后,从预留的空闲存储单元中选择一个存储单元,将所述逻辑地址当前对应的物理地址更新为从预留的空闲存储单元中选择的存储单元的物理地址,并将所述出现坏块的存储单元中的数据写入从预留的空闲存储单元中选择的存储单元。
9.如权利要求7所述的存储设备,其特征在于,所述更新模块,具体用于:
将所述逻辑地址当前对应的物理地址所标识的存储单元中的数据写入备份存储单元,并在更新记录存储单元中记录写入备份存储单元的操作;
将写入备份存储单元中的数据写入从没有出现坏块的存储单元中选择的存储单元,并在更新记录存储单元中记录写入选择的存储单元的操作。
10.如权利要求9所述的存储设备,其特征在于,所述更新模块,进一步用于:
确定所述备份存储单元和所述更新记录存储单元对应的逻辑地址后,或者,每当记录的第二擦写次数清零后,开始记录所述备份存储单元或更新记录存储单元对应的逻辑地址当前对应的物理地址所标识的存储单元的第二擦写次数;
当记录的第二擦写次数达到设定阈值时,从没有出现坏块的存储单元中选择两个存储单元,并将所述备份存储单元和更新记录存储单元对应的逻辑地址当前对应的物理地址分别更新为所述两个存储单元的物理地址,并将记录的第二擦写次数清零。
11.如权利要求7所述的存储设备,其特征在于,还包括:
接收模块,用于接收到携带所述逻辑地址的数据擦写指令后,对所述逻辑地址当前对应的物理地址所标识的存储单元进行擦写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010617313 CN102135942B (zh) | 2010-12-31 | 2010-12-31 | 一种存储设备中实现损耗均衡的方法及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010617313 CN102135942B (zh) | 2010-12-31 | 2010-12-31 | 一种存储设备中实现损耗均衡的方法及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102135942A true CN102135942A (zh) | 2011-07-27 |
CN102135942B CN102135942B (zh) | 2013-04-24 |
Family
ID=44295730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010617313 Expired - Fee Related CN102135942B (zh) | 2010-12-31 | 2010-12-31 | 一种存储设备中实现损耗均衡的方法及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102135942B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662695A (zh) * | 2012-03-26 | 2012-09-12 | 华为终端有限公司 | 一种系统启动的方法及装置 |
CN103064792A (zh) * | 2012-12-26 | 2013-04-24 | 北京创毅讯联科技股份有限公司 | 数据写入方法及装置 |
CN103365786A (zh) * | 2012-04-01 | 2013-10-23 | 国民技术股份有限公司 | 数据存储方法、装置和系统 |
CN105009091A (zh) * | 2012-12-26 | 2015-10-28 | 西部数据技术公司 | 用于数据存储系统的动态预留空间 |
CN105260320A (zh) * | 2015-10-12 | 2016-01-20 | 珠海格力电器股份有限公司 | 用于flash存储器的数据处理方法和装置 |
CN106909512A (zh) * | 2015-12-23 | 2017-06-30 | 研祥智能科技股份有限公司 | 存储设备的使用方法和系统 |
CN107025073A (zh) * | 2017-04-19 | 2017-08-08 | 济南浪潮高新科技投资发展有限公司 | 一种NAND FLASH阵列Mapping信息存储方法 |
CN107273043A (zh) * | 2017-04-28 | 2017-10-20 | 中国人民解放军国防科学技术大学 | 数据存储方法及装置 |
WO2018050006A1 (zh) * | 2016-09-14 | 2018-03-22 | 阿里巴巴集团控股有限公司 | 在基于闪存的存储介质中写入存储数据的方法和装置 |
CN107863127A (zh) * | 2017-10-31 | 2018-03-30 | 杭州迪普科技股份有限公司 | 一种存储设备存储单元选择方法及装置 |
CN108170366A (zh) * | 2016-12-06 | 2018-06-15 | 华为技术有限公司 | 存储设备中的存储介质管理方法、装置和存储设备 |
CN110658981A (zh) * | 2019-04-19 | 2020-01-07 | 石家庄科林电气股份有限公司 | 一种提高Flash使用寿命的方法 |
CN110799935A (zh) * | 2018-12-04 | 2020-02-14 | 深圳市大疆创新科技有限公司 | 数据存储方法、闪存设备、智能电池、可移动平台 |
CN111414131A (zh) * | 2019-01-07 | 2020-07-14 | 爱思开海力士有限公司 | 数据存储装置、其操作方法和包括其的存储系统 |
CN114647534A (zh) * | 2022-05-24 | 2022-06-21 | 国网山东省电力公司营销服务中心(计量中心) | 一种基于数字化控制设备的数据存储方法及装置 |
CN115268771A (zh) * | 2022-07-11 | 2022-11-01 | 河南翔宇医疗设备股份有限公司 | 一种紫外线消毒灯使用时长记录方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5633824A (en) * | 1995-03-30 | 1997-05-27 | Nec Corporation | File system for flash memory |
CN101013395A (zh) * | 2007-02-06 | 2007-08-08 | 苏州超锐微电子有限公司 | 一种通过有条件耗损均衡算法提高Flash保留空间数据存储可靠性的方法 |
CN101441599A (zh) * | 2008-11-28 | 2009-05-27 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘的均衡方法和固态硬盘 |
CN101553670A (zh) * | 2006-12-18 | 2009-10-07 | 博格华纳公司 | 包括分段主元件的扭振减振器 |
-
2010
- 2010-12-31 CN CN 201010617313 patent/CN102135942B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5633824A (en) * | 1995-03-30 | 1997-05-27 | Nec Corporation | File system for flash memory |
CN101553670A (zh) * | 2006-12-18 | 2009-10-07 | 博格华纳公司 | 包括分段主元件的扭振减振器 |
CN101013395A (zh) * | 2007-02-06 | 2007-08-08 | 苏州超锐微电子有限公司 | 一种通过有条件耗损均衡算法提高Flash保留空间数据存储可靠性的方法 |
CN101441599A (zh) * | 2008-11-28 | 2009-05-27 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘的均衡方法和固态硬盘 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662695A (zh) * | 2012-03-26 | 2012-09-12 | 华为终端有限公司 | 一种系统启动的方法及装置 |
CN102662695B (zh) * | 2012-03-26 | 2016-03-30 | 华为终端有限公司 | 一种系统启动的方法及装置 |
CN103365786A (zh) * | 2012-04-01 | 2013-10-23 | 国民技术股份有限公司 | 数据存储方法、装置和系统 |
CN103365786B (zh) * | 2012-04-01 | 2016-12-14 | 国民技术股份有限公司 | 数据存储方法、装置和系统 |
CN103064792A (zh) * | 2012-12-26 | 2013-04-24 | 北京创毅讯联科技股份有限公司 | 数据写入方法及装置 |
CN105009091A (zh) * | 2012-12-26 | 2015-10-28 | 西部数据技术公司 | 用于数据存储系统的动态预留空间 |
CN105260320A (zh) * | 2015-10-12 | 2016-01-20 | 珠海格力电器股份有限公司 | 用于flash存储器的数据处理方法和装置 |
CN106909512A (zh) * | 2015-12-23 | 2017-06-30 | 研祥智能科技股份有限公司 | 存储设备的使用方法和系统 |
US11099744B2 (en) | 2016-09-14 | 2021-08-24 | Ant Financial (Hang Zhou) Network Technology Co., Ltd. | Method and device for writing stored data into storage medium based on flash memory |
WO2018050006A1 (zh) * | 2016-09-14 | 2018-03-22 | 阿里巴巴集团控股有限公司 | 在基于闪存的存储介质中写入存储数据的方法和装置 |
US11287984B2 (en) | 2016-09-14 | 2022-03-29 | Beijing Oceanbase Technology Co., Ltd. | Method and device for writing stored data into storage medium based on flash memory |
US10901629B2 (en) | 2016-12-06 | 2021-01-26 | Huawei Technologies Co., Ltd. | Method and apparatus for managing health of a storage medium in a storage device |
CN108170366A (zh) * | 2016-12-06 | 2018-06-15 | 华为技术有限公司 | 存储设备中的存储介质管理方法、装置和存储设备 |
CN107025073B (zh) * | 2017-04-19 | 2019-12-10 | 浪潮集团有限公司 | 一种NAND FLASH阵列Mapping信息存储方法 |
CN107025073A (zh) * | 2017-04-19 | 2017-08-08 | 济南浪潮高新科技投资发展有限公司 | 一种NAND FLASH阵列Mapping信息存储方法 |
CN107273043A (zh) * | 2017-04-28 | 2017-10-20 | 中国人民解放军国防科学技术大学 | 数据存储方法及装置 |
CN107863127A (zh) * | 2017-10-31 | 2018-03-30 | 杭州迪普科技股份有限公司 | 一种存储设备存储单元选择方法及装置 |
CN110799935A (zh) * | 2018-12-04 | 2020-02-14 | 深圳市大疆创新科技有限公司 | 数据存储方法、闪存设备、智能电池、可移动平台 |
US11675699B2 (en) | 2019-01-07 | 2023-06-13 | SK Hynix Inc. | Data storage device, operation method thereof, and storage system including the same |
CN111414131A (zh) * | 2019-01-07 | 2020-07-14 | 爱思开海力士有限公司 | 数据存储装置、其操作方法和包括其的存储系统 |
CN111414131B (zh) * | 2019-01-07 | 2023-08-22 | 爱思开海力士有限公司 | 数据存储装置、其操作方法和包括其的存储系统 |
US12001331B2 (en) | 2019-01-07 | 2024-06-04 | SK Hynix Inc. | Data storage device, operation method thereof, and storage system including the same |
CN110658981B (zh) * | 2019-04-19 | 2022-11-08 | 石家庄科林电气股份有限公司 | 一种提高Flash使用寿命的方法 |
CN110658981A (zh) * | 2019-04-19 | 2020-01-07 | 石家庄科林电气股份有限公司 | 一种提高Flash使用寿命的方法 |
CN114647534A (zh) * | 2022-05-24 | 2022-06-21 | 国网山东省电力公司营销服务中心(计量中心) | 一种基于数字化控制设备的数据存储方法及装置 |
CN115268771A (zh) * | 2022-07-11 | 2022-11-01 | 河南翔宇医疗设备股份有限公司 | 一种紫外线消毒灯使用时长记录方法及设备 |
CN115268771B (zh) * | 2022-07-11 | 2023-09-05 | 河南翔宇医疗设备股份有限公司 | 一种紫外线消毒灯使用时长记录方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102135942B (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102135942B (zh) | 一种存储设备中实现损耗均衡的方法及存储设备 | |
CN101382918B (zh) | 一种基于数据交换区的NAND Flash闪存优化管理方法 | |
US9098395B2 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
CN101980177B (zh) | 一种操作Flash的方法和装置 | |
CN102508788B (zh) | Ssd及ssd垃圾回收方法和装置 | |
CN101937319B (zh) | 存储器系统及其映射方法 | |
CN101634967B (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
CN101494085B (zh) | 防止非易失性存储器发生读取干扰的方法及其控制器 | |
US9037814B2 (en) | Flash memory management method and flash memory controller and storage system using the same | |
CN103996412A (zh) | 一种用于智能卡非易失性存储器的掉电保护方法 | |
CN101615427A (zh) | 非易失性存储器的存储器管理方法及使用此方法的控制器 | |
CN101408864B (zh) | 用于断电时的数据保护方法及使用此方法的控制器 | |
CN101419834B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101499315B (zh) | 快闪存储器平均磨损方法及其控制器 | |
CN101425338B (zh) | 非易失性存储器的写入方法及使用此方法的控制器 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
CN102890655A (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN101876927A (zh) | 实现fat32文件系统的断电保护方法和装置 | |
CN101409108B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101833514B (zh) | 基于微内存系统在与非型闪存介质实现虚拟内存的方法 | |
CN101727397B (zh) | 区块管理与更换方法、闪存储存系统及其控制器 | |
CN100456263C (zh) | 在税控收款机中使用闪存时处理坏块的方法 | |
CN102004697B (zh) | 一种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 |
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. |
|
CP01 | Change in the name or title of a patent holder | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130424 Termination date: 20211231 |
|
CF01 | Termination of patent right due to non-payment of annual fee |