JP2022032569A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2022032569A
JP2022032569A JP2020136452A JP2020136452A JP2022032569A JP 2022032569 A JP2022032569 A JP 2022032569A JP 2020136452 A JP2020136452 A JP 2020136452A JP 2020136452 A JP2020136452 A JP 2020136452A JP 2022032569 A JP2022032569 A JP 2022032569A
Authority
JP
Japan
Prior art keywords
data
memory
storage area
host
memory system
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
Application number
JP2020136452A
Other languages
English (en)
Inventor
正臣 寺西
Masaomi Teranishi
建太郎 猪俣
Kentaro Inomata
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2020136452A priority Critical patent/JP2022032569A/ja
Priority to US17/187,710 priority patent/US11579792B2/en
Publication of JP2022032569A publication Critical patent/JP2022032569A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/124Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Figure 2022032569000001
【課題】高速読み出し可能な記憶領域へ読み出し頻度の高いデータを移動させるメモリシステムを提供する。
【解決手段】実施形態のメモリシステム1は、複数のメモリセルを含み、各メモリセルにはn(nは、2以上の整数)ビットデータが書き込み可能であり、前記nビットのデータが書き込まれる第1記憶領域(QLC領域)とnビットよりも少ないビット数のデータが書き込まれる第2記憶領域(pSLC領域)とを含むNANDメモリ4と、メモリコントローラ3と、を有する。メモリコントローラ3は、データの読み出し要求回数情報又は外部から受信した外部情報に基づいて、第1記憶領域(QLC領域)から第2記憶領域(pSLC領域)へデータを移動させる。
【選択図】図2

Description

