一种基于FTL的闪存擦写掉电保护方法.pdf

上传人:e1 文档编号:965362 上传时间:2018-03-21 格式:PDF 页数:9 大小:380.91KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910194936.1

申请日:

2009.09.01

公开号:

CN102004706A

公开日:

2011.04.06

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/16申请日:20090901|||公开

IPC分类号:

G06F12/16

主分类号:

G06F12/16

申请人:

联芯科技有限公司

发明人:

雷杰

地址:

200233 上海市徐汇区钦江路333号41幢4楼

优先权:

专利代理机构:

北京中博世达专利商标代理有限公司 11274

代理人:

申健

PDF下载: PDF下载
内容摘要

本发明提供一种基于FTL的闪存擦写掉电保护方法,涉及嵌入式系统中NORFlash。该方法包括擦除操作掉电保护部分和写操作掉电保护部分。擦除操作掉电保护部分为每个数据块增加一个擦除标记,未擦除成功的数据块挂入脏链表;开机检测,将脏链表中的数据块进行擦除操作。写操作掉电保护部分,扇区标记调整为所支持闪存的物理写单位,开机扫描每个扇区状态,将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于最大逻辑扇区号的扇区状态建立信息。本发明另提供一种运用上述方法的保护装置。本发明擦除标记不占用多余空间,保证写掉电发生后,只影响到掉电前最后操作的目标数据。

权利要求书

1.一种基于FTL的闪存擦写掉电保护方法,该闪存具有若干数据块,数据块包括若干扇区,其特征在于,该方法包括擦除操作掉电保护部分以及写操作掉电保护部分,其中,擦除操作掉电保护部分,包括以下步骤:为每个数据块增加一个擦除标记,包含有效状态A和无效状态B;进行擦除操作之前将擦除标记写为A,擦除成功后写擦除标记为B,未擦除成功的数据块挂入脏链表;开机检测,将擦除标记仍然为A的数据块进行擦除操作,操作完成后将擦除标记写为B;写操作掉电保护部分,包括以下步骤:将扇区标记调整为所支持闪存的物理写单位,开机扫描每个扇区状态,将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于最大逻辑扇区号的扇区状态建立信息。2.根据权利要求1所述的基于FTL的闪存擦写掉电保护方法,其特征在于:擦除标记为4个字节。3.根据权利要求1所述的基于FTL的闪存擦写掉电保护方法,其特征在于:FTL内建有垃圾回收线程,用以查看脏链表中的数据块信息。4.根据权利要求1所述的基于FTL的闪存擦写掉电保护方法,其特征在于:扇区标记单字节或Single Word。5.一种基于FTL的闪存擦写掉电保护装置,该闪存具有若干数据块,数据块包括若干扇区,其特征在于,该装置包括擦除操作掉电保护单元以及写操作掉电保护单元,其中,擦除操作掉电保护单元,包括:为每个数据块增加一个擦除标记的擦除标记修改模块,该擦除标记包含有效状态A和无效状态B,该模块在进行擦除操作之前将擦除标记写为A,擦除成功后写擦除标记为B,未擦除成功的数据块挂入脏链表;开机检测模块,该开机检测模块用以检测数据块的擦除标记;写操作掉电保护单元,包括:将扇区标记调整为所支持闪存的物理写单位的编译模块;开机扫描每个扇区状态的扫描模块;以及扇区标记修改模块,该扇区标记修改模块将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于最大逻辑扇区号的扇区状态建立信息。6.根据权利要求5所述的基于FTL的闪存擦写掉电保护装置,其特征在于:擦除标记为4个字节。7.根据权利要求5所述的基于FTL的闪存擦写掉电保护装置,其特征在于:FTL内建有垃圾回收线程,用以查看脏链表中的数据块信息。8.根据权利要求5所述的基于FTL的闪存擦写掉电保护装置,其特征在于:扇区标记单字节或Single Word。

说明书

一种基于FTL的闪存擦写掉电保护方法

技术领域

本发明涉及一种嵌入式系统中NOR Flash擦写过程中掉电的保护方法,尤其涉及一种基于FTL的闪存擦写掉电保护方法。

背景技术

