JP7448646B2 - 不揮発性ランダム・アクセス・メモリにおける補正読取り電圧オフセットの計算 - Google Patents

不揮発性ランダム・アクセス・メモリにおける補正読取り電圧オフセットの計算 Download PDF

Info

Publication number
JP7448646B2
JP7448646B2 JP2022524047A JP2022524047A JP7448646B2 JP 7448646 B2 JP7448646 B2 JP 7448646B2 JP 2022524047 A JP2022524047 A JP 2022524047A JP 2022524047 A JP2022524047 A JP 2022524047A JP 7448646 B2 JP7448646 B2 JP 7448646B2
Authority
JP
Japan
Prior art keywords
block
read
read voltage
given
voltage
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
JP2022524047A
Other languages
English (en)
Other versions
JP2023500068A (ja
Inventor
パパンドレウ、ニコラス
ポーツィディス、キャララムポス
イオアンノウ、ニコラス
プレトカ、ローマン
ストイカ、ラドゥ
トミック、ササ
フィッシャー、ティモシー
フライ、アーロン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023500068A publication Critical patent/JP2023500068A/ja
Application granted granted Critical
Publication of JP7448646B2 publication Critical patent/JP7448646B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3422Circuits or methods to evaluate read or write disturbance in nonvolatile memory, without steps to mitigate the problem
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output 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
    • 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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/563Multilevel memory reading aspects
    • G11C2211/5634Reference cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5648Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant

Description

本発明は、データ記憶システムに関し、より詳細には、本発明は、不揮発性ランダム・アクセス・メモリ(NVRAM)内にマルチビット/セル・モード(multi-bit-per-cell mode)で構成されたメモリのブロックに対する読取り電圧の較正に関する。
NVRAMは、電力供給がオフにされた後でも記憶された情報を保持する一種のランダム・アクセス・メモリであり、複数の異なる形を含む。一例として、フラッシュ・メモリを使用するとき、従来のNANDフラッシュに基づくソリッド・ステート・ドライブ(SSD)の性能特性は、従来のハード・ディスク・ドライブ(HDD)のものとは根本的に異なる。従来のSSD内のデータは、典型的に、4、8、または16KBサイズのページで編成される。さらに、SSDにおけるページ読取り動作は、典型的に、書込み動作より1桁分速く、レイテンシは、現在の動作場所にも以前の動作場所にも依存しない。
フラッシュ・メモリ・ブロックの生ビット・エラー・レート(RBER)は、典型的に、追加のプログラム/消去(P/E)サイクリング、経時的な電荷漏洩(すなわち、データ保持)、および読取りまたはプログラム動作によってセルに入れられる追加の電荷(すなわち、それぞれ読取りまたはプログラム妨害エラー)のために、経時的に増大する。典型的に、フラッシュ・メモリ・ブロックは、そのブロック内のいずれかのページが、ページ使用中止エラー・カウント限度に到達するコード・ワードを呈したとき、使用中止にされる。この限度は、典型的に、適当なエラー補正コード(ECC)とともに実現されるように設定されており、その結果、フラッシュ・メモリ・ブロックに対してECCを適用した後の補正不能ビット・エラー・レート(UBER)は、従来のハード・ディスク・ドライブのUBERと同様に、たとえば約10-15に設定されるが、それ以上またはそれ以下であってもよい。
読取り電圧を調整するアルゴリズムを指すブロック較正は、特に最新の3次元(3D)トリプルレベルセル(TLC)またはクワッドレベルセル(QLC)のNANDフラッシュ・メモリを使用した企業レベルのフラッシュ・メモリ・システムにとって、RBERを大幅に改善し、したがって耐久性および保持力を向上させることが示されてきた。効率的なメモリ性能を維持するための以前の試みは、典型的に、掃引式に、またはサイクリングもしくは保持力もしくは他の妨害作用の結果として閾値電圧分布がどのように変化したかに応じて読取り電圧を追跡および補正する読取り電圧シフト・アルゴリズムによって、各メモリ・ブロックに対する読取り電圧を検査することを含んでいた。
理論上、メモリ・ブロック内の各ページに対する読取り電圧は、個々に更新される。しかし、各メモリ・ブロックにおいて、メモリの記憶容量が増大するにつれて、各ページに対する読取り電圧オフセット値を維持することによって消費されるストレージの量も同様に増大する。たとえば、TLCのNANDフラッシュ・メモリにおける1セル当たり3ビットからQLCのNANDフラッシュ・メモリにおける1セル当たり4ビットへ進むと、各ブロックは、その中に含まれるページのいずれかを読み取るために、(TLCの8ではなく)16の閾値電圧レベルおよび(TLCの7ではなく)15の異なる読取り電圧を実施する。さらに、垂直スタッキングおよびプロセス技術の改善により、すべての新世代の3D NANDフラッシュの層の数も同様に増大する。続いて、各ブロック内のページの数も増大する。たとえば、現在の3D QLCのNANDフラッシュ・メモリは、90を超える層を有することができ、各ブロックは、4000を超えるページを有することができる。したがって、3D QLCのNANDにおけるこれら15の異なる読取り電圧のすべてが独立して(または個々に)較正された場合、ブロック内の各ページまたは1群のページに対する個々の組の読取りオフセット値を記憶することに伴うメタデータの量、および1ページ当たりの較正読取りの数は、大幅に増大する。
メモリの記憶容量が引き続き増大すると、メモリに付随する信頼性の問題も同様に増大する。その結果、各メモリ・ブロック内の各ページに関連付けられた読取り電圧オフセット値の数の増大に加えて、メモリの信頼性の低下によって、従来の較正エンジンが経験する処理オーバーヘッドの量も増大してきた。
1つの手法によれば、コンピュータ実施方法は、メモリ・ブロックに対する読取り電圧を較正するためのものである。コンピュータ実施方法は、複数のワード線を含むブロックの現在の動作状態を判定することを含み、複数の読取り電圧がワード線の各々に関連付けられている。さらに、ブロック内のワード線の各々に対して、所与のワード線に関連付けられた読取り電圧のうちの1つが、基準読取り電圧として選択され、基準読取り電圧に対して絶対シフト値が計算される。所与のワード線に関連付けられた残りの読取り電圧の各々に対して、相対シフト値が判定され、相対シフト値は、基準読取り電圧に対して判定される。さらに、所与のワード線に関連付けられた読取り電圧の各々は、絶対シフト値およびそれぞれの相対シフト値の各々を使用して調整される。
したがって、コンピュータ実施方法は、電圧シフト値のうちの1つのみを実際に計算する結果として、所与のワード線または1群のページあるいはその両方に関連付けられた読取り電圧のすべてに対して、電圧シフト値を判定することが可能であるということになる。これにより、処理オーバーヘッドおよび実行遅延を大幅に低減させるとともに、高い読取り性能および効率的なメモリ使用を確保する。いくつかの事例では、これらの大幅な改善は、たとえば以下でより詳細に説明するように、読取り電圧間の相対シフトがデバイス動作状態の特定の境界によって保持されていることを認識することが可能なプロセスを実施する結果として実現される。
上記のコンピュータ実施方法を引き続き参照すると、いくつかの状況では、所与のワード線に関連付けられた残りの読取り電圧の各々に対する相対シフト値を判定するプロセスは、ブロックの現在の動作状態を複数の所定の動作状態のうちの対応する1つの動作状態と一致させることを含む。さらに、相対シフト値は、一致する所定の動作状態に割り当てられた所定の電圧マッピングから抽出される。さらに、いくつかの状況によれば、相対シフト値は、ブロックの現在の動作状態に対応する所定の電圧マッピングを使用して、残りの読取り電圧に対して判定される。
したがって、所与のワード線に対する相対シフト値は、ブロックの現在の動作状態に対応する所定の電圧マッピングを使用して、残りの読取り電圧に対して判定することができるということになる。たとえば、現在較正されているブロックの現在の動作状態を、複数の所定の動作状態のうちの対応する1つの動作状態と一致させることができる。さらに、相対シフト値は単に、一致する所定の動作状態に割り当てられた所定の電圧マッピングから抽出することができる。これにより最終的に、たとえば以下でより詳細に説明するように、シフト値のうちの1つのみを計算する結果として、所与のワード線に関連付けられた読取り電圧のすべてに対する電圧シフト値を判定することが可能になる。これにより、処理オーバーヘッドおよび実行遅延をさらに低減させるとともに、高い読取り性能および効率的なメモリ使用を確保する。
別の手法によれば、コンピュータ・プログラム製品は、メモリ・ブロックに対する読取り電圧を較正するためのものである。コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含む。さらに、プログラム命令は、プロセッサによって可読または実行可能あるいはその両方であり、プロセッサに上記の方法を実行させる。
さらに別の手法によれば、システムは、データを記憶するように構成された複数のNVRAMブロックと、プロセッサと、プロセッサと一体化されまたはプロセッサによって実行可能でありあるいはその両方であるロジックとを含む。ロジックは、ブロックの各々に対して、上記の方法を実行するように構成される。
別の手法によれば、コンピュータ実施方法は、メモリ・ブロックに対する読取り電圧を較正するためのものである。コンピュータ実施方法は、複数のページ・タイプを含むブロックの現在の動作状態を判定することを含み、少なくとも1つの読取り電圧が、ページ・タイプの各々に関連付けられる。さらに、ブロック内の各ワード線に対して、読取り電圧は、それぞれのページ・タイプに基づいて、グループに分割される。さらに、所与のワード線内の読取り電圧の各グループに対して、所与のグループ内の読取り電圧のうちの1つが、基準読取り電圧として選択される。基準読取り電圧に対して、絶対シフト値も計算される。所与のグループ内の残りの読取り電圧の各々に対して、相対シフト値が判定され、相対シフト値は、基準読取り電圧に対して判定する。さらに、所与のグループ内の読取り電圧の各々は、絶対シフト値およびそれぞれの相対シフト値の各々を使用して調整される。
したがって、このコンピュータ実施方法はまた、電圧シフト値のうちの1つのみを実際に計算する結果として、所与のワード線または1群のページあるいはその両方に関連付けられた読取り電圧のすべてに対して、電圧シフト値を判定することが可能であるということになる。これにより、処理オーバーヘッドおよび実行遅延を大幅に低減させるとともに、高い読取り性能および効率的なメモリ使用を確保する。いくつかの事例では、これらの大幅な改善は、たとえば以下でより詳細に説明するように、読取り電圧間の相対シフトがデバイス動作状態の特定の境界によって保持されていることを認識することが可能なプロセスを実施する結果として実現される。
本発明の他の態様および実施形態は、図面と併せて、本発明の原理を例として示す以下の詳細な説明から明らかになる。
1つの手法による不揮発性メモリ・カードの図である。 1つの手法によるデータ記憶システム・アーキテクチャの図である。 1つの手法によるシステム図である。 1つの手法によるブロック・ストライプおよびページ・ストライプを含む概念図である。 1つの手法による3D不揮発性メモリ構造体の部分斜視図である。 1つの手法による閾値電圧シフト現象を示すグラフである。 1つの手法による方法の流れ図である。 1つの手法による方法の流れ図である。 1つの手法による複数の動作状態を提示する表である。 1つの手法による電圧マッピングを提示する表である。 1つの手法によるページ・タイプに基づく電圧マッピングを提示する一連の表である。 1つの手法によるネットワーク・アーキテクチャの図である。 1つの手法による、図9のサーバまたはクライアントあるいはその両方に関連付けることができる代表的なハードウェア環境の図である。 1つの手法による階層型データ記憶システムの図である。
以下の説明は、本発明の一般原理を例示することを目的としてなされたものであり、本明細書に特許請求される発明の概念を限定することを意味しない。さらに、本明細書に記載する特定の特徴は、様々な可能な組合せおよび順列の各々で他の記載の特徴と組み合わせて使用することができる。
本明細書に別途具体的に定義しない限り、すべての用語は、本明細書から示唆される意味、ならびに当業者には理解される意味または辞書、専門書などに定義される意味あるいはその両方を含めて、可能な限り最も広い解釈が与えられるものとする。
また、本明細書および添付の特許請求の範囲で使用されるとき、単数形の「a」、「an」、および「the」は、別途指定しない限り、複数の参照物も含むことにも留意されたい。本明細書で使用されるとき、「備える、含む(comprises)」または「備えている、含んでいる(comprising)」あるいはその両方という用語は、記載の特徴、整数、ステップ、動作、要素、または構成要素あるいはその組合せの存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、またはそれらの集合あるいはその組合せの存在または追加を除外しないことが、さらに理解されよう。
以下の説明は、データ記憶システム、ならびにその動作または構成要素部分あるいはその両方のいくつかの手法を開示する。本明細書の様々な手法は、たとえばNANDフラッシュ・メモリ、NORフラッシュ・メモリ、相変化メモリ(PCM)、磁気抵抗RAM(MRAM)、および抵抗RAM(RRAM)などのNVRAM技術を含む広い範囲のメモリ媒体によって実施することができることを理解されたい。文脈を提供し、専ら読者を支援するために、一種の不揮発性メモリを参照して様々な手法について説明することがある。これは、例示のみを目的としてなされたものであり、特許請求の範囲に定義される本発明を限定すると見なされるべきではない。
1つの概略的な手法では、コンピュータ実施方法は、メモリ・ブロックに対する読取り電圧を較正するためのものである。コンピュータ実施方法は、複数のワード線を含むブロックの現在の動作状態を判定することを含み、複数の読取り電圧がワード線の各々に関連付けられている。さらに、ブロック内のワード線の各々に対して、所与のワード線に関連付けられた読取り電圧のうちの1つが、基準読取り電圧として選択され、基準読取り電圧に対して絶対シフト値が計算される。所与のワード線に関連付けられた残りの読取り電圧の各々に対して、相対シフト値が判定され、相対シフト値は、基準読取り電圧に対して判定する。さらに、所与のワード線に関連付けられた読取り電圧の各々は、絶対シフト値およびそれぞれの相対シフト値の各々を使用して調整される。
別の概略的な手法では、コンピュータ・プログラム製品は、メモリ・ブロックに対する読取り電圧を較正するためのものである。コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含む。さらに、プログラム命令は、プロセッサによって可読または実行可能あるいはその両方であり、プロセッサに上記の方法を実行させる。
さらに別の概略的な手法では、システムは、データを記憶するように構成された複数のNVRAMブロックと、プロセッサと、プロセッサと一体化されまたはプロセッサによって実行可能でありあるいはその両方であるロジックとを含む。ロジックは、ブロックの各々に対して、上記の方法を実行するように構成される。
別の概略的な手法では、コンピュータ実施方法は、メモリ・ブロックに対する読取り電圧を較正するためのものである。コンピュータ実施方法は、複数のページ・タイプを含むブロックの現在の動作状態を判定することを含み、少なくとも1つの読取り電圧が、ページ・タイプの各々に関連付けられる。さらに、ブロック内の各ワード線に対して、読取り電圧は、それぞれのページ・タイプに基づいて、グループに分割される。さらに、所与のワード線内の読取り電圧の各グループに対して、所与のグループ内の読取り電圧のうちの1つが、基準読取り電圧として選択される。基準読取り電圧に対して、絶対シフト値も計算される。所与のグループ内の残りの読取り電圧の各々に対して、相対シフト値が判定され、相対シフト値は、基準読取り電圧に対して判定する。さらに、所与のグループ内の読取り電圧の各々は、絶対シフト値およびそれぞれの相対シフト値の各々を使用して調整される。
図1は、1つの手法によるメモリ・カード100を示す。この手法では、メモリ・カード100が例示的な不揮発性データ記憶カードとして描かれているが、代替手法によるデータ記憶システムでは、様々な他のタイプの不揮発性データ記憶カードを使用することができることに留意されたい。したがって、メモリ・カード100のアーキテクチャまたは構成要素あるいはその両方は、本発明を限定することを何ら意図したものではなく、逆に非限定的な例として提示されているということになる。
さらに、選択肢として、このメモリ・カード100は、他の図を参照して記載するものなど、本明細書に挙げる任意の他の手法からの特徴とともに実施することができる。しかし、そのようなメモリ・カード100および本明細書に提示する他のメモリ・カードは、本明細書に挙げる例示的な手法で具体的に記載するかどうかにかかわらず、様々な応用例または順列あるいはその両方で使用することができる。さらに、本明細書に提示するメモリ・カード100は、任意の所望の環境で使用することができる。
図1を引き続き参照すると、メモリ・カード100は、ゲートウェイ102と、GPPメモリ114(RAM、ROM、バッテリ・バックアップ式DRAM、相変化メモリPC-RAM、MRAM、STT-MRAMなど、またはこれらの組合せを備えることができる)に接続された汎用プロセッサ(GPP)112(ASIC、FPGA、CPUなど)と、この例ではフラッシュ・コントローラを含む複数のメモリ・コントローラ108とを含む。各メモリ・コントローラ108は、チャネル106を介して、複数のNVRAMメモリ・モジュール104(NANDフラッシュまたは上に挙げたものなどの他の不揮発性メモリ・タイプを備えることができる)に接続される。
様々な手法によれば、コントローラ108のうちの1つまたは複数は、1つまたは複数のプロセッサ、またはメモリ・カード100の任意のサブシステムを制御するための任意のロジックあるいはその両方とすることができ、またはそれらを含むことができる。たとえば、コントローラ108は、典型的に、データの書込み、データの再循環、データの読取りなどのNVRAMメモリ・モジュール104の機能を制御する。様々な手法において、コントローラ108は、当技術分野で知られているロジック、ならびに本明細書に開示する任意のロジックを使用して動作することができ、したがって本明細書に含む不揮発性メモリの説明のいずれかに対するプロセッサと見なすことができる。
さらに、コントローラ108は、本明細書に提示する方法のいくらかまたはすべてを実行または制御するように構成することができ、またはプログラム可能とすることができ、あるいはその両方とすることができる。したがって、コントローラ108は、1つまたは複数のチップ、モジュール、またはブロックあるいはその組合せ、1つまたは複数のプロセッサに利用可能なソフトウェア、ファームウェア、または他の命令あるいはその組合せなど、およびそれらの組合せにプログラムされたロジックによって、様々な動作を実行するように構成されると見なすことができる。
図1をさらに参照すると、各メモリ・コントローラ108はまた、コントローラ・メモリ110に接続されており、コントローラ・メモリ110は、本明細書に記載する様々な手法による不揮発性メモリ構造体を複製するキャッシュを含むことが好ましい。しかし、所望の手法に応じて、コントローラ・メモリ110は、バッテリ・バックアップ式DRAM、相変化メモリPC-RAM、MRAM、STT-MRAMなど、またはそれらの組合せとすることができる。
前述のように、メモリ・カード100は、所望の手法に応じて、様々なタイプのデータ記憶システムで実施することができる。図2は、本発明を限定することを何ら意図しない例示的な手法によるデータ記憶システム・アーキテクチャ200を示す。さらに、図2のデータ記憶システム220は、図1の手法に見られる様々な構成要素を含むことができることに留意されたい。
図2を参照すると、データ記憶システム220は、I/O相互接続204を介して1つまたは複数のプロセッサ・システム201に通信するように構成された複数のインターフェース・カード202を備える。データ記憶システム220はまた、複数の不揮発性データ記憶カード208内のデータ・ストレージを制御するように構成された1つまたは複数のRedundant Array of Independent Disks(RAID)コントローラ206を備えることができる。不揮発性データ記憶カード208は、NVRAM、フラッシュ・メモリ・カード、RAM、ROM、または何らかの他の知られているタイプの不揮発性メモリあるいはその組合せを備えることができる。
I/O相互接続204は、ファイバ・チャネル(FC)、FC over Ethernet(R)(FCoE)、Infiniband、Internet Small Computer System Interface(iSCSI)、Transport Control Protocol/Internet Protocol(TCP/IP)、Peripheral Component Interconnect Express(PCIe)などの任意の知られている通信プロトコル、または任意のそれらの組合せ、あるいはその組合せを含むことができる。
データ記憶システム220内のRAIDコントローラ206は、この説明を読めば当業者には理解されるはずであるように、RAID-5、RAID-6、RAID-10、または何らかの他の好適なパリティ・スキームによって用いられるものに類似したパリティ・スキームを実行することができる。
各プロセッサ・システム201が、1つまたは複数のプロセッサ210(CPU、マイクロプロセッサなど)と、ローカル・データ・ストレージ211(たとえば、図10のRAM1014、図10のROM1016など)と、データ記憶システム220と通信するように構成されたI/Oアダプタ218とを備える。
図1を再び参照すると、メモリ・コントローラ108または本明細書に記載する他のコントローラ(たとえば、図2のRAIDコントローラ206)あるいはその両方は、所望の手法に応じて、記憶データ上で様々な機能を実行することが可能である。具体的に、メモリ・コントローラは、以下の機能のうちのいずれか1つまたは複数を実行するように構成されたロジックを含むことができる。これらの機能は、排他的なリストであることを何ら意図したものではない。言い換えれば、この説明を読めば当業者には理解されるはずであるように、所望の手法に応じて、記憶システムのロジックは、追加または代替の機能を実行するように構成することができる。
ガーベッジ・コレクション(garbage collection)
この説明のSSDメモリ・コントローラの文脈で、ガーベッジ・コレクションは、将来の使用のために回収されるデータのブロックを識別し、それらのブロック内でまだ有効なすべてページを再配置するプロセスを含むことができる。さらに、特有のコントローラまたはそれぞれのガーベッジ・コレクション動作ユニット(garbage collection unit of operation)あるいはその両方に応じて、回収または再配置あるいはその両方のために、論理消去ブロック(LEB:logical erase block)を識別することができる。典型的に、1つのLEBは、1つのブロック・ストライプに対応するが、代替実装例は、固定数のブロック・ストライプがLEBを構築することも同様に考慮することができる。
物理「ブロック」は、たとえばNANDフラッシュ・メモリなどの不揮発性メモリ上で消去することができ、それによってそのようなメモリにデータを書き込むために準備することができる最小単位に相当する。しかし、典型的なガーベッジ・コレクション動作ユニットは、不揮発性メモリの物理ブロックの倍数であることが多く、本明細書ではこれもLEBも呼ぶ。これは、典型的にRAID状のパリティ情報がLEBに追加されることによる。したがって、ページまたはブロックの場合、LEB内のすべてブロックがデータをまだ保持しているとき、障害データのみを再構築することができる。それに応じて、ガーベッジ・コレクション・ユニットからの個々のブロックは、LEB内のすべてブロックからのすべてのまだ有効なデータが新しい場所へうまく再配置された後にのみ、個々に、または単一の単位で、消去することができる。したがって、すべてのガーベッジ・コレクション・ユニットが、単一の単位としてガーベッジ・コレクションされる。さらに、LEBのサイズは、ガーベッジ・コレクションによって誘発される書込み増幅(write amplification)に直接影響する。LEBが大きければ大きいほど、無関係のデータがLEB内にともに記憶される可能性が高くなり、したがってガーベッジ・コレクション選択の際に、LEBデータのうちより多くのデータを再配置しなければならない可能性がある。
多くの場合、同じグループからのブロックを並列に読み取りまたは書き込むことができ、それによって全体的な帯域幅を増大させることができるように、異なるダイまたはフラッシュ・チャネルあるいはその両方からのブロックがともにグループ化される。前述の2つの方法を組み合わせて、並列にアクセスすることができる異なるフラッシュ・チャネルからのブロックを使用してRAIDストライプを構成することも可能である。
LEBは、物理的な消去の単位である物理メモリ・ブロックの任意の倍数を含むことができることにも留意されたい。さらに、メモリ・ブロックをLEBに編成することで、異なるメモリ・チップ、メモリ・プレーン、またはチャネルあるいはその組合せからのメモリ・ブロックの間にRAID状のパリティ保護スキームを追加することが可能になるだけでなく、より高い並列性によって性能を大幅に向上させることも可能になる。たとえば、複数の不揮発性メモリ・ブロックを、RAIDストライプ内でともにグループ化することができる。この説明を読めば当業者には理解されるように、RAIDスキームは概して、信頼性を改善し、データ損失の確率を低減させる。
本発明を限定することを何ら意図しない例示的な手法によれば、メモリ・コントローラ(たとえば、図1の108参照)は、ガーベッジ・コレクションを内部で実行することができる。前述のように、ガーベッジ・コレクションは、再配置すべきLEBを選択することを含むことができ、その後、選択されたLEB上でまだ有効であるすべてのデータを再配置する(たとえば、動かす)ことができる。まだ有効なデータが再配置された後、LEBを消去することができ、その後、そのLEBは、新しいデータを記憶するために使用することができる。ガーベッジ・コレクションされたLEBから再配置されるデータの量が、書込み増幅を決定する。さらに、書込み増幅を低減させる効率的な方法は、熱分離(heat segregation)を実施することを含む。
熱分離
この文脈で、データの「書込み熱(write heat)」は、データが更新される(たとえば、新しいデータによって書き換えられる)速度(たとえば、頻度)を指す。「高温」であると見なされるメモリ・ブロックは、頻繁な更新速度を有する傾向があり、「低温」であると見なされるメモリ・ブロックは、高温のブロックより遅い更新速度を有する。
論理ページの書込み熱を追跡することは、たとえば、ページが特定の期間または窓においてどれだけ多くの書込み動作を見たかを追跡するために、特定の数のビットを、ページに対する論理対物理テーブル(LPT:logical to physical table)マッピング・エントリに割り当てることを伴うことができる。典型的に、ホストの書込み動作は、書込み熱を増大させるのに対して、内部の再配置書込みは、書込み熱を減少させる。書込み熱に対する実際の増分または減分あるいはその両方は、決定論的または確率論的とすることができる。
同様に、各論理ページに対するLPT内の特定の数の追加のビットによって、読取り熱(read heat)を追跡することができる。メタデータを低減させるために、物理ブロック・レベルで読取り熱を追跡することもでき、またがっている読取りおよびまたがっていない読取りに対して、ブロックごとに別個のカウンタを維持することができる。しかし、いくつかの手法では、メモリ・ブロックの熱を判定するとき、メモリ・ブロックに対する読取り要求またはメモリ・ブロック上で実行される読取り動作あるいはその両方の数が熱分離に関与しないことがあることに留意されたい。たとえば、特定のメモリ・ブロックからデータが頻繁に読み取られた場合、高い読取り頻度は必ずしも、メモリ・ブロックが高い更新速度も有することを意味しない。逆に、所与のメモリ・ブロック上で実行される高い頻度の読取り動作は、メモリ・ブロック内に記憶されているデータの重要性、値などを指すことができる。
同じ書込み熱値または類似の書込み熱値あるいはその両方のメモリ・ブロックをグループ化することによって、書込み熱分離を実現することができる。特に、書込み熱分離方法は、高温の書込みメモリ・ページを特定のメモリ・ブロック内にともにグループ化することができ、低温の書込みメモリ・ページは、別個のメモリ・ブロック内にともにグループ化される。したがって、書込み熱分離されたLEBは、高温または低温の書込みデータによって占有される傾向がある。
書込み熱分離の利点は2つある。第1に、高温の書込みメモリ・ブロック上でガーベッジ・コレクション・プロセスを実行することで、低温の書込みデータの再配置も同様にトリガするのを防止する。熱分離がなければ、高温の書込みデータに対する更新が頻繁に実行される結果、再配置されている高温のデータと同じLEB上に配置されたすべての低温の書込みデータの望ましくない再配置も生じる。したがって、書込み熱分離を実施する手法の場合、ガーベッジ・コレクションを実行することによって受ける書込み増幅がはるかに低くなる。
第2に、ウェア・レベリングの目的で、データの相対的な書込み熱を利用することができる。たとえば、より健康な(たとえば、より若い)メモリ・ブロック内に、高温の書込みデータを配置することができ、それらのより健康なメモリ・ブロックに比べてそれほど健康でない(たとえば、より古い)メモリ・ブロック内に、低温の書込みデータを配置することができる。したがって、比較的古いブロックが摩耗に露出される速度が実際的に遅くなり、それによって書込み熱分離を実施する所与のデータ記憶システムの全体的な耐久性が改善される。
書込み割当て(write allocation)
書込み割当ては、書込み動作のデータを開いたLEBの自由な場所に配置することを含む。LEB内のすべてのページが書き込まれるとすぐに、LEBは閉じられ、占有されたLEBを保持するプール内に配置される。典型的に、占有されたプール内のLEBは、ガーベッジ・コレクションに適当となる。通常、開いたLEBの数は制限されており、閉じられたLEBは、ただちに、またはある程度の遅延後に、開いている新しいLEBと交換することができる。
実行中、ガーベッジ・コレクションは、ユーザ書込み動作と同時に行うことができる。たとえば、ユーザ(たとえば、ホスト)がデバイスにデータを書き込むとき、デバイス・コントローラは、新しく入ってくるデータ・ページのための空間を作るために、無効なデータを有するLEB上でガーベッジ・コレクションを連続して実行することができる。上述したように、ガーベッジ・コレクションが実行されているLEBは、多くの場合、ガーベッジ・コレクション動作の時点でまだ有効ないくつかのページを有しており、したがって、これらのページは、新しいLEBに再配置される(たとえば、書き込まれる)ことが好ましい。
この場合も、上記の機能は、本明細書に記載または示唆あるいはその両方の記憶システムのいずれかの能力を限定することを何ら意図したものではない。逆に、上述した機能は例として提示されており、所望の手法に応じて、記憶システムのロジックは、この説明を読めば当業者には理解されるはずであるように、追加または代替の機能を実行するように構成することができる。
図3を次に参照すると、1つの手法によるシステム300が示されている。選択肢として、このシステム300は、他の図を参照して記載するものなど、本明細書に挙げる任意の他の手法からの特徴とともに実施することができる。しかし、そのようなシステム300および本明細書に提示する他のシステムは、本明細書に挙げる例示的な手法で具体的に記載するかどうかにかかわらず、様々な応用例または順列あるいはその両方で使用することができる。さらに、本明細書に提示するシステム300は、たとえばコントローラと組み合わせて、任意の所望の環境で使用することができる。
例示するように、システム300は、ガーベッジ・コレクタ304を含むいくつかの他の構成要素に結合された書込みキャッシュ302を含む。前述のように、ガーベッジ・コレクタ304は、有効なデータを再配置し、後の再利用のために消去すべき不揮発性メモリ・ブロックを提供することによって、LEBユニットを自由にするために使用することができる。したがって、ガーベッジ・コレクタ304は、所望の手法に応じて、連続する物理空間のブロックを回収することができる。例示的な手法によれば、ブロック消去ユニットは、ガーベッジ・コレクタ304によって引き渡される不揮発性メモリ・ブロックの消去の追跡または完了あるいはその両方のために使用することができる。
書込みキャッシュ302はまた、消去された後の自由な不揮発性メモリ・ブロックを追跡することができる自由ブロック・マネージャ306に結合される。さらに、この説明を読めば当業者には理解されるはずであるように、自由ブロック・マネージャ306は、消去された自由な不揮発性メモリ・ブロックを使用して、異なるレーン(たとえば、ブロック・ストライプ)から不揮発性メモリ・ブロックの自由ストライプを構築することができる。
図3をさらに参照すると、書込みキャッシュ302は、LPTマネージャ308およびメモリI/Oユニット310に結合される。LPTマネージャ308は、論理アドレスから物理メモリ・ページへの論理対物理マッピングを維持する。本発明を限定することを何ら意図しない一例によれば、LPTマネージャ308は、4KiBの論理アドレスの論理対物理マッピングを維持することができる。メモリI/Oユニット310は、たとえば1つまたは複数の不揮発性メモリ・ページの読取り、不揮発性メモリ・ページの書込み、不揮発性メモリ・ブロックの消去などの低レベル動作を実行するために、メモリ・チップと通信する。
本明細書におけるブロック・ストライプとページ・ストライプとの違いをより良好に理解するために、図4Aは、1つの手法による概念図400である。LEBは、ブロック・ストライプから構築されており、典型的には、1つのLEBを構築するために単一のブロック・ストライプが使用される。しかし、代替の手法では、1つのLEBを形成するために複数のブロック・ストライプを使用することができる。選択肢として、この概念図400は、他の図を参照して記載するものなど、本明細書に挙げる任意の他の手法からの特徴とともに実施することができる。しかし、そのような概念図400および本明細書に提示する他の概念図は、本明細書に挙げる例示的な手法で具体的に記載するかどうかにかかわらず、様々な応用例または順列あるいはその両方で使用することができる。さらに、本明細書に提示するコントローラの概念図400は、任意の所望の環境で使用することができる。したがって、図4Aの例示的な不揮発性メモリ・コントローラの概念図400は、キャッシュ・アーキテクチャ内で実施することができる。しかし、所望の手法に応じて、図4Aの概念図400は、不揮発性メモリ内に記憶されるデータの編成を定義するときに実施することができる。それに応じて、両方の実装例について、以下に順に説明する。
不揮発性メモリ
図4Aを次に参照すると、概念図400は、「プレーン0」~「プレーンM」と示されている1組のM+1の集合プレーンを含む。集合プレーンは、異なるチャネル上で同じプレーン・インデックスを有するすべての物理プレーンからなる。本明細書では、集合プレーンを単にプレーンとも呼ぶことに留意されたい。
不揮発性メモリ内に記憶されたデータによって実施されるとき、チャネル上の各物理プレーンは、多数のブロック、たとえば典型的に約1024、2048、またはそれ以上のブロックを含むことができる。さらに、1つまたは複数の物理プレーンは、不良ブロック(たとえば、不十分に機能するブロック、望ましくない特性を有するブロックなど)に対する交換ブロックとして使用することができるいくつかの追加のブロックを含むこともできる。
不揮発性メモリの各プレーン内で、各チャネルからの単一のブロックが、それぞれのブロック・ストライプを形成する。したがって、不揮発性メモリの所与の手法が対応する複数のブロック・ストライプは、1プレーン当たりのブロックの数およびプレーンの数によって決定することができるということになる。
プレーン0の分解図では、概念図400は、残りのプレーン内で対応される1組のブロック・ストライプから、単一のブロック・ストライプ(ブロック・ストライプ0)をさらに示す。プレーン0のブロック・ストライプ0が、11のブロックを含み、「チャネル0」~「チャネル10」で示される各チャネルから1つのブロックを含むことが示されている。ブロックからブロック・ストライプへの関連付けは、ブロック・ストライプが典型的にガーベッジ・コレクションされた後に分解されるにつれて、経時的に変化することがあることに留意されたい。消去されたブロックは、自由なブロック・プールに配置することができ、それによって、書込み割当てが新しいブロック・ストライプを要求するとき、自由なブロック・プール内のブロックから新しいブロック・ストライプが組み立てられる。たとえば、概念図400を参照すると、チャネル0からのブロック10およびチャネル4からのブロック41が、現在、プレーン0の示されているブロック・ストライプ0に関連付けられている。さらに、図示のブロック・ストライプ0は、N+1のページ・ストライプを保持しており、したがって各ブロックが、「ページ0」~「ページN」で示されるN+1のページを保持する。
キャッシュ・アーキテクチャ
図4Aをさらに参照すると、集合プレーン0の分解図に示すページの各ブロックは、キャッシュ・アーキテクチャ内で実施されるとき、1つのチャネルからの固有のブロックを構成することができる。同様に、各チャネルは、1つのブロック・ストライプを形成する単一の個々のブロックに寄与する。たとえば、概念図400を参照すると、チャネル0からのブロック10は、その中にすべてのページ(ページ0~ページN)を含み、チャネル4からのブロック41は、その中のすべてのページに対応し、以下同様である。
たとえばRAIDをチャネル・レベルで実施することが可能であるメモリ・コントローラの文脈で、1つのブロック・ストライプは、1つのブロック・ストライプの量に相当する複数のブロックから構成される。図4Aをさらに参照すると、集合プレーン0の複数のブロックが、ブロック・ストライプ0を構成する。1つのブロック・ストライプ内のすべてのブロックが、典型的に、同じ集合プレーンに属するのに対して、いくつかの手法では、1つのブロック・ストライプの1つまたは複数のブロックが、異なる物理プレーンに属することもできる。したがって、各集合プレーンは、1つまたは複数のブロック・ストライプを含むことができるということになる。したがって、例示的な手法によれば、異なる物理プレーンからのブロック0~ブロック10が、1つのブロック・ストライプを構成することができる。
図4Aの概念図400が、不揮発性メモリによって実施されるか、またはキャッシュ・アーキテクチャによって実施されるか、あるいはその両方であるかにかかわらず、異なる手法において、各ブロック内のページの数、または各プレーン内のチャネルの数、あるいはその両方は、所望の手法に応じて変動することがある。本発明を限定することを何ら意図しない例示的な手法によれば、1つのブロックが1024ページを含むことができるが、様々な手法では、それ以上またはそれ以下を含むこともできる。同様に、1プレーン当たりのチャネルの数、またはプレーンの数、あるいはその両方は、所望の手法に応じて変動することがある。
図4Aをさらに参照すると、同じページ・インデックスを有するブロック・ストライプ内のすべてのページが、1つのページ・ストライプを指す。たとえば、ページ・ストライプ0は、プレーン0のブロック・ストライプ0内の各チャネルの第1のページ(ページ0)を含む。同様に、ページ・ストライプNは、プレーン0のブロック・ストライプ0内の各チャネルの最後のページ(ページN)を含む。
図4Aの概念図400に示す概略的な記憶アーキテクチャはまた、いくつかの手法において、3Dメモリ構造体を使用することによって実施される。たとえば、図4Bは、1つの手法による3D不揮発性メモリ構造体450の代表図を描く。選択肢として、この構造体450は、図4Aなどの他の図を参照して記載するものなど、本明細書に挙げる任意の他の手法からの特徴とともに実施することができる。しかし、そのような構造体450および本明細書に提示する他の構造体は、本明細書に挙げる例示的な手法で具体的に記載するかどうかにかかわらず、様々な応用例または順列あるいはその両方で使用することができる。さらに、本明細書に提示する構造体450は、任意の所望の環境で使用することができる。したがって、図4B(および他の図)は、任意の可能な順列を含むと考えることができる。
図示するように、3D不揮発性メモリ構造体450の各層452は、x軸およびy軸の両方に沿って延びる。これらの層452の各々は、電圧供給ライン、センサ・スタック、トランジスタなど、複数の記憶構成要素(図示せず)を含み、そのような記憶構成要素は、たとえばこの説明を読めば当業者には理解されるはずであるように、図4Aの概念図400に示す概略的な記憶アーキテクチャの不揮発性メモリ・デバイスを実施するために使用される。さらに、様々な層452は、記憶密度および効率を増大させるために、z軸に沿って積層状に配置される。ワード線(典型的に、図4Bのxまたはy次元)に沿って異なるビット線からのセルを論理的に組み合わせて、ページを形成する。したがって、各ブロックは、複数のワード線を含み、各ワード線に、複数の読取り電圧が関連付けられる。たとえば、TLC内で、ブロック内の各ワード線は、3つの物理ページ(たとえば、下部ページ、上部ページ、および追加ページ)を含み、ワード線は、典型的に、z次元(xy平面に直交)における1つの特定の層に属する。
ワード線およびビット線によって接続されたセルの格子から形成される特定のブロックの場合、同じ層上に位置するワード線の数は典型的に小さい。したがって、すべての層452のワード線から、1つのブロックを形成することができる。さらに、同じブロック内のワード線ならびにページが、異なる層452上に位置することもできる。たとえばこの説明を読めば当業者には理解されるはずであるように、1つのブロックが、複数のタイプのページ(たとえば、上部ページ、下部ページ、追加ページ、頂部ページ)を含み、少なくとも1つの読取り電圧が、ページ・タイプの各々に関連付けられることにも留意されたい。
この場合も、サイクリング、保持力、読取り妨害、プログラム妨害など、または3DのNANDフラッシュ技術(たとえば、浮遊ゲートまたは電荷トラップに基づく技術)、プロセス技術、セルおよび材料設計、回路およびアレイのアーキテクチャなど、もしくは他の特有の設計要因に特有の他の機構により、メモリ・ブロック内のプログラムされた閾値電圧分布は、データの書込みおよび消去(サイクリング)、データの読取り(読取り妨害)、時間(保持力)などとともに、比較的遅くまたは速く変化することがある。言い換えれば、フラッシュ・メモリ・ブロックのRBERは、時間および使用とともに増大する。メモリ・ブロックが使用されるにつれて、ブロック上で実行される各P/Eサイクルが、メモリ・セルの損傷を引き起こし、対応するRBERを増大させる。
ブロック較正は、経験するRBERを低減させることによって、フラッシュ・記憶システム、たとえば特に企業レベルのフラッシュ・システムに対する耐久性および保持力を向上させるという重要な態様である。このブロック較正は、読取り電圧に対応しており、閾値電圧分布の変化を追跡し、それに応じて読取り電圧を調整することが可能なアルゴリズムを参照し、それによって、普通ならエラー回復機構の呼出しに起因して生じるはずの読取りテール・レイテンシを低減させることにより、ビット・エラーを大幅に低減させ、それぞれのデバイスにおける性能一貫性を改善する。
さらに、それに応じて、読取りコマンド中に、読取り電圧に対する調整が適用される。したがって、閾値電圧は、所与のフラッシュ・メモリ・セルのトランジスタをオンにすることに関連付けられた電圧を表し、その値は、プログラム中に蓄積される電荷の量に依存するということになる。しかし、読取り電圧はバイアス電圧であり、その値は、典型的に、たとえば図5に以下でより詳細に説明するように、2つの隣接する論理状態の閾値電圧間にある。
図5をすぐに参照すると、一例による閾値電圧シフト現象を示すグラフ500が示されている。グラフ500のx軸は、プログラムされた閾値電圧VTHを表し、y軸は、QLCのNANDフラッシュ・メモリ・ブロックの対応するセル・カウントを表す。QLCのNANDフラッシュ・メモリでは、各メモリ・セルが、4ビットの情報を記憶し、したがってVTH分布は、16の可能な個別のレベル(L0、L1、...、L15)に対応する。さらに、QLCのNANDフラッシュの所与のブロック内の異なる各タイプのページは、そのページに対応する異なる1組の読取り電圧を有する。本発明を限定することを何ら意図しない一例によれば、下部ページは、V8の読取り電圧に対応し、上部ページは、V4およびV12の読取り電圧に対応し、追加ページは、V2、V6、V10、およびV14の読取り電圧に対応し、頂部ページは、V1、V3、V5、V7、V9、V11、V13、およびV15の読取り電圧に対応する。
実線の分布502は、プログラム後のVTHレベルを示す。垂直の実線504は、VTH分布502に最適の読取り電圧(V1、...、V15)を示す。点線の分布506は、経時的な電荷損失によるVTHレベルの負のシフトを示す。こうしたより低い電圧への負のシフトにより、読取り電圧504は最適ではなくなる。実際には、VTH分布の502から506への変化を相殺するために、負のオフセットが読取り電圧に適用されなければならない。垂直の破線508は、506におけるVTH分布の保持中に最適の読取り電圧(V1、...、V15)を示す。概して、この図に示す16のレベル(L0、L1、...、L15)の各々は、異なるVTHシフトを有することができ、したがって15の読取り電圧(V1、...、V15)の各々が、異なる最適のシフトを有することができる。
それに応じて、ブロックが書き込まれた直後、またはその後周期的に、あるいはその両方で、読取り電圧シフト値(またはオフセット値)が判定されることが好ましい。閾値電圧は、プログラムされたセル・レベル(すなわち、L0、L1、...、L15)のインデックスであると見なすことができ、これは、メモリ・セルに制御ゲート・バイアスが適用されたときにソース-ドレイン電流を測定することによって判定される。典型的には、読取り動作の際、メモリ・セル状態を判定するために、隣接する公称閾値電圧レベル間の1つまたは複数の読取り電圧が使用される。メモリ・セルの閾値電圧値が変化すると(上記で説明)、それに応じて、読取り動作中に印加される読取り電圧は、最適の読出し条件を取得し、RBERを最小にするために、1組のオフセット値を使用してシフトされることが好ましい。続いて、最適の読取り電圧シフト値は、周期的に、たとえばバックグラウンドの健康チェックで、または要求に応じて、たとえば高いビット・エラー・カウントまたはECC障害の場合に、更新することができる。
いくつかのブロック(たとえば、長いP/Eサイクルによって引き起こされたものなど)の場合、RBERの増大は修復不能であるが、保持または読取り妨害あるいはその両方などの事象によって引き起こされるRBERの増大は、影響されるブロックが不可逆的に損傷されるわけではないという意味で一時的である。この好ましくないRBERの増大は、対応するメモリ・ブロックが再較正されて対応する読取り電圧が補正されると補修される。他の手法では、一時的なRBERの増大を経験したブロックは、消去、プログラム、および再較正によって補修することができる。したがって、ブロックのRBERは、ブロックの状態に依存することが明らかであり、ブロックの状態は、サイクリング状態、保持状態、読取り妨害状態、またはそれらの任意の組合せによって判定することができる。ブロック再較正は、VTH分布の様々な変化、恒久的な作用、または一時的な作用あるいはその組合せを受けて最適になるように、読取り電圧を調整することによって、RBERを改善する。
理論上、メモリ・ブロック内の各ページに対する読取り電圧は、個々に更新される。しかし、各メモリ・ブロックにおいて、メモリの記憶容量が増大するにつれて、各ページに対する読取り電圧オフセット値を維持することによって消費されるストレージの量も同様に増大する。たとえば、TLCのNANDフラッシュ・メモリにおける1セル当たり3ビットからQLCのNANDフラッシュ・メモリにおける1セル当たり4ビットへ進むと、各ブロックは、その中に含まれるページのいずれかを読み取るために、(TLCの8ではなく)16の閾値電圧レベルおよび(TLCの7ではなく)15の異なる読取り電圧を実施する。さらに、垂直スタッキングおよびプロセス技術の改善により、すべての新世代の3D NANDフラッシュの層の数も同様に増大する。続いて、各ブロック内のページの数も増大する。たとえば、現在の3D QLCのNANDフラッシュ・メモリは、90を超える層を有することができ、各ブロックは、4000を超えるページを有することができる。したがって、3D QLCのNANDにおけるこれら15の異なる読取り電圧のすべてが独立して(または個々に)較正された場合、ブロック内の各ページまたは1群のページに対する個々の組の読取りオフセット値を記憶することに伴うメタデータの量、および1ページ当たりの較正読取りの数は、大幅に増大する。
メモリの記憶容量が引き続き増大すると、メモリに付随する信頼性の問題も同様に増大する。その結果、各メモリ・ブロック内の各ページに関連付けられた読取り電圧オフセット値の数の増大に加えて、メモリの信頼性の低下によって、従来の較正エンジンが経験する処理オーバーヘッドの量も増大してきた。
従来の記憶システムがメモリ性能を管理してきたますます非効率的になる方法とはきわめて対照的に、本明細書に含む手法のうちの様々な手法は、較正オーバーヘッドを大幅に低減させながら、読取り性能を改善することが可能である。これらの改善は、いくつかの手法では、たとえば以下でより詳細に説明するように、メモリ較正プロセスにおいて実行される読取り動作の数を低減させる結果として実現される。
図6Aを次に参照すると、1つの手法による、マルチビット/セル・モードで構成されたメモリ・ブロックに対する読取り電圧を較正する方法600のフローチャートが示されている。方法600は、本発明によれば、様々な手法で、とりわけ図1~図5に描く環境のいずれかで実行することができる。たとえば、方法600に含まれるプロセスのいずれかは、たとえば3D TLCのNANDフラッシュ、3D QLCのNANDフラッシュなどのNVRAM、または任意の他の所望のタイプのメモリ内の記憶空間のブロックに対して実行することができる。さらに、この説明を読めば当業者には理解されるように、図6Aに具体的に説明するものより多いまたは少ない動作を、方法600に含むことができる。
方法600のステップの各々は、動作環境の任意の好適な構成要素によって実行することができる。たとえば、様々な手法では、方法600は、コントローラ(たとえば、フラッシュ・コントローラ)、プロセッサ、コンピュータなど、または1つもしくは複数のプロセッサを有する何らかの他のデバイスによって、部分的または完全に実行することができる。したがって、いくつかの手法では、方法600は、コンピュータ実施方法とすることができる。コンピュータ、プロセッサ、およびコントローラという用語は、本明細書の手法のいずれかに関して区別なく使用することができ、そのような構成要素は、本発明の多くの様々な順列において同等であると見なされることにも留意されたい。
さらに、プロセッサを有するそれらの手法の場合、ハードウェアまたはソフトウェアあるいはその両方で実施され、好ましくは少なくとも1つのハードウェア構成要素を有するプロセッサ、たとえば処理回路、チップ、またはモジュールあるいはその組合せを、いずれかのデバイスで利用して、方法600の1つまたは複数のステップを実行することができる。例示的なプロセッサは、それに限定されるものではないが、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組合せ、または当技術分野で知られている任意の他の好適なコンピューティング・デバイスを含む。
図6Aに示すように、方法600の動作602は、次のメモリ・ブロックへ進むことを含む。この説明に関して、「次のメモリ・ブロック」は、所与の手法に応じて変動することがある。たとえば、方法600を開始するとき、次のメモリ・ブロックは、単に第1のメモリ・ブロックとすることができる。他の手法では、次のメモリ・ブロックは、次の論理メモリ・ブロックとすることができる。さらに、動作602は、たとえば順次、ランダム、パターンを使用するなど、任意の所望の形で、メモリのブロック間を進むことができる。さらに、動作602は、周期的に、たとえば週1回、すべてのNANDブロックを調べるバックグラウンド・プロセスによってトリガすることができ、または要求に応じて、たとえばブロック内のページ読取りが高いビット・エラー・カウントもしくはECC障害を呈した場合にトリガすることができる。さらに、メモリは、NVRAMを含むことが好ましい。たとえば、いくつかの手法では、メモリは3D TLCのNANDフラッシュを含み、他の手法では、メモリは3D QLCのNANDフラッシュを含む。
決定604は、所与のメモリ・ブロックを再較正するべきかどうかを判定することをさらに含む。いくつかの手法では、特定のブロックをいつ再較正するべきであるか、および特定のブロックを再較正するべきであるかどうかを識別する基準を実施することができる。たとえば、所定の数のP/Eサイクル(たとえば、500回のP/Eサイクル)を経験した後、望ましくなく低い性能メトリック(たとえば、ビット・エラーの数が所定のエラー・カウント閾値を呈する)を経験した後、最後の再較正から所定の量の時間が経過した後などに、ブロックを再較正することができる。これにより、たとえばこの説明を読めば当業者には理解されるはずであるように、経験する演算オーバーヘッドの量のある程度の低減が可能になる。
いかなる理由であれ、所与のメモリ・ブロックを再較正するべきでないと判定したことに応答して、方法600は動作602に戻り、それによって次のブロックへ進み、決定604を繰り返す。しかし、所与のメモリ・ブロックを再較正するべきであると判定したことに応答して、方法600は動作606へ進む。そこで、動作606は、所与のメモリ・ブロックの現在の動作状態を判定することを含む。
この動作状態は、たとえばブロックに対応する統計を含めて、様々なタイプの利用可能な情報に基づいて判定することができる。たとえば、P/Eサイクリング・カウンタ値、読取り妨害カウンタ値、保持タイマによって維持される保持時間の量、開放/閉鎖ブロック状態、すなわち所与のブロックが部分的または完全にプログラムされているかどうか、ブロック内のプログラムされたページの数、動作温度などを含むブロック統計を使用して、ブロックの現在の動作状態を判定することができる。所与のメモリ・ブロックが経験している可能性のある現在の動作状態の例示的なリストは、何らそれに限定されるものではないが、保持状態、読取り妨害状態、サイクリング状態、開放または閉鎖あるいはその両方の状態(たとえば、ブロック内のページの一部またはすべてがプログラムされているかどうか)など、またはそれらの任意の組合せを含む。
所与のブロックが経験している可能性のある動作状態は、閾値電圧(図5のL0~L15)の状態を記述する情報を提供し、したがって所与のブロックに対応するそれぞれの読取り電圧(図5のV1~V15)に必要とされる調整を提供することができる。これは主に、所与のワード線に対する閾値電圧が、たとえば少なくとも互いに対して同じまたは類似の動作条件に露出されたとき、類似の摩耗機構を経験し、したがってそれぞれの読取り電圧が、類似のシフトまたは調整を必要とするからである。言い換えれば、所与のワード線に対する閾値電圧の各々は、1組の所与の動作条件を受けたことに応答して、それぞれのシフトを経験する。これらのシフトは、典型的に、同じワード線内の閾値電圧の各々に対して同じ値ではないが、これらの間の相対的な差は、予測可能に繰返し可能である。たとえば、その後、ワード線が同じまたは類似の1組の動作条件に遭遇するたびに、それぞれの各閾値電圧によって経験される相対的な閾値電圧シフト、したがって閾値電圧シフトを相殺するための相対読取り電圧シフトが、以前に遭遇したものと同じであると予測することができる。
本発明を限定することを何ら意図しない一例によれば、所与のブロックB上で実行した試験により、特定の動作状態S1にあるとき、第1の読取り電圧が-4のシフトを経験し、第2の読取り電圧が-8のシフトを経験し、第3の読取り電圧が-2のシフトを経験することが明らかになる。それによって、これらのシフト値の各々の間の関係をメモリ内に記憶することができ、これは、動作状態S1の場合、第1の読取り電圧が、第2の読取り電圧のシフトの1/2のシフトを経験し、第3の読取り電圧が、第2の読取り電圧のシフトの1/4のシフトを経験するように、ブロックBが反応することを示す。したがって、次にブロックBが動作状態S1を経験するとき、いかなる較正、演算なども実行することなく、第1、第2、および第3の読取り電圧が同じ相対シフトを経験すると予測することができる。同様に、同じ動作状態S1を有する別のブロックCもまた、いかなる較正、演算なども実行することなく、その第1、第2、および第3の読取り電圧は、ブロックBが経験したものと同じ相対シフトを経験するという予測から利益を得ることができる。
したがって、その読取り電圧の各々に発生する相対変化を判定するために、複数の異なる動作状態下でブロックを試験することができるということになる。これらの相対変化はまた、たとえば以下でより詳細に説明するように、同じまたは類似の動作状態にあるブロックに対する読取り電圧シフト値をメモリから単に抽出することができるように、メモリ内に(たとえば、ルックアップ・テーブル内の所定の電圧マッピングとして)記憶することができる。相対読取り電圧シフトは、将来の使用のためにメモリ内に記憶することができるが、これらの読取り電圧シフトは、互いに対して表されるだけである。したがって、相対読取り電圧シフトは、経験した実際の読取り電圧シフト値のいずれかを判定することができない。しかし、たとえばすぐに明らかになるように、1つの読取り電圧に対する実際の読取り電圧シフト値を計算することによって、相対読取り電圧シフトを使用して、読取り電圧の残りに対する実際の読取り電圧シフト値を外挿することができる。
図6Aを再び参照すると、方法600は動作606から動作608へ進む。そこで、動作608は、評価されている現在のブロック内の次のワード線へ進むことを含む。前述のように、「次のワード線」は、所与の手法に応じて変動することがある。たとえば、ブロックの次のワード線は単に、動作608の最初の反復中の第1のワード線とすることができる。他の手法では、次のワード線は、ブロック内の次の論理ワード線とすることができる。さらに、動作608は、たとえば順次、ランダム、パターンを使用するなど、任意の所望の形で、ワード線間を進むことができる。
動作610は、所与のワード線に関連付けられた読取り電圧のうちの1つを基準読取り電圧として選択することをさらに含み、動作612は、基準読取り電圧に対する絶対シフト値を計算することを含む。上述したように、1つの読取り電圧(ここでは、「基準読取り電圧」)に対する実際の読取り電圧シフト値(ここでは、「絶対シフト値」)を計算することによって、相対読取り電圧シフトを使用して、読取り電圧の残りに対する実際の読取り電圧シフト値を外挿することができる。
たとえば所望の手法に応じて、所与のワード線に関連付けられた読取り電圧のうちのいずれか1つを、基準読取り電圧として選択することができる。たとえば、いくつかの手法では、最も右の読取り電圧(たとえば、最も高い読取り電圧)を基準読取り電圧として選択することができ、他の手法では、最も左の読取り電圧(たとえば、最も低い読取り電圧)を基準読取り電圧として選択することができる。さらに他の手法では、ワード線に対する読取り電圧のうちのランダムな1つ、ワード線に対して最も大きい電圧シフト値を経験すると予測される読取り電圧、ユーザによって選択された読取り電圧などを、基準読取り電圧として選択することができる。基準読取り電圧に対する絶対シフト値はまた、この説明を読めば当業者には明らかなはずの任意のプロセスを使用して計算することができる。
動作614へ進むと、方法600は、所与のワード線に関連付けられた残りの読取り電圧の各々に対する相対電圧シフト値を判定することを含む。上述したように、所与のワード線に関連付けられた読取り電圧に対する相対シフト値は、過去の実行の試験、モデル化、分析などに基づいて分かることが好ましい。したがって、基準読取り電圧に対する絶対シフト値を、相対シフト値と組み合わせて使用して、読取り電圧の残りに対する実際の読取り電圧シフト値を外挿することができるということになる。言い換えれば、相対シフト値は、基準読取り電圧に対して判定する。
いくつかの手法では、相対シフト値は、所定の電圧マッピングに組み込まれる。所定の電圧マッピングは、相対シフト値を、全般的なブロックの所与の動作状態に対するそれぞれの読取り電圧の各々に相関させる。たとえば、図8Aをすぐに参照すると、表800は、例示的な電圧マッピングを示す。図示するように、各動作状態s1、s2、...、sNが、それに対応する複数の相対シフト値(たとえば、a(2,5))を有する。相対シフト値の各々は、それぞれの読取り電圧(たとえば、V5)とさらに相関される。
したがって、所与のワード線に対する相対シフト値は、ブロックの現在の動作状態に対応する所定の電圧マッピングを使用する方法600の動作614で、残りの読取り電圧に対して判定することができるということになる。たとえば、たとえば図8Aの表800に見られるように、現在較正されているブロックの現在の動作状態を、複数の所定の動作状態のうちの対応する1つの動作状態と一致させることができる。さらに、相対シフト値は単に、一致する所定の動作状態に割り当てられた所定の電圧マッピングから抽出することができる。これにより最終的に、たとえば以下でより詳細に説明するように、シフト値のうちの1つのみを計算する結果として、所与のワード線に関連付けられた読取り電圧のすべてに対する電圧シフト値を判定することが可能になる。これにより、処理オーバーヘッドおよび実行遅延を大幅に低減させるとともに、高い読取り性能および効率的なメモリ使用を確保する。
図6Aを引き続き参照すると、動作616は、絶対シフト値およびそれぞれの相対シフト値の各々を使用して、所与のワード線に関連付けられた読取り電圧の各々を調整することを含む。上述したように、相対シフト値は、基準読取り電圧に対して計算された絶対シフト値に対するものである。したがって、それぞれの相対シフト値を絶対シフト値に適用し、その結果得られるシフト値を所与の読取り電圧に適用することによって、読取り電圧(基準読取り電圧以外)の各々を調整することができる。
ブロックBに関して上記で提示した例に戻ると、第2の読取り電圧を基準読取り電圧と呼ぶことができる。その結果、第2の読取り電圧に対して、-8の絶対シフト値が計算されるはずであり、これは、その読取り電圧に-8のシフトが適用されるべきであることを示す。この-8の絶対シフト値を使用すると、第1の読取り電圧に対する1/2、第3の読取り電圧に対して1/4の相対シフト値は、-4の実際のシフト値が第1の読取り電圧に適用されるべきであり、-2の実際のシフト値が第3の読取り電圧に適用されるべきであることを示す。
いくつかの手法では、動作616で、絶対シフト値は基準読取り電圧にも適用される。しかし、他の手法では、上記の動作612で計算を実行する一部として、絶対シフト値を基準読取り電圧に適用することができる。この説明を読めば当業者には明らかなはずの方法で、絶対シフト値、または他の結果として得られるシフト値、あるいはその両方を、それぞれの読取り電圧に適用することができる。たとえば、いくつかの手法では、シフト値をメモリ内に記憶し、適用のためにメモリ・コントローラへ送信し、それを使用して、それぞれの読取り電圧を実際に調整することなどができる。
方法は、動作616から動作618へ進み、動作618は、ワード線カウンタ(word-line counter)を増分させることを含む。上述したように、方法600は、較正されるブロックの各々の各ワード線に加えて、メモリ内の様々なブロックを較正するために使用されることが好ましい。したがって、ワード線カウンタを使用して、所与のブロック内のどれだけ多くのワード線が評価されているかを追跡することができるということになる。ワード線カウンタは、たとえば手法に応じて、任意の所望の単位で増分させることができることにも留意されたい。さらに、ワード線カウンタは、較正される各ブロックに対して基底値(たとえば、0)にリセットされることが好ましい。
決定620へ進むと、ワード線カウンタが現在較正されているブロック内に含まれるワード線の数より大きいかどうかに関して判定がなされる。言い換えれば、決定620は、このブロック内のワード線の各々が評価されているかどうかを判定する。ワード線カウンタがブロック内に含まれるワード線の数以下であると判定したことに応答して、方法600は動作608に戻り、したがってたとえば上述したように、次のワード線を評価することができる。したがって、ブロック内の各ワード線に対して、プロセス608~620を反復して繰り返すことができるということになる。
決定620に戻ると、方法600は、ワード線カウンタがブロック内に含まれるワード線の数より大きいと判定したことに応答して、動作602に戻る。言い換えれば、方法600は動作602に戻り、したがって次のブロックを較正することができる。したがって、メモリ内の各ブロックに対して、プロセス602~620を反復して繰り返すことができるということになる。その結果、方法600における様々なプロセスにより、特に数百パーセント大きい較正オーバーヘッドを経験することがある従来のプロセスと比較して、経験する較正オーバーヘッドを大幅に低減させることが可能になる。
方法600は、ワード線の各々における1つの基準読取り電圧に対する絶対シフト値を計算することを伴うが、ページ・タイプに基づいて、所与のワード線内の読取り電圧をさらに分割する結果として、類似の改善を実現することができる。たとえば、図6Bを次に参照すると、1つの手法による、マルチビット/セル・モードで構成されたメモリ・ブロックに対する読取り電圧を較正する別の方法650が示されている。しかし、図6Bの方法650は、図6Aからの方法600の変形例を含み、メモリ・ブロックに対する読取り電圧を較正するプロセスのいくつかの例示的な構成を示すことに留意されたい。それに応じて、図6Bの様々なプロセスは、図6Aのものと共通の番号を有する。したがって、方法650に含まれるプロセスのうちのいずれか1つまたは複数が、方法600に含まれるプロセスに関して上述した手法のうちのいずれか1つまたは複数を実施することができる。
方法650は、本発明によれば、様々な手法で、とりわけ図1~図5に描く環境のいずれかで実行することができる。たとえば、方法650に含まれるプロセスのいずれかは、たとえば3D TLCのNANDフラッシュ、3D QLCのNANDフラッシュなどのNVRAM、または任意の他の所望のタイプのメモリ内の記憶空間のブロックに対して実行することができる。さらに、この説明を読めば当業者には理解されるように、図6Bに具体的に説明するものより多いまたは少ない動作を、方法650に含むことができる。
方法650のステップの各々は、動作環境の任意の好適な構成要素によって実行することができる。たとえば、様々な手法では、方法650は、コントローラ(たとえば、フラッシュ・コントローラ)、プロセッサ、コンピュータなど、または1つもしくは複数のプロセッサを有する何らかの他のデバイスによって、部分的または完全に実行することができる。したがって、いくつかの手法では、方法650は、コンピュータ実施方法とすることができる。コンピュータ、プロセッサ、およびコントローラという用語は、本明細書の手法のいずれかに関して区別なく使用することができ、そのような構成要素は、本発明の多くの様々な順列において同等であると見なされることにも留意されたい。
さらに、プロセッサを有するそれらの手法の場合、ハードウェアまたはソフトウェアあるいはその両方で実施され、好ましくは少なくとも1つのハードウェア構成要素を有するプロセッサ、たとえば処理回路、チップ、またはモジュールあるいはその組合せを、いずれかのデバイスで利用して、方法650の1つまたは複数のステップを実行することができる。例示的なプロセッサは、それに限定されるものではないが、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組合せ、または当技術分野で知られている任意の他の好適なコンピューティング・デバイスを含む。
図6Bに示すように、方法650の動作602は、次のメモリ・ブロックへ進むことを含む。上述したように、この説明に関して、「次のメモリ・ブロック」は、所与の手法に応じて変動することがある。方法650は、動作602から決定604へ進み、決定604は、所与のメモリ・ブロックを再較正するべきであるかどうかを判定する。
いかなる理由であれ、所与のメモリ・ブロックを再較正するべきでないと判定したことに応答して、方法650は動作602に戻り、それによって次のブロックへ進み、決定604を繰り返す。しかし、所与のメモリ・ブロックを再較正するべきであると判定したことに応答して、方法650は動作606へ進む。そこで、動作606は、たとえば上述した手法のいずれかによって、所与のメモリ・ブロックの現在の動作状態を判定することを含む。さらに、動作608は、評価されている現在のブロック内の次のワード線へ進むことを含む。前述のように、「次のワード線」は、所与の手法に応じて変動することがある。
方法650は、このワード線に対応する読取り電圧を、それぞれのページ・タイプに基づいてグループに分割することをさらに含む。動作652を参照されたい。読取り電圧は、所与のグループ内の読取り電圧の各々が同じページ・タイプに対応するように分割されることが好ましい。たとえば、第1のグループ内の読取り電圧の各々が、所与のワード線内の頂部ページに対応することができ、第2のグループ内の読取り電圧の各々が、所与のワード線内の追加ページに対応することができる。これらのグループは、手法に応じて、異なる形で呼ぶことができる。たとえば、いくつかの手法では、対応するフラグを設定し、1つまたは複数の異なる表に読取り電圧をリスト化し、読取り電圧に識別子を割り当てることなどによって、読取り電圧の各々を所与のグループに割り当てることができる。
ページ・タイプに基づいて読取り電圧を複数のグループに分割したことに応答して、グループの各々を、個々に、または並列で、あるいはその両方で、評価してから、次のワード線へ進むことが好ましい。それに応じて、動作654は、読取り電圧の次のグループへ進むことを含む。上述したように、読取り電圧の「次」のグループは単に、所望の手法に応じて、グループのうちの第1のグループ、次のグループ、最後のグループ、ランダムな1つなどとすることができる。
方法650は、動作654から動作656へ進み、動作656は、所与のグループ内の読取り電圧のうちの1つを基準読取り電圧として選択することをさらに含む。上述したように、たとえば所望の手法に応じて、所与のグループ内の読取り電圧のうちのいずれか1つを、基準読取り電圧として選択することができる。たとえば、いくつかの手法では、グループ内の第1の読取り電圧を基準読取り電圧として選択することができ、他の手法では、グループ内の最も左の読取り電圧(たとえば、最も低い読取り電圧)を基準読取り電圧として選択することができる。さらに他の手法では、グループ内の読取り電圧のうちのランダムな1つ、グループに対して最も大きい電圧シフト値を経験すると予測される読取り電圧、ユーザによって選択された読取り電圧などを、基準読取り電圧として選択することができる。
動作612は、基準読取り電圧に対する絶対シフト値を計算することをさらに含み、動作658は、所与のグループ内の残りの読取り電圧の各々に対する相対電圧シフト値を判定することを含む。したがって、たとえばこの説明を読めば当業者には理解されるはずであるように、所与のグループ内の残りの読取り電圧に対して動作658を実行するために、動作614に関して上述した手法のうちのいずれか1つまたは複数を修正することができ、またはそのまま実施することができ、あるいはその両方とすることができるということになる。
たとえば、好ましい手法では、所与のグループ内の残りの読取り電圧の各々に対する相対電圧シフト値は、ブロックの現在の動作状態および所与のグループ内のページのタイプを、複数の所定の動作状態のうちの対応する1つの動作状態と一致させることによって判定される。さらに、相対シフト値は、一致する所定の動作状態に割り当てられた、所与のグループ内のページ・タイプに対応する所定の電圧マッピングから抽出されることが好ましい。したがって、所与のグループに対応する特有のページ・タイプが、判定される相対電圧シフト値に影響を与えるということになる。図8Bをすぐに参照すると、表830、840、850、860は、異なるページ・タイプに各々対応する例示的な電圧マッピングを示す。したがって、表830、840、850、860の各々が、所与のワード線に対する異なる1群のページ・タイプに対応することができるということになる。図示するように、各ページ・タイプLP、UP、XP、TPに対する各動作状態s1、s2、...、sNが、それに対応する複数の相対シフト値(たとえば、表860のa(2,5))を有する。相対シフト値の各々は、それぞれの読取り電圧(たとえば、表860のV5)とさらに相関される。
上述したように、ブロックの現在の動作状態ならびに所与のグループ内のページ・タイプに対応する所定の電圧マッピングを使用する方法650の動作658で、残りの読取り電圧に対して、所与のページ・グループに対する相対シフト値を判定することができる。たとえば、現在較正されているブロックの現在の動作状態を、複数の所定の動作状態のうちの対応する1つの動作状態と一致させることができる。たとえば図8Bの表830、840、850、860に見られるように、所定の動作状態は、それに関連付けられた複数の電圧マッピングをさらに有することができ、電圧マッピングの各々は、ページ・タイプのうちの異なる1つのタイプに対応する。さらに、相対シフト値は単に、一致する所定の動作状態およびページ・タイプに割り当てられた所定の電圧マッピングから抽出することができる。これにより最終的に、たとえば以下でより詳細に説明するように、シフト値のうちの1つのみを実際に計算する結果として、所与のグループに関連付けられた読取り電圧のすべてに対して、電圧シフト値を判定することが可能になる。これにより、処理オーバーヘッドおよび実行遅延を大幅に低減させるとともに、高い読取り性能および効率的なメモリ使用を確保する。
図6Bを引き続き参照すると、動作660は、絶対シフト値およびそれぞれの相対シフト値の各々を使用して、所与のグループ内の読取り電圧の各々を調整することを含む。上述したように、相対シフト値は、所与のグループの基準読取り電圧に対して計算された絶対シフト値に対するものである。したがって、それぞれの相対シフト値を絶対シフト値に適用し、その結果得られるシフト値を所与の読取り電圧に適用することによって、グループ内の読取り電圧(基準読取り電圧以外)の各々を調整することができる。したがって、この場合も、たとえばこの説明を読めば当業者には理解されるはずであるように、動作660を実行するために、動作616に関して上述した手法のうちのいずれか1つまたは複数を修正することができ、またはそのまま実施することができ、あるいはその両方とすることができるということになる。
方法650は動作660から決定662へ進み、決定662は、現在のワード線に対応するグループの各々が評価されているかどうかを判定する。グループのうちの少なくとも1つがまだ評価されていないと判定したことに応答して、方法650は動作654に戻り、したがって読取り電圧の次のグループへ進むことができる。したがって、ワード線内の各グループに対して、方法650に含まれるプロセス654~662を反復して繰り返すことができるということになる。
しかし、現在のワード線に対応するグループの各々が評価されていると判定したことに応答して、方法650は動作618へ進む。そこで、動作618は、ワード線カウンタを増分させることを含む。この場合も、方法650は、較正されるブロックの各々の各ワード線に加えて、メモリ内の様々なブロックを較正するために使用されることが好ましい。したがって、ワード線カウンタを使用して、所与のブロック内のどれだけ多くのワード線が評価されているかを追跡することができるということになる。したがって、決定620へ進むと、ワード線カウンタが現在較正されているブロック内に含まれるワード線の数より大きいかどうかに関して判定がなされる。ワード線カウンタがブロック内に含まれるワード線の数以下であると判定したことに応答して、方法650は動作608に戻り、したがってたとえば上述したように、次のワード線を評価することができる。したがって、ブロック内の各ワード線に対して、方法650に含まれるプロセス608~620を反復して繰り返すことができるということになる。
決定620を再び参照すると、方法650は、ワード線カウンタがブロック内に含まれるワード線の数より大きいと判定したことに応答して、動作602に戻る。言い換えれば、方法650は動作602に戻り、したがって次のブロックを較正することができる。したがって、メモリ内の各ブロックに対して、方法650に含まれるプロセス602~620を反復して繰り返すことができるということになる。
また方法650における様々なプロセスにより、特に数百パーセント大きい較正オーバーヘッドを経験することがある従来のプロセスと比較して、経験する較正オーバーヘッドを大幅に低減させることが可能になる。
方法600および650は、読取り電圧シフト値がどれだけ判定されるかに関して、異なる細分性レベルを実施するが、いくつかの手法では、2つの方法を組み合わせて単一のプロセスにすることができる。たとえば、方法(図示せず)は、読取り電圧をワード線レベルで評価するか、それとも特有のページ・タイプ・レベルで評価するかを判定する決定を含むことができる。言い換えれば、たとえばユーザ入力、システム設定、性能メトリックなどに応じて、所与のブロックに対して、上記で論じた較正ポリシのどちらを実施するべきかを判定する方法を実施することができる。
図7を次に参照すると、上述したように、表700は、所与のメモリ・ブロックが現在経験している可能性のある複数の例示的な動作状態(たとえば、s参照)を提示する。図示するように、「状態」列に挙げる状態の各々は、複数の異なるタイプの統計に対する特定の値に対応する。一例によれば、状態sk+1は、0~1000回のP/Eサイクル、0~24時間の保持時間、0の読取り妨害サイクルを経験したブロックに対応し、システムの動作温度は40℃である。したがって、上記の範囲および値に一致する統計を有すると判定されたいずれのブロックも、sk+1の現在の動作状態を有すると識別することができるということになる。ブロックの現在の動作状態が所定の動作状態のうちの1つと一致した後、所定の動作状態をさらに使用して、評価されているブロックの読取り電圧に対する所定の相対シフト値を識別することができる。たとえば、以下の図8A~図8Bを参照されたい。当業者には理解されるように、表700は、P/Eサイクル、保持時間、読取り妨害サイクル、動作温度、または他の統計の異なる値または範囲に対して、複数の異なる動作状態を含むことができる。
図7を引き続き参照すると、複数のブロック動作状態が、所与の記憶システムの様々なブロック、ワード線、ページ・タイプなどに対して事前決定されることが好ましい。たとえば、図7の表700に示す複数のブロック動作状態は、手法に応じて、特定のタイプのメモリ、特定の製品、特有のユーザなどに対して事前決定することができる。さらに、これらのブロック動作状態は、試験、モデル化、製造者仕様、過去の実行情報などを使用して事前決定することができる。
上述したように、これらの動作状態の各々は、評価されているブロックに関連付けられた読取り電圧に対する特定の相対シフト値とさらに相関させることができる。たとえば、図8Aを参照すると、表800は、例示的な電圧マッピングを含む。動作状態s1、s2、...、sNの各々は、ブロックの現在の動作状態を所定の動作状態と比較することに応答して、図7に示すものなどの表から選択することができる。それによって、図8Aの表800を使用して、ブロックが経験している特有の動作状態に対応する複数の相対シフト値(たとえば、a(2,5))を識別することができる。たとえば本明細書に含む手法のいずれかによって、相対シフト値の各々が、それぞれの読取り電圧(たとえば、V5)とさらに相関され、それを使用して、読取り電圧の大部分に対する実際の読取り電圧シフト値を計算することができる。
図8Bはまた、表830、840、850、860を含み、これらの表は各々、特有のページ・タイプに対応する電圧マッピングを含む。したがって、図8Aの表800と同様に、表830、840、850、860を使用して、たとえば追加ページ「XP」などの同じタイプのページに対応する様々な読取り電圧に対する相対シフト値を判定することができる。たとえば本明細書に含む手法のいずれかによって、相対シフト値の各々が、それぞれの読取り電圧(たとえば、表860のV5)とさらに相関され、それを使用して、所与のページ・タイプに関連付けられた読取り電圧の大部分に対する実際の読取り電圧シフト値を計算することができる。たとえば、所与のグループ内の複数の読取り電圧の各々に対する相対電圧シフト値は、ブロックの現在の動作状態および所与のグループ内のページのタイプを、複数の所定の動作状態のうちの対応する1つの動作状態と一致させることによって判定される(たとえば、図7参照)。その後、相対シフト値は、一致する所定の動作状態に割り当てられた、所与のグループ内のページのタイプに対応する所定の電圧マッピングから抽出されることが好ましい。
表830、840、850、860の各々において、読取り電圧のうちの特有の1つが、基準電圧「基準」として識別されているが、これは何ら限定的であることを意図したものではないことに留意されたい。上述したように、たとえば所望の手法に応じて、所与のグループ内の読取り電圧のいずれかを、基準電圧として選択することができる。
したがって、本明細書に含む様々な手法は、電圧シフト値のうちの1つのみを実際に計算する結果として、所与のワード線または1群のページあるいはその両方に関連付けられた読取り電圧のすべてに対する電圧シフト値を判定することが可能であるということになる。これにより、処理オーバーヘッドおよび実行遅延を大幅に低減させるとともに、高い読取り性能および効率的なメモリ使用を確保する。上述したように、これらの大幅な改善は、読取り電圧間の相対シフトがデバイス動作状態の特定の境界によって保持されていることを認識することが可能なプロセスを実施する結果として実現される。本明細書に含む手法のいくつかは、電圧の絶対シフト値が変化しているが、相対シフト値は上記の境界内で保持されたままであることを認識することがさらに可能である。したがって、相対電圧シフト値をそれぞれの基準電圧とマッピングすることによって、相対シフト値を絶対シフト値から切り離すことができる。ブロックの現在の動作状態を判定することによって、所与のブロックが前述の境界内にあるかどうかに関して判定をなすことができ、電圧の相対シフト値は保持される。また、基準電圧を使用して、ブロックが経験することがある異なる動作状態中の絶対シフト値の変化を周期的に追跡することができる。
本発明を限定することを何ら意図しない使用中の例によれば、図5に示す閾値電圧シフトは、3D QLCのNANDに対応し、ここで、i=所与のブロックに対する0、1、...、15の電圧閾値(VTH)レベルである。それに応じて、「s」は、ブロックの状態を指すものとする(たとえば、ブロックは、「x」回のp/eサイクル、「y」週間の保持などを経験している)。その結果、ワード線「w」における第iのVTH分布の平均の変化を、VTH(i,w,s)=VTH(i,w,0)+Δ・a(i,w,s)と表すことができ、ここでVTH(i,w,0)は、ブロックが最初にプログラムされたとき(たとえば、寿命の始まり)のVTHである。さらに、Δは、VTHシフトの正の単位であり、a(i,w,s)は、ブロックが状態0に対して状態sにあるときの第iのVTH分布のシフト量を表す整数値を指す。
したがって、i=0,...,15として、ブロックの所与の状態に対して、整数セットa(i,w,s)によって16のVTH分布を特徴付けることができる。最も右の分布を基準として使用して、上記のセットは、a’(0,w,s)、a’(1,w,s)、...、a’(14,w,s)、a’(15,w,s)と書くことができ、ここでa’(i,w,s)=a(i,w,s)/|a(15,w,s)|である。この正規化セットは、i=15としたVTHの変化に対して、状態sにおける16のVTH分布の相対変化を表す。たとえば、sは、1,000回のサイクル、および1週間の保持に対応するものとし、したがって次の式1が当てはまる。
{a’(0,w,s),a’(1,w,s),...,a’(14,w,s),a’(15,w,s)}={-0.1,-0.2,...,-0.8,-1}
式1
それに応じて、式1は、VTHの変化を補償するために、対応する読取り電圧の類似のシフトに関係するVTH分布の平均のシフトの表現を提供する。ワード線wおよびブロック状態sに対して、i=0,...,15としてa’(i,w,s)というVTHシフトの前述の表現は、ブロック動作のマージンにさらに保持される。これは、典型的な(たとえば、一時的でない)摩耗機構による16のVTH分布の相対シフトが、比較的ゆっくりと変化するプロセスであるからである。相対変化は、典型的に、VTHシフト(たとえば、保持中の電荷損失)の原因となる物理機構によって引き起こされる。たとえば、典型的に、VTH分布の相対変化は、0~1週間の保持中に同じままであるが、1~2週間の保持中には変化することがあり、以下同様であり、したがって{a’(0,w,s1=1,000サイクルおよび0~1週間の保持),a’(1,w,s1),...,a’(14,w,s1),a’(15,w,s1)}={-0.1,-0.2,-0.2,...,-0.8,-1}である。さらに、{a’(0,w,s2=1,000サイクルおよび1~2週間の保持)、a’(1,w,s2),...,a’(14,w,s2)、a’(15,w,s2)}={-0.2,-0.3,-0.3,...,-0.9,-1}である。
他方では、16のVTH分布の絶対シフトは、比較的速いプロセス(たとえば、少なくとも典型的な摩耗機構に比べて)になることがあり、絶対シフトもまた、処理の変動、材料など、または他の技術特有の変動性の問題により、ブロックの異なる部分(たとえば、ワード線の異なる層またはグループなど)間で変動することがある。したがって、{a’(0,下位層でw1,s),a’(1,w1,s),...,a’(14,w1,s),a’(15,w1,s)}={a’(0,上位層でw2),a’(1,w2,s),...,a’(14,w2,s),a’(15,w2,s)}であるが、(15,w1,s)=-4であるとき、a(15,w2,s)=-5である。
したがって、本明細書に含む手法のうちの様々な手法は、1つまたは複数の基準読取り電圧を使用してブロックの現在の状態sを識別することによって、任意の所与の状態sで読取り電圧を較正し、所与の状態sにおけるそれらの基準電圧の絶対シフトを判定し、次いで基準電圧に対する残りの電圧の相対シフトのマッピングを判定することが可能であるということになる。さらに、それぞれの読取り電圧の絶対シフト、相対シフト、および現在の値に基づいて、残りの非基準読取り電圧を調整することができる(たとえば、較正前)。
本明細書に含む手法のいずれかに含まれる特定の構成はいずれも、限定的であることを意図したものではないことにも留意されたい。たとえば、本明細書の手法のいずれかに含まれる所与のワード線またはメモリ・ブロックあるいはその両方に含まれるページの数またはタイプあるいはその両方、読取り電圧の数または値あるいはその両方、閾値電圧レベルの数または値あるいはその両方などは、限定的であることを何ら意図したものではなく、逆に例示のみを目的として提示されている。
本発明は、任意の可能な技術的な詳細統合レベルのシステム、方法、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、それに限定されるものではないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上記の任意の好適な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、携帯型のコンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能のプログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、携帯型のコンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されたパンチ・カードまたは溝の中の浮出し構造体などの機械的に符号化されたデバイス、および上記の任意の好適な組合せが含まれる。本明細書では、コンピュータ可読記憶媒体は、無線波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を通って伝播する電磁波(たとえば、光ファイバケーブルを通過する光パルス)、またはワイアを通って伝送する電気信号などの一過性の信号自体であると解釈されるべきではない。
本明細書に記載するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへダウンロードすることができ、あるいはネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワークまたはその組合せを介して、外部コンピュータもしくは外部記憶デバイスへダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを備えることができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路向けの構成データ、またはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータで、部分的にユーザのコンピュータで独立型のソフトウェア・パッケージとして、部分的にユーザのコンピュータ、部分的に遠隔コンピュータで、または完全に遠隔コンピュータもしくはサーバで実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通して、ユーザのコンピュータに接続することができ、または外部コンピュータへ(たとえば、インターネット・サービス・プロバイダを使用してインターネットを通して)接続することができる。いくつかの実施形態では、たとえばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行することができる。
本発明の態様について、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書に記載する。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施することができるが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を生じさせるように、コンピュータのプロセッサ、または他のプログラマブル・データ処理装置に提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/動作の態様を実施する命令を含む製品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定の方式で機能するように指示することができるものであってもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実施するように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ実施プロセスを生じさせるべく、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
これらの図のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装例のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能な命令を含む命令のモジュール、セグメント、または部分を表すことができる。いくつかの代替実装例では、ブロックに記載の機能は、図に記載の順序以外で行うこともできる。たとえば、連続して示されている2つのブロックは、関連する機能に応じて、実際には1つのステップとして実現することができ、同時に、実質的に同時に、部分的もしくは完全に時間的に重複して実行することができ、または場合によりブロックを逆の順序で実行することができる。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定された機能もしくは動作を実行する特別目的のハードウェアに基づくシステムによって実施することができ、または特別目的のハードウェアおよびコンピュータ命令の組合せを実施することができることにも留意されたい。
さらに、様々な実施形態によるシステムは、プロセッサと、プロセッサと一体化されまたはプロセッサによって実行可能でありあるいはその両方であるロジックとを含むことができ、ロジックは、本明細書に記載のプロセス・ステップのうちの1つまたは複数を実行するように構成される。プロセッサは、処理ハードウェア、メモリ、I/Oインターフェースなどの多くの構成要素を含む個別のプロセッサまたは処理回路など、本明細書に記載する任意の構成とすることができる。一体化とは、プロセッサに、特定用途向け集積回路(ASIC)、FPGAなどのロジックが、ハードウェア・ロジックとして埋め込まれていることを意味する。プロセッサによって実行可能とは、ロジックが、ハードウェア・ロジック、ファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部などのソフトウェア・ロジック、またはプロセッサによってアクセス可能であり、プロセッサによって実行されるとき、プロセッサにいくつかの機能を実行させるように構成されたハードウェアおよびソフトウェア・ロジックのいくつかの組合せであることを意味する。ソフトウェア・ロジックは、当技術分野で知られているように、任意のメモリ・タイプのローカルまたは遠隔あるいはその両方のメモリに記憶することができる。ASIC、FPGA、中央処理装置(CPU)、集積回路(IC)、グラフィックス処理ユニット(GPU)などのソフトウェア・プロセッサ・モジュールまたはハードウェア・プロセッサあるいはその両方など、当技術分野で知られている任意のプロセッサを使用することができる。
図9は、1つの手法によるネットワーク・アーキテクチャ900を示す。図9に示すように、第1の遠隔ネットワーク904および第2の遠隔ネットワーク906を含む複数の遠隔ネットワーク902が提供される。遠隔ネットワーク902と近接ネットワーク908との間に、ゲートウェイ901を結合することができる。このネットワーク・アーキテクチャ900の文脈で、ネットワーク904、906は各々、それに限定されるものではないが、LAN、インターネットなどのWAN、公衆交換電話網(PSTN)、構内電話網などを含む任意の形態をとることができる。
使用の際、ゲートウェイ901は、遠隔ネットワーク902から近接ネットワーク908への入口点として働く。したがって、ゲートウェイ901は、ゲートウェイ901に到達する所与のデータ・パケットを誘導することが可能なルータ、および所与のパケットのためにゲートウェイ901の内外への実際の経路を与えるスイッチとして機能することができる。
近接ネットワーク908に結合された少なくとも1つのデータ・サーバ914がさらに含まれ、データ・サーバ914は、ゲートウェイ901を介して遠隔ネットワーク902からアクセス可能である。データ・サーバ914は、任意のタイプのコンピューティング・デバイス/グループウェアを含むことができることに留意されたい。各データ・サーバ914には、複数のユーザ・デバイス916が結合される。そのようなユーザ・デバイス916は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、手持ち式コンピュータ、プリンタ、または任意の他のタイプのロジックを含むデバイス、あるいはその組合せを含むことができる。いくつかの手法において、ユーザ・デバイス911はまた、ネットワークのいずれかに直接結合することができることに留意されたい。
1つまたは一連の周辺装置920、たとえばファクシミリ機械、プリンタ、スキャナ、ハード・ディスク・ドライブ、ネットワークまたはローカルあるいはその両方のデータ記憶ユニットもしくはシステムなどを、ネットワーク904、906、908のうちの1つまたは複数に結合することができる。データベースまたは追加の構成要素あるいはその両方を、ネットワーク904、906、908に結合された任意のタイプのネットワーク要素とともに利用することができ、またはそのようなネットワーク要素に一体化することができることに留意されたい。この説明の文脈で、ネットワーク要素は、ネットワークの任意の構成要素を指すことができる。
いくつかの手法によれば、本明細書に記載する方法およびシステムは、仮想システム、またはMICROSOFTのWINDOWS(R)環境を仮想的にホストするUNIX(R)システムなどの1つもしくは複数の他のシステムを模倣するシステム、あるいはその両方とともに実施することができる。いくつかの手法では、この仮想化または模倣あるいはその両方は、VMWAREソフトウェアの使用によって向上させることができる。
他の手法では、1つまたは複数のネットワーク904、906、908は、一般に「クラウド」と呼ばれるシステムのクラスタを表すことができる。クラウド・コンピューティングでは、処理能力、周辺装置、ソフトウェア、データ、サーバなどの共有資源が、要求に応じた関係で、クラウド内の任意のシステムに提供され、それによって多くのコンピューティング・システムにまたがるサービスへのアクセスおよび分布が可能になる。クラウド・コンピューティングは、典型的に、クラウドで動作するシステム間のインターネット接続を伴うが、当技術分野で知られているように、システムを接続する他の技術を使用することもできる。
図10は、1つの手法による、図9のユーザ・デバイス916またはサーバ914あるいはその両方に付随する代表的なハードウェア環境を示す。図10は、1つの手法によるプロセッサ・システム1000の典型的なハードウェア構成を示し、プロセッサ・システム1000は、マイクロプロセッサなどの中央処理装置1010と、システム・バス1012を介して相互接続された複数の他のユニットとを有する。いくつかの手法では、中央処理装置1010は、図2の1つまたは複数のプロセッサ210を参照して上述した手法のいずれかを含むことができる。
図10に示すプロセッサ・システム1000は、RAM1014、読取り専用メモリ(ROM)1016、およびI/Oアダプタ1018を含む。本発明を限定することを何ら意図しないいくつかの手法によれば、I/Oアダプタ1018は、図2のI/Oアダプタ218を参照して上述した手法のいずれかを含むことができる。図10のプロセッサ・システム1000をさらに参照すると、上述した構成要素1014、1016、1018は、記憶サブシステム1020などの周辺デバイスをバス1012に接続するために使用することができる。いくつかの手法では、記憶サブシステム1020は、図2のデータ記憶システム220と類似の構成、または同じ構成、あるいはその両方を含むことができる。本発明を限定することを何ら意図しない一例によれば、記憶サブシステム1020は、不揮発性データ記憶カードを含むことができ、たとえば図2に示すRAIDコントローラに加えて、NVRAMメモリ・カード、RAM、ROM、または何らかの他の知られているタイプの不揮発性メモリ、あるいはその両方を有することができる。
図10を引き続き参照すると、ユーザ・インターフェース・アダプタ1022が、キーボード1024、マウス1026、スピーカ1028、マイクロフォン1032、またはタッチ・スクリーン、デジタル・カメラなどの他のユーザ・インターフェース・デバイス(図示せず)、あるいはその組合せを、バス1012に接続する。
プロセッサ・システム1000は、プロセッサ・システム1000を通信ネットワーク1035(たとえば、データ処理ネットワーク)に接続する通信アダプタ1034と、バス1012をディスプレイ・デバイス1038に接続するディスプレイ・アダプタ1036とをさらに含む。
プロセッサ・システム1000には、MICROSOFT WINDOWS(R)オペレーティング・システム(OS)、MAC OS、UNIX(R) OSなどのオペレーティング・システムが常駐することができる。好ましい手法はまた、上記以外のプラットホームおよびオペレーティング・システム上で実施することもできることが理解されよう。好ましい手法は、オブジェクト指向のプログラミング方法とともに、JAVA(R)、XML、C、もしくはC++、またはその組合せの言語、あるいは他のプログラミング言語を使用して書くことができる。複雑なアプリケーションを開発するためにますます使用されているオブジェクト指向のプログラミング(OOP)を使用することができる。
さらに、図11は、1つの手法による、高レベル(たとえば、SSD)の記憶階層を、低レベル(たとえば、磁気テープ)の記憶階層と組み合わせて実施する記憶システム1100を示す。様々な手法によれば、図11に示す要素のいくつかは、ハードウェアまたはソフトウェアあるいはその両方として実施することができることに留意されたい。記憶システム1100は、少なくとも1つの上位記憶階層1102および少なくとも1つの下位記憶階層1106上の複数の媒体と通信する記憶システム・マネージャ1112を含むことができる。しかし、他の手法では、記憶システム・マネージャ1112は、下位記憶階層ではなく、少なくとも1つの上位記憶階層1102上の複数の媒体と通信することができる。上位記憶階層1102は、ハード・ディスク、不揮発性メモリ(NVM)、NVRAMなどの1つもしくは複数のランダム・アクセス媒体もしくは直接アクセス媒体1104、またはその両方、SSD、フラッシュ・メモリ、SSDアレイ、フラッシュ・メモリ・アレイなどの固体状態メモリ、あるいは本明細書に記載されもしくは当技術分野で知られている他のメモリ、またはその両方を含むことができることが好ましい。例示によれば、図3~図4は、所望の手法に応じて上位記憶階層1102として使用することができるSSDシステムの例示的なアーキテクチャを示す。
図11をさらに参照すると、下位記憶階層1106は、テープ・ドライブ内の磁気テープもしくは光媒体またはその両方などの順次アクセス媒体、より遅いアクセスのHDD、より遅いアクセスのSSDなど、あるいは本明細書に記載されもしくは当技術分野で知られている他の媒体、またはその両方を含む、1つまたは複数の下位実行記憶媒体1108を含むことが好ましい。1つまたは複数の追加の記憶階層1116は、所望される場合、システム1100の設計者によって、記憶メモリ媒体の任意の組合せを含むことができる。したがって、1つまたは複数の追加の記憶階層1116は、いくつかの手法では、図1~図2に示すものと類似または同じSSDシステム・アーキテクチャを含むことができる。また、上位記憶階層1102、または下位記憶階層1106、あるいはその両方のいずれかは、記憶デバイスまたは記憶媒体あるいはその両方の任意の組合せを含むことができる。
記憶システム・マネージャ1112は、図11に示すストレージ・エリア・ネットワーク(SAN)などのネットワーク1110、または何らかの他の好適なネットワーク・タイプを介して、上位記憶階層1102および下位記憶階層1106上の記憶媒体1104、1108と通信することができる。記憶システム・マネージャ1112はまた、ホスト・インターフェース1114を介して、1つまたは複数のホスト・システム(図示せず)と通信することができ、ホスト・インターフェース1114は、記憶システム・マネージャ1112の一部であってもよいし、一部でなくてもよい。記憶システム・マネージャ1112、または記憶システム1100の任意の他の構成要素、あるいはその両方は、ハードウェアまたはソフトウェアあるいはその両方で実施することができ、中央処理装置(CPU)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)などの当技術分野で知られているタイプのコマンドを実行するためにプロセッサ(図示せず)を使用することができる。当然ながら、この説明を読めば当業者には明らかなように、記憶システムの任意の配置を使用することができる。
さらなる手法では、記憶システム1100は、任意の数のデータ記憶階層を含むことができ、各記憶階層内に同じまたは異なる記憶メモリ媒体を含むことができる。たとえば、各データ記憶階層は、HDD、SSD、順次アクセス媒体(テープ・ドライブ内のテープ、光ディスク・ドライブ内の光ディスクなど)、直接アクセス媒体(CD-ROM、DVD-ROMなど)、または媒体記憶タイプの任意の組合せなど、同じタイプの記憶メモリ媒体を含むことができる。1つのそのような構成では、上位記憶階層1102が、上位実行記憶環境内にデータを記憶するための大部分のSSD記憶媒体を含むことができ、下位記憶階層1106および追加の記憶階層1116を含む残りの記憶階層は、下位実行記憶環境内にデータを記憶するためのSSD、HDD、テープ・ドライブなどの任意の組合せを含むことができる。このようにして、より頻繁にアクセスされるデータ、より高い優先順位を有するデータ、より迅速にアクセスされる必要のあるデータなどは、上位記憶階層1102に記憶することができ、これらの属性を1つも有していないデータは、下位記憶階層1106を含む追加の記憶階層1116に記憶することができる。当然ながら、この説明を読めば、本明細書に提示する手法による異なる記憶スキームに実施するための記憶媒体タイプの多くの他の組合せが、当業者には想到されよう。
いくつかの手法によれば、記憶システム(1100など)は、データ・セットを開くための要求を受信するように構成されたロジック、要求されたデータ・セットが階層型データ記憶システム1100の下位記憶階層1106に複数の関連部分で記憶されているかどうかを判定するように構成されたロジック、要求されたデータ・セットの各関連部分を階層型データ記憶システム1100の上位記憶階層1102へ動かすように構成されたロジック、および階層型データ記憶システム1100の上位記憶階層1102上の要求されたデータ・セットを関連部分から組み立てるように構成されたロジックを含むことができる。
当然ながら、様々な実施形態によれば、このロジックは、任意のデバイスもしくはシステムまたはその両方上の方法として、あるいはコンピュータ・プログラム製品として実施することができる。
上記のシステムまたは方法あるいはその両方の様々な特徴を任意の方法で組み合わせて、上記に提示した説明から複数の組合せを作ることができることが明らかである。
本発明の実施形態は、要求に応じてサービスを提供するために、顧客に代わって導入されるサービスの形で提供することができることがさらに理解されよう。
本発明の様々な実施形態の説明は、説明の目的で提示されており、開示する実施形態に関して網羅的または限定的であることを意図したものではない。記載する実施形態の範囲および思想から逸脱することなく、多くの変更形態および変形形態が当業者には明らかである。本明細書に使用される術語は、市場に見られる技術と比べた実施形態の原理、実際的な応用例、もしくは技術的な改善について最もよく説明するために、または本明細書に開示する実施形態を当業者であれば理解することが可能になるように、選択されたものである。

