CN106030532A - 用于事务存储器程序的软件回放器 - Google Patents

用于事务存储器程序的软件回放器 Download PDF

Info

Publication number
CN106030532A
CN106030532A CN201580010710.5A CN201580010710A CN106030532A CN 106030532 A CN106030532 A CN 106030532A CN 201580010710 A CN201580010710 A CN 201580010710A CN 106030532 A CN106030532 A CN 106030532A
Authority
CN
China
Prior art keywords
instruction
program
transaction
software
playback
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
CN201580010710.5A
Other languages
English (en)
Other versions
CN106030532B (zh
Inventor
J.E.戈特施利奇
G.A.波坎
胡世亮
R.卡萨
吴佑峰
I.卡尔丘
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 CN106030532A publication Critical patent/CN106030532A/zh
Application granted granted Critical
Publication of CN106030532B publication Critical patent/CN106030532B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Multimedia (AREA)

Abstract

本文公开了包括处理器和动态随机存取存储器(DRAM)的系统。处理器包括混合事务存储器(HyTM),其包括硬件事务存储器(HTM)以及回放程序的程序调试器,程序包括HTM指令并且已使用HyTM执行。程序调试器包括将通过HTM的仿真来回放HTM指令的软件仿真器。本文也公开和声明了其它实施例。

Description

用于事务存储器程序的软件回放器
技术领域
实施例与事务存储器有关。
背景技术
硬件事务存储器(HTM)系统可在不远的将来对广泛采用可用。与经测试和可靠的软件事务存储器系统组合,HTM系统可在可编程性和性能方面可以是比基于锁的并行编程更具吸引力的备选方案。
混合事务存储器(TM)系统(“HyTM”)是采用HTM和软件事务存储器(STM)的系统。诸如断点和自组织I/O调试的传统调试技术不应用到HyTM,这是因为在调试技术使用对硬件事务非法的某些指令(例如,中断、I/O、上下文切换等)时,传统调试技术能够使硬件事务中止。因此,随HyTM系统产生的问题是如何调试执行一些硬件事务的事务存储器程序。
附图说明
图1是根据本发明的实施例的记录和回放(RnR)系统的框图。
图2是根据本发明的实施例的回放器(replayer)/事务调试器的框图。
图3是根据本发明的实施例的促进事务程序的调试的方法的流程图。
图4是根据本发明的实施例的处理器核的框图。
图5是根据本发明的实施例的系统的框图。
具体实施方式
本文中呈现包括记录和回放(RnR)软件回放器的RnR系统。RnR系统可提供对使用HTM的HyTM系统(本文中也称为“HyTM”)的调试支持。在本文中呈现的记录和回放系统(RnR系统)中,事务存储器(TM)程序由硬件系统执行和记录,并且然后由使用基础硬件的仿真和HyTM系统的软件部分的实施的组合的软件系统回放。
使用基于硬件的记录,本文中呈现的RnR系统使TM程序的争用特征标记完整,从而允许记录正确性TM缺陷(例如,编程错误)和性能TM缺陷(例如,效率有关的问题)。使用基于软件的回放,能够使用STM和HTM的仿真的组合来回放记录的TM程序,以便提供有用的正确性和性能调试分析。
本文中呈现的RnR事务调试器(TDB)系统可精确地记录和回放TM程序,具有对TM程序的执行可忽略不计的干扰。本文中呈现的方法和设备不改变有缺陷TM程序的争用特征特制标记。RnR TDB系统可捕捉事务中止的确切位置和原因,这可使程序员能够分析TM程序以确定执行失败的原因。
图1是根据本发明的实施例的RnR系统100的框图。系统100包括硬件记录逻辑102、存储装置106和包括软件事务调试器(TDB)回放软件110和虚拟机插装(instrumentation)工具112的软件回放器108。
在操作中,(硬件)记录逻辑102可记录在TM程序104的执行期间发生的事件。事件可包括但不限于事务起始、事务结束和事务中止。事件可在存储装置106中记录为记录的日志文件。
软件回放器108可配置成仿真记录逻辑102,其包括在程序记录中使用的硬件事务存储器(HTM)。虚拟机插装工具112可配置成插装和回放应用二进制码。软件回放器108可回放TD程序104并且分析结果,例如,识别正确性错误和性能错误。
TM系统通常不支持完全转义(full escape)动作,并且因此硬件事务的上下文内执行的指令能够变成该硬件事务的执行的一部分。如果回放器108要使用硬件记录逻辑102(例如,包括HTM),则协调程序线程的排序的所有管理操作将出现在硬件事务内,并且会导致原始记录的程序的行为的改变。也就是,硬件事务会包括另外的指令,所述指令会可能更改硬件事务的执行行为。
另外,即使支持逸出动作,诸如上下文切换和输入/输出(I/O)操作的一些操作可能对于事件事务仍是非法的。如果此类非法操作在硬件事务内执行,则硬件事务可能立即中止。上下文切换、中断和I/O命令是在回放记录的程序中可考虑的操作。例如,通常通过停止一个线程的执行以恢复另一线程的执行(例如,上下文切换),在回放器中管理在线程之间共享的存储器交叉存取。
带有精确错误代码的事务中止再现包括在HTM仿真中,这是因为此类错误代码可由争用管理器使用,导致对每个错误代码的不同的争用管理行为。
也可出于如上所述关于事务中止的类似原因,仿真事务提交再现。对于任何尽力而为型HTM,一般存在软件回退。因此,软件回退使HTM能够向前前进。因此,为回放记录的基于HTM的程序,软件事务存储器(STM)可用于记录程序执行和回放记录的程序两者。只要在回放中使用在记录中使用的STM,程序便能够正确回放。
图2是根据本发明的实施例的回放器/事务调试器系统200的框图。系统200的组件包括回放器引擎202、非事务执行204、事务执行206、STM实施208、HTM仿真210、事务后(post-transaction)指令处理程序212及HyTM争用管理器216。
(基于块(chunk)的)回放器引擎202回放TM程序,并且确定每个指令是事务指令还是非事务指令。如果确定指令为非事务性,则在204回放指令(例如,正常执行)。通过用于正确性调试的强STM隔离,可执行非事务执行。如果正常回放执行204检测到被中止的指令,则可将该指令发送到HyTM争用管理器216。
如果在回放器引擎202回放的指令是事务指令,则将指令发送到事务执行206。如果指令是与软件事务关联的事务指令,则回放使用STM(STM实施)208来执行。如果事务指令与硬件事务关联,则将指令发送到HTM仿真210。事务后指令处理程序212能够确定有关已引发的一个或多个冲突的信息,并且包括精确的冲突检测组件212以分析冲突和确定每个冲突的原因。如果指令中止或提交,则可将指令发送到混合事务存储器(HyTM)争用管理器216以便进行解析。
混合事务存储器争用管理器(HyTM CM) 216将仿真在程序记录中使用的HyTM CM,使得提交和中止的再现与记录的程序相同。如果HyTM CM未重复,则存在的可能性是在输出中回放的程序将与记录的程序不相同。HyTM CM 216决定哪些事物要中止以及哪些事物要提交,以及在事务中止时什么时候应重新执行硬件事务或软件事务。如果HyTM CM 216不仿真在程序记录中使用的HyTM CM,则能够违反事务中止和提交顺序,这可导致与原始记录的可能不同的最后回放状态。
对于HTM,争用管理的中止决策部分由基础硬件自动提供。因此,HTM指令的中止决策由HTM仿真206处理。剩余HyTM CM部分可在软件中实施,并且取决于HyTM CM 216是否支持动态争用管理策略,可在STM实施208的范围之外,在此情况下,可在辅助库中找到STM争用管理器。出于至少此原因,HyTM CM 216显示为与STM实施208分开的组件。
回放器引擎202回放指令块内的指令,块由可识别的开始标志和可识别的结束标志定义。例如,块可在事务的起始处开始,并且可在事务的结束处,或者在冲突发生时,或者在发现不支持的指令时等结束。回放器引擎202将回放指令,使得在并发执行线程的共享存储器存取之间的因果顺序在回放中被保持,并且包括所有类型的共享存储器同步机制,包括获得和释放锁,执行原子指令等。另外,回放引擎202将正确地回放在它们被记录时的非确定性输入系统事件(OS级别)。
由于基于块的记录,回放器引擎202可基于块。在没有基于块的回放的情况下,记录的程序会不正确地回放。基于块的回放器引擎202可包括用于记录的非确定性存储器事件的解析器、用于记录的非确定性输入事件的解析器和逐指令回放引擎。回放器引擎202可执行非HTM指令的仿真,并且也可回放宏指令原子性违反。
事务后指令处理程序210包括用于回放的事务的精确冲突检测组件212。在硬件与软件事务之间的精确冲突检测将被实施,同时保留用于如原始记录的硬件和软件事务的程序的事务隔离语义。此处描述的精确冲突检测由(基于块的)回放器引擎202用于跟踪事务冲突的源,并且不更改如原始记录的程序的语义或行为。
精确冲突检测可在以下示例中实施:假设软件事务由硬件事务中止,在软件事务与硬件事务之间冲突的识别方面可存在缺少精度,这是因为STM对使得软件事务中止的硬件事务没有直接认知。通过包括在软件事务与硬件事务之间的精确冲突检测(例如,只用于冲突识别目的),系统200能够识别冲突的确切位置(在程序内),这例如通过消除用于以其它方式可发生的存储器冲突的误报或猜测位置,可改进调试的质量。
非事务性回放执行204包括强STM隔离。通过RnR系统200可实现的属性之一是模拟用于回放的软件事务的强STM隔离。由于能够将交织的共享存储器存取排序的基础RnR记录硬件的原因,这在最初是可能的。在回放期间,共享的存储器交织能够用于识别在存取存储器的弱隔离软件事务与可在事务外并发存取的弱隔离软件事务之间的正确性缺陷。强隔离不会更改回放的行为。相反,强隔离能够通过原始存储器存取来识别何时违反了软件事务隔离。
图3是根据本发明的实施例的促进事务程序的调试的方法300的流程图。在框302,回放器引擎将回放TM程序中的下一指令。继续到决定菱形框304,如果指令不是事务指令,则前进到框306,将指令作为正常(例如,非事务性)指令处理,并且通过强STM隔离对其进行评估。移动到决定菱形框308,如果指令未中止,则返回框302,回放器引擎回放程序的下一指令。如果指令中止,则前进到框318,将指令发送到混合事务争用管理器以解决冲突。
返回决定菱形框304,如果确定指令是事务指令,则继续到决定菱形框310,确定指令是否为硬件事务指令,并且如果是,则继续到框 312,相对于可实现识别正确性和/或性能TM错误(“缺陷”)的指令的回放,仿真HTM。
如果在决定菱形框310,确定指令是软件事务指令,则继续到框314,STM可用于回放指令并且识别缺陷,例如,可包括与指令关联的正确性错误和/或性能错误的一个或更多个错误。
前进到决定菱形框316,如果与指令关联的冲突由事务后指令处理程序检测到,则移动到框318,将指令(无论是事务还是非事务指令)发送到混合事务争用管理器以解决冲突,并且前进到决定菱形框320,确定是否已回放当前块中的所有指令。如果当前块中另外指令尚未回放,则返回框302,回放器引擎回放程序的下一指令。如果已回放当前块的所有指令,则方法在320结束。
如果在决定菱形框316事务后指令处理程序未检测到冲突,则前进到决定菱形框320,如果当前块中另外指令尚未回放,则返回框302,回放器引擎回放程序的下一指令。如果已回放当前块的所有指令,则方法在320结束。
实施例能够在许多不同的处理器类型中实施。例如,能够在诸如多核处理器的处理器中实现实施例。现在参照图4,所示的是根据本发明的一个实施例的处理器核的框图。如图4中所示,处理器核400可以为多级流水线乱序处理器。
如图4所示,核400包括可用于获取要执行的指令并且将它们准备好以便以后在处理器中使用的前端单元410。例如,前端单元410可包括获取单元401、指令高速缓存403和指令解码器405。在一些实施中,前端单元410可还包括追踪高速缓存连同微代码存储装置以及指令存储装置。获取单元401可例如从存储器(未示出)或从指令高速缓存403获取宏指令,并且将它们馈送到指令解码器405以将宏指令解码成诸如供处理器执行的指令的原语。
耦合在前端单元410与执行单元420之间的是可用于接收指令并且准备好它们以便执行的乱序(OOO)引擎415。更具体地说,OOO引擎415可包括各种缓冲器以将指令流重新排序,并且分配执行需要的各种资源以及提供逻辑寄存器的重命名到各种寄存器文件内的存储位置上,例如寄存器文件430和扩展寄存器文件435。寄存器文件430可包括用于整数和浮点操作的单独寄存器文件。扩展寄存器文件435可提供用于向量大小的单元的存储,例如每寄存器256或512比特。
各种资源可存在于执行单元420中,例如除其它专用硬件外还包括各种整数、浮点和单指令多数据(SIMD)逻辑单元。例如,此类执行单元可包括一个或更多个算术逻辑单元(ALU) 422。执行单元420可包括混合事务存储器(HyTM) 472以在HyTM 472的HTM部分中执行和记录程序。根据本发明的实施例,HyTM 472可包括回放器/事务调试器,回放器/事务调试器配置成使用HyTM 472的软件(例如,STM)和/或HyTM 472的硬件事务存储器HTM部分的软件仿真,执行程序(或代码块)的回放和错误检测。
在对执行单元内的数据执行操作时,可将结果提供到引退逻辑,即,重新排序缓冲器(ROB) 440。更具体地说,ROB 440可包括各种阵列和逻辑以接收与执行的指令关联的信息。然后,此信息由ROB 440检查,以确定指令是否能够有效地引退以及结果数据是否能够有效地提交到处理器的体系结构状态,或者是否发生了阻止指令的适当引退的一个或更多个例外。在本发明的实施例中,ROB 440可包括混合事务争用管理器(未示出)以根据本发明的实施例,解决由HyTM 472的回放器检测到的冲突。另外,ROB 440可处理与引退关联的其它操作。
如图4中所示,ROB 440耦合到高速缓存450,在一个实施例中,高速缓存450可以是低级高速缓存(例如,L1高速缓存),并且也可包括转译后备缓冲器(TLB) 455,尽管本发明的范围在此方面不受限制。从高速缓存450,可与更高级高速缓存、系统存储器等进行数据通信。
要注意的是,虽然图4的处理器的实施是关于诸如所谓的x86 ISA体系结构的乱序机,但本发明的范围在此方面不受限制。也就是说,其它实施例可在有序处理器、诸如基于ARM的处理器的精简指令集计算(RISC)处理器或能够经由仿真引擎和关联逻辑电路仿真不同ISA的指令和操作的另一类型的ISA的处理器中实施。此外,其它实施例可在图形处理器中实施。
实施例可在许多不同的系统类型中实施。现在参照图5,所示的是根据本发明的实施例的系统的框图。如图5中所示,多处理器系统500是点对点互连系统,并且包括经由点对点互连550耦合的第一处理器570和第二处理器580。(在未示出的其它实施例中,处理器可经由星形拓扑、网状拓扑、交叉式拓扑或者通过另一连接方案连接)。如图5中所示,每个处理器570和580可以为多核处理器,包括第一和第二处理器核(即,处理器核574a和574b以及处理器核584a和584b),但处理器中可存在可能更多核。
仍参照图5,第一处理器570还包括存储器控制器中心(MCH) 572和点对点(P-P)接口576与578。类似地,第二处理器580包括MCH 582和P-P接口586与588。如图5中所示,MCH572和582将处理器与相应存储器(即,存储器532和存储器534)耦合,其可以是在本地附连到相应处理器的系统存储器(例如,DRAM)的一部分。第一处理器570和第二处理器580可分别经由P-P互接562和554耦合到芯片组590。如图5中所示,芯片组590包括P-P接口594和598。此外,芯片组590包括接口592以便通过P-P互连539将芯片组590与图形引擎538耦合。
根据本发明的实施例,每个处理器核574a和584a可分别包括混合事务存储器(HyTM) 502和504。每个HyTM(502,504)可在HyTM的HTM部分中执行和记录对应程序。根据本发明的实施例,每个HyTM(502,504)可包括回放器/事务调试器,回放器/事务调试器配置成使用对应HyTM的软件和/或对应HyTM的硬件事务存储器(HTM)部分的软件仿真,执行对应程序(或代码块)的回放和错误检测。
芯片组590可经由接口596耦合到第一总线516。如图5中所示,各种输入/输出(I/O)装置514可连同将第一总线516耦合到第二总线520的总线桥518一起耦合到第一总线516。在一个实施例中,各种装置可耦合到第二总线520,例如包括键盘/鼠标522、通信装置526和诸如磁盘驱动器或其它海量存储装置的可存储代码530的数据存储单元528。此外,音频I/O 524可耦合到第二总线520。实施例能够结合到其它类型的系统中,包括诸如智能蜂窝电话、平板计算机、上网本、Ultrabook™、笔记本、台式计算机或诸如此类的移动装置。
下面描述其它实施例。
在一个示例中,一种包括处理器的系统,所述处理器包括混合事务存储器(HyTM),HyTM包括硬件事务存储器(HTM)。处理器也包括程序调试器以回放包括硬件事务存储器(HTM)指令并且已使用HyTM执行的程序。程序调试器包括软件仿真器以通过HTM的仿真来回放HTM指令。系统也包括存储程序的动态随机存取存储器(DRAM)。
在示例中,程序调试器还通过软件事务存储器(STM)的使用,回放程序的软件事务指令。
在示例中,程序调试器将通过强软件事务存储器(STM)隔离,回放程序的非事务指令。
在示例中,程序调试器将识别程序中的正确性错误和性能错误至少之一。
在另一示例中,至少一种计算机可读存储介质,其上存储有指令,用于使系统回放已由包括硬件事务存储器(HTM)的混合事务存储器(HyTM)系统执行的程序。回放至少部分通过HTM的软件仿真来执行。
在示例中,HyTM系统也包括软件事务存储器(STM)。在示例中,在要回放的程序指令是与软件事务关联的事务指令时,回放使用STM来执行。
在示例中,至少一种计算机可读存储介质还包括经程序的回放,识别程序中一个或更多个冲突的指令,程序包括识别正确性错误和性能错误至少之一的指令。
在示例中,回放完全仿真由HyTM执行的程序的执行的记录。
在示例中,回放程序的指令包括确定程序的程序指令是事务指令还是非事务指令的指令。当程序指令是非事务指令时,回放通过强软件事务存储器(STM)隔离来执行。
在示例中,在要回放的程序指令是与硬件事务关联的事务指令时,回放通过HTM的软件仿真来执行。
在示例中,存储的指令使系统回放程序而不干扰程序。
在示例中,至少一种计算机可读存储介质还包括使系统捕捉事务中止的原因和位置至少之一的指令。
在示例中,程序的回放包括使暂停第一线程的执行和恢复第二线程的执行的至少一个上下文切换,并且回放使用HTM的软件仿真来执行。
在示例中,至少一种计算机可读存储介质还存储经由软件仿真,仿真HTM的事务存储器争用管理器的中止决策部分的指令。
在另一示例中,方法包括回放在包括硬件事务存储器(HTM)的混合事务存储器(HyTM)系统中已执行的程序,其中,回放至少部分使用HTM的软件仿真来执行。方法也包括经由回放程序,识别程序中的一个或更多个冲突。
在示例中,方法包括经由软件仿真,仿真HTM的事务存储器争用管理器的中止决策部分。
在示例中,HyTM包括软件事务存储器(STM),方法还包括利用STM回放程序的一个或更多个软件事务指令。
在示例中,通过强软件事务存储器(STM)隔离,执行程序的非事务指令的回放。
在示例中,方法包括捕捉与程序关联的事务中止的原因和位置至少之一。
在示例中,设备可执行任何上述方法。
在示例中,机器可读存储装置,包括机器可读指令,在指令被执行时,可实施任何上述方法。
实施例可在许多不同类型的系统中使用。例如,在一个实施例中,通信装置能够布置成执行本文中所描述的各种方法和技术。当然,本发明的范围不限于通信装置,并且替代地其它实施例能够被引导至用于处理指令的其它类型的设备或包括指令的一个或更多个机器可读媒体,指令响应于在计算装置上被执行,使装置执行本文中所描述的一个或更多个方法和技术。
实施例可以在代码中实现,并可存储在非暂时性存储介质上,所述介质具有指令存储在其上,所述指令能用于对系统进行编程以执行指令。存储介质可包括但不限于任一类型的磁盘,包括软盘、光盘、固态驱动器(SSD)、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)和磁光盘、半导体器件(诸如只读存储器(ROM),诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可擦除编程只读存储器(EPROM)、闪存、电擦除可编程只读存储器(EEPROM)随机存取存储器(RAM))、磁卡或光卡或适用于存储电子指令的任何其它类型的媒体。
虽然本发明已相对有限数量的实施例进行了描述,但本领域的技术人员将意识到从其的多种修改和变化。随附权利要求旨在涵盖本发明真正精神和范围内的所有此类修改和变化。