本発明の実施形態は、メモリシステムに関する。
メモリ容量を増やすために、メモリシステムには例えば多値化技術が採用されている。メモリシステムに多値化技術が採用されている場合、1つのメモリセルに記録できるビット数が増え、メモリシステムにおけるデータの読み出し速度及びデータの書き込み速度が遅くなる傾向がある。
米国特開公開2011-314204号明細書
そこで、本実施形態は、高速読み出し可能な記憶領域へ読み出し頻度の高いデータを移動させるメモリシステムを提供することを目的とする。
実施形態のメモリシステムは、複数のメモリセルを含み、各メモリセルにはn(nは、2以上の整数)ビットのデータが書き込み可能であり、前記nビットのデータが書き込まれる第1記憶領域と前記nビットよりも少ないビット数のデータが書き込まれる第2記憶領域とを含む、不揮発性メモリと、データの読み出し要求回数情報又は外部から受信した外部情報に基づいて、前記第1記憶領域から前記第2記憶領域へ前記データを移動させる、メモリコントローラと、を有する。
第1の実施形態のメモリシステムの構成を示すブロック図である。 第1の実施形態のメモリコントローラの構成を示すブロック図である。 第1の実施形態のNANDメモリのメモリマップを示す図である。 第1の実施形態における、ユーザデータの読み出し回数を管理する回数管理テーブルの構成を示す図である。 第1の実施形態における、回数管理テーブルの更新処理の流れの例を示すフローチャートである。 第1の実施形態におけるユーザデータ移動処理の流れの例を示すフローチャートである。 第1の実施形態における、ガベージコレクション処理が行われるときのユーザデータ移動処理の流れの例を示すフローチャートである。 第2の実施形態におけるデータ移動処理の流れの例を示すフローチャートである。 第3の実施形態における、ユーザデータの読み出し時のキャッシュヒット回数及びキャッシュミス回数を管理する回数管理テーブルの構成を示す図である。 第3の実施形態における、回数管理テーブルの更新処理の流れの例を示すフローチャートである。 第3の実施形態における、ユーザデータ移動処理の流れの例を示すフローチャートである。
以下、図面を参照して実施形態を説明する。
(第1の実施形態)
図1は、本実施形態のメモリシステムの構成を示すブロック図である。メモリシステム1は、ホスト機器(以下、単にホストともいう)2と接続可能である。図1においては、ホスト2と接続されている状態のメモリシステム1が図示されている。
ホスト2は、パーソナルコンピュータ、スマートフォンなどである。ホスト2は、プロセッサとしての中央処理装置(CPU)2a、ROM(図示せず)、及びDRAM2bを有する。
メモリシステム1は、メモリコントローラ3と、複数(ここでは2つ)のNAND型フラッシュメモリ(以下、NANDメモリという)4と、を備える。
各NANDメモリ4は、メモリセルアレイ4aと制御回路(図示せず)とを含む半導体記憶装置である。メモリセルアレイ4aは複数のメモリセルMTを含む。各メモリセルMTにはn(nは、2以上の整数)ビットデータが書き込み可能である。メモリセルMTは、3ビットデータを記憶可能なTLC(Triple Level Cell)、4ビットデータを記憶可能なQLC(Quad Level Cell)、等の多値化セルである。ここでは、メモリセルMTがQLCメモリセルである例を用いて説明する。
メモリシステム1は、ホスト2からの要求に応じて、ホスト2からのユーザデータ(以下、単にデータともいう)を各NANDメモリ4に記憶したり、各NANDメモリ4に記憶されたデータを読み出してホスト2へ出力したりする。具体的には、メモリシステム1は、ホスト2からの書き込み要求に応じて所定のページ単位で各NANDメモリ4へデータを書き込み、ホスト2からの読み出し要求に応じて各NANDメモリ4からデータを読み出すことができる。
なお、ここでは、メモリシステム1は、複数のNANDメモリ4を含んでいるが、1つでもよい。メモリシステム1は、メモリコントローラ3と複数のNANDメモリ4とが1つのパッケージとして構成されるメモリカード等であってもよいし、SSD(Solid State Drive)等であってもよい。
図2は、メモリコントローラ3の構成を示すブロック図である。メモリコントローラ3は、各NANDメモリ4へのデータの書き込み及び読み出しを制御するコントローラである。メモリコントローラ3は、ホスト2からの書き込み要求に応じて、NANDメモリ4へのデータの書き込みを制御する。具体的には、メモリコントローラ3は、各NANDメモリ4へ所定のサイズのページ単位でデータを書き込む。また、メモリコントローラ3は、ホスト2からの読み出し要求に応じて、各NANDメモリ4からのデータの読み出しを制御する。
メモリコントローラ3は、プロセッサとしての中央処理装置(CPU)11と、ROM12と、RAM13と、誤り検出訂正(ECC:Error Detecttion and Correction)回路(以下、ECC回路という))14と、メモリバッファ15と、ホストインターフェース回路(以下、ホストI/Fという)16と、メモリインターフェース回路(以下、メモリI/Fという)17を含む。CPU11と、ROM12と、RAM13と、ECC回路14と、メモリバッファ15と、ホストI/F16と、メモリI/F17とは、内部バス18により互いに接続されている。
CPU11は、ROM12に記憶されたプログラムを実行することよって、メモリシステム1の各部を統括的に制御する。CPU11は、ホストI/F16経由でホスト2からの要求を受けた場合に、その要求に従ったプログラムを実行することによって各種制御を行う。例えば、CPU11は、ホスト2からの要求に従って、各NANDメモリ4へのデータの書き込みをメモリI/F17へ指示する。また、CPU11は、ホスト2からの要求に従って、各NANDメモリ4からのデータの読み出しをメモリI/F17へ指示する。
CPU11は、ホスト2からデータの書き込み要求を受信した場合、メモリバッファ15に格納されるユーザデータに対して、各NANDメモリ4上の記憶領域(メモリ領域)を決定する。すなわち、CPU11は、ユーザデータの書き込み先を管理する。ホスト2から受信したユーザデータの論理ブロックアドレスLBAと該ユーザデータが記憶された各NANDメモリ4上の記憶領域を示す物理ブロックアドレスPBAとの対応は、論理物理アドレス変換テーブル(図示せず)に基づいて決定される。論理物理アドレス変換テーブル(L2P(Logical to Physical)テーブル:以下、L2Pテーブルという)は、メモリシステム1にホスト2がアクセスする際に使用する論理ブロックアドレスLBAと、メモリシステム1内の物理ブロックアドレスPBAとを1対1に対応付けるデータを格納する。
また、CPU11は、ホスト2からデータの読み出し要求を受信した場合、読み出し要求により指定された論理ブロックアドレスLBAについて、L2Pテーブルを参照して、物理ブロックアドレスPBAを特定して、該物理ブロックアドレスPBAからのデータの読み出しをメモリI/F17へ指示する。すなわち、CPU11は、ホスト2からの要求を受けると、その要求に関わる論理ブロックアドレスLBAに対応する物理ブロックアドレスを特定して、データの書き込み及び読み出しを行う。
ROM12は、各種プログラム及び各種データを記憶している。RAM13は、各種データなどを一時的に記憶する。RAM13には、回数管理テーブルTBL(後述する)及びL2Pテーブルが記憶されている。回数管理テーブルTBLは、データの読み出し回数を管理するためのテーブルであり、RAM13の記憶領域13aに格納される。L2Pテーブルは、RAM13の記憶領域13bに格納される。
ECC回路14は、書き込むユーザデータを符号化すると共に各NANDメモリ4から読み出されたユーザデータを復号する。
メモリバッファ15は、ホスト2から受信したユーザデータを一時的に記憶する。また、メモリバッファ15は、各NANDメモリ4から読み出したユーザデータを一時的に記憶する。メモリバッファ15は、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの汎用メモリである。
ホストI/F16は、ホスト2との間のインターフェース規格に従った処理を行う。ホストI/F16は、ホスト2から受信した要求及びユーザデータを内部バス18に出力し、各NANDメモリ4から読み出されたユーザデータや、CPU11からの応答などをホスト2へ送信する。
メモリI/F17は、CPU11の制御の下、各NANDメモリ4へのデータの書き込み、及びNANDメモリ4からのデータの読み出しに関する処理を行う。
図3は、各NANDメモリ4のメモリマップを示す図である。上述のように、NANDメモリ4は、各メモリセルMTに4ビットのデータを格納可能である。矢印MAは、後述するように、ユーザデータが、QLC領域からsSLC領域のアドレスへ移動されていることを示している。
各NANDメモリ4のデータ格納領域は、pSLC(pseudo Single Level Cell(擬似SLC))領域と、QLC領域を有する。各NANDメモリ4のデータ格納領域中のpSLC領域とQLC領域は、予め設定されている。メモリコントローラ3は、ホスト2からの要求に関わる論理ブロックアドレスLBAに基づいて、pSLC領域又はQLC領域へユーザデータを書き込み又はpSLC領域又はQLC領域からユーザデータを読み出す。
pSLC領域は、擬似シングルレベルセル(pSLC)へ1ビットデータが書き込まれる記憶領域である。複数の擬似シングルレベルセル(pSLC)の各々には、4ビットデータを書き込み可能であるが、1ビットデータが書き込まれる。pSLC領域へのデータの書き込みは、メモリコントローラ3からのコマンドによって指定される。よって、メモリシステム1は、pSLC領域のメモリセルMT毎に1ビットデータを書き込む記録モード(pSLCモード)と、QLC領域のメモリセルMT毎に4ビットデータを書き込む記録モードと、を有する。pSLC領域へのデータの書き込み時間は、QLC領域へのデータの書き込み時間より短い。また、pSLC領域に記憶されたデータの読み出し時間は、QLC領域に記憶されたデータの読み出し時間より短い。
メモリコントローラ3は、ホスト2からのユーザデータの書き込み要求を受信すると、L2Pテーブルを参照すなわちサーチして、その要求に関わる論理ブロックアドレスLBAに対応する物理ブロックアドレスPBAを特定する。メモリコントローラ3は、特定した物理ブロックアドレスPBAの記憶領域に、ユーザデータを書き込む。
また、メモリコントローラ3は、ホスト2からのユーザデータの読み出し要求を受信すると、L2Pテーブルを参照すなわちサーチして、その要求に関わる論理ブロックアドレスLBAに対応する物理ブロックアドレスPBAを特定する。メモリコントローラ3は、特定した物理ブロックアドレスPBAの記憶領域から、ユーザデータを読み出す。
上述したように、pSLC領域の各メモリセルMTは、1ビットデータが書き込まれるメモリ領域である。pSLC領域の各メモリセルMTは、4ビットのデータを格納可能であるが、1ビットデータを格納するセルとして用いられる。そのため、pSLC領域は、QLC領域に比べて、データの書き込み及び読み出し速度が速い領域である。メモリコントローラ3は、1ビットデータを書き込む記録モードで、pSLC領域にユーザデータを書き込む。
pSLC領域には、各種パラメータデータや各種プログラムなどが記憶される。電源オンには、pSLC領域から各種パラメータデータ等がメモリコントローラ3に読み出されてRAM13に格納される。RAM13の各種パラメータデータ等は、メモリシステム1の動作中に利用される。各種パラメータデータ等は、更新される場合もある。電源オフ時には、メモリコントローラ3は、RAM13の各種パラメータデータ等を各NANDメモリ4のpSLC領域に書き込む。
QLC領域の各メモリセルMTは、4ビットデータが書き込まれるメモリ領域である。メモリコントローラ3は、4ビットデータを書き込む記録モードで、QLC領域にユーザデータを書き込む。
本実施形態では、後述するように、pSLC領域の一部に、読み出し頻度の高いユーザデータが記憶される。メモリコントローラ3は、ホスト2からのユーザデータの読み出し要求を受信すると、論理ブロックアドレスLBA毎の読み出し要求回数をカウントする。
図4は、ユーザデータの読み出し回数を管理する回数管理テーブルTBLの構成を示す図である。回数管理テーブルTBLは、論理ブロックアドレスLBAのアドレスと読み出し回数の情報を含む。アドレスは、論理ブロックアドレスLBAの先頭アドレスである。回数管理テーブルTBLには、アドレス毎の読み出し回数の情報が格納される。すなわち、回数管理テーブルTBLは、ホスト2からの読み出し要求に含まれる論理ブロックアドレスLBAに関わるデータの読み出し回数データを格納する。
なお、図4では、理解を容易にするために、回数管理テーブルTBLの上側にpSLC領域の論理ブロックアドレスを纏め、pSLC領域の下側にQLC領域の論理ブロックアドレスを纏めて示している。
次に、メモリコントローラ3の動作について説明する。
メモリコントローラ3は、ホスト2から読み出し要求を受信すると、ユーザデータの読み出し処理を実行するが、その読み出し処理のバックグラウンド処理として、読み出し要求回数の管理処理を実行する。ここでは、アドレス毎の読み出し要求回数が管理される。CP11は、ホスト2からの読み出し要求を受信すると、回数管理テーブルTBLの更新処理を実行する。
図5は、回数管理テーブルTBLの更新処理の流れの例を示すフローチャートである。図5の処理は、メモリコントローラ3のROM12に格納されているプログラムをCPU11が読み出して、RAM13に展開して実行することにより行われる。
CPU11は、ホスト2からの読み出し要求を受信したかを判定する(ステップ(以下、Sと略す)1)。読み出し要求を受信しなければ(S1:NO)、CPU11は、回数管理テーブルTBLの更新処理をしない。
ホスト2から読み出し要求を受信すると(S1:YES)、CPU11は、論理ブロックアドレスLBAの読み出し要求回数を管理する(S2)。S2では、回数管理テーブルTBL中の、読み出し要求に含まれる論理ブロックアドレスLBAの読み出し要求回数データの更新処理が行われる。すなわち、メモリコントローラ3は、外部機器(ホスト2)から読み出し要求を受信すると、読み出し要求に関わるユーザデータの論理アドレス(LBA)の読み出し要求回数をインクリメントする。
すなわち、メモリコントローラ3は、ホスト2からの読み出し要求を受信する度に、ユーザデータのアドレス(論理ブロックアドレスLBA)の読み出し要求回数を更新する。その結果、回数管理テーブルTBLには、ユーザデータのアドレス毎の読み出し要求回数データが格納される。
図6は、ユーザデータ移動処理の流れの例を示すフローチャートである。図6の処理は、ホスト2からの読み出し要求の処理が実行されたときに、実行されてもよいし、ガベージコレクション処理、コンパクション処理などの読み出し要求処理以外の所定の処理が実行されるときに実行されてもよいし、所定の周期で実行されるようにしてもよい。
CPU11は、回数管理テーブルTBLをサーチし(S11)、QLC領域に記憶されているユーザデータの論理ブロックアドレスLBA中に読み出し要求回数が所定の閾値TH以上のものがあるかを判定する(S12)。すなわち、CPU11は、QLC領域に記憶されているユーザデータについて、回数管理テーブルTBLの読み出し要求回数を順番に読み出して、読み出し要求回数が所定の閾値TH以上の論理ブロックアドレスLBAがあるかを判定する。
QLC領域の論理ブロックアドレスLBA中に所定の閾値TH以上の読み出し要求回数の論理ブロックアドレスLBAがなければ(S12:NO)、CPU11は、ユーザデータ移動処理をしない。
QLC領域の論理ブロックアドレスLBA中に所定の閾値TH以上の読み出し要求回数の論理ブロックアドレスLBAがあると(S12:YES)、CPU11は、所定の閾値TH以上の読み出し要求回数の論理ブロックアドレスLBAに対応するユーザデータをQLC領域からpSLC領域へ移動させる(S13)。すなわち、メモリコントローラ3は、読み出し要求の回数が所定の閾値TH以上になると、読み出し要求の回数が所定の閾値TH以上のユーザデータの移動処理を行う。
ユーザデータを移動させた後、CPU11は、その移動に関わるL2Pテーブルを更新する(S14)。すなわち、移動させた論理ブロックアドレスLBAに対応するユーザデータの物理ブロックアドレスPBAを変更するために、メモリコントローラ3は、データの移動処理を行った後、データの論理アドレス(LBA)をNANDメモリ4の物理アドレス(PBA)へ変換するアドレス変換テーブル(L2Pテーブル)を更新する。
ホスト2からの読み出し要求がある度に、図6の処理が実行される場合、S13では、1つの論理ブロックアドレスLBAに対応する1つのユーザデータについて移動処理が行われるが、ガベージコレクション処理などが行われるときに、図6の処理が実行される場合、S13では、複数の論理ブロックアドレスLBAに対応する複数のユーザデータについて移動処理が行われる場合がある。
以上のように、メモリコントローラ3は、データがnビットデータのデータ形式で書き込まれるNANDメモリ4の第1記憶領域(QLC領域)から、データがnビットよりも少ないビット数のビットデータのデータ形式でNANDメモリ4に書き込まれる第2記憶領域(pSLC領域)へ、データの読み出し要求回数情報に基づいて、データの移動処理を行う。
そして、その読み出し要求回数情報は、データの読み出し要求を出力する機器(ホスト2)からメモリコントローラ3が受信した読み出し要求の回数である。読み出し要求の回数は、読み出し要求に関わる要求データの論理アドレス(LBA)毎にカウントされる。
図7は、ガベージコレクション処理が行われるときのユーザデータ移動処理の流れの例を示すフローチャートである。図7の処理は、ガベージコレクション処理の処理が実行されるときに実行される。図7の処理ステップにおいて、図6の処理ステップと同じ処理ステップについては、同じステップ番号を付し、説明は省略し、図6の処理ステップと異なる処理ステップについてのみ説明する。
CPU11は、回数管理テーブルTBLをサーチし(S11)、QLC領域の論理ブロックアドレスLBA中に読み出し要求回数が所定の閾値TH以上のものがあるかを判定する(S12)。QLC領域の論理ブロックアドレスLBA中に所定の閾値TH以上の読み出し要求回数のデータがなければ(S12:NO)、CPU11は、ガベージコレクション処理(GC処理)を実行する(S15)。
QLC領域の論理ブロックアドレスLBA中に所定の閾値TH以上の読み出し要求回数のものがあるときは(S12:YES)、CPU11は、所定の閾値TH以上の読み出し要求回数の論理ブロックアドレスLBAに対応するユーザデータをQLC領域からpSLC領域へ移動させる処理を実行し(S13)、L2Pテーブルを更新する(S14)。S14の後、CPU11は、GC処理を実行する(S15)。
図4を再び参照する。図4は、所定の閾値THが200の場合、アドレスADDdddのユーザデータの読み出し要求回数が200以上であるため、矢印MAで示すように、アドレスADDdddのユーザデータが、QLC領域からsSLC領域のアドレスADDbbbへ移動されていることを示している。
以上のように、メモリシステム1においては、データ毎の読み出し要求回数が回数管理テーブルで管理され、読み出し要求回数が多いユーザデータを、読み出し速度の遅いメモリ領域であるQLC領域から読み出し速度の速いpSLC領域に、メモリシステム1が自律的にデータを移動させる。これによって、読み出し速度が改善される。
上述した実施形態によれば、各NANDメモリ4に保存されているデータのうち、読み出し頻度が高いデータはpSLC領域に格納されるので、メモリシステム1は、読み出し頻度の高いデータを高速に読み出すことができる。
なお、pSLC領域に移動させたユーザデータであっても、LRU(Least Recently Use)アルゴリズムやLFU(Least Frequently Use)アルゴリズムを用いて、その後に読み出し頻度が少なくなったデータを、pSLC領域からQLC領域へ移動させるようにしてもよい。すなわち、メモリコントローラ3は、データの移動処理を行った後、LRUアルゴリズムを用いて、読み出し要求回数が所定の閾値未満のデータを、pSLC領域からQLC領域へ移動させる処理を行うようにしてもよい。
(第2の実施形態)
第1の実施形態では、メモリコントローラ3は、ホスト2からの読み出し要求回数に基づいてQLC領域からpSLC領域へのデータの移動処理を行う場合について説明したが、本実施形態では、メモリコントローラ3は、ホスト2からの情報に基づいてQLC領域からpSLC領域へのデータの移動処理を行う。
本実施形態のメモリシステム1Aの構成は、図1及び図2に示した第1の実施形態のメモリシステム1の構成と略同じであるので、同じ構成要素については同じ符号を用いて説明は省略し、異なる構成についてのみ説明する。
本実施形態のメモリシステム1Aは、UFS(Universal Flash Storage)規格に準拠したシステムであり、UFS規格のHPB(Host Performance Booster)機能を有している。HPBは、フラッシュストレージの標準規格である。
メモリシステム1Aのメモリコントローラ3は、HPB機能を有するため、ホスト2からの要求に従って、ホスト2へL2Pテーブルの一部を送信することができる。L2Pテーブルの一部であるL2Psテーブルは、ホスト2のDRAM2bにキャッシュされる。ホスト2は、DRAM2bにキャッシュされるL2Psテーブルの対象として、ホスト2が設定した「Pinned Region」のデータと、過去に起動した際に記録された論理ブロックアドレスLBAのうち読み込み回数の多いデータ(Active Region)を設定することができる。ホスト2は、設定した「Pinned Region 」のデータをメモリシステム1Aに要求し、L2Psテーブルとして取得することができる。L2Psテーブルは、設定したデータについての論理ブロックアドレスLBAと物理ブロックアドレスPBAを含む。
ホスト2は、L2Psテーブルに含まれるユーザデータをアクセスするときには、L2Psテーブルも一緒にメモリシステム1Aへ送信する。すなわち、メモリシステム1Aは、読み出し要求を受信するとき、L2Psテーブルも一緒に受信する場合がある。メモリコントローラ3のCPU11は、ホスト2から受信したL2PsテーブルをRAM13の記憶領域13cに格納する(図2において点線で示す)。
CPU11は、L2Psテーブルに基づいて、QLC領域からpSLC領域へユーザデータを移動させる。すなわち、CPU11は、L2Psテーブルに含まれる論理ブロックアドレスLBAに対応するユーザデータを、QLC領域からpSLC領域へ移動させる。さらに、CPU11は、L2Pテーブルも、論理ブロックアドレスLBAについての移動先の物理ブロックアドレスPBAに基づいて更新する。
図8は、本実施形態におけるデータ移動処理の流れの例を示すフローチャートである。図8の処理は、ホスト2からL2Psテーブルを受信すると、CPU11により実行される。
CPU11は、記憶領域13cにL2Psテーブルを格納すると共に、L2Psテーブルに基づいて、QLC領域からpSLC領域へユーザデータを移動させる処理を実行し(S21)、記憶領域13bのL2Pテーブルを更新する(S22)。
S21により、ホスト2が設定した、読み出し頻度が高いユーザデータが、QLC領域からpSLC領域へ移動される。
ホスト2が設定した「Pinned Region」のデータの論理ブロックアドレスLBAと、過去に起動した際に記録された論理ブロックアドレスLBAのうち読み込み回数の多いデータ(Active Region)の論理ブロックアドレスLBAが、L2Psテーブルに含まれている。そのため、L2Psテーブルに基づき、QLC領域からpSLC領域へユーザデータを移動させることによって、メモリシステム1Aは、これらのデータを高速に読み出すことができる。
従って、本実施形態のメモリシステム1Aによれば、各NANDメモリ4に保存されているデータのうち、読み出し頻度が高いデータは、pSLC領域から高速に読み出すことができる。
なお、ホスト2からの情報に基づいてpSLC領域に移動したユーザデータであっても、LRU(Least Recently Use)アルゴリズムやLFU(Least Frequently Use)アルゴリズムを用いて、その後に読み出し頻度が少なくなったデータを、pSLC領域からQLC領域へ移動させるようにしてもよい。
(第3の実施形態)
上述した2つの実施形態では、読み出し要求回数が多いユーザデータは、読み出し速度の遅いメモリ領域であるQLC領域から読み出し速度の速いpSLC領域に移動される。本実施形態では、第1又は第2の実施形態の処理に加えて、L2Psテーブルに基づいてQLC領域からpSLC領域へデータを移動させた後、メモリコントローラ3は、pSLC領域のデータをキャッシュデータとして、その後の読み出しにおける各データのキャッシュヒット回数及びキャッシュミス回数を管理する。この場合、メモリコントローラ3は、論理ブロックアドレスLBA毎のキャッシュヒット回数及びキャッシュミス回数に応じて、データの移動処理を行う。
図9は、本実施形態における、ユーザデータの読み出し時のキャッシュヒット回数及びキャッシュミス回数を管理する回数管理テーブルTBL1の構成を示す図である。回数管理テーブルTBL1は、L2Psテーブルに含まれる論理ブロックアドレスLBAのアドレスと、キャッシュヒット回数及びキャッシュミス回数の情報を含む。本実施形態の回数管理テーブルTBL1は、図2においてRAM13の記憶領域13aに格納される。
メモリシステム1Aが起動され、ホスト2へL2Psテーブルデータの送信した直後は、回数管理テーブルTBL1中のpSLC領域のアドレスは、ホスト2へ送信したL2Psテーブル中の論理ブロックアドレスLBAと一致する。しかし、後述するように、キャッシュミスが発生すると、そのキャッシュミスに関わるQLC領域の論理ブロックアドレスも、回数管理テーブルTBL1に追加される。そのため、図9の回数管理テーブルTBL1には、QLC領域のデータも含まれ得る。
図10は、本実施形態における、回数管理テーブルTBL1の更新処理の流れの例を示すフローチャートである。図10の処理は、メモリコントローラ3のROM12に格納されているプログラムをCPU11が読み出して、RAM13に展開して実行することにより行われる。
CPU11は、ホスト2からの読み出し要求を受信したかを判定する(S31)。読み出し要求を受信しなければ(S31:NO)、CPU11は、回数管理テーブルTBL1の更新処理をしない。
読み出し要求を受信すると(S31:YES)、CPU11は、回数管理テーブルTBL1中のpSLC領域のアドレス(論理ブロックアドレスLBA)のキャッシュヒット回数及びキャッシュミス回数を管理する(S32)。S32では、読み出し要求に関わる論理ブロックアドレスLBAに基づいて、回数管理テーブルTBL1中のpSLC領域のデータのキャッシュヒット回数及びキャッシュミス回数の更新処理、すなわちキャッシュヒット回数及びキャッシュミス回数のインクリメント処理が行われる。
pSLC領域中の論理ブロックアドレスLBAのデータについて読み出し要求があったとき、キャッシュヒットと判定する。pSLC領域にない論理ブロックアドレスLBAのデータについて読み出し要求があったとき、キャッシュミスと判定する。キャッシュミスがあると、CPU11は、そのキャッシュミスに関わるデータの論理ブロックアドレスLBAを回数管理テーブルTBL1に追加する。
メモリコントローラ3は、ホスト2からの読み出し要求を受信する度に、ユーザデータのアドレス(論理ブロックアドレスLBA)のキャッシュヒット回数及びキャッシュミス回数を更新する。
図11は、本実施形態における、ユーザデータ移動処理の流れの例を示すフローチャートである。
図11の処理は、ホスト2からの読み出し要求を受信したときに、実行されてもよいし、ガベージコレクション処理、コンパクション処理などの読み出し要求処理以外の所定の処理が実行されるときに実行されてもよいし、所定の周期で実行されるようにしてもよい。
CPU11は、回数管理テーブルTBL1をサーチし(S41)、キャッシュヒット回数及びキャッシュミス回数が閾値TH1以上のものがあるかを判定する(S42)。S42では、キャッシュヒット回数が所定の閾値TH1以上のものがあるか、及びキャッシュミス回数が所定の閾値TH1以上のものがあるかが判定される。すなわち、CPU11は、回数管理テーブルTBL1のキャッシュヒット回数及びキャッシュミス回数の各回数データを順番に読み出して、所定の閾値TH1以上のものがあるかを判定する。
なお、ここでは、キャッシュヒット回数及びキャッシュミス回数が多いか否かを、同じ閾値TH1に基づいて判定しているが、キャッシュヒット回数が多いか否かを判定するための閾値と、キャッシュミス回数が多いか否かを判定するための閾値とは異なっていてもよい。
メモリシステム1Aの動作直後は、ホスト2からの読み出し頻度が高いと判定されたデータはpSLC領域にあるが、その後のデータの読み出しにおいて、当初はpSLC領域になかったユーザデータも、キャッシュヒット回数又はキャッシュミス回数が多くなると、pSLC量域へ移動される。図9では、矢印MAで示すように、QLC領域のデータが、pSLC領域へ移動されることを示している。
キャッシュヒット回数又はキャッシュミス回数が多いデータがなければ(S42:NO)、CPU11は、ユーザデータ移動処理をしない。
キャッシュヒット回数又はキャッシュミス回数が閾値TH1以上のデータがQLC領域中にあると(S42:YES)、CPU11は、所定の閾値TH1以上の回数の論理ブロックアドレスLBAに対応するユーザデータをQLC領域からpSLC領域へ移動させる(S43)。
ユーザデータの移動後、CPU11は、その移動に関わる論理ブロックアドレスLBAと物理ブロックアドレスPBAの対応関係データを保持するL2Pテーブルを更新する(S44)。すなわち、移動されたユーザデータの物理ブロックアドレスPBAが変更される。
以上のように、メモリコントローラ3は、nビットデータのデータ形式でデータが書き込まれたNANDメモリ4の第1記憶領域(QLC領域)から、データがnビットよりも少ないビット数のビットデータのデータ形式でNANDメモリ4に書き込まれる第2記憶領域(pSLC領域)へ、外部(ホスト2)から受信した外部情報(L2Psテーブル)に基づいて、データの移動処理を行う。
そして、その外部情報(L2Psテーブル)は、読み出し要求を送信する外部装置(ホスト2)の有する情報である。上述した例では、その外部情報(L2Psテーブル)は、データの論理アドレス(LBA)をNANDメモリ4の物理アドレス(PBA)に変換するアドレス変換テーブル(L2Pテーブル)の一部の情報である。
また、外部情報(L2Psテーブル)に基づいてpSLC領域へ移動されたデータをキャッシュデータとしたときに、メモリコントローラ3は、読み出し要求に対するキャッシュデータのキャッシュヒット及びキャッシュミスの回数をカウントし、キャッシュヒット及びキャッシュミスの少なくとも一方の回数に基づいて、QLC領域とpSLC領域間でデータの移動処理を行う。
ホスト2からの読み出し要求がある度に、図11の処理が実行される場合は、S43では、1つの論理ブロックアドレスLBAに対応する1つのユーザデータについて移動処理が行われるが、ガベージコレクション処理などが行われるときに、図11の処理が実行される場合は、S43では、複数の論理ブロックアドレスLBAに対応する複数のユーザデータについて移動処理が行われる場合がある。
従って、本実施形態によれば、ホスト2からの情報(L2Psテーブル)を用いて、pSLC領域に格納するデータを設定し、読み出し頻度が高いデータを高速に読み出すことができる。
HPB機能によれば、メモリコントローラ3は、ホスト2から読み出し要求を受信すると、一緒に受信したL2Psテーブルを用いて、読み出し要求に関わる論理ブロックアドレスLBAに対応する物理ブロックアドレスPBAを特定する。そのため、CPU11は、記憶領域13bのL2Pテーブルを参照する必要がないので、読み出し要求に関わる論理ブロックアドレスLBAに対応する物理ブロックアドレスPBAをより速く特定することができる。
従って、上述した実施形態によれば、ホスト2にとって読み出し頻度の高いデータに関わるL2Psテーブルをホスト2から得て、L2Psテーブルをサーチして物理ブロックアドレスPBAが高速に取得できる。さらに、メモリコントローラ3は、ホスト2から受信したL2Psテーブルに基づいて、読み出し頻度が高いデータをpSLC領域に移動するので、メモリシステム1Aは、読み出し頻度の高いデータを高速に読み出すことができる。
以上のように、上述した各実施形態によれば、読み出し頻度の高いデータを高速読み出し可能な記憶領域へメモリシステムが自律的に移動するメモリシステムを提供することができる。
なお、上述した各実施形態では、不揮発性メモリのNANDメモリ4のメモリセルアレイ4aがQLCタイプのメモリセルである場合について説明したが、TLCタイプのメモリセルでもよいし、2ビットデータを記憶可能なMLC(Multiple Level Cell)でもよい。
また、上述した2つの実施形態では、4ビットデータを記憶可能なQLCタイプの不揮発性メモリにおいて、高速読み出し可能な記憶領域は1ビットデータを記憶可能なpSLC領域である場合について説明したが、高速読み出し可能な記憶領域は4ビットデータよりも少ないビット数のデータを記憶可能なMLC領域あるいはSLC領域でもよい。
ホスト2が高速読み出しをしたいデータを選択し、pSLC領域に明示的に配置することも可能である。しかし、この場合、ホスト2側で、高速読み出しをしたいデータを指定してpSLC領域に配置するドライバ開発およびプログラム開発が必要となる。加えて、事前にデータ毎のメモリ配置を考慮する必要があり、想定しない動作などが発生した場合、読み出し速度が大幅に遅れる事象が発生する虞もある。
これに対して、上述した実施形態によれば、メモリシステムは、ホスト2からの読み出し要求に基づいてあるいはホスト2の情報に基づいて、読み出しアクセス頻度が高いデータをpSLC領域に自律的に配置するので、ホスト2側でのドライバの開発及び搭載などは不要になる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1A、1A メモリシステム、2 ホスト機器、2a CPU、2b DRAM、3 メモリコントローラ、4 NANDメモリ、4a メモリセルアレイ、11 CPU、12 ROM、13 RAM、13a、13b、13c 記憶領域、14 誤り検出訂正回路、15 メモリバッファ、16 ホストインターフェース、17 メモリインターフェース、18 内部バス。

