(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】フラッシュメモリ内のデータのランダム化のためにセルフシード処理されたランダマイザ
(51)【国際特許分類】
G06F 12/00 20060101AFI20241203BHJP
G11C 16/10 20060101ALI20241203BHJP
【FI】
G06F12/00 560F
G06F12/00 597U
G11C16/10 150
(21)【出願番号】P 2022559938
(86)(22)【出願日】2021-03-26
(86)【国際出願番号】 US2021024338
(87)【国際公開番号】W WO2021202277
(87)【国際公開日】2021-10-07
【審査請求日】2022-11-11
(32)【優先日】2020-04-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー,インク.
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】チェン チェンガン
(72)【発明者】
【氏名】ホワン ジャンミン
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特開2008-198299(JP,A)
【文献】米国特許出願公開第2012/0005409(US,A1)
【文献】特開2013-191169(JP,A)
【文献】特開2015-070608(JP,A)
【文献】特開2010-231778(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G11C 16/10
(57)【特許請求の範囲】
【請求項1】
不揮発性メモリデバイスにデータを格納する方法であって、
前記メモリデバイスの複数のメモリセルに書き込む
ためのデータを受信すること
であって、前記データは、ホストからのホストデータと、前記メモリデバイスのコントローラによって作成されたメタデータとを含む、ことと、
前記データを受信することに応答して、前記データに対するスクランブラのシード値を生成することと、
スクランブルアルゴリズム及び前記シード値を使用して前記データを変換することによって前記データをスクランブルし、スクランブルされたデータを生成することと、
前記シード値と前記スクランブルされたデータとの両方をエンコードして、エンコードされたデータを作成すること
であって、前記ホストデータを知ることなく前記メタデータがスクランブル解除され得るように、前記シード値及び前記メタデータは、前記ホストデータとは別個にエンコードされ、前記エンコードされたデータは、エンコードされたシード値と、エンコードされたメタデータと、エンコードされたホストデータとを含む、ことと、
前記エンコードされたデータを前記メモリデバイスの第一ダイの第一の複数のメモリセルに書き込ませることと、
前記エンコードされたデータが前記第一ダイ内の第二の複数のメモリセルにコピーされることを識別することと、
前記エンコードされたデータが前記第二の複数のメモリセルにコピーされることを識別することに応答して、前記エンコードされたデータの
うちのホストデータ部分を前記第一ダイから前記メモリデバイスのコントローラに転送することなく、前記エンコードされたデータを前記第二の複数のメモリセルにコピーさせることと、
を含む、前記方法。
【請求項2】
前記シード値を生成することは、乱数を取得することを含む、請求項1に記載の方法。
【請求項3】
前記乱数を取得することは、ハードウェア乱数生成器を使用することを含む、請求項2に記載の方法。
【請求項4】
前記乱数は、擬似乱数生成器から生成される擬似乱数である、請求項2に記載の方法。
【請求項5】
前記シード値は暗号鍵である、請求項1に記載の方法。
【請求項6】
前記スクランブルアルゴリズムはXORアルゴリズムであり、前記データをスクランブルすることは、前記データを前記シード値で生成された乱数列とXOR演算して、前記スクランブルされたデータを生成することを含む、請求項1に記載の方法。
【請求項7】
前記スクランブルアルゴリズムは暗号アルゴリズムであり、前記暗号アルゴリズム及び前記シード値を使用して前記データを変換することによって、前記データをスクランブルし、前記スクランブルされたデータを生成することは、前記データを前記シード値によって暗号化することを含む、請求項1に記載の方法。
【請求項8】
前記データの読み出し要求を受信することと、
前記第二の複数のメモリセルから前記エンコードされたデータを読み出すことと、
前記エンコードされたデータをデコードして、前記スクランブルされたデータ及び前記シード値を生成することと、
前記スクランブルされたデータを前記シード値によってスクランブル解除して、前記データを生成することと、
をさらに含む、請求項1に記載の方法。
【請求項9】
複数のメモリセルを含む第一メモリダイ
と、
コントローラ
と、
を含むメモリデバイスであって、
前記コントローラは、
前記複数のメモリセルに書き込む
ためのデータを受信すること
であって、前記データは、ホストからのホストデータと、前記メモリデバイスのコントローラによって作成されたメタデータとを含む、ことと、
前記データを受信することに応答して、前記データに対するスクランブラのシード値を生成することと、
スクランブルアルゴリズム及び前記シード値を使用して前記データを変換することによって前記データをスクランブルし、スクランブルされたデータを生成することと、
前記シード値と前記スクランブルされたデータとの両方をエンコードして、エンコードされたデータを作成すること
であって、前記ホストデータを知ることなく前記メタデータがスクランブル解除され得るように、前記シード値及び前記メタデータは、前記ホストデータとは別個にエンコードされ、前記エンコードされたデータは、エンコードされたシード値と、エンコードされたメタデータと、エンコードされたホストデータとを含む、ことと、
前記エンコードされたデータを前記第一ダイの第一の複数のメモリセルに書き込ませることと、
前記エンコードされたデータが前記第一ダイ内の第二の複数のメモリセルにコピーされることを識別することと、
前記エンコードされたデータが前記第二の複数のメモリセルにコピーされることを識別することに応答して、前記エンコードされたデータの
うちのホストデータ部分を前記第一ダイから前記メモリデバイスのコントローラに転送することなく、前記エンコードされたデータを前記第二の複数のメモリセルにコピーさせることと、
を含む操作を実行するように構成される、前記メモリデバイス。
【請求項10】
前記シード値を生成す
る前記操作は、乱数を取得することを含む、請求項9に記載のメモリデバイス。
【請求項11】
前記メモリデバイスはハードウェア乱数生成器を含み、前記乱数を取得す
る前記操作は、前記ハードウェア乱数生成器から前記乱数を取得することを含む、請求項10に記載のメモリデバイス。
【請求項12】
前記乱数は、擬似乱数生成器から生成される擬似乱数である、請求項10に記載のメモリデバイス。
【請求項13】
前記シード値は暗号鍵である、請求項9に記載のメモリデバイス。
【請求項14】
前記スクランブルアルゴリズムはXORアルゴリズムであり、前記データをスクランブルす
る前記操作は、前記データを前記シード値で生成された乱数列とXOR演算して、前記スクランブルされたデータを生成することを含む、請求項9に記載のメモリデバイス。
【請求項15】
前記スクランブルアルゴリズムは暗号アルゴリズムであり、前記暗号アルゴリズム及び前記シード値を使用して前記データを変換することによって、前記データをスクランブルし、前記スクランブルされたデータを生成す
る前記操作は、前記データを前記シード値によって暗号化することを含む、請求項9に記載のメモリデバイス。
【請求項16】
前記操作は、
前記データの読み出し要求を受信することと、
前記第二の複数のメモリセルから前記エンコードされたデータを読み出すことと、
前記エンコードされたデータをデコードして、前記スクランブルされたデータ及び前記シード値を生成することと、
前記スクランブルされたデータを前記シード値によってスクランブル解除して、前記データを生成することと、
をさらに含む、請求項9に記載のメモリデバイス。
【請求項17】
命令を格納する非一時的な機械可読媒体であって、
前記命令は、実行されるとき、メモリデバイスに、
前記メモリデバイスの複数のメモリセルに書き込む
ためのデータを受信すること
であって、前記データは、ホストからのホストデータと、前記メモリデバイスのコントローラによって作成されたメタデータとを含む、ことと、
前記データを受信することに応答して、前記データに対するスクランブラのシード値を生成することと、
スクランブルアルゴリズム及び前記シード値を使用して前記データを変換することによって前記データをスクランブルし、スクランブルされたデータを生成することと、
前記シード値と前記スクランブルされたデータとの両方をエンコードして、エンコードされたデータを作成すること
であって、前記ホストデータを知ることなく前記メタデータがスクランブル解除され得るように、前記シード値及び前記メタデータは、前記ホストデータとは別個にエンコードされ、前記エンコードされたデータは、エンコードされたシード値と、エンコードされたメタデータと、エンコードされたホストデータとを含む、ことと、
前記エンコードされたデータを前記第一ダイの第一の複数のメモリセルに書き込ませることと、
前記エンコードされたデータが前記第一ダイ内の第二の複数のメモリセルにコピーされることを識別することと、
前記エンコードされたデータが前記第二の複数のメモリセルにコピーされることを識別することに応答して、前記エンコードされたデータの
うちのホストデータ部分を前記第一ダイから前記メモリデバイスのコントローラに転送することなく、前記エンコードされたデータを前記第二の複数のメモリセルにコピーさせることと、
を含む操作を実行させる、前記非一時的な機械可読媒体。
【請求項18】
前記シード値を生成す
る前記操作は、乱数を取得することを含む、請求項17に記載の非一時的な機械可読媒体。
【請求項19】
前記メモリデバイスはハードウェア乱数生成器を含み、前記乱数を取得す
る前記操作は、前記ハードウェア乱数生成器から前記乱数を取得することを含む、請求項18に記載の非一時的な機械可読媒体。
【請求項20】
前記乱数は、擬似乱数生成器から生成される擬似乱数である、請求項18に記載の非一時的な機械可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
優先権出願
本出願は、2020年4月1日に出願された米国出願第16/837,315号に優先権を主張するものであり、参照によりその全体が本明細書に援用される。
【0002】
実施形態はメモリデバイスに関する。いくつかの実施形態は、データのランダム化を維持し、コピーバック操作の対象となるデータのメタデータを更新しながらも、メモリデバイス内の同じメモリダイ内の2つの異なる位置の間でデータをコピーするための効率的な内部コピーバック操作を可能にすることに関する。
【背景技術】
【0003】
コンピュータまたはその他の電子デバイス用のメモリデバイスは、揮発性メモリ及び不揮発性メモリにカテゴリ化されることができる。揮発性メモリは、そのデータを維持するために電力を必要とし、とりわけ、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、または同期ダイナミックランダムアクセスメモリ(SDRAM)を含む。不揮発性メモリは、電力が供給されていないときに格納されたデータを保持することができ、とりわけ、フラッシュメモリ、読み出し専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、スタティックRAM(SRAM)、消去可能プログラマブルROM(EPROM)、抵抗可変メモリ、相変化メモリ、ストレージクラスメモリ、抵抗ランダムアクセスメモリ(RRAM)、及び磁気抵抗型ランダムアクセスメモリ(MRAM)などを含む。
【0004】
フラッシュメモリは、広範囲な電子的用途のために不揮発性メモリとして利用される。フラッシュメモリデバイスは通常、高メモリ密度、高信頼性、及び低消費電力を可能にするフローティングゲートまたはチャージトラップメモリセルなどのトランジスタの1つ以上のグループを含む。
【0005】
必ずしも一定の縮尺で描かれているわけではない図面では、類似数字が異なる図中の類似構成要素を説明し得る。異なる文字接尾辞を有する類似数字は、類似構成要素の別の例を表す場合がある。図面は、概して、限定ではなく例として、本文書で論じられる様々な実施形態を示す。
【図面の簡単な説明】
【0006】
【
図1】本開示のいくつかの例によるストレージデバイスなどのメモリデバイスの図を示す。
【
図2】本開示のいくつかの例によるNANDアーキテクチャ半導体メモリアレイの一部の例示的な概略図を示す。
【
図3】本開示のいくつかの例による3D NANDアーキテクチャ半導体メモリの例示的な概略図を示す。
【
図4】本開示のいくつかの例によるメモリダイの例示的なブロック図を示す。
【
図5】本開示のいくつかの例による書き込み操作のデータフローを示す。
【
図6】本開示のいくつかの例による読み出し操作のデータフローを示す。
【
図7】本開示のいくつかの例によるメモリデバイスにデータを書き込む方法のフローチャートを示す。
【
図8】本開示のいくつかの例によるメモリデバイスからデータを読み出す方法のフローチャートを示す。
【
図9】メタデータ及びホストデータが別々にエンコードされる、本開示のいくつかの例による書き込み操作のデータフローを示す。
【
図10】メタデータ及びホストデータが別々にエンコードされる、本開示のいくつかの例によるメタデータ更新を伴う内部コピーバック操作のデータフローを示す。
【
図11】本開示のいくつかの例によるメモリデバイスにデータを書き込む方法のフローチャートを示す。
【
図12】本開示のいくつかの例による内部コピーバック操作中にメモリデバイスにデータを書き込む方法のフローチャートを示す。
【
図13】本開示のいくつかの例によるメモリデバイス上での内部コピーバック操作方法のフローチャートを示す。
【
図14】本明細書で論じられる技法(例えば、方法論)のうちの任意の1つ以上が実行され得る例示的なマシンのブロック図を示す。
【発明を実施するための形態】
【0007】
メモリデバイスは、多くの場合、バスなどの内部通信インタフェースを介してコントローラに接続された複数の物理メモリダイから構成される。メモリデバイスのある特定の操作では、ダイ上の1つの位置のセルから同じダイ上のもう1つの位置のセルにデータをコピーする必要がある。一例は、SLCキャッシュブロックからTLC/QLCストレージブロックへのコピー操作である。多くのTLC/QLCメモリシステムは、パフォーマンス上の理由からSLCブロックを書き込みキャッシュとして使用する。これらのSLCキャッシュブロック内のデータがより低速(ただしより高密度)のTLC/QLCブロックに移動する必要があるとき、コピー操作が必要である。従来のアプローチでは、データは、内部通信インタフェースを介してダイからコントローラに転送されて処理されてから、内部I/Oバスを介してダイに戻され、異なる位置に格納されてきた。
【0008】
I/Oバスのトラフィックを減少させ、コントローラの使用率を低下させるために、通信インタフェースを介してデータをコントローラに転送することなく、メモリデバイスの同じメモリダイ内の1つの位置からもう1つの位置にデータを移動させる内部コピーバック操作を実行することができる。内部コピーバック操作を使用すると、コントローラリソース(例えば、処理サイクル及びワーキングメモリ)、インタフェース帯域幅が節約され、エネルギー消費が減らされ、操作を完了する際のレイテンシが短縮される。メモリダイがコントローラと同じ方法でデータを処理するためのリソースを有さないため、内部コピーバック操作は、いかなる計算量の方法でもデータを処理しない。通常、内部コピーバックは、いかなる変更または処理も行うことなくデータをコピーする。
【0009】
変更または処理を行うことなくデータを書き込むと、メモリデバイス及び書き込まれたデータの信頼性に影響する可能性がある。この処理の欠如により、内部コピーバック操作に問題が発生する可能性がある。個々のメモリダイを変更して、これらの処理ステップを実行することができるが、これにより、これらのデバイスのコスト及び複雑さが許容できないほど増加する。
【0010】
例えば、メモリセルに格納されたデータパターンが信頼性の目標を達成するために特定の要件を満たさなければならないため、ランダマイザが通常メモリデバイスで使用される。後述されるように、NAND型フラッシュメモリセルは、ロウのメモリセルを接続するワードライン(WL)及びカラムのセルを接続するビットライン(BL)によって格子状に配置される。NAND型メモリデバイスは、通常、各WLに格納されたビットがほぼ等しい数の値0及び値1を有し、各BLに格納されたビットがほぼ等しい数の値0及び値1を有することを確保する。さらに、各メモリセルがMLC/TLC/QLCなどに1ビットより多く格納する場合、各セルには2つより多い閾値電圧状態がある。これらの例では、メモリデバイスは、各状態でのセル数が同じWL内でほぼ等しいことを確保する。このデータパターン分散を確保することで、ストレージエラーが減少する。
【0011】
これらのデータパターン分散要件は、通常、スクランブラを使用することで満たされる。ユーザが書き込むために選択することができるデータパターンをメモリシステムが制御することができないが、スクランブラは、書き込まれるデータを「スクランブル」することで、平衡した数の値0/値1が媒体にプログラムされる可能性がより高い。スクランブラは、コントローラ内またはメモリダイ自体内に実装されることができる。
【0012】
ワードライン及びビットラインの両方にわたって平衡した数の値1及び値0を格納することにより、信頼性の向上が得られる。通常、BLに沿った分散要件、及び同じWL内の複数のページの分散要件は、適切なスクランブラのシード処理を確保することによって満たされる。この目的には、物理アドレスベースのシード処理が広く使用される。例えば、書き込まれる入力ワードは、このワードが書き込まれるページの物理アドレスによってシード処理された乱数列とXOR演算される。データを読み出す場合、読み出されるデータが物理アドレスと再びXOR演算されることで、スクランブル解除されたデータが生成される。スクランブラシードの一部または全体として物理ページアドレスを使用すると、ブロック内の各ページに同じデータパターンが書き込まれる場合でも、媒体にプログラムされたデータがビットライン全体でランダム化されることが保証される。
【0013】
物理アドレスベースのスクランブラシード処理は、内部コピーバックと互換性がない。既に説明されているように、内部コピーバックは、通常、コピーされるデータを変更しない。スクランブラが物理ページアドレスを使用してスクランブル処理を実行した場合(例えば、スクランブラが物理ページで「シード処理」される場合)、内部コピーバック操作が完了した後、ページの物理アドレスが変更される。元の物理アドレスの代わりにデータの現在の物理アドレス(例えば、内部コピーバック後の物理アドレス)を使用してデータをスクランブル解除する場合、読み出し操作中にデータをスクランブル解除しようとすることができない。デコード目的でデータの元の物理ページを追跡するメカニズムをメモリデバイスが提供することができるが、これにより、そのようなデータを格納するために必要なメモリという点から、コストが高すぎる可能性がある。
【0014】
内部コピーバック操作に関するもう1つの問題は、データが最初に書き込まれたときに作成されたメタデータを更新することである。このメタデータは、ホストから受信したデータ(ホストデータ)とともに書き込まれる。メタデータは、書き込み操作時のメモリデバイスの状態に固有のデータであり得る。例えば、データが書き込まれた時間、初期書き込み中のメモリデバイスの温度、書き込み電圧、初期書き込み検証インジケータなどである。これらのフィールドにより、メモリデバイスは、ホストデータのより信頼性のある読み出しを行うことができる。内部コピーバック操作は、データのデコード及びスクランブル解除を行わないため、このメタデータを更新することができない。メタデータを更新できなかった結果、後に信頼性及び/またはパフォーマンスの問題が発生する可能性がある(例えば、後でデータを読み出そうとするとき)。メモリダイがメタデータをデコードし、値を更新し、データをリストアすることができるが、これは、メモリダイに追加の処理及び揮発性メモリリソースを必要とする。これにより、各メモリダイのコスト及び複雑さが増す。
【0015】
いくつかの例で開示されているのは、効率的な内部コピーバック操作を可能にするメタデータをスクランブルする及び/または更新する技法を提供する方法、システム、デバイス、及び機械可読媒体である。いくつかの例では、改善されたデータ分散技法は、物理アドレスからスクランブル鍵をデカップリングすることにより、メモリデバイス全体のデータ分散要件が維持されながらコピーバック操作ができる。コントローラがシード値を生成することができ、このシード値は、ホストデータ及びメタデータをこれらのデータが書き込まれる前にスクランブルするアルゴリズムによって使用される。次に、このシード値はエンコードされ、スクランブルされたユーザデータ及びメタデータのエンコードされたバージョンと共に、ページに書き込まれる。すなわち、乱数シードをスクランブルすることなく、乱数シードが書き込まれる。データを読み出すとき、シードは、データとともに格納されるため、簡単にスクランブル解除されることができる。いくつかの例では、シード値は、乱数生成器によって生成された乱数値である。
【0016】
いくつかの例では、メタデータを更新するために、メタデータ及びホストデータが分離され、メタデータのみがコントローラに送信され、変更された内部コピーバック操作中に更新される。ホストデータはコントローラに送信されない。メタデータを送信するには、メモリダイとコントローラとの間の通信リンクのリソースが利用されるが、ホストデータも送信された場合よりも使用されるリソースがはるかに少ない。ホストデータ及びメタデータを別々に送信するために、ホストデータが存在しなくてもメタデータを別々にスクランブル解除してデコードすることができるように、メタデータ及びホストデータをスクランブルしてエンコードする。例えば、ホストデータ及びメタデータを個別にエンコードする及び/またはスクランブルすることによる。
【0017】
上記の技法を用いることにより、内部コピーバック操作に関するさまざまな問題を回避することができる。第一に、物理アドレスはスクランブラへの鍵として使用されないため、ホストデータ及びメタデータは、1つのメモリ位置から別のメモリ位置に変更されることなくコピーされ得る。したがって、データをスクランブルすることによって可能になったデータの信頼性の向上を保持し得ると同時に、内部コピーバック操作を受けたデータのスクランブル解除を可能にする。第二に、メタデータ及びホストデータは、別々にスクランブル解除されてデコードされることができるようにスクランブルされてエンコードされるため、メタデータは、内部コピーバックの完了前に更新のためにコントローラに送り返される場合がある。これにより、使用されるコントローラの通信及び処理リソース、ならびにメモリダイとコントローラとの間のインタフェース帯域幅がごくわずかでありながら、メタデータが更新される。
【0018】
メモリデバイスの概要
前述のように、フラッシュメモリは、広範囲な電子的用途のために不揮発性メモリとして利用される。フラッシュメモリは通常、高メモリ密度、高信頼性、及び低消費電力を可能にするフローティングゲートまたはチャージトラップメモリセルなどのトランジスタの1つ以上のグループを含む。フラッシュメモリアレイアーキテクチャの2つの一般的なタイプはNANDアーキテクチャ及びNORアーキテクチャを含み、それぞれの基本メモリセル構成が配置される論理形式にちなんで名付けられている。メモリアレイのメモリセルは、通常、マトリックスに配置される。一例では、アレイのロウ内の各メモリセルのゲートをアクセスライン(例えば、ワードライン)に結合する。NORアーキテクチャでは、アレイのカラム内の各メモリセルのドレインをデータライン(例えば、ビットライン)に結合する。NANDアーキテクチャでは、アレイのストリング内の各メモリセルのドレインは、ソースラインとビットラインの間で、ソースからドレインに直列に結合される。
【0019】
NOR及びNANDアーキテクチャの両方の半導体メモリアレイは、特定のメモリセルをそれらのゲートに結合されたワードラインを選択することでアクティブにするデコーダを介して、アクセスされる。NORアーキテクチャの半導体メモリアレイでは、アクティブになると、選択されたメモリセルがそれらのデータ値をビットラインに配置することで、特定のセルがプログラムされている状態に応じて異なる電流が流れる。NANDアーキテクチャの半導体メモリアレイでは、ドレイン側選択ゲート(SGD)ラインに高バイアス電圧が印加される。各グループの選択されていないメモリセルのゲートに結合されたワードラインは、指定された通過電圧(例えば、Vpass)で駆動されて、各グループの選択されていないメモリセルをパストランジスタとして動作させる(例えば、格納されたデータ値により制限されない方法で電流を流す)。その後、電流は、各グループの選択されたメモリセルによってのみ制限される、ソースラインから各直列結合グループを介してビットラインに流れることで、選択されたメモリセルの現在のエンコードされたデータ値がビットラインに配置される。
【0020】
NORまたはNANDアーキテクチャの半導体メモリアレイ内のフラッシュメモリセルは、個々にまたは一括して1つまたは複数のプログラムされた状態にプログラムされることができる。例えば、シングルレベルセル(SLC)は、1ビットのデータを表す、2つのプログラムされた状態(例えば、1または0)のうちの1つを表すことができる。しかしながら、フラッシュメモリセルは2つよりも多くのプログラムされた状態のうちの1つを表すこともでき、各セルは複数の2進数(例えば、1よりも大きなビット)を表すことができるため、メモリセルの数を増やすことなく高密度メモリを製造することが可能である。このようなセルは、多状態メモリセル、多数桁セル、またはマルチレベルセル(MLC)と呼ばれ得る。特定の例では、MLCは、セルあたり2ビットのデータ(例えば、4つのプログラムされた状態のうちの1つ)を記憶することができるメモリセルを指すことができ、トリプルレベルセル(TLC)は、セルあたり3ビットのデータ(例えば、8つのプログラムされた状態のうちの1つ)を記憶することができるメモリセルを指すことができ、クアッドレベルセル(QLC)は、セルあたり4ビットのデータを記憶することができる。MLCは、本明細書では、より広い文脈で使用され、セルごとに2ビット以上のデータを記憶できる(すなわち、2つよりも多くのプログラムされた状態を表すことができる)任意のメモリセルを指し得る。
【0021】
従来のメモリアレイは、半導体基板の表面に配置された2次元(2D)構造である。所与の領域についてのメモリ容量を増やし、コストを削減するために、個々のメモリセルのサイズは小さくなっている。ただし、個々のメモリセルのサイズの縮小、したがって、2Dメモリアレイのメモリの密度には、技術的な限界がある。これに応じて、三次元(3D)NANDアーキテクチャの半導体メモリデバイスなどの3Dメモリ構造は、さらにメモリの密度を高め、メモリコストを下げるように開発されている。
【0022】
係る3D NANDデバイスには、多くの場合、ソースに近接する1つ以上のソース側選択ゲート(SGS)と、ビットラインに近接する1つ以上のドレイン側選択ゲート(SGD)との間に、直列に結合される(例えば、ドレインからソースに結合される)記憶セルのストリングを含む。実施例では、SGSまたはSGDは、1つ以上の電界効果トランジスタ(FET)構造デバイスまたは金属酸化物半導体(MOS)構造デバイス等を含み得る。いくつかの実施例では、ストリングは、各々のワードラインを含む複数の垂直にスペースがある層を通って垂直に延在する。半導体構造(例えば、ポリシリコン構造)は、ストレージセルのストリングに隣接して延在して、ストリングのストレージセルのためのチャネルを形成し得る。垂直ストリングの実施例では、ポリシリコン構造は、垂直に延在するピラーの形態であり得る。いくつかの実施例では、ストリングは「折り畳まれ」、ひいては、U字形ピラーに対して配置され得る。他の実施例では、複数の垂直構造を相互に積み重ねて、記憶セルのストリングの積み重ねられたアレイを形成し得る。
【0023】
メモリアレイまたはデバイスを互いに結合して、ソリッドステートドライブ(SSD)などのメモリシステムのストレージボリューム、またはマネージドメモリデバイスのさまざまな形態のうちの1つを形成することができる。マネージドメモリデバイスは、認識されている業界標準に従って構成されてもよく、操作されてもよい。例えば、マネージドNAND型デバイスは、ユニバーサルフラッシュストレージ(UFS(商標))デバイス、または組み込みMMCデバイス(eMMC(商標))などであり得る(非限定的な例として)。例えば、上記の例の場合、UFSデバイスは、「JEDEC UFS Flash Storage 3.0」と題された、Joint Electron Device Engineering Council(JEDEC)規格、例えばJEDEC規格JESD223D、及び/またはそのような規格への更新または後続のバージョンに従って構成され得る。同様に、識別されたeMMCデバイスは、「JEDEC eMMC規格5.1」と題された、JEDEC規格JESD84-A51、そのうえ、及び/またはそのような規格への更新または後続のバージョンに従って構成されることができる。
【0024】
SSDは、とりわけ、コンピュータのメインストレージデバイスとして使用でき、例えば、パフォーマンス、サイズ、重量、耐久性、動作温度範囲、及び消費電力の点で、可動部品を備えた従来のハードドライブよりも優れている。例えば、SSDは、磁気ディスクドライブ(例えば、電気機械など)に関連付けられるシーク時間、待ち時間、または他の遅延を減らすことができる。SSDは、フラッシュメモリセルなどの不揮発性メモリセルを使用して、内部バッテリ供給要件を不要にすることにより、ドライブをより多用途でコンパクトにすることを可能にする。
【0025】
SSDは、複数のダイまたは論理ユニット(例えば、論理ユニット番号またはLUN)を含む、複数のメモリデバイスを含むことができ、メモリデバイスまたはインタフェースを外部システムによって動作させるために必要な論理関数を実行する、1つまたは複数のプロセッサまたは他のコントローラを含むことができる。そのようなSSDは、複数のメモリアレイ及びその上の周辺回路網を含む、1つまたは複数のフラッシュメモリダイを含み得る。フラッシュメモリアレイは、複数の物理ページに編成されたメモリセルの複数のブロックを含み得る。多くの実施例では、また、SSDはDRAMまたはSRAM(または他の形式のメモリダイまたは他のメモリ構造)を含む。SSDは、メモリデバイスとホストとの間でデータ(例えば、エラーデータ及びアドレスデータなどの、ユーザデータ及び関連する完全性データ)を転送する読み出しもしくは書き込み動作、またはメモリデバイスからのデータを消去する消去動作などのメモリ動作に関連してホストからコマンドを受信することができる。
【0026】
メモリデバイスは、個々のメモリダイを含み、個々のメモリダイは、例えば、1つ(または複数)の選択されたストレージ技法を実装する、メモリセルの1つ以上のアレイを有するストレージ領域を含み得る。そのようなメモリダイは、多くの場合、メモリアレイ(複数可)を操作するためのサポート回路を含む。一般に「マネージドメモリデバイス」として知られていることもある他の例は、1つまたは複数のメモリダイの操作を制御するように構成されたコントローラ機能に関連する1つまたは複数のメモリダイのアセンブリを含む。そのようなコントローラ機能は、本明細書で後述されるように、「ホスト」などの外部デバイスとの相互運用性を簡素化することができる。それらのようなマネージドメモリデバイスでは、コントローラ機能は、メモリアレイをも組み込む1つ以上のダイ、または別個のダイに実装され得る。他の例では、1つ以上のメモリデバイスをコントローラ機能と組み合わせて、ソリッドステージドライブ(SSD)ストレージボリュームを形成することができる。「メモリシステム」という用語は、本明細書では、1つまたは複数のメモリダイ、及び存在する場合、そのようなメモリダイの任意のコントローラ機能を含むものとして使用されるため、個々のメモリデバイス、マネージドメモリデバイス、及びSSDを含む。
【0027】
本説明のために、例示的な実施形態は、「マネージドNAND」デバイスと呼ばれるNAND型フラッシュメモリセルを実装するマネージドメモリデバイスを含む。それらのようなマネージドNAND型デバイスは、一般に、説明されたJEDEC UFS Flash Storage3.0仕様に従って構築され操作されてもよく、本明細書で説明された構造及び機能を組み込むために適宜変更されてもよい。ただし、説明された機能は、他のストレージ技術を組み込むことができる、前述のような、他のタイプのメモリデバイスで実装されてもよく、そのいくつかの非限定的な例は、本明細書で早期に説明され、上記のように、他の業界標準に従って、または非業界標準プロトコルに従って操作されるように構成されてもよい。
【0028】
電子デバイス、例えば、モバイル電子デバイス(例えば、スマートフォン、タブレットなど)、自動車用途で使用される電子デバイス(例えば、自動車センサ、制御ユニット、運転者支援システム、乗客安全または快適システムなど)、及びインターネット接続された電化製品またはデバイス(例えば、モノのインターネット(IoT)デバイスなど)には、とりわけ、電子デバイスのタイプ、使用環境、期待性能などに応じて、様々なストレージのニーズがある。
【0029】
電子デバイスは、いくつかの主要なコンポーネント、すなわち、プロセッサ(例えば、中央処理装置(CPU)またはその他のメインプロセッサ)、メモリ(例えば、1つまたは複数の揮発性または不揮発性ランダムアクセスメモリ(RAM)メモリデバイス、例えば、ダイナミックRAM(DRAM)、モバイルまたは低電力ダブルデータレート同期DRAM(DDR SDRAM)など)、及びストレージデバイス(例えば、不揮発性メモリ(NVM:non-volatile memory)デバイス、例えば、フラッシュメモリ、読み出し専用メモリ(ROM)、SSD、MMC、またはその他のメモリカード構造もしくはアセンブリなど)に分解することができる。特定の例では、電子デバイスは、ユーザインタフェース(例えば、ディスプレイ、タッチスクリーン、キーボード、1つ以上のボタンなど)、グラフィックス処理ユニット(GPU)、電源管理回路、ベースバンドプロセッサまたは1つ以上のトランシーバ回路などを含むことができる。
【0030】
図1は、本開示のいくつかの例によるストレージデバイスなどのメモリデバイス100の図を示す。メモリデバイス100は、ホストデバイス135と通信するために、シリアルアドバンストテクノロジーアタッチメント(SATA)インタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インタフェース、ユニバーサルシリアルバス(USB)インタフェース、ユニバーサルフラッシュストレージ(UFS)インタフェース、eMMC(商標)インタフェース、または1つ以上の他のコネクタもしくはインタフェースなど、1つ以上のプロトコルを利用し得る1つ以上のホストインタフェース123を含み得る。ホスト135は、ホストインタフェース123を介して、読み出し
コマンド、書き込みコマンド、消去コマンドなどの1つ以上のコマンドをメモリデバイス100に送信することができる。ホストインタフェース123は、コントローラ105の一部であってもよく、または別個の回路によって実装されてもよい。
【0031】
メモリデバイス100は、1つ以上のコントローラ105を含み得る。コントローラ105は、1つまたは複数のプロセッサ115を含み得る処理回路110を含み得る。プロセッサ115は、ホストインタフェース123及びメモリダイインタフェース125を実装することを含む、メモリデバイスの操作を実行するためのファームウェアまたは他のソフトウェアの命令を実行する汎用ハードウェアプロセッサであり得る。他の例では、プロセッサ(複数可)115は、ハードウェアロジックによって、及び/またはソフトウェア命令の実行によって、メモリデバイス100の操作を実行するのに専用に設計されている専用ハードウェアプロセッサであってもよい。また、処理回路110は、様々な制御機能及びメモリ管理操作、またはその一部を実行するように構成された論理回路及び他の回路コンポーネントを含むことができ、その例が以下に説明されている。
【0032】
図示の例では、メモリデバイス100は、ホストバス137を介して外部ホストデバイス135に通信を提供するホストインタフェース123を含む。ホストインタフェース123のコンフィグレーションは、メモリデバイス100(「メモリシステム」と呼ばれることもある)の専用コンフィグレーションに応じて、さまざまな形式のものであり得る。例えば、メモリデバイス100がUFSデバイスである例では、ホストインタフェースは、適用可能なUFS規格に従う。
【0033】
また、メモリデバイス100は、コントローラ105の処理回路110と、メモリデバイス100内のメモリダイ130-A~130N+1の少なくとも一部との間に1つ以上のメモリダイインタフェース125を組み込む。メモリダイインタフェース125は、コントローラ105の一部であってもよく、または別個の回路によって実装されてもよい。例えば、UFSデバイスの例では、メモリダイインタフェース125のうちの1つ以上は、適切なメモリインタフェース、例えばオープンNANDフラッシュインタフェース(「ONFI」)4.0仕様、またはそれ以降のバージョンもしくはリビジョンによって規定されるような、ONFIなどの適切なメモリインタフェースである。
【0034】
コントローラ105などのメモリデバイス100のコンポーネントは、メモリデバイス100の操作を実行するためのランダムアクセスメモリ120を含み得る。ランダムアクセスメモリ120は、コントローラ105から分離されてもよく、または示されているように、コントローラ105に統合されてもよい。いくつかの例では、コントローラ105内にも、コントローラ105とは別個にも、ランダムアクセスメモリ120があってもよい。
【0035】
コントローラ105は、1つ以上のメモリダイ130-A~130N+1の一部であるメモリデバイスのメモリセルとインタラクトすることにより、メモリの1つ以上の機能を処理することができる。メモリダイ130の例示的な実装の概略図は
図4に示される。コントローラ105は、これらのメモリダイと、メモリダイインタフェース125経由でI/Oバスなどの内部通信インタフェース127を介して通信することができる。いくつかの例では、メモリダイは、それぞれのメモリダイでの操作を制御するために、処理回路及びプロセッサを含む独自のデバイスコントローラを有することができる。それらのようなデバイスコントローラは、デバイスストレージアレイと共通のダイ上に形成されてもよく、またはデバイスストレージアレイを含むダイとは別のダイ上に形成されてもよい。どちらのコンフィグレーションも、本明細書で説明される、識別された「メモリダイ」(130A~N+1)によって含まれる。メモリダイは、NANDダイ、3次元NANDダイ、相変化メモリダイなどであってもよい。
【0036】
ホストデバイス135は、パーソナルコンピュータ、スマートフォン、タブレット、集積回路の一部、モノのインターネット(IoT)デバイス(例えば、冷蔵庫または他の電化製品、センサ、モータまたはアクチュエータ、モバイル通信デバイス、自動車、ドローンなど)などであってもよい。
【0037】
本発明の説明の目的のために、例示的なメモリ操作及び管理機能は、NANDメモリの文脈で説明され得る。当業者は、不揮発性メモリの他の形態が類似のメモリ動作または管理機能を有し得ることを認識する。係るNAND管理機能は、ウェアレベリング(例えば、ガベージコレクションまたはリクラメーション)、エラー検出またはエラー訂正、ブロックリタイアメント、または他の1つ以上のメモリ管理機能を含む。
【0038】
メモリダイ130-A~130-N+1は、例えば、複数のプレーン、サブブロック、ブロック、またはページに配置されるいくつかのメモリセルを含むことができる。一例として、48GBのTLC NANDメモリデバイスは、ページあたり18,592バイト(B)のデータ(16,384+2208バイト)、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4つ以上のプレーンを含むことができる。別の例として、32GBのMLCメモリデバイス(セルあたり2ビットのデータを記憶する(すなわち、4つのプログラマブル状態))は、ページあたり18,592バイト(B)のデータ(16,384+2208バイト)、ブロックあたり1024ページ、プレーンあたり548ブロック、及びデバイスあたり4プレーンを含むことができるが、対応するTLCメモリデバイスと比べて、必要な書き込み時間は半分で、プログラム/消去(P/E)サイクルは2倍である。他の例は、他の数または配置を含むことができる。いくつかの実施例では、メモリデバイスまたはその一部は、SLCモードで、または所望のMLCモード(TLC、QLCなど)で選択的に動作され得る。
【0039】
動作中、データは通常、ページ単位でメモリデバイス100に書き込まれるか、またはこのメモリデバイスから読み出され、ブロック単位で消去される。しかしながら、1つ以上のメモリ動作(例えば、読み出し、書き込み、消去など)は、必要に応じて、より大きなまたはより小さなメモリセルのグループに対して実行することができる。メモリデバイス100のデータ転送サイズは通常ページと呼ばれ、一方でホストのデータ転送サイズは通常セクタと呼ばれる。
【0040】
1ページのデータは、幾つかのバイトのユーザデータ(例えば、幾つかのセクタのデータを含むデータペイロード)及びそれに対応するメタデータを含み得るが、ページのサイズは、多くの場合、ユーザデータを格納するために使用されるバイト数だけを指す。一例として、4KBのページサイズを有するページのデータは、4KBのユーザデータ(例えば、512Bのセクタサイズを想定した8セクタ)だけでなく、完全性データ、アドレスデータ(例えば、論理アドレスデータなど)またはユーザデータに関連付けられる他のメタデータなどの、ユーザデータに対応する幾つかのバイト(例えば、32B、54Bなど)のメタデータを含み得る。
【0041】
異なるタイプのメモリセルは、異なるページサイズを提供することができ、またはそれに関連した異なる量のメタデータを必要とし得る。例えば、メモリデバイスタイプが異なればビットエラーレートも異なることがあり、このことにより、データページの完全性を確保するために必要なメタデータの量が異なる可能性がある(例えば、ビットエラーレートがより高いメモリデバイスでは、ビットエラーレートがより低いメモリデバイスよりも多くのバイトのデータのエラー訂正コードが必要になる場合がある)。一例として、マルチレベルセル(MLC)NANDフラッシュデバイスは、対応するシングルレベルセル(SLC)NANDフラッシュデバイスよりも高いビットエラー率を有し得る。したがって、MLCデバイスは、対応するSLCデバイスよりも多くのエラーデータのメタデータバイトを必要とし得る。
【0042】
図2に、本開示のいくつかの例による、ストリング(例えば、ストリング205~207)及びティア(例えば、それぞれのワードライン(WL)WL0~WL7 210~217、ドレイン側選択ゲート(SGD)ライン225、ソース側選択ゲート(SGS)ライン230などとして図示)の2次元アレイに配置された複数のメモリセル202と、センスアンプまたはデバイス260と、を含むNANDアーキテクチャ半導体メモリアレイ300の一部の例示的な概略図を示す。例えば、メモリアレイ200は、
図1からのメモリダイ130のメモリセルの1つの物理ページの一部の例示的な概略図を示し得る。
【0043】
メモリセルの各ストリングは、それぞれのソース側選択ゲート(SGS)(例えば、SGS231~233)を使用してソースライン(SRC)235に結合され、それぞれのドレイン側選択ゲート(SGD)(例えば、SGD226~228)を使用してそれぞれのデータライン(例えば、ビットライン(BL)BL0~BL2 220~222)に結合される。
図2の例では、8つのティア(例えば、ワードライン(WL)WL0~WL7 210~217を使用)及び3つのデータライン(BL0~BL2 226~228)を用いて示されているが、他の例は、要望通り、より多いまたはより少ないティアまたはデータラインを有するメモリセルのストリングを含むことができる。
【0044】
例示的なメモリアレイ200などのNANDアーキテクチャ半導体メモリアレイでは、選択されたメモリセルを含む特定のデータラインに関連する電流または電圧の変化を検知することによって、選択されたメモリセル202の状態にアクセスすることができる。メモリアレイ200は、1つまたは複数のドライバを使用して(例えば、制御回路、1つまたは複数のプロセッサ、デジタル論理などによって)アクセスできる。一実施例では、1つまたは複数のドライバは、特定のメモリセルまたはメモリセルのセット上で実行されることが望ましい操作のタイプに応じて、1つまたは複数のデータライン(例えば、ビットラインBL0~BL2)、アクセスライン(例えば、ワードラインWL0~WL7)、または選択ゲートに特定の電位を駆動することによって、特定のメモリセルまたはメモリセルのセットをアクティブ化することができる。
【0045】
メモリセルをプログラムするか、またはそれにデータを書き込むために、プログラミング電圧(Vpgm)(例えば、1つまたは複数のプログラミングパルスなど)を、選択されたワードライン(例えば、WL4)に、ひいては選択されたワードラインに結合された各メモリセルの制御ゲート(例えば、WL4に結合されたメモリセルの制御ゲート(CG)241~243)に印加することができる。プログラミングパルスは、例えば、15Vまたは15V付近で開始することができ、特定の実施例では、各プログラミングパルスの印加中に大きさを上げることができる。プログラム電圧を選択されたワードラインに印加しながら、接地電位(例えば、Vss)などの電位を、プログラミングを対象にするメモリセルのデータライン(例えば、ビットライン)及び基板(このためソースとドレインとの間のチャネル)に印加し得ることで、対象にされたメモリセルのチャネルから電荷蓄積構造体までの電荷移動(例えば、直接注入またはファウラーノルドハイム(FN)トンネリングなど)という結果になる。それらのような電荷蓄積構造体は、例えば、それぞれのメモリセルのフローティングゲートまたは電荷トラップ領域を含み得る。フローティングゲートメモリセルでは、電荷は分離されたポリシリコン構造体に貯蔵されるが、電荷トラップメモリセルでは、電荷は通常、誘電体構造体に貯蔵される。
【0046】
対照的に、例えば、それらのような対象にされていないメモリセルのチャネルから電荷蓄積構造体に電荷が移動するのを妨げるなどのために、プログラミングを対象にしていないメモリセルを含む1つ以上のワードラインに通過電圧(Vpass)を印加することができる、またはプログラミングを対象にしていないメモリセルを含むデータライン(ビットラインなど)に阻止電圧(Vccなど)を印加することができる。通過電圧は、例えば、印加された通過電圧がプログラミングの対象となるワードラインに近接しているかどうかに応じて可変にすることができる。阻止電圧は、接地電位(例えば、Vss)に対する電源電圧(Vcc)、例えば、外部電源または供給源(例えば、バッテリ、AC/DCコンバータなど)からの電圧を含むことができる。
【0047】
一例として、プログラミング電圧(例えば、15V以上)がWL4などの特定のワードラインに印加される場合、10Vのパス電圧をWL3、WL5などの他の1つまたは複数のワードラインに印加して、非対象メモリセルのプログラミングを禁止するか、またはそのようなプログラミング非対象メモリセルに記憶された値を保持することができる。印加されるプログラム電圧と非対象メモリセルとの間の距離が増加するにつれて、非対象メモリセルをプログラミングしないようにするのに必要なパス電圧を減少させることができる。例えば、15Vのプログラミング電圧がWL4に印加される場合、例えば、10Vのパス電圧をWL3及びWL5に印加することができ、8Vのパス電圧をWL2及びWL6に印加することができ、7Vのパス電圧をWL1及びWL7に印加することができる。他の例では、パス電圧またはワードラインの数などは、より高くもしくはより低く、またはより多くもしくはより少なくすることができる。
【0048】
1つまたは複数のデータライン(例えば、第一、第二、または第三ビットライン(BL0~BL2)220~222)に結合されたセンスアンプ260は、特定のデータライン上の電圧または電流を検知することにより、それぞれのデータラインにおける各メモリセルの状態を検出することができる。
【0049】
1つまたは複数のプログラミングパルス(例えば、Vpgm)の印加の間に、検証動作を実行して、選択されたメモリセルがその意図したプログラム状態に達したかどうかを判定できる。選択されたメモリセルが意図されたプログラム状態に達した場合、そのメモリセルをそれ以上プログラミングすることを禁止することができる。選択されたメモリセルが意図されたプログラム状態に達していない場合は、追加のプログラミングパルスを印加することができる。選択されたメモリセルが特定の数のプログラミングパルス(例えば、最大数)の後で意図されたプログラム状態に達していない場合、選択されたメモリセル、またはそのような選択されたメモリセルに関連したストリング、ブロックもしくはページは、不良としてマークすることができる。
【0050】
シングルレベルセル(SLC)の場合、セルにプログラムされる2つの可能な電圧レベルがあり、1つの電圧レベルはバイナリの「1」を表し、別の電圧レベルはバイナリの「0」を表す。マルチレベルセル(MLC)の場合、セルにプログラムされる4つの可能な電圧レベルがある。4つの可能な電圧レベルは、「00」、「01」、「10」、及び「11」を表す。MLCセルをプログラムするには、複数のプログラミングパルスが印加される。第一パルスは、セルの最上位ビットか最下位ビットかいずれかを表すデータの第一「ページ」をプログラムする。第二パルスは、第一パルスによってプログラムされなかったセルのもう1つのビットを表すデータの第二「ページ」をプログラムする。同様に、トリプルレベルセル(TLC)は、8個の可能な電圧レベルを格納し、クワッドレベルセル(QLC)は16個の可能な電圧レベルを格納する。
【0051】
1つまたは複数のメモリセルに格納された値を読み出すために、選択されたセルのワードラインに読み出し電圧が印加される。ワードラインのセルに格納された電圧が読み出し電圧よりも大きい場合、セルは電圧をセンスアンプに渡す。SLCセルの場合、読み出し電圧は、「1」及び「0」を表す2つの電圧の間にあるように選択される。MLC、TLC、及びQLCの場合、セルに格納されている各ビットを読み出すために複数の読み出し操作が使用され、各読み出し操作は、異なる読み出し電圧を利用する。
【0052】
メモリセルまたはメモリセルのグループを消去する(例えば、消去は、典型的には、ブロックまたはサブブロックで実行される)には、対象となるメモリセルのワードラインを接地電位(例えば、Vss)などの電位に保持している間に、消去電圧(Vers)を、(例えば、1つまたは複数のビットラインを使用して、ゲートを選択してなど)消去対象のメモリセルの基板(したがって、ソースとドレインの間のチャネル)に印加して、その結果、対象となるメモリセルの電荷蓄積構造体からチャネルへの電荷を移動させる(例えば、直接注入またはファウラーノルドハイム(FN)トンネリングなど)ことができる。
【0053】
図3は、ブロック(例えば、ブロックA301A、ブロックB301Bなど)及びサブブロック(例えば、サブブロックA
0301A
0、サブブロックA
n301A
n、サブブロックB
0301B
0、サブブロックB
n301B
nなど)に編成される、複数のメモリセルストリング(例えば、A
0メモリストリング305A
0~307A
0、A
nメモリストリング305A
n~307A
n、B
0メモリストリング305B
0~307B
0、B
nメモリストリング305B
n~307B
nなど)を含む3D NANDアーキテクチャ半導体メモリアレイ300の例示的な概略図を示す。メモリアレイ300は、典型的にはメモリデバイスのブロック、デバイスまたは他のユニットに見られる、より多くの同様の構造の一部を表す。
【0054】
メモリセルの各ストリングは、ソースライン(SRC)335またはソース側選択ゲート(SGS)(例えば、A0SGS331A0~333A0、AnSGS331An~333An、B0SGS331B0~333B0、BnSGS231Bn~233Bnなど)と、ドレイン側選択ゲート(SGD)(例えば、A0SGD326A0~328A0、AnSGD326An~328An、B0SGD326B0~328B0、BnSGD326Bn~328Bnなど)との間で、Z方向に、ソースからドレインに積み重ねられたいくつかの層の電荷蓄積トランジスタ(例えば、フローティングゲートトランジスタ、電荷トラップ構造など)を含む。3Dメモリアレイ内のメモリセルの各ストリングは、X方向に沿ってデータライン(例えば、ビットライン(BL)BL0~BL2 320~322)として配置し、Y方向に沿って物理ページとして配置することができる。
【0055】
物理ページ内では、各ティアはメモリセルのロウを表し、メモリセルの各ストリングはカラムを表す。サブブロックは1つ以上の物理ページを含むことができる。ブロックには、いくつかのサブブロック(または物理ページ)(例えば、128、256、384など)を含むことができる。本明細書では2つのブロックを有し、各ブロックは2つのサブブロックを有し、各サブブロックは単一の物理ページを有し、各物理ページは3つのメモリセルのストリングを有し、各ストリングは8個のティアのメモリセルを有するものとして示されているが、他の実施例では、メモリアレイ300は、より多くのまたはより少ないブロック、サブブロック、物理ページ、メモリセルのストリング、メモリセル、またはティアを含むことができる。例えば、メモリセルの各ストリングは、必要に応じて、より多くのまたはより少ないティア(例えば、16、32、64、128など)、ならびに電荷蓄積トランジスタ(例えば、選択ゲート、データラインなど)の上または下の半導体材料の1つまたは複数の追加のティアを含むことができる。一例として、48GBのTLCのNANDメモリデバイスは、ページあたり18,592バイト(B)(16,384+2208バイト)のデータ、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4つ以上のプレーンを含むことができる。
【0056】
メモリアレイ300内の各メモリセルは、アクセスライン(例えば、ワードライン(WL)WL00~WL70310A~317A、WL01~WL71310B~317Bなど)に結合された(例えば、電気的またはその他の方法で動作可能に接続された)制御ゲート(CG)を含み、アクセスラインは、必要に応じて、専用のティアまたはティアの一部にわたって制御ゲート(CG)を集合的に結合する。3Dメモリアレイ内の特定のティア、及びそれに応じて、ストリング内の特定のメモリセルは、それぞれのアクセスラインを使用してアクセスまたは制御できる。選択ゲートのグループには、様々な選択ラインを使用してアクセスできる。例えば、A0SGD326A0~328A0に、A0SGDラインSGDA0325A0を使用してアクセスすることができ、AnSGD326An~328Anに、SGDラインSGDAn325Anを使用してアクセスすることができ、B0SGD326B0~328B0に、B0SGDラインSGDB0325B0を使用してアクセスすることができ、BnSGD326Bn~328Bnに、BnSGDラインSGDBn325Bnを使用してアクセスすることができる。A0SGS331A0~333A0及びAnSGS331An~333Anに、ゲート選択ラインSGS0330Aを使用してアクセスすることができ、B0SGS331B0~333B0及びBnSGS331Bn~333Bnに、ゲート選択ラインSGS1330Bを使用してアクセスすることができる。
【0057】
一例では、メモリアレイ300は、アレイのそれぞれのティアの各メモリセルまたは選択ゲートの制御ゲート(CG)(あるいはCGまたは選択ゲートの一部)を結合するように構成されるいくつかのレベルの半導体材料(例えば、ポリシリコンなど)を含むことができる。アレイ内のメモリセルの特定のストリングは、ビットライン(BL)及び選択ゲートなどの組み合わせを使用してアクセスされる、選択される、または制御されることができ、特定のストリング内の1つ以上のティアでの特定のメモリセルは、1つ以上のアクセスライン(例えば、ワードライン)を使用して、アクセスされる、選択される、または制御されることができる。
【0058】
図4に、本開示のいくつかの例による、複数のメモリセル404を有するメモリアレイ402と、メモリアレイ402との通信を提供するか、またはそれに対して1つ以上のメモリ操作を実行する1つ以上の回路またはコンポーネントと、を含むメモリダイ400の例示的なブロック図を示す。メモリダイ400は、ロウデコーダ412、カラムデコーダ414、センスアンプ420、ページバッファ422、セレクタ424、入出力(I/O)回路426、及びメモリ制御ユニット430を含むことができる。
【0059】
メモリアレイ402のメモリセル404は、第一及び第二ブロック402A、402Bなどのブロックに配置することができる。各ブロックはサブブロックを含むことができる。例えば、第一ブロック402Aは、第一及び第二サブブロック402A0、402Anを含むことができ、第二ブロック402Bは、第一及び第二サブブロック402B0、402Bnを含むことができる。各サブブロックはいくつかの物理ページを含むことができ、各ページはいくつかのメモリセル404を含む。本明細書では2つのブロックを有し、各ブロックは2つのサブブロックを有し、各サブブロックはいくつかのメモリセル404を有するものとして示しているが、他の例では、メモリアレイ402は、より多いまたはより少ないブロック、サブブロック、メモリセルなどを含むことができる。他の例では、メモリセル404を、いくつかのロウ、カラム、ページ、サブブロック、ブロックなどに配置し、例えば、アクセスライン406、第一データライン410、あるいは1つまたは複数の選択ゲート、ソースラインなどを使用してアクセスすることができる。
【0060】
メモリ制御ユニット430は、メモリコントローラによってメモリインタフェースにおいて制御ライン432上で受信した1つ以上の信号及び/または命令/コマンドに従ってメモリダイ400のメモリ操作を制御することができる(
図1のメモリデバイス100のコントローラ105及びホストインタフェース123に関して説明されるように)。それらのような信号及び/または命令は、例えば、所望の操作(例えば、書き込み、読み出し、消去など)を示す1つ以上のクロック信号及び/または制御信号、または1つ以上のアドレスライン416上で受信したアドレス信号(A0~AX)を含み得る。メモリダイ400の外部の1つまたは複数のデバイスは、制御ライン432の制御信号、またはアドレスライン416のアドレス信号の値を制御することができる。メモリダイ400の外部のデバイスの例は、ホスト、メモリコントローラ、プロセッサ、または
図4に示していない1つもしくは複数の回路もしくはコンポーネントを含むことができるが、これらに限定されない。
【0061】
メモリダイ400は、アクセスライン406及び第一データライン410を使用して、メモリセル404のうちの1つもしくは複数にデータを転送する(例えば、書き込むまたは消去する)、またはそこからデータを転送する(例えば、読み出す)ことができる。ロウデコーダ412及びカラムデコーダ414は、アドレスライン416からアドレス信号(A0~AX)を受け取ってデコードすることができ、アクセスすべきメモリセル404を決定することができ、上述のように、アクセスライン406(例えば、複数のワードライン(WL0~WLm)のうちの1つまたは複数)あるいは第一データライン410(例えば、複数のビットライン(BL0~BLn)のうちの1つまたは複数)のうちの1つまたは複数に信号を提供することができる。
【0062】
メモリダイ400は、第一データライン410を使用してメモリセル404のデータの値を特定する(例えば、読み出す)か、またはそこに書き込まれるデータの値を決定するように構成されるセンスアンプ420などのセンス回路を含むことができる。例えば、メモリセル404の選択されたストリングにおいて、センスアンプ420のうちの1つまたは複数は、メモリアレイ402内で選択されたストリングを介してデータライン410へ流れる読み出し電流に応答して、選択されたメモリセル404の論理レベルを読み出すことができる。
【0063】
コントローラ105などのメモリダイ400の外部の1つまたは複数のデバイスは、I/Oライン(DQ0~DQN)408、アドレスライン416(A0~AX)、または制御ライン432を使用してメモリダイ400と通信することができる。入出力(I/O)回路426は、例えば、制御ライン432及びアドレスライン416に従って、I/Oライン408を使用して、ページバッファ422またはメモリアレイ402の内外など、メモリダイ400の内外にデータの値を転送することができる。ページバッファ422は、メモリダイ400の外部の1つまたは複数のデバイスから受信したデータを、そのデータがメモリアレイ402の関連部分にプログラムされる前に記憶することができ、またはメモリアレイ402から読み出されたデータを、そのデータがメモリダイ400の外部の1つまたは複数のデバイスに送信される前に記憶することができる。
【0064】
カラムデコーダ414は、アドレス信号(A0~AX)を受け取って、1つまたは複数のカラム選択信号(CSEL1~CSELn)にデコードすることができる。セレクタ424(例えば、選択回路)は、カラム選択信号(CSEL1~CSELn)を受け取り、メモリセル404から読み出されるかまたはそこにプログラムされるデータの値を表すページバッファ422内のデータを選択することができる。選択されたデータは、ページバッファ422とI/O回路426との間で第二データライン418を使用して転送されることができる。いくつかの例では、フラッシュ変換層(図示せず)は、ホストによって提供されたアドレスを、ロウデコーダ412及びカラムデコーダ414によって使用される物理メモリアドレスにマッピングして、メモリアレイ402内のデータを読み出すことができる。
【0065】
メモリ制御ユニット430は、外部電源または供給源(例えば、内部または外部バッテリ、AC/DCコンバータなど)から、電源電圧(Vcc)434及び負電源(Vss)436(例えば、接地電位)などの正及び負の電源信号を受け取ることができる。特定の例では、メモリ制御ユニット430は、正または負の電源信号を内部的に提供するためのレギュレータ428を含むことができる。
【0066】
内部コピーバック対応スクランブラ
前述のように、メモリデバイスへの書き込み時にデータパターン要件を満たすように物理ページアドレスを利用してデータをスクランブルすることは、内部コピーバック操作がデータを変更せず、その代わりにダイ上の1つの位置にあるデータをもう1つの位置に直接コピーするときには、内部コピーバック操作ができない。データが最初に書き込まれたアドレスからアドレスが変わるため、現在データが格納されているセルの物理アドレスを使用して、内部コピーバック操作後にデータをスクランブル解除することはできない。
【0067】
前述のように、本開示は、シード値を生成するためのシード生成器を提供する方法、システム、及び機械可読媒体を記載し、このシード値は、ホストデータ及びメタデータの一方または両方を共にか別々にかいずれかでスクランブルするためのスクランブラによって使用される。次いで、シードは、スクランブルされたホストデータ及びメタデータに付加され、メモリデバイスに書き込まれる。いずれかの後続の内部コピーバック操作により、シードを含むデータが書き込まれたとおりに正確にコピーされ得る。次に、読み出し操作により、最初にシード(スクランブル解除されて格納されている)が読み出され、続いてそのシードが使用されてスクランブル操作が逆にされて、ホストデータ及びメタデータが取得されることにより、メモリデバイスから読み出されたデータがスクランブル解除される。この読み出し操作は、スクランブラのシードが、スクランブル解除状態で、メモリデバイスに書き込まれたデータと共に格納されるため、内部コピーバック操作の後でも機能する。
【0068】
前述のように、スクランブラは、いくつかの例では、データのスクランブル及びスクランブル解除に同じシード値を使用するが、他の例では、データのスクランブルに使用されたものとは異なる値を使用してデータのスクランブル解除を行う。例えば、鍵ペアの第一暗号鍵を使用して、ホストデータ及びメタデータの一方または両方を(暗号化することによって)スクランブルすることができ、鍵ペアの第二暗号鍵を使用して、データをスクランブル解除することができる。これらの例では、データをスクランブル解除するためにアンスクランブラによって使用される値(例えば、第二鍵)は、データと共に格納される。
【0069】
図5は、本開示のいくつかの例による書き込み操作のデータフローを示す。ホストデータ615は、メモリデバイスへの書き込みのためにホストから受信される。メタデータ610はコントローラ105、メモリダイ130などのメモリデバイスによって作成される、またはメタデータ610の一部はコントローラ105及びメモリダイ130の両方によって作成されてもよい。メタデータは、ホストデータに関する情報と、書き込み温度及びその他の詳細など、ホストデータが格納された条件に関する情報とを含む場合がある。
【0070】
次に、ホストデータ615及びメタデータ610は、スクランブラ620に入力される。スクランブラ620は、1つまたは複数のシード値を使用して、ホストデータ615及びメタデータ610を異なる値に可逆的に変換することができる任意のアルゴリズムであり得る。例えば、XOR演算、暗号化演算(例えば、RSA、データ暗号化規格、トリプルDES、RSA、Blowfish、Advanced Encryption Standard(AES)など)などである。当業者は、例えば、メタデータ及びホストデータをスクランブル解除するために利用される複数の鍵または他の値を利用するスクランブラアルゴリズムに、複数のシード値が利用されてもよく、またはいくつかの例では、メタデータ及びホストデータが分割されてもよく、異なるシードでスクランブルされてもよいことを理解するであろう。複数のシードが利用される例では、データをスクランブル解除するために使用される各シードは、スクランブルされたホストデータ及びメタデータとともに格納され得る。
【0071】
シード630は、スクランブルされたメタデータ及びホストデータ635を生成するためにスクランブラによって使用され得る。シード630は、シード生成器625によって生成され得る。いくつかの例では、シード生成器625は乱数生成器であり得る。シード生成器625は、ハードウェア乱数生成器、ソフトウェア乱数生成器などであり得る。シード生成器625は、真の乱数生成器または疑似乱数生成器であり得る。他の例では、シード生成器625は、暗号鍵生成器などであり得る。シード生成器625は、以前に決定されたシード値のリストから選択してもよく、または新しいシード値を生成してもよい(例えば、式またはハードウェアロジックの実行に基づいて)。各シードは、特にホストデータ615の受信に応答して生成されることができるため、第一ホストデータの第一シードは、後に受信したホストデータの第二シードとは異なる可能性がある。
【0072】
いくつかの例では、シード生成器625はシード処理される必要がある場合がある。例えば、シード生成器625が疑似乱数生成器である場合、シード生成器は、初期に、メモリデバイスの各スタートアップ時に、定期的に及び/または同様の時などに、シード処理され得る。シード生成器625は、現在の時間、現在の温度、メモリデバイスまたはメモリデバイスの一部(例えば、ダイ)の最後に書き込まれたワードに対応する物理アドレス、次に書き込まれた物理アドレスなどによってシード処理されてもよい。前述のように、シード生成器は、シードを定期的に(例えば、所定の期間後に)リフレッシュさせることができる。
【0073】
メモリデバイスに書き込まれた各ページは、そのページ用に生成されたまたは選択されたシードを有し得、このシードをスクランブラが使用して、ホストデータ及び/またはメタデータをスクランブルし得る。いくつかの例では、メタデータ及びホストデータの両方に対して単一のシードが生成されるが、他の例では、メタデータ及びホストデータに対して異なるシードが生成される。いくつかの例では、シード630及びスクランブラ620は、ホストデータ及びメタデータを一方から独立してスクランブル解除し得ることで、ホストデータを知ることなくメタデータをスクランブル解除し得るように、ホストデータ及びメタデータをスクランブルするように動作可能である。
【0074】
シードは、生成されて使用されると、スクランブルされたメタデータ及びホストデータに追加される(示されるように、スクランブルされたメタデータ及びホストデータの前に追加されるが、スクランブルされたメタデータ及びホストデータの後に追加される場合もある)。次に、結合されたシードならびにスクランブルされたメタデータ及びホストデータは、誤り訂正符号エンコーダ640でエンコードされることで、エンコードデータ645が生成され、メモリデバイスのメモリセルにプログラムされる。
【0075】
図6は、本開示のいくつかの例による読み出し操作のデータフローを示す。ホストは、論理アドレスを含む読み出し要求をメモリデバイスに送信する。これを、メモリデバイスは論理から物理の(L2P)テーブルを使用して物理アドレスに変換する。次いで、コマンドは、その物理アドレスに対応する適切なメモリダイに発行される。その後、メモリセルに適切な読み出し電圧を印加することによって、その物理アドレスにあるメモリセルが読み出される。得られたエンコードデータ645は、ECCデコーダ650でデコードされる。ECCデコードが成功する場合、スクランブルされたメタデータ及びホストデータ635ならびにシード630がリカバリされる。次に、シードがアンスクランブラ655によって使用され
て、スクランブルされたメタデータ及びホストデータ635が元のメタデータ610及びホストデータ615にスクランブル解除される。アンスクランブラ655は、スクランブラ620によって実行される操作
とは逆操作を適用することができる。例えば、スクランブラ620がXOR演算を適用して、メタデータ610及びホストデータ615を、シード630を有する乱数列とXOR演算する場合、アンスクランブラ655は、XOR演算を適用し、シードを有する乱数列と、スクランブルされたメタデータ及びホストデータ635とをXOR演算することで、スクランブル解除されたメタデータ610及びホストデータ615が取得される。
【0076】
図7は、本開示のいくつかの例によるメモリデバイスにデータを書き込む方法700のフローチャートを示す。操作710では、メモリデバイスは、データを受信してメモリセルに書き込むことができる。例えば、ホストは、ホストデータをメモリデバイスに書き込むようにメモリデバイスに指令することができる。この命令により、ホストはホストデータを提供してメモリデバイスに書き込むことができる。
【0077】
操作715では、シード値が生成され得る。シード値は、書き込むデータの受信に応答して生成され得る(例えば、データが受信されると同時に生成されることによって)。シード値は整数値の場合がある。シード値は、メモリデバイスが新しいデータをメモリセルに書き込むたびに、新たに生成されてもよく、または選択されてもよい。特定のシード値は、以前に生成されたシード値とは異なる場合がある。いくつかの例では、シード値は、特定のプレーン、特定のダイ、特定のメモリデバイスなどの内で一意であってもよい。他の例では、シード値は一意でなくてもよいが、最終的には、一連の異なるシード値の後に繰り返されてもよい。シード値は、ランダムでもよく、または疑似ランダムでもよい。前述のように、シード値は、ランダムに生成された値、暗号鍵などであってもよい。
【0078】
操作720では、書き込まれるデータは、シード値を使用してスクランブルされ得る。例えば、操作710で受信されたデータは、メモリデバイスによって生成されたメタデータと組み合わされ得、シード値を使用するスクランブルアルゴリズムによって変換され得る。例えば、アルゴリズムはXORアルゴリズムであってもよく、データ及びメタデータはシードとXORdされ得ることで、スクランブルされた値が生成されてもよい。他の例では、データ及びメタデータはシードで暗号化されることができる。スクランブルアルゴリズムは、少なくとも2つの入力(データ(例えば、組み合わされたホストデータ及びメタデータ)、及びシード値)を取り、このデータとは異なるが、関数がシード値を使用してスクランブルされたデータを元のデータに変換し得るという点で可逆的でもある出力を生成する任意のアルゴリズムであってもよい。いくつかの例では、ホストデータのナレッジがなくてもメタデータがスクランブル解除され得るように、メタデータ及びホストデータはスクランブルされ得る。いくつかの例では、これを達成するために、メタデータ及びホストデータを同じシードまたは異なるシードで別々にスクランブルすることができる。ホストデータ及びメタデータが異なるシードでスクランブルされている場合、各シードは、エンコードされスクランブルされたメタデータ及びホストデータとともに格納され得る(例えば、操作730)。
【0079】
操作725では、シード値は、スクランブルされたデータ(例えば、ホストデータ及びメタデータ)と連結され得、エンコードされ得る。例えば、誤り訂正符号化(ECC)スキームを使用する。次いで、このエンコードされたデータを、操作730ではメモリデバイスのダイ(例えば、第一ダイとして示される)の第一の複数のメモリセルに書き込ませることができる。例えば、エンコードされたデータは、メモリデバイスのワードを形成する一連のメモリセルに書き込まれ得る。前述のように、複数のシード値が利用される場合、複数のシード値が連結され得、ホストデータ及びメタデータとともに格納され得る。
【0080】
操作735では、メモリデバイスは、データが第一ダイの第二の複数のメモリセルにコピーされることを後で識別し得、第一及び第二の複数は異なるメモリセルであり得る。例えば、第一の複数のメモリセルはSLCキャッシュを含むことができ、このキャッシュから、データは出てMLC、TLC、またはQLCストレージに移動する必要がある場合がある。操作740では、データは第二の複数のメモリセルにコピーされ得る。いくつかの例では、メモリデバイスの内部通信インタフェースを介して(例えば、コントローラに)転送されるデータはない。いくつかの例では、以下で説明されるように、メタデータ部分は、メタデータが更新される位置に(例えば、コントローラに)、メモリデバイスの内部通信インタフェースを介して転送されてもよく、そのメタデータが内部コピーバック中の格納のためにホストデータと組み合わされる位置に、転送されて返されてもよい。これらの例では、ホストデータ部分はメモリデバイス(コントローラなど)の内部通信インタフェースを介して転送されず、メタデータのみが転送される。さらに他の例では、ホストデータ及びメタデータの両方は、メモリデバイスの内部通信インタフェースを介して(例えば、コントローラに)転送され得、その後、転送されて返され得、第二の複数のセルに格納され得る。操作735及び740は、操作710~730から独立して起こる可能性がある。つまり、操作735~740で説明されているコピーバック操作は、後で起こる場合もあれば、まったく起こらない場合もある。
【0081】
図8は、本開示のいくつかの例によるメモリデバイスからデータを読み出す方法800のフローチャートを示す。操作810では、メモリデバイスは、メモリデバイスに格納されたデータを読み出す要求を受信することができる。例えば、ホストは、メモリデバイスの特定の論理アドレスに格納されたデータを要求することができる。操作815では、データは、指示された位置でメモリデバイスから読み出される。読み出されるデータはエンコードされる。操作820では、エンコードされたデータがデコードされる。デコードされたデータは、1つまたは複数のシード値と、スクランブルされたデータ(ホストデータ及びメタデータ)を含む。操作825では、シード値(複数可)はデコードされたデータから抽出される。例えば、シード値は、スクランブルされたデータ(例えば、ホストデータ及びメタデータ)の前、後、またはそれに隣接して格納され得る。操作830では、スクランブルされたデータは、アンスクランブラによってシード値でスクランブル解除され得る。アンスクランブラは、
スクランブラとは逆
の変換
を適用する任意のアルゴリズムであり得る。次に、ホストデータは、操作835でホストに送信される。いくつかの例では、操作835でホストに送信する前に、ホストデータをさらに処理することができる。
【0082】
メタデータの更新
前述のように、従来の内部コピーバック操作は、データのデコード及びスクランブル解除を行わないため、ホストデータに関連付けられた適切なメタデータを更新しない。これにより、これらのメタデータ値がホストデータを適切に読み出すために使用され得るため、信頼性の問題が発生する可能性がある。いくつかの例では、この問題を解決するために、メタデータがホストデータから分離され得、メタデータのみが、内部I/Oインタフェースを介して送信され得、コントローラによって更新され得る。次に、更新されたメタデータは、メモリダイに送り返され、ホストデータ(更新されたメタデータを待機している間にメモリバッファに格納され得る)と組み合わされ、ダイ上の新しい位置に書き込まれる。メタデータの送信は内部I/Oインタフェースに影響するが、I/O使用量は、通常、メタデータ及びホストデータの両方をコントローラに送り返すために必要なI/O量の1%未満である。
【0083】
従来の方法では、ホストデータ及びメタデータは合わせてスクランブルされ、エンコードされる。ホストデータがメタデータと共に転送されない場合、コントローラはデータと共に格納されているECC情報(ECCパリティビットなど)を適切に更新することができない。これにより、ECC情報がホストデータ及びメタデータの両方に基づいて計算されるため、不正確なデコードになる。いくつかの例では、この問題を解決するために、メモリデバイスは、メタデータ及びホストデータに別個のECC情報(例えば、別個のパリティビット)を格納するとともに、メタデータ及びホストデータに別個のECCプロセスを適用することができる。メタデータが更新されてエンコードされるとき、メタデータに関連付けられたパリティビットが更新される。ホストデータが影響を受けなかったため、ホストデータのECC情報は、影響を受けておらず、更新される必要もない。したがって、メタデータが変更されていても、ホストデータが適切にデコードされることができる。
【0084】
図9は、メタデータ及びホストデータが別々にエンコードされる、本開示のいくつかの例による書き込み操作のデータフローを示す。メタデータ910及びホストデータ915は、スクランブラ920に入力される。シード生成器925がシード930を生成し、このシードは、メタデータ及びホストデータをスクランブルして、スクランブルされたホストデータ937を生成するために使用される。メタデータ及びホストデータは、スクランブルされたホストデータが存在しなくてもメタデータのスクランブル解除を可能にすることで、ホストデータを受信しなくてもメタデータを更新することを可能にする方法でスクランブルされる必要がある場合がある。
【0085】
これは、スクランブルされたメタデータを計算する際にホストデータを利用しないスクランブルアルゴリズムを利用することによって達成され得る。例えば、シードを有する乱数列をデータとビット単位の方法でXOR演算するXOR演算は、スクランブルされたデータと同じXOR値を適用することで逆にされることができる。これらの例では、メタデータがホストデータから分離されている場合でも、スクランブル解除はまだ機能する。これらの例では、同じシード値を使用して、メタデータ及びホストデータをスクランブルすることができる。
【0086】
他の例では、メタデータ910及びホストデータ915は、異なるシード値でスクランブルされ得る。例えば、データ(例えば、スクランブル解除されたメタデータの値)をスクランブル解除する(例えば、暗号解除する)ためにメタデータ及びホストデータの両方が存在する必要がある操作(例えば、いくつかの暗号アルゴリズム)をスクランブラ920が実行する場合、メタデータ及びホストデータは、別々のシードで別々にスクランブルされることができる。これらの例では、両方のシードが格納されてもよく、または一方のシードが他方のシードから推定されることができる場合、1つのシードのみが格納されてもよい。他の例では、それらは同じシード値であってもよいが、メタデータのスクランブル解除にホストデータ(スクランブルされたかスクランブル解除されたかいずれか)のナレッジが不要であるように、スクランブル操作が行われる。
【0087】
スクランブルされたメタデータ935及びシード930がECCエンコーダ940に入力されることができると、エンコードされたメタデータ945が生成されることができる。別個に、スクランブルされたホストデータ937がECCエンコーダ940にフィードされることができると、エンコードされたホストデータ947が生成されることができる。次に、エンコードされたメタデータ950及びエンコードされたホストデータ952は(パリティビットなどのECC情報とともに)メモリデバイスのメモリセルに書き込まれることができる。示されるように、シード930は、スクランブルされたメタデータ935と共にエンコードされるが、他の例では、シード930は、スクランブルされたホストデータ937と共に、またはスクランブルされたメタデータ935とスクランブルされたホストデータ937の両方と共にエンコードされてもよい。
【0088】
図10は、メタデータ及びホストデータが別々にエンコードされる、本開示のいくつかの例によるメタデータ更新を伴う内部コピーバック操作のデータフロー1000を示す。エンコードされたメタデータ1010及びエンコードされたホストデータ1015が媒体から読み出される。エンコードされたホストデータ1015は、ページバッファ1020などのメモリバッファに格納される。いくつかの例では、エンコードされたメタデータ1010もまたバッファに格納される(メタデータが更新される必要がない場合)。
【0089】
エンコードされたメタデータ1010は、通信インタフェースを介してコントローラに転送され、そこで、エンコードされたメタデータ1010はデコーダ1025によってデコードされ、アンスクランブラ1030によってスクランブル解除される。スクランブラ用のパリティデータなどのECC情報及びシード(メタデータ、ホストデータ、またはその両方と共にエンコードされ得る)もまた転送されることができると、デコーダ1025及びアンスクランブラ1030で使用され得る。メタデータのECCチェックに失敗した場合、メモリデバイスは、内部コピーバック操作をアボートし、データのリカバリステップに入る場合がある。
【0090】
メタデータが読み出されることができると、1035では、メタデータを更新する必要があるかどうかが決定されることができる。例えば、ドライブの書き込み温度、書き込み時間などを更新する。メタデータを更新する必要がない場合には、インジケーションがメモリダイに送り返されても、送り返されなくてもよい。例えば、変更の必要がないことを指示するメッセージである。他の例では、メタデータが更新されない場合でも、メタデータは再ランダム化され、再エンコードされ、送り返される場合がある。これは、メタデータに誤りがないことを確保するという利点を有する。いくつかの例では、書き込まれたメタデータが十分に近い場合(例えば、指定された距離内)、システムはメタデータを更新しないと決定する場合がある。したがって、データが最初に書き込まれたときのドライブ温度が現在の温度に近い場合、メタデータは更新されなくてもよい。いくつかの例では、システムがメタデータを常に更新する(例えば、書き込みタイムスタンプを更新する)ように構成されている場合があるため、この決定はオプションである。いくつかの例では、すべてのメタデータが更新され、他の例では、メタデータの一部のフィールドのみが更新される。いくつかの例では、メタデータの特定のフィールドが更新されるかどうかは、特定のルールに依存する場合がある。例えば、1つの特定のフィールドは常に更新され得るが、残りのフィールドは、ルールが評価した結果、メタデータフィールドを更新する必要があることを示す場合にのみ更新され得る。例えば、ルールは、データが最初に書き込まれた温度と現在の温度の差が閾値を上回る場合、書き込み温度が更新され得、そうでない場合、書き込み温度が更新され得ないというものであってもよい。
【0091】
1035でメタデータを更新する必要があると決定する場合、メタデータアップデータ1040によってメタデータが更新される。例えば、メモリデバイスにおける様々なセンサからの様々な測定値(例えば、温度、時間など)を組み込むことによる。次いで、スクランブラ1045は、メタデータをスクランブルするために最初に使用されたのと同じ鍵を使用して、更新されたメタデータをスクランブルする。次に、エンコーダ1050は、スクランブルされ更新されたメタデータをエンコードし、新しいECC情報を生成する。次いで、関連する更新されたECC情報(例えば、パリティビット)を有するエンコードされたメタデータは、メモリダイに送り返され、ページバッファ1020ではエンコードされたホストデータと組み合わされる。次いで、この更新されたメタデータとホストデータとの組み合わせは、媒体に書き込まれる。
【0092】
図11は、本開示のいくつかの例によるメモリデバイスにデータを書き込む方法1100のフローチャートを示す。
図11は、
図1のコントローラ105など、メモリデバイスのコントローラによって実行され得る。操作1110では、コントローラは、ホストデータを含む書き込み要求を受信することができる。操作1115では、コントローラは、ホストデータに対応するメタデータを決定することができる。例えば、書き込み温度、データが書き込まれた時間などである。操作1120では、コントローラは、ホストデータを知ることなく、メタデータがスクランブル解除され得るように、メタデータ及びホストデータをスクランブルする。別の言い方をすれば、スクランブルプロセスはホストデータを利用しないため、メタデータのスクランブル解除にホストデータのナレッジが必要ない。例えば、メタデータは、ホストデータとは別の操作で、シードまたは鍵(ホストデータをスクランブルするために使用されるのと同じシードまたは鍵か、別のシードまたは鍵かいずれか)でスクランブルされる場合がある。さらに他の例では、特定のスクランブルアルゴリズムの場合、個別の処理は必要とされない場合がある。つまり、スクランブルアルゴリズムの性質により、シードが与えられると、ビットの独立したスクランブル解除が可能になる。例えば、メタデータのスクランブル解除されたビットの値は、鍵の値を除いて、メタデータ(ホストデータなど)以外のいかなるビットの値にも依存しない。
【0093】
操作1125では、スクランブルされたホストデータ及びメタデータは、別々のエンコード情報で別々にエンコードされる。操作1130では、コントローラは、エンコードされたメタデータ及びエンコードされたホストデータをメモリデバイスに格納させることができる。例えば、コントローラは、内部通信インタフェースを介して、エンコードされたメタデータ及びエンコードされたホストデータを格納するようにメモリセルの物理ワードライン(複数可)をプログラムするようにメモリダイに指令するコマンドを送信することができる。
【0094】
図12は、本開示のいくつかの例による内部コピーバック操作中にメモリデバイスにデータを書き込む方法1200のフローチャートを示す。
図12は、
図1のコントローラ105など、メモリデバイスのコントローラによって実行され得る。操作1210では、内部コピーバックコマンド(コントローラによって発行されたか、メモリダイ内で生成されたかいずれか)に応答して、エンコードされておりスクランブルされているメタデータを、メモリダイが送信してもよく、コントローラが受信してもよい。このメタデータは、ホストデータなしで、デコードされる及び/またはスクランブル解除されることができるように、エンコードされる及び/またはスクランブルされる。つまり、ホストデータはメモリダイによってコントローラに送信されない。
【0095】
操作1215では、メタデータは、エンコード情報を使用してデコードされる。前述のように、デコードに失敗した場合(例えば、メタデータに訂正不可能なECC誤りがある場合)、メモリデバイスは内部コピーバック操作をキャンセルし、リカバリ操作によるデータのリカバリを試みる。操作1220では、コントローラは、操作1215からのデコードされたメタデータをスクランブル解除する。例えば、デコードされたメタデータに追加されたシード、またはメモリダイによって送信されたシードを使用することによる。前述のように、シードはスクランブルされない場合がある。操作1220は、ホストデータまたはホストデータに対応するデータのナレッジなしで、デコードされたメタデータをスクランブル解除する。すなわち、操作1220のスクランブル解除は、ホストデータ、エンコードされたホストデータ、スクランブルされたホストデータ、エンコードされスクランブルされたホストデータなどのナレッジを必要としない。
【0096】
次いで、操作1225では、スクランブル解除されデコードされたメタデータが更新される。例えば、書き込み温度の更新、書き込み時間の更新などである。前述のように、いくつかの例では、メタデータまたはメタデータのフィールドは、1つまたは複数のルールの評価結果、現在のメタデータ、現在のメモリデバイスの状態(例えば、温度、時間など)などに基づいて選択的に更新され得る。メタデータは、現在のメモリデバイスの状態で更新される場合がある。操作1230では、更新されたメタデータがシードでスクランブルされる。操作1235では、スクランブルされ更新されたメタデータがエンコードされる。操作1240では、エンコードされスクランブルされ更新されたメタデータは、メモリダイに送り返されることで、格納されているスクランブルされエンコードされたホストデータと組み合わされ、メモリセルに書き込まれる。
【0097】
図13は、本開示のいくつかの例によるメモリデバイス上での内部コピーバック操作方法1300のフローチャートを示す。
図13は、
図1のメモリダイ130など、メモリデバイスのメモリダイによって実行され得る。メモリダイ130は、処理回路及びワーキングメモリ(例えば、揮発性メモリ)を有することができる。処理回路は、方法1300を実行するように構成され得る1つまたは複数のプロセッサであり得る。操作1310では、メモリダイ130は、メモリダイ内の1つまたは複数のメモリ位置に対する内部コピーバックコマンドを識別し得る。例えば、コントローラによってコマンドが発行され得、SLCキャッシュに対応するメモリセルに格納されたデータをMLC、TLC、またはQLCストレージに移動させるためのさまざまなトリガが識別され得るなどである。さまざまなトリガは、アイドル時間、SLCキャッシュの利用、コントローラコマンドなどを含み得る。SLCキャッシュと最終的なターゲットMLC、TLC、またはQLCストレージとの両方が同じメモリダイ上にあってもよい。これらの例では(例えば、ソース及び宛先が同じメモリダイ上にあると識別される)、内部コピーバック操作を実行して、データ(ホストデータ及びメタデータ)を、コントローラとの通信インタフェースを介してデータ全体を転送することなく、ダイ上の第一位置から同じダイ上の第二位置にコピーし得る。
【0098】
操作1315では、メタデータ及びホストデータを取得するために、内部コピーバックのソースメモリ位置が読み出される。このメタデータ及びホストデータは、両方ともスクランブルされ、エンコードされる。操作1320では、ソースメモリ位置から読み出される、エンコードされスクランブルされたホストデータは、ページバッファなどのバッファにコピーされる。いくつかの例では、エンコードされスクランブルされたメタデータもまた、エンコードされスクランブルされたホストデータと同じページバッファなどのバッファにコピーされ得る。
【0099】
操作1325では、エンコードされスクランブルされたメタデータは、内部通信インタフェース(例えば、通信バス)を介して更新するためにコントローラに送信され得る。操作1330では、メモリダイは、更新されたメタデータ、またはメタデータを更新する必要がないというインジケーションを受信することができる。操作1335では、メモリダイは、エンコードされスクランブルされたホストデータと共に、エンコードされてスクランブルされ更新されたメタデータ(またはメタデータを更新する必要がない場合には元のメタデータ)を宛先メモリセルに書き込むことができる。
【0100】
図14は、本明細書で論じられる技法(例えば、方法論)のうちの任意の1つ以上が実行され得る例示的なマシン1400のブロック図を示す。例えば、メモリデバイス100は、
図14の1つまたは複数のコンポーネントを含んでもよく、またはそれらによって実装されてもよい。ホスト135は、マシン1400の1つもしくは複数のコンポーネントであってもよく、またはそれを含んでもよい。これらの例では、メモリデバイス100はマスストレージ1421であってもよい。マシン1400の1つまたは複数のコンポーネントは、
図1~13の方法または構造のうちの1つまたは複数を実装することができる。例えば、命令1424の操作による。
【0101】
代替の実施形態では、マシン1400は、スタンドアロンデバイスとして動作する場合もあれば、他のマシンに接続される(例えば、ネットワーク化される)場合もある。ネットワーク化された展開では、マシン1400は、サーバクライアントネットワーク環境においてサーバマシン、クライアントマシン、または両方の能力で動作することができる。一例では、マシン1400は、ピアツーピア(P2P)(または他の分散型)ネットワーク環境でピアマシンとして機能することができる。マシン1400は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、IoTデバイス、自動車システム、ホストデバイス、メモリデバイス、またはそのマシンによって実行されるアクションを指定する命令(シーケンシャルまたはその他の方法)を実行することが可能な任意のマシンであることができる。マシン1400のコンポーネントは、メモリデバイス(例えば、プロセッサ、メインメモリ、マスストレージなど)に存在することができる。さらに単一のマシンしか示していないが、用語「マシン」は、また、クラウドコンピューティング、ソフトウェアアズアサービス(SaaS)、他のコンピュータクラスタ構成などの本明細書で説明される方法論の任意の1つ以上の方法論を実施するために命令のセット(または複数のセット)を個別にまたは共同で実行するマシンの任意の集合体を含むと解釈されるものとする。
【0102】
本明細書で説明される実施例は、論理、構成要素、デバイス、パッケージ、もしくは機構を含み得るか、またはそれらによって動作し得る。電気回路は、ハードウェア(例えば、単純な回路、ゲート、ロジックなど)を含む有形のエンティティに実装された回路の集合(例えば、セット)である。電気回路の構成要素は、時間の経過及び基礎となるハードウェアの変動性に柔軟に対応し得る。電気回路は、単独でまたは組み合わせて、動作時に特定のタスクを遂行し得る構成要素を含む。一実施例では、電気回路のハードウェアは、特定の動作(例えば、ハードワイヤード)を行うように不変に設計され得る。一実施例では、電気回路のハードウェアは、特定の動作の命令をエンコードするために、物理的に修正された(例えば、磁気的、電気的、不変質量粒子の可動配置など)コンピュータ可読媒体を含む、可変的に接続された物理的構成要素(例えば、実行ユニット、トランジスタ、単純な回路など)を含み得る。物理的構成要素を接続する際に、ハードウェア構成物の基礎となる電気的特性は、例えば、絶縁体から導体に、またはその逆に変更される。この命令により、関係するハードウェア(例えば、実行ユニットまたはロード機構)は、可変接続を介してハードウェア内に回路網の構成要素を作成して、動作中に特定のタスクの一部を実行できるようになる。したがって、コンピュータ可読媒体は、デバイスが動作しているときに、回路網の他の構成要素に通信可能に結合される。一例では、物理的構成要素のいずれも、複数の回路網の複数の要素の中で使用できる。例えば、動作中、実行ユニットは、ある時点で第一回路網の第一回路で使用され、別の時点で第一回路網の第二回路によってまたは第二回路網の第三回路によって再利用される場合がある。
【0103】
マシン(例えば、コンピュータシステム)1400(例えば、ホストデバイス135、メモリデバイス100など)は、ハードウェアプロセッサ1402(例えば、中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、ハードウェアプロセッサコア、またはメモリコントローラ105のプロセッサ115のようなそれらの任意の組み合わせなど)、メインメモリ1404及びスタティックメモリ1406を含むことができ、これらの一部またはすべては、インターリンク(例えば、バス)1408を介して互いに通信することができる。マシン1400は、ディスプレイユニット1410、英数字入力デバイス1412(例えば、キーボード)、及びユーザインタフェース(UI)ナビゲーションデバイス1414(例えば、マウス)をさらに含むことができる。一例では、ディスプレイユニット1410、入力デバイス1412、及びUIナビゲーションデバイス1414は、タッチスクリーンディスプレイであることができる。マシン1400は、センサ1416、信号発生デバイス1418(例えば、スピーカ)、及びネットワークインタフェースデバイス1420をさらに含むことができる。センサ1416は、全地球測位システム(GPS)センサ、コンパス、加速度計、及び/または他のセンサを含んでもよい。マシン1400は、1つ以上の周辺機器(例えば、プリンタ、カードリーダなど)と通信する、またはそれらを制御するために、シリアル(例えば、ユニバーサルシリアルバス(USB))、パラレル、または他の有線もしくは無線(例えば、赤外線(IR)、近距離無線通信(NFC)など)接続などの出力コントローラ1428を含むことができる。
【0104】
マスストレージデバイス1421は、本明細書で説明される技術または機能の任意の1つ以上を組み入れるまたはそれによって利用されるデータ構造または命令1424(例えば、ソフトウェア)の1つ以上のセットが格納される、機械可読媒体1422を含み得る。命令1424もまた、マシン1400によるそれらの実行中に、メインメモリ1404内に、スタティックメモリ1406内に、またはハードウェアプロセッサ1402内に、完全に、または少なくとも部分的に常駐することができる。一例では、ハードウェアプロセッサ1402、メインメモリ1404、スタティックメモリ1406、またはマスストレージデバイス1416の1つまたは任意の組み合わせは、機械可読媒体1422を構成することができる。
【0105】
機械可読媒体1422は、単一の媒体として示されているが、用語「機械可読媒体」は、1つ以上の命令1424を格納するように構成された単一の媒体または複数の媒体(例えば、集中型もしくは分散型のデータベース、または関連付けられたキャッシュ及びサーバ)を含む場合がある。
【0106】
用語「機械可読媒体」は、マシン1400による実行のための命令を格納する、エンコードする、もしくは搬送することができ、マシン1400に、本開示の技術のいずれか1つ以上を実行させる、またはそのような命令によって使用される、もしくはそのような命令と関連付けられるデータ構造を格納する、エンコードする、もしくは搬送することができる任意の媒体を含むことができる。非限定的な機械可読媒体の例には、ソリッドステートメモリ、ならびに光媒体及び磁気媒体が含まれ得る。いくつかの例では、機械可読媒体1422は非一時的な機械可読媒体である。一実施例では、大容量の(massed)機械可読媒体は、不変(例えば、静止)質量を有する複数の粒子を有する機械可読媒体を含む。したがって、大容量の機械可読媒体は一時的な伝播信号ではない。大容量の機械可読媒体の具体的な実施例には、半導体メモリデバイス(例えば、電気的プログラマブル読み出し専用メモリ(EPROM)、電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)及びフラッシュメモリデバイスなどの不揮発性メモリ、内蔵ハードディスク及びリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROM及びDVD-ROMディスクが含まれ得る。
【0107】
命令1424(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)等)または他のデータは、マスストレージデバイス1421に格納され、プロセッサ1402による使用のためにメモリ1404によってアクセスできる。メモリ1404(例えば、DRAM)は、一般的に、高速であるが揮発性であり、ひいては、「オフ」状態にある期間を含む長期記憶に適しているストレージデバイス1421(例えば、SSD)とは異なるタイプのストレージである。ユーザまたはマシン1400が使用する命令1424またはデータは、典型的には、プロセッサ1402が使用するためにメモリ1404にロードされる。メモリ1404が一杯になると、メモリ1404を補うために、ストレージデバイス1421からの仮想空間を割り当てることができるが、ストレージデバイス1421は、典型的には、メモリ1404よりも遅く、書き込み速度は、典型的には、読み出し速度の少なくとも2倍遅いので、仮想メモリの使用は、(メモリ1404、例えば、DRAMとは対照的に)ストレージデバイスのレイテンシに起因するユーザエクスペリエンスを大幅に低下させる可能性がある。さらに、仮想メモリのためのストレージデバイス1421の使用は、ストレージデバイス1421の使用可能な寿命を大幅に減らす可能性がある。
【0108】
仮想メモリと対照的に、仮想メモリ圧縮(例えば、Linux(登録商標)カーネル特徴「ZRAM」)は、ストレージデバイス1421へのページングを回避するために、メモリの一部を圧縮ブロックストレージとして使用する。ページングは、そのようなデータをストレージデバイス1421に書き込むことが必要であるまで圧縮ブロックで行われる。仮想メモリ圧縮は、ストレージデバイス1421の摩耗を減らしながら、メモリ1404の使用可能なサイズを増加させる。
【0109】
マスストレージ1421などのストレージデバイスは、NANDメモリデバイスなどのメモリデバイスであってもよい。MMCソリッドステートストレージデバイス(例えば、micro Secure Digital(microSD(商標))カードなど)を含む、マスストレージ1421などのストレージデバイスは、モバイル電子デバイスまたはモバイルストレージに最適化され得る。MMCデバイスは、ホストデバイスとの複数のパラレルインタフェース(例えば、8ビットパラレルインタフェースなど)を含み、多くの場合、ホストデバイスからコンポーネントを取り外し可能であり、分離している。対照的に、eMMC(商標)デバイスは回路基板に取り付けられ、ホストデバイスの構成要素と見なされ、シリアルATA(商標)(シリアルAT(アドバンストテクノロジ)アタッチメント、またはSATA)ベースのSSDデバイスに匹敵する読み出し速度を備える。しかしながら、仮想デバイスまたは拡張現実デバイスを完全に可能にすること、増加しつつあるネットワーク速度を利用することなど、モバイルデバイスの性能に対する需要は増え続けている。この需要に応えて、ストレージデバイスは、パラレル通信インタフェースからシリアル通信インタフェースに移行してきた。コントローラ及びファームウェアを含むユニバーサルフラッシュストレージ(UFS)デバイスは、専用の読み出し/書き込みパスを備える低電圧差動信号(LVDS)シリアルインタフェースを使用してホストデバイスと通信し、読み出し/書き込み速度をさらに向上させる。
【0110】
命令1424はさらに、いくつかの転送プロトコル(例えば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)など)のうちの任意の1つを利用するネットワークインタフェースデバイス1420を経由して伝送媒体を使用して通信ネットワーク1426を介して送信または受信される場合がある。通信ネットワークの例は、中でもローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、携帯電話網(例えば、セルラーネットワーク)、従来型電話サービス(POTS)ネットワーク、及び無線データネットワーク(例えば、Wi-Fi(登録商標)として知られる規格の電気電子技術者協会(IEEE)802.11ファミリ、WiMax(登録商標)として知られる規格のIEEE802.16ファミリ)、規格のIEEE802.15.4ファミリ、ピアツーピア(P2P)ネットワークを含む場合がある。一例では、ネットワークインタフェースデバイス1420は、通信ネットワーク1426に接続するために1つ以上の物理的なジャック(例えば、Ethernet、同軸ジャック、もしくは電話ジャック)または1つ以上のアンテナを含む場合がある。一例では、ネットワークインタフェースデバイス1420は、単一入力複数出力(SIMO)技術、複数入力複数出力(MIMO)技術、または複数入力単一出力(MISO)技術のうちの少なくとも1つを使用して無線通信するために複数のアンテナを含む場合がある。用語「伝送媒体」は、マシン1400による実行のための命令を格納する、符号化する、または搬送することができる任意の無形媒体を含み、そのようなソフトウェアの通信を容易にするためにデジタルもしくはアナログ通信信号、または他の無形媒体を含むと解釈されるものとする。
【0111】
上記の詳細な説明は、詳細な説明の一部を形成する添付図面に対する参照を含む。図面は、例示として、本発明を実施できる特定の実施形態を示す。これらの実施形態は、本明細書では「実施例」とも称される。こうした実施例は、図示または説明された要素に加えて要素を含み得る。しかしながら、本発明者らは、図示または説明されたそれらの要素のみが提供される実施例も企図する。さらに、本発明者らは、本明細書に図示または説明された特定の実施例(あるいはその1つ以上の態様)に関して、または他の実施例(あるいはその1つ以上の態様)に関して、図示または説明されたそれらの要素(あるいはその1つ以上の態様)の任意の組み合わせまたは変形を使用する実施例も企図する。
【0112】
本書では、用語「a」または「an」は、特許文書で一般的であるように、「少なくとも1つの(at least one)」または「1つ以上の(one or more)」の任意の他の例または使用法とは関係なく、1つまたは複数を含むために使用される。本書では、用語「または(or)」は非排他的を指すために使用されるか、または別段の指示がない限り、「AまたはB(A or B)」は「AであるがBではない(A but not B)」、「BであるがAではない(B but not A)」、及び「A及びB(A and B)」を含み得るように使用される。添付の特許請求の範囲では、用語「含む(including)」及び「~において(in which)」は、それぞれの用語「含む(comprising)」及び「そこで(wherein)」の分かりやすい英語の均等物として使用される。また、以下の特許請求の範囲では、「含む(including)」及び「含む(comprising)」という用語はオープンエンド形式である。すなわち、請求項の中のそのような用語の後に示される要素に加えて要素を含むシステム、デバイス、物品、またはプロセスもその請求項の範囲に含まれると見なされる。さらに、以下の特許請求の範囲では、用語「第一」、「第二」、及び「第三」などは、単にラベルとして使用されており、その対象に対する数的な要件を課すことを意図していない。
【0113】
様々な実施例で、本明細書に記載の構成要素、コントローラ、プロセッサ、ユニット、エンジン、またはテーブルは、とりわけ、物理デバイスに格納された物理回路またはファームウェアを含むことができる。本明細書で使用される場合、「プロセッサ」は、限定されないが、マイクロプロセッサ、マイクロコントローラ、グラフィックスプロセッサ、デジタルシグナルプロセッサ(DSP)、または、プロセッサまたはマルチコアデバイスのグループを含む、任意の他のタイプのプロセッサまたは処理回路などの任意のタイプの計算回路を意味する。
【0114】
本開示による、本明細書に記載の様々な実施形態は、メモリセルの垂直構造(例えば、メモリセルのNANDストリング)を利用するメモリを含む。本明細書で使用される、方向に関する形容詞は、メモリセルが形成される基板の表面に対するものとして解釈される(すなわち、垂直構造は基板表面から離れて延在すると解釈され、垂直構造の底端は基板表面に最も近い端と解釈され、垂直構造の上端は基板表面から最も遠い端と解釈される)。
【0115】
本明細書で使用される、水平、垂直、垂線、平行、直角などの方向に関する形容詞は、相対配向を指し得、特に明記しない限り、特定の幾何学的特性への厳密な順守を要求することを意図しない。例えば、本明細書で使用される垂直構造は、基板の表面に対し厳密に直角である必要はないが、代わりに、基板の表面に対し概して直角であり得、基板の表面と鋭角(例えば60~120度など)を形成し得る。
【0116】
本明細書で説明されるいくつかの実施形態では、ソース側選択ゲート(SGS)、制御ゲート(CG)、及びドレイン側選択ゲート(SGD)に対し、異なるドーピング構成が適用され得、これらのそれぞれは、この実施例では、ポリシリコンから成り得、またはポリシリコンを少なくとも含み得、これにより、これらの層(例えばポリシリコンなど)は、エッチング液にさらされた時に、異なるエッチング速度を有することができる。例えば、3D半導体デバイスでモノリシックピラーを形成するプロセスでは、SGS及びCGは、陥凹を形成し得、一方SGDは、少しの陥凹形態または陥凹もない形態に留まり得る。従って、これらのドーピング構成により、エッチング液(例えば水酸化テトラメチルアンモニウム(TMCH))を使用して3D半導体デバイスの別個の層(例えばSGS、CG、及びSGD)への選択的なエッチングが可能となり得る。
【0117】
本明細書で使用されるメモリセルを操作することには、メモリセルから読み出すこと、メモリセルへ書き込むこと、またはメモリセルを消去することが含まれる。メモリセルを意図された状態にする動作は、本明細書では「プログラミング」と呼ばれ、メモリセルへの書き込みまたはメモリセルからの消去(例えば、メモリセルは消去状態にプログラムされ得る)の両方を含むことができる。
【0118】
本開示の1つ以上の実施形態によれば、メモリデバイスの内部に、または外部に配置されるメモリコントローラ(例えば、プロセッサ、コントローラ、ファームウェアなど)は、摩耗サイクルの量、または摩耗状態(例えば、摩耗サイクルを記録すること、摩耗サイクルの発生時にメモリデバイスの動作をカウントすること、カウントを開始するメモリデバイスの動作を追跡すること、摩耗状態に対応するメモリデバイス特性を評価することなど)を決定すること(例えば、選択すること、設定すること、調整すること、計算すること、変更すること、クリアすること、通信すること、適合させること、導出すること、定義すること、利用すること、修正すること、適用することなど)ができる。
【0119】
本開示の1つ以上の実施形態によれば、メモリアクセスデバイスは、メモリ動作ごとにメモリデバイスに摩耗サイクル情報を提供するように構成され得る。メモリデバイス制御回路網(例えば、制御ロジック)は、摩耗サイクル情報に対応するメモリデバイスパフォーマンスの変化を補償するようにプログラムされ得る。メモリデバイスは、摩耗サイクル情報を受信し、この摩耗サイクル情報に応答して、1つ以上の動作パラメータ(例えば、値、特性)を決定することができる。
【0120】
要素が別の要素の「上にある(on)」、別の要素に「接続している(connected to)」、または別の要素と「結合している(coupled with)」と呼ばれる場合、その要素は、他の要素の上に直接あり得るか、直接接続し得るか、または直接結合し得るか、あるいは介在する要素が存在し得ることが理解されよう。対照的に、要素が別の要素の「上に直接ある(directly on)」、別の要素に「直接接続している(directly connected to)」、または別の要素と「直接結合している(directly coupled with)」と呼ばれる場合、介在する要素または層は存在しない。2つの要素がそれらを接続する線で図面に示されている場合、別段の指示がない限り、2つの要素は結合が可能であるか、または直接結合が可能であるかのいずれかである。
【0121】
本明細書で説明される方法の実施例は、少なくとも部分的に、マシンまたはコンピュータに実装することができる。一部の例は、上記の例に説明したような方法を電子デバイスが実施するように構成するように動作可能な命令でエンコードされたコンピュータ可読媒体または機械可読媒体を含み得る。このような方法の実装は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのようなコードを含むことができる。このようなコードは、様々な方法を遂行するためのコンピュータ可読命令を含むことができる。コードは、コンピュータプログラム製品の一部を形成し得る。さらに、コードは、実行中または他の時間などに、1つ以上の揮発性または不揮発性の有形コンピュータ可読媒体に有形で記憶させることができる。これらの有形コンピュータ可読媒体の例は、限定的ではないが、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスク及びデジタルビデオディスク)、磁気カセット、メモリカードまたはメモリスティック、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS)デバイス、組み込みMMC(eMMC)デバイスなどを含み得る。
【0122】
上記の説明は、例示を意図したものであり、限定的なものではない。例えば、上述の例(またはその1つ以上の態様)は、互いと組み合わせて使用される場合がある。上記の説明を検討する際に当業者によってなど、他の実施形態を使用できる。これは、特許請求の範囲または意味を解釈または限定するために使用されないとの理解のもとに提供される。また、上記の発明を実施するための形態では、様々な特徴が本開示を効率化するために一緒にグループ化され得る。これは、特許請求されていない開示された特徴が任意の請求項に対して不可欠であることを意図すると解釈されるべきではない。むしろ、本発明の主題は、特定の開示されている実施形態のすべてに満たない特徴に存在する場合がある。したがって、次の特許請求の範囲は発明を実施するための形態にここで組み込まれ、各請求項は別個の実施形態として自立しており、このような実施形態は、様々な組み合わせまたは変形で相互に組み合わせることができると想到される。本発明の範囲は、特許請求の範囲、ならびにそのような特許請求の範囲に権利が与えられる均等物の全範囲を参照して決定されるべきである。
【0123】
その他の注記及び実施例
実施例1は、不揮発性メモリデバイスにデータを格納する方法であり、前記方法は、データを受信して、前記メモリデバイスの複数のメモリセルに書き込むことと、前記データを受信することに応答して、前記データに対するスクランブラのシード値を生成することと、スクランブルアルゴリズム及び前記シード値を使用して前記データを変換することによって前記データをスクランブルして、スクランブルされたデータを生成することと、前記シード値と前記スクランブルされたデータとの両方をエンコードして、エンコードされたデータを作成することと、前記エンコードされたデータを前記メモリデバイスの第一ダイの第一の複数のメモリセルに書き込ませることと、前記エンコードされたデータが前記第一ダイ内の第二の複数のメモリセルにコピーされることを識別することと、前記エンコードされたデータが前記第二の複数のメモリセルにコピーされることを識別することに応答して、前記エンコードされたデータのホストデータ部分を前記第一ダイから前記メモリデバイスのコントローラに転送することなく、前記エンコードされたデータを前記第二の複数のメモリセルにコピーさせることとを含む。
【0124】
実施例2では、実施例1の主題は、前記シード値を生成することが乱数を取得することを含むことを含む。
【0125】
実施例3では、実施例2の主題は、前記乱数を取得することがハードウェア乱数生成器を使用することを含むことを含む。
【0126】
実施例4では、実施例2~3の主題は、前記乱数が擬似乱数生成器から生成された擬似乱数であることを含む。
【0127】
実施例5では、実施例1~4の主題は、前記シード値が暗号鍵であることを含む。
【0128】
実施例6では、実施例1~5の主題は、前記スクランブルアルゴリズムがXORアルゴリズムであり、前記データをスクランブルすることが、前記データを前記シード値で生成された乱数列とXOR演算して、前記スクランブルされたデータを生成することを含むことを含む。
【0129】
実施例7では、実施例1~6の主題は、前記スクランブルアルゴリズムが暗号アルゴリズムであり、前記暗号アルゴリズム及び前記シード値を使用して前記データを変換することによって、前記データをスクランブルし、前記スクランブルされたデータを生成することが、前記データを前記シード値によって暗号化することを含むことを含む。
【0130】
実施例8では、実施例1~7の主題は、前記データの読み出し要求を受信することと、前記第二の複数のメモリセルから前記エンコードされたデータを読み出すことと、前記エンコードされたデータをデコードして、前記スクランブルされたデータ及び前記シード値を生成することと、前記スクランブルされたデータを前記シード値でスクランブル解除して、前記データを生成することとを含む。
【0131】
実施例9は、メモリデバイスであり、前記メモリデバイスは、複数のメモリセルを含む第一メモリダイ、コントローラを含み、前記コントローラは、データを受信して前記複数のメモリセルに書き込むことと、前記データを受信することに応答して、前記データに対するスクランブラのシード値を生成することと、スクランブルアルゴリズム及び前記シード値を使用して前記データを変換することによって前記データをスクランブルして、スクランブルされたデータを生成することと、前記シード値と前記スクランブルされたデータとの両方をエンコードして、エンコードされたデータを作成することと、前記エンコードされたデータを前記第一ダイの第一の複数のメモリセルに書き込ませることと、前記エンコードされたデータが前記第一ダイ内の第二の複数のメモリセルにコピーされることを識別することと、前記エンコードされたデータが前記第二の複数のメモリセルにコピーされることを識別することに応答して、前記エンコードされたデータのホストデータ部分を前記第一ダイから前記メモリデバイスのコントローラに転送することなく、前記エンコードされたデータを前記第二の複数のメモリセルにコピーさせることとを含む操作を実行するように構成される。
【0132】
実施例10では、実施例9の主題は、前記シード値を生成するという前記操作が乱数を取得することを含むことを含む。
【0133】
実施例11では、実施例10の主題は、前記メモリデバイスがハードウェア乱数生成器を含み、前記乱数を取得するという前記操作が、前記ハードウェア乱数生成器から前記乱数を取得することを含むことを含む。
【0134】
実施例12では、実施例10~11の主題は、前記乱数が擬似乱数生成器から生成された擬似乱数であることを含む。
【0135】
実施例13では、実施例9~12の主題は、前記シード値が暗号鍵であることを含む。
【0136】
実施例14では、実施例9~13の主題は、前記スクランブルアルゴリズムがXORアルゴリズムであり、前記データをスクランブルするという前記操作が、前記データを前記シード値で生成された乱数列とXOR演算して、前記スクランブルされたデータを生成することを含むことを含む。
【0137】
実施例15では、実施例9~14の主題は、前記スクランブルアルゴリズムが暗号アルゴリズムであり、前記暗号アルゴリズム及び前記シード値を使用して前記データを変換することによって、前記データをスクランブルし、前記スクランブルされたデータを生成するという前記操作が、前記データを前記シード値によって暗号化することを含むことを含む。
【0138】
実施例16では、実施例9~15の主題は、前記操作が、前記データの読み出し要求を受信することと、前記第二の複数のメモリセルから前記エンコードされたデータを読み出すことと、前記エンコードされたデータをデコードして、前記スクランブルされたデータ及び前記シード値を生成することと、前記スクランブルされたデータを前記シード値でスクランブル解除して、前記データを生成することとをさらに含むことを含む。
【0139】
実施例17は、命令を格納する、非一時的な機械可読媒体であり、前記命令は、実行されるとき、メモリデバイスに、データを受信して、前記メモリデバイスの複数のメモリセルに書き込むことと、前記データを受信することに応答して、前記データに対するスクランブラのシード値を生成することと、スクランブルアルゴリズム及び前記シード値を使用して前記データを変換することによって前記データをスクランブルして、スクランブルされたデータを生成することと、前記シード値と前記スクランブルされたデータとの両方をエンコードして、エンコードされたデータを作成することと、前記エンコードされたデータを前記第一ダイの第一の複数のメモリセルに書き込ませることと、前記エンコードされたデータが前記第一ダイ内の第二の複数のメモリセルにコピーされることを識別することと、前記エンコードされたデータが前記第二の複数のメモリセルにコピーされることを識別することに応答して、前記エンコードされたデータのホストデータ部分を前記第一ダイから前記メモリデバイスのコントローラに転送することなく、前記エンコードされたデータを前記第二の複数のメモリセルにコピーさせることとを含む操作を実行させる。
【0140】
実施例18では、実施例17の主題は、前記シード値を生成するという前記操作が乱数を取得することを含むことを含む。
【0141】
実施例19では、実施例18の主題は、前記メモリデバイスがハードウェア乱数生成器を含み、前記乱数を取得するという前記操作が、前記ハードウェア乱数生成器から前記乱数を取得することを含むことを含む。
【0142】
実施例20では、実施例18~19の主題は、前記乱数が擬似乱数生成器から生成された擬似乱数であることを含む。
【0143】
実施例21では、実施例17~20の主題は、前記シード値が暗号鍵であることを含む。
【0144】
実施例22では、実施例17~21の主題は、前記スクランブルアルゴリズムがXORアルゴリズムであり、前記データをスクランブルするという前記操作が、前記データを前記シード値で生成された乱数列とXOR演算して、前記スクランブルされたデータを生成することを有することを含む。
【0145】
実施例23では、実施例17~22の主題は、前記スクランブルアルゴリズムが暗号アルゴリズムであり、前記暗号アルゴリズム及び前記シード値を使用して前記データを変換することによって、前記データをスクランブルし、前記スクランブルされたデータを生成するという前記操作が、前記データを前記シード値によって暗号化することを含むことを含む。
【0146】
実施例24では、実施例17~23の主題は、前記操作が、前記データの読み出し要求を受信することと、前記第二の複数のメモリセルから前記エンコードされたデータを読み出すことと、前記エンコードされたデータをデコードして、前記スクランブルされたデータ及び前記シード値を生成することと、前記スクランブルされたデータを前記シード値でスクランブル解除して、前記データを生成することとをさらに含むことを含む。
【0147】
実施例25は、命令を含む少なくとも1つの機械可読媒体であり、前記命令は、処理回路によって実行されるとき、実施例1~24のいずれかを実装する操作を前記処理回路に実行させる。
【0148】
実施例26は、実施例1~24のいずれかを実装するための手段を含む装置である。
【0149】
実施例27は、実施例1~24のいずれかを実装するシステムである。
【0150】
実施例28は、実施例1~24のいずれかを実装する方法である。
【0151】
実施例29は、不揮発性メモリデバイスにデータを格納する方法であり、前記方法は、データを受信して、前記メモリデバイスの複数のメモリセルに書き込むことと、前記データを受信することに応答して、前記データに対するスクランブラのシード値を生成することと、スクランブルアルゴリズム及び前記シード値を使用して前記データを変換することによって前記データをスクランブルして、スクランブルされたデータを生成することと、前記シード値と前記スクランブルされたデータとの両方をエンコードして、エンコードされたデータを作成することと、前記エンコードされたデータを前記メモリデバイスの第一ダイの第一の複数のメモリセルに書き込ませることと、前記エンコードされたデータが前記第一ダイ内の第二の複数のメモリセルにコピーされることを識別することと、前記エンコードされたデータが前記第二の複数のメモリセルにコピーされることを識別することに応答して、前記エンコードされたデータのホストデータ部分を前記第一ダイから前記メモリデバイスのコントローラに転送することなく、前記エンコードされたデータを前記第二の複数のメモリセルにコピーさせることとを含む。
【0152】
実施例30では、実施例29の主題は、前記シード値を生成することが乱数を取得することを含むことを含む。
【0153】
実施例31では、実施例30の主題は、前記乱数を取得することがハードウェア乱数生成器を使用することを含むことを含む。
【0154】
実施例32では、実施例30~31の主題は、前記乱数が擬似乱数生成器から生成された擬似乱数であることを含む。
【0155】
実施例33では、実施例29~32の主題は、前記シード値が暗号鍵であることを含む。
【0156】
実施例34では、実施例29~33の主題は、前記スクランブルアルゴリズムがXORアルゴリズムであり、前記データをスクランブルすることが、前記データを前記シード値で生成された乱数列とXOR演算して、前記スクランブルされたデータを生成することを有することを含む。
【0157】
実施例35では、実施例29~34の主題は、前記スクランブルアルゴリズムが暗号アルゴリズムであり、前記暗号アルゴリズム及び前記シード値を使用して前記データを変換することによって、前記データをスクランブルし、前記スクランブルされたデータを生成することが、前記データを前記シード値によって暗号化することを含むことを含む。
【0158】
実施例36では、実施例29~35の主題は、前記データの読み出し要求を受信することと、前記第二の複数のメモリセルから前記エンコードされたデータを読み出すことと、前記エンコードされたデータをデコードして、前記スクランブルされたデータ及び前記シード値を生成することと、前記スクランブルされたデータを前記シード値でスクランブル解除して、前記データを生成することとを含む。
【0159】
実施例37は、メモリデバイスであり、前記メモリデバイスは、複数のメモリセルを含む第一メモリダイ、コントローラを含み、前記コントローラは、データを受信して前記複数のメモリセルに書き込むことと、前記データを受信することに応答して、前記データに対するスクランブラのシード値を生成することと、スクランブルアルゴリズム及び前記シード値を使用して前記データを変換することによって前記データをスクランブルして、スクランブルされたデータを生成することと、前記シード値と前記スクランブルされたデータとの両方をエンコードして、エンコードされたデータを作成することと、前記エンコードされたデータを前記第一ダイの第一の複数のメモリセルに書き込ませることと、前記エンコードされたデータが前記第一ダイ内の第二の複数のメモリセルにコピーされることを識別することと、前記エンコードされたデータが前記第二の複数のメモリセルにコピーされることを識別することに応答して、前記エンコードされたデータのホストデータ部分を前記第一ダイから前記メモリデバイスのコントローラに転送することなく、前記エンコードされたデータを前記第二の複数のメモリセルにコピーさせることとを含む操作を実行するように構成される。
【0160】
実施例38では、実施例37の主題は、前記シード値を生成するという前記操作が乱数を取得することを含むことを含む。
【0161】
実施例39では、実施例38の主題は、前記メモリデバイスがハードウェア乱数生成器を含み、前記乱数を取得するという前記操作が、前記ハードウェア乱数生成器から前記乱数を取得することを含むことを含む。
【0162】
実施例40では、実施例38~39の主題は、前記乱数が擬似乱数生成器から生成された擬似乱数であることを含む。
【0163】
実施例41では、実施例37~40の主題は、前記シード値が暗号鍵であることを含む。
【0164】
実施例42では、実施例37~41の主題は、前記スクランブルアルゴリズムがXORアルゴリズムであり、前記データをスクランブルするという前記操作が、前記データを前記シード値で生成された乱数列とXOR演算して、前記スクランブルされたデータを生成することを含むことを含む。
【0165】
実施例43では、実施例37~42の主題は、前記スクランブルアルゴリズムが暗号アルゴリズムであり、前記暗号アルゴリズム及び前記シード値を使用して前記データを変換することによって、前記データをスクランブルし、前記スクランブルされたデータを生成するという前記操作が、前記データを前記シード値によって暗号化することを含むことを含む。
【0166】
実施例44では、実施例37~43の主題は、前記操作が、前記データの読み出し要求を受信することと、前記第二の複数のメモリセルから前記エンコードされたデータを読み出すことと、前記エンコードされたデータをデコードして、前記スクランブルされたデータ及び前記シード値を生成することと、前記スクランブルされたデータを前記シード値でスクランブル解除して、前記データを生成することとをさらに含むことを含む。
【0167】
実施例45は、命令を格納する、非一時的な機械可読媒体であり、前記命令は、実行されるとき、メモリデバイスに、データを受信して、前記メモリデバイスの複数のメモリセルに書き込むことと、前記データを受信することに応答して、前記データに対するスクランブラのシード値を生成することと、スクランブルアルゴリズム及び前記シード値を使用して前記データを変換することによって前記データをスクランブルして、スクランブルされたデータを生成することと、前記シード値と前記スクランブルされたデータとの両方をエンコードして、エンコードされたデータを作成することと、前記エンコードされたデータを前記第一ダイの第一の複数のメモリセルに書き込ませることと、前記エンコードされたデータが前記第一ダイ内の第二の複数のメモリセルにコピーされることを識別することと、前記エンコードされたデータが前記第二の複数のメモリセルにコピーされることを識別することに応答して、前記エンコードされたデータのホストデータ部分を前記第一ダイから前記メモリデバイスのコントローラに転送することなく、前記エンコードされたデータを前記第二の複数のメモリセルにコピーさせることとを含む操作を実行させる。
【0168】
実施例46では、実施例45の主題は、前記シード値を生成するという前記操作が乱数を取得することを含むことを含む。
【0169】
実施例47では、実施例46の主題は、前記メモリデバイスがハードウェア乱数生成器を含み、前記乱数を取得するという前記操作が、前記ハードウェア乱数生成器から前記乱数を取得することを含むことを含む。
【0170】
実施例48では、実施例46~47の主題は、前記乱数が擬似乱数生成器から生成された擬似乱数であることを含む。
【0171】
実施例49では、実施例45~48の主題は、前記シード値が暗号鍵であることを含む。
【0172】
実施例50では、実施例45~49の主題は、前記スクランブルアルゴリズムがXORアルゴリズムであり、前記データをスクランブルするという前記操作が、前記データを前記シード値で生成された乱数列とXOR演算して、前記スクランブルされたデータを生成することを含むことを含む。
【0173】
実施例51では、実施例45~50の主題は、前記スクランブルアルゴリズムが暗号アルゴリズムであり、前記暗号アルゴリズム及び前記シード値を使用して前記データを変換することによって、前記データをスクランブルし、前記スクランブルされたデータを生成するという前記操作が、前記データを前記シード値によって暗号化することを含むことを含む。
【0174】
実施例52では、実施例45~51の主題は、前記操作が、前記データの読み出し要求を受信することと、前記第二の複数のメモリセルから前記エンコードされたデータを読み出すことと、前記エンコードされたデータをデコードして、前記スクランブルされたデータ及び前記シード値を生成することと、前記スクランブルされたデータを前記シード値でスクランブル解除して、前記データを生成することとをさらに含むことを含む。
【0175】
実施例53は、命令を含む少なくとも1つの機械可読媒体であり、前記命令は、処理回路によって実行されるとき、実施例29~52のいずれかを実装する操作を前記処理回路に実行させる。
【0176】
実施例54は、実施例29~52のいずれかを実装するための手段を含む装置である。
【0177】
実施例55は、実施例29~52のいずれかを実装するシステムである。
【0178】
実施例56は、実施例29~52のいずれかを実装する方法である。
【0179】
実施例57は、メモリデバイスのコピーバック操作を実行する方法であり、前記方法は、前記メモリデバイスのメモリコントローラにおいて、前記メモリデバイスの内部通信インタフェースを介してメモリダイからエンコードされたメタデータを、コピーバック操作の開始に応答して受信することであって、前記メタデータに対応するホストデータが前記内部通信インタフェースを介して前記メモリダイによって送信されない、前記受信することと、前記エンコードされたメタデータをデコードして、デコードされたメタデータを生成することと、鍵値を使用して、前記デコードされたメタデータをスクランブル解除し、スクランブル解除されたメタデータを生成することであって、前記鍵値は前記デコードされたメタデータの一部として格納される、前記生成することと、前記スクランブル解除されたメタデータを更新して更新されたメタデータを生成することと、前記更新されたメタデータを前記鍵値でスクランブルし、スクランブルされ更新されたメタデータを生成することと、前記スクランブルされ更新されたメタデータをエンコードし、エンコードされ更新されたメタデータを生成することと、前記エンコードされ更新されたメタデータを前記メモリダイに送信することであって、前記エンコードされ更新されたメタデータはエンコードされたホストデータと組み合わされ、前記メモリダイ上の新しい位置に書き込まれる、前記送信することとを含む。
【0180】
実施例58では、実施例57の主題は、前記スクランブル解除されたメタデータを更新することが、書き込み温度を更新することを含むことを含む。
【0181】
実施例59では、実施例57~58の主題は、前記スクランブル解除されたメタデータを更新することが、書き込み時間を更新することを含むことを含む。
【0182】
実施例60では、実施例57~59の主題は、前記メモリデバイスの前記メモリダイにおいて、第一メモリ位置に対する内部コピーバックコマンドを識別することと、前記第一メモリ位置を読み出して、前記エンコードされたメタデータ及び前記エンコードされたホストデータを取得することと、前記エンコードされたホストデータを前記メモリダイ上のメモリバッファに格納することと、前記エンコードされたメタデータを前記メモリコントローラに送信することと、前記メモリコントローラから前記エンコードされ更新されたメタデータを受信することと、前記エンコードされ更新されたメタデータを、前記メモリバッファに格納された前記エンコードされたホストデータとともに、前記メモリダイ上の前記新しい位置に書き込むこととを含む。
【0183】
実施例61では、実施例57~60の主題は、前記鍵値を使用して前記デコードされたメタデータをスクランブル解除してスクランブル解除されたメタデータを生成することが、前記デコードされたメタデータ及び前記鍵値にXOR演算を適用することを含むことを含む。
【0184】
実施例62では、実施例57~61の主題は、前記エンコードされたメタデータが前記デコードに使用されるエンコード情報を含むことを含む。
【0185】
実施例63では、実施例62の主題は、前記エンコード情報が少なくとも1つのパリティビットであることを含む。
【0186】
実施例64では、実施例62~63の主題は、前記エンコードされたメタデータの前記エンコード情報が、前記ホストデータに対応するエンコードされたホストデータに含まれる第二エンコード情報とは異なることを含む。
【0187】
実施例65は、メモリコントローラを含むメモリデバイスであり、前記メモリコントローラは、前記メモリデバイスの内部通信インタフェースを介してメモリダイからエンコードされたメタデータを、コピーバック操作の開始に応答して受信することであって、前記メタデータに対応するホストデータは前記内部通信インタフェースを介して前記メモリダイによって送信されない、前記受信することと、前記エンコードされたメタデータをデコードしてデコードされたメタデータを生成することと、鍵値を使用して、前記デコードされたメタデータをスクランブル解除し、スクランブル解除されたメタデータを生成することであって、前記鍵値は前記デコードされたメタデータの一部として格納される、前記生成することと、前記スクランブル解除されたメタデータを更新して更新されたメタデータを生成することと、前記更新されたメタデータを前記鍵値でスクランブルし、スクランブルされ更新されたメタデータを生成することと、前記スクランブルされ更新されたメタデータをエンコードし、エンコードされ更新されたメタデータを生成することと、前記エンコードされ更新されたメタデータを前記メモリダイに送信することであって、前記エンコードされ更新されたメタデータはエンコードされたホストデータと組み合わされ、前記メモリダイ上の新しい位置に書き込まれる、前記送信することとを含む操作を実行するように構成される。
【0188】
実施例66では、実施例65の主題は、前記スクランブル解除されたメタデータを更新するという前記操作が書き込み温度を更新することを含むことを含む。
【0189】
実施例67では、実施例65~66の主題は、前記スクランブル解除されたメタデータを更新するという前記操作が書き込み時間を更新することを含むことを含む。
【0190】
実施例68では、実施例65~67の主題は前記メモリダイを含み、前記メモリダイはプロセッサを含み、前記プロセッサは、第一メモリ位置に対する内部コピーバックコマンドを識別することと、前記第一メモリ位置を読み出して、前記エンコードされたメタデータ及び前記エンコードされたホストデータを取得することと、前記エンコードされたホストデータを前記メモリダイ上のメモリバッファに格納することと、前記エンコードされたメタデータを前記メモリコントローラに送信することと、前記メモリコントローラから前記エンコードされ更新されたメタデータを受信することと、前記エンコードされ更新されたメタデータを、前記メモリバッファに格納された前記エンコードされたホストデータとともに、前記メモリダイ上の前記新しい位置に書き込むこととを含む操作を実行するように構成される。
【0191】
実施例69では、実施例65~68の主題は、前記鍵値を使用して前記デコードされたメタデータをスクランブル解除し、スクランブル解除されたメタデータを生成するという前記操作が、前記デコードされたメタデータ及び前記鍵値にXOR演算を適用することを含むことを含む。
【0192】
実施例70では、実施例65~69の主題は、前記エンコードされたメタデータが前記デコードに使用されるエンコード情報を含むことを含む。
【0193】
実施例71では、実施例70の主題は、前記エンコード情報が少なくとも1つのパリティビットであることを含む。
【0194】
実施例72では、実施例70~71の主題は、前記エンコードされたメタデータの前記エンコード情報が、前記ホストデータに対応するエンコードされたホストデータに含まれる第二エンコード情報とは異なることを含む。
【0195】
実施例73は、命令を格納する非一時的な機械可読媒体であり、前記命令は、メモリデバイスによって実行されるとき、前記メモリデバイスの内部通信インタフェースを介してメモリダイからエンコードされたメタデータを、コピーバック操作の開始に応答して受信することであって、前記メタデータに対応するホストデータは前記内部通信インタフェースを介して前記メモリダイによって送信されない、前記受信することと、前記エンコードされたメタデータをデコードしてデコードされたメタデータを生成することと、鍵値を使用して、前記デコードされたメタデータをスクランブル解除し、スクランブル解除されたメタデータを生成することであって、前記鍵値は前記デコードされたメタデータの一部として格納される、前記生成することと、前記スクランブル解除されたメタデータを更新して更新されたメタデータを生成することと、前記更新されたメタデータを前記鍵値でスクランブルし、スクランブルされ更新されたメタデータを生成することと、前記スクランブルされ更新されたメタデータをエンコードし、エンコードされ更新されたメタデータを生成することと、前記エンコードされ更新されたメタデータを前記メモリダイに送信することであって、前記エンコードされ更新されたメタデータはエンコードされたホストデータと組み合わされ、前記メモリダイ上の新しい位置に書き込まれる、前記送信することとを含む操作を前記メモリデバイスに実行させる。
【0196】
実施例74では、実施例73の主題は、前記スクランブル解除されたメタデータを更新するという前記操作が書き込み温度を更新することを含むことを含む。
【0197】
実施例75では、実施例73~74の主題は、前記スクランブル解除されたメタデータを更新するという前記操作が書き込み時間を更新することを含むことを含む。
【0198】
実施例76では、実施例73~75の主題は、前記操作が、前記メモリダイにおいて、第一メモリ位置に対する内部コピーバックコマンドを識別することと、前記第一メモリ位置を読み出して、前記エンコードされたメタデータ及び前記エンコードされたホストデータを取得することと、前記エンコードされたホストデータを前記メモリダイ上のメモリバッファに格納することと、前記エンコードされたメタデータを前記メモリコントローラに送信することと、前記メモリコントローラから前記エンコードされ更新されたメタデータを受信することと、前記エンコードされ更新されたメタデータを、前記メモリバッファに格納された前記エンコードされたホストデータとともに、前記メモリダイ上の前記新しい位置に書き込むこととをさらに含むことを含む。
【0199】
実施例77は、命令を含む少なくとも1つの機械可読媒体であり、前記命令は、処理回路によって実行されるとき、実施例57~76のいずれかを実装する操作を前記処理回路に実行させる。
【0200】
実施例78は、実施例57~76のいずれかを実装するための手段を含む装置である。
【0201】
実施例79は、実施例57~76のいずれかを実装するシステムである。
【0202】
実施例80は、実施例57~76のいずれかを実装する方法である。