JP4837456B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP4837456B2
JP4837456B2 JP2006178607A JP2006178607A JP4837456B2 JP 4837456 B2 JP4837456 B2 JP 4837456B2 JP 2006178607 A JP2006178607 A JP 2006178607A JP 2006178607 A JP2006178607 A JP 2006178607A JP 4837456 B2 JP4837456 B2 JP 4837456B2
Authority
JP
Japan
Prior art keywords
hit rate
processing apparatus
information processing
determined
predicted
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.)
Expired - Fee Related
Application number
JP2006178607A
Other languages
English (en)
Other versions
JP2008009647A (ja
Inventor
元 深津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2006178607A priority Critical patent/JP4837456B2/ja
Priority to US11/757,548 priority patent/US7934114B2/en
Publication of JP2008009647A publication Critical patent/JP2008009647A/ja
Application granted granted Critical
Publication of JP4837456B2 publication Critical patent/JP4837456B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)

Description

本発明は、キャッシュメモリを有するプロセッサと、プロセッサへクロック信号を供給するクロック供給部とを備える情報処理装置の制御方法、情報処理装置、プログラム、プログラム変換方法に関する。
情報処理装置における消費電力制御に関する従来技術として、キャッシュヒット率に応じたCPUのクロック周波数を制御する方法がある。この情報処理装置は、CPUのキャッシュヒット率を測定する専用ハードウェアを備え、キャッシュヒット率が高い場合にCPUのクロック周波数を上げ、キャッシュヒット率が低い場合にはCPUのクロック周波数を下げる。この方法を用いることで、クロック周波数が一定の場合に比べて、消費電力を効率的に抑制できることが可能となる。
図12は従来の方式を用いた情報処理装置の構成を示すブロック図である。この情報処理装置は、キャッシュを内蔵するCPU0101と、キャッシュヒット率モニタ0102と、CPUのクロックを制御するクロック制御部0103とを備える。
以上のように構成された従来技術の情報処理装置において、以下にその動作を説明する。
キャッシュヒット率モニタ回路0102は、CPU0101に搭載されたキャッシュのヒット率を求め、キャッシュヒット率情報0104としてクロック制御部0103へ入力する。クロック制御部0103はキャッシュヒット率情報0104に応じてCPU0101へ供給されるクロック0105の周波数を制御する。その際、クロック制御部0103はキャッシュヒット率が高い場合にCPUのクロック周波数を上げ、キャッシュヒット率が低い場合にはCPUのクロック周波数を下げる。これと同時に、クロック制御部0103は、CPU0101に接続されるバスおよびメモリのクロック周波数を、キャッシュヒット率が高い場合にCPUのクロック周波数を下げ、キャッシュヒット率が低い場合にはCPUのクロック周波数を上げる。
これにより、ヒット率が高いときはCPUが効率よく処理し、ヒット率が低いときはバス・メモリの速度を向上させる。言い換えれば、処理効率の向上と消費電力の低減とを同時に両立させようとしている。
特開平11−134077号公報 特開平2000−148582号公報 特開平2005−115769号公報
しかしながら上記従来技術によれば、キャッシュヒット率が変化してからCPUのクロック周波数を制御するため、反応が遅いという問題がある。図13は、キャッシュヒット率、CPUクロック周波数およびバス・メモリのクロック周波数の変化を示すグラフである。同図のように、キャッシュヒット率が変化してから、CPUクロック周波数およびバス・メモリのクロック周波数が変化するまでに遅延時間dが発生してしまう。遅延時間dは、キャッシュヒット率モニタ回路0102によるモニタ周期を短縮することにより、短縮すると考えれられる。しかし、モニタ周期を短くすれば、キャッシュヒット率の測定精度が劣化し、却って処理効率の向上または消費電力の低減を阻害する可能性がある。
このように上記従来技術では、キャッシュヒット率の変化からCPUのクロック周波数の制御までの反応が遅いという問題を必然的に内在している。その結果、消費電力の低減は実現できても、処理効率の向上は十分に達成できていない。
上記の課題を解決するために、本発明は、キャッシュヒット率に応じて遅延時間を発生することなしにCPUクロックを制御する情報処理装置の制御方法、情報処理装置、プログラム、プログラム変換方法を提供することを目的とする。
上記課題を解決するため本発明は、キャッシュメモリを有するプロセッサと、プロセッサへクロック信号を供給するクロック供給部とを備える情報処理装置の制御方法であって、前記キャッシュメモリにおけるヒット率を予測する予測ステップと、予測したヒット率に応じて、前記クロック信号の周波数を変更するようクロック供給部を制御する制御ステップとを有する。この構成によれば、予測したヒット率に応じてクロック信号の周波数を制御するので、キャッシュヒット率が変化してからCPUのクロック周波数を制御するまでの遅延時間を解消することができる。その結果、トレードオフの関係にある消費電力の低減と処理効率の向上という両者を最適に満たすことができる。さらに、実際のキャッシュヒット率をモニタするための専用ハードウェアを実装しなくてもよいので、情報処理装置の回路面積化を小さくすることができる。例えば携帯端末装置の場合、電池の消耗を抑えることができ、しかも回路の小型化に適している。
ここで、前記予測ステップにおいて、前記プロセッサにおける第1の処理の発生を検出し、検出した前記第1の処理の発生によって開始する第2の処理の種類を判別し、判別した種類に応じて前記ヒット率を予測するようにしてもよい。この構成によれば、実際のキャッシュヒット率をモニタするための専用ハードウェアを実装しなくても、ソフトウェアまたはハードウェアによってヒット率を簡単に予測することができる。また、例えば、第2の処理の種類とヒット率とを対応させたヒット率テーブル等に予め用意しておけば、ヒット率を正確に予測することができる。
ここで、前記予測ステップにおいて、さらに、前記第1の処理が所定の時間検出されない場合には前記ヒット率が所定値よりも上がると予測するようにしてもよい。この構成によれば、第1の処理が所定の時間検出されない場合には、特にヒット率を下げる要因がなく徐々に上がっていくものとみなして、プロセッサの処理効率を向上させることができる。
ここで、前記第1の処理は、オペレーティングシステムにおけるイベントであり、前記予測ステップにおいて、前記第2の処理が記録媒体とメモリとの間のデータ転送を行う処理であると判別された場合に、ヒット率が所定値よりも下がると予測するようにしてもよい。この構成によれば、記録媒体とメモリとの間のデータ転送、例えば、記憶媒体やハードディスクに格納されたデータ(またはプログラム)をメモリへロードする場合に、ヒット率が所定値よりも下がると容易に予測することができる。
ここで、前記予測ステップにおいて、前記データ転送のサイズに応じてヒット率を予測するようにしてもよい。この構成によれば、データ転送サイズが大きいほどキャッシュヒット率は下がる傾向にあるので、予測をより正確にすることができる。
ここで、前記予測ステップにおいて、さらに、前記第2の処理が新たなアプリケーションプログラムの起動であると判別された場合、前記第2の処理がキャッシュメモリのフラッシュであると判別された場合、または前記第2の処理がメモリ間の領域コピーであると判別された場合に、ヒット率が所定値よりも下がると予測するようにしてもよい。この構成によれば、キャッシュメモリのフラッシュや、メモリ間の領域コピーでは、ヒット率は下がる傾向にあるので、ヒット率を容易に予測することができる。
ここで、前記情報処理装置は、デマンドロード方式の仮想記憶用に仮想アドレスを実アドレスに変換するメモリ管理部を備え、前記第1の処理は、前記メモリ管理部でのアクセス違反であり、前記予測ステップにおいて、前記第2の処理がデマンドロードを行う処理であると判別された場合に、ヒット率が所定値よりも下がると予測するようにしてもよい。この構成によれば、メモリ管理部でのアクセス違反によってデマンドロードを行う場合にはヒット率は下がる傾向にあるので、ヒット率を容易に予測することができる。
ここで、 前記メモリ管理部は、さらに、仮想アドレスと対応する実アドレスとを一時的にキャッシュする、ソフトウェアテーブルウォーク方式のテーブルを有し、前記第1の処理は、前記テーブルでのアクセスミスであり、前記予測ステップにおいて、前記第2の処理が前記テーブルの更新処理であると判別された場合に、ヒット率が所定値よりも下がると予測するようにしてもよい。この構成によれば、上記のテーブルの更新処理ではヒット率は下がる傾向にあるので、ヒット率を容易に予測することができる。
ここで、前記第1の処理は割込み処理であり、前記予測ステップにおいて、前記第2の処理が割込みの種類を判別する前処理であると判別された場合に、ヒット率が所定値よりも高いと予測し、前記第2の処理が判別された割込みの種類に固有の個別処理であると判別された場合に、ヒット率が所定値よりも低いと予測するようにしてもよい。この構成によれば、前処理は割込みの種類に依存せず共通の処理であるため、ヒット率が高い傾向があり、逆に個別処理では割込みの種類に依存するのでヒット率が低い傾向がある。これらにより、ヒット率を容易に予測することができる。
ここで、前記予測ステップにおいて、さらに、前記個別処理が入出力部の制御を行う場合に、前記入出力部の種類を判別し、判別した入出力部の種類に応じてヒット率を予測するようにしてもよい。この構成によれば、個別処理は入出力部の種類によって処理内容が異なり、ヒット率の変化度合いが異なることを利用して、ヒット率をより正確に予測することができる。
ここで、前記情報処理装置の制御方法は、さらに、割込みの発生頻度を種類別に計測するステップを有し、前記予測ステップにおいて、さらに、判別された前記個別処理の発生頻度に応じてヒット率を予測するようにしてもよい。この構成によれば、発生頻度が高いほどヒット率は高くなる傾向があることを利用し、ヒット率をより正確に予測することができる。
ここで、前記第1の処理はシステムコールであり、前記予測ステップにおいて、前記第2の処理としてのシステムコール番号を判別し、判別された番号に応じてヒット率を予測するようにしてもよい。この構成によれば、システムコールに起因するデバイスアクセスや、新規領域の獲得など、キャッシュヒット率が下がる傾向があるので、ヒット率を容易に予測することができる。また、システムコールはシステムコール番号で処理内容を区別しており、処理内容によってキャッシュヒット率の変化度合いが異なるため、ヒット率をより正確に予測することができる。
ここで、前記情報処理装置は、キャッシュメモリのヒット率をモニタするモニタ部を備え、前記情報処理装置の制御方法は、さらに、アプリケーションプログラムの中断時に、中断したアプリケーションのヒット率を保存する保存ステップを有し、前記第1の処理は中断していたアプリケーションプログラムの再開であり、前記予測ステップにおいて、再開すべきアプリケーションプログラムの種類を判別し、判別したアプリケーションプログラムに関して保存されていたヒット率に応じて、再開後のヒット率を予測するようにしてもよい。この構成によれば、保存されていたヒット率に応じて、再開後のヒット率を容易に予測することができる。
ここで、前記予測ステップにおいて、中断から再開までの時間に応じてヒット率を予測するようにしてもよい。この構成によれば、再開までの時間が長いほど、再開時において、キャッシュメモリに再開されるアプリケーションのデータが残っている可能性が低く、キャッシュヒット率が下がるため、再開後のヒット率を正確に予測することができる。
ここで、前記情報処理装置は、キャッシュメモリのヒット率をモニタするモニタ部を備え、前記予測ステップにおいて、モニタ部による過去のヒット率の履歴に基づいてヒット率を予測するようにしてもよい。この構成によれば、履歴に従って再開後のヒット率を正確に予測することができる。
ここで、前記情報処理装置は、デマンドロード方式の仮想記憶用に仮想アドレスを実アドレスに変換するメモリ管理部を備え、前記メモリ管理部は、さらに、仮想アドレスと対応する実アドレスとを一時的にキャッシュする、ハードウェアウォーク方式のテーブルを有し、前記予測ステップにおいて、前記テーブルの更新頻度と、前記過去のヒット率の履歴とに基づいてヒット率を予測するようにしてもよい。
ここで、前記情報処理装置は、さらに、前記プロセッサに給電する電源部を有し、前記制御ステップは、さらに、前記予測したヒット率に応じて、前記プロセッサに給電する電源電圧を変更するよう前記電源部を制御するようにしてもよい。この構成によれば、さらに、消費電力の低減を最適化にすることができる。
また、本発明の情報処理装置は、キャッシュメモリを有するプロセッサと、プロセッサへクロック信号を供給するクロック供給手段と、前記キャッシュメモリにおけるヒット率を予測する予測手段と、予測したヒット率に応じて、前記クロック信号の周波数を変更するようクロック供給部を制御する制御手段とを備える。
また、本発明のプログラムは、プロセッサへクロック信号を供給するクロック供給部とを備えるコンピュータを制御するプログラムであって、前記キャッシュメモリにおけるヒット率を予測する予測ステップと、予測したヒット率に応じて、前記クロック信号の周波数を変更するようクロック供給部を制御する制御ステップとをコンピュータに実行させる。
また、本発明のプログラム変換方法は、第1のプログラムを第2のプログラムに変換するプログラム変換方法であって、前記第2のプログラムは、キャッシュメモリを有するプロセッサと、プロセッサへクロック信号を供給するクロック供給部とを備える情報処理装置を対象とし前記第1のプログラム中の所定区間におけるヒット率を予測する予測ステップと、予測したヒット率に応じて、所定区間における前記クロック信号の周波数を指定する命令を前記第1のプログラムに追加することによって、第2プログラムを生成する。
ここで、前記所定区間は、第1の処理によって開始する第2の処理であり、前記予測ステップにおいて、前記第2の処理の種類を判別し、判別した種類に応じて前記第2の処理中の前記キャッシュメモリのヒット率を予測し、予測したヒット率に応じて、前記クロック供給部によるクロック信号の周波数を指定する命令を、第1の処理の末尾または第2の処理の先頭に追加するようにしてもよい。
本発明によれば、予測したヒット率に応じてクロック信号の周波数を制御するので、キャッシュヒット率が変化してからCPUのクロック周波数を制御するまでの遅延時間を解消することができる。その結果、トレードオフの関係にある消費電力の低減と処理効率の向上という両者を最適に満たすことができる。さらに、実際のキャッシュヒット率をモニタするための専用ハードウェアを実装しなくてもよいので、情報処理装置の回路面積化を小さくすることができる。例えば携帯端末装置の場合、電池の消耗を抑えることができ、しかも回路の小型化に適している。
本発明の実施例について、図面を参照して詳細に説明する。
(実施の形態1)
本実施の形態では、キャッシュメモリを有するプロセッサと、プロセッサへクロック信号を供給するクロック供給部と、プロセッサへ電源電圧を供給する電源部とを備え、キャッシュメモリにおけるヒット率を予測し、予測したヒット率に応じてクロック信号の周波数を変更するようクロック供給部を制御し、予測したヒット率に応じて電源電圧を変更するよう電源部を制御する情報処理装置について説明する。
図1は、第1の実施形態における情報処理装置の構成を示すブロック図である。この嬢処理装置は、CPU101、メモリ104、記憶媒体111、割込みコントローラ112、クロック供給部150および電源部151を備える。
CPU101は、キャッシュメモリ160と制御部161とを備える。
キャッシュメモリは、データキャッシュまたは命令キャッシュとして用いられる。
制御部161は、キャッシュメモリ160におけるヒット率を予測し、そのヒット率に応じてクロック信号の周波数を決定し、決定した周波数に変更するようクロック供給部150を制御し、また、決定した周波数に応じて電源電圧を決定し、その電源電圧に変更するよう電源部151を制御する。
図2は、制御部161の詳細な構成を示すブロック図である。制御部161は、キャッシュヒット率予測部201、周波数決定部203、クロック制御部205、電圧決定部206、電圧制御部208を備える。制御部161のこれらの機能は、オペレーティングシステム(OS)の一部分に追加された機能として説明する。まず、制御部161の概略の動作について説明する。
図3は、制御部161の概略動作を示すフローチャートである。キャッシュヒット率予測部201は、CPU101における第1の処理の発生を検出し(S30)、検出した第1の処理の発生によって開始または呼び出される第2の処理の種類を判別し(S32)、判別した種類に応じて前記ヒット率を予測する(S34)。キャッシュヒット率予測部201によって決められたキャッシュヒット率202に基づいて、周波数決定部203は、CPUクロック102、メモリクロック106、バスクロック107を含む周波数204を決定する(S36)。クロック制御部205は周波数決定部203によって決められた周波数204を対応するクロック信号を供給するようクロック供給部150を制御する。さらに、周波数204に基づいて、電圧決定部206が、CPU電圧108、メモリ電圧109、バス電圧110のうち少なくとも1つ以上の電圧207を決定する(S38)。電圧制御部208は電圧決定部206によって決められた電圧207を対応する電圧に対して設定をする。このように制御部161は、CPU101の周波数204を、キャッシュヒット率予測部201によって予測されたキャッシュヒット率202に基づいて制御することで、キャッシュヒット率202が低い時に、CPU101の周波数204を下げ、キャッシュヒット率202が高い時に、CPU101の周波数204を上げることで、消費電力を最適に制御することができる。
より詳しく説明すると、上記の第1の処理は、オペレーティングシステムにおける各種イベントをいう。各種イベントには、システムコール、割込み処理、例外処理、アプリケーションの切り替え(タスク切り替え)、アプリケーションの起動、アプリケーションの完了、などを含む。第2の処理はこれらのイベントにより開始する処理またはイベントから呼び出される処理をいう。
たとえば、イベント(第1の処理)が、ファイルリードを指示イベントであれば、第2の処理が記録媒体とメモリとの間のデータ転送を行う処理であると判別される。この場合、キャッシュヒット率予測部201は、ヒット率が所定値よりも下がると予測する。ヒット率予測の一例について図4Aを用いて説明する。
図4Aは、イベントに対応する第2の処理と予測ヒット率とを保持する予測テーブルを示す図である。キャッシュヒット率予測部201は、図4Aに示すような予測テーブルに参照することにより予測ヒット率を得る。
周波数決定部203は、キャッシュヒット率予測部201によって予測されたヒット率202に基づいて、クロック周波数204を決定する。クロック周波数204は、CPUクロック102の周波数、バスクロック107の周波数およびメモリクロック106の周波数を含む。周波数の決定方法の一例について図5Aを用いて説明する。
図5Aは、予想ヒット率に適したクロック周波数204を保持するテーブルを示す図である。周波数決定部203は、図5Aに示す周波数テーブルを参照することにより周波数を得る。図5Aの周波数テーブルは、予測ヒット率に対応させて、CPUクロック102の周波数、バスクロック107の周波数およびメモリクロック106の周波数を予め記憶している。この周波数テーブルは、キャッシュヒット率202が低くなると予測される場合には、CPUクロック102の周波数を下げ、キャッシュヒット率202が高くなると予測される場合には、CPUクロック102の周波数を上げるように設定されている。これにより、消費電力を最適に制御することができる。
クロック制御部205は、周波数決定部203によって決定された周波数204に従う各クロック信号を供給するようにクロック供給部150を制御する。
電圧決定部206は、周波数決定部203によって決定された周波数204に基づいてCPU電圧108、メモリ電圧109およびバス電圧110を決定する。なお、電圧決定部206は、予測ヒット率に基づいてCPU電圧108、メモリ電圧109およびバス電圧110を決定してもよい。電圧決定方法の一例について図5Bを用いて説明する。
図5Bは、予想ヒット率に適したCPU電圧108、バス電圧110、メモリ電圧109を保持するテーブルを示す図である。
電圧制御部208は、電圧決定部206によって決められた電圧207を対応する各電源電圧を拒給するよう電源部151を制御する。
なお、本実施形態では、制御部161は、オペレーティングシステム(OS)の一部分に追加された機能として説明するが、OS以外のプログラムで実現しても、ハードウェアで実現してもよい。
記憶媒体111は、ハードディスクや光ディスクなどの記録媒体である。
割込みコントローラ112は、CPU101への割込みを制御する。CPU101への各種割込みは、上記イベント(第1の処理)の一部として制御部161に取り扱われる。
以上のように構成された情報処理装置について、その動作を説明する。上記のイベント(第1の処理)には、OS内部で発生するイベント、アプリケーションからシステムコールとして発生するイベント、外部から割込みとして発生するイベントなど様々なものがある。
まず、制御部161による、イベントの種類を問わずイベントから呼び出される第2処理の内容に応じてヒット率を予測する動作例について説明する。
例えば、図4AのイベントNo.1に示すようにイベントに対応する第2の処理が、記憶媒体112に格納されたデータをメモリ102へロードする処理である場合、キャッシュヒット率予測部201は、ロードが開始から完了するまで前記CPUのキャッシュヒット率が低いと予測する。
また、図4AのイベントNo.5に示すようにイベントに対応する第2の処理が、記憶媒体112に格納されたアプリケーションを実行するとき、通常はオペレーティングシステム(以下OSという)は記憶媒体112からアプリケーションをロードし、メモリ102へ展開を行う。この時、記憶媒体112へのアクセスはCPU101のキャッシュにヒットしない傾向が高いことから、キャッシュヒット率予測部201はキャッシュヒット率が低いと予測し、キャッシュヒット率202を決定する。
例えば、図4AのイベントNo.3に示すようにイベントに対応する第2の処理が、ある領域に対して、メモリコピー、またはメモリフィル機能が実施される時、対象領域は未使用であることが多く、キャッシュヒット率が下がる傾向にあるため、キャッシュヒット率予測部201が、キャッシュヒット率が下がると予測しキャッシュヒット率202を決定する。
また、図4AのイベントNo.4に示すようにイベントに対応する第2の処理が、キャッシュ領域のすべて、または大部分をフラッシュする処理を行った後は、前記CPUのキャッシュヒット率は下がる傾向にあるため、キャッシュヒット率予測部201が、CPU101のキャッシュヒット率が低いと予測し、キャッシュヒット率202を決定する。例えば、OSは外部メモリとキャッシュの整合性をとるために、キャッシュをフラッシュすることがある。
例えば、図4AのイベントNo.3に示すようにイベントに対応する第2の処理が、メモリコピー、またはメモリフィル機能が実施される時、対象領域が大きいほどキャッシュヒット率は下がる傾向にあるため、キャッシュヒット率予測部201が、サイズに応じてキャッシュヒット率を予測しキャッシュヒット率202を決定する。
また、図4AのイベントNo.5に示すようにイベントに対応する第2の処理が、アプリケーションの実行を開始する時に、開始直後はCPU101のキャッシュに実行するアプリケーションが存在しないため、キャッシュヒット率が下がる傾向にあるため、キャッシュヒット率予測部201はキャッシュヒット率が下がると予測し、キャッシュヒット率202を決定する。
次に、図4AのイベントNo.9に示すようにイベントに対応する第2の処理が、MMUアクセス違反である場合について説明する。ここでは、CPU101は、デマンドロード方式の仮想記憶用に仮想アドレスを実アドレスに変換するメモリ管理部(以下MMUと呼ぶ)を内部に備えるものとする。例えばLinuxのようなOSの場合、実際にアクセスが発生するまで実メモリを割り当てない方式(以下デマンドロードという)が用いられる。このデマンドロードを実現するために、MMUの機能であるアクセス権限機能を利用して、実際にアクセスが発生するまで、アクセス権限をアクセス禁止に設定する。アクセス禁止に設定された領域にアクセスが発生した場合、例外が発生してOSによって処理される。デマンドロードが発生した後は、新規に割り当てたメモリへのアクセスを行うことが多いため、CPU101aのキャッシュにヒットしない傾向が高いことから、制御部161は、キャッシュヒット率予測部201はキャッシュヒット率が低いと予測し、キャッシュヒット率202を決定する。
さらに、図4AのイベントNo.10に示すようにイベントに対応する第2の処理が、TLBミスヒットイベントである場合について説明する。ここでは、上記のMMUは、さらに、仮想アドレスと対応する実アドレスとを一時的にキャッシュする、ソフトウェアテーブルウォーク方式のTable Lookaside Buffer(以下TLBという)を備えるものとする。
TLBミスヒットが発生する時は、従来アクセスしていなかった領域にアクセスが始まったことを示す場合が多く、今後キャッシュヒット率が下がる傾向があるため、キャッシュヒット率予測部201は、TLBミスヒットを検出した場合、キャッシュヒット率が下がると予測し、キャッシュヒット率202を決定する。
なお、CPU101に搭載されるソフトウェアテーブルウォーク方式のTLBは、TLBにミスヒットが発生するとOSがTLBのエントリを更新するため、TLBミスヒットの発生をキャッシュヒット率予測部201で検出できる。
さらに、CPU101においてTLBミスヒットが発生し、更新したTLBエントリの内容に基づいて、キャッシュヒット率予測部201がキャッシュヒット率202を決定する。例えば、更新したTLBエントリの内容が非キャッシュ属性を示す場合、これからアクセスが始まる領域が非キャッシュ領域の可能性が高く、今後キャッシュヒット率が下がる傾向があるため、キャッシュヒット率予測部201は、TLBミスヒットを検出した後に更新されるTLBエントリが非キャッシュ属性を示す場合にキャッシュヒット率が下がると予測し、キャッシュヒット率202を決定してもよい。
次に、制御部161による、上記イベント(第1の処理)の一部としての割込みに関する動作について説明する。
例えば、図4AのイベントNo.11に示すようにイベントに対応する第2の処理が、割込み前処理である場合、割込みコントローラ112から発行される割込み114がCPU101で受け付けられると、OSは割込み処理を開始する。割込み処理は主に、割込み種類の識別などを行う前処理部分と、割込み種類に応じて処理を行う割込みハンドラ処理とに分けられる。前処理部分は割込みの種類に依存せず共通の処理であるため、キャッシュヒット率が高い傾向があるため、割込み処理開始後、各割込みハンドラ処理を実施するまで、キャッシュヒット率予測部201はキャッシュヒット率が高いと予測しキャッシュヒット率202を決定する。
また、図4AのイベントNo.12や13に示すようにイベントに対応する第2の処理が、割込みハンドラの処理である場合、つまり、割込み処理の前処理の後に割込み種類に応じて実施される割込みハンドラ処理である場合、割込みハンドラ処理はCPU101の周辺デバイスを操作するため、キャッシュヒット率が低い傾向がある。この性質を利用して、各割込みハンドラ処理の実施は、キャッシュヒット率予測部201はキャッシュヒット率が低いと予測しキャッシュヒット率202を決定する。 割込みハンドラ処理はデバイスの種類によって処理内容が異なり、キャッシュヒット率の変化度合いが異なるため、キャッシュヒット率予測部201が、デバイスの種類に応じて各割込みハンドラ処理のキャッシュヒット率を予測しキャッシュヒット率202を決定する。
なお、キャッシュヒット率予測部201が各割込みの発生頻度を管理し、発生頻度が高いほどキャッシュヒット率は高くなる傾向があることを利用し、発生頻度に応じて各割込みハンドラ処理のキャッシュヒット率を予測しキャッシュヒット率202を決定する。この発生頻度は動的に管理しても、あらかじめ決められた静的な値を使用してもよい。
さらに、制御部161が、上記イベントの一部としてシステムコールを取り扱う動作について説明する。アプリケーションはOSに対してシステムコール(ソフトウェア割込みとも呼ばれる)を発行することで、OSの機能を利用することができる。このOSの機能はデバイスアクセスや、新規領域の獲得など、キャッシュヒット率が下がる傾向があるため、キャッシュヒット率予測部201はシステムコールが発行された後、キャッシュヒット率が下がると予測し、キャッシュヒット率202を決定する。
また、図4Bに示すように、システムコールはシステムコール番号で処理内容を区別しており、処理内容によってキャッシュヒット率の変化度合いが異なるため、キャッシュヒット率予測部201はシステムコールが発行された後、キャッシュヒット率をシステムコール番号に応じて予測し、キャッシュヒット率202を決定する。
図4Bは、システムコール番号に対応する第2の処理と予測ヒット率とを保持する予測テーブルを示す図である。システムコール番号1のソケット・システム・コールは、ネットワーク通信を行うためのシステムコールであり、ネットワークデバイスに頻繁にアクセスすることから、制御部161はヒット率低下を予測し、予測ヒット率はかなり低い。
システムコール番号2のファイルリード・システムコールは、記憶媒体111からファイルを読み出す処理であり、制御部161はヒット率がかなり低いと予測する。
システムコール番号3のファイルライト・システム・コールは、記憶媒体111にファイルを書き込む処理であり、制御部161はヒット率がかなり低いと予測する。
システムコール番号4のファイルの属性変更用システムコールは、ファイルへのアクセスではあるが、属性(例えば、アクセス権限や所有者など)を変更するだけなので、制御部161は、ヒット率が若干低下するがほとんど変化しないと予測する。
システムコール番号5のメモリ領域変更用システム・コールは、プロセスのメモリ領域を変更するために使用される(malloc等)。特に、領域を拡大する場合には、未知の領域へのアクセスを始めることを意味するので、制御部161は、サイズが大きいほどかなり低いヒット率と予測する。
システムコール番号6のシグナル用システム・コールは、アプリケーションからの他のアプリケーションへのイベント通知を示すが、通知そのものは1つのデータのみであるので、制御部161は、ヒット率が変化しないと予測する。
なお、第1の実施例を示す情報処理装置は典型的には集積回路であるLSIとして実現される。ここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
第1の実施例を示す情報処理装置は携帯電話、蓄積再生装置、デジタルテレビ、車載機器等に適用できる。
また、メモリクロック106の周波数と、バスクロック107の周波数を制御する場合、CPU101以外のバスマスタ回路(例えばDMAC:Direct Memory Access Controller)がメモリ104とバス105を使用しているかどうかを考慮する必要がある。
(実施の形態2)
図7は、実施の形態2における情報処理装置の構成を示すブロック図である。同図は、第1の実施形態の図1と比べて、キャッシュヒット率モニタ回路103を追加している点が異なっている。
以上のように構成された情報処理装置において、制御部161内のキャッシュヒット率予測部201は、キャッシュヒット率モニタ回路103からの現在のキャッシュヒット率情報(ハードウェア情報)を取得して、取得した情報を利用してキャッシュヒット率202を予測する。
キャッシュヒット率予測部201は、キャッシュヒット率モニタ回路からの現在のキャッシュヒット率情報に基づいてキャッシュヒット率を予測するため、実施の形態1の予測に対し予測精度が高くなる。以下、いくつかの動作例について説明する。
例えば、キャッシュヒット率予測部201がタイマなどにより定期的に起動し、所定の情報を記録する。過去に記録した情報に基づき統計的にキャッシュヒット率202を決定する。
また、キャッシュヒット率予測部201は、キャッシュヒット率を低下させる所定の処理がなかった場合、ヒット率は上昇していく傾向が高いため、キャッシュヒット率予測部201が、キャッシュヒット率を低下させる所定の処理がなかった場合、キャッシュヒット率が上昇すると予測しキャッシュヒット率202を決定する。
さらに、ヒット率が上昇する割合はアプリケーションによって異なるため、キャッシュヒット率予測部201は、キャッシュヒット率を低下させる所定の処理がなかった場合、アプリケーション毎にキャッシュヒット率が上昇を予測しキャッシュヒット率202を決定する。
また、キャッシュヒット率予測部201は、定期的に起動し、ハードウェア情報を取得し記録し、履歴として保存し、過去に起動したときに記録されたハードウェア情報に基づきキャッシュヒット率予測部201が統計的にキャッシュヒット率202を決定する。
次に、PCU101内のMMUがハードウェア・テーブルウォーク方式のTLBを備えているものとする。命令やデータの時間的局所性が低い場合、TLBのミスヒットが多く発生し、更新頻度が高くなる。この場合、キャッシュヒット率が低い傾向があるため、キャッシュヒット率予測部201は、周期的にTLBをモニタし、TLBの更新頻度が高い場合にキャッシュヒット率が下がると予測し、キャッシュヒット率202を決定する。
さらに、プログラムカウンタを周期的にモニタすることで、命令の空間的局所性が高いかどうかの判断ができ、局所性が低い場合はキャッシュヒット率が低い傾向があるため、キャッシュヒット率予測部201が、周期的にプログラムカウンタをモニタし、命令の局所性に応じてキャッシュヒット率を予測しキャッシュヒット率202を決定する。
また、キャッシュヒット率予測部201は、定期的にキャッシュヒット率モニタ回路103の値を記録し、記録された情報に基づいてキャッシュヒット率を予測しキャッシュヒット率202を決定してもよい。
例えば、図4AのイベントNo.7に示すようにイベントに対応する第2の処理が、実行中のアプリケーションの中断である場合、制御部161は、中断時にアプリケーションのキャッシュヒット率情報を保存する。中断の例として、割り込みなどの例外、他のアプリケーションへ移行などがある。
この後、図4AのイベントNo.8に示すようにイベントに対応する第2の処理が、中断されているアプリケーションの実行が再開する処理である場合、キャッシュヒット率予測部201は、再開時にキャッシュヒット率予測部201が保存されたキャッシュヒット率を利用してキャッシュヒット率202を決定する。その際、アプリケーションが再開までの時間が長いほど、再開時にCPU101のキャッシュに再開されるアプリケーションのデータが残っている可能性が低く、キャッシュヒット率が下がるため、アプリケーションが再開されるまでの時間に基づいて、キャッシュヒット率予測部201はアプリケーションのキャッシュヒット率202を決定する。
例えば、実行すべきアプリケーションが複数存在する時、OSはあるタイミングで実行していたアプリケーション(アプリケーションA)から異なるアプリケーション(アプリケーションB)に切り替えを行う。そして、ある時間が経過した後、再びアプリケーションAに切り替えを行う。この場合も、図4AのイベントNo.7、8と同様に、アプリケーションAからアプリケーションBに切り替えを行うとき、キャッシュヒット率予測部201が、アプリケーションAのキャッシュヒット率を保存する。そして、アプリケーションAが再開されるときに保存されたキャッシュヒット率を利用してキャッシュヒット率202を決定する。
また、図4AのイベントNo.7、8と同様にして、キャッシュヒット率予測部201は、システムコール、または割込みによる例外発生直前まえ実行していたアプリケーションのキャッシュヒット率情報を保存し、その後前記アプリケーションが再開されるときに保存されたキャッシュヒット率情報を利用してキャッシュヒット率を予測しキャッシュヒット率202を決定する。
(実施の形態3)
図10は、実施の形態3における情報処理装置の構成を示すブロック図である。同図は、図7と比べると、マルチプロセッサ構成になっている点が異なる。すなわち、CPU114a〜114c、クロック供給部150a〜150cおよび電源部151a〜151cのセットを複数備えている。
以上のように構成された情報処理装置において、キャッシュヒット率予測部201、周波数決定部203、クロック制御部205は、CPU114a〜114cに対してそれぞれ実装され、CPU114a〜114cの各クロック102は独立に制御することになる。ただし、バスクロック、メモリクロックは、固定にするか、三者の設定を調停する必要がある。バス電圧、メモリ電圧についても固定にするか、三者の設定を調停する必要がある。
(実施の形態4)
本実施形態では、プロセッサにおいてキャッシュヒット率を動的に予測するのではなく、キャッシュヒット率を静的に予測し、予測結果に従ってプログラム中にクロック信号の周波数を指定する命令および電源電圧を指定する命令を追加するプログラム変換装置について説明する。
図9は、第3の実施の形態におけるプログラム変換装置の構成を示すブロック図である。同図のプログラム変換装置は、コンパイラ1、アセンブラ18、リンカ19を備える。コンパイラ1は、構文解析部10、中間コード生成部11、クロック・電圧制御部12、コード生成部13を備える。同図のプログラム変換装置は、機能ブロックの機能を発揮するソフトウェアをコンピュータ上で実行することにより実現される。
コンパイラ1は、高級言語で記述されたプログラムをアセンブリ言語プログラムに変換する。高級言語プログラムは、例えばC言語などである。
構文解析部10は、C言語などの高級言語プログラムP1の構文を解析する。
中間コード生成部11は、解析結果に基づいて高級言語プログラムP1を中間命令(以下単に命令と呼ぶ。)の記述に置き換えた中間コード命令列P2を生成する。
クロック・電圧制御部12は、第1、第2の実施の形態の制御部161に相当し、中間コード命令列P2において、所定のプログラム区間におけるヒット率を予測し、予測したヒット率に応じて、当該プログラム区間におけるクロック信号の周波数を指定する命令および電源電圧を指定する命令を追加する。ここで所定のプログラム区間とは、中間コード命令列P2において、図4A、図4B、図8に示した第2の処理に該当する区間である。
コード生成部13は、クロック・電圧制御部12によって上記命令が追加された中間コード命令列P2からアセンブリ言語の命令列(ニーモニック形式の命令列)を生成する。
また、同図のクロック・電圧制御部12は、プログラム区間検出部14、キャッシュヒット率予測部15、周波数・電圧決定部16、命令挿入部17を備える。
プログラム区間検出部14は、図4A、図4B、図8に示した第2の処理に該当するプログラム区間を検出する。その際、プログラム区間検出部14は、第1および第2実施の形態で示した第1の処理(イベントの発生、システムコール、ソフトウェア割込み)を検出し、それによって開始する(または呼び出される)第2の処理(プログラム区間)を検出するようにしてもよい。
キャッシュヒット率予測部15は、プログラム区間検出部14によって検出されたプログラム区間のキャッシュヒット率を予測する。この予測は、図3のステップS34と同様に、予測テーブル(図4A、図4B等)を参照することによる。
周波数・電圧決定部16は、キャッシュヒット率予測部15によって予測されたヒット率に応じたCPUクロック、バスクロック、メモリクロックそれぞれの周波数を決定し、さらに、予測されたヒット率に応じたCPU電圧、バス電圧、メモリ電圧をそれぞれ決定する。この決定は、図3のステップS36、S38と同様である。
命令挿入部17は、周波数・電圧決定部16によって決定された周波数をクロック供給部に指定する命令と、周波数・電圧決定部16によって決定された電源電圧を電源部に指定する命令とを、プログラム区間検出部14によって検出されたプログラム期間の先頭に追加する。なお、命令挿入部17は、プログラム区間の先頭ではなく、プログラム区間を呼び出す第1の処理の末尾に上記の命令を挿入してもよい。
コード生成部13は、命令挿入部17によって上記の命令が挿入された後の中間コード命令列から、アセンブリ言語の命令列(ニーモニック命令列)を生成する。
アセンブラ18は、アセンブリ言語の命令列を機械語命令列に変換する。
リンカ19は、複数の機械語命令列をリンクし、実行ファイルを生成する。
以上説明してきたように、本実施形態のプログラム変換装置によれば、コンパイルの段階でキャッシュヒット率を静的に予測し、予測結果に従ってプログラム中にクロック信号の周波数を指定する命令および電源電圧を指定する命令を追加する。これにより、プロセッサが動的に上記の命令を挿入することによるオーベーヘッドがなくなり、処理能力を向上させることができる。さらに、本プログラム変換装置により既存のプログラムを変換することによって、第1〜第3実施の形態における制御部161を備えていないCPUに対しても本発明を結果的に適用することができる。
なお、第4の実施形態におけるプログラム変換装置は、コンパイラ内で中間コード命令列P2に対して上記の命令を挿入しているが、この代わりに、(A)高級言語プログラムP1に対して上記の命令に対応するプログラム文(関数など)を挿入する構成としてもよいし、(B)アセンブリ言語命令列に対して、上記の命令に対応するニーモニック命令を挿入するようにしてもよいし、または(C)機械語命令列に対して、上記の命令に対応する機械語命令を挿入するようにしてもよい。また、第1の処理または第2の処理を、上記(A)、(B)、(C)の何れの段階においてより検出しやすいか分類して、分類された第1の処理または第2の処理を対応する段階でクロック・電圧制御部12の処理を実行してもよい。
本発明は、情報処理装置のクロック周波数および電源電圧を制御する制御方法、情報処理装置、プログラム、プログラム変換方法に適しており、特にキャッシュメモリを有するプロセッサと、プロセッサへクロック信号を供給するクロック供給部とを備える情報処理装置、そのオペレーティングシステム用プログラム、その情報処理装置を対象とするコンパイラ、アセンブラなどのプログラム変換装置に適している。
第1の実施形態における情報処理装置の構成を示すブロック図である。 制御部の構成を示すブロック図である。 キャッシュヒット予測部の処理を示すフローチャート図である。 イベントと予測ヒット率を示す予測テーブルを示す図である。 システムコールと予測ヒット率を示す予測テーブルを示す図である。 予想ヒット率に対するクロック周波数テーブルを示す図である。 予想ヒット率に対する電源電圧テーブルを示す図である。 ヒット率の変化と各周波数の変化とを示す図である。 第2の実施形態における情報処理装置の構成を示すブロック図である。 キャッシュヒット予測部の処理を示すフローチャート図である。 イベントと予測ヒット率を示す予測テーブルを示す図である。 第3の実施形態における情報処理装置の構成を示すブロック図である。 第4の実施形態におけるプログラム変換装置の構成を示すブロック図である。 従来の情報処理装置の構造を示すブロック図である。 従来の制御手段を示すブロック図である。
符号の説明
1 コンパイラ
10 構文解析部
11 中間コード生成部
12 電圧制御部
13 コード生成部
14 プログラム区間検出部
15 キャッシュヒット率予測部
16 電圧決定部
17 命令挿入部
18 アセンブラ
19 リンカ
101、101a、101b、101c、114a、114b、114c CPU
102 CPUクロック
103 キャッシュヒット率モニタ回路
104 メモリ
102 CPUクロック
105 バス
106 メモリクロック
107 バスクロック
108 CPU電圧
109 メモリ電圧
110 バス電圧
111 記憶媒体
112 割込みコントローラ
150 クロック供給部
151 電源部
161 制御部
201 キャッシュヒット率予測部
202 キャッシュヒット率
203 周波数決定部
204 周波数
205 クロック制御部
206 電圧決定部
207 電圧
208 電圧制御部
P1 高級言語プログラム
P2 中間コード命令列