Claims (12)

  1. 複数のメモリセルを含み、各メモリセルにはn(nは、2以上の整数)ビットのデータが書き込み可能であり、前記nビットのデータが書き込まれる第1記憶領域と前記nビットよりも少ないビット数のデータが書き込まれる第2記憶領域とを含む、不揮発性メモリと、
    データの読み出し要求回数情報又は外部から受信した外部情報に基づいて、前記第1記憶領域から前記第2記憶領域へ前記データを移動させる、メモリコントローラと、
    を有する、メモリシステム。
  2. 前記読み出し要求回数情報は、ホストから送信されたデータの読み出し要求をメモリコントローラが受信した回数に関する情報を含み、
    前記読み出し要求の回数は、前記読み出し要求に関わる前記データの論理アドレス毎にカウントされる、請求項1に記載のメモリシステム。
  3. 前記メモリコントローラは、前記ホストから前記読み出し要求を受信すると、前記読み出し要求に関わる前記データの前記論理アドレスの前記回数をインクリメントする、請求項2に記載のメモリシステム。
  4. 前記メモリコントローラは、前記回数が所定の閾値以上になると、前記第1記憶領域から前記第2記憶領域へ前記データを移動させる、請求項2に記載のメモリシステム。
  5. 前記外部情報は、前記読み出し要求を送信するホストの有する情報である、請求項1に記載のメモリシステム。
  6. 前記外部情報は、前記データの論理アドレスを前記不揮発性メモリの物理アドレスに変換するアドレス変換テーブルの一部の情報である、請求項5に記載のメモリシステム。
  7. 前記メモリコントローラは、
    前記外部情報に基づいて前記第2記憶領域へ移動させたデータをキャッシュデータとし、前記読み出し要求に対する前記キャッシュデータのキャッシュヒット及びキャッシュミスの回数をカウントし、
    前記キャッシュヒット及び前記キャッシュミスの少なくとも一方の回数に基づいて、前記第1記憶領域と前記第2記憶領域との間で前記データを移動させる、請求項5に記載のメモリシステム。
  8. 前記メモリコントローラは、前記読み出し要求を受信したとき、所定の処理を実行したとき、又は所定の周期で、前記第1記憶領域から前記第2記憶領域へ前記データを移動させるか否かを判定する、請求項1に記載のメモリシステム。
  9. 前記メモリコントローラは、前記データを移動させた後、前記データの論理アドレスを前記不揮発性メモリの物理アドレスへ変換するアドレス変換テーブルを更新する、請求項1に記載のメモリシステム。
  10. 前記メモリコントローラは、前記データを移動させた後、LRUアルゴリズムを用いて、前記回数が所定の閾値未満のデータを、前記第2記憶領域から前記第1記憶領域へ移動させる、請求項4に記載のメモリシステム。
  11. 前記nビットよりも少ないビット数は、1である、請求項1に記載のメモリシステム。
  12. 前記nは、4である、請求項11に記載のメモリシステム。
