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

文档序号:9687242阅读:来源:国知局
功能单元 执行一条简单运算指令所用的时间为一拍,可W理解的是,功能单元不一定W物理硬件的 形式存在于处理器中,当顺序处理器被设计出来时,假设其能执行的最长拍数值为预置数 目,即也可W认为有预置数目个串行在一起的功能单元,由于每个指令的复杂程度不同,所 w功能单元执行每条指令需要的拍数也可w不同,将一个指令需要执行的拍数称为该指令 的执行拍数,当指令被顺序发射执行时,预置数目个串行在一起的功能单元最多能在一拍 同时执行预置数目拍数的指令。
[0061] 指令组合为多条指令的组合,一个指令组合最多可W容纳的指令的执行拍数为该 指令组合的最大执行拍数,可W理解的是,指令组合中容纳的指令的执行拍数之和可W小 于或等于该最大执行拍数。
[0062] 102、顺序处理器按照指令顺序依次将多条指令融合成指令组合,其中,所述多条 指令的执行拍数之和不大于所述最大执行拍数;
[0063] 顺序处理器确定每个指令组合的最大执行拍数后,按照多条指令的执行排数之和 不大于该最大执行拍数的规则,按照指令顺序依次将多条指令融合成指令组合。
[0064] 该指令顺序为顺序处理器准备好的指令的顺序,可W理解的是,顺序处理器可W 重复此融合过程,依次组成多个指令组合,直到将准备好的指令全部融合成各个指令组合。
[0065] 103、顺序处理器依次发射融合出的各指令组合,顺序执行所述各指令组合中的指 令。
[0066] 顺序处理器融合出指令组合后,依次发射融合出的各指令组合,顺序执行该各指 令组合中的指令。
[0067] 顺序处理器每一拍发射一组指令组合,可W理解的是,步骤102中并不需要将所 有的指令都融合成指令组合后才执行步骤103,步骤102与步骤103为一个动态的连续过 程,步骤102中融合出一个指令组合后,步骤103中即可W发射该融合出的指令组合,而步 骤102此时还在继续融合出更多的指令组合,依次对融合出的指令组合执行步骤103。
[0068] 本发明实施例中,顺序处理器按照指令顺序依次将多条指令融合成指令组合,其 中,所述多条指令的执行拍数之和不大于所述最大执行拍数,再依次发射融合出的各指令 组合,顺序执行各指令组合中的指令,送样将多条指令融合成一个个指令组合发射执行,在 一条流水线的一个执行周期中可W同时执行多条指令,增加了一个执行周期中需要执行的 有效的指令的拍数,减少了需要填充的空拍,增加了单位时间内处理器对有效的指令进行 处理的时间,减少了单位时间内处理器的空闲等待时间,更大程度的发挥了处理器的性能。
[0069] 上面实施例中,顺序处理器按照指令顺序依次将多条指令融合成指令组合,在实 际应用中,顺序处理器可W按照指令顺序对每一个指令依次处理,下面对本发明实施例中 指令执行方法进行具体描述,请参阅图2,本发明实施例中指令执行方法另一个实施例包 括:
[0070] 201、当顺序处理器的一条流水线内有预置数目个串行在一起的功能单元时,所述 顺序处理器确定所述预置数目为每个指令组合的最大执行拍数;
[0071] 当顺序处理器的一条流水线内有预置数目个串行在一起的功能单元时,该顺序处 理器确定该预置数目为每个指令组合的最大执行拍数。
[0072] 其中,该功能单元也可W称之为执行单元,用于执行指令动作,设定一个功能单元 执行一条简单运算指令所用的时间为一拍(一时钟周期),可W理解的是,由于每个指令的 复杂程度不同,所W功能单元执行每条指令需要的拍数也可W不同,将一个指令需要执行 的拍数称为该指令的执行拍数,当指令被顺序发射执行时,预置数据个串行在一起的功能 单元最多能在一拍同时执行预置数目拍数的指令。
[0073] 指令组合为多条指令的组合,一个指令组合最多可W容纳的指令的执行拍数为该 指令组合的最大执行拍数。
[0074] 202、顺序处理器依次读取指令顺序中下一条指令作为待融合指令,对所述待融合 指令触发步骤203;
[00巧]顺序处理器确定每个指令组合的最大执行拍数后,依次读取指令顺序中下一条指 令作为待融合指令,对该待融合指令触发步骤203。
[0076] 203、顺序处理器判断该待融合指令的执行拍数是否不大于当前指令组合的剩余 拍数;
[0077] 顺序处理器读取出待融合指令后,判断该待融合指令的执行拍数是否不大于当前 指令组合的剩余拍数,其中,当前指令组合为当前正在融合指令的指令组合,剩余拍数为该 最大执行拍数与组合拍数的差值,该组合拍数为加入该当前指令组合中所有指令的执行拍 数之和;
[0078] 若判断出大于该剩余拍数时,执行步骤204;
[0079] 若判断出不大于该剩余拍数时,执行步骤205。
[0080] 204、更新所述当前指令组合并触发步骤203;
[0081] 当顺序处理器判断该待融合指令的执行拍数大于当前指令组合的剩余拍数时,更 新该当前指令组合,并触发步骤203。
[0082] 其中,更新当前指令组合包括结束并保存当前指令组合,此时表示该当前指令组 合已经完成,新建下一个指令组合作为更新后的当前指令组合。
[0083] 205、将所述待融合指令加入所述当前指令组合,触发步骤202;
[0084]当顺序处理器判断该待融合指令的执行拍数不大于当前指令组合的剩余拍数时, 将该待融合指令加入该当自U指令组合,触发步骤202。
[0085] 可W理解的是,步骤202至步骤205为一个将指令融合为指令组合的循环过程,此 过程中可W按指令顺序依次将各指令融合成为各指令组合,然后依次对各指令组合触发步 骤 206。
[0086] 206、顺序处理器依次发射融合出的各指令组合,顺序执行所述各指令组合中的指 令。
[0087] 顺序处理器融合出指令组合后,依次发射融合出的各指令组合,顺序执行该各指 令组合中的指令。
[0088] 可W理解的是,步骤202至步骤205中并不需要将所有的指令都融合成指令组合 后才执行步骤206,指令的融合与发射执行为一个动态的连续过程,步骤202至步骤205中 融合出一个指令组合后,步骤206中即可W发射该融合出的指令组合,而步骤202至步骤 205此时还在继续融合出更多的指令组合,依次对融合出的指令组合执行步骤206。
[0089] 本发明实施例中,顺序处理器依次读取指令顺序中下一条指令作为待融合指令, 判断待融合指令的执行拍数是否不大于当前指令组合的剩余拍数,若大于剩余拍数,则更 新当前指令组合,再对该待融合指令进行判断,若不大于剩余拍数,则将该待融合指令加入 当前指令组合并读取下一条指令作为待融合指令继续处理,送样可W保证在满足一个指令 组合内容纳的指令的执行拍数不大于最大执行拍数的前提下,把最多的指令融合进一个指 令组合中,进一步增加了处理器对有效指令的处理时间,发挥了处理器的性能。
[0090] 上面实施例中,当顺序处理器判断该待融合指令的执行拍数大于当前指令组合的 剩余拍数时,更新所述当前指令组合,并再判断该待融合指令的执行拍数是否大于当前指 令组合的剩余拍数,在实际应用中,更新所述当前指令组合后,顺序处理器可W先判断该待 融合指令的执行拍数是否大于最大执行拍数再进行后续处理,请查阅图3,本发明实施例中 指令执行方法另一个实施例包括:
[0091] 301、当顺序处理器的一条流水线内有预置数目个串行在一起的功能单元时,所述 顺序处理器确定所述预置数目为每个指令组合的最大执行拍数;
[0092] 当顺序处理器的一条流水线内有预置数目个串行在一起的功能单元时,该顺序处 理器确定该预置数目为每个指令组合的最大执行拍数。
[0093] 其中,该功能单元也可W称之为执行单元,用于执行指令动作,设定一个功能单元 执行一条简单运算指令所用的时间为一拍,可W理解的是,由于每个指令的复杂程度不同, 所W功能单元执行每条指令需要的拍数也可W不同,将一个指令需要执行的拍数称为该指 令的执行拍数,当指令被顺序发射执行时,预置数据个串行在一起的功能单元最多能在一 拍同时执行预置数目拍数的指令。
[0094] 指令组合为多条指令的组合,一个指令组合最多可W容纳的指令的执行拍数为该 指令组合的最大执行拍数。
[0095] 302、顺序处理器依次读取指令顺序中下一条指令作为待融合指令,对所述待融合 指令触发步骤303;
[0096] 顺序处理器确定每个指令组合的最大执行拍数后,依次读取指令顺序中下一条指 令作为待融合指令,对该待融合指令触发步骤303。
[0097] 303、顺序处理器判断该待融合指令的执行拍数是否不大于当前指令组合的剩余 拍数;
[0098] 顺序处理器读取出待融合指令后,判断该待融合指令的执行拍数是否不大于当前 指令组合的剩余拍数,其中,当前指令组合为当前正在融合指令的指令组合,剩余拍数为该 最大执行拍数与组合拍数的差值,该组合拍数为加入该当前指令组合中所有指令的执行拍 数之和;
[0099] 若判断出大于该剩余拍数时,执行步骤304;
[0100] 若判断出不大于该剩余拍数时,执行步骤307。
[0101] 304、更新所述当前指令组合并触发步骤305 ;
[0102] 当顺序处理器判断该待融合指令的执行拍数大于当前指令组合的剩余拍数时,更 新该当前指令组合,并触发步骤305。
[0103] 其中,更新当前指令组合包括结束并保存当前指令组合,此时表示该当前指令组 合已经完成,新建下一个指令组合作为更新后的当前指令组合。
[0104] 305、判断所述待融合指令的执行拍数是否大于所述最大执行拍数;
[0105] 顺序处理器更新所述当前指令组合后,可W判断该待融合指令的执行拍数是否大 于该最大执行拍数;
[0106] 当大于最大执行拍数时,执行步骤306 ;
[0107] 当不大于最大执行拍数时,触发步骤303。
[010引可W理解的是,步骤305的判断与步骤304的更新之间没有严格的时序先后关系, 它们可w同时进行,可w先更新再判断,也可w先判断再更新,此处不作限定。
[0109] 306、将所述待融合指令单独加入更新后的当前指令组合,再次更新所述更新后的 当前指令组合,触发步骤302;
[0110] 当顺序处理器判断出该待融合指令的执行拍数大于该最大执行拍数时,将该待融 合指令单独加入更新后的当前指令组合,再次更新所述更新后的当前指令组合,触发步骤 302。
[0111] 执行拍数大于最大执行拍数的指令也可W称为长延迟指令。可W理解的是,虽然 长延迟指令的执行拍数大于最大执行拍数,但因为长延迟指令为一个单独的指令,所W可 W将其单独作为一个指令组合,不受指令组合内指令的执行拍数之和不大于最大执行拍数 之和的限制。
[0112] 307、将所述待融合指令加入所述当前指令组合,触发步骤302 ;
[0113] 当顺序处理器判断该待融合指令的执行拍数不大于当前指令组合的剩余拍数时, 将该待融合指令加入该当前指令组合,触发步骤302。
[0114] 可W理解的是,步骤302至步骤307为一个将指令融合为指令组合的循环过程,此 过程中可W按指令顺序依次将各指令融合成为各指令组合,然后依次对各指令组合触发步 骤 308。
[0115] 308、顺序处理器依次发射融合出的各指令组合,顺序执行所述各指令组合中的指 令。
[0116] 顺序处理器融合出指令组合后,依次发射融合出的各指令组合,顺序执行该各指 令组合中的指令。
[0117] 可W理解的是,步骤302至步骤307中并不需要将所有的指令都融合成指令组合 后才执行步骤308,指令的融合与发射执行为一个动态的连续过程,步骤302至步骤307中
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1