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

上传人:小** 文档编号:4057812 上传时间:2018-08-13 格式:PDF 页数:29 大小:4.23MB
返回 下载 相关 举报
摘要
申请专利号:

CN200980162892.2

申请日:

2009.12.14

公开号:

CN102652297A

公开日:

2012.08.29

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 1/32申请公布日:20120829|||实质审查的生效IPC(主分类):G06F 1/32申请日:20091214|||公开

IPC分类号:

G06F1/32; G06F1/28

主分类号:

G06F1/32

申请人:

富士通株式会社

发明人:

吴文豪; 冈野广; 川边幸仁

地址:

日本神奈川县

优先权:

专利代理机构:

北京集佳知识产权代理有限公司 11227

代理人:

李伟;阎文君

PDF下载: PDF下载
内容摘要

将被指令解释部解释后的指令向运算部发布,并且计算出运算部因在第1规定期间发布的指令而消耗的消耗电流值、和运算部因能够在第2规定期间发布的指令而消耗的电流的消耗电流预定值,在消耗电流预定值相对消耗电流值的变化量超过规定的限制值时,在第2规定期间中抑制一部分指令的发布。

权利要求书

1.一种运算处理装置,其特征在于,具有:
保持指令的指令保持部;
对从上述指令保持部取得的指令进行解释的指令解释部;
执行被发布的指令的运算部;和
指令发布控制部,其将被上述指令解释部解释后的指令向上述运算
部发布,并且计算出上述运算部因在第1规定期间发布的指令而消耗的
消耗电流值、和上述运算部因上述解释后的指令中的能够在第2规定期
间发布的指令而消耗的电流的消耗电流预定值,在上述消耗电流预定值
相对上述消耗电流值的变化量超过规定的限制值时,在上述第2规定期
间中抑制上述解释后的指令中的一部分指令的发布。
2.根据权利要求1所述的运算处理装置,其特征在于,
上述指令发布控制部对上述运算部发布虚拟指令来取代上述抑制
了发布的指令。
3.根据权利要求1或2所述的运算处理装置,其特征在于,
上述消耗电流值是上述运算部在上述第1规定期间的消耗电流的平
均值,
上述消耗电流预测值是上述运算部在上述第2规定期间的消耗电流
的平均值。
4.根据权利要求1或2所述的运算处理装置,其特征在于,
上述消耗电流值是上述运算部在上述第1规定期间的消耗电流的平
均值,
上述消耗电流预测值是上述运算部在当前周期的消耗电流的预定
值。
5.一种信息处理装置,具有储存指令的存储装置和与上述存储装
置连接的运算处理装置,其特征在于,
上述运算处理装置具有:
保持从上述存储装置取得的指令的指令保持部;
对从上述指令保持部取得的指令进行解释的指令解释部;
执行被发布的指令的运算部;和
指令发布控制部,其将被上述指令解释部解释后的指令向上述运算
部发布,并且计算出上述运算部因在第1规定期间发布的指令而消耗的
消耗电流值、和上述运算部因上述解释后的指令中的能够在第2规定期
间发布的指令而消耗的电流的消耗电流预定值,在上述消耗电流预定值
相对上述消耗电流值的变化量超过规定的限制值时,在上述第2规定期
间中抑制上述解释后的指令中的一部分指令的发布。
6.根据权利要求5所述的信息处理装置,其特征在于,
上述指令发布控制部对上述运算部发布虚拟指令来取代上述抑制
了发布的指令。
7.根据权利要求5或6所述的信息处理装置,其特征在于,
上述消耗电流值是上述运算部在上述第1规定期间的消耗电流的平
均值,
上述消耗电流预测值是上述运算部在上述第2规定期间的消耗电流
的平均值。
8.根据权利要求5或6所述的信息处理装置,其特征在于,
上述消耗电流值是上述运算部在上述第1规定期间的消耗电流的平
均值,
上述消耗电流预测值是上述运算部在当前周期的消耗电流的预定
值。
9.一种运算处理装置的控制方法,所述运算处理装置具有对指令
进行保持的指令保持部,该运算处理装置的控制方法的特征在于,具有:
上述运算处理装置所具有的指令解释部对从上述指令保持部取得
的指令进行解释的步骤;
上述运算处理装置所具有的运算部执行被发布的指令的步骤;
上述运算处理装置所具有的指令发布控制部计算出上述运算部因
在第1规定期间发布的指令而消耗的消耗电流值、和上述运算部因上述
解释后的指令中能够在第2规定期间发布的指令而消耗的电流的消耗电
流预定值的步骤;和
上述运算处理装置所具有的指令发布控制部将由上述指令解释部
解释后的指令向上述运算部发布,并且在上述消耗电流预定值相对上述
消耗电流值的变化量超过规定的限制值时,在上述第2规定期间中抑制
上述解释后的指令中的一部分指令的发布的步骤。
10.根据权利要求9所述的运算处理装置的控制方法,其特征在于,
上述指令发布控制部对上述运算部发布虚拟指令来取代上述抑制
了发布的指令。
11.根据权利要求9或10所述的运算处理装置的控制方法,其特
征在于,
上述消耗电流值是上述运算部在上述第1规定期间的消耗电流的平
均值,
上述消耗电流预测值是上述运算部在上述第2规定期间的消耗电流
的平均值。
12.根据权利要求9或10所述的运算处理装置的控制方法,其特
征在于,
上述消耗电流值是上述运算部在上述第1规定期间的消耗电流的平
均值,
上述消耗电流预测值是上述运算部在当前周期的消耗电流的预定
值。

说明书

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

技术领域

本发明涉及运算处理装置、信息处理装置及其控制方法。

背景技术

作为处理器的技术,公知有以下的方法。即,是使用与按每个指令
定义的电流消耗量具有相关性的值来预测各时钟周期下的消耗电流,如
果其变化率为规定值以上,则更换指令或置换成虚拟指令以使变化量变
小的方法。

专利文献1:日本特开2004-334641号公报

专利文献2:日本特开平10-207859号公报

专利文献3:日本特开2004-13820号公报

非专利文献1:"The SPARC Architecture Manual",version9,
SPARC International,Inc.,Santa Clara,California,SAV09R1459912

发明内容

本发明的目的在于,提供一种通过简易的构成就能够可靠地抑制消
耗电流的变化的运算处理装置。

将被指令解释部解释后的指令向运算部发布,并且计算出运算部因
在第1规定期间发布的指令而消耗的消耗电流值、和运算部因能够在第
2规定期间发布的指令而消耗的电流的消耗电流预定值,在消耗电流预
定值相对消耗电流值的变化量超过规定的限制值时,在第2规定期间中
抑制一部分指令的发布。

根据上述构成,能够提供通过简易的构成就能够可靠地抑制运算处
理装置中消耗电流的变化的构成。

附图说明

图1是用于对参考例的处理器中指令发布控制进行说明的处理器的
内部框图。

图2是用于对实施例的处理器中指令发布控制进行说明的处理器的
内部框图。

图3是图2所示的处理器的构成中特别地将指令发布控制部以及运
算单元提取出来加以表示的框图。

图4是用于对实施例的处理器中指令发布控制的方法进行说明的图
(之1)。

图5是用于对实施例的处理器中指令发布控制的方法进行说明的图
(之2)。

图6是用于对实施例的处理器中指令发布控制的方法进行说明的、
表示电流值表的构成例的图。

图7是用于对在实施例的处理器中限制指令的发布时的例子进行说
明的图。

图8是用于对在实施例的处理器中发布虚拟指令时的例子进行说明
的图。

图9是用于对实施例的处理器中指令发布控制的方法进行说明的、
表示程序中的指令与地址之间的关系的例子的图。

图10A是用于对实施例的处理器中指令发布控制的方法进行说明的
动作流程图(监控方法1中的消耗电流增加时,之1)。

图10B是用于对实施例的处理器中指令发布控制的方法进行说明的
动作流程图(监控方法1中的消耗电流增加时,之2)。

图11是对执行图10A、图10B所记载的流程图中的动作的一部分
的电路的构成例进行表示的图。

图12是用于对实施例的处理器中指令发布控制的方法进行说明的
动作流程图(监控方法1中的消耗电流减少时)。

图13A是用于对实施例的处理器中指令发布控制的方法进行说明的
动作流程图(监控方法2中的消耗电流增加时,之1)。

图13B是用于对实施例的处理器中指令发布控制的方法进行说明的
动作流程图(监控方法2中的消耗电流增加时,之2)。

图14是用于对实施例的处理器中指令发布控制的方法进行说明的
动作流程图(监控方法2中的消耗电流减少时)。

图15是对能够应用实施例的处理器的信息处理装置的硬件构成例
进行表示的框图。

具体实施方式

以下,对实施例进行说明。

在实施例中,在运算处理装置中、即作为半导体集成电路的处理器
中通过抑制指令发布数、发布频度,来实现电源噪声的抑制。其中,作
为运算处理装置的具体例,可举出CPU(Central Processing Unit)、GPU
(Graphical Processing Unit)、DSP(Digital Signal Processor)等。

处理器的低消耗电力化技术是为了实现信息通信设备的低消耗电
力化的重要技术。在处理器的低消耗电力化中,只向执行处理所需要的
寄存器供给时钟的时钟门控、只使执行处理所需要的RAM(Random 
Access Memory)启动(enable)等抑制电路动作率的方法是有效方法。
但是,在这些方法中,为了防止产生因执行处理时与不执行处理时之间
的消耗电流之差引起的电源噪声,希望抑制作为电流时间变化率的
dI/dt。

