(57)【要約】【課題】転記処理に起因する性能の低下を抑制すること。【解決手段】メモリシステムは、複数のブロックを有する不揮発性の半導体メモリと、メモリコントローラ回路とを備える。メモリコントローラ回路は、複数のブロックから、ガベージコレクションの対象のブロックである第１ブロックと、ウェアレベリングまたはリフレッシュの対象のブロックである第２ブロックと、を選択する。そして、メモリコントローラ回路は、第１ブロックに格納されている有効なデータである第１データを複数のブロックのうちの空き領域を有するブロックである第３ブロックに転記する。また、メモリコントローラ回路は、第２ブロックに格納されている有効なデータである第２データを複数のブロックのうちの空き領域を有し第３ブロックと異なるブロックである第４ブロックに転記する。【選択図】図６
2018160194.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックを有する不揮発性の半導体メモリと、
前記複数のブロックから、ガベージコレクションの対象のブロックである第１ブロックと、ウェアレベリングまたはリフレッシュの対象のブロックである第２ブロックと、を選択し、前記第１ブロックに格納されている有効なデータである第１データを前記複数のブロックのうちの空き領域を有するブロックである第３ブロックに転記し、前記第２ブロックに格納されている有効なデータである第２データを前記複数のブロックのうちの空き領域を有し前記第３ブロックと異なるブロックである第４ブロックに転記する、メモリコントローラ回路と、
を備えるメモリシステム。
【請求項２】
前記複数のブロックは、前記第３ブロックおよび前記第４ブロックの両方を同時に備える、請求項１に記載のメモリシステム。
【請求項３】
前記メモリコントローラ回路は、前記第１データの前記第３ブロックへの転記と、前記第２データの前記第４ブロックへの転記とを、前記ブロックよりも小さいサイズのデータ単位で切り替える、
請求項２に記載のメモリシステム。
【請求項４】
前記メモリコントローラ回路は、前記第１データの前記第３ブロックへの書き込みレートと前記第２データの前記第４ブロックへの書き込みレートとの比が設定値に近づくように、前記第１データの転記と前記第２データの転記とを実行する、
請求項３に記載のメモリシステム。
【請求項５】
前記メモリコントローラ回路は、前記第１ブロックを前記複数のブロックのそれぞれに格納されている有効なデータの量に基づいて選択する、
請求項１に記載のメモリシステム。
【請求項６】
前記メモリコントローラ回路は、前記第２ブロックを前記複数のブロックのそれぞれに対する消去の実行回数に基づいて選択する、
請求項１に記載のメモリシステム。
【請求項７】
前記メモリコントローラ回路は、前記第２ブロックを前記複数のブロックのそれぞれに対する読み出しの実行回数に基づいて選択する、
請求項１に記載のメモリシステム。
【請求項８】
前記メモリコントローラ回路は、前記第２ブロックを前記複数のブロックのそれぞれからリードされたデータに含まれるエラービット数に基づいて選択する、
請求項１に記載のメモリシステム。
【請求項９】
前記メモリコントローラ回路は、前記第２ブロックを、前記複数のブロックのそれぞれの、データが格納されてからの経過時間に基づいて選択する、
請求項１に記載のメモリシステム。
【請求項１０】
前記メモリコントローラ回路は、
ホストに接続可能なインタフェース回路を備え、
前記インタフェース回路を介して前記ホストから受信したデータである第３データを前記第２ブロックとも前記第４ブロックとも異なる第５ブロックに書き込み、
前記第１データの前記第３ブロックへの書き込みレートと前記第２データの前記第４ブロックへの書き込みレートと前記第３データの前記第５ブロックへの書き込みレートとの比が設定値に近づくように、前記第１データの転記と前記第２データの転記と前記第３データの書き込みとを実行する、
請求項３に記載のメモリシステム。
【請求項１１】
メモリコントローラ回路が複数のブロックを有する不揮発性の半導体メモリを制御する方法であって、
前記複数のブロックから、ガベージコレクションの対象のブロックである第１ブロックを選択し、
前記複数のブロックから、ウェアレベリングまたはリフレッシュの対象のブロックである第２ブロックを選択し、
前記第１ブロックに格納されている有効なデータである第１データを前記複数のブロックのうちの空き領域を有するブロックである第３ブロックに転記し、
前記第２ブロックに格納されている有効なデータである第２データを前記複数のブロックのうちの空き領域を有し前記第３ブロックと異なるブロックである第４ブロックに転記する、
方法。
【請求項１２】
前記複数のブロックは、前記第３ブロックおよび前記第４ブロックの両方を同時に備える、
請求項１１に記載の方法。
【請求項１３】
前記第１データの前記第３ブロックへの転記と、前記第２データの前記第４ブロックへの転記とを、前記ブロックよりも小さいサイズのデータ単位で切り替える、
をさらに備える請求項１２に記載の方法。
【請求項１４】
前記第１データの前記第３ブロックへの書き込みレートと前記第２データの前記第４ブロックへの書き込みレートとの比が設定値に近づくように、前記第１データの転記と前記第２データの転記とを実行する、
をさらに備える請求項１３に記載の方法。
【請求項１５】
前記第１ブロックを前記複数のブロックのそれぞれに格納されている有効なデータの量に基づいて選択する、
をさらに備える請求項１１に記載の方法。
【請求項１６】
前記第２ブロックを前記複数のブロックのそれぞれに対する消去の実行回数に基づいて選択する、
をさらに備える請求項１１に記載の方法。
【請求項１７】
前記第２ブロックを前記複数のブロックのそれぞれに対する読み出しの実行回数に基づいて選択する、
をさらに備える請求項１１に記載の方法。
【請求項１８】
前記第２ブロックを前記複数のブロックのそれぞれからリードされたデータに含まれるエラービット数に基づいて選択する、
をさらに備える請求項１１に記載の方法。
【請求項１９】
前記第２ブロックを、前記複数のブロックのそれぞれの、データが格納されてからの経過時間に基づいて選択する、
をさらに備える請求項１１に記載の方法。
【請求項２０】
メモリコントローラ回路に備えられるインタフェース回路を介してホストから受信したデータである第３データを前記第２ブロックとも前記第４ブロックとも異なる第５ブロックに書き込み、
前記第１データの前記第３ブロックへの書き込みレートと前記第２データの前記第４ブロックへの書き込みレートと前記第３データの前記第５ブロックへの書き込みレートとの比が設定値に近づくように、前記第１データの転記と前記第２データの転記と前記第３データの書き込みとを実行する、
をさらに備える請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、メモリシステムおよび方法に関する。
【背景技術】
【０００２】
従来、ＳＳＤ（Solid  State  Drive）と呼ばれるメモリシステムが知られている。ＳＳＤは、ＮＡＮＤ型フラッシュメモリ等の不揮発性の半導体メモリを用いたデバイスである。
【０００３】
ＮＡＮＤ型フラッシュメモリでは、原則的に、データを上書きできない。また、ＮＡＮＤ型フラッシュメモリは、データの消去をブロック単位でしか実行できない。このため、ＳＳＤでは、ガベージコレクションと呼ばれる転記処理（relocating  process）を実行することによって、空き領域を有するブロックを生成する。転記処理は、ホストから送られてきたデータの半導体メモリへの書き込みと並行して実行される。よって、転記処理は、メモリシステムの性能を低下させる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一つの実施形態は、転記処理に起因する性能の低下を抑制したメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
一つの実施形態によれば、メモリシステムは、複数のブロックを有する不揮発性の半導体メモリと、メモリコントローラ回路とを備える。メモリコントローラ回路は、複数のブロックから、ガベージコレクションの対象のブロックである第１ブロックと、ウェアレベリングまたはリフレッシュの対象のブロックである第２ブロックと、を選択する。そして、メモリコントローラ回路は、第１ブロックに格納されている有効なデータである第１データを複数のブロックのうちの空き領域を有するブロックである第３ブロックに転記する。また、メモリコントローラ回路は、第２ブロックに格納されている有効なデータである第２データを複数のブロックのうちの空き領域を有し第３ブロックと異なるブロックである第４ブロックに転記する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態のメモリシステムの構成例を示す図である。
【図２】図２は、ホストライト量と転記ライト量との比を説明する図である。
【図３】図３は、有効データ率を説明するための図である。
【図４】図４は、第１の実施形態の転記処理の特徴を示す図である。
【図５】図５は、第１の実施形態のブロック構成例を示す図である。
【図６】図６は、第１の実施形態のメモリシステムのメモリ構成例を説明する図である。
【図７】図７は、第１の実施形態のログ情報のデータ構成例を示す図である。
【図８】図８は、第１の実施形態のメモリシステムの機能的構成を説明するための図である。
【図９】図９は、第１の実施形態のＧＣ対象選択部の動作の一例を示すフローチャートである。
【図１０】図１０は、第１の実施形態のＷＬ対象選択部の動作の一例を示すフローチャートである。
【図１１】図１１は、第１の実施形態の転記元切り替え部の動作の一例を示すフローチャートである。
【図１２】図１２は、第１の実施形態の有効判定部の動作の一例を示すフローチャートである。
【図１３】図１３は、第１の実施形態の転記制御部の動作の一例を示すフローチャートである。
【図１４】図１４は、第１の実施形態のＮＡＮＤメモリへの書き込みの順番を説明する図である。
【図１５】図１５は、第２の実施形態の転記処理の特徴を示す図である。
【図１６】図１６は、第２の実施形態のメモリシステムの機能的構成を説明するための図である。
【図１７】図１７は、第２の実施形態のリフレッシュ対象選択部の動作の一例を示すフローチャートである。
【図１８】図１８は、第２の実施形態のリフレッシュ対象選択部の動作の別の一例を示すフローチャートである。
【図１９】図１９は、第２の実施形態のリフレッシュ対象選択部の動作のさらに別の一例を示すフローチャートである。
【図２０】図２０は、第３の実施形態のＲＡＭに格納される各種データを説明する図である。
【図２１】図２１は、第３の実施形態の転記制御部の動作を説明するフローチャートである。
【図２２】図２２は、第３の実施形態のＮＡＮＤメモリへの書き込みの順番を説明する図である。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【０００８】
（第１の実施形態）
図１は、第１の実施形態のメモリシステムの構成例を示す図である。メモリシステム１は、ホスト２と所定の通信インタフェースで接続される。ホスト２は、例えばパーソナルコンピュータ、携帯情報端末、またはサーバなどが該当する。メモリシステム１は、ホスト２からアクセス要求（リード要求およびライト要求）を受け付けることができる。各アクセス要求は、アクセス先を示す論理アドレスを含んでいる。論理アドレスは、メモリシステム１がホスト２に提供する論理アドレス空間内の位置を示す。メモリシステム１は、ライト要求とともに、書き込み対象のデータを受け付ける。
【０００９】
メモリシステム１は、メモリコントローラ１０と、ＮＡＮＤ型のフラッシュメモリ（ＮＡＮＤメモリ）２０と、を備えている。メモリコントローラ１０は、ホスト２とＮＡＮＤメモリ２０との間のデータ転送を実行する回路である。なお、メモリシステム１は、ＮＡＮＤメモリ２０の代わりに任意の不揮発性メモリを具備することができる。例えば、メモリシステム１は、ＮＡＮＤメモリ２０の代わりにＮＯＲ型のフラッシュメモリを具備することができる。
【００１０】
ＮＡＮＤメモリ２０は、１以上のメモリチップ２１を含む。ここでは一例として、ＮＡＮＤメモリ２０は４つのメモリチップ２１を含む。各メモリチップ２１は、複数のブロック（ブロック２２）を備える。ブロック２２は、例えばデータのイレースが実行され得る最小の記憶領域である。ブロック２２は、複数のページを備える。ページは、例えばデータのリードまたはデータのライトが実行され得る最小の記憶領域である。
【００１１】
なお、複数のブロック２２は、１つの論理的なブロック（論理ブロック）を構成してもよい。一例では、それぞれが異なるメモリチップ２１に属する複数のブロック２２によって、１つの論理ブロックが構成され、当該論理ブロックを構成する複数のブロック２２に格納されているデータは、一括してイレースされる。
【００１２】
また、複数のページは、１つの論理的なページ（論理ページ）を構成してもよい。一例では、１つの論理ページは、１つの論理ブロックを構成する複数のブロック２２のうちのそれぞれ異なるブロック２２の同一のページ番号のページによって構成される。１つの論理ページには、データのリードまたはデータのライトが並列に実行され得る。
【００１３】
ブロック２２を論理ブロックで置き換え、ページを論理ページで置き換えた場合であっても、以降に説明する技術は適用可能である。
【００１４】
メモリコントローラ１０は、ＣＰＵ（Central  Processing  Unit）１１と、ホストインタフェース（Ｉ／Ｆ）１２と、ＲＡＭ（Random  Access  Memory）１３と、ＮＡＮＤＣ（Nand  Controller）１４と、を備える。
【００１５】
ＣＰＵ１１は、ファームウェアプログラムに基づいてメモリコントローラ１０の制御を実行する。ファームウェアプログラムは、例えばＮＡＮＤメモリ２０などの不揮発性メモリに予め格納されており、起動時にＮＡＮＤメモリ２０から読み出されてＣＰＵ１１によって実行される。
【００１６】
ＲＡＭ１３は、一時記憶領域を提供するメモリである。ＲＡＭ１３を構成するメモリの種類は、特定の種類に限定されない。例えば、ＲＡＭ１３は、ＤＲＡＭ（Dynamic  Random  Access  Memory）、ＳＲＡＭ（Static  Random  Access  Memory）、またはこれらの組み合わせによって構成される。ＲＡＭ１３に格納される各種データの詳細は、後述する。
【００１７】
ホストインタフェース１２は、ホスト２との間の通信インタフェースの制御を実行する。ホストインタフェース１２は、ＣＰＵ１１による制御の下で、ホスト２とＲＡＭ１３との間のデータ転送を実行する。ＮＡＮＤＣ１４は、ＣＰＵ１１による制御の下で、ＮＡＮＤメモリ２０とＲＡＭ１３との間のデータ転送を実行したりする。即ち、ＣＰＵ１１による制御の下で、ホスト２とＮＡＮＤメモリ２０との間のデータ転送は、ＲＡＭ１３を介して実行される。ホスト２から送られてきたデータをユーザデータ（例えば、図６に示すユーザデータ２３）と表記する。
【００１８】
ＣＰＵ１１は、ユーザデータ２３をＮＡＮＤメモリ２０に書き込む際には、空き領域からそのユーザデータ２３の書き込み先の物理的位置を決定する。物理的位置は、物理アドレスによって表記される。空き領域とは、いずれのデータも格納されていない領域であり、新たなデータの書き込みが可能な領域である。ＣＰＵ１１は、当該ユーザデータ２３の位置を示す論理アドレスに、決定された書き込み先の物理的位置をマッピングする。
【００１９】
ここで、当該ユーザデータ２３（新しいユーザデータ２３）の位置を示す論理アドレスに別のユーザデータ２３（古いユーザデータ２３）の書き込み先の物理的位置がマッピングされていた場合、マッピングの更新により、当該古いユーザデータ２３の書き込み先の物理的位置は、論理アドレスにマッピングされていない状態となる。その結果、ホスト２は、新しいユーザデータ２３をメモリシステム１からリードすることが可能であるが、古いユーザデータ２３をリードすることができなくなる。論理アドレスにマッピングされている物理的位置に格納されているユーザデータ２３を、有効データと表記する。論理アドレスにマッピングされていない物理的位置に格納されているユーザデータ２３を、無効データと表記する。
【００２０】
また、ＣＰＵ１１は、ホスト２とＮＡＮＤメモリ２０とのデータ転送のほかに、転記処理を実行する。転記処理とは、少なくとも有効データを、ＮＡＮＤメモリ２０内のブロック２２間で移動する処理である。
【００２１】
ＣＰＵ１１が実行する転記処理の一例としては、ガベージコレクションがある。空き領域の消費が進むと、空き領域を有するブロック２２が枯渇する。ＣＰＵ１１は、ブロックをイレースする、すなわち、ブロック内に含まれる無効データをイレースすることによって、空き領域を有するブロック２２を生成する。１つのブロック２２に記憶される全てのデータが無効であることは稀であるため、実際には、ＣＰＵ１１は、あるブロック２２内に残っている有効データを別のブロック２２にコピーし、その後、コピー元のブロック２２に記憶される全てのデータをイレースする。有効データのコピーとともにマッピングが更新され、その結果、コピー元のブロック２２は、有効データを全く含まないブロック２２になる。この有効データを全く含まなくなったブロック２２は、フリーブロックと呼ばれる。フリーブロックの数を増やすためのデータの転記処理は、ガベージコレクションと呼ばれる。
【００２２】
ＣＰＵ１１は、ガベージコレクションの他の転記処理として、ウェアレベリングを実行する。ウェアレベリングとは、ブロック２２毎のイレース回数を複数のブロック２２間で平滑化するために、データをブロック２２間でコピーする処理である。ＣＰＵ１１は、ＮＡＮＤメモリ２０が有する複数のブロック２２間でイレース回数に差が生じている場合に、イレース回数が少ないブロック２２を優先的に転記元として選択する。ウェアレベリングでは、ブロック２２間で、イレース回数でなく、イレース実行後からの経過時間に差が生じている場合に、経過時間が他よりも多いブロック２２を転記元として選択してもよい。
【００２３】
なお、ウェアレベリングでは、有効データだけでなく無効データもコピーされ得る。しかし、これ以降では、ウェアレベリングでは、有効データだけがコピーされることとして説明する。
【００２４】
次に、転記処理がメモリシステム１の性能に与える影響を説明する。転記処理においてユーザデータ２３をＮＡＮＤメモリ２０に書き込むことを、転記ライトと表記する。ホスト２から受信したユーザデータ２３を最初にＮＡＮＤメモリ２０に書き込むことを、ホストライトと表記する。
【００２５】
図２は、ホストライト量と転記ライト量との比を説明する図である。ホストライト量とは、ホストライトによってＮＡＮＤメモリ２０に書き込まれるユーザデータ２３の量を意味する。転記ライト量とは、転記ライトによってＮＡＮＤメモリ２０に書き込まれるユーザデータ２３の量に相当する。図２において、斜線部の面積は、有効データの量に対応する。図２（ａ）は、有効データ率が５０％のブロック２２が転記元である場合の転記処理を示しており、図２（ｂ）は、有効データ率が７５％のブロック２２が転記元である場合の転記処理を示している。有効データ率とは、ブロック２２に格納可能なユーザデータ２３の総量に対するブロック２２に格納されている有効データの量の割合をいう。
【００２６】
ホスト２から受信した１つのブロック２２分のデータをＮＡＮＤメモリ２０に書き込む場合、１つのフリーブロックが消費される。フリーブロックの数の収支を合わせるためには、フリーブロックの数を１つ増加させる必要がある。
【００２７】
図２（ａ）に示されるように、有効データ率が５０％のブロック２２が転記元である場合において、フリーブロックの数を１つ増やすためには、２個の転記元が必要である。このとき、転記ライト量の合計は、１つのブロック２２分のデータの量に相当する。よって、ホストライト量と転記ライト量との比は、１：１となる。
【００２８】
これに対し、図２（ｂ）に示されるように、有効データ率が７５％のブロック２２が転記元である場合において、フリーブロックの数を１つ増やすためには、４個の転記元が必要である。このとき、転記ライト量の合計は、３つのブロック２２分のデータの量に相当する。よって、ホストライト量と転記ライト量との比は、１：３となる。
【００２９】
このように、転記元のブロック２２の有効データ率が小さいほど、ホストライト量に対する転記ライト量の比を小さくすることができる。よって、転記元のブロック２２の有効データ率が小さいほど、転記処理による性能の低下が小さい。よって、ＣＰＵ１１は、ガベージコレクションにおいては、有効データ率が小さいブロック２２を優先的に転記元として選択する。
【００３０】
ホスト２からメモリシステム１に送られてくる各データの書き換え頻度は、データ毎に偏りがある場合がある。書き換えによって短期間で無効になる傾向があるユーザデータ２３の状態を、ホット（hot）と呼び、長期間書き換えられないことによって有効である期間が長い傾向があるユーザデータ２３の状態を、コールド（cold）と呼ぶ。
【００３１】
図３は、有効データ率を説明するための図である。具体的には、図３（ａ）は、ホットデータとコールドデータとがそれぞれ異なるブロック２２に分けて格納される場合の有効データ率を示す。図３（ｂ）は、ホットデータとコールドデータとが同一のブロック２２に混ぜて格納される場合の有効データ率を示す。図３（ａ）および図３（ｂ）は、それぞれ３つのブロック２２分の量のホットデータと２つのブロック２２分の量のコールドデータとが書き込まれ、その後、同量の（およそ６６％の）ホットデータが無効になった状態を示している。
【００３２】
図３（ａ）に示される例の場合、ホットデータが格納された３つのブロック２２それぞれの有効データ率は３４％であり、コールドデータが格納された２つのブロック２２それぞれの有効データ率は１００％である。これに対し、図３（ｂ）に示される例の場合、５つのブロック２２それぞれの有効データ率は、５７〜６３％である。
【００３３】
このように、ホットデータとコールドデータとがそれぞれ異なるブロック２２に格納される場合、ホットデータとコールドデータとが同一のブロック２２に混ぜて格納される場合に比べ、有効データ率が小さいブロック２２が生じる。ホットデータとコールドデータとがそれぞれ異なるブロック２２に格納される場合、ホットデータとコールドデータとが同一のブロック２２に混ぜて格納される場合に比べ、有効データ率がより小さいブロック２２を転記元のブロック２２として選択することが可能となるので、転記処理による性能の低下をより小さくすることが可能である。
【００３４】
第１の実施形態では、ホットデータとコールドデータとそれぞれ異なるブロック２２に格納しておく。このために、転記処理において、ＣＰＵ１１は、ホットデータとコールドデータとをそれぞれ別のブロック２２に転記することができる。
【００３５】
なお、ホットデータとコールドデータとの区別の方法は、特定の方法に限定されない。以下に、第１の実施形態におけるホットデータとコールドデータとの区別の方法を説明する。
【００３６】
ホットデータを多く記憶しているブロック２２（以降、ホットブロック２２）は、コールドデータを多く記憶しているブロック２２（以降、コールドブロック２２）に比べ、有効データ率の減少速度が速い。よって、ホットブロック２２は、コールドブロック２２に比べ、ガベージコレクションの転記元として選択され易い。
【００３７】
逆に、コールドブロック２２は、ホットブロック２２に比べ、ガベージコレクションの転記元として選択され難く、その結果、他のブロック２２に比べ、イレース回数が少なくなる傾向がある。よって、コールドブロック２２は、ホットブロック２２に比べ、ウェアレベリングの転記元として選択され易い。
【００３８】
以上の性質に基づき、第１の実施形態では、ＣＰＵ１１は、ガベージコレクションの転記元として選択されたブロック２２をホットブロック２２として見なし、ホットブロック２２に格納されているユーザデータ２３をホットデータとして見なす。そして、ＣＰＵ１１は、ウェアレベリングの転記元として選択されたブロック２２をコールドブロック２２として見なし、コールドブロック２２に格納されているユーザデータ２３をコールドデータとして見なす。即ち、図４に例示されるように、ＣＰＵ１１は、ガベージコレクションの転記元として選択されたブロック２２に格納されている有効なユーザデータ２３を、ホットデータの転記先として用意されているブロック２２ａ１に転記し、ウェアレベリングの転記元として選択されたブロック２２に格納されている有効なユーザデータ２３を、コールドデータの転記先として用意されているブロック２２ａ２に転記する。
【００３９】
図５は、第１の実施形態のブロック構成例を示す図である。本図に例示されるように、ホットデータの転記先のブロック２２ａ１、コールドデータの転記先のブロック２２ａ２、およびホストライトによる書き込み先のブロック２２ａ３がそれぞれ１つずつ設定されている。ホットデータの転記先のブロック２２ａ１、コールドデータの転記先のブロック２２ａ２、およびホストライトによる書き込み先のブロック２２ａ３を、インプットブロック２２ａと総称する。また、ＮＡＮＤメモリ２０は、アクティブブロック２２ｂおよびフリーブロック２２ｃを含む。アクティブブロック２２ｂは、データが一杯まで書き込まれた状態のブロック２２である。なお、アクティブブロック２２ｂは必ずしもデータが一杯まで書き込まれていなくてもよい。転記元のブロック２２は、アクティブブロック２２ｂから選択される。インプットブロック２２ａのうちの一がデータで一杯になると、そのインプットブロック２２ａは、以降、アクティブブロック２２ｂと見なされる。そして、新たなインプットブロック２２ａがフリーブロック２２ｃから選択される。
【００４０】
このように、本実施形態では、ホットデータの転機先とコールドデータの転機先との両方が同時に異なるブロックとして確保される。
【００４１】
なお、コールドブロック２２の有効データ率は、ガベージコレクションの転記元として選択されるホットブロック２２に比べて大きい傾向がある。よって、転記処理において、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比が増加するにつれて、ホストライト量に対する総転記ライト量の比が増加し、その結果、メモリシステム１の性能の悪化が起こる。また、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比が変動すると、ホストライト量に対する総転記ライト量の比が変動するので、メモリシステム１の性能が変動する。なお、書き込みレートとは、時間に対して定義されるのではなく、単位量のデータの書き込みの実行頻度の割合をいう。単位量は、例えばページサイズなど、ブロックに比べて小さいサイズである。
【００４２】
第１の実施形態では、メモリシステム１の性能をターゲット性能以上に保つために、ＣＰＵ１１は、転記処理において、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比が所定値となるように制御する場合がある。
【００４３】
また、第１の実施形態では、メモリシステム１の性能の変動を小さくするために、ＣＰＵ１１は、ブロック２２ａ１に対する書き込みおよびブロック２２ａ２に対する書き込みを、ブロック単位で切り替えるのではなく、ブロック２２よりも小さい単位で切り替える。ここでは、ＣＰＵ１１は、各書き込みをページ単位で切り替える例について説明するが切り替えの単位はこれに限定されない。
【００４４】
図６は、第１の実施形態のメモリシステム１のメモリ構成例を説明する図である。図示するように、ＮＡＮＤメモリ２０には、１以上のユーザデータ２３と、１以上のログ情報２４とが格納され得る。各ユーザデータ２３は、ホスト２から送られてきたデータである。ログ情報２４は、ユーザデータ２３がホスト２から送られてきた時点におけるそのユーザデータ２３の論理アドレスを少なくとも記録した情報である。
【００４５】
図７は、ログ情報のデータ構成例を示す図である。本図において、４つのユーザデータ２３ａ〜２３ｄと、ログ情報２４と、は、１つのページに書き込まれる。４つのユーザデータ２３ａ〜２３ｄのそれぞれと、ログ情報２４と、は、ページよりも小さい決められた単位サイズを有する。この単位サイズは、一例では、クラスタと呼ばれるサイズである。ログ情報２４は、４つのユーザデータ２３ａ〜２３ｄの論理アドレスが記録された配列である。ログ情報２４に記録された４つの論理アドレスの順番は、４つのユーザデータ２３ａ〜２３ｄの物理アドレスの順番に対応する。よって、ログ情報２４を検索することによって、そのログ情報２４と同一のページに格納されている４つのユーザデータ２３ａ〜２３ｄのホスト２から送られてきた際の論理アドレスを得ることが可能である。
【００４６】
なお、上記のログ情報２４のデータ構成は一例である。各ユーザデータ２３のホスト２から送られてきた際の論理アドレスが特定可能である限り、ログ情報２４のデータ構成はこれに限定されない。
【００４７】
図６に説明を戻す。ＲＡＭ１３には、翻訳情報１３１、有効データカウンタ１３２、イレース回数カウンタ１３３、ホットデータ転記先情報１３４、コールドデータ転記先情報１３５、およびホストライト先情報１３６が格納される。また、ＲＡＭ１３には、有効データ情報プール１３７がアロケートされる。
【００４８】
翻訳情報１３１は、論理アドレスに対する物理アドレスのマッピングを示す情報である。ＣＰＵ１１は、ホスト２から送られてきたユーザデータ２３をＮＡＮＤメモリ２０に書き込む際、および、転記処理において有効データをＮＡＮＤメモリ２０に書き込む際、翻訳情報１３１を更新する。
【００４９】
具体的には、ＣＰＵ１１は、新しくホスト２から送られてきたユーザデータ２３をＮＡＮＤメモリ２０に書き込む際に、翻訳情報１３１を更新することによって、そのユーザデータ２３の論理アドレスにそのユーザデータ２３の書き込み先を示す物理アドレスを対応付ける。ＣＰＵ１１は、転記処理において有効なユーザデータ２３をＮＡＮＤメモリ２０に書き込む際、そのユーザデータ２３の論理アドレスにそのユーザデータ２３の書き込み先（転記先）を示す物理アドレスを対応付ける。
【００５０】
また、ＣＰＵ１１は、ホスト２から受信したリード要求の処理などにおいて、論理アドレスに対応する物理アドレスを求める際に、翻訳情報１３１を検索することによって、その論理アドレスをその物理アドレスに翻訳する。
【００５１】
有効データカウンタ１３２は、ブロック２２毎に有効なユーザデータ２３の量が記録された情報である。有効なユーザデータ２３の量の表現形式は任意に構成可能である。一例では、有効なユーザデータ２３の量は、クラスタの数で表現され得る。ＣＰＵ１１は、ホスト２から送られてきたユーザデータ２３をＮＡＮＤメモリ２０に書き込む際、および、転記処理において有効データをＮＡＮＤメモリ２０に書き込む際、有効データカウンタ１３２を更新する。
【００５２】
イレース回数カウンタ１３３は、ブロック２２毎にイレース回数が記録された情報である。ＣＰＵ１１は、例えば、或るブロック２２に対してイレースを実行すると、イレース回数カウンタ１３３に記録されているそのブロック２２のイレース回数をインクリメントする。
【００５３】
ホットデータ転記先情報１３４は、ホットデータの転記先を記録した情報であり、少なくともホットデータの転記先のブロック２２ａ１を示す。コールドデータ転記先情報１３５は、コールドデータの転記先を記録した情報であり、少なくともコールドデータの転記先のブロック２２ａ２を示す。ホストライト先情報１３６は、少なくともホストライトの書き込み先のブロック２２ａ３を示す。
【００５４】
ＣＰＵ１１は、ホットデータの転記先のブロック２２ａが一杯になると、フリーブロック２２ｃを１つ選択し、選択されたフリーブロック２２ｃに対してイレースを実行し、イレースが実行されたフリーブロック２２ｃをホットデータの新たな転記先のブロック２２ａ１として設定する。同様に、ＣＰＵ１１は、コールドデータの転記先のブロック２２ｂが一杯になると、フリーブロック２２ｃを１つ選択し、選択されたフリーブロック２２ｃに対してイレースを実行し、イレースが実行されたフリーブロック２２ｃをコールドデータの新たな転記先のブロック２２ｂとして設定する。同様に、ＣＰＵ１１は、ホストライトのための書き込み先のブロック２２ａ３が一杯になると、フリーブロック２２ｃを１つ選択し、選択されたフリーブロック２２ｃに対してイレースを実行し、イレースが実行されたフリーブロック２２ｃをホストライトのための新たな書き込み先のブロック２２ａ３として設定する。
【００５５】
有効データ情報プール１３７は、有効データ情報（例えば、図８等に示す有効データ情報１３８）がプールされるバッファ領域である。転記処理においては、転記対象のユーザデータ２３を特定する処理が実行される。転記対象のユーザデータ２３とは、転記元のブロック２２に格納されている有効なユーザデータ２３である。有効データ情報１３８は、特定された転記対象のユーザデータ２３を示す中間情報である。有効データ情報プール１３７の詳細は後述する。
【００５６】
図８は、第１の実施形態のメモリシステム１の機能的構成を説明するための図である。本図に例示されるように、メモリシステム１は、ガベージコレクション（ＧＣ）対象選択部１１１、ウェアレベリング（ＷＬ）対象選択部１１２、転記元切り替え部１１３、有効判定部１１４、および転記制御部１１５を備える。ＧＣ対象選択部１１１、ＷＬ対象選択部１１２、転記元切り替え部１１３、有効判定部１１４、および転記制御部１１５は、一例では、ＣＰＵ１１がファームウェアプログラムを実行することによって実現する。
【００５７】
ＧＣ対象選択部１１１は、ＮＡＮＤメモリ２０が備える複数のブロック２２からガベージコレクションの転記元を選択する。ＧＣ対象選択部１１１は、有効データカウンタ１３２を参照し、アクティブブロック２２ｂから、各ブロック２２の有効データ率に基づいて、ガベージコレクションの転記元を選択する。
【００５８】
ＷＬ対象選択部１１２は、ＮＡＮＤメモリ２０が備える複数のブロック２２からウェアレベリングの転記元を選択する。ＷＬ対象選択部１１２は、イレース回数カウンタ１３３を参照し、アクティブブロック２２ｂから、各ブロック２２のイレース回数に基づいて、ウェアレベリングの転記元を選択する。
【００５９】
転記元切り替え部１１３は、ガベージコレクションの転記元またはウェアレベリングの転記元からログ情報２４をリードするための要求であるログリード要求をＮＡＮＤＣ１４を介してＮＡＮＤメモリ２０に送信する。
【００６０】
有効判定部１１４は、ＮＡＮＤメモリ２０から読み出されたログ情報２４と翻訳情報１３１とに基づき、転記元に格納されている有効なユーザデータ２３を特定する。そして、有効判定部１１４は、特定した有効なユーザデータ２３を示す有効データ情報１３８を、有効データ情報プール１３７に格納する。
【００６１】
ログ情報２４は、ユーザデータ２３がホスト２から送られてきた際のそのユーザデータ２３の論理アドレスを示しており、そのユーザデータ２３と同じページに書き込まれる。よって、有効判定部１１４は、ログ情報２４から、そのユーザデータ２３のホスト２から送られてきた際の論理アドレスと、物理アドレスと、の対応関係を得ることができる。一方、翻訳情報１３１は、論理アドレスと物理アドレスとの最新の対応関係を示している。ログ情報２４から得られる対応関係が翻訳情報１３１が示す対応関係と一致する場合、有効判定部１１４は、そのユーザデータ２３は有効であると判定する。ログ情報２４から得られる対応関係が翻訳情報１３１が示す対応関係と一致しない場合、有効判定部１１４は、そのユーザデータ２３は無効であると判定する。
【００６２】
有効データ情報１３８のデータ構成は特定のデータ構成に限定されない。一例では、有効データ情報１３８は、論理アドレスと物理アドレスとの対を含む。有効データ情報１３８に記録される物理アドレスは、転記対象のユーザデータ２３が格納されている位置を示す物理アドレスであり、有効データ情報１３８に記録される論理アドレスは、その物理アドレスがマッピングされている論理アドレスである。
【００６３】
転記制御部１１５は、有効データ情報プール１３７に格納されている有効データ情報１３８が示すユーザデータ２３を、転記元のブロック２２からＮＡＮＤＣ１４を介して読み出し、読み出された有効なユーザデータ２３を、ＮＡＮＤＣ１４を介して転記先のブロック２２に書き込む。転記制御部１１５は、コールドデータをコールドデータ転記先情報１３５が示すブロック２２に書き込み、ホットデータをホットデータ転記先情報１３４が示すブロック２２に書き込む。
【００６４】
なお、転記対象のユーザデータ２３がホットデータであるかコールドデータであるかを識別可能するための方法の一例として、ユーザデータ２３がホットデータであるかコールドデータであるかを識別するための付加情報１３９が用いられる。
【００６５】
具体的には、ガベージコレクションの転記元からログ情報２４を読み出す場合は、転記元切り替え部１１３は、「ホット」を示す付加情報１３９をログリード要求に付す。ウェアレベリングの転記元からログ情報２４を読み出す場合は、転記元切り替え部１１３は、「コールド」を示す付加情報１３９をログリード要求に付す。ＮＡＮＤＣ１４は、ログリード要求に応じて読み出されたログ情報２４に、そのログリード要求と同じ内容を有する付加情報１３９を付す。有効判定部１１４は、有効データ情報１３８に、ユーザデータ２３が有効であるか否かの判定において使用されたログ情報２４と同じ内容を有する付加情報１３９を付す。これにより、ユーザデータ２３の転記元がホットブロック２２であるかコールドブロック２２であるかの情報が、転記元切り替え部１１３、有効判定部１１４、および転記制御部１１５で共有され、その結果、そのユーザデータ２３がホットデータであるかコールドデータであるかが識別可能となる。
【００６６】
なお、転記対象のユーザデータ２３がホットデータであるかコールドデータであるかを識別する方法は、上記の方法だけに限定されない。例えば、有効データ情報プール１３７をホットデータ用とコールドデータ用とで分ける方法が採用され得る。別の例では、転記制御部１１５は、有効データ情報１３８が示す論理アドレスを、翻訳情報１３１を用いて物理アドレスに翻訳する。そして、転記制御部１１５は、その物理アドレスがガベージコレクションの転記元を示しているかウェアレベリングの転記元を示しているかに基づいて、有効データ情報１３８が示すユーザデータ２３がホットデータであるかコールドデータであるかを判定する。このように、転記対象のユーザデータ２３がホットデータであるかコールドデータであるかを識別する方法としては、種々の方法が採用され得る。
【００６７】
次に、第１の実施形態のメモリシステム１の動作を説明する。図９は、第１の実施形態のメモリシステム１に備えられたＧＣ対象選択部１１１の動作の一例を示すフローチャートである。
【００６８】
ＧＣ対象選択部１１１は、まず、フリーブロック２２ｃの数が閾値Ｔｈ１より小さいか否かを判定する（Ｓ１０１）。フリーブロック２２ｃの数が閾値Ｔｈ１より小さくない場合（Ｓ１０１、Ｎｏ）、Ｓ１０１の処理が再び実行される。
【００６９】
フリーブロック２２ｃの数が閾値Ｔｈ１より小さい場合（Ｓ１０１、Ｙｅｓ）、ＧＣ対象選択部１１１は、有効データカウンタ１３２に基づき、格納されている有効データの量が最も小さいブロック２２をガベージコレクションの転記元として選択する（Ｓ１０２）。ガベージコレクションの転記元は、転記元切り替え部１１３に通知される。
【００７０】
ＧＣ対象選択部１１１は、ガベージコレクションの転記元に格納されている全ての有効なユーザデータ２３の転記が完了したか否かを判定する（Ｓ１０３）。当該転記が完了していない場合（Ｓ１０３、Ｎｏ）、Ｓ１０３の処理が再び実行される。当該転記が完了した場合（Ｓ１０３、Ｙｅｓ）、Ｓ１０１の処理が再び実行される。
【００７１】
なお、ガベージコレクションの転記元を選択する方法は、上記の方法だけに限定されない。例えば、閾値Ｔｈ１は可変に構成されてもよい。
【００７２】
また、格納されている有効データの量が最も小さいブロック２２をガベージコレクションの転記元として選択すること（Ｓ１０２）は、格納されている有効データの量に基づいてガベージコレクションの転記元を選択する方法の一例である。ＧＣ対象選択部１１１は、ＮＡＮＤメモリ２０から所定数のブロック２２をサンプリングし、サンプリングされた所定数のブロック２２のうちの格納されている有効データの量が最も小さいブロック２２を選択してもよい。このように、ＧＣ対象選択部１１１は、格納されている有効データの量が小さいブロック２２をガベージコレクションの転記先として優先的に選択する。
【００７３】
図１０は、第１の実施形態のメモリシステム１に備えられたＷＬ対象選択部１１２の動作の一例を示すフローチャートである。
【００７４】
ＷＬ対象選択部１１２は、まず、イレース回数カウンタ１３３に基づき、ＮＡＮＤメモリ２０を構成する複数のブロック２２について、イレース回数の分布の幅を演算する（Ｓ２０１）。イレース回数の分布の幅は、例えば、全てのブロック２２のイレース回数のうちの最大値と最小値との差分である。
【００７５】
ＷＬ対象選択部１１２は、イレース回数の分布の幅が閾値Ｔｈ２を越えているか否かを判定する（Ｓ２０２）。イレース回数の分布の幅が閾値Ｔｈ２を越えていない場合（Ｓ２０２、Ｎｏ）、Ｓ２０１の処理が再び実行される。
【００７６】
イレース回数の分布の幅が閾値Ｔｈ２を越えている場合（Ｓ２０２、Ｙｅｓ）、ＷＬ対象選択部１１２は、イレース回数が最小値であるブロック２２を、ウェアレベリングの転記元として選択する（Ｓ２０３）。ウェアレベリングの転記元は、転記元切り替え部１１３に通知される。そして、Ｓ２０１の処理が再び実行される。
【００７７】
以上述べた動作例では、ＷＬ対象選択部１１２は、イレース回数の分布の幅と閾値Ｔｈ２との比較に基づいて、ウェアレベリングの転記元を選択するか否かを判定する。これは、ＮＡＮＤメモリ２０が有する複数のブロック２２間でイレース回数ができるだけ均一になるようにするためである。ウェアレベリングの転記元を選択する方法は、上記の方法だけに限定されない。例えば、ＷＬ対象選択部１１２は、イレース回数が全てのまたは一部のブロック２２のイレース回数の平均値よりも閾値Ｔｈ２以上少ないブロック２２がある場合に、ウェアレベリングの転記元の選択を実行し、イレース回数が当該平均値よりも閾値Ｔｈ２以上少ないブロック２２がない場合、ウェアレベリングの転記元の選択を停止してもよい。このように、少なくとも各ブロック２２のイレース回数に基づいてウェアレベリングの転記元を選択するか否かが判定される。
【００７８】
また、イレース回数が最も小さいブロック２２をウェアレベリングの転記元として選択することは、各ブロック２２のイレース回数に基づいてウェアレベリングの転記元として選択する方法の一例である。ＷＬ対象選択部１１２は、所定数のブロック２２をサンプリングし、サンプリングされた所定数のブロック２２のうちのイレース回数が最も小さいブロック２２を選択してもよい。このように、ＷＬ対象選択部１１２は、各ブロック２２のイレース回数に基づいて、イレース回数が少ないブロック２２を優先的にウェアレベリングの転記元として選択する。
【００７９】
図１１は、第１の実施形態のメモリシステム１に備えられた転記元切り替え部１１３の動作の一例を示すフローチャートである。
【００８０】
転記元切り替え部１１３は、ガベージコレクションの転記元とウェアレベリングの転記元との両方が選択されているか否かを判定する（Ｓ３０１）。ガベージコレクションの転記元とウェアレベリングの転記元との両方が選択されているとは、ガベージコレクションの転記元およびウェアレベリングの転記元の両方に、まだ転記が完了していない有効データが残っていることである。
【００８１】
ガベージコレクションの転記元とウェアレベリングの転記元との両方が選択されている場合（Ｓ３０１、Ｙｅｓ）、転記元切り替え部１１３は、有効データカウンタ１３２に基づき、ガベージコレクションの転記元から読み出すログ情報２４の数（量）（Ｎａ）とウェアレベリングの転記元から読み出すログ情報２４の数（量）（Ｎｂ）との比（Ｎａ：Ｎｂ）を算出する（Ｓ３０２）。
【００８２】
例えば、ガベージコレクションの転記元の有効データ率がＲａであり、ウェアレベリングの転記元の有効データ率がＲｂであり、ホットデータの転記処理にかかる書き込みレートとコールドデータの転記処理にかかる書き込みレートとの比の設定値がＶａ：Ｖｂである場合、Ｎａ＝Ｖａ／Ｒａであり、Ｎｂ＝Ｖｂ／Ｒｂである。ＮａおよびＮｂはそれぞれ整数値に丸められる。
【００８３】
転記元切り替え部１１３は、ガベージコレクションの転記元からＮａ個のログ情報２４を読み出すためのログリード要求を、ホットを示す付加情報１３９を付してＮＡＮＤＣ１４に送信する（Ｓ３０３）。また、転記元切り替え部１１３は、ウェアレベリングの転記元からＮｂ個のログ情報２４を読み出すためのログリード要求を、コールドを示す付加情報１３９を付してＮＡＮＤＣ１４に送信する（Ｓ３０４）。そして、Ｓ３０１の処理が再び実行される。
【００８４】
一方、Ｓ３０１の判定処理において、ガベージコレクションの転記元とウェアレベリングの転記元との両方が選択されていると判定されなかった場合（Ｓ３０１、Ｎｏ）、転記元切り替え部１１３は、ガベージコレクションの転記元が選択されているか否かを判定する（Ｓ３０５）。
【００８５】
ガベージコレクションの転記元が選択されている場合（Ｓ３０５、Ｙｅｓ）、転記元切り替え部１１３は、ガベージコレクションの転記元からログ情報２４を読み出すためのログリード要求を、ホットを示す付加情報１３９を付してＮＡＮＤＣ１４に送信する（Ｓ３０６）。そして、Ｓ３０１の処理が再び実行される。なお、Ｓ３０６のログリード要求によって読み出されるログ情報２４の数は任意に設計可能である。
【００８６】
Ｓ３０５の判定処理において、ガベージコレクションの転記元が選択されていると判定されなかった場合（Ｓ３０５、Ｎｏ）、転記元切り替え部１１３は、ウェアレベリングの転記元が選択されているか否かを判定する（Ｓ３０７）。
【００８７】
ウェアレベリングの転記元が選択されている場合（Ｓ３０７、Ｙｅｓ）、転記元切り替え部１１３は、ウェアレベリングの転記元からログ情報２４を読み出すためのログリード要求を、コールドを示す付加情報１３９を付してＮＡＮＤＣ１４に送信する（Ｓ３０８）。そして、Ｓ３０１の処理が再び実行される。なお、Ｓ３０８のログリード要求によって読み出されるログ情報２４の数は任意に設計可能である。
【００８８】
一方、Ｓ３０７の判定処理において、ウェアレベリングの転記元が選択されていないと判定された場合（Ｓ３０７、Ｎｏ）、Ｓ３０１の処理が再び実行される。
【００８９】
このように、転記元切り替え部１１３は、ガベージコレクションの転記元が選択されているか否か、および、ウェアレベリングの転記元が選択されているか否か、に基づき、ログ情報２４の読み出し元のブロック２２を切り替える。
【００９０】
ガベージコレクションの転記元およびウェアレベリングの転記元の両方が選択されている場合には、転記元切り替え部１１３は、後段の処理においてホットデータの書き込みレートとコールドデータの書き込みレートとの比がＶａ：Ｖｂとなるように、ガベージコレクションの転記元からのログ情報２４の読み出し量とウェアレベリングの転記元からのログ情報２４の読み出し量との比を制御する。
【００９１】
図１２は、第１の実施形態のメモリシステム１に備えられた有効判定部１１４の動作の一例を示すフローチャートである。
【００９２】
有効判定部１１４は、ＮＡＮＤＣ１４を介してログ情報２４を受信すると（Ｓ４０１）、そのログ情報２４と翻訳情報１３１とに基づいて、そのログ情報２４と同じページに格納されている複数のユーザデータ２３のうちの有効なユーザデータ２３を特定する（Ｓ４０２）。有効なユーザデータ２３の特定方法は、段落００６１において前述した通りである。
【００９３】
有効判定部１１４は、有効なユーザデータ２３が特定されたか否かを判定する（Ｓ４０３）。有効なユーザデータ２３が特定された場合（Ｓ４０３、Ｙｅｓ）、有効判定部１１４は、その有効なユーザデータ２３を示す有効データ情報１３８を生成し、生成した有効データ情報１３８を、そのログ情報２４に付されていた付加情報１３９を付して、有効データ情報プール１３７に格納する（Ｓ４０４）。複数の有効なユーザデータ２３が特定された場合には、有効判定部１１４は、Ｓ４０４の処理において、複数の有効なユーザデータ２３のそれぞれについて有効データ情報１３８を生成する。Ｓ４０４の処理の後、Ｓ４０１の処理が再び実行される。
【００９４】
有効なユーザデータ２３が特定されなかった場合（Ｓ４０３、Ｎｏ）、Ｓ４０４の処理がスキップされ、Ｓ４０１の処理が再び実行される。
【００９５】
なお、ユーザデータ２３が有効であるか否かの判定方法は、上記の方法だけに限定されない。例えばＣＰＵ１１が、ユーザデータ２３の論理アドレス毎に有効であるか無効であるかを示すビットマップ情報を管理し、このビットマップ情報に基づいて有効なユーザデータ２３を特定してもよい。
【００９６】
図１３は、第１の実施形態のメモリシステム１に備えられる転記制御部１１５の動作の一例を示すフローチャートである。
【００９７】
転記制御部１１５は、有効データ情報プール１３７に格納されている、ホットを示す付加情報１３９が付加された有効データ情報１３８の数が、「Ｎ」に至ったか否かを判定する（Ｓ５０１）。Ｎは、１ページに格納可能なユーザデータ２３の数の最大値である。図７の例に従えば、Ｎ＝４である。
【００９８】
当該ホットを示す付加情報１３９が付加された有効データ情報１３８の数が、「Ｎ」に至った場合（Ｓ５０１、Ｙｅｓ）、転記制御部１１５は、これらＮ個の有効データ情報１３８のそれぞれが示すユーザデータ２３を、ＮＡＮＤＣ１４を介してリードする（Ｓ５０２）。リードされた各ユーザデータ２３は、ＲＡＭ１３などにバッファされる。
【００９９】
続いて、転記制御部１１５は、リードしたＮ個のユーザデータ２３にかかるログ情報２４を生成する（Ｓ５０３）。例えば転記制御部１１５は、Ｎ個の有効データ情報１３８から論理アドレスを読み出して、読み出したＮ個の論理アドレスを配列することによってログ情報２４を生成する。
【０１００】
続いて、転記制御部１１５は、Ｓ５０２の処理によってリードされたＮ個のユーザデータ２３と、Ｓ５０３の処理によって生成されたログ情報２４とを、ＮＡＮＤＣ１４を介してホットデータ転記先情報１３４が示すブロック２２の１つのページに書き込む（Ｓ５０４）。
【０１０１】
そして、転記制御部１１５は、翻訳情報１３１を更新する（Ｓ５０５）。具体的には、転記制御部１１５は、Ｓ５０２〜Ｓ５０４の処理によって転記されたＮ個のユーザデータ２３のそれぞれについて、論理アドレスに対応付けられている物理アドレスを、ユーザデータ２３の書き込み先を示す物理アドレスで上書きする。Ｓ５０５の処理の後、Ｓ５０１の処理が再び実行される。
【０１０２】
なお、転記制御部１１５は、Ｓ５０２〜Ｓ５０４の処理によって転記されたＮ個のユーザデータ２３のそれぞれについて、転記時の論理アドレスがＳ５０５の実行時においても依然として転記元の物理アドレスにマッピングされていることを確認してから翻訳情報１３１の更新を行ってもよい。転記時の論理アドレスが転記元の物理アドレスにマッピングされていないことは、転記時には有効であったデータがその後のホストライトによって無効になったことを意味する。転記時の論理アドレスがＳ５０５の実行時において転記元の物理アドレスにマッピングされていない場合、転記制御部１１５は、転記元の物理アドレスに関する対応関係を更新しない。
【０１０３】
有効データ情報プール１３７に格納されている、ホットを示す付加情報１３９が付加された有効データ情報１３８の数が、「Ｎ」に至っていない場合（Ｓ５０１、Ｎｏ）、転記制御部１１５は、コールドを示す付加情報１３９が付加された有効データ情報１３８の数が、「Ｎ」に至ったか否かを判定する（Ｓ５０６）。
【０１０４】
当該コールドを示す付加情報１３９が付加された有効データ情報１３８の数が、「Ｎ」に至った場合（Ｓ５０６、Ｙｅｓ）、これらＮ個の有効データ情報１３８のそれぞれが示すユーザデータ２３を、ＮＡＮＤＣ１４を介してリードする（Ｓ５０７）。リードされた各ユーザデータ２３は、ＲＡＭ１３などにバッファされる。
【０１０５】
続いて、転記制御部１１５は、リードしたＮ個のユーザデータ２３にかかるログ情報２４をＳ５０３と同様の方法で生成する（Ｓ５０８）。そして、転記制御部１１５は、Ｓ５０７の処理によってリードされたＮ個のユーザデータ２３と、Ｓ５０８の処理によって生成されたログ情報２４とを、ＮＡＮＤＣ１４を介してコールドデータ転記先情報１３５が示すブロック２２の１つのページに書き込む（Ｓ５０９）。
【０１０６】
そして、転記制御部１１５は、翻訳情報１３１を更新する（Ｓ５１０）。具体的には、転記制御部１１５は、Ｓ５０７〜Ｓ５０９の処理によって転記されたＮ個のユーザデータ２３のそれぞれについて、論理アドレスに対応付けられている物理アドレスを、ユーザデータ２３の書き込み先を示す物理アドレスで上書きする。
【０１０７】
有効データ情報プール１３７に格納されている、コールドを示す付加情報１３９が付加された有効データ情報１３８の数が、「Ｎ」に至っていない場合（Ｓ５０６、Ｎｏ）、またはＳ５１０の処理の後、Ｓ５０１の処理が再び実行される。
【０１０８】
なお、転記制御部１１５は、特定された有効データの量が１ページの量（Ｎ個）に達した後に、特定された有効データの転記を実行するのではなく、有効データ情報プール１３７に有効データ情報１３８が格納されると、その有効データ情報１３８が示すユーザデータ２３をホットデータとコールドデータとを区別してＲＡＭ１３に読み出し、ホットデータおよびコールドデータのいずれかがＲＡＭ１３に１ページの量だけ溜まった場合に、その１ページの量のユーザデータ２３を転記先に書き込んでもよい。
【０１０９】
図１４は、以上に説明した動作によって実現する、ＮＡＮＤメモリ２０への書き込みの順番を説明する図である。本図は、Ｖａ：Ｖｂが２：１に設定されている場合のデータの書き込み順を示している。図示されるように、２ページのホットデータの書き込みと、１ページのコールドデータの書き込みとが、交互に実行される。即ち、ホットデータの転記処理とコールドデータの転記処理は、ページ単位で切り替えられる。２ブロックのホットデータの書き込みの後にコールドデータの書き込みに切り替わったり、１ブロックのコールドデータの書き込みの後にホットデータの書き込みに切り替わったりするのではない。
【０１１０】
以上述べたように、第１の実施形態によれば、メモリコントローラ１０は、ガベージコレクションの転記元を選択し、ウェアレベリングの転記元を選択する。そして、メモリコントローラ１０は、ガベージコレクションの転記元に格納されている有効データを、ホットデータ用の転記先に転記し、ウェアレベリングの転記元に格納されている有効データを、コールドデータ用の転記先に転記する。
【０１１１】
これにより、有効な状態から無効な状態になるまでの期間が比較的短いユーザデータ２３と、有効な状態から無効な状態になるまでの期間が比較的長いユーザデータ２３と、がそれぞれ異なるブロック２２に格納される。よって、転記処理に起因するメモリシステム１の性能の低下を抑制することが可能となる。
【０１１２】
また、ＮＡＮＤメモリ２０は、ホットデータの転記先のブロック２２ａ１と、コールドデータの転記先のブロック２２ａ２との両方が同時に確保されている。これにより、ホットデータの転記処理とコールドデータの転記処理とを並行に実行することが可能となる。
【０１１３】
また、メモリコントローラ１０は、ホットデータの転記処理と、コールドデータの転記処理とを、ブロック２２よりも小さいサイズのデータ単位で切り替える。これにより、ブロック２２のサイズのデータ単位で転記処理の切り替えを実行する場合に比べて、メモリシステム１の性能の変動を小さくすることが可能である。
【０１１４】
また、メモリコントローラ１０は、ガベージコレクションの転記元とウェアレベリングの転記元とがともに選択されている場合に、ガベージコレクションの転記元から読み出された有効データの書き込みレートと、ウェアレベリングの転記元から読み出された有効データの書き込みレートとの比が所定値に近づくように、それぞれの有効データの転記を実行する。
【０１１５】
よって、ウェアレベリングの転記元の有効データ率が大きい場合であっても、ウェアレベリングを実行することによるメモリシステム１の性能の低下を抑制することができる。
【０１１６】
（第２の実施形態）
ＮＡＮＤメモリ２０は、複数のメモリセルトランジスタ（メモリセル）からなるメモリセルアレイを備えている。書き込みの際には、各メモリセルのしきい値電圧がデータ値に応じた範囲に収まるように制御される。しきい値電圧の範囲とデータ値との関係は、予め定められている。しかしながら、メモリセルのしきい値電圧は変化し得る。しきい値電圧が変化することによって、メモリセルにプログラムされたデータ値が変化することがある。変化したデータ値は、通常は、メモリシステム１に具備されるエラー検出機能によって、エラーとして検出される。そして、検出されたエラーは、エラー訂正機能によって、書き込み時のデータ値に訂正される。
【０１１７】
しかしながら、エラー訂正機能の訂正能力には上限が存在する。エラーの数が当該訂正能力の上限を超えることを防止するために、書き込み済みのユーザデータ２３は、所定のタイミングで、リフレッシュされる。即ち、リフレッシュとは、ＮＡＮＤメモリ２０に格納されているユーザデータ２３を読み出して、読み出したユーザデータ２３にエラーがあればをエラー訂正後のデータを、エラーがなければそのデータを、ＮＡＮＤメモリ２０に書き込む処理である。
【０１１８】
書き換えが長期間行われなかったブロック２２が、リフレッシュの転記元として選択されやすい傾向がある。よって、第２の実施形態では、ＣＰＵ１１は、転記処理として、ガベージコレクション、ウェアレベリングの他に、リフレッシュを実行する。そして、図１５に例示されるように、ＣＰＵ１１は、ウェアレベリングの転記元として選択されたブロック２２に加え、リフレッシュの転記元として選択されたブロック２２を、コールドブロック２２として見なし、リフレッシュの転記元に格納されている有効なユーザデータ２３を、コールドデータの転記先として用意されているブロック２２に転記する。
【０１１９】
図１６は、第２の実施形態のメモリシステム１の機能的構成を説明するための図である。本図に例示されるように、第２の実施形態のメモリシステム１は、第１の実施形態のメモリシステム１にリフレッシュ対象選択部１１６が追加された構成を有する。リフレッシュ対象選択部１１６は、一例では、ＣＰＵ１１がファームウェアプログラムを実行することによって実現する。以降では、追加されたリフレッシュ対象選択部１１６についてのみ、機能および動作を説明する。他の機能構成部の機能および動作は、第１の実施形態と同様であるため、機能および動作の説明を省略する。
【０１２０】
リフレッシュ対象選択部１１６は、ＮＡＮＤメモリ２０が備える複数のブロック２２からリフレッシュの転記元を選択する。リフレッシュの転記元の選択方法は、特定の方法に限定されない。ここでは、３つの選択方法を説明する。
【０１２１】
図１７は、第２の実施形態のリフレッシュ対象選択部１１６の動作の一例を示すフローチャートである。
【０１２２】
リフレッシュ対象選択部１１６は、ＮＡＮＤメモリ２０からのユーザデータ２３のリードが実行された際に（Ｓ６０１）、当該ユーザデータ２３に含まれているエラービットの数を取得する（Ｓ６０２）。Ｓ６０１の処理においてリードされたデータに含まれるエラービットの数は、メモリシステム１に具備される不図示のエラー訂正機能によって計測され、リフレッシュ対象選択部１１６に取得される。
【０１２３】
なお、Ｓ６０１の処理のリードは、ホスト２からのリード要求に応じて実行されるリードであってもよいし、ホスト２からのリード要求とは関係なく実行されるリードであってもよい。リフレッシュの対象となるブロック２２を検出するために、ホスト２からのリード要求とは関係なく、各ブロック２２に対し、所定の周期でリードが実行されてもよい。
【０１２４】
続いて、リフレッシュ対象選択部１１６は、エラービットの数が閾値Ｔｈ３を越えているか否かを判定する（Ｓ６０３）。エラービットの数が閾値Ｔｈ３を越えている場合（Ｓ６０３、Ｙｅｓ）、リフレッシュ対象選択部１１６は、リードが実行されたブロック２２を、リフレッシュの転記元として選択する（Ｓ６０４）。
【０１２５】
エラービットの数が閾値Ｔｈ３を越えていない場合（Ｓ６０３、Ｎｏ）、またはＳ６０４の処理の後、Ｓ６０１の処理が再び実行される。
【０１２６】
このように、図１７の動作例では、リフレッシュ対象選択部１１６は、リードしたデータのエラービットの数が閾値Ｔｈ３を越えているか否かに基づいて、リフレッシュの転記元を選択するか否かを判定する。なお、リフレッシュの転記元を選択する方法は、上記の方法だけに限定されない。リフレッシュ対象選択部１１６は、エラービットの数が閾値Ｔｈ３を越えた回数をブロック２２毎にカウントし、エラービットの数が閾値Ｔｈ３を越えた回数が閾値Ｔｈ４を越えたブロック２２が存在する場合に、そのブロック２２をリフレッシュの転記元として選択し、エラービットの数が閾値Ｔｈ３を越えた回数が閾値Ｔｈ４を越えたブロック２２が存在しない場合、リフレッシュの転記元の選択を停止してもよい。このように、エラービットの数に少なくとも基づいてリフレッシュの転記元を選択するか否かが決定され得る。
【０１２７】
また、エラービットの数が閾値Ｔｈ３を越えていた場合、リフレッシュ対象選択部１１６は、リードが実行されたブロック２２をリフレッシュの転記元として選択する。リフレッシュの転記元の選択方法はこれに限定されない。上述したように、エラービットの数が閾値Ｔｈ３を越えた回数が閾値Ｔｈ４を越えたブロック２２が存在する場合に、そのブロック２２がリフレッシュの転記元として選択されてもよい。このように、エラービットの数に少なくとも基づいてリフレッシュの転記元が選択され得る。
【０１２８】
なお、上述のエラー訂正機能（以降、第１のエラー訂正機能と表記する）よりもエラー訂正能力が強い他のエラー訂正機能（第２のエラー訂正機能と表記する）がさらにメモリシステム１に具備されてもよい。メモリコントローラ１０は、第１のエラー訂正機能がエラー訂正に失敗した場合、エラー訂正能力がより強い第２のエラー訂正機能によってエラー訂正を行うことができる。リフレッシュ対象選択部１１６は、第１のエラー訂正機能がエラー訂正に失敗した場合に、リードが実行されたブロック２２をリフレッシュの転記元として選択してもよい。
【０１２９】
図１８は、第２の実施形態のリフレッシュ対象選択部１１６の動作の別の一例を示すフローチャートである。この例では、リードの実行回数に応じてリフレッシュの転記元が選択される。この方法は、リードディスターブに起因するエラーによって訂正不能となるユーザデータ２３の発生を抑制するためである。
【０１３０】
リフレッシュ対象選択部１１６は、あるブロック２２に対してユーザデータ２３のリードが実行された際に（Ｓ７０１）、そのブロック２２に実行されたリードの回数が閾値Ｔｈ５を越えたか否かを判定する（Ｓ７０２）。そのブロック２２に実行されたリードの回数が閾値Ｔｈ５を越えた場合（Ｓ７０２、Ｙｅｓ）、リフレッシュ対象選択部１１６は、そのブロック２２をリフレッシュの転記元として選択する（Ｓ７０３）。
【０１３１】
そのブロック２２に実行されたリードの回数が閾値Ｔｈ５を越えていない場合（Ｓ７０２、Ｎｏ）、またはＳ７０３の処理の後、Ｓ７０１に制御が移行する。
【０１３２】
このように、図１８の動作例では、リフレッシュ対象選択部１１６は、各ブロック２２に対するリードの回数に基づいて、リフレッシュの転記元を選択するか否かを判定する。リフレッシュ対象選択部１１６は、リードの回数が閾値Ｔｈ５を越えたブロック２２が存在する場合、そのブロック２２をリフレッシュの転記元として選択する。
【０１３３】
図１９は、第２の実施形態のリフレッシュ対象選択部１１６の動作のさらに別の一例を示すフローチャートである。この例では、ユーザデータ２３の書き込みが実行されてからの経過時間に応じてリフレッシュの転記元が選択される。この方法は、データリテンションの経過に起因するエラーによって訂正不能となるユーザデータ２３の発生を抑制するためである。
【０１３４】
リフレッシュ対象選択部１１６は、ユーザデータ２３の書き込みが開始されてからの経過時間が閾値Ｔｈ６を越えたブロック２２が存在するか否かを判定する（Ｓ８０１）。ユーザデータ２３の書き込みが開始されてからの経過時間が閾値Ｔｈ６を越えたブロック２２が存在する場合（Ｓ８０１、Ｙｅｓ）、リフレッシュ対象選択部１１６は、そのブロック２２をリフレッシュの転記元として選択する（Ｓ８０２）。ユーザデータ２３の書き込みが開始されてからの経過時間が閾値Ｔｈ６を越えたブロック２２が存在しない場合（Ｓ８０１、Ｎｏ）、またはＳ８０２の処理の後、Ｓ８０１に制御が移行する。
【０１３５】
このように、図１９の動作例では、リフレッシュ対象選択部１１６は、各ブロック２２にユーザデータ２３が書き込まれてからの経過時間に基づいて、リフレッシュの転記元を選択するか否かを判定する。リフレッシュ対象選択部１１６は、ユーザデータ２３が書き込まれてからの経過時間が閾値Ｔｈ６を越えたブロック２２が存在する場合、そのブロック２２をリフレッシュの転記元として選択する。
【０１３６】
リフレッシュ対象選択部１１６は、図１７〜図１９を用いて述べたように、種々の方法でリフレッシュの転記元を選択し得る。リフレッシュ対象選択部１１６は、図１７〜図１９の方法のうちの複数の方法を同時に実行し得る。
【０１３７】
また、第２の実施形態では、ウェアレベリングの転記元として選択されたブロック２２と、リフレッシュの転記元として選択されたブロック２２と、がコールドブロック２２として見なされる、として説明した。ＣＰＵ１１は、リフレッシュの転記元として選択されたブロック２２のみをコールドブロック２２として見なしてもよい。
【０１３８】
以上述べたように、第２の実施形態では、メモリコントローラ１０は、リフレッシュの転記元を選択する。そして、メモリコントローラ１０は、リフレッシュの転記元に格納されている有効データを、コールドデータ用の転記先（ブロック２２ａ２）に転記する。書き換えが長期間行われなかったブロック２２が、リフレッシュの転記元として選択されやすい傾向があり、リフレッシュの転記元として選択されたブロック２２に格納されているユーザデータ２３が、コールドデータ用の転記先に転記されるので、ホットデータとコールドデータとが別々のブロック２２に格納され得る。よって、転記処理に起因する性能の低下が抑制される。
【０１３９】
（第３の実施形態）
ホットデータの書き込みレートに対するコールドデータの書き込みレートの比の制御方法は、第１の実施形態にて説明した方法だけに限定されない。第３の実施形態では、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比の制御方法の別の例を説明する。
【０１４０】
図２０は、第３の実施形態のＲＡＭ１３に格納される各種データを説明する図である。第３の実施形態では、ＲＡＭ１３には、第１の実施形態と同じ各種情報に加えて、ホットデータ転記ライトカウンタ１３０１、コールドデータ転記ライトカウンタ１３０２、およびホストライトカウンタ１３０３が格納される。
【０１４１】
ホットデータ転記ライトカウンタ１３０１は、ホットデータの転記ライト量を示すカウンタであり、１ページのホットデータが転記される毎にインクリメントされる。
【０１４２】
コールドデータ転記ライトカウンタ１３０２は、コールドデータの転記ライト量を示すカウンタであり、１ページのコールドデータが転記される毎にインクリメントされる。
【０１４３】
ホストライトカウンタ１３０３は、ホストライト量を示すカウンタであり、１ページのホストライトが実行される毎にインクリメントされる。
【０１４４】
ホットデータ転記ライトカウンタ１３０１、コールドデータ転記ライトカウンタ１３０２、およびホストライトカウンタ１３０３は、リセットされてもよいし、リセットされなくてもよい。一例では、ホットデータ転記ライトカウンタ１３０１、コールドデータ転記ライトカウンタ１３０２、およびホストライトカウンタ１３０３は、定期的に同時にリセットされる。
【０１４５】
図２１は、第３の実施形態の転記制御部１１５の動作を説明するフローチャートである。まず、転記制御部１１５は、ホットデータ転記ライトカウンタ１３０１およびコールドデータ転記ライトカウンタ１３０２に基づき、ホットデータの転記処理およびコールドデータの転記処理のうちの実行すべき処理を選択する（Ｓ９０１）。
【０１４６】
Ｓ９０１では、転記制御部１１５は、カウンタの値の比率が設定値の比率よりも低い処理を選択する。例えば、ホットデータの転記処理にかかる書き込みレートとコールドデータの転記処理にかかる書き込みレートとの比の設定値Ｖａ：Ｖｂが２：１であることを考える。これは、ホットデータの転記ライト量は、コールドデータの転記ライト量の２倍に設定され、すなわちコールドデータの転記ライト量は、ホットデータの転記ライト量の半分に設定されていることに該当する。ホットデータ転記ライトカウンタ１３０１の値が「８」であり、コールドデータ転記ライトカウンタ１３０２の値が「５」である場合、ホットデータの転記ライト量はコールドデータの転記ライト量の２倍未満であるので、転記制御部１１５は、ホットデータの転記処理を選択する。あるいは、ホットデータ転記ライトカウンタ１３０１の値が「１１」であり、コールドデータ転記ライトカウンタ１３０２の値が「５」である場合、コールドデータの転記ライト量はホットデータの転記ライト量の半分未満であるので、転記制御部１１５は、コールドデータの転記処理を選択する。
【０１４７】
なお、ホットを示す付加情報１３９が付加された有効データ情報１３８およびコールドを示す付加情報１３９が付加された有効データ情報１３８のうちの一方が不足している場合、転記制御部１１５は、Ｓ９０１において、有効データ情報１３８が不足していない方に関する転記処理を選択してもよい。有効データ情報１３８が不足しているとは、有効データ情報１３８の数が、１ページに格納可能なユーザデータ２３の数の最大値に満たないことをいう。ホットを示す付加情報１３９が付加された有効データ情報１３８およびコールドを示す付加情報１３９が付加された有効データ情報１３８の両方が足りている場合、転記制御部１１５は、カウンタの値の比率が設定値の比率よりも低い処理を選択する。
【０１４８】
ホットを示す付加情報１３９が付加された有効データ情報１３８およびコールドを示す付加情報１３９が付加された有効データ情報１３８の両方が不足している場合、転記制御部１１５は、どちらか一方の有効データ情報１３８が足りるまで、動作を停止してもよい。
【０１４９】
転記制御部１１５は、選択した処理を、１ページ分だけ実行する（Ｓ９０２）。例えば、転記制御部１１５は、Ｓ９０１においてホットデータの転記処理を選択した場合、１ページのホットデータの転記処理を実行する。
【０１５０】
転記制御部１１５は、ホットデータ転記ライトカウンタ１３０１およびコールドデータ転記ライトカウンタ１３０２のうちの実行した処理に対応するカウンタをインクリメントし（Ｓ９０３）、Ｓ９０１の処理を再び実行する。
【０１５１】
これにより、第３の実施形態によれば、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比の制御が実現する。このように、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比の制御は、種々の方法によって実現され得る。
【０１５２】
なお、第３の実施形態の方法によって、ホストライトの書き込みレートと、ホットデータの書き込みレートと、コールドデータの書き込みレートと、の比の制御が可能である。
【０１５３】
例えば、ＣＰＵ１１は、Ｓ９０１の処理と同様の処理によって、ホストライト、ホットデータの転記処理、およびコールドデータの転記処理のうちの１つを選択する。そして、ＣＰＵ１１は、選択した処理を１ページ分だけ実行するとともに、対応するカウンタをインクリメントする。これにより、ホストライトの書き込みレートと、ホットデータの書き込みレートと、コールドデータの書き込みレートとの比を制御することが可能となる。
【０１５４】
図２２は、ＮＡＮＤメモリ２０への書き込みの順番を説明する図である。本図は、ホストライトの書き込みレートとガベージコレクションによる転記処理の書き込みレート（ホットデータの転記処理の書き込みレート）との比の設定値が１．５：１であり、ホットデータの転記処理の書き込みレートとコールドデータの転記処理の書き込みレートとの比の設定値が２：１である場合、についての書き込みの順番を示している。図示されるように、ホストライトと、ホットデータの転記処理と、コールドデータの転記処理とは、ページ単位で切り替えられる。ホストライト、ホットデータの転記処理、コールドデータの転記処理、ホストライト、ホットデータの転記処理、ホストライト、の順番で処理が切り替えられることによって、結果として、ホストライトの書き込みレートとホットデータの転記処理の書き込みレートの比をおよそ１．５：１に制御し、ホットデータの転記処理の書き込みレートとコールドデータの転記処理の書き込みレートとの比をおよそ２：１に制御することができる。なお、切り替えの順番はこれのみに限定されない。
【０１５５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５６】
１  メモリシステム、２  ホスト、１０  メモリコントローラ、１１  ＣＰＵ、１２  ホストインタフェース、１３  ＲＡＭ、１４  ＮＡＮＤＣ、２０  ＮＡＮＤメモリ、２１  メモリチップ、２２，２２ａ，２２ｂ  ブロック、２３，２３ａ，２３ｂ，２３ｃ，２３ｄ  ユーザデータ、２４  ログ情報、１１１  ガベージコレクション対象選択部、１１２  ウェアレベリング対象選択部、１１３  転記元切り替え部、１１４  有効判定部、１１５  転記制御部、１１６  リフレッシュ対象選択部、１３１  翻訳情報、１３２  有効データカウンタ、１３３  イレース回数カウンタ、１３４  ホットデータ転記先情報、１３５  コールドデータ転記先情報、１３６  ホストライト先情報、１３７  有効データ情報プール、１３８  有効データ情報、１３９  付加情報、１３０１  ホットデータ転記ライトカウンタ、１３０２  コールドデータ転記ライトカウンタ。
【図１】
2018160194.tif 000003
【図２】
2018160194.tif 000004
【図３】
2018160194.tif 000005
【図４】
2018160194.tif 000006
【図５】
2018160194.tif 000007
【図６】
2018160194.tif 000008
【図７】
2018160194.tif 000009
【図８】
2018160194.tif 000010
【図９】
2018160194.tif 000011
【図１０】
2018160194.tif 000012
【図１１】
2018160194.tif 000013
【図１２】
2018160194.tif 000014
【図１３】
2018160194.tif 000015
【図１４】
2018160194.tif 000016
【図１５】
2018160194.tif 000017
【図１６】
2018160194.tif 000018
【図１７】
2018160194.tif 000019
【図１８】
2018160194.tif 000020
【図１９】
2018160194.tif 000021
【図２０】
2018160194.tif 000022
【図２１】
2018160194.tif 000023
【図２２】
2018160194.tif 000024