闪存(Flash)由于快速的读写速度、低能耗、不易损失等特点,在很多场合有应用,特别是便携式消费性产品中应用极广。NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM(Erasable Programmable ROM,可擦除可编程ROM)和EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器一)统天下的局面。NORFlash的特点是芯片内执行,这样应用程序可以直接在闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益。NOR Flash中,将空间划分为多个Block(块),擦除是以一个Block为单位进行的,即擦除至少需要擦除一个Block。

FTL(Flash Translation Layer,闪存转化层),是一种闪存与操作系统间对话的介质,由于FTL,操作系统可将闪存作为一个磁盘驱动器(Disk Driver),在闪存上建立多个虚拟的数据块或者扇区用以存储及管理数据。

嵌入式终端在开发、测试以及最终用户使用过程当中,不可避免的会出现终端设备的随机掉电(如电池电力消失,电池突然移除等),该异常掉电可能导致数据破坏甚至造成闪存的状态异常,从而破坏对闪存操作非常频繁的文件系统,最终导致设备开机失败。因此,介于操作系统和闪存之间的FTL模块,除了需要考虑软件流程的掉电保护外,对闪存擦和写过程中掉电所导致的数据损坏和闪存状态异常,也需要增加相应的保护措施。

现有的FTL认为,Nor Flash在执行物理擦或者写操作过程中掉电时,要么保持操作前状态,要么保持操作后状态,所以只提供了保持软件流程一致性的掉电保护措施。但实际试验数据表明,写操作过程中掉电发生后,原数据可能会变为一个未知状态,擦除过程掉电后擦除未成功的数据块可能会处于异常状态。对于这种极端最坏情况下,目前的FTL算法并没有做错误检测和相应处理。

另外,在对NOR Flash进行写操作时发生掉电,此时如果写操作的单位是Single Word(一般用作写标记),发生掉电后该Word内部2个字节的数据都不可靠;如果此时写操作的单位是1KB(一般用作写数据),发生掉电后该1KB数据不可靠。现有方法认为写状态信息的过程中发生掉电,状态信息或者保持原有状态或者保持目标状态,但是实验结果证明,对于某些NOR Flash,掉电后写操作的结果并不确定,因此需要对写过程掉电所产生的非预知数据进行处理,而现有的方法则无法做到这一点。

本发明则是提供一种新的方法用来解决上述问题。

发明内容

本发明要解决的技术问题在于提供一种可实现检测和恢复机制的掉电保护方法。

本发明通过这样的技术方案解决上述的技术问题:

一种基于FTL的闪存擦写掉电保护方法,该闪存具有若干数据块,数据块包括若干扇区,该方法包括擦除操作掉电保护部分以及写操作掉电保护部分,其中,擦除操作掉电保护部分,包括以下步骤:为每个数据块增加一个擦除标记,包含有效状态A和无效状态B;进行擦除操作之前将擦除标记写为A,擦除成功后写擦除标记为B,未擦除成功的数据块挂入脏链表;开机检测,将擦除标记仍然为A的数据块进行擦除操作,操作完成后将擦除标记写为B;写操作掉电保护部分,包括以下步骤:将扇区标记调整为所支持闪存的物理写单位,开机扫描每个扇区状态,将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于最大逻辑扇区号的扇区状态建立信息。

作为一种改进,擦除标记为4个字节。

作为一种改进,FTL内建有垃圾回收线程,用以查看脏链表中的数据块信息。

作为一种改进,扇区标记单字节或Single Word。

本发明另提供一种基于FTL的闪存擦写掉电保护装置,该闪存具有若干数据块,数据块包括若干扇区,该装置包括擦除操作掉电保护单元以及写操作掉电保护单元,其中,擦除操作掉电保护单元,包括:为每个数据块增加一个擦除标记的擦除标记修改模块,该擦除标记包含有效状态A和无效状态B,该模块在进行擦除操作之前将擦除标记写为A,擦除成功后写擦除标记为B,未擦除成功的数据块挂入脏链表;开机检测模块,该开机检测模块用以检测数据块的擦除标记;写操作掉电保护单元,包括:将扇区标记调整为所支持闪存的物理写单位的编译模块;开机扫描每个扇区状态的扫描模块;以及扇区标记修改模块,该扇区状态修改模块将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于最大逻辑扇区号的扇区状态建立信息。

