JP2023510764A - キャッシュ内のデータブロックの書き込みモードの変更に基づくメディア管理動作の実施 - Google Patents

キャッシュ内のデータブロックの書き込みモードの変更に基づくメディア管理動作の実施 Download PDF

Info

Publication number
JP2023510764A
JP2023510764A JP2022541912A JP2022541912A JP2023510764A JP 2023510764 A JP2023510764 A JP 2023510764A JP 2022541912 A JP2022541912 A JP 2022541912A JP 2022541912 A JP2022541912 A JP 2022541912A JP 2023510764 A JP2023510764 A JP 2023510764A
Authority
JP
Japan
Prior art keywords
data
write
write mode
garbage collection
mode
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.)
Granted
Application number
JP2022541912A
Other languages
English (en)
Other versions
JP7466655B2 (ja
Inventor
サムパス ケー. ラットナム
キショール クマール ムチェラ
ピーター フィーリー
アシュトシュ マルシェ
Original Assignee
マイクロン テクノロジー,インク.
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 マイクロン テクノロジー,インク. filed Critical マイクロン テクノロジー,インク.
Publication of JP2023510764A publication Critical patent/JP2023510764A/ja
Application granted granted Critical
Publication of JP7466655B2 publication Critical patent/JP7466655B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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/0253Garbage collection, i.e. reclamation of unreferenced 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • 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/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

ガベージコレクション動作は、メモリサブシステムの1つ以上のデータブロック上で実施され得、データは、第1の書き込みモードを使用して1つ以上のデータブロックに蓄積される。ガベージコレクション動作がパフォーマンス条件を満たすと判定することに応答して、メモリサブシステムのキャッシュ領域のデータブロックが耐久性条件を満たすか否かの判定がなされ、データは、第2の書き込みモードを使用してキャッシュのデータブロックに蓄積される。データブロックが耐久性条件を満たすと判定することに応答して、キャッシュ領域のデータブロックに対する書き込みモードは、第2の書き込みモードから第1の書き込みモードに変更される。キャッシュ領域のデータブロックは、ガベージコレクション動作でその後使用される。

Description

本開示は、一般的に、メモリサブシステムに関し、より具体的には、メモリサブシステムに対するキャッシュ内のデータブロックの書き込みモードを変更することに基づいてメディア管理動作を実施することに関する。
メモリサブシステムは、データを蓄積する1つ以上のメモリデバイスを含み得る。メモリデバイスは、例えば、不揮発性メモリデバイス及び揮発性メモリデバイスであり得る。一般的に、ホストシステムは、メモリサブシステムにデータを蓄積するため、及びメモリデバイスからデータを取得ためにメモリサブシステムを利用し得る。
本開示は、以下に与えられる詳細な説明から、及び開示の様々な実装の添付の図面からより完全に理解されるであろう。
開示の幾つかの実施形態に従ったメモリサブシステムを含む例示的なコンピューティングシステムを説明する。 メモリサブシステムに対するキャッシュ内のデータブロックの書き込みモードを変更することに基づいてガベージコレクション動作を実施するための例示的な方法のフロー図である。 A~Bは、本開示の幾つかの実施形態に従ったキャッシュ内のデータブロックの書き込みモードを変更することに基づいてガベージコレクション動作を実施している間のメモリサブシステムのデータ構成の例を説明する。 メモリサブシステムに対する書き込みモードを変更することに基づいてガベージコレクション動作を実行した後にキャッシュデータブロックの書き込みモードを復元するための例示的な方法のフロー図である。 開示の実装が動作し得る例示的なコンピュータシステムのブロック図である。
本開示の態様は、メモリサブシステムに対するキャッシュ内のデータブロックの書き込みモードを変更することに基づいてメディア管理動作を実施することに向けられている。メモリサブシステムは、ストレージデバイス、メモリモジュール、又はストレージデバイスとメモリモジュールとのハイブリッドであり得る。ストレージデバイス及びメモリモジュールの例は、図1に関連して以下に説明される。一般的に、ホストシステムは、データを蓄積するメモリデバイス等の1つ以上のコンポーネントを含むメモリサブシステムを利用し得る。ホストシステムは、メモリサブシステムに蓄積されるデータを提供し得、メモリサブシステムから取得されるデータをリクエストし得る。
メモリデバイスは不揮発性メモリデバイスであり得る。不揮発性メモリデバイスは、1つ以上のダイのパッケージである。各ダイは、1つ以上のプレーンで構成し得る。幾つかのタイプの不揮発性メモリデバイス(例えば、ネガティブand(NAND)デバイス)では、各プレーンは、物理ブロックのセットで構成される。各ブロックはページのセットで構成される。各ページは、データのビットを蓄積するメモリセルのセットで構成される。NANDデバイス等の幾つかのメモリデバイスでは、ブロックは消去され得る最小の領域であり、ブロック内のページは個々に消去できない。こうしたデバイスでは、消去動作は一度に1ブロックずつ実施される。
ブロックのページは、有効なデータ、無効なデータ、又はデータなしを含み得る。無効なデータは、新たなバージョンのデータがメモリデバイス上に蓄積されるために古くなったとマーキングされたデータである。無効なデータは、以前に書き込まれたが、物理から論理(P2L)へのマッピングテーブルにおいてホストシステムにより参照される論理アドレス等、有効な論理アドレスともはや関連付けられなくなったデータを含む。有効なデータは、メモリデバイス上に蓄積されている最新のバージョンのそうしたデータである。メモリサブシステムは、例えば、オペレーティングシステムから受信した情報に基づいて、データを無効としてマーキングし得る。データを含まないページは、以前に消去され、まだ書き込まれていないページを含む。
メモリサブシステムコントローラは、ウェアレベリング、リフレッシュ、ガベージコレクション、スクラブ等のメディア管理アルゴリズムに対する動作を実施し得る。ブロックは、有効なデータを含む幾つかのページと無効なデータを含む幾つかのページを有し得る。ブロックを消去して再利用するためにブロック内の全てのページが無効なデータを有するのを待機することを回避するために、“ガベージコレクション”と以下で称するアルゴリズムが、後続の書き込み動作のためにブロックを消去して空きブロックとして解放するために呼び出され得る。ガベージコレクションは、例えば、有効なデータと無効なデータとを含むブロックを選択すること、有効なデータを含むブロック内のページを選択すること、新たな位置(例えば、別のブロックの空きページ)に有効なデータをコピーすること、以前に選択されたページ内のデータを無効としてマーキングすること、及び選択されたブロックを消去することを含むメディア管理動作のセットである。
以下、“ガベージコレクション”は、ブロックを選択し、選択されたブロックから別のブロックに有効なデータを再書き込みし、選択されたブロックに蓄積された全ての無効なデータ及び有効なデータを消去することを指す。選択された複数のブロックからの有効なデータは、少数の他のブロックにコピーにされ得、選択されたブロックはその後消去され得る。その結果、消去されたブロックの数は、ホストシステムからの後続のデータを蓄積するためにより多くのブロックが利用可能であるように増加し得る。
メモリサブシステムは、データを蓄積するためのホストアプリケーションへの空きデータブロックの継続的な供給を維持又は生成するために、ガベージコレクション動作を実装し得る。ガベージコレクションは、有効なデータをあるデータブロックから別のデータブロックにコピーするための動作である。ソースデータブロック(例えば、そこから有効なデータがコピーされるデータブロック)はその後消去され得、後続のホスト書き込みのための空きブロックとして解放され得る。ガベージコレクション動作中におけるデータブロック内の有効なデータのこの追加の再書き込みは、ライトアンプリフィケーションをもたらす。ライトアンプリフィケーションは、動作寿命を縮め得、メモリサブシステムのパフォーマンスに影響を与え得る。メモリサブシステムは、ユーザー空間として公開されるメモリデバイスの論理サイズを超える幾らかの量の追加のブロックを含み得る。この追加の空間は、通常、オーバープロビジョニング又はOPと称される。ガベージコレクション動作の効率は、しばしば、メモリサブシステムに対するOPの関数であり得る。ガベージコレクション中に、OPからの追加の空間は、ライトアンプリフィケーションを減らすのに役立つ。より多くの量のOPは、データブロックを解放するするためにガベージコレクションがメモリサブシステム内の有効なデータを再書き込みする回数を減らすことによって、ライトアンプリフィケーションを減らし得る。例えば、128ギガバイト(Gb)のユーザー空間のサイズを公開するメモリデバイスでは、物理サイズが140Gbである場合、OPは12Gbである。OP空間が小さいほど、不要なデータのデータブロックをクリアする場合にライトアンプリフィケーションの影響を減らすためにガベージコレクション中に使用され得る追加の空間が少なくなるので、こうした実例では、ガベージコレクション動作は、同じユーザー空間のサイズを有するが、より大きなOPサイズを有するデバイスよりも効率が低下し得る。
メモリデバイスは、シングルレベルセル(SLC)メモリ、マルチレベルセル(MLC)メモリ、トリプルレベルセル(TLC)メモリ、又はクアッドレベルセル(QLC)メモリ等のメモリセルの1つ以上のアレイを含み得る。各タイプは、異なるデータ密度を有し得、これは、メモリデバイスのメモリセルごとに蓄積され得るデータの量(例えば、データのビット)に対応する。フラッシュベースのメモリの例を使用すると、トリプルレベルセル(TLC)は3ビットのデータを蓄積し得る一方、シングルレベルセル(SLC)は1ビットのデータを蓄積し得る。したがって、TLCメモリセルを含むメモリデバイスは、SLCメモリセルを含むメモリデバイスよりも高いデータ密度を有するであろう。また、各タイプのメモリセルは、データを蓄積するための異なる耐久性を有し得る。メモリデバイスの耐久性は、データがメモリセルにもはや確実に蓄積されなくなり得る前に、メモリデバイスのメモリセル上で実施される書き込み動作の数又はプログラミング/消去動作の数である。例えば、より低いデータ密度を有するSLCメモリセルは、より高いデータ密度を有するTLCメモリセルよりも高い耐久性閾値を有し得る。幾つかの実例では、SLCメモリセルは、TLCメモリセルの3~40倍の範囲の耐久性閾値を有し得る。したがって、SLCメモリセルは、より少ない合計データを蓄積し得るが、より長い期間使用され得る一方、TLCメモリセルは、より多くの合計データを蓄積し得るが、より短い期間使用され得る。
従来のメモリサブシステムは、OP空間の一部分が他の目的のためにリザーブされ得るようにメモリデバイスを更に構成し得る。例えば、OPの幾らかの部分は、ファームウェア関連の情報を蓄積するためにリザーブされ得る。同様に、OP空間の一部分は、I/O動作に対する改善されたパフォーマンスを提供するために、静的キャッシュとしてプロビジョニングされ得る。リザーブ領域が割り当てられた後のOPの残部は、通常、オペレーティングOPと称される。したがって、キャッシュ領域のサイズを増加させることは、オペレーティングOPを減少させ得る。静的キャッシュ領域のためにリザーブされたブロックは、ユーザーデータをメモリデバイスに書き込むためにより高い耐久性閾値を提供するために、低いデータ密度のメモリセルで構成され得る。例えば、QLCとして構成可能なブロックは、SLC、MLC、又はTLC等のより低いデータ密度のメモリセルで構成され得る。同様に、TLCとして構成可能なブロックは、SLC又はMLC等のより低いデータ密度のメモリセルで構成され得る。一旦構成されると、静的キャッシュに対してリザーブされたブロックは、通常、デバイスの寿命中にこのように構成され、より高いデータ密度を有するメモリセルとして後で再構成されない。
このように構成された従来のメモリサブシステムは、より低いデータ密度に起因してより高い耐久性を有するメモリセルでキャッシュを割り当てることに起因して、ホストI/O動作に長期的なパフォーマンス上の利点を提供し得る。これらの構成は、しかしながら、ガベージコレクション動作中に利用可能なオペレーティングOPが減少することに起因して、ライトインテンシブワークロードに対してより低いランダム書き込みパフォーマンスを有し得る。ライトインテンシブワークロードのこうした期間中に、メモリデバイスのユーザー空間全体とオペレーティングOPがいっぱいになり得、このことは、空きブロックバランスを維持するためのガベージコレクションをトリガーすることをもたらし得る。この状態は通常、“定常状態”条件と称され、ガベージコレクションがフォアグラウンドで、又はホストデータの書き込みと同時に発生する。従来のメモリサブシステムは、ガベージコレクション動作のための静的キャッシュ領域へのアクセスを提供しない。その結果、減少したオペレーティングOPは、ライトアンプリフィケーションのレベルが大幅に増加し、定常状態条件下でのライトインテンシブワークロードに対するランダム書き込みパフォーマンスの低下をもたらす。
本開示の態様は、メモリサブシステムに対するキャッシュ内のデータブロックの書き込みモードを変更することに基づいてガベージコレクション動作を実施することによって、上記及びその他の欠陥に対処する。キャッシュマネージャーは、ワークロードアクティビティ(例えば、観測されたライトアンプリフィケーション)を監視し得、定常状態条件期間中は、定常状態条件が治まるまで静的キャッシュ領域がオペレーティングOPを補足することを可能にし得る。例えば、ガベージコレクション動作が実行されている定常状態条件中、メモリデバイスに対する現在のワークロード条件は、ライトアンプリフィケーションの観点から評価され得る。定常状態のワークロード中に、測定されたライトアンプリフィケーションが閾値パフォーマンス条件を満たすのに十分なレベルまで上昇した場合、キャッシュマネージャーは、オペレーティングOPを補足するために静的キャッシュ領域を使用するか否かを判定し得る。また、幾つかの実装では、キャッシュマネージャーは、オペレーティングOPを補足するために静的キャッシュ領域を使用するか否かを判定するために、状態キャッシュ内のデータブロックの耐久性を評価し得る。そうした実例では、より高いデータ密度モードからより低いデータ密度モードへのセル劣化の比率の関数である静的キャッシュの耐久性閾値が使用され得る。幾つかの実装では、キャッシュマネージャーは、キャッシュ領域内のデータブロックの書き込みモードをSLCから、より高いデータ密度を提供するモード(例えば、MLC、TLC、QLC等)に一時的に変更し得、キャッシュ領域を定常状態条件中にガベージコレクション動作に利用可能なキャッシュ領域を作り得る。定常状態条件が落ち着いた場合(例えば、ライトアンプリフィケーションが低下した場合)、及び/又は静的キャッシュ領域内のデータブロックが耐久性条件を満たさない場合、キャッシュマネージャーは、キャッシュ領域の書き込みモードをSLCに戻し得、ガベージコレクション動作が通常のワークロード下でキャッシュ領域を利用することを妨げる制約に回復し得る。
本開示の利点は、書き込みパフォーマンスの向上、並びにライトインテンシブワークロードの期間中のフォアグラウンドガベージコレクションの効率の向上を含むが、これらに限定されない。キャッシュ内のデータブロックの書き込みモードをより高いデータ密度を有するモードに切り替えることは、ライトインテンシブワークロード期間中のガベージコレクションに対するOPの増加を提供し得、それらの期間中のライトアンプリフィケーションを低減し得る。また、静的キャッシュをガベージコレクションでインテリジェントに使用可能にするためにワークロードの下でライトアンプリフィケーションを監視することによって、パフォーマンスが最も低下するそれらの期間にモード切り替えを制約することにより、キャッシュ領域のブロックに対するいずれの追加の耐久性の影響も最小限にし得る。更に、オペレーティングOPを補足するためにキャッシュ領域を利用することによって、キャッシュに対して意図的に割り当てられるブロックの数はメモリサブシステムの寿命中に増加し得る。したがって、キャッシュサイズを大きくすることの利点は、メモリサブシステムの早期の寿命中のライトインテンシブワークロードに対するより大きなオペレーティングOPの利点を達成しながら、メモリサブシステムの寿命全体に渡って実現され得る(例えば、通常のワークロード条件中の書き込みパフォーマンスを向上させ得る)。
図1は、本開示の幾つかの実施形態に従ったメモリサブシステム110を含む例示的なコンピューティングシステム100を説明する。メモリサブシステム110は、1つ以上の揮発性メモリデバイス(例えば、メモリデバイス140)、1つ以上の不揮発性メモリデバイス(例えば、メモリデバイス130)、又はそれらの組み合わせ等の媒体を含み得る。
メモリサブシステム110は、ストレージデバイス、メモリモジュール、又はストレージデバイスとメモリモジュールとのハイブリッドであり得る。ストレージデバイスの例は、ソリッドステートドライブ(SSD)、フラッシュドライブ、ユニバーサルシリアルバス(USB)フラッシュドライブ、組み込みマルチメディアコントローラ(eMMC)ドライブ、ユニバーサルフラッシュストレージ(UFS)ドライブ、セキュアデジタル(SD)カード、及びハードディスクドライブ(HDD)を含む。メモリモジュールの例は、デュアルインラインメモリモジュール(DIMM)、スモールアウトラインDIMM(SO-DIMM)、及び様々なタイプの不揮発性デュアルインラインメモリモジュール(NVDIMM)を含む。
コンピューティングシステム100は、デスクトップコンピュータ、ラップトップコンピュータ、ネットワークサーバ、モバイルデバイス、車両(例えば、航空機、ドローン、列車、自動車、若しくはその他の輸送手段)、モノのインターネット(IoT)対応デバイス、組み込みコンピュータ(例えば、車両、産業用機器、若しくはネットワーク化された商用デバイス内に含まれるもの)等のコンピューティングデバイス、又はメモリ及び処理デバイスを含むそうしたコンピューティングデバイスであり得る。
コンピューティングシステム100は、1つ以上のメモリサブシステム110に結合されたホストシステム120を含み得る。幾つかの実施形態では、ホストシステム120は、異なるタイプのメモリサブシステム110に結合される。図1は、1つのメモリサブシステム110に結合されたホストシステム120の一例を説明する。本明細書で使用するとき、“に結合される”又は“と結合される”は、一般的に、電気的、光学的、及び磁気的等の接続を含む有線又は無線の間接的通信接続又は(例えば、介在するコンポーネント若しくはデバイスのない)直接的通信接続であり得るコンポーネント間の接続を指す。
ホストシステム120は、プロセッサチップセットと、プロセッサチップセットにより実行されるソフトウェアスタックとを含み得る。プロセッサチップセットは、1つ以上のコア、1つ以上のキャッシュ、メモリコントローラ(例えば、NVDIMMコントローラ)、及びストレージプロトコルコントローラ(例えば、PCIeコントローラ、SATAコントローラ)を含み得る。ホストシステム120は、例えば、メモリサブシステム110にデータを書き込み、メモリサブシステム110からデータを読み出すために、メモリサブシステム110を使用する。
ホストシステム120は、物理ホストインターフェースを介してメモリサブシステム110に結合され得る。物理ホストインターフェースの例は、シリアルアドバンスドテクノロジーアタッチメント(SATA)インターフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ファイバーチャネル、シリアルアタッチドSCSI(SAS)、スモールコンピュータシステムインターフェース(SCSI)、ダブルデータレート(DDR)メモリバス、デュアルインラインメモリモジュール(DIMM)インターフェース(例えば、ダブルデータレート(DDR)をサポートするDIMMソケットインターフェース)、オープンNANDフラッシュインターフェース(ONFI)、ダブルデータレート(DDR)、低電力ダブルデータレート(LPDDR)、又はその他の任意のインターフェースを含むが、これらに限定されない。物理ホストインターフェースは、ホストシステム120とメモリサブシステム110との間でデータを送信するために使用され得る。ホストシステム120は、メモリサブシステム110がPCIeインターフェースによりホストシステム120と結合された場合にコンポーネント(例えば、メモリデバイス130)にアクセスするために、NVM Express(NVMe)インターフェースを更に利用し得る。物理ホストインターフェースは、メモリサブシステム110とホストシステム120との間で制御、アドレス、データ、及びその他の信号を渡すためのインターフェースを提供し得る。図1は、例としてメモリサブシステム110を説明している。一般的に、ホストシステム120は、同じ通信接続、複数の別個の通信接続、及び/又は通信接続の組み合わせを介して複数のメモリサブシステムにアクセスし得る。
メモリデバイス130、140は、異なるタイプの不揮発性メモリデバイス及び/又は揮発性メモリデバイスの任意の組み合わせを含み得る。揮発性メモリデバイス(例えば、メモリデバイス140)は、ダイナミックランダムアクセスメモリ(DRAM)及び同期型ダイナミックランダムアクセスメモリ(SDRAM)等のランダムアクセスメモリ(RAM)であり得るが、これらに限定されない。
不揮発性メモリデバイス(例えば、メモリデバイス130)の幾つかの例は、不揮発性メモリセルのクロスポイントアレイである3次元クロスポイント(“3Dクロスポイント”)等のネガティブand(NAND)タイプのフラッシュメモリ及びライトインプレースメモリを含む。不揮発性メモリのクロスポイントアレイは、積み重ね可能なクロスグリッドデータアクセスアレイと組み合わせて、バルク抵抗の変化に基づいてビットストレージを実施し得る。また、多くのフラッシュベースのメモリとは対照的に、クロスポイント不揮発性メモリは、不揮発性メモリセルを事前に消去せずに不揮発性メモリセルがプログラミングされ得るライトインプレース動作を実施し得る。NANDタイプのフラッシュメモリは、例えば、2次元NAND(2D NAND)及び3次元NAND(3D NAND)を含む。
メモリデバイス130の各々は、メモリセルの1つ以上のアレイを含み得る。一タイプのメモリセル、例えば、シングルレベルセル(SLC)は、セルごとに1ビットを蓄積し得る。マルチレベルセル(MLC)、トリプルレベルセル(TLC)、及びクアッドレベルセル(QLC)等の他のタイプのメモリセルは、セルごとに複数のビットを蓄積し得る。幾つかの実施形態では、メモリデバイス130の各々は、SLC、MLC、TLC、QLC、又はそれらの任意の組み合わせ等のメモリセルの1つ以上のアレイを含み得る。幾つかの実施形態では、特定のメモリデバイスは、メモリセルのSLC部分、及びMLC部分、TLC部分、又はQLC部分を含み得る。メモリデバイス130のメモリセルは、データを蓄積するために使用されるメモリデバイスの論理ユニットを指し得るページとしてグループ化され得る。幾つかのタイプのメモリ(例えば、NAND)では、ページは、ブロックを形成するようにグループ化され得る。
NANDタイプのメモリ(例えば、2D NAND、3D NAND)及び不揮発性メモリセルの3Dクロスポイントアレイ等の不揮発性メモリデバイスが説明されているが、メモリデバイス130は、リードオンリーメモリ(ROM)、相変化メモリ(PCM)、自己選択メモリ、その他のカルコゲナイドベースのメモリ、強誘電体トランジスタランダムアクセスメモリ(FeTRAM)、磁気ランダムアクセスメモリ(MRAM)、スピン転送トルク(STT)-MRAM、導電性ブリッジRAM(CBRAM)、抵抗変化型ランダムアクセスメモリ(RRAM)、酸化物ベースRRAM(OxRAM)、ネガティブor(NOR)フラッシュメモリ、及び電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)等の任意のその他のタイプの不揮発性メモリに基づき得る。
メモリサブシステムコントローラ115(又は簡単にするためにコントローラ115)は、メモリデバイス130でのデータの読み出し、データの書き込み、又はデータの消去等の動作及び(例えば、コントローラ116によりコマンドバス上でスケジュールリングされたコマンドに応答した)その他のそうした動作を実施するために、メモリデバイス130と通信し得る。メモリサブシステムコントローラ115は、1つ以上の集積回路及び/若しくはディスクリートコンポーネント、バッファメモリ、又はそれらの組み合わせ等のハードウェアを含み得る。ハードウェアは、本明細書に説明する動作を実施するための専用の(すなわち、ハードコードされた)ロジックを備えたデジタル回路を含み得る。メモリサブシステムコントローラ115は、マイクロコントローラ、特殊目的ロジック回路(例えば、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)、又はその他の適切なプロセッサであり得る。
メモリサブシステムコントローラ115は、ローカルメモリ119内に蓄積された命令を実行するように構成された処理デバイス117(プロセッサ)を含み得る。説明する例では、メモリサブシステムコントローラ115のローカルメモリ119は、メモリサブシステム110とホストシステム120との間の通信の処理を含む、メモリサブシステム110の動作を制御する様々なプロセス、動作、論理フロー、及びルーチンを実施するための命令を蓄積するように構成された組み込みメモリを含む。
幾つかの実施形態では、ローカルメモリ119は、メモリポインタ、フェッチされたデータ等を蓄積するメモリレジスタを含み得る。ローカルメモリ119は、マイクロコードを蓄積するためのリードオンリーメモリ(ROM)をも含み得る。図1の例示的なメモリサブシステム110は、メモリサブシステムコントローラ115を含むものとして説明されているが、本開示の別の実施形態では、メモリサブシステム110は、メモリサブシステムコントローラ115を含まず、代わりに、(例えば、外部ホストによって、又はメモリサブシステムとは別のプロセッサ若しくはコントローラによって提供される)外部制御に依存し得る。
一般的に、メモリサブシステムコントローラ115は、ホストシステム120からコマンド又は動作を受信し得、コマンド又は動作を、メモリデバイス130及び/又はメモリデバイス140への所望のアクセスを達成するための命令又は適切なコマンドに変換し得る。メモリサブシステムコントローラ115は、ウェアレベリング動作、ガベージコレクション動作、誤り検出及び誤り訂正コード(ECC)動作、暗号化動作、キャッシング動作、及びメモリデバイス130と関連付けられた論理アドレス(例えば、論理ブロックアドレス(LBA)、名前空間)と物理アドレス(例えば、物理ブロックアドレス)との間のアドレス変換等のその他の動作を担当し得る。メモリサブシステムコントローラ115は、物理ホストインターフェースを介してホストシステム120と通信するためのホストインターフェース回路を更に含み得る。ホストインターフェース回路は、ホストシステムから受信したコマンドを、メモリデバイス130及び/又はメモリデバイス140にアクセスするためのコマンド命令に変換し得ると共に、メモリデバイス130及び/又はメモリデバイス140と関連付けられた応答を、ホストシステム120に対する情報に変換し得る。
幾つかの実装では、メモリサブシステム110は、ストライピングスキームを使用し得、それに従えば、ペイロードがダイのサブセットを通じて分散される一方、残りの1つ以上のダイが誤り訂正情報(パリティビット等)を蓄積するために使用されるように、あらゆるデータペイロード(例えば、ユーザデータ)は、メモリデバイス130(例えば、NANDタイプのフラッシュメモリデバイス)の複数のダイを利用する。したがって、ストライピングスキームを使用してメモリデバイスのダイのセットに渡って分散されたブロックのセットは、本明細書では“スーパーブロック”と称される。
メモリサブシステム110はまた、説明されていない追加の回路又はコンポーネントを含み得る。幾つかの実施形態では、メモリサブシステム110は、キャッシュ又はバッファ(例えば、DRAM)と、メモリサブシステムコントローラ115からアドレスを受信し得、メモリデバイス130にアクセスするためにアドレスをデコードし得るアドレス回路(例えば、行デコーダ及び列デコーダ)とを含み得る。
幾つかの実施形態では、メモリデバイス130は、メモリデバイス130の1つ以上のメモリセル上で動作を実行するためにメモリサブシステムコントローラ115と連動して動作するローカルメディアコントローラ135を含む。外部コントローラ(例えば、メモリサブシステムコントローラ115)は、メモリデバイス130を外部で管理し得る(例えば、メモリデバイス130上でメディア管理動作を実施し得る)。幾つかの実施形態では、メモリデバイス130はマネージドメモリデバイスであり、これは、同じメモリデバイスパッケージ内のメディア管理のためにローカルコントローラ(例えば、ローカルコントローラ135)と組み合わされたローメモリデバイスである。マネージドメモリデバイスの例は、マネージドNAND(MNAND)デバイスである。
メモリサブシステム110は、メモリデバイス130に蓄積されたデータブロックに対するキャッシュ内のデータブロックの書き込みモードを変更することに基づいてメディア管理動作、例えば、ガベージコレクション動作を実施するために使用され得るキャッシュマネージャーコンポーネント113を含む。幾つかの実施形態では、コントローラ115は、キャッシュマネージャーコンポーネント113の少なくとも一部分を含む。例えば、コントローラ115は、本明細書に説明する動作を実施するためのローカルメモリ119内に蓄積された命令を実行するように構成されたプロセッサ117(処理デバイス)を含み得る。幾つかの実施形態では、キャッシュマネージャーコンポーネント113は、ホストシステム120、アプリケーション、又はオペレーティングシステムの一部である。
キャッシュマネージャーコンポーネント113は、メモリサブシステム110のワークロード条件(例えば、観測されたライトアンプリフィケーション)を監視し得、ガベージコレクション動作のパフォーマンスがパフォーマンス条件を満たす場合(例えば、メモリサブシステム110が定常状態条件下で動作していることを、観測されたライトアンプリフィケーションが指し示す場合)、キャッシュマネージャーコンポーネント113は、メモリデバイス130のキャッシュ領域内のブロックが耐久性条件を満たすか否かを判定し得る。両方の条件が満たされる場合、キャッシュマネージャーコンポーネント113は、キャッシュ領域内のデータブロックに対する書き込みモードを、低データ密度モード(例えば、SLC)からより高いデータ密度(例えば、MLC、TLC、QLC等。以下、XLCと総称する)を有する書き込みモードに変更し得、該データブロックをガベージコレクション動作で使用し得る。また、定常状態のパフォーマンス条件がもはや存在しないことをワークロード条件が一旦指し示すと、キャッシュマネージャーコンポーネント113は、キャッシュ領域内の後続のデータブロックに対する書き込みモードを、それらの元のデータ密度に戻し得る(例えば、SLCに戻し得る)。キャッシュマネージャーコンポーネント113の動作に関する更なる詳細は、以下に説明される。
図2は、メモリサブシステムに対するキャッシュ内のデータブロックの書き込みモードを変更することに基づいてガベージコレクション動作を実施するための例示的な方法200のフロー図である。方法200は、ハードウェア(例えば、処理デバイス、回路、専用ロジック、プログラミング可能ロジック、マイクロコード、デバイスのハードウェア、集積回路等)、ソフトウェア(例えば、処理デバイス上で実行する又は実行される命令)、又はそれらの組み合わせを含み得る処理ロジックによって実施され得る。幾つかの実施形態では、方法200は、図1のキャッシュマネージャーコンポーネント113によって実施される。特定のシーケンス又は順序で示されているが、特に明記しない限り、プロセスの順序は修正され得る。したがって、説明する実施形態は例としてのみ理解すべきであり、説明するプロセスは異なる順序で実施され得、幾つかのプロセスは並行して実施され得る。また、様々な実施形態では、1つ以上のプロセスが省略され得る。したがって、あらゆる実施形態において全てのプロセスが必要とされるわけではない。その他のプロセスフローも可能である。
図2に示すように、動作205において、処理ロジックは、メモリサブシステムの1つ以上のデータブロック上でガベージコレクション動作を実施する。データは、データブロックのメモリセルごとに特定の数のビットを使用してデータを蓄積する書き込みモードを使用して、メモリサブシステムの1つ以上のブロックに蓄積され得る。幾つかの実装では、データは、メモリサブシステムのキャッシュ領域内に蓄積されるブロックよりも高いデータ密度を有する書き込みモードを使用して蓄積され得る。説明する一例では、データは、QLCメモリセルで構成されたブロックに蓄積され得る一方、キャッシュ領域内に蓄積されるブロックは、(各々がQLCメモリセルよりも低いデータ密度を有するので)SLC、MLC、又はTLCメモリセルで構成され得る。説明する別の例では、データは、TLCメモリセルで構成されたブロックに蓄積され得る一方、キャッシュ領域内に蓄積されるブロックは、(各々がTLCメモリセルよりも低いデータ密度を有するので)SLC又はMLCメモリセルで構成され得る。
動作210において、処理ロジックは、ガベージコレクション動作がパフォーマンス条件を満たすか否かを判定する。幾つかの実施形態では、パフォーマンス条件は、一定量のデータを1つ以上の新たなデータブロックに書き込むためにガベージコレクション動作で使用される書き込み動作の数(例えば、ガベージコレクション中に観測されるライトアンプリフィケーション)に基づき得る。言い換えれば、パフォーマンス条件は、有効なデータをあるブロックから別のブロックにコピーするためにガベージコレクション中に発生した追加の書き込みの数に基づき得る。処理ロジックは、観測されたライトアンプリフィケーションに基づいて定常状態条件が存在するか否かを判定するために、メモリサブシステムのワークロード条件を監視し得る。上記のように、メモリサブシステムは、不要なデータのデータブロックをクリアするために新たなホストデータを書き込むことと並行してガベージコレクション動作が必要になった場合に、データ書き込み量が多い期間に定常状態にあり得る。例えば、ガベージコレクション動作時に観測されたライトアンプリフィケーションの測定値が閾値を満たす場合、パフォーマンス条件が満たされ得る。動作210において、パフォーマンス条件が満たされていると処理ロジックが判定した場合、処理は動作215に続く。そうでない場合、処理は動作230に進む。
動作215において、処理ロジックは、メモリサブシステムのキャッシュ領域のデータブロックが耐久性条件を満たすか否かを判定する。上記のように、幾つかの実装では、ガベージコレクション動作によりアクセスされるデータブロックのデータ密度よりも低いデータ密度を有する第2の書き込みモードを使用して、キャッシュ領域のデータブロックにデータが蓄積され得る。言い換えれば、第2の書き込みモードは、動作205において指定された第1の書き込みモード書き込みを使用して書き込まれたブロックに対するビットの数よりも少ないデータブロックのメモリセルあたりのビットの数を使用してデータを蓄積し得る。例えば、第1の書き込みモードがQLCである場合、第2の書き込みモードは、各々がQLCよりも低いデータ密度を有するのでSLC、MLC、又はTLCであり得る。動作215において、処理ロジックは、メモリサブシステムのキャッシュ領域に割り当てられたデータブロックが、より高いデータ密度の書き込みモードの内の1つと関連付けられた閾値を満たす耐久性値を有するか否かを判定し得る。例えば、キャッシュデータブロックの耐久性をTLCメモリセルに対する高い閾値耐久性値と処理ロジックが比較し得る場合である。キャッシュデータブロックの観測された耐久性がTLC耐久性閾値よりも小さい場合、処理ロジックは、キャッシュデータブロックが耐久性条件を満たし、TLCモードで使用され得ると判定し得る。データブロックが耐久性条件を満たすと処理ロジックが判定した場合、処理は動作220に続く。それ以外の場合、処理は動作230に進む。
動作220において、処理ロジックは、キャッシュ領域のデータブロックに対する書き込みモードを第2の書き込みモードから第1の書き込みモードに変更する。例えば、動作215において、キャッシュ領域のデータブロックが、より高いデータ密度の書き込みモードと関連付けられた最大耐久性閾値よりも低い観測された耐久性を有すると処理ロジックが判定した場合、処理ロジックは、その現在の書き込みモード(例えば、SLC)からより高いデータ密度を有する書き込みモード(例えば、MLC、TLC等)にキャッシュ領域のデータブロックの書き込みモードを変更し得る。動作225において、処理ロジックは、ガベージコレクション動作でキャッシュ領域のデータブロックを使用する。言い換えると、処理ロジックは、新たなより高いデータ密度の書き込みモード(例えば、XLCモードの内の1つ)を使用して、ガベージコレクション動作中にキャッシュ領域のデータブロックにデータをここで書き込み得る。
動作210において、ガベージコレクション動作がパフォーマンス条件を満たさない(例えば、メモリサブシステムが定常状態のワークロード条件を経験していない)と処理ロジックが判定した場合、処理は、ガベージコレクション動作がキャッシュ領域の外部からのデータブロックを使用する(例えば、ガベージコレクション動作がキャッシュ領域からのデータブロックを使用しない)ブロック230に進む。同様に、動作215において、キャッシュ領域内のどのデータブロックも耐久性条件を満たさない(例えば、キャッシュ内のデータブロックの各々が、メモリサブシステムにより使用されるより高いデータ密度の書き込みモードと関連付けられた閾値を超える観測された耐久性値を有する)と処理ロジックが判定した場合、処理は、ガベージコレクション動作がキャッシュ領域の外部からのデータブロックを使用するブロック230に進む。
上記の動作に関する更なる詳細は、図3A及び図3Bに関連して以下に説明される。
図3A~図3Bは、本開示の幾つかの実施形態に従ったキャッシュ内のデータブロックの書き込みモードを変更することに基づいてガベージコレクション動作を実施している間のメモリサブシステムのデータ構成の例を説明する。幾つかの実施形態では、ガベージコレクション動作は、図2に関して上で説明し、図4に関して以下で説明するように、図1のキャッシュマネージャーコンポーネント113によって実施され得る。
図3Aに示すように、データ構成300は、ユーザデータブロック301、ファームウェアリザーブデータブロック302、キャッシュデータブロック303、及びオペレーティングOPデータブロック304を含み得る。幾つかの実装では、データ構成300のOP領域全体は。ファームウェアリザーブデータブロック302、キャッシュデータブロック303、及びオペレーティングOPデータブロック304(例えば、ユーザデータブロック301に割り当てられないデータブロック)を含み得る。上記のように、ファームウェアリザーブデータブロック302及びキャッシュデータブロック303は、データ構成300のOP領域全体から割り当てられ得、それによって、オペレーティングOPデータブロック304のみ含むようにオペレーティングOP領域305を縮小する。また、上記のように、キャッシュデータブロック303に割り当てられたデータブロック(例えば、データブロック306)は、低密度の書き込みモード(例えば、SLC)を使用して書き込まれるように構成され得る。
上記のように、ホストデータは、書き込まれるメモリサブシステムによって受信されるので、最初にキャッシュデータブロック303をキャッシュするように書き込まれ得、その後、ユーザデータブロック310内のデータブロックに移動させられ得る。データがメモリサブシステムに書き込み続けられると、キャッシュデータブロック303がいっぱいになり始め得、その後受信されたホストデータがユーザデータブロック301に直接書き込まれるようになる。書き込みが処理され続けられると、利用可能な空間が減少し、不要なデータのデータブロックをクリアするためにガベージコレクション動作が必要になる。上記のように、書き込み量が多い期間中、メモリサブシステムは、新たなデータの書き込みと同時にガベージコレクションが発生する定常状態条件を経験し得る。
図2に関して上に説明したように、ガベージコレクション動作中、メモリサブシステムのワークロードパフォーマンス(例えば、観測されたライトアンプリフィケーション)は、定常状態条件が存在するか否か(例えば、それがパフォーマンス条件を満たすか否か)を評価するために監視される。ガベージコレクション動作時のデータブロックのライトアンプリフィケーションが閾値以上の場合、ガベージコレクション動作はパフォーマンス条件を満たし得る。ライトアンプリフィケーションは、上に説明したように、1つ以上の新たなデータブロックに一定量のデータを書き込むためにガベージコレクション動作で使用される書き込み動作の数に基づく。例えば、1Gbのホストデータをメモリサブシステムに書き込むために、ガベージコレクションは、1Gbのホストデータよりも遥かに多くの書き込みをもたらす複数の書き込み又は再書き込み動作を含む場合があり得る。したがって、ガベージコレクション中に1Gbのホストデータを処理するために合計2Gbのデータを効果的に書き込むことは、2のライトアンプリフィケーション値をもたらし得る。定常状態条件中、書き込み動作の数は、書き込まれるホストデータの量の大きな乗数であり得る。
ガベージコレクション動作がパフォーマンス条件を満たす場合(例えば、ガベージコレクションのライトアンプリフィケーションに基づいて定常状態条件が観測される場合)、キャッシュデータブロック303は、オペレーティングOP領域305を補足するために使用され得るものがあるか否かを判定するために分析され得る。キャッシュマネージャーは、該データブロックがXLC書き込みモードに対する耐久性条件を満たすか否かを判定するために、キャッシュデータブロック303からデータブロック306をその後選択し得る。幾つかの実装では、耐久性条件は、データブロック306上で実施されているXLC書き込みモードを使用する書き込み動作の閾値数に対応する。言い換えれば、耐久性条件は、データブロックのメモリセルが信頼できなくなる前にXLC書き込みモードに対して使用され得るプログラミング/消去サイクルの最大数を表し得る。
例えば、ユーザデータブロック301及びオペレーティングOPデータブロック304がTLC書き込みモードを使用するように構成されている場合、キャッシュマネージャーは、データブロック306に対する観測された耐久性値をTLC書き込みモードに対する耐久性閾値と比較し得る。同様に、その他のより高いデータ密度の書き込みモード(例えば、MLC、QLC等)がメモリサブシステムにより使用されている場合、キャッシュマネージャーは、使用されている書き込みモードに対する耐久性閾値を使用し得る。耐久性条件は、それ故、キャッシュ内のデータブロックが、該書き込みモードに切り替わる前に、より高密度の書き込みモードに適することを保証し得る。
幾つかの実装では、キャッシュマネージャーは、キャッシュデータブロック303内の全てのデータブロックに対する平均耐久値が耐久条件を満たすか否かを最初に判定することによって、データブロック306が耐久条件を満たすか否かを判定し得る。キャッシュデータブロック303全体に対する平均耐久性が耐久性条件を満たす場合、キャッシュマネージャーは、データブロック306をその後選択し得る。平均耐久性値が耐久性条件を満たさない場合、このことは、XLC書き込みモードをサポートし得るキャッシュデータブロック303内にデータブロックがないことを指し示し得る。そうした実例では、キャッシュデータブロック303は、キャッシュ動作に対してのみ使用され得、その後の任意のガベージコレクション動作に対する何れの書き込みモードの切り替えも無効化され得、又はバイパスされ得る。
ガベージコレクション動作がパフォーマンス条件を満たし(例えば、ライトアンプリフィケーションが定常状態のガベージコレクション中に閾値以上であり)、キャッシュデータブロック303内の少なくとも1つのデータブロックが耐久性条件を満たす(例えば、データブロック306がXLC書き込みモードをサポートし得る)ことをキャッシュマネージャーが判定した場合、キャッシュマネージャーは、データブロック306の書き込みモードを変更する(例えば、XLC書き込みモードをサポートするようにデータブロック306に対するデータ密度を増加させる)ために変更書き込みモード340を実施し得る。
変更書き込みモード340は、図3Bのデータ構成350をもたらすようにデータ構成300をその後修正し得る。図3Bに示すように、データ構成350は、ユーザデータブロック351、ファームウェアリザーブデータブロック352、キャッシュデータブロック353、及びオペレーティングOPデータブロック354を含み得る。データ構成300と同様に、データ構成350のOP領域全体は、ファームウェアリザーブデータブロック352、キャッシュデータブロック353、及びオペレーティングOPデータブロック354(例えば、ユーザデータブロック351に割り当てられないデータブロック)を含む。しかしながら、変更書き込みモード340を実施することは、(例えば、一時オペレーティングOP領域355により説明されるように)キャッシュデータブロック353の内の幾つか又は全てを含むようにオペレーティングOP領域を増加させ得る。また、変更書き込みモード340を実施した結果、キャッシュデータブロック353に割り当てられたデータブロック(例えば、データブロック356)は、より高密度の書き込みモード(例えば、XLC)を使用して書き込まれるように構成され得る。幾つかの実装では、キャッシュデータブロック353内のデータブロックの内の幾つかは、耐久性条件を満たさないことがある(例えば、幾つかのブロックは、XLC閾値を超える耐久性値を有し得る)。こうした実例では、これらのブロックは、ガベージコレクションに対するXLCモードでの使用を制限され得る。
ガベージコレクション動作が継続すると共に、キャッシュマネージャーは、定常状態がいつ終了したかを判定するために、メモリサブシステムの進行中のワークロード条件(例えば、観測されたライトアンプリフィケーション)を監視し続け得る。後続のガベージコレクション動作が確立されたパフォーマンス条件を満たさない(例えば、観測されたライトアンプリフィケーションが定常状態のガベージコレクション中に閾値を下回った)とキャッシュマネージャーが判定した場合、キャッシュデータブロック353内のデータブロックに対する書き込みモードを以前の状態に戻す(例えば、書き込みモードの構成をSLCモードに復元する)ために、復元書き込みモード360が実施され得る。したがって、キャッシュ内のデータブロックは、定常状態条件の間はXLCモードで使用され得るが、それらの条件が終了した場合にはSLCモードに復元され得る。キャッシュデータブロックの書き込みモードをそれらの元の構成に復元することは、図4を参照して以下で詳細に説明される。
例示の目的で、図3A~図3Bは、キャッシュデータブロック306の書き込みモードをSLCからXLC書き込みモードに切り替えることを描写し、本開示の様々な実装の態様では、その他の書き込みモードを使用するように実装され得ることに留意されたい。例えば、幾つかの実装では、キャッシュデータブロック306は、最初にMLCメモリセルで構成され得、その後、TLC又はQLCメモリセルに切り替えられ得る。
図4は、本開示の幾つかの実施形態に従ったメモリサブシステムに対する書き込みモードを変更することに基づいてガベージコレクション動作を実施した後にキャッシュデータブロックの書き込みモードを復元するための例示的な方法400のフロー図である。方法400は、ハードウェア(例えば、処理デバイス、回路、専用ロジック、プログラミング可能なロジック、マイクロコード、デバイスのハードウェア、集積回路等)、ソフトウェア(例えば、処理デバイス上で実行する又は実行される命令)、又はそれらの組み合わせを含み得る処理ロジックによって実施され得る。幾つかの実施形態では、方法400は、図1のキャッシュマネージャーコンポーネント113によって実施される。特定のシーケンス又は順序で示されているが、特に明記しない限り、プロセスの順序は修正され得る。したがって、説明する実施形態は例としてのみ理解すべきであり、説明するプロセスは異なる順序で実施され得、幾つかのプロセスは並行して実施され得る。また、様々な実施形態では、1つ以上のプロセスが省略され得る。したがって、あらゆる実施形態で全てのプロセスが必要とされるわけではない。その他のプロセスフローも可能である。
図4に示すように、動作405において、処理ロジックは、データブロックに蓄積されるビットの数を第1の数から第2の数に変更することによって、メモリデバイスと関連付けられたデータブロックのグループ上でのガベージコレクション動作が、メモリデバイスと関連付けられたキャッシュ領域のデータブロックを使用していると判定し、第1の数は第2の数よりも小さい。図2及び図3A~3Bに関して上記したように、幾つかの実装では、ガベージコレクション動作は、データブロックの書き込みモードをデータブロックに僅かなビットが蓄積される低データ密度モードから、データブロックにより多くのビットが蓄積されるより高いデータ密度モードに切り替えることによって、キャッシュ領域のデータブロックを使用し得る。例えば、SLCメモリセルで構成されたデータブロックの書き込みモードは、XLC書き込みモードの内の1つに切り替えられ得る。同様に、MLCメモリセルで構成されたデータブロックの書き込みモードは、TLC又はQLC書き込みモードに切り替えられ得る。
動作410において、処理ロジックは、ガベージコレクション動作がパフォーマンス要件を満たしていると判定する。幾つかの実装では、パフォーマンス要件は、一定量のデータを1つ以上の新たなデータブロックに書き込むためにガベージコレクション動作で使用される書き込み動作の数(例えば、ガベージコレクション中に観測されるライトアンプリフィケーション)に基づき得る。処理ロジックは、観測されたライトアンプリフィケーションに基づいて、定常状態条件がもはや存在しなくなった時期を判定するために、メモリサブシステムのワークロード条件を監視し得る。例えば、ガベージコレクション動作時に観測されたライトアンプリフィケーションの測定値が高い閾値を下回った場合、パフォーマンス要件は満たされ得る。
動作415において、ガベージコレクション動作がパフォーマンス要件を満たしていると判定することに応答して、処理ロジックは、データブロックに蓄積されたビットの数を第2の数(例えば、より高いデータ密度の書き込みモードに対するビットの数)から第1の数(より低いデータ密度の書き込みモードに対するビットの数)に変更することによって、後続のデータをキャッシュデータとしてデータブロックに蓄積する。上に説明したように、処理ロジックは、データブロックの書き込みモードを、定常状態のワークロード条件に遭遇する前に存在していたその元の書き込みモードに復元し得る。例えば、キャッシュ領域内のデータブロックが最初にSLCメモリセルで構成され、その後XLC書き込みモードに切り替えられた場合、処理ロジックは、メモリサブシステムのキャッシュ領域内のデータブロックに対する書き込みモードをXLC書き込みモードからそれらの元々構成されたSLC書き込みモードに戻し得る。
図5は、本明細書で論じる方法論の内の何れか1つ以上をマシンに実施させるための命令のセットがその中で実行され得るコンピュータシステム500の例示的なマシンを説明する。幾つかの実施形態では、コンピュータシステム500は、メモリサブシステム(例えば、図1のメモリサブシステム110)を含み、結合され、又は利用するホストシステム(例えば、図1のホストシステム120)に対応し得、又はコントローラの動作を実施するために(例えば、図1のキャッシュマネージャーコンポーネント113に対応する動作を実施するためにオペレーティングシステムを実行するために)使用され得る。代替の実施形態では、マシンは、LAN、イントラネット、エクストラネット、及び/又はインターネット内の他のマシンに接続(例えば、ネットワーク化)され得る。マシンは、クライアントサーバーネットワーク環境ではサーバー若しくはクライアントマシンの能力で、ピアツーピア(若しくは分散)ネットワーク環境ではピアマシンとして、又はクラウドコンピューティングインフラストラクチャ若しくは環境ではサーバー若しくはクライアントマシンとして動作し得る。
マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、ウェブアプライアンス、サーバー、ネットワークルータ、スイッチ若しくはブリッジ、デジタル若しくは非デジタル回路、又は該マシンによって実行されるアクションを指定する命令のセット(シーケンシャル又はその他)を実行可能な任意のマシンであり得る。更に、単一のマシンが説明されているが、用語“マシン”はまた、本明細書で論じる方法論の内の何れか1つ以上を実施するための命令のセット(又は複数のセット)を個々に又は共同で実行するマシンの任意の集合を含むと解釈されるであろう。
例示的なコンピュータシステム500は、処理デバイス502、メインメモリ504(例えば、リードオンリーメモリ(ROM)、フラッシュメモリ、同期型DRAM(SDRAM)又はランバスDRAM(RDRAM)等のダイナミックランダムアクセスメモリ(DRAM)等)、静的メモリ506(例えば、フラッシュメモリ、静的ランダムアクセスメモリ(SRAM)等)、及びデータストレージシステム518を含み、それらは、バス530を介して相互に通信する。
処理デバイス502は、マイクロプロセッサ又は中央処理装置等の1つ以上の汎用処理デバイスを表す。より具体的には、処理デバイスは、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長期命令語(VLIW)マイクロプロセッサ、若しくはその他の命令セットを実装するプロセッサ、又は命令セットの組み合わせを実装するプロセッサであり得る。処理デバイス502はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、又はネットワークプロセッサ等の1つ以上の専用処理デバイスであり得る。処理デバイス602は、本明細書で論じる動作及びステップを実施するための命令526を実行するように構成される。コンピュータシステム500は、ネットワーク520を介して通信するためのネットワークインターフェースデバイス508を更に含み得る。
データストレージシステム518は、本明細書に説明する方法論又は機能の内の何れか1つ以上を具体化する命令526又はソフトウェアの1つ以上のセットがその上に蓄積されるマシン可読ストレージ媒体524(コンピュータ可読媒体としても知られている)を含み得る。命令526はまた、コンピュータシステム500によるその実行中にメインメモリ504内及び/又は処理デバイス502内に完全に又は少なくとも部分的に常駐し得、メインメモリ504及び処理デバイス502はまた、マシン可読ストレージ媒体を構成する。マシン可読ストレージ媒体524、データストレージシステム518、及び/又はメインメモリ504は、図1のメモリサブシステム110に対応し得る。
一実施形態では、命令526は、キャッシュマネージャーコンポーネント(例えば、図1のキャッシュマネージャーコンポーネント113)に対応する機能を実装するための命令を含む。マシン可読ストレージ媒体524は、例示的な実施形態では単一の媒体であることが示されているが、用語“マシン可読ストレージ媒体”は、命令の1つ以上のセットを蓄積する単一の媒体又は複数の媒体を含むと解釈されるべきである。用語“マシン可読ストレージ媒体”はまた、マシンによる実行のための命令のセットを蓄積又は符号化可能であり、本開示の方法論の内の何れか1つ以上をマシンに実施させる任意の媒体を含むと解釈されるであろう。用語“マシン可読ストレージ媒体”は、非限定的に、固体メモリ、光学媒体、及び磁気媒体を含むと解釈されるであろう。
前述の詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビットに対する動作のアルゴリズム及び記号表現に関して提示されている。これらのアルゴリズムの説明及び表現は、データ処理技術の当業者が、当技術分野の他の者にそれらの作業の内容を最も効果的に伝えるために使用される方法である。アルゴリズムはここにあり、一般的に、望ましい結果につながる自己矛盾のない一連の動作であると考えられる。動作は、物理量の物理的な操作を必要とする動作である。通常、必ずしもそうとは限らないが、これらの量は、蓄積、結合、比較、及びその他の方法で操作可能な電気又は磁気信号の形式をとる。主に一般的な使用法の理由から、これらの信号をビット、値、要素、記号、文字、用語、又は数値等と称すると便利な場合がある。
しかしながら、これらの及び類似の用語の全ては、適切な物理量と関連付けられるべきであり、これらの量に適用される単なる便利なラベルであることに留意すべきである。本開示は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)量として表されるデータを操作し、コンピュータシステムのメモリ若しくはレジスタ又はその他のそうした情報ストレージシステム内の物理量として同様に表される他のデータに変換するコンピュータシステム又は同様の電子コンピューティングデバイスのアクション及びプロセスを指し得る。
本開示はまた、本明細書の動作を実施するための装置に関する。この装置は、意図する目的のために特別に構築され得、又はコンピュータ内に蓄積されたコンピュータプログラムにより選択的に起動又は再構成される汎用コンピュータを含み得る。こうしたコンピュータプログラムは、非限定的に、コンピュータシステムバスに各々結合される、フロッピーディスク、光ディスク、CD-ROM、及び磁気光学ディスクを含む任意のタイプのディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気若しくは光カード、又は電子命令の蓄積に適した任意のタイプの媒体等のコンピュータ可読ストレージ媒体内に蓄積され得る。
本明細書に提示されるアルゴリズム及び表示は、特定のコンピュータ又はその他の装置に本質的に関連しない。本明細書の教示に従ったプログラムで様々な汎用システムが使用され得、又は方法を実施するためのより特殊な装置を構築することが便利であることが証明され得る。様々なこれらのシステムの構造は、以下の説明に記載されるように解されるであろう。また、本開示は、何れの特定のプログラミング言語に言及して説明されていない。本明細書に説明するように、開示の教示を実装するために様々なプログラミング言語が使用され得ることは理解されるであろう。
本開示は、本開示に従ったプロセスを実施するようにコンピュータシステム(又はその他の電子デバイス)をプログラミングするために使用され得る、命令をその上に蓄積したマシン可読媒体を含み得るコンピュータプログラム製品又はソフトウェアとして提供され得る。マシン可読媒体は、マシン(例えば、コンピュータ)によって可読な形式で情報を蓄積するための任意のメカニズムを含む。幾つかの実施形態では、マシン可読(例えば、コンピュータ可読)媒体は、リードオンリーメモリ(“ROM”)、ランダムアクセスメモリ(“RAM”)、磁気ディスクストレージ媒体、光ストレージ媒体、フラッシュメモリコンポーネント等のマシン(例えば、コンピュータ)可読ストレージ媒体を含む。
前述の明細書において、開示の実施形態は、それらの具体的で例示的な実施形態に言及して説明されている。以下の特許請求の範囲に記載されるように、開示の実施形態のより広い精神及び範囲から逸脱することなく、それらに様々な修正がなされ得ることは明らかであろう。明細書及び図面は、したがって、限定的な意味ではなく、例示的な意味で考慮されるべきである。

