[发明专利]一种加速原子指令执行的方法和装置有效
申请号: | 201910804203.9 | 申请日: | 2019-08-28 |
公开(公告)号: | CN110515660B | 公开(公告)日: | 2021-08-06 |
发明(设计)人: | 郑重;王永文;隋兵才;黄立波;孙彩霞;倪晓强;郭维;王俊辉;雷国庆;郭辉 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 谭武艺 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 加速 原子 指令 执行 方法 装置 | ||
1.一种加速原子指令执行的方法,其特征在于实施步骤包括:
1)取原子指令;
2)根据原子指令生成对应的辅助指令,所述辅助指令为Load指令或预取指令,其中Load指令用于从原子指令操作存储区域取出原子指令操作执行前的数据,预取指令用于将原子指令操作存储区域的数据提前预取到处理器核中,并置于可写状态;分别向不同的流水线输出原子指令及其对应的辅助指令;
3)若辅助指令为Load指令,则前瞻执行Load指令读取原子指令需要操作区域的数据,并将结果写往结果总线和原子指令结果队列中,使得其他依赖该指令结果的指令可以提前执行;若辅助指令为预取指令,则执行预取指令提前将数据获取到处理器核中,并置为可写状态;原子指令在提交后执行,若辅助指令为Load指令,则跳转执行步骤4);若辅助指令为预取指令,则跳转执行步骤5);
4)将原子指令的执行结果和原子指令结果队列中的Load指令执行结果进行对比,若执行结果相等,则整个原子指令执行结束;若执行结果不相等,则将原子指令返回结果写往结果总线,并引发从该原子指令开始的流水线清空操作,指令执行结束;
5)直接对执行预取指令得到的数据结果进行原子操作,指令执行结束;
步骤2)中根据原子指令生成对应的辅助指令具体是指:在禁止前瞻缓存中查看是否有该原子指令曾有Load指令前瞻执行错误,如果有则根据原子指令生成对应的辅助指令为预取指令,否则根据原子指令生成对应的辅助指令为Load指令;步骤4)中引发从该原子指令开始的流水线清空操作时还包括通过禁止前瞻缓存记录该原子指令的前瞻执行错误的步骤。
2.根据权利要求1所述的加速原子指令执行的方法,其特征在于,步骤2)中分别向不同的流水线输出原子指令及其对应的辅助指令时,针对Load指令、预取指令两种辅助指令提交至相同或者不同的流水线。
3.根据权利要求1所述的加速原子指令执行的方法,其特征在于,步骤3)中原子指令在提交后执行的详细步骤包括:将原子指令发射到流水线中,提交原子指令,获取数据的写权限,根据原子指令的操作对数据进行操作,将操作后的数据写回存储区域,将原子指令操作前存储区域的数据作为原子指令执行的结果。
4.根据权利要求1所述的加速原子指令执行的方法,其特征在于,步骤3)中前瞻执行Load指令的详细步骤包括:将Load指令发射到流水线中,数据获取,写回结果到结果总线,且Load指令不含提交处理过程。
5.根据权利要求1所述的加速原子指令执行的方法,其特征在于,步骤3)中执行预取指令的详细步骤包括:将预取指令发射到流水线中,数据获取,预取指令提交,且预取指令并不含写结果总线的动作,只是将数据从下一级存储中读取并放到处理器核中。
6.一种加速原子指令执行的装置,其特征在于,该装置被编程以执行权利要求1~5中任意一项所述加速原子指令执行的方法的步骤。
7.一种加速原子指令执行的装置,其特征在于,包括:
取指单元,用于取原子指令;
原子指令拆分单元,用于根据原子指令生成对应的辅助指令,所述辅助指令为Load指令或预取指令,其中Load指令用于从原子指令操作存储区域取出原子指令操作执行前的数据,预取指令用于将原子指令操作存储区域的数据提前预取到处理器核中,并置于可写状态;分别向不同的流水线输出原子指令及其对应的辅助指令;
原子指令结果队列,用于记录前瞻执行Load指令的执行结果;
Load/预取流水线,用于执行辅助指令,若辅助指令为Load指令,则前瞻执行Load指令读取原子指令需要操作区域的数据,并将结果写往结果总线和原子指令结果队列中,使得其他依赖该指令结果的指令可以提前执行;若辅助指令为预取指令,则执行预取指令提前将数据获取到处理器核中,并置为可写状态;
原子指令流水线,用于执行原子指令,原子指令在提交后执行,若辅助指令为Load指令,则跳转执行原子指令结果检查单元;若辅助指令为预取指令,则直接对执行预取指令得到的数据结果进行原子操作,指令执行结束;
原子指令结果检查单元,用于将原子指令的执行结果和原子指令结果队列中的Load指令执行结果进行对比,若执行结果相等,则整个原子指令执行结束;若执行结果不相等,则将原子指令返回结果写往结果总线,引发从该原子指令开始的流水线清空操作,指令执行结束;
所述原子指令拆分单元根据原子指令生成对应的辅助指令具体是指:在禁止前瞻缓存中查看是否有该原子指令曾有Load指令前瞻执行错误,如果有则根据原子指令生成对应的辅助指令为预取指令,否则根据原子指令生成对应的辅助指令为Load指令;所述原子指令结果检查单元引发从该原子指令开始的流水线清空操作时还包括通过禁止前瞻缓存记录该原子指令的前瞻执行错误的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910804203.9/1.html,转载请声明来源钻瓜专利网。