首页> 中国专利> PowerPC向量协处理器译码电路中动态调度方法

PowerPC向量协处理器译码电路中动态调度方法

摘要

一种PowerPC向量协处理器译码电路中动态调度方法,当协处理器接收到一条主处理器发来的指令时,需要在协处理器接口协议规定的时钟周期返回一个确认信号,表明所接收到的指令是不是一条有效的协处理器指令。如果协处理器确认所接收到的指令是一条有效的协处理器指令,则主处理器认为协处理器应该在固定的时钟周期内完成所接收指令的执行工作,并根据协处理器接口协议,在规定的时钟周期将协处理器所需要的有效操作数传输给协处理器。当协处理器所接收指令涉及修改主处理器特殊寄存器的值时,需要在执行结束前完成相应的特殊寄存器值的修改工作。本发明能够将由于协处理器指令之间存在数据相关而对流水线的阻塞降低到最小,提高了协处理器的整体性能。

著录项

  • 公开/公告号CN105302639A

    专利类型发明专利

  • 公开/公告日2016-02-03

    原文格式PDF

  • 申请/专利权人 天津大学;

    申请/专利号CN201510772209.4

  • 发明设计人 郭炜;王捷;魏继增;

    申请日2015-11-12

  • 分类号G06F9/48;

  • 代理机构天津市北洋有限责任专利代理事务所;

  • 代理人杜文茹

  • 地址 300072 天津市南开区卫津路92号

  • 入库时间 2023-12-18 13:57:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-30

    授权

    授权

  • 2016-03-02

    实质审查的生效 IPC(主分类):G06F9/48 申请日:20151112

    实质审查的生效

  • 2016-02-03

    公开

    公开

说明书

技术领域

本发明涉及一种译码电路中动态调度方法。特别是涉及PowerPC向量协处理器译码电路 中动态调度方法。

背景技术

为了提高处理器的性能,流水线技术已经被广泛使用在现代处理器中。然而由于处理器 所执行的指令之间存在数据相关,将会阻塞流水线,显著影响处理器的执行性能。

为了尽可能地降低指令间数据相关对处理器性能的影响,现代处理器普遍采用动态调度 的方法,通过检测指令间的相关性及存在相关性指令的执行情况,动态发射译码后的指令, 使得后译码的指令有可能先于先译码的指令执行。在不影响程序正确性的前提下,尽可能减 少因指令间数据相关对流水线的阻塞。

PowerPC主处理器和协处理器之间通过协处理器接口,以紧耦合流水线的方式进行连接, 协处理器在接收主处理器发来的指令和数据后,需要按照主处理器规定的一整套协处理器接 口协议,在规定的时钟周期内,将主处理器需要的指令译码信息反馈给主处理器,涉及修改 主处理器特殊寄存器的指令需要在规定的时钟周期内完成对相应特殊寄存器的改写,以便后 续指令正确读取相应特殊寄存器的值。

而当协处理器为了降低因指令间数据相关而产生的对流水线的阻塞,而采用了动态调度 方法时,由于指令的动态调度是基于指令间的数据相关性及相关指令的执行情况,当一条指 令与其他指令存在数据相关且相关指令的相关性没有及时解除时,该指令便有可能没有按照 协处理器接口协议,在规定的时钟周期内完成该指令的执行操作,将主处理器需要的相关译 码信息传输给主处理器,或者虽然即时将主处理器需要的译码信息传回,但却没有在规定的 时钟周期内改写需要改写的主处理器中的特殊寄存器,从而影响后续指令的正确执行。

另外,由于部分协处理器指令(如Load类指令)的操作数可能来源于主处理器,当协处 理器指令存在动态调度,而没有按照主处理器的预期执行时,主处理器就可能没有在正确的 时钟周期将协处理器指令所需要的操作数传输给协处理器。

发明内容

本发明所要解决的技术问题是,提供一种能够使得在协处理器满足协处理器接口协议的 前提下对协处理器中所执行的指令进行动态调度,尽可能降低因协处理器中数据相关对流水 线造成阻塞的PowerPC向量协处理器译码电路中动态调度方法。

本发明所采用的技术方案是:PowerPC向量协处理器译码电路中动态调度方法,当协处 理器每接收到一条来自主处理器的指令时,都要进行如下步骤:

1)判断接收到的指令是否是一条有效的协处理器指令,并将判断结果按照主处理器规定 的协处理器接口协议的要求,在规定的时钟周期返回给主处理器;

2)判断当前指令是否涉及修改主处理器特殊寄存器,是进入下一步骤,否则不发送停止 接收新指令信号;

3)判断当前指令是否和指令队列中的其他指令存在输出相关或反相关,是则发送停止接 收新指令信号,否则进入下一步骤。

4)判断译码单元从主处理器接收的上一条指令是否为改写主处理器的特殊寄存器,是则 发送停止接收新指令信号,否则进入下一步骤;