JP2020136452A 2020-08-12 2020-08-12 メモリシステム Pending JP2022032569A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020136452A JP2022032569A (ja) 2020-08-12 2020-08-12 メモリシステム
US17/187,710 US11579792B2 (en) 2020-08-12 2021-02-26 Data movement between different cell regions in non-volatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020136452A JP2022032569A (ja) 2020-08-12 2020-08-12 メモリシステム

Publications (1)

Publication Number Publication Date
JP2022032569A true JP2022032569A (ja) 2022-02-25

Family

ID=80222865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020136452A Pending JP2022032569A (ja) 2020-08-12 2020-08-12 メモリシステム

Country Status (2)

Country Link
US (1) US11579792B2 (ja)
JP (1) JP2022032569A (ja)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959209B1 (en) * 2010-03-23 2018-05-01 Western Digital Technologies, Inc. Data storage device adjusting command rate profile based on operating mode
JP2012008651A (ja) 2010-06-22 2012-01-12 Toshiba Corp 半導体記憶装置、その制御方法および情報処理装置
JP2012033047A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム
JP5553309B2 (ja) 2010-08-11 2014-07-16 国立大学法人 東京大学 データ処理装置
US8760922B2 (en) * 2012-04-10 2014-06-24 Sandisk Technologies Inc. System and method for micro-tiering in non-volatile memory
KR102550343B1 (ko) * 2016-07-27 2023-07-03 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 그것의 동작 방법
US20180321874A1 (en) * 2017-05-03 2018-11-08 Alibaba Group Holding Limited Flash management optimization for data update with small block sizes for write amplification mitigation and fault tolerance enhancement
JP7030463B2 (ja) 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
US10372342B2 (en) * 2017-10-02 2019-08-06 Western Digital Technologies, Inc. Multi-level cell solid state device and method for transferring data between a host and the multi-level cell solid state device
US11061600B2 (en) * 2018-01-12 2021-07-13 Western Digital Technologies, Inc. Tiered storage data evacuation within solid state devices
US10949355B2 (en) * 2018-06-11 2021-03-16 Western Digital Technologies, Inc. Methods and apparatus for workload based dynamic cache control in SSD
US11769557B2 (en) * 2019-12-16 2023-09-26 Intel Corporation Techniques for preventing read disturb in NAND memory