Claims (20)

  1. メモリサブシステムの1つ以上のデータブロック上でガベージコレクション動作を実施することであって、データは、第1の書き込みモードを使用して前記1つ以上のデータブロックに蓄積されることと、
    前記ガベージコレクション動作がパフォーマンス条件を満たすか否かを判定することと、
    前記ガベージコレクション動作が前記パフォーマンス条件を満たすと判定することに応答して、前記メモリサブシステムのキャッシュ領域のデータブロックが耐久性条件を満たすか否かを判定することであって、データは、第2の書き込みモードを使用して前記キャッシュ領域の前記データブロックに蓄積されることと、
    前記データブロックが前記耐久性条件を満たすと判定することに応答して、処理デバイスによって、前記キャッシュ領域の前記データブロックに対する書き込みモードを前記第2の書き込みモードから前記第1の書き込みモードに変更することと、
    前記ガベージコレクション動作で前記キャッシュ領域の前記データブロックを使用すること
    を含む、方法。
  2. 前記第1の書き込みモードは、前記データブロックのメモリセルあたり第1の数のビットで前記データを蓄積し、前記第2の書き込みモードは、メモリセルあたり第2の数のビットで前記データを蓄積し、前記第2の数のビットは、前記第1の数のビットよりも少ない、請求項1に記載の方法。
  3. 前記パフォーマンス条件は、一定量のデータを1つ以上の新たなデータブロックに書き込むために前記ガベージコレクション動作で使用される書き込み動作の数に基づく、請求項1に記載の方法。
  4. 前記耐久性条件は、前記キャッシュ領域の前記データブロック上で実行されている前記第1の書き込みモードを使用する書き込み動作の閾値数に対応する、請求項1に記載の方法。
  5. 前記第1の書き込みモードは、マルチレベルセル(MLC)モード、トリプルレベルセル(TLC)モード、及びクアッドレベルセル(QLC)モードの内の少なくとも1つを含み、前記第2の書き込みモードは、シングルレベルセル(SLC)モードを含む、請求項1に記載の方法。
  6. 前記キャッシュ領域の前記データブロックが前記耐久性条件を満たすか否かを判定することは、
    前記キャッシュ領域に対する平均耐久性値が前記耐久性条件を満たすか否かを判定することと、
    前記キャッシュ領域に対する前記平均耐久性値が前記耐久性条件を満たすと判定することに応答して、前記キャッシュ領域と関連付けられた複数のデータブロックから前記データブロックを選択すること
    を更に含む、請求項1に記載の方法。
  7. 前記平均耐久性値は、前記キャッシュ領域の複数の追加のデータブロック上で実施されている前記第1の書き込みモードを使用する書き込み動作の平均数に対応する、請求項6に記載の方法。
  8. メモリコンポーネントと、
    データブロックに蓄積されたビットの数を第1の数から第2の数に変更することによって、前記メモリコンポーネントと関連付けられた複数のデータブロック上のガベージコレクション動作が、前記メモリコンポーネントと関連付けられたキャッシュ領域の前記データブロックを使用していると判定することと、
    前記ガベージコレクション動作がパフォーマンス要件を満たしていると判定することと、
    前記ガベージコレクション動作が前記パフォーマンス要件を満たしていると判定することに応答して、前記データブロックに蓄積されたビットの前記数を前記第2の数から前記第1の数に変更することによって、後続のデータをキャッシュデータとして前記データブロックに蓄積すること
    を行う、前記メモリコンポーネントと動作可能に結合された処理デバイスと
    を含む、システム。
  9. 前記第1の数は前記第2の数よりも少ない、請求項8に記載のシステム。
  10. 前記第1の数は、第1の書き込みモードと関連付けられ、前記第2の数は、前記第2の書き込みモードと関連付けられる、請求項8に記載のシステム。
  11. 前記第1の書き込みモードは、シングルレベルセル(SLC)モードを含み、前記第2の書き込みモードは、マルチレベルセル(MLC)モード、トリプルレベルセル(TLC)モード、及びクアッドレベルセル(QLC)モードの内の少なくとも1つを含む、請求項10に記載のシステム。
  12. 前記パフォーマンス要件は、1つ以上の新たなデータブロックに一定量のデータを書き込むために前記ガベージコレクション動作で使用される書き込み動作の数に基づく、請求項8に記載のシステム。
  13. 前記ガベージコレクション動作がパフォーマンス要件を満たしていると判定するために、前記処理デバイスは、
    前記一定量のデータを書き込むために前記ガベージコレクション動作で使用される書き込み動作の前記数が、高い閾値を下回ると判定すること
    を更に行う、請求項12に記載のシステム。
  14. メモリサブシステムの1つ以上のデータブロック上でガベージコレクション動作を実施することであって、データは、第1の書き込みモードを使用して前記1つ以上のデータブロックに蓄積されることと、
    前記ガベージコレクション動作がパフォーマンス条件を満たすか否かを判定することと、
    前記ガベージコレクション動作が前記パフォーマンス条件を満たすと判定することに応答して、前記メモリサブシステムのキャッシュ領域のデータブロックが耐久性条件を満たすか否かを判定することであって、データは、第2の書き込みモードを使用して前記キャッシュ領域の前記データブロックに蓄積されることと、
    前記データブロックが前記耐久性条件を満たすと判定することに応答して、前記キャッシュ領域の前記データブロックに対する書き込みモードを前記第2の書き込みモードから前記第1の書き込みモードに変更することと、
    前記ガベージコレクション動作で前記キャッシュ領域の前記データブロックを使用すること
    を含む動作を、プロセッサデバイスにより実行される場合に、前記プロセッサデバイスに実施させる命令を含む、非一時的コンピュータ可読媒体。
  15. 前記第1の書き込みモードは、前記データブロックのメモリセルあたり第1の数のビットで前記データを蓄積し、前記第2の書き込みモードは、メモリセルあたり第2の数のビットで前記データを蓄積し、前記第2の数のビットは、前記第1の数のビットよりも少ない、請求項14に記載の非一時的コンピュータ可読媒体。
  16. 前記パフォーマンス条件は、1つ以上の新たなデータブロックに一定量のデータを書き込むために前記ガベージコレクション動作で使用される書き込み動作の数に基づく、請求項14に記載の非一時的コンピュータ可読媒体。
  17. 前記耐久性条件は、前記キャッシュ領域の前記データブロック上で実施されている前記第1の書き込みモードを使用する書き込み動作の閾値数に対応する、請求項14に記載の非一時的コンピュータ可読媒体。
  18. 前記第1の書き込みモードは、マルチレベルセル(MLC)モード、トリプルレベルセル(TLC)モード、及びクアッドレベルセル(QLC)モードの内の少なくとも1つを含み、前記第2の書き込みモードは、シングルレベルセル(SLC)モードを含む、請求項14に記載の非一時的コンピュータ可読媒体。
  19. 前記キャッシュ領域の前記データブロックが前記耐久性条件を満たすか否かを判定するために、前記動作は、
    前記キャッシュ領域に対する平均耐久性値が前記耐久性条件を満たすか否かを判定することと、
    前記キャッシュ領域に対する前記平均耐久性値が前記耐久性条件を満たすと判定することに応答して、前記キャッシュ領域と関連付けられた複数のデータブロックから前記データブロックを選択すること
    を更に含む、請求項14に記載の非一時的コンピュータ可読媒体。
  20. 前記平均耐久性値は、前記キャッシュ領域の前記複数の追加のデータブロック上で実施されている前記第1の書き込みモードを使用する書き込み動作の平均数に対応する、請求項14に記載の非一時的コンピュータ可読媒体。
