[发明专利]指令处理方法及装置有效
申请号: | 201310243040.4 | 申请日: | 2013-06-18 |
公开(公告)号: | CN104238998B | 公开(公告)日: | 2018-01-19 |
发明(设计)人: | 侯锐;郭旭斌;江涛;冯煜晶 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令 处理 方法 装置 | ||
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种指令处理方法及装置。
背景技术
在现有的多硬件线程顺序执行处理器中,顺序执行处理器处理一般指令的过程是:取指、线程选择指令发射、译码、地址产生、访问高速缓存器、比较地址标签、写回,每条指令的运行方式是流水线运行的。当顺序执行处理器遇到一条存储器读取指令(简称:Load指令)时,处理器要访问该Load指令内部的数据高速缓存(Data Cache:简称D-Cache),如果命中,则不会中断处理器流水线的运行,但是如果数据高速缓存缺失(D-Cache miss),则在该指令后面的已经进入流水线执行的其他指令都要被取消掉,即被Flush,发射部件切换其他指令到流水线中。
在典型的流水线设计中,从一条指令的发射到D-Cache比较地址标签阶段需要4到6个时钟周期,若按上述过程处理,在D-Cache miss时本线程Load指令之后的其他指令将被Flush,待下次运行还需重新执行,因此会导致处理器每周期完成的指令数减少,处理器的整体效率不高。
发明内容
本发明实施例提供一种指令处理方法及装置,以提高多硬件线程顺序执行处理器的整体效率和性能。
第一方面,本发明实施例提供一种指令处理方法,包括:
在发射第一指令之前,预判所述第一指令是否会正常运行;
若预判所述第一指令不会正常运行,则切换至其他线程继续发射指令;
若预判所述第一指令会正常运行,则依照原有发射策略发射本线程之后的指令。
在第一方面的第一种可能的实施方式中,所述预判所述第一指令是否会正常运行,包括:
通过计数装置查找所述第一指令的非正常运行次数;
若所述非正常运行次数大于第一阈值,则预判所述第一指令不会正常运行;
若所述非正常运行次数小于第一阈值,则预判所述第一指令会正常运行。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述通过计数装置查找所述第一指令的非正常运行次数之前,包括:
所述计数装置统计所述第一指令的非正常运行次数;
所述计数装置查找所述第一指令的非正常运行次数,包括:
所述计数装置根据所述第一指令的虚拟地址,通过索引得到所述计数装置中存储的所述虚拟地址对应的指令的非正常运行次数。
结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述计数装置统计所述第一指令的非正常运行次数,具体包括:
当指令没有正常运行时,所述计数装置根据所述指令的虚拟地址索引所述计数装置中存储的N个表格,分别对索引出的N个2bits的值通过饱和计数器加1并存储回相应的N个表格中,其中,所述N个表格内的首项是依次排列的。
第二方面,本发明实施例提供一种指令处理方法,包括:
将程序在模拟器中运行,统计不会正常运行的指令的虚拟地址;
在程序代码中将暗示指令加入到所述虚拟地址对应的指令的前面,所述暗示指令用于指示:处理器暂时关闭预测性地执行所述第一指令之后指令的机制,并在发射所述第一指令后切换至其他线程继续发射指令,同时再次开启所述预测性地执行所述第一指令之后指令的机制。
第三方面,本发明实施例提供一种指令处理装置,包括:
预判模块,用于在发射第一指令之前,预判所述第一指令是否会正常运行;
切换模块,用于若预判所述第一指令不会正常运行,则切换至其他线程继续发射指令;
发射模块,用于若预判所述第一指令会正常运行,则依照原有发射策略发射本线程之后的指令。
在第三方面的第一种可能的实施方式中,所述预判模块具体用于:
通过计数装置查找所述第一指令的非正常运行次数;
若所述非正常运行次数大于第一阈值,则预判所述第一指令不会正常运行;
若所述非正常运行次数小于第一阈值,则预判所述第一指令会正常运行。
结合第三方面的第一种可能的实施方式,在第三方面的第二种可能的实施方式中,所述计数装置查找所述第一指令的非正常运行次数之前,包括:
所述计数装置统计所述第一指令的非正常运行次数;
所述计数装置查找所述第一指令的非正常运行次数,包括:
所述计数装置根据所述第一指令的虚拟地址,通过索引得到所述计数装置中存储的所述虚拟地址对应的指令的非正常运行次数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310243040.4/2.html,转载请声明来源钻瓜专利网。