用于针对非对称执行单元高效调度的方法和装置的制造方法

文档序号:9401910阅读:423来源:国知局
用于针对非对称执行单元高效调度的方法和装置的制造方法
【专利说明】用于针对非对称执行单元高效调度的方法和装置
相关串请的交叉引用
本申请是于2013年3月15日提交的、题为“METHOD AND APPARATUS FOR EFFICIENTSCHEDULING FOR ASYMMETRICAL EXECUT1N UNITS” 的、第 N0.61/799,062 号临时专利申请的转换,并要求其优先权和权益,其通过引用整体合并于本文中。
技术领域
[0001]根据本发明的实施例一般地涉及微处理器体系架构,并且更具体地,涉及用于乱序微处理器的体系架构。
【背景技术】
[0002]在乱序(000)微处理器中,允许指令不按照它们的程序顺序来发布和执行。000微处理器的调度器乱序选择和分派准备好的指令到执行单元。某些微处理器架构具有两种类型指令,A类型和E类型。A类型指令的示例是诸如加法和减法的整数运算,而E类型指令的示例是诸如浮点加法、浮点减法和浮点乘法的浮点运算。然而,应该注意,A类型和E类型指令都不仅限于上述示例。
[0003]然而,支持两种类型的指令的常规体系架构并没有可以支持两种类型的指令的执行单元。例如,常规处理器一般会有用于执行A类型指令的独有的执行单元,和用于执行E类型指令的独有的执行单元,其中两种类型的执行单元彼此相互排斥。
[0004]考虑到非统一的指令类型和非对称执行单元,在这样的体系架构中的调度器的目标一般是优化分派吞吐量。此外,调度器的另一个目标是优先于较新的指令先考虑较早的指令。以及最终,最后的目标在于在实施调度过程中保持有竞争力的延迟。
[0005]常规体系架构由于没有成功达成上述目标而因此有局限。例如,如上所述,常规架构可以采用选择A类型的指令仅在A类型执行单元中执行,并且挑选E类型指令仅在E类型执行单元中执行的原生策略。这允许为了更佳的延迟而并行实施执行,但是如果对于特定的执行单元类型没有足够的指令块,那么将导致没有使用的执行单元端口以及较小的整体分派吞吐量。
[0006]例如,在具有4个A类型执行单元和4个E类型执行单元的体系架构中存在5个A类型指令和3个E类型指令,那么至少I个E类型执行单元将空闲,因为A类型指令不能在E类型执行单元上执行。该方案的另一个问题在于其仅在单个分类(ASE)中是时间(age)优化的而没有针对整个时间优先顺序进行优化。在以上示例中,举例来说,只有7个指令将被分派。第5个A类型指令将不得不等待下一个周期。因此,常规体系架构是有局限的,并未设计为达到调度器的上述所有期望的目的。

【发明内容】

