(57)【要約】  ここに開示するアーキテクチャーは、アドレスマッピングを使用して、ホストインターフェイスにおけるブロックアドレスを不揮発性メモリ（ＮＶＭ）装置の内部ブロックアドレスへマップする。ブロックアドレスは、そのブロックアドレスで識別される同時アドレス可能なユニット（ＣＡＵ）を選択するための内部チップセレクトへとマップされる。ここに開示するアーキテクチャーは、読み取り、書き込み、消去及び状態取得オペレーションのための一般的なＮＶＭコマンドをサポートする。又、このアーキテクチャーは、複数のＣＡＵアーキテクチャーをレバレッジする読み取り及び書き込みオペレーションをサポートするための拡張コマンドセットもサポートする。【選択図】図２Ａ
2012513647.tif 000002
【特許請求の範囲】
【請求項１】
ブロックアドレスを受け取るように動作できるインターフェイスと、
複数のブロックを各々含む複数の同時アクセスユニットと、
前記インターフェイス及び複数の同時アドレス可能なユニットに結合されたプロセッサであって、ブロックアドレスを、そのブロックアドレスで識別された前記複数の同時アドレス可能なユニットの１つにおけるブロックへとマッピングするように動作できるプロセッサと、
を備えた不揮発性メモリ（ＮＶＭ）パッケージ。
【請求項２】
ホストインターフェイスを更に備え、このホストインターフェイスは、これに結合されたホストプロセッサからホストチップイネーブル信号を受け取り、前記プロセッサは、このホストチップイネーブル信号を、１つの前記同時アドレス可能なユニットの内部チップイネーブル信号へとマッピングするように動作でき、この内部チップイネーブル信号は、前記同時アドレス可能なユニットをアクチベートするためのものである、請求項１に記載のパッケージ。
【請求項３】
前記マッピングは、ラン及びストライドパラメータにより定義されたマップを使用して遂行され、前記ランパラメータは、前記ホストチップイネーブル信号を使用してアクセスできる同時アドレス可能なユニットの数であり、前記ストライドパラメータは、同時アドレス可能なユニット内のオペレーションコマンドに対するブロックの数である、請求項２に記載のパッケージ。
【請求項４】
前記プロセッサは、読み取り又は書き込みオペレーションのためのコマンドを前記インターフェイスから受け取り、そのオペレーションは、１つ以上の同時アドレス可能なユニットにおいて同時アトミックトランザクションを遂行する読み取り又は書き込みコマンドのシーケンスである、請求項１に記載のパッケージ。
【請求項５】
前記同時アドレス可能なユニットから読み取られ又はそこに書き込まれるデータの量は、前記同時アドレス可能なユニットに対するストライドパラメータＮと、ページサイズに等しいバイト数＋メタデータを考慮したページに関連したバイト数と、の積に等しく、但し、Ｎは、読み取り又は書き込みされるべきページ数を表す正の整数であり、そしてストライドは、前記同時アドレス可能なユニット内のオペレーションコマンドに対するブロック数である、請求項４に記載のパッケージ。
【請求項６】
同時アドレス可能なユニットから読み取られ又はそこに書き込まれるデータのブロックにエラー修正を適用するためのエラー修正エンジンを更に備えた、請求項１に記載のパッケージ。
【請求項７】
１つ以上の同時アドレス可能なユニットにエラー検出及び修正エンジンが含まれる、請求項６に記載のパッケージ。
【請求項８】
前記同時アドレス可能なユニットに対するスループットを管理するためのパイプライン管理エンジンを更に備えた、請求項１に記載のパッケージ。
【請求項９】
前記ＮＶＭパッケージは、管理型ＮＡＮＤである、請求項１に記載のパッケージ。
【請求項１０】
前記プロセッサは、２つ以上の同時アドレス可能なユニットにおいて同時読み取り又は書き込みオペレーションを遂行する、請求項１に記載のパッケージ。
【請求項１１】
ホストプロセッサに結合された不揮発性メモリ（ＮＶＭ）パッケージにより遂行される方法において、
ホストプロセッサからブロックアドレスを受け取る段階と、
ブロックアドレスを、そのブロックアドレスで識別された複数の同時アドレス可能なユニットの１つにおけるブロックへとマッピングする段階と、
を備えた方法。
【請求項１２】
前記ホストプロセッサからホストチップイネーブル信号を受け取る段階と、
このホストチップイネーブル信号を、１つの前記同時アドレス可能なユニットの内部チップイネーブル信号へとマッピングする段階と、
その内部チップイネーブル信号をアクチベートする段階と、
を更に備えた請求項１１に記載の方法。
【請求項１３】
前記マッピングは、ラン及びストライドパラメータにより定義されたマップを使用して遂行され、前記ランパラメータは、前記ホストチップイネーブル信号を使用してアクセスできる同時アドレス可能なユニットの数であり、前記ストライドパラメータは、同時アドレス可能なユニット内のオペレーションコマンドに対するブロック数である、請求項１２に記載の方法。
【請求項１４】
読み取り又は書き込みオペレーションのためのコマンドを受け取る段階と、
そのコマンドに基づき１つ以上の同時アドレス可能なユニットにおいて１つ以上の同時アトミックトランザクションを遂行する段階と、
を更に備えた請求項１１に記載の方法。
【請求項１５】
前記同時アドレス可能なユニットから読み取られ又はそこに書き込まれるデータの量は、前記同時アドレス可能なユニットに対するストライドパラメータＮと、ページサイズに等しいバイト数＋メタデータを考慮したページに関連したバイト数と、の積に等しく、但し、Ｎは、読み取り又は書き込みされるべきページ数を表す正の整数であり、そしてストライドは、前記同時アドレス可能なユニット内のオペレーションコマンドに対するブロック数である、請求項１４に記載の方法。
【請求項１６】
同時アドレス可能なユニットから読み取られ又はそこに書き込まれるデータのブロックにエラー修正を適用する段階を更に備えた、請求項１１に記載の方法。
【請求項１７】
ブロックアドレスを受け取るように動作できるインターフェイスであって、このインターフェイスに結合されたホストプロセッサから第１のチップイネーブル信号も受け取るインターフェイスと、
複数のブロックを各々含む複数の同時アクセスユニットと、
前記インターフェイス及び複数の同時アドレス可能なユニットに結合されたプロセッサであって、前記ホストプロセッサからのチップイネーブル信号に応答して、第１の内部チップセレクトイネーブル信号を使用して第１の同時アドレス可能なユニットをアクチベートし、第２の内部チップセレクトイネーブル信号を使用して第２の同時アドレス可能なユニットをアクチベートし、ブロックアドレスを、前記アクチベートされた第１及び第２の同時アドレス可能なユニットにおけるブロックへマッピングし、そして前記アクチベートされた第１及び第２の同時アドレス可能なユニットにおけるブロックに対して読み取り又は書き込みオペレーションを同時に遂行するための一連のコマンドを実行するプロセッサと、
を備えた不揮発性メモリ（ＮＶＭ）パッケージ。
【請求項１８】
前記ＮＶＭパッケージは、管理型ＮＡＮＤパッケージである、請求項１７に記載のパッケージ。
【請求項１９】
不揮発性メモリ（ＮＶＭ）パッケージに記憶されたデータに対して動作するシステムにおいて、
複数の同時アドレス可能なユニットを含むＮＶＭパッケージにパラメータ要求を送信しそしてランパラメータ及びストライドパラメータを受信するためのインターフェイスであって、前記ランパラメータは、ホストプロセッサにより与えられる単一のチップイネーブル信号を使用してアクセスできるＮＶＭパッケージにおける同時アドレス可能なユニットの数を指示し、そして前記ストライドパラメータは、同時アドレス可能なユニット内のオペレーションコマンドに対するブロック数を指示するものであるインターフェイスと、
前記インターフェイスに結合されたプロセッサであって、１つ以上の同時アドレス可能なユニットにおいてアトミックトランザクションを同時に遂行するための一連のコマンドを前記ＮＶＭパッケージへ送信するように動作でき、その一連のコマンドは、前記ラン及びストライドパラメータに基づいて前記ホストプロセッサにより発生されるアドレスを含むものであるプロセッサと、
を備えたシステム。
【請求項２０】
前記プロセッサは、前記ＮＶＭパッケージへ書き込みコマンドと共にデータを送信するように動作でき、データのサイズは、Ｎと、ストライドと、ページサイズに等しいバイト数＋メタデータを考慮した各ページサイズに関連したバイト数と、の積に等しく、但し、Ｎは、書き込まれるべきページ数を表す正の整数である、請求項１９に記載のシステム。
【請求項２１】
前記プロセッサは、前記ＮＶＭパッケージへ読み取りコマンドを送信するように動作でき、読み取られるべきデータのサイズは、Ｎと、ストライドと、ページサイズに等しいバイト数＋メタデータを考慮した各ページサイズに関連したバイト数と、の積に等しく、但し、Ｎは、読み取られるべきページ数を表す正の整数である、請求項１９に記載のシステム。
【請求項２２】
不揮発性メモリ（ＮＶＭ）パッケージに結合されたホストプロセッサにより遂行される方法において、
複数の同時アドレス可能なユニットを含むＮＶＭパッケージにパラメータ要求を送信する段階と、
前記要求に応答して、ランパラメータ及びストライドパラメータを受け取る段階であって、前記ランパラメータは、前記ホストプロセッサにより与えられる単一のチップイネーブル信号を使用してアクセスできるＮＶＭパッケージにおける同時アドレス可能なユニットの数であり、前記ストライドパラメータは、同時アドレス可能なユニット内のオペレーションコマンドに対するブロックの数である段階と、
１つ以上の同時アドレス可能なユニットにおいてアトミックトランザクションを同時に遂行するための一連のコマンドを前記ＮＶＭパッケージへ送信する段階であって、その一連のコマンドは、前記ラン及びストライドパラメータに基づいて前記ホストプロセッサにより発生されるアドレスを含むものである段階と、
を備えた方法。
【請求項２３】
前記ＮＶＭパッケージへ書き込みコマンドと共にデータを送信する段階を更に備え、そのデータのサイズは、Ｎと、ストライドと、ページサイズに等しいバイト数＋メタデータを考慮した各ページサイズに関連したバイト数と、の積に等しく、但し、Ｎは、書き込まれるべきページ数を表す正の整数である、請求項２２に記載の方法。
【請求項２４】
前記ＮＶＭパッケージへ読み取りコマンドを送信する段階を更に備え、読み取られるべきデータのサイズは、Ｎと、ストライドと、ページサイズに等しいバイト数＋メタデータを考慮した各ページサイズに関連したバイト数と、の積に等しく、但し、Ｎは、読み取られるべきページ数を表す正の整数である、請求項２２に記載の方法。
【請求項２５】
埋め込み型の不揮発性メモリ装置により遂行される方法において、
不揮発性メモリにおけるオペレーションを要求するホストコントローラからのコマンドを受け取る段階と、
前記コマンドを不揮発性メモリ装置のキューに記憶する段階と、
トリガー事象に応答して前記キュー内で前記コマンドを再順序付けする段階と、
を備えた方法。
【請求項２６】
埋め込み型の不揮発性メモリ装置により遂行される方法において、
前記不揮発性メモリにおける読み取りオペレーションを要求するホストコントローラからの読み取りコマンドを受け取る段階と、
前記読み取りコマンドを第１のキューに記憶する段階と、
前記不揮発性メモリにおけるプログラムオペレーションを要求する前記ホストコントローラからのプログラムコマンドを受け取る段階と、
前記プログラムコマンドを第２のキューに記憶する段階と、
前記不揮発性メモリにおける消去オペレーションを要求する前記ホストコントローラからの消去コマンドを受け取る段階と、
前記消去コマンドを第３のキューに記憶する段階と、
前記読み取り、プログラム又は消去コマンドの１つ以上をそれらの各キューにおいて再順序付けする段階と、
を備えた方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、管理型不揮発性メモリのアクセス及び管理に係る。
【０００２】
関連出願：本願は、２００８年１２月２３日に出願された米国プロビジョナル特許出願第６１／１４０，４３６号、及び２００９年１１月６日に出願された米国特許出願第１２／６１４，３６９号の優先権の利益を主張するもので、これらの各出願は、参考としてここにそのまま援用される。
【背景技術】
【０００３】
フラッシュメモリは、電気的に消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）の一形式である。フラッシュメモリは、不揮発性であり、比較的高密度であるから、ハンドヘルドコンピュータ、移動電話、デジタルカメラ、ポータブル音楽プレーヤにおいて、又、他の記憶手段（例えば、磁気ディスク）では不適切な他の多数の装置において、ファイル及び他の持続性オブジェクトを記憶するのに使用される。
【０００４】
ＮＡＮＤは、ブロック装置、例えば、ハードディスク又はメモリカードのようにアクセスできるフラッシュメモリの一形式である。典型的なブロックサイズは、１６ＫＢのブロックサイズに対して各々５１２バイトの３２ページである。各ブロックは、多数のページで構成される。典型的なページサイズは、５１２バイトである。各ページには、エラー検出及び修正チェック和を記憶するのに使用される多数のバイト（例えば、１２−１６バイト）が関連している。読み取り及びプログラミングは、ページベースで行われ、消去は、ブロックベースで行われ、そしてブロック内のデータは、順次に書き込むことしかできない。ＮＡＮＤは、通常の装置動作中にフリップすることのあるビットを補償するために、エラー修正コード（ＥＣＣ）に依存している。消去又はプログラム動作を遂行するときには、ＮＡＮＤ装置は、プログラム又は消去に失敗するブロックを検出し、それらブロックを不良ブロックマップにおいて不良とマークすることができる。データは、異なる良好ブロックに書き込むことができ、不良ブロックマップが更新される。
【０００５】
管理型ＮＡＮＤ装置は、ＮＡＮＤメモリのエラー修正・検出及びメモリ管理機能を取り扱うために生のＮＡＮＤをメモリコントローラに結合する。管理型ＮＡＮＤは、マルチメディアメモリカード（ＭＭＣ）及びセキュアデジタル（ＳＤ）カードのような標準型プロセッサインターフェイスをサポートするボールグリッドアレイ（ＢＧＡ）パッケージ又は他の集積回路（ＩＣ）パッケージにおいて商業的に入手できる。管理型ＮＡＮＤ装置は、１つ以上のチップセレクト信号を使用してアクセスできる多数のＮＡＮＤ装置又はダイを含むことができる。チップセレクトは、同じバスに接続された多数のチップの中から１つのチップを選択するためにデジタル電子装置に使用される制御ラインである。チップセレクトは、典型的に、ほとんどのＩＣパッケージ上のコマンドピンであり、装置の入力ピンをその装置の内部回路に接続する。チップセレクトピンがインアクティブな状態に保持されると、チップ又は装置は、その入力ピンの状態の変化を無視する。チップセレクトピンがアクティブな状態に保持されると、チップ又は装置は、バス上の唯一のチップであるかのように応答する。
【０００６】
オープンＮＡＮＤフラッシュインターフェイスワーキンググループ（ＯＮＦＩ）は、異なるベンダーから適合するＮＡＮＤ装置間の相互運用を行えるようにするためのＮＡＮＤフラッシュチップ用の標準的低レベルインターフェイスを開発した。ＯＮＦＩ仕様書バージョン１．０は、ＴＳＯＰ−４８、ＷＳＯＰ−４８、ＬＧＡ−５２及びＢＧＡ−６３パッケージにおけるＮＡＮＤフラッシュのための標準物理インターフェイス（ピンアウト）、ＮＡＮＤフラッシュチップを読み取り、書き込み及び消去するための標準コマンドセット、及び自己識別のためのメカニズム、を明示する。ＯＮＦＩ仕様書バージョン２．０は、奇数チップセレクト（チップイネーブル又は“ＣＥ”とも称される）がチャンネル１に接続されそして偶数ＣＥがチャンネル２に接続された二重チャンネルインターフェイスをサポートする。この物理的インターフェイスは、パッケージ全体でＣＥが８以下でなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＯＮＦＩ仕様は、相互運用を行えるようにするが、現在のＯＮＦＩ仕様は、管理型ＮＡＮＤ解決策の利点を完全に取り入れるものではない。
【課題を解決するための手段】
【０００８】
ここに開示するアーキテクチャーは、アドレスマッピングを使用して、ホストインターフェイスにおけるブロックアドレスを不揮発性メモリ（ＮＶＭ）装置の内部ブロックアドレスへマップする。ブロックアドレスは、ブロックアドレスにより識別される同時アドレス可能なユニット（ＣＡＵ）を選択するための内部チップセレクトへマップされる。ここに開示するアーキテクチャーは、読み取り、書き込み、消去及び状態取得オペレーションのための一般的不揮発性メモリコマンドをサポートする。又、このアーキテクチャーは、複数のＣＡＵアーキテクチャーをレバレッジする読み取り及び書き込みオペレーションをサポートするための拡張コマンドセットもサポートする。
【図面の簡単な説明】
【０００９】
【図１】管理型ＮＶＭパッケージに結合されたホストプロセッサを含む規範的メモリシステムのブロック図である。
【図２Ａ】図２Ａのアドレスマッピングを具現化する管理型ＮＶＭパッケージのための規範的アドレスマッピングを示す。
【図２Ｂ】図１の規範的なＮＶＭパッケージのブロック図である。
【図２Ｃ】図１の管理型ＮＶＭパッケージのための規範的なアドレスマッピングスキームを示す。
【図２Ｄ】不良ブロック置き換えを含む図２Ｃのアドレスマッピングスキームを示す。
【図３】「アドレスを伴う読み取り」コマンドを使用する規範的オペレーションのフローチャートである。
【図４】「アドレスを伴う書き込み」コマンドを使用する規範的オペレーションのフローチャートである。
【図５】「アドレスを伴う消去」コマンドを使用する規範的オペレーションのフローチャートである。
【図６Ａ】StrideReadコマンドを使用する規範的オペレーションのフローチャートである。
【図６Ｂ】StrideReadコマンドを使用する規範的オペレーションのフローチャートである。
【図７】StrideWriteコマンドを使用する規範的オペレーションのフローチャートである。
【図８】図１のＮＶＭパッケージにおけるコマンドキューの使用を示す。
【図９】図８に示すコマンドキューにおいてコマンドを再順序付けするための規範的プロセスのフローチャートである。
【発明を実施するための形態】
【００１０】
メモリシステムの概略
図１は、管理型ＮＶＭパッケージ１０４（例えば、管理型ＮＡＮＤパッケージ）に結合されたホストプロセッサ１０２を含む規範的メモリシステム１００のブロック図である。ＮＶＭパッケージ１０４は、複数のＮＶＭ装置１０８（例えば、複数の生のＮＡＮＤ装置）を含むＢＧＡパッケージ又は他のＩＣパッケージである。メモリシステム１００は、これに限定されないが、ハンドヘルドコンピュータ、移動電話、デジタルカメラ、ポータブル音楽プレーヤ、玩具、サムドライブ、ｅ−メール装置、及び不揮発性メモリが望まれ又は必要とされる他の装置、を含む種々の装置に使用することができる。ここで使用する「生のＮＶＭ(raw NVM)」とは、外部ホストプロセッサによって管理されるメモリ装置又はパッケージであり、そして「管理型ＮＶＭ(managed NVM)」とは、少なくとも１つの内部メモリ管理機能、例えば、エラー修正、ウェアレベリング、不良ブロック管理、等を含むメモリ装置又はパッケージである。
【００１１】
ある具現化において、ＮＶＭパッケージ１０４は、内部チップセレクト信号を使用して内部チャンネルを経てＮＶＭ装置１０８にアクセスし管理するためのコントローラ１０６を含むことができる。内部チャンネルは、コントローラ１０６とＮＶＭ装置１０８との間のデータ経路である。コントローラ１０６は、メモリ管理機能（例えば、ウェアレベリング、不良ブロック管理）を遂行することができ、そしてデータエラー（例えば、フリップしたビット）を検出して修正するためのエラー修正（ＥＣＣ）エンジン１１０を含むことができる。ある具現化において、ＥＣＣエンジン１０は、コントローラ１０６におけるハードウェアコンポーネントとして、又はコントローラ１０６により実行されるソフトウェアコンポーネントとして具現化することができる。ある具現化では、ＥＣＣエンジン１１０は、ＮＶＭ装置１０８に配置することができる。データスループットを効率的に管理するパイプライン管理モジュール１１２を含むことができる。
【００１２】
ある具現化では、ホストプロセッサ１０２及びＮＶＭパッケージ１０４は、ホスト（ホストチャンネル）に見える通信チャンネルを経て情報（例えば、制御コマンド、アドレス、データ）を通信することができる。ホストチャンネルは、標準インターフェイス、例えば、生のＮＡＮＤインターフェイス、或いは二重チャンネルインターフェイス、例えば、ＯＮＦＩ仕様書バージョン２．０に記載されたもの、をサポートすることができる。又、ホストプロセッサ１０２は、ホストチップイネーブル（ＣＥ）信号を与えることもできる。ホストＣＥは、ホストチャンネルを選択するためにホストプロセッサ１０２に見える。
【００１３】
規範的なメモリシステム１００では、ＮＶＭパッケージ１０４は、ＣＥハイディングをサポートする。ＣＥハイディングは、ＮＶＭパッケージ１０４における内部チャンネルごとに単一のホストＣＥを使用できるようにし、従って、ＮＶＭパッケージ１０４のインターフェイスをサポートするのに必要な信号の数を減少することができる。図２Ａを参照して述べるように、アドレススペース及びアドレスマッピングを使用して、内部チャンネル及びＮＶＭ装置１０８へメモリアクセスをマップすることができる。個々のＮＶＭ装置１０８は、コントローラ１０６により発生された内部ＣＥ信号を使用してイネーブルすることができる。
【００１４】
規範的なアドレスマッピング
図２Ａは、管理型ＮＶＭのための規範的アドレスマッピングを示す。コントローラ１０６は、ホストチャンネルを経て受け取ったブロックアドレスを、ＮＶＭ装置１０８の内部の特定ブロックアドレスへマップする。アドレスマッピングを容易にするために、コントローラ１０６は、これに限定されないが、ダイサイズ、ブロックサイズ、ページサイズ、メタデータサイズ（ＭＤＳ）、ｒｕｎ（ラン）、及びｓｔｒｉｄｅ（ストライド）を含む幾何学的パラメータをホストプロセッサ１０２に与える。
【００１５】
ｒｕｎ及びｓｔｒｉｄｅパラメータは、ホストプロセッサ１０２がページアドレスの効率的なシーケンスを発生できるようにする。ｒｕｎパラメータは、ホストＣＥ及びアドレスマッピングを使用して同時にアドレスできるＮＶＭパッケージ１０４内のＣＡＵの数を識別する。ＣＡＵは、別のＣＡＵと同時に書き込み又は読み取りできる単一のホストチャンネルからアクセス可能なＮＶＭ装置１０８の一部分である。又、ＣＡＵは、ＮＶＭ装置１０８全体でもよい。ｓｔｒｉｄｅパラメータは、ＣＡＵ内のベンダー特有オペレーションコマンドに対するブロックの数を識別する。
【００１６】
図２Ａに示された規範的なブロックマップにおいて、ＮＶＭパッケージ１０４は、２のｒｕｎ（即ち、２つのＣＡＵ）及び４のｓｔｒｉｄｅ（即ち、ＣＡＵ当たり４つのブロック）を有し、ホストプロセッサ１０２が８つのブロック：ｂ０、ｂ１、ｂ２、ｂ３、ｂ４、ｂ５、ｂ６、ｂ７のｓｌｉｃｅを発生できるようにする。従って、ｓｌｉｃｅは、総計がｒｕｎにｓｔｒｉｄｅを乗算したものであるブロックのセットである。望ましいアプリケーション又はメモリアーキテクチャーに基づいて異なるｒｕｎ及びｓｔｒｉｄｅ値を有するＮＶＭパッケージを製造することができる。図２Ａ及び２Ｂでは、異なるＣＡＵに属するブロックを目で見て区別するためにブロックの識別子がイタリック体にされていることに注意されたい。
【００１７】
ＭＤＳパラメータは、メタデータを考慮して各ページサイズに関連したバイトの数を識別する。ページサイズは、不揮発性メモリのページのデータエリアである。完全ページサイズ（ＰＰＳ）は、ページサイズ＋ＭＤＳに等しいバイトの数である。生のページサイズ（ＲＰＳ）は、不揮発性メモリの物理的ページのサイズである。
【００１８】
アドレスマッピングを具現化する規範的なＮＶＭパッケージ
図２Ｂは、図２Ａのアドレスマッピングを具現化する図１の規範的な管理型ＮＶＭパッケージ１０４のブロック図である。ＮＶＭパッケージ１０４は、ホストチャンネルを有するホストインターフェイス、コマンドラッチイネーブル（ＣＬＥ）入力、アドレスラッチイネーブル（ＡＬＥ）入力、チップイネーブル（ＣＥ）入力、及びレディ／ビジー（Ｒ／Ｂ）入力を備えている。ホストインターフェイスは、より多くの又はより少ない入力を含むことができる。この例では、ホストインターフェイスは、ホストプロセッサ１０２から論理的アドレスを受け取る。論理的アドレスは、ＮＶＭアドレッシングの典型であるように、次のフィールド［ブロックアドレス  ページアドレス  オフセット］を表すビットを含むことができる。
【００１９】
ある具現化では、コントローラ１０６は、ホストチャンネルから論理的アドレスを読み取り、そして図２Ａのアドレスマッピングを使用してブロックアドレスを特定の内部ブロックアドレスへマップする。例えば、論理的アドレスが［０、０、０］の場合には、ブロックアドレスが０である。ブロックアドレスは、ＮＶＭ装置１０８ａ（ＣＥ0）に対する内部チップセレクトへマップされる。ブロックアドレス、ページアドレス及びオフセットは、選択されたＣＡＵからデータのＰＰＳにアクセスするのに使用される物理的アドレスを形成する。この例では、ＣＡＵは、ＮＶＭ装置１０８ｂの一部分を含むＣＡＵ２０２に比して、物理的ＮＶＭ装置１０８ａ全体を含む。従って、ブロックアドレスは、次の２つの機能を遂行する。１）ブロックアドレスのビットをＣＡＵ又はＮＶＭ装置の内部ＣＥへマッピングすることにより、物理的ＮＶＭ装置又は物理的ＮＶＭ装置内のＣＡＵの選択を容易にし、そして２）選択されたＣＡＵ又はＮＶＭ装置内のブロックにアクセスするための物理的アドレスを与える。
【００２０】
この例では、偶数ブロックは、ＮＶＭ装置１０８ａへマップされ、そして奇数ブロックは、ＮＶＭ装置１０８ｂ内のＣＡＵ２０２へマップされる。コントローラ１０６は、それが偶数のブロックアドレスを検出すると、ＮＶＭ装置１０８ａに対して内部チップイネーブルＣＥ0をアクチベートし、又、コントローラ１０６は、それが奇数のブロックアドレスを検出すると、ＮＶＭ装置１０８ｂに対して内部チップイネーブルＣＥ1をアクチベートする。このアドレスマッピングスキームは、管理型ＮＶＭパッケージにおける希望の数のＣＡＵ及び／又はＮＶＭ装置まで拡張することができる。ある具現化では、ブロックアドレスの最上位ビットを使用して、内部ＣＥを選択することができ、そして残りのブロックアドレスビット又は全ブロックアドレスをページアドレス及びオフセットに結合して、物理的アドレスでブロックにアクセスし、オペレーションを遂行することができる。ある具現化では、デコーディングロジックをＮＶＭパッケージ又はコントローラ１０６に追加して、アクチベートすべき内部ＣＥを選択する目的でブロックアドレスをデコードすることができる。
【００２１】
上述したアドレスマッピングスキームの効果は、ＮＶＭパッケージ１０４のホストインターフェイスを簡単化することができ（ピン数を減少でき）、それでも、読み取り、書き込み、消去、及び状態取得オペレーションのための一般的な生のＮＶＭコマンド（例えば、生のＮＡＮＤコマンド）をサポートできることである。更に、複数のＣＡＵアーキテクチャーをレバレッジするように拡張コマンドを使用することができる。ＮＶＭパッケージ１０４は、従来の生のＮＶＭアーキテクチャー（例えば、生のＮＡＮＤアーキテクチャー）に使用されるインターリーブコマンドと同様に同時読み取り及び書き込みオペレーションをサポートする。
【００２２】
ある具現化では、エンジン１１０は、データに対してエラー修正を遂行し、そしてホストインターフェイスを通してホストプロセッサへ状態を送る。状態は、オペレーションが失敗したかどうかホストプロセッサに通知するもので、ホストプロセッサが異なるＣＡＵ又はＮＶＭ装置にアクセスするようブロックアドレスを調整できるようにする。例えば、特定のＣＡＵに対するオペレーションに応答して非常に多数のエラーが生じた場合には、ホストプロセッサは、欠陥のあるＮＶＭ装置に対する内部ＣＥをアクチベートしないようにブロックアドレスを変更することができる。
【００２３】
図２Ｃは、図１の管理型ＮＶＭパッケージ１０４のための規範的なアドレスマッピングスキームを示す。特に、このマッピングは、複数のダイを含む管理型ＮＡＮＤ装置に使用することができ、各ダイは、潜在的に、複数の平面を含むことができる。ある具現化において、アドレスマッピングは、同時アドレス可能なユニット（ＣＡＵ）において動作する。ＣＡＵは、ＮＶＭパッケージの他のＣＡＵと同時に又はそれと並列に読み取られ、プログラムされ又は消去される単一のホストチャンネルからアクセス可能な物理的記憶装置の一部分である。ＣＡＵは、例えば、単一平面又は単一ダイである。ＣＡＵのサイズは、ＣＡＵにおける消去可能なブロックの数である。
【００２４】
規範的なメモリアーキテクチャーを使用してマッピングを説明する。この規範的なアーキテクチャーでは、ブロックサイズは、消去可能なブロックにおけるページ数として定義される。ある具現化では、４キロバイトのデータごとに１６バイトのメタデータが利用できる。他のメモリアーキテクチャーも考えられる。例えば、メタデータには、より多くの又はより少ないバイトを割り当てることができる。
【００２５】
図２Ｃに示したアドレスマッピングスキームは、生のＮＡＮＤプロトコルを使用して、最適な性能を可能にするＮＡＮＤブロック及び付加的なコマンドを読み取り／プログラム／消去できるようにする。ＮＶＭパッケージ１０４は、ＮＡＮＤのデータ信頼性を管理するためのＥＣＣエンジン（例えば、ＥＣＣエンジン１１０）を備えている。従って、ホストコントローラ１０２は、ＥＣＣエンジン１１０を含んだり、さもなければ、信頼性目的でデータを処理したりする必要はない。
【００２６】
ＮＶＭパッケージ１０４は、ＣＡＵを、他のＣＡＵと同様に又は並列にアクセスできる（例えば、ＮＡＮＤメモリセルから内部レジスタへデータを移動できる）エリアとして定義する。この規範的なアーキテクチャーでは、全てのＣＡＵが同じ数のブロックを含むと仮定する。他の具現化では、ＣＡＵは、異なる数のブロックを有することができる。以下のテーブルＩは、ＣＡＵのページにアクセスするための規範的な生のアドレスフォーマットを示す。
テーブルＩ−規範的な生のアドレスフォーマット
2012513647.tif 000003
【００２７】
テーブルＩを参照すれば、規範的なｎビット（例えば、２４ビット）の生のアドレスは、ＮＡＮＤ装置のコントローラへ次のフォーマット即ち［ＣＡＵ：ブロック：ページ］で送ることができる。ＣＡＵは、ダイ又は平面を表す番号（例えば、整数）である。ブロックは、ＣＡＵ番号で識別されたＣＡＵにおけるブロックオフセットであり、そしてページは、ブロックにより識別されたブロックにおけるページオフセットである。例えば、ブロック当たり１２８のページ、ＣＡＵ当たり８１９２個のブロック、及び６個のＣＡＵを伴う装置では、Ｘは７（２７＝１２８）であり、Ｙは、１３（２１３＝８１９２）であり、そしてＺは、３（２２＜６＜２３）である。
【００２８】
図２Ｃに示した規範的なＮＶＭパッケージ１０４は、２つのＮＡＮＤダイ２０４ａ、２０４ｂを備え、そして各ダイは、２つの平面を有する。例えば、ダイ２０４ａは、平面２０６ａ、２０６ｂを含む。そして、ダイ２０４ｂは、平面２０６ｃ、２０６ｄを含む。この例では、各平面は、ＣＡＵであり、そして各ＣＡＵは、２０４８個のマルチレベルセル（ＭＬＣ）ブロックを有し、ブロック当たり１２８のページがある。プログラム及び消去オペレーションは、ブロック（各ＣＡＵからのブロック）のストライドで遂行することができる。ストライド(stride)とは、異なるＣＡＵから各々到来するブロックのアレイとして定義される。ここに示す例では、“ストライド０”は、ＣＡＵ０−３の各々からのブロック０を定義し、“ストライド１”は、ＣＡＵ０−３の各々からのブロック１を定義し、“ストライド２”は、ＣＡＵ０−３の各々からのブロック２を定義し、等々となる。
【００２９】
ＮＶＭパッケージは、制御バス２０８及びアドレス／データバス２１０を通してＣＡＵと通信するＮＶＭコントローラ２０２を含む。オペレーション中に、ＮＶＭコントローラ２０２は、ホストコントローラ（図示せず）からコマンドを受け取り、そのコマンドに応答して、制御バス２０８に制御信号を、そしてアドレス／データバス２１０にアドレス又はデータをアサートし、１つ以上のＣＡＵにおいてオペレーション（例えば、読み取り、プログラム又は消去オペレーション）を遂行する。ある具現化では、コマンドは、図２Ｃを参照して述べるように、［ＣＡＵ：ブロック：ページ］の形態を有する生のアドレスを含む。
【００３０】
図２Ｄは、不良ブロック置き換えを含む図２Ｃのアドレスマッピングスキームを示す。この例では、ストライドアドレスは、３つのＣＡＵを有するＮＶＭパッケージ１０４に対してホストコントローラ１０２により発生され、ＣＡＵの１つは、不良ブロックをストライドブロックオフセットに保持する。“ストライド４”アドレスは、通常、ＣＡＵ０：ブロック４、ＣＡＵ１：ブロック４、及びＣＡＵ２：ブロック４にアクセスする。しかしながら、この例では、不良ブロックＣＡＵ１：ブロック４は、ＣＡＵ１：ブロック２０００と置き換えられる。
【００３１】
規範的なコマンドセット
ＮＶＭパッケージ１０４は、透過的モードをサポートすることができる。透過的モードは、ＥＣＣなしにメモリアレイにアクセスできるようにし、そしてコントローラ１０６の性能を評価するのに使用できる。又、ＮＶＭパッケージ１０４は、読み取り、書き込み、及び状態取得オペレーションのための一般的に生のＮＶＭコマンドもサポートする。テーブル１−３は、規範的な読み取り、書き込み及びコミットオペレーションを示す。従来の生のＮＶＭと同様に、ＮＶＭ装置は、書き込みコマンドが発生される前にレディにならねばならない。レディであることは、テーブル４を参照して述べるように、状態読み取りオペレーションを使用して決定することができる。
【００３２】
テーブル１−規範的読み取りオペレーション
2012513647.tif 000004
【００３３】
テーブル２−規範的書き込みオペレーション（書き込みモード）
2012513647.tif 000005
【００３４】
テーブル３−規範的書き込みオペレーション（コミットモード）
2012513647.tif 000006
【００３５】
テーブル４−規範的状態読み取りオペレーション
2012513647.tif 000007
【００３６】
上述したオペレーションに加えて、コントローラ１０６は、種々の他のコマンドをサポートすることができる。「ページパラメータ読み取り」コマンドは、ＮＶＭパッケージ１０４から幾何学的パラメータを返送する。幾何学的パラメータの幾つかの例は、ダイサイズ、ブロックサイズ、ページサイズ、ＭＤＳ、ラン及びストライドを含むが、これに限定されない。「中止」コマンドは、コントローラ１０６が現在オペレーションを監視して、進行中のその後のストライドオペレーションを停止するようにさせる。「リセット」コマンドは、現在オペレーションを停止し、変更されつつあるメモリセルのコンテンツを無効にさせる。コントローラ１０６のコマンドレジスタは、次のコマンドの準備においてクリアされる。「読み取りＩＤ」コマンドは、製品識別を返送する。「読み取りタイミング」コマンドは、書き込み及び消去コマンドのための設定、保持、及び遅延時間を返送する。「読み取り装置パラメータ」コマンドは、仕様サポート、装置バージョン及びファームウェアバージョンを含むＮＶＭパッケージ１０４のための特定識別を返送する。
【００３７】
規範的なコマンドセットを以下のテーブル５に示す。
テーブル５−規範的なコマンドセット
2012513647.tif 000008
【００３８】
規範的な読み取り、書き込み及び消去オペレーション
ＮＶＭパッケージ１０４における複数ＣＡＵアーキテクチャーをレバレッジするため、ＮＶＭパッケージ１０４は、拡張コマンドセットを使用して全ての又は幾つかのＣＡＵへのアクセスをサポートすることができる。ＮＶＭパッケージ１０４は、全てのアドレスがＰＰＳに指定される次の拡張コマンドをサポートすることができる。即ち、「アドレスを伴う読み取り」、「アドレスを伴う書き込み」、「アドレスを伴う消去」、及び「アドレスを伴う状態」。図３ないし７は、ＣＡＵを横切ってインターリーブがどこで生じるか指示する。インターリーブが生じるポイント（「インターリーブポイント」と称される）が丸で示されている。各オペレーションの出発点及び終了点は、各々、インターリーブポイントを表すので、白丸及び斜線入りの丸として表れ、そしてインターリーブが生じる全ての中間点は、縞模様入りの丸で示されている。図３ないし７は、ＮＶＭパッケージが一連のオペレーションの後に完全なレディ状態になると仮定する。
【００３９】
図３は、アドレスを伴う読み取りコマンドを使用する規範的オペレーション３００のフローチャートである。ステップ３０２において、ホストプロセッサは、アドレスを伴う読み取りコマンドをＮＶＭパッケージへ発生する。ステップ３０４において、ホストプロセッサは、アドレスを読み取る準備ができたことを指示する状態をＮＶＭパッケージが与えるまでアドレス状態シーケンスの待機を遂行する。ステップ３０６において、ホストプロセッサは、アドレスを伴う確認コマンドをＮＶＭパッケージへ発生する。ステップ３０８において、ＮＶＭパッケージのコントローラは、ホストチャンネルを経てホストプロセッサへＰＰＳバイトのデータを転送する。ＥＣＣエンジン（例えば、ＥＣＣエンジン１１０）を使用してＮＶＭパッケージのバイトにエラー修正が適用される。アドレスを伴うこの規範的読み取りコマンドのオペレーションでは、インターリーブポイントが、オペレーションの始めと終わり、及びオペレーションの中間ステップ３０２と３０４との間、及び中間ステップ３０４と３０６との間に生じる。
【００４０】
２つのＣＡＵ（ラン＝２及びストライド＝１）を横切る単一のページに対するアドレスを伴う規範的読み取りコマンドのオペレーションは、次の通りである。
（Read）［ブロック０  ページ０］
（Read）［ブロック１  ページ０］
（GetPageStatus）［ブロック０  ページ０］Ｗ４Ｒ｛データ＋メタデータ｝
（GetPageStatus）［ブロック１  ページ０］Ｗ４Ｒ｛データ＋メタデータ｝
【００４１】
図４は、アドレスを伴う書き込みコマンドを使用する規範的オペレーション４００のフローチャートである。ステップ４０２において、ホストプロセッサは、アドレスを伴う書き込みコマンドを発生する。ステップ４０４において、ホストプロセッサは、ホストチャンネルを経てＮＶＭパッケージのコントローラへＰＰＳバイトのデータを転送する。ＥＣＣエンジンを使用してバイトにエラー修正が適用される。ステップ４０６において、ホストプロセッサは、アドレスを伴うコミットコマンドを発生し、これは、ＣＡＵを行先とする非コミット書き込みを、アドレスに対応するメモリアレイにコミットする。対応するＥＣＣシンドロームもコミットされる。ステップ４０８において、ホストプロセッサは、データがアドレスに書き込まれたことを指示する状態をＮＶＭパッケージが与えるまでアドレスシーケンスを伴う状態の待機を遂行する。アドレスを伴うこの規範的書き込みコマンドのオペレーションでは、インターリーブポイントが、オペレーションの始めと終わり、及びオペレーションの中間ステップ４０６と４０８との間に生じる。
【００４２】
２つのＣＡＵ（ラン＝２及びストライド＝１）を横切る単一のページに対するアドレスを伴う規範的書き込みコマンドのオペレーションは、次の通りである。
（StrideWrite）［ブロック０  ページ０］＜データ＋メタデータ＞
（StrideWrite）［ブロック１  ページ０］＜データ＋メタデータ＞
（GetPageStatus）［ブロック０  ページ０］Ｗ４Ｒ｛状態｝
（GetPageStatus）［ブロック１  ページ０］Ｗ４Ｒ｛状態｝
（Commit）［ブロック０  ページ０］
（Commit）［ブロック１  ページ０］
【００４３】
図５は、アドレスを伴う消去コマンドを使用する規範的オペレーション５００のフローチャートである。ステップ５０２において、ホストプロセッサは、アドレスを伴う消去コマンドを発生する。ステップ５０４において、ホストプロセッサは、アドレスを消去する準備ができたことを指示する状態をＮＶＭパッケージが与えるまでアドレスを伴う状態の待機を遂行する。アドレスを伴うこの規範的消去コマンドのオペレーションでは、インターリーブポイントが、オペレーションの始めと終わり、及びオペレーションの中間ステップ５０２と５０４との間に生じる。
【００４４】
規範的なストライドオペレーション
ベンダー特有のコマンドをレバレッジするために、ＮＶＭパッケージは、ＣＡＵ内の複数ページオペレーションをサポートする。より特定すれば、ＮＶＭパッケージは、StrideRead及びStrideWriteコマンドをサポートする。
【００４５】
図６Ａ及び６Ｂは、アドレスを伴うStrideReadコマンドのオペレーションを使用する規範的オペレーション６００のフローチャートである。図６Ａのステップ６０２を参照すれば、ＮＶＭ装置のストライドにおけるブロック数Ｓと、読み取られるべきブロック当たりのページ数Ｎとが与えられると、読み取られるべき残りのページ数Ｐは、ＳとＮの積に等しくセットすることができる。ホストプロセッサは、ステップ６０４において、カウンタＩを０に等しくセットすることにより次のストライドを開始する。ステップ６０６において、ＰがＳと比較される。Ｐ＝０の場合には、オペレーション６００が終了する。Ｐ＞Ｓの場合には、ステップ６０８において、ホストプロセッサは、アドレスを伴うStrideReadコマンドを発生する。Ｐ≦Ｓの場合には、ステップ６１０において、ホストプロセッサは、アドレスを伴うLastStrideReadコマンドを発生する。
【００４６】
ステップ６１２において、カウンタＩが１だけインクリメントされる。ステップ６１４において、ＩがＳと比較される。Ｉ＜Ｓの場合には、オペレーション６００がステップ６０６へ復帰する。Ｉ＝Ｓの場合には、オペレーション６００が、図６Ｂを参照して述べるように、ストライドにおけるページの転送を開始する。
【００４７】
図６Ｂのステップ６１６を参照すれば、カウンタＴがゼロに等しくセットされる。ステップ６１８において、ホストプロセッサは、アドレスを読み取る準備ができたことを指示する状態をＮＶＭパッケージが与えるまでアドレスシーケンスを伴う状態の待機を遂行する。ステップ６２０において、ホストプロセッサは、アドレスを伴う確認コマンドを発生する。ステップ６２２において、ＮＶＭパッケージは、ＰＰＳバイトのデータをホストプロセッサへ転送する。ステップ６２４において、カウンタＴが１だけインクリメントされる。ステップ６２６において、カウンタＴがＳと比較される。Ｔ＜Ｓの場合には、オペレーション６００がステップ６１８へ復帰する。Ｔ＝Ｓの場合には、ステップ６２８において、読み取られるべき残りのページ数ＰがＳだけデクリメントされ、オペレーション６００は、ステップ６０４へ復帰する。
【００４８】
２つのＣＡＵ及び４つのストライド（ラン＝２及びストライド＝４）を横切って分散される８つのページの、アドレスを伴う規範的なStrideReadのオペレーションは、次の通りである。
（StrideRead）［ブロック０  ページ０］
（StrideRead）［ブロック１  ページ０］
（StrideRead）［ブロック２  ページ０］
（StrideRead）［ブロック３  ページ０］
（StrideRead）［ブロック４  ページ０］
（StrideRead）［ブロック５  ページ０］
（LastStrideRead）［ブロック６  ページ０］
（LastStrideRead）［ブロック７  ページ０］
（GetPageStatus）［ブロック０  ページ０］Ｗ４Ｒ｛データ＋メタデータ｝
（GetPageStatus）［ブロック１  ページ０］Ｗ４Ｒ｛データ＋メタデータ｝
（GetPageStatus）［ブロック２  ページ０］Ｗ４Ｒ｛データ＋メタデータ｝
（GetPageStatus）［ブロック３  ページ０］Ｗ４Ｒ｛データ＋メタデータ｝
（GetPageStatus）［ブロック４  ページ０］Ｗ４Ｒ｛データ＋メタデータ｝
（GetPageStatus）［ブロック５  ページ０］Ｗ４Ｒ｛データ＋メタデータ｝
（GetPageStatus）［ブロック６  ページ０］Ｗ４Ｒ｛データ＋メタデータ｝
（GetPageStatus）［ブロック７  ページ０］Ｗ４Ｒ｛データ＋メタデータ｝
【００４９】
図７は、アドレスを伴うStrideWriteコマンドのオペレーションを使用する規範的なオペレーション７００のフローチャートである。ステップ７０２を参照すれば、ＮＶＭ装置ストライドにおけるブロック数Ｓ、及び書き込まれるべきブロック当たりのページ数Ｎが与えられると、書き込まれるべき残りのページ数Ｐは、ＳとＮの積に等しくセットすることができる。ステップ７０４では、ホストプロセッサがＰをＳと比較する。Ｐ＝０の場合には、オペレーション７００が終了となる。Ｐ＞Ｓの場合には、ステップ７０６において、ホストプロセッサは、アドレスを伴うStrideWriteコマンドを発生する。Ｐ≦Ｓの場合には、ステップ７０８において、ホストプロセッサは、アドレスを伴うLastStrideWriteコマンドを発生する。
【００５０】
ステップ７１０において、ホストプロセッサは、ＰＰＳバイトのデータをＮＶＭパッケージへ転送する。ステップ７１２において、ホストプロセッサは、メモリアレイへの書き込みをコミットするためのアドレスを伴うコミットコマンドを発生する。ステップ７１４において、ホストプロセッサは、データがメモリへコミットされたことを指示する状態をＮＶＭパッケージが与えるまでアドレスを伴う状態の待機を遂行する。ステップ７１６において、書き込まれるべき残りのページ数が１だけデクリメントされ、オペレーション７００は、ステップ７０４へ復帰する。
【００５１】
２つのＣＡＵ及び４つのストライド（ラン＝２及びストライド＝４）を横切って分散される８つのページの、アドレスを伴う規範的なStrideWriteのオペレーションは、次の通りである。
（StrideWrite）［ブロック０  ページ０］＜データ＋メタデータ＞
（StrideWrite）［ブロック１  ページ０］＜データ＋メタデータ＞
（GetPageStatus）［ブロック０  ページ０］Ｗ４Ｒ｛状態｝
（StrideWrite）［ブロック２  ページ０］＜データ＋メタデータ＞
（GetPageStatus）［ブロック１  ページ０］Ｗ４Ｒ｛状態｝
（StrideWrite）［ブロック３  ページ０］＜データ＋メタデータ＞
（GetPageStatus）［ブロック２  ページ０］Ｗ４Ｒ｛状態｝
（StrideWrite）［ブロック４  ページ０］＜データ＋メタデータ＞
（GetPageStatus）［ブロック３  ページ０］Ｗ４Ｒ｛状態｝
（StrideWrite）［ブロック５  ページ０］＜データ＋メタデータ＞
（GetPageStatus）［ブロック４  ページ０］Ｗ４Ｒ｛状態｝
（LastStrideWrite）［ブロック６  ページ１］＜データ＋メタデータ＞
（GetPageStatus）［ブロック５  ページ０］Ｗ４Ｒ｛状態｝
（LastStrideWrite）［ブロック７  ページ１］＜データ＋メタデータ＞
（GetPageStatus）［ブロック６  ページ０］Ｗ４Ｒ｛状態｝
（GetPageStatus）［ブロック７  ページ０］Ｗ４Ｒ｛状態｝
【００５２】
規範的なキュー構成
図８は、ＮＶＭパッケージにおけるコマンドキューの使用を示す。ある具現化において、ＮＶＭパッケージ８００は、コントローラによりアクセスできる１つ以上のキュー８０４を含むことができる。キューは、ＦＩＦＯキューである。ホストコントローラによって受け取られたコマンドは、キュー８０４に記憶することができる。図示された例では、３つのキューがある。読み取り、プログラム及び消去コマンドの各々に対して１つのキューがある。トリガー事象に応答して、コントローラ８０２は、メモリオペレーション中の性能を最適化するために、１つ以上のキュー８０４における１つ以上のコマンドを再順序付けすることができる。例えば、１つのトリガー事象は、キュー（及びバッファ）内の最上位アイテムが、別のオペレーションでビジーである平面又はＣＡＵを行先とする場合のものである。
【００５３】
図９は、図８に示すコマンドキューにおいてコマンドを再順序付けするための規範的プロセス９００のフローチャートである。ある具現化において、プロセス９００は、ホストコントローラからのコマンドを受け取ることにより開始される（９０２）。コマンドは、不揮発性メモリにおいてオペレーションを開始するためのものである。コマンドは、１つ以上のキューに記憶される（９０４）。例えば、３つの別々のキューが、読み取り、プログラム及び消去コマンドを記憶することができる。これらのコマンドは、トリガー事象に応答してコントローラにより不揮発性メモリ装置において再順序付けされる（９０６）。
【００５４】
本書は、多数の細目を含むが、本発明の範囲を限定するためのものではなく、特定の実施形態の特徴を例示するものに過ぎない。個別の実施形態において本書に述べられた幾つかの特徴を、１つの実施形態において組み合わせて具現化することもできる。逆に、１つの実施形態において述べられた種々の特徴を複数の実施形態において個別に、又は適当なサブ組み合わせで、具現化することもできる。更に、それらの特徴は、ある組み合わせで作用するものとして述べられ、又、そのように最初に請求の範囲に述べられるが、請求の範囲に述べた組み合わせからの１つ以上の特徴を、ある場合には、組み合わせから削除することもできるし、又、請求の範囲に述べた組み合わせをサブ組み合わせ又はサブ組み合わせの変形へと導くこともできる。
【００５５】
同様に、オペレーションは特定の順序で示されたが、望ましい結果を得るために、そのようなオペレーションが図示された特定の順序又は逐次の順序で遂行され、又、図示された全てのオペレーションが遂行されることが要求されると理解すべきではない。ある状況においては、マルチタスク及び並列処理が効果的である。更に、以上の実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてそのような分離が要求されると理解すべきではなく、又、ここに述べるプログラムコンポーネント及びシステムは、一般的に、１つのソフトウェア製品において一緒に一体化することもできるし、複数のソフトウェア製品にパッケージすることもできると理解すべきである。
【００５６】
かくて、特定の実施形態が説明されたが、特許請求の範囲内で他の実施形態も考えられる。
【符号の説明】
【００５７】
１００：メモリシステム
１０２：ホストプロセッサ
１０４：管理型ＮＶＭパッケージ（管理型ＮＡＮＤパッケージ）
１０６：コントローラ
１０８：ＮＶＭ装置
１１０：エラー修正（ＥＣＣ）エンジン
２０２：ＮＶＭコントローラ
２０４ａ、２０４ｂ：ＮＡＮＤダイ
２０６ａ、２０６ｂ、２０６ｃ、２０６ｄ：平面
２０８：制御バス
２１０：アドレス／データバス
【図１】
2012513647.tif 000009
【図２Ａ】
2012513647.tif 000010
【図２Ｂ】
2012513647.tif 000011
【図２Ｃ】
2012513647.tif 000012
【図２Ｄ】
2012513647.tif 000013
【図３】
2012513647.tif 000014
【図４】
2012513647.tif 000015
【図５】
2012513647.tif 000016
【図６Ａ】
2012513647.tif 000017
【図６Ｂ】
2012513647.tif 000018
【図７】
2012513647.tif 000019
【図８】
2012513647.tif 000020
【図９】
2012513647.tif 000021
【手続補正書】
【提出日】平成23年8月22日(2011.8.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ブロックアドレスを受け取るように動作できるインターフェイスと、
複数のブロックを各々含む複数の同時アクセスユニットと、
前記インターフェイス及び複数の同時アドレス可能なユニットに結合されたプロセッサであって、ブロックアドレスを、そのブロックアドレスで識別された前記複数の同時アドレス可能なユニットの１つにおけるブロックへとマッピングするように動作できるプロセッサと、
を備えた不揮発性メモリ（ＮＶＭ）パッケージ。
【請求項２】
ホストインターフェイスを更に備え、このホストインターフェイスは、これに結合されたホストプロセッサからホストチップイネーブル信号を受け取り、前記プロセッサは、このホストチップイネーブル信号を、１つの前記同時アドレス可能なユニットの内部チップイネーブル信号へとマッピングするように動作でき、この内部チップイネーブル信号は、前記同時アドレス可能なユニットをアクチベートするためのものである、請求項１に記載のパッケージ。
【請求項３】
前記マッピングは、ラン及びストライドパラメータにより定義されたマップを使用して遂行され、前記ランパラメータは、前記ホストチップイネーブル信号を使用してアクセスできる同時アドレス可能なユニットの数であり、前記ストライドパラメータは、同時アドレス可能なユニット内のオペレーションコマンドに対するブロックの数である、請求項２に記載のパッケージ。
【請求項４】
前記プロセッサは、読み取り又は書き込みオペレーションのためのコマンドを前記インターフェイスから受け取り、そのオペレーションは、１つ以上の同時アドレス可能なユニットにおいて同時アトミックトランザクションを遂行する読み取り又は書き込みコマンドのシーケンスである、請求項１に記載のパッケージ。
【請求項５】
前記同時アドレス可能なユニットから読み取られ又はそこに書き込まれるデータの量は、前記同時アドレス可能なユニットに対するストライドパラメータＮと、ページサイズに等しいバイト数＋メタデータを考慮したページに関連したバイト数と、の積に等しく、但し、Ｎは、読み取り又は書き込みされるべきページ数を表す正の整数であり、そしてストライドは、前記同時アドレス可能なユニット内のオペレーションコマンドに対するブロック数である、請求項４に記載のパッケージ。
【請求項６】
同時アドレス可能なユニットから読み取られ又はそこに書き込まれるデータのブロックにエラー修正を適用するためのエラー修正エンジンを更に備えた、請求項１に記載のパッケージ。
【請求項７】
１つ以上の同時アドレス可能なユニットにエラー検出及び修正エンジンが含まれる、請求項６に記載のパッケージ。
【請求項８】
前記同時アドレス可能なユニットに対するスループットを管理するためのパイプライン管理エンジンを更に備えた、請求項１に記載のパッケージ。
【請求項９】
前記プロセッサは、２つ以上の同時アドレス可能なユニットにおいて同時読み取り又は書き込みオペレーションを遂行する、請求項１に記載のパッケージ。
【請求項１０】
ホストプロセッサに結合された不揮発性メモリ（ＮＶＭ）パッケージにより遂行される方法において、
ホストプロセッサからブロックアドレスを受け取る段階と、
ブロックアドレスを、そのブロックアドレスで識別された複数の同時アドレス可能なユニットの１つにおけるブロックへとマッピングする段階と、
を備えた方法。
【請求項１１】
前記ホストプロセッサからホストチップイネーブル信号を受け取る段階と、
このホストチップイネーブル信号を、１つの前記同時アドレス可能なユニットの内部チップイネーブル信号へとマッピングする段階と、
その内部チップイネーブル信号をアクチベートする段階と、
を更に備えた請求項１０に記載の方法。
【請求項１２】
読み取り又は書き込みオペレーションのためのコマンドを受け取る段階と、
そのコマンドに基づき１つ以上の同時アドレス可能なユニットにおいて１つ以上の同時アトミックトランザクションを遂行する段階と、
を更に備えた請求項１０に記載の方法。
【請求項１３】
前記同時アドレス可能なユニットから読み取られ又はそこに書き込まれるデータの量は、前記同時アドレス可能なユニットに対するストライドパラメータＮと、ページサイズに等しいバイト数＋メタデータを考慮したページに関連したバイト数と、の積に等しく、但し、Ｎは、読み取り又は書き込みされるべきページ数を表す正の整数であり、そしてストライドは、前記同時アドレス可能なユニット内のオペレーションコマンドに対するブロック数である、請求項１２に記載の方法。
【請求項１４】
ブロックアドレスを受け取るように動作できるインターフェイスであって、このインターフェイスに結合されたホストプロセッサから第１のチップイネーブル信号も受け取るインターフェイスと、
複数のブロックを各々含む複数の同時アクセスユニットと、
前記インターフェイス及び複数の同時アドレス可能なユニットに結合されたプロセッサであって、前記ホストプロセッサからのチップイネーブル信号に応答して、第１の内部チップセレクトイネーブル信号を使用して第１の同時アドレス可能なユニットをアクチベートし、第２の内部チップセレクトイネーブル信号を使用して第２の同時アドレス可能なユニットをアクチベートし、ブロックアドレスを、前記アクチベートされた第１及び第２の同時アドレス可能なユニットにおけるブロックへマッピングし、そして前記アクチベートされた第１及び第２の同時アドレス可能なユニットにおけるブロックに対して読み取り又は書き込みオペレーションを同時に遂行するための一連のコマンドを実行するプロセッサと、
を備えた不揮発性メモリ（ＮＶＭ）パッケージ。
【請求項１５】
前記ＮＶＭパッケージは、管理型ＮＡＮＤパッケージである、請求項１４に記載のパッケージ。
【請求項１６】
不揮発性メモリ（ＮＶＭ）パッケージに記憶されたデータに対して動作するシステムにおいて、
複数の同時アドレス可能なユニットを含むＮＶＭパッケージにパラメータ要求を送信しそしてランパラメータ及びストライドパラメータを受信するためのインターフェイスであって、前記ランパラメータは、ホストプロセッサにより与えられる単一のチップイネーブル信号を使用してアクセスできるＮＶＭパッケージにおける同時アドレス可能なユニットの数を指示し、そして前記ストライドパラメータは、同時アドレス可能なユニット内のオペレーションコマンドに対するブロック数を指示するものであるインターフェイスと、
前記インターフェイスに結合されたプロセッサであって、１つ以上の同時アドレス可能なユニットにおいてアトミックトランザクションを同時に遂行するための一連のコマンドを前記ＮＶＭパッケージへ送信するように動作でき、その一連のコマンドは、前記ラン及びストライドパラメータに基づいて前記ホストプロセッサにより発生されるアドレスを含むものであるプロセッサと、
を備えたシステム。
【請求項１７】
前記プロセッサは、前記ＮＶＭパッケージへ書き込みコマンドと共にデータを送信するように動作でき、データのサイズは、Ｎと、ストライドと、ページサイズに等しいバイト数＋メタデータを考慮した各ページサイズに関連したバイト数と、の積に等しく、但し、Ｎは、書き込まれるべきページ数を表す正の整数である、請求項１６に記載のシステム。
【請求項１８】
前記プロセッサは、前記ＮＶＭパッケージへ読み取りコマンドを送信するように動作でき、読み取られるべきデータのサイズは、Ｎと、ストライドと、ページサイズに等しいバイト数＋メタデータを考慮した各ページサイズに関連したバイト数と、の積に等しく、但し、Ｎは、読み取られるべきページ数を表す正の整数である、請求項１６に記載のシステム。
【請求項１９】
不揮発性メモリ（ＮＶＭ）パッケージに結合されたホストプロセッサにより遂行される方法において、
複数の同時アドレス可能なユニットを含むＮＶＭパッケージにパラメータ要求を送信する段階と、
前記要求に応答して、ランパラメータ及びストライドパラメータを受け取る段階であって、前記ランパラメータは、前記ホストプロセッサにより与えられる単一のチップイネーブル信号を使用してアクセスできるＮＶＭパッケージにおける同時アドレス可能なユニットの数であり、前記ストライドパラメータは、同時アドレス可能なユニット内のオペレーションコマンドに対するブロックの数である段階と、
１つ以上の同時アドレス可能なユニットにおいてアトミックトランザクションを同時に遂行するための一連のコマンドを前記ＮＶＭパッケージへ送信する段階であって、その一連のコマンドは、前記ラン及びストライドパラメータに基づいて前記ホストプロセッサにより発生されるアドレスを含むものである段階と、
を備えた方法。
【請求項２０】
前記ＮＶＭパッケージへ書き込みコマンドと共にデータを送信する段階を更に備え、そのデータのサイズは、Ｎと、ストライドと、ページサイズに等しいバイト数＋メタデータを考慮した各ページサイズに関連したバイト数と、の積に等しく、但し、Ｎは、書き込まれるべきページ数を表す正の整数である、請求項１９に記載の方法。
【国際調査報告】
2012513647.tif 000022
2012513647.tif 000023
2012513647.tif 000024
2012513647.tif 000025
2012513647.tif 000026