指令控制装置以及指令控制方法制造方法及图纸

技术编号:5518964 阅读:234 留言:0更新日期:2012-04-11 18:40
本发明专利技术在具有执行多个由一系列表示处理的指令组成的线程的SMT功能的CPU(10)中,包括:解码部(109),对多个线程的指令表示的处理进行解码;指令缓冲器(104),从线程获取指令并保持,按照线程中的顺序将保持的指令注入解码部(109);和执行流水线(220),执行由解码部(109)解码的指令的处理;解码部(109)在上述指令解码时,确认该指令可执行的条件是否具备,对于条件不具备的指令以后的由指令缓冲器(104)保持的指令,对该解码部(109)请求再次注入。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及具有同时执行多个包括一系列表示处理的指令的线程的同 步多线程功能的。
技术介绍
在由CPU代表的指令控制装置的内部,表示处理的指令经过指令 的取入(读取(Fetch ))、指令的解读(解码(decode ))、指令的执行、 执行结果的确定(提交(commit))等一系列阶段而被处理。以前,为 了使指令控制装置中的上述各阶段的处理高速化,有称作流水线的处理 系统。在流水线中,读取和解码等各阶段的处理分别由独立的小系统进 行。据此,例如能够在某个指令执行的同时并行执行其他指令,等等, 指令控制装置中的处理实现高速化。近年来,包括多个这种流水线、进一步实现处理的高速化的称作超 标量体系结构(superscalar)的处理系统正在普及。并且,作为该超标 量体系结构中的实现处理的进一步高速化的功能,有称作乱序执行的功能。图1是表示超标量体系结构中的乱序执行的概念图。该图1中表示超标量体系结构中的乱序执行的一个例子。在图1的例子中处理4个指令。各个指令经过读取(步骤S501 )、 解码(步骤S502 )、执行(步骤S503 )以及提交(步骤S504 )这4个 阶段而被处理。在此,对于4个指令,读取(步骤S501)、解码(步骤 S502 )以及提交(步骤S504)通过按照程序上的处理顺序来执行处理 的按序执行来进行。并且,指令的执行(步骤S503 )通过不按照程序 上的处理顺序执行的乱序执行来进行。4个指令按照程序上的处理顺序被读取(步骤S501)并被解码(步 骤S502)以后,与该处理顺序无关地、在获得执行(步骤S501)所需的计算数据等(操作数(叩erand))后转向执行(步骤S5(K3 )。在图1 的例子中,对于4个指令同时获得操作数,各个指令相互同时地开始。以上述方式,通过乱序执行,能够与程序上的处理顺序无关地同时 并行处理多个指令,因此指令控制装置中的处理实现高速化。在执行(步骤S503 )以后,以按序执行的方式按照程序上的处理顺 序进行对4个指令的提交(步骤S504 )。在比该处理顺序中的先行指令 先结束了执行(步骤S503 )的后续指令,在先行指令的执行(步骤S503 ) 结束之前成为等待提交的状态。在图l的例子中,针对4个指令的执行 (步骤S503)分为4层图示,图中越上层的,在程序上的处理顺序越 早。在该图l的例子中,最上层图示的处理顺序是最早的,该指令的执 行(步骤S503)最花时间,因此其他3个指令成为等待提交。另外,近年来,由指令控制装置处理的程序大多组合多个处理单位(线 程)而构成,这些处理单位包括一系列的多个指令,能够相互同时地并行 执行。为了执行指令,指令控制装置大多包括多个运算器。并且,在指令 执行时,很多情况下,在各个周期中仅使用上述多个运算器中的一部分, 因此运算器的利用率有较大的余量。因此,作为提高运算器的利用率的技术,提出了在各周期中,将某 个线程不使用的运算器分配给其他线程以同时并行处理多个线程的指 令的同步多线程(SMT: Simultaneous Multi Threading )功能这一4支术。图2是概念性地表示SMT功能的一个例子的图。在该图2中,表示属于线程A以及线程B这两种线程的指令通过 SMT功能执行的情形。在图2中的纵轴方向上排列的4个方块分别表 示在指令控制装置中进行指令的执行的运算器,各个方块中记载的字母 "A"以及"B"分别表示由对应于该方块的运算器执行的指令所属的 线程种类。此外,横轴表示指令控制装置中的时钟周期。在图2的例子中,在 第1周期(步骤S511)中,上面的2个运算器执行线程A的指令,下 面的2个运算器执行线程B的指令。在第2周期(步骤S512)中,最上面和最下面的2个运算器执行线程A的指令,中间的2个运算器执行 线程B的指令。此外,在第3周期(步骤S513)中,上面的3个运算 器执行线程A的指令,最下面的1个运算器执行线程B的指令。这样,通过SMT功能,在各个周期中同时并行执行多个线程的指令。图3是表示SMT功能的一个例子的与图2不同的概念图。在该图3的例子中,属于线程A以及线程B这两种线程的指令被交 替地读取和解码后,在执行中,在取得了各个指令的执行所需的操作数 和运算器的情况下,如图2所示那样在两种线程之间同时并行进行指令 的执行。在图3的例子中,在图中用斜线表示的时间Tl中,在两种线 程之间同时并行进行指令的执行。此外,关于提交,在相同种类的线程之间,先行指令的提交全部结 束之前无法进行后续指令的提交,但在不同种类的线程之间,无须等待 先行指令的提交的结束便可进行后续指令的提交。在图3的例子中,无 须等待对线程A读取的指令的提交结束,便可进行对线程B读取的指 令的提交。如上面参照图2以及图3说明的那样,根据SMT功能,在多种线 程间,指令的执行能够相互同时地并行执行,在不同种类的线程间,无须等待先行指令的提交结束便可进行后续指令的提交,因此实现了指令 控制装置的处理效率的提高。在包括这种SMT功能的指令控制装置中,为了能够实现多种线程 间的指令的同时并行执行,具备数量为线程数的在程序上指示访问的所 谓程序可见的构成要素。另一方面,关于运算器和解码部,往往在多种 线程之间共同使用。对于如上所述的运算器,由于将多个运算器在多种 线程间分配来使用,所以无须具备数量为线程数的运算器便可实现多种 线程间的指令的同时并行执行。但是,对于解码部,由于电路结构复杂 并且电路规模大,所以与上述运算器不同,往往只具备一个解码部。在 此情况下,解码部在多种线程间共同使用, 一次只能解码一个线程的指 令。在此,在指令中,存在在同一线程中禁止与先行指令同时执行的指6令。像这样由于某种原因而无法执行指令的处理的状态称作停顿(stall )。此外,将引起该停顿的原因称作停顿原因。以前,对于被确认发生停顿的指令,在所需的条件具备、停顿原因 消除之前,原样停留在解码部中。图4是表示在单线程类型的指令控制装置中,发生了指令的解码部 中的停顿的情形的概念图。在该图4的例子中,通过指令读取部501中的一次读取,8个指令 被取入指令緩冲器502中。指令緩沖器502具有多个项(IBR: Instruction BuffeR,指令緩沖器)502a,按照与线程中的处理顺序相同的顺序保持 8个解码前的指令。指令緩沖器502将IBR502a中保存的指令向解码部503中依次注入 4个。解码部503包括4个寄存器(IWR: Instruction Word Register, 指令字寄存器)503a,每个寄存器保存一个上述注入的指令,4个指令 被依次保存在各IWR503a中。并且,在解码部503中,依次进行这些 被保存的4个指令的解码。并且,解码部503将解码完毕的4个指令移 交给后面的执行部。此时,当在指令中如上所述存在被确认为无法立即 执行而停顿的指令时,向执行部的移交在该指令之前停止。在图4的例 子中,已被解码的4个指令中的第3个指令被确认停顿,向执行部的移 交到第2个指令为止停止。在具有SMT功能的指令控制装置中,若某个线程的指令在解码部 中停顿了,则解码部被一个线程的指令占用,无法进行其他线程的指令 的解码。在此,关于处理单线程的程序的单线程类型的本文档来自技高网...

【技术保护点】
一种指令控制装置,其特征在于,具有:    指令读取部,从具有多个指令的线程取得指令;    指令缓冲器,保持所述取得的指令;    指令解码部,保持并解码从所述指令缓冲器输出的指令;    指令执行部,执行所述被解码的指令;以及    指令注入控制部,在将所述指令缓冲器中保持的指令注入所述指令解码部的情况下,在先行于所述指令缓冲器中保持的指令的指令正在使用所述指令执行部时,使所述指令解码部保持的指令和所述指令解码部保持的指令的后续指令无效,并且使所述指令缓冲器再次保持所述指令解码部保持的指令和所述指令解码部保持的指令的后续指令。

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:吉田利雄
申请(专利权)人:富士通株式会社
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1