作为一种改进,擦除标记为4个字节。

作为一种改进,FTL内建有垃圾回收线程,用以查看脏链表中的数据块信息。

作为一种改进,扇区标记单字节或Single Word。

与现有技术相比较,本发明具有以下优点:

通过擦除掉电保护部分,擦除标记在本数据块内,无需占用多余空间,也不需要提供专门的标记回收机制,4字节的擦除标记可以把擦除掉电检测的失败率降低到1/232。另外,开机检测在RAM(Read-Only Memory,随机存取储存器)中建立数据块异常信息,不影响开机速度。本发明提供的写操作掉电保护错误检测和处理机制,保证写掉电发生后,只影响到掉电前最后操作的目标数据。

附图说明

图1a是本发明NOR Falsh擦写掉电保护方法中的擦除掉电保护部分的检测流程图。

图1b是本发明NOR Falsh擦写掉电保护方法中的擦除掉电保护部分的修复流程图。

图2是本发明NOR Falsh擦写掉电保护方法中的写掉电保护部分的流程图。

具体实施方式

下面结合附图详细说明本发明的具体实施方式。

本发明提供一种基于FTL的闪存擦写掉电保护方法,该方法主要包括擦除操作掉电保护部分以及写操作掉电保护部分。

1、擦除操作掉电保护部分

擦除操作掉电保护部分重点在于为每个数据块(Block)增加一个擦除标记,擦除标记包括两种状态A和B,其中A为无效状态,B为有效状态,B无需擦除可直接修改为A。在本实施方式中,所述擦除标记为4个字节。

FTL(Flash Translation Layer,闪存转化层)内部进行所有擦除操作之前将擦除标记写为A,擦除成功后擦除标记写为B。系统开机后第一次对数据块进行读操作的时候,读取擦除标记,通过擦除标记判断数据块是否发生过擦除掉电,如果是,则将其加入脏链表(Dirty List)。具体而言,如果擦除成功,应该是每个数据块的擦除标记都是B,即,擦除完成,如果某个数据块的擦除标记为A,则表明该数据块的擦除并未完成,即发生了掉电,简述如下:准备擦除(此时擦除标记全部写成A)→擦除过程中(此时因为擦除尚未完成,擦除标记仍为A)→擦除完成(此时擦除标记为B),具体流程可参图1a详细说明。

首先,开机进行FTL扫描,该扫描过程即为检测数据块的擦除标记是否为A,扫描过程是扫描每一个数据块,即图中的步骤“取第m个Block”,如果该数据块的擦除标记为B并且数据块的状态为已知的,则将该数据块根据其状态挂入对应链表;如果该数据块的擦除标记为A,则将该数据块挂入脏(Dirty)链表。如果检测到有未擦除完成的数据块,则参阅图1b,FTL则调度垃圾回收线程,查看脏链表中的数据块信息,获取其中一个数据块,将其擦除标记写为A,然后进行擦除操作,操作完成后将擦除标记写为B。

通过擦除掉电保护部分,擦除标记在本数据块内,无需占用多余空间,也不需要提供专门的标记回收机制,4字节的擦除标记可以把擦除掉电检测的失败率降低到1/232。另外,开机检测在RAM(Read-Only Memory,随机存取储存器)中建立数据块异常信息,不影响开机速度。

2、写操作掉电保护部分

写操作掉电保护部分需要将扇区标记调整为所支持闪存的物理写单位,如单字节或Single Word。如果发生掉电,不会影响到其它标记位。另外,还增加扇区号的有效值判断。于本实施方式中,为每个扇区增加扇区标记,扇区标记占一个Word,包含三个状态:Invalid、Valid、Dirty,只要发生写数据掉电,可根据其状态来区分,基本原理与上面所述的擦除保护掉电保护部分相同。

