终止处理器中非必要处理的条件指令的方法与系统技术方案

技术编号:2869877 阅读:199 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种用以终止处理器中一多时钟条件指令的非必要处理的方法与系统,当条件指令经由管线式程序来做处理时,管线至少包含一译码阶段、一执行阶段以及在这两者之间的一个或多个中间处理阶段。本方法会视一个或多个条件是否成立,来确定条件指令是否为可执行的。如果条件指令于译码阶段和执行阶段中皆会被处理,且条件指令于执行阶段中不会被执行时,则条件指令于译码阶段时就会被终止,也有可能于中间处理阶段被终止。提早终止如此的条件指令有助于处理器节省处理资源以及降低能源消耗。

【技术实现步骤摘要】

本专利技术是有关于一般的计算机,特别是有关于一种用来将某些必要之执行条件不成立的指令提早终止的方法与系统。
技术介绍
如同我们所知,处理器经由一个顺序的处理阶段执行一个单独的指令,这个顺序基本上可能包含着将指令从内存中取出、将指令译码、从寄存器组中存取必要的操作数、处理操作数以得到结果或是一存储器地址、必要时存取存储器中的数据操作数以及将结果写回寄存器组内。现代的计算机处理器靠着执行许多的指令来实行计算作业,不同的作业可能会需要不同的元件以完成工作,为了增加处理器的效率,在目前的指令尚未完全处理完毕前就开始处理下一个指令是更为有效的方式,如此,在任何一时间里都有不同的指令在不同的阶段里被顺序地处理着,这就被称之为“管线”(pipelining),大部分计算机处理器的运作都是利用管线的方法来得到最大的计算能力。更进一步地说,有一些指令是必须依靠某些先决条件成立才能执行的条件指令(conditional instruction),这些指令当中有一些是需要多时钟周期才得以完整执行的,就像其它的指令一样,条件指令也是和别的指令一同被管线式的处理着,当一个或多个从多时钟条件指令分出的部分往最后的执行阶段传递时,它们可以位于不同的中间处理阶段中。在整个指令通过不同的处理阶段时,由于其先决条件可能不符合,所以许多条件指令无法执行的情况,事实上并不罕见。处理器是否察觉到一个不符合的条件可由条件状态码或处理器中关于某特定指令的信号反映出来。虽然已经确定这个指令于执行阶段时的执行条件需求不会符合,而一个需要多时钟来执行的指令,其可能会利用或是浪费其它阶段的资源。无论如何,在先前技术中,尽管已经确定条件指令不会为处理器所执行,但处理器不会停止剩余指令的执行,如此,处理这些非执行条件指令造成了系统资源大量的浪费。在此所需要的是一种改进的方法及系统用以尽可能的提早终止那些条件不符合的条件指令来防止它们被执行,然后得以节省系统资源。
技术实现思路
本专利技术公开了一种用以终止处理器中一多时钟条件指令之非必要处理的方法与系统,当条件指令经由管线式程序来做处理时,此管线至少包含一译码阶段、一执行阶段以及在这两者之间的一个或多个中间处理阶段。本方法会视一个或多个条件是否成立,来确定条件指令是否为可执行的。当条件指令到达执行阶段时,则可确定是否要执行或是略过这个条件指令,如执行阶段里所做出的确定是要略过指令的执行,则目前于译码阶段被处理的指令会被终止然后下一个指令会被送入译码阶段。本专利技术提供了一个将多时钟条件的指令处理最优化的方法与系统,其降低了因为管线式指令所引发的非必要性数据前向延迟的可能性,通过在处理程序之中提早终止条件指令,可以提升处理器的生产率及节省处理资源。附图说明图1为指令处理程序的流程图。图2为本专利技术具体实施例的条件指令处理流程图。图3为本专利技术具体实施例的预测提早终止条件指令的流程图。具体实施例方式本专利技术公开了一种改进的方法与系统,用以尽可能的提早终止某些不会被执行的条件指令来节省系统资源与系统能源。计算机处理器能够依据一些已成立的条件来有条件地执行一些指令。图1表示了一个处理器通过三个主要处理阶段来执行一个指令的流程图100。可以知道的是有些先前的阶段例如用来取出指令的阶段并没有在图1中说明。当取出指令之后,一些额外的处理一般会被分为三个主要阶段,如译码阶段102、寄存器处理阶段104及执行阶段106。除此之外,还有结果写回数据存储器存取阶段(未显示),该阶段在执行阶段106之后。再者,上述的三个主要阶段的每一阶段都可由复数个较小的管线阶段组成,以致会占用一个或多个时钟周期。指令108被馈入处理器并经过至少这三个主要处理阶段后,产生一个输出结果110。在译码阶段期间,一个处理器的指令译码片段(decode section)假设此指令将会被执行,因为在指令到达执行阶段之前,用来确定执行或略过(skip)的状态需求都是未知的,然后,产生一个需要的微指令控制信号(Microinstruction Control Signal)或称微控制码111(micro-controls)。当微控制码产生后,可藉此来进一步确定执行某特定指令时所需的时钟周期数。在寄存器存取阶段104视指令需要产生数据112之后,从寄存器存取阶段104输出的微控制码114和数据112均一起输入执行阶段106去进行处理。执行阶段106依据使用接收到的数据112及微控制码114经过的计算和比较后,可确定此条件指令是否要适当地被执行或略过。在先前技术中,因为所有的指令都会完全地经过这三个主要阶段,而不论条件指令最后于执行阶段时是否将会被执行,那些实际上在最后被放弃或略过的条件指令,会大量地消耗了处理器时间及能量资源,这种系统资源的浪费在需要多时钟周期的操作情况下特别地严重。图2表示了一个依据本专利技术的实施例所公开的处理流程图,其中当某些执行条件明显地不符合时,条件指令会提早被终止。类似图1所示,是假设输入指令202进入各个不同的处理阶段中,如译码阶段204、寄存器存取阶段206以及执行阶段208。指令202是一个需要符合一个或多个条件才能被执行的条件指令,其在经过处理阶段之后,会适当地产生一个结果210。需要注意的是,如果这个条件指令是一个多时钟指令,部分的指令会被处理器所处理,同时会依照“管线式”顺序地行进经过不同的处理阶段。对于本专利技术的目的,是在条件指令可能会和至少一个能确定其执行条件的先前指令相关联的原则上,条件指令本身可能就有多个部分会占用多个时钟周期在管线之中传递。当先前的指令完成其执行之后,才会影响条件指令是否能在管线之中彻底执行。依据先前的指令所处理的执行条件来看,先前的指令有可能改变处理器的条件状态。一般来说,处理器中与条件指令202有关的条件状态,会反映出处理器是否察觉条件指令202在执行的过程中其条件全程符合。当先前的指令改变了处理器中与条件指令202有关的条件状态时,一些和这个指令有关联的部分,可能会于译码阶段被终止。举例来说,现在假设处理器具有12个寄存器和一个加载指令(loadinstruction),其在符合某些条件后,会更新全部的寄存器(这是一个多时钟条件指令),当如此的一个指令进入了译码阶段时,一个处理器中的译码器会发出12条微指令,用以转换给每一个寄存器。这12条微指令不论条件的符合与否,全都会以管线式的顺序通过寄存器存取阶段。从寄存器存取阶段行进到执行阶段的处理过程中,有一条数据线会输出数据211。另外,如图2所示,在译码阶段产生的微控制212会行进经过全部的阶段。如果有一个执行条件没有符合,则整个指令将会被略过,尽管在执行阶段处理器会浪费资源在“推动(pushing)”部分指令(如12个微指令)以通过管线。如果译码阶段和中间阶段可以分辨出执行的指令将会被略过,以及如果它们可以分辨出这种指令的范围,则这个条件指令就可以在将全部的时钟周期分配去执行该条件指令之前被终止。如此,系统资源得以节省以及能源消耗得以降低。为了尽可能以最有效率的方式来执行条件指令,一项反馈机制已被实现。首先,一个指示或是一个控制信号214是最先从执行阶段产生的,其用来标明处理器是否确定条件指令202的一个或多个条件是不符合的。这个信号可作为一执行条件控制本文档来自技高网
...

【技术保护点】
一种终止处理器中非必要处理的条件指令的方法,该条件指令至少经由一译码阶段、一执行阶段以及在这两者之间的一个或多个中间处理阶段所构成的处理管线来处理,本方法包括:    确定该条件指令于该执行阶段是否会被执行,是依据一个或多个条件是否符合来确定的;    确定该条件指令是否于该译码阶段中进行处理;以及    终止该译码阶段中的该条件指令,是如果于该执行阶段中该条件指令被确定将不会被执行,以及该条件指令仍然于该译码阶段中被处理时,则终止该译码阶段中的该条件指令。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:李察邓肯查理斯雪洛
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:71[中国|台湾]

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

1