CN104598386B - 通过追踪和利用二级映射索引重复利用固态驱动器块 - Google Patents

通过追踪和利用二级映射索引重复利用固态驱动器块 Download PDF

Info

Publication number
CN104598386B
CN104598386B CN201310529526.4A CN201310529526A CN104598386B CN 104598386 B CN104598386 B CN 104598386B CN 201310529526 A CN201310529526 A CN 201310529526A CN 104598386 B CN104598386 B CN 104598386B
Authority
CN
China
Prior art keywords
logical block
address
page
slm
index
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.)
Active
Application number
CN201310529526.4A
Other languages
English (en)
Other versions
CN104598386A (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.)
Infineon Technologies North America Corp
Original Assignee
Infineon Technologies North America Corp
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 Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Priority to CN201310529526.4A priority Critical patent/CN104598386B/zh
Priority to US14/092,285 priority patent/US9606912B2/en
Publication of CN104598386A publication Critical patent/CN104598386A/zh
Application granted granted Critical
Publication of CN104598386B publication Critical patent/CN104598386B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种固态驱动器的重复利用的方法。该方法包括为重复利用选择逻辑快,所述逻辑块包括多个跨越多个闪存裸片的页面。该方法还包括检索与为重复利用选择的逻辑快相关联的地址映射索引记录。对每个储存在地址映射索引记录中的地址映射索引,该重复利用的方法检索具体的地址映射索引引用的一组地址映射条目,确定是否逻辑块内的任何页面被该组地址映射条目引用,如果逻辑块内至少一个页面被该组地址映射条目引用,该方法将这至少一个页面写入一不同的逻辑块。该方法进一步包括清除逻辑块内的所述多个页面。

Description

