(57)【要約】  オペレーティングシステム３０２が、メモリ管理部３０３とページ移動部３０４に加えてカラー変更部３０５を備えている。カラー変更部３０５は移動先ページ取得部３０６とページ移動指示部３０７を備えている。移動先ページ取得部３０６は未利用の物理ページの集合から指定されたカラーＩＤを持つ物理ページを取得する。ページ移動指示部３０７は各種の状況に応じて、この物理ページの移動を指示する。
2009075177.tif 000002
【特許請求の範囲】
【請求項１】
論理アドレスと物理アドレスのマッピングの単位となる一定サイズのメモリ領域であるページごとのキャッシュ上の格納位置を、複数の識別情報としてのカラーＩＤのいずれかにそれぞれ割り当てて、利用されていない物理ページの集合を管理するメモリ管理手段と、  移動元ページと移動先ページを指定されて呼び出され、移動元ページの内容を移動先ページにコピーし、移動元ページをマップしているページテーブルを、移動先ページをマップするように書き換えるページ移動手段と、  前記メモリ管理手段の前記利用されていない物理ページの集合から、指定されたカラーＩＤを持つ物理ページを取得する移動先ページ取得手段と、指定された物理ページを移動元物理ページとし、前記移動先ページ取得手段によって取得した物理ページを移動先物理ページとして前記ページ移動手段を呼び出すページ移動指示手段とを有するカラー変更手段とを具備するメモリ再配置システム。
【請求項２】
請求項１に記載のメモリ再配置システムにおいて、  前記カラー変更手段は、オペレーティングシステムから見たときの実行中の個々のプログラムとしてのプロセスを特定する識別子としてのプロセスＩＤと論理ページ番号とから物理ページ番号を求める論理物理ページ変換手段を具備するメモリ再配置システム。
【請求項３】
請求項１に記載のメモリ再配置システムにおいて、  前記カラー変更手段は、オペレーティングシステムから見たときの実行中の個々のプログラムとしてのプロセスを特定する識別子としてのプロセスＩＤと移動元カラー集合および移動先カラー集合とから移動元物理ページ集合を決定する移動先ページ決定手段を具備するメモリ再配置システム。
【請求項４】
請求項３に記載のメモリ再配置システムにおいて、  前記カラー変更手段は、前記プロセスＩＤと前記移動先カラー集合とから移動元カラー集合を決定する移動元カラー決定手段を具備するメモリ再配置システム。
【請求項５】
請求項３または請求項４に記載のメモリ再配置システムにおいて、  前記移動先ページ取得手段は、カラーを指定せずに連続する複数のページを取得し、  前記カラー変更手段は、前記移動先ページ取得手段の取得した前記複数のページの集合から前記移動先カラー集合に含まれないカラーを持つページを開放し、移動先カラーを持つページを移動先ページとして選択するカラー選別手段を具備するメモリ再配置システム。
【請求項６】
請求項１乃至５のいずれか１項に記載のメモリ再配置システムにおいて、  利用されている物理ページのカラーＩＤの平均ページ数を算出する平均ページ数算出手段と、  該平均ページ数算出手段で算出された平均ページ数を超えるカラーＩＤを指定して前記カラー変更手段を呼び出して該当するカラーＩＤの物理ページが減少するように再配置を指示する平均化指示手段とを具備するメモリ再配置システム。
【請求項７】
請求項２乃至５のいずれか１項に記載のメモリ再配置システムにおいて、  動作中の複数のプロセスの優先度を判別する優先度判別手段と、  該優先度判別手段で判別された優先度に応じてキャッシュの分配が行われているかを判別するキャッシュ分配適否判別手段と、  該キャッシュ分配適否判別手段が前記キャッシュの分配が優先度に応じて適正に行われていないと判別するときメモリ再配置によるこれらプロセスへのキャッシュ割り当てを制御するキャッシュ割り当て制御手段とを具備するメモリ再配置システム。
【請求項８】
請求項１乃至５のいずれか１項に記載のメモリ再配置システムにおいて、  同一のプログラムに存在する同一のカラーＩＤを有する複数の特定配列を検出する特定配列検出手段と、  該特定配列検出手段が前記複数の特定配列を検出するたびに前記カラー変更手段を呼び出して前記同一のカラーＩＤ以外の予め定めたカラーＩＤにその論理ページが移動するように再配置を指示するキャッシュ競合回避指示手段とを具備するメモリ再配置システム。
【請求項９】
移動元ページと移動先ページを指定されて呼び出され、移動元ページの内容を移動先ページにコピーし、移動元ページをマップしているページテーブルを、移動先ページをマップするように書き換えるページ移動ステップと、  論理アドレスと物理アドレスのマッピングの単位となる一定サイズのメモリ領域であるページごとのキャッシュ上の格納位置を、複数の識別情報としてのカラーＩＤのいずれかにそれぞれ割り当てて、利用されていない物理ページの集合を管理するメモリ管理手段の前記利用されていない物理ページの集合から、指定されたカラーＩＤを持つ物理ページを取得する移動先ページ取得ステップと、  指定された物理ページを移動元物理ページとし、前記移動先ページ取得ステップで取得した物理ページを移動先物理ページとして前記ページ移動ステップを呼び出すページ移動指示ステップとを具備するメモリ再配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、キャッシュメモリおよび論理アドレスと物理アドレスの変換を行うプロセッサを備えたコンピュータシステムにおいて、キャッシュメモリの利用を制御するようにしたメモリ再配置システムおよびメモリ再配置方法に関し、特に、プロセッサのキャッシュを有効に利用するのに好適なメモリ再配置システムおよびメモリ再配置方法に関する。
【背景技術】
【０００２】  キャッシメモリを搭載したコンピュータシステムで、プロセッサのキャッシュミスを削減することは、アプリケーションの性能向上や性能のばらつきの抑制のために特に必要である。【０００３】  物理インデックスキャッシュでは、物理アドレスによってデータのキャッシュメモリ上の格納位置としてのキャッシュセットが決まる。このため、オペレーティングシステムによる論理アドレスと物理アドレスのマッピングによって、アプリケーションのキャッシュメモリ（以下、キャッシュと適宜略称する。）の利用を制御することが可能なことが知られている。この技術によれば、特別なハードウェアやアプリケーションプログラムを修正せずに、オペレーティングシステムによってキャッシュミスの削減を図ることができる。【０００４】  マッピング時にキャッシュを考慮してスラッシングを防いだり、あるいは積極的にキャッシュヒット率を向上させようとする物理ページ管理手法は、ページカラーリングと呼ばれている。これは、マッピングがページと呼ばれる一定のサイズのメモリ領域を単位として行われることと、どの物理アドレスがどのキャッシュセットに格納されるかは一意に決まるという性質を利用して、キャッシュの同一セットに格納されるページに同一のカラーＩＤ（identifier）を割り当てることから呼ばれている。【０００５】  本発明に関連する第１の関連技術として、以上説明したようなオペレーティングシステムにおけるカラーを考慮したページ割り当て技術が、たとえば、Kessler他著「Page  Placement  Algorithms  for  Large  Real-Indexe  d  Caches」  ACM  Transactions  on  Computer  Systems，1992，Vol.  4，  No.  10，  pp.  338-359（以下、非特許文献１と称する）に開示されている。【０００６】  ところで図１は、キャッシュを考慮しない場合のメモリ割当機構を示している。メモリ割当機構１００は、メモリの割り当てを要求するプロセス１０１と、この要求に対応するオペレーティングシステム（ＯＳ）１０２とから成っている。オペレーティングシステム１０２は、メモリの管理を行うメモリ管理部１０３と、このメモリ管理部１０３によって空き物理ページのリストとして管理され、プロセス１０１への割り当ての際に使用されるフリーリスト１０４と、プロセス１０１のページテーブル１０５とを備えている。ここで、プロセスとは、オペレーティングシステムから見たときの実行中の個々のプログラムである。【０００７】  図２は、図１に示したプロセスへ物理ページを割り当てる動作を表わしたものである。図１と共に説明する。【０００８】  まず、プロセス１０１が図示しないＯＳに対して物理ページの割り当てを要求する（ステップＳ２０１）。オペレーティングシステム１０２のメモリ管理部１０３は、この要求に基づいてフリーリスト１０４から空きページを選択する（ステップＳ２０２）。続いて、メモリ管理部１０３が、プロセス１０１のページテーブル１０５を書き換えて、論理ページと物理ページをマップする。これによって、プロセス１０１に物理ページが割り当てられる（ステップＳ２０３）。【０００９】  以上説明したメモリ割当機構１００では、物理ページの割り当て時にキャッシュが考慮されない。このため、キャッシュ利用を制御することができない。【００１０��  図３は、プロセスに特定のキャッシュ領域としてのカラーを割り当てるようにしたメモリ割当機構を示したものである。図３で図１と同一部分には同一の符号を付しており、これらの説明を適宜省略する。このメモリ割当機構１００Ａでは、オペレーティングシステム１０２Ａ内にページカラーリングに対応したメモリ管理部１０３Ａが配置されているだけでなく、プロセス１０１が利用可能なカラーＩＤを管理するカラーテーブル１０６を有している。【００１１】  図４は、図３に示したプロセスへ物理ページを割り当てる場合の動作を示したものである。図３と共に説明する。【００１２】  まず、プロセス１０１が物理ページの割り当てを要求する（ステップＳ２１１）。オペレーティングシステム１０２Ａのメモリ管理部１０３Ａは、この要求に基づいてカラーテーブル１０６を検索して、プロセス１０１に割り当てられたカラーＩＤを調べる（ステップＳ２１２）。次に、メモリ管理部１０３Ａは、フリーリスト１０４の中からプロセス１０１に割り当てられたカラーＩＤを持つ空きページを選択する（ステップＳ２１３）。そして、メモリ管理部１０３Ａが、プロセス１０１のページテーブル１０５を書き換えて、論理ページと物理ページをマップする。これによって、プロセス１０１に物理ページが割り当てられる（ステップＳ２１４）。【００１３】  以上説明したメモリ割当機構１００Ａでは、物理ページの割り当て時にキャッシュが考慮される。このため、キャッシュ利用を制御することが可能になる。【００１４】  図５は、キャッシュを考慮したメモリ割り当ての効果を説明するためのものである。この図５では、キャッシュがダイレクトマップ（Direct  Map）方式を採用してそのサイズが８ページの場合に、ページカラーリングを用いてプロセスＡがキャッシュ利用を制御している例を示す。ここで「プロセスＡ」とは、次に説明する他の「プロセスＢ」と区別するために使用するプロセスの名称である。この図５に示した例の場合のカラー（color）数は「８」である。この例では、プロセスＡの論理ページをカラーＩＤが「０」，「１」，「２」，「３」の物理ページにマッピングすることによって、プロセスＡがキャッシュの半分のみを利用するように制御している。図５の物理メモリで、括弧の外の各数字はページ番号を表わしており、括弧内の数字はカラーＩＤとしてのカラー番号を表わしている。【００１５】  ページカラーリングを用いたキャッシュミス削減手法としては、たとえば２つのプロセスに同じカラーＩＤを割り当てないという手法がある。この手法では、２つのプロセスが利用するデータをそれぞれキャッシュ上の異なるセットに格納し、キャッシュ競合が起こらないようにしている。これにより、２つのプロセスを同時に動かした場合のキャッシュ競合による性能低下や、ばらつきを抑えることができる。【００１６】  図６は、ページカラーリングによって、２つのプロセスＡ、Ｂの利用するキャッシュを分割した例を示している。この例では、一方のプロセスＡがキャッシュ上のカラーＩＤ｛０，１，２，３｝の領域を利用することができ、他方のプロセスＢはカラーＩＤ｛４，５｝の領域を利用することができる。２つのプロセスはキャッシュ上の同じ領域をアクセスしな��ため、プロセス間での競合によるキャッシュミスを削減することができる。【００１７】  ページカラーリングは、プロセスへの物理ページの割り当て時に行われる。このため、ページ割り当て時の状況を考慮して割り当てを行うことができる。たとえば、プロセスＡとプロセスＢとの優先順位に基づき、優先度の高いプロセスに多くのカラーＩＤを割り当てることで、多くのキャッシュを利用可能にすることができる。図６では、プロセスＡの方にプロセスＢよりも多くのカラーＩＤを割り当てている。【００１８】  また、たとえば、特開２０００-３３９２２０号公報の第００１２段落および図１（以下、特許文献１と称する）に開示された第２の関連技術では、以上説明したようなページカラーリング技術を用いて、リアルタイムスレッドとその他が利用するキャッシュ領域を分割する技術について開示している。【００１９】  ところで、図７は、一般的なメモリ再配置技術を示したものである。オペレーティングシステム１０２Ｂのページ移動部１２１が、分散メモリシステム間の２つのノード１２２1、１２２2間でメモリ１２３1、１２３2の再配置を行っている。【００２０】  図８は、一般的なメモリモジュール間のメモリ再配置技術を示したものである。オペレーティングシステム１０２Ｂのページ移動部１２１Ａが、複数のメモリモジュール１２５1〜１２５4を持つシステムでの、たとえばメモリモジュール１２５1とメモリモジュール１２５3の間の再配置を行っている。【００２１】  図７にも示したように、分散メモリシステムは、各ノードがプロセッサ１２４1（１２４2）とメモリを持つ。このため、たとえば、ノード１２２1から他のノード１２２2のメモリ１２３2へのアクセスは、自ノードのメモリ１２３1へのアクセスよりも、レイテンシ（latency）と呼ばれる遅延が大きい。したがって、プロセッサが演算に利用するデータは同じノードのメモリ上に配置されることが性能上は望ましい。【００２２】  しかしながら、複数のノード間でデータを共有する場合、一般にデータをどのノードに配置するかを最適に決定することは困難である。このため、静的に配置を決定するよりも、演算の進行に応じて、データをノード間で動的に移動する戦略が採られることがある。この戦略を実現するために、図７に示すようにオペレーティングシステム１０２Ｂがページ移動部１２１を備え、このページ移動部１２１が物理ページをノード１２２1とノード１２２2の間で再配置する技術が用いられている。【００２３】  また、主記憶装置が複数のメモリモジュール１２５1〜１２５4で構成されるシステムでは、システムを停止させることなくメモリモジュール１２５を追加したり削減したりするために、オペレーティングシステム１０２Ｂのページ移動部１２１Ａによるメモリモジュール１２５1〜１２５4間で物理ページを再配置する技術が用いられている。【００２４】  複数のプロセスが動作するシステムでは、これらプロセスの動作に関わる状況が時間と共に変化する。これに対して、ページカラーリングを用いたキャッシュ制御は、プロセスへの物理ページの割り当て時に行われる。このため、キャッシュ制御に関しては、状況の変化とともに有効性が失われていくという問題がある。【００２５】  たとえば、図���に示したプロセス間のキャッシュ割り当て制御の例で、優先度が逆転して、ある時点からプロセスＡよりもプロセスＢの方が優先度が高くなったとする。【００２６】  図９は、図６に対してプロセスの優先度が逆転した場合を示したものである。図９（ａ）は図６に示したプロセス間のキャッシュ割り当て制御の場合を示したものであり、プロセスＡがキャッシュ上のカラーＩＤ｛０，１，２，３｝の領域を利用できる。これが状況の変化で図９（ｂ）のようにプロセスＢの方が優先度が高くなっても、プロセスＢはキャッシュ上のカラーＩＤ｛４，５｝しか使えないままである。少量のキャッシュしか使えないこのような状況では、プロセスＢの性能を十分上げることができない。【００２７】  一般に、プロセスのメモリ空間はキャッシュサイズよりも大きい。このため、プロセスが利用できるキャッシュサイズが大きいほどキャッシュミスが少なくなり、性能が向上する。この例では、プロセスＢが優先度が高くなったにも関わらず、十分な性能が出ないという問題が生じる。【００２８】  この問題は、優先度が変更されたにも関わらず、２つのプロセスＡ、Ｂがマップしている物理ページが変更されないことによって生じている。前記した本発明の関連技術としてのメモリ再配置技術では、分散メモリシステムにおけるノード間でのページ移動や、メモリモジュール間でのページの移動が可能であるものの、キャッシュを考慮したページの移動が行われていない。
【発明の開示】
【００２９】  そこで本発明の目的は、特別なハードウェアやアプリケーションプログラムの修正を行うことなく、コンピュータシステムの利用状況に応じて柔軟にプロセスのキャッシュの利用を制御することのできるメモリ再配置システムおよびメモリ再配置方法を提供することにある。
【００３０】  本発明では、（１）論理アドレスと物理アドレスのマッピングの単位となる一定サイズのメモリ領域であるページごとのキャッシュ上の格納位置を、複数の識別情報としてのカラーＩＤのいずれかにそれぞれ割り当てて、利用されていない物理ページの集合を管理するメモリ管理手段と、（２）移動元ページと移動先ページを指定されて呼び出され、移動元ページの内容を移動先ページにコピーし、移動元ページをマップしているページテーブルを、移動先ページをマップするように書き換えるページ移動手段と、（３）前記したメモリ管理手段の前記した利用されていない物理ページの集合から、指定されたカラーＩＤを持つ物理ページを取得する移動先ページ取得手段と、指定された物理ページを移動元物理ページとし、前記した移動先ページ取得手段によって取得した物理ページを移動先物理ページとして前記したページ移動手段を呼び出すページ移動指示手段とを有するカラー変更手段とをメモリ再配置システムに具備させる。
【００３１】  また、本発明では、（１）移動元ページと移動先ページを指定されて呼び出され、移動元ページの内容を移動先ページにコピーし、移動元ページをマップしているページテーブルを、移動先ページをマップするように書き換えるページ移動ステップと、（２）論理アドレスと物理アドレスのマッピングの単位となる一定サイズのメモリ領域であるページごとのキャッシュ上の格納位置を、複数の識別情報としてのカラーＩＤのいずれかにそれぞれ割り当てて、利用されていない物理ページの集合を管理するメモリ管理手段の前記した利用されていない物理ページの集合から、指定されたカラーＩＤを持つ物理ページを取得する移動先ページ取得ステップと、（３）指定された物理ページを移動元物理ページとし、前記した移動先ページ取得ステップで取得した物理ページを移動先物理ページとして前記したページ移動ステップを呼び出すページ移動指示ステップとをメモリ再配置方法に具備させる。
【００３２】  以上のように本発明によれば、物理ページの割り当て時に限らず、任意の時点でアプリケーションのキャッシュ利用を制御する。したがって、特別なハードウェアやアプリケーションプログラムの修正を行うことなく、最適なキャッシュ制御を実現することができる。
【図面の簡単な説明】
【００３３】
【図１】キャッシュを考慮しない場合のメモリ割当機構を示したブロック図である。
【図２】図１に示したプロセスへ物理ページを割り当てる動作を表わした流れ図である。
【図３】プロセスに特定のキャッシュ領域としてのカラーＩＤを割り当てるようにしたメモリ割当機構を示したブロック図である。
【図４】図３に示したプロセスへ物理ページを割り当てる場合の動作を示した流れ図である。
【図５】キャッシュを考慮したメモリ割り当てを示した説明図である。
【図６】ページカラーリングによって、２つのプロセスＡ、Ｂの利用するキャッシュを分割した例を示した説明図である。
【図７】一般的なメモリ再配置技術を示した説明図である。
【図８】一般的なメモリモジュール間のメモリ再配置技術を示した説明図である。
【図９】図６に対してプロセスの優先度が逆転した場合を示した説明図である。
【図１０】本発明の第１の実施の形態によるメモリ再配置システムの概要を表わしたブロック図である。
【図１１】第１の実施の形態で物理ページを他の物理ページに移動する場合を示した説明図である。
【図１２】本発明の第２の実施の形態によるメモリ再配置システムの概要を表わしたブロック図である。
【図１３】第２の実施の形態で物理ページを他の物理ページに移動する場合を示した説明図である。
【図１４】本発明の第３の実施の形態によるメモリ再配置システムの概要を表わしたブロック図である。
【図１５】第３の実施の形態で物理ページを他の物理ページに移動する場合を示した説明図である。
【図１６】本発明の第４の実施の形態によるメモリ再配置システムの概要を表わしたブロック図である。
【図１７】第４の実施の形態で物理ページを他の物理ページに移動する場合を示した説明図である。
【図１８】本発明の第５の実施の形態によるメモリ再配置システムの概要を表わしたブロック図である。
【図１９】第５の実施の形態で物理ページを他の物理ページに移動する場合を示した説明図である。
【図２０】本発明の第１の実施例によるメモリ再配置システムの概要を表わしたブロック図である。
【図２１】第１の実施例でプロセスＡの利用可能カラーＩＤの変更処理の様子を表わした流れ図である。
【図２２】第１の実施例で２つのプロセスに対する利用可能カラーＩＤ変更後のメモリマップを示した説明図である。
【図２３】本発明の第２の実施例によるメモリ再配置システムの概要を表わしたブロック図である。
【図２４】本発明の第３の実施例によるメモリ再配置システムの概要を表わしたブロック図である。
【図２５】第３の実施例でャッシュの一部の領域へのアクセスの集中を防ぐための処理の流れ図である。
【図２６】第３の実施例で利用されている物理ページのカラーＩＤのヒストグラムの一例を表わした特性図である。
【図２７】第３の実施例でカラーＩＤ変更後のヒストグラムとして図２６に対応するものを表わした特性図である。
【図２８】本発明の第４の実施例によるメモリ再配置システムの概要を表わしたブロック図である。
【図２９】キャッシュ競合ミスを生じるプログラムの要部を示した説明図である。
【図３０】図２９に示した例に対応するキャッシュ競合ミスの解決のための流れ図である。
【発明を実施するための最良の形態】
【００３４】  （第１の実施の形態）  図１０は、本発明の第１の実施の形態によるメモリ再配置システムの概要を表わしたものである。本実施の形態のメモリ再配置システム３００は、メモリの割り当てを要求するプロセス（もしくはスレッド。以下、本明細書でプロセスと総称する。）３０１と、この要求に対応するオペレーティングシステム（ＯＳ）３０２とから成っている。オペレーティングシステム３０２は、メモリ管理部３０３とページ移動部３０４およびカラー変更部３０５を備えている。ここで、カラー変更部３０５は、移動先ページ取得部３０６およびページ移動指示部３０７を備えている。【００３５】  メモリ管理部３０３は、利用されていない物理ページを管理し、プロセス３０１がメモリ割当要求を行った際に、物理ページを割り当てる機能を有している。このメモリ管理部３０３は、プロセスに物理ページを割り当てる際に、フリーページ集合から特定のカラー集合に含まれるカラーＩＤをもつページを割り当てる機能を有している。これをページカラーリング機能と称することにする。【００３６】  なお、オペレーティングシステム３０２は、プロセス３０１への割り当ての際に使用されるフリーリスト３０８と、プロセス３０１のページテーブル３０９およびプロセス３０１が利用可能なカラーＩＤを管理するカラーテーブル３１０を有している。これらは、たとえば図３に示したフリーリスト１０４、ページテーブル１０５あるいはカラーテーブル１０６と同様の機能を有するので、重複する説明は原則として省略する。【００３７】  なお、第１の実施の形態におけるメモリ再配置システム３００は、キャッシュの一部の領域へのアクセスが集中するのを防ぐ機能を実現するのに有効なものとなっている。このため、メモリ再配置システム３００の発明自体にプロセス３０１が直接関わる必要はない。また、オペレーティングシステム３０２におけるフリーリスト３０８、ページテーブル３０９およびカラーテーブル３１０も本発明の成立に直接関係しない。そこで、これらの構成要素は図１０にて破線で示している。後に説明する他の実施の形態についても同様である。【００３８】  本実施の形態でページ移動部３０４は、移動元ページと移動先ページを指定されて呼び出されるようになっている。そして、移動元ページの内容を移動先ページにコピーし、移動元ページをマップしているページテーブルを、移動先ページをマップするように書き換える機能を有する。ページの移動中は、移動元のページをマップしている。ページ移動部３０４は、ページテーブル３０９の該当エントリを無効化し、ページテーブル３０９をロックすることで、移動中のページに対するメモリアクセスを禁止する。これによりプロセス３０１の実行中の任意の時点でカラー変更が可能である。【００３９】  カラー変更部３０５の移動先ページ取得部３０６は、移動先カラー集合に含まれるカラーＩＤを持っている。移動先ページ取得部３０６は、空きページをメモリ管理部３０３に対して要求し、取得する。ページ移動指示部３０７は、ページ移動部３０４に対して、移動元ページと移動先ページへのページの移動を指示する機能を有する。本実施の形態によるカラー変更部３０５は、指定された物理ページ���指定されたカラーＩＤの異なる物理ページに移動する機能を有している。【００４０】  図１１は、本実施の形態で、キャッシュの一部の領域へのアクセスが集中するとき、これを回避するために、物理ページを他の物理ページに移動する場合を説明するためのものである。この際、元の物理ページと移動先の物理ページは異なるカラーＩＤを持つものとする。【００４１】  本実施の形態では、カラー変更部３０５が、移動対象の物理ページ番号と移動先のカラーＩＤを指定されて、カラー変更要求が行われることによって、動作が開始される。【００４２】  カラー変更部３０５は、移動対象の物理ページのカラーＩＤが移動先カラーＩＤと一致するか調べる（ステップＳ４０１）。一致する場合は（Ｙ）、移動を行わず、要求元に応答を返す（ステップＳ４０２）。【００４３】  カラー変更部３０５は、移動対象の物理ページのカラーＩＤが移動先カラーＩＤと一致しない場合（ステップＳ４０１：Ｎ）、移動対象の物理ページが移動可能かを調べる（ステップＳ４０３）。移動不可能な場合は（Ｎ）、要求元に移動不可能であるという応答を返す（ステップＳ４０２）。たとえばオペレーティングシステム３０２がロックしているページは移動不可能である。【００４４】  移動対象の物理ページが移動可能な場合（ステップＳ４０３：Ｙ）、移動先ページ取得部３０６は、メモリ管理部３０３に移動先カラーＩＤを指定して空きページを要求する（ステップＳ４０４）。【００４５】  メモリ管理部３０３は、ステップ４０４の空きページの要求があったら、移動先カラーＩＤを持つ空きページが空きページリストに存在するかをチェックする（ステップＳ４０５）。移動先カラーＩＤを持つ空きページが存在する場合には（Ｙ）、管理している空きページリストから指定されたカラーＩＤのページを返す（ステップＳ４０６）。指定されたカラーＩＤを持つページが空きページリスト中に存在しない場合は（ステップＳ４０５：Ｎ）、エラーを示す値を返すことになる（ステップＳ４０７）。【００４６】  移動先ページ取得部３０６は、メモリ管理部３０３からの返り値を調べる（ステップＳ４０８）。この結果、ステップＳ４０７でメモリ管理部３０３よりエラーが返された場合は（Ｙ）、要求元にエラーを示す応答を返す（ステップＳ４０２）。【００４７】  ステップＳ４０８でこれ以外の場合（Ｎ）、ページ移動指示部３０７は、移動元ページとして要求されたページを指定し、移動先ページとしてステップＳ４０６で取得したページを指定して、ページ移動部３０４を呼び出す（ステップＳ４０９）。【００４８】  ページ移動部３０４は、前記した方法によって、ページの移動を行う（ステップＳ４１０）。移動が完了したら、ページ移動指示部３０７に通知する（ステップＳ４１１）。【００４９】  ページ移動指示部３０７が、移動の完了の通知を受けると、カラー変更部３０５は要求元に応答を返す（ステップＳ４０２）。【００５０】  以上の動作により、移動対象の物理ページは、指定されたカラーＩＤを持つ物理ページに移動される。このとき、物理ページに対応する論理アドレスは変更されない。このため、移動元の物理ページをマップしていたプロセス３０１は、カラーＩＤが変更されたことを認識する必要はない。【００５１】  以上説明した第１の実施の形態の変形の可能性を説明する。まず、移動対象として複数の物理ページが指定されてもよい。その場合、それぞれの物理ページに対して以上説明した動作が行われることになる。【００５２】  次に、移動先カラーＩＤとしてカラー集合が指定されてもよい。カラー集合が複数のカラーＩＤを含む場合は、任意のアルゴリズムを用いてその中から移動先カラーＩＤを選択してよい。【００５３】  また、アドレスからページ番号は一意に求めることができるため、第１の実施の形態の変形例として、ページ番号の代わりに物理アドレスが指定されてもよい。カラー変更要求は、オペレーティングシステム３０２内から行われてもよいし、オペレーティングシステム３０２外から行われてもよい。【００５４】  （第２の実施の形態）  図１２は、本発明の第２の実施の形態によるメモリ再配置システムの概要を表わしたものである。図１２で図１０と同一部分には同一の符号を付しており、これらの説明を適宜省略する。第２の実施の形態のメモリ再配置システム３００Ａでは、オペレーティングシステム３０２Ａ内のカラー変更部３０５Ａが、移動先ページ取得部３０６Ａおよびページ移動指示部３０７の他に、論理物理ページ変換部３１１を備えている。【００５５】  論理物理ページ変換部３１１は、論理ページが物理ページをマップしているかを調べ、マップしている場合はその物理ページ番号を返す機能を有する。第２の実施の形態では、カラー変更部３０５Ａが、論理物理ページ変換部３１１を備えることで、論理ページに対応する物理ページを検出する機能を有する。このため、カラー変更用要求時に、物理ページ番号ではなく論理ページ番号を指定することができることになる。【００５６】  図１３は、本実施の形態で、物理ページを他の物理ページに移動する場合を説明するためのものである。ただし、図１３で図１１と同一部分には同一の符号を付しており、これらの説明を適宜省略する。【００５７】  本実施の形態では、カラー変更部３０５Ａが、プロセスを特定する識別子（以降プロセスＩＤ（あるいはｐＩＤ）という）、移動対象の論理ページ番号および移動先のカラーＩＤが指定されて、カラー変更要求が行われることによって、動作が開始される。【００５８】  論理物理ページ変換部３１１は、図１２に示したプロセス３０１が指定された論理ページ番号で物理ページをマップしているか調べる（ステップＳ４２１）。マップしていない場合は（Ｎ）、要求元に応答を返す（ステップＳ４０２）。【００５９】  マップしている場合には（ステップＳ４２１：Ｙ）、マップしている物理ページ番号を求める（ステップＳ４２３）。そして、求めた物理ページ番号を移動先ページ取得部３０６Ａに渡す。移動先ページ取得部３０６Ａおよびページ移動指示部３０７のこれ以降の処理の流れは、図１１のステップＳ４０１〜Ｓ４１１の処理と同じであり、図示および説明を省略する。【００６０】  （第３の実施の形態）  図１４は、本発明の第３の実施の形態によるメモリ再配置システムの概要を表わしたものである。図１４で図１０と同一部分には同一の符号を付しており、これらの説明を適宜省略する。第３の実施の形態のメモリ再配置システム３００Ｂでは、オペレーティングシステム３０２Ｂ内のカラー変更部３０５Ｂが、移動先ページ取得部３０６Ｂおよびページ移動指示部３０７の他に、移動元ページ決定部３１２を備えている。【００６１】  移動元ページ決定部３１２は、プロセスＩＤとカラー集合を指定されると、プロセス３０１がマップしている物理ページの中から、カラー集合に含まれるカラーＩＤを持つ物理ページを特定する機能を有する。【００６２】  図１５は、本実施の形態で、物理ページを他の物理ページに移動する場合を説明するためのものである。ただし、図１５で図１１と同一部分には同一の符号を付しており、これらの説明を適宜省略する。【００６３】  本実施の形態では、プロセスＩＤ、移動元カラー集合、移動先カラー集合が指定されて、カラー変更部３０５Ｂにカラー変更要求が行われることによって、動作が開始される。【００６４】  移動元ページ決定部３１２は、図１０に示すプロセス３０１がマップしている物理ページの中から、移動元カラー集合に含まれるカラーＩＤを持つ物理ページ集合を求める（ステップＳ４４１）。そして、移動元カラー集合に含まれるカラーＩＤを持つ物理ページの集合が空であるかをチェックする（ステップＳ４４２）。集合が空の場合は（Ｙ）、要求元へ応答を返す（ステップＳ４０２）。【００６５】  集合が空でない場合は（ステップＳ４４２：Ｙ）、移動先ページ取得部３０６Ｂが、移動元ページ決定部３１２が求めた物理ページ集合と、移動先カラー集合を指定されて呼び出される。移動先ページ取得部３０６Ｂおよびページ移動指示部３０７のこれ以降の処理の流れは、図１１のステップＳ４０１〜Ｓ４１１の処理と同じであり、これらの図示および説明を省略する。【００６６】  本実施の形態では、プロセスＩＤ、移動元カラー集合および移動先カラー集合を指定して移動元ページ決定部３１２を呼び出すことができるという特徴を持つ。【００６７】  （第４の実施の形態）  図１６は、本発明の第４の実施の形態によるメモリ再配置システムの概要を表わしたものである。図１６で図１０および図１４と同一部分には同一の符号を付しており、これらの説明を適宜省略する。第４の実施の形態のメモリ再配置システム３００Ｃでは、オペレーティングシステム３０２Ｃ内のカラー変更部３０５Ｃが、移動先ページ取得部３０６Ｃ、ページ移動指示部３０７および移動元ページ決定部３１２Ｃの他に、移動元カラー決定部３１３を備えている。【００６８】  移動元カラー決定部３１３は、移動先カラー集合を指定されると、移動元カラー集合を決定するカラーＩＤを決定する。決定された移動元カラー集合には、移動先カラー集合に含まれないカラーＩＤが含まれる。移動先ページカラー集合に含まれるカラーＩＤを含んでもよい。【００６９】  図１７は、本実施の形態で、物理ページを他の物理ページに移動する場合を説明するためのものである。ただし、図１７で図１１および図１５と同一部分には同一の符号を付しており、これらの説明を適宜省略する。【００７０】  本実施の形態では、プロセスＩＤおよび移動先カラー集合が指定されて、カラー変更部３０５Ｃにカラー変更要求が行われることによって、動作が開始される。【００７１】  移動元カラー決定部３１３は、移動先カラー集合から、移動元カラー集合を決定する（ステップＳ４６１）。そして、移動元カラー集合に含まれるカラーＩＤを持つ物理ページの集合が空であるかをチェックする（ステップＳ４６２）。集合が空の場合は（Ｙ）、要求元へ応答を返す（ステップＳ４０２）。【００７２】  集合が空でない場合は（ステップＳ４６２：Ｎ）、プロセスＩＤと決定された移動元カラー集合とを指定して、移動元ページ決定部３１２Ｃが呼び出される。これ以降の動作は、図１５に示した第３の実施の形態の動作から明らかであり、図示および説明を省略する。【００７３】  本実施の形態では、プロセスＩＤ、移動先カラー集合を指定してカラー変更部３０５Ｃを呼び出すことができるという特徴を持つ。【００７４】  （第５の実施の形態）  図１８は、本発明の第５の実施の形態によるメモリ再配置システムの概要を表わしたものである。図１８で図１０と同一部分には同一の符号を付しており、これらの説明を適宜省略する。第５の実施の形態のメモリ再配置システム３００Ｄでは、オペレーティングシステム３０２Ｄ内のカラー変更部３０５Ｄが、移動先ページ取得部３０６Ｄ、ページ移動指示部３０７の他に、カラー選別部３１４を備えている。また、メモリ管理部３０３Ｄは、指定されたカラーＩＤの空きページを割り当てる機能を持っていない。本実施の形態では、連続する物理ページは連続するカラーＩＤを持つ。このため、最低限カラー数分だけ連続するページの集合中には、すべてのカラーＩＤのページが含まれるという性質を利用する。【００７５】  本実施の形態の移動先ページ取得部３０６Ｄは、メモリ管理部３０３Ｄに対して、カラー数分の連続した空きページを要求する機能を有する。メモリ管理部３０３Ｄは、指定された数の連続した空きページを割り当て可能かを調べ、割り当て可能ならそのページ集合を返し、割り当て不可能な場合は、エラーを示す値を返す機能を有する。【００７６】  カラー選別部３１４は、移動先ページ取得部３０６Ｄが取得したページ集合から、移動先カラーとして指定されたカラーＩＤ以外のカラーＩＤを持つページを開放し、指定されたカラーＩＤのページを移動先ページとして選択する機能を有する。【００７７】  図１９は、本実施の形態で、物理ページを他の物理ページに移動する場合を説明するためのものである。ただし、図１９で図１１と同一部分には同一の符号を付しており、これらの説明を適宜省略する。【００７８】  本実施の形態による動作のうち、移動先ページ取得部３０６Ｄが呼び出されるまでの動作は、第１の実施の形態と同様である。そこで、この部分の処理はステップＳ４８１として表わしており、この部分の説明は省略する。ステップＳ４８１の処理でステップＳ４０２に進む処理以外の処理結果があると、移動先ページ取得部３０６Ｄはメモリ管理部３０３Ｄに対して、カラー数分だけ連続する空きページを要求する（ステップＳ４８２）。【００７９】  メモリ管理部３０３Ｄは、要求された数だけ連続する空きページ集合が存在するかをチェックする（ステップＳ４８３）。存在する場合には（Ｙ）、空きページ集合から任意のページ集合を返す（ステップＳ４８４）。そのような空きページ集合が存在しない場合は（ステップＳ４８３：Ｎ）、エラーを示す値を返す（ステップＳ４８５）。【００８０】  移動先ページ取得部３０６Ｄは、メモリ管理部３０３Ｄからの返り値を調べる（ステップＳ４８６）。この結果、ステップＳ４０７でメモリ管理部３０３よりエラーが返された場合は（Ｙ）、要求元にエラーを示す応答を返す（ステップＳ４０２）。これ以外の場合、すなわち空きページ集合が取得された場合（ステップＳ４８６：Ｎ）、カラー選別部３１４は、取得された物理ページ集合から指定されたカラーＩＤ以外のページをメモリ管理部３０３Ｄに対して開放する（ステップＳ４８７）。次に、カラー選別部３１４は、指定されたカラーＩＤのページを移動先ページとして、ページ移動指示部３０７を呼び出す（ステップＳ４８８）。これ以降は、図１１のステップＳ４０９以降の処理と同一である。このため、その図示および説明を省略する。【００８１】  （実施の形態の変形可能性）  以上、第１〜第５の実施の形態について説明した。本発明は以上の実施の形態に限定されるものではない。たとえば、第５の実施の形態と、第２〜４の実施の形態とを組み合わせた実施の形態を採ってもよい。【００８２】  また、第１〜第４の実施の形態では、オペレーティングシステム３０２〜３０２Ｃがメモリ管理部３０３〜３０３Ｃ、ページ移動部３０４、カラー変更部３０５〜３０５Ｃを持つ形態について説明したが、オペレーティングシステム以外がこれに相当する機能を持つ実施の形態を採ってもよい。そのような例として、これらのすべてまたは一部の機能を仮想マシンモニタが持つ場合や、ハードウェアが実装している場合を挙げることができる。
【実施例】
【００８３】  次に、具体的な実施例を用いて本発明を説明する。【００８４】  （実施例１）  図２０は、本発明の第１の実施例によるメモリ再配置システムの概要を表わしたものである。第１の実施例のメモリ再配置システム３０００Ｃは、図１６および図１７で説明した第４の実施の形態に対応するものである。メモリ再配置システム３０００Ｃは、優先度制御部３０１０と、プロセスＡ３０１１、プロセスＢ３０１２、およびオペレーティングシステム３０２０Ｃから構成されている。オペレーティングシステム３０２０Ｃは、カラー変更部３０５０Ｃ、メモリ管理部３０３０、ページ移動部３０４０、および本発明の説明と直接関係しない、破線で示したフリーリスト３０８０、ページテーブル３０９０およびカラーテーブル３１００から構成されている。このうち、カラー変更部３０５０Ｃは、移動元カラー決定部３１３０、移動元ページ決定部３１２０Ｃ、移動先ページ取得部３０６０Ｃおよびページ移動指示部３０７０によって構成されている。【００８５】  第１の実施例では、本発明を用いることで、プロセスＡ３０１１とプロセスＢ３０１２の間でキャッシュ利用量を制御するようにしている。カラー変更部３０５０Ｃ、メモリ管理部３０３０およびページ移動部３０４０の機能は、第４の実施の形態におけるカラー変更部３０５Ｃ、メモリ管理部３０３およびページ移動部３０４と同一である。優先度制御部３０１０は、プロセスＡ３０１１とプロセスＢ３０１２の間の優先度およびキャッシュの割り当てを制御する機能を持つ。本実施例で、キャッシュはダイレクトマップキャッシュであり、キャッシュサイズは８ページである。【００８６】  本実施例で、ある時点に、プロセスＡ３０１１の方がプロセスＢ３０１２よりも優先度が高かったものとする。この状況から、後の時点でプロセスＢ３０１２の方がプロセスＡ３０１１よりも優先度が高い状況に変化する場合を例に挙げて説明する。【００８７】  先に説明した図６は、プロセスＡ３０１１がプロセスＢ３０１２よりも優先度が高い状況での、２つのプロセスのメモリマップを示したものである。優先度制御部３０１０は、プロセスＡ３０１１に利用可能なカラー集合｛０，１，２，３｝と、プロセスＢ３０１２に利用可能なカラー集合｛４，５｝を別に割り当てている。このようにプロセスＡ３０１１とプロセスＢ３０１２に異なるカラーＩＤを割り当てることで、それぞれのプロセスが利用可能なキャッシュ領域を分割し、プロセス間のキャッシュ競合による性能低下やばらつきを削減することができる。また、プロセスＡ３０１１に対して、より多くのカラーＩＤを割り当てることで、より多くキャッシュを利用可能にし、より高い性能で動作できるように制御している。【００８８】  プロセスＡ３０１１とプロセスＢ３０１２の優先度が逆転した場合の動作を次に説明する。優先度制御部３０１０は、プロセスＡ３０１１とプロセスＢ３０１２の優先度を変更すると同時に、カラー変更部３０５０Ｃに対して、プロセスＡ３０１１はカラー集合｛０，１｝を利用可能なように、また、プロセスＢ３０１２はカラー集合｛２，３，４，５｝を利用可能なように変更を行う。【００８９】  図２１は、プロセスＡの利用可能カラーＩＤの変更��理の様子を表わしたものである。図２０と共に説明する。まず、優先度制御部３０１０は、カラー変更部３０５０Ｃに対して、プロセスＡ３０１１のプロセスＩＤと移動先カラー集合として｛０，１｝を指定して、カラー変更要求を行う（ステップＳ５０１）。これに対して、移動元カラー決定部３０３０は、移動対象カラー集合として｛４，５｝を選ぶ（ステップＳ５０２）。【００９０】  移動元ページ決定部３１２０Ｃは、移動対象物理ページ集合として、移動対象カラー集合に含まれるカラーＩＤを持つ物理ページ集合｛２，３，１０，１１｝を選ぶ（ステップＳ５０３）。移動先ページ取得部３０６０Ｃは、利用可能カラー集合｛０，１｝を指定して、メモリ管理部３０３０から４つの空きページを要求する（ステップＳ５０４）。【００９１】  メモリ管理部３０３０から物理ページ集合｛１６，１７，２４，２５｝が返される（ステップＳ５０５）。これを基にしてページ移動指示部３０７０は、移動元ページとして｛２，３，１０，１１｝を、また移動先ページとして｛１６，１７，２４，２５｝を指定して、ページ移動部３０４０を呼び出す（ステップＳ５０６）。ページ移動部３０４０は、移動元ページから移動先ページにデータをコピーし、移動元ページをマップしているページテーブルの対応するエントリを移動先ページに書き換える（ステップＳ５０７）。【００９２】  以上、プロセスＡの利用可能カラーＩＤの変更処理の様子を説明したが、プロセスＢ３０１２の利用可能カラーＩＤの変更についても同様の処理で行われる。【００９３】  図２２は、２つのプロセスに対する利用可能カラーＩＤの変更後のメモリマップを示したものである。図２０と共に説明する。【００９４】  図２２に示すように、プロセスＡ３０１１はカラーＩＤ｛０，１｝のキャッシュ領域が利用可能に変更され、プロセスＢ３０１２はカラーＩＤ｛２，３，４，５｝のキャッシュ領域が利用可能に変更されている。これにより、プロセスＢ３０１２は、変更前よりも高い性能を発揮することが可能になる。このように本実施例ではプロセス間の優先度変更に合わせて、プロセス間の利用可能なキャッシュ量を変更することができるので、状況に合わせたキャッシュ制御を行うことができる。【００９５】  第１の実施例では、２つのプロセス間でのキャッシュ制御を例にしたが、任意の数のプロセス間でも同様なキャッシュ制御が可能である。また、第１の実施例では優先度制御部３０１０がオペレーティングシステム３０２０Ｃの外部にある例を示したが、優先度制御部３０１０がオペレーティングシステム３０２０内に配置されてもよい。【００９６】  （実施例２）  図２３は、本発明の第２の実施例によるメモリ再配置システムの概要を表わしたものである。第２の実施例のメモリ再配置システム３０００Ｂは、図１４および図１５で説明した第３の実施の形態に対応するものである。メモリ再配置システム３０００Ｂは、優先度制御部３０１０と、プロセスＡ３０１１、プロセスＢ３０１２、およびオペレーティングシステム３０２０Ｂから構成されている。オペレーティングシステム３０２０Ｂは、カラー変更部３０５０Ｂ、メモリ管理部３０３０、ページ移動部３０４０、および本発明の説明と直接関係しない���破線で示したフリーリスト３０８０、ページテーブル３０９０およびカラーテーブル３１００から構成されている。このうち、カラー変更部３０５０Ｂは、移動元ページ決定部３１２０、移動先ページ取得部３０６０Ｂおよびページ移動指示部３０７０によって構成されている。【００９７】  この第２の実施例では、第１の実施例の場合と同様にプロセスＡ３０１１とプロセスＢ３０１２との間のキャッシュ制御を行う。本実施例では、この制御の際に優先度制御部３０１０がプロセスＩＤと移動先カラー集合に加えて移動元カラー集合を指定して、カラー変更部３０５０Ｂを呼び出すことを特徴としている。【００９８】  この第２の実施例のメモリ再配置システム３０００Ｂの動作は、第２の実施の形態の動作と第１の実施例から明らかである。したがって、動作の具体的説明は省略する。【００９９】  （実施例３）  図２４は、本発明の第３の実施例によるメモリ再配置システムの概要を表わしたものである。第３の実施例のメモリ再配置システム３０００は、図１０および図１１で説明した第１の実施の形態に対応するものである。この実施例ではキャッシュの一部の領域へのアクセスが集中するのを防ぐ機能を実現する。【０１００】  このため、メモリ再配置システム３０００は、オペレーティングシステム３０２０単独で構成することができる。オペレーティングシステム３０２０は、カラー分散指示部３２００、カラー変更部３０５０、メモリ管理部３０３０、ページ移動部３０４０、および本発明の説明と直接関係しない、破線で示したフリーリスト３０８０、ページテーブル３０９０およびカラーテーブル３１００から構成されている。このうち、カラー変更部３０５０は、移動先ページ取得部３０６０およびページ移動指示部３０７０によって構成されている。【０１０１】  カラー分散指示部３２００は、利用されている物理ページのカラーＩＤを調べ、特定のカラーＩＤが多く利用されている場合にカラー変更部３０５０を呼び出す機能を有する。【０１０２】  図２５は、キャッシュの一部の領域へのアクセスの集中を防ぐための処理の流れを表わしたものである。図２４と共に説明する。まず、カラー分散指示部３２００が、すべてのプロセスによって利用されている物理ページのカラーＩＤを調べてヒストグラムを作成する（ステップＳ５２１）。【０１０３】  図２６は、利用されている物理ページのカラーＩＤのヒストグラムの一例を表わしたものである。ここで、横軸の各数字はカラーＩＤを示しており、縦軸が使用頻度を表わしている。グラフ内の各数字はページ番号を表わしている。物理ページの再配置前なので、図２６に示した例では、カラーＩＤ「０」および「１」にアクセスが集中していることが分かる。【０１０４】  図２５に戻って説明を続ける。カラー分散指示部３２００は、利用されている全物理ページ数をカラー数で割って平均を求める（ステップＳ５２２）。図２６に示した例では、平均したときのページ数は、２ページとなる。そこで、カラー分散指示部３２００は２ページよりも多くのページが利用されているカラーＩＤを有する物理ページに対して、カラー変更を行う。具体的には、カラー分散指示部３２００は、まず、物理ページ番号「１６」と移動先カラー���Ｄ「２」を指定して、カラー変更部３０５０を呼び出す（ステップＳ５２３）。カラー変更部３０５０は、物理ページ「１６」を物理ページ「１０」に再配置することで、カラーＩＤ変更を行う（ステップＳ５２４）。【０１０５】  この後、平均を超えた物理ページが存在するかをチェックする（ステップＳ５２５）。存在すれば、ステップＳ５２３に戻って、該当ページについてカラー変更部３０５０によってカラーＩＤ変更を行う（ステップＳ５２３，Ｓ５２４）。このようにして、平均を超えた物理ページが存在しなくなったら（ステップＳ５２５：Ｎ）、処理を終了する（エンド）。【０１０６】  図２７は、カラーＩＤ変更後のヒストグラムを示す。適宜な時間間隔で図２５の処理を繰り返せば、カラーＩＤを均等に分散させることによって、特定のキャッシュ領域へのアクセス集中を削減することができる。【０１０７】  なお、本発明の第３の実施例ではすべてのプロセスによって利用されている物理ページを対象にしたが、これに限定されるものではない。たとえば、頻繁に実行されるプロセスの集合を対象にするようにしてもよいし、単一プロセスを対象にする形態を採ってもよい。また、オペレーティングシステムが利用する物理ページを対象として含めるようにしてもよい。【０１０８】  （実施例４）  図２８は、本発明の第４の実施例によるメモリ再配置システムの概要を表わしたものである。第４の実施例のメモリ再配置システム３０００Ａは、図１２および図１３で説明した第２の実施の形態に対応するものである。メモリ再配置システム３０００Ａは、プログラム６０１と、オペレーティングシステム３０２０Ａから構成されている。オペレーティングシステム３０２０Ａは、カラー変更部３０５０Ａ、メモリ管理部３０３０、ページ移動部３０４０、および本発明の説明と直接関係しない、破線で示したフリーリスト３０８０、ページテーブル３０９０およびカラーテーブル３１００から構成されている。このうち、カラー変更部３０５０Ａは、論理物理ページ変換部３１１０、移動先ページ取得部３０６０Ａおよびページ移動指示部３０７０によって構成されている。【０１０９】  ところで、プロセスが利用する異なるデータが、同じカラーＩＤを持つ異なる物理ページにマップされる場合、深刻なキャッシュ競合ミスを起こす可能性がある。第４の実施例のメモリ再配置システム３０００Ａは、このようなプロセス内でのキャッシュ競合ミスを動的に削減するようにしている。【０１１０】  図２９は、このようなキャッシュ競合ミスを生じるプログラムの例を表わしたものである。このプログラム６０１の例では、配列ａと配列ｂとが同じカラーＩＤを持っている。このようなプログラム６０１では、物理ページにマップされる場合や、ループを実行する際に、深刻なキャッシュ競合ミスが起こる。本発明の第４の実施例では、このような競合ミスを、データのカラーＩＤが異なるように指定することによって解決するようにしている。【０１１１】  図３０は、図２９に示した例に対応するキャッシュ競合ミスの解決のための処理の流れを表わしたものである。図２８と共に説明する。プログラム６０１は、配列ａの論理ページ番号とカラー番号を指定して、カラー変更部３０５０Ａを呼び出す（ステップＳ５４１）。これを基にしてカラー変更部３０５０Ａは、配列ａが割り当てられている物理ページを求め、指定されたカラーＩＤの物理ページへ移動する（ステップＳ５４２）。【０１１２】  ここでプログラム６０１は、配列ｂの論理ページ番号と、ステップＳ５４１で指定したカラー番号とは異なるカラー番号を指定して、カラー変更部３０５０Ａを呼び出す（ステップＳ５４３）。カラー変更部３０５０Ａは、配列ｂが割り当てられている物理ページを求め、指定されたカラーＩＤの物理ページへ移動する（ステップＳ５４４）。以上により、配列ａと配列ｂは異なるカラーＩＤを持つ物理ページに割り当てられることになる。【０１１３】  このように、第４の実施例では、プログラム６０１の実行フェーズが変わり、配列間の競合関係が変更した場合に、当該配列間で同様の動作を行うことによって、動的に競合関係を解消することができる。【０１１４】  以上、実施例を参照して本願発明を説明したが、本願発明は上記実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１１５】  この出願は、２００７年１２月１２日に出願された日本出願特願２００７−３２０７３４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2009075177.tif 000003
【図２】
2009075177.tif 000004
【図３】
2009075177.tif 000005
【図４】
2009075177.tif 000006
【図５】
2009075177.tif 000007
【図６】
2009075177.tif 000008
【図７】
2009075177.tif 000009
【図８】
2009075177.tif 000010
【図９】
2009075177.tif 000011
【図１０】
2009075177.tif 000012
【図１１】
2009075177.tif 000013
【図１２】
2009075177.tif 000014
【図１３】
2009075177.tif 000015
【図１４】
2009075177.tif 000016
【図１５】
2009075177.tif 000017
【図１６】
2009075177.tif 000018
【図１７】
2009075177.tif 000019
【図１８】
2009075177.tif 000020
【図１９】
2009075177.tif 000021
【図２０】
2009075177.tif 000022
【図２１】
2009075177.tif 000023
【図２２】
2009075177.tif 000024
【図２３】
2009075177.tif 000025
【図２４】
2009075177.tif 000026
【図２５】
2009075177.tif 000027
【図２６】
2009075177.tif 000028
【図２７】
2009075177.tif 000029
【図２８】
2009075177.tif 000030
【図２９】
2009075177.tif 000031
【図３０】
2009075177.tif 000032
【国際調査報告】
2009075177.tif 000033
2009075177.tif 000034