用基于日志的缓冲向基于nand存储块的文件系统写入的方法

文档序号:6360758阅读:218来源:国知局
专利名称:用基于日志的缓冲向基于nand存储块的文件系统写入的方法
技术领域
本发明涉及ー种操作NAND存储器控制器的方法以及用以操作包括NAND存储器控制器和NAND集成电路芯片的存储设备的方法。本发明的方法増加NAND存储器对基于块的闪速文件系统执行随机写入的性能。
背景技术
NAND存储器集成电路芯片在本领域中是众所周知的。在NAND存储器芯片中,该存储器的特征在于许多存储块,每个块包含许多页面。块是最小可擦除単元。因此,如果NAND存储块中的页面已被写入或编程,则在该页面相关联的整个块被擦除之前,其不能被再次重新编程或重新写入。因此,在基于块的闪速文件系统(FFS)中,当替换或重写预写块的一部分(诸如ー页)时,必须将该块的重写数据和未改变数据部分合并到新擦除块中。因此,如图1所示,如果要对原始块的页面2和3进行重写,则首先将用于那些页面的新数据保存在临时块中,并且然后 与原始块的其他页面合并成合并块。因此,从原始块拷贝页面0和1,从临时块拷贝页面2和3,并将从页面4至原始块结尾的其余页面从原始块拷贝到合并块。然后可以擦除原始和临时块以供未来使用。当NAND的块具有128或256个页面且移动姆个页面可能花费数毫秒时,合并操作可能非常长。另外,随着块的大小和编程时间增加,合并时间将增加。此外,在基于NAND存储器的芯片中,存在许多块,只有几个块被分配为临时块。參考图2,示出了具有一千(1,000)个块的NAND芯片的示意层级图,其中的九百九十ニ(992)个块被分配给存储数据的指定数据块,而八(8)个块被分配给临时块。典型的写入操作可以如下。让我们假设要将数据页面写入数据块0中,在其中已存在预写数据的位置上。因此,作为执行上述合并操作的替代,首先将数据的(ー个或多个)新页面写入临时块中,例如块992,其中块992被分配为与数据块0相关联。如果新数据的页面被NAND芯片接收到且其被指定为用于被擦除的页面,在数据块0 991中的任何地方,则新数据的页面被写入该位置。然而,如果新数据的页面目的地是数据块0,在那里其将覆写在另ー数据页面上,则将其存储在临时块992中。最后,如果新数据页面被指定为用于除数据块0之外的数据块中的页面,例如数据块4,在那里其将重写另数据页面,则新数据页面被存储在临时块993中,并且临时块993随后与数据块4相关联。由于合并操作要求长时间段,所以其被尽可能长地拖延。这是通过将新数据页面存储在临时块中来完成的。然而,由于在现有技术中,分配了非常少的临时块(例如对于每1000个数据块而言,8个块),由于使用尽可能多的数据块的期望,NAND存储器芯片将很快用完临时块。例如,在上述示例中,如果接收到用于要重写第九不同数据块的新数据页面的第九“写入”操作,则必须首先执行合并操作以释放临时块。随着NAND芯片在存储容量方面的増加和块数目的増加,NAND芯片快速要求合并操作以释放临时块的可能性増加。更接近地类似于其中在能够对(ー个或多个)新数据页面进行写入之前NAND芯片具有少数合并操作的真实随机写入操作的问题的一个现有技术解决方案是具有与数据块一祥多的临时块。用临时块与数据块的1:1比例,用于合并操作的要求急剧降低。然而,这种解决方案导致非常少的数据块可用于用户数据的存储。因此期望新的解决方案。

发明内容
本发明克服了此限制,在本发明中示出了ー种操作控制器以便控制NAND存储器芯片的编程的方法。NAND存储器芯片具有多个块,其中每个块具有一定存储量,其中,每个块中的存储量是最小可擦除単元。该方法包括在临时储存器中存储第一多个数据组,其中,每个数据组将被存储在ー块NAND存储器芯片中,其中数据组小于数据块。每个数据组被索引至其将被存储到的块。最后,与同一块相关联的数据组在同一编程操作中被编程到同一块中。


