(57)【要約】      （修正有）【課題】メインメモリとして用いられる不揮発性半導体メモリに対して効率的に書き込みまたは読み出しを行う。【解決手段】ホストＯＳ１１は、メインメモリとして用いられる不揮発性半導体メモリ７とキャッシュメモリとして用いられる半導体メモリ６とをアクセスする。キャッシュミス検出部１０ｂは、第１・第２の仮想マシン１３１，１３２の処理において半導体メモリ６に対するキャッシュミスの検出を行う。キャッシュ制御部１０ａは、第１の仮想マシン１３１の処理においてキャッシュミスが発生した場合、不揮発性半導体メモリ７から半導体メモリ６に当該キャッシュミスの原因となったデータをキャッシュ処理する。切替部１１ｂは、第１の仮想マシン１３１の処理においてキャッシュミスが発生した場合、キャッシュ処理が実行される間、実行仮想マシンを第１の仮想マシン１３１から第２の仮想マシン１３２に切り替える。【選択図】図２
2012033001.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリとして用いられる不揮発性半導体メモリと、前記不揮発性半導体メモリのキャッシュメモリとして用いられる半導体メモリとを含むハードウェア資源をアクセスするオペレーティングシステムと、
前記オペレーティングシステムによって実現される第１および第２の仮想マシンと、
前記第１および第２の仮想マシンで実行される処理において前記半導体メモリに対するキャッシュミスが発生したことを検出するキャッシュミス検出部と、
前記キャッシュミス検出部が前記第１の仮想マシンで実行される処理においてキャッシュミスが発生したことを検出した場合、前記不揮発性半導体メモリから前記半導体メモリに当該キャッシュミスの原因となったデータをキャッシュ処理するキャッシュ制御部と、
前記キャッシュミス検出部が前記第１の仮想マシンで実行される処理においてキャッシュミスが発生したことを検出した場合、前記キャッシュ制御部がキャッシュ処理をする間、実行仮想マシンを前記第１の仮想マシンから前記第２の仮想マシンに切り替える仮想マシン切替部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記第１および前記第２の仮想マシンのそれぞれで実行されるゲスト・オペレーティングシステムと、
前記不揮発性半導体メモリおよび前記半導体メモリにデータを書き込む場合に、前記不揮発性半導体メモリおよび前記半導体メモリに対するデータの配置領域を決定する配置決定部と
をさらに備え、
前記ゲスト・オペレーティングシステムは、前記オペレーティングシステム上で実行される処理に関するデータのアクセス頻度情報を生成し、
前記配置決定部は、前記アクセス頻度情報に基づいて、当該データの配置領域を決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プロセッサによって実行され、前記不揮発性半導体メモリを補助記憶装置とする制御を実行するためのソフトウェアであり、前記不揮発性半導体メモリについてのファイルアロケーションテーブルまたは前記アクセス頻度情報に基づいて、各データの配置領域を決定する制御ソフトウェア、をさらに具備することを特徴とする請求項１または請求項２記載の情報処理装置。
【請求項４】
前記仮想マシン切替部は、前記第１および第２の仮想マシンの実行状態、実行可能になるまでの時間、実行の優先度を管理する管理テーブルを備え、前記管理テーブルに基づいて、前記仮想マシンの切り替えを実行する
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
プロセッサにより、メインメモリとして用いられる不揮発性半導体メモリと、前記不揮発性半導体メモリのキャッシュメモリとして用いられる半導体メモリとを含むハードウェア資源をアクセスするオペレーティングシステムを実行することにより、第１および第２の仮想マシンを実現させること、
前記プロセッサとメモリ管理装置とのうちの少なくとも一方により、前記第１および第２の仮想マシンで実行される処理において前記半導体メモリに対するキャッシュミスが発生したことの検出を行い、前記第１の仮想マシンで実行される処理においてキャッシュミスが発生したことが検出された場合、前記不揮発性半導体メモリから前記半導体メモリに当該キャッシュミスの原因となったデータをキャッシュ処理すること、
前記プロセッサと前記メモリ管理装置とのうちの少なくとも一方により、前記キャッシュ処理が実行される間、実行仮想マシンを前記第１の仮想マシンから前記第２の仮想マシンに切り替えること
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、仮想化を用いる情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
一般的な情報処理装置においては、プロセッサの主記憶装置（メインメモリ）として、例えばＤＲＡＭ（Dynamic Random Access Memory）などの揮発性半導体メモリが使用されている。さらに、従来の情報処理装置では、揮発性半導体メモリと組み合わせて、不揮発性半導体メモリが２次記憶装置として使用される。また、仮想化技術を適用した情報処理装置が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２４２９４４号公報
【特許文献２】特開平７−１４６８２０号公報
【特許文献３】特開２００１−２６６５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、揮発性半導体メモリまたは不揮発性半導体メモリに対して効率的に書き込みまたは読み出しを行う情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
実施形態によれば、情報処理装置は、オペレーティングシステムと、第１および第２の仮想マシンと、キャッシュミス検出部と、キャッシュ制御部と、仮想マシン制御部とを備える。前記オペレーティングシステムは、メインメモリとして用いられる不揮発性半導体メモリと、前記不揮発性半導体メモリのキャッシュメモリとして用いられる半導体メモリとを含むハードウェア資源をアクセスする。前記第１および第２の仮想マシンは、前記オペレーティングシステムによって実現される。キャッシュミス検出部は、前記第１および第２の仮想マシンで実行される処理において前記半導体メモリに対するキャッシュミスが発生したことを検出する。キャッシュ制御部は、前記キャッシュミス検出部が前記第１の仮想マシンで実行される処理においてキャッシュミスが発生したことを検出した場合、前記不揮発性半導体メモリから前記半導体メモリに当該キャッシュミスの原因となったデータをキャッシュ処理する。仮想マシン切替部は、前記キャッシュミス検出部が前記第１の仮想マシンで実行される処理においてキャッシュミスが発生したことを検出した場合、前記キャッシュ制御部がキャッシュ処理をする間、実行仮想マシンを前記第１の仮想マシンから前記第２の仮想マシンに切り替える。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に係る情報処理装置の構成の一例を示すブロック図。
【図２】第１の実施形態に係る情報処理装置のハードウェア資源と、ハードウェア資源上で実行されるソフトウェア構成の一例を示すブロック図。
【図３】第１の実施形態に係る情報処理装置のキャッシュミス隠蔽処理の一例を示すフローチャート
【図４】第１の実施形態に係るホストＯＳのスケジューラで用いられるテーブルの一例を示す図。
【図５】第２の実施形態に係る情報処理装置のハードウェア資源と、ハードウェア資源上で実行されるソフトウェア構成の一例を示すブロック図。
【図６】第２の実施形態に係るゲストＯＳとホストＯＳとの間におけるカラーリング情報の送受信の一例を示すブロック図。
【図７】第２の実施形態に係るメモリ管理装置およびメモリ管理ソフトウェアと、記憶装置に記憶される各種データとの関係の一例を示すブロック図。
【図８】第２の実施形態に係るメモリ管理装置およびメモリ管理ソフトウェアによって実現される各種処理部の一例を示すブロック図。
【図９】第２の実施形態に係るカラーリング情報とカラーリングテーブルの一例を示す図。
【発明を実施するための形態】
【０００７】
以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略または実質的に同一の機能および構成要素については、同一符号を付し、必要に応じて説明を行う。
【０００８】
（第１の実施形態）
図１は、本実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【０００９】
情報処理装置１は、プロセッサ２、バス３、メモリ管理装置４、揮発性半導体メモリ６、不揮発性半導体メモリ７を具備する。
【００１０】
本実施形態では、情報処理装置１に一つのプロセッサ２が備えられている場合を例として説明するが、情報処理装置１は複数のプロセッサ２を備えるマルチプロセッサ構造を持つとしてもよい。
【００１１】
プロセッサ２とメモリ管理装置４とは、バス３によってデータを送受信可能に接続されている。例えば、プロセッサ２とメモリ管理装置４とは、非同期に動作可能であり、プロセッサ２で処理実行中に、メモリ管理装置４が不揮発性半導体メモリ７に対してウェアレベリング、ガーベージコレクション、コンパクションを実行することができる。
【００１２】
揮発性半導体メモリ６および不揮発性半導体メモリ７（以下において、総称して「記憶装置５」と称する）は、プロセッサ２から主記憶装置（メインメモリ）として使用される。さらに、不揮発性半導体メモリ７は、ファイル装置（２次記憶装置）としても使用される。揮発性半導体メモリ６は、不揮発性半導体メモリ７のキャッシュメモリとして用いられる。
【００１３】
本実施形態において、揮発性半導体メモリ６としては、例えば、ＤＲＡＭ（Dynamic Random Access Memory）、ＦＰＭ−ＤＲＡＭ（Fast Page Mode）、ＥＤＯ−ＤＲＡＭ（Extended Data Out DRAM）、ＳＤＲＡＭ（Synchronous DRAM）などのような、コンピュータにおいてメインメモリとして利用されるメモリが用いられる。なお、ＤＲＡＭ程度の高速ランダムアクセスが可能であり、アクセス可能上限回数に実質的な制限がないのであれば、揮発性半導体メモリ６に代えて、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）などの不揮発性ランダムアクセスメモリを採用してもよい。
【００１４】
本実施形態において、不揮発性半導体メモリ７は、第１のメモリ、第２のメモリを備えている。第１のメモリは、第２のメモリよりもアクセス可能上限回数が多い。ここでアクセス可能上限回数とは、統計的に予想される期待値であって、常にこの関係が保証されることを意味してはいないことに注意すべきである。
【００１５】
不揮発性半導体メモリ７に含まれている第１のメモリは、例えば、ＳＬＣ（Single Level Cell）のＮＡＮＤ型フラッシュメモリ７Ｓであるとする。不揮発性半導体メモリ７に含まれている第２のメモリは、例えば、ＭＬＣ（Multi Level Cell）のＮＡＮＤ型フラッシュメモリ７Ｍであるとする。
【００１６】
ＳＬＣは、ＭＬＣと比較して、読み出しおよび書き込みが高速であり、信頼性が高く、耐久性が高い。しかしながら、ＳＬＣは、ＭＬＣと比較して、ビットコストが高く、大容量化には向いていない。一方、ＭＬＣは、ＳＬＣと比較して、読み出しおよび書き込みが低速であり、信頼性が低く、耐久性が低い。しかしながら、ＭＬＣは、ＳＬＣと比較して、ビットコストが低く、大容量化に向いている。
【００１７】
なお、信頼性とは、記憶装置５からデータを読み出す場合におけるデータの欠損の起こりにくさの程度を意味する。また、耐久性が高いとは、アクセス可能上限回数が多く、耐久性が低いとは、アクセス可能上限回数が少ないことを意味する。
【００１８】
なお、本実施形態では、不揮発性半導体メモリ７は、ＮＡＮＤ型フラッシュメモリであるとして説明するが、不揮発性半導体メモリ７はこれに限定されず、例えば、ＮＯＲ型フラッシュメモリなどのような他の種類のフラッシュメモリ、ＰＲＡＭ（Phase change memory）、ＲｅＲＡＭ（Resistive Random access memory）であるとしてもよい。
【００１９】
なお、本実施形態では、不揮発性半導体メモリ７がＳＬＣのＮＡＮＤ型フラッシュメモリ７Ｓと、ＭＬＣのＮＡＮＤ型フラッシュメモリ７Ｍとを含むが、例えば、不揮発性半導体メモリ７が2bit/CellのＭＬＣのＮＡＮＤ型フラッシュメモリと、3bit/CellのＭＬＣのＮＡＮＤ型フラッシュメモリとを含むとしてもよい。
【００２０】
また、第２のメモリとしてＭＬＣを採用し、第１のメモリとして、ＭＬＣの下位ページのみを使用してデータ書き込みを行う擬似ＳＬＣモードが利用可能なＭＬＣを採用してもよい。この場合、第１のメモリと第２のメモリとを共通のチップのみで構成することが可能であり、製造コスト面で有利となる。
【００２１】
本実施形態では、不揮発性半導体メモリ７をメインメモリとして用いる。メインメモリとして不揮発性半導体メモリ７を利用する場合、従来の２次記憶装置として不揮発性半導体メモリ７を利用する場合（例えば、ＳＳＤ（Solid State Drive）等）と比べ、不揮発性半導体メモリ７へのアクセス頻度が高くなり、不揮発性半導体メモリ７の寿命が短くなるという課題がある。本実施形態において、不揮発性半導体メモリ７、揮発性半導体メモリ６に対するデータの配置を管理することにより、上記課題を解決することが可能である。
【００２２】
メモリ管理装置４は、例えばプロセッサ２からの揮発性半導体メモリ６と不揮発性半導体メモリ７とに対する読み出し、書き込み、消去を制御する。
【００２３】
なお、メモリ管理装置４は、プロセッサ２に備えられ、プロセッサ２からの揮発性半導体メモリ６と不揮発性半導体メモリ７とに対する読み出し、書き込み、消去を制御する構成としてもよい。本実施形態において、揮発性半導体メモリ６、不揮発性半導体メモリ７に対する書き込みデータ、読み出しデータのデータサイズは、例えば、ページサイズであり、消去サイズはブロックサイズである。
【００２４】
プロセッサ２は、ＭＭＵ（Memory Management Unit）３４、１次キャッシュメモリＬ１、２次キャッシュメモリＬ２を備えている。プロセッサ２は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processor Unit）またはＧＰＵ（Graphic Processor Unit）などのような、各種の処理装置である。
【００２５】
ＭＭＵ３４は、仮想アドレスと物理アドレスの間のアドレス変換機能などの各種機能を具備する。また、ＭＭＵ３４は、プロセッサ２で処理するデータ（処理対象データ）を１次キャッシュメモリＬ１または２次キャッシュメモリＬ２に一時記憶するキャッシュ制御を行う。
【００２６】
上記のメモリ管理装置４の各種処理は、後述するメモリ管理ソフトウェア１０が実行することも可能である。この場合、メモリ管理装置４は、ハードウェアで構成しなくてもよい。また、メモリ管理装置４のこれらの処理を、メモリ管理装置４とメモリ管理ソフトウェア１０で分担して行ってもよい。
【００２７】
図２は、本実施形態に係る情報処理装置１のハードウェア資源と、ハードウェア資源上で実行されるソフトウェア構成の一例を示すブロック図である。
【００２８】
情報処理装置１は、前述のプロセッサ２（図２には図示せず）、揮発性半導体メモリ６、不揮発性半導体メモリ７などのハードウェア資源を備える。前述のように、揮発性半導体メモリ６は、不揮発性半導体メモリ７のキャッシュメモリとして用いられる。不揮発性半導体メモリ６には、ソフトウェアＳＳＤ９、メモリ管理ソフトウェア１０が格納されている。ソフトウェアＳＳＤ９、メモリ管理ソフトウェア１０についての詳細は後述する。
【００２９】
ハードウェア資源上では、ホストＯＳ（Operating System）１１が実行される。ホストＯＳ１１は、仮想化環境を提供する機能を有する。また、ホストＯＳ１１は、スケジューラ１１ａ、仮想マシン切替部１１ｂを備える。
【００３０】
ホストＯＳ１１は、仮想化環境を提供する。ホストＯＳ１１が提供する仮想化環境により、ホストＯＳ１１上には複数の仮想マシン１３１〜１３ｍが実現される。仮想マシン１３１上では、ゲストＯＳ１２が実行される。仮想マシン１３２〜１３ｍ上でも、同様にゲストＯＳが実行される。ゲストＯＳ１２上では、１以上のプロセスＰ１〜Ｐｎが処理される。仮想マシン１３２〜１３ｍ上のゲストＯＳ上でも、同様に１以上のプロセスが処理される。スケジューラ１１ａは、ホストＯＳ１１上の複数の仮想マシン１３１〜１３ｍの実行順番を管理する。言い換えると、スケジューラ１１ａは、ホストＯＳ１１上の複数のゲストＯＳの実行順番を管理する。仮想マシン切替部１１ｂは、ホストＯＳ１１上のスケジューラ１１ａに基づき、実行する仮想マシン（実行仮想マシン）を切り替える。また、仮想マシン切替部１１ｂは、後述するキャッシュミス検出部１０ｂの要求に応じて、実行仮想マシンを切り替える。
【００３１】
プロセスＰ１〜Ｐｎは、１次キャッシュメモリＬ１、２次キャッシュメモリＬ２にアクセスしながらデータの処理を実行する。処理対象データが１次キャッシュＬ１、２次キャッシュＬ２に存在しない場合（１次キャッシュＬ１、２次キャッシュＬ２におけるキャッシュミス）、揮発性半導体メモリ６または不揮発性半導体メモリ７から処理対象データを読み出す。処理データが揮発性半導体メモリ６に存在しない場合（揮発性半導体メモリ６におけるキャッシュミス）、キャッシュミスが発生する。後述のように、揮発性半導体メモリ６におけるキャッシュミスは、キャッシュミス検出部１０ｂにより検出される。
【００３２】
仮想マシン１３１〜１３ｍは、それぞれ仮想アドレス空間１４１〜１４ｍおよび物理アドレス空間１５１〜１５ｍを用いる。
【００３３】
仮想マシン１３１上では、ゲストＯＳ１２、プロセスＰ１〜Ｐｎが実行され、仮想アドレス空間１６１〜１６ｎが用いられている。
【００３４】
メモリ管理ソフトウェア１０は、揮発性半導体メモリ６から読み出され、プロセッサ２により実行されることにより、キャッシュ制御部１０ａ、キャッシュミス検出部１０ｂ、データ配置領域決定部１０ｃを含むメモリ管理機能を実現する。
【００３５】
キャッシュ制御部１０ａは、不揮発性半導体メモリ７から揮発性半導体メモリ６へのデータキャッシュを制御する。例えば、プロセスＰ１〜Ｐｎによりアクセスされるデータを不揮発性半導体メモリ７から揮発性半導体メモリ６へキャッシュする。これにより、プロセスＰ１〜Ｐｎは、不揮発性半導体メモリ７より高速にアクセス可能な揮発性半導体メモリ６からデータの読み出しが可能となり、データへのアクセスの高速化が図れる。
【００３６】
キャッシュミス検出部１０ｂは、揮発性半導体メモリ６におけるキャッシュミスを検出する。前述のように、キャッシュ制御部１０ｂは、プロセスＰ１〜Ｐｎからアクセスされるデータを揮発性半導体メモリ６へキャッシュするが、プロセスＰ１〜Ｐｎからアクセスされるデータが揮発性半導体メモリ６にキャッシュされていない場合には、キャッシュミスが発生する。
【００３７】
データ配置領域決定部１０ｃは、プロセスＰ１〜Ｐｎにおいて、新たにデータが生成された場合等に、当該データの配置領域（書き込み領域）を決定する。データ配置領域決定部１０ｃは、当該データのアクセス頻度に応じて、不揮発性半導体メモリ６、不揮発性半導体メモリ７のＳＬＣのＮＡＮＤ型フラッシュメモリ７Ｓ、ＭＬＣのＮＡＮＤ型フラッシュメモリ７Ｍから配置領域を決定する。
【００３８】
ソフトウェアＳＳＤ９は、不揮発性半導体メモリ７を補助記憶装置として制御するためのソフトウェアである。
【００３９】
以上のように、本実施形態では、揮発性半導体メモリ６および不揮発性半導体メモリ７がメインメモリとして用いられる。このため、プロセスＰ１〜Ｐｎにおいて、揮発性半導体メモリ６にアクセスした場合に、揮発性半導体メモリ６においてキャッシュミスが発生すると、不揮発性半導体メモリ７からアクセス対象データを読み出さなければならない。この場合、揮発性半導体メモリ６に比べ、不揮発性半導体メモリ７に対するアクセスはアクセスが低速であるため、レイテンシが長くなる可能性がある。本実施形態では、キャッシュミス検出部１０ｂ、仮想マシン切替部１１ｂ等を用いて、以下の処理を行うことで、揮発性半導体メモリ６におけるキャッシュミスペナルティを隠蔽することを可能とする。
【００４０】
以下において、図３を参照してキャッシュミスペナルティを隠蔽する動作について説明する。
【００４１】
まず、揮発性半導体メモリ６においてキャッシュミスが発生すると、キャッシュミス検出部１０ｂは、揮発性半導体メモリ６におけるキャッシュミスを検出する（ステップＳ１）。
【００４２】
次に、キャッシュミス検出部１０ｂは、ホストＯＳ１１に対して例外通知を行うとともに、キャッシュ制御部１０ａは、キャッシュミスの原因となったデータを、不揮発性半導体メモリ７から揮発性半導体メモリ６に書き込む処理を行う（ステップＳ２）。
【００４３】
次に、ホストＯＳ１１は、ステップＳ２における書き込み処理にかかる時間を考慮し、プロセス切替または仮想マシン切替を選択する（ステップＳ３）。
【００４４】
キャッシュ処理にかかる時間が短く、プロセス切替を選択した場合には、ホストＯＳ１１は、ゲストＯＳ１２にプロセス切替を通知する。これにより、ゲストＯＳ１２は、キャッシュミスが発生したプロセスＰ１〜Ｐｎを切り替え、キャッシュミスの発生していないプロセスを実行する（ステップＳ４）。なお、プロセスＰ１〜Ｐｎを切り替える代わりに、プロセス中のキャッシュミスが発生したスレッドを切り替え、キャッシュミスの発生していないスレッドを実行してもよい。
【００４５】
キャッシュ処理にかかる時間が長く、仮想マシン切替を選択した場合には、ホストＯＳ１１は、キャッシュミスが発生した仮想マシン１３１を切り替え、キャッシュミスの発生していない仮想マシン１３２に実行仮想マシンを切り替える（ステップＳ５）。
【００４６】
上記、ステップＳ４、Ｓ５のように、揮発性半導体メモリ６においてキャッシュミスが発生した場合に、プロセス（またはスレッド）または仮想マシンを切り替えることにより、キャッシュミスペナルティを隠蔽する。
【００４７】
ホストＯＳ１１は、例えば、切り替え前の仮想マシンにおいてキャッシュミスが発生しても実行可能な処理を、切り替え後の仮想マシンに引き継がせる。
【００４８】
また、ホストＯＳ１１は、揮発性半導体メモリ６に対するキャッシュミス時のみではなく、メモリ管理装置４（またはメモリ管理ソフトウェア１０）が不揮発性半導体メモリ７に対してガーベージコレクション、コンパクションを実行している場合にも、仮想マシンの切り替えを行い、ガーベージコレクション、コンパクションのペナルティの隠蔽を行う。そのため、本実施形態において、メモリ管理装置４（またはメモリ管理ソフトウェア１０）は、不揮発性半導体メモリ７に対して、部分的にガーベージコレクション、コンパクションを実行可能である。
【００４９】
図４は、本実施形態に係るホストＯＳ１１のスケジューラ１１ａで用いられるテーブルの一例を示す図である。
【００５０】
ホストＯＳ１１は、例えば、揮発性半導体メモリ６または不揮発性半導体メモリ７を用いて、テーブル１８を管理する。
【００５１】
テーブル１８は、例えば、項目として、仮想マシン１３１〜１３ｍの識別情報、仮想マシン１３１〜１３ｍの状態を表すステータス、このステータスの終了時間、仮想マシン１３１〜１３ｍの優先度を持つ。
【００５２】
ホストＯＳ１１は、仮想マシン１３１〜１３ｍの識別情報をテーブル１８に登録する。
【００５３】
ホストＯＳ１１は、仮想マシン１３１〜１３ｍに対する優先度を、テーブル１８に登録する。優先度は、仮想マシン１３１〜１３ｍごとに予め設定されている値が用いられるとしてもよい。また、優先度は、ユーザの使用度、実行している処理の種別に応じてホストＯＳ１１によって設定されるとしてもよい。例えば、ユーザの使用度の高い仮想マシンほど優先度を高くし、ユーザの使用度の低い仮想マシンほど優先度を低くする。
【００５４】
ホストＯＳ１１は、仮想マシン１３１〜１３ｍが、例えば、プロセスを実行している状態（実行中）、プロセスを実行していない待ち状態（実行可能状態）、キャッシュミスに基づくデータ入れ替え中（キャッシュミス中）、ガーベージコレクション中、コンパクション中などのうち、いずれの状態であるかを検出し、この検出結果を示すステータスをテーブル１８に登録する。
【００５５】
ホストＯＳ１１は、仮想マシン１３１〜１３ｍがキャッシュミス中、ガーベージコレクション中、コンパクション中のいずれかになった場合に、そのステータスが終了するステータス終了時間を予測し、テーブル１８に登録する。なお、ステータス終了時間は、例えば、キャッシュミス、ガーベージコレクション、コンパクションに基づくデータ入れ替えの終了時間である。このステータス終了時間に代えて、残り時間が管理されるとしてもよい。ホストＯＳ１１は、データが揮発性半導体メモリ６、ＳＬＣのＮＡＮＤ型フラッシュメモリ７Ｓ、ＭＬＣのＮＡＮＤ型フラッシュメモリ７Ｍのどのメモリ領域に配置されているか、データの大きさ、データの配置されているメモリ領域からデータが再配置されるメモリ領域にデータを転送する場合の予測データ転送速度を持つことで、このステータス終了時間を算出可能である。予測データ転送速度は、予め測定された転送速度の平均値などを用いる。
【００５６】
ホストＯＳ１１のスケジューラ１１ａは、テーブル１８の内容を確認し、キャッシュミス、ガーベージコレクション、コンパクションの発生した仮想マシン１３１を、他の仮想マシン１３２〜１３ｍのうちどの仮想マシンに切り替えるか決定する。例えば、優先度が「高」であり、ステータスが「実行可能」の仮想マシンが選択される。
【００５７】
本実施形態では、ステータス終了時間の算出により、効果的なスケジューリングが可能である。例えば、ステータスが「実行可能」であり、優先度が「低」の仮想マシンよりも、ステータスが「キャッシュミス中」であり、優先度が「高」であり、現時点とステータス終了時間との差が閾値以下の仮想マシンを優先して選択することができる。これにより、間もなくキャッシュミスによるデータ入れ替えが終了する優先度の高い仮想マシンを使用することができる。すなわち、選択される仮想マシンとしては、ページフォルトが発生していない仮想マシンが好ましいが、ページフォルトが発生していても、ステータス終了時間まで短い仮想マシンを選択することができる。
【００５８】
以上に説明した本実施形態においては、仮想マシンの切り替えにより、キャッシュミスによるデータ入れ替え中であっても実行可能な処理が他の仮想マシンで実行される。これにより、揮発性半導体メモリ６に対するキャッシュミスペナルティを隠蔽することができ、情報処理装置１による処理の効率化および高速化を実現させることができる。
【００５９】
本実施形態においては、揮発性半導体メモリ６に対するキャッシュミスのみではなく、メモリ管理装置４およびソフトウェアメモリ管理１０によって、部分的なガーベージコレクション、コンパクションが実行される場合においても、仮想マシンを切り替えて、部分的なガーベージコレクション、コンパクションによるペナルティを隠蔽できる。
【００６０】
本実施形態では、プロセスまたはスレッドの切り替えで、揮発性半導体メモリ６に対するキャッシュミスペナルティを隠蔽できない場合に、仮想マシンの切り替えを行う。このため、仮想マシンの切り替えが頻発することを防止することができる。
【００６１】
本実施形態では、ハードウェアであるメモリ管理装置４と、ソフトウェアであるソフトウェアＳＳＤ９とメモリ管理ソフトウェア１０とによって記憶装置５に対する書き込み、読み出し、消去などのアクセス処理が管理される。このように、アクセス処理の一部をソフトウェアによって実現させることで、ハードウェア構成を簡素化することができ、高度な処理を実現させることができる。
【００６２】
（第２の実施形態）
本実施形態では、上記第１の実施形態の変形例について説明する。本実施の形態においては、各データについての読み出し回数、書き込み回数、読み出し頻度、書き込み頻度などを含むカラーリング情報を用いてウェアレベリングを行う。
【００６３】
図５は、本実施形態に係る情報処理装置のハードウェア資源と、ハードウェア資源上で実行されるソフトウェア構成の一例を示すブロック図である。
【００６４】
ゲストＯＳ１９は、各データのカラーリング情報を生成するカラーリング情報生成機能１９ａを具備する。そして、ゲストＯＳ１９は、生成されたカラーリング情報をホストＯＳ２０に送信する。ゲストＯＳ１９とホストＯＳ２０とは、カラーリング情報通信用のインタフェースにしたがって、カラーリング情報を送受信する。
【００６５】
本実施形態に係るメモリ管理ソフトウェア２１は、揮発性半導体メモリ６から読み出され、プロセッサ２により実行されることにより、キャッシュ制御部１０ａ、キャッシュミス検出部１０ｂ、データ配置領域決定部２１ｃを含むメモリ管理機能を実現する。
【００６６】
データ配置領域決定部２１ｃは、プロセスＰ１〜Ｐｎにおいて、新たにデータが生成された場合等に、当該データの配置領域（書き込み領域）を決定する。データ配置領域決定部２１ｃは、カラーリング情報に基づいて、不揮発性半導体メモリ６、不揮発性半導体メモリ７のＳＬＣのＮＡＮＤ型フラッシュメモリ７Ｓ、ＭＬＣのＮＡＮＤ型フラッシュメモリ７Ｍから配置領域を決定する。
【００６７】
メモリ管理ソフトウェア２１およびメモリ管理装置４は、カラーリング情報に基づいて、ウェアレベリングを行う。例えば、メモリ管理ソフトウェア２１およびメモリ管理装置４は、書き込み頻度の高いデータを、揮発性半導体メモリ６と不揮発性半導体メモリ７のうち、揮発性半導体メモリ６に配置する。また、例えば、メモリ管理ソフトウェア２１およびメモリ管理装置４は、書き込み頻度の高いデータを、不揮発性半導体メモリ７のＳＬＣのＮＡＮＤ型フラッシュメモリ７ＳとＭＬＣのＮＡＮＤ型フラッシュメモリ７Ｍとのうち、ＳＬＣのＮＡＮＤ型フラッシュメモリ７Ｓに記憶する。
【００６８】
なお、本実施形態のホストＯＳ２０は、不揮発性半導体メモリ７のＳＬＣのＮＡＮＤ型フラッシュメモリ７Ｓのメモリ領域をＭＬＣのＮＡＮＤ型フラッシュメモリ７Ｍに変更する制御、不揮発性半導体メモリ７のＭＬＣのＮＡＮＤ型フラッシュメモリ７Ｍのメモリ領域をＳＬＣのＮＡＮＤ型フラッシュメモリ７Ｓに変更する制御を実行するとしてもよい。
【００６９】
図６は、本実施形態に係るゲストＯＳ１９とホストＯＳ２０との間におけるカラーリング情報の送受信の一例を示すブロック図である。
【００７０】
ホストＯＳ２０は、記憶装置５のいずれかの領域に、メモリマップでカラーリングテーブル２２を生成する。
【００７１】
ゲストＯＳ１９のカラーリング情報生成機能１９ａは、各データのカラーリング情報を生成し、カラーリングテーブル２２にカラーリング情報を書き込む。
【００７２】
図７は、本実施形態に係るメモリ管理装置４およびメモリ管理ソフトウェア２１と、記憶装置５に記憶される各種データとの関係の一例を示すブロック図である。
【００７３】
メモリ管理装置４およびメモリ管理ソフトウェア２１は、メモリ使用情報２３と、メモリ固有情報２４と、アドレス変換情報２５と、カラーリングテーブル２２とを記憶装置５に格納する。
【００７４】
揮発性半導体メモリ６には、不揮発性半導体メモリ７Ｓ，７Ｍに格納されているカラーリングテーブル２２の一部が格納されるとしてもよい。例えば、不揮発性半導体メモリ７Ｓ，７Ｍに格納されているカラーリングテーブル２２のうち、頻繁に用いられるカラーリング情報を、揮発性半導体メモリ６に格納するとしてもよい。メモリ管理装置４およびメモリ管理ソフトウェア２１は、カラーリングテーブル２２等を参照し、記憶装置５に対するアクセスを管理する。
【００７５】
メインメモリとして不揮発性半導体メモリ７Ｓ，７Ｍを利用する場合、不揮発性半導体メモリ７Ｓ，７Ｍへのアクセス頻度は、２次記憶装置として不揮発性半導体メモリ７Ｓ，７Ｍを利用する場合よりも高くなり、不揮発性半導体メモリ７Ｓ，７Ｍの寿命は短期化する。本実施形態においては、揮発性半導体メモリ６とＳＬＣの不揮発性半導体メモリ７ＳとＭＬＣの不揮発性半導体メモリ７Ｍとを混成してメインメモリとする記憶装置５を備えた情報処理装置を実現している。記憶装置５は、異機種混在型の主記憶装置であり、メモリ管理装置４およびメモリ管理ソフトウェア２１によってデータの配置が管理される。
【００７６】
メモリ使用情報２３は、不揮発性半導体メモリ７Ｓ，７Ｍの各ページ領域の書き込み発生回数および読み出し発生回数と、各ブロック領域の消去回数と、使用中領域サイズを含む。
【００７７】
メモリ固有情報２４は、揮発性半導体メモリ６のメモリサイズと、不揮発性半導体メモリ７Ｓ，７Ｍのメモリサイズと、不揮発性半導体メモリ７Ｓ，７Ｍのページサイズおよびブロックサイズと、各メモリ領域のアクセス可能上限回数（書き込み可能上限回数、読み出し可能上限回数、消去可能上限回数）と、を含む。ここで、ページサイズとは、不揮発性半導体メモリ７Ｓ，７Ｍの書き込み、読み出しのデータサイズの単位である。ブロックサイズとは、不揮発性半導体メモリ７のデータ消去サイズの単位である。不揮発性半導体メモリ７において、ブロックサイズはページサイズよりも大きい。
【００７８】
アドレス変換情報２５は、プロセッサ２から与えられる論理アドレスを、論理アドレスに対応する物理アドレスに変換する情報である。
【００７９】
カラーリングテーブル２２は、データ毎のカラーリング情報が保持されるテーブルである。カラーリング情報は、静的カラー情報と動的カラー情報を含む。
【００８０】
図８は、本実施形態に係るメモリ管理装置４およびメモリ管理ソフトウェア２１によって実現される各種処理部の一例を示すブロック図である。
【００８１】
メモリ管理装置４およびメモリ管理ソフトウェア２１は、アドレス管理部２６、読み出し管理部２７、書き込み管理部２８、カラーリング情報管理部２９、メモリ使用情報管理部３０、再配置部３１を備える。さらに、カラーリング情報管理部２９は、アクセス頻度算出部３２、動的カラー情報管理部３３を備える。
【００８２】
アドレス管理部２６は、論理アドレスに対して物理アドレスを割り当て、アドレス変換情報２５に記憶する。これにより、メモリ管理装置４およびメモリ管理ソフトウェア２１は、アドレス変換情報２５を参照することにより、論理アドレスに対応する物理アドレスを取得することができる。
【００８３】
読み出し管理部２７は、プロセッサ２が読み出し要求を発生した場合に、記憶装置５に対して読み出し対象データの読み出し処理を管理する。
【００８４】
書き込み管理部２８は、プロセッサ２が書き込み要求を発生した場合に、記憶装置５に対して書き込み対象データを書き込む処理を管理する。
【００８５】
カラーリング情報管理部２９は、カラーリングテーブル２２を管理する。
【００８６】
メモリ使用情報管理部３０は、記憶装置５のメモリ使用情報２３を管理する。
【００８７】
再配置部３１は、プロセッサ２の動作と非同期に、カラーリングテーブル２２に含まれているカラーリング情報に基づき、任意の論理アドレスに対応する物理アドレスに配置されているデータの再配置を行う。再配置部３１は、例えば、動的カラー情報に基づき、不揮発性半導体メモリ７Ｍに含まれるデータのうち、読み出し頻度、書き込み頻度が高いデータを、定期的に、不揮発性半導体メモリ７Ｓに再配置する。また、再配置部は、例えば、動的カラー情報に基づき、不揮発性半導体メモリ７Ｓに含まれるデータのうち、読み出し頻度、書き込み頻度が低いデータを、定期的に、不揮発性半導体メモリ７Ｍに再配置する。同様に、再配置部３１は、揮発性半導体メモリ６、不揮発性半導体メモリ７Ｓ，７Ｍの間でもデータの再配置を行うことが可能である。書き込み管理部２８による書き込み処理は、データの更新が発生するたびに、書き込み先メモリ領域の判断処理と書き込み先ブロック領域の判断処理を行うことで再配置を行う。
【００８８】
アクセス頻度算出部３２は、カラーリングテーブル２２に含まれているカラーリング情報に基づき、データのアクセス頻度情報（動的書き込み頻度DW_color、動的読み出し頻度DR_color）を算出する。
【００８９】
動的カラー情報管理部３３は、カラーリングテーブル２２に含まれている動的カラー情報を管理する。
【００９０】
図９は、本実施形態に係るカラーリング情報とカラーリングテーブル２２の一例を示す図である。
【００９１】
本実施形態では、データ毎にカラーリング情報が付与される。カラーリング情報が付与されるデータのデータサイズ単位は、例えば、読み出し、書き込みの最小の単位である。例えば、読み出し、書き込みの最小の単位は、ＮＡＮＤ型フラッシュメモリのページサイズである。以下において、カラーリングテーブル２２によりカラーリング情報が対応付けられるデータのデータサイズはページサイズであるとして説明するが、これに限定されるものではない。
【００９２】
カラーリングテーブル２２は、データ毎にカラーリング情報を対応付け、エントリ単位でカラーリング情報を格納する。カラーリングテーブル２２の各エントリには、インデックスが付されている。インデックスとは、論理アドレスを基に生成される値である。上記の読み出し管理部２７、書き込み管理部２８、カラーリング情報管理部２９、再配置部３１などは、データを指定する論理アドレスが与えられると、論理アドレスに対応するインデックスにより管理されているエントリを参照し、データのカラーリング情報を取得する。
【００９３】
カラーリング情報は、各データの配置領域を決定する基準として用いられる情報であり、静的カラー情報と、動的カラー情報とを含む。静的カラー情報は、カラーリング情報が付与される当該データの特性に基づいて生成される情報であり、当該データの記憶装置５上の配置（書き込み）領域を決定するヒントとなる情報である。動的カラー情報は、データの読み出しと書き込みの回数と頻度の少なくとも一方を含む情報である。
【００９４】
静的カラー情報は、当該データの重要度、静的書き込み頻度を示す値SW_color、静的読み出し頻度を示すSR_color、データ寿命SL_color、データの生成された時刻ST_colorを含む。
【００９５】
重要度とは、データの種類等に基づいて、当該データの重要性を推測して設定される値である。重要度は、例えば、ファイルシステムに保持されるファイルの特性、またはプログラムに一次的に使用される領域の特性により推測される。
【００９６】
静的書き込み頻度SW_colorとは、データの種類等に基づいて、当該データが書き込まれる頻度を推測して設定される値である。静的読み出し頻度SR_colorとは、データの種類等に基づいて、当該データが読み出される頻度を推測して設定される値である。例えば、静的書き込み頻度SW_colorは、書き込み頻度が高いと推測されるデータほど、高い値が設定される。例えば、静的読み出し頻度SR_colorは、読み出し頻度が高いと推測されるデータほど、高い値が設定される。
【００９７】
データ寿命SL_colorとは、データの種類等に基づいて、当該データが消去されずにデータとして使用される期間（データの寿命）を推測して設定される値である。
【００９８】
静的カラー情報は、データを生成するプログラム（プロセス）により、静的に、予め決められた値である。また、ゲストＯＳ１２が、データのファイル拡張子またはファイルヘッダ等に基づいて、静的カラー情報を予測してもよい。
【００９９】
動的カラー情報は、データの書き込み回数DWC_color、データの読み出し回数DRC_colorを含む。ここで、データの書き込み回数DWC_colorとは、当該データが記憶装置５に書き込まれた回数である。データの読み出し回数DRC_colorとは、当該データが記憶装置５から読み出された回数である。動的カラー情報管理部３３は、データの書き込み回数DWC_colorにより、データ毎に、当該データが記憶装置５に書き込まれた回数を管理する。動的カラー情報管理部３３は、データ読み出し回数DRC_colorにより、データ毎に、当該データが記憶装置５から読み出された回数を管理する。前述のように、記憶装置５は、メインメモリとして用いられる。このため、プロセッサ２で処理されるデータは、記憶装置５に書き込まれ、記憶装置５から読み出される。動的カラー情報管理部３３は、データが書き込まれる度に、当該データの書き込み回数DWC_colorをインクリメントする。また、動的カラー情報管理部３３は、データが読み出される度に、当該データの読み出し回数DRC_colorをインクリメントする。
【０１００】
アクセス頻度算出部３２は、データの書き込み回数DWC_colorから、動的書き込み頻度DW_colorを算出する。アクセス頻度算出部３２は、データの読み出し回数DRC_colorから、動的読み出し頻度DR_colorを算出する。
【０１０１】
動的書き込み頻度DW_colorとは、当該データが記憶装置５に書き込まれた頻度を示す値である。動的読み出し頻度DR_colorとは、当該データが記憶装置５から読み出された頻度を示す値である。
【０１０２】
ここで、動的カラー情報と静的カラー情報に基づいて動的書き込み頻度DW_colorと動的読み出し頻度DR_colorを算出する方法について説明する。
【０１０３】
新たなデータがデータ生成時刻において生成されると、新たに生成されたデータに対してカラーリング情報（データ生成時刻を含む）が生成され、カラーリングテーブル２２の新たなエントリに登録された上で、データは記憶装置５に書き込まれる。データ生成時刻以降、このデータに対するアクセス（読み出し、書き込み）が発生することにより、時間の経過とともに、アクセス回数（書き込み回数DWC_color、読み出し回数DRC_color）が増加する。このアクセス回数の増加は、動的カラー情報管理部３３によって行われる。メモリ管理装置４およびメモリ管理ソフトウェア２１の少なくとも一方によって実現されるアクセス頻度算出部３２は、アクセス回数から動的書き込み頻度DW_color、動的読み出し頻度DR_colorを算出する。
【０１０４】
現在時刻における、当該データの書き込み回数DWC_color、データの読み出し回数DRC_colorは、カラーリングテーブル２２を参照することにより求めることができる。例えば、現在時刻における当該動的書き込み頻度DW_colorは、データ生成時刻ST_colorから現在時刻までの書き込み回数DWC_colorの時間平均により求める。また、例えば、現在時刻における当該動的読み出し頻度DR_colorは、データ生成時刻ST_colorから現在時刻までの読み出し回数DRC_colorの時間平均により求める。これにより、動的カラー情報（書き込み回数DWC_color、読み出し回数DRC_color）から、当該データの動的書き込み頻度DW_colorと、動的読み出し頻度DR_colorとが算出される。
【０１０５】
書き込み管理部２８は、メモリ使用情報２３、メモリ固有情報２４、カラーリングテーブル２２に基づいて、記憶装置５に対して書き込み対象データを書き込むメモリ領域を決定し、この決定されたメモリ領域に書き込み対象データを書き込む。
【０１０６】
例えば、書き込み管理部２８は、記憶装置５の各メモリ領域に対して、消耗度（＝書き込み回数／書き込み可能上限回数）を算出し、消耗度の高いメモリ領域に動的書き込み頻度の低いデータを書き込む。
【０１０７】
例えば、書き込み管理部２８は、消耗度の低いメモリ領域に動的書き込み頻度の高いデータを書き込む。
【０１０８】
例えば、書き込み管理部２８は、動的読み出し頻度または動的書き込み頻度が「高」のデータを揮発性半導体メモリ６のメモリ領域に書き込み、動的読み出し頻度または動的書き込み頻度が「中」のデータをＳＬＣのＮＡＮＤ型フラッシュメモリ７Ｓのメモリ領域に書き込み、動的読み出し頻度または動的書き込み頻度が「低」のデータをＭＬＣのＮＡＮＤ型フラッシュメモリ７Ｍのメモリ領域に書き込む。
【０１０９】
上記の処理により書き込み対象のメモリ領域が決定された場合、書き込み管理部２８は、書き込み先の物理アドレスを決定する。この場合、書き込み管理部２８は、カラーリングテーブル２２を参照し、書き込み先の物理アドレスを適切に選択することでウェアレベリングの発生を抑え、不要な消去処理を低減する。
【０１１０】
ここでウェアレベリングとは、例えば、消去回数が最大のブロックと、消去回数が最小のブロックとの消去回数の差が、所定の閾値以内に収まるように、ブロック間でデータの入れ替え（交換）を行うことを意味する。例えば、ＮＡＮＤ型フラッシュメモリは消去処理なしでのデータ上書きができないため、データ移動先は未使用のブロックである必要があり、元々データを記憶していたブロックの消去処理が発生することになる。
【０１１１】
なお、本実施の形態においては、算出された各メモリの消耗度に応じて、ＳＬＣのメモリ領域をＭＬＣのメモリ領域に切り替えてもよく、ＭＬＣのメモリ領域をＳＬＣのメモリ領域に切り替えてもよい。
【０１１２】
以上に説明した本実施形態では、ハードウェアであるメモリ管理装置４とともに、ソフトウェアであるメモリ管理ソフトウェア２１によって、記憶装置５に対する書き込み、読み出し、消去の処理が制御される。
【０１１３】
このように、記憶装置５に対する書き込み、読み出し、消去の処理の一部をソフトウェアで実行させることにより、自由度の高い、高度なウェアレベリングを実行させることができ、記憶装置５の一部のメモリ領域だけが劣化することを防止することができ、記憶装置５の長寿命化を実現させることができる。
【０１１４】
本実施形態では、ゲストＯＳ１９から、メモリ管理ソフトウェア２１に、カラーリング情報が送信され、このカラーリング情報に基づいて効率的かつ高度なウェアレベリングが実施される。
【０１１５】
なお、本実施の形態において、メモリ管理ソフトウェア２１は、ホストＯＳ２０の一部であるとしてもよい。
【０１１６】
（第３の実施形態）
本実施形態では、上記第１および第２の実施形態に係るソフトウェアＳＳＤ９について説明する。
【０１１７】
ソフトウェアＳＳＤ９は、不揮発性半導体メモリ７をＳＳＤとして制御するためのソフトウェアである。
【０１１８】
補助記憶装置として用いられるＳＳＤは、通常、プロセッサに、チップセット（サウスブリッジ、ノースブリッジ）を介して接続される。例えば、ＳＳＤは、ＳＡＴＡ（Serial Advanced Technology Attachment）インタフェースによりサウスブリッジに接続される。
【０１１９】
本実施形態では、不揮発性半導体メモリ７は、プロセッサ２に、メモリ管理装置４を介して接続される。不揮発性半導体メモリ７は、例えば、PCIexpressにより、メモリ管理装置４に接続され、補助記憶装置として用いられる。
【０１２０】
ソフトウェアＳＳＤ９は、不揮発性半導体メモリ７をＳＳＤ（補助記憶装置）として用いる場合、カラーリング情報を用いて高度なウェアレベリングを実現させることができる。
【０１２１】
一方、例えば、ゲストＯＳがカラーリング生成機能１９ａを持たない汎用的なゲストＯＳ１２であり、ゲストＯＳ１２からカラーリング情報が送信されない場合であっても、ソフトウェアＳＳＤ９は、ＦＡＴ（File Allocation Table）を参照することでデータの属するファイルの種類、識別子などを識別できる。したがって、ソフトウェアＳＳＤ９は、このＦＡＴの情報に基づいて、データに対して、カラーリング情報（例えば静的カラー情報など）と同等な情報を生成し、高度なウェアレベリングを実現することができる。
【０１２２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２３】
１…情報処理装置、２…プロセッサ、３…バス、４…メモリ管理装置、５…記憶装置、６…揮発性半導体メモリ、７…不揮発性半導体メモリ、７Ｓ…ＳＬＣタイプのＮＡＮＤ型フラッシュメモリ、７Ｍ…ＭＬＣタイプのＮＡＮＤ型フラッシュメモリ、Ｌ１…１次キャッシュメモリ、Ｌ２…２次キャッシュメモリ、９…ソフトウェアＳＳＤ、１０，２１…メモリ管理ソフトウェア、１０ａ…キャッシュ制御部、１０ｂ…キャッシュミス検出部、１０ｃ，２１ｃ…データ配置領域決定部、１１，２０…ホストＯＳ、１２，１９…ゲストＯＳ、１３１〜１３ｎ…仮想マシン、１４１〜１４ｍ…仮想アドレス空間、１５１〜１５ｍ…物理アドレス空間、１６１〜１６ｎ…仮想アドレス空間、Ｐ１〜Ｐｎ…プロセス、１８…テーブル、１９…ゲストＯＳ、１９ａ…カラーリング情報生成機能、１１ａ…スケジューラ、１１ｂ…仮想マシン切替部、２２…カラーリングテーブル、２３…メモリ使用情報、２４…メモリ固有情報、２５…アドレス変換情報、２６…アドレス管理部、２７…読み出し管理部、２８…書き込み管理部、２９…カラーリング情報管理部、３０…メモリ使用情報管理部、３１…再配置部、３２…アクセス頻度算出部、３３…動的カラー情報管理部、３４…ＭＭＵ。
【図１】
2012033001.tif 000003
【図２】
2012033001.tif 000004
【図３】
2012033001.tif 000005
【図４】
2012033001.tif 000006
【図５】
2012033001.tif 000007
【図６】
2012033001.tif 000008
【図７】
2012033001.tif 000009
【図８】
2012033001.tif 000010
【図９】
2012033001.tif 000011