Claims (18)

  1. キャッシュメモリを有するプロセッサと、プロセッサへクロック信号を供給するクロック供給部とを備える情報処理装置の制御方法であって、
    前記キャッシュメモリにおけるヒット率を予測する予測ステップと、
    予測したヒット率に応じて、前記クロック信号の周波数を変更するようクロック供給部を制御する制御ステップと
    を有し、
    前記予測ステップにおいて、
    前記プロセッサにおける第1の処理の発生を検出し、
    検出した前記第1の処理の発生によって開始する第2の処理の種類を判別し、
    判別した種類に応じて前記ヒット率を予測する
    ことを特徴とする情報処理装置の制御方法。
  2. 前記予測ステップにおいて、さらに、
    前記第1の処理が所定の時間検出されない場合には前記ヒット率が所定値よりも上がると予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  3. 前記第1の処理は、オペレーティングシステムにおけるイベントであり、
    前記予測ステップにおいて、
    前記第2の処理が記録媒体とメモリとの間のデータ転送を行う処理であると判別された場合に、ヒット率が所定値よりも下がると予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  4. 前記予測ステップにおいて、前記データ転送のサイズに応じてヒット率を予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  5. 前記予測ステップにおいて、さらに、
    前記第2の処理が新たなアプリケーションプログラムの起動であると判別された場合、前記第2の処理がキャッシュメモリのフラッシュであると判別された場合、または前記第2の処理がメモリ間の領域コピーであると判別された場合に、ヒット率が所定値よりも下がると予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  6. 前記情報処理装置は、デマンドロード方式の仮想記憶用に仮想アドレスを実アドレスに変換するメモリ管理部を備え、
    前記第1の処理は、前記メモリ管理部でのアクセス違反であり、
    前記予測ステップにおいて、
    前記第2の処理がデマンドロードを行う処理であると判別された場合に、ヒット率が所定値よりも下がると予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  7. 前記メモリ管理部は、さらに、仮想アドレスと対応する実アドレスとを一時的にキャッシュする、ソフトウェアテーブルウォーク方式のテーブルを有し、
    前記第1の処理は、前記テーブルでのアクセスミスであり、
    前記予測ステップにおいて、
    前記第2の処理が前記テーブルの更新処理であると判別された場合に、ヒット率が所定値よりも下がると予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  8. 前記第1の処理は割込み処理であり、
    前記予測ステップにおいて、
    前記第2の処理が割込みの種類を判別する前処理であると判別された場合に、ヒット率が所定値よりも高いと予測し、
    前記第2の処理が判別された割込みの種類に固有の個別処理であると判別された場合に、ヒット率が所定値よりも低いと予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  9. 前記予測ステップにおいて、さらに、
    前記個別処理が入出力部の制御を行う場合に、前記入出力部の種類を判別し、
    判別した入出力部の種類に応じてヒット率を予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  10. 前記情報処理装置の制御方法は、さらに、割込みの発生頻度を種類別に計測するステップを有し、
    前記予測ステップにおいて、さらに、判別された前記個別処理の発生頻度に応じてヒット率を予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  11. 前記第1の処理はシステムコールであり、
    前記予測ステップにおいて、
    前記第2の処理としてのシステムコール番号を判別し、
    判別された番号に応じてヒット率を予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  12. 前記情報処理装置は、キャッシュメモリのヒット率をモニタするモニタ部を備え、
    前記情報処理装置の制御方法は、さらに、
    アプリケーションプログラムの中断時に、中断したアプリケーションのヒット率を保存する保存ステップを有し、
    前記第1の処理は中断していたアプリケーションプログラムの再開であり、
    前記予測ステップにおいて、
    再開すべきアプリケーションプログラムの種類を判別し、
    判別したアプリケーションプログラムに関して保存されていたヒット率に応じて、再開後のヒット率を予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  13. 前記予測ステップにおいて、中断から再開までの時間に応じてヒット率を予測する
    ことを特徴とする請求項1記載の情報処理装置の制御方法。
  14. 前記情報処理装置は、デマンドロード方式の仮想記憶用に仮想アドレスを実アドレスに変換するメモリ管理部を備え、
    前記メモリ管理部は、さらに、仮想アドレスと対応する実アドレスとを一時的にキャッシュする、ハードウェアウォーク方式のテーブルを有し、
    前記予測ステップにおいて、前記テーブルの更新頻度と、前記過去のヒット率の履歴とに基づいてヒット率を予測する
    ことを特徴とする請求項記載の情報処理装置の制御方法。
  15. 前記情報処理装置は、さらに、前記プロセッサに給電する電源部を有し、
    前記制御ステップは、さらに、前記予測したヒット率に応じて、前記プロセッサに給電する電源電圧を変更するよう前記電源部を制御する
    ことを特徴とする請求項1記載の情報処理装置の制御方法。
  16. キャッシュメモリを有するプロセッサと、
    プロセッサへクロック信号を供給するクロック供給手段と、
    前記キャッシュメモリにおけるヒット率を予測する予測手段と、
    予測したヒット率に応じて、前記クロック信号の周波数を変更するようクロック供給部を制御する制御手段と
    を備え
    前記予測手段は、
    前記プロセッサにおける第1の処理の発生を検出し、
    検出した前記第1の処理の発生によって開始する第2の処理の種類を判別し、
    判別した種類に応じて前記ヒット率を予測する
    ことを特徴とする情報処理装置。
  17. プロセッサへクロック信号を供給するクロック供給部を備えるコンピュータを制御するプログラムであって、
    前記キャッシュメモリにおけるヒット率を予測する予測ステップと、
    予測したヒット率に応じて、前記クロック信号の周波数を変更するようクロック供給部を制御する制御ステップと
    をコンピュータに実行させ
    前記予測ステップにおいて、
    前記プロセッサにおける第1の処理の発生を検出し、
    検出した前記第1の処理の発生によって開始する第2の処理の種類を判別し、
    判別した種類に応じて前記ヒット率を予測する
    コンピュータ読み取り可能なプログラム。
  18. 第1のプログラムを第2のプログラムに変換するプログラム変換方法であって、
    前記第2のプログラムは、キャッシュメモリを有するプロセッサと、プロセッサへクロック信号を供給するクロック供給部とを備える情報処理装置を対象とし
    前記第1のプログラム中の所定区間における前記キャッシュメモリのヒット率を予測する予測ステップと、
    予測したヒット率に応じて、所定区間における前記クロック信号の周波数を指定する命令を前記第1のプログラムに追加することによって、第2プログラムを生成するステップとを含み、
    前記予測ステップにおいて、
    前記プロセッサにおける第1の処理の発生を検出し、
    検出した前記第1の処理の発生によって開始する第2の処理の種類を判別し、
    判別した種類に応じて前記ヒット率を予測する
    ことを特徴とするプログラム変換方法。