[0007]相应地,需要其中执行单元可以执行多种类型指令的方法和装置,例如A类型和E类型指令。此外,需要用于针对非对称执行单元更高效的调度的方法和装置,其优化分派吞吐量、优先于较新的指令先考虑较早的指令,并且维持有竞争力的延迟。
[0008]本发明的实施例支持非对称执行单元类型:A类型和E类型,其中A类型执行单元只支持A类型指令,但是E类型执行单元可以支持A和E类型指令。相应,A类型指令可以在A和E单元中执行,但是E类型指令只能在E单元中执行。相应,A类型执行单元可以是E类型执行单元的子集。
[0009]在一个实施例中,为了实施针对非对称执行单元的调度,调度器首先填充A执行单元端口,并且随后采用没有由A执行单元选中的所有其他指令块来填充E执行单元端口。在一个实施例中,调度器包括“发现-8”和“发现_4”逻辑电路。发现-8电路针对满足选择标准的第一 8个最早指令搜索调度器中的分派范围。同时,发现-4电路与发现-8电路一起并行采用,用于搜索第一 4个最早A类型指令块。发现-4电路的结果用于调度A类型执行单元。没有由发现-4选中的剩余的指令,最早的4个随后被调度用于E类型执行单元。例如,如果发现-8电路选择3个A类型和5个E类型指令并且发现-4电路挑选3个A类型指令(同样的3个A类型指令也由发现-8逻辑所选择),那么3个A类型指令被调度用于A端口,而剩余5个E类型指令中的最早的4个可以被调度用于E端口。然而,本发明不限于该实施例。如果例如调度器在一个周期可以分派16个指令,那么将并行采用“发现-16”和“发现_8”电路等等。
[0010]相应,本发明的实施例具有高的分派效率的优点,因为其尝试填充A类型端口和E类型端口两者。此外,本发明的实施例具有在两种类型的块之间的较好的整体时间优先顺序。最后,因为并行采用发现-8电路和发现-4电路两者,所以本发明的实施例在实施调度过程中还维持有竞争力的延迟。
[0011]在一个实施例中,公开了用于实施乱序微处理器管线中的指令调度的方法。所述方法包括,选择指令的第一集合以从调度器分派,其中调度器能够操作为分派两种类型的指令,并且其中所述执行模块包括两种类型的执行单元。第一类型执行单元执行第一类型指令和第二类型指令两者并且其中第二类型执行单元仅执行第二类型指令。方法还包括,选择指令的第二集合以进行分派,其中第二集合是第一集合的子集,并且其中第二集合仅包括第二类型指令。接下来方法包括:确定指令的第三集合,其中第三集合包括没有选中作为第二集合的一部分的指令。最后方法包括,分派第二集合用于使用第二类型执行单元执行,并且进一步分派第三集合用于使用第一类型执行单元执行。
[0012]在另一个实施例中,公开了配置为实施用于调度乱序微处理器管线中的指令的方法的处理器单元。所述方法包括,选择指令的第一集合以从调度器分派,其中调度器能够操作为分派两种类型的指令,并且其中所述执行模块包括两种类型的执行单元。第一类型执行单元执行第一类型指令和第二类型指令两者并且其中第二类型执行单元仅执行第二类型指令。方法还包括,选择指令的第二集合以进行分派,其中第二集合是第一集合的子集,并且其中第二集合仅包括第二类型指令。接下来方法包括:确定指令的第三集合,其中第三集合包括没有选中作为第二集合的一部分的指令。最后方法包括,分派第二集合用于使用第二类型执行单元执行,并且进一步分派第三集合用于使用第一类型执行单元执行。
[0013]在不同的实施例中,公开了配置为实施用于调度乱序微处理器管线中的指令的方法的装置。所述装置包括:存储器、处理器,其通信地耦连到所述存储器,其中所述处理器配置为乱序处理指令。并且进一步其中所述处理器配置为:(a)选择指令的第一集合以从调度器分派到执行模块,其中调度器能够操作为分派两种类型的指令,其中执行模块包括两种类型的执行单元,其中第一类型执行单元执行第一类型指令和第二类型指令两者并且其中第二类型执行单元仅执行第二类型指令;(b)选择指令的第二集合以从调度器进行分派,其中第二集合是第一集合的子集,并且其中第二集合仅包括第二类型指令;(C)确定指令的第三集合,其中指令的第三集合是指令的第一集合的子集,并且其中第三集合包括没有选中作为第二集合的一部分的指令;并且(d)分派指令的第二集合到所述执行模块,以用于使用第二类型执行单元执行,并且进一步分派指令的第三集合到执行模块,以用于使用第一类型执行单元执行。
[0014]接下来与附图一起的详细描述将提供对本发明性质和优点的更好理解。
【附图说明】
[0015]本发明的实施例在附图中以示例的方式示出,但并非以限制的方式,在附图中相似的参考标号指代相似的元件。
[0016]图1是根据本发明的实施例的示例性计算机系统。
[0017]图2示出了可以选择非统一指令用于非对称执行单元的方式的示例。
[0018]图3是根据本发明的一个实施例的、本发明的实施例可以在其上实现的用于乱序微处理器的管线的示例性框图。
[0019]图4是示出了根据本发明实施例的、调度指令用于非对称执行单元的方案的框图。
[0020]图5是示出了根据本发明实施例的、采用每周期分派8个指令的调度器来调度指令用于非对称执行单元的方案的表。
[0021]图6描绘了根据本发明实施例的、用于乱序微体系架构中的指令调度的示例性计算机控制的过程。
【具体实施方式】
[0022]现在将详细参考本发明的各实施例,其示例在附图中示出。虽然本发明将结合这些实施例进行描述,但是应该理解它们并非旨在将本发明限定于这些实施例。相反,本发明旨在覆盖可以包括在如随附权利要求所限定的本发明的精神和范围内的替换、修改和等同物。此外,在本发
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1