一个或更多个实施例可提供用于执行重放的方法。方法包括启动程序的执行,程序具有多个指令集,并且每个指令集具有多个指令组块。方法也包括在执行前由在处理器上运行的虚拟机单元截取多个组块的组块的指令。方法还包括由在处理器上运行的重放模块确定组块是否为活动组块,并且响应组块是活动组块,执行指令。
【技术实现步骤摘要】
【国外来华专利技术】用于进行重放执行的方法和设备
本公开内容一般涉及重放执行领域,并且更具体地说,涉及由基于组块的存储器竞争记录器重放记录的执行。
技术介绍
今天,在包括服务器、台式机、膝上型计算机、移动装置和系统芯片等许多计算装置中能够发现多核处理器。到这些多核处理器系统的转变已允许开发并行程序以利用增强的性能。随着并行程序在软件开发环境中变得普及,越来越多的关注集中在缺乏用于此类程序的调试工具上。在多核处理器系统和共享存储器中运行的并行程序如果未适当同步,则能够导致非确定性的执行。这种非确定性可在不同情况下出现,包括执行的不同线程在共享存储器中交织,使得程序执行的再现和理解变得困难的许多方式。此类非确定性执行能够导致并发违反,其往往随着共享存储器访问的数量增大、软件线程的数量增大和程序复杂性增加而更频繁地发生。附图说明为提供本公开内容及其优点的更完整的理解,将结合附图,参照以下描述,其中类似的标号表示类似的部分,其中:图1是根据一实施例的数据处理系统的示例图示;图2是根据一实施例的记录的日志数据库的示例图示;图3是根据一实施例,示出用于存储器竞争记录器重放的方法的简化流程图;图4是根据一实施例,示出用于重放程序的方法的简化流程图;图5是根据一实施例,示出用于重放进程的方法的简化流程图;图6是根据一实施例,示出用于重放进程的方法的简化流程图;图7是根据一实施例,示出用于重放指令的进程的简化流程图;图8是根据一实施例,示出用于映射线程标识的进程的简化流程图;图9是根据一实施例,示出用于操作自由模式的进程的简化流程图;图10是根据一实施例的处理器的示例图示;以及图11示出根据本专利技术一实施例,以点对点配置布置的计算系统。具体实施方式示例实施例图1是根据一实施例的数据处理系统100的示例图示。数据处理系统100包括耦合到系统存储器104的多核处理器102。多核处理器102可包括可执行线程108的核106。“线程”也可称为“进程”。源程序二进制110或“程序”可以是在数据处理系统100中执行的应用程序或程序。在执行源程序二进制110时,记录器单元112可跟踪在多核处理器102与系统存储器104之间的信号。记录器单元112可在记录的日志数据库114和线程顺序数据库116中存储这些记录。重放器机器单元118可访问数据库114和116以重放源程序二进制110的执行。重放器机器单元118可包括虚拟机单元120和重放模块122。多核处理器102用于为可加载到系统存储器104中的软件执行指令。视特定实现而定,多核处理器102可以是多个处理器、能够执行多个进程的单个处理器或某一其它类型的处理器。在本文中参照某个项目使用时,数字指一个或更多个项目。此外,多核处理器102可使用多个异类处理器系统实现,系统中主处理器与辅助处理器存在于单个芯片上。作为另一说明性示例,多核处理器102可以是包含相同类型的多个处理器的对称多核处理器系统。用于多种应用的处理器可通过单处理核或多处理核提供有多线程能力。每个线程或核能够在一个指令集上操作,而另一线程或核在不同指令集上独立操作。多核处理器102可部署在多个处理器体系结构中,以便例如两个双核处理器表示四个独立的处理核。系统存储器104是存储装置的示例。存储装置是能够在临时基础和/或永久性基础上存储信息的任何一个硬件,信息例如但不限于是数据、功能形式的程序代码和/或其它适合的信息。在这些示例中,存储装置也可称为计算机可读存储装置。系统存储器104例如能够包括随机存取存储器(RAM)或任何其它适合的易失性或非易失性存储装置。视特定实现而定,系统存储器104也能够包括可采用各种形式的持久性存储装置。系统存储器104可包括操作系统124和不同存储器位置。这些存储器位置的一个或更多个位置可以是共享存储器126。共享存储器126可由多核处理器102的不止一个核访问。系统存储器104可包括源程序二进制110。源程序二进制110可包括在要由多核处理器102执行的程序中有一个或更多个指令的序列。记录器单元112可以是存储器竞争记录器(MRR)的示例。记录器单元112可用于记录核106的每个核执行哪些指令。在一个示例中,将要由核106执行的指令分割成线程108。每个核将执行全部的单个线程,并且随后转到另一线程。在本公开内容的一实施例中,记录器单元112记录在多核处理器体系结构上共享存储器126访问的交织。使用诸如事务存储器、硬件锁省略或签名,能够跟踪由负载或存储操作访问的系统存储器104的存储器位置。一种机制每核使用两个布隆滤波器以分别监视负载和存储地址。每次负载或存储操作提交时,增大计数器(每核增大1),并且将对应访问的存储器地址插入适当的布隆滤波器。读集(RS)是受监视负载地址集,并且写集(WS)是受监视存储地址集。计数器根据访问的存储器地址的数量描述执行的当前区域,这称为组块。记录器单元112可在记录的日志数据库114中存储记录。记录器单元112在组块128由线程108执行时记录组块128,并且在记录的日志数据库114中在记录的日志文件128中存储记录。线程108的每个线程可执行多个组块。对于每个线程,可在记录的日志数据库114中存储不同记录的日志文件129。记录的日志文件129可包括该特定线程的组块128。记录器单元112也可记录在线程108之间的排序,并且在线程顺序数据库116中有序存储顺序。每个组块包括用于该组块的源程序二进制110执行的指令的数量。此外,线程108可由重放模块122映射。在共享的存储器多核处理器系统中,相干协议通过发出对共享存储器访问的相干请求,跨核保持存储器相干。在接收相干请求时,硬件检查带有入站地址的RS和WS。在入站地址是读,并且在WS中发现带有地址的匹配时检测到冲突;或者在入站地址是写,并且在RS或WS中发现带有地址的匹配时检测到冲突。检测到冲突终止了当前组块。在终止组块时,记录器单元112记录包括组块的大小的跟踪条目(即,计数器的值)和全局时间戳。全局时间戳用于提供跨所有记录的组块128的总顺序。关于在新一代的多核处理器体系结构,恒定时间戳(TSC)能够用作全局时间戳。在组块终止后,清空RS和WS,并且重置计数器。在总存储顺序(TSO)下记录共享存储器访问的交织的主要困难是负载能够在以前的存储前被重新排序。此重新排序能够导致组块的不正确排序。遵循递增时间戳顺序的结果组块执行顺序不匹配提交顺序。实施例解决了此问题而不更改高速缓存相干协议或高速缓存子系统。实施例提供了在有从TSO执行获得组块排序的条件下,重新执行这些组块的结果与原程序执行是一致的。在将存储排序到与其随后的负载提交处组块相同的组块中的存储器时,不存在可能的排序违反。缺乏可能的排序违反是由于负载和存储在相同组块中以原子方式执行。存储提交到与组块已从其退出的组块不同的组块中的存储器,并且存在在更早组块中提交的更迟负载时,随后存在可发生排序违反的可能。在来自不同处理器的组块的全局排序中(按时间戳排序),以前排序系统能够形成在更迟的负载提交处组块与以前的存储提交处组块之间交织的冲突远程组块。在此情况下,负载提交处的组块可称为问题组块(P-组块)。在P-组块终止时,记录在存储缓冲器(STB)中仍等待提交的以前退出存储的数量。本文档来自技高网...
【技术保护点】
至少一种上面存储有指令的非短暂性机器可访问存储介质,所述指令在机器上被执行时,促使所述机器执行以下操作:启动程序的执行,所述程序具有多个指令集,并且每个指令集具有多个指令组块;在执行前截取所述多个组块的组块的指令;确定所述组块是否为活动组块;以及响应所述组块是所述活动组块,执行所述指令。
【技术特征摘要】
【国外来华专利技术】2012.09.27 US 13/6291311.一种用于执行重放执行的方法,所述方法包括:启动程序的执行,所述程序具有多个指令集,并且每个指令集具有指令的多个组块;在执行前截取所述指令的多个组块的一个组块的指令;确定所述一个组块是否为活动组块;以及响应所述一个组块是所述活动组块,执行所述一个组块的指令。2.如权利要求1所述的方法,其中每个指令集对应于线程。3.如权利要求2所述的方法,还包括:确定所述一个组块的指令是否为所述线程中的第一指令;响应所述一个组块的指令是所述第一指令,将新线程标识指派到所述线程;以及将所述新线程标识映射到用于所述线程的原标识。4.如权利要求2-3任一项所述的方法,还包括:识别所述一个组块是否为所述指令的多个组块的最后组块;以及如果所述一个组块是所述最后组块,则在所述一个组块执行后在自由模式中操作所述线程。5.如权利要求1-3任一项所述的方法,还包括:响应所述一个组块不是所述活动组块,暂停所述一个组块的指令,直至所述一个组块是所述活动组块。6.如权利要求1-3任一项所述的方法,其中所述指令的多个组块的所述活动组块当前正在由在处理器上执行的重放模块执行。7.如权利要求1-3任一项所述的方法,还包括:确定程序的所述执行是否匹配记录的执行。8.如权利要求1-3任一项所述的方法,其中所述截取所述一个组块的指令由在处理器上执行的虚拟机单元执行。9.如权利要求1-3任一项所述的方法,还包括:检索带有时间戳的对应于所述指令的多个组块的多个记录的日志文件;以及根据所述时间戳将所述指令的多个组块排序以获得有序组块。10.如权利要求9所述的方法,其中所述确定所述一个组块是否为活...
【专利技术属性】
技术研发人员:JE戈特施利奇,K丹内,CL佩雷拉,GA波卡姆,R卡萨,胡世亮,T克拉尼希,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。