5)判断当前指令操作数是否已经准备好,是则不发送停止接收新指令信号,否则进入下 一步骤;

6)判断当前指令的相关指令是否正在写回或已经写回,是则不发送停止接收新指令信号, 否则发送停止接收新指令信号后返回步骤5)。

步骤1)中,如果判断结果是无效协处理器指令,在协处理器接口协议规定的时钟周期 返回给主处理器一个无效协处理器指令确认信号,表明所接收到的指令不是一条有效的协处 理器指令;如果判断结果是有效协处理器指令,在协处理器接口协议规定的时钟周期返回给 主处理器一个有效协处理器指令确认信号,表明所接收到的指令是一条有效的协处理器指令。

步骤2)中所述的特殊寄存器是主处理器中除通用寄存器以外的寄存器。

步骤3)中所述的当前指令是否和指令队列中的其他指令存在输出相关或反相关,是判 断当前指令的目的寄存器是否等于指令队列中其他指令的源寄存器或目的寄存器。

步骤6)中所述的当前指令的相关指令,是指若当前指令中的一个操作数的源寄存器等 于协处理器的指令队列中一条指令的目的寄存器,则将所述指令队列中源寄存器的编号等于 当前指令目的寄存器编号的指令条目中编号最小的一项设置为当前译码指令的相关指令。

本发明的PowerPC向量协处理器译码电路中动态调度方法,在保证程序正确执行并且满 足协处理器接口协议的基础上,对协处理器中所执行的指令进行动态调度,从而将由于协处 理器指令之间存在数据相关而对流水线的阻塞降低到最小,提高了协处理器的整体性能。

附图说明

图1是本发明PowerPC向量协处理器译码电路中动态调度方法和流程图;

图2是PowerPC协处理器动态调度的一个实例。

具体实施方式

下面结合实施例和附图对本发明的PowerPC向量协处理器译码电路中动态调度方法做出 详细说明。

根据PowerPC向量协处理器接口协议要求,当协处理器接收到一条主处理器发来的指令 时,需要在协处理器接口协议规定的时钟周期返回一个确认信号,表明所接收到的指令是不 是一条有效的协处理器指令。如果协处理器确认所接收到的指令是一条有效的协处理器指令, 则主处理器认为协处理器应该在固定的时钟周期内完成所接收指令的执行工作,并根据协处 理器接口协议,在规定的时钟周期将协处理器所需要的有效操作数传输给协处理器。当协处 理器所接收指令涉及修改主处理器特殊寄存器的值时,需要在执行结束前完成相应的特殊寄 存器值的修改工作。

如图1所示,本发明的PowerPC向量协处理器译码电路中动态调度方法,是当协处理器 每接收到一条来自主处理器的指令时,都要进行如下步骤:

1)判断接收到的指令是否是一条有效的协处理器指令,并将判断结果按照主处理器规定 的协处理器接口协议的要求,在规定的时钟周期返回给主处理器。其中,如果判断结果是无 效协处理器指令,在协处理器接口协议规定的时钟周期返回给主处理器一个无效协处理器指 令确认信号,表明所接收到的指令不是一条有效的协处理器指令;如果判断结果是有效协处 理器指令,在协处理器接口协议规定的时钟周期返回给主处理器一个有效协处理器指令确认 信号,表明所接收到的指令是一条有效的协处理器指令;

2)判断当前指令与指令队列中的其他指令是否存在输出相关或反相关,即判断当前指令 的目的寄存器是否等于指令队列中其他指令的源寄存器或目的寄存器,是则发送停止接收新 指令信号,否则进入下一步骤。

3)判断当前指令是否涉及修改主处理器特殊寄存器,是进入下一步骤,否则不发送停止 接收新指令信号,所述的特殊寄存器是主处理器中除通用寄存器以外的寄存器;

4)判断译码单元从主处理器接收的上一条指令是否-改写主处理器的特殊寄存器,是则 发送停止接收新指令信号,否则进入下一步骤;

5)判断当前指令操作数是否已经准备好,是则不发送停止接收新指令信号,否则进入下 一步骤;

6)判断当前指令的相关指令是否正在写回或已经写回,是则不发送停止接收新指令信号, 否则发送停止接收新指令信号后返回步骤5),直到当前指令的操作数已经准备好或相关指令 已经写回或正在写回时,停止发送停止接收新指令信号。所述的当前指令的相关指令,是指 若当前指令中的一个操作数的源寄存器等于协处理器的指令队列中一条指令的目的寄存器, 则将所述指令队列中源寄存器的编号等于当前指令目的寄存器编号的指令条目中最新的一项 设置为当前译码指令的相关指令。

需要说明的是,停止接收新指令信号的作用在于当停止接收新指令信号为高电平时,表 明协处理器不能接收主处理器发来的新指令,此时,当主处理取指单元接收到一条非主处理 器指令时,应停滞流水线,等待向量协处理器对所述非主处理器指令进行译码,以判断这条 非主处理器指令是否是一条有效的协处理器指令。该信号的具体信号名由协处理器接口协议 规定,可能因协处理器接口协议的不同而不同。

