CN101324862B - 闪存存储管理方法 - Google Patents

闪存存储管理方法 Download PDF

Info

Publication number
CN101324862B
CN101324862B CN2008100159722A CN200810015972A CN101324862B CN 101324862 B CN101324862 B CN 101324862B CN 2008100159722 A CN2008100159722 A CN 2008100159722A CN 200810015972 A CN200810015972 A CN 200810015972A CN 101324862 B CN101324862 B CN 101324862B
Authority
CN
China
Prior art keywords
flash memory
data
management method
virtual sectors
sector
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
CN2008100159722A
Other languages
English (en)
Other versions
CN101324862A (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.)
Hisense Visual Technology Co Ltd
Original Assignee
Qingdao Hisense Electronics 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 Qingdao Hisense Electronics Co Ltd filed Critical Qingdao Hisense Electronics Co Ltd
Priority to CN2008100159722A priority Critical patent/CN101324862B/zh
Publication of CN101324862A publication Critical patent/CN101324862A/zh
Application granted granted Critical
Publication of CN101324862B publication Critical patent/CN101324862B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提供了一种闪存存储管理方法,采用了动态虚拟扇区技术,在同一个Block中根据应用需要可以分配不同大小的虚拟扇区,分别用来存储不同类型的数据记录。具体的,本发明的闪存存储管理方法包括:将闪存划分为至少两个区块,每个区块包括数据区和扇区分配表,所述数据区被划分为至少两个虚拟扇区,所述扇区分配表包括每个虚拟扇区的属性和ID逻辑号,每个虚拟扇区可以存储不同数据类型的数据记录,所述扇区分配表还包括每个虚拟扇区的数据类型ID。本发明的闪存存储管理方法可以有效提高Flash读写速度、提高系统性能,大大降低块擦写次数,提高Flash寿命;与现有解决方案相比,能够更加充分利用Flash存储空间、确保数据的安全性。

Description

