通过闪存转换层识别上层应用的方法及其系统技术方案

技术编号:8562942 阅读:174 留言:0更新日期:2013-04-11 04:35
本发明专利技术适用于存储技术领域,提供了一种通过闪存转换层识别上层应用的方法及其系统,所述方法包括如下步骤:在闪存转换层建立顺序写筛选列表,所述顺序写筛选列表记录上层应用的下一个写命令的逻辑块寻址;在所述闪存转换层建立顺序写候选列表,所述顺序写候选列表记录所述上层应用下发的写命令;在所述上层应用下发写命令时,根据所述顺序写筛选列表和顺序写候选列表的记录判断所述上层应用下发的所述写命令的类型。借此,本发明专利技术使通过闪存转换层可以识别上层应用下发的写命令的类型。

【技术实现步骤摘要】

本专利技术涉及存储
,尤其涉及一种通过闪存转换层识别上层应用的方法及其系统
技术介绍
NAND Flash是Flash内存的一种,属于非易失性、抗振动、存储速度快、功耗低的特性,使其广泛应用于手机、数码相机等便携式移动设备。但是NANDFlash存在一个限制条件需要先擦除再写入,数据读写单位为page,擦除的单位为block,而且block的擦除次数有限;因此,文件系统不能直接访问它。FTL(Flash Translation Layer闪存转换层)是文件系统和NAND Flash之间的转换层,使文件系统可以像磁盘一样访问NAND Flash。文件系统与FTL的层次关系如图1所示FTL由三个核心功能组成地址映射、垃圾回收、均衡磨损。FTL地址映射通常分为块映射、页映射、块页混合映射三类。块页混合映射一般是多级映射,第一级块映射,第二级块内页映射。目前FTL多采用块页混合映射,而且采用日志系统原理,将数据的更新记录在日志块上。这种日志式混合映射类型的FTL通常将Flash块分成两类数据块和日志块,数据块和日志块的对应关系一对一,或者多对多。垃圾回收的代价主要来源于擦除操作,其次是复制有效数据。因此,对于顺序写,采用块映射可以节约内存空间,数据块和日志块采用一一对应的关系,垃圾回收效率较高;对于随机写,一般采用页映射,日志块对应多个数据块,提高日志块的利用率,但是垃圾回收的效率不高。当前常见FTL算法只提供一种数据块和日志块的对应关系,而且鲜见有区分上层应用的机制,因此,不能满足如图1所示的通用计算机系统的复杂应用。综上可知,现有闪存转换层识别上层应用的技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
技术实现思路
针对上述的缺陷,本专利技术的目的在于提供一种通过闪存转换层识别上层应用的方法及其系统,使通过闪存转换层可以识别上层应用下发的写命令的类型。为了实现上述目的,本专利技术提供一种通过闪存转换层识别上层应用的方法,所述方法包括如下步骤在闪存转换层建立顺序写筛选列表,所述顺序写筛选列表记录上层应用的下一个写命令的逻辑块寻址;在所述闪存转换层建立顺序写候选列表,所述顺序写候选列表记录所述上层应用下发的写命令;在所述上层应用下发写命令时,根据所述顺序写筛选列表和顺序写候选列表的记录判断所述上层应用下发的所述写命令的类型。根据所述的方法,在所述在闪存转换层建立顺序写筛选列表的步骤之前包括将闪存存储块划分为日志块、数据块以及空白块;所述日志块分为顺序写日志块和随机写日志块;所述顺序日志块对应一个所述数据块,所述随机日志块对应多个所述数据块;并且分别设置所述顺序写日志块和随机写日志块的上下限的数目;在所述根据所述顺序写筛选列表和顺序写候选列表的记录判断所述上层应用下发的所述写命令的类型的步骤之后包括根据所述写命令的类型以及当前所述顺序写日志块和随机写日志块的情况,执行相应的操作处理。根据所述的方法,在所述上层应用下发写命令时,根据所述顺序写筛选列表和顺序写候选列表的记录判断所述上层应用下发的所述写命令的类型的步骤包括在所述上层应用下发写命令时,检查所述写命令是否在所述顺序写筛选列表中有记录;在所述写命令所述顺序写筛选列表中没有记录时,则在所述顺序写筛选列表中增加一个所述写命令的数目及长度的记录;在所述写命令所述顺序写筛选列表中有记录时,则检查所述写命令是否在所述顺序与候选列表中有记录在所述顺序写候选列表中没有记录时,则在所述顺序写候选列表中增加所述写命令的数目及长度的记录;在所述顺序写候选列表中有记录时,则更新所述顺序写候选列表中所述写命令的数目及总长度记录;在所述顺序写候选列表中记录所述写命令的总长度大于所述数据块大小,则标记该次所述写命令为顺序写命令,否则标记为随机写命令。根据所述的方法,所述根据所述写命令的类型以及当前所述顺序写日志块和随机写日志块的情况,执行相应的操作处理的步骤包括在所述写命令标记为顺序写命令时,则所述闪存转换层的地址映射按照块映射,为一个所述数据块分配一个所述顺序日志块;当所述数据块上的数据都无效或者当所述顺序日志块用完或者达到所述顺序日志块数目的上限时,则执行垃圾回收;在所述写命令标记为随机写命令时,则所述闪存转换层的地址映射按照页映射,每个所述数据块上页数据更新可以存放在不同的所述随机日志块上;当所有的所述随机日志块用完或者达到所述随机日志块数目的上限时,则执行垃圾回收。根据所述的方法,所述根据所述写命令的类型以及当前所述顺序写日志块和随机写日志块的情况,执行相应的操作处理的步骤还包括在所述顺序写命令和随机写命令交替下发到所述数据块时,则若是所述顺序写命令,所述数据块有页映射表,或者已经关联了随机日志块,但是没有关联顺序日志块,则给所述数据块分配一个顺序日志块,当垃圾回收时释放页映射表;若是所述随机写命令,所述数据块没有页映射表,但是具有顺序日志块,则构建页映射表,并且将所述数据块的顺序日志块转换成随机日志块,当达到所述随机日志块数目的上限时,执行垃圾回收。为了实现本专利技术的另一实施例,本专利技术提供了一种通过闪存转换层识别上层应用的系统,包括第一建立模块,用于在闪存转换层建立顺序写筛选列表,所述顺序写筛选列表记录上层应用的下一个写命令的逻辑块寻址;第二建立模块,用于在所述闪存转换层建立顺序写候选列表,所述顺序写候选列表记录所述上层应用下发的写命令;判断模块,用于在所述上层应用下发写命令时,根据所述顺序写筛选列表和顺序写候选列表的记录判断所述上层应用下发的所述写命令的类型。根据所述的系统,所述系统还包括划分模块,用于将闪存存储块划分为日志块、数据块以及空白块;所述日志块分为顺序写日志块和随机写日志块;所述顺序日志块对应一个所述数据块,所述随机日志块对应多个所述数据块;设置模块,用于分别设置所述顺序写日志块和随机写日志块的上下限的数目;执行模块,用于根据所述写命令的类型以及当前所述顺序写日志块和随机写日志块的情况,执行相应的操作处理。根据所述的系统,所述判断模块包括第一检查子模块,用于在所述上层应用下发写命令时,检查所述写命令是否在所述顺序写筛选列表中有记录;第一增加子模块,用于在所述写命令所述顺序写筛选列表中没有记录时,则在所述顺序写筛选列表中增加一个所述写命令的数目及长度的记录;第二检查子模块,用于在所述写命令所述顺序写筛选列表中有记录时,则检查所述写命令是否在所述顺序写候选列表中有记录第二增加子模块,用于在所述顺序写候选列表中没有记录时,则在所述顺序写候选列表中增加所述写命令的数目及长度的记录;更新子模块,用于在所述顺序写候选列表中有记录时,则更新所述顺序写候选列表中所述写命令的数目及总长度记录;标记子模块,用于在所述顺序写候选列表中记录所述写命令的总长度大于所述数据块大小,则标记该次所述写命令为顺序写命令,否则标记为随机写命令。根据所述的系统,所述执行模块包括分配子模块,用于在所述写命令标记为顺序写命令时,则所述闪存转换层的地址映射按照块映射,为一个所述数据块分配一个所述顺序日志块;第一执行子模块,用于当所述数据块上的数据都无效或者当所述顺序日志块用完或者达到所述顺序日志块数目的上限时,则执行垃圾回收;第二执行子模块,用于在所述写命令标记为随机写命令时,则所述闪存本文档来自技高网
...

