(57)【要約】  任意の領域をローカルメモリ又はキャッシュメモリとして切り替えて使用可能な内蔵メモリにおいて、従来の静的なメモリアクセスの解析でメモリ構成を決定する手法では、他のバスマスタデバイスの動作、省電力状態の変化、他のソフトの動作等によるメモリ利用効率の変化を検知し、最適なメモリ構成をとる事ができないという問題があった。本発明の情報処理装置は、内蔵メモリと外部メモリの利用状況の変化を検出するための計測部と、計測部の計測結果を監視し、内蔵メモリの構成を変更、内蔵メモリと外部メモリに格納されたデータを移動、ＣＰＵとその他のバスマスタデバイスの使用する内蔵メモリ又は外部メモリの領域を変更する制御部を備え、静的な解析では予測できない、メモリ利用効率の変化を検出し、最適なメモリ構成を維持することができる。
2011045931.tif 000002
【特許請求の範囲】
【請求項１】
任意の領域をローカルメモリ又はキャッシュメモリとして切り替えて使用可能な第一の記憶手段と、
前記第一の記憶手段と異なる第二の記憶手段と、
前記第一の記憶手段と前記第二の記憶手段の利用状況の変化を検出するための計測部と、
前記計測部の計測結果を元に前記第一の記憶手段の構成を変更する第一の変更手段と、
前記第一の記憶手段又は前記第二の記憶手段に格納されたデータを移動する移動手段と、
情報処理手段が使用する前記第一の記憶手段又は前記第二の記憶手段の領域を変更する第二の変更手段と、を有する情報処理装置。
【請求項２】
前記移動手段は、前記第一の変更手段により前記第一の記憶手段の構成を変更した場合に、前記情報処理手段が使用している領域のデータを移動させ、
前記第二の変更手段は、前記情報処理手段に移動先のデータ領域を使用させることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記計測部が、ＣＰＵのメモリ利用効率を計測する手段を有する請求項１記載の情報処理装置。
【請求項４】
前記ＣＰＵのメモリ利用効率を計測する手段が、キャッシュの利用効率を計測する手段であることを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記キャッシュの利用効率を計測する手段は、キャッシュヒット率、またはキャッシュアクセス数を計測することを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記ＣＰＵのメモリ利用効率を計測する手段が、ＣＰＵの状態を計測する手段であることを特徴とする請求項３記載の情報処理装置。
【請求項７】
前記ＣＰＵの状態を計測する手段は、ＣＰＵの負荷率、または周波数を計測することを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記ＣＰＵのメモリ利用効率を計測する手段が、ソフトウェアの状態を計測する手段であることを特徴とする請求項３記載の情報処理装置。
【請求項９】
前記ソフトウェアの状態を計測する手段は、実行されているプロセス、または実行されているプロセス内部の状態を計測することを特徴とする請求項８記載の情報処理装置。
【請求項１０】
前記ＣＰＵのメモリ利用効率を計測する手段が、ワーキングセットサイズを計測する手段であることを特徴とする請求項３記載の情報処理装置。
【請求項１１】
前記計測部が、バスの利用効率を計測する手段を有する請求項１記載の情報処理装置。
【請求項１２】
前記バスの利用効率を計測する手段が、表示状態を計測する手段であることを特徴とする請求項１１記載の情報処理装置。
【請求項１３】
前記表示状態を計測する手段は、ＶＲＡＭサイズ、または表示更新頻度を計測することを特徴とする請求項１２記載の情報処理装置。
【請求項１４】
前記バスの利用効率を計測する手段が、バス占有率を計測する手段であることを特徴とする請求項１１記載の情報処理装置。
【請求項１５】
前記計測部が、各種イベントを計測する手段を有する請求項１記載の情報処理装置。
【請求項１６】
前記各種イベントを計測する手段が、割込みを計測する手段であることを特徴とする請求項１５記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置においてパフォーマンスを向上させるために用いるメモリ、バスの制御技術に関連する。
【背景技術】
【０００２】
従来、情報処理装置のキャッシュメモリには任意の領域をローカルメモリとして割り当てる手段を有し、処理内容に最適なメモリ構成をもつことが可能である内蔵メモリが知られている。（特許文献１)【０００３】
一般的に、内蔵メモリは外部接続のメモリと比較して高速、低消費電力であるため、内蔵メモリを有効に利用できるようにメモリ構成を変更することで情報処理装置のパフォーマンスは向上する。【０００４】
しかしながら、最適なメモリ構成は情報処理装置上で実行される処理の内容により異なるため、最適なメモリ構成を維持することは困難である。【０００５】
この最適なメモリ構成を維持するための手段としては、コンパイル時に処理内容を解析し、処理内容をいくつかのフェーズに分割し、各フェーズにおいて最適なメモリ構成を導き出し、メモリ構成を切り替えるコードを生成するという手法が知られている。（特許文献２）
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】日本国特開２００１−３３１３７０号公報
【特許文献２】日本国特開２００８−１０２７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献２に記載された手法は、コンパイル時の静的なメモリアクセスの解析であるため、生成されたプログラムが単独でＣＰＵを占有し動作するシステムでは対応可能であるが、他のバスマスタデバイスの動作、省電力状態の変化、他のソフトの動作等によるメモリ利用効率の変化を検知し、最適なメモリ構成をとることができないという問題があった。【０００８】
例えば、キャッシュヒットによる性能向上が期待できる処理をＣＰＵ単体で行う場合は、内蔵メモリの大部分をキャッシュメモリとして利用することで処理速度の向上が期待できるが、他のバスマスタデバイスが頻繁にメモリにアクセスする処理を行っており、その処理がＣＰＵの行っている処理よりも優先度の高い処理であるような場合。キャッシュメモリを開放してローカルメモリとして割り当て、そのバスマスタデバイスに使用させたほうが効率が良い。【０００９】
本発明は、このような従来の問題に鑑みてなされたものであり、予め、動作の予測できないメモリ利用効率の低下を動的に検知し、キャッシュメモリ、ローカルメモリの割り当てサイズを再構成することで、パフォーマンスを向上させることができる情報処理装置を提供するものである。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、システムオンチップの内蔵メモリ（第一の記憶手段）と、システムオンチップに接続された外部メモリ（第二の記憶手段）と、前記第一の記憶手段と前記第二の記憶手段の利用状況の変化を検出するための計測部と、前記計測部の計測結果を元に前記第一の記憶手段の構成を変更する第一の変更手段と、前記第一の記憶手段又は前記第二の記憶手段に格納されたデータを移動する移動手段と、ＣＰＵとその他のバスマスタデバイス（情報処理手段）が使用する前記第一の記憶手段又は前記第二の記憶手段の領域を変更する第二の変更手段を備える。【００１１】
この構成により、メモリの利用効率の変化を元に内蔵メモリの構成を動的に変更させ、ＣＰＵとその他のバスマスタデバイスに外部メモリよりも内蔵メモリを優先的に使用させることで処理速度、外部メモリのバスの逼迫、消費電力を改善することができる。【００１２】
この構成の計測部はキャッシュメモリのヒット率、アクセス数を計測する物であってもよい。この構成ではキャッシュメモリの不足から生じるＣＰＵ処理速度の低下を改善することができる。また、キャシュメモリが過剰な場合に、キャッシュメモリをローカルメモリとして他のバスマスタデバイスに開放することができる。【００１３】
この構成の計測部はＣＰＵの負荷率、動作周波数を計測する物であってもよい。この構成ではＣＰＵの稼動率が高くキャッシュメモリが不足している場合に、キャッシュメモリの不足から生じるＣＰＵ処理速度の低下を改善することができる。また、ＣＰＵの稼働率が低く、ＣＰＵに不要なキャッシュメモリが割り当てられている場合に、キャッシュメモリをローカルメモリとして他のバスマスタデバイスに開放することができる。【００１４】
この構成の計測部はＶＲＡＭサイズ、画面更新の頻度を計測する物であってもよい。この構成ではグラフィックコントローラのＶＲＡＭ使用状況を検知し、ＶＲＡＭのアクセス増加により表示性能が低下した場合に、ローカルメモリのサイズを増加し、ＶＲＡＭとして使用させることで、表示性能の低下を改善することができる。また、ローカルメモリをＶＲＡＭとして使用中にＶＲＡＭサイズが減った場合に、ローカルメモリを他のバスマスタデバイスに開放、或いはキャッシュとしてＣＰＵに開放することができる。【００１５】
この構成の計測部は実行しているプロセスの種別、プロセス内の状態変化を計測する物であってもよい。この構成ではＣＰＵの実行しているソフウェアの変化から、メモリ利用効率を予測し最適なメモリ構成を持つことでＣＰＵ処理速度を向上させることができる。また、ＣＰＵが内蔵メモリをあまり必要としない状態では、キャッシュメモリをローカルメモリとして他のバスマスタデバイスに開放することができる。【００１６】
この構成の計測部はバス帯域の占有率を計測する物であってもよい。この構成ではバスの帯域が足りずに処理速度が落ちているバスマスタデバイス(ＣＰＵ含む)へ内蔵メモリを使用させることで、これらの処理速度を向上させることができる。また、バス占有率が低いバスマスタデバイスが無駄に使用している内蔵メモリを他のバスマスタデバイスに開放することができる。【００１７】
この構成の計測部はＣＰＵのワーキングセットを計測する物であってもよい。この構成ではワーキングセットの増加に応じて、ＣＰＵに多くのキャッシュメモリを割り当てることでＣＰＵの処理速度を向上させることができる。また、ワーキングセットが減少した場合に、キャッシュメモリをローカルメモリとして他のバスマスタデバイスに開放することができる。【００１８】
この構成の計測部は割込みイベントを計測する物であってもよい。この構成ではイベントをトリガとしたメモリ使用状況の変化に対応し、最適なメモリ構成を維持することができる。
【発明の効果】
【００１９】
本発明の情報処理装置に拠れば、静的な解析では予測できない、メモリ利用効率変化を検出し、動的に第一の記憶手段の構成を変更し、情報処理手段の使用するメモリ領域を移動、再配置し、最適なメモリ構成を維持することができる。このことにより、情報処理手段の処理速度の向上、バス帯域の負荷の軽減と消費電力の減少というパフォーマンスの向上を得ることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態１における情報処理装置の概略構成図
【図２】本発明の実施の形態１における情報処理装置の動作を説明するフローチャート図
【図３】本発明の実施の形態２における情報処理装置の概略構成図
【図４】本発明の実施の形態２における情報処理装置の動作を説明するフローチャート図
【図５】本発明の実施の形態２における情報処理装置のメモリ構成テーブルを示す図
【図６】本発明の実施の形態３における情報処理装置の概略構成図
【図７】本発明の実施の形態３における情報処理装置の動作を説明するフローチャート図
【図８】本発明の実施の形態３における情報処理装置のメモリ構成テーブルを示す図
【図９】本発明の実施の形態４における情報処理装置の概略構成図
【図１０】本発明の実施の形態４における情報処理装置の動作を説明するフローチャート図
【図１１】本発明の実施の形態４における情報処理装置のメモリ構成テーブルを示す図
【図１２】本発明の実施の形態５における情報処理装置の概略構成図
【図１３】本発明の実施の形態５における情報処理装置の動作を説明するフローチャート図
【図１４】本発明の実施の形態６における情報処理装置の概略構成図
【図１５】本発明の実施の形態６における情報処理装置の動作を説明するフローチャート図
【図１６】本発明の実施の形態７における情報処理装置の概略構成図
【図１７】本発明の実施の形態７における情報処理装置の動作を説明するフローチャート図
【図１８】本発明の実施の形態７における情報処理装置の状態遷移とメモリ構成のテーブルを示す図
【発明を実施するための形態】
【００２１】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００２２】
（実施の形態１）
図１は本発明の実施の形態１における情報処理装置の概略構成図、図２は同情報処理装置の動作を説明するフローチャートである。
【００２３】
本発明の実施の形態１における情報処理装置は、図１に示すように、ＣＰＵ１０１（情報処理手段）と、内蔵メモリ１０２（第一の記憶手段）と、外部メモリ１０３（第二の記憶手段）と、ＣＰＵではない他のバスマスタデバイス１０４（情報処理手段）と、内蔵メモリ１０２の状態を計測するキャッシュ計測部１０６と、制御部１０５（第一の変更手段、移動手段、第二の変更手段）と、ＣＰＵ１０１と内蔵メモリ１０２を接続する内部バス１０８と、内蔵メモリ１０２とバスマスタデバイス１０４と外部メモリ１０３を接続する外部バス１０７とを備えている。
【００２４】
そして、制御部１０５はキャッシュ計測部１０６の計測値を監視しメモリ利用効率の向上が期待できる場合に内蔵メモリ１０２のメモリ構成を変更する第一の変更手段と、メモリ構成を変更する際にＣＰＵ１０１とバスマスタデバイス１０４が使用している内蔵メモリ１０２と外部メモリ１０３のデータを移動する移動手段と、移動先の領域をＣＰＵ１０１とバスマスタデバイス１０４へ使用させる第二の変更手段を備えるように構成される。
【００２５】
次に、本実施の形態について、その動作を、図２を用いて説明する。
【００２６】
図２に示すように、情報処理装置の起動処理において、制御部１０５は内蔵メモリ１０２のキャシュメモリとローカルメモリの初期割り当てを行い（Ｓ１０１）、その後一定時間（Ｓ１０２）ごとにキャッシュヒット率を計測する（Ｓ１０３）。
【００２７】
ここで、制御部１０５はキャッシュヒット率が一定以上の数値（例えば、９０％以上）である場合は、キャッシュメモリのサイズが過剰である可能性があると判断されるため（Ｓ１０４）、キャッシュメモリを減らす処理を行う。次に、現在のキャッシュメモリ割り当てサイズを判定し（Ｓ１０５）、キャッシュメモリのサイズを減少させることができる（例えば、内蔵メモリ１０２のキャッシュ割り当てサイズが５％以下）場合は内蔵メモリ１０２の構成を変更しキャッシュメモリを（例えば、５％）減少させローカルメモリを増加させる（Ｓ１０６）。次に、新たに割り当てたローカルメモリを他のバスマスタデバイスに使用させるため現在バスマスタデバイス１０４が使用している外部メモリ１０３の領域のデータをローカルメモリへ移動し、バスマスタデバイス１０４の設定を変更しローカルメモリのデータの移動先の領域を使用させる。
【００２８】
一方、制御部１０５はキャッシュヒット率が一定未満の数値（例えば、９０％未満）である場合は、キャッシュメモリのサイズが不足している可能性があると判断されるため（Ｓ１０４）、キャッシュメモリを増加させる処理を行う。現在のキャッシュメモリ割り当てサイズを判定し（Ｓ１０８）、キャッシュメモリのサイズを増加させることができる（例えば、内蔵メモリ１０２のキャッシュ割り当てサイズが９５％以下）場合はローカルメモリをキャッシュメモリに割り当てるため、現在バスマスタデバイス１０４が使用しているローカルメモリの領域のデータを外部メモリ１０３へ移動し、バスマスタデバイス１０４の設定を変更し外部メモリ１０３のデータの移動先の領域を使用させる（Ｓ１０９）。内蔵メモリ１０２の構成を変更しキャッシュサイズを（例えば、５％）増加させローカルメモリを減少させる（Ｓ１１０）。
【００２９】
このように、本実施の形態によればキャッシュの利用効率から、内蔵メモリ１０２の構成を変更することができるため、キャッシュメモリサイズが不足している場合にキャッシュメモリを増加、ローカルメモリを減少させ、ＣＰＵ１０１の処理速度を向上させることができる。また、過剰にキャッシュメモリが割り当てられている場合にキャッシュメモリサイズを減少、ローカルメモリを増加させ他のバスマスタデバイス１０４に開放することができる。
【００３０】
（実施の形態２）
図３は本発明の実施の形態２における情報処理装置の概略構成図、図４は同情報処理装置の動作を説明するフローチャート、図５はキャッシュメモリとローカルメモリの構成を示すテーブルである。
【００３１】
本発明の実施の形態２における情報処理装置は、図３に示すように、構成要素２０１〜２０５、２０７、２０８は実施の形態１の構成要素１０１〜１０５、１０７、１０８と同等であるが、ＣＰＵ２０１の状態を計測するＣＰＵ計測部２０６を備えている。
【００３２】
次に、本実施の形態について、その動作を、図４を用いて説明する。
【００３３】
図４に示すように、情報処理装置の起動処理において、制御部２０５は内蔵メモリ２０２のキャッシュメモリとローカルメモリの初期割り当てを行い（Ｓ２０１）、その後一定時間（Ｓ２０２）ごとにＣＰＵ周波数と負荷率を計測する（Ｓ２０３）。
【００３４】
制御部２０５はＣＰＵ２０１の周波数と負荷率を元に図５で示すテーブルを用いてキャシュメモリとローカルメモリの割り当てサイズを決定する（Ｓ２０４）。ここで、ＣＰＵ２０１の周波数と負荷率が低く、稼働率が低い状態であるほどＣＰＵ２０１のメモリアクセスの頻度は減少してキャッシュメモリは不要に、逆に周波数と負荷率が高く、稼働率が高い状態であるほどＣＰＵ２０１のメモリアクセスの頻度は増加しキャッシュメモリが必要になる。そのため、テーブルはＣＰＵ２０１の周波数と負荷率が高いとキャッシュメモリのサイズが大きく、ＣＰＵ２０１の周波数と負荷率が低いとキャッシュメモリのサイズが小さくなるように、構成されている。
【００３５】
次に、制御部２０５はキャッシュメモリの現在の割り当てサイズと今回決定したサイズを比較し（Ｓ２０５）、キャッシュメモリのサイズが減少する場合は内蔵メモリ２０２の構成を変更しキャッシュメモリを減少させローカルメモリを増加させる（Ｓ２０６）。新たに割り当てたローカルメモリを他のバスマスタデバイスに使用させるため現在バスマスタデバイス２０４が使用している外部メモリ２０３の領域のデータをローカルメモリへ移動し、バスマスタデバイス２０４の設定を変更しローカルメモリのデータの移動先の領域を使用させる（Ｓ２０７）。キャッシュメモリのサイズが増加する場合はローカルメモリをキャッシュに割り当てるため、現在バスマスタデバイス２０４が使用しているローカルメモリの領域のデータを外部メモリ２０３へ移動し、バスマスタデバイス２０４の設定を変更し外部メモリ２０３のデータの移動先の領域を使用させる（Ｓ２０８）。内蔵メモリ２０２の構成を変更しキャッシュサイズを増加させローカルメモリを減少させる（Ｓ２０９）。
【００３６】
このように、本実施の形態によればＣＰＵ２０１の動作状況から、内蔵メモリ２０２の構成を変更することができるため、低消費電力状態で休止状態であるようなＣＰＵ２０１の稼動率が低くキャッシュメモリが必要でない場合にキャッシュメモリを減少、ローカルメモリを増加させ、他のバスマスタデバイス２０４に開放することができる。また、ＣＰＵ２０１の稼働率が上がりＣＰＵ２０１がキャッシュメモリを必要とする場合に、ローカルメモリを減少、キャッシュメモリを増加させ、ＣＰＵ２０１の処理速度を向上させることができる。
【００３７】
（実施の形態３）
図６は本発明の実施の形態３における情報処理装置の概略構成図、図７は同情報処理装置の動作を説明するフローチャート、図８はキャッシュメモリとローカルメモリの構成を示すテーブルである。
【００３８】
本実施の形態における情報処理装置は、図６に示すように、構成要素３０１〜３０３、３０５、３０７、３０８は実施の形態１の構成要素１０１〜１０３、１０５、１０７、１０８と同等であるが、グラフィックコントローラ３０４（情報処理手段）と、内蔵メモリ３０２と外部メモリ３０３のＶＲＡＭの状態を計測するＶＲＡＭ計測部３０６とを備えている。
【００３９】
次に、本実施の形態について、その動作を、図７を用いて説明する。
【００４０】
図７に示すように、情報処理装置の起動処理において、制御部３０５は内蔵メモリ３０２のキャッシュメモリとローカルメモリの初期割り当てを行い（Ｓ３０１）、その後一定時間（Ｓ３０２）ごとにＶＲＡＭのサイズと更新回数を計測する（Ｓ３０３）。
【００４１】
制御部３０５はＶＲＡＭのサイズと更新回数を元に図５で示すテーブルを用いてキャシュメモリとローカルメモリの割り当てサイズを決定する（Ｓ３０４）。
【００４２】
グラフィックコントローラ３０４のメモリアクセスの頻度はＶＲＡＭのサイズが小さく、更新回数が少ないほど減少し、逆にＶＲＡＭのサイズが大きく、更新回数が多いほど増加する。グラフィックコントローラ３０４のメモリアクセスが増加した場合にその描画性能の低下を防ぐには、ＶＲＡＭのローカルメモリ割り当てを増加させればよい。そのため、テーブルはＶＲＡＭのサイズが大きく、更新回数が多いとローカルメモリのサイズが大きく、ＶＲＡＭのサイズが大きく、更新回数が多いとローカルメモリのサイズが小さくなるように、構成されている。
【００４３】
以降の制御（Ｓ３０５〜Ｓ３０９）は実施の形態２のバスマスタデバイス２０４がグラフィックコントローラ３０４に置き換わっただけで、実施の形態２の制御（Ｓ２０５〜Ｓ２０９）と同等である。
【００４４】
このように、本実施の形態によればＶＲＡＭの状態から、内蔵メモリ３０２の構成を変更することができるため、画面サイズが大きく、描画更新回数が多い場合に、キャッシュメモリを減少、ローカルメモリを増加させてＶＲＡＭとして使用することで、ＶＲＡＭのアクセス性能を向上させ、グラフィックコントローラ３０４の描画性能を一定以上に保つことができる。また、画面サイズが小さく、描画更新回数が少なくグラフィックコントローラ３０４の描画性能が低くても良い場合に、ＶＲＡＭとして割り当てられているローカルメモリを減少、キャッシュメモリを増加させ、ＣＰＵ３０１の処理速度を向上させることができる。
【００４５】
（実施の形態４）
図９は本発明の実施の形態４における情報処理装置の概略構成図、図１０は同情報処理装置の動作を説明するフローチャート、図１１はキャッシュメモリとローカルメモリの構成を示すテーブルである。
【００４６】
本発明の実施の形態４における情報処理装置は、図９に示すように、構成要素４０１〜４０５、４０７、４０８は実施の形態１の構成要素１０１〜１０５、１０７、１０８と同等であるが、ＣＰＵ４０１と内蔵メモリ４０２と外部メモリ４０３からプロセスの状態を計測するプロセス計測部４０６を備えている。
【００４７】
プロセス計測部４０６はＣＰＵ４０１で実行されるＯＳにより、ＣＰＵ４０１と内蔵メモリ４０２と外部メモリ４０３を計測することで、プロセスの状態を計測することができるよう構成される。
【００４８】
次に、本実施の形態について、その動作を、図１０を用いて説明する。
【００４９】
図１０に示すように、情報処理装置の起動処理において、制御部４０５は内蔵メモリ４０２のキャシュメモリとローカルメモリの初期割り当てを行い（Ｓ４０１）、プロセスの状態の変化を監視する（Ｓ４０２）。プロセス状態の変化を検出すると、実行プロセスとそのプロセスの状態を計測する（Ｓ４０３）。
【００５０】
制御部４０５は実行プロセスとそのプロセスの状態を元に図で示すテーブルを用いてキャシュメモリとローカルメモリの割り当てサイズを決定する（４０４）。
【００５１】
ＣＰＵ４０１のメモリアクセスは実行しているプロセスにより異なり、また、同じプロセスでも、そのプロセスの状態によっても異なる。ポーリング処理を行っているプロセスはＣＰＵ４０１を長期に占有するにも関わらずメモリは使用しないため、キャッシュメモリは少なくてよい。そのため、テーブルはメモリアクセスが多いプロセスの実行、プロセスの状態では、キャッシュメモリのサイズが大きく、メモリアクセスが少ないプロセスの実行、プロセスの状態では、キャッシュメモリのサイズが小さくなるように、構成されている。
【００５２】
以降の制御（Ｓ４０５〜Ｓ４０９）は実施の形態２の制御（Ｓ２０５〜Ｓ２０９）と同等である。
【００５３】
このように、本実施の形態によればプロセスの状態から、内蔵メモリ４０２の構成を変更することができるため、メモリアクセスが多いプロセスの実行時にキャッシュメモリを増加、ローカルメモリを減少させ、そのプロセスのメモリアクセス性能を向上させることができる。また、メモリアクセスが少なくプロセスの実行時に、キャッシュメモリサイズを減少、ローカルメモリを増加させ他のバスマスタデバイス４０４に開放することができる。
【００５４】
（実施の形態５）
図１２は本発明の実施の形態５における情報処理装置の概略構成図、図１３は同情報処理装置の動作を説明するフローチャートである。
【００５５】
本発明の実施の形態５における情報処理装置は、図１２に示すように、構成要素５０１〜５０５、５０７、５０８は実施の形態１の構成要素１０１〜１０５、１０７、１０８と同等であるが、外部バス５０７と内部バス５０８を計測するバス計測部５０６を備えている。
【００５６】
バス計測部５０６は外部バス５０７と内部バス５０８の信号線を監視し、一定時間毎にバスを占有しているバスマスタ（ＣＰＵ５０１含む）を集計しバスの占有率を計測することができるように構成される。
【００５７】
次に、本実施の形態について、その動作を、図１３を用いて説明する。
【００５８】
図１３に示すように、情報処理装置の起動処理において、制御部５０５は内蔵メモリ５０２のキャシュメモリとローカルメモリの初期割り当てを行い（Ｓ５０１）、その後一定時間（Ｓ５０２）毎に各バスマスタのバス占有率を計測する（Ｓ５０３）。
【００５９】
制御部５０５は各バスマスタのバス占有率から各バスマスタの使用するメモリ領域を内蔵メモリ５０２と外部メモリ５０３へ振り分ける。この際、内蔵メモリ５０２の方が高性能であることから、バス占有率が高くメモリに頻繁にアクセスするバスマスタに優先的に内蔵メモリ５０２に割り当てる。内蔵メモリ５０２を使用するバスマスタがＣＰＵ５０１である場合はその使用領域をキャッシュに、他のバスマスタデバイス５０４である場合は、ローカルメモリとして割り当てる。そして、内蔵メモリ５０２のサイズ又は帯域が足りない場合は、外部メモリ５０３の領域を割り当てる（Ｓ５０４）。
【００６０】
以降の制御（Ｓ５０５〜Ｓ５０９）は実施の形態２の制御（Ｓ２０５〜Ｓ２０９）と同等である。
【００６１】
このように、本実施の形態によればバスの利用状況から、内蔵メモリ５０２の構成を変更し、バスの占有を内部バス５０８と外部バス５０７へと分散させ、バス帯域が足りずにバスマスタの性能が出せない場合の処理速度低下を改善すること、高性能な内蔵メモリ５０２を優先的に使用することができる。
【００６２】
なお、本実施の形態では、バス計測部５０６の計測するバスマスタデバイスは複数あっても良い。このようにすればDSPやDMA等複数のバスマスタデバイスの使用バスが競合し、性能が出せない場合の処理速度低下を改善することができる。
【００６３】
（実施の形態６）
図１４は本発明の実施の形態６における情報処理装置の概略構成図、図１５は同情報処理装置の動作を説明するフローチャートである。
【００６４】
本発明の実施の形態６における情報処理装置は、図１４に示すように、構成要素６０１〜６０５、６０７、６０８は実施の形態１の構成要素１０１〜１０５、１０７、１０８と同等であるが、内部バス６０８からＣＰＵ６０１のワーキングセットを計測するワーキングセット計測部６０６を備えている。
【００６５】
ワーキングセット計測部６０６は内部バス６０８のアドレス信号を一定時間毎に集計しその間のワーキングセットを計測することができるよう構成される。
【００６６】
次に、本実施の形態について、その動作を、図１５を用いて説明する。
【００６７】
図１５に示すように、情報処理装置の起動処理において、制御部６０５は内蔵メモリ６０２のキャシュメモリとローカルメモリの初期割り当てを行い（Ｓ６０１）、その後一定時間（Ｓ６０２）ごとにワーキングセットを計測する（Ｓ６０３）。
【００６８】
ＣＰＵ６０１に割り当てるキャッシュメモリのサイズは、ワーキングセットのサイズ以上あっても無駄である。そのため、制御部６０５はＣＰＵ６０１のワーキングセットと内蔵メモリ６０２のサイズを比較し（Ｓ６０４）、ワーキングセットが内蔵メモリ６０２のサイズ以下である場合は、キャッシュメモリのサイズをワーキングセット同じ、残りをローカルメモリと決定し（Ｓ６０５）、ワーキングセットが内蔵メモリ６０２のサイズを超えている場合は、キャッシュメモリのサイズを内蔵メモリ６０２の全て、ローカルメモリは０と決定する。
【００６９】
以降の制御（Ｓ６０７〜Ｓ６１１）は実施の形態２の制御（Ｓ２０５〜Ｓ２０９）と同等である。
【００７０】
このように、本実施の形態によればワーキングセットから、内蔵メモリ６０２の構成を変更することができるため、必要な分だけのキャッシュメモリをＣＰＵ６０１へ割り当て、ＣＰＵ６０１の処理速度を向上させることができる。また、不要なキャッシュをローカルメモリに割り当てることで、他のバスマスタデバイス６０４に開放することができる。
【００７１】
（実施の形態７）
図１６は本発明の実施の形態７における情報処理装置の概略構成図、図１７は同情報処理装置の動作を説明するフローチャート、図１８は状態遷移とキャッシュメモリとローカルメモリの構成を示すテーブルである。
【００７２】
本発明の実施の形態７における情報処理装置は、図１６に示すように、構成要素７０１〜７０５、７０７、７０８は実施の形態１の構成要素１０１〜１０５、１０７、１０８と同等であるが、各種ペリフェラル７１０と、各種ペリフェラル７１０の信号からＣＰＵ７０１へ割り込みを発生させる割り込みコントローラ７０９と、割り込みコントローラ７１０の発生させる割り込みを計測する割り込み計測部７０６と、を備えている。
【００７３】
次に、本実施の形態について、その動作を、図１７を用いて説明する。
【００７４】
図１７に示すように、情報処理装置の起動処理において、制御部７０５は内蔵メモリ７０２のキャシュメモリとローカルメモリの初期割り当てを行い（Ｓ７０１）、その後各種ペリフェラル７１０の状態が変化し、割り込みコントローラ７０９がＣＰＵ７０１へ割り込みを発生させると（Ｓ７０２）、その割り込み種別を計測する（Ｓ７０３）。
【００７５】
制御部７０５は現在の状態と割り込み種別からテーブルを用いて状態遷移を行い（Ｓ７０４）、キャシュメモリとローカルメモリの割り当てサイズを決定する（Ｓ７０５）。テーブルは現在の状態と発生した割り込みから、最適なメモリ構成を持つように構成される。以下に例を挙げる。情報処理装置が省電力状態で、キー割り込みが発生した場合、その復帰処理のため、ＣＰＵ７０１に多くのキャッシュを割り当てる。一方、情報処理装置が動画再生状態で、キー割り込みが発生した場合は、グラフィックコントローラ、DSP等のバスマスタデバイス７０４のメモリアクセス性能を確保するためそれらの使用するローカルメモリのサイズを一定サイズ確保する。
【００７６】
以降の制御（Ｓ７０６〜Ｓ７１０）は実施の形態２の制御（Ｓ２０５〜Ｓ２０９）と同等である。
【００７７】
このように、本実施の形態によれば割り込み種別から、情報処理装置の状態を判定し、その状態に適した内蔵メモリの構成を維持することができるため、ＣＰＵとその他バスマスタの処理性能のメモリアクセス性能を確保することができる。
【００７８】
本発明を詳細にまた特定の実施態様を参照して説明したが、本発明の精神と範囲を逸脱することなく様々な変更や修正を加えることができることは当業者にとって明らかである。
【００７９】
本出願は、２００９年１０月１４日出願の日本特許出願（特願２００９−２３６９４１）、に基づくものであり、その内容はここに参照として取り込まれる。
【産業上の利用可能性】
【００８０】
本発明の情報処理装置は、任意の領域をローカルメモリ又はキャッシュメモリとして切り替えて使用可能な第一の記憶手段と、前記第一の記憶手段と異なる第二の記憶手段と、前記第一の記憶手段と前記第二の記憶手段の利用状況の変化を検出するための計測部と、前記計測部の計測結果を元に前記第一の記憶手段の構成を変更する第一の変更手段と、前記第一の記憶手段又は前記第二の記憶手段に格納されたデータを移動する移動手段と、情報処理手段が使用する前記第一の記憶手段又は前記第二の記憶手段の領域を変更する第二の変更手段を備える。【００８１】
制御部は計測部の計測結果を監視し、第一の変更手段と、移動手段、第二の変更手段を有するため、情報処理装置の状態から、最適なメモリ構成に変更することができる。【００８２】
したがって、メモリ利用状況が処理内容により大きく異なる情報処理装置においても、処理性能を確保することができ、動画や音声データのリアルタイムデコードや、休止状態等の処理を行う携帯電話や、PC等の情報処理装置に有用である。
【符号の説明】
【００８３】
１０１、２０１、３０１、４０１、５０１、６０１、７０１    ＣＰＵ
１０２、２０２、３０２、４０２、５０２、６０２、７０２    内蔵メモリ
１０３、２０３、３０３、４０３、５０３、６０３、７０３    外部メモリ
１０４、２０４、４０４、５０４、６０４、７０４    バスマスタデバイス
３０４    グラフィックコントローラ
１０５、２０５、３０５、４０５、５０５、６０５、７０５    制御部
１０６    キャッシュ計測部
１０７、２０７、３０７、４０７、５０７、６０７、７０７    外部バス
１０８、２０８、３０８、４０８、５０８、６０８，７０８    内部バス
２０６    ＣＰＵ計測部
３０６    ＶＲＡＭ計測部
４０６    プロセス計測部
５０６    バス計測部
６０６    ワーキングセット計測部
７０６    割り込み計測部
７０９    割り込みコントローラ
７１０    各種ペリフェラル
【図１】
2011045931.tif 000003
【図２】
2011045931.tif 000004
【図３】
2011045931.tif 000005
【図４】
2011045931.tif 000006
【図５】
2011045931.tif 000007
【図６】
2011045931.tif 000008
【図７】
2011045931.tif 000009
【図８】
2011045931.tif 000010
【図９】
2011045931.tif 000011
【図１０】
2011045931.tif 000012
【図１１】
2011045931.tif 000013
【図１２】
2011045931.tif 000014
【図１３】
2011045931.tif 000015
【図１４】
2011045931.tif 000016
【図１５】
2011045931.tif 000017
【図１６】
2011045931.tif 000018
【図１７】
2011045931.tif 000019
【図１８】
2011045931.tif 000020
【手続補正書】
【提出日】平成23年7月25日(2011.7.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
任意の領域をローカルメモリ又はキャッシュメモリとして切り替えて使用可能な第一の記憶手段と、
前記第一の記憶手段と異なる第二の記憶手段と、
前記第一の記憶手段又は前記第二の記憶手段を使用する情報処理手段と、
前記第一の記憶手段と前記第二の記憶手段の利用状況の変化を検出するための計測部と、
前記計測部の計測結果を基に前記第一の記憶手段の構成を変更する第一の変更手段と、
前記第一の記憶手段又は前記第二の記憶手段に格納されたデータを移動する移動手段と、
前記情報処理手段が使用する前記第一の記憶手段又は前記第二の記憶手段の領域の少なくとも一部を、少なくとも前記第一の記憶手段から前記第二の記憶手段へ変更する第二の変更手段と、を有し、
前記計測部は、少なくとも前記情報処理手段のワーキングセットサイズを計測する手段を有する情報処理装置。
【請求項２】
任意の領域をローカルメモリ又はキャッシュメモリとして切り替えて使用可能な第一の記憶手段と、
前記第一の記憶手段と異なる第二の記憶手段と、
前記第一の記憶手段又は前記第二の記憶手段を使用する情報処理手段と、
前記第一の記憶手段と前記第二の記憶手段の利用状況の変化を検出するための計測部と、
前記計測部の計測結果を基に前記第一の記憶手段の構成を変更する第一の変更手段と、
前記第一の記憶手段又は前記第二の記憶手段に格納されたデータを移動する移動手段と、
前記情報処理手段が使用する前記第一の記憶手段又は前記第二の記憶手段の領域の少なくとも一部を、少なくとも前記第一の記憶手段から前記第二の記憶手段へ変更する第二の変更手段と、を有し、
前記計測部は、少なくとも表示状態を計測する手段を有する情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記表示状態を計測する手段は、ＶＲＡＭサイズ、または表示更新頻度を計測する情報処理装置。
【国際調査報告】
2011045931.tif 000021
2011045931.tif 000022
2011045931.tif 000023
2011045931.tif 000024