[发明专利]Flash存储介质上的数据纠错方法和装置有效
申请号: | 201310019990.9 | 申请日: | 2013-01-18 |
公开(公告)号: | CN103092727A | 公开(公告)日: | 2013-05-08 |
发明(设计)人: | 笪禹;李侠;刘博强;贺鑫 | 申请(专利权)人: | 大唐移动通信设备有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F11/10 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 孔凡红 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | flash 存储 介质 数据 纠错 方法 装置 | ||
技术领域
本发明涉及数据存储领域,尤其涉及一种Flash存储介质上的数据纠错方法和装置。
背景技术
目前Flash芯片被广泛应用在各类嵌入式设备中,一般用途包括存储软件版本、记录运行日志等。由于Flash芯片的存储介质长期、频繁使用过程中存在一定的出错概率,出错表现为Flash芯片出现比特(bit)位翻转,因此需要针对使用需求进行必要的保护。
对于不同应用场景下的数据容错方法也有差别,下面介绍三种方案:
第一,对于存储软件版本并且有高可靠性要求的应用场景,现有方案大多直接在Flash芯片上存储两份软件,通过算法流程来判断使用哪个版本的软件,流程如图1所示。系统启动后,对版本一的软件进行有效性计算,根据计算结果判断版本一的软件是否可用,如果可用,则加载并运行版本一的软件,否则,对版本二的软件进行有效性计算,根据计算结果判断版本二的软件是否可用,如果可用,则加载并运行版本二的软件,否则,本流程结束。
其中,版本软件的有效性判断具体可以使用针对版本软件的循环冗余校验(Cyclic Redundancy Check,CRC)方法,这种方法是纯粹的应用层保护机制。
第二,对于简单的日志存储应用,由于Flash芯片的写入、读取操作非常频繁,对Flash芯片的磨损程度较高,为了应对错误,现有的Flash芯片驱动程序一般都将Flash芯片划分为若干个标准尺寸的物理单元,常见为512字节,将该物理单元称为物理扇区(sector),针对存储用户数据的物理sector计算纠错(Error Checking and Correcting,ECC)码,将ECC码保存在单独的物理sector中。用户写入数据时计算ECC码并保存到专用物理sector,用户读取数据时使用保存的ECC码对需要读取的数据进行ECC纠错,将纠错后的数据返回给用户。
写入用户数据的流程如图2A所示,在需要写入用户数据时,根据用户数据的大小分配物理sector,根据物理sector的大小计算ECC码,将用户数据写入到分配的物理sector中,并将计算出的ECC码写入到专用sector中。
读取用户数据的流程如图2B所示,在需要读取用户数据时,从物理sector中读取用户数据,并从专用sector中读取ECC码,使用读取到的ECC码对读取出的用户数据进行ECC纠错,并将纠错后的用户数据提交给用户。
第三,对于使用文件系统等复杂sector管理算法的应用场景,文件系统层面使用逻辑扇区(逻辑sector)编号,底层驱动层面使用物理扇区(物理sector)编号,为了实现良好的磨损均衡等算法,需要建立索引关系,当文件系统读取指定的逻辑sector时,底层驱动软件需要通过查表将逻辑sector所对应的物理sector地址计算出来,从而读取数据,同时需要保存每个物理sector当前对应的逻辑sector编号以及使用状态,便于系统重启后恢复出逻辑sector和物理sector的对应关系,将保存物理sector所对应逻辑sector编号、物理sector状态以及物理sector的ECC码等信息的数据称为元数据,而物理sector上需要保存的用户传入的数据称为用户数据。
从图3可以看出,每个用于存储用户数据的物理sector(1~N)都有对应的元数据(1~N),元数据用于描述存储用户数据的物理sector的当前使用情况、对应的逻辑sector编号以及物理sector的ECC码。其中元数据本身也要占用物理sector进行存储。
在系统启动过程中,通过扫描物理sector上的元数据,从而能建立物理sector和逻辑sector的对应关系,在使用过程中,逻辑sector和物理sector的关系可以随着数据存储位置的变化不断更新。
在实现本发明的过程中,发明人发现现有技术中存在以下技术问题:
现有的方案一要求用户开发软件流程参与选择版本,对用户不透明,完全由应用层保证数据正确性,增加用户代码复杂度,并且只能判错不能纠错。
现有方案二和方案三在元数据部分本质相同,只是方案三中由于包含更多元数据信息可以支持更加灵活的sector管理机制,但是它们在数据安全方案都存在严重缺陷:首先是对于关键的元数据本身没有纠错机制,当元数据出现错误后会造成数据混乱等严重后果,其次是ECC码本身纠错能力有限,每个物理sector的大小为512字节(byte),只能纠错有限的bit数,纠错比例很低。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大唐移动通信设备有限公司,未经大唐移动通信设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310019990.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:动画点读机
- 下一篇:船用尾气余热吸收式制冷机用的热源控制装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置