(57)【特許請求の範囲】
【請求項１】
主記憶部と、
異なる範囲のアドレスに割り当てられる複数の副情報処理プログラムから構成される情報処理プログラムを実行し、実行中のアドレスを示す実行アドレスを出力する命令実行部と、
前記命令実行部が前記情報処理プログラムを実行中にアクセスして、前記情報処理プログラムが使用する情報を一時的に記憶するキャッシュメモリと、
前記命令実行部が出力した実行アドレスを受け取り、前記実行アドレスを通知する実行アドレス通知部と、
前記複数の副情報処理プログラムの各副情報処理プログラムに対応して、前記キャッシュメモリの電源投入と電源切断とのいずれかを行う為のキャッシュメモリ電源制御情報を含む情報であるキャッシュメモリ制御情報を記憶するキャッシュメモリ制御情報テーブルと、
前記実行アドレス通知部が通知した実行アドレスから、前記命令実行部が実行している副情報処理プログラムを判定し、判定された副情報処理プログラムに対応するキャッシュメモリ制御情報を前記キャッシュメモリ制御情報テーブルから読み取り、前記キャッシュメモリ制御情報に含まれる前記キャッシュメモリ電源制御情報を基に前記キャッシュメモリを制御するキャッシュメモリ制御部と、
前記キャッシュメモリが記憶する情報を前記主記憶部に書き込むメモリアクセス制御部と、
前記メモリアクセス制御部が前記主記憶部に情報を書き込む方式をライトバック方式とライトスルー方式とのいずれの書き込み方式とするかを、各副情報処理プログラムに対応して判定するライト制御判定部とを備え、
前記キャッシュメモリ制御情報テーブルは、前記ライト制御判定部が判定した書き込み方式を前記キャッシュメモリ制御情報の一部として、各副情報処理プログラムに対応して記憶し、
前記ライト制御判定部は、前記複数の副情報処理プログラムから構成される情報処理プログラムを構成する任意の第１の副情報処理プログラムと、前記第１の副情報処理プログラムの次に処理される第２の副情報処理プログラムにおいて、
前記第１の副情報処理プログラムに対応する前記キャッシュメモリ電源制御情報が電源投入であり、かつ前記第２の副情報処理プログラムに対応する前記キャッシュメモリ電源制御情報が電源投入である場合に、前記第１の副情報処理プログラムに対応する書き込み方式をライトバック方式と判定し、
前記第１の副情報処理プログラムに対応する前記キャッシュメモリ電源制御情報が電源投入であり、かつ前記第２の副情報処理プログラムに対応する前記キャッシュメモリ電源制御情報が電源切断である場合に、前記第１の副情報処理プログラムに対応する書き込み方式をライトスルー方式と判定する
ことを特徴とする情報処理システム。
【請求項２】
前記ライト制御判定部は、前記複数の副情報処理プログラムから構成される情報処理プログラムの中で、最後に実行される副情報処理プログラムに対応する書き込み方式をライトスルー方式と判定することを特徴とする請求項１記載の情報処理システム。
【請求項３】
異なる範囲のアドレスに割り当てられる複数の副情報処理プログラムから構成される情報処理プログラムを実行し、実行中のアドレスを示す実行アドレスを出力する命令実行部と、
前記命令実行部が前記情報処理プログラムを実行中にアクセスして、前記情報処理プログラムが使用する情報を一時的に記憶するキャッシュメモリと、
前記命令実行部が出力した実行アドレスを受け取り、前記実行アドレスを通知する実行アドレス通知部と、
前記複数の副情報処理プログラムの各副情報処理プログラムに対応して、前記キャッシュメモリの電源投入と電源切断とのいずれかを行う為のキャッシュメモリ電源制御情報を含む情報であるキャッシュメモリ制御情報を記憶するキャッシュメモリ制御情報テーブルと、
前記実行アドレス通知部が通知した実行アドレスから、前記命令実行部が実行している副情報処理プログラムを判定し、判定された副情報処理プログラムに対応するキャッシュメモリ制御情報を前記キャッシュメモリ制御情報テーブルから読み取り、前記キャッシュメモリ制御情報に含まれる前記キャッシュメモリ電源制御情報を基に前記キャッシュメモリを制御するキャッシュメモリ制御部と、
前記キャッシュメモリへのアクセスの回数であるキャッシュメモリアクセス数を各副情報処理プログラムに対応して測定し、前記キャッシュメモリアクセス数を記憶するキャッシュメモリアクセス数カウント部と、
前記キャッシュメモリへのアクセスのうち前記命令実行部が要求したデータが前記キャッシュメモリに存在する回数であるキャッシュメモリヒット数を各副情報処理プログラムに対応して測定し、前記キャッシュメモリヒット数を記憶するキャッシュメモリヒット数カウント部と、
前記キャッシュメモリアクセス数カウント部が記憶した前記キャッシュメモリアクセス数と、前記キャッシュメモリヒット数カウント部が記憶した前記キャッシュメモリヒット数から、キャッシュメモリヒット率を各副情報処理プログラムに対応して計算するキャッシュメモリヒット率計算部と、
任意のキャッシュメモリヒット率閾値を記憶するキャッシュメモリヒット率閾値記憶部と、
前記キャッシュメモリヒット率計算部が計算した各副情報処理プログラムに対応するキャッシュメモリヒット率が前記キャッシュメモリヒット率閾値以上の場合には、前記キャッシュメモリ電源制御情報は電源投入であると判定し、前記キャッシュメモリヒット率が前記キャッシュメモリヒット率閾値未満の場合には、前記キャッシュメモリ電源制御情報は電源切断であると判定し、前記キャッシュメモリ制御情報テーブルに各副情報処理プログラムに対応して判定結果を記憶するキャッシュメモリ使用判定部と
を備えたことを特徴とする情報処理システム。
【請求項４】
前記情報処理システムは、実行順序の決まった複数の副情報処理プログラムで構成される処理を複数回繰り返し、
前記キャッシュメモリ使用判定部は、前記キャッシュメモリヒット率を、前記実行順序の決まった複数の副情報処理プログラムで構成される処理を複数回繰り返す内の１回目のみに計算することを特徴とする請求項３記載の情報処理システム。
【請求項５】
前記情報処理システムは、実行順序の決まった複数の副情報処理プログラムで構成される処理を複数回繰り返し、
前記キャッシュメモリ使用判定部は、前記キャッシュメモリヒット率を、前記実行順序の決まった複数の副情報処理プログラムで構成される処理を複数回繰り返す内の任意の回に計算することを特徴とする請求項３記載の情報処理システム。
【請求項６】
前記キャッシュメモリ制御部は、キャッシュメモリヒット率閾値記憶部が記憶する前記キャッシュメモリヒット率閾値を所定の条件に基づいて変化させることを特徴とする請求項３〜５いずれか記載の情報処理システム。
【請求項７】
異なる範囲のアドレスに割り当てられる複数の副情報処理プログラムから構成される情報処理プログラムを実行し、実行中のアドレスを示す実行アドレスを出力する命令実行部と、
前記命令実行部が前記情報処理プログラムを実行中にアクセスして、前記情報処理プログラムが使用する情報を一時的に記憶するキャッシュメモリと、
前記命令実行部が出力した実行アドレスを受け取り、前記実行アドレスを通知する実行アドレス通知部と、
前記複数の副情報処理プログラムの各副情報処理プログラムに対応して、前記キャッシュメモリの電源投入と電源切断とのいずれかを行う為のキャッシュメモリ電源制御情報を含む情報であるキャッシュメモリ制御情報を記憶するキャッシュメモリ制御情報テーブルと、
前記実行アドレス通知部が通知した実行アドレスから、前記命令実行部が実行している副情報処理プログラムを判定し、判定された副情報処理プログラムに対応するキャッシュメモリ制御情報を前記キャッシュメモリ制御情報テーブルから読み取り、前記キャッシュメモリ制御情報に含まれる前記キャッシュメモリ電源制御情報を基に前記キャッシュメモリを制御するキャッシュメモリ制御部とを備え、
前記キャッシュメモリ制御情報テーブルは、前記キャッシュメモリ制御情報として、
各副情報処理プログラムが割り当てられたアドレス範囲の先頭に位置する実行開始アドレスと、
前記実行開始アドレスが先頭に位置するアドレス範囲を割り当てられた各副情報処理プログラム実行時において、前記キャッシュメモリ制御部が前記キャッシュメモリの電源を投入するアドレスを示すキャッシュメモリ電源投入開始アドレスと
を含んでいることを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理システムの消費電力低減に関する。
【背景技術】
【０００２】
例えば、ＦＡ（ファクトリー・オートメーション）で利用される情報処理システムに用いられる組込み機器は、高い処理性能すなわち高性能を求められる。特に上位等級の組込み機器においての要求は顕著であり、この要求に応えられるような組込向けプロセッサを入手することで実現は可能である。
しかしながら、高性能を実現できるプロセッサは動作周波数が高く、消費電力が大きくなり、プロセッサにおける発熱量も大きくなる。
【０００３】
一方、組込み機器は、スペースやコストの制約などから十分な熱対策をとれないこともある。高性能を実現する為に動作周波数を上げた結果、プロセッサの発熱量は、プロセッサが許容する熱量を超えてしまうこともある。
そして、プロセッサの発熱量が許容値を超えると、誤動作や故障につながる為、動作周波数を落として消費電力を下げて対策せざるを得ず、目標性能を達成できないという問題がある。
【０００４】
その為、プロセッサの消費電力を低減させる為に、処理内容に応じてキャッシュメモリの電源を制御する方法がある。（例えば、特許文献１〜３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２８２８８０
【特許文献２】特開２００６−３０９７３４
【特許文献３】特表２００３−５３０６４０
【発明の概要】
【発明が解決しようとする課題】
【０００６】
この発明の実施の形態は、例えば情報処理システムの消費電力を低減させることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る情報処理システムは、
異なる範囲のアドレスに割り当てられる複数の副情報処理プログラムから構成される情報処理プログラムを実行し、実行中のアドレスを示す実行アドレスを出力する命令実行部と、
前記命令実行部が前記情報処理プログラム実行中にアクセスし、前記情報処理プログラムが使用する情報を一時的に記憶するキャッシュメモリと、
前記命令実行部が出力した実行アドレスを受け取り、前記実行アドレスを通知する実行アドレス通知部と、
前記複数の副情報処理プログラムの各副情報処理プログラムに対応して、前記キャッシュメモリの制御を行う為の情報であるキャッシュメモリ制御情報を記憶するキャッシュメモリ制御情報テーブルと、
前記実行アドレス通知部が通知した実行アドレスから、前記命令実行部が実行している副情報処理プログラムを判定し、判定された副情報処理プログラムに対応するキャッシュメモリ制御情報を前記キャッシュメモリ制御情報テーブルから読み取り、前記キャッシュメモリ制御情報を基に前記キャッシュメモリを制御するキャッシュメモリ制御部と
を備えたことを特徴とする。
【発明の効果】
【０００８】
この発明に係る情報処理システムは、消費電力を低減させることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１を示す図で、情報処理システム５００の構成を示す図。
【図２】実施の形態１を示す図で、複数の副情報処理プログラムから構成される情報処理プログラム５５０を示すフローチャート。
【図３】実施の形態１を示す図で、ループ処理を繰り返す情報処理プログラム５５０の流れを示すフローチャート。
【図４】実施の形態１を示す図で、ＣＰＵ５０１の構成を示す図。
【図５】実施の形態１を示す図で、キャッシュメモリ制御情報テーブル１２１の例を示す図。
【図６】実施の形態１を示す図で、初期化処理５５３完了後のキャッシュメモリ制御情報テーブル１２１の例を示す図。
【図７】実施の形態１を示す図で、ループ処理１周目５５２ａの処理を示すフローチャート。
【図８】実施の形態１を示す図で、副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報をキャッシュメモリ制御情報テーブル１２１に記録した例を示す図。（（ａ）は、副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源切断の場合、（ｂ）は、副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源投入の場合）
【図９】実施の形態１を示す図で、副情報処理プログラム２  ５５１ｂのキャッシュメモリ電源制御情報が電源切断の場合のライトバック／ライトスルー制御情報をキャッシュメモリ制御情報テーブル１２１に記録した例を示す図。（（ａ）は副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源切断の場合、（ｂ）は副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源投入の場合）
【図１０】実施の形態１を示す図で、副情報処理プログラム２  ５５１ｂのキャッシュメモリ電源制御情報が電源投入の場合のライトバック／ライトスルー制御情報をキャッシュメモリ制御情報テーブル１２１に記録した例を示す図。（（ａ）は副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源切断の場合、（ｂ）は副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源投入の場合）
【図１１】実施の形態１を示す図で、副情報処理プログラム５  ５５１ｅのキャッシュメモリ電源制御情報が電源投入の場合のライトバック／ライトスルー制御情報をキャッシュメモリ制御情報テーブル１２１に記録した例を示す図。
【図１２】実施の形態１を示す図で、ループ処理Ｎ周目５５２ｂの処理を示すフローチャート。
【図１３】実施の形態２を示す図で、キャッシュメモリ電源投入開始アドレスフィールド１２１ｆを備えたキャッシュメモリ制御情報テーブル１２１の例を示す図。
【図１４】実施の形態２を示す図で、キャッシュメモリ電源投入開始アドレスを用いた処理を示すフローチャート。
【図１５】実施の形態３を示す図で、ループ処理Ｎ周目にキャッシュメモリ制御情報テーブル１２１の設定を行うＣＰＵ５０１の構成を示す図。
【図１６】実施の形態３を示す図で、ループ処理Ｎ周目に設定されるキャッシュメモリ制御情報テーブル１２１の例を示す図。（（ａ）はループ処理１周目からループ処理Ｎ−１周目、（ｂ）はループ処理Ｎ周目以降）
【図１７】実施の形態４を示す図で、キャッシュメモリヒット率閾値テーブル４２６と温度警告部４２７とを備えるＣＰＵ５０１の構成を示す図。
【図１８】実施の形態４を示す図で、温度警告に対する処理を示すフローチャート。
【図１９】実施の形態４を示す図で、キャッシュメモリヒット率閾値テーブルを示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
例えば、ＦＡ（ファクトリー・オートメーション）で利用される情報処理システムを想定して、本実施の形態の概要を以下に説明する。
【００１１】
図１は、情報処理システム５００の構成を示す図である。
例えば、ＦＡで利用される情報処理システム５００は、外部からのデータ入力と外部へのデータ出力を行う入出力部５０４と、入出力部５０４の制御を行う入出力制御部５０３と、入出力部５０４からの入力データを基に演算を行い、演算結果を出力するＣＰＵ（セントラル・プロセッシング・ユニット、中央演算処理装置）５０１と、ＣＰＵ５０１の演算結果等を記憶する主記憶部５０２とで構成される。
そして、ＣＰＵ５０１は、本実施の形態の構成となっている。
【００１２】
図２は、複数の副情報処理プログラムから構成される情報処理プログラム５５０を示すフローチャートである。
ＦＡで利用される情報処理システム５００が実行する情報処理プログラム５５０は、図２に示すように１つの情報処理プログラム５５０が例えば５つの副情報処理プログラム１〜５  ５５１ａ〜ｅから構成されている。情報処理システム５００は、情報処理プログラム５５０開始時に初期化処理５５３を実施後、副情報処理プログラム１〜５  ５５１ａ〜ｅを実施する。
副情報処理プログラム１〜５  ５５１ａ〜ｅは、ＣＰＵ５０１において、それぞれ異なる範囲のアドレスに割り振られる。すなわち副情報処理プログラム１〜５  ５５１ａ〜ｅはそれぞれ異なる実行開始アドレスと実行終了終了アドレスを持つ。ここで実行開始アドレスとは副情報処理プログラムの実行を開始するアドレス（副情報処理プログラムが割り振られた先頭のアドレス）であり、実行終了アドレスとは副情報処理プログラムの実行を終了するアドレス（副情報処理プログラムが割り振られた後尾のアドレス）である。
ここで、本実施の形態では副情報処理プログラムの数を５つとして説明しているが、この例に限定されるものではない。１つの情報処理プログラムが複数の副情報処理プログラムから構成されている全ての場合に本実施の形態は有効である。
そして、情報処理プログラム５５０の終了条件を満たすまで、情報処理システム５００は、この複数の副情報処理プログラム１〜５  ５５１ａ〜ｅから構成された部分（副情報処理プログラムループ処理５５２）を繰り返し行うものが多い。
【００１３】
図３は、ループ処理を繰り返す情報処理プログラム５５０の流れを示すフローチャートである。
図３に示す初期化処理５５３は、図２に示す初期化処理５５３に対応している。また、図３に示すループ処理１周目５５２ａは、図２に示す副情報処理プログラム１〜５  ５５１ａ〜ｅの１周目の副情報処理プログラムループ処理５５２を示し、図３に示すループ処理Ｎ周目５５２ｂは、図２に示す副情報処理プログラム１〜５  ５５１ａ〜ｅの２周目以降の副情報処理プログラムループ処理５５２を示す。
【００１４】
図４は、ＣＰＵ５０１の構成を示す図である。
情報処理システム５００で使用するＣＰＵ５０１は、キャッシュメモリ１４１、命令実行部１０１、実行アドレス通知部１１１、キャッシュメモリ制御情報テーブル１２１、キャッシュメモリヒット率閾値記憶部１２２、キャッシュメモリ使用判定部１２３、ライト制御判定部１２４、キャッシュメモリヒット率計算部１２５、キャッシュメモリ制御部１３１、メモリアクセス制御部１５１を備える。そして、メモリアクセス制御部１５１は、キャッシュメモリアクセス数カウント部１５２とキャッシュメモリヒット数カウント部１５３とを備える。
【００１５】
まず、図４を用いて、キャッシュメモリ１４１について簡単に説明する。
演算などの命令を実行する命令実行部１０１は、演算に必要なデータや命令などの情報を記憶部から呼び出さなくてはならない。しかし、主記憶部５０２は、命令実行部１０１からの情報呼び出し命令が有ってから、実際に情報が呼び出されるまでのアクセス時間が長い。その為に情報処理システム５００の情報処理の速度は、低下する。
そこで、命令実行部１０１からの情報呼び出し命令が有ってから、実際に情報が呼び出されるまでのアクセス時間が短い記憶部であるキャッシュメモリ１４１をＣＰＵ５０１は、ＣＰＵ５０１の内部に備える。そして、命令実行部１０１は、メモリアクセス制御部１５１を介して、キャッシュメモリ１４１に使用頻度の高い情報を書き込み、蓄積しておく。その結果、命令実行部１０１は、主記憶部５０２へのアクセスを減らす。その為に情報処理システム５００の情報処理の速度は、向上する。
そして、命令実行部１０１がキャッシュメモリ１４１にアクセスして必要な情報を呼び出すことが出来たことをヒットといい、命令実行部１０１がキャッシュメモリ１４１にアクセスした回数に対するヒットの回数の比率を、キャッシュメモリヒット率という。
【００１６】
ここで、図４を用いて、キャッシュメモリヒット率の導出および、導出されたキャッシュメモリヒット率を用いてのキャッシュメモリ１４１の電源制御方法を説明する。
【００１７】
まず、副情報処理プログラム１  ５５１ａの実行時において、キャッシュメモリアクセス数カウント部１５２は、キャッシュメモリ１４１へのアクセスの回数であるキャッシュメモリアクセス数を測定し記憶する。
同じく、キャッシュメモリヒット数カウント部１５３は、キャッシュメモリ１４１におけるヒットの回数であるキャッシュメモリヒット数を測定し記憶する。
そして、キャッシュメモリヒット率計算部１２５は、キャッシュメモリヒット数とキャッシュメモリアクセス数の比率（キャッシュメモリヒット数÷キャッシュメモリアクセス数）を計算し、副情報処理プログラム毎のキャッシュメモリヒット率を導出する。
キャッシュメモリ使用判定部１２３は、キャッシュメモリヒット率閾値記憶部１２２が記憶しているキャッシュメモリヒット率閾値と、キャッシュメモリヒット率計算部１２５が導出した副情報処理プログラム毎のキャッシュメモリヒット率とを比較する。
本例においては、キャッシュメモリヒット率閾値は一つの値として説明するが、キャッシュメモリヒット率閾値記憶部１２２は、各副情報処理プログラムに対応した複数のキャッシュメモリヒット率閾値を記憶することも可能である。
そして、キャッシュメモリヒット率がキャッシュメモリヒット率閾値よりも少ない場合に、キャッシュメモリ使用判定部１２３は、キャッシュメモリ１４１を使用する必要が無い、すなわちキャッシュメモリ１４１の電源切断すると判断する。キャッシュメモリ制御情報テーブル１２１は、この判断結果をキャッシュメモリ制御情報の一部であるキャッシュメモリ電源制御情報として記憶する。
一方、キャッシュメモリヒット率がキャッシュメモリヒット率閾値以上の場合に、キャッシュメモリ使用判定部１２３は、キャッシュメモリ１４１を使用する必要が有る、すなわちキャッシュメモリ１４１の電源投入すると判断する。キャッシュメモリ制御情報テーブル１２１は、この判断結果をキャッシュメモリ制御情報の一部であるキャッシュメモリ電源制御情報として記憶する。
【００１８】
次に、副情報処理プログラム２  ５５１ｂの実行時において、同様の処理を行い、キャッシュメモリ制御情報テーブル１２１はキャッシュメモリ電源制御情報を記憶する。
副情報処理プログラム３〜５  ５５１ｃ〜ｅも同様である。
【００１９】
そして、キャッシュメモリ制御部１３１は、キャッシュメモリ制御情報テーブル１２１が記憶したキャッシュメモリ電源制御情報を参照して、該当の副情報処理プログラム実行時におけるキャッシュメモリ１４１の電源制御する。
すなわち、キャッシュメモリ電源制御情報が電源投入である副情報処理プログラムにおいて、キャッシュメモリ制御部１３１は、キャッシュメモリ１４１の電源投入する。そして、キャッシュメモリ電源制御情報が電源切断である副情報処理プログラムにおいて、キャッシュメモリ制御部１３１は、キャッシュメモリ１４１の電源切断する。
【００２０】
なお、キャッシュメモリ１４１に記憶された情報は、キャッシュメモリ１４１の電源切断されると消去されてしまう。そこで、メモリアクセス制御部１５１は、キャッシュメモリ１４１の電源切断される前に、主記憶部５０２にキャッシュメモリ１４１に記憶された情報を書き込む（書き戻す）必要がある。
【００２１】
ここで、図４を用いて、キャッシュメモリ１４１に書き込まれた情報をメモリアクセス制御部１５１が主記憶部５０２に書き込む方法（キャッシュメモリ１４１に書き込まれた情報を主記憶部５０２に書き戻す方法）について簡単に説明する。
この主記憶部５０２に情報を書き込む方法には、ライトバック方式とライトスルー方式の２種類がある。
まず、ライトバック方式について説明する。命令実行部１０１は、主記憶部５０２の情報領域の内、命令実行部１０１が処理に用いる領域の情報を、メモリアクセス制御部１５１を介して、キャッシュメモリ１４１に書き込む。また、命令実行部１０１は、プログラム処理中に新規情報が生じた場合に、メモリアクセス制御部１５１を介して、キャッシュメモリ１４１に新規情報を書き込み、キャッシュメモリ１４１の情報を更新する。
そして、命令実行部１０１は、メモリアクセス制御部を介して、キャッシュメモリ１４１が記憶している情報が更新されている場合に、キャッシュメモリ１４１が記憶している情報を所定のタイミングで主記憶部５０２に書き込む（書き戻す）。ここで所定のタイミングとは、メモリアクセス制御部１５１が、キャッシュメモリ１４１が記憶していた情報に対応する主記憶部５０２の領域とは異なる主記憶部５０２の領域の情報をキャッシュメモリ１４１の情報に置き換えるタイミングである。
その為に、ライトバック方式は、主記憶部５０２へのアクセスが少ないためシステム性能が向上するという長所が有るが、書き戻しのタイミングが来るまでキャッシュメモリ１４１に記憶された新規情報は主記憶部５０２に書き込まれない。そして、書き戻しのタイミングが来ないまま、キャッシュメモリ１４１の電源切断になった場合、キャッシュメモリ１４１に記憶された新規情報は主記憶部５０２には記憶されない。
次に、ライトスルー方式について説明する。命令実行部１０１は、新規情報の書き込みを行う際に、メモリアクセス制御部１５１を介して、キャッシュメモリ１４１と主記憶部５０２との両方に新規情報を書き込む。その為に、ライトスルー方式は、キャッシュメモリ１４１と主記憶部５０２との間で情報が常に一致するという長所が有る。すなわち、急にキャッシュメモリ１４１の電源切断されても、キャッシュメモリ１４１に記憶された情報は主記憶部５０２にも記憶される。ただし、ライトスルー方式は、主記憶部５０２へのアクセスが増えるためシステム性能が低下する。
【００２２】
図５は、キャッシュメモリ制御情報テーブル１２１の例を示す図である。
本例において、キャッシュメモリを制御する情報であるキャッシュメモリ制御情報は、副情報処理プログラム名、実行開始アドレス、実行終了アドレス、キャッシュメモリ電源制御情報、ライトバック／ライトスルー制御情報で構成されている。
本例では、副情報処理プログラムは、副情報処理プログラム１〜５  ５５１ａ〜ｅの５つの場合である。
図２または図３に示す初期化処理５５３において、情報処理プログラム５５０に従い、命令実行部１０１は、副情報処理プログラム１〜５  ５５１ａ〜ｅの副情報処理プログラム名と実行開始アドレスと実行終了アドレスとを出力する。
キャッシュメモリ制御情報テーブル１２１は、副情報処理プログラム名フィールド１２１ａに、命令実行部１０１が出力した副情報処理プログラム１〜５  ５５１ａ〜ｅの情報を記憶する。
また、命令実行部１０１は、出力した各副情報処理プログラムに対応する実行開始アドレスをキャッシュメモリ制御情報テーブル１２１の実行開始アドレスフィールド１２１ｂに記憶させる。同様に、命令実行部１０１は、出力した各副情報処理プログラムに対応する実行終了アドレスをキャッシュメモリ制御情報テーブル１２１の実行終了アドレスフィールド１２１ｃに記憶させる。ここで実際のアドレスは例えば１６進数表記による００１Ｄや、１０２３Ａ０Ｂ１といった数値となるが、本例では説明の為に、単にアドレスという表記を用いている。
また、キャッシュメモリ制御情報テーブル１２１は、キャッシュメモリ電源制御情報フィールド１２１ｄにキャッシュメモリ使用判定部１２３が出力したキャッシュメモリの電源制御（電源投入もしくは電源切断）情報を記憶する。さらに、キャッシュメモリ制御情報テーブル１２１は、ライトバック／ライトスルー制御情報フィールド１２１ｅにライト制御判定部１２４が出力したライトバック／ライトスルー制御情報（メモリアクセス制御部１５１がキャッシュメモリ１４１の記憶した情報を主記憶部５０２に書き込む方式であるライトバックもしくはライトスルーの制御情報）を記憶する。
【００２３】
ここで図５を用いて複数の副情報処理プログラムにおけるライトバック方式とライトスルー方式の制御の割り当て方法を説明する。
【００２４】
例えば、副情報処理プログラム２  ５５１ｂに対応するキャッシュメモリ電源制御情報が「電源投入」であり、副情報処理プログラム３  ５５１ｃに対応するキャッシュメモリ電源制御情報が「電源投入」の場合は、副情報処理プログラム２  ５５１ｂ終了時において、キャッシュメモリ１４１の電源は投入されたままである。その為、メモリアクセス制御部１５１は、キャッシュメモリ１４１に記憶された情報を副情報処理プログラム２  ５５１ｂの処理内で主記憶部５０２に書き込み完了にする必要が無い（主記憶部５０２に書き戻す必要が無い）。よって、副情報処理プログラム２  ５５１ｂにおける主記憶部５０２への書き込み方法は、情報処理システム５００の高速化に有利な「ライトバック方式」とする。
一方、副情報処理プログラム３  ５５１ｃに対応するキャッシュメモリ電源制御情報が「電源投入」であり、副情報処理プログラム４  ５５１ｄに対応するキャッシュメモリ電源制御情報が「電源切断」の場合は、副情報処理プログラム３  ５５１ｃ終了時において、キャッシュメモリ１４１の電源は切断される。その為、キャッシュメモリ１４１の電源を速やかに切断するには、メモリアクセス制御部１５１は、キャッシュメモリ１４１に記憶された情報を副情報処理プログラム３  ５５１ｃの処理内で（もしくは副情報処理プログラム３  ５５１ｃ終了後短時間で）、主記憶部５０２に書き込み完了にする必要が有る。よって、副情報処理プログラム３  ５５１ｃにおける主記憶部５０２への書き込み方法は、主記憶部５０２とキャッシュメモリ１４１それぞれに記憶されている情報の整合性が常にとれている「ライトスルー方式」にする必要が有る。
【００２５】
同様に、ライト制御判定部１２４は、キャッシュメモリ制御情報テーブル１２１に記憶されているキャッシュメモリ電源制御情報の前後関係から「ライトバック方式」「ライトスルー方式」を判定する。そして、キャッシュメモリ制御情報テーブル１２１はその判定結果であるライトバック／ライトスルー制御情報をキャッシュメモリ制御情報の一部として記憶する。
【００２６】
ここで、情報処理プログラム５５０の動作並びにキャッシュメモリ１４１制御の詳細を説明する。
図３に示すように、情報処理プログラム５５０の流れを初期化処理５５３、ループ処理１周目５５２ａ、ループ処理Ｎ周目５５２ｂに分けて説明する。
【００２７】
まず、図３に示す初期化処理５５３の部分について説明する。
【００２８】
情報処理システム５００の電源が投入されると、情報処理システム５００は、リセット動作を行う。そして、リセット動作が解除されると、ＣＰＵ５０１内の命令実行部１０１は、例えば入出力部５０４から読み出した情報処理プログラム５５０を開始し、まず初期化処理５５３を行う。
【００２９】
図６は、初期化処理５５３完了後のキャッシュメモリ制御情報テーブル１２１の例を示す図である。
初期化処理５５３において、情報処理プログラム５５０に従い、命令実行部１０１は、副情報処理プログラム１〜５  ５５１ａ〜ｅの副情報処理プログラム名と実行開始アドレスと実行終了アドレスとを出力する。キャッシュメモリ制御情報テーブル１２１は、副情報処理プログラム名フィールド１２１ａに、命令実行部１０１が出力した副情報処理プログラム１〜５  ５５１ａ〜ｅの情報をキャッシュメモリ制御情報の一部として記憶する。
また、命令実行部１０１は、出力した各副情報処理プログラムに対応した実行開始アドレスをキャッシュメモリ制御情報の一部として、キャッシュメモリ制御情報テーブル１２１の実行開始アドレスフィールド１２１ｂに記憶させる。同様に、命令実行部１０１は、出力した各副情報処理プログラムに対応した実行終了アドレスをキャッシュメモリ制御情報の一部として、実行終了アドレスフィールド１２１ｃに記憶させる。
【００３０】
次に、図３におけるループ処理１周目５５２ａの処理を説明する。
【００３１】
キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１からの指示に基づき、キャッシュメモリヒット率計算部１２５は、各副情報処理プログラム１〜５  ５５１ａ〜ｅにおけるキャッシュメモリ１４１のキャッシュメモリヒット率を計算する。
キャッシュメモリ使用判定部１２３は、各副情報処理プログラムに対応したキャッシュメモリ１４１の電源投入もしくは電源切断の電源制御の判定を行う。
キャッシュメモリ制御情報テーブル１２１は、その判定結果である各副情報処理プログラムに対応した形のキャッシュメモリ電源制御情報をキャッシュメモリ制御情報の一部として記憶する。
【００３２】
ここで、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１が実行中の副情報処理プログラムを確定する方法を説明する。
副情報処理プログラム実行中において、命令実行部１０１は、命令実行部１０１が実行中の命令のアドレスを示す実行アドレスを出力する。実行アドレス通知部１１１は、命令実行部１０１が出力した実行アドレスをキャッシュメモリ制御情報テーブル１２１とキャッシュメモリ制御部１３１に通知する。
キャッシュメモリ制御部１３１は、キャッシュメモリ制御情報テーブル１２１に記憶された副情報処理プログラム１〜５  ５５１ａ〜ｅに対応した実行開始アドレスと実行終了アドレスを参照する。そして、通知された実行アドレスが該当する実行開始アドレスと実行終了アドレスの範囲を確定することで、キャッシュメモリ制御部１３１は、実行中の副情報処理プログラムを確定することが出来る。
ここで、キャッシュメモリ制御情報テーブル１２１も能動的にデータ処理や命令出力を行う機能を設けることが可能である。したがって、キャッシュメモリ制御情報テーブル１２１も、同様の処理で実行中の副情報処理プログラムを確定することが出来る。
【００３３】
図７は、ループ処理１周目５５２ａの処理を示すフローチャートである。図７を用いて詳細に説明を行う。
【００３４】
ループ処理１周目５５２ａにおいて、命令実行部１０１は、図７のＳ６００と図７のＳ６１８の間の処理を副情報処理プログラム１〜５  ５５１ａ〜ｅの数、すなわち５回繰り返す。
図７のＳ６００と図７のＳ６１８の「ｉ＝１；ｉ≦５；ｉ＋＋」のｉは繰り返し回数を示し、１〜５回まで１回ずつ（すなわち計５回）繰り返すことを示す。
【００３５】
まず、キャッシュメモリヒット率をキャッシュメモリヒット率計算部１２５が計算するステップ（図７のＳ６０１〜Ｓ６０７）を説明する。
【００３６】
命令実行部１０１は、実行している命令のアドレス（実行アドレス）を実行アドレス通知部１１１に出力する。（図７のＳ６０１）
実行アドレス通知部１１１は、実行アドレスをキャッシュメモリ制御部１３１とキャッシュメモリ制御情報テーブル１２１に通知する。一方、キャッシュメモリ制御情報テーブル１２１は、初期化処理５５３において、副情報処理プログラム１  ５５１ａの実行開始アドレス（図６のアドレスａ＿Ｓ）を記憶している。
キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、副情報処理プログラム１  ５５１ａの実行開始アドレス（図６のアドレスａ＿Ｓ）と通知された実行アドレスとを比較する。（図７のＳ６０２）
キャッシュメモリ制御情報テーブル１２１に記憶された副情報処理プログラム１  ５５１ａの実行開始アドレス（図６のアドレスａ＿Ｓ）と通知された実行アドレスとが一致するまで、Ｓ６０１〜Ｓ６０２の処理は繰り返される。
そして、実行開始アドレスと通知された実行アドレスとが一致すると、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、キャッシュメモリアクセス数カウント部１５２が記憶しているカウント数（カウンタ）とキャッシュメモリヒット数カウント部１５３が記憶しているカウント数（カウンタ）とをゼロにする。（図７のＳ６０３）
【００３７】
続いて、キャッシュメモリアクセス数カウント部１５２とキャッシュメモリヒット数カウント部１５３はカウントを開始する。
ここで、命令実行部１０１は、キャッシュメモリ１４１または主記憶部５０２にアクセスして、命令実行の際に必要な情報を得る。
その際に、キャッシュメモリアクセス数カウント部１５２は、命令実行部１０１が要求したメモリアクセス数を測定（カウント）し、結果を記憶する。キャッシュメモリヒット数カウント部１５３は、命令実行部１０１が要求したメモリアクセスが主記憶部５０２ではなく、キャッシュメモリ１４１である場合の回数（すなわち、キャッシュメモリ１４１でヒットした回数であるキャッシュメモリヒット数）を測定（カウント）し、結果を記憶する。（図７のＳ６０４）
キャッシュメモリアクセス数カウント部１５２のカウントとキャッシュメモリヒット数カウント部１５３のカウントが開始されると、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、実行アドレス通知部１１１が通知する実行アドレスと、キャッシュメモリ制御情報テーブル１２１に記憶された副情報処理プログラム１  ５５１ａの実行終了アドレス（図６のアドレスａ＿Ｅ）とを比較する。（図７のＳ６０５〜Ｓ６０６）
【００３８】
キャッシュメモリ制御情報テーブル１２１に記憶された副情報処理プログラム１  ５５１ａの実行終了アドレス（図６のアドレスａ＿Ｅ）と通知された実行アドレスとが一致するまで、キャッシュメモリアクセス数カウント部１５２のカウントとキャッシュメモリヒット数カウント部１５３のカウントは継続する。
そして、実行終了アドレスと通知された実行アドレスとが一致すると、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、キャッシュメモリアクセス数カウント部１５２のカウントとキャッシュメモリヒット数カウント部１５３のカウントを終了させる。
キャッシュメモリアクセス数カウント部１５２は、カウントを終了し、キャッシュメモリアクセス数をキャッシュメモリヒット率計算部１２５に通知する。
キャッシュメモリヒット数カウント部１５３は、カウントを終了し、キャッシュメモリヒット数をキャッシュメモリヒット率計算部１２５に通知する。
キャッシュメモリヒット率計算部１２５は通知されたキャッシュメモリアクセス数とキャッシュメモリヒット数から、キャッシュメモリヒット率を計算する。（キャッシュメモリヒット率＝キャッシュメモリヒット数÷キャッシュメモリアクセス数）（図７のＳ６０７）
【００３９】
次にキャッシュメモリ使用判定部１２３が、キャッシュメモリ電源制御情報をキャッシュメモリ制御情報テーブル１２１に記録する部分（図７のＳ６０８〜Ｓ６０９およびＳ６０８〜Ｓ６１３）を説明する。
【００４０】
図８は、副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報をキャッシュメモリ制御情報テーブル１２１に記録した例を示す図である。（（ａ）は、副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源切断の場合、（ｂ）は、副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源投入の場合）
【００４１】
キャッシュメモリ使用判定部１２３は、キャッシュメモリヒット率計算部１２５が計算したキャッシュメモリヒット率と、キャッシュメモリヒット率閾値記憶部１２２が記憶しているキャッシュメモリヒット率閾値とを比較する。（図７のＳ６０８）
キャッシュメモリヒット率がキャッシュメモリヒット率閾値よりも小さい場合、キャッシュメモリ使用判定部１２３は、キャッシュメモリの電源切断と判定する。そして、キャッシュメモリ制御情報テーブル１２１は、その判定結果を副情報処理プログラム１  ５５１ａにおけるキャッシュメモリ電源制御情報フィールド１２１ｄに登録する。（図７のＳ６０９および図８（ａ））
キャッシュメモリヒット率がキャッシュメモリヒット率閾値よりも大きいまたは等しい場合、キャッシュメモリ使用判定部１２３は、キャッシュメモリの電源投入と判定する。そして、キャッシュメモリ制御情報テーブル１２１は、その判定結果を副情報処理プログラム１  ５５１ａにおけるキャッシュメモリ電源制御情報フィールド１２１ｄに登録する。（図７のＳ６１３および図８（ｂ））
【００４２】
ここで、キャッシュメモリヒット率をキャッシュメモリヒット率計算部１２５が計算するステップ（図７のＳ６０１〜Ｓ６０７）とキャッシュメモリ使用判定部１２３が、キャッシュメモリ電源制御情報をキャッシュメモリ制御情報テーブル１２１に記録する部分（図７のＳ６０８〜Ｓ６０９およびＳ６０８〜Ｓ６１３）について、繰り返し回数ｉが１回目（すなわち副情報処理プログラム１  ５５１ａ）の場合を例に説明したが、繰り返し回数が２〜５回目（すなわち副情報処理プログラム２〜５  ５５１ｂ〜ｅ）においても同様の処理が行われる。
【００４３】
次にライト制御判定部１２４が、ライトバック／ライトスルー制御情報を判定するステップ（図７のＳ６１０〜Ｓ６１２およびＳ６１４〜Ｓ６１７）を説明する。
【００４４】
図９は、副情報処理プログラム２  ５５１ｂのキャッシュメモリ電源制御情報が電源切断の場合のライトバック／ライトスルー制御情報をキャッシュメモリ制御情報テーブル１２１に記録した例を示す図である。（（ａ）は副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源切断の場合、（ｂ）は副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源投入の場合）
図１０は、副情報処理プログラム２  ５５１ｂのキャッシュメモリ電源制御情報が電源投入の場合のライトバック／ライトスルー制御情報をキャッシュメモリ制御情報テーブル１２１に記録した例を示す図である。（（ａ）は副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源切断の場合、（ｂ）は副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源投入の場合）
図１１は、副情報処理プログラム５  ５５１ｅのキャッシュメモリ電源制御情報が電源投入の場合のライトバック／ライトスルー制御情報をキャッシュメモリ制御情報テーブル１２１に記録した例を示す図である。
【００４５】
まず、繰り返し回数ｉが１回目の場合（すなわち副情報処理プログラム１  ５５１ａの場合）、ライト制御判定部１２４は、ライトバック／ライトスルー制御情報の判定を見送る（図７のＳ６１０またはＳ６１４）。そして、Ｓ６１８からＳ６００に戻り、繰り返し回数ｉが２回目の場合（すなわち副情報処理プログラム２  ５５１ｂの場合）に命令実行部１０１は処理を移す。
そして、繰り返し回数ｉが２回目以降の場合（すなわち副情報処理プログラム１  ５５１ａ〜ｅの場合）で、キャッシュメモリ電源制御情報が電源投入の場合には、ライト制御判定部１２４は、ライトバック／ライトスルー制御情報を判定する。その判定結果は、各副情報処理プログラム１〜５  ５５１ａ〜ｅにおけるキャッシュメモリ電源制御情報の設定によって変化する。
【００４６】
ここで、繰り返し回数ｉが２回目の場合（すなわち副情報処理プログラム２  ５５１ｂの場合）を例に説明を行う。
副情報処理プログラム２  ５５１ｂのキャッシュメモリ電源制御情報が電源切断と設定された場合、ライト制御判定部１２４は、一つ前の副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報を参照する。
そして、一つ前の副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源切断であるならば、Ｓ６１８からＳ６００に戻り、次の副情報処理プログラム３  ５５１ｃに命令実行部１０１は処理を移す。（図７のＳ６１１および図９（ａ））
一方、一つ前の副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源投入であるならば、ライト制御判定部１２４は、副情報処理プログラム１  ５５１ａのライトバック／ライトスルー制御情報をライトスルー制御に設定する。（図７のＳ６１２および図９（ｂ））
図９（ｂ）の副情報処理プログラム２  ５５１ｂではキャッシュメモリ電源切断となるため、キャッシュメモリ１４１の情報は消えてしまう。その為、書き込み方式の制御は、副情報処理プログラム１  ５５１ａの処理内もしくは処理終了後短時間でキャッシュメモリ１４１の情報が主記憶部５０２へ書き込まれるライトスルー制御とする。
【００４７】
同じく、繰り返し回数ｉが２回目の場合（すなわち副情報処理プログラム２  ５５１ｂの場合）を例に説明を行う。
副情報処理プログラム２  ５５１ｂのキャッシュメモリ電源制御情報が電源投入と設定された場合、ライト制御判定部１２４は、一つ前の副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報を参照する。
そして、一つ前の副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源切断であるならば、Ｓ６１８からＳ６００に戻り、次の副情報処理プログラム３  ５５１ｃに命令実行部１０１は処理を移す。（図７のＳ６１５および図１０（ａ））
一方、一つ前の副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報が電源投入であるならば、ライト制御判定部１２４は、副情報処理プログラム１  ５５１ａのライトバック／ライトスルー制御情報をライトバック制御に設定する。（図７のＳ６１６および図１０（ｂ））
副情報処理プログラム２  ５５１ｂではキャッシュメモリ電源切断する必要がないため、書き込み方式の制御は、性能的に有利であるライトバック制御とする。
【００４８】
ここで、繰り返し回数ｉが２回目（すなわち副情報処理プログラム２  ５５１ｂ）の場合を例に説明したが、繰り返し回数が３〜５回目（すなわち副情報処理プログラム３〜５  ５５１ｃ〜ｅ）においても同様の処理が行われる。
【００４９】
なお、副情報処理プログラム５  ５５１ｅ（繰り返し回数ｉが５回目）においては、後続の副情報処理プログラムが無く、必ずキャッシュメモリ１４１の電源切断する場合を想定する。その場合、ライト制御判定部１２４は、副情報処理プログラム５  ５５１ｅのライトバック／ライトスルー制御情報を、ライトスルー制御に設定する。（図７のＳ６１７および図１１）
ただし、副情報処理プログラム５  ５５１ｅの後に副情報処理プログラム１  ５５１ａに戻って繰り返し処理を行う場合には、副情報処理プログラム５  ５５１ｅに続く処理を副情報処理プログラム１  ５５１ａと考えることが出来る。そして、ライト制御判定部１２４は、副情報処理プログラム１  ５５１ａのキャッシュメモリ電源制御情報を参照して、副情報処理プログラム５  ５５１ｅのライトバック／ライトスルー制御情報を設定することも出来る。
【００５０】
最後に、図３におけるループ処理Ｎ周目５５２ｂ（２周目以降）の処理を説明する。
【００５１】
ループ処理の２周目以降において、キャッシュメモリ制御部１３１は、ループ処理１周目５５２ａで設定されたキャッシュメモリ制御情報テーブル１２１を参照する。
そして、キャッシュメモリ電源制御情報が電源投入の制御である副情報処理プログラムにおいて、キャッシュメモリ制御部１３１は、キャッシュメモリ１４１の電源を投入する。また、キャッシュメモリ電源制御情報が電源切断の制御である副情報処理プログラムにおいて、キャッシュメモリ制御部１３１は、キャッシュメモリ１４１の電源を切断する。
キャッシュメモリ１４１の電源制御をすることでキャッシュメモリ１４１（ＣＰＵ５０１）の消費電力を低減する。
【００５２】
図１２は、ループ処理Ｎ周目５５２ｂの処理を示すフローチャートである。ここでは、例えばループ処理２周目として、図１２を用いて詳細に説明を行う。
【００５３】
ループ処理１周目５５２ａと同様に、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、キャッシュメモリ制御情報テーブル１２１に記憶された副情報処理プログラム１  ５５１ａの実行開始アドレス（図６のアドレスａ＿Ｓ）と実行アドレス通知部１１１から通知された実行アドレスとを比較する。（図１２のＳ７０１〜Ｓ７０２）
そして、副情報処理プログラム１  ５５１ａの実行開始アドレスと通知された実行アドレスとが一致すると、キャッシュメモリ制御部１３１は、キャッシュメモリ制御情報テーブル１２１の副情報処理プログラム１  ５５１ａにおけるキャッシュメモリ電源制御情報フィールド１２１ｄを参照する。（図１２のＳ７０３）
【００５４】
参照した結果、キャッシュメモリ電源制御情報が電源切断であれば、キャッシュメモリ制御部１３１は、キャッシュメモリ１４１を使用しないと判断し、キャッシュメモリ１４１の電源切断する。（図１２のＳ７０５）
【００５５】
参照した結果、キャッシュメモリ電源制御情報が電源投入であれば、キャッシュメモリ制御部１３１は、キャッシュメモリ１４１を使用すると判断し、キャッシュメモリ１４１の電源投入する。ただし、電源投入の場合、キャッシュメモリ制御部１３１は、続いてキャッシュメモリ制御情報テーブル１２１の副情報処理プログラム１  ５５１ａにおけるライトバック／ライトスルー制御情報フィールド１２１ｅを参照する。（図１２のＳ７０４）
【００５６】
キャッシュメモリ制御部１３１がライトバック／ライトスルー制御情報フィールド１２１ｅを参照した結果、ライトバックであれば、キャッシュメモリ制御部１３１は、ライトバック方式でキャッシュメモリ１４１から主記憶部５０２への書き戻しを行うようにメモリアクセス制御部１５１に通知する。（図１２のＳ７０６）
キャッシュメモリ制御部１３１がライトバック／ライトスルー制御情報フィールド１２１ｅを参照した結果、ライトスルーであれば、キャッシュメモリ制御部１３１は、ライトスルー方式でキャッシュメモリ１４１から主記憶部５０２への書き戻しを行うようにメモリアクセス制御部１５１に通知する。（図１２のＳ７０７）
【００５７】
副情報処理プログラム２〜５  ５５１ｂ〜ｅ（繰り返し回数２〜５回目）についても同様の処理を行い、ＣＰＵ５０１は、ループ処理２周目の処理を完了する。
ループ処理３周目以降が続く場合も、ＣＰＵ５０１は、同様の処理を行う。
【００５８】
本実施の形態により、キャッシュメモリ１４１のキャッシュメモリヒット率が低く、ＣＰＵ５０１の高速化の効果が低い時には、ＣＰＵ５０１はキャッシュメモリ１４１の電源切断することでＣＰＵ５０１の消費電力を低減させる。
【００５９】
例えば、従来、情報処理システムの処理が進行している状態で、最新のキャッシュメモリヒット率を基準にして、キャッシュメモリ使用判定部１２３がキャッシュメモリ１４１の使用を判定する場合を考える。
キャッシュメモリ使用判定部１２３が、任意の副情報処理プログラムにおいてキャッシュメモリ１４１を不要と判断すると、キャッシュメモリ制御部１３１は、キャッシュメモリ１４１の電源切断する。
この時、キャッシュメモリ１４１全体の電源切断すると、キャッシュメモリヒット率は０％から変化しない。その為、キャッシュメモリヒット率は、キャッシュメモリヒット率閾値を超えることが無く、キャッシュメモリ１４１の電源は再投入されない。
しかし、本実施の形態は、キャッシュメモリ制御情報テーブル１２１の情報に従って、キャッシュメモリ制御部１３１は、副情報処理プログラム毎にキャッシュメモリ１４１の電源を制御する。従って、キャッシュメモリ１４１の電源投入／電源切断に関係なく、キャッシュメモリ制御部１３１は、キャッシュメモリ１４１の電源制御が可能である。その為に、キャッシュメモリ制御部１３１は、キャッシュメモリ１４１全体の電源切断することが可能であり、ＣＰＵ５０１は、消費電力をより大きく低減できる。
【００６０】
また、例えば、ＦＡで利用される情報処理システム５００において、命令実行部１０１は、最初にアクセスが高速で記憶容量の小さい１次キャッシュメモリから情報を呼び出す。１次キャッシュメモリに情報がなかった場合は、命令実行部１０１は、１次キャッシュメモリより低速で記憶容量の大きい２次キャッシュメモリからデータを呼び出す。そして、命令実行部１０１は、ほとんど１次キャッシュメモリを使用し、２次キャッシュメモリを局所的に必要とする。
キャッシュメモリは、複数の部分から構成されており、ＣＰＵ５０１は、キャッシュメモリの電源を部分的に切断して省電力化を図ることが可能である。しかし、局所的にキャッシュメモリが使用され、かつキャッシュメモリヒット率が低い場合には、ＣＰＵ５０１は、部分的にキャッシュメモリの電源を切断するよりも、キャッシュメモリ全体の電源を切断した方が消費電力低減の効果が大きい。
そこで、例えば１次キャッシュメモリは情報処理速度向上の効果が大きいために常時電源を投入した状態とし、情報処理システムは、２次キャッシュメモリのみ電源制御を行う場合が想定される。
本実施の形態において、キャッシュメモリの種別は限定されないが、このように情報処理システムが局所的に使用する２次キャッシュメモリの制御を行う場合に、本実施の形態は、特に効果がある。
【００６１】
なお、本実施の形態では、キャッシュメモリ使用判定部１２３は、キャッシュメモリ制御情報テーブル１２１をループ処理１周目５５２ａで設定するようにしていた。
しかしながら、ＣＰＵ５０１で実行する情報処理プログラム５５０は確定した内容で有り、あらかじめ副情報処理プログラムにおけるキャッシュメモリヒット率が分かっている場合が想定される。この場合であれば、キャッシュメモリ制御情報テーブル１２１の設定情報は、例えばＣＰＵ５０１の製造時に固定情報として記憶させることも可能である。情報処理プログラム５５０の実行時にキャッシュメモリ制御情報テーブル１２１の設定をする必要が無いために、コスト面は有利になる可能性がある。
【００６２】
実施の形態２．
キャッシュメモリは、電源を投入して使用可能になるまでには数マイクロ秒〜数十マイクロ秒程度の時間がかかると想定される。この時間キャッシュメモリが使えないことにより、ＣＰＵ５０１は、性能面の損失が生じる。そこで、キャッシュメモリ制御情報テーブル１２１は、キャッシュメモリの電源を実行開始アドレスよりも早いタイミングであらかじめ電源投入するためのキャッシュメモリ電源投入開始アドレスの情報を備える。
【００６３】
図１３は、キャッシュメモリ電源投入開始アドレスフィールド１２１ｆを備えたキャッシュメモリ制御情報テーブル１２１の例を示す図である。
図１４は、キャッシュメモリ電源投入開始アドレスを用いた処理を示すフローチャートである。
【００６４】
図１３に示すように、本実施の形態においては、命令実行部１０１もしくはキャッシュメモリ制御情報テーブル１２１は、初期化処理５５３で実施の形態１で行った処理に加えて、キャッシュメモリ制御情報テーブル１２１のキャッシュメモリ電源投入開始アドレスフィールド１２１ｆにキャッシュメモリ電源投入開始アドレスの情報を設定する。
例えば、図１３において、副情報処理プログラム３  ５５１ｃのキャッシュメモリ電源処理情報が電源投入となっている。しかし、副情報処理プログラム３  ５５１ｃの実行開始アドレスであるアドレスｃ＿Ｓにおいて、キャッシュメモリ１４１の電源投入しても実際にキャッシュメモリ１４１が機能するのは、電源投入から数マイクロ秒〜数十マイクロ秒程度の立ち上がり時間を要した後になってしまう。
そこで、命令実行部１０１もしくはキャッシュメモリ制御情報テーブル１２１は、副情報処理プログラム３  ５５１ｃのキャッシュメモリ電源投入開始アドレスであるアドレスｃ＿Ｌを設定する。このアドレスｃ＿Ｌは、副情報処理プログラム３  ５５１ｃの実行開始アドレスであるアドレスｃ＿Ｓのタイミングよりも数マイクロ秒〜数十マイクロ秒程度前にキャッシュメモリ１４１の電源投入にするようなタイミングに設定される。
【００６５】
そして、ループ処理１周目５５２ａにおいては、実施の形態１で行った処理同様に、キャッシュメモリ使用判定部１２３とライト制御判定部１２４は、キャッシュメモリ電源制御情報とライトバック／ライトスルー制御情報を設定する。
【００６６】
次にループ処理Ｎ周目５５２ｂ（２周目以降）における処理を図１４で説明する。
まず、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、キャッシュメモリ制御情報テーブル１２１に記憶された副情報処理プログラム１  ５５１ａのキャッシュメモリ電源投入開始アドレス（図１３のアドレスａ＿Ｌ）と実行アドレス通知部１１１から通知された実行アドレスとを比較する。（図１４のＳ８０１〜Ｓ８０２）
【００６７】
キャッシュメモリ電源投入開始アドレス（図１３のアドレスａ＿Ｌ）と実行アドレス通知部１１１から通知された実行アドレスとが不一致の場合、キャッシュメモリ制御部１３１は、キャッシュメモリ制御情報テーブル１２１に記憶された副情報処理プログラム１  ５５１ａの実行開始アドレス（図１３のアドレスａ＿Ｓ）と実行アドレス通知部１１１から通知された実行アドレスとを比較する。（図１４のＳ８０５）
ここでも、実行開始アドレスと実行アドレスが不一致な場合は、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、次の実行アドレスの入力を待つ（Ｓ８０１に戻る）。そして、実行アドレスとキャッシュメモリ電源投入開始アドレスもしくは、実行アドレスと実行開始アドレスのどちらかが一致するまで、キャッシュメモリ制御部１３１は、処理を繰り返す。
【００６８】
キャッシュメモリ電源投入開始アドレス（図１３のアドレスａ＿Ｌ）と実行アドレス通知部１１１から通知された実行アドレスとが不一致のままの状態が続いた後に、実行開始アドレス（図１３のアドレスａ＿Ｓ）と実行アドレスが一致する場合は、キャッシュメモリ電源投入開始アドレスが設定されていない場合である。従ってキャッシュメモリ制御部１３１は、キャッシュメモリ１４１を使用しないと判断し、キャッシュメモリの電源切断する。（図１４のＳ８０６）
【００６９】
一方、キャッシュメモリ電源投入開始アドレス（図１３のアドレスａ＿Ｌ）と実行アドレス通知部１１１から通知された実行アドレスとが一致した場合（図１４のＳ８０２）、キャッシュメモリ制御部１３１は、キャッシュメモリ電源制御情報を参照する。
ここで参照した結果が電源切断であれば、キャッシュメモリ電源投入開始アドレスは設定されているが、キャッシュメモリの電源切断で良い。よって、キャッシュメモリ制御部１３１は、キャッシュメモリ１４１の電源切断とし、次の副情報処理プログラム２  ５５１ｂの処理に移る。
【００７０】
そして、キャッシュメモリ電源投入開始アドレス（図１３のアドレスａ＿Ｌ）と実行アドレス通知部１１１から通知された実行アドレスとが一致した場合で、キャッシュメモリ制御部１３１がキャッシュメモリ電源制御情報を参照した結果が電源投入であれば、キャッシュメモリ制御部１３１は、キャッシュメモリ１４１を使用すると判断する。そして、キャッシュメモリ制御部１３１は、実行アドレスが実行開始アドレスと一致するのを待たずにキャッシュメモリ１４１の電源投入する。（図１４のＳ８０３）
キャッシュメモリ１４１の電源投入の場合、キャッシュメモリ制御部１３１は、さらにライトバック／ライトスルー制御情報を参照する。（図１４のＳ８０４）そして、キャッシュメモリ制御部１３１は、メモリアクセス制御部１５１へライトバックもしくはライトスルー制御の通知を行う。（図１４のＳ８０７、Ｓ８０８）
【００７１】
副情報処理プログラム２〜５  ５５１ｂ〜ｅ（繰り返し回数２〜５回目）についても同様の処理を行い、ＣＰＵ５０１は、ループ処理２周目の処理を完了する。
ループ処理３周目以降が続く場合も、ＣＰＵ５０１は、同様の処理を行う。
【００７２】
本実施の形態によって、キャッシュメモリを使用する副情報処理プログラムにおいて、キャッシュメモリの立ち上がり時間を削減出来るため、ＣＰＵ５０１は、処理性能を改善することが出来る。
【００７３】
実施の形態３．
実施の形態１において、キャッシュメモリ制御情報テーブル１２１はループ処理１周目５５２ａにおいて設定された。しかし、情報処理システムによっては、例えば入出力部５０４の状態等により、ループ処理Ｎ周目５５２ｂ以降にキャッシュメモリ１４１の状態が安定する場合もある。
そこで、キャッシュメモリ制御情報テーブル１２１の設定をループ処理１周目５５２ａに固定せず、ループ処理Ｎ周目（Ｎは任意の回数）にＣＰＵ５０１は、キャッシュメモリ制御情報テーブル１２１の設定をする。
【００７４】
図１５は、ループ処理Ｎ周目にキャッシュメモリ制御情報テーブル１２１の設定を行うＣＰＵ５０１の構成を示す図である。実施の形態１に示す構成に加え、ＣＰＵ５０１は、テーブル生成指示部３２５を備える。
図１６は、ループ処理Ｎ周目に設定されるキャッシュメモリ制御情報テーブル１２１の例を示す図である。（（ａ）はループ処理１周目からループ処理Ｎ−１周目、（ｂ）はループ処理Ｎ周目以降）
【００７５】
まず、初期化処理５５３において、命令実行部１０１は、実施の形態１で行った処理に加えて、テーブル生成指示部３２５にＮの値を設定する。ここで、Ｎの値は情報処理プログラム５５０に設定されている場合も有るし、入出力部５０４からユーザーが入力する場合も有る。そして、テーブル生成指示部３２５は設定されたＮの値を記憶する。
また、テーブル生成指示部３２５は命令実行部１０１が実行しているループ処理の周回数をカウントする機能を有している。そして、初期化処理５５３において、テーブル生成指示部３２５は、ループ処理周回カウント数をゼロにする。
【００７６】
次に、ループ処理１周目からループ処理Ｎ−１周目において、テーブル生成指示部３２５は、キャッシュメモリ制御情報テーブル１２１の副情報処理プログラム１  ５５１ａの実行開始アドレスを読み取り、記憶する。ここで、キャッシュメモリ制御情報テーブル１２１は、実施の形態１と同様の処理で副情報処理プログラム名フィールド１２１ａ、実行開始アドレスフィールド１２１ｂ、実行終了アドレスフィールド１２１ｃに対応する情報を記憶している。（図１６（ａ））
テーブル生成指示部３２５は、実行アドレス通知部１１１が通知した実行アドレスを受け取る。そして、テーブル生成指示部３２５は、実行アドレスと副情報処理プログラム１  ５５１ａの実行開始アドレスを比較し、両者が一致するとループ処理周回カウント数を１つ増やす。
命令実行部１０１がループ処理の回数を重ねる毎に、テーブル生成指示部３２５は、ループ処理周回カウント数をＮ−１まで増やす。
【００７７】
ループ処理Ｎ周目において、テーブル生成指示部３２５は、ループ処理周回カウント数をＮとする。
そして、テーブル生成指示部３２５は、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１にキャッシュメモリ電源制御情報とライトバック／ライトスルー制御情報の生成を指示する。キャッシュメモリ電源制御情報とライトバック／ライトスルー制御情報の生成方法は実施の形態１と同様である。
命令実行部１０１がループ処理Ｎ周目の処理を完了すると、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、図１６（ｂ）に示す例のようなキャッシュメモリ制御情報テーブル１２１を完了する。
【００７８】
ループ処理Ｎ＋１周目において、キャッシュメモリ制御部１３１は、生成されたキャッシュメモリ制御情報テーブル１２１を参照して実施の形態１と同様にキャッシュメモリ１４１の制御を行う。
【００７９】
本実施の形態により、ループ処理Ｎ周目以降にキャッシュメモリ１４１の状態が安定する情報処理システムにおいて、適切なキャッシュメモリ制御情報により、ＣＰＵ５０１は消費電力を低減出来る。
【００８０】
実施の形態４．
周囲の環境変化や情報処理システム５００の動作状況変化により、ＣＰＵ５０１の温度が上昇することが想定される。このような温度上昇によるＣＰＵ５０１の誤動作や故障を回避する為に、ＣＰＵ５０１は消費電力を低減する必要がある。
【００８１】
図１７は、キャッシュメモリヒット率閾値テーブル４２６と温度警告部４２７とを備えるＣＰＵ５０１の構成を示す図である。
図１８は、温度警告に対する処理を示すフローチャートである。
図１９は、キャッシュメモリヒット率閾値テーブルを示す図である。
【００８２】
実施の形態１と同様に、ループ処理Ｎ周目まで、キャッシュメモリ制御部１３１は、キャッシュメモリ制御情報テーブル１２１を参照して、キャッシュメモリ１４１の制御を行う。そしてループ処理Ｎ周目で、周囲環境の変化により、ＣＰＵ５０１の温度がＣＰＵ５０１の最大定格動作温度を超えたと想定する。
【００８３】
ここで、図１７に示す温度警告部４２７は、ＣＰＵ５０１の温度を測定する。また温度警告部４２７は、ＣＰＵ５０１の限界温度を記憶し、測定温度が限界を超えると警告信号を出力する。ここで限界温度は、ＣＰＵ５０１が保証されている最大定格動作温度からマージンをとって設定される。
【００８４】
キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、その警告信号を受け取ると、ＣＰＵ５０１の温度を下げる為にキャッシュメモリ１４１の電源投入の時間を短くし、ＣＰＵ５０１の消費電力を下げる必要があると判断する。そして、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、キャッシュメモリ制御情報の再設定を開始する。（図１８のＳ９０１）
【００８５】
キャッシュメモリ制御情報の再設定にあたり、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、キャッシュメモリヒット率閾値記憶部１２２にキャッシュメモリヒット率閾値をより高い値に再設定するように指示をする。
キャッシュメモリヒット率閾値を高く設定することで、キャッシュメモリの電源切断となる副情報処理プログラムを増やし、ＣＰＵ５０１は消費電力を低くする。
【００８６】
キャッシュメモリヒット率閾値記憶部１２２は、キャッシュメモリヒット率閾値テーブル４２６に新しい閾値を要求する。
キャッシュメモリヒット率閾値テーブル４２６は、キャッシュメモリヒット率閾値記憶部１２２から１回目の要求があると、まず閾値番号１に設定されている閾値１を返す。
また、キャッシュメモリヒット率閾値テーブル４２６は、キャッシュメモリヒット率閾値記憶部１２２からの要求回数を記憶しており、２回目に要求があると、閾値番号２に設定されている閾値１よりも高い値の閾値２を返す。（図１８のＳ９０２、図１９）
すなわち、キャッシュメモリヒット率閾値テーブル４２６に記憶されている閾値は、閾値１＜閾値２＜閾値３＜閾値４＜閾値５の関係となっている。
また、これらの閾値はキャッシュメモリヒット率閾値テーブル４２６が予め記憶している場合も有るし、情報処理プログラム５５０に設定されている値をキャッシュメモリヒット率閾値テーブル４２６が読み取ることも出来るし、入出力部５０４からユーザーが入力した値をキャッシュメモリヒット率閾値テーブル４２６が読み取ることも出来る。
【００８７】
キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、更新されたキャッシュメモリヒット率閾値に基づき、キャッシュメモリ制御情報（キャッシュメモリ電源制御情報とライトバック／ライトスルー制御情報）を再設定する。キャッシュメモリ電源制御情報とライトバック／ライトスルー制御情報の設定の方法は、実施の形態１と同様である。（図１８のＳ９０３）
【００８８】
キャッシュメモリ制御情報の再設定をした後で、更に温度警告部４２７が警告信号を出力する場合、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は２回目のキャッシュメモリ制御情報の再設定を行う。その際キャッシュメモリヒット率閾値記憶部１２２からキャッシュメモリヒット率閾値テーブル４２６への閾値要求回数が２回目となり、閾値要求回数が１回目の場合より高い値にキャッシュメモリヒット率閾値は、設定される。
その後も更に温度警告部４２７が警告信号を出力するようであれば、キャッシュメモリ制御部１３１もしくはキャッシュメモリ制御情報テーブル１２１は、３回目以降のキャッシュメモリ制御情報の再設定を行う。そして、キャッシュメモリヒット率閾値記憶部１２２は、より高いキャッシュメモリヒット率閾値を設定し、温度警告部４２７による警告信号が無くなるまで処理を繰り返す。
なお、図１８では、閾値番号は１〜５としているが、更に閾値の設定数を増やすことが可能である。
また本例では温度変化に基づき、ＣＰＵ５０１はキャッシュメモリヒット率閾値を変えているが、ＣＰＵ５０１は、他の所定の条件（例えば電気料金）等を基準にして、キャッシュメモリヒット率閾値を変えることも可能である。
【００８９】
ＣＰＵ５０１の温度が限界温度に達した場合に、ＣＰＵ５０１の消費電力を低減させることで、ＣＰＵ５０１もしくは情報処理システム５００は、ＣＰＵ５０１もしくは情報処理システム５００の停止や故障を防ぐことが可能である。
【符号の説明】
【００９０】
１０１  命令実行部、１１１  実行アドレス通知部、１２１  キャッシュメモリ制御情報テーブル、１２１ａ  副情報処理プログラム名フィールド、１２１ｂ  実行開始アドレスフィールド、１２１ｃ  実行終了アドレスフィールド、１２１ｄ  キャッシュメモリ電源制御情報フィールド、１２１ｅ  ライトバック／ライトスルー制御情報フィールド、１２１ｆ  キャッシュメモリ電源投入開始アドレスフィールド、１２２  キャッシュメモリヒット率閾値記憶部、１２３  キャッシュメモリ使用判定部、１２４  ライト制御判定部、１２５  キャッシュメモリヒット率計算部、１３１  キャッシュメモリ制御部、１４１  キャッシュメモリ、１５１  メモリアクセス制御部、１５２  キャッシュメモリアクセス数カウント部、１５３  キャッシュメモリヒット数カウント部、３２５  テーブル生成指示部、４２６  キャッシュメモリヒット率閾値テーブル、４２７  温度警告部、５００  情報処理システム、５０１  ＣＰＵ、５０２  主記憶部、５０３  入出力制御部、５０４  入出力部、５５０  情報処理プログラム、５５１ａ  副情報処理プログラム１、５５１ｂ  副情報処理プログラム２、５５１ｃ  副情報処理プログラム３、５５１ｄ  副情報処理プログラム４、５５１ｅ  副情報処理プログラム５、５５２  副情報処理プログラムループ処理、５５２ａ  ループ処理１周目、５５２ｂ  ループ処理Ｎ周目、５５３  初期化処理。
【図１】
0005484281.tif 000002
【図２】
0005484281.tif 000003
【図３】
0005484281.tif 000004
【図４】
0005484281.tif 000005
【図５】
0005484281.tif 000006
【図６】
0005484281.tif 000007
【図７】
0005484281.tif 000008
【図８】
0005484281.tif 000009
【図９】
0005484281.tif 000010
【図１０】
0005484281.tif 000011
【図１１】
0005484281.tif 000012
【図１２】
0005484281.tif 000013
【図１３】
0005484281.tif 000014
【図１４】
0005484281.tif 000015
【図１５】
0005484281.tif 000016
【図１６】
0005484281.tif 000017
【図１７】
0005484281.tif 000018
【図１８】
0005484281.tif 000019
【図１９】
0005484281.tif 000020