CN104750459A - 带有事务功能以及报告事务操作的日志记录电路的处理器 - Google Patents

带有事务功能以及报告事务操作的日志记录电路的处理器 Download PDF

Info

Publication number
CN104750459A
CN104750459A CN201410789863.1A CN201410789863A CN104750459A CN 104750459 A CN104750459 A CN 104750459A CN 201410789863 A CN201410789863 A CN 201410789863A CN 104750459 A CN104750459 A CN 104750459A
Authority
CN
China
Prior art keywords
affairs
processor
instruction
log recording
grouping
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
Application number
CN201410789863.1A
Other languages
English (en)
Other versions
CN104750459B (zh
Inventor
R·卡萨
J·E·高茨克里奇
S·胡
G·A·波卡姆
R·C·诺尔哈斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN104750459A publication Critical patent/CN104750459A/zh
Application granted granted Critical
Publication of CN104750459B publication Critical patent/CN104750459B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • G06F9/528Mutual exclusion algorithms by using speculative mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem

Abstract

描述了一种处理器,包括:存储器访问冲突检测电路,所述存储器访问冲突检测电路标识涉及由认为它已经锁定了存储器内的信息的线程执行的事务的冲突。处理器还包括日志记录电路,如果所述存储器访问冲突检测电路标识导致所述事务被中止的冲突,则所述日志记录电路构建并报告分组。

Description

带有事务功能以及报告事务操作的日志记录电路的处理器
技术领域
本发明的领域涉及计算科学,更具体而言,涉及带有事务功能以及报告事务操作的日志记录电路的处理器。
背景技术
多核处理器和/或处理核内的多线程指令执行流水线导致软件程序员开发多线程软件程序(而不是单个线程软件程序)。由于并行地执行的不同的进程,多线程软件必然复杂。然而,由于按其执行的方式的“非确定性”的方面,多线程软件更难以调试。具体而言,多线程软件程序可以跨两个不同的运行时以不同的方式执行,即使程序从相同的输入状态开始。
由于这些原因,使用“日志记录”来记录多线程软件程序的执行中的某些紧要关头。处理器目前设计有日志记录电路,日志记录电路观察处理器的软件的执行,并记录电路被设计为检测的某些关键事件。如果软件程序崩溃,则分析日志记录以研究导致崩溃的程序的执行。
附图简述
本发明是通过示例说明的,而不仅局限于各个附图的图示,在附图中,类似的参考标号表示类似的元件,其中:
图1(现有技术)示出了处理器;
图2示出了改善的处理器;
图3a示出了可以由所述处理器执行的第一方法;
图3b示出了可以由所述处理器执行的第二方法;
图3c示出了可以由所述处理器执行的第三方法;
图3d示出了可以由所述处理器执行的第四方法;
图4示出了分组结构;
图5示出计算系统。
详细描述
图1示出了在半导体芯片上实现的现有技术处理器100,具有日志记录电路101_1到101_N,用于跟踪多线程程序流的特定的方面,并且从外部记录来自处理器100的这样的方面,以便以后研究并理解程序的执行。在一种实现中,处理器日志记录电路101_1到101_N的每一个实例被设计成监视其本地处理核的每一个线程(当其在“块”中执行时),其中,某些,特定的被监视的事件结束块。通过将每一个线程的块序列存储到诸如系统存储器103之类的存储位置,可以详尽地分析或许跨所有核105_1到105_X执行线程的较大的多线程程序的多线程执行。
给日志记录电路的每一个实例指定了系统存储器103要在其中存储其相应的块的特定的区域。给由特定核执行的每一个硬件线程分配了分配给日志记录电路的系统存储器区域内的其自己的相应的空间。这里,如在本领域内已知的,单指令执行流水线可以并行地执行多个硬件线程(例如,8个硬件线程)。此外,每一个处理核都可以包含一个以上的指令执行流水线(例如,图1示出了每一个核具有两个指令执行流水线106)。
硬件线程被理解为在指令执行流水线内被积极地执行的线程。指令执行流水线通常被设计为并行地执行最大/有限数量的硬件线程,其中,最大/极限是由流水线的硬件设计设置的。软件线程被理解为程序代码指令的单个流。由一个处理器支持的软件线程的数量可以大大地超出硬件线程的数量。当线程的状态/上下文信息被切换到指令执行流水线时,软件线程也被认为是硬件线程。当其状态/上下文从指令执行流水线切换走时,软件线程丧失其硬件线程状态。在一个实施例中,每个硬件线程,有日志记录电路的一个实例(为简明起见,图1只示出了每个核,一个日志记录电路)。
在一种实现中,日志记录电路实例(例如,实例101_1)被设计成在下列条件中的任何一个条件下结束线程的块:1)存储器竞争状况;2)线程从有效状态切换到休眠状态;3)转换后援缓冲器(TLB)失效;4)线程过渡到超出为其配置的特权级别外面(例如,响应于中断或异常,线程从“用户”特权级别过渡到“内核”特权级别);5)线程试图访问不可缓存的存储器区域。这里,上文所描述的事件中的任何一个都对多线程程序的执行的非确定的方式有贡献。
图1还示出了特定线程的块的分组的现有技术结构的插图120。如在插图120中观察到的,分组包括:1)分组格式标识符(FMT);2)块的结束原因(CTR);3)差分时间戳(此分组和前一块的分组之间的时间)(TSD);4)在线程的前一块的结束和该块的结束之间由该块执行的指令的数量(CS);5)对于该块的未完成的写入的数量(即,退役但还没有全局可见的(提交的)存储操作的数量)(RSW);6)最老的还没有退役的宏指令的退役的加载/存储操作的数量(NTB)。在一个实施例中,由软件层添加核ID和线程ID,它们两者都可以基于块被存储在系统存储器103中的位置来确定。
这里,每一个日志记录电路实例101_1到101_N都耦合到处理器的其相应的处理核105_1到105_N中的“挂钩”104_1到104_N(例如,在执行各种软件线程的相应的指令流的指令执行流水线106_1到106_N附近),“挂钩”104_1到104_N被设计为检测被监视的块结束事件。在特定线程的执行过程中,各种挂钩检测线程的块结束事件,并将事件报告给日志记录电路101。作为响应,日志记录电路101根据插图120的结构,形成分组,并导致分组被写入到外部存储器103。
每一个核内的这些挂钩中的一个耦合到存储器竞争检测电路107_1到107_N。如在图1中观察到的,对于在核的L1缓存108_1到108_N附近耦合的每一个处理核,有一个存储器竞争检测电路。每一个存储器竞争电路107_1到107_N都被设计成在其相关联的L1缓存中检测存储器竞争。
当两个不同的软件进程(例如,两个不同的线程)试图访问同一个存储器位置时,发生存储器竞争。这里,每一个线程都记住当前块的所有存储器访问(地址)。当检测到与当前块记住的地址之一冲突时(不管此访问在过去有多长),结束一个块,创建新的块。
值得注意的是,当同一核上两个不同的线程试图访问相同存储器位置或当两个不同的核上的两个不同的线程试图访问相同存储器位置时,会导致竞争。在后一种情况下,第一核将监听第二核的L1缓存。这里,互连网络109被用来传输这样的监听。
每一个存储器竞争检测电路107_1到107_N都跟踪最近的读取操作和最近的写入操作(被称为“读取集”和“写入集”),并将它们与传入的读取请求和传入的写入请求进行比较。无论何时存储器竞争电路检测到指向相同存储器地址的并行“写后读”(RAW)、“写后写”(WAW)或“读后写”(WAR)操作,它都将检测到存储器竞争状况。在各实施例中,相互冲突的地址的身份可以可任选地被包括在被记录了存储器竞争的块中(取决于希望较大的还是较小的块)。
图2示出了对图1的现有技术处理器的改善。这里,在一个实施例中,图2的改善的处理器假设上文参考图1所描述的全部功能加上紧邻下面所描述的额外的改善。
如在图2中观察到的,处理器的单个核205_1到205_N包括执行“事务”的额外的能力。事务的执行对应于超越传统的推测执行边界以外的推测代码的执行。传统的推测执行,诸如分支预测,在确认采取的方向是正确的程序流路径之前,允许指令执行流水线沿着程序分支执行程序。这里,执行的指令的结果被包含(例如,在重新排序缓冲器内)在流水线内部,但不在外部写入到处理器的架构状态(寄存器)。如此,推测地执行的指令的结果不是全局性地可见的。如果预测的分支是不正确的,则清空流水线,且程序流从不正确地预测的分支重新启动。如果预测正确,则将指令结果提交到流水线的外部的架构状态,供其他进程全局查看。然而,一般而言,可以被包含的数据更改量是有限大小的,因此,推测地执行的代码的量是有限的。
相比之下,支持事务的处理核允许超出上文所讨论的推测执行类型以外的推测执行(虽然图2的核也可以被设计成包括分支预测)。在事务的情况下,进程能够执行“好像”它们在数据的共享项目上放置了锁。在基本方法中,进程(例如,软件线程)获取整个数据库上的锁(例如,其中保留了进程的数据的整个共享存储器,诸如LLC缓存和/或系统存储器203或其区域)。进程执行某个逻辑,并且在逻辑的完成时,判断需要对数据项中的一个或多个作出改变。然后,进程将数据项“提交”到数据库,并释放数据库上的锁,由此,允许其他进程访问数据项。
在一种实现中,处理器的执行流水线206_1到206_N增强了功能单元,以支持允许软件线程认为它已经锁定了数据库的指令(例如,XACQUIRE和XRELEASE),如上文所描述的。即,XACQUIRE指令在被执行时,宣告推测执行的开始以及数据库上的锁的获取。XRELEASE指令在被执行时,宣告推测执行的结束以及数据库上的锁的释放。重要的是,在一种实现中,处理器200的底层硬件操作更多让软件线程认为它在数据库上放置了锁,此时,事实上,它在技术上没有锁定整个数据库,而是,导致处理器内的冲突检测硬件221在对于同一数据项的竞争的线程之间寻找并实施串行操作。
这里,显然,如果存在另一并行线程希望使用同一个数据库,允许第一软件线程锁定整个数据库会损害性能。第二线程将没有选择,而只是等到第一线程将其提交数据提交到数据库并释放锁。事实上,实际锁定整个数据库将导致使用同一个数据库的两个并行线程串行地而并非并行地执行。
如此,XACQUIRE指令具有“打开”处理器内的冲突检测硬件221的效果,处理器内的冲突检测硬件221认为数据库(例如,系统存储器或其特定的部分)被假设为“如同被锁定地运行”。这意味着,冲突检测硬件221将允许另一进程访问数据库,只要访问不与执行XACQUIRE指令的进程作出的访问竞争并认为它已经获取了锁(这里,竞争访问被理解为表示同一存储器地址)。如果检测到竞争访问,则“中止”线程,导致事务的状态清空,程序返回到XACQUIRE指令,以重新启动对于事务的另一尝试。这里,冲突检测电路221检测何时另一进程试图访问与已经执行了XACQUIRE并正在代码的推测区域内执行的事务相同的存储器位置。
在另一种实现中,处理器还支持允许更多高级的事务语义(例如,XBEGIN、XEND和XABORT)的额外的指令。XBEGIN和END分别基本上与XACQUIRE和XRELEASE相同地操作。这里,XBEGIN宣告推测执行的开始(启动冲突检测电路221),XEND宣告推测执行的结束(关闭冲突检测电路221)。操作如上文所讨论的,只是事务中止在执行被中止的线程的核的控制寄存器空间222中留下错误代码(例如,利用一个或多个寄存器电路实现的EAX模型特定的寄存器空间),提供关于中止的更多细节(例如,ABORT指令所导致的中止,事务可能会在重试时成功,冲突导致中止,内部缓冲器溢出,调试断点被命中,中止在嵌套事务过程中发生)。
保留在寄存器空间222中的信息可用于在中止之后引导程序流,不同于进入事务的自动重试。另外,处理器还可以支持显式地中止事务的指令(例如,XABORT)。XABORT指令给予程序员定义不同于那些显式地设计到处理器硬件中的其他事务中止条件的能力。在XABORT的情况下,EAX寄存器将包含由XABORT指令所提供的信息(例如,描述导致其执行的事件)。
提供事务支持的处理器增大了调试多线程程序代码的复杂性。如此,图2的改善的处理器200包括对日志记录电路201的额外的增强,这些增强被设计为标识事务的存在,并基于它们描绘块。更具体而言,在图2中观察到核内的额外的挂钩230,它们被设计为:1)检测表示推测代码的事务的执行的开始的指令(例如,XACQUIRE或XBEGIN)的执行,并将事件报告给日志记录电路201;以及,2)检测表示推测代码的事务的执行的结束的指令(例如,XRELEASE或XEND)的执行,并将事件报告给日志记录电路201。响应于这些事件中的任何一个,日志记录电路201将结束块,创建描述块结束的分组,并将分组报告给系统存储器203(例如,通过存储器控制器209)。
另外,新的挂钩230将报告中止的事务的存在。作为响应,日志记录电路201将结束块,创建描述块结束的分组,并将分组写入到系统存储器203。值得注意的是,在此方法中,为日志记录目的而对中止的检测离开处理核205内的实际检测用于中止事务的冲突的冲突检测电路221,而并非在存储器竞争检测电路207上。下文比较详细地讨论了冲突检测电路221和存储器竞争检测电路207之间的关系。在其中处理器包括寄存器空间222(包含描述中止的额外的信息,例如,如前所述的EAX寄存器空间)的一种实现中,额外的挂钩230进一步被设计为将包含在寄存器空间222中的信息报告给日志记录电路201。在支持显式地结束事务的指令(例如,XABORT)的处理器中,也将创建和报告事务中止分组(例如,如果可用,带有EAX寄存器内容)。
图3a示出了由图2的处理器执行的第一方法。如在图3a中观察到的,执行标记推测地执行的事务代码301的执行的开始的指令。在一个实施例中,指令不被视为“执行”,直到它退役。响应于指令的执行,将信号定向到日志记录电路302。响应于信号,日志记录电路创建块结束分组,该分组指示由于事务已经开始,块正在被结束,303。报告块结束分组(例如,通过被写入到外部系统存储器),304。
图3b示出了由图2的处理器执行的第二方法。如在图3b中观察到的,执行标记推测地执行的事务代码(例如,在事务成功地提交其数据更改之后)的执行的结束的指令,311。在一个实施例中,指令不被视为“执行”,直到它退役。响应于事务的执行,将信号定向到日志记录电路312。响应于信号,日志记录电路创建块结束分组,该分组指示由于事务已经结束,块正在被结束,313。报告块结束分组(例如,通过被写入到外部系统存储器),314。
图3c示出了由图2的处理器执行的第三方法。如在图3c中观察到的,硬件(例如,冲突检测电路221)检测到由另一线程尝试对被事务321访问的存储器位置作出访问。发送指示冲突的存在的信号(例如,从冲突检测电路222到执行事务的处理核流水线),322。响应于该信号,中止事务,并且将信息写入到控制寄存器空间323。响应于事务的中止,将信号发送到日志记录电路324。响应于被发送到日志记录电路的信号,日志记录电路访问寄存器空间,并且创建块结束分组,该分组指示块正在被结束,因为事务已经中止,且该分组包括来自寄存器的信息,325。报告块结束分组(例如,通过被写入到外部系统存储器),326。
图3d示出了由图2的处理器执行的第四方法。如在图3d观察到的,执行显式地中止事务的指令,并且将信息写入到控制寄存器中,331。响应于事务的中止,将信号发送到日志记录电路,332。响应于被发送到日志记录电路的信号,日志记录电路访问寄存器空间,创建块结束分组,该分组指示块正在被结束,因为事务已经中止,该分组包括来自寄存器的信息,333。报告块结束分组(例如,通过被写入到外部系统存储器),334。
图4示出了当写出事务相关的块结束分组时由图2的日志记录电路写出的分组结构400的实施例。如在图4中观察到的,分组结构基本上与图1的现有技术分组120保持相同结构。这里,然而,与现有技术分组120不同,分组的块结束理由(CTR)字段可以包含指出额外的事件中的任何一个的信息:1)事务开始;2)事务结束;以及,3)事务中止。在进一步的实现中,CTR字段可以另外指示处理器是否支持显式的中止指令(例如,XABORT)。
优于或高于图1的分组结构的额外的改善是,最老的还没有退役的宏指令信息的退役的加载/存储操作的数量(图1的分组120中的NTB)替换为“事务状态字”(TSW),该TSW提供描述事务的块结束的额外的信息。
在一种实现中,在事务中止的情况下,TSW包含(例如,EAX)控制寄存器的内容,或在事务开始或事务结束的情况下,包含“事务嵌套的计数器”寄存器(未描绘)的内容。在事务中止的情况下,在一个实施例中,EAX控制寄存器的内容指示:1)中止是否来自于XABORT指令;2)事务在重试时是否可以成功;3)中止是否来自于冲突;4)中止是否来自于溢出;5)中止是否来自于调试断点;6)中止的事务是否是嵌套的。对于嵌套的事务,处理器被设计成支持事务内的一串事务(例如,第一事务可以开始另一事务,依次类推)。其预留的寄存器空间内的事务嵌套的计数器值基本上跟踪当前的事务涉及哪些内事务(如果有的话)。
在一种实现中,当用于事务中止检测230和日志记录的特殊挂钩启用时,存储器竞争检测电路207(图1的现有技术的日志记录技术的一部分)也启用。这可以通过设计图2的处理器来实现,其带有允许新的事务挂钩230和存储器竞争挂钩两者同时启用并有效的模式。这允许,例如,在事务内潜在地发生的所有冲突都被记录(例如,由于存储器竞争挂钩导致日志记录电路201在事务的执行过程中报告任何检测到的冲突(值得注意的是,存储器竞争状况和冲突是类似的事件))。在其中提供的与中止(例如,如前所述的EAX寄存器)匹配的控制寄存器信息没有指定具有导致事务中止的冲突的特定的存储器地址的实现中,此额外的信息特别有用(在其他备选实现中,可以修改冲突检测电路222,以报告此信息以便输入到寄存器空间)。
此外,块结束分组的TSW信息还可包括涉及中止的关于存储器竞争检测电路207是否检测到任何冲突的信息。如果否,则暗示中止事务的冲突检测电路221实际体验到“假阳性”冲突。在一种实现中,由于这样的事实:缓存(诸如L1缓存)使用散列电路来确定缓存的数据项将存储到哪里,通常,多个不同的存储器地址可以散列到同一缓存存储位置,假阳性在冲突检测电路221是可能的。在进一步的实现中,存储器竞争检测电路207也能够由于类似的理由生成假阳性,——虽然存储器地址的散列和存储会在存储器竞争检测电路中不同于在事务冲突检测电路221驻留的缓存电路中(例如,使用布鲁姆(bloom)过滤器来保留读和写集,存储器地址被散列到特定的布鲁姆过滤器位置)。如此,在此情况下,如果存储器竞争检测电路报告任何冲突,则不能完全依赖它们来检测事务中止。
在又一实施例中,事务相关的块结束分组的CTR信息指示事务是否由于迟到的锁获取(LLA)而结束。迟到的锁获取是尽管事务没有完成但仍允许事务提交其数据的特殊情况。通常,当事务需要“暂停”时,例如,响应于异常或不安全的指令,施加LLA,以便其状态可以在外部保存。在事务的状态在外部保存之后,事务恢复正常操作。在此情况下,处理核内的挂钩向日志记录电路201报告任何一个LLA事件的发生,日志记录电路201报告涉及LLA的块结束事件以及其事务的结束。
日志记录电路201可以以任意数量的方式实现。在第一极端情况下,日志记录电路201可以完全在专用的,定制逻辑电路中实现。在另一极端情况下,日志记录电路201可被实现为微控制器或执行程序代码(例如,固件)以执行其各种功能的其他形式的程序代码执行电路。这两种极端情况之间的其他混合也是可以的。
由于以上讨论教示的任何逻辑进程可利用控制器、微控制器或类似的组件执行,所以这些进程可被实现为程序代码,诸如导致机器执行指令以实现某些功能的机器可执行指令。
相信以上讨论教示的进程也可按各种面向对象或非面向对象的计算机编程语言在源级层需代码中描述。制品可用于存储程序代码。存储程序代码的制品可体现为但不限于一个或多个存储器(例如,一个或多个闪存、随机存取存储器(静态、动态或其它))、光盘、CD-ROM、DVD ROM、EPROM、EEPROM、磁或光卡或适于存储电子指令的其它类型的机器可读介质。还可从远程计算机(例如,服务器)将程序代码作为体现在传播介质中的数据信号(例如,经由通信链路(例如,网络连接))下载至请求计算机(例如,客户机)。
图5示出了计算系统(例如,计算机)的实施例。计算机包括一个或多个处理器501,诸如图2的处理器200,或具有如上文所讨论的事务性的相关的日志记录电路功能的至少一个或多个处理器。在多个处理器501的情况下,处理器通过互连网络503彼此进行通信并与存储器控制器502进行通信。图形处理器504可以直接耦合到互连网络503或存储器控制器502。同样,I/O中枢505可以直接耦合到互连网络503或存储器控制器502。存储器控制器耦合到系统存储器506。
上文说明书描述了一种处理器,包括:存储器访问冲突检测电路,所述存储器访问冲突检测电路标识涉及由认为它已经锁定了存储器内的信息的线程执行的事务的冲突;日志记录电路,如果所述存储器访问冲突检测电路标识导致所述事务被中止的冲突,则所述日志记录电路构建并报告分组。在一个实施例中,处理器包括存储涉及事务的中止的信息的寄存器空间。在一个实施例中,所述分组包括来自寄存器空间的信息。在一个实施例中,信息指出事务被中止,因为存储器访问冲突检测电路检测到冲突。在一个实施例中,处理器包括存储器竞争检测电路以检测存储器竞争,日志记录电路,如果存储器竞争检测电路检测到存储器竞争,则所述日志记录电路构建并报告分组。在一个实施例中,处理器被设计成允许日志记录电路并行地响应于存储器访问冲突检测电路和存储器竞争检测电路两者。在一个实施例中,处理器支持显式地中止事务的指令,如果该指令被执行,则日志记录电路报告第二分组。在一个实施例中,处理器支持标记事务的开始的指令,如果该指令被执行,则日志记录电路报告第二分组。在一个实施例中,处理器支持标记成功地完成的事务的结束的指令,如果该指令被执行,则日志记录电路报告第二分组。
描述了一种方法,包括:执行标记事务的开始的指令,所述指令是认为它具有对存储器内的信息的锁的线程的一部分;响应于所述指令的执行,构建并报告日志记录分组;以及,响应于所述事务已经结束,构建并报告第二日志记录分组。在一个实施例中,事务已经成功地完成,构建并报告第二分组响应于标记事务的成功的完成的第二指令的执行。在一个实施例中,事务已经被中止,构建并报告第二分组响应于显式地中止事务的第二指令的执行。在一个实施例中,事务已经被中止,因为检测到存储器访问冲突。在一个实施例中,方法还包括当事务正在执行时检测存储器竞争。在一个实施例中,方法还包括响应于检测到存储器竞争,构建并报告第三日志记录分组。
描述了一种计算系统,包括:a)处理器,所述处理器包括:存储器访问冲突检测电路,所述存储器访问冲突检测电路标识涉及由认为它已经锁定了存储器内的信息的线程执行的事务的冲突;日志记录电路,如果所述存储器访问冲突检测电路标识导致所述事务被中止的冲突,则所述日志记录电路构建并报告分组;以及,b)耦合到存储器的存储器控制器。在一个实施例中,处理器支持显式地中止事务的指令,如果该指令被执行,则日志记录电路报告第二分组。在一个实施例中,处理器支持标记事务的开始的指令,如果该指令被执行,则日志记录电路报告第二分组。在一个实施例中,处理器支持标记成功地完成的事务的结束的指令,如果该指令被执行,则日志记录电路报告第二分组。在一个实施例中,处理器包括存储涉及事务的中止的信息的寄存器空间,分组包括来自寄存器空间的信息。
在上述说明书中,已参考本发明具体示例实施例描述了本发明。然而,显然可对这些实施例作出各种修改和改变,而不背离如所附权利要求所述的本发明的更宽泛精神和范围。因此,应当以说明性而非限制性的意义看待说明书和附图。

