(57)【要約】      （修正有）【課題】半導体パッケージ装置内の不揮発性メモリへのデータ書き込みが、不成功に終わった場合のデータ回復方法を提供する。【解決手段】半導体パッケージ装置（電子処理システム）１０は、プロセッサ１１と不揮発性メモリ１２とロジック１３を含む。ロジックは不揮発性メモリの第１の部分においてデータのプログラミングを試行するとともに試行が成功したかどうかを判定し、試行が不成功に終わったと判定した場合には内部データ移動オペレーションで不揮発性メモリの第２の部分にデータを回復する。【選択図】図１
2019114318.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサに通信可能に連結された不揮発性メモリと、
前記プロセッサ及び前記不揮発性メモリに通信可能に連結されたロジックであって、
前記不揮発性メモリの第１の部分においてデータのプログラミングを試行し、
前記試行が成功したかどうかを判定し、
前記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、前記不揮発性メモリの第２の部分に前記データを回復する
ロジックと
を備える、電子処理システム。
【請求項２】
前記ロジックは更に、
前記試行の前に、前記不揮発性メモリのキャッシュに前記データを格納し、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する、
請求項１に記載のシステム。
【請求項３】
前記ロジックは更に、
前記データの前記回復の前に、前記不揮発性メモリの前記キャッシュに格納されている前記データが有効かどうかを判定する、
請求項２に記載のシステム。
【請求項４】
前記ロジックは更に、
前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの一時的位置に、前記内部データ移動オペレーションで前記データを移動し、
前記不揮発性メモリの前記一時的位置から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する、
請求項３に記載のシステム。
【請求項５】
前記ロジックは更に、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記第１の部分から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで、既にプログラミングされたデータを移動する、
請求項４に記載のシステム。
【請求項６】
前記不揮発性メモリはＮＡＮＤメモリを含む、請求項１から５のいずれか一項に記載のシステム。
【請求項７】
１又は複数の基板と、
前記１又は複数の基板に連結されたロジックとを備え、前記ロジックは、構成可能なロジック及び固定機能ハードウェアロジックのうちの１又は複数に少なくとも部分的に実装され、前記１又は複数の基板に連結された前記ロジックは、
不揮発性メモリの第１の部分においてデータのプログラミングを試行し、
前記試行が成功したかどうかを判定し、
前記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、前記不揮発性メモリの第２の部分に前記データを回復する
半導体パッケージ装置。
【請求項８】
前記ロジックは更に、
前記試行の前に、前記不揮発性メモリのキャッシュに前記データを格納し、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する、
請求項７に記載の装置。
【請求項９】
前記ロジックは更に、
前記データの前記回復の前に、前記不揮発性メモリの前記キャッシュに格納されている前記データが有効かどうかを判定する、
請求項８に記載の装置。
【請求項１０】
前記ロジックは更に、
前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの一時的位置に、前記内部データ移動オペレーションで前記データを移動し、
前記不揮発性メモリの前記一時的位置から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する、
請求項９に記載の装置。
【請求項１１】
前記ロジックは更に、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記第１の部分から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで既にプログラミングされたデータを移動する、
請求項１０に記載の装置。
【請求項１２】
前記不揮発性メモリはＮＡＮＤメモリを含む、請求項７から１１のいずれか一項に記載の装置。
【請求項１３】
不揮発性メモリの第１の部分においてデータのプログラミングを試行する段階と、
前記試行が成功したかどうかを判定する段階と、
前記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、前記不揮発性メモリの第２の部分に前記データを回復する段階と
を備える、データ回復の方法。
【請求項１４】
前記試行の前に、前記不揮発性メモリのキャッシュに前記データを格納する段階と、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する段階と
を更に備える、請求項１３に記載の方法。
【請求項１５】
前記データの前記回復の前に、前記不揮発性メモリの前記キャッシュに格納されている前記データが有効かどうかを判定する段階
を更に備える、請求項１４に記載の方法。
【請求項１６】
前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの一時的位置に、前記内部データ移動オペレーションで前記データを移動する段階と、
前記不揮発性メモリの前記一時的位置から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する段階と
を更に備える、請求項１５に記載の方法。
【請求項１７】
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記第１の部分から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで既にプログラミングされたデータを移動する段階
を更に備える、請求項１６に記載の方法。
【請求項１８】
前記不揮発性メモリはＮＡＮＤメモリを含む、請求項１３から１７のいずれか一項に記載の方法。
【請求項１９】
命令セットを含む、少なくとも１つのコンピュータ可読媒体であって、前記命令セットは、コンピューティングデバイスにより実行された場合、
不揮発性メモリの第１の部分においてデータのプログラミングを試行することと、
前記試行が成功したかどうかを判定することと、
前記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、前記不揮発性メモリの第２の部分に前記データを回復することと
を前記コンピューティングデバイスに実行させる、少なくとも１つのコンピュータ可読媒体。
【請求項２０】
更なる命令セットを含む、前記少なくとも１つのコンピュータ可読媒体であって、前記更なる命令セットは、前記コンピューティングデバイスにより実行された場合、
前記試行の前に、前記不揮発性メモリのキャッシュに前記データを格納することと、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復することと
を前記コンピューティングデバイスに実行させる、請求項１９に記載の少なくとも１つのコンピュータ可読媒体。
【請求項２１】
更なる命令セットを含む、前記少なくとも１つのコンピュータ可読媒体であって、前記更なる命令セットは、前記コンピューティングデバイスにより実行された場合、
前記データの前記回復の前に、前記不揮発性メモリの前記キャッシュに格納されている前記データが有効かどうかを判定すること
を前記コンピューティングデバイスに実行させる、請求項２０に記載の少なくとも１つのコンピュータ可読媒体。
【請求項２２】
更なる命令セットを含む、前記少なくとも１つのコンピュータ可読媒体であって、前記更なる命令セットは、前記コンピューティングデバイスにより実行された場合、
前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの一時的位置に、前記内部データ移動オペレーションで前記データを移動することと、
前記不揮発性メモリの前記一時的位置から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復することと
を前記コンピューティングデバイスに実行させる、請求項２１に記載の少なくとも１つのコンピュータ可読媒体。
【請求項２３】
更なる命令セットを含む、前記少なくとも１つのコンピュータ可読媒体であって、前記更なる命令セットは、前記コンピューティングデバイスにより実行された場合、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記第１の部分から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで既にプログラミングされたデータを移動すること
を前記コンピューティングデバイスに実行させる、請求項２２に記載の少なくとも１つのコンピュータ可読媒体。
【請求項２４】
前記不揮発性メモリはＮＡＮＤメモリを含む、請求項１９から２３のいずれか一項に記載の少なくとも１つのコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は一般的にメモリシステムに関する。特に、実施形態はＮＡＮＤプログラミングフェイルを処理するための内部コピーに関する。
【背景技術】
【０００２】
マルチレベル不揮発性メモリは、１セルにつき１ビットを超えて格納する。１セルにつき４つの電圧レベルを有することが可能なマルチレベルＮＡＮＤメモリが、１セルにつき２ビットのデータを表してよい。１セルにつき８つの電圧レベルを有するＮＡＮＤメモリは、トリプルレベルセル（ｔｒｉｐｌｅ−ｌｅｖｅｌ  ｃｅｌｌ、ＴＬＣ）メモリと称されてよく、１セルにつき３ビットのデータを表してよい。１セルにつき１６の電圧レベルを有するＮＡＮＤメモリは、クアッドレベルセル（ｑｕａｄ−ｌｅｖｅｌ  ｃｅｌｌ、ＱＬＣ）メモリと称されてよく、１セルにつき４ビットのデータを表してよい。いくつかのＮＡＮＤフラッシュデバイスにおいては、ブロックを消去することにより、全てのビット値が１に設定されてよい。プログラミングとは、ビット値１からビット値０へとビットを変更するプロセスを指してよい。エラー訂正コード（ＥＣＣ）及び排他的論理和（ＸＯＲ）パリティ等の様々な技術は、様々なメモリエラーの訂正に用いられてよい。
【図面の簡単な説明】
【０００３】
以下の明細書及び添付の特許請求の範囲を読むことによって、ならびに、以下の図面を参照することによって、実施形態の様々な利点が当業者に明らかになる。
【０００４】
【図１】実施形態に係る電子処理システムの例のブロック図である。
【０００５】
【図２】実施形態に係る半導体パッケージ装置の例のブロック図である。
【０００６】
【図３Ａ】実施形態に係るデータ回復の方法の例のフローチャートである。
【図３Ｂ】実施形態に係るデータ回復の方法の例のフローチャートである。
【図３Ｃ】実施形態に係るデータ回復の方法の例のフローチャートである。
【０００７】
【図４】実施形態に係るメモリコントローラの例のブロック図である。
【０００８】
【図５】実施形態に係るデータ回復の方法の他の例のフローチャートである。
【０００９】
【図６】実施形態に係る様々なコマンドキューの例の例示的な図である。
【００１０】
【図７】実施形態に係るデータ移動の例の例示的な図である。
【発明を実施するための形態】
【００１１】
本明細書において説明される様々な実施形態は、メモリコンポーネント、及び／又はメモリコンポーネントへのインターフェースを含んでよい。そのようなメモリコンポーネントは、揮発性メモリ及び／又は不揮発性メモリを含んでよい。不揮発性メモリは、記憶媒体により格納されたデータの状態を維持するための電力を必要としない記憶媒体であってよい。一実施形態において、メモリデバイスはブロックアドレス指定可能メモリデバイスを含んでよく、例えば、ＮＡＮＤ技術又はＮＯＲ技術ベースのものなどである。メモリデバイスはまた、３Ｄクロスポイントメモリデバイス、又は、他のバイトアドレス指定可能ライト・イン・プレイス（ｗｒｉｔｅ−ｉｎ−ｐｌａｃｅ）不揮発性メモリデバイス等の、次世代の不揮発性デバイスを含んでよい。一実施形態において、メモリデバイスは、カルコゲナイドガラスを用いるメモリデバイス、複数の閾値レベルのＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、シングルレベル又はマルチレベル相変化メモリ（ＰＣＭ）、抵抗変化メモリ、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ（ＦｅＴＲＡＭ）、反強誘電体メモリ、メモリスタ技術を組み込んだ磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、金属酸化物ベース、酸素欠損ベース、及び導電性ブリッジランダムアクセスメモリ（ＣＢ−ＲＡＭ）を含む抵抗変化メモリ、又は、スピン注入ＭＲＡＭ（ＳＴＴ−ＭＲＡＭ）、スピントロニクス磁気接合メモリベースのデバイス、磁気トンネル接合（ＭＴＪ）ベースのデバイス、ＤＷ（ドメインウォール）及びＳＯＴ（スピン軌道トランスファー）ベースのデバイス、サイリスタ・ベースのメモリデバイス、若しくは上記の任意の組み合わせであってよく、若しくは含んでよく、又は、他のメモリであってよい。メモリデバイスは、ダイ自体、及び／又は、パッケージされたメモリ製品を指してよい。特定の実施形態において、不揮発性メモリを有するメモリコンポーネントは、ＪＥＳＤ２１８、ＪＥＳＤ２１９、ＪＥＳＤ２２０−１、ＪＥＳＤ２２３Ｂ、ＪＥＳＤ２２３−１、又は、他の適切な規格等の、ＪＥＤＥＣ（電子デバイス技術合同協議会）により公表されている１又は複数の規格に準拠してよい（本明細書に引用されているＪＥＤＥＣ規格はｊｅｄｅｃ．ｏｒｇにて利用可能である）。
【００１２】
揮発性メモリは、媒体により格納されたデータの状態を維持するための電力を必要とする記憶媒体であってよい。揮発性メモリの非限定的な例として、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）又はスタティックランダムアクセスメモリ（ＳＲＡＭ）等の様々なタイプのＲＡＭがあってよい。メモリモジュールにおいて用いられ得る特定の一タイプのＤＲＡＭが、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）である。特定の実施形態において、メモリコンポーネントのＤＲＡＭは、ＤＤＲ  ＳＤＲＡＭ用にＪＥＳＤ７９Ｆ、ＤＤＲ２  ＳＤＲＡＭ用にＪＥＳＤ７９−２Ｆ、ＤＤＲ３  ＳＤＲＡＭ用にＪＥＳＤ７９−３Ｆ、ＤＤＲ４  ＳＤＲＡＭ用にＪＥＳＤ７９−４Ａ、Ｌｏｗ  Ｐｏｗｅｒ  ＤＤＲ（ＬＰＤＤＲ）用にＪＥＳＤ２０９、ＬＰＤＤＲ２用にＪＥＳＤ２０９−２、ＬＰＤＤＲ３用にＪＥＳＤ２０９−３、及び、ＬＰＤＤＲ４用にＪＥＳＤ２０９−４、等、ＪＥＤＥＣにより公表されている規格に準拠してよい（これらの規格はｗｗｗ．ｊｅｄｅｃ．ｏｒｇにて利用可能である）。そのような規格（及び同様の規格）は、ＤＤＲベースの規格と称されてよく、そのような規格を実装する記憶デバイスの通信インターフェースは、ＤＤＲベースのインターフェースと称されてよい。
【００１３】
ここで図１を参照すると、電子処理システム１０の実施形態が、プロセッサ１１と、プロセッサ１１に通信可能に連結された不揮発性メモリ１２と、プロセッサ１１及び不揮発性メモリ１２に通信可能に連結されたロジック１３であって、不揮発性メモリ１２の第１の部分においてデータのプログラミングを試行し、試行が成功したかどうかを判定し、試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、不揮発性メモリ１２の第２の部分にデータを回復するロジックとを含んでよい。いくつかの実施形態において、ロジック１３は、試行の前に、不揮発性メモリ１２のキャッシュにデータを格納し、試行が不成功に終わったと判定した場合、不揮発性メモリ１２のキャッシュから不揮発性メモリ１２の第２の部分に、内部データ移動オペレーションでデータを回復するよう構成されてよい。例えば、ロジック１３はまた、データの回復の前に、不揮発性メモリのキャッシュに格納されているデータが有効かどうかを判定するよう構成されてよい。いくつかの実施形態において、ロジック１３は更に、不揮発性メモリ１２のキャッシュから不揮発性メモリ１２の一時的位置に、内部データ移動オペレーションでデータを移動し、不揮発性メモリ１２の一時的位置から不揮発性メモリ１２の第２の部分に、内部データ移動オペレーションでデータを回復するよう構成されてよい。いくつかの実施形態において、ロジック１３はまた、試行が不成功に終わったと判定した場合、不揮発性メモリ１２の第１の部分から不揮発性メモリ１２の第２の部分に、内部データ移動オペレーションで、既にプログラミングされたデータを移動するよう構成されてよい。例えば、不揮発性メモリ１２はＮＡＮＤメモリを含んでよい。いくつかの実施形態において、ロジック１３は、プロセッサ１１（例えば、同一のダイ上）を含む様々な構成要素の中に、又は、それらと共に配置されてよい。
【００１４】
上述のプロセッサ１１、不揮発性メモリ１２、ロジック１３、及び他のシステム構成要素のそれぞれの実施形態は、ハードウェア、ソフトウェア、又はそれらの任意の適切な組み合わせに実装されてよい。例えば、ハードウェア実装は、例えばプログラマブルロジックアレイ（ＰＬＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、複合プログラマブルロジックデバイス（ＣＰＬＤ）等の構成可能なロジック、又は、例えば特定用途向け集積回路（ＡＳＩＣ）、相補型金属酸化膜半導体（ＣＭＯＳ）若しくはトランジスタ−トランジスタロジック（ＴＴＬ）技術等の回路技術を用いる固定機能ロジックハードウェア等、又はそれらの任意の組み合わせを含んでよい。
【００１５】
代替的に、又は追加的に、これらの構成要素の全て又は一部は、プロセッサ又はコンピューティングデバイスにより実行される、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、ファームウェア、フラッシュメモリ等のマシン又はコンピュータ可読記憶媒体に格納されたロジック命令セットとして、１又は複数のモジュールに実装されてよい。例えば、構成要素のオペレーションを実行するためのコンピュータプログラムコードは、ＰＹＴＨＯＮ、ＰＥＲＬ、ＪＡＶＡ（登録商標）、ＳＭＡＬＬＴＡＬＫ、Ｃ＋＋、Ｃ＃、又は同様のもの等のオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語又は同様のプログラミング言語等の従来の手続き型のプログラミング言語を含むオペレーティングシステム（ＯＳ）に適用可能な又は適切な１又は複数のプログラミング言語の任意の組み合わせによって書かれてよい。例えば、不揮発性メモリ１２、永続的な記憶媒体、又は他のシステムメモリは、プロセッサ１１により実行された場合、システム１０の１又は複数の構成要素、機能、又は態様（例えば、ロジック１３、不揮発性メモリの第１の部分においてデータのプログラミングを試行すること、試行が成功したかどうかを判定すること、試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、不揮発性メモリの第２の部分にデータを回復すること等）を、システム１０に実装させる命令セットを格納してよい。
【００１６】
ここで図２を参照すると、半導体パッケージ装置２０の実施形態が、１又は複数の基板２１と、１又は複数の基板２１に連結されたロジック２２であって、構成可能なロジック及び固定機能ハードウェアロジックのうちの１又は複数の中に、少なくとも部分的に実装されているロジック２２とを含んでよい。１又は複数の基板に連結されたロジック２２は、不揮発性メモリの第１の部分においてデータのプログラミングを試行し、試行が成功したかどうかを判定し、試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、不揮発性メモリの第２の部分にデータを回復するよう構成されてよい。いくつかの実施形態において、ロジック２２は、試行の前に、不揮発性メモリのキャッシュにデータを格納し、試行が不成功に終わったと判定した場合、不揮発性メモリのキャッシュから不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復するよう構成されてよい。例えば、ロジック２２はまた、データの回復の前に、不揮発性メモリのキャッシュに格納されているデータが有効かどうかを判定するよう構成されてよい。いくつかの実施形態において、ロジック２２は更に、不揮発性メモリのキャッシュから不揮発性メモリの一時的位置に、内部データ移動オペレーションでデータを移動し、不揮発性メモリの一時的位置から不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復するよう構成されてよい。いくつかの実施形態において、ロジック２２はまた、試行が不成功に終わったと判定した場合、不揮発性メモリの第１の部分から不揮発性メモリの第２の部分に、内部データ移動オペレーションで既にプログラミングされたデータを移動するよう構成されてよい。例えば、不揮発性メモリはＮＡＮＤメモリを含んでよい。
【００１７】
ロジック２２の実施形態、及び装置２０の他のコンポーネントは、ハードウェア、ソフトウェア、又はそれらの任意の組み合わせに実装されてよく、ハードウェアへの少なくとも部分的な実装も含む。例えば、ハードウェア実装は、例えばＰＬＡ、ＦＰＧＡ、ＣＰＬＤ等の構成可能なロジック、例えばＡＳＩＣ、ＣＭＯＳ、又はＴＴＬ技術等の回路技術を用いる固定機能ロジックハードウェア、又は、それらの任意の組み合わせを含んでよい。追加的に、これらの構成要素の一部は、プロセッサ又はコンピューティングデバイスにより実行される、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ファームウェア、フラッシュメモリ等のマシン又はコンピュータ可読記憶媒体に格納されたロジック命令セットとして、１又は複数のモジュールに実装されてよい。例えば、構成要素のオペレーションを実行するためのコンピュータプログラムコードは、ＰＹＴＨＯＮ、ＰＥＲＬ、ＪＡＶＡ（登録商標）、ＳＭＡＬＬＴＡＬＫ、Ｃ＋＋、Ｃ＃、又は同様のもの等のオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語又は同様のプログラミング言語等の従来の手続き型のプログラミング言語を含むＯＳに適用可能な又は適切な１又は複数のプログラミング言語の任意の組み合わせによって書かれてよい。
【００１８】
図３Ａ〜３Ｃを参照すると、データ回復の方法の実施形態３０は、ブロック３１で不揮発性メモリの第１の部分においてデータのプログラミングを試行する段階と、ブロック３２で試行が成功したかどうかを判定する段階と、ブロック３３で、試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、不揮発性メモリの第２の部分にデータを回復する段階とを含んでよい。方法３０のいくつかの実施形態は、ブロック３４で、試行の前に、不揮発性メモリのキャッシュにデータを格納する段階と、ブロック３５で、試行が不成功に終わったと判定した場合、不揮発性メモリのキャッシュから不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復する段階とを含んでよい。例えば、方法３０はまた、ブロック３６で、データの回復の前に、不揮発性メモリのキャッシュに格納されているデータが有効かどうかを判定する段階を含んでよい。方法３０のいくつかの実施形態は更に、ブロック３７で、不揮発性メモリのキャッシュから不揮発性メモリの一時的位置に、内部データ移動オペレーションでデータを移動する段階と、ブロック３８で不揮発性メモリの一時的位置から不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復する段階とを含んでよい。方法３０のいくつかの実施形態は更に、ブロック３９で試行が不成功に終わったと判定した場合、不揮発性メモリの第１の部分から不揮発性メモリの第２の部分に、既にプログラミングされたデータを内部データ移動オペレーションで移動する段階を含んでよい。例えば、ブロック４０で、不揮発性メモリはＮＡＮＤメモリを含んでよい。
【００１９】
方法３０の実施形態は、システム、装置、コンピュータ、デバイスなど、例えば本明細書に説明されているもの等、に実装されてよい。特に、方法３０のハードウェア実装は、例えばＰＬＡ、ＦＰＧＡ、ＣＰＬＤ等の構成可能なロジック、例えばＡＳＩＣ、ＣＭＯＳ、又はＴＴＬ技術等の回路技術を用いる固定機能ロジックハードウェア、又は、それらの任意の組み合わせを含んでよい。代替的に、又は追加的に、方法３０は、プロセッサ又はコンピューティングデバイスにより実行される、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ファームウェア、フラッシュメモリ等のマシン又はコンピュータ可読記憶媒体に格納されたロジック命令セットとして、１又は複数のモジュールに実装されてよい。例えば、構成要素のオペレーションを実行するためのコンピュータプログラムコードは、ＰＹＴＨＯＮ、ＰＥＲＬ、ＪＡＶＡ（登録商標）、ＳＭＡＬＬＴＡＬＫ、Ｃ＋＋、Ｃ＃、又は同様のもの等のオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語又は同様のプログラミング言語等の従来の手続き型のプログラミング言語を含むＯＳに適用可能な又は適切な１又は複数のプログラミング言語の任意の組み合わせによって書かれてよい。
【００２０】
例えば、方法３０は、以下の実施例１９から２４に関連して説明されるようなコンピュータ可読媒体上に実装されてよい。方法３０の実施形態又は一部は、ファームウェア上、アプリケーション上（例えば、アプリケーションプログラミングインターフェース（ＡＰＩ）を介して）、又は、オペレーティングシステム（ＯＳ）上で実行されているドライバソフトウェアに実装されてよい。
【００２１】
図４を参照すると、メモリコントローラ４２の実施形態は、ＮＡＮＤプログラマ４３と、プログラミングフェイルハンドラ４４とを含んでよい。ＮＡＮＤプログラマ４３は、ＮＡＮＤメモリの第１ブロックにデータをプログラミングする技術を含んでよい。プログラミングフェイルハンドラ４４は、第１ブロックのプログラミングがフェイルしたかどうかを判定して、第１ブロックのプログラミングがフェイルした場合、内部データ移動コマンドでＮＡＮＤメモリの第２ブロックにデータを回復する技術を含んでよい。いくつかの実施形態において、ＮＡＮＤプログラマ４３は、試行の前に、ＮＡＮＤメモリのキャッシュにデータを格納するよう構成されてよく、第１ブロックのプログラミングがフェイルした場合、プログラミングフェイルハンドラ４４はＮＡＮＤメモリのキャッシュからＮＡＮＤメモリの第２ブロックに、内部データ移動コマンドでデータを回復してよい。例えば、プログラミングフェイルハンドラ４４はまた、データの回復の前に、ＮＡＮＤメモリのキャッシュに格納されているデータが有効かどうかを判定するよう構成されてよい。いくつかの実施形態において、プログラミングフェイルハンドラ４４は更に、ＮＡＮＤメモリのキャッシュからＮＡＮＤメモリのシングルレベルセル（ＳＬＣ）ブロックに、内部データ移動コマンドでデータを移動し、ＳＬＣブロックからＮＡＮＤメモリの第２ブロックに、内部データ移動コマンドでデータを回復するよう構成されてよい。いくつかの実施形態において、プログラミングフェイルハンドラ４４はまた、第１ブロックのプログラミングがフェイルした場合、ＮＡＮＤメモリの第１ブロックからＮＡＮＤメモリの第２ブロックに、内部データ移動コマンドで既にプログラミングされたデータを移動するよう構成されてよい。
【００２２】
ＮＡＮＤプログラマ４３、プログラミングフェイルハンドラ４４、及び、メモリコントローラ４２の他のコンポーネントの実施形態は、ハードウェア、ソフトウェア、又はそれらの任意の組み合わせに実装されてよく、ハードウェアへの少なくとも部分的な実装も含む。例えば、ハードウェア実装は、例えばＰＬＡ、ＦＰＧＡ、ＣＰＬＤ等の構成可能なロジック、例えばＡＳＩＣ、ＣＭＯＳ、又はＴＴＬ技術等の回路技術を用いる固定機能ロジックハードウェア、又は、それらの任意の組み合わせを含んでよい。追加的に、これらの構成要素の一部は、プロセッサ又はコンピューティングデバイスにより実行される、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ファームウェア、フラッシュメモリ等のマシン又はコンピュータ可読記憶媒体に格納されたロジック命令セットとして、１又は複数のモジュールに実装されてよい。例えば、構成要素のオペレーションを実行するためのコンピュータプログラムコードは、ＰＹＴＨＯＮ、ＰＥＲＬ、ＪＡＶＡ（登録商標）、ＳＭＡＬＬＴＡＬＫ、Ｃ＋＋、Ｃ＃、又は同様のもの等のオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語又は同様のプログラミング言語等の従来の手続き型のプログラミング言語を含むＯＳに適用可能な又は適切な１又は複数のプログラミング言語の任意の組み合わせによって書かれてよい。
【００２３】
いくつかの実施形態が、ＤＲＡＭレスシステム、及び／又はファイア・アンド・フォーゲット（ｆｉｒｅ  ａｎｄ  ｆｏｒｇｅｔ）システムに対するプログラミングフェイル処理を有利に提供してよい。データがＳＳＤ書き込みバッファ（例えば、ＳＳＤ内のＤＲＡＭ又はＳＲＡＭメモリコンポーネント）に書き込まれた後、いくつかの高性能ＳＳＤが完了ステータスをホストに返してよい。ＳＳＤのＮＡＮＤがプログラミングパスステータスを返すことを待つのは、ＳＳＤ書き込み性能を低下させ得る。ファームウェアがＮＡＮＤプログラミング不良を処理し、ＳＳＤ書き込み性能に殆ど又は全く影響を与えることなく、ユーザーデータを回復してよい。プログラミング不良の後、例えば、ファームウェアが他のＮＡＮＤブロックにデータをリプログラミングしてよい。高い又は最高の書き込み性能を得るために、いくつかのＳＳＤが、ファイア・アンド・フォーゲットポリシーと称されることを実装してよい。例えば、データがＮＡＮＤバッファに書き込まれると、ファイア・アンド・フォーゲット実装は、ＳＳＤ書き込みバッファからデータを除去してよい。ファイア・アンド・フォーゲット実装においては、ファームウェアは、他のＮＡＮＤブロックにリプログラミングするためのＳＳＤ書き込みバッファからデータを取得できない（例えば、ＮＡＮＤプログラミング不良のイベントの際）。いくつかのＳＤＤは、データを格納してＮＡＮＤプログラミング不良を処理するためのＤＲＡＭ又はＳＲＡＭ構成要素を有さなくてよく、又は、いくつかのＳＳＤは、ＮＡＮＤプログラミング不良を処理するための十分な追加のＤＲＡＭ又はＳＲＡＭ容量を有さなくてよい。いくつかのＳＳＤは、ＮＡＮＤプログラミング不良の後にデータを回復するＸＯＲ技術を用いてよい。しかしながら、全てのプログラミング不良がＸＯＲ技術を用いることにより回復され得るわけではない（また、例えば、全てのＳＳＤがそのようなＸＯＲサポートを有し得るわけではない）。
【００２４】
いくつかの実施形態は、いくつかのＮＡＮＤプログラミング不良を、内部ＮＡＮＤデータ移動を介して回復するための効率のよい技術を有利に提供してよい。いくつかの実施形態において、ＳＲＡＭ／ＤＲＡＭバッファ共有がデータ回復に関与していなくてよい。いくつかの実施形態は、スケーラブルであってよく、ＳＬＣ、マルチレベルセル、トライレベルセル（ＴＬＣ）、及び／又は、クアッドレベルセル（ＱＬＣ）ＮＡＮＤプログラミングフェイルに拡張されてよい。いくつかの実施形態において、システム実装は、フェイルしたブロックから新しいブロックに、フェイルしたページのデータ及び既にプログラミングされたデータの全てを、ＮＡＮＤ内部コピーを介して移動するためのファームウェア技術を含んでよい。いくつかの実施形態は、例えば、シングルタイルグループフェイル（４Ｋ）、マルチタイルグループ若しくはシングルプレーンフェイル（１６Ｋ）、及び／又は、マルチプレーンフェイル（例えば、ｘ２、ｘ３、ｘ４）を含む殆ど又は全てのフェイルタイプをサポートする、プログラミングフェイルから回復するための包括的な技術を提供してよい。いくつかの実施形態は、システムは、ＮＡＮＤにファイアされるとより高速の揮発性キャッシュからデータをリリースし得るファイア・アンド・フォーゲット実装に互換性があってよい。いくつかの実施形態は更に、データを回復して回復プロセスを完了するためのより高速の技術を提供してよく、プログラミングフェイル処理の最中に、ＳＲＡＭ／ＤＲＡＭリソース共有を含まなくてよい。
【００２５】
ＮＡＮＤデバイスアーキテクチャレイアウトの例が、１又は複数のキャッシュレジスタ、１又は複数のデータレジスタ、及び関連づけられたＮＡＮＤアレイを含んでよい。例えば、ＮＡＮＤアレイは、１又は複数のプレーンとして、論理的に又は物理的に構成されてよい。ＮＡＮＤアレイの各プレーンは更に、１又は複数のブロックとして、論理的に又は物理的に構成されてよい。いくつかの実施形態において、プログラミングされるデータがＮＡＮＤメモリに送信された場合、データはまず、キャッシュレジスタに入れられ得る。データはキャッシュレジスタからＮＡＮＤアレイに移動されてよい。プログラミング不良が生じた場合、その不良は、ＮＡＮＤアレイの書き込み不良を一般的に指す。いくつかの条件において、新しいデータがキャッシュレジスタに書き込みされない限り、キャッシュレジスタ内のデータのコピーはまだ利用可能であってよい。キャッシュされていないプログラミングコマンドに対して、例えば、キャッシュレジスタ内のデータは、次のプログラミングコマンドが発行されるまで上書きされなくてよい。いくつかの実施形態によると、次のプログラミングコマンドを発行する前に、ＮＡＮＤコントローラはプログラムステータスフェイルを検出してよく、キャッシュレジスタから読み出すことによりデータを回復してよい。例えば、内部の「コピーバック読み出し」コマンド及び「コピーバックプログラム」コマンドは、ＮＡＮＤコントローラに、アレイからキャッシュレジスタにデータを読み出させ、及び／又は、キャッシュレジスタからＮＡＮＤアレイにデータを移動させ得る。いくつかの実施形態は、ＮＡＮＤアーキテクチャ及び内部データ移動コマンドを有利に用い、いくつかのＮＡＮＤプログラミング不良からの回復を提供し得る（例えば、ＴＬＣ及びＱＬＣを含む殆ど又は全てのＮＡＮＤタイプに適用可能であり得る）。
【００２６】
図５を参照すると、データを回復する方法の実施形態５０は、ブロック５１でコマンドキューを処理する段階を含んでよい。例えば、ＮＡＮＤコントローラがハードウェア（ＨＷ）コマンドキューを維持し、ＨＷキューからのＮＡＮＤコマンドが、ファースト・イン・ファースト・アウト（ＦＩＦＯ）技術で実行されてよい。ＮＡＮＤプログラミングコマンドがＨＷキューにある場合、方法５０は、ブロック５２でプログラムがフェイルしているかどうかとの判定とともに、ＮＡＮＤプログラミングコマンドに従ってよい。例えば、ＮＡＮＤコントローラはステータス情報を読み出し、プログラムの完了を確認してよい。ブロック５２でデータをプログラミングすることに成功した場合、方法５０は、ブロック５１でコマンドキューの処理を継続してよい。ブロック５２でプログラムがフェイルした場合、方法５０は次に、ブロック５３でキャッシュに格納されたデータがまだ有効なのかどうかを判定してよい。プログラムデータは、データが次のプログラミングコマンドによって上書きされるまで、ＮＡＮＤダイ内のキャッシュレジスタに保存されてよい。例えば、ＮＡＮＤコントローラが、新しいコマンド（例えば、キャッシュデータの上書きの可能性に対応し得る）を受け付ける用意ができているかを示すステータスビットを確認してよい。ブロック５３でキャッシュデータが有効ではない場合、任意の適切な外部回復手順がブロック５４で用いられ、データを回復してよい。ブロック５４でキャッシュデータが有効と判定された場合、ＮＡＮＤデバイス内からフェイルしているページの回復が進められてよい。
【００２７】
方法５０は、ブロック５５でＨＷコマンドキューを停止し、ブロック５６でキャッシュからのデータをＳＬＣブロックにコピーしてよい。例えば、いくつかの実施形態が、「コピーバックプログラム」コマンド（例えば、コマンドコード８５−１０ｈ）を用いて、（例えば、プログラミングフェイル処理用に特別に確保されてよい）キャッシュレジスタデータをＳＬＣブロックに書き込んでよい。方法５０は次に、ブロック５７で、適切なページ回復コマンドシーケンスで補助（ＡＵＸ）コマンドキューを満たし、フェイルしたブロックから新しい宛先ブロックにデータをコピーしてよい。例えば、回復コマンドシーケンスは、フェイルしたブロックから新しい宛先ブロックにフェイルしたページまでの有効なページをコピーする内部データ移動コマンドを含んでよい。ファームウェア（ＦＷ）はＡＵＸキューコマンドを満たしてよい。例えば、いくつかの実施形態において、ページ０から有効ページの最後のページまで（例えば、ｎ−１。ただし、ｎはフェイルしたページに対応）、適切な「コピーバック読み出し」コマンド（例えば、コマンドコード００−３５ｈ）及び「コピーバックプログラム」コマンド（例えば、コマンドコード００−８５ｈ）で、ＡＵＸキューは満たされてよい。読み出しはフェイルしたブロックから実行されてよく、一方、プログラムは新しい宛先ブロックに実行されてよい。
【００２８】
方法５０は次に、ブロック５８で適切なコマンドをＡＵＸキューに追加し、ＳＬＣブロックから新しい宛先ブロックにデータをコピーしてよい。元のフェイルしたページのデータに対して、例えば、いくつかの実施形態は、フェイルしたページのデータを保存するＳＬＣブロックからデータをフェッチする「コピーバック読み出し」コマンドと、新しい宛先ブロックを指す「コピーバックプログラム」コマンドとを用いてよい。方法５０は次に、ブロック５９でＡＵＸコマンドキューを処理し、ブロック６０でＨＷコマンドキュー再開位置を設定し、ブロック５１でＨＷコマンドキューを処理し続けてよい（例えば、回復が実行された後、ＮＡＮＤコマンドキューが再開されるだろう）。例えば、コピーバックプロセスが完了した後、ＦＷは、ＨＷコマンドキューにより無事に実行された最後のコマンドをトレースし、次のコマンドから再開してよい。
【００２９】
図６を参照すると、プログラミング不良を回復するための例示的なコマンドキュー管理の実施形態が、（例えば、ダイによる）ＦＷコマンドキュー６１と、（例えば、ダイによる）ＨＷコマンドキュー６２と、（例えば、ダイによる）ＡＵＸコマンドキュー６３とを含んでよい。ＦＷコマンドキュー６１は、ページＡ用のプログラミングコマンド（例えば、コマンドコード８０−１０ｈ）、続いてページＡ用のリードステータスコマンド（ｒｅａｄ  ｓｔａｔｕｓ  ｃｏｍｍａｎｄ）（例えば、コマンドコード７０ｈ）、続いてページＢ用のプログラミングコマンド、続いてページＢ用のリードステータスコマンド、続いてページＣ用のプログラミングコマンド、続いてページＣ用のリードステータスコマンド等のコマンドシーケンス例を含んでよい。ＦＷコマンドキュー６１は、同様のコマンドシーケンスがＨＷコマンドキュー６２に満たされるようにしてよい。
【００３０】
ページＡ用のプログラミングコマンドは無事に完了してよく、その結果、ページＡ用のリードステータスコマンドは無事に完了したことを示す。ページＢ用のプログラミングコマンドはフェイルしてよく、その結果、リードステータスコマンドはプログラムがフェイルしたことを示す。ＨＷキューは停止され得て、ＡＵＸコマンドキュー６３はページデータを回復するためのコマンドシーケンスで満たされ得る。回復コマンドシーケンスは、ＳＬＣブロックにページＢデータを移動するコピーバックプログラミングコマンド（例えば、コマンドコード００−８５ｈ）、続いてページＢ用のリードステータスコマンド、続いてページＡデータを読み出すコピーバック読み出しコマンド（例えば、コマンドコード００−３５ｈ）、続いて新しい宛先ブロックにページＡデータを移動するコピーバックプログラミングコマンド、続いてページＡ用のリードステータスコマンド、続いてＳＬＣブロックからページＢデータを読み出すコピーバック読み出しコマンド、続いて宛先ブロックにページＢデータを移動するコピーバックプログラミングコマンド、続いてページＢデータ用のリードステータスコマンド、を含んでよい。ＡＵＸコマンドキュー６３が実行された後、ＨＷコマンドキュー６２は、次のコマンドから再開してページＣをプログラミングしてよい。いくつかの実施形態は、プログラミング不良を回復するためのＡＵＸコマンドキュー６３のシステム管理を有利に提供してよい。
【００３１】
図７を参照すると、データ回復のための例示的なデータ移動の実施形態が、ＳＬＣブロック使用モデルを含んでよい。例えば、主にプログラミングフェイル回復のために用いられる一時的ブロックとして、ＳＬＣブロックが使用されてよい。プログラミングフェイル回復のために確保されているＳＬＣブロックは、ＳＬＣプールからの任意のブロックであってよい。ＮＡＮＤメモリの部分７１は、複数のブロックタイプに対応するブロック０〜１１を含んでよい。例えば、ブロック０〜５はＳＬＣブロックであってよく、一方、ブロック６〜１１はＴＬＣ又はＱＬＣブロックであってよい。ブロック４は、プログラミングフェイル回復のための一時的ブロックとして確保されてよい。例示的なオペレーション例において、ブロック８をプログラミングする試行がフェイルし得る。いくつかの実施形態において、ＮＡＮＤコントローラは、試行が成功しなかったと判定して、矢印７２で示されるように、フェイルしたページのデータを一時的ＳＬＣブロック４に内部的に移動してよい。ＮＡＮＤコントローラは次に、矢印７３で示されるように、新しい宛先ブロック１１に、ブロック８の（０）ページから（フェイルページ−１）ページまでを、内部的にコピー（例えば、フェイルしたブロックから、フェイルしたページまでの有効なページをコピー）してよい。ＮＡＮＤコントローラは次に、矢印７４で示されるように、一時的ＳＬＣブロック４から宛先ブロック１１に、フェイルしたページのデータを内部的に移動してよい。
【００３２】
いくつかの実施形態において、内部ブロックコピーについて、いくつかのＥＣＣリスクが存在し得る。例えば、ＮＡＮＤブロック内で内部的にデータを移動することに、いくつかのリスクが存在し得る。なぜなら、データはＥＣＣエンジンを介して読み出されていないからである。いくつかの実施形態において、ＮＡＮＤ構成要素において、厳しい生のビット不良率（ＲＢＥＲ）スクリーニングを実施することにより、ＥＣＣリスクは緩和され得る。ＳＬＣはシングルレベル構成を用いるので、フェイルしたページのデータのプログラミングは、選択された書き込みラインに、検証段階なしでシングルパルスを印加することにより実行され得る。そのようなＳＬＣプログラミングは非常に速くてよく（例えば、２５０μｓ以下で実行される）、また、有利なことに外部エラー訂正を必要としなくてよい。いくつかの実施形態において、確保されたプログラミングフェイル回復のために利用可能なＳＬＣメモリのサイズは、予め構成されてよく、又は、動的に構成されてもよい。
【００３３】
補足的な注記及び例
【００３４】
実施例１は、プロセッサと、プロセッサに通信可能に連結された不揮発性メモリと、プロセッサ及び不揮発性メモリに通信可能に連結されたロジックであって、不揮発性メモリの第１の部分においてデータのプログラミングを試行し、試行が成功したかどうかを判定し、試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、不揮発性メモリの第２の部分にデータを回復するロジックとを含む、電子処理システムを含んでよい。
【００３５】
実施例２は、実施例１のシステムを含んでよく、ロジックは更に、試行の前に、不揮発性メモリのキャッシュにデータを格納し、試行が不成功に終わったと判定した場合、不揮発性メモリのキャッシュから不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復する。
【００３６】
実施例３は、実施例２のシステムを含んでよく、ロジックは更に、データの回復の前に、不揮発性メモリのキャッシュに格納されているデータが有効かどうかを判定する。
【００３７】
実施例４は、実施例３のシステムを含んでよく、ロジックは更に、不揮発性メモリのキャッシュから不揮発性メモリの一時的位置に、内部データ移動オペレーションでデータを移動し、不揮発性メモリの一時的位置から不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復する。
【００３８】
実施例５は、実施例４のシステムを含んでよく、ロジックは更に、試行が不成功に終わったと判定した場合、不揮発性メモリの第１の部分から不揮発性メモリの第２の部分に、内部データ移動オペレーションで、既にプログラミングされたデータを移動する。
【００３９】
実施例６は、実施例１から５のいずれか一つのシステムを含んでよく、不揮発性メモリはＮＡＮＤメモリを含む。
【００４０】
実施例７は、１又は複数の基板と、１又は複数の基板に連結されたロジックであって、ロジックは、構成可能なロジック及び固定機能ハードウェアロジックのうちの１又は複数に少なくとも部分的に実装され、１又は複数の基板に連結されたロジックは、不揮発性メモリの第１の部分においてデータのプログラミングを試行し、試行が成功したかどうかを判定し、試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、不揮発性メモリの第２の部分にデータを回復する、１又は複数の基板に連結されたロジックとを含む、半導体パッケージ装置を含んでよい。
【００４１】
実施例８は、実施例７の装置を含んでよく、ロジックは更に、試行の前に、不揮発性メモリのキャッシュにデータを格納し、試行が不成功に終わったと判定した場合、不揮発性メモリのキャッシュから不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復する。
【００４２】
実施例９は、実施例８の装置を含んでよく、ロジックは更に、データの回復の前に、不揮発性メモリのキャッシュに格納されているデータが有効かどうかを判定する。
【００４３】
実施例１０は、実施例９の装置を含んでよく、ロジックは更に、不揮発性メモリのキャッシュから不揮発性メモリの一時的位置に、内部データ移動オペレーションでデータを移動し、不揮発性メモリの一時的位置から不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復する。
【００４４】
実施例１１は、実施例１０の装置を含んでよく、ロジックは更に、試行が不成功に終わったと判定した場合、不揮発性メモリの第１の部分から不揮発性メモリの第２の部分に、内部データ移動オペレーションで既にプログラミングされたデータを移動する。
【００４５】
実施例１２は、実施例７から１１のいずれか一つの装置を含んでよく、不揮発性メモリはＮＡＮＤメモリを含む。
【００４６】
実施例１３は、不揮発性メモリの第１の部分においてデータのプログラミングを試行する段階と、試行が成功したかどうかを判定する段階と、試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、不揮発性メモリの第２の部分にデータを回復する段階とを含む、データ回復の方法を含んでよい。
【００４７】
実施例１４は、試行の前に、不揮発性メモリのキャッシュにデータを格納する段階と、試行が不成功に終わったと判定した場合、不揮発性メモリのキャッシュから不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復する段階とを更に含む、実施例１３の方法を含んでよい。
【００４８】
実施例１５は、データの回復の前に、不揮発性メモリのキャッシュに格納されているデータが有効かどうかを判定する段階を更に含む、実施例１４の方法を含んでよい。
【００４９】
実施例１６は、不揮発性メモリのキャッシュから不揮発性メモリの一時的位置に、内部データ移動オペレーションでデータを移動する段階と、不揮発性メモリの一時的位置から不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復する段階とを更に含む、実施例１５の方法を含んでよい。
【００５０】
実施例１７は、試行が不成功に終わったと判定した場合、不揮発性メモリの第１の部分から不揮発性メモリの第２の部分に、既にプログラミングされたデータを内部データ移動オペレーションで移動する段階を更に含む、実施例１６の方法を含んでよい。
【００５１】
実施例１８は、実施例１３から１７のいずれか一つの方法を含んでよく、不揮発性メモリはＮＡＮＤメモリを含む。
【００５２】
実施例１９は、命令セットを含む、少なくとも１つのコンピュータ可読媒体であって、当該少なくとも１つのコンピュータ可読媒体は、コンピューティングデバイスにより実行された場合、不揮発性メモリの第１の部分においてデータのプログラミングを試行することと、試行が成功したかどうかを判定することと、試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、不揮発性メモリの第２の部分にデータを回復することとをコンピューティングデバイスに実行させる、少なくとも１つのコンピュータ可読媒体を含んでよい。
【００５３】
実施例２０は、更なる命令セットを含む、実施例１９に記載の少なくとも１つのコンピュータ可読媒体であって、当該少なくとも１つのコンピュータ可読媒体は、コンピューティングデバイスにより実行された場合、試行の前に、不揮発性メモリのキャッシュにデータを格納することと、試行が不成功に終わったと判定した場合、不揮発性メモリのキャッシュから不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復することとをコンピューティングデバイスに実行させる、少なくとも１つのコンピュータ可読媒体を含んでよい。
【００５４】
実施例２１は、更なる命令セットを含む、実施例２０の少なくとも１つのコンピュータ可読媒体であって、当該少なくとも１つのコンピュータ可読媒体は、コンピューティングデバイスにより実行された場合、データの回復の前に、不揮発性メモリのキャッシュに格納されているデータが有効かどうかを判定することをコンピューティングデバイスに実行させる、少なくとも１つのコンピュータ可読媒体を含んでよい。
【００５５】
実施例２２は、更なる命令セットを含む、実施例２１の少なくとも１つのコンピュータ可読媒体であって、当該少なくとも１つのコンピュータ可読媒体は、コンピューティングデバイスにより実行された場合、不揮発性メモリのキャッシュから不揮発性メモリの一時的位置に、内部データ移動オペレーションでデータを移動することと、不揮発性メモリの一時的位置から不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復することとをコンピューティングデバイスに実行させる、少なくとも１つのコンピュータ可読媒体を含んでよい。
【００５６】
実施例２３は、更なる命令セットを含む、実施例２２に記載の少なくとも１つのコンピュータ可読媒体であって、当該少なくとも１つのコンピュータ可読媒体は、コンピューティングデバイスにより実行された場合、試行が不成功に終わったと判定した場合、不揮発性メモリの第１の部分から不揮発性メモリの第２の部分に、内部データ移動オペレーションで既にプログラミングされたデータを移動することをコンピューティングデバイスに実行させる、少なくとも１つのコンピュータ可読媒体を含んでよい。
【００５７】
実施例２４は、実施例１９から２３のいずれか一つのうちの少なくとも１つのコンピュータ可読媒体を含んでよく、不揮発性メモリはＮＡＮＤメモリを含む。
【００５８】
実施例２５は、不揮発性メモリの第１の部分においてデータのプログラミングを試行するための手段と、試行が成功したかどうかを判定するための手段と、試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、不揮発性メモリの第２の部分にデータを回復するための手段とを含む、メモリコントローラ装置を含んでよい。
【００５９】
実施例２６は、試行の前に、不揮発性メモリのキャッシュにデータを格納するための手段と、試行が不成功に終わったと判定した場合、不揮発性メモリのキャッシュから不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復するための手段とを更に含む、実施例２５の装置を含んでよい。
【００６０】
実施例２７は、データの回復の前に、不揮発性メモリのキャッシュに格納されているデータが有効かどうかを判定するための手段を更に含む、実施例２６の装置を含んでよい。
【００６１】
実施例２８は、不揮発性メモリのキャッシュから不揮発性メモリの一時的位置に、内部データ移動オペレーションでデータを移動するための手段と、不揮発性メモリの一時的位置から不揮発性メモリの第２の部分に、内部データ移動オペレーションでデータを回復するための手段とを更に含む、実施例２７の装置を含んでよい。
【００６２】
実施例２９は、試行が不成功に終わったと判定した場合、不揮発性メモリの第１の部分から不揮発性メモリの第２の部分に、既にプログラミングされたデータを内部データ移動オペレーションで移動するための手段を更に含む、実施例２８の装置を含んでよい。
【００６３】
実施例３０は、実施例２５から２９のいずれか一つの装置を含んでよく、不揮発性メモリはＮＡＮＤメモリを含む。
【００６４】
実施形態は、全てのタイプの半導体集積回路（「ＩＣ」）チップでの使用に適用可能である。これらのＩＣチップの例として、限定はされないが、プロセッサ、コントローラ、チップセットコンポーネント、プログラマブルロジックアレイ（ＰＬＡ）、メモリチップ、ネットワークチップ、システムオンチップ（ＳｏＣ）、ＳＳＤ／ＮＡＮＤコントローラＡＳＩＣ、及び同様のものが挙げられる。加えて、図面のいくつかにおいて、信号導線が線で表されている。線によっては、より多くの成分信号パスを示すべく異なっていてよく、いくつかの成分信号パスを示すべく番号ラベルを有していてよく、及び／又は、主要情報の流れ方向を示すべく１又は複数の端部に矢印を有していてよい。しかしながら、このことは限定的に解釈されるべきではない。むしろ、回路の理解をより容易にすべく、そのような追加の詳細は、１又は複数の例示的な実施形態に関連して使用されてよい。追加の情報を有するか否かにかかわらず、表されたあらゆる信号線は実際には、複数の方向に移動してよい１又は複数の信号を含んでよく、例えば、差動ペアで実装されるデジタル線又はアナログ線、光ファイバ線、及び／又は、シングルエンド線といったあらゆる好適なタイプの信号方式で実装されてよい。
【００６５】
例示的な大きさ／モデル／値／範囲が与えられている場合があるが、実施形態はそれらに限定されるものではない。時とともに製造技術（例えば、フォトリソグラフィ）が成熟するにつれ、より小型のデバイスが製造され得ることが予期される。加えて、例示及び説明を簡潔にするために、及び、実施形態の特定の態様を不明瞭にしないように、ＩＣチップ及び他のコンポーネントへの周知の電源／グラウンド接続が図内に示されていても、示されていなくてもよい。さらに、実施形態を不明瞭にすることを回避すべく、また、そのようなブロック図構成の実装に関する詳細は、実施形態が実装されるプラットフォームに大きく依存する、すなわち、そのような詳細は十分に当業者の範囲内であるべきという事実を考慮して、構成がブロック図形態で示されてよい。例示的な実施形態を説明すべく具体的な詳細（例えば、回路）が記載される場合、これらの具体的な詳細なしで、又はこれらの具体的な詳細の変形によって、実施形態が実施され得ることが当業者には明らかであるべきである。従って、説明は、限定的ではなく例示的なものとみなされるべきである。
【００６６】
「結合」という用語は、対象のコンポーネント間の任意のタイプの直接的又は間接的関係、を指すために本明細書において使用されてよく、電気的、機械的、流体的、光学的、電磁的、電子機械的、又は他の接続に適用されてよい。加えて、「第１」、「第２」などの用語は、説明を容易にするためだけに本明細書において使用されてよく、別段の指示がない限り、何ら特定の時間の又は経時的な意味を含まない。
【００６７】
本願及び特許請求の範囲において使用される場合、「のうちの１又は複数」という用語によって結ばれた項目の列挙は、列挙された用語の任意の組み合わせを意味してよい。例えば、「ｏｎｅ  ｏｒ  ｍｏｒｅ  ｏｆ  Ａ，  Ｂ，  ａｎｄ  Ｃ（Ａ、Ｂ、及びＣのうちの１又は複数）」という語句、及び、「ｏｎｅ  ｏｒ  ｍｏｒｅ  ｏｆ  Ａ，  Ｂ，  ｏｒ  Ｃ（Ａ、Ｂ、又はＣのうちの１又は複数）」という語句は、両方とも「Ａ、Ｂ、Ｃ、Ａ  ａｎｄ  Ｂ、Ａ  ａｎｄ  Ｃ、Ｂ  ａｎｄ  Ｃ、又はＡ，Ｂ  ａｎｄ  Ｃ（Ａ、Ｂ、Ｃ、Ａ及びＢ、Ａ及びＣ、Ｂ及びＣ、又はＡ、Ｂ、及びＣ）」を意味してよい。当業者は上記の説明から、複数の実施形態の幅広い技術が、様々な形態で実装され得ることを理解されよう。したがって、実施形態はそれらの特定の例に関連して説明されてきたが、実施形態の真の範囲はそのように限定されるべきではない。なぜなら、図面、明細書、及び以下の特許請求の範囲を研究すれば、当業者には他の変更形態が明らかになるからである。
［項目１］
プロセッサと、
上記プロセッサに通信可能に連結された不揮発性メモリと、
上記プロセッサ及び上記不揮発性メモリに通信可能に連結されたロジックであって、
上記不揮発性メモリの第１の部分においてデータのプログラミングを試行し、
上記試行が成功したかどうかを判定し、
上記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、上記不揮発性メモリの第２の部分に上記データを回復する
ロジックと
を備える、電子処理システム。
［項目２］
上記ロジックは更に、
上記試行の前に、上記不揮発性メモリのキャッシュに上記データを格納し、
上記試行が不成功に終わったと判定した場合、上記不揮発性メモリの上記キャッシュから上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで上記データを回復する、
項目１に記載のシステム。
［項目３］
上記ロジックは更に、
上記データの上記回復の前に、上記不揮発性メモリの上記キャッシュに格納されている上記データが有効かどうかを判定する、
項目２に記載のシステム。
［項目４］
上記ロジックは更に、
上記不揮発性メモリの上記キャッシュから上記不揮発性メモリの一時的位置に、上記内部データ移動オペレーションで上記データを移動し、
上記不揮発性メモリの上記一時的位置から上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで上記データを回復する、
項目３に記載のシステム。
［項目５］
上記ロジックは更に、
上記試行が不成功に終わったと判定した場合、上記不揮発性メモリの上記第１の部分から上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで、既にプログラミングされたデータを移動する、
項目４に記載のシステム。
［項目６］
上記不揮発性メモリはＮＡＮＤメモリを含む、項目１に記載のシステム。
［項目７］
１又は複数の基板と、
上記１又は複数の基板に連結されたロジックとを備え、上記ロジックは、構成可能なロジック及び固定機能ハードウェアロジックのうちの１又は複数に少なくとも部分的に実装され、上記１又は複数の基板に連結された上記ロジックは、
不揮発性メモリの第１の部分においてデータのプログラミングを試行し、
上記試行が成功したかどうかを判定し、
上記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、上記不揮発性メモリの第２の部分に上記データを回復する
半導体パッケージ装置。
［項目８］
上記ロジックは更に、
上記試行の前に、上記不揮発性メモリのキャッシュに上記データを格納し、
上記試行が不成功に終わったと判定した場合、上記不揮発性メモリの上記キャッシュから上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで上記データを回復する、
項目７に記載の装置。
［項目９］
上記ロジックは更に、
上記データの上記回復の前に、上記不揮発性メモリの上記キャッシュに格納されている上記データが有効かどうかを判定する、
項目８に記載の装置。
［項目１０］
上記ロジックは更に、
上記不揮発性メモリの上記キャッシュから上記不揮発性メモリの一時的位置に、上記内部データ移動オペレーションで上記データを移動し、
上記不揮発性メモリの上記一時的位置から上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで上記データを回復する、
項目９に記載の装置。
［項目１１］
上記ロジックは更に、
上記試行が不成功に終わったと判定した場合、上記不揮発性メモリの上記第１の部分から上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで既にプログラミングされたデータを移動する、
項目１０に記載の装置。
［項目１２］
上記不揮発性メモリはＮＡＮＤメモリを含む、項目７に記載の装置。
［項目１３］
不揮発性メモリの第１の部分においてデータのプログラミングを試行する段階と、
上記試行が成功したかどうかを判定する段階と、
上記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、上記不揮発性メモリの第２の部分に上記データを回復する段階と
を備える、データ回復の方法。
［項目１４］
上記試行の前に、上記不揮発性メモリのキャッシュに上記データを格納する段階と、
上記試行が不成功に終わったと判定した場合、上記不揮発性メモリの上記キャッシュから上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで上記データを回復する段階と
を更に備える、項目１３に記載の方法。
［項目１５］
上記データの上記回復の前に、上記不揮発性メモリの上記キャッシュに格納されている上記データが有効かどうかを判定する段階
を更に備える、項目１４に記載の方法。
［項目１６］
上記不揮発性メモリの上記キャッシュから上記不揮発性メモリの一時的位置に、上記内部データ移動オペレーションで上記データを移動する段階と、
上記不揮発性メモリの上記一時的位置から上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで上記データを回復する段階と
を更に備える、項目１５に記載の方法。
［項目１７］
上記試行が不成功に終わったと判定した場合、上記不揮発性メモリの上記第１の部分から上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで既にプログラミングされたデータを移動する段階
を更に備える、項目１６に記載の方法。
［項目１８］
上記不揮発性メモリはＮＡＮＤメモリを含む、項目１３に記載の方法。
［項目１９］
命令セットを含む、少なくとも１つのコンピュータ可読媒体であって、上記命令セットは、コンピューティングデバイスにより実行された場合、
不揮発性メモリの第１の部分においてデータのプログラミングを試行することと、
上記試行が成功したかどうかを判定することと、
上記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、上記不揮発性メモリの第２の部分に上記データを回復することと
を上記コンピューティングデバイスに実行させる、少なくとも１つのコンピュータ可読媒体。
［項目２０］
更なる命令セットを含む、上記少なくとも１つのコンピュータ可読媒体であって、上記更なる命令セットは、上記コンピューティングデバイスにより実行された場合、
上記試行の前に、上記不揮発性メモリのキャッシュに上記データを格納することと、
上記試行が不成功に終わったと判定した場合、上記不揮発性メモリの上記キャッシュから上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで上記データを回復することと
を上記コンピューティングデバイスに実行させる、項目１９に記載の少なくとも１つのコンピュータ可読媒体。
［項目２１］
更なる命令セットを含む、上記少なくとも１つのコンピュータ可読媒体であって、上記更なる命令セットは、上記コンピューティングデバイスにより実行された場合、
上記データの上記回復の前に、上記不揮発性メモリの上記キャッシュに格納されている上記データが有効かどうかを判定すること
を上記コンピューティングデバイスに実行させる、項目２０に記載の少なくとも１つのコンピュータ可読媒体。
［項目２２］
更なる命令セットを含む、上記少なくとも１つのコンピュータ可読媒体であって、上記更なる命令セットは、上記コンピューティングデバイスにより実行された場合、
上記不揮発性メモリの上記キャッシュから上記不揮発性メモリの一時的位置に、上記内部データ移動オペレーションで上記データを移動することと、
上記不揮発性メモリの上記一時的位置から上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで上記データを回復することと
を上記コンピューティングデバイスに実行させる、項目２１に記載の少なくとも１つのコンピュータ可読媒体。
［項目２３］
更なる命令セットを含む、上記少なくとも１つのコンピュータ可読媒体であって、上記更なる命令セットは、上記コンピューティングデバイスにより実行された場合、
上記試行が不成功に終わったと判定した場合、上記不揮発性メモリの上記第１の部分から上記不揮発性メモリの上記第２の部分に、上記内部データ移動オペレーションで既にプログラミングされたデータを移動すること
を上記コンピューティングデバイスに実行させる、項目２２に記載の少なくとも１つのコンピュータ可読媒体。
［項目２４］
上記不揮発性メモリはＮＡＮＤメモリを含む、項目１９に記載の少なくとも１つのコンピュータ可読媒体。
【図１】
2019114318.tif 000003
【図２】
2019114318.tif 000004
【図３Ａ】
2019114318.tif 000005
【図３Ｂ】
2019114318.tif 000006
【図３Ｃ】
2019114318.tif 000007
【図４】
2019114318.tif 000008
【図５】
2019114318.tif 000009
【図６】
2019114318.tif 000010
【図７】
2019114318.tif 000011
【手続補正書】
【提出日】平成30年12月18日(2018.12.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサに通信可能に連結された不揮発性メモリと、
前記プロセッサ及び前記不揮発性メモリに通信可能に連結されたロジックであって、
前記不揮発性メモリの第１の部分においてデータのプログラミングを試行し、
前記試行が成功したかどうかを判定し、
前記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、前記不揮発性メモリの第２の部分に前記データを回復する
ロジックと
を備える、電子処理システム。
【請求項２】
前記ロジックは更に、
前記試行の前に、前記不揮発性メモリのキャッシュに前記データを格納し、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する、
請求項１に記載の電子処理システム。
【請求項３】
前記ロジックは更に、
前記データの前記回復の前に、前記不揮発性メモリの前記キャッシュに格納されている前記データが有効かどうかを判定する、
請求項２に記載の電子処理システム。
【請求項４】
前記ロジックは更に、
前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの一時的位置に、前記内部データ移動オペレーションで前記データを移動し、
前記不揮発性メモリの前記一時的位置から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する、
請求項３に記載の電子処理システム。
【請求項５】
前記ロジックは更に、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記第１の部分から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで、既にプログラミングされたデータを移動する、
請求項４に記載の電子処理システム。
【請求項６】
前記不揮発性メモリはＮＡＮＤメモリを含む、請求項１から５のいずれか一項に記載の電子処理システム。
【請求項７】
１又は複数の基板と、
前記１又は複数の基板に連結されたロジックとを備え、前記ロジックは、構成可能なロジック及び固定機能ハードウェアロジックのうちの１又は複数に少なくとも部分的に実装され、前記１又は複数の基板に連結された前記ロジックは、
不揮発性メモリの第１の部分においてデータのプログラミングを試行し、
前記試行が成功したかどうかを判定し、
前記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、前記不揮発性メモリの第２の部分に前記データを回復する
半導体パッケージ装置。
【請求項８】
前記ロジックは更に、
前記試行の前に、前記不揮発性メモリのキャッシュに前記データを格納し、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する、
請求項７に記載の半導体パッケージ装置。
【請求項９】
前記ロジックは更に、
前記データの前記回復の前に、前記不揮発性メモリの前記キャッシュに格納されている前記データが有効かどうかを判定する、
請求項８に記載の半導体パッケージ装置。
【請求項１０】
前記ロジックは更に、
前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの一時的位置に、前記内部データ移動オペレーションで前記データを移動し、
前記不揮発性メモリの前記一時的位置から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する、
請求項９に記載の半導体パッケージ装置。
【請求項１１】
前記ロジックは更に、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記第１の部分から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで既にプログラミングされたデータを移動する、
請求項１０に記載の半導体パッケージ装置。
【請求項１２】
前記不揮発性メモリはＮＡＮＤメモリを含む、請求項７から１１のいずれか一項に記載の半導体パッケージ装置。
【請求項１３】
不揮発性メモリの第１の部分においてデータのプログラミングを試行する段階と、
前記試行が成功したかどうかを判定する段階と、
前記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、前記不揮発性メモリの第２の部分に前記データを回復する段階と
を備える、データ回復の方法。
【請求項１４】
前記試行の前に、前記不揮発性メモリのキャッシュに前記データを格納する段階と、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する段階と
を更に備える、請求項１３に記載のデータ回復の方法。
【請求項１５】
前記データの前記回復の前に、前記不揮発性メモリの前記キャッシュに格納されている前記データが有効かどうかを判定する段階
を更に備える、請求項１４に記載のデータ回復の方法。
【請求項１６】
前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの一時的位置に、前記内部データ移動オペレーションで前記データを移動する段階と、
前記不揮発性メモリの前記一時的位置から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復する段階と
を更に備える、請求項１５に記載のデータ回復の方法。
【請求項１７】
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記第１の部分から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで既にプログラミングされたデータを移動する段階
を更に備える、請求項１６に記載のデータ回復の方法。
【請求項１８】
前記不揮発性メモリはＮＡＮＤメモリを含む、請求項１３から１７のいずれか一項に記載のデータ回復の方法。
【請求項１９】
コンピューティングデバイスにより実行された場合、
不揮発性メモリの第１の部分においてデータのプログラミングを試行することと、
前記試行が成功したかどうかを判定することと、
前記試行が不成功に終わったと判定した場合、内部データ移動オペレーションで、前記不揮発性メモリの第２の部分に前記データを回復することと
を前記コンピューティングデバイスに実行させる、コンピュータプログラム。
【請求項２０】
前記コンピュータプログラムは更に、前記コンピューティングデバイスにより実行された場合、
前記試行の前に、前記不揮発性メモリのキャッシュに前記データを格納することと、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復することと
を前記コンピューティングデバイスに実行させる、請求項１９に記載のコンピュータプログラム。
【請求項２１】
前記コンピュータプログラムは更に、前記コンピューティングデバイスにより実行された場合、
前記データの前記回復の前に、前記不揮発性メモリの前記キャッシュに格納されている前記データが有効かどうかを判定すること
を前記コンピューティングデバイスに実行させる、請求項２０に記載のコンピュータプログラム。
【請求項２２】
前記コンピュータプログラムは更に、前記コンピューティングデバイスにより実行された場合、
前記不揮発性メモリの前記キャッシュから前記不揮発性メモリの一時的位置に、前記内部データ移動オペレーションで前記データを移動することと、
前記不揮発性メモリの前記一時的位置から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで前記データを回復することと
を前記コンピューティングデバイスに実行させる、請求項２１に記載のコンピュータプログラム。
【請求項２３】
前記コンピュータプログラムは更に、前記コンピューティングデバイスにより実行された場合、
前記試行が不成功に終わったと判定した場合、前記不揮発性メモリの前記第１の部分から前記不揮発性メモリの前記第２の部分に、前記内部データ移動オペレーションで既にプログラミングされたデータを移動すること
を前記コンピューティングデバイスに実行させる、請求項２２に記載のコンピュータプログラム。
【請求項２４】
前記不揮発性メモリはＮＡＮＤメモリを含む、請求項１９から２３のいずれか一項に記載のコンピュータプログラム。
【請求項２５】
請求項１９〜２４のいずれか一項に記載のコンピュータプログラムを格納する、コンピュータ可読記録媒体。
【外国語明細書】
2019114318000001.pdf