Claims (24)

1.一种系统,包括:
处理器,包括:
混合事务存储器(HyTM),其包括硬件事务存储器(HTM);以及
回放程序的程序调试器,所述程序包括硬件事务存储器指令并且已使用所述HyTM执行,其中所述程序调试器包括软件仿真器以通过所述HTM的仿真来回放所述HTM指令;以及
存储所述程序的动态随机存取存储器(DRAM)。
2.如权利要求1所述的系统,其中所述程序调试器还通过软件事务存储器(STM)的使用,回放所述程序的软件事务指令。
3.如权利要求1所述的系统,其中所述程序调试器还通过强软件事务存储器(STM)隔离,回放所述程序的非事务指令。
4.如权利要求1到3任一项所述的系统,其中所述程序调试器将识别所述程序中的性能错误。
5.如权利要求1到3任一项所述的系统,其中所述程序调试器将识别所述程序中的正确性错误。
6.至少一种计算机可读存储介质,其上存储有用于使系统执行以下操作的指令:
回放已由包括硬件事务存储器(HTM)的混合事务存储器(HyTM)执行的程序;以及
其中所述回放至少部分通过所述HTM的软件仿真来执行。
7.如权利要求6所述的至少一种计算机可读存储介质,其中所述HyTM也包括软件事务存储器(STM)。
8.如权利要求7所述的至少一种计算机可读存储介质,其中在要回放的程序指令是与软件事务关联的事务指令时,所述回放使用所述STM来执行。
9.如权利要求6所述的至少一种计算机可读存储介质,还包括经由包括识别正确性错误的指令的所述程序的所述回放,识别所述程序中一个或更多个冲突的指令。
10.如权利要求6所述的至少一种计算机可读存储介质,还包括经由所述程序的所述回放,识别所述程序中一个或更多个性能错误的指令。
11.如权利要求6所述的至少一种计算机可读存储介质,其中所述回放完全仿真由所述HyTM执行的所述程序的执行的记录。
12.如权利要求6所述的至少一种计算机可读存储介质,其中回放所述程序的所述指令包括确定所述程序的程序指令是事务指令还是非事务指令的指令,其中在所述程序指令是非事务指令时,回放通过强软件事务存储器(STM)隔离来执行。
13.如权利要求6所述的至少一种计算机可读存储介质,其中在要被回放的程序指令是与硬件事务关联的事务指令时,回放通过所述HTM的所述软件仿真来执行。
14.如权利要求6所述的至少一种计算机可读存储介质,其中所述程序的回放包括使暂停第一线程的执行和恢复第二线程的执行的至少一个上下文切换,并且其中所述回放使用所述HTM的所述软件仿真来执行。
15.如权利要求6所述的至少一种计算机可读存储介质,还存储经由软件仿真,仿真所述HTM的事务存储器争用管理器的中止决策部分的指令。
16.如权利要求6到15任一项所述的至少一种计算机可读存储介质,还包括使所述系统捕捉事务中止的原因和位置至少之一的指令。
17.如权利要求6到15任一项所述的至少一种计算机可读存储介质,其中所述存储的指令使所述系统回放所述程序而不干扰所述程序。
18.一种方法,包括:
回放在包括硬件事务存储器(HTM)的混合事务存储器(HyTM)系统中已执行的程序,其中所述回放至少部分使用所述HTM的软件仿真来执行;以及
经由回放所述程序,识别所述程序中的一个或更多个冲突。
19.如权利要求18所述的方法,还包括经由软件仿真,仿真所述HTM的事务存储器争用管理器的中止决策部分。
20.如权利要求18所述的方法,其中所述HyTM包括软件事务存储器(STM),所述方法还包括利用所述STM回放所述程序的一个或更多个软件事务指令。
21.如权利要求18所述的方法,其中通过强软件事务存储器(STM)隔离,执行所述程序的非事务指令的回放。
22.如权利要求18所述的方法,还包括捕捉与所述程序关联的事务中止的原因和位置至少之一。
23.一种设备,包括用于执行如权利要求18到22任一项所述的方法的部件。
24.一种机器可读存储装置,包括在被执行时实施权利要求18到22任一项所述的方法的机器可读指令。
CN201580010710.5A 2014-03-26 2015-03-23 用于事务存储器程序的软件回放器 Active CN106030532B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/226,312 US9697040B2 (en) 2014-03-26 2014-03-26 Software replayer for transactional memory programs
US14/226312 2014-03-26
PCT/US2015/021929 WO2015148339A1 (en) 2014-03-26 2015-03-23 Software replayer for transactional memory programs

