JP2011096117A - Integrated circuit device - Google Patents

Integrated circuit device Download PDF

Info

Publication number
JP2011096117A
JP2011096117A JP2009251106A JP2009251106A JP2011096117A JP 2011096117 A JP2011096117 A JP 2011096117A JP 2009251106 A JP2009251106 A JP 2009251106A JP 2009251106 A JP2009251106 A JP 2009251106A JP 2011096117 A JP2011096117 A JP 2011096117A
Authority
JP
Japan
Prior art keywords
software
state
integrated circuit
circuit device
unit
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.)
Pending
Application number
JP2009251106A
Other languages
Japanese (ja)
Inventor
Fumihiko Hayakawa
文彦 早川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009251106A priority Critical patent/JP2011096117A/en
Publication of JP2011096117A publication Critical patent/JP2011096117A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Power Sources (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To control the operating state of each function block contained in an integrated circuit device in a desirable state at the execution of software. <P>SOLUTION: An integrated circuit device 1 includes a plurality of function blocks 2, observation parts 3, and a counter 4. The power state of each function block 2 is controlled independently when the integrated circuit device 1 executes the software. The observation part 3 observes the operating state of each function block 2. The counter 4 collects information on the operating states of the respective function blocks 2 from the observation parts 3. A software developer acquires information on the operating states and power states of the respective function blocks 2 at the execution of the software from the counter 4. Based on the acquired information, a software developer can tune the software so as to reduce power consumption when the integrated circuit device 1 executes the software. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

この発明は、集積回路装置に関する。   The present invention relates to an integrated circuit device.

従来、低消費電力化が実現できる演算装置の消費電力低減システムが知られている。そのようなシステムの一つとして、例えば、クロック制御ブロックが、機能ブロックの機能演算ブロックに対してゲーティドクロックを供給し、ゲーティドクロックを機能演算ブロックごとに停止させるようにしたシステムがある(例えば、特許文献1参照。)。また、プロセッサの低消費電力動作をユーザがきめ細かく定義でき、かつイベントドリブン方式を実現した電力制御装置が知られている。そのような装置の一つとして、例えば、各々電力制御情報を書き換え可能に記憶するための複数の電力制御レジスタを備えたパワーテーブルと、複数の動作条件(例えばプログラムカウンタに対する比較アドレス)を書き換え可能に記憶し、プロセッサの現在の動作が当該複数の動作条件のいずれを満たすかを判定し、当該判定の結果に応じて複数の電力制御レジスタのいずれかを選択するようにインデックス信号を供給するための条件判定器と、インデックス信号により選択された電力制御レジスタ中の電力制御情報に従って制御対象回路ブロックの消費電力を制御するための電圧・クロックコントローラとを有する装置がある(例えば、特許文献2参照。)。また、マイクロコンピュータの実使用状態に基づいた消費電力を予測する機能を有したソフトウエア開発支援装置が知られている。そのような装置の一つでは、例えば、デバッグ環境を提供するエミュレート部は、マイクロコントローラユニット(MCU)を搭載したマイクロコントローラシステムに接続されプログラムの実行等を制御する。プログラムの実行中、ロギング部はMCUの有する主要な機能(CPU高速動作モード等)の動作開始時刻と動作終了時刻とを順次記録する。消費電力データテーブルには、ロギングされる機能の消費電力データが予め記憶されている。演算部は、マイクロコントローラシステムの動作終了後、ロギングデータを基に各機能が動作した積算時間を求め、各機能の消費電力データと掛け算することによりMCUの消費電力を求める(例えば、特許文献3参照。)。   2. Description of the Related Art Conventionally, a power consumption reduction system for an arithmetic device that can realize low power consumption is known. As one of such systems, for example, there is a system in which a clock control block supplies a gated clock to a function operation block of a function block and stops the gated clock for each function operation block. (For example, refer to Patent Document 1). There is also known a power control apparatus in which the user can finely define the low power consumption operation of the processor and realizes an event driven system. As one of such devices, for example, a power table having a plurality of power control registers for storing each power control information in a rewritable manner and a plurality of operating conditions (for example, a comparison address for a program counter) can be rewritten. To determine which of the plurality of operating conditions the current operation of the processor satisfies and to supply an index signal to select one of the plurality of power control registers according to the result of the determination And a voltage / clock controller for controlling the power consumption of the circuit block to be controlled in accordance with the power control information in the power control register selected by the index signal (see, for example, Patent Document 2) .) There is also known a software development support device having a function of predicting power consumption based on the actual usage state of a microcomputer. In one such device, for example, an emulator that provides a debug environment is connected to a microcontroller system that includes a microcontroller unit (MCU) and controls the execution of programs. During execution of the program, the logging unit sequentially records the operation start time and operation end time of the main functions (CPU high-speed operation mode, etc.) of the MCU. In the power consumption data table, power consumption data of the function to be logged is stored in advance. After the operation of the microcontroller system is completed, the calculation unit obtains the accumulated time during which each function has been operated based on the logging data, and obtains the power consumption of the MCU by multiplying with the power consumption data of each function (for example, Patent Document 3). reference.).

特開2004−70737号公報JP 2004-70737 A 特開2002−182807号公報JP 2002-182807 A 特開平11−338744号公報JP 11-338744 A

