优化固态硬盘映射表存储的方法、装置、设备及存储介质与流程

文档序号:37726245发布日期:2024-04-23 12:07阅读:8来源:国知局
优化固态硬盘映射表存储的方法、装置、设备及存储介质与流程

本发明涉及固态硬盘存储优化方法,更具体地说是指优化固态硬盘映射表存储的方法、装置、设备及存储介质。


背景技术:

1、在固态硬盘中,为了记录操作系统中的逻辑地址和固态硬盘的物理页地址之间的对应关系而保存的数据,称之为映射表。为了快速地读取和查找这些对应关系,通常会将映射表按照不同的粒度分级成多级映射表。为了保存不同粒度的映射表,通常会将这些数据保存在不同区块,以进行独立的数据管理。这就要求用于存储的区块为对应级别的映射表预留一定数量的空间。但是往往最大粒度的映射表的大小少于10mb,而这个大小相对于一个区块的大小来说,占比往往不到1%,这就造成了大量空间的闲置。


技术实现思路

1、本发明的目的在于克服现有技术的缺陷,提供优化固态硬盘映射表存储的方法、装置、设备及存储介质,以将一级映射表和二级映射表存储入同一超级块,避免将二级映射表单独分配入一个超级块造成的空间浪费问题,从而实现映射表保存预留空间的最小化。

2、为实现上述目的,本发明采用以下技术方案:优化固态硬盘映射表存储方法,包括一种掉电前映射表写入流程,所述掉电前映射表写入流程包括以下步骤:

3、获取闪存中的新增写入数据,并将新增写入数据对应的一级映射关系保存至sram中的增量一级映射表;

4、判断增量一级映射表中的一级映射关系变化量是否达到预设的一级闪存写入阈值;

5、若增量一级映射表中的一级映射关系变化量已达到预设的一级闪存写入阈值,则将增量一级映射表写入超级块中,以在超级块中生成对应的一级映射数据块,并将一级映射数据块对应的二级映射关系保存至sram中的全量二级映射表;

6、判断全量二级映射表中的二级映射关系变化量是否达到预设的二级闪存写入阈值;

7、若全量二级映射表中的二级映射关系变化量已达到预设的二级闪存写入阈值,则将全量二级映射表写入超级块中,以在超级块中生成对应的二级映射数据块。

8、其进一步技术方案为:当超级块中生成一级映射数据块或二级映射数据块后,在一级映射数据块或二级映射数据块的末端位置后,生成对应的完整性校验数据,所述完整性校验数据中记录着当前所在位置之前的最新一次的新增写入数据、一级映射数据块及二级映射数据块的物理页地址。

9、其进一步技术方案为:还包括一种掉电后映射表恢复流程,所述掉电后映射表恢复流程包括以下步骤:

10、获取掉电前超级块中的对应生成的最后一个完整性校验数据;

11、根据最后一个完整性校验数据记录的最新一次的二级映射数据块的物理页地址进行数据回滚,以在sram中恢复对应的全量二级映射表;

12、根据最后一个完整性校验数据记录的最新一次的一级映射数据块的物理页地址和已恢复的全量二级映射表中记载的一级映射数据块的物理页地址,设置一级映射数据块扫描范围,扫描一级映射数据块并将对应的二级映射关系保存至sram中已恢复的全量二级映射表中,以使sram中的全量二级映射表恢复完整;

13、根据最后一个完整性校验数据记录的最新一次的一级映射数据块的物理页地址进行数据回滚,以在sram中恢复对应的增量一级映射表;

14、根据最后一个完整性校验数据记录的最新一次的新增写入数据的物理页地址和已恢复的增量一级映射表中记载的新增写入数据的物理页地址,设置新增写入数据扫描范围,扫描新增写入数据并将对应的一级映射关系保存至sram中已恢复的增量一级映射表,以使sram中的增量一级映射表恢复完整。

15、其进一步技术方案为:所述根据最后一个完整性校验数据记录的最新一次的二级映射数据块的物理页地址进行数据回滚,以在sram中恢复对应的全量二级映射表之后,还包括:

16、判断对应的全量二级映射表是否恢复成功;

17、若恢复成功,则直接执行所述根据最后一个完整性校验数据记录的最新一次的一级映射数据块的物理页地址和已恢复的全量二级映射表中记载的一级映射数据块的物理页地址,设置一级映射数据块扫描范围,扫描一级映射数据块并将对应的二级映射关系保存至sram中已恢复的全量二级映射表中,以使sram中的全量二级映射表恢复完整;

