説明

情報処理システム

【課題】情報処理システムの消費電力を低減することで発熱量を抑え、情報処理システムの誤動作や故障を防止する。
【解決手段】異なる範囲のアドレスに割り当てられる複数の副情報処理プログラムから構成される情報処理プログラムを実行する情報処理システムにおいて、CPU501は各副情報処理プログラムにおけるキャッシュメモリ141の使用効率の算出、使用必要性(電源投入必要性)の判定をし、各副情報処理プログラムに対応したキャッシュメモリ141の電源投入/電源切断の電源制御情報を記憶する。CPU501は記憶した電源制御情報を基にキャッシュメモリ141の使用不要な副情報処理プログラム実行時において完全にキャッシュメモリ141の電源切断し、消費電力を低減する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報処理システムの消費電力低減に関する。
【背景技術】
【0002】
例えば、FA(ファクトリー・オートメーション)で利用される情報処理システムに用いられる組込み機器は、高い処理性能すなわち高性能を求められる。特に上位等級の組込み機器においての要求は顕著であり、この要求に応えられるような組込向けプロセッサを入手することで実現は可能である。
しかしながら、高性能を実現できるプロセッサは動作周波数が高く、消費電力が大きくなり、プロセッサにおける発熱量も大きくなる。
【0003】
一方、組込み機器は、スペースやコストの制約などから十分な熱対策をとれないこともある。高性能を実現する為に動作周波数を上げた結果、プロセッサの発熱量は、プロセッサが許容する熱量を超えてしまうこともある。
そして、プロセッサの発熱量が許容値を超えると、誤動作や故障につながる為、動作周波数を落として消費電力を下げて対策せざるを得ず、目標性能を達成できないという問題がある。
【0004】
その為、プロセッサの消費電力を低減させる為に、処理内容に応じてキャッシュメモリの電源を制御する方法がある。(例えば、特許文献1〜3参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−282880
【特許文献2】特開2006−309734
【特許文献3】特表2003−530640
【発明の概要】
【発明が解決しようとする課題】
【0006】
この発明の実施の形態は、例えば情報処理システムの消費電力を低減させることを目的とする。
【課題を解決するための手段】
【0007】
この発明に係る情報処理システムは、
異なる範囲のアドレスに割り当てられる複数の副情報処理プログラムから構成される情報処理プログラムを実行し、実行中のアドレスを示す実行アドレスを出力する命令実行部と、
前記命令実行部が前記情報処理プログラム実行中にアクセスし、前記情報処理プログラムが使用する情報を一時的に記憶するキャッシュメモリと、
前記命令実行部が出力した実行アドレスを受け取り、前記実行アドレスを通知する実行アドレス通知部と、
前記複数の副情報処理プログラムの各副情報処理プログラムに対応して、前記キャッシュメモリの制御を行う為の情報であるキャッシュメモリ制御情報を記憶するキャッシュメモリ制御情報テーブルと、
前記実行アドレス通知部が通知した実行アドレスから、前記命令実行部が実行している副情報処理プログラムを判定し、判定された副情報処理プログラムに対応するキャッシュメモリ制御情報を前記キャッシュメモリ制御情報テーブルから読み取り、前記キャッシュメモリ制御情報を基に前記キャッシュメモリを制御するキャッシュメモリ制御部と
を備えたことを特徴とする。
【発明の効果】
【0008】
この発明に係る情報処理システムは、消費電力を低減させることが可能となる。
【図面の簡単な説明】
【0009】
【図1】実施の形態1を示す図で、情報処理システム500の構成を示す図。
【図2】実施の形態1を示す図で、複数の副情報処理プログラムから構成される情報処理プログラム550を示すフローチャート。
【図3】実施の形態1を示す図で、ループ処理を繰り返す情報処理プログラム550の流れを示すフローチャート。
【図4】実施の形態1を示す図で、CPU501の構成を示す図。
【図5】実施の形態1を示す図で、キャッシュメモリ制御情報テーブル121の例を示す図。
【図6】実施の形態1を示す図で、初期化処理553完了後のキャッシュメモリ制御情報テーブル121の例を示す図。
【図7】実施の形態1を示す図で、ループ処理1周目552aの処理を示すフローチャート。
【図8】実施の形態1を示す図で、副情報処理プログラム1 551aのキャッシュメモリ電源制御情報をキャッシュメモリ制御情報テーブル121に記録した例を示す図。((a)は、副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源切断の場合、(b)は、副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源投入の場合)
【図9】実施の形態1を示す図で、副情報処理プログラム2 551bのキャッシュメモリ電源制御情報が電源切断の場合のライトバック/ライトスルー制御情報をキャッシュメモリ制御情報テーブル121に記録した例を示す図。((a)は副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源切断の場合、(b)は副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源投入の場合)
【図10】実施の形態1を示す図で、副情報処理プログラム2 551bのキャッシュメモリ電源制御情報が電源投入の場合のライトバック/ライトスルー制御情報をキャッシュメモリ制御情報テーブル121に記録した例を示す図。((a)は副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源切断の場合、(b)は副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源投入の場合)
【図11】実施の形態1を示す図で、副情報処理プログラム5 551eのキャッシュメモリ電源制御情報が電源投入の場合のライトバック/ライトスルー制御情報をキャッシュメモリ制御情報テーブル121に記録した例を示す図。
【図12】実施の形態1を示す図で、ループ処理N周目552bの処理を示すフローチャート。
【図13】実施の形態2を示す図で、キャッシュメモリ電源投入開始アドレスフィールド121fを備えたキャッシュメモリ制御情報テーブル121の例を示す図。
【図14】実施の形態2を示す図で、キャッシュメモリ電源投入開始アドレスを用いた処理を示すフローチャート。
【図15】実施の形態3を示す図で、ループ処理N周目にキャッシュメモリ制御情報テーブル121の設定を行うCPU501の構成を示す図。
【図16】実施の形態3を示す図で、ループ処理N周目に設定されるキャッシュメモリ制御情報テーブル121の例を示す図。((a)はループ処理1周目からループ処理N−1周目、(b)はループ処理N周目以降)
【図17】実施の形態4を示す図で、キャッシュメモリヒット率閾値テーブル426と温度警告部427とを備えるCPU501の構成を示す図。
【図18】実施の形態4を示す図で、温度警告に対する処理を示すフローチャート。
【図19】実施の形態4を示す図で、キャッシュメモリヒット率閾値テーブルを示す図。
【発明を実施するための形態】
【0010】
実施の形態1.
例えば、FA(ファクトリー・オートメーション)で利用される情報処理システムを想定して、本実施の形態の概要を以下に説明する。
【0011】
図1は、情報処理システム500の構成を示す図である。
例えば、FAで利用される情報処理システム500は、外部からのデータ入力と外部へのデータ出力を行う入出力部504と、入出力部504の制御を行う入出力制御部503と、入出力部504からの入力データを基に演算を行い、演算結果を出力するCPU(セントラル・プロセッシング・ユニット、中央演算処理装置)501と、CPU501の演算結果等を記憶する主記憶部502とで構成される。
そして、CPU501は、本実施の形態の構成となっている。
【0012】
図2は、複数の副情報処理プログラムから構成される情報処理プログラム550を示すフローチャートである。
FAで利用される情報処理システム500が実行する情報処理プログラム550は、図2に示すように1つの情報処理プログラム550が例えば5つの副情報処理プログラム1〜5 551a〜eから構成されている。情報処理システム500は、情報処理プログラム550開始時に初期化処理553を実施後、副情報処理プログラム1〜5 551a〜eを実施する。
副情報処理プログラム1〜5 551a〜eは、CPU501において、それぞれ異なる範囲のアドレスに割り振られる。すなわち副情報処理プログラム1〜5 551a〜eはそれぞれ異なる実行開始アドレスと実行終了終了アドレスを持つ。ここで実行開始アドレスとは副情報処理プログラムの実行を開始するアドレス(副情報処理プログラムが割り振られた先頭のアドレス)であり、実行終了アドレスとは副情報処理プログラムの実行を終了するアドレス(副情報処理プログラムが割り振られた後尾のアドレス)である。
ここで、本実施の形態では副情報処理プログラムの数を5つとして説明しているが、この例に限定されるものではない。1つの情報処理プログラムが複数の副情報処理プログラムから構成されている全ての場合に本実施の形態は有効である。
そして、情報処理プログラム550の終了条件を満たすまで、情報処理システム500は、この複数の副情報処理プログラム1〜5 551a〜eから構成された部分(副情報処理プログラムループ処理552)を繰り返し行うものが多い。
【0013】
図3は、ループ処理を繰り返す情報処理プログラム550の流れを示すフローチャートである。
図3に示す初期化処理553は、図2に示す初期化処理553に対応している。また、図3に示すループ処理1周目552aは、図2に示す副情報処理プログラム1〜5 551a〜eの1周目の副情報処理プログラムループ処理552を示し、図3に示すループ処理N周目552bは、図2に示す副情報処理プログラム1〜5 551a〜eの2周目以降の副情報処理プログラムループ処理552を示す。
【0014】
図4は、CPU501の構成を示す図である。
情報処理システム500で使用するCPU501は、キャッシュメモリ141、命令実行部101、実行アドレス通知部111、キャッシュメモリ制御情報テーブル121、キャッシュメモリヒット率閾値記憶部122、キャッシュメモリ使用判定部123、ライト制御判定部124、キャッシュメモリヒット率計算部125、キャッシュメモリ制御部131、メモリアクセス制御部151を備える。そして、メモリアクセス制御部151は、キャッシュメモリアクセス数カウント部152とキャッシュメモリヒット数カウント部153とを備える。
【0015】
まず、図4を用いて、キャッシュメモリ141について簡単に説明する。
演算などの命令を実行する命令実行部101は、演算に必要なデータや命令などの情報を記憶部から呼び出さなくてはならない。しかし、主記憶部502は、命令実行部101からの情報呼び出し命令が有ってから、実際に情報が呼び出されるまでのアクセス時間が長い。その為に情報処理システム500の情報処理の速度は、低下する。
そこで、命令実行部101からの情報呼び出し命令が有ってから、実際に情報が呼び出されるまでのアクセス時間が短い記憶部であるキャッシュメモリ141をCPU501は、CPU501の内部に備える。そして、命令実行部101は、メモリアクセス制御部151を介して、キャッシュメモリ141に使用頻度の高い情報を書き込み、蓄積しておく。その結果、命令実行部101は、主記憶部502へのアクセスを減らす。その為に情報処理システム500の情報処理の速度は、向上する。
そして、命令実行部101がキャッシュメモリ141にアクセスして必要な情報を呼び出すことが出来たことをヒットといい、命令実行部101がキャッシュメモリ141にアクセスした回数に対するヒットの回数の比率を、キャッシュメモリヒット率という。
【0016】
ここで、図4を用いて、キャッシュメモリヒット率の導出および、導出されたキャッシュメモリヒット率を用いてのキャッシュメモリ141の電源制御方法を説明する。
【0017】
まず、副情報処理プログラム1 551aの実行時において、キャッシュメモリアクセス数カウント部152は、キャッシュメモリ141へのアクセスの回数であるキャッシュメモリアクセス数を測定し記憶する。
同じく、キャッシュメモリヒット数カウント部153は、キャッシュメモリ141におけるヒットの回数であるキャッシュメモリヒット数を測定し記憶する。
そして、キャッシュメモリヒット率計算部125は、キャッシュメモリヒット数とキャッシュメモリアクセス数の比率(キャッシュメモリヒット数÷キャッシュメモリアクセス数)を計算し、副情報処理プログラム毎のキャッシュメモリヒット率を導出する。
キャッシュメモリ使用判定部123は、キャッシュメモリヒット率閾値記憶部122が記憶しているキャッシュメモリヒット率閾値と、キャッシュメモリヒット率計算部125が導出した副情報処理プログラム毎のキャッシュメモリヒット率とを比較する。
本例においては、キャッシュメモリヒット率閾値は一つの値として説明するが、キャッシュメモリヒット率閾値記憶部122は、各副情報処理プログラムに対応した複数のキャッシュメモリヒット率閾値を記憶することも可能である。
そして、キャッシュメモリヒット率がキャッシュメモリヒット率閾値よりも少ない場合に、キャッシュメモリ使用判定部123は、キャッシュメモリ141を使用する必要が無い、すなわちキャッシュメモリ141の電源切断すると判断する。キャッシュメモリ制御情報テーブル121は、この判断結果をキャッシュメモリ制御情報の一部であるキャッシュメモリ電源制御情報として記憶する。
一方、キャッシュメモリヒット率がキャッシュメモリヒット率閾値以上の場合に、キャッシュメモリ使用判定部123は、キャッシュメモリ141を使用する必要が有る、すなわちキャッシュメモリ141の電源投入すると判断する。キャッシュメモリ制御情報テーブル121は、この判断結果をキャッシュメモリ制御情報の一部であるキャッシュメモリ電源制御情報として記憶する。
【0018】
次に、副情報処理プログラム2 551bの実行時において、同様の処理を行い、キャッシュメモリ制御情報テーブル121はキャッシュメモリ電源制御情報を記憶する。
副情報処理プログラム3〜5 551c〜eも同様である。
【0019】
そして、キャッシュメモリ制御部131は、キャッシュメモリ制御情報テーブル121が記憶したキャッシュメモリ電源制御情報を参照して、該当の副情報処理プログラム実行時におけるキャッシュメモリ141の電源制御する。
すなわち、キャッシュメモリ電源制御情報が電源投入である副情報処理プログラムにおいて、キャッシュメモリ制御部131は、キャッシュメモリ141の電源投入する。そして、キャッシュメモリ電源制御情報が電源切断である副情報処理プログラムにおいて、キャッシュメモリ制御部131は、キャッシュメモリ141の電源切断する。
【0020】
なお、キャッシュメモリ141に記憶された情報は、キャッシュメモリ141の電源切断されると消去されてしまう。そこで、メモリアクセス制御部151は、キャッシュメモリ141の電源切断される前に、主記憶部502にキャッシュメモリ141に記憶された情報を書き込む(書き戻す)必要がある。
【0021】
ここで、図4を用いて、キャッシュメモリ141に書き込まれた情報をメモリアクセス制御部151が主記憶部502に書き込む方法(キャッシュメモリ141に書き込まれた情報を主記憶部502に書き戻す方法)について簡単に説明する。
この主記憶部502に情報を書き込む方法には、ライトバック方式とライトスルー方式の2種類がある。
まず、ライトバック方式について説明する。命令実行部101は、主記憶部502の情報領域の内、命令実行部101が処理に用いる領域の情報を、メモリアクセス制御部151を介して、キャッシュメモリ141に書き込む。また、命令実行部101は、プログラム処理中に新規情報が生じた場合に、メモリアクセス制御部151を介して、キャッシュメモリ141に新規情報を書き込み、キャッシュメモリ141の情報を更新する。
そして、命令実行部101は、メモリアクセス制御部を介して、キャッシュメモリ141が記憶している情報が更新されている場合に、キャッシュメモリ141が記憶している情報を所定のタイミングで主記憶部502に書き込む(書き戻す)。ここで所定のタイミングとは、メモリアクセス制御部151が、キャッシュメモリ141が記憶していた情報に対応する主記憶部502の領域とは異なる主記憶部502の領域の情報をキャッシュメモリ141の情報に置き換えるタイミングである。
その為に、ライトバック方式は、主記憶部502へのアクセスが少ないためシステム性能が向上するという長所が有るが、書き戻しのタイミングが来るまでキャッシュメモリ141に記憶された新規情報は主記憶部502に書き込まれない。そして、書き戻しのタイミングが来ないまま、キャッシュメモリ141の電源切断になった場合、キャッシュメモリ141に記憶された新規情報は主記憶部502には記憶されない。
次に、ライトスルー方式について説明する。命令実行部101は、新規情報の書き込みを行う際に、メモリアクセス制御部151を介して、キャッシュメモリ141と主記憶部502との両方に新規情報を書き込む。その為に、ライトスルー方式は、キャッシュメモリ141と主記憶部502との間で情報が常に一致するという長所が有る。すなわち、急にキャッシュメモリ141の電源切断されても、キャッシュメモリ141に記憶された情報は主記憶部502にも記憶される。ただし、ライトスルー方式は、主記憶部502へのアクセスが増えるためシステム性能が低下する。
【0022】
図5は、キャッシュメモリ制御情報テーブル121の例を示す図である。
本例において、キャッシュメモリを制御する情報であるキャッシュメモリ制御情報は、副情報処理プログラム名、実行開始アドレス、実行終了アドレス、キャッシュメモリ電源制御情報、ライトバック/ライトスルー制御情報で構成されている。
本例では、副情報処理プログラムは、副情報処理プログラム1〜5 551a〜eの5つの場合である。
図2または図3に示す初期化処理553において、情報処理プログラム550に従い、命令実行部101は、副情報処理プログラム1〜5 551a〜eの副情報処理プログラム名と実行開始アドレスと実行終了アドレスとを出力する。
キャッシュメモリ制御情報テーブル121は、副情報処理プログラム名フィールド121aに、命令実行部101が出力した副情報処理プログラム1〜5 551a〜eの情報を記憶する。
また、命令実行部101は、出力した各副情報処理プログラムに対応する実行開始アドレスをキャッシュメモリ制御情報テーブル121の実行開始アドレスフィールド121bに記憶させる。同様に、命令実行部101は、出力した各副情報処理プログラムに対応する実行終了アドレスをキャッシュメモリ制御情報テーブル121の実行終了アドレスフィールド121cに記憶させる。ここで実際のアドレスは例えば16進数表記による001Dや、1023A0B1といった数値となるが、本例では説明の為に、単にアドレスという表記を用いている。
また、キャッシュメモリ制御情報テーブル121は、キャッシュメモリ電源制御情報フィールド121dにキャッシュメモリ使用判定部123が出力したキャッシュメモリの電源制御(電源投入もしくは電源切断)情報を記憶する。さらに、キャッシュメモリ制御情報テーブル121は、ライトバック/ライトスルー制御情報フィールド121eにライト制御判定部124が出力したライトバック/ライトスルー制御情報(メモリアクセス制御部151がキャッシュメモリ141の記憶した情報を主記憶部502に書き込む方式であるライトバックもしくはライトスルーの制御情報)を記憶する。
【0023】
ここで図5を用いて複数の副情報処理プログラムにおけるライトバック方式とライトスルー方式の制御の割り当て方法を説明する。
【0024】
例えば、副情報処理プログラム2 551bに対応するキャッシュメモリ電源制御情報が「電源投入」であり、副情報処理プログラム3 551cに対応するキャッシュメモリ電源制御情報が「電源投入」の場合は、副情報処理プログラム2 551b終了時において、キャッシュメモリ141の電源は投入されたままである。その為、メモリアクセス制御部151は、キャッシュメモリ141に記憶された情報を副情報処理プログラム2 551bの処理内で主記憶部502に書き込み完了にする必要が無い(主記憶部502に書き戻す必要が無い)。よって、副情報処理プログラム2 551bにおける主記憶部502への書き込み方法は、情報処理システム500の高速化に有利な「ライトバック方式」とする。
一方、副情報処理プログラム3 551cに対応するキャッシュメモリ電源制御情報が「電源投入」であり、副情報処理プログラム4 551dに対応するキャッシュメモリ電源制御情報が「電源切断」の場合は、副情報処理プログラム3 551c終了時において、キャッシュメモリ141の電源は切断される。その為、キャッシュメモリ141の電源を速やかに切断するには、メモリアクセス制御部151は、キャッシュメモリ141に記憶された情報を副情報処理プログラム3 551cの処理内で(もしくは副情報処理プログラム3 551c終了後短時間で)、主記憶部502に書き込み完了にする必要が有る。よって、副情報処理プログラム3 551cにおける主記憶部502への書き込み方法は、主記憶部502とキャッシュメモリ141それぞれに記憶されている情報の整合性が常にとれている「ライトスルー方式」にする必要が有る。
【0025】
同様に、ライト制御判定部124は、キャッシュメモリ制御情報テーブル121に記憶されているキャッシュメモリ電源制御情報の前後関係から「ライトバック方式」「ライトスルー方式」を判定する。そして、キャッシュメモリ制御情報テーブル121はその判定結果であるライトバック/ライトスルー制御情報をキャッシュメモリ制御情報の一部として記憶する。
【0026】
ここで、情報処理プログラム550の動作並びにキャッシュメモリ141制御の詳細を説明する。
図3に示すように、情報処理プログラム550の流れを初期化処理553、ループ処理1周目552a、ループ処理N周目552bに分けて説明する。
【0027】
まず、図3に示す初期化処理553の部分について説明する。
【0028】
情報処理システム500の電源が投入されると、情報処理システム500は、リセット動作を行う。そして、リセット動作が解除されると、CPU501内の命令実行部101は、例えば入出力部504から読み出した情報処理プログラム550を開始し、まず初期化処理553を行う。
【0029】
図6は、初期化処理553完了後のキャッシュメモリ制御情報テーブル121の例を示す図である。
初期化処理553において、情報処理プログラム550に従い、命令実行部101は、副情報処理プログラム1〜5 551a〜eの副情報処理プログラム名と実行開始アドレスと実行終了アドレスとを出力する。キャッシュメモリ制御情報テーブル121は、副情報処理プログラム名フィールド121aに、命令実行部101が出力した副情報処理プログラム1〜5 551a〜eの情報をキャッシュメモリ制御情報の一部として記憶する。
また、命令実行部101は、出力した各副情報処理プログラムに対応した実行開始アドレスをキャッシュメモリ制御情報の一部として、キャッシュメモリ制御情報テーブル121の実行開始アドレスフィールド121bに記憶させる。同様に、命令実行部101は、出力した各副情報処理プログラムに対応した実行終了アドレスをキャッシュメモリ制御情報の一部として、実行終了アドレスフィールド121cに記憶させる。
【0030】
次に、図3におけるループ処理1周目552aの処理を説明する。
【0031】
キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121からの指示に基づき、キャッシュメモリヒット率計算部125は、各副情報処理プログラム1〜5 551a〜eにおけるキャッシュメモリ141のキャッシュメモリヒット率を計算する。
キャッシュメモリ使用判定部123は、各副情報処理プログラムに対応したキャッシュメモリ141の電源投入もしくは電源切断の電源制御の判定を行う。
キャッシュメモリ制御情報テーブル121は、その判定結果である各副情報処理プログラムに対応した形のキャッシュメモリ電源制御情報をキャッシュメモリ制御情報の一部として記憶する。
【0032】
ここで、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121が実行中の副情報処理プログラムを確定する方法を説明する。
副情報処理プログラム実行中において、命令実行部101は、命令実行部101が実行中の命令のアドレスを示す実行アドレスを出力する。実行アドレス通知部111は、命令実行部101が出力した実行アドレスをキャッシュメモリ制御情報テーブル121とキャッシュメモリ制御部131に通知する。
キャッシュメモリ制御部131は、キャッシュメモリ制御情報テーブル121に記憶された副情報処理プログラム1〜5 551a〜eに対応した実行開始アドレスと実行終了アドレスを参照する。そして、通知された実行アドレスが該当する実行開始アドレスと実行終了アドレスの範囲を確定することで、キャッシュメモリ制御部131は、実行中の副情報処理プログラムを確定することが出来る。
ここで、キャッシュメモリ制御情報テーブル121も能動的にデータ処理や命令出力を行う機能を設けることが可能である。したがって、キャッシュメモリ制御情報テーブル121も、同様の処理で実行中の副情報処理プログラムを確定することが出来る。
【0033】
図7は、ループ処理1周目552aの処理を示すフローチャートである。図7を用いて詳細に説明を行う。
【0034】
ループ処理1周目552aにおいて、命令実行部101は、図7のS600と図7のS618の間の処理を副情報処理プログラム1〜5 551a〜eの数、すなわち5回繰り返す。
図7のS600と図7のS618の「i=1;i≦5;i++」のiは繰り返し回数を示し、1〜5回まで1回ずつ(すなわち計5回)繰り返すことを示す。
【0035】
まず、キャッシュメモリヒット率をキャッシュメモリヒット率計算部125が計算するステップ(図7のS601〜S607)を説明する。
【0036】
命令実行部101は、実行している命令のアドレス(実行アドレス)を実行アドレス通知部111に出力する。(図7のS601)
実行アドレス通知部111は、実行アドレスをキャッシュメモリ制御部131とキャッシュメモリ制御情報テーブル121に通知する。一方、キャッシュメモリ制御情報テーブル121は、初期化処理553において、副情報処理プログラム1 551aの実行開始アドレス(図6のアドレスa_S)を記憶している。
キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、副情報処理プログラム1 551aの実行開始アドレス(図6のアドレスa_S)と通知された実行アドレスとを比較する。(図7のS602)
キャッシュメモリ制御情報テーブル121に記憶された副情報処理プログラム1 551aの実行開始アドレス(図6のアドレスa_S)と通知された実行アドレスとが一致するまで、S601〜S602の処理は繰り返される。
そして、実行開始アドレスと通知された実行アドレスとが一致すると、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、キャッシュメモリアクセス数カウント部152が記憶しているカウント数(カウンタ)とキャッシュメモリヒット数カウント部153が記憶しているカウント数(カウンタ)とをゼロにする。(図7のS603)
【0037】
続いて、キャッシュメモリアクセス数カウント部152とキャッシュメモリヒット数カウント部153はカウントを開始する。
ここで、命令実行部101は、キャッシュメモリ141または主記憶部502にアクセスして、命令実行の際に必要な情報を得る。
その際に、キャッシュメモリアクセス数カウント部152は、命令実行部101が要求したメモリアクセス数を測定(カウント)し、結果を記憶する。キャッシュメモリヒット数カウント部153は、命令実行部101が要求したメモリアクセスが主記憶部502ではなく、キャッシュメモリ141である場合の回数(すなわち、キャッシュメモリ141でヒットした回数であるキャッシュメモリヒット数)を測定(カウント)し、結果を記憶する。(図7のS604)
キャッシュメモリアクセス数カウント部152のカウントとキャッシュメモリヒット数カウント部153のカウントが開始されると、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、実行アドレス通知部111が通知する実行アドレスと、キャッシュメモリ制御情報テーブル121に記憶された副情報処理プログラム1 551aの実行終了アドレス(図6のアドレスa_E)とを比較する。(図7のS605〜S606)
【0038】
キャッシュメモリ制御情報テーブル121に記憶された副情報処理プログラム1 551aの実行終了アドレス(図6のアドレスa_E)と通知された実行アドレスとが一致するまで、キャッシュメモリアクセス数カウント部152のカウントとキャッシュメモリヒット数カウント部153のカウントは継続する。
そして、実行終了アドレスと通知された実行アドレスとが一致すると、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、キャッシュメモリアクセス数カウント部152のカウントとキャッシュメモリヒット数カウント部153のカウントを終了させる。
キャッシュメモリアクセス数カウント部152は、カウントを終了し、キャッシュメモリアクセス数をキャッシュメモリヒット率計算部125に通知する。
キャッシュメモリヒット数カウント部153は、カウントを終了し、キャッシュメモリヒット数をキャッシュメモリヒット率計算部125に通知する。
キャッシュメモリヒット率計算部125は通知されたキャッシュメモリアクセス数とキャッシュメモリヒット数から、キャッシュメモリヒット率を計算する。(キャッシュメモリヒット率=キャッシュメモリヒット数÷キャッシュメモリアクセス数)(図7のS607)
【0039】
次にキャッシュメモリ使用判定部123が、キャッシュメモリ電源制御情報をキャッシュメモリ制御情報テーブル121に記録する部分(図7のS608〜S609およびS608〜S613)を説明する。
【0040】
図8は、副情報処理プログラム1 551aのキャッシュメモリ電源制御情報をキャッシュメモリ制御情報テーブル121に記録した例を示す図である。((a)は、副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源切断の場合、(b)は、副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源投入の場合)
【0041】
キャッシュメモリ使用判定部123は、キャッシュメモリヒット率計算部125が計算したキャッシュメモリヒット率と、キャッシュメモリヒット率閾値記憶部122が記憶しているキャッシュメモリヒット率閾値とを比較する。(図7のS608)
キャッシュメモリヒット率がキャッシュメモリヒット率閾値よりも小さい場合、キャッシュメモリ使用判定部123は、キャッシュメモリの電源切断と判定する。そして、キャッシュメモリ制御情報テーブル121は、その判定結果を副情報処理プログラム1 551aにおけるキャッシュメモリ電源制御情報フィールド121dに登録する。(図7のS609および図8(a))
キャッシュメモリヒット率がキャッシュメモリヒット率閾値よりも大きいまたは等しい場合、キャッシュメモリ使用判定部123は、キャッシュメモリの電源投入と判定する。そして、キャッシュメモリ制御情報テーブル121は、その判定結果を副情報処理プログラム1 551aにおけるキャッシュメモリ電源制御情報フィールド121dに登録する。(図7のS613および図8(b))
【0042】
ここで、キャッシュメモリヒット率をキャッシュメモリヒット率計算部125が計算するステップ(図7のS601〜S607)とキャッシュメモリ使用判定部123が、キャッシュメモリ電源制御情報をキャッシュメモリ制御情報テーブル121に記録する部分(図7のS608〜S609およびS608〜S613)について、繰り返し回数iが1回目(すなわち副情報処理プログラム1 551a)の場合を例に説明したが、繰り返し回数が2〜5回目(すなわち副情報処理プログラム2〜5 551b〜e)においても同様の処理が行われる。
【0043】
次にライト制御判定部124が、ライトバック/ライトスルー制御情報を判定するステップ(図7のS610〜S612およびS614〜S617)を説明する。
【0044】
図9は、副情報処理プログラム2 551bのキャッシュメモリ電源制御情報が電源切断の場合のライトバック/ライトスルー制御情報をキャッシュメモリ制御情報テーブル121に記録した例を示す図である。((a)は副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源切断の場合、(b)は副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源投入の場合)
図10は、副情報処理プログラム2 551bのキャッシュメモリ電源制御情報が電源投入の場合のライトバック/ライトスルー制御情報をキャッシュメモリ制御情報テーブル121に記録した例を示す図である。((a)は副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源切断の場合、(b)は副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源投入の場合)
図11は、副情報処理プログラム5 551eのキャッシュメモリ電源制御情報が電源投入の場合のライトバック/ライトスルー制御情報をキャッシュメモリ制御情報テーブル121に記録した例を示す図である。
【0045】
まず、繰り返し回数iが1回目の場合(すなわち副情報処理プログラム1 551aの場合)、ライト制御判定部124は、ライトバック/ライトスルー制御情報の判定を見送る(図7のS610またはS614)。そして、S618からS600に戻り、繰り返し回数iが2回目の場合(すなわち副情報処理プログラム2 551bの場合)に命令実行部101は処理を移す。
そして、繰り返し回数iが2回目以降の場合(すなわち副情報処理プログラム1 551a〜eの場合)で、キャッシュメモリ電源制御情報が電源投入の場合には、ライト制御判定部124は、ライトバック/ライトスルー制御情報を判定する。その判定結果は、各副情報処理プログラム1〜5 551a〜eにおけるキャッシュメモリ電源制御情報の設定によって変化する。
【0046】
ここで、繰り返し回数iが2回目の場合(すなわち副情報処理プログラム2 551bの場合)を例に説明を行う。
副情報処理プログラム2 551bのキャッシュメモリ電源制御情報が電源切断と設定された場合、ライト制御判定部124は、一つ前の副情報処理プログラム1 551aのキャッシュメモリ電源制御情報を参照する。
そして、一つ前の副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源切断であるならば、S618からS600に戻り、次の副情報処理プログラム3 551cに命令実行部101は処理を移す。(図7のS611および図9(a))
一方、一つ前の副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源投入であるならば、ライト制御判定部124は、副情報処理プログラム1 551aのライトバック/ライトスルー制御情報をライトスルー制御に設定する。(図7のS612および図9(b))
図9(b)の副情報処理プログラム2 551bではキャッシュメモリ電源切断となるため、キャッシュメモリ141の情報は消えてしまう。その為、書き込み方式の制御は、副情報処理プログラム1 551aの処理内もしくは処理終了後短時間でキャッシュメモリ141の情報が主記憶部502へ書き込まれるライトスルー制御とする。
【0047】
同じく、繰り返し回数iが2回目の場合(すなわち副情報処理プログラム2 551bの場合)を例に説明を行う。
副情報処理プログラム2 551bのキャッシュメモリ電源制御情報が電源投入と設定された場合、ライト制御判定部124は、一つ前の副情報処理プログラム1 551aのキャッシュメモリ電源制御情報を参照する。
そして、一つ前の副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源切断であるならば、S618からS600に戻り、次の副情報処理プログラム3 551cに命令実行部101は処理を移す。(図7のS615および図10(a))
一方、一つ前の副情報処理プログラム1 551aのキャッシュメモリ電源制御情報が電源投入であるならば、ライト制御判定部124は、副情報処理プログラム1 551aのライトバック/ライトスルー制御情報をライトバック制御に設定する。(図7のS616および図10(b))
副情報処理プログラム2 551bではキャッシュメモリ電源切断する必要がないため、書き込み方式の制御は、性能的に有利であるライトバック制御とする。
【0048】
ここで、繰り返し回数iが2回目(すなわち副情報処理プログラム2 551b)の場合を例に説明したが、繰り返し回数が3〜5回目(すなわち副情報処理プログラム3〜5 551c〜e)においても同様の処理が行われる。
【0049】
なお、副情報処理プログラム5 551e(繰り返し回数iが5回目)においては、後続の副情報処理プログラムが無く、必ずキャッシュメモリ141の電源切断する場合を想定する。その場合、ライト制御判定部124は、副情報処理プログラム5 551eのライトバック/ライトスルー制御情報を、ライトスルー制御に設定する。(図7のS617および図11)
ただし、副情報処理プログラム5 551eの後に副情報処理プログラム1 551aに戻って繰り返し処理を行う場合には、副情報処理プログラム5 551eに続く処理を副情報処理プログラム1 551aと考えることが出来る。そして、ライト制御判定部124は、副情報処理プログラム1 551aのキャッシュメモリ電源制御情報を参照して、副情報処理プログラム5 551eのライトバック/ライトスルー制御情報を設定することも出来る。
【0050】
最後に、図3におけるループ処理N周目552b(2周目以降)の処理を説明する。
【0051】
ループ処理の2周目以降において、キャッシュメモリ制御部131は、ループ処理1周目552aで設定されたキャッシュメモリ制御情報テーブル121を参照する。
そして、キャッシュメモリ電源制御情報が電源投入の制御である副情報処理プログラムにおいて、キャッシュメモリ制御部131は、キャッシュメモリ141の電源を投入する。また、キャッシュメモリ電源制御情報が電源切断の制御である副情報処理プログラムにおいて、キャッシュメモリ制御部131は、キャッシュメモリ141の電源を切断する。
キャッシュメモリ141の電源制御をすることでキャッシュメモリ141(CPU501)の消費電力を低減する。
【0052】
図12は、ループ処理N周目552bの処理を示すフローチャートである。ここでは、例えばループ処理2周目として、図12を用いて詳細に説明を行う。
【0053】
ループ処理1周目552aと同様に、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、キャッシュメモリ制御情報テーブル121に記憶された副情報処理プログラム1 551aの実行開始アドレス(図6のアドレスa_S)と実行アドレス通知部111から通知された実行アドレスとを比較する。(図12のS701〜S702)
そして、副情報処理プログラム1 551aの実行開始アドレスと通知された実行アドレスとが一致すると、キャッシュメモリ制御部131は、キャッシュメモリ制御情報テーブル121の副情報処理プログラム1 551aにおけるキャッシュメモリ電源制御情報フィールド121dを参照する。(図12のS703)
【0054】
参照した結果、キャッシュメモリ電源制御情報が電源切断であれば、キャッシュメモリ制御部131は、キャッシュメモリ141を使用しないと判断し、キャッシュメモリ141の電源切断する。(図12のS705)
【0055】
参照した結果、キャッシュメモリ電源制御情報が電源投入であれば、キャッシュメモリ制御部131は、キャッシュメモリ141を使用すると判断し、キャッシュメモリ141の電源投入する。ただし、電源投入の場合、キャッシュメモリ制御部131は、続いてキャッシュメモリ制御情報テーブル121の副情報処理プログラム1 551aにおけるライトバック/ライトスルー制御情報フィールド121eを参照する。(図12のS704)
【0056】
キャッシュメモリ制御部131がライトバック/ライトスルー制御情報フィールド121eを参照した結果、ライトバックであれば、キャッシュメモリ制御部131は、ライトバック方式でキャッシュメモリ141から主記憶部502への書き戻しを行うようにメモリアクセス制御部151に通知する。(図12のS706)
キャッシュメモリ制御部131がライトバック/ライトスルー制御情報フィールド121eを参照した結果、ライトスルーであれば、キャッシュメモリ制御部131は、ライトスルー方式でキャッシュメモリ141から主記憶部502への書き戻しを行うようにメモリアクセス制御部151に通知する。(図12のS707)
【0057】
副情報処理プログラム2〜5 551b〜e(繰り返し回数2〜5回目)についても同様の処理を行い、CPU501は、ループ処理2周目の処理を完了する。
ループ処理3周目以降が続く場合も、CPU501は、同様の処理を行う。
【0058】
本実施の形態により、キャッシュメモリ141のキャッシュメモリヒット率が低く、CPU501の高速化の効果が低い時には、CPU501はキャッシュメモリ141の電源切断することでCPU501の消費電力を低減させる。
【0059】
例えば、従来、情報処理システムの処理が進行している状態で、最新のキャッシュメモリヒット率を基準にして、キャッシュメモリ使用判定部123がキャッシュメモリ141の使用を判定する場合を考える。
キャッシュメモリ使用判定部123が、任意の副情報処理プログラムにおいてキャッシュメモリ141を不要と判断すると、キャッシュメモリ制御部131は、キャッシュメモリ141の電源切断する。
この時、キャッシュメモリ141全体の電源切断すると、キャッシュメモリヒット率は0%から変化しない。その為、キャッシュメモリヒット率は、キャッシュメモリヒット率閾値を超えることが無く、キャッシュメモリ141の電源は再投入されない。
しかし、本実施の形態は、キャッシュメモリ制御情報テーブル121の情報に従って、キャッシュメモリ制御部131は、副情報処理プログラム毎にキャッシュメモリ141の電源を制御する。従って、キャッシュメモリ141の電源投入/電源切断に関係なく、キャッシュメモリ制御部131は、キャッシュメモリ141の電源制御が可能である。その為に、キャッシュメモリ制御部131は、キャッシュメモリ141全体の電源切断することが可能であり、CPU501は、消費電力をより大きく低減できる。
【0060】
また、例えば、FAで利用される情報処理システム500において、命令実行部101は、最初にアクセスが高速で記憶容量の小さい1次キャッシュメモリから情報を呼び出す。1次キャッシュメモリに情報がなかった場合は、命令実行部101は、1次キャッシュメモリより低速で記憶容量の大きい2次キャッシュメモリからデータを呼び出す。そして、命令実行部101は、ほとんど1次キャッシュメモリを使用し、2次キャッシュメモリを局所的に必要とする。
キャッシュメモリは、複数の部分から構成されており、CPU501は、キャッシュメモリの電源を部分的に切断して省電力化を図ることが可能である。しかし、局所的にキャッシュメモリが使用され、かつキャッシュメモリヒット率が低い場合には、CPU501は、部分的にキャッシュメモリの電源を切断するよりも、キャッシュメモリ全体の電源を切断した方が消費電力低減の効果が大きい。
そこで、例えば1次キャッシュメモリは情報処理速度向上の効果が大きいために常時電源を投入した状態とし、情報処理システムは、2次キャッシュメモリのみ電源制御を行う場合が想定される。
本実施の形態において、キャッシュメモリの種別は限定されないが、このように情報処理システムが局所的に使用する2次キャッシュメモリの制御を行う場合に、本実施の形態は、特に効果がある。
【0061】
なお、本実施の形態では、キャッシュメモリ使用判定部123は、キャッシュメモリ制御情報テーブル121をループ処理1周目552aで設定するようにしていた。
しかしながら、CPU501で実行する情報処理プログラム550は確定した内容で有り、あらかじめ副情報処理プログラムにおけるキャッシュメモリヒット率が分かっている場合が想定される。この場合であれば、キャッシュメモリ制御情報テーブル121の設定情報は、例えばCPU501の製造時に固定情報として記憶させることも可能である。情報処理プログラム550の実行時にキャッシュメモリ制御情報テーブル121の設定をする必要が無いために、コスト面は有利になる可能性がある。
【0062】
実施の形態2.
キャッシュメモリは、電源を投入して使用可能になるまでには数マイクロ秒〜数十マイクロ秒程度の時間がかかると想定される。この時間キャッシュメモリが使えないことにより、CPU501は、性能面の損失が生じる。そこで、キャッシュメモリ制御情報テーブル121は、キャッシュメモリの電源を実行開始アドレスよりも早いタイミングであらかじめ電源投入するためのキャッシュメモリ電源投入開始アドレスの情報を備える。
【0063】
図13は、キャッシュメモリ電源投入開始アドレスフィールド121fを備えたキャッシュメモリ制御情報テーブル121の例を示す図である。
図14は、キャッシュメモリ電源投入開始アドレスを用いた処理を示すフローチャートである。
【0064】
図13に示すように、本実施の形態においては、命令実行部101もしくはキャッシュメモリ制御情報テーブル121は、初期化処理553で実施の形態1で行った処理に加えて、キャッシュメモリ制御情報テーブル121のキャッシュメモリ電源投入開始アドレスフィールド121fにキャッシュメモリ電源投入開始アドレスの情報を設定する。
例えば、図13において、副情報処理プログラム3 551cのキャッシュメモリ電源処理情報が電源投入となっている。しかし、副情報処理プログラム3 551cの実行開始アドレスであるアドレスc_Sにおいて、キャッシュメモリ141の電源投入しても実際にキャッシュメモリ141が機能するのは、電源投入から数マイクロ秒〜数十マイクロ秒程度の立ち上がり時間を要した後になってしまう。
そこで、命令実行部101もしくはキャッシュメモリ制御情報テーブル121は、副情報処理プログラム3 551cのキャッシュメモリ電源投入開始アドレスであるアドレスc_Lを設定する。このアドレスc_Lは、副情報処理プログラム3 551cの実行開始アドレスであるアドレスc_Sのタイミングよりも数マイクロ秒〜数十マイクロ秒程度前にキャッシュメモリ141の電源投入にするようなタイミングに設定される。
【0065】
そして、ループ処理1周目552aにおいては、実施の形態1で行った処理同様に、キャッシュメモリ使用判定部123とライト制御判定部124は、キャッシュメモリ電源制御情報とライトバック/ライトスルー制御情報を設定する。
【0066】
次にループ処理N周目552b(2周目以降)における処理を図14で説明する。
まず、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、キャッシュメモリ制御情報テーブル121に記憶された副情報処理プログラム1 551aのキャッシュメモリ電源投入開始アドレス(図13のアドレスa_L)と実行アドレス通知部111から通知された実行アドレスとを比較する。(図14のS801〜S802)
【0067】
キャッシュメモリ電源投入開始アドレス(図13のアドレスa_L)と実行アドレス通知部111から通知された実行アドレスとが不一致の場合、キャッシュメモリ制御部131は、キャッシュメモリ制御情報テーブル121に記憶された副情報処理プログラム1 551aの実行開始アドレス(図13のアドレスa_S)と実行アドレス通知部111から通知された実行アドレスとを比較する。(図14のS805)
ここでも、実行開始アドレスと実行アドレスが不一致な場合は、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、次の実行アドレスの入力を待つ(S801に戻る)。そして、実行アドレスとキャッシュメモリ電源投入開始アドレスもしくは、実行アドレスと実行開始アドレスのどちらかが一致するまで、キャッシュメモリ制御部131は、処理を繰り返す。
【0068】
キャッシュメモリ電源投入開始アドレス(図13のアドレスa_L)と実行アドレス通知部111から通知された実行アドレスとが不一致のままの状態が続いた後に、実行開始アドレス(図13のアドレスa_S)と実行アドレスが一致する場合は、キャッシュメモリ電源投入開始アドレスが設定されていない場合である。従ってキャッシュメモリ制御部131は、キャッシュメモリ141を使用しないと判断し、キャッシュメモリの電源切断する。(図14のS806)
【0069】
一方、キャッシュメモリ電源投入開始アドレス(図13のアドレスa_L)と実行アドレス通知部111から通知された実行アドレスとが一致した場合(図14のS802)、キャッシュメモリ制御部131は、キャッシュメモリ電源制御情報を参照する。
ここで参照した結果が電源切断であれば、キャッシュメモリ電源投入開始アドレスは設定されているが、キャッシュメモリの電源切断で良い。よって、キャッシュメモリ制御部131は、キャッシュメモリ141の電源切断とし、次の副情報処理プログラム2 551bの処理に移る。
【0070】
そして、キャッシュメモリ電源投入開始アドレス(図13のアドレスa_L)と実行アドレス通知部111から通知された実行アドレスとが一致した場合で、キャッシュメモリ制御部131がキャッシュメモリ電源制御情報を参照した結果が電源投入であれば、キャッシュメモリ制御部131は、キャッシュメモリ141を使用すると判断する。そして、キャッシュメモリ制御部131は、実行アドレスが実行開始アドレスと一致するのを待たずにキャッシュメモリ141の電源投入する。(図14のS803)
キャッシュメモリ141の電源投入の場合、キャッシュメモリ制御部131は、さらにライトバック/ライトスルー制御情報を参照する。(図14のS804)そして、キャッシュメモリ制御部131は、メモリアクセス制御部151へライトバックもしくはライトスルー制御の通知を行う。(図14のS807、S808)
【0071】
副情報処理プログラム2〜5 551b〜e(繰り返し回数2〜5回目)についても同様の処理を行い、CPU501は、ループ処理2周目の処理を完了する。
ループ処理3周目以降が続く場合も、CPU501は、同様の処理を行う。
【0072】
本実施の形態によって、キャッシュメモリを使用する副情報処理プログラムにおいて、キャッシュメモリの立ち上がり時間を削減出来るため、CPU501は、処理性能を改善することが出来る。
【0073】
実施の形態3.
実施の形態1において、キャッシュメモリ制御情報テーブル121はループ処理1周目552aにおいて設定された。しかし、情報処理システムによっては、例えば入出力部504の状態等により、ループ処理N周目552b以降にキャッシュメモリ141の状態が安定する場合もある。
そこで、キャッシュメモリ制御情報テーブル121の設定をループ処理1周目552aに固定せず、ループ処理N周目(Nは任意の回数)にCPU501は、キャッシュメモリ制御情報テーブル121の設定をする。
【0074】
図15は、ループ処理N周目にキャッシュメモリ制御情報テーブル121の設定を行うCPU501の構成を示す図である。実施の形態1に示す構成に加え、CPU501は、テーブル生成指示部325を備える。
図16は、ループ処理N周目に設定されるキャッシュメモリ制御情報テーブル121の例を示す図である。((a)はループ処理1周目からループ処理N−1周目、(b)はループ処理N周目以降)
【0075】
まず、初期化処理553において、命令実行部101は、実施の形態1で行った処理に加えて、テーブル生成指示部325にNの値を設定する。ここで、Nの値は情報処理プログラム550に設定されている場合も有るし、入出力部504からユーザーが入力する場合も有る。そして、テーブル生成指示部325は設定されたNの値を記憶する。
また、テーブル生成指示部325は命令実行部101が実行しているループ処理の周回数をカウントする機能を有している。そして、初期化処理553において、テーブル生成指示部325は、ループ処理周回カウント数をゼロにする。
【0076】
次に、ループ処理1周目からループ処理N−1周目において、テーブル生成指示部325は、キャッシュメモリ制御情報テーブル121の副情報処理プログラム1 551aの実行開始アドレスを読み取り、記憶する。ここで、キャッシュメモリ制御情報テーブル121は、実施の形態1と同様の処理で副情報処理プログラム名フィールド121a、実行開始アドレスフィールド121b、実行終了アドレスフィールド121cに対応する情報を記憶している。(図16(a))
テーブル生成指示部325は、実行アドレス通知部111が通知した実行アドレスを受け取る。そして、テーブル生成指示部325は、実行アドレスと副情報処理プログラム1 551aの実行開始アドレスを比較し、両者が一致するとループ処理周回カウント数を1つ増やす。
命令実行部101がループ処理の回数を重ねる毎に、テーブル生成指示部325は、ループ処理周回カウント数をN−1まで増やす。
【0077】
ループ処理N周目において、テーブル生成指示部325は、ループ処理周回カウント数をNとする。
そして、テーブル生成指示部325は、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121にキャッシュメモリ電源制御情報とライトバック/ライトスルー制御情報の生成を指示する。キャッシュメモリ電源制御情報とライトバック/ライトスルー制御情報の生成方法は実施の形態1と同様である。
命令実行部101がループ処理N周目の処理を完了すると、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、図16(b)に示す例のようなキャッシュメモリ制御情報テーブル121を完了する。
【0078】
ループ処理N+1周目において、キャッシュメモリ制御部131は、生成されたキャッシュメモリ制御情報テーブル121を参照して実施の形態1と同様にキャッシュメモリ141の制御を行う。
【0079】
本実施の形態により、ループ処理N周目以降にキャッシュメモリ141の状態が安定する情報処理システムにおいて、適切なキャッシュメモリ制御情報により、CPU501は消費電力を低減出来る。
【0080】
実施の形態4.
周囲の環境変化や情報処理システム500の動作状況変化により、CPU501の温度が上昇することが想定される。このような温度上昇によるCPU501の誤動作や故障を回避する為に、CPU501は消費電力を低減する必要がある。
【0081】
図17は、キャッシュメモリヒット率閾値テーブル426と温度警告部427とを備えるCPU501の構成を示す図である。
図18は、温度警告に対する処理を示すフローチャートである。
図19は、キャッシュメモリヒット率閾値テーブルを示す図である。
【0082】
実施の形態1と同様に、ループ処理N周目まで、キャッシュメモリ制御部131は、キャッシュメモリ制御情報テーブル121を参照して、キャッシュメモリ141の制御を行う。そしてループ処理N周目で、周囲環境の変化により、CPU501の温度がCPU501の最大定格動作温度を超えたと想定する。
【0083】
ここで、図17に示す温度警告部427は、CPU501の温度を測定する。また温度警告部427は、CPU501の限界温度を記憶し、測定温度が限界を超えると警告信号を出力する。ここで限界温度は、CPU501が保証されている最大定格動作温度からマージンをとって設定される。
【0084】
キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、その警告信号を受け取ると、CPU501の温度を下げる為にキャッシュメモリ141の電源投入の時間を短くし、CPU501の消費電力を下げる必要があると判断する。そして、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、キャッシュメモリ制御情報の再設定を開始する。(図18のS901)
【0085】
キャッシュメモリ制御情報の再設定にあたり、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、キャッシュメモリヒット率閾値記憶部122にキャッシュメモリヒット率閾値をより高い値に再設定するように指示をする。
キャッシュメモリヒット率閾値を高く設定することで、キャッシュメモリの電源切断となる副情報処理プログラムを増やし、CPU501は消費電力を低くする。
【0086】
キャッシュメモリヒット率閾値記憶部122は、キャッシュメモリヒット率閾値テーブル426に新しい閾値を要求する。
キャッシュメモリヒット率閾値テーブル426は、キャッシュメモリヒット率閾値記憶部122から1回目の要求があると、まず閾値番号1に設定されている閾値1を返す。
また、キャッシュメモリヒット率閾値テーブル426は、キャッシュメモリヒット率閾値記憶部122からの要求回数を記憶しており、2回目に要求があると、閾値番号2に設定されている閾値1よりも高い値の閾値2を返す。(図18のS902、図19)
すなわち、キャッシュメモリヒット率閾値テーブル426に記憶されている閾値は、閾値1<閾値2<閾値3<閾値4<閾値5の関係となっている。
また、これらの閾値はキャッシュメモリヒット率閾値テーブル426が予め記憶している場合も有るし、情報処理プログラム550に設定されている値をキャッシュメモリヒット率閾値テーブル426が読み取ることも出来るし、入出力部504からユーザーが入力した値をキャッシュメモリヒット率閾値テーブル426が読み取ることも出来る。
【0087】
キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、更新されたキャッシュメモリヒット率閾値に基づき、キャッシュメモリ制御情報(キャッシュメモリ電源制御情報とライトバック/ライトスルー制御情報)を再設定する。キャッシュメモリ電源制御情報とライトバック/ライトスルー制御情報の設定の方法は、実施の形態1と同様である。(図18のS903)
【0088】
キャッシュメモリ制御情報の再設定をした後で、更に温度警告部427が警告信号を出力する場合、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は2回目のキャッシュメモリ制御情報の再設定を行う。その際キャッシュメモリヒット率閾値記憶部122からキャッシュメモリヒット率閾値テーブル426への閾値要求回数が2回目となり、閾値要求回数が1回目の場合より高い値にキャッシュメモリヒット率閾値は、設定される。
その後も更に温度警告部427が警告信号を出力するようであれば、キャッシュメモリ制御部131もしくはキャッシュメモリ制御情報テーブル121は、3回目以降のキャッシュメモリ制御情報の再設定を行う。そして、キャッシュメモリヒット率閾値記憶部122は、より高いキャッシュメモリヒット率閾値を設定し、温度警告部427による警告信号が無くなるまで処理を繰り返す。
なお、図18では、閾値番号は1〜5としているが、更に閾値の設定数を増やすことが可能である。
また本例では温度変化に基づき、CPU501はキャッシュメモリヒット率閾値を変えているが、CPU501は、他の所定の条件(例えば電気料金)等を基準にして、キャッシュメモリヒット率閾値を変えることも可能である。
【0089】
CPU501の温度が限界温度に達した場合に、CPU501の消費電力を低減させることで、CPU501もしくは情報処理システム500は、CPU501もしくは情報処理システム500の停止や故障を防ぐことが可能である。
【符号の説明】
【0090】
101 命令実行部、111 実行アドレス通知部、121 キャッシュメモリ制御情報テーブル、121a 副情報処理プログラム名フィールド、121b 実行開始アドレスフィールド、121c 実行終了アドレスフィールド、121d キャッシュメモリ電源制御情報フィールド、121e ライトバック/ライトスルー制御情報フィールド、121f キャッシュメモリ電源投入開始アドレスフィールド、122 キャッシュメモリヒット率閾値記憶部、123 キャッシュメモリ使用判定部、124 ライト制御判定部、125 キャッシュメモリヒット率計算部、131 キャッシュメモリ制御部、141 キャッシュメモリ、151 メモリアクセス制御部、152 キャッシュメモリアクセス数カウント部、153 キャッシュメモリヒット数カウント部、325 テーブル生成指示部、426 キャッシュメモリヒット率閾値テーブル、427 温度警告部、500 情報処理システム、501 CPU、502 主記憶部、503 入出力制御部、504 入出力部、550 情報処理プログラム、551a 副情報処理プログラム1、551b 副情報処理プログラム2、551c 副情報処理プログラム3、551d 副情報処理プログラム4、551e 副情報処理プログラム5、552 副情報処理プログラムループ処理、552a ループ処理1周目、552b ループ処理N周目、553 初期化処理。

【特許請求の範囲】
【請求項1】
異なる範囲のアドレスに割り当てられる複数の副情報処理プログラムから構成される情報処理プログラムを実行し、実行中のアドレスを示す実行アドレスを出力する命令実行部と、
前記命令実行部が前記情報処理プログラム実行中にアクセスして、前記情報処理プログラムが使用する情報を一時的に記憶するキャッシュメモリと、
前記命令実行部が出力した実行アドレスを受け取り、前記実行アドレスを通知する実行アドレス通知部と、
前記複数の副情報処理プログラムの各副情報処理プログラムに対応して、前記キャッシュメモリの制御を行う為の情報であるキャッシュメモリ制御情報を記憶するキャッシュメモリ制御情報テーブルと、
前記実行アドレス通知部が通知した実行アドレスから、前記命令実行部が実行している副情報処理プログラムを判定し、判定された副情報処理プログラムに対応するキャッシュメモリ制御情報を前記キャッシュメモリ制御情報テーブルから読み取り、前記キャッシュメモリ制御情報を基に前記キャッシュメモリを制御するキャッシュメモリ制御部と
を備えたことを特徴とする情報処理システム。
【請求項2】
前記キャッシュメモリ制御情報テーブルは、前記キャッシュメモリの電源投入と電源切断とのいずれかのキャッシュメモリ電源制御情報を前記キャッシュメモリ制御情報の一部として、各副情報処理プログラムに対応して記憶し、
前記キャッシュメモリ制御部は、前記キャッシュメモリ電源制御情報に基づき、前記キャッシュメモリの電源投入と電源切断の制御をすることを特徴とする請求項1記載の情報処理システム。
【請求項3】
前記情報処理システムは、さらに
情報を記憶する主記憶部と、
前記キャッシュメモリが記憶する情報を前記主記憶部に書き込むメモリアクセス制御部と、
前記メモリアクセス制御部が前記主記憶部に情報を書き込む方式をライトバック方式とライトスルー方式とのいずれの書き込み方式とするかを、各副情報処理プログラムに対応して判定するライト制御判定部と
を備え、
前記キャッシュメモリ制御情報テーブルは、前記ライト制御判定部が判定した書き込み方式を前記キャッシュメモリ制御情報の一部として、各副情報処理プログラムに対応して記憶し、
前記ライト制御判定部は、前記複数の副情報処理プログラムから構成される情報処理プログラムを構成する任意の第1の副情報処理プログラムと、前記第1の副情報処理プログラムの次に処理される第2の副情報処理プログラムにおいて、
前記第1の副情報処理プログラムに対応する前記キャッシュメモリ電源制御情報が電源投入であり、かつ前記第2の副情報処理プログラムに対応する前記キャッシュメモリ電源制御情報が電源投入である場合に、前記第1の副情報処理プログラムに対応する書き込み方式をライトバック方式と判定し、
前記第1の副情報処理プログラムに対応する前記キャッシュメモリ電源制御情報が電源投入であり、かつ前記第2の副情報処理プログラムに対応する前記キャッシュメモリ電源制御情報が電源切断である場合に、前記第1の副情報処理プログラムに対応する書き込み方式をライトスルー方式と判定する
ことを特徴とする請求項2記載の情報処理システム。
【請求項4】
前記ライト制御判定部は、前記複数の副情報処理プログラムから構成される情報処理プログラムの中で、最後に実行される副情報処理プログラムに対応する書き込み方式をライトスルー方式と判定することを特徴とする請求項3記載の情報処理システム。
【請求項5】
前記情報処理システムは、さらに
前記キャッシュメモリへのアクセスの回数であるキャッシュメモリアクセス数を各副情報処理プログラムに対応して測定し、前記キャッシュメモリアクセス数を記憶するキャッシュメモリアクセス数カウント部と、
前記キャッシュメモリへのアクセスのうち前記命令実行部が要求したデータが前記キャッシュメモリに存在する回数であるキャッシュメモリヒット数を各副情報処理プログラムに対応して測定し、前記キャッシュメモリヒット数を記憶するキャッシュメモリヒット数カウント部と、
前記キャッシュメモリアクセス数カウント部が記憶した前記キャッシュメモリアクセス数と、前記キャッシュメモリヒット数カウント部が記憶した前記キャッシュメモリヒット数から、キャッシュメモリヒット率を各副情報処理プログラムに対応して計算するキャッシュメモリヒット率計算部と、
任意のキャッシュメモリヒット率閾値を記憶するキャッシュメモリヒット率閾値記憶部と、
前記キャッシュメモリヒット率計算部が計算した各副情報処理プログラムに対応するキャッシュメモリヒット率が前記キャッシュメモリヒット率閾値以上の場合には、前記キャッシュメモリ電源制御情報は電源投入であると判定し、前記キャッシュメモリヒット率が前記キャッシュメモリヒット率閾値未満の場合には、前記キャッシュメモリ電源制御情報は電源切断であると判定し、前記キャッシュメモリ制御情報テーブルに各副情報処理プログラムに対応して判定結果を記憶するキャッシュメモリ使用判定部と
を備えたことを特徴とする請求項2〜4いずれか記載の情報処理システム。
【請求項6】
前記情報処理システムは、実行順序の決まった複数の副情報処理プログラムで構成される処理を複数回繰り返し、
前記キャッシュメモリ使用判定部は、前記キャッシュメモリヒット率を、前記実行順序の決まった複数の副情報処理プログラムで構成される処理を複数回繰り返す内の1回目のみに計算することを特徴とする請求項5記載の情報処理システム。
【請求項7】
前記情報処理システムは、実行順序の決まった複数の副情報処理プログラムで構成される処理を複数回繰り返し、
前記キャッシュメモリ使用判定部は、前記キャッシュメモリヒット率を、前記実行順序の決まった複数の副情報処理プログラムで構成される処理を複数回繰り返す内の任意の回に計算することを特徴とする請求項5記載の情報処理システム。
【請求項8】
前記キャッシュメモリ制御部は、キャッシュメモリヒット率閾値記憶部が記憶する前記キャッシュメモリヒット率閾値を所定の条件に基づいて変化させることを特徴とする請求項5〜7いずれか記載の情報処理システム。
【請求項9】
前記キャッシュメモリ制御情報テーブルは、前記キャッシュメモリ制御情報として、
各副情報処理プログラムが割り当てられたアドレス範囲の先頭に位置する実行開始アドレスと、
前記実行開始アドレスが先頭に位置するアドレス範囲を割り当てられた各副情報処理プログラム実行時において、前記キャッシュメモリ制御部が前記キャッシュメモリの電源を投入するアドレスを示すキャッシュメモリ電源投入開始アドレスと
を含んでいることを特徴とする請求項2〜8いずれか記載の情報処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate