网站首页  词典首页

请输入您要查询的论文:

 

标题 基于NAND闪存的安全U盘FTL算法研究
范文 赵啟鹏



摘要: 以闪存为存储介质的U盘因操作速度快、安全可靠性高、便于携带等优点,应用范围越来越广。随着闪存技术的不断发展,基于页级映射策略的FTL优良特性难以体现。在页级映射策略以及确保信息安全的基础上,以国产S261主控加密闪存盘为例,提出了一种混合映射算法,采用三级寻址方式实现逻辑地址到物理地址的转换,并对其进行优化,实现快速寻址。实验结果表明,采用该算法的安全U盘读写性能良好。
关键词:安全U盘;闪存转换层;混合映射;三级寻址DOI: 10.11907/rjdk.162648 中图分类号: TP312 文献标识码:文章编号:16727800(2017)004003803
0引言 移动存储设备应用广泛,但随之产生的信息安全问题也成为人们关注的焦点。安全闪存盘采用半导体技术以及硬件加密,具有容量大、耐高低温、防信息泄露等特性[1]。闪存盘的存储介质即闪存拥有的特性[2],比如先擦后写特性、有限的使用寿命、操作系统无法直接对其进行读写操作等。为了隐藏这些特性并将其模仿成标准块设备,可使用闪存转换层(FTL)的中间软件层管理闪存。由于闪存先擦后写的特性,数据更新不能像机械盘一样覆盖写入,而是将更新过的数据写入一个空闲页,并将存储原先数据的页标记为无效页。因此,为了将一个主机逻辑地址转化为物理闪存地址,提出了地址映射,更确切地说,是将一个逻辑页号(LPN)转换为一个物理页号(PPN),这个过程称为地址转换。 为了快速实现地址转化,FTL将逻辑地址转化为物理地址(LPN-to-PPN)的映射表缓存在RAM里[3]。随着闪存盘容量的不断扩大,映射表越来越大,RAM缓存压力也越来越大,尤其是基于页级地址映射策略的FTL,虽然能够实现快速寻址,但也耗用了大量的RAM空间。一些基于页级地址映射的FTL为了降低RAM的使用需求,将大部分地址映射项存储在闪存上,将小部分频繁访问的地址映射项存储在RAM里。这样的策略是建立在最少使用算法(LRU)基础上的[4],当采用直接映射缓存管理时,映射效率会变得很低。 本文在使用加密技术确保闪存盘数据安全的基础上[5],为减少RAM的使用,采用混合映射策略,同时将逻辑地址划分为类似于物理地址的格式,并利用三级寻址方式将逻辑地址转换为物理地址。
1地址映射表设计
1.1映射策略 混合映射算法页级映射局限于逻辑块(Logic Block),一个逻辑块可以映射多个物理块(Physical Block),但一个物理块只能映射一个逻辑块[6]。一个逻辑块映射的物理块数量有一定限制,被映射的物理块数量称为Depth。为确保容量损失最小,本算法可支持的Depth为3~6,具体取值决定于逻辑块类型和页映射表类型。
1.2映射表设计 本算法逻辑块内的映射策略采用页级映射。为了表示映射关系,设计了页映射表PMT(Page Mapping Table )。此外,为了实现快速寻址以及减少RAM的使用,在PMT基础上又设计了3种索引表,分别为簇索引表CIT(Cluster Index Table)、一级索引表PIT(Primary Index Table)、二级索引表SIT(Second Index Table)。 1.2.1PMT设计 PMT是整个算法的核心,包括逻辑页到物理页的映射(Logic Page to Physical Page Mapping)、块链单元位掩码域(Block Chain Unit X Bit Mask Field)、块链信息域(Block Chain Log Field)、页信息域(Page Log Field)、标记域(Flag Field)。图1是PMT设计框架。
(1)Logic Page To Physical Page。用内存地址表示逻辑页号,内存值表示物理页号,这样就可以根据逻辑页号获取到物理页号。如果1Physical Block=256 Physical Pages,那么就需要8bits来表示逻辑页号。可以使用1byte内存地址来表示逻辑页号,那么1个Physical Block就需要256 bytes的内存地址。(2)Block Chain Unit X Bit Mask Field。由于本算法是一个逻辑块对应多个物理块,所以将多个物理块组成一个块链(Block Chain),块链中的物理块也称之为单元块(Unit)。虽然一个逻辑页可以映射到多个物理块中的物理页,但最终只有一个物理页有效。为了确定哪个物理块中的物理页有效,逻辑页对应的位值“0”表示有效,值“1”表示无效。如果一个1Physical Block=256 Physical Pages,那么就需要256bits(16bytes)来表示一个物理块中所有物理页是否有效。(3)Block Chain Log Field。块链信息域保存的是物理块号,一般需要2bytes来表示物理块号。由于本算法中的Depth最大为6,需要12bytes的存储空间,所以分配16bytes即可。(4)Page Log Field。表示块链中每个物理块的物理页使用情况,其中UP(Used Pages)表示已经使用物理页数量,VP(Valid Pages)表示有效的物理页数量。如果1 Physical Block=256 Physical Pages,那么就需要12bytes来表示具体的物理页数量信息。(5)Flag Field。表示Depth信息、物理块被写次数、物理块总共擦除次数等。 1.2.2SIT设计 本算法的PMT大小为512 bytes,目前Flash最小的Page大小为2KB,为了提高Flash Page的使用效率,將4张PMT组成一个存储单元,然后放入Flash Page中。该单元称为二级索引表SIT(Second Index Table)。1张PMT表示的是一个Logic Block到多个Physical Block的映射关系,所以1张SIT可以表示4个Logic Block映射关系。将4个Logic Block称为4个SubBlock,同时将4个Logic Block统称为1个PrimBlock,即1PrimBlock = 4 SubBlocks。图2是SIT架构。
随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/12 0:12:57