【技术保护点】
一种通过闪存转换层识别上层应用的方法,其特征在于,所述方法包括如下步骤:在闪存转换层建立顺序写筛选列表,所述顺序写筛选列表记录上层应用的下一个写命令的逻辑块寻址;在所述闪存转换层建立顺序写候选列表,所述顺序写候选列表记录所述上层应用下发的写命令;在所述上层应用下发写命令时,根据所述顺序写筛选列表和顺序写候选列表的记录判断所述上层应用下发的所述写命令的类型。

【技术特征摘要】
1.一种通过闪存转换层识别上层应用的方法,其特征在于,所述方法包括如下步骤 在闪存转换层建立顺序写筛选列表,所述顺序写筛选列表记录上层应用的下一个写命令的逻辑块寻址; 在所述闪存转换层建立顺序写候选列表,所述顺序写候选列表记录所述上层应用下发的与命令; 在所述上层应用下发写命令时,根据所述顺序写筛选列表和顺序写候选列表的记录判断所述上层应用下发的所述写命令的类型。2.根据权利要求1所述的方法,其特征在于,在所述在闪存转换层建立顺序写筛选列表的步骤之前包括 将闪存存储块划分为日志块、数据块以及空白块; 所述日志块分为顺序写日志块和随机写日志块;所述顺序日志块对应一个所述数据块,所述随机日志块对应多个所述数据块;并且分别设置所述顺序写日志块和随机写日志块的上下限的数目; 在所述根据所述顺序写筛选列表和顺序写候选列表的记录判断所述上层应用下发的所述写命令的类型的步骤之后包括 根据所述写命令的类型以及当前所述顺序写日志块和随机写日志块的情况,执行相应的操作处理。3.根据权利要求2所述的方法,其特征在于,在所述上层应用下发写命令时,根据所述顺序写筛选列表和顺序写候选列表的记录判断所述上层应用下发的所述写命令的类型的步骤包括 在所述上层应用下发写命令时,检查所述写命令是否在所述顺序写筛选列表中有记录; 在所述写命令所述顺序写筛选列表中没有记录时,则在所述顺序写筛选列表中增加一个所述写命令的数目及长度的记录; 在所述写命令所述顺序写筛选列表中有记录时,则检查所述写命令是否在所述顺序写候选列表中有记录 在所述顺序写候选列表中没有记录时,则在所述顺序写候选列表中增加所述写命令的数目及长度的记录; 在所述顺序写候选列表中有记录时,则更新所述顺序写候选列表中所述写命令的数目及总长度记录; 在所述顺序写候选列表中记录所述写命令的总长度大于所述数据块大小,则标记该次所述写命令为顺序写命令,否则标记为随机写命令。4.根据权利要求3所述的方法,其特征在于,所述根据所述写命令的类型以及当前所述顺序写日志块和随机写日志块的情况,执行相应的操作处理的步骤包括 在所述写命令标记为顺序写命令时,则所述闪存转换层的地址映射按照块映射,为一个所述数据块分配一个所述顺序日志块; 当所述数据块上的数据都无效或者当所述顺序日志块用完或者达到所述顺序日志块数目的上限时,则执行垃圾回收; 在所述写命令标记为随机写命令时,则所述闪存转换层的地址映射按照页映射,每个所述数据块上页数据更新可以存放在不同的所述随机日志块上;当所有的所述随机日志块用完或者达到所述随机日志块数目的上限时,则执行垃圾回收。5.根据权利要求4所述的方法,其特征在于,所述根据所述写命令的类型以及当前所述顺序写日志块和随机写日志块的情况,执行相应的操作处理的步骤还包括 在所述顺序写命令和随机写命令交替下发到所述数据块时,则若是所述顺序写命令,所述数据块有页映射表,或者已经关联了随机日志块,但是没有关联顺序日志块,则给所述数据块分配一个顺序日志块,当垃圾回收时释放页映射表; 若是所述随机写命令,所述数据块没有页映射表,但是具有顺序日志块,则构建页映射表,并且将所述数据块的顺序日志块转换成...

【专利技术属性】
技术研发人员:张雷
申请(专利权)人:记忆科技深圳有限公司
类型:发明
国别省市:

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

1