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

文档序号:9687242阅读:来源:国知局
例 中顺序处理器进行具体描述,请参阅图6,本发明实施例中顺序处理器另一个实施例包括:
[0185] 确定模块601,用于当顺序处理器的一条流水线内有预置数目个串行在一起的功 能单元时,确定所述预置数目为每个指令组合的最大执行拍数;
[0186] 融合模块602,用于按照指令顺序依次将多条指令融合成指令组合,其中,所述多 条指令的执行拍数之和不大于所述确定模块601确定的最大执行拍数;
[0187] 执行模块603,用于依次发射所述融合模块602融合出的各指令组合,顺序执行所 述各指令组合中的指令;
[0188] 本实施中,该融合模块602具体包括:
[0189] 读取触发单元6021,用于依次读取所述指令顺序中下一条指令作为待融合指令, 对所述待融合指令触发拍数判断单元6022 ;
[0190] 拍数判断单元6022,用于判断所述读取触发单元6021读取的待融合指令的执行 拍数是否不大于当前指令组合的剩余拍数,所述当前指令组合为当前正在融合指令的指令 组合,所述剩余拍数为所述最大执行拍数与组合拍数的差值,所述组合拍数为加入所述当 前指令组合中所有指令的执行拍数之和;
[0191] 组合更新单元6023,用于当所述拍数判断单元6022判断出所述待融合指令的执 行拍数大于当前指令组合的剩余拍数时,更新所述当前指令组合并触发所述拍数判断单 元;其中,更新当前指令组合包括结束并保存当前指令组合,新建下一个指令组合作为更新 后的当前指令组合;
[0192] 指令更新单元6024,用于当所述拍数判断单元6022判断出所述待融合指令的执 行拍数不大于当前指令组合的剩余拍数时,将所述待融合指令加入所述当前指令组合,触 发所述读取触发单元6021。
[0193] 本发明实施例中,读取触发单元6021依次读取指令顺序中下一条指令作为待融 合指令,拍数判断单元6022判断待融合指令的执行拍数是否不大于当前指令组合的剩余 拍数,若大于剩余拍数,则组合更新单元6023更新当前指令组合,再对该待融合指令进行 判断,若不大于剩余拍数,则指令更新单元6024将该待融合指令加入当前指令组合并读取 下一条指令作为待融合指令继续处理,送样可W保证在满足一个指令组合内容纳的指令的 执行拍数不大于最大执行拍数(即一条流水线内功能单元数)的前提下,把最多的指令融 合进一个指令组合中,进一步增加了处理器对有效指令的处理时间,发挥了处理器的性能。
[0194] 上面实施例中,当拍数判断单元6022判断该待融合指令的执行拍数大于当前指 令组合的剩余拍数时,组合更新单元6023更新所述当前指令组合,并由拍数判断单元6022 再判断该待融合指令的执行拍数是否大于当前指令组合的剩余拍数,在实际应用中,组合 更新单元6023更新所述当前指令组合后,组合更新单元6023可W先判断该待融合指令的 执行拍数是否大于最大执行拍数再进行后续处理,请查阅图7,本发明实施例中顺序处理器 另一个实施例包括:
[0195] 确定模块701,用于当顺序处理器的一条流水线内有预置数目个串行在一起的功 能单元时,确定所述预置数目为每个指令组合的最大执行拍数;
[0196] 融合模块702,用于按照指令顺序依次将多条指令融合成指令组合,其中,所述多 条指令的执行拍数之和不大于所述确定模块701确定的最大执行拍数;
[0197] 执行模块703,用于依次发射所述融合模块702融合出的各指令组合,顺序执行所 述各指令组合中的指令;
[0198] 该融合模块702具体包括:
[0199] 读取触发单元7021,用于依次读取所述指令顺序中下一条指令作为待融合指令, 对所述待融合指令触发拍数判断单元7022 ;
[0200] 拍数判断单元7022,用于判断所述读取触发单元7021读取的待融合指令的执行 拍数是否不大于当前指令组合的剩余拍数,所述当前指令组合为当前正在融合指令的指令 组合,所述剩余拍数为所述最大执行拍数与组合拍数的差值,所述组合拍数为加入所述当 前指令组合中所有指令的执行拍数之和;
[0201] 组合更新单元7023,用于当所述拍数判断单元7022判断出所述待融合指令的执 行拍数大于当前指令组合的剩余拍数时,更新所述当前指令组合并触发所述拍数判断单 元;其中,更新当前指令组合包括结束并保存当前指令组合,新建下一个指令组合作为更新 后的当前指令组合;
[0202] 指令更新单元7024,用于当所述拍数判断单元7022判断出所述待融合指令的执 行拍数不大于当前指令组合的剩余拍数时,将所述待融合指令加入所述当前指令组合,触 发所述读取触发单元;
[0203] 本实施例中,该组合更新单元7023具体包括:
[0204] 拍数判断子单元70231,用于当所述拍数判断单元7022判断出所述待融合指令的 执行拍数大于当前指令组合的剩余拍数时,更新所述当前指令组合,判断所述待融合指令 的执行拍数是否大于所述最大执行拍数;
[0205] 第一单独组合子单元70232,用于当所述拍数判断子单元70231判断出所述待融 合指令的执行拍数大于所述最大执行拍数时,将所述待融合指令单独加入更新后的当前指 令组合,再次更新所述更新后的当前指令组合,触发所述读取触发单元7021 ;
[0206] 否定触发子单元70233,用于当所述拍数判断子单元70231判断出所述待融合指 令的执行拍数不大于所述最大执行拍数时,触发所述拍数判断单元7022。
[0207] 本发明实施例中,当拍数判断单元7022判断该待融合指令的执行拍数大于当前 指令组合的剩余拍数时,拍数判断子单元70231更新该当前指令组合后,拍数判断子单元 70231先判断待融合指令的执行拍数是否大于所述最大执行拍数,当大于最大执行拍数时, 第一单独组合子单元70232直接将该待融合指令单独作为更新后的指令组合,再次更新当 前指令组合,当不大于最大执行拍数时,否定触发子单元70233才触发对待融合指令的再 次判断,送样使长延迟指令单独成组,保证了对指令融合的顺序进行,提高了处理器的处理 效率。
[020引上面实施例中,当拍数判断单元7022判断该待融合指令的执行拍数不大于当前 指令组合的剩余拍数时,指令更新单元7024将所述待融合指令加入所述当前指令组合,开 始对下一个指令的判断,在实际应用中,指令更新单元7024可W先判断该待融合指令是否 为第一特殊指令或第二特殊指令再进行后续处理,请参阅图8,本发明实施例中顺序处理器 另一个实施例包括:
[0209] 确定模块801,用于当顺序处理器的一条流水线内有预置数目个串行在一起的功 能单元时,确定所述预置数目为每个指令组合的最大执行拍数;
[0210] 融合模块802,用于按照指令顺序依次将多条指令融合成指令组合,其中,所述多 条指令的执行拍数之和不大于所述确定模块801确定的最大执行拍数;
[0211] 执行模块803,用于依次发射所述融合模块802融合出的各指令组合,顺序执行所 述各指令组合中的指令;
[0212] 该融合模块802具体包括:
[0213] 读取触发单元8021,用于依次读取所述指令顺序中下一条指令作为待融合指令, 对所述待融合指令触发拍数判断单元8022 ;
[0214] 拍数判断单元8022,用于判断所述读取触发单元8021读取的待融合指令的执行 拍数是否不大于当前指令组合的剩余拍数,所述当前指令组合为当前正在融合指令的指令 组合,所述剩余拍数为所述最大执行拍数与组合拍数的差值,所述组合拍数为加入所述当 前指令组合中所有指令的执行拍数之和;
[0215] 组合更新单元8023,用于当所述拍数判断单元8022判断出所述待融合指令的执 行拍数大于当前指令组合的剩余拍数时,更新所述当前指令组合并触发所述拍数判断单元 8022;其中,更新当前指令组合包括结束并保存当前指令组合,新建下一个指令组合作为更 新后的当前指令组合;
[0216] 指令更新单元8024,用于当所述拍数判断单元8022判断出所述待融合指令的执 行拍数不大于当前指令组合的剩余拍数时,将所述待融合指令加入所述当前指令组合,触 发所述读取触发单元8021 ;
[0217] 该组合更新单元8023具体包括:
[021引拍数判断子单元80231,用于当所述拍数判断单元8022判断出所述待融合指令的 执行拍数大于当前指令组合的剩余拍数时,更新所述当前指令组合,判断所述待融合指令 的执行拍数是否大于所述最大执行拍数;
[0219] 第一单独组合子单元80232,用于当所述拍数判断子单元80231判断出所述待融 合指令的执行拍数大于所述最大执行拍数时,将所述待融合指令单独加入更新后的当前指 令组合,再次更新所述更新后的当前指令组合,触发所述读取触发单元8021 ;
[0220] 否定触发子单元80233,用于当所述拍数判断子单元80231判断出所述待融合指 令的执行拍数不大于所述最大执行拍数时,触发所述拍数判断单元8022 ;
[0221] 本实施例中,该指令更新单元8024具体包括:
[0222] 指令判断子单元80241,用于当所述拍数判断单元8022判断出所述待融合指令的 执行拍数不大于当前指令组合的剩余拍数时,判断所述待融合指令是否为第一特殊指令或 第二特殊指令,所述第一特殊指令为必须单独成组的指令,所述第二特殊指令为不须单独 成组但必须放在一个指令组合的最后一条的指令;
[0223] 第二单独组合子单元80242,用于当所述指令判断子单元80241判断出所述待融 合指令为第一特殊指令时,更新所述当前指令组合,将所述待融合指令单独加入更新后的 当前指令组合,再次更新所述更新后的当前指令组合,触发所述读取触发单元;
[0224] 加入更新子单元80243,用于当所述指令判断子单元80241判断出所述待融合指 令为第二特殊指令时,将所述待融合指令加入所述当前指令组合再更新所述当前指令组 合,触发所述读取触发单元8021 ;
[0225] 加入触发子单元80244,用于当所述指令判断子单元80241判断出所述待融合指 令不为第一特殊指令且不为第二特殊指令时,将所述待融合指令加入所述当前指令组合后 直接触发所述读取触发单元8021 ;
[0226] 本实施例中,该顺序处理器还可W包括:
[0227] 完成更新模块804,用于当所述顺序处理器准备好的指令都加入了指令组合时,更 新所述当前指令组合。
[022引本发明实施例中,当拍数判断单元8022判断该待融合指令的执行拍数不大于当 前指令组合的剩余拍数时,指令判断子单元80241先判断待融合指令是否为第一特殊指令 或第二特殊指令,若为第一特殊指令,则第二单独组合子单元80242将该待融合指令单独 成组,若为第二特殊指令,则加入更新子单元80243将该待融合指令加入当前指令组合再 更新该当前指令组合后再触发对下一个指令的读取判断过程,若既不是第一特殊指令又不 是第二特殊指令,则加入触发子单元80244将该待融合指令加入当前指令组合后直接触发 对下一个指令的读取判断过程,避免了因特殊指令不在指令组合的最后一个而导致对指令 执行出错的问题,使得组合指令能被顺利执行,保证了处理器的正常运行。
[0229] 为了便于理解上述实施例,下面W上述顺序处理器各个模块在一个具体应用场景 中的交互过程进行说明:
[0230] -条流水线上有4个串行在一起的功能部件,确定模块801确定每个指令组合的 最大执行拍数为4 ;
[0231]融合模块802将如下4条指令融合为一个指令组合,记为第一指令组合G1,按顺序 将 G1 内各指令记为 G1. 1,G1. 2, G1. 3, G1. 4 :
[023引R0=R
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1