用于持久性存储器的多版本化非易失性存储器层级的制作方法

文档序号:9529245阅读:522来源:国知局
用于持久性存储器的多版本化非易失性存储器层级的制作方法
【专利说明】
【背景技术】
[0001]持久性存储器在长持续时间内存储数据。当该数据被维护或保留在未经改变的状态中使得其可以在稍后时间处在相同状态中被再调用或检索时,数据可以被称为持久性数据。通常,持久性数据由一个过程创建和存储,并且随后在稍后时间处由另一过程检索。
【附图说明】
[0002]图1A图示了包括示例非易失性高速缓存和示例非易失性存储器以提供持久性存储器的示例持久性存储器区。
[0003]图1B示出示例处理器系统中的图1A的示例持久性存储器区以提供用于对持久性数据结构的原子、一致且耐久的(durable)数据更新的多版本化非易失性存储器层级。
[0004]图2图不了图1A和1B的不例易失性尚速缓存事务管理器和不例非易失性尚速缓存事务管理器的示例配置。
[0005]图3图示了针对由图1A和1B的示例处理器系统运行的事务的示例时序图。
[0006]图4图示了图3的事务期间图2的示例队列。
[0007]图5是表示可以由逻辑或示例机器可读指令执行以将数据存储在使用图1A、1B和2的示例持久性存储器架构的图1A、1B和2的非易失性高速缓存和非易失性存储器中的示例过程的流程图。
[0008]图6是表示可以由逻辑或示例机器可读指令执行以执行持久性存储器更新的示例过程的流程图。
[0009]图7是表示可以由逻辑或示例机器可读指令执行以执行系统恢复的示例过程的流程图。
【具体实施方式】
[0010]非易失性存储器在没有所施加的功率的情况下存储和保留(例如维持)数据。一些非易失性存储器允许以精细粒度(例如一字节)执行读取和/或写入操作。由于增加的密度和可缩放性特性,以及在没有所施加的功率的情况下维持数据的能力,一些非易失性存储器技术(例如字节可寻址的非易失性存储器,诸如相变存储器、自旋转移矩存储器、忆阻器等)对于用作主存储器的诸如动态随机存取存储器(DRAM)之类的易失性存储器是优选的。字节可寻址的非易失性存储器可以用于实现甚至在应用和/或系统故障之后维护存储器中数据对象的状态的持久性存储。
[0011]在非易失性存储器中的数据更新过程期间,故障、存储器泄漏和/或使更新过程中断的应用错误可能破坏(corrupt)非易失性存储器中的数据。本文所公开的示例使得非易失性存储器系统能够执行安全数据更新使得在正常操作条件期间和在发生系统和/或应用故障时维护数据完整性和一致性。本文所公开的示例使得能够通过提供多版本化非易失性存储器层级以对非易失性持久性数据结构执行原子、一致且耐久的数据更新来维护非易失性存储器中的数据完整性和一致性。
[0012]原子数据更新是其中完整执行特定更新请求或过程的所有数据更新使得没有数据更新被留置部分未完成的数据更新。对数据结构的部分未完成数据更新的示例是在数据结构的节点被解分配(例如该节点不再被视为存储有效数据),但是另一节点仍旧指向经解分配的节点时。数据更新在其更新数据结构的一个或多个节点中的数据时提供跨数据结构中的数据的一致性使得数据节点之间的有意义的关系和排序得以维护使得数据结构保持在有效、可使用状态中。在一些示例中,如果未实现一致性,乱序数据更新可能导致不一致的状态,其可能造成无效、不可使用和不可恢复的数据结构。如本文所使用的,一致且可以从系统故障、功率丧失和/或意图/非意图系统关机事件存活下来的数据被称为耐久数据。为了实现耐久性,数据被直写到长期储存器(例如非易失性存储器),其中其在长持续时间内维持。在一些实例中,用户请求数据更新的结果应当在更新一结束就变为耐久的。在这样的实例中,数据更新的结果被立即或者尽可能快地驱逐(evict)到非易失性存储器。以此方式,可以使数据是耐久的,使得其在从系统故障和/或功率丧失(如果发生这样的事件的话)恢复之后可用于检索。在一些现有技术中,实现耐久性增加芯片外业务量和/或防止乱序操作调度。
[0013]在存储器管理系统中,事务用于更新数据、促进从故障中恢复,以及使得数据能够在系统故障的事件中是一致的。事务是单独且不可划分的操作或操作集,其必须全部被完整执行或者完全不执行。事务可以包括例如读取数个高速缓存行、更新从高速缓存行读取的数据以及将经更新的数据写入到高速缓存行。在这样的事务中,针对要成功完成的事务,所有读取、更新和写入必须被完成。在一些示例中,软件接口用于实现事务。其它接口可以附加或可替换地用于实现事务。
[0014]高速缓存系统使用多个类型的事务状态。事务状态的示例类型被称为未提交事务、提交中事务和已提交事务。在数据被指派给事务之后,但是在事务开始(例如以更新数据或者写入到数据)之前,事务被称为未提交事务。在事务运行的同时(例如在事务正从高速缓存行读取数据和/或将数据写入到高速缓存行的同时),事务被称为提交中事务。当提交中事务正更新数据/将数据写入到非易失性存储器时,并且在提交中事务结束更新/写入数据之前(例如与事务相关联的不可划分数据集直到提交中事务结束更新/写入所有不可划分数据集为止仅部分被更新),提交中事务已经写入到非易失性存储器的数据的任何部分被称为持久性数据。当事务完成运行时,其被称为已提交事务。一旦事务完成运行(例如事务是已提交事务)并且由事务更新的数据(例如与事务相关联的数据集)被存储在非易失性存储器中,数据被称为耐久的。因此,如果数据在非易失性存储器中是持久性的并且与数据相关联的事务是已提交事务则数据是耐久的。
[0015]—些现有技术采用基于软件的多版本化数据结构、重做或撤消记录、预写(write-ahead)记录或影式分页以提供非易失性存储器中的一致数据更新。然而,这样的技术招致性能和功率方面的增加的开销。例如,预写记录涉及将持久性数据更新的日志写入到主存储器(例如芯片外非易失性存储器)以提供原子性和耐久性。这样的数据业务量可能招致长等待时间并且增加存储器总线处的带宽需求。等待时间和/或带宽问题可能导致系统吞吐量降级。
[0016]在一些现有系统中,持久性存储器区包括仅非易失性主存储器,使得数据不被称为持久的,直到其从高速缓存直写到非易失性主存储器为止。本文所公开的示例系统和方法提供扩大或扩展持久性存储器区以包括非易失性高速缓存和非易失性主存储器的持久性存储器架构。因此,本文所公开的示例使得能够在数据一被存储在非易失性高速缓存中就维持数据,而不是等待直到其被存储在非易失性主存储器中。本文所公开的示例系统和方法相对于现有基于日志的持久性技术而言减少存储器等待时间和/或数据业务量。此夕卜,本文所公开的示例系统和方法使得能够在更新存储在非易失性存储器中的存储器中数据的同时自动地维持数据。因此,本文所公开的示例系统和方法通过避免通常与现有基于日志的技术相关联的大量数据移动来改进系统吞吐量并且减少存储器功率消耗。
[0017]在现有存储器系统中,易失性和非易失性储存器的边界相对清晰。也就是说,易失性储存器包括高速缓存(其可以被直接寻址和硬件控制),并且非易失性储存器包括硬盘驱动器和固态驱动器(其可以是通过诸如文件读取、文件写入等之类的软件接口定向和访问的块)。对于其中软件控制易失性域(例如易失性存储器)与非易失性域(例如硬盘)之间的数据移动的系统,编程器写入故障保护(failsafe)软件或固件特征以防止旧(例如有效且一致)的数据被新的数据或未提交事务破坏。
[0018]然而,关于一些字节可寻址的非易失性存储器系统,易失性和非易失性储存器之间实现的边界不太清晰。脏(dirty)数据(例如已经改变的数据)可能首先存储在高速缓存层级中并且随后被驱逐到存储器的较低级别以最终存储在非易失性存储器中。然而,软件并不总是能够控制何时将脏数据直写到非易失性存储器。例如,与未提交事务相关联的脏数据可能被过早地驱逐到非易失性存储器,如果事务和/或系统故障在直写或数据更新期间能够重新建立数据一致性之前发生则这可能导致破坏数据完整性。在一些示例中,已提交事务的结果可能在事务被提交之后保持在易失性高速缓存层级中。软件然后可以单独清除(flush)每一个高速缓存行以迫使驱逐脏数据以被直写到非易失性存储器。然而,这样的软件干预是低效的。
[0019]对于诸如硬盘驱动器之类的现有非易失性储存器而言,用于原子性、一致性和/或耐久性的基于软件的支持是可接受的,因为磁性硬盘驱动器一般是缓慢的。因而,软件操作一般不使性能降级,因为这样的软件通常不比磁性硬盘驱动器更慢。然而,诸如固态存储器(例如相变存储器(PCM)、自旋转移矩存储器(STT-RAM)、忆阻器等)之类的最近兴起的非易失性存储器技术相对于诸如磁性硬驱动器之类的机电非易失性储存器而言操作得更快。照此,实现原子性、一致性和/或耐久性的基于软件的过程负面地影响具有固态非易失性存储器技术的存储器系统的性能。
[0020]本文所公开的示例系统和方法使用基于硬件的多版本化以提供原子性、一致性和/或耐久性。本文所公开的示例系统和方法提供还可以用于实现例如当数据被修改时保留数据的在先版本的多版本化存储器的非易失性存储器技术。本文所公开的示例系统和方法使得能够使用非易失性存储器层级来维护(例如以高速缓存行粒度)数据的多个版本。本文所公开的示例系统和方法提供使用非易失性高速缓存和非易失性主存储器来实现持久性存储器区的持久性存储器架构。因此,本文所公开的示例系统和方法使得能够在数据一被写入到非易失性高速缓存就使数据是持久性的。因此,本文所公开的示例系统和方法相对于用于确保数据持久性的现有基于日志的技术而言减少涉及维持数据的存储器等待时间和/或业务量。本文所公开的示例系统和方法维护持久性数据而不需要维护日志。本文所公开的示例无日志数据持久性技术通过避免通常在基于日志的技术中使用的大量数据移动而相对于现有系统增加系统吞吐量并且减少存储器
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1