しかしながら、従来の技術では、ソフトウェアの開発段階において、集積回路装置でソフトウェアが実行されたときの集積回路装置の動作を、集積回路装置に含まれる機能ブロックごとに把握することは困難である。そのため、ソフトウェアの実行時に、集積回路装置に含まれる各機能ブロックの動作状態を好ましい状態に制御することは困難である。   However, in the conventional technology, it is difficult to grasp the operation of the integrated circuit device when the software is executed in the integrated circuit device for each functional block included in the integrated circuit device in the software development stage. Therefore, it is difficult to control the operation state of each functional block included in the integrated circuit device to a preferable state when executing software.

ソフトウェアの実行時に、集積回路装置に含まれる各機能ブロックの動作状態を好ましい状態に制御することを可能とする集積回路装置を提供することを目的とする。   An object of the present invention is to provide an integrated circuit device capable of controlling the operation state of each functional block included in the integrated circuit device to a preferable state when executing software.

この集積回路装置は、複数の機能ブロック、観測部およびカウンタ部を備える。各機能ブロックは、独立して電力状態を制御される。観測部は、各機能ブロックの動作状態を観測する。カウンタ部は、観測部から各機能ブロックの動作状態の情報を集約する。   This integrated circuit device includes a plurality of functional blocks, an observation unit, and a counter unit. Each functional block is independently controlled in power state. The observation unit observes the operating state of each functional block. The counter unit collects information on the operation state of each functional block from the observation unit.

この集積回路装置によれば、ソフトウェアの実行時に、集積回路装置に含まれる各機能ブロックの動作状態を好ましい状態に制御することを可能とすることができるという効果を奏する。   According to this integrated circuit device, it is possible to control the operation state of each functional block included in the integrated circuit device to a preferable state when executing software.

実施例1にかかる集積回路装置を示すブロック図である。1 is a block diagram illustrating an integrated circuit device according to Embodiment 1. FIG. 実施例2にかかる集積回路装置を示すブロック図である。FIG. 6 is a block diagram illustrating an integrated circuit device according to a second embodiment. 実施例2にかかる観測部を示すブロック図である。FIG. 6 is a block diagram illustrating an observation unit according to a second embodiment. 実施例2にかかる機能ブロックの一例を示すブロック図である。FIG. 10 is a block diagram illustrating an example of functional blocks according to a second embodiment. 実施例2にかかる有限状態遷移機械の一例を示す説明図である。It is explanatory drawing which shows an example of the finite state transition machine concerning Example 2. FIG. 実施例2にかかる有限状態遷移機械の状態と機能ブロックの動作状態との関係の一例を示す説明図である。It is explanatory drawing which shows an example of the relationship between the state of the finite state transition machine concerning Example 2, and the operation state of a functional block. 実施例2にかかるコマンドの動きに対する動作の遷移の一例を示すタイムチャートである。12 is a time chart illustrating an example of an operation transition with respect to a command movement according to the second embodiment; 実施例2にかかるカウンタ部の一例を示すブロック図である。FIG. 10 is a block diagram illustrating an example of a counter unit according to the second embodiment. 実施例2にかかる集積回路装置を用いたソフトウェアの改変手順の一例を示すフローチャートである。12 is a flowchart illustrating an example of a software modification procedure using the integrated circuit device according to the second embodiment. 実施例2にかかる改変対象のソフトウェアのアルゴリズムの一例を示すフローチャートである。12 is a flowchart illustrating an example of an algorithm of software to be modified according to a second embodiment. 実施例2にかかる動作情報の一例を示す説明図である。It is explanatory drawing which shows an example of the operation information concerning Example 2. 実施例2にかかる電力状態の一例を示す説明図である。It is explanatory drawing which shows an example of the electric power state concerning Example 2. FIG.

以下に添付図面を参照して、この集積回路装置の好適な実施の形態を詳細に説明する。   Hereinafter, preferred embodiments of the integrated circuit device will be described in detail with reference to the accompanying drawings.

(実施例1)
図1は、実施例1にかかる集積回路装置を示すブロック図である。図1に示すように、集積回路装置1は、例えばA〜Fの複数の機能ブロック2、観測部3およびカウンタ部4を備えている。各機能ブロック2は、集積回路装置1がソフトウェアを実行する際に、独立して電力状態を制御される。観測部3は、各機能ブロック2の動作状態を観測する。カウンタ部4は、観測部3から各機能ブロック2の動作状態の情報を集約する。図1に示す例では、各機能ブロック2にそれぞれ観測部3が設けられているが、2個以上の機能ブロック2に対して1個の観測部3が共通に設けられていてもよい。なお、図1においては、観測部3とカウンタ部4との接続関係が実線で示されている(図2においても同じ)。機能ブロック2間の接続関係および機能ブロック2と集積回路装置1の外部との接続関係は破線で示されている(図2においても同じ)。
Example 1
FIG. 1 is a block diagram of an integrated circuit device according to the first embodiment. As shown in FIG. 1, the integrated circuit device 1 includes a plurality of function blocks 2, an observation unit 3, and a counter unit 4, for example, A to F. Each functional block 2 is independently controlled in power state when the integrated circuit device 1 executes software. The observation unit 3 observes the operation state of each functional block 2. The counter unit 4 collects information on the operation state of each functional block 2 from the observation unit 3. In the example shown in FIG. 1, the observation unit 3 is provided for each functional block 2, but one observation unit 3 may be provided in common for two or more functional blocks 2. In FIG. 1, the connection relationship between the observation unit 3 and the counter unit 4 is indicated by a solid line (the same applies to FIG. 2). The connection relationship between the functional blocks 2 and the connection relationship between the functional block 2 and the outside of the integrated circuit device 1 are indicated by broken lines (the same applies to FIG. 2).

実施例1によれば、集積回路装置1でソフトウェアを実行すると、カウンタ部4に各機能ブロック2の動作状態が集約される。従って、カウンタ部4を参照することによって、集積回路装置1がソフトウェアを実行するときの各機能ブロック2の動作状態の情報が得られる。例えばソフトウェアの開発段階において、集積回路装置1で開発途中のソフトウェアを実行すると、各機能ブロック2の動作状態の情報が得られる。その情報には、例えば、ある処理を行う際に、ある機能ブロックが低電力状態ではないのに余り動作していない、というような情報が含まれることがある。ソフトウェアの開発者は、このような情報を得て、該情報に基づいてソフトウェアを改変することができる。例えば、ソフトウェアの開発者は、処理ごとに各機能ブロックの電力状態が当該機能ブロックの動作状態に適した状態になるように、開発途中のソフトウェアに電力状態を指示するコードを挿入することができる。従って、ソフトウェアの開発者は、集積回路装置1を用いて開発途中のソフトウェアを実行することによって、各機能ブロック2の電力状態を動作状態に適した好ましい状態に制御することが可能な最終的なソフトウェアを開発することができる。開発段階において各機能ブロックの動作状態の情報が得られない場合には、ソフトウェアの開発者は、各機能ブロックの電力状態を制御する情報を有していないため、各機能ブロックの動作状態に適した電力状態のソフトウェアを開発することは困難である。実施例1によれば、各機能ブロックの動作状態に適した電力状態のソフトウェアを開発することができる。このようにして開発したソフトウェアを汎用プロセッサや組み込み機器用のプロセッサで実行することにより、汎用プロセッサや組み込み機器用のプロセッサの消費電力を削減することができる。   According to the first embodiment, when the software is executed in the integrated circuit device 1, the operation state of each functional block 2 is collected in the counter unit 4. Therefore, by referring to the counter unit 4, information on the operation state of each functional block 2 when the integrated circuit device 1 executes software is obtained. For example, when software under development is executed in the integrated circuit device 1 in the software development stage, information on the operation state of each functional block 2 is obtained. The information may include information that, for example, when a certain process is performed, a certain functional block is not operating in spite of being in a low power state. Software developers can obtain such information and modify the software based on the information. For example, the software developer can insert a code indicating the power state into the software under development so that the power state of each functional block is suitable for the operation state of the functional block for each process. . Therefore, the software developer can finally control the power state of each functional block 2 to a preferable state suitable for the operation state by executing the software under development using the integrated circuit device 1. Software can be developed. If the information about the operating status of each functional block is not available at the development stage, the software developer does not have information to control the power status of each functional block, so it is suitable for the operating status of each functional block. It is difficult to develop software with a high power state. According to the first embodiment, it is possible to develop software in a power state suitable for the operation state of each functional block. By executing the software thus developed on a general-purpose processor or a processor for an embedded device, the power consumption of the general-purpose processor or the processor for an embedded device can be reduced.

(実施例2)
図2は、実施例2にかかる集積回路装置を示すブロック図である。図2に示すように、集積回路装置11は、例えばA〜Eの複数の機能ブロック12、観測部13、カウンタ部14および制御部(CPU:Central Processing Unit)15を備えている。制御部15は、機能ブロックの一種である。制御部15は、カウンタ部14に対してカウントの開始および停止を制御する。制御部15は、カウンタ部14に対してカウント値の読み出しを制御する。また、集積回路装置11は、機能ブロックの一種として、外部との入出力インタフェース(IO)を備えている。例えば、入出力インタフェースにも観測部16が設けられている。
(Example 2)
FIG. 2 is a block diagram of an integrated circuit device according to the second embodiment. As shown in FIG. 2, the integrated circuit device 11 includes, for example, a plurality of functional blocks 12 of A to E, an observation unit 13, a counter unit 14, and a control unit (CPU: Central Processing Unit) 15. The control unit 15 is a kind of functional block. The control unit 15 controls the counter unit 14 to start and stop counting. The control unit 15 controls the counter unit 14 to read the count value. The integrated circuit device 11 includes an input / output interface (IO) with the outside as a kind of functional block. For example, the observation unit 16 is also provided in the input / output interface.

