运算处理装置、信息处理装置及其控制方法

文档序号:6596686阅读:141来源:国知局
专利名称:运算处理装置、信息处理装置及其控制方法
技术领域
本发明涉及运算处理装置、信息处理装置及其控制方法。
背景技术
作为处理器的技术,公知有以下的方法。即,是使用与按每个指令定义的电流消耗量具有相关性的值来预测各时钟周期下的消耗电流,如果其变化率为规定值以上,则更换指令或置換成虚拟指令以使变化量变小的方法。专利文献I:日本特开2004 — 334641号公报专利文献2:日本特开平10 — 207859号公报专利文献3:日本特开2004 — 13820号公报非专利文献I:〃The SPARC Architecture Manual", version9, SPARCInternational,Inc.,Santa Clara,California,SAV09R145991
发明内容
本发明的目的在于,提供ー种通过简易的构成就能够可靠地抑制消耗电流的变化的运算处理装置。将被指令解释部解释后的指令向运算部发布,并且计算出运算部因在第I规定期间发布的指令而消耗的消耗电流值、和运算部因能够在第2规定期间发布的指令而消耗的电流的消耗电流预定值,在消耗电流预定值相对消耗电流值的变化量超过规定的限制值时,在第2规定期间中抑制一部分指令的发布。根据上述构成,能够提供通过简易的构成就能够可靠地抑制运算处理装置中消耗电流的变化的构成。


