JP2021528783A - Nand動作レイテンシの制御 - Google Patents

Nand動作レイテンシの制御 Download PDF

Info

Publication number
JP2021528783A
JP2021528783A JP2020572977A JP2020572977A JP2021528783A JP 2021528783 A JP2021528783 A JP 2021528783A JP 2020572977 A JP2020572977 A JP 2020572977A JP 2020572977 A JP2020572977 A JP 2020572977A JP 2021528783 A JP2021528783 A JP 2021528783A
Authority
JP
Japan
Prior art keywords
garbage collection
memory
block
physical block
page
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.)
Ceased
Application number
JP2020572977A
Other languages
English (en)
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 JP2021528783A publication Critical patent/JP2021528783A/ja
Ceased legal-status Critical Current

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
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

NAND動作レイテンシを制御するデバイス及び技法を本明細書に記載する。コントローラは、書き込み要求を受信することができる。次に、コントローラは、閉じられている物理ブロック上で実行するガベージコレクション動作数を計算することができる。ここでの計算は、ガベージコレクションについてのケイデンス計算に論理対物理(L2P)領域検索比率を追加することを含む。ガベージコレクション動作は、実行するために計算されたガベージコレクション動作数に従って、物理ブロック上で実行されることができる。次に、コントローラは、計算されたガベージコレクション動作数を完了することに応答して、書き込み要求を実行することができる。

Description

