CN101681261B - 运算处理装置及其控制方法 - Google Patents
运算处理装置及其控制方法 Download PDFInfo
- Publication number
- CN101681261B CN101681261B CN200780053423.8A CN200780053423A CN101681261B CN 101681261 B CN101681261 B CN 101681261B CN 200780053423 A CN200780053423 A CN 200780053423A CN 101681261 B CN101681261 B CN 101681261B
- Authority
- CN
- China
- Prior art keywords
- instruction
- thread
- entrance
- reservation station
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 34
- 230000008569 process Effects 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 18
- 238000012423 maintenance Methods 0.000 claims description 12
- 230000004087 circulation Effects 0.000 description 83
- 230000006870 function Effects 0.000 description 31
- 230000009471 action Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 23
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000005755 formation reaction Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 230000002045 lasting effect Effects 0.000 description 5
- 230000003750 conditioning effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Abstract
在用于将多个线程以同步多线程方式动作的指令执行控制装置中设置了线程选择电路(30),其在以同步多线程动作之时,检测到指令在一定期间无法完成的状态,则控制全部的保留站(5、6、7)仅能够以决定的线程执行。在无法从保留站(5、6、7)执行的入口存在的状态时,通过停止连续执行的线程的执行,能够将无法执行的线程的入口形成为能够执行的状态。
Description
技术领域
本发明涉及多个线程以同步多线程方式动作在无序(Out-Of-Order)处理中进行指令控制的运算处理装置及其控制方法,特别是涉及一种防止以同步多线程方式动作时发生挂起状态的运算处理装置及其控制方法。
背景技术
一般要求CPU(Central Processor Unit)的处理高速化。因此,目前为止使用了各种各样的技术来提高CPU的处理。作为其方法之一,存在流水线处理、进行并行处理的超标量(Superscalar)方式、以及根据输入数据已完成的指令执行而不按照程序指令的顺序执行的无序执行方式。
无序执行方式是在即使前面的指令处理所需要的数据未准备好而后面的指令处理所需要的数据已准备好的情况下,基于后面的指令优先执行的用于提高CPU的性能的技术(例如,参照专利文献1)。
例如,在按照程序记述的顺序处理指令的情况下,假定前一指令处理1是涉及存储器访问的指令,而后一指令处理2是不涉及存储器访问的指令,则与指令处理1的存储器访问并行执行指令处理2,在执行指令处理2后,执行存储器访问结束的指令处理1。
并且,人们还提出了一种不是运行单一程序而是运行多个程序来提高CPU的处理的多线程方式(例如,参照专利文献2)。
运行多个程序的多线程方式需要准备多组CPU的可编程资源,从软件角度来看,表面上好像可以看到多个CPU,因此是能够执行多个程序的构造。
作为该多线程的方式之一存在VMT(Vertical Multi Threading)方式。该方式同时只能运行一个程序,发生长时间的数据等待时或者以一定的时间间隔等切换程序运行。VMT方式的电路量必须根据程序的数量准备可编程资源,因为同时运行一个程序,所以追加的电路量也少,实现起来容易。
另一方面,作为其他的多线程方式存在多个程序同时运行的同步多线程方式(SMT方式)。该方式因为多个程序同时运行,因此与单一程序运行时相比可预料电路的控制变得复杂、以及资源会增加,但是因为是多个程序同步地运行,所以能够高效地使用电路。
用于处理无序执行的保留站(reservation station)的控制,能够从功能的执行的准备完成的入口(entry)进行功能的执行。
以流水线处理进行功能的执行,在执行功能的执行所需要的时间不同的种类的指令的情况下,保留站控制入口的执行,以便使输出功能的执行的结果的定时(timing)不相同。
图15是浮点用保留站的入口执行控制的时序图。在浮点运算中,流水线处理所执行的结果被存储于结果寄存器,但是保留站以存储于结果寄存器的定时不重叠的方式选择执行的入口。
图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状态,处于没有被指令解码器解码指令的状态(指令解码器停止的状态)。指令没有被解码而在保留站没有生成新的入口,因此无法执行的入口(图16的2循环的入口)例如循环T5能够执行,变得能够完成指令。
专利文献1:日本特开2007-87108号公报
专利文献2:日本特表2006-502504号公报(WO2004/034209号)
另一方面,在同步多线程方式中,以线程间共有保留站的入口而构成的情况下,与保留站的入口的线程没有关系,将在功能的执行的准备完成的入口中、输出先执行入口的结果的定时不相同那样的入口,作为能够执行的入口被保留站选择并执行。
在该同步多线程方式中,与单线程方式同样,即使是在功能的执行的准备完成的入口的情况下,有时候发生因输出先执行入口的结果的定时而不能成为能够执行的入口。这样的状况连续且长时间持续的情况下,无法从保留站执行。
图17表示同步多线程中两个线程0、1动作时,线程0中执行需要4循环的入口连续从保留站执行,通过指令解码器将执行需要4循环的指令解码的状况的例子。
这样的状况中,若线程1中,执行需要2循环的入口被指令解码器解码之后,线程0中执行需要4循环的入口连接地被解码,则执行需要2循环的线程1的入口即使想要从保留站执行,因为在先指令和存储于结果寄存器的定时相同,因此处于不能执行的状态。
在同步多线程的情况下,与单线程方式不同,即使是在发生了无法从保留站执行的入口的情况下,其他的线程能够动作而资源不会形成FULL的状态,因此不会如单线程那样指令解码器停止。
即,在同步多线程方式中,线程0的指令即使在执行指令后也能够完成,因此指令解码器能够将线程0的指令解码。因此,线程0能够继续动作而不会停止。
但是,线程1的入口处于无法从保留站执行的状态,因此,无法完成指令而陷于挂起状态。
即,在无法从保留站执行的状态的情况下,将在一定期间无法完成指令的状态(挂起状态)检测为异常状态,CPU停止。
发明内容
因此,本发明的目的在于,提供一种用于在同步多线程方式的处理中,在成为挂起状态之前,使保留站的入口成为能够执行的状态的运算处理装置及其控制方法。
另外,本发明的其他的目的在于,提供一种用于在同步多线程方式的处理中,使保留站的入口成为能够执行的状态,并且防止性能大幅地降低的运算处理装置及其控制方法。
另外,本发明的其他的目的还在于,提供一种用于在同步多线程方式的处理中,使保留站的入口成为能够执行的状态,并且防止CPU的停止的运算处理装置及其控制方法。
为了实现其目的,本发明的运算处理装置是执行分别包括多个指令的多个线程的运算处理装置,其具有:解码指令的指令解码器;保留站,基于所述指令解码器的解码结果来保持多个入口,其中,该入口保持识别指令的指令识别符和识别所述指令的线程的线程识别符;选择部,选择保持与从所述保留站能够执行的指令对应的指令识别符的入口,并且在所述多个线程内检测到任一个线程所含有的指令在一定期间内未完成的情况下,基于所述入口所保持的所述线程识别符按照所述多个线程交替地执行的方式从所述保留站选择所述入口;以及执行部,执行与所述选择出的入口所保持的指令识别符对应的指令。
另外,本发明的运算处理装置的控制方法是执行分别包括多个指令的多个线程的运算处理装置的控制方法,其特征在于,所述运算处理装置所具有的指令解码器对指令进行解码;所述运算处理装置所具有的保留站,基于所述指令解码器的解码结果来保持多个入口,其中,该多个入口分别具有识别指令的指令识别符和识别所述指令的线程的线程识别符;所述运算处理装置所具有的选择部,选择保持与能够从所述保留站执行的指令对应的指令识别符的入口,并且在所述多个线程内检测到任一个线程所含有的指令在一定期间内未完成的情况下,基于所述入口所保持的所述线程识别符按照所述多个线程交替地执行的方式从所述保留站选择所述保持的入口;以及所述运算处理装置所具有的执行部,执行与所述选择出的入口所保持的指令识别符对应的指令。
另外,本发明优选地,所述选择部在所述多个线程内检测出任一个线程所包含的指令在一定期限内未完成的情况下,变更对根据时间的经过而交替地进行选择的线程进行变更的周期。
另外,本发明优选地,所述选择部在被检测出在所述一定期间内未完成的指令已经完成时,结束基于各入口所保持的线程识别符按照所述多个线程交替地执行的方式从所述保留站选择入口的控制。
另外,本发明优选地,所述保留站具有入口生成电路,其使所述保留站所具有的入口保持来自所述指令解码器的指令识别符,所述选择部具有:线程选择电路,其在所述多个线程内检测出任一个线程所含有的指令在一定期间内未完成的情况下,按照属于所述多个线程的指令交替地执行的方式选择线程编号;可执行选择电路,其在由所述线程选择电路选择出的线程编号与各入口所保持的线程识别符一致的情况下,使与对一致的线程识别符进行保持的入口所保持的指令识别符对应的指令能够从所述保留站执行;以及执行入口选择电路,其选择对与从所述保留站可执行的指令对应的指令识别符进行保持的入口。
另外,本发明优选地,所述执行入口选择电路在保持与所述可执行的指令对应的指令识别符的入口的定时与第一定时或者第二定时不重叠的定时,选择保持与所述可执行的指令对应的指令识别符的入口,其中,所述第一定时是执行与在先选择出的在先入口所保持的指令识别符对应的指令的定时,所述第二定时是将与所述在先入口所保持的指令识别符对应的指令的执行结果保存在结果寄存器中的定时。
在以同步多线程动作时,指令检测到一定期间没有完成的状态,全部的保留站控制为仅仅能够执行所决定的线程,因此在无法从保留站执行的入口存在的状态下,通过停止持续执行的线程的执行,从而能够使无法执行的线程的入口成为能够执行的状态。
附图说明
图1是本发明的信息处理装置的一实施方式的框图。
图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 运算处理保留站
具体实施方式
以下,基于附图按照信息处理装置、指令执行控制装置、挂起防止机构、线程选择电路、其他实施方式的顺序说明本发明实施方式。但是,本发明不限于下述实施方式,能够进行各种变形。
(信息处理装置)
图1是本发明的信息处理装置的一实施方式的整体图。如图1所示初级指令高速缓冲存储器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。
另外,针对全部被解码的指令在控制指令的完成的堆栈入口(CSE:Commit Stack Entry)9生成入口。
被解码的指令在RSA5生成入口时,即使是在加载指令的情况下,RSA5也指示操作数地址生成器10生成操作数地址,从初级数据高速缓冲存储器11读出对应的数据到定点更新缓冲器(GUB:General UpdateBuffer)13和浮点更新缓冲器(FUB:Floating Update Buffer)16。
另外,被解码的指令在RSE6、RSF7生成了入口的情况下,对各个运算器12、15进行动作,进行对应的运算处理。被解码的指令在RSA5、RSE6、RSF7生成入口的情况下,进行与GUB13和FUB16对应的寄存器重命名,从而能够进行无序执行,执行结果存储于GUB13、FUB16。
通过保留站5、6、7,无序执行的指令通过CSE9的控制,按照程序的顺序进行指令的完成。然后,仅仅对已完成的指令进行定点寄存器14或者浮点寄存器17或者程序计数器(PC,NEXT_PC)18、19等的可编程资源的更新。
分支预测机构21通过来自分支指令用保留站8的指令进行分支预测,控制取指令地址生成器1。
因此,如下所述通过保留站单元5、6、7、8,按每个运算循环选择线程,并且对操作数地址生成器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,在挂起防止模式中比较入口生成电路50、60、70、保留站54、64、74的入口和线程选择电路30的线程ID,选择存在执行可能性的入口。
执行入口选择电路56、66、76从保留站54、64、74的入口选择存在执行可能性的入口,向功能执行部10、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而不同。但是,各保留站5、6、7分别选择,因此有时执行线程编号偶然相同。
另一方面,在挂起防止模式时,通过挂起防止模式中动作的线程选择电路30,形成仅仅选择的线程编号能够执行的线程编号。即,图5那样,控制成从保留站5、6、7执行的线程编号成为相同。
另外,线程选择电路30如果从CSE9得到一定时间未完成的指令完成的通知,则如图4那样,返回通常运行模式,停止线程选择动作(S14)。
这样,通常运行时,保留站与线程无关地执行能够执行的入口,但在挂起防止模式下,控制成只能执行从各保留站决定的线程。
因此,与无法执行的一个线程的入口相比,后续其他的线程的入口是分别执行的状况,因此通过停止继续执行的其他的线程的执行,能够使无法执行的一个线程的入口成为能够执行的状态。另外,保留站不是原因时,即使在挂起状态的情况下,保留站也被控制成仅仅能够执行决定的线程。
但是,如果进行这样的控制,则不是挂起状态的线程的入口处于停止执行,因此,即使在挂起状态的情况下,也能够进行不要大幅降低性能那样的控制,执行处于挂起状态的线程。
(挂起防止机构)
更详细说明图2的指令执行控制装置。图6是图2的线程选择电路30的框图,图7是图2、图6的可执行选择电路的处理流程图,图8是图6的构成的线程选择方法的说明图,图9是图6的保留站的入口的执行选择动作的说明图,图10是图6的定点保留站的入口的执行选择动作的说明图。
图6至图9以图2的浮点用保留站单元7的例子进行说明。另外,图2的定点用保留站单元6、操作数生成保留单元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)。如果不一致,则进入步骤S26。
另一方面,对于线程一致的入口,判定执行准备是否完成,如果执行准备完成,则该入口决定为下一循环中的执行入口选择电路56、66、76所选择的可能性存在的入口(S24)。例如,付与入口标记(flag)。
相反,与选择的线程不一致的入口,决定为下一循环的执行入口选择电路所选择的可能性没有(S26)。
另外,在指令被解码并且在保留站且新登录到入口的循环中,判定从入口生成电路50、60、70登录的入口的线程与线程选择电路30所选择的线程是否一致(S20)。如果不一致,则进入步骤S26。
另一方面,对于线程一致的入口,判定执行准备是否完成,如果执行准备完成,该入口决定为下一循环中的执行入口选择电路56、66、76所选择的可能性存在的入口(S24)。例如,付与入口标记。
相反,与选择的线程不一致的入口,决定为没有下一循环的执行入口选择电路所选择的可能性(S26)。
图8中说明线程选择电路30的线程选择例。从检测到某个线程的指令一定期间没有完成时,成为挂起防止模式,线程选择电路30动作。
如果移行到挂起防止模式,则最初是线程切换时间为1循环的模式,线程选择电路30中按每1个循环选择不同线程。
在定时计数器中,已计数100循环时,挂起防止模式持续的情况下,线程切换时间成为2个循环模式,线程选择电路30按每2个循环选择不同线程。
在定时计数器已计数300循环时,挂起防止模式持续的情况下,线程切换时间成为4个循环模式,线程选择电路30按每4个循环选择不同线程。
在定时计数器已计数600循环时,挂起防止模式持续的情况下,线程切换时间成为16个循环模式,线程选择电路按每16循环选择不同线程。
这样,线程选择电路30所选择线程随着时间的经过,能够以几种类型对在某一定期间连续选择相同线程动作的方式进行变更。
另外,如果指令未完成的指令完成,则从挂起防止模式返回通常运行状态,那么线程选择电路30也复位,再次处于挂起防止模式的情况下,从最初的状态(图8的情况下,是按每1个循环选择不同线程)选择。
该挂起防止模式进行动作是,以同步多线程进行动作的线程在两个以上之时,在单一线程动作的情况下,因为没有选择线程的必要,因此不会形成挂起防止模式。另外,在形成挂起防止模式时,存在没有动作的线程的情况下,没有动作的线程能够按照不会被线程选择电路选择的方式动作。
图9是通过该线程选择从图17的状态,挂起防止模式起动时的保留站的控制状态的图。
在时刻T1下挂起防止模式起动。在时刻T2下,因为在时刻T1下通过线程选择电路30选择线程0,所以执行线程0的入口。在时刻T3下,在时刻T2下通过线程选择电路30选择线程1,但是在先指令和存储于结果寄存器的定时相同,因此不能够执行。
在时刻T4下,时刻T3下通过线程选择电路30选择线程0,因此执行线程0的入口。在时刻T5下,时刻T4下通过线程选择电路30选择线程1,因此能够执行直到目前为止无法执行的线程1的入口。在时刻T6下,时刻T5下通过线程选择电路30选择线程0,因此执行线程0的入口。
之后,如果线程1的入口的指令完成,则保留站的控制从挂起防止模式返回通常运行状态。
上述的说明中是以浮点保留站为例子进行了说明。在定点保留站中,存在如图10所示那样的执行入口的制约。即,对定点用的保留站而言,被执行的入口控制成直到功能的执行完成为止不对后续的入口进行功能的执行。
从保留站执行的入口,是执行需要2循环的入口(在先指令),后续的指令也执行需要2循环的入口的情况下,图10所示,在T1下从保留站执行在先指令。在T2的定时下,执行后续指令的情况下,在先指令和执行(X)重叠,因此不能执行,在T3的定时下能够执行。
因此,如果置换为浮点的入口执行控制,则能够进行与图9同样的线程的入口的执行。
这样,在多个线程以同步多线程进行动作时,通过存储于功能的执行的结果寄存器的定时或功能的执行的定时,无法从保留站执行的入口在挂起防止模式中通过选择从保留站执行的入口的线程,能够执行,能够防止挂起状态。
接着,对这样变更切换循环的优点进行说明。图11表示以同步多线程进行动作时,得到取指令数据的时间需要长时间,因此保留站的线程1的入口,因存在未被指令解码器解码指令的原因而形成挂起防止模式的情况的例子。该例子是下述的状况,即线程0中执行需要2循环的入口连续,在定点用的保留站上,在从指令解码器解码而执行时,生成线程1中执行所需要2循环的入口时的状况。
如图11所示,在时刻T1下,线程选择电路30在1循环模式中选择线程0。在时刻T2下通过线程选择电路30能够执行被选择的线程0的入口。这时,线程选择电路30为了1循环模式而选择线程1。
在时刻T3下,即使因为执行所需的操作数数据已准备好而想要执行处于执行可能的入口,也因与在先指令的执行重叠而无法执行。这时,线程选择电路因为是1循环模式而选择线程0。在时刻T4下,执行线程0,线程选择电路30选择线程1,在时刻T5下,无法执行线程1。
这时,通过线程切换时间从1循环模式变更为2循环模式。然后,在时刻T7下,通过线程选择电路30选择线程1,在时刻T8下,能够执行线程1
图11中,不是挂起状态的线程0的指令的执行需要的时间是2循环,因此线程1的入口在成为2循环模式时能够执行。但是,线程0的指令在执行需要的时间是4循环的情况下,如果不成为4循环模式,则不能够执行线程1的入口。
这样,在成为挂起防止模式而不是因为保留站的直接的原因的情况下,对于功能的执行对后续指令进行阻止(block)处理的执行控制,优选能将作为挂起防止模式的线程选择方法的连续选择同一线程的时间设定为、比功能的执行需要的最长时间还长的时间。
因此,线程选择电路能够随着时间的经过变更选择的线程,通过连续选择相同的线程的时间,进行线程切换的控制。
另外,通过时间,也能够变更连续选择相同的线程的时间。
能够仅仅执行线程选择电路所选择线程的入口,因此可以预想比通常运行时性能更低,在线程选择电路中,连续选择相同的线程的时间越长,则性能越低,因此,通过延长阶段性选择相同线程的时间,能够延迟大幅降低性能的发生。
(线程选择电路)
接着,针对选择上述线程的线程选择电路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_THREAD_ID_1T_MODE信号是表示按照每1个循环变更选择的线程的信号,+NEXT_1T_MODE_THREAD_ID信号表示选择的线程。表示该选择线程的信号由图12得到。
其组合具备1循环、2循环、4循环、16循环的4个组合,从4个与门384-1~384-4中选择的一个线程,通过或门382而输入与门380,形成下一循环的挂起防止线程ID。
接着,图13的线程ID生成电路是决定1循环、2循环、4循环、16循环的线程的电路。在1循环模式时,每个循环线程变更,因此通过反转电路360将表示挂起防止线程ID的+HUNG_MODE_THREAD_ID的极性反转。
如果表示从线程变更后经过了2循环的+2T_MODE_THREAD_ID_CHANGE接通,则2循环模式的电路362、364、366通过与门366将表示挂起防止线程ID的+HUNG_MODE_THREAD_ID的极性反转。另外,若+2T_MODE_THREAD_ID_CHANGE关闭,则从与门364输出表示挂起防止线程ID的+HUNG_MODE_THREAD_ID。
或门362的输出,如果+2T_MODE_THREA_ID_CHANGE接通,则变更线程,如果关闭,则输出不变更线程的信号。
如果表示经过了4循环的+4T_MODE_THREAD_ID_CHANGE和表示经过了16循环的+16T_MODE_THREAD_ID_CHANGE接通,则4循环和16循环也通过同样的两个与门370、372和376和378和与门368、374的组合电路变更线程。
另外,图14是线程切换时间的变更电路。表示输出到与门342的挂起防止模式的+SET_WARNING_TO_HUNG_MODE接通,表示将该信号锁存一次、+WARNING_TO_HUNG_MODE_VALID关闭时,从与门342、或门340起动1循环模式。(成为挂起防止模式的开始。)
如果1循环模式开始,则表示切换为2循环模式的时间的、+1T_MODE_TIMER_CHANG信号关闭,表示1循环模式的、+HUNG_THREAD_ID_1T_MODE接通时,从与门352通过与门344继续1循环模式。
1循环模式中,如果到了切换时间,+1T_MODE_TIMER_CHANGE信号接通,通过与门356、或门354、与门346变更为2循环模式。
同样,就从2循环到4循环,从4循环到16循环的模式变更而言也是同样的电路。即,是与门353、355和或门351、与门348、与门359、349和或门357、与门350的构成。
这样,线程切换时间有效时,仅仅采用挂起防止中,将表示挂起防止模式和表示锁存一次的信号取与。该信号成为线程切换信号,锁存一次信号如图12所示能够选择线程。
(其他的实施方式)
在上述的实施方式中以两个线程(线程0和1)同时动作的同步多线程方式进行了说明,也适用于三个以上的线程同时动作。
以上,通过本发明的实施方式进行了说明,但是在本发明的要旨的范围内本发明能够进行各种变形,不能将其从本发明的范围中排出。
产业上的可利用性
在以同步多线程动作之时,检测到指令一定期间没有完成的状态,全部的保留站控制为仅仅能够执行所决定的线程,因此在从保留站无法执行的入口存在的状态下,通过停止持续执行的线程,能够使无法执行的线程的入口成为能够执行的状态。
Claims (6)
1.一种运算处理装置,其是利用与线程无关地执行能够执行的入口的多线程方式来执行分别包括多个指令的多个线程的运算处理装置,其特征在于,具有:
指令解码器,用于解码指令;
保留站,基于所述指令解码器的解码结果来保持多个入口,其中,该多个入口保持识别指令的指令识别符和识别所述指令的线程的线程识别符;
选择部,执行通常模式和挂起防止模式,在所述通常模式中所述选择部选择保持与从所述保留站能够执行的指令对应的指令识别符的入口,并且在所述挂起防止模式中在所述多个线程内检测到任一个线程所含有的指令在一定期间内未完成的情况下,所述选择部基于所述入口所保持的所述线程识别符按照所述多个线程交替地执行的方式从所述保留站选择所述入口;
执行部,执行与所述选择出的入口所保持的指令识别符对应的指令;以及
指令完成控制机构,按照程序的顺序对指令完成进行控制,
在所述指令完成控制机构检测到一个线程的指令滞留在保留站中,并且在一定期间内无法完成的情况下,所述选择部从所述通常模式移向按照所述多个线程交替地执行的方式来从保留站中选择入口并且变更使选择根据时间的经过而交替地进行选择的线程的时间延长的周期的所述挂起防止模式,
所述保留站具有入口生成电路,其使所述保留站所具有的入口保持来自所述指令解码器的指令识别符,
所述选择部具有:
线程选择电路,其在所述多个线程内检测出任一个线程所含有的指令在一定期间内未完成的情况下,按照属于所述多个线程的指令交替地执行的方式选择线程编号;
可执行选择电路,其在由所述线程选择电路选择出的线程编号与各入口所保持的线程识别符一致的情况下,使与对一致的线程识别符进行保持的入口所保持的指令识别符对应的指令能够从所述保留站执行;以及
执行入口选择电路,其选择对与从所述保留站可执行的指令对应的指令识别符进行保持的入口。
2.根据权利要求1所述的运算处理装置,其特征在于,
所述选择部在被检测出在所述一定期间内未完成的指令已经完成时,结束基于各入口所保持的线程识别符按照所述多个线程交替地执行的方式从所述保留站选择入口的控制。
3.根据权利要求1所述的运算处理装置,其特征在于,
所述执行入口选择电路在保持与所述可执行的指令对应的指令识别符的入口的定时与第一定时或者第二定时不重叠的定时,选择保持与所述可执行的指令对应的指令识别符的入口,其中,所述第一定时是执行与在先选择出的在先入口所保持的指令识别符对应的指令的定时,所述第二定时是将与所述在先入口所保持的指令识别符对应的指令的执行结果保存在结果寄存器中的定时。
4.一种运算处理装置的控制方法,其是利用与线程无关地执行能够执行的入口的多线程方式来执行分别包括多个指令的多个线程的运算处理装置的控制方法,其特征在于,
所述运算处理装置所具有的指令解码器对指令进行解码;
所述运算处理装置所具有的保留站,基于所述指令解码器的解码结果来保持多个入口,其中,该多个入口分别具有识别指令的指令识别符和识别所述指令的线程的线程识别符;
所述运算处理装置所具有的选择部执行通常模式和挂起防止模式,在所述通常模式中所述选择部选择保持与能够从所述保留站执行的指令对应的指令识别符的入口,并且在所述挂起防止模式中在所述多个线程内检测到任一个线程所含有的指令在一定期间内未完成的情况下,所述选择部基于所述入口所保持的所述线程识别符按照所述多个线程交替地执行的方式从所述保留站选择所述保持的入口;
所述运算处理装置所具有的执行部,执行与所述选择出的入口所保持的指令识别符对应的指令;以及
在按照程序的顺序对指令完成进行控制的指令完成控制机构检测到一个线程的指令滞留在保留站中,并且在一定期间内无法完成的情况下,所述选择部从所述通常模式移向按照多个线程交替地执行的方式来从保留站中选择入口并且变更使选择根据时间的经过而交替地进行选择的线程的时间延长的周期的所述挂起防止模式,
所述选择部具有:
线程选择电路,其在所述多个线程内检测出任一个线程所含有的指令在一定期间内未完成的情况下,按照属于所述多个线程的指令交替地执行的方式选择线程编号;
可执行选择电路,其在由所述线程选择电路选择出的线程编号与各入口所保持的线程识别符一致的情况下,使与对一致的线程识别符进行保持的入口所保持的指令识别符对应的指令能够从所述保留站执行;以及
执行入口选择电路,其选择对与从所述保留站可执行的指令对应的指令识别符进行保持的入口。
5.根据权利要求4所述的运算处理装置的控制方法,其特征在于,
在被检测出在所述一定期间内未完成的指令已经完成时,所述选择部结束基于各入口所保持的线程识别符按照所述多个线程交替地执行的方式从所述保留站选择入口的控制。
6.根据权利要求4所述的运算处理装置的控制方法,其特征在于,
所述选择部在保持与所述可执行的指令对应的指令识别符的入口的定时与第一定时或者第二定时不重叠的定时,选择保持与所述可执行的指令对应的指令识别符的入口,其中,所述第一定时是执行与在先选择出的在先入口所保持的指令识别符对应的指令的定时,所述第二定时是将与所述在先入口所保持的指令识别符对应的指令的执行结果保存在结果寄存器中的定时。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/000653 WO2008155800A1 (ja) | 2007-06-20 | 2007-06-20 | 命令実行制御装置及び命令実行制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101681261A CN101681261A (zh) | 2010-03-24 |
CN101681261B true CN101681261B (zh) | 2014-07-16 |
Family
ID=40155965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780053423.8A Expired - Fee Related CN101681261B (zh) | 2007-06-20 | 2007-06-20 | 运算处理装置及其控制方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7958339B2 (zh) |
EP (1) | EP2159689A4 (zh) |
JP (1) | JP5104863B2 (zh) |
KR (1) | KR101100145B1 (zh) |
CN (1) | CN101681261B (zh) |
WO (1) | WO2008155800A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9575802B2 (en) | 2014-10-28 | 2017-02-21 | International Business Machines Corporation | Controlling execution of threads in a multi-threaded processor |
US11080064B2 (en) | 2014-10-28 | 2021-08-03 | International Business Machines Corporation | Instructions controlling access to shared registers of a multi-threaded processor |
KR101820221B1 (ko) | 2014-12-14 | 2018-02-28 | 비아 얼라이언스 세미컨덕터 씨오., 엘티디. | 프로그래머블 로드 리플레이 억제 메커니즘 |
EP3055769B1 (en) | 2014-12-14 | 2018-10-31 | VIA Alliance Semiconductor Co., Ltd. | Mechanism to preclude load replays dependent on page walks in out-of-order processor |
US10146540B2 (en) | 2014-12-14 | 2018-12-04 | Via Alliance Semiconductor Co., Ltd | Apparatus and method to preclude load replays dependent on write combining memory space access in an out-of-order processor |
US10114646B2 (en) | 2014-12-14 | 2018-10-30 | Via Alliance Semiconductor Co., Ltd | Programmable load replay precluding mechanism |
US10089112B2 (en) | 2014-12-14 | 2018-10-02 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on fuse array access in an out-of-order processor |
US10228944B2 (en) | 2014-12-14 | 2019-03-12 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method for programmable load replay preclusion |
US10146547B2 (en) | 2014-12-14 | 2018-12-04 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method to preclude non-core cache-dependent load replays in an out-of-order processor |
US10083038B2 (en) | 2014-12-14 | 2018-09-25 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on page walks in an out-of-order processor |
US10108420B2 (en) | 2014-12-14 | 2018-10-23 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on long load cycles in an out-of-order processor |
US10108430B2 (en) | 2014-12-14 | 2018-10-23 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on off-die control element access in an out-of-order processor |
US9740271B2 (en) | 2014-12-14 | 2017-08-22 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method to preclude X86 special bus cycle load replays in an out-of-order processor |
WO2016097796A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Mechanism to preclude i/o-dependent load replays in out-of-order processor |
US10175984B2 (en) | 2014-12-14 | 2019-01-08 | Via Alliance Semiconductor Co., Ltd | Apparatus and method to preclude non-core cache-dependent load replays in an out-of-order processor |
WO2016097811A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Mechanism to preclude load replays dependent on fuse array access in out-of-order processor |
US10088881B2 (en) | 2014-12-14 | 2018-10-02 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude I/O-dependent load replays in an out-of-order processor |
EP3055768B1 (en) * | 2014-12-14 | 2018-10-31 | VIA Alliance Semiconductor Co., Ltd. | Mechanism to preclude uncacheable-dependent load replays in out-of-order processor |
US10108421B2 (en) | 2014-12-14 | 2018-10-23 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude shared ram-dependent load replays in an out-of-order processor |
WO2016097797A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Load replay precluding mechanism |
JP6286065B2 (ja) | 2014-12-14 | 2018-02-28 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | アウトオブオーダープロセッサの書き込み結合メモリ領域アクセスに依存するロードリプレイを除外する装置及び方法 |
US10108429B2 (en) | 2014-12-14 | 2018-10-23 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude shared RAM-dependent load replays in an out-of-order processor |
US10146539B2 (en) | 2014-12-14 | 2018-12-04 | Via Alliance Semiconductor Co., Ltd. | Load replay precluding mechanism |
US9804845B2 (en) | 2014-12-14 | 2017-10-31 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method to preclude X86 special bus cycle load replays in an out-of-order processor |
US10127046B2 (en) | 2014-12-14 | 2018-11-13 | Via Alliance Semiconductor Co., Ltd. | Mechanism to preclude uncacheable-dependent load replays in out-of-order processor |
US9703359B2 (en) | 2014-12-14 | 2017-07-11 | Via Alliance Semiconductor Co., Ltd. | Power saving mechanism to reduce load replays in out-of-order processor |
WO2016097792A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method to preclude load replays dependent on write combining memory space access in out-of-order processor |
US10108428B2 (en) | 2014-12-14 | 2018-10-23 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on long load cycles in an out-of-order processor |
US10120689B2 (en) | 2014-12-14 | 2018-11-06 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on off-die control element access in an out-of-order processor |
JP6477248B2 (ja) * | 2015-05-22 | 2019-03-06 | 富士通株式会社 | 演算処理装置及び演算処理装置の処理方法 |
JP7020304B2 (ja) * | 2018-06-07 | 2022-02-16 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1117319C (zh) * | 1997-10-23 | 2003-08-06 | 国际商业机器公司 | 在多线程处理器中改变线程优先级的方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658447B2 (en) * | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
US6076157A (en) * | 1997-10-23 | 2000-06-13 | International Business Machines Corporation | Method and apparatus to force a thread switch in a multithreaded processor |
JP2000010800A (ja) | 1998-06-19 | 2000-01-14 | Toshiba Corp | 計算機システムに於けるスレッド制御装置、及び同システムに於けるスレッド制御方法 |
JP3560482B2 (ja) | 1998-12-17 | 2004-09-02 | 富士通株式会社 | 命令制御装置 |
US6807624B1 (en) | 1998-12-17 | 2004-10-19 | Fujitsu Limited | Instruction control device and method therefor |
JP3490005B2 (ja) | 1998-12-17 | 2004-01-26 | 富士通株式会社 | 命令制御装置及びその方法 |
US6535905B1 (en) * | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
JP3714597B2 (ja) * | 2000-07-03 | 2005-11-09 | 富士重工業株式会社 | 鍛造方法及び鍛造装置 |
US20050033831A1 (en) * | 2002-10-08 | 2005-02-10 | Abbas Rashid | Advanced processor with a thread aware return address stack optimally used across active threads |
US6904511B2 (en) | 2002-10-11 | 2005-06-07 | Sandbridge Technologies, Inc. | Method and apparatus for register file port reduction in a multithreaded processor |
US20040216103A1 (en) * | 2003-04-24 | 2004-10-28 | International Business Machines Corporation | Mechanism for detecting and handling a starvation of a thread in a multithreading processor environment |
JP4327008B2 (ja) * | 2004-04-21 | 2009-09-09 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP4952580B2 (ja) | 2005-04-21 | 2012-06-13 | 富士通株式会社 | プロセッサ装置 |
JP5028774B2 (ja) | 2005-09-22 | 2012-09-19 | 富士通株式会社 | 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 |
-
2007
- 2007-06-20 KR KR1020097026497A patent/KR101100145B1/ko not_active IP Right Cessation
- 2007-06-20 EP EP07790179A patent/EP2159689A4/en not_active Withdrawn
- 2007-06-20 WO PCT/JP2007/000653 patent/WO2008155800A1/ja active Application Filing
- 2007-06-20 JP JP2009520141A patent/JP5104863B2/ja not_active Expired - Fee Related
- 2007-06-20 CN CN200780053423.8A patent/CN101681261B/zh not_active Expired - Fee Related
-
2009
- 2009-12-07 US US12/591,994 patent/US7958339B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1117319C (zh) * | 1997-10-23 | 2003-08-06 | 国际商业机器公司 | 在多线程处理器中改变线程优先级的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2159689A1 (en) | 2010-03-03 |
CN101681261A (zh) | 2010-03-24 |
US7958339B2 (en) | 2011-06-07 |
JPWO2008155800A1 (ja) | 2010-08-26 |
JP5104863B2 (ja) | 2012-12-19 |
WO2008155800A1 (ja) | 2008-12-24 |
KR20100009593A (ko) | 2010-01-27 |
KR101100145B1 (ko) | 2011-12-29 |
EP2159689A4 (en) | 2011-01-05 |
US20100095092A1 (en) | 2010-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681261B (zh) | 运算处理装置及其控制方法 | |
US10055228B2 (en) | High performance processor system and method based on general purpose units | |
JP4287799B2 (ja) | プロセッサシステムおよびスレッド切り替え制御方法 | |
JP5548037B2 (ja) | 命令発行制御装置及び方法 | |
EP2425329B1 (en) | Method and apparatus for scheduling the issue of instructions in a multithreaded microprocessor | |
JPH03282958A (ja) | 電子計算機 | |
US7581222B2 (en) | Software barrier synchronization | |
US20170123797A1 (en) | Hardware-based run-time mitigation of conditional branches | |
EP3384377B1 (en) | Data processing | |
EP2782004B1 (en) | Opportunistic multi-thread method and processor | |
JP5201140B2 (ja) | 同時マルチスレッドの命令完了制御装置 | |
US8151097B2 (en) | Multi-threaded system with branch | |
US11645081B2 (en) | Handling exceptions in a multi-tile processing arrangement | |
US11449338B2 (en) | Handling exceptions in a multi-tile processing arrangement | |
KR20140001887A (ko) | 다중프로세서 시스템에서의 예외 제어 | |
JP5104862B2 (ja) | 命令実行制御装置及び命令実行制御方法 | |
WO2016103092A1 (en) | Run-time code parallelization with continuous monitoring of repetitive instruction sequences | |
US20190196816A1 (en) | Method and System for Detection of Thread Stall | |
CN109582367A (zh) | 一种带有流水线时分复用调度器的处理器结构 | |
US20230004394A1 (en) | Thread priorities using misprediction rate and speculative depth | |
JP2000020310A (ja) | プロセッサ | |
JP6225554B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JPH04308930A (ja) | 電子計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140716 Termination date: 20150620 |
|
EXPY | Termination of patent right or utility model |