快闪存储器系统及其垃圾收集方法

文档序号:6611812阅读:190来源:国知局
专利名称:快闪存储器系统及其垃圾收集方法
快闪存储器系统及其垃圾收集方法优先权声明本专利申请要求于2006年11月3日提交的韩国专利申请2006-108520的优先权,该申请整个内容在此引入作为参考。技术领域示例实施例涉及存储装置,例如,涉及用于管理非易失性和电可擦除半 导体存储器装置,例如,快闪存储器的装置和方法。
背景技术
非易失性存储器装置可以在没有提供驱动电源的情况下保留存储在单元 (cell)中的数据。在非易失性存储器装置中,快闪存储器因为具有同时电擦 除单元的功能而广泛用于各种应用,例如计算机,存储卡等等。随着对例如 蜂窝电话、PDA、数码相机等等便携式信息装置使用的增加,快闪存储器代 替硬盘被广泛地用作存储装置。快闪存储器可以根据单元和位线的连接结构被分成N OR型和N AND型。 因为读取速度较快而写入操作较慢,因此NOR型快闪存储器可以用作代码存 储器。因为写入速度较快并且单位面积的价格较低,因此NAND型快闪存储 器可以用作大容量存储装置。为了在快闪存储器中写入数据,首先执行擦除 操作,并且快闪存储器可以具有这样一种特性,即擦除单元多于写入单元。 这个特性可能使得将快闪存储器用作主存储器变得更加困难。在快闪存储器 被用作辅助存储装置的情况下,这样一种特性也许会干扰硬盘的文件系统。 因此,可以在文件系统和快闪存储器之间4吏用闪存转换层(flash translation layer)(在下文中称为"FTL"),以便隐藏快闪存储器的擦除操作。FTL的功能可以包括逻辑地址-物理地址映射信息管理、由于意外的电源 中断导致的数据保存管理、磨损(wear-out)管理等等。在标题为"FLASH FILE SYSTEM"的美国专利No. 5404485 、标题为"FLASH FILE SYSTEM OPTIMIZED FOR PAGE MODE FLASH TECHNOLOGIES"的美国专利No.5937425、以及标题为"METHOD OF DRIVING REMAPPING IN FLASH MEMORY AND FLASH MEMORY ARCHITECTURE SUITABLE THEREFOR"的美囯专利No. 6381176中公开了映射函数的例子,它们的整 个内容在此引入作为参考。在通过块单元访问快闪存储器的情况下,快闪存储器被分成多个存储块。 连续分配给存储块的编号称为物理块号,并且用户已知的划分的块的虛拟编 号称为逻辑块号。用于提供在逻辑块号和物理块号之间的映射的技术可以包 括块映射技术、扇区映射技术和日志(log)映射技术。使用FTL的映射技术, 可以把逻辑上连续地址的数据存储在物理上不同的位置。在主机相对于预先写入了数据的逻辑块号发布写入命令的情况下,FTL 可以使用将来自主机的数据写入另 一位置和无效之前写入的数据的技术。由 于这个FTL特性,会创建被无效数据填充的块。在下文中,这样的块称为"垃 圾块"。垃圾块可以被擦除以便转换成可写状态,并且可以被再使用,这被称 作"垃圾收集"或"回收"。快闪存储器的性能可以取决于这种操作执行得有 多快。例如,在由于系统使用时间长而使存储的数据量增加并且可用的保留 块的数目减少的情况中,垃圾收集的性能会变得更加重要。与快闪存储器的性能一样,它的可靠性也是有实际重要性的。快闪存储 器可以反复地编程和擦除,并且每个块的编程-擦除周期会被限制为给定数 量。例如,在认为一个块变得不可用之前,可以执行擦除操作一万次。如果 块磨损,可能会在快闪存储器的部分区域出现性能降低或使用损失。数据损 失或数据存储能力丧失可能会给快闪存储器系统的用户带来坏的影响。快闪存储器系统中的块(或物理位置)的磨损主要由擦除周期确定,并 且快闪存储器可能在大约105次擦除之后不能再用。发明内容示例实施例提供用于更加均匀地将存储块(或物理位置)的寿命周期分 布到快闪存储器的整个区域中以延长快闪存储器的寿命的技术。在示例实施例中,提供垃圾收集方法,其包括将权重应用到至少两个因 子中的每一个以计算垃圾收集成本;使用计算的垃圾收集成本配置散列表; 从散列表中搜索具有最低垃圾收集成本的块;以及对搜索到的块执行垃圾收 集。在示例实施例中,提供一种存储器系统,其包括主机;快闪存储器;以及接口装置,其被配置为响应于来自于主机的快闪存储器的写请求进行操 作,其中依据写请求,接口装置被配置为将权重应用到至少两个或更多因子 中的每一个以计算垃圾收集成本,并且使用计算的垃圾收集成本来配置散列表;并且其中接口装置被配置为从散列表中搜索具有最低垃圾收集成本的块并且对搜索到的块执行垃圾收集。


