一种闪存虚拟块的分段擦除方法及系统与流程

文档序号:34303275发布日期:2023-05-31 17:42阅读:29来源:国知局
一种闪存虚拟块的分段擦除方法及系统与流程

本发明涉及半导体存储器,具体涉及一种闪存虚拟块的分段擦除方法及系统。


背景技术:

1、闪存由若干物理块组成,物理块为最小擦除单元。对闪存编程前,要求先擦除物理块。每个物理块由若干页组成,要求按页顺序编程。ftl(闪存转换层)是闪存的管理程序,为了便于管理,提高性能,节省内存空间,ftl往往通过虚拟块的形式管理闪存物理块。虚拟块由若干个物理块组成。

2、ftl管理的对象是虚拟块,通过一张虚拟块信息表记录每个虚拟块的使用情况,虚拟块数量影响着虚拟块信息表的大小。虚拟块信息表会常驻内存,而且经常被写回闪存,太大的虚拟块信息表会增加闪存寿命的消耗和占用过多的内存空间。为了减少闪存寿命的消耗和节省内存空间,ftl往往将多个物理块合并为一个虚拟块,使虚拟块数量控制在一定范围内。

3、ftl申请一个虚拟块时,为了识别物理坏块和重启后容易找到最后编程页,需要擦除虚拟块中的所有物理块。现有技术采用的是对多个物理块进行集中擦除,但是随着虚拟块包含的物理块数量增加,总擦除时间也随之增加,使得擦除过程容易造成存储器超时。


技术实现思路

1、为了克服现有技术的不足,本发明提供一种闪存虚拟块的分段擦除方法及系统,用于解决现有的虚拟块擦除方法容易造成存储器超时的技术问题,从而达到大大降低擦除时存储器存在的超时风险的目的。

2、为解决上述问题,本发明所采用的技术方案如下:

3、一种闪存虚拟块的分段擦除方法,其特征在于,包括以下步骤:

4、申请一虚拟块,对所述虚拟块进行第一次擦除,擦除所述虚拟块中前两个子虚拟块;

5、将所述前两个子虚拟块中第一个子虚拟块进行编程填满后,对所述前两个子虚拟块接下来的子虚拟块进行擦除;

6、按顺序每编程填满一个子虚拟块,再擦除接下来的一个子虚拟块,直到所有子虚拟块都被擦除为止;

7、其中,所述虚拟块包含若干子虚拟块。

8、作为本发明优选的实施方式,在对子虚拟块进行擦除时,包括:

9、对子虚拟块中的若干物理块进行擦除,并判断所述若干物理块的擦除状态;

10、若所有所述若干物理块的擦除状态均为失败,则将所有所述若干物理块标记为坏块,并继续擦除下一个子虚拟块;

11、其中,所述子虚拟块包含若干物理块。

12、作为本发明优选的实施方式,在判断所述若干物理块的擦除状态后,还包括:

13、若部分所述若干物理块的擦除状态为失败,则将擦除失败的物理块标记为坏块。

14、作为本发明优选的实施方式,在将物理块标记为坏块时,包括:

15、向所述物理块的第一数据页写入乱码数据,并在闪存转换层管理的虚拟块信息表中记录坏块信息。

16、作为本发明优选的实施方式,在对子虚拟块进行擦除时,还包括:

17、对所述子虚拟块对应的信息位进行擦除操作,并通过擦除校验的方式对所述子虚拟块中的所有物理块进行擦除操作;

18、对所述子虚拟块中的所有物理块进行过擦除校正操作;

19、对所述子虚拟块所对应的信息位进行编程操作,用于表明所述子虚拟块在掉电之前已完成擦除。

20、作为本发明优选的实施方式,在通过擦除校验的方式对所述子虚拟块中的所有物理块进行擦除操作时,包括:

21、获取所述子虚拟块编程操作的次数,并将所述编程操作的次数与预设编程操作的次数进行比较;

22、若所述编程操作的次数大于所述预设编程操作的次数,选择并发送第一擦除脉冲信号,根据所述第一擦除脉冲信号减少预设擦除时间,生成第一擦除时间;

23、若所述编程操作的次数小于所述预设编程操作的次数,选择并发送第二擦除脉冲信号,根据所述第二擦除脉冲信号增加预设擦除时间,生成第二擦除时间。

24、作为本发明优选的实施方式,所述的闪存虚拟块的分段擦除方法还包括:

25、在写入中断时,利用存储在闪存转换层管理的状态信息表中的状态标记信息表征写入操作发生异常中断的状态;

26、在存储器发生重启后,获取储存的所述状态标记信息,并根据所述状态标记信息执行预设的写入修复步骤进行写入修复。