機能ブロック12、制御部15および入出力インタフェースは、CPUが実行するソフトウェアによって電力状態を制御される単位である。すなわち、各機能ブロック12、制御部15および各入出力インタフェースごとに電力状態が制御される。例えば、各機能ブロック12、制御部15および各入出力インタフェースには、クロックゲーティング技術やパワーゲーティング技術やDVFS(Dynamic Voltage and Frequency Scaling、動的電圧・周波数スケーリング)技術が適用されている。機能ブロック12、機能ブロックとしての制御部15、観測部13,16およびカウンタ部14のその他については、実施例1と同様である。   The functional block 12, the control unit 15, and the input / output interface are units whose power state is controlled by software executed by the CPU. That is, the power state is controlled for each functional block 12, the control unit 15, and each input / output interface. For example, a clock gating technique, a power gating technique, and a DVFS (Dynamic Voltage and Frequency Scaling) technique are applied to each functional block 12, the control unit 15, and each input / output interface. The rest of the function block 12, the control unit 15 as the function block, the observation units 13 and 16, and the counter unit 14 are the same as in the first embodiment.

図3は、実施例2にかかる観測部を示すブロック図である。図3に示すように、観測部13は、解析部21および検出部22を備えている。解析部21は、機能ブロック12の有限状態遷移機械(FSM:Finite State Machine)23の状態を解析する。解析部21は、機能ブロック12の動作状態として有限状態遷移機械23の状態を出力する。検出部22は、集積回路装置11でソフトウェアを実行しているときの機能ブロック12の電力状態を検出する。検出部22は、低電力モードとして機能ブロック12の電力状態を出力する。入出力インタフェースの観測部16についても同様である。   FIG. 3 is a block diagram of an observation unit according to the second embodiment. As shown in FIG. 3, the observation unit 13 includes an analysis unit 21 and a detection unit 22. The analysis unit 21 analyzes a state of a finite state machine (FSM) 23 of the functional block 12. The analysis unit 21 outputs the state of the finite state transition machine 23 as the operation state of the functional block 12. The detection unit 22 detects the power state of the functional block 12 when the integrated circuit device 11 is executing software. The detection unit 22 outputs the power state of the functional block 12 as the low power mode. The same applies to the observation unit 16 of the input / output interface.

図4は、実施例2にかかる機能ブロックの一例を示すブロック図である。機能ブロックの一例として、例えばバスブリッジ部が挙げられる。図4には、機能ブロックがバスブリッジ部である場合の例が示されている。バスブリッジ部31は、モジュールG32とモジュールH33との間でバスの仲介(橋渡し)をする。図4に示すように、例えばバスブリッジ部31は、モジュールG32からデータのリード要求を受け付け、モジュールH33へデータのリード要求を渡す。例えばバスブリッジ部31は、モジュールH33からデータの返送を受け付け、モジュールG32へデータを返送する。   FIG. 4 is a block diagram of an example of functional blocks according to the second embodiment. An example of a functional block is a bus bridge unit. FIG. 4 shows an example in which the functional block is a bus bridge unit. The bus bridge unit 31 mediates (bridges) the bus between the module G32 and the module H33. As shown in FIG. 4, for example, the bus bridge unit 31 receives a data read request from the module G32 and passes the data read request to the module H33. For example, the bus bridge unit 31 receives a data return from the module H33 and returns the data to the module G32.

図5は、実施例2にかかる有限状態遷移機械の一例を示す説明図である。図5に示すように、例えばバスブリッジ部31の場合、有限状態遷移機械23の状態には、アイドル(Idle)、コマンド(Command)、ウェイト(Wait)およびデータ(Data)の状態がある。   FIG. 5 is an explanatory diagram of an example of the finite state transition machine according to the second embodiment. As shown in FIG. 5, for example, in the case of the bus bridge unit 31, the state of the finite state transition machine 23 includes idle (Idle), command (Command), wait (Wait), and data (Data) states.

図6は、実施例2にかかる有限状態遷移機械の状態と機能ブロックの動作状態との関係の一例を示す説明図である。図6の図表41に示すように、例えばバスブリッジ部31の場合、バスブリッジ部31がアイドル状態にあるときに有限状態遷移機械23はアイドル状態となる。バスブリッジ部31が動作中の状態にあるときには、有限状態遷移機械23はコマンド、ウェイトおよびデータのいずれかの状態となる。換言すれば、有限状態遷移機械23がコマンド、ウェイトおよびデータのいずれかの状態にあるときには、バスブリッジ部31は動作中である。   FIG. 6 is an explanatory diagram of an example of the relationship between the state of the finite state transition machine and the operation state of the functional block according to the second embodiment. As shown in a chart 41 of FIG. 6, for example, in the case of the bus bridge unit 31, the finite state transition machine 23 is in an idle state when the bus bridge unit 31 is in an idle state. When the bus bridge unit 31 is in an operating state, the finite state transition machine 23 is in a command, wait, or data state. In other words, when the finite state transition machine 23 is in a command, wait, or data state, the bus bridge unit 31 is operating.

