一种闪存数据存储方法和装置的制作方法

文档序号:6779780阅读:163来源:国知局
专利名称:一种闪存数据存储方法和装置的制作方法
技术领域
本发明涉及存储技术领域,特别是涉及一种闪存数据存储方法和装置。
背景技术
闪存(FlashMemory, Flash),作为一种非挥发性的半导体存储芯片, 它在没有电流供应的条件下也能够长久地保存凄t据,而挥发性的内存(如 DDR、 SDRAM或者RDRAM)只要停止电流供应,那么数据便无法保存。因 此,闪存成为了各类便携型数字设备的存储介质的基础,普遍应用于数码电 视、数码便携式摄像机、移动电话、数码相机、掌上电脑(Personal Digital Assistant , PDA)、游戏机、MP3播放器等设备中。
闪存由许多个块(block)组成,每个块(block)包括64页(page),每 一个页(page)包括4个扇区(sector)。闪存的写入才喿作必须在空白区域进 行,如果目标区域已经有数据,必须先擦除后写入,因此当对闪存进行读写 的次数多了 , 一个块中就可能出现坏扇区。为了防止由于将凄史据写到坏扇区, 而造成数据的丟失,通常采用的方法为在使用闪存前,对闪存先进行初始 化扫描,只要一个块中出现一个坏扇区,即将整个块标记为坏块,然后将数 据存储到好块中,该方法通过防止将数据写到坏扇区来实现数据的安全存储。
但是,由于闪存具有不稳定性,表现为本次扫描的坏扇区,下次再扫描 可能是好扇区,而本次扫描的好扇区,下次再扫描可能是坏扇区,因此运用 上述方法,在本次已将数据存储到好块的情况下,下次需要读取该lt据时, 可能会在闪存使用前的扫描中,发现该块中有坏扇区而将该数据存储块标记 为坏块,然后进行屏蔽,从而无法对该块中的数据进行读取,因此由于闪存 具有不稳定性,该方法实际上并不能防止将数据写到坏扇区,它还是可能会 造成数据的丟失,这样严重影响到用户所存储数据的安全。

发明内容
有鉴于此,本发明解决的问题是提供一种闪存数据存储方法和装置,可 以使用户安全读取到存储在闪存中的数据,避免所存储数据丢失。
为此,本发明提供了一种闪存数据存储方法,包括以下步骤 扫描闪存;
根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正 常页;
当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操
作;
当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作。
优选地,所述第一预定操作为在每个正常页中的三个扇区写入需要存 储的数据,在余下的一个扇区写入特定数据。
优选地,所述特定数据通过对其他三个扇区中写入的数据执行异或运算 获得。
优选地,所述第二预定操作为将需要存储的数据写入每个正常页的四 个扇区。
优选地,所述预设值根据所存储数据的重要性进行设定。 本发明还提供了一种闪存数据存储装置,包括 扫描单元,用于扫描闪存;
设置单元,用于根据扫描结果,设置坏扇区所在页为禁止写入页,没有 坏扇区的页为正常页;
第一执行单元,用于当扫描出的坏扇区数小于或等于预设值时,对正常 页执行第一预定操作;
第二执行单元,用于当扫描出的扇区数大于预设值时,对正常页执行第 二预定操作。
优选地,所述第一预定操作为在每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入特定数据。
优选地,所述第一执行单元包括运算单元,所述运算单元通过对其他三 个扇区中写入的数据执行异或运算,获得所述特定数据。
优选地,所述特定数据通过对其他三个扇区中写入的数据执行异或运算 获得。
优选地,所述第二预定操作为将需要存储的数据写入每个正常页的四 个扇区。
优选地,所述预设值才艮据所存储数据的重要性进行设定。 与现有技术相比,本发明提供的闪存数据存储方法,通过在存储数据前 扫描闪存,然后才艮据扫描结果,i殳置坏扇区所在页为禁止写入页,没有坏扇 区的页为正常页;当扫描出的坏扇区数小于或等于预设值时,对正常页执行 第一预定操作;当扫描出的坏扇区数大于预设值时,对正常页执行第二预定 操作,从而对在闪存中所要存储的数据进行了^f分,进而使用户安全读取到 在闪存中存储的数据,避免所存储数据丢失,实现数据在闪存内的安全存储。


图1是本发明提供的闪存数据存储方法的实施例的流程图; 图2为一个正常页中存储数据A、 B、 C、 D的示意图; 图3为一个正常页的扇区中存储数据E的示意图; 图4为本发明提供的闪存数据存储装置的结构示意图。
具体实施例方式
为使本领域技术人员更好地理解本发明,下面结合具体实施例对本发明 提供的数据存储方法作具体说明。
信息是通过语言、文字、声音、图形、图像等信号表示,信息不能独立 存在,它需要转化为某种物理形式存在,即我们通常所说的数据。数据是各 种各样的物理符号及其组合,它反映了信息的内容。数据的形式会随着物理媒介的改变而发生变化。比如, 一首歌,用磁带录制下来,用CD刻录出来, 他们都可以传递歌曲。在磁带上,数据是磁性强度不同的磁信号,在光盘上, 他们是深浅不同的凹坑。但是他们记录的信息是相同的。
在计算机领域,计算机的基本功能是对数据进行运算和加工处理,数据
的类型有两种 一种是数值数据,如3.1416、 -2.71828......,另一种是非数
值数据(信息),如A、 b、 +、=......。无论哪一种数据在计算机中都是用
二进制数码表示的。计算机中只有二进制数值,所有的符号都是用二进制数 值代码表示的,数的正、负号也是用二进制代码表示。数值的最高位用"0"、 'T,分别表示数的正、负号。 一个数(连同符号)在计算机中的表示形式称为 机器数,数值处理采用二进制运算,非数值处理采用二进制编码,它们具有 运算简单、电路实现方便、成本低廉等优点。
基于计算机领域中的数据是用二进制数码来表示,本发明提供了一种闪
存数据存储方法,首先可以对数据进行安全有效的存储,参见图1,具体步 骤如下
步骤S101:扫描闪存。
步骤S102:根据扫描结果,i殳置坏扇区所在页为禁止写入页,没有坏扇 区的页为正常页。
步骤S103:当扫描出的坏扇区数小于或等于预设值时,对正常页执行第 一预定操作;当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操 作。
在数据存储前,需要对闪存进行初始化扫描。
需要说明的是,运用本发明提供的方法,在本次(即当前)需要对闪存 进行凄t据存储时,在初始化扫描中如果发现一个块的某个页中出现坏扇区, 则将该页标记为禁止写入页,禁止对出现问题的坏扇区所在页进行写入操作, 当然,该禁止写入页依然可以进行读取操作。
在这里,禁止写入页之外的其他页为正常页,由于不存在坏扇区,本发 明对其进行数据写入、读取操作。需要说明的是,扫描出的坏块数体现了该闪存的稳定性,坏块数越多, 则该闪存越不稳定。
所述的预设值可以根据所存储数据的重要性进行调整设定,可以为闪存 总块数的一半、三分之一或其他预设定的值。
基于闪存的每个页中包括有4个扇区,所述第一预定操作为在每个正 常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入特定数据, 该特定数据通过对其他三个扇区中写入的数据执行异或运算后得到。
这里,异或是用于逻辑运算的数学运算符。
例如,本次需要存储时,在一个正常页中的三个扇区分别写入要存储的 数据A、 B、 C,在余下的扇区存储特定数据D,那么使所述特定数据D= A B C。图2为在一个正常页中存储数据A、 B、 C、 D的示意图。由于特 定数据D二A6B田C,那么根据异或运算法则,B=A D C, C = A D B, A=B@C D;所以下次对闪存进行读取数据B时,如果B数据所在的扇区 损坏时,可以运算得到B; C数据所在的扇区损坏时,可以运算得到C; A 数据所在的扇区损坏时,可以运算得到A。
计算机中数据的存储是一字节(8BIT)来存储的,假设A为十进制数1, 存储时转化成二进制为00000001; B为十进制数2,存储时转化成二进制为 00000010; C为十进制数4,存储时转化成二进制为00000100,那么对A、 B、 C执行异或运算,D=A B C, D会被存储为二进制00000111,十进制 值为7。
由于闪存的每个页中包括有4个扇区,本次需要将数据写入闪存时,通 过在每个正常页的三个扇区用来存储需要写入的数据, 一个扇区用来存储特 定数据,从而即使在下次进行闪存数据读取时,扫描出数据存储页中的某个 扇区出现损坏,仍然可以还原得到在该扇区所存储的数据,达到安全存储数 据的目的。
目前在使用闪存前,对闪存先进行初始化扫描,只要一个块中出现一个 坏扇区,即将整个块标记为坏块,从而对该块进行屏蔽。本发明在本次存储数据时,通过执行第一预定操作,使得不需由于闪存一个页中有一个坏扇区 时,而对该页所在的整个闪存块执行屏蔽操作,本发明只是禁止对出现问题 的页进行写入操作,从而有效利用了一个块中其他页剩余的好扇区,提高了 闪存的利用率。
所述第二预定4喿作为将需要存储的数据写入一个页的四个扇区。在本 次需要对闪存存储数据时,通过这个才喿作,只要在一个页的四个扇区中还存 在一个好的扇区,那么就能保证下次使用闪存时,能够读到所存储的数据,
使数据不会丟失。假定需要存储的数据为E,图3为在一个页的扇区中存储 数据E的示意图。
需要说明的是,目前的存储方法为如果一个块的一个扇区坏掉了,整 个坏都要屏蔽掉,这样严重减少闪存能够用来存储数据的容量,浪费闪存存 储资源。而运用本发明提供的方法,在本次需要存储数据时,在扫描中发现 有坏扇区,仅禁止对坏扇区所在页进行写入操作,仍然可以对所在页的其他 好扇区进行读取操作,且通过执行第二预定操作,只要下次使用闪存时,闪 存块中存储数据的页的四个扇区中还存在一个好的扇区,就能保证用户可以 读取到所存储的数据,因此,本次存储数据时,通过执行第二预定操作,使 得下次使用闪存时,只有对数据存储页的扇区的扫描结果全是坏扇区时,才 无法读取到该页所存储的数据,从而有效提高了所存储数据的安全性。
本发明还提供了一种闪存数据存储装置,如图4所示,该存储装置包括:
扫描单元401,扫描闪存;
设置单元402,用于4艮据扫描结果,设置坏扇区所在页为禁止写入页, 没有坏扇区的页为正常页;
第一执行单元403,用于当扫描出的坏扇区数小于或等于预设值时,对 正常页执行第一预定操作;
第二执行单元404,用于当扫描出的坏扇区数大于预设值时,对正常页 执行第二预定操作。
在本发明中,所述预设值根据所存储数据的重要性进行调整设定,可以
9为闪存总块数的一半、三分之一或其他预设定的值。
需要说明的是,在所述第一执行单元中包括有运算单元,所述运算单元 通过对其他三个扇区中写入的数据执行异或运算,获得所述特定数据。
在本发明中,基于闪存的每个页中包括有4个扇区,所述第一预定操作 为在每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写 入特定数据。该特定数据通过对其他三个扇区中写入的数据执行异或运算后 得到。
例如,本次需要存储时,在一个正常页中的三个扇区分别写入要存储的 数据A、 B、 C,在余下的扇区存储特定数据D,那么使所述特定数据D= A@B C。图2为在一个正常页中存储数据A、 B、 C、 D的示意图。由于特 定数据D二A6B④C,那么根据异或运算法则,B=A D@C, C = A D B, A=B@C D;所以下次对闪存进行读取数据B时,如果B数据所在的扇区 损坏时,可以运算得到B; C数据所在的扇区损坏时,可以运算得到C; A 数据所在的扇区损坏时,可以运算得到A。
计算机中数据的存储是一字节(8BIT)来存储的,假设A为十进制数1, 存储时转化成二进制为00000001; B为十进制数2,存储时转化成二进制为 00000010; C为十进制数4,存储时转化成二进制为00000100,那么对A、 B、 C执行异或运算,D=A B C, D会被存储为二进制00000111,十进制 值为7。
由于闪存的每个页中包括有4个扇区,本次需要将数据写入闪存时,通 过第一执行单元403在每个正常页的三个扇区用来存储需要写入的数据,一 个扇区用来存储特定数据,从而即使在下次进行闪存数据读取时,扫描单元 40扫描出数据存储页中的某个扇区出现损坏,仍然可以还原得到在该扇区所 存储的数据,达到安全存储数据的目的。
目前在使用闪存前,对闪存先进行初始化扫描,只要一个块中出现一个 坏扇区,即将整个块标记为坏块,乂人而对该块进行屏蔽。本发明在本次存储 数据时,通过第一执行单元403执行第一预定操作,使得不需由于闪存一个页中有一个坏扇区时,而对该页所在的整个闪存块执行屏蔽操作,本发明只 是禁止对出现问题的页进行写入操作,从而有效利用了一个块中其他页剩余 的好扇区,4是高了闪存的利用率。
所述第二预定操作为将需要存储的数据写入一个页的四个扇区。在本
次需要对闪存存储数据时,通过这个才乘作,只要在一个页的四个扇区中还存 在一个好的扇区,那么就能保证下次使用闪存时,能够读到所存储的数据,
使数据不会丟失。假定需要存储的数据为E,图3为在一个页的扇区中存储 数据E的示意图。
需要说明的是,目前的存储方法为如果一个块的一个扇区坏掉了,整 个坏都要屏蔽掉,这样严重减少闪存能够用来存储数据的容量,浪费闪存存 储资源。而运用本发明提供的装置,在本次需要存储数据时,扫描单元401 发现闪存中有坏扇区,通过设置单元402仅禁止对坏扇区所在页进行写入操 作,仍然可以对所在页的其他好扇区进行读取操作,且通过第二执行单元404 执行第二预定操作,只要下次使用闪存时,闪存块中存储数据的页的四个扇 区中还存在一个好的扇区,就能保证用户可以读取到所存储的数据,因此, 本次存储数据时,通过第二执行单元404执行第二预定操作,使得下次使用闪 存时,只有对数据存储页的扇区的扫描结果全是坏扇区时,才无法读取到该 页所存储的数据,从而有效提高了所存储数据的安全性。
这里,异或是用于逻辑运算的数学运算符。
以上所述仅是本发明的优选实施方式,并不用以限制本发明。应当指出, 对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可 以做出若干修改,所作的任何修改、等同替换、改进等,均应包含在本发明 的保护范围之内。
权利要求
1、一种闪存数据存储方法,其特征在于,包括以下步骤扫描闪存;根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操作;当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作。
2、 如权利要求1所述的方法,其特征在于,所述第一预定操作为在 每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入特定 数据。
3、 如权利要求2所述的方法,其特征在于,所述特定数据通过对其他 三个扇区中写入的数据执行异或运算获得。
4、 如权利要求1所述的方法,其特征在于,所述第二预定梯:作为将 需要存储的数据写入每个正常页的四个扇区。
5、 如权利要求1至4任一项所述的方法,其特征在于,所述预设值根 据所存储数据的重要性进行设定。
6、 一种闪存数据存储装置,其特征在于,包括 扫描单元,用于扫描闪存;设置单元,用于根据扫描结果,设置坏扇区所在页为禁止写入页,没有 坏扇区的页为正常页;第一执行单元,用于当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操作;第二执行单元,用于当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作。
7、 如权利要求6所述的装置,其特征在于,所述第一预定操作为在 每个正常页中的三个扇区写入需要存储的邀:据,在余下的一个扇区写入特定数据。
8、 如权利要求7所述的装置,其特征在于,所述第一执行单元包括运 算单元,所述运算单元通&于其他三个扇区中写入的数据执行异或运算,获 得所述特定数据。
9、 如权利要求7所述的装置,其特征在于,所述特定数据通过对其他 三个扇区中写入的数据执行异或运算获得。
10、 如权利要求6所述的装置,其特征在于,所述第二预定操作为将 需要存储的数据写入每个正常页的四个扇区。
11、 如权利要求6至IO任一项所述的装置,其特征在于,所述预设值根 据所存储数据的重要性进行设定。
全文摘要
本发明公开了闪存数据存储方法,包括步骤扫描闪存;根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操作;当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作。通过本发明提供的存储方法,可以对在闪存中所存储的数据进行备份,可以使用户安全读取到存储在闪存中的数据,避免所存储数据丢失,实现数据件在闪存内的安全存储。此外,本发明还公开了一种闪存数据存储装置。
文档编号G11C16/06GK101425337SQ20071018159
公开日2009年5月6日 申请日期2007年10月29日 优先权日2007年10月29日
发明者勤 范 申请人:芯邦科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1