闪存存储管理方法
技术领域
本发明涉及一种闪存存储管理方法,更具体的涉及一种基于动态虚拟扇区的闪存存储管理方法。
背景技术
随着嵌入式系统的迅速发展和广泛应用,大量需要一种能多次编程,容量大,读写、擦除快捷、方便、简单,外围器件少,价格低廉的非易挥发存储器件。闪存(Flash Memory)存储介质就是在这种背景需求下应运而生的。闪存是一种基于半导体的存储器,具有系统掉电后仍可保留内部信息,及在线擦写等功能特点,是一种替代EEPROM存储介质的新型存储器。因为它的读写速度比EEPROM更快,在相同容量的情况下成本更低,因此闪存将是嵌入式系统中的一个重要组成单元。闪存是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位,区块大小一般为256KB到20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,EEPROM与闪存不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本输入输出程序)、PDA(个人数字助理)、数码相机中保存资料等。
闪存包括NOR型和NAND型闪存,NOR型与NAND型闪存的区别很大,具体的,NOR型闪存更像内存,有独立的地址线和数据线,但价格比较贵,容量比较小;而NAND型更像硬盘,地址线和数据线是共用的I/O线,类似硬盘的所有信息都通过一条硬盘线传送一般,而且NAND型与NOR型闪存相比,成本要低一些,而容量大得多。因此,NOR型闪存比较适合频繁随机读写的场合,通常用于存储程序代码并直接在闪存内运行,手机就是使用NOR型闪存的大户,所以手机的“内存”容量通常不大;NAND型闪存主要用来存储资料,我们常用的闪存产品,如闪存盘、数码存储卡都是用NAND型闪存。
由于Flash读写存储的编程特点,有必要对其进行存储过程管理,以使整个系统性能得以改善。Flash自身具有以下特性:
(1)Flash在物理结构上分成若干个区块(Block),区块之间相互独立;
(2)由于Flash的写操作只能将数据位从1写成0,不能从0写成1,所以在对存储器进行写入之前必须先执行擦操作,将预写入的数据位初始化为1。擦除操作的最小单位是一个区块,而不是单个字节;
(3)块的擦写寿命有次数限制;
(4)Flash在使用过程中,可能导致某些区块的损坏。区块一旦损坏,将无法进行修复;
(5)由于Flash固有的电器特性,在读写数据过程中,偶然会产生一位或几位数据错误,这称为位反转。位反转无法避免,只能通过其他手段对结果进行事后处理;
(6)块擦除的时间比较长。
目前有一种基于静态虚拟扇区的Flash存储管理技术,即把Flash中的每个Block分为更小的虚拟逻辑块VSS,每个扇区大小根据应用在模块初始化时设定。每个Block前面的一个固定单元用于记录本block中扇区分配的使用情况(SAT),包括扇区属性及扇区逻辑号。在进行数据读写和修改时,以虚拟扇区块的大小为单位。要修改某一扇区的数据时,先读出这个扇区的内容,重新找一个未使用的扇区,把修改后的内容写入这个新扇区。然后,修改原来扇区的属性值为无效,修改这个新扇区的属性为有效,拷贝VSS的ID号到新扇区对应的SAT单元中。这样,当某一个block中的SAT属性都标为无效时,才对当前block进行擦写。可见,以虚拟扇区大小为单位的存储管理,对Flash块的擦写次数可大大减少,从而提高了系统性能。
但是,这种存储管理技术存在以下几个缺陷:
(1)每个Block只能存储一种类型的数据,当可用的Block个数较少而需要存储的数据类型较多时,这种方法不能使用。也就是说不能充分利用Flash空间。
(2)没有考虑出现坏块的情况。
(3)没有考虑Flash的位反转。
因此,本领域需要一种Flash存储管理方法,能够有效的利用Flash空间,同时能够处理坏块和Flash的位反转。
发明内容
为了解决这些问题,采用了动态虚拟扇区技术,即在同一个Block中根据应用需要可以分配不同大小的虚拟扇区,分别用来存储不同类型的数据记录;如果确认某个扇区有坏块,则跳过该扇区重新写入数据;通过CRC数据校验和写入完成后数据比较确保数据的可靠性。
具体的,本发明提供了一种闪存存储管理方法,包括:将闪存划分为至少两个区块,每个区块包括数据区和扇区分配表,所述数据区被划分为至少两个虚拟扇区,所述扇区分配表包括每个虚拟扇区的属性和ID逻辑号,每个虚拟扇区可以存储不同数据类型的数据记录,所述扇区分配表还包括每个虚拟扇区的数据类型ID。
所述每个虚拟扇区还包括所述数据记录的校验码。所述校验码为CRC校验码。
当所述虚拟扇区写入一个数据记录之后,读出所述虚拟扇区的数据记录,与写入的数据记录进行比较,如果读出的数据记录与写入的数据记录不相同,则重新写入所述数据记录。当所述写入数据记录和读出数据记录步骤重复一个预先设定的次数之后,读出的数据记录与写入的数据记录仍然不相同,则标记所述虚拟扇区的属性为无效。
所述区块还包括一个表示所述区块是否有数据写入的使用标志。所述使用标志处于所述区块的最前端或最尾端。
所述数据区处于所述区块的前端,每个虚拟扇区由前向后依次排列;所述扇区分配表处于所述区块的尾端,每个虚拟扇区的属性和ID逻辑号由后向前依次排列。
所述数据区处于所述区块的尾端,每个虚拟扇区由后向前依次排列;所述扇区分配表处于所述区块的前端,每个虚拟扇区的属性和ID逻辑号由前向后依次排列。
所述闪存为NAND型闪存。
本发明的闪存存储管理方法可以有效提高Flash读写速度、提高系统性能,大大降低块擦写次数,提高Flash寿命;与现有解决方案相比,能够更加充分利用Flash存储空间、确保数据的安全性。
附图说明
图1所示为一个基于静态虚拟扇区的Flash存储管理方法的示意图。
图2所示为一个基于静态虚拟扇区的Flash存储管理方法的扇区分配表的一个单元示意图。
图3所示为本发明的Flash存储管理方法的一个实施例的示意图。
图4所示为本发明的Flash存储管理方法的扇区分配表的一个单元实施例的示意图。
图5所示为本发明的Flash存储管理方法的一个Block数据存储的实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
现有的基于静态虚拟扇区的Flash存储管理技术,即把Flash中的每个Block分为更小的虚拟逻辑块VSS(virtual small sector),称为虚拟小扇区,每个扇区大小根据应用在模块初始化时设定。每个Block前面的一个固定单元用于记录本block中扇区分配的使用情况,即扇区分配表SAT,扇区分配表SAT包括扇区属性及扇区逻辑号。
在进行数据读写和修改时,以虚拟扇区块的大小为单位。要修改某一扇区的数据时,先读出这个扇区的内容,重新找一个未使用的扇区,把修改后的内容写入这个新扇区。然后,修改原来扇区的属性值为无效(例如0x00),修改这个新扇区的属性为有效(例如0xc0),拷贝VSS的ID号到新扇区对应的SAT单元中。这样,当某一个block中的SAT属性全部都标为无效时,才对当前block进行擦写。可见,以虚拟扇区大小为单位的存储管理,对Flash块的擦写次数可大大减少,从而提高了系统性能。
图1所示为一个基于静态虚拟扇区的Flash存储管理方法的示意图。如图所示,整块的Flash被划分为了N个Block,依次分别为BLOCK 1、BLOCK 2、......、BLOCK N-1和BLOCK N。每个Block前面的一个固定单元(称为SAT区)用于记录本Block中扇区分配的使用情况,即扇区分配表SAT,在扇区分配表SAT区后面是写入的数据(称为数据区)。数据区被分为n个虚拟扇区,分别标记为SI 1、SI 2、......、SI n-1和SI n。扇区分配表SAT包括每个虚拟扇区的属性以及虚拟扇区的扇区逻辑号,记为SI属性位和VSS ID逻辑号表示位,如图2所示,一般情况下,SI属性位为2个bit,而VSS ID逻辑号表示位为14个bit。
这种基于静态虚拟扇区的Flash存储管理方法,由于每个Block只能存储一种类型的数据,当可用的Block个数较少而需要存储的数据类型较多时,这种方法不能使用,不能充分利用Flash空间。而且这种基于静态虚拟扇区的Flash存储管理方法没有考虑出现坏块的情况和Flash的位反转。
本发明的Flash存储管理方法是一种基于动态虚拟扇区的Flash存储管理方法。和基于静态虚拟扇区的Flash存储管理方法不同,本发明的Flash存储管理方法在同一个Block中根据应用需要可以分配不同大小的虚拟扇区,分别用来存储不同类型的数据记录;如果确认某个扇区有坏块,则跳过该扇区重新写入数据;通过CRC数据校验等校验手段和写入完成后数据比较确保数据的可靠性。
图3所示为本发明的Flash存储管理方法的一个实施例的示意图。如图所示,和基于静态虚拟扇区的Flash存储管理方法相同,整块的Flash也被划分为了N个Block,依次分别为BLOCK 1、BLOCK 2、......、BLOCK N-1和BLOCK N。和基于静态虚拟扇区的Flash存储管理方法不同的是,本实施例的每个Block最前面为数据区,数据区被分为若干个虚拟扇区,每个虚拟扇区的大小可以不同。图中所示为i个虚拟扇区,分别为SI 1、SI 2、......、SI i-1和SI i。在Block的最后是扇区分配表SAT。由于整个Block的虚拟扇区数量不确定,而且每个虚拟扇区的大小可能大小不一,因此,本实施例中每个Block中的数据区大小可能会不一样,扇区分配表SAT的大小也可能不同,在数据区和扇区分配表SAT之间也可能存在没有使用的空白区。
和基于静态虚拟扇区的Flash存储管理方法相同,本实施例的扇区分配表SAT也包括每个虚拟扇区的属性以及虚拟扇区的扇区逻辑号,记为SI属性位和VSS ID逻辑号表示位。和基于静态虚拟扇区的Flash存储管理方法不同的是,为了在一个Block中写入不同类型的数据,本实施例的扇区分配表SAT还包括每个虚拟扇区的数据类型,记为数据类型ID表示位,如图4所示,一般情况下,SI属性位为2个bit,数据类型ID表示位和VSS ID逻辑号表示位共占用30个bit,由于本实施例的Flash存储管理方法的虚拟扇区可能较多,因此VSS ID逻辑号表示位可以比基于静态虚拟扇区的Flash存储管理方法的VSS ID逻辑号表示位占用的bit位多,例如16个bit等等。
图5所示为本实施例的一个Block数据存储的示意图。如图所示,由于不同数据类型的数据记录长度和数量不确定,所以本实施例的扇区分配表SAT不能用固定大小的单元存储,同时为了方便数据读取,本实施例的扇区分配表SAT放到了Block的尾部。因为扇区分配表SAT中的虚拟扇区数量和数据记录的总长度都是不确定的,所以扇区分配表SAT从Block的尾部从后向前依次写入,而数据记录从Block的起点向后依次写入。另外,为了检测某个Block是否正常使用过,可以在Block的最底部写入一个使用标记,使用标记可以和一个SAT表的长度相同。
由于Flash的位反转特性,写入的数据并不一定正确,本实施例的Flash存储管理方法通过多种措施来保证:一种是对每一条数据记录进行数据校验(例如CRC校验),生成的校验码放在数据记录的尾部,这样,每个数据单元的长度就变成原始数据长度与校验码长度之和。另外一种就是在每次数据写入完成后,立即读出写入的数据,并进行比较,如果读出的数据和写入的数据不相同则重新写入。当然,上述两种方法同时使用效果最好。
若出现坏块,则可能数据无法正常写入,经过几次尝试后,仍然有问题,可以确定该扇区中存在坏块,这时可以跳到下一个扇区重新写入数据,为了保持SAT与数据记录的对应关系,即使写入数据失败,也要对应写入SAT,只不过需要将SAT属性设置为无效。
数据记录的长度不确定,扇区的长度就不确定,那么在读写数据时需要确定起始地址,起始地址可以通过累加计算出来。因为每一种数据类型,数据记录长度是确定的,扇区的长度就是数据记录长度与CRC32校验码长度之和,而SAT与扇区的位置都是一一对应的,通过SAT就可以知道数据记录长度,这样就可以计算出任意一个扇区的起始地址和总长度。
由以上的说明可以看出,本发明的Flash存储管理方法可以有效提高Flash读写速度、提高系统性能,大大降低块擦写次数,提高Flash寿命;与现有解决方案相比,能够更加充分利用Flash存储空间、确保数据的安全性。同时,本发明的Flash存储管理方法对Flash的位反转和坏块作出了相应的处理,提高了Flash的可靠性。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