18、若未恢复成功,则标记当前最新一次的二级映射数据块所在的位置,获取当前位置之前的最后一次完整性校验数据,并返回执行所述根据最后一个完整性校验数据记录的最新一次的二级映射数据块的物理页地址进行数据回滚,以在sram中恢复对应的全量二级映射表。

19、其进一步技术方案为:所述根据最后一个完整性校验数据记录的最新一次的一级映射数据块的物理页地址进行数据回滚,以在sram中恢复对应的增量一级映射表之后还包括:

20、判断对应的增量一级映射表是否恢复成功;

21、若恢复成功,则直接执行所述根据最后一个完整性校验数据记录的最新一次的新增写入数据的物理页地址和已恢复的增量一级映射表中记载的新增写入数据的物理页地址,设置新增写入数据扫描范围,扫描新增写入数据并将对应的一级映射关系保存至sram中已恢复的增量一级映射表,以使sram中的增量一级映射表恢复完整;

22、若未恢复成功,则标记当前最新一次的一级映射数据块所在的位置,获取当前位置之前的最后一次完整性校验数据,并返回执行所述根据最后一个完整性校验数据记录的最新一次的一级映射数据块的物理页地址进行数据回滚,以在sram中恢复对应的增量一级映射表。

23、本发明还提供了优化固态硬盘映射表存储的装置,包括一种掉电前映射表写入系统,所述掉电前映射表写入系统包括:

24、获取写入单元,用于获取闪存中的新增写入数据,并将新增写入数据对应的一级映射关系保存至sram中的增量一级映射表;

25、第一判断单元,用于判断增量一级映射表中的一级映射关系变化量是否达到预设的一级闪存写入阈值;

26、第一写入单元,用于若增量一级映射表中的一级映射关系变化量已达到预设的一级闪存写入阈值,则将增量一级映射表写入超级块中,以在超级块中生成对应的一级映射数据块,并将一级映射数据块对应的二级映射关系保存至sram中的全量二级映射表;

27、第二判断单元,用于判断全量二级映射表中的二级映射关系变化量是否达到预设的二级闪存写入阈值;

28、第二写入单元,用于若全量二级映射表中的二级映射关系变化量已达到预设的二级闪存写入阈值,则将全量二级映射表写入超级块中,以在超级块中生成对应的二级映射数据块。

29、其进一步技术方案为:所述掉电前映射表写入系统还包括完整性校验单元,用于当超级块中生成一级映射数据块或二级映射数据块后,在一级映射数据块或二级映射数据块的末端位置后,生成对应的完整性校验数据,所述完整性校验数据中记录着闪存内当前所在位置之前的最新一次的新增写入数据、一级映射数据块及二级映射数据块的物理页地址。

30、其进一步技术方案为:还包括掉电后映射表恢复系统,所述掉电后映射表恢复系统包括:

31、获取数据单元,用于获取掉电前超级块中的对应生成的最后一个完整性校验数据;

32、二级回滚恢复单元,用于根据最后一个完整性校验数据记录的最新一次的二级映射数据块的物理页地址进行数据回滚,以在sram中恢复对应的全量二级映射表;

33、二级完整恢复单元,用于根据最后一个完整性校验数据记录的最新一次的一级映射数据块的物理页地址和已恢复的全量二级映射表中记载的一级映射数据块的物理页地址,设置一级映射数据块扫描范围,扫描一级映射数据块并将对应的二级映射关系保存至sram中已恢复的全量二级映射表中,以使sram中的全量二级映射表恢复完整;

34、一级回滚恢复单元,用于根据最后一个完整性校验数据记录的最新一次的一级映射数据块的物理页地址进行数据回滚,以在sram中恢复对应的增量一级映射表;

35、一级完整恢复单元,用于根据最后一个完整性校验数据记录的最新一次的新增写入数据的物理页地址和已恢复的增量一级映射表中记载的新增写入数据的物理页地址,设置新增写入数据扫描范围,扫描新增写入数据并将对应的一级映射关系保存至sram中已恢复的增量一级映射表,以使sram中的增量一级映射表恢复完整。

36、本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。

37、本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。

38、本发明与现有技术相比的有益效果是:通过设置一级闪存写入阈值和二级闪存写入阈值将一级映射表和二级映射表错时写入同一超级块中,解决了数据量较小的二级映射表单独占用一个超级块而造成该超级块内的大量空间闲置的问题,实现了映射表保存预留空间的最小化,进而实现固态硬盘空间利用率的最大化。

39、下面结合附图和具体实施例对本发明作进一步描述。

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