[发明专利]一种闪存块磨损平衡的方法和系统有效
| 申请号: | 200810246651.3 | 申请日: | 2008-12-29 |
| 公开(公告)号: | CN101458661A | 公开(公告)日: | 2009-06-17 |
| 发明(设计)人: | 陆舟;于华章 | 申请(专利权)人: | 北京飞天诚信科技有限公司 |
| 主分类号: | G06F12/06 | 分类号: | G06F12/06;G06F12/16 |
| 代理公司: | 北京三高永信知识产权代理有限责任公司 | 代理人: | 何文彬 |
| 地址: | 100083北京*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 闪存 磨损 平衡 方法 系统 | ||
技术领域
本发明涉及存储技术领域,特别涉及一种闪存块磨损平衡的方法和系统。
背景技术
随着计算机的普及,各种存储介质越来越受到人们的关注。而闪存由于其存储的便捷性和传输速率的高速性受到了人们的重视,并被很块地应用到了各个领域。闪存采用的是半导体技术,与普通硬盘、光盘类的存储介质相比,闪存是相对静态的;并且拥有较小的体积,便于携带;而且随着半导体技术的发展,闪存的价格也在不断地下降,因此,目前大多存储介质采用闪存技术。
闪存也可以称为Flash ROM,它是一种电擦除非易失性(在断电的情况下仍能够保持所存储的数据信息)存储器,由浮栅型场效应管构成。写入数据时,利用热电子注入,使浮栅带电;擦除数据时,利用高压下的隧道效应,使浮栅失去电子。通过改变浮栅的状态进行数据的存储,具有可多次擦写的特点。
闪存的存储方式通常是这样的:为了增加传输的速度,大部分闪存都不是采用单字节的方式进行数据传输,而是以(逻辑)块为单位进行的。由于闪存的工作方式是通过采用热电子注入使浮栅带电来存储信息的,因此其存储信息的过程具有一定的特殊性。闪存在写入数据时,所要写入的块的写入区必须是空白的,存储有信息的闪存都不能满足这个条件。所以在写入数据之前,必须先进行块的擦除操作,将块中写入区域存储的信息变为空白,然后才能进行写操作,这就是一个写的生命周期。由于数据的传输、访问是以块为单位进行的,因此每次修改,即使是一个字节数据的修改,也要将数据所在的逻辑块擦除干净,再将新的信息写入。因此,如果频繁的更改某一块的数据就会造成该块的寿命减少,最终使该块成为坏块。
现有技术中,闪存的逻辑块通常都是被编号的。假设一个闪存共有100个逻辑块,每个逻辑块的大小是512字节,但是在闪存实际工作过程中,每个逻辑块的实际存储量是511字节,因为每个逻辑块的首字节是不存储数据的,这个字节用来存储逻辑块的逻辑块号信息。
在存储一个文件时,闪存会查找一系列空的逻辑块,并用逻辑块号将这一系列逻辑块联系起来。假设创建一个大小为1024字节的文件,需要三个逻辑块才能存储下,该文件数据区的存储可以如图1所示。每个逻辑块块头标志该逻辑块的逻辑块号。需要说明的是,在一个文件所包含的逻辑块中,逻辑块号不一定按顺序相连。
为了操作简单,闪存进行擦除写入时都是先将编号靠前的块进行擦写,久而久之就会影响闪存的寿命。经过实验证明,闪存的可擦写寿命一般是十万次。如果我们每次都利用编号靠前的逻辑块进行写操作而忽视了编号靠后的逻辑块,导致的后果就是,编号靠前的逻辑块在不断的加电失电的过程中被大大的磨损,而编号靠后的逻辑块却几乎没有被应用,这必然会大大减少闪存的寿命,造成资源的极大浪费,同时也会使闪存使用者的利益受到损害。
目前出现了利用平衡的方法增加闪存寿命的技术,所谓平衡就是将对逻辑块擦写的次数平均到每一个逻辑块,使其受到的磨损状况大致相同,避免坏块的提早产生。
现在所采取的平衡技术,一般都是这样进行的:在每一个逻辑块上取两个字节单位,第一个字节对逻辑块进行编号,记录其逻辑块的ID;另一个字节为计数器,记录该ID的逻辑块擦写的次数。在每次将要进行擦写操作时,系统寻找计数器中被擦写次数最小的逻辑块进行擦写,使每个逻辑块受到的磨损的几率相同,能够延长闪存的寿命。
发明人认为现有技术至少存在以下缺点:
1、需要为计数器单独设置一个空间,造成了存储空间的额外开支,实际上减少了存储空间;
2、由于每次都是寻找计数器最小的逻辑块,而不是连续的进行擦除写入,导致了存储信息的不连贯,不便于管理;
3、存储过程中需要对计数器进行查找等操作,程序控制复杂,降低了执行效率;
4、在发生异常的情况下,逻辑块中用来存储计数器擦写次数的信息容易发生丢失,不能完全保障达到磨损平衡。
发明内容
为了提高闪存的使用寿命、达到闪存存储空间的磨损平衡,本发明提供了一种闪存块磨损平衡的方法和系统。所述技术方案如下:
一种闪存块磨损平衡的方法,包括:
接收到向第一逻辑块写入新数据的指令;
判断所述第一逻辑块的写入区域是否为空;
如果为空白区域,则直接将新数据写入所述第一逻辑块的写入区域,写入操作结束;
如果不为空白区域,则获取备份块的位置;
将所述第一逻辑块中的数据读入内存,在所述内存中将所述第一逻辑块中的数据更新为欲写入所述第一逻辑块中的写入数据;
将所述写入数据写入所述备份块;
擦除所述第一逻辑块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京飞天诚信科技有限公司,未经北京飞天诚信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810246651.3/2.html,转载请声明来源钻瓜专利网。