Claims (8)

1.一种闪存存储管理方法,包括:将闪存划分为至少两个区块,每个区块包括数据区和扇区分配表,所述数据区被划分为至少两个虚拟扇区,所述扇区分配表包括每个虚拟扇区的属性和ID逻辑号,其特征在于:每个虚拟扇区可以存储不同数据类型的数据记录,所述扇区分配表还包括每个虚拟扇区的数据类型ID,当所述虚拟扇区写入一个数据记录之后,读出所述虚拟扇区的数据记录,与写入的数据记录进行比较,如果读出的数据记录与写入的数据记录不相同,则重新写入所述数据记录,当所述写入数据记录和读出数据记录步骤重复一个预先设定的次数之后,读出的数据记录与写入的数据记录仍然不相同,则标记所述虚拟扇区的属性为无效。
2.根据权利要求1所述的闪存存储管理方法,其特征在于:所述每个虚拟扇区还包括所述数据记录的校验码。
3.根据权利要求2所述的闪存存储管理方法,其特征在于:所述校验码为CRC校验码。
4.根据权利要求1所述的闪存存储管理方法,其特征在于:所述区块还包括一个表示所述区块是否有数据写入的使用标志。
5.根据权利要求1所述的闪存存储管理方法,其特征在于:所述使用标志处于所述区块的最前端或最尾端。
6.根据权利要求1-5任一所述的闪存存储管理方法,其特征在于:所述数据区处于所述区块的前端,每个虚拟扇区由前向后依次排列;所述扇区分配表处于所述区块的尾端,每个虚拟扇区的属性和ID逻辑号由后向前依次排列。
7.根据权利要求1-5任一所述的闪存存储管理方法,其特征在于:所述数据区处于所述区块的尾端,每个虚拟扇区由后向前依次排列;所述扇区分配表处于所述区块的前端,每个虚拟扇区的属性和ID逻辑号由前向后依次排列。
8.根据权利要求1-5任一所述的闪存存储管理方法,其特征在于:所述闪存为NAND型闪存。
CN2008100159722A 2008-05-05 2008-05-05 闪存存储管理方法 Active CN101324862B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100159722A CN101324862B (zh) 2008-05-05 2008-05-05 闪存存储管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100159722A CN101324862B (zh) 2008-05-05 2008-05-05 闪存存储管理方法