Claims (20)

  1. メモリ・ブロックに対する読取り電圧を較正するコンピュータ実施方法であって、
    前記ブロックの現在の動作状態を判定することであり、前記ブロックが、複数のワード線を含み、複数の読取り電圧が前記ワード線のそれぞれに関連付けられている、前記判定することと、
    前記ブロック内の前記ワード線の各々に対して、
    所与のワード線に関連付けられた前記読取り電圧のうちの1つを基準読取り電圧として選択し、
    前記基準読取り電圧に対する絶対シフト値を計算し、
    前記基準読取り電圧に対して、前記所与のワード線に関連付けられた残りの読取り電圧の各々に対する相対シフト値を判定し、
    前記絶対シフト値およびそれぞれの前記相対シフト値の各々を使用して、前記所与のワード線に関連付けられた前記読取り電圧の各々を調整することと
    を含む、コンピュータ実施方法。
  2. 前記相対シフト値が、前記ブロックの前記現在の動作状態に対応する所定の電圧マッピングを使用して、前記残りの読取り電圧に対して判定される、請求項1に記載のコンピュータ実施方法。
  3. 前記所与のワード線に関連付けられた前記残りの読取り電圧の各々に対する前記相対シフト値を判定することが、
    前記ブロックの前記現在の動作状態を複数の所定の動作状態のうちの対応する1つの動作状態と一致させることと、
    前記一致する所定の動作状態に割り当てられた前記所定の電圧マッピングから前記相対シフト値を抽出することと
    を含む、請求項2に記載のコンピュータ実施方法。
  4. 前記ブロックの前記現在の動作状態が、前記ブロックに対応する1つまたは複数の統計を使用して判定され、前記ブロックの前記現在の動作状態を判定するために使用される前記1つまたは複数の統計が、サイクル・カウント、読取り妨害カウント、および保持時間からなる群から選択される、請求項1に記載のコンピュータ実施方法。
  5. 前記メモリが、不揮発性ランダム・アクセス・メモリ(NVRAM)である、請求項1に記載のコンピュータ実施方法。
  6. 前記NVRAMが、3次元のトリプルレベルセルNANDフラッシュを含む、請求項5に記載のコンピュータ実施方法。
  7. 前記NVRAMが、3次元のクワッドレベルセルNANDフラッシュを含む、請求項5に記載のコンピュータ実施方法。
  8. メモリ・ブロックに対する読取り電圧を較正するコンピュータ実施方法であって、
    前記ブロックの現在の動作状態を判定することであり、前記ブロックが、複数のページ・タイプを含み、前記ページ・タイプの各々に少なくとも1つの読取り電圧が関連付けられる、前記判定することと、
    前記ブロック内の各ワード線に対して、
    前記読取り電圧を、それぞれの前記ページ・タイプに基づいて、グループに分割し、
    所与のワード線内の読取り電圧の各グループに対して、
    前記所与のグループ内の前記読取り電圧のうちの1つを基準読取り電圧として選択し、
    前記基準読取り電圧に対する絶対シフト値を計算し、
    前記基準読取り電圧に対して、前記所与のグループ内の残りの読取り電圧の各々に対する相対シフト値を判定し、
    前記絶対シフト値およびそれぞれの前記相対シフト値の各々を使用して、前記所与のグループ内の前記読取り電圧の各々を調整することと
    を含む、コンピュータ実施方法。
  9. 所与のグループ内の前記読取り電圧の各々が、同じページ・タイプに対応する、請求項8に記載のコンピュータ実施方法。
  10. 前記相対シフト値が、前記ブロックの前記現在の動作状態および前記所与のグループ内の前記ページ・タイプに対応する所定の電圧マッピングを使用して、前記所与のグループ内の前記残りの読取り電圧に対して判定される、請求項8に記載のコンピュータ実施方法。
  11. 前記所与のグループ内の前記残りの読取り電圧の各々に対する前記相対シフト値を判定することが、
    前記ブロックの前記現在の動作状態および前記所与のグループ内の前記ページ・タイプを、複数の所定の動作状態のうちの対応する1つの動作状態と一致させることと、
    前記一致する所定の動作状態に割り当てられた、前記所与のグループ内の前記ページ・タイプに対応する前記所定の電圧マッピングから、前記相対シフト値を抽出することと
    を含む、請求項10に記載のコンピュータ実施方法。
  12. 前記ブロックの前記現在の動作状態が、前記ブロックに対応する1つまたは複数の統計を使用して判定され、前記ブロックの前記現在の動作状態を判定するために使用される前記1つまたは複数の統計が、サイクル・カウント、読取り妨害カウント、および保持時間からなる群から選択される、請求項8に記載のコンピュータ実施方法。
  13. プロセッサに、請求項1ないし12のいずれか1項に記載の方法を実行させるためのコンピュータ・プログラム。
  14. システムであって、
    データを記憶するように構成された複数の不揮発性ランダム・アクセス・メモリ(NVRAM)ブロックと、
    プロセッサと、
    前記プロセッサと一体化されまたは前記プロセッサによって実行可能でありあるいはその両方であるロジックと
    を備え、前記ロジックが、前記ブロックの各々に対して、
    前記プロセッサによって、所与のブロックの現在の動作状態を判定することであり、前記所与のブロックが、複数のワード線を含み、複数の読取り電圧が前記ワード線の各々に関連付けられている、前記判定することと、
    前記所与のブロック内の前記ワード線の各々に対して、
    前記プロセッサによって、前記所与のワード線に関連付けられた前記読取り電圧のうちの1つを基準読取り電圧として選択し、
    前記プロセッサによって、前記基準読取り電圧に対する絶対シフト値を計算し、
    前記プロセッサによって、前記基準読取り電圧に対して、前記所与のワード線に関連付けられた残りの読取り電圧の各々に対する相対シフト値を判定し、
    前記プロセッサによって、前記絶対シフト値およびそれぞれの前記相対シフト値の各々を使用して、前記所与のワード線に関連付けられた前記読取り電圧の各々を調整するように構成される、システム。
  15. 前記相対シフト値が、前記ブロックの前記現在の動作状態に対応する所定の電圧マッピングを使用して、前記残りの読取り電圧に対して判定される、請求項14に記載のシステム。
  16. 前記所与のワード線に関連付けられた前記残りの読取り電圧の各々に対する前記相対シフト値を判定することが、
    前記ブロックの前記現在の動作状態を複数の所定の動作状態のうちの対応する1つの動作状態と一致させることと、
    前記一致する所定の動作状態に割り当てられた前記所定の電圧マッピングから前記相対シフト値を抽出することと
    を含む、請求項15に記載のシステム。
  17. 前記ブロックの前記現在の動作状態が、前記ブロックに対応する1つまたは複数の統計を使用して判定され、前記ブロックの前記現在の動作状態を判定するために使用される前記1つまたは複数の統計が、サイクル・カウント、読取り妨害カウント、および保持時間からなる群から選択される、請求項14に記載のシステム。
  18. 前記NVRAMブロックのうちの少なくともいくつかが、3次元のトリプルレベルセルNANDフラッシュ内に含まれる、請求項14に記載のシステム。
  19. 前記NVRAMブロックのうちの少なくともいくつかが、3次元のクワッドレベルセルNANDフラッシュ内に含まれる、請求項14に記載のシステム。
  20. システムであって、
    データを記憶するように構成されたメモリ・ブロックと、
    プロセッサと、
    前記プロセッサと一体化されまたは前記プロセッサによって実行可能でありあるいはその両方であるロジックと
    を備え、前記ロジックが、前記ブロックの各々に対して、
    前記ブロックの現在の動作状態を判定することであり、前記ブロックが、複数のページ・タイプを含み、前記ページ・タイプの各々に少なくとも1つの読取り電圧が関連付けられる、前記判定することと、
    前記ブロック内の各ワード線に対して、
    前記読取り電圧を、それぞれの前記ページ・タイプに基づいて、グループに分割し、
    所与のワード線内の読取り電圧の各グループに対して、
    前記所与のグループ内の前記読取り電圧のうちの1つを基準読取り電圧として選択し、
    前記基準読取り電圧に対する絶対シフト値を計算し、
    前記基準読取り電圧に対して、前記所与のグループ内の残りの読取り電圧の各々に対する相対シフト値を判定し、
    前記絶対シフト値およびそれぞれの前記相対シフト値の各々を使用して、前記所与のグループ内の前記読取り電圧の各々を調整することと
    を含む、システム。
