(57)【要約】【課題】  本発明は、キャッシュメモリ内のピンダウン対象領域の増加を抑えつつ、キャッシュメモリ利用によって複数の処理を高速化させることを目的とする。【解決手段】  メインメモリとキャッシュメモリとを有し、前記メインメモリに処理手順が記憶された第一の処理と第二の処理とを実行する情報処理装置であって、前記第一の処理と前記第二の処理との処理手順の共通部分を前記キャッシュメモリの第一の領域に記憶させ、前記第一の処理と前記第二の処理それぞれの処理手順の固有部分を前記第一の領域と異なる前記キャッシュメモリの第二の領域に記憶させる記憶手段と、前記第一の領域を含む領域を書き替えの対象外として設定する設定手段と、を有することを特徴とする。【選択図】  図４
2016062327.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリとキャッシュメモリとを有し、前記メインメモリに処理手順が記憶された第一の処理と第二の処理とを実行する情報処理装置であって、
前記第一の処理と前記第二の処理との処理手順の共通部分を前記キャッシュメモリの第一の領域に記憶させ、前記第一の処理と前記第二の処理それぞれの処理手順の固有部分を前記第一の領域と異なる前記キャッシュメモリの第二の領域に記憶させる記憶手段と、
前記第一の領域を含む領域を書き替えの対象外として設定する設定手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記第一の処理と前記第二の処理とは、デバイスの割り込み処理であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第一の処理と前記第二の処理とは、通信モードにおける通信処理であることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記記憶手段は、前記第一の処理と前記第二の処理との処理の開始に応じて、前記第一の領域に前記共通部分を記憶させ、前記第二の領域に前記固有部分を記憶させることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
処理の機能に基づき、前記固有部分の処理を複数のグループに分ける制御手段を更に有することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
メインメモリとキャッシュメモリとを有する情報処理装置の前記メインメモリに処理手順が記憶された第一の処理と第二の処理とを実行する情報処理方法であって、
前記第一の処理と前記第二の処理との処理手順の共通部分を前記キャッシュメモリの第一の領域に記憶させ、前記第一の処理と前記第二の処理それぞれの処理手順の固有部分を前記第一の領域と異なる前記キャッシュメモリの第二の領域に記憶させる記憶工程と、
前記第一の領域を含む領域を書き替えの対象外として設定する設定工程と、を有することを特徴とする情報処理方法。
【請求項７】
コンピュータを、メインメモリとキャッシュメモリとを有し、前記メインメモリに処理手順が記憶された第一の処理と第二の処理とを実行する情報処理装置であって、
前記第一の処理と前記第二の処理との処理手順の共通部分を前記キャッシュメモリの第一の領域に記憶させ、前記第一の処理と前記第二の処理それぞれの処理手順の固有部分を前記第一の領域と異なる前記キャッシュメモリの第二の領域に記憶させる記憶手段と、
前記第一の領域を含む領域を書き替えの対象外として設定する設定手段と、を有することを特徴とする情報処理装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリを有する情報処理装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータや組み込み機器などの一般的な情報処理装置は、プロセッサ、メインメモリ、二次記憶装置などから構成されている。プロセッサはメインメモリに記憶されているデータに対してアクセスを行うが、データへのアクセスを高速化するため、キャッシュメモリが搭載されていることが多い。
【０００３】
キャッシュメモリは、プロセッサとメインメモリとの間に配置され、メインメモリよりも記憶容量が小さいが、高速なアクセスが可能なメモリである。プロセッサによりメインメモリにアクセスが行われた場合、アクセス対象であるデータがキャッシュメモリに記憶される。よって、以降、キャッシュメモリに記憶されたデータに対しては高速なアクセスが可能となる。しかし、前述の通り、キャッシュメモリの容量はメインメモリよりも小さいため、メインメモリに記憶されているデータをすべてキャッシュメモリに記憶することは出来ない。そこで、キャッシュメモリに空きが無い状態で新規アクセスが発生した場合、新規アクセスの対象となるデータによって、キャッシュメモリ内容は置き替えられる。
【０００４】
置き替える方法としては、所定の時間内に最も使われていないデータを新規アクセスのデータによって置き替える方法（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）がある。また、使用頻度が低いデータを新規アクセスのデータによって置き替える方法（Ｌｅａｓｔ  Ｆｒｅｑｕｅｎｔｌｙ  Ｕｓｅｄ）がある。
【０００５】
また、キャッシュメモリにはピンダウン機能（ロックダウン機能）を有するものもある。ピンダウン機能とは、キャッシュメモリが保持するデータの内、一部のデータを上記の置き替え対象外とする機能である。つまり、ピンダウン機能によって、アクセスされる可能性が高いと考えられるデータをキャッシュメモリ内に保持したままにしておくことが可能となる。
【０００６】
ピンダウン機能を利用した技術として、特許文献１には、トータルアクセス数の多い特定のオブジェクト（関数群）が記憶されたキャッシュメモリ内の領域に対してピンダウン機能を設定することが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−００８６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に開示されている技術では、トータルアクセス数が多い特定のオブジェクトを高速に参照することが可能になる。しかしながら、トータルアクセス数が少ないにも関わらず、外部装置からのデータ通信要求などの割り込み処理は、高速なアクセスが求められることがある。
【０００９】
ところが、割り込み処理のトータルアクセス数は少ないため、引用文献１に開示されている技術では、割り込み処理をキャッシュメモリ利用によって高速化することは出来ない。一方で、割り込み処理なども含めた複数の処理を高速化するためにピンダウン対象とすると、ピンダウン対象の領域が増加し、ピンダウン対象外の領域は減少してしまう。ピンダウン対象外の領域が減少してしまうと、システム全体の処理速度が低下する可能性もある。
【００１０】
本願発明は、上記課題を鑑みてなされたものであり、キャッシュメモリ内のピンダウン対象領域の増加を抑えつつ、キャッシュメモリ利用によって複数の処理を高速化させることを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、上述の課題を鑑みてなされたものであり、メインメモリとキャッシュメモリとを有し、前記メインメモリに処理手順が記憶された第一の処理と第二の処理とを実行する情報処理装置であって、前記第一の処理と前記第二の処理との処理手順の共通部分を前記キャッシュメモリの第一の領域に記憶させ、前記第一の処理と前記第二の処理それぞれの処理手順の固有部分を前記第一の領域と異なる前記キャッシュメモリの第二の領域に記憶させる記憶手段と、前記第一の領域を含む領域を書き換えの対象外として設定する設定手段と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、キャッシュメモリ内のピンダウン対象領域の増加を抑えつつ、キャッシュメモリ利用によって複数の処理を高速化させることが出来る。
【図面の簡単な説明】
【００１３】
【図１】第一の実施形態における情報処理装置のハード構成を示す図である。
【図２】第一の実施形態における割込み処理の工程を示す図である。
【図３】第一の実施形態において割込み処理を行う場合のメインメモリ１０３内のアドレス空間の配置を示す図である。
【図４】第一の実施形態における割込み処理を行う際のフローを示す図である。
【図５】第二の実施形態において割込み処理を行う場合のメインメモリ１０３内のアドレス空間の配置を示す図である。
【図６】第二の実施形態における割込み処理を行う前に行う固有部分のグループ化のフローを示す図である。
【図７】第三の実施形態における通信処理を行う場合のメインメモリ１０３内のアドレス空間の配置を示す図である。
【図８】第三の実施形態における通常モードから通信モードへの移行処理のフローを示す図である。
【図９】第三の実施形態における通信モードから通常モードへの移行処理のフローを示す図である。
【発明を実施するための形態】
【００１４】
（第一の実施形態）
図１から図４を用いて、本実施形態の処理について説明する。本実施形態では、割込み処理の一部を、キャッシュメモリのピンダウン対象としている。
【００１５】
図１は、本実施形態における情報処理装置のハードウェア構成を示す図である。
【００１６】
処理装置１０１はコンピュータプログラムを実行するであり、後述のキャッシュメモリ１０２やメインメモリ１０３に記憶されたデータやコンピュータプログラムにアクセスして、各種処理を行う。以下、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１とする。
【００１７】
キャッシュメモリ１０２は、ＣＰＵ１０１に接続され、コンピュータプログラムを記憶することが出来る。キャッシュメモリ１０２は、後述のメインメモリ１０３よりも高速なアクセスが可能であるため、使用される可能性が高いコンピュータプログラムやデータが記憶される。一般には、ＣＰＵ１０１のメインメモリ１０３へのアクセスの度に、キャッシュメモリ１０２内のデータは更新される。例えば、所定の時間内に最も使われていないキャッシュメモリ１０２内のデータを新規アクセスのデータによって置き替えたり、使用頻度が低いキャッシュメモリ１０２内のデータを新規アクセスのデータによって置き替えたりする。
【００１８】
キャッシュメモリ１０２は２以上のウェイ連想度を持ち、ウェイ毎にＷＡＹＳＩＺＥバイトのデータを保持可能である。キャッシュメモリ１０２内の格納場所は対象データが配置された下位アドレスによって決定される。また、格納された内容はウェイよりも小さいキャッシュライン単位で置き換えることが出来る。
【００１９】
メインメモリ１０３は、キャッシュメモリ１０２よりアクセス速度が低速であるが、記憶容量が大きい。メインメモリ１０３としては、ＳＲＡＭ、ＤＲＡＭなどが一般的である。１０４は、情報処理装置に接続され、各種処理を行うデバイス１０４である。尚、図１においては、単数のデバイスを図示しているが、通常は、複数のデバイスが接続される。デバイスの具体例としては、撮像装置、ネットワーク機器、タイマー機器などがある。
【００２０】
割込みコントローラ１０５は、デバイス１０４からの割込み要求・処理の情報をＣＰＵ１０１に通知する機能を有する。
【００２１】
インターコネクト１０６は、ＣＰＵ１０１、キャッシュメモリ１０２、メインメモリ１０３、デバイス１０４、及び割込みコントローラ１０５を相互接続する。
【００２２】
以上が、本実施形態における情報処理装置の各ハードウェア構成である。
【００２３】
次に、本実施形態におけるデバイス１０４からの割り込み要求に基づく割込み処理の工程（処理手順）について説明する。図２は、本実施形態における割込み処理の工程を示す図である。
【００２４】
２０１は、割込み開始処理２０１である。処理内容としては、割込み発生前のＣＰＵ１０１内のレジスタに記憶されているコンテキスト情報の退避を行う。そして、割込み要因を特定し、さらに要因毎の固有処理を呼び出すものである。ここでの割り込み要因とは、デバイスごとのデータ送受信開始、データ送受信終了、などのアクションである。
【００２５】
２０２は、割込み要因毎の固有処理２０２である。処理内容としては、対象のデバイスからのデータ取得およびデバイスの割込み要因のクリアを実施するものである。
【００２６】
２０３は、割り込み終了処理２０３である。処理内容としては、２０１で退避したコンテキスト情報をレジスタに復帰させ、割込み発生前の状態にＣＰＵ１０１を復帰させるものである。
【００２７】
以上の処理の内、割込み開始処理２０１と、割り込み終了処理２０３とは、デバイス１０４からの割込み処理としては共通の処理となる。以下では、共通の処理を共通部分とする。割り込み処理を行うデバイスが異なっていたとしても、割込み開始処理２０１と、割り込み終了処理２０３とは同様の処理を行うことになる。一方で、割込み固有処理２０２は割込み要因毎の固有処理となる。以下では、固有処理を固有部分とする。
【００２８】
図３は、割込み処理を行う場合のメインメモリ１０３内における処理手順（プログラム）のアドレス空間の配置を示す図である。図３は、２つの異なる割り込み処理を行う場合を示している。固有部分３０３は、第一の割り込み処理の処理手順の固有部分である。固有部分３０４は、第二の割り込み処理の処理手順の固有部分である。第一の割り込み処理と第二の割り込み処理との処理手順の共通部分は、共通部分３０１、共通部分３０２である。共通部分３０１と、共通部分３０２とは、いずれも共通の処理手順の一部であるが、アドレス空間上では離れた位置に配置されている。
【００２９】
尚、共通部分３０１のサイズはＣＯＭＭＯＮ＿ＳＩＺＥ１とする。ＣＯＭＭＯＮ＿ＳＩＺＥ１は１ウェイのサイズであるＷＡＹＳＩＺＥより小さくなるようにする。共通部分３０２のサイズはＣＯＭＭＯＮ＿ＳＩＺＥ２とする。同様に、ＣＯＭＭＯＮ＿ＳＩＺＥ２は１ウェイのサイズであるＷＡＹＳＩＺＥより小さくなるようにする。
【００３０】
共通部分３０１および共通部分３０２の配置アドレスの範囲（ＷＡＹＳＩＺＥで剰余された値）は、それぞれ［０，  ＣＯＭＭＯＮ＿ＳＩＺＥ１）、［０，  ＣＯＭＭＯＮ＿ＳＩＺＥ２）になるようにする。ここで、［ｐ，  ｑ）はｐ以上ｑ未満を示す。
【００３１】
また、固有部分３０３、固有部分３０４の配置アドレスの範囲（ＷＡＹＳＩＺＥで剰余された値）は、  ［ｍａｘ（ＣＯＭＭＯＮ＿ＳＩＺＥ１，  ＣＯＭＭＯＮ＿ＳＩＺＥ２），  ＷＡＹＳＩＺＥ）となるようにする。ここで、ｍａｘ（ａ，  ｂ）はａとｂのいずれか大きい方の値となることを示す。割込み処理以外の処理は、割込み処理が占有しない任意のアドレスに配置される。
【００３２】
３以上のウェイがあるキャッシュメモリを有する装置において、上記のように配置することによって、２ウェイのキャッシュメモリに共通部分および固有部分が記憶される場合、共通部分３０１および固有部分３０３が、一方のウェイに記憶される。そして、共通部分３０２および固有部分３０４が、他方のウェイに記憶される。このように、共通部分３０１および共通部分３０２を、異なるウェイの同一のキャッシュライン上に記憶し、アドレス管理をすることによって、共通部分３０１および共通部分３０２が、固有部分３０３および固有部分３０４によって置き替えられてしまうことを防止することが出来る。また、共通部分のサイズが所定以下であっても、複数に分割して、かつ複数のウェイをピンダウン対象とすることで、固有部分もできだけ多くキャッシュ内に残すことが出来る。
【００３３】
尚、上記アドレス配置は相対位置を維持したまま移動することが可能である。例えば、共通部分の配置アドレスを４バイト移動した場合には、他の部分のアドレスも４バイト移動することで、共通部分が他の部分によって追い出されてしまうことを防止することが出来る。
【００３４】
また、割込み処理に割り当てるウェイの数が２ではない場合には、共通部分をそのウェイ数に合わせて分割することで、同様の処理を行うことが出来る。すなわち、共通部分のサイズがＷＡＹＳＩＺＥを上回る場合には、領域を複数に分割し、その数と同数のウェイをピンダウン対象とすることで本実施形態を適用可能である。同様に、共通部分のサイズがＷＡＹＳＩＺＥより小さい場合には１つのウェイのみをピンダウン対象とすることも可能である。
【００３５】
アドレスの配置は、リンカが提供するコンピュータプログラムのロードアドレスおよび実効アドレスの指定機能を用いて行われる。リンカスクリプトにおいて、コンピュータプログラムを構成する各部分をグループ化し、それぞれのグループに対するロードアドレスおよび実効アドレスを記述する。そのリンカスクリプトをリンカへの入力として、オブジェクトファイルをリンクする際に指定する。
【００３６】
また、アドレスの配置は、オペレーティングシステムの動的ローディング機能を用いても実現可能であるし、リンカとオペレーティングシステムの機能の組合せによっても実現可能である。更に、アドレスの配置は本実施形態におけるＣＰＵ１０１によって実行しても良いし、他の情報処理装置によって実行し、その結果をメインメモリ１０３に格納して利用しても良い。
【００３７】
図４は、本実施形態における割込み処理のフローを示す図である。尚、以下のフローの各処理は、ＣＰＵ１０１がキャッシュメモリ１０２又はメインメモリ１０３にアクセスして行う処理である。以下の処理は、割込みコントローラ１０５によってＣＰＵ１０１に対して割込み要求がなされた後の処理である。
【００３８】
ステップＳ４０１では、割込み処理前におけるＣＰＵ１０１内のレジスタに記憶されているコンテキストの一部（最小部）をメインメモリ１０３に退避する。ここでのコンテキストの一部とは、後述のステップＳ４０２のピンダウン処理を行うことによって変更されてしまうコンテキストである。
【００３９】
一般的には、割込み処理前のＣＰＵ１０１内のステータスレジスタやピンダウン処理で使用する汎用レジスタが該当する。ステップＳ４０２では、キャッシュメモリ１０２に対して、割込み処理で使用しないウェイをピンダウン対象として設定する。ステップＳ４０３では、割込み処理で変更される可能性のあるコンテキストをメインメモリ１０３に退避する。退避後、割込みの要因を特定する。ここで退避させるコンテキストは、割込み発生前の状態に復帰させるために必要な全コンテキストからステップＳ４０１で退避したコンテキストを除いたものである。ステップＳ４０４では、ステップＳ４０３で特定された要因に対する割込みハンドラの呼び出しを行い、割り込み処理を解決する。本ステップにおける割り込み処理を行う際には、メインメモリ１０３のアドレス空間の配置は、図３に示したようになっており、メインメモリ１０３内の固有部分および共通部分は、キャッシュメモリ１０２に記憶される。また、前述の通り、キャッシュメモリ１０２内の共通部分が、固有部分の処理によって置き換えられることは防止されている。
【００４０】
ステップＳ４０５では、割込みハンドラによる処理の終了後、ステップＳ４０３で退避したコンテキストを、ＣＰＵ１０１内のレジスタに復帰させる。ステップＳ４０６では、キャッシュメモリ１０２に対してのピンダウン設定を、ステップＳ４０２で変更する前の状態に復帰させる。具体的な処理としては、割込み処理で使用しないウェイに対するピンダウン設定を解除する。そして、割込み処理で使用したウェイに対してピンダウン設定を行う。本ステップにおけるピンダウン設定によって、割込み処理で使用したウェイに記憶されている共通部分は、後の処理における置き替えから保護されることになる。ステップＳ４０７では、ステップＳ４０１で退避したコンテキストを、ＣＰＵ１０１内のレジスタに復帰させる。
【００４１】
以上の処理によって、割り込み処理を構成する固有部分と共通部分との内、共通部分はキャッシュメモリ１０２内にピンダウン設定によって保護される。上記処理の後、新たに割り込み処理を行う場合、共通部分があらかじめキャッシュメモリ１０２内に記憶されているため、この共通部分をキャッシュメモリ１０２から読み出すことで、割り込み処理を高速に行うことが可能となる。尚、割込みの発生と割込みからの復帰に応じてキャッシュのピンダウン状態を切り替えるハードウェアを実装しても良い。
【００４２】
（第二の実施形態）
本実施形態と第一の実施形態との異なる点は、割り込み処理を行う際のメインメモリ１０３内のアドレス配置である。第一の実施形態においては、固有部分は割り込み処理ごとにメインメモリ１０３内に記憶されていたが、本実施形態においては、メインメモリ１０３内の固有部分がグループ化されている。
【００４３】
以下、本実施形態の具体的な構成および処理について説明する。尚、ハードウェア構成などの第一の実施形態と共通する部分については、以下では説明を省略する。
【００４４】
図５は、本実施形態において割り込み処理を行う際のメインメモリ１０３内のアドレス配置を示す図である。
【００４５】
５０１および５０２は、割込み処理の共通部分である。共通部分５０１、５０２のサイズはいずれもＷＡＹＳＩＺＥより小さくなるようにする。共通部分のアドレス配置は第一の実施形態と同様である。
【００４６】
固有部分５０３、５０４、および５０５は、割込み処理の固有部分におけるグループである。ここで、各グループは機能単位でグループ化されている。例えば、データ送受信開始とデータ送受信終了となどは、共に一連の処理で実行される可能性が高いため、同一のグループにグループ化する。各グループの配置アドレスの範囲（ＷＡＹＳＩＺＥで剰余された値）は、［ｍａｘ（ＣＯＭＭＯＮ＿ＳＩＺＥ１，  ＣＯＭＭＯＮ＿ＳＩＺＥ２），  ＷＡＹＳＩＺＥ）になるようにする。割込み処理以外の処理は、割込み処理が占有しない任意のアドレスに配置される。
【００４７】
次に、本実施形態における固有部分のグループ化の処理について説明する。図６は、本実施形態における割り込み処理を行う前に行う固有部分のグループ化のフローを示す図である。尚、以下のフローの各処理は、ＣＰＵ１０１がキャッシュメモリ１０２又はメインメモリ１０３にアクセスして行う処理である。以下の処理は、第一の実施形態においては、ステップＳ４０３の処理によって割り込み要因が特定された後の処理になる。
【００４８】
ステップＳ６０１では、機能の利用などによって発生する割込み要因を、機能単位でグループ化する。ステップＳ６０２では、ステップＳ６０１における割込み要因グループを参照し、要因毎に重複を避けて固有処理をグループ化する。固有処理ごとのグループは、それぞれ異なるサービスに対応するものである。複数の機能と関連付けられる割込み要因に関する処理は、任意のひとつのグループに所属させる。ステップＳ６０３では、ステップＳ６０２でグループ化されたグループ毎に固有処理のサイズをＷＡＹＳＩＺＥと比較する。ＷＡＹＳＩＺＥよりも大きいと判定された場合、ステップＳ６０４に処理を進める。ＷＡＹＳＩＺＥよりも大きいと判定されなかった場合、ステップＳ６０５に処理を進める。ステップＳ６０４では、固有処理のサイズがＷＡＹＳＩＺＥ以上であるグループに対し、ＷＡＹＳＩＺＥ未満となるようサイズを分割する。分割後、ステップＳ６０５に処理を進める。ステップＳ６０５では、固有処理サイズがＷＡＹＳＩＺＥ未満のグループに対して、グループ毎にアドレスに配置する。アドレスの配置は、前述の図５に示した通りである。
【００４９】
以上が本実施形態における固有部分のグループ化の処理である。尚、以上の処理フローは、他の情報処理装置によって実行し、その結果をメインメモリ１０３に格納して利用しても良い。
【００５０】
以上の処理によって、第一の実施形態の効果に加え、割込み処理の固有部分をグループ化することにより、機能単位での利用に局所性がある場合にキャッシュメモリ１０２のヒット率を高め、処理をより高速化することが出来る。
【００５１】
（第三の実施形態）
第一の実施形態および第二の実施形態においては、割り込み処理について説明したが、本実施形態では通信処理について説明する。本実施形態においては、情報処理装置の動作モードに応じてウェイのピンダウン対象を設定する。尚、ハードウェア構成などの第一の実施形態および第二の実施形態と同様の構成については説明を省略する。
【００５２】
図７は、本実施形態における通信処理を行う場合のメインメモリ１０３内のアドレス空間の配置を示す図である。通信モードにおける通信処理の処理プログラムは、サービスに依存したプロトコルスタックの上位層と、共通に利用される下位層から構成される。
【００５３】
７０１は、通信モードにおける通信処理で共通に実行される下位層の処理プログラムである。この処理の部分は共通部分７０１とする。
【００５４】
７０２および７０３は、通信モードにおける通信処理でサービスに依存して実行される上位層の処理プログラムである。７０２は固有部分７０２であり、７０３は固有部分７０２と異なる固有部分７０３である。通信モードにおける通信処理以外の処理プログラムは、通信処理が占有しない任意のアドレスに配置される。
【００５５】
本実施形態においては、２以上のウェイを有するキャッシュメモリの内、１ウェイをピンダウンすることを前提としている。よって、図７に示した通り、あらかじめ定めたアドレス配置で共通部分７０１および固有部分７０２を
メインメモリ１０３内に配置することによって、キャッシュメモリ１０２内における配置を制御することが出来る。従って、共通部分７０１が、固有部分７０２および固有部分７０３によって置き替えられてしまうことを防止することが出来る。
【００５６】
次に、本実施形形態における通常モードから通信モードへの移行処理および、通信モードから通常モードへの移行処理を説明する。
【００５７】
図８は、本実施形態における通常モードから通信モードへの移行処理のフローを示す図である。尚、以下のフローの各処理は、ＣＰＵ１０１がキャッシュメモリ１０２又はメインメモリ１０３にアクセスして行う処理である。
ステップＳ８０１では、ＣＰＵ１０１を割込み処理を禁止する状態に設定する。ステップＳ８０２では、キャッシュメモリ１０２に対して、通信モードにおける通信処理で使用しないウェイをピンダウン対象として設定する。ステップＳ８０３では、通信アプリケーションが必要とするタスクの起動、データの準備、通信デバイスの設定を行う。この処理はアプリケーションに依存するものである。本ステップにおける処理を行う際には、メインメモリ１０３のアドレス空間の配置は、図７に示したようになっており、メインメモリ１０３内の固有部分および共通部分は、キャッシュメモリ１０２に記憶される。また、前述の通り、キャッシュメモリ１０２内における共通部分７０１が置き替えられることは防止されている。
【００５８】
尚、本ステップにおいて、ステップＳ８０１で設定された割込み禁止状態および、ステップＳ８０３で設定されたキャッシュメモリ１０２のピンダウン状態は変更しない。ステップＳ８０４では、ステップＳ８０１による禁止前の状態に復帰させる。
【００５９】
以上が、本実施形態における通常モードから通信モードへの移行処理である。以上の処理によって通信処理を行うことが出来るようになる。次に、通信モードから通常モードへの移行処理を説明する。
【００６０】
図９は、本実施形形態における通信モードから通常モードへの移行処理のフローを示す図である。ステップＳ９０１では、ＣＰＵ１０１を割込み処理を禁止する状態に設定する。
【００６１】
ステップＳ９０２では、通信モードにおける処理以外では必要ないタスクの停止、データの廃棄、通信デバイスの停止を行う。本ステップにおける処理は情報処理装置に依存する。ステップＳ９０１で設定された割込み禁止の状態および、ステップＳ８０２で設定されたキャッシュメモリ１０２のピンダウン状態は変更しない。
【００６２】
ステップＳ９０３では、通信モードにおける通信処理で使用されるウェイをピンダウンする。具知的な処理としては、通信処理で使用しないウェイに対するピンダウン設定を解除する。そして、通信処理で使用したウェイに対してピンダウン設定を行う。本ステップにおけるピンダウン設定によって、通信処理で使用したウェイに記憶されている共通部分は、後の処理における置き替えから保護されることになる。ステップＳ９０４では、ＣＰＵ１０１の割込み処理を禁止する状態を解除し、ステップＳ９０１による禁止前の状態に復帰させる。
【００６３】
以上の処理により、動作モード切り替えに応じて、通信モードにおける通信処理プログラムの共通部分が記憶されるキャッシュメモリのウェイをピンダウンする。よって、上記処理の後、新たに通信処理を行う場合、共通部分があらかじめキャッシュメモリ内１０２に記憶されているため、通信処理を高速に行うことが可能となる。
【００６４】
尚、通信モードにおける通信処理は処理の一例であり、異なるモードの処理であっても本実施形態を適用することは可能である。
【００６５】
（その他の実施形態）
上述の実施形態の他に、キャッシュメモリのピンダウンがウェイ単位とは異なる単位で制御可能な場合でも上記実施形態を適用することが可能である。また、キャッシュメモリが複数の階層から構成される場合に、そのいずれかのキャッシュメモリでピンダウンを設定することが出来れば、上記実施形態を適用することが出来る。
【００６６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2016062327.tif 000003
【図２】
2016062327.tif 000004
【図３】
2016062327.tif 000005
【図４】
2016062327.tif 000006
【図５】
2016062327.tif 000007
【図６】
2016062327.tif 000008
【図７】
2016062327.tif 000009
【図８】
2016062327.tif 000010
【図９】
2016062327.tif 000011