CN101425337B - 一种闪存数据存储方法和装置 - Google Patents

一种闪存数据存储方法和装置 Download PDF

Info

Publication number
CN101425337B
CN101425337B CN2007101815955A CN200710181595A CN101425337B CN 101425337 B CN101425337 B CN 101425337B CN 2007101815955 A CN2007101815955 A CN 2007101815955A CN 200710181595 A CN200710181595 A CN 200710181595A CN 101425337 B CN101425337 B CN 101425337B
Authority
CN
China
Prior art keywords
data
page
flash memory
storage
write
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.)
Active
Application number
CN2007101815955A
Other languages
English (en)
Other versions
CN101425337A (zh
Inventor
范勤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Chipsbank Technology Co., Ltd.
Original Assignee
CHIPSBANK TECHNOLOGY (SHENZHEN) Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CHIPSBANK TECHNOLOGY (SHENZHEN) Co Ltd filed Critical CHIPSBANK TECHNOLOGY (SHENZHEN) Co Ltd
Priority to CN2007101815955A priority Critical patent/CN101425337B/zh
Publication of CN101425337A publication Critical patent/CN101425337A/zh
Application granted granted Critical
Publication of CN101425337B publication Critical patent/CN101425337B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了闪存数据存储方法,包括步骤:扫描闪存;根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操作;当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作。通过本发明提供的存储方法,可以对在闪存中所存储的数据进行备份,可以使用户安全读取到存储在闪存中的数据,避免所存储数据丢失,实现数据件在闪存内的安全存储。此外,本发明还公开了一种闪存数据存储装置。

Description

一种闪存数据存储方法和装置
技术领域
本发明涉及存储技术领域,特别是涉及一种闪存数据存储方法和装置。
背景技术
闪存(Flash Memory,Flash),作为一种非挥发性的半导体存储芯片,它在没有电流供应的条件下也能够长久地保存数据,而挥发性的内存(如DDR、SDRAM或者RDRAM)只要停止电流供应,那么数据便无法保存。因此,闪存成为了各类便携型数字设备的存储介质的基础,普遍应用于数码电视、数码便携式摄像机、移动电话、数码相机、掌上电脑(Personal DigitalAssistant,PDA)、游戏机、MP3播放器等设备中。
闪存由许多个块(block)组成,每个块(block)包括64页(page),每一个页(page)包括4个扇区(sector)。闪存的写入操作必须在空白区域进行,如果目标区域已经有数据,必须先擦除后写入,因此当对闪存进行读写的次数多了,一个块中就可能出现坏扇区。为了防止由于将数据写到坏扇区,而造成数据的丢失,通常采用的方法为:在使用闪存前,对闪存先进行初始化扫描,只要一个块中出现一个坏扇区,即将整个块标记为坏块,然后将数据存储到好块中,该方法通过防止将数据写到坏扇区来实现数据的安全存储。
但是,由于闪存具有不稳定性,表现为本次扫描的坏扇区,下次再扫描可能是好扇区,而本次扫描的好扇区,下次再扫描可能是坏扇区,因此运用上述方法,在本次已将数据存储到好块的情况下,下次需要读取该数据时,可能会在闪存使用前的扫描中,发现该块中有坏扇区而将该数据存储块标记为坏块,然后进行屏蔽,从而无法对该块中的数据进行读取,因此由于闪存具有不稳定性,该方法实际上并不能防止将数据写到坏扇区,它还是可能会造成数据的丢失,这样严重影响到用户所存储数据的安全。
发明内容
有鉴于此,本发明解决的问题是提供一种闪存数据存储方法和装置,可以使用户安全读取到存储在闪存中的数据,避免所存储数据丢失。
为此,本发明提供了一种闪存数据存储方法,包括以下步骤:
扫描闪存;
根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;
当扫描出的坏扇区数小于或等于预设值时,在每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入特定数据;
当扫描出的坏扇区数大于预设值时,将需要存储的数据重复写入每个正常页的四个扇区。
优选地,所述特定数据通过对其他三个扇区中写入的数据执行异或运算获得。
优选地,所述预设值根据所存储数据的重要性进行设定。
本发明还提供了一种闪存数据存储装置,包括:
扫描单元,用于扫描闪存;
设置单元,用于根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;
第一执行单元,用于当扫描出的坏扇区数小于或等于预设值时,在每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入特定数据;
第二执行单元,用于当扫描出的扇区数大于预设值时,将需要存储的数据重复写入每个正常页的四个扇区。
优选地,所述第一执行单元包括运算单元,所述运算单元通过对其他三个扇区中写入的数据执行异或运算,获得所述特定数据。
优选地,所述预设值根据所存储数据的重要性进行设定。
与现有技术相比,本发明提供的闪存数据存储方法,通过在存储数据前扫描闪存,然后根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操作;当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作,从而对在闪存中所要存储的数据进行了备份,进而使用户安全读取到在闪存中存储的数据,避免所存储数据丢失,实现数据在闪存内的安全存储。
附图说明
图1是本发明提供的闪存数据存储方法的实施例的流程图;
图2为一个正常页中存储数据A、B、C、D的示意图;
图3为一个正常页的扇区中存储数据E的示意图;
图4为本发明提供的闪存数据存储装置的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明,下面结合具体实施例对本发明提供的数据存储方法作具体说明。
信息是通过语言、文字、声音、图形、图像等信号表示,信息不能独立存在,它需要转化为某种物理形式存在,即我们通常所说的数据。数据是各种各样的物理符号及其组合,它反映了信息的内容。数据的形式会随着物理媒介的改变而发生变化。比如,一首歌,用磁带录制下来,用CD刻录出来,他们都可以传递歌曲。在磁带上,数据是磁性强度不同的磁信号,在光盘上,他们是深浅不同的凹坑。但是他们记录的信息是相同的。
在计算机领域,计算机的基本功能是对数据进行运算和加工处理,数据的类型有两种:一种是数值数据,如3.1416、-2.71828……,另一种是非数值数据(信息),如A、b、+、=……。无论哪一种数据在计算机中都是用二进制数码表示的。计算机中只有二进制数值,所有的符号都是用二进制数值代码表示的,数的正、负号也是用二进制代码表示。数值的最高位用“0”、“1”分别表示数的正、负号。一个数(连同符号)在计算机中的表示形式称为机器数,数值处理采用二进制运算,非数值处理采用二进制编码,它们具有运算简单、电路实现方便、成本低廉等优点。
基于计算机领域中的数据是用二进制数码来表示,本发明提供了一种闪存数据存储方法,首先可以对数据进行安全有效的存储,参见图1,具体步骤如下:
步骤S101:扫描闪存。
步骤S102:根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页。
步骤S103:当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操作;当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作。
在数据存储前,需要对闪存进行初始化扫描。
需要说明的是,运用本发明提供的方法,在本次(即当前)需要对闪存进行数据存储时,在初始化扫描中如果发现一个块的某个页中出现坏扇区,则将该页标记为禁止写入页,禁止对出现问题的坏扇区所在页进行写入操作,当然,该禁止写入页依然可以进行读取操作。
在这里,禁止写入页之外的其他页为正常页,由于不存在坏扇区,本发明对其进行数据写入、读取操作。
需要说明的是,扫描出的坏块数体现了该闪存的稳定性,坏块数越多,则该闪存越不稳定。
所述的预设值可以根据所存储数据的重要性进行调整设定,可以为闪存总块数的一半、三分之一或其他预设定的值。
基于闪存的每个页中包括有4个扇区,所述第一预定操作为:在每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入特定数据,该特定数据通过对其他三个扇区中写入的数据执行异或运算后得到。
这里,异或是用于逻辑运算的数学运算符。
例如,本次需要存储时,在一个正常页中的三个扇区分别写入要存储的数据A、B、C,在余下的扇区存储特定数据D,那么使所述特定数据
Figure GSB00000441873800052
图2为在一个正常页中存储数据A、B、C、D的示意图。由于特定数据
Figure GSB00000441873800053
那么根据异或运算法则,
Figure GSB00000441873800054
Figure GSB00000441873800055
所以下次对闪存进行读取数据B时,如果B数据所在的扇区损坏时,可以运算得到B;C数据所在的扇区损坏时,可以运算得到C;A数据所在的扇区损坏时,可以运算得到A。
计算机中数据的存储是一字节(8BIT)来存储的,假设A为十进制数1,存储时转化成二进制为00000001;B为十进制数2,存储时转化成二进制为00000010;C为十进制数4,存储时转化成二进制为00000100,那么对A、B、C执行异或运算,D会被存储为二进制00000111,十进制值为7。
由于闪存的每个页中包括有4个扇区,本次需要将数据写入闪存时,通过在每个正常页的三个扇区用来存储需要写入的数据,一个扇区用来存储特定数据,从而即使在下次进行闪存数据读取时,扫描出数据存储页中的某个扇区出现损坏,仍然可以还原得到在该扇区所存储的数据,达到安全存储数据的目的。
目前在使用闪存前,对闪存先进行初始化扫描,只要一个块中出现一个坏扇区,即将整个块标记为坏块,从而对该块进行屏蔽。本发明在本次存储数据时,通过执行第一预定操作,使得不需由于闪存一个页中有一个坏扇区时,而对该页所在的整个闪存块执行屏蔽操作,本发明只是禁止对出现问题的页进行写入操作,从而有效利用了一个块中其他页剩余的好扇区,提高了闪存的利用率。
所述第二预定操作为:将需要存储的数据写入一个页的四个扇区。在本次需要对闪存存储数据时,通过这个操作,只要在一个页的四个扇区中还存在一个好的扇区,那么就能保证下次使用闪存时,能够读到所存储的数据,使数据不会丢失。假定需要存储的数据为E,图3为在一个页的扇区中存储数据E的示意图。
需要说明的是,目前的存储方法为:如果一个块的一个扇区坏掉了,整个坏都要屏蔽掉,这样严重减少闪存能够用来存储数据的容量,浪费闪存存储资源。而运用本发明提供的方法,在本次需要存储数据时,在扫描中发现有坏扇区,仅禁止对坏扇区所在页进行写入操作,仍然可以对所在页的其他好扇区进行读取操作,且通过执行第二预定操作,只要下次使用闪存时,闪存块中存储数据的页的四个扇区中还存在一个好的扇区,就能保证用户可以读取到所存储的数据,因此,本次存储数据时,通过执行第二预定操作,使得下次使用闪存时,只有对数据存储页的扇区的扫描结果全是坏扇区时,才无法读取到该页所存储的数据,从而有效提高了所存储数据的安全性。
本发明还提供了一种闪存数据存储装置,如图4所示,该存储装置包括:
扫描单元401,扫描闪存;
设置单元402,用于根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;
第一执行单元403,用于当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操作;
第二执行单元404,用于当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作。
在本发明中,所述预设值根据所存储数据的重要性进行调整设定,可以为闪存总块数的一半、三分之一或其他预设定的值。
需要说明的是,在所述第一执行单元中包括有运算单元,所述运算单元通过对其他三个扇区中写入的数据执行异或运算,获得所述特定数据。
在本发明中,基于闪存的每个页中包括有4个扇区,所述第一预定操作为:在每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入特定数据。该特定数据通过对其他三个扇区中写入的数据执行异或运算后得到。
例如,本次需要存储时,在一个正常页中的三个扇区分别写入要存储的数据A、B、C,在余下的扇区存储特定数据D,那么使所述特定数据
Figure GSB00000441873800071
图2为在一个正常页中存储数据A、B、C、D的示意图。由于特定数据
Figure GSB00000441873800072
那么根据异或运算法则,
Figure GSB00000441873800073
所以下次对闪存进行读取数据B时,如果B数据所在的扇区损坏时,可以运算得到B;C数据所在的扇区损坏时,可以运算得到C;A数据所在的扇区损坏时,可以运算得到A。
计算机中数据的存储是一字节(8BIT)来存储的,假设A为十进制数1,存储时转化成二进制为00000001;B为十进制数2,存储时转化成二进制为00000010;C为十进制数4,存储时转化成二进制为00000100,那么对A、B、C执行异或运算,
Figure GSB00000441873800075
D会被存储为二进制00000111,十进制值为7。
由于闪存的每个页中包括有4个扇区,本次需要将数据写入闪存时,通过第一执行单元403在每个正常页的三个扇区用来存储需要写入的数据,一个扇区用来存储特定数据,从而即使在下次进行闪存数据读取时,扫描单元40扫描出数据存储页中的某个扇区出现损坏,仍然可以还原得到在该扇区所存储的数据,达到安全存储数据的目的。
目前在使用闪存前,对闪存先进行初始化扫描,只要一个块中出现一个坏扇区,即将整个块标记为坏块,从而对该块进行屏蔽。本发明在本次存储数据时,通过第一执行单元403执行第一预定操作,使得不需由于闪存一个页中有一个坏扇区时,而对该页所在的整个闪存块执行屏蔽操作,本发明只是禁止对出现问题的页进行写入操作,从而有效利用了一个块中其他页剩余的好扇区,提高了闪存的利用率。
所述第二预定操作为:将需要存储的数据写入一个页的四个扇区。在本次需要对闪存存储数据时,通过这个操作,只要在一个页的四个扇区中还存在一个好的扇区,那么就能保证下次使用闪存时,能够读到所存储的数据,使数据不会丢失。假定需要存储的数据为E,图3为在一个页的扇区中存储数据E的示意图。
需要说明的是,目前的存储方法为:如果一个块的一个扇区坏掉了,整个坏都要屏蔽掉,这样严重减少闪存能够用来存储数据的容量,浪费闪存存储资源。而运用本发明提供的装置,在本次需要存储数据时,扫描单元401发现闪存中有坏扇区,通过设置单元402仅禁止对坏扇区所在页进行写入操作,仍然可以对所在页的其他好扇区进行读取操作,且通过第二执行单元404执行第二预定操作,只要下次使用闪存时,闪存块中存储数据的页的四个扇区中还存在一个好的扇区,就能保证用户可以读取到所存储的数据,因此,本次存储数据时,通过第二执行单元404执行第二预定操作,使得下次使用闪存时,只有对数据存储页的扇区的扫描结果全是坏扇区时,才无法读取到该页所存储的数据,从而有效提高了所存储数据的安全性。
这里,异或是用于逻辑运算的数学运算符。
以上所述仅是本发明的优选实施方式,并不用以限制本发明。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干修改,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种闪存数据存储方法,其特征在于,包括以下步骤:
扫描闪存;
根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;
当扫描出的坏扇区数小于或等于预设值时,在每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入特定数据;
当扫描出的坏扇区数大于预设值时,将需要存储的数据重复写入每个正常页的四个扇区。
2.如权利要求1所述的方法,其特征在于,所述特定数据通过对其他三个扇区中写入的数据执行异或运算获得。
3.如权利要求1或2所述的方法,其特征在于,所述预设值根据所存储数据的重要性进行设定。
4.一种闪存数据存储装置,其特征在于,包括:
扫描单元,用于扫描闪存;
设置单元,用于根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;
第一执行单元,用于当扫描出的坏扇区数小于或等于预设值时,在每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入特定数据;
第二执行单元,用于当扫描出的坏扇区数大于预设值时,将需要存储的数据重复写入每个正常页的四个扇区。
5.如权利要求4所述的装置,其特征在于,所述第一执行单元包括运算单元,所述运算单元通过对其他三个扇区中写入的数据执行异或运算,获得所述特定数据。
6.如权利要求4或5所述的装置,其特征在于,所述预设值根据所存储数据的重要性进行设定。
CN2007101815955A 2007-10-29 2007-10-29 一种闪存数据存储方法和装置 Active CN101425337B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101815955A CN101425337B (zh) 2007-10-29 2007-10-29 一种闪存数据存储方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101815955A CN101425337B (zh) 2007-10-29 2007-10-29 一种闪存数据存储方法和装置

Publications (2)

Publication Number Publication Date
CN101425337A CN101425337A (zh) 2009-05-06
CN101425337B true CN101425337B (zh) 2011-11-30

Family

ID=40615878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101815955A Active CN101425337B (zh) 2007-10-29 2007-10-29 一种闪存数据存储方法和装置

Country Status (1)

Country Link
CN (1) CN101425337B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015082240A (ja) * 2013-10-23 2015-04-27 株式会社東芝 ストレージ装置、キャッシュコントローラ、及び不揮発性記憶媒体にデータを書き込む方法
CN109979518B (zh) * 2019-03-07 2021-04-20 深圳警翼智能科技股份有限公司 用于执法记录仪存储介质的坏区标识方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1143812A (zh) * 1995-08-18 1997-02-26 三菱电机株式会社 存储装置
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
US6965526B2 (en) * 2003-02-10 2005-11-15 Stmicroelectronics Sa. Sectored flash memory comprising means for controlling and for refreshing memory cells
CN1700189A (zh) * 2005-06-01 2005-11-23 瑞程科技股份有限公司 闪存储存系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1143812A (zh) * 1995-08-18 1997-02-26 三菱电机株式会社 存储装置
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
US6965526B2 (en) * 2003-02-10 2005-11-15 Stmicroelectronics Sa. Sectored flash memory comprising means for controlling and for refreshing memory cells
CN1700189A (zh) * 2005-06-01 2005-11-23 瑞程科技股份有限公司 闪存储存系统

Also Published As

Publication number Publication date
CN101425337A (zh) 2009-05-06

Similar Documents

Publication Publication Date Title
CN101441891B (zh) 一种提高闪存利用率的方法
CN101763895B (zh) 具有随机化器/去随机化器的数据存储系统和设备
CN105786403B (zh) 包括缓冲器和主存储器的存储装置及用户装置
US7107389B2 (en) Semiconductor memory device and method for writing data into flash memory
US9043549B2 (en) Memory storage apparatus, memory controller, and method for transmitting and identifying data stream
KR101115843B1 (ko) 반도체 메모리장치
US7934053B2 (en) Flash memory storage device for adjusting efficiency in accessing flash memory
US20110202709A1 (en) Optimizing storage of common patterns in flash memory
US20090323419A1 (en) Read-time wear-leveling method in storage system using flash memory device
US20100287427A1 (en) Flash Memory Device and Flash Memory Programming Method Equalizing Wear-Level
US8719491B2 (en) Encoding flash memory data with a randomizer using different seeds for different sectors
CN108897492B (zh) 一种数据写入方法和装置
US11176033B2 (en) Data storage devices and data processing methods
CN101425337B (zh) 一种闪存数据存储方法和装置
US8799558B2 (en) Indexing method for flash memory
US7259988B2 (en) Method for managing memory blocks in flash memory
CN101763312A (zh) 一种基于二级索引改善Flash数据存取的方法
RU84614U1 (ru) Устройство для дистанционного стирания информационного накопителя типа "usb flash drive"
CN101772207A (zh) 一种移动终端设备标识文件的方法
US9806740B1 (en) Device and method for data compression
US7843365B2 (en) Data encoding and decoding methods and computer readable medium thereof
US11055231B2 (en) Data storage devices and data processing methods of skipping editing of fields in H2F table when consecutive addresses are present in F2H table
KR100688463B1 (ko) 물리 메모리의 데이터 기록 및 삭제 방법
CN114637465A (zh) 一种基于flash存储器的数据存储方法
CN116665737A (zh) 数据处理方法和电子设备

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
C56 Change in the name or address of the patentee

Owner name: SHENZHEN CHIPSBANK TECHNOLOGIES CO., LTD.

Free format text: FORMER NAME: CHIPSBANK TECHNOLOGIES (SHENZHEN) CO., LTD.

CP03 Change of name, title or address

Address after: 518057 room 701 and 702, building 12, Shenzhen Software Park, two road, Nanshan District science and technology, Guangdong, Shenzhen, China

Patentee after: Shenzhen Chipsbank Technology Co., Ltd.

Address before: 518057, Nanshan District 206 high tech Zone, Shenzhen two software park 4, two, room, room, Guangdong

Patentee before: Chipsbank Technology (Shenzhen) Co., Ltd.