(57)【要約】【課題】書き換え回数に上限がある不揮発性メモリの利用効率を向上させる。【解決手段】メインメモリは、書き換え回数に上限がある不揮発性のメモリであり、情報処理システムの主記憶装置として利用される。メインメモリのデータ格納部は、複数のページに分割されており、それらのページにＣＰＵが処理を実行するのに必要なデータと、メモリ管理のための管理情報が格納される。メインメモリ管理制御部は、書き換え回数の上限値に基づいて閾値を算出し、所定のページの書き換え回数が閾値に達すると、所定のページに書き込まれるべきデータを、そのページとは異なる他のページに書き込む。そして、メインメモリ管理制御部は、全ページの書き換え回数が閾値に達した場合には、新たな閾値を算出する。本技術は、情報処理システムに適用することができる。【選択図】図１
2013254357.tif 000002
【特許請求の範囲】
【請求項１】
書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理する書き換え回数管理部と、
所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込むデータ処理部と
を備える情報処理装置。
【請求項２】
全ての前記ページの書き換え回数が前記閾値以上となった場合、前記閾値より大きく、かつ前記上限値以下の新たな閾値を算出し、前記閾値を更新する閾値更新部をさらに備える
請求項１に記載の情報処理装置。
【請求項３】
前記閾値更新部は、前記上限値に対して定められた固定値を前記閾値に加算することで、新たな閾値を算出する
請求項２に記載の情報処理装置。
【請求項４】
前記データ処理部は、前記所定ページへの前記書き込みデータの書き込みが指示され、前記所定ページの書き換え回数、および有効データが格納されていない前記ページの書き換え回数が前記閾値に達している場合、有効データが格納されている前記ページのうち、書き換え回数が前記閾値に達していない前記ページを検索するとともに、前記検索により得られた前記ページに格納されているデータを、有効データが格納されていない前記ページに移動させる
請求項１に記載の情報処理装置。
【請求項５】
前記データ処理部は、前記検索により得られた前記ページのデータの移動後、前記書き込みデータを前記検索により得られた前記ページに書き込む
請求項４に記載の情報処理装置。
【請求項６】
各前記ページの書き換え回数は、前記主記憶装置に格納されている
請求項５に記載の情報処理装置。
【請求項７】
各前記ページの書き換え回数は、前記ページに対して一意に定められた位置、または前記ページ位置から演算により求まる位置に格納されている
請求項６に記載の情報処理装置。
【請求項８】
前記ページに対して仮想ページ番号を割り当てるとともに、前記ページの前記仮想ページ番号と物理ページ番号の対応を示す論物変換情報を管理する変換情報管理部をさらに備える
請求項１に記載の情報処理装置。
【請求項９】
前記変換情報管理部は、前記所定ページに対して所定仮想ページ番号が割り当てられており、前記所定仮想ページ番号が書き込み先として指定された前記書き込みデータが、前記他のページに書き込まれた場合、前記所定仮想ページ番号の割り当てを前記所定ページから前記他のページに変更する
請求項８に記載の情報処理装置。
【請求項１０】
各前記ページの書き換え回数と、前記論物変換情報とは異なる領域に格納されている
請求項９に記載の情報処理装置。
【請求項１１】
前記論物変換情報または前記閾値の少なくとも一方は前記ページに格納されている
請求項１０に記載の情報処理装置。
【請求項１２】
書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理し、
所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込む
ステップを含む情報処理方法。
【請求項１３】
書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理し、
所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込む
ステップを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は情報処理装置および方法、並びにプログラムに関し、特に、書き換え回数に上限がある不揮発性メモリの利用効率を向上させることができるようにした情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、書き換え回数に上限がある不揮発性メモリについて、メモリの各領域を適切に利用するためのメモリ管理に関する技術が提案されている。
【０００３】
例えば、そのような技術として、メモリ上に仮想アドレスと物理アドレスのマッピング情報を含むページテーブルを記憶させ、ページテーブルを利用してメモリを管理する技術がある（例えば、特許文献１参照）。
【０００４】
この技術ではマッピング情報にメモリ上の各ページの書き込み回数情報が含まれており、書き込み回数情報に基づいてデータの格納場所の管理が行なわれる。具体的には、メモリ上のページに対する書き込み回数が耐久限度に到達した場合には、そのページのデータが他のページに移動され、その移動に合わせてマッピング情報が更新される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１８６４７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した技術では、メモリを効率よく利用することは困難であった。
【０００７】
上述したように、書き換え回数に上限がある不揮発性メモリでは、メモリの所定ページに対する書き込み回数が耐久限度となって寿命に達すると、それ以降はそのページに対するデータの書き込みができなくなる。つまり、そのページを利用することができなくなる。例えば、メモリ上の特定のページに対する書き込みが頻発すると、そのページは他のページと比較して早く寿命に達するため、同一ページに対する書き込みが頻発するたびにメモリの利用可能容量が減っていくことになる。
【０００８】
そうすると、メモリ全体の使用回数が比較的少ない場合であっても、メモリの利用可能容量が不足してしまい、これまで使用していたアプリケーションプログラムなどを使用できなくなってしまうことがあった。
【０００９】
このように、メモリ上の各ページに対するデータの書き込み頻度に偏りがあると、メモリの利用効率が低下してしまうことになる。
【００１０】
本技術は、このような状況に鑑みてなされたものであり、書き換え回数に上限がある不揮発性メモリの利用効率を向上させることができるようにするものである。
【課題を解決するための手段】
【００１１】
本技術の一側面の情報処理装置は、書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理する書き換え回数管理部と、所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込むデータ処理部とを備える。
【００１２】
情報処理装置には、全ての前記ページの書き換え回数が前記閾値以上となった場合、前記閾値より大きく、かつ前記上限値以下の新たな閾値を算出し、前記閾値を更新する閾値更新部をさらに設けることができる。
【００１３】
前記閾値更新部には、前記上限値に対して定められた固定値を前記閾値に加算することで、新たな閾値を算出させることができる。
【００１４】
前記データ処理部には、前記所定ページへの前記書き込みデータの書き込みが指示され、前記所定ページの書き換え回数、および有効データが格納されていない前記ページの書き換え回数が前記閾値に達している場合、有効データが格納されている前記ページのうち、書き換え回数が前記閾値に達していない前記ページを検索させるとともに、前記検索により得られた前記ページに格納されているデータを、有効データが格納されていない前記ページに移動させることができる。
【００１５】
前記データ処理部には、前記検索により得られた前記ページのデータの移動後、前記書き込みデータを前記検索により得られた前記ページに書き込ませることができる。
【００１６】
各前記ページの書き換え回数を、前記主記憶装置に格納することができる。
【００１７】
各前記ページの書き換え回数は、前記ページに対して一意に定められた位置、または前記ページ位置から演算により求まる位置に格納されるようにすることができる。
【００１８】
情報処理装置には、前記ページに対して仮想ページ番号を割り当てるとともに、前記ページの前記仮想ページ番号と物理ページ番号の対応を示す論物変換情報を管理する変換情報管理部をさらに設けることができる。
【００１９】
前記変換情報管理部には、前記所定ページに対して所定仮想ページ番号が割り当てられており、前記所定仮想ページ番号が書き込み先として指定された前記書き込みデータが、前記他のページに書き込まれた場合、前記所定仮想ページ番号の割り当てを前記所定ページから前記他のページに変更させることができる。
【００２０】
各前記ページの書き換え回数と、前記論物変換情報とは異なる領域に格納されるようにすることができる。
【００２１】
前記論物変換情報または前記閾値の少なくとも一方は前記ページに格納されているようにすることができる。
【００２２】
本技術の一側面の情報処理方法またはプログラムは、書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理し、所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込むステップを含む。
【００２３】
本技術の一側面においては、書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数が管理され、所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータが書き込まれる。
【発明の効果】
【００２４】
本技術の一側面によれば、書き換え回数に上限がある不揮発性メモリの利用効率を向上させることができる。
【図面の簡単な説明】
【００２５】
【図１】情報処理システムの構成例を示す図である。
【図２】管理情報格納部の構成例を示す図である。
【図３】データ格納部と書き換え回数格納部の対応関係について説明する図である。
【図４】回数情報格納部の配置例を示す図である。
【図５】メインメモリ管理制御部の構成例を示す図である。
【図６】管理情報の初期状態について説明する図である。
【図７】初期状態におけるデータ書き込み処理について説明するフローチャートである。
【図８】管理情報の更新について説明する図である。
【図９】メイン管理情報が更新されない場合におけるデータ書き込み処理について説明するフローチャートである。
【図１０】管理情報の更新について説明する図である。
【図１１】ページの書き換え回数が閾値に達した管理情報の例を示す図である。
【図１２】書き換え回数が閾値に達した場合におけるデータ書き込み処理について説明するフローチャートである。
【図１３】管理情報の更新について説明する図である。
【図１４】仮想ページ番号が割り当て済みで、データ格納場所と空きページの書き換え回数が閾値に達した管理情報の例を示す図である。
【図１５】データ格納場所と空きページの書き換え回数が閾値に達した場合におけるデータ書き込み処理について説明するフローチャートである。
【図１６】管理情報の更新について説明する図である。
【図１７】管理情報の更新について説明する図である。
【図１８】全ページの書き換え回数が閾値に達した管理情報の例を示す図である。
【図１９】閾値更新処理について説明するフローチャートである。
【図２０】管理情報の更新について説明する図である。
【図２１】情報処理システムの他の構成例を示す図である。
【図２２】情報処理システムの他の構成例を示す図である。
【図２３】情報処理システムの他の構成例を示す図である。
【図２４】メインメモリの構成例を示す図である。
【図２５】コンピュータの構成例を示す図である。
【発明を実施するための形態】
【００２６】
以下、図面を参照して、本技術を適用した実施の形態について説明する。
【００２７】
〈第１の実施の形態〉
［本技術の特徴について］
まず、本技術の特徴について説明する。
【００２８】
本技術は、書き換え回数に上限がある不揮発性メモリをメインメモリに用いるシステムに関するものであり、このシステムでは、メインメモリの所定領域が１バイト以上の任意のサイズ単位に分割されて、サイズ単位で管理される。
【００２９】
なお、以下では、所定のサイズ単位で分割されたメインメモリの各領域をページと称することとし、各ページの大きさ、つまりメインメモリの分割のサイズ単位をページサイズと称することとする。また、本技術でいうメインメモリとは、プログラムを実行する処理ユニットが直接アクセスし、データの読み出しや書き込みを行なうことができる主記憶装置であり、処理ユニットは主記憶装置の各領域に対してランダムにアクセス可能である。
【００３０】
このようなシステムに適用される本技術は、特に以下の（１）乃至（５）の特徴を有している。
【００３１】
（１）メインメモリのページごとに、ページの書き換え回数に関する情報を保持する。
（２）メインメモリの書き換え回数の上限値ＭＸに対して、その上限値ＭＸ以下の複数の閾値ｔｈを定め、それらの閾値ｔｈを小さいものから順番に用いてメインメモリの管理を行なう。
（３）所定のページ（移動元ページ）に対する書き換え回数が使用中の閾値ｔｈに達した場合、有効なデータが記憶されていない他のページ（移動先ページ）に、移動元ページのデータを移動させる。
（４）移動先ページの書き換え回数が閾値ｔｈ以上である場合、有効なデータが記憶されている、書き換え回数が閾値ｔｈ未満のページを検索し、その結果得られたページのデータを移動先ページに移動させ、検索で得られたページを新たな移動先ページとする。
（５）メインメモリ内の全ページの書き換え回数が使用中の閾値ｔｈに達した場合、その閾値ｔｈよりも大きい次の閾値ｔｈを用いて、メインメモリの管理を行なう。
【００３２】
以上の特徴（１）乃至（５）によって、ページサイズ単位に分割されたメインメモリ内の各領域（ページ）の書き換え回数を平均化し、メインメモリの利用効率を向上させることができる。これにより、書き換え回数に上限がある不揮発性メモリ（メインメモリ）の寿命を延ばすことができ、その結果としてメインメモリを用いるシステムの寿命も延ばすことができるようになる。
【００３３】
なお、特徴（１）乃至（５）を有するシステムを実現するためには、各ページの書き換え回数に関する情報や論物変換情報等からなる管理情報を保持する必要がある。ここで、論物変換情報とは、メインメモリ上の実際のページ位置を示す物理アドレス（物理ページ番号）と、そのページの仮想アドレス（仮想ページ番号）との対応を示す情報である。
【００３４】
管理情報は、メインメモリに記憶されるようにしてもよいし、他のメモリに記憶されるようにしてもよい。例えば管理情報がメインメモリに記憶される場合には、本技術を適用したシステムに対して、さらに以下の（６）および（７）の特徴をもたせることで、メインメモリの利用効率をさらに向上させることができる。
【００３５】
（６）メインメモリに各ページの書き換え回数に関する情報を記憶させる。
（７）ページの書き換え回数に関する情報の格納場所は、各ページに対して演算により算出することのできる場所、または各ページに対して一意に定められた場所とされる。そして、書き換え回数に関する情報が格納される領域は、書き換え回数の上限値ＭＸの値を格納可能なサイズの領域とされる。
【００３６】
以上の特徴（６）と（７）により、メインメモリの管理に関する情報のサイズを削減することができる。
【００３７】
例えば、上述した特許文献１に記載の技術では、各ページの書き込み回数情報の格納場所を示すポインタが必要であり、そのポインタを格納する場所をページテーブル内に確保しなければならなかった。そのため、ページテーブルのデータサイズが大きくなり、メモリ上の他のデータを記憶可能な領域が減ってしまうことになる。そうすると、各領域のデータの書き換えが増えてメモリの寿命が短くなってしまう。
【００３８】
これに対して本技術では、特徴（６）および（７）により、ページの書き換え回数に関する情報の格納場所を示す情報をもたなくても、書き換え回数に関する情報の格納場所を特定可能であるので、その分だけ管理情報のサイズを削減することができる。
【００３９】
これにより、管理情報のサイズ削減分だけ、他のデータを記憶可能な領域をより多く確保することができるので、メインメモリの利用効率を向上させて、メインメモリの寿命をさらに延ばすことができる。
【００４０】
また、上述した特許文献１に記載の技術では、マッピング情報に書き込み回数情報が含まれているため、書き込み回数情報を更新するごとにマッピング情報が格納されている領域が書き換えられて、その領域の寿命が短くなってしまう。
【００４１】
これに対して本技術では、管理情報に含まれる論物変換情報の格納場所と、ページの書き換え回数に関する情報の格納場所とを別にして、それらの情報を個別に管理することで、ページの書き換え回数に関する情報以外の論物変換情報等の更新回数を削減することができる。これにより、メインメモリの寿命を延ばすことができる。
【００４２】
［情報処理システムの構成例］
次に、本技術を適用した具体的な実施の形態について説明する。図１は、本技術を適用した情報処理システムの一実施の形態の構成例を示す図である。
【００４３】
図１の情報処理システムは、書き換え回数に上限がある不揮発性メモリをメインメモリ（主記憶装置）として使用する任意の情報処理装置に設けられており、情報処理システムは、制御部１１、メインメモリ１２、およびバス１３から構成される。
【００４４】
この情報処理システムでは、制御部１１は、書き換え回数に上限がある不揮発性メモリであるメインメモリ１２を主記憶装置として利用し、ドライブ等を必要とせずにバス１３を介してメインメモリ１２に直接、かつランダムにアクセスする。
【００４５】
制御部１１は、バス１３を介してメインメモリ１２と接続されており、所定の処理の実行時にメインメモリ１２に対するデータの読み出しや書き込みを行なったり、メインメモリ１２を管理したりする。制御部１１にはＣＰＵ（Central Processing Unit）２１およびメインメモリ管理制御部２２が設けられている。
【００４６】
ＣＰＵ２１は、メインメモリ１２に記憶されているプログラムを実行することで、各種の処理を行なうとともに、処理実行時にメインメモリ管理制御部２２を介してメインメモリ１２に対するデータの読み書きを行なう。
【００４７】
メインメモリ管理制御部２２は、メインメモリ１２の管理を行なうとともに、ＣＰＵ２１の指示に応じてメインメモリ１２の任意の領域にアクセスし、データの読み出しや書き込みを行なう。
【００４８】
メインメモリ１２は、書き換え回数に上限値ＭＸが設けられた不揮発性のメモリであり、情報処理システムのメインメモリ（主記憶装置）として機能する。メインメモリ１２には、プログラム格納部３１およびデータ格納部３２が設けられている。
【００４９】
プログラム格納部３１は、ＣＰＵ２１により実行されるプログラムが格納されるメインメモリ１２上の領域からなり、プログラム格納部３１に格納されたプログラムは、バス１３を介して制御部１１に読み出される。
【００５０】
データ格納部３２は、所定のページサイズのページに分割されて管理され、データ格納部３２には管理情報格納部４１が設けられている。
【００５１】
管理情報格納部４１は、データ格納部３２の各ページを特定する物理ページ番号と仮想ページ番号との対応を示す論物変換情報や、各ページの書き換え回数などからなる管理情報が格納される領域からなる。管理情報格納部４１に格納されている管理情報は、メインメモリ管理制御部２２によって管理される。
【００５２】
また、データ格納部３２の管理情報格納部４１以外の領域（ページ）には、ＣＰＵ２１が各種の処理を実行するためのデータが格納され、ＣＰＵ２１による処理の実行時には、各ページに対してメインメモリ管理制御部２２によるデータの読み書きが行なわれる。
【００５３】
［管理情報について］
ここで、管理情報格納部４１に格納される管理情報について説明する。
【００５４】
例えば、図２に示すように管理情報格納部４１には、管理情報に含まれる各情報を格納しておくための領域として、メイン管理情報格納部６１と書き換え回数格納部６２が設けられている。
【００５５】
メイン管理情報格納部６１は、管理情報に含まれる論物変換情報等の主な情報が格納される領域であり、メイン管理情報格納部６１には、論物変換情報格納部７１、空き物理ページ番号格納部７２、閾値格納部７３、および上限値格納部７４が設けられている。
【００５６】
論物変換情報格納部７１は、論物変換情報が格納される領域であり、論物変換情報格納部７１には、論物変換情報としてのデータ格納部３２の各ページの物理ページ番号（物理アドレス）が格納される物理ページ番号格納部ＦＡ−０乃至物理ページ番号格納部ＦＡ−ｍが設けられている。以下、物理ページ番号格納部ＦＡ−０乃至物理ページ番号格納部ＦＡ−ｍを個々に区別する必要のない場合、単に物理ページ番号格納部ＦＡとも称する。
【００５７】
例えば、データ格納部３２が複数のページに分割され、それらのページのうち、書き換え回数格納部６２とされるページを除いて残ったページが、物理ページ番号ＰＰＡ０乃至物理ページ番号ＰＰＡｎのそれぞれにより特定される（ｎ＋１）個のページであるとする。
【００５８】
なお、以下では、特に断りのない場合、単にページというときには、そのページとは、物理ページ番号ＰＰＡ０乃至物理ページ番号ＰＰＡｎにより特定される（ｎ＋１）個の各ページであるものとして説明を続ける。
【００５９】
データ格納部３２の（ｎ＋１）個のページに対して、最大で仮想ページ番号ＶＰＰＡ０乃至仮想ページ番号ＶＰＰＡｍの合計（ｍ＋１）個（但しｍ≦ｎ）の仮想ページ番号（仮想ページアドレス）が割り当て可能であるとする。
【００６０】
ここで仮想ページ番号は、ページの書き換え回数平均化によって、各データが格納されるページの物理ページ番号が分散してしまうことをプログラム等の上位層やＯＳ（Operating System）に意識させないために定義された、仮想的なページ番号である。
【００６１】
論物変換情報格納部７１では、図中、上側から下側まで仮想ページ番号ＶＰＰＡ０乃至仮想ページ番号ＶＰＰＡｍの順番に、それらの仮想ページ番号が割り当てられたページの物理ページ番号を格納する物理ページ番号格納部ＦＡが並べられて設けられている。
【００６２】
そのため、論物変換情報格納部７１における物理ページ番号格納部ＦＡの位置によって、その物理ページ番号格納部ＦＡに格納されている物理ページ番号により特定されるページに対して、どの仮想ページ番号が割り当てられているかが分かることになる。論物変換情報格納部７１では、これらの物理ページ番号格納部ＦＡに格納された物理ページ番号からなる情報が論物変換情報とされる。
【００６３】
また、メイン管理情報格納部６１の空き物理ページ番号格納部７２には、データ格納部３２上のページであって、有効なデータが記憶されていないページ（以下、空きページとも称する）の物理ページ番号の１つが、空き物理ページ番号として格納される。
【００６４】
ここで、空きページは、不要になったデータが記憶されているか、またはまだ何も記憶されていないページである。換言すれば、仮想ページ番号が割り当てられておらず、管理情報も格納されていないページが、その時点における空きページとされる。
【００６５】
例えば空き物理ページ番号格納部７２には、いくつかの空きページのうちの所定の条件を満たす１つの空きページの物理ページ番号が、空き物理ページ番号として格納される。
【００６６】
このように空き物理ページ番号格納部７２に空き物理ページ番号を格納して、空きページを１つ確保しておくのは、次のような理由からである。すなわち、空きページに対して新規に仮想ページ番号を割り当てたり、データを移動させたりする際に、事前に仮想ページ番号の割り当て先やデータの移動先となるページの場所情報（物理ページ番号）を保持しておくためである。
【００６７】
閾値格納部７３には、メインメモリ１２の書き換え回数の上限値ＭＸに基づいて算出された閾値ｔｈが格納され、この閾値ｔｈが用いられて各ページに対する仮想ページ番号の割り当てが制御される。また、閾値ｔｈは全てのページの書き換え回数が閾値ｔｈに達すると更新される。例えば、閾値ｔｈは、書き換え回数の上限値ＭＸの１０％の値，２０％の値，・・・，９０％の値，１００％の値と、更新されるたびに上限値ＭＸまで大きくなっていく。
【００６８】
さらに、メイン管理情報格納部６１の上限値格納部７４には、予め定められたメインメモリ１２の書き換え回数の上限値ＭＸが格納される。
【００６９】
以下においては、メイン管理情報格納部６１に格納される論物変換情報、空き物理ページ番号、閾値ｔｈ、および書き換え回数の上限値ＭＸからなる情報を、管理情報を構成するメイン管理情報と呼ぶこととする。
【００７０】
また、管理情報格納部４１の書き換え回数格納部６２には、データ格納部３２上の各ページについての書き換え回数が格納される。具体的には、書き換え回数格納部６２には、物理ページ番号ＰＰＡ０乃至物理ページ番号ＰＰＡｎのそれぞれにより特定されるページの書き換え回数が格納される回数情報格納部ＮＵ−０乃至回数情報格納部ＮＵ−ｎが設けられている。
【００７１】
例えば、回数情報格納部ＮＵ−０には、物理ページ番号ＰＰＡ０により特定されるページの書き換え回数が格納される。なお、以下、回数情報格納部ＮＵ−０乃至回数情報格納部ＮＵ−ｎを個々に区別する必要のない場合、単に回数情報格納部ＮＵとも称する。
【００７２】
［データ格納部のデータ構造について］
ところで、図３に示すようにデータ格納部３２には、物理ページ番号ＰＰＡ０乃至物理ページ番号ＰＰＡｎにより特定されるページＰＧ−０乃至ページＰＧ−ｎが設けられている。例えば、これらの各ページの大きさ、つまりページサイズは４ＫＢなどとされる。
【００７３】
なお、以下、ページＰＧ−０乃至ページＰＧ−ｎを個々に区別する必要のない場合、単にページＰＧとも称することとする。
【００７４】
また、各ページＰＧ−０乃至ページＰＧ−ｎには、それぞれ回数情報格納部ＮＵ−０乃至回数情報格納部ＮＵ−ｎが対応付けられている。ここで、各回数情報格納部ＮＵの配置位置は、その回数情報格納部ＮＵに対応するページＰＧの物理ページ番号から特定可能な位置とされる。
【００７５】
すなわち、回数情報格納部ＮＵは、その回数情報格納部ＮＵに対応するページＰＧの物理ページ番号を用いた演算により算出される値で特定される位置、またはページＰＧの物理ページ番号に対して一意に定められた位置とされる。また、回数情報格納部ＮＵのサイズは、書き換え回数の上限値ＭＸの値を格納可能なサイズとされる。
【００７６】
例えば、メインメモリ１２がNVRAM（Non Volatile RAM(Random Access Memory)）である場合、図４の上側に示すようにデータ格納部３２上の各ページＰＧの配置領域と、回数情報格納部ＮＵの配置領域とを分けるようにすることが考えられる。なお、図４において図３における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００７７】
この例では、データ格納部３２の先頭から、ページＰＧ−０乃至ページＰＧ−ｎが順番に並べられて配置されており、ページＰＧ−ｎに続いて、回数情報格納部ＮＵ−０乃至回数情報格納部ＮＵ−ｎが順番に並べられて配置されている。そのため、データ格納部３２を構成するページのうちのページＰＧとは異なる各ページに、回数情報格納部ＮＵが設けられていることになる。
【００７８】
このような場合、ページＰＧのうちのメイン管理情報が格納されているページＰＧ、つまりメイン管理情報格納部６１とされているページＰＧと、回数情報格納部ＮＵとからなる領域が、管理情報格納部４１の領域とされる。
【００７９】
なお、以上においては、データ格納部３２を構成するページに回数情報格納部ＮＵが設けられると説明したが、回数情報格納部ＮＵをページの領域に設けないようにしてもよい。そのような場合、例えばデータ格納部３２上に、所定の固定サイズの領域が回数情報格納部ＮＵとして確保され、データ格納部３２の回数情報格納部ＮＵを除く領域がページサイズの大きさの領域に分割され、分割された領域がページＰＧとされる。
【００８０】
そして、例えば図４中、下側に示すようにデータ格納部３２の先頭から、ページＰＧと回数情報格納部ＮＵとが交互に配置される。この例では、ページＰＧの直後に、そのページＰＧに関する書き換え回数が格納される回数情報格納部ＮＵが配置されているので、ページＰＧの位置から、対応する回数情報格納部ＮＵの位置を特定することができる。また、各ページＰＧ内の領域が回数情報格納部ＮＵとされるようにしてもよい。
【００８１】
［メインメモリ管理制御部の構成例］
さらに図１のメインメモリ管理制御部２２のより詳細な構成例について説明する。図５は、図１のメインメモリ管理制御部２２の構成例を示す図である。
【００８２】
図５のメインメモリ管理制御部２２は、データ処理部１０１、変換情報管理部１０２、空きページ検索部１０３、閾値更新部１０４、および書き換え回数管理部１０５から構成される。
【００８３】
データ処理部１０１は、ＣＰＵ２１の指示に応じてデータ格納部３２のページＰＧへのデータの書き込みや、ページＰＧからのデータの読み出しを制御する。変換情報管理部１０２は、論物変換情報格納部７１に格納されている論物変換情報を管理する。
【００８４】
空きページ検索部１０３は、ページＰＧから所定の条件を満たす空きページを検索したり、空き物理ページ番号格納部７２を管理したりする。閾値更新部１０４は、上限値格納部７４に格納された上限値に基づいて閾値ｔｈを算出したり、閾値格納部７３を管理したりする。書き換え回数管理部１０５は、書き換え回数格納部６２を管理する。
【００８５】
［初期状態におけるデータ書き込み処理の説明］
次に、図１の情報処理システムの動作について説明する。
【００８６】
例えばメインメモリ１２の初期状態、つまり制御部１１によるメインメモリ１２へのデータの書き込みが行なわれていない状態が、図６に示す状態であったとする。なお、図６において、図２または図３における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００８７】
図６の例では、データ格納部３２には、８個のページＰＧ−０乃至ページＰＧ−７が設けられている。すなわち、図６に示す初期状態は、図３におけるページＰＧ−ｎの整数ｎがｎ＝７である場合となっている。
【００８８】
図６では、ページＰＧ−０およびページＰＧ−１に、既にメイン管理情報が記憶されており、これらの２つのページがメイン管理情報格納部６１の領域となっている。そのため、ページＰＧ−０およびページＰＧ−１に対応する回数情報格納部ＮＵ−０および回数情報格納部ＮＵ−１には、書き換え回数として「１」が格納されている。
【００８９】
なお、データ格納部３２のページＰＧに格納されているメイン管理情報は、各ページＰＧへの書き換え回数に応じて他のページＰＧに移動されることもあるが、メインメモリ管理制御部２２は、メイン管理情報の格納場所を常に把握しているものとする。
【００９０】
これに対して、他のページＰＧ−２乃至ページＰＧ−７には、まだデータが書き込まれていない状態となっており、それらのページに対応する回数情報格納部ＮＵ−２乃至回数情報格納部ＮＵ−７には、書き換え回数として「０」が格納されている。
【００９１】
また、メイン管理情報格納部６１の論物変換情報格納部７１には、５つの仮想ページ番号ＶＰＰＡ０乃至仮想ページ番号ＶＰＰＡ４に対して、物理ページ番号格納部ＦＡ−０乃至物理ページ番号格納部ＦＡ−４が設けられている。
【００９２】
この例では、各物理ページ番号格納部ＦＡには、まだ物理ページ番号が格納されていない。すなわち、現時点では、仮想ページ番号ＶＰＰＡ０乃至仮想ページ番号ＶＰＰＡ４が何れのページにも割り当てられていない状態となっている。
【００９３】
図６に示す論物変換情報格納部７１では、５つの物理ページ番号格納部ＦＡが設けられているので、ＣＰＵ２１は５つのページに管理情報以外のデータを格納することができる。
【００９４】
例えば、データ格納部３２には８個のページＰＧが設けられており、そのうちの２つのページがメイン管理情報の格納に使用されている。そして、データ格納部３２には少なくとも１つの空きページを確保しておく必要があるので、この例では全ページ数の８から必要なページ数３（＝２＋１）を除いて得られるページ数５が、データ格納用のページの数とされている。
【００９５】
また、データ格納部３２では、物理ページ番号が最も小さい空きページが、新たなデータの格納先（仮想ページ番号の割り当て先）またはデータの移動先として確保されている。そして、その空きページの物理ページ番号ＰＰＡ２が、空き物理ページ番号格納部７２に格納されている。
【００９６】
閾値格納部７３には、メインメモリ１２の書き換え回数の上限値ＭＸに基づいて算出された閾値ｔｈとして数値「100000」が格納されている。さらに、上限値格納部７４には、予め定められたメインメモリ１２の書き換え回数の上限値ＭＸとして数値「1000000」が格納されている。
【００９７】
なお、この例では、初期状態における閾値ｔｈは、上限値ＭＸ＝1000000の１０％分の値である「100000」とされ、その後、更新されるごとに閾値ｔｈが上限値ＭＸの１０％分の値「100000」ずつ増加していくものとする。換言すれば、初期状態における閾値ｔｈは上限値ＭＸ未満の値とされ、閾値更新時には、閾値ｔｈに対して所定の固定値が加算されて新たな閾値ｔｈとされる。
【００９８】
データ格納部３２が図６に示した初期状態である場合に、ＣＰＵ２１がメインメモリ管理制御部２２を介してプログラム格納部３１にアクセスし、プログラム格納部３１に格納されているプログラムを実行すると、各種の処理が行なわれる。このとき、ＣＰＵ２１がデータ格納部３２への新たなデータの書き込みを指示すると、初期状態におけるデータ書き込み処理が開始される。
【００９９】
以下、図７のフローチャートと図８を参照して、情報処理システムによる初期状態におけるデータ書き込み処理について説明する。
【０１００】
ステップＳ１１において、メインメモリ管理制御部２２のデータ処理部１０１は、ＣＰＵ２１の指示にしたがって、ＣＰＵ２１から供給されたデータをデータ格納部３２の空きページに書き込む。
【０１０１】
例えば、データ処理部１０１は、図６に示した初期状態における空き物理ページ番号格納部７２を参照し、そこに格納されている物理ページ番号ＰＰＡ２により特定されるページＰＧ−２にデータを書き込む。
【０１０２】
これにより、図８に示すように物理ページ番号ＰＰＡ２により特定されるページＰＧ−２には、データが書き込まれた状態となる。図８では、ページＰＧ−２には文字「Not Erased」が記されており、データが格納されている状態となっている。
【０１０３】
ステップＳ１２において、書き換え回数管理部１０５は、データが書き込まれた物理ページ番号がＰＰＡ２であるページＰＧ−２の書き換え回数をインクリメントして、書き換え回数を更新する。すなわち、書き換え回数管理部１０５は、ページＰＧ−２に対応する回数情報格納部ＮＵ−２に格納されている書き換え回数を１だけインクリメントする。
【０１０４】
これにより、回数情報格納部ＮＵ−２に格納されているページＰＧ−２の書き換え回数は図６に示した状態、すなわち書き換え回数「０」から、図８に示す状態、すなわち書き換え回数「１」に変化する。
【０１０５】
このようにして空きページに新たなデータが書き込まれ、そのページの書き換え回数が更新されると、次に、データが書き込まれたページに対して、仮想ページ番号（仮想ページアドレス）が割り当てられる。
【０１０６】
すなわち、ステップＳ１３において、変換情報管理部１０２は、データの書き込みを行なったページに仮想ページ番号を割り当てる。
【０１０７】
例えば、図６の初期状態では、論物変換情報格納部７１の何れの物理ページ番号格納部ＦＡにも物理ページ番号が格納されておらず、これまでに仮想ページ番号の割り当ては行なわれていない状態となっている。
【０１０８】
そこで、変換情報管理部１０２は、最も番号が小さい仮想ページ番号ＶＰＰＡ０を、データの書き込みが行なわれたページＰＧ−２に割り当てる。
【０１０９】
具体的には、変換情報管理部１０２は、仮想ページ番号ＶＰＰＡ０に対応する物理ページ番号格納部ＦＡ−０に、ページＰＧ−２の物理ページ番号ＰＰＡ２を書き込むことで、仮想ページ番号ＶＰＰＡ０に対応する物理ページ番号にＰＰＡ２を設定する。これにより、図６の初期状態では何も書き込まれていなかった物理ページ番号格納部ＦＡ−０は、図８に示すように物理ページ番号ＰＰＡ２が書き込まれた状態となる。
【０１１０】
このようにして、これまで空きページであったページＰＧ−２にデータが書き込まれると、空きページ検索部１０３により新たな空きページの検索が行なわれる。
【０１１１】
すなわち、ステップＳ１４において、空きページ検索部１０３は新たな空きページを検索し、空き物理ページ番号格納部７２に格納される物理ページ番号を更新する。
【０１１２】
具体的には、空きページ検索部１０３は、空き物理ページ番号格納部７２に格納される物理ページ番号を１ずつインクリメントしていき、インクリメント後の物理ページ番号により特定されるページＰＧが空きページであったとき、インクリメントを終了する。そして、このとき空き物理ページ番号格納部７２に格納されている物理ページ番号が、更新後の空きページの物理ページ番号とされる。
【０１１３】
ここで、インクリメント後の物理ページ番号のページＰＧが空きページであるか否かは、論物変換情報を参照することで特定することができる。論物変換情報格納部７１の各物理ページ番号格納部ＦＡには、仮想ページ番号が割り当てられたページＰＧの物理ページ番号が格納されている。したがって、物理ページ番号格納部ＦＡに物理ページ番号が格納されておらず、かつメイン管理情報も格納されていないページＰＧは空きページとなっているはずである。
【０１１４】
物理ページ番号をインクリメントしていくことで、これまで空き物理ページ番号格納部７２に格納されていた物理ページ番号よりも物理ページ番号が大きく、かつ空き物理ページ番号格納部７２の物理ページ番号に最も近い物理ページ番号の空きページを探し出すことができる。
【０１１５】
図６に示した初期状態では、空き物理ページ番号格納部７２には物理ページ番号ＰＰＡ２が格納されているので、空きページ検索部１０３は、その物理ページ番号ＰＰＡ２を１だけインクリメントし、図８に示すように物理ページ番号ＰＰＡ３とする。
【０１１６】
この場合、図８の論物変換情報格納部７１の各物理ページ番号格納部ＦＡには、インクリメント後の物理ページ番号ＰＰＡ３は格納されていない。また、メイン管理情報の格納場所は、物理ページ番号ＰＰＡ０と物理ページ番号ＰＰＡ１のページＰＧであり、物理ページ番号ＰＰＡ３にはメイン管理情報は格納されていない。つまり、物理ページ番号ＰＰＡ３は有効なデータが格納されていない空きページである。
【０１１７】
そこで、空きページ検索部１０３は、物理ページ番号のインクリメントを停止し、空き物理ページ番号格納部７２に格納される物理ページ番号として、データ未割り当ての物理ページ番号ＰＰＡ３を設定する。
【０１１８】
なお、空き物理ページ番号格納部７２に格納されていた物理ページ番号をインクリメントしていく場合に、インクリメント前の物理ページ番号が最後の物理ページ番号であることがある。そのような場合、インクリメント後の物理ページ番号は、最も小さい最初の物理ページ番号とされる。例えば、図６では最後の物理ページ番号は「ＰＰＡ７」であり、最初の物理ページ番号は「ＰＰＡ０」であるから、物理ページ番号ＰＰＡ７に対するインクリメントを行なう場合、インクリメント後の物理ページ番号は物理ページ番号ＰＰＡ０とされる。
【０１１９】
図７のフローチャートの説明に戻り、ステップＳ１３およびステップＳ１４の処理によりメイン管理情報格納部６１となっているページＰＧのデータが更新されたので、それらのページＰＧの書き換え回数が更新される。
【０１２０】
すなわち、ステップＳ１５において、書き換え回数管理部１０５は、メイン管理情報が格納されている物理ページ番号ＰＰＡ０，ＰＰＡ１により特定されるページＰＧ−０，ＰＧ−１の書き換え回数を１だけインクリメントする。
【０１２１】
これにより、回数情報格納部ＮＵ−０および回数情報格納部ＮＵ−１に格納されている書き換え回数が１インクリメントされ、図６の初期状態での書き換え回数「１」から、図８に示すように書き換え回数「２」へと更新される。
【０１２２】
メイン管理情報の格納先のページＰＧの書き換え回数が更新されると、初期状態におけるデータ書き込み処理は終了する。このとき、データ格納部３２、書き換え回数格納部６２、およびメイン管理情報格納部６１の状態は、図６に示した状態から、図８に示した状態へと変化している。
【０１２３】
図８の例では、物理ページ番号ＰＰＡ２のページＰＧ−２にデータが書き込まれているとともに、そのページＰＧ−２に対して仮想ページ番号ＶＰＰＡ０が割り当てられている。また、空き物理ページ番号格納部７２に、新たな空きページの物理ページ番号ＰＰＡ３が格納され、データの書き込みや更新が行なわれたページＰＧの回数情報格納部ＮＵ−０，ＮＵ−１，ＮＵ−２に格納されている書き換え回数がインクリメントされている。
【０１２４】
以上のように、情報処理システムはページＰＧごとに書き換え回数を保持し、ページＰＧに対するデータの書き込みが行なわれると、そのページＰＧの書き換え回数を更新する。
【０１２５】
このように、ページＰＧごとに書き換え回数を保持しておくことで、必要に応じてデータを他のページＰＧに移動させて各ページＰＧの書き換え回数を平均化し、メインメモリ１２の寿命を延ばすことができる。また、各ページＰＧの書き換え回数を保持する領域を、他のデータが保持されるページＰＧとは別に設けることで、各ページＰＧの書き換え回数をより少なく抑えることができ、メインメモリ１２の寿命を延ばすことができる。
【０１２６】
［メイン管理情報が更新されない場合におけるデータ書き込み処理の説明］
また、図８に示した状態から、さらにＣＰＵ２１がメインメモリ管理制御部２２に対して、仮想ページ番号ＶＰＰＡ０を指定してデータの書き込みを指示すると、メイン管理情報が更新されない場合におけるデータ書き込み処理が開始される。
【０１２７】
以下、図９のフローチャートと図１０を参照して、情報処理システムによるメイン管理情報が更新されない場合におけるデータ書き込み処理について説明する。
【０１２８】
ステップＳ４１において、データ処理部１０１は、ＣＰＵ２１により指定された仮想ページ番号ＶＰＰＡ０により特定されるページＰＧに、ＣＰＵ２１から供給されたデータを書き込む。例えば、図８に示す状態では、仮想ページ番号ＶＰＰＡ０に対応する物理ページ番号格納部ＦＡ−０には、物理ページ番号ＰＰＡ２が格納されている。そこで、データ処理部１０１は、物理ページ番号ＰＰＡ２により特定されるページＰＧ−２にデータの書き込みを行なう。
【０１２９】
ステップＳ４２において、書き換え回数管理部１０５は、データが書き込まれた物理ページ番号ＰＰＡ２のページＰＧ−２の書き換え回数をインクリメントして、書き換え回数を更新する。すなわち、書き換え回数管理部１０５は、ページＰＧ−２に対応する回数情報格納部ＮＵ−２に格納されている書き換え回数を１だけインクリメントする。
【０１３０】
このようなデータの書き込みと、書き換え回数のインクリメントにより、データ格納部３２および書き換え回数格納部６２の状態は、図８に示した状態から図１０に示す状態となる。図１０では、図８に示した状態からページＰＧ−２に格納されているデータの更新が行なわれており、その更新に伴って回数情報格納部ＮＵ−２に格納されている書き換え回数が「１」から１だけインクリメントされて「２」となっている。
【０１３１】
なお、この場合、メイン管理情報の書き換えは発生しないので、メイン管理情報が格納されているページＰＧ−０とページＰＧ−１の書き換え回数は更新されていない。
【０１３２】
指定された仮想ページ番号のページＰＧにデータが書き込まれ、そのページＰＧの書き換え回数が更新されると、メイン管理情報が更新されない場合におけるデータ書き込み処理は終了する。
【０１３３】
このようにして情報処理システムは、仮想ページ番号が指定されてデータの書き込みが指示されると、その仮想ページ番号により特定されるページＰＧに対してデータの書き込みを行ない、書き換え回数をインクリメントする。このとき、メイン管理情報の書き換えが発生しないときには、メイン管理情報が格納されているページＰＧの書き換え回数は更新されず、そのままとされる。
【０１３４】
［書き換え回数が閾値に達した場合におけるデータ書き込み処理の説明］
さらに、図１０に示した状態からページＰＧ−２へのデータの書き込みが頻発し、ページＰＧ−２の書き換え回数が閾値ｔｈに達したとする。
【０１３５】
そのような場合、データ格納部３２および書き換え回数格納部６２の状態は、図１０に示した状態から図１１に示す状態となる。図１１では、ページＰＧ−２に対応する回数情報格納部ＮＵ−２に格納されている書き換え回数が、閾値格納部７３に格納されている閾値ｔｈと同じ数値「100000」となっている。
【０１３６】
このように仮想ページ番号ＶＰＰＡ０により特定されるページＰＧ−２の書き換え回数が閾値ｔｈに達した場合に、さらに同じ仮想ページ番号ＶＰＰＡ０が指定されてデータの書き込みが指示されると、書き換え回数が閾値に達した場合におけるデータ書き込み処理が開始される。
【０１３７】
以下、図１２のフローチャートと図１３を参照して、情報処理システムによる書き換え回数が閾値に達した場合におけるデータ書き込み処理について説明する。
【０１３８】
ステップＳ７１において、データ処理部１０１は、空き物理ページ番号格納部７２に格納されている物理ページ番号ＰＰＡ３により特定される空きページ、すなわちページＰＧ−３にＣＰＵ２１から供給されたデータを書き込む。
【０１３９】
例えば、図１１に示した状態でＣＰＵ２１が仮想ページ番号ＶＰＰＡ０を指定してデータの書き込みを指示すると、データ処理部１０１は、論物変換情報格納部７１の仮想ページ番号ＶＰＰＡ０に対応する物理ページ番号格納部ＦＡ−０を参照する。
【０１４０】
図１１では、物理ページ番号格納部ＦＡ−０には、物理ページ番号ＰＰＡ２が格納されているので、データ格納部３２の物理ページ番号ＰＰＡ２により特定されるページＰＧ−２へのデータの書き込みが指示されたことが分かる。
【０１４１】
続いて、データ処理部１０１は、図１１のデータの書き込み先であるページＰＧ−２の回数情報格納部ＮＵ−２に格納されている書き換え回数「100000」と、閾値格納部７３に格納されている閾値ｔｈの値「100000」とを比較する。書き換え回数と閾値ｔｈとの比較の結果、ページＰＧ−２の書き換え回数は閾値ｔｈに達してしまっているので、ページＰＧ−２にデータを書き込むことができない。
【０１４２】
そこで、データ処理部１０１は、ページＰＧ−２ではない空きページにＣＰＵ２１から供給されたデータを格納する。すなわち、データ処理部１０１は、空き物理ページ番号格納部７２を参照し、そこに格納されている物理ページ番号ＰＰＡ３により特定されるページＰＧ−３にＣＰＵ２１から供給されたデータを書き込む。
【０１４３】
これにより、図１１に示すように物理ページ番号ＰＰＡ３のページＰＧ−３にデータが格納されていない状態から、図１３に示すように物理ページ番号ＰＰＡ３のページＰＧ−３にデータが格納された状態となる。図１３では、ページＰＧ−３には文字「Not Erased」が記されており、データが書き込まれた状態となっている。
【０１４４】
ステップＳ７２において、書き換え回数管理部１０５は、データが書き込まれた物理ページ番号がＰＰＡ３であるページＰＧ−３の書き換え回数をインクリメントする。すなわち、書き換え回数管理部１０５は、ページＰＧ−３に対応する回数情報格納部ＮＵ−３に格納されている書き換え回数を１だけインクリメントする。
【０１４５】
これにより、回数情報格納部ＮＵ−３に格納されているページＰＧ−３の書き換え回数は図１１に示した状態、すなわち書き換え回数「０」から、図１３に示す状態、すなわち書き換え回数「１」に変化する。
【０１４６】
このようにして空きページにデータが書き込まれ、そのページの書き換え回数が更新されると、次に、データが書き込まれたページに対して、仮想ページ番号が割り当てられる。
【０１４７】
すなわち、ステップＳ７３において、変換情報管理部１０２は、データの書き込みを行なったページに仮想ページ番号を割り当てる。
【０１４８】
例えば、ステップＳ７１では、仮想ページ番号ＶＰＰＡ０へのデータの書き込みが指示されていた。ところが、その仮想ページ番号ＶＰＰＡ０により特定されていたページＰＧ−２に対して、現時点ではデータを書き込むことができないため、空きページであるページＰＧ−３に指定されたデータの書き込みが行なわれた。したがって、データが書き込まれたページＰＧ−３に対して、仮想ページ番号ＶＰＰＡ０が割り当てられるように、仮想ページ番号ＶＰＰＡ０の割り当てを変更する必要がある。
【０１４９】
そこで、変換情報管理部１０２は、ＣＰＵ２１によりデータの書き込み先として指定された仮想ページ番号ＶＰＰＡ０を、実際にデータの書き込みが行なわれたページＰＧ−３に割り当てる。
【０１５０】
具体的には、変換情報管理部１０２は、仮想ページ番号ＶＰＰＡ０に対応する物理ページ番号格納部ＦＡ−０に、ページＰＧ−３の物理ページ番号ＰＰＡ３を書き込むことで、仮想ページ番号ＶＰＰＡ０の割り当てを変更する。
【０１５１】
これにより、仮想ページ番号ＶＰＰＡ０に対応する物理ページ番号格納部ＦＡ−０に格納される物理ページ番号は、図１１に示した状態から図１３に示す状態へと変化する。すなわち、物理ページ番号格納部ＦＡ−０に格納される物理ページ番号は、物理ページ番号ＰＰＡ２から、物理ページ番号ＰＰＡ３に変更される。
【０１５２】
ステップＳ７４において、空きページ検索部１０３は新たな空きページを検索し、空き物理ページ番号格納部７２に格納される物理ページ番号を更新する。このステップＳ７４では、図７のステップＳ１４と同様の処理が行なわれる。
【０１５３】
具体的には、空きページ検索部１０３は、空き物理ページ番号格納部７２に格納される物理ページ番号を１ずつインクリメントしていくことで、新たな空きページを検索する。例えば、図１１に示す状態では、空き物理ページ番号格納部７２には物理ページ番号ＰＰＡ３が格納されているので、空きページ検索部１０３は、その物理ページ番号ＰＰＡ３を１だけインクリメントし、図１３に示すように物理ページ番号ＰＰＡ４とする。
【０１５４】
図１３では、論物変換情報格納部７１の各物理ページ番号格納部ＦＡには、インクリメント後の物理ページ番号ＰＰＡ４は格納されていない。また、メイン管理情報の格納場所は、物理ページ番号ＰＰＡ０，ＰＰＡ１のページＰＧであり、物理ページ番号ＰＰＡ４にはメイン管理情報は格納されていない。つまり、物理ページ番号ＰＰＡ４は有効なデータが格納されていない空きページである。
【０１５５】
そこで、空きページ検索部１０３は、物理ページ番号のインクリメントを停止し、空き物理ページ番号格納部７２に格納される物理ページ番号として、データ未割り当ての物理ページ番号ＰＰＡ４を設定する。
【０１５６】
図１２のフローチャートの説明に戻り、ステップＳ７３およびステップＳ７４の処理によりメイン管理情報格納部６１となっているページＰＧのデータが更新されたので、それらのページＰＧの書き換え回数が更新される。
【０１５７】
すなわち、ステップＳ７５において、書き換え回数管理部１０５は、メイン管理情報が格納されている物理ページ番号ＰＰＡ０，ＰＰＡ１により特定されるページＰＧ−０，ＰＧ−１の書き換え回数を１だけインクリメントする。
【０１５８】
これにより、回数情報格納部ＮＵ−０および回数情報格納部ＮＵ−１に格納されている書き換え回数が１インクリメントされ、図１１に示した状態での書き換え回数「２」から、図１３に示すように書き換え回数「３」へと更新される。
【０１５９】
メイン管理情報の格納先のページＰＧの書き換え回数が更新されると、書き換え回数が閾値に達した場合におけるデータ書き込み処理は終了する。このとき、データ格納部３２、書き換え回数格納部６２、およびメイン管理情報格納部６１の状態は、図１１に示した状態から、図１３に示した状態へと変化している。
【０１６０】
図１３の例では、物理ページ番号ＰＰＡ３のページＰＧ−３にデータが書き込まれているとともに、そのページＰＧ−３に対して仮想ページ番号ＶＰＰＡ０が割り当てられている。また、空き物理ページ番号格納部７２に、新たな空きページの物理ページ番号ＰＰＡ４が格納され、データの書き込みや更新が行なわれたページＰＧの回数情報格納部ＮＵ−０，ＮＵ−１，ＮＵ−３に格納されている書き換え回数がインクリメントされている。
【０１６１】
なお、図１３では、論物変換情報格納部７１の各物理ページ番号格納部ＦＡには、物理ページ番号ＰＰＡ２は格納されておらず、物理ページ番号ＰＰＡ２のページＰＧ−２にはメイン管理情報も格納されていない。したがって、図１３に示す状態では、ページＰＧ−２は、有効なデータが格納されていない空きページとなる。
【０１６２】
以上のように、情報処理システムは所定のページＰＧにデータを書き込もうとした場合に、そのページＰＧの書き換え回数が閾値ｔｈに達していたときには、有効なデータが格納されておらず、書き換え回数も閾値ｔｈに達していない空きページにデータを書き込む。そして、情報処理システムは、データの書き込みにあわせて仮想ページ番号の割り当てを変更する。
【０１６３】
このように、ページＰＧの書き換え回数が閾値ｔｈに達した場合に、他のページＰＧにデータを書き込むようにすることで、各ページＰＧの書き換え回数を平均化し、書き換え回数に上限がある不揮発性のメインメモリ１２の利用効率を向上させることができる。これにより、メインメモリ１２の寿命を延ばすことができ、その結果、メインメモリ１２を用いる情報処理システムの寿命も延ばすことができる。
【０１６４】
［データ格納場所と空きページの書き換え回数が閾値に達した場合におけるデータ書き込み処理の説明］
また、図１３に示した状態から、各ページＰＧへのデータの書き込みが行なわれ、そのときにページＰＧ−３へのデータの書き込みが頻発し、ページＰＧ−３の書き換え回数が閾値ｔｈに達したとする。
【０１６５】
そのような場合、データ格納部３２、書き換え回数格納部６２、およびメイン管理情報格納部６１の状態が図１４に示す状態となったとする。
【０１６６】
図１４では、論物変換情報格納部７１の物理ページ番号格納部ＦＡ−０乃至物理ページ番号格納部ＦＡ−４には、物理ページ番号ＰＰＡ７，物理ページ番号ＰＰＡ３乃至物理ページ番号ＰＰＡ６が格納されている。すなわち、全ての仮想ページ番号ＶＰＰＡ０乃至仮想ページ番号ＶＰＰＡ４が、何れかのページＰＧに割り当て済みとなっている。
【０１６７】
換言すれば、全てのページＰＧのなかで、空きページとなっているページＰＧは、空き物理ページ番号格納部７２に格納されている物理ページ番号のページＰＧしかない状態となっている。
【０１６８】
また、仮想ページ番号ＶＰＰＡ１が割り当てられた、物理ページ番号がＰＰＡ３であるページＰＧ−３の書き換え回数、つまり回数情報格納部ＮＵ−３に格納されている書き換え回数が、閾値格納部７３に格納されている閾値ｔｈと同じ数値「100000」となっている。
【０１６９】
同様に、空き物理ページ番号格納部７２に格納されている、物理ページ番号がＰＰＡ２であるページＰＧ−２の書き換え回数、つまり回数情報格納部ＮＵ−２に格納されている書き換え回数も、閾値格納部７３に格納された閾値ｔｈと同じ数値となっている。
【０１７０】
このような状態において、仮想ページ番号ＶＰＰＡ１が指定されてデータの書き込みが指示されたとする。すなわち、全ての仮想ページ番号が割り当て済みで他に空きページとなっているページＰＧがなく、かつデータの格納先と空きページ、つまりページＰＧ−３とページＰＧ−２の書き換え回数が閾値ｔｈに達している状態で、データの書き込みが指示されたとする。
【０１７１】
そのような場合、情報処理システムでは、データ格納場所と空きページの書き換え回数が閾値に達した場合におけるデータ書き込み処理が行なわれる。
【０１７２】
以下、図１５のフローチャートと図１６および図１７を参照して、情報処理システムによる、データ格納場所と空きページの書き換え回数が閾値に達した場合におけるデータ書き込み処理について説明する。
【０１７３】
ステップＳ１０１において、データ処理部１０１は、書き換え回数格納部６２の回数情報格納部ＮＵを参照して、書き換え回数が最も少ないページＰＧを検索する。
【０１７４】
例えば、図１４に示した状態でＣＰＵ２１が仮想ページ番号ＶＰＰＡ１を指定してデータの書き込みを指示すると、データ処理部１０１は、論物変換情報格納部７１の仮想ページ番号ＶＰＰＡ１に対応する物理ページ番号格納部ＦＡ−１を参照する。
【０１７５】
図１４では、物理ページ番号格納部ＦＡ−１には、物理ページ番号ＰＰＡ３が格納されているので、データ格納部３２の物理ページ番号ＰＰＡ３により特定されるページＰＧ−３へのデータの書き込みが指示されたことが分かる。
【０１７６】
続いて、データ処理部１０１は、図１４におけるデータの書き込み先であるページＰＧ−３の回数情報格納部ＮＵ−３に格納されている書き換え回数「100000」と、閾値格納部７３に格納されている閾値ｔｈの値「100000」とを比較する。書き換え回数と閾値ｔｈとの比較の結果、ページＰＧ−３の書き換え回数は閾値ｔｈに達してしまっているので、ページＰＧ−３にデータを書き込むことができない。
【０１７７】
そこで、データ処理部１０１は、空き物理ページ番号格納部７２を参照し、そこに格納されている物理ページ番号ＰＰＡ２に対応するページＰＧ−２を特定する。そして、データ処理部１０１は、ページＰＧ−２の回数情報格納部ＮＵ−２に格納されている書き換え回数「100000」と、閾値格納部７３に格納されている閾値ｔｈの値「100000」とを比較する。書き換え回数と閾値ｔｈとの比較の結果、ページＰＧ−２の書き換え回数は閾値ｔｈに達してしまっているので、ページＰＧ−２にデータを書き込むことができない。
【０１７８】
さらに、ページＰＧ−２とページＰＧ−３を除く他の全てのページＰＧにも、既に有効なデータが格納された状態となっている。
【０１７９】
このように、指定された仮想ページ番号ＶＰＰＡ１に対応するページＰＧ−３にも、空きページとして確保されているページＰＧ−２にもデータを書き込むことができない場合、新たな空きページとなる、データの書き込みが可能なページＰＧが検索される。
【０１８０】
すなわち、データ処理部１０１は、書き換え回数格納部６２の回数情報格納部ＮＵを参照して、全ページＰＧのなかから、書き換え回数が最も少ないページＰＧを新たな空きページとして検索する。
【０１８１】
なお、より詳細には、新たな空きページとされるページＰＧの書き換え回数は、閾値ｔｈ未満である必要がある。また、新たな空きページとされるページＰＧは、書き換え回数が閾値ｔｈ未満であるページＰＧであれば、最も書き換え回数が少ないページＰＧでなくてもよい。
【０１８２】
図１４の例では、回数情報格納部ＮＵに格納された書き換え回数が最も少ないのは、書き換え回数が「１」であるページＰＧ−４乃至ページＰＧ−７である。例えば、データ処理部１０１は、それらのページＰＧのなかから、最も物理ページ番号が小さいページＰＧ−４を、新たに空きページとするページＰＧとして選択する。このページＰＧ−４の書き換え回数は、閾値ｔｈよりも小さくなっており、データの書き込みが可能である。
【０１８３】
ステップＳ１０２において、データ処理部１０１は、検索の結果得られた物理ページ番号ＰＰＡ４により特定されるページＰＧ−４に格納されているデータを、現時点で空きページとして確保されているページＰＧ−２にコピーする（移動させる）。
【０１８４】
このようにして、ページＰＧ−４のデータを、現時点における空きページであるページＰＧ−２にコピーすることで、最も書き換え回数が少ないページＰＧ−４を、新たな空きページとして用いることができるようになる。
【０１８５】
ステップＳ１０３において、書き換え回数管理部１０５は、データが書き込まれた（コピーされた）物理ページ番号がＰＰＡ２であるページＰＧ−２の書き換え回数をインクリメントする。すなわち、書き換え回数管理部１０５は、ページＰＧ−２に対応する回数情報格納部ＮＵ−２に格納されている書き換え回数を１だけインクリメントする。
【０１８６】
これにより、回数情報格納部ＮＵ−２に格納されているページＰＧ−２の書き換え回数は図１４に示した状態、すなわち書き換え回数「100000」から、図１６に示す状態、すなわち書き換え回数「100001」に変化する。
【０１８７】
このようにして、これから空きページとされるページＰＧのデータが、現時点における空きページにコピーされて、そのコピー先のページＰＧの書き換え回数が更新されると、データのコピー元の仮想ページ番号が、コピー先のページＰＧに割り当てられる。
【０１８８】
すなわち、ステップＳ１０４において、変換情報管理部１０２は、データのコピーを行なったページＰＧについて、仮想ページ番号の割り当てを変更する。
【０１８９】
例えば、図１４の例では、仮想ページ番号ＶＰＰＡ２が割り当てられていたページＰＧ−４のデータが、ページＰＧ−４を空きページとすることを目的として、現時点における空きページであるページＰＧ−２にコピーされた。したがって、データのコピーに伴い、仮想ページ番号ＶＰＰＡ２の割り当て先を、これまでのページＰＧ−４からページＰＧ−２に変更する必要がある。
【０１９０】
そこで、変換情報管理部１０２は、仮想ページ番号ＶＰＰＡ２に対応する物理ページ番号格納部ＦＡ−２に、ページＰＧ−２の物理ページ番号ＰＰＡ２を書き込む。
【０１９１】
これにより、仮想ページ番号ＶＰＰＡ２に対応する物理ページ番号格納部ＦＡ−２に格納される物理ページ番号は、図１４に示した状態から図１６に示す状態へと変化する。すなわち、物理ページ番号格納部ＦＡ−２に格納される物理ページ番号は、物理ページ番号ＰＰＡ４から、物理ページ番号ＰＰＡ２に変更され、その結果、仮想ページ番号ＶＰＰＡ２の割り当て先が、これまでのページＰＧ−４からページＰＧ−２となる。
【０１９２】
ステップＳ１０５において、空きページ検索部１０３は、空き物理ページ番号格納部７２に格納されている物理ページ番号を、新たに空きページとするページＰＧの物理ページ番号に変更する。
【０１９３】
これにより、空き物理ページ番号格納部７２に格納される物理ページ番号は、図１４に示した状態から図１６に示す状態へと書き換えられる。すなわち、空き物理ページ番号格納部７２に格納される物理ページ番号は、物理ページ番号ＰＰＡ２から物理ページ番号ＰＰＡ４に変更される。
【０１９４】
ステップＳ１０６において、書き換え回数管理部１０５は、メイン管理情報が格納されている物理ページ番号ＰＰＡ０，ＰＰＡ１により特定されるページＰＧ−０，ＰＧ−１の書き換え回数を１だけインクリメントする。
【０１９５】
これにより、回数情報格納部ＮＵ−０および回数情報格納部ＮＵ−１に格納されている書き換え回数が１インクリメントされ、図１４に示した状態での書き換え回数「７」から、図１６に示すように書き換え回数「８」へと更新される。
【０１９６】
これまでのステップＳ１０１からステップＳ１０６の処理によって、データ格納部３２、書き換え回数格納部６２、およびメイン管理情報格納部６１の状態は、図１４に示した状態から、図１６に示した状態へと変化している。
【０１９７】
図１６の例では、物理ページ番号ＰＰＡ２のページＰＧ−２に、物理ページ番号ＰＰＡ４のページＰＧ−４に格納されているデータがコピーされるとともに、仮想ページ番号ＶＰＰＡ２の割り当て先がページＰＧ−４からページＰＧ−２に変更される。
【０１９８】
また、空き物理ページ番号格納部７２に、新たな空きページの物理ページ番号ＰＰＡ４が格納され、データの書き込みや更新が行なわれたページＰＧの回数情報格納部ＮＵ−０，ＮＵ−１，ＮＵ−２に格納されている書き換え回数がインクリメントされている。
【０１９９】
以上の処理により、書き換え回数が閾値ｔｈ未満であるページＰＧ−４を、新たな空きページとして確保できたので、以降において、ＣＰＵ２１により書き込みが指示されたデータのページＰＧ−４への書き込みが行なわれる。
【０２００】
すなわち、ステップＳ１０７において、データ処理部１０１は、空き物理ページ番号格納部７２に格納されている物理ページ番号ＰＰＡ４により特定される空きページ、すなわちページＰＧ−４にＣＰＵ２１から供給されたデータを書き込む。
【０２０１】
ＣＰＵ２１により書き込みが指示されたデータは、本来であれば指定された仮想ページ番号ＶＰＰＡ１に対応するページＰＧ−３に書き込まれるべきである。しかし、上述したように、ページＰＧ−３の書き換え回数は既に閾値ｔｈに達しているため、新たに空きページとして確保されたページＰＧ−４にデータが書き込まれる。
【０２０２】
ステップＳ１０８において、書き換え回数管理部１０５は、データが書き込まれた物理ページ番号がＰＰＡ４であるページＰＧ−４の書き換え回数をインクリメントする。すなわち、書き換え回数管理部１０５は、ページＰＧ−４に対応する回数情報格納部ＮＵ−４に格納されている書き換え回数を１だけインクリメントする。
【０２０３】
これにより、回数情報格納部ＮＵ−４に格納されているページＰＧ−４の書き換え回数は図１６に示した状態、すなわち書き換え回数「１」から、図１７に示す状態、すなわち書き換え回数「２」に変化する。
【０２０４】
このようにして空きページにデータが書き込まれ、そのページの書き換え回数が更新されると、次に、データが書き込まれたページに対して、仮想ページ番号が割り当てられる。
【０２０５】
すなわち、ステップＳ１０９において、変換情報管理部１０２は、データの書き込みを行なったページに仮想ページ番号を割り当てる。
【０２０６】
例えば、ステップＳ１０７では、書き込み先として仮想ページ番号ＶＰＰＡ１が指定されていたデータは、空きページであるページＰＧ−４に格納されたので、変換情報管理部１０２は、仮想ページ番号ＶＰＰＡ１の割り当て先をページＰＧ−４に変更する。
【０２０７】
具体的には、変換情報管理部１０２は仮想ページ番号ＶＰＰＡ１に対応する物理ページ番号格納部ＦＡ−１に、ページＰＧ−４の物理ページ番号ＰＰＡ４を書き込むことで、仮想ページ番号ＶＰＰＡ１の割り当て先をページＰＧ−３からページＰＧ−４に変更する。
【０２０８】
これにより、仮想ページ番号ＶＰＰＡ１に対応する物理ページ番号格納部ＦＡ−１に格納される物理ページ番号は、図１６に示した状態から図１７に示す状態へと変化する。すなわち、物理ページ番号格納部ＦＡ−１に格納される物理ページ番号は、物理ページ番号ＰＰＡ３から、物理ページ番号ＰＰＡ４に変更される。
【０２０９】
このようにして空きページにデータが書き込まれると、空きページ検索部１０３により新たな空きページの検索が行なわれる。
【０２１０】
すなわち、ステップＳ１１０において、空きページ検索部１０３は新たな空きページを検索し、空き物理ページ番号格納部７２に格納される物理ページ番号を更新する。このステップＳ１１０では、図７のステップＳ１４と同様の処理が行なわれる。
【０２１１】
具体的には、空きページ検索部１０３は、空き物理ページ番号格納部７２に格納される物理ページ番号を１ずつインクリメントしていくことで、新たな空きページを検索する。例えば、図１６に示す状態では、空き物理ページ番号格納部７２には物理ページ番号ＰＰＡ４が格納されているので、空きページ検索部１０３は、その物理ページ番号ＰＰＡ４をインクリメントしていき、図１７に示すように物理ページ番号ＰＰＡ３とする。
【０２１２】
この例では、物理ページ番号ＰＰＡ５乃至物理ページ番号ＰＰ７のページＰＧには、有効なデータが格納されているので、物理ページ番号がＰＰ７となったとき、さらにインクリメントが行なわれ、物理ページ番号ＰＰＡ０とされる。また、物理ページ番号ＰＰＡ０乃至物理ページ番号ＰＰＡ２にも有効なデータが格納されているので、さらに物理ページ番号はＰＰＡ３までインクリメントされることになる。
【０２１３】
このとき、物理ページ番号ＰＰＡ３には有効なデータは格納されていないので、つまり物理ページ番号ＰＰＡ３には仮想ページ番号も割り当てられておらず、メイン管理情報も格納されていないので、物理ページ番号ＰＰＡ３が新たな空きページとされる。
【０２１４】
図１５のフローチャートの説明に戻り、ステップＳ１０９およびステップＳ１１０の処理によりメイン管理情報格納部６１となっているページＰＧのデータが更新されたので、それらのページＰＧの書き換え回数が更新される。
【０２１５】
すなわち、ステップＳ１１１において、書き換え回数管理部１０５は、メイン管理情報が格納されている物理ページ番号ＰＰＡ０，ＰＰＡ１により特定されるページＰＧ−０，ＰＧ−１の書き換え回数を１だけインクリメントする。
【０２１６】
これにより、回数情報格納部ＮＵ−０および回数情報格納部ＮＵ−１に格納されている書き換え回数が１インクリメントされ、図１６に示した状態での書き換え回数「８」から、図１７に示すように書き換え回数「９」へと更新される。
【０２１７】
メイン管理情報の格納先のページＰＧの書き換え回数が更新されると、データ格納場所と空きページの書き換え回数が閾値に達した場合におけるデータ書き込み処理は終了する。このとき、データ格納部３２、書き換え回数格納部６２、およびメイン管理情報格納部６１の状態は、図１６に示した状態から、図１７に示した状態へと変化している。
【０２１８】
図１７の例では、物理ページ番号ＰＰＡ４のページＰＧ−４にデータが書き込まれるとともに、そのページＰＧ−４に対して仮想ページ番号ＶＰＰＡ１が割り当てられている。また、空き物理ページ番号格納部７２に、新たな空きページの物理ページ番号ＰＰＡ３が格納され、データの書き込みや更新が行なわれたページＰＧの回数情報格納部ＮＵ−０，ＮＵ−１，ＮＵ−４に格納されている書き換え回数がインクリメントされている。
【０２１９】
以上のように、情報処理システムは、全仮想ページ番号が割り当て済みの状態で、所定のページＰＧにデータを書き込もうとした場合に、そのページＰＧの書き換え回数も空きページの書き換え回数も閾値ｔｈに達していたときには、新たな空きページを確保する。そして、情報処理システムは、新たに確保した空きページにデータの書き込みを行なう。
【０２２０】
このように、データを書き込むべきページＰＧと空きページの両方の書き換え回数が閾値ｔｈに達した場合に、書き換え回数が最も少ないページＰＧを、新たな空きページとすることで、各ページＰＧの書き換え回数を平均化することができる。これにより、書き換え回数に上限がある不揮発性のメインメモリ１２の利用効率を向上させ、メインメモリ１２の寿命を延ばすことができる。また、その結果、メインメモリ１２を用いる情報処理システムの寿命も延ばすことができる。
【０２２１】
［閾値更新処理の説明］
さらに、図１７に示した状態から、各ページＰＧへのデータの書き込みが行なわれ、全てのページＰＧの書き換え回数が閾値ｔｈに達し、データ格納部３２、書き換え回数格納部６２、およびメイン管理情報格納部６１の状態が図１８に示す状態となったとする。
【０２２２】
図１８では、書き換え回数格納部６２の回数情報格納部ＮＵに格納されている各ページＰＧの書き換え回数が、閾値格納部７３に格納された閾値ｔｈ以上の値となっている。
【０２２３】
このように、全てのページＰＧの書き換え回数が閾値ｔｈに達すると、情報処理システムは、上限値格納部７４に格納されているメインメモリ１２の書き換え回数の上限値ＭＸに基づいて、新たな閾値ｔｈを算出する閾値更新処理を行なう。以下、図１９のフローチャートと図２０を参照して、情報処理システムによる、閾値更新処理について説明する。
【０２２４】
ステップＳ１４１において、閾値更新部１０４は、上限値格納部７４に格納されている上限値ＭＸと、閾値格納部７３に格納されている現時点の閾値ｔｈとに基づいて新たな閾値ｔｈを算出する。
【０２２５】
例えば、閾値更新部１０４は、上限値ＭＸに予め定められた定数Ａを乗算し、その結果得られた値を現時点の閾値ｔｈに加算することで、新たな閾値ｔｈを算出する。ここでは、閾値ｔｈが上限値ＭＸの１０％分の値ずつ増加していくので、定数Ａの値は１／１０とされる。
【０２２６】
したがって、図１８の例では、上限値ＭＸが「1000000」，現時点の閾値ｔｈが「100000」となっているので、（ＭＸ×Ａ）＋ｔｈ＝1000000×0.1＋100000＝200000となり、新たな閾値ｔｈの値「200000」が算出される。
【０２２７】
ステップＳ１４２において、閾値更新部１０４は算出した新たな閾値ｔｈを閾値格納部７３に格納することで閾値ｔｈを更新し、閾値更新処理は終了する。
【０２２８】
例えば、図１８に示す状態で、新たな閾値ｔｈの値「200000」が算出されると、閾値格納部７３に格納される値は、図１８における場合の値「100000」から、図２０に示すように「200000」に変更される。
【０２２９】
閾値ｔｈが更新されると、以降においては全てのページＰＧの書き換え回数が更新後の新たな閾値ｔｈに達するまで、新たな閾値ｔｈが用いられて上述した各処理が行なわれる。そして、各ページＰＧの書き換え回数が閾値ｔｈに達すると、閾値更新処理が行なわれ、さらに閾値が更新される。
【０２３０】
以上のようにして情報処理システムは、各ページＰＧの書き換え回数が閾値ｔｈ以上となると、書き換え回数の上限値ＭＸと現時点での閾値ｔｈとに基づいて、新たな閾値ｔｈを算出し、閾値ｔｈを更新する。このように閾値ｔｈを更新していくことにより、各ページＰＧの書き換え回数を平均化することができ、メインメモリ１２の利用効率を向上させることができる。これにより、メインメモリ１２や情報処理システムの寿命をより長くすることができる。
【０２３１】
なお、以上においては、閾値ｔｈの値が上限値ＭＸの１０％分の値ずつ増加していく例について説明したが、閾値ｔｈはどのようにして定められてもよい。例えば、最初の閾値ｔｈの値が上限値ＭＸの５０％の値とされ、１度目の閾値ｔｈの更新により、閾値ｔｈが上限値ＭＸの値とされるようにしてもよい。この場合、１度目の閾値の更新により、閾値ｔｈが上限値ＭＸとなるので、閾値ｔｈの更新は１度だけ行なわれることになる。
【０２３２】
また、以上においては、データ格納部３２の各領域がページを単位として管理されると説明したが、大きさの異なる各領域について書き換え回数が保持され、管理されるようにしてもよい。
【０２３３】
〈第１の実施の形態の変形例１〉
［情報処理システムの構成］
また、以上においては、メインメモリ１２内にプログラムが格納されるプログラム格納部３１が設けられる場合について説明したが、ＣＰＵ２１が実行するプログラムの格納場所はメインメモリ１２内に限らず、どこであってもよい。
【０２３４】
例えば、プログラムがメインメモリ１２とは異なる他のメモリに格納される場合、情報処理システムは図２１に示すように構成される。なお、図２１において図１における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０２３５】
図２１に示す情報処理システムは、制御部１１、メインメモリ１２、バス１３、およびプログラム格納部２０１から構成され、制御部１１、メインメモリ１２、およびプログラム格納部２０１は、バス１３を介して相互に接続されている。
【０２３６】
この情報処理システムでは、不揮発性で、かつ書き換え回数に上限があるメインメモリ１２には、プログラムの格納領域は設けられておらず、データ格納部３２のみが設けられている。そして、データ格納部３２には、管理情報格納部４１が設けられている。
【０２３７】
また、バス１３に接続されたプログラム格納部２０１は、不揮発性のメモリであり、プログラム格納部２０１にはＣＰＵ２１により実行されるプログラムが格納されている。
【０２３８】
制御部１１には、ＣＰＵ２１、メインメモリ管理制御部２２、および不揮発性メモリ管理制御部２１１が設けられており、不揮発性メモリ管理制御部２１１はプログラム格納部２０１へのアクセスを行なう。すなわち、不揮発性メモリ管理制御部２１１はプログラム格納部２０１からプログラムを読み出し、ＣＰＵ２１は不揮発性メモリ管理制御部２１１により読み出されたプログラムを実行する。
【０２３９】
〈第１の実施の形態の変形例２〉
［情報処理システムの構成］
また、情報処理システムにおいて、管理情報がメインメモリ１２とは異なるメモリに格納されるようにしてもよい。そのような場合、情報処理システムは、例えば図２２に示すように構成される。なお、図２２において図２１における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０２４０】
図２２に示す情報処理システムは、制御部１１、メインメモリ１２、バス１３、および不揮発性メモリ２４１から構成され、制御部１１、メインメモリ１２、および不揮発性メモリ２４１は、バス１３を介して相互に接続されている。
【０２４１】
この情報処理システムでは、不揮発性で、かつ書き換え回数に上限があるメインメモリ１２には、プログラムの格納領域は設けられておらず、データ格納部３２のみが設けられている。そして、データ格納部３２には、メインメモリ１２の管理情報は格納されず、ＣＰＵ２１が各種の処理を実行するときにアクセスするデータのみが格納される。したがって、データ格納部３２の各ページＰＧには、管理情報は格納されない。
【０２４２】
また、バス１３に接続された不揮発性メモリ２４１は、書き換え回数の制限がない不揮発性のメモリであり、不揮発性メモリ２４１には、管理情報格納部２５１およびプログラム格納部２５２が設けられている。
【０２４３】
管理情報格納部２５１には、上述したメイン管理情報や、データ格納部３２の各ページＰＧの書き換え回数からなる、メインメモリ１２の管理情報が格納されている。また、プログラム格納部２５２にはＣＰＵ２１により実行されるプログラムが格納されている。
【０２４４】
制御部１１には、ＣＰＵ２１、メインメモリ管理制御部２２、および不揮発性メモリ管理制御部２１１が設けられている。制御部１１では、メインメモリ管理制御部２２は、メインメモリ１２へのアクセスを行い、不揮発性メモリ管理制御部２１１は不揮発性メモリ２４１へのアクセスを行なう。
【０２４５】
不揮発性メモリ管理制御部２１１は、不揮発性メモリ２４１の管理情報格納部２５１にアクセスして管理情報を参照したり、更新したりするとともに、プログラム格納部２５２に格納されているプログラムを読み出す。
【０２４６】
この情報処理システムでは、不揮発性メモリ管理制御部２１１が管理情報格納部２５１に格納された管理情報にアクセスするため、不揮発性メモリ管理制御部２１１には、図５の変換情報管理部１０２乃至書き換え回数管理部１０５の機能が備えられている。
【０２４７】
また、この例では、管理情報は書き換え回数の制限がない不揮発性メモリ２４１に格納されているため、書き換え回数の平均化の対象となるのは、メインメモリ１２のデータ格納部３２を構成する各ページＰＧのみとなる。
【０２４８】
なお、図２２の例では、管理情報格納部２５１に管理情報が格納される例について説明したが、管理情報格納部２５１に管理情報のうちのメイン管理情報のみが格納され、管理情報としての書き換え回数はデータ格納部３２に格納されるようにしてもよい。そのような場合には、管理情報格納部２５１にメイン管理情報格納部６１が設けられ、データ格納部３２に書き換え回数格納部６２が設けられることになる。
【０２４９】
〈第１の実施の形態の変形例３〉
［情報処理システムの構成］
さらに、情報処理システムにおいて、ＣＰＵ２１により実行されるプログラムが、制御部１１に格納されるようにしてもよい。そのような場合、情報処理システムは、例えば図２３に示すように構成される。なお、図２３において図１における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０２５０】
図２３の情報処理システムでは、制御部１１内に、ＣＰＵ２１により実行されるプログラムを格納するプログラム格納部２８１が設けられている。したがって、ＣＰＵ２１は、直接、プログラム格納部２８１にアクセスしてプログラムを実行する。
【０２５１】
また、メインメモリ１２には、プログラムを格納するための領域は設けられておらず、データ格納部３２のみが設けられている。そして、データ格納部３２には管理情報が格納される管理情報格納部４１が設けられている。
【０２５２】
〈第２の実施の形態〉
［メインメモリの構成］
さらに、以上においては、メインメモリ１２と、メインメモリ１２の管理等を行なう制御部１１とが設けられる情報処理システムについて説明したが、メインメモリ内に、メインメモリを管理する構成やデータへのアクセス等を行う構成が設けられてもよい。
【０２５３】
そのような場合、メインメモリは、例えば図２４に示すように構成される。なお、図２４において図１における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０２５４】
図２４のメインメモリ３０１は、ＣＰＵ２１、メモリ管理制御部３１１、バス１３、およびメモリ部３１２から構成され、ＣＰＵ２１、メモリ管理制御部３１１、およびメモリ部３１２は、バス１３により相互に接続されている。
【０２５５】
メモリ部３１２は、不揮発性で、かつ書き換え回数に上限があるメモリであり、メモリ部３１２には、プログラム格納部３１およびデータ格納部３２が設けられている。また、データ格納部３２には、管理情報格納部４１も設けられている。
【０２５６】
メモリ管理制御部３１１は、図１のメインメモリ管理制御部２２に対応し、バス１３を介してメモリ部３１２のプログラム格納部３１やデータ格納部３２にアクセスするとともに、メモリ部３１２から読み出したデータ等を必要に応じてＣＰＵ２１に供給する。すなわち、メモリ管理制御部３１１には、図５のデータ処理部１０１乃至書き換え回数管理部１０５と同じ構成が設けられている。
【０２５７】
ＣＰＵ２１は、バス１３を介してメモリ管理制御部３１１から、データやプログラムの供給を受けるとともに、必要に応じてメモリ管理制御部３１１に対して、メモリ部３１２へのデータの書き込みや読み出しを指示する。
【０２５８】
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０２５９】
図２５は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０２６０】
コンピュータにおいて、ＣＰＵ５０１，ＲＯＭ（Read Only Memory）５０２，ＲＡＭ５０３は、バス５０４により相互に接続されている。
【０２６１】
バス５０４には、さらに、入出力インターフェース５０５が接続されている。入出力インターフェース５０５には、入力部５０６、出力部５０７、記憶部５０８、通信部５０９、及びドライブ５１０が接続されている。
【０２６２】
入力部５０６は、キーボード、マウス、マイクロホンなどよりなる。出力部５０７は、ディスプレイ、スピーカなどよりなる。記憶部５０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部５０９は、ネットワークインターフェースなどよりなる。ドライブ５１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア５１１を駆動する。
【０２６３】
以上のように構成されるコンピュータでは、ＣＰＵ５０１が、例えば、記憶部５０８に記憶されているプログラムを、入出力インターフェース５０５及びバス５０４を介して、ＲＡＭ５０３にロードして実行することにより、例えば図１のメインメモリ管理制御部２２等が実現され、上述した一連の処理が行われる。
【０２６４】
コンピュータ（ＣＰＵ５０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア５１１に記憶して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０２６５】
コンピュータでは、プログラムは、リムーバブルメディア５１１をドライブ５１０に装着することにより、入出力インターフェース５０５を介して、記憶部５０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部５０９で受信し、記憶部５０８にインストールすることができる。その他、プログラムは、ＲＯＭ５０２や記憶部５０８に、あらかじめインストールしておくことができる。
【０２６６】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２６７】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２６８】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０２６９】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２７０】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２７１】
さらに、本技術は、以下の構成とすることも可能である。
【０２７２】
［１］
書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理する書き換え回数管理部と、
所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込むデータ処理部と
を備える情報処理装置。
［２］
全ての前記ページの書き換え回数が前記閾値以上となった場合、前記閾値より大きく、かつ前記上限値以下の新たな閾値を算出し、前記閾値を更新する閾値更新部をさらに備える
［１］に記載の情報処理装置。
［３］
前記閾値更新部は、前記上限値に対して定められた固定値を前記閾値に加算することで、新たな閾値を算出する
［２］に記載の情報処理装置。
［４］
前記データ処理部は、前記所定ページへの前記書き込みデータの書き込みが指示され、前記所定ページの書き換え回数、および有効データが格納されていない前記ページの書き換え回数が前記閾値に達している場合、有効データが格納されている前記ページのうち、書き換え回数が前記閾値に達していない前記ページを検索するとともに、前記検索により得られた前記ページに格納されているデータを、有効データが格納されていない前記ページに移動させる
［１］乃至［３］に記載の情報処理装置。
［５］
前記データ処理部は、前記検索により得られた前記ページのデータの移動後、前記書き込みデータを前記検索により得られた前記ページに書き込む
［４］に記載の情報処理装置。
［６］
各前記ページの書き換え回数は、前記主記憶装置に格納されている
［１］乃至［５］に記載の情報処理装置。
［７］
各前記ページの書き換え回数は、前記ページに対して一意に定められた位置、または前記ページ位置から演算により求まる位置に格納されている
［６］に記載の情報処理装置。
［８］
前記ページに対して仮想ページ番号を割り当てるとともに、前記ページの前記仮想ページ番号と物理ページ番号の対応を示す論物変換情報を管理する変換情報管理部をさらに備える
［１］乃至［７］に記載の情報処理装置。
［９］
前記変換情報管理部は、前記所定ページに対して所定仮想ページ番号が割り当てられており、前記所定仮想ページ番号が書き込み先として指定された前記書き込みデータが、前記他のページに書き込まれた場合、前記所定仮想ページ番号の割り当てを前記所定ページから前記他のページに変更する
［８］に記載の情報処理装置。
［１０］
各前記ページの書き換え回数と、前記論物変換情報とは異なる領域に格納されている
［８］または［９］に記載の情報処理装置。
［１１］
前記論物変換情報または前記閾値の少なくとも一方は前記ページに格納されている
［１０］に記載の情報処理装置。
【符号の説明】
【０２７３】
１１  制御部，  １２  メインメモリ，  ２１  ＣＰＵ，  ２２  メインメモリ管理制御部，  ３２  データ格納部，  ４１  管理情報格納部，  １０１  データ処理部，  １０２  変換情報管理部，  １０３  空きページ検索部，  １０４  閾値更新部，  １０５  書き換え回数管理部
【図１】
2013254357.tif 000003
【図２】
2013254357.tif 000004
【図３】
2013254357.tif 000005
【図４】
2013254357.tif 000006
【図５】
2013254357.tif 000007
【図６】
2013254357.tif 000008
【図７】
2013254357.tif 000009
【図８】
2013254357.tif 000010
【図９】
2013254357.tif 000011
【図１０】
2013254357.tif 000012
【図１１】
2013254357.tif 000013
【図１２】
2013254357.tif 000014
【図１３】
2013254357.tif 000015
【図１４】
2013254357.tif 000016
【図１５】
2013254357.tif 000017
【図１６】
2013254357.tif 000018
【図１７】
2013254357.tif 000019
【図１８】
2013254357.tif 000020
【図１９】
2013254357.tif 000021
【図２０】
2013254357.tif 000022
【図２１】
2013254357.tif 000023
【図２２】
2013254357.tif 000024
【図２３】
2013254357.tif 000025
【図２４】
2013254357.tif 000026
【図２５】
2013254357.tif 000027