NANDデバイスは、ページレベルでの書き込みおよび読み出しアドレス指定と、ブロックレベルでの消去アドレス指定とを可能にするが、そのような細かい解決法には幾つかの実際的な問題がある。これらの問題は、フラッシュ変換レイヤ(FTL)テーブルのメンテナンスなど、さまざまなタスクや動作のオーバーヘッドへの対処を含み得る。これらの問題に対処するために、ブロックはデータが書き込まれる単一の論理エンティティに集約された。従来、集約されたブロックは、NANDアレイのあらゆるダイのあらゆるプレーンからのブロックを含んでいた。この配置には、ダイ全体にわたる書き込みコマンドの並列実行など、幾つかの利点がある。
集約ブロックの概念により、追跡するストレージユニットが少なくなり、FTLテーブルと管理への負担が軽減される。これは、使用可能なワーキングメモリ(例えば、システム状態を保持するランダムアクセスメモリ(RAM))が制限されている、マネージドNAND等のリソースが限られたデバイスでは重要な場合がある。ただし、ダイカウントとプレーンカウントが増加すると、集約されたブロック単位ストレージが大きくなる。次のテーブルは、プレーンとダイのカウントが増えるにつれて、集約されたブロック単位のサイズがどのように増加するかを示す。
集約されたブロック単位のサイズが大きくなると、幾つかの問題が発生する。例えば、集約されたブロックをリフレッシュする時間が長くなる。また、読み出し障害処理、データ保持処理、または、非同期電力損失処理では、ある集約ブロック単位から別のブロック単位へのデータの移動時間が長くなる。これらのメンテナンス動作は、これらのブロックに対するNANDの他の動作に影響を与え、デバイスの待ち時間増加につながる場合がある(例えば、デバイスがホストの読み出しまたは書き込みコマンドに応答するのにかかる時間が長くなる)。
NANDデバイスでメンテナンスを行う時間の増加に加えて、ブロックの大きな集合体は、マネージドNANDデバイスで最小の有効なアドレス指定可能なエンティティとして集約ブロック単位が使用される場合、ストレージの無駄につながる場合もある。例えば、デバイスは、ユーザデータまたはメタデータとは別に、データコピー中に使用する一時スペースとしてリフレッシュストレージを確保する等、使用するためにスペースを確保する場合がある。例えば、リフレッシュの場合、データはソースストレージからリフレッシュストレージにコピーされ、ソースストレージが消去され、データがリフレッシュストレージからソースストレージにコピーされる。別の例は、プログラムエラーがある場合に発生する。ここで、デバイスは、確保済みストレージセクションを使用して不良セクションを置き換えることによって、不良ストレージセクション(例えば、集約ブロック単位)を正常なものに置き換える。不良ブロックの交換用に予約された大きな集約ブロック単位は、NANDデバイスの有効なオーバープロビジョニング(OP)を削減する(例えば、使用できる確保済みストレージが少なくても、デバイスのストレージ使用目標を満たしてしまう)。従って、プレーンにブロックが約200しかない場合(例えば、テーブル1のB2X)、1つのブロックの予約は0.5%のOP損失を意味する。OPが少ないと、システムの性能と耐久性に影響する。
可変幅スーパーブロックは、マネージドNANDデバイスで効率的なFTLを可能にしながら、上記の集約ブロック単位の問題に対処できる。上記の集約ブロック単位は、NANDアレイの全てのダイの全てのプレーンに及ぶ。この集約ブロック単位は、時折スーパーブロックと呼ばれてきた。しかしながら、これは、本明細書で使用されるスーパーブロックという語と区別される。本明細書で使用される場合、スーパーブロックは、少なくとも2つのダイに及ぶブロックの組み合わせを指す。これらのダイにわたるブロックは、ダイ内で同じアドレスを有する。このようにして、ダイZのブロックAは、ダイYのブロックAと組み合わされて、スーパーブロックを形成する。この定義により、ある実施形態は、「スーパーブロック」の従来の使用と比較した場合、「サブスーパーブロック」とみなされてよい。従って、集約ブロック単位とは異なり、スーパーブロックはダイ上の一部のプレーンからブロックを除外できる。例えば、それぞれが4つのプレーンを持つ2つのダイを有するNANDアレイでは、集約ブロック単位は、各ダイ(全部で2つ)の各プレーン(全部で4つ)からのブロックを含むが、スーパーブロックは各ダイ(全部で2つ)の全てのプレーンより少ないプレーン(例えば、2つのプレーン)からのブロックを含んでよい。スーパーブロックで使用されるプレーン数が、その幅である。任意の数のプレーンを使用してスーパーブロックを構築してよいが、集約ブロック単位の一部をスーパーブロック幅に選択すると有利な場合がある。例えば、単一ビットを使用して、集約ブロック単位に関して上位スーパーブロックまたは下位スーパーブロックをシグナリングして、集約ブロック単位の半分の幅であるスーパーブロックを規定してよい。この例では、下位スーパーブロックはプレーンインデックスで測定されたプレーンの前半分であってよく、上位スーパーブロックは残りのプレーンである。
NANDデバイスの基本動作ユニットとしてスーパーブロックを使用すると、より効率的なメンテナンス動作(例えば、待ち時間と動作を実行する時間の削減)と効果的なデバイスOPを可能にしながら、集約されたブロック単位に関して上記で説明した効率的なリソース管理が提供される。
スーパーブロックは、可変幅を可能にすることにより、幾つかの最適化の機会を提供する。大きなスーパーブロックは、より高い帯域幅を提供し、その結果、シーケンシャルな読み出しおよび書き込み性能が向上する。ただし、一部のシナリオでは、シリアルアドバンストテクノロジーアタッチメント(SATA:Serial Advanced Technology Attachment)、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe:Peripheral Component Interconnect Express)、不揮発性メモリエクスプレス(NVMe)ホストインタフェース等で、NANDアレイの帯域幅ではなくホストインタフェースによって性能が妨げられる。これらのシナリオでは、ホストからのデバイスのスループットに影響を与えることなく、スーパーブロックの幅が縮小されて、メンテナンス動作時間の短縮、Op損失の削減などが行われる。
これらの性能のトレードオフにより、スーパーブロックの幅は、記憶されるデータの種類に合わせて調整することができる。例えば、FTLテーブルやその他のシステム情報データ等のメタデータは、ユーザデータよりも帯域幅の問題の影響を受けにくいことが多い。従って、より狭い幅のスーパーブロックを使用してメタデータを記憶することができ、全幅(例えば、集約されたブロック単位サイズの)スーパーブロックがユーザデータを記憶する。追加の詳細と実施例を以下に記載する。
図1は、通信インタフェースを介して通信するように構成されたホストデバイス105およびメモリデバイス110を含む環境100の例を示す。ホストデバイス105またはメモリデバイス110は、モノのインターネット(IoT)デバイス(例えば、冷蔵庫もしくは他の電化製品、センサ、モータもしくはアクチュエータ、モバイル通信デバイス、自動車、ドローン等)などの様々な製品150に含まれて、製品150の処理、通信または制御をサポートすることができる。
メモリデバイス110は、メモリコントローラ115と、例えば、幾つかの個々のメモリダイ(例えば、3次元(3D)NANDダイのスタック)を含むメモリアレイ120とを含む。3Dアーキテクチャの半導体メモリ技術では、垂直構造が積み重ねられ、層の数、物理ページ、従って、メモリデバイス(例えば、ストレージデバイス)の密度が増加する。一例では、メモリデバイス110は、ホストデバイス105の離散メモリまたはストレージデバイスコンポーネントであってよい。他の例では、メモリデバイス110は、集積回路(例えば、システムオンチップ(SOC)等)の一部であってよく、ホストデバイス105の1つまたは複数の他のコンポーネントと積み重ねられてよく、または、他の方法で含まれてよい。
シリアルアドバンストテクノロジーアタッチメント(SATA)インタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インタフェース、ユニバーサルシリアルバス(USB)インタフェース、ユニバーサルフラッシュストレージ(UFS)インタフェース、eMMC(登録商標)インタフェース、または、1つまたは複数の他のコネクタもしくはインタフェース等、1つまたは複数の通信インタフェースを使用して、メモリデバイス110と、ホストデバイス105の1つまたは複数の他のコンポーネントとの間でデータを転送することができる。ホストデバイス105は、ホストシステム、電子デバイス、プロセッサ、メモリカードリーダ、または、メモリデバイス110の外部の1つまたは複数の他の電子デバイスを含み得る。ある例では、ホスト105は、図6のマシン600を参照して記載するコンポーネントの一部または全てを有するマシンであってよい。
メモリコントローラ115は、ホスト105から命令を受信することができ、メモリアレイ120と通信して、例えば、メモリアレイ120のメモリセル、プレーン、サブブロック、ブロック、または、ページのうちの1つまたは複数にデータを転送する(例えば、書き込む、または、消去する)またはそこからデータを転送する(例えば、読み取る)ことができる。メモリコントローラ115は、とりわけ、1つまたは複数のコンポーネントまたは集積回路を含む回路またはファームウェアを含み得る。例えば、メモリコントローラ115は、メモリアレイ120全体のアクセスを制御し、ホスト105とメモリデバイス110との間に変換レイヤを提供するように構成された1つまたは複数のメモリ制御ユニット、回路、またはコンポーネントを含み得る。
メモリコントローラ115は、スーパーブロックを使用してフラッシュ変換レイヤ(FTL)を実装してよい。メモリコントローラ115は、スーパーブロック幅を取得するように構成される。メモリコントローラ115は、(例えば、ホスト105から、ブートプロセスから等)幅を受信してよく、または(例えば、アレイ120から、外部記憶装置、リードオンリメモリ等から)幅を読み出してよい。幅は、ダイプレーンの数を指定する。従って、1の幅は1つのダイプレーン、2の幅は2つのダイプレーン等である。
一例では、プレーン数は、パーセンテージとして指定される。ここで、パーセンテージは、ダイのプレーンの総数に対するものである。従って、ダイに4つのプレーンがある場合、25%の幅はプレーン1つである。一例では、パーセンテージは50パーセントである。一例では、プレーン数は、メモリデバイス110のダイ(例えば、アレイ120内)のプレーンよりも少ない。これは、ダイの全てのプレーンに一意のインデックスのブロックを含み、メモリデバイス110の全てのダイに及ぶ完全なスーパーブロックとは対照的である。完全なスーパーブロックは、集約ブロック単位のように動作するが、メモリコントローラ115によって取得された既定の幅に基づいているので、異なる。一例では、ユーザデータは完全なスーパーブロックに記憶され、NANDデバイスのメタデータはスーパーブロックに記憶される。このスーパーブロック幅の混合使用により、予想される、または動的に(例えば、デバイスの動作中に)測定される使用量に応じて、デバイスの帯域幅の柔軟な管理と、待ち時間またはOPの削減とを可能にする。
一例では、スーパーブロックは、スーパーブロックのセットのうちの1つである。ここで、スーパーブロックのセットは、メモリデバイス110の全てのダイにわたるダイのあらゆるプレーンに対して一意のインデックスのブロックを含む。従って、4つのプレーンが与えられると、4つのスーパーブロックがある。第1のスーパーブロックは、各ダイのプレーン1にブロックがあり、第2のスーパーブロックは、各ダイのプレーン2にブロックがあり、第3のスーパーブロックは、各ダイのプレーン3にブロックがあり、第4のスーパーブロックは、各ダイのプレーン4にブロックがある。スーパーブロックのブロックは、ダイ全体で同じダイ内インデックスを有する。例えば、スーパーブロックが、ダイゼロにブロックゼロを有する場合、ダイ1、ダイ2、ダイ3にもブロックゼロを有する。一例では、スーパーブロックは、ブロックのセットで表されるプレーンの位置によってスーパーブロックのセットの他のスーパーブロックと区別される。ここで、プレーンの位置は、ダイ内で各プレーンに番号付けされる(例えば、0~N)ように、インデックスによって測定される。一例では、スーパーブロックのセットに2つのスーパーブロックがあり、プレーンの位置は上位または下位で、上位は上位インデックスを有するプレーンの半分に対応し、下位はダイ上の残りのプレーンに対応する。上述のように、この配置の時間は、スーパーブロックをブロックインデックス(例えば、ブロック1)と単一ビットでアドレス指定して、スーパーブロックを構成するのは上位プレーンまたは下位プレーンかを示すのを可能にすることによって、効率を良くしてよい。ブロックインデックスは複数のプレーンにわたってよいため、後続のプレーンブロック指定は、セット分布によって単一のブロックインデックス指定から導出できる。例えば、プレーン0の第1のブロックは、インデックス0を有してよく、プレーン1の第1のブロックは、インデックス503を有してよい。ここで、スーパーブロックは、低ビット(例えば、ゼロに設定)およびブロックインデックス0で参照することができ、これは、分布によって、例えば、ブロック0および503に変換される。
メモリコントローラ115は、メモリデバイス110の変換テーブル(例えば、テーブル130)にスーパーブロックエントリを作成するように構成される。ここで、スーパーブロックエントリは、アレイ120からのブロックのセットを含む。ブロックのセットは、アレイ120の複数のダイにわたって同じであるブロックインデックスを有する。一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある。従って、所与のスーパーブロックは、ダイの異なるプレーンにあるブロックで構成され、各ブロックはダイに固有のインデックスを有する。同じスーパーブロックは、アレイ120の他の全てのダイに同じインデックスのブロックを有する。上記のように、ブロックのセットのうちの一部のブロックのセットは、1つのブロックインデックスに基づいて、分布または他の関数によって規定できる。従って、エントリは単一のブロックインデックスと幅であってよく、分布は1つのダイ内のブロックのセットを含む残りのブロックインデックスを規定し、ブロックインデックスは残りのダイにも当てはまる。
メモリコントローラ115は、ホスト105等の要求エンティティから要求を受信するように構成される。一例では、要求は書き込みである。一例では、要求は読み出しである。一例では、要求はリフレッシュである。一例では、要求はガベージコレクションである。リフレッシュ要求またはガベージコレクション要求に関して、メモリコントローラ115は、例えば、(例えば、メモリマネージャ125によって行われるような)トリガ、自己診断などを介してメモリコントローラ自体から要求を受信してよい。メモリコントローラ115は、スーパーブロックエントリを使用して実行するように構成される。これを達成するために、メモリコントローラ115は、複数のデータセグメントと共にアレイ120の複数のダイに1つの命令を提供するように構成される。ここで、複数のデータセグメントのうちのあるデータセグメントは、ブロックのセットの、ブロックインデックスとダイのタプルによって指定されたブロックに対応する。この並列性により、アレイ120のスループットが増加し、よって、メモリデバイス110の性能が向上する。次に、メモリコントローラ115は、要求を実行した結果を要求エンティティに返すように構成される。
メモリマネージャ125は、とりわけ、様々なメモリ管理機能に関連する幾つかのコンポーネントまたは集積回路等の回路またはファームウェアを含み得る。本説明の目的のために、例示的なメモリ動作および管理機能をNANDメモリの文脈で記載する。他の形態の不揮発性メモリが類似のメモリ動作または管理機能を有してよいことを当業者は認識されよう。このようなNAND管理機能には、ウェアレベリング(例えば、ガベージコレクションまたはリクラメーション)、エラー検出もしくは訂正、ブロック使用停止、または、1つまたは複数の他のメモリ管理機能が含まれる。メモリマネージャ125は、ホストコマンド(例えば、ホストから受信されたコマンド)をデバイスコマンド(例えば、メモリアレイの動作に関連するコマンド等)に解析またはフォーマットできる、または、アレイコントローラ135またはメモリデバイス110の1つまたは複数の他のコンポーネントに対する(例えば、様々なメモリ管理機能を達成する)デバイスコマンドを生成できる。
メモリマネージャ125は、メモリデバイス110の1つまたは複数のコンポーネントに関連する様々な情報(例えば、メモリアレイまたはメモリコントローラ115に結合された1つまたは複数のメモリセルに関連する様々な情報)を維持するように構成される管理テーブル130のセットを含み得る。例えば、管理テーブル130は、メモリコントローラ115に結合されたメモリセルの1つまたは複数のブロックについて、ブロック経過時間、ブロック消去カウント、エラー履歴、または、1つまたは複数のエラーカウント(例えば、書き込み動作エラーカウント、読み出しビットエラーカウント、読み出し動作エラーカウント、消去エラーカウント等)に関する情報を含み得る。特定の例では、エラーカウントの1つまたは複数で検出されたエラーの数が閾値を超える場合、ビットエラーは訂正不能ビットエラーと呼ぶことができる。管理テーブル130は、とりわけ、訂正可能または訂正不能なビットエラーのカウントを維持することができ、一例では、管理テーブル103は、変換テーブルまたはL2Pマッピングを含んでよい。
アレイコントローラ135は、とりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つまたは複数のメモリセルへのデータの書き込み、メモリセルからのデータの読み出し、またはメモリセルの消去に関連するメモリ動作を制御するように構成された回路またはコンポーネントを含み得る。メモリ動作は、例えば、ホスト105から受信されたホストコマンドに基づいてよく、または、(例えば、ウェアレベリング、エラー検出または訂正などに関連して)メモリマネージャ125によって内部的に生成されてよい。
アレイコントローラ135は、エラー訂正コード(ECC)コンポーネント140を含んでよく、ECCコンポーネント140は、とりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つまたは複数のメモリセルへのデータの書き込み、メモリセルからのデータの読み出しに関連するエラーを検出または訂正するように構成されたECCエンジンまたは他の回路を含み得る。メモリコントローラ115は、ホスト105とメモリデバイス110との間で転送されるデータの整合性を維持しながら、または、(例えば、冗長RAIDストレージ等を使用して)記憶されたデータの整合性を維持しながら、データの様々な操作または記憶に関連するエラー発生(例えば、ビットエラー、動作エラーなど)を能動的に検出および回復するように構成することができ、且つ、障害のあるメモリリソース(例えば、メモリセル、メモリアレイ、ページ、ブロック等)を除去(例えば、使用停止)して、将来のエラーを防ぐことができる。
メモリアレイ120は、例えば、幾つかのデバイス、プレーン、サブブロック、ブロック、またはページに配置された幾つかのメモリセルを含むことができる。一例として、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など)で選択的に動作させることができる。
動作時、データは通常、ページ単位でNANDメモリデバイス110に書き込まれ、またはそこから読み出され、ブロック単位で消去される。しかしながら、1つまたは複数のメモリ動作(例えば、読み出し、書き込み、消去など)は、必要に応じて、より大きいまたはより小さいメモリセルグループで行うことができる。NANDメモリデバイス110のデータ転送サイズは通常、ページと呼ばれ、ホストのデータ転送サイズは通常、セクタと呼ばれる。
1ページのデータは、ユーザデータの幾つかのバイト(例えば、データの幾つかのセクタを含むデータペイロード)とそれに対応するメタデータを含み得るが、ページのサイズは、ユーザデータの記憶に使用されるバイト数のみを指すことが多い。例として、4KBのページサイズを持つデータのページは、4KBのユーザデータ(例えば、512Bのセクタサイズを想定した8セクタ)と、整合性データ(例えば、エラー検出または訂正コードデータ)、アドレスデータ(例えば、論理アドレスデータ等)、またはユーザデータに関連する他のメタデータなど、ユーザデータに対応するメタデータのバイト数(例えば、32B、54B、224Bなど)を含み得る。
異なる種類のメモリセルまたはメモリアレイ120は、異なるページサイズを提供することができる、または、それに関連する異なる量のメタデータを必要とすることがある。例えば、メモリデバイスの種類によってビットエラーレートが異なる可能性があり、これは、データのページの整合性を保証するために必要なメタデータの量が異なることにつながり得る(例えば、ビットエラーレートが高いメモリデバイスでは、ビットエラーレートが低いメモリデバイスよりも多くのバイトのエラー訂正コードデータが必要になる場合がある)。例として、マルチレベルセル(MLC)NANDフラッシュデバイスは、対応するシングルレベルセル(SLC)NANDフラッシュデバイスよりも高いビットエラーレートを持つ可能性がある。そのため、MLCデバイスは、対応するSLCデバイスよりも多くのメタデータバイトをエラーデータに必要とする場合がある。
図2は、スーパーブロックの例を示す。スーパーブロック245とスーパーブロック250は両方とも、4つのダイの全ての4つプレーン全てに及ぶ完全なまたは全幅のスーパーブロックである。プレーンとダイの間のブロックインデックス関係を示すために、各スーパーブロック内の一部のブロックが図2に示されている。例えば、スーパーブロック245は、プレーン225のブロック205と、プレーン230のブロック215とを含む。上記のように、ブロックインデックスはプレーン間に渡って開始しなくてよい。従って、205と215のブロックインデックスは、205と215が両方とも各プレーンの第1のブロックであっても異なる。しかしながら、ブロック205および215は、ダイ235において、ダイ240のブロック210および220と同じインデックスを有する。従って、ブロックのセットは1つのダイ内のインデックスを指定するだけでよく、これらのインデックスは、スーパーブロックを作成するために、全てのダイに適用される。ブロックのインデックス付けをプレーン内で再開する例では、スーパーブロックは単一のインデックスとプレーンのセットで指定されてよい。また、図示されるように、各スーパーブロック245および250は、ダイおよびプレーンの一意の組み合わせが与えられると最大で1つのブロックを有するが、他の例はプレーン毎に複数のブロックを含み得る。
図3は、可変幅スーパーブロックの例であるスーパーブロックA305およびスーパーブロックB310を示す。ここで、各スーパーブロックA305およびスーパーブロックB310は、幅2を有する。スーパーブロックA305は、ダイ0 325およびダイ1 330の下位プレーン315(網掛部分)からのブロックを含む。スーパーブロックB310は、ダイ0 325およびダイ1 330の上位プレーン320からのブロックを含む。図示の例は、半幅(例えば、50%)のスーパーブロックである。
図4は、可変幅スーパーブロックへの書き込みの例を示す。スーパーブロック415(破線内のブロックを含む)は、ブロック固有のデータセグメント425を提供しながら、ダイ0 405およびダイ1 410に単一の(例えば、同じ)書き込みコマンド420を提供することによって書き込まれる。ダイは、書き込み420をパラレルで行う(が、例えば、ダイ0 405内の各ブロックに対する書き込みは、シリアルであってよい)。
図5は、可変幅スーパーブロックアドレス指定の方法500のフローチャートを示す。方法500の動作は、本明細書に記載されているような電子ハードウェア(例えば、回路)上で行われる。
動作505において、スーパーブロック幅が入手される(例えば、取得または受信される)。一例では、幅はプレーン数で指定される。一例では、プレーン数は、パーセンテージとして指定される。一例では、パーセンテージは、50パーセントである。
一例では、プレーン数は、ダイのプレーンより少ない。一例では、完全なスーパーブロックは、ダイの全てのプレーンに一意のインデックスのブロックを含み、デバイスの全てのダイに及ぶ。一例では、ユーザデータは、完全なスーパーブロックに記憶され、デバイスメタデータは、スーパーブロックに記憶される。
一例では、スーパーブロックは、スーパーブロックのセットのうちの1つである。一例では、スーパーブロックのセットは、デバイスの全てのダイにわたってダイのあらゆるプレーンに一意のインデックスのブロックを含む。一例では、スーパーブロックは、ブロックのセットに表されたプレーンの位置によってスーパーブロックのセットの他のスーパーブロックと区別される。一例では、スーパーブロックのセットは、2つのスーパーブロックを有し、プレーンの位置は上位と下位である。ここで、上位は、上位インデックスを有するプレーンの半分に対応し、下位は、ダイ上の残りのプレーンに対応する。
動作510において、スーパーブロックエントリが、変換テーブルに作成される。一例では、スーパーブロックエントリは、デバイスからのブロックのセットを含む。ここで、ブロックのセットは、デバイスの複数のダイにわたって同じであるブロックインデックスを有し、一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある。
動作515において、要求を要求エンティティから受信する。一例では、要求は書き込みである。一例では、要求は読み出しである。一例では、要求はリフレッシュである。一例では、要求はガベージコレクションである。
動作520において、要求は、スーパーブロックエントリを用いて実行されて、結果を生成する。要求を実行するために、デバイスの複数のダイと複数のデータセグメントに対して1つの命令が提供される。ここで、複数のデータセグメントのうちのあるデータセグメントが、ブロックのセットの、ブロックインデックスとダイのタプルによって指定されたブロックに対応する。
動作525において、結果が、要求エンティティに返される。
図6は、本明細書で論じている技術(例えば、方法)の任意の1つまたは複数を行うことができるマシン600の例のブロック図を示す。代替実施形態においては、マシン600は、スタンドアロンデバイスとして動作することができる、または、他のマシンに接続されて(例えば、ネットワークで結ばれて)よい。ネットワーク化された配置では、マシン600は、サーバ-クライアントネットワーク環境で、サーバマシン、クライアントマシン、または、その両方として動作することができる。一例では、マシン600は、ピアツーピア(P2P)(または、他の分散)ネットワーク環境でピアマシンとして働くことができる。マシン600は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、web機器、IoTデバイス、自動車システム、または、そのマシンが行うアクションを指定する命令を(順次、または、他の方法で)実行できる任意のマシンであってよい。さらに、単一のマシンを示したが、「マシン」という語は、クラウドコンピューティング、サービス型ソフトウェア(SaaS)、他のコンピュータクラスタ構成等、個別にまたはまとめて命令のセット(または、複数のセット)を実行して、本明細書に記載の方法の任意の1つまたは複数を行うマシンの任意の集まりを含むとみなされる。
本明細書に記載のように、例は、論理、コンポーネント、デバイス、パッケージ、または、機構を含み得る、または、これらによって動作することができる。回路群は、ハードウェア(例えば、単純な回路、ゲート、論理等)を含む有形のエンティティで実装される回路の集まり(例えば、セット)である。回路群の回路は、経時的に、及び、基礎となるハードウェアの変動によって柔軟であってよい。回路群は、動作時に特定のタスクを単独でまたは協働して行うことができる回路を含む。一例では、回路群のハードウェアは、特定の動作を行うように(例えば、ハードワイヤードで)不変的に設計できる。一例では、回路群のハードウェアは、特定の動作の命令を符号化するために(例えば、不変質量の粒子の磁気的、電気的に移動可能な配置等)物理的に修正されたコンピュータ可読媒体を含む可変に接続された物理的コンポーネント(例えば、実行ユニット、トランジスタ、単純回路等)を含み得る。物理的コンポーネントを接続する時、ハードウェア構成の基礎となる電気的特性は、例えば、絶縁体から導体に、または、その逆に変更される。命令は、参加しているハードウェア(例えば、実行ユニットまたはローディング機構)が、動作時に特定のタスクの一部を行うために可変の接続を介してハードウェアの回路群の回路を作成できるようにする。従って、コンピュータ可読媒体は、デバイスが動作している時、回路群の他のコンポーネントに通信可能に結合される。一例では、複数のコンポーネントのいずれかが、複数の回路群の複数の回路で使用されてよい。例えば、動作時、実行ユニットは、ある時点で第1の回路群の第1の回路で使用でき、別の時点で、第1の回路群の第2の回路によって、または、第2の回路群の第3の回路によって再度、使用できる。
マシン(例えば、コンピュータシステム)600(例えば、ホストデバイス105、メモリデバイス110等)は、ハードウェアプロセッサ602(例えば、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、ハードウェアプロセッサコア、または、メモリコントローラ115等、これらの任意の組み合わせ)、メインメモリ604、および、スタティックメモリ606を含むことができ、これらの一部または全ては、インターリンク(例えば、バス)608を介して互いに通信することができる。マシン600は、さらに、表示ユニット610、英数字入力デバイス612(例えば、キーボード)、および、ユーザインタフェース(UI)ナビゲーションデバイス614(例えば、マウス)を含み得る。一例では、表示ユニット610、入力デバイス612、および、UIナビゲーションデバイス614は、タッチスクリーンディスプレイであってよい。マシン600は、ストレージデバイス(例えば、駆動ユニット)616、信号生成装置618(例えば、スピーカ)、ネットワークインタフェースデバイス620、および、全地球測位システム(GPS)センサ、コンパス、加速度計、もしくは、他のセンサ等、1つまたは複数のセンサ616を追加で含んでよい。マシン600は、1つまたは複数の周辺装置(例えば、プリンタ、カードリーダ等)と通信、または、これらを制御するためのシリアル(例えば、ユニバーサルシリアルバス(USB)、パラレル、または、他の有線もしくは無線(例えば、赤外線(IR)、近距離無線通信(NFC)等)接続等、出力コントローラ628を含み得る。
ストレージデバイス621は、本明細書に記載の技術または機能の任意の1つまたは複数を実現する、または、それらによって利用されるデータ構造または命令624の1つまたは複数のセット(例えば、ソフトウェア)を記憶した機械可読媒体622を含み得る。命令624は、マシン600による命令の実行中、メインメモリ604内、スタティックメモリ606内、または、ハードウェアプロセッサ602内に完全に、または、少なくとも部分的に存在することもできる。一例では、ハードウェアプロセッサ602、メインメモリ604、スタティックメモリ606、または、ストレージデバイス621のうちの1つまたはいずれかの組み合わせによって、機械可読媒体622を構成することができる。
機械可読媒体622は単一の媒体として示されるが、「機械可読媒体」という語は、1つまたは複数の命令624を記憶するように構成された単一の媒体または複数の媒体(例えば、集中もしくは分散データベース、または、関連するキャッシュおよびサーバ)を含み得る。
「機械可読媒体」という語は、マシン600によって実行される命令を記憶、符号化、または、運ぶことができ、マシン600に本開示の技術の任意の1つまたは複数を行わせる、または、このような命令によって使用される、もしくは、このような命令に関連付けられたデータ構造を記憶、符号化、または、運ぶことができる任意の媒体を含み得る。制限ではない機械可読媒体の例は、ソリッドステートメモリ、光媒体、および、磁気媒体を含み得る。一例では、大容量の(massed)機械可読媒体は、不変(例えば、静止)質量を持つ複数の粒子を有する機械可読媒体を含む。従って、大容量の(massed)機械可読媒体は、一時的な伝搬信号ではない。大容量の(massed)機械可読媒体の具体的な例は、半導体メモリデバイス(例えば、電気的プログラム可能リードオンリメモリ(EPROM)、電気的消去可能プログラム可能リードオンリメモリ(EEPROM))およびフラッシュメモリデバイス等の不揮発性メモリ、内部ハードディスクおよびリムーバブルディスク等の磁気ディスク、光磁気ディスク、並びに、CD-ROMディスクおよびDVD-ROMディスクを含み得る。
命令624(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)等)または他のデータは、ストレージデバイス621に記憶され、プロセッサ602が使用するためにメモリ604によってアクセスすることができる。メモリ604(例えば、DRAM)は通常、高速であるが、揮発性であり、従って、「オフ」状態中を含む長期記憶に適したストレージデバイス621(例えば、SSD)とは異なる種類のストレージである。ユーザまたはマシン600によって使用される命令624またはデータは通常、プロセッサ602が使用するためにメモリ604にロードされる。メモリ604がいっぱいになると、ストレージデバイス621から仮想空間を、メモリ604を補うために割り当てることができる。しかしながら、ストレージデバイス621は通常、メモリ604より遅く、書き込み速度は通常、読み出し速度の少なくとも半分より遅いので、仮想メモリの使用は、(メモリ604、例えば、DRAMと比較して)ストレージデバイスの待ち時間が原因で、ユーザ体験を大きく低下させる場合がある。さらに、仮想メモリにストレージデバイス621を使用することにより、ストレージデバイス621の使用寿命が大幅に短くなる場合がある。
仮想メモリと比較すると、仮想メモリの圧縮(例えば、Linux(登録商標)カーネル機能「ZRAM」)は、圧縮されたブロックストレージとしてメモリの一部を使用して、ストレージデバイス621へのページングを回避する。ページングは、このようなデータをストレージデバイス621に書き込むことが必要になるまで、圧縮されたブロックで生じる。仮想メモリの圧縮は、ストレージデバイス621の摩耗を低減しながら、メモリ604の使用可能な大きさを増加させる。
モバイル電子デバイスまたはモバイルストレージに合わせて最適化されたストレージデバイスは従来、MMCソリッドステートストレージデバイス(例えば、マイクロセキュアデジタル(microSD(登録商標))カード等)を含む。MMCデバイスは、ホストデバイスとの幾つかのパラレルインタフェース(例えば、8ビットのパラレルインタフェース)を含み、ホストデバイスとは別個のリムーバブルなコンポーネントであることが多い。対照的に、eMMC(登録商標)デバイスは、回路基板に取り付けられ、ホストデバイスのコンポーネントとみなされ、シリアルATA(登録商標)(シリアルAT(アドバンストテクノロジー)アタッチメントもしくはSATA)ベースのSSDデバイスに匹敵する読みとり速度を有する。しかしながら、仮想デバイスまたは拡張現実デバイスを完全に有効にする、向上しているネットワークスピードを完全に利用できるようにする等、モバイルデバイスの性能に対する需要は伸び続け、この需要に応えて、ストレージデバイスは、パラレルからシリアル通信インタフェースにシフトしてきた。コントローラおよびファームウェアを含むユニバーサルフラッシュストレージ(UFS)デバイスは、専用読み出し/書き込みパスを備えた低電圧差動シグナリング(LVDS)シリアルインタフェースを用いてホストデバイスと通信し、読み出し/書き込み速度をさらに速くする。
命令624は、幾つかの転送プロトコル(例えば、フレームリレイ、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)等)のうちの任意のプロトコルを利用して、ネットワークインタフェースデバイス620を介して伝送媒体を用いて通信ネットワーク626経由で送信または受信することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、携帯電話ネットワーク(例えば、セルラーネットワーク)、従来の電話(POTS:Plain Old Telephone)ネットワーク、及び、ワイヤレスデータネットワーク(例えば、wi-fi(登録商標)として知られる電気電子技術者協会(IEEE)802.11系規格、WiMax(登録商標)として知られるIEEE802.16系規格)、IEEE802.15.4系規格、ピアツーピア(P2P)ネットワーク等を含み得る。一例では、ネットワークインタフェースデバイス620は、通信ネットワーク626に接続するために1つまたは複数の物理的ジャック(例えば、イーサネットジャック、同軸ジャック、または、電話用ジャック)、または、1つまたは複数のアンテナを含み得る。一例では、ネットワークインタフェースデバイス620は、単一入力複数出力(SIMO)、複数入力複数出力(MIMO)、または、複数入力単一出力(MISO)技術の少なくとも1つを用いて無線で通信する複数のアンテナを含み得る。「伝送媒体」という語はマシン600が実行する命令を記憶、符号化、または、運ぶ任意の無形媒体を含むとみなされ、このようなソフトウェアの通信を促進するデジタルもしくはアナログの通信信号、または、他の無形媒体を含む。
追加の実施例
実施例1は、NANDの可変幅スーパーブロックのアドレス指定のためのNANDデバイスである。このNANDデバイスは、NANDアレイとコントローラとを含み、コントローラは、プレーン数で指定されるスーパーブロック幅を取得し、NANDデバイスの変換テーブルにスーパーブロックエントリを作成することであって、スーパーブロックエントリは、NANDアレイからのブロックのセットを含み、ブロックのセットは、NANDアレイの複数のダイにわたって同じであるブロックインデックスを有し、一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある、スーパーブロックエントリを作成し、要求エンティティから要求を受信し、NANDデバイスの複数のダイと複数のデータセグメントとに対して1つの命令を通して、スーパーブロックエントリを用いて、要求を実行して結果を生成することであって、複数のデータセグメントのあるデータセグメントは、ブロックのセットの、ブロックインデックスとダイのタプルによって設定されたブロックに対応する、要求を実行して結果を生成し、且つ、結果を要求エンティティに返す。
実施例2において、実施例1の主題は、プレーン数がパーセンテージとして指定されることを含む。
実施例3において、実施例2の主題は、パーセンテージが50パーセントであることを含む。
実施例4において、実施例1~3の主題は、プレーン数がNANDアレイのダイのプレーンより少ないことを含む。
実施例5において、実施例4の主題は、完全なスーパーブロックが、ダイのあらゆるプレーンに対して一意のインデックスのブロックを含み、NANDアレイの全てのダイに及ぶことを含む。
実施例6において、実施例5の主題は、ユーザデータは、完全なスーパーブロックに記憶され、NANDデバイスメタデータは、スーパーブロックに記憶されることを含む。
実施例7において、実施例4~6の主題は、スーパーブロックは、スーパーブロックのセットのうちの1つであり、スーパーブロックのセットは、NANDアレイの全てのダイにわたるダイのあらゆるプレーンに対して一意のインデックスのブロックを含むことを含む。
実施例8において、実施例7の主題は、スーパーブロックは、ブロックのセットによって表されるプレーンの位置によって、スーパーブロックのセットの他のスーパーブロックと区別されることを含む。
実施例9において、実施例8の主題は、スーパーブロックのセットは、2つのスーパーブロックを有し、プレーンの位置は上位と下位であり、上位は、上位インデックスを有するプレーンの半分に対応し、下位は、ダイの残りのプレーンに対応することを含む。
実施例10において、実施例1~9の主題は、要求が書き込みであることを含む。
実施例11において、実施例1~10の主題は、要求が読み出しであることを含む。
実施例12において、実施例1~11の主題は、要求がリフレッシュであることを含む。
実施例13において、実施例1~12の主題は、要求がガベージコレクションであることを含む。
実施例14は、NANDの可変幅スーパーブロックのアドレス指定の方法である。方法は、プレーン数で指定されたスーパーブロック幅を取得することと、NANDデバイスの変換テーブルにスーパーブロックエントリを作成することであって、スーパーブロックエントリは、NANDデバイスからのブロックのセットを含み、ブロックのセットは、NANDデバイスの複数のダイにわたって同じであるブロックインデックスを有し、一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある、スーパーブロックエントリを作成することと、要求エンティティから要求を受信することと、NANDデバイスの複数のダイと複数のデータセグメントとに1つの命令を提供することによって、スーパーブロックエントリを用いて、要求を実行して結果を生成することであって、複数のデータセグメントのうちのあるデータセグメントは、ブロックのセットの、ブロックインデックスとダイのタプルによって指定されたブロックに対応する、要求を実行して結果を生成することと、結果を要求エンティティに返すこととを含む。
実施例15において、実施例14の主題は、プレーン数がパーセンテージとして指定されることを含む。
実施例16において、実施例15の主題は、パーセンテージが50パーセントであることを含む。
実施例17において、実施例14~16の主題は、プレーン数がNANDデバイスのダイのプレーンより少ないことを含む。
実施例18において、実施例17の主題は、完全なスーパーブロックは、ダイのあらゆるプレーンの一意のインデックスのブロックを含み、NANDデバイスの全てのダイに及ぶことを含む。
実施例19においては、実施例18の主題は、ユーザデータは完全なスーパーブロックに記憶され、NANDデバイスメタデータは、スーパーブロックに記憶されることを含む。
実施例20において、実施例17~19の主題は、スーパーブロックは、スーパーブロックのセットのうちの1つであり、スーパーブロックのセットは、NANDアレイの全てのダイにわたるダイのあらゆるプレーンに対して一意のインデックスのブロックを含むことを含む。
実施例21において、実施例20の主題は、スーパーブロックは、ブロックのセットによって表されるプレーンの位置によって、スーパーブロックのセットの他のスーパーブロックと区別されることを含む。
実施例22において、実施例21の主題は、スーパーブロックのセットは、2つのスーパーブロックを有し、プレーンの位置は上位と下位であり、上位は、上位インデックスを有するプレーンの半分に対応し、下位は、ダイの残りのプレーンに対応することを含む。
実施例23において、実施例14~22の主題は、要求が書き込みであることを含む。
実施例24において、実施例14~23の主題は、要求が読み出しであることを含む。
実施例25において、実施例14~24の主題は、要求がリフレッシュであることを含む。
実施例26において、実施例14~25の主題は、要求がガベージコレクションであることを含む。
実施例27は、マシンによって実行されると、マシンに実施例14~26の任意の方法を行わせる命令を含む少なくとも1つの機械可読媒体である。
実施例28は、実施例14~26の任意の方法を行う手段を含むシステムである。
実施例29は、NANDの可変幅スーパーブロックのアドレス指定のための命令を含む機械可読媒体である。命令は、マシンによって実行されると、プレーン数で指定されたスーパーブロック幅を取得することと、NANDデバイスの変換テーブルにスーパーブロックエントリを作成することであって、スーパーブロックエントリは、NANDデバイスからのブロックのセットを含み、ブロックのセットは、NANDデバイスの複数のダイにわたって同じであるブロックインデックスを有し、一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある、スーパーブロックエントリを作成することと、要求エンティティから要求を受信することと、NANDデバイスの複数のダイと複数のデータセグメントとに1つの命令を提供することによって、スーパーブロックエントリを用いて、要求を実行して結果を生成することであって、複数のデータセグメントのあるデータセグメントは、ブロックのセットの、ブロックインデックスとダイのタプルによって指定されるブロックに対応する、要求を実行して結果を生成することと、結果を要求エンティティに返すこととを含む動作をマシンに行わせる。
実施例30において、実施例29の主題は、プレーン数がパーセンテージとして指定されることを含む。
実施例31において、実施例30の主題は、パーセンテージが50パーセントであることを含む。
実施例32において、実施例29~31の主題は、プレーン数がNANDデバイスのダイのプレーンより少ないことを含む。
実施例33において、実施例32の主題は、完全なスーパーブロックは、ダイのあらゆるプレーンの一意のインデックスのブロックを含み、NANDデバイスの全てのダイに及ぶことを含む。
実施例34において、実施例33の主題は、ユーザデータは、完全なスーパーブロックに記憶され、NANDデバイスメタデータは、スーパーブロックに記憶されることを含む。
実施例35において、実施例32~34の主題は、スーパーブロックは、スーパーブロックのセットのうちの1つであり、スーパーブロックのセットは、NANDデバイスの全てのダイにわたってダイのあらゆるプレーンの一意のインデックスのブロックを含むことを含む。
実施例36において、実施例35の主題は、スーパーブロックは、ブロックのセットによって表されるプレーンの位置によって、スーパーブロックのセットの他のスーパーブロックと区別されることを含む。
実施例37において、実施例36の主題は、スーパーブロックのセットは、2つのスーパーブロックを有し、プレーンの位置は上位と下位であり、上位は、上位インデックスを有するプレーンの半分に対応し、下位は、ダイの残りのプレーンに対応することを含む。
実施例38において、実施例29~37の主題は、要求が書き込みであることを含む。
実施例39において、実施例29~38の主題は、要求が読み出しであることを含む。
実施例40において、実施例29~39の主題は、要求がリフレッシュであることを含む。
実施例41において、実施例29~40の主題は、要求がガベージコレクションであるであることを含む。
実施例42は、NANDの可変幅スーパーブロックのアドレス指定のためのシステムである。システムは、プレーン数で指定されたスーパーブロックの幅を取得する手段と、NANDデバイスの変換テーブルにスーパーブロックエントリを作成する手段であって、スーパーブロックエントリは、NANDデバイスからのブロックのセットを含み、ブロックのセットは、NANDデバイスの複数のダイにわたって同じであるブロックインデックスを有し、一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある、スーパーブロックエントリを作成する手段と、要求エンティティから要求を受信する手段と、NANDデバイスの複数のダイと複数のデータセグメントとに1つの命令を提供することによって、スーパーブロックエントリを用いて要求を実行して結果を生成する手段であって、複数のデータセグメントのあるデータセグメントは、ブロックのセットの、ブロックインデックスとダイのタプルによって指定されるブロックに対応する、要求を実行して結果を生成する手段と、結果を要求エンティティに返す手段とを含む。
実施例43において、実施例42の主題は、プレーン数がパーセンテージとして指定されることを含む。
実施例44において、実施例43の主題は、パーセンテージが50パーセントであることを含む。
実施例45において、実施例42~44の主題は、プレーン数がNANDデバイスのダイのプレーンより少ないことを含む。
実施例46において、実施例45の主題は、完全なスーパーブロックが、ダイのあらゆるプレーンに対して一意のインデックスのブロックを含み、NANDデバイスの全てのダイに及ぶことを含む。
実施例47において、実施例46の主題は、ユーザデータは、完全なスーパーブロックに記憶され、NANDデバイスメタデータは、スーパーブロックに記憶されることを含む。
実施例48において、実施例45~47の主題は、スーパーブロックは、スーパーブロックのセットのうちの1つであり、スーパーブロックのセットは、NANDデバイスの全てのダイにわたってダイのあらゆるプレーンに対して一意のインデックスのブロックを含むことを含む。
実施例49において、実施例48の主題は、スーパーブロックは、ブロックのセットによって表されるプレーンの位置によって、スーパーブロックのセットの他のスーパーブロックと区別されることを含む。
実施例50において、実施例49の主題は、スーパーブロックのセットは、2つのスーパーブロックを有し、プレーンの位置は上位と下位であり、上位は、上位インデックスを有するプレーンの半分に対応し、下位は、ダイの残りのプレーンに対応することを含む。
実施例51において、実施例42~50の主題は、要求が書き込みであることを含む。
実施例52において、実施例42~51の主題は、要求が読み出しであることを含む。
実施例53において、実施例42~52の主題は、要求がリフレッシュであることを含む。
実施例54において、実施例42~53の主題は、要求がガベージコレクションであることを含む。
実施例55は、処理回路によって実行されると、実施例1~54のいずれかを実施する動作を処理回路に行わせる命令を含む少なくとも1つの機械可読媒体である。
実施例56は、実施例1~54のいずれかを実施する手段を含む装置である。
実施例57は、実施例1~54のいずれかを実施するシステムである。
実施例58は、実施例1~54のいずれかを実施する方法である。
上記詳細な説明は、詳細な説明の一部をなす添付の図面を参照することを含む。図面は、発明を実践することができる特定の実施形態を、例として示している。これらの実施形態は、本明細書では「実施例」とも呼ぶ。このような実施例は、図示または記載した要素に加えて、要素を含み得る。しかしながら、本発明者は、図示または記載したこれらの要素のみを備える実施例も企図する。さらに、本発明者は、特定の実施例(または、その1つまたは複数の態様)に関して、または、本明細書に図示または記載した他の実施例(または、その1つまたは複数の態様)に関して、図示または記載したこれらの要素の任意の組み合わせまたは変形を用いた実施例(または、それらの1つまたは複数の態様)も企図する。
この文書では、「a」または「an」という語は、「少なくとも1つ」または「1つまたは複数」の他の例または使用法とは関係なく、特許文書で一般的なように、1つまたは複数を含むように使用される。この文書では、「または」という用語は、別段の記載のない限り、「AまたはB」が、「AであるがBではない」、「BであるがAではない」、および、「AおよびB」を含み得る非排他的な「または」を指して使用される。添付の請求項において、「含む(including)」および「in which」という語は、それぞれ、「含む(comprising)」および「wherein」という語を平易な英語で表す同等の語として使用される。また、以下の請求項では、「含む(including)」および「含む(comprising)」という語はオープンエンドである、すなわち、請求項において、そのような語の後に列挙されている要素に加えて、他の要素を含むシステム、デバイス、物、またはプロセスも、その請求項の範囲内にあると見なされる。さらに、以下の請求項では、「第1」、「第2」、および「第3」などの語は単にラベルとして使用されており、それらの物体に数字上の要件を課すことを意図していない。
様々な実施例では、本明細書に記載されるコンポーネント、コントローラ、プロセッサ、ユニット、エンジン、またはテーブルは、とりわけ、物理デバイスに記憶された物理回路またはファームウェアを含むことができる。本明細書で使用する場合、「プロセッサ」は、マイクロプロセッサ、マイクロコントローラ、グラフィックスプロセッサ、デジタル信号プロセッサ(DSP)、または、プロセッサまたはマルチコアデバイスのグループを含む、その他の種類のプロセッサまたは処理回路などを含むが、これらに限定されない、任意の種類の計算回路を意味する。
この文書で使用される「水平」という語は、任意の時点での基板の実際の向きに関係なく、ウェハまたはダイの下にあるものなど、基板の従来の平面または表面に平行な平面として定義される。「垂直」という用語は、上で定義された水平に対して垂直な方向を指す。「上(on)」、「上(over)」、「下(under)」などの前置詞は、基板の向きに関係なく、基板の上面または露出面にある従来の平面または表面に対して定義される。「上(on)」は、(明確にそうではないことを指示していない限り)ある構造がその構造が載っている別の構造と直接接触していることを意図している。「上(over)」および「下(under)」という語は、構造(または層、特徴など)の相対的な配置を特定することを明確に意図しており、具体的に特定されない限り、特定された構造間の直接接触を明示的に含むが、これに限定されない。同様に、「上(over)」および「下(under)」という用語は、水平方向に限定されず、ある構造が、ある時点で、考察中の構造物の最も外側の部分である場合、このような構造が、水平方向ではなく、基準となる構造に対して垂直に延在していても、基準となる構造の「上(over)」にあるとする。
「ウェハ」および「基板」という語は、本明細書では、集積回路がその上に形成される任意の構造、および集積回路製造の様々な段階のそのような構造を一般的に指して使用される。よって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は、添付の請求項と、請求項が権利を持つ均等物の全範囲とによってのみ規定される。
本開示による、また、本明細書に記載される様々な実施形態は、メモリセルの垂直構造(例えば、メモリセルのNANDストリング)を利用するメモリを含む。本明細書で使用される場合、方向を表す形容詞は、メモリセルが形成される基板の表面に対して解釈される(すなわち、垂直構造は、基板表面から離れる方に延びるものとみなされ、垂直構造の下端は、基板表面に最も近い端部で、垂直構造の上端は、基板表面から最も遠い端部とみなされる)。
本明細書で使用される場合、水平、垂直、法線、平行、直交などの方向を表す形容詞は、相対的な向きを指すことができ、特に明記しない限り、特定の幾何学的特性に厳密に従うことを必要としない。例えば、本明細書で使用される場合、垂直構造は、基板の表面に対して厳密に垂直である必要はなく、代わりに、基板の表面に対して概ね垂直であってよく、基板の表面と鋭角を形成することができる(例えば、60~120度など)。
本明細書に記載するある実施形態においては、異なるドーピング構成をソース側選択ゲート(SGS)、制御ゲート(CG)、およびドレイン側選択ゲート(SGD)に適用することができ、これらは、それぞれ、この例では、ポリシリコンから形成できる、または、少なくともポリシリコンを含み得る。結果として、これらの層(例えば、ポリシリコン等)は、エッチング溶液に曝されたときに異なるエッチング速度を有することができる。例えば、3D半導体デバイスでモノリシックピラーを形成するプロセスにおいては、SGSとCGは凹部を形成できるが、SGDは、凹部の形成が少ない、または、凹部は形成されないままである。従って、これらのドーピング構成は、エッチング溶液(例えば、水酸化テトラメチルアンモニウム(TMCH))を使用することにより、3D半導体デバイスの別個の層(例えば、SGS、CG、及びSGD)への選択的エッチングを可能にし得る。
本明細書で使用される場合、メモリセルの動作は、メモリセルからの読み出し、メモリセルへの書き込み、またはメモリセルの消去を含む。メモリセルを意図した状態にする動作は、本明細書では「プログラミング」と呼ばれ、メモリセルへの書き込みまたはメモリセルからの消去の両方を含むことができる(例えば、メモリセルを消去状態にプログラムすることができる)。
本開示の1つまたは複数の実施形態によると、メモリデバイスの内部または外部にあるメモリコントローラ(例えば、プロセッサ、コントローラ、ファームウェア等)は、摩耗サイクルの数、または摩耗状態(例えば、摩耗サイクルの記録、摩耗発生時のメモリデバイスの動作のカウント、摩耗が始まった時のメモリデバイスの動作の追跡、摩耗状態に対応するメモリデバイスの特性の評価など)を判断(例えば、選択、設定、調整、計算、変更、クリア、通信、適応、導出、定義、利用、修正、適用など)できる。
本開示の1つまたは複数の実施形態によれば、メモリアクセスデバイスは、各メモリ動作と共に摩耗サイクル情報をメモリデバイスに提供するように構成することができる。メモリデバイス制御回路(例えば、制御ロジック)は、摩耗サイクル情報に対応するメモリデバイスの性能変化を補償するようにプログラムすることができる。メモリデバイスは、摩耗サイクル情報を受信し、摩耗サイクル情報に応答して1つまたは複数の動作パラメータ(例えば、値、特性)を決定することができる。
ある要素が他の要素の「上(on)」、「に接続」、または「と結合」とされる場合、ある要素は他の要素の直接上に、他の要素に接続、もしくは、他の要素と結合してよく、または、介在要素が存在してよいことは、理解されたい。対照的に、ある要素が他の要素「の直接上」、「に直接接続」、または「に直接結合」とされる場合、介在する要素またはレイヤは存在しない。2つの要素がそれらを接続する線と共に図面に示されている場合、別段の記載が無い限り、2つの要素は、接続されるか、または直接結合されてよい。
本明細書に記載の方法の例は、少なくとも部分的にマシンまたはコンピュータで実施できる。一部の例は、上記の例で記載したように方法を行うために電子デバイスを構成するように動作可能な命令で符号化されたコンピュータ可読媒体または機械可読媒体を含み得る。このような方法の実施態様は、マイクロコード、アセンブリ言語コード、高水準言語コード等のコードを含み得る。このようなコードは、様々な方法を行うためのコンピュータ可読命令を含み得る。コードは、コンピュータプログラム製品の一部を形成することができる。さらに、コードは、実行中または他の時間に、1つまたは複数の揮発性または不揮発性の有形コンピュータ可読媒体上に有形に記憶することができる。これらの有形コンピュータ可読媒体の例は、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスクおよびデジタルビデオディスク)、磁気カセット、メモリカードもしくはスティック、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、ソリッドステートデバイス(SSD)、ユニバーサルフラッシュストレージ(UFS)デバイス、組み込みMMC(eMMC)デバイス等を含み得るが、これらに限らない。
上記記載は、限定的ではなく、例示的であることを意図している。例えば、上記の例(または、その1つまたは複数の態様)は、互いに組み合わせて使用することができる。上記の記載を検討すると、当業者等によって、他の実施形態を使用することができる。それは、請求項の範囲または意味を解釈または制限するために使用されないことを理解して提出される。また、上記の詳細な説明では、様々な特徴をグループ化して、開示を簡素化することができる。これは、特許を請求していない開示の特徴が請求項に不可欠であると意図するものとして解釈されるべきではない。むしろ、発明の主題は、特定の開示の実施形態の全ての特徴より少なくてよい。従って、以下の請求項は、詳細な説明に組み込まれ、各請求項は、それ自体で別個の実施形態として独立しており、そのような実施形態は、様々な組み合わせまたは置き換えで、互いに組み合わせることができると考えられる。本発明の範囲は、添付の請求項と、そのような請求項が権利を有する同等物の全範囲とを参照して、決定されるべきである。
本発明の装置は、NANDアレイへのインタフェースと、処理回路とを備え、前記処理回路は、データ構造内にスーパーブロックエントリを作成することにより、NANDダイプレーン内に規定されたスーパーブロック幅に基づくスーパーブロックを作成することであって、前記スーパーブロックエントリは前記スーパーブロック幅及びブロックインデックスを含み、前記スーパーブロック幅及び前記ブロックインデックスは、共に、前記スーパーブロック内にある、前記NANDアレイからのブロックのセットを定義する、ことと、要求エンティティから要求を受信することと、前記スーパーブロックのブロックの前記セットを取得するように前記スーパーブロックエントリを用いて、前記スーパーブロック上で前記要求を実行して結果を生成することであって、前記要求は、前記NANDアレイへの前記インタフェースを介し前記NANDアレイの複数のダイへの単一の命令によって実行される、ことと、前記要求エンティティに前記結果を通知することと、を行うように構成される。本発明のシステムは、前記装置及び前記NANDアレイを備える。