CN103365788B - 实时闪存转换层使用的自适应局部垃圾回收方法 - Google Patents
实时闪存转换层使用的自适应局部垃圾回收方法 Download PDFInfo
- Publication number
- CN103365788B CN103365788B CN201310339508.XA CN201310339508A CN103365788B CN 103365788 B CN103365788 B CN 103365788B CN 201310339508 A CN201310339508 A CN 201310339508A CN 103365788 B CN103365788 B CN 103365788B
- Authority
- CN
- China
- Prior art keywords
- block
- page
- physical
- garbage collection
- logical
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种实时闪存转换层使用的自适应局部垃圾回收方法,主要内容包括:A地址映射闪存芯片采用混合式地址映射方式,对每个逻辑块按需分配对应的物理块,并建立相应的映射关系;B读写操作C自适应垃圾回收策略当闪存芯片中空块的个数较充裕时采用分布式的局部垃圾回收策略,而当系统中空块的数量降低到一个阈值时采用集中式的局部垃圾回收策略。通过本机制可以有效的推迟垃圾回收的过程,减少垃圾回收过程中的代价。实验表明该机制能够有效的减少垃圾回收过程中有效页的拷贝和块擦除操作。
Description
技术领域:
本发明提出了一种实时闪存转换层使用的自适应局部垃圾回收方法。
背景技术:
近年内,NANDflash被广泛的应用在嵌入式系统中。NANDflash具有抗震性,读取速度快等固有优势,这些使得它相比于硬盘拥有更广阔的前景。然而,NANDflash也存在一些不受欢迎的特性,例如在NANDflash中读写操作必须以页为单位,并且NANDflash不能进行本地更新操作。对一个页的更新只能在一个空白页中进行。另外,在NANDflash中,擦除操作的基本单位是块,并且块的擦除次数存在一定的限制,表1列出了NANDflash的一些基本操作特性。
Table1.NANDFLASH规格
特性 | 三星16MB | 三星128MB |
块 | 16KB | 64KB |
页 | 512B | 2KB |
OOB区 | 16B | 64B |
读页 | 36μs | 25μs |
读OOB | 10μs | 25μs |
写页 | 200μs | 300μs |
擦除 | 2000μs | 2000μs |
NANDflash的这些特性会使得它在应用的过程中存在长时间的延迟,这在一些实时系统中是不允许的。为了提高闪存访问的性能,需要利用闪存转换层(FTL)对闪存单元操作进行统一管理。
图1给出了典型的闪存存储系统的架构,如图所示,FTL是存在于文件系统OS和闪存芯片FlashMemeory之间的中间层。FTL的功能主要包括地址映射,损耗均衡和垃圾回收。地址映射主要负责将文件系统发出的逻辑地址转化为闪存芯片上的物理地址;损耗均衡主要用来均衡闪存芯片中各块的使用次数,避免某一块被过度使用的情况。垃圾回收是将闪存芯片中的废块进行回收再利用。在进行垃圾回收时,首先要将被回收块中的有效页拷贝出来,而后再进行被回收块的擦除操作。在这个过程中,过多有效页的拷贝不但会减少闪存芯片的寿命,而且会导致系统的平均反应时间过长。垃圾回收策略可以分为非抢占式垃圾回收和局部垃圾回收。非抢占式的垃圾回收是将所有要被回收的块集中起来一起回收,而局部垃圾回收则将被回收块的回收过程分为多步,并且将这些过程与读写请求交替进行,如图2所示。很多FTL算法利用局部垃圾回收策略为嵌入式系统实现实时性,例如GFTL和RFTL。这两种算法都采用了局部垃圾回收策略来为系统提供实时操作。其中GFTL通过维护垃圾回收队列(GCQ)对系统中的废块进行集中式的局部垃圾回收,而RFTL则通过将系统中的块分为三类实现分布式的局部垃圾回收策略。集中式的垃圾回收策略每次只能对一个块进行回收,而分布式的局部垃圾回收策略则可将多个块的回收交叉进行。这两种算法在为系统提供反映时间上花费了过多的经历以至于引入了过多的有效页拷贝和块擦出操作,从而导致系统的平均反应时间降低。
发明内容
本发明的目的就是为解决上述问题,提供一种实时闪存转换层使用的自适应局部垃圾回收方法,它利用自适应垃圾回收策略的实时性FTL算法(RAFTL),RAFTL能在保证实时性的基础上尽可能的推迟垃圾回收过程,减少在垃圾回收过程中有效页的拷贝和块擦除的次数,推迟垃圾回收的过程可以导致回收块中有效页的个数减少,因为后续的写操作可能会导致原有效页变为无效,基于此理论,在RAFTL中采用了一种为逻辑块按需分配物理块的混合式地址映射方式。另外,本发明还提出了一种自适应的局部垃圾回收策略。自适应局部垃圾回收策略结合了集中式局部垃圾回收策略和分布式的局部垃圾回收策略,通过两种策略的自适应,RAFTL可以是系统的平均写反映时间接近写一页需要的时间。
为实现上述目的,本发明采用如下技术方案:
一种实时闪存转换层使用的自适应局部垃圾回收方法,它的过程为:
A地址映射
闪存芯片采用混合式地址映射方式,即将每个逻辑页地址分为一个逻辑块地址和一个块内偏移量,对每个逻辑块按需分配对应的物理块,并建立相应的映射关系;
B读写操作
文件系统发出的写操作由一个数据和逻辑页地址组成,逻辑页转换成逻辑块地址和块内偏移量;
当第一次对一个逻辑块进行写时,此时为写请求的最好情况,写反应时间为Twrpg;然而,在最坏情况下,写请求会触发垃圾回收操作,写请求之后会跟随一个块擦出操作,此时写请求反应时间为Tgr+Trdoob+Twrpg;
经过π次的写操作后,物理块被写满,如果此时要进行写的逻辑块所对应的物理块的个数已达到上限UM或者闪存芯片中的空白块数量达到下限Egc,再分配新块前垃圾回收将被触发,否则直接进行新物理块的分配;
文件系统发出的读请求由逻辑页地址组成,逻辑页地址被转化为一个逻辑块地址和一个块内偏移量;通过映射关系找到要读取的逻辑页所对应的物理页,此时无论最好情况或是最快情况读请求反映时间都是Trdoob+Trdpg;
C自适应垃圾回收策略
当闪存芯片中的空白块数量足够时,采用分布式的局部垃圾回收算法,此时如果某个要写的逻辑块对应的物理块个数等于UM时将触发垃圾回收过程;另一方面,集中式的局部垃圾回收策略在闪存芯片中的空白块数量小于Egc时进行调用,在集中式的局部垃圾回收过程中每一个请求都将跟随垃圾回收的一部分。
所述地址映射中,对每一个逻辑块M都存在Mi个物理块与之相对应,Mi按需进行分配,Mi存在上限UM。每个逻辑块在RAM中都存在一个映射项,映射项中存放着此Mi个物理块的指针和它们块内有效页的个数VP;对于每一个逻辑块都存在一个页级的映射表用来存放逻辑块中的页和它所对应的物理块中页的映射关系;页级映射表被分为N个页映射子表,每个页映射子表都被存放在最近分配的物理页的OOB区;每个块有π页,每个页的OOB区存放m个页映射表项,0<m≤π,则存放这N个页映射子表的物理页的指针响应的也被存放在RAM中。
所述写操作时,对一个逻辑块的第一次写请求会被写入到此逻辑块对应的物理块的首个空白页中;一旦一个物理块被分配给一个逻辑块,无论后续的请求是写操作还是更新操作,物理块中的空白页都会被顺序的分配。
所述写操作时,当一个新的物理页被分配后,首先需要更新此物理页OOB中的页映射子表中的信息,而后将数据写入到此物理页的数据域中,另外此物理页的指针也应该相对应的存放在RAM中用来记录映射表信息。
所述写操作时,对一个更新操作而言,首先需要利用RAM中存放页映射子表的页指针将旧的OOB信息独取出来,而后更新此页映射子表,而后再将此映射子表写入到新分配的物理页的OOB区中。
所述分布式局部垃圾回收的过程为:如果某个逻辑块被频繁的写,此逻辑块对应的物理块则会按需增长;当首次对此逻辑块进行写操作(w1)时,物理块B1被分配,随着后续写操作(w2,w3,…,wπ)的到达,块B1被写满,此时块B2被分配;当此逻辑块对应的物理块数到达上限UM,并且最后一个物理块中的空白页只有k页时,分布式的局部垃圾回收将被触发;这k个空白页将会被用来存放后续的写操作和被回收块中的有效页拷贝的内容;当垃圾回收被触发后,选取此逻辑块对应的物理块中无效页数最多的那块进行垃圾回收;假设B1拥有最多的无效块,此时选取B1作为被回收块进行回收;由于此时逻辑块对应有UM个物理块,所以被回收块最多拥有个有效页,故对此块的回收可以分为β步:
由于进行有效页的拷贝需要α个空白页,在垃圾回收过程中需要β个页对写请求进行服务,故k=α+β;经过β次的写请求之后,被回收块被擦除,并从此逻辑块的映射项中移出,而后再选取一个擦除次数最少的空白块为后续的写请求服务。
所述集中式垃圾回收过程中,每个读写请求之后都跟随一步垃圾回收的操作,在集中式局部垃圾回收的过程中系统中的空白块会逐渐增长,当系统中空白块的数量达到2Egc时,集中式的局部垃圾回收策略结束,再一次使用分布式局部垃圾回收策略。
所述Egc是触发集中式局部垃圾回收策略的阈值,故在触发集中式局部垃圾回收策略后,在任何情况下Egc都需要满足后续的写操作;
经过次写请求之后,个物理块被分配,并且在此过程中至少有个块被回收,因此在集中式的垃圾回收过程被触发时系统中至少有个空块,由此得出公式1.2:
故在最坏情况下,要满足系统要求,Egc必须大于等于
本发明在地址映射的过程中,采用对逻辑块按需分配物理块的策略,而在地址回收的过程中利用一种自适应垃圾回收策略。通过本机制可以有效的推迟垃圾回收的过程,减少垃圾回收过程中的代价。实验表明该机制能够有效的减少垃圾回收过程中有效页的拷贝和块擦除操作。
实验结果表明,相比于RFTL算法,RAFTL可以减少48.1%的块擦除次数和98.1%的有效页拷贝次数。另外在系统平均反映时间方面,RAFTL相比于RFTL提高了43.5%,而和GFTL相比,RAFTL提高了83.2%。
本发明的有益效果如下:
1.提出了一种实时的FTL算法,此算法能够在保证实时性的基础上大幅度的减少垃圾回收过程中有效页的拷贝和块擦除操作的次数。
2.通过减少有效页的拷贝次数和块擦除操作次数,RAFTL可以提高闪存单元的使用寿命。
3.提出了一种自适应局部垃圾回收策略,自适应局部垃圾回收策略结合了集中式的局部垃圾回收策略和分布式的局部垃圾回收策略。当闪存芯片中空块的个数较充裕时采用分布式的局部垃圾回收策略,而当系统中空块的数量降低到一个阈值时采用集中式的局部垃圾回收策略。
附图说明:
图1为NANDflash存储系统的结构;
图2为集中式局部垃圾回收和分布式垃圾回收策略的对比;
图3为垃圾回收过程;
图4为RAFTL的映射表结构;
图5为分布式的局部垃圾回收过程。
具体实施方式
下面结合附图与实施例对本发明做如下说明。
模型建立:
在垃圾回收过程中,可变的有效页拷贝次数会导致较长时间的延迟,通过推迟垃圾回收的过程可以有效的减少垃圾回收过程中有效页的拷贝次数。图3给出了一个垃圾回收的例子。我们假设每个块有8个页,在图3(a)中,被回收块有6个有效页,要回收此块要进行6次有效页的拷贝和1次块擦除操作,而每个有效页的拷贝包括一次写操作和一次读操作。根据表1中列出的闪存的性能标准,回收此块需要用6*(25+300)+2000=3950μs。
Table2.NANDFLASH规格
特性 | 三星16MB | 三星128MB |
块 | 16KB | 64KB |
页 | 512B | 2KB |
OOB区 | 16B | 64B |
读页 | 36μs | 25μs |
读OOB | 10μs | 25μs |
写页 | 200μs | 300μs |
擦除 | 2000μs | 2000μs |
如果垃圾回收被推迟到n次写请求之后进行,如图3(b)所示,被回收块中只有两个有效页,此时回收此块仅需要2650μs。
为了对此问题进行更直观的说明,本文对闪存存储系统进行如下建模。由文件系统向FTL层发出的I/O请求可以看作独立的实时性任务T={p,e,d}。其中p代表两个连续任务之间的最小时间间隔,e代表任务执行所用时间,而d为任务的截止期限。不失一般性,我们认为p等于d。这样在闪存存储系统中存在两种任务:读请求任务Tr={pr,er}和写请求任务Tw={pw,ew}。其中pr和pw代表文件系统执行读写请求的周期,er和ew代表执行读写请求花费的时间。周期p的下限(表示为L(p))给出了FTL算法可以处理的读写请求的速度上限。表2中列出了本发明中用到的符号和它们的说明。
Table2符合及定义
符号 | 定义 |
Ter | 擦除块时间 |
Trdoob | 读取一个OOB所需时间 |
Trdpg | 读一页的时间 |
Twrpg | 写一页时间 |
π | 每块包含的页数 |
Ln | 逻辑块数 |
Pn | 物理块数 |
UM | 每个逻辑块对应的物理块上线 |
Egc | 触发集中式垃圾回收的阈值 |
注意,Ter是闪存中花费时间最长的原子操作,因为擦除操作无法被打断。因此在最坏的情况下读写请求至少需要等待Ter,并且在理想情况下,L(p)等于Ter。利用以上模型,可以对要解决的问题建模如下:
给定一个NANDflash存储芯片和一个任务集V={T1,T2,…,Tn},怎样设计一个FTL算法能使得在保证最坏反应时间和L(p)接近Ter的前提下尽可能的减少垃圾回收过程中有效页的拷贝和块擦除操作。
RAFTL算法:
A地址映射
RAFTL采用混合式的地址映射方式。如图4所示,在RAFTL中,一个逻辑页地址(LPN)可以被分为一个逻辑块(LBN)地址和一个块内偏移量(BO)。对每一个逻辑块M都存在Mi个物理块与之相对应,Mi按需进行分配,Mi存在上限UM。每个逻辑块在RAM中都存在一个映射项,映射项中存放着此Mi个物理块的指针(i.e.,PBN_1,PBN_2,…)和它们块内有效页的个数VP。另外对于每一个逻辑块都存在一个页级的映射表用来存放逻辑块中的页和它所对应的物理块中页的映射关系。页级映射表被分为N个页映射子表(i.e.,PMT_1,PMT_2,…,PMT_N),每个页映射子表都被存放在最近分配的物理页的OOB区。假设每个块有π页,每个页的OOB区可以存放m(0<m≤π)个页映射表项,则存放这N个页映射子表的物理页的指针响应的也被存放在RAM中。
B读写操作
文件系统发出的读操作由一个数据和LPN组成,例如write(data,lpn),而后LPN被转换为LBN和BO。对一个逻辑块的第一次写请求会被写入到此逻辑块对应的物理块的首个空白页中。一旦一个物理块被分配给一个逻辑块,无论后续的请求是写操作还是更新操作,物理块中的空白页都会被顺序的分配。当一个新的物理页被分配后,首先需要更新此物理页OOB中的页映射子表中的信息,而后将数据写入到此物理页的数据域中,另外此物理页的指针也应该相对应的存放在RAM中用来记录映射表信息。对一个更新操作而言,首先需要利用RAM中存放页映射子表的页指针将旧的OOB信息独取出来,而后更新此页映射子表,而后再将此映射子表写入到新分配的物理页的OOB区中。经过π次的写操作后,物理块被写满,如果此时要进行写的逻辑块所对应的物理块的个数已达到上限UM或者闪存芯片中的空白块数量达到下限Egc(空白块的下限,下文进行分析),再分配新块前垃圾回收将被触发,否则直接进行新物理块的分配。
当第一次对一个逻辑块进行写时,此逻辑块在RAM中的映射表项中的页级映射表指针为空,此时不需要进行垃圾回收也不需要对OOB去进行搜索操作,此时为写请求的最好情况,写反应时间为Twrpg。然而,在最坏情况下,写请求会触发垃圾回收操作,写请求之后会跟随一个块擦出操作,此时写请求反应时间为Tgr+Trdoob+Twrpg.
由文件系统发出的读请求由LPN组成,例如read(lpn),LPN被转化为一个LBN和BO。利用LBN和BO,通过RAM中的映射表项可以找到要读取的逻辑页所对应的物理页。此时无论最好情况或是最快情况读请求反映时间都是Trdoob+Trdpg。
自适应垃圾回收算法
RAFTL采取了一种结合了集中式局部垃圾回收和分布式局部垃圾回收策略的自适应局部垃圾回收策略。在RAFTL中,当闪存芯片中的空白块数量足够时,采用分布式的局部垃圾回收算法。此时如果某个要写的逻辑块对应的物理块个数等于UM时将触发垃圾回收过程。另一方面,集中式的局部垃圾回收策略在闪存芯片中的空白块数量小于Egc时进行调用,在集中式的局部垃圾回收过程中每一个请求都将跟随垃圾回收的一部分。
图5给出了分布式局部垃圾回收的过程。在RAFTL中,如果某个逻辑块被频繁的写,此逻辑块对应的物理块则会按需增长,如图5的(a)(b)(c)所示。当首次对此逻辑块进行写操作(w1)时,物理块B1被分配,随着后续写操作(w2,w3,…,w8)的到达,块B1被写满,此时块B2被分配。当此逻辑块对应的物理块数到达上限UM,并且最后一个物理块中的空白页只有k页时,如图5(c)所示,分布式的局部垃圾回收将被触发。这k个空白页将会被用来存放后续的写操作和被回收块中的有效页拷贝的内容。当垃圾回收被触发后,首先需要选取被回收块,在这里,我们选取此逻辑块对应的物理块中无效页数最多的那块进行垃圾回收。在图5(c)中,假设B1拥有最多的无效块,此时选取B1作为被回收块进行回收。由于此时逻辑块对应有UM个物理块,所以被回收块最多拥有个有效页,故对此块的回收可以分为β步:
由于进行有效页的拷贝需要α个空白页,在垃圾回收过程中需要β个页对写请求进行服务,故k=α+β。经过β次的写请求之后,被回收块被擦除,并从此逻辑块的映射项中移出,如图5(d)所示。而后RAFTL再选取一个擦除次数最少的空白块为后续的写请求服务。一旦闪存芯片中的空白块数量小于Egc时,集中式的局部垃圾回收策略将会取代分布式的局部垃圾回收策略。不同于GFTL,在RAFTL中不存在一个垃圾回收队列用来维护需要被回收的块,进行垃圾回收时只需要选取系统中拥有无效页最多的块进行回收。如图2所示,在集中式垃圾回收过程中,每个读写请求之后都跟随一步垃圾回收的操作。在集中式局部垃圾回收的过程中系统中的空白块会逐渐增长,当系统中空白块的数量达到2Egc时,集中式的局部垃圾回收策略结束,再一次使用分布式局部垃圾回收策略。
D对Egc的分析
Egc是触发集中式局部垃圾回收策略的阈值,故在触发集中式局部垃圾回收策略后,在任何情况下Egc都需要满足后续的写操作。在这部分我们将对Egc的值进行分析。
假设闪存系统中逻辑块有Ln块,物理块有Pn块(假定Pn大于等于Ln的3倍,即Pn≥3Ln)。在极端情况下,当集中式的局部垃圾回收策略被触发时,闪存系统中的逻辑块可以被分为两类。一类逻辑块有UM块物理块与之形对应,而另一类逻辑块不存在对应的物理块。假定当集中式的局部垃圾回收策略被触发时,有个逻辑块不存在与之对应的物理块,有个逻辑块有用UM个物理块与之对应。以下情况为当集中式局部垃圾回收策略被触发时最坏的写请求队列:之后的个写请求分别访问系统中没有物理块与之相对应的个逻辑块。在这种情况下,每次的写请求都需要一个分配一个空白块,这将会是系统中的空白块数量持续下降,若UM在此情况下能满足系统的服务,则在任何情况下UM都可以满足系统的服务。
在上述场景下,经过的写请求之后,个物理块被分配,并且在此过程中至少有个块被回收,因此在集中式的垃圾回收过程被触发时系统中至少有个空块,由此我们得出公式1.2:
故在最坏情况下,要是RAFTL能够满足系统要求,Egc必须大于等于举例说明,假设Pn=3Ln,π=64且UM=8。利用表1中给出的各性能指标,可以求出α=8,β=3。将α和β带入到公式2.2中求解的,故可得出Egc应大于等于(5/33)Pn。
Claims (8)
1.一种实时闪存转换层使用的自适应局部垃圾回收方法,其特征是,它采用的策略为:
A地址映射
闪存芯片采用混合式地址映射方式,即将每个逻辑页地址分为一个逻辑块地址和一个块内偏移量,对每个逻辑块按需分配对应的物理块,并建立相应的映射关系;
B读写操作
文件系统发出的写操作由一个数据和逻辑页地址组成,逻辑页转换成逻辑块地址和块内偏移量;
当第一次对一个逻辑块进行写时,此时为写请求的最好情况,写反应时间为Twrpg;然而,在最坏情况下,写请求会触发垃圾回收操作,写请求之后会跟随一个块擦出操作,此时写请求反应时间为Ter+Trdoob+Twrpg;
经过π次的写操作后,物理块被写满,如果此时要进行写的逻辑块所对应的物理块的个数已达到上限UM或者闪存芯片中的空白块数量达到下限Egc,再分配新块前垃圾回收将被触发,否则直接进行新物理块的分配;
文件系统发出的读请求由逻辑页地址组成,逻辑页地址被转化为一个逻辑块地址和一个块内偏移量;通过映射关系找到要读取的逻辑页所对应的物理页,此时无论最好情况或是最快情况读请求反映时间都是Trdoob+Trdpg;
其中,Ter表示擦除块时间;Trdoob表示读取一个OOB所需时间;Trdpg表示读一页时间;
C自适应垃圾回收策略
当闪存芯片中的空白块数量足够时,采用分布式的局部垃圾回收算法,此时如果某个要写的逻辑块对应的物理块个数等于UM时将触发垃圾回收过程;另一方面,集中式的局部垃圾回收策略在闪存芯片中的空白块数量小于Egc时进行调用,在集中式的局部垃圾回收过程中每一个请求都将跟随垃圾回收的一部分。
2.如权利要求1所述的实时闪存转换层使用的自适应局部垃圾回收方法,其特征是,所述地址映射中,对每一个逻辑块M都存在Mi个物理块与之相对应,Mi按需进行分配,Mi存在上限UM,每个逻辑块在RAM中都存在一个映射项,映射项中存放着此Mi个物理块的指针和它们块内有效页的个数VP;对于每一个逻辑块都存在一个页级的映射表用来存放逻辑块中的页和它所对应的物理块中页的映射关系;页级映射表被分为N个页映射子表,每个页映射子表都被存放在最近分配的物理页的OOB区;每个块有π页,每个页的OOB区存放m个页映射表项,0<m≤π,则存放这N个页映射子表的物理页的指针相应地也被存放在RAM中。
3.如权利要求1或2所述的实时闪存转换层使用的自适应局部垃圾回收方法,其特征是,所述写操作时,对一个逻辑块的第一次写请求会被写入到此逻辑块对应的物理块的首个空白页中;一旦一个物理块被分配给一个逻辑块,无论后续的请求是写操作还是更新操作,物理块中的空白页都会被顺序的分配。
4.如权利要求2所述的实时闪存转换层使用的自适应局部垃圾回收方法,其特征是,所述写操作时,当一个新的物理页被分配后,首先需要更新此物理页OOB中的页映射子表中的信息,而后将数据写入到此物理页的数据域中,另外此物理页的指针也应该相对应的存放在RAM中用来记录映射表信息。
5.如权利要求2所述的实时闪存转换层使用的自适应局部垃圾回收方法,其特征是,所述写操作时,对一个更新操作而言,首先需要利用RAM中存放页映射子表的页指针将旧的OOB信息独取出来,而后更新此页映射子表,而后再将此映射子表写入到新分配的物理页的OOB区中。
6.如权利要求2所述的实时闪存转换层使用的自适应局部垃圾回收方法,其特征是,所述分布式局部垃圾回收的过程为:如果某个逻辑块被频繁的写,此逻辑块对应的物理块则会按需增长;当首次对此逻辑块进行写操作(w1)时,物理块B1被分配,随着后续写操作(w2,w3,…,wπ)的到达,块B1被写满,此时块B2被分配;当此逻辑块对应的物理块数到达上限UM,并且最后一个物理块中的空白页只有k页时,分布式的局部垃圾回收将被触发;这k个空白页将会被用来存放后续的写操作和被回收块中的有效页拷贝的内容;当垃圾回收被触发后,选取此逻辑块对应的物理块中无效页数最多的那块进行垃圾回收;假设B1拥有最多的无效块,此时选取B1作为被回收块进行回收;由于此时逻辑块对应有UM个物理块,所以被回收块最多拥有个有效页,故对此块的回收可以分为β步:
由于进行有效页的拷贝需要α个空白页,在垃圾回收过程中需要β个页对写请求进行服务,故k=α+β;经过β次的写请求之后,被回收块被擦除,并从此逻辑块的映射项中移出,而后再选取一个擦除次数最少的空白块为后续的写请求服务。
7.如权利要求2所述的实时闪存转换层使用的自适应局部垃圾回收方法,其特征是,所述集中式垃圾回收过程中,每个读写请求之后都跟随一步垃圾回收的操作,在集中式局部垃圾回收的过程中系统中的空白块会逐渐增长,当系统中空白块的数量达到2Egc时,集中式的局部垃圾回收策略结束,再一次使用分布式局部垃圾回收策略。
8.如权利要求6所述的实时闪存转换层使用的自适应局部垃圾回收方法,其特征是,所述Egc是触发集中式局部垃圾回收策略的阈值,故在触发集中式局部垃圾回收策略后,在任何情况下Egc都需要满足后续的写操作;
经过次写请求之后,个物理块被分配,并且在此过程中至少有个块被回收,因此在集中式的垃圾回收过程被触发时系统中至少有个空块,由此得出公式(2):
故在最坏情况下,要满足系统要求,Egc必须大于等于
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310339508.XA CN103365788B (zh) | 2013-08-06 | 2013-08-06 | 实时闪存转换层使用的自适应局部垃圾回收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310339508.XA CN103365788B (zh) | 2013-08-06 | 2013-08-06 | 实时闪存转换层使用的自适应局部垃圾回收方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103365788A CN103365788A (zh) | 2013-10-23 |
CN103365788B true CN103365788B (zh) | 2016-01-13 |
Family
ID=49367191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310339508.XA Expired - Fee Related CN103365788B (zh) | 2013-08-06 | 2013-08-06 | 实时闪存转换层使用的自适应局部垃圾回收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103365788B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102343246B1 (ko) * | 2014-12-12 | 2021-12-27 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN106155935A (zh) * | 2016-07-05 | 2016-11-23 | 深圳市瑞耐斯技术有限公司 | 固态硬盘闪存的垃圾回收方法及装置 |
CN106294195B (zh) * | 2016-07-19 | 2019-06-21 | 深圳市领存技术有限公司 | 一种3d闪存的控制方法和系统 |
CN106354658B (zh) * | 2016-08-29 | 2019-02-01 | 成都三零嘉微电子有限公司 | 一种降低混合映射算法中映射表内存资源占用的方法 |
CN106354660A (zh) * | 2016-08-30 | 2017-01-25 | 深圳市先天海量信息技术有限公司 | 固态存储设备的垃圾回收方法及装置 |
US10261897B2 (en) * | 2017-01-20 | 2019-04-16 | Samsung Electronics Co., Ltd. | Tail latency aware foreground garbage collection algorithm |
US10101942B1 (en) * | 2017-04-17 | 2018-10-16 | Sandisk Technologies Llc | System and method for hybrid push-pull data management in a non-volatile memory |
US11048624B2 (en) * | 2017-04-25 | 2021-06-29 | Samsung Electronics Co., Ltd. | Methods for multi-stream garbage collection |
CN109558333B (zh) * | 2017-09-27 | 2024-04-05 | 北京忆恒创源科技股份有限公司 | 具有可变额外存储空间的固态存储设备命名空间 |
CN107608907B (zh) * | 2017-09-30 | 2020-10-23 | 华为技术有限公司 | 一种存储系统中垃圾回收的方法及装置 |
CN108038026B (zh) * | 2017-11-17 | 2021-11-30 | 中国科学院信息工程研究所 | 一种基于闪存的数据快速恢复方法与系统 |
CN110858121B (zh) * | 2018-08-23 | 2023-07-11 | 阿里巴巴集团控股有限公司 | 后台操作的调度方法及装置 |
CN109491606B (zh) * | 2018-11-01 | 2021-10-15 | 郑州云海信息技术有限公司 | 一种全闪存储空间管理方法、系统、设备及计算机介质 |
CN111949558B (zh) * | 2019-05-16 | 2023-11-21 | 兆易创新科技集团股份有限公司 | 一种垃圾数据回收方法、装置和存储设备 |
CN110515859B (zh) * | 2019-07-09 | 2021-07-20 | 杭州电子科技大学 | 一种固态硬盘读写请求并行处理方法 |
CN111258924B (zh) * | 2020-01-17 | 2021-06-08 | 中国科学院国家空间科学中心 | 一种基于星载固态存储系统自适应闪存转换层的映射方法 |
CN113377686A (zh) * | 2020-03-10 | 2021-09-10 | 阿里巴巴集团控股有限公司 | 调度方法、装置、电子设备及计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339808A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 存储块的擦除方法及装置 |
CN102163175A (zh) * | 2011-04-26 | 2011-08-24 | 西安交通大学 | 一种基于局部性分析的混合地址映射方法 |
CN102279809A (zh) * | 2011-08-10 | 2011-12-14 | 郏惠忠 | 一种在固态硬盘中重定向写入及垃圾回收的方法 |
WO2012012150A1 (en) * | 2010-06-30 | 2012-01-26 | Sandisk Technologies Inc. | Garbage collection of memory blocks using volatile memory |
CN103034586A (zh) * | 2012-11-30 | 2013-04-10 | 记忆科技(深圳)有限公司 | 通过闪存转换层识别上层应用的方法及其系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8417878B2 (en) * | 2010-09-20 | 2013-04-09 | Seagate Technology Llc | Selection of units for garbage collection in flash memory |
-
2013
- 2013-08-06 CN CN201310339508.XA patent/CN103365788B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339808A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 存储块的擦除方法及装置 |
WO2012012150A1 (en) * | 2010-06-30 | 2012-01-26 | Sandisk Technologies Inc. | Garbage collection of memory blocks using volatile memory |
CN102163175A (zh) * | 2011-04-26 | 2011-08-24 | 西安交通大学 | 一种基于局部性分析的混合地址映射方法 |
CN102279809A (zh) * | 2011-08-10 | 2011-12-14 | 郏惠忠 | 一种在固态硬盘中重定向写入及垃圾回收的方法 |
CN103034586A (zh) * | 2012-11-30 | 2013-04-10 | 记忆科技(深圳)有限公司 | 通过闪存转换层识别上层应用的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103365788A (zh) | 2013-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103365788B (zh) | 实时闪存转换层使用的自适应局部垃圾回收方法 | |
CN104636285B (zh) | 一种闪存存储系统及其读写、删除方法 | |
CN102163175B (zh) | 一种基于局部性分析的混合地址映射方法 | |
CN102981963B (zh) | 一种固态盘的闪存转换层的实现方法 | |
CN101477492B (zh) | 一种用于固态硬盘的循环重写闪存均衡方法 | |
CN103608782B (zh) | Lsb页面和msb页面中的选择性数据存储 | |
CN102789427B (zh) | 数据储存装置与其操作方法 | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN101526927B (zh) | Flash文件系统的数据处理方法及数据处理装置 | |
CN104166634A (zh) | 一种固态盘系统中的映射表缓存管理方法 | |
CN102841851A (zh) | 闪存管理方法和闪存设备 | |
CN101968755B (zh) | 一种自适应应用负载变化的快照生成方法 | |
CN107102954B (zh) | 一种基于失效概率的固态存储分级管理方法及系统 | |
CN104598386B (zh) | 通过追踪和利用二级映射索引重复利用固态驱动器块 | |
CN102819494B (zh) | 一种闪存顺序写入时的优化方法 | |
Wu et al. | An adaptive flash translation layer for high-performance storage systems | |
CN103455433B (zh) | 内存管理方法及系统 | |
CN107544756A (zh) | 基于SCM的Key‑Value日志型本地存储方法 | |
CN105389135A (zh) | 一种固态盘内部缓存管理方法 | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
CN102763070B (zh) | 磁盘缓存的管理方法及装置 | |
CN102521144B (zh) | 一种闪存转换层系统 | |
CN109508317B (zh) | 一种大容量数据和服务管理系统 | |
CN111258924B (zh) | 一种基于星载固态存储系统自适应闪存转换层的映射方法 | |
CN103678141B (zh) | 闪存的管理方法和管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160113 Termination date: 20160806 |
|
CF01 | Termination of patent right due to non-payment of annual fee |