图I是用于对參考例的处理器中指令发布控制进行说明的处理器的内部框图。图2是用于对实施例的处理器中指令发布控制进行说明的处理器的内部框图。图3是图2所示的处理器的构成中特别地将指令发布控制部以及运算单元提取出来加以表示的框图。图4是用于对实施例的处理器中指令发布控制的方法进行说明的图(之I)。图5是用于对实施例的处理器中指令发布控制的方法进行说明的图(之2)。图6是用于对实施例的处理器中指令发布控制的方法进行说明的、表示电流值表的构成例的图。图7是用于对在实施例的处理器中限制指令的发布时的例子进行说明的图。图8是用于对在实施例的处理器中发布虚拟指令时的例子进行说明的图。图9是用于对实施例的处理器中指令发布控制的方法进行说明的、表示程序中的指令与地址之间的关系的例子的图。
图IOA是用于对实施例的处理器中指令发布控制的方法进行说明的动作流程图(监控方法I中的消耗电流增加时,之I)。图IOB是用于对实施例的处理器中指令发布控制的方法进行说明的动作流程图(监控方法I中的消耗电流增加时,之2)。图11是对执行图10A、图IOB所记载的流程图中的动作的一部分的电路的构成例进行表示的图。图12是用于对实施例的处理器中指令发布控制的方法进行说明的动作流程图(监控方法I中的消耗电流减少时)。图13A是用于对实施例的处理器中指令发布控制的方法进行说明的动作流程图(监控方法2中的消耗电流增加时,之I)。图13B是用于对实施例的处理器中指令发布控制的方法进行说明的动作流程图(监控方法2中的消耗电流增加时,之2)。图14是用于对实施例的处理器中指令发布控制的方法进行说明的动作流程图(监控方法2中的消耗电流减少时)。图15是对能够应用实施例的处理器的信息处理装置的硬件构成例进行表示的框图。
具体实施例方式以下,对实施例进行说明。在实施例中,在运算处理装置中、即作为半导体集成电路的处理器中通过抑制指令发布数、发布频度,来实现电源噪声的抑制。其中,作为运算处理装置的具体例,可举出CPU (Central Processing Unit)、GPU (Graphical Processing Unit)、DSP (Digitalbignal Processor)等。处理器的低消耗电カ化技术是为了实现信息通信设备的低消耗电カ化的重要技术。在处理器的低消耗电カ化中,只向执行处理所需要的寄存器供给时钟的时钟门控、只使执行处理所需要的RAM (Random Access Memory)启动(enable)等抑制电路动作率的方法是有效方法。但是,在这些方法中,为了防止产生因执行处理时与不执行处理时之间的消耗电流之差引起的电源噪声,希望抑制作为电流时间变化率的dl/dt。作为用于降低LSI (Large Scale Integrated circuit)内部的电源噪声的方法,存在在LSI内部搭载具有电容成分的电容器単元或去耦合电容单元等,或者在封装体、系统板上还搭载去耦合电容器的方法。但如果使用去耦合电容单元,则认为会引起芯片面积的增加、漏电电流的增加等。另外,作为用于降低电源噪声的电路控制方法,有通过在电路动作开始时将时钟频率抑制得低,来将电流时间变化率dl/dt抑制得低这一方法。并且,有一种在软件的编译阶段就预测指令的消耗电流,通过软件来调整指令发布的方法。但是,对于上述在电路动作开始时就将时钟频率抑制得低来将电流时间变化率 dl/dt抑制得低的方法而言,不以周期模型(cycle base)监控电流变化量,而在花费规定的期间使时钟频率阶段性地变化的同时供给时钟信号。因此认为,如果不插入相对时钟频率大的富裕量,则无法应对因大电流变化而引起的电源噪声。而且,还可以想到针对小噪声使时钟频率过度变慢的情況。即,在该方法中,由于不是根据噪声来调整时钟频率,所以认为控制精度低。另外,对上述在软件的编译阶段预 测指令的消耗电流,通过改变指令的顺序等用软件来调整指令的发布的方法而言,由于通过软件进行调度,所以认为目标码变大。而且,由于需要能够以周期模型来完全把握指令依赖性的编译器,所以难以实现。另外,在流水线互锁等情况下,认为存在无法通过软件来应对的情況。这里,流水线互锁(pipelineinterlock)是指检测出冒险(hazard)并加以避免的机构。与数据依赖相关的冒险(datadependent hazard)是指由于多个指令被乱序处理,所以导致运算结果的写入、读出与机器语言的程序设计所意图的顺序前后颠倒,成为与期待不同的结果的状況。将检测出冒险并使流水线停止的情况称为“流水线互锁”。由于在流水线互锁中停止执行指令,所以消耗电流減少,为了缓和这样的消耗电流的減少,使用“只执行虚拟指令的虚拟电路”。这里,“虚拟指令”是不对后续的执行指令造成影响的指令,“虚拟电路”是执行“虚拟指令”来消耗电流,使消耗电流的减少缓和的电路。尤其在大規模的系统中,认为与因流水线互锁而引起的消耗电流的減少对应的虚拟电路的规模变大,芯片面积增加、消耗电カ等増加等。接着,为了和以下说明的实施例进行比较,对运算处理装置的參考例进行说明。图I是表示作为运算处理装置的參考例的处理器的内部构成的框图。图I的处理器例如是SPARC (Scalable Processor ARChitecture)处理器,具有指令高速缓存器(指令保持部)11、解码器(指令解释部)12、指令发布控制部13以及运算机构14。运算机构14包括运算单元(运算部)14A、14B、14C、14D。指令高速缓存器11是保存程序的高速缓存存储器。解码器12对程序中包含的指令进行解码(解释)。指令发布控制部13对运算単元14A、14B、14C、14D发布指令。运算单元(ALU :Arithmetic and Logic Unit)14A、14B、14C、14D 执行被发布的指令。而且,多个运算单元14A、14B、14C、14D分别分担运算功能。例如可设为运算单元14A执行固定小数点的加减运算,运算単元14B执行固定小数点的乘法运算,运算単元14C执行浮动小数点的加減运算,运算単元14D执行浮动小数点的乘法运算。此外,并不限定于该例,例如也可以使多个运算単元中的2个以上运算单元执行同一运算功能。以下对该处理器的动作中、尤其是与程序指令的发布相关的动作进行说明。解码器12从指令高速缓存器11中获取(取得)指令对其进行解码,并传递给指令发布控制部13。指令发布控制部13进行将从解码器传递来的指令向运算单元14A 14D的发布。更具体而言,指令发布控制部13将从解码器12传递来的指令保持在内部寄存器(省略图示)中,对保持着能够发布的指令的内部寄存器内的入口进行识别。指令发布控制部13从识别出的入口所保持的指令中选择要发布的指令。按能够执彳丁入口中保持的指令的每个运算单元来选择实际发布的指令。此时,对同一运算单元能够执行的指令间赋予优先顺序,以该优先顺序的顺序来选择所发布的指令。指令发布控制部13向对应的运算单元发布选择出的指令,在该指令发布后释放对应的寄存器的入ロ。在上述參考例的处理器中,由于没有特别考虑当指令发布控制部13发布指令吋,运算单元14A、14B、14C、14D执行指令时的消耗电流的变化,所以存在发生电源噪声的可能性。实施例具有防止电源噪声产生的构成。根据实施例涉及的处理器,存储因在过去几个周期的期间发布的指令而消耗的电流的估计值。这里,上述估计值是处理器整体消耗的电流的估计值。而且,计算出根据当前周期能够发布的指令概算出的消耗电流值相对所存储的电流值的増加量。然后,判定计算出的増加量是否超过处理器的允许电流变化量(称为“限制值”),在超过限制值的情况下,限制指令的发布以便不超过限制值。该限制值可以根据噪声解析模拟的结果或者根据测定值调查获得。或者,在实施例涉及的处理器中,存储因在过去几个周期的期间发布的指令而消耗的电流的估计值,计算出根据当前周期能够发布的指令概算出的消耗电流值相对该电流值的减少量。判定计算出的减少量是否超过处理器的限制值,在超过的情况下发布虚拟指令以使其不超过限制值。作为虚拟指令,例如在SPARC的体系结构的情况下,可以利用Global registerzero (g0),应用使g0成为作为运算结果的储存寄存器的目标(destination)的指令等对 程序的执行不造成影响的现有指令。或者,也可以通过使现有的电路工作来定义不变更处理器状态那样的新建虚拟指令并加以应用。优选虚拟指令是只要不超过限制值,便尽可能使消耗电流大幅变化的指令。这里,Global register zero (g0)是指如果进行读出则总是得到"0",即使进行写入,值也不变的全局寄存器。或者,在实施例涉及的指令发布装置中,存储在过去几个周期的期间发布的指令或由这些指令消耗的电流的估计值。而且,计算出根据当前周期能够发布的指令概算出的电流值相对该电流值的增加量。判定计算出的増加量是否超过处理器的限制值,在超过的情况下限制指令的发布以使其不超过限制值。或者,在实施例涉及的指令发布装置中,存储在过去几个周期的期间发布的指令或由这些指令消耗的电流的估计值。而且,计算出根据当前周期能够发布的指令概算出的电流值相对该电流值的减少量。判定计算出的减少量是否超过处理器的限制值,在超过的情况下发布对后续的执行指令不造成影响的虚拟指令,以使其不超过限制值。另外,在实施例中,当P (t)> P (t - l,t — N)时,按照满足P (t)彡P (t - 1,t 一 N)+APl的条件的方式限制当前周期下的指令的发布。这里,变量t表示当前周期,P(t 一 1,t 一 N)表示根据过去N个周期的指令估计的平均消耗电流,APl表示被处理器允许的限制值,P (t)表示根据在当前周期能够发布的指令估计的消耗电流值。另外,在实施例中,当P (t) < P (t — 1,t — N)时,按照满足P (t)彡P (t —Lt-N)- AP2的条件的方式,在当前周期中发布对后续的执行指令不造成影响的虚拟指令。这里,与上述相同,变量t表示当前周期,P (t — 1,t 一 N)表示根据过去N个周期的指令估计的平均消耗电流,AP2表示被处理器允许的限制值,P (t)表示根据在当前周期能够发布的指令估计的消耗电流值。图2是用于对实施例涉及运算处理装置的处理器的内部构成进行说明的框图。图2的处理器例如是SPARC处理器,具有指令缓存器11、解码器12、指令发布控制部13X以及运算机构14。运算机构14包括运算单元14A、14B、14C、14D。指令缓存器11是保存程序的高速缓存存储器。解码器12对程序中所含的指令进行解码。指令发布控制部13X对运算単元14A、14B、14C、14D发布指令。运算单元(ALU :Arithmetic and Logic Unit) 14A、14B、14C、14D执行被发布的指令。需要说明的是,如上所述运算単元14A、14B、14C、14D分别分担运算功能。
根据实施例,处理器中的指令发布机构(即处理器中的指令发布控制部13X)除了具有以往的指令发布控制部的功能的指令发布控制功能部13R之外,还具有电流变化计算部13C以及指令发布调整部13A。电流变化计算部13C基于被发布的指令的种类、发布数来计算电流变化,在计算出的电流变化超过预先设定的阈值时输出对指令发布进行限制的指示。指令发布调整部13A接收该指示,对所发布的指令进行限制。其结果,能够降低因电流时间变化率dl/dt引起的电源噪声。下面,对图2的处理器的动作中尤其与指令的发布相关的动作进行说明。解码器12从指令缓存器11中获取指令,对其进行解码,并传递给指令发布控制部13X。在指令发布控制部13X中,根据解码后的结果来选择指令发布控制功能部13R能够发布的指令,电流变化计算部13C对选择出的指令进行以下那样的基于消耗电流变化的发布控制。指令发布控制部13X的电流变化计算部13C对保持了能够发布的指令的内部寄存 器的入ロ进行识别。然后,运算单元14A、14B、14C、14D基于识别出的入ロ中保持的能够发布的指令的种类、数量等,计算执行能够发布的指令时的消耗电流值。电流变化计算部13C还根据指令数、种类来计算过去数个周期的平均消耗电流。在执行能够发布的指令时的消耗电流值相对该过去的平均消耗电流的变化量(也简称为“变化量”)不超过特定的阈值(即限制值Al)的范围内,决定在规定的期间内能够发布的最大指令数,并将其传递给指令发布调整部13A。上述规定的期间在本实施例中为I个周期。该规定的期间并不限定于I个周期,例如也可以是数个周期。其中,在如实施例那样是超标量方式的处理器时,作为硬件而言能够同时发布的指令数的上限是被決定的,同时能够发布的指令数为该上限以下作为前提。在实施例的处理器中,由于运算单元14A、14B、14C、14D的个数为4个,所以同时能够发布的指令数的上限为4。指令发布调整部13A接收在规定的期间内能够发布的最大指令数,基于运算単元14A、14B、14C、14D中的、与所发布的各个指令对应的各个运算单元,选择实际发布的指令。另外,在同时能够发布的指令有多个的情况下,使多个指令之间具有优先顺序,按照优先顺序来选择指令,以使每I个周期发布的指令数控制在能够发布的最大指令数内。其中,作为优先顺序的决定方法,例如可以从当前能够发布的指令中在程序中的执行顺序靠前的指令(如果不夹着分支指令,则在主存储装置中储存程序的情况下从地址小的指令)开始按顺序发布、即基于程序中的指令的出现顺序进行发布。或者,也可以维持每I个周期发布的指令数不变,通过按照只在多个周期中的I个周期发布指令的方式限制指令发布的频度,来限制所发布的指令数。而且,指令发布控制部13X如此地以根据需要限制了指令的发布数的方式,对运算単元14A、14B、14C、14D中对应的运算单元发布指令。然后,该指令发布控制部13X将发布过的指令的入口释放。这样,在不超过限制值的范围发布尽量多的指令。S卩,电流变化计算部13C设置在解码器12与运算单元14A、14B、14C、14D之间,如图3所示那样,具有计算部13C、指令监控器13M、以及电流表13T。指令监控器13M对到当前时刻为止的在规定数的周期发布了的指令的种类、发布数进行监控。电流表13T按指令的种类来保存对应的电流预测值(參照后述的图6)。其中,电流表13T可以如上述那样根据指令的种类来保持电流预测值,或者也可以不基于指令的种类地保持每I个指令的电流值。所保存的指令的种类、电流预测值可以是按照在搭载有该处理器的LSI进行动作时能够调整的方式,通过程序可变的构成。另外,与上述指令的种类对应的电流预测值例如可以在进行LSI设计时进行电力模拟来预先求出。或者,也可以通过对实际制造出的芯片中的处理器整体的消耗电カ进行測定,来求出各指令的消耗电カ并进行设定。电流变化计算部13C的计算部13CC利用指令监控器13M保存的规定数的周期量的指令履历、和当前能够发布的指令,并參考电流表13T来预测消耗电流的变化量。在消耗电流増加、作为消耗电流变化量的电流增加量超过限制值的情况下,指令发布调整部13A按照增加量控制在限制值以下的方式,求出能够发布的最大指令数,并输出能够发布的最大指令数和电流计算結果。即,该情况下,通过限制当前发布的指令的发布,来減少运算单元14A、14B、14C、14D中的消耗电流,将其抑制在限制值以内。另ー方面,在电流減少、作为消耗电流变化量的电流减少量超过限制值的情况下,指令发布调整部13A按照减少量控制在限制值以下的方式,求出所需的虚拟指令的发布数,并输出所需的虚拟指令的发布数和电流计算結果。即,该情况下,除了程序中原本存在的指令之外,通过虚拟指令的发布使运算单元14A、14B、14C、14D中的消耗电流增加,将消耗电流抑制在限制值以内。指令发布调整部13A按照由电流变化计算部13C输出的能够发布的最大指令数或者所需的虚拟指令的发布数,对在规定期间内从指令发布控制部13X发布的指令进行限制,或者只发布所需发布数量的虚拟指令。根据实施例,通过在处理器的指令发布控制部13X中设置电流变化计算部13C、指令发布调整部13A,能够实现与实际执行的指令对应的更高精度的电流变化控制。以下,对消耗电流变化的计算方法的例子进行说明。作为消耗电流变化的计算方法,有监控方法I以及监控方法2,可以使用监控方法I以及监控方法2中的任意ー个。首先,利用图4对监控方法I进行说明。在监控方法I中,基于紧前X个周期的指令数或者指令发布频度,对当前周期下的指令发布数或者指令发布频度进行控制。以下对具体例进行说明。所允许的最大电流变化值(即限制值)A I被预先设定给预先电流变化计算部13C。电流变化计算部13C的计算部13CC參照指令监控器13M以及电流表13T,计算在紧前X个周期发布的指令的电流预测值的平均(将计算结果设为A)。并且,还计算当前能够发布的指令的电流预测值(将计算结果设为B)。接着,计算电流值的差量B — A,如果B — A> Al,则从电流变化计算部13C对指令发布调整部13A传递接下来能够发布的最大指令数。另ー方面,如果B — A <— A I, 则从电流变化计算部13C对指令发布调整部13A指示所需的虚拟指令的发布数。消耗电流变化的计算可以按每I个周期进行,或者也可以按一定周期期间进行。这里,按一定周期期间进行的方法是不在每个周期都进行消耗电流变化的计算,而是按规定数的周期进行电流变化的计算的方法。接着,利用图5对监控方法2进行说明。在监控方法2中,基于包含当前周期在内的当前与紧前X个周期的指令数或者指令发布频度、和更靠前X个周期的指令数或者指令发布频度,对当前周期下的指令发布数或者指令发布频度进行控制。以下对具体例进行说明。在监控方法2中,也将所允许的最大电流变化值(即限制值)A I预先设定给电流变化计算部13C。电流变化计算部13C的计算部13CC參照指令监控器13M以及电流表13T,分别计算包含当前周期在内的当前与紧前X个周期发布的指令的电流预测值的平均(或者和)(设为A)、和更靠前X个周期发布的指令的电流预测值的平均(或者和)(设为B),并将其相互比较。如果B — A> A I,则从电流变化计算部13C对指令发布调整部13A传递当前能够发布的最大指令数。如果B — A <— Al,则从电流变化计算部13C对指令发布调整部13A指示所需的虚拟指令的发布数。上述X的值根据应该处理的电源噪声的频带来设定。其中,高频波段的噪声由安装于芯片的去耦合电容单元等除去,因此上述应该处理的电源噪声的频带是中低频率的波段。一般频率高的噪声周期短,频率低的噪声周期长。因此,通过根据应该处理的电源噪声的频带适当地调整上述X的值,就能够监控该电源噪声。其中,该情况下,消耗电流变化的计算可以按每I个周期进行,也可以是按一定周期期间进行的方法。这里,按一定周期期间进行方法是不按每个周期都进行消耗电流变化的计算,而按规定数的周期进行消耗电流变化的计算的方法。接下来,利用图6、图7以及应用了上述监控方法I时的具体动作例,对上述实施例的处理器中的消耗电流增加时的动作进行说明。图6表示上述电流表13T的ー个例子。在该例子的情况下,电流表13T中储存有
各指令的种类Instl、Inst2、.......Inst8。并且,在电流表13T中,作为上述4个运算单
元14A 14D中对应的运算单元执行该种类的各个指令时的消耗电流值,分别储存有300、200、......>250 [ u A]。而且,在电流变化计算部13C中,作为电流变化限制值(也简称为“限制值”),设定了 APl = 500[yA]。另外,如上所述,在该处理器中同时能够发布的指令数最大为4(# I、# 2、# 3、# 4)。图7表示了 S1、S2、S3的各时刻的过去5个周期(“5” “I”)发布的指令、和在当前周期(“0”)中能够发布的指令。例如,图7表示了在上段时刻SI中没有过去5个周期发布的指令,当前能够发布的指令为Instl、Inst2、Inst3、Inst4。另外,在图7中,将不同时执行能够发布的指令# 1、# 2、# 3、# 4各个时的每I个指令的消耗电流值分别设为20 [ y A]。另外,将监控期间设为N= 4 [周期]。在图7的时刻SI的情况下,在过去4个周期(“4” “I”)中,同时能够发布的指令# U# 2、# 3、# 4中的任意ー个都未被执行。因此,该期间的运算单元14A、14B、14C、14D的消耗电流(也简称为“消耗电流”)为20X4X4 =320 [PA],过去4个周期中的每I个周期的平均消耗电流P (t — l,t 一 4)为320/4 = 80[U A]0另ー方面,当前能够发布的指令Instl、Inst2、Inst3、Inst4的消耗电流值P (t)为300 + 200 + 250 + 150 = 900 [ u A]。其結果,变化量为 P (t) - P (t — l,t — 4)=820 [ PA],比限制值API = 500 [iiA]大320 [ uA]0因此,限制该4个周期的监控期间的下ー个周期中的指令发布数。其结果,由指令发布调整部13A发布限制后的指令。在图7的例子中,按地址顺序选择指令Instl、Inst2指令(能够发布的最大指令数=2)。其原因在于,在还选择了指令Inst3的情况下,发布共计3个指令Instl、Inst2、Inst3时的变化量为300 + 200 + 250 + 20 — 80 = 690 [ u A],超过限制值500 [ y A]。该情况下,结果发送当前能够发布的4个指令Instl、Inst2、Inst3、Inst4中地址顺序早的2个指令Instl、Inst2,将剩余2个指令Inst3、Inst4的发布延迟到下一周期以后(图7的中段的时刻S2)。接着,在图7的中段的时刻S2的情况下,当前能够发布的指令为4个指令Inst5、 Inst6、Inst3、Inst4。其中,2个指令Inst3、Inst4是如上所述在之前的周期延迟了发布的指令,其他2个指令Inst5、Inst6是对指令发布控制部13X新赋予的指令。该情况下,过去4个周期的监控期间中的平均电流值P (t + I — 1,t + I — 4)为(20X4X3 + 20X2 +300 + 200) /4 = 195 [ u A]。另一方面,能够发布的上述 4 个指令 Inst5、Inst6、Inst3、Inst4的消耗电流值P (t + I)为250 + 200 + 250 + 150 = 850 [ uA]0其结果,变化量为 P (t + I) — P (t + I — 1,t + I — 4) = 655 [ u A],比限制值 APl = 500 [ u A])大155[yA]。因此,限制该4个周期的监控期间的下一周期中的指令发布数。指令发布调整部13A发布限制了发布数后的指令。在图7的例子中,以地址顺序选择3个指令Inst3、Inst4、Inst5 (能够发布的最大指令数=3)。其结果,该3个指令Inst3、Inst4、Inst5被发布,剰余的I个指令Inste被延迟到下一周期以后(图7的下段的时刻S3)。此外,也能够成为基于超过限制值的量的电流的大小,使能够发布的最大指令数不同那样的构成。而且,关于所发布的指令的选择,如上述那样,按指令的地址顺序选择。这样,调整成在不超过限制值的范围同时发布尽可能多的指令。另外,也可以将在前面的周期以前延迟的指令优先发布。接下来,利用图6、图8以及应用了上述监控方法I时的具体动作例,对上述实施例的处理器中的消耗电流減少时的动作进行说明。在电流变化计算部13C中,将限制值与上述APl同样设定为AP2 = 500 [uA],同时能够发布的指令数也与上述同样最大为4。而且,与上述相同,将没有同时执行能够发布的指令# 1、# 2、# 3、# 4各个时的消耗电流按每ー个指令设为20 [ u A]0另外,与上述同样设定为监控期间N = 4 [周期]。在图8的最上段的时刻Sll中,利用指令监控器13M监控在过去4个周期(“4” “I”)的监控期间发布的指令。若參照图6的电流表13T的例子,则过去4个周期的平均电流值P (t — 1,t — 4)为925 [PA]。另ー方面,由于没有当前(周期“0”)能够发布的指令,所以电流值P (t)为80 [ PA]。其结果,变化量为P (t — 1,t 一 4) 一 P (t) = 845[U A],比限制值AP2=500 [ ii A]大345 [u A]。因此,电流变化计算部13C决定所需的虚拟指令的发布数,井向指令发布调整部13A传递。根据图6的电流表13T,每ー个虚拟指令(dummy)的消耗电流值=200 [ uA]0因此,为了将变化量抑制为345 [ y A]以下,由于200< 345 + 20 [ PA],200X2 = 400 > 345 + 20X2 [ U A],所以需要两个虚拟指令。因此,对指令发布调整部13A指示为需要的虚拟指令的发布数=2,以便分别发送两个虚拟指令(du_y,du_y)作为同时能够发布的指令中的指令# 1、# 2。指令发布调整部13A根据指示分别发布两个虚拟指令(dummy, dummy),作为同时能够发布的指令中的# 1、# 2 (图8的中断的时刻S12)。并且,在图8的中断的时刻S12中,在下一周期(“0”)中也没有能够发布的指令。因此,过去4个周期的平均电流值P (t + I - l,t + I 一 4)为797. 5 [ U A],当前能够发布的指令的电流值P (t + I)为80 [PA]。该期间的变化量为P (t + I — l,t + I — 4) 一P (t + 1)=717.5 [PA],比限制值 AP2 = 500 [“]大217.5 [ uA]0 为了将变化量抑 制为 217. 5 [ u A]以下,由于 200 < 217. 5 + 20 [ u A],200X2 = 400 > 217. 5 + 20X2[PA],所以需要两个虚拟指令。因此,对指令发布调整部13A指示需要的虚拟指令的发布数=2,以便发布两个虚拟指令(du_y,du_y)作为同时能够发布的指令中的#3、#4。指令发布调整部13A根据指示分别发布两个虚拟指令(dummy, dummy)作为同时能够发布的指令中的#3、#4 (图8的下段,时刻S13)。
接着,利用图9至图14,对上述实施例涉及的处理器中的、用于说明基于消耗电流变化的指令发布控制的动作的流程图进行说明。图9表示了由解码器12向指令发布控制部13X传递的指令Inst (I)、Inst
(2)、......、Inst (M)各自的消耗电流值I、与程序中的地址(i)之间的关系。消耗电流值
I通过图6所示的电流表13T来获得。图IOA是在监控方法I中消耗电流增加时的动作流程图(之I)。图IOA中,在步骤S21中从指令缓存器11获取到的指令被解码器12解码。在步骤S21R、S22中,指令发布控制部13X的指令发布控制功能部13R从解码后的指令中选择同时能够发布的M个指令Inst
(l)、Inst (2)、......、Inst (M)0 然后,指令发布控制部 13X 进行步骤 S23、S24、S26、S27
的循环动作。在该循环动作中,i从初始值M开始按顺序姆次减少I,在到i = I为止的期间,如果步骤S26的判断结果为是(YES),则该循环动作结束。在步骤S24中,由电流变化计算部13C的计算部13CC对上述M个指令中的从第I
到第i个指令Inst (l)、Inst (2)、......、Inst (i)计算出消耗电流的合计P (t)。在步
骤S25中,由电流变化计算部13C的计算部13CC计算出过去N个周期量的消耗电流的平均值P (t — 1,t 一 N)。然后,在步骤S26中,将上述到第i个指令为止的消耗电流的合计P(t)、与对过去N个周期的平均电流值P (t — 1,t 一 N)加上上述限制值APl而得到的值进行比较。其结果,上述循环动作持续进行到到第i个指令为止的消耗电流的合计P (t)变为对过去N个周期的平均电流值P (t — 1,t 一 N)加上上述限制值APl而得到的值以下(是)。这里,i的初始值为M,最初到上述到第i个指令为止的消耗电流的合计P (t)是M个指令量的消耗电流。如果在该时刻,该P (t)为对过去N个周期的平均电流值P (t — 1,t 一 N)加上了上述限制值APl而得到的值以下(是),则结束循环动作(步骤S27),电流变化计算部13C将能够发布的最大指令数=M通知给指令发布调整部13A。指令发布调整部13A按照上述那样的优先顺序,对运算単元14A、14B、14C、14D中的对应的运算单元发布指令。这里,优先顺序包括如上述那样同时能够发布的指令具有多个时的多个指令之间的优先顺序。另ー方面,当在上述最初的时刻上述P (t)超过对过去N个周期的平均电流值P(t 一 1,t 一 N)加上了上述限制值APl而得到的值(否)吋,继续进行循环动作。然后,在如上所述,P (t)变为对过去N个周期的平均电流值P (t — 1,t 一 N)加上了上述限制值APl而得到的值以下时(是),结束循环动作。其结果,从当前能够发布的M个指令中的地址较大的一方开始按顺序依次減少ー个指令,直至減少到计算出的P (t)变为对过去N个周期的平均电流值P (t — l,t 一 N)加上了上述限制值APl而得到的值以下为止。因此,从能够发布的M个指令中的地址较小的一方按顺序选择,最終选择P (t)即将超过对过去的平均电流值PN)加上了限制值APl而得到的值之前的(第I至第i个)指令。然后,该最终选择出的指令的信息被传递给指令发布调整部13A。指令发布调整部13A将该最终选择出的第I至第i个指令在当前周期中发布给运算单元14A、14B、14C、14D (步骤S28)。其中,步骤S24的Ix表示当前周期中各指令的消耗电流值(參照图9)。此外,在图IOA的情况下进行了循环动作,但在获得相同结果的目的下,例如可以使用图11的电路。图11的电路具有加法器Al、A2、A3、和比较器Cl、C2、C3、C4。限制值API被输入到比较器C1、C2、C3、C4各自具有的ー个输入。而且,在图11的例子的情况下,为了便于说明,作为M个能够发布的指令,设定了 4个指令(addrl的指令、addr2的指令、addr3的指令、addr4的指令),但能够发布的指令数为5个以上也能够通过同样的电路构成来应对。其中,上述addrl的指令、addr2的指令、addr3的指令、addr4的指令例如可以分别设为算木运算的加法(ADD)指令、減法(SUB)指令、逻辑运算的AND指令、OR指令等。加法器Al求出addrl的指令以及addr2的指令共计2个指令的消耗电流的合计。加法器A2求出加法器Al的输出与addr3的指令的消耗电流的合计,即求出addrl、addr2、addr3共计3个指令的消耗电流的合计。同样地,加法器A3求出加法器A2的输出与addr4的指令的消耗电流的合计,即求出addrl、addr2、addr3、addr4共计4个指令的消耗电流的合计。然后,比较器Cl、C2、C3、C4分别将addrl的指令的消耗电流、加法器Al的输出、カロ法器A2的输出、加法器A3的输出、与APl进行比较。S卩,比较器Cl将与addrl的指令相关的消耗电流P (t)与APl进行比较,比较器C2将与addrl、addr2各个指令相关的合计 的消耗电流P (t)与APl进行比较。同样,比较器C3将与addrl、addr2、addr3各个指令相关的合计消耗电流P (t)与APl进行比较。而且,比较器C4将与addrl、addr2、addr3、addr4各个指令相关的合计消耗电流P (t)与APl进行比较。各比较器Cl C4在P (t)为AP以上的情况下输出1,在P (t)小于AP的情况下输出O。而且,图11的电路生成地址的选择信号AD [I :4]作为比较器Cl C4的输出。例如可以设定成在AD [I 4] = 0000时发布addrl 4的4个指令,在AD [I 4] = 0001时发布addrl 3的3个指令。同样,可以设定成在AD [1:4] =0011时发布addrl 2的2个指令,在AD [1:4] = 0111时发布addrl的I个指令。图IOB是在监控方法I中消耗电流增加时的动作流程图(之2)。图IOB的动作流程图(之2)表示了与上述图IOA的动作流程图(之I)不同的方法的例子。图IOB的动作流程图(之2)中的步骤S21至S27与图IOA的动作流程图(之I)中的步骤S21至S27相同,省略重复的说明。在图IOB的动作流程图(之2)的情况下,可以在步骤S27A中追加虚拟指令。如上所述,如果在步骤S27中P (t)为对过去N个周期的平均电流值P (t — 1,t 一 N)加上了上述限制值APl而得到的值以下(是),则结束循环动作。这里,例如当在上述限制值APl的值小的情况下等,结束该循环动作吋,还可以想到上述P (t)小于上述过去N个周期的平均电流值P (t — 1,t 一 N)的情况、即消耗电流减少的情况。在这样的情况下,可以追加与上述P (t)和P (t 一 l,t 一 N)之间的差(消耗电流的减少量)对应的消耗电流的虚拟指令,来缓和消耗电流的減少。作为用于实现该目的的虚拟指令,可以通过在图6以及上述的消耗电流值=200 [uA]的虚拟指令的基础上,另外设置例如消耗电流值=100 [PA]的虚拟指令等,来预先准备消耗电流不同的多个虚拟指令。而且,可以根据上述P (t)与P (t — 1,t 一 N)之间的差(消耗电流的减少量),从这些消耗电流不同的多个虚拟指令中适当地选择并追加最佳的消耗电流的虚拟指令。该情况下,通过上述步骤S27A对在上述步骤S23、S24、S26、S27的循环动作中最终选择的第I至第i个指令追加虚拟指令。然后,如此得到的表示应该发布的指令的信息被传递给指令发布调整部13A。指令发布调整部13A将该被传递来的信息所表示的指令在当前周期中对运算単元14A、14B、14C、14D发布(步骤S28A)。图12是在监控方法I中消耗电流减少时的动作流程图。图12中,在步骤S41中从指令缓存器11获取得到的指令被解码器12解码。在步骤S41R、S42中,解码后的指令被传递给指令发布控制部13X的指令发布控制功能部13R,选择同时能够发布的M个指令Inst
(l)、Inst (2)、......、Inst (M)0然后,指令发布控制部13X进行步骤S43、S45、S46的循
环动作。在该循环动作中,在步骤S46将所发布的虚拟指令(du_y)的个数依次增加I,如果步骤S45的判断结果为是,则结束该循环动作。在步骤S43中,由电流变化计算部13C的计算部13CC对上述M个指令Inst (I)、 Inst (2)、.......Inst (M)和在步骤S46中追加的虚拟指令计算消耗电流的合计P (t)。
在步骤S44中,由电流变化计算部13C的计算部13CC计算出过去N个周期量的消耗电流的平均值P (t — l,t 一 N)。然后,在步骤S45中,将能够发布的指令以及虚拟指令的消耗电流的合计P (t)、与从过去N个周期的平均电流值P (t — 1,t 一 N)中减去了上述限制值AP2后的值进行比较。其結果,循环动作持续进行到能够发布的指令以及虚拟指令的消耗电流的合计P (t)变为从过去N个周期的平均电流值P (t — l,t 一 N)中减去了上述限制值AP2后的值以上(是)为止。其结果,决定根据需要追加了虚拟指令的结果的消耗电流值P (t)变为从过去N个周期的平均电流值P (t — 1,t 一 N)减去了上述限制值AP2后的值以上那样的虚拟指令的发布数(即“所需的虚拟指令的发布数”)。如此得到的需要的虚拟指令的发布数被传递给指令发布调整部13A。指令发布调整部13A将对能够发布的指令加上了上述所需的发布数的虚拟指令后的指令在当前周期中向运算单元14A、14B、14C、14D发布(步骤S47)。图13A是在监控方法2中消耗电流增加时的动作流程图(之I)。图13A中,在步骤S61中从指令缓存器11获取得到的指令被解码器12解码。在步骤S61R、S62中,解码后的指令被传递给指令发布控制部13X的指令发布控制功能部,选择同时能够发布的M个指
令Inst (l)、Inst (2)、.......Inst (M)0然后,指令发布控制部13X进行步骤S63、S64、
S66、S67的循环动作。在该循环动作中,i从初始值M开始按顺序减少I,在到i = I为止的期间,如果步骤S66的判断结果为是,则结束该循环动作。在步骤S64中,由电流变化计算部13C的计算部13CC求出上述M个指令中从第I
到第i个指令Inst (I)、Inst (2)、.......Inst (i)的消耗电流的合计P (t)。然后,计
算出加上了该当前周期的消耗电流P (t)的当前与过去的N个周期量的消耗电流的平均值P (t,t — N+l)。在步骤S65中,由电流变化计算部13C的计算部13CC计算出更加过去的N个周期量的消耗电流的平均值P (t — N,t 一 2N+ I)。然后,在步骤S66中,将上述加上了当前周期的当前与过去的N个周期量的消耗电流的平均值P (t,t 一 N+ I)、与对更加过去N个周期的平均电流值P (t-N,t-2N+ I)加上了上述限制值APl后的值进行比较。其結果,循环动作持续进行到当前与过去的N个周期量的消耗电流的平均值P(t,t 一 N + I)变为对更加过去N个周期的平均电流值P (t — N,t 一 2N+ I)加上了上述限制值APl而得到的值以下(是)为止。与上述相同,i的初始值为M,最初上述到第i个指令为止的消耗电流的合计P (t)是M个指令量的消耗电流。如果在该时刻当前与过去的N个周期量的平均电流值P (t,t 一 N+ I)为对更加过去N个周期的平均电流值P (t — N,t 一 2N + I)加上了上述限制值APl而得到的值以下(是),则结束循环动作(步骤S67),电流变化计算部13C将“能够发布的最大指令数=M”通知给指令发布调整部13A。指令发布调整部13A按照如上所述的优先顺序,对运算単元14A、14B、14C、14D中的对应的运算单元发布指令。另ー方面,当在上述最初的时刻当前与过去的N个周期量的平均电流值P (t,t 一N+ I)超过对更加过去N个周期的平均电流值P (t-N,t-2N+ I)加上了上述限制值APl而得到的值(否)吋,继续进行循环动作。然后,上述所述,在当前与过去的N个周期量的平均电流值P(t,t -N+ I)变为对更加过去N个周期的平均电流值P(t — N,t 一 2N +I)加上了上述限制值APl而得到的值P (t)以下的时刻(是),结束循环动作。其结果,从当前能够发布的M个指令中的地址较大的一方开始按顺序依次減少ー个指令,直到计算出的当前与过去的N个周期量的平均电流值P (t,t 一 N + I)变为对更加过去N个周期的平均电流值P (t — N,t 一 2N+ I)加上了上述限制值APl而得到的值以下为止。因此,从能够发布的M个指令中的地址较小的一方按顺序选择,最終选择当前与过去的平均电流值P (t, t -N+ I)即将超过对更加过去的平均电流值P (t-N, t-2N+ I)加上了限制值APl而得到的值之前的(第I至第i个)指令。然后,该最终选择出的指令的信息被传递给指令发布调整部13A。指令发布调整部13A将该最终选择出的第I至第i个指令在当前周期向运算单元14A、14B、14C、14D发布(步骤S68)。 图13B是在监控方法2中消耗电流增加时的动作流程图(之2)。图13B的动作流程图(之2)表示与上述的图13A的动作流程图(之I)不同的方法的例子。图13B的动作流程图(之2)中的步骤S61至S67与图13A的动作流程图(其I)中的步骤S61至S67相同,省略重复的说明。在图13B的动作流程图(之2)的情况下,可以在步骤S67A中追加虚拟指令。如上所述,在步骤S67中,如果当前与过去的N个周期量的平均电流值P (t,t 一 N +I)为对更加过去N个周期的平均电流值P (t — N,t 一 2N+ I)加上了上述限制值APl而得到的值以下,则结束循环动作。这里,例如当在上述限制值APl的值小的情况下等结束该循环动作时,还可以想到上述当前与过去的N个周期量的平均电流值P (t, t-N+ I)比上述更加过去N个周期的平均电流值P (t — N,t 一 2N + I)小(即消耗电量減少)的情况。在这样的情况下,可以根据需要追加与上述P (t — N,tー2N+l)和上述P (t,t 一N+ I)之间的差(消耗电流的减少量)对应的消耗电流的虚拟指令。作为用于实现该目的的虚拟指令,可以通过在图6与上述的消耗电流值=200 [ PA]的虚拟指令的基础上,另外设置例如消耗电流值=100 [PA]的虚拟指令等,来预先准备消耗电流不同的多个虚拟指令。而且,可以根据上述P (t — N, t — 2N + I)与上述P (t,t — N+1)之间的差(消耗电流的减少量),从这些消耗电流不同的虚拟指令中适当地选择最佳的消耗电流的虚拟指令来进行追加。该情况下,通过上述步骤S67A对在上述步骤S63、S64、S66、S67的循环动作中最終选择的第I至第i个指令追加虚拟指令。然后,如此得到的表示应该发布的指令的信息被传递给指令发布调整部13A。指令发布调整部13A将该被传递的信息所表示的指令在当前周期中向运算单元14A、14B、14C、14D发布(步骤S68A)。图14是在监控方法2中消耗电流减少时的流程图。图14中,在步骤S81中从指令缓存器11获取得到的指令被解码器12解码。在步骤S81R、S82中,解码后的指令被传递给指令发布控制部13X的指令发布控制功能部13R,选择同时能够发布的M个指令Inst
(l)、Inst (2)、......、Inst (M)0然后,指令发布控制部13X进行步骤S83、S85、S86的循
环动作。在该循环动作中,在步骤S86中将所发布的虚拟指令的个数依次増加1,如果步骤S85的判断结果为是,则结束该循环动作。
在步骤S83中,由电流变化计算部13C的计算部13CC对上述M个指令Inst (I)、
Inst (2)、......、Inst (M)和在步骤S46中追加的虚拟指令计算出消耗电流的合计P (t)。
并且,计算出加上了该当前周期的消耗电流的当前与过去的N个周期量的消耗电流和平均值P (t,t -N+ 1)0在步骤S84中,由电流变化计算部13C的计算部13CC计算出更加过去的N个周期量的消耗电流的平均值P (t — N,t 一 2N+ I)。然后,在步骤S85中,将加上了当前周期的消耗电流的当前与过去的N个周期量的平均电流值P (t,t — N+l)、~从更加过去N个周期的平均电流值P (t — N,t 一 2N+ I)减去了上述限制值AP2后的值进行比较。其結果,循环动作持续进行到加上了当前周期的消耗电流的当前与过去的N个周期分的平均电流值P (t,t 一N+ I)变为从更加过去N个周期的平均电流值P (t — N,t 一 2N+ I)减去了上述限制值AP2而得到的值以上(是)为止。其结果,按照追加了所需个数的虚拟指令的结果的、加上了当前周期的消耗电流的当前与过去的N个周期量的平均 电流值P (t, t -N+ I)变为从更加过去N个周期的平均电流值P (t -N, t - 2N+ I)减去了上述限制值A P2后的值以上的方式,依次追加一个虚拟指令(步骤S86)。如此得到的所需的虚拟指令的发布数被传递给指令发布调整部13A。指令发布调整部13A将对能够发布的指令加上了上述所需的发布数的虚拟指令后的指令在当前周期中向运算单元14A、14B、14C、14D 发布(步骤 S87)。图15是用于对能够应用上述实施例的处理器的服务器等信息处理装置的硬件构成例进行说明的框图。该信息处理装置包括作为运算处理装置的处理器110、作为存储装置的存储器120、和将处理器110与存储器120连接的总线130。存储器120储存被写入处理器110所执行的指令的程序、作为上述指令的执行对象的数据、作为上述指令的执行结果的数据等。作为处理器110,可以应用图2中记载的构成的处理器。该情况下,图2所示的处理器的指令缓存器11取得存储器120中储存的程序并进行保持,解码器12获取(取得)该程序的指令并进行解码(解释),指令发布控制部13X将解码后的指令向运算机构14的运算单元14A、14B、14C、14D发布。运算单元14A、14B、14C、14D执行该被发布的指令。指令发布控制部13X具有与图2至14以及上述实施例的处理器中的指令发布控制部13X相同的构成。
权利要求
1.一种运算处理装置,其特征在于,具有 保持指令的指令保持部; 对从上述指令保持部取得的指令进行解释的指令解释部; 执行被发布的指令的运算部;和 指令发布控制部,其将被上述指令解释部解释后的指令向上述运算部发布,并且计算出上述运算部因在第I规定期间发布的指令而消耗的消耗电流值、和上述运算部因上述解释后的指令中的能够在第2规定期间发布的指令而消耗的电流的消耗电流预定值,在上述消耗电流预定值相对上述消耗电流值的变化量超过规定的限制值时,在上述第2规定期间中抑制上述解释后的指令中的一部分指令的发布。
2.根据权利要求I所述的运算处理装置,其特征在于, 上述指令发布控制部对上述运算部发布虚拟指令来取代上述抑制了发布的指令。
3.根据权利要求I或2所述的运算处理装置,其特征在于, 上述消耗电流值是上述运算部在上述第I规定期间的消耗电流的平均值, 上述消耗电流预测值是上述运算部在上述第2规定期间的消耗电流的平均值。
4.根据权利要求I或2所述的运算处理装置,其特征在于, 上述消耗电流值是上述运算部在上述第I规定期间的消耗电流的平均值, 上述消耗电流预测值是上述运算部在当前周期的消耗电流的预定值。
5.一种信息处理装置,具有储存指令的存储装置和与上述存储装置连接的运算处理装置,其特征在于, 上述运算处理装置具有 保持从上述存储装置取得的指令的指令保持部; 对从上述指令保持部取得的指令进行解释的指令解释部; 执行被发布的指令的运算部;和 指令发布控制部,其将被上述指令解释部解释后的指令向上述运算部发布,并且计算出上述运算部因在第I规定期间发布的指令而消耗的消耗电流值、和上述运算部因上述解释后的指令中的能够在第2规定期间发布的指令而消耗的电流的消耗电流预定值,在上述消耗电流预定值相对上述消耗电流值的变化量超过规定的限制值时,在上述第2规定期间中抑制上述解释后的指令中的一部分指令的发布。
6.根据权利要求5所述的信息处理装置,其特征在于, 上述指令发布控制部对上述运算部发布虚拟指令来取代上述抑制了发布的指令。
7.根据权利要求5或6所述的信息处理装置,其特征在于, 上述消耗电流值是上述运算部在上述第I规定期间的消耗电流的平均值, 上述消耗电流预测值是上述运算部在上述第2规定期间的消耗电流的平均值。
8.根据权利要求5或6所述的信息处理装置,其特征在于, 上述消耗电流值是上述运算部在上述第I规定期间的消耗电流的平均值, 上述消耗电流预测值是上述运算部在当前周期的消耗电流的预定值。
9.一种运算处理装置的控制方法,所述运算处理装置具有对指令进行保持的指令保持部,该运算处理装置的控制方法的特征在于,具有 上述运算处理装置所具有的指令解释部对从上述指令保持部取得的指令进行解释的步骤; 上述运算处理装置所具有的运算部执行被发布的指令的步骤; 上述运算处理装置所具有的指令发布控制部计算出上述运算部因在第I规定期间发布的指令而消耗的消耗电流值、和上述运算部因上述解释后的指令中能够在第2规定期间发布的指令而消耗的电流的消耗电流预定值的步骤;和 上述运算处理装置所具有的指令发布控制部将由上述指令解释部解释后的指令向上述运算部发布,并且在上述消耗电流预定值相对上述消耗电流值的变化量超过规定的限制值时,在上述第2规定期间中抑制上述解释后的指令中的一部分指令的发布的步骤。
10.根据权利要求9所述的运算处理装置的控制方法,其特征在于, 上述指令发布控制部对上述运算部发布虚拟指令来取代上述抑制了发布的指令。
11.根据权利要求9或10所述的运算处理装置的控制方法,其特征在于, 上述消耗电流值是上述运算部在上述第I规定期间的消耗电流的平均值, 上述消耗电流预测值是上述运算部在上述第2规定期间的消耗电流的平均值。
12.根据权利要求9或10所述的运算处理装置的控制方法,其特征在于, 上述消耗电流值是上述运算部在上述第I规定期间的消耗电流的平均值, 上述消耗电流预测值是上述运算部在当前周期的消耗电流的预定值。
全文摘要
将被指令解释部解释后的指令向运算部发布,并且计算出运算部因在第1规定期间发布的指令而消耗的消耗电流值、和运算部因能够在第2规定期间发布的指令而消耗的电流的消耗电流预定值,在消耗电流预定值相对消耗电流值的变化量超过规定的限制值时,在第2规定期间中抑制一部分指令的发布。
文档编号G06F1/28GK102652297SQ20098016289
公开日2012年8月29日 申请日期2009年12月14日 优先权日2009年12月14日
发明者冈野广, 吴文豪, 川边幸仁 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1