JP2018160194A - メモリシステムおよび方法 - Google Patents
メモリシステムおよび方法 Download PDFInfo
- Publication number
- JP2018160194A JP2018160194A JP2017058267A JP2017058267A JP2018160194A JP 2018160194 A JP2018160194 A JP 2018160194A JP 2017058267 A JP2017058267 A JP 2017058267A JP 2017058267 A JP2017058267 A JP 2017058267A JP 2018160194 A JP2018160194 A JP 2018160194A
- Authority
- JP
- Japan
- Prior art keywords
- block
- data
- blocks
- transfer
- valid
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】転記処理に起因する性能の低下を抑制すること。【解決手段】メモリシステムは、複数のブロックを有する不揮発性の半導体メモリと、メモリコントローラ回路とを備える。メモリコントローラ回路は、複数のブロックから、ガベージコレクションの対象のブロックである第1ブロックと、ウェアレベリングまたはリフレッシュの対象のブロックである第2ブロックと、を選択する。そして、メモリコントローラ回路は、第1ブロックに格納されている有効なデータである第1データを複数のブロックのうちの空き領域を有するブロックである第3ブロックに転記する。また、メモリコントローラ回路は、第2ブロックに格納されている有効なデータである第2データを複数のブロックのうちの空き領域を有し第3ブロックと異なるブロックである第4ブロックに転記する。【選択図】図6
Description
本実施形態は、メモリシステムおよび方法に関する。
従来、SSD(Solid State Drive)と呼ばれるメモリシステムが知られている。SSDは、NAND型フラッシュメモリ等の不揮発性の半導体メモリを用いたデバイスである。
NAND型フラッシュメモリでは、原則的に、データを上書きできない。また、NAND型フラッシュメモリは、データの消去をブロック単位でしか実行できない。このため、SSDでは、ガベージコレクションと呼ばれる転記処理(relocating process)を実行することによって、空き領域を有するブロックを生成する。転記処理は、ホストから送られてきたデータの半導体メモリへの書き込みと並行して実行される。よって、転記処理は、メモリシステムの性能を低下させる。
一つの実施形態は、転記処理に起因する性能の低下を抑制したメモリシステムを提供することを目的とする。
一つの実施形態によれば、メモリシステムは、複数のブロックを有する不揮発性の半導体メモリと、メモリコントローラ回路とを備える。メモリコントローラ回路は、複数のブロックから、ガベージコレクションの対象のブロックである第1ブロックと、ウェアレベリングまたはリフレッシュの対象のブロックである第2ブロックと、を選択する。そして、メモリコントローラ回路は、第1ブロックに格納されている有効なデータである第1データを複数のブロックのうちの空き領域を有するブロックである第3ブロックに転記する。また、メモリコントローラ回路は、第2ブロックに格納されている有効なデータである第2データを複数のブロックのうちの空き領域を有し第3ブロックと異なるブロックである第4ブロックに転記する。
以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
(第1の実施形態)
図1は、第1の実施形態のメモリシステムの構成例を示す図である。メモリシステム1は、ホスト2と所定の通信インタフェースで接続される。ホスト2は、例えばパーソナルコンピュータ、携帯情報端末、またはサーバなどが該当する。メモリシステム1は、ホスト2からアクセス要求(リード要求およびライト要求)を受け付けることができる。各アクセス要求は、アクセス先を示す論理アドレスを含んでいる。論理アドレスは、メモリシステム1がホスト2に提供する論理アドレス空間内の位置を示す。メモリシステム1は、ライト要求とともに、書き込み対象のデータを受け付ける。
図1は、第1の実施形態のメモリシステムの構成例を示す図である。メモリシステム1は、ホスト2と所定の通信インタフェースで接続される。ホスト2は、例えばパーソナルコンピュータ、携帯情報端末、またはサーバなどが該当する。メモリシステム1は、ホスト2からアクセス要求(リード要求およびライト要求)を受け付けることができる。各アクセス要求は、アクセス先を示す論理アドレスを含んでいる。論理アドレスは、メモリシステム1がホスト2に提供する論理アドレス空間内の位置を示す。メモリシステム1は、ライト要求とともに、書き込み対象のデータを受け付ける。
メモリシステム1は、メモリコントローラ10と、NAND型のフラッシュメモリ(NANDメモリ)20と、を備えている。メモリコントローラ10は、ホスト2とNANDメモリ20との間のデータ転送を実行する回路である。なお、メモリシステム1は、NANDメモリ20の代わりに任意の不揮発性メモリを具備することができる。例えば、メモリシステム1は、NANDメモリ20の代わりにNOR型のフラッシュメモリを具備することができる。
NANDメモリ20は、1以上のメモリチップ21を含む。ここでは一例として、NANDメモリ20は4つのメモリチップ21を含む。各メモリチップ21は、複数のブロック(ブロック22)を備える。ブロック22は、例えばデータのイレースが実行され得る最小の記憶領域である。ブロック22は、複数のページを備える。ページは、例えばデータのリードまたはデータのライトが実行され得る最小の記憶領域である。
なお、複数のブロック22は、1つの論理的なブロック(論理ブロック)を構成してもよい。一例では、それぞれが異なるメモリチップ21に属する複数のブロック22によって、1つの論理ブロックが構成され、当該論理ブロックを構成する複数のブロック22に格納されているデータは、一括してイレースされる。
また、複数のページは、1つの論理的なページ(論理ページ)を構成してもよい。一例では、1つの論理ページは、1つの論理ブロックを構成する複数のブロック22のうちのそれぞれ異なるブロック22の同一のページ番号のページによって構成される。1つの論理ページには、データのリードまたはデータのライトが並列に実行され得る。
ブロック22を論理ブロックで置き換え、ページを論理ページで置き換えた場合であっても、以降に説明する技術は適用可能である。
メモリコントローラ10は、CPU(Central Processing Unit)11と、ホストインタフェース(I/F)12と、RAM(Random Access Memory)13と、NANDC(Nand Controller)14と、を備える。
CPU11は、ファームウェアプログラムに基づいてメモリコントローラ10の制御を実行する。ファームウェアプログラムは、例えばNANDメモリ20などの不揮発性メモリに予め格納されており、起動時にNANDメモリ20から読み出されてCPU11によって実行される。
RAM13は、一時記憶領域を提供するメモリである。RAM13を構成するメモリの種類は、特定の種類に限定されない。例えば、RAM13は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、またはこれらの組み合わせによって構成される。RAM13に格納される各種データの詳細は、後述する。
ホストインタフェース12は、ホスト2との間の通信インタフェースの制御を実行する。ホストインタフェース12は、CPU11による制御の下で、ホスト2とRAM13との間のデータ転送を実行する。NANDC14は、CPU11による制御の下で、NANDメモリ20とRAM13との間のデータ転送を実行したりする。即ち、CPU11による制御の下で、ホスト2とNANDメモリ20との間のデータ転送は、RAM13を介して実行される。ホスト2から送られてきたデータをユーザデータ(例えば、図6に示すユーザデータ23)と表記する。
CPU11は、ユーザデータ23をNANDメモリ20に書き込む際には、空き領域からそのユーザデータ23の書き込み先の物理的位置を決定する。物理的位置は、物理アドレスによって表記される。空き領域とは、いずれのデータも格納されていない領域であり、新たなデータの書き込みが可能な領域である。CPU11は、当該ユーザデータ23の位置を示す論理アドレスに、決定された書き込み先の物理的位置をマッピングする。
ここで、当該ユーザデータ23(新しいユーザデータ23)の位置を示す論理アドレスに別のユーザデータ23(古いユーザデータ23)の書き込み先の物理的位置がマッピングされていた場合、マッピングの更新により、当該古いユーザデータ23の書き込み先の物理的位置は、論理アドレスにマッピングされていない状態となる。その結果、ホスト2は、新しいユーザデータ23をメモリシステム1からリードすることが可能であるが、古いユーザデータ23をリードすることができなくなる。論理アドレスにマッピングされている物理的位置に格納されているユーザデータ23を、有効データと表記する。論理アドレスにマッピングされていない物理的位置に格納されているユーザデータ23を、無効データと表記する。
また、CPU11は、ホスト2とNANDメモリ20とのデータ転送のほかに、転記処理を実行する。転記処理とは、少なくとも有効データを、NANDメモリ20内のブロック22間で移動する処理である。
CPU11が実行する転記処理の一例としては、ガベージコレクションがある。空き領域の消費が進むと、空き領域を有するブロック22が枯渇する。CPU11は、ブロックをイレースする、すなわち、ブロック内に含まれる無効データをイレースすることによって、空き領域を有するブロック22を生成する。1つのブロック22に記憶される全てのデータが無効であることは稀であるため、実際には、CPU11は、あるブロック22内に残っている有効データを別のブロック22にコピーし、その後、コピー元のブロック22に記憶される全てのデータをイレースする。有効データのコピーとともにマッピングが更新され、その結果、コピー元のブロック22は、有効データを全く含まないブロック22になる。この有効データを全く含まなくなったブロック22は、フリーブロックと呼ばれる。フリーブロックの数を増やすためのデータの転記処理は、ガベージコレクションと呼ばれる。
CPU11は、ガベージコレクションの他の転記処理として、ウェアレベリングを実行する。ウェアレベリングとは、ブロック22毎のイレース回数を複数のブロック22間で平滑化するために、データをブロック22間でコピーする処理である。CPU11は、NANDメモリ20が有する複数のブロック22間でイレース回数に差が生じている場合に、イレース回数が少ないブロック22を優先的に転記元として選択する。ウェアレベリングでは、ブロック22間で、イレース回数でなく、イレース実行後からの経過時間に差が生じている場合に、経過時間が他よりも多いブロック22を転記元として選択してもよい。
なお、ウェアレベリングでは、有効データだけでなく無効データもコピーされ得る。しかし、これ以降では、ウェアレベリングでは、有効データだけがコピーされることとして説明する。
次に、転記処理がメモリシステム1の性能に与える影響を説明する。転記処理においてユーザデータ23をNANDメモリ20に書き込むことを、転記ライトと表記する。ホスト2から受信したユーザデータ23を最初にNANDメモリ20に書き込むことを、ホストライトと表記する。
図2は、ホストライト量と転記ライト量との比を説明する図である。ホストライト量とは、ホストライトによってNANDメモリ20に書き込まれるユーザデータ23の量を意味する。転記ライト量とは、転記ライトによってNANDメモリ20に書き込まれるユーザデータ23の量に相当する。図2において、斜線部の面積は、有効データの量に対応する。図2(a)は、有効データ率が50%のブロック22が転記元である場合の転記処理を示しており、図2(b)は、有効データ率が75%のブロック22が転記元である場合の転記処理を示している。有効データ率とは、ブロック22に格納可能なユーザデータ23の総量に対するブロック22に格納されている有効データの量の割合をいう。
ホスト2から受信した1つのブロック22分のデータをNANDメモリ20に書き込む場合、1つのフリーブロックが消費される。フリーブロックの数の収支を合わせるためには、フリーブロックの数を1つ増加させる必要がある。
図2(a)に示されるように、有効データ率が50%のブロック22が転記元である場合において、フリーブロックの数を1つ増やすためには、2個の転記元が必要である。このとき、転記ライト量の合計は、1つのブロック22分のデータの量に相当する。よって、ホストライト量と転記ライト量との比は、1:1となる。
これに対し、図2(b)に示されるように、有効データ率が75%のブロック22が転記元である場合において、フリーブロックの数を1つ増やすためには、4個の転記元が必要である。このとき、転記ライト量の合計は、3つのブロック22分のデータの量に相当する。よって、ホストライト量と転記ライト量との比は、1:3となる。
このように、転記元のブロック22の有効データ率が小さいほど、ホストライト量に対する転記ライト量の比を小さくすることができる。よって、転記元のブロック22の有効データ率が小さいほど、転記処理による性能の低下が小さい。よって、CPU11は、ガベージコレクションにおいては、有効データ率が小さいブロック22を優先的に転記元として選択する。
ホスト2からメモリシステム1に送られてくる各データの書き換え頻度は、データ毎に偏りがある場合がある。書き換えによって短期間で無効になる傾向があるユーザデータ23の状態を、ホット(hot)と呼び、長期間書き換えられないことによって有効である期間が長い傾向があるユーザデータ23の状態を、コールド(cold)と呼ぶ。
図3は、有効データ率を説明するための図である。具体的には、図3(a)は、ホットデータとコールドデータとがそれぞれ異なるブロック22に分けて格納される場合の有効データ率を示す。図3(b)は、ホットデータとコールドデータとが同一のブロック22に混ぜて格納される場合の有効データ率を示す。図3(a)および図3(b)は、それぞれ3つのブロック22分の量のホットデータと2つのブロック22分の量のコールドデータとが書き込まれ、その後、同量の(およそ66%の)ホットデータが無効になった状態を示している。
図3(a)に示される例の場合、ホットデータが格納された3つのブロック22それぞれの有効データ率は34%であり、コールドデータが格納された2つのブロック22それぞれの有効データ率は100%である。これに対し、図3(b)に示される例の場合、5つのブロック22それぞれの有効データ率は、57〜63%である。
このように、ホットデータとコールドデータとがそれぞれ異なるブロック22に格納される場合、ホットデータとコールドデータとが同一のブロック22に混ぜて格納される場合に比べ、有効データ率が小さいブロック22が生じる。ホットデータとコールドデータとがそれぞれ異なるブロック22に格納される場合、ホットデータとコールドデータとが同一のブロック22に混ぜて格納される場合に比べ、有効データ率がより小さいブロック22を転記元のブロック22として選択することが可能となるので、転記処理による性能の低下をより小さくすることが可能である。
第1の実施形態では、ホットデータとコールドデータとそれぞれ異なるブロック22に格納しておく。このために、転記処理において、CPU11は、ホットデータとコールドデータとをそれぞれ別のブロック22に転記することができる。
なお、ホットデータとコールドデータとの区別の方法は、特定の方法に限定されない。以下に、第1の実施形態におけるホットデータとコールドデータとの区別の方法を説明する。
ホットデータを多く記憶しているブロック22(以降、ホットブロック22)は、コールドデータを多く記憶しているブロック22(以降、コールドブロック22)に比べ、有効データ率の減少速度が速い。よって、ホットブロック22は、コールドブロック22に比べ、ガベージコレクションの転記元として選択され易い。
逆に、コールドブロック22は、ホットブロック22に比べ、ガベージコレクションの転記元として選択され難く、その結果、他のブロック22に比べ、イレース回数が少なくなる傾向がある。よって、コールドブロック22は、ホットブロック22に比べ、ウェアレベリングの転記元として選択され易い。
以上の性質に基づき、第1の実施形態では、CPU11は、ガベージコレクションの転記元として選択されたブロック22をホットブロック22として見なし、ホットブロック22に格納されているユーザデータ23をホットデータとして見なす。そして、CPU11は、ウェアレベリングの転記元として選択されたブロック22をコールドブロック22として見なし、コールドブロック22に格納されているユーザデータ23をコールドデータとして見なす。即ち、図4に例示されるように、CPU11は、ガベージコレクションの転記元として選択されたブロック22に格納されている有効なユーザデータ23を、ホットデータの転記先として用意されているブロック22a1に転記し、ウェアレベリングの転記元として選択されたブロック22に格納されている有効なユーザデータ23を、コールドデータの転記先として用意されているブロック22a2に転記する。
図5は、第1の実施形態のブロック構成例を示す図である。本図に例示されるように、ホットデータの転記先のブロック22a1、コールドデータの転記先のブロック22a2、およびホストライトによる書き込み先のブロック22a3がそれぞれ1つずつ設定されている。ホットデータの転記先のブロック22a1、コールドデータの転記先のブロック22a2、およびホストライトによる書き込み先のブロック22a3を、インプットブロック22aと総称する。また、NANDメモリ20は、アクティブブロック22bおよびフリーブロック22cを含む。アクティブブロック22bは、データが一杯まで書き込まれた状態のブロック22である。なお、アクティブブロック22bは必ずしもデータが一杯まで書き込まれていなくてもよい。転記元のブロック22は、アクティブブロック22bから選択される。インプットブロック22aのうちの一がデータで一杯になると、そのインプットブロック22aは、以降、アクティブブロック22bと見なされる。そして、新たなインプットブロック22aがフリーブロック22cから選択される。
このように、本実施形態では、ホットデータの転機先とコールドデータの転機先との両方が同時に異なるブロックとして確保される。
なお、コールドブロック22の有効データ率は、ガベージコレクションの転記元として選択されるホットブロック22に比べて大きい傾向がある。よって、転記処理において、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比が増加するにつれて、ホストライト量に対する総転記ライト量の比が増加し、その結果、メモリシステム1の性能の悪化が起こる。また、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比が変動すると、ホストライト量に対する総転記ライト量の比が変動するので、メモリシステム1の性能が変動する。なお、書き込みレートとは、時間に対して定義されるのではなく、単位量のデータの書き込みの実行頻度の割合をいう。単位量は、例えばページサイズなど、ブロックに比べて小さいサイズである。
第1の実施形態では、メモリシステム1の性能をターゲット性能以上に保つために、CPU11は、転記処理において、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比が所定値となるように制御する場合がある。
また、第1の実施形態では、メモリシステム1の性能の変動を小さくするために、CPU11は、ブロック22a1に対する書き込みおよびブロック22a2に対する書き込みを、ブロック単位で切り替えるのではなく、ブロック22よりも小さい単位で切り替える。ここでは、CPU11は、各書き込みをページ単位で切り替える例について説明するが切り替えの単位はこれに限定されない。
図6は、第1の実施形態のメモリシステム1のメモリ構成例を説明する図である。図示するように、NANDメモリ20には、1以上のユーザデータ23と、1以上のログ情報24とが格納され得る。各ユーザデータ23は、ホスト2から送られてきたデータである。ログ情報24は、ユーザデータ23がホスト2から送られてきた時点におけるそのユーザデータ23の論理アドレスを少なくとも記録した情報である。
図7は、ログ情報のデータ構成例を示す図である。本図において、4つのユーザデータ23a〜23dと、ログ情報24と、は、1つのページに書き込まれる。4つのユーザデータ23a〜23dのそれぞれと、ログ情報24と、は、ページよりも小さい決められた単位サイズを有する。この単位サイズは、一例では、クラスタと呼ばれるサイズである。ログ情報24は、4つのユーザデータ23a〜23dの論理アドレスが記録された配列である。ログ情報24に記録された4つの論理アドレスの順番は、4つのユーザデータ23a〜23dの物理アドレスの順番に対応する。よって、ログ情報24を検索することによって、そのログ情報24と同一のページに格納されている4つのユーザデータ23a〜23dのホスト2から送られてきた際の論理アドレスを得ることが可能である。
なお、上記のログ情報24のデータ構成は一例である。各ユーザデータ23のホスト2から送られてきた際の論理アドレスが特定可能である限り、ログ情報24のデータ構成はこれに限定されない。
図6に説明を戻す。RAM13には、翻訳情報131、有効データカウンタ132、イレース回数カウンタ133、ホットデータ転記先情報134、コールドデータ転記先情報135、およびホストライト先情報136が格納される。また、RAM13には、有効データ情報プール137がアロケートされる。
翻訳情報131は、論理アドレスに対する物理アドレスのマッピングを示す情報である。CPU11は、ホスト2から送られてきたユーザデータ23をNANDメモリ20に書き込む際、および、転記処理において有効データをNANDメモリ20に書き込む際、翻訳情報131を更新する。
具体的には、CPU11は、新しくホスト2から送られてきたユーザデータ23をNANDメモリ20に書き込む際に、翻訳情報131を更新することによって、そのユーザデータ23の論理アドレスにそのユーザデータ23の書き込み先を示す物理アドレスを対応付ける。CPU11は、転記処理において有効なユーザデータ23をNANDメモリ20に書き込む際、そのユーザデータ23の論理アドレスにそのユーザデータ23の書き込み先(転記先)を示す物理アドレスを対応付ける。
また、CPU11は、ホスト2から受信したリード要求の処理などにおいて、論理アドレスに対応する物理アドレスを求める際に、翻訳情報131を検索することによって、その論理アドレスをその物理アドレスに翻訳する。
有効データカウンタ132は、ブロック22毎に有効なユーザデータ23の量が記録された情報である。有効なユーザデータ23の量の表現形式は任意に構成可能である。一例では、有効なユーザデータ23の量は、クラスタの数で表現され得る。CPU11は、ホスト2から送られてきたユーザデータ23をNANDメモリ20に書き込む際、および、転記処理において有効データをNANDメモリ20に書き込む際、有効データカウンタ132を更新する。
イレース回数カウンタ133は、ブロック22毎にイレース回数が記録された情報である。CPU11は、例えば、或るブロック22に対してイレースを実行すると、イレース回数カウンタ133に記録されているそのブロック22のイレース回数をインクリメントする。
ホットデータ転記先情報134は、ホットデータの転記先を記録した情報であり、少なくともホットデータの転記先のブロック22a1を示す。コールドデータ転記先情報135は、コールドデータの転記先を記録した情報であり、少なくともコールドデータの転記先のブロック22a2を示す。ホストライト先情報136は、少なくともホストライトの書き込み先のブロック22a3を示す。
CPU11は、ホットデータの転記先のブロック22aが一杯になると、フリーブロック22cを1つ選択し、選択されたフリーブロック22cに対してイレースを実行し、イレースが実行されたフリーブロック22cをホットデータの新たな転記先のブロック22a1として設定する。同様に、CPU11は、コールドデータの転記先のブロック22bが一杯になると、フリーブロック22cを1つ選択し、選択されたフリーブロック22cに対してイレースを実行し、イレースが実行されたフリーブロック22cをコールドデータの新たな転記先のブロック22bとして設定する。同様に、CPU11は、ホストライトのための書き込み先のブロック22a3が一杯になると、フリーブロック22cを1つ選択し、選択されたフリーブロック22cに対してイレースを実行し、イレースが実行されたフリーブロック22cをホストライトのための新たな書き込み先のブロック22a3として設定する。
有効データ情報プール137は、有効データ情報(例えば、図8等に示す有効データ情報138)がプールされるバッファ領域である。転記処理においては、転記対象のユーザデータ23を特定する処理が実行される。転記対象のユーザデータ23とは、転記元のブロック22に格納されている有効なユーザデータ23である。有効データ情報138は、特定された転記対象のユーザデータ23を示す中間情報である。有効データ情報プール137の詳細は後述する。
図8は、第1の実施形態のメモリシステム1の機能的構成を説明するための図である。本図に例示されるように、メモリシステム1は、ガベージコレクション(GC)対象選択部111、ウェアレベリング(WL)対象選択部112、転記元切り替え部113、有効判定部114、および転記制御部115を備える。GC対象選択部111、WL対象選択部112、転記元切り替え部113、有効判定部114、および転記制御部115は、一例では、CPU11がファームウェアプログラムを実行することによって実現する。
GC対象選択部111は、NANDメモリ20が備える複数のブロック22からガベージコレクションの転記元を選択する。GC対象選択部111は、有効データカウンタ132を参照し、アクティブブロック22bから、各ブロック22の有効データ率に基づいて、ガベージコレクションの転記元を選択する。
WL対象選択部112は、NANDメモリ20が備える複数のブロック22からウェアレベリングの転記元を選択する。WL対象選択部112は、イレース回数カウンタ133を参照し、アクティブブロック22bから、各ブロック22のイレース回数に基づいて、ウェアレベリングの転記元を選択する。
転記元切り替え部113は、ガベージコレクションの転記元またはウェアレベリングの転記元からログ情報24をリードするための要求であるログリード要求をNANDC14を介してNANDメモリ20に送信する。
有効判定部114は、NANDメモリ20から読み出されたログ情報24と翻訳情報131とに基づき、転記元に格納されている有効なユーザデータ23を特定する。そして、有効判定部114は、特定した有効なユーザデータ23を示す有効データ情報138を、有効データ情報プール137に格納する。
ログ情報24は、ユーザデータ23がホスト2から送られてきた際のそのユーザデータ23の論理アドレスを示しており、そのユーザデータ23と同じページに書き込まれる。よって、有効判定部114は、ログ情報24から、そのユーザデータ23のホスト2から送られてきた際の論理アドレスと、物理アドレスと、の対応関係を得ることができる。一方、翻訳情報131は、論理アドレスと物理アドレスとの最新の対応関係を示している。ログ情報24から得られる対応関係が翻訳情報131が示す対応関係と一致する場合、有効判定部114は、そのユーザデータ23は有効であると判定する。ログ情報24から得られる対応関係が翻訳情報131が示す対応関係と一致しない場合、有効判定部114は、そのユーザデータ23は無効であると判定する。
有効データ情報138のデータ構成は特定のデータ構成に限定されない。一例では、有効データ情報138は、論理アドレスと物理アドレスとの対を含む。有効データ情報138に記録される物理アドレスは、転記対象のユーザデータ23が格納されている位置を示す物理アドレスであり、有効データ情報138に記録される論理アドレスは、その物理アドレスがマッピングされている論理アドレスである。
転記制御部115は、有効データ情報プール137に格納されている有効データ情報138が示すユーザデータ23を、転記元のブロック22からNANDC14を介して読み出し、読み出された有効なユーザデータ23を、NANDC14を介して転記先のブロック22に書き込む。転記制御部115は、コールドデータをコールドデータ転記先情報135が示すブロック22に書き込み、ホットデータをホットデータ転記先情報134が示すブロック22に書き込む。
なお、転記対象のユーザデータ23がホットデータであるかコールドデータであるかを識別可能するための方法の一例として、ユーザデータ23がホットデータであるかコールドデータであるかを識別するための付加情報139が用いられる。
具体的には、ガベージコレクションの転記元からログ情報24を読み出す場合は、転記元切り替え部113は、「ホット」を示す付加情報139をログリード要求に付す。ウェアレベリングの転記元からログ情報24を読み出す場合は、転記元切り替え部113は、「コールド」を示す付加情報139をログリード要求に付す。NANDC14は、ログリード要求に応じて読み出されたログ情報24に、そのログリード要求と同じ内容を有する付加情報139を付す。有効判定部114は、有効データ情報138に、ユーザデータ23が有効であるか否かの判定において使用されたログ情報24と同じ内容を有する付加情報139を付す。これにより、ユーザデータ23の転記元がホットブロック22であるかコールドブロック22であるかの情報が、転記元切り替え部113、有効判定部114、および転記制御部115で共有され、その結果、そのユーザデータ23がホットデータであるかコールドデータであるかが識別可能となる。
なお、転記対象のユーザデータ23がホットデータであるかコールドデータであるかを識別する方法は、上記の方法だけに限定されない。例えば、有効データ情報プール137をホットデータ用とコールドデータ用とで分ける方法が採用され得る。別の例では、転記制御部115は、有効データ情報138が示す論理アドレスを、翻訳情報131を用いて物理アドレスに翻訳する。そして、転記制御部115は、その物理アドレスがガベージコレクションの転記元を示しているかウェアレベリングの転記元を示しているかに基づいて、有効データ情報138が示すユーザデータ23がホットデータであるかコールドデータであるかを判定する。このように、転記対象のユーザデータ23がホットデータであるかコールドデータであるかを識別する方法としては、種々の方法が採用され得る。
次に、第1の実施形態のメモリシステム1の動作を説明する。図9は、第1の実施形態のメモリシステム1に備えられたGC対象選択部111の動作の一例を示すフローチャートである。
GC対象選択部111は、まず、フリーブロック22cの数が閾値Th1より小さいか否かを判定する(S101)。フリーブロック22cの数が閾値Th1より小さくない場合(S101、No)、S101の処理が再び実行される。
フリーブロック22cの数が閾値Th1より小さい場合(S101、Yes)、GC対象選択部111は、有効データカウンタ132に基づき、格納されている有効データの量が最も小さいブロック22をガベージコレクションの転記元として選択する(S102)。ガベージコレクションの転記元は、転記元切り替え部113に通知される。
GC対象選択部111は、ガベージコレクションの転記元に格納されている全ての有効なユーザデータ23の転記が完了したか否かを判定する(S103)。当該転記が完了していない場合(S103、No)、S103の処理が再び実行される。当該転記が完了した場合(S103、Yes)、S101の処理が再び実行される。
なお、ガベージコレクションの転記元を選択する方法は、上記の方法だけに限定されない。例えば、閾値Th1は可変に構成されてもよい。
また、格納されている有効データの量が最も小さいブロック22をガベージコレクションの転記元として選択すること(S102)は、格納されている有効データの量に基づいてガベージコレクションの転記元を選択する方法の一例である。GC対象選択部111は、NANDメモリ20から所定数のブロック22をサンプリングし、サンプリングされた所定数のブロック22のうちの格納されている有効データの量が最も小さいブロック22を選択してもよい。このように、GC対象選択部111は、格納されている有効データの量が小さいブロック22をガベージコレクションの転記先として優先的に選択する。
図10は、第1の実施形態のメモリシステム1に備えられたWL対象選択部112の動作の一例を示すフローチャートである。
WL対象選択部112は、まず、イレース回数カウンタ133に基づき、NANDメモリ20を構成する複数のブロック22について、イレース回数の分布の幅を演算する(S201)。イレース回数の分布の幅は、例えば、全てのブロック22のイレース回数のうちの最大値と最小値との差分である。
WL対象選択部112は、イレース回数の分布の幅が閾値Th2を越えているか否かを判定する(S202)。イレース回数の分布の幅が閾値Th2を越えていない場合(S202、No)、S201の処理が再び実行される。
イレース回数の分布の幅が閾値Th2を越えている場合(S202、Yes)、WL対象選択部112は、イレース回数が最小値であるブロック22を、ウェアレベリングの転記元として選択する(S203)。ウェアレベリングの転記元は、転記元切り替え部113に通知される。そして、S201の処理が再び実行される。
以上述べた動作例では、WL対象選択部112は、イレース回数の分布の幅と閾値Th2との比較に基づいて、ウェアレベリングの転記元を選択するか否かを判定する。これは、NANDメモリ20が有する複数のブロック22間でイレース回数ができるだけ均一になるようにするためである。ウェアレベリングの転記元を選択する方法は、上記の方法だけに限定されない。例えば、WL対象選択部112は、イレース回数が全てのまたは一部のブロック22のイレース回数の平均値よりも閾値Th2以上少ないブロック22がある場合に、ウェアレベリングの転記元の選択を実行し、イレース回数が当該平均値よりも閾値Th2以上少ないブロック22がない場合、ウェアレベリングの転記元の選択を停止してもよい。このように、少なくとも各ブロック22のイレース回数に基づいてウェアレベリングの転記元を選択するか否かが判定される。
また、イレース回数が最も小さいブロック22をウェアレベリングの転記元として選択することは、各ブロック22のイレース回数に基づいてウェアレベリングの転記元として選択する方法の一例である。WL対象選択部112は、所定数のブロック22をサンプリングし、サンプリングされた所定数のブロック22のうちのイレース回数が最も小さいブロック22を選択してもよい。このように、WL対象選択部112は、各ブロック22のイレース回数に基づいて、イレース回数が少ないブロック22を優先的にウェアレベリングの転記元として選択する。
図11は、第1の実施形態のメモリシステム1に備えられた転記元切り替え部113の動作の一例を示すフローチャートである。
転記元切り替え部113は、ガベージコレクションの転記元とウェアレベリングの転記元との両方が選択されているか否かを判定する(S301)。ガベージコレクションの転記元とウェアレベリングの転記元との両方が選択されているとは、ガベージコレクションの転記元およびウェアレベリングの転記元の両方に、まだ転記が完了していない有効データが残っていることである。
ガベージコレクションの転記元とウェアレベリングの転記元との両方が選択されている場合(S301、Yes)、転記元切り替え部113は、有効データカウンタ132に基づき、ガベージコレクションの転記元から読み出すログ情報24の数(量)(Na)とウェアレベリングの転記元から読み出すログ情報24の数(量)(Nb)との比(Na:Nb)を算出する(S302)。
例えば、ガベージコレクションの転記元の有効データ率がRaであり、ウェアレベリングの転記元の有効データ率がRbであり、ホットデータの転記処理にかかる書き込みレートとコールドデータの転記処理にかかる書き込みレートとの比の設定値がVa:Vbである場合、Na=Va/Raであり、Nb=Vb/Rbである。NaおよびNbはそれぞれ整数値に丸められる。
転記元切り替え部113は、ガベージコレクションの転記元からNa個のログ情報24を読み出すためのログリード要求を、ホットを示す付加情報139を付してNANDC14に送信する(S303)。また、転記元切り替え部113は、ウェアレベリングの転記元からNb個のログ情報24を読み出すためのログリード要求を、コールドを示す付加情報139を付してNANDC14に送信する(S304)。そして、S301の処理が再び実行される。
一方、S301の判定処理において、ガベージコレクションの転記元とウェアレベリングの転記元との両方が選択されていると判定されなかった場合(S301、No)、転記元切り替え部113は、ガベージコレクションの転記元が選択されているか否かを判定する(S305)。
ガベージコレクションの転記元が選択されている場合(S305、Yes)、転記元切り替え部113は、ガベージコレクションの転記元からログ情報24を読み出すためのログリード要求を、ホットを示す付加情報139を付してNANDC14に送信する(S306)。そして、S301の処理が再び実行される。なお、S306のログリード要求によって読み出されるログ情報24の数は任意に設計可能である。
S305の判定処理において、ガベージコレクションの転記元が選択されていると判定されなかった場合(S305、No)、転記元切り替え部113は、ウェアレベリングの転記元が選択されているか否かを判定する(S307)。
ウェアレベリングの転記元が選択されている場合(S307、Yes)、転記元切り替え部113は、ウェアレベリングの転記元からログ情報24を読み出すためのログリード要求を、コールドを示す付加情報139を付してNANDC14に送信する(S308)。そして、S301の処理が再び実行される。なお、S308のログリード要求によって読み出されるログ情報24の数は任意に設計可能である。
一方、S307の判定処理において、ウェアレベリングの転記元が選択されていないと判定された場合(S307、No)、S301の処理が再び実行される。
このように、転記元切り替え部113は、ガベージコレクションの転記元が選択されているか否か、および、ウェアレベリングの転記元が選択されているか否か、に基づき、ログ情報24の読み出し元のブロック22を切り替える。
ガベージコレクションの転記元およびウェアレベリングの転記元の両方が選択されている場合には、転記元切り替え部113は、後段の処理においてホットデータの書き込みレートとコールドデータの書き込みレートとの比がVa:Vbとなるように、ガベージコレクションの転記元からのログ情報24の読み出し量とウェアレベリングの転記元からのログ情報24の読み出し量との比を制御する。
図12は、第1の実施形態のメモリシステム1に備えられた有効判定部114の動作の一例を示すフローチャートである。
有効判定部114は、NANDC14を介してログ情報24を受信すると(S401)、そのログ情報24と翻訳情報131とに基づいて、そのログ情報24と同じページに格納されている複数のユーザデータ23のうちの有効なユーザデータ23を特定する(S402)。有効なユーザデータ23の特定方法は、段落0061において前述した通りである。
有効判定部114は、有効なユーザデータ23が特定されたか否かを判定する(S403)。有効なユーザデータ23が特定された場合(S403、Yes)、有効判定部114は、その有効なユーザデータ23を示す有効データ情報138を生成し、生成した有効データ情報138を、そのログ情報24に付されていた付加情報139を付して、有効データ情報プール137に格納する(S404)。複数の有効なユーザデータ23が特定された場合には、有効判定部114は、S404の処理において、複数の有効なユーザデータ23のそれぞれについて有効データ情報138を生成する。S404の処理の後、S401の処理が再び実行される。
有効なユーザデータ23が特定されなかった場合(S403、No)、S404の処理がスキップされ、S401の処理が再び実行される。
なお、ユーザデータ23が有効であるか否かの判定方法は、上記の方法だけに限定されない。例えばCPU11が、ユーザデータ23の論理アドレス毎に有効であるか無効であるかを示すビットマップ情報を管理し、このビットマップ情報に基づいて有効なユーザデータ23を特定してもよい。
図13は、第1の実施形態のメモリシステム1に備えられる転記制御部115の動作の一例を示すフローチャートである。
転記制御部115は、有効データ情報プール137に格納されている、ホットを示す付加情報139が付加された有効データ情報138の数が、「N」に至ったか否かを判定する(S501)。Nは、1ページに格納可能なユーザデータ23の数の最大値である。図7の例に従えば、N=4である。
当該ホットを示す付加情報139が付加された有効データ情報138の数が、「N」に至った場合(S501、Yes)、転記制御部115は、これらN個の有効データ情報138のそれぞれが示すユーザデータ23を、NANDC14を介してリードする(S502)。リードされた各ユーザデータ23は、RAM13などにバッファされる。
続いて、転記制御部115は、リードしたN個のユーザデータ23にかかるログ情報24を生成する(S503)。例えば転記制御部115は、N個の有効データ情報138から論理アドレスを読み出して、読み出したN個の論理アドレスを配列することによってログ情報24を生成する。
続いて、転記制御部115は、S502の処理によってリードされたN個のユーザデータ23と、S503の処理によって生成されたログ情報24とを、NANDC14を介してホットデータ転記先情報134が示すブロック22の1つのページに書き込む(S504)。
そして、転記制御部115は、翻訳情報131を更新する(S505)。具体的には、転記制御部115は、S502〜S504の処理によって転記されたN個のユーザデータ23のそれぞれについて、論理アドレスに対応付けられている物理アドレスを、ユーザデータ23の書き込み先を示す物理アドレスで上書きする。S505の処理の後、S501の処理が再び実行される。
なお、転記制御部115は、S502〜S504の処理によって転記されたN個のユーザデータ23のそれぞれについて、転記時の論理アドレスがS505の実行時においても依然として転記元の物理アドレスにマッピングされていることを確認してから翻訳情報131の更新を行ってもよい。転記時の論理アドレスが転記元の物理アドレスにマッピングされていないことは、転記時には有効であったデータがその後のホストライトによって無効になったことを意味する。転記時の論理アドレスがS505の実行時において転記元の物理アドレスにマッピングされていない場合、転記制御部115は、転記元の物理アドレスに関する対応関係を更新しない。
有効データ情報プール137に格納されている、ホットを示す付加情報139が付加された有効データ情報138の数が、「N」に至っていない場合(S501、No)、転記制御部115は、コールドを示す付加情報139が付加された有効データ情報138の数が、「N」に至ったか否かを判定する(S506)。
当該コールドを示す付加情報139が付加された有効データ情報138の数が、「N」に至った場合(S506、Yes)、これらN個の有効データ情報138のそれぞれが示すユーザデータ23を、NANDC14を介してリードする(S507)。リードされた各ユーザデータ23は、RAM13などにバッファされる。
続いて、転記制御部115は、リードしたN個のユーザデータ23にかかるログ情報24をS503と同様の方法で生成する(S508)。そして、転記制御部115は、S507の処理によってリードされたN個のユーザデータ23と、S508の処理によって生成されたログ情報24とを、NANDC14を介してコールドデータ転記先情報135が示すブロック22の1つのページに書き込む(S509)。
そして、転記制御部115は、翻訳情報131を更新する(S510)。具体的には、転記制御部115は、S507〜S509の処理によって転記されたN個のユーザデータ23のそれぞれについて、論理アドレスに対応付けられている物理アドレスを、ユーザデータ23の書き込み先を示す物理アドレスで上書きする。
有効データ情報プール137に格納されている、コールドを示す付加情報139が付加された有効データ情報138の数が、「N」に至っていない場合(S506、No)、またはS510の処理の後、S501の処理が再び実行される。
なお、転記制御部115は、特定された有効データの量が1ページの量(N個)に達した後に、特定された有効データの転記を実行するのではなく、有効データ情報プール137に有効データ情報138が格納されると、その有効データ情報138が示すユーザデータ23をホットデータとコールドデータとを区別してRAM13に読み出し、ホットデータおよびコールドデータのいずれかがRAM13に1ページの量だけ溜まった場合に、その1ページの量のユーザデータ23を転記先に書き込んでもよい。
図14は、以上に説明した動作によって実現する、NANDメモリ20への書き込みの順番を説明する図である。本図は、Va:Vbが2:1に設定されている場合のデータの書き込み順を示している。図示されるように、2ページのホットデータの書き込みと、1ページのコールドデータの書き込みとが、交互に実行される。即ち、ホットデータの転記処理とコールドデータの転記処理は、ページ単位で切り替えられる。2ブロックのホットデータの書き込みの後にコールドデータの書き込みに切り替わったり、1ブロックのコールドデータの書き込みの後にホットデータの書き込みに切り替わったりするのではない。
以上述べたように、第1の実施形態によれば、メモリコントローラ10は、ガベージコレクションの転記元を選択し、ウェアレベリングの転記元を選択する。そして、メモリコントローラ10は、ガベージコレクションの転記元に格納されている有効データを、ホットデータ用の転記先に転記し、ウェアレベリングの転記元に格納されている有効データを、コールドデータ用の転記先に転記する。
これにより、有効な状態から無効な状態になるまでの期間が比較的短いユーザデータ23と、有効な状態から無効な状態になるまでの期間が比較的長いユーザデータ23と、がそれぞれ異なるブロック22に格納される。よって、転記処理に起因するメモリシステム1の性能の低下を抑制することが可能となる。
また、NANDメモリ20は、ホットデータの転記先のブロック22a1と、コールドデータの転記先のブロック22a2との両方が同時に確保されている。これにより、ホットデータの転記処理とコールドデータの転記処理とを並行に実行することが可能となる。
また、メモリコントローラ10は、ホットデータの転記処理と、コールドデータの転記処理とを、ブロック22よりも小さいサイズのデータ単位で切り替える。これにより、ブロック22のサイズのデータ単位で転記処理の切り替えを実行する場合に比べて、メモリシステム1の性能の変動を小さくすることが可能である。
また、メモリコントローラ10は、ガベージコレクションの転記元とウェアレベリングの転記元とがともに選択されている場合に、ガベージコレクションの転記元から読み出された有効データの書き込みレートと、ウェアレベリングの転記元から読み出された有効データの書き込みレートとの比が所定値に近づくように、それぞれの有効データの転記を実行する。
よって、ウェアレベリングの転記元の有効データ率が大きい場合であっても、ウェアレベリングを実行することによるメモリシステム1の性能の低下を抑制することができる。
(第2の実施形態)
NANDメモリ20は、複数のメモリセルトランジスタ(メモリセル)からなるメモリセルアレイを備えている。書き込みの際には、各メモリセルのしきい値電圧がデータ値に応じた範囲に収まるように制御される。しきい値電圧の範囲とデータ値との関係は、予め定められている。しかしながら、メモリセルのしきい値電圧は変化し得る。しきい値電圧が変化することによって、メモリセルにプログラムされたデータ値が変化することがある。変化したデータ値は、通常は、メモリシステム1に具備されるエラー検出機能によって、エラーとして検出される。そして、検出されたエラーは、エラー訂正機能によって、書き込み時のデータ値に訂正される。
NANDメモリ20は、複数のメモリセルトランジスタ(メモリセル)からなるメモリセルアレイを備えている。書き込みの際には、各メモリセルのしきい値電圧がデータ値に応じた範囲に収まるように制御される。しきい値電圧の範囲とデータ値との関係は、予め定められている。しかしながら、メモリセルのしきい値電圧は変化し得る。しきい値電圧が変化することによって、メモリセルにプログラムされたデータ値が変化することがある。変化したデータ値は、通常は、メモリシステム1に具備されるエラー検出機能によって、エラーとして検出される。そして、検出されたエラーは、エラー訂正機能によって、書き込み時のデータ値に訂正される。
しかしながら、エラー訂正機能の訂正能力には上限が存在する。エラーの数が当該訂正能力の上限を超えることを防止するために、書き込み済みのユーザデータ23は、所定のタイミングで、リフレッシュされる。即ち、リフレッシュとは、NANDメモリ20に格納されているユーザデータ23を読み出して、読み出したユーザデータ23にエラーがあればをエラー訂正後のデータを、エラーがなければそのデータを、NANDメモリ20に書き込む処理である。
書き換えが長期間行われなかったブロック22が、リフレッシュの転記元として選択されやすい傾向がある。よって、第2の実施形態では、CPU11は、転記処理として、ガベージコレクション、ウェアレベリングの他に、リフレッシュを実行する。そして、図15に例示されるように、CPU11は、ウェアレベリングの転記元として選択されたブロック22に加え、リフレッシュの転記元として選択されたブロック22を、コールドブロック22として見なし、リフレッシュの転記元に格納されている有効なユーザデータ23を、コールドデータの転記先として用意されているブロック22に転記する。
図16は、第2の実施形態のメモリシステム1の機能的構成を説明するための図である。本図に例示されるように、第2の実施形態のメモリシステム1は、第1の実施形態のメモリシステム1にリフレッシュ対象選択部116が追加された構成を有する。リフレッシュ対象選択部116は、一例では、CPU11がファームウェアプログラムを実行することによって実現する。以降では、追加されたリフレッシュ対象選択部116についてのみ、機能および動作を説明する。他の機能構成部の機能および動作は、第1の実施形態と同様であるため、機能および動作の説明を省略する。
リフレッシュ対象選択部116は、NANDメモリ20が備える複数のブロック22からリフレッシュの転記元を選択する。リフレッシュの転記元の選択方法は、特定の方法に限定されない。ここでは、3つの選択方法を説明する。
図17は、第2の実施形態のリフレッシュ対象選択部116の動作の一例を示すフローチャートである。
リフレッシュ対象選択部116は、NANDメモリ20からのユーザデータ23のリードが実行された際に(S601)、当該ユーザデータ23に含まれているエラービットの数を取得する(S602)。S601の処理においてリードされたデータに含まれるエラービットの数は、メモリシステム1に具備される不図示のエラー訂正機能によって計測され、リフレッシュ対象選択部116に取得される。
なお、S601の処理のリードは、ホスト2からのリード要求に応じて実行されるリードであってもよいし、ホスト2からのリード要求とは関係なく実行されるリードであってもよい。リフレッシュの対象となるブロック22を検出するために、ホスト2からのリード要求とは関係なく、各ブロック22に対し、所定の周期でリードが実行されてもよい。
続いて、リフレッシュ対象選択部116は、エラービットの数が閾値Th3を越えているか否かを判定する(S603)。エラービットの数が閾値Th3を越えている場合(S603、Yes)、リフレッシュ対象選択部116は、リードが実行されたブロック22を、リフレッシュの転記元として選択する(S604)。
エラービットの数が閾値Th3を越えていない場合(S603、No)、またはS604の処理の後、S601の処理が再び実行される。
このように、図17の動作例では、リフレッシュ対象選択部116は、リードしたデータのエラービットの数が閾値Th3を越えているか否かに基づいて、リフレッシュの転記元を選択するか否かを判定する。なお、リフレッシュの転記元を選択する方法は、上記の方法だけに限定されない。リフレッシュ対象選択部116は、エラービットの数が閾値Th3を越えた回数をブロック22毎にカウントし、エラービットの数が閾値Th3を越えた回数が閾値Th4を越えたブロック22が存在する場合に、そのブロック22をリフレッシュの転記元として選択し、エラービットの数が閾値Th3を越えた回数が閾値Th4を越えたブロック22が存在しない場合、リフレッシュの転記元の選択を停止してもよい。このように、エラービットの数に少なくとも基づいてリフレッシュの転記元を選択するか否かが決定され得る。
また、エラービットの数が閾値Th3を越えていた場合、リフレッシュ対象選択部116は、リードが実行されたブロック22をリフレッシュの転記元として選択する。リフレッシュの転記元の選択方法はこれに限定されない。上述したように、エラービットの数が閾値Th3を越えた回数が閾値Th4を越えたブロック22が存在する場合に、そのブロック22がリフレッシュの転記元として選択されてもよい。このように、エラービットの数に少なくとも基づいてリフレッシュの転記元が選択され得る。
なお、上述のエラー訂正機能(以降、第1のエラー訂正機能と表記する)よりもエラー訂正能力が強い他のエラー訂正機能(第2のエラー訂正機能と表記する)がさらにメモリシステム1に具備されてもよい。メモリコントローラ10は、第1のエラー訂正機能がエラー訂正に失敗した場合、エラー訂正能力がより強い第2のエラー訂正機能によってエラー訂正を行うことができる。リフレッシュ対象選択部116は、第1のエラー訂正機能がエラー訂正に失敗した場合に、リードが実行されたブロック22をリフレッシュの転記元として選択してもよい。
図18は、第2の実施形態のリフレッシュ対象選択部116の動作の別の一例を示すフローチャートである。この例では、リードの実行回数に応じてリフレッシュの転記元が選択される。この方法は、リードディスターブに起因するエラーによって訂正不能となるユーザデータ23の発生を抑制するためである。
リフレッシュ対象選択部116は、あるブロック22に対してユーザデータ23のリードが実行された際に(S701)、そのブロック22に実行されたリードの回数が閾値Th5を越えたか否かを判定する(S702)。そのブロック22に実行されたリードの回数が閾値Th5を越えた場合(S702、Yes)、リフレッシュ対象選択部116は、そのブロック22をリフレッシュの転記元として選択する(S703)。
そのブロック22に実行されたリードの回数が閾値Th5を越えていない場合(S702、No)、またはS703の処理の後、S701に制御が移行する。
このように、図18の動作例では、リフレッシュ対象選択部116は、各ブロック22に対するリードの回数に基づいて、リフレッシュの転記元を選択するか否かを判定する。リフレッシュ対象選択部116は、リードの回数が閾値Th5を越えたブロック22が存在する場合、そのブロック22をリフレッシュの転記元として選択する。
図19は、第2の実施形態のリフレッシュ対象選択部116の動作のさらに別の一例を示すフローチャートである。この例では、ユーザデータ23の書き込みが実行されてからの経過時間に応じてリフレッシュの転記元が選択される。この方法は、データリテンションの経過に起因するエラーによって訂正不能となるユーザデータ23の発生を抑制するためである。
リフレッシュ対象選択部116は、ユーザデータ23の書き込みが開始されてからの経過時間が閾値Th6を越えたブロック22が存在するか否かを判定する(S801)。ユーザデータ23の書き込みが開始されてからの経過時間が閾値Th6を越えたブロック22が存在する場合(S801、Yes)、リフレッシュ対象選択部116は、そのブロック22をリフレッシュの転記元として選択する(S802)。ユーザデータ23の書き込みが開始されてからの経過時間が閾値Th6を越えたブロック22が存在しない場合(S801、No)、またはS802の処理の後、S801に制御が移行する。
このように、図19の動作例では、リフレッシュ対象選択部116は、各ブロック22にユーザデータ23が書き込まれてからの経過時間に基づいて、リフレッシュの転記元を選択するか否かを判定する。リフレッシュ対象選択部116は、ユーザデータ23が書き込まれてからの経過時間が閾値Th6を越えたブロック22が存在する場合、そのブロック22をリフレッシュの転記元として選択する。
リフレッシュ対象選択部116は、図17〜図19を用いて述べたように、種々の方法でリフレッシュの転記元を選択し得る。リフレッシュ対象選択部116は、図17〜図19の方法のうちの複数の方法を同時に実行し得る。
また、第2の実施形態では、ウェアレベリングの転記元として選択されたブロック22と、リフレッシュの転記元として選択されたブロック22と、がコールドブロック22として見なされる、として説明した。CPU11は、リフレッシュの転記元として選択されたブロック22のみをコールドブロック22として見なしてもよい。
以上述べたように、第2の実施形態では、メモリコントローラ10は、リフレッシュの転記元を選択する。そして、メモリコントローラ10は、リフレッシュの転記元に格納されている有効データを、コールドデータ用の転記先(ブロック22a2)に転記する。書き換えが長期間行われなかったブロック22が、リフレッシュの転記元として選択されやすい傾向があり、リフレッシュの転記元として選択されたブロック22に格納されているユーザデータ23が、コールドデータ用の転記先に転記されるので、ホットデータとコールドデータとが別々のブロック22に格納され得る。よって、転記処理に起因する性能の低下が抑制される。
(第3の実施形態)
ホットデータの書き込みレートに対するコールドデータの書き込みレートの比の制御方法は、第1の実施形態にて説明した方法だけに限定されない。第3の実施形態では、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比の制御方法の別の例を説明する。
ホットデータの書き込みレートに対するコールドデータの書き込みレートの比の制御方法は、第1の実施形態にて説明した方法だけに限定されない。第3の実施形態では、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比の制御方法の別の例を説明する。
図20は、第3の実施形態のRAM13に格納される各種データを説明する図である。第3の実施形態では、RAM13には、第1の実施形態と同じ各種情報に加えて、ホットデータ転記ライトカウンタ1301、コールドデータ転記ライトカウンタ1302、およびホストライトカウンタ1303が格納される。
ホットデータ転記ライトカウンタ1301は、ホットデータの転記ライト量を示すカウンタであり、1ページのホットデータが転記される毎にインクリメントされる。
コールドデータ転記ライトカウンタ1302は、コールドデータの転記ライト量を示すカウンタであり、1ページのコールドデータが転記される毎にインクリメントされる。
ホストライトカウンタ1303は、ホストライト量を示すカウンタであり、1ページのホストライトが実行される毎にインクリメントされる。
ホットデータ転記ライトカウンタ1301、コールドデータ転記ライトカウンタ1302、およびホストライトカウンタ1303は、リセットされてもよいし、リセットされなくてもよい。一例では、ホットデータ転記ライトカウンタ1301、コールドデータ転記ライトカウンタ1302、およびホストライトカウンタ1303は、定期的に同時にリセットされる。
図21は、第3の実施形態の転記制御部115の動作を説明するフローチャートである。まず、転記制御部115は、ホットデータ転記ライトカウンタ1301およびコールドデータ転記ライトカウンタ1302に基づき、ホットデータの転記処理およびコールドデータの転記処理のうちの実行すべき処理を選択する(S901)。
S901では、転記制御部115は、カウンタの値の比率が設定値の比率よりも低い処理を選択する。例えば、ホットデータの転記処理にかかる書き込みレートとコールドデータの転記処理にかかる書き込みレートとの比の設定値Va:Vbが2:1であることを考える。これは、ホットデータの転記ライト量は、コールドデータの転記ライト量の2倍に設定され、すなわちコールドデータの転記ライト量は、ホットデータの転記ライト量の半分に設定されていることに該当する。ホットデータ転記ライトカウンタ1301の値が「8」であり、コールドデータ転記ライトカウンタ1302の値が「5」である場合、ホットデータの転記ライト量はコールドデータの転記ライト量の2倍未満であるので、転記制御部115は、ホットデータの転記処理を選択する。あるいは、ホットデータ転記ライトカウンタ1301の値が「11」であり、コールドデータ転記ライトカウンタ1302の値が「5」である場合、コールドデータの転記ライト量はホットデータの転記ライト量の半分未満であるので、転記制御部115は、コールドデータの転記処理を選択する。
なお、ホットを示す付加情報139が付加された有効データ情報138およびコールドを示す付加情報139が付加された有効データ情報138のうちの一方が不足している場合、転記制御部115は、S901において、有効データ情報138が不足していない方に関する転記処理を選択してもよい。有効データ情報138が不足しているとは、有効データ情報138の数が、1ページに格納可能なユーザデータ23の数の最大値に満たないことをいう。ホットを示す付加情報139が付加された有効データ情報138およびコールドを示す付加情報139が付加された有効データ情報138の両方が足りている場合、転記制御部115は、カウンタの値の比率が設定値の比率よりも低い処理を選択する。
ホットを示す付加情報139が付加された有効データ情報138およびコールドを示す付加情報139が付加された有効データ情報138の両方が不足している場合、転記制御部115は、どちらか一方の有効データ情報138が足りるまで、動作を停止してもよい。
転記制御部115は、選択した処理を、1ページ分だけ実行する(S902)。例えば、転記制御部115は、S901においてホットデータの転記処理を選択した場合、1ページのホットデータの転記処理を実行する。
転記制御部115は、ホットデータ転記ライトカウンタ1301およびコールドデータ転記ライトカウンタ1302のうちの実行した処理に対応するカウンタをインクリメントし(S903)、S901の処理を再び実行する。
これにより、第3の実施形態によれば、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比の制御が実現する。このように、ホットデータの書き込みレートに対するコールドデータの書き込みレートの比の制御は、種々の方法によって実現され得る。
なお、第3の実施形態の方法によって、ホストライトの書き込みレートと、ホットデータの書き込みレートと、コールドデータの書き込みレートと、の比の制御が可能である。
例えば、CPU11は、S901の処理と同様の処理によって、ホストライト、ホットデータの転記処理、およびコールドデータの転記処理のうちの1つを選択する。そして、CPU11は、選択した処理を1ページ分だけ実行するとともに、対応するカウンタをインクリメントする。これにより、ホストライトの書き込みレートと、ホットデータの書き込みレートと、コールドデータの書き込みレートとの比を制御することが可能となる。
図22は、NANDメモリ20への書き込みの順番を説明する図である。本図は、ホストライトの書き込みレートとガベージコレクションによる転記処理の書き込みレート(ホットデータの転記処理の書き込みレート)との比の設定値が1.5:1であり、ホットデータの転記処理の書き込みレートとコールドデータの転記処理の書き込みレートとの比の設定値が2:1である場合、についての書き込みの順番を示している。図示されるように、ホストライトと、ホットデータの転記処理と、コールドデータの転記処理とは、ページ単位で切り替えられる。ホストライト、ホットデータの転記処理、コールドデータの転記処理、ホストライト、ホットデータの転記処理、ホストライト、の順番で処理が切り替えられることによって、結果として、ホストライトの書き込みレートとホットデータの転記処理の書き込みレートの比をおよそ1.5:1に制御し、ホットデータの転記処理の書き込みレートとコールドデータの転記処理の書き込みレートとの比をおよそ2:1に制御することができる。なお、切り替えの順番はこれのみに限定されない。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリシステム、2 ホスト、10 メモリコントローラ、11 CPU、12 ホストインタフェース、13 RAM、14 NANDC、20 NANDメモリ、21 メモリチップ、22,22a,22b ブロック、23,23a,23b,23c,23d ユーザデータ、24 ログ情報、111 ガベージコレクション対象選択部、112 ウェアレベリング対象選択部、113 転記元切り替え部、114 有効判定部、115 転記制御部、116 リフレッシュ対象選択部、131 翻訳情報、132 有効データカウンタ、133 イレース回数カウンタ、134 ホットデータ転記先情報、135 コールドデータ転記先情報、136 ホストライト先情報、137 有効データ情報プール、138 有効データ情報、139 付加情報、1301 ホットデータ転記ライトカウンタ、1302 コールドデータ転記ライトカウンタ。
Claims (20)
- 複数のブロックを有する不揮発性の半導体メモリと、
前記複数のブロックから、ガベージコレクションの対象のブロックである第1ブロックと、ウェアレベリングまたはリフレッシュの対象のブロックである第2ブロックと、を選択し、前記第1ブロックに格納されている有効なデータである第1データを前記複数のブロックのうちの空き領域を有するブロックである第3ブロックに転記し、前記第2ブロックに格納されている有効なデータである第2データを前記複数のブロックのうちの空き領域を有し前記第3ブロックと異なるブロックである第4ブロックに転記する、メモリコントローラ回路と、
を備えるメモリシステム。 - 前記複数のブロックは、前記第3ブロックおよび前記第4ブロックの両方を同時に備える、請求項1に記載のメモリシステム。
- 前記メモリコントローラ回路は、前記第1データの前記第3ブロックへの転記と、前記第2データの前記第4ブロックへの転記とを、前記ブロックよりも小さいサイズのデータ単位で切り替える、
請求項2に記載のメモリシステム。 - 前記メモリコントローラ回路は、前記第1データの前記第3ブロックへの書き込みレートと前記第2データの前記第4ブロックへの書き込みレートとの比が設定値に近づくように、前記第1データの転記と前記第2データの転記とを実行する、
請求項3に記載のメモリシステム。 - 前記メモリコントローラ回路は、前記第1ブロックを前記複数のブロックのそれぞれに格納されている有効なデータの量に基づいて選択する、
請求項1に記載のメモリシステム。 - 前記メモリコントローラ回路は、前記第2ブロックを前記複数のブロックのそれぞれに対する消去の実行回数に基づいて選択する、
請求項1に記載のメモリシステム。 - 前記メモリコントローラ回路は、前記第2ブロックを前記複数のブロックのそれぞれに対する読み出しの実行回数に基づいて選択する、
請求項1に記載のメモリシステム。 - 前記メモリコントローラ回路は、前記第2ブロックを前記複数のブロックのそれぞれからリードされたデータに含まれるエラービット数に基づいて選択する、
請求項1に記載のメモリシステム。 - 前記メモリコントローラ回路は、前記第2ブロックを、前記複数のブロックのそれぞれの、データが格納されてからの経過時間に基づいて選択する、
請求項1に記載のメモリシステム。 - 前記メモリコントローラ回路は、
ホストに接続可能なインタフェース回路を備え、
前記インタフェース回路を介して前記ホストから受信したデータである第3データを前記第2ブロックとも前記第4ブロックとも異なる第5ブロックに書き込み、
前記第1データの前記第3ブロックへの書き込みレートと前記第2データの前記第4ブロックへの書き込みレートと前記第3データの前記第5ブロックへの書き込みレートとの比が設定値に近づくように、前記第1データの転記と前記第2データの転記と前記第3データの書き込みとを実行する、
請求項3に記載のメモリシステム。 - メモリコントローラ回路が複数のブロックを有する不揮発性の半導体メモリを制御する方法であって、
前記複数のブロックから、ガベージコレクションの対象のブロックである第1ブロックを選択し、
前記複数のブロックから、ウェアレベリングまたはリフレッシュの対象のブロックである第2ブロックを選択し、
前記第1ブロックに格納されている有効なデータである第1データを前記複数のブロックのうちの空き領域を有するブロックである第3ブロックに転記し、
前記第2ブロックに格納されている有効なデータである第2データを前記複数のブロックのうちの空き領域を有し前記第3ブロックと異なるブロックである第4ブロックに転記する、
方法。 - 前記複数のブロックは、前記第3ブロックおよび前記第4ブロックの両方を同時に備える、
請求項11に記載の方法。 - 前記第1データの前記第3ブロックへの転記と、前記第2データの前記第4ブロックへの転記とを、前記ブロックよりも小さいサイズのデータ単位で切り替える、
をさらに備える請求項12に記載の方法。 - 前記第1データの前記第3ブロックへの書き込みレートと前記第2データの前記第4ブロックへの書き込みレートとの比が設定値に近づくように、前記第1データの転記と前記第2データの転記とを実行する、
をさらに備える請求項13に記載の方法。 - 前記第1ブロックを前記複数のブロックのそれぞれに格納されている有効なデータの量に基づいて選択する、
をさらに備える請求項11に記載の方法。 - 前記第2ブロックを前記複数のブロックのそれぞれに対する消去の実行回数に基づいて選択する、
をさらに備える請求項11に記載の方法。 - 前記第2ブロックを前記複数のブロックのそれぞれに対する読み出しの実行回数に基づいて選択する、
をさらに備える請求項11に記載の方法。 - 前記第2ブロックを前記複数のブロックのそれぞれからリードされたデータに含まれるエラービット数に基づいて選択する、
をさらに備える請求項11に記載の方法。 - 前記第2ブロックを、前記複数のブロックのそれぞれの、データが格納されてからの経過時間に基づいて選択する、
をさらに備える請求項11に記載の方法。 - メモリコントローラ回路に備えられるインタフェース回路を介してホストから受信したデータである第3データを前記第2ブロックとも前記第4ブロックとも異なる第5ブロックに書き込み、
前記第1データの前記第3ブロックへの書き込みレートと前記第2データの前記第4ブロックへの書き込みレートと前記第3データの前記第5ブロックへの書き込みレートとの比が設定値に近づくように、前記第1データの転記と前記第2データの転記と前記第3データの書き込みとを実行する、
をさらに備える請求項13に記載の方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017058267A JP2018160194A (ja) | 2017-03-23 | 2017-03-23 | メモリシステムおよび方法 |
| US15/911,015 US10310766B2 (en) | 2017-03-23 | 2018-03-02 | Memory system and data relocating method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017058267A JP2018160194A (ja) | 2017-03-23 | 2017-03-23 | メモリシステムおよび方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018160194A true JP2018160194A (ja) | 2018-10-11 |
Family
ID=63582560
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017058267A Pending JP2018160194A (ja) | 2017-03-23 | 2017-03-23 | メモリシステムおよび方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10310766B2 (ja) |
| JP (1) | JP2018160194A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2021043580A (ja) * | 2019-09-09 | 2021-03-18 | キオクシア株式会社 | メモリシステムおよびガベッジコレクション制御方法 |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20190078133A (ko) * | 2017-12-26 | 2019-07-04 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
| US20190228386A1 (en) * | 2018-01-19 | 2019-07-25 | Xapo Holdings Limited | Recording evidence of address/account allocations in a distributed ledger |
| US20190042139A1 (en) * | 2018-08-30 | 2019-02-07 | Intel Corporation | Moving average valid content on ssd |
| TWI668699B (zh) * | 2018-10-25 | 2019-08-11 | 群聯電子股份有限公司 | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 |
| US10915444B2 (en) * | 2018-12-27 | 2021-02-09 | Micron Technology, Inc. | Garbage collection candidate selection using block overwrite rate |
| CN110716699B (zh) * | 2019-10-17 | 2025-12-30 | 北京百度网讯科技有限公司 | 用于写入数据的方法和装置 |
| TWI784224B (zh) * | 2019-12-23 | 2022-11-21 | 大陸商合肥兆芯電子有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
| JP4461187B1 (ja) | 2008-12-24 | 2010-05-12 | 株式会社東芝 | 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法 |
| US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
| US8626989B2 (en) * | 2011-02-02 | 2014-01-07 | Micron Technology, Inc. | Control arrangements and methods for accessing block oriented nonvolatile memory |
| US8782370B2 (en) | 2011-05-15 | 2014-07-15 | Apple Inc. | Selective data storage in LSB and MSB pages |
| US8924636B2 (en) | 2012-02-23 | 2014-12-30 | Kabushiki Kaisha Toshiba | Management information generating method, logical block constructing method, and semiconductor memory device |
| JP2013200741A (ja) | 2012-03-26 | 2013-10-03 | Toshiba Corp | 半導体記憶装置、その制御方法及び情報処理装置 |
| US9411718B2 (en) * | 2012-12-21 | 2016-08-09 | Seagate Technology Llc | Method to apply fine grain wear leveling and garbage collection |
-
2017
- 2017-03-23 JP JP2017058267A patent/JP2018160194A/ja active Pending
-
2018
- 2018-03-02 US US15/911,015 patent/US10310766B2/en active Active
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2021043580A (ja) * | 2019-09-09 | 2021-03-18 | キオクシア株式会社 | メモリシステムおよびガベッジコレクション制御方法 |
| JP7321851B2 (ja) | 2019-09-09 | 2023-08-07 | キオクシア株式会社 | メモリシステムおよびガベッジコレクション制御方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20180275911A1 (en) | 2018-09-27 |
| US10310766B2 (en) | 2019-06-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2018160194A (ja) | メモリシステムおよび方法 | |
| US10761780B2 (en) | Memory system | |
| US20250335353A1 (en) | Host logical-to-physical information refresh | |
| US9846641B2 (en) | Variability aware wear leveling | |
| US11386005B2 (en) | Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache | |
| CN105808156B (zh) | 将数据写入固态硬盘的方法及固态硬盘 | |
| US10168940B2 (en) | Data storage using SLC and TLC memory banks and data maintenance method thereof | |
| JP7010667B2 (ja) | メモリシステムおよび制御方法 | |
| US8825946B2 (en) | Memory system and data writing method | |
| US9122586B2 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
| KR102635689B1 (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
| JP2020123038A (ja) | メモリシステムおよび制御方法 | |
| JP2024043337A (ja) | メモリシステム | |
| JP5858081B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
| US11544002B2 (en) | Memory system, memory controller and operating method thereof | |
| US9384124B2 (en) | Data storage device, memory control method, and electronic device with data storage device | |
| KR102874912B1 (ko) | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 | |
| CN106326135B (zh) | 一种平移非易失性存储器nvm的数据的方法及装置 | |
| JP2022146531A (ja) | メモリシステム | |
| JP2024033081A (ja) | メモリシステムおよび制御方法 | |
| JP2023169664A (ja) | メモリシステムおよび制御方法 | |
| KR20230011595A (ko) | 시스템 및 시스템의 동작 방법 | |
| US11995352B2 (en) | Memory controller and operating method thereof | |
| US20230205427A1 (en) | Storage device including memory controller and operating method of the same | |
| US12131042B2 (en) | Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170605 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180905 |