CN101673226B - Nand错误管理 - Google Patents
Nand错误管理 Download PDFInfo
- Publication number
- CN101673226B CN101673226B CN200910166925.2A CN200910166925A CN101673226B CN 101673226 B CN101673226 B CN 101673226B CN 200910166925 A CN200910166925 A CN 200910166925A CN 101673226 B CN101673226 B CN 101673226B
- Authority
- CN
- China
- Prior art keywords
- data
- memory block
- memory
- queuing
- read
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims abstract description 83
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000007257 malfunction Effects 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 21
- 230000009471 action Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 239000007787 solid Substances 0.000 description 9
- 230000014509 gene expression Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/085—Error detection or correction by redundancy in data representation, e.g. by using checking codes using codes with inherent redundancy, e.g. n-out-of-m codes
-
- 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
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0692—Multiconfiguration, e.g. local and global addressing
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开了用于管理在电子设备中的诸如NAND存储器之类的存储器内的各种错误的技术。涉及一种用于管理在电子设备中的间接的、非易失性(NV)块存储器上的读取故障的方法,包括:检测在NV存储器块中的操作故障;将来自与所述操作故障相关联的所述NV存储器块的有效用户数据重定位到好块;将与所述操作故障相关联的所述NV存储器块标记为坏块;以及更新间接表。另外,还涉及相应的用于错误管理的系统。在一些实施例中,管理擦除、读取以及编程错误处理。
Description
技术领域
本发明涉及计算机存储设备。
背景技术
电力计算机系统将数据存储到不同类型的存储介质和设备。可以将这样的存储介质和设备认为是非易失性的,并且当关闭计算机系统的电源时持久地存储数据。非易失性存储设备的一个实例为计算机系统的硬盘。存储设备还可以包括NAND闪存和固态硬盘(SSD)。存储介质可以包括通过存储设备访问的实际盘或盘片。在处理器上执行的操作系统(OS)可以请求或执行动作,例如对存储介质上的特定位置进行读取和写入。
写入到在这些特定存储设备中的位置的数据和从这些位置读取的数据可以用多个块构成。表示数字信息(即1或0)的位可以组合为数据。在存储设备中,这些位可以被存储在单元中。单元可以组织成页。因此,页代表数据。对于NAND闪存来说,页的典型大小约为2048字节;然而,对于硬盘驱动器(HDD)来说这并不是典型的大小。在某些实例中,页可以有不同的大小。
在诸如NAND闪存之类的一些非易失性存储器中,可以将页放入擦除块(erase block)中。擦除块典型地包括约64个页,然而,在某些实例中,擦除块可以包括不同数目的页。在这样的存储器中,典型地要求同时擦除在给定擦除块中的所有页,而不是单独地擦除。
此外,在诸如NAND闪存之类的非易失性存储器中,典型地要求在对页进行写入之前对它们进行擦除。已擦除的页有时也被称为“空白(blank)”或“空白页”。因此,仅空白页可以被写入。为了对相同页写入两次,在第一次写入之后和第二次写入之前,该页被擦除。该规则的例外是,在不进行中间擦除的情况下,在被写入页中的位可以从“1”转换(toggle)到“0”。
当在存储设备或存储介质的页上执行诸如写入的动作时,首先将包括那个页的整个擦除块读入临时位置、然后擦除该擦除块,并且将所有数据重新写入该擦除块中的空白页,所述数据包括来自临时缓冲器的用于除请求的页写入之外的所有的数据,和用于请求的页写入的新数据。因此,典型地,页写入需要在包含该页的整个擦除块上进行读、擦除以及写入操作,这一过程相对很慢。所述临时位置可以是在计算机系统的易失性存储器中。
在类似NAND闪存的存储器的擦除块上执行的擦除周期的数目可能是有限的。典型地,对于每一个擦除块,建议执行不多于100,000个周期的这样的擦除动作。
因此,除了在擦除块处所看到的由于多个擦除周期导致的恶化问题之外,当执行影响整个擦除块的动作时,还存在性能问题。在擦除块和临时位置之间移动页会在计算机系统中引入显著的输入/输出(IO)业务量,并且会使用相当多的处理器(即控制器)资源。
发明内容
本申请的一个方面涉及一种用于管理在电子设备中的间接的、非易失性(NV)块存储器上的读取故障的方法,包括:
检测在NV存储器块中的读操作或写操作中的至少一个中的错误;
暂时停止针对所述NV存储器块的所有排队的存储器操作;
将与所述错误相关联的所述NV存储器块标记为坏块;
将来自与所述错误相关联的所述NV存储器块的有效用户数据重定位到好块;
在已经从与所述错误相关联的所述NV存储器块将所有的有效用户数据重定位到好块后,更新间接表;
更新所述排队的存储器操作中的至少一些,以反映对所述间接表的改变;以及
恢复存储器操作。
本申请的另一个方面涉及一种系统,包括:
控制器;
非易失性存储设备;以及
逻辑,用于:
管理在电子设备中的间接的、非易失性(NV)块存储器上的读取故障,包括:
检测在NV存储器块中的读操作或写操作中的至少一个中的错误;
暂时停止针对所述NV存储器块的所有排队的存储器操作;
将与所述错误相关联的所述NV存储器块标记为坏块;
将来自与所述错误相关联的所述NV存储器块的有效用户数据重定位到好块;
在已经从与所述错误相关联的所述NV存储器块将所有的有效用户数据重定位到好块后,更新间接表;
更新所述排队的存储器操作中的至少一些,以反映对所述间接表的改变;以及
恢复存储器操作。
附图说明
参照附图来进行详细的描述,其中:
图1是根据一些实施例的可以用于实现NAND错误管理的计算机系统的示意图。
图2A是根据一些实施例的包括在诸如磁盘高速缓存或固态硬盘的非易失性存储器中的页元数据信息的框图。
图2B是根据一些实施例的包括在易失性存储器中的用于控制磁盘高速缓存或固态硬盘的页元数据信息的框图。
图3是说明了根据一些实施例的用于管理NAND读取错误的过程的流程图。
图4是说明了根据一些实施例的用于管理NAND读取错误的过程的流程图。
图5是说明了根据一些实施例的用于管理NAND读取错误的过程的流程图。
图6是说明了根据一些实施例的用于管理写入访问错误的过程的流程图。
具体实施方式
本文描述的是用于实现NAND错误管理的示例性系统和方法,在一些实施例中,可以在诸如例如计算机系统之类的电子设备中实现所述NAND错误管理。在下面的描述中,阐述了许多具体细节以提供对各种实施例的透彻理解。然而,本领域技术人员将理解,可以在没有这些具体细节的情况下实施各种实施例。在其他实例中,未详细说明或描述公知的方法、过程、部件和电路,以免混淆特定实施例。
图1说明了提供了磁盘高速缓存和/或固态硬盘(SSD)的计算机系统100。计算机系统100包括诸如个人计算机(PC)、膝上型计算机和服务器计算机之类的各种设备和系统中的一种。计算机系统100可以被特别地配置为对实现了磁盘高速缓存的存储设备或硬盘驱动器执行快速或高效的高速缓存(即在存储介质上的更高效的操作)。可替换地,计算机系统100可以被配置为包括如在本申请中详细说明的那样实现的固态硬盘(SSD)。所说明的特定计算机系统100示出了磁盘高速缓存和SSD。可以预期,计算机系统100的特定实现可以仅具有磁盘高速缓存或SSD,而在某些情况(如这里所图示的)中,磁盘高速缓存和SSD可以都被实现。存储设备的实例包括NAND闪存、NOR闪存、聚合物存储器、或用包含存储器页的擦除块组织的任何其它非易失性存储器。
计算机系统100包括中央处理单元(CPU)或控制器102。在某些实施例中,控制器102是包括多个控制器的双或多处理器。控制器102可以用于在计算机系统100中的各种处理,并且特别地,可以包括存储器和磁盘控制器。
在计算机系统100中包括存储器104。控制器102控制存储器104。存储器104可以包括诸如随机存取存储器(RAM)之类的一个或多个存储器。存储器104可以包括易失性和非易失性存储器,其中,当关闭计算机系统100时,在易失性存储器中的数据会丢失,而在非易失性存储器中的数据不会丢失。在本实例中,存储器104特别地包括易失性存储器106。易失性存储器106可以是动态随机存取存储器(DRAM)。
可替换地,易失性存储器106可以驻留在磁盘高速缓存108或SSD 110中,而不是与磁盘高速缓存108和/或SSD 110分离。此外,控制器(未示出)可以驻留在磁盘高速缓存108或SSD 110或者硬盘驱动器(HDD)112中。特别地,驻留的控制器控制易失性和非易失性存储器的访问。此外,磁盘高速缓存108可以在独立总线上,而不是如图1中示出的那样连接为过滤器。在特定实现中,磁盘高速缓存108驻留在HDD 112中。
在本实例中,易失性存储器106存储页元数据114。页元数据114包括页(即,由特定物理地址标识的页)的消耗状态信息。消耗状态信息包括三种状态:已用、有效和空白。如下面进一步描述的,消耗状态信息的使用允许执行在单独页上的动作,由此避免必须擦除整个块。这使得能够通过在单独页而不是整个擦除块上执行动作,来进行快速的磁盘高速缓存和固态硬盘操作。
存储器104可以存储可由控制器102执行的操作系统116。应用程序或应用118可以存储在存储器104中。通过操作系统116运行应用118。操作系统116特别地用于执行对易失性存储器106和诸如硬盘112和/或SSD 110之类的存储设备的读取和写入操作。可以由来自应用118的请求而引起执行这些操作。
在计算机系统100中包括磁盘高速缓存108。在使用诸如SSD 110之类的存储设备替代HDD 112的实现中,可以通过SSD 110执行与磁盘高速缓存118所执行的类似的逻辑或处理。从HDD 112发送到存储器104的数据(即,操作系统116或应用118)通过磁盘高速缓存108和/或SSD 110。
特别地,磁盘高速缓存108用于在HDD 112上执行的动作。例如,由操作系统116执行读请求。如果在磁盘高速缓存108中发现数据,则将该数据从磁盘高速缓存108发送到操作系统116。如果在磁盘高速缓存108中未发现数据,则从HDD 112读取数据。
如果由操作系统116执行写入动作,则根据磁盘高速缓存逻辑,将数据发送到磁盘高速缓存108和/或HDD 112。在操作系统116不活动期间,可以将数据从磁盘高速缓存108发送到HDD 112。
在页元数据114中的信息包括关于单独页的状态以及逻辑到物理地址映射表的信息,所述信息通过允许对单个页进行操作而不是在整个块(即擦除块)上的多个动作,来允许更快的磁盘高速缓存和SSD 110操作(即,更高效的操作)。
图2A说明了在诸如磁盘高速缓存108或固态硬盘(SSD)110之类的非易失性存储器中的数据和页元数据的布置。具体地,表200支持描述为在磁盘高速缓存108或SSD 110上的非易失性存储器的动态寻址的技术。动态寻址连续地改变在逻辑地址和物理地址之间的映射,以确保每个逻辑写入操作促使将数据存储在非易失性存储器的先前被擦除的位置中(即,处于不同的物理地址)。因此,通过动态寻址,每一个逻辑写入操作在页上产生单个操作。这与对非易失性存储器的包含擦除块使用三次访问(一次是在包含指定地址的擦除块读取数据,一次是擦除/无效旧的擦除块,以及第三次是在擦除块写入更新的数据)的典型的寻址形成对比。
表200包括物理地址索引202,所述物理地址索引202对在存储介质或存储设备中的(例如在磁盘高速缓存108或SSD 110中包括的)物理位置的物理地址进行索引。特别地,表200不包括物理地址,而是通过物理地址索引202访问物理地址。索引指向物理地址,其中,物理地址定义在存储数据的特定擦除块中的特定页。
表200包括表示实际数据的数据字段204。表200还包括由元数据字段206表示的元数据。元数据字段可以包括描述由磁盘高速缓存108使用的元数据的高速缓存元数据字段208;然而,SSD 110的操作可能不需要该字段。高速缓存元数据208中包含的是针对典型现有技术的高速缓存元数据或应用特定元数据的子字段,如下面的示例性字段所示:标签=磁盘LBA(逻辑块地址)字段212、有效位字段214、脏位(dirty bit)字段216等。包括这样的信息或应用特定元数据在本领域是公知的。
提供了逻辑地址字段218和消耗状态字段220,以允许在存储介质上的快速磁盘高速缓存或高效的SSD操作。逻辑地址字段218表示操作系统116、磁盘高速缓存118或在SSD 110中的逻辑可以获取数据的地址。特别地,在执行到和来自磁盘高速缓存108或SSD 110的动作中,在磁盘高速缓存118或SSD 110中的算法参照逻辑地址字段218所定义的逻辑地址。消耗状态字段220表示页的三种消耗状态中的一种。第一种消耗状态为“空白”,其指示可以将数据写入页中。第二种消耗状态为“有效”,其指示在页中存在数据,并且可以读取该数据。第三种消耗状态是“已用”,其指示在页中存在数据,但是该数据不再有效或者不可读取。标识为“已用”的页是可以擦除的页。通过提供页的消耗状态信息,可以在页上执行动作(例如,写入或擦除),而不必在擦除块上执行动作。
在本实例中,表200包括占据物理页1到12并被物理地址索引202索引的12个数据项222(1)到222(12)。特别地,数据项222(1)被物理地址索引1索引;数据项222(2)被物理地址索引2索引;数据项222(3)被物理地址3索引;等等。
由页的物理地址索引定义的页可以被组合为擦除块。例如,由索引1、2、3和4定义的页可以被组合为擦除块1;由索引5、6、7和8定义的页可以被组合为擦除块2;以及由索引地址9、10、11和12定义的页可以被组合为擦除块3。页的数目和它们的分组是用于说明的目的,可以预计,典型的擦除块会包括不止四个页,磁盘高速缓存108和SSD 110会包括不止三个擦除块。
磁盘高速缓存108或SSD 110可能存在关于它们可以寻址的逻辑页的最大数目的限制。例如,在本图示中,最多可以为6个页。因此,在项222中的6个页可以具有“有效”的消耗状态。在本实例中,这些项是项222(2)、项222(3)、项222(4)、项222(6)、项222(8)和项222(9)。项222的其它项为“已用”或“空白”。
图2B说明了在诸如易失性存储器106之类的易失性存储器中的页元数据信息。特别地,可以在易失性存储器106中存储逻辑地址到物理地址(L2P)表224和空白池(blank pool)表226。
L2P表224包括逻辑地址索引字段230和物理地址字段232。特别地,逻辑地址索引字段230提供对逻辑地址的索引;然而,L2P表224不包括逻辑地址。项234包括对逻辑地址的索引和对应的物理地址。
空白池表226包括物理地址索引字段236和消耗状态字段238。可以预期,对于典型的实现,由于在空白池表226中仅需要标识具有“空白”的消耗状态的物理地址,因此空白池236不包括消耗状态字段238。换言之,空白池表226仅仅是在表220中消耗状态为空白的物理地址的列表。项240的每一项包括具有“空白”的消耗状态的物理地址(即,对物理地址的索引)。通过标识可用或空白页,磁盘高速缓存108或SSD 110逻辑可以对特定空白页进行写入操作。在某些实现中,表200还可以在没有数据字段204的情况下被包括在易失性存储器中。在易失性存储器中,表200允许擦除块的相对快速和更高效的标识,这些擦除块大部分为空,并且需要查表逻辑来更新关于重定位的页元数据。
因为表200中的信息存储在非易失性存储器(即,磁盘高速缓存108和/或SSD 110)中,所以如果在易失性存储器106中的数据被破坏、擦除或成为不可用(即,断电后未保存),则可以使用来自表200的数据创建或重新创建在表224和226中的数据。这使得例如尽管不断地改变逻辑到物理地址映射,但是仍能够对磁盘高速缓存和固态硬盘应用进行电源故障恢复,并维护在易失性存储器中的L2P表224。
存储设备是计算机系统中最大的性能瓶颈之一。在一些实施例中,可以在非易失性存储器上实现写回磁盘高速缓存的计算机系统100可以显著地减轻这种性能瓶颈,同时提供对移动平台尤为关键的节能益处。固态硬盘提供类似的益处。通过参考上面而并入的相关应用在诸如NAND闪存之类的非易失性(NV)存储器上实现了用于磁盘高速缓存和SSD应用的算法,所述NAND闪存具有高写入时延和用页组织的数据,在可以对所述页再次写入之前,要在擦除块(EB)中擦除它们。这些算法具有以下特性:a)使用间接表L2P来将逻辑地址映射到物理页地址,b)对逻辑地址的写入被写入空白物理页,并将L2P更新为指向该页,c)空闲时,在擦除第一个块之前,在擦除块中的有效页被重定位到另一个擦除块,以及d)对于对逻辑地址的每次写入,在页元数据中保存序列号,以使能逻辑地址的当前(最近)写入的标识。这有助于正确的电源故障恢复。
然而,这些方法假定基础的固态非易失性存储器在读取、写入和擦除操作期间没有任何错误。实际上,在读取、写入和擦除操作期间周期性地发生错误,并且只要有可能就需要在不损坏数据完整性的情况下对其进行管理,以维持可靠的操作。因此,本文所描述的是管理诸如计算机系统100之类的计算机系统中的读取、编程错误以及读取错误的技术的实施例。不失一般性,并且仅用于说明的目的,在NAND环境下描述基础的非易失性存储器,尽管这些技术可应用于其它类型的存储器。因此,本文所描述的是用于对可靠的磁盘高速缓存和SSD操作进行NAND错误处理的新方法。
参照图3-6描述了示例性的技术。所描述的方法被图示为在逻辑流程图中的框的集合,所述逻辑流程图表示可以用硬件、软件、固件或它们的组合实现的操作序列。在软件环境中,这些框表示计算机指令,当这些指令被一个或多个处理器执行时,执行列举的操作。参照上述的计算机系统100和表200、224和226描述这些处理。尽管描述为流程图,但是可以预期,某些处理可以同时或者以不同顺序发生。
三种主要的错误类型是擦除错误、编程(写入)错误和读取故障,并且在下面解释了对这三种错误的每一种进行的处理。错误处理算法中的共同主题是错误导致基础块被标记为“坏”块。如果可能的话,将所述块中的任何当前(有效)数据移出到另一个擦除块。在这种重定位之后将任何先前排队的对故障块的存储器访问操作进行重映射。当系统处于重定位来自故障擦除块的数据的过程中时,可能发生不期望的掉电。系统可以推迟对NV坏块列表的更新,直到已经重定位了所有当前(有效)数据。如果在更新NV(非易失性)坏块列表之前发生电源故障,则系统将在下一电源周期(power cycle)期间重新发现所述坏块。
图3是说明了根据一些实施例的用于管理读取访问错误的过程的流程图。在操作310处,在称为块X的给定存储器块中发生存储器读取访问错误。在操作320处,包括该错误的访问的所有排队的存储器操作被中止,并且将故障状态返回给用户。在操作330处,块X被标记为坏块。在操作340处,来自块X的所有有效数据被重定位到好块。在操作350处,更新间接表。
图4是说明了根据一些实施例的用于管理存储器读取访问错误的过程的流程图,所述过程在所述存储器读取访问错误之后保留排队的存储器访问。例如,排队的存储器访问可以是NAND存储器擦除、编程或读取操作。
在操作410处,在称为块X的给定存储器块中发生存储器读取访问错误。在操作420处,包括该错误的访问的所有排队的存储器操作被中止,并且将故障状态返回给用户。在操作430处,块X被标记为坏块。在操作440处,来自块X的所有有效数据被重定位到好块。在操作450处,更新间接表。在操作460处,更新所述排队的存储器操作,以反映在操作450中对间接表做出的改变。在操作470处,恢复排队的存储器操作的执行。
在某些环境中,系统可能发现在未被用户请求的数据中的不可纠正的读取错误。在这样的情况,系统可以在内部标记错误,但是不应通知用户,直到用户请求该数据。如果用户在读取之前重写在标记的(发生故障的)逻辑地址处的数据,那么标记的错误被重写,并且用户不会经历读取错误。
图5是说明了根据一些实施例的用于管理NAND读取错误的过程的流程图。在操作510处,在称为块X的给定存储器块中发生存储器读取访问错误。在操作520处,包括该错误的访问的所有排队的存储器操作被中止,并且将故障状态返回给用户。在操作530处,块X被标记为坏块。在操作540处,更新间接表。在操作550处,更新除了以块X中的有效数据为目标的读取操作之外的所述排队的存储器操作,以反映在操作450中对间接表做出的改变。在操作560处,恢复排队的存储器操作的执行。在操作570处,来自块X的所有有效数据被重定位到好块。
图6是说明了根据一些实施例的用于管理写入访问错误的过程的流程图。在操作610处,在块X中发生存储器写入访问错误。在操作620处,包括该错误的访问的所有排队的存储器操作被中止,并且将故障状态返回给用户。在操作630处,块X被标记为坏块。在操作640处,来自块X的所有有效数据被重定位到好块。在操作650处,更新间接表。在操作660处,以故障块中的位置为目标的排队的写入操作被重新处理为以好块中的位置为目标。在操作670处,更新排队的读取访问,以反映间接表的改变。在操作680处,恢复正常的命令执行。
本文提到的“逻辑指令”涉及可以被一个或多个机器理解来执行一项或多项逻辑操作的表达。例如,逻辑指令可以包括可被处理器编译器解释用于对一个或多个数据对象执行一项或多项操作的指令。然而,这仅仅是机器可读指令的实例,并且实施例并不限于这个方面。
本文提到的术语“计算机可读介质”涉及能够保持可被一个或多个机器理解的表达的介质。例如,计算机可读介质可以包括一个或多个用于储存计算机可读指令或数据的储存设备。这样的储存设备可以包括诸如例如光、磁或半导体储存介质之类的储存介质。然而,这仅仅是计算机可读介质的实例,并且实施例并不限于这个方面。
本文提到的术语“逻辑”涉及用于执行一项或多项逻辑操作的结构。例如,逻辑可以包括基于一个或多个输入信号来提供一个或多个输出信号的电路。这样的电路可以包括接收数字输入并提供数字输出的有限状态机,或者响应于一个或多个模拟输入信号来提供一个或多个模拟输出信号的电路。这样的电路可以被提供在专用集成电路(ASIC)或现场可编程门阵列(FPGA)中。另外,逻辑可以包括储存在存储器中的机器可读指令连同用于执行这些机器可读指令的处理电路。然而,这些仅仅是可以提供逻辑的结构的实例,并且实施例并不限于这个方面。
本文描述的方法中的一些可以被实现为在计算机可读介质上的逻辑指令。当在处理器上执行时,所述逻辑指令使得处理器被编程为实现所描述的方法的专用机器。当被所述逻辑指令配置来执行本文所描述的方法时,所述处理器构成用于执行所描述的方法的结构。可替换地,本文描述的方法可以被简化为在例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等上的逻辑。
在说明书和权利要求书中,可以使用术语“耦合”和“连接”以及它们的派生词。在特定的实施例中,连接可被用来指示两个或更多个元件彼此之间是直接物理接触或电接触的。耦合可以意味着两个或更多个元件彼此之间是直接物理接触或电接触的。然而,耦合还可以意味着两个或更多的元件彼此之间不是直接接触的,但彼此之间仍然可以协作或交互。
说明书中提到“一个实施例”或者“实施例”意指结合该实施例描述的特定特征、结构或特性被包括在至少一种实现中。在说明书中各处出现的短语“在一个实施例中”可以全都指同一实施例或者并非全都指同一实施例。
尽管已经用具体到结构特征和/或方法动作的语言描述了实施例,但是可以理解,不应将声明的主题限制到所描述的具体特征或动作。而是,作为实现声明的主题的示例形式公开了这些具体特征和动作。
Claims (13)
1.一种用于管理在电子设备中的间接的、非易失性(NV)块存储器上的读取故障的方法,包括:
检测在NV存储器块中的读操作或写操作中的至少一个中的错误;
暂时停止针对所述NV存储器块的所有排队的存储器操作;
将与所述错误相关联的所述NV存储器块标记为坏块;
将来自与所述错误相关联的所述NV存储器块的有效用户数据重定位到好块;
在已经从与所述错误相关联的所述NV存储器块将所有的有效用户数据重定位到好块后,更新间接表;
更新所述排队的存储器操作中的至少一些,以反映对所述间接表的改变;以及
恢复存储器操作。
2.根据权利要求1所述的方法,还包括:
中止对与所述操作故障相关联的所述NV存储器块的排队的操作;以及
针对每一个排队的操作,将故障状态传递给用户。
3.根据权利要求1所述的方法,还包括:
跳过对至少一个排队的读取操作的更新,所述至少一个排队的读取操作以在与所述操作故障相关联的所述NV存储器块中的有效数据为目标。
4.根据权利要求1所述的方法,还包括:
将与所述NV存储器块相关联的数据标记为坏数据,其中所述NV存储器块与所述操作故障相关联;
针对读取故障,将故障状态传递给所述用户;
在随后对所标记的数据进行读取操作时,将故障状态传递给所述用户;以及
当所述用户重写所述数据时,不将所述数据标记为发生故障。
5.根据权利要求4所述的方法,还包括:
当所述用户未发起所述发生故障的读取访问时,不将故障状态传递给所述用户。
6.根据权利要求1所述的方法,其中,所述非易失性存储器包括NAND存储器。
7.根据权利要求6所述的方法,其中,所述间接的、非易失性(NV)块存储器是页级别的间接的、非易失性(NV)块存储器。
8.根据权利要求1所述的方法,还包括移动无效的用户数据。
9.根据权利要求1所述的方法,其中,所述读取错误表示用纠错码来纠正NV数据的失败。
10.根据权利要求1所述的方法,其中,所述读取错误表示用于NV数据操作的纠错码,在进行的纠正数超过指定阈值的情况下,所述NV数据操作成功进行。
11.一种系统,包括:
控制器;
非易失性存储设备;以及
逻辑,用于:
管理在电子设备中的间接的、非易失性(NV)块存储器上的读取故障,包括:
检测在NV存储器块中的读操作或写操作中的至少一个中的错误;
暂时停止针对所述NV存储器块的所有排队的存储器操作;
将与所述错误相关联的所述NV存储器块标记为坏块;
将来自与所述错误相关联的所述NV存储器块的有效用户数据重定位到好块;
在已经从与所述错误相关联的所述NV存储器块将所有的有效用户数据重定位到好块后,更新间接表;
更新所述排队的存储器操作中的至少一些,以反映对所述间接表的改变;以及
恢复存储器操作。
12.根据权利要求11所述的系统,还包括逻辑,用于:
中止对与所述操作故障相关联的所述NV存储器块的排队的操作;以及
针对每一个排队的操作,将故障状态传递给用户。
13.根据权利要求11所述的系统,还包括逻辑,用于:
跳过对至少一个排队的读取操作的更新,所述至少一个排队的读取操作以在与所述操作故障相关联的所述NV存储器块中的有效数据为目标。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/215,915 US20090327837A1 (en) | 2008-06-30 | 2008-06-30 | NAND error management |
US12/215,915 | 2008-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101673226A CN101673226A (zh) | 2010-03-17 |
CN101673226B true CN101673226B (zh) | 2013-08-07 |
Family
ID=41449081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910166925.2A Expired - Fee Related CN101673226B (zh) | 2008-06-30 | 2009-06-30 | Nand错误管理 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090327837A1 (zh) |
KR (1) | KR101176702B1 (zh) |
CN (1) | CN101673226B (zh) |
DE (1) | DE102009031125A1 (zh) |
TW (1) | TW201011767A (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE49818E1 (en) * | 2010-05-13 | 2024-01-30 | Kioxia Corporation | Information processing method in a multi-level hierarchical memory system |
US9600407B2 (en) | 2011-09-30 | 2017-03-21 | Intel Corporation | Generation of far memory access signals based on usage statistic tracking |
CN103946811B (zh) | 2011-09-30 | 2017-08-11 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
EP3382556A1 (en) | 2011-09-30 | 2018-10-03 | INTEL Corporation | Memory channel that supports near memory and far memory access |
US8687421B2 (en) * | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
WO2013095530A1 (en) | 2011-12-22 | 2013-06-27 | Intel Corporation | Efficient pcms refresh mechanism background |
US9418700B2 (en) * | 2012-06-29 | 2016-08-16 | Intel Corporation | Bad block management mechanism |
US20140013031A1 (en) * | 2012-07-09 | 2014-01-09 | Yoko Masuo | Data storage apparatus, memory control method, and electronic apparatus having a data storage apparatus |
US9478271B2 (en) * | 2013-03-14 | 2016-10-25 | Seagate Technology Llc | Nonvolatile memory data recovery after power failure |
KR102137934B1 (ko) | 2013-10-02 | 2020-07-28 | 삼성전자 주식회사 | 메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템 |
CN104199748A (zh) * | 2014-08-25 | 2014-12-10 | 浪潮电子信息产业股份有限公司 | 一种基于错误注入测试存储系统容忍坏扇区能力的方法 |
US9891833B2 (en) * | 2015-10-22 | 2018-02-13 | HoneycombData Inc. | Eliminating garbage collection in nand flash devices |
WO2017095911A1 (en) * | 2015-12-01 | 2017-06-08 | Huang Yiren Ronnie | Method and apparatus for logically removing defective pages in non-volatile memory storage device |
KR102684994B1 (ko) | 2016-08-10 | 2024-07-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
CN108038064B (zh) * | 2017-12-20 | 2021-01-15 | 北京兆易创新科技股份有限公司 | 一种PairBlock擦除出错的处理方法及装置 |
KR20190075557A (ko) * | 2017-12-21 | 2019-07-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN110413211B (zh) * | 2018-04-28 | 2023-07-07 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备以及计算机可读介质 |
CN111161781A (zh) * | 2018-11-07 | 2020-05-15 | 爱思开海力士有限公司 | 用于处理编程错误的存储器系统及其方法 |
US10726936B2 (en) * | 2018-12-20 | 2020-07-28 | Micron Technology, Inc. | Bad block management for memory sub-systems |
KR20200079851A (ko) * | 2018-12-26 | 2020-07-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
CN112230855A (zh) * | 2020-10-20 | 2021-01-15 | 英韧科技(上海)有限公司 | 固态硬盘及其读写方法 |
WO2022204928A1 (en) * | 2021-03-30 | 2022-10-06 | Yangtze Memory Technologies Co., Ltd. | Memory controller with read error handling |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5680640A (en) * | 1995-09-01 | 1997-10-21 | Emc Corporation | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state |
CN1716212A (zh) * | 2004-06-29 | 2006-01-04 | 联想(北京)有限公司 | 一种灾难恢复系统及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9614551D0 (en) * | 1996-07-11 | 1996-09-04 | Memory Corp Plc | Memory system |
US7173852B2 (en) * | 2003-10-03 | 2007-02-06 | Sandisk Corporation | Corrected data storage and handling methods |
US20080082736A1 (en) * | 2004-03-11 | 2008-04-03 | Chow David Q | Managing bad blocks in various flash memory cells for electronic data flash card |
US20060156024A1 (en) * | 2004-10-29 | 2006-07-13 | Matsushita Electric Industrial Co., Ltd. | Systems and methods for disk drive access under changes in environmental parameters |
JP2006285600A (ja) * | 2005-03-31 | 2006-10-19 | Tokyo Electron Device Ltd | 記憶装置、メモリ管理装置、メモリ管理方法及びプログラム |
TWI308741B (en) * | 2005-06-03 | 2009-04-11 | Quanta Storage Inc | A method of defect areas management |
US7774643B2 (en) * | 2006-01-06 | 2010-08-10 | Dot Hill Systems Corporation | Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array |
US7890796B2 (en) * | 2006-10-04 | 2011-02-15 | Emc Corporation | Automatic media error correction in a file server |
US7953919B2 (en) * | 2007-12-21 | 2011-05-31 | Spansion Llc | Physical block addressing of electronic memory devices |
-
2008
- 2008-06-30 US US12/215,915 patent/US20090327837A1/en not_active Abandoned
-
2009
- 2009-06-29 TW TW098121879A patent/TW201011767A/zh unknown
- 2009-06-30 KR KR1020090058952A patent/KR101176702B1/ko not_active IP Right Cessation
- 2009-06-30 CN CN200910166925.2A patent/CN101673226B/zh not_active Expired - Fee Related
- 2009-06-30 DE DE102009031125A patent/DE102009031125A1/de not_active Ceased
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5680640A (en) * | 1995-09-01 | 1997-10-21 | Emc Corporation | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state |
CN1716212A (zh) * | 2004-06-29 | 2006-01-04 | 联想(北京)有限公司 | 一种灾难恢复系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101673226A (zh) | 2010-03-17 |
KR20100003244A (ko) | 2010-01-07 |
KR101176702B1 (ko) | 2012-08-23 |
TW201011767A (en) | 2010-03-16 |
DE102009031125A1 (de) | 2010-04-15 |
US20090327837A1 (en) | 2009-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101673226B (zh) | Nand错误管理 | |
TWI613652B (zh) | 資料儲存裝置以及其操作方法 | |
US8316257B2 (en) | NAND power fail recovery | |
US8041884B2 (en) | Controller for non-volatile memories and methods of operating the memory controller | |
TWI596480B (zh) | 記憶體儲存系統及其中控裝置、管理方法與斷電復原方法 | |
CN102054533B (zh) | 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器 | |
EP0882264B1 (en) | Flash memory mass storage system and associated method | |
JP5032172B2 (ja) | 統合メモリ管理装置及び方法並びにデータ処理システム | |
US7529879B2 (en) | Incremental merge methods and memory systems using the same | |
TWI645404B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
US20070094445A1 (en) | Method to enable fast disk caching and efficient operations on solid state disks | |
US20100235568A1 (en) | Storage device using non-volatile memory | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
JP2005182793A (ja) | 頻繁にアクセスされたセクタの動作による不揮発性メモリに対するより速い書込み動作 | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
CN101727978A (zh) | 在电可擦和可编程的非易失性存储器中写入和读取数据的方法 | |
CN110928487A (zh) | 存储装置和存储装置的操作方法 | |
US20150074336A1 (en) | Memory system, controller and method of controlling memory system | |
US11100005B2 (en) | Logical-to-physical (L2P) table sharping strategy | |
TW202101222A (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI457941B (zh) | 區塊為基礎快閃記憶體之位元組存取的方法與裝置 | |
TW202032374A (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
JP2013196155A (ja) | メモリシステム | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
CN108509295B (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: 20130807 Termination date: 20180630 |