[发明专利]加快执行时存储器别名使用检查有效
申请号: | 201180073739.X | 申请日: | 2011-09-27 |
公开(公告)号: | CN103827816B | 公开(公告)日: | 2016-11-09 |
发明(设计)人: | C.王;Y.吴 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/45;G06F9/06 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 杨美灵;汤春龙 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 加快 执行 存储器 别名 使用 检查 | ||
1. 一种其中包含有计算机可读代码的非暂时性计算机可读媒体,所述计算机可读代码配置成允许编译器计算机系统响应所述代码的执行而执行以下操作:
接收或检索要在执行处理器上执行的指令序列,其中所述执行处理器包括多个别名寄存器和配置成为了存储器别名使用而检查所述别名寄存器中的条目的电路;
接收或检索所述指令序列后,在所述收到或检索的指令序列上执行一个或更多个优化以优化所述收到或检索的指令序列的执行性能,所述一个或更多个优化包括所述收到或检索的指令序列中多个存储器指令的重新排序;以及
所述优化后,在所述优化的指令序列中插入一个或更多个移动指令以在执行期间在所述别名寄存器间移动一个或更多个条目,以便加快在执行时的别名检查。
2. 如权利要求1所述的非暂时性计算机可读媒体,其中所述计算机可读代码还配置成在所述插入前允许所述编译器系统构建图,所述优化的指令序列表示为所述图的节点,并且所述图的边包括检查边和防检查边;
其中检查边连接表示要求执行时存储器别名使用检查的两个存储器指令的两个节点,并且防检查边连接表示不要求执行时存储器别名使用检查的两个指令的两个节点。
3. 如权利要求2所述的非暂时性计算机可读媒体,其中所述计算机可读代码还配置成在所述插入前允许所述编译器系统执行以下操作:
检测所述图中的一个或更多个环;以及
将一个或更多个另外节点插入所述图中以去除所述一个或更多个环,所述一个或更多个另外节点表示要插入所述优化的指令序列的所述一个或更多个移动指令。
4. 如权利要求3所述的非暂时性计算机可读媒体,其中检测所述图中一个或更多个环和将表示所述一个或更多个移动指令的一个或更多个另外节点插入所述图中包括:
在所述图中为所述优化的指令序列的存储器指令B识别通过来自第二节点A的输入边A→B从表示B的第一节点可到达的节点集S;以及
在表示B的所述第一节点前将表示移动指令的第三节点插入所述图中,其中第二节点A存在于S中。
5. 如权利要求3所述的非暂时性计算机可读媒体,其中检测所述图中一个或更多个环和将表示所述一个或更多个移动指令的一个或更多个另外节点插入所述图中包括:
通过优化前所述指令序列中每个指令X的相对布局T(X),初始化用于所述优化的指令序列的所述指令X的序号指派T(X)。
6. 如权利要求5所述的非暂时性计算机可读媒体,其中检测所述图中一个或更多个环和将表示所述一个或更多个移动指令的一个或更多个另外节点插入所述图中还包括:
在所述优化的指令序列的执行顺序中,对于所述优化的指令序列的每个指令B:
将B标记为已扫描;
对于每个输入边A→B:
如果T(A) < T(B):
不执行任何操作;
否则,如果A尚未扫描:
设置T(A)=T(B)-1;
否则
查找通过来自已扫描的指令的输入边从B可到达的所有指令的集S。
7. 如权利要求6所述的非暂时性计算机可读媒体,其中old_T和delta是变量,以及其中所述计算机可读代码还配置成允许所述编译器系统执行以下操作:
在所述优化的指令序列的执行顺序中,对于所述优化的指令序列的每个指令B:
对于每个输入边A→B:
如果A不在S中:
设置old_T=T(B);
设置T(B)=T(A)+1;
设置delta=T(B)-old_T;
对于S中的每个指令C:
T(C)=T(C)+delta。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180073739.X/1.html,转载请声明来源钻瓜专利网。