JP2022524047A 2019-10-30 2020-10-16 不揮発性ランダム・アクセス・メモリにおける補正読取り電圧オフセットの計算 Active JP7448646B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/669,241 2019-10-30
US16/669,241 US10957407B1 (en) 2019-10-30 2019-10-30 Calculating corrective read voltage offsets in non-volatile random access memory
PCT/EP2020/079198 WO2021083692A1 (en) 2019-10-30 2020-10-16 Calculating corrective read voltage offsets in non-volatile random access memory

Publications (2)

Publication Number Publication Date
JP2023500068A JP2023500068A (ja) 2023-01-04
JP7448646B2 true JP7448646B2 (ja) 2024-03-12

Family

ID=73005592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022524047A Active JP7448646B2 (ja) 2019-10-30 2020-10-16 不揮発性ランダム・アクセス・メモリにおける補正読取り電圧オフセットの計算

Country Status (7)

Country Link
US (2) US10957407B1 (ja)
EP (1) EP4022619A1 (ja)
JP (1) JP7448646B2 (ja)
KR (1) KR102654374B1 (ja)
CN (1) CN114631147A (ja)
AU (1) AU2020374243B2 (ja)
WO (1) WO2021083692A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10957407B1 (en) 2019-10-30 2021-03-23 International Business Machines Corporation Calculating corrective read voltage offsets in non-volatile random access memory
US11231863B2 (en) * 2019-12-19 2022-01-25 Micron Technology, Inc. Block family-based error avoidance for memory devices
JP2022144291A (ja) * 2021-03-18 2022-10-03 キオクシア株式会社 メモリシステム
WO2023146520A1 (en) * 2022-01-27 2023-08-03 Siemens Industry Software Inc. Memory built-in self-test with address skipping trim search
CN115617567B (zh) * 2022-12-16 2023-04-14 珠海妙存科技有限公司 闪存的数据恢复方法、装置、电子设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128577A (ja) 2005-11-01 2007-05-24 Toshiba Corp 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
US20190146671A1 (en) 2014-09-29 2019-05-16 International Business Machines Corporation Background threshold voltage shifting using base and delta threshold voltage shift values in non-volatile memory
JP2019164850A (ja) 2018-03-19 2019-09-26 東芝メモリ株式会社 メモリシステム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8369141B2 (en) * 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
KR100891005B1 (ko) * 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
US8111549B2 (en) 2009-07-13 2012-02-07 Intel Corporation Dynamic wordline start voltage for nand programming
KR20130070927A (ko) 2011-12-20 2013-06-28 에스케이하이닉스 주식회사 불휘발성 메모리 장치 및 그 동작 방법
KR101625000B1 (ko) * 2012-03-29 2016-05-27 인텔 코포레이션 메모리 셀을 위한 적응적 판독 기준 이동
US9645177B2 (en) * 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization
KR101979734B1 (ko) * 2012-08-07 2019-05-17 삼성전자 주식회사 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법
US9190159B2 (en) * 2013-03-15 2015-11-17 Kabushiki Kaisha Toshiba Semiconductor memory device
US20140359202A1 (en) * 2013-05-31 2014-12-04 Western Digital Technologies, Inc. Reading voltage calculation in solid-state storage devices
KR102263046B1 (ko) 2014-10-29 2021-06-09 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
US9576671B2 (en) 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
US9720754B2 (en) 2014-11-20 2017-08-01 Western Digital Technologies, Inc. Read level grouping for increased flash performance
GB2537484B (en) * 2015-03-20 2019-07-03 HGST Netherlands BV Read level grouping for increased flash performance
US20170076790A1 (en) 2015-09-14 2017-03-16 Kabushiki Kaisha Toshiba Semiconductor memory device
CN105205008B (zh) 2015-09-18 2018-07-20 成都三零嘉微电子有限公司 降低混合映射算法中日志块映射表内存资源占用的方法
CN106528323B (zh) 2016-11-04 2019-07-30 郑州云海信息技术有限公司 一种Nand flash数据校准方法及系统
KR20180085418A (ko) * 2017-01-18 2018-07-27 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
US10236067B2 (en) 2017-08-02 2019-03-19 International Business Machines Corporation State-dependent read voltage threshold adaptation for nonvolatile memory
KR20190040604A (ko) 2017-10-11 2019-04-19 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10276233B1 (en) 2017-10-31 2019-04-30 Seagate Technology Llc Adaptive read threshold voltage tracking with charge leakage mitigation using threshold voltage offsets
US10325665B2 (en) 2017-12-08 2019-06-18 Intel Corporation Block by deck operations for NAND memory
US10453537B1 (en) * 2018-05-10 2019-10-22 International Business Machines Corporation Techniques for reducing read voltage threshold calibration in non-volatile memory
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
JP2007128577A (ja) 2005-11-01 2007-05-24 Toshiba Corp 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
US20190146671A1 (en) 2014-09-29 2019-05-16 International Business Machines Corporation Background threshold voltage shifting using base and delta threshold voltage shift values in non-volatile memory
JP2019164850A (ja) 2018-03-19 2019-09-26 東芝メモリ株式会社 メモリシステム