優先権出願
本出願は、2018年6月29日に出願された米国出願第16/024,380号に優先権の利益を主張するものであり、参照によりその全体が本明細書に援用される。
メモリデバイスは典型的には、内部の、半導体、集積回路としてコンピュータまたは他の電子デバイスに設けられる。揮発性メモリ及び不揮発性メモリを含む多くの異なるタイプのメモリが存在する。
揮発性メモリは、そのデータを維持するために電力を必要とし、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、または同期ダイナミックランダムアクセスメモリ(SDRAM)などを含む。
不揮発性メモリは、電力が供給されていないときに格納されたデータを保持することができ、フラッシュメモリ、読み出し専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、スタティックRAM(SRAM)、消去可能プログラマブルROM(EPROM)、抵抗可変メモリ(例えば、相変化ランダムアクセスメモリ(PCRAM)、抵抗ランダムアクセスメモリ(RRAM)、磁気抵抗型ランダムアクセスメモリ(MRAM)、または3D Xpoint(商標)メモリ)などを含む。
フラッシュメモリは、広範囲の電子アプリケーションのために不揮発性メモリとして利用される。フラッシュメモリデバイスは、メモリが高密度であり、信頼性が高く、消費電力が低いことを可能にする、1トランジスタ、フローティングゲートまたはチャージトラップメモリセルの1つ以上のグループを一般的に含む。
フラッシュメモリアレイアーキテクチャの2つの一般的なタイプは、NANDアーキテクチャ、及びNORアーキテクチャを含み、それぞれのベーシックメモリセル構成が配列される論理形式にちなんで名付けられている。メモリアレイのメモリセルは、行列で一般に配列される。一例では、アレイのロウ内の各フローティングゲートメモリセルのゲートは、アクセス線(例えば、ワード線)に結合される。NORアーキテクチャでは、アレイのカラム内の各メモリセルのドレインはデータ線(例えば、ビット線)に結合される。NANDアーキテクチャでは、アレイストリング内の各メモリセルのドレインは、ソース線とビット線との間で、ソースからドレインに直列で共に結合される。
NORアーキテクチャ及びNANDアーキテクチャの両方の半導体メモリアレイは、それらのゲートに結合されるワード線を選択することによって、特定のメモリセルをアクティブにする復号器を介してアクセスされる。NORアーキテクチャの半導体メモリアレイでは、アクティブにされると、選択されたメモリセルは、それらのデータ値をビット線に配置し、特定のセルがプログラムされている状態に応じて異なる電流を流させる。NANDアーキテクチャの半導体メモリアレイでは、高いバイアス電圧は、ドレイン側選択ゲート(SGD)線に印加される。各グループの選択されていないメモリセルのゲートに結合されるワード線を、指定されたパス電圧(例えば、Vpass)で駆動し、各グループの選択されていないメモリセルをパストランジスタとして動作させる(例えば、それらの格納されたデータ値によって制限されない方法で電流を流すために)。次に、電流は、各グループの選択されたメモリセルによってのみ制限される、直列に結合された各グループを介してソース線からビット線に流れ、選択されたメモリセルの現在の符号化データ値をビット線に配置する。
NORアーキテクチャまたはNANDアーキテクチャの半導体メモリアレイでの各フラッシュメモリセルは、1つの、または複数のプログラムされた状態に個別に、または集合的にプログラムされることができる。例えば、シングルレベルセル(SLC)は、1ビットのデータを表す、2つのプログラムされた状態(例えば、1または0)のうちの1つを表すことができる。
ただし、フラッシュメモリセルは2つより多いプログラムされた状態のうちの1つを表すこともできることにより、各セルが1つより多い二進数(例えば、1ビットよりも多い)を表すことができるため、メモリセルの数を増やすことなく、より高密度のメモリの製造を可能にする。それらのようなセルは、マルチステートメモリセル、マルチデジットセル、またはマルチレベルセル(MLC)と称されることができる。ある特定の例では、MLCは、セルあたり2ビットのデータを格納することができるメモリセル(例えば、4つのプログラムされた状態のうちの1つ)を指すことができ、トリプルレベルセル(TLC)は、セルあたり3ビットのデータを格納することができるメモリセル(例えば、8つのプログラムされた状態のうちの1つ)を指すことができ、クアッドレベルセル(QLC)は、セルあたり4ビットのデータを格納することができる。MLCは、本明細書では、そのより広い文脈で使用され、セルあたり1ビットより多いデータを格納することができる(すなわち、2つより多いプログラムされた状態を表すことができる)任意のメモリセルを指すことができる。
従来のメモリアレイは、半導体基板の表面上に配列される二次元(2D)構造である。所与の領域についてのメモリ容量を増やし、コストを削減するために、個々のメモリセルのサイズは小さくなっている。ただし、個々のメモリセルのサイズの縮小、したがって、2Dメモリアレイのメモリの密度には、技術的な限界がある。これに応じて、三次元(3D)NANDアーキテクチャの半導体メモリデバイスなどの3Dメモリ構造は、さらにメモリの密度を高め、メモリコストを下げるように開発されている。
それらのような3D NANDデバイスは、ストレージセルのストリングを含むことが多く、これらのストレージセルのストリングは、ソースに近接する1つ以上のソース側選択ゲート(SGS)と、ビット線に近接する1つ以上のドレイン側選択ゲート(SGD)との間に、直列(例えば、ドレインからソース)で結合される。一例では、SGSまたはSGDは、1つ以上の電界効果トランジスタ(FET)または金属酸化物半導体(MOS)構造デバイスなどを含むことができる。いくつかの例では、ストリングは、それぞれワード線を含む、複数の垂直方向に離隔されたティアを通って垂直方向に延伸する。半導体構造(例えば、ポリシリコン構造)は、ストレージセルのストリングに隣接して延在し、このストリングのストレージセルについてチャネルを形成することができる。垂直方向のストリングの例では、ポリシリコン構造は、垂直方向に延伸するピラー形状であることができる。いくつかの例では、ストリングを「折りたたむ」ことができるので、U字形のピラーに対して配列することができる。他の例では、複数の垂直構造を互いの上に積層させて、ストレージセルストリングの積層型アレイを形成することができる。
メモリアレイまたはデバイスを共に組み合わせて、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS(商標))デバイス、MultiMediaCard(MMC)ソリッドステートストレージデバイス、組み込みMMCデバイス(eMMC(商標))などのようなメモリシステムのストレージボリュームを形成することができる。SSDは、とりわけ、コンピュータのメインストレージデバイスとして使用されることができ、例えば、パフォーマンス、サイズ、重量、耐久性、動作温度範囲、及び消費電力に関して可動部品を含む従来のハードドライブに対する利点を有する。例えば、SSDは、磁気ディスクドライブ(例えば、電気機械など)に関連するシーク時間、レイテンシ、または他の遅延を減らすことができる。SSDは、フラッシュメモリセルなどの不揮発性メモリセルを使用して、内部バッテリ供給要件を不要にすることにより、ドライブをより多用途でコンパクトにすることを可能にする。
SSDは、複数のダイまたは論理ユニット(例えば、論理ユニット番号またはLUN)を含む、複数のメモリデバイスを含むことができ、メモリデバイスまたはインタフェースを外部システムによって動作させるために必要な論理機能を実行する、1つ以上のプロセッサまたは他のコントローラを含むことができる。それらのようなSSDは、複数のメモリアレイ、及びそれらの上の周辺回路を含む、1つ以上のフラッシュメモリダイを含むことができる。フラッシュメモリアレイは、複数の物理ページに編成されるメモリセルの複数のブロックを含むことができる。多くの例では、SSDは、DRAMまたはSRAM(または他のメモリダイ形態または他のメモリ構造)も含む。SSDは、メモリデバイスとホストとの間でデータ(例えば、エラーデータ及びアドレスデータなどのような、ユーザデータ及び関連する完全性データ)を転送する読み出しもしくは書き込み動作、またはメモリデバイスからのデータを消去する消去動作などのメモリ動作に関連してホストからコマンドを受信することができる。
必ずしも一定の縮尺で描かれているわけではない図面では、類似数字が異なる図中の類似構成要素を説明し得る。異なる文字接尾辞を有する類似数字は、類似構成要素の別の例を表す場合がある。図面は、概して、限定ではなく実施例として、本明細書で論じられているさまざまな実施形態を示す。
メモリデバイスを含む環境の一例を示す。 ワーキングメモリ内の論理対物理テーブル領域の一例を示す。 論理対物理領域、物理ブロック、及び追跡データ構造の間の関係の一例を示す。 論理対物理領域、物理ブロック、及び追跡データ構造の間の関係の一例を示す。 A〜Bは、追跡データ構造についてのストレージ構成を示す。 NAND動作レイテンシを制御する方法のフローチャートを示す。 1つ以上の実施形態が実装されることができるマシンの一例を示すブロック図である。
フラッシュデバイスなどの多くのストレージデバイスは、変換テーブルを使用して、論理素子(例えば、ページまたはブロック)を論理素子の物理的な均等物にマッピングする。これにより、デバイスのストレージ素子のパフォーマンスまたは寿命を高めるために、デバイスのコントローラがさまざまな技法を実行することが可能である。例えば、NANDフラッシュセルは、書き込みまたは消去サイクルによって物理的な摩耗を受ける。さらに、これらのデバイスは、一度に多くの要素を消去する必要がある(例えば、ブロック消去)。これらの問題に対処するために、コントローラは、利用可能なセルの周囲に書き込みを一般に拡散させ(例えば、これらのセルからの摩耗を減らすために)、ブロックから適したページを移行してブロックを消去することにより、追加のスペースを解放する。どちらの場合も、所与のページまたはブロックについてのホストアドレスは、それが参照するデータが変換テーブルによって別の物理ページまたはブロックに移動する場合でも、一定であることができる。
変換テーブルは、コントローラの内部メモリ(例えば、ワーキングメモリ)に一般にロードされる。テーブルサイズがワーキングメモリ(ランダムアクセスメモリ(RAM)、例えば、コントローラのダイナミックRAM(DRAM)またはスタティックRAM(SRAM)などの内の)よりも大きい場合、テーブルの一部分は、ワーキングメモリにロードされ、テーブルの残りの部分は、他のストレージ(NANDフラッシュアレイ素子など)に格納される。変換要求(例えば、論理対物理(L2P)マッピング)がワーキングメモリにない場合、コントローラは、テーブルの内部メモリ部分を他のストレージからの適切な部分と置換する。このプロセスは、ストレージデバイスに読み出しまたは書き込みなどの動作を実行するときに、レイテンシを増加させる場合がある。ワーキングメモリを増やすことにより、これらの発生を減らすことができるが、これにより、製造コスト及び電力コストがかかり、所与の用途に許容できない可能性がある。
ガベージコレクション(GC)などの、ある特定のメンテナンスタスクを実行する場合、L2Pテーブルの断片化された性質が問題になる可能性がある。例えば、NANDデバイスは、単一ページの書き込みを一般に可能にするが、消去は、ブロックレベルで実行される(例えば、ブロックは個別に消去されることができるNANDデバイスの最小単位である)。ガベージコレクションは、NANDデバイスで解放した物理スペースが少なくなったときに解放したスペースを回復するように設計される。一般に、ガベージコレクションは、論理的に有効なページをソースブロックから宛先ブロックにコピーしてから、ソースブロックを消去してスペースを解放することを含む。コピーを達成するために、従来、L2Pテーブルを検索して、ソースブロックを指す物理アドレスを探すことによって、ソースブロックの有効なページを識別する。
完全なL2Pテーブルがワーキングメモリ内に適合することができない場合のガベージコレクションへの従来のアプローチは、いくつかの問題がある。例えば、各L2P領域がより遅いNANDストレージから取得され、検索を行うためにワーキングメモリに置かれるため、検索に時間がかかっている場合がある。L2P領域がブロック内に物理ページを含まない場合、ロード及び検索時間の全体が無駄になる。これにより、デバイスがガベージコレクションプロセスを完了するまで待機している間、高いレイテンシをもたらす。
ブロックについてのデータ構造を維持して、ガベージコレクションが進行する速度を上げることができる。データ構造は、所与のブロックに関連するL2Pテーブル領域を示す。例えば、ページがブロックに書き込まれるときに、対応するデータ構造を変更して、論理ページをその物理ページにマッピングするL2P領域を示す。ブロックでガベージコレクションが開始されたときに、デバイスは、データ構造をロードし、示されたL2Pテーブル領域を検索する。このプロセスは、ワーキングメモリにロードされるL2P領域を、ブロックへの参照を含む可能性が高いこれらの領域のみに制限する。
データ構造の実装は、本明細書ではマップビットマップ(例えば、MBM)と称されるビットマップ(例えば、バイナリ配列)を含むことができ、ビットマップでのインデックスは、L2Pテーブル領域に対応し、インデックスでの値(例えば、バイナリ「1」対バイナリ「0」)は、L2P領域がブロックの物理ページへの参照を保持する(または保持した)かどうかを示す。この例では、ブロックが消去されるときに、関連するビットマップは、完全にリセットされる(例えば、すべての値はバイナリ「0」に設定される)。L2P領域に属するページがブロックに書き込まれるときに(例えば、ホスト書き込みか、ガベージコレクションプロシージャのいずれかのために)、ビットマップでの関連するビットが設定される(例えば、バイナリ「1」に)。一例では、ブロックが完全に書き込まれた後、すなわち、解放したページがなくなった後、ブロックが消去されるまで、ブロックについてのビットマップは変更されない。
上記のデータ構造の使用は、従来のブロック管理にいくつかの利点を提供する。例えば、ワーキングメモリにロードされるL2P領域が少なくなるため、ブロック内で有効なページの検索を実行する時間が短縮される。さらに、ワーキングメモリにロードされる各L2P領域が、動作中に移動する有効なページをもたらす可能性が高いため、検索の効率を向上させる。さらに、データ構造はブロックへの書き込みの一部として更新されるため、構造を維持する際のメンテナンスオーバーヘッドがほとんどない。
データ構造を使用してメンテナンス中に検索するL2P領域を選択するために発生する可能性がある問題は、時間の経過とともにデータ構造の効率を低下させる可能性がある。ブロックが閉じられるとデータ構造が変わらないため、ブロック内で削除される、または上書きされるデータが増えるほど、データ構造が古くなり、例えば、データ構造内の有効なエントリは、前のものになるほど、これらの論理ブロックが今では異なるブロックを指すようになるため、有効ではなくなる。データ構造エントリの多くが古くなっている場合、ガベージコレクションプロセスは、ホスト書き込みレイテンシを増加させることなどによって、再び非効率的になる可能性がある。
その古くなっているデータ構造の問題に対処するために、ガベージコレクションのケイデンスをデータ構造エントリによって変更し、古くなっているデータ構造エントリが引き起こすレイテンシを、いくつかのホスト書き込みにわたり拡散させることができる。一般に、レイテンシの問題を制御するために、ガベージコレクションをホスト書き込みなどの動作にわたり分割することができる。この分割、またはそのような1つの動作に対して実行する作業量の決定は、ガベージコレクションに対するケイデンスと称される。ケイデンス比率は、
Figure 2021528783
として表されることができ、式中、Cはケイデンスであり、GCW(例えば、ガベージコレクション書き込み数)はガベージコレクション中にこのブロックを解放するために新しいブロックに再コピーするページ数であり、HW(例えば、ホスト書き込み)は固定値である。HWは、完全なガベージコレクションの実行に対応する、書き込まれるホストデータ量を示すように設定される。例えば、ブロックを解放するために9回のガベージコレクション書き込みを必要とし、1メガバイト(1mb)のホストデータがメモリデバイスに書き込まれた後にブロックを解放する必要がある場合、それらのケイデンスは、
Figure 2021528783
または書き込まれる111.12キロバイト(kb)のホストデータごとに1回のガベージコレクション書き込みである。
ケイデンスは、所与のブロックに関係するL2P領域の数を追跡することで、より効率的に計算されることができる。この追跡は、インデックスがブロックに対応し(例えば、インデックス1がブロック1に対応し)、インデックスでの値がL2P領域のカウントであるカウンタ配列によって達成されることができる。ただし、他の追跡構造を使用することもできる。追跡データ構造でのカウントは、所与のブロックについてのMBMでの1の数に等しい。したがって、カウントについての最大値はL2P領域の数に等しい。
この情報を使用して、ケイデンスは次のように計算されることができる。
Figure 2021528783
式中、L2PC[i]はカウンタアレイ内のインデックスi(ブロックiに対応)での値であり、L2PLoadThrは1回のガベージコレクション動作でロードするL2P領域の最大数の閾値である。L2PLoadThrは、動作に所望のホストレイテンシを達成するように設定されることができる。したがって、新しいケイデンス計算によって変更されるときに、ガベージコレクションは、1)所定の数のガベージコレクション書き込みが収集されてロードされ(例えば、キャッシュに)、新しいブロックに書き込む準備ができているとき、または2)有効なページを検索するためにロードされるL2P領域の数がL2PLoadThrを超えるとき、にサスペンドされる。サスペンド時に、バッファはフラッシュされ(例えば、ページは新しいブロックに書き込まれ)、例えば、ホスト書き込みデータを許容するために解放される。この方法でガベージコレクションを制限することにより、デバイスがガベージコレクションに対応することができる間(例えば、ガベージコレクションが完了することができる間)、ホストレイテンシは低減する。追加の詳細及び例を以下に説明する。
図1は、通信インタフェースを介して通信するように設定されるホストデバイス105及びメモリデバイス110を含む環境100の一例を示す。ホストデバイス105またはメモリデバイス110は、モノのインターネット(IoT)デバイス(例えば、冷蔵庫または他の機器、センサ、モーターまたはアクチュエータ、移動体通信デバイス、自動車、ドローンなど)のようなさまざまな製品150に含まれ、製品150の処理、通信、または制御をサポートすることができる。
メモリデバイス110は、メモリコントローラ115と、例えば、複数の個別のメモリダイ(例えば、三次元(3D)NANDダイのスタック)を含むメモリアレイ120とを備える。3Dアーキテクチャ半導体メモリ技術では、垂直構造は、積層され、ティアの数、物理ページ、それに応じてメモリデバイス(ストレージデバイスなど)の密度を増加させる。一例では、メモリデバイス110は、ホストデバイス105の個別のメモリまたはストレージデバイスコンポーネントであることができる。他の例では、メモリデバイス110は、集積回路(例えば、システムオンチップ(SOC)など)の一部であるか、ホストデバイス105の1つ以上の他のコンポーネントが積層されるか、その他の方法で含まれることができる。これらの例では、メモリデバイス110は、バスなどのインターリンク111を介してホストデバイス105のコンポーネントと通信する。したがって、本明細書で説明されるように、ホストまたはホストデバイス105の動作は、メモリデバイス110がホストデバイス105に統合されている場合でさえ、メモリデバイス110の動作とは異なる。
1つ以上の通信インタフェース(例えば、インターリンク111)を使用して、メモリデバイス110と、シリアルアドバンスドテクノロジーアタッチメント(SATA)インタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インタフェース、ユニバーサルシリアルバス(USB)インタフェース、ユニバーサルフラッシュストレージ(UFS)インタフェース、eMMC(商標)インタフェース、または1つ以上の他のコネクタもしくはインタフェースなどのホストデバイス105の1つ以上の他のコンポーネントとの間でデータを転送することができる。ホストデバイス105は、ホストシステム、電子デバイス、プロセッサ、メモリカードリーダー、またはメモリデバイス110の外部にある1つ以上の他の電子デバイスを含むことができる。いくつかの例では、ホスト105は、図7のマシン700を参照して考察されるコンポーネントの、ある部分または全部を含むマシンであることができる。
メモリコントローラ115は、ホスト105からインストラクションを受信することができ、メモリアレイ120のメモリセル、プレーン、サブブロック、ブロック、またはページのうちの1つ以上にデータを転送する(例えば、書き込む、または消去する)、またはそれらからデータを転送する(例えば、読み出す)などのために、メモリアレイ120と通信することができる。メモリコントローラ115は、とりわけ、1つ以上のコンポーネントまたは集積回路を含む回路またはファームウェアを含むことができる。例えば、メモリコントローラ115は、メモリアレイ120全体のアクセスを制御し、ホスト105とメモリデバイス110との間に変換層を提供するように構成される1つ以上のメモリ制御ユニット、回路、またはコンポーネントを含むことができる。
メモリマネージャ125は、とりわけ、さまざまなメモリ管理機能に関連する複数のコンポーネントまたは集積回路のような、回路またはファームウェアを含むことができる。本発明の説明の目的のために、例示的なメモリ動作及び管理機能は、NANDメモリのコンテキストで説明される。当業者は、不揮発性メモリの他の形態が類似のメモリ動作または管理機能を有することができることを認識するであろう。これらのようなNAND管理機能は、ウェアレベリング(例えば、ガベージコレクションまたは再利用)、エラー検出もしくは訂正、ブロックリタイア、または1つ以上の他のメモリ管理機能を含む。メモリマネージャ125は、ホストコマンド(例えば、ホストから受信するコマンド)をデバイスコマンド(例えば、メモリアレイの動作に関連するコマンドなど)にパースする、もしくはフォーマットすることができる、またはアレイコントローラ135、もしくはメモリデバイス110の1つ以上の他のコンポーネントについてデバイスコマンドを生成する(例えば、さまざまなメモリ管理機能を達成するために)ことができる。
メモリマネージャ125は、メモリデバイス110の1つ以上のコンポーネントに関連するさまざまな情報(例えば、メモリコントローラ115に結合される1つのメモリアレイまたは1つ以上のメモリセルに関連するさまざまな情報)を維持するように構成される1セットの管理テーブル130を含むことができる。例えば、管理テーブル130は、メモリコントローラ115に結合されるメモリセルの1つ以上のブロックについて、ブロックエイジ、ブロック消去カウント、エラー履歴、または1つ以上のエラーカウント(例えば、書き込み動作エラーカウント、読み出しビットエラーカウント、読み出し動作エラーカウント、消去エラーカウントなど)に関する情報を含むことができる。ある特定の例では、1つ以上のエラーカウントに検出されたエラーの数が閾値を上回る場合、ビットエラーは、訂正不可能なビットエラーと称されることができる。管理テーブル130は、とりわけ、訂正可能な、または訂正不可能なビットエラーのカウントを維持することができる。一例では、管理テーブル103は、変換テーブルまたはL2Pマッピングを含むことができる。
メモリマネージャ125は、データ構造を実装して使用し、ガベージコレクションなどの有効なページについてのL2Pテーブルを検索することを含む動作におけるメモリデバイス110のレイテンシを低減させることができる。この目的のために、メモリマネージャ125は、物理ブロックについてデータ構造(例えば、テーブル領域データ構造、追跡データ構造など)を維持するように構成される。データ構造は、L2Pテーブルの、L2Pマッピングテーブル領域のインジケーションを含む。一例では、L2Pテーブルは、メモリコントローラ115、またはメモリデバイス110の他のコンポーネントと共有されることができる、メモリマネージャ125についてのワーキングメモリよりも大きい。ただし、L2Pテーブル領域は、ワーキングメモリより大きくないため、L2P領域をワーキングメモリにロードしてその上で動作させることができる。
データ構造を効率的に管理するために、メモリマネージャ125は、データが書き込まれるときにデータ構造にメンテナンス動作を実行する。したがって、メモリコントローラ115は、論理ページ、及び論理ページに書き込まれるデータを含む書き込み要求(例えば、ホスト105からの)を受信するように構成される。メモリマネージャ125は、その論理ページと、データが書き込まれるNANDデバイスの物理ブロックの物理ページとの間のL2Pテーブルにエントリを確立する(例えば、更新する、または作成する)ように構成される。ここで、L2Pテーブルがワーキングメモリよりも大きい場合、エントリは、L2Pテーブルに及ぶ(例えば、これを網羅する)複数の領域のうちの1つの領域内にある。
メモリマネージャ125は、書き込み要求の物理ブロックに対応するデータ構造に、領域のインジケーションを書き込むように構成される。一例では、データ構造は物理ブロックに書き込まれる。一例では、データ構造は、ブロックとは別のアレイ120のメンテナンス領域に書き込まれる。メモリマネージャ125を含むことは、メモリマネージャが書き込み用にL2Pテーブル領域も選択したため、インジケーションを書き込むのに効率的であるが、メモリコントローラ115などの他のエンティティもまた書き込みを実行することができる。
一例では、データ構造はビットマップ(例えば、バイナリ配列)である。一例では、ビットマップは、L2Pテーブルに及ぶ複数の相互に排他的な領域の領域ごとに1ビットを含む。したがって、L2Pテーブル領域は互いにオーバーラップせず、すべてのL2Pテーブル領域の組み合わせはL2Pテーブル全体に及ぶ。ビットマップは、これらの領域のそれぞれについて1ビットを含む。一例では、L2Pテーブル領域は順序付けられており、ビットのインデックスは所与のL2Pテーブル領域の順序に対応する。例えば、L2Pテーブルには2つのL2Pテーブル領域があり、1つはL2Pテーブルの前半をカバーし、もう1つはL2Pテーブルの後半をカバーする場合、ビットマップのインデックス「0」は、前半の領域に対応し、ビットマップのインデックス「1」は、後半の領域に対応する。ただし、領域がL2Pテーブルの隣接部分をカバーする必要はなく(例えば、領域Aはテーブル内の領域Bの隣にあることができない)、それらの領域が特定の順序を有する必要もない。ただし、所与のL2Pテーブル領域をビットマップの所与のインデックスに割り当てるために使用されるどんな基準でも、一貫している必要がある(例えば、領域「Y」は常に同じインデックスにマッピングされる)。一例では、ビットマップ内のL2Pテーブル領域のインジケーション(例えば、所与のL2Pテーブル領域が一度でブロック内に物理ページを含むことを示すための)は、その領域のそれぞれのビット内の論理1(例えば、バイナリ「1」)である。
一例では、メモリマネージャ125は、物理ブロックのガベージコレクション動作中にデータ構造を読み出し、L2Pテーブルの限定された1セットの領域をワーキングメモリにロードするように構成される。メモリマネージャ125は、この限定された1セットの領域を検索して、有効なページを見つけて、そのブロックから別のブロックに移動させる。有効なページを移動させると、ブロックを消去してガベージコレクションを完了する。一例では、限定された1セットの領域にはない複数の領域のうちのいくつかの領域は、ガベージコレクションに使用されない。
一例では、メモリマネージャ125は、物理ブロックを消去することに応答して、データ構造を初期化するように構成される。したがって、ガベージコレクションが完了すると、ブロックについてのデータ構造は、既知の解放した状態に設定される。データ構造がビットマップである一例では、データ構造は、論理ゼロ(例えば、バイナリ「0」)をビットマップの各ビットに書き込むことによって初期化される。一例では、インジケーションは、初期化することによってのみ、設定解除される。この制限は、メンテナンス要件を減らし、他のコンポーネントについての予測性を高めるのに役立つ。したがって、ブロックが完全に書き込まれるときに、ブロックが消去されてデータ構造が初期化されるまで、データ構造は変わらない。また、L2P領域は、データ構造内に示されると、初期化まで「示されない」ことができない。
動作レイテンシ(例えば、ホスト書き込みレイテンシ)を制御するために、メモリマネージャ125は、追跡データ構造を維持するように構成される。一例では、追跡データ構造はアレイであり、ブロックに対応するアレイのインデックス、及びL2PテーブルからのL2P領域の数に対応するアレイの値は、インデックスによって示されるブロックを指す論理アドレスを含む。一例では、メモリマネージャ125は、追跡データ構造をメモリ内に維持する(例えば、それはアレイ120に書き込まれない)。
メモリマネージャ125は、ガベージコレクションが動作しているときに実行する動作数を計算するように構成される。したがって、所与のブロックについてのガベージコレクションは、すべての有効なページを新しいブロックに移動させることを伴い、ガベージコレクションは、中断される(例えば、サスペンドされる)可能性があるため、いくつかの間隔にわたって動作する。計算されたガベージコレクション動作数は、これらの間隔のうちの1つで実行する動作数である。
一例では、計算は、ガベージコレクションについてのケイデンス計算にL2P領域検索比率を追加することを含む。上記のように、ケイデンスは、ホスト105によって書き込まれている、所与のある特定のデータ量を実行するガベージコレクション動作の数の比率である。L2P領域検索比率は、ブロック上で有効なページを検索することに関係するL2P領域の数も制限する。一例では、ケイデンス計算にL2P領域検索比率を追加することは、ガベージコレクション書き込みにL2P領域検索比率を追加することを含む。一例では、L2P領域検索比率は、ブロックデータ構造内のエントリのカウントに等しい分子を含み、これらのエントリはそれぞれ、物理ブロックへの論理ページ対応を示す。一例では、L2P領域検索比率は、負荷閾値パラメータに等しい分母を含む。これらの例は次のように表されることができる。
Figure 2021528783
式中、L2PC[i]はカウンタアレイ内のインデックスi(iに対応)での値であり、L2PLoadThrは1回のガベージコレクション動作でロードするL2P領域の最大数の閾値である。
一例では、メモリマネージャ125は、ブロックデータ構造内のエントリのカウンタが負荷閾値パラメータよりも大きいことに応答して、ガベージコレクションをサスペンドするように構成される。このサスペンド時に、ガベージコレクションバッファをアレイ120にフラッシュすることができ、新しいホスト書き込みをバッファにロードして、アレイ120に書き込む。
アレイコントローラ135は、とりわけ、メモリコントローラ115に結合されるメモリデバイス110の1つ以上のメモリセルへのデータの書き込み、それらからのデータの読み出し、またはそれらの消去に関連するメモリ動作を制御するように構成される回路またはコンポーネントを含むことができる。メモリ動作は、例えば、ホスト105から受信する、またはメモリマネージャ125によって内部に生成される(例えば、ウェアレベリング、エラー検出または訂正などに関連して)ホストコマンドに基づくことができる。
アレイコントローラ135は、エラー訂正コード(ECC)コンポーネント140を含むことができ、これは、とりわけ、メモリコントローラ115に結合されるメモリデバイス110の1つ以上のメモリセルへのデータの書き込み、またはそれらからのデータの読み出しに関連するエラーを検出する、または訂正するように構成されるECCエンジンまたは他の回路を含むことができる。メモリコントローラ115は、ホスト105とメモリデバイス110との間で転送されるデータの完全性を維持しながら、または格納されたデータの完全性を維持しながら(例えば、冗長RAIDストレージなどを使用して)、データのさまざまな動作またはストレージに関連するエラー発生(例えば、ビットエラー、動作エラーなど)を能動的に検出して、それらから回復するように構成されることができ、今後のエラーを防ぐために、障害のあるメモリリソース(例えば、メモリセル、メモリアレイ、ページ、ブロックなど)を除去する(例えば、リタイアする)ことができる。
メモリアレイ120は、例えば、複数のデバイス、プレーン、サブブロック、ブロック、またはページに配列されるいくつかのメモリセルを含むことができる。一例として、48GB TLC NANDメモリデバイスは、ページあたり18,592バイト(B)のデータ(16,384+2208バイト)、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4つ以上のプレーンを含むことができる。別の例として、32GB MLCメモリデバイス(セルあたり2ビットのデータ(すなわち、4つのプログラム可能な状態)を格納する)は、ページあたり18,592バイト(B)のデータ(16,384+2208バイト)、ブロックあたり1024ページ、プレーンあたり548ブロック、デバイスあたり4プレーンを含むことができるが、対応するTLCメモリデバイスの、必要な書き込み時間の半分であり、プログラム/消去(P/E)サイクルの2倍である。他の例は、他の数または配置を含むことができる。いくつかの例では、メモリデバイスまたはその一部は、SLCモードで、または所望のMLCモード(TLC、QLCなどのような)で選択的に動作することができる。
動作中、データは、一般に、ページ単位でNANDメモリデバイス110に書き込まれ、またはそれから読み出され、ブロック単位で消去される。ただし、1つ以上のメモリ動作(例えば、読み出し、書き込み、消去など)は、必要に応じて、メモリセルのより大きな、またはより小さなグループに実行されることができる。NANDメモリデバイス110のデータ転送サイズは、一般にページと称され、ホストのデータ転送サイズは、一般にセクタと称される。
データのページは、ユーザデータのバイト数(例えば、データのセクタ数を含むデータペイロード)、及びその対応するメタデータを含むことができるが、ページサイズは、ユーザデータを格納するために使用されるバイト数のみを指すことが多い。一例として、4KBのページサイズを有するデータのページは、4KBのユーザデータ(例えば、512Bのセクタサイズを想定する8セクタ)だけでなく、完全性データ(例えば、コードデータのエラー検出または訂正)、アドレスデータ(例えば、論理アドレスデータなど)、またはユーザデータに関連する他のメタデータなどのユーザデータに対応する数バイト(例えば、32B、54B、224Bなど)のメタデータを含むことができる。
異なるタイプのメモリセルまたはメモリアレイ120は、異なるページサイズを提供することができる、またはそれに関連する異なるメタデータ量を必要とする場合がある。例えば、異なるメモリデバイスタイプは、異なるビットエラーレートを有することができることにより、データのページの完全性を確保するために必要なメタデータ量が異なるという結果になる可能性がある(例えば、ビットエラーレートの高いメモリデバイスは、ビットエラーレートの低いメモリデバイスよりも多いバイトのエラー訂正コードデータを必要とする可能性がある)。一例として、マルチレベルセル(MLC)NANDフラッシュデバイスは、対応するシングルレベルセル(SLC)NANDフラッシュデバイスよりも高いビットエラーレートを有することができる。そのようなものとして、MLCデバイスは、対応するSLCデバイスよりも多いメタデータバイトをエラーデータに必要とする可能性がある。
図2は、ワーキングメモリ220内の論理対物理テーブル領域225の一例を示す。完全なL2Pテーブル215は、NANDアレイ210に格納される。ただし、完全なL2Pテーブルは、ワーキングメモリ220内に適合しない。したがって、L2Pテーブル215を検索するときに、処理回路205(例えば、メモリマネージャ、メモリコントローラなど)は、L2Pテーブル領域225をアレイ210からワーキングメモリにロードする。
図3は、論理対物理領域310、物理ブロック315、及び追跡データ構造325の間の関係の一例を示す。ここで、追跡データ構造は、インデックスがゼロから始まるバイナリ配列として編成される。したがって、所与のテーブル領域(例えば、領域2)に対応する配列の要素は、領域マイナス1である(例えば、追跡データ構造325のインデックス1は領域2に対応する)。データ構造325内の各インデックスは、L2Pテーブル305内の単一のテーブル領域に一意に対応する。ビットマップまたはバイナリ配列構造は、追跡データ構造の可能な実装として提示されるが、構造化データファイル(例えば、拡張可能マークアップ言語(XML)など)、データベースなどのような他の構造を使用することができる。さらに、インジケーションは、文字または他の記号を含むことができる。
これらのエンティティ間の関係は、ブロック315へのホスト(または他の)書き込み中に確立されることができる。L2Pテーブル305は、領域N310を含む領域にセグメント化される。論理対物理ページの関係は、領域N310に格納される。ブロック315内の物理ページ320は、書き込み用のデータを格納するために使用される。インデックスN−1 330は、領域N310に対応する。したがって、アレイ要素335は、領域N310がブロック315に関する関係を有することを示すために、バイナリ「1」に更新される。バイナリ「0」は、対応する領域がブロック315に関する関係を有さないことを示す。ブロック315が満たされるか、閉じられる場合(例えば、新しい要求を書き込む、解放されたページがこれ以上ない場合)、データ構造325は更新されなくなる。
図4は、ブロックXについての論理対物理領域410、物理ブロックX415、及び追跡データ構造405の間の関係の一例を示す。
ここで、追跡データ構造405は、ブロックX415に関するL2Pテーブル領域のインジケーションが投入される。ブロックX415についてのガベージコレクション中に、追跡データ構造405を読み出し、ガベージコレクションを完了するためにどのL2Pテーブル領域をワーキングメモリにロードするかを決定する。ここで、追跡データ構造は、領域N410がブロックX415に関するエントリを含むことを示す。したがって、領域Nを不揮発性ストレージにロードすることができる。
ワーキングメモリにロードされると、領域N410は、LBA4及びLBA3のようなブロックX415などを指すエントリについて検索される。次に、これらのページは、別のブロックに書き込まれ、ブロックX415に関して無効とマーク付けされる。このプロセスは、ブロックX415内のすべての有効なページが移動するまで繰り返され、有効なデータがないブロックX415を残す。次に、ブロックX415を消去して、ブロックXのガベージコレクションを完了することができる。上記のように、追跡データ構造405は、従来のアプローチを介してガベージコレクションプロセスを完了するために、ワーキングメモリにロードされる必要があるL2Pテーブル領域の数を減らす。
図5A〜5Bは、ブロック内の検証コンポーネントについてのストレージ構成を示す。図5Aは、ブロックの専用部分がコントローラメタデータ用に留保される編成を示す。したがって、ブロックは、ユーザデータ部分505及び補助部分510に分割される。テーブル領域追跡のためのデータ構造は、「INFO」とマーク付けされるセグメントなどの補助部分に格納されることができる。対照的に、図5Bは、補助部分がユーザデータセグメント全体を通して散在する結果として、異種部分515をもたらす代替の編成を示す。ただし、「INFO」補助部分520は、依然としてブロック上に位置しており、ブロックが最後に書き込まれたときのそのブロックのデータ構造を格納することができる。データ構造を格納するために使用されることができる他の位置は、デバイス管理用にリザーブされるメモリデバイスのエリアを含む。
図6は、NAND動作レイテンシを制御する方法600のフローチャートを示す。方法600の動作は、本明細書に記載されているような電子ハードウェア(例えば、回路)によって実行される。
動作605では、書き込み要求をNANDデバイスのコントローラで受信する。
動作610では、閉じられている物理ブロックに実行するガベージコレクション動作数を計算する。一例では、ケイデンス計算は、ガベージコレクション書き込みと、ホスト書き込みとの間の比率である。一例では、ガベージコレクション書き込みは、物理ブロックから新しい物理ブロックにすべての有効なページを移動させるガベージコレクション動作のカウントであり、ホスト書き込みは、ホスト書き込みのカウントを定義するパラメータであり、このホスト書き込みのカウントを上回るガベージコレクション書き込みを拡散させる。一例では、計算は、ガベージコレクションについてのケイデンス計算にL2P領域検索比率を追加することを含む。一例では、ケイデンス計算にL2P領域検索比率を追加することは、ガベージコレクション書き込みにL2P領域検索比率を追加することを含む。一例では、L2P領域検索比率は、ブロックデータ構造内のエントリのカウントに等しい分子を含み、これらのエントリは、物理ブロックへの論理ページ対応を各示す。一例では、L2P領域検索比率は、負荷閾値パラメータに等しい分母を含む。
一例では、方法600の動作は、第二書き込み要求を受信すること、ブロックデータ構造内のエントリのカウンタが負荷閾値パラメータよりも大きいことに応答してガベージコレクション動作の検索をサスペンドすること、及び第二書き込み要求を実行することをも含む。
動作615では、ガベージコレクション動作を物理ブロック上で実行する。一例では、各ガベージコレクション動作は、物理ブロック内の所与のページについて動作620〜625を含む。
動作625では、L2Pテーブルを検索し、ページが有効であるかどうかを決定する。一例では、検索は、L2Pテーブル領域ごとにエントリを含むブロックデータ構造によって指示される。一例では、ブロックデータ構造はビットマップである。一例では、ブロックデータ構造内のエントリはシングルビットである。一例では、エントリ内の論理1は、ビットの位置に対応するL2P領域が物理ブロックに対応した論理ページを含むことを示す。一例では、ブロックデータ構造を物理ブロックに書き込む。
一例では、NANDデバイスはワーキングメモリを含む/一例では、L2Pテーブルはワーキングメモリよりも大きい。一例では、L2P領域はワーキングメモリよりも大きくはない。一例では、L2Pテーブルを検索する(動作625)ことは、論理ページを示すブロックデータ構造内の対応するエントリが物理ブロックに対応したことに応答して、L2P領域をワーキングメモリにロードすることを含む。
動作630では、ページが有効であることに応答して、ベージを新しい物理ブロックに書き込む。
動作635では、ページを新しい物理ブロックに書き込むことを完了することに応答して、書き込み要求を実行する。
一例では、方法600の動作は、第二書き込み要求を受信すること、ガベージコレクション動作の閾値数がガベージコレクションサイクルでは物理ブロック上に実行されたことに応答してガベージコレクション動作の検索をサスペンドすること、及び第二書き込み要求を実行することを含むように拡張されることができる。
図7は、本明細書に考察される技法(例えば、方法論)のいずれか1つ以上を実行することができる、一例のマシン700のブロック図を示す。代替の実施形態では、マシン700は、スタンドアロンデバイスとして動作する場合もあれば、他のマシンに接続される(例えば、ネットワーク化される)場合もある。ネットワーク化された展開では、マシン700は、サーバクライアントネットワーク環境においてサーバマシン、クライアントマシン、または両方の能力で動作することができる。一例では、マシン700は、ピアツーピア(P2P)(または他の分散型)ネットワーク環境でピアマシンとして機能することができる。マシン700は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、IoTデバイス、自動車システム、またはそのマシンによって実行されるアクションを指定するインストラクション(シーケンシャルまたはその他の方法)を実行することが可能な任意のマシンであることができる。さらに、単一マシンのみを示しているが、用語「マシン」は、クラウドコンピューティング、サービスとしてのソフトウェア(SaaS)、他のコンピュータクラスタ構成などの本明細書に考察される方法論のうちのいずれか1つ以上を実行するために1セット(または複数のセット)のインストラクションを個別に、または合わせて実行するマシンの任意の集合体を含むとも解釈されるものとする。
本明細書に記載される例は、論理、構成要素、デバイス、パッケージ、または機構を含み得るか、またはそれらによって動作し得る。回路網は、ハードウェア(例えば、単純な回路、ゲート、ロジックなど)を含む有形のエンティティに実装された回路の集合(例えば、セット)である。回路網の構成要素は、時間の経過及び基礎となるハードウェアの変動性に柔軟に対応し得る。回路網は、単独でまたは組み合わせて、動作時に特定のタスクを実行することができるメンバーを含む。一例では、回路網のハードウェアは、特定の動作を実施するように不変に設計される場合がある(例えば、ハードウェアに組み込まれている)。一例では、回路網のハードウェアは、特定の操作のインストラクションを符号化するために、物理的に修正された(例えば、不変密集粒子などの磁気的に、電気的に可動な配置)コンピュータ可読媒体を含む可変に接続された物理的構成要素(例えば、実行ユニット、トランジスタ、単純な回路)を含む場合がある。物理的構成要素を接続する際に、ハードウェア構成物の基礎となる電気的特性は、例えば、絶縁体から導体に、またはその逆に変更される。このインストラクションにより、関係するハードウェア(実行ユニットまたはロード機構など)は、可変接続を介してハードウェア内に回路網の構成要素を作成し、動作中に特定のタスクの一部を実行できる。したがって、コンピュータ可読媒体は、デバイスが動作しているときに、回路網の他の構成要素に通信可能に結合される。一例では、物理的構成要素のいずれも、複数の回路網の複数の要素の中で使用できる。例えば、動作中、実行ユニットは、ある時点で第1の回路網の第1の回路で使用され、別の時点で第1の回路網の第2の回路によってまたは第2の回路網の第3の回路によって再利用される場合がある。
マシン(例えば、コンピュータシステム)700(例えば、ホストデバイス105、メモリデバイス110など)は、ハードウェアプロセッサ702(例えば、中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、ハードウェアプロセッサコア、またはメモリコントローラ115のようなそれらの任意の組み合わせなど)、メインメモリ704及びスタティックメモリ706を含むことができ、これらの一部またはすべては、インターリンク(例えば、バス)708を介して互いに通信することができる。マシン700は、ディスプレイユニット710、英数字入力デバイス(例えば、キーボード)712、及びユーザーインタフェース((UI)ナビゲーションデバイス(例えば、マウス)714をさらに含むことができる。一例では、ディスプレイユニット710、入力デバイス712、及びUIナビゲーションデバイス714は、タッチスクリーンディスプレイであることができる。マシン700は、ストレージデバイス(例えば、ドライブユニット)716、信号発生デバイス718(例えば、スピーカ)、ネットワークインタフェースデバイス720、及び全地球測位システム(GPS)センサ、コンパス、加速度計、または他のセンサなどの1つ以上のセンサ716をさらに含むことができる。マシン700は、1つ以上の周辺機器(例えば、プリンタ、カードリーダなど)と通信する、またはそれらを制御するために、シリアル(例えば、ユニバーサルシリアルバス(USB))、パラレル、または他の有線もしくは無線(例えば、赤外線(IR)、近距離無線通信(NFC)など)接続などの出力コントローラ728を含むことができる。
ストレージデバイス716は、機械可読媒体722を含むことができ、この機械可読媒体には、本明細書に説明される技法または機能のうちの任意の1つ以上を具現化する、またはそれらによって利用される、1セット以上のデータ構造またはインストラクション724(例えば、ソフトウェア)が格納される。インストラクション724もまた、マシン700によるそれらの実行中に、メインメモリ704内に、スタティックメモリ706内に、またはハードウェアプロセッサ702内に、完全に、または少なくとも部分的に存在することができる。一例では、ハードウェアプロセッサ702、メインメモリ704、スタティックメモリ706、またはストレージデバイス716の1つまたは任意の組み合わせは、機械可読媒体722を構成することができる。
機械可読媒体722は、単一の媒体として示されているが、用語「機械可読媒体」は、1つ以上のインストラクション724を格納するように構成された単一の媒体または複数の媒体(例えば、集中型もしくは分散型のデータベース、または関連付けられたキャッシュ及びサーバ)を含む場合がある。
用語「機械可読媒体」は、マシン700による実行のためのインストラクションを格納する、符号化する、または搬送することができ、マシン700に、本開示の技術のいずれか1つ以上を実行させる、またはそのようなインストラクションによって使用される、もしくはそのようなインストラクションと関連付けられるデータ構造を格納する、符号化する、または搬送することができる任意の媒体を含むことができる。非限定的な機械可読媒体の例は、ソリッドステートメモリ、ならびに光及び磁気媒体を含むことができる。一例では、大容量の機械可読媒体は不変(例えば、静止)質量を有する複数の粒子を使用する機械可読媒体を含む。したがって、大容量の機械可読媒体は一時的な伝播信号ではない。大容量の機械可読媒体の具体的な例は、半導体メモリデバイス(例えば、電気的プログラマブル読み出し専用メモリ(EPROM)、電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)及びフラッシュメモリデバイスなどの不揮発性メモリ、内蔵ハードディスク及びリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD−ROM及びDVD−ROMディスクを含み得る。
ストレージデバイス721に格納されるインストラクション724(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)など)または他のデータは、プロセッサ702による使用のためにメモリ704からアクセスされることができる。メモリ704(例えば、DRAM)は、典型的には、高速であるが揮発性であり、したがって、「オフ」状態にある間を含む長期ストレージに適しているストレージデバイス721(例えば、SSD)とは異なるタイプのストレージである。ユーザまたはマシン700が使用するインストラクション724またはデータは、典型的には、プロセッサ702が使用するためにメモリ704にロードされる。メモリ704が一杯になると、メモリ704を補うために、ストレージデバイス721からの仮想空間を割り当てることができるが、ストレージデバイス721が典型的には、メモリ704よりも遅く、書き込み速度が典型的には、読み取り速度の少なくとも2倍遅いので、仮想メモリの使用は、ストレージデバイスのレイテンシに起因してユーザエクスペリエンスを大幅に低下させる場合がある(メモリ704、例えば、DRAMとは対照的に)。さらに、仮想メモリのためのストレージデバイス721の使用は、ストレージデバイス721の使用可能な寿命を大幅に減らす可能性がある。
仮想メモリとは対照的に、仮想メモリ圧縮(例えば、Linux(登録商標)カーネル機能「ZRAM」)は、メモリの一部を圧縮ブロックストレージとして使用し、ストレージデバイス721へのページングを回避する。ページングは、そのようなデータをストレージデバイス721に書き込むことが必要であるまで圧縮ブロックで行われる。仮想メモリ圧縮は、メモリ704の使用可能なサイズを増加させ、ストレージデバイス721での摩耗を減少させる。
モバイル電子デバイスについて最適化されるストレージデバイス、またはモバイルストレージは、従来、MMCソリッドステートストレージデバイス(例えば、マイクロセキュアデジタル(microSD(商標))カードなど)を含む。MMCデバイスは、ホストデバイスとの複数のパラレルインタフェース(例えば、8ビットパラレルインタフェース)を含み、多くの場合、取り外し可能であり、ホストデバイスからコンポーネントを分離させる。対照的に、eMMC(商標)デバイスは、回路基板に取り付けられ、ホストデバイスのコンポーネントと見なされ、シリアルATA(商標)(シリアルAT(Advanced Technology)アタッチメント、またはSATA)ベースのSSDデバイスに匹敵する読み出し速度を有する。ただし、仮想デバイスまたは拡張現実デバイスを完全に有効にしたり、ネットワーク速度を上げるために利用したりするために、モバイルデバイスのパフォーマンスに対する需要は増え続けている。この需要に応えて、ストレージデバイスは、パラレル通信インタフェースからシリアル通信インタフェースに移行している。コントローラ及びファームウェアを含むユニバーサルフラッシュストレージ(UFS)デバイスは、専用の読み出し/書き込み経路を備える低電圧差動信号(LVDS)シリアルインタフェースを使用してホストデバイスと通信し、読み出し/書き込み速度をさらに向上させる。
インストラクション724はさらに、いくつかの転送プロトコル(例えば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザーデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)など)のうちの任意の1つを利用するネットワークインタフェースデバイス720を経由して伝送媒体を使用して通信ネットワーク726を介して送信または受信される場合がある。通信ネットワークの例は、中でもローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、携帯電話網(例えば、セルラーネットワーク)、従来型電話サービス(POTS)ネットワーク、及び無線データネットワーク(例えば、Wi−Fi(登録商標)として知られる規格の電気電子技術者協会(IEEE)802.11ファミリ、WiMax(登録商標)として知られる規格のIEEE802.16ファミリ)、規格のIEEE802.15.4ファミリ、ピアツーピア(P2P)ネットワークを含む場合がある。一例では、ネットワークインタフェースデバイス720は、通信ネットワーク726に接続するために1つ以上の物理的なジャック(例えば、Ethernet、同軸ジャック、もしくは電話ジャック)または1つ以上のアンテナを含む場合がある。一例では、ネットワークインタフェースデバイス720は、単一入力複数出力(SIMO)技術、複数入力複数出力(MIMO)技術、または複数入力単一出力(MISO)技術のうちの少なくとも1つを使用して無線通信するために複数のアンテナを含む場合がある。用語「伝送媒体」は、マシン700による実行のためのインストラクションを格納する、符号化する、または搬送することができる任意の無形媒体を含み、そのようなソフトウェアの通信を容易にするためにデジタルもしくはアナログ通信信号、または他の無形媒体を含むと解釈されるものとする。
追加の実施例
実施例1は、NAND動作レイテンシを制御するデバイスであり、前記デバイスは、いくつかのブロックを含むNANDアレイであって、前記いくつかの物理ブロックの少なくとも1つの物理ブロックが閉じられている、前記NANDアレイと、コントローラとを含み、前記コントローラは、書き込み要求を受信し、閉じられている前記物理ブロック上で実行するガベージコレクション動作数を計算し、前記計算がガベージコレクションについてのケイデンス計算への論理対物理(L2P)領域検索比率の追加を含み、前記計算されたガベージコレクション動作数を前記物理ブロック上で実行し、各ガベージコレクション動作が、ページを前記物理ブロック内に与えられると、L2Pテーブルを検索して前記ページが有効であるかどうかを判定し、L2Pテーブル領域ごとにエントリを含むブロックデータ構造によって前記検索が指示され、前記L2Pテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示し、前記ページが有効であることに応答して前記ページを前記いくつかのブロックのうちの新しい物理ブロックに書き込む前記コントローラを含み、前記計算されたガベージコレクション動作数が実行されることに応答して前記書き込み要求を実行する。
実施例2では、前記L2P領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリのカウントに等しい分子を含む、実施例1に記載の発明の主題。
実施例3では、前記L2P領域検索比率は、負荷閾値パラメータに等しい分母を含む、実施例2に記載の発明の主題。
実施例4では、前記コントローラは、第二書き込み要求を受信し、前記ブロックデータ構造内の前記エントリのカウントが前記負荷閾値パラメータよりも大きいことに応答して前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行する、ように構成される、実施例3に記載の発明の主題。
実施例5では、前記ケイデンス計算に前記L2P領域検索比率を追加するために、前記コントローラは、前記ガベージコレクション書き込みに前記L2P領域検索比率を追加する、実施例4に記載の発明の主題。
実施例6では、前記コントローラは、第二書き込み要求を受信し、ガベージコレクション動作の閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答して前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行する、ように構成される、実施例1〜5のいずれかに記載の発明の主題。
実施例7では、前記ケイデンス計算は、ガベージコレクション書き込みとホスト書き込みとの間の比率であり、前記ガベージコレクション書き込みは、すべての有効なページを前記物理ブロックから前記新しい物理ブロックに移動させるガベージコレクション動作のカウントであり、前記ホスト書き込みは、ホスト書き込みのカウントを定義するパラメータであり、前記ホスト書き込みのカウントを上回る前記ガベージコレクション書き込みを拡散させる、実施例1〜6のいずれかに記載の発明の主題。
実施例8では、前記ブロックデータ構造はビットマップである、実施例1〜7のいずれかに記載の発明の主題。
実施例9では、前記データ構造内のエントリはシングルビットである、実施例8に記載の発明の主題。
実施例10では、エントリ内の論理1は、前記ビットの位置に対応するL2P領域が前記物理ブロックに対応した論理ページを含むことを示す、実施例9に記載の発明の主題。
実施例11では、前記データ構造は前記物理ブロックに書き込まれる、実施例1〜10のいずれかに記載の発明の主題。
実施例12では、前記デバイスは、ワーキングメモリを含み、前記L2Pテーブルは、前記ワーキングメモリよりも大きく、L2P領域は、前記ワーキングメモリよりも大きくない、実施例1〜11のいずれかに記載の発明の主題。
実施例13では、前記L2Pテーブルを検索するために、論理ページを示す前記ブロックデータ構造内の対応するエントリが前記物理ブロックに対応したことに応答して、前記コントローラは、L2P領域を前記ワーキングメモリにロードする、実施例12に記載の発明の主題。
実施例14は、NAND動作レイテンシを制御する方法であり、前記方法は、書き込み要求をNANDデバイスのコントローラで受信し、閉じられている物理ブロック上で実行するガベージコレクション動作数を計算し、前記計算することがガベージコレクションについてのケイデンス計算に論理対物理(L2P)領域検索比率を追加することを含み、前記計算されたガベージコレクション動作数を前記物理ブロック上で実行し、各ガベージコレクション動作が、ページを前記物理ブロック内に与えられると、L2Pテーブルを検索して前記ページが有効であるかどうかを判定し、前記検索することがL2Pテーブル領域ごとにエントリを含むブロックデータ構造によって指示され、前記L2Pテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示し、前記ページが有効であることに応答して前記ページを新しい物理ブロックに書き込むことを含み、前記計算されたガベージコレクション動作数が実行されることに応答して前記書き込み要求を実行することを含む。
実施例15では、前記L2P領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリのカウントに等しい分子を含む、実施例14に記載の発明の主題。
実施例16では、前記L2P領域検索比率は、負荷閾値パラメータに等しい分母を含む、実施例15に記載の発明の主題。
実施例17では、第二書き込み要求を受信し、前記ブロックデータ構造内の前記エントリのカウントが前記負荷閾値パラメータよりも大きいことに応答して前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行することを含む、実施例16の発明の主題。
実施例18では、前記L2P領域検索比率を前記ケイデンス計算に追加することは、前記L2P領域検索比率を前記ガベージコレクション書き込みに追加することを含む、実施例17に記載の発明の主題。
実施例19では、第二書き込み要求を受信し、ガベージコレクション動作の閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答して前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行することを含む、実施例14〜18のいずれかに記載の発明の主題。
実施例20では、前記ケイデンス計算は、ガベージコレクション書き込みとホスト書き込みとの間の比率であり、前記ガベージコレクション書き込みは、すべての有効なページを前記物理ブロックから前記新しい物理ブロックに移動させるガベージコレクション動作のカウントであり、前記ホスト書き込みは、ホスト書き込みのカウントを定義するパラメータであり、前記ホスト書き込みのカウントを上回る前記ガベージコレクション書き込みを拡散させる、実施例14〜19のいずれかに記載の発明の主題。
実施例21では、前記ブロックデータ構造はビットマップである、実施例14〜20のいずれかに記載の発明の主題。
実施例22では、前記データ構造内のエントリはシングルビットである、実施例21に記載の発明の主題。
実施例23では、エントリ内の論理1は、前記ビットの位置に対応するL2P領域が前記物理ブロックに対応した論理ページを含むことを示す、実施例22に記載の発明の主題。
実施例24では、前記データ構造は前記物理ブロックに書き込まれる、実施例14〜23のいずれかに記載の発明の主題。
実施例25では、前記NANDデバイスは、ワーキングメモリを含み、前記L2Pテーブルは、前記ワーキングメモリよりも大きく、L2P領域は、前記ワーキングメモリよりも大きくない、実施例14〜24のいずれかに記載の発明の主題。
実施例26では、前記L2Pテーブルを検索することは、論理ページを示す前記ブロックデータ構造内の対応するエントリが前記物理ブロックに対応したことに応答して、L2P領域を前記ワーキングメモリにロードすることを含む、実施例25に記載の発明の主題。
実施例27は、NAND動作レイテンシを制御するためのインストラクションを含む機械可読媒体であり、前記インストラクションは、マシンの処理回路によって実行されるときに、NANDデバイスのコントローラで書き込み要求を受信し、閉じられている物理ブロック上で実行するガベージコレクション動作数を計算し、前記計算することがガベージコレクションについてのケイデンス計算に論理対物理(L2P)領域検索比率を追加することを含み、前記計算されたガベージコレクション動作数を前記物理ブロック上で実行し、各ガベージコレクション動作が、ページを前記物理ブロック内に与えられると、L2Pテーブルを検索して前記ページが有効であるかどうかを判定し、前記検索することがL2Pテーブル領域ごとにエントリを含むブロックデータ構造によって指示され、前記L2Pテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示し、前記ページが有効であることに応答して前記ページを新しい物理ブロックに書き込むことを含み、前記計算されたガベージコレクション動作数が実行されることに応答して前記書き込み要求を実行することを含む動作を前記処理回路に実行させる。
実施例28では、前記L2P領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリのカウントに等しい分子を含む、実施例27に記載の発明の主題。
実施例29では、前記L2P領域検索比率は、負荷閾値パラメータに等しい分母を含む、実施例28に記載の発明の主題。
実施例30では、前記動作は、第二書き込み要求を受信し、前記ブロックデータ構造内の前記エントリのカウントが前記負荷閾値パラメータよりも大きいことに応答して、前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行することを含む、実施例29に記載の発明の主題。
実施例31では、前記L2P領域検索比率を前記ケイデンス計算に追加することは、前記L2P領域検索比率を前記ガベージコレクション書き込みに追加することを含む、実施例30に記載の発明の主題。
実施例32では、前記動作は、第二書き込み要求を受信し、ガベージコレクション動作の閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答して前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行することを含む、実施例27〜31のいずれかに記載の発明の主題。
実施例33では、前記ケイデンス計算は、ガベージコレクション書き込みとホスト書き込みとの間の比率であり、前記ガベージコレクション書き込みは、すべての有効なページを前記物理ブロックから前記新しい物理ブロックに移動させるガベージコレクション動作のカウントであり、前記ホスト書き込みは、ホスト書き込みのカウントを定義するパラメータであり、前記ホスト書き込みのカウントを上回る前記ガベージコレクション書き込みを拡散させる、実施例27〜32のいずれかに記載の発明の主題。
実施例34では、前記ブロックデータ構造はビットマップである、実施例27〜33のいずれかに記載の発明の主題。
実施例35では、前記データ構造内のエントリはシングルビットである、実施例34に記載の発明の主題。
実施例36では、エントリ内の論理1は、前記ビットの位置に対応するL2P領域が前記物理ブロックに対応した論理ページを含むことを示す、実施例35に記載の発明の主題。
実施例37では、前記データ構造は前記物理ブロックに書き込まれる、実施例27〜36のいずれかに記載の発明の主題。
実施例38では、前記NANDデバイスは、ワーキングメモリを含み、前記L2Pテーブルは、前記ワーキングメモリよりも大きく、L2P領域は、前記ワーキングメモリよりも大きくない、実施例27〜37のいずれかに記載の発明の主題。
実施例39では、前記L2Pテーブルを検索することは、論理ページを示す前記ブロックデータ構造内の対応するエントリが前記物理ブロックに対応したことに応答して、L2P領域を前記ワーキングメモリにロードすることを含む、実施例38に記載の発明の主題。
実施例40は、NAND動作レイテンシを制御するシステムであり、前記システムは、NANDデバイスのコントローラで書き込み要求を受信する手段と、閉じられている物理ブロック上で実行するガベージコレクション動作数を計算する手段であって、前記計算することがガベージコレクションについてのケイデンス計算に論理対物理(L2P)領域検索比率を追加することを含む、前記計算する手段と、前記計算されたガベージコレクション動作数を前記物理ブロック上で実行する手段であって、各ガベージコレクション動作が、ページを前記物理ブロック内に与えられると、前記ページが有効であるかどうかを判定するためにL2Pテーブルを検索する手段であって、前記検索することがL2Pテーブル領域ごとにエントリを含むブロックデータ構造によって指示され、前記L2Pテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示す、前記検索する手段、及び前記ページが有効であることに応答して前記ページを新しい物理ブロックに書き込む手段を含む、前記実行する手段と、前記計算されたガベージコレクション動作数が実行されることに応答して前記書き込み要求を実行する手段とを含む。
実施例41では、前記L2P領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリのカウントに等しい分子を含む、実施例40に記載の発明の主題。
実施例42では、前記L2P領域検索比率は、負荷閾値パラメータに等しい分母を含む、実施例41に記載の発明の主題。
実施例43では、第二書き込み要求を受信する手段と、前記ブロックデータ構造内の前記エントリのカウントが前記負荷閾値パラメータよりも大きいことに応答してガベージコレクション動作をサスペンドする手段と、前記第二書き込み要求を実行する手段とを含む、実施例42に記載の発明の主題。
実施例44では、前記L2P領域検索比率を前記ケイデンス計算に追加する前記手段は、前記L2P領域検索比率を前記ガベージコレクション書き込みに追加することを含む、実施例43に記載の発明の主題。
実施例45では、第二書き込み要求を受信する手段と、ガベージコレクション動作の閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答してガベージコレクション動作をサスペンドする手段と、前記第二書き込み要求を実行する手段とを含む、実施例40〜44のいずれかに記載の発明の主題。
実施例46では、前記ケイデンス計算は、ガベージコレクション書き込みとホスト書き込みとの間の比率であり、前記ガベージコレクション書き込みは、すべての有効なページを前記物理ブロックから前記新しい物理ブロックに移動させるガベージコレクション動作のカウントであり、前記ホスト書き込みは、ホスト書き込みのカウントを定義するパラメータであり、前記ホスト書き込みのカウントを上回る前記ガベージコレクション書き込みを拡散させる、実施例40〜45のいずれかに記載の発明の主題。
実施例47では、前記ブロックデータ構造はビットマップである、実施例40〜46のいずれかに記載の発明の主題。
実施例48では、前記データ構造内のエントリはシングルビットである、実施例47に記載の発明の主題。
実施例49では、エントリ内の論理1は、前記ビットの位置に対応するL2P領域が前記物理ブロックに対応した論理ページを含むことを示す、実施例48に記載の発明の主題。
実施例50では、前記データ構造は前記物理ブロックに書き込まれる、実施例40〜49のいずれかに記載の発明の主題。
実施例51では、前記NANDデバイスは、ワーキングメモリを含み、前記L2Pテーブルは、前記ワーキングメモリよりも大きく、L2P領域は、前記ワーキングメモリよりも大きくない、実施例40〜50のいずれかに記載の発明の主題。
実施例52では、前記L2Pテーブルを検索する前記手段は、論理ページを示す前記ブロックデータ構造内の対応するエントリが前記物理ブロックに対応したことに応答して、L2P領域を前記ワーキングメモリにロードする手段を含む、実施例51に記載の発明の主題。
実施例53は、少なくとも1つの機械可読媒体であって、処理回路によって実行されるときに、実施例1〜52のいずれかを実装する動作を前記処理回路に実行させるインストラクションを含む、前記少なくとも1つの機械可読媒体である。
実施例54は、実施例1〜52のいずれかを実装する手段を含む装置である。
実施例55は、実施例1〜52のいずれかを実装するシステムである。
実施例56は、実施例1〜52のいずれかを実装する方法である。
上記の詳細な説明は、詳細な説明の一部を形成する添付図面に対する参照を含む。図面は、例示として、本発明を実施できる特定の実施形態を示す。これらの実施形態は、本明細書では「実施例」とも呼ばれる。そのような実施例は、図示または説明された要素に加えて要素を含む場合がある。しかしながら、本発明者らは、図示または説明されたそれらの要素のみが提供される実施例も企図する。さらに、本発明者は、本明細書に図示または説明された特定の実施例(もしくはその1つ以上の態様)に関して、または他の実施例(もしくはその1つ以上の態様)に関して、図示または説明されたそれらの要素(もしくはその1つ以上の態様)の任意の組み合わせまたは順列を使用する実施例も企図する。
本明細書では、用語「a」または「an」は、特許文書で一般的であるように、「少なくとも1つの(at least one)」または「1つ以上の(one or more)」の任意の他の実施例または用法とは関係なく、1つまたは複数を含むために使用される。本明細書では、用語「または(or)」は、非排他的を指す、つまり別段の指示がない限り、「AまたはB(A or B)」は「AであるがBではなく(A but not B)」、「BであるがAではなく(B but not A)」、及び「A及びB(A and B)」を含み得るように使用される。添付の特許請求の範囲では、用語「含む(including)」及び「〜において(in which)」は、それぞれの用語「含む(comprising)」及び「そこで(wherein)」の分かりやすい英語の同等物として使用される。また、以下の特許請求の範囲では、用語「含む(including)」及び「備える(comprising)」は、オープンエンドである。つまり、請求項の中のそのような用語の後に示される要素に加えて要素を含むシステム、デバイス、商品、またはプロセスもその請求項の範囲に含まれると見なされる。さらに、以下の特許請求の範囲では、用語「第1の」、「第2の」、及び「第3の」などは、単にラベルとして使用されており、その対象に対する数的な要件を課すことを意図していない。
さまざまな実施例では、本明細書に記載されるコンポーネント、コントローラ、プロセッサ、ユニット、エンジン、またはテーブルは、とりわけ、物理デバイスに格納される物理回路またはファームウェアを含むことができる。本明細書で使用される場合、「プロセッサ」は、限定されないが、マイクロプロセッサ、マイクロコントローラ、グラフィックプロセッサ、デジタルシグナルプロセッサ(DSP)、または、プロセッサまたはマルチコアデバイスのグループを含む、任意の他のタイプのプロセッサまたは処理回路などの任意のタイプの計算回路を意味する。
「ウェーハ」及び「基板」という用語は、集積回路が形成される任意の構造、そのうえ集積回路製造のさまざまな段階中のそれらのような構造を一般に指すために本明細書では使用される。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、添付の特許請求の範囲のみが、そのような特許請求の範囲が権利のある均等物の全範囲に加えて、さまざまな実施形態の範囲を定義する。
本開示に従って、本明細書に記載されるさまざまな実施形態は、メモリセルの垂直構造(例えば、メモリセルのNANDストリング)を利用するメモリを含む。本明細書で使用される場合、指向性形容詞は、メモリセルが形成される基板表面に対して取られる(すなわち、垂直構造は、基板表面から離れて延伸すると見なされ、垂直構造の下端部は、基板表面に最も近い端部と見なされ、垂直構造の上端部は、基板表面から最も遠い端部と見なされる)。
本明細書で使用される場合、メモリセルの動作は、メモリセルから読み出すこと、メモリセルに書き込むこと、またはメモリセルを消去することを含む。メモリセルを意図された状態に置く動作は、本明細書では「プログラミング」と呼ばれ、メモリセルへの書き込みまたはメモリセルからの消去(例えば、メモリセルは消去状態にプログラムされ得る)の両方を含むことができる。
本開示の1つ以上の実施形態によれば、メモリデバイスの内部に、または外部に配置されるメモリコントローラ(例えば、プロセッサ、コントローラ、ファームウェアなど)は、摩耗サイクルの量、または摩耗状態(例えば、摩耗サイクルを記録すること、摩耗サイクルの発生時にメモリデバイスの動作をカウントすること、カウントを開始するメモリデバイスの動作を追跡すること、摩耗状態に対応するメモリデバイス特性を評価することなど)を決定すること(例えば、選択すること、設定すること、調整すること、計算すること、変更すること、クリアすること、通信すること、適合させること、導出すること、定義すること、利用すること、修正すること、適用することなど)ができる。
本開示の1つ以上の実施形態によれば、メモリアクセスデバイスは、メモリ動作のたびにメモリデバイスに摩耗サイクル情報を提供するように構成されることができる。メモリデバイス制御回路(例えば、制御ロジック)は、摩耗サイクル情報に対応するメモリデバイスパフォーマンスの変化を補償するようにプログラムされることができる。メモリデバイスは、摩耗サイクル情報を受信し、この摩耗サイクル情報に応答して、1つ以上の動作パラメータ(例えば、値、特性)を決定することができる。
要素が別の要素の「上にある(on)」、別の要素に「接続している(connected to)」、または別の要素と「結合している(coupled with)」と呼ばれる場合、その要素は、他の要素の上に直接あり得るか、直接接続し得るか、または直接結合し得るか、あるいは介在する要素が存在し得ることが理解されよう。対照的に、要素が別の要素の「上に直接ある(directly on)」、別の要素に「直接接続している(directly connected to)」、または別の要素と「直接結合している(directly coupled with)」と呼ばれる場合、介在する要素または層は存在しない。2つの要素がそれらを結ぶ線で図面に示されている場合、別段の指示がない限り、2つの要素は結合するか、または直接結合することができる。
本明細書に説明する方法の例は、少なくとも部分的に機械またはコンピュータに実装することが可能である。一部の例は、上記の例に説明したように方法を実施するために電子デバイスを構成するように動作可能なインストラクションで符号化されたコンピュータ可読媒体または機械可読媒体を含み得る。このような方法の実装は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのようなコードを含むことができる。このようなコードは、さまざまな方法を実施するためのコンピュータ可読インストラクションを含むことができる。コードは、コンピュータプログラム製品の一部を形成し得る。さらに、コードは、実行中または他の時間などに、1つまたは複数の揮発性または不揮発性の有形のコンピュータ可読媒体上に有形に格納できる。これらの有形のコンピュータ可読媒体の例は、限定されないが、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスク及びデジタルビデオディスク)、磁気カセット、メモリカードまたはスティック、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS)デバイス、組み込みMMC(eMMC)デバイスなどを含むことができる。
上記の説明は、例示を意図したものであり、限定的なものではない。例えば、上述の例(またはその1つ以上の態様)は、互いと組み合わせて使用される場合がある。上記の説明を検討する際に当業者によってなど他の実施形態を使用できる。これは、特許請求の範囲または意味を解釈または限定するために使用されないとの理解のもとに提供される。また、上記の発明を実施するための形態では、さまざまな特徴が本開示を効率化するために互いにグループ化される場合がある。これは、特許請求されていない開示された特徴が任意の請求項に対して不可欠であることを意図すると解釈されるべきではない。むしろ、本発明の主題は、特定の開示されている実施形態のすべてに満たない特徴に存在する場合がある。したがって、次の特許請求の範囲は、詳細な説明に組み込まれ、各特許請求の範囲は、別個の実施形態として自立しており、そのような実施形態は、様々な組み合わせまたは順列で互いに組み合わせることができると考えられる。本発明の範囲は、添付された特許請求の範囲に関して、そのような特許請求の範囲によって権利が与えられる均等物の全範囲とともに定められるべきである。