请参图2,FTL开机扫描每个扇区状态,并获取一个扇区,如果扇区状态为未知状态,则将该扇区视为无效扇区,并在RAM中将该扇区标记为Dirty;如果该扇区为已知状态,则进行处理,即为图2中的步骤“处理已知状态扇区”,若扇区标记为Valid,但扇区号为无效(即扇区号大于最大逻辑扇区号),则修改扇区状态为dirty,若发现标记为Valid且扇区号不大于最大逻辑扇区号,则根据扇区状态建立RAM信息。实际上,在该过程中,若发现扇区标记为Invalid,则跳过该扇区,也会在RAM中记录该扇区为dirty。本发明提供的写操作掉电保护错误检测和处理机制,保证写掉电发生后,只影响到掉电前最后操作的目标数据。

本发明另提供一种基于FTL的闪存擦写掉电保护装置,该保护装置应用的闪存具有若干数据块,数据块包括若干扇区。本发明的基于FTL的闪存擦写掉电保护装置包括擦除操作掉电保护单元以及写操作掉电保护单元。

擦除操作掉电保护单元包括:

为每个数据块增加一个擦除标记的擦除标记修改模块,该擦除标记包含有效状态A和无效状态B,该模块在进行擦除操作之前将擦除标记写为A,擦除成功后写擦除标记为B,未擦除成功的数据块挂入脏链表;

开机检测模块,该开机检测模块用以检测数据块的擦除标记。

写操作掉电保护单元包括:

将扇区标记调整为所支持闪存的物理写单位的编译模块;

开机扫描每个扇区状态的扫描模块;

扇区标记修改模块。该扇区标记修改模块将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于最大逻辑扇区号的扇区状态建立信息。

以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。

