一种对NAND闪存硬件和闪存转换层软件的形式化建模

形式化验证论文 闪存转换层论文 闪存设备论文 形式化建模论文 高可信软件论文
论文详情
NAND闪存已经成为主流的存储介质,并被广泛地应用到嵌入式、桌面、服务器以及数据中心等各种计算机系统中,并仍迅速地挤占传统纯磁性材料存储介质的市场。与此同时,在航空航天、国防军工,核电,医疗设备等一些安全攸关领域,NAND闪存也因其存储密度高、抗震性好、低功耗等特点得到了越来越多的应用。然而NAND闪存的一些独有的物理特性导致了其与传统机械硬盘相比,具有天然的存储不稳定性。例如NAND闪存存在着磨损的问题,即经过多次读写之后的闪存单元会变得越来越不稳定,而且超过一定的擦除次数之后,存储单元就会彻底报废。又例如闪存单元读写会引入电流干扰,即在写一个存储单元时,电流引起相邻的存储单元的位翻转。NAND闪存的这些物理特性就对管理NAND的软件提出了更高的要求。一种较为常见的解决方案引入一个被称为闪存转换层(Flash Translation Layer, FTL)的软件层,用以隐藏这些物理特性,使得NAND闪存可以像传统的机械硬盘一样进行任意读写。在过去的十多年里,有大量FTL软件相关的算法被提出。为了兼顾稳定性、性能,可靠性,这类算法通常比其他存储介质的管理软件更为复杂,也更容易出现问题。为了构建高可信的基于NAND闪存存储的系统软件,通过严格的形式化方法对NAND闪存硬件进行建模,对管理NAND闪存的FTL软件层的行为进行正确性验证具有一定的理论和实际意义。首先,本文根据一个被众多闪存生产厂商广泛接受认可的NAND闪存接口标准ONFI3.0,采用形式化语言对NAND闪存硬件的真实语义进行形式化建模。本文提出的形式化模型包括ONFI所定义的NAND闪存硬件的存储层次结构、闪存硬件芯片处理命令的内部工作流程、闪存硬件的命令集,以及在此基础之上定义的闪存的基本操作。本文的NAND闪存形式化模型在定理证明工具Coq中定义实现。在Coq工具中,该模型的一些性质也得到了完整地证明。该模型可以直接被用来作为验证基于NAND闪存硬件的存储系统软件的基础。其次,本文使用基于不变式的证明方法建立了一个通用的、可以验证各种闪存转换层正确性的形式化框架。所谓的正确性是指:在正确的初始条件下,,一个运行着正确的闪存转换层算法的NAND闪存与一块传统机械硬盘在相同的读写命令序列之后将输出同样的数据。在该形式化框架中,本文首次定义了一个经典的闪存转换层算法(BAST),并证明了算法的正确性。本文所建立的形式化NAND闪存模型和闪存转换层算法证明框架为验证其上运行的嵌入式操作系统及其它嵌入式软件提供了严格的形式化模型,并将为基于NAND闪存的高可信嵌入式软件的开发提供一个坚实的基础
摘要第5-7页
ABSTRACT第7-8页
目录第9-12页
第1章 绪论第12-20页
    1.1 研究背景第12-16页
        1.1.1 NAND闪存第12-14页
        1.1.2 闪存转换层第14页
        1.1.3 基于定理证明的程序验证第14-16页
    1.2 研究内容与研究方法第16-18页
    1.3 研究难点与本文贡献第18-19页
    1.4 符号规范第19页
    1.5 组织结构第19-20页
第2章 NAND闪存模型的形式化第20-30页
    2.1 形式化验证工具COQ第20-21页
    2.2 NAND闪存存储结构第21-22页
    2.3 NAND闪存工作结构第22-23页
    2.4 NAND闪存模型第23-28页
        2.4.1 数据单元第23-24页
        2.4.2 页第24-25页
        2.4.3 块第25-26页
        2.4.4 Plane第26页
        2.4.5 逻辑单元第26-27页
        2.4.6 Target第27页
        2.4.7 设备第27-28页
    2.5 本章小结第28-30页
第3章 NAND闪存操作的形式化第30-50页
    3.1 NAND闪存的操作第30-31页
    3.2 NAND闪存命令的形式化语义第31-44页
        3.2.1 发送指令的操作语义第32-36页
        3.2.2 发送地址的操作语义第36-37页
        3.2.3 等待设备的操作语义第37-41页
        3.2.4 接收数据的操作语义第41-42页
        3.2.5 发送数据的操作语义第42-43页
        3.2.6 读取设备状态的操作语义第43-44页
    3.3 闪存设备驱动的验证第44-48页
        3.3.1 读操作第44-45页
        3.3.2 写操作第45-46页
        3.3.3 擦除操作第46页
        3.3.4 读取状态命令第46-47页
        3.3.5 读取设备参数命令第47页
        3.3.6. 重置命令第47-48页
        3.3.7 NAND闪存设备模型的性质第48页
    3.4 本章小结第48-50页
第4章 闪存转换层算法的证明框架第50-60页
    4.1 闪存转换层算法第50-52页
    4.2 闪存转换层算法的正确性定义第52-53页
    4.3 闪存转换层算法正确性的形式化证明框架第53-59页
    4.4 本章小结第59-60页
第5章 一个实际的闪存转换层算法的证明第60-76页
    5.1 BAST算法介绍第60-69页
        5.1.1 块的信息表和页映射表第63页
        5.1.2 空闲块队列第63-65页
        5.1.3 BAST的读算法第65-66页
        5.1.4 BAST的写算法第66-69页
    5.2 BAST算法的全局不变式第69-75页
    5.3 本章小结第75-76页
第6章 总结第76-80页
    6.1 工作总结第76-77页
    6.2 未来可能的研究工作第77-80页
参考文献第80-82页
致谢第82-84页
在读期间发表的学术论文与取得的其他研究成果第84页
论文购买
论文编号ABS2899424,这篇论文共84页
会员购买按0.30元/页下载,共需支付25.2
不是会员,注册会员
会员更优惠充值送钱
直接购买按0.5元/页下载,共需要支付42
只需这篇论文,无需注册!
直接网上支付,方便快捷!
相关论文

点击收藏 | 在线购卡 | 站内搜索 | 网站地图
版权所有 艾博士论文 Copyright(C) All Rights Reserved
版权申明:本文摘要目录由会员***投稿,艾博士论文编辑,如作者需要删除论文目录请通过QQ告知我们,承诺24小时内删除。
联系方式: QQ:277865656