作为用于降低LSI(Large Scale Integrated circuit)内部的电源噪
声的方法,存在在LSI内部搭载具有电容成分的电容器单元或去耦合电
容单元等,或者在封装体、系统板上还搭载去耦合电容器的方法。但如
果使用去耦合电容单元,则认为会引起芯片面积的增加、漏电电流的增
加等。

另外,作为用于降低电源噪声的电路控制方法,有通过在电路动作
开始时将时钟频率抑制得低,来将电流时间变化率dI/dt抑制得低这一
方法。并且,有一种在软件的编译阶段就预测指令的消耗电流,通过软
件来调整指令发布的方法。

但是,对于上述在电路动作开始时就将时钟频率抑制得低来将电流
时间变化率dI/dt抑制得低的方法而言,不以周期模型(cycle base)监
控电流变化量,而在花费规定的期间使时钟频率阶段性地变化的同时供
给时钟信号。因此认为,如果不插入相对时钟频率大的富裕量,则无法
应对因大电流变化而引起的电源噪声。而且,还可以想到针对小噪声使
时钟频率过度变慢的情况。即,在该方法中,由于不是根据噪声来调整
时钟频率,所以认为控制精度低。

另外,对上述在软件的编译阶段预测指令的消耗电流,通过改变指
令的顺序等用软件来调整指令的发布的方法而言,由于通过软件进行调
度,所以认为目标码变大。而且,由于需要能够以周期模型来完全把握
指令依赖性的编译器,所以难以实现。另外,在流水线互锁等情况下,
认为存在无法通过软件来应对的情况。这里,流水线互锁(pipeline 
interlock)是指检测出冒险(hazard)并加以避免的机构。与数据依赖
相关的冒险(data dependent hazard)是指由于多个指令被乱序处理,
所以导致运算结果的写入、读出与机器语言的程序设计所意图的顺序前
后颠倒,成为与期待不同的结果的状况。将检测出冒险并使流水线停止
的情况称为“流水线互锁”。由于在流水线互锁中停止执行指令,所以消
耗电流减少,为了缓和这样的消耗电流的减少,使用“只执行虚拟指令
的虚拟电路”。这里,“虚拟指令”是不对后续的执行指令造成影响的指
令,“虚拟电路”是执行“虚拟指令”来消耗电流,使消耗电流的减少缓和
的电路。尤其在大规模的系统中,认为与因流水线互锁而引起的消耗电
流的减少对应的虚拟电路的规模变大,芯片面积增加、消耗电力等增加
等。

接着,为了和以下说明的实施例进行比较,对运算处理装置的参考
例进行说明。图1是表示作为运算处理装置的参考例的处理器的内部构
成的框图。图1的处理器例如是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 register zero(g0),应用使g0成为作为运算结果的储存寄存器
的目标(destination)的指令等对程序的执行不造成影响的现有指令。
或者,也可以通过使现有的电路工作来定义不变更处理器状态那样的新
建虚拟指令并加以应用。优选虚拟指令是只要不超过限制值,便尽可能
使消耗电流大幅变化的指令。这里,Global register zero(g0)是指如
果进行读出则总是得到"0",即使进行写入,值也不变的全局寄存器。

或者,在实施例涉及的指令发布装置中,存储在过去几个周期的期
间发布的指令或由这些指令消耗的电流的估计值。而且,计算出根据当
前周期能够发布的指令概算出的电流值相对该电流值的增加量。判定计
算出的增加量是否超过处理器的限制值,在超过的情况下限制指令的发
布以使其不超过限制值。

或者,在实施例涉及的指令发布装置中,存储在过去几个周期的期
间发布的指令或由这些指令消耗的电流的估计值。而且,计算出根据当
前周期能够发布的指令概算出的电流值相对该电流值的减少量。判定计
算出的减少量是否超过处理器的限制值,在超过的情况下发布对后续的
执行指令不造成影响的虚拟指令,以使其不超过限制值。

另外,在实施例中,当P(t)>P(t-1,t-N)时,按照满足P
(t)≤P(t-1,t-N)+ΔP1的条件的方式限制当前周期下的指令的发
布。这里,变量t表示当前周期,P(t-1,t-N)表示根据过去N个
周期的指令估计的平均消耗电流,ΔP1表示被处理器允许的限制值,P
(t)表示根据在当前周期能够发布的指令估计的消耗电流值。

另外,在实施例中,当P(t)<P(t-1,t-N)时,按照满足P
(t)≥P(t-1,t-N)-ΔP2的条件的方式,在当前周期中发布对后
续的执行指令不造成影响的虚拟指令。这里,与上述相同,变量t表示
当前周期,P(t-1,t-N)表示根据过去N个周期的指令估计的平均
消耗电流,ΔP2表示被处理器允许的限制值,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接收该指示,对所发布的指令进行限制。
其结果,能够降低因电流时间变化率dI/dt引起的电源噪声。

下面,对图2的处理器的动作中尤其与指令的发布相关的动作进行
说明。解码器12从指令缓存器11中获取指令,对其进行解码,并传递
给指令发布控制部13X。在指令发布控制部13X中,根据解码后的结果
来选择指令发布控制功能部13R能够发布的指令,电流变化计算部13C
对选择出的指令进行以下那样的基于消耗电流变化的发布控制。

指令发布控制部13X的电流变化计算部13C对保持了能够发布的指
令的内部寄存器的入口进行识别。然后,运算单元14A、14B、14C、
14D基于识别出的入口中保持的能够发布的指令的种类、数量等,计算
执行能够发布的指令时的消耗电流值。电流变化计算部13C还根据指令
数、种类来计算过去数个周期的平均消耗电流。在执行能够发布的指令
时的消耗电流值相对该过去的平均消耗电流的变化量(也简称为“变化
量”)不超过特定的阈值(即限制值ΔI)的范围内,决定在规定的期间
内能够发布的最大指令数,并将其传递给指令发布调整部13A。上述规
定的期间在本实施例中为1个周期。该规定的期间并不限定于1个周期,
例如也可以是数个周期。其中,在如实施例那样是超标量方式的处理器
时,作为硬件而言能够同时发布的指令数的上限是被决定的,同时能够
发布的指令数为该上限以下作为前提。在实施例的处理器中,由于运算
单元14A、14B、14C、14D的个数为4个,所以同时能够发布的指令
数的上限为4。

指令发布调整部13A接收在规定的期间内能够发布的最大指令数,
基于运算单元14A、14B、14C、14D中的、与所发布的各个指令对应
的各个运算单元,选择实际发布的指令。另外,在同时能够发布的指令
有多个的情况下,使多个指令之间具有优先顺序,按照优先顺序来选择
指令,以使每1个周期发布的指令数控制在能够发布的最大指令数内。
其中,作为优先顺序的决定方法,例如可以从当前能够发布的指令中在
程序中的执行顺序靠前的指令(如果不夹着分支指令,则在主存储装置
中储存程序的情况下从地址小的指令)开始按顺序发布、即基于程序中
的指令的出现顺序进行发布。或者,也可以维持每1个周期发布的指令
数不变,通过按照只在多个周期中的1个周期发布指令的方式限制指令
发布的频度,来限制所发布的指令数。而且,指令发布控制部13X如此
地以根据需要限制了指令的发布数的方式,对运算单元14A、14B、14C、
14D中对应的运算单元发布指令。然后,该指令发布控制部13X将发布
过的指令的入口释放。这样,在不超过限制值的范围发布尽量多的指令。

即,电流变化计算部13C设置在解码器12与运算单元14A、14B、
14C、14D之间,如图3所示那样,具有计算部13C、指令监控器13M、
以及电流表13T。指令监控器13M对到当前时刻为止的在规定数的周
期发布了的指令的种类、发布数进行监控。电流表13T按指令的种类来
保存对应的电流预测值(参照后述的图6)。其中,电流表13T可以如
上述那样根据指令的种类来保持电流预测值,或者也可以不基于指令的
种类地保持每1个指令的电流值。所保存的指令的种类、电流预测值可
以是按照在搭载有该处理器的LSI进行动作时能够调整的方式,通过程
序可变的构成。另外,与上述指令的种类对应的电流预测值例如可以在
进行LSI设计时进行电力模拟来预先求出。或者,也可以通过对实际制
造出的芯片中的处理器整体的消耗电力进行测定,来求出各指令的消耗
电力并进行设定。

电流变化计算部13C的计算部13CC利用指令监控器13M保存的
规定数的周期量的指令履历、和当前能够发布的指令,并参考电流表
13T来预测消耗电流的变化量。在消耗电流增加、作为消耗电流变化量
的电流增加量超过限制值的情况下,指令发布调整部13A按照增加量控
制在限制值以下的方式,求出能够发布的最大指令数,并输出能够发布
的最大指令数和电流计算结果。即,该情况下,通过限制当前发布的指
令的发布,来减少运算单元14A、14B、14C、14D中的消耗电流,将
其抑制在限制值以内。另一方面,在电流减少、作为消耗电流变化量的
电流减少量超过限制值的情况下,指令发布调整部13A按照减少量控制
在限制值以下的方式,求出所需的虚拟指令的发布数,并输出所需的虚
拟指令的发布数和电流计算结果。即,该情况下,除了程序中原本存在
的指令之外,通过虚拟指令的发布使运算单元14A、14B、14C、14D
中的消耗电流增加,将消耗电流抑制在限制值以内。

指令发布调整部13A按照由电流变化计算部13C输出的能够发布的
最大指令数或者所需的虚拟指令的发布数,对在规定期间内从指令发布
控制部13X发布的指令进行限制,或者只发布所需发布数量的虚拟指
令。

根据实施例,通过在处理器的指令发布控制部13X中设置电流变化
计算部13C、指令发布调整部13A,能够实现与实际执行的指令对应的
更高精度的电流变化控制。

以下,对消耗电流变化的计算方法的例子进行说明。作为消耗电流
变化的计算方法,有监控方法1以及监控方法2,可以使用监控方法1
以及监控方法2中的任意一个。

首先,利用图4对监控方法1进行说明。在监控方法1中,基于紧
前X个周期的指令数或者指令发布频度,对当前周期下的指令发布数或
者指令发布频度进行控制。以下对具体例进行说明。

所允许的最大电流变化值(即限制值)ΔI被预先设定给预先电流变
化计算部13C。电流变化计算部13C的计算部13CC参照指令监控器
13M以及电流表13T,计算在紧前X个周期发布的指令的电流预测值
的平均(将计算结果设为A)。并且,还计算当前能够发布的指令的电
流预测值(将计算结果设为B)。接着,计算电流值的差量B-A,如果
B-A>ΔI,则从电流变化计算部13C对指令发布调整部13A传递接下
来能够发布的最大指令数。另一方面,如果B-A<-ΔI,则从电流变
化计算部13C对指令发布调整部13A指示所需的虚拟指令的发布数。
消耗电流变化的计算可以按每1个周期进行,或者也可以按一定周期期
间进行。这里,按一定周期期间进行的方法是不在每个周期都进行消耗
电流变化的计算,而是按规定数的周期进行电流变化的计算的方法。

接着,利用图5对监控方法2进行说明。在监控方法2中,基于包
含当前周期在内的当前与紧前X个周期的指令数或者指令发布频度、和
更靠前X个周期的指令数或者指令发布频度,对当前周期下的指令发布
数或者指令发布频度进行控制。以下对具体例进行说明。

在监控方法2中,也将所允许的最大电流变化值(即限制值)ΔI预
先设定给电流变化计算部13C。电流变化计算部13C的计算部13CC参
照指令监控器13M以及电流表13T,分别计算包含当前周期在内的当
前与紧前X个周期发布的指令的电流预测值的平均(或者和)(设为A)、
和更靠前X个周期发布的指令的电流预测值的平均(或者和)(设为B),
并将其相互比较。如果B-A>ΔI,则从电流变化计算部13C对指令发
布调整部13A传递当前能够发布的最大指令数。如果B-A<-ΔI,则
从电流变化计算部13C对指令发布调整部13A指示所需的虚拟指令的
发布数。上述X的值根据应该处理的电源噪声的频带来设定。其中,高
频波段的噪声由安装于芯片的去耦合电容单元等除去,因此上述应该处
理的电源噪声的频带是中低频率的波段。一般频率高的噪声周期短,频
率低的噪声周期长。因此,通过根据应该处理的电源噪声的频带适当地
调整上述X的值,就能够监控该电源噪声。其中,该情况下,消耗电流
变化的计算可以按每1个周期进行,也可以是按一定周期期间进行的方
法。这里,按一定周期期间进行方法是不按每个周期都进行消耗电流变
化的计算,而按规定数的周期进行消耗电流变化的计算的方法。

接下来,利用图6、图7以及应用了上述监控方法1时的具体动作
例,对上述实施例的处理器中的消耗电流增加时的动作进行说明。

图6表示上述电流表13T的一个例子。在该例子的情况下,电流表
13T中储存有各指令的种类Inst1、Inst2、......、Inst8。并且,在电流
表13T中,作为上述4个运算单元14A~14D中对应的运算单元执行该
种类的各个指令时的消耗电流值,分别储存有300、200、......、250[μA]。

而且,在电流变化计算部13C中,作为电流变化限制值(也简称为
“限制值”),设定了ΔP1=500[μA]。另外,如上所述,在该处理器中
同时能够发布的指令数最大为4(#1、#2、#3、#4)。

图7表示了S1、S2、S3的各时刻的过去5个周期(“5”~“1”)发
布的指令、和在当前周期(“0”)中能够发布的指令。例如,图7表示
了在上段时刻S1中没有过去5个周期发布的指令,当前能够发布的指
令为Inst1、Inst2、Inst3、Inst4。

另外,在图7中,将不同时执行能够发布的指令#1、#2、#3、
#4各个时的每1个指令的消耗电流值分别设为20[μA]。

另外,将监控期间设为N=4[周期]。在图7的时刻S1的情况下,
在过去4个周期(“4”~“1”)中,同时能够发布的指令#1、#2、#3、
#4中的任意一个都未被执行。因此,该期间的运算单元14A、14B、
14C、14D的消耗电流(也简称为“消耗电流”)为20×4×4=320[μA],
过去4个周期中的每1个周期的平均消耗电流P(t-1,t-4)为320/4
=80[μA]。另一方面,当前能够发布的指令Inst1、Inst2、Inst3、Inst4
的消耗电流值P(t)为300+200+250+150=900[μA]。其结果,变
化量为P(t)-P(t-1,t-4)=820[μA],比限制值ΔP1=500[μA]
大320[μA]。因此,限制该4个周期的监控期间的下一个周期中的指
令发布数。其结果,由指令发布调整部13A发布限制后的指令。在图7
的例子中,按地址顺序选择指令Inst1、Inst2指令(能够发布的最大指
令数=2)。其原因在于,在还选择了指令Inst3的情况下,发布共计3
个指令Inst1、Inst2、Inst3时的变化量为300+200+250+20-80=690
[μA],超过限制值500[μA]。该情况下,结果发送当前能够发布的4
个指令Inst1、Inst2、Inst3、Inst4中地址顺序早的2个指令Inst1、Inst2,
将剩余2个指令Inst3、Inst4的发布延迟到下一周期以后(图7的中段
的时刻S2)。

接着,在图7的中段的时刻S2的情况下,当前能够发布的指令为4
个指令Inst5、Inst6、Inst3、Inst4。其中,2个指令Inst3、Inst4是如
上所述在之前的周期延迟了发布的指令,其他2个指令Inst5、Inst6是
对指令发布控制部13X新赋予的指令。该情况下,过去4个周期的监控
期间中的平均电流值P(t+1-1,t+1-4)为(20×4×3+20×2+300
+200)/4=195[μA]。另一方面,能够发布的上述4个指令Inst5、Inst6、
Inst3、Inst4的消耗电流值P(t+1)为250+200+250+150=850[μA]。
其结果,变化量为P(t+1)-P(t+1-1,t+1-4)=655[μA],比
限制值ΔP1=500[μA])大155[μA]。因此,限制该4个周期的监控
期间的下一周期中的指令发布数。指令发布调整部13A发布限制了发布
数后的指令。在图7的例子中,以地址顺序选择3个指令Inst3、Inst4、
Inst5(能够发布的最大指令数=3)。其结果,该3个指令Inst3、Inst4、
Inst5被发布,剩余的1个指令Inst6被延迟到下一周期以后(图7的下
段的时刻S3)。

此外,也能够成为基于超过限制值的量的电流的大小,使能够发布
的最大指令数不同那样的构成。而且,关于所发布的指令的选择,如上
述那样,按指令的地址顺序选择。这样,调整成在不超过限制值的范围
同时发布尽可能多的指令。另外,也可以将在前面的周期以前延迟的指
令优先发布。

接下来,利用图6、图8以及应用了上述监控方法1时的具体动作
例,对上述实施例的处理器中的消耗电流减少时的动作进行说明。

在电流变化计算部13C中,将限制值与上述ΔP1同样设定为ΔP2
=500[μA],同时能够发布的指令数也与上述同样最大为4。而且,与
上述相同,将没有同时执行能够发布的指令#1、#2、#3、#4各个时
的消耗电流按每一个指令设为20[μA]。另外,与上述同样设定为监控
期间N=4[周期]。

在图8的最上段的时刻S11中,利用指令监控器13M监控在过去4
个周期(“4”~“1”)的监控期间发布的指令。若参照图6的电流表13T
的例子,则过去4个周期的平均电流值P(t-1,t-4)为925[μA]。
另一方面,由于没有当前(周期“0”)能够发布的指令,所以电流值P
(t)为80[μA]。其结果,变化量为P(t-1,t-4)-P(t)=845
[μA],比限制值ΔP2=500[μA]大345[μA]。因此,电流变化计算
部13C决定所需的虚拟指令的发布数,并向指令发布调整部13A传递。
根据图6的电流表13T,每一个虚拟指令(dummy)的消耗电流值=200
[μA]。因此,为了将变化量抑制为345[μA]以下,由于200<345
+20[μA]、200×2=400>345+20×2[μA],所以需要两个虚拟指令。
因此,对指令发布调整部13A指示为需要的虚拟指令的发布数=2,以
便分别发送两个虚拟指令(dummy,dummy)作为同时能够发布的指令
中的指令#1、#2。指令发布调整部13A根据指示分别发布两个虚拟指
令(dummy,dummy),作为同时能够发布的指令中的#1、#2(图8
的中断的时刻S12)。