27、作为本发明优选的实施方式,在根据所述状态标记信息执行预设的写入修复步骤进行写入修复时,包括:

28、按顺序读取每个所述子虚拟块的第一数据页,找到第一个第一数据页是擦除状态的子虚拟块;

29、采用二分法查找所述第一数据页之前的所有数据页;

30、找到最后一个非擦除状态的数据页,并将所述最后一个非擦除状态的数据页确定为最后编程页;

31、所述闪存转换层重建所述最后编程页之前的数据的映射关系,并将新数据写入所述最后编程页之后。

32、作为本发明优选的实施方式,在根据所述状态标记信息执行预设的写入修复步骤进行写入修复时,还包括:

33、对每个所述子虚拟块设置相同数量的数据页,并根据每个所述子虚拟块的顺序对每页数据页进行顺序编号,得到所述每页数据页所对应的虚拟页号;

34、找到第一个第一数据页是擦除状态的子虚拟块,并获取所述第一数据页对应的虚拟页号;

35、按首个虚拟页号到所述虚拟页号之间做二分法找到最后一个非擦除状态的虚拟页号,并根据所述非擦除状态的虚拟页号确定所述最后编程页。

36、一种闪存虚拟块的分段擦除系统,包括:

37、第一擦除单元:用于申请一虚拟块,对所述虚拟块进行第一次擦除,擦除所述虚拟块中前两个子虚拟块;

38、第二擦除单元:用于将所述前两个子虚拟块中第一个子虚拟块进行编程填满后,对所述前两个子虚拟块接下来的子虚拟块进行擦除;并按顺序每编程填满一个子虚拟块,再擦除接下来的一个子虚拟块,直到所有子虚拟块都被擦除为止;

39、其中,所述虚拟块包含若干子虚拟块。

40、相比现有技术,本发明的有益效果在于:

41、(1)本发明将集中的擦除操作分摊到多次小规模的擦除操作,从而有效降低了对虚拟块进行擦除时存储器存在的超时风险,同时能兼顾ftl(闪存转换层)识别物理坏块和重启后容易找到最后编程页的要求;

42、(2)采用本发明所提供的分段擦除方法,超时风险不会随着虚拟块所包含物理块的增多而增加,从而进一步地降低超时风险。

43、下面结合附图和具体实施方式对本发明作进一步详细说明。



技术特征:

1.一种闪存虚拟块的分段擦除方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的闪存虚拟块的分段擦除方法,其特征在于,在对子虚拟块进行擦除时,包括:

3.根据权利要求2所述的闪存虚拟块的分段擦除方法,其特征在于,在判断所述若干物理块的擦除状态后,还包括:

4.根据权利要求2或3所述的闪存虚拟块的分段擦除方法,其特征在于,在将物理块标记为坏块时,包括:

5.根据权利要求2所述的闪存虚拟块的分段擦除方法,其特征在于,在对子虚拟块进行擦除时,还包括:

6.根据权利要求5所述的闪存虚拟块的分段擦除方法,其特征在于,在通过擦除校验的方式对所述子虚拟块中的所有物理块进行擦除操作时,包括:

7.根据权利要求1所述的闪存虚拟块的分段擦除方法,其特征在于,还包括:

8.根据权利要求7所述的闪存虚拟块的分段擦除方法,其特征在于,在根据所述状态标记信息执行预设的写入修复步骤进行写入修复时,包括:

9.根据权利要求8所述的闪存虚拟块的分段擦除方法,其特征在于,在根据所述状态标记信息执行预设的写入修复步骤进行写入修复时,还包括:

10.一种闪存虚拟块的分段擦除系统,其特征在于,包括:


技术总结
本发明公开了一种闪存虚拟块的分段擦除方法及系统,包括:申请一虚拟块,对虚拟块进行第一次擦除,擦除虚拟块中前两个子虚拟块;将前两个子虚拟块中第一个子虚拟块进行编程填满后,对前两个子虚拟块接下来的子虚拟块进行擦除;按顺序每编程填满一个子虚拟块,再擦除接下来的一个子虚拟块,直到所有子虚拟块都被擦除为止;其中,虚拟块包含若干子虚拟块。本发明将集中的擦除操作分摊到多次小规模的擦除操作,从而有效降低了对虚拟块进行擦除时存储器存在的超时风险,同时能兼顾FTL识别物理坏块和重启后容易找到最后编程页的要求;并且本发明所提供的分段擦除方法,超时风险不会随着虚拟块所包含物理块的增多而增加,从而进一步地降低超时风险。

技术研发人员:苏界伟,曾裕,赖鼐,龚晖
受保护的技术使用者:珠海妙存科技有限公司
技术研发日:
技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1