JP2022541912A 2020-01-08 2021-01-08 キャッシュ内のデータブロックの書き込みモードの変更に基づくメディア管理動作の実施 Active JP7466655B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/737,662 2020-01-08
US16/737,662 US11157400B2 (en) 2020-01-08 2020-01-08 Performing a media management operation based on changing a write mode of a data block in a cache
PCT/US2021/012782 WO2021142325A1 (en) 2020-01-08 2021-01-08 Performing a media management operation based on changing a write mode of a data block in a cache

Publications (2)

Publication Number Publication Date
JP2023510764A true JP2023510764A (ja) 2023-03-15
JP7466655B2 JP7466655B2 (ja) 2024-04-12

Family

ID=76655227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022541912A Active JP7466655B2 (ja) 2020-01-08 2021-01-08 キャッシュ内のデータブロックの書き込みモードの変更に基づくメディア管理動作の実施

Country Status (6)

Country Link
US (2) US11157400B2 (ja)
JP (1) JP7466655B2 (ja)
KR (1) KR20220114078A (ja)
CN (1) CN114981785A (ja)
DE (1) DE112021000474T5 (ja)
WO (1) WO2021142325A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11934675B2 (en) * 2020-09-12 2024-03-19 Western Digital Technologies, Inc. Mixed mode block cycling for intermediate data
JP2022146531A (ja) * 2021-03-22 2022-10-05 キオクシア株式会社 メモリシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720616B2 (en) * 2008-06-18 2017-08-01 Super Talent Technology, Corp. Data-retention controller/driver for stand-alone or hosted card reader, solid-state-drive (SSD), or super-enhanced-endurance SSD (SEED)
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
JP2011186555A (ja) 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
US7948798B1 (en) 2009-07-22 2011-05-24 Marvell International Ltd. Mixed multi-level cell and single level cell storage device
US20120185638A1 (en) * 2011-01-14 2012-07-19 Daniel Schreiber Method and system for cache endurance management
KR20150010150A (ko) 2013-07-18 2015-01-28 삼성전자주식회사 메모리 시스템 및 이의 동작 방법
US10031673B2 (en) 2014-09-26 2018-07-24 SK Hynix Inc. Techniques for selecting amounts of over-provisioning
US10359933B2 (en) * 2016-09-19 2019-07-23 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods
US10572388B2 (en) 2017-08-30 2020-02-25 Micron Technology, Inc. Managed NVM adaptive cache management
US10521146B1 (en) 2017-11-09 2019-12-31 Micron Technology, Inc. UFS based idle time garbage collection management

Also Published As

Publication number Publication date
JP7466655B2 (ja) 2024-04-12
KR20220114078A (ko) 2022-08-17
WO2021142325A1 (en) 2021-07-15
US20220004491A1 (en) 2022-01-06
CN114981785A (zh) 2022-08-30
US11693767B2 (en) 2023-07-04
US20210209016A1 (en) 2021-07-08
US11157400B2 (en) 2021-10-26
DE112021000474T5 (de) 2022-11-24

Similar Documents

Publication Publication Date Title
US11467980B2 (en) Performing a media management operation based on a sequence identifier for a block
US11609848B2 (en) Media management based on data access metrics
CN115699185A (zh) 在存储装置上每单元实施可变数目的位
US11693767B2 (en) Performing a media management operation based on changing a write mode of a data block in a cache
US20230230645A1 (en) Media management operations based on health characteristics of memory cells
CN113093990A (zh) 存储器子系统处的数据块切换
US11829650B2 (en) Memory sub-system data migration
US11972130B2 (en) Media management operations based on a ratio of valid data
US20230195350A1 (en) Resequencing data programmed to multiple level memory cells at a memory sub-system
CN115639951A (zh) 在存储器子系统中实施自动速率控制
US11797441B2 (en) Cache media management
US11275687B2 (en) Memory cache management based on storage capacity for parallel independent threads
US11791000B2 (en) Valid translation unit count-based memory management
US11922011B2 (en) Virtual management unit scheme for two-pass programming in a memory sub-system
US20240061589A1 (en) Code rate as function of logical saturation
WO2022027578A1 (en) Memory overlay using host memory buffer
CN113126899A (zh) 完全多平面操作启用
CN113253917A (zh) 用于存储器子系统的媒体管理的多状态炼狱

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240402

R150 Certificate of patent or registration of utility model

Ref document number: 7466655

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150