并且,在图8的中断的时刻S12中,在下一周期(“0”)中也没有
能够发布的指令。因此,过去4个周期的平均电流值P(t+1-1,t+1
-4)为797.5[μA],当前能够发布的指令的电流值P(t+1)为80[μA]。
该期间的变化量为P(t+1-1,t+1-4)-P(t+1)=717.5[μA],
比限制值ΔP2=500[μA]大217.5[μA]。为了将变化量抑制为217.5
[μA]以下,由于200<217.5+20[μA]、200×2=400>217.5+20×2
[μA],所以需要两个虚拟指令。因此,对指令发布调整部13A指示需
要的虚拟指令的发布数=2,以便发布两个虚拟指令(dummy,dummy)
作为同时能够发布的指令中的#3、#4。指令发布调整部13A根据指示分
别发布两个虚拟指令(dummy,dummy)作为同时能够发布的指令中的
#3、#4(图8的下段,时刻S13)。

接着,利用图9至图14,对上述实施例涉及的处理器中的、用于说
明基于消耗电流变化的指令发布控制的动作的流程图进行说明。

图9表示了由解码器12向指令发布控制部13X传递的指令Inst(1)、
Inst(2)、......、Inst(M)各自的消耗电流值I、与程序中的地址(i)
之间的关系。消耗电流值I通过图6所示的电流表13T来获得。

图10A是在监控方法1中消耗电流增加时的动作流程图(之1)。图
10A中,在步骤S21中从指令缓存器11获取到的指令被解码器12解码。
在步骤S21R、S22中,指令发布控制部13X的指令发布控制功能部13R
从解码后的指令中选择同时能够发布的M个指令Inst(1)、Inst
(2)、......、Inst(M)。然后,指令发布控制部13X进行步骤S23、S24、
S26、S27的循环动作。在该循环动作中,i从初始值M开始按顺序每
次减少1,在到i=1为止的期间,如果步骤S26的判断结果为是(YES),
则该循环动作结束。

在步骤S24中,由电流变化计算部13C的计算部13CC对上述M
个指令中的从第1到第i个指令Inst(1)、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)加上上
述限制值ΔP1而得到的值进行比较。

其结果,上述循环动作持续进行到到第i个指令为止的消耗电流的
合计P(t)变为对过去N个周期的平均电流值P(t-1,t-N)加上上
述限制值ΔP1而得到的值以下(是)。这里,i的初始值为M,最初到
上述到第i个指令为止的消耗电流的合计P(t)是M个指令量的消耗
电流。如果在该时刻,该P(t)为对过去N个周期的平均电流值P(t
-1,t-N)加上了上述限制值ΔP1而得到的值以下(是),则结束循环
动作(步骤S27),电流变化计算部13C将能够发布的最大指令数=M
通知给指令发布调整部13A。指令发布调整部13A按照上述那样的优先
顺序,对运算单元14A、14B、14C、14D中的对应的运算单元发布指
令。这里,优先顺序包括如上述那样同时能够发布的指令具有多个时的
多个指令之间的优先顺序。

另一方面,当在上述最初的时刻上述P(t)超过对过去N个周期的
平均电流值P(t-1,t-N)加上了上述限制值ΔP1而得到的值(否)
时,继续进行循环动作。然后,在如上所述,P(t)变为对过去N个周
期的平均电流值P(t-1,t-N)加上了上述限制值ΔP1而得到的值以
下时(是),结束循环动作。其结果,从当前能够发布的M个指令中的
地址较大的一方开始按顺序依次减少一个指令,直至减少到计算出的P
(t)变为对过去N个周期的平均电流值P(t-1,t-N)加上了上述
限制值ΔP1而得到的值以下为止。因此,从能够发布的M个指令中的
地址较小的一方按顺序选择,最终选择P(t)即将超过对过去的平均电
流值P(t-1,t-N)加上了限制值ΔP1而得到的值之前的(第1至第
i个)指令。然后,该最终选择出的指令的信息被传递给指令发布调整
部13A。指令发布调整部13A将该最终选择出的第1至第i个指令在当
前周期中发布给运算单元14A、14B、14C、14D(步骤S28)。其中,
步骤S24的Ix表示当前周期中各指令的消耗电流值(参照图9)。

此外,在图10A的情况下进行了循环动作,但在获得相同结果的目
的下,例如可以使用图11的电路。图11的电路具有加法器A1、A2、
A3、和比较器C1、C2、C3、C4。限制值ΔP1被输入到比较器C1、C2、
C3、C4各自具有的一个输入。而且,在图11的例子的情况下,为了便
于说明,作为M个能够发布的指令,设定了4个指令(addr1的指令、
addr2的指令、addr3的指令、addr4的指令),但能够发布的指令数为
5个以上也能够通过同样的电路构成来应对。其中,上述addr1的指令、
addr2的指令、addr3的指令、addr4的指令例如可以分别设为算术运
算的加法(ADD)指令、减法(SUB)指令、逻辑运算的AND指令、
OR指令等。

加法器A1求出addr1的指令以及addr2的指令共计2个指令的消
耗电流的合计。加法器A2求出加法器A1的输出与addr3的指令的消
耗电流的合计,即求出addr1、addr2、addr3共计3个指令的消耗电流
的合计。同样地,加法器A3求出加法器A2的输出与addr4的指令的
消耗电流的合计,即求出addr1、addr2、addr3、addr4共计4个指令
的消耗电流的合计。然后,比较器C1、C2、C3、C4分别将addr1的
指令的消耗电流、加法器A1的输出、加法器A2的输出、加法器A3的
输出、与ΔP1进行比较。即,比较器C1将与addr1的指令相关的消耗
电流P(t)与ΔP1进行比较,比较器C2将与addr1、addr2各个指令
相关的合计的消耗电流P(t)与ΔP1进行比较。同样,比较器C3将与
addr1、addr2、addr3各个指令相关的合计消耗电流P(t)与ΔP1进
行比较。而且,比较器C4将与addr1、addr2、addr3、addr4各个指
令相关的合计消耗电流P(t)与ΔP1进行比较。

各比较器C1~C4在P(t)为ΔP以上的情况下输出1,在P(t)
小于ΔP的情况下输出0。而且,图11的电路生成地址的选择信号AD
[1:4]作为比较器C1~C4的输出。例如可以设定成在AD[1:4]
=0000时发布addr1~4的4个指令,在AD[1:4]=0001时发布addr1~
3的3个指令。同样,可以设定成在AD[1:4]=0011时发布addr1~2
的2个指令,在AD[1:4]=0111时发布addr1的1个指令。

图10B是在监控方法1中消耗电流增加时的动作流程图(之2)。图
10B的动作流程图(之2)表示了与上述图10A的动作流程图(之1)
不同的方法的例子。图10B的动作流程图(之2)中的步骤S21至S27
与图10A的动作流程图(之1)中的步骤S21至S27相同,省略重复的
说明。在图10B的动作流程图(之2)的情况下,可以在步骤S27A中
追加虚拟指令。如上所述,如果在步骤S27中P(t)为对过去N个周
期的平均电流值P(t-1,t-N)加上了上述限制值ΔP1而得到的值以
下(是),则结束循环动作。这里,例如当在上述限制值ΔP1的值小的
情况下等,结束该循环动作时,还可以想到上述P(t)小于上述过去N
个周期的平均电流值P(t-1,t-N)的情况、即消耗电流减少的情况。
在这样的情况下,可以追加与上述P(t)和P(t-1,t-N)之间的差
(消耗电流的减少量)对应的消耗电流的虚拟指令,来缓和消耗电流的
减少。作为用于实现该目的的虚拟指令,可以通过在图6以及上述的消
耗电流值=200[μA]的虚拟指令的基础上,另外设置例如消耗电流值
=100[μA]的虚拟指令等,来预先准备消耗电流不同的多个虚拟指令。
而且,可以根据上述P(t)与P(t-1,t-N)之间的差(消耗电流的
减少量),从这些消耗电流不同的多个虚拟指令中适当地选择并追加最
佳的消耗电流的虚拟指令。该情况下,通过上述步骤S27A对在上述步
骤S23、S24、S26、S27的循环动作中最终选择的第1至第i个指令追
加虚拟指令。然后,如此得到的表示应该发布的指令的信息被传递给指
令发布调整部13A。指令发布调整部13A将该被传递来的信息所表示的
指令在当前周期中对运算单元14A、14B、14C、14D发布(步骤S28A)。

图12是在监控方法1中消耗电流减少时的动作流程图。图12中,
在步骤S41中从指令缓存器11获取得到的指令被解码器12解码。在步
骤S41R、S42中,解码后的指令被传递给指令发布控制部13X的指令
发布控制功能部13R,选择同时能够发布的M个指令Inst(1)、Inst
(2)、......、Inst(M)。然后,指令发布控制部13X进行步骤S43、S45、
S46的循环动作。在该循环动作中,在步骤S46将所发布的虚拟指令
(dummy)的个数依次增加1,如果步骤S45的判断结果为是,则结束
该循环动作。

在步骤S43中,由电流变化计算部13C的计算部13CC对上述M
个指令Inst(1)、Inst(2)、......、Inst(M)和在步骤S46中追加的虚
拟指令计算消耗电流的合计P(t)。在步骤S44中,由电流变化计算部
13C的计算部13CC计算出过去N个周期量的消耗电流的平均值P(t
-1,t-N)。然后,在步骤S45中,将能够发布的指令以及虚拟指令的
消耗电流的合计P(t)、与从过去N个周期的平均电流值P(t-1,t-
N)中减去了上述限制值ΔP2后的值进行比较。其结果,循环动作持续
进行到能够发布的指令以及虚拟指令的消耗电流的合计P(t)变为从过
去N个周期的平均电流值P(t-1,t-N)中减去了上述限制值ΔP2
后的值以上(是)为止。其结果,决定根据需要追加了虚拟指令的结果
的消耗电流值P(t)变为从过去N个周期的平均电流值P(t-1,t-N)
减去了上述限制值ΔP2后的值以上那样的虚拟指令的发布数(即“所需
的虚拟指令的发布数”)。如此得到的需要的虚拟指令的发布数被传递给
指令发布调整部13A。指令发布调整部13A将对能够发布的指令加上了
上述所需的发布数的虚拟指令后的指令在当前周期中向运算单元14A、
14B、14C、14D发布(步骤S47)。

