CN117806985A - 一种实现垃圾回收的方法、装置、计算机存储介质及终端 - Google Patents
一种实现垃圾回收的方法、装置、计算机存储介质及终端 Download PDFInfo
- Publication number
- CN117806985A CN117806985A CN202311845596.0A CN202311845596A CN117806985A CN 117806985 A CN117806985 A CN 117806985A CN 202311845596 A CN202311845596 A CN 202311845596A CN 117806985 A CN117806985 A CN 117806985A
- Authority
- CN
- China
- Prior art keywords
- host
- flash memory
- request
- ssd
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 15
- 230000008859 change Effects 0.000 claims abstract description 9
- 239000000872 buffer Substances 0.000 claims description 44
- 238000004590 computer program Methods 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 13
- 238000011084 recovery Methods 0.000 claims description 7
- 239000002699 waste material Substances 0.000 claims description 4
- 239000007787 solid Substances 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000004064 recycling Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000012464 large buffer Substances 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Landscapes
- Memory System (AREA)
Abstract
本申请公开一种实现垃圾回收的方法、装置、计算机存储介质及终端,包括:在执行垃圾回收(GC)时,同步进行主机访问请求,主机访问请求包括:主机写和/或读固态硬盘(SSD)的请求;将GC的所有源闪存块逐个标记为锁定闪存块;对锁定闪存块逐个进行垃圾回收处理且接收到主机写SSD请求时,判断主机写SSD请求是否导致在锁定闪存块中属于有效的页变化为无效的页;锁定闪存块中属于有效的页变化为无效的页时,执行GC的写操作时变化为无效的页不写至新的闪存块。本公开实施例通过同步执行主机访问请求和GC,有效的确保了垃圾回收期间数据连贯性,通过对主机写SSD请求导致锁定闪存块无效页的不进行写至新的闪存块的处理,避免了GC数据重写主机写数据的情况。
Description
技术领域
本申请涉及但不限于技术,其中涉及一种实现垃圾回收的方法、装置、计算机存储介质及终端。
背景技术
固态硬盘(SSD)的垃圾回收就是根据SSD的主控内嵌的垃圾回收算法,当NANDFLASH可用的闪存块的个数小于所设定的阈值时,就把NAND FLASH的一些闪存块上的有效数据读出来,然后汇集到另一个闪存块中,并把之前的闪存块进行擦除,从而这个擦除了的闪存块就变成了可用的新的闪存块了。通常SSD垃圾回收期间,主机(Host)依然会去写(write)NAND FLASH,假设在垃圾回收期间,设备(Device)收到一个主机写SSD的请求,那么与之具有相同的逻辑块地址(LBA,Logical Block Address)的数据就瞬间由之前的有效的数据(valid data)变成了无效的数据(in-valid data),如果这个数据恰好处于垃圾收集块垃圾回收闪存块(GC block)中,那么这个数据在做GC编写程序(program)的时候,就要被忽略,否则就容易发生垃圾收集重写主机写数据的事情。事实上,对于用户来说主机写数据才是最新有效数据(latest valid data),也就是说,用户期望的永远是主机写数据重写垃圾收集数据,而不能发生垃圾收集数据重写的是主机的写数据。
相关技术中垃圾回收的处理包括:方案一:垃圾回收期间,将主机写数据做缓存,等到垃圾回收完成后,将主机写数据从缓存中读出再编写程序(program)到NAND FLASH中,由此只会出现主机写数据重写垃圾收集数据的事情,可确保SSD垃圾回收期间数据连贯性(data coherence);上述方法存在以下缺点:1、有可能做了一些无效的编写程序,如图1所示,A、B和C为垃圾回收前的有效数据(valid data),假设在垃圾回收期间,设备(Device)收到一笔主机写SSD的请求,其数据对应于图3中的D,那么与之具有相同的LBA的“A”实际上已经由之前的有效数据变成了无效数据,但是基于上述垃圾回收的处理,并没有对这样的数据做特别考虑,由此可知刚刚垃圾回收编写程序的“A”(对应于图2中的“A”),在很短的时间内就被标记为了无效数据,这就是说“A”的生命周期比较短,也就相当于做了一次无效的编写程序。2、需要很大的缓冲器(buffer)来缓存主机写数据,因为通常一次垃圾回收的时间都会比较长,如果在这段时间内,主机写SSD比较频繁,而且数据量也比较大,那就需要用一个较大的缓冲器来缓存主机写数据,这将是一笔很大的开销。方案二:垃圾回收期间,将GC写操作暂停,优先将主机写数据编写程序到NAND FLASH中,待主机写数据结束后,再进行GC写操作;这种方案的缺点:主机写优先的会导致NAND Flash的闪存块变得更加紧张,假如主机写操作是一笔很大数目的写操作,而由于编写程序操作是不能暂停的,会导致很长时间无法做GC,进而导致NAND Flash的闪存块变得更加紧张,这将会无形中增大了后续GC的工作量。
综上,如何提升垃圾回收的处理质量和效率,成为一个有待解决的问题。
发明内容
以下是对本申请详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本公开实施例提供一种实现垃圾回收的方法、装置、计算机存储介质及终端,能够提升垃圾回收的处理质量和效率。
本公开实施例提供了一种实现垃圾回收的方法,包括:在执行垃圾回收GC时,同步进行主机访问请求,主机访问请求包括:主机写固态硬盘SSD的请求和/或主机读SSD的请求;将GC的所有源闪存块逐个标记为锁定闪存块;还包括:
对锁定闪存块逐个进行垃圾回收处理时,确定是否接收到主机写SSD请求;
接收到主机写SSD请求时,判断主机写SSD请求是否导致在锁定闪存块中属于有效的页变化为无效的页;
接收到的主机写SSD请求导致在锁定闪存块中属于有效的页变化为无效的页时,执行GC的写操作时对变化为无效的页不进行写至新的闪存块的处理。
另一方面,本公开实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述实现垃圾回收的方法。
再一方面,本公开实施例还提供一种终端,包括:存储器和处理器,所述存储器中保存有计算机程序;其中,
处理器被配置为执行存储器中的计算机程序;
所述计算机程序被所述处理器执行时实现如上述实现垃圾回收的方法。
还一方面,本公开实施例还提供一种实现垃圾回收的装置,包括:同步单元、标记单元、确定单元、判断单元及处理单元;其中,
同步单元设置为:在执行垃圾回收GC时,同步进行主机访问请求,主机访问请求包括:主机写固态硬盘SSD的请求和/或主机读SSD的请求;
标记单元设置为:将GC的所有源闪存块逐个标记为锁定闪存块;
确定单元设置为:对锁定闪存块逐个进行垃圾回收处理时,确定是否接收到主机写SSD请求;
判断单元设置为:接收到主机写SSD请求时,判断主机写SSD请求是否导致在锁定闪存块中属于有效的页变化为无效的页;
处理单元设置为:接收到的主机写SSD请求导致在锁定闪存块中属于有效的页变化为无效的页时,执行GC的写操作时对变化为无效的页不进行写至新的闪存块的处理。
本公开实施例通过同步执行主机访问请求和GC,有效的确保了垃圾回收期间数据连贯性,通过对主机写SSD请求导致锁定闪存块无效页的不进行写至新的闪存块的处理,避免了GC数据重写主机写数据的情况。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为相关技术中的垃圾回收前的示意图;
图2为相关技术垃圾回收后的示意图;
图3为相关技术中垃圾回收期间主机数据的缓存示意图;
图4为本公开实施例实现垃圾回收的方法的流程图;
图5为本公开实施例的流程示意图;
图6为本公开实施例缓冲器管理单元的示意图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
图4为本公开实施例实现垃圾回收的方法的流程图,在执行垃圾回收(GC)时,同步进行主机访问请求,主机访问请求包括:主机写SSD的请求和/或主机读SSD的请求;如图4所示,包括:
步骤400、将垃圾回收(GC)的所有源闪存块(source block)逐个标记为锁定闪存块(lock block);
步骤401、对锁定闪存块逐个进行垃圾回收处理时,确定是否接收到主机写固态硬盘(SSD)请求;
步骤402、接收到主机写SSD请求时,判断主机写SSD请求是否导致在锁定闪存块中属于有效的页(page)变化为无效的页;
步骤403、接收到的主机写SSD请求导致在锁定闪存块中属于有效的页变化为无效的页时,执行GC的写操作时对变化为无效的页不进行写至新的闪存块的处理。
本公开实施例通过同步执行主机访问请求和GC,有效的确保了垃圾回收期间数据连贯性,通过对主机写SSD请求导致锁定闪存块无效页的不进行写至新的闪存块的处理,避免了GC数据重写主机写数据的情况。
在一种示例性实例中,本公开实施例可以由SSD的主控执行上述处理。
在一种示例性实例中,本公开实施例将GC的所有源闪存块逐个标记为锁定闪存块,可以包括:
对源闪存块中包含的每一个闪存块通过表格或目录进行记录,以将源闪存块标记为锁定闪存块。
在一种示例性实例中,本公开实施例判断主机写SSD请求是否导致在锁定闪存块中属于有效的页变化为无效的页,包括:
记录垃圾回收的锁定闪存块的第一物理块地址PBA;
根据预先确定的地址映射关系确定第一PBA对应的第一逻辑块地址LBA;地址映射关系中存储第一PBA与第一LBA的映射关系;
比对主机写SSD请求中写操作命令中的第二LBA与确定的第一LBA是否相同;
主机写SSD请求中写操作命令中的第二LBA与确定的第一LBA相同时,将该第一LBA对应的锁定闪存块的页变化为无效的页。
在一种示例性实例中,本公开实施例可以通过将锁定闪存块的有效位有1变化为0,以实现锁定闪存块的页由有效变化为无效的处理。
本公开实施例在同步执行主机访问请求和垃圾回收时,通过比对锁定闪存块的逻辑块地址和主机写SSD请求中写操作目录的逻辑块地址,实现了无效页的确定,为避免GC数据重写主机写数据提供信息支持。
在一种示例性实例中,本公开实施例可以通过将锁定闪存块的有效位有1变化为0,以实现锁定闪存块的页由有效变化为无效的处理。
在一种示例性实例中,本公开实施例方法还包括:
确定预设时长内带宽调整相关信息;
根据确定的带宽调整相关信息调整主机和GC的数据带宽;
其中,带宽调整相关信息包括:主机的缓冲器的使用率、主机的缓冲器的写指针的增长率、主机的缓冲器的可用空间的占比。
本公开实施例通过及时统计主机访问SSD的情况,动态分配主机与GC的数据带宽,能够兼顾到垃圾回收期间的主机写或主机读延迟、数据带宽及功耗等多个性能指标。
在一种示例性实例中,本公开实施例根据确定的带宽调整相关信息调整主机和GC的数据带宽,包括基于以下公式确定主机分配到的带宽占比:
[(1-a%)*m+(1-b%)*n+c%*k]/3;
式中,a%表示主机的缓冲器的使用率,b%表示主机的缓冲器的写指针的增长率,c%表示主机的缓冲器的可用空间的占比,m、n和k为预先确定的可配置的加权因子,0<m<1,0<n<1,0<k<1。
本公开实施例,假设主机buffer的总容量为5000,当前已存data的占用为3000,那么主机的buffer的使用率为3000/5000=60%;在一个统计时间单位开始时,主机buffer的写指针位置为230,在一个统计时间单位结束时,主机buffer的写指针位置为2580,那么主机buffer的写增长率为(2580-230)/5000=47%;主机buffer可用容量为2420,而垃圾回收buffer可用容量为300,则主机buffer的可用空间的占比为2420/(2420+300)*100%=89%;假设3个因素对应的加权因子分别为m=0.6,n=0.4,k=0.5;则主机分配到的带宽占比为:
[(1-a%)*m+(1-b%)*n+c%*k]/3=[(1-60)*0.6+(1-47%)*0.4+89%*0.5]/3=0.3;
本公开实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机程序,计算机程序被处理器执行时实现上述实现垃圾回收的方法。
本公开实施例还提供一种终端,包括:存储器和处理器,存储器中保存有计算机程序;
其中,
处理器被配置为执行存储器中的计算机程序;
计算机程序被处理器执行时实现如上述实现垃圾回收的方法。
一种实现垃圾回收的装置,包括:同步单元、标记单元、确定单元、判断单元及处理单元;其中,
同步单元设置为:在执行垃圾回收GC时,同步进行主机访问请求,主机访问请求包括:主机写固态硬盘SSD的请求和/或主机读SSD的请求;
标记单元设置为:将GC的所有源闪存块逐个标记为锁定闪存块;
确定单元设置为:对锁定闪存块逐个进行垃圾回收处理时,确定是否接收到主机写SSD请求;
判断单元设置为:接收到主机写SSD请求时,判断主机写SSD请求是否导致在锁定闪存块中属于有效的页变化为无效的页;
处理单元设置为:接收到的主机写SSD请求导致在锁定闪存块中属于有效的页变化为无效的页时,执行GC的写操作时对变化为无效的页不进行写至新的闪存块的处理。
本公开实施例通过同步执行主机访问请求和GC,有效的确保了垃圾回收期间数据连贯性,通过对主机写SSD请求导致锁定闪存块无效页的不进行写至新的闪存块的处理,避免了GC数据重写主机写数据的情况。
本公开实施例上述装置实现电路结构简单,硬件成本低,易于实现。
在一种示例性实例中,本公开实施例标记单元是设置为:
对源闪存块中包含的每一个闪存块通过表格或目录进行记录,以将源闪存块标记为锁定闪存块。
在一种示例性实例中,本公开实施例判断单元是设置为:
记录垃圾回收的锁定闪存块的第一物理块地址PBA;
根据预先确定的地址映射关系确定第一PBA对应的第一逻辑块地址LBA;地址映射关系中存储第一PBA与第一LBA的映射关系;
比对主机写SSD请求中写操作命令中的第二LBA与确定的第一LBA是否相同;
主机写SSD请求中写操作命令中的第二LBA与确定的第一LBA相同时,将该第一LBA对应的锁定闪存块的页变化为无效的页。
在一种示例性实例中,本公开实施例可以通过将锁定闪存块的有效位有1变化为0,以实现锁定闪存块的页由有效变化为无效的处理。
本公开实施例在同步执行主机访问请求和垃圾回收时,通过比对锁定闪存块的逻辑块地址和主机写SSD请求中写操作目录的逻辑块地址,实现了无效页的缺点,为避免GC数据重写主机写数据提供信息支持。
在一种示例性实例中,本公开实施例装置还包括带宽调整单元,设置为:
确定预设时长内带宽调整相关信息;
根据确定的带宽调整相关信息调整主机和GC的数据带宽;
其中,带宽调整相关信息包括:主机的缓冲器的使用率、主机的缓冲器的写指针的增长率、主机的缓冲器的可用空间的占比。
本公开实施例通过及时统计一段时间内,主机访问SSD的情况,动态分配主机与GC的数据带宽,能够兼顾到垃圾回收期间的主机写或主机读延迟、数据带宽及功耗等多个性能指标。
在一种示例性实例中,本公开实施例装置带宽调整单元设置为根据确定的带宽调整相关信息调整主机和GC的数据带宽,包括基于以下公式确定主机分配到的带宽占比:
[(1-a%)*m+(1-b%)*n+c%*k]/3;
式中,a%表示主机的缓冲器的使用率,b%表示主机的缓冲器的写指针的增长率,c%表示主机的缓冲器的可用空间的占比,m、n和k为预先确定的可配置的加权因子,0<m<1,0<n<1,0<k<1。
以下通过应用示例对本公开实施例进行简要说明,应用示例仅用于陈述本公开实施例,并不用于限定本公开实施例的保护范围。
应用示例
本公开实施例提供了一种易于实现且能够确保SSD在做垃圾回收期间数据连贯性的策略,即确保在SSD垃圾回收期间,不会出现垃圾回收数据(GC,Garbage Collection)重写主机的写数据的方法,其工作流程示意图如图5所示。事实上,对于用户来说主机写数据才是最新有效数据(latest valid data),而此时与该笔主机写数据具有相同逻辑块地址的垃圾回收数据已经从之前的有效瞬间变成了无效数据,也就是说,用户期望的永远是主机写数据重写垃圾回收数据,而不会发生垃圾回收数据重写主机的写数据。
本公开实施例主要采用化整为零的策略来避免垃圾回收数据重写主机的写数据发生,具体来说,首先,SSD的主控将一次SSD的垃圾回收的所有源闪存块(source block)逐个标记为锁定闪存块(lock block),其次在对锁定闪存块做垃圾回收期间,同时检测是否存在主机写请求导致原本在锁定闪存块中属于有效的页(page)变成无效的页,如果某些原本有效的页在垃圾回收期间变成了无效的页,那么在做GC写操作的时候,这些无效的页将不再进行数据迁移(写入新的闪存块),有效的解决了SSD在做垃圾回收期间所发生的数据连贯性问题。同时将源闪存块逐个标记为锁定闪存块,并逐个进行垃圾回收,这样可以使得垃圾回收始终是穿插分散在主机写/读SSD的过程中,避免了由于某一段时间SSD的主控都在进行垃圾回收而使得主机写/读延迟(Latency)瞬间变得过大,SSD带宽瞬间变得很低的情况发生。此外,本公开实施例加入了流控制(flow control)模块,能够及时统计一段时间内,主机访问SSD的情况,动态分配主机与GC的数据带宽,从而能够兼顾到垃圾回收期间的主机写/读延迟,数据带宽及功耗等多个性能指标。
一种实现垃圾回收的方法,包括:
图6为本公开实施例缓冲器管理单元的示意图,如图6所示,包括:逻辑块地址到物理块地址表管理模块(L2P Table Management),物理块地址到逻辑块地址表管理模块(P2LTable Management)、主机写指针生成模块(Host write pointer generate)、主机读指针生成模块(Host read pointer generate)、GC写指针生成模块(GC write pointergenerate)、GC读指针生成模块(GC read pointer generate)、有效数表管理模块(Validcount table Management)、有效页表管理模块(Valid page table Management)、GC锁定闪存块表管理模块(GC lock block table Management)、流控制模块(flow control)、纠错码控制模块(ECC control);数据缓冲器控制器(Data buffer controller)和非易失性控制器(NAND Controller);其中,
L2P Table Management:以逻辑块地址LBA(Logical Block address)为输入,根据闪存转换层(FTL,Flash Translation Layer)算法,可生成物理块地址PBA(PhysicalBlock address);本公开实施例中,L2P Table以LBA为address,以PBA为data,记录LBA和PBA之间的映射关系;
P2L Table Management:按照当前闪存块在NAND Flash中所在的PBA记录与其对应主机的LBA信息;
Host write pointer generate:NAND Flash controller根据主机写指针将缓存于数据缓冲器控制器的用户数据缓冲器(SRAM或DRAM)中的数据读出,然后编写程序program到NAND Flash中
Host read pointer generate:NAND Flash controller将NAND FLASH中的数据逐渐读出后,根据主机读指针将数据缓存于数据缓冲器控制器的用户数据缓冲器中,然后再逐步送给主机;
GC write pointer generate:NAND Flash controller根据GC写指针将缓存于数据缓冲器控制器的用户数据缓冲器中的数据读出,然后program到NAND Flash中;
GC read pointer generate:NAND Flash controller将GC闪存块的有效页逐渐读出后,根据GC读指针将数据缓存于数据缓冲器控制器的用户数据缓冲器中;
Valid count table Management:记录NAND FLASH的每一个闪存块中有效页的个数,在一种示例性实例中,在做垃圾回收的时候,本公开实施例可以优先选择有效页计数较小的闪存块作为GC闪存块;
Valid page table Management:分别read L2P Table及P2L Table,确定当前锁定闪存块中哪些页是有效页;
GC lock block table Management:当闪存块在做GC期间,记录是否出现过主机重写的事情发生,如果主机重写,那么本来属于有效的页就变成了无效的页,之后的GC写操作时,本公开实施例不对该无效的页进行写至新闪存块的数据迁移。本公开实施例SSD主控根据垃圾回收策略,选定本次垃圾回收的source block,假设有m个sourceblock),GC lockblock table Management模块首先将本次选中的source block赋予一个编号,0、1、..、m-1,然后,再依次将该m个source block设定为lock block,如果某一个source block被设定为lock block,表示主控当前正在对该source block做垃圾回收...。因为主控是对所选择的m个source block依次做垃圾回收的,因此,在垃圾回收期间,只能有一个source block被设定为lock block;
Flow control:实时确定用户数据缓冲器和GC数据缓冲其的可用空间的占比;本公开实施例可以参照相关技术获取用于确定占比的相关信息,基于相关信息执行;
实时统计第一预设时长内(例如1024个周期内)用户数据写指针、用户数据读指针、GC数据写指针、GC数据读指针的增长速率;
根据可用空间的占比、第一预设时长内(例如1024个周期内)用户数据写指针、用户数据读指针、GC数据写指针、GC数据读指针的增长速率等信息,每间第二预设时长(例如、例如1024个周期),调整一次用户数据和GC数据的时钟频率,可高效的支配访问SSD的带宽,同时还可以达到降低功耗的效果;本公开实施例第一预设时长和第二预设时长可以由技术人员根据应用场景进行分析和调整,本公开实施例对此不做限制。
ECC Controller:NAND FLASH的一个特性就是随着NAND FLASH的使用以及数据存储时间的变长,存储在NAND FLASH里面的数据容易发生比特翻转,出现随机性错误。因此,使用NAND FLASH作为存储介质的SSD,需要采用一些数据完整性的技术来确保用户数据可靠不丢失。数据在program进NAND FLASH时,需要经过ECC编码(ECC decoder)进行编码操作,数据在从NAND FLASH读出后,需要经过ECC decoder进行解码操作,然后根据数据错误的情况,用LDPC进行纠错……
Data buffer controller:分别将用户数据,元数据(Meta data),奇偶校验数据(parity data)以及GC数据按照主机写指针、主机读指针、GC写指针、GC读指针缓存于对应的SRAM或者DRAM中
NAND Controller:按照NAND FLASH数据表,实现数据编写程序、读、擦除等操作。
本公开实施例可以有效的确保垃圾回收期间data Coherence,避免GC dataoverwrite Host write data的事情发生;加入了flow control模块,能够及时统计一段时间(时间间隔为寄存器变量,可根据使用场景动态配置)内,host访问SSD的情况,动态分配Host与GC的data bandwidth,从而能够兼顾到垃圾回收期间的Host write/read Latency,data bandwidth及功耗等多个性能指标;电路结构简单,硬件成本低,易于实现。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (10)
1.一种实现垃圾回收的方法,其特征在于,包括:在执行垃圾回收GC时,同步进行主机访问请求,主机访问请求包括:主机写固态硬盘SSD的请求和/或主机读SSD的请求;将GC的所有源闪存块逐个标记为锁定闪存块;还包括:
对锁定闪存块逐个进行垃圾回收处理时,确定是否接收到主机写SSD请求;
接收到主机写SSD请求时,判断主机写SSD请求是否导致在锁定闪存块中属于有效的页变化为无效的页;
接收到的主机写SSD请求导致在锁定闪存块中属于有效的页变化为无效的页时,执行GC的写操作时对变化为无效的页不进行写至新的闪存块的处理。
2.根据权利要求1所述的方法,其特征在于,所述将GC的所有源闪存块逐个标记为锁定闪存块,包括:
对所述源闪存块中包含的每一个闪存块通过表格或目录进行记录,以将所述源闪存块标记为所述锁定闪存块。
3.根据权利要求1或2所述的方法,其特征在于,所述判断主机写SSD请求是否导致在锁定闪存块中属于有效的页变化为无效的页,包括:
记录GC的所述锁定闪存块的第一物理块地址PBA;
根据预先确定的地址映射关系确定所述第一PBA对应的第一逻辑块地址LBA,其中,所述地址映射关系中存储所述第一PBA与所述第一LBA的映射关系;
比对所述主机写SSD请求中写操作命令中的第二LBA与确定的所述第一LBA是否相同;
所述主机写SSD请求中写操作命令中的第二LBA与确定的所述第一LBA相同时,将该第一LBA对应的锁定闪存块的页变化为无效的页。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
确定预设时长内带宽调整相关信息;
根据确定的所述带宽调整相关信息调整主机和GC的数据带宽;
其中,所述带宽调整相关信息包括:主机的缓冲器的使用率、主机的缓冲器的写指针的增长率、主机的缓冲器的可用空间的占比。
5.根据权利要求4所述的方法,其特征在于,所述根据确定的带宽调整相关信息调整主机和GC的数据带宽,包括基于以下公式确定主机分配到的带宽占比:
[(1-a%)*m+(1-b%)*n+c%*k]/3;
式中,a%表示主机的缓冲器的使用率,b%表示主机的缓冲器的写指针的增长率,c%表示主机的缓冲器的可用空间的占比,m、n和k为预先确定的可配置的加权因子,0<m<1,0<n<1,0<k<1。
6.一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的实现垃圾回收的方法。
7.一种终端,包括:存储器和处理器,所述存储器中保存有计算机程序;其中,
处理器被配置为执行存储器中的计算机程序;
所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的实现垃圾回收的方法。
8.一种实现垃圾回收的装置,包括:同步单元、标记单元、确定单元、判断单元及处理单元;其中,
同步单元设置为:在执行垃圾回收GC时,同步进行主机访问请求,主机访问请求包括:主机写固态硬盘SSD的请求和/或主机读SSD的请求;
标记单元设置为:将GC的所有源闪存块逐个标记为锁定闪存块;
确定单元设置为:对锁定闪存块逐个进行垃圾回收处理时,确定是否接收到主机写SSD请求;
判断单元设置为:接收到主机写SSD请求时,判断主机写SSD请求是否导致在锁定闪存块中属于有效的页变化为无效的页;
处理单元设置为:接收到的主机写SSD请求导致在锁定闪存块中属于有效的页变化为无效的页时,执行GC的写操作时对变化为无效的页不进行写至新的闪存块的处理。
9.根据权利要求8所述的装置,其特征在于,所述标记单元是设置为:
对所述源闪存块中包含的每一个闪存块通过表格或目录进行记录,以将所述源闪存块标记为所述锁定闪存块。
10.根据权利要求8或9所述的装置,其特征在于,所述判断单元是设置为:
记录GC的所述锁定闪存块的第一物理块地址PBA;
根据预先确定的地址映射关系确定所述第一PBA对应的第一逻辑块地址LBA,其中,所述地址映射关系中存储第一PBA与第一LBA的映射关系;
比对所述主机写SSD请求中写操作命令中的第二LBA与确定的所述第一LBA是否相同;
所述主机写SSD请求中写操作命令中的第二LBA与确定的所述第一LBA相同时,将该第一LBA对应的锁定闪存块的页变化为无效的页。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311845596.0A CN117806985A (zh) | 2023-12-27 | 2023-12-27 | 一种实现垃圾回收的方法、装置、计算机存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311845596.0A CN117806985A (zh) | 2023-12-27 | 2023-12-27 | 一种实现垃圾回收的方法、装置、计算机存储介质及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117806985A true CN117806985A (zh) | 2024-04-02 |
Family
ID=90431396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311845596.0A Pending CN117806985A (zh) | 2023-12-27 | 2023-12-27 | 一种实现垃圾回收的方法、装置、计算机存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117806985A (zh) |
-
2023
- 2023-12-27 CN CN202311845596.0A patent/CN117806985A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10761777B2 (en) | Tiered storage using storage class memory | |
JP7366795B2 (ja) | メモリシステムおよび制御方法 | |
US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
US9042181B2 (en) | Periodic erase operation for a non-volatile medium | |
US9047211B2 (en) | Managing data reliability | |
US10055294B2 (en) | Selective copyback for on die buffered non-volatile memory | |
US9767032B2 (en) | Systems and methods for cache endurance | |
KR101920531B1 (ko) | 고체 상태 드라이브에서의 원자성 기록 커맨드 지원 | |
JP6817318B2 (ja) | フラッシュメモリデバイスにアクセスするための方法および装置 | |
US10019352B2 (en) | Systems and methods for adaptive reserve storage | |
CN108369818B (zh) | 一种闪存设备的刷新方法和装置 | |
US20170024140A1 (en) | Storage system and method for metadata management in non-volatile memory | |
WO2014074449A2 (en) | Wear leveling in flash memory devices with trim commands | |
CN113126907B (zh) | 用于存储器装置的异步电力损失恢复 | |
US11645006B2 (en) | Read performance of memory devices | |
WO2015018305A1 (zh) | 一种存储器的存储方法及存储系统 | |
US20230176965A1 (en) | Media management based on data access metrics | |
CN109725850B (zh) | 存储器系统和存储设备 | |
TWI553481B (zh) | 固態硬碟的資料管理方法、寫入管理系統及其方法 | |
KR20090024971A (ko) | 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치 | |
JP2012058770A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US10402112B1 (en) | Method and system for chunk-wide data organization and placement with real-time calculation | |
CN117806985A (zh) | 一种实现垃圾回收的方法、装置、计算机存储介质及终端 | |
CN114185492A (zh) | 一种基于强化学习的固态硬盘垃圾回收算法 | |
CN112860182A (zh) | 用于写回合并的位屏蔽有效扇区 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |