CN1612088A - 处理器系统、指令序列优化装置和指令序列优化程序 - Google Patents

处理器系统、指令序列优化装置和指令序列优化程序 Download PDF

Info

Publication number
CN1612088A
CN1612088A CNA2004100871066A CN200410087106A CN1612088A CN 1612088 A CN1612088 A CN 1612088A CN A2004100871066 A CNA2004100871066 A CN A2004100871066A CN 200410087106 A CN200410087106 A CN 200410087106A CN 1612088 A CN1612088 A CN 1612088A
Authority
CN
China
Prior art keywords
processor
instruction
voltage
clock
frequency
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
CNA2004100871066A
Other languages
English (en)
Other versions
CN1322397C (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.)
Socionext Inc
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 CN1612088A publication Critical patent/CN1612088A/zh
Application granted granted Critical
Publication of CN1322397C publication Critical patent/CN1322397C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)

Abstract

为了减小一个包括多个处理器的处理器系统的功耗,而不使处理能力降级,一个CPU检测加到指令代码的方式设置信息,并且分别向一个时钟控制部分和一个电源电压控制部分输出一个时钟控制信号和一个电源电压控制信号。当多个处理引擎并行执行一条指令时,供给具有比预定频率低的频率的时钟信号和比预定电压低的电源电压。结果,使功耗减小,并且通过并行执行而保持处理能力。

Description

处理器系统、指令序列优化装置和指令序列优化程序
技术领域
本发明涉及一种用于减小处理器系统的功耗的技术,这种处理器系统包括多个相同类型或不同类型的处理器,例如称为中央处理单元(CPU)的处理单元、一个硬件引擎(HWE)、一个协处理器或一个数字信号处理器(DSP),并且能够执行并行处理。
背景技术
已经有一种已知技术,用于当CPU处理中的负载轻时,通过减小时钟信号的频率,减小CPU的功耗(例如,日本未审专利出版物No.9-34599)。还已知一种技术,用于当在一个包括多个单元例如CPU和一个协处理器的处理器系统中,解码指令是“无操作”时,通过关断一个关联单元的电源,减小整个系统或来自整个系统的功耗和热释放(例如,日本未审专利出版物No.2000-112756)。
还已知一种技术,用于按照处理负载或操作环境的设置,通过控制同时操作的CPU数,提高处理能力或减小功耗(例如,日本未审专利出版物No.9-138716)。
上述仅减小时钟信号的频率的技术在处理负载轻时适用,但是当要求高处理能力时不适用。因此,并不总能大大降低整个系统的功耗。
另外,应用关断一个不执行处理的单元的电源的技术,并不减小处理本身中的功耗,并且因而也不实现功耗的较大减小。
而且,控制同时操作的CPU数的技术在要求高处理能力时不能减小功耗,所以并不同时实现处理能力的提高和功耗的减小。
发明内容
因此本发明的一个目的是大大减小特别是包括多个处理器的处理系统的功耗,同时能够既保持处理能力也减小功耗。
为了实现这个目的,第一处理器系统是包括多个处理器的处理器系统。该处理器系统包括:分配控制装置,用于读出由各自处理器所执行的指令,并且控制对处理器的指令分配;时钟控制装置,用于按照处理器根据分配所执行的指令,控制供给各自处理器的时钟信号的频率;和电压控制装置,用于按照时钟控制装置对时钟信号的频率的控制,至少控制供给各自处理器的电源电压,或供给构成各自处理器的晶体管的衬底节点的衬底电压。当分配控制装置使多个处理器并行执行指令时,时钟控制装置和电压控制装置分别供给各具有比预定频率低的频率的时钟信号,和比预定电压低的电源电压,或用于提供比预定阈值电压高的阈值电压的衬底电压。
在这种系统中,供给具有比预定频率低的频率的时钟信号,以便增大电路中延迟的容限。因此,供给低于预定电压的电源电压,或用于提供比预定阈值电压高的阈值电压的衬底电压,用于操作。结果,使功耗减小。另外,由多个处理器并行执行指令,因而保证保持处理能力。
第二处理器系统是第一处理器系统,其中分配控制装置、时钟控制装置和电压控制装置根据指令中包括的控制信息,分别控制对处理器的分配,时钟信号的频率,和电源电压或衬底电压。
第三处理器系统是第二处理器系统,其中控制信息指示对处理器的分配、时钟信号的频率和电源电压或衬底电压的多个组合中的一个。
在这些系统中,根据指令中包括的控制信息,控制对处理器的分配和其他,并且例如不必提供一个用于分配的指令分析电路。结果,以小电路规模使功耗减小。
第四处理器系统是第一处理器系统,并且还包括:指令分析装置,用于分析指令是否可由多个处理器并行执行,其中分配控制装置、时钟控制装置和电压控制装置根据指令分析装置的分析结果,控制对处理器的分配、时钟信号的频率和电源电压或衬底电压。
第五处理器系统是第四处理器系统,其中指令分析装置分析按照指令执行的过程是否为一个具有重负载的过程。
第六处理器系统是第五处理器系统,其中具有重负载的过程包括一个执行预定次数或更多次数的循环过程。
在这些系统中,根据指令的分析确定对处理器的分配和其他。因此,即使在不包括特别指示对处理器的分配和其他的信息的这样指令代码的指令情况下,也控制分配和其他,以便减小功耗,并且高速执行大量循环过程。为了容易地减小功耗或增大处理速度,例如,一名人员如程序开发人员只需指定功耗或处理能力,而不考虑时钟信号的频率。
当供分析所参考的指令数增大时,甚至能并行处理稍微复杂的重复过程,因而进一步保证容易地减小功耗。然而,指令数的增大导致用于分析的电路规模的增大。因此,例如,需要按照处理器系统要求的处理能力和功耗,确定所分析的指令数。分配给一个处理器的指令数不限于一个。如果一个过程的指令序列可由一个或多个处理器高效率地执行,这样指令序列可以作为一个单元来分配。
第七处理器系统是第二处理器系统,其中多个处理器包含一个包括关于衬底电压具有第一阈值电压的晶体管的处理器,和一个包括关于衬底电压具有第二阈值电压的晶体管的处理器,第二阈值电压比第一阈值电压高,并且分配控制装置、时钟控制装置和电压控制装置根据指令中包括的控制信息和处理器中包括的晶体管的阈值电压,分别控制对处理器的分配、时钟信号的频率和电源电压或衬底电压。
第八处理器系统是第四处理器系统,其中多个处理器包含一个包括关于衬底电压具有第一阈值电压的晶体管的处理器,和一个包括关于衬底电压具有第二阈值电压的晶体管的处理器,第二阈值电压比第一阈值电压高,并且分配控制装置、时钟控制装置和电压控制装置根据指令分析装置的分析结果和处理器中包括的晶体管的阈值电压,分别控制对处理器的分配、时钟信号的频率和电源电压或衬底电压。
在这些系统中,包括一个具有低阈值电压的晶体管的处理器的操作保证保持处理能力。另外,包括一个具有高阈值电压的晶体管的处理器的操作减小有效泄漏电流,并且从而进一步容易地减小功耗。
第九处理器系统是第一处理器系统,其中对一个分配控制装置不对其分配执行指令的处理器,电压控制装置停止供给电源电压。
在这个系统中,在不操作的处理器中不出现泄漏电流,因而进一步减小功耗。
第十处理器系统是第一处理器系统,并且还包括故障信息保持装置,用于保持指示各处理器是否正常操作的信息,其中分配控制装置仅把执行指令分配给正常操作的处理器。
第十一处理器系统是第十处理器系统,并且还包括故障检测装置,用于使各处理器执行测试操作,以确定处理器是否正常操作。
第十二处理器系统是第十一处理器系统,其中故障检测装置使各处理器执行一个测试程序,以根据执行结果,确定各处理器是否正常操作。
在这些系统中,对没有故障的处理器控制时钟频率和电源电压,因而保证保持处理能力并且减小功耗。
第一指令序列优化装置是一个用于使一个包括多个处理器的处理器系统所执行的指令序列优化的指令序列优化装置。该装置包括:指令分析装置,用于分析指令序列中包括的指令是否可由各自处理器执行;和控制信息添加装置,用于根据指令分析装置的分析结果及指示功耗和处理能力的信息,对指令序列加上控制信息,控制信息指示对处理器的分配、时钟信号的频率和电源电压或衬底电压。
第一指令序列优化程序是一个用于使一个包括多个处理器的处理器系统所执行的指令序列优化的指令序列优化程序。该程序使一台计算机执行:一个指令分析步骤,用于分析指令序列中包括的指令是否可由多个处理器执行;和一个控制信息添加步骤,用于根据指令分析步骤中得到的分析结果及指示功耗和处理能力的信息,对指令序列加上控制信息,控制信息指示对处理器的分配、时钟信号的频率和电源电压或衬底电压。
而后,如第二处理器系统所述,用一个小电路刻度控制对处理器的分配。另外,容易地产生一个可由一个能使其功耗减小的处理器系统所执行的指令序列。
第二指令序列优化装置是第一指令序列优化装置,其中控制信息添加装置用多个处理器并行执行的指令来代替一个处理器所执行的指令。
第二指令序列优化程序是第一指令序列优化程序,其中在控制信息添加步骤中,由一个处理器所执行的指令用多个处理器并行执行的指令来代替。
于是,容易地由多个处理器并行执行处理。
附图说明
图1是表示根据实施例1的处理器系统的主要部分的配置的方块图。
图2表示指令代码的一例。
图3表示加到指令代码的时钟控制标志的一例。
图4是表示根据实施例1的时钟控制部分106的具体配置的方块图。
图5是表示实施例1的处理器系统的操作的流程图。
图6表示实施例1的处理器系统的操作状态。
图7是表示根据实施例2的指令序列优化装置的配置的方块图。
图8A和图8B表示在实施例2的指令序列优化装置中,处理器的指令分配关于时钟频率和执行周期的关系的例子。
图9是表示实施例2的指令序列优化装置的操作的流程图。
图10是表示根据实施例2的一个变更例子的指令序列优化装置的配置的方块图。
图11是表示实施例2的变更例子的指令序列优化装置的操作的流程图。
图12是表示实施例2的另一个变更例子的指令序列优化装置的操作的流程图。
图13A至13E表示执行指令的顺序关于时钟频率和执行周期的关系的例子。
图14是表示根据实施例3的处理器系统的主要部分的配置的方块图。
图15是表示实施例3的处理器系统的操作的流程图。
图16是表示根据实施例3的一个变更例子的处理器系统的主要部分的配置的方块图。
图17是表示根据实施例3的一个变更例子的处理器系统的操作的流程图。
图18是表示根据实施例4的处理器系统的主要部分的配置的方块图。
图19是表示实施例4的处理器系统的操作的流程图。
图20是表示根据实施例5的指令序列优化装置的配置的方块图。
图21是表示实施例5的指令序列优化装置的操作的流程图。
图22是表示根据实施例6的处理器系统的主要部分的配置的方块图。
图23是表示根据实施例6的电源电压控制部分701的具体配置的方块图。
图24是表示根据实施例6的一个变更例子的处理器系统的主要部分的配置的方块图。
图25是表示根据实施例6的变更例子的电源电压控制部分701的具体配置的方块图。
图26是表示根据实施例7的处理器系统的主要部分的配置的方块图。
图27是表示根据实施例8的处理器系统的主要部分的配置的方块图。
图28是表示根据实施例9的处理器系统的主要部分的配置的方块图。
图29是表示根据实施例10的处理器系统的主要部分的配置的方块图。
图30是表示实施例10中的操作方式、对处理器的分配、电源电压和时钟频率的组合的表。
图31是表示根据实施例10的时钟控制部分916的具体配置的方块图。
图32表示根据实施例10的频率控制寄存器106c的配置。
图33是表示根据实施例10的电源电压控制部分917的具体配置的方块图。
图34表示根据实施例10的电源电压控制寄存器701a的配置。
图35是表示根据实施例11的指令序列优化装置的操作的流程图。
图36是表示根据实施例12的处理器系统的操作的流程图。
图37是表示根据实施例13的处理器系统的主要部分的配置的方块图。
图38是表示根据实施例13的电源电压控制部分927的具体配置的方块图。
图39表示根据实施例13的电源电压控制寄存器701a的配置。
图40是表示实施例13中的操作方式、对处理器的分配、电源电压和时钟频率的组合的表。
图41是表示根据实施例14的处理器系统的主要部分的配置的方块图。
图42是表示根据实施例14的时钟控制部分936的具体配置的方块图。
图43表示根据实施例14的频率控制寄存器106c的配置。
图44是表示根据实施例15的处理器系统的主要部分的配置的方块图。
图45表示根据实施例15的故障寄存器941的配置。
具体实施方式
以下,将参考附图描述本发明的实施例。
(例如,本发明的概要和功耗与时钟频率之间的关系)
首先,将描述一种与根据本发明使功耗减小的机制有关的功耗、时钟频率和其他方面之间的关系。
(功耗与时钟频率和电源电压的关系)
如果忽略泄漏电流,一个CMOS晶体管电路的功耗关于时钟频率和电源电压一般具有以下关系:
P ∝ K×C×Vdd2×f                             (1)
其中:  P:功耗
        K:晶体管的转换概率
        C:受驱动的负载容量
        Vdd:电源电压
        f:时钟频率(晶体管的工作频率)
如以上表达式所示,如果使电源电压或时钟频率减小,功耗减小。具体地,在一个给定周期期间,如果在一个时钟频率下执行循环数大于一个过程(由过程和数据的详细的组合所确定的过程)所必需的执行循环数,因为给定过程所必需的执行循环数恒定,所以执行晶体管的不必要触发(ON/OFF转换)。鉴于此,如果使时钟频率减小,以减小给定周期之内的执行循环数,则使不必要触发操作数减小,并且从而使功耗减小。
另外,时钟频率的减小增大电路延迟的容限,所以如下所述允许电源电压减小。因此,使功耗(如上所述,它与电源电压的平方成比例)进一步减小。当在两个处理器之间分布一个过程,并且并行执行这些分布过程时,如果时钟频率减小到1/2,也使电源电压减小,并且处理能力相同。结果,使功耗减小。
(电路的延迟时间与电源电压和晶体管的阈值电压的关系,以及泄漏电流与阈值电压之间的关系)
电路的延迟时间(门延迟时间)关于电源电压和晶体管的阈值电压具有以下关系:
td ∝ Vdd×C/(Vdd-Vt)2                           (2)
其中:  td:电路的延迟时间
        C:受驱动的负载容量
        Vdd:电源电压
        Vt:晶体管的阈值电压
假定受驱动的负载容量恒定,延迟时间由电源电压和阈值电压确定。具体地,例如,在阈值电压是0.4V的情况下,假定用2.5V电源电压的延迟时间是td1,以及用1.75V电源电压的延迟时间是td2,则建立关系td2/td1≈1.69。如果电源电压从2.5V减小到1.75V,延迟时间增大约1.69倍。在f的时钟频率下用2.5V的电源电压正常操作的电路,只要时钟频率约是f/1.69≈0.59×f或更低,即使用减小的1.75V电源电压也可操作。如果电路在约0.59×f的时钟频率下操作,允许电源电压减小到低达1.75V。因此,如表达式(1)所示,如果时钟频率减小,不仅通过减小时钟频率本身,而且通过减小电源电压,使功耗减小。
如果通过减小时钟频率使电路延迟的容限增大,如上所述使电源电压减小。类似地,如果阈值电压增大,泄漏电流减小。也就是,泄漏电流和阈值具有以下关系:
Ileak ∝ exp{-Vt/(S×ln10)}                        (3)
其中:  Ileak:泄漏电流
        S:S因子
具体地,如果阈值电压用2.5V电源电压从0.3V增大到0.6V,根据公式(2)使延迟时间增大1.34倍(如果时钟频率是0.75×f或较低,电路可操作)。然而,如果S因子是100mV,泄漏电流减到约27%。因此,由于泄漏电流的减小,时钟频率的减小也实现功耗的减小。
具体地,应用最近半导体工艺中电路的小型化,通过在半导体芯片中结合大容量存储器,使阈值电压减小(缩放比例),并且使电路规模增大,例如,导致泄漏电流的增大趋于越来越显著。另一方面,如果减小时钟频率,以允许增大延迟时间,例如通过控制衬底电压以便增大阈值电压,使功耗减小。
如上所述这样的阈值电压例如可以通过设置杂质浓度而静态地设置。另一方面,阈值电压例如还可以通过控制半导体衬底的电压,即通过对一个衬底节点(如果设置,一个阱)和晶体管的一个源节点施加反向偏置电压而动态地设置。
根据本发明,利用上述功耗与时钟频率、电源电压和阈值电压的关系,以便将指令分配给执行各自指令的多个处理器,并且按照处理器的处理(执行指令的处理时间),例如控制供给各处理器的时钟频率。这样能够使功耗大大减小而不使总处理能力恶化。
以下,将描述本发明的具体实施例。
(实施例1)
如实施例1,将描述一个例子,其中在一个由半导体集成电路构成的处理器系统中,根据加到指令的标志,执行对各自模块(功能块)例如CPU和硬件引擎(HWE)的指令分配,和时钟频率的控制。
图1是表示一个处理器系统的主要部分的配置的方块图。该处理器系统包括:一个存储部分100;一个标志检测器101;一个指令分配控制部分102;一个CPU103;一个HWE104;一个SRAM105;一个时钟控制部分106;和一条总线107。(标志检测器101和指令分配控制部分102构成一个分配控制装置,并且标志检测器101和时钟控制部分106构成一个时钟控制装置。)
存储部分100存储待执行的指令的指令代码,并且例如由一个ROM构成,其中预先存储指令代码,或由一个RAM构成,其中装入存储在硬盘上的指令代码。指令代码包含指示与CPU103和HWE104的时钟频率有关的操作方式的信息。具体地,如图2所示,例如,构成指令代码,以便对表示指令细节的指令代码的本体,加上分配控制标志,指示CPU103和HWE104中的哪一个执行指令,和时钟控制标志,指示用于操作CPU103和HWE104的时钟信号的频率。更具体地,如图3所示,例如,在时钟控制标志中,两个最高有效位指示供给CPU103的时钟信号的频率,并且两个最低有效位指示供给HWE104的时钟信号的频率。这样标志例如不仅能由程序设计员加上,而且能使用后面将要描述的指令序列优化装置自动地加上。CPU103的各时钟频率不一定与HWE104的各时钟频率独立地指定,并且反之亦然。可选择地,可以指定时钟频率的组合。如果时钟频率不特别地指定,可以选择最高时钟频率。
标志检测器101向指令分配控制部分102输出从存储部分100读出的指令代码,和根据指令代码中包含的控制标志的分配控制信号,并且还向时钟控制部分106输出根据时钟控制标志的时钟控制信号。
指令分配控制部分102按照从标志检测器101输出的分配控制信号,把指令代码传送给CPU103或HWE104。例如,标志检测器101和指令分配控制部分102可以由硬件构成,或可以由比CPU103较高级别的处理器构成。指令代码不一定直接传送给CPU103或HWE104,而可以通过总线107传送到那里。
CPU103可以是一个多种用途处理器,例如,它使用其中包括的计算资源或SRAM105,执行各种类型的通用指令。(CPU103可以具有控制整个半导体集成电路的各种操作的功能。)
另一方面,HWE104是一个处理器,例如,利用它通过一条或一系列指令,以高速(用少数处理循环)并且独立于(即分离于)CPU103的处理,执行具体操作(程序处理),例如MPEG-4操作、维特比解码或乘法累积操作。(在这种情况下,为了简单起见,例如,根据图2所示从地址0000至地址0003的循环过程以高速执行的假定,给出描述。)
SRAM105通过总线107与CPU103和HWE104连接,并且用作一个共享存储器,其中存储用于CPU103或HWE104的处理的临时数据或其他类似数据。关于这样存储器,一般使用能够高速操作的SRAM(静态RAM),但是本发明不限于此。
时钟控制部分106向CPU103、HWE104和SRAM105供给时钟信号,这些时钟信号具有根据从标志检测器101输出的时钟控制信号的频率。具体地,如图4所示,时钟控制部分106包括:一个时钟发生器106a,用于产生具有给定频率的时钟信号;多个分频器106b,用于按给定比划分时钟信号的频率;一个频率控制寄存器106c,用于保持从标志检测器101输出的时钟控制信号;和一个选择器106d,用于向CPU103、HWE104和SRAM105选择地输出一个时钟信号,它具有根据频率控制寄存器106c中保持的信息的频率。
现在,将描述这样构成的处理器系统怎样操作。图5是表示当执行存储在存储部分100中的指令时所执行的控制操作的流程图。图中示意表示处理器系统的控制操作。然而,实际中并不按图中所示的顺序执行各自步骤,并且一般并行执行各自部分的操作。
(S100)标志检测器101预取存储在存储部分100中的指令代码(或指令代码集),并且检测指令代码中包含的分配控制标志和时钟控制标志。
(S101)至(S103)其次,根据分配控制标志的检测结果,标志检测器101然后向指令分配控制部分102输出一个指示CPU103或HWE104的分配控制信号和指令代码。此时,标志可以保留在指令代码中,或可以从那里移去。
(S104)其后,根据时钟控制标志的检测结果,标志检测器101向时钟控制部分106输出一个时钟控制信号。
(S105)时钟控制部分106按照时钟控制信号,分别转换输出给CPU103和HWE104的时钟信号的频率。具体地,在图2所示的程序的例子中,当执行地址0000至0004的指令代码时,向HWE104供给具有f频率的时钟信号。另一方面,当执行地址0005至0008的指令代码时,向CPU103供给具有f/2频率的时钟信号,而当执行地址0009的指令代码时,对其供给具有f频率的时钟信号。在供给CPU103和HWE104的时钟信号中,向SRAM105供给具有较高频率的时钟信号。
(S106)指令分配控制部分102按照从标志检测器101输出的分配控制信号,向CPU103或HWE104传送指令代码。在图2所示的程序的例子中,把地址0000至0004的指令代码传送给HWE104执行。把地址0005至0009的指令代码传送给CPU103执行。
现在,将简短描述图2所示程序的内容。地址0000至0003的指令代码指示执行循环操作,其中使地址0001至0002的指令代码重复四次。地址0004的指令代码指示循环操作使数据保持在HWE104中的一个寄存器(A)中,并且然后存储在SRAM105中由地址xxxx表示的区域中。地址0009的指令代码指示在由CPU103进行地址0005至0008的处理之后,把由HWE104存储在SRAM105中的数据加到已经保持在CPU103中的寄存器(A)中的数据。
如图6所示,在执行这样的程序中,把地址0000至0004的指令代码传送给HWE104执行。另一方面,把地址0005至0008的指令代码顺序地传送执行,并与HWE104的执行同时。
例如,假定由HWE104对地址0000至0003的指令代码的执行在一个循环中用两个时钟执行,并且是如CPU103那样有效的两倍,而且地址0004的指令代码的执行用一个时钟执行,于是总计需要九个时钟(两个时钟×四个循环+一个时钟)。另一方面,假定由CPU103对地址0005至0008的指令代码的执行用四个时钟执行,那么需要的时钟数是HWE104的循环操作所必需的时钟数的约1/2。
因此,如果向CPU103和HWE104供给具有f相同频率的时钟信号,CPU103在一个约是HWE104所用周期的1/2的周期内,完成直至地址0008的指令代码的执行。在这种情况下,下一个地址0009的指令代码参考HWE104的循环操作的结果,并且因而在这个循环操作终止以前不执行。在这个周期期间,CPU103浪费电功率。具体地,在其中CPU103和HWE104的处理也需要集成的情况下,即使CPU103和HWE104中的一个的处理较早完成(因为由于相对过剩的操作性能引起的高处理能力),完成的处理需要在保持其内部状态下等待另一个处理的结果。在这个等待周期期间,空闲状态继续,以便因为不必要触发而连续地消耗功率。
如上所述,在本实施例的处理器系统中,当CPU103执行地址0005至0009的指令代码时,根据时钟控制标志向CPU103供给一个具有f/2频率的时钟信号。因此,使CPU103消耗的功率减小为约1/2,并且CPU103的处理几乎与对其供给一个具有f频率的时钟信号的HWE104的处理终止同时终止(即这些处理在相同周期之内执行)。这样避免使整个处理器系统的处理能力降级。也就是,在一种其中使时钟频率的组合优化的操作方式下,执行各种过程,以实现高处理能力和低功耗两者。另外,如上所述,根据加到指令代码的标志来执行对处理器的分配和时钟频率的控制,所以不必提供复杂的解码电路或其他类似电路。结果,使电路规模减小。
根据各指令的必需时钟数和能够供给的频率,可能不会消除等待时间。即使这样情况,如果通过使用低于最大值的频率来缩短等待时间,也使功耗减小而不使处理能力降级。
例如,如果CPU103和HWE104中的一个不操作,即不对其分配执行指令,或终止处理器的指令执行的定时相互不精确地一致,以引起等待时间,可以停止时钟信号的供给(或可以禁止输入时钟信号)。
(实施例2)
现在,将描述一种用于产生指令代码的指令序列优化装置的例子,如上所述,对其加上用于控制对处理器的分配和时钟频率的标志。
该指令序列优化装置由一台用于执行程序例如编译程序和优化程序的计算机构城。图7示出其功能配置。
在图中,存储部分201存储在加上标志之前和之后的源程序和目标程序。源程序的例子包括由指令代码序列构成的可执行机器语言程序、汇编程序和更抽象的C语言程序。在汇编程序或C语言程序的情况下,例如,可以与翻译成机器语言程序同时地加上标志,或可以在产生一个包含指示加上标志的信息的插入程序之后,产生一个对其加上标志的机器语言程序。
指令分析器202(指令分析装置)分析一个源程序,以确定哪个处理器能够执行源程序中包含的指令(包括由指令序列形成的指令集),以及指令是否能够并行执行。指令分析器202还确定指令之间的关系(过程之间的依赖关系),即执行定时的约束,如果参考一条指令I1的执行结果以执行另一条指令I2,则指令I2在指令I1完成以前不执行。
标准执行周期估计部分203(执行周期估计装置)估计一个在其期间由处理器以标准时钟频率(例如,最大频率:以下,称为“标准时钟频率”)执行一条指令的标准执行周期。具体地,通过参考一个记录由各处理器执行各种指令所必需的时钟数的表,并且通过把这个时钟数乘以标准时钟频率的倒数(1/f)得到标准执行周期。关于必需时钟数,按上述方式得到一个给定参考处理器执行所必需的时钟数,并且把得到的必需时钟数乘以另一个处理器执行的效率(关于给定参考处理器的处理能力比),从而容易地估计另一个处理器执行所必需的时钟数。例如,在程序中包括循环操作或条件分支的情况下,必需时钟数不总是精确地得到。在这样情况下,例如,如果例如使用样本数据、程序设计员的规范或其他类似条件,通过模拟设置循环操作或条件分支数,则得到适当估计值或最坏值作为必需时钟数。
转换执行时间计算部分204计算一种情况所必需的转换执行周期,这种情况中指令由各自处理器在各种时钟频率下执行。具体地,通过标准执行周期×(标准时钟频率/各时钟频率)得到各转换执行周期。可选择地,通过参考一个表可以得到转换执行周期,在这个表中预先记录与标准执行周期和各种时钟频率的各自组合相应的转换执行周期。
关于标准执行周期和转换执行周期,照字面意义可以使用以时间为单位的值,或可以代替使用时钟数。具体地,例如,必需时钟数可以用作标准执行周期,并且可以根据各时钟频率,将必需时钟数×(标准时钟频率/各时钟频率)用作一个转换执行周期。
分配/时钟频率确定部分205(分配确定装置和时钟频率确定装置)根据指示能够执行指令的处理器的约束和指令分析器202确定的执行定时两者的信息,并且还根据由转换执行时间计算部分204计算的各自指令的转换执行周期,确定在执行各自指令中,对处理器的指令分配和供给的时钟信号的频率,以便使功耗最小。具体地,如图8A和8B所示,例如,在其中处理器A和B执行指令a和b的情况下,假定时钟频率是f,处理器A和B两者对于指令a需要相同执行周期,处理器A对指令b的执行周期是处理器B对指令b的执行周期的1/2,并且在完成指令a和b两者的执行以前,不执行下一条指令。于是,如果指令b由处理器A执行,处理器A的处理具有一个容限。因此,如果把处理器A的时钟频率调整为f/2,则使功耗降低而不影响总处理时间。
标志添加部分206(分配控制信息添加装置和时钟控制信息添加装置)根据分配/时钟频率确定部分205确定的分配和频率,对如图2所示包括各自指令的指令代码加上分配控制标志和时钟控制标志。代替或连同分配控制标志的添加,可以用一个并行处理指令来代替能够由CPU103和HWE104并行执行的一条或一系列指令集。
现在,将参考图9描述指令序列优化装置怎样操作。
(S1000)首先,分析源程序,并且确定能够执行各自指令的处理器。如果并行执行多条指令,检测指令执行定时的约束,即在所有当前指令的执行完成以前,禁止下一条指令的执行的约束。
(S1001)其次,确定源程序中包括的所有指令是否仅可由一个给定处理器执行。如果确定结果为Yes,因为所有指令仅需由给定处理器例如在最大时钟频率下执行,所以过程进到(S1006),将在后面描述。
(S1002)如果在(S1001)的确定结果为No,估计在其期间由各自处理器在它们的标准频率下执行指令的标准执行周期。
(S1003)其后,计算处理器在各种时钟频率下执行指令所必需的转换执行周期。
(S1004)根据这样计算的转换执行周期和在(S1000)检测的指令之间的关系(执行指令的定时的约束),确定对处理器的指令分配和执行指令所供给的时钟信号频率,以便使功耗最小。
具体地,首先,如参考图8所述,在能够执行指令的处理器的指令分配的所有组合之中,检测一个当所有处理器例如在标准时钟频率下操作时在其处理中具有容限的处理器,即一个等待其他处理器的处理终止的处理器。然后,得到不影响具有容限的处理器的总处理时间的最小时钟频率,即允许一个其结果由一个随后指令参考的操作,以在其他处理器的操作之前终止的最小频率(例如,或这样频率与标准时钟频率之间的比)。(应该注意,实际中,把各标准执行周期与关联的转换执行周期比较,以便可以得到与等于或短于标准执行周期的转换执行周期中的最长转换执行周期相应的频率。)
按这样方式,在各分配组合中,使处理器的指令执行与各自执行的时钟频率相关联,以便得到各分配组合的功耗(实际中,例如,它可以是指令执行所必需的总时钟数)。
因此,如果得到实现最低功耗的分配组合,则确定了使功耗减小而不使处理能力降级的指令分配和时钟频率。
(S1005)把根据确定的指令分配和时钟频率的分配控制标志和时钟控制标志加到源程序中包括的指令的指令代码,并且把得到的指令代码作为目标程序存储在存储部分201中。
(S1006)另一方面,如果在(S1001)确定源程序中包括的所有指令仅可由一个给定处理器执行,如上所述,这些指令仅需由给定处理器例如在最大时钟频率下执行。因此,把指示对给定对处理器的分配的分配标志和指示最大时钟频率的时钟控制标志加到源程序中包括的指令的指令代码。
(S1007)重复从(S1002)至(S1005)的过程,直至完成源程序中包括的所有指令的处理。
因此,产生指令代码,其中按上述方式加上分配控制标志和时钟控制标志,因而得到一个程序,允许一个如实施例1所述包括多个处理器的处理器系统以大大减小的功耗,并且不使处理能力降级地操作。
在(S1004),在所有分配的组合数大的情况下,例如,可以省略其中对少数处理器分配极大量指令的组合的考虑,以便能减小优化装置的处理负载。具体地,例如,在确定对处理器的分配中,例如可以根据由图7和图9虚线指示的预定处理比例设置信息(通过一个处理比例设置装置),使各处理器的处理量的比例(例如,处理时间或总必需时钟数)限制为给定范围,以便在给定范围之内从分配组合中选择一个实现最低功耗的组合。然后,以高速执行如上所述的标志添加。在这样情况下,增加处理器在执行指令时的并行性(同时操作的处理器数),导致以较高速执行所有指令。特别地,如果有可能个别地设置处理比例,则根据处理器系统的目的调整处理器系统的功耗,处理器系统中执行指令的速度,和优化装置在标志添加时的负载。另外,如上所述的这样过程不一定一次对源程序中包括的所有指令执行,并且可以对每个给定指令序列执行。即使在这样情况下,如果适当设置指令序列的长度,以减小局部功耗,也大大减小总功耗,并且还减小分配的组合数,因而也减小优化装置的处理负载。
在计算功耗时,例如,可以在考虑处理器之间的功耗的差下,执行给定系数的乘法,以便保证功耗的减小。
在前述例子中,转换执行周期用来确定一个在其处理时具有容限的处理器和不影响总处理时间的最小时钟频率。然而,本发明不限于本例,并且可以使用标准执行周期。具体地,例如根据标准执行周期之间的差,可以确定容限的存在,或例如根据标准执行周期之间的比,例如可以得到最小时钟频率。
(实施例2的变更例子)
将描述另一个指令序列优化装置,其中按如实施例2的指令序列优化装置的相同方式,对指令代码加上一个标志。以下,例如,与实施例1和2所述的那些具有类似功能的部件用同样标号指示,并且因而将省略其描述。
在本指令序列优化装置中,确定对处理器的指令分配,以便一条可由多个处理器执行的指令由一个表现最短标准执行周期的处理器来执行,并且确定时钟频率,以便根据分配使功耗减小。具体地,如图10所示,例如,本装置不同于实施例2的装置(图7所示),在于提供一个分配确定部分311和一个时钟频率确定部分312,以代替分配/时钟频率确定部分205。
分配确定部分311确定分配,以便一条可由多个处理器执行的指令,由一个表现由标准执行周期估计部分203所计算的最短标准执行周期(即具有最小必需时钟数)的处理器来执行。
时钟频率确定部分312确定时钟频率,以便关于如上所述确定的分配,当所有处理器在标准时钟频率下操作时,使一个在其处理时具有容限的处理器在不影响总处理时间(即,以便使等待时间最小)的最小时钟频率下操作。
如图11所示,这样构成的指令序列优化装置的操作在以下过程不同于实施例2(图9所示)的操作。
(S1151)在计算了标准执行周期之后(S1002),确定对处理器的分配,以便一条可由多个处理器执行的指令由一个表现最短标准执行周期的处理器来执行。
(S1104)和图9中的(S1004)不同,仅确定时钟频率。具体地,执行这个确定,以便当各指令由在(S1151)分配的处理器在标准时钟频率下执行时,对一个其中为其他处理器的终止出现等待时间(即具有容限)的处理器,供给一个具有使等待时间减小并且不影响总处理时间的最小频率的时钟信号。因此,在如上所述的处理器分配的范围之内,在不使处理器系统的处理能力降级下,减小功耗。
在这样确定对处理器的分配和时钟频率之后,按如实施例2那样的相同方式,在(S1005)把根据这个确定的分配控制标志和时钟控制标志加到指令代码。
如上所述,各指令由一个表现最短标准执行周期的处理器来执行,提高执行指令代码的效率,以便减小总必需时钟数。另外,对一个在其执行周期中具有容限的处理器供给一个减小频率的时钟信号,使得晶体管的不必要触发减小,因而大大减小功耗。而且,仅对一组对处理器的分配组合执行时钟频率的确定,以便使优化装置的处理负载减小,并且高速执行标志添加。
如上所述,在执行分配以便使各指令由一个表现最短执行周期的处理器执行的情况下,一个包括大量相同类型指令的程序可能分配给一个或少数处理器。在这种情况下,虽然功耗减小,但使处理器处理的并行性减小,使得整个程序执行所需要的时间变长。因此,为了缩短整个程序的执行周期,甚至允许在某种程度上增大功耗,如实施例2那样,例如,根据图10和11虚线所示的比例设置信息,使各处理器的处理量的比例限制为给定范围。
例如,代替分配给一个表现最短标准执行周期的处理器,可以把各指令分配给一个处理器,以便当所有处理器在它们的标准时钟频率下操作时,使整个程序(或一个给定指令序列的全部)的执行周期最短。具体地,可由多个处理器执行的各指令不一定分配给一个表现最短执行周期的处理器。如果把这样指令分配给另一个能够与该处理器同时执行指令的处理器,以提高处理器执行指令的并行性,则例如使整个程序的执行周期缩短。即使在这样情况下,对一个在其执行周期内具有容限的处理器供给减小频率的时钟信号,也抑制晶体管的不必要触发,从而减小功耗。在这种情况下,同样,例如如果如上所述使各处理器的处理量的比例限制为给定范围,以便确定分配,使得这个范围之内缩短执行周期,则使优化装置的处理负载减小。
而且,例如,当分配确定部分311(重排装置)确定对处理器的分配时,可以按不同顺序重排指令的执行。更具体地,如图12所示,例如,除图11所示的步骤外,可以在(S1251)重排指令。
具体地,例如在把如图13A所示的指令a至d写入一个源程序的情况下,假定指令a和c各自可由处理器A用四个时钟顺序地执行,指令b在传送到处理器B之后可独立于处理器A的操作用12个时钟执行,以及指令d可在指令a至c的执行终止之后执行。于是,如果按源程序所述的顺序执行处理,如下按图13B所示的方式执行指令:
(1)当顺序地传送给处理器A的时候,在时钟频率是f并且必需时钟数是4的条件下,执行指令a。
(2)在指令a终止之后,一次把整个指令b传送给处理器B,并且然后在时钟频率是f且必需时钟数是12的条件下执行。
(3)与指令b的执行并行,当顺序地传送时,在时钟频率是f/3且必需时钟数是4(当时钟频率是f时转换执行周期与12个时钟相应)的条件下,执行指令c。
在按如图13C所示的不同顺序重排指令的执行的情况下,如下按图13D所示的方式执行指令:
(1)一次把整个指令b传送给处理器B,并且然后在时钟频率是f×3/4且必需时钟数是12(转换执行周期与16个时钟相应)的条件下执行。
(2)与指令b的执行并行,当顺序地传送给处理器A的时候,在时钟频率是f/2且必需时钟数是4(转换执行周期与8个时钟相应)的条件下,执行指令a。
(3)随后,在时钟频率是f/2且必需时钟数是4(转换执行周期与8个时钟相应)的条件下,同样执行指令c。
也就是,按不同次序重排指令的执行,以便提高处理器处理的并行性,从而增大执行周期的容限。因此,能在低时钟频率下执行各指令a至c,因而大大减小功耗。如果使时钟频率减小,例如由于后面将要描述的电源电压的减小,能进一步减小功耗。然而,如重排之后那样通过使时钟频率关于指令a和c减小到f/2而使功耗的减小,要大于在原执行序列中通过使时钟频率仅关于指令c减小到f/3而使功耗的减小。可以执行上述指令执行的重排,以便如图13E所示,在f时钟频率下执行指令b,并且在f×2/3频率下执行指令a和b。在这样情况下,与指令执行的重排之前比较,提高总处理速度,并且减小功耗。
(实施例3)
现在,将描述一个处理器系统的例子,在某种程度上如实施例1所述那样根据加到指令代码的标志,通过控制时钟频率和其他方面,甚至使用不包含标志的通常指令代码,也能够减小功耗。代替检测加到指令代码的标志,如实施例2的指令序列优化装置那样,本处理器具有确定指令分配和时钟频率的功能,以便根据确定来控制指令分配和时钟频率。
具体地,如图14所示,例如,提供一个指令分析器402(指令分析装置);一个标准执行周期估计部分403(执行周期估计装置);一个转换执行周期计算部分404;一个分配/时钟频率确定部分405(分配确定装置和时钟频率确定装置),以代替实施例1的标志检测器101(图1所示)。这些部件分别具有与实施例2(图7所示)的指令分析器202、标准执行周期估计部分203、转换执行周期计算部分204和分配/时钟频率确定部分205的那些功能类似的功能。应该注意,如实施例2所述的指令序列优化装置设有前述软件功能和计算机,而本实施例的处理器系统一般地由硬件构成,用于根据CPU103和HWE104在执行指令时的速度定时控制。(然而,本发明不限于此,并且例如可以由一个处理器或其他比CPU103较高级别的处理器来实现控制。)
如图15所示,一般地,本处理器系统的操作与实施例1和2(图5和9所示)所述的操作组合的操作类似。
(S1300)首先,指令分析器402预取存储在存储部分100中的给定量的指令代码序列。基本上按在实施例2中(S1000)那样的类似方式分析指令代码。然而,如果指令分析器402由硬件构成,整个指令代码不一定一次分析,并且可以分析根据硬件的规模的给定量的每个指令代码序列。
(S1301)其次,如果预取指令代码序列中包括的指令可仅由CPU103和HWE104中的一个执行,并且CPU103和HWE104中能执行指令的这一个在操作状态下(即在一种其中没有完成其他指令的执行的状态下),过程进到(S1306),将在后面描述,并且然后输出一个分配信号,指示CPU103和HWE104中能够执行指令的一个,和一个时钟控制信号,例如指示最大时钟频率。也就是,在这样情况下,CPU103和HWE104不并行操作,所以整个前述处理能力取决于各自指令的执行周期。因此,如上所述需要设置分配和时钟频率。
(S1002)至(S1004)另一方面,如果指令代码序列中包括的指令可分别在CPU103和HWE104中的不同个执行,或可在CPU103和HWE104中不在执行另一个指令的一个执行,则能执行并行处理。因此,按如实施例2(图9)所述的相同方式,估计标准执行周期,并且计算转换执行周期。然后,确定对处理器的分配和时钟频率,以便在预取指令代码序列的执行期间使功耗最小。
(S1305)分别向指令分配控制部分102和时钟控制部分106,输出根据指令分配和时钟频率确定的分配控制信号和时钟控制信号。
(S1306)如(S1301)所述,如果预取指令代码序列中包括的各指令可仅由CPU103和HWE104中的一个执行,并且CPU103和HWE104中能够执行指令的这一个确定在一种其中没有完成另一个指令的执行的状态下,则输出一个分配信号,指示CPU103和HWE104中能够执行指令的一个,和一个时钟控制信号,指示最大时钟频率。
(S105)至(S106)时钟控制部分106按照时钟控制信号转换输出给CPU103、HWE104和SRAM105的时钟信号的频率。指令分配控制部分102按照分配控制信号把指令代码传送给CPU103或HWE104以执行指令。
如上所述,通过分析执行期间的指令代码,确定对处理器的分配和时钟频率,以便即使在使用其中没有加上标志的通常指令代码的情况下,也使功耗减小。
在本实施例的处理器系统中,例如,根据处理比例设置信息,如图14和图15虚线所示,把各处理器的处理量的比例限制为给定范围(通过处理比例设置装置),以在这个范围之内从分配组合中选择一个实现最低功耗的组合。因此,用于得到使功耗最小的分配组合的硬件规模减小,并且CPU103和HWE104处理的并行性增大,从而提高执行整个指令序列的速度。
(实施例3的变更例子)
将描述另一个处理器系统,如实施例3的处理器系统那样,它能够甚至通过使用不包含标志的通常指令代码来减小功耗。
本处理器系统具有与实施例2的变更例子(图10所示)所述的功能类似的功能,以控制指令分配和时钟频率,而实施例3的处理器系统(图14所示)如实施例2的指令序列优化装置(图7所示)那样,具有确定指令分配和时钟频率的功能。具体地,确定指令的分配,以便可由CPU103和HWE104中的任何一个执行的指令,由这些处理器中表现较短标准执行周期的一个执行,并且根据分配以减小功耗这样方式确定时钟频率,从而控制分配和频率。更具体地,如图16所示,例如,本变更例子不同于实施例3(图14所示),在于提供一个分配确定部分511和一个时钟频率确定部分512,代替分配/时钟频率确定部分405。
分配确定部分511和时钟频率确定部分512具有与实施例2的变更例子(图10所示)的分配确定部分311和时钟频率确定部分312的那些功能类似的各自功能。具体地,分配确定部分511确定分配,以便根据标准执行周期估计部分403计算的标准执行周期,使处理器中表现较短标准执行周期(即具有较少必需时钟数)的一个执行可由处理器两者执行的各指令。
应用这样确定的分配,时钟频率确定部分512确定时钟频率,以便当处理器两者例如在标准时钟频率下操作时,使处理器中在其处理时具有较大容限的一个在不影响总处理时间的最小时钟频率下操作。
这样构成的处理器系统的操作不同于如图17所示的实施例3(图15所示)的操作。(这个不同与实施例2的指令序列优化装置的操作(图9所示)和其变更例子的装置的操作(图11所示)之间的不同类似。)
(S1151)在计算了标准执行周期之后(S1002),确定分配,以便根据标准执行周期,使处理器中表现较短标准执行周期的一个执行可由处理器两者执行的指令。
(S1004)不同于图15的(S1004),仅确定时钟频率。具体地,当由在(S1151)分配的各自处理器在标准时钟频率下执行指令时,确定时钟频率,以便对一个其中在其他处理器终止之前出现一个等待时间(即具有容限)的处理器,供给一个具有减小这个等待时间且不影响总处理时间的最小频率的时钟信号。因此,在如上所述的对处理器的分配的范围之内,在不使处理器系统的处理能力降级下,使功耗减小。
在如上所述确定了对处理器的分配和时钟频率之后,如实施例3那样在(S1305)根据确定对指令分配控制部分102和时钟控制部分106,输出分配控制信号和时钟控制信号。在(S105)至(S106),时钟控制部分106转换输出给CPU103、HWE104和SRAM105的时钟信号的频率,并且指令分配控制部分102把指令代码传送给CPU103或HWE104以执行指令。
如上所述,各指令由一个表现较短标准执行周期的处理器执行,以便提高执行指令代码的效率,并且从而减小总必需时钟数。另外,减小供给一个在其执行周期内具有容限的处理器的时钟信号的频率,所以抑制晶体管的不必要触发,因而大大减小功耗。而且,用于确定具有较短标准执行周期的处理器的过程,比如实施例3那样从分配的各种组合中,得到一个实现最低功耗的组合的过程容易。另外,仅对一组对处理器的分配的组合确定时钟频率,所以使分配确定部分511和时钟频率确定部分512的电路规模减小。
在实施例3的变更例子中,为了减小用于确定一个表现较短标准执行周期的处理器的硬件规模,以及通过增大处理器处理的并行性,缩短整个指令代码序列的执行周期,同时在某种程度上允许增大功耗,例如根据如图16和17虚线所示的处理比例设置信息,把各处理器的处理量的比例限制为一个给定范围。
代替对各指令由一个表现最短标准执行周期的处理器来执行的分配,可以确定对处理器的分配,以便例如当所有处理器在标准时钟频率下操作时,总执行周期最短。另外,通过把各处理器的处理量的比例限制为给定范围,以及通过确定分配以在给定范围之内减小执行周期,可以减小用于确定对处理器的分配的硬件规模。
(实施例4)
在实施例1中,对处理器的分配和时钟频率的控制两者都根据加到指令代码的标志。在实施例3中,分配和控制根据处理器系统对指令代码的分析。可选择地,可以仅使对处理器的分配根据标志,以及可以使时钟频率的控制根据分析。
如图18所示,例如,根据本实施例的处理器系统不同于实施例3(图14所示)的处理器系统,在于包括:一个标志检测器601;一个指令分析器602;和一个时钟频率确定部分512,以代替实施例3的指令分析器402和分配/时钟频率确定部分405。
标志检测器601仅在检测指令代码中包括的分配控制标志方面不同于实施例1(图1所示)的标志检测器101,并且把从存储部分100读出的指令代码输出给一个指令分配控制部分102,以及检测一个分配控制标志,以向指令分配控制部分102和时钟频率确定部分512输出根据这个标志的一个分配控制信号。
除实施例2的变更例子(图10所示)的指令分析器202的功能以外,指令分析器602具有一个功能,以分析用于确定时钟频率所必需的信息,即指令之间的关系(过程之间的依赖关系)或执行定时的约束。
时钟频率确定部分512与实施例3的变更例子(图15所示)的那样相同,并且根据从标志检测器601输出的分配控制信号,确定时钟频率,以便当CPU103和HWE104例如在它们的标准时钟频率下操作时,使这些处理器中在其处理时具有较大容限的一个在不影响总处理时间的最小时钟频率下操作。
以下,将参考图19描述这样构成的处理器系统怎样操作。
(S1400)标志检测器601预取存储在存储部分100中的指令代码(或指令代码集),并且检测指令代码中包含的分配控制标志。指令分析器602例如分析在预取指令代码中对执行定时的约束。
(S101)至(S103)然后,标志检测器601根据分配控制标志的检测结果,把一个指示CPU103或HWE104的分配控制信号输出给指令分配控制部分102。使指令代码在对其加上或从其移去标志下输出给指令分配控制部分102。
(S1002)标准执行周期估计部分403估计标准执行周期,在其期间处理器在各自标准时钟频率下执行指令。
(S1003)转换执行周期计算部分404计算处理器在各种时钟频率下各自执行指令所必需的转换执行周期。
(S1404)时钟频率确定部分512根据从标志检测器601输出的分配控制标志,根据分配控制信号,确定供给处理器的时钟信号的频率。具体地,当指令由处理器根据标志在标准时钟频率下执行时,确定时钟频率,以便对一个其中在其他处理器的处理终止之前出现一个等待时间(即具有容限)的处理器,供给一个具有减小这个等待时间且不影响总处理时间的最小频率的时钟信号。因此,如上所述在对处理器的分配的范围之内,在不使处理器系统的处理能力降级下,使功耗减小。
(S1405)时钟频率确定部分512根据对时钟频率的确定,向时钟控制部分106输出一个时钟控制信号。
(S105)至(S106)时钟控制部分106按照时钟控制信号,转换输出给CPU103、HWE104和SRAM105的时钟信号的频率。指令分配控制部分102按照分配控制信号把指令代码传送给CPU103或HWE104,并且然后执行指令。
如上所述,按上述方式执行对处理器的分配和时钟频率的控制,因而减小功耗而不使处理能力降级。另外,根据分配控制标志执行对处理器的分配。因此,指令分析器602例如仅需分析确定时钟频率所必需的执行定时的约束。时钟频率确定部分512仅需对一组对处理器的分配的组合确定时钟频率。因此,与实施例3的处理器系统比较,减小指令分析器602和时钟频率确定部分512的电路规模。
(实施例5)
例如,通过如图20所示的指令序列优化装置,能产生指令代码,以如实施例4所述,仅对其加上一个用于控制对处理器的分配的标志。
具体地,对实施例2的变更例子(图10所示)的指令序列优化装置,提供加上一个分配控制标志所必需的功能,并且按照分配确定部分311的确定,使标志添加部分706仅对指令代码加上一个分配控制标志。
如图21所示,这个指令序列优化装置的操作不同于实施例2的变更例子(图11所示)那样,仅在于省略用于确定时钟频率的过程(S1003)和(S1104),并且在(S1505)和(S1506)仅加上一个分配控制标志。
如实施例2的变更例子那样,在本实施例中,例如根据图20和图21虚线所示的处理比例设置信息,也可以把各处理器的处理量的比例限制为给定范围,也可以确定对处理器的分配,以便使总执行周期最小,或也可以按不同次序重排指令的执行。
(实施例6)
将描述一个处理器系统的例子,其中如上所述控制时钟频率,并且控制供给CPU13和其他处理器的电源电压。时钟频率的减小使电路中延迟的容限增大,并且因而允许电路中的延迟时间增大。这样能够使得电源电压减小。因为功耗随电源电压的平方变化,所以能大大减小功耗。
具体地,如图22所示,例如,除实施例1(图1所示)的配置外,根据本实施例的处理器系统还包括一个电源电压控制部分701(电压控制装置)。电源电压控制部分701按照从标志检测器101输出的时钟控制信号,分别向CPU103、HWE104和SRAM105供给预先与时钟频率相关联设置的电源电压,即其中各自随时钟频率的关联一个的减小而从额定电压减小的电源电压。更具体地,如图23所示,例如,电源电压控制部分701包括:一个电源电压控制寄存器701a,用于将从标志检测器101输出的时钟控制信号保持为电源电压控制信号;和一个电源701b,由一个DC-DC转换器或一个电源IC构成,并且构成为按照在电源电压控制寄存器701a中保持的信息,向CPU103、HWE104和SRAM105输出一个电压。
除从电源电压控制部分701输出的电源电压由时钟控制部分106按照各自时钟频率的转换而转换外,本处理器系统的操作与实施例1(图5所示)的那样相同。如上所述在减小时钟频率下,通过减小电源电压,使功耗进一步减小,而不影响处理器系统的操作和处理能力。
供给CPU103和其他处理器的电源电压关于相同时钟频率不一定相互相等,并且可以根据电路特性或其他类似方面设置。
将电源电压转换为较高电平的定时可以比将时钟频率转换为较高频率的定时早,以便保证在转换时钟频率时电路延迟的足够容限。
如实施例1已经描述,当关断时钟信号的供给时,可以暂停电源电压的供给(可以供给接地电压),以停止CPU103或HWE104的操作,以便完全抑制由泄漏电流引起的备用功耗。可选择地,例如,可仅对HWE104暂停这样的电源电压。恢复电源电压的暂停供给的定时可以比开始时钟信号的供给的定时早。另外,在从预取第一指令代码时到检测一个标志时的周期期间,可以供给额定电压,以使整个处理器系统接通电源或重新设置,因而容易保证执行第一指令代码的处理器的操作。
另外,如图24和25所示,例如,当停止时钟信号的供给时,连同或代替暂停电源电压的供给,在CPU103或HWE104在备用状态下的这样方式下(即与处在备用状态下的总线107分离,并且保持其内部状态),可以向CPU103或HWE104输出一个信号,指示在电源电压控制寄存器701a中保持的时钟信号的存在/不存在,作为备用/有效控制信号。另外,可仅在暂停电源电压的供给下,总供给时钟信号。
(实施例7)
代替如上所述控制电源电压,可以控制一个其上形成一个CPU103和其他部件的半导体衬底的衬底电压。具体地,如果按以增大在半导体衬底上形成的晶体管的阈值电压这样方式控制衬底电压,则电路的延迟时间增大,而晶体管的泄漏电流减小。如果使时钟频率减小,以增大电路中延迟的容限,则因此控制衬底电压,以增大阈值电压,因而减小功耗。
更具体地,在根据本实施例的处理器系统中,如图26所示,例如,除实施例1所述的配置外,提供一个衬底电压控制部分801(电压控制装置)。衬底电压控制部分801按照从标志检测器101输出的时钟控制信号,向CPU103或另一个处理器供给一个预先与时钟频率相关联设置的衬底电压,即这样一个衬底电压(反向偏置电压),它随时钟频率减小而使阈值电压增大。
除按照由时钟控制部分106对时钟频率的转换而转换从衬底电压控制部分801输出的衬底电压外,本处理器系统的操作与实施例1(图5所示)的那样相同。
如上所述,在时钟频率减小下控制衬底电压,因而进一步减小功耗,而不影响处理器系统的操作和处理能力。
如关于实施例6中的电源电压所述,供给CPU103和其他处理器的衬底电压关于相同时钟频率可能彼此不同。当停止时钟信号的供给时,可以应用一个与关联电源电压相同电平的电压,作为衬底电压。
(实施例8)
如图27所示,例如,可以提供电源电压控制部分701和衬底电压控制部分801,以便按照时钟频率控制电源电压和衬底电压。在这样情况下,根据半导体集成电路的特性或其他类似方面,优化由电源电压控制部分701和衬底电压控制部分801确定的与时钟频率相关联的电源电压和衬底电压的组合。
具体地,例如,如果时钟频率低于标准时钟频率,并且泄漏电流相对大,可以减小电源电压,并且对衬底应用一个反向偏置电压,以便根据时钟频率在允许的延迟时间范围之内增大阈值电压(减小和应用两者都增大延迟时间并且减小功耗),所以减小功耗。另一方面,如果泄漏电流相对小,可以大大减小电源电压(导致延迟时间增大和功耗减小),并且可以对衬底应用一个正向偏置电压,以便减小阈值电压(导致延迟时间减小和泄漏电流增大),所以通过减小电源电压,结果满足根据时钟频率允许的延迟时间,并且大大减小功耗。
如实施例6和7已经描述,在本实施例中,供给CPU103和其他处理器的电源电压和衬底电压各自关于相同时钟频率可以相互不同。例如,即使在时钟信号的供给暂停下,如果供给电源电压,也可以应用一个与电源电压相同电平的电压,作为衬底电压。另外,如果在时钟信号的供给暂停下停止电源电压的供给,也可以停止衬底电压的供给。
(实施例9)
如上所述一旦确定时钟频率,近似确定功耗和从处理器系统的热释放。鉴于此,如图28所示,例如,可以根据时钟控制信号控制一个冷却设备901(冷却装置和冷却控制装置),它包括一个用于冷却半导体集成电路900的冷却风扇。更具体地,冷却设备901通过参考一个其中例如记录与时钟频率相关联的给定控制值的表,控制冷却风扇的旋转速度,根据时钟频率、电源电压(如上所述根据时钟频率确定)和泄漏电流(由根据时钟频率确定的衬底电压来确定),冷却具有冷却能力的半导体集成电路900。这样保证防止半导体集成电路900的热失控,并且抑制冷却中所包含的功耗。
(实施例10)
在前述实施例中,例如,多个处理器(CPU103和HWE104)中的一个在最大时钟频率下操作,而另一个处理器在低于最大时钟频率的时钟频率下操作,从而减小功耗而不使处理能力降级。如果通过接收具有比最大时钟频率低的频率的时钟信号,和比额定电压低的电源电压,并行操作处理器,也使功耗减小,并且另外,灵活地设置处理能力与功耗之间的关系。
图29是根据本实施例的处理器系统的主要部分的配置的方块图。在本例中,提供一个CPU910,以代替实施例6(图22所示)的标志检测器101和指令分配控制部分102。代替(或除此之外)CPU103和HWE104,提供四个处理器,即处理引擎911至914。代替时钟控制部分106和电源电压控制部分701,提供一个时钟控制部分916和一个电源电压控制部分917。
CPU910作为一个监视处理器控制整个系统,检测指示操作方式(例如,如图30所示的与对处理器的分配、电源电压和时钟频率的组合相应的方式)的方式设置信息,并且输出一个电源电压控制信号和一个时钟控制信号。CPU910不一定检测方式设置信息,而可以检测如实施例1所述分别指示对处理器的分配、电源电压和时钟频率的信息集。可选择地,CPU910可以检测指示并行数而不是对处理器的分配的信息,以便然后根据这个信息执行对处理器的分配。如果时钟频率,总与各自电源电压相应,CPU910仅需检测指示时钟频率或电源电压的信息。
为了简单起见,假定处理引擎911至914具有相同功能(例如,乘法累积操作的功能),给出以下描述。通过总线107在CPU910或存储部分100与处理引擎911至914之间传送指令代码。(指令代码可以如实施例1那样从CPU910或其他部分直接传送。)
如图31所示,例如,时钟控制部分916不同于实施例1(图4所示)的时钟控制部分106,在于包括:一个分频器106b;和一个选择器916d,以代替选择器106d,向处理引擎911至914输出一个共时钟控制信号,它具有根据频率控制寄存器106c中保持的信息的频率。例如,构成频率控制寄存器106c,以当如图32所示在频率控制位106c0中设置“0”或“1”值时,使选择器916d选择一个具有f或f/2的频率的信号。
如图33所示,例如,如实施例6(图23所示)的电源电压控制部分701那样,电源电压控制部分917包括一个电源电压控制寄存器701a和一个电源701b。然而,电源电压控制部分917不同于电源电压控制部分701,在于电源701b根据电源电压控制寄存器701a中保持的信息,向处理引擎911至914输出一个共电压,并且根据电源电压控制寄存器701a中保持的信息,向各自处理引擎911至914输出备用/有效控制信号。更具体地,如图34所示,例如,电源电压控制寄存器701a输出备用/有效控制信号,用于当在有效控制位701a0至701a3中设置“0”或“1”值时,使各自处理引擎911至914设置在备用或有效状态。另一方面,当在电源电压控制位701a4中设置“0”或“1”值时,电源电压控制寄存器701a使电源701b输出一个Vdd或Vdd/2的电源电压。(代替把处理引擎911至914设置在备用或有效状态,根据电源电压控制寄存器701a中保持的值,可以使电源电压的供给停止,以便完全关断泄漏电流。)
在这样构成的处理器系统中,CPU910检测加到指令代码的方式设置信息,并且在电源电压控制寄存器701a和频率控制寄存器106c中设置如图30所示的值,以便动态地改变操作方式,并且在根据操作方式的时钟频率和电源电压下,在对处理引擎911至914的分配之下执行指令。
具体地,例如,在与下述各自四个操作方式相关联的电源电压和时钟频率的控制下,执行操作。以下,为了简单起见,根据假定,即当电源电压是Vdd时在f的时钟频率下,以及当电源电压是Vdd/2时在f/2的时钟频率下,处理引擎911至914可操作,给出描述。更准确地,根据公式(2),需要使阈值电压Vt是0,以便使处理引擎在Vdd/2的电源电压和f/2的时钟频率下可操作(延迟时间td是在Vdd的电源电压下的两倍长)。因此,实际中电源电压需要稍微高于Vdd/2,以使处理引擎在f/2的时钟频率下可操作。即使在这样考虑下,也能大大减小功耗。
(1)在正常方式下(单一处理),设置电源电压控制寄存器701a和频率控制寄存器106c,以便仅使处理引擎911在Vdd的电源电压和f的时钟频率下操作,并且其他处理引擎912至914在备用状态下,其中几乎不消耗电功率。也就是,在这种正常方式下保证了不可由多个处理器并行执行的指令执行。
(2)在低消耗方式下(其中并行数是2),设置电源电压控制寄存器701a和频率控制寄存器106c,以便两个处理引擎911和912在Vdd/2的电源电压和f/2的时钟频率下操作。在这种情况下,因为时钟频率是f/2,所以各处理引擎911和912的处理能力是与正常方式比较的1/2。然而,两个处理引擎911和912的并行操作总体上表现与正常方式下那样的相同处理能力。另一方面,如公式(1)所示,功耗与电源电压的平方、时钟频率和操作处理器数成比例。因此,与正常方式比较,在这种方式下的功耗减小到(1/2)2×(1/2)×2=1/4。也就是,如果指令代码可由两个处理引擎911和912并行执行,使功耗大大减小而不使处理能力降级。
(3)在高性能方式下(其中并行数是4),设置电源电压控制寄存器701a和频率控制寄存器106c,以便所有处理引擎911至914在Vdd/2的电源电压和f/2的时钟频率下操作。在这种情况下,与正常方式比较,各处理引擎911至914的处理能力是1/2。然而,四个处理引擎911至914的并行操作总体上表现为正常方式下那样两倍高的处理能力。与正常方式比较,在这种方式下的功耗减小到(1/2)2×(1/2)×4=1/2。也就是,与正常方式比较,得到较高处理能力,并且使功耗减小。因此,高性能方式适合具有重负载的处理,例如成像处理。
(4)在超低消耗方式下(单一处理),设置电源电压控制寄存器701a和频率控制寄存器106c,以便仅使处理引擎911在Vdd/2的电源电压和f/2的时钟频率下操作。在这种情况下,处理能力是在正常方式下的1/2,但是功耗减小到(1/2)2×(1/2)=1/8。也就是,在不要求高处理能力的情况下,大大减小功耗。
如上所述,应用在低电源电压和低时钟频率下的并行处理,实现等于或高于正常方式下的处理能力及减小功耗两者,或处理能力比正常方式下的低,但功耗大大减小。另外,动态地转换并行数、电源电压和时钟频率。因此,如果需要具有重负载的处理或高速处理例如实时处理,实现高处理能力和功耗的减小。另一方面,如果不需要高速处理,使功耗更加大大减小。
如上所述的方式设置信息不一定加到每个指令代码集,而可以仅加到一个用于改变操作方式的指令代码集,或在这个指令代码集设置之前或之后的指令代码集。
在本实施例中,作为一个例子,CPU910检测加到指令代码的方式设置信息。可选择地,可以用与实施例1的标志检测器类似的硬件来检测信息。
另外,关于方式设置信息,可以在程序中包括一条在频率控制寄存器106c和电源电压控制寄存器701a中存储给定值的指令,以便由CPU910通过对这条指令的执行来设置操作方式。在这样情况下,如果设置操作方式的指令与另一条指令的执行并行执行,避免处理能力的显著降级。可以通过总线107在频率控制寄存器106c和电源电压控制寄存器701a中设置值。
在本实施例中,对处理引擎911至914供给共电源电压和共时钟信号。可选择地,如实施例1那样,例如,对各自处理引擎供给电源电压和时钟信号,以便个别地控制电源电压和时钟频率。
处理引擎911至914的数不限于4,只要该数是2或更大。处理引擎911至914不一定具有相同功能。
如实施例7和8所述,代替或除了电源电压的控制,可以控制阈值电压。具体地,通过把按照由时钟频率的减小引起的延迟容限增大而使电源电压减小所得到的功耗减小的效果,与按照阈值电压的增大而使泄漏电流减小所得到的功耗减小的效果相组合,使功耗最小化。
(实施例11)
用于产生对其加上如实施例10所述的方式设置信息的指令代码的方法不具体地限制。例如,程序设计员可以在源程序中写入指示一个操作方式的信息,连同汇编指令例如并行处理指令或单一处理器处理指令一起,使得编译程序以及其他类似程序根据该信息产生指令代码。可选择地,程序设计员可以指定在一个给定单元中的整个程序或每个程序模块中,对高处理能力和低功耗中加强哪一个分配优先级,以便可以根据规范产生指令代码。以下,将描述用于产生这样指令代码的指令序列优化装置。
如实施例2所述,指令序列优化装置由一台用于执行程序例如编译程序和优化程序的计算机构成。例如,当编译源程序时,装置执行以下如图35所示的操作,并且产生对其加上方式设置信息的指令代码。
(S1600)首先,分析程序例如源程序或通过编译源程序得到的目标程序。然后,确定是否能由处理引擎911至914并行处理指令序列的一个或一个组合(其中各指令序列例如由约10条指令构成)。也就是,确定是否可能同时执行分配给处理引擎911至914的指令,或是否允许单一处理。具体地,确定能并行处理的处理,例如对乘法累积操作的重复。
(S1601)作为上述分析的结果,如果能执行并行处理,过程进到(S1602),在那里选择高性能方式或低消耗方式中的一个供操作。如果不能执行并行处理,过程进到(S1605),在那里选择超低消耗方式或正常方式中的一个供操作。
(S1602至S1604)如果能执行并行处理,例如,作为编译期间的一个任选规范,确定是否发出对处理速度的提高分配优先级的指令。如果发出提高处理速度的这个指令,选择高性能方式供操作(S1603)。另一方面,如果没有发出提高处理速度的指令,选择低消耗方式供操作(S1604)。(另外,可以确定是否能执行其中并行数是4的处理,并且如果不能执行这个处理,选择低消耗方式。)
(S1605至S1607)如果在(S1601)的确定表示不能执行并行处理,例如,作为在编译期间的任选规范,确定是否发出对减小功耗分配优先级的指令。如果发出了减小功耗的指令,选择超低功耗方式供操作(S1606)。另一方面,如果没有发出减小功耗的指令,选择正常方式供操作(S1607)。应该注意,不同时发出提高处理速度的指令和减小功耗的指令。因此,实际中,通过检测有提高处理速度的指令,可以确定没有发出减小功耗的指令,或通过检测没有提高处理速度的指令,可以确定发出减小功耗的指令。另外,按照与处理速度和功耗实质上相关联的指令,例如指示重负载处理(并且因此指示对提高处理速度分配优先级)的信息,足以实施前述确定。在一般情况下(没有任何具体指令),可以按照处理器系统的规范以及其他类似方面指定低消耗方式。
(S1608)把根据前述选择的方式设置信息加到指令代码。如果必要,可以用并行处理指令来代替一个或一系列指令代码集。这样的代替可以在(S1601)确定能执行并行处理之后的任何时间执行。具体地,例如,在完成分析之后,当在(S1603)和其他过程确定方式时,可以创建一个表示各自过程的操作方式的方式设置信息表,以便根据该表来执行方式设置信息的添加或用并行处理指令的代替。如实施例10的变更例子所述,为了通过CPU910的指令执行在频率控制寄存器106c和电源电压控制寄存器701a中存储给定值,仅需对一个程序加上这样一条指令。
(S1609)重复从(S1600)至(S1608)的过程,直至完成源程序中所有指令的处理为止。
产生对其按上述方式加上方式设置信息的指令代码,以便一名人员例如程序设计员仅需指定对增大处理速度和减小功耗中的哪一个分配优先级,而无需考虑操作方式,以便得到一个能够容易实现高速操作和大大减小功耗的程序。
(实施例12)
将描述一个处理器系统的例子,其中如实施例3的处理器系统那样,甚至通过使用对其没有加上方式设置信息的通常指令代码,也使功耗减小。
除一个由CPU910执行的程序外(用于通过CPU910控制操作方式的操作),本处理器系统的硬件配置与实施例10(图29所示)的硬件配置相同。具体地,如图36所示,关于操作方式控制,CPU910按与实施例11的指令序列优化装置的类似方式操作。
(S1700)首先,作为一个预取指令代码以进行高速操作的通常CPU,CPU910预取存储在存储部分100中的指令(例如,约10条指令),以确定是否能并行执行各指令或指令序列的组合。基本分析与实施例11(图35所示)的(S1600)中的相同。预取的指令数不具体地限制。如果这样指令数大,即使能并行处理稍微复杂的重复处理,然而需要较长时段来分析,并且如果由硬件实行分析,要求大电路规模。因此,预取的指令数需要在使这些要求平衡下设置。
(S1601和S1607)作为上述分析的结果,确定是否能执行并行处理。如果不能执行并行处理,过程进到(S1607),在那里选择正常方式供操作。如果能执行并行处理,过程进到(S1702),在那里选择高性能方式或低消耗方式中的一个供操作。
(S1702)如果能执行并行处理,确定指令代码所指示的过程是否为一个重负载过程。具体地,例如,确定是否包括一个循环过程(特别地,多循环过程),或循环数是否等于或大于一个给定值。
(S1603和S1604)按照在(S1702)确定的结果,如果过程是重负载过程,选择高性能方式供操作(S1603)。如果过程不是重负载过程,选择低性能方式供操作(S1604)。
(S1708)把根据选择的时钟控制信号和电源电压控制信号输出给时钟控制部分916和电源电压控制部分917,并且保持在频率控制寄存器106c和电源电压控制寄存器701a中。按这样方式,设置操作方式,并且如果必要,用并行处理指令来代替一个或一系列指令代码集。
(S1709)在所选择操作方式下执行指令,并且然后重复从(S1700)的操作。
在前述方式中,即使对一个对其没有加上方式设置信息的程序,也按照执行期间的处理负载自动地选择操作方式,设置时钟频率和电源电压,并且执行用并行处理指令的代替。因此,即使在执行由通用编译程序产生的指令代码的情况下,也容易使指令代码在最优操作方式下,例如在高速操作并大大减小功耗下执行。
如上所述操作方式不一定仅由处理系统选择。可选择地,如果检测到关于对高处理能力和低功耗中的哪一个分配优先级的方式设置信息(例如,根据程序开发人员的指令)或规范,可以按照该信息或规范来选择操作方式,并且在这样情况下,可以由处理器系统仅对是否能执行并行处理作出确定。
(实施例13)
以下将描述一个处理器系统的例子,其中构成各自处理器的晶体管具有不同阈值电压。如图37所示,本处理器系统包括处理引擎923和924,以代替实施例10(图29所示)的处理引擎913和914。本处理器系统还包括一个电源电压控制部分927,以代替电源电压控制部分917。
处理引擎923和924具有与处理引擎911和912的功能相同的功能。然而,构成处理引擎923和924的晶体管的阈值电压(例如0.6V)设置得高于构成处理引擎911和912的晶体管的阈值电压(例如0.3V)。本实施例根据这样假定,即这些阈值电压通过设置杂质浓度等来静态地设置,但是如实施例7所述,例如通过控制半导体衬底电压可以动态地设置这些阈值电压。如上所述,处理引擎911、912、923和924各自可以仅由一个高阈值电压晶体管或一个低阈值电压晶体管构成。然而,本发明不限于本例。
构成电源电压控制部分927,以控制对各自处理引擎911、912、923和924的电源电压的供给/关断,并且这些电源电压相互独立。具体地,如图38和39所示,例如,按照电源电压控制寄存器701a中的电源关断控制位701a0至701a3中所保持的值,控制从电源701b的电源电压的供给或关断。按照电源电压控制位701a4至701a7中所保持的值,控制这些电源电压。
根据加到指令代码的方式设置信息,或根据指令代码的分析结果通过CPU910的操作,执行按照各操作方式在时钟控制部分916中的电源电压控制寄存器701a和频率控制寄存器106c中值的设置。这个设置按与实施例10和12相同的方式执行。例如,如果在这些寄存器中设置如图40所示的值,则动态地改变操作方式,并且在按照所选择操作方式下的时钟频率和电源电压下,使指令在分配给处理引擎911、912、923和924之下执行。
具体地,例如,按如下所述的方式,在与各自三个操作方式相关联的电源电压和时钟频率的控制下,执行操作。可以执行与实施例10那样类似的超低消耗方式下的操作。(也就是,仅需根据处理器系统要求的功耗、处理能力和其他方面来选择操作方式。)以下,例如,假定当电源电压是Vdd时,由上述高阈值电压晶体管构成的处理引擎923和924可在f/2的时钟频率下操作,将给出描述。
(1)在正常操作方式下(单一处理),设置电源电压控制寄存器701a和频率控制寄存器106c,以便仅有使用低阈值电压晶体管的处理引擎911在Vdd的电源电压和f的时钟频率下操作,并且关断对其他处理引擎912、923和924的电源电压的供给。因此,在处理引擎912、923和924中不会出现由泄漏电流引起的备用功耗。
(2)在低漏泄方式下(其中并行数是2),设置电源电压控制寄存器701a和频率控制寄存器106c,以便使用高阈值电压晶体管的两个处理引擎923和924在Vdd的电源电压和f/2的时钟频率下操作。在这种情况下,两个处理引擎923和924在f/2的时钟频率下操作,所以总体上得到如正常方式下那样相同的处理能力。另一方面,在不对泄漏电流作任何考虑下,因为两个处理引擎923和924在f/2的时钟频率下操作,所以功耗总体上与正常方式下那样相同。然而,使用高阈值电压晶体管使各处理引擎923和924在操作期间的泄漏电流(有效泄漏电流)例如减小到使用低阈值电压晶体管的情况下的约27%。于是,因此使总功耗减小。
(3)在高性能方式下(其中并行数是4),设置电源电压控制寄存器701a和频率控制寄存器106c,以便处理引擎911和912的电源电压是Vdd/2,处理引擎923和924的电源电压是Vdd,以及所有处理引擎的时钟频率是f/2。在这种情况下,并行数是4,并且时钟频率是f/2,所以总处理能力是正常方式下那样的两倍高。另一方面,处理引擎911和912在Vdd/2的电源电压和f/2的时钟频率下并行操作,所以其功耗是与正常方式比较的(1/2)2×(1/2)×2=1/4。处理引擎923和924如在低漏泄方式下那样使用高阈值电压晶体管,并且在Vdd的电源电压和f/2的时钟频率下并行操作,所以使有效泄漏电流大大减小。结果,使总功耗减小。
如上所述,提供由高阈值电压晶体管构成的处理引擎923和924。这些处理引擎923和924在低时钟频率下并行操作,所以使有效泄漏电流减小。因此,特别在有效泄漏电流的影响大的情况下,容易使功耗大大减小。对于重负载处理,另外还使用由低阈值电压晶体管构成的处理引擎911和912,以便在通过减小电源电压和频率而抑制功耗下,提高性能。另外,即使在不允许并行处理的情况下,如果处理引擎911由低阈值电压晶体管构成,并且在Vdd的电源电压和f的时钟频率下操作,保证保持处理性能。
(实施例14)
将描述一个处理器系统的例子,其中即使在多个处理引擎的一个中出现故障的情况下,也保持处理能力,并且使功耗减小。
如图41所示,本处理器系统包括一个在实施例13(图38所示)同样描述的电源电压控制部分927,以代替实施例10(图29所示)的电源电压控制部分917,以便独立地控制对处理引擎911至914的电源电压的供给/关断和这些电源电压。该处理器系统还包括:一个时钟控制部分936,以代替时钟控制部分916;和一个快闪存储器931(故障信息保持装置),它是一个可重写的非易失性存储器。
如电源电压控制部分927那样,构成时钟控制部分936,以独立地控制供给处理引擎911至914的时钟信号的频率。具体地,如图42和43所示,例如,选择器936d向各自处理引擎911至914供给时钟信号,该时钟信号具有按照频率控制寄存器106c中的频率控制位106c0至106c3中所保持的值的频率。
快闪存储器931存储故障信息,指示各处理引擎911至914是否正常操作(完全操作)或具有故障。具体地,在制造期间,例如,在使用LSI测试仪的初始评估期间,测试各处理引擎911至914的操作,并且保持测试结果。代替快闪存储器,可以使用各种其他非易失性存储器,例如FeRAM。
在本处理器系统中,如实施例10和12中那样,根据加到指令代码的方式设置信息,或根据指令代码的分析结果通过CPU910的操作,在电源电压控制部分927中的电源电压控制寄存器701a和时钟控制部分936中的频率控制寄存器106c中,设置预定值,以便动态地改变操作方式,并且在按照所选择操作方式的电源电压和时钟频率下,使指令在分配给处理引擎911至914之下执行。为了把指令分配给处理引擎911至914,参考快闪存储器931中保持的故障信息,以便不向故障处理引擎分配指令。
具体地,在如实施例10所述的四个操作方式下操作的情况下,例如,假定在处理引擎911中出现故障。于是,为了转换为正常方式或超低消耗方式,向处理引擎912至914中的一个供给Vdd的电源电压和具有f频率的时钟信号,或Vdd/2的电源电压和具有f/2频率的时钟信号,并且关断对其他处理引擎(至少包括处理引擎911)的电源电压的供给(即分离故障处理引擎)。类似地,为了转换为低消耗方式,对处理引擎912至914中的两个供给Vdd/2的电源电压和具有f/2频率的时钟信号,并且同样关断至少对处理引擎911的电源电压的供给。
为了转换为高性能方式,例如,使处理引擎912在Vdd的电源电压和f的时钟频率下操作,使处理引擎913和914在Vdd/2的电源电压和f/2的时钟频率下操作,并且关断对处理引擎911的电源电压的供给。具体地,在电源电压控制部分927中的电源电压控制寄存器701a或在时钟控制部分936中的频率控制寄存器106c的各自中,设置b’11001110或b’1100(其中b’指示随后值用二进制表示)。因此,虽然功耗是正常方式下的1.25倍高,但是处理能力是正常方式下的2倍高。可选择地,可以使三个处理引擎912至914在Vdd/2的电源电压和f/2的时钟频率下操作,以便处理能力是正常方式下的1.5倍高,但是功耗减小到0.75(即对功耗的减小分配优先级)。在这样情况下,不一定在处理引擎911至914之中个别地控制电源电压和时钟频率。
如上所述,即使在存在故障处理引擎下,如果执行并行操作以补偿该处理引擎,则在某种程度上保持处理器系统的性能,并且减小功耗,因而提高制造产量。
在前述例子中,在一个处理引擎中出现故障。在两个处理引擎中出现故障的情况下,在正常方式、超低消耗方式和低消耗方式下,同样保证相同的处理能力和相同的功耗减小。在高性能方式下,可以使两个正常操作的处理引擎在Vdd的电源电压和f的时钟频率下操作,或可以使这些正常操作的处理引擎中的一个在Vdd/2和f/2下操作。可选择地,可以使处理器系统不具有高性能方式。
在前述例子中,关断对故障处理引擎的电源电压的供给。可选择地,可以使故障处理引擎如实施例10所述设置在备用状态。然而,在考虑故障例如电力线中的短路情况下,优选地根据系统稳定性等关断电源电压。另外,在考虑时钟信号线中出现短路时,可以停止时钟信号的供给。
(实施例15)
处理引擎的故障例如不仅可以如上所述在制造期间通过测试来检测,而且可以每次接通电源时由处理器系统本身来检测,以便不对故障处理引擎分配处理。如图44所示,例如,本处理器系统包括:一个故障寄存器941(故障信息保持装置),以代替实施例14的快闪存储器931;一个图形发生器942;和一个比较器943(故障检测装置)。
如实施例14的快闪存储器931那样,故障寄存器941存储故障信息,指示各处理引擎911至914是否正常操作(完全操作)或具有故障。然而,故障寄存器941无需是一个非易失性存储器。故障寄存器941不一定与总线107连接,而可以设置在电源电压控制部分927或时钟控制部分936内部,只要能由CPU910从那里读出信息。具体地,如图45所示,例如,故障寄存器941包括与各自处理引擎911至914相关联的故障位,并且按照在处理引擎911至914的关联一个中存在/不存在故障,使各故障位保持一个值。
在处理引擎911至914的测试操作期间,图形发生器942向总线107输出一个随机测试图形,即一个具有随机位图形的信号,它表示根据时间的随机变化。
当随机测试图形输入处理引擎911至914时,比较器943比较从处理引擎911至914输出的信号,例如在处理引擎911至914内部的给定测试点的信号,或输出给总线107、I/O总线或其他部分的信号。然后,比较器943确定这些信号是否相互一致,以从处理引擎911至914中检测故障处理引擎,并且把得到的故障信息保持在故障寄存器941中。
具体地,例如,按以下方式,在紧接系统接通之后的初始化期间,或在处理引擎911至914的处理之间的备用周期内由OS进行系统处理期间,对处理引擎911至914进行测试。也就是,在对各处理引擎911至914供给Vdd的电源电压和具有f的时钟频率的时钟信号下,使图形发生器942向总线107输出一个随机测试图形。比较器943比较来自各对处理引擎,即一对处理引擎911和912,一对处理引擎913和914,一对处理引擎911和913,和一对处理引擎912和914的输出信号。然后,比较器943根据在比较中表示一致的对和在比较中不表示一致的对的组合,检测处理引擎911至914中的故障处理引擎。然后,比较器943将其检测结果保持在故障寄存器941中。同时,例如,还可以比较来自处理引擎911和914的信号。在这样情况下,检测两个或多个故障,以便如实施例14所述那样,实现一种处理器系统,它在两个或多个处理引擎中出现故障时不具有高性能方式。可选择地,可以执行上述测试,以确定一个在f的时钟频率下不能操作的处理引擎是否可在f/2下操作。(例如,如果处理引擎仅在f/2下可操作,只要不对这个处理引擎分配正常方式,按与实施例10相同的方式执行高性能方式下的操作。)
测试图形不一定随机产生。可选择地,可以在一个非易失性存储器例如快闪存储器中存储一个预定测试图形,和一个当向处理引擎911至914输入测试图形时所输出的输出图形(估计值),以便把估计值与实际输出图形比较,以便检测处理引擎911至914中的故障处理引擎。如上所述的随机测试图形或其他类似图形可以从处理器系统的外部供给。另外,可以执行一个给定测试程序,以便根据执行结果检测故障。
按如实施例14所述的相同方式,根据这样得到的故障信息执行对处理引擎911至914的分配及电源电压和时钟频率的控制。因而,由处理器系统本身检测处理引擎中的故障。结果,不仅在出现早期损坏故障的情况下,而且在随时间引起故障的情况下,使系统稳定性和可靠性提高,并且使性能保持。
在实施例1至9中,提供一个CPU103和一个HWE104。在实施例10至15中,提供具有相同功能的处理引擎911至914。然而,本发明不限于这些实施例。可以提供各种类型的处理器,例如,可以提供具有相同功能或不同功能的多个处理器。在这样情况下,仍得到相同优点。
在实施例1中,例如,加到指令代码的标志或方式设置信息用作指令代码中指示对处理器的分配和时钟频率的信息。本发明不限于此,并且足以使指示例如对处理器的分配的信息实质上包括在程序中。例如,足以确定CPU103和HWE104中的哪一个执行指令,或由指令代码本身确定操作方式。
在实施例6至9中,根据时钟控制信号直接控制电源电压控制部分701和其他部分。然而,本发明不限于此,并且仅需根据一个例如允许按照时钟频率适当地设置电源电压的控制信号执行控制。
电源电压和时钟频率的级数不限于如上所述的两个或三个(在考虑停止其供给情况下的三个或四个),而可以设置为各种值。如果级数增加,则使用大量的操作方式的组合,所以更加详细地设置操作条件。
前述实施例所述的部件可以各种各样地组合,只要这些组合逻辑上是可实行的。具体地,例如,如实施例6至15所述的用于控制电源电压和衬底电压的配置,或用于控制冷却装置的配置可以应用于其他实施例的处理器系统。另外,可以提供实施例1的标志检测器101(图1所示)或实施例3的指令分析器402(图14所示),以实现这些实施例所述的功能,以便例如与所执行的指令中标志的存在无关地控制对处理器的分配和时钟频率。
如上所述,按照本发明,按照各处理器所执行的指令来控制时钟频率,因而减小功耗而不使处理能力降级。另外,按照时钟频率的控制来控制供给处理器的电源电压和衬底电压,因而进一步减小功耗。

Claims (16)

1.一种包括多个处理器的处理器系统,包括:
分配控制装置,用于读出由各自处理器所执行的指令,并且控制对所述处理器的所述指令的分配;
时钟控制装置,用于按照所述处理器根据所述分配所执行的所述指令,控制将供给所述各自处理器的时钟信号的频率;和
电压控制装置,用于按照所述时钟控制装置对所述时钟信号的所述频率的控制,至少控制将供给各自处理器的电源电压,或将供给构成所述各自处理器的晶体管的衬底节点的衬底电压,
其中当所述分配控制装置使多个处理器并行执行指令时,所述时钟控制装置和所述电压控制装置分别供给各具有比预定频率低的频率的时钟信号,和低于预定电压的电源电压或用于提供比预定阈值电压高的阈值电压的衬底电压。
2.根据权利要求1的处理器系统,其中所述分配控制装置、所述时钟控制装置和所述电压控制装置根据所述指令中包括的控制信息,分别控制对所述处理器的所述分配、所述时钟信号的所述频率,和所述电源电压或所述衬底电压。
3.根据权利要求2的处理器系统,其中所述控制信息指示对所述对处理器的分配、时钟信号的频率,和电源电压或衬底电压的多个组合中的一个。
4.根据权利要求1的处理器系统,还包括:
指令分析装置,用于分析所述指令是否可由多个处理器并行执行,
其中所述分配控制装置、所述时钟控制装置和所述电压控制装置根据所述指令分析装置的所述分析的结果,分别控制对所述处理器的所述分配、所述时钟信号的所述频率,和所述电源电压或所述衬底电压。
5.根据权利要求4的处理器系统,其中所述指令分析装置分析按照所述指令执行的过程是否为具有重负载的过程。
6.根据权利要求5的处理器系统,其中具有重负载的所述过程包括执行预定次数或更多次数的循环过程。
7.根据权利要求2的处理器系统,其中所述多个处理器包含包括关于衬底电压具有第一阈值电压的晶体管的处理器,和包括关于所述衬底电压具有第二阈值电压的晶体管的处理器,所述第二阈值电压比所述第一阈值电压高,并且
所述分配控制装置、所述时钟控制装置和所述电压控制装置根据所述指令中包括的控制信息和所述处理器中包括的所述晶体管的所述阈值电压,分别控制对所述处理器的所述分配、所述时钟信号的所述频率,和所述电源电压或所述衬底电压。
8.根据权利要求4的处理器系统,其中所述多个处理器包含包括关于衬底电压具有第一阈值电压的晶体管的处理器,和包括关于所述衬底电压具有第二阈值电压的晶体管的处理器,所述第二阈值电压比所述第一阈值电压高,并且
所述分配控制装置、所述时钟控制装置和所述电压控制装置根据所述指令分析装置的所述分析的结果和所述处理器中包括的所述晶体管的所述阈值电压,分别控制对所述处理器的所述分配、所述时钟信号的所述频率,和所述电源电压或所述衬底电压。
9.根据权利要求1的处理器系统,其中所述电压控制装置停止对所述分配控制装置没有对其分配执行指令的处理器的电源电压的供给。
10.根据权利要求1的处理器系统,还包括故障信息保持装置,用于保持指示各处理器是否正常操作的信息,
其中所述分配控制装置仅对正常操作的处理器分配执行指令。
11.根据权利要求10的处理器系统,还包括故障检测装置,用于使各处理器执行测试操作,以确定所述处理器是否正常操作。
12.根据权利要求11的处理器系统,其中所述故障检测装置使各处理器执行测试程序,以根据所述执行的结果确定所述处理器是否正常操作。
13.一种指令序列优化装置,用于使包括多个处理器的处理器系统所执行的指令序列优化,所述装置包括:
指令分析装置,用于分析所述指令序列中包括的指令是否可由所述各自处理器执行;和
控制信息添加装置,用于根据所述指令分析装置的所述分析的结果及指示功耗和处理能力的信息,对所述指令序列加上控制信息,所述控制信息指示对所述对处理器的分配、时钟信号的频率,和电源电压或衬底电压。
14.根据权利要求13的装置,其中所述控制信息添加装置用多个处理器并行执行的指令来代替一个处理器执行的指令。
15.一种指令序列优化程序,用于使包括多个处理器的处理器系统所执行的指令序列优化,所述程序使计算机执行:
指令分析步骤,分析所述指令序列中包括的指令是否可由多个处理器执行;和
控制信息添加步骤,根据所述指令分析步骤中得到的所述分析的结果及指示功耗和处理能力的信息,对所述指令序列加上控制信息,所述控制信息指示对所述对处理器的分配、时钟信号的频率,和电源电压或衬底电压。
16.根据权利要求15的程序,其中在所述控制信息添加步骤中,用多个处理器并行执行的指令来代替一个处理器执行的指令。
CNB2004100871066A 2003-10-27 2004-10-27 处理器系统、指令序列优化装置和指令序列优化程序 Expired - Lifetime CN1322397C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003366042A JP4549652B2 (ja) 2003-10-27 2003-10-27 プロセッサシステム
JP366042/2003 2003-10-27

