JP7354452B2 - メモリデバイスのためのブロックファミリベースのエラー回避 - Google Patents

メモリデバイスのためのブロックファミリベースのエラー回避 Download PDF

Info

Publication number
JP7354452B2
JP7354452B2 JP2022537276A JP2022537276A JP7354452B2 JP 7354452 B2 JP7354452 B2 JP 7354452B2 JP 2022537276 A JP2022537276 A JP 2022537276A JP 2022537276 A JP2022537276 A JP 2022537276A JP 7354452 B2 JP7354452 B2 JP 7354452B2
Authority
JP
Japan
Prior art keywords
block
family
threshold voltage
block family
memory
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.)
Active
Application number
JP2022537276A
Other languages
English (en)
Other versions
JP2023507389A (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 JP2023507389A publication Critical patent/JP2023507389A/ja
Application granted granted Critical
Publication of JP7354452B2 publication Critical patent/JP7354452B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/1041Resource optimization
    • 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
    • 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/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Description

本開示の実施形態は、一般に、メモリサブシステムに関し、より詳細には、メモリデバイスのためのブロックファミリベースのエラー回避に関する。
メモリサブシステムは、データを格納する1つまたは複数のメモリデバイスを含み得る。メモリデバイスは、例えば、不揮発性メモリデバイスおよび揮発性メモリデバイスであり得る。一般に、ホストシステムは、メモリデバイスにデータを格納するため、およびメモリデバイスからデータを取得するために、メモリサブシステムを利用し得る。
本開示は、以下に提供される詳細な説明から、および本開示のいくつかの実施形態の添付の図面からより完全に理解される。
本開示のいくつかの実施形態によるメモリサブシステムを含む例示的なコンピューティングシステムを示す図である。 本開示のいくつかの実施形態による、3レベルメモリセルによって呈される遅い電荷損失によって引き起こされる時間的な電圧シフトを概略的に示す図である。 本開示のいくつかの実施形態による、閾値電圧オフセットの、プログラム後の時間(time after program)(すなわち、ブロックがプログラムされてから経過した時間期間に対する依存を示す例示的なグラフを描写する図である。 本開示の実施形態による、所定の閾値電圧オフセットビンのセットを概略的に示す図である。 本開示の実施形態によって動作するメモリサブシステムコントローラのブロックファミリマネージャコンポーネントによって実装されるブロックファミリ管理動作を概略的に示す図である。 本開示の実施形態による、較正のためにブロックファミリを選択することを概略的に示す図である。 本開示の実施形態による、ブロックおよび/またはパーティションをブロックファミリと関連付けるためのメモリサブシステムコントローラによって管理される例示的なメタデータを概略的に示す図である。 本開示のいくつかの実施形態によって動作するメモリサブシステムコントローラによって実装されるブロックファミリ管理の例示的な方法800のフロー図である。 本開示のいくつかの実施形態によって動作するメモリサブシステムコントローラによって読み出し動作を実施する例示的な方法800のフロー図である。 本開示の実施形態が動作することができる例示的なコンピュータシステムのブロック図である。
本開示の実施形態は、メモリデバイスのためのブロックファミリベースのエラー回避を対象とする。メモリサブシステムは、ストレージデバイス、メモリモジュール、またはストレージデバイスおよびメモリモジュールのハイブリッドであり得る。ストレージデバイスおよびメモリモジュールの例は、図1と併せて以下に説明される。一般に、ホストシステムは、データを格納するメモリデバイスなど、1つまたは複数のコンポーネントを含むメモリサブシステムを利用し得る。ホストシステムは、メモリサブシステムに格納されるべきデータを提供し得、メモリサブシステムから取得されるべきデータを要求し得る。
メモリサブシステムは、ホストシステムによって提供されるデータを格納するために、異なるタイプの不揮発性メモリデバイスおよび/または揮発性メモリデバイスの任意の組み合わせを含む1つまたは複数のメモリデバイスを利用し得る。いくつかの実施形態において、不揮発性メモリデバイスは、否定論理積(NAND)タイプのフラッシュメモリデバイスによって提供され得る。不揮発性メモリデバイスの他の例は、図1と併せて以下に説明される。不揮発性メモリデバイスは、1つまたは複数のダイのパッケージである。各ダイは、1つまたは複数のプレーンからなり得る。プレーンは、論理単位(LUN)へのグループであり得る。いくつかのタイプの不揮発性メモリデバイス(例えば、NANDデバイス)では、各プレーンは、物理的なブロックのセットからなる。各ブロックは、ページのセットからなる。各ページは、メモリセル(「セル」)のセットからなる。セルは、情報を格納する電子回路である。
データ操作は、メモリサブシステムによって実施され得る。データ操作は、ホストによって開始される操作であり得る。例えば、ホストシステムは、メモリサブシステムに対してデータ操作(例えば、書き込み、読み出し、消去など)を開始することができる。ホストシステムは、メモリサブシステムにおいてメモリデバイス上にデータを格納するため、およびメモリサブシステム上のメモリデバイスからデータを読み出すためなど、アクセス要求(例えば、書き込みコマンド、読み出しコマンド)をメモリサブシステムに送信することができる。ホスト要求によって指定されるような読み出されるべきデータまたは書き込まれるべきデータは、以後、「ホストデータ」と称される。ホスト要求は、ホストデータのための論理アドレス情報(例えば、論理ブロックアドレス(LBA)、名前空間)を含み得、これは、ホストシステムがホストデータと関連付ける場所である。論理アドレス情報(例えば、LBA、名前空間)は、ホストデータについてのメタデータの一部であり得る。メタデータはまた、エラー処理データ(例えば、ECC符号語パリティ符号)、データバージョン(例えば、書き込まれたデータの時期を区別するために使用される)、有効ビットマップ(そのLBAまたは論理転送装置が有効データを含む)などを含み得る。
メモリデバイスは、複数のメモリセルを含み、これらの各々が、メモリセルタイプに応じて、1つまたは複数のビットの情報を格納することができる。メモリセルは、メモリセルにある電圧を印加することによってプログラムされ(書き込まれ)得、これにより、電荷がメモリセルによって保持されることになり、したがって、メモリセルによって生成される電圧分布の調節を可能にする。さらには、メモリセルによって格納される電荷の量を正確に制御することは、異なる論理レベルに対応する複数の閾値電圧レベルを確立することを可能にし、したがって、単一のメモリセルが複数ビットの情報を格納することを効果的に可能にする:2個の異なる閾値電圧レベルで動作されるメモリセルは、nビットの情報を格納することができる。本明細書における「閾値電圧」とは、2つの論理レベルに対応する2つの隣り合う電圧分布間の境界を規定する電圧レベルを指すものとする。したがって、読み出し動作は、単一レベルセルのための2つの論理レベル間および多レベルセルのための複数の論理レベル間を区別するために、メモリセルによって呈される測定された電圧を1つまたは複数の参照電圧レベルと比較することによって実施され得る。
遅い電荷損失として知られる現象に起因して、メモリセルの閾値電圧は、セルの電荷が低下しているとやがて変化し、これは、「時間的な電圧シフト」と称される(低下している電荷が、電圧分布をより低い電圧レベルの方へ電圧軸に沿ってシフトさせるため)。閾値電圧は、最初(メモリセルがプログラムされた直後)は急速に変化し、次いで、セルプログラミング事象から経過した時間に対してほぼ線形対数的に減速する。したがって、遅い電荷損失によって引き起こされる時間的な電圧シフトを軽減することができないということは、読み出し動作における増大されたビット誤り率をもたらし得る。
しかしながら、様々な一般的な実装形態は、時間的な電圧シフトに適切に対処することができないか、または、高いビット誤り率をもたらす、および/もしくは他の欠点を呈する、不効率な戦略を採用するかのいずれかである。本開示の実施形態は、ブロックファミリベースのエラー回避戦略を採用するメモリサブシステムを実装し、したがって、メモリサブシステムによって呈されるビット誤り率を著しく改善することによって、上記および他の欠陥に対処する。
本開示の実施形態によると、時間的な電圧シフトが、ブロックファミリによってグループ化されたプログラムされたブロックに対して選択的に追跡され、特定のブロックファミリとのブロックアフィリエーションに基づく適切な電圧オフセットが、読み出し動作を実施するためにベース読み出しレベルに適用される。本明細書における「ブロックファミリ」とは、指定の時間窓および指定の温度窓内でプログラムされているブロックのセットを指すものとする。プログラミング後に経過した時間および温度は、時間的な電圧シフトに影響を及ぼす主な因子であるため、単一のブロックファミリ内のすべてのブロックおよび/またはパーティションは、メモリセル内で同様の閾値電圧分布を呈すると推定され、したがって、読み出し動作のためにベース読み出しレベルに適用されるべき同じ電圧オフセットを必要とする。本明細書における「ベース読み出しレベル」とは、プログラミングの直後にメモリセルによって呈される初期閾値電圧レベルを指すものとする。いくつかの実装形態において、ベース読み出しレベルは、メモリデバイスのメタデータに格納され得る。
ブロックファミリは、ブロックプログラミング事象に対して非同期的に創出され得る。例示的な例において、指定の時間期間(例えば、既定の数の分)が最後のブロックファミリの創出から経過した、または、メモリセルの基準温度が指定の閾値の値よりも多く変化したときはいつも、新たなブロックファミリが創出され得る。メモリサブシステムコントローラは、1つまたは複数のブロックと、それらのブロックがプログラムされている際に関連付けられる、アクティブブロックファミリの識別子を管理することができる。
メモリサブシステムコントローラは、全ブロックファミリの各ダイを所定の閾値電圧オフセットビンのうちの1つと関連付けるために、較正プロセスを周期的に実施することができ、そしてこの所定の閾値電圧オフセットビンは、読み出し動作のために適用されるべき電圧オフセットと関連付けられる。ブロックのブロックファミリとの、ならびに、ブロックファミリおよびダイの閾値電圧オフセットビンとの関連性は、メモリサブシステムコントローラによって管理されるそれぞれのメタデータテーブルに格納され得る。
読み出しコマンドを受信すると、メモリサブシステムコントローラは、本明細書内で以下により詳細に説明されるように、読み出しコマンドによって指定された論理ブロックアドレス(LBA)によって識別されたブロックと関連付けられたブロックファミリを識別し、ブロックファミリとブロックが存在するダイとに関連付けられた閾値電圧オフセットビンを識別し、閾値電圧オフセットビンと関連付けられた閾値電圧オフセットをベース読み出しレベルに追加的に適用することによって新たな閾値電圧を計算し、新たな閾値電圧を使用して読み出し動作を実施することができる。
したがって、本開示のいくつかの実施形態に従って実装されるシステムおよび方法の利点は、限定されるものではないが、本明細書内で以下により詳細に説明されるように、同様の電圧分布を呈すると推定されるブロックのグループ(ブロックファミリ)を追跡するメタデータを管理し、ブロックの、それらのブロックのブロックファミリ関連性に基づく、限られたサブセットに対して較正動作を選択的に実施することによって、読み出し動作におけるビット誤り率を改善することを含む。
図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(Peripheral Component Interconnect Express)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ファイバチャネル、シリアルアタッチドSCSI(SAS)、ダブルデータレート(DDR)メモリバス、スモールコンピュータシステムインターフェース(SCSI)、デュアルインラインメモリモジュール(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)のいくつかの例としては、否定論理積(NAND)タイプのフラッシュメモリ、および不揮発性メモリセルのクロスポイントアレイである3次元クロスポイント(「3Dクロスポイント」)メモリデバイスなど書き込みインプレイスメモリが挙げられる。不揮発性メモリのクロスポイントアレイは、積層可能なクロスグリッドデータアクセスアレイと併せて、バルク抵抗の変化に基づいてビット格納を実施し得る。加えて、多くのフラッシュベースのメモリと対照的に、クロスポイント不揮発性メモリは、書き込みインプレイス動作を実施することができ、ここでは、不揮発性メモリセルは、不揮発性メモリセルが先に消去されることなく、プログラムされ得る。NANDタイプのフラッシュメモリとしては、例えば、2次元NAND(2D NAND)、および3次元NAND(3D NAND)が挙げられる。
メモリデバイス130の各々は、メモリセルの1つまたは複数のアレイを含み得る。メモリセルの1つのタイプ、例えば、単一レベルセル(SLC)は、セルあたり1ビットを格納することができる。多レベルセル(MLC)、3レベルセル(TLC)、および4レベルセル(QLC)などの他のタイプのメモリセルは、セルあたり複数ビットを格納することができる。いくつかの実施形態において、メモリデバイス130の各々は、SLC、MLC、TLC、QLC、またはそのようなものの任意の組み合わせなどのメモリセルの1つまたは複数のアレイを含み得る。いくつかの実施形態において、特定のメモリデバイスは、メモリセルのSLC部分、およびMLC部分、TLC部分、またはQLC部分を含み得る。メモリデバイス130のメモリセルは、データを格納するために使用されるメモリデバイスの論理単位を指し得るページとしてグループ化され得る。いくつかのタイプのメモリ(例えば、NAND)では、ページは、ブロックを形成するためにグループ化され得る。
不揮発性メモリセルの3DクロスポイントアレイおよびNANDタイプのメモリ(例えば、2D NAND、3D NAND)などの不揮発性メモリデバイスが説明されるが、メモリデバイス130は、リードオンリメモリ(ROM)、相変化メモリ(PCM)、自己選択メモリ、他のカルコゲナイドベースのメモリ、強誘電体トランジスタランダムアクセスメモリ(FeTRAM)、強誘電体ランダムアクセスメモリ(FeRAM)、磁気ランダムアクセスメモリ(MRAM)、スピントランスファトルク(STT)-MRAM、導電性ブリッジRAM(CBRAM)、抵抗ランダムアクセスメモリ(RRAM)、酸化物ベースのRRAM(OxRAM)、否定論理和(NOR)フラッシュメモリ、および電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)など、任意の他のタイプの不揮発性メモリに基づき得る。
メモリサブシステムコントローラ115(または簡略のためコントローラ115)は、メモリデバイス130においてデータを読み出すこと、データを書き込むこと、またはデータを消去することなどの動作、および他のそのような動作を実施するために、メモリデバイス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への所望のアクセスを達成するために、そのコマンドまたは動作を命令または適切なコマンドへと変換することができる。メモリサブシステムコントローラ115は、ウェアレベリング動作、ガベージコレクション動作、エラー検出および誤り訂正符号(ECC)動作、暗号化動作、キャッシング動作、ならびに、論理アドレス(例えば、論理ブロックアドレス(LBA)、名前空間)とメモリデバイス130と関連付けられる物理アドレス(例えば、物理ブロックアドレス)との間のアドレス変換など、他の動作を担当し得る。メモリサブシステムコントローラ115は、ホストインターフェース回路をさらに含み、この物理的なホストインターフェースを介してホストシステム120と通信し得る。ホストインターフェース回路は、ホストシステムから受信したコマンドを、メモリデバイス130にアクセスするためのコマンド命令へと変換し、ならびにメモリデバイス130と関連付けられた応答を、ホストシステム120のための情報へと変換し得る。
いくつかの実装形態において、メモリサブシステム110は、ストライピングスキームを使用することができ、これに従って、全データペイロード(例えば、ユーザデータ)は、ペイロードがダイのサブセット全体に分布するように、メモリデバイス130(例えば、NANDタイプのフラッシュメモリデバイス)の複数のダイを利用する一方で、残りの1つまたは複数のダイは、誤り訂正情報(例えば、パリティビット)を格納するために使用される。したがって、ストライピングスキームを使用してメモリデバイスのダイのセットにわたって分布するブロックのセットは、本明細書では「スーパーブロック」と称される。
メモリサブシステム110は、示されない追加の回路またはコンポーネントも含み得る。いくつかの実施形態において、メモリサブシステム110は、キャッシュまたはバッファ(例えば、DRAM)、およびコントローラ115からアドレスを受信し、メモリデバイス130にアクセスするためにそのアドレスを復号することができるアドレス回路(例えば、行デコーダおよび列デコーダ)を含み得る。
いくつかの実施形態において、メモリデバイス130は、メモリデバイス130の1つまたは複数のメモリセルに対して動作を実行するためにメモリサブシステムコントローラ115と併せて動作するローカルメディアコントローラ135を含む。外部コントローラ(例えば、メモリサブシステムコントローラ115)は、メモリデバイス130を外部から管理する(例えば、メモリデバイス130に対して媒体管理動作を実施する)ことができる。いくつかの実施形態において、メモリデバイス130は、被管理メモリデバイスであり、これは、同じメモリデバイスパッケージ内の媒体管理のためのローカルコントローラ(例えば、ローカルコントローラ135)と組み合わされた生(raw)のメモリデバイスである。被管理メモリデバイスの例は、被管理NAND(MNAND)デバイスである。
メモリサブシステム110は、ブロックファミリマネージャコンポーネント113を含み、これは、本開示の実施形態による、ブロックファミリベースのエラー回避戦略を実装するために使用され得る。いくつかの実施形態において、コントローラ115は、ブロックファミリマネージャコンポーネント113の少なくとも一部分を含む。例えば、コントローラ115は、本明細書内に説明される動作を実施するために、ローカルメモリ119に格納された命令を実行するように構成されるプロセッサ117(処理デバイス)を含み得る。いくつかの実施形態において、ブロックファミリマネージャコンポーネント113は、ホストシステム120、アプリケーション、またはオペレーティングシステムの一部である。ブロックファミリマネージャコンポーネント113は、本明細書内で以下により詳細に説明されるように、メモリデバイス130と関連付けられたブロックファミリを管理することができる。
図2は、3レベルメモリセルによって呈される遅い電荷損失によって引き起こされる時間的な電圧シフトを概略的に示す。図2の例示的な例は3レベルセルを利用するが、単一レベルセルおよび多レベルセルに対して、同じ観察がなされ得、したがって、遅い電荷損失を補償するために、同じ矯正的な対策が適用可能である。
本明細書内で上に記載されるように、メモリセルは、メモリセルにある電圧を印加することによってプログラムされ(書き込まれ)得、これにより、電荷がメモリセルによって保持されることになり、したがって、メモリセルによって生成される電圧分布の調節を可能にする。メモリセルによって格納される電荷の量を正確に制御することは、異なる論理レベルに対応する複数の閾値電圧レベルを確立することを可能にし、したがって、単一のメモリセルが複数ビットの情報を格納することを効果的に可能にする:2n個の異なる閾値電圧レベルで動作されるメモリセルは、nビットの情報を格納することができる。
図2では、各グラフ220A~220Nは、対応する論理レベル(TLCの場合、「000」から「111」)を符号化するために、それぞれの書き込みレベル(分布の中間点にあると想定され得る)によってプログラムされるメモリセルによって生成される電圧分布を示す。隣り合う分布(2つの異なる論理レベルに対応する)間を区別するために、閾値レベルを下回る測定された電圧が、隣り合う分布の対の1つの分布と関連付けられる一方、閾値レベル以上である測定された電圧が、隣り合う分布の対の別の分布と関連付けられるように、閾値電圧レベル(破線の垂直線によって示される)が規定される。
それぞれ、プログラミングの直後およびプログラミングの440時間後の時間期間を反映する、例示的なチャート210および230を比較することから見られるように、電圧分布は、遅い電荷損失に起因してやがて変化し、これにより、破線の垂直線によって示される閾値電圧レベルの値がドリフトすることになる。本開示の様々な実施形態において、時間的な電圧シフトが、ブロックファミリによってグループ化されたプログラムされたブロックに対して選択的に追跡され、特定のブロックファミリとのブロックアフィリエーションに基づく適切な電圧オフセットが、読み出し動作を実施するためにベース読み出しレベルに適用される。
図3は、閾値電圧オフセット310の、プログラム後の時間320(すなわち、ブロックがプログラムされてから経過した時間期間に対する依存を示す例示的なグラフ300を描写する。図3によって概略的に示されるように、メモリデバイスのブロックは、各ブロックファミリが、指定の時間窓および指定の温度窓内でプログラムされている1つまたは複数のブロックを含むように、ブロックファミリ330A~330Nへとグループ化される。本明細書内で上に記載されるように、プログラミング後に経過した時間および温度は、時間的な電圧シフトに影響を及ぼす主な因子であるため、単一のブロックファミリ310内のすべてのブロックおよび/またはパーティションは、メモリセル内で同様の閾値電圧分布を呈すると推定され、したがって、読み出し動作のために同じ電圧オフセットを必要とする。
ブロックファミリは、ブロックプログラミング事象に対して非同期的に創出され得る。例示的な例において、指定の時間期間(例えば、既定の数の分)が最後のブロックファミリの創出から経過したときはいつも、または、指定の時間間隔で更新されるメモリセルの基準温度が現在のブロックファミリの創出から指定の閾値の値よりも多く変化したときはいつも、図1のメモリサブシステムコントローラ115は、新たなブロックファミリを創出することができる。
新たに創出されたブロックファミリは、ビン0と関連付けられ得る。次いで、メモリサブシステムコントローラは、全ブロックファミリの各ダイを所定の閾値電圧オフセットビン(図3の例示的な例ではビン0~7)のうちの1つと関連付けるために、較正プロセスを周期的に実施することができ、そしてこの所定の閾値電圧オフセットビンは、読み出し動作のために適用されるべき電圧オフセットと関連付けられる。ブロックのブロックファミリとの、ならびに、ブロックファミリおよびダイの閾値電圧オフセットビンとの関連性は、メモリサブシステムコントローラによって管理されるそれぞれのメタデータテーブルに格納され得る。
図4は、本開示の実施形態による、所定の閾値電圧オフセットビンのセット(ビン0からビン9)を概略的に示す。図4によって概略的に示されるように、閾値電圧オフセットグラフは、各ビンが既定の範囲の閾値電圧オフセットに対応するように、複数の閾値電圧オフセットビンへと細分され得る。図4の例示的な例は、10個のビンを規定するが、他の実装形態において、様々な他の数のビンを用いることができる(例えば、64個のビン)。周期的に実施された較正プロセスに基づいて、メモリサブシステムコントローラは、全ブロックファミリの各ダイを閾値電圧オフセットビンと関連付け、このことは、本明細書内で以下により詳細に説明されるように、読み出し動作を実施するために、ベース電圧読み出しレベルに適用されるべき閾値電圧オフセットのセットを規定する。
図5は、本開示の実施形態によって動作するメモリサブシステムコントローラのブロックファミリマネージャコンポーネントによって実装されるブロックファミリ管理動作を概略的に示す。図5によって概略的に示されるように、ブロックファミリマネージャ510は、カーソル530A~530Kの1つまたは複数のブロックと、それらのブロックがプログラムされている際に関連付けられる、アクティブブロックファミリの識別子520をメモリ変数内で管理することができる。本明細書における「カーソル」とは、データが書き込まれているメモリデバイス上の場所を幅広く指すものとする。
メモリサブシステムコントローラは、ブロックファミリの創出時間を追跡するために、電力オン分(POM:power on minutes)クロックを利用し得る。いくつかの実装形態において、コントローラが様々な低電力状態にあるときに動作し続ける、あまり精密でないクロックをPOMクロックに加えて利用することができ、その結果、POMクロックは、低電力状態からコントローラウェイクアップしたとき、あまり精密でないクロックに基づいて更新される。
したがって、各ブロックファミリを初期化したとき、現在の時間540が、ブロックファミリ開始時間550としてメモリ変数に格納される。ブロックがプログラムされる際、現在の時間540は、ブロックファミリ開始時間550と比較される。現在の時間540およびブロックファミリ開始時間550の差が指定の時間期間(例えば、既定の数の分)以上であるという検出に応答して、アクティブブロックファミリ識別子520を格納するメモリ変数は、次のブロックファミリ番号(例えば、次の順次の整数番号)を格納するように更新され、ブロックファミリ開始時間550を格納するメモリ変数は、現在の時間540を格納するように更新される。
ブロックファミリマネージャ510はまた、各メモリデバイスの選択されたダイの高および低基準温度を格納するための2つのメモリ変数を管理することができる。各ブロックファミリを初期化したとき、高温度560および低温度570変数が、メモリデバイスの選択されたダイの現在の温度の値を格納する。動作中、アクティブブロックファミリ識別子520が同じままである間、温度測定値が、周期的に獲得され、格納された高温度560および低温度570値と比較され、これらの高温度560および低温度570値は、それに応じて更新され、温度測定値が、高温度変数560によって格納された値以上であることを見いだされることがあれば、この高温度変数560は、その温度測定値を格納するように更新され、逆に、温度測定値が、低温度変数570によって格納された値を下回ることを見いだされることがあれば、この低温度変数570は、その温度測定値を格納するように更新される。
ブロックファミリマネージャ510はさらに、高温度560と低温度570との間の差を周期的に計算することができる。高温度560と低温度570との間の差が指定の温度閾値以上であるという決定に応答して、ブロックファミリマネージャ510は、新たなアクティブブロックファミリを創出することができ、アクティブブロックファミリ識別子520を格納するメモリ変数は、次のブロックファミリ番号(例えば、次の順次の整数番号)を格納するように更新され、ブロックファミリ開始時間550を格納するメモリ変数は、現在の時間540を格納するように更新され、高温度560および低温度570変数は、メモリデバイスの選択されたダイの現在の温度の値を格納するように更新される。
ブロックをプログラムする時間において、メモリサブシステムコントローラは、ブロックを現在アクティブなブロックファミリと関連付ける。各ブロックの対応するブロックファミリとの関連性は、図7に関して本明細書内で以下により詳細に説明されるように、ブロックファミリメタデータ580によって反映される。
本明細書内で上に記載されるように、周期的に実施された較正プロセスに基づいて、メモリサブシステムコントローラは、全ブロックファミリの各ダイを閾値電圧オフセットビンと関連付け、このことは、読み出し動作を実施するために、ベース電圧読み出しレベルに適用されるべき閾値電圧オフセットのセットを規定する。較正プロセスは、較正されているブロックファミリ内の指定の数のランダムに選択されたブロックに対して、異なる閾値電圧オフセットを利用して読み出し動作を実施すること、および読み出し動作の誤り率を最小限にする閾値電圧オフセットを選定することを伴う。
図6は、本開示の実施形態による、較正のためにブロックファミリを選択することを概略的に示す。図6によって概略的に示されるように、遅い電荷損失に起因して、現在のビンの任意の他のブロックファミリよりも前に次のビンに移動するのは、最も古いブロックファミリであるため、メモリサブシステムコントローラは、各ビン内の最も古いブロックファミリ(例えば、ビン0内のブロックファミリ610、および、ビン1内のブロックファミリ620)に較正動作を制限することができる。
図7は、本開示の実施形態による、ブロックおよび/またはパーティションをブロックファミリと関連付けるためのメモリサブシステムコントローラによって管理される例示的なメタデータを概略的に示す。図7によって概略的に示されるように、メモリサブシステムコントローラは、スーパーブロックテーブル710、ブロックテーブル720、およびオフセットテーブル730を管理することができる。
スーパーブロックテーブル710の各記録は、指定したスーパーブロックおよびパーティション組み合わせと関連付けられたブロックファミリを指定する。いくつかの実装形態において、スーパーブロックテーブル記録は、指定したスーパーブロックおよびパーティション組み合わせと関連付けられた時間および温度値をさらに含み得る。
ファミリテーブル720は、ファミリテーブル720の各記録が、記録のインデックスによって参照されるブロックファミリについて、ブロックファミリのそれぞれのダイと関連付けられた閾値電圧オフセットビンのセットを指定するように、ブロックファミリ番号によりインデックスされる。言い換えると、ファミリテーブル720の各記録は、ベクトルを含み、ベクトルの各要素が、ベクトル要素のインデックスにより参照されるダイと関連付けられた閾値電圧オフセットビンを指定する。ブロックファミリダイと関連付けられるべき閾値電圧オフセットビンは、本明細書内で上により詳細に説明されるように、較正プロセスによって決定され得る。
最後に、オフセットテーブル730は、ビン番号によってインデックスされる。オフセットテーブル730の各記録は、閾値電圧オフセットビンと関連付けられた閾値電圧オフセットのセット(例えば、TLC、MLC、および/またはSLCのための)を指定する。
メタデータテーブル710~730は、図1の1つまたは複数のメモリデバイス130に格納され得る。いくつかの実装形態において、メタデータテーブルの少なくとも一部は、図1のメモリサブシステムコントローラ115のローカルメモリ119においてキャッシュされ得る。
動作中、読み出しコマンドを受信すると、メモリサブシステムコントローラは、読み出しコマンドによって指定された論理ブロックアドレス(LBA)に対応する物理アドレスを決定する。物理ブロック番号およびダイ識別子などの物理アドレスの構成要素は、メタデータテーブルウォークを実施するために利用され、まず、スーパーブロックテーブル710が、物理ブロック番号に対応するブロックファミリ識別子を識別するために使用され、次いで、ブロックファミリ識別子が、ブロックファミリおよびダイと関連付けられた閾値電圧オフセットビンを決定するために、ファミリテーブル720へのインデックスとして使用され、最後に、識別された閾値電圧オフセットビンが、ビンに対応する閾値電圧オフセットを決定するために、オフセットテーブル730へのインデックスとして使用される。メモリサブシステムコントローラは、次いで、要求された読み出し動作を実施するために、識別された閾値電圧オフセットをベース電圧読み出しレベルに追加的に適用することができる。
図7の例示的な例において、スーパーブロックテーブル710は、スーパーブロック0のパーティション0をブロックファミリ4にマッピングし、これは、ダイ0がビン3にマッピングされることを決定するために、ファミリテーブル720へのインデックスとして利用される。後者の値は、ビン3のための閾値電圧オフセット値を決定するためにオフセットテーブルへのインデックスとして使用される。
図8は、本開示のいくつかの実施形態によって動作するメモリサブシステムコントローラによって実装されるブロックファミリ管理の例示的な方法800のフロー図である。方法800は、ハードウェア(例えば、処理デバイス、回路、専用論理、プログラマブル論理、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(例えば、処理デバイス上で実行される(runまたはexecuted)命令)、またはそれらの組み合わせを含み得る処理論理によって実施され得る。いくつかの実施形態において、方法800は、図1のブロックファミリマネージャコンポーネント113によって実施される。特定のシーケンスまたは順序で示されるが、別段の記載のない限り、動作の順序は修正され得る。したがって、示された実施形態は、単に例として理解されるべきであり、示された動作は、異なる順序で実施され得る一方で、いくつかの動作が並行して実施され得る。加えて、1つまたは複数の動作は、いくつかの実施形態において、省略され得る。したがって、全実施形態においてすべての示された動作が必要とされるわけではなく、他のプロセスフローが可能である。
動作810では、メモリサブシステムコントローラの処理デバイスは、ブロックファミリを初期化し、ブロックファミリの識別子をメモリ変数に格納する。
動作815では、処理デバイスは、ブロックファミリと関連付けられたタイマを初期化する。
動作820では、処理デバイスは、メモリデバイスの選択されたダイ(例えば、ランダムに選択されたダイ)の現在の温度を格納するための、ブロックファミリと関連付けられた低温度および高温度を初期化する。
動作825での、高温度値と低温度値との間の差が指定の温度閾値の値以上であるという決定に応答して、方法は、動作835に分岐し、さもなければ、処理は、動作830において継続する。
動作830での、ブロックファミリと関連付けられたタイマの値が指定のタイムアウト値以上であるという決定に応答して、処理デバイスは、動作835で、ブロックファミリを閉じ得、さもなければ、方法は、動作825に戻るようにループする。
動作835を実施することに応答して、方法は、動作810に戻るようにループする。
動作850~870は、動作810~860に対して非同期的に実施される。例示的な例において、動作810~835は、第1の処理スレッドによって実施され、動作850~870は、第2の処理スレッドによって実施される。
動作850では、処理デバイスは、メモリデバイスの選択されたダイにおける温度測定値を受信する。
動作855での、受信された温度測定値が、格納された高温度値以上であるという決定に応答して、処理デバイスは、動作860で、受信された温度測定値を格納するように高温度値を更新する。
動作865での、受信された温度測定値が、格納された低温度値を下回るという決定に応答して、処理デバイスは、動作870で、受信された温度測定値を格納するように低温度値を更新する。
図9は、本開示のいくつかの実施形態によって動作するメモリサブシステムコントローラによって読み出し動作を実施する例示的な方法のフロー図である。方法900は、ハードウェア(例えば、処理デバイス、回路、専用論理、プログラマブル論理、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(例えば、処理デバイス上で実行される(runまたはexecuted)命令)、またはそれらの組み合わせを含み得る処理論理によって実施され得る。いくつかの実施形態において、方法900は、図1のブロックファミリマネージャコンポーネント113によって実施される。特定のシーケンスまたは順序で示されるが、別段の記載のない限り、動作の順序は修正され得る。したがって、示された実施形態は、単に例として理解されるべきであり、示された動作は、異なる順序で実施され得る一方で、いくつかの動作が並行して実施され得る。加えて、1つまたは複数の動作は、いくつかの実施形態において、省略され得る。したがって、全実施形態においてすべての示された動作が必要とされるわけではなく、他のプロセスフローが可能である。
動作910では、メモリサブシステムコントローラの処理デバイスは、論理ブロックの識別子を指定する読み出しコマンドを受信する。
動作920では、処理デバイスは、論理ブロックの識別子を、メモリデバイスに格納された物理ブロックの物理アドレス(PA)へと変換する。例示的な例において、変換は、メモリデバイスと関連付けられた論理対物理(L2P)テーブルにおいて論理ブロック識別子(論理ブロックアドレスまたはLBAとも称される)をルックアップすることによって実施される。L2Pテーブルは、各マッピング記録がLBAを対応する物理アドレスにマッピングするように、複数のマッピング記録を含む。フラッシュメモリデバイスでは、物理アドレスは、チャネル識別子、ダイ識別子、ページ識別子、プレーン識別子、および/またはフレーム識別子を含み得る。
動作930では、処理デバイスは、メモリデバイスと関連付けられたブロックファミリメタデータに基づいて、物理アドレスと関連付けられたブロックファミリを識別する。例示的な例において、処理デバイスは、物理アドレスと関連付けられたブロックファミリを識別するために、図7のスーパーブロックテーブル710を利用する。
動作940では、処理デバイスは、ブロックファミリおよびメモリデバイスダイと関連付けられた閾値電圧オフセットを決定する。例示的な例において、処理デバイスは、ブロックファミリ識別子およびダイ識別子の組み合わせに対応するビン識別子を決定するために、図7のブロックファミリテーブル720を利用する。処理デバイスは、次いで、識別された閾値電圧オフセットビンに対する閾値電圧オフセットを決定するために、図7のオフセットテーブル730を利用する。
動作950では、処理デバイスは、識別された閾値電圧オフセットを、メモリデバイスと関連付けられたベース読み出しレベル電圧に適用することによって、修正された閾値電圧を計算する。本明細書内で上に記載されるように、ベース読み出しレベル電圧は、メモリデバイスのメタデータエリアに格納され得る。
動作960では、処理デバイスは、要求された読み出し動作を実施するために、計算された修正された閾値電圧を利用する。動作960を完了することに応答して、方法は終結する。
図10は、コンピュータシステムの例示的なマシン1000を示し、このコンピュータシステム内で、本明細書内で論じられた方法論のうちの任意の1つまたは複数をマシンに実施させるための命令のセットが実行され得る。いくつかの実施形態において、コンピュータシステム1000は、メモリサブシステム(例えば、図1のメモリサブシステム110)を含むか、これに結合されるか、もしくはこれを利用するか、またはコントローラの動作を実施するために(例えば、図1のブロックファミリマネージャコンポーネント113に対応する動作を実施するためにオペレーティングシステムを実行するために)使用され得る、ホストシステム(例えば、図1のホストシステム120)に対応する。代替の実施形態において、マシンは、LAN、イントラネット、エクストラネット、および/またはインターネット内の他のマシンに接続(例えば、ネットワーク化)され得る。マシンは、ピアツーピア(または分散)ネットワーク環境内のピアマシンとして、またはクラウドコンピューティングインフラストラクチャもしくは環境内のサーバもしくはクライアントマシンとして、クライアント-サーバネットワーク環境内のサーバまたはクライアントマシンの能力内で動作することができる。
マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブ電化製品、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはそのマシンによって取られるべき行動を指定する命令のセットを実行することができる(順次またはその他の方法で)任意のマシンであってもよい。さらに、単一のマシンが示されるが、用語「マシン」はまた、本明細書で論じられる方法論のうちの任意の1つまたは複数を実施するために命令のセット(または複数のセット)を個々に、またはまとめて実行するマシンの任意の集合を含むと見なされるものとする。
例示的なコンピュータシステム1000は、バス1030を介して互いと通信する、処理デバイス1002、メインメモリ1004(例えば、リードオンリメモリ(ROM)、フラッシュメモリ、シンクロナスDRAM(SDRAM)またはRambus DRAM(RDRAM)などのダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ1010(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、およびデータストレージシステム1018を含む。
処理デバイス1002は、マイクロプロセッサ、中央処理装置、または同様のものなどの1つまたは複数の汎用処理デバイスを表す。より詳細には、処理デバイスは、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサであり得る。処理デバイス1002はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、または同様のものなど、1つまたは複数の特別目的処理デバイスであり得る。処理デバイス1002は、本明細書内で論じられる動作およびステップを実施するための命令1028を実行するように構成される。コンピュータシステム1000は、ネットワーク1020を通じて通信するためにネットワークインターフェースデバイス1012をさらに含み得る。
データストレージシステム1018は、命令1028の1つもしくは複数のセット、または本明細書内に説明される方法論もしくは機能のうちの任意の1つまたは複数を具現化するソフトウェアが格納されるマシン可読記憶媒体1024(コンピュータ可読媒体としても知られる)を含み得る。命令1028はまた、コンピュータシステム1000によるその実行中、メインメモリ1004内に、および/または処理デバイス1002内に、完全に、または少なくとも部分的に存在し得、メインメモリ1004および処理デバイス1002もまた、マシン可読記憶媒体を構成する。マシン可読記憶媒体1024、データストレージシステム1018、および/またはメインメモリ1004は、図1のメモリサブシステム110に対応し得る。
1つの実施形態において、命令1028は、図1のブロックファミリマネージャコンポーネント113に対応する機能性を実装するための命令を含む。マシン可読記憶媒体1024は、単一の媒体であると例示的な実施形態においては示されるが、用語「マシン可読記憶媒体」は、命令の1つまたは複数のセットを格納する単一の媒体または複数の媒体を含むと見なされるものとする。用語「マシン可読記憶媒体」はまた、マシンによる実行のための命令のセットを格納または符号化することができる、および本開示の方法論のうちの任意の1つまたは複数をマシンに実施させる、任意の媒体を含むと見なされるものとする。用語「マシン可読記憶媒体」は、したがって、限定されるものではないが、ソリッドステートメモリ、光学媒体、および磁気媒体を含むと見なされるものとする。
先行する詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する動作のアルゴリズムおよび象徴的表現に関して提示されている。これらのアルゴリズムの説明および表現は、それらの作用の要旨を当業者に最も効果的に伝えるためにデータ処理技術において当業者により使用される方法である。アルゴリズムは、ここでは、および一般的には、所望の結果をもたらす動作の自己無撞着シーケンスであると考えられる。動作は、物理量の物理的処理を必要とするものである。通常、必須ではないが、これらの量は、格納される、組み合わされる、比較される、および別途処理されることができる電気または磁気信号の形態をとる。原則的には共通使用の理由から、これらの信号をビット、値、要素、符号、文字、項、数字、または同様のものと呼ぶことが時には簡便であることが証明されている。
しかしながら、これらのすべておよび同様の用語は、適切な物理量と関連付けられるべきであり、これらの量に適用される簡便なラベルにすぎないということに留意しておくべきである。本開示は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを、操作して、コンピュータシステムメモリもしくはレジスタまたは他のそのような情報ストレージシステム内の物理量として同様に表される他のデータへと変換する、コンピュータシステム、または同様の電子コンピューティングデバイスの行為およびプロセスを指し得る。
本開示はまた、本明細書内の動作を実施するための装置に関する。この装置は、意図した目的のために特別に構築され得るか、またはそれは、コンピュータに格納されるコンピュータプログラムによって選択的に起動または再構成される汎用コンピュータを含み得る。そのようなコンピュータプログラムは、限定されるものではないが、フロッピディスク、光学ディスク、CD-ROM、および光磁気ディスクを含む任意のタイプのディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気もしくは光学カード、または電子命令を格納するのに好適な任意のタイプの媒体などのコンピュータ可読記憶媒体に格納され得、これらの各々がコンピュータシステムバスに結合される。
本明細書内に提示されるアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたは他の装置に本質的に関連するものではない。様々な汎用システムが、本明細書内の教示に従ってプログラムと共に使用され得るか、またはそれは、本方法を実施するためにより専門化された装置を構築するのに簡便であることを証明し得る。様々なこれらのシステムの構造は、以下の説明に明記されるように見える。加えて、本開示は、任意の特定のプログラミング言語に関連して説明されるものではない。様々なプログラミング言語が本明細書内に説明されるような本開示の教示を実装するために使用され得るということを理解されたい。
本開示は、本開示に従ってプロセスを実施するようにコンピュータシステム(または他の電子デバイス)をプログラムするために使用され得る、命令が格納されているマシン可読媒体を含み得るコンピュータプログラム製品、またはソフトウェアとして提供され得る。マシン可読媒体は、マシン(例えば、コンピュータ)によって読むことが可能な形態で情報を格納するための任意の機構を含む。いくつかの実施形態において、マシン可読(例えば、コンピュータ可読)媒体は、リードオンリメモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイスなど、マシン(例えば、コンピュータ)可読記憶媒体を含む。
先述の明細書において、本開示の実施形態は、それらの特定の例示的な実施形態に関して説明されている。様々な修正が、それらに対して、以下の請求項に明記されるような本開示の実施形態の幅広い趣旨および範囲から逸脱することなくなされ得ることは明らかである。したがって、本明細書および図面は、制限的意味よりもむしろ例示的意味と考えられるべきである。

Claims (20)

  1. メモリデバイスと、
    前記メモリデバイスに動作可能に結合される処理デバイスと
    を備えるシステムであって、前記処理デバイスは、
    メモリデバイスと関連付けられたブロックファミリを初期化すること、
    前記ブロックファミリと関連付けられたタイムアウトを初期化すること、
    前記メモリデバイスに存在するブロックをプログラムすることに応答して、前記ブロックを前記ブロックファミリと関連付けること、および
    前記タイムアウトの満了を検出することに応答して、前記ブロックファミリを閉じること
    を行う、システム。
  2. 前記ブロックを前記ブロックファミリと関連付けることは、
    ブロックファミリメタデータに、前記ブロックを前記ブロックファミリと関連付ける記録を付け加えることをさらに含む、請求項1に記載のシステム。
  3. 前記処理デバイスは、
    前記メモリデバイスにおける基準温度を使用して、低温度および高温度を初期化すること、
    前記高温度と前記低温度との間の差が指定の閾値温度値以上であるという決定に応答して、前記ブロックファミリを閉じることをさらに行う、請求項1に記載のシステム。
  4. 前記処理デバイスは、
    前記ブロックファミリの第2の基準温度を受信すること、
    前記第2の基準温度が前記高温度以上であるという決定に応答して、前記第2の基準温度を格納するように前記高温度を更新すること、および
    前記第2の基準温度が前記低温度を下回るという決定に応答して、前記第2の基準温度を格納するように前記低温度を更新することをさらに行う、請求項3に記載のシステム。
  5. 前記処理デバイスは、
    前記ブロックファミリを閉じることに応答して、新たなブロックファミリを初期化することをさらに行う、請求項1に記載のシステム。
  6. 前記処理デバイスは、
    前記ブロックファミリを創出することに応答して、前記ブロックファミリを第1の閾値電圧オフセットビンと関連付けることをさらに行う、請求項1に記載のシステム。
  7. 前記処理デバイスは、
    トリガ事象を検出することに応答して、前記ブロックファミリを第2の閾値電圧オフセットビンと関連付けることを、前記第1の閾値電圧オフセットビンと関連付けられた最も古いブロックファミリを較正することによって行うことをさらに行う、請求項6に記載のシステム。
  8. 前記処理デバイスは、
    前記ブロックファミリと関連付けられた閾値電圧オフセットを決定すること、および
    前記閾値電圧オフセットを、前記メモリデバイスと関連付けられたベース読み出しレベル電圧に適用することによって、修正された閾値電圧を計算すること、
    前記修正された閾値電圧を使用して、前記ブロックファミリのブロックからデータを読み出すことをさらに行う、請求項1に記載のシステム。
  9. 処理デバイスによって、論理ブロックの識別子を指定する読み出しコマンドを受信すること、
    前記論理ブロックの前記識別子を、メモリデバイスに格納された物理ブロックの物理アドレスへと変換することであって、前記物理アドレスはメモリデバイスダイの識別子を含む、変換すること、
    前記メモリデバイスと関連付けられたブロックファミリメタデータに基づいて、前記物理アドレスと関連付けられたブロックファミリを識別すること、
    前記ブロックファミリおよび前記メモリデバイスダイと関連付けられた閾値電圧オフセットを決定すること、
    前記閾値電圧オフセットを、前記メモリデバイスダイと関連付けられたベース読み出しレベル電圧に適用することによって、修正された閾値電圧を計算すること、ならびに
    前記修正された閾値電圧を使用して、前記物理ブロックからデータを読み出すことを含む、方法。
  10. 前記ブロックファミリは、指定の時間窓または指定の温度窓のうちの少なくとも1つ内でプログラムされている複数のブロックを含む、請求項9に記載の方法。
  11. 前記ブロックファミリメタデータは、複数の記録を含む第1のテーブルを含み、前記複数の記録のうちの1つの記録は、前記物理ブロックを前記ブロックファミリと関連付ける、請求項9に記載の方法。
  12. 前記ブロックファミリメタデータは、複数の記録を含む第2のテーブルを含み、前記複数の記録のうちの1つの記録は、前記ブロックファミリの複数のダイをそれぞれの閾値電圧オフセットビンと関連付ける、請求項9に記載の方法。
  13. 前記ブロックファミリメタデータは、複数の記録を含む第3のテーブルを含み、前記複数の記録のうちの1つの記録は、閾値電圧オフセットビンを、読み出し動作を実施するためにそれぞれのベース電圧読み出しレベルに適用されるべき1つまたは複数の閾値電圧と関連付ける、請求項9に記載の方法。
  14. 処理デバイスによって、メモリデバイスと関連付けられたブロックファミリを初期化すること、
    前記ブロックファミリと関連付けられたタイムアウトを初期化すること、
    前記メモリデバイスにおける基準温度を使用して、低温度および高温度を初期化すること、
    前記メモリデバイスに存在するブロックをプログラムすることに応答して、前記ブロックを前記ブロックファミリと関連付けること、ならびに
    前記タイムアウトの満了を検出すること、または、前記高温度と前記低温度との間の差が指定の閾値温度値以上であるという決定のうちの少なくとも1つに応答して、前記ブロックファミリを閉じることを含む、方法。
  15. 前記ブロックを前記ブロックファミリと関連付けることは、
    ブロックファミリメタデータに、前記ブロックを前記ブロックファミリと関連付ける記録を付け加えることをさらに含む、請求項14に記載の方法。
  16. 前記ブロックファミリの第2の基準温度を受信すること、
    前記第2の基準温度が前記高温度以上であるという決定に応答して、前記第2の基準温度を格納するように前記高温度を更新すること、および
    前記第2の基準温度が前記低温度を下回るという決定に応答して、前記第2の基準温度を格納するように前記低温度を更新することをさらに含む、請求項14に記載の方法。
  17. 前記ブロックファミリを閉じることに応答して、新たなブロックファミリを初期化することをさらに含む、請求項14に記載の方法。
  18. 前記ブロックファミリを創出することに応答して、前記ブロックファミリを第1の閾値電圧オフセットビンと関連付けることをさらに含む、請求項14に記載の方法。
  19. 前記ブロックファミリを第2の閾値電圧オフセットビンと関連付けることを、前記第1の閾値電圧オフセットビンと関連付けられた最も古いブロックファミリを較正することによって行うことをさらに含む、請求項18に記載の方法。
  20. 前記処理デバイスは、
    前記ブロックファミリと関連付けられた閾値電圧オフセットを決定すること、および
    前記閾値電圧オフセットを、前記メモリデバイスと関連付けられたベース読み出しレベル電圧に適用することによって、修正された閾値電圧を計算すること、
    前記修正された閾値電圧を使用して、前記ブロックファミリのブロックからデータを読み出すことをさらに行う、請求項14に記載の方法。
JP2022537276A 2019-12-19 2020-12-18 メモリデバイスのためのブロックファミリベースのエラー回避 Active JP7354452B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962950341P 2019-12-19 2019-12-19
US62/950,341 2019-12-19
US16/800,221 US11231863B2 (en) 2019-12-19 2020-02-25 Block family-based error avoidance for memory devices
US16/800,221 2020-02-25
PCT/US2020/065781 WO2021127298A1 (en) 2019-12-19 2020-12-18 Block family-based error avoidance for memory devices

Publications (2)

Publication Number Publication Date
JP2023507389A JP2023507389A (ja) 2023-02-22
JP7354452B2 true JP7354452B2 (ja) 2023-10-02

Family

ID=76438097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022537276A Active JP7354452B2 (ja) 2019-12-19 2020-12-18 メモリデバイスのためのブロックファミリベースのエラー回避

Country Status (6)

Country Link
US (3) US11231863B2 (ja)
JP (1) JP7354452B2 (ja)
KR (1) KR20220106807A (ja)
CN (1) CN114981891A (ja)
DE (1) DE112020006215T5 (ja)
WO (1) WO2021127298A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11347434B2 (en) * 2020-04-21 2022-05-31 Micron Technology, Inc. Block family tracking for memory devices
US11217320B1 (en) * 2020-08-13 2022-01-04 Micron Technology, Inc. Bin placement according to program-erase cycles
US11340813B1 (en) 2020-11-16 2022-05-24 Micron Technology, Inc. Reliability scan assisted voltage bin selection
US11442641B2 (en) 2020-11-16 2022-09-13 Micron Technology, Inc. Voltage based combining of block families for memory devices
US11495309B2 (en) * 2020-12-16 2022-11-08 Micron Technology, Inc. Initiating media management operation using voltage distribution metrics in memory system
US11222704B1 (en) * 2020-12-17 2022-01-11 Micron Technology, Inc. Power state aware scan frequency
US20240069997A1 (en) * 2022-08-31 2024-02-29 Micron Technology, Inc. Caching lookup tables for block family error avoidance

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170271031A1 (en) 2013-05-31 2017-09-21 Western Digital Technologies, Inc. Updating read voltages
JP2018163715A (ja) 2017-03-24 2018-10-18 東芝メモリ株式会社 制御システム
JP2019106174A (ja) 2017-12-14 2019-06-27 インテル・コーポレーション 記憶デバイスにおけるシステムタイムスタンプを用いたバックグラウンドデータ・リフレッシュ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021181B1 (en) * 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US9025393B2 (en) 2013-03-25 2015-05-05 Seagate Technology Llc Method of optimizing solid state drive soft retry voltages
TWI489469B (zh) 2013-03-26 2015-06-21 Phison Electronics Corp 資料讀取方法、控制電路、記憶體模組與記憶體儲存裝置
US9122626B2 (en) 2013-05-13 2015-09-01 Seagate Technology Llc Linearly related threshold voltage offsets
KR102211865B1 (ko) 2014-05-20 2021-02-04 삼성전자주식회사 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
US9996281B2 (en) * 2016-03-04 2018-06-12 Western Digital Technologies, Inc. Temperature variation compensation
KR20200025184A (ko) * 2018-08-29 2020-03-10 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그 동작 방법
JP2020077443A (ja) * 2018-11-05 2020-05-21 キオクシア株式会社 メモリシステム
TWI719550B (zh) * 2019-07-23 2021-02-21 慧榮科技股份有限公司 記憶體控制器、資料儲存裝置及其開卡方法
US10957407B1 (en) * 2019-10-30 2021-03-23 International Business Machines Corporation Calculating corrective read voltage offsets in non-volatile random access memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170271031A1 (en) 2013-05-31 2017-09-21 Western Digital Technologies, Inc. Updating read voltages
JP2018163715A (ja) 2017-03-24 2018-10-18 東芝メモリ株式会社 制御システム
JP2019106174A (ja) 2017-12-14 2019-06-27 インテル・コーポレーション 記憶デバイスにおけるシステムタイムスタンプを用いたバックグラウンドデータ・リフレッシュ

Also Published As

Publication number Publication date
WO2021127298A1 (en) 2021-06-24
US20240111445A1 (en) 2024-04-04
US20210191617A1 (en) 2021-06-24
CN114981891A (zh) 2022-08-30
KR20220106807A (ko) 2022-07-29
US20220091741A1 (en) 2022-03-24
US11231863B2 (en) 2022-01-25
DE112020006215T5 (de) 2022-11-03
US11886726B2 (en) 2024-01-30
JP2023507389A (ja) 2023-02-22

Similar Documents

Publication Publication Date Title
JP7354452B2 (ja) メモリデバイスのためのブロックファミリベースのエラー回避
US11783901B2 (en) Multi-tier threshold voltage offset bin calibration
US11842772B2 (en) Voltage bin boundary calibration at memory device power up
US11886336B2 (en) Managing workload of programming sets of pages to memory device
US11727994B2 (en) Performing threshold voltage offset bin selection by package for memory devices
US11837291B2 (en) Voltage offset bin selection by die group for memory devices
US20220291849A1 (en) Selective partitioning of sets of pages programmed to memory device
US11675511B2 (en) Associating multiple cursors with block family of memory device
US11720289B2 (en) Block family tracking for memory devices
US11726689B2 (en) Time-based combining for block families of a memory device
US11675509B2 (en) Multiple open block families supporting multiple cursors of a memory device
US11823722B2 (en) Determining voltage offsets for memory read operations
KR20220143596A (ko) 메모리 장치의 전압 빈들을 교정하기 위한 임계 전압 결정

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220817

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: 20230829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230920

R150 Certificate of patent or registration of utility model

Ref document number: 7354452

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150