一种存储装置的掉电保护方法与流程

文档序号:20698462发布日期:2020-05-12 15:19阅读:535来源:国知局
一种存储装置的掉电保护方法与流程

本发明适用于数据存储安全技术领域,提供了一种存储装置的掉电保护方法。



背景技术:

鉴于host以sector为最小读写单元,而nand以page(常见为16kb)为读写单元,并无法复写的特性,ftl成为了主流技术实现主机命令逻辑地址至物理地址的映射。以nand为例的多种nvm介质的存储设备,除了需要完整的保存主机读写的数据以外,还需要保存ftl在内的各种系统数据。

主机电源故障、带电插拔等异常掉电事件发生时,有效的数据保护需要保存cache中的完整主机数据和用户数据,两者缺一不可。

传统的技术方案,异常掉电时,需要借助电容或电池等续航,同步存储cache中的主机数据和用户数据;并在再次上电时,对主机数据和用户数据实际存储的情况做对齐操作,以避免发生数据部分丢失或数据出错等问题。其异常掉电时需要存储的数据量多,并且上电重建操作复杂,耗时长。



技术实现要素:

本发明旨在针对上述问题,提出一种不依赖于电容或电池续航能力,保护写入nvm的主机数据和对应系统数据的方法,以及快速启动的方法。

本发明的技术方案在于:

一种存储装置的掉电保护方法,存储的数据包括主机数据和系统数据;该方法如下:

数据存储阶段:

(1)数据存储过程被分割成不同flushtag号的阶段,且每个阶段的结束点均确保数据被完整地存储在nvm中;

(2)上述每个flushtag的数据存储完成后,会对应生成日志,该日志也存储在nvm中;其中,数据以及日志在nvm中有其对应的存储区域,主机数据存储于主机数据存储区域,系统数据存储于系统数据存储区域,日志存储于日志存储区域;

(3)在本flushtag阶段内,主机数据仅可以被存储在其对应的可用的块资源中;当可用的块资源用尽时,会触发结束本flushtag阶段;为后一个flushtag阶段分配的flushtag必须大于前一个flushtag阶段的flushtag;

数据恢复阶段:

(4)存储装置上电时,在日志存储区域扫描日志,确定最新的日志和其对应的flushtag;在确定最新的日志后,基于该最新的日志及其对应的flushtag,在系统数据存储区域中扫描该最新的日志所对应的系统数据,获得其系统数据的有效存储位置;

(5)扫描上述获得的系统数据的有效存储位置,读取并加载各系统表项,完成对该最新的日志及其对应的flushtag阶段结束点的完整系统数据的恢复;

(6)读取下一个flushtag的块资源信息,在该块资源范围中扫描是否存在有效主机数据;若无主机数据,则无需更新系统数据;若存在有效主机数据,则恢复该主机数据对应的该系统数据;

(7)系统数据恢复完成,上电处理完毕。

优选地,所述系统数据包括ftl、bbt等所有主机数据以外的有用数据,包含并不局限于:nvm资源管理数据、nvm中的坏块数据、nvm中有效/无效page的标识、nvm使用寿命数据、映射表数据及系统运行数据。

优选地,所述nvm为非易失性存储器,包括并不局限于nor、nand、mram及pcm。

优选地,所述存储的主机数据和系统数据中均包含其对应的flushtag。用以确认其归属于哪个flushtag。

优选地,所述每个flushtag阶段可用的块资源,在前一个flushtag的日志生成时被预分配,并存储在nvm中。

优选地,所述主机数据在存储时均会包含其对应的系统数据的摘要。该系统数据摘要用于描述该主机数据的对应系统数据信息,包括并不限于主机数据的对应逻辑地址。

本发明的技术效果在于:

本发明提出的方法将数据存储过程分割为flushtag阶段;flushtag结束前完整保存数据;flushtag结束时生成并保存日志;flushtag的块预分配和限制使用;基于日志扫描最新日志并获取flushtag;基于该最新日志扫描并加载系统数据;基于该最新日志获取块资源,扫描并恢复有效主机数据和系统数据。本发明可以提高数据存储的安全性,并确保在极端无电容情况下保护数据的完整性和一致性。

附图说明

图1为每个flushtag的日志的存储示意图。

图2为每个系统数据的存储示意图。

图3为每个flushtag阶段分配的可用的块资源,以及其在每个flushtag阶段内使用过程的示意图。

图4为该存储装置上电的处理流程图。

具体实施方式

以下将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

一种存储装置的掉电保护方法,该过程如下:

数据存储阶段:

(1)数据存储过程被分割成不同flushtag号的阶段,且每个阶段的结束点均确保数据被完整地存储在nvm中;所述存储的主机数据和系统数据中均包含其对应的flushtag。用以确认其归属于哪个flushtag。所述主机数据在存储时均会包含其对应的系统数据的摘要。该系统数据摘要用于描述该主机数据的对应系统数据信息,包括并不限于主机数据的对应逻辑地址;

(2)上述每个flushtag的数据存储完成后,会对应生成日志,该日志也存储在nvm中;其中,数据以及日志在nvm中有其对应的存储区域,主机数据存储于主机数据存储区域,系统数据存储于系统数据存储区域,日志存储于日志存储区域;

(3)在本flushtag阶段内,主机数据仅可以被存储在其对应的可用的块资源中;所述每个flushtag阶段可用的块资源,在前一个flushtag的日志生成时被预分配,并存储在nvm中。当可用的块资源用尽时,会触发结束本flushtag阶段;为后一个flushtag阶段分配的flushtag必须大于前一个flushtag阶段的flushtag;

数据恢复阶段:

(4)存储装置上电时,在日志存储区域扫描日志,确定最新的日志和其对应的flushtag;在确定最新的日志后,基于该最新的日志及其对应的flushtag,在系统数据存储区域中扫描该最新的日志所对应的系统数据,获得其系统数据的有效存储位置;

(5)扫描上述获得的系统数据的有效存储位置,读取并加载各系统数据,完成对该最新的日志及其对应的flushtag阶段结束点的完整系统数据的恢复;

(6)读取下一个flushtag的块资源信息,在该块资源范围中扫描是否存在有效主机数据;若无主机数据则无需更新系统数据;若存在有效主机数据,则通过读取每笔数据的系统数据摘要信息以恢复该主机数据对应的该系统数据;

(7)系统数据恢复完成,上电处理完毕。

其中,所述系统数据包括ftl、bbt等所有主机数据以外的有用数据,包含并不局限于:nvm资源管理数据、nvm中的坏块数据、nvm中有效/无效page的标识、nvm使用寿命数据、映射表数据及系统运行数据。所述nvm为非易失性存储器,包括并不局限于nor、nand、mram及pcm。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1