一种基于FTL的闪存擦写掉电保护方法.pdf_第1页
第1页 / 共9页
一种基于FTL的闪存擦写掉电保护方法.pdf_第2页
第2页 / 共9页
一种基于FTL的闪存擦写掉电保护方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种基于FTL的闪存擦写掉电保护方法.pdf》由会员分享,可在线阅读,更多相关《一种基于FTL的闪存擦写掉电保护方法.pdf(9页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102004706A43申请公布日20110406CN102004706ACN102004706A21申请号200910194936122申请日20090901G06F12/1620060171申请人联芯科技有限公司地址200233上海市徐汇区钦江路333号41幢4楼72发明人雷杰74专利代理机构北京中博世达专利商标代理有限公司11274代理人申健54发明名称一种基于FTL的闪存擦写掉电保护方法57摘要本发明提供一种基于FTL的闪存擦写掉电保护方法,涉及嵌入式系统中NORFLASH。该方法包括擦除操作掉电保护部分和写操作掉电保护部分。擦除操作掉电保护部分为每个数据块增加一个擦。

2、除标记,未擦除成功的数据块挂入脏链表;开机检测,将脏链表中的数据块进行擦除操作。写操作掉电保护部分,扇区标记调整为所支持闪存的物理写单位,开机扫描每个扇区状态,将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于最大逻辑扇区号的扇区状态建立信息。本发明另提供一种运用上述方法的保护装置。本发明擦除标记不占用多余空间,保证写掉电发生后,只影响到掉电前最后操作的目标数据。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书4页附图3页CN102004719A1/1页21一种基于FTL的闪存擦写掉电保。

3、护方法,该闪存具有若干数据块,数据块包括若干扇区,其特征在于,该方法包括擦除操作掉电保护部分以及写操作掉电保护部分,其中,擦除操作掉电保护部分,包括以下步骤为每个数据块增加一个擦除标记,包含有效状态A和无效状态B;进行擦除操作之前将擦除标记写为A,擦除成功后写擦除标记为B,未擦除成功的数据块挂入脏链表;开机检测,将擦除标记仍然为A的数据块进行擦除操作,操作完成后将擦除标记写为B;写操作掉电保护部分,包括以下步骤将扇区标记调整为所支持闪存的物理写单位,开机扫描每个扇区状态,将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于。

4、最大逻辑扇区号的扇区状态建立信息。2根据权利要求1所述的基于FTL的闪存擦写掉电保护方法,其特征在于擦除标记为4个字节。3根据权利要求1所述的基于FTL的闪存擦写掉电保护方法,其特征在于FTL内建有垃圾回收线程,用以查看脏链表中的数据块信息。4根据权利要求1所述的基于FTL的闪存擦写掉电保护方法,其特征在于扇区标记单字节或SINGLEWORD。5一种基于FTL的闪存擦写掉电保护装置,该闪存具有若干数据块,数据块包括若干扇区,其特征在于,该装置包括擦除操作掉电保护单元以及写操作掉电保护单元,其中,擦除操作掉电保护单元,包括为每个数据块增加一个擦除标记的擦除标记修改模块,该擦除标记包含有效状态A和。

5、无效状态B,该模块在进行擦除操作之前将擦除标记写为A,擦除成功后写擦除标记为B,未擦除成功的数据块挂入脏链表;开机检测模块,该开机检测模块用以检测数据块的擦除标记;写操作掉电保护单元,包括将扇区标记调整为所支持闪存的物理写单位的编译模块;开机扫描每个扇区状态的扫描模块;以及扇区标记修改模块,该扇区标记修改模块将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于最大逻辑扇区号的扇区状态建立信息。6根据权利要求5所述的基于FTL的闪存擦写掉电保护装置,其特征在于擦除标记为4个字节。7根据权利要求5所述的基于FTL的闪存擦写掉电。

6、保护装置,其特征在于FTL内建有垃圾回收线程,用以查看脏链表中的数据块信息。8根据权利要求5所述的基于FTL的闪存擦写掉电保护装置,其特征在于扇区标记单字节或SINGLEWORD。权利要求书CN102004706ACN102004719A1/4页3一种基于FTL的闪存擦写掉电保护方法技术领域0001本发明涉及一种嵌入式系统中NORFLASH擦写过程中掉电的保护方法,尤其涉及一种基于FTL的闪存擦写掉电保护方法。背景技术0002闪存FLASH由于快速的读写速度、低能耗、不易损失等特点,在很多场合有应用,特别是便携式消费性产品中应用极广。NOR和NAND是现在市场上两种主要的非易失闪存技术。INT。

7、EL于1988年首先开发出NORFLASH技术,彻底改变了原先由EPROMERASABLEPROGRAMMABLEROM,可擦除可编程ROM和EEPROMELECTRICALLYERASABLEPROGRAMMABLEREADONLYMEMORY,电可擦可编程只读存储器一统天下的局面。NORFLASH的特点是芯片内执行,这样应用程序可以直接在闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在14MB的小容量时具有很高的成本效益。NORFLASH中,将空间划分为多个BLOCK块,擦除是以一个BLOCK为单位进行的,即擦除至少需要擦除一个BLOCK。0003FTLFLASHTRAN。

8、SLATIONLAYER,闪存转化层,是一种闪存与操作系统间对话的介质,由于FTL,操作系统可将闪存作为一个磁盘驱动器DISKDRIVER,在闪存上建立多个虚拟的数据块或者扇区用以存储及管理数据。0004嵌入式终端在开发、测试以及最终用户使用过程当中,不可避免的会出现终端设备的随机掉电如电池电力消失,电池突然移除等,该异常掉电可能导致数据破坏甚至造成闪存的状态异常,从而破坏对闪存操作非常频繁的文件系统,最终导致设备开机失败。因此,介于操作系统和闪存之间的FTL模块,除了需要考虑软件流程的掉电保护外,对闪存擦和写过程中掉电所导致的数据损坏和闪存状态异常,也需要增加相应的保护措施。0005现有的F。

9、TL认为,NORFLASH在执行物理擦或者写操作过程中掉电时,要么保持操作前状态,要么保持操作后状态,所以只提供了保持软件流程一致性的掉电保护措施。但实际试验数据表明,写操作过程中掉电发生后,原数据可能会变为一个未知状态,擦除过程掉电后擦除未成功的数据块可能会处于异常状态。对于这种极端最坏情况下,目前的FTL算法并没有做错误检测和相应处理。0006另外,在对NORFLASH进行写操作时发生掉电,此时如果写操作的单位是SINGLEWORD一般用作写标记,发生掉电后该WORD内部2个字节的数据都不可靠;如果此时写操作的单位是1KB一般用作写数据,发生掉电后该1KB数据不可靠。现有方法认为写状态信息。

10、的过程中发生掉电,状态信息或者保持原有状态或者保持目标状态,但是实验结果证明,对于某些NORFLASH,掉电后写操作的结果并不确定,因此需要对写过程掉电所产生的非预知数据进行处理,而现有的方法则无法做到这一点。0007本发明则是提供一种新的方法用来解决上述问题。发明内容0008本发明要解决的技术问题在于提供一种可实现检测和恢复机制的掉电保护方法。说明书CN102004706ACN102004719A2/4页40009本发明通过这样的技术方案解决上述的技术问题0010一种基于FTL的闪存擦写掉电保护方法,该闪存具有若干数据块,数据块包括若干扇区,该方法包括擦除操作掉电保护部分以及写操作掉电保护部。

11、分,其中,擦除操作掉电保护部分,包括以下步骤为每个数据块增加一个擦除标记,包含有效状态A和无效状态B;进行擦除操作之前将擦除标记写为A,擦除成功后写擦除标记为B,未擦除成功的数据块挂入脏链表;开机检测,将擦除标记仍然为A的数据块进行擦除操作,操作完成后将擦除标记写为B;写操作掉电保护部分,包括以下步骤将扇区标记调整为所支持闪存的物理写单位,开机扫描每个扇区状态,将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于最大逻辑扇区号的扇区状态建立信息。0011作为一种改进,擦除标记为4个字节。0012作为一种改进,FTL内建有垃。

12、圾回收线程,用以查看脏链表中的数据块信息。0013作为一种改进,扇区标记单字节或SINGLEWORD。0014本发明另提供一种基于FTL的闪存擦写掉电保护装置,该闪存具有若干数据块,数据块包括若干扇区,该装置包括擦除操作掉电保护单元以及写操作掉电保护单元,其中,擦除操作掉电保护单元,包括为每个数据块增加一个擦除标记的擦除标记修改模块,该擦除标记包含有效状态A和无效状态B,该模块在进行擦除操作之前将擦除标记写为A,擦除成功后写擦除标记为B,未擦除成功的数据块挂入脏链表;开机检测模块,该开机检测模块用以检测数据块的擦除标记;写操作掉电保护单元,包括将扇区标记调整为所支持闪存的物理写单位的编译模块;。

13、开机扫描每个扇区状态的扫描模块;以及扇区标记修改模块,该扇区状态修改模块将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于最大逻辑扇区号的扇区状态建立信息。0015作为一种改进,擦除标记为4个字节。0016作为一种改进,FTL内建有垃圾回收线程,用以查看脏链表中的数据块信息。0017作为一种改进,扇区标记单字节或SINGLEWORD。0018与现有技术相比较,本发明具有以下优点0019通过擦除掉电保护部分,擦除标记在本数据块内,无需占用多余空间,也不需要提供专门的标记回收机制,4字节的擦除标记可以把擦除掉电检测的失败率降。

14、低到1/232。另外,开机检测在RAMREADONLYMEMORY,随机存取储存器中建立数据块异常信息,不影响开机速度。本发明提供的写操作掉电保护错误检测和处理机制,保证写掉电发生后,只影响到掉电前最后操作的目标数据。附图说明0020图1A是本发明NORFALSH擦写掉电保护方法中的擦除掉电保护部分的检测流程图。0021图1B是本发明NORFALSH擦写掉电保护方法中的擦除掉电保护部分的修复流程图。0022图2是本发明NORFALSH擦写掉电保护方法中的写掉电保护部分的流程图。说明书CN102004706ACN102004719A3/4页5具体实施方式0023下面结合附图详细说明本发明的具体实。

15、施方式。0024本发明提供一种基于FTL的闪存擦写掉电保护方法,该方法主要包括擦除操作掉电保护部分以及写操作掉电保护部分。00251、擦除操作掉电保护部分0026擦除操作掉电保护部分重点在于为每个数据块BLOCK增加一个擦除标记,擦除标记包括两种状态A和B,其中A为无效状态,B为有效状态,B无需擦除可直接修改为A。在本实施方式中,所述擦除标记为4个字节。0027FTLFLASHTRANSLATIONLAYER,闪存转化层内部进行所有擦除操作之前将擦除标记写为A,擦除成功后擦除标记写为B。系统开机后第一次对数据块进行读操作的时候,读取擦除标记,通过擦除标记判断数据块是否发生过擦除掉电,如果是,则。

16、将其加入脏链表DIRTYLIST。具体而言,如果擦除成功,应该是每个数据块的擦除标记都是B,即,擦除完成,如果某个数据块的擦除标记为A,则表明该数据块的擦除并未完成,即发生了掉电,简述如下准备擦除此时擦除标记全部写成A擦除过程中此时因为擦除尚未完成,擦除标记仍为A擦除完成此时擦除标记为B,具体流程可参图1A详细说明。0028首先,开机进行FTL扫描,该扫描过程即为检测数据块的擦除标记是否为A,扫描过程是扫描每一个数据块,即图中的步骤“取第M个BLOCK”,如果该数据块的擦除标记为B并且数据块的状态为已知的,则将该数据块根据其状态挂入对应链表;如果该数据块的擦除标记为A,则将该数据块挂入脏DIR。

17、TY链表。如果检测到有未擦除完成的数据块,则参阅图1B,FTL则调度垃圾回收线程,查看脏链表中的数据块信息,获取其中一个数据块,将其擦除标记写为A,然后进行擦除操作,操作完成后将擦除标记写为B。0029通过擦除掉电保护部分,擦除标记在本数据块内,无需占用多余空间,也不需要提供专门的标记回收机制,4字节的擦除标记可以把擦除掉电检测的失败率降低到1/232。另外,开机检测在RAMREADONLYMEMORY,随机存取储存器中建立数据块异常信息,不影响开机速度。00302、写操作掉电保护部分0031写操作掉电保护部分需要将扇区标记调整为所支持闪存的物理写单位,如单字节或SINGLEWORD。如果发生。

18、掉电,不会影响到其它标记位。另外,还增加扇区号的有效值判断。于本实施方式中,为每个扇区增加扇区标记,扇区标记占一个WORD,包含三个状态INVALID、VALID、DIRTY,只要发生写数据掉电,可根据其状态来区分,基本原理与上面所述的擦除保护掉电保护部分相同。0032请参图2,FTL开机扫描每个扇区状态,并获取一个扇区,如果扇区状态为未知状态,则将该扇区视为无效扇区,并在RAM中将该扇区标记为DIRTY;如果该扇区为已知状态,则进行处理,即为图2中的步骤“处理已知状态扇区”,若扇区标记为VALID,但扇区号为无效即扇区号大于最大逻辑扇区号,则修改扇区状态为DIRTY,若发现标记为VALID且。

19、扇区号不大于最大逻辑扇区号,则根据扇区状态建立RAM信息。实际上,在该过程中,若发现扇区标记为INVALID,则跳过该扇区,也会在RAM中记录该扇区为DIRTY。本发明提供的写操作掉电保护错误检测和处理机制,保证写掉电发生后,只影响到掉电前最后操作的目标说明书CN102004706ACN102004719A4/4页6数据。0033本发明另提供一种基于FTL的闪存擦写掉电保护装置,该保护装置应用的闪存具有若干数据块,数据块包括若干扇区。本发明的基于FTL的闪存擦写掉电保护装置包括擦除操作掉电保护单元以及写操作掉电保护单元。0034擦除操作掉电保护单元包括0035为每个数据块增加一个擦除标记的擦除。

20、标记修改模块,该擦除标记包含有效状态A和无效状态B,该模块在进行擦除操作之前将擦除标记写为A,擦除成功后写擦除标记为B,未擦除成功的数据块挂入脏链表;0036开机检测模块,该开机检测模块用以检测数据块的擦除标记。0037写操作掉电保护单元包括0038将扇区标记调整为所支持闪存的物理写单位的编译模块;0039开机扫描每个扇区状态的扫描模块;0040扇区标记修改模块。该扇区标记修改模块将扇区标记为有效、但扇区号为无效的扇区的扇区状态修改为脏状态,将扇区标记为无效的扇区记录为脏状态,将标记为有效且扇区号不大于最大逻辑扇区号的扇区状态建立信息。0041以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。说明书CN102004706ACN102004719A1/3页7图1A说明书附图CN102004706ACN102004719A2/3页8图1B说明书附图CN102004706ACN102004719A3/3页9图2说明书附图CN102004706A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1