(57)【特許請求の範囲】
【請求項１】
第１のメモリに配置された第１の記憶領域、前記第１のメモリの前記第１の記憶領域以外のキャッシュ領域の容量を使用してキャッシュされる前記第１のメモリよりも低速である第２のメモリに配置された第２の記憶領域、およびキャッシュされずに前記第２のメモリに配置された第３の記憶領域を有する記憶装置と、
前記第１の記憶領域の容量が増加し、前記キャッシュ領域の容量が減少した場合に、前記キャッシュ領域の容量に応じて前記第２の記憶領域の容量を減らし、前記第３の記憶領域の容量を増やすプロセッサと、
を備える情報処理装置。
【請求項２】
前記プロセッサは、
さらに前記第１の記憶領域の容量が減少し、前記キャッシュ領域の容量が増加した場合に、前記キャッシュ領域の容量に応じて前記第２の記憶領域の容量を増やし、前記第３の記憶領域の容量を減らす、
請求項１に記載の情報処理装置。
【請求項３】
前記プロセッサは、
前記第１の記憶領域の容量が増加し、前記キャッシュ領域の容量が減少した場合に、前記第２の記憶領域に記憶したデータのうち前記データへのアクセス頻度に応じて選択されるデータの記憶先を前記第３の記憶領域に変更する、
請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記プロセッサは、
前記第１の記憶領域の容量が減少し、前記キャッシュ領域の容量が増加した場合に、前記第３の記憶領域に記憶したデータのうち前記データへのアクセス頻度に応じて選択されるデータの記憶先を前記第２の記憶領域に変更する、
請求項２に記載の情報処理装置。
【請求項５】
第１のメモリと前記第１のメモリよりも低速である第２のメモリとに配置される記憶領域を有する記憶装置を備える情報処理装置のプロセッサが、
前記第１のメモリに第１の記憶領域を配置し、前記第１のメモリの前記第１の記憶領域以外のキャッシュ領域の容量を使用してキャッシュされる第２の記憶領域およびキャッシュされない第３の記憶領域を前記第２のメモリに配置し、
前記第１の記憶領域の容量が増加し、前記キャッシュ領域の容量が減少した場合に、前記キャッシュ領域の容量に応じて前記第２の記憶領域の容量を減らし、前記第３の記憶領域の容量を増やす、
記憶装置制御方法。
【請求項６】
第１のメモリと前記第１のメモリよりも低速である第２のメモリとに配置される記憶領域を有する記憶装置を備える情報処理装置のプロセッサに、
前記第１のメモリに第１の記憶領域を配置させ、前記第１のメモリの前記第１の記憶領域以外のキャッシュ領域の容量を使用してキャッシュされる第２の記憶領域およびキャッシュされない第３の記憶領域を前記第２のメモリに配置させ、
前記第１の記憶領域の容量が増加し、前記キャッシュ領域の容量が減少した場合に、前記キャッシュ領域の容量に応じて前記第２の記憶領域の容量を減少させ、前記第３の記憶領域の容量を増加させる、
ための記憶装置制御プログラム。
【請求項７】
第１のメモリに配置された第１の記憶領域、前記第１のメモリの前記第１の記憶領域以
外のキャッシュ領域の容量を使用してキャッシュされる前記第１のメモリよりも低速である第２のメモリに配置された第２の記憶領域、およびキャッシュされずに前記第２のメモリに配置された第３の記憶領域を有する記憶装置と、前記第１の記憶領域の容量が増加し、前記キャッシュ領域の容量が減少した場合に、前記キャッシュ領域の容量に応じて前記第２の記憶領域の容量を減らし、前記第３の記憶領域の容量を増やすプロセッサの少なくとも一方を複数備える情報処理装置を、
複数備える情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、記憶装置制御方法、記憶装置制御プログラム及び情報処理システムに関する。
【背景技術】
【０００２】
サーバ上のミドルウェアであるインメモリ処理アプリケーションは、データやプログラムをメモリ上に保持し、ハードディスク等の補助記憶装置（外部記憶装置ともいう）を使用せずにデータ処理を行うコンピュータプログラムである。インメモリ処理アプリケーションが扱うデータ量の増大に伴い、メモリ使用量は増加する。メモリ使用量の増加に対応するため、サーバの外部にメモリプールを配置することが考えられる。メモリプールは、メモリインターフェースを持ち、複数のメモリを搭載したハードウェアである。
【０００３】
メモリプールに搭載されるメモリとして、Dynamic Random Access Memory（ＤＲＡＭ）のような高速メモリの他、ストレージクラスメモリ（Storage Class Memory、ＳＣＭ）が利用されるようになってきている。ＳＣＭは、ＤＲＡＭと比べ、低速であるが容量が大きいメモリである。ＳＣＭを利用する場合、メモリプールは、アクセス速度の異なる異種メモリを混載することになる。
【０００４】
インメモリ処理アプリケーションを高速に動作させるため、データのアクセス頻度や再利用性に基づいて、メモリプールにおけるデータの割当てを最適化することが考えられる。例えば、アクセス頻度が所定の閾値より高いデータをＤＲＡＭに割り当て、アクセス頻度が所定の閾値以下のデータはＳＣＭに割り当てればよい。さらに、ＤＲＡＭの未使用領域を、ＳＣＭのキャッシュとして利用することも可能である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−７８２３１号公報
【特許文献２】特表２０１０−５２４０５９号公報
【特許文献３】特開２００６−１９５５６９号公報
【特許文献４】特開２００９−２１１２２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＤＲＡＭに割り当てるデータ量が増加すると、ＳＣＭのキャッシュとして利用できるＤＲＡＭの未使用領域の容量、即ちキャッシュ容量は減少する。キャッシュ容量の減少により、ＳＣＭからキャッシュされるデータ量とＤＲＡＭ上のキャッシュ容量とのバランスが崩れる。この場合、ＤＲＡＭ上のキャッシュにおいて頻繁にページが置き換えられることになり、サーバの性能が低下するスラッシングが発生しやすくなる。
【０００７】
本発明の一態様は、アクセス速度の異なる異種メモリを混載する記憶装置に対するアクセス速度の劣化を回避する情報処理装置、記憶装置制御方法、記憶装置制御プログラム及び情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の態様の一つは、第１のメモリに配置された第１の記憶領域、第１のメモリの第１の記憶領域以外のキャッシュ領域の容量を使用してキャッシュされる第１のメモリより
も低速である第２のメモリに配置された第２の記憶領域、およびキャッシュされずに第２のメモリに配置された第３の記憶領域を有する記憶装置と、第１の記憶領域の容量が増加し、キャッシュ領域の容量が減少した場合に、キャッシュ領域の容量に応じて第２の記憶領域の容量を減らし、第３の記憶領域の容量を増やすプロセッサと、を備える情報処理装置である。
【発明の効果】
【０００９】
開示の情報処理装置、記憶装置制御方法、記憶装置制御プログラム及び情報処理システムによれば、アクセス速度の異なる異種メモリを混載する記憶装置に対するアクセス速度の劣化を回避することができる。
【図面の簡単な説明】
【００１０】
【図１Ａ】情報処理装置のハードウェア構成の一例を示す図である。
【図１Ｂ】情報処理システムの構成の一例を示す図である。
【図２】メモリプールのハードウェア構成の一例を示す図である。
【図３】メモリ領域へのデータ割当ての例を示す図である。
【図４】メモリ領域における区分１から区分３の領域の配置例を示す図である。
【図５】キャッシュ領域の容量が減少し、スラッシングが発生する例を示す図である。
【図６】キャッシュ領域の容量の減少に応じて、区分２の領域を区分３の領域に変更する例を示す図である。
【図７Ａ】キャッシュ領域管理テーブルのデータ構造の一例を示す図である。
【図７Ｂ】ＤＲＡＭ領域管理テーブルのデータ構造の一例を示す図である。
【図７Ｃ】ＳＣＭ領域管理テーブルのデータ構造の一例を示す図である。
【図７Ｄ】ＤＲＡＭ上に構成されるキャッシュのエントリの例を示す図である。
【図８】区分２の領域を区分３の領域に変更する処理のフローチャートの一例である。
【図９】区分３の領域を区分２の領域に変更する処理のフローチャートの一例である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１２】
＜実施形態＞
インメモリ処理アプリケーションは、アクセス速度が異なる異種メモリを混載するメモリプールにアクセスする場合、データのアクセス頻度に応じて、メモリ領域へのデータの割当てを最適化する。また、アクセス速度がＤＲＡＭよりも遅いＳＣＭに割り当てられたデータを、ＤＲＡＭ上にキャッシュすることで、アクセス速度の改善を図る。
【００１３】
しかし、ＤＲＡＭ上のキャッシュ領域の容量が減少すると、スラッシングが発生しやすくなる。このため、本実施形態では、ＤＲＡＭ上のキャッシュ領域の容量が減少した場合に、ＳＣＭにおいて、ＤＲＡＭ上にキャッシュされるデータを割り当てる領域の容量を減少させることにより、スラッシングの発生が抑制される。
【００１４】
本実施形態は、インメモリ処理アプリケーションが、ＤＲＡＭとＳＣＭとを混載するメモリプールにアクセスする例によって説明される。なお、本発明は、ＤＲＡＭとＳＣＭとを混載するメモリプールに対する領域割当方式に限定されるものではない。本発明の方式は、アクセス速度の異なる複数の異種メモリに対するアクセスについて適用可能である。
【００１５】
＜ハードウェア構成＞
図１Ａは、情報処理装置１のハードウェア構成の一例を示す図である。情報処理装置１は、プロセッサ２、主記憶装置３および補助記憶装置４を備え、メモリプール５に接続される。なお、情報処理装置１のハードウェア構成は、図１Ａに示されるものに限定されず、適宜、追加、置換、削除等の変更が可能である。
【００１６】
プロセッサ２は、補助記憶装置４に保持されたオペレーティングシステム（Operating System、ＯＳ）４２や様々なコンピュータプログラムを主記憶装置３にロードして実行することによって、様々な処理を実行する。ただし、コンピュータプログラムによる処理の一部がハードウェア回路により実行されてもよい。プロセッサ２は、例えば、Central Processing Unit（ＣＰＵ）や、Digital Signal Processor（ＤＳＰ）である。
【００１７】
主記憶装置３は、プロセッサ２に、補助記憶装置４に格納されているプログラムをロードするための記憶領域、およびプログラムを実行するための作業領域を提供する。また、主記憶装置３は、データを保持するためのバッファとして用いられる。主記憶装置３は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）等の半導体メモリである。
【００１８】
補助記憶装置４は、様々なプログラムや、各プログラムの実行に際してプロセッサ２が使用するデータを格納する。補助記憶装置４は、例えば、Erasable Programmable ROM（
ＥＰＲＯＭ）、又はハードディスクドライブ（Hard Disk Drive、ＨＤＤ）等の不揮発性
のメモリである。補助記憶装置４は、例えば、インメモリ処理アプリケーション４１、ＯＳ４２、その他様々なアプリケーションプログラムを保持する。
【００１９】
メモリプール５は、アクセス速度の異なる異種のメモリを複数備える。図１Ａにおいて、メモリプール５は、ＤＲＡＭ５１およびＳＣＭ５２を備える。メモリプール５は、ＤＲＡＭ５１およびＳＣＭ５２を、それぞれ複数備えてもよい。メモリプール５は、「記憶装置」の一例である。また、ＤＲＡＭ５１は「第１のメモリ」の一例である。さらに、ＳＣＭ５２は、「第２のメモリ」の一例である。
【００２０】
図１Ｂは、情報処理システム１０の構成の一例を示す図である。情報処理システム１０は、複数の情報処理装置１を含む。各情報処理装置１は、プロセッサ２およびメモリプール５を含む。プロセッサ２およびメモリプール５は、図１Ａのプロセッサ２およびメモリプール５と同一であるため、その説明は省略される。
【００２１】
情報処理装置１のハードウェア構成は、図１Ｂに示されるものに限定されず、適宜、追加、置換、削除等の変更が可能である。情報処理装置１は、プロセッサ２とメモリプール５のいずれか一方を複数備えていればよく、図１Ａの情報処理装置１と同様であってもよい。
【００２２】
図２は、メモリプール５のハードウェア構成の一例を示す図である。図２において、メモリプール５は、２つのＤＲＡＭ５１および３つのＳＣＭ５２を備える。図２において、ＤＲＡＭ５１は、例えば、Dual Inline Memory Module（ＤＩＭＭ）等のモジュールであ
る。また、ＳＣＭ５２は、例えば、抵抗変化型メモリ（Resistance Random Access Memory、ＲｅＲＡＭ）、磁気メモリ（Magnetoresistive Random Access Memory、ＭＲＡＭ）、相変化メモリ（Parameter Random Access Memory、ＰＲＡＭ）、強誘電体メモリ（Ferroelectric Random Access Memory、ＦｅＲＡＭ）である。
【００２３】
メモリプール５に搭載されるＤＲＡＭ５１およびＳＣＭ５２等のモジュールの数は、図２の場合に限られない。メモリプール５に搭載されるメモリモジュールの数は、アクセス
速度の異なる異種のメモリが混載されていれば、任意の数であってよい。また、メモリプール５は、メモリインターフェースを持ち、情報処理装置１のプロセッサ２および主記憶装置３とのデータのやり取りを行う。
【００２４】
＜メモリ領域へのデータ割当て＞
図３および図４は、メモリ領域へのデータ割当ての例を説明するための図である。図３は、メモリ領域へのデータ割当ての例を示す図である。メモリ領域は、ＤＲＡＭ領域およびＳＣＭ領域を含む。ＤＲＡＭ領域に対するアクセス速度は、ＳＣＭ領域に対するアクセス速度よりも高速である。
【００２５】
ＤＲＡＭ領域は、Ｄ１およびＤ２の領域を含む。ＳＣＭ領域は、Ｓ１の領域を含む。アクセス頻度が所定の閾値より高いデータをＤ１の領域に割り当て、アクセス頻度が所定の閾値以下のデータをＳ１の領域に割り当てることで、メモリプール５に対するアクセス速度は改善される。また、ＤＲＡＭ上で使用されていないＤ２の領域を、Ｓ１の領域のキャッシュとして使用することで、Ｓ１の領域に割り当てられたデータへのアクセス速度は、さらに改善される。
【００２６】
ここで、データへのアクセス頻度は、アプリケーションの実行により計測される当該データへのアクセス回数等としてもよい。また、データベースのメタ情報やインデックス等、頻繁にアクセスされるデータを、Ｄ１の領域に割り当てるようにしてもよい。データベースのメタ情報は、例えば、データの作成日時や作成者、データ形式等であり、データを効率的に管理したり検索したりするために用いられる。
【００２７】
図４は、メモリ領域における区分１から区分３の領域の配置例を示す図である。図４において、メモリ領域は、ＤＲＡＭ領域およびＳＣＭ領域を含む。ＤＲＡＭ領域は、区分１の領域およびキャッシュ領域を含む。図４の区分１の領域は、図３のＤ１の領域に対応する。図４のキャッシュ領域は、図３のＤ２の領域に対応する。  
【００２８】
区分１の領域は、頻繁にアクセスされるデータが割り当てられる。区分１の領域は、「第１の記憶領域」の一例である。キャッシュ領域は、ＤＲＡＭ領域のうち区分１の領域以外の領域である。キャッシュ領域は、ＳＣＭ領域に割り当てたデータのキャッシュとして用いられる。
【００２９】
ＳＣＭ領域は、図３のＳ１の領域に対応し、区分２の領域および区分３の領域を含む。区分２の領域は、ＤＲＡＭ領域内のキャッシュ領域にキャッシュされるデータを割り当てるための領域である。アクセスは頻繁でないが再参照回数が所定の閾値より高いデータは、区分２の領域に割り当てられる。区分２の領域は、「第２の記憶領域」の一例である。
【００３０】
区分３の領域は、ＤＲＡＭ領域内のキャッシュ領域にキャッシュされないデータを割り当てるための領域である。アクセスは頻繁ではなく再参照回数が所定の閾値以下のデータは、区分３の領域に割り当てられる。区分３の領域は、「第３の記憶領域」の一例である。
【００３１】
＜スラッシングの抑制＞
図５および図６は、スラッシングの抑制について説明するための図である。図５は、キャッシュ領域の容量が減少し、スラッシングが発生する例を示す図である。図５において、メモリ領域は、ＤＲＡＭ領域およびＳＣＭ領域を含む。ＳＣＭ領域は、図４と同じであるため、その説明は省略される。
【００３２】
ＤＲＡＭ領域は、図４と同様に、区分１の領域およびキャッシュ領域を含む。ただし、
区分１に割り当てるデータ量の増加により、キャッシュ領域の容量は、図４の場合と比較して減少している。キャッシュ領域の容量の減少により、区分２の領域に割り当てられるキャッシュ対象のデータ量と、ＤＲＡＭ上のキャッシュ領域の容量とのバランスは崩れる。
【００３３】
このため、キャッシュ領域において頻繁にページが置き換えられ、プロセッサ２の処理性能が低下するスラッシングが発生しやすくなる。スラッシングを抑制するため、区分２の領域の容量が変更される。
【００３４】
図６は、キャッシュ領域の容量の減少に応じて、区分２の領域を区分３の領域に変更する例を示す図である。図６において、メモリ領域は、ＤＲＡＭ領域およびＳＣＭ領域を含む。ＤＲＡＭ領域は、図５と同じであるため、その説明は省略される。ＳＣＭ領域は、区分２の領域および区分３の領域を含む。本実施形態の情報処理装置１では、図６に例示のように、キャッシュ領域の容量の減少に応じて、区分２の領域の一部は、区分３の領域に変更される。
【００３５】
＜領域管理情報＞
図７Ａから図７Ｄは、キャッシュ領域、ＤＲＡＭ領域およびＳＣＭ領域の領域管理情報を説明するための図である。領域管理情報は、プロセッサ２からアクセスされるメモリ上に配置される。領域管理情報は、例えば、ＤＲＡＭ領域またはＳＣＭ領域に配置されても良い。領域管理情報は、メモリ割当て時およびメモリ開放時に、参照または更新される。なお、図７Ａから図７Ｄに示される領域管理情報のデータ構造は、一例であり、これらに限定されない。
【００３６】
図７Ａは、キャッシュ領域管理テーブル６のデータ構造の一例を示す図である。キャッシュ領域管理テーブル６は、キャッシュ領域に関する情報を管理する。キャッシュ領域管理テーブル６は、例えば、スタートアドレスおよびサイズを記憶する。
【００３７】
スタートアドレスは、メモリ領域におけるキャッシュ領域の開始位置である。サイズは、メモリ領域におけるキャッシュ領域の大きさである。具体的には、図７Ａの例では、キャッシュ領域は、アドレス０ｘ８０００から始まり、大きさが０ｘ２０００バイトの領域である。
【００３８】
図７Ｂは、ＤＲＡＭ領域管理テーブル７のデータ構造の一例を示す図である。ＤＲＡＭ領域管理テーブル７は、区分１の領域に関する情報を、複数の領域（以下、ページともいう）ごとに管理する。
【００３９】
ＤＲＡＭ領域管理テーブル７は、ページごとに、スタートアドレスおよびサイズ等を記憶する。スタートアドレスは、メモリ領域におけるページの開始位置である。サイズは、メモリ領域における当該ページの大きさである。
【００４０】
具体的には、図７Ｂの例では、ＤＲＡＭ領域は、アドレス０ｘ２０００から始まる０ｘ１００バイトの領域、アドレス０ｘ４０００から始まる０ｘ３００バイトの領域およびアドレス０ｘ７０００から始まる０ｘ１００バイトの領域を、区分１の領域として含む。
【００４１】
図７Ｃは、ＳＣＭ領域管理テーブル８のデータ構造の一例を示す図である。ＳＣＭ領域管理テーブル８は、ＳＣＭ領域に関する情報をページごとに管理する。以下、ＳＣＭ領域は、固定長のページ単位で管理されるものとして説明されるが、任意の単位の領域ごとに管理されてもよい。
【００４２】
ＳＣＭ領域管理テーブル８は、ページごとに、区分、スタートアドレスおよび累積参照回数を記憶する。区分は、当該ページが区分２であるか区分３であるかを示す値である。スタートアドレスは、メモリ領域における当該ページの開始位置である。累積参照回数は、当該ページが、参照された回数の累積値である。
【００４３】
具体的には、図７Ｃの例では、ＳＣＭ領域は、サイズが０ｘ１００バイトのページごとに管理される。また、ＳＣＭ領域は、アドレス０ｘ１００００から始まり累積参照回数が１００００回のデータが割り当てられた区分２の領域、アドレス０ｘ５００００から始まり累積参照回数が０回のデータが割り当てられた区分３の領域等を含む。
【００４４】
図７Ｄは、ＤＲＡＭ上に構成されるキャッシュのエントリの例を示す図である。キャッシュ領域は、ＤＲＡＭ上の複数のエントリによって構成される。各エントリは、区分２の領域の各ページに対応し、スタートアドレス、データおよび参照回数を記憶する。ここでは、区分２の領域が固定長のページ単位で管理される場合について説明されるが、区分２の領域は、任意の単位で管理してもよい。
【００４５】
スタートアドレスは、キャッシュ領域にキャッシュされるページのＳＣＭ領域におけるスタートアドレスである。データは、キャッシュされるページのデータである。参照回数は、キャッシュ領域にキャッシュされている間に当該ページのデータが参照された回数である。
【００４６】
具体的には、図７Ｄでは、キャッシュ領域は、スタートアドレスが０ｘ１００００で参照回数が３０回のページ、スタートアドレスが０ｘ８００００で参照回数が１０００回のページ等のエントリを含む。
【００４７】
＜処理の流れ＞
図８および図９は、区分１の領域の容量の変更に応じて、区分２および区分３の領域の容量を変更する処理の流れを説明する。区分１の領域の容量が増加し、キャッシュ領域の容量が減少した場合、区分２の領域の一部は、区分３の領域に変更される。これにより、スラッシングの発生が抑制される。
【００４８】
一方、区分１の領域の容量が減少し、キャッシュ領域の容量が増加した場合、区分３の領域の一部は、区分２の領域に変更される。これにより、区分２の領域に割り当てられるデータが増加し、ＤＲＡＭ上のキャッシュ領域にキャッシュされてアクセスされるデータも増加するため、アクセス速度が改善される。
【００４９】
図８は、区分２の領域を区分３の領域に変更する処理のフローチャートの一例である。図８は、区分２の領域の容量に対するキャッシュ領域の容量の比が、所定の下限値以上となるように、区分２の領域の一部をページ単位で区分３の領域に変更する例を示す。
【００５０】
区分２の領域を区分３の領域に変更する処理は、例えば、区分１の領域の容量が増加することにより開始される。ＯＰ１１では、プロセッサ２は、ＤＲＡＭ上のキャッシュ領域の容量を再計算する。キャッシュ領域の容量は、ＤＲＡＭ上の区分１の領域以外の領域の容量である。キャッシュ領域の容量は、ＤＲＡＭ領域の容量から、区分１の領域の容量を減算することにより求めてもよい。次に処理がＯＰ１２に進む。
【００５１】
ＯＰ１２では、プロセッサ２は、区分２の領域の容量に対するキャッシュ領域の容量の比が、所定の下限値より小さいか否かを判定する。所定の下限値より小さい場合には（ＯＰ１２：Ｙｅｓ）、処理がＯＰ１３に進む。所定の下限値以上の場合には（ＯＰ１２：Ｎｏ）、処理が終了する。
【００５２】
ＯＰ１３では、プロセッサ２は、区分の変更前に、キャッシュ領域が保持するデータをＳＣＭ領域に書き戻す。次に処理がＯＰ１４に進む。ＯＰ１４では、プロセッサ２は、ＳＣＭ領域に書き戻すデータの各ページの「参照回数」を、該当するページの「累積参照回数」に加算する。「参照回数」は、図７Ｄに示すキャッシュの各エントリに記憶される参照回数である。「累積参照回数」は、図７Ｃに示すＳＣＭ領域管理テーブル８の累積参照回数である。次に処理がＯＰ１５に進む。
【００５３】
ＯＰ１５では、プロセッサ２は、区分２の領域の中で最も「累積参照回数」が少ないページを選択し区分３に変更する。各ページの区分は、ＳＣＭ領域管理テーブル８の「区分」を“２”から“３”とすることで変更される。ＯＰ１５は、「区分１の容量が増加し、キャッシュ領域の容量が減少した場合に、キャッシュ領域の容量に応じて区分２の容量を減らし、区分３の容量を増やす」処理の一例である。次に処理がＯＰ１６に進む。
【００５４】
ＯＰ１６では、プロセッサ２は、ＯＰ１２と同様に、区分２の領域の容量に対するキャッシュ領域の容量の比が、所定の下限値より小さいか否かを判定する。所定の下限値より小さい場合には（ＯＰ１６：Ｙｅｓ）、処理がＯＰ１５に戻る。所定の下限値以上の場合には（ＯＰ１６：Ｎｏ）、処理が終了する。
【００５５】
図９は、区分３の領域を区分２の領域に変更する処理のフローチャートの一例である。図９は、区分２の領域の容量に対するキャッシュ領域の容量の比が、所定の上限値以下となるように、区分３の領域の一部をページ単位で区分２の領域に変更する例を示す。
【００５６】
区分３の領域を区分２の領域に変更する処理は、例えば、区分１の領域の容量が減少することにより開始される。ＯＰ２１の処理は、図８のＯＰ１１の処理と同じであるため、その説明は省略される。
【００５７】
ＯＰ２２では、プロセッサ２は、区分２の領域の容量に対するキャッシュ領域の容量の比が、所定の上限値より大きいか否かを判定する。所定の上限値より大きい場合には（ＯＰ２２：Ｙｅｓ）、処理がＯＰ２３に進む。所定の上限値以下の場合には（ＯＰ２２：Ｎｏ）、処理が終了する。
【００５８】
ＯＰ２３では、プロセッサ２は、区分３の領域の中で最も「累積参照回数」が多いページを選択し区分２に変更する。各ページの区分は、ＳＣＭ領域管理テーブル８の「区分」を“３”から“２”とすることで変更される。次に処理がＯＰ２２に戻る。
【００５９】
＜変形例＞
区分２の領域を区分３の領域に変更する処理は、図８に示す方法に限られない。区分２の領域の容量とキャッシュ領域の容量の比が、スラッシングの発生が抑制される範囲内となるように、区分２の領域の一部が、区分３の領域に変更されればよい。
【００６０】
区分３の領域を区分２の領域に変更する処理は、図９に示す方法に限られない。区分２の領域の容量とキャッシュ領域の容量の比が、スラッシングの発生が抑制される範囲内で変更されればよい。また、ＤＲＡＭ上のキャッシュ領域にキャッシュされる区分２の領域の容量が増加し、アクセス速度が改善されるように、区分３の領域の一部が、区分２の領域に変更されればよい。
【００６１】
例えば、実施形態では、区分変更の対象となるページは、各ページの累積参照回数に基づいて選択される。しかしながら、区分変更の対象となるページは、累積参照回数に限らず、キャッシュ領域上での参照回数等に基づいて選択されてもよい。
【００６２】
図１Ｂの情報処理システム１０に含まれる情報処理装置１は、プロセッサ２とメモリプール５のいずれか一方を複数備えていればよい。１つのプロセッサ２に対し、複数のメモリプール５を備える場合、情報処理装置１は、メモリプール５ごとに領域管理情報を制御し、メモリ領域を管理すればよい。一方、１つのメモリプール５に対し、複数のプロセッサ２を備える場合、情報処理装置１は、１つのプロセッサ２によって、メモリプール５の領域管理情報を制御し、メモリ領域を管理すればよい。
【００６３】
＜実施形態の作用効果＞
プロセッサ２は、アクセス速度が異なる異種メモリを混載するメモリプール５にアクセスする場合、アクセス頻度が所定の閾値より高いデータをＤＲＡＭ上の区分１の領域に割り当て、アクセス頻度が所定の閾値以下のデータをＳＣＭ上の区分２の領域に割り当てる。また、データが割り当てられていないＤＲＡＭ上の未使用の領域は、区分２の領域のキャッシュとして使用される。
【００６４】
区分１の領域に割り当てられるデータが増加した場合、区分２の領域のキャッシュとして使用されるキャッシュ領域の容量は減少する。プロセッサ２は、キャッシュ領域の容量に応じて、区分２の領域を区分３の領域に変更する。区分３の領域はキャッシュの対象とされないため、キャッシュ領域にキャッシュされるデータ量は減少する。これにより、プロセッサ２は、スラッシングの発生を抑制し、アクセス速度の劣化を回避することができる。
【００６５】
また、区分１の領域に割り当てられるデータが減少した場合、区分２の領域のキャッシュとして使用されるキャッシュ領域の容量は増加する。プロセッサ２は、キャッシュ領域の容量に応じて、区分３の領域を区分２の領域に変更する。キャッシュ領域にキャッシュされるデータ量が増加するため、プロセッサ２は、ＳＣＭ上に割り当てられるデータに対するアクセス速度の改善を図ることができる。
【００６６】
プロセッサ２は、区分２の領域を区分３の領域に変更する際、アクセス頻度がより低いページから区分３に変更する。一方、プロセッサ２は、区分３の領域を区分２の領域に変更する際、アクセス頻度がより高いページから区分２に変更する。これにより、アクセス頻度に応じたデータの割当てが可能となり、アクセス速度の劣化を回避することができる。
【００６７】
＜記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【００６８】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ（リードオンリーメモリ）等がある。さらに、Solid State Drive（ＳＳＤ）はコンピュータ等から取り外し可能な記録媒体としても、コンピュータ等
に固定された記録媒体としても利用可能である。
【００６９】
＜その他＞
上述した実施形態は、以下の付記を開示する。以下の付記は適宜組み合わせることが可能である。
【００７０】
（付記１）
第１のメモリに配置された第１の記憶領域、前記第１のメモリの前記第１の記憶領域以外のキャッシュ領域の容量を使用してキャッシュされる前記第１のメモリよりも低速である第２のメモリに配置された第２の記憶領域、およびキャッシュされずに前記第２のメモリに配置された第３の記憶領域を有する記憶装置と、
前記第１の記憶領域の容量が増加し、前記キャッシュ領域の容量が減少した場合に、前記キャッシュ領域の容量に応じて前記第２の記憶領域の容量を減らし、前記第３の記憶領域の容量を増やすプロセッサと、
を備える情報処理装置。
【００７１】
（付記２）
前記プロセッサは、
前記第２の記憶領域の容量に対する前記キャッシュ領域の容量の割合が第１の閾値より小さい場合に、前記第２の記憶領域の容量を減らし、前記第３の記憶領域の容量を増やす、
付記１に記載の情報処理装置。
【００７２】
（付記３）
前記プロセッサは、
さらに前記第１の記憶領域の容量が減少し、前記キャッシュ領域の容量が増加した場合に、前記キャッシュ領域の容量に応じて前記第２の記憶領域の容量を増やし、前記第３の記憶領域の容量を減らす、
付記１または２に記載の情報処理装置。
【００７３】
（付記４）
前記プロセッサは、
前記第２の記憶領域の容量に対する前記キャッシュ領域の容量の割合が第２の閾値より大きい場合に、前記第２の記憶領域の容量を増やし、前記第３の記憶領域の容量を減らす、
付記３に記載の情報処理装置。
【００７４】
（付記５）
前記プロセッサは、
前記第１の記憶領域の容量が増加し、前記キャッシュ領域の容量が減少した場合に、前記第２の記憶領域に記憶したデータのうち前記データへのアクセス頻度に応じて選択されるデータの記憶先を前記第３の記憶領域に変更する、
付記１から４のいずれか１項に記載の情報処理装置。
【００７５】
（付記６）
前記プロセッサは、
前記第１の記憶領域の容量が減少し、前記キャッシュ領域の容量が増加した場合に、前記第３の記憶領域に記憶したデータのうち前記データへのアクセス頻度に応じて選択されるデータの記憶先を前記第２の記憶領域に変更する、
付記３または４に記載の情報処理装置。
【００７６】
（付記７）
第１のメモリと前記第１のメモリよりも低速である第２のメモリとに配置される記憶領域を有する記憶装置を備える情報処理装置のプロセッサが、
前記第１のメモリに第１の記憶領域を配置し、前記第１のメモリの前記第１の記憶領域以外のキャッシュ領域の容量を使用してキャッシュされる第２の記憶領域およびキャッシュされない第３の記憶領域を前記第２のメモリに配置し、
前記第１の記憶領域の容量が増加し、前記キャッシュ領域の容量が減少した場合に、前記キャッシュ領域の容量に応じて前記第２の記憶領域の容量を減らし、前記第３の記憶領域の容量を増やす、
記憶装置制御方法。
【００７７】
（付記８）
第１のメモリと前記第１のメモリよりも低速である第２のメモリとに配置される記憶領域を有する記憶装置を備える情報処理装置のプロセッサに、
前記第１のメモリに第１の記憶領域を配置させ、前記第１のメモリの前記第１の記憶領域以外のキャッシュ領域の容量を使用してキャッシュされる第２の記憶領域およびキャッシュされない第３の記憶領域を前記第２のメモリに配置させ、
前記第１の記憶領域の容量が増加し、前記キャッシュ領域の容量が減少した場合に、前記キャッシュ領域の容量に応じて前記第２の記憶領域の容量を減少させ、前記第３の記憶領域の容量を増加させる、
ための記憶装置制御プログラム。
【００７８】
（付記９）
第１のメモリに配置された第１の記憶領域、前記第１のメモリの前記第１の記憶領域以外のキャッシュ領域の容量を使用してキャッシュされる前記第１のメモリよりも低速である第２のメモリに配置された第２の記憶領域、およびキャッシュされずに前記第２のメモリに配置された第３の記憶領域を有する記憶装置と、前記第１の記憶領域の容量が増加し、前記キャッシュ領域の容量が減少した場合に、前記キャッシュ領域の容量に応じて前記第２の記憶領域の容量を減らし、前記第３の記憶領域の容量を増やすプロセッサの少なくとも一方を複数備える情報処理装置を、
複数備える情報処理システム。
【符号の説明】
【００７９】
１        情報処理装置
２        プロセッサ
３        主記憶装置
４        補助記憶装置
４１      インメモリ処理アプリケーション
４２      ＯＳ
５        メモリプール
５１      ＤＲＡＭ
５２      ＳＣＭ
６        キャッシュ領域管理テーブル
７        ＤＲＡＭ領域管理テーブル
８        ＳＣＭ領域管理テーブル
１０      情報処理システム
【図１Ａ】
0006384375.tif 000002
【図１Ｂ】
0006384375.tif 000003
【図２】
0006384375.tif 000004
【図３】
0006384375.tif 000005
【図４】
0006384375.tif 000006
【図５】
0006384375.tif 000007
【図６】
0006384375.tif 000008
【図７Ａ】
0006384375.tif 000009
【図７Ｂ】
0006384375.tif 000010
【図７Ｃ】
0006384375.tif 000011
【図７Ｄ】
0006384375.tif 000012
【図８】
0006384375.tif 000013
【図９】
0006384375.tif 000014