Also Published As

Publication number Publication date
EP4022619A1 (en) 2022-07-06
KR20220053019A (ko) 2022-04-28
JP2023500068A (ja) 2023-01-04
US10957407B1 (en) 2021-03-23
WO2021083692A1 (en) 2021-05-06
AU2020374243B2 (en) 2023-02-16
CN114631147A (zh) 2022-06-14
AU2020374243A1 (en) 2022-03-31
US20210134378A1 (en) 2021-05-06
US11302403B2 (en) 2022-04-12
KR102654374B1 (ko) 2024-04-04

Similar Documents

Publication Publication Date Title
JP7448569B2 (ja) データ・ストレージ・システムにおけるブロック・モード・トグリング
JP7448646B2 (ja) 不揮発性ランダム・アクセス・メモリにおける補正読取り電圧オフセットの計算
US11264103B2 (en) Hybrid read voltage calibration in non-volatile random access memory
US11048571B2 (en) Selectively performing multi-plane read operations in non-volatile memory
US9990279B2 (en) Page-level health equalization
US11056199B2 (en) Updating corrective read voltage offsets in non-volatile random access memory
US11086705B2 (en) Managing the reliability of pages in non-volatile random access memory
US11086565B2 (en) Reducing effects of read array operations of read apparent voltage
US11157379B2 (en) Managing blocks of memory based on block health using hybrid controllers
US11094383B2 (en) Selective page calibration based on hierarchical page mapping
US11036415B2 (en) Managing memory block calibration based on priority levels
US10783024B2 (en) Reducing block calibration overhead using read error triage
US10942662B2 (en) Relocating and/or re-programming blocks of storage space based on calibration frequency and resource utilization
US11119855B2 (en) Selectively storing parity data in different types of memory
CN112447245B (zh) 非易失性随机存取存储器中的混合读取电压校准
US11334492B2 (en) Calibrating pages of memory using partial page read operations
JP7486534B2 (ja) ストレージ・システムにおけるブロック・プール・サイズの適合
JP2022539133A (ja) ストレージ・システムにおけるブロック・プール・サイズの適合

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230324

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240229

R150 Certificate of patent or registration of utility model

Ref document number: 7448646

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150