(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-13
(45)【発行日】2022-05-23
(54)【発明の名称】部分的XOR保護
(51)【国際特許分類】
G06F 11/10 20060101AFI20220516BHJP
【FI】
G06F11/10 648
【外国語出願】
(21)【出願番号】P 2020051992
(22)【出願日】2020-03-24
【審査請求日】2020-03-25
(32)【優先日】2019-06-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504056130
【氏名又は名称】ウェスタン デジタル テクノロジーズ インコーポレーテッド
(74)【代理人】
【識別番号】110002572
【氏名又は名称】特許業務法人平木国際特許事務所
(72)【発明者】
【氏名】アヴィ クライン
(72)【発明者】
【氏名】エラン シャーロン
(72)【発明者】
【氏名】ガディ ヴィシュネ
(72)【発明者】
【氏名】イゴール ゲンシャフト
(72)【発明者】
【氏名】マリーナ フリード
(72)【発明者】
【氏名】マイケル シルバーミンツ
【審査官】久保 光宏
(56)【参考文献】
【文献】米国特許出願公開第2012/0047409(US,A1)
【文献】米国特許出願公開第2017/0110200(US,A1)
【文献】特開2006-216136(JP,A)
【文献】米国特許出願公開第2012/0311406(US,A1)
【文献】特開2013-109813(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F11/00-11/34
G11C16/00-16/34
G11C29/00-29/56
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
方法であって、
メモリモジュールの複数のブロックのうちの少なくとも1つから弱いワード線を識別することであって、前記複数のブロックのそれぞれは、複数のワード線を含み、前記弱いワード線は
、それに接続されているメモリセルの不合格ビット数またはビット誤り率のうち少なくともいずれかが基準を満たさないワード線である、ことと、
前記弱いワード線に接続されているメモリセルに格納されているデータが第1のレベルの保護を受けることを決定することと、
前記第1のレベルの保護を前記弱いワード線に接続されているメモリセルに格納されているデータに適用することと、を含み、
第1のブロックの第1のワード線を、平均パラメータから既定の閾値だけ逸脱している、前記第1のワード線に関連付けられたパラメータの値に基づいて、前記弱いワード線として識別することを更に
含み、前記パラメータは、前記不合格ビット数または前記ビット誤り率のうち少なくともいずれかである、
方法。
【請求項2】
前記平均パラメータが、
前記複数のワード線のそれぞれから前記パラメータの前記値を測定することと、
前記複数のワード線のそれぞれからの前記測定された前記値の平均を計算することと、によって計算される、請求項1記載の方法。
【請求項3】
前記第1のレベルの保護を受けない前記複数のワード線に接続されているメモリセルに格納されているデータに第2のレベルの保護を適用することを更に含む、請求項1に記載の方法。
【請求項4】
前記複数のブロックから、少なくとも1つの疑わしい不良化ブロックを選択することと、
前記少なくとも1つの疑わしい不良化ブロックのそれぞれから前記弱いワード線を識別することと、
前記少なくとも1つの疑わしい不良化ブロックを第2のプールに配置し、前記複数のブロックのうちの残りのブロックを第1のプールに配置することと、を更に含む、請求項1に記載の方法。
【請求項5】
前記第1のプール内の前記複数のブロックのうちの前記残りのブロックを定期的に監視して、追加の疑わしい不良化ブロックを識別することを更に含む、請求項4記載の方法。
【請求項6】
前記追加の疑わしい不良化ブロックを前記第2のプールに転送することを更に含む、請求項5記載の方法。
【請求項7】
前記第1のレベルの保護が、前記第2のプール内の前記少なくとも1つの疑わしい不良化ブロックのそれぞれに適用され、前記第1のプール内の前記複数のブロックのうちの前記残りのブロックには保護が適用されない、請求項4記載の方法。
【請求項8】
前記複数のブロックのうちの前記少なくとも1つが、前記複数のブロックから選択されるブロックのサブセットを含み、前記ブロックのサブセットのそれぞれのブロックの前記複数のワード線に接続されているメモリセルに格納されているデータのそれぞれが、前記第1のレベルの保護が適用されるデータとして指定される、請求項1に記載の方法。
【請求項9】
前記複数のブロックのそれぞれからの前記複数のワード線のサブセットに接続されているメモリセルに格納されているデータが、前記第1のレベルの保護が適用されるデータとして指定される、請求項1に記載の方法。
【請求項10】
コンピュータ可読命令が記憶されている非一時的コンピュータ可読媒体であって、前記コンピュータ可読命令は、メモリモジュールに関連付けられたプロセッサによって実行されると、請求項1から9のいずれか1項記載の方法を含むプロセスを実施する、
非一時的コンピュータ可読媒体。
【請求項11】
コンピュータ可読命令が記憶されている非一時的コンピュータ可読媒体であって、前記コンピュータ可読命令は、メモリモジュールに関連付けられたプロセッサによって実行されると、請求項5または6記載の方法を含むプロセスを実施し、
前記プロセスは、
前記メモリモジュールの第1のブロックが、所定の閾値から所定の値だけ逸脱している、前記第1のブロックに関連付けられたパラメータに基づいて、前記疑わしい不良化ブロック又は前記追加の疑わしい不良化ブロックのうちの1つであることを識別することを更に含む、
非一時的コンピュータ可読媒体。
【請求項12】
前記プロセスは、
ウェアレベリング機構を前記第1のレベルの保護と組み合わせることを更に含む、請求項10記載の非一時的コンピュータ可読媒体。
【請求項13】
コンピュータ可読命令が記憶されている非一時的コンピュータ可読媒体であって、前記コンピュータ可読命令は、メモリモジュールに関連付けられたプロセッサによって実行されると、請求項4から6いずれか1項記載の方法を含むプロセスを実施し、
前記プロセスは、
前記第1のプール内の前記メモリモジュールの前記残りのブロックに別の保護を適用することを更に含む、
非一時的コンピュータ可読媒体。
【請求項14】
メモリデバイスであって、
複数のメモリモジュールであって、前記複数のメモリモジュールのそれぞれは複数のブロックを含み、前記複数のブロックのそれぞれは複数のワード線を含む、複数のメモリモジュールと、
前記複数のメモリモジュールのそれぞれに関連付けられたメモリコントローラと、を含み、
前記メモリコントローラは、
前記複数のブロックのそれぞれから弱いワード線の群を識別するステップであって、前記弱いワード線は
、それに接続されているメモリセルの不合格ビット数またはビット誤り率のうち少なくともいずれかが基準を満たさないワード線である、ステップ、
前記複数のブロックのそれぞれからの前記弱いワード線の群から、XOR保護の対象となるデータを格納したメモリセルに接続されているワード線のサブセットを識別するステップ、
前記複数のブロックのそれぞれの、前記ワード線のサブセットに接続されているメモリセルに格納されているデータのそれぞれに、前記XOR保護を適用するステップ、
を実施するようにプログラムされた命令を含み、
前記XOR保護が適用されるデータを格納したメモリセルに接続されている前記ワード線のサブセットが、前記複数のブロックのそれぞれの最初の4本のワード線を含む、
メモリデバイス。
【請求項15】
前記メモリコントローラが、前記XOR保護を適用されない前記複数のワード線に接続されているメモリセルに格納されているデータのそれぞれに第2の保護を適用するようにプログラムされた命令を更に含む、請求項14記載のメモリデバイス。
【請求項16】
前記XOR保護に加えて、前記複数のブロックのそれぞれの、前記ワード線のサブセットにウェアレベリング機構を適用することを更に含む、請求項14記載のメモリデバイス。
【請求項17】
前記弱いワード線の群を更新し、前記XOR保護が適用されるデータを格納したメモリセルに接続されている前記ワード線のサブセットを更新するために、前記XOR保護が適用されないデータを格納したメモリセルに接続されている前記複数のワード線を定期的に監視することを更に含む、請求項14記載のメモリデバイス。
【発明の詳細な説明】
【背景技術】
【0001】
以下の説明は、読者の理解を助けるために提供される。提供される情報又は引用文献のいずれも、先行技術であると認められない。
【0002】
メモリデバイスは、メモリデバイスの1つ以上のメモリモジュール内にデータを記憶するために多種多様なアプリケーションで使用される。1つ以上のメモリモジュールのそれぞれのデータは、そのデータを失うリスクを低減するための保護機構を使用して保護され得る。しかしながら、1つ以上のメモリモジュールに記憶されたデータを保護する現在の技術は、それらの保護技術が構成される方法において制限を有する。
【発明の概要】
【0003】
本開示のいくつかの態様による、方法が開示される。この方法は、メモリモジュールの複数のブロックのうちの少なくとも1つから弱いワード線を識別することを含む。複数のブロックのそれぞれは、複数のワード線を含む。この方法はまた、弱いワード線が第1のレベルの保護を受けることを決定することと、第1のレベルの保護を弱いワード線に適用することと、を含む。
【0004】
本開示のいくつかの他の態様による、コンピュータ可読命令が記憶されている非一時的コンピュータ可読媒体が開示される。これらの命令は、メモリモジュールに関連付けられたプロセッサによって実行されると、メモリモジュールのそれぞれのブロックを第1のプール又は第2のプールに分類することを含むプロセスを実施する。第2のプールは、メモリモジュールの疑わしい不良化ブロック(suspected grown bad blocks)を含み、第1のプールは、疑わしい不良化ブロックではないメモリモジュールの残りのブロックを含む。メモリモジュールのブロックのそれぞれは、複数のワード線を含む。プロセスはまた、第2のプール内の疑わしい不良化ブロックのそれぞれの、複数のワード線のそれぞれに第1のレベルの保護を適用することと、追加の疑わしい不良化ブロックを識別するために、第1のプール内のメモリモジュールの残りのブロックを定期的に監視することと、追加の疑わしい不良化ブロックを第2のプールに転送することと、追加の疑わしい不良化ブロックの複数のワード線のそれぞれに第1のレベルの保護を適用することと、を含む。
【0005】
本開示の更なる他の態様による、メモリデバイスが開示される。メモリデバイスは、複数のメモリモジュールを含み、複数のメモリモジュールのそれぞれは複数のブロックを有し、複数のブロックのそれぞれは複数のワード線を有する。メモリデバイスはまた、複数のメモリモジュールのそれぞれに関連付けられたメモリコントローラを含む。メモリコントローラは、複数のブロックのそれぞれから弱いワード線の群を識別し、複数のブロックのそれぞれからの弱いワード線の群から、XOR保護の対象となるワード線のサブセットを識別し、XOR保護を複数のブロックのそれぞれの、ワード線のサブセットのそれぞれのワード線に適用するようにプログラムされた命令を含む。
【0006】
前述した概要は、例示的なものにすぎず、いかようにも限定することを意図していない。上述した例示の態様、実施形態、及び特徴に加えて、更なる態様、実施形態、及び特徴を、以下の図面及び「発明を実施するための形態」を参照することにより明らかにする。
【図面の簡単な説明】
【0007】
【
図1】本開示のいくつかの実施形態による、コンピューティングシステムの例示的なブロック図である。
【0008】
【
図2A】本開示のいくつかの実施形態による、
図1のコンピューティングシステムのメモリモジュールをより詳細に示す例示的なブロック図である。
【0009】
【
図2B】本開示のいくつかの実施形態による、
図2Aのメモリモジュールのメモリセルの例示的な図である。
【0010】
【
図3】本開示のいくつかの実施形態による、部分的XOR保護を適用するための第1の実施形態の例示的なブロック図である。
【0011】
【
図4】本開示のいくつかの実施形態による、
図3の第1の実施形態における部分的XOR保護を適用するための操作を略述した例示的なフローチャートである。
【0012】
【
図5】本開示のいくつかの実施形態による、部分的XOR保護を適用するための第2の実施形態の例示的なブロック図である。
【0013】
【
図6】本開示のいくつかの実施形態による、
図5の第2の実施形態の更なる詳細を示す例示的なブロック図である。
【0014】
【
図7】本開示のいくつかの実施形態による、
図5の第2の実施形態における部分的XOR保護を適用するための操作を略述した例示的なフローチャートである。
【0015】
【
図8】本開示のいくつかの実施形態による、部分的XOR保護を適用するための第3の実施形態の例示的なブロック図である。
【0016】
【
図9】本開示のいくつかの実施形態による、
図8の第3の実施形態における部分的XOR保護を適用するための操作を略述した例示的なフローチャートである。
【0017】
本開示の前述及び他の特徴は、添付図面と併せて以下の説明及び添付の「特許請求の範囲」から明らかとなるであろう。これらの図面は本開示によるいくつかの実施形態のみを示し、したがって、その範囲を限定するものとして見なされるべきではないと理解した上で、添付図面を使用して、付加的な特殊性及び詳細を伴って本開示を記述する。
【発明を実施するための形態】
【0018】
以下の詳細な説明では、その一部をなす添付図面を参照する。図面において、同様の記号は、文脈上別の意味を示していない限り、典型的には同様の構成要素を識別する。「発明を実施するための形態」、図面、及び「特許請求の範囲」に記載される例示的な実施形態は、限定することを意図するものではない。本明細書に提示される主題の趣旨又は範囲から逸脱することなく、他の実施形態が利用されてもよく、他の変更が行われてもよい。本開示の態様は、概して本明細書に記載され、図面に示されるように、多種多様な異なる構成で配置、置換、組み合わせ、及び設計され得、その全てが明示的に企図され、本開示の一部をなすことが容易に理解されよう。
【0019】
本開示は、1つ以上のメモリモジュールに通信可能に連結されたメモリコントローラを有するメモリデバイスを目的とする。1つ以上のメモリモジュールのそれぞれは、複数のブロックを含み、複数のブロックのそれぞれは、複数のワード線に接続された複数のNANDストリングを含む。複数のNANDストリングのそれぞれはまた、ビット線に接続される。複数のNANDストリングのそれぞれは、データの読み取り、書き込み、又は消去を行うために、ビット線及び複数のワード線に適切な電圧を印加することによって制御され得る。場合によっては、複数のNANDストリング内に記憶されるデータは、そのデータを失うリスクを低減するために保護され得る。そのような保護機構の1つは、排他的OR(「XOR」)保護である。
【0020】
XOR保護を使用すると、XOR演算が、データが記憶される前にデータのビットに対して実施され得る。XOR演算の結果は、XOR署名と見なされ得、データと共に記憶され得る。XOR署名は、データが失われたとき、又は他の誤り訂正手段では(例えば、誤り訂正符号を使用して)復元できないときに、データを復元するために使用され得る。XOR署名を使用してデータを復元するために、データの部分に対するXOR演算は反転され得る。XOR保護は、有効である一方、いくつかの欠点を有し得る。例えば、XOR保護の実施は、XOR署名がデータと共に記憶される必要があるため、メモリのオーバープロビジョニングを必要とする。メモリモジュールの複数のブロックのそれぞれにおける各データ片にXOR保護を適用し、各データ片のXOR署名を記憶することは、メモリのオーバープロビジョニング要件を悪化させる。
【0021】
ゆえに、XOR保護を複数のブロックのそれぞれに適用する(完全なXOR保護と呼ばれる)ことは、大規模メモリ(例えば、大きなスタティックランダムアクセスメモリ又はダイナミックランダムアクセスメモリ)を必要とし、それにより、メモリコントローラのコストが増大し得、したがって、メモリデバイスの全体的なコストも増大し得る。複数のブロックのそれぞれにXOR保護を適用することはまた、データ回復中に大きな待ち時間ペナルティを導入する場合があり、メモリモジュール内の特定のタイムアウト要件を満たすのに問題となり得る。複数のブロックのそれぞれにXOR保護を適用することはまた、ソフトウェア、ハードウェア、及びファームウェアの複雑さを含む、メモリデバイスの全体的な複雑さを増大させる。
【0022】
ゆえに、本開示は、XOR保護を使用してデータを保護する効率的かつ有効な機構を提供しながら、メモリデバイスの複雑さ及びコストを低減する、XOR保護を実施するための技術的解決策を提供する。具体的には、本開示は、メモリモジュールの特定のブロック又はメモリモジュールのブロックの特定の部分のみがXOR保護される、部分的XOR保護機構を提供する。本開示はまた、XOR保護に好適なブロック又はブロックの部分を識別し、それらのブロック又はブロックの部分のみにXOR保護を適用するための機構を提供する。
【0023】
第1の部分的XOR保護の実施形態では、それぞれのブロック内の「弱い」領域は、XOR保護機構を使用して識別及び保護され得る。「弱い」領域を識別することにより、XOR保護から最も利益を得ることができるそれぞれのブロックの部分が識別され得る。更に、XOR保護又は別のタイプの指定された保護(例えば、シングルレベルセルのコピー保護)をそれぞれのブロックの一部分のみに適用することによって、XOR保護に関連付けられた複雑さ及びコストが低減され得る。いくつかの実施形態では、「弱い」領域は、XOR保護から最も利益を得ることができる当該ブロックのワード線を識別することによって識別され得る。ブロック内のほとんどのワード線は「高」品質であり、ワード線の一部のみが「弱い」、つまり「低」品質である。ゆえに、ブロックの「弱い」ワード線が、XOR保護の対象として識別され得る。ワード線は、ある所定の基準を満たさない場合に「弱い」と見なされ得る。メモリヘルス試験は、それぞれのブロックに対して実施されて、当該ブロック内の「弱い」ワード線が識別され得る。更に、いくつかの実施形態では、特定のブロックの「弱い」ワード線の全てがXOR保護されてもよく、いくつかの実施形態では、「弱い」ワード線のサブセットがXOR保護されてもよい。いくつかの実施形態では、ウェアレベリングなどの追加の機構を「弱い」ワード線のXOR保護と共に使用して、それらのワード線の使用を低減し、それらのワード線の動作寿命を延長することができる。
【0024】
「弱い」ワード線を識別するためのメモリヘルス試験は、関連するメモリモジュールの開発若しくは製造中、及び/又はメモリモジュールの動作中に実施されてもよい。更に、XOR保護されていないワード線(「弱い」か否かにかかわらず)は、いっさい保護されないか、又はより単純なXORストライプサイズに対するより単純なXOR保護、誤り訂正符号の使用、シングルレベルセルへのデータの記憶など、他のより単純な又は弱い保護機構を使用して保護されるかのいずれかであってもよい。このように、XOR保護(又は別のタイプの指定された保護)をメモリモジュールのそれぞれのブロック内のワード線の小群のみに適用することによって、メモリモジュールの平均性能が高まり得る。XOR保護(又は、別のタイプの指定された保護)を受けないワード線は、いっさい保護されないか、又はより単純なタイプの保護(例えば、誤り訂正符号保護、より大きなストライプ高さに対するXOR保護など)を受けるかのいずれかであり得る。
【0025】
第2の部分的XOR保護の実施形態では、メモリモジュールの各ブロック内の「弱い」ワード線を識別する代わりに、疑わしい不良化ブロックであると見なされるブロックのサブセットが識別され得る。メモリモジュール内のほとんどのブロックは、XOR保護を必要としないか、又はより単純な若しくはより弱い保護が十分であり得る、「高」品質ブロックと見なされる。ゆえに、メモリモジュールのブロックの一部(例えば、いくつかの実施形態では5%未満)のみが、XOR保護を必要とし得る。このブロックの小部分が、疑わしい不良化ブロックとして識別され得る。このように、疑わしい不良化ブロックは、不良になったブロックか、又は所定の期間内に不良になることが予想されるブロックのいずれかを含む。疑わしい不良化ブロックは、開発/製造及び/又は動作中のメモリヘルス試験によって識別され得る。
【0026】
疑わしい不良化ブロック(例えば、不良になり得るブロック)を識別することは、実際の不良化ブロック(例えば、不良になるブロック)を識別するよりも容易であり得る。ゆえに、例えば1%の実際の不良化ブロックを識別する代わりに、いくつかの実施形態では、より高い割合、例えば10%の疑わしい不良化ブロックが識別され得る。疑わしい不良化ブロックは「不良ブロック」ではなく、動作中に使用し続けることができる。不良ブロックは、動作中に使用されない。いくつかの実施形態では、疑わしい不良化ブロックの割合が特定の閾値を下回る場合、より単純なXOR又はシングルレベルセルへの記憶による保護など、より単純な保護機構が使用され、それによってXOR保護を使用することを完全に回避することができる。更に、疑わしい不良化ブロックでも不良ブロックでもないブロックは、いっさい保護されないか、又はより単純なタイプの保護(例えば、誤り訂正符号保護、より大きなストライプ高さに対するXOR保護)を受けるかのいずれかであってもよい。
【0027】
第3の部分的XOR保護の実施形態は、上述の第1及び第2の実施形態の組み合わせであってもよい。例えば、ブロックの小さいサブセットは、XOR保護の対象として識別されてもよい。ブロックの小サブセット内では、「弱い」ワード線は、XOR保護(又は別のタイプの指定された保護)の対象として識別され、それによって、複雑さ及びコストを更に低減し、メモリモジュールの性能を増大させ得る。繰り返すが、XOR保護(又は別のタイプの指定された保護)を受けないブロック/ワード線は、保護されないか、又はより単純な形式の保護(例えば、誤り訂正符号保護、より大きなストライプ高さに対するXOR保護など)で保護されるかのいずれかであってもよい。
【0028】
ここで
図1を参照すると、本開示のいくつかの実施形態による、コンピューティングシステム100の例示的なブロック図が示されている。コンピューティングシステム100は、メモリデバイス110に関連付けられたホストデバイス105を含む。ホストデバイス105は、1つ以上の入力デバイス115から入力を受信し、1つ以上の出力デバイス120に出力を提供するように構成されてもよい。ホストデバイス105は、メモリデバイス110、入力デバイス115、及び出力デバイス120と、それぞれ適切なインターフェース125A、125B、及び125Cを介して通信するように構成されてもよい。コンピューティングシステム100は、コンピュータ(例えば、デスクトップ、ラップトップなど)、タブレット、携帯情報端末、モバイルデバイス、スマートウォッチなどのウェアラブルコンピューティングデバイス、他のハンドヘルドデバイス若しくはポータブルデバイス、又はホストデバイス105を使用して動作を実施するのに好適な任意の他のコンピューティングユニットに実装されてもよい。
【0029】
入力デバイス115としては、キーボード、スタイラス、タッチスクリーン、マウス、トラックボール、キーパッド、マイクロフォン、音声認識、動き認識、リモートコントローラ、入力ポート、1つ以上のボタン、ダイアル、ジョイスティック、及びホストデバイス105に関連付けられ、ユーザーなどの外部ソースがホストデバイス内に情報(例えば、データ)を入力し、ホストデバイスに命令を送信することを可能にする任意の他の入力周辺装置などの、様々な入力技術のいずれかが挙げられ得る。同様に、出力デバイス120としては、外部メモリ、プリンタ、スピーカ、ディスプレイ、マイクロフォン、発光ダイオード、ヘッドホン、プロッタ、音声生成デバイス、ビデオデバイス、全地球測位システム、及びホストデバイス105から情報(例えば、データ)を受信するように構成された任意の他の出力周辺装置などの、様々な出力技術のいずれかが挙げられ得る。ホストデバイス105への入力及び/又はホストデバイスからの出力のいずれかである「データ」としては、様々なテキストデータ、グラフィカルデータ、ビデオデータ、サウンドデータ、位置データ、これらの組み合わせ、又はコンピュータシステム100を使用して処理するのに好適な他のタイプのアナログ及び/若しくはデジタルデータのいずれかが挙げられ得る。
【0030】
図示されていないが、ホストデバイス105は、1つ以上のアプリケーションを動作させるための命令を実行するように構成され得る1つ以上の処理ユニットを含み得る。いくつかの実施形態では、1つ以上のアプリケーションを動作させるために必要な命令及びデータは、メモリデバイス110内に記憶されてもよい。そのような場合、ホストデバイス105は、データ及び命令を取得するようにメモリデバイス110に要求することができ、データ及び命令はその後、ホストデバイス上のメモリ内に少なくとも一時的に記憶され得る。ホストデバイス105はまた、メモリデバイス110内の1つ以上のアプリケーションを動作させた結果を記憶するように構成されてもよい。このように、ホストデバイス105は、様々な動作を実施することをメモリデバイス110に要求するように構成されてもよい。例えば、ホストデバイス105は、データを読み取り、データを書き込み、データを更新若しくは削除し、かつ/又は管理若しくは他の動作を実施するように、メモリデバイス110に要求し得る。
【0031】
メモリデバイス110は、不揮発性メモリアレイ135からデータを読み取るか又はそこにデータを書き込むように構成され得るメモリコントローラ130を含む。不揮発性メモリアレイ135は、メモリモジュール140A~140Nなどの1つ以上のメモリモジュールを含んでもよい。メモリモジュール140A~140Nのそれぞれは、様々な不揮発性メモリタイプのいずれかを含んでもよい。例えば、いくつかの実施形態では、メモリモジュール140A~140Nのうちの1つ以上は、NANDフラッシュメモリコアを含んでもよい。他の実施形態では、メモリモジュール140A~140Nのうちの1つ以上は、NORフラッシュメモリコア、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)コア、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)コア、磁気抵抗ランダムアクセスメモリ(Magnetoresistive Random Access Memory、MRAM)コア、位相制御メモリ(Phase Control Memory、PCM)コア、抵抗変化型メモリ(Resistive Random Access Memory、ReRAM)コア、3D XPointメモリコア、強誘電体ランダムアクセスメモリ(ferroelectric random-access memory、FeRAM)コア、及び不揮発性メモリアレイ135内での使用に好適な他のタイプのメモリコアを含んでもよい。
【0032】
メモリモジュール140A~140Nは、メモリコントローラ130によって個別に独立して制御されてもよい。換言すれば、メモリコントローラ130は、メモリモジュール140A~140Nのそれぞれと個別に独立して通信するように構成されてもよい。以下でより詳細に論じられるように、メモリモジュール140A~140Nは、メモリコントローラ130がチップセレクト信号又はチップイネーブル信号を生成することによってメモリモジュールのうちの1つとの通信を確立することを所望するまで、待機状態に留り得る。メモリコントローラ130は、ホストデバイス105から命令を受信し、それらの命令に従って動作を実施する論理ブロック又は回路として構成されてもよい。例えば、メモリコントローラ130は、ホストデバイス105から受信した命令に応答して、メモリモジュール140A~140Nのうちの1つ以上からデータを読み取るか又はそこにデータを書き込むように構成されてもよい。メモリコントローラ130は、不揮発性メモリアレイ135と同じダイ上に、又は異なるダイ上に位置してもよい。
【0033】
いくつかの実施形態では、試験回路145は、少なくとも一時的にメモリデバイス110に関連付けられてもよい。試験回路145は、メモリモジュール140A~140Nの製造若しくは開発中に又はメモリデバイス110の製造/開発中に、それらのメモリモジュール上でメモリヘルス試験を実施するために使用され得る。いくつかの実施形態では、試験回路145はまた、メモリデバイス110の動作中(例えば、開発/製造後)のメモリヘルス試験を実施するために使用されてもよい。いくつかの実施形態では、試験回路145は、ホストデバイス105の一部であってもよい。試験回路145は、試験されるメモリモジュール140A~140Nに試験パターン又は試験コマンド/データを送信し、それらのメモリモジュールから戻された試験結果を受信するように構成されてもよい。試験回路145はまた、以下で論じるように、試験結果を分析して、メモリモジュール140A~140Nの「弱い」領域及び/又は疑わしい不良化ブロックを識別してもよい。試験回路145は、ソフトウェア、ハードウェア、ファームウェア、又はこれらの組み合わせで実施されてもよい。
【0034】
図1には、コンピューティングシステム100のいくつかの構成要素のみが示され、説明されていることを理解されたい。しかしながら、コンピューティングシステム100は、様々な電池及び電源、ネットワーキングインターフェース、ルーター、スイッチ、外部メモリシステム、コントローラなどの他の構成要素を含んでもよい。一般的に言えば、コンピューティングシステム100は、本明細書に記載される機能を実施する際に必要とされる又は望ましいと見なされる、様々なハードウェア、ソフトウェア、及び/又はファームウェア構成要素のうちのいずれかを含んでもよい。同様に、ホストデバイス105、入力デバイス115、出力デバイス120、並びにメモリコントローラ130及び不揮発性メモリアレイ135を含むメモリデバイス110は、本明細書に記載される機能を実施する際に必要である又は望ましいと見なされる他のハードウェア、ソフトウェア、及び/又はファームウェア構成要素を含んでもよい。
【0035】
図2A及び
図2Bを参照すると、本開示のいくつかの実施形態による、メモリモジュール200の例示的なブロック図が
図2Aに示され、例示的なメモリセル205が
図2Bに示されている。メモリモジュール200は、
図1のメモリモジュール140A~140Nのうちの1つと類似している。
図2Aには、メモリモジュール200の特定の構成要素のみが示されている。しかしながら、本明細書に記載される機能を実施する際に必要とされる又は望ましいと見なされる他の構成要素は、メモリモジュール200内に提供されてもよく、又はメモリモジュール200に関連付けられてもよい。メモリモジュール200は、NANDメモリタイプである。しかしながら、他の実施形態では、メモリモジュール200は、
図1に関して論じられるように、他のメモリタイプであってもよい。メモリモジュール200は、複数のNANDストリング210を含む。複数のNANDストリング210のうちのNANDストリング215は、複数のメモリセル220を含む。複数のメモリセル220のうちの1つ以上は、
図2Bのメモリセル205と同様であってもよい。
【0036】
図2Bを
図2Aと併せて参照すると、いくつかの実施形態では、メモリセル205は、ソース端子225A、ドレイン端子225B、及び制御端子225Cを有する電界効果トランジスタとして実装されてもよい。メモリセル205はまた、電荷を蓄えるように構成された浮遊ゲート225Dを含んでもよい。いくつかの実施形態では、浮遊ゲート225Dは、浮遊ゲートを電気的に単離し、その中に電荷を捕捉するために絶縁されてもよい。電流は、制御端子225C及び浮遊ゲート225Dの制御下でソース端子22Aとドレイン端子225Bとの間に流れ得る。他の実施形態では、メモリセル205、したがって複数のメモリセル220のうちの1つ以上は、他の方法で実装されてもよい。
図2Aに戻ると、NANDストリング215内の複数のメモリセル220は、1つのメモリセルのソース端子が別のメモリセルのドレイン端子に接続されるように、デイジーチェーン方式で互いに接続されてもよい。複数のメモリセル220を形成するメモリセルの数は、実施形態ごとに異なってもよい。例えば、いくつかの実施形態では、複数のメモリセル220の数としては、所望に応じて、4個、8個、16個が挙げられ得る。
【0037】
NANDストリング215はまた、複数のメモリセル220のいずれかの側に第1の選択トランジスタ230及び第2の選択トランジスタ235を含んでもよい。第1の選択トランジスタ230及び第2の選択トランジスタ235は、NANDストリングをメモリモジュール200の他の構成要素、及び/又はメモリモジュールの外部の他の構成要素に接続するように構成されてもよい。第1の選択トランジスタ230及び第2の選択トランジスタ235のそれぞれは、ソース端子、ドレイン端子、及び制御端子を有する電界効果トランジスタとして実装されてもよい。第1の選択トランジスタ230の制御端子がその制御端子によってオンにされると、第1の選択トランジスタ230のソース端子は、ソース線240に接続され得る。同様に、第2の選択トランジスタ235がその制御端子によってオンにされると、第2の選択トランジスタのドレインは、ビット線245に接続され得る。第1の選択トランジスタ230及び第2の選択トランジスタ235をオンにすることにより、NANDストリング215は、読み取り、書き込み、又は他の動作を実施するように選択され得る。
【0038】
更に、複数のメモリセル220のそれぞれの制御端子は、ワード線250A~2520Nなどの対応のワード線に接続される。ワード線250A~250Nは、NANDストリングが第1の選択トランジスタ230及び第2の選択トランジスタ235によって選択された時点で、NANDストリング215での読み取り動作及び書き込み動作を制御するために使用され得る。例えば、NANDストリング215が選択された場合、プログラムされることが望ましい又はデータが読み取られる、複数のメモリセル220のうちの1つのメモリセルのワード線(例えば、ワード線250A~250Nのうちの1つ)を介して適切な電圧が印加され得る。NANDストリング215内の複数のメモリセル220のうちの残りのメモリセルは、対応のワード線で第2の適切な電圧を印加することによってオンにされ得る。このように、第1の選択トランジスタ230、第2の選択トランジスタ235、及びワード線250A~250Nに印加される電圧を制御することによって、NANDストリング215は作動し得る。
【0039】
上記では、NANDストリング215の素子のみについて述べたが、複数のNANDストリング210のうちの残りのNANDストリングのそれぞれも同様の素子を含むことを理解されたい。このように、複数のNANDストリング210のうちの残りのNANDストリングのそれぞれは、複数のメモリセル220、第1の選択トランジスタ230、第2の選択トランジスタ235、ビット線245、及びワード線250A~250Nを含む。
【0040】
更に、いくつかの実施形態では、複数のNANDストリングのメモリセルは、メモリセルの行を形成する同じワード線に接続されてもよい。例えば、行255は、複数のNANDストリング210のうちの複数のNANDストリングからの複数のメモリセル220のうちの1つを含んでもよい。行255内の複数のメモリセル220の全ては、ワード線250Dなどの同じワード線に接続されてもよい。行255内の複数のメモリセル220をワード線250Dに接続することによって、行を形成するメモリセルは全て、並行してプログラムされるか又は読み取られ得る。行255は、メモリモジュール200のページを形成すると見なすことができる。行255を形成する複数のメモリセル220は、その行の一部を形成する複数のNANDストリング210のそれぞれを、それらのNANDストリングのそれぞれの第1の選択トランジスタ230及び第2の選択トランジスタ235を使用して選択し、適切な電圧をワード線255Dに印加することによって、並びに対応のワード線に電圧を印加することによってそれらのNANDストリングの残りのメモリセルをオンにすることによって、並列にプログラム/読み取りされ得る。
【0041】
更に、複数のNANDストリング210のうちのいくつかは、メモリセルの「ブロック」を形成するように群にまとめられてもよい。例えば、複数のNANDストリング210が群にまとめられて、ブロック260が形成され得る。複数のNANDストリング210の全てがブロック260の一部として示されているが、いくつかの実施形態では、複数のNANDストリングが群にまとめられて、複数のブロックが形成されてもよい。このように、メモリモジュール200は、
図2Aに示されるような単一のブロック、又は複数のブロックを含んでもよい。同様に、行255は、複数のNANDストリング210の全てを包含するものとして示されているが、いくつかの実施形態では、行255は複数の行に分割されてもよく、それぞれの行は別個のワード線に接続される。
【0042】
メモリモジュール200はまた、複数のNANDストリング210における読み取り/書き込み動作を容易にする読み取り/書き込み回路265を含んでもよい。例えば、読み取り/書き込み回路265は、センスアンプ270のバンクと、複数のNANDストリング210のそれぞれのビット線245に接続されたラッチ275のバンクとを含んでもよい。センスアンプ270は、選択された行(例えば、行255)内にプログラムされるデータを送信するため、又は選択された行から読み取られたデータを受信するために使用されてもよい。ラッチ275は、選択された行(例えば、行255)に書き込まれるI/Oデータ280を一時的に記憶するため、又はI/Oデータに送信されるデータを読み取るために使用されてもよい。
【0043】
ここで
図3を参照すると、本開示のいくつかの実施形態による、メモリモジュール300の簡略化された例示的なブロック図が示されている。メモリモジュール300は、メモリモジュール300がメモリモジュール200と同様の素子を含み得るという点で、メモリモジュール200と同様である。例えば、図示されていないが、メモリモジュール300は、複数のNANDストリングを含んでもよく、複数のNANDストリングのそれぞれは、複数のメモリセルと、ソース線に接続された第1の選択トランジスタと、ビット線に接続された第2の選択トランジスタと、複数のメモリセルのそれぞれの制御端子に接続されたワード線とを有する。メモリモジュール300はまた、読み取り/書き込み回路265と同様の読み取り/書き込み回路を含んでもよい。更に、メモリモジュール300の複数のNANDストリングは、1つ以上のブロック(例えば、ブロック260と同様)に群にまとめられてもよい。例えば、メモリモジュール300は、複数のブロック305A~305Iを含んでもよい。複数のブロック305A~305Iの数は、実施形態ごとに異なってもよいことを理解されたい。更に、複数のブロック305A~305Iのそれぞれは、複数のワード線を含んでもよく、その一部のみが、後述するように
図3に示されている。
【0044】
メモリモジュール300は、複数のブロック305A~305Iのそれぞれの特定のワード線がXOR保護される、部分的XOR保護スキームを実施する。例えば、ワード線310A~310Iの群はそれぞれ、XOR保護の対象として、複数のブロック305A~305Iのそれぞれにおいて識別され得る。複数のブロック305A~305IのそれぞれにおいてXOR保護されるワード線の数は、実施形態ごとに異なってもよい。更に、いくつかの実施形態では、保護されるワード線の配置は、実施形態ごとに異なってもよい。例えば、いくつかの実施形態では、最初のいくつかのワード線がXOR保護の対象として選択されてもよく、他の実施形態では、最後のいくつかのワード線がXOR保護の対象として選択されてもよい。更に他の実施形態では、最初のいくつかのワード線と最後のいくつかのワード線との間のワード線がXOR保護されてもよい。
【0045】
加えて、複数のブロック305A~305IのそれぞれにおいてXOR保護されるワード線310A~310Iは、連続的である必要はなく、互いに隣り合う必要もない。例えば、いくつかの実施形態では、複数のブロック305A~305Iのうちの1つ以上のブロックの、最初のいくつかのワード線及び最後のいくつかのワード線がXOR保護され得る。このように、複数のブロック305A~305IのそれぞれにおいてXOR保護されるワード線310A~310Iの数及び配置は、実施形態ごとに異なってもよい。いくつかの実施形態では、XOR保護されない複数のブロック305A~305Iのそれぞれのワード線は、より単純なXOR、シングルレベルセルへのデータの記憶、誤り訂正符号の使用などの、他の機構を使用して保護されてもよい。他の実施形態では、XOR保護されないワード線は、いっさい保護されなくてもよい。複数のブロック305A~305Iのそれぞれのワード線のサブセット(例えば、ワード線310A~310I)のみを保護することにより、メモリモジュール300の性能が改善され得る。
【0046】
図4を参照すると、本開示のいくつかの実施形態による、プロセス400の動作を略述した例示的なフローチャートが示されている。プロセス400は、特定の実施形態に基づいて、追加の動作又は他の動作を含んでもよい。プロセス400については、
図3と併せて論じられる。いくつかの実施形態では、プロセス400は、メモリモジュール300の開発又は製造中(例えば、製造中、梱包前、梱包後であるが消費者への出荷前など)に実施されてもよい。他の実施形態では、プロセス400は、開発後及びメモリモジュール300の動作中に実施されてもよい。プロセス400は、メモリモジュール300のメモリヘルス試験の一部であってもよい。
【0047】
メモリヘルス試験は、ホストデバイス(例えば、ホストデバイス105)から受信した命令に基づいて、メモリモジュール300に関連付けられたメモリコントローラ(例えば、メモリコントローラ130)に命令を送信することによって実施されてもよい。他の実施形態では、メモリヘルス試験は、メモリモジュール300に接続された試験回路(例えば、試験回路145)によって実施されてもよい。いくつかの実施形態では、メモリヘルス試験は、試験パターンをメモリモジュール300に送信することによって実施されてもよい。試験パターンは、指定された期間(例えば、タイムアウト期間)内でメモリモジュール300によって実施される試験動作(例えば、読み取り、書き込み、消去)を含んでもよい。次いで、メモリヘルス試験は、試験動作の結果を分析し得る。メモリモジュール300がタイムアウト期間内で試験動作を完了できなかった場合、メモリヘルス試験は、試験動作を完了できなかったメモリモジュールの部分が不良になったものと決定し得る。メモリモジュール300がタイムアウト期間内で試験動作を完了したものの、閾値を超える誤り率を示した場合、メモリヘルス試験は、高い誤り率を有するメモリモジュールの部分を「弱い」領域として分類し得る。いくつかの実施形態では、メモリヘルス試験としては、電流漏れ検出、セル電圧分布異常、不合格ビット数、ワード線間の短絡などが挙げられ得る。他の実施形態では、他のメモリヘルス試験又は追加のメモリヘルス試験が実施されてもよい。
【0048】
このように、プロセス400は、複数のブロック305A~305Iのそれぞれの「弱い」領域を識別するために使用されてもよい。したがって、動作405で開始すると、「弱い」と見なされるワード線の群は、動作410で複数のブロック305A~305Iのそれぞれから識別される。「弱い」ワード線は、上述のメモリヘルス試験に基づいて識別される。メモリヘルス試験は、「弱い」ワード線を、特定の所定の基準を満たさないもの又は他のワード線とは異なって挙動するものとして識別し得る。例えば、いくつかの実施形態では、複数のブロック305A~305Iのうちの1つ以上のブロックのワード線に関連付けられたパラメータ(例えば、不合格ビット数、ビット誤り率など)の値が、それらのブロックのワード線のそれぞれから測定され得る。測定値から、平均が計算され得る。次いで、複数のブロック305A~305Iのうちの特定のブロックの、それぞれのワード線のパラメータの値は、計算された平均パラメータと比較され得る。パラメータの値が、計算された平均パラメータから所定の閾値を超えて逸脱する場合、そのワード線は「弱い」と指定され得る。いくつかの実施形態では、計算された平均パラメータは、複数のブロック305A~305Iのそれぞれのブロックについて別々に計算されてもよい。このように、「弱い」ワード線を識別するための基準は、ブロックごとに異なってもよい。いくつかの実施形態では、計算された平均パラメータは、複数のブロック305A~305Iのサブセット又は全てについてまとめて計算されてもよい。そのような場合、「弱い」ワード線を識別するために、同じ基準が複数のブロックに適用されてもよい。他の実施形態では、「弱い」ワード線を識別するための他の機構が使用されてもよい。更に、いくつかの実施形態では、単一のパラメータが「弱い」ワード線を識別するために使用されてもよく、他の実施形態では、複数のパラメータが使用されてもよい。このように、メモリヘルス試験に基づいて、「弱い」ワード線の群が、複数のブロック305A~305Iのそれぞれから識別され得る。
【0049】
「弱い」ワード線の群を識別すると、動作415において、「弱い」ワード線の群からのワード線のサブセットがXOR保護の対象として識別される。いくつかの実施形態では、動作410で識別された「弱い」ワード線の群の全てのワード線が、XOR保護の対象として指定されてもよい。他の実施形態では、ワード線のサブセットが、XOR保護の対象として「弱い」ワード線の群から選択されてもよい。いくつかの実施形態では、動作410で識別された「弱い」ワード線の群内の全てのワード線を保護するかどうかの判断は、閾値に基づいて行われてもよい。例えば、いくつかの実施形態では、「弱い」ワード線の群内のワード線の数が閾値を下回る場合、「弱い」ワード線の群内の全てのワード線がXOR保護されてもよい。一方、「弱い」ワード線の群内のワード線の数が閾値以上である場合、追加の基準を使用して、「弱い」ワード線の群からXOR保護されるワード線のサブセットが識別されてもよい。
【0050】
例えば、いくつかの実施形態では、ワード線は、それらのワード線の位置/配置に基づいて選択されてもよい。いくつかの実施形態では、最初のいくつかのワード線が動作410で「弱い」として分類される場合、それらのワード線がXOR保護の対象として選択されてもよい。例えば、発明者らは、最初の4本のワード線(例えば、ワード線0、1、2、3)が誤動作する可能性が高く、したがってXOR保護に対してより好適であることを見出した。他の実施形態では、他の基準が、「弱い」ワード線のうちのどのワード線をXOR保護するかを識別するために使用されてもよい。
【0051】
いくつかの実施形態では、特定のワード線(例えば、ワード線0~3)は、これらのワード線が動作410において「弱い」として分類されるかどうかにかかわらず、XOR保護に指定されてもよい。例えば、いくつかの実施形態では、メモリヘルス試験を実施するときに「弱く」ない可能性があるが、後になって「弱く」なることが予想されるワード線(例えば、ワード線0~3)は、「弱い」に分類されるかどうかにかかわらず、XOR保護されるように指定されてもよい。このように、動作415において、XOR保護されるワード線310A~310Iが識別される。
【0052】
動作420において、ワード線310A~310IがXOR保護される。いくつかの実施形態では、XOR保護は、XOR署名を用いて、ワード線310A~310Iを介して記憶されたデータをプログラムすることによって達成され得る。XOR署名は、データのビットに対してXOR演算を実施し、XOR演算の結果を、ワード線310A~310I上のデータと共にXOR署名として記憶することによって得られ得る。他の実施形態では、XOR署名は、データの完全性がプログラミング後に検証されるまで、コントローラのメモリ(例えば、コントローラランダムアクセスメモリ又は他のメモリ)内に一時的に記憶されてもよい。データ完全性が検証された後、データに関連付けられたXOR署名は破棄されてもよい。他の実施形態では、ワード線310A~310IのXOR保護のために、他の機構又は追加の機構が使用されてもよい。ワード線310A~310IをXOR保護すると、プロセス400は動作425で終了する。
【0053】
いくつかの実施形態では、プロセス400の実施は1回でもよい。他の実施形態では、プロセス400は、複数のブロック305A~305Iのうちの1つ以上に対して定期的に繰り返されてもよい。定期的に実施される場合、メモリヘルス試験は、所定の期間に、又は特定の条件が満たされたときに実施されてもよい。例えば、いくつかの実施形態では、ワード線がプログラムされるか又は読み取られるたびに、メモリモジュール300に対してメモリヘルス試験が実施されてもよい。他の実施形態では、メモリモジュール300から指定されたワード線の数がプログラムされた又は読み取られた後、メモリヘルス試験が実施されてもよい。他の実施形態では、メモリヘルス試験は、複数のブロック305A~305Iのうちの1つ以上に対してオンデマンドで実施されてもよい。メモリモジュール300のそれぞれのブロックの特定のワード線のみを保護することにより、メモリモジュールの全体的な性能が高まり得る。データを復元する待ち時間も減少し得、メモリモジュールの全体的な複雑さ及びコストが減少し得る。
【0054】
ここで
図5を参照すると、本開示のいくつかの実施形態による、メモリモジュール500の簡略化された例示的なブロック図が示されている。メモリモジュール500は、メモリモジュール500がメモリモジュール200と同様の素子を含み得るという点で、メモリモジュール200と同様である。例えば、図示されていないが、メモリモジュール500は、複数のNANDストリングを含んでもよく、複数のNANDストリングのそれぞれは、複数のメモリセルと、ソース線に接続された第1の選択トランジスタと、ビット線に接続された第2の選択トランジスタと、複数のメモリセルのそれぞれの制御端子に接続されたワード線とを含み得る。メモリモジュール500はまた、読み取り/書き込み回路265と同様の読み取り/書き込み回路を含んでもよい。更に、メモリモジュール500の複数のNANDストリングは、1つ以上のブロック(例えば、ブロック260と同様)に群にまとめられてもよい。例えば、メモリモジュール500は、複数のブロック505A~505Pを含んでもよい。複数のブロック505A~505Pの数は、実施形態ごとに異なってもよいことを理解されたい。更に、図示されていないが、複数のブロック505A~505Pのそれぞれは、複数のワード線を含む。
【0055】
複数のブロック305A~305IのそれぞれからXOR保護の対象としてワード線のサブセットが選択される
図3及び
図4とは対照的に、メモリモジュール500では、複数のブロック505A~505Pのうちの特定のブロックのみがXOR保護の対象として選択される。例えば、
図5に示すように、複数のブロック505A~505Pのそれぞれから「弱い」ワード線を識別する代わりに、ブロック510及びブロック515がXOR保護の対象として選択されてもよい。2つのブロック(例えば、ブロック510、ブロック515)は、
図5にXOR保護されるものとして示されているが、他の実施形態では、単一のブロック又は2つを超えるブロックがXOR保護の対象として選択されてもよい。選択されたブロックの全てのワード線(例えば、ブロック510、ブロック515)は、以下の
図7で論じられるようにXOR保護されてもよい。
【0056】
図5と併せて
図6を参照すると、複数のブロック505A~505Pのそれぞれは、第1のプール600と第2のプール605との間でソートされてもよい。第1のプール600が高品質のプールと見なされ得る一方、第2のプール605は保護されるプールと見なされ得る。このように、いくつかの実施形態では、第2のプール605は、複数のブロック505A~505Pから、XOR保護の対象として選択されるブロックを含んでもよい。例えば、複数のブロック505A~505Pのブロック510及びブロック515は、第2のプール605内に配置されてもよい。全ての残りのブロック(例えば、非選択ブロック)は、第1のプール600内に配置されてもよい。複数のブロック505A~505Pのそれぞれを、第1のプール600又は第2のプール605のいずれかに配置することによって、XOR保護されるブロックは容易に識別され得る。第1のプール600内にあるブロックは、少なくとも、それらのブロックが第1のプール600内に配置されているときにXOR保護は不要であり得、ゆえに「高品質」ブロックとして分類される。いくつかの実施形態では、XOR保護より弱い又は単純な保護、すなわち別の保護方法が、第1のプール600内のブロックに適用されてもよい。
【0057】
加えて、又はあるいは、いくつかの実施形態では、XOR保護よりも弱い又は単純な保護が、第2のプール605内のブロックに適用されてもよい。具体的には、いくつかの実施形態では、第2のプール605内のブロックの数が所定の閾値未満である場合、より単純な又はより弱いXOR保護又は別の保護がそれらのブロックに適用されてもよく、それによってXOR保護は完全に排除される。第2のプール605内のブロックの数が所定の閾値を超える場合、第2のプール内のそれらのブロックの一部又は全てがXOR保護によって保護されてもよい。
【0058】
更に、いくつかの実施形態では、第1のプール600及び第2のプール605の中身は変化してもよい。例えば、メモリモジュール500に対してメモリヘルス試験が実施され、元は第1のプールにあったブロックがXOR保護の対象として選択される場合、複数のブロック505A~505Pのうちの1つ以上は、第1のプール600から第2のプール605に転送されてもよい。このようなブロックは、第2のプール605に転送されてもよく、それらのブロックのワード線の全てがXOR保護(又は、他の手段を使用して保護)されてもよい。第1のプール600及び第2のプール605は、それらのプールに分類される複数のブロック505A~505Pを識別するデータ構造(例えば、テーブル、ログなど)であってもよい。例えば、いくつかの実施形態では、第1のテーブルは、第1のプール600に使用されてもよく、第2のテーブルは、第2のプール605に使用されてもよい。そのような場合、第1のプール600下に分類される複数のブロック505A~505PのIDは、第1のテーブルに列挙されてもよく、第2のプール605に分類される複数のブロックのIDは、第2のテーブルに列挙されてもよい。複数のブロック505A~505Pの任意のブロックが第1のプール600から第2のプール605に移動されるとき、第1のテーブルは、そのブロックを削除するように更新されてもよく、第2のテーブルは、そのブロックを追加するように更新されてもよい。このように、第1のプール600及び第2のプール605は、動的に変化してもよい。他の実施形態では、第1のプール600及び第2のプール605は、他の方法で構成されてもよい。
【0059】
図7を参照すると、本開示のいくつかの実施形態による、プロセス700を略述した例示的なフローチャートが示されている。プロセス700は、特定の実施形態に基づいて、追加の動作又は他の動作を含んでもよい。プロセス700については、
図5及び
図6と併せて論じられる。いくつかの実施形態では、プロセス700は、メモリモジュール500に対してメモリヘルス試験が実施されるときに、そのメモリモジュールの開発又は製造中(例えば、製作中、梱包前、梱包後など)に実施されてもよい。他の実施形態では、プロセス700は、メモリヘルス試験が実施されるときに、開発後及びメモリモジュール500の動作中に実施されてもよい。このように、プロセス700を実施するためのメモリヘルス試験は、メモリモジュール500の寿命中に1回又は複数回実施されてもよい。いくつかの実施形態では、メモリヘルス試験は、指定された期間に又は特定の条件が満たされたときに、自動的に実施されてもよい。例えば、いくつかの実施形態では、メモリヘルス試験は、特定のブロックがプログラムされた後に実施されてもよい。他の実施形態では、メモリヘルス試験は、必要に応じて、数時間ごと、数日ごと、数年ごと、又は任意の他の時間単位で実施されてもよい。
【0060】
更に、いくつかの実施形態では、メモリヘルス試験は、ホストデバイス(例えば、ホストデバイス105)から受信した命令及び/又はメモリモジュールに接続された別の構成要素(例えば、試験回路145)から受信した命令に基づいて、メモリモジュール500に関連付けられたメモリコントローラ(例えば、メモリコントローラ130)に命令を送信することによって実施され得る。更に、メモリヘルス試験がメモリモジュール500に対して実施される場合、いくつかの実施形態では、メモリヘルス試験は、複数のブロック505A~505Pの全てに対して実施されてもよく、他の実施形態では、メモリヘルス試験は、単一のブロック又はそれらのブロックのサブセットに対して実施されてもよい。例えば、メモリヘルス試験が、複数のブロック505A~505Pのブロックがプログラムされるときに実施される場合、いくつかの実施形態では、単一のブロックをプログラムすることにより、それらのブロックがメモリヘルス試験を開始したか否かにかかわらず、全てのブロックに対するメモリヘルス試験が開始され得る。他の実施形態では、単一のブロックをプログラムすることにより、そのブロックのみ、あるいはメモリヘルス試験のための所定の基準に基づいて選択され得る他のブロックのサブセットに対してメモリヘルス試験が開始され得る。
【0061】
このように、プロセス700は、メモリヘルス試験がメモリモジュール500に対して、複数のブロック505A~505Pのうちの単一ブロック、サブセット、又は全てのブロックのいずれかに対して実施されるときに、動作705で開始する。動作710において、試験を受けるブロックから、疑わしい不良化ブロックが識別される。以下の説明のために、複数のブロック505A~505Pの全てが、メモリヘルス試験を受けているものと想定される。しかしながら、プロセス700は、複数のブロック505A~505Pの単一ブロック又はサブセットに対するメモリヘルス試験に同様に使用されてもよい。いくつかの実施形態では、メモリヘルス試験は、第1のプール600内にある複数のブロック505A~505Pのうちのブロック、換言すれば、動作710の前に「高品質ブロック」と見なされるブロックに対して実施される。プロセス700が初めて実施されるとき、複数のブロック505A~505Pの全ては、第1のプール600下に分類されてもよい。したがって、動作710は、複数のブロック505A~505Pの全てに対して実施されてもよい。複数のブロック505A~505Pからのいくつかのブロックが、保護のために第2のプール605に転送されると、動作710は、より少ないブロックに対して実施され得る。更に、複数のブロック505A~505Pのうちのブロックが第1のプール600から第2のプール605に転送されると、第1のプール内のブロック数が減少し、第2のプール内のブロック数が増加する。いくつかの実施形態では、メモリヘルス試験はまた、第2のプール内のブロックのいずれかが不良になり、したがって(不良になった後は使用されなくなるため)XOR保護が不要になったかどうかを決定するため、第2のプール605内にある複数のブロック505A~505Pのうちのブロックに対して実施されてもよい。
【0062】
このように、動作710では、複数のブロック505A~505Pからの疑わしい不良化ブロックが、第1のプール600から識別される。「疑わしい不良化ブロック」は、動作710の実施時に不良になっているブロックか、又は動作710の実施時には必ずしも不良になっていないが、動作710を実施する所定の期間内に不良になることが予想されるブロックのいずれかである。疑わしい不良化ブロックは、様々な方法のいずれかで識別され得る。いくつかの実施形態では、「弱い」ワード線を識別するために使用されるものと同様の機構が使用されてもよい。例えば、いくつかの実施形態では、所定のパラメータは、複数のブロック505A~505Pの全て又はサブセットから測定されてもよく、平均が計算されてもよい。特定のブロックの測定されたパラメータが、計算された平均から所定の閾値を超えて逸脱した場合、その特定のブロックは、疑わしい不良化ブロックと見なされてもよい。いくつかの実施形態では、不良になった又は「弱く」なったワード線の数は、疑わしい不良化ブロックの指標として使用されてもよい。例えば、いくつかの実施形態では、特定のブロックにおいて不良になった又は「弱く」なったワード線の数が所定の閾値を超える場合、その特定のブロックは、疑わしい不良化ブロックと見なされてもよい。
【0063】
いくつかの実施形態では、「高」品質ブロックを識別するための試験が行われてもよい。不良になったブロック(本明細書では、実際の不良化ブロックとも称される)か又は不良になることが疑われるブロック(例えば、疑わしい不良化ブロック)のいずれかのブロックよりも「高」品質のブロックを識別することは、より容易であり得る。このように、メモリ試験は、第1のプール600内に配置され得る「高」品質ブロックを識別するために実施されてもよい。疑わしい不良化ブロックを含む全ての残りのブロックは、第2のプール605内に配置されてもよい。他の機構が、疑わしい不良化ブロックを識別するために使用されてもよい。
【0064】
いくつかの実施形態では、動作710を実施するときに実際に不良になっている疑わしい不良化ブロックは、「不良ブロック」としてマーク付けされてもよく、これらのブロックをメモリモジュール500の動作中に使用することはできない。いくつかの実施形態では、「不良ブロック」は、第2のプール605又は「不良ブロック」のみを含む第3のプールに転送されてもよい。「不良ブロック」が第1のプール600から転送された後、第1のプールは、第1のプールから「不良ブロック」を削除するように更新されてもよい。「不良ブロック」ではない疑わしい不良化ブロックは、動作715において第1のプール600から第2のプール605に転送される。第1のプール600及び第2のプール605は、第1のプールから第2のプールへの疑わしい不良化ブロックの移動を反映するように更新されてもよい。動作720において、動作715で第2のプール605に転送された疑わしい不良化ブロックはXOR保護される。
【0065】
いくつかの実施形態では、上述のように、疑わしい不良化ブロックのワード線の全てはXOR保護される。いくつかの実施形態では、ウェアレベリングなどの機構は、それらのブロックがあまり使用されず、したがって負荷が少なくなることで「不良ブロック」に変換する可能性が低くなるように、疑わしい不良化ブロックに適用されてもよい。いくつかの実施形態では、第2のプール605内の疑わしい不良化ブロックの数が所定の閾値を下回る場合、より単純なXOR保護又は他の保護機構がそれらのブロックに適用されてもよく、それによってXOR保護の必要性が完全に回避される。第2のプール605内の疑わしい不良化ブロックに適用することが望ましいと見なされ得る、任意の他の種類の保護が適用されてもよい。更に、いくつかの実施形態では、XOR保護は、第1のプール600内に残っているブロックには適用されない。いくつかの実施形態では、より簡略的な保護方法が、第1のプール600内に残っているブロックに適用されてもよい。
【0066】
動作725では、上述したように、第1のプール600内の複数のブロック505A~505Pが監視される。いくつかの実施形態では、監視は、特定の基準に基づいて定期的であってもよく、他の実施形態では、監視は、複数のブロック505A~505Pのうちのブロック内で何らかの変更が検出されるとすぐに、変更されたブロックに対して、又はいずれかのブロックが変更されたときに全てのブロックに対して、プロセス700が繰り返され得るように、連続的であってもよい。更に、第2のプール605内の疑わしい不良化ブロックの数が閾値を超える場合、いくつかの実施形態では、それらのブロックの一部又は全て(XOR保護され得ない、又は第2のプール内の他の機構を使用して保護され得るブロックを含む)は、XOR保護されてもよい。疑わしい不良化ブロックのために第1のプール600内の複数のブロック505A~505Pを監視し、第2のプール605内の疑わしい不良化ブロックのみを保護することにより、ブロックの一部のみがXOR保護される必要があり、それによってメモリモジュール500の性能が高まる。
【0067】
ここで
図8を参照すると、本開示のいくつかの実施形態による、メモリモジュール800の簡略化された例示的なブロック図が示されている。メモリモジュール800は、メモリモジュール800がメモリモジュール200と同様の素子を含み得るという点で、メモリモジュール200と同様である。例えば、図示されていないが、メモリモジュール800は、複数のNANDストリングを含んでもよく、複数のNANDストリングのそれぞれは、複数のメモリセルと、ソース線に接続された第1の選択トランジスタと、ビット線に接続された第2の選択トランジスタと、複数のメモリセルのそれぞれの制御端子に接続されたワード線とを有する。メモリモジュール800はまた、読み取り/書き込み回路265と同様の読み取り/書き込み回路を含んでもよい。更に、メモリモジュール800の複数のNANDストリングは、1つ以上のブロック(例えば、ブロック260と同様)に群にまとめられてもよい。例えば、メモリモジュール800は、複数のブロック805A~805Pを含んでもよい。複数のブロック805A~805P内のブロックの数は、実施形態ごとに異なってもよいことを理解されたい。更に、図示されていないが、複数のブロック805A~805Pのそれぞれは、複数のワード線を含む。
【0068】
メモリモジュール800は、メモリモジュール300及びメモリモジュール500の実施形態の組み合わせである。具体的には、メモリモジュール500と同様に、メモリモジュール800では、複数のブロック805A~805Pからのいくつかのブロックが、XOR保護の対象として選択されてもよい。例えば、
図8に示すように、ブロック810及び815は、XOR保護の対象として選択されてもよい。2つのブロック(例えば、ブロック810及びブロック815)のみが、メモリモジュール800においてXOR保護の対象として選択されていることが示されているが、他の実施形態では、単一ブロック又は2つを超えるブロックがXOR保護の対象として選択されてもよい。更に、ブロック810及びブロック815は、メモリモジュール800の両端に位置するものとして示されているが、XOR保護の対象として選択されるブロックの相対位置は問題ではないことを理解されたい。疑わしい不良化ブロックとして識別されるいずれのブロックも、XOR保護の対象として選択されてもよい。このように、ブロック805及びブロック810は、
図5~
図7に関して上述したのと同じ方法で識別された、疑わしい不良化ブロックである。
【0069】
しかしながら、選択されたブロック(例えば、ブロック510、ブロック515)の全てのワード線がXOR保護される(又は他の機構を使用して保護される)メモリモジュール500とは対照的に、メモリモジュール800では、選択されたブロック(例えば、ブロック810、ブロック815)のワード線のサブセットのみが、メモリモジュール300内のものと同様に、XOR保護の対象として選択される。例えば、1つ以上のワード線820が、ブロック810におけるXOR保護対象の「弱い」として識別されてもよい。同様に、1つ以上のワード線825が、ブロック815におけるXOR保護対象の「弱い」として識別されてもよい。このように、いくつかの選択されたブロック内の全てのワード線をXOR保護する代わりに(メモリモジュール500の場合)、又は全てのブロック内のいくつかのワード線をXOR保護する代わりに(メモリモジュール300の場合)、メモリモジュール800は、いくつかの選択されたブロック(例えば、ブロック810、ブロック815)のいくつかのワード線(例えば、ワード線825、ワード線835)がXOR保護される折衷方式を提供する。
【0070】
ここで
図9を参照すると、本開示のいくつかの実施形態による、プロセス900の動作を略述した例示的なフローチャートが示されている。プロセス900は、特定の実施形態に基づいて、追加の動作又は他の動作を含んでもよい。プロセス900については、
図8と併せて論じられる。いくつかの実施形態では、プロセス900は、メモリモジュール800に対してメモリヘルス試験が実施されるときに、そのメモリモジュールの開発又は製造中(例えば、製作中、梱包前、梱包後など)に実施されてもよい。他の実施形態では、プロセス900は、メモリヘルス試験が実施されるときに、開発後及びメモリモジュール800の動作中に実施されてもよい。このように、プロセス900を実施するためのメモリヘルス試験は、メモリモジュール800の寿命中に1回又は複数回実施されてもよい。いくつかの実施形態では、メモリヘルス試験は、既定の指定された期間に又は特定の条件が満たされたときに、自動的に実施されてもよい。例えば、いくつかの実施形態では、メモリヘルス試験は、特定のブロックがプログラムされた後に実施されてもよい。他の実施形態では、メモリヘルス試験は、必要に応じて、数時間ごと、数日ごと、数年ごと、又は任意の他の時間単位で実施されてもよい。
【0071】
更に、いくつかの実施形態では、メモリヘルス試験は、ホストデバイス(例えば、ホストデバイス105)から受信した命令及び/又はメモリモジュールに接続された別の構成要素(例えば、試験回路145)から受信した命令に基づいて、メモリモジュール800に関連付けられたメモリコントローラ(例えば、メモリコントローラ130)に命令を送信することによって実施され得る。更に、メモリヘルス試験がメモリモジュール800に対して実施される場合、いくつかの実施形態では、メモリヘルス試験は、複数のブロック805A~805Pの全てに対して実施されてもよく、他の実施形態では、メモリヘルス試験は、上述のように、単一のブロック又はそれらのブロックのサブセットに対して実施されてもよい。
【0072】
このように、プロセス900は、メモリヘルス試験が実施されることが所望されるときに、動作905で開始する。動作910において、メモリモジュール800内の疑わしい不良化ブロックは、動作710と同様に識別される。動作915において、識別された疑わしい不良化ブロック(例えば、ブロック810、ブロック815)は、第2のプール(例えば、第2のプール605と同様)に配置され、一方、疑わしい不良化ブロックとして分類されないブロックは、第1のプール(例えば、第1のプール600と同様)に配置される。動作920において、「弱い」ワード線、又は動作910で選択されたブロック内でXOR保護されるワード線は、動作410及び415と同様に識別される。識別されたワード線は、動作925においてXOR保護される。動作925は、動作420と同様である。動作930では、第1のプールに残っているブロックは、動作725と同様に監視され、プロセス900は、監視基準が満たされたときに繰り返される。
【0073】
したがって、ブロックの「弱い」領域のみ及び/又はメモリモジュールの特定のブロックのみがXOR保護される部分的XOR保護機構を提供することによって、本開示は、関連するメモリモジュールの性能を高めながら、効果的かつコスト効率的な方法でXOR保護を達成する。
【0074】
本明細書に記載される主題は、時により、異なる他の構成要素内に含まれるか、又は異なる他の構成要素と接続された異なる構成要素を示す。このように表現されたアーキテクチャは単なる例示であること、また実際には、同じ機能性を達成する多くの他のアーキテクチャが実施され得ることを理解されたい。概念的な意味では、同じ機能性を達成するための任意の構成要素の配置は、所望の機能性が達成されるように有効に「関連付け」られる。したがって、特定の機能性を達成するために本明細書で組み合わされた任意の2つの構成要素は、アーキテクチャ又は中間構成要素とは無関係に、所望の機能性が達成されるように、互いに「関連付けられた」ものとして見ることができる。同様に、そのように関連付けられた任意の2つの構成要素はまた、所望の機能性を達成するために互いに「動作可能に接続された」又は「動作可能に連結された」ものとして見ることもでき、そのように関連付けられることができる任意の2つの構成要素もまた、所望の機能性を達成するために互いに「動作可能に連結可能」であるものとして見ることもできる。動作可能に連結可能な具体例としては、限定するものではないが、物理的に嵌合可能な及び/若しくは物理的に相互作用する構成要素、並びに/又は無線で相互作用可能な及び/若しくは無線で相互作用する構成要素、並びに/又は論理的に相互作用する及び/若しくは論理的に相互作用可能な構成要素が挙げられる。
【0075】
本明細書における実質的に任意の複数形及び/又は単数形の用語の使用に関して、当業者は、文脈及び/又は適用例に適切であるように、複数から単数に、及び/又は単数から複数に変えることができる。明確にするために、様々な単数/複数の順列が本明細書に明示的に記載される場合がある。
【0076】
一般に、本明細書で使用される用語、特に添付の「特許請求の範囲」(例えば、添付の「特許請求の範囲」の本文)は、一般的に「無制限」用語として解釈されることが、当業者には理解されよう(例えば、「含む(including)」という用語は、「限定するものではないが含む」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する」と解釈されるべきであり、用語「含む(includes)」は、「限定するものではないが含む」と解釈されるべきである)。特定数の導入された請求項記載物の具体的な数が意図されている場合には、そのような意図は、請求項に明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者には更に理解されよう。例えば、理解を助けるために、以下の添付の「特許請求の範囲」は、請求項記載物を導入するための導入句「少なくとも1つ」及び「1つ以上」の使用を含む場合がある。しかしながら、このような句の使用は、同じ請求項が導入句「1つ以上」又は「少なくとも1つ」及び「a」又は「an」などの不定冠詞(例えば、「a」及び/又は「an」は、典型的に「少なくとも1つ」又は「1つ以上」を意味すると解釈されるべきである)を含む場合であっても、不定冠詞「a」又は「an」による請求項記載物の導入は、そのような導入された請求項記載物を含む任意の特定の請求項をそのような1つの記載物のみを含む発明に制限することを意味するものと解釈されるべきではなく、同じことが、請求項記載物を導入するのに使用される定冠詞の使用にも当てはまる。更に、導入された請求項記載物の具体的な数が明示的に記載されている場合であっても、当業者は、そのような記載物が、典型的には、少なくとも記載された数を意味すると解釈されるべきであることを認識するであろう(例えば、他の修飾語句を有しない「2つの記載物」というそのままの記載は、典型的に少なくとも2つの記載物、又は2つを超える記載物を意味する)。更に、「A、B、及びCなどのうちの少なくとも1つ」と類似した慣例が使用される場合には、一般的に、そのような構造は、当業者がその慣習を理解するという意味で意図される(例えば、「A、B、及びCのうちの少なくとも1つを有するシステム」は、限定するものではないが、Aのみ、Bのみ、Cのみ、A及びB、A及びC、B及びC、並びに/又はA、B、及びCなどを有するシステムを含む)。そのような場合、「A、B、又はCなどのうちの少なくとも1つ」と類似した慣例が使用される場合には、一般的に、そのような構造は、当業者がその慣習を理解するという意味で意図される(例えば、「A、B、又はCのうちの少なくとも1つを有するシステム」は、限定するものではないが、Aのみ、Bのみ、Cのみ、A及びB、A及びC、B及びC、並びに/又はA、B、及びCなどを有するシステムを含む)。説明、請求項、又は図面にかかわらず、2つを超える代替用語を提示する実質上任意の分離語及び/又は語句は、それらの用語のうちの1つ、それらの用語のいずれか、又は両方の用語を含む可能性を企図することが理解されるべきであることが、当業者には更に理解されよう。例えば、語句「A又はB」は、「A」又は「B」又は「A及びB」の可能性を含むと理解されるであろう。更に、特に断りがない限り、単語「大体」、「約」、「およそ」、「実質的に」などの使用は、プラスマイナス10パーセントを意味する。
【0077】
例示の実施形態の前述の説明は、例示目的及び説明目的のために提示したものである。開示される正確な形態に関して網羅的又は制限的であることを意図するものではなく、修正及び変形は、上記の教示に照らして可能であるか、又は開示される実施形態の実践から取得され得る。本発明の範囲は、本明細書に添付の「特許請求の範囲」及びそれらの等価物によって定義されることが意図されている。