通过追踪和利用二级映射索引重复利用固态驱动器块
技术领域
本发明涉及数据存储领域,尤其涉及固态存储设备。
背景技术
固态驱动器(SSD)是利用集成电路组件作为存储器来持久储存数据的数据存储设备。SSD没有活动的机械组件,使它与传统的机电磁盘,如硬盘驱动器或是软盘,区分开来。与机电磁盘相比,SSDs典型地不易受物理震动的影响,运行更平稳,存取时间和等待时间更短。
发明内容
相应的,本公开的一个实施例是固态驱动器的重复利用方法。该方法包括为重复利用选择一个逻辑块,其中,该逻辑块包括多个跨越多个闪存裸片(die)的页面。该方法还包括检索与为重复利用而选择的逻辑块相关联的地址映射索引记录。对存储在地址映射索引记录的每个具体的地址映射索引,该重复利用方法检索一组引用该具体地址映射索引的地址映射条目,决定是否在逻辑块中的每个页面被该组地址映射条目引用,并且如果至少一个在逻辑块中的页面被该组地址映射条目引用,则该方法将该至少一个页面写入一个不同的逻辑块。该方法进一步包括清除逻辑块内的多个页面。
该公开的另一个实施例是利用二级映射追踪逻辑地址到物理地址映射的固态驱动器的重复利用方法。该方法包括为重复利用选择一个逻辑块,该逻辑块包括多个跨越多个闪存裸片的页面。该方法还包括检索与为重复利用而选择的逻辑块相关联的二级映射(SLM)索引记录。对每个具体的存储在SLM索引记录中的SLM索引,重复利用方法检索一个被该具体SLM索引引用的SLM页面,确定是否在该逻辑块内的每个页面都被SLM页面内的映射条目引用,并且如果在该逻辑块内的至少一个页面被SLM页面中的映射条目引用,则该方法写入该至少一个页面到另一个不同的逻辑块中。该方法进一步包括清除逻辑块内的所述多个页面。
该公开的另一个实施例是一个固态驱动器。该固态驱动器包括多个闪存裸片。该多个闪存裸片的每个闪存裸片包括多个块,并且该多个块的每个块进一步包括多个提供数据存储的多个页面。该固态驱动器还包括用于管理固态驱动器的回收利用操作的控制器。该重复利用操作以逻辑块为单位执行,并且该控制器依照前边所述的重复利用方法执行该重复利用过程。
上述的概括说明和以下的详细说明都应该被理解为是该发明的典型例子和起解释作用的例子,并不能限制本发明。包含在说明书内并组成说明书的一部分的图示,阐述了该发明的具体实施例,并和概括说明共同解释该发明的原料。
附图简要说明
通过参考下列附图,本领域技术人员可更好地理解本发明多个特点:
图1是本实施例所述的固态驱动器的数据块的示意图;
图2是本实施例所述的管理的逻辑块和/或逻辑文件段的多个闪存裸片(dies)/闪存芯片的块和页面的示意图(参考R-块);
图3是本实施例所述的物理地址映射的二级逻辑地址;
图4是本实施例所述的管理R块的多个闪存裸片/闪存芯片的块和页面以及储存二级映射(SLM)索引记录的指定储存区域的示意图;
图5是本实施例所述的R-块以及R-块的SLM索引记录和SLM页面的关系示意图;
图6是本实施例所述的基于R-块的重复利用程序的SLM索引记录的流程示意图。
具体实施方式
现在根据附图对所公开的实施例进行详细说明。
固态驱动器(SSD)利用集成电路组件作为存储器来持久储存数据。比如,闪存设备(例如,NAND型闪存以及类似设备)可以作为储存媒介。NAND型闪存将信息存储在由浮栅晶体管制备的阵列存储单元内。传统的单级单元(SLC)设备中每个单元仅存储一比特信息。一些新的闪存,比如多级单元(MLC)设备,包括三级单元(TLC)设备,通过选择多能级电荷应用到单元浮栅中可以使每个单元储存更多的信息。
一个典型的闪存包括多个块,而且每个块包括多个页面。基本的闪存读/写单元是在典型的实现中有8KB的页面。在传统的实现中,在数据被写入一个具体的页面之前,该页面应首先被清除,并且一次一块执行清除程序。因此,当新数据需要被重新写入一个具体页面时,包括该具体页面的整个块必须首先被清除。可以预期上述引用的页面可以使用物理页面地址方案或是逻辑页面地址(LPA)方案而得到解决。
图1是一组发给闪存的写请求的示意图。比如,在102情况下,逻辑页面地址0被写入页面0。随后,逻辑页面地址4和逻辑页面地址10被分别写入页面1和页面2。如果数据请求者(比如,主机)需要再次写入逻辑页面地址0,新的数据需要被写入另一个页面。在该实例中,新的数据被写入如图所示的104所引用的页面3。此时,逻辑页面地址0存储在页面3中,当下次主机读取逻辑页面地址0时,SSD的固件知道应该从页面3而不是页面0中读取(也就是,第一种情况不再有效)。在这种情况下,包含在页面0中的数据被称为垃圾。
值得注意的是,储存不再有效的数据实例的页面在被释放/清除之前是不可用的。然而,当数据以页面(由多个单元组成)为单位写入SSD时,只能以被称为块(由多个页面组成)的大单位来清除SSD。此外,在某些实施例中,如图2,在逻辑片和/或逻辑段中管理位于跨越不同闪裸片/闪存晶芯片的块中的多个页面。在本公开中,这些逻辑片和/或逻辑段被称为R-块(或逻辑块)。如图2所示,R块作为贯穿一个闪存200的所有芯片的逻辑片或是逻辑段。比如,在一个有R闪存裸片的SSD中,每个闪存裸片有N个块,来自每个闪存裸片的每个R-块作为第i个块聚集在一起,作为一个总数为N的R-块。再比如,在一个有R闪存裸片的SSD中,每个R闪存裸片都有N个块,每个R-块作为来自于每个闪存裸片第i个和i+1个块,作为一个总数为N/2的R-块。上述的R-块是为了说明问题是可以预期的。在不脱离本公开的思想和范围情况下,在逻辑片或是逻辑块中,可以通过其他各式各样的方式安排和管理贯穿至少两个闪存裸片的块。
当主机(数据请求者)连续向SSD中写入数据时,大量逻辑页面地址(LPAs)会被重写,并且每个重写的逻辑页面地址会被存储在不同的位置。为了正常运行,SSD固件/控制器(以下被称为控制器)必须追踪逻辑页面地址的最新的位置。在某些实施例中,地址映射被维护以记录逻辑页面地址和它们的物理地址之间的映射。
用上述R-块安排和管理SSD,逻辑页面地址和它们的物理地址之间的映射通过二级(或多级)映射维护是可预想到的。比如,如图3所示,第一层映射(FLM)302可以被用于存储多个第二级映射(SLM)页面304的物理地址,每一个SLM页面304均可以被用于存储一组逻辑到物理地址映射条目。以这种方式,为一个具体的LPA获取物理地址信息,较小FLM页面可以被快速访问以定位一个具体的包含该具体的LPA物理地址信息的SLM页面。然后该具体的SLM页面可以被访问以获取相应的物理地址信息。
可以注意到,为了清晰,在本公开中用于存储一组逻辑到物理地址映射条目的SLM页面被称为“SLM页面”,以区别于在SSD中的页面(如,图1和2所示)在SSD中的页面被称为“存储页面”,“主机页面”,或“页面”。
还可以注意到,SSD控制器需要时常执行被称为重复利用或垃圾回收的程序以重复利用可用空间。在实施过程中,用R-块安排和管理SSD以重复利用一个具体的原始R-块,SSD控制器需要从原始R-块中找到所有有效的页面并且将它们转移到一个不同的R-块,然后,该原始R-块可以作为一个自由的R-块被清除和重新利用。然而,在给定R-块中的有效页面和它们的位置不容易被确定,尤其当使用一个多级映射时。
本公开的实施例都是关于重复利用固态驱动器中R-块的方法和系统,在一个实施例中,一个与每个R-块相关联的SLM索引记录被用于协助识别在每个具体R-块中的有效主机页面。通过追踪和利用SLM目录,重复利用程序中的识别有效主机页面过程被简化,因此提高了重复利用程序的整体效率。
与本公开的实施例相一致,当一个新的R-块被写入时,SLM索引记录生成。也就是说,当R-块被写入时,包括在R-块中涉及主机页面的地址映射条目的任何一个SLM页面都应该被记录。更具体的,SLM页面的SLM目录应该被插入到该R-块的SLM索引记录。应该注意到,术语“索引”涉及能够用于识别、参考或是指向一个具体SLM页面的任何标识符。在一实施例中,SSD中的每个R-块均与它自己的SLM索引记录单独关联,并且不同R-块的SLM索引记录分开管理。这就允许SSD控制器在需要时能够为任意一个已知R-块在任何时间快速访问任意一个具体的SLM索引记录。
SLM索引记录可以被储存在SSD控制器拥有的任意存储媒介中是可以被预期的。在一实施例中,如图4所示,SLM索引记录被存储在一个或多个位于闪存裸片400的一个或多个指定块402中的保留页面中。然而,不脱离本公开的思想和范围情况下,SLM索引记录可以被保存在闪存裸片400之外的不同的存储媒介中,只要该存储媒介属于SSD控制器404。
只要映射信息随着被写入到R-块的新数据改变,已知R-块的SLM索引记录也需要维护/更新。在一实施例中,这些SLM索引记录随着一后台进程被更新。比如,如果系统闲置或主机主要发布读命令,重复利用程序不太可能被发起,并且SSD控制器可以不失时机的开始更新SLM索引记录。
还应该注意的是,因为SSD中有多个R-块,而且每个R-块都有自己的SLM索引记录,可以建立一个控制SLM索引记录更新序列的命令。在本公开的某些实施例的实施过程中,最有可能被先重复利用的R-块的SLM索引记录被更新。
更具体的,SSD控制器为每个R-块维持一个有效页面数的记录。以表格或类似表格的数据机构维持该记录,被称为有效页面数(VPC)表。每当收到一个具体页面的写请求时,SSD控制器会首先决定是否该页面之前被写过。如果它之前被写过,SSD控制器会找出包含该具体页面的R-块并用1减去VPC表中该块的有效页面数。然后SSD控制器将该页面写入一个新的R-块,并且在该VPC表中生成一个新的VPC条目以追踪该新的R-块的有效页面数。
通常,SSD重复利用程序优先重复利用一个低VPC的R-块,因为需要被转移到新的R-块中的有效页面数比较低。因此,SSD控制器可以挑选几个候选的基于最新的VPC有可能被重复利用的R-块,并且按该顺序更新它们的SLM索引记录。此外/可选择的,SSD控制器根据记录在每个SLM索引记录中的有效SLM目录数可以创建排序。比如,在一实施例中,R-块的原始VPC被记录在它的SLM索引记录中。如果SLM索引记录(原始VPC)中记录的VPC减去R-块中现在的超出极限值,那就意味着在该R-块中的很多页面现在是无效的,并且更新该具体SLM索引记录将会转移很多原来记录在该SLM索引记录中的SLM目录,但将不再有效。
一旦SSD控制器挑选一个具体的SLM索引记录更新,更新该SLM索引记录的程序可以以下述方法实施。参考图5,将挑选的SLM索引记录更新为“记录R”。更具体的,对于被SLM索引1引用的SLM页面,如果没有一个存储在该映射任何属于“块B”的物理地址的SLM页面中的映射条目,这就意味着存储在该SLM页面中的地址映射条目不需要存储在“块B”中的数据,并且涉及到该SLM页面的SLM索引1应该从“记录R”中移除。否则,如果存储在该SLM页面中的一些映射条目依然映射一个或多个属于“块B”的物理地址,SLM索引1可以照常位于“记录R”中。该程序为存储在“记录R”中的所有SLM目录继续。
当该更新程序完成后,不涉及存储在“块B”中的数据的SLM页面不再被任何存储在“记录R”中的SLM目录一样。换句话说,依照本公开的实施例重复利用一个具体的R-块,只有被存储在该具体R-块的SLM索引记录引用的SLM页面需要考虑。图6详细图解了基于R-块重复利用程序的SLM索引记录。
如下图所示,在重复利用的步骤602中选择一个候选R-块,并且在一实施例中,该候选R-块根据上述的有效页数被选择。一旦该R-块被选择,该R-块的SLM索引记录在步骤604中被检索,并且存储在SLM索引记录中的第一个SLM索引记录随后在步骤606中被检索。被检索的SLM索引引用的SLM页面接着在步骤608中被存取,并且在步骤610中,在该SLM页面中的每个映射条目与R-块做对比以决定是否该映射条目参考了属于为重复利用而选择的R-块的位置。如果存储在该SLM页面的一个或多个映射条目参考一个或多个属于该R-块的位置,这些地址的物理地址在步骤612中被获取,并且存储在这些位置中的数据被转移到另外一个R-块614中。在步骤616中,该重复利用程序继续检索存储在该SLM索引记录中的下一个SLM索引,并且从步骤608开始重复该过程直到所有存储在该SLM索引记录中的SLM目录都被处理完。该重复利用程序在步骤608中结束,并且在此时,为重复利用选择的R-块可以被清除。
很容易想到,决定存储在一个SLM页面中的一个或多个映射条目是否参考一个或多个属于一个具体的R-块的一个或多个位置可以通过多种方式实现。比如,在系统中的每个R-块可以得到一个唯一的标识符,并且在该SLM页面中的每个映射条目可以记录属于该R-块的标识符。这使得匹配的R-块标识符很快的被识别。可选择的,可以知道属于一个R-块的物理地址,并且可以通过记录在映射条目中的物理地址与已知属于R-块的物理地址之间的对比确定是否在SLM页面中的映射条目映射该R-块。在不脱离本公开的思想和范围的情况下,可以利用其他的技术决定存储在一个SLM页面中的一个或多个映射是否映射一个或多个属于一个具体R-块的物理地址。
可以注意到,根据本公开实施例的R-块重复利用程序的SLM索引记录不要求SSD控制器扫描整个的R-块以确定有效页面。SSD控制器也不需要读取与被重复利用的R-块的所有逻辑地址有关的所有SLM页面,只需要与R-块相关联的以及没有被上述更新程序无效的页面。
很容易想到,已知R-块的SLM索引记录内的索引数据会不断增加。比如,如果主机在相同的R-块中写入到了不同的页面,比如一个随机书写,需要被记录在该R-块内SLM索引记录中的索引数据的总量会相应的增长。在一些事实例中,一但存储在已知R-块的SLM索引记录中的索引数据总量超过已确定的极限值,该具体R-块的SLM索引记录可以被忽视并且储存该具体R-块的SLM索引记录的指定存储媒介可以有条件的被认为无效。应该注意到,因为SSD中的每个R-块管理自己的SLM索引记录,也可以单独做出比如是否忽视R-块的SLM索引记录的决定。以这种方式,当其他R-块可以根据上述重复利用程序利用SLM索引记录时,有有条件的被认为无效的SLM索引记录的R-块可以根据重复利用程序忽视该SLM索引记录。
还可以容易想到,当在上述一个实例中描述一个二级映射(SLM)时,这样说明就具有解释性。上述的一个SLM页面包括一组地址映射条目,并且在不脱离本公开的思想和范围情况下,各种其他关系可以被应用以适用于一组地址条目。相似的,SLM索引通常可以被称为地址映射索引,并且SLM索引记录通常可以被称为地址映射索引记录。
进一步,还可以容易想到,说明书中诸如映射和表治疗的数据结构仅仅具有解释作用。在不脱离本公开的思想和范围情况下,比如列表和列表之类的各种数据结构也可以被用作记录和追踪目的。
前边公开的方法中具体的命令或步骤的层级是典型处理方法的例子。根据设计偏好,当保持在本发明的范围内,方法中具体的命令或步骤的层级可以被重排。附加的方法权利要求在一个样本命令中给出了各种步骤的原理,并不意味着限制在具体的命令或是层级中。
相信通过上述说明已了解本发明以及伴随的多个特点。而且很明显的,在不脱离本发明的思想以及范围,或不牺牲所有材料优势的情况下,部件的形式、结构和安排可以有各种改变。上述形式仅仅是它的一个解释性的实施例,权利要求的目的是围绕或包含这些变化。

