当前位置: 首页 > 专利查询>微软公司专利>正文

采用事务日志的闪存恢复制造技术

技术编号:7140083 阅读:307 留言:0更新日期:2012-04-11 18:40
一种用于闪存恢复的事务日志,包括指定诸如对扇区的写入或对块的擦除等已经执行的操作的链式块序列。执行将整个闪存状态写入到闪存的检查点。一旦执行了检查点,就删除该检查点之前的所有日志条目,并且关于恢复的日志处理开始于最后的检查点。如果系统能够安全关闭,则可以在驱动程序卸载之前执行检查点,并且在初始化时,整个持久存储的闪存状态可被加载到闪存中且进行最少量的闪存扫描。如果在系统操作期间发生电源故障,则在下一次引导时,只须扫描日志条目中的在最后的检查点之后指定的扇区或块,而不是该部分上的所有扇区。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及闪存恢复,尤其涉及采用事务日志的闪存恢复
技术介绍
闪存是可以电擦除和重新编程的非易失性计算机存储器。该技术主要用于存储卡 和通用串行总线(“USB”)闪存驱动器以便进行一般存储以及在计算机和其他数字产品之 间传输数据。闪存是大块擦除和编程的特定类型的电可擦可编程只读存储器(“EEPR0M”)。 闪存的成本比字节可编程EEPROM低得多,并因此已经变成在需要大量非易失性、固态存储 之处的主流技术。应用的示例包括个人数字助理(“PDA”)、膝上型计算机、数字音频/视 频播放器、数码相机、游戏控制台和移动电话。闪存是非易失性的,这意味它不需要电源来维护存储在芯片中的信息。另外,闪存 提供比硬盘相对更快的读访问时间(尽管没有用于PC中的主存储器的易失性DRAM存储器 快)和更好的运动冲击抵抗性。这些特性导致闪存在便携式设备中的流行。闪存的另一特 征是当被封装在存储卡中时,它是非常耐久的,从而能够抵挡强大的压力、极端温度以及甚 至浸入水中。当前可用闪存驱动程序通常需要在引导期间扫描闪存上的每一个扇区,以确定该 闪存的状态并恢复任何因电源故障而被中断的操作。闪存状态包括数据结构,诸如逻辑到 物理扇区的映射表、自由表,和脏表。然而,随着闪存部分变大,该过程可能花费非常长的时 间,并因此影响引导时间。
技术实现思路
提供本
技术实现思路
是为了以精简的形式介绍将在以下具体实施方式中进一步描述 的一些概念。本
技术实现思路
并不旨在标识出所要求保护的主题的关键特征或必要特征,也不 旨在用于帮助确定所要求保护的主题的范围。各实施方式涉及在关闭后采用事务日志来进行闪存恢复。事务日志可包括指定在 关闭前已经执行的操作的链式块序列。根据某些实施方式,记录日志条目并在操作期间创 建检查点。在初始化时定位事务日志并且处理该日志以便对闪存操作期间的电源故障进行 恢复和处理。根据其他实施方式,可以整理事务日志以回收闪存空间。通过阅读下面的“具体实施方式”并参考相关联的图形,这些及其他特点和优点将 变得显而易见。应该理解,前面的一般性的说明和下面的具体实施方式只是说明性的,不会 对如权利要求所述的方面形成限制。附图说明图1是示出不同类型的闪存的存储结构的图示;图2是示出根据各实施方式的闪存驱动程序的高级体系结构的概念图;图3示出了根据各实施方式的闪存驱动程序中的示例检查点操作(checkpointing)过禾呈;图4示出了根据各实施方式的闪存驱动程序中的用于在恢复时构造写入块列表 的示例过程;图5示出了根据各实施方式的闪存驱动程序中的用于在恢复时确定写入操作次 序的示例过程;图6示出了根据各实施方式的闪存驱动程序中的用于恢复由于电源故障而中断 的写入操作的示例过程;以及图7是其中可以实现各实施方式的示例计算操作环境的框图。 具体实施例方式如上文所简述的,可以利用具有检查点的事务日志来恢复闪存。在以下具体实施 方式中,参考了构成了具体实施方式的一部分并作为说明示出了各具体实施方式或示例的 附图。可组合这些方面,可利用其他方面,并且可以做出结构上的改变而不背离本专利技术的精 神或范围。因此,以下具体实施方式并不旨在限制,并且本专利技术的范围由所附权利要求及其 等效方案来限定。虽然在结合在个人计算机上的操作系统上运行的应用程序执行的程序模块的一 般上下文中描述了各实施方式,但是本领域技术人员会认识到各方面也可以结合其他程序 模块实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组 件、数据结构和其他类型的结构。此外,本领域技术人员会理解,各实施方式可以用其他计 算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子 产品、小型计算机、大型计算机等等。各实施方式还能在任务由通过通信网络链接的远程处 理设备来执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和 远程存储器存储设备中。各实施方式可被实现为计算机过程(方法)、计算系统、或者如计算机程序产品或 计算机可读介质等制品。计算机程序产品可以是计算机系统可读并编码了用于执行计算机 过程的指令的计算机程序的计算机存储介质。计算机程序产品还可以是计算系统可读并编 码了用于执行计算机过程的指令的计算机程序的载体上的传播信号。参考图1,提供了示出不同类型的闪存的存储结构的图100和110。两种主要类型 的闪存是常见的=(I)NAND闪存,其中该介质被分成块集合,块集合被进一步细分成页(例 如,对于大块NAND,从传统的512字节大小到2KB大小);以及(2) NOR闪存,其中该介质被 分成块集合并且所有字节都可单独定址(如同RAM)。图100示出了被分成一系列连续块(102,104,. . .,106)的NAND闪存。每一个块 然后被进一步细分成某一数量的页(例如,每块32个扇区对于16MBNAND闪存设备而言是 常见值)。每一页然后被进一步分成两个不同的部分数据区域101 (小块NAND上512字 节,大块NAND上2KB),用于存储信息;以及额外区域103 (小块NAND上16字节、大块NAND 上64字节),用于存储额外信息,诸如闪存抽象层(FAL)元数据、纠错码(ECC)等。图110示出了被分成一系列连续块(112,114,...,116)的NOR闪存。类似于传统 RAM,这些块中的每一个字节都可单独定址。NAND闪存通常表征为比NOR闪存更慢的读性能但比NOR闪存更快的写性能。NOR 闪存通常具有与RAM相当的读速度并且允许系统代码的就地执行(XIP)。NAND闪存通常在 介质上带有无法用来存储数据的坏块。结果,系统软件(也被称为设备驱动程序)负责坏 块管理。已知NAND闪存在浮动栅极的氧化物层(Tox)中泄漏电流。实际上,这意味着页中 的位随着时间的推移随机改变值是可能的。结果,使用ECC来检测并纠正介质中的位改变 是必需的。此外,NOR闪存通常具有比NAND闪存慢得多的擦除时间,并且NAND闪存密度由 于底层晶体管结构而伸缩得更好。与常规单级单元格(SLC)NAND闪存每一个单元格存储1位形成对比,多级单元格 (MLC)闪存每一个单元格存储2位。这允许存储密度翻倍,但导致各种缺点。该技术影响该 部分的可靠性,这需要使用较大的ECC来检测并纠正位改变。它还可以对存储器编程方式 提出限制。大块NAND实质上具有较大的页大小(例如,2KB),这也给予它较大的块大小。较 大的页大小还意味着备用区域也较大(例如,对于2KB数据页而言是64字节)。如上所述,MLC和大块NAND对闪存编程方式提出限制。例如,MLC和大块NAND两 者都需要在块中按顺序对页进行编程。一旦已写入页并且已经写入后续页,在擦除整个块 之前无法重新写入原始页。此外,MLC施加只限制一个部分页编程的附加限制。这意味着 一旦已经写入页,就无法在不擦除的情况下再次写入该页。大块NAND具有3个部分页编程 的限制。NAND和NOR闪存两者都还遭受物理约束,诸如(1)写入操作只能将位从逻辑‘ 1 ’ 置位到逻辑‘0’ ; (2)擦除块将该块中的所有位置位为逻辑‘1’ ; (3)只能擦除块,并且不可 能擦除块中的单独的页/字节而不擦除同一块中的所有页/字节;(4)块本文档来自技高网...

【技术保护点】
一种至少部分地在计算设备中执行的用于采用事务日志来进行闪存恢复的方法,所述方法包括:在闪存操作期间,生成包括指定已执行的闪存操作的链式块序列的事务日志(400);通过将整个闪存状态写入所述闪存中的指定位置来执行检查点(300);在完成所述检查点后,删除所有事务日志条目(348),其中最终检查点在闪存驱动程序在安全关闭期间卸载之前执行;如果在所述安全关闭之后初始化所述闪存,则基于所述最终检查点来加载所述整个闪存状态(452);以及如果在意外关闭之后,在未在所述闪存驱动程序卸载之前执行完整的检查点的情况下初始化所述闪存,则通过扫描最后的检查点之后的事务日志条目来恢复所述闪存状态(693)。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:A·M·罗杰斯
申请(专利权)人:微软公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1