JP2006178607A 2006-06-28 2006-06-28 情報処理装置 Expired - Fee Related JP4837456B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006178607A JP4837456B2 (ja) 2006-06-28 2006-06-28 情報処理装置
US11/757,548 US7934114B2 (en) 2006-06-28 2007-06-04 Method of controlling information processing device, information processing device, program, and program converting method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006178607A JP4837456B2 (ja) 2006-06-28 2006-06-28 情報処理装置

Publications (2)

Publication Number Publication Date
JP2008009647A JP2008009647A (ja) 2008-01-17
JP4837456B2 true JP4837456B2 (ja) 2011-12-14

Family

ID=38878312

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006178607A Expired - Fee Related JP4837456B2 (ja) 2006-06-28 2006-06-28 情報処理装置

Country Status (2)

Country Link
US (1) US7934114B2 (ja)
JP (1) JP4837456B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101248002B (zh) * 2005-08-26 2012-01-11 皇家飞利浦电子股份有限公司 封装有锚定盖的微机电装置以及该装置的制造方法
US8719807B2 (en) 2006-12-28 2014-05-06 Intel Corporation Handling precompiled binaries in a hardware accelerated software transactional memory system
US8156363B2 (en) * 2007-07-02 2012-04-10 Panasonic Corporation Information processing device and mobile phone including comparison of power consumption information and remaining power
JP5142868B2 (ja) * 2008-07-17 2013-02-13 株式会社東芝 キャッシュメモリ制御回路及びプロセッサ
EP2323009A1 (en) * 2009-11-13 2011-05-18 SiTel Semiconductor B.V. Electronic device with reduced power consumption in external memory
JP5633564B2 (ja) * 2010-06-23 2014-12-03 富士通株式会社 マルチコアシステムおよび外部入出力バス制御方法
CN103270470B (zh) * 2011-09-21 2016-02-17 英派尔科技开发有限公司 多核***能耗优化
CN103246340A (zh) * 2012-02-06 2013-08-14 索尼公司 动态调整中央处理单元的频率的装置和方法
JP5458132B2 (ja) * 2012-03-13 2014-04-02 株式会社東芝 キャッシュ装置
JP2014021786A (ja) * 2012-07-19 2014-02-03 International Business Maschines Corporation コンピュータ・システム
JP6128833B2 (ja) * 2012-12-25 2017-05-17 キヤノン株式会社 処理装置
US9588570B2 (en) * 2013-04-30 2017-03-07 Samsung Electronics Co., Ltd. Apparatus and method for adjusting bandwidth
US9471088B2 (en) 2013-06-25 2016-10-18 Intel Corporation Restricting clock signal delivery in a processor
US9377836B2 (en) * 2013-07-26 2016-06-28 Intel Corporation Restricting clock signal delivery based on activity in a processor
JP6217008B2 (ja) * 2013-12-27 2017-10-25 高知県公立大学法人 電子機器、制御方法、及び、プログラム
US20150378424A1 (en) * 2014-06-27 2015-12-31 Telefonaktiebolaget L M Ericsson (Publ) Memory Management Based on Bandwidth Utilization
US10928882B2 (en) 2014-10-16 2021-02-23 Futurewei Technologies, Inc. Low cost, low power high performance SMP/ASMP multiple-processor system
US10248180B2 (en) 2014-10-16 2019-04-02 Futurewei Technologies, Inc. Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system
CN105589544A (zh) * 2014-10-20 2016-05-18 中兴通讯股份有限公司 降低中央处理器能耗的方法、装置及终端
US9778871B1 (en) * 2016-03-27 2017-10-03 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US9785371B1 (en) 2016-03-27 2017-10-10 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US20180024610A1 (en) * 2016-07-22 2018-01-25 Futurewei Technologies, Inc. Apparatus and method for setting a clock speed/voltage of cache memory based on memory request information
WO2020245872A1 (ja) * 2019-06-03 2020-12-10 三菱電機株式会社 情報処理装置及び情報処理システム
WO2024043464A1 (ko) * 2022-08-24 2024-02-29 삼성전자주식회사 프로세서에 포함된 각각의 회로들의 주파수들을 조절하기 위한 전자 장치, 방법, 및 컴퓨터 판독 가능 저장 매체

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134077A (ja) 1997-10-30 1999-05-21 Hitachi Ltd データ処理装置及びデータ処理システム
JP3056175B2 (ja) 1998-11-13 2000-06-26 甲府日本電気株式会社 消費電力低減装置
CA2426439A1 (en) * 2003-04-23 2004-10-23 Ibm Canada Limited - Ibm Canada Limitee Identifying a workload type for a given workload of database requests
JP4860104B2 (ja) 2003-10-09 2012-01-25 日本電気株式会社 情報処理装置
KR20050035699A (ko) * 2003-10-14 2005-04-19 삼성전자주식회사 메모리 시스템의 에너지 절감 방법 및 장치
US7925738B2 (en) * 2003-12-18 2011-04-12 Hewlett-Packard Development Company, L.P. Analytical cache performance model for a media server
US7694075B1 (en) * 2005-03-09 2010-04-06 Globalfoundries Inc. System for enabling and disabling cache and a method thereof
US7634678B2 (en) * 2006-02-07 2009-12-15 Omx Technology Ab Application software initiated speedup

