[发明专利]缓解假共享问题的编译器支持方法在审

专利信息
申请号: 202110348948.6 申请日: 2021-03-31
公开(公告)号: CN114217937A 公开(公告)日: 2022-03-22
发明(设计)人: 王飞;杨涛;吴伟;钱宏;管茂林;朱琪;樊行健 申请(专利权)人: 无锡江南计算技术研究所
主分类号: G06F9/50 分类号: G06F9/50;G06F8/41
代理公司: 苏州创元专利商标事务所有限公司 32103 代理人: 王健
地址: 214038 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 缓解 共享 问题 编译器 支持 方法
【说明书】:

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

技术领域

本发明涉及一种缓解假共享问题的编译器支持方法,属于高性能计算技术领域。

背景技术

计算机系统中为了解决主存与CPU运行速度的差距,在CPU与主存之间添加了一级或者多级高速缓冲存储器(Cache),Cache Line 是Cache与主存之间传输数据的最小单元。当一个Cache Line被从主存里拷入Cache里,Cache会在Cache里为该Cache Line创建一个条目,这个条目既包含了内存数据,又包含了这行数据在内存中的位置信息。

Cache行是CPU缓存的基本单位,当我们访问一个数据时,其所在的整个Cache行都会被缓存进Cache。在多核或众核芯片中,每个核可能都有自己的Cache,因此同一个变量或者同一个Cache行的变量可能存在于多个Cache中。在多个线程修改自己的变量时,表面上是不同的变量,但是实际上却处于同一个Cache行,若Cache不保证一致性就会带来假共享问题。

在多核多线程并发场景下,多线程要操作的不同变量处于同一个Cache行,就会出现假共享问题。当某个线程修改缓存中的数据并写回主存后,其他线程将自己Cache写回主存时候就要保证只有自己确实修改过的才写回,以避免新数据覆盖旧数据,一定程度降低程序效率。

GCC提供了__cacheline_aligned,但是该接口仅进行了首地址的Cache行对界,使用了此接口的变量还是有可能与普通变量处于同一个Cache行,导致假共享。

发明内容

本发明的目的是提供一种缓解假共享问题的编译器支持方法,解决某些Cache结构不保证横向一致性带来的假共享问题。

为达到上述目的,本发明采用的技术方案是:提供一种缓解假共享问题的编译器支持方法,包括以下步骤:

基于配置的__attribute__((cacheline))接口,该__attribute__((cacheline))接口用于可能存在假共享的变量;

包括以下步骤:

S1、用户在程序中,对多线程Cache之间可能存在假共享的变量声明分别使用__attribute__((cacheline))接口;

S2、编译器将声明树节点的基类tree_decl_common结构体中的标志位cacheline置为1,将align设置为Cache Line大小,并将tree_decl_common的基类tree_base结构体中的user_align置为1;

S3、编译器在生成变量的汇编码时,对tree_decl_common.cacheline标志进行判定,若该标志为0,则跳过,若为1,则将变量的size进行向上取整到Cache Line的倍数;

S4、最后生成目标码时,依据变量的size大小分配空间,依据align大小分配地址,使得使用该接口的变量分别处于不同Cache Line;

S5、将Cache中的数据写回主存时,整行写回。

由于上述技术方案的运用,本发明与现有技术相比具有下列优点:

本发明设计一个__attribute__((cacheline))用户接口,可分别用于不同的数据声明,在编译器生成变量汇编码的时候,对其起始位置Cache行对界,并对数据进行垫塞,增大间隔,使其处于不同的Cache行,减少可能存在的假共享问题,提升主存写回效率。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110348948.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top