[发明专利]多线程条件下CPU高速缓存行失效的处理方法及装置有效
申请号: | 201510809800.2 | 申请日: | 2015-11-19 |
公开(公告)号: | CN105242978B | 公开(公告)日: | 2019-01-08 |
发明(设计)人: | 贾宏超 | 申请(专利权)人: | 东软集团股份有限公司 |
主分类号: | G06F11/00 | 分类号: | G06F11/00 |
代理公司: | 北京英创嘉友知识产权代理事务所(普通合伙) 11447 | 代理人: | 赵杰;南毅宁 |
地址: | 110179 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多线程 条件下 cpu 高速缓存 失效 处理 方法 装置 | ||
1.一种多线程条件下CPU高速缓存行失效的处理方法,其特征在于,所述方法包括:
判断第一字段和第二字段之间是否需要隔离,所述第一字段用volatile关键字修饰;
如果需要隔离,在所述第一字段和所述第二字段之间加入填充字段,所述填充字段用于使所述第一字段和所述第二字段位于不同缓存行;
其中,所述判断第一字段和第二字段之间是否需要隔离,包括:
根据Java虚拟机按照变量的类型进行重排列的规则,确定位于所述第一字段和所述第二字段之间的字段数量,所述第一字段、所述第二字段和所述填充字段三者具有相同类型;
根据所述字段数量及对应类型字段所占比特位,计算获得所述第一字段和所述第二字段的间隔距离;
利用所述间隔距离和处理器的缓存行大小,判断所述第一字段和所述第二字段是否位于同一缓存行;
如果位于同一缓存行,判定所述第一字段和所述第二字段之间需要隔离。
2.根据权利要求1所述的方法,其特征在于,获得所述处理器的缓存行大小的方式为:
利用Java本地接口JNI调用C语言函数,并使用所述C语言函数调用CPUID汇编指令,获得所述处理器的缓存行大小。
3.根据权利要求1或2所述的方法,其特征在于,获得所述间隔距离之前,所述方法还包括:
判断所述第一字段和所述第二字段是否被标识为需要隔离;
如果是,再执行获得所述间隔距离的步骤。
4.根据权利要求1所述的方法,其特征在于,在所述第一字段和所述第二字段之间加入填充字段,包括:
修改Java源文件,加入所述填充字段。
5.根据权利要求1所述的方法,其特征在于,在所述第一字段和所述第二字段之间加入填充字段,包括:
对Java源文件编译生成的class文件进行字节码增强,加入所述填充字段。
6.根据权利要求1所述的方法,其特征在于,在所述第一字段和所述第二字段之间加入填充字段之后,所述方法还包括:
添加对所述填充字段的调用方法。
7.一种多线程条件下CPU高速缓存行失效的处理装置,其特征在于,所述装置包括:
隔离判断单元,用于判断第一字段和第二字段之间是否需要隔离,所述第一字段用volatile关键字修饰;
字段加入单元,用于在所述隔离判断单元判定所述第一字段和所述第二字段之间需要隔离时,在所述第一字段和所述第二字段之间加入填充字段,所述填充字段用于使所述第一字段和所述第二字段位于不同缓存行;
其中,所述隔离判断单元包括:
间隔距离获得单元,用于根据Java虚拟机按照变量的类型进行重排列的规则,确定位于所述第一字段和所述第二字段之间的字段数量,所述第一字段、所述第二字段和所述填充字段三者具有相同类型;及,根据所述字段数量及对应类型字段所占比特位,计算获得所述第一字段和所述第二字段的间隔距离;
隔离判断子单元,用于利用所述间隔距离和处理器的缓存行大小,判断所述第一字段和所述第二字段是否位于同一缓存行;如果位于同一缓存行,判定所述第一字段和所述第二字段之间需要隔离。
8.根据权利要求7所述的装置,其特征在于,所述隔离判断单元还包括:
缓存行大小获得单元,用于利用Java本地接口JNI调用C语言函数,并使用所述C语言函数调用CPUID汇编指令,获得所述处理器的缓存行大小。
9.根据权利要求7或8所述的装置,其特征在于,所述隔离判断单元还包括:
标识判断单元,用于在所述间隔距离获得单元获得所述间隔距离之前,判断所述第一字段和所述第二字段是否被标识为需要隔离;如果是,再通知所述间隔距离获得单元获得所述间隔距离。
10.根据权利要求7所述的装置,其特征在于,
所述字段加入单元,具体用于修改Java源文件,在所述第一字段和所述第二字段之间加入所述填充字段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东软集团股份有限公司,未经东软集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510809800.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:槽距测量仪
- 下一篇:油气管道法兰连接绝缘螺栓