図7は、実施例2にかかるコマンドの動きに対する動作の遷移の一例を示すタイムチャートである。図7には、一例として、図4に示す構成においてモジュールG32がモジュールH33からデータを読み出す場合のタイムチャート42が示されている。図7に示すように、モジュールG32からのリード要求があるまで、有限状態遷移機械23はアイドル状態にある。この状態では、バスブリッジ部31はアイドル状態である。バスブリッジ部31がモジュールG32からのリード要求を受け付けると、有限状態遷移機械23はコマンド状態となる。バスブリッジ部31は動作中となる。バスブリッジ部31がモジュールH33へリード要求を渡すと、有限状態遷移機械23はウェイト状態となる。バスブリッジ部31は動作中のままである。バスブリッジ部31がモジュールH33からデータの返送を受け付けると、有限状態遷移機械23はデータ状態となる。バスブリッジ部31は動作中のままである。バスブリッジ部31がモジュールG32へデータを返送すると、有限状態遷移機械23はアイドル状態となる。バスブリッジ部31はアイドル状態となる。なお、有限状態遷移機械23の状態の種類および状態が遷移する事象は、図5〜図8に示す例に限らない。   FIG. 7 is a time chart illustrating an example of a transition of an operation with respect to a command movement according to the second embodiment. FIG. 7 shows, as an example, a time chart 42 when the module G32 reads data from the module H33 in the configuration shown in FIG. As shown in FIG. 7, the finite state machine 23 is in an idle state until there is a read request from the module G32. In this state, the bus bridge unit 31 is in an idle state. When the bus bridge unit 31 receives a read request from the module G32, the finite state transition machine 23 enters a command state. The bus bridge unit 31 is in operation. When the bus bridge unit 31 passes a read request to the module H33, the finite state transition machine 23 enters a wait state. The bus bridge unit 31 remains in operation. When the bus bridge unit 31 receives the return of data from the module H33, the finite state transition machine 23 enters the data state. The bus bridge unit 31 remains in operation. When the bus bridge unit 31 returns data to the module G32, the finite state transition machine 23 enters an idle state. The bus bridge unit 31 is in an idle state. Note that the state type and the event of the state transition of the finite state transition machine 23 are not limited to the examples illustrated in FIGS.

図8は、実施例2にかかるカウンタ部の一例を示すブロック図である。図8に示すように、カウンタ部14は、カウンタ51および電力モードの格納部52を備えている。カウンタ51および電力モードの格納部52は、各観測部13,16ごと、すなわち観測対象の機能ブロックごとに設けられている。カウンタ51は、ソフトウェアの実行中の機能ブロックの動作量をカウントする。カウンタ51は、制御部15の制御によって、カウントの開始および停止を行う。カウンタ51のカウント値の読み出しは、制御部15により制御される。カウンタ51は、制御部15の制御によって、カウント値を出力する。電力モードの格納部52は、ソフトウェアの実行中の機能ブロックの電力状態を格納する。電力モードの格納部52は、制御部15の制御によって、格納している電力状態を出力する。   FIG. 8 is a block diagram of an example of the counter unit according to the second embodiment. As illustrated in FIG. 8, the counter unit 14 includes a counter 51 and a power mode storage unit 52. The counter 51 and the power mode storage unit 52 are provided for each of the observation units 13 and 16, that is, for each functional block to be observed. The counter 51 counts the operation amount of the functional block during execution of software. The counter 51 starts and stops counting under the control of the control unit 15. Reading of the count value of the counter 51 is controlled by the control unit 15. The counter 51 outputs a count value under the control of the control unit 15. The power mode storage unit 52 stores the power state of the function block being executed by the software. The power mode storage unit 52 outputs the stored power state under the control of the control unit 15.

実施例2にかかる集積回路装置11の適用例として、例えばソフトウェアの開発段階において、オリジナルのソフトウェアを実行させる装置が挙げられる。集積回路装置11でオリジナルのソフトウェアを実行させることによって、集積回路装置11が該ソフトウェアを実行したときの集積回路装置11の各機能ブロック12、制御部15および入出力インタフェースの動作状態や電力状態の情報が得られる。ソフトウェアの開発者は、得られた情報に基づいて、オリジナルのソフトウェアを低電力版のソフトウェアに改変することができる。オリジナルのソフトウェアは、十分に低電力化されていない。以下に、ソフトウェアの改変手順について説明する。   As an application example of the integrated circuit device 11 according to the second embodiment, for example, a device that executes original software in a software development stage can be cited. By causing the integrated circuit device 11 to execute the original software, the operation state and the power state of each functional block 12, the control unit 15 and the input / output interface of the integrated circuit device 11 when the integrated circuit device 11 executes the software. Information is obtained. Based on the obtained information, the software developer can change the original software into a low-power version of the software. The original software is not sufficiently low power. The software modification procedure will be described below.

図9は、実施例2にかかる集積回路装置を用いたソフトウェアの改変手順の一例を示すフローチャートである。図9に示すように、まず、ソフトウェアの開発者は、オリジナルのソフトウェア61を用意する。そして、ソフトウェアの開発者は、オリジナルのソフトウェア61に測定ポイントを埋め込む(ステップS1)。ソフトウェアの開発者は、ソフトウェア上意味のある単位ごとに測定ポイントを設定してもよい。ソフトウェア上意味のある単位の一例として、例えば関数の区切りが挙げられる。ソフトウェアの開発者は、例えばソフトウェア上意味のある単位の開始時点および終了時点にそれぞれ各カウンタ51のカウントを開始させるコードおよび停止させるコードを埋め込む。このようにして、オリジナルのソフトウェア61に測定ポイントが埋め込まれた測定用のソフトウェア62が得られる。   FIG. 9 is a flowchart of an example of a software modification procedure using the integrated circuit device according to the second embodiment. As shown in FIG. 9, first, a software developer prepares original software 61. Then, the software developer embeds the measurement point in the original software 61 (step S1). The software developer may set a measurement point for each meaningful unit in software. An example of a meaningful unit in software is a function delimiter. For example, a software developer embeds a code for starting and stopping a count of each counter 51 at the start time and end time of a meaningful unit in software. In this way, measurement software 62 in which measurement points are embedded in original software 61 is obtained.

次いで、ソフトウェアの開発者は、実施例2にかかる集積回路装置11で測定用のソフトウェア62を実行する。それによって、各カウンタ51は、測定ポイントの開始時点でカウントを開始し、測定ポイントの終了時点でカウントを停止する。そして、当該測定ポイントにおける各機能ブロック12、制御部15および各入出力インタフェースの動作状態や電力状態の情報が得られる(ステップS2)。測定ポイントを複数設定する場合には、ステップS1に戻り、オリジナルのソフトウェア61に別の測定ポイントが埋め込まれる。そして、測定用のソフトウェア62の実行により、該別の測定ポイントにおける各機能ブロック12、制御部15および各入出力インタフェースの動作状態や電力状態の情報が得られる。   Next, the software developer executes the measurement software 62 in the integrated circuit device 11 according to the second embodiment. Thereby, each counter 51 starts counting at the start time of the measurement point, and stops counting at the end time of the measurement point. Then, information on the operation state and power state of each functional block 12, the control unit 15, and each input / output interface at the measurement point is obtained (step S2). When a plurality of measurement points are set, the process returns to step S1 and another measurement point is embedded in the original software 61. Then, by executing the measurement software 62, information on the operation state and power state of each functional block 12, the control unit 15, and each input / output interface at the other measurement point is obtained.

全ての測定ポイントについてステップS1およびステップS2を繰り返すことによって、各機能ブロックの動作情報63が得られる。各機能ブロックの動作情報63には、全ての測定ポイントについて、各機能ブロック12、制御部15および各入出力インタフェースの動作状態や電力状態の情報が含まれている。ソフトウェアの開発者は、各機能ブロックの動作情報63に基づいて、オリジナルのソフトウェア61のいずれの測定ポイントにおいていずれの機能ブロック12、制御部15および入出力インタフェースの電力状態を変更することができるかを判断することができる。従って、ソフトウェアの開発者は、その判断結果に基づいて、オリジナルのソフトウェア61の適当な箇所に電力状態を制御するプログラムコードを挿入する処理を行い、ソフトウェアを改変する(ステップS3)。それによって、オリジナルのソフトウェア61よりも消費電力の少ない低電力版のソフトウェア64が得られる。   By repeating Step S1 and Step S2 for all measurement points, the operation information 63 of each functional block is obtained. The operation information 63 of each function block includes information on the operation state and power state of each function block 12, the control unit 15, and each input / output interface for all measurement points. Based on the operation information 63 of each functional block, the software developer can change the power state of which functional block 12, the control unit 15, and the input / output interface at which measurement point of the original software 61 Can be judged. Therefore, the software developer performs a process of inserting a program code for controlling the power state into an appropriate portion of the original software 61 based on the determination result, and modifies the software (step S3). As a result, a low-power version of software 64 that consumes less power than the original software 61 is obtained.

図10は、実施例2にかかる改変対象のソフトウェアのアルゴリズムの一例を示すフローチャートである。図10に示すように、このアルゴリズムの例では、例えばユーザーからの入力処理(ステップS11)の後に、処理1(ステップS12)、処理2(ステップS13)、処理3(ステップS14)および処理4(ステップS15)が順次実施される。最後に入出力処理(IO処理)(ステップS16)が実施されて、ステップS11に戻る。測定用のソフトウェア62においては、処理1、処理2、処理3および処理4のそれぞれについて、処理の先頭にカウント開始指示71が埋め込まれ、処理の末尾にカウント停止指示72が埋め込まれる。例えば、処理1から処理4までは、動画データを処理する。動画データの処理の一例として、例えば圧縮画像データを展開して表示する処理が挙げられる。   FIG. 10 is a flowchart of an example of the algorithm of the software to be modified according to the second embodiment. As shown in FIG. 10, in this algorithm example, for example, after the input process from the user (step S11), the process 1 (step S12), the process 2 (step S13), the process 3 (step S14), and the process 4 ( Step S15) is performed sequentially. Finally, input / output processing (IO processing) (step S16) is performed, and the process returns to step S11. In the measurement software 62, for each of the processing 1, processing 2, processing 3 and processing 4, a count start instruction 71 is embedded at the beginning of the processing and a count stop instruction 72 is embedded at the end of the processing. For example, in processing 1 to processing 4, moving image data is processed. As an example of the processing of the moving image data, for example, a process of expanding and displaying the compressed image data can be given.