Publications (2)

Publication Number Publication Date
CN1612088A true CN1612088A (zh) 2005-05-04
CN1322397C CN1322397C (zh) 2007-06-20

Family

ID=34543761

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100871066A Expired - Lifetime CN1322397C (zh) 2003-10-27 2004-10-27 处理器系统、指令序列优化装置和指令序列优化程序

Country Status (3)

Country Link
US (1) US7624295B2 (zh)
JP (1) JP4549652B2 (zh)
CN (1) CN1322397C (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100428114C (zh) * 2005-09-15 2008-10-22 中芯国际集成电路制造(上海)有限公司 降低功耗的自适应电源系统与方法
CN102160015A (zh) * 2008-09-17 2011-08-17 高通股份有限公司 用于WiMAX的状态驱动节电的方法和系统
CN101676833B (zh) * 2008-09-19 2012-12-05 英特尔公司 通过微架构带宽抑制进行处理器功耗控制和降低电压
CN102265257B (zh) * 2008-12-25 2013-12-25 松下电器产业株式会社 程序变换装置及程序变换方法
CN105653004A (zh) * 2014-11-12 2016-06-08 鸿富锦精密工业(深圳)有限公司 电源控制装置
CN105812604A (zh) * 2015-01-16 2016-07-27 京瓷办公信息系统株式会社 信息处理装置和数据处理方法
CN111191223A (zh) * 2018-11-14 2020-05-22 佳能株式会社 能够检测软件篡改的信息处理装置及其控制方法

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005102047A (ja) * 2003-09-26 2005-04-14 Renesas Technology Corp クロック入力回路
US20070083870A1 (en) * 2005-07-29 2007-04-12 Tomochika Kanakogi Methods and apparatus for task sharing among a plurality of processors
US7490254B2 (en) * 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
JP5282349B2 (ja) * 2006-02-15 2013-09-04 富士通株式会社 マルチプロセッシングシステム
JP4328334B2 (ja) 2006-03-13 2009-09-09 パナソニック株式会社 半導体集積回路装置
JP4808108B2 (ja) 2006-08-29 2011-11-02 パナソニック株式会社 プロセッサシステム
KR101282139B1 (ko) * 2006-09-11 2013-07-04 삼성전자주식회사 별도 버튼을 이용하여 성능모드 변경이 가능한컴퓨터시스템 및 그 제어방법
WO2008120393A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 情報処理装置、情報処理装置設計方法、情報処理装置設計プログラム
ATE537498T1 (de) * 2007-04-23 2011-12-15 St Ericsson Sa Elektronische einrichtung und verfahren zum durchführen eines powermanagement in einer elektronischen einrichtung
CN101802749B (zh) 2007-06-04 2012-10-03 Nxp股份有限公司 电源管理集成电路
JP4975544B2 (ja) * 2007-07-20 2012-07-11 富士通セミコンダクター株式会社 シミュレーション装置及びプログラム
JP4972522B2 (ja) * 2007-10-31 2012-07-11 株式会社日立製作所 データ処理システム
JP4667443B2 (ja) * 2007-11-21 2011-04-13 パナソニック株式会社 半導体集積回路装置
WO2010001434A1 (ja) * 2008-06-30 2010-01-07 富士通株式会社 情報処理装置の性能調整装置及び方法
US8516293B2 (en) * 2009-11-05 2013-08-20 Novell, Inc. System and method for implementing a cloud computer
US8289981B1 (en) * 2009-04-29 2012-10-16 Trend Micro Incorporated Apparatus and method for high-performance network content processing
US9529864B2 (en) * 2009-08-28 2016-12-27 Microsoft Technology Licensing, Llc Data mining electronic communications
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8650426B2 (en) 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US9563250B2 (en) * 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US9128705B2 (en) 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US8775830B2 (en) 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US8689037B2 (en) 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8909962B2 (en) 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US20110145559A1 (en) * 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
JP2012138020A (ja) * 2010-12-27 2012-07-19 Panasonic Corp マルチチップシステム、通信機器、映像音声装置および自動車
US8468373B2 (en) * 2011-01-14 2013-06-18 Apple Inc. Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state
US8627021B2 (en) * 2011-08-31 2014-01-07 Qualcomm Incorporated Method and apparatus for load-based prefetch access
JP5226848B2 (ja) * 2011-11-07 2013-07-03 富士通セミコンダクター株式会社 シミュレーション装置及びプログラム
EP2775395B1 (en) * 2013-03-07 2020-11-25 Nxp B.V. Integrated circuit, electronic device and instruction scheduling method
JP6338379B2 (ja) * 2014-01-20 2018-06-06 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法
EP2927806B1 (en) * 2014-04-01 2018-12-26 Nxp B.V. Integrated circuit, electronic device and ic operation method
US9378536B2 (en) * 2014-04-30 2016-06-28 Qualcomm Incorporated CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing
US9678529B2 (en) * 2014-09-02 2017-06-13 Nvidia Corporation Efficiency-based clock frequency adjustment
GB2539189B (en) * 2015-06-05 2019-03-13 Advanced Risc Mach Ltd Determining a predicted behaviour for processing of instructions
US10579125B2 (en) * 2016-02-27 2020-03-03 Intel Corporation Processors, methods, and systems to adjust maximum clock frequencies based on instruction type
JP6823251B2 (ja) * 2016-10-13 2021-02-03 富士通株式会社 情報処理装置、情報処理方法及びプログラム
US11355005B2 (en) * 2019-07-22 2022-06-07 Battelle Memorial Institute Aquatic organism tracking devices, systems and associated methods
JP2023063815A (ja) * 2021-10-25 2023-05-10 株式会社Preferred Networks コンパイラ装置、命令生成方法、プログラム、コンパイル方法及びコンパイラプログラム
CN114222084B (zh) * 2021-12-01 2023-05-23 联想(北京)有限公司 一种控制方法、装置及电子设备

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3648253A (en) * 1969-12-10 1972-03-07 Ibm Program scheduler for processing systems
US5452401A (en) 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5867726A (en) 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
JP3765782B2 (ja) * 1995-05-02 2006-04-12 株式会社ルネサステクノロジ マイクロコンピュータ
JP3520611B2 (ja) 1995-07-06 2004-04-19 株式会社日立製作所 プロセッサの制御方法
JPH0934599A (ja) 1995-07-21 1997-02-07 Toshiba Corp プロセッサシステム
JPH09138716A (ja) 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
US5630110A (en) * 1996-03-01 1997-05-13 Samsung Electronics Co., Ltd. Method and apparatus for enhancing performance of a processor
TW382670B (en) * 1996-11-21 2000-02-21 Hitachi Ltd Low power processor
US5889947A (en) * 1996-12-16 1999-03-30 International Business Machines Corporation Apparatus and method for executing instructions that select a storage location for output values in response to an operation count
US6463550B1 (en) * 1998-06-04 2002-10-08 Compaq Information Technologies Group, L.P. Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory
JP2000112756A (ja) 1998-10-08 2000-04-21 Toshiba Corp Cpu動作制御装置および方法
WO2000079405A1 (fr) * 1999-06-21 2000-12-28 Hitachi, Ltd. Processeur de donnees
US6611918B1 (en) * 1999-12-21 2003-08-26 Intel Corporation Method and apparatus for changing bias levels to reduce CMOS leakage of a real time clock when switching to a battery mode of operation
JP3850234B2 (ja) 2000-06-13 2006-11-29 旭化成ケミカルズ株式会社 エアバッグ用基布およびエアバッグ
AU2002236667A1 (en) * 2000-10-31 2002-05-21 Millennial Net, Inc. Networked processing system with optimized power efficiency
JP3880310B2 (ja) 2000-12-01 2007-02-14 シャープ株式会社 半導体集積回路
JP3877518B2 (ja) 2000-12-13 2007-02-07 松下電器産業株式会社 プロセッサの電力制御装置
US6993669B2 (en) 2001-04-18 2006-01-31 Gallitzin Allegheny Llc Low power clocking systems and methods
JP3685401B2 (ja) * 2001-12-26 2005-08-17 インターナショナル・ビジネス・マシーンズ・コーポレーション Cpu制御方法、これを用いたコンピュータ装置及びcpu並びにプログラム
US7191350B2 (en) * 2002-01-30 2007-03-13 Matsushita Electric Industrial Co., Ltd. Instruction conversion apparatus and instruction conversion method providing power control information, program and circuit for implementing the instruction conversion, and microprocessor for executing the converted instruction
JP3729142B2 (ja) * 2002-03-07 2005-12-21 セイコーエプソン株式会社 並列演算処理装置
EP1351117A1 (en) * 2002-04-03 2003-10-08 Hewlett-Packard Company Data processing system and method
US7634668B2 (en) 2002-08-22 2009-12-15 Nvidia Corporation Method and apparatus for adaptive power consumption
JP2004288025A (ja) * 2003-03-24 2004-10-14 Fuji Xerox Co Ltd サービス処理装置、サービス処理システム、サービス処理システムの元データ保管方法、及びサービス処理プログラム
US7334142B2 (en) * 2004-01-22 2008-02-19 International Business Machines Corporation Reducing power consumption in a logically partitioned data processing system with operating system call that indicates a selected processor is unneeded for a period of time
US7206950B2 (en) * 2004-06-16 2007-04-17 Matsushita Electric Industrial Co., Ltd. Processor system, instruction sequence optimization device, and instruction sequence optimization program

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100428114C (zh) * 2005-09-15 2008-10-22 中芯国际集成电路制造(上海)有限公司 降低功耗的自适应电源系统与方法
CN102160015A (zh) * 2008-09-17 2011-08-17 高通股份有限公司 用于WiMAX的状态驱动节电的方法和系统
CN102160015B (zh) * 2008-09-17 2014-03-19 高通股份有限公司 用于WiMAX的状态驱动节电的方法和系统
CN101676833B (zh) * 2008-09-19 2012-12-05 英特尔公司 通过微架构带宽抑制进行处理器功耗控制和降低电压
CN102265257B (zh) * 2008-12-25 2013-12-25 松下电器产业株式会社 程序变换装置及程序变换方法
CN105653004A (zh) * 2014-11-12 2016-06-08 鸿富锦精密工业(深圳)有限公司 电源控制装置
CN105812604A (zh) * 2015-01-16 2016-07-27 京瓷办公信息系统株式会社 信息处理装置和数据处理方法
CN111191223A (zh) * 2018-11-14 2020-05-22 佳能株式会社 能够检测软件篡改的信息处理装置及其控制方法
CN111191223B (zh) * 2018-11-14 2024-04-02 佳能株式会社 能够检测软件篡改的信息处理装置及其控制方法

Also Published As

Publication number Publication date
US20050102560A1 (en) 2005-05-12
JP4549652B2 (ja) 2010-09-22
CN1322397C (zh) 2007-06-20
JP2005128937A (ja) 2005-05-19
US7624295B2 (en) 2009-11-24

Similar Documents

Publication Publication Date Title
CN1612088A (zh) 处理器系统、指令序列优化装置和指令序列优化程序
CN1153155C (zh) 装有高效利用主处理器中的寄存器数据的协处理器的信息处理装置
CN1120425C (zh) 存储器控制器和存储器控制方法
CN1253790C (zh) 指令调度方法和指令调度设备
CN1280714C (zh) 独立处理多个指令流、软式控制各指令流的处理功能的多线程处理器
CN1202470C (zh) 处理器
CN1581635A (zh) 信息处理装置与方法以及计算机可读介质
CN1932776A (zh) 嵌入式操作系统中接口测试的自动化运行方法
CN1760804A (zh) 信息处理设备,信息处理方法,及计算机程序
CN1601474A (zh) 执行实时操作的方法和系统
CN1427335A (zh) 电路组控制系统
CN1574289A (zh) 半导体集成电路装置操作分析方法和系统及最优设计方法
CN1238843A (zh) 频压转换电路,延迟量确定电路,包括频压转换电路的系统,用于调节频压转换电路的输入和输出特性的方法,以及用于自动调节频压转换电路的输入和输出特性的装置
CN1991798A (zh) 半导体存储装置
CN1825488A (zh) 多次可编程半导体存储设备及其多次编程方法
CN1664777A (zh) 用于控制信息处理设备的内部状态的装置和方法
CN1573656A (zh) 并行处理系统中的电源管理系统及电源管理程序
CN1734438A (zh) 信息处理设备、信息处理方法和程序
CN1469241A (zh) 处理器、程序变换装置和变换方法以及计算机程序
CN101078994A (zh) 编译器装置、编译器方法和编译器程序
CN1239982C (zh) 数据处理系统
CN1577291A (zh) 程序调试装置、程序调试方法及程序
CN1776621A (zh) 程序变换方法
CN1300802C (zh) 半导体存储器件
CN1624698A (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
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151118

Address after: Kanagawa

Patentee after: Co., Ltd. Suo Si future

Address before: Osaka Japan

Patentee before: Matsushita Electric Industrial Co., Ltd.