CN103365788A - 实时闪存转换层使用的自适应局部垃圾回收方法 - Google Patents

实时闪存转换层使用的自适应局部垃圾回收方法 Download PDF

Info

Publication number
CN103365788A
CN103365788A CN201310339508XA CN201310339508A CN103365788A CN 103365788 A CN103365788 A CN 103365788A CN 201310339508X A CN201310339508X A CN 201310339508XA CN 201310339508 A CN201310339508 A CN 201310339508A CN 103365788 A CN103365788 A CN 103365788A
Authority
CN
China
Prior art keywords
page
block
piece
write
mapping
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.)
Granted
Application number
CN201310339508XA
Other languages
English (en)
Other versions
CN103365788B (zh
Inventor
贾智平
申兆岩
李新
鞠雷
蔡晓军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University
Original Assignee
Shandong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong University filed Critical Shandong University
Priority to CN201310339508.XA priority Critical patent/CN103365788B/zh
Publication of CN103365788A publication Critical patent/CN103365788A/zh
Application granted granted Critical
Publication of CN103365788B publication Critical patent/CN103365788B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Abstract

本发明涉及一种实时闪存转换层使用的自适应局部垃圾回收方法,主要内容包括:A地址映射闪存芯片采用混合式地址映射方式,对每个逻辑块按需分配对应的物理块,并建立相应的映射关系;B读写操作C自适应垃圾回收策略当闪存芯片中空块的个数较充裕时采用分布式的局部垃圾回收策略,而当系统中空块的数量降低到一个阈值时采用集中式的局部垃圾回收策略。通过本机制可以有效的推迟垃圾回收的过程,减少垃圾回收过程中的代价。实验表明该机制能够有效的减少垃圾回收过程中有效页的拷贝和块擦除操作。

Description

实时闪存转换层使用的自适应局部垃圾回收方法
技术领域:
本发明提出了一种实时闪存转换层使用的自适应局部垃圾回收方法。
背景技术:
近年内,NAND flash被广泛的应用在嵌入式系统中。NAND flash具有抗震性,读取速度快等固有优势,这些使得它相比于硬盘拥有更广阔的前景。然而,NAND flash也存在一些不受欢迎的特性,例如在NAND flash中读写操作必须以页为单位,并且NAND flash不能进行本地更新操作。对一个页的更新只能在一个空白页中进行。另外,在NAND flash中,擦除操作的基本单位是块,并且块的擦除次数存在一定的限制,表1列出了NAND flash的一些基本操作特性。
Table1.NAND FLASH规格
特性 三星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
NAND flash的这些特性会使得它在应用的过程中存在长时间的延迟,这在一些实时系统中是不允许的。为了提高闪存访问的性能,需要利用闪存转换层(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个物理块,所以被回收块最多拥有
Figure BDA00003628703100048
个有效页,故对此块的回收可以分为β步:
由于进行有效页的拷贝需要α个空白页,在垃圾回收过程中需要β个页对写请求进行服务,故k=α+β;经过β次的写请求之后,被回收块被擦除,并从此逻辑块的映射项中移出,而后再选取一个擦除次数最少的空白块为后续的写请求服务。
所述集中式垃圾回收过程中,每个读写请求之后都跟随一步垃圾回收的操作,在集中式局部垃圾回收的过程中系统中的空白块会逐渐增长,当系统中空白块的数量达到2Egc时,集中式的局部垃圾回收策略结束,再一次使用分布式局部垃圾回收策略。
所述Egc是触发集中式局部垃圾回收策略的阈值,故在触发集中式局部垃圾回收策略后,在任何情况下Egc都需要满足后续的写操作;
经过
Figure BDA00003628703100042
次写请求之后,
Figure BDA00003628703100043
个物理块被分配,并且在此过程中至少有
Figure BDA00003628703100044
个块被回收,因此在集中式的垃圾回收过程被触发时系统中至少有
Figure BDA00003628703100045
个空块,由此得出公式1.2:
Figure BDA00003628703100046
故在最坏情况下,要满足系统要求,Egc必须大于等于
Figure BDA00003628703100047
本发明在地址映射的过程中,采用对逻辑块按需分配物理块的策略,而在地址回收的过程中利用一种自适应垃圾回收策略。通过本机制可以有效的推迟垃圾回收的过程,减少垃圾回收过程中的代价。实验表明该机制能够有效的减少垃圾回收过程中有效页的拷贝和块擦除操作。
实验结果表明,相比于RFTL算法,RAFTL可以减少48.1%的块擦除次数和98.1%的有效页拷贝次数。另外在系统平均反映时间方面,RAFTL相比于RFTL提高了43.5%,而和GFTL相比,RAFTL提高了83.2%。
本发明的有益效果如下:
1.提出了一种实时的FTL算法,此算法能够在保证实时性的基础上大幅度的减少垃圾回收过程中有效页的拷贝和块擦除操作的次数。
2.通过减少有效页的拷贝次数和块擦除操作次数,RAFTL可以提高闪存单元的使用寿命。
3.提出了一种自适应局部垃圾回收策略,自适应局部垃圾回收策略结合了集中式的局部垃圾回收策略和分布式的局部垃圾回收策略。当闪存芯片中空块的个数较充裕时采用分布式的局部垃圾回收策略,而当系统中空块的数量降低到一个阈值时采用集中式的局部垃圾回收策略。
附图说明:
图1为NAND flash存储系统的结构;
图2为集中式局部垃圾回收和分布式垃圾回收策略的对比;
图3为垃圾回收过程;
图4为RAFTL的映射表结构;
图5为分布式的局部垃圾回收过程。
具体实施方式
下面结合附图与实施例对本发明做如下说明。
模型建立:
在垃圾回收过程中,可变的有效页拷贝次数会导致较长时间的延迟,通过推迟垃圾回收的过程可以有效的减少垃圾回收过程中有效页的拷贝次数。图3给出了一个垃圾回收的例子。我们假设每个块有8个页,在图3(a)中,被回收块有6个有效页,要回收此块要进行6次有效页的拷贝和1次块擦除操作,而每个有效页的拷贝包括一次写操作和一次读操作。根据表1中列出的闪存的性能标准,回收此块需要用6*(25+300)+2000=3950μs。
Table2.NAND FLASH规格
特性 三星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。利用以上模型,可以对要解决的问题建模如下:
给定一个NAND flash存储芯片和一个任务集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个物理块,所以被回收块最多拥有个有效页,故对此块的回收可以分为β步:
Figure BDA00003628703100082
由于进行有效页的拷贝需要α个空白页,在垃圾回收过程中需要β个页对写请求进行服务,故k=α+β。经过β次的写请求之后,被回收块被擦除,并从此逻辑块的映射项中移出,如图5(d)所示。而后RAFTL再选取一个擦除次数最少的空白块为后续的写请求服务。一旦闪存芯片中的空白块数量小于Egc时,集中式的局部垃圾回收策略将会取代分布式的局部垃圾回收策略。不同于GFTL,在RAFTL中不存在一个垃圾回收队列用来维护需要被回收的块,进行垃圾回收时只需要选取系统中拥有无效页最多的块进行回收。如图2所示,在集中式垃圾回收过程中,每个读写请求之后都跟随一步垃圾回收的操作。在集中式局部垃圾回收的过程中系统中的空白块会逐渐增长,当系统中空白块的数量达到2Egc时,集中式的局部垃圾回收策略结束,再一次使用分布式局部垃圾回收策略。
D对Egc的分析
Egc是触发集中式局部垃圾回收策略的阈值,故在触发集中式局部垃圾回收策略后,在任何情况下Egc都需要满足后续的写操作。在这部分我们将对Egc的值进行分析。
假设闪存系统中逻辑块有Ln块,物理块有Pn块(假定Pn大于等于Ln的3倍,即Pn≥3Ln)。在极端情况下,当集中式的局部垃圾回收策略被触发时,闪存系统中的逻辑块可以被分为两类。一类逻辑块有UM块物理块与之形对应,而另一类逻辑块不存在对应的物理块。假定当集中式的局部垃圾回收策略被触发时,有
Figure BDA00003628703100083
个逻辑块不存在与之对应的物理块,有
Figure BDA00003628703100084
个逻辑块有用UM个物理块与之对应。以下情况为当集中式局部垃圾回收策略被触发时最坏的写请求队列:之后的
Figure BDA00003628703100085
个写请求分别访问系统中没有物理块与之相对应的
Figure BDA00003628703100086
个逻辑块。在这种情况下,每次的写请求都需要一个分配一个空白块,这将会是系统中的空白块数量持续下降,若UM在此情况下能满足系统的服务,则在任何情况下UM都可以满足系统的服务。
在上述场景下,经过
Figure BDA00003628703100087
的写请求之后,
Figure BDA00003628703100088
个物理块被分配,并且在此过程中至少有
Figure BDA00003628703100089
个块被回收,因此在集中式的垃圾回收过程被触发时系统中至少有
Figure BDA00003628703100091
个空块,由此我们得出公式1.2:
Figure BDA00003628703100092
故在最坏情况下,要是RAFTL能够满足系统要求,Egc必须大于等于
Figure BDA00003628703100093
举例说明,假设Pn=3Ln,π=64且UM=8。利用表1中给出的各性能指标,可以求出α=8,β=3。将α和β带入到公式2.2中求解的,
Figure BDA00003628703100094
故可得出Egc应大于等于(5/33)Pn

Claims (8)

1.一种实时闪存转换层使用的自适应局部垃圾回收方法,其特征是,它采用的策略为:
A地址映射
闪存芯片采用混合式地址映射方式,即将每个逻辑页地址分为一个逻辑块地址和一个块内偏移量,对每个逻辑块按需分配对应的物理块,并建立相应的映射关系;
B读写操作
文件系统发出的写操作由一个数据和逻辑页地址组成,逻辑页转换成逻辑块地址和块内偏移量;
当第一次对一个逻辑块进行写时,此时为写请求的最好情况,写反应时间为Twrpg;然而,在最坏情况下,写请求会触发垃圾回收操作,写请求之后会跟随一个块擦出操作,此时写请求反应时间为Ter+Trdoob+Twrpg
经过π次的写操作后,物理块被写满,如果此时要进行写的逻辑块所对应的物理块的个数已达到上限UM或者闪存芯片中的空白块数量达到下限Egc,再分配新块前垃圾回收将被触发,否则直接进行新物理块的分配;
文件系统发出的读请求由逻辑页地址组成,逻辑页地址被转化为一个逻辑块地址和一个块内偏移量;通过映射关系找到要读取的逻辑页所对应的物理页,此时无论最好情况或是最快情况读请求反映时间都是Trdoob+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个物理块,所以被回收块最多拥有个有效页,故对此块的回收可以分为β步:
Figure FDA00003628703000022
由于进行有效页的拷贝需要α个空白页,在垃圾回收过程中需要β个页对写请求进行服务,故k=α+β;经过β次的写请求之后,被回收块被擦除,并从此逻辑块的映射项中移出,而后再选取一个擦除次数最少的空白块为后续的写请求服务。
7.如权利要求2所述的实时闪存转换层使用的自适应局部垃圾回收方法,其特征是,所述集中式垃圾回收过程中,每个读写请求之后都跟随一步垃圾回收的操作,在集中式局部垃圾回收的过程中系统中的空白块会逐渐增长,当系统中空白块的数量达到2Egc时,集中式的局部垃圾回收策略结束,再一次使用分布式局部垃圾回收策略。
8.如权利要求2所述的实时闪存转换层使用的自适应局部垃圾回收方法,其特征是,所述Egc是触发集中式局部垃圾回收策略的阈值,故在触发集中式局部垃圾回收策略后,在任何情况下Egc都需要满足后续的写操作;
经过
Figure FDA00003628703000031
次写请求之后,
Figure FDA00003628703000032
个物理块被分配,并且在此过程中至少有
Figure FDA00003628703000033
个块被回收,因此在集中式的垃圾回收过程被触发时系统中至少有
Figure FDA00003628703000034
个空块,由此得出公式1.2:
Figure FDA00003628703000035
故在最坏情况下,要满足系统要求,Egc必须大于等于
CN201310339508.XA 2013-08-06 2013-08-06 实时闪存转换层使用的自适应局部垃圾回收方法 Expired - Fee Related CN103365788B (zh)

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 true CN103365788A (zh) 2013-10-23
CN103365788B 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)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701035A (zh) * 2014-12-12 2016-06-22 爱思开海力士有限公司 数据储存器件及其操作方法
CN106155935A (zh) * 2016-07-05 2016-11-23 深圳市瑞耐斯技术有限公司 固态硬盘闪存的垃圾回收方法及装置
CN106294195A (zh) * 2016-07-19 2017-01-04 深圳市瑞耐斯技术有限公司 一种3d闪存的控制方法和系统
CN106354658A (zh) * 2016-08-29 2017-01-25 成都三零嘉微电子有限公司 一种降低混合映射算法中映射表内存资源占用的方法
CN106354660A (zh) * 2016-08-30 2017-01-25 深圳市先天海量信息技术有限公司 固态存储设备的垃圾回收方法及装置
CN108038026A (zh) * 2017-11-17 2018-05-15 中国科学院信息工程研究所 一种基于闪存的数据快速恢复方法与系统
CN108334284A (zh) * 2017-01-20 2018-07-27 三星电子株式会社 尾延迟感知前台垃圾收集算法
CN108733322A (zh) * 2017-04-25 2018-11-02 三星电子株式会社 用于多流垃圾收集的方法
CN108733319A (zh) * 2017-04-17 2018-11-02 桑迪士克科技有限责任公司 用于非易失性存储器中的混合推拉数据管理的系统和方法
CN109491606A (zh) * 2018-11-01 2019-03-19 郑州云海信息技术有限公司 一种全闪存储空间管理方法、系统、设备及计算机介质
CN109558333A (zh) * 2017-09-27 2019-04-02 北京忆恒创源科技有限公司 具有可变额外存储空间(op)的固态存储设备命名空间
WO2019062370A1 (zh) * 2017-09-30 2019-04-04 华为技术有限公司 一种存储系统中垃圾回收的方法及装置
CN110515859A (zh) * 2019-07-09 2019-11-29 杭州电子科技大学 一种固态硬盘读写请求并行处理方法
CN110858121A (zh) * 2018-08-23 2020-03-03 阿里巴巴集团控股有限公司 后台操作的调度方法及装置
CN111258924A (zh) * 2020-01-17 2020-06-09 中国科学院国家空间科学中心 一种基于星载固态存储系统自适应闪存转换层的映射方法
CN111949558A (zh) * 2019-05-16 2020-11-17 北京兆易创新科技股份有限公司 一种垃圾数据回收方法、装置和存储设备

Citations (6)

* Cited by examiner, † Cited by third party
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
US20120072639A1 (en) * 2010-09-20 2012-03-22 Seagate Technology Llc Selection of Units for Garbage Collection in Flash Memory
CN103034586A (zh) * 2012-11-30 2013-04-10 记忆科技(深圳)有限公司 通过闪存转换层识别上层应用的方法及其系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
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
US20120072639A1 (en) * 2010-09-20 2012-03-22 Seagate Technology Llc Selection of Units for Garbage Collection in Flash 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 记忆科技(深圳)有限公司 通过闪存转换层识别上层应用的方法及其系统

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701035A (zh) * 2014-12-12 2016-06-22 爱思开海力士有限公司 数据储存器件及其操作方法
CN105701035B (zh) * 2014-12-12 2021-04-02 爱思开海力士有限公司 数据储存器件及其操作方法
CN106155935A (zh) * 2016-07-05 2016-11-23 深圳市瑞耐斯技术有限公司 固态硬盘闪存的垃圾回收方法及装置
CN106294195A (zh) * 2016-07-19 2017-01-04 深圳市瑞耐斯技术有限公司 一种3d闪存的控制方法和系统
CN106294195B (zh) * 2016-07-19 2019-06-21 深圳市领存技术有限公司 一种3d闪存的控制方法和系统
CN106354658B (zh) * 2016-08-29 2019-02-01 成都三零嘉微电子有限公司 一种降低混合映射算法中映射表内存资源占用的方法
CN106354658A (zh) * 2016-08-29 2017-01-25 成都三零嘉微电子有限公司 一种降低混合映射算法中映射表内存资源占用的方法
CN106354660A (zh) * 2016-08-30 2017-01-25 深圳市先天海量信息技术有限公司 固态存储设备的垃圾回收方法及装置
CN108334284A (zh) * 2017-01-20 2018-07-27 三星电子株式会社 尾延迟感知前台垃圾收集算法
CN108334284B (zh) * 2017-01-20 2023-07-11 三星电子株式会社 尾延迟感知前台垃圾收集算法
CN108733319A (zh) * 2017-04-17 2018-11-02 桑迪士克科技有限责任公司 用于非易失性存储器中的混合推拉数据管理的系统和方法
CN108733319B (zh) * 2017-04-17 2020-06-16 桑迪士克科技有限责任公司 用于非易失性存储器中的混合推拉数据管理的系统和方法
CN108733322A (zh) * 2017-04-25 2018-11-02 三星电子株式会社 用于多流垃圾收集的方法
CN108733322B (zh) * 2017-04-25 2024-04-12 三星电子株式会社 用于多流垃圾收集的方法
CN109558333B (zh) * 2017-09-27 2024-04-05 北京忆恒创源科技股份有限公司 具有可变额外存储空间的固态存储设备命名空间
CN109558333A (zh) * 2017-09-27 2019-04-02 北京忆恒创源科技有限公司 具有可变额外存储空间(op)的固态存储设备命名空间
WO2019062370A1 (zh) * 2017-09-30 2019-04-04 华为技术有限公司 一种存储系统中垃圾回收的方法及装置
CN108038026B (zh) * 2017-11-17 2021-11-30 中国科学院信息工程研究所 一种基于闪存的数据快速恢复方法与系统
CN108038026A (zh) * 2017-11-17 2018-05-15 中国科学院信息工程研究所 一种基于闪存的数据快速恢复方法与系统
CN110858121A (zh) * 2018-08-23 2020-03-03 阿里巴巴集团控股有限公司 后台操作的调度方法及装置
CN110858121B (zh) * 2018-08-23 2023-07-11 阿里巴巴集团控股有限公司 后台操作的调度方法及装置
CN109491606A (zh) * 2018-11-01 2019-03-19 郑州云海信息技术有限公司 一种全闪存储空间管理方法、系统、设备及计算机介质
CN109491606B (zh) * 2018-11-01 2021-10-15 郑州云海信息技术有限公司 一种全闪存储空间管理方法、系统、设备及计算机介质
CN111949558A (zh) * 2019-05-16 2020-11-17 北京兆易创新科技股份有限公司 一种垃圾数据回收方法、装置和存储设备
CN111949558B (zh) * 2019-05-16 2023-11-21 兆易创新科技集团股份有限公司 一种垃圾数据回收方法、装置和存储设备
CN110515859A (zh) * 2019-07-09 2019-11-29 杭州电子科技大学 一种固态硬盘读写请求并行处理方法
CN110515859B (zh) * 2019-07-09 2021-07-20 杭州电子科技大学 一种固态硬盘读写请求并行处理方法
CN111258924B (zh) * 2020-01-17 2021-06-08 中国科学院国家空间科学中心 一种基于星载固态存储系统自适应闪存转换层的映射方法
CN111258924A (zh) * 2020-01-17 2020-06-09 中国科学院国家空间科学中心 一种基于星载固态存储系统自适应闪存转换层的映射方法

Also Published As

Publication number Publication date
CN103365788B (zh) 2016-01-13

Similar Documents

Publication Publication Date Title
CN103365788B (zh) 实时闪存转换层使用的自适应局部垃圾回收方法
CN102163175B (zh) 一种基于局部性分析的混合地址映射方法
CN104636285B (zh) 一种闪存存储系统及其读写、删除方法
CN101477492B (zh) 一种用于固态硬盘的循环重写闪存均衡方法
CN101169751B (zh) 具有闪存设备的系统及其数据恢复方法
CN106547703B (zh) 一种基于块组结构的ftl优化方法
CN102508788B (zh) Ssd及ssd垃圾回收方法和装置
CN101278267B (zh) 具有经调度回收操作的非易失性存储器
CN106502587B (zh) 硬盘数据管理方法和硬盘控制装置
CN109582593B (zh) 一种基于计算的ftl地址映射读、写方法
CN100501868C (zh) 基于NAND Flash存储器文件系统的实现方法
CN103336744A (zh) 一种固态存储设备的垃圾回收方法及其系统
CN102841851A (zh) 闪存管理方法和闪存设备
CN102981963A (zh) 一种固态盘的闪存转换层的实现方法
CN104166634A (zh) 一种固态盘系统中的映射表缓存管理方法
CN106528438A (zh) 一种固态存储设备的分段式垃圾回收方法
CN103455435A (zh) 数据写入方法及装置
CN107015763A (zh) 混合存储系统中ssd管理方法及装置
CN101968755B (zh) 一种自适应应用负载变化的快照生成方法
CN104598386B (zh) 通过追踪和利用二级映射索引重复利用固态驱动器块
CN109710541B (zh) 针对NAND Flash主控芯片Greedy垃圾回收的优化方法
Wu et al. An adaptive flash translation layer for high-performance storage systems
CN103744798A (zh) 固态硬盘的垃圾回收方法
CN106227598A (zh) 一种缓存资源的回收方法
CN105204783B (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160113

Termination date: 20160806