修复弱内存序问题的方法及装置制造方法及图纸

技术编号:44247910 阅读:14 留言:0更新日期:2025-02-11 13:44
本申请公开了一种修复弱内存序问题的方法及装置,涉及计算机技术领域,该方法能够在多线程程序的编译阶段,自动修复该程序中的弱内存序问题。该方法包括:在待修复代码中确定读写指令集;对读写指令集中的指令进行分类,以确定目标指令;在目标指令的前一条读写指令和目标指令之间插入内存屏障指令;其中,读写指令集包括待修复代码中的读指令和/或写指令,读写指令集中的指令用于访问内存。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种修复弱内存序问题的方法及装置


技术介绍

1、当基于非弱内存模型开发的多线程程序,在采用弱内存模型(weak memorymodel)的计算机设备中运行时,由于不同内存模型下硬件所支持的指令语义不同,因此可能会导致该程序中并行运行的线程在执行用于访存的读写指令时乱序,从而出现弱内存序的问题。

2、例如,基于强内存模型(strong memory model)开发的多线程程序,在采用弱内存模型的计算机设备中运行时,该程序中并行运行的线程执行用于访存的读写指令时,即可能出现弱内存序的问题。这样的话,该程序所要实现的功能可能会出现逻辑上的错误,从而导致该程序运行后输出的结果不准确。

3、基于此,如何修复多线程程序弱内存序的问题,是亟待解决的技术问题。


技术实现思路

1、本申请提供了一种修复弱内存序问题的方法及装置,该方法能够在多线程程序的编译阶段,自动修复该程序中的弱内存序问题。

2、为达上述目的,本申请提供如下技术方案:

3、第一方面,本文档来自技高网...

【技术保护点】

1.一种修复弱内存序问题的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述对所述读写指令集中的指令进行分类,以确定目标指令,具体包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述第一类指令,确定所述目标指令,具体包括:

4.根据权利要求1所述的方法,其特征在于,所述对所述读写指令集中的指令进行分类,以确定目标指令,具体包括:

5.根据权利要求3或4所述的方法,其特征在于,所述优化策略包括以下策略中的至少一种:

6.根据权利要求5所述的方法,其特征在于,所述方法还包括

7....

【技术特征摘要】

1.一种修复弱内存序问题的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述对所述读写指令集中的指令进行分类,以确定目标指令,具体包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述第一类指令,确定所述目标指令,具体包括:

4.根据权利要求1所述的方法,其特征在于,所述对所述读写指令集中的指令进行分类,以确定目标指令,具体包括:

5.根据权利要求3或4所述的方法,其特征在于,所述优化策略包括以下策略中的至少一种:

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

7.根据权利要求3-6中任一项所述的方法,其特征在于,在所述确定所述目标指令之前,所述方法还包括:

8.根据权利要求2、3、5-7中任一项所述的方法,其特征在于,所述第一类指令包括读写线程间非共享变量的指令、或具有保序语义的读写指令中的至少一种。

9.根据权利要求1-8中任一项所述的方法,其特征在于,所述确定读写指令集,具体包括:

10.根据权利要求1-9中任一项所述的方法,其特征在于,

11.一种修复弱内存序问题的装置,其特征在于,所述装置包括:

12.根据权利要求11所述的装置,其特征在...

【专利技术属性】
技术研发人员:余狄吕研冬张汝涛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1