Claims (20)

  1. いくつかのブロックを含むNANDアレイであって、前記いくつかの物理ブロックのうちの少なくとも1つの物理ブロックは閉じられている、前記NANDアレイと、
    コントローラと、
    を含む、NAND動作レイテンシを制御するデバイスであって、
    前記コントローラは、
    書き込み要求を受信し、
    閉じられている前記物理ブロック上で実行するガベージコレクション動作数を計算し、前記計算はガベージコレクションについてのケイデンス計算への論理対物理(L2P)領域検索比率の追加を含み、
    前記物理ブロック上で前記計算されたガベージコレクション動作数を実行し、各ガベージコレクション動作はページを前記物理ブロック内に与えられると、
    前記ページが有効であるかどうかを判定するためにL2Pテーブルを検索し、前記検索がL2Pテーブル領域ごとにエントリを含むブロックデータ構造によって指示され、前記L2Pテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示し、
    前記ページが有効であることに応答して、前記ページを前記いくつかのブロックの新しい物理ブロックに書き込む、前記コントローラを含み、
    前記計算されたガベージコレクション動作数が実行されることに応答して、前記書き込み要求を実行する、前記デバイス。
  2. 前記L2P領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリカウントに等しい分子を含む、請求項1に記載のデバイス。
  3. 前記L2P領域検索比率は、負荷閾値パラメータに等しい分母を含む、請求項2に記載のデバイス。
  4. 前記コントローラは、
    第二書き込み要求を受信し、
    前記ブロックデータ構造内の前記エントリカウントが前記負荷閾値パラメータよりも大きいことに応答して、前記ガベージコレクション動作をサスペンドし、
    前記第二書き込み要求を実行する、
    ように構成される、請求項3に記載のデバイス。
  5. 前記コントローラは、
    第二書き込み要求を受信し、
    ガベージコレクション動作閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答して、前記ガベージコレクション動作をサスペンドし、
    前記第二書き込み要求を実行する、
    ように構成される、請求項1に記載のデバイス。
  6. NAND動作レイテンシを制御する方法であって、
    書き込み要求をNANDデバイスのコントローラで受信することと、
    閉じられている物理ブロック上で実行するガベージコレクション動作数を計算することであって、前記計算することがガベージコレクションについてのケイデンス計算に論理対物理(L2P)領域検索比率を追加することを含む、前記計算することと、
    前記物理ブロック上で前記計算されたガベージコレクション動作数を実行することであって、各ガベージコレクション動作はページを前記物理ブロック内に与えられると、
    前記ページが有効であるかどうかを判定するためにL2Pテーブルを検索することであって、前記検索することがL2Pテーブル領域ごとにエントリを含むブロックデータ構造によって指示され、前記L2Pテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示す、前記検索すること、及び
    前記ページが有効であることに応答して、前記ページを新しい物理ブロックに書き込むこと、
    を含む、前記実行することと、
    前記計算されたガベージコレクション動作数が実行されることに応答して、前記書き込み要求を実行することと、
    を備える、前記方法。
  7. 前記L2P領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリカウントに等しい分子を含む、請求項6に記載の方法。
  8. 前記L2P領域検索比率は、負荷閾値パラメータに等しい分母を含む、請求項7に記載の方法。
  9. 第二書き込み要求を受信することと、
    前記ブロックデータ構造内の前記エントリカウントが前記負荷閾値パラメータよりも大きいことに応答して、前記ガベージコレクション動作をサスペンドすることと、
    前記第二書き込み要求を実行することと、
    を含む、請求項8に記載の方法。
  10. 前記L2P領域検索比率を前記ケイデンス計算に追加することは、前記L2P領域検索比率を前記ガベージコレクション書き込みに追加することを含む、請求項9に記載の方法。
  11. 第二書き込み要求を受信することと、
    ガベージコレクション動作閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答して、前記ガベージコレクション動作をサスペンドすることと、
    前記第二書き込み要求を実行することと、
    を含む、請求項6に記載の方法。
  12. 前記ケイデンス計算は、ガベージコレクション書き込みとホスト書き込みとの間の比率であり、前記ガベージコレクション書き込みは、前記物理ブロックから前記新しい物理ブロックにすべての有効なページを移動させるガベージコレクション動作カウントであり、前記ホスト書き込みは、ホスト書き込みカウントを定義するパラメータであり、前記ホスト書き込みカウントを上回る前記ガベージコレクション書き込みを拡散させる、請求項6に記載の方法。
  13. 前記ブロックデータ構造はビットマップである、請求項6に記載の方法。
  14. 前記データ構造内のエントリはシングルビットである、請求項13に記載の方法。
  15. エントリ内の論理1は、前記ビットの位置に対応するL2P領域が前記物理ブロックに対応した論理ページを含むことを示す、請求項14に記載の方法。
  16. 前記データ構造は前記物理ブロックに書き込まれる、請求項6に記載の方法。
  17. 前記NANDデバイスは、ワーキングメモリを含み、前記L2Pテーブルは、前記ワーキングメモリよりも大きく、L2P領域は、前記ワーキングメモリよりも大きくない、請求項6に記載の方法。
  18. 前記L2Pテーブルを検索することは、論理ページを示す前記ブロックデータ構造内の対応するエントリが前記物理ブロックに対応したことに応答して、L2P領域を前記ワーキングメモリにロードすることを含む、請求項17に記載の方法。
  19. 請求項6〜18に記載のいずれかの方法を実行する手段を含むシステム。
  20. 実行されるときに、請求項6〜18に記載のいずれかの方法を処理回路に実行させるインストラクションを含むコンピュータ可読媒体。
