处理器内指令级流水线控制方法及其系统技术方案

技术编号:4052813 阅读:190 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及处理器内指令级流水线控制方法和系统,方法包括:步骤1,初始化发射序号寄存器和写回序号寄存器初始值相同;步骤2,发射指令时,以发射序号寄存器的值为基础值,按指令在本次发射中的顺序,生成指令的发射序号,并在指令中携带所述发射序号;步骤3,指令发射完成后,更新发射序号寄存器的值;步骤4,指令进入功能部件被执行时,指令的发射序号保持不变;步骤5,写回指令时,以写回序号寄存器的值为基础值,依据允许写回寄存器的指令的个数,依序生成写回序号,按写回序号由小到大顺序,将发射序号和写回序号相同的指令的结果写回寄存器;步骤6,指令写回完成后,更新写回序号寄存器的值。本发明专利技术能够减少对硬件资源的消耗。

【技术实现步骤摘要】

本专利技术涉及到处理器的指令按序发射和按序写回机制,涉及到基于指令发射序号 的指令相关性的解决方法。
技术介绍
在现代处理器设计中,处理器的性能提升主要通过提高处理器的主频来实现。然 而,随着片上集成的晶体管的数量越来越多,功耗和散热问题变得更加严重。单纯提高主频 的方法已经很难适应现在处理器的发展。在这种情况下,需要一种简单而有效的处理器流 水线控制方法来提高指令的执行效率。也就是说,用较少的硬件资源实现指令的流水线控 制,从而实现较高的指令吞吐率。流水线技术是指把一条指令的执行分成若干个阶段,每个阶段完成指令的一部分 功能。这样在多条指令同时执行的时候,多条指令的不同阶段可以同时执行。在实际中,指 令和指令之间可能存在着数据依赖关系。比如,一条指令的源操作数是前面一条指令的目 的操作数,这样就产生了写后读相关。流水线的控制方法必须能够检测到这样的相关关系, 然后采用一定方法来保证指令发射和写回时程序的正确性。流水线控制方法涉及到指令相关关系。处理器的硬件逻辑需要检测指令间的相关 关系,并且采取某种办法来解除或避免这样的相关关系。指令相关包括数据相关、控制相关 和结构相关。数据相关一般是指写后读(RAW,ReadAfter Write)相关,写后写(WAW,Write After Write)和读后写(WAR,Write After Read)相关。如果是按序发射的处理器,只存 在RAW和WAW ;如果是乱序发射的处理器还存在WAR的问题。如果存在指令相关,则相关的 指令就不能被发射出去。现有技术中,解决数据相关有两类方法软件方法和硬件方法。软 件方法是编译器通过语义分析,尽可能不产生有相关的指令序列。编译器可以把一个循环 体内部的指令,一次展开多次,并进行合适的调度,这样就可以消除指令间的数据相关和控 制相关。超长指令字(VLIW,Very Long Instruction Word)也是依靠编译器来提高指令级 并行性。在超长指令字处理器上,选择同时发射的多条指令和相关性分析都是由编译器完 成的。因此,这可以大大简化硬件逻辑。同时发射的指令条数越多,处理器的性能就越高。寄存器重命名也是解决相关的方法。由于编译器可以看到的寄存器的个数是由指 令集所确定的,有时会出现逻辑寄存器不够用的情况,这时就会产生寄存器相关。这时可以 增加物理寄存器堆的个数来解决相关问题。硬件支持的动态指令调度是超标量处理器挖掘指令级并行的重要手段。IBM 360/91的浮点部件设计实现了本领域公知的Tomasulo算法,这为现代超标量处理器的设 计打下了基础。该算法增加了 3种新的机制保留站、公共数据总线(CDB)和寄存器标签。 它的工作机制如下如果存在可用的保留站就把指令发射到保留站中,如果这时源操作数 寄存器的值有效,就可以把指令分派到相应的功能部件。功能部件的结果总线把结果广播 到公共数据总线,保留站中需要该数据的指令将数据从CDB上锁存到本地锁存器。保留站 里每个操作数域有一个标签,如果标签为0,则表示操作数域是真实数据;如果标签不是0,则表示在等待其他已经分派出去的指令结果。指令结果可以旁路到要发射的指令,以提前取得操作数的结果。因为多发射和乱 序发射的原因,有些指令可以同时在结果总线产生结果,这时只有其中一部分指令可以写 入寄存器堆。如果正要发射的指令恰巧需要这些不能马上写回的结果,就会造成发射级的 停顿。因此,使用旁路可以使指令尽早发射。现有技术中,每条指令的执行时间不完全相同,有的指令时间长,有的指令时间 短。如果流水线前面的一条指令是一个长延迟指令,而后面一条指令是短延迟指令,这时为 了保证每条指令的按序提交,每条指令都需要标出自己的整个流水线中的次序信息。如果 不保证这个次序信息,则在后面短延迟的指令产生结果后,就提交结果,这样就不是按序提 交了。
技术实现思路
为解决上述问题,本专利技术提供了处理器内指令级流水线控制方法及其系统,能够 减少对硬件资源的消耗。本专利技术公开了一种处理器内指令级流水线控制方法,包括步骤1,初始化发射序号寄存器和写回序号寄存器为相同初始值;步骤2,在一个时钟周期内发射指令时,对于每条指令,以发射序号寄存器的值为 基础值,按所述指令在本次发射中的顺序,生成指令的发射序号,并在所述指令中携带所述 发射序号;步骤3,在一个时钟周期的指令发射完成后,更新发射序号寄存器的值为发射的最 后一个指令的发射序号加η,η为预设常量;步骤4,指令进入功能部件被执行时,指令的发射序号保持不变;步骤5,在一个时钟周期内写回指令时,以写回序号寄存器的值为基础值,依据允 许写回寄存器的指令的个数,依序生成写回序号,按写回序号由小到大顺序,将发射序号和 写回序号相同的指令的结果写回寄存器;步骤6,在一个时钟周期的指令写回完成后,更新写回序号寄存器的值为写回的最 后一个指令的发射序号加η,η为所述预设常量。所述处理器为多发射处理器,所述步骤2中以发射序号寄存器的值为基础值,按所述指令在本次发射中的顺 序,生成指令的发射序号进一步为步骤21,第一个将被发射的指令的发射序号为所述发射序号寄存器的值,第一个 以后将被发射的指令的发射序号为前一个将被发射的指令的发射序号加1。预设η的值为1,所述步骤3中更新发射序号寄存器的值为发射的最后一个指令的发射序号加η进 一步为,步骤31,将发射序号寄存器的值加本次发射的指令的个数,获得加和,将发射序号 寄存器的值更新为所述加和。一个时钟周期中被写回的指令的个数为一个;所述步骤5进一步为,6步骤41,确定本次的写回序号为写回序号寄存器的值,将发射序号和确定的写回 序号相同的指令的结果写回寄存器。所述处理器每个时钟周期允许多条指令写回;预设η的值为1 ;所述步骤5中以写回序号寄存器的值为基础值,依据允许写回寄存器的指令的个 数,依序生成写回序号进一步为,步骤51,在一个时钟周期内写回指令时,确定第一条写回序号为所述写回序号寄 存器的值,确定第一条以后的写回序号为前一条写回序号加1,直至确定的写回序号的个数 为允许写回寄存器的指令的个数;所述步骤6进一步为,步骤52,在一个时钟周期的指令写回完成后,将写回序号寄存器的值加写回的指 令的个数,获得加和,将写回序号寄存器的值更新为所述加和。本专利技术还公开了一种处理器内指令级流水线控制系统,包括获取指令的指令模 块,对指令译码的译码模块,将译码后指令发射的发射模块,执行发射的指令的功能部件, 以及将执行结果写回的写回模块,发射模块包括发射序号寄存器,写回模块包括写回序号寄存器,发射序号寄存器和写回序号寄存器的初始值相同;发射模块,还用于在一个时钟周期内发射指令时,对于每条指令,以发射序号寄存 器的值为基础值,按所述指令在本次发射中的顺序,生成指令的发射序号,并在所述指令中 携带所述发射序号;在一个时钟周期的指令发射完成后,更新发射序号寄存器的值为发射 的最后一个指令的发射序号加η,η为预设常量;功能部件,还用于在指令进入并被执行时,保存指令的发射序号不变;写回模块,还用于在一个时钟周期内写回指令时,以写回序号寄存器的值为基础 值,依据允许写回寄存器的指令的个数,依序生成写回序号,按写回序号由小到大顺序,将 发射序号和写回序号相同的指令的结果本文档来自技高网
...

【技术保护点】
一种处理器内指令级流水线控制方法,其特征在于,包括:步骤1,初始化发射序号寄存器和写回序号寄存器为相同初始值;步骤2,在一个时钟周期内发射指令时,对于每条指令,以发射序号寄存器的值为基础值,按所述指令在本次发射中的顺序,生成指令的发射序号,并在所述指令中携带所述发射序号;步骤3,在一个时钟周期的指令发射完成后,更新发射序号寄存器的值为发射的最后一个指令的发射序号加n,n为预设常量;步骤4,指令进入功能部件被执行时,指令的发射序号保持不变;步骤5,在一个时钟周期内写回指令时,以写回序号寄存器的值为基础值,依据允许写回寄存器的指令的个数,依序生成写回序号,按写回序号由小到大顺序,将发射序号和写回序号相同的指令的结果写回寄存器;步骤6,在一个时钟周期的指令写回完成后,更新写回序号寄存器的值为写回的最后一个指令的发射序号加n,n为所述预设常量。

【技术特征摘要】

【专利技术属性】
技术研发人员:余磊张浩刘志勇范东睿
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1