[发明专利]利用超标量流水线执行程序的方法、装置、系统及介质在审
申请号: | 202010565522.1 | 申请日: | 2020-06-19 |
公开(公告)号: | CN111722876A | 公开(公告)日: | 2020-09-29 |
发明(设计)人: | 于杰 | 申请(专利权)人: | 于杰 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 陈晓敏 |
地址: | 250300 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 标量 流水线 执行 程序 方法 装置 系统 介质 | ||
本公开涉及一种利用超标量流水线执行程序的方法、装置、系统及介质,包括,读取程序中待执行的多条目标指令;按照预设的规则对目标指令进行重排,并通过超标量流水线方式设置多个模块单元,每个模块单元能够独立完成相应的目标指令;利用超标量流水线的方式发射目标指令,以执行程序;其中,若相邻两条目标指令之间存在运算结果的依存关系:对目标指令进行重排时,在具有依存关系的两条目标指令之间加入无关语句,以填充空语句的运算周期。
技术领域
本公开属于计算机程序技术领域,具体涉及一种利用超标量流水线执行程序的方法、装置、系统及介质。
背景技术
CPU完成一条指令,多分为五步,分别为——取指令(IF,Instruction fetch);译码(ID,Instruction decode);取操作数(OF,Operand fetch);执行(EX,Instructionexecution);写回(WB,Write back)。
流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。流水线是Intel首次在486芯片中开始使用的。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即取指令、译码、执行、写回结果,浮点流水又分为八级流水。
超标量(superscalar)试图在一个周期取出多条指令并行执行,是通过内置多条流水线来同时执行多个处理,其实质是以空间换取时间。超标量流水线,在不考虑CPU乱序发射的情况下,某个时刻有多条不同类型的指令在各个步骤中执行相应操作,如下表中时刻5,在进行指令1的写回、指令2的执行、指令3的取操作数、指令4的译码、指令5的取指令。这样从时刻5开始每一个时刻都有一条指令写回。
超标量流水线中是将现有的流水线技术与超标量技术相结合的CPU执行程序的技术。
发明人了解到,在利用超标量流水线技术执行程序的过程中,如后一条指令需要前一条指令的运算结果,则两条指令不一定能连续发射,此时后一条指令与前一条指令之间也会有停顿。这种停顿降低了CPU的效率。
发明内容
本公开的目的是提供超标量流水线执行程序的方法、装置、系统及介质,能够至少解决上述技术问题之一。
为实现上述目的,本公开的第一方面提供一种利用超标量流水线执行程序的方法,包括以下步骤:
读取程序中待执行的多条目标指令;
按照预设的规则对目标指令进行重排,并通过超标量流水线方式设置多个模块单元,每个模块单元能够独立完成相应的目标指令;
利用超标量流水线的方式发射目标指令,以执行程序;
其中,若相邻两条目标指令之间存在运算结果的依存关系且无法连续发射:对目标指令进行重排时,在具有依存关系的两条目标指令之间加入无关语句,以填充空语句的运算周期。
两个目标指令之间存在运算结果的依存关系且无法连续发射指的是:后一条目标指令需要读取前一条目标指令的运算结果,且无法通过数据旁路的方法实现连续发射。
本公开的第二方面提供一种利用超标量流水线执行程序的装置,包括:
读取模块,用于读取存储模块中的目标指令;
重排模块,用于重排目标指令,以调节目标指令的发射顺序;
执行模块,用于执行重排模块发出的目标指令,以实现程序的执行。所述执行模块中的模块单元按照超标量流水线方式布置。
本公开的第三方面提供一种利用超标量流水线执行程序的系统,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于于杰,未经于杰许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010565522.1/2.html,转载请声明来源钻瓜专利网。