[发明专利]一种Flash存储器的数据存储方法无效
申请号: | 200910015022.4 | 申请日: | 2009-04-30 |
公开(公告)号: | CN101546294A | 公开(公告)日: | 2009-09-30 |
发明(设计)人: | 田友强 | 申请(专利权)人: | 青岛海信宽带多媒体技术有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F11/10 |
代理公司: | 青岛联智专利商标事务所有限公司 | 代理人: | 李升娟 |
地址: | 266100山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 flash 存储器 数据 存储 方法 | ||
技术领域
本发明涉及一种存储器的存储方法,具体地说,是涉及一种Flash存储器的数据存储方法,属于存储器技术领域。
背景技术
Flash作为一种存储介质,在存储领域得到广泛的应用。Flash在物理结构上分成若干个物理区块(Block),区块之间相互独立,其自身具有以下特性:(1)由于Flash的写操作只能将数据位从1写成0,不能从0写成1,所以在对flash存储器进行写入之前必须先执行擦操作,将预写入的数据位初始化为1,且擦除操作的最小单位是一个区块,而不是单个字节;(2)Flash的擦写寿命有次数限制;(3)Flash在使用过程中,可能导致某些区块的损坏,而区块一旦损坏,将无法进行修复;(4)由于Flash固有的电器特性,在读写数据过程中,偶然会产生一位或几位数据错误,这称为位反转,位反转无法避免,只能通过其他手段对结果进行事后处理;(5)块擦除的时间比较长。
为解决Flash存在的上述问题,目前有一种基于静态虚拟扇区的Flash存储管理方法,其原理如图1所示。整个Flash存储空间分为N个可擦除的Block,每个Block划分为n个更小的虚拟逻辑块VSS,称为虚拟小扇区,每个扇区的大小及存储数据类型根据应用在模块初始化时设定。每个Block前面的一个固定单元作为扇区分配表SAT,用于记录本Block中扇区分配的使用情况。一个SAT中包含有n个SAT单元,每个SAT单元对应一个虚拟小扇区VSS,且每个SAT单元包括有扇区属性及扇区逻辑号VSS ID。在进行数据读写或修改时,以虚拟小扇区的大小为单位。要修改某一扇区的数据时,先读出这个扇区的内容,重新找一个未使用的扇区,把修改后的内容写入这个新扇区。然后,修改原来扇区的属性值为无效,修改新扇区的属性为有效,拷贝虚拟扇区逻辑号到新扇区对应的SAT单元中。这样,当某一个Block中的SAT属性都标为无效时,才对当前Block进行擦写。可见,以虚拟扇区大小为单位的存储管理,对Flash块的擦写次数可大大减少,从而提高了系统性能,延长了Flash的使用寿命。
但是,这种静态存储管理方法存在下述缺陷:1、由于每个虚拟扇区的大小及存储数据类型在模块初始化时已经设定,每个Block只能存储同一种类型的固定长度的数据,当可用的Block个数较少而需要存储的数据类型较多时,或者某种数据类型的数据实际长度变化较大时,或者同一类型的数据比一个Block还大时,则会造成空间的极大浪费,甚至无法将数据写入至Block中;2、没有考虑数据的备份,如果需要进行数据备份,只能再分配同样大小的另一个Block来保存数据,因此,非常浪费存储空间,且备份效率较低;3、由于静态存储方法没有对数据记录和SAT进行有效地校验,导致数据的安全性较差。
发明内容
本发明针对现有技术中Flash存储方法存在的上述缺点和不足,提供了一种Flash存储器的数据存储方法,有效地解决了现有存储方法中Flash存储空间利用率较低的技术问题。
为解决上述技术问题,本发明采用以下技术方案予以实现:
一种Flash存储器的数据存储方法,其特征在于,包括下述步骤:
a、将整个Flash存储空间划分为若干个用来存储至少一种类型的数据记录的逻辑分区,每个逻辑分区包括一个或多个连续的物理区块;
b、将每条数据记录所占据的存储空间作为一个虚拟扇区,并对每个虚拟扇区设置一个描述所述数据记录的属性的虚拟扇区分配表;
c、所述虚拟扇区分配表及与所述虚拟扇区分配表相对应的数据记录依次写入至所述逻辑分区的物理区块中。
根据本发明,所述每个虚拟扇区分配表中包括有用来标示与所述虚拟扇区分配表相对应的数据记录的新旧程度的版本号,以及标示所述数据记录的类型的数据类型。
根据本发明,在将虚拟扇区分配表及与所述虚拟扇区分配表相对应的数据记录写入至所述逻辑分区的物理区块中时,若预写入的数据记录与已写入的数据记录的数据类型相同,则将预写入的数据记录所对应的虚拟扇区分配表中的版本号加1。
根据本发明,在所述逻辑分区剩余一块空的物理区块时,对所述逻辑分区中最早写入的物理区块进行数据清理。
根据本发明,在对所述物理区块进行数据清理时,若读取到的数据记录对应的版本号与已写入的同类型数据记录的最大版本号之差大于设定值,则丢弃所读取到的数据记录;否则,将所读取到的数据记录写入至所述空的物理区块中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海信宽带多媒体技术有限公司,未经青岛海信宽带多媒体技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910015022.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种养殖圈场空气清洁装置
- 下一篇:一种宠物自动喂食装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置