Claims (20)

1.一种处理器,包括:
存储器访问冲突检测电路,所述存储器访问冲突检测电路标识涉及由认为线程已经锁定了存储器内的信息的所述线程执行的事务的冲突;
日志记录电路,如果所述存储器访问冲突检测电路标识导致所述事务被中止的冲突,则所述日志记录电路构建并报告分组。
2.如权利要求1所述的处理器,其特征在于,所述处理器包括存储涉及所述事务的中止的信息的寄存器空间。
3.如权利要求2所述的处理器,其特征在于,所述分组包括来自所述寄存器空间的信息。
4.如权利要求3所述的处理器,其特征在于,所述信息指示所述事务被中止,因为所述存储器访问冲突检测电路检测到冲突。
5.如权利要求1所述的处理器,其特征在于,所述处理器包括存储器竞争检测电路以检测存储器竞争,如果所述存储器竞争检测电路检测到存储器竞争,则所述日志记录电路构建并报告分组。
6.如权利要求5所述的处理器,其特征在于,所述处理器被设计成允许所述日志记录电路并行地响应于所述存储器访问冲突检测电路和所述存储器竞争检测电路两者。
7.如权利要求1所述的处理器,其特征在于,所述处理器支持显式地中止事务的指令,如果所述指令被执行,则所述日志记录电路报告第二分组。
8.如权利要求1所述的处理器,其特征在于,所述处理器支持标记事务的开始的指令,如果所述指令被执行,则所述日志记录电路报告第二分组。
9.如权利要求1所述的处理器,其特征在于,所述处理器支持标记成功完成的事务的结束的指令,如果所述指令被执行,则所述日志记录电路报告第二分组。
10.一种方法,包括:
执行标记事务的开始的指令,所述指令是认为线程具有对存储器内的信息的锁的所述线程的一部分;
响应于所述指令的所述执行,构建并报告日志记录分组;以及,
响应于所述事务已经结束,构建并报告第二日志记录分组。
11.如权利要求10所述的方法,其特征在于,所述事务成功地完成,所述构建并报告所述第二分组响应于标记所述事务的成功的完成的第二指令的执行。
12.如权利要求10所述的方法,其特征在于,所述事务已经被中止,所述构建并报告所述第二分组响应于显式地中止所述事务的第二指令的执行。
13.如权利要求10所述的方法,其特征在于,所述事务被中止,因为检测到存储器访问冲突。
14.如权利要求10所述的方法,其特征在于,所述方法进一步包括当正在执行所述事务时检测存储器竞争。
15.如权利要求14所述的方法,其特征在于,进一步包括响应于所述存储器竞争的所述检测,构建并报告第三日志记录分组。
16.一种计算系统,包括:
a)处理器,所述处理器包括:
存储器访问冲突检测电路,所述存储器访问冲突检测电路标识涉及由认为线程已经锁定了存储器内的信息的所述线程执行的事务的冲突;
日志记录电路,如果所述存储器访问冲突检测电路标识导致所述事务被中止的冲突,则所述日志记录电路构建并报告分组;以及,
b)耦合到所述存储器的存储器控制器。
17.如权利要求16所述的计算系统,其特征在于,所述处理器支持显式地中止事务的指令,如果所述指令被执行,则所述日志记录电路报告第二分组。
18.如权利要求16所述的计算系统,其特征在于,所述处理器支持标记事务的开始的指令,如果所述指令被执行,则所述日志记录电路报告第二分组。
19.如权利要求16所述的计算系统,其特征在于,所述处理器支持标记成功完成的事务的结束的指令,如果所述指令被执行,则所述日志记录电路报告第二分组。
20.如权利要求16所述的计算系统,其特征在于,所述处理器包括存储涉及所述事务的中止的信息的寄存器空间,所述分组包括来自所述寄存器空间的信息。
CN201410789863.1A 2013-12-27 2014-12-17 带有事务功能以及报告事务操作的日志记录电路的处理器 Expired - Fee Related CN104750459B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/142,475 2013-12-27
US14/142,475 US9965320B2 (en) 2013-12-27 2013-12-27 Processor with transactional capability and logging circuitry to report transactional operations