Publications (2)

Publication Number Publication Date
CN106030532A true CN106030532A (zh) 2016-10-12
CN106030532B CN106030532B (zh) 2020-06-12

Family

ID=54190496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580010710.5A Active CN106030532B (zh) 2014-03-26 2015-03-23 用于事务存储器程序的软件回放器

Country Status (6)

Country Link
US (1) US9697040B2 (zh)
EP (1) EP3123321A4 (zh)
JP (1) JP6306261B2 (zh)
KR (1) KR101862094B1 (zh)
CN (1) CN106030532B (zh)
WO (1) WO2015148339A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111192503A (zh) * 2018-11-15 2020-05-22 株式会社麦卢思 块型无线编码命令输入装置及方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9697040B2 (en) 2014-03-26 2017-07-04 Intel Corporation Software replayer for transactional memory programs
US11188336B2 (en) 2015-12-28 2021-11-30 Qualcomm Incorporated Replay of partially executed instruction blocks in a processor-based system employing a block-atomic execution model
WO2017205408A1 (en) * 2016-05-24 2017-11-30 Hada Joan System and method for abstracted and fragmented data retrieval
KR101885030B1 (ko) * 2017-04-21 2018-08-02 전북대학교산학협력단 하이브리드 트랜잭셔널 메모리 시스템에서의 트랜잭션 처리 방법 및 트랜잭션 처리 장치
KR102007117B1 (ko) * 2018-01-19 2019-08-02 전북대학교산학협력단 트랜잭션 처리 방법 및 트랜잭션 처리 시스템

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288902A1 (en) * 2006-06-09 2007-12-13 Sun Microsystems, Inc. Replay debugging
US20080127035A1 (en) * 2006-06-09 2008-05-29 Sun Microsystems, Inc. Watchpoints on transactional variables
CN101310258A (zh) * 2005-12-16 2008-11-19 英特尔公司 在软件事务内存系统中保护共享变量
CN101322103A (zh) * 2005-12-30 2008-12-10 英特尔公司 无约束事务存储器系统
US20090007017A1 (en) * 2007-06-29 2009-01-01 Freddy Allen Anzures Portable multifunction device with animated user interface transitions
CN101681294A (zh) * 2007-06-29 2010-03-24 微软公司 存储器事务分组
CN101689154A (zh) * 2007-06-27 2010-03-31 微软公司 利用事务存储器硬件来加速虚拟化和仿真
WO2010151267A1 (en) * 2009-06-26 2010-12-29 Intel Corporation Optimizations for an unbounded transactional memory (utm) system
US20120174083A1 (en) * 2008-06-19 2012-07-05 Tatiana Shpeisman Dynamic optimization for removal of strong atomicity barriers
US20130055022A1 (en) * 2011-08-29 2013-02-28 Andrew K. Chong Flexible soc design verification environment
US20140075441A1 (en) * 2012-09-13 2014-03-13 International Business Machines Corporation Method and apparatus for recording and profiling transaction failure source addresses in hardware transactional memories

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3542463B2 (ja) * 1997-07-29 2004-07-14 Necエレクトロニクス株式会社 集積回路装置、その動作制御方法
US8180967B2 (en) * 2006-03-30 2012-05-15 Intel Corporation Transactional memory virtualization
US8307346B2 (en) * 2006-06-09 2012-11-06 Oracle America, Inc. Atomic groups for debugging
US8533681B2 (en) * 2007-03-07 2013-09-10 The Board Of Trustees Of The University Of Illinois Atomicity violation detection using access interleaving invariants
US8688920B2 (en) * 2007-05-14 2014-04-01 International Business Machines Corporation Computing system with guest code support of transactional memory
US8099719B2 (en) 2007-06-19 2012-01-17 Microsoft Corporation Transactional debugger for a transactional memory system and detecting conflicts
US8266387B2 (en) * 2007-06-27 2012-09-11 Microsoft Corporation Leveraging transactional memory hardware to accelerate virtualization emulation
JP4856023B2 (ja) * 2007-08-08 2012-01-18 パナソニック株式会社 リアルタイムウォッチ装置及びその方法
US8661204B2 (en) * 2007-08-15 2014-02-25 University Of Rochester, Office Of Technology Transfer Mechanism to support flexible decoupled transactional memory
US8140497B2 (en) * 2007-12-31 2012-03-20 Oracle America, Inc. System and method for implementing nonblocking zero-indirection transactional memory
US8972794B2 (en) * 2008-02-26 2015-03-03 International Business Machines Corporation Method and apparatus for diagnostic recording using transactional memory
JP5255887B2 (ja) * 2008-04-08 2013-08-07 ルネサスエレクトロニクス株式会社 情報処理装置及びデバッグ方法
US8555016B2 (en) * 2008-12-17 2013-10-08 Intel Corporation Unified optimistic and pessimistic concurrency control for a software transactional memory (STM) system
US8356166B2 (en) * 2009-06-26 2013-01-15 Microsoft Corporation Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers
US8516202B2 (en) 2009-11-16 2013-08-20 International Business Machines Corporation Hybrid transactional memory system (HybridTM) and method
US8095824B2 (en) * 2009-12-15 2012-01-10 Intel Corporation Performing mode switching in an unbounded transactional memory (UTM) system
US20110258613A1 (en) 2010-04-15 2011-10-20 International Business Machines Corporation Software debugger activation based on key performance indicators
US8453120B2 (en) * 2010-05-11 2013-05-28 F5 Networks, Inc. Enhanced reliability using deterministic multiprocessing-based synchronized replication
CN104220989B (zh) 2011-12-21 2017-12-12 英特尔公司 用于识别并且再现多线程程序中并发冲突的方法及系统
US9311101B2 (en) * 2012-06-15 2016-04-12 International Business Machines Corporation Intra-instructional transaction abort handling
US9135139B2 (en) 2012-06-27 2015-09-15 Intel Corporation Methods and systems to identify and reproduce concurrency violations in multi-threaded programs using expressions
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
US9836316B2 (en) 2012-09-28 2017-12-05 Intel Corporation Flexible acceleration of code execution
WO2014100698A1 (en) * 2012-12-20 2014-06-26 Massachusetts Institute Of Technology Methods and systems for enhancing hardware transactions using hardware transactions in software slow-path
US9128781B2 (en) 2012-12-28 2015-09-08 Intel Corporation Processor with memory race recorder to record thread interleavings in multi-threaded software
EP2972878B1 (en) * 2013-03-15 2018-09-26 Intel Corporation Mechanism for facilitating dynamic and efficient management of instruction atomicity violations in software programs at computing systems
US9361152B2 (en) 2013-07-15 2016-06-07 Intel Corporation Transactional memory management techniques
US9183043B2 (en) * 2013-07-16 2015-11-10 Oracle International Corporation Systems and methods for adaptive integration of hardware and software lock elision techniques
US9244724B2 (en) * 2013-08-15 2016-01-26 Globalfoundries Inc. Management of transactional memory access requests by a cache memory
US9086974B2 (en) * 2013-09-26 2015-07-21 International Business Machines Corporation Centralized management of high-contention cache lines in multi-processor computing environments
US9146774B2 (en) * 2013-12-12 2015-09-29 International Business Machines Corporation Coalescing memory transactions
US9965320B2 (en) * 2013-12-27 2018-05-08 Intel Corporation Processor with transactional capability and logging circuitry to report transactional operations
US9697040B2 (en) 2014-03-26 2017-07-04 Intel Corporation Software replayer for transactional memory programs
US10007549B2 (en) * 2014-12-23 2018-06-26 Intel Corporation Apparatus and method for a profiler for hardware transactional memory programs

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101310258A (zh) * 2005-12-16 2008-11-19 英特尔公司 在软件事务内存系统中保护共享变量
CN101322103A (zh) * 2005-12-30 2008-12-10 英特尔公司 无约束事务存储器系统
US20070288902A1 (en) * 2006-06-09 2007-12-13 Sun Microsystems, Inc. Replay debugging
US20080127035A1 (en) * 2006-06-09 2008-05-29 Sun Microsystems, Inc. Watchpoints on transactional variables
CN101689154A (zh) * 2007-06-27 2010-03-31 微软公司 利用事务存储器硬件来加速虚拟化和仿真
US20090007017A1 (en) * 2007-06-29 2009-01-01 Freddy Allen Anzures Portable multifunction device with animated user interface transitions
CN101681294A (zh) * 2007-06-29 2010-03-24 微软公司 存储器事务分组
US20120174083A1 (en) * 2008-06-19 2012-07-05 Tatiana Shpeisman Dynamic optimization for removal of strong atomicity barriers
WO2010151267A1 (en) * 2009-06-26 2010-12-29 Intel Corporation Optimizations for an unbounded transactional memory (utm) system
US20130055022A1 (en) * 2011-08-29 2013-02-28 Andrew K. Chong Flexible soc design verification environment
US20140075441A1 (en) * 2012-09-13 2014-03-13 International Business Machines Corporation Method and apparatus for recording and profiling transaction failure source addresses in hardware transactional memories

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHI CAO MINH,MARTIN TRAUTMANN,JAEWOONG CHUNG: "An Effective Hybrid Transactional Memory System with Strong Isolation Guarantees", 《PROCEEDINGS OF THE 34TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE》 *
GILLES POKAM,CRISTIANO PEREIRA,SHILIANG HU,ETC.: "Coreracer: A practical memory race recorder for multicore x86 processors", 《PROCEEDINGS OF THE 44TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE》 *
Y LEV, M MOIR: "Debugging with transactional memory", 《PROCEEDINGS OF THE FIRST ACM SIGPLAN WORKSHOP ON LANGUAGES,COMPILERS,AND HARDWARE SUPPORT FOR TRANSACTIONAL COMPUTING》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111192503A (zh) * 2018-11-15 2020-05-22 株式会社麦卢思 块型无线编码命令输入装置及方法

