【技术实现步骤摘要】
用于指示和检测原子性操作的装置、方法、计算机程序和数据载体
技术介绍
[0001]并行编程容易出现并发数据访问引起的许多问题,并发数据访问也称为数据竞争(data race)。并行应用越复杂,它包含数据竞争的可能性就越大,并且数据竞争也就越难检测和根除。
[0002]存在可用于对并行程序的正确性分析和对竞争的检测的工具。例如,“检查器”或“线程净化器”工具可以用于检测竞争并正式证明应用是无竞争的。然而,这些工具可能需要代码插桩(instrumentation)或调试信息,这使得它们不能用于生产代码,并且因此,也不能用于由来自不同软件供应商的多个独立模块组成的较大型应用。
附图说明
[0003]装置和/或方法的一些示例将在下文仅作为示例并参考所附附图来进行描述,在附图中
[0004]图1示出装置的示例的框图;
[0005]图2示出用于生成汇编代码指令的方法的示例的框图;
[0006]图3示出用于检测原子性操作的方法的示例的框图;
[0007]图4示出用于高级代码中的基本同步(basic synch ...
【技术保护点】
【技术特征摘要】
1.一种装置,包括:至少一个接口,所述至少一个接口被配置成用于读取一个或多个高级代码指令;以及至少一个处理器,所述至少一个处理器被配置成用于:使用所述接口读取所述一个或多个高级代码指令,确定所述高级代码指令中的原子性操作,以及将所述一个或多个高级代码指令转换为汇编代码指令,其中基于所述高级代码指令中的所述原子性操作来指示所述汇编代码指令中的原子性操作。2.如权利要求1所述的装置,其特征在于,所述至少一个处理器被配置成用于使用元信息来指示所述汇编代码指令中的所述原子性操作。3.如权利要求2所述的装置,其特征在于,所述元信息对所述汇编代码指令的执行结果无效。4.如权利要求1所述的装置,其特征在于,所述至少一个处理器被配置成用于使用被处理器体系结构忽略的信息来指示所述汇编代码指令中的所述原子性操作,所述汇编代码指令被转换用于所述处理器体系结构。5.如权利要求4所述的装置,其特征在于,所述处理器体系结构是x86体系结构。6.如权利要求1所述的装置,其特征在于,所述至少一个处理器被配置成用于使用不影响指令执行结果的指令前缀来指示所述汇编代码指令中的所述原子性操作。7.如权利要求1所述的装置,其特征在于,所述至少一个处理器被配置成用于使用用于标记原子性存储器操作的可区分代码模式来指示所述汇编代码指令中的所述原子性操作。8.如权利要求1所述的装置,其特征在于,所述至少一个处理器被配置成用于使用多余的段前缀来指示所述汇编代码指令中的所述原子性操作。9.如权利要求1所述的装置,其特征在于,所述至少一个处理器被配置成用于使用所述汇编代码指令中的原子性指令之前的一字节前缀来指示所述汇编代码指令中的所述原子性操作。10.如权利要求1所述的装置,其特征在于,所述至少一个处理器被配置成用于使用原子性操作使用或隐含的重复段前缀来指示所述汇编代码指令中的所述原子性操作。11.如权利要求1所述的装置,其特征在于,所述至少一个接口被配置成用于输出汇编代码指令,并且其中所述至少一个处理器被配置成用于使用所述至少一个接口输出具有所指示的原子性指令的所述汇编代码指令。12.一种装置,包括:至少一个接口,所述至少一个接口被配置成用于读取一个或多个汇编代码指令;至少一个处理器,所述至少一个处理器被配置成用于:确定所述一个或多个汇编代码指令中对原子性操作的指示,基于所述一个或多个汇编代码指令和所述汇编代码指令中对所述原子性操作的所述指示来检测原子性操作。13.如权利要求12所述的装置,其特征在于,所述至少一个处理器被配置成用于基于所述原子性操作来检测数据竞争。14.如权利要求12所述的装置,其特征在于,所述至少一个处理器被配置成用于将...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。