JP2020572977A 2018-06-29 2019-06-20 Nand動作レイテンシの制御 Ceased JP2021528783A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/024,380 2018-06-29
US16/024,380 US10552316B2 (en) 2018-06-29 2018-06-29 Controlling NAND operation latency
PCT/US2019/038262 WO2020005714A1 (en) 2018-06-29 2019-06-20 Controlling nand operation latency

Publications (1)

Publication Number Publication Date
JP2021528783A true JP2021528783A (ja) 2021-10-21

Family

ID=68987386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020572977A Ceased JP2021528783A (ja) 2018-06-29 2019-06-20 Nand動作レイテンシの制御

Country Status (6)

Country Link
US (3) US10552316B2 (ja)
EP (1) EP3814911A4 (ja)
JP (1) JP2021528783A (ja)
KR (1) KR20210013656A (ja)
CN (1) CN112470132B (ja)
WO (1) WO2020005714A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552316B2 (en) 2018-06-29 2020-02-04 Micron Technology, Inc. Controlling NAND operation latency
CN114138189A (zh) * 2021-11-17 2022-03-04 厦门大学 一种加速3d nand闪存中的子块擦除的方法
CN114489489B (zh) * 2021-12-30 2024-02-23 山东云海国创云计算装备产业创新中心有限公司 一种用于固态硬盘的垃圾回收方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110202578A1 (en) * 2010-02-16 2011-08-18 Kabushiki Kaisha Toshiba Semiconductor memory device
WO2014147768A1 (ja) * 2013-03-19 2014-09-25 富士通株式会社 制御装置、制御プログラム、および制御方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130076429A (ko) 2011-12-28 2013-07-08 삼성전자주식회사 메모리 장치의 저장 영역 관리 방법 및 이를 이용한 저장 장치
US9116793B2 (en) 2012-06-12 2015-08-25 International Business Machines Corporation Maintaining versions of data in solid state memory
JP2016506585A (ja) 2013-01-08 2016-03-03 ヴァイオリン メモリー インコーポレイテッド データストレージのための方法及びシステム
KR20140112303A (ko) * 2013-03-13 2014-09-23 삼성전자주식회사 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템
CN104346287B (zh) * 2013-08-09 2019-04-16 Lsi公司 在固态介质中使用多级别映射的修整机制
US20160232088A1 (en) * 2014-07-17 2016-08-11 Sandisk Enterprise Ip Llc Garbage Collection in Storage System with Distributed Processors
JP2016024678A (ja) * 2014-07-22 2016-02-08 株式会社東芝 メモリシステム
US10296452B2 (en) 2015-05-11 2019-05-21 SK Hynix Inc. Data separation by delaying hot block garbage collection
US9891833B2 (en) * 2015-10-22 2018-02-13 HoneycombData Inc. Eliminating garbage collection in nand flash devices
US10102119B2 (en) 2015-10-30 2018-10-16 Sandisk Technologies Llc Garbage collection based on queued and/or selected write commands
US10185657B2 (en) 2016-04-13 2019-01-22 Nanjing University Method and system for optimizing deterministic garbage collection in NAND flash storage systems
US9940261B2 (en) * 2016-05-05 2018-04-10 Western Digital Technology, Inc. Zoning of logical to physical data address translation tables with parallelized log list replay
US20170351604A1 (en) * 2016-06-02 2017-12-07 Futurewei Technologies, Inc. Host and garbage collection write ratio controller
KR102655347B1 (ko) 2016-07-04 2024-04-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9921956B2 (en) * 2016-07-20 2018-03-20 Sandisk Technologies Llc System and method for tracking block level mapping overhead in a non-volatile memory
JP6529941B2 (ja) * 2016-08-30 2019-06-12 東芝メモリ株式会社 メモリシステム
US10915475B2 (en) * 2017-10-12 2021-02-09 Western Digital Technologies, Inc. Methods and apparatus for variable size logical page management based on hot and cold data
US10552316B2 (en) 2018-06-29 2020-02-04 Micron Technology, Inc. Controlling NAND operation latency

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110202578A1 (en) * 2010-02-16 2011-08-18 Kabushiki Kaisha Toshiba Semiconductor memory device
JP2011192260A (ja) * 2010-02-16 2011-09-29 Toshiba Corp 半導体記憶装置
WO2014147768A1 (ja) * 2013-03-19 2014-09-25 富士通株式会社 制御装置、制御プログラム、および制御方法

Also Published As

Publication number Publication date
US20220066926A1 (en) 2022-03-03
US11663120B2 (en) 2023-05-30
KR20210013656A (ko) 2021-02-04
EP3814911A4 (en) 2022-03-30
EP3814911A1 (en) 2021-05-05
WO2020005714A1 (en) 2020-01-02
US20200004673A1 (en) 2020-01-02
CN112470132A (zh) 2021-03-09
US10552316B2 (en) 2020-02-04
CN112470132B (zh) 2024-05-07
US20200226059A1 (en) 2020-07-16
US11169917B2 (en) 2021-11-09

Similar Documents

Publication Publication Date Title
US11720489B2 (en) Scheme to improve efficiency of device garbage collection in memory devices
US10983918B2 (en) Hybrid logical to physical caching scheme
JP7080327B2 (ja) Nand論理対物理テーブル領域追跡
US11341041B2 (en) Synchronizing NAND logical-to-physical table region tracking
US11663120B2 (en) Controlling NAND operation latency
US10970228B2 (en) Mapping table compression using a run length encoding algorithm
US11163692B2 (en) Memory constrained translation table management
US11972294B2 (en) Allocation schema for a scalable memory area
US11922012B2 (en) Memory mapping device and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220614

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221025

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20230228