Also Published As

Publication number Publication date
EP3123321A1 (en) 2017-02-01
JP6306261B2 (ja) 2018-04-04
US20150277968A1 (en) 2015-10-01
US9697040B2 (en) 2017-07-04
EP3123321A4 (en) 2017-11-29
CN106030532B (zh) 2020-06-12
KR20160113205A (ko) 2016-09-28
WO2015148339A1 (en) 2015-10-01
JP2017510014A (ja) 2017-04-06
KR101862094B1 (ko) 2018-05-29

Similar Documents

Publication Publication Date Title
CN106030532A (zh) 用于事务存储器程序的软件回放器
CN115841089B (zh) 一种基于uvm的系统级芯片验证平台及验证方法
CN105074671B (zh) 用于在内核模块和设备驱动程序中检测并发编程错误的方法和系统
US8799867B1 (en) Methods, systems, and articles of manufacture for synchronizing software verification flows
CN111611120B (zh) 一种片上多核处理器Cache一致性协议验证方法、系统及介质
US10296442B2 (en) Distributed time-travel trace recording and replay
US20020147965A1 (en) Tracing out-of-order data
CN110659256B (zh) 多机房同步方法、计算设备及计算机存储介质
US9086969B2 (en) Establishing a useful debugging state for multithreaded computer program
WO2016026328A1 (zh) 一种信息处理方法、装置及计算机存储介质
EP3577564B1 (en) Efficient retrieval of memory values during trace replay
US10019337B2 (en) Class object handle tracking
US20110154110A1 (en) Verifying a Register-Transfer Level Design of an Execution Unit
US10853224B2 (en) Indexing and searching a time-travel trace for arbitrary length/arbitrary alignment values
CN110998541A (zh) 调试器中的代码的试验性执行
CN109471851A (zh) 数据处理方法、装置、服务器和存储介质
WO2016160190A1 (en) Technologies for application validation in persistent memory systems
CN105308578A (zh) 状态转变的诊断
US6212493B1 (en) Profile directed simulation used to target time-critical crossproducts during random vector testing
CN105389161B (zh) 事务内存的冲突检测方法、事务内存系统及微处理器
US10241888B2 (en) Method to verify correctness of computer system software and hardware components and corresponding test environment
US20120059997A1 (en) Apparatus and method for detecting data race
JP2008210004A (ja) 検証シナリオ生成装置,方法,およびプログラム,並びに検証装置
US6751752B1 (en) Checking events generated by a device
CN105843661B (zh) 一种面向主机系统的代码重定位方法及其系统

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