缓解假共享问题的编译器支持方法

    公开(公告)号:CN114217937A

    公开(公告)日:2022-03-22

    申请号:CN202110348948.6

    申请日:2021-03-31

    Abstract: 本发明公开一种缓解假共享问题的编译器支持方法,包括以下步骤:S1、用户在程序中,对多线程Cache之间可能存在假共享的变量声明分别使用__attribute__((cacheline))接口;S2、编译器将声明树节点的基类tree_decl_common结构体中的标志位cacheline置为1,将align设置为Cache Line大小,并将tree_decl_common的基类tree_base结构体中的user_align置为1。本发明解决了某些Cache结构不保证横向一致性带来的假共享问题。

    面向主从融合架构处理器的指令调度优化装置和方法

    公开(公告)号:CN112527393A

    公开(公告)日:2021-03-19

    申请号:CN201910879804.6

    申请日:2019-09-18

    Abstract: 本发明公开一种面向主从融合架构处理器的指令调度优化装置和方法,基于以下模块:指令调度模块,用于接收含有目标机信息和指令序列的代码,还用于根据指令模板选择器提供的指令模板,对接收到的指令序列进行调度;指令模板选择器,用于接收代码中的目标机信息,并根据目标机信息,选择主核指令模板或者从核指令模板,将选择好的指令模板发送给指令调度模块;主核指令模板,用于描述主核指令的指令类型、指令的目标信息、可以在哪条流水线上执行该指令以及指令延迟信息;配置于编译器后端的从核指令模板。本发明进一步降低流水线阻塞发生的概率,优化处理器的指令调度过程,提高指令调度的准确性以及指令调度的性能指标,实现指令调度过程的优化。

    异构平台下宽度非对称向量兼容性的编译处理方法和装置

    公开(公告)号:CN112445488A

    公开(公告)日:2021-03-05

    申请号:CN201910831166.0

    申请日:2019-09-04

    Abstract: 本发明公开一种异构平台下宽度非对称向量兼容性的编译处理方法和装置,包括以下模块:编译器预处理模块,用于对非对称异构向量的统一声明,还用于通过编译选项来控制对应的数据和接口调用的target预处理,转换为对应平台自身适应的接口;编译器前端中端分析模块,用于根据接口的调用方式,进行内部中间表示的转换或者向量降级,生成对应平台的中间表示;编译器后端拆分模块,用于根据中间表示,生成对应的后端指令。本发明实现主从核编译器向量开发的继承性、减少用户程序异构编码限制,无需去关注异构平台对向量支持的差异性。

    针对结构体成员的重组优化方法

    公开(公告)号:CN112445479A

    公开(公告)日:2021-03-05

    申请号:CN201910794733.X

    申请日:2019-08-27

    Abstract: 本发明公开一种针对结构体成员的重组优化方法,包括以下步骤:S11、编译器扫描目标程序中的每个基本块,构建待优化的结构体类型集合;S12、对程序中所有结构体的引用进行分析,从待优化的结构体类型集合中移除不满足优化条件的结构体类型;S13、根据结构体定义、声明以及引用的信息对满足优化条件的结构体的成员进行重组,并将结果记录在sbitmap类型的变量中;S14、根据步骤S13记录的待重组的结构体成员的信息,创建多个新结构体的定义;S15、遍历目标程序的所有基本块,将目标程序中对旧结构体的引用替换为对新结构体的引用,对结构体声明及引用信息进行更新。本发明解决了现有的数据变换技术无法针对结构体成员进行数据重组优化的问题,达到了进一步提升数据Cache性能的效果。

    一种无横向一致性的众核精简Cache协议实现方法

    公开(公告)号:CN114217809B

    公开(公告)日:2024-04-30

    申请号:CN202110398338.7

    申请日:2021-04-14

    Abstract: 本发明公开一种无横向一致性的众核精简Cache协议实现方法,包括以下步骤:S1、对Cache行内数据更新情况进行分析,标记出被更新的数据;S2、如果Cache行内所有数据都没有被更新,或者Cache行内所有数据都被更新,跳转至S5,如果Cache行内只有部分数据被更新,跳转至S3;S3、当一个Cache行内的数据只有部分内容需要写回时,其他位掩码置0;S4、根据掩码粒度大小与置位情况,更新主存中对应掩码位为1的数据;S5、直接对Cache行进行写回操作。本发明有效解决共享主存Cache结构的假共享问题,还可以提高写回效率、有效降低处理器在Cache数据管理方面的硬件开销。

    异构平台下宽度非对称向量兼容性的编译处理方法和装置

    公开(公告)号:CN112445488B

    公开(公告)日:2022-11-15

    申请号:CN201910831166.0

    申请日:2019-09-04

    Abstract: 本发明公开一种异构平台下宽度非对称向量兼容性的编译处理方法和装置,包括以下模块:编译器预处理模块,用于对非对称异构向量的统一声明,还用于通过编译选项来控制对应的数据和接口调用的target预处理,转换为对应平台自身适应的接口;编译器前端中端分析模块,用于根据接口的调用方式,进行内部中间表示的转换或者向量降级,生成对应平台的中间表示;编译器后端拆分模块,用于根据中间表示,生成对应的后端指令。本发明实现主从核编译器向量开发的继承性、减少用户程序异构编码限制,无需去关注异构平台对向量支持的差异性。

    基于编译实现的可扩展向量掩码功能的方法和装置

    公开(公告)号:CN112445485B

    公开(公告)日:2022-11-15

    申请号:CN201910799256.6

    申请日:2019-08-28

    Abstract: 本发明公开一种基于编译实现的可扩展向量掩码功能的方法和装置,包括以下步骤:S1、编译器输入用户程序,根据目标平台翻译出正确的掩码向量接口;S2、编译器前端模块对S1中获得的掩码向量接口进行关键字识别,选择对应平台的中端处理入口;S3、编译器中端模块根据目标平台的指令结构对掩码向量接口进行分析,选择合适的处理流程;S4、编译器后端模块将编译器中端模块生成的中间生成代码转换生成最终指令;S5、编译器根据向量宽度的增加,完成对平台向量宽度的识别,选择合适宽度的向量转换和掩码生成。本发明降低了重新开发代码的工作量和复杂度及用户移植的复杂度,更进一步的挖掘了课题的指令级并行性能。

    低功耗的寄存器分配编译优化方法

    公开(公告)号:CN112445481B

    公开(公告)日:2022-07-12

    申请号:CN201910794940.5

    申请日:2019-08-27

    Abstract: 本发明公开一种低功耗的寄存器分配编译优化方法,包括以下步骤:S1、分析程序的热点函数和循环段;S2、统计热点代码段中依赖关系语句执行频率;S3、登记存在依赖关系语句中临时变量的生存周期;S4、关闭针对该依赖关系语句性能相关的指令调度优化,防止因为考虑流水线性能而进行的指令调度;S5、对每个依赖关系语句中的临时变量进行基本块内的生存周期分析;S6、对每个依赖关系语句中的临时变量进行跨基本块的生存周期分析;S7、遍历所有基本块,对标记为可低功耗优化的临时变量追踪其定义和使用点;S8、进行W_set指令循环外提优化。本发明在一定程度上优化系统运行功耗,且软硬件开发成本低,对降低功耗的方法简单直接。

    条件转移预测方向变换的编译优化方法

    公开(公告)号:CN112540764A

    公开(公告)日:2021-03-23

    申请号:CN201910897632.5

    申请日:2019-09-23

    Abstract: 本发明公开一种条件转移预测方向变换的编译优化方法,当发现因为频繁的分支预测失败带来了严重的性能损失时,执行以下步骤:S1、对源程序重新进行编译,并在编译时添加转移预测方向变换的编译优化选项;S2、对源程序进行控制流分析,并将源程序划分为若干个基本块,同时识别出包含在源程序的最内层循环的条件分支语句,并将其划分为几个独立的基本块,将第一个基本块打上分支预测失败的特殊属性;S3、在具有分支预测失败特殊属性的基本块的起始位置插入一条转移预测器方向切换指令;S4、编译器继续进行剩余的编译过程,产生目标代码。本发明可以避免嵌汇编方式带来的性能损失和潜在的错误问题,还可以提高条件转移预测准确率,达到降低性能损失的目的。

    针对片上存储器重用的链接时地址分配方法

    公开(公告)号:CN112445724A

    公开(公告)日:2021-03-05

    申请号:CN201910805599.9

    申请日:2019-08-29

    Abstract: 本发明公开一种针对片上存储器重用的链接时地址分配方法,包括以下步骤:S1、在编译器上构建片上存储器的重用段类型,生成片上存储器的访存模式;S2、在执行S1中操作的同时,对链接脚本进行配置;S31、链接器对S2中所述的链接脚本进行信息扫描,进入链接器的重用处理函数;S32、从二进制文件格式描述符文件中获取段信息;S33、循环处理S32中获取的段信息,识别并找出重用段;S34、解析出S12中所述的重用段属性的数据结构中所带的重用段名字,对满足同一个重用段名字的段分配相同的虚拟内存地址;S35、从S32中获取的段信息中找出最大的段,用作该重用段空间分配时的空间大小。本发明通过链接时地址分配方法实现空间重用,有效提高片上存储器的空间利用率、提升程序性能。

Patent Agency Ranking