Publications (2)

Publication Number Publication Date
CN101324862A CN101324862A (zh) 2008-12-17
CN101324862B true CN101324862B (zh) 2010-06-02

Family

ID=40188408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100159722A Active CN101324862B (zh) 2008-05-05 2008-05-05 闪存存储管理方法

Country Status (1)

Country Link
CN (1) CN101324862B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101894077B (zh) * 2010-06-24 2012-06-27 深圳市江波龙电子有限公司 一种数据存储方法及系统
CN102541463B (zh) * 2010-12-28 2014-07-23 慧荣科技股份有限公司 快闪存储装置及其数据存取方法
CN103268201B (zh) * 2013-04-19 2016-02-17 北京经纬恒润科技有限公司 一种数据存储方法、存储装置及读取方法
CN104267908A (zh) * 2014-07-14 2015-01-07 北京君正集成电路股份有限公司 一种数据存储以及读取的方法及装置
TWI601148B (zh) * 2016-05-05 2017-10-01 慧榮科技股份有限公司 損壞資料行的篩選方法與具有損壞資料行總表的資料儲存裝置
CN108242252B (zh) * 2016-12-27 2023-10-10 兆易创新科技集团股份有限公司 一种nand闪存芯片的测试样本
CN108182961A (zh) * 2018-01-12 2018-06-19 江苏华存电子科技有限公司 一种多通道存储系统的坏块处理方法
CN110413223A (zh) * 2019-06-25 2019-11-05 汉纳森(厦门)数据股份有限公司 Flash存储器的数据读写方法、介质、设备及装置
CN111324554B (zh) * 2020-02-18 2022-03-18 日立楼宇技术(广州)有限公司 闪存数据的管理方法及装置、电梯控制器
CN112269549B (zh) * 2020-11-20 2022-03-11 石家庄科林电气股份有限公司 一种轻型嵌入式系统的闪存管理方法
CN117076340B (zh) * 2023-08-18 2024-08-13 深圳市宗匠科技有限公司 用于美容仪闪存设备的数据管理方法和美容仪

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1674159A (zh) * 1999-10-21 2005-09-28 松下电器产业株式会社 半导体存储卡的访问装置、计算机可读记录介质、初始化方法和半导体存储卡

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1674159A (zh) * 1999-10-21 2005-09-28 松下电器产业株式会社 半导体存储卡的访问装置、计算机可读记录介质、初始化方法和半导体存储卡

