[发明专利]指令处理方法及装置有效
申请号: | 201310243040.4 | 申请日: | 2013-06-18 |
公开(公告)号: | CN104238998B | 公开(公告)日: | 2018-01-19 |
发明(设计)人: | 侯锐;郭旭斌;江涛;冯煜晶 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令 处理 方法 装置 | ||
1.一种指令处理方法,其特征在于,包括:
将程序在模拟器中运行,确定出不会正常运行的指令,统计不会正常运行的指令的虚拟地址;
在程序代码中将暗示指令加入到所述虚拟地址对应的第一指令的前面,所述暗示指令用于指示:处理器暂时关闭预测性地执行所述第一指令之后指令的机制,并在发射所述第一指令后切换至其他线程继续发射指令,同时再次开启所述预测性地执行所述第一指令之后指令的机制;
其中,所述确定出不会正常运行的指令,包括:
统计指令的非正常运行次数;
根据指令的虚拟地址,通过索引得到存储器中存储的所述虚拟地址对应的指令的非正常运行次数;
若所述非正常运行次数大于第一阈值,则预判所述指令不会正常运行;若所述非正常运行次数小于第一阈值,则预判所述指令会正常运行;
其中,所述统计指令的非正常运行次数,包括:
当所述指令没有正常运行时,根据所述指令的虚拟地址索引存储器中存储的N个表格,分别对索引出的N个2bits的值通过饱和计数器加1并存储回相应的N个表格中,其中,所述N个表格内的首项是依次排列的。
2.一种指令处理装置,其特征在于,包括:
统计模块,用于将程序在模拟器中运行,确定出不会正常运行的指令,统计不会正常运行的指令的虚拟地址;
处理模块,用于在程序代码中将暗示指令加入到所述虚拟地址对应的第一指令的前面,所述暗示指令用于指示:处理器暂时关闭预测性地执行所述第一指令之后指令的机制,并在发射所述第一指令后切换至其他线程继续发射指令,同时再次开启所述预测性地执行所述第一指令之后指令的机制;
其中,所述统计模块具体用于:
统计指令的非正常运行次数;
根据指令的虚拟地址,通过索引得到存储器中存储的所述虚拟地址对应的指令的非正常运行次数;
若所述非正常运行次数大于第一阈值,则预判所述指令不会正常运行;若所述非正常运行次数小于第一阈值,则预判所述指令会正常运行;
其中,所述统计模块具体用于:
当所述指令没有正常运行时,根据所述指令的虚拟地址索引存储器中存储的N个表格,分别对索引出的N个2bits的值通过饱和计数器加1并存储回相应的N个表格中,其中,所述N个表格内的首项是依次排列的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310243040.4/1.html,转载请声明来源钻瓜专利网。