(57)【要約】      （修正有）【課題】メモリ・デバイスおよびその動作方法に関し、待ち状態のプログラム動作の障害を示すための非同期電子フェイル信号により、プログラムの正常な完了のためにコントローラまたはプロセッサがいくつかのＮＶＭデバイスのステータス・レジスタをポーリングするプロセスを必要とせずに、こうした障害を管理する技法を提供する。【解決手段】メモリ・システム１００は、読取りプログラム・コマンド等の命令および情報を外部ホストから受け取り、コントローラ１５０またはプロセッサ１６０により提供される情報を記憶するためのＮＶＭデバイス１１０を有する。ＮＶＭデバイス１１０は、不揮発性メモリ・セルのアレイと直前の待ち状態のプログラム動作のパスをモニタするための書込み状態マシン１１５とを備える。【選択図】図１
2011238217.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のメモリ・アレイの待ち状態のプログラム動作を示すための第１の信号を維持するステップと、
前記待ち状態のプログラム動作中、前記１つまたは複数のメモリ・アレイの少なくとも１つについてプログラム-フェイル・イベントを判定するステップと、
前記プログラム動作が失敗であったことを示すための電子信号を生成するステップと、
を含む方法。
【請求項２】
前記プログラム動作が失敗であったことを示すための前記電子信号を生成する前記ステップの後、前記第１の信号を、前記１つまたは複数のメモリ・アレイの前記プログラム動作の終了を示すように遷移させるステップ
を更に含む請求項１に記載の方法。
【請求項３】
前記１つまたは複数のメモリ・アレイが、相変化メモリ（ＰＣＭ）を含む、
請求項１に記載の方法。
【請求項４】
前記失敗の動作に応じて、前記１つまたは複数のメモリ・アレイのうちどのメモリ・アレイが前記プログラム-フェイル・イベントを引き起こしたかを判定するステップ
を更に含む請求項１に記載の方法。
【請求項５】
前記プログラム動作が失敗であったことを示すための前記電子信号を生成する前記ステップの前に、前記プログラム-フェイル・イベントを発生させた１つまたは複数の誤りの訂正を試みるために、誤り訂正符号（ＥＣＣ）を適用するステップ
を更に含む請求項１に記載の方法。
【請求項６】
１つまたは複数のメモリ・アレイと、
書込み動作が待ち状態であるかどうかを示すためのレディ-ビジー（Ｒ／Ｂ）信号を運ぶためのレディ-ビジー（Ｒ／Ｂ）信号線、および、前記待ち状態の書込み動作が前記１つまたは複数のメモリ・アレイの少なくとも一部分への情報の書込みを失敗したかどうかを示すためのフェイル信号を運ぶためのフェイル信号線と、
を備えるメモリ・デバイス。
【請求項７】
前記Ｒ／Ｂ信号線および前記フェイル信号線が、前記１つまたは複数のメモリ・アレイに接続される、
請求項６に記載のメモリ・デバイス。
【請求項８】
前記Ｒ／Ｂ信号および前記フェイル信号を、それぞれ前記Ｒ／Ｂ信号線および前記フェイル信号線から受け取るためのメモリ・コントローラを更に備える、
請求項６に記載のメモリ・デバイス。
【請求項９】
前記Ｒ／Ｂ信号および前記フェイル信号を、それぞれ前記Ｒ／Ｂ信号線および前記フェイル信号線から受け取るためのプロセッサを更に備える、
請求項６に記載のメモリ・デバイス。
【請求項１０】
前記１つまたは複数のメモリ・アレイと関連し、前記フェイル信号を生成する状態マシンを更に備える、
請求項６に記載のメモリ・デバイス。
【請求項１１】
前記１つまたは複数のメモリ・アレイが、相変化メモリ（ＰＣＭ）を含む、
請求項６に記載のメモリ・デバイス。
【請求項１２】
前記フェイル信号が生成される前に、１つまたは複数の書込み誤りの訂正を試みるための誤り訂正符号（ＥＣＣ）部分を更に備える、
請求項６に記載のメモリ・デバイス。
【請求項１３】
前記Ｒ／Ｂ信号および前記フェイル信号が、オープン-ドレイン信号を含む、
請求項６に記載のメモリ・デバイス。
【請求項１４】
前記１つまたは複数のメモリ・アレイが、前記書込み動作のために前記１つまたは複数のメモリ・アレイを選択するための共通のチップ選択線を有するグループに配置される、
請求項６に記載のメモリ・デバイス。
【請求項１５】
メモリ・デバイスであって、
１つまたは複数のメモリ・アレイ、ならびに
書込み動作が待ち状態であるかどうかを示すためのＲ／Ｂ信号を運ぶためのレディ-ビジー（Ｒ／Ｂ）信号線、および、前記待ち状態の書込み動作が前記１つまたは複数のメモリ・アレイの少なくとも一部分への情報の書込みを失敗したかどうかを示すためのフェイル信号を運ぶためのフェイル信号線
を備えるメモリ・デバイスと、
前記Ｒ／Ｂ信号および前記フェイル信号を受け取るためのメモリ・コントローラと、
１つまたは複数のアプリケーションのホストをつとめるとともに前記書込み動作を開始するためのプロセッサと、
を備えるシステム。
【請求項１６】
前記プロセッサが、前記メモリ・コントローラと並行して、前記Ｒ／Ｂ信号および前記フェイル信号を受け取る、
請求項１５に記載のシステム。
【請求項１７】
前記１つまたは複数のメモリ・アレイと関連し、前記フェイル信号を生成する状態マシンを更に備える、
請求項１５に記載のシステム。
【請求項１８】
前記フェイル信号が生成される前に、１つまたは複数の書込み誤りの訂正を試みるための誤り訂正符号（ＥＣＣ）部分を更に備える、
請求項１５に記載のシステム。
【請求項１９】
前記１つまたは複数のメモリ・アレイが、相変化メモリ（ＰＣＭ）を含む、
請求項１５に記載のシステム。
【請求項２０】
前記１つまたは複数のメモリ・アレイが、前記書込み動作のために前記１つまたは複数のメモリ・アレイを選択するための共通のチップ選択線を有するグループに配置される、
請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する主題は、メモリ・デバイスおよびその動作方法に関する。
【背景技術】
【０００２】
メモリ・デバイスは、多くの種類の電子デバイスに用いられており、それらの例を少し挙げると、コンピュータ、携帯電話、ＰＤＡ、データ・ロガー、ナビゲーション機器などがある。こうした電子デバイスの中で、様々な種類の不揮発性メモリを用いることができ、それらの例を少し挙げると、ＮＡＮＤまたはＮＯＲフラッシュ・メモリ、ＳＲＡＭ、ＤＲＡＭ、相変化メモリなどがある。一般に、書込みプロセスまたはプログラミング・プロセスを利用して、こうしたメモリ・デバイス中に情報を記憶することができ、読取りプロセスを利用して、記憶された情報を取り出すことができる。
【０００３】
メモリ・デバイスの動作中、メモリ・アレイへの情報の書込みプロセスおよび／またはプログラミング・プロセスがフェイル（fail）することがある。こうした障害は、メモリ・デバイスがたとえば誤り訂正ならびに／または読取りおよび／もしくは書込みプロセスを再度開始するための能力などの安全機能を有していれば、必ずしも致命的動作エラーを引き起こすものではない。ただし、こうした安全機能の効率および／または信頼度は、少なくとも部分的には書込み／プログラム障害の検出に依存することがある。
【図面の簡単な説明】
【０００４】
非限定的かつ非網羅的実施形態について、以下の図を参照して記載する。特に明記しない限り、様々な図を通して類似の部品には類似の参照番号を付している。
【図１】一実施形態によるメモリ・デバイスの概略ブロック図である。
【図２】別の実施形態によるメモリ・デバイスの概略ブロック図である。
【図３】一実施形態によるメモリ・デバイスをプログラムするプロセスの流れ図である。
【図４】一実施形態によるコンピューティング・システムおよびメモリ・デバイスの概略ブロック図である。
【発明を実施するための形態】
【０００５】
本明細書を通しての「ある実施形態（one embodiment）」または「一実施形態(an embodiment)」という言及は、この実施形態に関連して説明する特定の特徴、構造、または特性がクレームされた発明の主題の少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書中の様々な箇所で使用される「ある実施形態では（in one embodiment）」または「一実施形態(in an embodiment)」といった句は、必ずしも全てが同一の実施形態を指すわけではない。さらに、これら特定の特徴、構造、または特性を１つまたは複数の実施形態中で組み合わせることができる。
【０００６】
一実施形態では、メモリ・デバイスが、待ち状態のプログラムまたは書込み動作が少なくとも部分的にフェイル（fail）しているかどうかを示すための非同期電子フェイル信号を生成することができる。こうした障害（failure）は、メモリ・デバイスのメモリ媒体中の障害に起因するものであることがある。たとえば、不揮発性メモリ（ＮＶＭ）デバイスは、比較的少数の非プログラマブルなメモリ素子またはメモリ・セルを有することがあるが、こうしたメモリ素子またはメモリ・セルは、使い古されかつ／または欠陥品となることがある。それに応じて、待ち状態のプログラム動作の障害を示すための非同期電子フェイル信号により、プログラムの正常な完了のためにコントローラおよび／またはプロセッサがいくつかのＮＶＭデバイスのステータス・レジスタをポーリングするプロセスを必要とせずに、こうした障害を管理する技法を提供することができる。ポーリングの場合、もしこれを行わなければプログラム動作中に他のメモリ動作に使用することのできるメモリ・バスを占有しまうことがあるので、こうしたポーリング・プロセスを避けることが可能であることは有益な場合がある。したがって、待ち状態のプログラム動作の障害を示すための非同期電子フェイル信号を利用してポーリング・プロセスを回避することにより、メモリ速度を改善することができる。こうした速度改善は、たとえば、メモリ・デバイス中のパラレルなＮＶＭデバイスの数が増大するにつれてより顕著になることがある。
【０００７】
ある特定の実施形態では、プログラム動作に応答してメモリの一部分に正常にプログラムが行われない場合、非同期フェイル信号を生成して、この障害をコントローラおよび／またはプロセッサに通知することができる。こうした通知に続いて、コントローラおよび／またはプロセッサは、いくつかの方法で、障害を管理することができる。たとえば、コントローラおよび／またはプロセッサは、メモリのフェイルした部分をリマップし、プログラム動作を繰り返して、リマップされたメモリに書込みを行うことができる。ある実施形態では、オープン・コレクタ構成を有するフェイル信号線を用いて、非同期フェイル信号を実現することができる。こうしたフェイル信号線は、個別のＮＶＭデバイスならびにコントローラおよび／またはプロセッサに接続することができる。たとえば、ある特定の実現例では、１つのフェイル信号線を、共通のチップ・イネーブル信号を共有するデバイスのグループを構成する個別のＮＶＭデバイスに接続することができる。したがって、特定のグループ中のこうしたＮＶＭデバイスのうちの１つまたは複数が書込みフェイル・イベントに陥った場合、このフェイル信号線をｌｏｗにすることができる。
【０００８】
一実施形態では、メモリ・システムは、レディ-ビジー（ready-busy）（Ｒ／Ｂ）信号を運ぶためのＲ／Ｂ信号線を備えることができる。こうしたＲ／Ｂ信号は、プログラム動作が待ち状態であり、（正常にも、異常を伴っても）完了していないことを示すことができる。たとえば、論理ｌｏｗ値が待ち状態のプログラム動作を示すことができるように、オープン-ドレイン構成を用いることによりＲ／Ｂ信号を実現させることができる。プログラム動作が完了した後、Ｒ／Ｂ信号は、論理ｈｉｇｈ値に遷移してプログラム動作の完了を示すことができる。フェイル信号線の場合と同様に、Ｒ／Ｂ信号線は、個別のＮＶＭデバイスに接続することができる。こうしたＲ／Ｂ信号線は、たとえば、そのときどきで変動する書込み遅延時間を伴うメモリ・デバイスに対して有効であることがあるが、こうしたメモリ・デバイスの例を少しだけ挙げると、ＮＯＲメモリ・デバイス、ＮＡＮＤメモリ・デバイス、ＰＣＭメモリ・デバイス等がある。
【０００９】
一実施形態では、メモリ・システムを動作させる方法が、１つまたは複数のメモリ・デバイスの待ち状態のプログラム動作を示すためのＲ／Ｂ信号を維持するステップと、この待ち状態のプログラム動作中、これら１つまたは複数のメモリ・デバイスのどれかについてプログラム・フェイル・イベントを判定するステップとを含むことがある。レディ-ビジー信号を維持するステップの間、特定の実現例は、プログラム動作が不成功であったことを示すための非同期フェイル信号を生成するステップを含むこともある。ある特定の実現例では、こうしたフェイル信号を生成するステップの後、Ｒ／Ｂ信号の値が遷移して、プログラム動作の終了を示すことができる。
【００１０】
別の実施形態では、メモリ・システムが、１つまたは複数のメモリ・デバイスと、プログラム動作が待ち状態であるかどうかを示すためのＲ／Ｂ信号を運ぶためのＲ／Ｂ信号線と、これら１つまたは複数のメモリ・デバイスの少なくとも一部分への情報の書込みを待ち状態のプラグラム動作が失敗したがどうかを示すための非同期フェイル信号を運ぶためのフェイル信号線とを備えることができる。一実現例では、メモリ・システムが、Ｒ／Ｂ信号線からＲ／Ｂ信号を受け取り、フェイル信号線からフェイル信号を受け取るためのメモリ・コントローラをさらに備えることができる。別の実現例では、メモリ・デバイスが、１つまたは複数のメモリ・アレイと、フェイル信号を生成することのできる書込み状態マシンとを備えることができる。
【００１１】
図１は、一実施形態によるメモリ・システム１００の概略ブロック図である。メモリ・システム１００は、読取り／プログラム・コマンド等の命令および／または情報を、たとえば、外部ホスト（図示せず）から受け取ることができる。メモリ・システム１００は、コントローラ１５０および／またはプロセッサ１６０により提供される情報を記憶するためのＮＶＭデバイス１１０を有することができる。ＮＶＭデバイス１１０は、不揮発性メモリ・セルのアレイと、たとえば直前の待ち状態のプログラム動作のパス（pass）／フェイル・ステータスをモニタするための書込み状態マシン１１５とを備えることができる。一実現例では、フェイル信号線１２５が、書込み状態マシン１１５により提供される非同期フェイル信号を運ぶことができる。フェイル信号線１２５は、コントローラ１５０におけるパス（pass）／フェイル入力ポートＰ／Ｆおよび／またはプロセッサ１６０におけるパス／フェイル入力ポートＰ／Ｆに電気的に接続することができる。クレームされた発明の主題はここまで限定しないが、ある特定の実施形態では、フェイル信号は、書込み状態マシン１１５により提供され、プルアップ抵抗１３２を介して電源Ｖｄｄにより実現されるオープン-ドレイン信号を含むことがある。したがって、書込み状態マシン１１５は、プログラム動作がフェイルした場合、フェイル信号線１２５をｌｏｗにすることができ、プログラム動作がパス（pass）した場合、フェイル信号線がフロート（float）になることを可能にすることができる。プログラム動作の障害には、たとえば、このプログラム動作に関連する情報の、ＮＶＭデバイス１１０中の１つまたは複数のメモリ・セルへの書込みの障害を含むことがある。ただし、プログラム動作の障害は、様々な種類のイベントに起因することがあり、この点については、クレームされた発明の主題は限定されない。
【００１２】
一実現例では、フェイル信号線１２５は、レディ-ビジー信号を運ぶＲ／Ｂ信号線１２２と関連して動作することができる。フェイル信号線１２５と同様に、Ｒ／Ｂ信号線１２２は、コントローラ１５０におけるレディ-ビジー入力ポートＲ／Ｂおよび／またはプロセッサ１６０におけるレディ-ビジー入力ポートＲ／Ｂに電気的に接続することができる。クレームされた発明の主題はここまで限定しないが、ある特定の実施形態では、Ｒ／Ｂ信号は、書込み状態マシン１１５により提供され、プルアップ抵抗１３４を介して電源Ｖｄｄにより実現されるオープン-ドレイン信号を含むことがある。したがって、書込み状態マシン１１５は、これにコントローラ１５０および／またはプロセッサ１６０がプログラム動作を発した場合、Ｒ／Ｂ信号線１２２をｌｏｗにすることができる一方で、このプログラム動作の完了の後、Ｒ／Ｂ信号線１２２がフロートになることを可能にすることができる。プログラム動作が完了の際に不成功の場合、書込み状態マシン１１５は、Ｒ／Ｂ信号線１２２がフロートになることを可能にする前に、フェイル信号線１２５をｌｏｗにすることができる。書込み状態マシン１１５がプログラム障害を示し、フェイル信号線１２５がｌｏｗにされた後、コントローラ１５０は、たとえば、次のプログラム動作の準備をするために、フェイル信号線１２５をリセットすることができる。一実現例では、フェイル信号線１２５は、こうしたフェイル信号専用の信号線を有する必要はない。たとえば、フェイル信号線１２５は、メモリ・システム１００が様々な目的のために使用することができる汎用Ｉ／Ｏ信号線を有することができる。汎用Ｉ／Ｏ信号は、Ｐ／Ｆ信号としてもＲ／Ｂ信号としても使用することができる。汎用Ｉ／Ｏ信号は、たとえば、メモリ・デバイスのデータ幅を広げるための付加信号に使用することもできる。当然、メモリ・システムのこうした詳細は、単なる例であり、クレームされた発明の主題はこのようには限定されない。
【００１３】
図２は、一実施形態によるメモリ・システム２００の概略ブロック図である。メモリ・システム２００は、読取り／プログラム・コマンドなどの命令および／または情報を、たとえば外部ホスト（図示せず）から受け取ることができる。メモリ・システム２００は、グループ２２０ａ、ｂ、ｃ、ｄ等に配置した複数のＮＶＭデバイス２１０を有することができる。図２には４つのグループ２２０を示しているが、任意の数のこうしたグループをメモリ・システム２００に含めることができ、この点については、クレームされた発明の主題は限定されない。個々のグループ２２０は、共通のチップ選択信号線２１２に接続された複数のＮＶＭデバイス２１０を備えることができる。たとえば、グループ２２０ａは、チップ選択信号線２１２ａに接続された複数のＮＶＭデバイス２１０を備えることができ、グループ２２０ｂは、チップ選択信号線２１２ｂに接続された複数のＮＶＭデバイス２１０を備えることができ、以下同様に続く。ＮＶＭデバイス２１０は、コントローラ２５０および／またはプロセッサ２６０により提供される情報を記憶することができる。ＮＶＭデバイス２１０は、不揮発性メモリ・セルのアレイと、たとえば直前の待ち状態のプログラム動作のパス／フェイル・ステータスをモニタするための書込み状態マシン２１５とを備えることができる。ある実現例では、フェイル信号線２２５が、個別のＮＶＭデバイス２１０の１つまたは複数の書込み状態マシン２１５のいずれかにより提供される非同期フェイル信号を運ぶことができる。特定のグループ２２０の個別のＮＶＭデバイス２１０からのフェイル信号線２２５を、電気的に互いに結合し、コントローラ２５０におけるパス（pass）／フェイル入力ポートＰ／Ｆおよび／またはプロセッサ２６０におけるパス（pass）／フェイル入力ポートＰ／Ｆに接続することができる。具体的には、ＮＶＭデバイス２１０のグループ２２０ａは、互いに電気的に結合され、コントローラ２５０における入力ポートＰ／Ｆ１および／またはプロセッサ２６０における入力ポートＰ／Ｆ１に接続された複数のフェイル信号線２２５を有することができる。同様に、ＮＶＭデバイス２１０のグループ２２０ｂは、互いに電気的に結合され、コントローラ２５０における入力ポートＰ／Ｆ２および／またはプロセッサ２６０における入力ポートＰ／Ｆ２に接続された複数のフェイル信号線２２５を有することができる。上で述べたように、メモリ・システム２００は、図２に示すグループ２２０ｃや２２０ｄなどの更なるＮＶＭデバイスのグループを、合計ｎグループ備えることができる。したがって、コントローラ２５０および／またはプロセッサ２６０は、たとえばｎ個の入力ポートＰ／Ｆｎを備えることができる。こうして、フェイル信号線２２５上のフェイル信号が、たとえばグループ２２０中の１つまたは複数のＮＶＭデバイス２１０のいずれかについてのプログラム障害を示すことができる。クレームされた発明の主題はここまで限定されないが、ある特定の実施形態では、フェイル信号は、書込み状態マシン２１５により提供され、プルアップ抵抗２３２を介して電源Ｖｄｄにより実現されるオープン-ドレイン信号を含むことがある。したがって、プログラム動作がフェイルの場合、特定のグループ２２０の１つまたは複数の書込み状態マシン２１５のいずれかが、フェイル信号線２２５をｌｏｗにすることができ、プログラム動作がパス（pass）した場合、１つまたは複数の書込み状態マシン２１５のいずれかが、フェイル信号線２２５がフロート（float）になることを可能にすることができる。プログラム動作の障害には、たとえば、このプログラム動作に関連する情報の、１つまたは複数のＮＶＭデバイス２１０のいずれかの中の１つまたは複数のメモリ・セルへの書込みの障害が含まれることがある。
【００１４】
ある実現例では、フェイル信号線２２５は、レディ-ビジー信号を運ぶＲ／Ｂ信号線２２２に関連して動作することができる。フェイル信号線２２５と同様に、特定のグループ２２０の個別のＮＶＭデバイス２１０からの複数のＲ／Ｂ信号線２２２を互いに結合し、コントローラ２５０におけるレディ-ビジー入力ポートＲ／Ｂおよび／またはプロセッサ２６０におけるレディ-ビジー入力ポートＲ／Ｂに電気的に接続することができる。具体的には、ＮＶＭデバイス２１０のグループ２２０ａは、互いに電気的に結合され、コントローラ２５０における入力ポートＲ／Ｂ１および／またはプロセッサ２６０における入力ポートＲ／Ｂ１に接続された複数のＲ／Ｂ信号線２２２を有することができる。同様に、ＮＶＭデバイス２１０のグループ２２０ｂは、互いに電気的に結合され、コントローラ２５０における入力ポートＲ／Ｂ２および／またはプロセッサ２６０における入力ポートＲ／Ｂ２に接続された複数のＲ／Ｂ信号線２２２を有することができる。上で述べたように、メモリ・システム２００は、図２に示すグループ２２０ｃや２２０ｄなどの更なるＮＶＭデバイスのグループを、合計ｎグループ備えることができる。したがって、コントローラ２５０および／またはプロセッサ２６０は、たとえばｎ個の入力ポートＲ／Ｂｎを備えることができる。クレームされた発明の主題はここまで限定されないが、ある特定の実施形態では、Ｒ／Ｂ信号は、１つまたは複数の書込み状態マシン２１５のいずれかにより提供され、プルアップ抵抗２３４を介して電源Ｖｄｄにより実現されるオープン-ドレイン信号を含むことがある。したがって、１つまたは複数の書込み状態マシン２１５のいずれかは、コントローラ２５０および／またはプロセッサ２６０がこの書込み状態マシン２１５にプログラム動作を発した場合、Ｒ／Ｂ信号線１２２をｌｏｗにすることができる一方で、このプログラム動作の完了の後、Ｒ／Ｂ信号線２２２がフロート（float）になることを可能にすることができる。プログラム動作が完了の際に不成功の場合、１つまたは複数の書込み状態マシン１１５のいずれかは、Ｒ／Ｂ信号線２２２がフロート（float）になることを可能にする前に、フェイル信号線２２５をｌｏｗにすることができる。１つまたは複数の書込み状態マシン２１５のいずれかがプログラム障害を示し、フェイル信号線２２５がｌｏｗにされた後、コントローラ２５０は、たとえば、次のプログラム動作の準備をするために、フェイル信号線２２５をリセットすることができる。たとえば、コントローラ２５０および／またはプロセッサ２６０がＲ／Ｂ信号線２２２上のＲ／Ｂ信号を論理ｈｉｇｈ値として検出し、フェイル信号線２２５上で論理ｈｉｇｈフェイル信号を検出した場合、プログラム動作が特定のグループ２２０中のＮＶＭデバイス２１０について問題なく完了したものとすることができる。一実現例では、上で議論したように、フェイル信号線２２５は、こうしたフェイル信号専用の信号線を有する必要はない。たとえば、フェイル信号線２２５は、メモリ・システム２００が様々な目的のために使用することができる汎用Ｉ／Ｏ信号線を有することができる。もちろん、メモリ・デバイスのこうした詳細は単なる例であり、ク���ームされた発明の主題はここまで限定されない。
【００１５】
図３は、一実施形態によるメモリ・デバイスをプログラムするプロセス３００の流れ図である。ブロック３１０では、プロセッサが、たとえば、プログラム動作を開始して、図１に示すＮＶＭデバイス１１０などのＮＶＭアレイに情報を記憶することができる。こうしたプログラム動作中、ブロック３２０では、特定のＮＶＭデバイスに関連した書込み状態マシンが、待ち状態のプログラム動作をコントローラまたはプロセッサに示す値にＲ／Ｂ信号を維持することができる。ブロック３３０では、プログラム動作中またはこの後、こうした書込み状態マシンが位置する特定のＮＶＭデバイスにプログラム-フェイル・イベントが発生したがどうかを、こうした書込み状態マシン自体が判定することができる。ブロック３４０では、プログラム-フェイルが発生していない場合、プロセス３００がブロック３５０に進むことができ、ここで、ＮＶＭデバイスの１つまたは複数の特定のグループの書込み状態マシンが、プログラム完了を示す信号をコントローラおよび／またはプロセッサに供給することができる。こうした信号は、非同期Ｒ／Ｂ信号および／または非同期フェイル信号を含むことができる。たとえば、Ｒ／Ｂ信号を論理ｈｉｇｈ値に維持して、プログラム動作の完了を示すことができる。また、フェイル信号を論理ｈｉｇｈ値に維持して、プログラム動作の成功を示すことができる。ブロック３４０で、プログラム-フェイルが発生している場合、プロセス３００がブロック３６０に進むことができ、ここで、ＮＶＭデバイスの１つまたは複数の特定のグループの書込み状態マシンが、プログラム障害を示す信号をコントローラおよび／またはプロセッサに供給することができる。こうした信号は、Ｒ／Ｂ信号および／またはフェイル信号を含むことができる。たとえば、ブロック３７０で、Ｒ／Ｂ信号を論理ｈｉｇｈ値に維持して、待ち状態のプログラム動作またはプログラム動作の完了を示すことができる。ある特定の実現例では、たとえば、論理ｈｉｇｈ値がプログラム動作の完了を示すことができるように、オープン-ドレイン構成を用いることによりＲ／Ｂ信号を実現することができる。一方、フェイル信号は、論理ｈｉｇｈ値から論理ｌｏｗ値に遷移して、プログラム動作がフェイルしたことを示すことができる。フェイル・イベントは複数のＮＶＭデバイスのうちの１つまたは複数で発生したものであることあるが、個別のＮＶＭデバイスからのそれぞれのフェイル信号線は互いに結合されていることがあるので、コントローラおよび／またはプロセッサは、どの特定の１つまたは複数のＮＶＭデバイスが障害の原因であるかをここでは認識することができない。したがって、ブロック３８０で、コントローラおよび／またはプロセッサは、１つまたは複数のグループのそれぞれのＮＶＭデバイスにポーリングを行って、どの特定の１つまたは複数のＮＶＭデバイスが障害を引き起こしたかを判定することができる。もちろん、プロセス３００のこうした詳細は単なる例であり、クレームされた発明の主題はここまで限定されない。
【００１６】
一実施形態では、メモリ・システムは、プログラム-フェイル・イベントを発生させる１つまたは複数の誤りの訂正を試みるために、誤り訂正符号（ＥＣＣ）処理を適用することができる。こうしたＥＣＣ処理は、メモリ・デバイスの内部から実施することができるのだが、この処理は、たとえば、フェイル信号を生成する前に適用することができる。つまり、コントローラおよび／またはプロセッサにプログラム動作が不成功であったことを通知する前に、状態マシンが、プログラム動作の失敗を引き起こした１つまたは複数の誤りを修復するために、ＥＣＣ処理を管理することができる。こうしたＥＣＣ処理により誤りを修復することができた場合、フェイル信号を生成する必要はなく、プログラム動作は問題なく終了することができる。一方、こうしたＥＣＣ処理により誤りを修復することができなかった場合、たとえば、プロセス３００のブロック３６０でのように、フェイル信号を生成することができる。
【００１７】
図４は、一実施形態によるコンピューティング・システム４００およびメモリ・デバイスの概略図である。こうしたコンピューティング・デバイスは、たとえばアプリケーションおよび／または他のコードを実行するための１つまたは複数のプロセッサを備えることができる。たとえば、メモリ・デバイス４１０は、図１に示すＮＶＭデバイス１１０を備えることができる。コンピューティング・デバイス４０４は、メモリ・デバイス４１０を管理するように構成可能な任意のデバイス、機器またはマシンの代表的なものとすることができる。メモリ・デバイス４１０は、メモリ・コントローラ４１５およびメモリ４２２を有することができる。限定ではなく例として示すと、コンピューティング・デバイス４０４は、たとえばデスクトップ・コンピュータ、ラップトップ・コンピュータ、ワークステーション、サーバ装置等の１つまたは複数のコンピューティング・デバイスおよび／またはプラットフォームと、たとえばパーソナル・デジタル・アシスタント、移動通信装置等の１つまたは複数のパーソナル・コンピューティングまたはコミュニケーション・デバイスまたは機器と、たとえばデータベースまたはデータ記憶サービス・プロバイダ／システム等のコンピューティング・システムおよび／または関連サービス・プロバイダ機能と、ならびに／またはこれらの要素を任意に組み合わせたものを有することができる。
【００１８】
システム４００中に示す様々なデバイスの全てまたは一部分、および本明細書でさらに説明する処理（process）、方法は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの任意の組合せを使用することまたは含めることにより実施することができることが分かる。したがって、限定ではなく例として示すと、コンピューティング・デバイス４０４は、バス４４０およびホストまたはメモリ・コントローラ４１５を介してメモリ４２２に動作可能に結合された少なくとも１つの処理ユニット４２０を有することができる。処理ユニット４２０は、データ・コンピューティング手順またはプロセスの少なくとも一部分を実施するように構成可能な１つまたは複数の回路の代表的なものである。限定ではなく例として示すと、処理ユニット４２０は、プロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路、デジタル信号プロセッサ、プログラマブル・ロジック・デバイス、フィールド・プログラマブル・ゲート・アレイ等をそれぞれ１つまたは複数有すること、あるいは、これらの要素の任意の組合せを有することができる。処理ユニット４２０は、メモリ・コントローラ４１５と通信を行うように構成されたオペレーティング・システムを有することができる。こうしたオペレーティング・システムは、たとえば、バス４４０を介してメモリ・コントローラ４１５に送るコマンドを生成することができる。こうしたコマンドは、読取りおよび／または書込みコマンドを含むことができる。たとえば書込みコマンドに応答して、メモリ・コントローラ４１５は、たとえば、この書込みコマンドに関連する情報をメモリ・パーティションに書き込むためのセット・パルスまたはリセット・パルスなどのバイアス信号を提供することができる。
【００１９】
メモリ４２２は、任意のデータ記憶メカニズムの代表的なものである。メモリ４２２は、たとえばプライマリメモリ４２４および／またはセカンダリメモリ４２６を有することができるが、これらのメモリそれぞれを、たとえば、上で議論したような複数のパーティションに区切ることができる。プライマリメモリ４２４は、たとえばランダム・アクセス・メモリ、リード・オンリー・メモリ等を有することができる。この例では、処理ユニット４２０から分離しているものとして図示されているが、プライマリメモリ４２４の全てまたは一部分を、処理ユニット４２０中に設けることも、処理ユニット４２０と同じ位置に配置／結合することもできることを理解されたい。一実現例では、１つまたは複数のデータ線４７５が、メモリ・コントローラ４１５とメモリ４２２とを電子的に相互接続するフェイル信号線および／またはＲ／Ｂ信号線を有することができる。さらに、クレームされた発明の主題はここまで限定されないが、１つまたは複数のデータ線４８０が、処理ユニット４２０とメモリ４２２とを電子的に相互接続するフェイル信号線および／またはＲ／Ｂ信号線を有することができる。
【００２０】
セカンダリメモリ４２６は、たとえば、プライマリメモリと同一もしくは同様の種類のメモリ、および／または、たとえばディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ、固体メモリ・ドライブ等の１つもしくは複数のデータ記憶デバイスもしくはシステムを有することができる。ある実現例では、セカンダリメモリ４２６を、コンピュータ読出し可能媒体４２８を動作可能に受け入れることができるようにすることも、コンピュータ読出し可能媒体４２８に結合するように構成可能にすることもできる。コンピュータ読出し可能媒体４２８には、たとえば、システム４００中のデバイスの１つまたは複数のデバイスに対するデータ、符号、および／または命令を運ぶことおよび／またはアクセス可能にする任意の媒体が含まれることがある。
【００２１】
一実施形態では、システム４００は、たとえば図２に示すメモリ・デバイス２１０などの１つまたは複数のメモリ・デバイスを備えることができる。こうしたメモリ・デバイスは、たとえば１つまたは複数のメモリ・アレイと書込み状態マシン２１５とを備えることができる。システム４００は、プログラム動作が待ち状態かどうかを示すためのＲ／Ｂ信号を運ぶためのＲ／Ｂ信号線２２２と、待ち状態のプログラム動作による、１つまたは複数のメモリ・デバイス２１０の少なくとも一部分への情報の書込みが失敗したかどうかを示すための非同期フェイル信号を運ぶためのフェイル信号線２２５とを備えることができる。システム４００は、Ｒ／Ｂ信号およびフェイル信号を受け取るためのメモリ・コントローラ２５０と、１つまたは複数のアプリケーションのホストをつとめるとともに、プログラム動作を開始するためのプロセッサ２６０とを更に備えることができる。
【００２２】
コンピューティング・デバイス４０４は、たとえば入力／出力４３２を有することができる。入力／出力４３２は、人による入力および／もしくは機械入力を受け入れるようにもしくは伝えるように構成可能な１つもしくは複数のデバイスもしくは機能、ならびに／または、人による出力および／もしくは機械出力を送達もしくは提供するように構成可能な１つもしくは複数のデバイスもしくは機能の代表的なものである。限定ではなく例として示すと、入力／出力デバイス４３２には、動作可能に構成されたディスプレイ、スピーカ、キーボード、マウス、トラックボール、タッチ・スクリーン、データ・ポート等が含まれることがある。
【００２３】
実施形態の例として目下考えられるものの例示および説明を行ってきたが、特許請求する主題から逸脱することなく、他の様々な修正形態を作成することができること、均等物を置き換えることができることが当業者には理解されるであろう。さらに、本明細書に記載する中心的概念から逸脱することなく、特許請求する主題の教示内容に特定の状況を適応させるために、多くの修正形態を作成することができる。したがって、特許請求する主題は、開示された特定の実施形態に限定されず、特許請求するこうした主題は、添付の特許請求の範囲に含まれる全ての実施形態、およびこれらの均等物を含むこともできる。
【図１】
2011238217.tif 000003
【図２】
2011238217.tif 000004
【図３】
2011238217.tif 000005
【図４】
2011238217.tif 000006
【外国語明細書】
【発明の名称】
2011238217.tif 000007
【技術分野】
【０００１】
2011238217.tif 000008
【背景技術】
【０００２】
2011238217.tif 000009
【図面の簡単な説明】
【０００３】
2011238217.tif 000010
【発明を実施するための形態】
【０００４】
2011238217.tif 000011
2011238217.tif 000012
2011238217.tif 000013
2011238217.tif 000014
2011238217.tif 000015
2011238217.tif 000016
2011238217.tif 000017
2011238217.tif 000018
2011238217.tif 000019
2011238217.tif 000020
2011238217.tif 000021
2011238217.tif 000022
2011238217.tif 000023
2011238217.tif 000024
2011238217.tif 000025
2011238217.tif 000026
2011238217.tif 000027
【要約】
2011238217.tif 000028
【選択図】図１
【図１】
2011238217.tif 000029
【図２】
2011238217.tif 000030
【図３】
2011238217.tif 000031
【図４】
2011238217.tif 000032