图1是现有技术的合并操作的方框图。图2是现有技术的写入操作期间的临时块到被用于临时存储数据的数据块的分配的方框图。图3是用本发明的方法进行操作以控制NAND存储器芯片并从主机设备接收命令的控制器的方框图。图4是示出了用于在本发明的方法中使用的具有数据块和临时块的NAND存储器芯片的地址空间的图。图5是供本发明使用的索引表的示例。
具体实施例方式參考图3,示出了用本发明的方法操作的NAND存储器控制器10的方框层级图。控制器10通过诸如地址总线14、数据总线16和控制总线18的众所周知的总线来与NAND存储器集成电路芯片12的操作对接并控制该操作。典型地,对于NAND存储器10而言,地址总线14和数据总线16是相同的,即通过同一总线来传输地址和数据。虽然本发明是ー种用于操作存储器控制器10的方法,但本发明还可以用来操作存储设备,其包括作为存储器模块被封装在一起或者甚至被集成在一起的NAND存储器芯片12和控制器10。控制器10还可以与易失性存储器30对接并连接到易失性存储器30。在该情况下,地址总线14、数据总线16和控制总线18也被连接到易失性存储器30。控制器10通过诸如PATA (并行ATA)或SATA (串行ATA)命令协议的众所周知的协议与主机设备20对接。如前所述,本发明通过降低执行合并操作的频率而解决了改善基于块的非易失性存储器系统中的随机写入性能的问题。如前文所讨论的,由于NAND存储器芯片12的性质,为了将数据写入块的(ー个或多个)预写页面中,必须首先擦除整个块。在本发明的方法中,如果要将新数据页面写入数据块的预写页面中,而不是擦除整个数据块,则首先将新数据页面写入临时块中的下ー个可用页面中。类似于现有技术,临时块可以在NAND存储器芯片12中。
然而,不同于其中每个临时块与数据块相关联且只能将与该数据块相关联的那些页面写入同一临时块中的现有技术,用本发明的方法,同一临时块中的每个页面可以存储目的地是存储在不同数据块中的数据。因此,可以在需要将新数据页面写入数据块中之前利用每个临时块来存储用于不同数据块的许多数据页面。因此,可以用ー比保存在临时块中的页数的比来降低合并操作的频率。例如,如图4所示,临时块992的页面0可以存储目的地是将被存储在数据块0中的数据。在同一临时块992中,页面I可以存储目的地是存储在数据块2中的新数据。最后,在临时块992中,页面2可以存储目的地是存储在数据块4中的数据。因此,不同于现有技术,同一临时块中的页面可以存储目的地是不同数据块的数据。此外,诸如临时块993的不同临时块可以存储目的地是存储在数据块(例如数据块0)中的新数据页面(例如页面1),临时块992中的数据页面(例如页面0)的目的地也是存储在所述数据块中。換言之,可以将目的地是存储在同一数据块中的页面存储在不同临时块中。在本发明的方法中,由于新数据页面将被存储在数据块中,并且确定的是该位置未被擦除,则将该新数据页面存储在临时块的集合中的下ー个可用页面中。因此,临时块保持将被写入数据块中的新数据页面的记录。为了跟踪临时块中的数据页面与数据块中的用于存储的最終目的地之间的相关,创建索引表。可以以许多不同的方式来完成编索引,诸如用物理地址或用逻辑地址。在图5中示出了ー个示例。图5示出了物理地址索引表。索引表的每行表示存储在临时块中的数据页面,其包含关于其中临时存储该页面的物理地址和数据页面的最終目的地的页面地址的信息。这些地址可以采取如下所述的块地址或页面地址的形式。“逻辑页号”指的是最后将用此新数据页面来更新的数据块中的页面。“逻辑块号”指的是其中将最后写入新数据页面的数据块中的块号。“物理块地址”指的是其中保持新数据页面的临时块的物理地址。“物理页面地址”指的是在将新数据更新成数据块之前保持新数据的临时块中的物理页面地址。在本发明的方法中,由NAND存储器控制器10从主机设备20接收到新数据页面。控制器10检查其中将写入新数据页面以确定该地址是否包含已擦除存储器存储单元(memory cells)或预写数据的数据块中的位置。如果该位置包含已擦除存储器存储单元,则新数据页面被写入该位置上。然而,如果该位置包含预写数据,则将新数据页面写入临时块中的下ー个可用已擦除页面。控制器10然后关于将在哪里写入新数据页面而更新索引表,其包括新数据页面的逻辑地址以及其中将临时写入新数据页面的关联物理地址。必须保持并在更新NAND存储设备的操作中为常规且本领域的技术人员众所周知的其他表格,诸如逻辑到物理块的映射以及临时块号到物理块的映射。由于每个临时块并不与唯一数据块相关联,所以目的地是存在预先存在数据的位置的新数据的累积页数可能大得多。因此,可以降低执行合并操作的频率。对于具有256个页面的临时块而言,ー个临时块可以存储目的地是256个不同数据块的256个页面或每个数据块多个页面。如果存在八个临时块,则可以存在多达2048个不同数据块,其中该八个临时块可以充当其缓冲器或存储区域。此外,如果这些临时块服务于128个数据块,则每个数据块可以具有在需要执行合并操作之前在临时块中累积的16个页面的平均值。相反,在现有技术中,单个临时块可以充当用于仅ー个数据块的缓冲器,并且八个临时块可以充当用于仅八个不同数据块的缓冲器。当然,权衡是需要创建索引表。可以将该索引表存储在易失性存储器30中或者甚至在NAND存储器12本身中。存储在易失性存储器30中的索引表的优点是检索的速度。缺点是易失性,这可能促使数据在突然电源切断的情况下丢失。可以在存在要求NAND芯片12的资源方面的暂停时以机会主义方式或在指定的间隔或事件出现时以确定性方式完成将来自临时块的新数据页面合并成数据块。在机会主义合并的情况下,可以在不对主机命令引起任何延迟的情况下执行合并操作。在合并操作期间,控制器10收集来自将被存储在同一数据块中的临时块的所有新数据页面,并将那些新数据页面与来自同一数据块的未替换数据页面合并并将其写入已擦除数据块。然后擦除原始数据块,并且然后从临时块和从索引表删除新数据页面和关联数据,诸如块号、物理地址和逻辑地址。合并操作可以以两个方式中的ー个发生。以ー个方式,将临时块中的所有页面写入数据块中。这后面是所有临时块以及索引表的擦除。以这种方式,由于可能存在存储在临时块中的许多页面,所以合并操作可能花费很长时间。以第二方式,合并操作可以每次仅更新ー个或几个数据块。以这种操作方式,从临时块中选择目的地是同一数据块的可以被存储在多个不同临时块中的页面并写入相同(一个或多个)数据块中。然而,在这种方法中,由于并不是来自临时块的所有数据页面都被合并操作写入数据块中,所以必须只将被写入页面从临时块擦除。然而,由于每个临时块也是数据的“块”,这意味着必须将该块中的所有数据一起擦除,所以必须完成所谓的“垃圾收集”。在本领域中众所周知的“垃圾收集”操作中,将同一临时块中的未合并数据页面传输到临时块的完全擦除块,使得然后可以擦除临时块。另外,必须同样地从索引表清除掉參考在合并操作期间写入的数据页面的那些条目。因此,虽然仅将用于仅ー个或几个数据块的页面合并的第二技术不要求冗长的邻近合并操作,但其要求附加的后续“垃圾收集”过程,这产生附加开销。如果向控制器10进行读取请求,则在新数据页面被合并到数据块中之前,控制器10使用由主机设备20供应的逻辑地址作为读取请求的一部分来从索引表读取新数据页面的位置。如果该逻辑地址未被包含于索引表中,指示该数据在数据块中且未被替换,则控制器10使用逻辑地址来搜索数据块以读取数据页面。如从前文可以看到的,由于临时块保存每个新数据页面且不与任何ー个特定数据块相关联,用本发明的方法,临时块可以在需要执行ー个或多个合并操作之前保持更多的新数据页面。另外,当存在合并操作时,与现有技术的方法相比,可以在同一合并操作中存储来自同一临时块的更多页面。
权利要求
1.一种操作控制器以便控制NAND存储器芯片的编程的方法,其中,所述NAND存储器芯片具有多个块,其中每个块具有多个存储组,其中,每个块中的存储量是最小可擦除单元,其中,所述方法包括 将第一多个数据组存储在临时存储器中,其中,每组数据将被以组存储在所述NAND存储器芯片的所述多个块中的任何一个中; 在索引表中将临时存储器中的每个数据组编索引至NAND存储器芯片中的块中的组,其将被存储在那里; 在同一编程操作中将来自与NAND存储器芯片的同一块相关联的临时存储器的数据组编程到NAND存储器芯片的同一块中; 将被编程的数据组从所述临时存储器删除;以及 将用于从所述临时存储器删除的数据组的索引从所述索引表删除。
2.根据权利要求1所述的方法,其中,每个块包括多个页面,并且每个组是页面。
3.根据权利要求2所述的方法,其中,在所述编程步骤之前,擦除同一块的页面。
4.根据权利要求1所述的方法,其中,所述编索引步骤包括 创建到被写入临时存储器中的数据组的物理地址的逻辑地址的表。
5.根据权利要求1所述的方法,其中,所述编程步骤对来自所述临时存储器的所有数据组进行编程。
6.根据权利要求5所述的方法,其中,所述删除数据组将所有数据组从所述临时存储器删除。
7.根据权利要求6所述的方法,其中,所述从所述索引表删除步骤删除所有索引。
8.根据权利要求1所述的方法,其中,所述编程步骤对来自用于NAND存储器中的同一块的临时存储器的所有数据组进行编程。
9.根据权利要求8所述的方法,其中,所述删除数据组步骤还包括仅删除被编程的数据组并执行垃圾收集步骤以将所述临时存储器中的其余数据组合并。
10.根据权利要求9所述的方法,其中,所述从索引表删除还包括仅删除用于被编程数据组的索引并执行垃圾收集步骤以将索引表中的其余索引合并。
全文摘要
示出了一种操作控制器以便控制NAND存储器芯片的编程的方法。NAND存储器芯片具有多个块,其中每个块具有一定存储量,其中,每个块中的存储量是最小可擦除单元。该方法包括在临时存储器中存储第一多个数据组,其中,每个数据组将被存储在NAND存储器芯片的块中。每个数据组被索引至其将被存储到的块。最后,与同一块相关联的数据组在同一编程操作中被编程到同一块中。
文档编号G06F12/00GK103038753SQ201180027058
公开日2013年4月10日 申请日期2011年5月16日 优先权日2010年6月1日
发明者S.阿亚, D.邢 申请人:格林莱恩特有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1