Also Published As

Publication number Publication date
US20220050615A1 (en) 2022-02-17
US11579792B2 (en) 2023-02-14

Similar Documents

Publication Publication Date Title
CN112433956B (zh) 逻辑到物理表高速缓存中基于顺序写入的分区
US10871900B2 (en) Memory system and method of controlling memory system
US8392476B2 (en) Semiconductor memory device
CN109240938B (zh) 存储系统以及控制非易失性存储器的控制方法
US8990480B2 (en) Semiconductor memory device and computer program product
US8321624B2 (en) Memory device and management method of memory device
US8914570B2 (en) Selective write-once-memory encoding in a flash based disk cache memory
US11194737B2 (en) Storage device, controller and method for operating the controller for pattern determination
US9892034B2 (en) Semiconductor device and operating method thereof
CN107743620B (zh) 用于耗损均衡的非易失性存储器的加速的地址间接表查找
US8892816B1 (en) System and method for writing data to a memory
US11086795B2 (en) Memory system, memory controller and operating method thereof
US20240231663A1 (en) Storage device and method of operating the same
US11556249B2 (en) Delaying random data relocation for reducing write amplification in storage devices
KR20220027488A (ko) 메모리 컨트롤러 및 그 동작 방법
KR101501717B1 (ko) 메모리 장치 및 메모리 장치의 관리 방법
US11755492B2 (en) Storage device and operating method thereof
US11768625B2 (en) Storage device managing a multi-tier cache memory and operating method thereof
JP2024043337A (ja) メモリシステム
JP2022032569A (ja) メモリシステム
US11704238B1 (en) Method and apparatus for accessing L2P address without searching group-to-flash mapping table
US20240241669A1 (en) Memory controller and storage device including the same
US20240095181A1 (en) Storage device, host device, and electronic device
US20240241656A1 (en) Apparatus and method for dynamically managing host performance booster control mode
US20240103759A1 (en) Data processing method for improving continuity of data corresponding to continuous logical addresses as well as avoiding excessively consuming service life of memory blocks and the associated data storage device