(57)【要約】【課題】不揮発性メモリの疲労度の指針となるアクセス回数を正確に把握すること。【解決手段】第１のサイズを持つ領域毎に前記領域に対するアクセス数が第１の情報に記録される。第１のサイズより小さい第２のサイズを持つサブ領域単位に、前記サブ領域に対するアクセス情報が第２の情報に記録される。前記第１の情報において、重複アクセスが発生しているサブ領域が所属する領域のアクセス数が更新される。【選択図】図１
2018160060.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、
前記不揮発性メモリを制御し、
前記不揮発性メモリに含まれ各々が第１のサイズを持つ領域毎に前記領域に対するアクセス数を第１の情報に記録し、
前記領域に含まれ各々が第１のサイズより小さい第２のサイズを持つサブ領域単位に、前記サブ領域に対するアクセス情報を第２の情報に記録し、
前記第１の情報に前記領域毎に記録されたアクセス数のうち、前記第２の情報に記録されたサブ領域のうち重複アクセスが発生しているサブ領域が所属する領域のアクセス数を更新するメモリコントローラと、
を備えるメモリシステム。
【請求項２】
前記アクセス情報は、アクセスされるサブ領域のアドレスであり、
前記メモリコントローラは、
前記第２の情報へ、所定の個数の前記アクセス情報を記録し、
ホストから受信した第１アクセスに対応する第１アクセス情報が前記第２の情報に記録されている場合、前記第１の情報に前記領域毎に記録されたアクセス数のうち、前記第１アクセスに対応するサブ領域が含まれる領域である第１の領域のアクセス数を更新し、前記第１の領域に含まれる全てのサブ領域のアクセス情報を前記第２の情報から削除し、前記第１アクセス情報を前記第２の情報に記録し、
前記第１アクセス情報が前記第２の情報に記録されていない場合、前記第１アクセス情報を前記第２の情報へ記録する
請求項１に記載のメモリシステム。
【請求項３】
前記メモリコントローラは、
前記第１アクセス情報が前記第２の情報に記録されていない場合であって、前記第２の情報へ前記所定の個数の前記アクセス情報が記録されている場合、第１の選択ルールに基づいてひとつの領域を前記複数の領域のなかから選択し、前記選択された領域である第２の領域のアクセス数を更新し、前記第２の領域に所属する全てのサブ領域のアクセス情報を前記第２の情報から削除し、前記第１アクセス情報を前記第２の情報へ記録する
請求項２に記載のメモリシステム。
【請求項４】
前記第１の選択ルールは、前記第２の情報にアクセス情報が最も古く記録されたサブ領域が所属する領域を前記第２の領域として選択することを含む
請求項３に記載のメモリシステム。
【請求項５】
前記第１の選択ルールは、前記第２の情報にアクセス情報が記録されているサブ領域を最も多く含む領域を前記第２の領域として選択することを含む
請求項３に記載のメモリシステム。
【請求項６】
前記アクセス情報は、アクセスの有無を示す情報を含み、
前記メモリコントローラは、
前記第２の情報へ、前記サブ領域毎の前記アクセス情報を記録し、
ホストから受信した第１アクセスに対応するサブ領域のアクセス情報がアクセス有りを前記第２の情報において示している場合、前記第１の情報に前記領域毎に記録されたアクセス数のうち、前記第１アクセスに対応するサブ領域が含まれる領域である第１の領域のアクセス数を更新し、前記第１の領域に含まれる全てのサブ領域のアクセス情報を前記第２の情報から削除し、前記第２の情報における前記第１アクセスに対応するサブ領域のアクセス情報をアクセス有りに更新し、
前記第１アクセス情報が前記第２の情報に記録されていない場合、前記第２の情報における前記第１アクセスに対応するサブ領域のアクセス情報をアクセス有りに更新する
請求項１に記載のメモリシステム。
【請求項７】
前記アクセス情報は、アクセス数を含み、
前記メモリコントローラは、
前記第２の情報へ、前記サブ領域毎の前記アクセス情報を記録し、
ホストから受信した第１アクセスに対応するサブ領域のアクセス数が前記第２の情報において第１の値でない場合は、前記第２の情報における前記第１アクセスに対応するサブ領域のアクセス情報に含まれるアクセス数をカウントアップし、
前記第１アクセスに対応するサブ領域のアクセス数が前記第２の情報において第１の値である場合は、前記第１の情報に前記領域毎に記録されたアクセス数のうち、前記第１アクセスに対応するサブ領域が含まれる領域である第１の領域のアクセス数を更新し、前記第１の領域に含まれる全てのサブ領域のアクセス情報に含まれるアクセス数を前記第２の情報においてカウントダウンし、前記第２の情報における前記第１アクセスに対応するサブ領域のアクセス情報に含まれるアクセス数をカウントアップする
請求項１に記載のメモリシステム。
【請求項８】
不揮発性メモリと、
前記不揮発性メモリを制御し、
前記不揮発性メモリに含まれ各々が第１のサイズを持つ領域毎に前記領域に対するアクセス数を第１の情報に記録し、
前記領域に含まれ各々が第１のサイズより小さい第２のサイズを持つサブ領域毎に、前記サブ領域に対するアクセス情報を第２の情報に記録し、
前記サブ領域に含まれ各々が第２のサイズより小さい第３のサイズを持つ小領域単位に、前記小領域に対するアクセス情報を第３の情報に記録し、
前記第２の情報に前記サブ領域毎に記録された前記アクセス情報のうち、前記第３の情報に記録された小領域のうち重複アクセスが発生している小領域が所属するサブ領域のアクセス情報を更新し、
前記第１の情報に前記領域毎に記録されたアクセス数のうち、前記第２の情報に記録されたサブ領域のうち重複アクセスが発生しているサブ領域が所属する領域のアクセス数を更新するメモリコントローラと、
を備えるメモリシステム。
【請求項９】
前記第３の情報に記録されるアクセス情報は、アクセスされる小領域のアドレスであり、
前記第２の情報に記録されるアクセス情報は、アクセス数を示す情報を含み、
前記メモリコントローラは、
前記第３の情報に、所定の個数の前記アクセス情報を記録し、
前記第２の情報に、前記サブ領域毎の前記アクセス情報を記録し、
ホストから受信した第１アクセスに対応する第１アクセス情報が前記第３の情報に記録されている場合、前記第１アクセスに対応する小領域が含まれるサブ領域である第１のサブ領域を選択し、前記選択された第１のサブ領域に含まれる全ての小領域のアクセス情報を前記第３の情報から削除し、前記第１アクセス情報を前記第３の情報に記録し、
前記第１アクセス情報が前記第３の情報に記録されていない場合、前記第１アクセス情報を前記第３の情報に記録し、
前記第１のサブ領域に対応するサブ領域のアクセス数が前記第２の情報において第１の値でない場合は、前記第２の情報における前記第１アクセスに対応するサブ領域のアクセス情報に含まれるアクセス数をカウントアップし、
前記第１アクセスに対応するサブ領域のアクセス数が前記第２の情報において第１の値である場合は、前記第１の情報に前記領域毎に記録されたアクセス数のうち、前記第１アクセスに対応するサブ領域が含まれる領域である第１の領域のアクセス数を更新し、前記第１の領域に含まれる全てのサブ領域のアクセス情報に含まれるアクセス数を前記第２の情報においてカウントダウンし、前記第２の情報における前記第１アクセスに対応するサブ領域のアクセス情報に含まれるアクセス数をカウントアップする
請求項８に記載のメモリシステム。
【請求項１０】
前記不揮発性メモリのアクセス単位はＮＡＮＤ型フラッシュメモリのアクセス単位より小さい請求項１乃至請求項９の何れか一つに記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、不揮発性メモリを備えるメモリシステムに関する。
【背景技術】
【０００２】
不揮発性メモリを備えるメモリシステムにおいては、前記不揮発性メモリの疲弊度を測定するために前記不揮発性メモリに対するアクセス回数を管理することが求められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１５／０３６３１２９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一つの実施形態は、不揮発性メモリの疲労度の指針となるアクセス回数を正確に把握することが可能なメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
一つの実施形態によれば、メモリシステムは、不揮発性メモリと、前記不揮発性メモリを制御するメモリコントローラとを備える。前記メモリコントローラは、前記不揮発性メモリを制御する。前記メモリコントローラは、前記不揮発性メモリに含まれ各々が第１のサイズを持つ領域毎に前記領域に対するアクセス数を第１の情報に記録する。前記メモリコントローラは、前記領域に含まれ各々が第１のサイズより小さい第２のサイズを持つサブ領域単位に、前記サブ領域に対するアクセス情報を第２の情報に記録する。前記メモリコントローラは、前記第１の情報に前記領域毎に記録されたアクセス数のうち、前記第２の情報に記録されたサブ領域のうち重複アクセスが発生しているサブ領域が所属する領域のアクセス数を更新する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態のメモリシステムの構成例を示すブロック図である。
【図２】図２は、アドレスログの一例を示す概念図である。
【図３】図３は、アクセス数テーブルの一例を示す概念図である。
【図４】図４は、第１の実施形態の動作を説明するためのフローチャートである。
【図５】図５は、第１の実施形態の動作を説明するための概念図である。
【図６】図６は、第２の実施形態のメモリシステムの一部の構成例を示すブロック図である。
【図７】図７は、第２の実施形態の動作を説明するためのフローチャートである。
【図８】図８は、第３の実施形態のメモリシステムの構成例を示すブロック図である。
【図９】図９は、第３の実施形態の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施の形態にかかるメモリシステムを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【０００８】
（第１の実施形態）
図１は第１の実施形態のメモリシステム１００の構成例を示すブロック図である。メモリシステム１００は、ホスト装置(以下、ホストと略す)１と通信線で接続され、ホスト１の外部記憶装置として機能する。ホスト１は、例えば、パーソナルコンピュータなどの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。ホスト１は、ライト要求およびリード要求をメモリシステム１００に送信する。
【０００９】
メモリシステム１００は、不揮発性半導体メモリ１０（以下、ＮＶＭと略す）１０と、メモリコントローラ２０とを備える。ＮＶＭ１０は、例えば、ＳＣＭ（Storage Class Memory）である。ＳＣＭとしては、例えば、クロスポイント型メモリ、 相変化型メモリ(Phase Change Memory; PCM)、磁気抵抗メモリ(Magnetoresistive Random Access Memory; MRAM)、ＲｅＲＡＭ（Resistance Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）である。ＮＶＭ１０として、２次元構成あるいは３次元構成のＮＡＮＤ型フラッシュメモリを採用してもよい。
【００１０】
ＮＶＭ１０は、複数のメモリセルがアレイ状に配置されたメモリセルアレイを有する１または複数のメモリチップを有する。各メモリセルは、２値記録または多値記録が可能である。例えば、チップアドレス、ワードラインアドレス、ビットラインアドレス等を含む物理アドレスによってメモリセルの位置を指定可能である。
【００１１】
メモリシステム１００は、ホスト１からのライト要求に応答してＮＶＭ１０にデータをライトする。メモリシステム１００は、ホスト１からのリード要求に応答してＮＶＭ１０からデータをリードする。
【００１２】
メモリコントローラ２０は、ホストIF部２１と、コマンド処理部２２と、ＮＶＭ制御部２３と、アクセス数管理部２４と、ＲＡＭ３０とを備える。なお、ＲＡＭ３０は、メモリコントローラ２０の外部に配置されてもよい。ＲＡＭ３０は、アドレスログ４０と、アクセス数テーブル５０をストアする。前記アドレスログ４０およびアクセス数テーブル５０は、ＮＶＭ１０でバックアップされる。
【００１３】
ホストIF部２１は、ホスト１からライト要求およびリード要求を受信する。前記ライト要求は、ライトコマンド、ライトアドレス、ライトデータを含む。前記リード要求は、リードコマンド、リードアドレスを含む。ホストIF部２１は、受信されたライト要求またはリード要求をコマンド処理部２２に転送する。また、ホストIF部２１は、ＮＶＭ１０から読み出されたユーザデータ、コマンド処理部２２の応答などをホスト１へ送信する。
【００１４】
コマンド処理部２２は、ホストIF部２１を介してホスト１から受信したコマンドに応じた制御を実行する。例えば、コマンド処理部２２は、ホスト１からライト要求を受信した場合、論理アドレスとしてのライトアドレスを物理アドレスへ変換し、ライトデータを書き込むＮＶＭ１０上の実アドレスを決定する。前記論理アドレスは、ホスト１によって指定されるアドレスである。前記論理アドレスとしては、例えばＬＢＡ（Logical Block Addressing）が用いられる。実アドレスは、データが記憶されているＮＶＭ１０上の記憶位置を示している。コマンド処理部２２は、ホスト１から受信したライトデータおよび前記決定された実アドレスをＮＶＭ制御部２３およびアクセス数管理部２４に出力する。
【００１５】
また、コマンド処理部２２は、ホスト１からリード要求を受信した場合、論理アドレスとしてのリードアドレスを物理アドレスへ変換し、データをリードするＮＶＭ１０上の実アドレスを決定する。コマンド処理部２２は、前記決定された実アドレスをＮＶＭ制御部２３およびアクセス数管理部２４に出力する。
【００１６】
ＮＶＭ制御部２３は、コマンド処理部２２から入力されたアクセス種別（リードかライトの区別）と実アドレスに基づきＮＶＭ１０にアクセスし、ＮＶＭ１０に対するリード制御またはライト制御を実行する。ＮＶＭ制御部２３は、ＥＣＣ（Error Correcting Code; ECC）回路を備えてもよい。ＥＣＣ回路は、コマンド処理部２２から転送されたデータに対して、誤り訂正の符号化処理を実施しパリティを生成する。ＥＣＣ回路は、データおよびパリティを含む符号語をＮＶＭ１０へ出力する。ＥＣＣ回路は、ＮＶＭ１０からリードされた符号語を用いて誤り訂正の復号化処理を実行し、復号されたデータをコマンド処理部２２に転送する。
【００１７】
ここで、ＮＶＭ１０に用いられるＳＣＭは、DRAM（Dynamic Random Access Memory）等のような主記憶メモリとストレージ(NAND型フラッシュメモリなど)の中間に位置するメモリとされている。メモリ特性にもよるが、ＳＣＭは速度、コスト、寿命いずれもDRAMとNANDの中間と考えられている。つまり、ＳＣＭにおいて、アクセス回数はDRAMのように実質無制限ではなく、疲弊度を測定するために所定の管理が必要となる。また、ＳＣＭにおいて、アクセス粒度はDRAMと同程度に小さい事が期待されている。例えば、DRAMの読み出し単位または書き込み単位は３２Ｂ、６４Ｂ程度であるのに対し、NAND型フラッシュメモリの読み出し単位または書き込み単位は４ＫＢ程度である。
【００１８】
このように、ＳＣＭはアクセス回数が管理される必要があるが、アクセス粒度が小さい場合、その粒度でアクセス回数をそれぞれ管理すると管理情報が膨大になる。しかし逆に大きな領域ごとに１つのアクセス回数でまとめて管理した場合、適正なアクセス粒度で管理されたアクセス回数との誤差が大きくなってしまう。例えば、所定の領域内の１００箇所に１回ずつアクセスした場合、その領域内のアクセス数は１００となる。すると実際には領域内のメモリセルの疲弊は最大でも１回分だが、１００回分疲弊したメモリセルが存在するかもしれないという想定で管理される事になり、適正なアクセス粒度でアクセス回数が管理されたメモリの疲弊度よりも悲観的な見積もりがなされていることになる。
【００１９】
そこで、本実施形態においては、ＮＶＭ１０の記憶領域を複数の領域に分割し、各領域での通算アクセス数をアクセス数テーブル５０によって管理する。一方、アドレスログ４０によって、現在および最近のアクセスを前記領域の粒度より細粒度であるサブ領域単位に管理する。アドレスログ４０は、異なる所定の個数のサブ領域に対するアクセスを管理する。或る１つの領域において、異なるサブ領域に対するアクセスが発生している場合は、その領域の通算アクセス数は更新されない。一方、或る１つの領域において、同じサブ領域に対する、２つのアクセスが発生している場合に、別言すれば、同じサブ領域に対する重複アクセスが発生している場合に、その領域の通算アクセス数が更新される。これにより、本実施形態においては、管理テーブルの容量を抑えつつ、疲弊度の指標となるアクセス回数の測定精度を向上できる。
【００２０】
アクセス数管理部２４は、ＮＶＭ１０の疲労度を把握するために、アドレスログ４０およびアクセス数テーブル５０を用いて、ＮＶＭ１０の複数の領域に対するアクセス数を管理する。この実施形態においては、ＮＶＭ１０の疲労度を把握するために、アクセス数管理部２４は、ホスト１からのライト要求に基づくアクセスのみを管理するとする。なお、アクセス数管理部２４は、ホスト１からのライト要求およびリード要求に基づくアクセスを管理してもよいし、メモリコントローラ２０の内部処理（ガベージコレクションやリフレッシュ制御など）に基づくＮＶＭ１０へのアクセスを含むようにアクセス回数を管理しても良い。
【００２１】
コマンド処理部２２は、ライトコマンド、ライトアドレス、およびライトデータを含むライト要求をホスト１から受信すると、このライト要求を所定の管理サイズＫ単位に正規化する。この管理サイズＫは、アドレスログ４０のアドレス管理単位に対応している。すなわち、
(a)ライト要求のデータサイズが管理サイズＫを超える場合は、受信したライト要求を、複数の管理サイズＫのライト要求に分割する。すなわち、ライトアドレスおよびライトデータが管理サイズＫに分割される。
(b) ライト要求のデータサイズが管理サイズＫ未満の場合は、ライトデータは管理サイズＫのデータと見做して処理される。
【００２２】
コマンド処理部２２は、正規化された論理アドレスとしてのライトアドレスをＮＶＭ１０の物理アドレスへ変換し、正規化されたライトデータを書き込むＮＶＭ１０上の実アドレスを決定する。コマンド処理部２２は、変換された管理サイズＫ単位の物理アドレスをアクセス数管理部２４へ通知する。
【００２３】
アクセス数管理部２４は、コマンド処理部２２から通知される物理アドレスを含む情報を、アクセス情報としてアドレスログ４０に記録する。アクセス数管理部２４は、アドレスログ４０の状態に応じてアクセス数テーブル５０を更新する。
【００２４】
図２は、アクセス数テーブル５０の一例を説明するための図である。アクセス数テーブル５０は、ＮＶＭ１０の記憶領域をＮ分割することによって得られるＮ個の領域#1〜#Nのアクセス数（通算アクセス回数）を領域#1〜#N毎に管理するためのテーブルである。Ｎは２以上の自然数である。Ｎ分割されるＮＶＭ１０の記憶領域は、例えば、ＮＶＭの全記憶領域のうちのユーザデータエリアとしてもよい。ユーザデータエリアは、ＮＶＭ１０の全記憶エリアのうちで、ホスト１から受信したライトデータが書き込まれるエリアである。
【００２５】
図３は、アドレスログ４０の一例を説明するための図である。アドレスログ４０は、アクセス情報を記録するための所定の個数Ｌのエントリを有する。アドレスログ４０は、アクセス数テーブルで管理される前記領域をさらにＭ分割したサブ領域単位に、前記アクセス情報を管理するものである。Ｍは２以上の自然数である。コマンド処理部２２から通知される、管理サイズＫ単位の物理アドレスは、前記サブ領域のサイズに対応している。アドレスログ４０の各エントリには、１つのサブ領域の位置を特定するためのアドレスと、エントリが有効であるか無効であるかを示す有効ビットとが、前記アクセス情報として記録されている。アドレスログ４０の各エントリに記録されるアドレスは、完全なアドレス情報でなくてもよく、例えばアドレスの一部のビットを削った情報でも良い。但し、アクセス数テーブル５０でのアクセス数の管理のため、アドレスログ４０の各エントリに記録されるアドレスは、アクセス数テーブル５０のどの領域のどのサブ領域に属するかを判別できるアドレス情報である必要がある。アドレスログ４０には、同一のサブ領域を特定するためのアドレス、すなわち同一のアドレスは１個までしか記録されない。したがって、アドレスログ４０は、アドレスログ４０の容量に対応するＬ個の異なるサブ領域のアクセス情報を管理している。
【００２６】
図４は、コマンド処理部２２から現ライト要求の物理アドレスが通知される度に、アクセス数管理部２４が実行する制御手順を示している。現ライト要求とは、アクセス数管理部２４の現在の処理対象のライト要求である。以下、図４に従って、第１の実施形態のアクセス数管理部２４の動作を説明する。アクセス数管理部２４は、現ライト要求によって指定される現物理アドレスと同じアドレスがアドレスログ４０に既に登録されているか否かを判定する(S100)。アクセス数管理部２４は、この処理によって、同じサブ領域に対する重複アクセスが発生しているか否かを判定する。現物理アドレスと同じアドレスがアドレスログに登録されていない場合は(S100 No)、アクセス数管理部２４は、アドレスログ４０の各エントリの有効ビットを判定することで、アドレスログ４０が満杯であるか否かを判定する(S110)。アドレスログ４０が満杯であるとは、アドレスログ４０の全てのエントリの有効ビットが１である状態に対応する。アドレスログがフルでない場合(S110 No)、アクセス数管理部２４は、アドレスログ４０の空きエントリあるいは有効ビットが０であるエントリに現物理アドレスを登録し、そのエントリの有効ビットを１にする(S160)。
【００２７】
現物理アドレスと同じアドレスがアドレスログ４０に既に登録されている場合(S100 Yes)、アクセス数管理部２４は、アクセス数テーブル５０の複数の領域#1〜#Nのなかから、現物理アドレスが所属する領域を更新対象領域として選択する(S120)。
【００２８】
アドレスログ４０がフルである場合(S110 Yes)、アクセス数管理部２４は、アドレスログ４０に既に登録されているアドレスが所属する１又は複数の領域の中から１つの領域を所定の選択ルールに従って更新対象領域として選択する(S130)。例えば、最も古くアドレスログ４０に登録されたアドレスが所属する領域を更新対象領域として選択してもよい。あるいは、アクセス数テーブル５０に登録されているＮ個の領域のなかで、所属するサブ領域のアドレスが最も多くアドレスログ４０に登録されている領域を更新対象領域として選択しても良い。例えば、領域#1に所属するサブ領域のアドレスがアドレスログ４０に４個登録され、領域#2に所属するサブ領域のアドレスがアドレスログ４０に１個登録されている場合、領域#1が更新対象領域として選択される。
【００２９】
つぎに、アクセス数管理部２４は、更新対象領域として選択された領域に所属するアドレスが登録されているエントリを全てアドレスログ４０から削除する(S140)。図３の例では、更新対象領域として選択された領域に所属するアドレスが登録されている、アドレスログ４０の全てのエントリの有効ビットを無効状態にする。さらに、アクセス数管理部２４は、アクセス数テーブル５０にアクセスし、更新対象領域として選択された領域のアクセス数をインクリメントする(S150)。最後に、アクセス数管理部２４は、アドレスログ４０の空きエントリあるいは有効ビットが０であるエントリに現物理アドレスを登録し、そのエントリの有効ビットを１にする(S160)。但し、ステップS130において、現ライト要求によって指定される現物理アドレスが所属する領域を更新対象領域として選択している場合は、ステップS160において、現物理アドレスをアドレスログ４０に登録しない。
【００３０】
図５は、ＮＶＭ１０の或る領域#1に対するアクセスを概念的に示す図である。アドレスログ４０には、領域#1に所属するアドレスとして、アドレスａ,アドレスｂおよびアドレスｃが既に登録されているとする。アドレスａに対する１回目のアクセスのとき、アドレスｂに対する１回目のアクセスのとき、およびアドレスｃに対する１回目のアクセスのときには、領域#1のアクセス数は更新されない。この状態において、アドレスｃに対するアクセスが発生すると、同じアドレスがアドレスログ４０に既に登録されているので、アクセス数テーブル５０の領域#1のアクセス数がインクリメントされる。また、領域#1に所属するアドレスａ,アドレスｂおよびアドレスｃがアドレスログ４０から削除される。その後、アドレスｃがアドレスロブ４０に登録される。
【００３１】
このように、第１の実施形態では、アドレスが同じでないサブ領域に対するアクセスの履歴をアドレスログ４０に蓄積記録している。そして、アドレスが同じサブ領域に対する重複アクセスが発生したときに、このサブ領域が所属する領域である該当領域のアクセス数をインクリメントする。また、前記該当領域に所属している履歴を全てアドレスログ４０から削除する。したがって、第１の実施形態では、管理テーブルの容量を抑えつつ、疲弊度の指標となるアクセス回数の測定精度を向上できる。特にシーケンシャルアクセスが多い場合は、アドレスログ４０がフルになるまではアクセス数テーブル５０のアクセス数が更新されない。このため、シーケンシャルアクセスのアクセス数を、正確に記録する事が出来る。
【００３２】
なお、ホストが指定する論理アドレスとＮＶＭ１０の実アドレスとの対応関係が固定であるメモリシステムの場合は、アドレスログは論理アドレスを管理すればよい。
【００３３】
（第２の実施形態）
図６は、第２の実施形態を説明するための図である。第２の実施形態では、アドレスログ４０の代わりに、図６に示すサブ領域カウンタ６０を備える。他の構成要素は、第１の実施形態と同様であり、重複する説明は省略する。
【００３４】
第２の実施形態では、アクセス情報を記録するための専用の記録部をサブ領域毎に設ける。この第２の実施形態では、アクセス情報を記録するための記録部として、各サブ領域のアクセス数をカウントするサブ領域カウンタ６０を採用している。サブ領域カウンタ６０は、アクセス数テーブル５０の管理単位である前記領域をさらにＭ分割したサブ領域毎にアクセス情報を別々に管理する。
【００３５】
サブ領域カウンタ６０は、領域#1〜#N毎に、複数のカウンタを有する。カウンタ60-11,60-12,…,60-1Mは、領域#1に対するアクセスを管理するためのカウンタである。カウンタ60-11は、領域#1の第１サブ領域に対するアクセスを専用に管理する。カウンタ60-12は、領域#1の第２サブ領域に対するアクセスを専用に管理する。カウンタ60-1Mは、領域#1の第Ｍサブ領域に対するアクセスを専用に管理する。同様に、カウンタ60-21は、領域#2の第１サブ領域に対するアクセスを専用に管理し、カウンタ60-22は、領域#2の第２サブ領域に対するアクセスを専用に管理し、カウンタ60-2Mは、領域#2の第Ｍサブ領域に対するアクセスを専用に管理する。以下、同様である。カウンタ１個当たりのビット幅は、数ビット（例えば2bit）程度にしている。
【００３６】
第２の実施形態においても、コマンド処理部２２は、ライトコマンド、ライトアドレス、およびライトデータを含むライト要求をホスト１から受信すると、このライト要求を所定の管理サイズに正規化する。コマンド処理部２２は、正規化されたライトアドレスをＮＶＭ１０の物理アドレスへ変換する。コマンド処理部２２は、変換された管理サイズＲ単位の物理アドレスをアクセス数管理部２４へ通知する。コマンド処理部２２から通知される物理アドレスによって特定されるサイズＲは、サブ領域のサイズと同じかあるいはサブ領域のサイズより小さい。
【００３７】
図７は、コマンド処理部２２から現ライト要求の物理アドレスが通知される度に、アクセス数管理部２４が実行する制御手順を示している。以下、図７に従って、第２の実施形態のアクセス数管理部２４の動作を説明する。アクセス数管理部２４は、現ライト要求によって指定される現物理アドレスが所属するサブ領域を選択する(S200)。アクセス数管理部２４は、サブ領域カウンタ６０にアクセスし、選択されたサブ領域のカウンタのカウント値が第１の値になっているか否かを判定する(S210)。アクセス数管理部２４は、この処理によって、同じサブ領域に対する重複アクセスが発生しているか否かを判定する。この実施形態では、第１の値は、カウンタの最大値とする。第１の値は、２以上の値に設定する。サブ領域のカウンタのカウント値が第１の値になっているか否かを判定することにより、同じサブ領域に対するアクセス回数が第１の値になっているか否かを判定する。選択されたサブ領域のカウンタのカウント値が最大値になっていない場合は(S210 No)、アクセス数管理部２４は、選択されたサブ領域のカウンタをインクリメントする(S240)。
【００３８】
選択されたサブ領域のカウンタのカウント値が最大値になっている場合(S210 Yes)、アクセス数管理部２４は、アクセス数テーブル５０にアクセスし、選択されたサブ領域が所属する領域のアクセス数をインクリメントする(S220)。さらに、アクセス数管理部２４は、アクセス数をインクリメントした領域に所属する全てのサブ領域のカウンタから１減算する(S230)。但し、カウント値が零のカウンタから１減算する場合、減算後のカウント値は零のままとする。最後に、今回の分のアクセス情報を反映させるため、選択されたサブ領域のカウンタをインクリメントする(S240)。
【００３９】
このように、第２の実施形態では、サブ領域毎にカウンタを設け、これらの複数のカウンタによってアクセス情報をサブ領域毎に別々に管理している。同じサブ領域に対するアクセスが発生したときに、このサブ領域が所属する領域である該当領域のアクセス数をインクリメントする。また、該当領域に所属している全てのサブ領域のカウント値を１減算する。したがって、第２の実施形態では、管理テーブルの容量を抑えつつ、疲弊度の指標となるアクセス回数の測定精度を向上できる。特に、全領域に跨るランダムアクセスが多い場合でも、サブ領域カウンタ６０によって全サブ領域をカバーできるので、ランダムアクセスのアクセス数を、正確に記録する事が出来る。
【００４０】
なお、上記では、各サブ領域に対するアクセス情報を記録するための記録部として、数ビット幅のカウンタ構成を採用したが、各サブ領域にアクセスが有ったか否かを単に示すアクセス情報を記録する記録部を採用してもよい。このケースでは、同じサブ領域に対する重複アクセスが発生したときに、このサブ領域が所属する領域である該当領域のアクセス数をインクリメントする。また、アクセス数をインクリメントした領域に所属する全てのサブ領域のアクセス情報をアクセス無しに更新する。最後に、重複アクセスがあったサブ領域のアクセス情報をアクセス有りに更新１する。
【００４１】
（第３の実施形態）
図８は第３の実施形態のメモリシステム１００の構成例を示すブロック図である。第３の実施形態では、第１の実施形態と第２の実施形態を組み合わせる。第３の実施形態のメモリシステムでは、アドレスログ４０，アクセス数テーブル５０およびサブ領域カウンタ６０を備える。アドレスログ４０、アクセス数テーブル５０およびサブ領域カウンタ６０の基本的構成は、第１または第２の実施形態と同様である。他の構成要素は、第１又は第２の実施形態と同様であり、重複する説明は省略する。但し、第３の実施形態において、
コマンド処理部２２から通知される物理アドレス、すなわちアドレスログ４０で管理されるアドレスによって特定される小領域のサイズをＲとし、サブ領域のサイズをＳとし、アクセス数テーブル５０で管理される領域#1〜#NのサイズをＴとすると、小領域のサイズＲ＜サブ領域のサイズＳ＜領域のサイズＴ、の関係となるように設定されている。すなわち、アドレスログ４０は小領域単位でアクセス情報を管理し、サブ領域カウンタ６０はサブ領域単位でアクセス情報を管理し、アクセス数テーブル５０は領域単位でアクセス情報を管理する。
【００４２】
図９は、コマンド処理部２２から現ライト要求の物理アドレスが通知される度に、アクセス数管理部２４が実行する制御手順を示している。以下、図９に従って、第３の実施形態のアクセス数管理部２４の動作を説明する。アクセス数管理部２４は、現ライト要求によって指定される小領域に対応する現物理アドレスと同じアドレスがアドレスログ４０に既に登録されているか否かを判定する(S300)。アクセス数管理部２４は、この処理によって、同じ小領域に対する重複アクセスが発生しているか否かを判定する。現物理アドレスと同じアドレスがアドレスログに登録されていない場合は(S300 No)、アクセス数管理部２４は、アドレスログ４０の各エントリの有効ビットを判定することで、アドレスログ４０が満杯であるか否かを判定する(S320)。アドレスログが満杯でない場合(S320 No)、アクセス数管理部２４は、アドレスログ４０の空きエントリあるいは有効ビットが０であるエントリに現物理アドレスを登録し、そのエントリの有効ビットを１にする(S360)。
【００４３】
現アクセスアドレスと同じアドレスがアドレスログ４０に既に登録されている場合(S300 Yes)、アクセス数管理部２４は、現小領域の物理アドレスが所属するサブ領域を更新対象サブ領域として選択する(S310)。
【００４４】
アドレスログ４０が満杯である場合(S320 Yes)、アクセス数管理部２４は、アドレスログ４０に既に登録されている小領域のアドレスが所属する１又は複数のサブ領域の中から１つのサブ領域を所定の選択ルールに従って更新対象サブ領域として選択する(S330)。例えば、最も古くアドレスログ４０に登録されたアドレスが所属するサブ領域を更新対象サブ領域として選択してもよい。あるいは、アクセス数テーブル５０に登録されている複数の領域のなかで、所属するサブ領域のアドレスが最も多くアドレスログ４０に登録されている領域を更新対象領域として選択しても良い。
【００４５】
つぎに、アクセス数管理部２４は、ステップS310またはS320において更新対象サブ領域として選択されたサブ領域に所属するアドレスが登録されているエントリを全てアドレスログ４０から削除する(S340)。さらに、アクセス数管理部２４は、アドレスログ４０の空きエントリあるいは有効ビットが０であるエントリに現小領域の物理アドレスを登録し、そのエントリの有効ビットを１にする(S350)。但し、ステップS330において、現ライト要求によって指定される現物理アドレスが所属する領域を更新対象サブ領域として選択している場合は、ステップS350において、現物理アドレスをアドレスログ４０に登録しない。
【００４６】
つぎに、アクセス数管理部２４は、サブ領域カウンタ６０にアクセスし、ステップS310またはステップS330で選択されたサブ領域のカウンタのカウント値が第１の値になっているか否かを判定する(S370)。アクセス数管理部２４は、この処理によって、同じサブ領域に対する重複アクセスが発生しているか否かを判定する。第１の値は、例えば、カウンタの最大値とする。第１の値は、２以上の値に設定する。選択されたサブ領域のカウンタのカウント値が最大値になっていない場合は(S370 No)、選択されたサブ領域のカウンタをインクリメントする(S400)。
【００４７】
選択されたサブ領域のカウンタのカウント値が最大値になっている場合(S370 Yes)、アクセス数管理部２４は、アクセス数テーブル５０にアクセスし、選択されたサブ領域が所属する領域のアクセス数をインクリメントする(S380)。さらに、アクセス数管理部２４は、アクセス数をインクリメントした領域に所属する全てのサブ領域のカウンタから１減算する(S390)。但し、カウント値が零のカウンタから１減算する場合、減算後のカウント値は零のままとする。最後に、今回の分のアクセス情報を反映させるため、アクセス数管理部２４は、選択されたサブ領域のカウンタをインクリメントする(S400)。
【００４８】
このように、第３の実施形態では、アドレスログ４０によって小領域単位でアクセス情報を管理し、サブ領域カウンタ６０によってサブ領域単位でアクセス情報を管理し、アクセス数テーブル５０によって領域単位でアクセス情報を管理している。そして、同じ小領域に対する重複アクセスが発生している場合に、前記重複アクセスが発生している小領域が所属するサブ領域のアクセス数を更新するように、アドレスログ４０およびサブ領域カウンタ６０を管理している。また、同じサブ領域に対する重複アクセスが発生している場合に、前記重複アクセスが発生しているサブ領域が所属する領域のアクセス数を更新するように、サブ領域カウンタ６０およびアクセス数テーブル５０を管理している。したがって、第２の実施形態では、管理テーブルの容量を抑えつつ、疲弊度の指標となるアクセス回数の測定精度を向上できる。
【００４９】
第３の実施形態において、シーケンシャルアクセスなどの局所性のあるアクセスが出来るだけサブ領域におさまるようなサイズをもってサブ領域の分割を行うと、ステップS370〜S400の処理の発生確率が下がり、シーケンシャルアクセスおよびランダムアクセスのアクセス数を正確に記録する事が出来る。しかし、逆に、ホスト１のアクセスパターンによっては特定のサブ領域にアクセスが偏る場合もあるので、ホスト１のアクセスパターンを判定し、この判定に基づいてサブ領域の分割サイズを切り換えるようにしてもよい。
【００５０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５１】
１  ホスト装置、１０  不揮発性半導体メモリ（ＮＶＭ）、２０  メモリコントローラ、２１  ホストIF部、２２  コマンド処理部、２３  ＮＶＭ制御部、２４  アクセス数管理部、４０  アドレスログ、５０  アクセス数テーブル、６０  サブ領域カウンタ、１００  メモリシステム。
【図１】
2018160060.tif 000003
【図２】
2018160060.tif 000004
【図３】
2018160060.tif 000005
【図４】
2018160060.tif 000006
【図５】
2018160060.tif 000007
【図６】
2018160060.tif 000008
【図７】
2018160060.tif 000009
【図８】
2018160060.tif 000010
【図９】
2018160060.tif 000011