一种指令执行方法以及顺序处理器的制造方法_3

文档序号:9687242阅读:来源:国知局
融合出一个指令组合后,步骤308中即可W发射该融合出的指令组合,而步骤302至步骤 307此时还在继续融合出更多的指令组合,依次对融合出的指令组合执行步骤308。
[011引本发明实施例中,当顺序处理器判断该待融合指令的执行拍数大于当前指令组合 的剩余拍数时,更新该当前指令组合后,先判断待融合指令的执行拍数是否大于所述最大 执行拍数,当大于最大执行拍数时,直接将该待融合指令单独加入更新后的当前指令组合, 再次更新更新后的当前指令组合,当不大于最大执行拍数时,才触发对待融合指令的再次 判断,送样使长延迟指令单独成组,保证了对指令融合的顺序进行,提高了处理器的处理效 率。
[0119] 上面实施例中,当顺序处理器判断该待融合指令的执行拍数不大于当前指令组合 的剩余拍数时,将所述待融合指令加入所述当前指令组合,开始对下一个指令的判断,在实 际应用中,当顺序处理器判断该待融合指令的执行拍数不大于当前指令组合的剩余拍数 时,顺序处理器可W先判断该待融合指令是否为第一特殊指令或第二特殊指令再进行后续 处理,请参阅图4,本发明实施例中指令执行方法另一个实施例包括:
[0120] 401、当顺序处理器的一条流水线内有预置数目个串行在一起的功能单元时,所述 顺序处理器确定所述预置数目为每个指令组合的最大执行拍数;
[0121] 当顺序处理器的一条流水线内有预置数目个串行在一起的功能单元时,该顺序处 理器确定该预置数目为每个指令组合的最大执行拍数。
[0122] 其中,该功能单元也可W称之为执行单元,用于执行指令动作,设定一个功能单元 执行一条简单运算指令所用的时间为一拍,可W理解的是,由于每个指令的复杂程度不同, 所W功能单元执行每条指令需要的拍数也可W不同,将一个指令需要执行的拍数称为该指 令的执行拍数,当指令被顺序发射执行时,预置数据个串行在一起的功能单元最多能在一 拍同时执行预置数目拍数的指令。
[0123] 指令组合为多条指令的组合,一个指令组合最多可W容纳的指令的执行拍数为该 指令组合的最大执行拍数。
[0124] 402、顺序处理器依次读取指令顺序中下一条指令作为待融合指令,对所述待融合 指令触发步骤403;
[0125] 顺序处理器确定每个指令组合的最大执行拍数后,依次读取指令顺序中下一条指 令作为待融合指令,对该待融合指令触发步骤403。
[0126] 403、顺序处理器判断该待融合指令的执行拍数是否不大于当前指令组合的剩余 拍数;
[0127] 顺序处理器读取出待融合指令后,判断该待融合指令的执行拍数是否不大于当前 指令组合的剩余拍数,其中,当前指令组合为当前正在融合指令的指令组合,剩余拍数为该 最大执行拍数与组合拍数的差值,该组合拍数为加入该当前指令组合中所有指令的执行拍 数之和;
[012引若判断出大于该剩余拍数时,执行步骤404 ;
[0129] 若判断出不大于该剩余拍数时,执行步骤407。
[0130] 404、更新所述当前指令组合并触发步骤405;
[0131]当顺序处理器判断该待融合指令的执行拍数大于当前指令组合的剩余拍数时,更 新该当前指令组合,并触发步骤405。
[0132] 其中,更新当前指令组合包括结束并保存当前指令组合,此时表示该当前指令组 合已经完成,新建下一个指令组合作为更新后的当前指令组合。
[0133] 405、判断所述待融合指令的执行拍数是否大于所述最大执行拍数;
[0134] 顺序处理器更新所述当前指令组合后,可W判断该待融合指令的执行拍数是否大 于该最大执行拍数;
[0135] 当大于最大执行拍数时,执行步骤406;
[0136] 当不大于最大执行拍数时,触发步骤403。
[0137] 可W理解的是,步骤405的判断与步骤404的更新之间没有严格的时序先后关系, 它们可W同时进行,可W先更新再判断,也可W先判断再更新,此处不作限定。
[0138] 406、将所述待融合指令单独加入更新后的当前指令组合,再次更新所述更新后的 当前指令组合,触发步骤402;
[0139] 当顺序处理器判断出该待融合指令的执行拍数大于该最大执行拍数时,将该待融 合指令单独加入更新后的当前指令组合,再次更新所述更新后的当前指令组合,触发步骤 402。
[0140] 执行拍数大于最大执行拍数的指令也可W称为长延迟指令。
[0141] 407、判断所述待融合指令是否为第一特殊指令或第二特殊指令;
[0142]当顺序处理器判断该待融合指令的执行拍数不大于当前指令组合的剩余拍数时, 判断所述待融合指令是否为第一特殊指令或第二特殊指令,所述第一特殊指令为必须单独 成组的指令,例如中断指令等,所述第二特殊指令为不须单独成组但必须放在一个指令组 合的最后一条的指令,例如跳转指令等;
[0143] 若所述待融合指令为第一特殊指令,则触发步骤408;
[0144] 若所述待融合指令为第二特殊指令,则触发步骤409;
[0145] 若所述待融合指令不为第一特殊指令且不为第二特殊指令,则触发步骤410。
[0146] 408、更新所述当前指令组合,将所述待融合指令单独加入更新后的当前指令组 合,再次更新所述更新后的当前指令组合,触发步骤402 ;
[0147]当判断出所述待融合指令为第一特殊指令时,所述顺序处理器更新所述当前指令 组合,将所述待融合指令单独加入更新后的当前指令组合,再次更新所述更新后的当前指 令组合,触发步骤402。
[0148] 409、将所述待融合指令加入所述当前指令组合再更新所述当前指令组合,触发步 骤 402 ;
[0149] 当判断出所述待融合指令为第二特殊指令时,所述顺序处理器将所述待融合指令 加入所述当前指令组合再更新所述当前指令组合,触发步骤402。
[0150] 410、将所述待融合指令加入所述当前指令组合后直接触发步骤402;
[0151]当判断出所述待融合指令不为第一特殊指令且不为第二特殊指令时,所述顺序处 理器将所述待融合指令加入所述当前指令组合后直接触发步骤402。
[0152]411、当所述顺序处理器准备好的指令都加入了指令组合时,所述顺序处理器更新 所述当前指令组合;
[0153] 当顺序处理器准备好的指令都加入了指令组合时,该顺序处理器可W直接更新当 前指令组合,即如果准备好的指令最后不足W构建一个完整的指令组合,也可W直接将其 作为一个指令组合进行后续发射执行。
[0154] 可W理解的是,在一些应用场景中,步骤411也可W不需要,此处不作限定。
[01巧]412、顺序处理器依次发射融合出的各指令组合,顺序执行所述各指令组合中的指 令。
[0156] 顺序处理器融合出指令组合后,依次发射融合出的各指令组合,顺序执行该各指 令组合中的指令。
[0157] 可W理解的是,步骤402至步骤411中并不需要将所有的指令都融合成指令组合 后才执行步骤412,指令的融合与发射执行为一个动态的连续过程,步骤402至步骤411中 融合出一个指令组合后,步骤412中即可W发射该融合出的指令组合,而步骤402至步骤 411此时还在继续融合出更多的指令组合,依次对融合出的指令组合执行步骤412。
[015引本发明实施例中,当顺序处理器判断该待融合指令的执行拍数不大于当前指令组 合的剩余拍数时,先判断待融合指令是否为第一特殊指令或第二特殊指令,若为第一特殊 指令,则将该待融合指令单独成组,若为第二特殊指令,则将该待融合指令加入当前指令组 合再更新该当前指令组合后再触发对下一个指令的读取判断过程,若既不是第一特殊指令 又不是第二特殊指令,则将该待融合指令加入当前指令组合后直接触发对下一个指令的读 取判断过程,避免了因特殊指令不在指令组合的最后一个而导致对指令执行出错的问题, 使得组合指令能被顺利执行,保证了处理器的正常运行。
[0159]为便于理解,下面W-具体应用场景对本发明实施例中指令执行方法进行具体描 述:
[0160] 一条流水线上有4个串行在一起的功能部件,顺序处理器确定每个指令组合的最 大执行拍数为4;
[0161] 顺序处理器将如下4条指令融合为一个指令组合,记为第一指令组合G1,按顺序 将G1 内各指令记为G1. 1,G1. 2,G1. 3,G1. 4 :
[0162]R0=R4+R5 ;//Gl. 1 [016引R1 =R5+R6 ;//Gl. 2
[0164]R2=R4-R5 ;//Gl. 3
[0165]R3=R4+R6 ;//Gl. 4
[0166] 顺序处理器将接着另外4条简单指令融合为另一个指令组合,记为第二指令组合 G2,按顺序将G2内各指令记为G2. 1,G2. 2,G2. 3,G2. 4 ;
[0167] 还可W有指令组合G3,G4等,W此类推;
[0168] 假设各指令组合都是由4条简单运算指令组成,且组内没有相关性,顺序处理器 每拍依次发射各指令组合(即同时发射指令组合内的4条指令)进入功能部件,功能部件 按照指令顺序,执行指令组合中的4条指令;
[0169] 设T时刻为第一拍,T+1时刻为第二拍,T巧时刻为第Η拍,W此类推;
[0170] 如下表1所示为对指令组合进行发射执行的具体时空图:
[0171]表 1
[0172]
阳17引 Τ时刻时,第一个功能部件执行G1内第一条指令G1. 1,同时发射G2,Τ"时刻时 (即下一拍),第一个功能部件执行G2内第一条指令G2. 1,第二个功能部件执行G1内第二 条指令G1. 2,即此时流水线上同时执行了G1. 2与G2. 1,W此类推,在Τ+4时刻提交G1,在 Τ巧时刻提交G4。
[0174] 利用指令组合,在Τ+3时刻IPC为4,即同时执行了 4条指令,对比于不进行指令组 合,直接对指令进行顺序执行的现有技术:
[0175] 如下表2所示为现有技术中直接对指令添加空拍顺序执行的具体时空图:
[017引表2
[0177]
[017引可W看出,直接对指令添加空拍顺序发射执行,需要到Τ巧时刻才能完成G1内4 条指令的提交,并且需要更多的时间才能提交后续指令,每个时刻的IPC均为1,浪费了处 理器性能。
[0179] 下面对本发明实施例中的顺序处理器进行描述,请参阅图5,本发明实施例中顺序 处理器一个实施例包括:
[0180] 确定模块501,用于当顺序处理器的一条流水线内有预置数目个串行在一起的功 能单元时,确定所述预置数目为每个指令组合的最大执行拍数;
[0181] 融合模块502,用于按照指令顺序依次将多条指令融合成指令组合,其中,所述多 条指令的执行拍数之和不大于所述确定模块501确定的最大执行拍数;
[0182] 执行模块503,用于依次发射所述融合模块502融合出的各指令组合,顺序执行所 述各指令组合中的指令。
[0183] 本发明实施例中,融合模块502按照指令顺序依次将多条指令融合成指令组合, 其中,所述多条指令的执行拍数之和不大于所述最大执行拍数,执行模块503再依次发射 融合出的各指令组合,顺序执行各指令组合中的指令,送样将多条指令融合成一个个指令 组合发射执行,在一条流水线的一个执行周期中可W同时执行多条指令,增加了一个执行 周期中需要执行有效的指令的拍数,减少了需要填充的空拍,增加了处理器对有效指令的 处理时间,更大程度的发挥了处理器的性能。
[0184] 上面实施例中,融合模块502按照指令顺序依次将多条指令融合成指令组合,在 实际应用中融合模块502可W按照指令顺序对每一个指令依次处理,下面对本发明实施
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1