(57)【要約】【課題】物理ブロックの消去回数の平均化を高い精度で行う。【解決手段】メモリコントローラは、消去回数を含む物理ブロックカウンタと記録回数を含む論理ブロックカウンタと論物変換テーブルを保持するメモリ、論物変換テーブルから論理ブロックアドレスに対する物理ブロックアドレスに書込みを行う制御部を備える。制御部は書込指示を受信すると、論理ブロックカウンタの書込先の論理ブロックアドレスに対応する記録回数を更新し、論理ブロックカウンタの書込先の論理ブロックアドレスの記録回数が多い場合、論物変換テーブルの論理ブロックアドレスが割当てられていない物理ブロックであるスペアブロックの中で物理ブロックカウンタの消去回数が少ない物理ブロックアドレスを割当て、物理ブロックカウンタにおいて割り当てた物理ブロックアドレスの消去回数を更新し、論物変換テーブルを更新し、外部装置の状態変化がある場合、記録回数をリセットする。【選択図】図１
2016184402.tif 000002
【特許請求の範囲】
【請求項１】
物理ブロックを複数有する不揮発性メモリに対しデータの書込み及び読込みを行うメモリコントローラであって、
前記物理ブロック毎に消去回数を記録する物理ブロックカウンタと、論理ブロック毎に記録回数を記録する論理ブロックカウンタと、前記論理ブロックの論理ブロックアドレスと前記物理ブロックの物理ブロックアドレスとの対応を記録する論物変換テーブルとを保持するメモリと、
前記物理ブロックカウンタと、前記論理ブロックカウンタと、前記論物変換テーブルとを管理し、前記論物変換テーブルに基づいて前記論理ブロックアドレスに対応する前記物理ブロックアドレスにデータの書込みを行う制御部と、
外部装置と接続し、データの送受信を行うホストインタフェース部と、
を備え、
前記制御部は、
前記ホストインタフェース部から、書き込み先の前記論理ブロックアドレスを含むデータの書込み指示を受信したとき、
前記論理ブロックカウンタの書き込み先の前記論理ブロックアドレスに対応する記録回数を更新し、
前記論理ブロックカウンタにおいて、書き込み先の前記論理ブロックアドレスの前記記録回数が相対的に多い場合、前記論物変換テーブルにおいて前記論理ブロックアドレスが割り当てられていない前記物理ブロックであるスペアブロックの中で、前記物理ブロックカウンタの前記消去回数が相対的に少ない前記物理ブロックアドレスを割り当てて、前記物理ブロックカウンタにおいて割り当てた前記物理ブロックアドレスの前記消去回数を更新するとともに、前記論物変換テーブルを更新し、
前記外部装置の状態変化がある場合、前記論理ブロックカウンタの前記記録回数を所定値にリセットする、
メモリコントローラ。
【請求項２】
前記制御部は、前記外部装置からの指示で前記外部装置の状態変化の有無を判定し、前記判定に基づき前記論理ブロックカウンタの前記記録回数を前記所定値にリセットする、
請求項１に記載のメモリコントローラ。
【請求項３】
前記外部装置からの指示とは、ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）インタフェース準拠のＳｅｃｕｒｅＥｒａｓｅコマンドである、
請求項２に記載のメモリコントローラ。
【請求項４】
前記記録回数の前記所定値は、前記外部装置が指定した値、もしくは、前記外部装置が指定した値から算出される値である、
請求項２に記載のメモリコントローラ。
【請求項５】
前記記録回数の前記所定値は、前記外部装置が前記論理ブロックアドレス毎に指定する値である、
請求項４に記載のメモリコントローラ。
【請求項６】
前記論理ブロックカウンタは、複数の記録回数のセットと複数の前記記録回数のセットのそれぞれの上限値とを含み、
前記制御部は、複数の前記記録回数のセットのうち、任意の前記記録回数のセットが前記上限値に達すると、他の前記記録回数のセットに記録回数を記録する、
請求項１に記載のメモリコントローラ。
【請求項７】
任意の前記論理ブロックアドレスの記録回数は、複数の前記記録回数のセットの和である、
請求項６に記載のメモリコントローラ。
【請求項８】
前記制御部は、前記論理ブロックカウンタの前記記録回数を含む値を出力し、前記外部装置に送信する、
請求項１に記載のメモリコントローラ。
【請求項９】
前記制御部は、前記論理ブロックカウンタにおいて、書き込み先の前記論理ブロックアドレスの前記記録回数が所定の閾値を超えると判定するとき、前記スペアブロックの中で、前記物理ブロックカウンタの前記消去回数が最も小さい前記物理ブロックアドレスを割り当て、
前記論理ブロックカウンタにおいて、書き込み先の前記論理ブロックアドレスの前記記録回数が所定の閾値を超えないと判定するとき、前記スペアブロックの中で、前記物理ブロックカウンタの前記消去回数が最小又は最大のいずれでもない前記物理ブロックアドレスを割り当てる、
請求項１に記載のメモリコントローラ。
【請求項１０】
請求項１に記載のメモリコントローラと、
前記メモリコントローラに接続され、前記メモリコントローラによりデータが記録される不揮発性メモリと、
を備える、不揮発性記憶装置。
【請求項１１】
請求項１に記載のメモリコントローラと、
前記メモリコントローラに接続され、前記メモリコントローラによりデータが記録される不揮発性メモリと、
前記メモリコントローラに接続され、前記メモリコントローラに対し前記不揮発性メモリに対するデータの書込み指示を送信する外部装置と、
を備える不揮発性記憶システム。
【請求項１２】
物理ブロックを複数有する不揮発性メモリに対し、前記物理ブロック毎に消去回数を記録する物理ブロックカウンタと、論理ブロック毎に記録回数を記録する論理ブロックカウンタと、前記論理ブロックの論理ブロックアドレスと前記物理ブロックの物理ブロックアドレスとの対応を記録する論物変換テーブルとを保持するメモリを用いて、論理アドレスに対応する物理ブロックにデータの書込みを行うメモリ制御方法であって、
外部装置から書き込み先の論理ブロックアドレスを含むデータの書込み指示を受信したとき、
前記論理ブロックカウンタの書き込み先の前記論理ブロックアドレスに対応する記録回数を更新し、
前記論理ブロックカウンタにおいて、書き込み先の前記論理ブロックアドレスの前記記録回数が相対的に多い場合、前記論物変換テーブルにおいて前記論理ブロックアドレスが割り当てられていない前記物理ブロックであるスペアブロックの中で、前記物理ブロックカウンタの前記消去回数が相対的に少ない前記物理ブロックアドレスを割り当てて、前記物理ブロックカウンタにおいて割り当てた前記物理ブロックアドレスの前記消去回数を更新するとともに、前記論物変換テーブルを更新し、
前記外部装置の状態変化がある場合、前記論理ブロックカウンタの前記記録回数を所定値にリセットする、
メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データの書換えが可能な不揮発性メモリを制御するメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法に関する。
【背景技術】
【０００２】
従来、データの消去単位である物理ブロックを複数備える半導体記憶装置において、各物理ブロックの消去回数を平均化する方法が知られている。この平均化する方法では、物理ブロック毎の消去回数をカウントするための管理テーブルと、論理ブロック毎に記録回数をカウントするための管理テーブルとを用いて、物理ブロックの消去回数の平均化を行う（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２０３９１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、物理ブロックの消去回数の平均化を高い精度で行うのに有効なメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法を提供する。
【課題を解決するための手段】
【０００５】
本開示におけるメモリコントローラは、物理ブロックを複数有する不揮発性メモリに対しデータの書込み及び読込みを行うメモリコントローラであって、物理ブロック毎に消去回数を記録する物理ブロックカウンタと、論理ブロック毎に記録回数を記録する論理ブロックカウンタと、論理ブロックの論理ブロックアドレスと物理ブロックの物理ブロックアドレスとの対応を記録する論物変換テーブルとを保持するメモリと、物理ブロックカウンタと、論理ブロックカウンタと、論物変換テーブルとを管理し、論物変換テーブルに基づいて論理ブロックアドレスに対応する物理ブロックアドレスにデータの書込みを行う制御部と、外部装置と接続し、データの送受信を行うホストインタフェース部と、を備える。制御部は、ホストインタフェース部から、書き込み先の論理ブロックアドレスを含むデータの書込み指示を受信したとき、論理ブロックカウンタの書き込み先の論理ブロックアドレスに対応する記録回数を更新し、論理ブロックカウンタにおいて、書き込み先の論理ブロックアドレスの記録回数が相対的に多い場合、論物変換テーブルにおいて論理ブロックアドレスが割り当てられていない物理ブロックであるスペアブロックの中で、物理ブロックカウンタの消去回数が相対的に少ない物理ブロックアドレスを割り当てて、物理ブロックカウンタにおいて割り当てた物理ブロックアドレスの消去回数を更新するとともに、論物変換テーブルを更新し、外部装置の状態変化がある場合、論理ブロックカウンタの記録回数を所定値にリセットする。
【発明の効果】
【０００６】
本開示におけるメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法は、物理ブロックの消去回数の平均化を高い精度で行うことができる。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施の形態１における不揮発性記憶システムの構成を示す図である。
【図２】図２は、実施の形態１における論物変換テーブルの構成を示す図である。
【図３】図３は、実施の形態１における物理ブロックカウンタの構成を示す図である。
【図４】図４は、実施の形態１における論理ブロックカウンタの構成を示す図である。
【図５】図５は、実施の形態１における不揮発性メモリの記録領域である物理ブロックの構成を示す図である。
【図６】図６は、実施の形態１におけるホスト装置の構成図である。
【図７】図７は、実施の形態１における不揮発性記憶装置の書込みコマンド受信時の動作を示すフローチャートである。
【図８】図８は、実施の形態１における不揮発性記憶装置のリセットコマンド受信時の動作を示すフローチャートである。
【図９】図９は、実施の形態１における不揮発性記憶装置のプリセットコマンド受信時の動作を示すフローチャートである。
【図１０】図１０は、実施の形態１におけるホスト装置が送信する書込み予定情報の一例を示す図である。
【図１１】図１１は、実施の形態２における論理ブロックカウンタの構成を示す図である。
【発明を実施するための形態】
【０００８】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【０００９】
なお、添付図面及び以下の説明は、当業者が本開示を十分に理解するために、提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【００１０】
（実施の形態１）
以下、図１〜１０を用いて、実施の形態１を説明する。
【００１１】
［１−１．構成］
［１−１−１．不揮発性記憶システムの構成］
図１は、本実施の形態における不揮発性記憶システムの構成を示す図である。図１において、不揮発性記憶システム１は、不揮発性記憶装置１００と上位装置であるホスト装置２００とを含んでいる。
【００１２】
不揮発性記憶装置１００は、例えば、半導体メモリデバイスであるＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）である。又は、不揮発性記憶装置１００は、ＳＤメモリカード、コンパクトフラッシュ（ＣｏｍｐａｃｔＦｌａｓｈ（登録商標））、フラッシュドライブ、組込み用メモリデバイス、でもよい。不揮発性記憶装置１００は、動画、静止画、音声、テキスト等の種々コンテンツのデジタルデータ（以下「コンテンツデータ」と称す）を格納することができる。不揮発性記憶装置１００は、上位装置であるホスト装置２００と接続可能である。ホスト装置２００は、外部装置の一例である。
【００１３】
不揮発性記憶装置１００は、メモリコントローラ１１０と、不揮発性メモリ１２０とを備える。
【００１４】
ホスト装置２００は、コンテンツデータを不揮発性記憶装置１００に記録し、また、不揮発性記憶装置１００からコンテンツデータを読み出す。ホスト装置２００は、例えば、デジタルカメラ、パーソナルコンピュータ、スマートフォン、タブレット端末、テレビ等の電子機器である。
【００１５】
不揮発性メモリ１２０は、電源供給がない状態でもコンテンツデータの保持が可能な記録素子である。不揮発性メモリ１２０は、例えば、ＮＡＮＤフラッシュメモリにより構成される。
【００１６】
［１−１−２．メモリコントローラの構成］
次に不揮発性記憶装置１００のメモリコントローラ１１０の構成について詳細に説明する。メモリコントローラ１１０は、ホスト装置２００からのコマンドを受信して不揮発性メモリ１２０に対するコンテンツデータの書込み及び読出しを制御する。
【００１７】
メモリコントローラ１１０は、制御部又はプロセッサであるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ホストインタフェース部１１１と、ＥＣＣ（Ｅｒｒｏｒ Ｃｏｒｒｅｃｔｉｎｇ Ｃｏｄｅ）回路１１５と、メモリインタフェース部１１６と、制御情報記憶部１１７と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１８と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１９と、を含み、これらがバスを介して接続されている。
【００１８】
ＣＰＵ１０１は、各種アプリケーションプログラム等を実行する演算ユニットである。
【００１９】
ホストインタフェース部１１１は、ＣＰＵ１０１の制御によりホスト装置２００との間でコマンドやコンテンツデータ等のデータの送受信を行うインタフェースである。
【００２０】
メモリインタフェース部１１６は、ＣＰＵ１０１の制御により不揮発性メモリ１２０に対するデータの書込み、読込み、及び消去の制御を行うインタフェースである。
【００２１】
ＥＣＣ回路１１５は、記憶するデータの符号化処理及び記憶されたデータの復号化処理を行う誤り訂正回路である。ＥＣＣ回路１１５により機能する誤り訂正制御部１１５ａは、不揮発性メモリ１２０に書込まれたコンテンツデータに生じた誤りを復元する。
【００２２】
制御情報記憶部１１７は、ＣＰＵ１０１により処理される制御情報や不揮発性メモリ１２０の管理情報を記憶するメモリである。
【００２３】
ＲＡＭ１１８は、ＣＰＵ１０１の処理において実行されるプログラム、及びプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。ＲＯＭ１１９は、ＣＰＵ１０１が実行するプログラム、或いは演算パラメータとしての固定データを格納する。
【００２４】
ＣＰＵ１０１は、書込み制御部１１２、読出し制御部１１３、及びホスト動作判定部１１４を機能させる。
【００２５】
書込み制御部１１２は、ホストインタフェース部１１１で受信したコンテンツデータを不揮発性メモリ１２０へ書き込むための制御を行う。
【００２６】
読出し制御部１１３は、不揮発性メモリ１２０に格納されたコンテンツデータをホストインタフェース部１１１経由でホスト装置２００へ出力するための制御を行う。
【００２７】
ホスト動作判定部１１４は、ホスト装置２００の状態変化を判定する。具体的には、ホスト動作判定部１１４は、ホスト装置２００からのコマンドをトリガーとして、詳細は後述するが、制御情報記憶部１１７の論理ブロックカウンタ１１７ｃの値を一括して更新する。
【００２８】
制御情報記憶部１１７は、論物変換テーブル１１７ａと、物理ブロックカウンタ１１７ｂと、論理ブロックカウンタ１１７ｃとを格納する記憶領域である。
【００２９】
なお、制御情報記憶部１１７はメモリコントローラ１１０上ではなく、不揮発性メモリ１２０上に設けても良いし、メモリコントローラ１１０からアクセス可能なＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を用意して、そのＤＲＡＭ上に設けても良い。
【００３０】
図２は、本実施の形態における論物変換テーブル１１７ａの構成を示す図である。論物変換テーブル１１７ａは、ホスト装置２００が使用する論理ブロックアドレス３０１と、不揮発性メモリ１２０の物理ブロックアドレス３０２との対応を示す情報を格納するテーブルである。論物変換テーブル１１７ａにおいて、ホスト装置２００が使用するアドレスが割り当てられていないブロックは、スペアブロックとしてその物理ブロックアドレスを記録する。
【００３１】
図２において、論物変換テーブル１１７ａは、論理ブロックアドレス「０」に対して、物理ブロックアドレス「ａａａ」であり、論理ブロックアドレス「１」に対して、物理ブロックアドレス「ｂｂｂ」であり、論理ブロックアドレス「２」に対して、物理ブロックアドレス「ｃｃｃ」であり、論理ブロックアドレス「３」に対して、物理ブロックアドレス「ｄｄｄ」であり、論理ブロックアドレス「４」に対して、物理ブロックアドレス「ｅｅｅ」であり、論理ブロックアドレス「Ｎ−１」（Ｎは１以上の自然数）に対して、物理ブロックアドレス「ｎｎｎ」である。
【００３２】
また、図２において、「スペア＃０」、「スペア＃１」〜「スペア＃Ｍ−１」のＭ個のスペアブロックを有し、スペアブロック「スペア＃０」には、物理ブロックアドレス「ｐｐｐ」を記録し、スペアブロック「スペア＃１」には、物理ブロックアドレス「ｑｑｑ」を記録し、スペアブロック「スペア＃Ｍ−１」（Ｍは１以上の自然数）には、物理ブロックアドレス「ｚｚｚ」を記録している。
【００３３】
図３は、本実施の形態における物理ブロックカウンタ１１７ｂの構成を示す図である。物理ブロックカウンタ１１７ｂは、不揮発性メモリ１２０を構成する物理ブロック毎の消去回数を管理するために、物理ブロックアドレス３０２と消去回数３０３とを対応付けて格納する。
【００３４】
図３において、物理ブロックカウンタ１１７ｂは、物理ブロックアドレス「ａａａ」に対して、消去回数「９９」であり、物理ブロックアドレス「ｂｂｂ」に対して、消去回数「３７」であり、物理ブロックアドレス「ｃｃｃ」に対して、消去回数「１２５」であり、物理ブロックアドレス「ｄｄｄ」に対して、消去回数「４２」であり、物理ブロックアドレス「ｅｅｅ」に対して、消去回数「５」であり、物理ブロックアドレス「ｐｐｐ」に対して、消去回数「３」であり、物理ブロックアドレス「ｑｑｑ」に対して、消去回数「２０」であり、物理ブロックアドレス「ｚｚｚ」に対して、消去回数「７８」である。
【００３５】
図４は、本実施の形態における論理ブロックカウンタ１１７ｃの構成を示す図である。論理ブロックカウンタ１１７ｃは、ホスト装置２００がデータの書込みを行った論理ブロックアドレス３０１と、この論理ブロックアドレス３０１へのデータの書込み回数である記録回数３０４とを対応付けて格納する。
【００３６】
図４において、論理ブロックカウンタ１１７ｃは、論理ブロックアドレス「０」に対して、記録回数「１３９」であり、論理ブロックアドレス「１」に対して、記録回数「８」であり、論理ブロックアドレス「２」に対して、記録回数「２５」であり、論理ブロックアドレス「３」に対して、記録回数「６１」であり、論理ブロックアドレス「４」に対して、記録回数「３」であり、論理ブロックアドレス「Ｎ−１」に対して、記録回数「２」である。
【００３７】
［１−１−３．不揮発性メモリの構成］
次に不揮発性記憶装置１００の不揮発性メモリ１２０の構成について説明する。図５は、本実施の形態における不揮発性メモリ１２０の記録領域である物理ブロックの構成を示す図である。
【００３８】
不揮発性メモリ１２０は、複数の物理ブロック１２１で構成される。物理ブロック１２１は消去単位であり、この単位でデータの消去が実行される。不揮発性メモリ１２０にデータを格納するためには、物理ブロック１２１の単位でデータの消去を行った後、データを書込む必要がある。物理ブロック１２１のデータを消去せずに新たなデータを書込むことはできない。また、物理ブロック１２１の消去回数には物理的な上限が存在する。
【００３９】
［１−１−４．ホスト装置の構成］
次にホスト装置２００の構成について説明する。図６は、本実施の形態におけるホスト装置を示した構成図である。
【００４０】
ホスト装置２００は、不揮発性記憶装置１００と接続可能な装置である。
【００４１】
ホスト装置２００は、ＣＰＵ２１１と、ＲＡＭ２１２と、ＲＯＭ２１３と、メモリインタフェース部２１４とを含み、これらがバスを介して接続されている。ホスト装置２００はまた、入力部２１５と、表示部２１６と、記憶部２１７とを含み、これらが所定のインタフェースを介してバスを介して接続されている。
【００４２】
ＣＰＵ２１１は、各種アプリケーションプログラム等を実行する演算ユニットである。ＲＡＭ２１２は、ＣＰＵ２１１の処理において実行されるプログラム、及びプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。ＲＯＭ２１３は、ＣＰＵ２１１が実行するプログラム、或いは演算パラメータとしての固定データを格納する。
【００４３】
メモリインタフェース部２１４は、ＣＰＵ２１１の制御により不揮発性記憶装置１００に対して、コマンドやコンテンツデータ等のデータの送受信を行うインタフェースである。
【００４４】
入力部２１５は、ＣＰＵ２１１に各種の指令を入力するためにユーザにより操作されるキー、ボタン、タッチパネル、マウス、キーボード等である。
【００４５】
表示部２１６は、例えば液晶ディスプレイや有機ＥＬ（ＥｌｅｃｔｒｏＬｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等であり、各種情報をテキスト又はイメージ等により表示する。
【００４６】
記憶部２１７は、情報記憶媒体としての例えばフラッシュメモリ、ハードディスクを有する。
【００４７】
［１−２．動作］
以上のように構成された不揮発性記憶装置１００の動作を以下に説明する。
【００４８】
［１−２−１．データの書込み動作］
まず、不揮発性記憶装置１００におけるデータの書込み動作について説明する。
【００４９】
図７は、本実施の形態における不揮発性記憶装置１００のデータ書込みコマンド受信時の動作を示すフローチャートである。
【００５０】
ホスト装置２００がコンテンツデータを不揮発性記憶装置１００に書込む際、ホスト装置２００は、書込みコマンドを発行し、書込みアドレスを指定して不揮発性記憶装置１００のメモリコントローラ１１０に通知する。
【００５１】
（Ｓ７０１）メモリコントローラ１１０のホストインタフェース部１１１は、書込みコマンドと書込み先の論理ブロックアドレスを受信する。例えば、書き込み先の論理ブロックアドレスが「０」と「４」の場合について、以下の書き込み動作を説明する。
【００５２】
（Ｓ７０２）次に、ＣＰＵ１０１において、書込み制御部１１２は、ホストインタフェース部１１１が受信した書込み先の論理ブロックアドレスに対応する論理ブロックカウンタ１１７ｃの値をインクリメントする。例えば、書込みコマンド受信前の論理ブロックカウンタ１１７ｃの状態が図４であるとする。受信した書込み先の論理アドレスが「０」の場合、記録回数は、「１３９」から「１４０」へインクリメントし、受信した書込み先の論理アドレスが「４」の場合は、記録回数は、「３」から「４」へとインクリメントする。
【００５３】
（Ｓ７０３）次に、書込み制御部１１２は、ホストインタフェース部１１１が受信した書込み先の論理ブロックアドレスに対応する論理ブロックカウンタ１１７ｃの記録回数３０４を閾値と比較する。対応する論理ブロックカウンタ１１７ｃの記録回数３０４が閾値を超えている場合（Ｙｅｓの場合）は、ステップＳ７０４へ処理を進め、対応する論理ブロックカウンタ１１７ｃの記録回数３０４が閾値を超えていない場合（Ｎｏの場合）は、ステップＳ７０５へ処理を進める。
【００５４】
本実施の形態においては、閾値として、論理ブロックカウンタ１１７ｃに格納された記録回数３０４の平均値を使用する。例えば、図４の論理ブロックカウンタ１１７ｃを用いると、記録回数３０４の平均値は、（（１３９＋８＋２５＋６１＋３＋・・・＋２）＋１）/Ｎが「１０」であるとする。ホストインタフェース部１１１が受信した書込み先の論理ブロックアドレスが、「０」の場合、記録回数は「１４０」であり、閾値を超えているので、Ｓ７０４へ処理を進める。ホストインタフェース部１１１が受信した書込み先の論理ブロックアドレスが、「４」の場合、記録回数は「４」であり、閾値を超えていないので、Ｓ７０５へ処理を進める。
【００５５】
（Ｓ７０４）書込み制御部１１２は、物理ブロックアドレス３０２の消去回数３０３が最小となるスペアブロックを取得する。書込み制御部１１２は、論物変換テーブル１１７ａにおいて、論理ブロックアドレス３０１が割り当てられていないスペアブロックの物理ブロックアドレス３０２を取得する。書込み制御部１１２は、さらに物理ブロックカウンタ１１７ｂを参照し、其々のスペアブロックに対する消去回数３０３を取得する。取得した消去回数３０３のうち、消去回数３０３が最小となるスペアブロックを決定する。
【００５６】
具体的には、図２の論物変換テーブル１１７ａにおいて、論理ブロックアドレス３０１が割り当てられていないスペアブロックは、スペアブロック「スペア＃０」、「スペア＃１」、「スペア＃Ｍ−１」であり、対応する物理ブロックアドレス３０２は、「ｐｐｐ」、「ｑｑｑ」、「ｚｚｚ」である。図３の物理ブロックカウンタ１１７ｂにおいて、物理ブロックアドレス３０２が「ｐｐｐ」、「ｑｑｑ」、「ｚｚｚ」の消去回数３０３はそれぞれ、「３」、「２０」、「７８」である。消去回数３０３が最小の「３」となるスペアブロックは「スペア＃０」である。
【００５７】
なお、取得するスペアブロックは、消去回数が最小であることに限定されず、例えば消去回数が相対的に小さいスペアブロックであってもよい。
【００５８】
（Ｓ７０５）書込み制御部１１２は、物理ブロックの消去回数が２番目に大きいスペアブロックを取得する。書込み制御部１１２は、論物変換テーブル１１７ａにおいて、論理ブロックアドレス３０１が割り当てられていないスペアブロックの物理ブロックアドレス３０２を取得する。書込み制御部１１２は、さらに物理ブロックカウンタ１１７ｂを参照し、其々のスペアブロックに対する消去回数３０３を取得する。取得した消去回数３０３のうち、消去回数が２番目に大きいスペアブロックを決定する。
【００５９】
具体的には、図２の論物変換テーブル１１７ａにおいて、論理ブロックアドレス３０１が割り当てられていないスペアブロックは、スペアブロック「スペア＃０」、「スペア＃１」、「スペア＃Ｍ−１」であり、対応する物理ブロックアドレス３０２は、「ｐｐｐ」、「ｑｑｑ」、「ｚｚｚ」である。図３の物理ブロックカウンタ１１７ｂにおいて、物理ブロックアドレス３０２が「ｐｐｐ」、「ｑｑｑ」、「ｚｚｚ」の消去回数３０３はそれぞれ、「３」、「２０」、「７８」である。消去回数３０３が２番目に大きい「２０」となるスペアブロックは「スペア＃１」である。
【００６０】
なお、取得するスペアブロックは、消去回数が２番目に大きいことに限定されない。例えば、消去回数が最小かつ最大のいずれでもないスペアブロックを取得してもよいし、消去回数が相対的に大きいスペアブロックもしくは平均的なスペアブロックを取得してもよい。
【００６１】
なお、ここで、消去回数が最小のスペアブロックを取得しない理由は、ステップＳ７０３において閾値を超えていない、すなわちホスト装置２００があまり書込みを行わない論理ブロックアドレスへのデータの書込みであると考えられるためである。消去回数が最小のスペアブロックに対してホスト装置２００からのデータを書込み、ホスト装置２００があまりデータの書込みを行わない論理ブロックへと割り当てた場合、この論理ブロックは消去回数が小さい状態で維持される可能性が高い。よって、他の物理ブロックとの消去回数の乖離が進んでしまうと考えられる。これを避けるために、ここでは消去回数が最小のスペアブロックは選ばない。
【００６２】
また、ここで、消去回数が最大のスペアブロックを取得しない理由は、消去回数が最大のスペアブロックを割り当ててしまうと、割り当てられた物理ブロックにホスト装置２００からのデータを書込むため消去回数が最大値からさらに増加するためである。前述のとおり、消去回数には物理的な上限があるため、消去回数が最大値の物理ブロックの消去回数を増加させることは望ましくない。
【００６３】
（Ｓ７０６）書込み制御部１１２は、取得したスペアブロックの物理ブロックアドレスに対応する物理ブロックカウンタ１１７ｂの消去回数３０３の値をインクリメントし、取得したスペアブロックを消去する。具体的には、例えば、書込みコマンド受信前の物理ブロックカウンタ１１７ｂが図３の場合、取得したスペアブロックの物理ブロックアドレスが「ｐｐｐ」の場合、消去回数３０３の値を「３」から「４」へとインクリメントし、取得したスペアブロックの物理ブロックアドレスが「ｑｑｑ」の場合、消去回数３０３の値を「２０」から「２１」へとインクリメントする。
【００６４】
（Ｓ７０７）ホスト装置２００がコンテンツデータを不揮発性記憶装置１００に送信する。ホストインタフェース部１１１はホスト装置２００からコンテンツデータを受信する。書込み制御部１１２は受信したコンテンツデータをステップＳ７０６において消去したスペアブロックに書込む。
【００６５】
（Ｓ７０８）次に、書込み制御部１１２は、ステップＳ７０７でコンテンツデータを書込んだスペアブロックを論理ブロックアドレスとして割り当てるために、論物変換テーブル１１７ａを更新する。例えば、書込みコマンド受信前の論物変換テーブル１１７ａが図２の場合、受信した書込み先の論理ブロックアドレスが「０」、データの書き込みに使用したスペアブロックの物理ブロックアドレスが「ｐｐｐ」の場合、論物変換テーブル１１７ａの論理ブロックアドレス「０」に対する物理ブロックアドレスが「ａａａ」から「ｐｐｐ」となり、論理ブロックアドレス「スペア＃０」に対する物理ブロックアドレスが「ｐｐｐ」から「ａａａ」となる。また、受信した書込み先の論理ブロックアドレスが「４」、データの書込みに使用したスペアブロックの物理ブロックアドレスが「ｑｑｑ」の場合、論物変換テーブル１１７ａの論理ブロックアドレス「４」に対する物理ブロックアドレスが「ｅｅｅ」から「ｑｑｑ」となり、論理ブロックアドレス「スペア＃１」に対する物理ブロックアドレスが「ｑｑｑ」から「ｅｅｅ」となる。
【００６６】
（Ｓ７０９）ホスト装置２００からのコンテンツデータを全て書込み完了したか否かを判定する。ホスト装置２００からの書込みデータに対して全て書込み完了した場合（Ｙｅｓの場合）は、書込みコマンドの処理を終了し、続けて書込むデータが残っている場合（Ｎｏの場合）は、Ｓ７０１へ処理を戻す。
【００６７】
［１−２−２．リセット動作］
次に、不揮発性記憶装置１００のメモリコントローラ１１０に対するリセット動作について説明する。図８は、本実施の形態における不揮発性記憶装置１００のリセットコマンド受信時の動作を示すフローチャートである。
【００６８】
ホスト装置２００のＣＰＵ２１１は、メモリコントローラ１１０に対する書込みコマンドの発行パターンを大きく変更するときに、メモリコントローラ１１０に対してリセットコマンドを発行する。
【００６９】
書込みコマンドの発行パターンを大きく変更する例として、ホスト装置２００がメモリコントローラ１１０のファイルシステムの再フォーマットを行う場合や、メモリコントローラ１１０に格納していたコンテンツデータを一括して削除する場合や、論理パーティションの再構築を行う場合や、ファイルシステムのデフラグ操作によってコンテンツデータが格納されている論理ブロックアドレスを全面的に移動させる場合等がある。
【００７０】
（Ｓ８０１）ホスト装置２００のＣＰＵ２１１がリセットコマンドを発行し、書込みコマンドの発行パターンを大きく変更することを、メモリインタフェース部２１４を介してメモリコントローラ１１０に通知する。メモリコントローラ１１０において、ホストインタフェース部１１１がリセットコマンドを受信すると、メモリコントローラ１１０のホスト動作判定部１１４は、ホスト装置２００の状態変化があると判定し、論理ブロックカウンタ１１７ｃの全ての記録回数３０４の値を「０」にリセットする。
【００７１】
過去のホスト装置２００のアクセスによって蓄積された論理ブロックカウンタ１１７ｃの記録回数３０４の値がリセットされるため、新たなホスト装置２００の動作に応じた論理ブロックカウンタ１１７ｃを再構築することが可能となる。
【００７２】
なお、リセットコマンドは専用のコマンドを準備するのではなく、別のコマンドにリセットコマンドの機能を含ませてもよい。例えば、ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）インタフェース準拠のＳＳＤがサポートしているコマンド（ＳＥＣＵＲＩＴＹ  ＥＲＡＳＥ  ＵＮＩＴ）によるＳＳＤのデータを消去する手段であるＳｅｃｕｒｅＥｒａｓｅを用いる。このコマンドが発行された後はホスト装置２００が書込みコマンドの発行パターンを大きく変更する可能性が高い。そこで、メモリコントローラ１１０は、ＳｅｃｕｒｅＥｒａｓｅコマンドを受信した場合に、上記リセットコマンドが発行されたと解釈し、論理ブロックカウンタ１１７ｃの全ての記録回数３０４の値を所定の値にリセットしてもよい。
【００７３】
また、記録回数３０４の値は「０」に限られず、１以上の所定の値であってもよい。
【００７４】
［１−２−３．プリセット動作］
次に、不揮発性記憶装置１００のメモリコントローラ１１０に対するプリセット動作について説明する。図９は、本実施の形態における不揮発性記憶装置１００のプリセットコマンド受信時の動作を示すフローチャートである。
【００７５】
ホスト装置２００のＣＰＵ２１１は、メモリコントローラ１１０に対する書込みコマンドの発行パターンを大きく変更するときに、メモリコントローラ１１０にプリセットコマンドを発行する。
【００７６】
プリセットコマンドと上記リセットコマンドとの違いは以下の通りである。リセットコマンドは、上述の通り、論理ブロックカウンタ１１７ｃの全ての記録回数３０４の値を所定の値、例えば「０」にリセットする。一方、プリセットコマンドは、論理ブロックカウンタ１１７ｃの全ての記録回数３０４の値をホスト装置２００が直接的又は間接的に指定する任意の値にプリセットする。従って、プリセットコマンドの場合は単に過去のホスト装置２００のアクセスで蓄積された論理ブロックカウンタ１１７ｃの全ての記録回数３０４の値を無効にするだけでなく、これからのホスト装置２００がどのようにデータの書込みを行うかという情報を事前に取得して活用することができる。
【００７７】
ホスト装置２００のＣＰＵ２１１がプリセットコマンドを発行し、今後の書込みコマンドの発行パターンに関する情報である書込み予定情報４００をメモリコントローラ１１０に通知する。書込み予定情報４００は、例えば所定のアプリケーションやモード毎に生成され、通知される。
【００７８】
図１０は、本実施の形態におけるホスト装置２００が送信する書込み予定情報の一例を示す図である。図１０において、書込み予定情報４００は、論理ブロックアドレス３０１と予定記録回数４０１とを含む。予定記録回数４０１は所定の最大値Ｘ、本実施例ではＸ＝１００とする、を超えない範囲で論理ブロックアドレスに対する予定の書込み回数を他の論理ブロックとの相対的な値として指定する。
【００７９】
図１０において、書込み予定情報４００は、論理ブロックアドレス「０」に対して予定記録回数「２０」が対応し、論理ブロックアドレス「１」に対して予定記録回数「４０」が対応し、論理ブロックアドレス「２」に対して予定記録回数「２０」が対応し、論理ブロックアドレス「３」に対して予定記録回数「８０」が対応し、論理ブロックアドレス「４」に対して予定記録回数「１００」が対応し、論理ブロックアドレス「Ｎ−１」に対して予定記録回数「２５」が対応している。
【００８０】
（Ｓ９０１）メモリコントローラ１１０において、ホストインタフェース部１１１がプリセットコマンドを受信すると、ホスト動作判定部１１４は論理ブロックカウンタ１１７ｃの全ての記録回数３０４の値を所定の値、本実施の形態では「０」とする、にリセットする。
【００８１】
なお、所定の値は０に限定されず、１以上の自然数であってもよい。
【００８２】
（Ｓ９０２）次に、ホスト動作判定部１１４は、ホスト装置２００から受信した書込み予定情報４００を元に論理ブロックカウンタ１１７ｃの記録回数３０４の設定値を生成する。書込み予定情報４００は、所定の最大値Ｘ＝１００を超えない範囲で数値が設定されている。ホスト動作判定部１１４は、メモリコントローラ１１０の実装に応じた所定の最大値Ｙ、本実施の形態ではＹ＝１０００とする、を超えない範囲の数値に変換することにより、論理ブロックカウンタ１１７ｃの記録回数３０４の設定値を生成する。
【００８３】
より具体的には、ホスト動作判定部１１４は、予定記録回数４０１の値を１０倍した値を記録回数３０４の設定値として生成する。
【００８４】
なお、予定記録回数４０１の値をそのまま記録回数３０４の値としてもよい。
【００８５】
（Ｓ９０３）次に、ホスト動作判定部１１４は、ステップＳ９０２で生成した設定値で論理ブロックカウンタ１１７ｃの全ての記録回数３０４の値を変更する。
【００８６】
［１−３．効果等］
従来の不揮発性記憶装置では、論理ブロック毎の記録回数が少ないところに、消去回数が相対的に多いブロックを割り当てることで、物理ブロックの消去回数の平均化を図っていた。しかし、論理ブロック毎の記録回数は、不揮発性記憶装置にデータの書込みを指示する上位装置であるホスト装置の動作に依存する。
【００８７】
すなわち、不揮発性記憶装置にアクセスするホスト装置が別のホスト装置に入れ替わった場合や、同じホスト装置において動作モードが大幅に切り替わった場合には、論理ブロック毎の記録回数として保持している値が現在のホスト装置の動作を示すものではなくなる。
【００８８】
また、アクセスの少なかった論理ブロックが、ホスト装置の動作の変化により、アクセスが多い論理ブロックに切り替わっても、従来の不揮発性記憶装置では消去回数が相対的に多いブロックを割り当てることになるため、物理ブロックの消去回数をより乖離させる危険がある。
【００８９】
そこで、本実施の形態に係るメモリコントローラ１１０は、物理ブロックを複数有する不揮発性メモリ１２０に対しデータの書込み及び読込みを行うメモリコントローラ１１０であって、物理ブロック毎に消去回数を記録する物理ブロックカウンタ１１７ｂと、論理ブロック毎に記録回数を記録する論理ブロックカウンタ１１７ｃと、論理ブロックの論理ブロックアドレスと物理ブロックの物理ブロックアドレスとの対応を記録する論物変換テーブル１１７ａとを保持する制御情報記憶部１１７と、物理ブロックカウンタ１１７ｂと、論理ブロックカウンタ１１７ｃと、論物変換テーブル１１７ａとを管理し、論物変換テーブル１１７ａに基づいて論理ブロックアドレスに対応する物理ブロックアドレスにデータの書込みを行うＣＰＵ１０１と、外部装置であるホスト装置２００と接続し、データの送受信を行うホストインタフェース部１１１と、を備える。ＣＰＵ１０１は、ホストインタフェース部１１１から、書き込み先の論理ブロックアドレスを含むデータの書込み指示を受信したとき、論理ブロックカウンタ１１７ｃの書き込み先の論理ブロックアドレスに対応する記録回数を更新し、論理ブロックカウンタ１１７ｃにおいて、書き込み先の論理ブロックアドレスの記録回数が相対的に多い場合、論物変換テーブル１１７ａにおいて論理ブロックアドレスが割り当てられていない物理ブロックであるスペアブロックの中で、物理ブロックカウンタ１１７ｂの消去回数が相対的に少ない物理ブロックアドレスを割り当てて、物理ブロックカウンタ１１７ｂにおいて割り当てた物理ブロックアドレスの消去回数を更新するとともに、論物変換テーブル１１７ａを更新し、ホスト装置２００の状態変化がある場合、論理ブロックカウンタ１１７ｃの記録回数を所定値にリセットする。
【００９０】
このため、上位装置であるホスト装置２００が書込みコマンドの発行パターンを大きく変更するタイミングで論理ブロックカウンタ１１７ｃの値をリセット、もしくは、今後の書込みコマンドの発行パターンに応じた値にプリセットすることができる。よって、ホスト装置２００の動作の変更に対応しつつ、物理ブロックの消去回数の平均化を高い精度で行うことが可能である。
【００９１】
（実施の形態２）
実施の形態１においては、論理ブロックカウンタ１１７ｃは、リセットコマンド又はプリセットコマンドが発行されない限り、全てのデータの書込みに対する記録回数３０４を保持するものとして説明した。
【００９２】
本実施の形態においては、論理ブロックカウンタ１１７ｃは、直近の所定範囲内の記録回数のみを保持する。以下、本実施の形態に係る論理ブロックカウンタ１１７ｃの記録制御の一例について説明する。本実施の形態に係るメモリコントローラ１１０、及び不揮発性メモリ１２０の構成は、基本的に実施の形態１と同様であるため、説明を省略する。
【００９３】
実施の形態１と異なる点は、実施の形態１ではメモリコントローラ１１０は、図４に示すように１つの論理ブロックアドレスに対して１つの記録回数を対応づけた論理ブロックカウンタ１１７ｃを管理していたが、本実施の形態では、論理ブロックカウンタとして図１１に示すような論理ブロックカウンタ２１１７ｃを用いる点である。
【００９４】
図１１は、本実施の形態における論理ブロックカウンタの構成を示す図である。図１１において、論理ブロックカウンタ２１１７ｃは、論理ブロックアドレス３０１に対して、３つの記録回数セット、すなわち、記録回数Ａセット３０４ａ、記録回数Ｂセット３０４ｂ、記録回数Ｃセット３０４ｃ、が対応づけられている。一つの論理ブロックアドレスの記録回数は、論理ブロックアドレスに対する記録回数Ａセット３０４ａにおける値、記録回数Ｂセット３０４ｂにおける値、記録回数Ｃセット３０４ｃにおける値の和で与えられるものとする。そして、メモリコントローラ１１０は、全ての論理ブロックについての３セットの記録回数のそれぞれの合計値が所定の値、図１１では１０００、を超えないように管理する。
【００９５】
不揮発性記憶装置１００の出荷時又はリセット直後は、論理ブロックカウンタ２１１７ｃにおける３セット全ての記録回数、記録回数Ａセット３０４ａ、記録回数Ｂセット３０４ｂ、記録回数Ｃセット３０４ｃ、が０にクリアされ、更新中の記録回数セット３０５は「記録回数Ａ」に設定されているものとする。
【００９６】
その後、ホスト装置２００からのデータの書込み制御によって、論理ブロックカウンタ２１１７ｃを更新すると、まず、メモリコントローラ１１０は、更新中の記録回数セット３０５「記録回数Ａ」を、指定された論理ブロックアドレスに対応する記録回数Ａセット３０４ａにおける値をインクリメントする。
【００９７】
ホスト装置２００からのデータ書込みが繰り返されることで、記録回数Ａセット３０４ａの値の合計が１０００になった場合、メモリコントローラ１１０は、更新中の記録回数セット３０５を「記録回数Ｂ」に変更する。以降、メモリコントローラ１１０は、データ書込み時には記録回数Ｂセット３０４ｂの値をインクリメントする。
【００９８】
さらに、ホスト装置２００からのデータ書込みが繰り返され、記録回数Ｂセット３０４ｂの値の合計が１０００になった場合、メモリコントローラ１１０は、更新中の記録回数セット３０５を「記録回数Ｃ」に変更する。以降、メモリコントローラ１１０は、データ書込み時には記録回数Ｃセット３０４ｃにおける値をインクリメントする。
【００９９】
さらに、ホスト装置２００からのデータ書込みが繰り返され、記録回数Ｃセット３０４ｃの値の合計が１０００になった場合、メモリコントローラ１１０は、記録回数Ａセット３０４ａの値を全て０にクリアする、すなわち、古い記録回数の情報を削除する。
【０１００】
そしてメモリコントローラ１１０は、更新中の記録回数セット３０５を「記録回数Ａ」に変更し、以降は記録回数Ａセット３０４ａの値をインクリメントする。以降、記録回数Ａセット、記録回数Ｂセット、記録回数Ｃセットのクリア、更新を繰り返す。
【０１０１】
このような制御により、論理ブロックカウンタ２１１７ｃは、直近の所定範囲内の記録回数のみを格納する。このため、上位装置であるホスト装置２００が書込みコマンドの発行パターンを大きく変更した場合であっても、一定量のデータの書込みが経過した場合は更新中の記録回数がリセットされる。これにより、ホスト装置２００からのコマンドがなくても、ホスト装置２００の状態変化に対応するように新しい発行パターンに応じた論理ブロックカウンタ２１１７ｃを再構成できる。よって、ホスト装置２００の動作の変更に対応しつつ、物理ブロックの消去回数の平均化を高い精度で行うことが可能なメモリコントローラ１１０及び不揮発性記憶装置１００を提供できる。
【０１０２】
なお、上記の実施の形態では、記録回数セットは記録回数Ａ〜記録回数Ｃの３セットであるが、これに限定されず、複数であれば、２セットであっても４セット以上であってもよい。
【０１０３】
（他の実施の形態）
以上のように、本開示の技術の例示として、実施の形態１及び２を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、上記実施の形態１及び２で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。
【０１０４】
そこで、以下、他の実施の形態を例示する。
【０１０５】
実施の形態１において、図１０で説明した書込み予定情報４００は、例えば、次のように生成される。ホスト装置２００のＣＰＵ２１１は、メモリコントローラ１１０に対しテストモード等を実行する。メモリコントローラ１１０は、所定のアプリケーションやモードにおいて論理ブロックカウンタ１１７ｃの記録回数をカウントする。メモリコントローラ１１０は、論理ブロックカウンタ１１７ｃの出力値、各論理ブロックアドレスに対応する記録回数、を取得し、ホスト装置２００に送信する。ホスト装置２００のＣＰＵ２１１は、メモリコントローラ１１０から受信した論理ブロックカウンタ１１７ｃの出力値に基づいて、書込み予定情報４００を生成し、記憶部２１７に記憶する。そして、ホスト装置２００は、プリセットコマンドを発行するとき、記憶した書込み予定情報４００をメモリコントローラ１１０に送信する。
【０１０６】
実施の形態１及び２において、論理ブロックカウンタ１１７ｃ又は２１１７ｃは記録回数をカウントしているが、これに代えてデータの読出し及び書込みの双方を含むアクセス回数をカウントしてもよい。
【０１０７】
実施の形態１及び２において、メモリコントローラ１１０及びホスト装置２００において、各ブロックは、ＬＳＩ（Ｌａｒｇｅ―Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）などの半導体回路により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。半導体回路は、所定の機能をハードウェア構成のみで実現してもよいし、又はソフトウェアと協働して所定の機能を実現するように構成されてもよい。例えば、半導体回路は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＣＰＵ、ＭＰＵ（Ｍｉｃｒｏ−Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、マイクロコンピュータで構成される。
【０１０８】
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡや、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１０９】
実施の形態１及び２における処理方法の実行順序は、必ずしも、上記実施の形態の記載に制限されるものではなく、本開示の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０１１０】
実施の形態１及び２に係るメモリコントローラ１１０、メモリコントローラ１１０と不揮発性メモリ１２０とを含む不揮発性記憶装置１００、不揮発性記憶装置１００とホスト装置２００とを含む不揮発性記憶システム１、実施の形態１及び２において実行されるメモリ制御方法、かかるメモリ制御方法をコンピュータに実行させるコンピュータプログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本開示の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、半導体メモリを挙げることができる。
【０１１１】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０１１２】
以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面及び詳細な説明を提供した。
【０１１３】
したがって、添付図面及び詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【０１１４】
上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲又はその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【産業上の利用可能性】
【０１１５】
本開示は、消去回数に上限のある不揮発性メモリを組み込んだ記録装置に適用可能である。具体的には、ＳＳＤ、メモリカード、フラッシュドライブ、組込み用メモリデバイス等に適用可能である。
【符号の説明】
【０１１６】
１    不揮発性記憶システム
１００    不揮発性記憶装置
１０１    ＣＰＵ
１１０    メモリコントローラ
１１１    ホストインタフェース部
１１２    書込み制御部
１１３    読出し制御部
１１４    ホスト動作判定部
１１５    ＥＣＣ回路
１１５ａ    誤り訂正制御部
１１６    メモリインタフェース部
１１７    制御情報記憶部
１１７ａ    論物変換テーブル
１１７ｂ    物理ブロックカウンタ
１１７ｃ    論理ブロックカウンタ
１１８    ＲＡＭ
１１９    ＲＯＭ
１２０    不揮発性メモリ
１２１    物理ブロック
２００    ホスト装置
２１１    ＣＰＵ
２１２    ＲＡＭ
２１３    ＲＯＭ
２１４    メモリインタフェース部
２１５    入力部
２１６    表示部
２１７    記憶部
３０１    論理ブロックアドレス
３０２    物理ブロックアドレス
３０３    消去回数
３０４ａ    記録回数Ａセット
３０４ｂ    記録回数Ｂセット
３０４ｃ    記録回数Ｃセット
３０５    記録回数セット
４００    書込み予定情報
４０１    予定記録回数
２１１７ｃ    論理ブロックカウンタ
【図１】
2016184402.tif 000003
【図２】
2016184402.tif 000004
【図３】
2016184402.tif 000005
【図４】
2016184402.tif 000006
【図５】
2016184402.tif 000007
【図６】
2016184402.tif 000008
【図７】
2016184402.tif 000009
【図８】
2016184402.tif 000010
【図９】
2016184402.tif 000011
【図１０】
2016184402.tif 000012
【図１１】
2016184402.tif 000013