在非易失性存储器中使易失性隔离事务具有失败原子性的制作方法

文档序号:14203872阅读:205来源:国知局
在非易失性存储器中使易失性隔离事务具有失败原子性的制作方法

相关申请的交叉引用

本申请要求于2015年9月24日提交的美国非临时专利申请号14/864,503的优先权权益。

实施例总体上涉及事务同步。更具体地,实施例涉及(例如,使用事务存储器的硬件)在硬件提供的隔离下的非易失性存储器中使易失性隔离事务具有失败原子性。



背景技术:

数据库系统可以经由大量并发事务来访问。可靠地处理数据库事务的能力可以以被称为acid(原子性(atomicity)、一致性(consistency)、隔离性(isolation)、耐久性(durability))的一组性质来表征。数据库系统可以通过使用先于(例如,“覆盖”)数据写入操作(“写入”)的日志或日记条目来记录所述写入从而对acid性质的ad(原子性、耐久性)部分进行寻址。因此,如果在已记录事务期间发生系统故障,则日志条目可以用于或者重做所述事务或者撤销所述事务,以便使所述事务具有原子性(例如,不可分割)且具有耐久性(例如,持久)。

数据库系统可以通过实施锁定、锁存、功能分解(例如,不同处理器执行不同任务以实现互斥)或数据分解(例如,不同处理器对不同数据区域进行工作以实现互斥)来对acid性质的ci(一致性、隔离性)部分进行寻址,其中,ad和ci可以经由锁定-日志-解锁方式相互协调。在这种情况下,只有在记录事务的所有变化的日志处于耐久存储设备(例如,非易失性存储器/nvm)中之后才可以释放由事务获得的所有锁定。

虽然用于在数据库系统中实现acid的常规方式在某些情况下可能是适合的,但是仍存在相当大的改进空间。例如,锁定执行可能导致大量处理开销,所述处理开销对于彼此无交集的事务而言可能是不必要的。尽管一些解决方案可能借助于硬件执行的自动事务排除而在易失性存储器中提供无锁事务隔离,但是那些解决方案可能不容易支持关于nvm的原子性和耐久性。因此,进行输入/输出(io)操作、转储清除高速缓存行或以其他方式对nvm进行写入的事务仍可能经历大量锁定相关开销,因为所述事务可能不能够利用基于硬件的事务排除,甚至是在事务之间不存在实际数据交集时。

附图说明

通过阅读以下说明书和所附权利要求书并参考以下附图,实施例的各种优点对于本领域技术人员将变得显而易见,在附图中:

图1a是根据实施例的操作事务同步装置的方法的示例的流程图;

图1b是根据实施例的对应于图1a的方法的一组时间跨度的示例的图示;

图2是根据实施例的事务同步装置的示例的框图;

图3是根据实施例的处理器的示例的框图;并且

图4是根据实施例的系统的示例的框图。

具体实施方式

图1a和图1b示出了操作事务同步装置的方法10以及对方法10进行建模的相应一组序列节点11。方法10通常可以在数据管理系统(如例如,数据库系统、多线程对象和文件系统、“大数据”系统、键值存储设备等)中实施。经由方法10同步的事务通常可以进行输入/输出(io)操作、转储清除高速缓存行或者对nvm进行写入。如下面将更加详细讨论的,方法10可以实现相对轻量且细粒度的同步,同时针对在持久性存储器中在原地(例如,存储数据的位置,而不是在代理或影子位置中)更新的耐久数据而优化加载-存储性能。

