JP2015038780A - Controller, information processing system and program - Google Patents
Controller, information processing system and program Download PDFInfo
- Publication number
- JP2015038780A JP2015038780A JP2014237877A JP2014237877A JP2015038780A JP 2015038780 A JP2015038780 A JP 2015038780A JP 2014237877 A JP2014237877 A JP 2014237877A JP 2014237877 A JP2014237877 A JP 2014237877A JP 2015038780 A JP2015038780 A JP 2015038780A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- unit
- mode
- sleep state
- power
- 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
Links
Images
Abstract
Description
本発明の実施形態は、制御装置、情報処理システムおよびプログラムに関する。 Embodiments described herein relate generally to a control device, an information processing system, and a program.
従来、マイクロプロセッサなどが搭載されたシステムの消費電力を低減するための様々な技術が知られている。例えばシステムの動作が一時的に停止するスリープ状態(節電状態)の場合は、クロックが低速に設定される一方、スリープ状態から復帰して処理を実行する場合は、クロックが高速に設定される技術が知られている。 Conventionally, various techniques for reducing power consumption of a system in which a microprocessor or the like is mounted are known. For example, in the sleep state (power saving state) in which the system operation is temporarily stopped, the clock is set to a low speed, while in the case of executing the process after returning from the sleep state, the clock is set to a high speed. It has been known.
しかしながら、従来の技術では、スリープ状態から復帰した後の処理に必要な時間を全く考慮せずに復帰後のシステムの動作状態が設定されるので、システムの省電力化を適切に行うことができない場合がある。例えばスリープ状態から復帰した後の処理に要する時間が短い場合は、システムが必要な電力量は小さいにもかかわらず、クロックが高速に設定されることで無駄な消費電力が発生してしまう。これにより、省電力化を適切に行うことができない。 However, in the conventional technique, the system operating state after the return is set without taking into account the time required for the processing after returning from the sleep state, and thus the power saving of the system cannot be appropriately performed. There is a case. For example, when the time required for processing after returning from the sleep state is short, wasteful power consumption occurs due to the clock being set at high speed even though the amount of power required by the system is small. Thereby, power saving cannot be performed appropriately.
本発明が解決しようとする課題は、省電力化を適切に行うことが可能な制御装置、情報処理システムおよびプログラムを提供することである。 The problem to be solved by the present invention is to provide a control device, an information processing system, and a program capable of appropriately performing power saving.
実施形態の制御装置は、設定部を備える。設定部は、電力を個別に制御可能な複数の要素を含むシステムが、電力が供給される要素の数が所定数に制限されて動作を停止するスリープ状態から復帰する要因が発生した場合は、スリープ状態から復帰した後の処理に必要な時間を示すシステム処理時間に応じてシステムの動作状態を示すモードを設定する。 The control device of the embodiment includes a setting unit. When the setting unit has a factor that causes the system including a plurality of elements capable of individually controlling power to return from the sleep state in which the number of elements to which power is supplied is limited to a predetermined number and stops operation, A mode indicating the operating state of the system is set according to the system processing time indicating the time required for processing after returning from the sleep state.
実施形態のプログラムは、コンピュータに、電力を個別に制御可能な複数の要素を含むシステムが、電力が供給される前記要素の数が所定数に制限されて動作を停止するスリープ状態から復帰する要因が発生した場合は、スリープ状態から復帰した後の処理に必要な時間を示すシステム処理時間に応じてシステムの動作状態を示すモードを設定するステップを実行させるためのプログラムである。 The program according to the embodiment is a factor that causes a computer including a plurality of elements capable of individually controlling power to return from a sleep state in which the number of elements to which power is supplied is limited to a predetermined number and the operation is stopped. When this occurs, this is a program for executing a step of setting a mode indicating the operating state of the system in accordance with the system processing time indicating the time required for processing after returning from the sleep state.
実施形態の情報処理システムは、電力を個別に制御可能な複数の要素を含むシステムであって、情報処理システムが、電力が供給される前記要素の数が所定数に制限されて動作を停止するスリープ状態から復帰する要因が発生した場合は、スリープ状態から復帰した後の処理に必要な時間に応じたモードで動作する。 The information processing system according to the embodiment includes a plurality of elements capable of individually controlling power, and the information processing system stops operation when the number of elements to which power is supplied is limited to a predetermined number. When a factor for returning from the sleep state occurs, the device operates in a mode corresponding to the time required for processing after returning from the sleep state.
以下、添付図面を参照しながら、本発明に係る制御装置、情報処理システムおよびプログラムの実施の形態を詳細に説明する。 Hereinafter, embodiments of a control device, an information processing system, and a program according to the present invention will be described in detail with reference to the accompanying drawings.
(第1実施形態)
図1は、本実施形態のターゲットシステム(以下、単に「システム」と呼ぶ)10の構成例を示すブロック図である。図1に示すように、システム10は、プロセッサ100と、記憶領域170とを備え、互いにバス190で相互に接続されている。ここでは、システム10は、供給される電力を個別に制御可能な複数の要素を含むと捉えることもできる。上記の要素には、電力を個別に制御可能な部品や部品内の区画などが含まれる。例えばプロセッサ100および記憶領域170を含むSOC(システムオンチップ)の中の1区画なども上記要素となり得る。
(First embodiment)
FIG. 1 is a block diagram illustrating a configuration example of a target system (hereinafter simply referred to as “system”) 10 according to the present embodiment. As shown in FIG. 1, the
プロセッサ100は、1または複数の処理を実行可能な処理装置である。図1に示すように、プロセッサ100は、CPU110と記憶部120とを有する。より具体的には、記憶部120は、各種のデータが記憶されるレジスタ130、使用頻度の高いデータなどが記憶される1次キャッシュ140および2次キャッシュ150を含む。1次キャッシュ140は、より使用頻度が高いデータを記憶する。2次キャッシュ150は、1次キャッシュ140から漏れた使用頻度の高いデータを記憶する。
The
記憶領域170は、プロセッサ100で利用されるプログラムやデータなどを記憶する。
The
図2は、プロセッサ100に搭載されたCPU110が、基本ソフトウェアであるOS(operating system)200を実行することにより実現される機能の構成と、プロセッサ100が備えるハードウェアとを示すブロック図である。ここでは、プロセッサ100上で単一のOS200が動作し、OS200上で1または複数のプロセス(999−1〜999−n)が動作すると捉えることができる。また、図2においては、プロセッサ100が備えるハードウェアとプロセッサ100上で動作するOS200、OS200上で動作する1または複数のプロセスをプロセッサ100が含む表現としている。
FIG. 2 is a block diagram illustrating a configuration of functions realized by the
図2に示すように、プロセッサ100が備えるハードウェアには、CPU110と、第1記憶部910と、第2記憶部930とが含まれる。第1記憶部910は、割込みの種別を示す割込み種別と、割込みの発生を待つ状態を示す割込み待ちが発生してから割込みの処理を示す割込み処理が開始されるまで時間(待ち時間)を示す割込み待ち時間と、割込み処理の時間を示す割込み処理時間とを対応付けて記憶する。
As illustrated in FIG. 2, the hardware included in the
図3は、第1記憶部910に記憶されたデータの一例を示す図である。図3の例では、デバイス読み出しに対応する割込み待ち時間はT1_m、割込み処理時間はT1_sにそれぞれ設定される。キーボード入力に対応する割込み待ち時間はT2_m、割込み処理時間はT2_sにそれぞれ設定される。タイマーに対応する割込み待ち時間はT3_m、割込み処理時間はT3_sにそれぞれ設定される。マウス入力に対応する割込み待ち時間はT4_m、割込み処理時間はT4_sにそれぞれ設定される。
FIG. 3 is a diagram illustrating an example of data stored in the
図2に戻って説明を続ける。第2記憶部930は、割込み種別と、割込み待ちが発生した時刻を示す割込み待ち発生時刻とを対応付けて記憶する。
Returning to FIG. 2, the description will be continued. The
図4は、第2記憶部930に記憶されたデータの一例を示す図である。図4の例では、デバイス読み出しに対応する割込み待ち発生時刻はTaに設定される。また、キーボード入力に対応する割込み待ち発生時刻はTbに設定される。さらに、タイマーに対応する割込み待ち発生時刻はTcに設定される。
FIG. 4 is a diagram illustrating an example of data stored in the
再び図2に戻って説明を続ける。図2に示すように、OS200は、割込み待ち設定部210と、割込み検出部220と、算出部230と、第1決定部240と、モード設定部250と、割込み待ち解除部260とを有する。
Returning to FIG. 2 again, the description will be continued. As illustrated in FIG. 2, the
割込み待ち設定部210は、ある割込み種別の割込み待ちが発生したときに、当該割込み待ちとなった割込み種別と、当該割込み種別の割込み待ち発生時刻とを第2記憶部930に記憶する。また、割込み待ち解除部260は、割込み処理が開始されたときに、当該割込み処理に対応する割込み種別と、当該割込み種別に対応する割込み待ち発生時刻とを第2記憶部930から削除する。詳細な内容については後述する。
When an interrupt wait of a certain interrupt type occurs, the interrupt
割込み検出部220は、割込みの発生を検出する。より具体的には、割込み検出部220は、プロセッサ100内外からの割込み通知(割込みが発生することを示す信号)を受け取り、当該割込み通知から、割込み処理が開始される割込み種別を特定する。
The interrupt
算出部230は、システム10がスリープ状態から復帰した後に実行される割込み処理が終了するまでに必要な時間を示すシステム割込み処理時間を算出する。ここでは、電力が供給される要素の数が所定数に制限されるとともにシステム10の動作が停止する状態をスリープ状態と呼ぶ。本実施形態では、CPU110が何れの処理も実行しないアイドル状態(見方を変えれば、アイドル状態とは、システム10が何れの処理も実行しない状態であると捉えることもできる)が一定の期間にわたって継続した場合、システム10はスリープ状態に移行するが、これに限らず、スリープ状態への移行条件は任意である。一方、スリープ状態において、割込みが発生した場合、システム10はスリープ状態から復帰して割込み処理を実行する。
The
本実施形態では、算出部230は、システム10がスリープ状態から復帰した直後に、他の割込み処理とは重複(オーバラップ)せずに単独で実行される割込み処理、あるいは、少なくとも一部の重複を持って実行される複数の割込み処理が終了するまでに必要な時間を、システム割込み処理時間として算出する。
In the present embodiment, the
いま、スリープ状態において、デバイス読み出し、キーボード入力、タイマー割込みの3つの割込み種別が割込み待ちとなっている場合を想定する。図5に示すように、デバイス読み出しによる割込み処理が開始される時刻はt1、割込み処理時間はT1_sに設定されている。また、キーボード入力による割込み処理が開始される時刻はt2(>t1)、割込み処理時間はT2_sに設定されている。さらに、タイマー割込みによる割込み処理が開始される時刻はt3(>t2)、割込み処理時間がT3_sに設定されている。図5の例では、システム10がスリープ状態から復帰するタイミングは、デバイス読み出しによる割込み処理が開始される時刻(デバイス読み出しによる割込みが発生する時刻)t1であるとする。また、デバイス読み出しによる割込み処理が実行される期間の一部は、キーボード入力による割込み処理が実行される期間の一部と重複している。一方、タイマー割込みによる割込み処理が実行される期間は、他の割込み処理が実行される期間とは重複せずに独立に設定される。したがって、図5の例では、システム10がスリープ状態から復帰した後に実行される割込み処理が終了するまでに必要な時間を示すシステム割込み処理時間は、デバイス読み出しによる割込み処理とキーボード入力による割込み処理が実行される時間となる。すなわち、図5の例では、システム割込み処理時間Tsは、T2_s+(t2−t1)と算出される。
Assume that in the sleep state, the three interrupt types of device reading, keyboard input, and timer interrupt are waiting for an interrupt. As shown in FIG. 5, the time when the interrupt processing by the device reading is started is set to t1, and the interrupt processing time is set to T1_s. In addition, the time when the interrupt processing by keyboard input is started is set to t2 (> t1), and the interrupt processing time is set to T2_s. Further, the time when the interrupt processing by the timer interrupt is started is set to t3 (> t2), and the interrupt processing time is set to T3_s. In the example of FIG. 5, it is assumed that the timing at which the
図2の第1決定部240は、算出部230により算出されたシステム割込み処理時間に応じて、スリープ状態からの復帰後のシステム10の動作状態を示すモードを決定する。システム10の動作状態とは、システム10がどのように動作するのかを表すものであり、ここでは、スリープ状態は含まれない。この例では、消費電力が異なる複数のモードがあり、第1決定部240は、算出部230により算出されたシステム割込み処理時間に応じて、複数のモードのうちの何れかのモードを、スリープ状態からの復帰後のシステム10のモードとして決定する。各モードは任意に変更可能であり、例えば「1次キャッシュ140に対する電力供給が行われる一方、2次キャッシュ150に対する電力供給は停止される」というモードがあってもよいし、「1次キャッシュ140および2次キャッシュ150の各々に対する電力供給が停止される」というモードがあってもよい。また、その他の要素(例えば記憶領域170)に対する電力供給が停止されるモードがあってもよいし、CPU110の電圧やクロック周波数の値が、所定値に設定されるモードがあってもよい。
The
図2のモード設定部250は、システム10のモードを、第1決定部240により決定されたモードに設定する。これにより、システム10は、スリープ状態から復帰して、モード設定部250により設定されたモードに移行する。
The
図6は、割込み待ちが発生したときのプロセッサ100の動作手順の一例を示すシーケンス図である。例えば、システム10に付帯するデバイス(例えばマウス、キーボードなど)が割込み待ちの状態になると、当該デバイスの割込み待ちが発生したことを示す情報が、デバイスドライバ等から割込み待ち設定部210へ通知される。割込み待ち設定部210は、当該通知を受けることで、割込み待ちが発生した割込み種別を検出することができる(ステップS600)。割込み待ちが発生した割込み種別を検出した場合、割込み待ち設定部210は、その検出した割込み種別の割込み待ち発生時刻(この例では、前述の通知を受けた時刻)を取得し(ステップS601)、割込み待ちとなった割込み種別と、割込み待ち発生時刻とを第2記憶部930に対して通知する(ステップS602)。第2記憶部930は、割込み待ち設定部210から通知された割込み種別と割込み待ち発生時刻とを対応付けて記憶する(ステップS603)。
FIG. 6 is a sequence diagram illustrating an example of an operation procedure of the
図7は、プロセッサ100に対して割込みが発生してから、割込み処理を開始するまでの動作手順の一例を示すシーケンス図である。図7に示すように、まず割込み検出部220は、プロセッサ100内外からの割込み通知を受信することで、割込みの発生を検出する(ステップS700)。次に、割込み検出部220は、受信した割込み通知から、発生した割込みの割込み種別(割込み処理が開始される割込み種別)を特定する(ステップS701)。次に、割込み検出部220は、システムがスリープ状態であるか否かを検出する(ステップS702)。システムがスリープ状態の場合(ステップS702の結果:YES)、割込み検出部220は、特定した割込み種別を算出部230に対して通知する(ステップS704)。一方、システム10の状態がスリープ状態ではない場合(ステップS702の結果:NO)、割込み検出部220は、特定した割込み種別を、割込み待ち解除部260に対して通知する(ステップS703)。ステップS703の後、処理はステップS711に移行する。ステップS711の処理の内容は後述する。
FIG. 7 is a sequence diagram illustrating an example of an operation procedure from when an interrupt is generated to the
算出部230は、割込みが発生した割込み種別(割込み処理が開始される割込み種別)の通知を割込み検出部220から受けると、第1記憶部910および第2記憶部930の各々に記憶されたデータを用いて、システム割込み処理時間を算出する(ステップS705)。見方を変えれば、算出部230によるシステム割込み処理時間の算出は、スリープ状態において割込みが発生したときに行われる。要するに、算出部230は、システム10がスリープ状態から復帰した後に実行される割込み処理が終了するまでに必要な時間を示すシステム割込み処理時間を算出する。
When the
図8は、算出部230によるシステム割込み処理時間の算出例を示すフローチャートである。図8に示すように、まず算出部230は、第2記憶部930に記憶された割込み種別と、当該割込み種別に対応する割込み待ち発生時刻を抽出する(ステップS800)。次に、算出部230は、カウンタの計測値iを「0」に初期化する(ステップS801)。算出部230は、ステップS800で抽出した全ての割込み種別に対して、以下に説明するステップS802〜ステップS806の処理を行うことで、割込み発生時刻(割込み処理が開始される時刻)と割込み処理時間の対応表を作成する。以下、具体的に説明する。
FIG. 8 is a flowchart illustrating an example of calculating the system interrupt processing time by the
ステップS801の後、算出部230は、カウンタの計測値iが、ステップS800で抽出した割込み種別の総数を示す値に到達したか否かを判断する(ステップS802)。カウンタの計測値iが、抽出した割込み種別の総数を示す値に到達していない場合(ステップS802の結果:No)、算出部230は、ステップS800で抽出した割込み種別の中から、未だ選択されていない割込み種別を1つ選択する(ステップS803)。次に、算出部230は、ステップS803で選択した割込み種別に対応する割込み待ち時間および割込み処理時間を第1記憶部910から抽出する(ステップS804)。次に、算出部230は、ステップS803で選択した割込み種別に対応する割込み待ち発生時刻および割込み待ち時間から、割込み発生時刻(割込み処理が開始される時刻)を算出する(ステップS805)。具体的には、割込み待ち発生時刻から割込み待ち時間が経過する時刻を、割込み発生時刻として算出する。次に、算出部230は、ステップS805で算出した割込み発生時刻と、ステップS803で選択した割込み種別に対応する割込み処理時間(ステップS804で抽出した割込み処理時間)とを対応付けたデータ(「対応データ」と呼ぶ)を記憶する(ステップS806)。次に、算出部230は、カウンタの計測値iを1だけカウントアップする(ステップS807)。そして、処理は再び前述のステップS802に移行する。
After step S801, the
前述のステップS802において、カウンタの計測値iが、ステップS800で抽出した割込み種別の総数を示す値に到達した場合(ステップS802の結果:YES)、算出部230は、割込み発生時刻順に、前述の対応データを並べ替える(ステップS808)。
In the above-described step S802, when the measured value i of the counter reaches the value indicating the total number of interrupt types extracted in step S800 (the result of step S802: YES), the
次に、算出部230は、現在時刻(この例では割込みの発生が検出された時刻)から、通知された割込み種別に対応する割込み処理時間が経過する時刻を、スリープ状態から復帰した後に実行される割込み処理が終了する時刻(「システム割込み終了時刻」と呼ぶ)として設定する(ステップS809)。
Next, the
次に、算出部230は、システム割込み終了時刻が、割込みの発生が検出されていない他の割込み種別の割込み発生時刻よりも早いか否かを判断する(ステップS810)。システム割込み終了時刻が、他の割込み種別の割込み発生時刻よりも早いと判断した場合(ステップS810の結果:YES)は、算出部230は、現在時刻からシステム割込み終了時刻までの時間をシステム割込み処理時間として算出する(ステップS812)。一方、システム割込み終了時刻が、他の割込み種別の割込み発生時刻よりも遅いと判断した場合(ステップS810の結果:NO)は、算出部230は、システム割込み終了時刻の再設定を行う(ステップS811)。より具体的には、算出部230は、現在のシステム割込み終了時刻よりも割込み発生時刻が早い割込み種別のうち、最も割込み発生時刻が早い割込み種別を選択し、その選択した割込み種別の割込み発生時刻から、その選択した割込み種別の割込み処理時間が経過する時刻を、システム割込み終了時刻として設定し直す。そして、処理は、再び前述のステップS810に戻る。
Next, the
再び図7に戻って説明を続ける。算出部230は、以上のように算出したシステム割込み処理時間と、割込み検出部220から通知された割込み種別(割込みが発生した割込み種別)とを第1決定部240に対して通知することで、スリープ状態からの復帰後のシステム10のモードを決定することを要求する(ステップS706)。第1決定部240は、算出部230から通知されたシステム割込み処理時間に応じて、スリープ状態からの復帰後のシステム10のモードを決定する(ステップS707)。より具体的には、第1決定部240は、システム割込み処理時間が大きいほど、動作する要素の数(電力が供給される要素の数)が多くなるように、システム10のモードを決定する。以下に、モードの決定方法の一例を挙げて説明する。例えば算出部230から通知されたシステム割込み処理時間が第1基準値以下の場合は、システム10の最低限の要素を稼働させる(消費電力が最小となる)第1モードを、システム10のモードとして決定することもできる。第1モードは、例えば電圧や周波数が設定可能な最小値に設定され、1次キャッシュ140および2次キャッシュ150の各々に対する電力の供給が停止される状態を示すモードであってもよい。一方、例えば算出部230から通知されたシステム割込み処理時間が第1基準値よりも大きい第2基準値以上の場合は、システム10のすべての要素を稼働させる(消費電力が最大となる)第2モードを、システム10のモードとして決定することもできる。第2モードは、例えば全ての要素に対する電力の供給が行われるモードであってもよい。なお、これに限らず、システム割込み処理時間が大きいほど、消費電力の大きいモードがシステム10のモードとして決定されるものであればよい。第1決定部240は、以上のように決定したシステム10のモードと、割込みが発生した割込み種別とをモード設定部250に対して通知する(ステップS708)。
Returning to FIG. 7 again, the description will be continued. The
モード設定部250は、システム10のモードを、第1決定部240から通知されたモードに設定する(ステップS709)。これにより、システム10は、スリープ状態から復帰して、モード設定部250により設定されたモードに移行する。次に、モード設定部250は、割込み待ち解除部260に対して、割込みが発生した割込み種別を通知する(ステップS710)。次に、割込み待ち解除部260は、第2記憶部930に記憶された割込み種別のうち、モード設定部250から通知された割込み種別と、当該割込み種別に対応する割込み待ち発生時刻とを第2記憶部930から削除する(ステップS711)。以上のように、割込み待ちが発生した場合は、割込み待ちとなった割込み種別と、当該割込み待ちとなった時刻を示す割込み待ち発生時刻とが対応付けられて第2記憶部930に記憶される一方、割込み待ちが解除された場合(割込みが発生した場合)は、割込み待ちが解除された割込み種別と、当該割込み種別に対応する割込み待ち発生時刻とが第2記憶部930から削除される。これにより、現在の割込み待ちの状況を適切に管理することができる。そして、割込み待ち解除部260は、モード設定部250から通知された割込み種別に対応する割込み処理の実行を開始する(ステップS712)。
The
ここで、システム10を前述の第1モード(最小セット)で動作させる場合は、システム10の消費電力を低減できる一方で、システム10を一時的に停止させるための処理等によるオーバーヘッドが大きいうえ、当該処理による影響(電圧、周波数が低いことによる処理時間の増大や、キャッシュが動作していないことによるメモリアクセスの増加等)に起因して発生する消費電力も無視できない。このため、前述のシステム割込み処理時間(システム10がスリープ状態から復帰した後に実行される割込み処理が終了するまでに必要な時間)の値によっては、システム10を第1モードで動作させた場合に発生する消費電力の方が、他のモード(例えば前述の第2モード)で動作させた場合に発生する消費電力よりも大きい場合がある。
Here, when the
本実施形態では、前述のシステム割込み処理時間に応じて、システム10のモードを設定する。より具体的には、前述のシステム割込み処理時間が大きいほど、消費電力が大きいモードに設定するので、適切な処理時間を保ったままシステム10の消費電力を効率的に低減できる。したがって、本実施形態によれば、システムの消費電力を効率的に低減できる。
In the present embodiment, the mode of the
また、本実施形態では、スリープ状態において割込みが発生したとき、その後の処理時間に応じて、システム10のモードが設定されるので、割込みの発生後にその処理時間が決定される場合にも、効率的に消費電力を低減することができるという利点がある。例えばプロセッサ100の外部の制御装置によって割込みが制御される場合は、スリープ状態に移行する前においては、スリープ状態において割込みが発生した後の処理時間を正しく見積もることができないため、割込みが発生した直後にシステム10のモードを決定する必要がある。このような場合でも、本実施形態の構成を適用することで、効率的に消費電力を削減できる。
In this embodiment, when an interrupt occurs in the sleep state, the mode of the
(第2実施形態)
本実施形態では、前述の算出部230および第1決定部240を動作させずに、電源の電力状態に応じて、モードを設定可能な機能を有する点で第1実施形態と異なる。以下、具体的な内容を説明する。なお、第1実施形態と重複する部分については、同一の符号を付して適宜に説明を省略する。
(Second Embodiment)
This embodiment is different from the first embodiment in that it has a function capable of setting the mode according to the power state of the power supply without operating the
図9は、第2実施形態のシステム30の構成例を示すブロック図である。図9に示すように、システム30は、プロセッサ100と、記憶領域170と、電力状態管理部360と、発電モジュール380と、バッテリー385とを備え、それぞれがバス390で相互に接続されている。発電モジュール380およびバッテリー385は、システム30の電源であると捉えることができる。
FIG. 9 is a block diagram illustrating a configuration example of the
発電モジュール380は、システム30を稼働するために必要な電力を発電する。一例として、太陽光パネルのように、太陽光から電力を発電する構成を発電モジュール380として用いることができる。バッテリー385は、システム30を稼働するために必要な電力を蓄える。
The
電力状態管理部360は、電源の電力状態を管理する。例えば発電モジュール380の発電量、発電量から計算される発電量の増減の傾向を示す発電傾向、バッテリー385の充電容量、充電容量から計算される充電量の増減の傾向を示す充電傾向などの少なくとも1つが電源の電力状態に含まれる。電力状態管理部360は、前回の発電量を記憶しておき、今回の発電量と比較することにより、発電傾向を把握することができる。また、電力状態管理部360は、前回の充電容量を記憶しておき、今回の充電容量と比較することにより、充電傾向を把握することができる。
The power
図10は、プロセッサ100に搭載されたCPU110が、基本ソフトウェアであるOS(operating system)400を実行することにより実現される機能の構成と、プロセッサ100が備えるハードウェアとを示すブロック図である。図10に示すように、プロセッサ100が備えるハードウェアには、CPU110と、第1記憶部910と、第2記憶部930と、第4記憶部970と、第5記憶部990とが含まれる。また、図10においては、プロセッサ100が備えるハードウェアとプロセッサ100上で動作するOS400、OS400上で動作する1または複数のプロセスをプロセッサ100が含む表現としている。
FIG. 10 is a block diagram illustrating a functional configuration realized when the
図11は、第4記憶部970に記憶されたデータの一例を示す図である。図11の例では、第4記憶部970は、発電傾向と、充電量と、システム30のモード決定に利用する決定部とを対応付けて記憶する。つまり、第4記憶部970は、電源の電力状態と、モードの決定方法とを対応付けて記憶していると捉えることもできる。この図の場合、発電傾向が増加の傾向を示すとともに、充電量が第1閾値(例えば40%)未満の場合は、算出部230および第1決定部240を動作させることを示している。また、発電傾向が増加の傾向を示し、充電量が第1閾値以上の場合は、後述の第2決定部490を動作させることを示している。
FIG. 11 is a diagram illustrating an example of data stored in the
また、発電傾向が横ばいの傾向を示すとともに、充電量が第2閾値(例えば50%)以上、かつ、第2閾値よりも大きい第3閾値(例えば60%)未満である場合は、算出部230および第1決定部240を動作させることを示している。また、例えば発電傾向が横ばいの傾向を示すとともに、充電量が第3閾値以上の場合は第2決定部490を動作させることを示している。
In addition, when the power generation tendency shows a flat tendency and the charge amount is equal to or more than the second threshold (for example, 50%) and less than the third threshold (for example, 60%) that is larger than the second threshold, the
さらに、発電傾向が低下の傾向を示すとともに、充電量が第4閾値(例えば70%)以上である場合は、算出部230および第1決定部240を動作させることを示している。また、発電傾向が低下の傾向を示すとともに、充電量が第4閾値未満の場合は第2決定部490を動作させることを示している。
Further, the power generation tendency shows a tendency to decrease, and when the charge amount is a fourth threshold value (for example, 70%) or more, it indicates that the
なお、これに限らず、第4記憶部970は、例えば充電量のみと、利用する決定部とを対応付けて記憶する構成であってもよいし、発電量の変化量のみと、利用する決定部とを対応付けて記憶する構成であってもよい。例えば、充電量が第5閾値以上、かつ、第5閾値よりも大きい第6閾値未満の場合には算出部230および第1決定部240を利用し、それ以外であれば第2決定部490を利用するとすることもできる。また、例えば、発電量の増加量が第7閾値未満、あるいは、発電量の減少量の絶対値が第8閾値(第7閾値と異なる値でもよいし、同じ値でもよい)未満の場合には算出部230および第1決定部240を利用し、それ以外であれば第2決定部490を利用するとすることもできる。
However, the present invention is not limited to this, and the
図12は、第5記憶部990に記憶されたデータの一例を示す図である。図12の例では、第5記憶部990は、発電傾向と、充電量と、システム30のモードとを対応付けて記憶する。つまり、第5記憶部990は、電源の電力状態と、システム30のモードとを対応付けて記憶していると捉えることができる。この図の場合、発電傾向が増加の傾向を示す場合に、充電量が第9閾値(例えば、30%)以上であれば第2モードを選択し、それ以外であれば第1モードを選択する。また、発電傾向が横ばいの傾向を示す場合に、充電量が第10閾値(例えば、50%)以上であれば第2モードを選択し、それ以外であれば第1モードを選択する。さらに、発電傾向が低下の傾向を示す場合に、充電量が第11閾値(例えば、70%)以上であれば第2モードを選択し、それ以外であれば第1モードを選択する。
FIG. 12 is a diagram illustrating an example of data stored in the
なお、これに限らず、第5記憶部990は、例えば充電量のみと、システム30のモードとを対応付けて記憶する構成であってもよいし、発電量の変化量のみと、システム30のモードとを対応付けて記憶する構成であってもよい。例えば、充電量が第12閾値以上であれば第2モードを選択し、第12閾値未満であれば、第1モードを選択することもできる。また、例えば、発電量の増加量が第13閾値以上であれば第2モードを選択し、第13閾値以下であれば第1モードを選択することもできる。
However, the present invention is not limited to this, and the
再び図10に戻って説明を続ける。図10に示すように、OS400は、割込み待ち設定部210と、割込み検出部220と、電力状態取得部480と、判断部470と、第2決定部490と、算出部230と、第1決定部240と、モード設定部250と、割込み待ち解除部260とを有する。
Returning to FIG. 10 again, the description will be continued. As illustrated in FIG. 10, the
電力状態取得部480は、電力状態管理部360から電源の電力状態を取得し、その電力状態を判断部470に通知する。判断部470は、第4記憶部970に記憶されたデータに基づいて、システム30のモードを決定する決定部を選択する。第2決定部490は、電源の電力状態に応じてシステム30のモードを決定する。詳細な内容については後述する。
The power
図13は、割込みが発生してから、割込み処理を開始するまでのプロセッサ100の動作手順の一例を示すシーケンス図である。まず割込み検出部220は、プロセッサ100内外からの割込み通知を受信することで、割込みの発生を検出する(ステップS1200)。次に、割込み検出部220は、受信した割込み通知から、発生した割込みの割込み種別を特定する(ステップS1201)。次に、割込み検出部220は、システム30の状態がスリープ状態であるか否かを検出する(ステップS1202)。システム30の状態がスリープ状態の場合(ステップS1202の結果:YES)、割込み検出部220は、特定した割込み種別を電力状態取得部480に対して通知する(ステップS1204)。一方、システム30の状態がスリープ状態ではない場合(ステップS1202の結果:NO)、割込み検出部220は、特定した割込み種別を、割込み待ち解除部260に対して通知する(ステップS1203)。ステップS1203の後、処理はステップS1219に移行する。ステップS1219以降の処理の内容は、図7のステップS711以降の処理の内容と同様なので詳細な説明は省略する。
FIG. 13 is a sequence diagram illustrating an example of an operation procedure of the
電力状態取得部480は、割込みが発生した割込み種別の通知を割込み検出部220から受けると、電力状態管理部360から電力状態を取得する(ステップS1205)。次に、電力状態取得部480は、取得した電力状態を判断部470に通知する(ステップS1206)。
The power
判断部470は、電力状態取得部480から電力状態を通知されると、その電力状態と第4記憶部970に格納された値から、システム30のモードの決定方法を決定する(ステップS1207)。図11の例では、判断部470は、電力状態取得部480から取得した電力状態と、第4記憶部970に記憶されたデータとから、算出部230および第1決定部240を動作させてシステム30のモードを決定するか、第2決定部490を動作させてシステム30のモードを決定するかを決定する。以下、図11の例を参照しながら、システム30のモードの決定方法の決定例を説明する。例えば、電力状態取得部480から得られた発電傾向が増加傾向であって充電量が30%である場合は、算出部230および第1決定部240を動作させてシステム30のモードを設定することを決定する。つまり、この場合、判断部470は、システム30のモードを決定する決定部として、算出部230と第1決定部240を選択する。あるいは、電力状態取得部480から得られた発電傾向が横ばいであって、充電量が80%である場合は、第2決定部490を動作させてシステム30のモードを決定することを決定する。つまり、この場合、判断部470は、システム30のモードを決定する決定部として、第2決定部490を選択する。
When notified of the power state from the power
判断部470が、算出部230および第1決定部240を動作させずにシステム30のモードを決定することを決定した場合(ステップS1208の結果:NO)、つまり、判断部470が、第2決定部490を動作させてシステム30のモードを決定することを決定した場合、判断部470は、第2決定部490に電力状態を通知してシステム30のモード決定を要求する(ステップS1210)。第2決定部490は、判断部470から送られてきた現在の電源の電力状態(電力状態取得部480により取得された電力状態)と第5記憶部990に記憶された値から、システム30のモードを決定する(ステップ1211)。以下では、第5記憶部が図12の構成になっている場合のシステム30のモードの決定方法を示す。判断部470から送られてきた電力状態のうち、発電傾向が増加傾向を示すとともに、充電量が50%であれば、システム30のすべての要素を稼働させる第2モードを、システム30のモードとして決定することができる。また、例えば、発電傾向が横ばい傾向にあって、充電量が80%の場合も、第2モードをシステム30のモードとして決定することができる。一方、第2決定部490は、システム30の最低限の要素を稼働させる第1モードを、システム30のモードとして決定することができる。例えば、発電傾向が低下傾向にあって、充電量が50%の場合は、第2決定部490は第1モードをシステム30のモードとして決定することができる。
When
そして、第2決定部490は、決定したモードと、割込みが発生した割込み種別とをモード設定部250に対して通知する(ステップS1212)。モード設定部250は、システム30のモードを、第1決定部240または第2決定部490から通知されたモードに設定する(ステップS1217)。これにより、システム30は、スリープ状態から復帰して、モード設定部250により設定されたモードに移行する。
Then, the
一方、算出部230および第1決定部240を動作させてシステム30のモードを決定することを決定した場合(ステップS1208の結果:YES)、判断部470は、算出部230に対して、割込みが発生した割込み種別を通知するとともに、システム割込み処理時間の算出を要求する(ステップS1209)。その後のステップS1213以降の内容は、図7のステップS705以降の内容と同様なので、詳細な説明は省略する。
On the other hand, when it is determined to operate the
以上に説明したように、本実施形態では、スリープ状態において割込みが発生したときの電源の電力状態に応じて、システム30を最適な状態で動作させるので、システム30の消費電力を効率的に低減しつつ、処理を実行することができる。上述のように、システム割込み処理時間に応じてシステム30のモードを設定することによって消費電力を低減する方法は、プロセッサ100の消費電力を低減できる一方で、システム30のモードを変更するための処理等によるオーバーヘッドで発生する消費電力も無視できない。また、発電量や充電量が十分な第1状態の場合には、これらの消費電力を無視したほうが処理時間を短くできるという点でより効率的であるが、発電量や充電量が十分でない第2状態の場合にはシステム30が動作するという観点から最小セットで動作することが適切であると考えられる。また、発電量や充電量が第1状態と第2状態との間の状態である第3状態の場合には、前述のシステム割込み処理時間に応じたモードでシステム30を動作させることが適切であると考えられる。つまり、本実施形態では、発電量、充電量、発電傾向、充電傾向などを含む電源の電力状態も考慮して、システム30のモード設定を行うので、システム30の電力状況にあわせた処理時間を保ちつつ、効率的に消費電力を低減できるという利点がある。
As described above, in this embodiment, the
(第3実施形態)
上述の第1実施形態では、スリープ状態において割込みが発生したときに、前述のシステム割込み処理時間の算出が行われるが、本実施形態では、システムがスリープ状態に移行する前の段階においてシステム割込み処理時間の算出を行う点で第1実施形態と相違する。以下、具体的な内容を説明する。なお、第1実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。本実施形態のシステムの基本的な構成は、第1実施形態と同様である。以下の説明においては、本実施形態のシステムは50と表記する。
(Third embodiment)
In the first embodiment, when the interrupt occurs in the sleep state, the above-described system interrupt processing time is calculated. In the present embodiment, the system interrupt process is performed before the system shifts to the sleep state. This is different from the first embodiment in that time is calculated. Specific contents will be described below. In addition, about the part which is common in 1st Embodiment, the same code | symbol is attached | subjected and description is abbreviate | omitted suitably. The basic configuration of the system of this embodiment is the same as that of the first embodiment. In the following description, the system of this embodiment is represented as 50.
図14は、プロセッサ100に搭載されたCPU110が、基本ソフトウェアであるOS(operating system)600を実行することにより実現される機能の構成と、プロセッサ100が備えるハードウェアとを示すブロック図である。ここでは、プロセッサ100上で単一のOS600が動作し、OS600上で1または複数のプロセス(999−1〜999−n)が動作すると捉えることができる。また、図14においては、プロセッサ100が備えるハードウェアとプロセッサ100上で動作するOS600、OS600上で動作する1または複数のプロセスをプロセッサ100が含む表現としている。
FIG. 14 is a block diagram illustrating a functional configuration realized when the
図14に示すように、プロセッサ100が備えるハードウェアには、CPU110と、第1記憶部910、第2記憶部930、第3記憶部950が含まれる。第3記憶部950は、システム30がスリープ状態に移行する前に登録され、スリープ状態から復帰するときに読み出されるシステム50の設定情報(システム50のモードを設定するための情報)を記憶する。図15は、第3記憶部950に記憶された設定情報の一例を示す図である。図15の例では、登録される設定情報として、プロセッサ100の電圧の値、周波数(クロック数)の値、1次キャッシュ140に対する電力供給の有無、2次キャッシュ150に対する電力供給の有無が記憶されている。図15の例では、プロセッサ100の電圧の値はVx、周波数の値はFx、1次キャッシュ140に対する電力供給は行われ(ON)、2次キャッシュ150に対する電力の供給は停止される(OFF)という設定になっている。例えば、この設定でスリープ状態から復帰するときには、1次キャッシュ140に対しては電力が供給される一方、2次キャッシュ150に対する電力の供給は停止されるので、スリープ状態から復帰した後には、2次キャッシュ150を利用できない。
As illustrated in FIG. 14, the hardware included in the
図14に戻って説明を続ける。OS600は、割込待ち設定部210と、アイドル状態検出部680と、算出部630と、第1決定部640と、スリープ処理部690と、割込み検出部620と、モード設定部650と、設定情報取得部655と、割込待ち解除部260とを有する。アイドル状態検出部680は、アイドル状態を検出する。アイドル状態とは、CPU110が何れの処理も実行していない状態を示す。
Returning to FIG. 14, the description will be continued. The OS 600 includes an interrupt waiting
算出部630は、アイドル状態検出部680によってアイドル状態が検出されたとき、第1記憶部910および第2記憶部930の各々に記憶されたデータを用いて、システム50がスリープ状態から復帰した後に実行される処理が終了するまでの時間を示すシステム割込み処理時間を算出する。本実施形態で算出されるシステム割込み処理時間は、第1実施形態と同様に、システム50がスリープ状態から復帰した直後に、他の割込み処理とは重複(オーバラップ)せずに単独で実行される割込み処理、あるいは、少なくとも一部の重複を持って実行される複数の割込み処理が終了するまでに必要な時間を示す。ここで、本実施形態の割込み待ち設定部210は、各割込み種別の割込み待ち発生時刻を予め把握しており、割込み種別と、割込み待ち発生時刻とを対応付けて第2記憶部930に書き込む点で第1実施形態と相違する。つまり、本実施形態では、第2記憶部930には、割込み種別と割込み待ち発生時刻との対応関係が予め書き込まれている。
When the idle state is detected by the idle
図16は、算出部630が、第1記憶部910と第2記憶部930を用いて、システム割込み処理時間を算出する方法の一例を示す。図14の例では、割込み待ちとなっている割込み種別は、デバイス読み出し、キーボード入力、タイマー割込みの3つである。図16に示すように、デバイス読み出しによる割込み処理が開始される時刻はt1、割込み処理時間はT1_sに設定されている。また、キーボード入力による割込み処理が開始される時刻はt2(>t1)、割込み処理時間はT2_sに設定されている。さらに、タイマー割込みによる割込み処理が開始される時刻はt3(>t2)、割込み処理時間はT3_sに設定されている。図16の例では、システム50がスリープ状態から復帰した直後に発生する割込みはデバイス読み出しによる割込みであり、その割込み処理の間にキーボード入力による割込みが発生することがわかる。したがって、この場合のシステム割込み処理時間は、デバイス読み出しによる割込み処理とキーボード入力による割込み処理を行う時間であるとわかる。つまり、図16の例では、システム割込み処理時間Tsは、T2_s+(t2−t1)であるといえる。
FIG. 16 illustrates an example of a method in which the
再び図14に戻って説明を続ける。第1決定部640は、算出部630により算出されたシステム割込み処理時間から、復帰後のシステム50のモードを決定し、その決定したモードに設定するための設定情報を第3記憶部950に書き込む。
Returning to FIG. 14 again, the description will be continued. The
スリープ処理部690は、プロセッサ100に含まれるレジスタ130、1次キャッシュ140、2次キャッシュ150に記憶されたデータを記憶領域170に退避させ、プロセッサ100の動作を一時的に停止して節電状態(スリープ状態)にする。
The
割込み検出部620は、プロセッサ100内外からの割込み通知を検出し、当該割込み通知で特定される割込み種別を、設定情報取得部655へ通知する。
The interrupt
設定情報取得部655は、割込み検出部620から割込み種別が通知されると、第3記憶部950に記録された設定情報を読み出し、その設定情報と割込み種別をモード設定部650へ通知する。モード設定部650は、設定情報取得部655から通知されると、通知された設定情報に基づいて、システム50のモードを設定する。
When the interrupt type is notified from the interrupt
図17は、プロセッサ100のアイドル状態が検出されてから、スリープ状態に移行するまでの動作手順の一例を示すシーケンス図である。図17に示すように、まずアイドル状態検出部680が、プロセッサ100のアイドル状態を検出し(ステップS1600)、算出部630に対して、システム割込み処理時間の算出を要求する(ステップS1601)。その要求を受けた算出部630は、第1記憶部910および第2記憶部930の各々に記憶されたデータを用いて、システム割込み処理時間を算出する(ステップS1602)。
FIG. 17 is a sequence diagram illustrating an example of an operation procedure from the detection of the idle state of the
図18は、算出部630によるシステム割込み処理時間の算出例を示すフローチャートである。ステップS1700〜ステップS1708の内容は、図8のステップS800〜ステップS808の内容と同様なので、詳細な説明は省略する。ステップS1708の後のステップS1709において、算出部630は、スリープ状態からの復帰後に割込みが発生する割込み種別のうち、最も割込み発生時刻が早い割込み種別の割込み発生時刻(「直近の割込み発生時刻」と呼ぶ)から、当該割込み種別の割込み処理時間が経過する時刻を、システム割込み終了時刻として設定する。
FIG. 18 is a flowchart illustrating an example of calculating the system interrupt processing time by the
次に、算出部630は、現時点でのシステム割込み終了時刻が、他の割込み種別の割込み発生時刻よりも早いか否かを判断する(ステップS1710)。システム割込み終了時刻が、他の割込み種別の割込み発生時刻よりも早いと判断した場合(ステップS1710の結果:YES)は、算出部630は、スリープ状態から復帰する予定の時刻(つまりは直近の割込み発生時刻)からシステム割込み終了時刻までの時間をシステム割込み処理時間として算出する(ステップS1712)。一方、システム割込み終了時刻が、他の割込み種別の割込み発生時刻よりも遅いと判断した場合(ステップS1710の結果:NO)は、算出部630は、システム割込み終了時刻の再設定を行う(ステップS1711)。より具体的には、算出部630は、現在のシステム割込み終了時刻よりも割込み発生時刻が早い割込み種別のうち、最も割込み発生時刻が早い割込み種別を選択し、その選択した割込み種別の割込み発生時刻から、その選択した割込み種別の割込み処理時間が経過する時刻を、システム割込み終了時刻として設定し直す。そして、処理は、再び前述のステップS1710に戻る。
Next, the
再び図17に戻って説明を続ける。算出部630は、以上のように算出したシステム割込み処理時間を第1決定部640に対して通知することで、スリープ状態からの復帰後のシステム50のモードを決定することを要求する(ステップS1603)。第1決定部640は、算出部630から通知されたシステム割込み処理時間に応じて、スリープ状態からの復帰後のシステム50のモードを決定する(ステップS1604)。ステップS1604の内容は、図7のステップS707の内容と同様である。次に、第1決定部640は、決定したモードの設定情報を第3記憶部950に書き込む(ステップS1605)。次に、第1決定部640は、スリープ処理部690に対して、システム50をスリープ状態に移行させるスリープ処理の実行を要求する(ステップS1606)。
Returning to FIG. 17 again, the description will be continued. The
スリープ処理の実行を要求されたスリープ処理部690は、現在のシステム50のモードに応じて、スリープ処理を実行する(ステップS1607)。例えば1次キャッシュ140に対する電力が供給されている状態であれば、スリープ処理部690は、1次キャッシュ140に記憶されたデータを記憶領域170に退避させる。また、例えば2次キャッシュ150に対する電力が供給されている状態であれば、スリープ処理部690は、2次キャッシュ150に記憶されたデータを記憶領域170に退避させる。そして、スリープ処理部690は、レジスタ130に記憶されたデータを記憶領域170に退避させ、プロセッサ100の動作を一時的に停止させる。これにより、システム50は、節電状態(スリープ状態)に移行する。
The
図19は、プロセッサ100に対して割込みが発生してから、割込み処理を開始するまでの動作手順の一例を示すシーケンス図である。図17に示すように、まず割込み検出部220は、プロセッサ100内外からの割込み通知を受信することで、割込みの発生を検出する(ステップS1800)。次に、割込み検出部220は、受信した割込み通知から、発生した割込みの割込み種別(割込み処理が開始される割込み種別)を特定する(ステップS1801)。次に、割込み検出部220は、システム50の状態がスリープ状態であるか否かを検出する(ステップS1802)。システム50の状態がスリープ状態の場合(ステップS1802の結果:YES)、割込み検出部220は、特定した割込み種別を設定情報取得部655に対して通知する(ステップS1804)。一方、システム50の状態がスリープ状態ではない場合(ステップS702の結果:NO)、割込み検出部220は、特定した割込み種別を、割込み待ち解除部260に対して通知する(ステップS1803)。ステップS1803の後、処理はステップS1809に移行する。ステップS1809以降の内容は、図7のステップS711以降の内容と同様なので、詳細な説明は省略する。
FIG. 19 is a sequence diagram illustrating an example of an operation procedure from when an interrupt is generated to the
設定情報取得部655は、割込みが発生した割込み種別の通知を割込み検出部620から受けると、第3記憶部950に書き込まれた設定情報を読み出す(ステップS1805)。次に、設定情報取得部655は、読み出した設定情報と割込み種別をモード設定部650に通知する(ステップS1806)。モード設定部650は、設定情報取得部655から通知された設定情報に従って、システム50のモードを設定する(ステップS1807)。図15に示す例のように、「1次キャッシュ:ON、2次キャッシュ:OFF」と第3記憶部950に書き込まれている場合は、モード設定部650は、1次キャッシュ140に対する電力の供給を開始して初期化を行う一方で、2次キャッシュ150に対する電力の供給を行わない。そして、モード設定部650は、割込み待ち解除部260に対して、割込みが発生した割込み種別を通知する(ステップS1808)。ステップS1808以降の内容は、図7のステップS710以降の内容と同様なので、詳細な説明は省略する。
The setting
上述の第1実施形態のように、スリープ状態において割込みが発生したときにシステム割込み処理時間を算出し、復帰後のモードを決定する方法は、システムがスリープ状態から復帰するときの何も初期化されていない状態でこれらの算出を行わなければならないため、算出にかかる時間やプロセッサ100の消費電力が大きいといった問題がある。例えば、システムがスリープ状態から復帰した直後は、電圧や周波数がスリープ状態における値のままで、かつ、1次キャッシュ140や2次キャッシュ150に対する電力の供給が開始されていないままであるため、必ずメモリアクセスが発生するという状況が考えられる。一方、本実施形態では、システムがスリープ状態に移行する前(システムが停止する前)に、前述のシステム割込み処理時間を算出することにより、最適な状況でシステム割込み処理時間の算出を行うことができる。システムがスリープ状態に移行する前は、電圧、周波数、1次キャッシュ140、および、2次キャッシュ150の各々の状態が、システムが通常に動作しているモードにおける状態とほぼ同じであるため、システム割込み処理時間の算出に適した状況で、システム割込み処理時間の算出を行うことができる。つまり、本実施形態によれば、システムの消費電力を効率的に低減しつつ、システム割込み処理時間の算出処理を実行することができる。
As in the first embodiment described above, the method of calculating the system interrupt processing time when an interrupt occurs in the sleep state and determining the mode after the return is initialized when the system returns from the sleep state. Since these calculations must be performed in a state where they are not performed, there is a problem that the time required for the calculation and the power consumption of the
(第4実施形態)
本実施形態では、第2実施形態と同様に、電源の電力状態に応じて、モードを設定可能な機能を有する点で第3実施形態と相違する。以下、具体的な内容を説明する。なお、第2実施形態および第3実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。本実施形態のシステムの基本的な構成は、第2実施形態と同様である。以下の説明においては、本実施形態のシステムは70と表記する。
(Fourth embodiment)
Similar to the second embodiment, the present embodiment is different from the third embodiment in that it has a function capable of setting a mode according to the power state of the power source. Specific contents will be described below. In addition, about the part which is common in 2nd Embodiment and 3rd Embodiment, the same code | symbol is attached | subjected and description is abbreviate | omitted suitably. The basic configuration of the system of this embodiment is the same as that of the second embodiment. In the following description, the system of this embodiment is represented as 70.
図20は、プロセッサ100に搭載されたCPU110が、基本ソフトウェアであるOS(operating system)800を実行することにより実現される機能の構成と、プロセッサ100が備えるハードウェアとを示すブロック図である。図20に示すように、プロセッサ100が備えるハードウェアには、CPU110と、第1記憶部910と、第2記憶部930と、第3記憶部950と、第4記憶部975と、第5記憶部990とが含まれる。また、図20においては、プロセッサ100が備えるハードウェアとプロセッサ100上で動作するOS800、OS800上で動作する1または複数のプロセスをプロセッサ100が含む表現としている。
FIG. 20 is a block diagram illustrating a configuration of functions realized when the
図21は、第4記憶部975に記憶されたデータの一例を示す図である。図21の例では、第4記憶部975は、発電傾向と、充電量と、モード決定に利用するモジュールとを対応付けて記憶する。第2実施形態と同様に、第4記憶部975は、電源の電力状態と、モードの決定方法とを対応付けて記憶していると捉えることもできる。この図の場合、発電傾向が増加の傾向を示すとともに、充電量が第1閾値(例えば40%)未満の場合は、設定情報取得部655を利用してシステム70のモードを決定することを示している。つまり、設定情報取得部655から取得した設定情報を利用してモードを決定することを示している。また、発電傾向が増加の傾向を示し、充電量が第1閾値以上の場合は、第2決定部490で決定したモードを利用することを示している。
FIG. 21 is a diagram illustrating an example of data stored in the
また、発電傾向が横ばいの傾向を示すとともに、充電量が第2閾値(例えば50%)以上、かつ、第2閾値よりも大きい第3閾値(例えば60%)未満である場合は、設定情報取得部855から取得した設定情報を利用してモードを決定することを示している。また、例えば発電傾向が横ばいの傾向を示すとともに、充電量が第3閾値以上の場合は第2決定部490で決定したモードを利用することを示している。
Further, when the power generation tendency shows a flat tendency and the charge amount is equal to or higher than the second threshold value (for example, 50%) and less than the third threshold value (for example, 60%) larger than the second threshold value, the setting information is acquired. The mode is determined using the setting information acquired from the section 855. In addition, for example, the power generation tendency shows a flat tendency, and when the charge amount is equal to or greater than the third threshold, the mode determined by the
さらに、発電傾向が低下の傾向を示すとともに、充電量が第4閾値(例えば70%)以上である場合は、設定情報取得部855から取得した設定情報を利用してモードを決定することを示している。また、発電傾向が低下の傾向を示すとともに、充電量が第4閾値未満の場合は第2決定部490で決定したモードを利用することを示している。なお、これに限らず、第4記憶部975は、第4記憶部970と同様に、例えば充電量のみと、利用するモジュールとが対応付けられて記憶される構成でもよいし、発電量の変化量のみと、利用するモジュールとが対応付けられて記憶される構成であってもよい。
Furthermore, the power generation tendency shows a tendency to decrease, and when the charge amount is a fourth threshold value (for example, 70%) or more, it indicates that the mode is determined using the setting information acquired from the setting information acquisition unit 855. ing. In addition, the power generation tendency shows a tendency to decrease, and when the charge amount is less than the fourth threshold, the mode determined by the
再び図20に戻って説明を続ける。図20に示すように、OS800は、割込み待ち設定部210と、アイドル状態検出部680と、算出部630と、第1決定部640と、スリープ処理部690と、割込み検出部820と、電力状態取得部480と、判断部870と、第2決定部490と、設定情報取得部655と、モード設定部850と、割込み待ち解除部260とを有する。
Returning to FIG. 20 again, the description will be continued. As illustrated in FIG. 20, the
割込み検出部820は、プロセッサ100内外からの割込み通知を検出し、当該割込み通知で特定される割込み種別を、電力状態取得部480へ通知する。
The interrupt
判断部870は、第4記憶部975に記憶されたデータに基づいて、システム70のモードの決定方法を決定する。本実施形態では、電力状態取得部480は、スリープ状態において割込みが発生した場合に、電力状態管理部360から電力状態を取得し、その取得した電力状態を判断部870に通知する。判断部870は、電力状態取得部480から取得した電力状態と第4記憶部975に記憶されたデータに基づいて、システム70のモード決定に利用するモジュールを選択する。例えば、モード決定に利用するモジュールとして設定情報取得部655を選択した場合、判断部870は、第3記憶部950から設定情報を取り出すように設定情報取得部655に要求する。そして、設定情報取得部855は、第3記憶部950に記憶された設定情報を取得し、その設定情報をモード設定部850へ通知する。一方、モード決定に利用するモジュールとして第2決定部490を選択した場合、判断部870は、第2決定部490に対して状態を決定するように要求する。この決定方法は、第2の実施形態と同様である。
The
モード設定部850は、設定情報取得部655または第2決定部490から通知された設定情報を用いて、システム70のモードを設定する。
The
図22は、割込みが発生してから、割込み処理を開始するまでのプロセッサ100の動作手順の一例を示すシーケンス図である。まず割込み検出部820は、プロセッサ100内外からの割込み通知を受信することで、割込みの発生を検出する(ステップS2000)。次に、割込み検出部820は、受信した割込み通知から、発生した割込みに対応する割込み種別(割込み処理が開始される割込み種別)を特定する(ステップS2001)。次に、割込み検出部820は、システム70の状態がスリープ状態であるか否かを検出する(ステップS2002)。システム70の状態がスリープ状態の場合(ステップS2002の結果:YES)、割込み検出部820は、特定した割込み種別を電力状態取得部480に対して通知する(ステップS2004)。一方、システム70の状態がスリープ状態ではない場合(ステップS2002の結果:NO)、割込み検出部820は、特定した割込み種別を、割込み待ち解除部260に対して通知する(ステップS2003)。ステップS2003の後、処理はステップS2017に移行する。ステップS2017以降の処理の内容は、図7のステップS711以降の処理の内容と同様なので詳細な説明は省略する。
FIG. 22 is a sequence diagram illustrating an example of an operation procedure of the
電力状態取得部480は、発生した割込みの割込み種別の通知を割込み検出部820から受けると、電力状態管理部360から電力状態を取得する(ステップS2005)。そして、電力状態取得部460は、割込み種別と電力状態を判断部870へ通知する(ステップS2006)。
When receiving the notification of the interrupt type of the generated interrupt from the interrupt
判断部870は、電力状態取得部480から取得した電力状態と第4記憶部975に記憶されたデータから、システム70のモードの決定方法を決定する(ステップS2007)。図21の例では、判断部870は、電力状態取得部480から取得した電力状態と、第4記憶部975に記憶されたデータとから、設定情報取得部655を動作させてシステム70のモードを決定するか(見方を変えれば、第3記憶部950に記憶された設定情報を利用してシステム70のモードを決定するか)、第2決定部490を動作させてシステム70のモードを決定するかを決定する。以下、図21を例に挙げて、システム70のモードの決定方法の決定例を説明する。例えば、電力状態取得部480から得られた発電傾向が増加傾向であって充電量が30%である場合、判断部870は、モード決定に利用するモジュールとして設定情報取得部655を選択する。つまり、この場合、判断部870は、第3記憶部950に記憶された設定情報を利用して、システム70のモードを決定することを決定する。一方、例えば、電力状態取得部480から得られた発電傾向が横ばいであって、充電量が80%である場合、判断部870は、モード決定に利用するモジュールとして第2決定部490を選択する。つまり、この場合、判断部870は、第2決定部490を動作させてシステム70のモードを決定することを決定する。
The
判断部470が、設定情報取得部655を用いずにシステム70のモードを決定することを決定した場合(ステップS2008の結果:NO)、つまり、第2決定部490を動作させてシステム70のモードを決定することを決定した場合、判断部870は、発生した割込みの割込み種別と電力状態を第2決定部490に通知する(ステップS2012)。第2決定部490は、判断部870から送られてきた電力状態と第5記憶部990に記憶されたデータから、システム70のモードを決定する(ステップ2013)。この決定方法は第2実施形態と同様である。そして、判断部870は、決定したモードの設定情報と、割込みが発生した割込み種別とをモード設定部850に対して通知する(ステップS2014)。モード設定部850は、判断部870から通知された設定情報に従って、システム70のモードを設定する(ステップS2015)。これにより、システム70は、スリープ状態から復帰して、モード設定部850により設定されたモードに移行する。
When the
一方、設定情報取得部655を用いてシステム70のモードを決定することを決定した場合(ステップS2008の結果:YES)、つまり、第3記憶部950に記憶された設定情報を利用してシステム70のモードを決定することを決定した場合、判断部870は設定情報取得部655に割込み種別を通知する(ステップS2009)。設定情報取得部655は、第3記憶部950に記憶された設定情報を読み出し(ステップS2010)、その読み出した設定情報と、割込みが発生した割込み種別とをモード設定部850に対して通知する(ステップS2011)。モード設定部850は、判断部870から通知された設定情報に従って、システム70のモードを設定する(ステップS2015)。これにより、システム70は、スリープ状態から復帰して、モード設定部850により設定されたモードに移行する。
On the other hand, when it is determined to determine the mode of the system 70 using the setting information acquisition unit 655 (the result of step S2008: YES), that is, the system 70 using the setting information stored in the
上述のように、プロセッサ100をスリープ状態に移行させて消費電力を低減する方法は、プロセッサ100の消費電力を低減できる一方で、システム70を一時的に停止させるための処理等によるオーバーヘッドが大きいうえ、当該処理(例えばレジスタの退避および復帰やキャッシュメモリのフラッシュなどの処理)やそれによる影響(キャッシュメモリのフラッシュによるメモリアクセスの増加等)に起因して発生する消費電力も無視できない。また、発電量や充電量が十分な第1状態の場合には、これらの消費電力を無視したほうが処理時間を短くできるという点でより効率的であるが、発電量や充電量が十分でない第2状態の場合にはシステム70が動作するという観点から最小セットで動作することが適切であると考えられる。また、発電量や充電量が第1状態と第2状態との間の状態である第3状態の場合には、前述のシステム割込み処理時間に応じたモード(第3記憶部950に記憶された設定情報により設定されるモード)でシステム70を動作させることが適切であると考えられる。つまり、本実施形態では、電源の電力状態も考慮して、システム70のモード設定を行うので、システム70の電力状況にあわせた処理時間を保ちつつ、効率的に消費電力を低減できるという利点がある。
As described above, the method of reducing the power consumption by shifting the
(第5実施形態)
本実施形態では、システムがスリープ状態に移行する前の段階における電源の電力状態に応じて、システム割込み処理時間の算出を行うか否かを決定する点で第4実施形態と相違する。以下、具体的な内容を説明する。なお、第4実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。本実施形態のシステムの基本的な構成は、第4実施形態と同様である。以下の説明においては、本実施形態のシステムは90と表記する。
(Fifth embodiment)
This embodiment is different from the fourth embodiment in that it is determined whether or not to calculate the system interrupt processing time according to the power state of the power supply in the stage before the system enters the sleep state. Specific contents will be described below. In addition, about the part which is common in 4th Embodiment, the same code | symbol is attached | subjected and description is abbreviate | omitted suitably. The basic configuration of the system of this embodiment is the same as that of the fourth embodiment. In the following description, the system of this embodiment is represented as 90.
図23は、プロセッサ100に搭載されたCPU110が、基本ソフトウェアであるOS(operating system)1000を実行することにより実現される機能の構成と、プロセッサ100が備えるハードウェアとを示すブロック図である。図20に示すように、プロセッサ100が備えるハードウェアには、CPU110と、第1記憶部910と、第2記憶部930と、第3記憶部950と、第4記憶部970と、第5記憶部990とが含まれる。また、図23においては、プロセッサ100が備えるハードウェアとプロセッサ100上で動作するOS1000、OS1000上で動作する1または複数のプロセスをプロセッサ100が含む表現としている。
FIG. 23 is a block diagram illustrating a configuration of functions realized when the
図23に示すように、OS1000は、割込待ち設定部210と、アイドル状態検出部680と、電力状態取得部480と、第2決定部1090と、判断部1085と、算出部630と、第1決定部640と、スリープ処理部690と、割込み検出部820と、設定情報取得部655と、モード設定部650と、割込み待ち解除部260とを有する。
As shown in FIG. 23, the
判断部1085は、電力状態取得部480から通知された電力状態に応じて、システム100のモードの決定方法を決定する。第2決定部1090は、電源の電力状態に応じてシステム100のモードを決定し、その決定したモードを第3記憶部950に登録する。
The
図24は、プロセッサ100のアイドル状態が検出されてから、スリープ状態に移行するまでの動作手順の一例を示すシーケンス図である。図24に示すように、まずアイドル状態検出部680が、プロセッサ100のアイドル状態を検出し(ステップS2200)、電力状態取得部480に対して、電力状態の読み出しを要求する(ステップS2201)。その要求を受けた電力状態取得部480は、電力状態管理部360から電力状態を取得する(ステップS2202)。次に、電力状態取得部480は、取得した電力状態を判断部1085へ通知する(ステップS2203)。そして、判断部1085は、電力状態取得部480から取得した電力状態から、システム90のモードの決定方法を決定する(ステップS2204)。図11の例では、判断部1085は、電力状態取得部480から取得した電源の電力状態と第4記憶部970に記憶されたデータから、算出部630によるシステム割込み処理時間の算出を行ってシステム90のモードを決定するか、第2決定部1090を利用してシステム90のモードを決定するかを決定する。
FIG. 24 is a sequence diagram illustrating an example of an operation procedure from the detection of the idle state of the
たとえば、図11の場合、発電傾向及び充電量に基づいてシステム90のモードの決定方法を決定する。たとえば、発電傾向が増加傾向を示すとともに、充電量が30%であれば、算出部630によるシステム割込み時間の算出によりシステム90のモードを決定する。たとえば、発電傾向が増加の傾向を示し、充電量が50%であれば第2決定部1090を利用してシステム90のモードを決定する。また、たとえば、発電傾向が横ばいを示すとともに、充電量が55%であれば、算出部630によるシステム割込み時間の算出によりシステム90のモードを決定する。たとえば、発電傾向が横ばいの傾向を示し、充電量が20%であれば第2決定部1090を利用してシステム90のモードを決定する。また、たとえば、発電傾向が低下を示すとともに、充電量が80%であれば、算出部630によるシステム割込み時間の算出によりシステム90のモードを決定する。たとえば、発電傾向が低下の傾向を示し、充電量が60%であれば第2決定部1090を利用してシステム90のモードを決定する。なお、これに限らず、たとえば、充電量のみ、あるいは、発電量の変化量のみに基づいて、モードの決定方法を決定することもできる。
For example, in the case of FIG. 11, a method for determining the mode of the system 90 is determined based on the power generation tendency and the charge amount. For example, if the power generation tendency shows an increasing tendency and the charge amount is 30%, the mode of the system 90 is determined by calculating the system interrupt time by the
算出部630によるシステム割込み処理時間の算出を行わないことを決定した場合(ステップS22005の結果:NO)、つまり、第2決定部1090を利用してシステム90のモードを決定することを決定した場合、判断部1085は第2決定部1090に対して電力状態を通知して、システム90のモードの決定を要求する(ステップS2207)。第2決定部1090は、判断部1085から通知された電力状態と第5記憶部に記憶されたデータに応じて、スリープ状態から復帰後のシステム90のモードを決定する(ステップS2208)。たとえば、発電傾向が増加の傾向を示すとともに、充電量が50%の場合は、第2決定部1090はシステム90をシステムのすべての要素を稼働させる第2モードを、システム90のモードとして決定することができる。また、たとえば、発電傾向が横ばいの傾向を示すとともに、充電量が70%の場合も、第2決定部1090は、第2モードをシステム90のモードとして決定することができる。また、たとえば発電傾向が横ばいの傾向を示すとともに、充電量が40%の場合は、第2決定部1090は消費電力が最小となる最低限の要素を稼働させる第1モードを、システム90のモードとして決定することができる。また、たとえば、発電傾向が低下の傾向を示すとともに、充電量が60%の場合も、第2決定部1090は、第1モードをシステム90のモードとして決定することができる。
When it is determined not to calculate the system interrupt processing time by the calculation unit 630 (result of step S22005: NO), that is, when it is determined to determine the mode of the system 90 using the
そして、第2決定部1090は、決定したモードの設定情報を第3記憶部950に書き込む(ステップS2209)。次に、第2決定部1090は、スリープ処理部690に対して、システム90をスリープ状態に移行させるスリープ処理の実行を要求する(ステップS2210)。
Then, the
一方、算出部630によるシステム割込み処理時間の算出を行うことを決定した場合(ステップS2205の結果:YES)、判断部1085は、算出部630に対して、システム割込み処理時間の算出を要求する(ステップS2206)。その後のステップS2211以降の内容は、図17のステップS1602以降の内容と同様なので、詳細な説明は省略する。
On the other hand, when it is determined that the
以上に説明したように、本実施形態では、システム90がスリープ状態に移行する前(システムが停止する前)に、電源の電力状態に応じてシステム90のモード(スリープ状態から復帰した後のシステム90のモード)を決定することにより、システム90の電力状態に合わせて、システム90の消費電力を効率的に低減しつつ、処理を実行することができる。最適なシステム90のモードを決定する方法は、システム90の消費電力を削減することができる一方で、システム90のモードを決定するための処理(算出部630によるシステム割込み処理時間の算出処理等)によってその処理時間や消費電力が増加する。本実施形態では、システム90の電力状態に応じて、システム90のモードを動的に決定しなければならない場合(電力状態が前述の所定の条件を満たす場合)に限定して、システム90のモードを決定するための処理を行うことにより、効率的に消費電力を低減できるという利点がある。
As described above, in the present embodiment, before the system 90 shifts to the sleep state (before the system stops), the mode of the system 90 (the system after returning from the sleep state) according to the power state of the power source. 90 mode), the processing can be executed while efficiently reducing the power consumption of the system 90 in accordance with the power state of the system 90. The method for determining the optimum system 90 mode can reduce the power consumption of the system 90, while processing for determining the mode of the system 90 (calculation processing of the system interrupt processing time by the
(第6実施形態)
上述の第1実施形態では、第1記憶部910に記憶された割込み処理時間の値は固定値であったが、本実施形態では、第1記憶部910に記憶された割込み処理時間の値が可変に設定される。以下、具体的な内容を説明する。なお、第1実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。本実施形態のシステムの基本的な構成は、第1実施形態と同様である。以下の説明においては、本実施形態のシステムは95と表記する。
(Sixth embodiment)
In the first embodiment described above, the value of the interrupt processing time stored in the
図25は、プロセッサ100に搭載されたCPU110が、基本ソフトウェアであるOS(operating system)1200を実行することにより実現される機能の構成と、プロセッサ100が備えるハードウェアとを示すブロック図である。ここでは、プロセッサ100上で単一のOS1200が動作し、OS1200上で1または複数のプロセス(999−1〜999−n)が動作すると捉えることができる。また、図25においては、プロセッサ100が備えるハードウェアとプロセッサ100上で動作するOS1200、OS1200上で動作する1または複数のプロセスをプロセッサ100が含む表現としている。
FIG. 25 is a block diagram illustrating a functional configuration realized when the
図25に示すように、プロセッサ100が備えるハードウェアには、CPU110と、第1記憶部910と、第2記憶部930とが含まれる。OS1200は、割込み待ち設定部210と、割込み検出部220と、算出部230と、第1決定部240と、モード設定部250と、割込み待ち解除部1260と、更新部1290とを有する。
As shown in FIG. 25, the hardware included in the
割込み待ち解除部1260は、割込み処理を開始する場合、その割込み処理に対応する割込み種別を更新部1290に通知する機能を有する点で第1実施形態と相違する。
The interrupt
更新部1290は、割込み処理が開始された時点で、当該割込み処理が開始された割込み種別に対応する割込み処理時間の計測を開始し、割込み処理が完了した時点で割込み処理時間の計測を停止し、第1記憶部910に記憶された割込み処理時間のうち、当該割込み種別に対応する割込み処理時間の値を計測結果に置き換える(更新する)。
The
図26は、プロセッサ100に対して割込みが発生してから、割込み処理を開始するまでの動作手順の一例を示すシーケンス図である。ステップS2400〜ステップS2410の内容は、図7のステップS700〜ステップS710の内容と同様なので、詳細な説明は省略する。ステップS2410において、割込みが発生した割込み種別の通知をモード設定部250から受けた割込み待ち解除部1260は、更新部1290に対して、割込みが発生した割込み種別を通知する(ステップS2411)。割込みが発生した割込み種別の通知を受けた更新部1290は、通知された割込み種別に対応する割込み処理時間の計測を開始する(ステップS2414)。例えば、更新部1290は、割込み種別と現在時刻を対応付けて管理してもよい。図26のステップS2412およびステップS2413の内容は、図7のステップS711およびステップS712の内容と同様なので、詳細な説明は省略する。
FIG. 26 is a sequence diagram illustrating an example of an operation procedure from when an interrupt occurs to the
図27は、割込み待ちが発生したときのプロセッサ100の動作手順の一例を示すシーケンス図である。ステップS2500およびステップS2501の内容は、図6のステップS600およびステップS601の内容と同様なので、詳細な説明は省略する。ステップS2501の後、割込み待ち設定部210は、割込み待ちとなった割込み種別と、割込み待ち発生時刻とを第2記憶部930および更新部1290の各々に対して通知する(ステップS2502)。ステップS2503の内容は、図6のステップS603の内容と同様なので、詳細な説明は省略する。
FIG. 27 is a sequence diagram illustrating an example of an operation procedure of the
割込み待ちとなった割込み種別および割込み待ち発生時刻の通知を受けた更新部1290は、通知された割込み種別に対応する割込み処理時間の計測を停止して、その計測結果を、当該割込み種別に対応する割込み処理時間として取得する(ステップS2504)。次に、更新部1290は、第1記憶部910を更新する(ステップS2505)。より具体的には、更新部1290は、第1記憶部910に記憶された割込み処理時間のうち、通知を受けた割込み種別に対応する割込み処理時間の値を、ステップS2504で取得した割込み処理時間の値に置き換える。
The
以上に説明したように、本実施形態では、割込み処理を開始してから終了するまでの時間を計測して、第1記憶部910に記憶された割込み処理時間の値を可変に設定するため、第1記憶部910に記憶された処理時間の値を、現在のシステムにおいて最適な値に近づけることができる。
As described above, in the present embodiment, in order to measure the time from the start to the end of interrupt processing and to set the value of the interrupt processing time stored in the
(変形例)
以上、本発明の実施形態を説明したが、上述の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
(Modification)
As mentioned above, although embodiment of this invention was described, each above-mentioned embodiment was shown as an example and is not intending limiting the range of invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
例えば上述の第1実施形態では、スリープ状態から復帰する要因を示す復帰要因は割込みの発生である。そして、システムがスリープ状態から復帰した後に、他の割込み処理とは重複せずに単独で実行される割込み処理、あるいは、少なくとも一部の重複を持って実行される複数の割込み処理が終了するまでに必要な時間を、システム割込み処理時間として算出し、その算出したシステム割込み処理時間に応じて、システムのモードを設定しているが、これに限定されるものではない。すなわち、復帰要因は、割込みの発生に限らず任意に設定可能であり、当該復帰要因が発生した場合は、スリープ状態から復帰した後の処理に必要な時間を示すシステム処理時間(システム割込み処理時間はこの一例)に応じてモードを設定する構成であればよい。 For example, in the first embodiment described above, the return factor indicating the factor for returning from the sleep state is the occurrence of an interrupt. After the system recovers from the sleep state, until interrupt processing that is executed independently without overlapping with other interrupt processing, or multiple interrupt processing that is executed with at least some overlap is completed Is calculated as the system interrupt processing time, and the system mode is set according to the calculated system interrupt processing time. However, the present invention is not limited to this. That is, the return factor is not limited to the occurrence of an interrupt, and can be set arbitrarily. When the return factor occurs, the system processing time (system interrupt processing time) indicating the time required for processing after returning from the sleep state May be configured to set the mode according to this example.
図15の例では、第3記憶部950に記憶される設定情報の一例として、プロセッサ100の電圧、周波数、1次キャッシュ140に対する電力供給の有無、2次キャッシュ150に対する電力供給の有無を挙げて説明したが、これに限らず、設定情報の内容は任意に設定可能である。例えばクロック(周波数)のみを設定情報として用いる構成であってもよい。また、メモリの転送方法やメモリの転送レートを指定する情報を設定情報として用いる構成であってもよい。さらに、割込み処理時に利用される命令セットが一部に限定される場合には、それ以外の命令セットにかかわる部分に対する電力供給を停止(電源オフ)することを指定する情報を設定情報として用いる構成であってもよい。例えば、ARMプロセッサの場合、ARM標準命令とは別に、NEONと呼ばれる命令セットが用意されているが、これはシステムとして別々に構成される場合では、NEONの部分に対する電力供給を停止することができる。図28は、設定情報として、メモリ転送方法、転送レート、および、利用可能な命令セットの各々を指定する情報が用いられる場合の例を示す図である。
In the example of FIG. 15, as an example of the setting information stored in the
また、上述の各実施形態では、プロセッサ100は、レジスタ130、1次キャッシュ140、2次キャッシュ150を有しているが、これに限らず、例えばプロセッサ100が、1次キャッシュ140や2次キャッシュ150を有しない構成であってもよい。この構成であれば、システムのモード設定の対象(システム構成の対象)として1次キャッシュ140や2次キャッシュ150が含まれず、それに関する処理を省略できる。また、1次キャッシュ140や2次キャッシュ150の代わりに命令メモリやデータメモリと呼ばれる内部メモリを含む構成であってもよく、両方を含む構成であってもよい。この構成であれば、システムのモード設定の対象として、内部メモリを含む場合もあり、それに関する処理も行う場合もある。
In each of the above-described embodiments, the
さらに、上述したOS(200,400,600,800,1000、1200)の機能の少なくとも一部が、プロセッサ100以外のハードウェアで実現される構成であってもよい。例えば、図29に示すように、第1実施形態のプロセッサ100の機能が、プロセッサ100とは別のハードウェアである割込み管理部1460で実現することもできる。この場合、第1記憶部910の管理は割込み管理部1460で行われ、OS200で第1記憶部910に記憶されたデータを読み出す場合には、割込み管理部1460を経由して読み出される。図29の例におけるシステムは1400と表記する。
Furthermore, a configuration in which at least a part of the functions of the OS (200, 400, 600, 800, 1000, 1200) described above is realized by hardware other than the
また、例えば図30に示すように、上述の第2実施形態でハードウェアとして実現されていた電力状態管理部360は、OS1600内の一機能である電力管理部1690として実現される構成であってもよい。電力管理部1690は、発電モジュール380から発電量を、バッテリー385から充電量を取得し、定期的にそれらの値を取得することにより、発電傾向や充電傾向を見積もる。判断部1670はターゲットシステムの電力状態を電力管理部1690から取得することにより同様の機能を実現することができる。
For example, as illustrated in FIG. 30, the power
また、上述した更新部1290で行っている割込み処理時間の計測を、各プロセス(999−1〜999−n)で行う構成であってもよい。また、割込み処理時間の計測方法については、上述では割込み発生時刻から割込み待ち発生時刻までとしたが、それ以外の方法も考えられる。複数の割込み処理が行われている場合には各割込み処理が行われている時間を正確に把握し、割込み処理が行われている時間を割込み処理時間とする方法でもよい。
Moreover, the structure which measures the interruption processing time currently performed in the
図31は、第1実施形態の変形例に係るシステム15の構成例を示すブロック図である。図31に示すように、システム15は、プロセッサ100と、記憶領域170と、制御装置197とを備え、それぞれがバス195で相互に接続されている。プロセッサ100は、1または複数の処理を実行可能な処理装置である。制御装置197は、複数のデバイス(デバイス1(199−1)〜デバイスn(199−n))の各々から、当該デバイスによる割込みの要求を示す割込み要求を受信し、その受信した割込み要求を、プロセッサ100に送信するか否かを決定する。制御装置197は、条件に基づいて、受信した割込み要求を蓄えるか、プロセッサ100へ送信するかを行う。このシステム15のように制御装置197によって割込みが発生する時間が変わったとしても、それに合わせてシステム15の状態(モード)が設定されるので、効率的に消費電力を低減できるという利点がある。
FIG. 31 is a block diagram illustrating a configuration example of the
また、CPU110が実行するプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、CPU110が実行するプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、CPU110が実行するプログラムを、ROM等に予め組み込んで提供するようにしてもよい。
Further, the program executed by the
10 システム
30 システム
50 システム
70 システム
90 システム
100 プロセッサ
110 CPU
120 記憶部
130 レジスタ
140 1次キャッシュ
150 2次キャッシュ
170 記憶領域
190 バス
210 割込み待ち設定部
220 割込み検出部
230 算出部
240 第1決定部
250 モード設定部
260 割込み待ち解除部
360 電力状態管理部
380 発電モジュール
385 バッテリー
390 バス
470 判断部
490 第2決定部
620 割込み検出部
630 算出部
640 第1決定部
650 モード設定部
655 設定状態取得部
680 アイドル状態検出部
690 スリープ処理部
850 モード設定部
870 判断部
910 第1記憶部
930 第2記憶部
950 第3記憶部
1085 判断部
1090 第2決定部
1260 割込み待ち解除部
1290 更新部
1460 割込み管理部
1670 判断部
1690 電力管理部
10
120
Claims (14)
制御装置。 When a system including a plurality of elements capable of individually controlling power is limited to a predetermined number of elements to which power is supplied and a factor of returning from the sleep state in which the operation is stopped occurs, the sleep state A setting unit for setting a mode indicating an operation state of the system according to a system processing time indicating a time required for processing after returning from the system,
Control device.
制御装置。 When a system including a plurality of elements capable of individually controlling power is limited to a predetermined number of elements to which power is supplied and a factor of returning from the sleep state in which the operation is stopped occurs, the sleep state Setting a mode indicating the operating state of the system according to the system processing time indicating the time required for processing after returning from
Control device.
制御装置。 When a factor for returning from the sleep state has occurred, a mode indicating a system operation state is set according to a system processing time indicating a time required for processing after returning from the sleep state.
Control device.
制御装置。 When a system including a plurality of elements capable of individually controlling power is limited to a predetermined number of elements to which power is supplied and a factor of returning from the sleep state in which the operation is stopped occurs, the sleep state Operating the system in a mode corresponding to the system processing time indicating the time required for processing after returning from
Control device.
制御装置。 When a factor for returning from the sleep state occurs, the system is operated in a mode corresponding to the system processing time indicating the time required for processing after returning from the sleep state.
Control device.
前記情報処理システムが、電力が供給される前記要素の数が所定数に制限されて動作を停止するスリープ状態から復帰する要因が発生した場合は、前記スリープ状態から復帰した後の処理に必要な時間に応じたモードで動作する、
情報処理システム。 An information processing system including a plurality of elements capable of individually controlling power,
When the information processing system has a factor for returning from the sleep state in which the number of the elements to which power is supplied is limited to a predetermined number and stopping the operation, it is necessary for processing after returning from the sleep state. Operates in a time-dependent mode,
Information processing system.
情報処理システム。 When a factor to return from the sleep state occurs, it operates in a mode according to the time required for processing after returning from the sleep state.
Information processing system.
電力を個別に制御可能な複数の要素を含むシステムが、電力が供給される前記要素の数が所定数に制限されて動作を停止するスリープ状態から復帰する要因が発生した場合は、前記スリープ状態から復帰した後の処理に必要な時間を示すシステム処理時間に応じて前記システムの動作状態を示すモードを設定するステップを実行させるためのプログラム。 On the computer,
When a system including a plurality of elements capable of individually controlling power is limited to a predetermined number of elements to which power is supplied and a factor of returning from the sleep state in which the operation is stopped occurs, the sleep state A program for executing a step of setting a mode indicating an operating state of the system according to a system processing time indicating a time required for processing after returning from the system.
電力を個別に制御可能な複数の要素を含むシステムが、電力が供給される前記要素の数が所定数に制限されて動作を停止するスリープ状態から復帰する要因が発生した場合は、前記スリープ状態から復帰した後の処理に必要な時間を示すシステム処理時間に応じて前記システムの動作状態を示すモードを設定するステップを実行させるためのプログラム。 On the computer,
When a system including a plurality of elements capable of individually controlling power is limited to a predetermined number of elements to which power is supplied and a factor of returning from the sleep state in which the operation is stopped occurs, the sleep state A program for executing a step of setting a mode indicating an operating state of the system according to a system processing time indicating a time required for processing after returning from the system.
スリープ状態から復帰する要因が発生した場合は、前記スリープ状態から復帰した後の処理に必要な時間を示すシステム処理時間に応じてシステムの動作状態を示すモードを設定するステップを実行させるためのプログラム。 On the computer,
A program for executing a step of setting a mode indicating a system operating state according to a system processing time indicating a time required for processing after returning from the sleep state when a factor for returning from the sleep state occurs .
電力を個別に制御可能な複数の要素を含むシステムが、電力が供給される前記要素の数が所定数に制限されて動作を停止するスリープ状態から復帰する要因が発生した場合は、前記スリープ状態から復帰した後の処理に必要な時間を示すシステム処理時間に応じたモードで前記システムを動作させるステップを実行させるためのプログラム。 On the computer,
When a system including a plurality of elements capable of individually controlling power is limited to a predetermined number of elements to which power is supplied and a factor of returning from the sleep state in which the operation is stopped occurs, the sleep state A program for executing a step of operating the system in a mode corresponding to a system processing time indicating a time required for processing after returning from the system.
スリープ状態から復帰する要因が発生した場合は、前記スリープ状態から復帰した後の処理に必要な時間を示すシステム処理時間に応じたモードでシステムを動作させるステップを実行させるためのプログラム。 On the computer,
A program for executing a step of operating the system in a mode corresponding to a system processing time indicating a time required for processing after returning from the sleep state when a factor for returning from the sleep state occurs.
前記情報処理システムが、電力が供給される前記要素の数が所定数に制限されて動作を停止するスリープ状態から復帰する要因が発生した場合は、前記スリープ状態から復帰した後の処理に必要な時間に応じたモードで前記情報処理システムが動作するステップを実行させるためのプログラム。 In a computer installed in an information processing system that includes multiple elements that can individually control power,
When the information processing system has a factor for returning from the sleep state in which the number of the elements to which power is supplied is limited to a predetermined number and stopping the operation, it is necessary for processing after returning from the sleep state. A program for executing a step in which the information processing system operates in a mode according to time.
スリープ状態から復帰する要因が発生した場合は、前記スリープ状態から復帰した後の処理に必要な時間に応じたモードで前記情報処理システムが動作するステップを実行させるためのプログラム。 In the computer installed in the information processing system,
A program for causing the information processing system to execute a step in a mode according to a time required for processing after returning from the sleep state when a factor for returning from the sleep state occurs.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014237877A JP2015038780A (en) | 2014-11-25 | 2014-11-25 | Controller, information processing system and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014237877A JP2015038780A (en) | 2014-11-25 | 2014-11-25 | Controller, information processing system and program |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012010161A Division JP5665777B2 (en) | 2012-01-20 | 2012-01-20 | Control device, system and program |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015139051A Division JP5876184B2 (en) | 2015-07-10 | 2015-07-10 | Control device, information processing system, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015038780A true JP2015038780A (en) | 2015-02-26 |
Family
ID=52631777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014237877A Pending JP2015038780A (en) | 2014-11-25 | 2014-11-25 | Controller, information processing system and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015038780A (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010066907A (en) * | 2008-09-09 | 2010-03-25 | Ricoh Co Ltd | Printing system, control method for the same, and printer used therefor |
JP2010113641A (en) * | 2008-11-10 | 2010-05-20 | Fujitsu Ltd | Operation method of processor system and processor system |
-
2014
- 2014-11-25 JP JP2014237877A patent/JP2015038780A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010066907A (en) * | 2008-09-09 | 2010-03-25 | Ricoh Co Ltd | Printing system, control method for the same, and printer used therefor |
JP2010113641A (en) * | 2008-11-10 | 2010-05-20 | Fujitsu Ltd | Operation method of processor system and processor system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5665777B2 (en) | Control device, system and program | |
JP5284401B2 (en) | Operation switching device and program | |
TWI528167B (en) | Microprocessor, method of operating microprocessor and computer program product | |
JP6169547B2 (en) | Method and apparatus for managing global chip power of multi-core system on chip | |
US8261112B2 (en) | Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency | |
JP5547718B2 (en) | Power manager and power management method | |
KR101673500B1 (en) | Method and apparatus for cache control | |
TWI518499B (en) | Control apparatus, control method, computer program product, and semiconductor device | |
KR102164099B1 (en) | System on chip, method thereof, and device including the same | |
TW201508468A (en) | Power signal interface | |
JP2013134606A (en) | Control device and electronic apparatus | |
US20180356871A1 (en) | Power management for electronic devices | |
JP5876184B2 (en) | Control device, information processing system, and program | |
JP5709001B2 (en) | Computer system and computer | |
JP2015038780A (en) | Controller, information processing system and program | |
JP6224994B2 (en) | Information processing apparatus and control method thereof | |
US10578656B2 (en) | Method and apparatus for monitoring energy consumption | |
US8569911B2 (en) | Method and system for power management | |
JP2013003682A (en) | Memory management device, memory management method and program | |
JP2015023692A (en) | Device, method and program for controlling power consumption amount | |
JP6075584B2 (en) | Control device, energy management system, control method, and program | |
JP6110696B2 (en) | Integrated circuit and control method thereof | |
JP2001222342A (en) | Electronic equipment and method for controlling timing of the equipment and storage medium | |
US9785218B2 (en) | Performance state selection for low activity scenarios | |
JP2016142632A (en) | Power measurement device and current measurement device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141202 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20141202 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20141217 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150219 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150414 |