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

文档序号:9687242阅读:376来源:国知局
一种指令执行方法以及顺序处理器的制造方法
【技术领域】
[0001] 本发明涉及指令处理领域,尤其涉及一种指令执行方法W及顺序处理器。
【背景技术】
[0002] 目前的商业处理器CPU根据指令调度方法的不同一般分为两大类;顺序执行和乱 序执行。
[0003] 在顺序执行的处理器中,一条流水线在一个执行周期中有固定的可执行拍数,每 个指令有一定的执行拍数,为了使指令顺序提交,处理器设计人员通常在设计时,会为执行 拍数较少的指令在其对应流水线中增加空拍(delaystage),从而使得送些执行拍数少的 指令与执行拍数长的指令的流水线有相同的级数,达到顺序提交的目的。
[0004] 但是,在流水线中增加空拍,一条流水线在一个执行周期中只有执行指令的拍数 被有效利用了,而增加的空拍在处理器执行时会被浪费掉,此时处理器没有对有效的指令 进行处理而空闲下来,送样便降低了处理器的性能。

【发明内容】

[0005] 本发明实施例提供了一种指令执行方法W及顺序处理器,用于在顺序处理器中组 合指令,减少空拍,更大程度的发挥处理器性能。
[0006] 本发明实施例第一方面提供了一种指令执行方法,包括:
[0007] 当顺序处理器的一条流水线内有预置数目个串行在一起的功能单元时,所述顺序 处理器确定所述预置数目为每个指令组合的最大执行拍数;
[0008] 所述顺序处理器按照指令顺序依次将多条指令融合成指令组合,其中,所述多条 指令的执行拍数之和不大于所述最大执行拍数;
[0009] 所述顺序处理器依次发射融合出的各指令组合,顺序执行所述各指令组合中的指 令。
[0010] 结合本发明实施例的第一方面,本发明实施例第一方面的第一种实现方式中,所 述顺序处理器按照指令顺序依次将多条指令融合成指令组合,其中,所述多条指令的执行 拍数之和不大于所述最大执行拍数具体包括:
[0011] 所述顺序处理器依次读取所述指令顺序中下一条指令作为待融合指令,对所述待 融合指令执行如下操作:
[0012] 所述顺序处理器判断所述待融合指令的执行拍数是否不大于当前指令组合的剩 余拍数,所述当前指令组合为当前正在融合指令的指令组合,所述剩余拍数为所述最大执 行拍数与组合拍数的差值,所述组合拍数为加入所述当前指令组合中所有指令的执行拍数 之和;
[0013] 若大于所述剩余拍数,则更新所述当前指令组合并触发所述顺序处理器判断所述 待融合指令的执行拍数是否不大于当前指令组合的剩余拍数的步骤;其中,更新当前指令 组合包括结束并保存当前指令组合,新建下一个指令组合作为更新后的当前指令组合;
[0014] 若不大于所述剩余拍数,则将所述待融合指令加入所述当前指令组合,触发所述 顺序处理器依次读取所述指令顺序中下一条指令作为待融合指令的步骤。
[0015] 结合本发明实施例第一方面的第一种实现方式,本发明实施例第一方面的第二种 实现方式中,所述若大于所述剩余拍数,则更新所述当前指令组合并触发所述顺序处理器 判断所述待融合指令的执行拍数是否不大于当前指令组合的剩余拍数具体包括:
[0016] 若大于所述剩余拍数,则更新所述当前指令组合,判断所述待融合指令的执行拍 数是否大于所述最大执行拍数;
[0017] 若大于所述最大执行拍数,则将所述待融合指令单独加入更新后的当前指令组 合,再次更新所述更新后的当前指令组合,触发所述顺序处理器依次读取所述指令顺序中 下一条指令作为待融合指令的步骤;
[0018] 若不大于所述最大执行拍数,则触发所述顺序处理器判断所述待融合指令的执行 拍数是否不大于当前指令组合的剩余拍数的步骤。
[0019] 结合本发明实施例第一方面的第一种实现方式或第二种实现方式,本发明实施例 第一方面的第Η种实现方式中,若不大于所述剩余拍数,则将所述待融合指令加入所述当 前指令组合,触发所述顺序处理器依次读取所述指令顺序中下一条指令作为待融合指令的 步骤具体包括:
[0020] 若不大于所述剩余拍数,则判断所述待融合指令是否为第一特殊指令或第二特殊 指令,所述第一特殊指令为必须单独成组的指令,所述第二特殊指令为不须单独成组但必 须放在一个指令组合的最后一条的指令;
[0021] 若所述待融合指令为第一特殊指令,则更新所述当前指令组合,将所述待融合指 令单独加入更新后的当前指令组合,再次更新所述更新后的当前指令组合,触发所述顺序 处理器依次读取所述指令顺序中下一条指令作为待融合指令的步骤;
[0022] 若所述待融合指令为第二特殊指令,则将所述待融合指令加入所述当前指令组合 再更新所述当前指令组合,触发所述顺序处理器依次读取所述指令顺序中下一条指令作为 待融合指令的步骤;
[0023] 若所述待融合指令不为第一特殊指令且不为第二特殊指令,则将所述待融合指令 加入所述当前指令组合后直接触发所述顺序处理器依次读取所述指令顺序中下一条指令 作为待融合指令的步骤。
[0024] 结合本发明实施例第一方面的第Η种实现方式,本发明实施例第一方面的第四种 实现方式中,所述方法还包括:
[00巧]当所述顺序处理器准备好的指令都加入了指令组合时,所述顺序处理器更新所述 当前指令组合。
[0026] 本发明实施例第二方面提供了一种顺序处理器,包括:
[0027] 确定模块,用于当顺序处理器的一条流水线内有预置数目个串行在一起的功能单 元时,确定所述预置数目为每个指令组合的最大执行拍数;
[0028] 融合模块,用于按照指令顺序依次将多条指令融合成指令组合,其中,所述多条指 令的执行拍数之和不大于所述确定模块确定的最大执行拍数;
[0029] 执行模块,用于依次发射所述融合模块融合出的各指令组合,顺序执行所述各指 令组合中的指令。
[0030] 结合本发明实施例的第二方面,本发明实施例第二方面的第一种实现方式中,所 述融合模块具体包括:
[0031] 读取触发单元,用于依次读取所述指令顺序中下一条指令作为待融合指令,对所 述待融合指令触发拍数判断单元;
[0032] 拍数判断单元,用于判断所述读取触发单元读取的待融合指令的执行拍数是否不 大于当前指令组合的剩余拍数,所述当前指令组合为当前正在融合指令的指令组合,所述 剩余拍数为所述最大执行拍数与组合拍数的差值,所述组合拍数为加入所述当前指令组合 中所有指令的执行拍数之和;
[0033] 组合更新单元,用于当所述拍数判断单元判断出所述待融合指令的执行拍数大于 当前指令组合的剩余拍数时,更新所述当前指令组合并触发所述拍数判断单元;其中,更新 当前指令组合包括结束并保存当前指令组合,新建下一个指令组合作为更新后的当前指令 组合;
[0034] 指令更新单元,用于当所述拍数判断单元判断出所述待融合指令的执行拍数不大 于当前指令组合的剩余拍数时,将所述待融合指令加入所述当前指令组合,触发所述读取 触发单元。
[0035] 结合本发明实施例第二方面的第一种实现方式,本发明实施例第二方面的第二种 实现方式中,所述组合更新单元具体包括:
[0036] 拍数判断子单元,用于当所述拍数判断单元判断出所述待融合指令的执行拍数大 于当前指令组合的剩余拍数时,更新所述当前指令组合,判断所述待融合指令的执行拍数 是否大于所述最大执行拍数;
[0037] 第一单独组合子单元,用于当所述拍数判断子单元判断出所述待融合指令的执行 拍数大于所述最大执行拍数时,将所述待融合指令单独加入更新后的当前指令组合,再次 更新所述更新后的当前指令组合,触发所述读取触发单元;
[0038] 否定触发子单元,用于当所述拍数判断子单元判断出所述待融合指令的执行拍数 不大于所述最大执行拍数时,触发所述拍数判断单元。
[0039] 结合本发明实施例第二方面的第一种实现方式或第二种实现方式,本发明实施例 第二方面的第Η种实现方式中,所述指令更新单元具体包括:
[0040] 指令判断子单元,用于当所述拍数判断单元判断出所述待融合指令的执行拍数不 大于当前指令组合的剩余拍数时,判断所述待融合指令是否为第一特殊指令或第二特殊指 令,所述第一特殊指令为必须单独成组的指令,所述第二特殊指令为不须单独成组但必须 放在一个指令组合的最后一条的指令;
[0041] 第二单独组合子单元,用于当所述指令判断子单元判断出所述待融合指令为第一 特殊指令时,更新所述当前指令组合,将所述待融合指令单独加入更新后的当前指令组合, 再次更新所述更新后的当前指令组合,触发所述读取触发单元;
[0042] 加入更新子单元,用于当所述指令判断子单元判断出所述待融合指令为第二特殊 指令时,将所述待融合指令加入所述当前指令组合再更新所述当前指令组合,触发所述读 取触发单元;
[0043] 加入触发子单元,用于当所述指令判断子单元判断出所述待融合指令不为第一特 殊指令且不为第二特殊指令时,将所述待融合指令加入所述当前指令组合后直接触发所述 读取触发单元。
[0044] 结合本发明实施例中第二方面的第Η种实现方式,本发明实施例第二方面的第四 种实现方式中,所述顺序处理器还包括:
[0045] 完成更新模块,用于当所述顺序处理器准备好的指令都加入了指令组合时,更新 所述当前指令组合。
[0046] 从W上技术方案可W看出,本发明实施例具有W下优点:本发明实施例中,顺序处 理器按照指令顺序依次将多条指令融合成指令组合,其中,所述多条指令的执行拍数之和 不大于所述最大执行拍数,再依次发射融合出的各指令组合,顺序执行各指令组合中的指 令,送样将多条指令融合成一个个指令组合发射执行,在一条流水线的一个执行周期中可 W同时执行多条指令,增加了一个执行周期中需要执行的有效的指令的拍数,减少了需要 填充的空拍,增加了单位时间内处理器对有效的指令进行处理的时间,减少了单位时间内 处理器的空闲等待时间,更大程度的发挥了处理器的性能。
【附图说明】
[0047] 图1为本发明实施例中指令执行方法一个流程示意图;
[0048] 图2为本发明实施例中指令执行方法另一个流程示意图;
[0049] 图3为本发明实施例中指令执行方法另一个流程示意图;
[0050] 图4为本发明实施例中指令执行方法另一个流程示意图;
[0051] 图5为本发明实施例中顺序处理器一个结构示意图;
[0052] 图6为本发明实施例中顺序处理器另一个结构示意图;
[0053] 图7为本发明实施例中顺序处理器另一个结构示意图;
[0054] 图8为本发明实施例中顺序处理器另一个结构示意图;
[00巧]图9为本发明实施例中流水线一个结构示意图。
【具体实施方式】
[0056] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0057] 请参阅图1,本发明实施例中指令执行方法一个实施例包括:
[0058] 101、当顺序处理器的一条流水线内有预置数目个串行在一起的功能单元时,所述 顺序处理器确定所述预置数目为每个指令组合的最大执行拍数;
[0059] 当顺序处理器的一条流水线内有预置数目个串行在一起的功能单元时,该顺序处 理器确定该预置数目为每个指令组合的最大执行拍数,该顺序处理器用于表示使用顺序执 行的指令调度方法的处理器。
[0060] 其中,该功能单元也可W称之为执行单元,用于执行指令动作,设定一个
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1