(57)【要約】【課題】  ウエアレベリングを効率良く、かつ、合理的に行う。【解決手段】  メモリ利用モジュール９００から送られた書き込み要求ＷＲＱを受けた場合に、アクセス制御部１５０が、現在時刻ＴＭＤ、書き込み対象の候補となったアクセス単位ブロックの現時点における検出エラービット数ＥＢＮ、並びに、不揮発性メモリ２００内の管理領域に記憶されている当該書き込み対象の候補となったアクセス単位ブロックに関する最新書込時刻、及び、最新の書き込み時における検出エラービット数を取得する。引き続き、アクセス制御部１５０は、これらの取得結果に基づいて、最新の書き込み時から現時点までの検出エラービット数の時間変化率を算出し、算出された時間変化率に基づいて、当該書き込み対象の候補となったアクセス単位ブロックが、不揮発性メモリ２００に関する消去回数の平準化のために利用できるか否かを判定する。【選択図】  図４
2012212312.tif 000002
【特許請求の範囲】
【請求項１】
エラー検出の単位となる第１記憶ブロックを複数有し、前記第１記憶ブロックの記憶データの書き換えに際しては、書き換え前の前記第１記憶ブロックにおける記憶データの消去後に、新たな記憶データが書き込まれる第１不揮発性メモリ部へのアクセスを制御するメモリ制御装置であって、
時刻を計時する計時部と；
前記第１不揮発性メモリ部から読み取られたデータのエラー検出を行ってエラービットの数を検出するエラー検出部と；
前記第１不揮発性メモリ部への書き込み要求を受けた場合に、書き込み対象の候補となった第１記憶ブロックに関する最新の書き込み時刻と、最新の書き込み時における検出エラービット数と、現在時刻と、現時点における検出エラービット数とから算出された前記最新の書き込み時から現時点までの検出エラービット数の時間変化率に基づいて、前記書き込み対象の候補となった第１記憶ブロックが、前記第１不揮発性メモリ部に関する消去回数の平準化のために利用できるか否かの第１書き込み判定を行うアクセス制御部と；
を備えることを特徴とするメモリ制御装置。
【請求項２】
前記記憶データの消去の単位となる消去単位記憶ブロックは、少なくとも１つの前記第１記憶ブロックを含む、ことを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
外部からの論理アドレスを指定した前記第１不揮発性メモリ部へのアクセス要求があった場合に、前記論理アドレスを前記第１不揮発性メモリ部の物理アドレスに変換するアドレス変換部を更に備え、
前記アクセス制御部は、前記書き込み要求に対応して前記第１書き込み判定の結果が肯定的となった第１記憶ブロックの物理アドレスに、前記論理アドレスが変換される設定を前記アドレス変換部に対して行う、
ことを特徴とする請求項１又は２に記載のメモリ制御装置。
【請求項４】
前記算出された時間変化率が、前記書き込み対象の候補となった第１記憶ブロックの消去回数に対応して定められたエラービット数の時間変化率以上であった場合に、前記アクセス制御部は、前記書き込み対象の候補となった第１記憶ブロックが、前記第１不揮発性メモリ部に関する消去回数の平準化のために利用できないと判定する、ことを特徴とする請求項１〜３のいずれか一項に記載のメモリ制御装置。
【請求項５】
前記算出された時間変化率と、前記現時点における検出エラービット数とから算出される、エラー訂正機能における訂正限界を超えるまでの現時点からの時間長が、前記書き込み対象の候補となった第１記憶ブロックの消去回数に対応して定められた時間長以下である場合に、前記アクセス制御部は、前記書き込み対象の候補となった第１記憶ブロックが、前記第１不揮発性メモリ部に関する消去回数の平準化のために利用できないと判定する、ことを特徴とする請求項１〜３のいずれか一項に記載のメモリ制御装置。
【請求項６】
前記アクセス制御部は、前記第１不揮発性メモリ部における前記第１記憶ブロックごとの最新の書き込み時刻、及び、最新の書き込み時における検出エラービット数を関連付けて、第２不揮発性メモリ部に記憶させる、ことを特徴とする請求項１〜５のいずれか一項に記載のメモリ制御装置。
【請求項７】
前記第２不揮発性メモリ部は、エラー検出の単位となる第２記憶ブロックを複数有し、前記第２記憶ブロックの記憶データの書き換えに際しては、書き換え前の前記第２記憶ブロックにおける記憶データの消去後に、新たな記憶データが書き込まれる不揮発性メモリ部であり、
前記第２不揮発性メモリ部には、更に、前記第２記憶ブロックごとの消去回数、最新の書き込み時刻、及び、最新の書き込み時における検出エラービット数が関連付けて記憶され、
前記エラー検出部は、前記第２不揮発性メモリ部から読み取られたデータについても、エラー検出を行ってエラービットの数を検出し、
前記アクセス制御部は、前記第２不揮発性メモリ部へデータ書き込みをしようとする場合に、書き込み対象の候補となった第２記憶ブロックに関する最新の書き込み時刻と、最新の書き込み時における検出エラービット数と、現在時刻と、現時点における検出エラービット数とから算出された前記最新の書き込み時から現時点までの検出エラービット数の時間変化率に基づいて、前記書き込み対象の候補となった第２記憶ブロックが、前記第２不揮発性メモリ部に関する消去回数の平準化のために利用できるか否かの第２書き込み判定を更に行う、
ことを特徴とする請求項６に記載のメモリ制御装置。
【請求項８】
エラー検出の単位となる記憶ブロックを複数有し、前記記憶ブロックの記憶データの書き換えに際しては、書き換え前の前記記憶ブロックにおける記憶データの消去後に、新たな記憶データが書き込まれる不揮発性メモリ部へのアクセスを制御するメモリ制御方法であって、
前記不揮発性メモリ部への書き込み要求を受けた場合に、現在時刻と、書き込み対象の候補となった記憶ブロックの現時点における検出エラービット数とを取得する第１取得工程と；
前記書き込み対象の候補となった記憶ブロックに関する最新の書き込み時刻と、最新の書き込み時における検出エラービット数とを取得する第２取得工程と；
前記第１取得工程における取得結果及び前記第２取得工程における取得結果に基づいて、前記最新の書き込み時から現時点までの検出エラービット数の時間変化率を算出する算出工程と；
前記算出工程における算出結果に基づいて、前記書き込み対象の候補となった記憶ブロックが、前記不揮発性メモリ部に関する消去回数の平準化のために利用できるか否かの書き込み判定を行う書き込み判定工程と；
を備えることを特徴とするメモリ制御方法。
【請求項９】
請求項８に記載のメモリ制御方法を演算手段に実行させる、ことを特徴とするメモリ制御プログラム。
【請求項１０】
請求項９に記載のメモリ制御プログラムが、演算手段により読み取り可能に記録されている、ことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置、メモリ制御方法及びメモリ制御プログラム、並びに、当該メモリ制御プログラムが記録された記録媒体に関する。
【背景技術】
【０００２】
従来から、書き換え可能な不揮発性メモリ素子であるフラッシュメモリ素子を採用したメモリシステムが注目されている。こうしたフラッシュメモリ素子は、電荷保持技術としてフローティングゲート技術を用いるものが一般的である。
【０００３】
かかるフローティングゲート技術を用いるフラッシュメモリ素子は、データの書き換えのためには、当該書き換えの対象となる記憶ブロックの記憶内容を消去することが必要となるが、当該消去を繰り返すと、徐々にフローティングゲートの電荷保持機能が劣化する。このため、フローティングゲート技術を用いるフラッシュメモリ素子を用いるメモリシステムでは、メモリシステム全体として寿命を確保するため、記憶ブロックそれぞれの消去回数（すなわち、書き換え回数）の平準化（ウエアレベリング）を行うことが、広く行われている。
【０００４】
ところで、フラッシュメモリ素子におけるフローティングゲートの品質は一様ではないため、消去動作による記憶ブロックのフローティングゲートの劣化の度合いが一様ではない。このため、書き込み対象となった記憶ブロックの関する消去回数に加えて、当該記憶ブロックに記憶されているデータにおけるエラービット数を考慮して、当該書き込み対象となった記憶ブロックに新たなデータを書き込むか否かを判定する技術が提案されている（特許文献１参照：以下、「従来例」という）。この従来例の技術では、エラービット数が所定数以上となっている記憶ブロックのデータ消去及び新たなデータの書き込みを見合わせるようになっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−７０３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した従来例の技術では、エラービット数が所定数以上となっている記憶ブロックについては、一律にデータ消去及び新たなデータの書き込みを見合わせる。このため、ビットエラーの発生が、フローティングゲートの電荷保持機能の劣化に伴うものではなく、例えば、フラッシュメモリ素子の製造時における異物の混入に起因する場合であっても、エラービット数が所定数以上となっている記憶ブロックについては、データ消去及び新たなデータの書き込みを見合わせる。
【０００７】
この結果、フローティングゲートの電荷保持機能が良好であり、かつ、エラー訂正機能によりエラー訂正が可能な数のエラービットが発生するのみである記憶ブロックであっても、エラービット数が所定数以上となっている記憶ブロックについては、データ消去及び新たなデータの書き込みが見合わされることになる。この結果、ウエアレベリングに貢献できる記憶ブロックであってもウエアレベリングに利用されず、メモリシステム全体として本来確保できるはずの寿命を確保できない事態が発生していた。
【０００８】
このため、ウエアレベリングに貢献できる記憶ブロックを、効率的にウエアレベリングに利用できる技術が待望されている。かかる要請に応えることが、本発明が解決すべき課題の一つとして挙げられる。
【０００９】
本発明は、上記の事情に鑑みてなされたものであり、ウエアレベリングを効率良く、かつ、合理的に行うことにより、メモリシステム全体の寿命を有効に確保することができるメモリ制御装置及びメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
請求項１に記載の発明は、エラー検出の単位となる第１記憶ブロックを複数有し、前記第１記憶ブロックの記憶データの書き換えに際しては、書き換え前の前記第１記憶ブロックにおける記憶データの消去後に、新たな記憶データが書き込まれる第１不揮発性メモリ部へのアクセスを制御するメモリ制御装置であって、時刻を計時する計時部と；前記第１不揮発性メモリ部から読み取られたデータのエラー検出を行ってエラービットの数を検出するエラー検出部と；前記第１不揮発性メモリ部への書き込み要求を受けた場合に、書き込み対象の候補となった第１記憶ブロックに関する最新の書き込み時刻と、最新の書き込み時における検出エラービット数と、現在時刻と、現時点における検出エラービット数とから算出された前記最新の書き込み時から現時点までの検出エラービット数の時間変化率に基づいて、前記書き込み対象の候補となった第１記憶ブロックが、前記第１不揮発性メモリ部に関する消去回数の平準化のために利用できるか否かの第１書き込み判定を行うアクセス制御部と；を備えることを特徴とするメモリ制御装置である。
【００１１】
請求項８に記載の発明は、エラー検出の単位となる記憶ブロックを複数有し、前記記憶ブロックの記憶データの書き換えに際しては、書き換え前の前記記憶ブロックにおける記憶データの消去後に、新たな記憶データが書き込まれる不揮発性メモリ部へのアクセスを制御するメモリ制御方法であって、前記不揮発性メモリ部への書き込み要求を受けた場合に、現在時刻と、書き込み対象の候補となった記憶ブロックの現時点における検出エラービット数とを取得する第１取得工程と；前記書き込み対象の候補となった記憶ブロックに関する最新の書き込み時刻と、最新の書き込み時における検出エラービット数とを取得する第２取得工程と；前記第１取得工程における取得結果及び前記第２取得工程における取得結果に基づいて、前記最新の書き込み時から現時点までの検出エラービット数の時間変化率を算出する算出工程と；前記算出工程における算出結果に基づいて、前記書き込み対象の候補となった記憶ブロックが、前記不揮発性メモリ部に関する消去回数の平準化のために利用できるか否かの書き込み判定を行う書き込み判定工程と；を備えることを特徴とするメモリ制御方法である。
【００１２】
請求項９に記載の発明は、請求項８に記載のメモリ制御方法を演算手段に実行させる、ことを特徴とするメモリ制御プログラムである。
【００１３】
請求項１０に記載の発明は、請求項９に記載のメモリ制御プログラムが、演算手段により読み取り可能に記録されている、ことを特徴とする記録媒体である。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係るメモリ制御装置の位置付けを説明するためのブロック図である。
【図２】図１の不揮発性メモリの内部構成を説明するための図である。
【図３】図１の不揮発性メモリにおける管理領域に記憶される管理情報の内容を説明するための図である。
【図４】図１のメモリコントローラの構成を説明するためのブロック図である。
【図５】図４のアクセス制御部によりメモリ書込要求に応答して行われる処理を説明するためのフローチャートである。
【図６】図５の選定ブロックの評価処理を説明するためのフローチャートである。
【図７】図５の書き込み制御処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の一実施形態を、図１〜図７を参照して説明する。なお、以下の説明及び図面においては、同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【００１６】
図１には、本発明の一実施形態に係るメモリ制御装置を備える不揮発性メモリモジュール５００の構成が、ブロック図にて示されている。この図１に示されるように、不揮発性メモリモジュール５００には、メモリ利用モジュール９００がアクセス可能となっている。すなわち、メモリ利用モジュール９００は、不揮発性メモリモジュール５００からのデータの読み取り、及び、不揮発性メモリモジュール５００へのデータの書き込みができるようになっている。
【００１７】
かかる不揮発性メモリモジュール５００からのデータの読み取りに際して、メモリ利用モジュール９００は、論理アドレスＡＤＬを指定して、読み取り要求ＲＤＱを不揮発性メモリモジュール５００へ送る。この結果として、不揮発性メモリモジュール５００における論理アドレスＡＤＬに対応するメモリアドレスに記憶されているデータが、データバスＤＲＷを介して、不揮発性メモリモジュール５００からメモリ利用モジュール９００へ送られる。
【００１８】
また、不揮発性メモリモジュール５００へのデータの書き込みに際して、メモリ利用モジュール９００は、論理アドレスＡＤＬを指定するとともに、書き込もうとしているデータをデータバスＤＲＷに出力しつつ、書き込み要求ＷＲＱを不揮発性メモリモジュール５００へ送る。この結果として、不揮発性メモリモジュール５００における論理アドレスＡＤＬに対応するメモリアドレスに、メモリ利用モジュール９００が指定したデータが書き込まれる。
【００１９】
上記の不揮発性メモリモジュール５００は、メモリ制御装置としてのメモリコントローラ１００と、不揮発性メモリ２００とを備えている。
【００２０】
上記のメモリコントローラ１００は、メモリ利用モジュール９００と不揮発性メモリ２００との間に位置し、メモリ利用モジュール９００によるアクセス要求に対応して必要となる不揮発性メモリ２００へのアクセスを実行する。かかるメモリコントローラ１００の構成については、後述する。
【００２１】
上記の不揮発性メモリ２００は、複数の不揮発性メモリ素子を備える。本実施形態では、当該不揮発性メモリ素子として、ＮＡＮＤ型フラッシュメモリ素子を採用している。
【００２２】
不揮発性メモリ２００内には、第２不揮発性メモリ部としての管理領域２１０と、第１不揮発性メモリ部としての外部アクセス領域２２０とが用意されている。ここで、管理領域２１０内には、管理情報ＭＧＩが記憶される。
【００２３】
上記の管理領域２１０は、メモリコントローラ１００が独自にアクセスする領域である。メモリコントローラ１００は、管理情報ＭＧＩの更新に際して、管理領域２１０にアクセスする。メモリコントローラ１００により更新される管理情報ＭＧＩの内容については、後述する。
【００２４】
上記の外部アクセス領域２２０は、メモリ利用モジュール９００が、メモリコントローラ１００を介してアクセスする領域である。メモリコントローラ１００は、メモリ利用モジュール９００からのアクセス要求の内容に基づいて、外部アクセス領域２２０からのデータの読み取り、及び、外部アクセス領域２２０へのデータの書き込みを行う。
【００２５】
次に、上記の不揮発性メモリ２００の内部構成について説明する。不揮発性メモリ２００は、図２に示されるように、消去単位ブロック＃１〜＃Ｎから構成されている。こうした消去単位ブロックごとに、メモリコントローラ１００が、記憶内容を消去できるようになっている。
【００２６】
なお、本実施形態では、上述した管理領域２１０は、消去単位ブロック＃１〜＃Ｍから構成されている。また、上述した外部アクセス領域２２０は、消去単位ブロック＃（Ｍ＋１）〜＃Ｎから構成されている。
【００２７】
消去単位ブロック＃ｊ（ｊ＝１〜Ｎ）のそれぞれは、アクセス単位ブロック＃ｊ1〜＃ｊPから構成されている。こうしたアクセス単位ブロックごとに、メモリコントローラ１００が、記憶内容のアクセスを行い、エラー検出訂正（ＥＣＣ）を行うようになっている。
【００２８】
なお、アクセス単位ブロック＃ｑ1〜＃ｑP（ｑ＝１〜Ｍ）のそれぞれが第２記憶ブロックに該当している。また、アクセス単位ブロック＃ｒ1〜＃ｒP（ｒ＝（Ｍ＋１）〜Ｎ）のそれぞれが第１記憶ブロックに該当している。
【００２９】
次いで、上述した管理情報ＭＧＩの内容について説明する。この管理情報ＭＧＩでは、図３に示されるように、消去単位ブロック＃ｊ（ｊ＝１〜Ｎ）と、消去回数ＥＳＮj及び書き込みに関する見合わせフラグＦＬＧjとが関連付けられて登録されている。
【００３０】
ここで、「消去回数ＥＳＮj」は、消去単位ブロック＃ｊ（ｊ＝１〜Ｎ）の記憶内容の消去回数を示す。また、「見合わせフラグＦＬＧj」は、消去単位ブロック＃ｊが、消去回数の平準化（ウエアレベリング）に利用可能であると評価できるか否かを示すフラグである。
【００３１】
なお、見合わせフラグＦＬＧjが「ＯＮ」である場合には、消去単位ブロック＃ｊが、ウエアレベリングに利用可能であると評価できないことを示している。一方、見合わせフラグＦＬＧjが「ＯＦＦ」である場合には、消去単位ブロック＃ｊが、ウエアレベリングに利用可能であると評価できることを示している。
【００３２】
また、管理情報ＭＧＩでは、消去単位ブロック＃ｊに含まれるアクセス単位ブロック＃ｊk（ｋ＝１〜Ｐ）と、エラービット数ＥＢＮjk及び最新書込時刻ＴＷjkとが関連付けられて登録されている。ここで、「エラービット数ＥＢＮjk」は、アクセス単位ブロック＃ｊkへの最新書込の直後において検出されたエラービット数を示している。また、「最新書込時刻ＴＷjk」は、アクセス単位ブロック＃ｊkへの最新書込の時刻を示している。
【００３３】
なお、メモリコントローラ１００は、消去回数ＥＳＮj、見合わせフラグＦＬＧj、エラービット数ＥＢＮjk及び最新書込時刻ＴＷjkを更新するようになっている。また、不揮発性メモリモジュール５００の利用開始時においては、消去回数ＥＳＮjが「０」、見合わせフラグＦＬＧjが「ＯＦＦ」、エラービット数ＥＢＮjkが「０」、最新書込時刻ＴＷjkが時刻として意味をなさない「初期値」に設定されているものとする。
【００３４】
次に、上記のメモリコントローラ１００の構成について説明する。このメモリコントローラ１００は、図４に示されるように、アドレス変換部１１０と、選択部１２０と、エラー検出部としてのＥＣＣ部１３０とを備えている。また、メモリコントローラ１００は、計時部１４０と、アクセス制御部１５０とを備えている。
【００３５】
上記のアドレス変換部１１０は、メモリ利用モジュール９００から送られた論理アドレスＡＤＬを受ける。そして、アドレス変換部１１０は、アクセス制御部１５０から送られたアドレス変換情報ＡＣＤに従って、論理アドレスＡＤＬを物理アドレスＡＤＰに変換する。かかる変換により生成された物理アドレスＡＤＰは、選択部１２０へ送られる。
【００３６】
上記の選択部１２０は、アクセス制御部１５０による選択指定ＳＬＣに従って、アドレス変換部１１０から送られた物理アドレスＡＤＰ、及び、アクセス制御部１５０から送られた管理アドレスＣＡＤのいずれかを選択し、メモリアドレスＭＡＤとして不揮発性メモリ２００へ送る。また、選択部１２０は、アクセス制御部１５０による選択指定ＳＬＣに従って、メモリ利用モジュール９００に接続されるデータバスＤＲＷ、及び、アクセス制御部１５０に接続されるデータバスＣＤＴのいずれかを選択し、ＥＣＣ部１３０に接続される選択部側データバスＡＤＴ（以下、「データバスＡＤＴ」と呼ぶ）と接続する。
【００３７】
ここで、「選択指定ＳＬＣ」では、アクセス主体が、メモリ利用モジュール９００であるか、アクセス制御部１５０であるかが指定される。そして、「選択指定ＳＬＣ」により、アクセス主体としてメモリ利用モジュール９００が指定された場合には、選択部１２０は、物理アドレスＡＤＰを、メモリアドレスＭＡＤとして不揮発性メモリ２００へ送るとともに、データバスＤＲＷをデータバスＡＤＴに接続する。一方、「選択指定ＳＬＣ」により、アクセス主体としてアクセス制御部１５０が指定された場合には、選択部１２０は、管理アドレスＣＡＤをメモリアドレスＭＡＤとして不揮発性メモリ２００へ送るとともにデータバスＣＤＴをデータバスＡＤＴに接続する。
【００３８】
上記のＥＣＣ部１３０は、アクセス制御部１５０によるデータ方向指定ＲＷＣに従って、エラー検出訂正用のＥＣＣコード生成動作、又は、エラー検出訂正動作を行う。ここで、「データ方向指定ＲＷＣ」では、データ方向が、データバスＡＤＴから不揮発性メモリ２００と接続されるデータバスＭＤＴへ向かう書き込み方向か、データバスＭＤＴからデータバスＡＤＴへ向かう読み取り方向かが指定される。
【００３９】
そして、「データ方向指定ＲＷＣ」により書き込み方向が指定された場合には、ＥＣＣ部１３０は、データバスＡＤＴに出力されているデータに関するＥＣＣコードを生成する。そして、ＥＣＣ部１３０は、データバスＡＤＴに出力されているデータに当該生成されたＥＣＣコードが付加されたデータを、データバスＭＤＴを介して、不揮発性メモリ２００へ送る。
【００４０】
一方、「データ方向指定ＲＷＣ」により読み取り方向が指定された場合には、ＥＣＣ部１３０は、不揮発性メモリ２００からデータバスＭＤＴに出力されているデータに対するにエラー検出訂正を行う。そして、ＥＣＣ部１３０は、エラー訂正の結果を、データバスＡＤＴへ出力する。また、ＥＣＣ部１３０は、検出されたエラービット数（検出エラービット数）ＥＢＮを、アクセス制御部１５０へ送る。
【００４１】
上記の計時部１４０は、タイマー素子を備えている。この計時部１４０は、現在時刻を計時する。計時部による計時結果（現在時刻）ＴＭＤが、アクセス制御部１５０へ送られる。
【００４２】
上記のアクセス制御部１５０は、メモリコントローラ１００の全体を統括制御することにより、不揮発性メモリ２００へのアクセスを制御する。
【００４３】
アクセス制御部１５０は、メモリ利用モジュール９００から送られた読み取り要求ＲＤＱを受けた場合には、メモリ利用モジュール９００が指定した論理アドレスに対応する不揮発性メモリ２００におけるメモリアドレスＭＡＤを、不揮発性メモリ２００へ送るための制御を行う。また、アクセス制御部１５０は、当該メモリアドレスＭＡＤに記憶されたデータのうちでＥＣＣコードを除いたもののエラー訂正結果をデータバスＤＲＷに出力するための制御を、読み取り指定ＭＲＤを不揮発性メモリ２００へ送ることを含めて行う。
【００４４】
また、アクセス制御部１５０は、メモリ利用モジュール９００から送られた書き込み要求ＷＲＱを受けた場合には、消去回数に関するウエアレベリングを図りつつ、メモリ利用モジュール９００が指定した論理アドレスに対応する不揮発性メモリ２００におけるメモリアドレスＭＡＤを、不揮発性メモリ２００へ送るための制御を行う。また、アクセス制御部１５０は、メモリ利用モジュール９００がデータバスＤＲＷに出力しているデータにＥＣＣコードが付加されたデータを、データバスＭＤＴを介して不揮発性メモリ２００へ送るための制御を行う。そして、アクセス制御部１５０は、書き込み指定ＭＷＴを不揮発性メモリ２００へ送ることにより、メモリ利用モジュール９００が指定したデータを、不揮発性メモリ２００に書き込む。
【００４５】
また、アクセス制御部１５０は、不揮発性メモリ２００における記憶データの書き換えのために、それまでの記憶データの消去が必要となった場合には、消去対象の消去単位ブロックを指定した消去指定ＥＲＳを、不揮発性メモリ２００へ送る。この結果、消去対象の消去単位ブロックに記憶されていたデータが消去される。
【００４６】
また、アクセス制御部１５０は、ＥＣＣ部１３０により訂正可能な最大エラービット数ＥＢＭを内部に保持している。さらに、アクセス制御部１５０は、消去回数（ＥＳＮ）ごとに、アクセス単位ブロックのデータ保持時間の閾値時間ＴTH（ＥＳＮ）を内部に保持している。
【００４７】
かかる「閾値時間ＴTH（ＥＳＮ）」は、フローティングゲートの形成がデータ保持時間の観点から見て適切に行われた場合に最低限期待できる消去回数に対応したデータ保持時間とするとの観点から、実験、シミュレーション、経験等に基づいて、予め定められる。
【００４８】
なお、アクセス制御部１５０による処理の詳細については、後述する。
【００４９】
［動作］
次に、上記のように構成されたメモリコントローラ１００の動作について、メモリ利用モジュール９００から送られた書き込み要求ＷＲＱを受けた場合のアクセス制御部１５０の処理に主に着目して、説明する。なお、計時部１４０は計時動作を開始しており、計時結果である現在時刻ＴＭＤをアクセス制御部１５０へ逐次送っているものとする。
【００５０】
メモリコントローラ１００は、メモリ利用モジュール９００から送られた読み取り要求ＲＤＱ又は書き込み要求ＷＲＱに応答して動作する。
【００５１】
＜読み取り要求ＲＤＱに対する応答処理＞
不揮発性メモリ２００からのデータの読み取りに際しては、メモリ利用モジュール９００が、論理アドレスＡＤＬを指定して、読み取り要求ＲＤＱを不揮発性メモリモジュール５００へ送る。不揮発性メモリモジュール５００では、メモリコントローラ１００におけるアクセス制御部１５０が、当該読み取り要求ＲＤＱを受けて、読み取り制御処理を実行する。
【００５２】
かかる読み取り制御処理では、アクセス制御部１５０が、まず、メモリ利用モジュール９００から送られた読み取り要求ＲＤＱを受けたか否かを判定する。読み取り要求ＲＤＱを受けたことにより、当該判定の結果が肯定的となると、アクセス制御部１５０は、アクセス主体がメモリ利用モジュール９００である旨を指定した選択指定ＳＬＣを選択部１２０へ送る。この結果、メモリ利用モジュール９００により指定された論理アドレスＡＤＬに対するアドレス変換部１１０による変換結果である物理アドレスＡＤＰが、選択部１２０を介して、メモリアドレスＭＡＤとして不揮発性メモリ２００へ送られる。
【００５３】
次に、アクセス制御部１５０は、読み取り方向を指定したデータ方向指定ＲＷＣをＥＣＣ部１３０へ送るとともに、読み取り指定ＭＲＤを不揮発性メモリ２００へ送る。この結果、不揮発性メモリ２００内の外部アクセス領域２２０におけるメモリアドレスＭＡＤに記憶されているデータが、データバスＭＤＴを介して、ＥＣＣ部１３０へ送られる。
【００５４】
次いで、ＥＣＣ部１３０が、不揮発性メモリ２００から送られたデータのエラー検出訂正を行う。そして、ＥＣＣ部１３０は、エラー訂正結果のデータを、データバスＡＤＴに出力する。この結果、当該エラー訂正結果のデータが、選択部１２０及びデータバスＤＲＷを介して、メモリ利用モジュール９００へ送られる。
【００５５】
＜書き込み要求ＷＲＱに対する応答処理＞
不揮発性メモリ２００へのデータの書き込みに際しては、メモリ利用モジュール９００が、論理アドレスＡＤＬを指定するとともに、書き込もうとしているデータをデータバスＤＲＷに出力しつつ、書き込み要求ＷＲＱを不揮発性メモリモジュール５００へ送る。不揮発性メモリモジュール５００では、メモリコントローラ１００におけるアクセス制御部１５０が、当該書き込み要求ＷＲＱを受けて、書き込み制御処理を実行する。
【００５６】
かかる書き込み制御処理では、図５に示されるように、まず、ステップＳ１１において、アクセス制御部１５０が、メモリ利用モジュール９００から送られた書き込み要求ＷＲＱを受けたか否かを判定する。この判定の結果が否定的であった場合（ステップＳ１１：Ｎ）には、ステップＳ１１の処理が繰り返される。
【００５７】
書き込み要求ＷＲＱを受けて、ステップＳ１１における判定の結果が肯定的となると（ステップＳ１１：Ｙ）、処理はステップＳ１２へ進む。このステップＳ１２では、アクセス制御部１５０が、今回の書き込み要求ＷＲＱに対応したデータ書き込みを行うための書き込み候補ブロックを、不揮発性メモリ２００内の外部アクセス領域２２０に含まれるアクセス単位ブロック＃ｒk（ｒ＝（Ｍ＋１）〜Ｎ，ｋ＝１〜Ｐ）の中から選定する。かかる書き込み候補ブロックの選定は、消去に関するウエアレベリングを行うとの観点から定められた所定の書き込み順序決定アルゴリズムに従い、前回の書き込み要求ＷＲＱに応じた書き込みが行われたアクセス単位ブロックに基づいて、行われる。
【００５８】
次に、ステップＳ１３において、アクセス制御部１５０が、選定された書き込み候補ブロック（以下、「選定ブロック」と呼ぶ）について、書込利用に関する評価を行う。なお、ステップＳ１３における処理の詳細については、後述する。
【００５９】
次いで、ステップＳ１４において、アクセス制御部１５０は、選定ブロックが書込利用可と評価されたか否かを判定する。この判定の結果が否定的であった場合（ステップＳ１４：Ｎ）には、アクセス制御部１５０は、当該選定ブロックが属する消去単位ブロックの見合わせフラグＦＬＧrを「ＯＮ」に設定した後に、処理をステップＳ１５へ進める。
【００６０】
なお、当該選定ブロックが属する消去単位ブロックの見合わせフラグＦＬＧrを「ＯＮ」に設定する管理情報ＭＧＩの更新に際してのアクセス制御部１５０の処理については、後述する。
【００６１】
ステップＳ１５では、アクセス制御部１５０が、次の書き込み候補ブロックを、アクセス単位ブロック＃ｒk（ｒ＝（Ｍ＋１）〜Ｎ，ｋ＝１〜Ｐ）の中から選定する。かかる次の書き込み候補ブロックの選定は、上述した所定の書き込み順序決定アルゴリズムに従い、前回の書き込み候補ブロックに基づいて、行われる。
【００６２】
ステップＳ１５における次の書き込み候補ブロックの選定が終了すると、処理はステップＳ１３へ戻る。そして、書込利用可と評価された書き込み候補ブロックが見出されるまで、上述のステップＳ１３〜Ｓ１５の処理が繰り返される。
【００６３】
書込利用可と評価された書き込み候補ブロックが見出されて、ステップＳ１４における判定の結果が肯定的となると（ステップＳ１４：Ｙ）、処理はステップＳ１６へ進む。このステップＳ１６では、アクセス制御部１５０が、書き込み制御処理を行う。この結果、メモリ利用モジュール９００が指定したデータ、すなわち、メモリ利用モジュール９００がデータバスＤＲＷに出力したデータが、不揮発性メモリ２００に書き込まれる。
【００６４】
なお、ステップＳ１６における処理の詳細については、後述する。
【００６５】
ステップＳ１６における書き込み制御処理が終了すると、処理はステップＳ１１へ戻る。以後、ステップＳ１１〜Ｓ１６の処理が繰り返されて、メモリ利用モジュール９００が書き込み要求ＷＲＱを発行するたびに、メモリ利用モジュール９００により指定されたデータが、不揮発性メモリ２００に書き込まれる。
【００６６】
次に、ステップＳ１３における選定ブロックの評価処理について説明する。なお、以下の説明においては、選定ブロックが、アクセス単位ブロック＃ｒkであるものとして、説明する。
【００６７】
かかる選定ブロックの評価処理に際しては、図６に示されるように、まず、ステップＳ２１において、アクセス制御部１５０が、選定ブロックに関連して管理情報ＭＧＩに登録されている情報を読み取る。ここで、読み取られる情報は、消去回数ＥＳＮr、見合わせフラグＦＬＧr、エラービット数ＥＢＮrk及び最新書込時刻ＴＷrkである。
【００６８】
かかる読み取りに際して、アクセス制御部１５０は、まず、アクセス主体がアクセス制御部１５０である旨を指定した選択指定ＳＬＣを選択部１２０へ送るとともに、読み取り情報が記憶されているメモリアドレスを、管理アドレスＣＡＤとして出力する。次に、アクセス制御部１５０は、読み取り方向を指定したデータ方向指定ＲＷＣをＥＣＣ部１３０へ送るとともに、読み取り指定ＭＲＤを不揮発性メモリ２００へ送る。この結果、不揮発性メモリ２００内の管理領域２１０における指定メモリアドレスに記憶されているデータが、データバスＭＤＴを介して、ＥＣＣ部１３０へ送られる。
【００６９】
次いで、ＥＣＣ部１３０が、不揮発性メモリ２００から送られたデータのエラー検出訂正を行う。そして、ＥＣＣ部１３０は、エラー訂正結果のデータを、データバスＡＤＴに出力する。この結果、当該エラー訂正結果のデータが、選択部１２０及びデータバスＣＤＴを介して、アクセス制御部１５０へ送られる。こうした読み取り処理を、必要回数行うことにより、アクセス制御部１５０は、選定ブロックに関連して管理情報ＭＧＩに登録されている情報を読み取る。
【００７０】
引き続き、ステップＳ２２において、アクセス制御部１５０が、見合わせフラグＦＬＧrが「ＯＮ」であるか否かを判定する。この判定の結果が肯定的であった場合（ステップＳ２２：Ｙ）には、処理は、後述するステップＳ２８へ進む。
【００７１】
ステップＳ２２における判定の結果が否定的であった場合（ステップＳ２２：Ｎ）には、処理はステップＳ２３へ進む。このステップＳ２３では、アクセス制御部１５０が、最新書込時刻ＴＷrkが書き込まれているか否かを判定する。この判定の結果が否定的であった場合（ステップＳ２３：Ｎ）には、処理は、後述するステップＳ２７へ進む。
【００７２】
ステップＳ２３における判定の結果が肯定的であった場合（ステップＳ２３：Ｙ）には、処理はステップＳ２４へ進む。このステップＳ２４では、アクセス制御部１５０が、最新書込時刻ＴＷrkから現時点までの選択ブロックにおけるエラービット数の時間変化率ＲＥＢを算出する。
【００７３】
かかる時間変化率ＲＥＢの算出に際して、アクセス制御部１５０は、まず、計時部１４０から送られている現在時刻ＴＭＤを取得する。引き続き、アクセス制御部１５０は、選択ブロックにおける現時点におけるエラービット数ＥＢＮを取得する。
【００７４】
かかるエラービット数ＥＢＮの取得に際して、アクセス制御部１５０は、まず、アクセス主体がアクセス制御部１５０である旨を指定した選択指定ＳＬＣを選択部１２０へ送るとともに、選択ブロックに対応するメモリアドレスを、管理アドレスＣＡＤとして出力する。次に、アクセス制御部１５０は、読み取り方向を指定したデータ方向指定ＲＷＣをＥＣＣ部１３０へ送るとともに、読み取り指定ＭＲＤを不揮発性メモリ２００へ送る。この結果、不揮発性メモリ２００内の管理領域２１０における選択ブロックに記憶されているデータが、データバスＭＤＴを介して、ＥＣＣ部１３０へ送られる。
【００７５】
次いで、ＥＣＣ部１３０が、不揮発性メモリ２００から送られたデータのエラー検出訂正を行う。そして、ＥＣＣ部１３０は、エラー訂正結果のデータを、データバスＡＤＴに出力する。この結果、当該エラー訂正結果のデータが、選択部１２０及びデータバスＣＤＴを介して、アクセス制御部１５０へ送られるとともに、検出されたエラービット数ＥＢＮが、アクセス制御部１５０へ送られる。こうしてＥＣＣ部１３０から送られたエラービット数ＥＢＮを、アクセス制御部１５０は、現時点におけるエラービット数ＥＢＮとして取得する。
【００７６】
次に、アクセス制御部１５０は、現時点のエラービット数ＥＢＮ、最新書込時のエラービット数ＥＢＮrk、現在時刻ＴＭＤ、及び、最新書込時刻ＴＷrkに基づいて、次の（１）式により、時間変化率ＲＥＢを算出する。
ＲＥＢ＝（ＥＢＮ−ＥＢＮrk）／（ＴＭＤ−ＴＷrk）        …（１）
【００７７】
こうして、ステップＳ２４において時間変化率ＲＥＢが算出されると、処理はステップＳ２５へ進む。このステップＳ２５では、アクセス制御部１５０が、内部に保持している訂正可能な最大エラービット数ＥＢＭ、現時点のエラービット数ＥＢＮ、及び、算出された時間変化率ＲＥＢに基づいて、次の（２）式により、今後における推定データ保持可能時間ＴDHを算出する。
ＴDH＝（ＥＢＭ−ＥＢＮ）／ＲＥＢ                        …（２）
【００７８】
次いで、ステップＳ２６において、推定データ保持可能時間ＴDHが、内部に保持している閾値時間ＴTH（ＥＳＮr）以上であるか否かを、アクセス制御部１５０が判定する。この判定の結果が肯定的であった場合（ステップＳ２６：Ｙ）には、処理はステップＳ２７へ進む。
【００７９】
ステップＳ２７では、アクセス制御部１５０が、選択ブロックが書込利用可であると評価する。そして、ステップＳ１３の処理が終了し、処理は、上述したステップＳ１４へ進む。
【００８０】
一方、ステップＳ２６における判定の結果が否定的であった場合（ステップＳ２６：Ｎ）には、処理はステップＳ２８へ進む。このステップＳ２８では、アクセス制御部１５０が、選択ブロックが書込利用不可であると評価する。そして、ステップＳ１３の処理が終了し、処理は、上述したステップＳ１４へ進む。
【００８１】
次に、上述したステップＳ１６における書き込み制御処理について説明する。かかる書き込み制御処理に際しては、図７に示されるように、まず、ステップＳ３１において、アクセス制御部１５０が、選択ブロックへのデータ書き込みに際して消去が必要か否かを判定する。かかる判定に際して、アクセス制御部１５０は、上述したステップＳ２３における判定の結果が否定的であったこと（ステップＳ２３：Ｎ（図６参照））に対応して、ステップＳ１６が開始された場合には、アクセス制御部１５０は、否定的な判定を行う。一方、上述したステップＳ２３における判定の結果が肯定的であったこと（ステップＳ２３：Ｙ（図６参照））に対応して、ステップＳ１６が開始された場合には、アクセス制御部１５０は、肯定的な判定を行う。
【００８２】
ステップＳ３１における判定の結果が否定的であった場合（ステップＳ３１：Ｎ）には、処理は、後述するステップＳ３３へ進む。一方、ステップＳ３１における判定の結果が肯定的であった場合（ステップＳ３１：Ｙ）には、処理はステップＳ３２へ進む。
【００８３】
ステップＳ３２では、アクセス制御部１５０が、選定ブロックが含まれる消去単位ブロックの消去処理を行う。かかる消去処理に際して、アクセス制御部１５０は、まず、当該消去単位ブロックにおける記憶データを読み取る。この読み取りは、アクセス制御部１５０が、上述したステップＳ２４におけるエラービット数ＥＢＮの取得の場合の動作と同様の動作を必要回数行うことにより、実行される。
【００８４】
次に、アクセス制御部１５０は、当該消去単位ブロックを指定した消去指定ＥＲＳを、不揮発性メモリ２００へ送る。この結果、当該消去単位ブロックに記憶されていたデータが消去される。引き続き、アクセス制御部１５０が、読み取られたデータのうちから選定ブロックのデータを除いたデータを、以前に記憶されていたメモリアドレスに書き込む。
【００８５】
かかる書き込みに際して、アクセス制御部１５０は、まず、アクセス主体がアクセス制御部１５０である旨を指定した選択指定ＳＬＣを選択部１２０へ送るとともに、書き込みアドレスを示すメモリアドレスを、管理アドレスＣＡＤとして出力する。この結果、当該書き込みアドレスを示すメモリアドレスが、選択部１２０を介し、メモリアドレスＭＡＤとして不揮発性メモリ２００へ送られる。
【００８６】
次に、アクセス制御部１５０は、書き込みを指定したデータ方向指定ＲＷＣをＥＣＣ部１３０へ送るとともに、データバスＣＤＴに書き込こもうとしているデータを出力する。この結果、当該データが、データバスＡＤＴを介してＥＣＣ部１３０へ送られる。そして、ＥＣＣ部１３０により生成されたＥＣＣコードが付加されたデータが、データバスＭＤＴを介して、不揮発性メモリ２００へ送られる。
【００８７】
次いで、アクセス制御部１５０は、書き込み指定ＭＷＴを不揮発性メモリ２００へ送る。この結果、アクセス制御部１５０が指定したメモリアドレスに、アクセス制御部１５０が指定したデータが書き込まれる。
【００８８】
次に、ステップＳ３３において、アクセス制御部１５０が、アドレス変換部１１０が利用するアドレス変換情報の更新を行う。かかるアドレス変換情報の更新に際して、アクセス制御部１５０は、まず、メモリ利用モジュール９００から送られている論理アドレスＡＤＬを選定ブロックのメモリアドレスに変換するための新たなアドレス変換情報を生成する。そして、アクセス制御部１５０は、当該新たなアドレス変換情報を、アドレス変換情報ＡＣＤとしてアドレス変換部１１０へ送る。この結果、アドレス変換部１１０からは、選定ブロックに対応するメモリアドレスが出力される。
【００８９】
引き続き、ステップＳ３４において、アクセス制御部１５０が、メモリ利用モジュール９００から送られているデータの選定ブロックへの書き込み制御を行う。かかる書き込み制御に際して、アクセス制御部１５０は、まず、アクセス主体がメモリ利用モジュール９００である旨を指定した選択指定ＳＬＣを選択部１２０へ送る。この結果、選択ブロックに対応する物理アドレスＡＤＰが、選択部１２０を介し、メモリアドレスＭＡＤとして不揮発性メモリ２００へ送られるとともに、メモリ利用モジュール９００が出力しているデータが、選択部１２０を介して、ＥＣＣ部１３０へ送られる。
【００９０】
次に、アクセス制御部１５０は、書き込みを指定したデータ方向指定ＲＷＣをＥＣＣ部１３０へ送る。この結果、ＥＣＣ部１３０により生成されたＥＣＣコードが付加されたデータが、データバスＭＤＴを介して、不揮発性メモリ２００へ送られる。
【００９１】
次いで、アクセス制御部１５０は、書き込み指定ＭＷＴを不揮発性メモリ２００へ送る。この結果、選定ブロックのメモリアドレスに、メモリ利用モジュール９００が指定したデータが書き込まれる。
【００９２】
次に、ステップＳ３５において、アクセス制御部１５０は、不揮発性メモリ２００の外部アクセス領域２２０に新たに書き込まれたデータにおけるエラービット数ＥＢＮを取得する。かかるエラービット数の取得は、上述したステップＳ２４におけるエラービット数ＥＢＮの取得と同様にして行われる。
【００９３】
なお、アクセス制御部１５０は、新たなデータ書き込みのために消去処理を行わなかった場合には、選定ブロックに新たに書き込まれたデータにおけるエラービット数のみを取得する。一方、アクセス制御部１５０は、新たなデータ書き込みのために消去処理を行った場合には、消去処理が行われた消去単位ブロックにおけるアクセス単位ブロックのそれぞれにおけるエラービット数を取得する。
【００９４】
次に、ステップＳ３６において、アクセス制御部１５０が、管理情報ＭＧＩの更新を行う。ここで、新たなデータ書き込みのために消去処理が行われなかった場合には、アクセス制御部１５０は、新たにデータ書き込みが行われた選定ブロックに関してデータ書き込み後に取得されたエラービット数、及び、現在時刻に、管理情報ＭＧＩ内の当該選定ブロックに関するエラービット数及び最新書込時刻が更新される。一方、アクセス制御部１５０は、新たなデータ書き込みのために消去処理が行われた場合には、新たにデータ書き込みが行われた選定ブロックが含まれる新たな消去回数、並びに、当該消去単位ブロックに含まれるアクセス単位ブロックのそれぞれに関してデータ書き込み後に取得されたエラービット数、及び、現在時刻に、管理情報ＭＧＩ内の当該消去単位ブロックの消去回数、並びに、当該消去単位ブロックに含まれるアクセス単位ブロックのそれぞれに関するエラービット数及び最新書込時刻が更新される。
【００９５】
かかる管理情報ＭＧＩの更新に際しては、不揮発性メモリ２００内の管理領域２１０への新たなデータ書き込みが行われることになる。かかる管理領域２１０への新たなデータ書き込みに際しても、アクセス制御部１５０は、上述した外部アクセス領域２２０への新たなデータ書き込みの際と同様にして、書き込みブロックの選定を行う。そして、アクセス制御部１５０は、上述したステップＳ３２における選定ブロック以外のアクセス単位ブロックへの書き込みの場合と同様にしてデータ書き込みを行うことにより、管理情報ＭＧＩの内容を更新する。
【００９６】
こうしてステップＳ３６の処理が終了すると、ステップＳ１６の処理が終了する。そして、処理は、上述したステップＳ１１へ戻る（図５参照）
【００９７】
なお、上述したステップＳ１４において行われる見合わせフラグの更新も、上記と同様の処理をアクセス制御部１５０が行うことより実行される。
【００９８】
以上説明したように、本実施形態では、メモリ利用モジュール９００から送られた不揮発性メモリ２００への書き込み要求ＷＲＱを受けた場合に、アクセス制御部１５０は、現在時刻と、書き込み対象の候補となったアクセス単位ブロックの現時点における検出エラービット数ＥＢＮとを取得する。また、アクセス制御部１５０は、不揮発性メモリ２００内の管理領域２１０に記憶されている当該書き込み対象の候補となったアクセス単位ブロックに関する最新書込時刻と、最新の書き込み時における検出エラービット数とを取得する。引き続き、アクセス制御部１５０は、これらの取得結果に基づいて、最新の書き込み時から現時点までの検出エラービット数の時間変化率を算出する。そして、アクセス制御部１５０は、算出された時間変化率に基づいて、当該書き込み対象の候補となったアクセス単位ブロックが、不揮発性メモリ２００に関する消去回数の平準化のために利用できるか否かを判定する。この判定の結果が肯定的であった場合に、当該アクセス単位ブロックへのデータ書き込み制御を行う。
【００９９】
したがって、本実施形態によれば、ウエアレベリングを効率良く、かつ、合理的に行うことにより、メモリシステム全体の寿命を有効に確保することができる。
【０１００】
また、本実施形態では、算出された時間変化率と、現時点における検出エラービット数とから算出される、ＥＣＣ部１３０のエラー訂正機能における訂正限界を超えるまでの現時点からの時間長が、書き込み対象の候補となったアクセス単位ブロックの消去回数に対応して定められた時間長以下である場合に、アクセス制御部１５０が、書き込み対象の候補となったアクセス単位ブロックを、消去回数の平準化のために利用できないと判定する。このため、非常に合理的に、書き込み対象の候補となったアクセス単位ブロックが、消去回数の平準化のために利用できるか否かを判定することができる。
【０１０１】
［実施形態の変形］
本発明は、上記の実施形態に限定されるものではなく、様々な変形が可能である。
【０１０２】
例えば、上記の実施形態では、書き込み対象の候補となったアクセス単位ブロックが、不揮発性メモリ２００に関する消去回数の平準化のために利用できるか否かの判定に際して、算出された時間変化率を利用して、エラー訂正機能における訂正限界を超えるまでの現時点からの時間長を求めた後、当該求められた時間長が、書き込み対象の候補となったアクセス単位ブロックの消去回数に対応して定められた時間長より長いか否かを判定するようにした。これに対し、算出された時間変化率が、書き込み対象の候補となったアクセス単位ブロックの消去回数に対応して定められた時間変化率未満であるか否かを判定することにより、書き込み対象の候補となったアクセス単位ブロックが、不揮発性メモリ２００に関する消去回数の平準化のために利用できるか否かを判定するようにしてもよい。
【０１０３】
また、算出された時間変化率が、書き込み対象の候補となったアクセス単位ブロックの消去回数にかかわらず定められた時間変化率未満であるか否かを判定することにより、書き込み対象の候補となったアクセス単位ブロックが、不揮発性メモリ２００に関する消去回数の平準化のために利用できるか否かを判定するようにしてもよい。
【０１０４】
また、上記の実施形態では、アクセス制御部１５０が、ＥＣＣ部１３０により訂正可能な最大エラービット数ＥＢＭ、及び、アクセス単位ブロックのデータ保持時間の閾値時間ＴTH（ＥＳＮ）を内部に保持するようにした。これに対し、最大エラービット数ＥＢＭ及び閾値時間ＴTH（ＥＳＮ）を、管理情報ＭＧＩの一部として、管理領域２１０内に記憶しておくようにしてもよい。
【０１０５】
また、上記の実施形態では、管理領域２１０と外部アクセス領域２２０とを同一の不揮発性メモリ２００内に用意するようにしたが、それぞれ異なる不揮発性メモリ内に用意するようにしてもよい。
【０１０６】
また、上記の実施形態では、消去単位ブロックが複数のアクセス単位ブロックを含むようにしたが、消去単位ブロックとアクセス単位ブロックとが一致してもよいことは勿論である。
【０１０７】
また、上記の実施形態では、不揮発性メモリが、ＮＡＮＤ型のフラッシュメモリ素子により構成されるようにしたが、他の種類の不揮発性メモリ素子により不揮発性メモリが構成される場合にも、消去回数の平準化を図る必要がある場合には、本発明を適用することができる。
【０１０８】
なお、上記の実施形態におけるアクセス制御部を、中央処理装置（ＣＰＵ：Central Processing Unit）等を備えた演算手段としてのコンピュータとして構成し、予め用意されたプログラムを当該コンピュータで実行することにより、アクセス制御部における処理の一部又は全部を実行するようにしてもよい。このプログラムはハードディスク、ＣＤ−ＲＯＭ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、当該コンピュータによって記録媒体からロードされて実行される。また、このプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ等の可搬型記録媒体に記録された形態で取得されるようにしてもよいし、インターネットなどのネットワークを介した配信の形態で取得されるようにしてもよい。
【符号の説明】
【０１０９】
１００  …  メモリコントローラ（メモリ制御装置）
１１０  …  アドレス変換部
１３０  …  ＥＣＣ部（エラー検出部）
１４０  …  計時部
１５０  …  アクセス制御部
２１０  …  管理領域（第２不揮発性メモリ部）
２２０  …  外部アクセス領域（第１不揮発性メモリ部）
【図１】
2012212312.tif 000003
【図２】
2012212312.tif 000004
【図３】
2012212312.tif 000005
【図４】
2012212312.tif 000006
【図５】
2012212312.tif 000007
【図６】
2012212312.tif 000008
【図７】
2012212312.tif 000009