(57)【要約】【課題】記憶媒体の物理ブロックに対するデータの書き換え回数をより的確に平滑化することができる情報処理装置、メモリシステムおよびその制御方法を提供する。【解決手段】本発明に係る情報処理装置１０は、ＣＰＵ１１、メインメモリ１２（ＲＡＭ）およびメモリシステム２０を有する。メモリシステム２０は、メモリコントローラ２１、不揮発性メモリ２２および変換テーブル２３を有する。メモリコントローラ２１は、少なくとも論理ブロック番号と物理ブロック番号とを関連付けて変換テーブルに記憶させる変換テーブル管理部と、必要に応じてread onlyフラグの変更に応じて論理ブロックの書換え頻度フラグを変更する頻度フラグ設定部と、書換え頻度フラグおよびread onlyフラグにもとづいて書換え頻度が少ないデータを的確に書込み回数が多い物理ブロックに割り当てる処理を実行する平滑化部とを有する。【選択図】  図１
2009211152.tif 000002
【特許請求の範囲】
【請求項１】
物理ブロック単位で書換え可能な不揮発性メモリと、
前記不揮発性メモリに対するデータの読み書きを制御するメモリコントローラと、
を備え、
前記不揮発性メモリの物理ブロックは、
少なくとも物理ブロックに対する書込み回数を記憶する書込み回数領域を有し、
前記メモリコントローラは、
論理ブロック番号と物理ブロック番号とを関連付けて変換テーブルに記憶させる変換テーブル管理手段と、
前記論理ブロック番号に対応するデータの読取り専用属性と、必要に応じて前記読取り専用属性の変更に応じて変更される前記論理ブロックの書換え頻度属性と、を、前記論理ブロック番号に対してさらに関連付けて変換テーブルに記憶させる頻度フラグ設定手段と、
前記書換え頻度属性が書換え頻度が低いことを示す状態でありかつ前記読取り専用属性が読み書き可能を示す状態である論理ブロックに対してデータの書込み要求があると、このデータを前記書込み回数領域に記憶された前記書込み回数が多い物理ブロックに書込むよう制御する平滑化手段と、
を有することを特徴とするメモリシステム。
【請求項２】
前記頻度フラグ設定手段は、
前記データの読取り専用属性が読取り専用を示す状態から読み書き可能を示す状態に変更されると、前記論理ブロックの書換え頻度属性を書換え頻度が低いことを示す状態に変更する、
請求項１記載のメモリシステム。
【請求項３】
前記平滑化手段は、
前記書換え頻度属性が書換え頻度が低いことを示す状態でありかつ前記読取り専用属性が読み書き可能を示す状態である論理ブロックに対してデータの書込み要求があると、このデータを、前記書換え頻度属性が書換え頻度が高いことを示す状態でありかつ前記読取り専用フラグが読み書き可能を示す状態である論理ブロックに関連付けられた物理ブロックのうち前記書込み回数領域に記憶された前記書込み回数が多い物理ブロックに書込むよう制御する、
請求項１または２に記載のメモリシステム。
【請求項４】
前記頻度フラグ設定手段は、
前記論理ブロックの書換え頻度属性が書換え頻度が低いことを示す状態に変更された後に前記論理ブロックに対して行われた書込み要求回数が所定の回数に達すると、前記変換テーブルに記憶された前記論理ブロックの書換え頻度属性を書換え頻度が高いことを示す状態に変更する、
請求項３記載のメモリシステム。
【請求項５】
前記変換テーブルは、前記不揮発性メモリに格納される、
請求項１ないし請求項４のいずれか１項に記載のメモリシステム。
【請求項６】
物理ブロック単位で書換え可能であり、前記物理ブロックのそれぞれは少なくとも前記物理ブロックに対する書込み回数を記憶する書込み回数領域を有する不揮発性メモリと、
前記不揮発性メモリに対するデータの読み書きを制御するメモリコントローラと、
論理ブロック番号と物理ブロック番号とを関連付けて変換テーブルに記憶させる変換テーブル管理手段と、
前記論理ブロック番号に対応するデータの読取り専用属性と、前記読取り専用属性の変更に応じて変更される前記論理ブロックの書換え頻度属性と、を、前記論理ブロック番号に対してさらに関連付けて変換テーブルに記憶させる頻度フラグ設定手段と、
前記書換え頻度属性が書換え頻度が低いことを示す状態でありかつ前記読取り専用属性が読み書き可能を示す状態である論理ブロックに対してデータの書込み要求があると、このデータを前記書込み回数領域に記憶された前記書込み回数が多い物理ブロックに書込むよう制御する平滑化手段と、
を備えたことを特徴とする情報処理装置。
【請求項７】
前記頻度フラグ設定手段は、
前記データの読取り専用属性が読取り専用を示す状態から読み書き可能を示す状態に変更されると、前記論理ブロックの書換え頻度属性を書換え頻度が低いことを示す状態に変更する、
請求項６記載の情報処理装置。
【請求項８】
前記平滑化手段は、
前記書換え頻度属性が書換え頻度が低いことを示す状態でありかつ前記読取り専用属性が読み書き可能を示す状態である論理ブロックに対してデータの書込み要求があると、このデータを、前記書換え頻度属性が書換え頻度が高いことを示す状態でありかつ前記読取り専用フラグが読み書き可能を示す状態である論理ブロックに関連付けられた物理ブロックのうち前記書込み回数領域に記憶された前記書込み回数が多い物理ブロックに書込むよう制御する、
請求項６または７に記載の情報処理装置。
【請求項９】
前記論理ブロックの書換え頻度属性が書換え頻度が低いことを示す状態に変更された後に前記論理ブロックに対して行われた書込み要求回数が、所定の回数に達したか否かを判定する変更後書換え回数判定手段、
をさらに備え、
前記頻度フラグ設定手段は、
前記書込み要求回数が前記所定の回数に達すると、前記変換テーブルに記憶された前記論理ブロックの書換え頻度属性を書換え頻度が高いことを示す状態に変更する、
請求項８記載の情報処理装置。
【請求項１０】
物理ブロック単位で書換え可能な不揮発性メモリに対するデータの読み書きを制御する制御方法であって、
論理ブロック番号と物理ブロック番号とを関連付けて記憶するステップと、
前記論理ブロック番号に対応するデータの読取り専用属性と、前記読取り専用属性の変更に応じて変更される前記論理ブロックの書換え頻度属性と、を、前記論理ブロック番号に対してさらに関連付けて記憶するステップと、
前記書換え頻度属性が書換え頻度が低いことを示す状態でありかつ前記読取り専用属性が読み書き可能を示す状態である論理ブロックに対してデータの書込み要求があると、このデータを前記書込み回数領域に記憶された前記書込み回数が多い物理ブロックに書込むよう制御するステップと、
を有することを特徴とする制御方法。
【請求項１１】
前記論理ブロックの書換え頻度属性は、
前記データの読取り専用属性が読取り専用を示す状態から読み書き可能を示す状態に変更されると、前記論理ブロックの書換え頻度属性を書換え頻度が低いことを示す状態に変更される、
請求項１０記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書換え可能な不揮発性メモリを備えたメモリシステムおよびその制御方法ならびにこのメモリシステムを有する情報処理装置に関する。
【背景技術】
【０００２】
書換えが可能な不揮発性メモリには、データを書き換えると少しずつ劣化していくものがある。たとえば、物理ブロック単位で書換えが行われるＮＡＮＤ型フラッシュメモリは、数万回の書換えで内部の記憶素子が破壊されてしまう可能性がある。
【０００３】
この書換え限度回数は、記憶媒体全体に対する書換えの限度回数ではなく、それぞれの記憶素子に対する書換えの限度回数である。物理ブロックは、１つまたは複数の記憶素子により構成される。このため、物理ブロック単位で書換えが行われ、かつ記憶素子に書換え限度回数がある不揮発性メモリにおいては、書換えが特定の物理ブロックに集中してしまわないように制御することが望ましく、従来、全ての物理ブロックに対するデータの書換え回数を平滑化するために、種々の技術が提案されている（たとえば特許文献１参照）。
【特許文献１】特開２００２−３２２５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の技術では、各データの書換え回数および各物理ブロックの書換え回数を考慮し、書換え回数の多いデータは積算書換え回数の少ない物理ブロックに格納する一方、書換え回数の少ないデータは積算書換え回数の多い物理ブロックに格納することにより、物理ブロックに対するデータの書換え回数を平滑化するようになっている。
【０００５】
しかし、従来の技術では、データの書換え回数として、このデータに対応する論理ブロックに対する積算書換え回数（過去の書換え回数の履歴）を用いている。このため、従来の技術では、論理ブロックの書換え頻度の傾向に変化があった場合には、全く対応することができず、物理ブロックに対するデータの書換え回数を的確に平滑化することが難しい。
【０００６】
たとえば、論理ブロックに割り当てられたデータが変更され、新たに割り当てられたデータが今後書換えをほとんど行われないデータである場合でも、この論理ブロックに対する積算書換え回数が多ければ、この新たに割り当てられた書換え頻度の低いデータは積算書換え回数の少ない物理ブロックに割り当てられてしまう。
【０００７】
本発明は、上述した事情を考慮してなされたもので、記憶媒体の物理ブロックに対するデータの書き換え回数をより的確に平滑化することができる情報処理装置、メモリシステムおよびその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るメモリシステムは、上述した課題を解決するために、物理ブロック単位で書換え可能な不揮発性メモリと、前記不揮発性メモリに対するデータの読み書きを制御するメモリコントローラと、を備え、前記不揮発性メモリの物理ブロックは、少なくとも物理ブロックに対する書込み回数を記憶する書込み回数領域を有し、前記メモリコントローラは、論理ブロック番号と物理ブロック番号とを関連付けて変換テーブルに記憶させる変換テーブル管理手段と、前記論理ブロック番号に対応するデータの読取り専用属性と、必要に応じて前記読取り専用属性の変更に応じて変更される前記論理ブロックの書換え頻度属性と、を、前記論理ブロック番号に対してさらに関連付けて変換テーブルに記憶させる頻度フラグ設定手段と、前記書換え頻度属性が書換え頻度が低いことを示す状態でありかつ前記読取り専用属性が読み書き可能を示す状態である論理ブロックに対してデータの書込み要求があると、このデータを前記書込み回数領域に記憶された前記書込み回数が多い物理ブロックに書込むよう制御する平滑化手段と、を有することを特徴とするものである。
【０００９】
また、本発明に係る情報処理装置は、上述した課題を解決するために、物理ブロック単位で書換え可能であり、前記物理ブロックのそれぞれは少なくとも前記物理ブロックに対する書込み回数を記憶する書込み回数領域を有する不揮発性メモリと、前記不揮発性メモリに対するデータの読み書きを制御するメモリコントローラと、論理ブロック番号と物理ブロック番号とを関連付けて変換テーブルに記憶させる変換テーブル管理手段と、前記論理ブロック番号に対応するデータの読取り専用属性と、前記読取り専用属性の変更に応じて変更される前記論理ブロックの書換え頻度属性と、を、前記論理ブロック番号に対してさらに関連付けて変換テーブルに記憶させる頻度フラグ設定手段と、前記書換え頻度属性が書換え頻度が低いことを示す状態でありかつ前記読取り専用属性が読み書き可能を示す状態である論理ブロックに対してデータの書込み要求があると、このデータを前記書込み回数領域に記憶された前記書込み回数が多い物理ブロックに書込むよう制御する平滑化手段と、を備えたことを特徴とするものである。
【００１０】
一方、本発明に係る制御方法は、上述した課題を解決するために、物理ブロック単位で書換え可能な不揮発性メモリに対するデータの読み書きを制御する制御方法であって、論理ブロック番号と物理ブロック番号とを関連付けて記憶するステップと、前記論理ブロック番号に対応するデータの読取り専用属性と、前記読取り専用属性の変更に応じて変更される前記論理ブロックの書換え頻度属性と、を、前記論理ブロック番号に対してさらに関連付けて記憶するステップと、前記書換え頻度属性が書換え頻度が低いことを示す状態でありかつ前記読取り専用属性が読み書き可能を示す状態である論理ブロックに対してデータの書込み要求があると、このデータを前記書込み回数領域に記憶された前記書込み回数が多い物理ブロックに書込むよう制御するステップと、を有することを特徴とする方法である。
【発明の効果】
【００１１】
本発明に係る情報処理装置、メモリシステムおよびその制御方法によれば、記憶媒体の物理ブロックに対するデータの書き換え回数をより的確に平滑化することができる。
【発明を実施するための最良の形態】
【００１２】
本発明に係る情報処理装置、メモリシステムおよびその制御方法の実施の形態について、添付図面を参照して説明する。
【００１３】
図１は、本発明に係る情報処理装置の第１実施形態を示す概略的な全体構成図である。情報処理装置１０は、ＣＰＵ１１、メインメモリ１２（ＲＡＭ）およびメモリシステム２０を有する。
【００１４】
ＣＰＵ１１は、メモリシステム２０を含む情報処理装置１０全体の処理を制御する。また、メインメモリ１２は、ＣＰＵ１１が実行するプログラムおよびデータを一時的に格納するワークエリアを提供する。
【００１５】
メモリシステム２０は、メモリコントローラ２１、不揮発性メモリ２２および変換テーブル２３を有する。
【００１６】
メモリコントローラ２１は、不揮発性メモリ２２に対するデータの読み書きを制御する。
【００１７】
不揮発性メモリ２２は、ＮＡＮＤ型フラッシュメモリなどの、物理ブロック単位で書換え可能な不揮発性の記憶媒体であり、メモリコントローラ２１により読取りおよび書込み可能に構成される。
【００１８】
図２は、不揮発性メモリ２２の概略的な構成図である。
【００１９】
図２に示すように、不揮発性メモリ２２は複数の物理ブロックにより構成される。各物理ブロックは、複数（一般に３２個程度）の固定長データの集まりであるページと、各ページの管理情報を記憶する冗長領域２４とにより構成される。各ページのサイズには、512byteのものや2KBのものなどがある。冗長領域２４のサイズは、たとえばページサイズが512byteの場合は一般に16byte、2KBの場合は一般に64byteである。
【００２０】
不揮発性メモリ２２には、大きく次の二つの特徴がある。
【００２１】
第１の特徴は、データの消去を物理ブロック単位で行う必要があるという特徴である。消去にはブロック消去コマンドを使用する。消去されると、物理ブロックの全てのデータビット（ページおよび冗長領域２４の全てのデータビット）が立ち0xFFとなる。
【００２２】
第２の特徴は、データの上書きが原則不可能であるという特徴である。より詳細には、０のビットを１に上書きすることは不可能であるが、１のビットに０を上書きすることは可能である。このため、第１の特徴として説明したように、同一の物理ブロックの内容を変更するためには、この物理ブロックの全てのデータを一度消去する必要がある。
【００２３】
不揮発性メモリ２２は、数万回の書換え（消去および書込み）で内部素子が破壊されてしまう可能性がある。破壊された内部素子を含む物理ブロックは、メモリコントローラ２１からは故障ブロックとして扱われてしまい、アクセスの対象外となってしまう。このため、不揮発性メモリ２２を利用する際は、特定の物理ブロックに対して書込みが集中しないように制御するとよい。
【００２４】
なお、本実施形態では、物理ブロック単位で消去および書込みを行う不揮発性メモリ２２について説明する。この種の不揮発性メモリ２２においては、物理ブロックの書換え回数は、消去回数または書込み回数と同義であることに注意する。
【００２５】
図３は、論理ブロック番号と物理ブロック番号とを関連付けるために用いられる変換テーブル２３の一部について一例を示す説明図である。
【００２６】
不揮発性メモリ２２を利用する場合、物理ブロックが故障しているか否かによらずアプリケーションがアクセス可能となるように、アドレス変換機構が用いられる。アドレス（番号）には、不揮発性メモリ２２上の実際のブロック（物理ブロック）のアドレスである物理ブロック番号と、アプリケーションなどから見た見かけ上のブロック（論理ブロック）のアドレスである論理ブロック番号とがある。
【００２７】
アプリケーションがデータの読み書きを行う際には、このデータに対応する論理ブロック番号を用いてメモリコントローラ２１に対してアクセスする。メモリコントローラ２１は、変換テーブル２３にもとづいてこの論理ブロック番号を物理ブロック番号に変換する。そして、メモリコントローラ２１によって不揮発性メモリ２２の物理ブロックに対するアクセスが行われる（図３参照）。
【００２８】
メモリコントローラ２１は、論理ブロックに関連付けられた物理ブロックに故障がある場合には、この論理ブロックに対する関連付け先を他の物理ブロックに変更するよう、速やかに変換テーブル２３を変更する。このため、アプリケーションは物理ブロックが故障しているか否かを気にすることなく不揮発性メモリ２２を利用することができるようになっている。
【００２９】
図４は、不揮発性メモリ２２の冗長領域２４の構成例を示す図である。
【００３０】
冗長領域２４は、少なくともＥｒａｓｅフラグ領域、論理アドレス領域、バージョン情報領域、書込み回数領域を有する。
【００３１】
図５は、物理ブロックの状態と、Ｅｒａｓｅフラグ領域および論理アドレス領域の情報との関係について示す説明図である。
【００３２】
Ｅｒａｓｅフラグ領域および論理アドレス領域は、物理ブロックの状態を表す。物理ブロックの状態には、図５に示すように、Ａｓｓｉｇｎ状態、Ｅｒａｓｅ状態およびＣｌｅａｎ状態の３つの状態がある。
【００３３】
Ａｓｓｉｇｎ状態は、物理ブロックにデータが記録されているとともにこの記録されているデータが有効であり、アプリケーションによりこのデータが利用可能である状態である。Ａｓｓｉｇｎ状態では、Ｅｒａｓｅフラグ領域は0xFFである。また、論理アドレス領域には、メモリコントローラ２１により、変換テーブル２３の情報にもとづいて有効な論理アドレスが格納される。
【００３４】
Ｅｒａｓｅ状態は、物理ブロックにデータが記録されているとともにこの記録されているデータが無効であり、アプリケーションによりこのデータが利用できない状態である。Ｅｒａｓｅ状態では、Ｅｒａｓｅフラグ領域は0x00である。つまり、アプリケーションによる物理ブロックに対するアクセスを禁止したい場合は、物理ブロックのデータを全て消去せずとも、Ｅｒａｓｅフラグ領域を0x00に上書きするだけでよい。なお、不揮発性メモリ２２は、１のビットに対して０を上書きすることは可能である（上述の第２の特徴参照）。
【００３５】
Ｃｌｅａｎ状態は、物理ブロックにデータが記録されていない状態である。Ｃｌｅａｎ状態では、Ｅｒａｓｅフラグ領域も論理アドレス領域もともに0xFFである。
【００３６】
なお、以下の説明では、Ｅｒａｓｅ状態およびＣｌｅａｎ状態の物理ブロックを総称して、フリーブロックという。
【００３７】
バージョン番号領域には、物理ブロックの新旧を判別するために用いられるバージョン番号が格納される。物理ブロックの書込み回数の平滑化のために、ある物理ブロックのデータを他の物理ブロックにコピーした後、元の物理ブロックのデータを消去する場合を考える。この場合、元の物理ブロックのデータを消去する直前に情報処理装置１０の電源が落ちるなどした場合、同一のデータを有する物理ブロックが二つ存在してしまう場合がある。
【００３８】
ある物理ブロックのデータを他の物理ブロックにコピーする際に、冗長領域２４のバージョン番号を１つインクリメントしておけば、同一のデータを有する物理ブロックが二つ存在してしまう場合にも、バージョン番号の大小で物理ブロックの新旧を判別することができる。
【００３９】
書込み回数領域は、各ページに対する書込み回数を記憶しておく。以下の説明において、物理ブロックの書込み回数という場合には、物理ブロックを構成するページの書込み回数のうち最も多い回数を指すものとする。
【００４０】
なお、冗長領域２４に、故障ブロックであることを示す指標を格納する領域など、図４に示した領域以外の領域を設けてもよい。
【００４１】
図６は、図１に示すメモリコントローラ２１の構成例を示す概略的なブロック図である。なお、各部３１〜３３は、プロセッサ、ＲＡＭおよびＲＯＭを用いて、プロセッサがＲＯＭ内に記憶された書換え回数平滑化プログラムおよびプログラムの実行のために必要なデータをＲＡＭへロードし、書換え回数平滑化プログラムに従ってプロセッサが各部３１〜３３として機能するようにしてもよい。
【００４２】
次に、メモリコントローラ２１の各部３１〜３３について説明する。
【００４３】
メモリコントローラ２１は、少なくとも変換テーブル管理部３１、頻度フラグ設定部３２および平滑化部３３を有する。
【００４４】
変換テーブル管理部３１は、論理ブロック番号と物理ブロック番号とを関連付けて変換テーブル２３に記憶させる。
【００４５】
頻度フラグ設定部３２は、フラグ判定部３４、フラグ変更部３５および変更後書換え回数判定部３６を有する。
【００４６】
図７は、変換テーブル２３の内容の一例を示す説明図である。
【００４７】
図７において、read-onlyは、論理ブロック番号に対応するデータの読取り専用属性（Read Only フラグ、以下ＲＯフラグという）を表す。ＲＯフラグは、各論理ブロックに対応するデータについて、このデータに対する書込みを禁止するために用いられる。例えば、ＲＯフラグが１の場合は、この論理ブロックに対応するデータが読取り専用であることを示す。一方、ＲＯフラグが０の場合は、このデータが読み書き可能であることを示す。
【００４８】
たとえば、アプリケーションプログラムに係るデータに対応する論理ブロックは、データのアップデートの際を除き、誤って書き換えてしまうことがないよう、ＲＯフラグを１にしておくとよい。
【００４９】
また、図７において、assign policyとは、論理ブロックの書換え頻度属性（Assign Policy フラグ、以下ＡＰフラグという）を表す。ＡＰフラグは、書込み回数が少ない物理ブロックに書換え頻度が多いデータを割り当て、書込み回数が多い物理ブロックに書換え頻度が少ないデータを割り当てることにより、効率よく物理ブロックの書込み回数を平滑化するために用いられる。例えば、ＡＰフラグが１の場合は、論理ブロックの書換え頻度が低いことを示す。一方、ＡＰフラグが０の場合は、論理ブロックの書換え頻度が高いことを示す。
【００５０】
このため、ＡＰフラグが１のデータは書込み回数が多い物理ブロックに割り当て、ＡＰフラグが０のデータは書込み回数が少ない物理ブロックに割り当てるとよい。
【００５１】
一般に、アプリケーションプログラムのアップデートに代表されるように、ＲＯフラグが１（読取り専用）から０（読み書き可能）に変更された場合には、１回から数回の書込み後に再び読取り専用となることが多い。このため、ＲＯフラグが１から０に変更された場合は、この論理ブロックを書込み回数が多い物理ブロックに割り当てるようにするとよい。
【００５２】
なお、ＡＰフラグおよびＲＯフラグの初期値はゼロであるものとする。
【００５３】
フラグ判定部３４は、論理ブロックのＲＯフラグに対する変更要求があったかどうかを判定する。
【００５４】
フラグ変更部３５は、ＲＯフラグおよび論理ブロックの書換え頻度属性（Assign Policy フラグ、以下ＡＰフラグという）を論理ブロック番号に対して関連付けて変換テーブル２３に記憶させる。このため、変換テーブル２３は、図７に示すように、ＡＰフラグ、ＲＯフラグ、論理ブロック番号および物理ブロック番号が互いに関連付けられて記憶することになる。
【００５５】
フラグ変更部３５は、ＲＯフラグの変更要求に応じてＲＯフラグを変更するとともに、必要に応じてＲＯフラグの変更に応じて論理ブロックの書換え頻度属性（Assign Policy フラグ、以下ＡＰフラグという）を変更する。
【００５６】
変更後書換え回数判定部３６は、論理ブロックのＡＰフラグが１（書換え頻度が低いことを示す状態）に変更された後に論理ブロックに対して行われた書込み要求回数が所定の回数に達したかどうかを判定する。
【００５７】
平滑化部３３は、最多ブロック抽出部３７、フリーブロック抽出部３８、ブロック状態変更部３９およびデータコピー部４０を有する。
【００５８】
最多ブロック抽出部３７は、ＡＰフラグが０（書換え頻度が高いことを示す状態）でありかつＲＯフラグが０（読み書き可能を示す状態）である論理ブロックに関連付けられた物理ブロックのうち、書込み回数領域に記憶された書込み回数が最多の物理ブロックを抽出する。
【００５９】
フリーブロック抽出部３８は、フリーブロックを抽出する。
【００６０】
ブロック状態変更部３９は、必要に応じて、物理ブロックをＥｒａｓｅ状態またはＣｌｅａｒ状態にする。
【００６１】
データコピー部４０は、複数のブロック間でデータのコピーを行う。
【００６２】
次に、本実施形態に係る情報処理装置１０の動作の一例について説明する。
【００６３】
図８は、図１に示すメモリコントローラ２１の頻度フラグ設定部３２により、ＲＯフラグの変更要求に応じてＲＯフラグを変更するとともに、必要に応じてＲＯフラグの変更に応じて論理ブロックのＡＰフラグを変更する際の手順を示すフローチャートである。図８において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。
【００６４】
まず、ステップＳ１において、フラグ判定部３４は、論理ブロックのＲＯフラグに対する変更要求があったかどうかを判定する。変更要求があった場合は、ステップＳ２に進む。一方、なかった場合は、引き続き論理ブロックのＲＯフラグに対する変更要求があったかどうかを監視する。
【００６５】
次に、ステップＳ２において、フラグ判定部３４は、ＲＯフラグの変更要求が、０から１に変更すべき要求であるかどうかを判定する。０から１に変更すべき要求である場合はステップＳ３に進む。一方、１から０に変更すべき要求である場合はステップＳ４に進む。
【００６６】
次に、ステップＳ３において、フラグ変更部３５は、ＲＯフラグを０から１に変更し、一連の手順は終了となる。
【００６７】
他方、ステップＳ４において、フラグ変更部３５は、ＲＯフラグを１から０に変更し、かつＡＰフラグを０から１に変更する。このＡＰフラグの変更は、１回から数回の書込み後に再び読取り専用となる（ＲＯフラグが１に戻る）ことを予測した変更である。
【００６８】
次に、ステップＳ５において、フラグ判定部３４は、ＡＰフラグが１かつＲＯフラグが０の論理ブロックがあるかどうか判定する。（ＡＰ、ＲＯ）＝（１、０）の論理ブロックがある場合はステップＳ６に進む。一方、ない場合は、一連の手順は終了となる。
【００６９】
次に、ステップＳ６において、変更後書換え回数判定部３６は、（ＡＰ、ＲＯ）＝（１、０）の論理ブロックについて、ＡＰフラグが１に変更された後に論理ブロックに対して行われた書込み要求回数が、所定の回数に達したかどうかを判定する。所定の回数に達している場合は、ステップＳ４における「ＲＯフラグが１に戻る」予測が外れたと判定し、ステップＳ７に進む。一方、所定の回数に達した論理ブロックがない場合は、一連の手順は終了となる。
【００７０】
次に、ステップＳ７において、フラグ変更部３５は、（ＡＰ、ＲＯ）＝（１、０）を（ＡＰ、ＲＯ）＝（０、０）に変更する。
【００７１】
以上の手順により、ＲＯフラグの変更要求に応じてＲＯフラグを変更するとともに、必要に応じてＲＯフラグの変更に応じて論理ブロックのＡＰフラグを変更することができる。
【００７２】
図９は、図１に示すメモリコントローラ２１の平滑化部３３および変換テーブル管理部３１により、ＡＰフラグが１かつＲＯフラグが０の論理ブロックに対する書換え処理の様子を示す状態遷移図である。
【００７３】
なお、図９において、四角の枠はそれぞれ１つの物理ブロックを示す。また、四角の枠の内側のハッチングは、物理ブロックにデータが記録されていることを示し、四角の枠の左上に付した×印は、このブロックの状態がＥｒａｓｅ状態であることを示す。また、四角の枠のみでハッチングがない物理ブロックはＣｌｅａｒ状態であることを示す。
【００７４】
また、図１０は、図１に示すメモリコントローラ２１の平滑化部３３および変換テーブル管理部３１により、ＡＰフラグが１かつＲＯフラグが０の論理ブロックに対する書換え処理の手順を示すフローチャートである。図１０において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。なお、以下の説明では、この（ＡＰ、ＲＯ）＝（１、０）に関連付けられた元の物理ブロックをＢｏｒｇという。
【００７５】
まず、ステップＳ１１において、最多ブロック抽出部３７は、（ＡＰ、ＲＯ）＝（０、０）である論理ブロックに関連付けられた物理ブロックのうち、書込み回数領域に記憶された書込み回数が最多の物理ブロック（以下、この物理ブロックをＢｍａｘという）を抽出する（図９の（９０１）参照）。
【００７６】
次に、ステップＳ１２において、フリーブロック抽出部３８は、フリーブロック（以下、この物理ブロックをＢｆという）を抽出する（図９の（９０２）参照）。
【００７７】
次に、ステップＳ１３において、ブロック状態変更部３９は、フリーブロックＢｒｅｅに対して書込みが実行できるように、ＢｆをＣｌｅａｒ状態にする（図９の（９０３）参照）。なお、このステップＳ１３は、ステップＳ１２において抽出されたＢｆがＣｌｅａｒ状態である場合には実行する必要はない。
【００７８】
次に、ステップＳ１４において、データコピー部４０は、ＢｍａｘのデータをＢｆにコピーする（図９の（９０４）参照）。
【００７９】
次に、ステップＳ１５において、変換テーブル管理部３１は、Ｂｍａｘに関連付けられていた論理ブロックをＢｆに関連付けるよう変換テーブル２３を変更する。
【００８０】
次に、ステップＳ１６において、データコピー部４０は、Ｂｍａｘの書込み回数をメインメモリ１２などの記憶媒体にコピーする。
【００８１】
次に、ステップＳ１７において、ブロック状態変更部３９は、ＢｍａｘをＣｌｅａｒ状態にする（図９の（９０５）参照）。
【００８２】
次に、ステップＳ１８において、データコピー部４０は、Ｂｏｒｇの書換えデータをＢｍａｘに書込む。
【００８３】
図９には、書換え箇所が物理ブロックの中間付近のページにある場合の書込み手順の一例について示した。この場合、たとえば図９に示したように、まずＢｏｒｇの前半部分をＢｍａｘに書込み（図９の（９０６）参照）、次にＢｏｒｇの書換え箇所をＢｍａｘに書込み（図９の（９０７）参照）、最後に、Ｂｏｒｇの後半部分をＢｍａｘのページ領域に、インクリメントしたバージョン番号をバージョン番号領域に、ステップＳ１６でメインメモリ１２などの記憶媒体にコピーされていたＢｍａｘの書込み回数をインクリメントして書込み回数領域に、それぞれ書込む（図９の（９０８）参照）ようにする。
【００８４】
次に、ステップＳ１９において、ブロック状態変更部３９は、ＢｏｒｇをＥｒａｓｅ状態にする（図９の（９０９）参照）。
【００８５】
次に、ステップＳ２０において、変換テーブル管理部３１は、Ｂｏｒｇに関連付けられていた論理ブロックをＢｍａｘに関連付けるよう変換テーブル２３を変更する。
【００８６】
以上の手順により、ＡＰフラグが１かつＲＯフラグが０の論理ブロックに対する書換え処理を実行することができる。
【００８７】
従来の技術では、論理ブロックの書換え頻度の履歴と、物理ブロックの書込み回数とにもとづいて、物理ブロックの書込み回数の平滑化を行っている。このため、たとえば読取り専用のデータがあって、このデータに対応する論理ブロックに関連付けられた物理ブロックの書込み回数が最少であり、平滑化処理を行ってこの最少書込み回数の物理ブロックをフリーブロックとした直後に、この読取り専用のデータが一時的に読み書き可能となって書込み要求された場合、再び最少書込み回数の物理ブロックにこのデータが割り当てられてしまうという不具合があった。
【００８８】
一方、本実施形態に係るメモリシステム２０およびこのメモリシステム２０を用いた情報処理装置１０は、書換え頻度が低いと予想される論理ブロックに対してＡＰフラグを立て、このＡＰフラグが立っている論理ブロックに対して書込み回数が最大の物理ブロックを割り当てることができる。このため、書換え頻度を予測することによって、書換え頻度が低い論理ブロックを書込み回数が多い物理ブロックに対して的確に割り当てることができる。
【００８９】
したがって、本実施形態に係るメモリシステム２０およびこのメモリシステム２０を用いた情報処理装置１０によれば、頻繁に書換えが発生するデータを的確に書込み回数が少ない物理ブロックに割り当てることができ、従来の技術に比べ、物理ブロックの書き換え回数をより的確かつ容易に平滑化することができる。
【００９０】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【００９１】
たとえば、上述したメモリコントローラ２１の構成の一部または全部を、ＣＰＵ１１によりプログラムを実行させて機能させることもできる。この場合、この書換え回数平滑化プログラムをＣＤ−ＲＯＭ、磁気ディスクなどからメインメモリ１２にインストールし、あるいはメインメモリ１２に通信回線を介してダウンロードするなどして、このメインメモリ１２に格納された書換え回数平滑化プログラムをＣＰＵ１１により実行すればよい。
【００９２】
また、本実施形態では、図８のステップＳ４における「ＲＯフラグが１に戻る」予測が外れたかどうかの判定を、図８のステップＳ６およびＳ７で実行する場合の例について示したが、このステップＳ６およびＳ７と同等の手順は、図１０に示した手順の中で実行するなど、いずれかの論理ブロックに対する書換え要求があるごとに行うようにしてもよい。
【００９３】
さらに、本実施形態では、変更後書換え回数判定部３６により所定の回数に達した場合に図８のステップＳ４における「ＲＯフラグが１に戻る」予測が外れたものとしてＡＰフラグを０に戻す例について説明したが、所定の時間経過など、他の判断基準によってこの予測が外れたものとしてＡＰフラグを０に戻すようにしてもよい。
【００９４】
また、本実施形態では、フローチャートの各ステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
【００９５】
たとえば、図１０のステップＳ１１で、Ｂｍａｘをフリーブロックから抽出するようにすれば、ステップＳ１２からＳ１５は省略することができ、一連の書換え処理を高速に行うことができる。また、このフリーブロックであるＢｍａｘがＣｌｅａｒ状態であれば、さらにステップＳ１６およびＳ１７を省略することができる。
【図面の簡単な説明】
【００９６】
【図１】本発明に係る情報処理装置の第１実施形態を示す概略的な全体構成図。
【図２】不揮発性メモリの概略的な構成図。
【図３】論理ブロック番号と物理ブロック番号とを関連付けるために用いられる変換テーブルの一部について一例を示す説明図。
【図４】不揮発性メモリの冗長領域の構成例を示す図。
【図５】物理ブロックの状態と、Ｅｒａｓｅフラグ領域および論理アドレス領域の情報との関係について示す説明図。
【図６】図１に示すメモリコントローラの構成例を示す概略的なブロック図。
【図７】変換テーブルの内容の一例を示す説明図。
【図８】図１に示すメモリコントローラの頻度フラグ設定部により、ＲＯフラグの変更要求に応じてＲＯフラグを変更するとともに、必要に応じてＲＯフラグの変更に応じて論理ブロックのＡＰフラグを変更する際の手順を示すフローチャート。
【図９】図１に示すメモリコントローラの平滑化部および変換テーブル管理部により、ＡＰフラグが１かつＲＯフラグが０の論理ブロックに対する書換え処理の様子を示す状態遷移図。
【図１０】図１に示すメモリコントローラの平滑化部および変換テーブル管理部により、ＡＰフラグが１かつＲＯフラグが０の論理ブロックに対する書換え処理の手順を示すフローチャート。
【符号の説明】
【００９７】
１０  情報処理装置
１１  ＣＰＵ
１２  メインメモリ
２０  メモリシステム
２１  メモリコントローラ
２２  不揮発性メモリ
２３  変換テーブル
２４  ブロック
２５  ページ
２６  冗長領域
３１  変換テーブル管理部
３２  頻度フラグ設定部
３３  平滑化部
３４  フラグ判定部
３５  フラグ変更部
３６  変更後書換え回数判定部
３７  最多ブロック抽出部
３８  フリーブロック抽出部
３９  ブロック状態変更部
４０  データコピー部
【図１】
2009211152.tif 000003
【図２】
2009211152.tif 000004
【図３】
2009211152.tif 000005
【図４】
2009211152.tif 000006
【図５】
2009211152.tif 000007
【図６】
2009211152.tif 000008
【図７】
2009211152.tif 000009
【図８】
2009211152.tif 000010
【図９】
2009211152.tif 000011
【図１０】
2009211152.tif 000012