図11は、実施例2にかかる動作情報の一例を示す説明図である。図12は、実施例2にかかる電力状態の一例を示す説明図である。例えば図10に示すソフトウェアを実施例2にかかる集積回路装置11で実行した結果、図11の図表81に示す結果が得られたとする。図11の図表81には、「測定対象時間」というフィールドが設けられている。各処理における測定対象時間は、例えば集積回路装置11の図示省略した時計機能やタイマー機能などにより計測される。図11の図表81における電力モードと具体的な動作状態との関係の一例が図12の図表82に示されている。モード1は、パワーゲーティングされた深い低電力状態である。モード2は、DVFSにより電圧・周波数を落としたやや深い低電力状態である。モード3は、クロックを停止された浅い低電力状態である。モード4は、フルスピードの状態である。低電力状態が深くなるほど、より消費電力が少なくなり、低電力状態が浅くなるほど、より消費電力が多くなる。   FIG. 11 is an explanatory diagram of an example of operation information according to the second embodiment. FIG. 12 is an explanatory diagram of an example of a power state according to the second embodiment. For example, assume that the result shown in the chart 81 of FIG. 11 is obtained as a result of executing the software shown in FIG. 10 on the integrated circuit device 11 according to the second embodiment. In the chart 81 of FIG. 11, a field “measurement target time” is provided. The measurement target time in each process is measured by, for example, a clock function or a timer function (not shown) of the integrated circuit device 11. An example of the relationship between the power mode and the specific operation state in the chart 81 of FIG. 11 is shown in the chart 82 of FIG. Mode 1 is a deep low power state that is power gated. Mode 2 is a slightly deep low-power state in which the voltage and frequency are reduced by DVFS. Mode 3 is a shallow low power state with the clock stopped. Mode 4 is a full speed state. The deeper the low power state, the lower the power consumption, and the shallower the low power state, the more power consumption.

図11に示すように、処理4において機能Aのカウント値は0である。従って、処理4において機能Aは、何も処理を行っていない。それにもかかわらず、処理4において機能Aは、低電力状態でない。従って、ソフトウェアの開発者は、図11の図表81に基づいて、処理4において機能Aをパワーゲーティングなどの深い低電力状態にするのがよいと判断することができる。処理3において機能Aは重い処理を行っているので、例えば処理3において機能Aをモード4とし、処理4を実行する直前にモード1に遷移させるのがよいということがわかる。また、処理3および処理4において機能Bは、軽い処理を行っている。それにもかかわらず、処理3および処理4において機能Bは、低電力状態でない。従って、ソフトウェアの開発者は、図11の図表81に基づいて、処理3および処理4において機能Bを動作周波数の低減などのやや深い低電力状態にするのがよいと判断することができる。処理2において機能Bはやや重い処理を行っているので、例えば処理2において機能Bをモード3とし、処理3を実行する直前にモード2に遷移させるのがよいということがわかる。   As shown in FIG. 11, the count value of function A is 0 in process 4. Therefore, in the process 4, the function A does not perform any process. Nevertheless, in process 4, function A is not in a low power state. Therefore, the software developer can determine that the function A should be set to a deep low power state such as power gating in the process 4 based on the chart 81 of FIG. Since function A is performing heavy processing in process 3, it can be seen that, for example, function A should be set to mode 4 in process 3 and transition to mode 1 immediately before execution of process 4. Further, in the processing 3 and the processing 4, the function B performs a light processing. Nevertheless, in process 3 and process 4, function B is not in a low power state. Therefore, the software developer can determine based on the chart 81 of FIG. 11 that the function B should be in a slightly deep low-power state such as a reduction in operating frequency in the processing 3 and the processing 4. Since the function B is a somewhat heavy process in the process 2, it can be seen that, for example, the function B is set to the mode 3 in the process 2 and the mode 2 is changed to just before the process 3 is executed.

実施例2によれば、実施例1と同様の効果が得られる。また、測定ポイントごとに測定対象時間の情報が得られるので、次のような効果が得られる。例えば、ある処理におけるある機能ブロックの電力状態をより深い低電力状態に設定し直すのがよいということと、測定対象時間の情報から該処理に要する時間が短いということがわかったとする。この場合、深い低電力状態への遷移および深い低電力状態からの復帰に時間がかかるため、ソフトウェアの開発者は、集積回路装置のパフォーマンスを低下させないようにするには、深い低電力状態に設定し直さない方が好ましい、という判断をすることができる。なお、実施例1および実施例2において、各機能ブロックおよび制御部をそれぞれ独立した半導体チップとし、該半導体チップを回路基板に実装した装置についても、本発明を適用することができる。   According to the second embodiment, the same effect as the first embodiment can be obtained. In addition, since information on the measurement target time is obtained for each measurement point, the following effects can be obtained. For example, it is assumed that it is preferable to reset the power state of a certain functional block in a certain process to a deeper low power state, and that the time required for the process is short from the measurement target time information. In this case, the transition to and return from the deep low-power state takes time, so software developers can set the deep low-power state to avoid degrading the performance of the integrated circuit device. It can be determined that it is preferable not to rework. In the first and second embodiments, the present invention can also be applied to an apparatus in which each functional block and control unit is an independent semiconductor chip and the semiconductor chip is mounted on a circuit board.

1,11 集積回路装置
2,12 機能ブロック
3,13,16 観測部
4,14 カウンタ部
15 制御部
21 解析部
22 検出部
23 有限状態遷移機械
DESCRIPTION OF SYMBOLS 1,11 Integrated circuit device 2,12 Functional block 3,13,16 Observation part 4,14 Counter part 15 Control part 21 Analysis part 22 Detection part 23 Finite state transition machine

Claims (5)

