一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种硬件内存序架构下的代码处理方法及相应装置与流程

2023-02-19 00:54:47 来源:中国专利 TAG:

技术特征:
1.一种硬件内存序架构下的代码处理方法,应用于计算机系统,其特征在于,包括:获取编译流程中的第一文件,所述第一文件与源文件关联;将所述第一文件的目标代码中的volatile内存访问代码转换为原子性的atomic内存访问代码,以得到第二文件,所述目标代码为与并发控制相关的内存访问代码;对所述第二文件进行编译处理,以得到适用于目标架构的执行文件,所述目标架构为强内存序架构或弱内存序架构。2.根据权利要求1所述的代码处理方法,其特征在于,所述方法还包括:删除所述目标代码中单独的内存屏障,所述单独的内存屏障为所述目标代码中单独的一条内嵌汇编指令,且所述单独的一条内嵌汇编指令是内存屏障指令。3.根据权利要求1或2所述的代码处理方法,其特征在于,所述第一文件为包含源代码的源文件,所述源文件包括适用于源架构的内嵌汇编代码,所述方法还包括:将适用于源架构的内嵌汇编代码转换为能运行于所述目标架构的内嵌汇编代码或编译器内建函数,所述源架构和所述目标架构为两个不同的硬件内存序架构。4.根据权利要求1或2所述的代码处理方法,其特征在于,所述第一文件为第一中间表示,所述第二文件为第二中间表示,所述获取编译流程中的第一文件,包括:获取与源架构对应的源文件,所述源文件中包括适用于所述源架构的内嵌汇编代码;将适用于所述源架构的内嵌汇编代码转换为能运行于所述目标架构的内嵌汇编代码或编译器内建函数,以得到中间文件,所述源架构和所述目标架构为两个不同的硬件内存序架构;将所述中间文件转换为所述第一中间表示。5.根据权利要求3或4所述的代码处理方法,其特征在于,所述将适用于所述源架构的内嵌汇编代码转换为能运行于所述目标架构的内嵌汇编代码或编译器内建函数,包括:将所述适用于所述源架构的内嵌汇编代码转换为抽象语法树;按照所述抽象语法树中每个分支的语义,将所述每个分支转换为适用于所述目标架构的内嵌汇编代码或编译器内建函数。6.根据权利要求1-5任一项所述的代码处理方法,其特征在于,所述源文件为c/c 源文件。7.根据权利要求3-5任一项所述的代码处理方法,其特征在于,所述源架构为强内存序架构,所述目标架构为弱内存序架构;或者,所述源架构为弱内存序架构,所述目标架构为强内存序架构;或者,所述源架构为强内存序架构,所述目标架构为强内存序架构;或者,所述源架构为弱内存序架构,所述目标架构为弱内存序架构。8.一种硬件内存序架构下的代码处理装置,其特征在于,包括:获取单元,用于获取编译流程中的第一文件,所述第一文件与源文件关联;第一处理单元,用于将所述获取单元获取的第一文件的目标代码中的volatile内存访问代码转换为原子性的atomic内存访问代码,以得到第二文件,所述目标代码为与并发控制相关的内存访问代码;第二处理单元,用于对所述第一处理单元处理得到的第二文件进行编译处理,以得到适用于目标架构的执行文件,所述目标架构为强内存序架构或弱内存序架构。
9.根据权利要求8所述的代码处理装置,其特征在于,所述第一处理单元,还用于删除所述目标代码中单独的内存屏障,所述单独的内存屏障为所述目标代码中单独的一条内嵌汇编指令,且所述单独的一条内嵌汇编指令是内存屏障指令。10.根据权利要求8或9所述的代码处理装置,其特征在于,所述第一文件为包含源代码的源文件,所述源文件包括适用于源架构的内嵌汇编代码,所述第一处理单元,还用于将适用于源架构的内嵌汇编代码转换为能运行于所述目标架构的内嵌汇编代码或编译器内建函数,所述源架构和所述目标架构为两个不同的硬件内存序架构。11.根据权利要求8或9所述的代码处理装置,其特征在于,所述第一文件为第一中间表示,所述第二文件为第二中间表示,所述获取单元用于:获取与源架构对应的所述源文件,所述源文件中包括适用于所述源架构的内嵌汇编代码;将适用于所述源架构的内嵌汇编代码转换为能运行于所述目标架构的内嵌汇编代码或编译器内建函数,以得到中间文件,所述源架构和所述目标架构为两个不同的硬件内存序架构;将所述中间文件转换为所述第一中间表示。12.根据权利要求11所述的代码处理装置,其特征在于,所述获取单元用于:将所述适用于所述源架构的内嵌汇编代码转换为抽象语法树;按照所述抽象语法树中每个分支的语义,将所述每个分支转换为适用于所述目标架构的内嵌汇编代码或编译器内建函数,以得到中间文件。13.一种计算设备,其特征在于,包括一个或多个处理器和存储有计算机程序的计算机可读存储介质;所述计算机程序被所述一个或多个处理器执行时实现如权利要求1-7任一项所述的方法。14.一种芯片系统,其特征在于,包括多个处理器,所述多个处理器被调用用于执行如权利要求1-7任一项所述的方法。15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被一个或多个处理器执行时实现如权利要求1-7任一项所述的方法。16.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序当被一个或多个处理器执行时用于实现如权利要求1-7任一项所述的方法。

技术总结
本申请公开了一种硬件内存序架构下的代码处理方法,应用于计算机系统,尤其适用于在不同的硬件内存序架构下迁移代码的场景。该方法包括获取编译流程中的第一文件,第一文件与源文件关联;将第一文件的目标代码中的volatile内存访问代码转换为atomic内存访问代码,以得到第二文件,目标代码为与并发控制相关的内存访问代码;对第二文件进行编译处理,以得到适用于目标架构的执行文件,目标架构为强内存序架构或弱内存序架构。本申请提供的方案可以使代码迁移后的执行代码与编写代码保持一致,从而减少了代码运行时出现挂死或死锁等非预期行为。死锁等非预期行为。死锁等非预期行为。


技术研发人员:陈更 付明 雷继棠
受保护的技术使用者:华为技术有限公司
技术研发日:2021.08.13
技术公布日:2023/2/17
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献