图13A是在监控方法2中消耗电流增加时的动作流程图(之1)。图
13A中,在步骤S61中从指令缓存器11获取得到的指令被解码器12解
码。在步骤S61R、S62中,解码后的指令被传递给指令发布控制部13X
的指令发布控制功能部,选择同时能够发布的M个指令Inst(1)、Inst
(2)、......、Inst(M)。然后,指令发布控制部13X进行步骤S63、S64、
S66、S67的循环动作。在该循环动作中,i从初始值M开始按顺序减
少1,在到i=1为止的期间,如果步骤S66的判断结果为是,则结束该
循环动作。

在步骤S64中,由电流变化计算部13C的计算部13CC求出上述M
个指令中从第1到第i个指令Inst(1)、Inst(2)、......、Inst(i)的
消耗电流的合计P(t)。然后,计算出加上了该当前周期的消耗电流P
(t)的当前与过去的N个周期量的消耗电流的平均值P(t,t-N+1)。
在步骤S65中,由电流变化计算部13C的计算部13CC计算出更加过去
的N个周期量的消耗电流的平均值P(t-N,t-2N+1)。然后,在步
骤S66中,将上述加上了当前周期的当前与过去的N个周期量的消耗电
流的平均值P(t,t-N+1)、与对更加过去N个周期的平均电流值P
(t-N,t-2N+1)加上了上述限制值ΔP1后的值进行比较。其结果,
循环动作持续进行到当前与过去的N个周期量的消耗电流的平均值P
(t,t-N+1)变为对更加过去N个周期的平均电流值P(t-N,t-
2N+1)加上了上述限制值ΔP1而得到的值以下(是)为止。与上述相
同,i的初始值为M,最初上述到第i个指令为止的消耗电流的合计P
(t)是M个指令量的消耗电流。如果在该时刻当前与过去的N个周期
量的平均电流值P(t,t-N+1)为对更加过去N个周期的平均电流值
P(t-N,t-2N+1)加上了上述限制值ΔP1而得到的值以下(是),
则结束循环动作(步骤S67),电流变化计算部13C将“能够发布的最大
指令数=M”通知给指令发布调整部13A。指令发布调整部13A按照如
上所述的优先顺序,对运算单元14A、14B、14C、14D中的对应的运
算单元发布指令。

另一方面,当在上述最初的时刻当前与过去的N个周期量的平均电
流值P(t,t-N+1)超过对更加过去N个周期的平均电流值P(t-N,
t-2N+1)加上了上述限制值ΔP1而得到的值(否)时,继续进行循环
动作。然后,上述所述,在当前与过去的N个周期量的平均电流值P(t,
t-N+1)变为对更加过去N个周期的平均电流值P(t-N,t-2N+1)
加上了上述限制值ΔP1而得到的值P(t)以下的时刻(是),结束循环
动作。其结果,从当前能够发布的M个指令中的地址较大的一方开始
按顺序依次减少一个指令,直到计算出的当前与过去的N个周期量的平
均电流值P(t,t-N+1)变为对更加过去N个周期的平均电流值P(t
-N,t-2N+1)加上了上述限制值ΔP1而得到的值以下为止。因此,
从能够发布的M个指令中的地址较小的一方按顺序选择,最终选择当
前与过去的平均电流值P(t,t-N+1)即将超过对更加过去的平均电
流值P(t-N,t-2N+1)加上了限制值ΔP1而得到的值之前的(第1
至第i个)指令。然后,该最终选择出的指令的信息被传递给指令发布
调整部13A。指令发布调整部13A将该最终选择出的第1至第i个指令
在当前周期向运算单元14A、14B、14C、14D发布(步骤S68)。

图13B是在监控方法2中消耗电流增加时的动作流程图(之2)。图
13B的动作流程图(之2)表示与上述的图13A的动作流程图(之1)
不同的方法的例子。图13B的动作流程图(之2)中的步骤S61至S67
与图13A的动作流程图(其1)中的步骤S61至S67相同,省略重复的
说明。在图13B的动作流程图(之2)的情况下,可以在步骤S67A中
追加虚拟指令。如上所述,在步骤S67中,如果当前与过去的N个周期
量的平均电流值P(t,t-N+1)为对更加过去N个周期的平均电流值
P(t-N,t-2N+1)加上了上述限制值ΔP1而得到的值以下,则结束
循环动作。这里,例如当在上述限制值ΔP1的值小的情况下等结束该循
环动作时,还可以想到上述当前与过去的N个周期量的平均电流值P(t,
t-N+1)比上述更加过去N个周期的平均电流值P(t-N,t-2N+1)
小(即消耗电量减少)的情况。在这样的情况下,可以根据需要追加与
上述P(t-N,t-2N+1)和上述P(t,t-N+1)之间的差(消耗电
流的减少量)对应的消耗电流的虚拟指令。作为用于实现该目的的虚拟
指令,可以通过在图6与上述的消耗电流值=200[μA]的虚拟指令的
基础上,另外设置例如消耗电流值=100[μA]的虚拟指令等,来预先
准备消耗电流不同的多个虚拟指令。而且,可以根据上述P(t-N,t
-2N+1)与上述P(t,t-N+1)之间的差(消耗电流的减少量),从
这些消耗电流不同的虚拟指令中适当地选择最佳的消耗电流的虚拟指
令来进行追加。该情况下,通过上述步骤S67A对在上述步骤S63、S64、
S66、S67的循环动作中最终选择的第1至第i个指令追加虚拟指令。然
后,如此得到的表示应该发布的指令的信息被传递给指令发布调整部
13A。指令发布调整部13A将该被传递的信息所表示的指令在当前周期
中向运算单元14A、14B、14C、14D发布(步骤S68A)。

图14是在监控方法2中消耗电流减少时的流程图。图14中,在步
骤S81中从指令缓存器11获取得到的指令被解码器12解码。在步骤
S81R、S82中,解码后的指令被传递给指令发布控制部13X的指令发布
控制功能部13R,选择同时能够发布的M个指令Inst(1)、Inst(2)、......、
Inst(M)。然后,指令发布控制部13X进行步骤S83、S85、S86的循
环动作。在该循环动作中,在步骤S86中将所发布的虚拟指令的个数依
次增加1,如果步骤S85的判断结果为是,则结束该循环动作。

在步骤S83中,由电流变化计算部13C的计算部13CC对上述M
个指令Inst(1)、Inst(2)、......、Inst(M)和在步骤S46中追加的虚
拟指令计算出消耗电流的合计P(t)。并且,计算出加上了该当前周期
的消耗电流的当前与过去的N个周期量的消耗电流和平均值P(t,t-
N+1)。在步骤S84中,由电流变化计算部13C的计算部13CC计算出
更加过去的N个周期量的消耗电流的平均值P(t-N,t-2N+1)。然
后,在步骤S85中,将加上了当前周期的消耗电流的当前与过去的N
个周期量的平均电流值P(t,t-N+1)、与从更加过去N个周期的平
均电流值P(t-N,t-2N+1)减去了上述限制值ΔP2后的值进行比较。
其结果,循环动作持续进行到加上了当前周期的消耗电流的当前与过去
的N个周期分的平均电流值P(t,t-N+1)变为从更加过去N个周期
的平均电流值P(t-N,t-2N+1)减去了上述限制值ΔP2而得到的值
以上(是)为止。其结果,按照追加了所需个数的虚拟指令的结果的、
加上了当前周期的消耗电流的当前与过去的N个周期量的平均电流值P
(t,t-N+1)变为从更加过去N个周期的平均电流值P(t-N,t-
2N+1)减去了上述限制值Δ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相同的构成。

运算处理装置、信息处理装置及其控制方法.pdf_第1页
第1页 / 共29页
运算处理装置、信息处理装置及其控制方法.pdf_第2页
第2页 / 共29页
运算处理装置、信息处理装置及其控制方法.pdf_第3页
第3页 / 共29页
点击查看更多>>
资源描述