下面结合图2说明本发明工作过程。

如图2向量协处理器100所示,所述向量协处理器100包括一个译码单元110、一个指 令队列130、一个通用寄存器堆140、若干分布式保留站150、若干功能执行单元160、以及 专用数据寄存器堆170和数据总线180,其中:

译码单元110用来判断一条指令是否是有效的协处理器指令、该指令的指令类型、源、 目的寄存器地址和正在译码指令与指令队列130中其他指令的数据相关性。如果经由译码单 元110判断一条来自主处理器的指令是有效的协处理器指令,则根据协处理器接口协议,由 译码单元110发给主处理器一个协处理器指令有效信号,否则,由译码单元110发给主处理 器一个协处理器指令无效信号。

如果主处理器每个时钟周期最多向协处理器发射一条指令,则由译码单元110译码后的 指令将写入指令队列130的空余项中编号最小的一项,如果主处理器每个时钟周期最多向协 处理器发射多条指令,则由译码单元110译码后的第一条指令将写入指令队列130的空余项 中编号最小的一项,由译码单元110译码后的第二条指令将写入指令队列130的空余项中编 号次小的一项,以此类推。如果指令队列130没有空余项,则向主处理器发送停止接收新指 令信号,停滞主处理器流水线,等待指令队列释放资源后再写入译码后的指令。此外,译码 单元110还将判断当前译码指令和指令队列130中所存放其他指令的数据相关性,若当前指 令某操作数的源寄存器等于指令队列130中某条指令的目的寄存器,则将目的寄存器等于当 前指令操作数源寄存器的指令队列130条目中最新的一项设置为当前译码指令的相关指令, 并记录相关指令所在的指令队列号。由译码单元110向主处理器发送停止接收新指令信号, 直到该指令的操作数全部准备好,停止发送停止接收新指令信号。

所述最新指令是指满足上述条件指令队列130中的全部指令中,编号最大的一项。

指令队列130用来存放译码后指令120的状态和控制信号,包括源、目的寄存器地址, 与所存放指令存在数据相关的相关指令的指令队列130编号,当前指令和相关指令的执行状 态。

指令的执行状态反映了指令队列130中各项指令所处的流水线级,包括空闲、指令队列 级、保留站级、执行单元级。

当指令队列130中某项指令的状态非空闲时,该指令为有效指令,该指令队列项不可写 入新的指令,当指令状态处于空闲时,该项中指令为无效指令,该指令队列项可以写入新的 指令。

当译码后的指令存放到指令队列130中而未发射到保留站150之前,该指令处于指令队 列级,之后,指令队列130会检测该指令全部源操作数的准备情况,待该指令的全部源操作 数都已准备好或正在写回时,将该指令发射到保留站150中,需要注意的是,将一条指令由 指令队列130发射到保留站150中并不会清空指令队列130的相应项,直到一条指令的执行 结果写回到通用寄存器堆140中之前,这条指令的状态和控制信号会一直存放在指令队列130 中。

需要说明的是,指令队列130的条目应该根据实际需要而定。当协处理器所执行指令间 存在大量数据相关时,为了减少由于指令队列130条目不足而产生的对流水线的停滞,则应 适当增加指令队列的条目,而当协处理器所执行指令间的数据相关不明显时,为了降低协处 理器的面积开销,则应适当降低指令队列130的条目。一般情况下,根据协处理器所执行程 序的不同,可以将指令队列130的条目设置为2到8条。

通用寄存器堆140用来存放向量协处理器100所执行指令的源、目的操作数,共包含32 个128位寄存器。当保留站150在读取操作数时,根据相关指令的执行情况,可以从数据总 线180或通用寄存器堆140来读取,若指令队列130中存在保留站150中指令的相关指令, 则从数据总线180中读取操作数,否则从通用寄存器堆140中读取操作数。

分布式保留站150起到缓存指令、读取操作数的作用,当一条指令由指令队列130发到 保留站150时,这条指令的源操作数均已准备好或正在写回。保留站150会根据指令源操作 数所处的位置,从通用寄存器堆140或数据总线180中读取操作数。

值得注意的是,虽然图2所示实施例中有三个保留站,但在具体实施中,保留站150的 数目不局限于三个,而可以根据功能单元160的划分情况而定。

功能执行单元160接收保留站140发来的指令控制信号和源操作数,执行若干个周期, 并将执行结果通过数据总线180写回到通用寄存器堆140。

专用数据寄存器170保存来自主处理器的操作数,专用数据寄存器170的条目等同于指 令队列130的条目,每个专用数据寄存器170条目对应一个指令队列130条目。

本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅 仅为了描述,不代表实施例的优劣。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之 内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号