处理器具备:指令缓冲器(401)~(403),保存向多个运算器发放的预定的多个指令;依赖关系检测部(431,432),检测第1依赖关系和第2依赖关系,决定指令缓冲器存储的多个指令之中,没有第1依赖关系及第2依赖关系的任一个依赖关系的指令的组,来作为能够发放给多个运算器的指令的组,上述第1依赖关系是存在于指令缓冲器中所存储的任意2个指令间的依赖关系,上述第2依赖关系是存在于指令缓冲器中所存储的各指令和已发放的各指令之间的依赖关系;以及分配部(441)~(443),将决定出的组中包含的指令发放给多个运算器。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种可并行执行多个指令的处理器,特别涉及到具有超标量型体系结构的处理器。
技术介绍
处理器执行存储器中所存储的指令序列。为了使执行性能得到提高,当执行指令序列时,最好使之同时执行可并行执行的多个指令。在可并行执行多个指令的处理器体系结构中,存在一种称为超标量的体系结构。 采用超标量技术,在某个资源(寄存器等)的定义没有由已经执行中的指令完成的情况下, 将参照该资源的指令的发放停止,实施由先执行下一无依赖关系的指令的利用硬件的控制。但是,对于上述超标量技术而言,需要保持及恢复例外发生的时候处理器的状态所用的复杂的机构。另一方面,在可并行执行多个指令的处理器体系结构中存在一种称为VLIW(Very Long Instruction Word)的体系结构。在VLIW中,编译器预先在编译时提取可并行执行的指令,生成由可并行执行的多个指令所构成的并行执行代码。就VLIW而言,处理器为比较简单的结构。但是,具有因插入NOP指令导致的代码大小的增加以及和现有指令集之间的非互换这样的问题。如上所述,在并行执行多个指令的方式中,存在超标量、VLIW,各自存在优点及缺点ο指令发放控制的方法一例公示在专利文献1中。在专利文献1中,按预先由1个以上的指令构成的指令组单位,来控制指令的发放。另外,根据专利文献1,一般备有存储下述资源(寄存器文件等)的信息和其资源的等待时间信息的表,上述资源由预先决定出的发放组内的各个指令定义及参照。并且提出了下述方法,即通过有效利用其等待时间信息,来检测和已经发放的指令组内的指令之间的依赖关系,存在依赖性的情况下,停止对应的指令组内指令的发放,先发放无依赖关系的指令组内的指令之方法。采用上述发放控制的方法,能够在指令发放前提取处于依赖关系的具有1个以上指令的指令组,实施指令调度。指令发放控制的方法另一例公示在专利文献2中。专利文献2公示出与下述装置有关的专利技术,该装置对可在线程内同时执行的指令数进行计数,计算线程处理所耗费的周期数,考虑优先级,高效地发放多个线程内的指令。在专利文献2的段落0040 段落0045中,说明了由现有硬件实施的一般指令分组的方法。在上述说明里的在指令发放前的时候实施的现有指令分组机构中,只有将要发放的指令组内的指令才提取依赖关系,恰当实施发放组的控制。现有技术文献专利文献1 日本专利第3984786号公报专利文献2 日本特开2008-123045号公报(段落0040 段落0045)
技术实现思路
专利技术要解决的课题但是,就专利文献1所述的发放控制方法而言,需要一边在指令队列内保持有依赖关系的指令,依次检测其依赖关系,一边针对多个指令组实施发放控制。另外,因为在指令发放时按指令组单位动态执行指令调度,所以需要恢复指令发放后发生了例外时处理器的状态所用的硬件投资。从而,在专利文献1所述的发放控制方法中,由于上述2点原因, 因而存在硬件复杂化这样的问题。另外,采用专利文献2所述的方法,由于上述分组的限制,因而利用分组的发放控制无法实施,该分组考虑了指令组内指令间的依赖关系及跨指令组的指令间的依赖关系。 因此,有时在指令执行时,产生如果原来恰当地实施了分组则不发生的代价周期(penalty cycle)。从而,在现有指令发放前的时候的指令分组机构中,存在要考虑最佳性能无法实现的实例发生的情形这样的问题。本专利技术是为了解决上述课题而做出的,其目的为提供一种处理器,在指令发放之时,能够由简单的硬件实现在执行性能的观点上高效的发放组的决定(指令分组)。解决课题的手段为了达成上述目的,本专利技术的某个方式所涉及的处理器能够将多个指令同时发放给多个运算器,其特征为,具备指令缓冲器,保存预定的多个指令,该预定的多个指令在对上述多个运算器的最后指令发放的周期的下一周期,发放给上述多个运算器;组决定部,求取上述指令缓冲器中所存储的任意2个指令间存在的第1依赖关系,以及上述指令缓冲器中所存储的各指令和已发放的各指令之间存在的第2依赖关系,决定存储在上述指令缓冲器中的上述多个指令之中、没有上述第1依赖关系及上述第2依赖关系的指令的组,来作为能够在上述下一周期发放给上述多个运算器的指令的组;以及分配部,将由上述组决定部所决定的上述组中包含的上述指令,在上述下一周期发放给上述多个运算器。因在现有硬件的指令分组机构中实施的分组,而在指令组间发生代价周期的根本原因为,在现有硬件中只考虑指令缓冲器中所存储的指令间的依赖关系,而无法检测和已经发放的指令组之间的依赖关系。根据该结构,不仅仅是指令缓冲器中所存储的指令间的依赖关系,还参照和已经发放的指令之间的依赖关系,决定在下一周期发放的指令的组。因此,可以缓和在已发放的指令组间发生的代价,在指令发放之时,能够由简单的硬件实现在执行性能的观点上高效的发放组的决定(指令分组)。还有,本专利技术不仅仅可以作为这种具备特征性处理部的处理器来实现,还可以作为以处理器中包含的特征性处理部执行的处理为步骤的指令发放控制方法,来实现。另外, 也可以作为使计算机执行指令发放控制方法中包含的特征性步骤的程序,来实现。而且,不言而喻,那种程序可以通过CD-ROM (Compact Disc-Read Only Memory)等非易失性存储介质或因特网等通信网络使之流通。专利技术效果根据本专利技术,不仅仅是将要发放的存在于指令缓冲器内的指令间的依赖关系,还检测存在于指令缓冲器内的指令和已经发放的指令组内的指令之间的依赖关系,进行指令分组。因此,缓和所发放的指令组间的代价,有助于性能提高。若更加详细地研究与上述性能提高有关的原因,则可以在定性地如下述2点那样进行说明。(1)是因为可以消除原来能够提前发放的指令为了与和已经发放的指令具有依赖关系的后续指令同时发放,而在已经发放的指令完成之前,同具有依赖关系的后续指令一起,等待发放这样的状况。(2)是因为在如果将和已经发放的指令具有依赖关系的后续指令作为指令发放的起始指令实施了分组,则使并行度得到提高的情况下,可以减少因其后续指令不作为起始指令导致的分组效率的下降。附图说明图1是比较由理想的指令分组及现有硬件中的指令分组得到的执行性能的附图。图2是表示现有硬件(以往的处理器)结构的附图。图3是表示由现有硬件实施的指令分组细节的附图。图4是表示本专利技术实施方式所涉及的处理器结构的附图。图5是表示资源状态存储表一例的附图。图6是表示由本专利技术实施方式所涉及的处理器实施的分组细节的附图。图7是表示由本专利技术实施方式所涉及的处理器中的指令分组得到的执行性能的附图。图8是非就绪状态的资源检测处理的流程图。图9是对资源状态存储表的数据写入处理的流程图。图10是指令发放控制方法的流程图。具体实施例方式首先,在说明一般的具有超标量型体系结构的处理器之后,对于本实施方式所涉及的处理器进行说明。图1是比较由2种指令分组得到的执行性能的附图。图1的比较图由指令代码101、理想的结果102及以往结果103的各栏构成。在指令代码101中,表示出构成循环处理的指令代码,指令代码101包括分支目的地的标号、指令代码的助记表示和指令要参照或定义的资源。这里,执行指令代码101所示的各指令的处理器(未图示)最大可并行执行3个指令,并且各由1个要件构成了加载·存储运算器、积和运算本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:山名智寻,
申请(专利权)人:松下电器产业株式会社,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。