Claims (20)

1.一种固态驱动器的重复利用方法,该方法包括:
为重复利用选择一逻辑块,所述逻辑块包括多个跨越多个闪存裸片的页面;
检索一地址映射索引记录,该地址映射索引记录与为重复利用选择的所述逻辑块相关联;
对存储在所述地址映射索引记录内的每个具体地址映射索引执行以下步骤:
检索所述具体地址映射索引引用的一组地址映射条目;
处理包含在所述逻辑块内的多个页面中的每一页面且确定包含在该逻辑块内的所述多个页面中的任何页面是否被该组地址映射条目引用;以及
响应确定包含在该逻辑块内的所述多个页面中的至少一个页面被该组地址映射条目引用,将所述至少一个页面写入一不同的逻辑块;以及
清除该逻辑块内的所述多个页面。
2.根据权利要求1所述的方法,其中该地址映射通过利用二级映射实现且每组地址映射条目被组织成二级映射页面。
3.根据权利要求1所述的方法,其进一步包括:
当该逻辑块被写入时,在与该逻辑块相关联的所述地址映射索引记录中记录所述至少一个地址映射索引,所述至少一个地址映射索引引用至少一个引用该逻辑块中的页面的地址映射条目。
4.根据权利要求1所述的方法,其进一步包括:
更新与该逻辑块相关联的所述地址映射条目记录。
5.根据权利要求4所述的方法,其中更新与该逻辑块相关联的所述地址映射条目记录包括:
检索与该逻辑块相关联的所述地址映射条目记录;
对存储在所述地址映射索引记录内的每个具体地址映射索引执行以下步骤:
检索所述具体地址映射索引引用一组地址映射条目;
确定是否该逻辑块内的任何页面被该组地址映射条目引用;以及
响应确定没有页面被该组地址映射条目引用,将该具体地址映射索引从所述地址映射索引记录中移除。
6.根据权利要求1所述的方法,其中所述固态驱动器包括多个逻辑块,所述多个逻辑块中的每个逻辑块与一地址映射索引记录唯一地关联。
7.根据权利要求6所述的方法,其中为选择至少一个地址映射索引记录进行更新制定一选择标准,该选择标准包括以下至少一个:与所述地址映射索引记录相关联的所述逻辑块的有效页面数,或与所述地址映射索引记录相关联的所述逻辑块的原始有效页面数和当前有效页面数之间的差。
8.一种固态驱动器的重复利用的方法,该固态驱动器利用二级映射以追踪逻辑地址到物理地址映射,该方法包括:
为重复利用选择一逻辑块,所述逻辑块包括多个跨越多个闪存裸片的页面;
检索与为重复利用选择的该逻辑块相关联的二级映射SLM索引记录;
对存储在所述二级映射SLM索引记录的每个具体SLM索引执行以下步骤:
检索被所述具体SLM索引引用的SLM页面;
处理包含在所述逻辑块内的多个页面中的每一页面且确定包含在该逻辑块内的所述多个页面中的任何页面是否被所述SLM页面内的映射条目引用;以及
响应确定包含在该逻辑块内的所述多个页面中的至少一个页面被所述SLM页面的映射条目引用,将所述至少一个页面写入到一不同的逻辑块;以及
清除该逻辑块内的所述多个页面。
9.根据权利要求8所述的方法,其进一步包括:
当该逻辑块被写入时,记录至少一个与该逻辑块相关联的所述SLM索引记录内的SLM索引,所述至少一个SLM索引引用至少一个引用该逻辑块内的页面的SLM页面。
10.根据权利要求8所述的方法,其进一步包括:
更新与该逻辑块相关联的所述SLM索引记录。
11.根据权利要求10所述的方法,其中更新与该逻辑块相关联的所述SLM索引记录包括:
检索与该逻辑块相关联的所述SLM索引记录;
对存储在所述SLM索引记录内的每个具体SLM索引执行以下步骤:
检索被所述具体SLM索引引用的SLM页面;
确定是否该逻辑块内的任何页面被所述SLM页面内的映射条目引用;以及
响应确定该逻辑块内没有页面被所述SLM页面内的映射条目引用,将所述具体SLM索引从所述SLM索引记录中移除。
12.根据权利要求8所述的方法,其中所述固态驱动器包括多个逻辑块,所述多个逻辑块中的每个逻辑块与一SLM索引记录唯一地关联。
13.根据权利要求12所述的方法,其中为选择至少一个SLM索引记录进行更新制定一选择标准,该选择标准包括至少一个:与所述SLM索引记录相关联所述逻辑块的有效页面数,或与所述SLM索引记录相关联的所述逻辑块的原始有效页面数与当前有效页面数之间的差。
14.一种固态驱动器,所述固态驱动器包括:
多个闪存裸片,所述多个闪存裸片中的每个闪存裸片包括多个块,所述多个块中的每个块进一步包括多个用于提供数据存储的页面;以及
一控制器,其用于管理所述固态驱动器的重复利用操作,其中所述重复利用操作以逻辑块为单位执行,其中每个逻辑块包括跨越所述多个闪存裸片的至少一个子集的多个页面,和其中当接收一重复利用请求时,所述控制器经配置用以:
为重复利用选择一逻辑块;
检索与为重复利用选择的所述逻辑块相关联的一地址映射索引记录;
对存储在所述地址映射索引记录内的每个具体地址映射索引执行以下步骤:
检索所述具体地址映射索引引用的一组地址映射条目;
处理包含在所述逻辑块内的多个页面中的每一页面且确定包含在所述逻辑块内的所述多个页面中的任何页面是否被该组地址映射条目引用;以及
响应包含在所述逻辑块内的所述多个页面中的至少一个页面被该组地址映射条目引用,将所述至少一个页面写入一不同的逻辑块;以及
清除所述逻辑块内的所述多个页面。
15.根据权利要求14所述的固态驱动器,其中所述地址映射利用二级映射,且每组地址映射条目被组织成二级映射页面。
16.根据权利要求14所述的固态驱动器,其中所述控制器进一步经配置用以:
当所述逻辑块被写入时,记录与所述逻辑块相关联的所述地址映射索引记录内的至少一个地址映射索引,所述至少一个地址映射索引引用至少一个引用所述逻辑块内的页面的地址映射条目。
17.根据权利要求14所述的固态驱动器,其中所述控制器进一步经配置用以:
更新与所述逻辑块相关联的所述地址映射索引记录。
18.根据权利要求17所述的固态驱动器,其中所述控制器通过执行以下步骤更新所述地址映射索引记录:
检索与所述逻辑块相关联的所述地址映射索引记录;
对存储在所述地址映射索引记录内的每个具体地址映射索引执行以下步骤:
检索所述具体地址映射索引引用的一组地址映射条目;
确定是否所述逻辑块内的任何页面被该组地址映射条目引用;以及
响应确定所述逻辑块内没有页面被该组地址映射条目引用,将所述具体地址映射索引从所述地址映射索引记录中移除。
19.根据权利要求14所述的固态驱动器,其中所述固态驱动器包括多个逻辑块,所述多个逻辑块中的每个逻辑块与一地址逻辑索引记录唯一地关联。
20.根据权利要求19所述的固态驱动器,其中为选择至少一个地址映射索引记录进行更新制定一选择标准,该选择标准包括以下至少一个:与所述地址映射索引记录相关联的所述逻辑块的有效页面数,或与所述地址映射索引记录相关联的所述逻辑块的原始有效页面数与当前有效页面数之间的差。
CN201310529526.4A 2013-10-31 2013-10-31 通过追踪和利用二级映射索引重复利用固态驱动器块 Active CN104598386B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310529526.4A CN104598386B (zh) 2013-10-31 2013-10-31 通过追踪和利用二级映射索引重复利用固态驱动器块
US14/092,285 US9606912B2 (en) 2013-10-31 2013-11-27 Tracking and utilizing second level map index for recycling of solid state drive blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310529526.4A CN104598386B (zh) 2013-10-31 2013-10-31 通过追踪和利用二级映射索引重复利用固态驱动器块

Publications (2)

Publication Number Publication Date
CN104598386A CN104598386A (zh) 2015-05-06
CN104598386B true CN104598386B (zh) 2018-03-27

Family

ID=52996784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310529526.4A Active CN104598386B (zh) 2013-10-31 2013-10-31 通过追踪和利用二级映射索引重复利用固态驱动器块

Country Status (2)

Country Link
US (1) US9606912B2 (zh)
CN (1) CN104598386B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552335B2 (en) * 2015-09-25 2020-02-04 Beijing Lenovo Software Ltd. Method and electronic device for a mapping table in a solid-state memory
CN105224478B (zh) * 2015-09-25 2019-01-22 北京联想核芯科技有限公司 一种映射表的形成、更新和恢复方法及电子设备
US10001924B2 (en) * 2016-03-07 2018-06-19 HGST Netherlands B.V. Efficient and dynamically sized reverse map to handle variable size data
KR102671760B1 (ko) * 2016-12-27 2024-06-05 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
US11048624B2 (en) * 2017-04-25 2021-06-29 Samsung Electronics Co., Ltd. Methods for multi-stream garbage collection
CN108228339B (zh) * 2017-07-28 2021-08-13 珠海市魅族科技有限公司 一种内存回收方法及装置、终端设备及计算机可读存储介质
KR102659036B1 (ko) * 2018-07-11 2024-04-22 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US10877900B1 (en) * 2019-06-26 2020-12-29 Western Digital Technologies, Inc. Enabling faster and regulated device initialization times

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
CN101075211A (zh) * 2007-06-08 2007-11-21 马彩艳 基于sector访问的flash存储器的存储管理
TWI319530B (en) * 2005-06-08 2010-01-11 Micron Technology Inc Robust index storage for non-volatile memory
CN102033938A (zh) * 2010-12-10 2011-04-27 天津神舟通用数据技术有限公司 基于二级映射的集群动态扩展方法
TW201122813A (en) * 2009-12-24 2011-07-01 Univ Nat Taiwan Block management method for a non-volatile memory

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US8566511B2 (en) * 2009-07-23 2013-10-22 Stec, Inc. Solid-state storage device with multi-level addressing
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
EP2302638B1 (fr) * 2009-09-21 2013-04-17 STMicroelectronics (Rousset) SAS Procédé d'écriture et de lecture de données dans une mémoire non volatile, au moyen de métadonnées
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
US8677203B1 (en) * 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
WO2012051600A2 (en) * 2010-10-15 2012-04-19 Kyquang Son File system-aware solid-state storage management system
US8972650B2 (en) * 2011-01-28 2015-03-03 Apple Inc. Methods and systems for performing efficient page reads in a non-volatile memory
WO2012161659A1 (en) * 2011-05-24 2012-11-29 Agency For Science, Technology And Research A memory storage device, and a related zone-based block management and mapping method
JP5697796B2 (ja) * 2011-08-29 2015-04-08 株式会社日立製作所 電気的に書き換え可能な不揮発性半導体メモリを有する半導体記憶装置
US10803970B2 (en) 2011-11-14 2020-10-13 Seagate Technology Llc Solid-state disk manufacturing self test
US9323667B2 (en) * 2012-04-12 2016-04-26 Violin Memory Inc. System and method for managing trim operations in a flash memory system using mapping tables and block status tables
US9244833B2 (en) * 2012-05-30 2016-01-26 Silicon Motion, Inc. Data-storage device and flash memory control method
KR20140038110A (ko) * 2012-09-20 2014-03-28 한국전자통신연구원 파일 시스템 관리 방법 및 이를 이용하는 장치
US9489297B2 (en) * 2013-01-21 2016-11-08 Sandisk Technologies Llc Pregroomer for storage array

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
TWI319530B (en) * 2005-06-08 2010-01-11 Micron Technology Inc Robust index storage for non-volatile memory
CN101075211A (zh) * 2007-06-08 2007-11-21 马彩艳 基于sector访问的flash存储器的存储管理
TW201122813A (en) * 2009-12-24 2011-07-01 Univ Nat Taiwan Block management method for a non-volatile memory
CN102033938A (zh) * 2010-12-10 2011-04-27 天津神舟通用数据技术有限公司 基于二级映射的集群动态扩展方法