Publications (2)

Publication Number Publication Date
CN104750459A true CN104750459A (zh) 2015-07-01
CN104750459B CN104750459B (zh) 2017-11-28

Family

ID=51951699

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410789863.1A Expired - Fee Related CN104750459B (zh) 2013-12-27 2014-12-17 带有事务功能以及报告事务操作的日志记录电路的处理器

Country Status (4)

Country Link
US (1) US9965320B2 (zh)
EP (1) EP2889769B1 (zh)
CN (1) CN104750459B (zh)
RU (1) RU2625524C2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111742301A (zh) * 2018-02-23 2020-10-02 微软技术许可有限责任公司 通过请求来日志记录对更高级别的缓存的缓存流入量

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298632B2 (en) * 2012-06-28 2016-03-29 Intel Corporation Hybrid cache state and filter tracking of memory operations during a transaction
US9697040B2 (en) * 2014-03-26 2017-07-04 Intel Corporation Software replayer for transactional memory programs
GB2536871A (en) * 2015-03-04 2016-10-05 Advanced Risc Mach Ltd An apparatus and method to generate trace data in response to transactional execution
US11048516B2 (en) * 2015-06-27 2021-06-29 Intel Corporation Systems, methods, and apparatuses for last branch record support compatible with binary translation and speculative execution using an architectural bit array and a write bit array
US20170286111A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Instruction, Circuits, and Logic for Data Capture for Software Monitoring and Debugging
US10558464B2 (en) 2017-02-09 2020-02-11 International Business Machines Corporation Infinite processor thread balancing
EP3594804B1 (en) * 2018-07-09 2021-11-03 ARM Limited Transactional compare-and-discard instruction
US10783031B2 (en) * 2018-08-20 2020-09-22 Arm Limited Identifying read-set information based on an encoding of replaceable-information values
US11847064B2 (en) 2018-12-07 2023-12-19 International Business Machines Corporation Buffer and methods for address translations in a processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101031888A (zh) * 2004-09-30 2007-09-05 英特尔公司 用于直接存储器存取地址转换的错误处理
WO2013115816A1 (en) * 2012-02-02 2013-08-08 Intel Corporation A method, apparatus, and system for speculative abort control mechanisms
US20130339687A1 (en) * 2012-06-15 2013-12-19 International Business Machines Corporation Processor assist facility

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2289353B (en) 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Data processing with multiple instruction sets
EP0834135B1 (en) * 1995-06-15 2003-01-02 Intel Corporation Architecture for an i/o processor that integrates a pci to pci bridge
US6009256A (en) 1997-05-02 1999-12-28 Axis Systems, Inc. Simulation/emulation system and method
US5996064A (en) 1997-12-30 1999-11-30 Intel Corporation Method and apparatus for guaranteeing minimum variable schedule distance by using post-ready latency
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US7188290B2 (en) 2002-04-23 2007-03-06 Intel Corporation Data alignment for telecommunications networks
US7441107B2 (en) * 2003-12-31 2008-10-21 Intel Corporation Utilizing an advanced load address table for memory disambiguation in an out of order processor
US7296120B2 (en) 2004-11-18 2007-11-13 International Business Machines Corporation Mechanism that provides efficient multi-word load atomicity
US7376798B1 (en) 2005-04-07 2008-05-20 Transmeta Corporation Memory management methods and systems that support cache consistency
US9159050B2 (en) 2005-04-12 2015-10-13 International Business Machines Corporation Providing atomicity for a unit of work
US7627770B2 (en) 2005-04-14 2009-12-01 Mips Technologies, Inc. Apparatus and method for automatic low power mode invocation in a multi-threaded processor
US7346748B2 (en) 2005-04-28 2008-03-18 International Business Machines Corporation Storage pools with write atomicity
US8099726B2 (en) 2005-12-07 2012-01-17 Microsoft Corporation Implementing strong atomicity in software transactional memory
US7382655B2 (en) 2006-07-23 2008-06-03 Solid State System Co., Ltd. Access time adjusting circuit and method for non-volatile memory
KR100809319B1 (ko) 2006-09-13 2008-03-05 삼성전자주식회사 플래시 메모리에서 연속한 섹터 쓰기 요청에 대해 원자성을제공하는 장치 및 방법
US8185874B2 (en) 2006-11-07 2012-05-22 Microsoft Corporation Automatic and systematic detection of race conditions and atomicity violations
US8060482B2 (en) 2006-12-28 2011-11-15 Intel Corporation Efficient and consistent software transactional memory
US8533681B2 (en) 2007-03-07 2013-09-10 The Board Of Trustees Of The University Of Illinois Atomicity violation detection using access interleaving invariants
US7945741B2 (en) * 2007-07-09 2011-05-17 International Business Machines Corporation Reservation required transactions
WO2009024520A1 (en) 2007-08-17 2009-02-26 International Business Machines Corporation Method and system for atomicity for elliptic curve cryptosystems
US20090138890A1 (en) * 2007-11-21 2009-05-28 Arm Limited Contention management for a hardware transactional memory
US8544006B2 (en) * 2007-12-19 2013-09-24 International Business Machines Corporation Resolving conflicts by restarting execution of failed discretely executable subcomponent using register and memory values generated by main component after the occurrence of a conflict
US8312455B2 (en) * 2007-12-19 2012-11-13 International Business Machines Corporation Optimizing execution of single-threaded programs on a multiprocessor managed by compilation
US8706982B2 (en) 2007-12-30 2014-04-22 Intel Corporation Mechanisms for strong atomicity in a transactional memory system
US8065491B2 (en) 2007-12-30 2011-11-22 Intel Corporation Efficient non-transactional write barriers for strong atomicity
US8612950B2 (en) 2008-06-19 2013-12-17 Intel Corporation Dynamic optimization for removal of strong atomicity barriers
US8019953B2 (en) 2008-07-01 2011-09-13 Lsi Corporation Method for providing atomicity for host write input/outputs (I/Os) in a continuous data protection (CDP)-enabled volume using intent log
US20100058034A1 (en) * 2008-08-29 2010-03-04 International Business Machines Corporation Creating register dependencies to model hazardous memory dependencies
US8001548B2 (en) * 2008-10-20 2011-08-16 Microsoft Corporation Transaction processing for side-effecting actions in transactional memory
US9274855B2 (en) 2008-12-24 2016-03-01 Intel Corporation Optimization for safe elimination of weak atomicity overhead
US8914620B2 (en) * 2008-12-29 2014-12-16 Oracle America, Inc. Method and system for reducing abort rates in speculative lock elision using contention management mechanisms
US8402318B2 (en) 2009-03-24 2013-03-19 The Trustees Of Columbia University In The City Of New York Systems and methods for recording and replaying application execution
US8832684B2 (en) 2009-06-18 2014-09-09 The Johns Hopkins University Methods for improving atomicity of runtime inspections
US8438332B2 (en) 2009-06-22 2013-05-07 International Business Machines Corporation Apparatus and method to maintain write operation atomicity where a data transfer operation crosses a data storage medium track boundary
US8539486B2 (en) * 2009-07-17 2013-09-17 International Business Machines Corporation Transactional block conflict resolution based on the determination of executing threads in parallel or in serial mode
US8510722B2 (en) 2009-07-22 2013-08-13 Microsoft Corporation Detecting data race and atomicity violation via typestate-guided static analysis
US8645589B2 (en) 2009-08-03 2014-02-04 National Instruments Corporation Methods for data acquisition systems in real time applications
US8595389B2 (en) 2010-01-08 2013-11-26 International Business Machines Corporation Distributed performance counters
US20120227045A1 (en) * 2009-12-26 2012-09-06 Knauth Laura A Method, apparatus, and system for speculative execution event counter checkpointing and restoring
US8438568B2 (en) * 2010-02-24 2013-05-07 International Business Machines Corporation Speculative thread execution with hardware transactional memory
US8468501B2 (en) 2010-04-21 2013-06-18 International Business Machines Corporation Partial recording of a computer program execution for replay
US8560814B2 (en) 2010-05-04 2013-10-15 Oracle International Corporation Thread fairness on a multi-threaded processor with multi-cycle cryptographic operations
US20120011491A1 (en) 2010-07-06 2012-01-12 Adi Eldar Efficient recording and replaying of the execution path of a computer program
US8549504B2 (en) 2010-09-25 2013-10-01 Intel Corporation Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region
US8813038B2 (en) 2011-02-09 2014-08-19 Microsoft Corporation Data race detection
US9063766B2 (en) 2011-03-16 2015-06-23 Vmware, Inc. System and method of manipulating virtual machine recordings for high-level execution and replay
US8732682B2 (en) 2011-08-19 2014-05-20 Amazon Technologies, Inc. Systems and methods for detecting and tolerating atomicity violations between concurrent code blocks
US8806270B2 (en) 2011-11-14 2014-08-12 International Business Machines Corporation Method, apparatus and product for testing transactions
US8972704B2 (en) * 2011-12-15 2015-03-03 International Business Machines Corporation Code section optimization by removing memory barrier instruction and enclosing within a transaction that employs hardware transaction memory
US9268596B2 (en) * 2012-02-02 2016-02-23 Intel Corparation Instruction and logic to test transactional execution status
US9558118B2 (en) 2012-03-30 2017-01-31 Intel Corporation Tracing mechanism for recording shared memory interleavings on multi-core processors
US9298469B2 (en) * 2012-06-15 2016-03-29 International Business Machines Corporation Management of multiple nested transactions
US9396115B2 (en) * 2012-08-02 2016-07-19 International Business Machines Corporation Rewind only transactions in a data processing system supporting transactional storage accesses
US9317297B2 (en) 2012-09-27 2016-04-19 Intel Corporation Replay execution of instructions in thread chunks in the chunk order recorded during previous execution
US9081607B2 (en) * 2012-10-24 2015-07-14 International Business Machines Corporation Conditional transaction abort and precise abort handling
US9128781B2 (en) 2012-12-28 2015-09-08 Intel Corporation Processor with memory race recorder to record thread interleavings in multi-threaded software
US9875108B2 (en) 2013-03-16 2018-01-23 Intel Corporation Shared memory interleavings for instruction atomicity violations
US9460145B2 (en) * 2013-03-26 2016-10-04 International Business Machines Corporation Transactional lock elision with delayed lock checking

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101031888A (zh) * 2004-09-30 2007-09-05 英特尔公司 用于直接存储器存取地址转换的错误处理
WO2013115816A1 (en) * 2012-02-02 2013-08-08 Intel Corporation A method, apparatus, and system for speculative abort control mechanisms
US20130339687A1 (en) * 2012-06-15 2013-12-19 International Business Machines Corporation Processor assist facility

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111742301A (zh) * 2018-02-23 2020-10-02 微软技术许可有限责任公司 通过请求来日志记录对更高级别的缓存的缓存流入量

Also Published As

Publication number Publication date
CN104750459B (zh) 2017-11-28
EP2889769A1 (en) 2015-07-01
EP2889769A8 (en) 2016-02-17
EP2889769B1 (en) 2017-05-24
RU2625524C2 (ru) 2017-07-14
RU2014147955A (ru) 2016-06-27
US20150186178A1 (en) 2015-07-02
US9965320B2 (en) 2018-05-08

Similar Documents

Publication Publication Date Title
CN104750459A (zh) 带有事务功能以及报告事务操作的日志记录电路的处理器
US10853071B2 (en) Simulation of exclusive instructions
US9513959B2 (en) Contention management for a hardware transactional memory
US7899997B2 (en) Systems and methods for implementing key-based transactional memory conflict detection
US20150154045A1 (en) Contention management for a hardware transactional memory
RU2501071C2 (ru) Механизм запроса поздней блокировки для пропуска аппаратной блокировки (hle)
US10776120B2 (en) Apparatus and method to generate trace data in response to transactional execution
CN105074656B (zh) 管理并发谓词表达式的方法和装置
US20160004478A1 (en) Wait-free algorithm for inter-core, inter-process, or inter-task communication
TWI758319B (zh) 用於處置針對向量指令的元素間位址危害的裝置及資料處理方法
WO2023142502A1 (zh) 循环指令处理方法、装置、芯片、电子设备及存储介质
KR102599689B1 (ko) 예외 마스크 갱신 명령 후 트랜잭션의 비중지 처리의 허가
US20150193265A1 (en) Using nonspeculative operations for lock elision
CN107003897B (zh) 监控事务处理资源的利用率
US8893137B2 (en) Transaction-based shared memory protection for high availability environments
US20120059997A1 (en) Apparatus and method for detecting data race
CN109885489B (zh) 驱动程序中数据竞争检测方法及装置
CN107003895A (zh) 事务内的指令采样
US20150286640A1 (en) Data storage device, data storage method and program
KR102284952B1 (ko) 트랜잭션에서의 레지스터의 동적 보존
CN117063155A (zh) 检测卸载操作中的执行风险
SINHA et al. DETECTION OF CERTAIN FALSE DATA RACES FROM RUNTIME TRACES

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171128

Termination date: 20191217

CF01 Termination of patent right due to non-payment of annual fee