独立して電力状態が制御される複数の機能ブロックと、
該各機能ブロックの動作状態を観測する観測部と、
該観測部から該各機能ブロックの動作状態の情報を集約するカウンタ部と、
を備えることを特徴とする集積回路装置。
A plurality of functional blocks whose power states are controlled independently;
An observation unit for observing the operation state of each functional block;
A counter unit for aggregating information on the operating state of each functional block from the observation unit;
An integrated circuit device comprising:
前記観測部は、前記各機能ブロックの有限状態遷移機械の状態を解析する解析部、を備えることを特徴とする請求項1に記載の集積回路装置。   The integrated circuit device according to claim 1, wherein the observation unit includes an analysis unit that analyzes a state of the finite state transition machine of each functional block. 前記観測部は、ソフトウェアの実行中の前記各機能ブロックの電力状態を検出する検出部、を備えることを特徴とする請求項2に記載の集積回路装置。   The integrated circuit device according to claim 2, wherein the observation unit includes a detection unit that detects a power state of each functional block during execution of software. 前記カウンタ部は、ソフトウェアの実行中の前記各機能ブロックの動作量をカウントすることを特徴とする請求項1〜3のいずれか一つに記載の集積回路装置。   The integrated circuit device according to claim 1, wherein the counter unit counts an operation amount of each functional block during execution of software. 前記カウンタ部に対してカウントの開始および停止、並びにカウント値の読み出しを制御する制御部、を備えることを特徴とする請求項4に記載の集積回路装置。   5. The integrated circuit device according to claim 4, further comprising a control unit that controls start and stop of counting and reading of the count value with respect to the counter unit.
JP2009251106A 2009-10-30 2009-10-30 Integrated circuit device Pending JP2011096117A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009251106A JP2011096117A (en) 2009-10-30 2009-10-30 Integrated circuit device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009251106A JP2011096117A (en) 2009-10-30 2009-10-30 Integrated circuit device

Publications (1)

Publication Number Publication Date
JP2011096117A true JP2011096117A (en) 2011-05-12

Family

ID=44112930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009251106A Pending JP2011096117A (en) 2009-10-30 2009-10-30 Integrated circuit device

Country Status (1)

Country Link
JP (1) JP2011096117A (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099148A (en) * 2001-09-19 2003-04-04 Sanyo Electric Co Ltd Data processor and system controller available for the same, and data conversion method
JP2004318502A (en) * 2003-04-16 2004-11-11 Matsushita Electric Ind Co Ltd Microprocessor with power control function, and device for converting instruction
JP2004363374A (en) * 2003-06-05 2004-12-24 Matsushita Electric Ind Co Ltd Semiconductor integrated circuit device with power source control function
JP2008141013A (en) * 2006-12-01 2008-06-19 Matsushita Electric Ind Co Ltd Semiconductor device
JP2009075965A (en) * 2007-09-21 2009-04-09 Fujitsu Microelectronics Ltd Software development method and software development device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099148A (en) * 2001-09-19 2003-04-04 Sanyo Electric Co Ltd Data processor and system controller available for the same, and data conversion method
JP2004318502A (en) * 2003-04-16 2004-11-11 Matsushita Electric Ind Co Ltd Microprocessor with power control function, and device for converting instruction
JP2004363374A (en) * 2003-06-05 2004-12-24 Matsushita Electric Ind Co Ltd Semiconductor integrated circuit device with power source control function
JP2008141013A (en) * 2006-12-01 2008-06-19 Matsushita Electric Ind Co Ltd Semiconductor device
JP2009075965A (en) * 2007-09-21 2009-04-09 Fujitsu Microelectronics Ltd Software development method and software development device

Similar Documents

Publication Publication Date Title
KR101496077B1 (en) Obtaining power profile information with low overhead
CN100338581C (en) Operating system-independent method and system of determining CPU utilization
CA2695564C (en) Modular re-configurable profiling core for multiprocessor systems-on-chip
Tan et al. EMSIM: An energy simulation framework for an embedded operating system
JP5353227B2 (en) Information processing apparatus having performance measurement program, performance measurement method, and performance measurement function.
Xu et al. Automated OS-level device runtime power management
CN101135973A (en) System and method for automatic installation of device driver
US20110016455A1 (en) Power Profiling for Embedded System Design
Noureddine et al. Unit testing of energy consumption of software libraries
JP2007272692A (en) Profiling program and profiling method
JP2010015534A (en) Method and apparatus for simulating multicore microcomputer-based system
US20090254767A1 (en) Energy Management
LeBeane et al. Watt watcher: fine-grained power estimation for emerging workloads
WO2011159892A1 (en) Multiple platform support in computer system firmware
JP2006178646A (en) Information processor, information processing method, semiconductor device, and computer program
Livingston et al. Computer using too much power? give it a rest (runtime energy saving technology)
RU2432601C2 (en) Method of introducing determinism among multiple clock intervals
JP4968325B2 (en) Software optimization apparatus and optimization method
CN1834940A (en) Method of realizing breakpoint modulating function by embedding counter in command
JP2011197803A (en) Program execution control method
US20120017100A1 (en) Power System Optimization and Verification for Embedded System Design
JP5542643B2 (en) Simulation apparatus and simulation program
Stokke et al. High-precision power modelling of the tegra k1 variable smp processor architecture
JP2009175960A (en) Virtual multiprocessor system
JP2011096117A (en) Integrated circuit device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130611

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130812

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140318