Also Published As

Publication number Publication date
US9606912B2 (en) 2017-03-28
CN104598386A (zh) 2015-05-06
US20150120989A1 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
CN104598386B (zh) 通过追踪和利用二级映射索引重复利用固态驱动器块
CN104298610B (zh) 资料储存系统及其管理方法
CN101477492B (zh) 一种用于固态硬盘的循环重写闪存均衡方法
US7882300B2 (en) Apparatus and method for managing nonvolatile memory
CN101169751B (zh) 具有闪存设备的系统及其数据恢复方法
US20140122774A1 (en) Method for Managing Data of Solid State Storage with Data Attributes
US20170336983A1 (en) Server device including cache memory and method of operating the same
CN101354681B (zh) 存储器系统、非易失性存储器的磨损均衡方法及装置
CN109582593B (zh) 一种基于计算的ftl地址映射读、写方法
TWI399644B (zh) 非揮發記憶體區塊管理方法
US9436615B2 (en) Optimistic data read
CN106502587B (zh) 硬盘数据管理方法和硬盘控制装置
US20100005270A1 (en) Storage unit management methods and systems
CN106548789A (zh) 用于操作叠瓦式磁记录设备的方法和装置
CN104102591A (zh) 计算机子系统及在其中实现闪存转换层的方法
CN103092766A (zh) 一种用于nand flash的均衡损耗实现方法
CN109710541B (zh) 针对NAND Flash主控芯片Greedy垃圾回收的优化方法
CN109086219A (zh) 去分配命令处理方法及其存储设备
CN110968269A (zh) 基于scm与ssd的键值存储系统及读写请求处理方法
CN103970669A (zh) 用于加速在固态设备中的回收操作的物理到逻辑地址映射
CN107817945A (zh) 一种混合内存结构的数据读取方法和系统
CN112130749A (zh) 数据储存装置以及非挥发式存储器控制方法
CN102521144B (zh) 一种闪存转换层系统
CN106569962A (zh) 一种基于增强时间局部性的热点数据识别方法
CN107797938A (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
GR01 Patent grant
GR01 Patent grant