本发明涉及计算机,具体涉及一种ldpc译码次数感知的垃圾回收方法、垃圾回收装置及固态硬盘。
背景技术:
1、当闪存空间不足时需要启动垃圾回收操作,回收无效数据页最多的闪存块,并将需要回收的块中的有效页中的数据迁移到新的块中,并将该块标记为擦除块进行空间回收再利用。不当的垃圾回收操作会引起闪存块的可靠性和性能问题。
2、低密度奇偶校验码(low-density parity-check,ldpc)因采用软译码方式进行错误纠正,具有较强的纠错能力而被广泛用于闪存以保证数据可靠性。然而,启动软译码需要进行多次读取操作,降低了读性能。此外,当闪存的剩余空间不足时,需要启动垃圾回收操作回收已经被写入数据的闪存块以满足新数据的写入需求。对有些块较早的启动垃圾回收操作会降低该块的使用寿命,对有些块较晚启动垃圾回收操作会导致原始误码率较高从而启动ldpc软译码操作进而引发读延迟问题。
3、因此,如何优化垃圾回收操作,是本领域技术人员关注的焦点。
技术实现思路
1、本发明的目的是提出一种ldpc译码次数感知的垃圾回收方法、垃圾回收装置及固态硬盘,能够实时监控闪存块中每个页的译码迭代次数的变化进行高效地垃圾回收操作,提升闪存块块整体使用寿命。
2、为了实现上述目的,本发明提供了一种ldpc译码次数感知的垃圾回收方法,包括:
3、从闪存芯片中选取一定数量的闪存块;
4、将所选的闪存块分为两部分,一部分作为使用块,另一部分作为预留块;
5、将所选的所有闪存块磨损到一定的次数后,将随机数据写入所述使用块中,使得所有的所述使用块写满数据,并放置一段时间后进行读取校验;所述读取校验包括:将每个所述使用块中的所有页读出进行ldpc译码,并记录当前页的译码迭代次数是否超过预设迭代阈值;
6、在所述读取校验过程中,统计每个所述使用块中超过所述预设迭代阈值的页的数量;并按照所述数量从多到少对所述使用块进行排序;
7、当新数据写入时,判断所述闪存芯片是否有剩余的闪存块,如果没有,按照所述排序对所述使用块执行垃圾回收操作,并将需要回收的所述使用块中的有效数据迁移到所述预留块中。
8、可选方案中,所述记录当前页的译码迭代次数是否超过预设迭代阈值的方法包括:如果当前页的译码迭代次数超过所述预设迭代阈值,使用比特1进行标记,如果当前页的译码迭代次数未超过所述预设迭代阈值,使用比特0进行标记。
9、可选方案中,所述对所述使用块进行排序的方法包括:统计每个所述使用块中比特1的数量,将所述使用块按照比特1的数量从高到低进行排序。
10、可选方案中,所述按照所述排序对所述使用块执行垃圾回收操作的方法包括:将所述使用块中记录的比特1的数目从高到低对所述使用块依次进行垃圾回收。
11、可选方案中,执行垃圾回收操作的方法包括:对所述使用块执行擦除操作以回收利用。
12、可选方案中,所述使用块的数量至少为所述预留快数量的3倍。
13、可选方案中,选取出的所述闪存块的数量至少为1000块。
14、可选方案中,所述进行ldpc译码为执行ldpc硬译码操作。
15、本发明还提供了一种ldpc译码次数感知的垃圾回收装置,包括:
16、选择模块,用于从闪存芯片中选取一定数量的闪存块,将所选的闪存块分为两部分,一部分作为使用块,另一部分作为预留块;
17、读取校验模块,用于将所选的所有闪存块磨损到一定的次数后,将随机数据写入所述使用块中,使得所有的所述使用块写满数据,并放置一段时间后进行读取校验;所述读取校验包括:将每个所述使用块中的所有页读出进行ldpc译码,并记录当前页的译码迭代次数是否超过预设迭代阈值;
18、排序模块,用于在所述读取校验过程中,统计每个所述使用块中超过所述预设迭代阈值的页的数量;并按照所述数量从多到少对所述使用块进行排序;
19、回收模块,用于当新数据写入时,判断所述闪存芯片是否有剩余的闪存块,如果没有,按照所述排序对所述使用块执行垃圾回收操作,并将需要回收的所述使用块中的有效数据迁移到所述预留块中。
20、本发明还提供了一种固态硬盘,利用上述的垃圾回收方法进行垃圾回收。
21、本发明的有益效果:
22、闪存块中不同的页具有较大的原始误码率差异,在译码过程中闪存页具有不同的译码迭代次数,传统的方法在执行垃圾回收操作时并未考虑译码迭代次数对垃圾回收的影响,引起可靠性和性能问题。
23、本发明根据ldpc译码迭代次数的变化动态执行垃圾回收操作,可以有效地执行垃圾回收,提高存储空间利用率,同时降低原始误码率较高引起的可靠性和性能问题。
1.一种ldpc译码次数感知的垃圾回收方法,其特征在于,包括:
2.如权利要求1所述的ldpc译码次数感知的垃圾回收方法,其特征在于,所述记录当前页的译码迭代次数是否超过预设迭代阈值的方法包括:如果当前页的译码迭代次数超过所述预设迭代阈值,使用比特1进行标记,如果当前页的译码迭代次数未超过所述预设迭代阈值,使用比特0进行标记。
3.如权利要求2所述的ldpc译码次数感知的垃圾回收方法,其特征在于,所述对所述使用块进行排序的方法包括:
4.如权利要求3所述的ldpc译码次数感知的垃圾回收方法,其特征在于,所述按照所述排序对所述使用块执行垃圾回收操作的方法包括:
5.如权利要求1所述的ldpc译码次数感知的垃圾回收方法,其特征在于,执行垃圾回收操作的方法包括:对所述使用块执行擦除操作以回收利用。
6.如权利要求1所述的ldpc译码次数感知的垃圾回收方法,其特征在于,所述使用块的数量至少为所述预留快数量的3倍。
7.如权利要求1所述的ldpc译码次数感知的垃圾回收方法,其特征在于,选取出的所述闪存块的数量至少为1000块。
8.如权利要求1所述的ldpc译码次数感知的垃圾回收方法,其特征在于,所述进行ldpc译码为执行ldpc硬译码操作。
9.一种ldpc译码次数感知的垃圾回收装置,其特征在于,包括:
10.一种固态硬盘,其特征在于,利用权利要求1-8任一项所述的垃圾回收方法进行垃圾回收。