图1是示出根据示例实施例的快闪存储器系统的方框图。图2是用于描述根振示例实施例的计算垃圾收集成本的方法的流程图。图4是示出图3中举例说明的数据列表的示例图表。图5是用于描述根据示例实施例的垃:欧收集方法的示图。具4本实施方式从结合附图进行的详细说明中将会清楚地理解本发明的示例实施例。现在将参考示出了本发明的一些示例实施例的附图更全面地描述本发明 的各种示例实施例。在附图中,为清楚起见会放大层和区域的厚度。在此公开本发明详细的示例性实施例。然而,在此公开的特定的结构和 功能细节仅仅是代表性的,是为了描述本发明的示例实施例。然而,本发明 可以具体实现为许多可替换的形式,并且本发明不应该被看作是仅仅局限于 这里所阐述的实施例。因此,虽然本发明的示例实施例能够具有各种修改和替代形式,但是仍 在附图中以举例的方式示出了本发明的实施例,并且将在这里对其进行详细 地描述。然而,应该理解的是,没有意图将本发明的示例实施例限制为公开 的具体形式,相反地,本发明示例实施例将覆盖属于本发明范围内的所有修 改、等价物和替换物。在整个对附图的描迷中,类似的号码指示类似的元件。将会理解,尽管可以在这里使用术语第一、第二等等来描述不同的元素, 但这些元素不应该受限于这些术语。这些术语仅仅用于区分一个元素与另一 个元素。例如,第一元素可以被称作第二元素,并且类似地,第二元素也可 以被称作第一元素,而不会脱离本发明示例实施例的范围。正如在这里使用的,术语"和/或"包括一个或多个相关列出项的任意一个及其全部组合。将会理解,当元件被称为是"连接"或"耦合"到另一个元件时,它可 以被直接连接或耦合到另一元件,或者可以存在居间的元件。与此相反,当 元件被称为是"直接连接"或"直接耦合"到另一个元件时,不会存在居间 的元件。其它用于描述元件之间关系的词语应该以相似的方式进行解l奪(例 如,"在...之间"与"直接在...之间"、"相邻"与"直接相邻"等等)。在这里使用的术语仅仅用于描述具体的实施例的目的,并且不意图限制 本发明的示例实施例。正如在这里使用的,除非上下文清楚地指示其它含义, 否则单数形式的"一"、"一个"等意图也包括复数形式。将会进一步理解, 当在这里使用时,术语"包括"和/或"包含"指示所述特征、整体、步骤、 操作、元件和/或组件的存在,但是不排除存在或添加一个或更多其它特征、 整^L、步骤、操作、元件、组件和/或它们的组合。还应注意,在一些可替换的实现方式中,提到的功能/动作可以以附图中 提到的顺序以外的顺序发生。例如,取决于所涉及的功能/动作,连续示出的 两个图实际上可以基本同时地执行,或者有时可以以相反顺序执行。此外,使用词语"复合物"指的是单个复合物或者多个复合物。这些词 语被用于表示一个或多个复合物,但是也可以仅仅指示单个复合物。现在,为了更具体地描述本发明的示例实施例,将参考附图详细说明本 发明的不同实施例。然而,本发明不局限于示例实施例,而是可以以各种形 式具体实现。在附图中,如果一层形成在另 一层或衬底之上,这指的是所述 层直接形成在另 一层或衬底上,或者有第三层插入在它们之间。在下列描述 中,相同的附图标记表示相同的元件。尽管本发明的示例实施例已经出于举例说明的目的被公开,但是本领域 技术人员将会理解,在没有脱离如在所附的权利要求书中公开的本发明的范 围和精神的情况下,可以进行各种修改、添加和替换。现在将在下文中参考附图更充分地描述本发明,附图中示出了本发明的示例实施例。然而,本发明可以具体体现为许多不同的形式,并且不应该把它看作是受限于这里阐述的实施例。相反,提供这些实施例是为了使本公开内容彻底和完整,向本领域技术人员充分表达本发明的范围。在附图中,自始至终类似的数字指的是同样的元件。图1是示出根据示例实施例的快闪存储器系统的方框图。参见图1,根据示例实施例的快闪存储器系统iooo可以包括主机100和 外部存储装置200。外部存储装置200可以由接口装置300和快闪存储器400 构成。接口装置300可以被构造为当从主机100请求对快闪存储器400的访 问时控制快闪存储器400。接口装置300可以管理快闪存储器400的映射信 息以便快闪存储器400被用作像SRAM/HDD那样的读取、写入和擦除操作 更自由地执行的介质。接口装置300可以包括主机接口 310、中央处理单元(CPU) 320、工作 存储器330、緩冲存储器340和/或闪存控制器350。接口 310可以配置为与 主机200接口,并且CPU 320可以控制外部存储装置200的整体操作。工作 存储器330可被用于存储执行FTL功能所必需的软件以及存储快闪存储器 400的映射信息。快闪存储器400的映射信息可以存储在快闪存储器400的 任何区城(例如,元区域)中,并且可以在加电时4皮自动地加载到工作存储 器330中。执行FTL功能所需的软件可以被存储在快闪存储器400的任何区 域(例如引导(boot)代码区域)中,并且可以在加电时^皮自动地加载到工 作存储器330。在示例实施例中,工作存储器330可被用于存储在快闪存储器400中执 行垃圾收集所需要的信息,其在下文中被称为垃圾收集成本。可以使用存储 在工作存储器330的散列表中的垃圾收集成本来执行垃圾收集。只要快闪存 储器400的写操作被执行或只要它结束,就可以更新垃圾收集成本。正如本领域技术人员所清楚了解的,能够使用关键值进行搜索的结构被 称作"散列表",并且使用散列表的搜索被称作"散列"(hashing)。对散列表 中的记录可以使用作为索引的通过用散列函数计算接收的关键值而获得的散 列地址来进行访问。由于它的高速,使用散列表的搜索是有利的。将在下面 详细说明计算垃圾收集成本的操作和使用计算的垃圾收集成本的垃圾收集方 法。参见图1,当在快闪存储器400中存储数据时或当从快闪存储器400中 读出数据时,緩冲存储器340可被用于临时存储数据。例如,緩冲存储器340 可以具有与快闪存储器400的页大小相对应的存储容量。工作存储器320和 緩冲存储器330可以用易失性存储器,例如SRAM来实现。也可以使用一个 存储器(例如,SRAM)来实现存储器320和330。闪存控制器350可以被配 置成在CPU320的控制下控制对快闪存储器400的访问操作(例如读取、写入和擦除操作)。快闪存储器400可以包括包含多个存储块的存储单元阵列,每个存储块可以进一步包括多个页。 一个页可以对应于一个扇区或多个扇区。如上所述, 存储单元阵列的存储块可以被分成数据区域、日志区域和元区域。存储单元阵列可以进一步包括用于存储引导代码和/或FTL的存储块。在示例实施例 中,快闪存储器400可以具有阵列结构,但是不受限于此。存储单元阵列的 结构可以根据FTL的映射技术以多种方法实现。如上所述,由于快闪存储器装置的擦除前写入(write-before-erase)的特 性,用于修正旧块的技术,即垃圾收集也许很重要。此外,快闪存储器的资 源可能是有限的,并且它的可靠性与是否适当地分配擦除次数有关。在示例 实施例中,可以通过较少的工作来恢复空闲块以便快速地处理主机的写入命 令。因此,在示例实施例中,可以预先计算用于执行垃圾收集的成本,并且 可以根据计算的成本进行垃圾收集。因而,可以更均匀地管理快闪存储器的 再使用频率并在整个存储器中分配擦除分布。示例实施例可以使用利用散列 表的散列技术作为用于管理计算的垃圾收集成本的方法。由于搜索散列表的 速度,散列技术可以使空闲块能够被快速地生成。图2是用于描迷根据示例实施例的计算垃圾收集成本的方法的流程图。 可以响应于从主机提供的写入命令通过FTL计算在图2中举例说明的垃圾收 集成本。可替换地,可以在进行写操作时或执行写操作后计算垃圾收集成本。参见图4,在计算垃圾收集成本之前,在S1000,可以选择用于计算垃圾 收集成本的因子。在S1100,可以相对于每一个选择的因子定义权重。反映 到垃圾收集成本的因子和权重值可以根据快闪存储器的特征而彼此不同地定 义。例如,指示快闪存储器的寿命的磨损水平信息和指示每块有效页数的信 息可以用作用于计算成本的因子。如果磨损水平的重要性程度相对较高,则 0.7的权重可以应用于磨损水平,并且0.3的权重可以应用于每块有效页数。 在示例实施例中,应用于因子的权重的和被设置为1.0 (例如,0.7+0.3=1.0)。在S1200,可以使用定义的因子和各个因子的权重开相对于每个物理块 号PBN计算垃圾收集成本CostpBN。可以通过下列等式计算成本。CostpBN = S(Factorn X Weighty)其中,CostpBN指示与物理块号相对应的垃圾收集成本,Factorn指示n个因子,Weightfet指示设置给每个因子的权重。通过该等式计算的垃圾收集成本CostPBN的低值指的是对应的块的擦除次数较小。通过该等式计算的垃圾收集 成本CostPBN的高值指的是对应的块的擦除次数较高。通过该等式计算的垃圾 收集成本C0StPBN的较低值指的是对应的块的有效页数较小。通过该等式计算 的垃圾收集成本CostPBN的较高值指的是对应的块的有效页数较高。在步骤S1300,所计算的各个物理块号的垃圾收集成本可以存储在散列表中。在示例实施例中,可以使用具有存储在散列表中的具有最低值的垃圾收集成本的物 理块来进行垃圾收集。因而,可以首先对擦除次数和每块有效页数较小的块 进行垃圾收集。因此,快闪存储器的性能和/或可靠性可以得到改提高。图3是示出根据示例实施例的散列表的图表,图4是示出图3中举例说 明的数据列表的图表。参照图3,根据示例实施例的散列表500可以包括散列索引510和主数 据列表530。在图2中计算的垃圾收集成本值可以存储在散列索引510中并 且具有0到N的值。例如,如果垃圾收集成本值的范围是O到N,则散列表 的索引大小变成N+1。主数据列表530可以包括多个数据列表520,每个都对应于索引。数据 列表520的示例配置在图4中举例说明。在示例实施例中示出了 一种示例, 其中使用双链表方式配置每个数据列表520。从图3和图4处可了解到,每 个双数据列表520可以包括指示下一节点的指针NEXT,和指示前一节点的 指针PREV。因此,可以前向和后向搜索列表。可以很容易地进行插入和删 除节点。在示例实施例中,双数据列表520的每个点可以包括两个字节。分 别指示前一节点和下一节点的一对指针可以包括四个字节。然而,在图3和 图4中举例说明的链表的形式不受上述示例的限制。例如,用于示例实施例 中的链表的配置可以实现为单链表或循环链表。返回到图3,具有对应的成本值的物理块号(例如物理块地址)可以存 储在每个索引中。在示例实施例中, 一个物理块号存储在对应的索引中。由 于各个物理块号可以以链表的形式相互链接,因此尽管已知一个物理块号,例如,对应于垃:改收集值"0"的索引OxFFOO对应于物理块号0x00F3。 物理块号0x00F3的前一个物理块号是0xFF00,物理块号0x00F3的下一个物 理块号是0x0004。物理块号0x0004的下一个物理块号是0x001 l,物理块号 0x0011的下一个物理块号是OxFFFF。在示例实施例中,以OxFFOO、 0x00F3、0x0004和0xFFFF这个次序排列物理块号,并且每一个物理块号具有垃;及收 集成本值0。同样地,物理块号0x0010对应于与垃:t及收集成本值(N-l)相对应 的索引0xFF3F。物理块号0x0010的前一个物理块号是OxFFFF (也就是说, 空值(NULL)),并且物理块号0x0010的下一个物理块号是0x0082。物理块 号0x0082的下一个物理块号是OxOOFF,物理块号0x00FF的下一个物理块号 是OxFFFF。因为具有垃圾收集成本值1到4的索引和具有垃圾收集成本值N 的索引没有对应的物理块号,因此可以分配'0xFFFF'状态的值。可以以 OxFFFF、 0x0010、 0x0082、 0x00FF和OxFFFF这种次序排列物理块号,并且 每一个物理块号具有垃圾收集成本值(N-1)。图5是用于描述根据示例实施例的垃圾收集方法的示图。参见图5,根据示例实施例中的垃圾收集方法,在S2000,从散列表530 中搜索具有最低成本的块。搜索到的块可以是将被用于垃圾收集的目标块。 在S2100,确定是否获得(secure) N个块作为搜索结果。如果是,则过程进 行到S2200,其中相对于搜索到的N个块进行垃圾收集。如果否,则过程进 行到S2000,其中从散列表530中搜索具有最低成本的块。重复搜索操作直 到获得N个块为止。可以通过FTL的垃圾收集算法来确定将被用于垃圾收集的块的数目(例 如,N),并且块的数目可以改变。进一步,在S2000,在搜索到成本值是M 的存储块为具有最低成本值的块的情况中,具有该搜索到的块的以链表形式 相互链接的块可以被搜索以作为将被用于垃圾收集的块。如果存在与成本值 M相对应的N个存储块,则可以使用具有成本值M的N个存储块进行垃圾 收集。另一方面,如果没有与成本值M相对应的N个存储块存在,则可以通 过额外地搜索具有成本值(M+l)的块(或具有大于(M+l)的成本值的块) 获得N个存储块。然后,可以使用获得的N个块进行垃圾收集。如上所述,散列表500和形成散列表500的主数据列表530的数据结构 可以允许在垃圾收集成本的范围内的仅仅一次线性搜索。在线性搜索周期期 间,允许搜索时间为N次以搜索N个块。如果垃圾收集成本不是由散列表形 成,则在全部搜索完将被用于垃圾收集的N个块之前,要将需要N次的搜索 时间的线性搜索重复N次。因此,根据垃圾收集成本以散列表形式配置的示 例实施例有可能减少搜索将被用于垃圾收集的N个块所花费的时间。正如从上述描迷中所了解的,可以通过在整个存储区域中更均匀地分配擦除分布和以更高的速度执行垃圾收集,来提高快闪存储器装置的可靠性和/ 或性能。尽管结合附图对示例实施例进行了描述,但是示例实施例并不受限于此。 对于那些本领域技术人员将显而易见的是,可以在没有脱离所附的权利要求 书的范围和精神的情况下对其进行各种替换、修改和变化。
权利要求
1、一种垃圾收集方法,包括应用一权重到至少两个或更多因子中的每一个,以计算垃圾收集成本;使用所计算的垃圾收集成本配置散列表;从所述散列表中搜索具有最低垃圾收集成本的块;以及对搜索到的块执行垃圾收集。
2、 根据权利要求i所述的垃圾收集方法,其中所述因子中的每一个包括 至少磨损水平信息和每块的有效页数的信息中的任一个。
3、 根据权利要求i所述的垃圾收集方法,其中分配给所述因子的权重的 和具有i.o的值。
4、 根据权利要求i所述的垃圾收集方法,其中通过将相对于每个物理块 的因子和权重的乘积相加来计算所述垃;及收集成本。
5、 根据权利要求l所述的址圾收集方法,其中所迷散列表包括与垃圾收集成本相对应的多个数据列表。
6、 根据权利要求5所述的垃圾收集方法,其中所述多个数据列表中的每 一个都是链表。
7、 根据权利要求5所述的垃圾收集方法,其中所述多个数据列表中的每 一个是从单链表、双链表和循环链表的组中选出的一个。
8、 根据权利要求l所述的垃圾收集方法,其中只要执行对快闪存储器装 置的写操作就更新所述垃圾收集成本。
9、 根据权利要求l所述的垃圾收集方法,其中只要快闪存储器装置的写 操作结束就更新所述垃圾收集成本。
10、 根据权利要求1所述的垃圾收集方法,其中基于增加垃圾收集成本 来检测块。
11、 根据权利要求10所述的垃圾收集方法,其中在垃圾收集期间,对N 个块执行所述垃圾收集,其中N是大于1的整数。
12、 一种存储器系统,包括 主机;快闪存储器;以及接口装置,其被配置为响应于来自主机的对快闪存储器的写请求进行操作,其中依据所述写请求,所述接口装置被配置为应用权重到至少两个或更 多因子中的每一个,以计算垃圾收集成本,并使用所计算的垃圾收集成本配置散列表;以及其中所述接口装置被配置成从所述散列表中搜索具有最低垃圾收集成本 的块并且对搜索到的块执行垃圾收集。
13、 根据权利要求12所述的快闪存储器系统,其中所述因子中的每一个包括至少磨损水平信息和每块的有效页数的信息中的任一个。
14、 根据权利要.求12所述的快闪存储器系统,其中分配给所述因子的权 重的和具有1.0的值。
15、 根据权利要求12所述的快闪存储器系统,其中通过将相对于每个物 理块的因子和权重的乘积相加来计算所述垃二t及收集成本。
16、 根据权利要求12所述的快闪存储器系统,其中所述散列表包括与所 述垃圾收集成本相对应的多个数据列表。
17、 根据权利要求16所述的快闪存储器系统,其中所述多个数据列表中 的每一个都是链表。
18、 根据权利要求16所述的快闪存储器系统,其中所迷多个数据列表中 的每一个是从单链表、双链表和循环链表的組中选出的 一个。
19、 根据权利要求12所述的快闪存储器系统,其中只要执行对快闪存储 器的写操作就更新所述垃圾收集成本。
20、 根据权利要求12所述的快闪存储器系统,其中只要对快闪存储器的 写操作结束就更新所述垃圾收集成本。
21、 根据权利要求12所述的快闪存储器系统,其中所述接口装置被配置 为基于增加垃圾收集成本来检测块。
22、 根据权利要求21所述的快闪存储器系统,其中所述接口装置对N 个块执行所述垃圾收集,其中N是大于1的整数。
23、 如权利要求12所述的快闪存储器系统,其中所述快闪存储器存储软 件以执行闪存转换层功能。
24、 根据权利要求12所迷的快闪存储器系统,其中所述接口装置包括存 储器,其中的用于执行闪存转换层功能的软件从所述快闪存储器加载。
25、 根据权利要求24所述的快闪存储器系统,其中所述存储器包括DRAM和SRAM中的任一个。
26、 根据权利要求12所述的快闪存储器系统,其中所述散列表存储在所 述快闪存储器中。
27、 根据权利要求24所述的快闪存储器系统,其中从所述快闪存储器加 载所述散列表到所述存储器。
全文摘要
本发明涉及快闪存储器系统及其垃圾收集方法。示例实施例提供垃圾收集方法,其包括应用权重到至少两个或更多因子中的每一个以计算垃圾收集成本;使用计算的垃圾收集成本配置散列表;从散列表中搜索具有最低垃圾收集成本的块;以及对搜索到的块执行垃圾收集。
文档编号G06F12/02GK101241471SQ200710144178
公开日2008年8月13日 申请日期2007年11月5日 优先权日2006年11月3日
发明者宋东显, 李时润, 牟然振, 郑明珍, 金庄焕, 黄在显 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1