[发明专利]一种软硬件协同预取的方法及装置有效
申请号: | 201380064939.8 | 申请日: | 2013-12-27 |
公开(公告)号: | CN104854560B | 公开(公告)日: | 2018-10-19 |
发明(设计)人: | 叶寒栋;胡子昂 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/0862 | 分类号: | G06F12/0862;G06F9/30;G06F9/345;G06F9/38 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软硬件 协同 | ||
1.一种处理器,其特征在于,包括:编译器和预取控制寄存器;其中,
所述编译器用于:
识别程序中的代码段;
分析所述代码段以确定内存访问模式;
如果所述内存访问模式是规则的,
通过在所述代码段前设置所述预取控制寄存器为所述代码段开启硬件预取;以及
通过在所述代码段后重置所述预取控制寄存器关闭所述硬件预取;
所述预取控制寄存器包括第一位和至少一个额外位,所述硬件预取的开启或关闭状态由所述第一位指示,预取步幅由所述至少一个额外位指示。
2.根据权利要求1所述的处理器,其特征在于,所述编译器还用于:
如果所述内存访问模式是规则的,那么为所述硬件预取确定预取步幅。
3.根据权利要求1所述的处理器,其特征在于,所述硬件预取的所述开启状态由所述第一位中的二进制‘1’表示,所述硬件预取的所述关闭状态由所述第一位中的二进制‘0’表示。
4.根据权利要求2所述的处理器,其特征在于,所述代码段包括至少一次循环迭代。
5.根据权利要求1所述的处理器,其特征在于,所述编译器还用于:
将所述代码段转换为可执行代码;以及
执行所述可执行代码,其中如果所述内存访问模式是规则的,那么执行所述可执行代码包括在不使用任何预取指令的情况下将数据从内存预取至缓存中。
6.根据权利要求2所述的处理器,其特征在于,所述编译器还用于:
如果所述内存访问模式是不规则的,
那么将至少一个预取指令插入所述代码段中。
7.一种预取方法,其特征在于,包括:
识别程序中的代码段;
分析所述代码段以确定内存访问模式;
如果所述内存访问模式是规则的,
通过在所述代码段前设置预取控制寄存器为所述代码段开启硬件预取;以及
通过在所述代码段后重置所述预取控制寄存器关闭所述硬件预取;
所述预取控制寄存器包括第一位和至少一个额外位,所述硬件预取的开启或关闭状态由所述第一位指示,所述预取步幅由所述至少一个额外位指示。
8.根据权利要求7所述的方法,其特征在于,进一步包括:
如果所述内存访问模式是规则的,
为所述硬件预取确定预取步幅。
9.根据权利要求8所述的方法,其特征在于,所述代码段包括至少一次循环迭代。
10.根据权利要求7所述的方法,其特征在于,还包括:
将所述代码段转换为可执行代码;以及
执行所述可执行代码,其中如果所述内存访问模式是规则的,那么执行所述可执行代码包括:在不使用任何预取指令的情况下将数据从内存预取至缓存中。
11.根据权利要求8所述的方法,其特征在于,还包括:如果所述内存访问模式是不规则的,那么将至少一个预取指令插入所述代码段中。
12.一种预取装置,其特征在于,包括:
用于指示硬件预取状态的控制寄存器,其中所述控制寄存器由编译器控制;
所述编译器用于,确定代码段对应的内存访问模式,如果所述代码段对应的内存访问模式是规则的,则通过在所述代码段前设置所述预取控制寄存器为所述代码段开启硬件预取;以及,在所述代码段后重置所述控制寄存器以关闭所述硬件预取;
所述控制寄存器包括第一位和至少一个额外位,硬件预取的开启状态和关闭状态由所述第一位表示,所述预取步幅由所述至少一个额外位表示。
13.根据权利要求12所述的预取装置,其特征在于,所述开启状态由所述第一位中的二进制‘1’表示,所述关闭状态由所述第一位中的二进制‘0’表示。
14.根据权利要求12所述的预取装置,其特征在于,硬件预取的所述状态对应于程序中的循环,如果硬件预取的所述状态为开启状态,那么所述循环中不存在预取指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380064939.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:视频场景检测
- 下一篇:在方向盘和仪表板上的光基触摸控制件