CN101165660B - 在非易失性存储器中重用日志块的方法、非易失性存储器件 - Google Patents
在非易失性存储器中重用日志块的方法、非易失性存储器件 Download PDFInfo
- Publication number
- CN101165660B CN101165660B CN2007100061185A CN200710006118A CN101165660B CN 101165660 B CN101165660 B CN 101165660B CN 2007100061185 A CN2007100061185 A CN 2007100061185A CN 200710006118 A CN200710006118 A CN 200710006118A CN 101165660 B CN101165660 B CN 101165660B
- Authority
- CN
- China
- Prior art keywords
- data
- log blocks
- block
- blocks
- reusable
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000015654 memory Effects 0.000 title claims description 86
- 230000004044 response Effects 0.000 claims abstract description 7
- 239000004065 semiconductor Substances 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 45
- 238000003860 storage Methods 0.000 description 32
- 238000013507 mapping Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
Images
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供了操作非易失性存储器件的方法,所述非易失性存储器件包括用于存储第一数据的第一数据块和用于存储第一数据中的至少一些的更新版本的第一日志块,其中,将在第一数据块中的第一数据的有效部分复制到不具有数据的空闲块,以产生第二数据块。将所述第一数据中的至少一些的更新版本从第一日志块复制到第二数据块。响应于至少一个预定条件被满足,将所述第一日志块指定为可重用日志块,而不从其擦除数据。
Description
相关申请的交叉引用
本申请要求2006年10月19日在韩国知识产权局提交的韩国专利申请第10-2006-0101643号的优先权,其公开通过引用被整体包含在此。
技术领域
本发明涉及非易失性半导体存储器件,具体地,涉及管理非易失性半导体存储器件的方法、以及相关的非易失性存储器件。
背景技术
快闪存储器件是非易失性存储器件,可以电方式向其写入数据、或从其擦除数据。基于快闪存储器的存储器件通常比同等的磁盘存储器件消耗更少的功率、和/或更小。因此,在许多现有和新的应用中,基于快闪存储器的存储器件正在取代磁盘存储器件。
快闪存储器件一般不允许覆写数据,而在磁盘存储器件中通常可以这样做。因此,为了替换在快闪存储器件中存储的数据,首先擦除所存储的数据,然后,将新的数据编程到被擦除的存储单元中。所述“擦除”操作可以将快闪存储器件的存储单元返回到其初始状态。因此,快闪存储器件一般具有三个操作模式:编程(写入)模式、擦除模式和读取模式。在此,也可以将被擦除的快闪存储单元或块称为“清空的(clean)”单元或块。
擦除操作通常需要比编程(即,写入)操作长的时间。而且,通常在比编程或读取操作大得多的块单元中执行擦除操作。结果,可能在块擦除操作期间擦除未被请求擦除的快闪存储器的部分。当此发生时,可能需要通过将数据编程到另一个块中来恢复未被请求擦除操作的块的部分。
频繁的擦除操作可能导致快闪存储器件的“擦除计数”的不必要的增加。所述“擦除计数”是可能显著地影响快闪存储器件的寿命的参数。随着快闪存储器件的擦除计数和编程计数的增加,所述器件的预期寿命(即,快闪存储器将正确地工作的时间)减少。
图1是图解传统的快闪存储器件的存储单元区的框图。如图1中所示,快闪存储器件的存储单元区可以被划分为多个逻辑区域,包括映射区域、日志块(log block)区域、数据块区域、可擦除块区域和空闲块(free block)区域。每个区域可以包括一个或多个存储块。在此,日志块区域中的存储块被称为“日志块”,数据块区域中的存储块被称为“数据块”,可擦除块区域中的存储块被称为“可擦除块”,而空闲块区域中的存储块被称为“空闲块”。
数据块存储正常的数据。日志块用来通过将更新的内容记录在日志块而更新数据块的一部分或全部。因此,日志块对应于至少一个数据块,并且存储一个或多个对应的数据块的更新的页(page)。在数据块中存储的对应的页之前引用在日志块中存储的页。在日志块中的数据可以周期性地与在对应的数据块中的数据合并。
图2是图解当存储块彼此合并时的、传统的快闪存储器件的存储块的状态变换的状态图。在韩国专利公开第10-2002-0092487号中公开了在图2中图解的传统状态变换。如图2中所示,当例如对日志块进行简单合并操作时,所述日志块变为可擦除块,可擦除块是在它可以被重用之前需要被擦除的块。
图3是图解在传统的简单合并后的日志块的示意图。如图3中所示,在传统的简单合并操作后,日志块可以具有在其中编程的不同数量的数据。具体地,某些日志块可以存储大量数据,而其它日志块仅可存储小量数据(例如,一或两页)。在简单合并后,所述日志块全部被丢弃到垃圾池(garbage pool)(即,所述日志块被定义为可擦除块)。可擦除块可在之后被擦除,其后,它们变为在图2中所示的空闲块。
发明内容
按照本发明的某些实施例,提供了用于操作非易失性存储器件的方法,所述非易失性存储器件包括用于存储第一数据的第一数据块、以及用于存储第一数据中的至少一些的更新版本的第一日志块。按照这些方法,在第一数据块中的第一数据的有效部分被复制到不具有数据的空闲块,以产生第二数据块。将第一数据中的至少一些的更新版本从第一日志块复制到第二数据块。响应于至少一个预定条件被满足,而将所述第一日志块指定为可重用日志块,而不从其擦除数据。所述非易失性存储器件可以包括例如快闪存储器件。
在某些实施例中,可通过确定在第一日志块中的清空的存储量、然后将所确定的清空的存储量与预定的基准值相比较,而将所述第一日志块指定为可重用日志块,而不从其擦除数据。如果所确定的在所述第一日志块中的清空的存储量超过了所述预定的基准值,则将所述第一日志块指定为可重用日志块,而不从其擦除数据。清空的存储量可以是在第一日志块中的清空的页的数量。可通过例如在重用池表中记录所述第一日志块的标识符(例如,物理块编号)、以及与所述第一日志块相关联的清空的页起始地址,而将所述第一日志块指定为可重用日志块。例如,所述预定的基准值可以是在所述第一日志块中的页的总数的大约1/2。
在某些实施例中,所述方法可以还包括:将被存储在第二数据块中的第二数据中的至少一些的更新版本记录到可重用日志块中,而不从可重用日志块擦除所述第一数据。例如,这可以例如通过下述步骤来实现:接收所述第二数据中的至少一些的更新版本,然后确定所述第二数据中的至少一些的更新版本要被存储在不是空闲存储块的新的日志块中。然后,选择所述可重用日志块作为所述新的日志块,并且在所述第二数据块中存储的第二数据中的至少一些的更新版本被记录到所述可重用日志块中。
在本发明的另一些实施例中,提供了用于操作非易失性存储器件的方法,所述方法涉及:将第一数据记录到所述非易失性存储器件的第一存储块中,其中,第一存储块包含:被擦除的页、以及包含不再有效的先前记录的第二数据的页。在这些方法中,在将数据记录到第一存储块中之前,可以响应于确定在第一存储块中的可擦除页的数量超过了基准值,而将所述第一存储块指定为可重用存储块。可存储所述第一存储块的第一地址,其指定所述第一存储块的被擦除页集合中的第一个。
按照本发明的其它实施例,提供了用于操作非易失性存储器件的方法,所述方法涉及:通过将第一数据和第二数据记录到所述非易失性存储器件的第二数据块中,将在所述非易失性存储器件的第一日志块中存储的所述第一数据与在所述非易失性存储器件的第一数据块中存储的所述第二数据合并。然后,确定在所述第一日志块中的清空的页的数量,并将其与基准值相比较。如果清空的页的数量超过所述基准值,则向可重用日志块池分配所述第一日志块。相反,如果清空的页的数量小于或等于所述基准值,则向可擦除日志块池分配所述第一日志块。
按照本发明的其它实施例,提供了非易失性存储器件,其包括:第一存储器,其中存储了程序;第二存储器,其包括数据块和其中记录用于更新所述数据块的数据的日志块;处理器,其被配置为执行所述程序以管理所述第二存储器。在这些实施例中,所述处理器可以被配置为:将在第一数据块中的有效数据和在对应于所述第一数据块的第一日志块中的有效数据复制到不具有数据的空闲块,以产生第二数据块;以及根据预定条件,在从所述第一日志块擦除数据后将所述第一日志块分配为空闲块,或者将所述第一日志块分配为第二日志块,而不从所述第一日志块擦除数据。在这样的器件中,例如,所述第一存储器可以是只读存储器,例如,所述第二存储器可以是快闪存储器。
按照本发明的其它实施例,提供了非易失性存储器件,其包括:存储单元区,其被划分为多个逻辑区域,其中包括日志块区域、数据块区域、可擦除块区域、空闲块区域和可重用块区域;以及处理器。在这些器件中,所述数据块区域可以包括存储被输入到所述非易失性存储器件中的数据的多个数据块。所述日志块区域可以包括多个存储在数据块区域中存储的数据的更新的多个日志块。所述可擦除块可以包括正在等待擦除的多个可擦除块。所述空闲块区域可以包括多个被擦除的存储块。所述可重用块区域可以包括至少第一日志块,其在作为合并操作的一部分的、所述第一日志块中的更新数据被记录到另一个块中后被分配到可重用块区域,而不经受擦除操作。
附图说明
通过参照附图来详细地描述本发明的示例实施例,本发明的上述和其它特征、以及优点将变得更清楚,附图中:
图1是图解传统的快闪存储器件的存储单元区的框图;
图2是图解按照传统方法的、在存储块彼此合并时传统的快闪存储器件的存储块的状态变换的状态图;
图3是图解在执行传统的简单合并操作后快闪存储器件的日志块的分配的示意图;
图4是图解按照本发明的某些实施例的快闪存储器件的存储单元区的框图;
图5是图解按照本发明的某些实施例的可被用来合并存储块的数据合并操作的示意图;
图6是图解按照本发明的某些实施例的快闪存储器件的存储块的状态变换的状态图;
图7是图解按照本发明的某些实施例的在简单合并操作后处理日志块的方法的流程图;
图8是图解按照本发明的某些实施例的在简单合并操作后的日志块的分配的示意图;
图9是图解按照本发明的某些实施例的重用池表的框图;以及
图10是图解按照本发明的某些实施例的分配新的日志块的方法的流程图。
具体实施方式
现在,将在下文中参照附图来更全面地描述本发明,在附图中示出了本发明的实施例,但是,本发明可以很多不同形式实施,并且不应当被理解为限于在此阐述的实施例。相反,提供这些实施例使得本公开是彻底和完整的,并且将向本领域的技术人员完整地传达本发明的范围。在此使用的术语“和/或”包括相关联的列出项目中的一个或多个的任一个和全部组合,并且可以被简写为“/”。
将理解,虽然可能在此使用术语“第一”、“第二”等来描述各种元件,但这些元件不应被这些术语限制。这些术语仅用于相互区分元件。例如,第一元件可以被命名为第二元件,并且,类似地,第二元件可以被命名为第一元件,而不会背离本公开的教导。
在此使用的术语仅用于描述特定实施例的目的,而不意图限制本发明。如在此使用的,除非上下文清楚地另外指明,否则单数形式的“一”、“一个”和“所述”意图也包括复数形式。还将理解,当在本说明书中使用时,术语“包含”或“包括”指定所述特征、步骤、操作、元件和/或部件的存在,但是不排除一个或多个其它特征、步骤、操作、元件、部件和/或者其组合的存在或增加。
除非另外限定,否则在此使用的所有术语(包括科技术语)具有与本发明所属的领域内的普通技术人员通常理解的共同的含义。还将理解,诸如在通用词典中定义的那些的术语应当被解释为具有与在相关领域和/或本申请的上下文中的它们的含义一致的含义,并且将不被解释为理想化的或者过于正式的含义,除非在此明确地如此定义。
如上所述,按照传统技术,将在完成涉及日志块的简单合并操作后丢弃(即,被分配为擦除)所述日志块,即使数据已被记录到所述日志块的仅仅小部分中也是如此。因此,增大了传统的快闪存储器件的擦除计数。如在此所讨论的,按照本发明的实施例,提供了非易失性存储器件,它可以具有提高的性能和/或寿命,这是因为,这些器件重新利用按照传统技术而被丢弃的日志块,以便降低所述器件的擦除计数。还公开了用于管理这些非易失性存储器件的相关方法。
图4是图解按照本发明的某些实施例的快闪存储器件的存储单元区的框图。如图4中所示,所述快闪存储器件的存储单元区可以被划分为映射区域、日志块区域、数据块区域、可擦除块区域、可重用块区域和空闲块区域。可以逻辑方式定义这些区域中的每个。因此,将理解,这些区域在物理上可能是混合的、并且/或者不连续的。
可以使用映射区域来存储每个块的地址转换信息,以支持块寻址。映射区域也可以存储可被用来管理在每个区域中的存储块的表格、列表和/或其它数据结构。
所述日志块区域包括日志块,在此将对其更详细地描述。所述数据块区域用来记录正常的数据。可擦除块区域包括正在等待擦除的块。在此,将这些块称为可擦除块或丢弃块。可擦除块可以通过擦除其中的数据而变为空闲块。所述空闲块区域包括可被分配为日志块或者数据块的空闲块。空闲块也可以被分配到映射区域。空闲块不包括任何数据(即,空闲块是已经从其擦除了先前存储在其中的任何数据的块),可重用块区域包括可以被分配到(或者被维持在)日志块区域、而不首先对其执行擦除操作的块。
如上所述,通常不能在诸如传统的与非快闪存储器件之类的传统的快闪存储器件中覆写数据。因此,当接收到更新的数据时,它可以被存储在被称为日志块的临时存储块中。由于仅在快闪存储器件中提供有限数量的日志块,所以,在某些点,所有日志块可变为部分地和/或完全地被数据填充。为了保证日志块可用来记录新的、或者被更新的数据,可以将在日志块中存储的数据周期性地与在对应的数据块中存储的数据相比较,以识别(1)数据块中的未改变信息(其为有效数据,这是由于所述数据尚未被更新)和(2)所述日志块中的更新的数据(其也为有效数据,其需要替换所述数据块中的老数据)。一旦完成了此识别,便可将所述数据块和所述日志块合并为单个块,以便例如清空所述日志块。这个过程被称为“数据合并”、或被简称为“合并”。可以执行三种不同类型的合并操作。这三种合并被称为简单合并、复制合并和交换合并,将在下面更详细地说明每个合并。
图5是图解按照本发明的某些实施例的具有对应的数据块的日志块的三种示例合并的示意图。
如图5中所示,在交换合并中,数据块中的所有数据都被替换或更新为在对应的日志块中存储的数据。因为交换合并不涉及合并从两个不同的块选择的数据(而是涉及将在数据块中的所有数据替换为在对应的日志块中存储的数据),所以,可以通过简单地修改存储块映射、以将所述日志块重新指定为数据块,来执行交换合并。因此,可以在不必须实际复制或者重写任何实际数据的情况下执行交换合并。仅可在特定情形中执行交换合并,例如,当数据块中的每一个页已被更新仅一次、且所述日志块和所述数据块具有相同的页配置的时候。例如,可以通过更新在快闪存储器件的映射区域中的地址转换信息、以便将所述日志块映射到由用户请求的逻辑地址,来实现映射替换。因为交换合并仅涉及块映射,所以,它不需要附加的存储块来执行。在完成所述交换合并后,所述日志块变为数据块,并且可以丢弃所述数据块(即,所述数据块变为正在等待擦除的可擦除块)。
例如,当接收到用于数据块的高位地址(upper address)部分的更新数据时执行复制合并。所述更新数据可以被记录到例如日志块的高位地址部分中,复制合并用来将所述数据块的剩余部分中存储的数据复制到例如包含所述更新数据的日志块的低位地址(lower address)部分。如图5中所示,当仅需要更新在所述数据块的高位地址部分的数据时,在所述日志块的高位地址部分的数据(即,更新的数据)是有效的。另一方面,当前在所述数据块中的高位地址部分中存储的数据需要被更新、并因此是无效的,而在所述数据块的低位地址部分存储的数据保持有效(这是由于,尚未接收到用于此数据的更新的数据)。因此,利用复制合并,通过将所述数据块中的有效数据复制到所述日志块,来自所述日志块和对应的数据块两者的有效数据被一起合并到单个块(在这个示例中是所述日志块)中。复制合并不需要涉及附加(第三个)块。通过修改存储块映射以将所述日志块重新指定为数据块,可以完成所述复制合并。在完成所述交换合并后,可以丢弃所述数据块。
当在数据块中的数据被不连续地更新时,可以执行简单合并。利用简单合并,通过将所述日志块中的有效数据(即,所接收的更新数据)和对应的数据块中的有效数据(即,尚未被更新的数据)复制(记录)到第三块中,来形成新的数据块。在完成简单合并后,丢弃所述数据块(即,它变为可擦除块),并且所述日志块变换为可擦除块、或可重用块。当在日志块中的页配置与在数据块中的页配置不同时,可以执行简单合并。
图6图解了按照本发明的某些实施例的存储块的状态变换。如图6中所示,日志块可以通过交换合并或者复制合并而变换为数据块,并且可以通过简单合并而变换为可擦除块或者可重用块。可重用块可以通过编程操作而变换为日志块。也如图6所示,数据块在交换合并、简单合并或复制合并后被丢弃,并且,由此变换为可擦除块。可擦除块通过擦除操作而变换为空闲块。空闲块可以通过编程操作而变换为日志块,或者通过简单合并而变换为数据块。
为了管理所述数据合并过程,快闪存储器件可以具有相关联的处理器(未示出)。这个处理器需要访问关于每个块的信息。因此,可以维持用于管理在快闪存储器件中的每个存储区域的一个或多个表。例如,可以维持包括空闲块列表的空闲块管理表,可以维持包括可擦除块列表的可擦除块管理表,可以维持包括日志块列表的日志块管理表,并且,可以维持包括数据块列表的数据块管理表。所述表格中的每个可以使用诸如阵列、链表、队列等的数据结构而被实现,并且可以例如存储与每个相应的块相关联的物理块编号(PBN)或者其它标记(indicia)。用于管理被丢弃的块的这样的数据结构在此被称为垃圾池。
为了按照本发明的某些实施例而管理快闪存储器,可以维持包括可重用块列表的可重用块管理表。所述可重用块管理表也可以被实现为例如阵列、链表、队列等的数据结构。可重用块管理表可以存储可重用块的PBN或者其它标记两者、连同所述块中的空页的起始地址。用于管理可重用块的数据结构在此还被称为重用池(reuse pool)。可以例如在快闪存储器件的映射区域中存储所有上述表。
图7是按照本发明的某些实施例的、用于在简单合并后处理日志块的方法的流程图。如图7中所示,首先执行简单合并(块110)。在简单合并后,所述日志块变为不具有有效数据的无效日志块。接着,检测所述无效日志块中的空存储量(即,从上一次擦除页起还没有将数据写入到该页的“清空的”页的数量)(块120)。然后,将所检测的清空的页的数量与预定的基准值(例如基准页计数)相比较(块130)。当清空的页的数量大于基准页计数时,向重用池分配无效日志块、连同指定第一清空的页的地址的“清空的页起始地址”(块140)。可以使用被置于重用池中的可重用块作为日志块,而不首先对其执行擦除操作。
当清空的页的数量小于或等于基准页计数时,向垃圾池分配所述无效日志块(块150)。
图8是图解按照本发明的某些实施例的、在执行简单合并操作后的多个示例日志块的状态的示意图。如图8中所示,对多个日志块进行简单合并操作。一些日志块包括相对大的数据量,而其它日志块仅包括相对小的数据量。使用传统的快闪存储器件存储管理技术,所有日志块将被丢弃并分配到垃圾池,而不论在每个日志块中的被编程数据的数量如何。
但是,按照本发明的某些实施例,取决于被编程到每个日志块中的数据量,在简单合并后对所述日志块进行分类。具体地,当在包括被编程数据的日志块中的页的数量超过基准值时,所述日志块被分配到垃圾池。当在包括被编程的数据的日志块中的页的数量小于或等于基准值时,相反,所述日志块被分配到重用池。
再次参照图8,分别具有4、20、11和13的PBN的日志块被分配到垃圾池,分别具有10、1、2和5的PBN的日志块被分配到重用池,在图8中,标记<12>、<10>、<4>和<12>表示在对应的块中的清空的页的起始地址。在这个示例实施例中,基准值被设置为块中的页的总数的50%(即1/2)。但是,所述基准值可以被设置为其它值。
图9图解了按照本发明的某些实施例的可重用块管理表。当向重用池分配日志块时,所述日志块的PBN和所述日志块中的第一清空的页的起始地址(即,清空的页起始编号)被一起记录到可重用块管理表中。
图10是图解按照本发明的某些实施例的分配新的日志块的方法的流程图。如图10中所示,接收到对于记录或更新在快闪存储器中存储的数据的请求(块200)。响应于此请求,确定是否需要新的日志块用于记录数据(块210)。如果不需要新的日志块,则操作返回到块200,其中,最终接收到记录数据的另一个请求。相反,如果确定需要新的日志块,则随后确定是否需要其中尚未写入数据的空块(即,空闲块)(块220)。如果需要空块,则接着确定当前是否可以获得空闲块(块230)。若如此,则将空闲块分配为其中要记录更新数据的新的日志块(块260)。相反,如果不可获得空闲块,则从垃圾池选择块(块240),然后擦除所选块以创建空闲块(块250),然后将其分配为日志块(块260)。
如果对记录数据的请求指定对应于块的第一页的地址,则通常需要在图10的判定块220获得空块。但是,在其它情况下,不需要空块。在这种情况下,图10的方法从判定块220前进到判定块270,其中,确定在重用池中是否存在至少一个可重用块。若如此,则从重用池选择可重用块(块280),并且将所选择的块作为日志块而重用(块290)。所述日志块具有相关联的清空的页起始地址(或者清空的页起始编号),并且,在对应于所述清空的页开始编号的清空的页开始写入数据。
按照本发明的某些实施例的用于管理快闪存储器的上述方法可被用于基于快闪存储器的器件。所述基于快闪存储器的器件包括至少一个快闪存储器和用于管理所述快闪存储器的处理器,并且可以例如是智能卡或SD(安全数字)卡。所述基于快闪存储器的器件可以还包括用于存储程序的存储器,如只读存储器(ROM)。为了说明清楚起见,在所述基于快闪存储器的器件中,用于存储程序的所述存储器被称为第一存储器,并且所述快闪存储器被称为第二存储器。
按照本发明的某些实施例的用于管理快闪存储器的上述方法可以被实现为在第一存储器中存储的运行在所述处理器上的程序。所述处理器可以通过执行在第一存储器中存储的所述程序来管理所述第二存储器。
按照本发明的某些实施例的用于管理快闪存储器的方法可以被实现为程序,并且被存储在记录介质中。
按照本发明的某些实施例,在由于合并操作而变为无效的日志块中,不擦除具有超过清空的页的预定百分比的日志块,而是将其用作新的日志块,以便降低所述器件的擦除计数。结果,可以延长具有有限的编程/擦除计数的快闪存储器的寿命。另外,新的日志块可以从重用池选择,并且可被立即使用,而不执行擦除操作。因此,不需要用于擦除的时间,并且,因此,可以改善性能。当所记录的数据的模式的随机性增大时,可以提高具有显著数量的未使用空间的日志块的简单合并的频率。当简单合并的频率较高时,当块大小较大时,并且/或者当未使用的日志和空闲块的数量较小时,本发明可能特别有效。
已经在此通过参照按照本发明的实施例的方法、器件和/或者计算机程序产品的框图和/或流程图图示,来描述了本发明。应理解,可以通过计算机程序指令来实现框图和/或流程图图示中的块、以及框图和/或者流程图图示中的块的组合。这些计算机程序指令可以被提供到处理器或者其它可编程的数据处理装置,以产生机器(machine),以便经由处理器或者其它可编程数据处理装置而执行的指令创建用于实现在所述框图和/或者流程图的一个或多个块中指定的功能/操作的手段(功能)和/或结构。
这些计算机程序指令可以被存储在计算机可读存储器中,所述计算机可读存储器可以引导计算机或者其它可编程数据处理装置来以特定方式工作,以便在计算机可读存储器中存储的指令产生包括实现在所述框图和/或流程图块中指定的功能/操作的指令的制造产品。所述计算机程序指令也可以被安装到处理器或者其它可编程的数据处理装置中,以执行一系列操作步骤来产生计算机实现的处理,以便在所述处理器或者其它可编程装置上执行的指令提供用于实现在所述框图和/或者流程图块中指定的功能/操作的步骤。
因此,本发明的各方面可以被实现为硬件和/或软件(包括固件、驻留软件、微码等)。而且,本发明可以采用在计算机可用或者计算机可读存储介质上的计算机程序产品的形式,所述计算机可用或者计算机可读存储介质使得计算机可用或者计算机可读程序代码被包含在所述介质中,以由指令执行***或者结合指令执行***而使用。
也应当注意,在某些替代实现方式中,在所述块中所述的功能/行为可以不按在流程图所述的顺序发生。例如,根据所涉及的功能/操作,可以实际上基本上同时执行连续地示出的两个块,或者可以有时以逆序执行所述块。而且,所述流程图和/或框图的给定块的功能可以被分离为多个块,并且/或者,可以至少部分地整合所述流程图和/或框图的两个或者多个块的功能。
虽然已经参照本发明的示例实施例而示出和说明了本发明,但是本领域内的普通技术人员将理解,在不背离由所附权利要求限定的本发明的精神和范围的情况下,可以进行形式和细节上的各种改变。
Claims (9)
1.一种用于操作非易失性存储器件的方法,所述非易失性存储器件包括存储第一数据的第一数据块、以及存储第一数据中的至少一些的更新版本的第一日志块,所述方法包括:
将在第一数据块中的第一数据的有效部分复制到不具有数据的空闲块,以产生第二数据块;
将第一数据中的至少一些的更新版本从第一日志块复制到第二数据块;
响应于至少一个预定条件被满足,将所述第一日志块指定为可重用日志块,而不从其擦除数据;以及
在第一日志块被指定为可重用日志块之后,将在第二数据块或第三数据块中存储的数据中的至少一些的更新版本记录到第一日志块的清空的存储器中,
其中,第一、第二和第三数据块是不同的数据块,
其中,响应于至少一个预定条件被满足、将所述第一日志块指定为可重用日志块而不从其擦除数据的步骤包括:
确定在第一日志块中的清空的存储器的量;
将所确定的清空的存储器的量与预定的基准值相比较;以及
基于所确定的在第一日志块中的清空的存储器的量超过所述预定基准值,指定第一日志块为可重用日志块,而不从其擦除数据。
2.按照权利要求1的方法,其中,所述非易失性存储器件是快闪存储器件。
3.按照权利要求2的方法,其中,清空的存储器的量是在第一日志块中的清空的页的数量,并且,其中,指定第一日志块为可重用日志块而不从其擦除数据的步骤包括:在重用池表中记录第一日志块的标识符、以及与第一日志块相关联的清空的页起始地址。
4.按照权利要求3的方法,其中,第一日志块的标识符包括第一日志块的物理块编号。
5.按照权利要求3的方法,还包括:将在第二数据块中存储的第二数据中的至少一些的更新版本记录到可重用日志块中,而不从所述可重用日志块擦除第一数据。
6.按照权利要求5的方法,其中,将在第二数据块中存储的第二数据中的至少一些的更新版本记录到可重用日志块中而不从所述可重用日志块擦除第一数据的步骤包括:
接收所述第二数据中的至少一些的更新版本;
确定所述第二数据中的至少一些的更新版本要被存储在新的日志块中;
确定所述新的日志块不需要是空闲存储块;
选择所述可重用日志块作为所述新的日志块;以及
将在所述第二数据块中存储的第二数据中的至少一些的更新版本记录到所述可重用日志块中。
7.按照权利要求1的方法,其中,所述预定的基准值是在所述第一日志块中的页的总数的大约1/2。
8.一种非易失性存储器件,包括:
非易失性存储器,其包括第一数据块和对应于第一数据块的第一日志块,在所述第一日志块中记录用于更新第一数据块的数据;以及
处理器,其被配置为管理所述非易失性存储器,
其中,所述处理器被配置为:将在第一数据块中的有效数据和所述第一日志块中的有效数据复制到不具有数据的空闲块,以产生第二数据块,
其中,所述处理器被进一步配置为:将第一日志块分配为第三日志块而不从第一日志块擦除数据,以将在第二数据块或第三数据块中存储的数据中的至少一些的更新版本记录到第一日志块的清空的页中,
其中,所述处理器被进一步配置为:响应于至少一个预定条件被满足,通过确定在第一日志块中的清空的存储器的量;将所确定的清空的存储器的量与预定的基准值相比较;以及基于所确定的在第一日志块中的清空的存储器的量超过所述预定基准值将第一日志块指定为可重用日志块而不从其擦除数据,来将所述第一日志块指定为可重用日志块,而不从其擦除数据,并且
其中,所述处理器被进一步配置为:基于预定条件,在将第一日志块指定为可重用日志块之后,将在第二数据块或第三数据块中存储的数据中的至少一些的更新版本记录到第一日志块的清空的存储器。
9.按照权利要求8的基于存储器的器件,其中,所述所述非易失性存储器是快闪存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR101643/06 | 2006-10-19 | ||
KR1020060101643A KR100849221B1 (ko) | 2006-10-19 | 2006-10-19 | 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101165660A CN101165660A (zh) | 2008-04-23 |
CN101165660B true CN101165660B (zh) | 2011-12-21 |
Family
ID=39198533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100061185A Active CN101165660B (zh) | 2006-10-19 | 2007-01-31 | 在非易失性存储器中重用日志块的方法、非易失性存储器件 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7783851B2 (zh) |
JP (1) | JP5336060B2 (zh) |
KR (1) | KR100849221B1 (zh) |
CN (1) | CN101165660B (zh) |
DE (1) | DE102007006307A1 (zh) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI358068B (en) * | 2007-10-19 | 2012-02-11 | Phison Electronics Corp | Writing method for non-volatile memory and control |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8219740B2 (en) * | 2008-06-25 | 2012-07-10 | International Business Machines Corporation | Flash sector seeding to reduce program times |
KR100954039B1 (ko) * | 2008-08-11 | 2010-04-20 | (주)인디링스 | 플래시 메모리 제어 방법 및 제어 장치 |
KR101021364B1 (ko) * | 2008-10-10 | 2011-03-14 | 한양대학교 산학협력단 | 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 멀티 플래시 메모리 관리방법 및 장치 |
KR100987251B1 (ko) * | 2008-10-10 | 2010-10-12 | 한양대학교 산학협력단 | 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법및 장치 |
KR101510120B1 (ko) * | 2008-11-21 | 2015-04-10 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 관리 방법 |
KR101663667B1 (ko) * | 2009-02-03 | 2016-10-07 | 삼성전자주식회사 | 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치 |
JP5310053B2 (ja) * | 2009-02-12 | 2013-10-09 | 住友電気工業株式会社 | マイクロコントローラを備えた光データリンク |
KR101020781B1 (ko) | 2009-03-04 | 2011-03-09 | 한국과학기술원 | 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법 |
EP2441004B8 (en) | 2009-06-12 | 2020-02-19 | Violin Systems LLC | Memory system having persistent garbage collection |
CN101957797B (zh) * | 2009-07-17 | 2013-01-09 | 群联电子股份有限公司 | 闪速存储器逻辑区块管理方法及其控制电路与储存*** |
KR20110018157A (ko) * | 2009-08-17 | 2011-02-23 | 삼성전자주식회사 | 플래시 메모리 장치의 액세스 방법 |
US8838877B2 (en) * | 2009-09-16 | 2014-09-16 | Apple Inc. | File system derived metadata for management of non-volatile memory |
US20110119462A1 (en) * | 2009-11-19 | 2011-05-19 | Ocz Technology Group, Inc. | Method for restoring and maintaining solid-state drive performance |
US8131772B2 (en) * | 2009-12-04 | 2012-03-06 | Unisys Corporation | Method and apparatus for improving the performance of object-oriented queues |
KR101153688B1 (ko) * | 2010-10-15 | 2012-06-18 | 성균관대학교산학협력단 | 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템 |
US9684590B2 (en) * | 2010-10-25 | 2017-06-20 | Seagate Technology Llc | Storing corresponding data units in a common storage unit |
KR20120043521A (ko) * | 2010-10-26 | 2012-05-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US9396106B2 (en) * | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US9075708B1 (en) * | 2011-06-30 | 2015-07-07 | Western Digital Technologies, Inc. | System and method for improving data integrity and power-on performance in storage devices |
US9158670B1 (en) * | 2011-06-30 | 2015-10-13 | Western Digital Technologies, Inc. | System and method for dynamically adjusting garbage collection policies in solid-state memory |
US8762627B2 (en) | 2011-12-21 | 2014-06-24 | Sandisk Technologies Inc. | Memory logical defragmentation during garbage collection |
US9223649B2 (en) * | 2012-02-15 | 2015-12-29 | Sandisk Technologies Inc. | System and method of sending correction data to a buffer of a non-volatile memory |
US9244833B2 (en) * | 2012-05-30 | 2016-01-26 | Silicon Motion, Inc. | Data-storage device and flash memory control method |
KR101997572B1 (ko) * | 2012-06-01 | 2019-07-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법 |
KR102147359B1 (ko) * | 2012-06-29 | 2020-08-24 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치 |
US9268652B1 (en) | 2012-10-31 | 2016-02-23 | Amazon Technologies, Inc. | Cached volumes at storage gateways |
US9448919B1 (en) | 2012-11-13 | 2016-09-20 | Western Digital Technologies, Inc. | Data storage device accessing garbage collected memory segments |
KR102252419B1 (ko) * | 2014-01-09 | 2021-05-14 | 한국전자통신연구원 | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 |
CN103838521B (zh) * | 2014-02-28 | 2017-02-08 | 华为技术有限公司 | 一种数据处理方法及装置 |
KR102285462B1 (ko) * | 2014-03-26 | 2021-08-05 | 삼성전자주식회사 | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법 |
JP6241373B2 (ja) * | 2014-06-19 | 2017-12-06 | 株式会社デンソー | 記憶装置、フラッシュメモリ制御装置、及びプログラム |
CA2896369C (en) * | 2014-06-27 | 2017-08-15 | Chenyi Zhang | Method for writing data into flash memory apparatus, flash memory apparatus, and storage system |
US10210168B2 (en) * | 2015-02-23 | 2019-02-19 | International Business Machines Corporation | Managing data in storage according to a log structure |
US10599352B2 (en) * | 2015-08-14 | 2020-03-24 | Samsung Electronics Co., Ltd. | Online flash resource allocation manager based on a TCO model |
JP6414852B2 (ja) * | 2015-12-14 | 2018-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US9880743B1 (en) * | 2016-03-31 | 2018-01-30 | EMC IP Holding Company LLC | Tracking compressed fragments for efficient free space management |
KR20180026876A (ko) * | 2016-09-05 | 2018-03-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102107604B1 (ko) * | 2018-03-26 | 2020-05-07 | 성균관대학교 산학협력단 | 비휘발성 메모리 장치, 및 비휘발성 메모리의 데이터 관리 방법 |
US10698621B2 (en) * | 2018-04-23 | 2020-06-30 | Western Digital Technologies, Inc. | Block reuse for memory operations |
KR102387960B1 (ko) * | 2018-07-23 | 2022-04-19 | 삼성전자주식회사 | 컨트롤러 및 그것의 동작 방법 |
CN110045918B (zh) * | 2018-12-03 | 2021-09-03 | 蚂蚁金服(杭州)网络技术有限公司 | 一种高效的数据单元重用方法和*** |
US11204722B1 (en) * | 2020-06-04 | 2021-12-21 | Western Digital Technologies, Inc. | Content-aware storage system and method for use therewith |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1389790A (zh) * | 2001-06-04 | 2003-01-08 | 三星电子株式会社 | 闪速存储器管理方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404485A (en) | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US6105103A (en) * | 1997-12-19 | 2000-08-15 | Lsi Logic Corporation | Method for mapping in dynamically addressed storage subsystems |
KR100644602B1 (ko) | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
JP4812192B2 (ja) | 2001-07-27 | 2011-11-09 | パナソニック株式会社 | フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法 |
KR100608602B1 (ko) * | 2003-12-10 | 2006-08-03 | 삼성전자주식회사 | 플래시 메모리, 이를 위한 사상 제어 장치 및 방법 |
WO2005106673A1 (ja) | 2004-04-28 | 2005-11-10 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置及びデータ書込み方法 |
KR100638638B1 (ko) * | 2004-09-03 | 2006-10-26 | 명지대학교 산학협력단 | 플래시 메모리의 제어 방법 |
US7315916B2 (en) * | 2004-12-16 | 2008-01-01 | Sandisk Corporation | Scratch pad block |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
JP2007133541A (ja) * | 2005-11-09 | 2007-05-31 | Tokyo Electron Device Ltd | 記憶装置、メモリ管理装置、メモリ管理方法及びプログラム |
-
2006
- 2006-10-19 KR KR1020060101643A patent/KR100849221B1/ko active IP Right Grant
- 2006-11-30 US US11/565,009 patent/US7783851B2/en active Active
-
2007
- 2007-01-30 DE DE102007006307A patent/DE102007006307A1/de not_active Withdrawn
- 2007-01-31 CN CN2007100061185A patent/CN101165660B/zh active Active
- 2007-10-18 JP JP2007271763A patent/JP5336060B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1389790A (zh) * | 2001-06-04 | 2003-01-08 | 三星电子株式会社 | 闪速存储器管理方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102007006307A8 (de) | 2008-07-31 |
KR20080035237A (ko) | 2008-04-23 |
US7783851B2 (en) | 2010-08-24 |
US20080098192A1 (en) | 2008-04-24 |
CN101165660A (zh) | 2008-04-23 |
JP5336060B2 (ja) | 2013-11-06 |
DE102007006307A1 (de) | 2008-04-24 |
JP2008103071A (ja) | 2008-05-01 |
KR100849221B1 (ko) | 2008-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101165660B (zh) | 在非易失性存储器中重用日志块的方法、非易失性存储器件 | |
US7340581B2 (en) | Method of writing data to non-volatile memory | |
CN101640069B (zh) | 用于闪速存储器的平均磨损方法与平均磨损*** | |
CN100458674C (zh) | 多数据区段同时编程和在其它指定块中存储物理块特征的闪速eeprom*** | |
CN101382918B (zh) | 一种基于数据交换区的NAND Flash闪存优化管理方法 | |
US20100023675A1 (en) | Wear leveling method, and storage system and controller using the same | |
CN100501868C (zh) | 基于NAND Flash存储器文件***的实现方法 | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存***与控制器 | |
CN101673245A (zh) | 包括存储器管理装置的信息处理装置和存储器管理方法 | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
CN101414282B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101499315B (zh) | 快闪存储器平均磨损方法及其控制器 | |
CN109669889B (zh) | 一种轻量型Nor Flash闪存控制方法和装置 | |
CN100433195C (zh) | 闪存介质数据写入方法 | |
CN101408864B (zh) | 用于断电时的数据保护方法及使用此方法的控制器 | |
US20100306456A1 (en) | Method for even utilization of a plurality of flash memory chips | |
CN101739348B (zh) | 内存***及其控制方法 | |
JP5057887B2 (ja) | データ更新装置及びデータ更新方法及びデータ更新プログラム | |
CN107341049B (zh) | 一种事务处理的优化处理方法及装置 | |
GB2411499A (en) | Maintaining erased blocks in a non-volatile memory | |
CN101661432B (zh) | 闪存区块管理方法、闪存储存***及控制器 | |
CN100538900C (zh) | 闪存介质中的数据操作方法 | |
CN100421087C (zh) | 非接触式智能卡数据读写的方法 | |
US8200611B2 (en) | File system and data management method | |
CN101788954A (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 |