(58)【調査した分野】(Int.Cl.,DB名)
前記各々の障害誘発動作の前記障害強度値と、前記各々の障害誘発動作の前記注入−消失方向とが、サンプルデバイスのテストによって決定された所定のデータとして前記フラッシュメモリシステムに供給される、
請求項1に記載のフラッシュメモリシステムの動作方法。
測定装置の集合であって、前記各測定装置が前記フラッシュメモリセルの集合の中のフラッシュメモリセルに接続されており、前記各測定装置が読み込み動作中のフラッシュメモリセルの閾値電圧の測定値を表す測定信号を生成する測定装置の集合と、
前記測定信号を受信し、前記フラッシュメモリセルの集合に関する前記測定信号の最大電圧と最小電圧の間の差分を判断する分散アナライザと、
をさらに備える、
請求項9に記載のフラッシュメモリシステム。
前記データ管理装置は、前記フラッシュメモリセルから読み込まれたデータがエラーであるという可能性を、前記フラッシュメモリセルに関する電荷の正味の流入または消失の推測を用いて推測する手段を含む、
請求項9に記載のフラッシュメモリシステム。
前記データ管理装置は、前記フラッシュメモリセルに関する電荷の正味の流入または消失の推測が所定の閾値を超えたときに、データ損失を防止するための予防策を実行するための手段を含む、
請求項9に記載のフラッシュメモリシステム。
前記データ管理装置は、前記動作履歴の中の前記各々の障害誘発動作に関するパーセンテージを計算し、前記障害誘発動作の相対障害強度の加重和を計算するステップを含む、
請求項9に記載のフラッシュメモリシステム。
前記各々のフラッシュメモリセルの前記読み込み電圧閾値は、対応するフラッシュメモリセルに接続された測定装置から導き出され、前記測定装置は、読み込み動作に関する前記フラッシュメモリセルの完了時間から導き出された、読み込み動作における前記フラッシュメモリセルの閾値電圧を表す測定信号を生成する、
請求項17に記載のフラッシュメモリシステム。
【背景技術】
【0002】
EEPROMとフラッシュメモリ(NOR型およびNAND型)では、情報を表す電荷を保持するのに浮遊ゲート(FG)が使用される。これらのメモリ素子には、書き込み/消去サイクルを繰り返し行った後に劣化するメカニズムを持つという問題があり、それが、素子が耐えられる消去/書き込み動作の回数を制限している。マルチレベルセル(MLC)フラッシュデバイスは一般に、シングルレベルセル(SLC)デバイスより書き込み/消去サイクルの耐性が大幅に低い。
【0003】
さまざまな書き込みおよび消去動作によって、隣接するセルにおける電荷の注入または消失を引き起こすことがあり、これが「障害」と呼ばれる。障害エラーは、あるセルの初期の書き込まれた状態が、近隣のセルに対して行われた書き込みまたは読み込み動作の結果として変化した時に発生する。障害エラーはソフトエラーである。「読み込み障害」は、あるメモリセルを読み込むことによって、そのセルに物理的に近い、またはそのセルと制御線を共有する別のセル内の電荷の量が変化したときに発生する。1回の読み込み障害のイベントでは、電荷蓄積量はエラーとなるほど変化しないかもしれないが、読み込み障害が累積されると、最終的にエラーとなるかもしれない。読み込み障害の累積的効果は、消去動作によってリセットされる。NAND型フラッシュの具体的なマトリクスアーキテクチャにより、NOR型フラッシュより「読み込み障害」のエラーが多くなる。書き込み障害のエラーが発生すると、ページ書き込み中にビットが誤った値に設定される。ビットエラーは書き込み中のページに発生しうるが、ブロック中の別のページにも発生する可能性がある。
【0004】
特許文献1(1998年2月3日)には、メモリセルブロックに対する障害効果をモニタする方法について記載されており、この方法では、消去ブロックが消去されるたびに、コントローラが、復号ブロックの中の他の各消去ブロックに関するカウントに障害のユニットを追加し、消去されたブロックのカウントをゼロにリセットすることによって、消去されたブロックを含む復号ブロックのテーブルを更新する。特許文献1ではまた、好ましくは、コントローラが、障害カウントが所定の最大値に到達した各消去ブロックについてリフレッシュ動作を実行する、とも述べている。リフレッシュ動作中、その消去ブロックの各セルの浮遊ゲートに適正な電荷を戻すために、回復手順が必要であればこれが実行され、それゆえ、リフレッシュ動作を行わない場合に(障害効果によって)発生するようなデータの読み込みエラーが防止される。
【0005】
マルチレベルセル(MLC)フラッシュデバイスは、トランジスタの浮遊ゲートを異なる選択閾値電圧(V
T)レベルに帯電させることによって、1メモリセルに複数のビットを蓄積させ、これによって、セルのアナログ特性を利用して、ビットパターンを特定の電圧レベルにマッピングすることができる。NAND型フラッシュの場合、MLCデバイスのV
Tは、概念上、選択された読み込み電圧(V
READ)レベルをセルの浮遊ゲートに逐次的に印加することによって読み込まれる。一般に、電圧範囲は各レンジ間に保護周波数帯を設けて選択され、これが確実に通常のV
T分布が重複しないようにするのに役立つ。
【0006】
NOR型フラッシュにおいては、セルはビット線に平行に接続され、これによって、個々のセルに対して読み込み、書き込みを行うことができ、直列のその他のトランジスタはすべて既知の状態にある。それゆえ、NOR型フラッシュでは、問い合わせが行われているメモリセルと直列のトランジスタは、アドレス指定機能だけに関連するトランジスタである。
【0007】
特許文献2(2008年12月11日)には、NAND型メモリの中の不良ブロックの出現を検出するためにホストデバイスに実装される方式が記載されており、この方式には、読み込み動作中のエラーの少なくとも部分的な履歴を保持することが含まれる。
【0008】
特許文献3には、メモリコントローラが使用する訂正済みの読み込み電圧を保存し、取り出すための手段を含む周辺回路を含むことによって、チップごとの読み込み障害特性のばらつきを低減させるNAND型フラッシュメモリシステムが記載されている。メモリコントローラは、フラッシュメモリ上でのデータ入力/出力制御とデータ管理を実行し、書き換え時にエラー訂正コード(ECC)を追加し、読み込み時にエラー訂正コードを解析する。
【0009】
ソリッドステートドライブ(SSD)は、一般的に、機能面で従来のハードディスクドライブ(HDD)に代わるものとして設計されたデータストレージデバイスであり、SSDは、ソリッドステートメモリを使用してデータを保存する。SSDという用語は、本明細書では、フラッシュメモリベースのデバイスのみを指すものとする。SSDは一般に、ハードディスクドライブと同じコマンドインタフェースを使用するため、SSDは多くの用途において、ソフトウェアを修正することなく、HDDの代わりに使用できる。HDDとSSDの両方の機能を含むハイブリッドデバイスもまた実現可能である。
【0010】
メモリの内容の劣化が時間の経過および書き込み/消去サイクルの回数とともに劣化し、これが不可避であることから、フラッシュメモリチップの基本的な物理的特性と動作上の詳細を利用できる効率的なエラー訂正コードを開発する必要がある。このような効率的なエラー訂正コードは、フラッシュメモリの読み込み性能を損なわずに、読み込み時に取り出すことが可能なソフト情報を使用する必要がある。以下に説明する本発明を以下、概してフラッシュメモリ用の劣化の早期検出(Early Degradation Detection)(EDD)システムと呼ぶ。本発明は、単独でも、EDDシステムを補完するものとしても、フラッシュメモリの信頼性を向上させ、動作寿命を延ばすことができる。
【発明を実施するための形態】
【0017】
図14は、本発明のある実施形態によるSSD 130の、選択された構成要素を示すブロック図である。これは、例にすぎない。当業者は、説明される機能のいくつかをホストに移すことができ、それでも本発明の精神から逸脱しないことを認識するであろう。SSDは、SSDとコンピュータ120等のホストデバイスの間の2つの通信を扱う通信インタフェース131を含む。SSDはデータ管理装置133を含み、データ管理装置133はアレイコントローラ139まで、およびそれからのデータの流れを管理し、アレイコントローラ139はフラッシュアレイ141まで、およびそれからのデータの流れを制御し、フラッシュアレイ141はNAND型またはNOR型のいずれのデバイスでもよい。この実施形態におけるデータ管理装置133は標準的なマイクロプロセッサ(図示せず)とそれに関連付けられた不揮発性メモリを含み、メモリの中にはファームウェアプログラムが保存される。ファームウェアプログラムは、マイクロプロセッサによって実行され、上記のデータ管理プロセスステップが行われる。データ管理装置133は、後述の障害強度マトリクス135を、継続的な動作履歴137とともに使用し、予防的データ管理活動をいつ実行するかを判断する。各種の実施形態において、データ管理装置133は、フラッシュアレイ141に対して実行された有意な動作の各々を記録することにより、動作履歴137を保持する。いくつかの実施形態において、データ管理装置133には、障害強度マトリクス135が読取専用データとして供給されるが、これは、障害強度テストが他の選択されたサンプルデバイスについて実行されたからである。しかしながら、いくつかの実施形態において、データ管理装置133は、セルフテストを実行することによって、障害強度マトリクス135を作成する。
【0018】
本発明は、NAND型フラッシュアレイ141を使用する実施形態と、NOR型フラッシュアレイ141を使用する実施形態を含む。関連発明による劣化の早期検出(EDD)システムを含み、本発明の実施形態に含められるNAND型およびNOR型フラッシュメモリについて、以下に説明する。
【0019】
[劣化の早期検出機能を備えるNAND型フラッシュの実施形態]
シングルレベルおよびマルチレベルメモリセル構造20に適用可能な先行技術によるNAND型フラッシュを
図1に示す。問い合わせられているNAND型フラッシュメモリセルには、有効なV
Tレベルの書き込まれている他のメモリセルが直列に設置されている点に注意されたい。(注:これは、NOR型フラッシュメモリには当てはまらない。)。NAND型構造のセルは、2つのセルアレイ、すなわち、トランジスタの左側のカラムとして示されるセルアレイ(a)と、右側のカラムとして示されるセルアレイ(b)に分けられる。セル構造20は、ビット毎ベリファイ(BV)回路21a、21bを含み、これらは2本のビット線BLai、BLbiの各々に接続される。2本のビット線と2つのBV回路は、DRAMのオープンビット線方式と同様に、共通のREADWRITE(R/W)回路を共有する。R/W回路は、読み込み動作ではフリップフロップ型の差動センスアンプ22として、また書き込み/書き換え動作ではデータラッチ回路として機能する。
【0020】
図1の構造の読み込み動作に関する、選択されたタイミング曲線を
図2Aに示し、この中では、時間t1、t2およびt3が選択点である。単純にするために、すべてのタイミングチャートと解説は、あるページの全セルの平行読み込みに完璧に適合した読み込み回路であることを前提としている。これらの回路の不適合には、単純な校正手順で対応できる。たとえば、既知の内容のメモリセルの具体的な集合を用いた基準読み込みを使って、後のそのメモリアレイ内のセルの読み込みにおけるセンスアンプの不適合を訂正することができる。
【0021】
センスアンプ22はコンパレータであり、一般に、再生ループを用いて、
図1のビット線BLaiとBLbiからのパスゲート通過後の入力線の小さな分離を、完全に生成された出力電圧レベルとして生成する。
図1の回路と
図2Aの曲線は、NAND型フラッシュの読み込みを適正に表している。
図2Bは、
図1の先行技術によるNAND型フラッシュメモリセル構造の集合の、1.8vに対するBLaiの読み込み値「1」のt3以降の部分を選択して示した図であり、一般的なタイミング曲線26と、線25、27を境界とする、セル集合に関して考えられるタイミング曲線の範囲の例を示している。セル集合のBLbi信号も、これと同様のタイミング曲線の分布を示す。本発明の実施形態は、セル集合の完了時間(TTC)を測定または推測することによって、セルのページの性能の分散の変化を検出する。曲線の立ち上がり部のタイミングの分散は、読み込み動作の完了時間(TTC)の差となる。注意すべき点として、フラッシュ読み込み回路は一般に、タイミング性能の通常の分散では読み込みエラーが発生しないようにするための機能を含んでおり、すなわち、回路は「保護されている(sandbagged)」。それゆえ、本願の発明は、フラッシュメモリの中で当業者によって評価されなかった面に光を当て、この現象を新規な用途に利用するものである。
【0022】
NAND型フラッシュの方式により、選択されていないメモリセルの中の異なる内容に応じて、選択されたセルに異なる直列抵抗が生じる。そのため、NAND型フラッシュメモリセルの内容に対しては、逐次的ステップで問い合わせと異なる基準レベルとの比較が行われ、その中で異なるV
Tレベルが問い合わされる。
【0023】
メモリセルの1ページは、NAND型フラッシュメモリの中で平行して読み込まれ、そのためには、読み込み動作が同期された適切な時間信号によって起動される必要がある。タイミング信号は、そのページに関するすべてのセンスアンプの線を等化するが、セルの強弱によって、センスアンプの線の駆動が異なり(等化後)、したがって、ラッチのトリガからセンスアンプの出力でのフル電圧の生成までの時間(すなわち、TTC)は、より強いセルとより弱いセルとで異なる。本発明によれば、完了時間(TTC)の差を測定し、システムが後に解析するのに適切な形態で保存することができる。
【0024】
NAND型フラッシュマトリクスの中のすべてのメモリセルは、名目上、同一であり、それぞれが閾値電圧V
Tに書き込まれ、それにより、それらの書き込まれたV
Tのすぐ上の特定の電圧レベル(V
READ)で問い合わせられると、所定の電流レベルを生成するため、
(i)TTCの分散は、読み込まれているセルのV
Tの分散に代わるものとなる。
(ii)フラッシュメモリのページが初めて使用される時点のTTCの分散の値を基準値として保存し、これをその後読み込み時に測定された分散と比較して、メモリセルの劣化がいつ、データ保護動作を確実に行える限界を超えたかを判断することができる。
(iii)読み込み動作中の各セルのTTCの分散に関する知識を使って、ソフト情報を、判断されたメモリセルの内容の各々に割り当てることができる。
【0025】
図3は、本発明のある実施形態による劣化の早期検出(EDD)システムを備えるNAND型フラッシュのページ60の、選択された機能ブロックを示す。コントローラ30は、タイムベース31、逐次的V
T問合せ制御回路33およびデコーダ35を含み、これらは先行技術にしたがって設計されるため、詳細に説明しない。デコーダ35は、メモリセルのV
Tが判断されると、メモリセルの内容の、対応するバイナリコードを出力する。逐次的V
T問合せ制御回路33は、NAND型フラッシュにおいて使用される、選択されたメモリセルの正しいV
Tを逐次的に検索する回路を抽象化したものである。タイムベース31は、パスゲートおよびセンスアンプのラッチに必要なタイミング信号を発生し、また、完了時間(TTC)測定装置32の時間計測も行う。
【0026】
完了時間(TTC)測定装置32は、メモリセル構造20の中のメモリセルによって駆動されるビット線出力がその最終的な数値に到達するのに必要な時間を測定する。コントローラ30とメモリセル構造20は、分散測定機能付きメモリ構造(MSDM)装置40と呼ばれる装置を形成する。メモリのページには複数のMSDM(MSDM_1、…、MSDM_n)が必要となり、これらは並列に分散アナライザ50に接続される。民生用フラッシュでは、メモリセル構造は実際には共有回路を持つメモリアレイに実装され、これは本願の精神から逸脱しない。
図3はそのため、本発明の概念を例示するために構成された単純な説明であり、例示を目的として提供されたにすぎず、本発明を限定するためではない。
【0027】
逐次的読み込み工程において、メモリセル構造の中のセンスアンプは、ダミービット線(BLbi)からの入力基準が、読み込み動作対象、すなわち問い合わせられているメモリセルのV
Tを上回るときだけ、特定の方向へのフル出力を生成する。それゆえ、選択されたメモリセルの内容は、バイナリの形態で判断され、復号される。また、この時点で、完了時間測定装置32によって測定された適正な完了時間(TTC)がTTC報告回路34から分散アナライザ50へと報告される。TTC報告回路34は、バッファと信号調整を含んでもよく、それによって、完了時間に関する情報を分散アナライザに適正に伝送する。
【0028】
完了時間測定装置32のある実施形態の図を
図4に示す。この実施形態は、フェーズロックループ(PLL)システムの位相検出回路に使用されているチャージポンプ回路と同様である。この実現例において、限定的な形ではないが、完了時間情報は、TTC測定装置32の内部のコンデンサC
out73の電荷に保存される。コンデンサの電圧は、電流発生源I1からの電流がスイッチS1を通ってコンデンサの中に流れることができる時間に比例する。S1の切り換えはフリップフロップ72によって制御され、フリップフロップ72は単一終端コンバータとの差分71の出力によってリセットされる。単一終端コンバータとの差分71は、メモリセル構造からの2つのバイナリ出力を入力として使用する。正しい完了時間は、メモリセルのV
Tが判断された後に分散アナライザ(DA)に報告される。コンデンサ73は、タイムベースからの信号に基づき、スイッチS2と電流発生源I2からドレインされる。
【0029】
図5は、本発明のある実施形態による分散アナライザ50の、選択された機能設計ブロックの図である。分散アナライザ50は、アナログ信号処理ブロックである。この実施形態において、その機能は、あるページ読み込み動作のためのTTC測定装置32の集合から最大完了時間および最小完了時間を判断することを含む。各TTC測定装置32はアナログ電圧レベル(TTCM_out)を出力し、これがTTC報告回路34を通って分散アナライザ50に供給される。分散アナライザのMin/Max検知器51は、TTC報告回路からのその複数の入力での最大電圧と最小電圧を判断する。全体としての最大および最小値の差(差分)は、減算器52によってそのページに関する分散の測定値として判断される。分散アナライザは、コンパレータ54を使って、計算された差分が基準値53より大きいか否かを判断し、それに応じて警告信号をセットする。基準値は、事前に決定された閾値か、NAND型フラッシュメモリを初めて使用する時点で確立された初期値である。ある実施形態において、ストレージシステムの中のNAND型フラッシュチップの動作開始時に、書き込みコマンドの後、読み込みコマンドが発行されて、各読み込み動作でのV
Tのその後の分散を比較するための基準値が確立される。それゆえ基準値は、分散アナライザに、全体としての最大および最小値の初期差分を計算させ、その初期差分を基準値として保存させることによって、製造工程の一部として設定できる。
【0030】
図6は、本発明のある実施形態による分散アナライザのMin/Max検知器51に使用される最大電圧検知器51Aの設計の図である。
図6において、最大入力電圧を判断するためのCMOS回路の例が示されている。これは、「winner−takes−all」回路である。この回路の出力は最大入力電圧に従い、その精度は入力レベル間の差1mVである。この回路の中の入力数は、回路の反復によって直接的に増大させることができ、または2つの入力回路を階層木に配列することができる。最小入力電圧に従わせる場合は、組み込まれた回路の中でNMOSからPMOSへと適切に変更する。
【0031】
劣化の早期検出システムを使用して、各メモリセルから読み込まれた内容に、エラー確率または正確さ信頼レベルを割り当てることができる。完了時間(TTC)測定に関する情報によって読み込まれた各セルのV
Tの位置に関する情報を使用して、正確さ信頼レベルを各セルから読み込まれたデータに割り当てることができる。これによって、読み込まれた各セルデータの理想的な分散におけるV
Tの位置を知らせる機能を備えるNAND型フラッシュチップに、新規で、より効率的な符号化およびエラー訂正アルゴリズムを使用できる。すべて、1回の読み込みを必要とする。
【0032】
[劣化の早期検出機能を備えたNOR型フラッシュの実施形態]
先行技術によるNOR型フラッシュメモリセルとそれぞれのセンスアンプの構成は、
図7Aと7Bにおいて、基本的な動作を強調するために単純化された略図として示されるとおりである。カラムデコーダトランジスタだけがNOR型フラッシュメモリセルと感知回路に直列に配置される点に留意されたい。そのために、NOR型フラッシュセルの読み込みは、シングルレベルセル(SLC)とマルチレベルセル(MLC)のいずれでも、アナログ−デジタル変換回路と同様に平行して行うことができ、各セルに書き込まれたV
Tは、1回の問い合わせで判断される(これは、逐次的な問い合わせが必要なNAND型フラッシュと異なる)。コンパレータCOMP1から3は一般に、再生ループを用いて、入力線(ビット線MAT1から3、REF1から3)の小さな分離を、完全に生成された出力電圧レベルとして生成する。回路とタイミングの性能は、シングルレベルセル(SLC)とマルチレベルセル(MLC)の読み込みの両方を適正に表している。
【0033】
図7Aと7Bの先行技術によるマルチレベルセル(MLC)フラッシュメモリ回路は、図のように、適切な比較用基準電圧(REF1から3)を含むように変更されている。センスアンプ97、98のバンク(COMP1から3)の平行した同時動作が使用され、これは、前述のように、NOR型フラッシュでは、読み込まれているメモリセルとはカラムデコーダトランジスタだけが直列であり、適正な基準電圧は、読み込み動作対象のメモリセルの閾値電圧を判断するために決定できるからである。
【0034】
本発明によるNOR型フラッシュのための早期検出システムの原理は、以下を観察することによって説明できる。
1)NOR型フラッシュでは、いくつかのメモリセルが平行して読み込まれ、この読み込み動作は、適正に決定された同じタイミング信号によって起動される。(タイミング信号は、読み込み動作に関わる全てのセンスアンプの線を等化し、感知をトリガする。)このため、セルの強弱によって、センスアンプの線の分離が異なり(等化後)、感知のトリガからセンスアンプの出力でのフル電圧の生成までの時間(「完了時間」(TTL)と呼ぶ)は、より強いセルとより弱いセルとで異なる。
2)NOR型フラッシュマトリクス内のすべてのメモリセルは、名目上同じであり、各々が閾値電圧V
Tに書き込まれ、それにより、それらの書き込まれたV
Tのすぐ上の特定の電圧レベルで問い合わせられると、所定の電流レベルを生成するため、
(i)(1)で定義されたTTCの時間の分散は、読み込まれているセルのV
Tの分散に代わるものとなる。
(ii)フラッシュメモリが初めて使用される時点のTTCの分散の値を保存し、これをその後の読み込み時のTTCの分散と比較して、メモリセルの劣化がいつ、データ保護動作を確実に行える限界を超えたかを判断することができる。分散基準値として選択された値を実際に測定された値の代わりに使用することもできる。
(iii)読み込み動作中の全セルのTTCの分散に関する知識を使って、ソフト情報を、判断されたメモリセルの内容の各々に割り当てることができる。
【0035】
図8は、本発明のある実施形態による劣化の早期検出システムを備えるNOR型フラッシュメモリ80の、選択された構成要素を示す。本発明によるNOR型の実施形態の分散アナライザ50は、機能的には、本発明のNAND型の実施形態の分散アナライザと同等であるが、入力が以下のように異なる。分散アナライザ50は、複数の(1、…、n)のTTC測定装置120からの入力を受け取り、TTC測定装置120は、MUX 1_OUT、…、MUX n_OUTの信号を生成するように示されている。この実施形態では4レベルNOR型フラッシュメモリが想定されているが、これは限定条件ではない。センスアンプ98は、入力基準電圧が読み込み動作対象のメモリセル(MAT1から3)のV
Tを超える場合にのみ、正のフル電源へのそれらの出力(OUT1から3)を生成する。それゆえ、3つの完了時間(TTC1から3)装置32A−Cは、比較の結果、V
READがV
Tより高かった場合のみ、その出力に完了時間の有限値、すなわち電圧有限値を生成する。他のTTC装置のブロックは、フル電源電圧でその出力を飽和させる。
【0036】
先行技術による温度計デコーダ(TD)25は、この例では、メモリセルの内容をバイナリフォーマットで出力し、また、アナログマルチプレクサ(MUX)23にスクリーニング信号も供給して、メモリセルの内容の完了時間を表す電圧が正しく選択されるようにする。分散アナライザ50は、読み込み動作中に読み込まれた全セル(または、全セルの中の一部)の完了時間(TTC)の数値の分散が所定の数値より大きい場合に、劣化警告信号をセットする。
【0037】
図10は、本発明のある実施形態のマルチプレクサ(MUX)23の設計の図である。MUX 23の入力は、それぞれのTTC装置32AからCの出力(TTC1_OUT33A、TTC2_OUT33B、TTC3_OUT33C)である。MUXは、これらの入力のうち1つを選択して、MUX1_OUT信号として分散アナライザに供給する。MUX23は、概念的に、パスゲートのアナログアレイということができる。しかしながら、3つのTTC装置32AからCのうちの1つの出力の電圧レベルを分散アナライザ50の入力へと伝送することは、適正なバッファと信号調整回路を使用したいくつかの別の方法でも実現できる。
【0038】
NOR型フラッシュの読み込み回路のある実施形態において、問い合わせたメモリセルからの信号は、問い合わせたメモリセルが保持可能な異なる蓄積電荷レベルに対応する、基準複製電圧(REF1から3)と平行して比較される。使用する設計に応じて、この図のコンパレータCOP1から3からのいくつかの出力は値「0」を表し、いくつかは残りの値「1」を表し、「0」と「1」は、温度計の目盛のように見え、すなわち、出力として考えられるものとしては、たとえば、OUT2とOUT3が出力「0」でOUT1が出力「1」、またはOUT3が出力「0」でOUT1とOUT2が出力「1」、という2つの例がある。
【0039】
温度計デコーダ25は、次に、この温度計の目盛の出力をバイナリコードに変換する。ある実施形態において、OUT1から3の信号のうち、出力「1」を保持する最初のものが、問い合わせ対象のセルの閾値レベル(V
T)より上の最初の基準レベルを表し、その位置もまた、温度計デコーダ25からの信号S(s0、s1)に符号化されて、MUX23に送信される。信号Sは温度計デコーダによって決定され、温度計デコーダは、ある実施形態において、メモリセルの内容の読み込みのための温度計デコーダとして機能する。概念的に説明すれば、ただし限定的な意味ではないが、信号S(s0、s1)は、TTC1から3の信号のどれが、MUXによって分散アナライザに報告されるべき完了時間(TTC)であるかを選択する。
【0040】
TTC装置32AからCは同一である。出力TTC1_OUTを生成するTTC1装置32Aの一例としての実施形態が
図9に示される。これは、フェーズロックループ(PLL)回路で使用されるチャージポンプ回路と似ており、この場合、VCO周波数と基準周波数の間の位相分離が訂正動作のために判断されることになる。センスアンプの等化(SAEQ)信号の立ち上がりからV
out(それぞれOUT1から3)の立ち上がりまでの時間は、コンデンサC
outの電圧レベルに変換される。標準的なタイミング信号であるアドレス遷移検知(ATD)とENDREADまたはその他の同等の信号もまた使用される。バッファ回路(図示せず)を、TTCブロックの出力とMUX回路の間に使用してもよい。
【0041】
この実施形態において、分散アナライザ50は、ページの読み込み動作のための複数のTTC測定装置120からの出力信号に示されるような最大完了時間および最小完了時間を判断する。TTC32AからCの各々は、MUX23に供給されるアナログ電圧レベルを出力し、MUX 23は、今度は、その3つの入力のうちの1つを選択して、分散アナライザ50に送信する。分散アナライザのMin/Max検知器51は、複数のTTC測定装置120からその複数の入力での最大電圧と最小電圧を判断する。全体としての最大および最小値の差(差分)が、減算器52によって、そのページの分散の測定値として判断される。減算器52の出力は、本発明の実施形態で使用される分散値であり、これについて以下にさらに説明する。分散化アナライザは、コンパレータ54を使って、計算された差分が基準値53より大きいか否かを判断し、それに応じて警告信号をセットする。基準値は、予め決定された閾値か、フラッシュメモリを初めて使用する時点で設定される初期値である。1つの実施形態において、ストレージシステムの中のフラッシュチップの動作の開始時に、書き込みコマンドの後、読み込みコマンドが発行されて、各読み込み動作でのV
Tのその後の分散を比較するための基準値が確立される。それゆえ基準値は、分散アナライザに、全体としての最大および最小値の初期差分を計算させ、その初期差分を基準値として保存させることによって、製造工程の一部として設定できる。
【0042】
ソフト情報が必要なエラー訂正コード方式は、本発明のある実施形態について、読み込まれたすべてのセルからの完了時間情報を分散アナライザが有している点を注目することによってサポートできる。完了時間の結果の分散におけるその最初のセルの位置から、適切な正確さ確率を最終的なバイナリの結果に割り当てることができる。すべて、1回の読み込みを必要とする。
【0043】
[障害強度および動作履歴を使用したエラー訂正のための確率推測]
通常の動作において、NOR型およびNAND型フラッシュメモリセルには、浮遊ゲートへの電荷の注入または浮遊ゲートからの電荷の消失を発生させる障害が起こる。以下の表1は、IEEE Standard 1005−1998,page 97から引用したものであるが、異なる障害条件での動作と状態および、障害が生じたメモリセルの中の電荷に対するそれらの影響を示している。表1の動作集合は、障害を起こす可能性のある動作のデフォルトリストと仮定される。しかしながら、本発明はいかなる特定の動作集合にも限定されない。
【表1】
【0044】
[エラー強制による障害強度の測定]
本発明による方法で、表1に記載された動作の全部または一部のような動作集合に関する平均相対的障害強度を測定する。障害強度は、製造工程の一部として判断されるべきである。障害強度は、後述のように、デバイスがセルフテストによって判断できるが、代表的なサンプルデバイスについてテストを実施し、障害強度マトリクスをリードオンリメモリの一部として生産デバイスに供給することも可能である。特定のデバイスで使用されるフラッシュメモリチップは、同じチップ構成とデバイス技術およびプロセスを使用する、ある製造者からのものであり、異なる動作に関する実質的に同様の平均相対的障害強度を見せることを前提とする。異なる製造者のチップの間の、異なる障害に関する平均相対的強度の違いは十分に明瞭であり、特定の用途にどのフラッシュメモリチップ製造者の製品が部品として最も適切かを顧客が判断できるということがありうる。
【0045】
テストおよび特性評価の方法のある実施形態を、
図11のフローチャートを参照しながら説明する。フラッシュメモリチップは、テスト開始前に、完全に消去するか、あるいは一貫性のある、既知の状態に置くべきである。例示のために、
図11は、フラッシュメモリチップの中の、障害を引き起こす異なる動作の平均相対的強度の特性評価を行う作業のフローチャートの一例を示す。この方法では、まず、障害を引き起こす可能性のある全動作リストの中からある動作を選択する(11)。
【0046】
この方法は、リストの中のいずれの動作でも使用できるが、読み込み動作は幾分有利であり、これは、その理由の1つとして、実行機能な読み込み動作の回数に固有の限度がないからである。いくつかの動作に関する実行回数の限度については、以下にさらに説明する。また、いくつかの動作と異なり、読み込みを行うのに、それに続けて他の動作を実行する必要がない。たとえば、書き込みには一般に、その前に消去動作を必要とし、これはブロックごとに行われる。
【0047】
消去または読み込み動作等のいくつかの動作は、関連するデータビットパターンを持たないかもしれないが、たとえば、書き込み動作には、この方法の内側パターンループで適用される、対応するビットパターン集合があることがある。このパターンは、AAhまたは55h等の標準的メモリビットパターンであっても、適切なその他のパターンであってもよい。適切なデータパターンは、メモリセルが、隣接するメモリセルの中にある電荷に応じて、障害に対する感度がより強いか、より弱いかを考慮して、選択できる。これを確認するために、システムは、セルにたとえば「1」に書き込み、その一方で隣接セルに「0」を書き込んで、障害に対する感度を確認する必要があるかもしれない。続いて、別の内容を選択されたセルの中に書き込み、その一方で違う内容を隣接のセルに書き込む。障害強度セルフテストを実行する際、複数のパターンを適用できるが、最終的には、最後の障害強度マトリクスの中には、各動作について1つの数値があるべきである。パターン番号の集合は多くの有意義な方法、たとえば平均化等で使用できるが、保守的な手法では、最も強力な障害を引き起こすパターンの番号が選択される。目標は、障害となる問題の警告を発して、訂正措置を取ることができるような堅牢なシステムを実現することである。
【0048】
選択された動作と、選択された(第一または次の)パターンがある場合はそのパターンを一度実行して、初期ベースライン結果を生成する(12)。ステップ12から得られたメモリの初期内容を読み込み、その後の比較のために保存する(13)。その後、現在のパターンがある場合はそのパターンを使用して、選択された動作を比較的多い回数だけ実行することによって、メモリにストレスをかける(14)。選択された動作の総実行回数をカウントする(14)。メモリの内容を再び読み込む(15)。現在の内容を初期の内容と比較し、エラーが強制的に起こされたかを確認する(16)。現在の内容が依然として初期の内容と同じ場合は、ステップ14に戻り、さらに動作を繰り返し実行する。最終的にエラーが引き起こされると、方法はステップ17に進み、ここで、エラーが検出されるまでに実行された動作の総回数を記録する。メモリの内容は各動作後には比較/テストされないため、分解能は、各読み込み/テストの間に実行された動作の回数によって制限される。エラーの方向(電荷の注入または消失)もまた記録する(17)。この時点での結果は、選択された動作と、おそらくは1つのパターンに関するものであるため、ここで、選択された動作に関する追加のパターンを選択し、内側パターンループを再び実行する(18)。選択された動作についてすべてのパターンを実行した時点で、リストにさらに他の動作があれば、外側ループを再び実行する(19)。
【0049】
すべての動作のテストが終了すると、記録されたデータは各動作に関する障害強度のマトリクスとなる(19a)。1つの動作について複数のパターンがテストされた場合、マトリクスに記録された数値は、前述のように、パターンのための数の集合から選択された、または計算された1つの数となる。記録された数を比較することによって、各動作の相対的障害強度が得られる。このデータマトリクスの1つの考えられる用途は、前述のように、フラッシュメモリ製造者を差別化するためのツールとしての用途である。
【0050】
サンプルがテストされており、破壊的試験が可能である場合、方法の選択可能な実施形態では、メモリに消去/書込みサイクルが実行される間の障害強度の変化を判断する。この実施形態において、消去/書き込みサイクルを選択された回数だけ実行した後に、
図11の方法を再び実行し、プロセス全体を何回も繰り返して、消去/書き込みサイクルの回数に関する障害強度の変化を判断する。その後、障害強度の変化を解析して、生産デバイスの中に実装できる有益なアルゴリズムまたはマトリクス集合を導き出し、障害強度マトリクスが、メモリに対して時間の経過とともに消去/書き込みサイクルが実行される間の変化を追跡できるようにする。たとえば、時間の経過とともに消去/書き込みサイクルの回数が増えるのに合わせて障害強度マトリクスを調整するために使用できる等式を導き出すことが可能かもしれない。
【0051】
チップの寿命を大幅に短縮することなく、または寿命が終わる限界に達することなく、実行できる動作回数を判断するときに、いくつかの要素を考慮する必要がある。いずれの特定のフラッシュメモリチップに関しても、製造者は特定の動作の上限を明示する。絶対的な回数は、設計や製造技術が今後進化すると、変わることが予想される。たとえば、特定のフラッシュチップは、10万回の消去/書き込みサイクルに耐えられると明示されるかもしれない。したがって、障害強度テスト中に実行できる動作の回数は、破壊的試験が可能な場合を除き、使用されている実際のチップの具体的な限度を考慮して選択する必要がある。障害強度テスト実行後に使用される予定のデバイスの場合、動作回数は、仕様書による限度より少なくするべきである。別の実施形態では、フラッシュチップのバッチから選択されたサンプルについて障害テストを実行し、そのバッチ内の他のチップの挙動を推定することができる。すべてがある製造者からの同じ設計と製造技術を用いる1世代のチップから抽出したサンプルをテストすれば十分であることもありうる。サンプルを使用して障害強度を判断する場合、障害強度マトリクスは、生産データストレージデバイスのプログラムメモリの中にリードオンリーデータとして供給される。
【0052】
同じ世代の部品の生産全体で使用される、ある製造者からのサンプル集合から相対的障害強度のマトリクスを作成する場合は、
図11に示される流れの手順を、そのフラッシュチップの使用寿命の限界まで実行できる点に注意されたい。これは、使用されるサンプルにとって破壊的な特性評価であろう。このような破壊的手順は、デバイスのセルフテストに使用される手順の、より制限された消去/書き込みサイクル数に対して追加して使用できる。
【0053】
[分散の変化を用いた障害強度の推測]
メモリセルに注入される電荷は、そのメモリセル内のV
T電圧を増大させる。この方向への障害が徐々に進むと、V
Tは閾値を超え、そのセルはV
Tの記録可能なレベルにおける1つ高いレベルに対応するデータを含むものとして読み込まれる。反対に、障害を発生させるイベントにより電荷が消失すると、V
T電圧は低下し、この方向への障害が徐々に進むと、最終的にV
TはV
Tの記録な可能レベル範囲の中の1つ低いレベルに移動する。
【0054】
要約すれば、相対的障害強度のマトリクスは、フラッシュチップに他の回路を追加せずに作成できる。相対的障害強度は、標的セルのV
T電圧を、その当初記録されたV
T値より上または下の閾値を超えるように変化させる障害イベントの回数で測定される。
【0055】
しかしながら、TTC分散に基づくEDDの回路を追加できれば、相対的障害強度のマトリクスは、より少ない回数の障害イベントで、したがって、本願で先に説明したものより低コスト、短時間で構成できることが明らかである。
【0056】
EDD追加回路は、1ページの読み込みにおいて問い合わされるメモリセル集合全体の総合的な分散に関する情報を提供するだけでなく、読み込まれたそのページの各メモリセルのV
Tの相対的位置に関する情報も提供する。それゆえ、相対的障害強度のマトリクスは、あるメモリセルのセルV
T位置における検出可能なシフト、またはより正確には、そのセルに関するTTCブロックの中のある変化を起こす障害数に基づいて構成できる。
【0057】
この項で説明する実施形態において、システムには、NAND型またはNOR型フラッシュメモリに関して前述した分散分布推測を備えるEDDシステムが含まれる。前述の実施形態と同様に、障害強度は、製造工程の一部として決定されるべきである。分散アナライザ50からの分散値信号(
図5に示す)が、この実施形態で使用される。V
T分布の他の測定値も、この方法で使用できる。分散値は、メモリのあるページに関する完了時間の最大値と最小値の差分を表すアナログ信号である。この方法は、次のページに移動する前の時点で単独のページについて実行でき、あるいは全ページについてステップを実行できる。ある実施形態において、テストおよび特性評価の方法は、フラッシュチップを完全に消去することから開始される。
図12は、この方法のある実施形態を説明するためのフローチャートを示す。障害を起こす可能性のある動作リストからある動作を選択する(11C)。ビットパターンを選択し、メモリに書き込む(12C)。読み込み動作を実行し、分散アナライザによって生成された初期の分散値を保存する(13C)。選択された動作を、比較的多い回数にわたり繰り返す(14C)。読み込み動作を実行することにより、現在の分散値を再び測定する(15C)。現在の分散値をその後、初期の分散値と比較する(16C)。2つの数値が等しい場合(許容値内)、この方法はステップ14Cに戻り、別の動作バッチを実行して、分散値を再び測定する。現在の分散値が初期の分散値と等しくなくなったところで、分散値の中のある変化を引き起こすために実行された動作の回数を、選択された動作の障害強度として記録する(17C)。この動作について、他にも所望のパターンがある場合は、この方法はステップ12Cに戻り、次のパターンについて試験を繰り返す(18C)。選択された動作についてのすべてのパターンのテストが終了したところで、そのリストに他にも動作があれば、方法はステップ11Cに戻る。
【0058】
動作集合の相対的障害強度マトリクスにその後、上記の測定値を記録する(20C)。1つの動作に関して複数のパターンがテストされた場合は、前述のように、1つの数値をマトリクスに記録する。サンプルがテストされており、破壊的試験が可能な場合は、前述の
図11の方法と同様に、選択された回数の消去書き込みサイクルを実行した後に、
図12に示される方法を再び実行して、消去/書き込みサイクルの回数に関する障害強度の変化を判断することができる。
【0059】
[データ管理活動のための確率割当]
本発明のある実施形態によるSSDシステム130は、障害強度マトリクス135と動作履歴137を使用して、データのリフレッシュまたは移動等の予防的活動をいつ実行すべきかを判断するデータ管理システム133を有する。前述のように、ある製造者からの選択されたメモリチップに関する、障害誘発動作の相対的強度は、同じチップ構成と技術および製造工程を使用する、同じ製造者からのすべての部品についての、障害動作の相対的強度を表すものとみなすことができることを前提とする。それゆえ、この実施形態によるシステムでは、
(i)あるフラッシュチップに対して実行された、それまでの動作(書き込み−書き換え、消去、読み込み)の継続的な履歴が保持される。すなわち動作履歴137である。
(ii)異なる障害動作の平均相対的障害強度と、注入・消失の方向とが、障害強度マトリクス135の中でわかる。および、
(iii)実際に実行された障害動作全部の電荷に対する累積的影響を、障害強度と注入・消失の方向とを使って推測できる。各種の動作に関する電荷の注入と消失は差し引きされる。
【0060】
図13Aは、マルチレベルフラッシュメモリチップに関する読み込み値(V
T)の分布を示しており、これを使って本発明のある実施形態を説明する。
図13Aにおいて、さまざまなデータポイントは、それが正しいものである確率、すなわち当初書き込まれた数値に障害が生じていない確率を有しており、これは本発明の技術を使って推測できる。この例では、分布1から3に示されるデータポイントはそれぞれ、MLCに関する当初の許容可能な標的書き込み値として容認される範囲内にあり、そのため、先行技術のシステムはこれを正しいと解釈する。しかしながら、電荷の注入または消失によって、データポイントは1つの分布から他の分布に移る可能性がある。先行技術のフラッシュメモリチップの読み込み動作では、たとえば、分布2の中にあるデータポイント121、122でデータを回復するかもしれないが、これらのデータポイントは当初は分布1または3の中に書き込まれていたかもしれない。
【0061】
障害誘発動作の実行履歴と、これらの動作の相対的障害強度と、を使用して、121、122を含むいずれのデータポイント値の正確さにも、確率を割り当てることができる。それゆえ、本発明による方法を用いれば、データポイント値121にはある確率を割り当てることができ、この確率とは、それが以前は分布1の中の考えられる状態の1つが書き込まれていたメモリセルの最終的な障害発生後の状態かもしれず、障害動作による電荷の注入の結果としてその最終状態に到達したという確率である。同様に、電荷消失の原因となりうる動作の影響によって、当初は分布3の中にあったデータポイントが、より低い数値となり、分布2に当てはまる、たとえばデータポイント122となる可能性もある。電荷の注入と消失の方向と大きさは、具体的な動作の障害強度、注入−消失方向および実際に実行された動作の累積的影響に関係する。
【0062】
注意すべき点として、消去動作は、標的とされるメモリセルの電荷を一掃するが、それには、動作履歴のリセットは不要である。消去動作は履歴記録に追加され、フラッシュメモリの障害イベントの累積的影響を更新するために使用される。消去サイクルにより、相対的障害強度が変化するかもしれない点に注意されたい。
【0063】
1つの実施形態において、障害誘発動作の履歴は、障害誘発動作回数の総数の中の、各障害誘発動作が占めるパーセンテージとしてまとめることができる。これによって、これらの障害誘発動作の、浮遊ゲートにおける電荷数における最終的な正味の障害効果に対する相対的強度の加重和が得られる。この障害誘発動作の履歴は、ページごと、またはチップのセクタごとに記録することができ、各障害誘発動作の時点での、異なる可能性のあるチップの内容を反映するように調整することもできる。
【0064】
障害強度マトリクスと動作履歴をさまざまな方法で使用して、データ損失を防止するための予防策に関する決定を下すことができる。1つの手法では、保守的な決定を用いて、フラッシュチップ内のデータを強制的にリフレッシュまたは移動させる。たとえば、障害強度テストから、データ管理システムは、たとえば、ある(非常に高感度の)セルに対して100万回、読み込み動作を実行すると、読み込まれたメモリの内容にビット障害が発生したことを観察したかもしれない。本発明によるデバイスの1つの実施形態はすると、そのセルのいずれかにおいて、100万回、読み込み動作を実行した後に、データリフレッシュを要求または実行できる。あるいは、リフレッシュを強制する代わりに、今読み込まれたばかりのセル(100万回の読み込み動作を行った後)にエラーがあるかもしれないという確率を、選択された確率に割り当てることも可能であろう。この情報は、その読み込まれたデータに割り当てるべき信頼性レベルに代わるものとして、エラー検出およびエラー訂正装置に送信することができる。リフレッシュはその後、エラー検出およびエラー訂正装置の制御によって要求される。
【0065】
要約すれば、
図13Bに示されるように、障害と消去サイクルの履歴を使用して、読み込まれたデータに関するエラーバーの推測を行うことができる。特定のセルのTTC情報で、その分布におけるそのセルのV
Tの位置が推測される。これら2つの情報を追加して、管理システムは、フラッシュメモリから読み込まれたどのデータにもエラーの確率を割り当てることができる。
【0066】
本発明を、特定の実施形態に関して図示し、説明したが、本発明は、その範囲において、付属の特許請求の範囲に明記されているようにのみ限定される。