Also Published As

Publication number Publication date
JP2008009647A (ja) 2008-01-17
US20080005607A1 (en) 2008-01-03
US7934114B2 (en) 2011-04-26

Similar Documents

Publication Publication Date Title
JP4837456B2 (ja) 情報処理装置
KR101467135B1 (ko) 동적 전압 펄스 스킴에 의한 개선된 전력 전송 성능을 위한 장치, 방법 및 시스템
JP5989908B2 (ja) 不揮発性メモリにコードをキャッシュする方法、システムおよび装置
KR100933820B1 (ko) 메모리 속성들을 사용하기 위한 기술
JP4064924B2 (ja) メモリアクセスを制御する方法及び装置
US8595525B2 (en) On-chip thermal management techniques using inter-processor time dependent power density data for indentification of thermal aggressors
JP2007011580A (ja) 情報処理装置
US8874853B2 (en) Local and global memory request predictor
US20130036426A1 (en) Information processing device and task switching method
US20110208916A1 (en) Shared cache controller, shared cache control method and integrated circuit
JPWO2012014285A1 (ja) 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム
KR20210035311A (ko) 프로세서의 필터링된 분기 예측 구조
US20140053012A1 (en) System and detection mode
JP3935873B2 (ja) プリフェッチ・バッファを用いたメモリ電力管理
CN115576734B (zh) 一种多核异构日志存储方法和***
JP4594889B2 (ja) 複数の処理装置を備えたシステム上で実行されるプログラムのトレース方法、および、複数の処理装置を備えたシステム
JP2004192052A (ja) ソフトウェア処理方法およびソフトウェア処理システム
JP4846226B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US7496740B2 (en) Accessing information associated with an advanced configuration and power interface environment
JP5577518B2 (ja) メモリ管理方法、計算機及びメモリ管理プログラム
JP5896066B2 (ja) プロセッサシステム、および制御プログラム
JP2014059661A (ja) 情報処理装置及びその制御方法、プログラム
US20110185104A1 (en) Merging Subsequent Updates To A Memory Location
JP5644539B2 (ja) プロセッサ、情報処理装置、情報処理方法及びシステム起動プログラム
JP2009116885A (ja) コンピュータ及び制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110808

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110913

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110928

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees