专利名称:指令执行控制装置以及指令执行控制方法
技术领域:
本发明涉及多个线程以同步多线程方式动作在无序(Out-Of-Order) 处理中进行指令控制的指令执行控制装置以及指令执行控制方法,特别是 涉及一种防止以同步多线程方式动作时发生挂起状态的指令执行控制装 置以及指令执行控制方法。
背景技术:
一般:要求CPU (Central Processor Unit)的处理高速化。因此,目前 为止4吏用了各种4^样的技术来提高CPU的处理。作为其方法之一,存在 流水线处理、进行并行处理的超标量(Superscalar)方式、以及根据输入 数据已完成的指令执行而不按照程序指令的顺序执行的无序执行方式。
无序执行方式是在即使前面的指令处理所需要的数据未准备好而后面 的指令处理所需要的数据已准备好的情况下,基于后面的指令优先执行的 用于提高CPU的性能的技术(例如,参照专利文献1 )。
例如,在按照程序记述的顺序处理指令的情况下,假定前一指令处理 1是涉及存储器访问的指令,而后一指令处理2是不涉及存储器访问的指 令,则与指令处理l的存储器访问并行执行指令处理2,在执行指令处理2 后,执行存储器访问结束的指令处理l。
并且,人们还提出了 一种不是运行单一程序而是运行多个程序来提高 CPU的处理的多线程方式(例如,参照专利文献2)。
运行多个程序的多线程方式需要准备多组CPU的可编程资源,从软件 角度来看,表面上好像可以看到多个CPU,因此是能够执行多个程序的构 造。
作为该多线程的方式之一存在VMT(Vertical Multi Threading)方式。 该方式同时只能运行一个程序,发生长时间的数据等待时或者以一定的时
5间间隔等切换程序运行。VMT方式的电路量必须根据程序的数量准备可 编程资源,因为同时运行一个程序,所以追加的电路量也少,实现起来容易。
另一方面,作为其他的多线程方式存在多个程序同时运行的同步多线 程方式(SMT方式)。该方式因为多个程序同时运行,因此与单一程序运 行时相比可预料电路的控制变得复杂、以及资源会增加,但是因为是多个 程序同步g行,所以能够高效地使用电路。
用于处理无序执行的保留站(reservation station)的控制,能够从功 能的执行的准备完成的入口 (entry)进行功能的执行。
以流水线处理进行功能的执行,在执行功能的执行所需要的时间不同 的种类的指令的情况下,保留站控制入口的执行,以便使输出功能的执行 的结果的定时(timing)不相同。
图15是浮点用保留站的入口执行控制的时序图。在浮点运算中,流水 线处理所执行的结果被存储于结果寄存器,但是保留站以存储于结果寄存 器的定时不重叠的方式选"^执;f亍的入口 。
图15中表示从保留站执行的入口是执行需要4循环的入口 (在先指 令),而后续的指令是执行需要2循环的入口的情况下的后续指令的控制 例。
图15中,T1 T7表示循环,P表示从保留站选择执行入口的处理,B 表示功能的执行所需要的操作数数据的读出处理,X表示功能执行以及在 最后的循环中将执行结果存储于结果寄存器的处理,U表示将功能的执行 的结果存储于寄存器更新緩冲器的处理。
对于先指令而言,功能执行需要X1、 X2、 X3、 X4的4循环,对于后 续指令而言,功能执行需要X1、 X2的2循环。在循环T1中,当保留站 选择了在先指令的情况下,因为U未重叠,因此T2的定时下能够执行2 循环的后续指令。在T3的定时下,当执行了 2循环的后续指令的情况下, 4循环的在先指令和存储于结果寄存器的定时U (T7)相同,因此不能执 行。然后,在T4的定时下能够执行2循环的后续指令。
图16表示通过这样的流水线控制的保留站的选择动作,以单线程动作的情况下的入口执行例,图中,P、 B、 X、 U表示的与图15中所示的相同。
图16是执行需要4循环的入口连续并被保留站选择时,执行需要2循环的入口被指令解码器解码之后,执行需要4循环的入口被指令解码器连续解码的状况的时序图。
保留站从能够执行的入口发行(执行)入口。另外,关于存在能够同步执行几个的入口的情况,按照被解码的顺序选择入口而执行。
因此,即使是在功能的执行的准备完成的入口下,有时候也发生因输出先执行入口的结果的定时而不能成为能够执行的入口 。
若这样的状况连续且长时间持续的情况下,则无法从保留站执行。图16中,执行需要2循环的入口处于能够执行,即使想要从保留站执行,因为4循环的在先指令和存储于结果寄存器的定时相同,因此处于不能执行的状态。
在单线程的情况下,在形成>^保留站无法发行(issue)的状态后,如果存在某个一定数量的指令被指令解码器解码,则指令完成控制功能的入口成为FULL状态。
即,因为无法从保留站发行而使指令无法完成。因此,后续的指令虽能够从保留站执行,但是处于指令无法完成的状态。
因此,控制指令的完成的功能的入口成为FULL状态,处于没有被指令解码器解码指令的状态(指令解码器停止的状态)。指令没有被解码而在保留站没有生成新的入口 ,因此无法执行的入口 (图1 6的2循环的入口 )例如循环T5能够执行,变得能够完成指令。
专利文献l:日本特开2007-87108号 >净艮
专利文献2:日本特表2006-502504号乂>才艮(WO2004/034209号)
另一方面,在同步多线程方式中,以线程间共有保留站的入口而构成的情况下,与保留站的入口的线程没有关系,将在功能的执行的准备完成的入口中、输出先执行入口的结果的定时不相同那样的入口,作为能够执行的入口被保留站选择并执行。在该同步多线程方式中,与单线程方式同样,即使是在功能的执行的准备完成的入口的情况下,有时候发生因输出先执行入口的结果的定时而不能成为能够执行的入口。这样的状况连续且长时间持续的情况下,无法从保留站执行。
图17表示同步多线程中两个线程0、 l动作时,线程0中执行需要4循环的入口连续从保留站执行,通过指令解码器将执行需要4循环的指令解码的状况的例子。
这样的状况中,若线程1中,执行需要2循环的入口被指令解码器解码之后,线程O中执行需要4循环的入口连接地被解码,则执行需要2循环的线程1的入口即使想要从保留站执行,因为在先指令和存储于结果寄存器的定时相同,因此处于不能执行的状态。
在同步多线程的情况下,与单线程方式不同,即佳是在发生了无法从保留站执行的入口的情况下,其他的线程能够动作而资源不会形成FULL的状态,因此不会如单线程那样指令解码器停止。
即,在同步多线程方式中,线程0的指令即使在执行指令后也能够完成,因此指令解码器能够将线程O的指令解码。因此,线程O能够继续动作而不会淨止。
但是,线程l的入口处于无法从保留站执行的状态,因此,无法完成指令而陷于桂起状态。
即,在无法从保留站执^f亍的状态的情况下,将在一定期间无法完成指令的状态(挂起状态)检测为异常状态,CPU停止。
发明内容
因此,本发明的目的在于,提供一种用于在同步多线程方式的处理中,在成为挂起状态之前,使保留站的入口成为能够执行的状态的指令执行控制装置以及指令执行控制方法。
另外,本发明的其他的目的在于,提供一种用于在同步多线程方式的处理中,使保留站的入口成为能够执行的状态,并且防止性能大幅地降低的指令M控制装置以及指令执行控制方法。
8另外,本发明的其他的目的还在于,提供一种用于在同步多线程方式
的处理中,使保留站的入口成为能够执行的状态,并且防止CPU的停止
的指令执行控制装置以及指令执行控制方法。
为了实现其目的,本发明的指令执行控制装置是多个线程以同步多线
程方式动作而无序处理中进行指令控制的指令执行控制装置,其具有解
码指令的指令解码器;运算处理保留站,其接受来自指令解码器的解码结
果、控制运算处理;主存储器操作数生成用保留站,其控制存储于主存储器的操作数的地址的生成;指令控制机构,其按照程序的顺序控制所执行的指令以便完成指令;挂起防止电路,其在上述指令控制^I检测到一个线程的指令在一定期间无法完成的情况下,进行控制,以便将能够从上述全部的保留站执行的入口的线程选择为与上述被检测到在 一 定期间无法完成的线程相同的线程。
另外,本发明的指令执行控制方法是多个线程以同步多线程方式动作而无序处理中进行指令控制的指令执行控制方法,其具有通iti^算处理保留站,根据来自指令解码器的解码结果来生成入口,并将执行准备完的入口向运算处理^J发行的步骤;由控制存储于主存储器的操作数的地址的生成的主存储器操保留站,从上述指令生成入口,并将执行准备完成的入口向主存储器操作数地址生成器发行的步骤;按照程序的顺序控制所执行的指令以便完成指令的步骤;在检测到一个线程的指令在一定期间无法完成的情况下,将能够从上述全部的保留站执行的入口的线程选捧为与上述检测到在一定期间无法完成的线程相同的线程的步骤。
另外,本发明优选地,上述桂起防止电路具有线程选择电路,其用于在检测到在上述一定期间无法完成的情况下,将从上述保留站执行的入口的线程选择为与上述被检测到在一定期间无法完成的线程相同的线程。
另外,本发明优选地,上述挂起防止电路还具有可执行选择电路,其用于在上述线程选择电路所选择的线程和上述保留站的入口的线程一致时,能够将上述入口从上述保留站执行上述入口。
另外,本发明优选地,上述线程选择电路由随着时间的经过而变更选择的线程的线程选择电路构成。另外,本发明优选地,上述线程选择电路根据表示动作中线程的信号来禁止选择不动作的线程。
另外,本发明优选地,上述挂起防止电路在上述未完成的指令完成时停止上述保留站的控制。
另外,本发明优选地,上述保留站具有使来自上述指令解码器的指令进入到上述保留站的入口的入口生成电路;选择能够从上述保留站执行的入口的选择执行入口选择电路。
另外,本发明优选地,上述运算处理保留站在上述执行的准备完成的入口的定时和上述在先入口的执行或者执行结果的存储定时不重叠的定时,执行上述执行的准备完成的入口。
在以同步多线程动作时,指令检测到一定期间没有完成的状态,4^P的保留站控制为仅仅能够执行所决定的线程,因此在无法从保留站执行的入口存在的状态下,通过停止持续执行的线程的执行,从而能够4吏无法执行的线程的入口成为能够执行的状态。
图l是本发明的信息处理装置的一实施方式的框图。
图2是本发明的一实施方式的指令执行控制装置的构成图。
图3是图2的指令执行控制装置的动作流程图。
图4是图2的指令执行控制装置的动作说明图。
图5是通过图2的指令执行控制装置进行线程选择动作的说明图。
图6是图2的线程选择电路的框图。
图7是图6的可执行选择电路的执行选择处理流程图。
图8是图6的线程选择电路的线程选择动作的说明图。
图9是图2的浮点保留站的动作说明图。
图10是图2的定点保留站的动作说明图。
图11是图6的线程选择电路的线程时间变更动作的说明图。图12是图6的线程决定电路的电路图。图13是图6的线程ID生成电路的电路图。图14是图6的线程切换时间选择电路的电路图。图15是以往的保留站的入口执行动作的说明图。图16是以往的单线程方式的入口执行动作的说明图。图17是以往的多线程方式的入口执行动作的说明图。附图标记说明
1取指令地址生成器
2初级指令高速緩冲存储器
3指令緩沖器
4指令解码器
5、 6、 7保留站
10操作数地址生成器
12、 15运算器
13、 16更新緩冲器
14、 17寄存器30线程选择电路
50、 60、 70 入口生成电路
52、 62、 72可执行选择电路
56、 66、 76执行入口选择电路54主存储器保留站
64、 74运算处理保留站
具体实施例方式
以下,基于附图按照信息处理装置、指令执行控制装置、挂起防止机构、线程选择电路、其他实施方式的顺序说明本发明实施方式。但是,本发明不限于下述实施方式,能够进行各种变形。(信息处理装置)
图l是本发明的信息处理装置的一实施方式的整体图。如图l所示初
级指令高速緩冲存储器2和初级数据高速緩冲存储器11,与连接于未图示 的主存储器的二级高速緩冲存储器相连接。
为了取指令,取指令地址生成器1选择指令地址,针对所选择的指令 地址将取指令要求给与初级指令高速緩冲存储器2。从初级指令高速緩沖 存储器2取出的指令被存储于指令緩冲器3。从指令緩冲器3按照程序的 顺序对指令解码器4供应指令。
指令解码器4按照程序的顺序进行指令的解码。指令解码器4基于解 码的指令种类来生成控制指令执行的主存储器操作数地址生成用保留站 单元(RSA: Reservation Station for Address generate) 5、定点运算用保 留站单元(RSE: Reservation Station for Execute) 6、浮点运算用保留站 单元(RSF: Reservation Station for Floating) 7、分支指令用保留站单元 (RSBR: Reservation Station for BRanch ) 8需要的入口 。
即,指令解码器4将取出的指令按照顺序解码,将解码的指令按照指 令的种类分别存储于控制功能的执行的保留站单元5、 6、 7、 8、 9。另夕卜, 保留站单元具备运算用的保留站单元6、7和主存储器操作数地址生成用的 保留站单元5。
另外,针对全部4皮解码的指令在控制指令的完成的堆栈入口 (CSE: Commit Stack Entry) 9生成入口 。
,皮解码的指令在RSA5生成入口时,即使是在加栽指令的情况下, RSA5也指示^Mt数地址生成器10生成操作数地址,从初级数据高速緩沖 存储器11读出对应的数据到定点更新緩沖器(GUB: General Update Buffer) 13和浮点更新緩冲器(FUB: Floating Update Buffer) 16。
另外,被解码的指令在RSE6、 RSF7生成了入口的情况下,对各个运 算器12 、 15进行动作,进行对应的运算处理。被解码的指令在RSA5 、 RSE6 、 RSF7生成入口的情况下,进行与GUB13和FUB16对应的寄存器重命名, 从而能够进行无序执行,执行结果存储于GUB13、 FUB16。
通过保留站5、 6、 7,无序执行的指令通过CSE9的控制,按照程序
12的顺序进行指令的完成。然后,仅仅对已完成的指令进行定点寄存器14 或者浮点寄存器17或者程序计数器(PC, NEXT—PC ) 18、 19等的可编 程资源的更新。
分支预测机构21通过来自分支指令用保留站8的指令进行分支预测, 控制取指令地址生成器l。
因此,如下所述通过保留站单元5、 6、 7、 8, M个运算循环选择线 程,并JLxt操作数地址生成器10、运算器12、 15指示选择的线程的入口 的执行,并且进行从寄存器14、 17选择的线程的操作数数据的读出、写入, 执行同步多线程处理。
(指令执行控制装置)
图2是本发明的指令执行控制装置的一实施方式的框图,图3是图2 的构成的动作流程图,图4是图3的动作的说明图,图5是图2至图4的 动作的执行线程的说明图。图2表示图1的RSE5、 RSE6、 RSF7的详细 图。另外,在该实施方式中,针对两个的线程(线程0和1)同步动作的 情况进行了说明,但是即使线程数三个以上也能够实现。
图2中,与图1中所示的相同的部分利用相同符号表示,保留站单元 5、 6、 7分别由入口生成电路50、 60、 70、可执行选择电路52、 62、 72、 保留站54、 64、 74、执行入口选择电路56、 66、 76构成。线程选择电路 30连接于上述各可执行选择电路52、 62、 72。
该保留站单元5、 6、 7的入口与线程0和1共享使用。即,入口存储 有表示作为入口有效的VALID信号、表示入口的线程的线程ID、表示 从架构(architecture)寄存器读出操作数数据的信号和读出地址、表示从 寄存器更新緩冲器读出的信号和读出地址、指令解码时表示按照每个指令 分配的指令的编号的指令标识符等。
如图6详细说明那样,线程选择电路30将一定时间没有完成的指令根 据图1的CSE9检测从挂起防止模式切换为运行模式,选择挂起防止线程 ID。
可执行选择电路52、 62、 72,在挂起防止模式中比^V口生成电路50、 60、 70、保留站54、 64、 74的入口和线程选择电路30的线程ID,选择存执行入口选择电路56、 66、 76从保留站54、 64、 74的入口选择存在 执行可能性的入口,向功能执行部IO、 12、 15发行。
说明该动作。多个线程在以同步多线程方式动作的情况下,保留站54、 64、 74的执行能够以无序执行。即,保留站54、 64、 74的入口,能够从 用于执行的需要的操作数数据的准备完成的入口进行执行。
由选择执行的入口的执行入口选择电路46、 56、 66选择的入口,从保 留站54、 64、 74执行。执行准备完成的入口,同时存在几个的情况下,执 行入口选择电路46、 56、 66按照被解码的顺序选择入口而执行。
另夕卜,从浮点用的保留站74执行的入口,功能的执行利用流水线处理 来执行。如果功能的执行完成,将功能的执行结果存储于结果寄存器。另 外,报告功能的执行完成,向进行指令的完成控制的功能CSE9报告执行 的完成。
指令完成控制功能CSE9,按照程序的顺序进行完成的控制。如果功 能的执行完成,能够进行指令的完成,但是由于按照程序的顺序完成,因 此如果最早的指令没有完成,则即使后续的指令的执行完成,也无法进行 指令的完成。指令的完成按照线程而完成,因此通过其他的线程,不会阻 碍指令的完成的控制,能够进行指令的完成。
另夕卜,如图15说明那样,功能的执行在流水线处理中执行的结果存储 于结果寄存器,保留站74选择执行的入口,以便存储于结果寄存器的定时 不重叠。
参照图3至图5说明图2的构成的动作。线程选择电路30在通常运行 状态中,CSE9判断是否发出检测到一定时间没有完成的指令的信号 (S10 )。线程选择电路30从CSE9接受了检测到一定时间没有完成的指令 的信号,则将运行模式变更为挂起防止模式(S12)。
在图4表示的通常运行时,不关联到线程选择电路30,因此如图5那 样,从保留站5、 6、 7执行的指令的线程,被各保留站5、 6、 7的各个选 择的入口成为执行的线程编号。即,如图5所示,对保留站的入口选择没 有线程的制限,执行的线程编号按照每个保留站5、 6、 7而不同。但是,
14各保留站5、 6、 7分别选择,因此有时执行线程编号偶然相同。
另一方面,在挂起防止模式时,通过挂起防止模式中动作的线程选择 电路30,形成仅仅选择的线程编号能够执行的线程编号。即,图5那样, 控制成从保留站5、 6、 7执行的线程编号成为相同。
另夕卜,线程选择电路30如果从CSE9得到一定时间未完成的指令完成 的通知,则如图4那样,返回通常运行模式,停止线程选择动作(S 1 4 )。
这样,通常运行时,保留站与线程无关地执行能够执行的入口, ^ 挂起防止模式下,控制成只能执行从各保留站决定的线程。
因此,与无法执行的一个线程的入口相比,后续其他的线程的入口是 分别执行的状况,因此通过停止继续执行的其他的线程的执行,能够使无 法执行的一个线程的入口成为能够执行的状态。另夕卜,保留站不是原因时, 即使在桂起状态的情况下,保留站也被控制成仅仅能够执行决定的线程。
但是,如果进行这样的控制,则不是桂起状态的线程的入口处于停止 执行,因此,即使在挂起状态的情况下,也能够进行不要大幅降低性能那 样的控制,执行处于桂起状态的线程。
(桂起防止^ )
更详细说明图2的指令执行控制装置。图6是图2的线程选择电路30 的框图,图7是图2、图6的可执行选择电路的处理流程图,图8是图6 的构成的线程选择方法的说明图,图9是图6的保留站的入口的执行选择 动作的说明图,图IO是图6的定点保留站的入口的执行选择动作的说明图。
图6至图9以图2的浮点用保留站单元7的例子进行说明。另外,图 2的定点用保留站单元6、 ^Mt数生成保留单元5也是同样的构成
通过图6说明线程选择电路30的构成。线程选择电路30基本上沿着 时间轴交替变更线程编号而输出。如图6所示,线程选择电路30具有定 时计数器32、线程切换时间选择电路34、线程ID生成电路36、线程决定 电路38、挂起防止线程ID寄存器40、挂起防止模式起动电路42。
挂起防止模式起动电路42根据检测到图1的CSE9的一定时间没有完 成的指令的检测信号,起动线程切换时间选择电路34、线程决定电路38、可执行选择电路52、 62、 72。
线程切换时间选择电路34具备表示连续选择相同线程的时间的线程 切换时间,如果是线程切换时间,则向线程决定电路38指示线程切换。线 程切换时间通过1循环加1的定时计数器32,若计数器的值成为某个值, 则能够变更线程切换时间。
通过线程切换时间和定时计数器的计数器的值,线程决定电路38选择 线程ID生成电路36的线程ID。线程ID生成电路36将与挂起防止线程 ID寄存器40的线程ID不同的线程ID向线程决定电路38输出。该线程 决定电路38所选择的线程为挂起防止线程ID,发送至可执行选择电路52、 62、 72,选择能够从保留站54、 64、 74执行的入口。
因此,线程切换时间选择电路34中通过选择线程切换时间,能够变更 随着时间的经过而选择相同线程的时间。
接着,通过图7说明可执行选择电路52、 62、 72。在挂起防止模式中, 执行入口选择电路56、 66、 76的1循环前的循环中,判定保留站54、 64、 74的入口的线程与线考呈选择电路30所选择的线考呈是否一致(S22 )。如果 不一致,则ii^步骤S26。
另一方面,对于线程一致的入口,判定执行准备是否完成,如果执行 准备完成,则该入口决定为下一循环中的执行入口选择电路56、 66、 76 所选择的可能性存在的入口 (S24)。例如,付与入口标记(flag)。
相反,与选择的线程不一致的入口,决定为下一循环的执行入口选择 电路所选择的可能性没有(S26)。
另外,在指令被解码并且在保留站且新登录到入口的循环中,判定从 入口生成电路50、 60、 70登录的入口的线程与线程选择电路30所选择的 线程是否一致(S20)。如果不一致,则i^步骤S26。
另一方面,对于线程一致的入口,判定执行准备是否完成,如果执行 准备完成,该入口决定为下一循环中的执行入口选择电路56、 66、 76所选 择的可能性存在的入口 (S24)。例如,付与入口标记。
相反,与选择的线程不一致的入口,决定为没有下一循环的执行入口
16选择电路所选择的可能性(S26)。
图8中说明线程选择电路30的线程选择例。从检测到某个线程的指令 一定期间没有完成时,成为挂起防止模式,线程选择电路30动作。
如果移行到挂起防止模式,则最初是线程切换时间为l循环的模式, 线程选择电路30中^ 1个循环选择不同线程。
在定时计数器中,已计数100循环时,桂起防止模式持续的情况下, 线程切换时间成为2个循环模式,线程选择电路30按每2个循环选择不同 线程。
在定时计数器已计数300循环时,挂起防止模式持续的情况下,线程 切换时间成为4个循环模式,线程选择电路30按每4个循环选择不同线程。
在定时计数器已计数600循环时,桂起防止模式持续的情况下,线程 切换时间成为16个循环模式,线程选择电5^每16循环选择不同线程。
这样,线程选择电路30所选择线程随着时间的经过,能够以几种类型 对在某一定期间连续选择相同线程动作的方式进行变更。
另外,如果指令未完成的指令完成,则从挂起防止模式返回通常运行 状态,那么线程选择电路30也复位,再次处于挂起防止模式的情况下,从 最初的状态(图8的情况下,是按每1个循环选择不同线程)选择。
该挂起防止模式进行动作是,以同步多线程进行动作的线程在两个以 上之时,在单一线程动作的情况下,因为没有选择线程的必要,因此不会 形成桂起防止模式。另外,在形成挂起防止模式时,存在没有动作的线程 的情况下,没有动作的线程能够按照不会被线程选择电路选择的方式动 作。
图9是通过该线程选择从图17的状态,挂起防止模式起动时的保留站 的控制状态的图。
在时刻Tl下挂起防止模式起动。在时刻T2下,因为在时刻T1下通 过线程选择电路30选择线程0,所以执行线程O的入口。在时刻T3下, 在时刻T2下通过线程选择电路30选择线程1,但是在先指令和存储于结果寄存器的定时相同,因此不能够执行。
在时刻T4下,时刻T3下通过线程选择电路30选择线程0,因此执行 线程0的入口 。在时刻T5下,时刻T4下通过线程选择电路30选择线程 1,因此能够执行直到目前为止无法执行的线程l的入口。在时刻T6下, 时刻T5下通过线程选择电路30选择线程0 ,因此执行线程0的入口 。
之后,如果线程l的入口的指令完成,则保留站的控制从桂起防止模 式返回通常运^f于状态。
上述的说明中是以浮点保留站为例子进行了说明。在定点保留站中, 存在如图IO所示那样的执行入口的制约。即,对定点用的保留站而言,被 执行的入口控制成直到功能的执行完成为止不对后续的入口进行功能的 执行。
从保留站执行的入口,是执行需要2循环的入口 (在先指令),后续 的指令也执行需要2循环的入口的情况下,图10所示,在T1下从保留站 执行在先指令。在T2的定时下,执行后续指令的情况下,在先指令和执 行(X)重叠,因此不能执行,在T3的定时下能够执行。
因此,如果置换为浮点的入口执行控制,则能够进行与图9同样的 线程的入口的执行。
这样,在多个线程以同步多线程进行动作时,通过存储于功能的执 行的结果寄存器的定时或功能的执行的定时,无法从保留站执行的入口在 挂起防止模式中通过选择从保留站执行的入口的线程,能够执行,能够防 止挂起状态。
接着,对这样变更切换循环的优点进行说明。图ll表示以同步多线 程进行动作时,得到取指令数据的时间需要长时间,因此保留站的线程1 的入口 ,因存在未被指令解码器解码指令的原因而形成桂起防止模式的情 况的例子。该例子是下述的状况,即线程O中执行需要2循环的入口连续, 在定点用的保留站上,在从指令解码器解码而执行时,生成线程l中执行 所需要2循环的入口时的状况。
如图ll所示,在时刻T1下,线程选择电路30在1循环模式中选择 线程0。在时刻T2下通过线程选择电路30能够执frML选择的线程0的入口。这时,线程选择电路30为了 l循环模式而选择线程l。
在时刻T3下,即使因为执行所需的操作数数据已准备好而想^L行 处于执行可能的入口,也因与在先指令的执行重叠而无法执行。这时,线 程选择电路因为是1循环模式而选择线程0。在时刻T4下,执行线程O, 线程选择电路30选择线程1,在时刻T5下,无法执行线程l。
这时,通过线程切换时间从l循环模式变更为2循环模式。然后, 在时刻T7下,通过线程选择电路30选择线程1,在时刻T8下,能够执 行线程l
图11中,不是挂起状态的线程O的指令的执行需要的时间是2循环, 因此线程1的入口在成为2循环模式时能够执行。但是,线程0的指令在 执行需要的时间是4循环的情况下,如果不成为4循环模式,则不能够执 行线程l的入口。
这样,在成为桂起防止模式而不是因为保留站的直接的原因的情况 下,对于功能的执行对后续指令进行阻止(block)处理的执行控制,优选 能将作为挂起防止模式的线程选择方法的连续选择同一线程的时间设定 为、比功能的执行需要的最长时间还长的时间。
因此,线程选择电路能够随着时间的经过变更选择的线程,通过连 续选择相同的线程的时间,进行线程切换的控制。
另外,通过时间,也能够变更连续选#^目同的线程的时间。
能够仅仅执行线程选择电路所选择线程的入口 ,因此可以预想比通 常运行时性能更低,在线程选择电路中,连续选择相同的线程的时间越长, 则性能越低,因此,通it^长阶段性选择相同线程的时间,能够延迟大幅 降低性能的发生。
(线程选择电路)
接着,针对选择上述线程的线程选择电路30进行说明。上述线程选择 电路30由逻辑电路构成。图12是图6的线程决定电路38的电路图,图 13是线程ID生成电路36的电路图,图14是线程切换时间选择电路34的 电路图。在图12中,线程决定电路38由与门380、或门382、 4个与门 384-1~384-4构成。在该图11中,+warning—to _hung_mode_valid
信号是表示将桂起防止模式的信号^存一次的^号。 +multi—thread一mode信号是表示以多线程状态运行的信号。与门 380是挂^防止模(,并且在多线程状态时打开。即,不是挂起防止模式 或者不是多线程状态(单线程状态)的情况下不动作。
另夕卜,+HUNG—THREADID—lT_MODE信号是表示按照每1个循 环变更选择的线禾呈的信号,+next_1t—mode_thread—id信号表示选 择的线程。表示该选择线程的信号叾图12得到。
其组合具备l循环、2循环、4循环、16循环的4个组合,从4个 与门384-1-384-4中选择的一个线程,通过或门382而输入与门380,形成 下一循环的挂起防止线程id。
接着,图13的线程id生成电路是决定1循环、2循环、4循环、16 循环的线程的电路。在l循环模式时,每个循环线程变更,因此通过反转 电路360将表示挂起防止线程i d的+hung—modejthreadjd的极 性反转。
如果表示从线程变更后经过了 2 循环的 +2t_mode_thread—id—change接通,贝'j 2循环模式的电路362、 364 、 366通过与门 366将表示桂起防止线禾呈i d 的 +hung_mode_thread_id 的极性反转。另夕卜,若 +2t—mode_thread—id—change关闭,则从与门364输出表示挂起 防止线程id的+hung—mode—thread_id。
或门362的输出,如果+2tjmode一threa—idj:hange接通,
则变更线程,如果关闭,则输出^一变更线i的信号。
如;^示经过了 4循环的+4t—MODE—THREAD—IDj:HANGE和 表示经过了 16循环的+16tmodethreadid—change接通,贝'j 4 循环和16循环也通过同样的两个与门370、 372和376和378和与门368、 374的组合电路变更线程。
另外,图14是线程切换时间的变更电路。表示输出到与门342的挂
20起防止模式的+SET—WARNING—TOJHUNG—MODE接通,表示将该信号 锁存一次、+WARNING—TO_HUNG_MODE_VALID关闭时,从与门342、 或门340起动l循环模k。
成为桂^防止^式的开始。)
如果1循环模式开始,则表示切换为2循环模式的时间的、+1T_ MODE_TIMER_CHANG信号关闭,表示1循环模式的、+HUNG _THREAD_ID_lT_MODE接通时,从与门352通过与门344继续1循环 &。
——
1循环模式中,如果到了切换时间,+1T—MODE—TIMER _CHANGE 信号接通,通过与门356、或门354、与门346变更j 2循环;^式。
同样,就从2循环到4循环,从4循环到16循环的模式变更而言也 是同样的电路。即,是与门353、 355和或门351、与门348、与门359、 349和或门357、与门350的构成。
这样,线程切换时间有效时,仅仅采用桂起防止中,将表示挂起防
止模式和表示锁存一次的信号取与。该信号成为线程切换信号,锁存一次 信号如图12所示能够选择线程。
(其他的实施方式)
在上述的实施方式中以两个线程(线程0和1)同时动作的同步多线 程方式进行了说明,也适用于三个以上的线程同时动作。
以上,通过本发明的实施方式进行了说明,但是在本发明的要旨的 范围内本发明能够进行各种变形,不能将其从本发明的范围中排出。
产业上的可利用性
在以同步多线程动作之时,检测到指令一定期间没有完成的状态,全 部的保留站控制为仅仅能够执行所决定的线程,因此在从保留站无法执行 的入口存在的状态下,通过停止持续执行的线程,能够使无法执行的线程 的入口成为能够执行的状态。
权利要求
1.一种指令执行控制装置,其是执行包括多个指令的多个线程的指令执行控制装置,其特征在于,具有指令解码器,用于解码指令;运算处理保留站,其接受来自指令解码器的解码结果、控制运算处理;主存储器保留站,其控制存储于主存储器的操作数的地址的生成;指令控制机构,其按照程序的顺序控制所执行的指令以便完成指令;挂起防止电路,其在所述指令控制机构检测到一个线程的指令在一定期间无法完成的情况下,进行控制,以便将能够从所述全部的保留站执行的入口的线程选择为与所述被检测到在一定期间无法完成的线程相同的线程。
2. 根据权利要求l所述的指令执行控制装置,其特征在于,所述挂起防止电路具有线程选择电路,其用于在检测到在所述一定 期间无法完成的情况下,将从所述保留站执行的入口的线程选择为与所 述被检测到在一 定期间无法完成的线程相同的线程。
3. 根据权利要求2所述的指令执行控制装置,其特征在于,所述挂起防止电路还具有可执行选择电路,其用于在所述线程选择 电路所选择的线程和所述保留站的入口的线程一致时,能够从所述保留 站执行所述入口。
4. 根据权利要求2所述的指令执行控制装置,其特征在于,所述线程选择电路由随着时间的经过而变更选择的线程的线程选 择电路构成。
5. 根据权利要求2所述的指令执行控制装置,其特征在于,所述线程选择电路根据表示动作中线程的信号来禁止选择不动作 的线程。
6. 根据权利要求l所述的指令执行控制装置,其特征在于, 所述挂起防止电路在所述未完成的指令完成时停止所述保留站的控制。
7. 根据权利要求l所述的指令执行控制装置,其特征在于, 所述保留站具有入口生成电路,其使来自所述指令解码器的指令进入到所述保留站;执行入口选择电路,其选择能够从所述保留站执行的入口。
8. 根据权利要求l所述的指令执行控制装置,其特征在于,所述运算处理保留站在所述执行的准备完成的入口的定时和所述 在先入口的执行定时或者执行结果的存储定时不重叠的定时,执行所述 执行的准备完成的入口。
9. 一种指令执行控制方法,其是执行包括多个指令的多个线程的 指令执行控制方法,具有以下步骤由运算处理保留站,根据来自指令解码器的解码结果来生成入口, 并将执行准备完成的入口向运算处理机构发行的步骤;由控制存储于主存储器的操作数的地址的生成的主存储器操保留 站,从所述指令生成入口,并将执行准备完成的入口向主存储器操作数 地址生成器发行的步骤;按照程序的顺序控制所执行的指令以便完成指令的步骤;在检测到一个线程的指令在一定期间无法完成的情况下,将能够从 所述全部的保留站执行的入口的线程选择为与所述检测到在一定期间 无法完成的线程相同的线程的步骤。
10. 根据权利要求9所述的指令执行控制方法,其特征在于,所述选择步骤具有下述步骤,即其在检测到在所述一定期间无法 完成的情况下,起动线程选择电路,将从所述保留站执行的入口的线程 选择为与被检测到所述在 一 定期间无法完成的线程相同的线程的步骤。
11. 根据权利要求10所述的指令执行控制方法,其特征在于, 所述选择步骤还具有判断所述线程选择电路所选择的线程和所述保留站的入口的线程 是否一致的步骤;在所述判定为一致时,能够从所述保留站执行所述入口的步骤。
12. 根据权利要求10所述的指令执行控制方法,其特征在于, 所述选择步骤具有随着时间的经过而变更选择的线程的步骤。
13. 根据权利要求10所述的指令执行控制方法,其特征在于,所述线程选择步骤具有根据表示动作中线程的信号来禁止选择不 动作的线程的步骤。
14. 根据权利要求9所述的指令执行控制方法,其特征在于, 具有在所述未完成的指令完成时结束所述选择步骤的步骤。
15. 根据权利要求9所述的指令执行控制方法,其特征在于,具有所述运算处理保留站在所述执行的准备完成的入口的定时和 所述在先入口的执行定时或者执行结果的存储定时不重叠的定时,执行 所述执行的准备完成的入口的步骤。
全文摘要
在用于将多个线程以同步多线程方式动作的指令执行控制装置中设置了线程选择电路(30),其在以同步多线程动作之时,检测到指令在一定期间无法完成的状态,则控制全部的保留站(5、6、7)仅能够以决定的线程执行。在无法从保留站(5、6、7)执行的入口存在的状态时,通过停止连续执行的线程的执行,能够将无法执行的线程的入口形成为能够执行的状态。
文档编号G06F9/38GK101681261SQ20078005342
公开日2010年3月24日 申请日期2007年6月20日 优先权日2007年6月20日
发明者吉田利雄, 秋月康伸 申请人:富士通株式会社