Also Published As

Publication number Publication date
CN101324862A (zh) 2008-12-17

Similar Documents

Publication Publication Date Title
CN101324862B (zh) 闪存存储管理方法
CN102081577B (zh) 对Flash存储器的数据存储结构进行数据操作的方法
US9940045B2 (en) Address mapping table recovery upon power failure
US8473815B2 (en) Methods and systems of a flash memory controller and an error correction code (ECC) controller using variable-length segmented ECC data
KR101464338B1 (ko) 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템
US7937521B2 (en) Read disturbance management in a non-volatile memory system
CN102737715B (zh) 用于nor闪存的数据掉电保护方法
US7769944B2 (en) Partial-write-collector algorithm for multi level cell (MLC) flash
US20100161885A1 (en) Semiconductor storage device and storage controlling method
TWI436369B (zh) 記憶裝置之使用壽命量測方法及系統內編程碼置換方法、及其資料儲存系統
CN108932107B (zh) 数据存储装置及其操作方法
US7814263B2 (en) Erase history-based flash writing method
JP2011107851A (ja) メモリシステム
CN101681300A (zh) 存储器系统
US20110138254A1 (en) Method for reducing uncorrectable errors of a memory device regarding error correction code, and associated memory device and controller thereof
CN101625897B (zh) 用于快闪存储器的数据写入方法、储存系统与控制器
CN102662856A (zh) 一种固态硬盘及其存取方法
KR100882740B1 (ko) 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치
KR20170111386A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20130339584A1 (en) Method for accessing flash memory having pages used for data backup and associated memory device
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
JP2007094921A (ja) メモリカードとその制御方法
US11036493B2 (en) Memory system and operating method thereof
CN101526922B (zh) 一种闪存的数据存取方法及装置
US20200241955A1 (en) Data storage device and operating method thereof

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: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No.

Patentee after: Hisense Visual Technology Co., Ltd.

Address before: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No.

Patentee before: QINGDAO HISENSE ELECTRONICS Co.,Ltd.

CP01 Change in the name or title of a patent holder
DD01 Delivery of document by public notice

Addressee: Wang Yanhui

Document name: Notification of eligibility

DD01 Delivery of document by public notice