方法10可以被实现为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、固件、闪存等非暂态机器或计算机可读存储介质中,在如例如可编程逻辑阵列(pla)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)等可配置逻辑中,在使用如例如专用集成电路(asic)、互补金属氧化物半导体(cmos)或晶体管-晶体管逻辑(ttl)技术等电路技术的固定功能硬件逻辑中,或其任何组合。例如,用于执行方法10中所示出的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,包括面向对象的编程语言(如c#、java等)。

所展示的处理框12提供了建立日志锚节点。日志锚节点可以与非易失性存储器中的存储位置(例如,地址范围)相关联,并且框12可以涉及向锚节点分配存储位置。此外,框12可以表示稳定日志提交跨度20(例如,由序列节点1至6限定)的开始。可以在框14处启动易失性隔离(例如,事务性同步扩展/tsx),其中,总体上可以在框16(16a至16c)处执行涉及经由高速缓存(例如,第一级/l1高速缓存)对易失性存储器中的变量的修改的一个或多个事务。框14可以表示易失性隔离跨度22(例如,由序列节点2至5限定)的开始。更具体地,对事务的执行可以包括在框16a处从易失性存储器中进行一次或多次受控延迟(例如,“绊网”)读取。术语“绊网(tripwire)”可用于指示在不使用锁定、锁存、功能组合、数据分解或可以以其他方式用于实现一致性和隔离性(ci)的其他开销密集型技术的情况下对事务的受控延迟。

在一个示例中,对受控延迟的激活可以包括对与通过给定事务修改的变量相关联的位置进行标记。所述标记可以通过散列、位图、范围映射和/或其他数据结构集员(setmembership)操作来实现。在散列的情况下,对受控延迟的激活可以包括初始化与通过给定事务修改的变量相关联的散列值、增大散列值以及存储所增大的散列值(例如,存储到易失性存储器中)。散列值可以使用合理分布的散列函数(如例如,克努特(knuth)的乘法散列)来计算。因此,绊网可以是对其他事务的表明自延迟可能适当的无锁信号。因此,框16a可能涉及确定与正被读取的变量相关联的散列值,以及如果散列值为非零则延迟对当前事务的执行。另一方面,如果散列值为零,则当前事务可以继续。

所展示的框16b可以生成事务的日志,其中,日志可以记录易失性存储器写入。框16b可以表示受控延迟跨度24(例如,由序列节点3至8限定)的开始。另外,可以在框16c处跟踪对应于所记录事务的数据更新。数据更新可以是由于所记录事务而将对高速缓存层次结构进行的适当修改。如通过框16b中创建的事务日志所指示的那样修改的数据位置可能经受由任何其他(多个)事务进行的绊网访问(即,针对经延迟更新),直到移除绊网,如下面更详细描述的。相应地,那些数据位置是在所展示的框16c中跟踪的位置。

框18可以取消更新并且激活受控延迟。如已经指出的,激活受控延迟可以包括例如初始化与通过给定事务修改的变量相关联的散列值、增大散列值以及将所增大的散列值存储到易失性存储器中。如位图、范围映射等其他信号也可以用于表示事务之间的受控延迟。例如,位图可以用作散列的替代物,特别是在被更新的位置为了效率而在空间中紧密地聚集在一起的情况下——因为单个位可以仅利用单个绊网操作来覆盖一批位置。另外,可以在框26处停止易失性隔离。框26可以表示易失性隔离跨度22的结束。

在所展示的框28处进行将日志转储清除到nvm,所述框表示稳定日志提交跨度20的结束。响应于日志转储清除的完成,框30可以基于通过事务做出的变量修改(例如,写入)来进行对nvm中的数据的更新。特别值得注意的是,框30可以在受控延迟跨度24期间发生(例如,在受控延迟被激活的同时)。所展示的框32对受控延迟解除激活。相应地,框32可以表示受控延迟跨度24的结束。

因此,所展示的方法10提供了日志独立性、数据更新延迟、逻辑数据更新与物理数据更新之间的绊网、持久性存储器提交指令的最小化以及日志棘轮效应(logratcheting)。

1.日志独立性:即使数据是共享的,覆盖事务更新的日志也基本上可以是不受保护的私有(每线程或每事务)结构。因此,为了转储清除日志,易失性隔离覆盖可能是不必要的。已提交事务日志当中的全局顺序可能是足够的,并且全局顺序可以在不导致易失性隔离中止的情况下实现。

2.延迟数据更新:在覆盖事务的逻辑数据更新的日志转储清除已经完成之后,可以(例如,在nvm中)在原地并且以任意顺序完成数据更新,而不会处于机器故障的危险,因为日志可以用于恢复任何数据丢失。可以经由绊网来实现在不利用由易失性隔离提供的事务筒仓(transactionalsilo)的情况下在超过日志转储清除时刻的时间延迟nvm中的更新。

3.逻辑数据更新(例如,在易失性隔离区域内执行并且不传送到nvm)与物理数据更新(在nvm中在原地执行)之间的绊网:绊网可以用于延迟日志转储清除,直到易失性隔离覆盖之后,同时延迟数据写入,直到日志转储清除之后(因为日志转储清除使更新可稳定恢复)。这种方式可以消除对写入器与读取器/写入器之间的竞争的担忧。在绊网中,可以使用易失性字节阵列来提供带外信令以使与经延迟写入竞争的读取器或写入器出错。也就是说,虽然可以在逻辑上延迟数据写入,直到易失性隔离覆盖之后,但是可以使用刚好足够的绊网来使得与经延迟写入具有实际数据竞争的事务回退。然而,无竞争事务可以如期继续。因此,绊网可以实现交织保护(例如,用于提供覆盖nvm中的易失性隔离、记录和数据更新的完整跨度的三个保护交织/重叠跨度),所述交织保护在不扩展易失性隔离事务的物理(易失性隔离)跨度的情况下扩展了其逻辑跨度。的确,仅可以在不牺牲并发性的情况下遇到少量的每线程开销。

4.持久性存储器提交指令和排除持续时间的最小化:易失性隔离(例如,tsx)的关键益处在于其逻辑(虚拟)锁定消除了可能以其他方式由实际(物理)锁定引起的错误争用。当基于锁定的序列化的持续时间(即,总锁定保持时间)像接下来描述的那样变得延长时,这种益处可能特别显著。当事务处于nvm中的适当位置中时,制约因素(例如,“帐篷中的长杆”)可能是向nvm提交更新的时间。但是如本公开所示出的,有可能将竞争事务当中的排除持续时间缩减为仅持久性存储器提交操作,所述持久性存储器提交操作由于绊网技术而隔离将日志写入到nvm中,同时非竞争事务在统计上完全避免了彼此的绊网区域。

5.日志棘轮效应:此外,即使nvm中的数据更新可能未被触发,恢复也可能相对较快。更具体地,为了避免必须任意倒退到非常旧的一致性点,系统守护进程可能周期性地设置使新日志锚节点停止的全局标志、发出持久性存储器提交指令、等待当前打开的日志桶关闭(即,当前事务遇到障碍)以及然后重置全局标志。如果甚至如每几秒(“时期”)一样频繁地进行这种操作,则在不受控制的重新启动上重放的日志桶的数量可以减小为仅在最后一个时期内的日志桶。

这种类型的日志棘轮效应的一个结果是可以绕过数据写出(和高速缓存行回写)之后的最终持久性存储器提交指令(例如,在序列节点7中)。例如,可以使用简单的权宜之计:在重放完成的日志桶时由于任何持久性存储器提交和全系统障碍相当于全系统障碍的性质而退后两个时期,在所述全系统障碍中,每个线程都已经执行了其自己的持久性存储器提交指令。

图2示出了事务同步装置34。装置34总体上可以实施已经讨论的方法10(图1)的一个或多个方面。因此,装置34(34a至34c)可以包括逻辑指令、可配置逻辑、固定功能逻辑硬件等或其任何组合。在所展示的示例中,日志管理器34a生成第一事务的日志,所述第一事务涉及对易失性存储器中的变量的修改,并且绊网控制器34b激活与变量相关联的第二事务的受控延迟。另外,一致性控制器34c可以在受控延迟被激活的同时基于修改来进行对非易失性存储器中的数据的更新(例如,高速缓存行回写/clwb)。

在一个示例中,绊网控制器34b包括标记器38,所述标记器用于对与变量相关联的位置进行标记(例如,增大并存储散列值)以便激活受控延迟。此外,日志管理器34a可以进行将日志转储清除到非易失性存储器,其中,将响应于转储清除的完成而进行更新。绊网控制器34b可以响应于更新的完成而对受控延迟解除激活。就此而言,绊网控制器34b可以包括取消标记器42,所述取消标记器用于对与变量相关联的位置(例如,减小并存储散列值)取消标记以便对受控延迟解除激活。

所展示的绊网控制器34b还包括状态监测器44,所述状态监测器用于确定与变量相关联的散列值(例如,结合绊网读取)。如果散列值不为零,则事务一致性和耐久性组件46可以延迟对第一事务的执行。

图3展示了根据一个实施例的处理器核200。处理器核200可以是用于任何类型的处理器(诸如微处理器、嵌入式处理器、数字信号处理器(dsp)、网络处理器或用于执行代码的其他设备)的核。尽管图3中展示了仅一个处理器核200,但处理元件可以替代地包括多于一个图3中所展示的处理器核200。处理器核200可以是单线程核,或者对于至少一个实施例来说,处理器核200可以是多线程的,因为其可能包括每个核多于一个硬件线程上下文(或“逻辑处理器”)。

图3还展示了耦合至处理器核200的存储器270。存储器270可以是如本领域技术人员已知的或以其他方式可获得的多种多样的存储器(包括存储器层次结构的不同层)中的任何存储器。存储器270可以包括待由处理器核200执行的一个或多个代码213指令,其中,代码213可以实施已经讨论的方法10(图1a)。处理器核200遵循由代码213指示的指令程序序列。每个指令都可以进入前端部分210并且可以由一个或多个解码器220处理。解码器220可以生成呈预定义格式的微操作(如固定宽度微操作)作为其输出,或者可以生成反映出原始码指令的其他指令、微指令、或控制信号。所展示的前端部分210还包括寄存器重命名逻辑225和调度逻辑230,它们总体上分配资源并且将对应于用于执行的转换指令的操作进行排队。

处理器核200被示出为包括具有一组执行单元255-1至255-n的执行逻辑250。一些实施例可以包括专用于指定功能或功能集合的大量执行单元。其他实施例可以包括仅一个执行单元、或可以执行特定功能的一个执行单元。所展示的执行逻辑250执行由码指令指定的操作。

在完成由码指令指定的操作的执行之后,后端逻辑260使代码213的指令引退。在一个实施例中,处理器核200允许指令的无序执行但要求指令的有序引退。引退逻辑265可以采取本领域技术人员已知的多种形式(例如,重排序缓冲器等)。以此方式,在代码213的执行过程中,至少就由解码器、寄存器重命名逻辑225所利用的硬件寄存器和表、以及由执行逻辑250修改的任何寄存器(未示出)生成的输出而言,处理器核200被变换。

尽管图3未展示,但处理元件可以包括其他芯片内元件与处理器核200。例如,处理元件可以包括存储器控制逻辑连同处理器核200。处理元件可以包括i/o控制逻辑,和/或可以包括与存储器控制逻辑集成的i/o控制逻辑。处理元件还可以包括一个或多个高速缓存。

现在参照图4,所示出的是根据实施例的系统1000实施例的框图。图4中所示出的是包括第一处理元件1070和第二处理元件1080的多处理器系统1000。虽然示出了两个处理元件1070和1080,但应当理解的是,系统1000的实施例还可以包括仅一个此类的处理元件。

系统1000被展示为点对点互连系统,其中,第一处理元件1070和第二处理元件1080经由点对点互连1050耦合。应当理解的是,图4所展示的任何或所有互连可以被实现为多站式总线而非点对点互连。

如图4所示,处理元件1070和1080中的每一个都可以是多核处理器,包括第一和第二处理器核(即,处理器核1074a与1074b以及处理器核1084a与1084b)。此类核1074a、1074b、1084a、1084b可以被配置用于以与以上关于图3讨论的方式类似的方式执行指令代码。

每个处理元件1070、1080可以包括至少一个共享高速缓存1896a、1896b(例如,静态随机存取存储器/sram)。共享高速缓存1896a、1896b可以存储分别由处理元件的一个或多个部件(如核1074a、1074b和1084a、1084b)使用的数据(例如,对象、指令)。例如,共享高速缓存1896a、1896b可以本地高速缓存存储在存储器1032、1034中的数据,以便由处理器的部件更快地访问。在一个或多个实施例中,共享高速缓存1896a、1896b可以包括一个或多个中级高速缓存,如2级(l2)、3级(l3)、4级(l4)或其他级别的高速缓存、最后一级高速缓存(llc)、和/或其组合。

虽然仅以两个处理元件1070、1080来示出,但应理解实施例的范围不限于此。在其他实施例中,给定处理器中可以存在一个或多个另外的处理元件。可替代地,处理元件1070、1080中的一个或多个处理元件可以是处理器之外的元件,如加速度计或现场可编程门阵列。例如,(多个)另外的处理元件可以包括与第一处理器1070相同的(多个)另外的处理器、与第一处理器1070异构或不对称的(多个)另外的处理器、加速器(例如像图形加速器或数字信号处理(dsp)单元)、现场可编程门阵列、或任何其他处理元件。就一系列品质量度(包括体系结构、微体系结构、热、功耗特性等)而言,处理元件1070、1080之间存在多种差异。这些差异可以有效地将其本身表现为处理元件1070、1080之间的不对称性和异构性。对于至少一个实施例,各种处理元件1070、1080可以驻留在相同裸片封装体中。

第一处理元件1070可以进一步包括存储器控制器逻辑(mc)1072以及点对点(p-p)界面1076和1078。类似地,第二处理元件1080可以包括mc1082以及p-p界面1086和1088。如图4所示,mc的1072和1082将处理器耦合到对应存储器上,即存储器1032和存储器1034,它们可以是本地附接到对应处理器上的主存储器的部分。虽然mc1072和1082被展示为集成到处理元件1070、1080中,但对于替代性实施例,mc逻辑可以是位于处理元件1070、1080外部而不是集成在其中的离散逻辑。

第一处理元件1070和第二处理元件1080可以对应地经由p-p互连件1076、1086耦合至i/o子系统1090。如图4所示,i/o子系统1090包括p-p界面1094和1098。而且,i/o子系统1090包括界面1092以便将i/o子系统1090与高性能图形引擎1038耦合。在一个实施例中,总线1049可以用于将图形引擎1038耦合至i/o子系统1090。可替代地,点对点互连可以耦合这些部件。

进而,i/o子系统1090可以经由界面1096耦合至第一总线1016。在一个实施例中,第一总线1016可以是外围部件互连(pci)总线,或如pci快速总线或另一种第三代i/o互连总线的总线,尽管实施例的范围不限于此。

如图4所示,各种i/o设备1014(例如,相机、传感器)可连同总线桥接器1018一起耦合至第一总线1016,所述总线桥接器可以将第一总线1016耦合至第二总线1020。在一个实施例中,第二总线1020可以是低引脚数(lpc)总线。在一个实施例中,各个设备可以耦合至第二总线1020,所述设备包括例如键盘/鼠标1012、(多个)网络控制器/通信设备1026(所述网络控制器/通信设备进而可以与计算机网络进行通信)、以及可以包括代码1030的数据存储单元1019(如磁盘驱动器或者其他大容量存储设备)。代码1030可以包括用于执行以上所描述方法中的一种或多种的实施例的指令。因此,所展示的代码1030可以实施已经讨论的方法10(图1a),并且可以类似于已经讨论的代码213(图3)。系统1000还可以包括事务同步装置,比如事务同步装置34(图2)。此外,音频i/o1024可以耦合到第二总线1020。

注意的是,考虑到了其他实施例。例如,系统可以实现多分支总线或另一个这种通信拓扑,而不是图4的点对点体系结构。而且,可以可替代地使用比图4中所示的更多或更少的集成芯片对图4的元件进行分区。此外,网络控制器/(多个)通信设备1026可以被实现为hfi(主机结构接口)(其也被称为nic(网络接口卡)),所述hfi与处理元件1070、1080中的一个或多个或者集成在同一管芯上,或者集成在同一封装体中。

附加说明和示例:

示例1可以包括一种数据管理系统,所述数据管理系统包括:易失性存储器;非易失性存储器;以及事务同步装置,所述事务同步装置包括:日志管理器,所述日志管理器用于生成第一事务的日志,所述第一事务涉及对所述易失性存储器中的变量的修改,绊网控制器,所述绊网控制器用于激活与所述变量相关联的第二事务的受控延迟,以及一致性和耐久性控制器,所述一致性和耐久性控制器用于在所述受控延迟被激活的同时基于所述修改来进行对所述非易失性存储器中的数据的更新。

示例2可以包括如示例1所述的系统,其中,所述绊网控制器包括标记器,所述标记器用于标记与所述变量相关联的位置。

示例3可以包括如示例1所述的系统,其中,所述日志管理器用于进行将所述日志转储清除到所述非易失性存储器,并且其中,所述更新将响应于所述转储清除的完成而进行。

示例4可以包括如示例1至3中任一项所述的系统,其中,所述绊网控制器用于响应于所述更新的完成而对所述受控延迟解除激活。

示例5可以包括如示例4所述的系统,其中,所述绊网控制器包括取消标记器,所述取消标记器用于对与所述变量相关联的位置取消标记。

示例6可以包括如示例1所述的系统,其中,所述绊网控制器包括:状态监测器,所述状态监测器用于检测对与所述变量相关联的位置的访问;以及符合性组件,所述符合性组件用于响应于所述访问而延迟对所述第一事务的执行。

示例7可以包括一种事务同步装置,所述事务同步装置包括:日志管理器,所述日志管理器用于生成第一事务的日志,所述第一事务涉及对易失性存储器中的变量的修改;绊网控制器,所述绊网控制器用于激活与所述变量相关联的第二事务的受控延迟;以及一致性和耐久性控制器,所述一致性和耐久性控制器用于在所述受控延迟被激活的同时基于所述修改来进行对非易失性存储器中的数据的更新。

示例8可以包括如示例7所述的装置,其中,所述绊网控制器包括标记器,所述标记器用于标记与所述变量相关联的位置。

示例9可以包括如示例7所述的装置,其中,所述日志管理器用于进行将所述日志转储清除到所述非易失性存储器,并且其中,所述更新将响应于所述转储清除的完成而进行。

示例10可以包括如示例7至9中任一项所述的装置,其中,所述绊网控制器用于响应于所述更新的完成而对所述受控延迟解除激活。

示例11可以包括如示例10所述的装置,其中,所述绊网控制器包括取消标记器,所述取消标记器用于对与所述变量相关联的位置取消标记。

示例12可以包括如示例7所述的装置,其中,所述绊网控制器包括:状态监测器,所述状态监测器用于检测对与所述变量相关联的位置的访问;以及符合性组件,所述符合性组件用于响应于所述访问而延迟对所述第一事务的执行。

示例13可以包括一种操作事务同步装置的方法,所述方法包括:生成第一事务的日志,所述第一事务涉及对易失性存储器中的变量的修改;激活与所述变量相关联的第二事务的受控延迟;以及在所述受控延迟被激活的同时基于所述修改来进行对非易失性存储器中的数据的更新。

示例14可以包括如示例13所述的方法,其中,激活所述受控延迟包括:标记与所述变量相关联的位置。

示例15可以包括如示例13所述的方法,进一步包括:进行将所述日志转储清除到所述非易失性存储器,其中,所述更新是响应于所述转储清除的完成而进行的。

示例16可以包括如示例13至15中任一项所述的方法,进一步包括:响应于所述更新的完成而对所述受控延迟解除激活。

示例17可以包括如示例16所述的方法,其中,对所述受控延迟解除激活包括:对与所述变量相关联的位置取消标记。

示例18可以包括如示例13所述的方法,进一步包括:检测对与所述变量相关联的位置的访问;以及响应于所述访问而延迟对所述第一事务的执行。

示例19可以包括至少一种非暂态计算机可读存储介质,包括指令集,所述指令当被计算设备执行时使所述计算设备:生成第一事务的日志,所述第一事务涉及对易失性存储器中的变量的修改;激活与所述变量相关联的第二事务的受控延迟;以及在所述受控延迟被激活的同时基于所述修改来进行对非易失性存储器中的数据的更新。

示例20可以包括如示例19所述的至少一种非暂态计算机可读存储介质,其中,所述指令当被执行时使计算设备标记与所述变量相关联的位置。

示例21可以包括如示例19所述的至少一种非暂态计算机可读存储介质,其中,所述指令当被执行时使计算设备进行将所述日志转储清除到所述非易失性存储器,并且其中,所述更新将响应于所述转储清除的完成而进行。

示例22可以包括如示例19到21中的任一项所述的至少一个非暂态计算机可读存储介质,其中,所述指令当被执行时使计算设备响应于所述更新的完成而对所述受控延迟解除激活。

示例23可以包括如示例22所述的至少一种非暂态计算机可读存储介质,其中,所述指令当被执行时使计算设备对与所述变量相关联的位置取消标记。

示例24可以包括如示例19所述的至少一种非暂态计算机可读存储介质,其中,所述指令当被执行时使计算设备:检测对与所述变量相关联的位置的访问;以及响应于所述访问而延迟对所述第一事务的执行。

示例25可以包括一种事务同步设备,所述事务同步设备包括:用于生成第一事务的日志的装置,所述第一事务涉及对易失性存储器中的变量的修改;用于激活与所述变量相关联的第二事务的受控延迟的装置;以及用于在所述受控延迟被激活的同时基于所述修改来进行对非易失性存储器中的数据的更新的装置。

示例26可以包括如示例25所述的设备,其中,用于激活所述受控延迟的所述装置包括用于标记与所述变量相关联的位置的装置。

示例27可以包括如示例25所述的设备,进一步包括用于进行将所述日志转储清除到所述非易失性存储器的装置,其中,所述更新将响应于所述转储清除的完成而进行。

示例28可以包括如示例25至27中任一项所述的设备,进一步包括用于响应于所述更新的完成而对所述受控延迟解除激活的装置。

示例29可以包括如示例28所述的设备,其中,用于对所述受控延迟解除激活的所述装置包括用于对与所述变量相关联的位置取消标记的装置。

示例30可以包括如示例25所述的设备,进一步包括用于检测对与所述变量相关联的位置的访问的装置以及用于响应于所述访问而延迟对所述第一事务的执行的装置。

实施例适用于所有类型的半导体集成电路(“ic”)芯片。这些ic芯片的示例包括但不限于:处理器、控制器、芯片组部件、可编程逻辑阵列(pla)、存储器芯片、网络芯片、片上系统(soc)、ssd/nand控制器asic等。另外,在一些附图中,利用线条表示信号导体线。一些线条可以是不同的以指示更多组成的信号路径,具有数字标记以指示组成的信号路径的编号和/或在一端或多端具有箭头以指示主要信息流方向。然而,这不应被解释为限制性方式。而是,这种附加的细节可以与一个或多个示例性实施例结合使用以帮助更容易地理解电路。任何表示的信号线,无论是否有附加信息,都实际可以包括可以在多个方向上行进的一个或多个信号,并且可以利用任何适当类型的信号方案来实现,例如利用差分对、光纤线路和/或单端线路实现的数字或模拟线路。

可能已经给出了示例大小/模型/值/范围,尽管实施例不限于此。随着制造技术(例如,光刻)随时间推移而成熟,预计可以制造出更小尺寸的器件。另外,为了简化图示和讨论以及为了不使实施例的一些方面不清晰,可以在图内示出或不示出到ic芯片和其他部件的公知的电力/接地连接。此外,安排可以以框图的形式示出,以避免模糊实施例,并且还鉴于以下事实:关于这样的框图安排的实施方式的细节高度依赖于在其中实现实施例的平台,即,这样的细节应当完全处在本领域技术人员的视界中。在阐述具体细节(例如电路)以描述示例实施例的情况下,对于本领域技术人员来说应当显而易见的是,可以在没有这些具体细节或具有这些具体细节的变化的情况下实践实施例。描述因此被视为是说明性的而非限制性的。

此处使用的术语“耦合”是指讨论部件之间的任何类型的关系,直接的或间接的,并且可以应用于电的、机械的、流体的、光学的、电磁的、电动机械的或其他连接。另外,此处使用的术语“第一”,“第二”等只促进讨论,除非另外指明,其不带有特殊的时间或级别意义。

如在本申请和权利要求书中所使用的,由术语“中的一项或多项”联接的一系列项目可意指所列术语的任何组合。例如,短语“a、b或c中的一个或多个”可意指a;b;c;a和b;a和c;b和c;或a、b和c。

本领域技术人员将从以上描述中领会到,实施例的宽泛技术可以以各种形式实现。因此,虽然已经结合其特定示例描述了这些实施例,但是实施例的实际范围不应由此受限,因为其他的修改在本领域技术人员学习了附图、说明书和所附权利要求之后就将变得显而易见。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1