减少闪存0号块磨损的方法及系统与流程

文档序号:15491935发布日期:2018-09-21 20:46阅读:160来源:国知局

本发明涉及储存技术领域,具体地,涉及减少闪存0号块磨损的方法及系统。



背景技术:

闪存厂商一般保证新出厂的闪存0号块即第0块的擦写次数。0号块一般用来存储整个闪存的管理信息,如哪些块有数据,哪些块空闲,0号块的读写次数一般要远高于其他块,但如果0号块失效,则整个闪存失效,这种情况类似于硬盘的0磁道。本发明目的在于减少0号块的擦写次数,减少0号块的磨损。专利文献cn102789423b公开了一种四池闪存磨损均衡方法,采用多池存储管理结构,引入磨损率的概念,用于标识某块趋于坏块的程度,能够更客观的反应块的磨损。结合可擦写次数,能够更加有效地反映出块的磨损状况,所据以确定的磨损均衡方法能够更准确的实现与非闪存的磨损均衡。但该专利文献解决的是普通块的磨损,无法解决减少0号块磨损的问题。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种减少闪存0号块的方法及系统。

根据本发明提供的减少闪存0号块磨损的方法,包含写入步骤,所述写入步骤包含以下步骤:

标记写入步骤:在0号块的一页中写入标记;其中,所述0号块是指闪存中的第0块;

管理信息写入步骤:写入标记后,在普通块的一页中写入管理信息;所述普通块是指闪存中的非0号块的存储块;

换页判断步骤:判断0号块所有页是否已经全部写入,若是,则认为0号块已写满;若否,则0号块换页并返回执行所述标记写入步骤。

优选地,所述写入步骤还包含擦除步骤:当0号块已写满后,对0号块进行擦除操作,返回执行标记写入步骤。

优选地,所述标记代表对应管理信息的有效性;

标记占用1个字节;0号块擦除操作后,标记为0xff,代表对应的管理信息无效。

优选地,在所述管理信息写入步骤中,普通块的每一页写入四次管理信息;

四个所述管理信息的地址连续。

优选地,还包含读取步骤,所述读取步骤包含:

标记读取步骤:读取标记;

标记纠错步骤:对标记进行纠错;

有效判断步骤:判断纠错后的标记是否代表对应的管理信息有效,若是,返回标记读取步骤;若否,读取相邻的前一管理信息;

管理信息纠错步骤:对管理信息进行纠错。

本发明还提供了一种减少闪存0号块磨损的系统,包含写入模块,所述写入模块包含以下模块:

标记写入模块:在0号块的一页中写入标记;其中,所述0号块是指闪存中的第0块;

管理信息写入模块:写入标记后,在普通块的一页中写入管理信息;所述普通块是指闪存中的非0号块的存储块;

换页判断模块:判断0号块所有页是否已经全部写入,若是,则认为0号块已写满;若否,则0号块换页并返回执行所述标记写入模块。

优选地,所述写入模块还包含擦除模块:当0号块已写满后,对0号块进行擦除操作,返回执行标记写入模块。

优选地,所述标记代表对应管理信息的有效性;

标记占用1个字节;0号块擦除操作后,标记为0xff,代表对应的管理信息无效。

优选地,在所述管理信息写入模块中,普通块的每一页写入四次管理信息;

四个所述管理信息的地址连续。

优选地,还包含读取模块,所述读取模块包含:

标记读取模块:读取标记;

标记纠错模块:对标记进行纠错;

有效判断模块:判断纠错后的标记是否代表对应的管理信息有效,若是,返回标记读取模块;若否,读取相邻的前一管理信息;

管理信息纠错模块:对管理信息进行纠错。

与现有技术相比,本发明具有如下的有益效果:

1、以一片4gbit的闪存为例,厂商保证0号块擦写次数为1024次以上,如果不采用本发明的方法,1024次以后0号块有可能失效,造成整个闪存失效。4gbit的闪存每块有64个页,每页能够连续地址的写入四次,如果采取本发明的办法,写入次数是原先的64*4=256倍。

2、如果不采用本发明的办法,通常的做法会使用内存,一般情况下不写闪存,在关机断电前写入,这种做法的问题是,如果意外断电,管理信息会因未及时写入闪存而被破坏。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为减少闪存0号块磨损的方法的示意图;

图2为写入步骤流程图;

图3为读取步骤流程图;

图4为减少闪存0号块磨损的系统的结构示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。

常见闪存的0号块即第0块,保证1024次擦除和写入,擦除后所有位为1,并允许每一页可地址连续地写入四次。本发明提供的减少闪存0号块磨损的系统包含写入模块,所述写入模块包含:标记写入模块:在0号块的一页中写入标记;其中,所述0号块是指闪存中的第0块;管理信息写入模块:写入标记后,在普通块的一页中写入管理信息;所述普通块是指闪存中的非0号块的存储块;换页判断模块:判断0号块所有页是否已经全部写入,若是,则认为0号块已写满;若否,则0号块换页并返回执行所述标记写入模块。优选地,还包含擦除模块:当0号块已写满后,对0号块进行擦除操作,返回执行标记写入模块。上述标记占用1个字节,代表对应的管理信息的有效性。由于块擦除后未写入前,所有位为1,所以0xff代表后面的管理信息无效。代表对应的管理信息有效的取值,可以在一定范围内选取,只要保证能够做纠错算法。在所述管理信息写入模块中,普通块的每一页写入四次管理信息;四个所述管理信息的地址连续。

本发明提供的减少闪存0号块磨损的系统还包含读取模块,所述读取模块包含:标记读取模块:读取标记;标记纠错模块:对标记进行纠错;有效判断模块:判断纠错后的标记是否代表对应的管理信息有效,若是,返回标记读取模块;若否,读取相邻的前一管理信息;管理信息纠错模块:对管理信息进行纠错。优选地,标记的纠错可以采用以下办法,选取标记其中的一位,0代表有效,1代表无效,再另外选取两位进行3模冗余。优选地,管理信息采用汉明码的方法。

所述减少闪存0号块磨损的系统可以通过本发明提供的减少闪存0号块磨损的方法的步骤流程实现,本领域技术人员可以将所述减少闪存0号块磨损的方法理解为所述减少闪存0号块磨损的系统的具体实施例。

本发明还提供了一种减少闪存0号块磨损的方法,如图1所示,包含写入步骤,所述写入步骤包含:标记写入步骤:在0号块的一页中写入标记;其中,所述0号块是指闪存中的第0块;管理信息写入步骤:写入标记后,在普通块的一页中写入管理信息;所述普通块是指闪存中的非0号块的存储块;换页判断步骤:判断0号块所有页是否已经全部写入,若是,则认为0号块已写满;若否,则0号块换页并返回执行所述标记写入步骤。还包含擦除步骤:当0号块已写满后,对0号块进行擦除操作,返回执行标记写入步骤。所述标记代表对应管理信息的有效性;标记占用1个字节;0号块擦除操作后,标记为0xff,代表对应的管理信息无效在所述管理信息写入步骤中,普通块的每一页写入四次管理信息;四个所述管理信息的地址连续。本发明提供的减少闪存0号块磨损的方法,还包含读取步骤,所述读取步骤包含:标记读取步骤:读取标记;标记纠错步骤:对标记进行纠错;有效判断步骤:判断纠错后的标记是否代表对应的管理信息有效,若是,返回标记读取步骤;若否,读取相邻的前一管理信息;管理信息纠错步骤:对管理信息进行纠错。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

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