CN101300554A - 非易失性存储器故障的恢复 - Google Patents
非易失性存储器故障的恢复 Download PDFInfo
- Publication number
- CN101300554A CN101300554A CNA2006800409816A CN200680040981A CN101300554A CN 101300554 A CN101300554 A CN 101300554A CN A2006800409816 A CNA2006800409816 A CN A2006800409816A CN 200680040981 A CN200680040981 A CN 200680040981A CN 101300554 A CN101300554 A CN 101300554A
- Authority
- CN
- China
- Prior art keywords
- memory location
- memory
- checkpoint
- physical
- controller
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
写操作将数据存储在不同的物理存储器位置。每一个物理存储器位置与在物理地址之间共同共享的逻辑地址关联。存储在物理存储器位置的顺序信息指示哪一个写操作最后发生。可用的已擦除存储器位置可分为可用来使用的已擦除存储器位置列表和不可用来使用的已擦除存储器位置列表。然后,在出故障时,仅需要分析可用来使用的已擦除存储器位置列表,以便重构存储器位置的耗用状态。
Description
技术领域
[001]一般来说,本发明涉及非易失性存储器。
背景技术
[002]对于在正常系统关机/休眠或掉电的情况下要保存数据的应用,非易失性半导体存储器、如闪速存储器是有吸引力的。因此,由闪速存储器装置构成的存储器可用于将数据存储在盘高速缓存或固态盘中。虽然典型的闪速存储器比磁存储装置具有明显更快的存取时间,但不像磁存储装置,闪速存储器的单元在没有首先擦除的情况下通常无法重写。
[003]作为一个更具体的实例,在将一位数据存储在常规闪速存储器单元之前,首先擦除该单元。在这种已擦除状态下,该单元表现出特定逻辑状态,例如逻辑“1”状态。在对闪速存储器单元的随后写操作中,如果要将逻辑1存储在该单元中,则该单元的状态保持不变。然而,如果要将逻辑0存储在该单元中,则该单元被编程为将该单元改变为0逻辑状态。因此,对闪速存储器单元的典型写入通常涉及两个存储器操作:第一操作擦除存储器单元;以及第二操作对存储器单元的逻辑状态进行编程。这些多个操作又提供写闪速存储器的总时间。
附图说明
[004]图1是根据本发明实施例与非易失性半导体存储器一起使用的动态寻址方案的图示。
[005]图2是根据本发明实施例的存储器系统的框图。
[006]图3A和图3B是根据本发明实施例的易失性和非易失性存储器空间的图示。
[007]图4是示出根据本发明不同实施例与对非易失性半导体存储器的写操作结合使用的技术的流程图。
[008]图5是示出根据本发明不同实施例与对非易失性半导体存储器的写操作结合使用的技术的流程图。
[009]图6是根据本发明实施例用于在掉电之后重构逻辑-物理转换表的中间表的图示。
[0010]图7是示出根据本发明实施例用于在掉电之后重构逻辑-物理转换表的技术的流程图。
[0011]图8是示出一个实施例的稳态操作的流程图。
[0012]图9是示出根据本发明一个实施例用于更新检查点的技术的流程图。
[0013]图10是根据本发明一个实施例用于启动的流程图。
[0014]图11是图10流程图的继续。
[0015]图12是根据本发明实施例的计算机系统的框图。
具体实施方式
[0016]根据一些实施例,为了减少存储器的写等待时间,将动态寻址与非易失性半导体存储器结合使用。更具体来说,根据一些实施例,从软件观点来看,使用逻辑地址对非易失性存储器寻址。从对于存储器执行的物理读和写操作的观点来看,动态寻址将存储器的逻辑地址转换成或映射到物理地址。动态寻址连续不断地改变逻辑地址与物理地址之间的映射,以确保逻辑写操作使数据存储在非易失性存储器的先前已擦除位置(即在不同的物理地址)。因此,对于动态寻址,逻辑写操作产生单个操作。这将与使用对非易失性存储器两次存取(一次擦除/无效老的物理位置,而另一次将数据写在新的预先擦除物理位置)的常规寻址成形对比。
[0017]更具体来说,参照图1,根据一些实施例,动态寻址方案10将非易失性存储器的物理地址分组为空白池20、有效池30和已用池40。空白池20表示未分配的物理地址,它们的关联存储器单元被擦除,并准备被编程,因而准备被分配给逻辑地址。有效池30表示与存储有效数据并被分配给逻辑地址的存储器单元关联的物理地址。已用池40表示不再存储有效数据、不再与逻辑地址关联并且将被擦除的物理地址。当使用块擦除操作来擦除物理地址的相连块(例如页面)时,将已用池40的物理地址重新分组为空白池20。要注意,块擦除比响应于每个逻辑写操作而一次一个地擦除物理地址更有效率,并且另外,非易失性存储器(例如“与非”闪速存储器)可只允许块擦除。
[0018]作为一个更具体的实例,非易失性存储器的(与一组存储器单元或存储器位置关联的)示范物理地址(P.A.)14可按照以下方式在空白池20、有效池30和已用池40之间转变。最初,例如在包括非易失性半导体存储器的系统启动时,或者在被擦除之后,物理地址14属于空白池20。换言之,由于在空白池20中,物理地址14可用于分配给特定逻辑地址。因此,在将数据写入特定逻辑地址时,将物理地址14分配给该逻辑地址,使得数据被存储在物理地址14;然后物理地址14成为有效池30的一部分。然而,在没有擦除与物理地址14关联的存储器单元的情况下,不能进行对物理地址14的另一写入。因此,在对同一个逻辑地址进行下一写入时,将另一个物理地址分配给该逻辑地址,并且当物理地址14成为已用池40的一部分时,与物理地址14关联的存储器内容变为无效或者“已用”。
[0019]与物理地址14关联的存储器单元不一定在变为“已用”时被立即擦除,而是在块擦除操作中擦除这些存储器单元。这时,物理地址14再次成为空白池20的一部分,并且可分配给另一个逻辑地址。
[0020]参照图2,根据本发明的一些实施例,存储器系统50使用上述动态寻址方案10,并且可与非易失性半导体大容量存储存储器54(本文称作“非易失性存储器54”)、如闪速存储器结合使用。非易失性存储器54包含使用物理地址寻址的物理存储器单元55的阵列。根据本发明的一些实施例,存储器系统50的控制器52通过在逻辑地址空间与物理地址空间之间进行转换来执行动态寻址。更具体来说,根据本发明的一些实施例,控制器52耦合到易失性存储器60、例如动态随机存取存储器(DRAM)。易失性存储器60存储逻辑-物理转换表62(本文称作“L2P表”),控制器52将其用于把存储器54的逻辑地址映射到物理地址的目的。这种映射连续不断地变化,因此控制器52连续不断地更新L2P表62,以便跟踪各逻辑地址到不同物理地址的重新映射。
[0021]还如图2所示,根据一些实施例,易失性存储器60存储空白池表66,它指示存储器54的哪一些物理地址包含在空白池20中(参见图1)。因此,当控制器52要执行对逻辑地址的写操作时,控制器52一般从空白池表66中选择可用的物理地址,更新L2P表62以便将逻辑地址重新映射到所选物理地址,并执行在所选物理地址对非易失性存储器54的相应写操作。
[0022]易失性存储器60还可存储元数据68,元数据68包含与存储在各物理地址的存储器内容的耗用状态有关的信息(以及其它可能的信息)。根据本发明的一些实施例,对于非易失性存储器54的每个可寻址位置,元数据68指示存储在该位置的数据内容是已用、有效还是空白。除了空白池表66、L2P表62和元数据68之外,易失性存储器60还可将程序指令存储在计算机可存取介质70中,这些指令在被执行时,使控制器52执行本文所公开的物理写入、地址转换和故障恢复技术中的一个或多个。
[0023]因此,概括来说,控制器52使用易失性存储器60来存储表明逻辑-物理地址映射并且表明非易失性存储器54的可寻址存储器位置状态的信息。可能有利的是,将这种信息存储在易失性存储器60中,因为与非易失性存储器(例如存储器54)相比,易失性存储器60的存取时间比较快,假定大量的存取被用于保存这个信息。易失性信息可在例如关机、休眠、挂起、低功率检测等关键事件时存储到非易失性存储器,并在随后重新引导/重新开始时从中恢复。然而,一般来说,这种技术的一个潜在挑战是,在存储器系统50出故障、例如掉电或崩溃的情况下,存储在易失性存储器60中的信息就丢失了。虽然可进行易失性存储器60的内容的定期备份,但是这些备份本身可能不足以恢复丢失的信息。因此,在从故障恢复时,控制器52将不知道逻辑-物理映射和易失性存储器54的各种可寻址存储器位置的耗用状态,因此将无法重构存储在易失性存储器60中的信息。
[0024]根据一些实施例,对于逻辑写操作,控制器52执行对非易失性存储器54的单次(而不是例如两次)写操作。为了允许在出故障之后恢复存储在易失性存储器60中的信息(例如存储在L2P表62和空白池表66中的信息),控制器52在各物理写操作中将顺序信息、如时间标记或顺序号存储在非易失性存储器54中。更具体来说,根据本发明的一些实施例,控制器52对于对非易失性存储器54的每个写操作,生成一个全局顺序号。控制器52对于每个写操作递增该全局顺序号,使得该顺序号对于写操作具有(例如)不断增加的值。如下所述,在出故障之后控制器52使用该顺序号来重构(出故障之前进行的)先前写操作的时间线,以便确定非易失性存储器54的哪些可寻址位置存储有效数据(因此还确定哪些位置存储已用数据)。
[0025]图3A是易失性存储器60的更详细图示。易失性存储器60包括目录77a,它包含逻辑-物理转换表62和元数据68。逻辑-物理转换表提供逻辑地址、如逻辑地址0-2与相应物理地址之间的对应。
[0026]元数据表68提供物理地址、逻辑地址和它是已用、有效还是空闲的耗用状态以及其它信息之间的对应。
[0027]易失性存储器60还包括当前有效检查点寄存器71,它指示两个非易失性存储器存储的检查点(A或B)中的哪一个当前为有效。当目录77a和元数据68在某个时间帧存在时,检查点将它们存储在非易失性存储器54中。空白池表66包括称作活动空闲列表66a的活动空闲存储器位置列表,这些活动空闲存储器位置可用于活动使用,因为它们已经被擦除。作为空白池表66的一部分,还提供了下一次要存取的空闲位置的相似列表,在图3A中标记为下一个空闲列表66b。顺序号被存储在易失性存储器60的寄存器69中。以连续方式为各事务处理提供顺序号。在一些实施例中,可执行存储装置70中存储的指令集,以便实现本发明的各种实施例。
[0028]参照图3B,非易失性存储器54包括实际检查点数据集存储位置75a和75b。如前面所述,易失性存储器60指示那些检查点A或B中的哪一个在寄存器71中为有效。当给定检查点在某个时间点存在于易失性存储器时,各检查点存储给定检查点的目录77a和活动空闲列表66a。当前有效检查点指示符也存储在非易失性存储器的寄存器71中,并且标志存储在79,指示系统关机是否是“干净的”,还是代之以出故障的结果。最后,提供了物理位置或扇区的阵列55。各页面可包括其中包含顺序号的原子元数据。
[0029]两个检查点数据集存储位置75a和75b包含目录77a和活动空闲列表66a的拷贝。存在两个这样的区域,使得在准备新检查点时,写之前的擦除操作不擦除唯一有效检查点。保存最新的检查点,而擦除较老的检查点。然后,关于两个检查点中的哪一个为有效的信息被存储在易失性存储器60和非易失性存储器54的当前有效检查点位置71。例如,在更新检查点时发生故障的情况下,使用两个检查点是有利的。
[0030]顺序号是原子元数据的一部分,其可在运行时间期间每次写入非易失性存储器时递增。因此,需要时,只通过读取阵列中的所有元数据,并通过了解写入的顺序,就可重构目录77。根据本文所述的技术,使用顺序号,但是此外还进行目录和活动空闲列表的检查点拷贝。检查点拷贝用作恢复的起始点,并且活动空闲列表显示自最后一次更新检查点以来可能已经被写的每一个页面。因此,仅需要检查具有与页面和活动空闲列表关联的顺序号的元数据,以便完整地重构目录。不需要读取整个存储器乃至整个空白池表66,因此恢复更快。例如,不需要检查下一个空闲列表66b,因为根据定义,自最后一次检查点更新以来还未使用这些位置。
[0031]每当活动空闲列表缩小到可用来使用的空闲位置的阈值以下时,获取检查点。检查点之间的时间、多少存储器必须被读取以进行恢复以及因而花多长时间进行恢复是活动空闲列表中有多少条目和阈值设置成什么的函数。阈值不应太低,因为创建新的检查点要花时间。如果活动空闲列表66a为空,则装置的进一步操作可能需要等待,直到新的检查点完成。
[0032]参照图4,根据本发明的一些实施例,控制器52与逻辑写操作结合来执行技术74。按照技术74,对于不同的写操作,控制器52将不同的物理存储器位置分配给逻辑地址(框76)。因此,对于对特定逻辑地址的第一写操作,控制器52对非易失性存储器54的第一物理地址进行写入,而对于对这个逻辑地址的下一个写操作,控制器52对非易失性存储器54的第二物理地址进行写入。按照技术74,控制器52将共同指示分配给逻辑地址的最后一个物理存储器位置的顺序号和逻辑地址存储在物理存储器位置(框78)。如上所述,在发生故障之后,顺序号允许控制器52在易失性存储器60中重建信息。
[0033]参照图5,控制器52(参见图2)可响应于逻辑写操作而执行技术150。逻辑写操作目标是逻辑地址,并指示数据要存储在该逻辑地址。按照技术150,控制器52例如通过使用逻辑地址从L2P表62(参见图2)中查找特定物理地址,来获得该逻辑地址的物理地址,如框152所示。然后,控制器52确定该物理地址是否有效(菱形框154)。在正常操作期间情况往往是这样,但是,在存储器系统50(参见图2)的初始加电之后,特定物理地址可与空白池关联。
[0034]如果控制器52确定当前物理地址有效(菱形框154),则控制器52在L2P表62中将当前物理地址标记为无效(框158)。因此,如果当前物理地址目前存储有效数据,则按照本文所述的动态寻址方案,使用另一个物理地址(如下文进一步所述)来存储作为当前逻辑写操作的对象的数据。接下来,控制器52更新易失性元数据68以指示在当前物理地址的内容数据82(参见图2和图4)(框162)。
[0035]在框162之后或者在确定当前物理地址无效(菱形框154)之后,控制器52从空白池20中检索下一个物理地址(以便替换当前物理地址)(框174),并递增顺序计数器(框178)。对于结合图5所述的实施例,假定使用全局顺序计数器。然而,如上所述,根据本发明的其它实施例,对于每个逻辑地址,可使用单独的局部顺序计数器。
[0036]然后,控制器52将内容和元数据(其包括顺序号和逻辑地址)写入新的物理地址(框180)。随后,控制器52更新L2P表62以便将新的物理地址映射到或分配给逻辑地址(框182)。
[0037]为了重构L2P表62,在出故障之后,控制器52使用临时表190,它的一个示范实施例如图6所示。表190包括N个二元组条目192(作为实例示出了条目1921、1922、...、192N),其中每个都与特定逻辑地址关联。因此,为了查找特定条目192,控制器52可使用逻辑地址指针197。根据本发明的一些实施例,各条目192包括指示逻辑地址的物理地址的字段194以及指示到目前为止找到的最后一个(且最大的)顺序号的字段196。因此,当控制器52(在出故障之后)扫描整个非易失性存储器54时,控制器52更新条目192,使得在扫描结束时,各条目192指示每个逻辑地址的最近使用的物理地址(即,具有最高顺序号的物理地址)。
[0038]作为表190用途的一个更具体实例,根据本发明的一些实施例,控制器52一般执行图7中所示的技术200。按照技术200,控制器52初始化表190(202)。例如,这种初始化可包括将值(例如“-1”)存储在不对应于物理地址或最后一个顺序号的(表190)各条目192中,以便指示条目192的初始化状态。接下来,控制器52从非易失性存储器54的下一个物理地址读取元数据(框204)。如果元数据指示存储器内容无效(菱形框206),则控制器52确定是否存在另一个物理地址要处理(菱形框208),如果存在,则返回到框204。根据本发明的一些实施例,可在同一遍数中进行空白池和已用池重构。
[0039]如果控制器52确定内容数据有效(菱形框206),则控制器52从表190中检索与那个物理地址关联的特定逻辑地址的最后一个顺序号条目(框210)。因此,这个逻辑地址的指示被存储在非易失性存储器54的存储器位置。如果控制器52确定该顺序号有效(即控制器52确定该顺序号不是初始化的值)(菱形框214),则控制器52确定当前顺序号是否为到目前为止的逻辑地址的最大顺序号(菱形框216)。如果不是,则控制返回到菱形框208。否则,用于逻辑地址的最后一个物理地址(如扫描中到目前为止所示的)已经被定位,并且控制器52写入在前一物理地址的元数据以指示相应内容数据为“已用”(框220)。随后,控制器52更新用于相应逻辑地址的表190的字段194和196(参见图6)(框222)。然后,控制进入菱形框208,在此控制器52确定是否要处理另一个物理地址。如果否,则控制器52已完成扫描,并且表190已被构建。要注意,没有条目196(参见图6),表190构成重构的L2P表62。因此,根据本发明的一些实施例,控制器52可在扫描结束时提取数据194,以便重构L2P表62。
[0040]图8示出本发明一个实施例的稳态操作。在那里,过程340开始于从易失性活动空闲列表66a耗用空闲页面,如框342所示。创建新页面,并将那些新增页面添加到下一个易失性空闲列表66b,如框344所示。
[0041]最后,在框346,调用检查点更新过程300(图9)。
[0042]参照图9,检查点更新过程300开始于确定易失性活动空闲列表是否小于阈值。如果是,则希望增加活动空闲列表中的位置数量,使得不存在以下可能性:在系统等待新的检查点时,在没有构建另一个检查点更新的情况下,足够的位置将不可用。
[0043]为了更新活动空闲列表,从易失性存储器寄存器71(图3A)获得当前有效检查点,如框304所示。换言之,确定检查点A或B中的哪一个是当前有效检查点。然后,将来自当前有效检查点的易失性目录77a(图3A)拷贝到新的非易失性检查点的目录,如框306所示。然后,将易失性活动空闲列表拷贝到新的非易失性检查表的活动空闲列表,如框308所示。
[0044]此后,将下一个易失性空闲列表添加到新的非易失性检查点的活动空闲列表,如框310所示。此后,将易失性和非易失性存储器中的当前有效检查点改变为新的检查点,如框311所示。最后,将下一个空闲列表中的条目移动到活动空闲列表,如框312所示。
[0045]现在来看图10,启动过程318开始于(从图3B的寄存器79)读取非易失性干净关机标志,如框322所示。另外,在框324,(从图3B的寄存器71)读取非易失性当前有效检查点标志。在框326,将非易失性干净关机标志设置为“假”,只是以防在运行启动过程318的过程中存在故障。然后,在菱形框328的检查确定启动前的最后一次关机是否为干净关机。干净关机是这样一种关机:没有故障,并且有时间将设置从易失性存储器转移到非易失性存储器。如果在菱形框328检测到干净关机,则从所存储的非易失性目录恢复易失性目录,并且从当前有效检查点恢复活动空闲列表,如框330所示。
[0046]然而,如果没有发生干净关机,则将非易失性目录和活动空闲列表从当前有效检查点读到易失性存储器,如框332所示。然后,该任务开始更新最后一个可用目录和元数据。在框334,对于活动空闲列表中的每个条目,从非易失性存储器读取元数据和顺序号。仅必须考虑活动空闲列表条目。下一个空闲列表中的那些条目根据定义未被使用,因此在恢复目录的过程中不需要使用。这可节省相当多的时间。最后,如框336所示,通过继续进行如过程300(图9)所示的,来更新目录和活动空闲列表。
[0047]现在来看图11,在过程350,流程继续,将下一个空闲列表设置为空,初始化下一个空闲列表,如框352所示。在框354,通过审查所有页面以查看什么被擦除了,来创建下一个空闲列表。在框356,使用图10的过程318来更新检查点,并将下一个空闲列表移动到活动空闲列表。然后,重新开始稳态过程340。
[0048]存储器系统50(参见图2)可用于各种不同的应用,因此,本发明的许多不同实施例是可能的,并且在所附权利要求书的范围内。例如,根据本发明的一些实施例,存储器系统50可以是固态盘,而在本发明的其它实施例中,存储器系统50可以是盘高速缓存或者用于多个盘或RAID卷的高速缓存。图12示出包括存储器系统50的计算机体系结构250的示范实施例。作为实例,计算机体系结构250可用于台式或膝上型计算机。
[0049]计算机系统250包括耦合到系统总线256的处理器252(例如一个或多个微处理器)。计算机系统250还可包括北桥或存储器集线器260,它耦合到系统总线256,以便建立处理器252与系统存储器、如动态随机存取存储器(DRAM)60之间的通信。根据本发明的一些实施例,DRAM 60是易失性存储器60的一个实施例,但是,在本发明的其它实施例中也可使用其它易失性存储器。DRAM 60可经由存储器总线262耦合到存储器集线器260。在本发明的一些实施例中,存储器集线器260可包括控制器52,但是,在本发明的其它实施例中,控制器52也可与存储器集线器260分开。
[0050]如图12所示,根据本发明的一些实施例,非易失性存储器可以是“与非”闪速存储器,但是,根据本发明的其它实施例,其它类型的非易失性存储器也可用于代替它。例如,在本发明的其它实施例中,铁电聚合物存储器可用于代替“与非”闪速存储器。
[0051]在本发明的一些实施例中,存储器集线器260可将其它总线与系统总线256接口,例如外设部件互连(PCI)总线272和加速图形端口(AGP)总线270。PCI规范可从PCI特别兴趣小组(波特兰,俄勒冈州97214)得到。AGP在由英特尔公司(圣克拉拉,加利福尼亚)在1996年7月31日公布的“加速图形端口接口规范,版本1.0”中详细描述了。PCI总线272例如可将网络接口卡(NIC)273耦合到PCI总线272;并且AGP总线270例如可将驱动显示器277的显示器驱动器275耦合到系统总线256。
[0052]如图14所示,根据本发明的一些实施例,存储器集线器260可耦合到南桥或输入/输出(I/O)集线器280。作为实例,I/O集线器280可为CD-ROM驱动器294和硬盘驱动器292提供接口。此外,I/O集线器280可为I/O扩充总线282提供接口。I/O控制器284可耦合到I/O扩充总线282,并且可从鼠标286和键盘290接收输入数据。
[0053]要注意,图12所示的体系结构只是为了举例,因为其它变化也是可能的,并且在所附权利要求书的范围内。在本发明的一些实施例中,本文所述的过程,包括过程74、过程150、过程200、过程300、过程318、过程340和过程350,可通过硬件、软件或固件来实现。在用软件实现的一些实施例中,过程可构成可存储在计算机可读或计算机可存取存储器中的指令。该存储器可以是磁存储器或半导体存储器。适当存储器的实例非常多样,并且作为实例包括闪速存储器、盘驱动器、硬盘驱动器、光存储器、只读存储器和随机存取存储器。例如,参照图12,这类存储器可包括系统存储器60、闪速存储器54、磁存储器292和光存储器294。
[0054]此说明书通篇提到“一个实施例”或“实施例”是指结合该实施例所述的具体特征、结构或特性包含在本发明所包括的至少一个实现中。因此,短语“一个实施例”或“在一个实施例中”的出现不一定都指同一实施例。此外,具体特征、结构或特性可通过与所述具体实施例不同的其它适当形式建立,并且所有这类形式均可包含在本申请的权利要求书中。
[0055]虽然相对于有限数量的实施例对本发明进行了描述,但本领域技术人员从中会知道大量修改和变化。所附权利要求书意在涵盖落入本发明真实精神和范围内的所有这类修改和变化。
Claims (32)
1.一种方法,包括:
使闪速存储器适合于保存可用来使用的已擦除存储器位置和不可用来使用的已擦除存储器位置的各自列表。
2.如权利要求1所述的方法,包括:
执行多个写操作以将数据存储在不同的物理存储器位置,每一个所述物理存储器位置与在所述物理存储器位置之间共同共享的逻辑地址关联;以及
将顺序信息存储在所述物理存储器位置,以便指示哪一个所述写操作最后发生。
3.如权利要求2所述的方法,还包括:
将所述逻辑地址存储在所述物理存储器位置,以便指示哪一个所述写操作最后发生。
4.如权利要求2所述的方法,其中所述物理存储器位置是非易失性存储器的一部分,所述方法还包括:
响应于每一个所述写操作,更新表明所述逻辑地址与所述物理存储器位置之一之间映射的逻辑-物理地址转换表。
5.如权利要求2所述的方法,还包括:
响应于故障,使用所述顺序信息来重构表明所述逻辑地址与所述物理存储器位置之一之间映射的逻辑-物理转换表。
6.如权利要求5所述的方法,还包括:
响应于故障,使用所述顺序信息来确定哪一些所述物理存储器位置没有存储所述逻辑地址的有效数据。
7.如权利要求1所述的方法,包括:定期产生指示存储器位置耗用状态的检查点。
8.如权利要求7所述的方法,包括:在可用来使用的已擦除存储器位置的数量降到阈值以下时,更新所述检查点。
9.如权利要求7所述的方法,包括:响应于故障,使用所述检查点和所述可用来使用的已擦除存储器位置列表来重构存储器位置耗用状态。
10.如权利要求9所述的方法,包括:在更新所述检查点的过程中,将位置从所述不可用来使用的已擦除存储器位置列表转移到所述可用来使用的存储器位置列表。
11.如权利要求10所述的方法,包括:保存复制检查点。
12.一种设备,包括:
控制器;
易失性存储器,耦合到所述控制器;
非易失性存储器阵列,耦合到所述控制器;以及
第一非易失性存储器位置,存储存储器位置耗用状态的检查点和可用来使用的已擦除存储器位置列表,所述列表不包括自存储所述检查点以来被擦除的已擦除存储器位置。
13.如权利要求12所述的设备,所述控制器响应于故障而使用顺序信息在所述非易失性存储器阵列中重构表明逻辑地址与物理存储器位置之间映射的逻辑-物理转换表。
14.如权利要求13所述的设备,所述控制器响应于故障而使用所述顺序信息来确定哪一些所述物理存储器位置没有存储所述逻辑地址的有效数据。
15.如权利要求12所述的设备,所述控制器定期产生指示所述非易失性存储器阵列中存储器位置耗用状态的检查点。
16.如权利要求15所述的设备,所述控制器在可用来使用的已擦除存储器位置的数量降到阈值以下时更新所述检查点。
17.如权利要求15所述的设备,所述控制器响应于故障而使用所述检查点和所述可用来使用的已擦除存储器位置列表来重构存储器位置耗用状态。
18.如权利要求17所述的设备,所述控制器在更新所述检查点的过程中,将位置从不可用来使用的已擦除存储器位置列表转移到所述可用来使用的已擦除存储器位置列表。
19.如权利要求18所述的设备,所述控制器将复制检查点保存在所述非易失性存储器阵列。
20.如权利要求19所述的设备,包括:存储装置,存储指示所述复制检查点中的有效检查点的指示符。
21.一种计算机可读介质,存储如下指令:所述指令在被执行时使基于处理器的系统能够:
给写操作分配顺序号;以及
保存可用来使用的已擦除存储器位置和不可用来使用的已擦除存储器位置的各自列表。
22.如权利要求21所述的介质,还存储如下指令:所述指令在被执行时使所述基于处理器的系统能够响应于故障而使用顺序信息来重构表明逻辑地址与物理存储器位置之间映射的逻辑-物理转换表。
23.如权利要求21所述的介质,还存储如下指令:所述指令在被执行时使所述基于处理器的系统能够响应于故障而使用所述可用来使用的已擦除存储器位置列表并不使用所述不可用来使用的已擦除存储器位置列表来重构所述逻辑-物理转换表。
24.一种方法,包括:
在非易失性存储器中提供指示符,以指示在关机前是否将耗用信息从易失性存储器转移到非易失性存储器。
25.如权利要求24所述的方法,包括:咨询所述指示符以便确定在出故障后如何重构存储器。
26.如权利要求25所述的方法,包括:将所述指示符存储在所述非易失性存储器的易失性和非易失性存储装置中。
27.一种设备,包括:
非易失性存储器,包含易失性和非易失性存储装置;以及
存储位置,指示在关机前是否将耗用信息从易失性存储装置拷贝到非易失性存储装置。
28.如权利要求27所述的设备,其中所述存储位置在易失性存储装置中。
29.如权利要求27所述的设备,其中所述存储位置在非易失性存储装置中。
30.一种系统,包括:
处理器;
静态随机存取存储器,耦合到所述处理器;
非易失性存储器,耦合到所述处理器,所述非易失性存储器包括控制器,以保存存储器位置耗用状态的检查点和少于全部已擦除存储器位置的列表。
31.如权利要求30所述的系统,其中所述非易失性存储器包括易失性存储装置和非易失性存储装置。
32.如权利要求31所述的系统,包括:将不可用来使用的已擦除存储器位置列表存储在所述易失性存储装置中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/266,119 US7516267B2 (en) | 2005-11-03 | 2005-11-03 | Recovering from a non-volatile memory failure |
US11/266,119 | 2005-11-03 | ||
PCT/US2006/042896 WO2007056106A2 (en) | 2005-11-03 | 2006-11-02 | Recovering from a non-volatile memory failure |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101300554A true CN101300554A (zh) | 2008-11-05 |
CN101300554B CN101300554B (zh) | 2012-07-04 |
Family
ID=38001720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800409816A Active CN101300554B (zh) | 2005-11-03 | 2006-11-02 | 非易失性存储器故障的恢复 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7516267B2 (zh) |
CN (1) | CN101300554B (zh) |
WO (1) | WO2007056106A2 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840380A (zh) * | 2009-03-12 | 2010-09-22 | 马维尔国际贸易有限公司 | 保护元数据免受意外断电影响的装置和方法 |
CN102567210A (zh) * | 2010-12-27 | 2012-07-11 | 厦门市美亚柏科信息股份有限公司 | 闪存芯片数据分析环境重组方法和装置 |
CN102629237A (zh) * | 2011-02-04 | 2012-08-08 | 西部数据技术公司 | 非易失性半导体存储器的多个器件的并行搜索 |
CN103026346A (zh) * | 2010-07-27 | 2013-04-03 | 国际商业机器公司 | 包括固态存储器设备的存储系统中的逻辑到物理地址映射 |
CN103106143A (zh) * | 2011-11-11 | 2013-05-15 | 建兴电子科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
CN103456360A (zh) * | 2013-09-13 | 2013-12-18 | 北京昆腾微电子有限公司 | 非易失性存储器的管理方法和装置 |
CN107408022A (zh) * | 2015-03-27 | 2017-11-28 | 英特尔公司 | 管理存储设备中的逻辑地址的数据的先前版本 |
CN109074308A (zh) * | 2016-04-22 | 2018-12-21 | 微软技术许可有限责任公司 | 适应性的块转换表(btt) |
CN109388520A (zh) * | 2017-08-08 | 2019-02-26 | 大心电子(英属维京群岛)股份有限公司 | 数据备份方法、数据恢复方法以及存储控制器 |
CN110023939A (zh) * | 2016-12-30 | 2019-07-16 | 英特尔公司 | 用于存储装置中基于范围的检查点的方法和设备 |
Families Citing this family (143)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9286198B2 (en) | 2005-04-21 | 2016-03-15 | Violin Memory | Method and system for storage of data in non-volatile media |
US8452929B2 (en) * | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
US8838615B2 (en) * | 2006-02-02 | 2014-09-16 | Oracle International Corporation | Computer implemented method for automatically managing stored checkpoint data |
US8307148B2 (en) * | 2006-06-23 | 2012-11-06 | Microsoft Corporation | Flash management techniques |
US7650458B2 (en) * | 2006-06-23 | 2010-01-19 | Microsoft Corporation | Flash memory driver |
KR101320917B1 (ko) * | 2006-10-02 | 2013-10-21 | 삼성전자주식회사 | 파일의 특성에 따라 각기 다른 기록방식을 적용하는 파일기록방법 및 이를 적용한 전자기기 |
JP4235920B2 (ja) * | 2006-10-06 | 2009-03-11 | コニカミノルタビジネステクノロジーズ株式会社 | 情報処理装置及びデータ退避方法。 |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
WO2008070803A1 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for managing data from a requesting device with an empty data token directive |
US8935302B2 (en) * | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
US9116823B2 (en) | 2006-12-06 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for adaptive error-correction coding |
US8161353B2 (en) | 2007-12-06 | 2012-04-17 | Fusion-Io, Inc. | Apparatus, system, and method for validating that a correct data segment is read from a data storage device |
US7554855B2 (en) * | 2006-12-20 | 2009-06-30 | Mosaid Technologies Incorporated | Hybrid solid-state memory system having volatile and non-volatile memory |
JP5095200B2 (ja) * | 2006-12-22 | 2012-12-12 | オンセミコンダクター・トレーディング・リミテッド | エレクトロルミネッセンス表示装置及び表示パネルの駆動装置 |
US7769945B2 (en) * | 2007-01-18 | 2010-08-03 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
JP4444314B2 (ja) * | 2007-07-13 | 2010-03-31 | 株式会社東芝 | 半導体メモリ情報蓄積装置とその書き込み制御方法 |
US7818610B2 (en) * | 2007-09-27 | 2010-10-19 | Microsoft Corporation | Rapid crash recovery for flash storage |
KR101433859B1 (ko) * | 2007-10-12 | 2014-08-27 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법 |
TW200919448A (en) * | 2007-10-17 | 2009-05-01 | Silicon Motion Inc | Storage device and method of accessing a status thereof |
US8316277B2 (en) | 2007-12-06 | 2012-11-20 | Fusion-Io, Inc. | Apparatus, system, and method for ensuring data validity in a data storage process |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US7941692B2 (en) * | 2007-12-31 | 2011-05-10 | Intel Corporation | NAND power fail recovery |
US8285940B2 (en) * | 2008-02-29 | 2012-10-09 | Cadence Design Systems, Inc. | Method and apparatus for high speed cache flushing in a non-volatile memory |
US8966155B1 (en) * | 2008-04-01 | 2015-02-24 | Daniel P. Mulligan | System and method for implementing a high performance data storage system |
US7979626B2 (en) * | 2008-05-13 | 2011-07-12 | Microsoft Corporation | Flash recovery employing transaction log |
TW201011539A (en) * | 2008-09-11 | 2010-03-16 | Wistron Corp | Data reserving method for a redundant array of independent disks and related data reserving device and system |
US8041991B2 (en) * | 2008-11-18 | 2011-10-18 | Lsi Corporation | System and method for recovering solid state drive data |
US7925925B2 (en) | 2008-12-30 | 2011-04-12 | Intel Corporation | Delta checkpoints for a non-volatile memory indirection table |
US8074113B2 (en) * | 2009-03-10 | 2011-12-06 | Emulex Design & Manufacturing Corporation | System and method for data protection against power failure during sector remapping |
US8612666B2 (en) * | 2009-06-30 | 2013-12-17 | Intel Corporation | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory |
US20110035540A1 (en) * | 2009-08-10 | 2011-02-10 | Adtron, Inc. | Flash blade system architecture and method |
WO2011031796A2 (en) * | 2009-09-08 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for caching data on a solid-state storage device |
US9021158B2 (en) | 2009-09-09 | 2015-04-28 | SanDisk Technologies, Inc. | Program suspend/resume for memory |
US8429436B2 (en) * | 2009-09-09 | 2013-04-23 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction in a storage device |
CN102598019B (zh) * | 2009-09-09 | 2015-08-19 | 才智知识产权控股公司(2) | 用于分配存储的设备、系统和方法 |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
US8296506B2 (en) * | 2009-11-09 | 2012-10-23 | Lite-On It Corporation | Method for managing a non-violate memory and computer readable medium thereof |
US8443167B1 (en) | 2009-12-16 | 2013-05-14 | Western Digital Technologies, Inc. | Data storage device employing a run-length mapping table and a single address mapping table |
US8194340B1 (en) | 2010-03-18 | 2012-06-05 | Western Digital Technologies, Inc. | Disk drive framing write data with in-line mapping data during write operations |
US9330715B1 (en) | 2010-03-22 | 2016-05-03 | Western Digital Technologies, Inc. | Mapping of shingled magnetic recording media |
US8687306B1 (en) | 2010-03-22 | 2014-04-01 | Western Digital Technologies, Inc. | Systems and methods for improving sequential data rate performance using sorted data zones |
US8856438B1 (en) | 2011-12-09 | 2014-10-07 | Western Digital Technologies, Inc. | Disk drive with reduced-size translation table |
US8693133B1 (en) | 2010-03-22 | 2014-04-08 | Western Digital Technologies, Inc. | Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format |
US8699185B1 (en) | 2012-12-10 | 2014-04-15 | Western Digital Technologies, Inc. | Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks |
WO2011143628A2 (en) | 2010-05-13 | 2011-11-17 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
US8886870B2 (en) | 2010-05-25 | 2014-11-11 | Marvell World Trade Ltd. | Memory access table saving and restoring system and methods |
US8627143B2 (en) * | 2010-07-12 | 2014-01-07 | Hewlett-Packard Development Company, L.P. | Dynamically modeling and selecting a checkpoint scheme based upon an application workload |
US8725934B2 (en) | 2011-12-22 | 2014-05-13 | Fusion-Io, Inc. | Methods and appratuses for atomic storage operations |
EP2598996B1 (en) | 2010-07-28 | 2019-07-10 | SanDisk Technologies LLC | Apparatus, system, and method for conditional and atomic storage operations |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
EP2652623B1 (en) | 2010-12-13 | 2018-08-01 | SanDisk Technologies LLC | Apparatus, system, and method for auto-commit memory |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
US20120239860A1 (en) | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
WO2012100087A2 (en) | 2011-01-19 | 2012-07-26 | Fusion-Io, Inc. | Apparatus, system, and method for managing out-of-service conditions |
WO2012106362A2 (en) | 2011-01-31 | 2012-08-09 | Fusion-Io, Inc. | Apparatus, system, and method for managing eviction of data |
US8909851B2 (en) * | 2011-02-08 | 2014-12-09 | SMART Storage Systems, Inc. | Storage control system with change logging mechanism and method of operation thereof |
WO2012109677A2 (en) | 2011-02-11 | 2012-08-16 | Fusion-Io, Inc. | Apparatus, system, and method for managing operations for data storage media |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
US8966191B2 (en) | 2011-03-18 | 2015-02-24 | Fusion-Io, Inc. | Logical interface for contextual storage |
US8935466B2 (en) | 2011-03-28 | 2015-01-13 | SMART Storage Systems, Inc. | Data storage system with non-volatile memory and method of operation thereof |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
US8793429B1 (en) | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
TWI521343B (zh) | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
US9098399B2 (en) | 2011-08-31 | 2015-08-04 | SMART Storage Systems, Inc. | Electronic system with storage management mechanism and method of operation thereof |
US9021231B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Storage control system with write amplification control mechanism and method of operation thereof |
US9063844B2 (en) | 2011-09-02 | 2015-06-23 | SMART Storage Systems, Inc. | Non-volatile memory management system with time measure mechanism and method of operation thereof |
US9021319B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Non-volatile memory management system with load leveling and method of operation thereof |
US9477590B2 (en) | 2011-09-16 | 2016-10-25 | Apple Inc. | Weave sequence counter for non-volatile memory systems |
KR101301828B1 (ko) * | 2011-09-29 | 2013-08-29 | 한양대학교 산학협력단 | 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치 |
WO2013048493A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Memory channel that supports near memory and far memory access |
WO2013048467A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Generation of far memory access signals based on usage statistic tracking |
US9213493B1 (en) | 2011-12-16 | 2015-12-15 | Western Digital Technologies, Inc. | Sorted serpentine mapping for storage drives |
US10133662B2 (en) | 2012-06-29 | 2018-11-20 | Sandisk Technologies Llc | Systems, methods, and interfaces for managing persistent data of atomic storage operations |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
WO2013095530A1 (en) | 2011-12-22 | 2013-06-27 | Intel Corporation | Efficient pcms refresh mechanism background |
US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US10359972B2 (en) | 2012-08-31 | 2019-07-23 | Sandisk Technologies Llc | Systems, methods, and interfaces for adaptive persistence |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
KR101676932B1 (ko) * | 2012-03-02 | 2016-11-16 | 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 | 멀티-레벨 셀을 사용하여 버전화되는 메모리들 |
US9298252B2 (en) | 2012-04-17 | 2016-03-29 | SMART Storage Systems, Inc. | Storage control system with power down mechanism and method of operation thereof |
US8949689B2 (en) | 2012-06-11 | 2015-02-03 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US20140052897A1 (en) * | 2012-08-17 | 2014-02-20 | Seagate Technology Llc | Dynamic formation of garbage collection units in a memory |
WO2014035377A1 (en) * | 2012-08-28 | 2014-03-06 | Hewlett-Packard Development Company, L.P. | High performance persistent memory |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
US9671962B2 (en) | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
US9123445B2 (en) | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9183137B2 (en) | 2013-02-27 | 2015-11-10 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9122587B2 (en) | 2013-03-06 | 2015-09-01 | Seagate Technology Llc | Self recovery in a solid state drive |
US9470720B2 (en) | 2013-03-08 | 2016-10-18 | Sandisk Technologies Llc | Test system with localized heating and method of manufacture thereof |
US9478271B2 (en) | 2013-03-14 | 2016-10-25 | Seagate Technology Llc | Nonvolatile memory data recovery after power failure |
US9218279B2 (en) * | 2013-03-15 | 2015-12-22 | Western Digital Technologies, Inc. | Atomic write command support in a solid state drive |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
US9043780B2 (en) | 2013-03-27 | 2015-05-26 | SMART Storage Systems, Inc. | Electronic system with system modification control mechanism and method of operation thereof |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
US10102144B2 (en) | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
US9898056B2 (en) | 2013-06-19 | 2018-02-20 | Sandisk Technologies Llc | Electronic assembly with thermal channel and method of manufacture thereof |
US9313874B2 (en) | 2013-06-19 | 2016-04-12 | SMART Storage Systems, Inc. | Electronic system with heat extraction and method of manufacture thereof |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9842128B2 (en) | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
US9146850B2 (en) | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
US9431113B2 (en) | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
US10019352B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for adaptive reserve storage |
US10019320B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for distributed atomic storage operations |
US10073630B2 (en) | 2013-11-08 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for log coordination |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9666244B2 (en) | 2014-03-01 | 2017-05-30 | Fusion-Io, Inc. | Dividing a storage procedure |
US8953269B1 (en) | 2014-07-18 | 2015-02-10 | Western Digital Technologies, Inc. | Management of data objects in a data object zone |
US9875055B1 (en) | 2014-08-04 | 2018-01-23 | Western Digital Technologies, Inc. | Check-pointing of metadata |
KR102263046B1 (ko) * | 2014-10-29 | 2021-06-09 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
US10025669B2 (en) | 2014-12-23 | 2018-07-17 | Nuvoton Technology Corporation | Maintaining data-set coherency in non-volatile memory across power interruptions |
US9933950B2 (en) | 2015-01-16 | 2018-04-03 | Sandisk Technologies Llc | Storage operation interrupt |
US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
TWI576699B (zh) * | 2016-03-31 | 2017-04-01 | 慧榮科技股份有限公司 | 紀錄資料區塊的使用時間的方法及其裝置 |
US10459803B2 (en) * | 2017-06-28 | 2019-10-29 | Western Digital Technologies, Inc. | Method for management tables recovery |
US20190102262A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Automated continuous checkpointing |
CN110471788B (zh) * | 2018-05-08 | 2024-03-15 | 美光科技公司 | 异步功率损耗影响的数据结构 |
US10754785B2 (en) | 2018-06-28 | 2020-08-25 | Intel Corporation | Checkpointing for DRAM-less SSD |
US11635900B2 (en) | 2021-08-27 | 2023-04-25 | Micron Technology, Inc. | Memory sub-system signature generation |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7149110B2 (en) * | 1999-01-14 | 2006-12-12 | Silicon Storage Technology, Inc. | Seek window verify program system and method for a multilevel non-volatile memory integrated circuit system |
KR100365725B1 (ko) * | 2000-12-27 | 2002-12-26 | 한국전자통신연구원 | 플래시 메모리를 이용한 파일 시스템에서 등급별 지움정책 및 오류 복구 방법 |
KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US6948026B2 (en) * | 2001-08-24 | 2005-09-20 | Micron Technology, Inc. | Erase block management |
GB0123415D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Method of writing data to non-volatile memory |
KR100449708B1 (ko) | 2001-11-16 | 2004-09-22 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US6973531B1 (en) | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
JP2004310650A (ja) * | 2003-04-10 | 2004-11-04 | Renesas Technology Corp | メモリ装置 |
US20080082736A1 (en) * | 2004-03-11 | 2008-04-03 | Chow David Q | Managing bad blocks in various flash memory cells for electronic data flash card |
TWI228257B (en) * | 2004-05-06 | 2005-02-21 | Carry Computer Eng Co Ltd | Silicon storage media, controller, and access method thereof |
KR100673170B1 (ko) * | 2005-03-10 | 2007-01-22 | 주식회사 하이닉스반도체 | 향상된 소거 기능을 가지는 플래쉬 메모리 장치 및 그 소거동작 제어 방법 |
US7451264B2 (en) * | 2006-04-13 | 2008-11-11 | Sandisk Corporation | Cycle count storage methods |
-
2005
- 2005-11-03 US US11/266,119 patent/US7516267B2/en active Active
-
2006
- 2006-11-02 WO PCT/US2006/042896 patent/WO2007056106A2/en active Application Filing
- 2006-11-02 CN CN2006800409816A patent/CN101300554B/zh active Active
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840380A (zh) * | 2009-03-12 | 2010-09-22 | 马维尔国际贸易有限公司 | 保护元数据免受意外断电影响的装置和方法 |
CN101840380B (zh) * | 2009-03-12 | 2015-01-07 | 马维尔国际贸易有限公司 | 保护元数据免受意外断电影响的装置和方法 |
US9092323B2 (en) | 2009-03-12 | 2015-07-28 | Marvell World Trade Ltd. | Systems and methods for recovering addressing data |
CN103026346A (zh) * | 2010-07-27 | 2013-04-03 | 国际商业机器公司 | 包括固态存储器设备的存储系统中的逻辑到物理地址映射 |
CN103026346B (zh) * | 2010-07-27 | 2016-01-20 | 国际商业机器公司 | 用于从固态存储器设备读取及写入数据的方法及存储系统 |
US9256527B2 (en) | 2010-07-27 | 2016-02-09 | International Business Machines Corporation | Logical to physical address mapping in storage systems comprising solid state memory devices |
CN102567210A (zh) * | 2010-12-27 | 2012-07-11 | 厦门市美亚柏科信息股份有限公司 | 闪存芯片数据分析环境重组方法和装置 |
CN102567210B (zh) * | 2010-12-27 | 2015-01-21 | 厦门市美亚柏科信息股份有限公司 | 闪存芯片数据分析环境重组方法和装置 |
CN102629237B (zh) * | 2011-02-04 | 2016-09-14 | 西部数据技术公司 | 非易失性半导体存储器及搜索最后写入地址的方法 |
CN102629237A (zh) * | 2011-02-04 | 2012-08-08 | 西部数据技术公司 | 非易失性半导体存储器的多个器件的并行搜索 |
CN103106143A (zh) * | 2011-11-11 | 2013-05-15 | 建兴电子科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
CN103106143B (zh) * | 2011-11-11 | 2016-01-13 | 光宝科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
CN103456360A (zh) * | 2013-09-13 | 2013-12-18 | 北京昆腾微电子有限公司 | 非易失性存储器的管理方法和装置 |
CN103456360B (zh) * | 2013-09-13 | 2016-08-17 | 昆腾微电子股份有限公司 | 非易失性存储器的管理方法和装置 |
CN107408022A (zh) * | 2015-03-27 | 2017-11-28 | 英特尔公司 | 管理存储设备中的逻辑地址的数据的先前版本 |
CN107408022B (zh) * | 2015-03-27 | 2021-10-26 | 英特尔公司 | 管理存储设备中的逻辑地址的数据的先前版本 |
CN109074308A (zh) * | 2016-04-22 | 2018-12-21 | 微软技术许可有限责任公司 | 适应性的块转换表(btt) |
CN110023939A (zh) * | 2016-12-30 | 2019-07-16 | 英特尔公司 | 用于存储装置中基于范围的检查点的方法和设备 |
CN110023939B (zh) * | 2016-12-30 | 2023-07-21 | 英特尔公司 | 用于存储装置中基于范围的检查点的方法和设备 |
CN109388520A (zh) * | 2017-08-08 | 2019-02-26 | 大心电子(英属维京群岛)股份有限公司 | 数据备份方法、数据恢复方法以及存储控制器 |
CN109388520B (zh) * | 2017-08-08 | 2022-02-15 | 深圳大心电子科技有限公司 | 数据备份方法、数据恢复方法以及存储控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20070168698A1 (en) | 2007-07-19 |
WO2007056106A2 (en) | 2007-05-18 |
CN101300554B (zh) | 2012-07-04 |
US7516267B2 (en) | 2009-04-07 |
WO2007056106A3 (en) | 2007-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101300554B (zh) | 非易失性存储器故障的恢复 | |
CN101208669B (zh) | 写入非易失性存储器的技术 | |
CN101937319B (zh) | 存储器系统及其映射方法 | |
US9910602B2 (en) | Device and memory system for storing and recovering page table data upon power loss | |
US7769945B2 (en) | Method and system for facilitating fast wake-up of a flash memory system | |
US7130962B2 (en) | Writing cache lines on a disk drive | |
KR101713051B1 (ko) | 하이브리드 메모리 시스템, 및 그 관리 방법 | |
CN101169751B (zh) | 具有闪存设备的系统及其数据恢复方法 | |
US8762661B2 (en) | System and method of managing metadata | |
CN108628771B (zh) | 信息处理装置、存储设备以及信息处理系统 | |
US7529879B2 (en) | Incremental merge methods and memory systems using the same | |
JP4738038B2 (ja) | メモリカード | |
US20080098159A1 (en) | Memory system including flash memory and merge method thereof | |
US20070094445A1 (en) | Method to enable fast disk caching and efficient operations on solid state disks | |
CN101901189B (zh) | 更新用户数据的方法以及恢复用户数据的方法 | |
TWI385667B (zh) | 用於快閃記憶體的資料管理方法、儲存系統與控制器 | |
US9146928B1 (en) | Techniques for storing metadata of a filesystem in persistent memory | |
CN102054533A (zh) | 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器 | |
KR20170087043A (ko) | 저속 메모리를 이용하여 페이지 리맵핑 방식으로 바이트 어드레스 지정 능력 및 근-dram 성능을 달성하는 메커니즘 | |
US20080195854A1 (en) | Electronic Systems Using Flash Memory Modules as Main Storage and Related System Booting Methods | |
CN101876927A (zh) | 实现fat32文件系统的断电保护方法和装置 | |
CN101833519B (zh) | 一种减少存储技术设备中地址映射表常驻内存的方法 | |
US20090006505A1 (en) | System and Method for Managing Memory | |
Lo et al. | Swap-before-hibernate: a time efficient method to suspend an OS to a flash drive | |
WO2008087634A1 (en) | A method and system for facilitating fast wake-up of a flash memory system |
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 |