CN102576318A - 集成电路、计算机系统、控制方法 - Google Patents

集成电路、计算机系统、控制方法 Download PDF

Info

Publication number
CN102576318A
CN102576318A CN2011800038323A CN201180003832A CN102576318A CN 102576318 A CN102576318 A CN 102576318A CN 2011800038323 A CN2011800038323 A CN 2011800038323A CN 201180003832 A CN201180003832 A CN 201180003832A CN 102576318 A CN102576318 A CN 102576318A
Authority
CN
China
Prior art keywords
mentioned
electric power
processor
situation
electricity
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.)
Granted
Application number
CN2011800038323A
Other languages
English (en)
Other versions
CN102576318B (zh
Inventor
杉山真史
齐藤雅彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN102576318A publication Critical patent/CN102576318A/zh
Application granted granted Critical
Publication of CN102576318B publication Critical patent/CN102576318B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power

Abstract

一种具备处理器的集成电路,该集成电路具备:循环检测部,检测处理器中循环处理的执行;循环传递相关解析部,检测循环处理中的循环传递相关;以及电力控制部,当在循环处理中没有检测到循环传递相关的情况下进行节电控制。通过检测在循环处理中存在循环传递相关,能够将运算用等的循环处理设为节电控制的对象之外。结果,能够检测更多种的忙碌等待的执行,降低由于忙碌等待而浪费的电力。

Description

集成电路、计算机系统、控制方法
技术领域
本发明涉及具有处理器的集成电路、计算机系统及控制方法,尤其涉及降低处理器执行忙碌等待(busy wait)时的电力消耗的集成电路、计算机系统及控制方法。
背景技术
在具有处理器的计算机系统中,当等待来自用户的输入的情况下、或者在并行工作的多个处理器(或者多个逻辑处理器、进程(process)、线程等)之间取得同步的情况下,往往采用忙碌等待。在执行忙碌等待的情况下,例如在处理器中执行反复检查特定的变量(例如同步用变量)的值的循环处理。并且,在特定的变量的值变为设定值时循环处理结束,执行原来的处理。
这样,通过采用忙碌等待,能够在并行工作的多个处理器等之间进行当一个处理器的处理完成后开始另一个处理器的处理的同步处理,因而在计算机系统领域中被广泛采用。
但是,忙碌等待具有浪费处理器的资源的缺点。在忙碌等待中,例如,为了监视同步用变量而反复进行的循环的次数根据情况从几百次到超过几万次。因此,从电力消耗的角度考虑,忙碌等待是浪费较大的控制方法。
为此,专利文献1公开了用于削减忙碌等待的一种即自旋等待(spinwait)时的电力消耗浪费的方法。
在此,参照图33对自旋等待进行说明。自旋等待例如被应用于多处理器之间的同步处理,在图33中,假设两个处理器按顺序地执行被分为前级和后级的处理的情况。并且,自旋锁(互锁的一种)由第一处理器侧的设定部1101、第二处理器侧的验证部1102和同步处理用的变量1110构成。
第一处理器的设定部1101在向同步用变量1110写入“0”后,进行前级处理S1111。若前级处理S1111结束,第一处理器向同步用变量1110写入“1”。另一方面,第二处理器的验证部1102在同步用变量1110的值成为“1”之前无法开始后级处理S1122。因此,在同步用变量1110成为“1”之前,反复进行步骤S1121的判定并等待(即反复进行循环并等待),处于自旋等待状态而浪费电力。
公开了这样的方法,即:在专利文献1的计算机检测到处理器执行了在自旋等待中使用的命令序列时,将处理器设为节电状态。在此,参照图34对自旋等待命令的检测方法进行说明。图34是表示上述专利文献1记载的自旋等待检测部的结构的图。
自旋等待检测部1222具有:处理器的已执行命令序列缓冲器1234、自旋等待命令序列存储部1236、和将两者所包含的命令序列进行比较的比较部1238。在自旋等待命令序列存储部1236中,存储有自旋等待特有的互锁(interlock)命令序列(作为示例,有test_and_set、compare_and_swap)。并且,在由比较部1238检测到在已执行命令序列缓冲器1234中包含被存储于自旋等待命令序列存储部1236中的互锁命令序列时,输出自旋等待命令检测信号1241。以该自旋等待命令检测信号1241为触发,处理器被设为节电状态。
现有技术文献
专利文献
专利文献1:日本专利第4253796号公报
发明概要
发明要解决的问题
但是,在所述的现有结构中,根据在自旋等待命令序列存储部1236中存储的特定的命令序列(test_and_set等)已被执行这一情况来检测忙碌等待,因而无法检测采用与上述特定的命令序列不同的命令序列的忙碌等待。另外,在想要利用上述现有结构来检测采用多种命令序列的忙碌等待时,在自旋等待命令序列存储部1236中存储多种命令序列,并将多种命令序列分别与已执行命令序列进行比较,这种处理自然会产生界限。即,由于能够检测的忙碌等待有限,因而存在电力消耗的可削减的状况有限的问题。
发明内容
本发明正是为了解决所述现有技术中的问题而提出的,其目的在于,提供一种集成电路、计算机系统及控制方法,能够检测更多种的忙碌等待的执行,并降低由于在处理器中执行忙碌等待而浪费的电力。
用于解决问题的手段
为了解决上述问题,本发明的集成电路具备处理器,并具备:循环检测部,检测上述处理器中循环处理的执行,该循环处理反复执行由一个以上的命令构成的循环;循环传递相关解析部,在上述循环处理中检测命令之间的相关跨执行次不同的两个循环的循环传递相关;以及电力控制部,当上述循环传递相关解析部没有在上述循环检测部检测到的循环处理中检测到循环传递相关的情况下,进行节电控制,该节电控制使由于执行上述循环处理而产生的电力消耗降低。
发明效果
本发明的集成电路,能够由循环检测部检测循环处理,由循环传递相关解析部判别循环处理是否是忙碌等待用的循环处理。因此,不用与特定的命令序列(例如,互锁用的命令序列)进行比较,即可检测忙碌等待用的循环。因此,能够容易地检测由特定的命令序列之外的命令序列构成的忙碌等待用的循环,并能够在忙碌等待时进行节电控制。结果,能够检测更多种的忙碌等待的执行,并降低由于忙碌等待的执行而浪费的电力。
附图说明
图1是示意地表示具有实施方式1的集成电路的计算机系统1300的结构的图。
图2是简化并示意地表示具有实施方式1的集成电路的计算机系统1300的结构的图。
图3是对实施方式1的集成电路所包含的处理器1301的命令集1400进行示例的图。
图4是对实施方式1的处理器1301的寄存器集1500进行示例的图。
图5是对实施方式1的命令序列1600进行示例的图。
图6是表示实施方式1的循环检测部1701的处理的流程图。
图7是表示实施方式1的循环范围存储部1900的数据构造的图。
图8是表示实施方式1的构成循环的命令序列2100的一例的图。
图9是表示实施方式1的循环传递相关解析部1701的处理的流程图。
图10是表示在实施方式1中循环传递相关解析部1701采用的相关关系解析用缓冲器2200的数据的图。
图11是表示实施方式1的构成循环的命令序列的一例的图。
图12是表示在实施方式1中循环传递相关解析部1701采用的相关关系解析用缓冲器2700的数据的图。
图13是表示实施方式1的第一电力控制部1703的处理的流程图。
图14是表示实施方式1的循环脱离检测部1704的处理的流程图。
图15是表示实施方式1的第二电力控制部1705的处理的流程图。
图16是表示实施方式1的构成循环传递相关解析部1701的一部分的电子电路的图。
图17是表示实施方式1的构成循环传递相关解析部1701的一部分的电子电路的图。
图18是表示实施方式1的构成循环传递相关解析部1701的一部分的电子电路的图。
图19是示意地表示变形例的计算机系统2800的结构的图。
图20是示意地表示实施方式2的应对多线程的计算机系统2900的结构的图。
图21是示意地表示实施方式2的寄存器组2910的结构的图。
图22是表示实施方式2的第一电力控制部3013的处理的流程图。
图23是表示实施方式2的第二电力控制部3015的处理的流程图。
图24是表示实施方式2的第一电力控制部3013的处理的流程图。
图25是表示实施方式2的第二电力控制部3015的处理的流程图。
图26是示意地表示实施方式3的计算机系统4000的结构的图。
图27是表示实施方式3的程序计数器监视部4100的节电控制的有关动作的流程图。
图28是表示实施方式3的总线监视部4100的动作的流程图。
图29是表示实施方式3的程序计数器监视部4100的节电控制结束的有关动作的流程图。
图30是示意地表示实施方式4的计算机系统4500的结构的图。
图31是对其它命令集1400A进行示例的图。
图32是对其它命令集1400B进行示例的图。
图33是示意地说明作为本发明的背景技术的忙碌等待的一例的图。
图34是示意地表示专利文献1的自旋等待检测部的结构的图。
具体实施方式
下面,参照附图说明本发明的实施方式。
[实施方式1]
<计算机系统1300的结构>
参照图1对具有本发明的实施方式1的集成电路的计算机系统的结构进行说明。图1是示意地表示计算机系统1300的结构的框图。
计算机系统1300具有处理器1301、主存1302(RAM、ROM等)、I/O器件1303(输入输出装置)、电力供给器件1304和总线1305。另外,处理器1301形成于集成电路内部。
处理器1301、主存1302、I/O器件1303、电力供给器件1304通过总线1305相互连接。电力供给器件1304向处理器1301供给电力1306和时钟1307。
电力供给器件1304具有调节器,能够变更向处理器1301供给的电力1306的电压。并且,电力供给器件1304具有时钟发生电路和分频电路,能够变更向处理器1301供给的时钟1307的频率。
处理器1301具有寄存器组1310、包含于寄存器组1310中的程序计数器1311、命令取指/解码单元1320、发行单元1330、命令序列保存部1340、执行单元1350、退出(retirement)单元1360、命令高速缓冲器1370、数据高速缓冲器1380。
另外,处理器1301具有节电控制装置(图1中的标号1701~1705及1900),在执行忙碌等待的循环处理的情况下,利用该节电控制装置进行节电控制。关于该节电控制装置,将在后面进行说明。
<计算机系统1300的基本动作>
图2省略了节电控制装置的图示,简化示出了计算机系统1300。根据该图来说明计算机系统1300的基本动作。
首先,命令取指/解码单元1320根据程序计数器1311的值,从命令高速缓冲器1370读出处理器1301有可能执行的命令序列。即,进行所谓的命令的预取指(prefetch)。然后,命令取指/解码单元1320将所读出的命令序列进行解码,并暂时存储在命令序列保存部1340中。
在命令序列保存部1340中保存有规定数量的命令,最旧的命令被新的命令覆盖。即,命令序列保存部1340利用环缓冲器(ring buffer)构成。因此,在命令序列保存部1340中保留有由下述的发行单元1330发行的已发行命令。
发行单元1330从向命令序列保存部1340存储的命令序列中,将已完成执行准备的命令序列发送给执行单元1350。即发行命令。并且,发行单元1330例如在发行运算用的命令的情况下,从寄存器组1310取出所指定的操作对象(operand)(源寄存器(source register))的值,并与命令一起发送给执行单元1350。
在执行单元1350中执行各种处理。各种处理包括:在寄存器组1310中存储的值的四则运算或位运算那样的运算处理、浮点(floating point)处理、经由数据高速缓冲器1380和总线1305的存取(load/store)处理、分支等。由执行单元1350进行的处理的执行结果被发送到退出单元1360。
另外,在本实施方式中,处理器1301设有多个执行单元1350,由多个执行单元1350并行执行命令序列。在这种情况下,发行单元1330对多个执行单元1350中空闲的执行单元1350依次送入命令序列。
退出单元1360在确认到向寄存器组1310的写入准备已完成后,将执行单元1350的执行结果写入寄存器组1310。通常,由退出单元1360按照命令的地址顺序向寄存器组1310写入执行结果。
命令高速缓冲器1370和数据高速缓冲器1380暂时保存从主存1302读取的信息或向主存1302写入的预先确定的信息。
<命令集>
参照图3对处理器1301的命令集进行说明。图3是对命令集所包含的汇编码的命令1401、各个命令1401的概要1402以及运算内容1403进行示例的图。
命令集1400包含:进行加法的ADD命令1411、进行减法的SUB命令1412、进行比较的CMP命令1413、进行移动的MOV命令1414、进行条件分支的BNE命令1415、进行跳跃的JMP命令1416、从与总线1305连接的主存1302、I/O器件1303及电力供给器件1304读取信息的LDR命令1417、从与总线1305连接的主存1302、I/O器件1303及电力供给器件1304进行信息的写入的STR命令1418、不进行运算而进行程序计数器的增加的NOP命令1409。
在此,在运算内容1403中,符号“<=”表示代入。
将代入符号的左侧的寄存器、即代入目的地的寄存器称为目的地寄存器或DST寄存器。并且,将代入符号的右侧的寄存器、即代入源的寄存器称为源寄存器或SRC寄存器。DST寄存器和SRC寄存器是“变量”的具体例。
<寄存器集>
参照图4对本实施方式的处理器的寄存器集、即寄存器组1310的结构进行说明。
寄存器集1500包括:在运算时通用的通用寄存器1511、表示由处理器执行的命令的地址的程序计数器(PC)1512、在条件分支等的判定用途中使用的条件标志寄存器(CFR)1513。
另外,所述命令集1400及所述寄存器集1500是对说明所必要的部分进行部分提取而示例的。
在实施本发明时,命令集和寄存器集也可以采用其它形式。例如,本发明可以通过本领域技术人员广泛采用的ARM、MIPS、x86、mn10300命令集等实施。
<命令序列保存部>
参照图5对在命令序列保存部1340中保存的命令序列1600的数据构造的一例进行说明。存储有命令的地址1601与命令1602被对应地存储在命令序列保存部1340中。
<节电控制装置>
下面,参照图1对节电控制装置的结构进行说明。
节电控制装置具有循环检测部1701、循环传递相关(loop-carrieddependence)解析部1702、第一电力控制部1703、循环脱离检测部1704、第二电力控制部1705。并且,节电控制装置包括被设于寄存器组1310的循环范围存储部1900。
节电控制装置大致划分为两个构成要素。第一构成要素进行这样的处理,即:检测忙碌等待的执行状态,并进行节电控制,将计算机系统1300设为节电状态。第二构成要素进行这样的处理,即:检测忙碌等待的结束,结束节电控制,由此将计算机系统1300恢复为进行节电控制以前的状态。下面,按照第一构成要素、第二构成要素的顺序进行说明。
(1)第一构成要素
首先,第一构成要素由循环检测部1701、循环传递相关解析部1702和第一电力控制部1703构成。并且,由循环检测部1701检测循环处理的执行,由循环传递相关解析部1702判定是忙碌等待用的循环处理还是运算用的循环处理等。并且,在是忙碌等待用的循环处理的情况下,由第一电力控制部1703进行节电控制。下面,参照附图对第一构成要素的动作进行说明。
(1-1)循环检测部
参照图6的流程图对循环检测部1701的动作进行说明。
循环检测部1701在步骤S1801中对分支命令的成立进行判定。在步骤S1801的判定结果为“是”(分支成立)的情况下,进入步骤S1803。在步骤S1801的判定结果为“否”(分支不成立)的情况下,再次进行步骤S1801的判定。
例如,根据从执行单元1350发送给退出单元1360的跳跃命令(JMP命令1416)或条件分支命令(BNE命令1415)的执行结果以及条件标志寄存器(CFR)1513的值进行判定。具体而言,根据上述执行结果是将程序计数器1311的值改写为预先确定的地址这样的执行内容这一情况,循环检测部1701判定为分支命令成立。
下面进行详细说明。循环检测部1701具有保存各种分支命令(JMP命令、BNE命令等)的分支命令存储部、和将在退出单元1360中存储的已执行命令与上述各种分支命令进行比较的命令比较部。并且,当向退出单元1360存储已执行的分支命令时,由命令比较部检测到分支命令。
另外,在分支命令是条件分支命令的情况下,循环检测部1701参照寄存器组1310的CFR1513的值,例如在CFR1513的值不是“0“的情况下判定为分支成立,在是“0“的情况下判定为分支不成立。该CFR1513的值是例如由退出单元1360写入了先于条件分支命令的比较命令(CMP)的执行结果的值。
然后,在步骤S1803,循环检测部1701判定分支目的地的地址是否是先于分支命令的地址。在步骤S1803的判定结果为“是”的情况下(分支目的地的地址是先于分支命令的地址的情况),进入步骤S1805。在步骤S1803的判定结果为“否”的情况下(分支目的地的地址不是先于分支命令的地址的情况),返回步骤S1801。另外,在从执行单元1350发送给退出单元1360的执行结果中,包含分支命令的地址及分支目的地的地址的信息,将这两个地址进行比较,由此进行上述判定。并且,在分支目的地的地址是先于分支命令的地址(值比分支命令的地址小的地址)的情况下,判定为是循环执行状态。在此,在分支目的地的地址与分支命令的地址之差为设定值以上的情况下,即命令数较多的循环处理是忙碌等待用的循环的可能性非常小,因此不需要进行相关关系的解析,可以将其去除。另外,上述设定值例如能够设为10。
然后,在步骤S1804,循环检测部1701提取循环的开头地址1911和末尾地址1912。
首先,循环检测部1701提取分支成立的分支命令的分支目的地的地址,作为循环的开头地址1911。然后,循环检测部1701提取存储有分支成立的分支命令的地址,作为循环的末尾地址1912。
另外,关于循环检测部1701提取循环的开头地址1911和末尾地址1912的具体例,以图5记载的命令序列1600为例进行说明。循环的开头地址1911由于是“分支命令的分支目的地的地址”,因而是分支命令“BNE1004”中的1004、即1004地址。然后,循环的末尾地址1912由于是“存储有分支命令的地址”,因而是存储有分支命令“BNE1004”的1010地址。
然后,在步骤S1805,循环检测部1701向循环范围存储部1900输出在步骤S1804中提取出的循环的开头地址1911和循环的末尾地址1912。参照图7对循环范围存储部1900的数据构造的例子进行说明。循环范围存储部1900由存储开头地址1911和末尾地址1912的寄存器(存储器的一种)构成。
接着,在步骤S1807,循环检测部1701向循环传递相关解析部1702输出相关关系解析的执行指示1711。另外,执行指示1711例如通过使将循环检测部1701和循环传递相关解析部1702连接的信号线的电压为高电平来进行。
另外,循环检测部1701如果能够检测到处理器在执行循环,则也可以采用除了此处示出的处理之外的处理。例如,也可以根据在程序计数器1311中保存的地址的更新,在该地址减小的情况下判定为是循环执行状态。
(1-2)循环传递相关解析部1702
在此,关于由循环传递相关解析部1702对是用于忙碌等待的循环、还是非忙碌等待的循环(例如运算用的循环)的判别,列举具体的命令序列进行说明。
(1-2-1)忙碌等待用的循环的解析例
首先,关于成为循环传递相关解析部1702的解析对象的忙碌等待用循环的命令序列的例子,列举图8的命令序列。
在图8的命令序列2100中,通过1008地址的LDR命令,从R2寄存器所指的地址向R0寄存器读入值。然后,通过100c地址的CMP命令,将R0寄存器的值和预先存储了值的R1寄存器的值进行比较。在值一致的情况下,通过1010地址的BNE命令脱离循环。即,分支不成立,循环处理结束。另一方面,在值不一致的情况下,通过1010地址的BNE命令向1004地址分支。即分支成立。
图8所示的命令序列2100是进行从固定的地址(R2寄存器所指的地址)反复读出值并比较的处理的命令序列。在R2寄存器所指的地址中存储的值相当于忙碌等待的同步用变量。
上述命令序列2100用于键(key)的输入等待等,例如,在键被按下的情况下(同步用变量被改写的情况)执行后续的处理。但是,在键未被按下的情况下(同步用变量未被改写的情况),反复进行用于确认同步用变量(R2寄存器所指的地址)的值的处理,造成电力浪费。因此,优选为,抑制这样的循环处理(命令序列2100)的执行所产生的电力消耗。
下面,关于循环传递相关解析部1702的解析动作,参照图9的流程图以及图8的命令序列2100进行说明。
在步骤S2001,循环传递相关解析部1702在从循环检测部1701接收到执行指示1711的定时开始解析处理。
在步骤S2003,循环传递相关解析部1702从循环范围存储部1900取得循环的开头地址1911和末尾地址1912。在此,循环的开头地址1911等的取得,是与发行单元1330从规定的寄存器取得值的情况相同地进行的,将指定的寄存器设为循环范围存储部1900的寄存器。
在步骤S2005,循环传递相关解析部1702从命令序列保存部1340取得循环范围内的命令序列。如前面所述,在命令序列保存部1340中保留有由发行单元1330发行的已发行命令。此外,在命令序列保存部1340中存储的命令数被设定得较多,以使得即使在检测出循环后在命令序列保存部1340中也保留有循环范围内的命令序列。
另外,假设在命令序列保存部1340中没有循环范围内的命令序列,则也可以在执行分支命令后将程序计数器1311改写为循环的开头地址,由命令取指/解码单元1320再次对循环范围内的命令序列进行取指/解码,并存储在命令序列保存部1340中。
在步骤S2007,循环传递相关解析部1702将所取得的命令序列2100存储在设于循环传递相关解析部1702中的相关关系解析用缓冲器2200中。
在此,参照图10对相关关系解析用缓冲器2200的数据构造进行说明。
在相关关系解析用缓冲器2200中并列存储有两次循环量的构成循环的命令序列2100。在相关关系解析用缓冲器2200中,按循环所包含的每个命令来设置条目(entry)。条目是存储命令和与命令对应的信息的存储器。
在相关关系解析用缓冲器2200的各个条目中存储的信息,除了该命令的助记符(mnemonic)2201、该命令的DST寄存器(目的地寄存器)2202的识别符、该命令的SRC寄存器(源寄存器)2203的识别符之外,还包括用于识别该命令在相关关系解析用缓冲器2200中的位置的条目序号2204、用于判别该命令是在前级循环中还是在后级循环中的迭代(iteration)序号2205、相关源命令的条目序号2206、以及该命令与相关源命令之间的跨迭代(cross-iteration)判定结果2207,作为用于相关关系解析的中间信息。
在步骤S2007,向相关关系解析用缓冲器2200存储各种信息。上述信息被设为助记符2201、DST寄存器2202的识别符、SRC寄存器2203的识别符。
在从步骤S2009到步骤S2017的期间,循环传递相关解析部1702针对相关关系解析用缓冲器2200的各个条目,从开头到末尾对条目按顺序地反复进行以下处理。
首先,在步骤S2011,循环传递相关解析部1702对各个条目赋予条目序号2204。例如,作为条目序号2204而使用的序号是将开头的条目设为“1”、以后按照“2”、“3”、“4”、“5”、“6”、“7”、“8”的顺序逐次增加1的数值。
另外,只要是能够唯一地识别相关关系解析缓冲器内的条目的信息,则条目序号也可以采用其它序号、记号或比特。
然后,在步骤S2013,循环传递相关解析部1702对各个条目赋予用于识别是前级循环还是后级循环的迭代序号2205。
在此,将表示前级循环的识别符设为“1”,将表示后级循环的识别符设为“2”。另外,迭代序号2205只要是能够识别是前级循环还是后级循环的信息,则也可以采用“1”、“2”以外的信息。
然后,在步骤S2015,循环传递相关解析部1702写入相关源命令的条目序号2206。相关源命令是指将该命令的SRC寄存器用作DST寄存器的最紧前(紧挨着且位于之前)的命令。由此,检测到所谓的流相关(flowdependence)、真相关(true dependence)、被称为RAW(Read after Write)风险(hazard)等的相关关系。
另外,在SRC寄存器不存在的命令的情况下,不向该项目进行写入,而保持初始值“0”。并且,在推定为相关源命令不在相关关系解析用缓冲器2200中而是在循环之外的情况下,作为表示存在于“循环之外”的值,可以写入在条目序号中没有的值(例如“10”),也可以设为初始值“0”。
在此,同一迭代序号2205的命令之间的相关关系(例如流相关)不是跨迭代序号不同的循环之间的相关关系,不能用于循环传递相关有无的判定。因此,在步骤S2015,也可以不检测有无循环内的相关,而生成能够仅判定循环传递相关有无的信息。具体而言,迭代序号2205是“1”的命令能够针对迭代序号2205是“2”的命令的各个条目生成用于判定是否成为相关源命令的信息即可。
在步骤S2016,循环传递相关解析部1702检测有无循环传递相关。具体而言,参照相关源命令的条目序号2206,判定相关源命令所属的迭代的序号是否为“1”、以及该命令的迭代序号2205是否为“2”。判定结果为“是”的情况下,存在循环传递相关,对与相关源命令的跨迭代判定结果2207写入“是”(实际上是将值设为“1”)。判定结果为“否”的情况下,不存在循环传递相关,对与相关源命令的跨迭代判定结果2207写入“否”(实际上是将值设为“0”)。
在步骤S2017,在针对全部条目完成了循环处理的情况下,结束循环,并进入步骤S2019。
在此,图10表示处理器1301执行了图8所示的命令序列时、循环传递相关解析部1702即将进行步骤S2019的判定之前的相关关系解析用缓冲器2200的状态。
然后,在步骤S2019,循环传递相关解析部1702判定是否存在与相关源命令的跨迭代判定结果2207为“是”的条目。
在步骤S2019的判定结果为“是”的情况下,由于不是忙碌等待用的循环,因而进入步骤S2021。并且,在步骤S2021,循环传递相关解析部1702不向第一电力控制部1703输出执行指示1712,并结束处理。因此,不进行节电控制。
另一方面,在步骤S2019的判定结果为“否”的情况下,由于是忙碌等待用的循环,因而进入步骤S2023。并且,在步骤S2023,循环传递相关解析部1702向第一电力控制部1703输出执行节电控制的执行指示1712,并结束处理。由此进行节电控制。另外,执行指示1712例如通过使将循环传递相关解析部1702和第一电力控制部1703连接的信号线的电压为高电平来进行。
在此,在上述循环传递相关解析部1702的处理中,当在相关关系解析用缓冲器2200中存储的信息是图10的例子的情况下,不存在循环传递相关,步骤S2019的判定结果为“否”。即,在条目序号从5号到8号的各个条目中,不存在与相关源命令的跨迭代判定结果2207为“是”的条目。在这种情况下,被实施相关解析的循环处理是忙碌等待用的循环处理,成为节电控制的对象。
因此,在该例中,进入步骤S2023,结果,向第一电力控制部1703输出执行指示1712。
通过进行以上所述的处理,循环传递相关解析部1702进行图9的流程图所示的解析处理,根据属于后级循环的命令的源寄存器不读出通过执行属于前级循环的命令而写入的值,判定为不存在循环传递相关。换言之,循环传递相关解析部1702根据属于后级循环的命令的源寄存器读出通过执行属于前级循环的命令而写入的值,判定为存在循环传递相关。
(1-2-2)非忙碌等待用的循环的解析例
下面,作为构成通过循环传递相关解析部1702检测到循环传递相关的循环的命令序列的例子,列举图11所示的命令序列2600。
图11的命令序列2600中,通过2004地址的ADD命令,将向R2寄存器加4得到的值输入R2寄存器。然后,通过2008地址的LDR命令,从R2寄存器所指的地址向R0寄存器读入值。然后,通过200c地址的CMP命令,将R0寄存器的值和预先存储有设定值的R1寄存器的值进行比较。在值一致的情况下,通过2010地址的BNE命令而脱离循环。在值不一致的情况下,通过2010地址的BNE命令而向2004地址分支。
图11所示的命令序列2600与图9所示的命令序列2100不同,不进行反复从固定地址读出值并进行比较的处理。这是因为,通过2004地址的ADD命令,R2寄存器的值通过每次循环而进行加法运算,LDR命令所使用的地址的值每次都在变化。即,上述命令序列2600进行从多个地址中发现存储有与R1寄存器相同的值的地址的处理,不是用于忙碌等待用的循环的命令序列。因此,是应该视为节电控制的对象之外的循环处理。
下面,图12表示在循环传递相关解析部1702对图11所示的命令序列2600进行了相关关系的解析的情况下的相关关系解析用缓冲器2700的状态。另外,上述相关关系解析用缓冲器2700的状态是指即将进行步骤S2019的判定之前的状态。
在图12的相关关系解析用缓冲器2700中,条目序号为No.5的SRC寄存器2203是R2寄存器,与条目序号为No.1的DST寄存器2202相同。并且,在条目序号为No.1与No.5之间,DST寄存器2202不是R2寄存器。即,条目序号为No.5的SRC寄存器2203的与相关源命令的跨迭代判定结果2207为“是”。因此,循环传递相关解析部1702的步骤S2019的判定结果为“是”(存在循环传递相关)。
结果,不向第一电力控制部1703输出执行指示1712,在该定时,第一电力控制部1703不进行处理器1301的节电控制。
(1-2-3)循环传递相关解析的总结
通过上述两个例子,可以理解到如下内容,即:用于忙碌等待的循环处理被有选择地检测为节电控制的对象,非忙碌等待用的循环处理不被有选择地检测。
因此,通过使用循环传递相关解析部1702,在执行忙碌等待的循环时进行节电控制,相反,在不执行忙碌等待的循环时避免节电控制。
在此,在本发明的实施方式1中,特别需要注意的是,在循环传递相关解析部1702的处理中进行步骤S2019的判定。在步骤S2019中,对属于后级循环的命令的源寄存器不会由于属于前级循环的命令的执行而被写入进行判定。
由此,对在循环中使用的变量由于循环的外部因素而被改写进行判定。例如,在图33的例子中,在通过第一处理器侧的设定部1101改写了同步用变量的情况下,成为由于循环的外部因素而被改写的情况。这样,用于忙碌等待的同步用变量具有由于循环的外部因素而被改写的性质,因而通过使用这种判定方法能够进行忙碌等待的检测。
例如,图10的条目序号为No.6的SRC寄存器2203是R2寄存器,在该R2寄存器的值被读入R0寄存器后,与R1寄存器的值进行比较。在这种情况下,R2寄存器相当于上述同步用变量。并且,在循环内没有将R2寄存器设为DST寄存器2202的命令,可知作为同步用变量的R2寄存器不会由于循环的内部因素而被改写。即,能够判断为是忙碌等待用的循环。
由此,能够从处理器执行的各种循环处理中有选择地检测出用于忙碌等待的循环处理,当执行用于忙碌等待的循环时能够有选择地进行节电控制。
另外,在实施方式1中,作为循环传递相关解析部1702的处理,列举了如下步骤的例子,即:判定后续循环的命令的SRC寄存器2203是否被用作在先循环的命令的DST寄存器2202的步骤。但是,循环传递相关解析部1702只要能够检测出在后续循环中使用的变量的值不会由于执行在先循环的命令而被改写,则也可以使用其它的处理来实施。
在此,图9的流程图的处理步骤是用于容易理解地说明用于解析有无循环传递相关的处理步骤的一例,也可以利用除上述处理步骤之外的方法判别循环传递相关的有无(具体例将在后面进行说明)。此外,也可以省略在相关关系解析用缓冲器2200、2700中示出的各种项目中的例如助记符2201、条目序号2204、迭代序号2205、相关源命令的条目序号2206等中的至少一个。
(1-3)第一电力控制部1703
下面,参照图13的流程图对第一电力控制部1703的动作进行说明。
第一电力控制部1703在步骤S2301中等待,直到从循环传递相关解析部1702接收到执行指示1712。
第一电力控制部1703若接收到执行指示1712,则在步骤S2303中进行节电控制。具体而言,第一电力控制部1703向电力供给器件1304发送电力控制信息1713,该电力控制信息1713用于使电力供给器件1304的电力供给模式从通常电力模式转变为节电模式。
作为节电控制的具体例,列举了如下例子,即:降低电力供给器件1304向处理器1301供给的时钟1307的频率,降低电力供给器件1304向处理器1301供给的电力1306的电压。例如将时钟频率降低到最大频率的12.5%,将电压降低到最大电压的70%。
在此,电力供给器件1304能够将电力供给模式切换为通常电力模式和节电模式。并且,电力供给器件1304在通常电力模式下利用时钟发生电路产生所设定的频率(例如最大频率)的时钟1307,并供给到处理器1301。此外,电力供给器件1304向处理器1301供给所设定的电压(例如最大电压)的电力1306。
另一方面,电力供给器件1304若从第一电力控制部1703接收到电力控制信息1731,则根据节电模式,按照上述例子那样使电压及时钟频率小于上述设定值而进行电力1306的供给和时钟1307的供给。另外,也可以设置多种节电模式,使多种节电模式的节电程度不同。
在步骤S2305,第一电力控制部1703向循环脱离检测部1704输出循环脱离检测的执行指示1713。
通过由第一电力控制部1703进行这种处理,当循环传递相关解析部1702检测到忙碌等待执行中时,能够进行处理器1301的电力控制。
(2)第二构成要素
对作为节电控制装置的第二构成要素的、循环脱离检测部1704(循环结束检测部的一例)和第二电力控制部1705进行说明。该循环脱离检测部1704和第二电力控制部1705分别进行用于检测处理器1301已从忙碌等待用的循环处理脱离的处理、和结束节电控制的电力控制。
(2-1)循环脱离检测部
参照图14的流程图对循环脱离检测部1704的动作进行说明。
首先,在步骤S2401,循环脱离检测部1704等待,直到从第一电力控制部1703接收到执行指示1713。
循环脱离检测部1704若接收到执行指示1713,则在步骤S2403中,从循环范围存储部1900取得循环的开头地址1911和循环的末尾地址1912。这些开头地址1911和末尾地址1912被存储在循环脱离检测部1704具有的存储器中。另外,也可以将循环检测部1701取得的开头地址1911和末尾地址1912保存在上述存储器中。
然后,在步骤S2405,循环脱离检测部1704根据分支命令的执行结果(以及条件标志寄存器(CFR)的值),判定分支是否成立。该判定与循环检测部1701在步骤S1801中进行的处理相同。此外,循环脱离检测部1704与循环检测部1701同样具有分支命令存储部和命令比较部。循环检测部1701和循环脱离检测部1704也可以共用这些分支命令存储部和命令比较部。
在步骤S2405的判定结果为“是”(分支成立)的情况下,进入步骤S2407。在步骤S2405的判定结果为“否”(分支不成立)的情况下,进入步骤S2408。
在步骤S2407中,在除了位于循环末尾的分支命令之外存在条件分支命令的情况下,循环脱离检测部1704通过该条件分支命令,判定是否向循环范围外分支。具体而言,判定在步骤S2405中成立的分支的跳跃目的地的地址是否偏离了从循环范围存储部1900取得的循环的开头地址1911和循环的末尾地址1912的范围。即,根据分支目的地的地址小于开头地址1911或大于末尾地址1912,判定为分支目的地在循环范围外。
在步骤S2407的判定结果为“是”的情况下,循环处理结束,因而进入结束节电控制的步骤S2409。另一方面,在判定结果为“否”的情况下,循环处理继续,返回到继续检测处理的步骤S2405。
在上述步骤S2408中,循环脱离检测部1704判定位于循环末尾的条件分支命令的执行结果是否是分支不成立。具体而言,判定条件分支命令的地址是否与循环的末尾地址1912相同。在步骤S2408的判定结果为“是”的情况下,循环处理结束,进入步骤S2409。在步骤S2408的判定结果为“否”的情况下,循环处理继续,返回到步骤S2405。
在步骤S2409中,循环脱离检测部1704为了结束节电控制而向第二电力控制部1705输出节电控制结束的执行指示1714。此外,执行指示1714例如通过使将循环脱离检测部1704和第二电力控制部1705连接的信号线的电压为高电平来进行。
另外,在本实施方式1中,将循环脱离检测部1704配置在退出单元1360内,根据分支命令的执行结果来检测循环处理是否结束。但是,如果有能够检测循环处理已结束的其它方法或装置,则也可以采用该方法或装置。作为可替代的其它方法的示例,列举出根据程序计数器1311的值在循环范围外这一情况来检测循环处理的结束的方法。在这种情况下,为了提高循环结束的检测处理的稳定性,例如也可以是,在程序计数器1311的值大于向循环的末尾地址加上规定值而得到的值的情况下,判定为循环处理结束。
(2-2)第二电力控制部
下面,参照图15的流程图对第二电力控制部1705的动作进行说明。
首先,在步骤S2501,第二电力控制部1705等待,直到接收到来自循环传递相关解析部1702的执行指示1714。
然后,第二电力控制部1705若接收到执行指示1714,则在步骤S2503中,进行结束节电控制并返回到通常电力控制的控制。具体而言,第二电力控制部1705向电力供给器件1304发送电力控制信息1751,该电力控制信息1751用于使电力供给器件1304的电力供给模式从节电模式恢复为通常电力模式。结果,电力供给器件1304使例如被第一电力控制部1703降低的、对处理器1301供给的时钟1307的频率和电力1306的电压分别增加(例如恢复为原来的值)。
以上,对构成本发明的实施方式1的节电控制装置的循环检测部1701、循环传递相关解析部1702、第一电力控制部1703、循环脱离检测部1704、第二电力控制部1705的动作进行了说明。
(2-3)在本实施方式中,利用第一电力控制部1703和第二电力控制部1705构成上述“电力控制部”。另外,也可以采用如下方式,即:利用第一电力控制部1703构成上述“电力控制部”,“电力控制部”不包含第二电力控制部1705。
<循环传递相关解析部的结构例>
循环传递相关解析部1702例如能够使用图16、图17所示的数字电子电路来解析循环传递相关的有无。
图16是表示检测流相关的流相关检测电路2851的图。图17是表示预备检测电路2853的图,预备检测电路2853预先检测流相关及循环传递相关双方,以便检测循环传递相关。另外,在上述图16、图17中示出了循环所包含的命令是4个的例子(命令1~4),但也可以构成检测除4个命令之外的命令之间的相关关系的电路,例如检测5个以上的命令之间的相关关系的电路。
流相关检测电路2851具有:存储循环所包含的命令序列的命令缓冲器2855和比较电路2857,比较电路2857将在命令缓冲器2855中存储的命令之间的DST寄存器(目的地寄存器)2202和SRC寄存器(源寄存器)2203的值进行比较。图中,位于最上侧的命令是循环的开头。另外,在一个命令使用两个SRC寄存器2203a、2203b的情况下,将SRC寄存器2203a、2203b各自与DST寄存器2202的值进行比较。
在命令缓冲器2855中存储来自命令序列保存部1340的循环范围内的命令序列。另外,也可以将命令序列保存部1340用作命令缓冲器2855。
比较电路2857在DST寄存器2202与SRC寄存器2203的值相等的情况下输出“1”,在值不同的情况下输出“0”。即,比较电路2857在有相关关系的情况下输出“1”。
在此,存在将一个SRC寄存器2203与多个DST寄存器2202进行比较的情况(例如,命令4的SRC寄存器2203)。在这种情况下,只要多个比较电路2857中的一个输出“1”,就判定为存在流相关(“1”)。另一方面,在多个比较电路2857全部输出“0”的情况下,判定为不存在流相关(“0”)。
将循环命令中第n个命令的SRC寄存器2203a、2203b的判定结果设为Sna、Snb。例如,命令2的SRC寄存器2203a、2203b的判定结果分别为S2a、S2b。另外,由于在命令1中未产生流相关,因而省略判定结果的图示。
在图17所示的预备检测电路2853中设有:3个命令缓冲器2861a、2861b、2861c,用于存储循环所包含的命令序列;以及比较电路2857,在两个命令缓冲器2861a、2861b之间将DST寄存器2202和SRC寄存器2203的值进行比较。
在执行第i次循环时,命令缓冲器2861c存储循环范围内的命令序列。并且,在执行第i+1次循环时,所存储的命令序列被移动到命令缓冲器2861a中。由此,在执行第i+1次循环时,在两个命令缓冲器2861a、2861b中存储循环的命令序列。
比较电路2857与流相关检测电路2851的比较电路相同。但是,在预备检测电路2853中,DST寄存器2202与SRC寄存器2203之间的连接的组合与流相关检测电路2851不同。具体而言,通过所有组合,对存储有在先循环命令的命令缓冲器2861a的DST寄存器2202、与存储有后续循环命令的命令缓冲器2861b的SRC寄存器2203进行比较。
在此,与预备检测电路2853一样,将命令缓冲器2861b的SRC寄存器2203a、2203b的判定结果设为Rna、Rnb。
并且,对于任一个SRC寄存器2203,当在预备检测电路2853中判定为存在相关、并且在流相关检测电路2851中判定为不存在相关的情况下,判定为存在循环传递相关。即,检测到循环传递相关。
在图12的例子中,条目序号为5号的SRC寄存器2203通过预备检测电路2853被判定为与条目序号为1号的DST寄存器2202相关。此外,条目序号为5号的SRC寄存器2203由于在循环内不存在流相关,所以未通过流相关检测电路2851被检测到相关。因此,对于条目序号为5号的SRC寄存器2203,预备检测电路2853的判定结果R1a为“1”,流相关检测电路2851的判定结果S1a为“0”。在这种情况下检测到循环传递相关。另外,在图16中,如上所述省略了命令1的判定结果S1a等的图示,由于在命令1中未产生流相关,因而命令1的判定结果S1a等为“0”。
将上述预备检测电路2853和流相关检测电路2851进行组合,能够构成循环传递相关解析部1702。
在此,图17的预备检测电路2853具有3个命令缓冲器2861a、2861b、2861c,但也可以具有1个。关于在命令缓冲器2861a中存储的命令,只有DST寄存器2202与比较电路2857连接,SRC寄存器2203不与比较电路2857连接。相反,关于在命令缓冲器2861b中存储的命令,只有SRC寄存器2203与比较电路2857连接,DST寄存器2202不与比较电路2857连接。因此,例如,对于在命令缓冲器2861b中存储的命令,能够将DST寄存器2202与SRC寄存器2203a、2203b之间的全部组合进行比较即可。
图18表示用于简易地检测循环传递相关的简易循环传递相关检测电路2871。
简易循环传递相关检测电路2871与流相关检测电路2851同样,具有命令缓冲器2855和比较电路2857。并且,各个比较电路2857与对应于一个命令的DST寄存器2202和SRC寄存器2203连接。即,简易循环传递相关检测电路2871是判别在一个命令中DST寄存器2202和SRC寄存器2203是否相同、并输出判定结果Qna、Qnb(图中,n为1~4)的电路。
利用该简易循环传递相关检测电路2871,在对例如构成图11示例的循环的命令序列2600进行解析的情况下,2004地址的ADD命令的DST寄存器2202和SRC寄存器2203是R2寄存器而一致,因而对判定结果Q1a输出“1”,检测到循环传递相关。
这样,简易循环传递相关检测电路2871在通常的运算用的循环中,根据存在将成为变量的寄存器的值增加(或减少)的计算式这一情况,简易地检测循环传递相关。
以上,使用电子电路对构成循环传递相关解析部1702的例子进行了说明,但循环传递相关解析部1702的结构不限于此。例如,也可以利用执行用来进行图9所示处理的程序的处理器构成循环传递相关解析部1702。另外,执行上述程序的处理器例如也可以是执行微程序的微程序定序器(microprogram sequencer)那样的简易处理器。在这种情况下,能够在处理器1301内形成简易的处理器。此外,执行上述程序的处理器可以是和上述处理器1301形成于同一集成电路内的单独的处理器,还可以是上述处理器1301。另外,能够使上述处理器1301和单独的执行上述程序的处理器所执行的循环处理不作为检测及相关解析的对象。
另外,也可以利用电子电路分别构成除循环传递相关解析部1702之外的节电控制装置的各个构成要素(循环检测部1701等),也可以利用执行用于进行各个构成要素的处理的程序的处理器来构成。
并且,在实施方式1中,也可以将节电控制以及结束节电控制并返回到通常电力控制的控制设为除上述记载之外的例如下述控制。降低向处理器1301供给的时钟1307的频率、或者降低向处理器1301供给的电力1306的电压,由此进行节电控制。并且,增加向处理器1301供给的时钟1307的频率、或者增加向处理器1301供给的电力1306的电压,由此进行结束节电控制并返回到通常电力控制的控制。
[变形例]
<I/O器件>
另外,图19表示上述实施方式1的计算机系统的变形例。另外,在图19中,对与图1相同的构成要素采用相同的标号,并省略说明。
在图19所示的计算机系统2800中,与图1同样,处理器1301、主存1302、I/O器件组1303、电力供给器件1304通过总线1305相互连接。此外,从电力供给器件1304向处理器1301供给电力1306和时钟1307。
图19具体示出可作为I/O器件组1303的装置的例子。
天线2810是接收广播波、移动电话网络的电波的器件。
调谐器2811用于将天线2810接收到的模拟电波变换为数字信号。
解码器2812用于对由调谐器进行变换得到的数字信号进行解码。作为解码器2812进行解码的编解码(codec)的例子,可以举出MPEG2、MPEG4-AVC、MPEG4-MVC等。
OSD生成器2813将由解码器2812解码后的影像数据、由处理器1301生成的画面数据等合成为影像数据的形式。
影像显示器2814将由OSD生成器2813合成后的影像数据显示在画面上。作为影像显示器2814的例子,可以举出液晶显示器、等离子显示器、有机EL显示器、LED显示器等。
扬声器2816进行由解码器2812解码后的声音数据的声音输出。
半导体存储器读写装置2821、HDD 2822(硬盘存储装置)、光盘读写装置2823能够用作存储器件。
此外,网络通信器2825接收来自计算机系统2800外部的网络信号。作为网络通信器2825的例子,可以举出以太网适配器(Ethernet adapter)、无线LAN适配器等。
遥控接收器2826接收来自外部的基于红外线的控制信号等。
另外,是否将此处说明的可作为I/O器件组1303的器件安装于计算机系统2800中是任意的。此外,也可以安装与此处说明的器件不同的器件。例如,键盘、鼠标、触摸面板等输入装置也可作为I/O器件组1303。
安装了一部分I/O器件的计算机系统2800可构成个人电脑、主机(mainframe)、电视机、录像机(video deck)、HDD记录器、移动电话、车载导航系统、固定电话、复印机、网络中继设备、带触摸面板的移动终端等的一部分。
此外,第一电力控制部1703和第二电力控制部1705的控制对象不限于电力1306的电压和时钟1307的频率。
第一电力控制部1703和第二电力控制部1705的控制对象只要是控制向处理器1301或计算机系统1300、2800供给的电力的要素即可。
[实施方式2]
参照图20对实施方式2的应对多线程的计算机系统2900的结构进行说明。
另外,在图20中,对与图1的计算机系统1300相同的构成要素采用相同的标号,并省略说明。
本实施方式2的计算机系统2900在以下方面与上述实施方式1的计算机系统1300不同。
(i)在计算机系统2900中存在数量与线程的个数相等的寄存器组2910,各个寄存器组2910设有线程识别符寄存器2912和时间片(time slice)寄存器2913。
(ii)计算机系统2900具备线程切换部2920,用于切换在处理器2901中动作的线程。
(iii)第一电力控制部及第二电力控制部具有向寄存器组2910输出时间片设定信息的功能、和对执行单元1350的运转个数进行控制的功能。
<寄存器组、线程切换部及其它>
参照图21对寄存器组2910的数据构造进行说明。
图21示出与第一及第二线程分别对应的第一及第二寄存器组2910a、2910b。
在各个寄存器组2910中,除了在图4中说明的寄存器组1310的构成要素之外,还分别具有线程识别符寄存器2912和时间片寄存器2913。
线程识别符寄存器2912是存储线程识别符的寄存器,该线程识别符用于从多个线程中识别特定的线程。例如,对属于与第一线程对应的第一寄存器组2910a的线程识别符寄存器2912a写入“1”,对属于与第二线程对应的第二寄存器组2910b的线程识别符寄存器2912b写入“2”。
时间片寄存器2913存储分配给各个线程的时间即时间片。例如,在按照100时钟周期的比率对第一线程分配时间片、按照100时钟周期的比率对第二线程分配时间片的情况下,在与第一线程对应的第一寄存器组2910a的时间片寄存器2913a中存储“100”。在与第二线程对应的第二寄存器组2910b的时间片寄存器2913b中存储“100”。
线程切换部2920根据各个线程的时间片寄存器2913的值,以分时方式对各个线程分配处理器2901的执行时间。
在此,对线程切换部2920进行具体说明。
线程切换部2920直接或通过总线与寄存器组2910及命令取指/解码单元1320连接。并且,线程切换部2920读出与当前执行的线程对应的寄存器组2910的程序计数器1311的值,并发送给命令取指/解码单元1320。此外,线程切换部2920将线程识别符与程序计数器1311的值一起发送。
例如,在执行第一线程的情况下,线程切换部2920向命令取指/解码单元1320发送线程识别符的值“1”和第一寄存器组2910a的程序计数器1311a的值。由此,执行第一线程的程序的命令被取指/解码。
另外,对由命令取指/解码单元1320取指的命令序列赋予线程识别符寄存器2912的信息、即线程识别符的值(例如“1”)。
在此,通过在处理器2901外设置的定时器/计数器(省略图示)通知线程切换的定时。下面进行具体说明。
例如,在第一线程开始时,对定时器/计数器设定在时间片寄存器2913a中存储的时间片,定时器/计数器起动。若经过所设定的时间片,则定时器/计数器通知线程切换部2920。接收到该通知的线程切换部2920向命令取指/解码单元1320发送与下一个线程对应的寄存器组、例如第二寄存器组2910b的线程识别符的值“2”和程序计数器1311b的值。
由此,由命令取指/解码单元1320取指的命令的地址被变更为执行第二线程的程序的命令的地址。结果,执行第二线程的程序的命令被取指/解码,进行动作的线程得以切换。
定时器/计数器在经过设定时间后被重设(reset),在设定了下一个执行的线程例如第二线程的时间片之后起动。
这样,根据分配给各个线程的时间片来切换进行动作的线程。另外,可以在处理器2901内设置定时器/计数器。
在本实施方式中,利用时间片寄存器2913和线程切换部2920构成“线程管理部”。此外,“线程管理部”也可以包括线程识别符寄存器2912。
发行单元1330在发行运算等的命令的情况下,从多个寄存器组2910中读出与对命令序列赋予的线程识别符对应的寄存器组2910的值。
退出单元1360将执行单元1350的执行结果写回到多个寄存器组2910中的与对命令序列赋予的线程识别符对应的寄存器组2910中。
循环范围存储部1900将线程识别符与循环范围对应地进行存储。此外,能够针对多个线程来存储循环范围及线程识别符。
循环检测部1701在检测到循环处理的情况下,将线程识别符和循环范围一起写入循环范围存储部1900。
循环传递相关解析部1702从循环范围存储部1900取得循环范围和被检测到循环处理的线程的线程识别符。并且,循环传递相关解析部1702对成为对象的线程的循环范围的命令序列进行循环传递相关的解析处理。在不存在循环传递相关的情况下,循环传递相关解析部1702向第一电力控制部3013输出执行指示1712。在此,循环传递相关解析部1702对执行指示1712赋予用于识别线程的信息。例如,将循环传递相关解析部1702和第一电力控制部3013连接的多个信号线分别与多个线程对应,提高与成为解析处理的对象的线程相对应的信号线的电压,由此赋予用于识别线程的信息。
循环脱离检测部1704从第一电力控制部3013接收线程识别符和执行指示1713。并且,循环脱离检测部1704从循环范围存储部1900取得与上述线程识别符对应的循环范围。并且,根据成为对象的线程的分支命令的执行结果等来检测循环处理的结束。
另外,循环脱离检测部1704能够对多个线程检测循环处理的结束。并且,在对某一个线程检测到循环处理的结束的情况下,将线程识别符与执行指示1714一起向第二电力控制部3015发送。
<电力控制部>
第一电力控制部3013及第二电力控制部3015设置在退出单元1360内。由此,能够容易地利用退出单元1360的功能进行向寄存器组2910的写入等。
第一电力控制部3013除了向电力供给器件1304输出电力控制信息1731的功能之外,还具有向寄存器组2910输出时间片设定信息3103的功能、和输出执行单元1350的运转个数减少指示3107的功能。
第二电力控制部3015除了向电力供给器件1304输出电力控制信息1751的功能之外,还具有向寄存器组2910输出时间片设定信息3105的功能、和输出执行单元1350的运转个数增加指示3109的功能。
(1)节电控制1
图22表示第一电力控制部3013的动作的流程。
首先,在步骤S3201,第一电力控制部3013对是否从循环传递相关解析部1702接收到执行指示1712进行判定。在判定结果为“是”的情况下,进入步骤S3203。在判定结果为“否”的情况下,再次执行步骤S3201的判定。另外,如上所述,在执行指示1712中包含识别线程的信息。
然后,在步骤S3203,第一电力控制部3013向寄存器组2910中的与执行指示1712所指定的线程对应的寄存器组2910(向与当前动作中的线程对应的寄存器组2910)输出时间片设定信息3103,以使得与该线程有关的变更后的时间片小于变更前的时间片。
例如,在所指定的线程识别符是“2”的情况下,第一电力控制部3013将线程识别符寄存器2912是“2”的第二寄存器组2910b的时间片寄存器2913b的值从“100”变更为“50”。
在步骤S3205,第一电力控制部3013向电力供给器件1304输出电力控制信息1731。例如,指示将时钟1307的频率设为四分之三。
在步骤S3207,第一电力控制部3013将执行指示1713与所指定的线程识别符一起向循环脱离检测部1704输出。
图23表示第二电力控制部3015的动作的流程。
首先,在步骤S3301,第二电力控制部3015对是否从循环脱离检测部1704接收到执行指示1714进行判定。在判定结果为“是”的情况下,进入步骤S3303。在判定结果为“否”的情况下,再次执行步骤S3301。另外,如上所述,在执行指示1714中包含线程识别符。
然后,在步骤S3303,第二电力控制部3015向与线程识别符所示的线程对应的寄存器组2910(向与当前动作中的线程对应的寄存器组2910)输出时间片设定信息3105,以使得与该线程有关的变更后的时间片大于变更前的时间片(例如,使得恢复为由第一电力控制部3013减少前的时间片)。
例如,在线程识别符是“2”的情况下,第二电力控制部3015将多个寄存器组2910中的、线程识别符寄存器2912是“2”的第二寄存器组2910b的时间片寄存器2913b的值从“50”恢复为“100”。
然后,在步骤S3305,第二电力控制部3015向电力供给器件1304输出电力控制信息1751。结果,电力供给器件1304例如使由第一电力控制部3013降低的向处理器2901供给的时钟1307的频率增加(复原)。
在此,对进行节电控制时分配给忙碌等待状态的线程(上述例子中的第二线程)的处理器资源(处理器的处理能力)、以及分配给非忙碌等待状态的线程即进行通常处理的线程(上述例子中的第一线程)的处理器资源进行说明。
分配给各个线程的处理器资源通常能够用算式“各个线程的时间片÷所有线程的时间片的总和×时钟1307的频率”表示。
此处说明的例子中,关于执行节电控制时的时钟1307的频率,在第一线程和第二线程中都减少为通常电力控制时的时钟1307的频率的四分之三。
另一方面,关于执行节电控制时的“各个线程的时间片÷所有线程的时间片的总和”,在第一线程中增加为通常电力控制时的三分之四(从100÷200变为100÷150)。此外,在第二线程中减少为通常电力控制时的三分之二(从100÷200变为50÷150)。
因此,在该例中,对非忙碌等待状态的第一线程分配的处理器资源,是将时钟1307的频率的减少比例即四分之三和时间片的分配比率的增加比例即三分之四相乘得到的“1”。即,即使进行节电控制,分配给第一线程的处理器资源也不减少。
另一方面,分配给第二线程的处理器资源减半,抑制了电力浪费。
由此,能够维持未执行忙碌等待的线程的处理速度并且有选择地减少对忙碌等待状态的线程分配的处理器资源来执行忙碌等待,由此降低处理器2901消耗的电力以及计算机系统2900消耗的电力。
上述节电控制也能够理解如下。
在上述例子中,使用上述计算式,从而与对忙碌等待状态的线程分配的时间片的减少量相当的处理器资源成为“50÷200×频率f”。即,上述时间片的减少量相当于通常电力控制时的处理器资源的四分之一。
因此,如果与上述四分之一的处理器资源相应地使时钟1307的频率减少四分之一,则能够降低处理器2901的电力消耗,而不减少非忙碌等待状态的线程的处理器资源。此外,当忙碌等待状态的特定线程脱离忙碌等待状态时,能够增加对上述特定线程分配的处理器资源,而不减少其它线程的处理器资源。
这样,上述节电控制根据对忙碌等待状态的线程分配的时间片的减少量,减少时钟1307的频率。
(2)节电控制2
在上述例子中,计算机系统2900通过由第一电力控制部3013和第二电力控制部3015控制时钟1307的频率来进行节电控制,抑制计算机系统2900浪费的电力。
相对于此,还存在进行节电控制的其它方法。
例如,也可以是,取代进行时钟1307的频率的控制或者与频率的控制一起将执行单元1350的运转个数减少来进行节电控制。
对通过减少执行单元1350的运转个数来进行节电控制的第一电力控制部3013及第二电力控制部3015的处理的流程图进行说明。
首先,参照图24的流程图来说明第一电力控制部3013的处理。
首先,在步骤S3401,第一电力控制部3013对是否从循环传递相关解析部1702接收到执行指示1712进行判定。在判定结果为“是”的情况下,进入步骤S3403。在判定结果为“否”的情况下,返回步骤S3401。另外,如上所述,在执行指示1712中包含识别线程的信息。
然后,在步骤S3403,第一电力控制部3013向寄存器组2910中的与执行指示1712所指定的线程对应的寄存器组2910(向与当前动作中的线程对应的寄存器组2910)输出时间片设定信息3103。例如,在当前执行中的线程识别符是“2”的情况下,第一电力控制部3013将线程识别符寄存器2912是“2”的第二寄存器组2910b的时间片寄存器2913b的值从“100”变更为“50”。
然后,在步骤S3405,第一电力控制部3013向执行单元1350输出用来使执行单元1350的运转个数减少的运转个数减少指示3107。例如,在执行单元1350存在4个的情况下,对执行单元1350进行指示以使得将运转个数削减为3条。
在此,对运转个数减少指示3107进行说明。
虽省略了图示,但第一电力控制部3013经由信号线与发行单元1330连接。并且,第一电力控制部3013指示发行单元1330停止向多个执行单元1350中的一部分发行命令。该指示例如向与多个执行单元1350分别对应的信号线中的、与希望停止的执行单元1350对应的信号线发送信号。由此,停止向一部分执行单元1350发行命令。
此外,在向各个执行单元1350供给电力的供电路径中设有由晶体管构成的电子开关。并且,第一电力控制部3013通过使与运转停止对象的执行单元1350对应的电子开关截止,能够切断向执行单元1350的电力供给,削减运转个数。另外,切断向执行单元1350的电力供给是在向发行单元1330指示停止发行命令后进行的。
在步骤S3407,第一电力控制部3013向循环脱离检测部1704输出执行指示1713。
参照图25的流程图来说明第二电力控制部3015的处理。
首先,在步骤S3501,第二电力控制部3015对是否从循环脱离检测部1704接收到执行指示1714进行判定。在判定结果为“是”的情况下,进入步骤S3503。在判定结果为“否”的情况下,再次执行步骤S3501的处理。另外,如上所述,在执行指示1714中包含线程识别符。
然后,在步骤S3503,第二电力控制部3015向与线程识别符所示的线程对应的寄存器组2910(向与当前动作中的线程对应的寄存器组2910)输出时间片设定信息3105。例如,在线程识别符是“2”的情况下,将线程识别符寄存器2912是“2”的第二寄存器组2910b的时间片寄存器2913b的值从“50”恢复为“100”。
然后,在步骤S3505,第二电力控制部3015向执行单元1350输出用来使执行单元1350的运转个数增加的运转个数增加指示3109。例如,进行指示以使得执行单元1350的运转个数恢复为被第一电力控制部3013减少前的个数即4条。另外,运转个数增加指示3109是按照与上述运转个数减少指示3107相反的顺序进行的。即,在将电子开关设为导通后,向发行单元1330进行指示以便再次开始发行命令。
在此,对在进行节电控制时分配给在执行忙碌等待的线程(上述例子中的第二线程)的处理器资源(处理器的处理能力)、以及分配给未执行忙碌等待的线程即进行通常处理的线程(上述例子中的第一线程)的处理器资源进行说明。
分配给各个线程的处理器资源通常是“各个线程的时间片÷所有线程的时间片的总和×执行单元1350的运转个数”。
在该例中,对于第一线程,执行节电控制时的执行单元1350的运转个数减少为通常电力控制时的四分之三,但执行节电控制时的“分配给各个线程的时间片÷所有线程的时间片的总和”增加为通常电力控制时的三分之四(从100÷200增加为100÷150),因而两者之积为1。另一方面,对于第二线程,两者之积为1/2。
因此,在该例中,即使进行节电控制,对未执行忙碌等待的线程即第一线程分配的处理器资源也不减少。
由此,能够维持未执行忙碌循环的线程的处理速度并且有选择地减少对在执行忙碌循环的线程分配的处理能力来执行忙碌等待,从而降低处理器2901消耗的电力以及计算机系统2900消耗的电力。
上述节电控制也能够理解如下。
在上述例子中,使用上述计算式,从而与对忙碌等待状态的线程分配的时间片的减少量相当的处理器资源成为“50÷200×执行单元的运转个数”。即,上述时间片的减少量相当于通常电力控制时的处理器资源的四分之一。
因此,如果与上述四分之一的处理器资源相应地使执行单元1350的运转个数减少四分之一,则能够降低处理器2901的电力消耗,而不减小非忙碌等待状态的线程的处理器资源。此外,当忙碌等待状态的特定线程脱离忙碌等待状态时,通过增加执行单元1350的运转个数,能够增加对上述特定线程分配的处理器资源,而不减少其它线程的处理器资源。
这样,上述节电控制根据对忙碌等待状态的线程分配的时间片的减少量,减少执行单元的运转个数。
(3)节电控制补充
如果将上述两种节电控制相结合,则分配给各个线程的处理器资源(处理能力)成为“各个线程的时间片÷所有线程的时间片的总和×时钟1307的频率×执行单元1350的运转个数”。
根据本实施方式,根据上述计算,能够有选择地减少在执行忙碌循环的线程的处理器资源,而不会减少未执行忙碌循环的线程的处理器资源。
此外,在节电控制中,能够根据对忙碌等待状态的线程分配的时间片的减少量,使时钟1307的频率及执行单元1350的运转个数中的至少一方减少。
另外,在节电控制时也可以增加未执行忙碌循环的线程的处理器资源。在这种情况下,也能够降低由于执行忙碌循环而浪费的电力。
另外,在实施方式2中,关于节电控制以及结束节电控制并返回通常电力控制的控制,除了在节电控制1和节电控制2中记载的控制方式之外,例如也可以进行下述的控制。
降低向处理器2901供给的电力1306的电压、或者降低向处理器2901供给的电力1306的电压及时钟1307的频率,由此进行节电控制。并且,增加向处理器2901供给的电力1306的电压、或者增加向处理器2901供给的电力1306的电压及时钟1307的频率,由此进行结束节电控制并返回通常电力控制的控制。
此外,通过减少执行单元1350的运转个数并且降低向处理器2901供给的电力1306的电压,或者通过减少执行单元1350的运转个数并且降低向处理器2901供给的电力1306的电压及时钟1307的频率,由此进行节电控制。并且,通过增加执行单元1350的运转个数并且增加向处理器2901供给的电力1306的电压,或者通过增加执行单元1350的运转个数并且增加向处理器2901供给的电力1306的电压及时钟1307的频率,由此进行结束节电控制并返回通常电力控制的控制。
另外,第一电力控制部3013和第二电力控制部3015的控制对象不限于电力1306的电压、时钟1307的频率和执行单元1350的运转个数。
第一电力控制部3013和第二电力控制部3015的控制对象只要能控制对处理器2901或计算机系统2900供给的电力即可。
[实施方式3]
参照图26对实施方式3的计算机系统的结构进行说明。
另外,在图26中,对与图1的计算机系统1300相同的构成要素采用相同的标号,并省略说明。
本实施方式3的计算机系统4000在以下方面与上述实施方式1的计算机系统1300不同。
(i)在计算机系统4000中具有程序计数器监视部4100,以取代循环检测部1701和循环脱离检测部1704。
(ii)在计算机系统4000中具有总线监视部4200,以取代循环传递相关解析部1702。
<处理器>
集成电路4010内的处理器4020是从实施方式1的处理器1301中去除了节电控制装置(循环检测部1701、循环传递相关解析部1702、第一电力控制部1703、循环脱离检测部1704、第二电力控制部1705)而得到的。此外,发行单元1330A是从实施方式1的发行单元1330中去除了循环传递相关解析部1702而得到的,退出单元1360A是从实施方式1的退出单元1360中去除了循环检测部1701、循环脱离检测部1704而得到的。
<节电控制装置>
在实施方式3中,由程序计数器监视部4100、总线监视部4200、第一电力控制部1703、第二电力控制部1705构成节电控制装置。另外,可以将程序计数器监视部4100、总线监视部4200、第一电力控制部1703、第二电力控制部1705的一部分或全部设于处理器内。
(1-1)程序计数器监视部4100(与节电控制有关的动作)
参照图27的流程图对程序计数器监视部4100的与节电控制有关的动作进行说明。其中,图27的流程图着眼于在处理器4020执行循环处理的期间、程序计数器1311的值按一定的模式(pattern)进行反复的情况。
在步骤S4501,程序计数器监视部4100对程序计数器1311的值是否在按一定的模式进行反复进行监视。并且,在步骤S4501的判定结果为“否”的情况下(程序计数器1311的值未以一定的模式进行反复的情况),返回步骤S4501。在步骤S4501的判定结果为“是”的情况下(程序计数器1311的值在按一定的模式进行反复的情况),进入步骤S4503。
在步骤S4503,程序计数器监视部4100向总线监视部4200输出执行总线监视的执行指示1711A。
(1-2)总线监视部4200
参照图28的流程图对总线监视部4200的动作进行说明。其中,图28的流程图着眼于,处理器4020执行循环处理且若在该循环间不存在循环传递相关关系则存在与读出有关的地址不发生变化的情况。
在步骤S4601,总线监视部4200对是否从程序计数器监视部4100接收到执行指示1711A进行判定。在步骤S4601的判定结果为“是”的情况下进入步骤S4603。在步骤S4601的判定结果为“否”的情况下,再次执行步骤S4601的判定。
在步骤S4603,总线监视部4200监视总线1305,并判定与读出有关的地址是否有变化。在步骤S4603的判定结果为“是”的情况下(与读出有关的地址有变化的情况),进入步骤S4605。在步骤S4603的判定结果为“否”的情况下(与读出有关的地址没有变化的情况),进入步骤S4607。
在步骤S4605,总线监视部4200不向第一电力控制部1703输出执行节电控制的执行指示1712。
在步骤S4607,总线监视部4200向第一电力控制部1703输出执行节电控制的执行指示1712。另外,第一电力控制部1703若从总线监视部4200接收到执行指示1712,则向电力供给器件1304发送电力控制信息1731,并且向程序计数器4100输出用于检测节电控制结束的执行指示1713A。另外,第一电力控制部1703的节电控制能够利用在实施方式1中记载的各个节电控制。
(1-3)程序计数器监视部4100(与节电控制结束有关的动作)
参照图29的流程图对程序计数器监视部4100的与节电控制结束有关的动作进行说明。其中,图29的流程图着眼于,在处理器4020执行的循环处理结束后,程序计数器1311的值在循环处理执行中偏离按一定模式进行反复的情况。
在步骤S4701,程序计数器监视部4100对是否从第一电力控制部1703接收到执行指示1713A进行判定。在步骤S4701的判定结果为“是”的情况下进入步骤S4703。在步骤S4701的判定结果为“否”的情况下再次执行步骤S4701的判定。
在步骤S4703,程序计数器监视部4100监视程序计数器1311的值是否按与步骤S4501的判定时的一定模式相同的一定模式进行反复。并且,在步骤S4703的判定结果为“是”的情况下(程序计数器1311的值按一定模式进行反复的情况),视为处理器4020继续执行循环处理,返回步骤S4703。在步骤S4703的判定结果为“否”的情况下(程序计数器1311的值未按一定模式进行反复的情况),视为处理器4020已结束执行循环处理,进入步骤S4703。
在步骤S4705,程序计数器监视部4100向第二电力控制部1705输出执行节电控制结束的执行指示1714。另外,第二电力控制部1705若从程序计数器监视部4100接收到执行指示1714,则向电力供给器件1304发送电力控制信息1735。另外,第二电力控制部1705进行的结束节电控制并返回通常电力控制的控制能够利用在实施方式1中记载的各个结束节电控制并返回通常电力控制的控制。
[实施方式4]
参照图30对实施方式4的计算机系统的结构进行说明。
另外,在图30中,对与图20的计算机系统2900或图26的计算机系统4000相同的构成要素采用相同的标号,并省略说明。
本实施方式4的计算机系统4500在以下方面与上述实施方式2的计算机系统2900不同。
(i)在计算机系统4500中具有程序计数器监视部4100,以取代循环检测部1701和循环脱离检测部1704。
(ii)在计算机系统4500中具有总线监视部4200,以取代循环传递相关解析部1702。
<处理器>
集成电路4510内的处理器4520是从实施方式2的处理器2901中去除了节电控制装置(循环检测部1701、循环传递相关解析部1702、第一电力控制部3013、循环脱离检测部1704、第二电力控制部3015)而得到的。
<节电控制装置>
在实施方式4中,由程序计数器监视部4100、总线监视部4200、第一电力控制部3013、第二电力控制部3015构成节电控制装置。另外,可以将程序计数器监视部4100、总线监视部4200、第一电力控制部3013、第二电力控制部3015的一部分或全部设于处理器内。
(1-1)程序计数器监视部4100(与节电控制有关的动作)
向程序计数器监视部4100输入各个线程的程序计数器1311的值,并且从线程切换部2920向程序计数器监视部4100输入表示当前动作中的线程的信息。
由于处理器4200一边切换线程一边动作,因此程序计数器监视部4100以线程为单位来监视程序计数器1311。并且,程序计数器监视部4100在检测到与从线程切换部2920接收到的信息对应的线程的程序计数器1311的值在按一定模式进行反复的情况下,向总线监视部4200输出执行总线监视的执行指示1711A。另外,假设该执行指示1711A包括表示程序计数器1311的值在按一定模式进行反复的线程的信息。
(1-2)总线监视部4200
从线程切换部2920向总线监视部4200输入表示当前动作中的线程的信息。
总线监视部4200对于从程序计数器监视部4100接收到的各个执行指示1711A中包含的信息所示的线程,监视总线1305。并且,总线监视部4200在检测到与从线程切换部2920接收到的当前动作中的线程的读出有关的地址没有变化的情况下,向第一电力控制部3013输出执行节电控制的执行指示1712。假设该执行指示1712包括表示检测到与读出有关的地址没有变化的线程的信息。
第一电力控制部3013向程序计数器4100输出用于检测节电控制结束的执行指示1713A。另外,第一电力控制部3013进行的节电控制能够利用在实施方式2中记载的各个节电控制。此外,第一电力控制部3013进行的时间片数量的减少控制能够利用在实施方式2中记载的各个减少时间片数量的控制。
(1-3)程序计数器监视部4100(与节电控制结束有关的动作)
程序计数器监视部4100对于从第一电力控制部3013接收到的各个执行指示1713A中包含的信息所示的线程,监视程序计数器1311。并且,程序计数器监视部4100在检测到从线程切换部2920接收到的当前动作中的线程的程序计数器1311的值没有按一定模式进行反复的情况下,向第二电力控制部3014输出用来执行使节电控制结束的执行指示1714。另外,假设该执行指示1714包括表示程序计数器1311的值变得不按一定模式进行反复的线程的信息。
另外,关于第二电力控制部3015进行的结束节电控制并返回通常电力控制的控制,能够利用在实施方式2中记载的各个结束节电控制并返回通常电力控制的控制。此外,关于第二电力控制部3015进行的增加时间片数量的控制,能够利用在实施方式2中记载的各个增加时间片数量的控制。
[其它]
(1)上述实施方式及变形例的说明在所有方面上都只不过是本发明的示例,不能限定其范围。此外,当然能够在不脱离本发明的范围的情况下进行各种改进和变形。
(2)在上述实施方式1、2及变形例中,检测由执行单元执行后的分支命令,对在命令序列保存部1340中存储的循环范围的命令序列进行解析有无循环传递相关的处理。
相对于此,也能够由循环检测部检测被读入命令高速缓冲器1370的执行前的命令序列所包含的分支命令,对检测到的循环处理预先进行解析有无循环传递相关的处理。并且,在检测到忙碌等待用的循环的情况下,能够将分支命令的地址或者循环范围存储在缓冲器中。结果,在执行了在缓冲器中存储的地址的命令的情况下,能够检测到忙碌等待用的循环被执行这一情况。
在这种情况下,循环检测部能够设置在退出单元1360之外的部位,循环传递相关解析部能够设置在发行单元1330之外的部位。此外,也可以将从命令高速缓冲器进行命令的取指等的单元与命令取指/解码单元1320分体设置。
(3)在上述实施方式2、4中,执行单元的运转个数在节电控制时减少。与此相同,在实施方式1、3中,也能够使执行单元的运转个数在节电控制时减少。
(4)在上述实施方式1、2及变形例中,循环检测部1704根据分支命令等的执行结果进行循环处理的检测。这里,存在对退出单元1360设置对已发行的命令及该命令的地址进行存储的重新排序缓冲器(reordering buffer)的情况。在这种情况下,能够根据从发行单元1330向重新排序缓冲器发送的分支命令,检测到分支命令的发行。然后,在分支命令的执行结果已被发送给退出单元的情况下,或者在分支命令的执行结果已退出的情况下(程序计数器已被改写的情况等),能够检测到分支命令的执行。
(5)在上述实施方式1~4及变形例中,也可以是,电力供给器件具有对向处理器供给的时钟的频率进行存储的时钟频率存储部,处理器能够从时钟频率存储部读取时钟频率。
作为这种情况下的安装方法的例子,列举第一例及第二例。
在第一例中,时钟频率存储部被安装为已被内存映射(memory-mapped)的寄存器。
时钟频率存储部被分配为总线上的特定地址。处理器通过总线从时钟频率存储部读取时钟频率。
在第二例中,处理器执行特定的命令,由此处理器取得时钟频率存储部。
在执行单元中执行了特定的命令的情况下,处理器从存在于电力供给器件的时钟频率存储部读取时钟频率。
图31表示具有特定命令的命令集1400A的例子。图31所示的命令集1400A是向在图4中说明的命令集1400追加了READCLK命令1420而得到的,READCLK命令1420相当于为了从时钟频率存储部读取时钟频率而由处理器执行的特定的命令。
(6)在上述实施方式2、4及变形例中,也可以是,能够由处理器读取时间片。
例如,处理器执行特定的命令,从而处理器取得时间片。
当在执行单元中执行了特定的命令的情况下,处理器读取时间片。
图32表示具有特定的命令的命令集1400B的例子。图32所示的命令集1400B是向在图4中说明的命令集1400追加了READCLK命令1420和READTS命令1421而得到的,READTS命令1421相当于为了读取时间片而由处理器执行的特定的命令。
[补充]
本发明的一个形态的集成电路,具有处理器,该集成电路具有:循环检测部,检测上述处理器中循环处理的执行,该循环处理反复执行由一个以上的命令构成的循环;循环传递相关解析部,检测在上述循环处理中命令之间的相关跨执行次不同的两个循环的循环传递相关;以及电力控制部,上述循环传递相关解析部没有在由上述循环检测部检测到的循环处理中检测到循环传递相关的情况下,进行使由于执行上述循环处理而产生的电力消耗降低的节电控制。
本形态的集成电路,能够通过循环检测部检测循环处理,通过循环传递相关解析部判别循环处理是否用于忙碌等待。因此,不用与特定的命令序列(例如互锁用的命令序列)进行比较,即可检测忙碌等待用的循环。因此,能够容易检测由特定命令序列之外的命令序列构成的忙碌等待用的循环,在忙碌等待时能够进行节电控制。结果,能够检测更多种的忙碌等待的执行,降低由于忙碌等待的执行而浪费的电力。
这里,循环传递相关是指,在循环处理中,在第i次执行的循环的命令与第j次(j>i)执行的循环的命令之间产生相关关系。
具体而言,例如在以下情况下存在循环传递相关,该情况是:通过第j次的循环内的某个命令,从特定的变量(寄存器)中,将通过第i次的循环内的某个命令向特定的变量(寄存器)写入的值读出的情况。并且,在循环处理中存在循环传递相关的情况下,上述循环处理被判断为不是忙碌等待用的循环处理而是用于执行运算等的循环处理,因而不成为节电控制的对象。
在此,参照附图对存在循环传递相关的循环的例子和不存在循环传递相关的循环的例子进行说明。
首先,参照图11对存在循环传递相关的循环处理的例子进行说明。
在图11的命令序列2600中,在从2004地址到2010地址之间构成循环。
通过2004地址的ADD命令,将向R2寄存器加4得到的值输入R2寄存器。然后,通过2008地址的LDR命令,从R2寄存器所指的地址向R0寄存器读入值。然后,通过200c地址的CMP命令,将R0寄存器的值和预先存储有设定值的R1寄存器的值进行比较。在值一致的情况下,通过2010地址的BNE命令脱离循环。在值不一致的情况下,通过2010地址的BNE命令向2004地址分支。
在图11所示的命令序列2600构成的循环中,通过2004地址的ADD命令而被写入的寄存器(R2寄存器)的值,通过下一次的相同命令(2004地址的ADD命令)而被读出。因此,图11所示的命令序列2600构成的循环相当于这样的循环,即:通过第j次(j>i)的循环内的命令,从特定的寄存器中,将通过第i次的循环内的命令向特定的寄存器写入的值读出的循环。因此,在图11所示的命令序列2600构成的循环中,存在循环传递相关。循环传递相关所在的循环被判定为非忙碌等待用的循环,不成为节电控制的对象。
下面,参照图8对不存在循环传递相关的循环的例子进行说明。
在图8的命令序列2100中,在从1004地址到1010地址之间构成循环。
通过1008地址的LDR命令,从R2寄存器所指的地址向R0寄存器读入值。然后,通过100c地址的CMP命令,将R0寄存器的值和预先存储了值的R1寄存器的值进行比较。在值一致的情况下,通过1010地址的BNE命令脱离循环。即,由于分支不成立而循环处理结束。另一方面,在值不一致的情况下,通过1010地址的BNE命令向1004地址分支。即分支成立。
需要留意的是,图8所示的命令序列2100在后级循环中不读出在前级循环中写入的寄存器的值。在循环内被进行写入的寄存器只有R0寄存器,通过前级循环而被写入R0寄存器的值在后级循环中不被读取。因此,图8所示的命令序列2100构成的循环是这样的循环,即:通过第j次(j>i)的循环内的命令,不将通过第i次的循环内的命令向寄存器写入的特定的值读出的循环。因此,在图8所示的命令序列构成的循环中不存在循环传递相关。不存在循环传递相关的循环被判断为忙碌等待用的循环,成为节电控制的对象。
循环处理的检测例如可以在执行了循环所包含的命令之后进行,也可以在执行之前进行。另外,也可以从在命令高速缓冲器中存储的命令序列检测循环处理。
并且,循环传递相关的检测处理只要在循环检测处理之后,则既可以在执行循环所包含的命令之前进行,也可以在执行之后进行。
本发明的一个形态的控制方法,是具有处理器的计算机系统的控制方法,该控制方法包含以下步骤:循环检测步骤,检测上述处理器中循环处理的执行,该循环处理反复执行由一个以上的命令构成的循环;循环传递相关检测步骤,检测在上述循环处理中命令之间的相关跨执行次不同的两个循环的循环传递相关;以及电力控制步骤,上述循环传递相关解析步骤没有在由上述循环检测步骤检测到的循环处理中检测到循环传递相关的情况下,进行使由于执行上述循环处理而产生的电力消耗降低的节电控制。
本发明的一个形态的计算机系统,具有处理器,该计算机系统中具有:循环检测部,检测上述处理器中循环处理的执行,该循环处理反复执行由一个以上的命令构成的循环;循环传递相关解析部,检测上述循环处理中命令之间的相关跨执行次不同的两个循环的循环传递相关;以及电力控制部,上述循环传递相关解析部没有在由上述循环检测部检测到的循环处理中检测到循环传递相关的情况下,进行使由于执行上述循环处理而产生的电力消耗降低的节电控制。
本形态的控制方法及计算机系统分别实现与上述的一个形态的集成电路相同的效果。
能够使本发明的一个形态的集成电路构成为,还具有检测上述循环处理的执行结束的循环结束检测部,在进行节电控制的状态下,在上述循环结束检测部检测到上述循环处理的结束的情况下,上述电力控制部结束节电控制。
能够使本发明的一个形态的集成电路构成为,上述循环传递相关解析部,根据在上述循环处理中通过第一循环向变量写入的值被在上述第一循环之后执行的第二循环从上述变量读出这一情况,判定为存在循环传递相关。
能够使本发明的一个形态的集成电路构成为,上述循环检测部根据上述处理器中向在先地址分支的命令的执行,检测到上述处理器已成为循环执行状态。由此,当在处理器中执行程序时,能够根据分支命令的执行而容易地检测出循环处理。
能够使本发明的一个形态的集成电路构成为,还具有存储循环范围的循环范围存储部,上述循环检测部在检测到向在先地址分支的分支命令的情况下,向上述循环范围存储部输出循环的范围,并且,指示上述循环传递相关解析部进行相关关系解析,上述循环传递相关解析部针对在上述循环范围存储部中存储的循环的范围的命令序列,进行循环传递相关的检测处理。
能够使本发明的一个形态的集成电路构成为,根据向上述循环范围存储部中存储的循环范围外分支的分支命令的执行、或者位于上述循环范围的末尾的条件分支命令的执行结果是分支不成立,上述循环结束检测部检测到上述处理器中的循环处理的执行已结束。
能够使本发明的一个形态的集成电路构成为,上述循环范围存储部存储包括循环的开头地址和循环的末尾地址的信息。
能够使本发明的一个形态的集成电路构成为,上述处理器具有保存被取指的命令序列的命令序列保存部,上述循环传递相关解析部针对在上述命令序列保存部中保存的上述循环的范围的命令序列,进行循环传递相关的检测处理。
能够使本发明的一个形态的集成电路构成为,在上述命令序列保存部中存储的命令序列包括被预取指的命令。
能够使本发明的一个形态的集成电路构成为,在进行节电控制的情况下,上述电力控制部进行使向上述处理器供给的时钟的频率减少的控制,在结束节电控制的情况下,上述电力控制部进行使向上述处理器供给的时钟的频率增加的控制。通过减少时钟的频率,能够降低由于忙碌等待而产生的电力浪费。
能够使本发明的一个形态的集成电路构成为,在进行节电控制的情况下,上述电力控制部进行使向上述处理器供给的电力的电压降低的控制,在结束节电控制的情况下,上述电力控制部进行使向上述处理器供给的电力的电压增大的控制。通过降低电力的电压,能够降低由于忙碌等待而产生的电力浪费。
能够使本发明的一个形态的集成电路构成为,在进行节电控制的情况下,上述电力控制部进行使向上述处理器供给的电力的电压降低、并且使向上述处理器供给的时钟的频率减少的控制,在结束节电控制的情况下,上述电力控制部进行使向上述处理器供给的电力的电压增大、并且使向上述处理器供给的时钟的频率增加的控制。通过减小时钟的频率、并且降低电力的电压,能够降低由于忙碌等待而产生的电力浪费。
能够使本发明的一个形态的集成电路构成为,当在上述循环处理中一个命令的写入对象的变量和读出对象的变量相同的情况下,上述循环传递相关解析部判定为存在循环传递相关。
能够使本发明的一个形态的集成电路构成为,上述处理器具有多个执行单元,在进行节电控制的情况下,上述电力控制部进行使上述多个执行单元中的一部分执行单元停止的控制,在结束节电控制的情况下,上述电力控制部进行使停止的上述多个执行单元中的一部分执行单元再次开始执行的控制。通过使多个执行单元中的一部分执行单元停止,能够降低由于忙碌等待而产生的电力浪费。
能够使本发明的一个形态的集成电路构成为,上述处理器具有对分配给多个线程的每个线程的时间片进行管理的线程管理部,在进行节电控制的情况下,上述电力控制部对上述线程管理部进行指示,以减少对正在执行未检测到循环传递相关的循环处理的忙碌等待状态的线程分配的时间片,在结束节电控制的情况下,上述电力控制部指示上述线程管理部,以增加对上述线程分配的时间片。由此,通过减少对忙碌等待状态的线程分配的时间片,能够降低由于忙碌等待而产生的电力浪费。
能够使本发明的一个形态的集成电路构成为,在进行节电控制的情况下,上述电力控制部指示上述线程管理部以减少对忙碌等待状态的上述线程分配的时间片,并且进行使向上述处理器供给的时钟的频率减少的控制,在结束节电控制的情况下,上述电力控制部指示上述线程管理部以增加对上述线程分配的时间片,并且进行使向上述处理器供给的时钟的频率增加的控制。由此,能够降低由于忙碌等待而产生的电力浪费,并且能够降低处理器的电力消耗。
能够使本发明的一个形态的集成电路构成为,上述处理器具有多个执行单元,在进行节电控制的情况下,上述电力控制部指示上述线程管理部以减少对忙碌等待状态的上述线程分配的时间片,并且进行使上述多个执行单元中的一部分停止的控制,在结束节电控制的情况下,上述电力控制部指示上述线程管理部以增加对上述线程分配的时间片,并且进行使上述多个执行单元中的一部分的执行再次开始的控制。由此,能够降低由于忙碌等待而产生的电力浪费,并且能够降低处理器的电力消耗。
能够使本发明的一个形态的集成电路构成为,上述处理器具有多个执行单元,在进行节电控制的情况下,上述电力控制部指示上述线程管理部以减少对忙碌等待状态的线程分配的时间片,并且进行使向上述处理器供给的时钟的频率减少并使上述多个执行单元中的一部分停止的控制,在结束节电控制的情况下,上述电力控制部指示上述线程管理部以增加对上述线程分配的时间片,并且进行使向上述处理器供给的时钟的频率增加并使上述多个执行单元中的一部分的执行再次开始的控制。由此,能够降低由于忙碌等待而产生的电力浪费,并且能够降低处理器的电力消耗。
能够使本发明的一个形态的集成电路构成为,在进行节电控制的情况下,上述电力控制部指示上述线程管理部以减少对忙碌等待状态的线程分配的时间片,并且进行使向上述处理器供给的时钟的频率减少并使向上述处理器供给的电力的电压降低的控制,在结束节电控制的情况下,上述电力控制部指示上述线程管理部以增加对上述线程分配的时间片,并且进行使向上述处理器供给的时钟的频率增加并使向上述处理器供给的电力的电压增大的控制。由此,能够降低由于忙碌等待而产生的电力浪费,并且能够降低处理器的电力消耗。
能够使本发明的一个形态的集成电路构成为,在进行节电控制的情况下,上述电力控制部根据对忙碌等待状态的线程分配的时间片的减少量,使向上述处理器供给的时钟的频率减少。
能够使本发明的一个形态的集成电路构成为,在进行节电控制的情况下,上述电力控制部根据对忙碌等待状态的线程分配的时间片的减少量,使上述多个执行单元的运转个数减少。
本发明的其它形态的集成电路,具有处理器,该集成电路具有:第一监视部,监视处理器内的程序计数器中计数值是否正在按一定模式进行反复;第二监视部,监视上述处理器所连接的总线中与基于上述处理器的读出有关的地址有无变化;以及电力控制部,在由上述第一监视部检测到上述计数值正在按一定模式进行反复、而且由上述第二监视部检测到与基于上述处理器的读出有关的地址没有变化的情况下,进行使上述处理器的电力消耗降低的节电控制。
本发明的其它形态的控制方法,是具有处理器的计算机系统的控制方法,该控制方法包括以下步骤:第一监视步骤,监视处理器内的程序计数器中计数值是否正在按一定模式进行反复;第二监视步骤,监视上述处理器所连接的总线中与基于上述处理器的读出有关的地址有无变化;以及电力控制步骤,在上述第一监视步骤检测到上述计数值正在按一定模式进行反复、而且上述第二监视步骤检测到与基于上述处理器的读出有关的地址没有变化的情况下,进行使上述处理器的电力消耗降低的节电控制。
本发明的其它形态的计算机系统,具有处理器,该计算机系统具有:第一监视部,监视处理器内的程序计数器中计数值是否正在按一定模式进行反复;第二监视部,监视上述处理器所连接的总线中与基于上述处理器的读出有关的地址有无变化;以及电力控制部,在上述第一监视部检测到上述计数值正在按一定模式进行反复、而且上述第二监视部检测到与基于上述处理器的读出有关的地址没有变化的情况下,进行使上述处理器的电力消耗降低的节电控制。
根据其它形态的各个集成电路、控制方法、计算机系统,能够降低由于执行多种忙碌等待而浪费的电力。
能够使本发明的其它形态的集成电路构成为,在正在进行节电控制的情况下,若上述第一监视部检测到上述计数值变得不按一定模式进行反复,则上述电力控制部使上述节电控制结束。
工业实用性
本发明的集成电路具有处理器,并具有检测处理器是否正在执行忙碌等待的功能,和在忙碌等待的执行过程中进行节电控制的功能。因此,该集成电路能够安装应用于计算机系统中。
此外,作为能够应用本发明的计算机系统的例子,可以举出个人电脑、主机(通用大型计算机)、电视机、录像机、HDD记录器、移动电话、车载导航系统、固定电话、复印机、网络中继设备、带触摸面板的移动终端、游戏机等。
标号说明
1300    计算机系统
1301    处理器
1302    主存
1303    I/O器件
1304    电力供给器件
1305    总线
1306    电力
1307    时钟
1310    寄存器组
1311    程序计数器
1320    命令取指/解码单元
1330    发行单元
1340    命令序列保存部
1350    执行单元
1360    退出单元
1370    命令高速缓冲器
1380    数据高速缓冲器
1400    命令集
1500    寄存器集
1512    程序计数器
1513    条件标志寄存器
1701    循环检测部
1702    循环传递相关解析部
1703    第一电力控制部
1704    循环脱离检测部
1705    第二电力控制部
1900    循环范围存储部
2200    相关关系解析用缓冲器2200
2202    DST寄存器
2203    SRC寄存器
2700    相关关系解析用缓冲器
2800    计算机系统
2851    流相关检测电路
2853    预备检测电路
2855    命令缓冲器
2857    比较电路
2861    命令缓冲器
2871    简易循环传递相关检测电路
2900    计算机系统
2901    处理器
2910    寄存器组
2912    线程识别符寄存器
2913    时间片寄存器
2920    线程切换部
3013    第一电力控制部
3015    第二电力控制部

Claims (27)

1.一种具备处理器的集成电路,具备:
循环检测部,检测上述处理器中循环处理的执行,该循环处理反复执行由一个以上的命令构成的循环;
循环传递相关解析部,在上述循环处理中检测命令之间的相关跨执行次不同的两个循环的循环传递相关;以及
电力控制部,当上述循环传递相关解析部没有在上述循环检测部检测到的循环处理中检测到循环传递相关的情况下,进行节电控制,该节电控制使由于执行上述循环处理而产生的电力消耗降低。
2.根据权利要求1所述的集成电路,
该集成电路还具备循环结束检测部,该循环结束检测部检测循环处理的执行结束;
在进行节电控制的状态下,在上述循环结束检测部检测到上述循环处理的结束的情况下,上述电力控制部使节电控制结束。
3.根据权利要求2所述的集成电路,
上述循环传递相关解析部,根据在上述循环处理中在第一循环中对变量写入的值在上述第一循环之后执行的第二循环中从上述变量被读出这一情况,判定为存在循环传递相关。
4.根据权利要求3所述的集成电路,
上述循环检测部,根据上述处理器中向在先地址分支的命令已被执行这一情况,检测到上述处理器已成为循环执行状态。
5.根据权利要求4所述的集成电路,
该集成电路还具备存储循环的范围的循环范围存储部;
上述循环检测部在检测到向在先地址分支的分支命令的情况下,向上述循环范围存储部输出循环的范围,并且将相关关系解析指示给上述循环传递相关解析部;
上述循环传递相关解析部针对在上述循环范围存储部中存储的循环的范围的命令序列,进行循环传递相关的检测处理。
6.根据权利要求5所述的集成电路,
上述循环结束检测部,根据向上述循环范围存储部中存储的循环范围外分支的分支命令已被执行这一情况,或者根据位于上述循环范围的末尾的条件分支命令的执行结果是分支不成立这一情况,检测到上述处理器的循环处理的执行已结束。
7.根据权利要求5所述的集成电路,
上述循环范围存储部存储包括循环的开头地址和循环的末尾地址的信息。
8.根据权利要求5所述的集成电路,
上述处理器具备命令序列保存部,该命令序列保存部保存被取指的命令序列;
上述循环传递相关解析部针对在上述命令序列保存部中保存的上述循环的范围的命令序列,进行循环传递相关的检测处理。
9.根据权利要求8所述的集成电路,
在上述命令序列保存部中存储的命令序列包括被预取指的命令。
10.根据权利要求2所述的集成电路,
在进行节电控制的情况下,上述电力控制部进行使向上述处理器供给的时钟的频率减少的控制,在结束节电控制的情况下,上述电力控制部进行使向上述处理器供给的时钟的频率增加的控制。
11.根据权利要求2所述的集成电路,
在进行节电控制的情况下,上述电力控制部进行使向上述处理器供给的电力的电压降低的控制,在结束节电控制的情况下,上述电力控制部进行使向上述处理器供给的电力的电压增大的控制。
12.根据权利要求2所述的集成电路,
在进行节电控制的情况下,上述电力控制部进行使向上述处理器供给的电力的电压降低并使向上述处理器供给的时钟的频率减少的控制,在结束节电控制的情况下,上述电力控制部进行使向上述处理器供给的电力的电压增大并使向上述处理器供给的时钟的频率增加的控制。
13.根据权利要求1所述的集成电路,
当在上述循环处理中一个命令的写入对象的变量和读出对象的变量相同的情况下,上述循环传递相关解析部判定为存在循环传递相关。
14.根据权利要求2所述的集成电路,
上述处理器具备多个执行单元;
在进行节电控制的情况下,上述电力控制部进行使上述多个执行单元中的一部分执行单元停止的控制,在结束节电控制的情况下,上述电力控制部进行控制以使已停止的上述多个执行单元中的一部分执行单元的执行再次开始。
15.根据权利要求2所述的集成电路,
上述处理器具备线程管理部,该线程管理部对分配给多个线程中的各个线程的时间片进行管理;
在进行节电控制的情况下,上述电力控制部指示上述线程管理部减少对正在执行未检测到循环传递相关的循环处理的、处于忙碌等待状态的线程分配的时间片;
在结束节电控制的情况下,上述电力控制部指示上述线程管理部增加对上述线程分配的时间片。
16.根据权利要求15所述的集成电路,
在进行节电控制的情况下,上述电力控制部指示上述线程管理部减少对忙碌等待状态的线程分配的时间片,并且进行使向上述处理器供给的时钟的频率减少的控制;
在结束节电控制的情况下,上述电力控制部指示上述线程管理部增加对上述线程分配的时间片,并且进行使向上述处理器供给的时钟的频率增加的控制。
17.根据权利要求15所述的集成电路,
上述处理器具备多个执行单元,
在进行节电控制的情况下,上述电力控制部指示上述线程管理部减少对忙碌等待状态的线程分配的时间片,并且进行使上述多个执行单元中的一部分停止的控制;
在结束节电控制的情况下,上述电力控制部指示上述线程管理部增加对上述线程分配的时间片,并且进行控制以使上述多个执行单元中的一部分的执行再次开始。
18.根据权利要求15所述的集成电路,
上述处理器具备多个执行单元;
在进行节电控制的情况下,上述电力控制部指示上述线程管理部减少对忙碌等待状态的线程分配的时间片,并且进行控制以使向上述处理器供给的时钟的频率减少且使上述多个执行单元中的一部分停止;
在结束节电控制的情况下,上述电力控制部指示上述线程管理部增加对上述线程分配的时间片,并且进行控制以使向上述处理器供给的时钟的频率增加且使上述多个执行单元中的一部分的执行再次开始。
19.根据权利要求15所述的集成电路,
在进行节电控制的情况下,上述电力控制部指示上述线程管理部减少对忙碌等待状态的线程分配的时间片,并且进行控制以使向上述处理器供给的时钟的频率减少并使向上述处理器供给的电力的电压降低;
在结束节电控制的情况下,上述电力控制部指示上述线程管理部增加对上述线程分配的时间片,并且进行控制以使向上述处理器供给的时钟的频率增大并使向上述处理器供给的电力的电压增大。
20.根据权利要求16所述的集成电路,
在进行节电控制的情况下,上述电力控制部根据对忙碌等待状态的线程分配的时间片的减少量,使向上述处理器供给的时钟的频率减少。
21.根据权利要求17所述的集成电路,
在进行节电控制的情况下,上述电力控制部根据对忙碌等待状态的线程分配的时间片的减少量,使上述多个执行单元的运转个数减少。
22.一种计算机系统的控制方法,该计算机系统具备处理器,
该控制方法包括以下步骤:
循环检测步骤,检测上述处理器中循环处理的执行,该循环处理反复执行由一个以上的命令构成的循环;
循环传递相关检测步骤,在上述循环处理中检测命令之间的相关跨执行次不同的两个循环的循环传递相关;以及
电力控制步骤,当上述循环传递相关解析步骤没有在上述循环检测步骤检测到的循环处理中检测到循环传递相关的情况下,进行节电控制,该节电控制使由于执行上述循环处理而产生的电力消耗降低。
23.一种具备处理器的计算机系统,具备:
循环检测部,检测上述处理器中循环处理的执行,该循环处理反复执行由一个以上的命令构成的循环;
循环传递相关解析部,在上述循环处理中检测命令之间的相关跨执行次不同的两个循环的循环传递相关;以及
电力控制部,当上述循环传递相关解析部没有在上述循环检测部检测到的循环处理中检测到循环传递相关的情况下,进行节电控制,该节电控制使由于执行上述循环处理而产生的电力消耗降低。
24.一种具备处理器的集成电路,具备:
第一监视部,监视在处理器内的程序计数器中计数值是否正在按一定模式进行反复;
第二监视部,监视在上述处理器所连接的总线中与上述处理器进行的读出有关的地址有无变化;以及
电力控制部,在上述第一监视部检测到上述计数值正在按一定模式进行反复、并且上述第二监视部检测到与上述处理器进行的读出有关的地址没有变化的情况下,进行节电控制,该节电控制使上述处理器的电力消耗降低。
25.根据权利要求24所述的集成电路,
在正在进行节电控制的情况下,若上述第一监视部检测到上述计数值变得不按一定模式进行反复,则上述电力控制部使上述节电控制结束。
26.一种计算机系统的控制方法,该计算机系统具备处理器,
该控制方法包括以下步骤:
第一监视步骤,监视在处理器内的程序计数器中计数值是否正在按一定模式进行反复;
第二监视步骤,监视在上述处理器所连接的总线中与上述处理器进行的读出有关的地址有无变化;以及
电力控制步骤,在上述第一监视步骤检测到上述计数值正在按一定模式进行反复、并且上述第二监视步骤检测到与上述处理器进行的读出有关的地址没有变化的情况下,进行节电控制,该节电控制使上述处理器的电力消耗降低。
27.一种具备处理器的计算机系统,该计算机系统具备:
第一监视部,监视在处理器内的程序计数器中计数值是否正在按一定模式进行反复;
第二监视部,监视在上述处理器所连接的总线中与上述处理器进行的读出有关的地址有无变化;以及
电力控制部,在上述第一监视部检测到上述计数值正在按一定模式进行反复、并且上述第二监视部检测到与上述处理器进行的读出有关的地址没有变化的情况下,进行节电控制,该节电控制使上述处理器的电力消耗降低。
CN201180003832.3A 2010-06-25 2011-06-07 集成电路、计算机系统、控制方法 Expired - Fee Related CN102576318B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010-144799 2010-06-25
JP2010144799 2010-06-25
PCT/JP2011/003185 WO2011161884A1 (ja) 2010-06-25 2011-06-07 集積回路、コンピュータシステム、制御方法

Publications (2)

Publication Number Publication Date
CN102576318A true CN102576318A (zh) 2012-07-11
CN102576318B CN102576318B (zh) 2016-03-30

Family

ID=45371091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180003832.3A Expired - Fee Related CN102576318B (zh) 2010-06-25 2011-06-07 集成电路、计算机系统、控制方法

Country Status (4)

Country Link
US (1) US8918664B2 (zh)
JP (1) JP5853216B2 (zh)
CN (1) CN102576318B (zh)
WO (1) WO2011161884A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104969179A (zh) * 2013-03-15 2015-10-07 英特尔公司 用于将具有循环承载的依赖的标量计算机程序循环向量化的方法和系统
CN106104494A (zh) * 2014-03-14 2016-11-09 株式会社电装 电子控制装置
CN106897247A (zh) * 2015-12-17 2017-06-27 三星电子株式会社 计算系统及控制计算系统的方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9459871B2 (en) * 2012-12-31 2016-10-04 Intel Corporation System of improved loop detection and execution
US9087570B2 (en) 2013-01-17 2015-07-21 Micron Technology, Inc. Apparatuses and methods for controlling a clock signal provided to a clock tree
GB2514618B (en) * 2013-05-31 2020-11-11 Advanced Risc Mach Ltd Data processing systems
US10564949B2 (en) * 2013-09-20 2020-02-18 Reservoir Labs, Inc. System and method for generation of event driven, tuple-space based programs
US11789769B2 (en) 2013-09-20 2023-10-17 Qualcomm Incorporated System and method for generation of event driven, tuple-space based programs
US9524011B2 (en) 2014-04-11 2016-12-20 Apple Inc. Instruction loop buffer with tiered power savings
US9952863B1 (en) 2015-09-01 2018-04-24 Apple Inc. Program counter capturing
US10579125B2 (en) * 2016-02-27 2020-03-03 Intel Corporation Processors, methods, and systems to adjust maximum clock frequencies based on instruction type
US11194573B1 (en) * 2018-02-09 2021-12-07 Rigetti & Co, Llc Streaming execution for a quantum processing system
US11132233B2 (en) * 2018-05-07 2021-09-28 Micron Technology, Inc. Thread priority management in a multi-threaded, self-scheduling processor
US11296999B2 (en) * 2018-06-26 2022-04-05 Telefonaktiebolaget Lm Ericsson (Publ) Sliding window based non-busy looping mode in cloud computing
JP7278632B2 (ja) * 2021-05-19 2023-05-22 株式会社ユニバーサルエンターテインメント 遊技機
JP7125525B2 (ja) * 2021-05-19 2022-08-24 株式会社ユニバーサルエンターテインメント 遊技機

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0869411A (ja) * 1994-08-30 1996-03-12 Toshiba Corp 半導体装置
US5809326A (en) * 1995-09-25 1998-09-15 Kabushiki Kaisha Toshiba Signal processor and method of operating a signal processor
US7721127B2 (en) * 2006-03-28 2010-05-18 Mips Technologies, Inc. Multithreaded dynamic voltage-frequency scaling microprocessor

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2912713B2 (ja) 1991-01-30 1999-06-28 エヌティエヌ株式会社 高温耐久性グリース組成物
JPH09114660A (ja) * 1995-10-18 1997-05-02 Hitachi Ltd データ処理装置
WO2003040948A1 (fr) 2001-11-08 2003-05-15 Fujitsu Limited Ordinateur et procede de commande
US7873820B2 (en) * 2005-11-15 2011-01-18 Mips Technologies, Inc. Processor utilizing a loop buffer to reduce power consumption
JP5043560B2 (ja) 2007-08-24 2012-10-10 パナソニック株式会社 プログラム実行制御装置
JP2009069921A (ja) * 2007-09-11 2009-04-02 Hitachi Ltd マルチプロセッサシステム
US9772851B2 (en) * 2007-10-25 2017-09-26 International Business Machines Corporation Retrieving instructions of a single branch, backwards short loop from a local loop buffer or virtual loop buffer
JP2009146243A (ja) * 2007-12-17 2009-07-02 Hitachi Ltd 基板バイアス制御を活用する電力性能最適化コンパイラ及びプロセッサシステム
JP2010066892A (ja) 2008-09-09 2010-03-25 Renesas Technology Corp データプロセッサ及びデータ処理システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0869411A (ja) * 1994-08-30 1996-03-12 Toshiba Corp 半導体装置
US5809326A (en) * 1995-09-25 1998-09-15 Kabushiki Kaisha Toshiba Signal processor and method of operating a signal processor
US7721127B2 (en) * 2006-03-28 2010-05-18 Mips Technologies, Inc. Multithreaded dynamic voltage-frequency scaling microprocessor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TONG LI等: "Spin Detection Hardware for Improved Management of Multithreaded Systems", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104969179A (zh) * 2013-03-15 2015-10-07 英特尔公司 用于将具有循环承载的依赖的标量计算机程序循环向量化的方法和系统
CN104969179B (zh) * 2013-03-15 2019-07-16 英特尔公司 用于将具有循环承载的依赖的标量计算机程序循环向量化的方法和系统
US10402177B2 (en) 2013-03-15 2019-09-03 Intel Corporation Methods and systems to vectorize scalar computer program loops having loop-carried dependences
CN106104494A (zh) * 2014-03-14 2016-11-09 株式会社电装 电子控制装置
CN106104494B (zh) * 2014-03-14 2018-07-06 株式会社电装 电子控制装置
CN106897247A (zh) * 2015-12-17 2017-06-27 三星电子株式会社 计算系统及控制计算系统的方法
US11099750B2 (en) 2015-12-17 2021-08-24 Samsung Electronics Co., Ltd. Computing system with communication mechanism
CN106897247B (zh) * 2015-12-17 2022-12-06 三星电子株式会社 计算系统及控制计算系统的方法

Also Published As

Publication number Publication date
US20120179924A1 (en) 2012-07-12
JPWO2011161884A1 (ja) 2013-08-19
JP5853216B2 (ja) 2016-02-09
CN102576318B (zh) 2016-03-30
US8918664B2 (en) 2014-12-23
WO2011161884A1 (ja) 2011-12-29

Similar Documents

Publication Publication Date Title
CN102576318A (zh) 集成电路、计算机系统、控制方法
US10078357B2 (en) Power gating functional units of a processor
Attia et al. Dynamic power management techniques in multi-core architectures: A survey study
US6694425B1 (en) Selective flush of shared and other pipeline stages in a multithread processor
CN100527111C (zh) 一种片上dma电路及其实现方法
CN105144082B (zh) 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择
US20130007413A1 (en) System and Apparatus For Consolidated Dynamic Frequency/Voltage Control
CN109670199B (zh) 一种高效的电网拓扑分析方法及装置
CN101366004A (zh) 用于带有专用线程管理的多核处理的方法和设备
US9519479B2 (en) Techniques for increasing vector processing utilization and efficiency through vector lane predication prediction
JP2000047872A (ja) 低消費電力動作機能を備えたマイクロプロセッサ
CN1540498A (zh) 用于在同步多线程处理器中改变流水线长度的方法和电路
US7246219B2 (en) Methods and apparatus to control functional blocks within a processor
US20160062770A1 (en) Multiple clustered very long instruction word processing core
US20140181561A1 (en) Power throttling queue
Balladini et al. Impact of parallel programming models and cpus clock frequency on energy consumption of hpc systems
US8151097B2 (en) Multi-threaded system with branch
CN102495726B (zh) 机会多线程方法及处理器
US7603673B2 (en) Method and system for reducing context switch times
CN101923386B (zh) 一种降低cpu功耗的方法及一种低功耗cpu
CN101458665A (zh) 二级高速缓存及动能切换存取的方法
KR20090055765A (ko) 멀티미디어 데이터 처리를 위한 다중 simd 프로세서 및이를 이용한 연산 방법
Hautala et al. Programmable 28nm coprocessor for HEVC/H. 265 in-loop filters
US9043507B2 (en) Information processing system
CN102253708A (zh) 一种微处理器硬件多线程动态变频控制装置及其应用方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160125

Address after: Osaka Japan

Applicant after: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT Co.,Ltd.

Address before: Osaka Japan

Applicant before: Matsushita Electric Industrial Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160330

Termination date: 20170607