专利名称:供电安全的数据管理系统的制作方法
技术领域:
背景技术:
固态存储介质允许非常快速的读写时间。因此固态存储驱动器控制器的处理速度对读写呑吐量的有显著的影响。固态存储驱动器还必须保持和固态存储系统数据的一致性。如果固态存储系统突然断电,它必须能够恢复到可用状态并能够保持,比如,写操作过程中正要写入到存储器的数据必须是安全的
发明内容
、
体现本发明不同特性的系统和方法參照以下附图被描述。图I示出一个非易失性存储设备的概况。图2A,图3A和图3B示出根据实施例记录系统状态的主记录内容。图2B,图4A和图4B示出根据实施例管理主记录内容的流程图。图5A和5B显示存储在非易失性存储介质的主记录恢复系统状态的流程图。
具体实施例方式虽然本发明描述了某些实施例,但这些实施例只是作为例子而已,不是想要限制本发明的范围。事实上,这里描述的本发明系统和方法的创新性可以实施为其他不同形式。此外,可以不偏离本发明的精神,对这里描述的系统和方法形式做出各种省略、替换、变更。系统概沭本发明实施例的目的g在为非易失性存储系统控制器提供减少读写延迟的系统和方法,同时保持非易失性存储系统活动记录用于系统恢复。在实施例中,系统活动记录可以用来恢复系统状态,并在断电的情况下保持一致性。在本应用中,“非易失性存储器”通常是指如NAND的固态闪存存储器。然而,此本发明披露的系统和方法也可用于传统的硬盘驱动器和混合驱动器,包括固态硬盘驱动器及其组件。正如,固态驱动器的某些内部典型操作,如“损耗调平”和“垃圾回收”等类似操作,硬盘驱动器也可以利用。在本发明中,术语“超级快”被定义为非易失性存储介质上的地址组。这个地址的分组可以泛指任何分组地址的方法(例如,页、块等)。在一些实施例中,这些分组可以包括非易失性存储介质多个模组的至少ー个写入地址块。在一些实施例中,这些分组可以使用一个控制器,有效地组织数据存取操作和管理非易失性存储系统。參照图1,其示出了根据实施例中非易失性存储装置100和主机130通信的系统图。正如实施例所描述的,非易失性存储装置100包括非易失性存储器阵列120和控制器110。控制器110与非易失性存储器阵列120和130主机通信。本实施例中控制器包括一个用户数据管理器111,ー个主记录112,内部操作管理器113,以及介质存取请求执行器114。用户数据管理器111和主机130上的设备驱动器140通信,并可接收和处理来自主机驱动程序140存储请求。内部操作管理器113可包括系统清理和维护任务,如垃圾收集和损耗调平来维护非易失性存储器阵列120。存储器阵列120可包括多个与控制器110联接的固态存储装置。阵列可包括,例如,闪存集成电路,硫属相变内存(C-RAM),相变存储器(PC-RAM 或 PRAM),可编程金属化单元 RAM(PMC_RAM 或 PMCm),Ovonic 统一存储器(OUM),电阻RAM(RRAM),NAND存储器,NOR存储器,EEPR0M,铁电存储器(FeRAM),或其它分立的NVM(非易失性存储器)芯片。固态存储装置在现有技术中可物理分解为面、块、页和扇区。其他存储形式(例如,挥发性的电池备份DRAM或SRAM器件,磁盘驱动器等)可在另外或可选情况下使用。介质存取请求可以从用户数据管理器111或内部操作管理器113发送介质存取请求给非易失性存储器阵列120上的介质存取请求执行器114。在一个实施例中,介质存取请求执行器114规划非易失性存储器阵列的命令执行,并对非易失性存储器阵列120的存储 器块上任何执行剩下的转换任务负责。当用户数据管理器111或内部操作管理器113执行写命令,写命令可以在指定给写命令的下ー个写入超级块上执行。每个超级块可从非易失性存储器阵列多个物理模块中为写命令指定一个选定的块。在控制器110的操作过程中,每个写操作,比如用户数据管理器111和内部操作管理器113,可对应于运行过程中指定的超级块。由于每道エ序完成后写的地址分配给它的超级,它可以过渡到另ー个超级继续写的非易失性存储器阵列120。当完成对每个指定的超级块地址写入操作时,他可迁移到非易失性存储器120的另ー个超级块继续写入。主记录112能保持控制器110内的操作状态。例如,主记录112可以保持指定给每个写入进程的超级块(S)。在一个实施例中,主记录112保留在非易失性存储器中。因此,在一个实施例中主记录112可定期刷新(例如,通过控制器或在控制器上执行写入进程即通过给介质存取请求执行器114的写命令),因此,它的信息保存到非易失性存储器阵列120。在一个实施例中,保存在主记录112中的信息应足以断电的情况下系统能恢复运行状态,同时保持数据的一致性。记录处理图2A示出根据实施例描述的主记录200。主记录包括能记录设备运行状态的数据。图2A所描述的实施例,主记录200包括写入进程信息201。写入进程可以包括用户数据管理器,内部操作管理器或其他向非易失性存储阵列发出写命令的过程。正如这里使用的,“进程”是指在处理器控制器上执行的ー个线程,多个线程可以在同一处理器上并行执行。虽然这里所描述的是针对单个写入进程的数据,但是主记录可以保持由控制器执行的所有写入进程数据。此写入进程201的数据包括指定给这个进程的超级块(S)。另外,主记录可以保持一个空闲池202以反映超级块可以被写入进程使用。当ー个超级块被分配给ー个写入进程,则它从空闲池删除以反映它不可用于其他进程。擦除队列203反映的数据可表明超级块正在非易失性存储阵列的即将擦除队列中。当非易失性存储阵列已成功擦除超级块,则超级块从擦除队列203中删除,放置在空闲池202中。这样擦除队列确保数据的完整性,因为如果电源中断而超级块正在擦除过程中,擦除将在恢复供电后被重新启动。主记录200还可包括关闭队列204,反映已完成写入的超级块,但在写过程完成对超级块的写入后仍然需要额外的检查或行动。主记录200还可包括系统表205,其中包括系统状态记录,如非易失性存储器阵列损坏的块,转换表,映射表和/或其他系统表。在一个实施例中,每个超级块的长度也被保存在主记录中。在一个实施例中ー个超级块可包括2,048页,尽管现有技术中有包括任何页数(或其他存储单元)的成熟技术。 图2B所示流程图是和图2A所示主记录关联的写入进程方法的实施例。在块210,写入进程到达为这个进程指定的超级块末端。在块220,进程从空闲池为随后的写入进程分配一个新的超级块。在块230,进程保留最新分配的超级块在主记录中。在块240,进程触发器刷新非易失性存储器的主记录(及最新分配的超级块信息)。在块250,进程等待主记录刷新完成。进程等待完成刷新优于随后的块写入进程是因为,如果写入进程优于刷新,系统被迫在刷新前返回非易失性存储器主记录的ー个副本,(例如,在断电后),非易失性存储器中的记录不会反映设置给写入进程对随后的块写入。之前保存的副本仍然会提示写入进程优于块210正在对超级块写入。等待主记录更新信息,直到最新分配的超级块已被刷新到非易失性存储器中,从而确保失去供电后的正确恢复。在非易失性存储器主记录刷新后,在块260,进程可以写入新的超级块中。在一个实施例中,由控制器110执行的写入进程如图I所示。轺级块预分配虽然在块250中的等待确保数据的正确恢复,但产生等待时间且刷新増加系统开销并降低性能。下面实施例的描述和參考图能消除或減少等待时间,且刷新主记录。通过主记录配置涉及预分配和跟踪写入地址组使消除等待在一个实施例中成为可能,如图3A和3B所示。实施例这里描述的所述性能增强,可以选择性地应用于对性能敏感/关键的进程。例如,这些实施例,控制器可配置为对仅用于用户数据管理器和/或垃圾收集的写入进程实施。对于不视为是性能敏感/关键的其他进程,可以使用如图2A和2B所示的实施例。在此实施例中,如在图3A所示,写入进程数据310包括与几个分配的超级块有关的数据。在此实施例中,写入进程数据310保持以前超级块311,当前超级块312,和下ー个超级块313有关的数据。在这个图中,以前超级块311表示超级块“16”是上ー个完成写入的超级块。当前超级块312表示超级块“25”是进程目前指定的待写入超级块。下一个超级313表示超级块“46”是当前超级块312完成写入后待写入的地址组。当进程完成写入指定给当前超级块312的超级块后,这个进程可以继续对指定给超级块313的下ー个超级块写入,并在主记录300中旋转相应的超级块。其他组件320,330,340和350的操作和上面图2A(202,203,204和205)所述的相同。系统表350还包括反映了系统当前和未来操作的超级块数据,以及活动日志。图3B反映在已旋转分配的超级块后主记录300的状态。旋转会发生在写入进程到达当前超级块末端并开始写下一个超级块地址吋。所图所示,上ー个超级块311现在持有的选择值“25”是在之前的当前超级块312。当前超级块312现在持有的值“46”是与之前的下ー个超级块313关联的。下ー个超级块313现在持有的是为超级块最新分配的值“67”。如上所述,超级块“67”可从空闲池320获得。在本实施例中,超级块被预分配给写入进程优于写入进程完成对当前超级块的写入。这种方式,记录反映了被写入进程写入的未来选择。给主记录的写入进程预分配未来超级块有几个好处。写入进程到达当前超级块末端后,立即写入下一个超级块而不需要在继续写之前等待分配一个新的超级块。如果在写入进程已经开始写入下一个超级块后但在主记录对非易失性存储器更新和刷新之前失去供电,主记录可以恢复系统状态,并通过參考当前和下一个超级块确定写入进程最后写入的位置。而且,在实施例中,控制器被配置为对非易失性存储器定期刷新而不管是否写入进程是否到达ー个新的超级块。在实施例中,主记录以比进程完成对新超级块写入的几率较高的频率定期刷新。这样就能消除以上提及的等待时间,进ー步说明如下面的图4A和4B进程描述。另外,允许保持以前的超级块用于针对日志活动的,但没有记录在失去供电前的日志活动的,由写入进程完成的日志进程,进一步解释如下图5A和5B所示。图4A和4B示出用于写入进程方法并和图3A和3B所示主记录兼容的实施例。如图4A所示的块400中,写入进程到达当前超级块末端。写入进程在块410继续从空闲池分配下一个新的超级块。在某些实施例中可触发对空闲池的刷新。在块420中,写入进程在主记录中指定下一个超级块作为当前超级块,并分配一超级块作为下ー个新的超级块(例如在图3A和3B所示旋转进程)。同样的,在块420中,写入进程在主记录中记录新的写入 进程状态。在块430中,写入进程触发对非易失性存储系统主记录的刷新。在块440中,写入进程可以不用等待刷新完成就在进程开始时对被分配为下ー个超级块(刚刚被指定为当iu超级块)与入。如图4B所示,超级块分配进程并不需要由写入进程执行。在图4B所示的实施例中,ー个独立的的主记录管理器管理超级块分配和管理保持在主记录中这些块相关的数据。图I中主记录管理器可以是控制器Iio内的组件,或控制器110执行的进程。在块450,写入进程到达当前超级块末端。写入进程可发送信号到主记录管理器表示它已经完成对当前超级块的写入。在块460写入进程可立即写入下ー个超级块(因为下ー个超级块在主记录已经分配好)。在块470主记录管理器收到从写入进程的信号并为写入进程分配ー个新的超级块,然后将其指定为下ー个超级块。在块480新的下ー个超级块保存在主记录管理器中且在块490主记录管理器可以触发主纪录刷新。在实施例中,在超级块保存(如图所示)后可立即进行刷新,在N次写入后定期刷新,或设置一定数量的写入进程已保存了新的下ー个超级块。写入进程可通过參考主记录或通过从主记录管理器中正通过的新超级块获得新的下ー个超级块。在一个实施例中,图4A和4B描述的写入进程可由如图I所示的控制器110执行。因此,通过上述预分配方案,本发明实施例消除了在电カ安全得到保证时由于等待对非易失性存储器主记录刷新而造成的延时。如上述所讨论的,在实施例中,写准备就绪的超级块自动预分配给每个对性能关键的写入进程/线程(如来自用户数据管理器或用于垃圾回收)。在实施例中,在主记录任何给定的时间内的这些线程/进程,一个超级块被指定为“当前”超级块,而另外ー个被超级块指定为“下ー个”所以它会在“当前”超级块是满时被写入。在一个实施例中,这些对性能关键线程地址块的预分配是自动完成的,因此,从“当前”超级块溢出到“下ー个”超级块,并分配一个ー个新的“下一个”超级块链接在刚刚被指定的旧的“下ー个”超级块被指定为“当前”超级块后面,这些写操作是很快的。本发明各种实施例的优点在于对性能敏感的线程并不需要等待主记录的刷新,由于在“下一个”超级块信息被丢弃之前主记录保证被刷新,所以是绝对电カ安全的。这是因为,在不同的实施例中,一旦几个或几十个操作完成,包括数千页和主记录的超级块被规划定期刷新。当主记录改动时通过设置一个标志来规划主记录刷新。在某些实施例中,将主记录放置在写执行队列中可立即安排刷新。在这些实施例中,队列中其他的写请求可对应于为“下ー个”超级块指定的写入(“当前”在准备写的主记录中)。在一个实施例中,队列有一个队列深度为32的队列,因此在31个中的大多其他操作在现在的“当前”超级块被执行后,主记录将被刷新。在一个实施例中,由于每个超级块通常有数千页,主记录刷新将在现在的“当前”超级块填补剩余空间的操作前完成。在其他实施例中,队列深度可不同,但可保证主记录刷新完成在另ー个超级块旋转之前,只要队列深度配置小于超级块容量。另一方面,对性能非关键数据,当满足ー个或多个条件时,实施例配置为手动触发分配新的超级块。
本发明实施例能保证存储系统是电力安全的和确保,任何永久的,不可逆转的介质活动时(像对非易失性存储器的写和擦除),恢复的关键数据将被保存在主记录里面,直到介质活动确认成功完成。该保证可适用于下列情况在实施例中,有擦除队列机制植入到主记录中详细描述什么超级块被删除。只有当擦除已成功完成才从队列中删除超级块。因此,如果擦除过程中发生失去供电,超级块将在重新上电后再次从队列删除直到删除成功完成。在实施例中,主记录保持超级块是“开放”的记录,比如,超级块当前是运行的,即使之前他被用作如上解释的那样。这样,实施例中的控制器实质跟踪所有可能被写入任何固体组件(例如,用户数据管理器)的超级块。进ー步说明如下图5A和5B所示,上电时,固体可扫描这些超级块来寻找上次写入的最后页面和正确更新表格(例如,映射表,页无效表,无效计数器表,超级块表等)。一个关键是对非易失性存储器(如NAND)与入有关的恢复数据不会被丢弃,直到非易失性存储器中的表被成功更新和刷新(以及更新)。在实施例中,主记录还包括如与损耗调平和垃圾回收相关的内部操作的“检查点”。失去供电的情况下,实施例为恢复供电后重启提供内部操作有价值的信息,比如(I)块或超级块正在工作的每个操作,(2)成功完成的“检查点”(3)是否从最后ー个检查点继续或重新启动并像正常一祥前行。在某些实施例中,检查点可用于活动日志显示哪些项是相关的,哪些是过时的。在实施例中,植入到主记录的关闭队列机制列出正在等待被关闭的超级块。关闭队列确保超级块跟踪不结束只要他们都被填充着。跟踪不能结束是因为某些系统表仅在易失性存储器内已更新以反映那些填充的超级块实施的最后操作,但这些表尚未刷新到非易失性存储器中。在一个实施例中,仅当必要的系统表更新已被成功刷新到非易失性存储器中,该机制才删除关闭队列中的超级块。系统状杰恢复图5A和5B说明从主记录恢复系统写状态的方法。虽然这里描述的是指系统上电,这些技术可用于需要从非易失性存储器载入储存的系统状态的任何时候。图5A显示了ー个对应于图2A主记录恢复系统写状态的方法。在块501,系统上电。在块502,存储在非易失性存储器中主记录数据由控制器加载。在块503,控制器从主记录检查上次登录页(记录在非易失性存储器中与数据操作相关的最后ー页)并从记录上次写入页的登录页扫描指定给每个写入进程的超级块。在某些实施例中,主记录没有保持最后登录页的记录,在块503的情形下从当前超级块开始扫描最后写入页。主记录可保持记录写活动的记录(例如,活动日志)用于内部维护目的。确定最后写入页能使控制器指定地址作为该进程下一个写入位置。通过这种方式,该系统可以恢复进程到最后写入页,即使该位置没有储存在主记录中。在块504为进程设置下ー个写位置。在一个实施例中,在块505,重建活动日志捕捉尚未被记录(从最后登录页到最后写入页)的操作。图5B说明主记录指定以前,当前和下ー个超级块(如图3A和3B的例子所示)的恢复系统写状态的方法。如图5B,在块511系统上电和在块512加载主记录数据。主记录数据可包括參考每个写入进程的最后登录页。最后登录页可在指定为“在先”或指定为“在先”的超级块内。最后记录页可能来自指定为“在先”的超级块内,例如,如果在登录进程对以前的超级块登录之前写入进程进入到新的超级块并刷新主记录。最后记录页可能来自指 定为“下一个”的超级块内,例如,如果在对主记录成功刷新之前写入进程继续进入到下一个超级块并登录。在块513,对对应最后登录页的超级块扫描最后写入页。由于扫描了超级块,超级块驱动器的活动可以记录在活动日志中来重建日志,从而使得日志对以前未记录的数据操作更新。在块514,系统检查被扫描超级块的最后写入页是否被检测。如果不是,那么在块515系统扫描随后的超级块。例如,如果刚被扫描的超级块是被指定为“以前”的,随后的超级块就是“当前”超级块。同样,如果扫描的超级块是被指定为“当前”的,随后的超级块就是“下一个”超级块。最后写入页可在随后的超级块内,因为在写入进程开始写入随后的超级块但在旋转超级块的分配被刷新到非易失性介质之前,系统中断是可能的。最后的写入位置可设置在块516的写入进程中。如上面所讨论的,通过这个进程,系统可判断必须记录的页(在最后登录页和最后写入页之间的那些页)来重建活动日志且写入进程可从最后实际发生的写的位置继续,即使它不是“当前”超级块。结论虽然本发明描述了某些实施例,但这些实施例只是作为例子而已,不是想要限制本发明的范围。事实上,这里描述的本发明系统和方法的创新性可以体现为其他不同形式。此外,这里描述的各种系统和方法形式的省略、替换、变更,可以认为不偏离本发明的精神。附随的权利要求极其等价物用于覆盖这些形式或落入属于本发明范围和精神的改进。例如,本领域技术人员可能意识到如图28,44,48,54,58所示不同实施例的进程步骤,实际步骤可能会和所述图有所不同。根据实施例,上面所述的例子中某些步骤可能被删除,有些会増加,且步骤的顺序被改变和/或并行执行ー些步骤。虽然本发明例子中描述的数据储存在组块术语称为超级块内,本领域技术人员应认识到本发明的不同实施例也应用到存储器系统其他的存储器计量单位,如面、块、页、扇区等。此外,具体实施例所披露的特点和属性,可以组合成不同的方式形成更多的实施例,而这些都落入本发明的范围内。虽然本发明披露提供了ー些优选实施例和应用,其他对本领域技术人员来说是显而易见的实施例,包括没有提供所有特点和优点的实施例,也在本发明的范围内。据此,本发明范围界定仅參考附加的权利要求。
权利要求
1.一种由固态存储子系统的控制器执行的用于免受失去供电的方法,其包括 保持所述存储子系统的易失性存储器内驱动器状态的记录,对于写入进程所述记录包括,与第一组写入地址和第二组写入地址相关的数据,所述第一组写入地址被指定为所述写入进程正在写入到的当前地址组,其中所述写入地址指定在非易失性固态存储阵列中的地址位置; 写入到所述第一组写入地址; 在写入到所述第一组写入地址的最后写入地址时,指定所述第二组写入地址为所述写入进程将写入的当前写入地址组,所述指定反映在到驱动器状态的记录中; 在指定后开始到所述固态存储子系统的所述非易失性存储器的所述记录的刷新,所述刷新包括保存所述记录到所述非易失性存储阵列的一部分; 在所述记录的刷新完成前写入到所述第二组写入地址,从而所述写入进程不会因所述记录的刷新而延时, 上述方法由所述存储子系统的控制器实施。
2.如权利要求I所述的方法,其中所述记录储存在所述易失性存储器的主记录内,且所述主记录定期被刷新至所述非易失性存储器。
3.如权利要求I所述的方法,其中所述写入地址组为超级块,其中每个超级块包括来自所述非易失性固态存储阵列中多个模组的至少ー个写入块。
4.如权利要求I所述的方法,进ー步包括在失去供电后,參考保存的记录重构系统表和写状态的步骤。
5.如权利要求4所述的方法,其中所述记录还包括和第三组写入地址相关的数据,其中所述指定进一步包括 指定所述第一组写入地址为在先写入的写入地址组;以及 在写入到所述第二组写入地址的最后ー个地址时指定所述第三组写入地址为待写入的写入地址组。
6.如权利要求5所述的方法,其中在失去供电后,被指定为在先写入的写入地址组的所述第一组写入地址被用于恢复写入进程的日志。
7.如权利要求5所述的方法,其中所述重构包括參考与所述第一组写入地址相关的数据和与第二组写入地址相关的数据重构写日志。
8.如权利要求I所述的方法,其中所述记录包括擦除队列,关闭队列和写入地址组空闲池中的至少ー个。
9.ー种被配置为在预期失去供电时保存系统状态信息的固态存储系统,其包括 固态存储器阵列,其包括多个存储器単元,每个存储器单元包括多个物理写入地址; 控制器,其被配置以控制对所述固态存储器阵列写入数据的多个写入进程,所述多个写入进程包括用户数据写入进程和内部系统写入进程,根据分配给所述写入进程的存储器単元,每个所述写入进程写入所述固态存储器阵列的对应部分; 主机系统接ロ,所述系统通过所述主机系统接ロ接收将由所述用户数据写入进程执行的存储器命令; 其中所述控制器被配置为 保持ー记录,所述记录包括指示驱动器活动状态的数据,以及对于所述多个写入进程中的每个进程,与分配的存储器単元和下一存储器单元相关的数据,所述下一存储器单元表示在被分配的存储器単元中的物理写入地址被用尽后所述写入进程将要写入的存储器单元;以及 刷新所述纪录到所述固态存储器阵列,所述刷新的执行独立于正在完成的对其被分配的存储器単元的写入并开始对下一存储器单元的写入的所述多个写入进程中的任何写入进程,从而多个写入进程中对下ー个存储器単元写入的写入进程不取决于刷新所述记录到所述固态存储器阵列的完成。
10.如权利要求9所述的固态存储系统,其中所述记录进ー步包括,对于所述多个写入进程中的每个进程,与记录所述进程已经被写入的物理写入地址的关联在先存储器単元相关的数据。
11.如权利要求10所述的固态存储系统,其中当所述写入进程完成对分配的存储器单元的写入并开始对所述下一存储器单元的写入时,所述控制器进ー步被配置为重新分配所述记录内与所述分配的存储器相关的数据作为与所述在先存储器単元相关的数据,以及重新分配所述记录内与所述下一存储器单元相关的数据作为与所述分配的存储器単元相关的数据。
12.如权利要求9所述的固态存储系统,其中当所述写入进程完成对所述分配的存储器単元的写入并开始对所述下一存储器单元的写入时,所述记录被更新以反映所述写入进程的当前写入状态,并从所述多个存储器単元中分配新的存储器単元作为所述写入进程的下一个存储器単元。
13.如权利要求12所述的固态存储系统,其中所述记录进ー步包括擦除队列和关闭队列,其每个包括所述多个存储器単元的一部分,并且当所述记录被更新以从所述多个存储器単元中分配新的存储器单元时,从所述多个存储器単元选择的被分配的存储器単元不是包括在所述擦除队列或关闭队列中的存储器単元。
14.如权利要求13所述的固态存储系统,其中所述记录进ー步包括存储器単元的空闲池,其中从所述多个存储器単元中选择的被分配的存储器单元是包括在所述存储器単元的空闲池中的存储器単元。
15.如权利要求9所述的固态存储系统,其中每个所述存储器単元包括超级块。
16.如权利要求9所述的固态存储系统,其中所述控制器被配置为在通电后通过所述记录重构所述固态存储系统状态。
17.—种记录固态存储系统的状态的方法,其包括 通过所述固态存储系统的控制器执行的进程修改在固态存储阵列中第一地址子集的数据; 为所述进程分配所述固态存储阵列中的第二地址子集,以便在所述进程完成对在所述第一地址子集的数据的修改之前,所述第二子集不会被所述进程修改; 在所述固态存储阵列中存储包括反映所述第二地址子集的数据的记录; 通过所述进程,修改在所述第二地址子集的数据,其中在完成储存步骤之前开始修改在所述第二地址子集的数据,以便对在所述第二地址子集的数据的修改不反映在所述固态介质存储阵列中储存的记录中; 检索储存在所述固态存储阵列中的所述记录;扫描检索的记录中数据反映的所述第一地址子集和所述第二地址子集,从而确定在所述记录储存后由所述进程在所述第二地址子集执行的修改。
18.如权利要求17所述的方法,其中所述进程是用户数据管理器、损耗平衡进程或垃圾收集进程中的ー个。
19.如权利要求17所述的方法,其中所述检索和扫描在失去供电事件后执行。
全文摘要
本发明提供一种供电安全的数据管理系统,并具体涉及一种在意外失去供电后,恢复系统状态和保持驱动器一致性的系统和方法。尤其是,该系统和方法通过预分配写入地址组和在非易失性存储器中记录预分配地址组,减少了用于保持驱动器一致性的开销。写入进程可写入预分配的地址组,而下一组的地址被预分配并记录到非易失性存储器中。
文档编号G06F11/14GK102722339SQ20121008654
公开日2012年10月10日 申请日期2012年3月28日 优先权日2011年3月28日
发明者F·H·阿迪, L·S·赵 申请人:西部数据技术公司