《运算处理装置、信息处理装置及其控制方法.pdf》由会员分享,可在线阅读,更多相关《运算处理装置、信息处理装置及其控制方法.pdf(29页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102652297 A(43)申请公布日 2012.08.29CN102652297A*CN102652297A*(21)申请号 200980162892.2(22)申请日 2009.12.14G06F 1/32(2006.01)G06F 1/28(2006.01)(71)申请人富士通株式会社地址日本神奈川县(72)发明人吴文豪 冈野广 川边幸仁(74)专利代理机构北京集佳知识产权代理有限公司 11227代理人李伟 阎文君(54) 发明名称运算处理装置、信息处理装置及其控制方法(57) 摘要将被指令解释部解释后的指令向运算部发布,并且计算出运算部因在第1规定期间发布的。

2、指令而消耗的消耗电流值、和运算部因能够在第2规定期间发布的指令而消耗的电流的消耗电流预定值,在消耗电流预定值相对消耗电流值的变化量超过规定的限制值时,在第2规定期间中抑制一部分指令的发布。(85)PCT申请进入国家阶段日2012.06.13(86)PCT申请的申请数据PCT/JP2009/070854 2009.12.14(87)PCT申请的公布数据WO2011/074059 JA 2011.06.23(51)Int.Cl.权利要求书2页 说明书13页 附图13页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 2 页 说明书 13 页 附图 13 页1/2页21.一种运算处。

3、理装置,其特征在于,具有:保持指令的指令保持部;对从上述指令保持部取得的指令进行解释的指令解释部;执行被发布的指令的运算部;和指令发布控制部,其将被上述指令解释部解释后的指令向上述运算部发布,并且计算出上述运算部因在第1规定期间发布的指令而消耗的消耗电流值、和上述运算部因上述解释后的指令中的能够在第2规定期间发布的指令而消耗的电流的消耗电流预定值,在上述消耗电流预定值相对上述消耗电流值的变化量超过规定的限制值时,在上述第2规定期间中抑制上述解释后的指令中的一部分指令的发布。2.根据权利要求1所述的运算处理装置,其特征在于,上述指令发布控制部对上述运算部发布虚拟指令来取代上述抑制了发布的指令。3。

4、.根据权利要求1或2所述的运算处理装置,其特征在于,上述消耗电流值是上述运算部在上述第1规定期间的消耗电流的平均值,上述消耗电流预测值是上述运算部在上述第2规定期间的消耗电流的平均值。4.根据权利要求1或2所述的运算处理装置,其特征在于,上述消耗电流值是上述运算部在上述第1规定期间的消耗电流的平均值,上述消耗电流预测值是上述运算部在当前周期的消耗电流的预定值。5.一种信息处理装置,具有储存指令的存储装置和与上述存储装置连接的运算处理装置,其特征在于,上述运算处理装置具有:保持从上述存储装置取得的指令的指令保持部;对从上述指令保持部取得的指令进行解释的指令解释部;执行被发布的指令的运算部;和指令。

5、发布控制部,其将被上述指令解释部解释后的指令向上述运算部发布,并且计算出上述运算部因在第1规定期间发布的指令而消耗的消耗电流值、和上述运算部因上述解释后的指令中的能够在第2规定期间发布的指令而消耗的电流的消耗电流预定值,在上述消耗电流预定值相对上述消耗电流值的变化量超过规定的限制值时,在上述第2规定期间中抑制上述解释后的指令中的一部分指令的发布。6.根据权利要求5所述的信息处理装置,其特征在于,上述指令发布控制部对上述运算部发布虚拟指令来取代上述抑制了发布的指令。7.根据权利要求5或6所述的信息处理装置,其特征在于,上述消耗电流值是上述运算部在上述第1规定期间的消耗电流的平均值,上述消耗电流预。

6、测值是上述运算部在上述第2规定期间的消耗电流的平均值。8.根据权利要求5或6所述的信息处理装置,其特征在于,上述消耗电流值是上述运算部在上述第1规定期间的消耗电流的平均值,上述消耗电流预测值是上述运算部在当前周期的消耗电流的预定值。9.一种运算处理装置的控制方法,所述运算处理装置具有对指令进行保持的指令保持部,该运算处理装置的控制方法的特征在于,具有:上述运算处理装置所具有的指令解释部对从上述指令保持部取得的指令进行解释的权 利 要 求 书CN 102652297 A2/2页3步骤;上述运算处理装置所具有的运算部执行被发布的指令的步骤;上述运算处理装置所具有的指令发布控制部计算出上述运算部因在。

7、第1规定期间发布的指令而消耗的消耗电流值、和上述运算部因上述解释后的指令中能够在第2规定期间发布的指令而消耗的电流的消耗电流预定值的步骤;和上述运算处理装置所具有的指令发布控制部将由上述指令解释部解释后的指令向上述运算部发布,并且在上述消耗电流预定值相对上述消耗电流值的变化量超过规定的限制值时,在上述第2规定期间中抑制上述解释后的指令中的一部分指令的发布的步骤。10.根据权利要求9所述的运算处理装置的控制方法,其特征在于,上述指令发布控制部对上述运算部发布虚拟指令来取代上述抑制了发布的指令。11.根据权利要求9或10所述的运算处理装置的控制方法,其特征在于,上述消耗电流值是上述运算部在上述第1。

8、规定期间的消耗电流的平均值,上述消耗电流预测值是上述运算部在上述第2规定期间的消耗电流的平均值。12.根据权利要求9或10所述的运算处理装置的控制方法,其特征在于,上述消耗电流值是上述运算部在上述第1规定期间的消耗电流的平均值,上述消耗电流预测值是上述运算部在当前周期的消耗电流的预定值。权 利 要 求 书CN 102652297 A1/13页4运算处理装置、 信息处理装置及其控制方法技术领域0001 本发明涉及运算处理装置、信息处理装置及其控制方法。背景技术0002 作为处理器的技术,公知有以下的方法。即,是使用与按每个指令定义的电流消耗量具有相关性的值来预测各时钟周期下的消耗电流,如果其变化。

9、率为规定值以上,则更换指令或置换成虚拟指令以使变化量变小的方法。0003 专利文献1:日本特开2004334641号公报0004 专利文献2:日本特开平10207859号公报0005 专利文献3:日本特开200413820号公报0006 非专利文献1:“The SPARC Architecture Manual“,version9,SPARC International,Inc.,Santa Clara,California,SAV09R1459912发明内容0007 本发明的目的在于,提供一种通过简易的构成就能够可靠地抑制消耗电流的变化的运算处理装置。0008 将被指令解释部解释后的指令向运。

10、算部发布,并且计算出运算部因在第1规定期间发布的指令而消耗的消耗电流值、和运算部因能够在第2规定期间发布的指令而消耗的电流的消耗电流预定值,在消耗电流预定值相对消耗电流值的变化量超过规定的限制值时,在第2规定期间中抑制一部分指令的发布。0009 根据上述构成,能够提供通过简易的构成就能够可靠地抑制运算处理装置中消耗电流的变化的构成。附图说明0010 图1是用于对参考例的处理器中指令发布控制进行说明的处理器的内部框图。0011 图2是用于对实施例的处理器中指令发布控制进行说明的处理器的内部框图。0012 图3是图2所示的处理器的构成中特别地将指令发布控制部以及运算单元提取出来加以表示的框图。00。

11、13 图4是用于对实施例的处理器中指令发布控制的方法进行说明的图(之1)。0014 图5是用于对实施例的处理器中指令发布控制的方法进行说明的图(之2)。0015 图6是用于对实施例的处理器中指令发布控制的方法进行说明的、表示电流值表的构成例的图。0016 图7是用于对在实施例的处理器中限制指令的发布时的例子进行说明的图。0017 图8是用于对在实施例的处理器中发布虚拟指令时的例子进行说明的图。0018 图9是用于对实施例的处理器中指令发布控制的方法进行说明的、表示程序中的指令与地址之间的关系的例子的图。说 明 书CN 102652297 A2/13页50019 图10A是用于对实施例的处理器中。

12、指令发布控制的方法进行说明的动作流程图(监控方法1中的消耗电流增加时,之1)。0020 图10B是用于对实施例的处理器中指令发布控制的方法进行说明的动作流程图(监控方法1中的消耗电流增加时,之2)。0021 图11是对执行图10A、图10B所记载的流程图中的动作的一部分的电路的构成例进行表示的图。0022 图12是用于对实施例的处理器中指令发布控制的方法进行说明的动作流程图(监控方法1中的消耗电流减少时)。0023 图13A是用于对实施例的处理器中指令发布控制的方法进行说明的动作流程图(监控方法2中的消耗电流增加时,之1)。0024 图13B是用于对实施例的处理器中指令发布控制的方法进行说明的。

13、动作流程图(监控方法2中的消耗电流增加时,之2)。0025 图14是用于对实施例的处理器中指令发布控制的方法进行说明的动作流程图(监控方法2中的消耗电流减少时)。0026 图15是对能够应用实施例的处理器的信息处理装置的硬件构成例进行表示的框图。具体实施方式0027 以下,对实施例进行说明。0028 在实施例中,在运算处理装置中、即作为半导体集成电路的处理器中通过抑制指令发布数、发布频度,来实现电源噪声的抑制。其中,作为运算处理装置的具体例,可举出CPU(Central Processing Unit)、GPU(Graphical Processing Unit)、DSP(Digital Si。

14、gnal Processor)等。0029 处理器的低消耗电力化技术是为了实现信息通信设备的低消耗电力化的重要技术。在处理器的低消耗电力化中,只向执行处理所需要的寄存器供给时钟的时钟门控、只使执行处理所需要的RAM(Random Access Memory)启动(enable)等抑制电路动作率的方法是有效方法。但是,在这些方法中,为了防止产生因执行处理时与不执行处理时之间的消耗电流之差引起的电源噪声,希望抑制作为电流时间变化率的dI/dt。0030 作为用于降低LSI(Large Scale Integrated circuit)内部的电源噪声的方法,存在在LSI内部搭载具有电容成分的电容器单。

15、元或去耦合电容单元等,或者在封装体、系统板上还搭载去耦合电容器的方法。但如果使用去耦合电容单元,则认为会引起芯片面积的增加、漏电电流的增加等。0031 另外,作为用于降低电源噪声的电路控制方法,有通过在电路动作开始时将时钟频率抑制得低,来将电流时间变化率dI/dt抑制得低这一方法。并且,有一种在软件的编译阶段就预测指令的消耗电流,通过软件来调整指令发布的方法。0032 但是,对于上述在电路动作开始时就将时钟频率抑制得低来将电流时间变化率dI/dt抑制得低的方法而言,不以周期模型(cyc le base)监控电流变化量,而在花费规定的期间使时钟频率阶段性地变化的同时供给时钟信号。因此认为,如果不。

16、插入相对时钟频率大的富裕量,则无法应对因大电流变化而引起的电源噪声。而且,还可以想到针对小噪声使说 明 书CN 102652297 A3/13页6时钟频率过度变慢的情况。即,在该方法中,由于不是根据噪声来调整时钟频率,所以认为控制精度低。0033 另外,对上述在软件的编译阶段预测指令的消耗电流,通过改变指令的顺序等用软件来调整指令的发布的方法而言,由于通过软件进行调度,所以认为目标码变大。而且,由于需要能够以周期模型来完全把握指令依赖性的编译器,所以难以实现。另外,在流水线互锁等情况下,认为存在无法通过软件来应对的情况。这里,流水线互锁(pipeline interlock)是指检测出冒险(h。

17、azard)并加以避免的机构。与数据依赖相关的冒险(data dependent hazard)是指由于多个指令被乱序处理,所以导致运算结果的写入、读出与机器语言的程序设计所意图的顺序前后颠倒,成为与期待不同的结果的状况。将检测出冒险并使流水线停止的情况称为“流水线互锁”。由于在流水线互锁中停止执行指令,所以消耗电流减少,为了缓和这样的消耗电流的减少,使用“只执行虚拟指令的虚拟电路”。这里,“虚拟指令”是不对后续的执行指令造成影响的指令,“虚拟电路”是执行“虚拟指令”来消耗电流,使消耗电流的减少缓和的电路。尤其在大规模的系统中,认为与因流水线互锁而引起的消耗电流的减少对应的虚拟电路的规模变大,。

18、芯片面积增加、消耗电力等增加等。0034 接着,为了和以下说明的实施例进行比较,对运算处理装置的参考例进行说明。图1是表示作为运算处理装置的参考例的处理器的内部构成的框图。图1的处理器例如是SPARC(Scalable Processor ARChitecture)处理器,具有指令高速缓存器(指令保持部)11、解码器(指令解释部)12、指令发布控制部13以及运算机构14。运算机构14包括运算单元(运算部)14A、14B、14C、14D。0035 指令高速缓存器11是保存程序的高速缓存存储器。解码器12对程序中包含的指令进行解码(解释)。指令发布控制部13对运算单元14A、14B、14C、14D。

19、发布指令。运算单元(ALU:Arithmetic and Logic Unit)14A、14B、14C、14D执行被发布的指令。而且,多个运算单元14A、14B、14C、14D分别分担运算功能。例如可设为运算单元14A执行固定小数点的加减运算,运算单元14B执行固定小数点的乘法运算,运算单元14C执行浮动小数点的加减运算,运算单元14D执行浮动小数点的乘法运算。此外,并不限定于该例,例如也可以使多个运算单元中的2个以上运算单元执行同一运算功能。以下对该处理器的动作中、尤其是与程序指令的发布相关的动作进行说明。0036 解码器12从指令高速缓存器11中获取(取得)指令对其进行解码,并传递给指令发。

20、布控制部13。指令发布控制部13进行将从解码器传递来的指令向运算单元14A14D的发布。更具体而言,指令发布控制部13将从解码器12传递来的指令保持在内部寄存器(省略图示)中,对保持着能够发布的指令的内部寄存器内的入口进行识别。指令发布控制部13从识别出的入口所保持的指令中选择要发布的指令。按能够执行入口中保持的指令的每个运算单元来选择实际发布的指令。此时,对同一运算单元能够执行的指令间赋予优先顺序,以该优先顺序的顺序来选择所发布的指令。指令发布控制部13向对应的运算单元发布选择出的指令,在该指令发布后释放对应的寄存器的入口。0037 在上述参考例的处理器中,由于没有特别考虑当指令发布控制部1。

21、3发布指令时,运算单元14A、14B、14C、14D执行指令时的消耗电流的变化,所以存在发生电源噪声的可能性。0038 实施例具有防止电源噪声产生的构成。根据实施例涉及的处理器,存储因在过去说 明 书CN 102652297 A4/13页7几个周期的期间发布的指令而消耗的电流的估计值。这里,上述估计值是处理器整体消耗的电流的估计值。而且,计算出根据当前周期能够发布的指令概算出的消耗电流值相对所存储的电流值的增加量。然后,判定计算出的增加量是否超过处理器的允许电流变化量(称为“限制值”),在超过限制值的情况下,限制指令的发布以便不超过限制值。该限制值可以根据噪声解析模拟的结果或者根据测定值调查获。

22、得。0039 或者,在实施例涉及的处理器中,存储因在过去几个周期的期间发布的指令而消耗的电流的估计值,计算出根据当前周期能够发布的指令概算出的消耗电流值相对该电流值的减少量。判定计算出的减少量是否超过处理器的限制值,在超过的情况下发布虚拟指令以使其不超过限制值。0040 作为虚拟指令,例如在SPARC的体系结构的情况下,可以利用Global register zero(g0),应用使g0成为作为运算结果的储存寄存器的目标(destination)的指令等对程序的执行不造成影响的现有指令。或者,也可以通过使现有的电路工作来定义不变更处理器状态那样的新建虚拟指令并加以应用。优选虚拟指令是只要不超过。

23、限制值,便尽可能使消耗电流大幅变化的指令。这里,Global register zero(g0)是指如果进行读出则总是得到“0“,即使进行写入,值也不变的全局寄存器。0041 或者,在实施例涉及的指令发布装置中,存储在过去几个周期的期间发布的指令或由这些指令消耗的电流的估计值。而且,计算出根据当前周期能够发布的指令概算出的电流值相对该电流值的增加量。判定计算出的增加量是否超过处理器的限制值,在超过的情况下限制指令的发布以使其不超过限制值。0042 或者,在实施例涉及的指令发布装置中,存储在过去几个周期的期间发布的指令或由这些指令消耗的电流的估计值。而且,计算出根据当前周期能够发布的指令概算出的。

24、电流值相对该电流值的减少量。判定计算出的减少量是否超过处理器的限制值,在超过的情况下发布对后续的执行指令不造成影响的虚拟指令,以使其不超过限制值。0043 另外,在实施例中,当P(t)P(t1,tN)时,按照满足P(t)P(t1,tN)+P1的条件的方式限制当前周期下的指令的发布。这里,变量t表示当前周期,P(t1,tN)表示根据过去N个周期的指令估计的平均消耗电流,P1表示被处理器允许的限制值,P(t)表示根据在当前周期能够发布的指令估计的消耗电流值。0044 另外,在实施例中,当P(t)P(t1,tN)时,按照满足P(t)P(t1,tN)P2的条件的方式,在当前周期中发布对后续的执行指令不。

25、造成影响的虚拟指令。这里,与上述相同,变量t表示当前周期,P(t1,tN)表示根据过去N个周期的指令估计的平均消耗电流,P2表示被处理器允许的限制值,P(t)表示根据在当前周期能够发布的指令估计的消耗电流值。0045 图2是用于对实施例涉及运算处理装置的处理器的内部构成进行说明的框图。图2的处理器例如是SPARC处理器,具有指令缓存器11、解码器12、指令发布控制部13X以及运算机构14。运算机构14包括运算单元14A、14B、14C、14D。0046 指令缓存器11是保存程序的高速缓存存储器。解码器12对程序中所含的指令进行解码。指令发布控制部13X对运算单元14A、14B、14C、14D发。

26、布指令。运算单元(ALU:Arithmetic and Logic Unit)14A、14B、14C、14D执行被发布的指令。需要说明的是,如上所述运算单元14A、14B、14C、14D分别分担运算功能。说 明 书CN 102652297 A5/13页80047 根据实施例,处理器中的指令发布机构(即处理器中的指令发布控制部13X)除了具有以往的指令发布控制部的功能的指令发布控制功能部13R之外,还具有电流变化计算部13C以及指令发布调整部13A。电流变化计算部13C基于被发布的指令的种类、发布数来计算电流变化,在计算出的电流变化超过预先设定的阈值时输出对指令发布进行限制的指示。指令发布调整部。

27、13A接收该指示,对所发布的指令进行限制。其结果,能够降低因电流时间变化率dI/dt引起的电源噪声。0048 下面,对图2的处理器的动作中尤其与指令的发布相关的动作进行说明。解码器12从指令缓存器11中获取指令,对其进行解码,并传递给指令发布控制部13X。在指令发布控制部13X中,根据解码后的结果来选择指令发布控制功能部13R能够发布的指令,电流变化计算部13C对选择出的指令进行以下那样的基于消耗电流变化的发布控制。0049 指令发布控制部13X的电流变化计算部13C对保持了能够发布的指令的内部寄存器的入口进行识别。然后,运算单元14A、14B、14C、14D基于识别出的入口中保持的能够发布的。

28、指令的种类、数量等,计算执行能够发布的指令时的消耗电流值。电流变化计算部13C还根据指令数、种类来计算过去数个周期的平均消耗电流。在执行能够发布的指令时的消耗电流值相对该过去的平均消耗电流的变化量(也简称为“变化量”)不超过特定的阈值(即限制值I)的范围内,决定在规定的期间内能够发布的最大指令数,并将其传递给指令发布调整部13A。上述规定的期间在本实施例中为1个周期。该规定的期间并不限定于1个周期,例如也可以是数个周期。其中,在如实施例那样是超标量方式的处理器时,作为硬件而言能够同时发布的指令数的上限是被决定的,同时能够发布的指令数为该上限以下作为前提。在实施例的处理器中,由于运算单元14A、。

29、14B、14C、14D的个数为4个,所以同时能够发布的指令数的上限为4。0050 指令发布调整部13A接收在规定的期间内能够发布的最大指令数,基于运算单元14A、14B、14C、14D中的、与所发布的各个指令对应的各个运算单元,选择实际发布的指令。另外,在同时能够发布的指令有多个的情况下,使多个指令之间具有优先顺序,按照优先顺序来选择指令,以使每1个周期发布的指令数控制在能够发布的最大指令数内。其中,作为优先顺序的决定方法,例如可以从当前能够发布的指令中在程序中的执行顺序靠前的指令(如果不夹着分支指令,则在主存储装置中储存程序的情况下从地址小的指令)开始按顺序发布、即基于程序中的指令的出现顺序。

30、进行发布。或者,也可以维持每1个周期发布的指令数不变,通过按照只在多个周期中的1个周期发布指令的方式限制指令发布的频度,来限制所发布的指令数。而且,指令发布控制部13X如此地以根据需要限制了指令的发布数的方式,对运算单元14A、14B、14C、14D中对应的运算单元发布指令。然后,该指令发布控制部13X将发布过的指令的入口释放。这样,在不超过限制值的范围发布尽量多的指令。0051 即,电流变化计算部13C设置在解码器12与运算单元14A、14B、14C、14D之间,如图3所示那样,具有计算部13C、指令监控器13M、以及电流表13T。指令监控器13M对到当前时刻为止的在规定数的周期发布了的指令。

31、的种类、发布数进行监控。电流表13T按指令的种类来保存对应的电流预测值(参照后述的图6)。其中,电流表13T可以如上述那样根据指令的种类来保持电流预测值,或者也可以不基于指令的种类地保持每1个指令的电流值。所保存的指令的种类、电流预测值可以是按照在搭载有该处理器的LSI进行动作时能够调整的方式,通过程序可变的构成。另外,与上述指令的种类对应的电流预测值例如可以说 明 书CN 102652297 A6/13页9在进行LSI设计时进行电力模拟来预先求出。或者,也可以通过对实际制造出的芯片中的处理器整体的消耗电力进行测定,来求出各指令的消耗电力并进行设定。0052 电流变化计算部13C的计算部13C。

32、C利用指令监控器13M保存的规定数的周期量的指令履历、和当前能够发布的指令,并参考电流表13T来预测消耗电流的变化量。在消耗电流增加、作为消耗电流变化量的电流增加量超过限制值的情况下,指令发布调整部13A按照增加量控制在限制值以下的方式,求出能够发布的最大指令数,并输出能够发布的最大指令数和电流计算结果。即,该情况下,通过限制当前发布的指令的发布,来减少运算单元14A、14B、14C、14D中的消耗电流,将其抑制在限制值以内。另一方面,在电流减少、作为消耗电流变化量的电流减少量超过限制值的情况下,指令发布调整部13A按照减少量控制在限制值以下的方式,求出所需的虚拟指令的发布数,并输出所需的虚拟。

33、指令的发布数和电流计算结果。即,该情况下,除了程序中原本存在的指令之外,通过虚拟指令的发布使运算单元14A、14B、14C、14D中的消耗电流增加,将消耗电流抑制在限制值以内。0053 指令发布调整部13A按照由电流变化计算部13C输出的能够发布的最大指令数或者所需的虚拟指令的发布数,对在规定期间内从指令发布控制部13X发布的指令进行限制,或者只发布所需发布数量的虚拟指令。0054 根据实施例,通过在处理器的指令发布控制部13X中设置电流变化计算部13C、指令发布调整部13A,能够实现与实际执行的指令对应的更高精度的电流变化控制。0055 以下,对消耗电流变化的计算方法的例子进行说明。作为消耗。

34、电流变化的计算方法,有监控方法1以及监控方法2,可以使用监控方法1以及监控方法2中的任意一个。0056 首先,利用图4对监控方法1进行说明。在监控方法1中,基于紧前X个周期的指令数或者指令发布频度,对当前周期下的指令发布数或者指令发布频度进行控制。以下对具体例进行说明。0057 所允许的最大电流变化值(即限制值)I被预先设定给预先电流变化计算部13C。电流变化计算部13C的计算部13CC参照指令监控器13M以及电流表13T,计算在紧前X个周期发布的指令的电流预测值的平均(将计算结果设为A)。并且,还计算当前能够发布的指令的电流预测值(将计算结果设为B)。接着,计算电流值的差量BA,如果BAI,。

35、则从电流变化计算部13C对指令发布调整部13A传递接下来能够发布的最大指令数。另一方面,如果BAI,则从电流变化计算部13C对指令发布调整部13A指示所需的虚拟指令的发布数。消耗电流变化的计算可以按每1个周期进行,或者也可以按一定周期期间进行。这里,按一定周期期间进行的方法是不在每个周期都进行消耗电流变化的计算,而是按规定数的周期进行电流变化的计算的方法。0058 接着,利用图5对监控方法2进行说明。在监控方法2中,基于包含当前周期在内的当前与紧前X个周期的指令数或者指令发布频度、和更靠前X个周期的指令数或者指令发布频度,对当前周期下的指令发布数或者指令发布频度进行控制。以下对具体例进行说明。。

36、0059 在监控方法2中,也将所允许的最大电流变化值(即限制值)I预先设定给电流变化计算部13C。电流变化计算部13C的计算部13CC参照指令监控器13M以及电流表13T,分别计算包含当前周期在内的当前与紧前X个周期发布的指令的电流预测值的平均(或者和)(设为A)、和更靠前X个周期发布的指令的电流预测值的平均(或者和)(设为B),并将说 明 书CN 102652297 A7/13页10其相互比较。如果BAI,则从电流变化计算部13C对指令发布调整部13A传递当前能够发布的最大指令数。如果BAI,则从电流变化计算部13C对指令发布调整部13A指示所需的虚拟指令的发布数。上述X的值根据应该处理的电。

37、源噪声的频带来设定。其中,高频波段的噪声由安装于芯片的去耦合电容单元等除去,因此上述应该处理的电源噪声的频带是中低频率的波段。一般频率高的噪声周期短,频率低的噪声周期长。因此,通过根据应该处理的电源噪声的频带适当地调整上述X的值,就能够监控该电源噪声。其中,该情况下,消耗电流变化的计算可以按每1个周期进行,也可以是按一定周期期间进行的方法。这里,按一定周期期间进行方法是不按每个周期都进行消耗电流变化的计算,而按规定数的周期进行消耗电流变化的计算的方法。0060 接下来,利用图6、图7以及应用了上述监控方法1时的具体动作例,对上述实施例的处理器中的消耗电流增加时的动作进行说明。0061 图6表示。

38、上述电流表13T的一个例子。在该例子的情况下,电流表13T中储存有各指令的种类Inst1、Inst2、.、Inst8。并且,在电流表13T中,作为上述4个运算单元14A14D中对应的运算单元执行该种类的各个指令时的消耗电流值,分别储存有300、200、.、250A。0062 而且,在电流变化计算部13C中,作为电流变化限制值(也简称为“限制值”),设定了P1500A。另外,如上所述,在该处理器中同时能够发布的指令数最大为4(1、2、3、4)。0063 图7表示了S1、S2、S3的各时刻的过去5个周期(“5”“1”)发布的指令、和在当前周期(“0”)中能够发布的指令。例如,图7表示了在上段时刻S。

39、1中没有过去5个周期发布的指令,当前能够发布的指令为Inst1、Inst2、Inst3、Inst4。0064 另外,在图7中,将不同时执行能够发布的指令1、2、3、4各个时的每1个指令的消耗电流值分别设为20A。0065 另外,将监控期间设为N4周期。在图7的时刻S1的情况下,在过去4个周期(“4”“1”)中,同时能够发布的指令1、2、3、4中的任意一个都未被执行。因此,该期间的运算单元14A、14B、14C、14D的消耗电流(也简称为“消耗电流”)为2044320A,过去4个周期中的每1个周期的平均消耗电流P(t1,t4)为320/480A。另一方面,当前能够发布的指令Inst1、Inst2。

40、、Inst3、Inst4的消耗电流值P(t)为300200250150900A。其结果,变化量为P(t)P(t1,t4)820A,比限制值P1500A大320A。因此,限制该4个周期的监控期间的下一个周期中的指令发布数。其结果,由指令发布调整部13A发布限制后的指令。在图7的例子中,按地址顺序选择指令Inst1、Inst2指令(能够发布的最大指令数2)。其原因在于,在还选择了指令Inst3的情况下,发布共计3个指令Inst1、Inst2、Inst3时的变化量为3002002502080690A,超过限制值500A。该情况下,结果发送当前能够发布的4个指令Inst1、Inst2、Inst3、Inst4中地址顺序早的2个指令Inst1、Inst2,将剩余2个指令Inst3、Inst4的发布延迟到下一周期以后(图7的中段的时刻S2)。0066 接着,在图7的中段的时刻S2的情况下,当前能够发布的指令为4个指令Inst5、Inst6、Inst3、Inst4。其中,2个指令Inst3、Inst4是如上所述在之前的周期延迟了发布的指令,其他2个指令Inst5、Inst6是对指令发布控制部13X新赋予的指令。该情况下,过去说 明 书CN 102652297 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1