(57)【要約】【課題】メモリセルの書込み特性の劣化によって書込みエラーが発生した場合の交代処理にかかる時間を削減可能なメモリ装置、メモリ制御方法、およびプログラムを提供する。【解決手段】メモリ１４０は、書込みに要する時間が一定の時間内に終了しなかった場合にエラーを発生し、不良セルであることをメモリコントローラ１３０に通知する機能と、エラーの発生した主メモリ領域のメモリセルを交代領域のメモリセルと切換える交代処理機能と、不良メモリセルのアドレスとデータをペアとして退避するための領域を複数有する退避領域と、を含み、各退避領域は、使用状態であるか未使用状態であるかを示すフラグを含み、メモリは、新たに不良セルが発生した場合には、退避領域の未使用の領域に新しい不良アドレスとデータを保持し、フラグを使用状態に設定する機能と、交代処理を実施し退避領域の情報が不要になった場合にはフラグを未使用状態にする機能と、を含む。【選択図】図４
2011018387.tif 000002
【特許請求の範囲】
【請求項１】
主メモリ領域および交代領域を有するメモリと、
コマンドに応じた命令を上記メモリに発行し、データの送受信、上記メモリの状態情報の読出しを行う機能を含むメモリコントローラと、を有し、
上記メモリは、
書込みに要するビジー時間が一定の時間内に終了しなかった場合にエラーを発生し、不良メモリセルであることを上記メモリコントローラに通知する機能と、
エラーの発生した主メモリ領域のメモリセルを交代領域のメモリセルと切換える交代処理機能であって、不良メモリセルのアドレスを記憶し、アドレスデコード時に不良メモリセルに対するアクセスを、交代メモリセルへのアクセスに自動的に切換える機能と、
不良メモリセルのアドレスとデータをペアとして退避するための領域を複数有する退避領域と、を含み、
上記退避領域は、
不良メモリセルのアドレスとデータをペアとして退避する上記各領域に、当該領域が使用状態であるか未使用状態であるかを示すフラグを含み、
当該メモリは、
新たに不良セルが発生した場合には、退避領域の未使用の領域に新しい不良アドレスとデータを保持し、フラグを使用状態に設定する機能と、
上記交代処理を実施し退避領域の情報が不要になった場合にはフラグを未使用状態に設定する機能と、を含む
メモリ装置。
【請求項２】
上記メモリは、
書込みコマンドに応じた書込み処理実行時に、当該書込みに係るアドレスが上記退避領域にラッチされたアドレスと一致した場合に、当該退避領域に保持されたデータを書換える
請求項１記載のメモリ装置。
【請求項３】
上記メモリは、
読出しコマンドに応じた読出し処理実行時に、当該読出しに係るアドレスが上記退避領域に保持されたアドレスと一致した場合に、当該退避領域に保持されたデータを出力する
請求項１または２記載のメモリ装置。
【請求項４】
上記メモリコントローラは、
上記メモリから出力される状態情報に含まれるエラーについて交代処理が必要となるエラーを判別し、上記メモリに対して不良メモリセルの交代処理を行うことを指示する機能を有する
請求項１から３のいずれか一に記載のメモリ装置。
【請求項５】
上記メモリは、
交代処理の対象とする不良メモリセルのアドレスを上記退避領域に保持された値から選択し、上記メモリコントローラからの指示で交代処理の対象として選択された退避領域のフラグを、次のエラー発生時に再利用可能となるように未使用状態に設定する
請求項４記載のメモリ装置。
【請求項６】
上記メモリは、
交代処理が実行されるまでに発生したすべての不良メモリセルのアドレスおよびデータを退避領域に保持する
請求項１から５のいずれか一に記載のメモリ装置。
【請求項７】
上記退避領域の容量は、
メモリシステムに期待される一定以上の書込み速度を実現する上で、書込みを妨げずに交代処理が可能になるまでの時間に発生し得る書込みエラーに対応できる容量を有する
請求項６記載のメモリ装置。
【請求項８】
上記メモリは、
書込み速度が不定でもよいアプリケーションから使用する場合には、エラーが発生した際に直ちに交代処理を開始する設定を選択でき、
上記メモリコントローラは、
上記書込み速度が不定でもよいアプリケーションから使用する場合には、エラーが発生した際に直ちに交代処理を開始する設定をする機能を有する
請求項１から７のいずれか一に記載のメモリ装置。
【請求項９】
上記メモリは、
消去に要するビジー時間もある一定の時間内に終了しなかった場合にはエラーを発生し、不良セルであることを上記メモリコントローラに通知する機能を有する
請求項１から８のいずれか一に記載のメモリ装置。
【請求項１０】
上記メモリと上記メモリコントローラによりメモリモジュールが形成され、
データの書換えのために消去コマンドの実行を含む場合、ホストが上記メモリモジュールに対して一定以上の書込み速度で書込みコマンドと消去コマンドの実行を続ける
請求項１から９のいずれか一に記載のメモリ装置。
【請求項１１】
書込みに要するビジー時間が一定の時間内に終了しなかった場合にエラーを発生し、不良メモリセルであることをメモリコントローラに通知するステップと、
エラーの発生した主メモリ領域のメモリセルを交代領域のメモリセルと切換える交代処理を行うステップであって、不良セルのアドレスを記憶し、アドレスデコード時に不良メモリセルに対するアクセスを、交代メモリセルへのアクセスに自動的に切換えるステップと、
新たに不良メモリセルが発生した場合には、不良メモリセルのアドレスとデータをペアとして退避するための領域を複数有し、各領域が使用状態であるか未使用状態であるかを示すフラグを含む退避領域の未使用の領域に新しい不良アドレスとデータを保持し、フラグを使用状態に設定するステップと、
上記交代処理を実施し退避領域の情報が不要になった場合にはフラグを未使用状態に設定するステップと、
を含むメモリ制御方法。
【請求項１２】
書込みに要するビジー時間が一定の時間内に終了しなかった場合にエラーを発生し、不良メモリセルであることをメモリコントローラに通知する処理と、
エラーの発生した主メモリ領域のメモリセルを交代領域のメモリセルと切換える交代処理を行うステップであって、不良セルのアドレスを記憶し、アドレスデコード時に不良メモリセルに対するアクセスを、交代メモリセルへのアクセスに自動的に切換える処理と、
新たに不良メモリセルが発生した場合には、不良メモリセルのアドレスとデータをペアとして退避するための領域を複数有し、各領域が使用状態であるか未使用状態であるかを示すフラグを含む退避領域の未使用の領域に新しい不良アドレスとデータを保持し、フラグを使用状態に設定する処理と、
上記交代処理を実施し退避領域の情報が不要になった場合にはフラグを未使用状態に設定する処理と、
を含むメモリ制御処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラーの発生したメモリセルを交代領域のメモリセルと切換える交代処理機能を有するメモリ装置、メモリ制御方法、およびプログラムに関するものである。
【背景技術】
【０００２】
電気的書込み、消去が可能な揮発性、不揮発性メモリにおいて、メモリセルに対するデータの書込み後あるいは消去後のベリファイ読出しを行うことによって、書込みあるいは消去が正しく行われているかを検証する一連の制御を行う。
【０００３】
図１は、メモリセルの書き込み処理のフローを示す図である。
メモリ装置は、図１に示すように、メモリセルへの書込み後（ＳＴ１）、ベリファイ読出しを行い（ＳＴ２）、読出しデータと書込みデータとの比較処理を行う（ＳＴ３）。
この比較処理でデータが一致すれば処理を終了し、一致しない場合には規定回数、データが一致するまでステップＳＴ１からの処理を繰り返す（ＳＴ４）。
消去の場合も同様の処理が行われる。
【０００４】
このように、メモリ装置では、この一連の制御を書込みあるいは消去が正しく行われるまで所定の回数繰り返す。所定の回数を超えてもデータが一致しないメモリセルは、特性の変化（劣化）した不良メモリセルと判断される。
その結果、コントローラに対して書込みあるいは消去処理のエラーとして通知される。
【０００５】
ところで、検査において発生する初期不良メモリセルに対して交代処理を行うことは、揮発性メモリ、不揮発性メモリにおいて一般的である。
さらに、書込み時に発生する不良メモリセルについても、交代処理に対応した不揮発性メモリに関する技術も、たとえば特許文献１から４に提案されている。
【０００６】
図２は、提案されている交代処理のフローを示す図である。
特許文献１から４に提案されている技術に見られる交代処理には、共通に図２に示すような処理ステップが存在する。
なお、以下では、不良メモリセルを不良セル、交代メモリセルを交代セルとしていう場合もある。
【０００７】
まず第１ステップＳＴ１１として、不良セルのアドレスから交代領域の交代可能かつ未使用な交代セルを決定する。
第２ステップＳＴ１２として、本来不良セルに書込むはずであったデータを交代セルに書込み、正常に完了することを確認する。
ここで第３ステップＳＴ１３として、エラーが発生したか否かを確認する。
エラーが発生した場合は、第４ステップＳＴ１４として、その交代セルも不良セルとして使用禁止として記憶し、交代処理をエラーで終了させ、再び交代処理を開始した時に他の交代セルでリトライされる。
エラーが発生せず書込みが正常に完了した場合には、第５ステップＳＴ１５として、アドレスデコード時に不良セルに対するアクセスが交代セルに切換えられるよう記憶させ、交代処理を完了する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特願２００７−５１８８１９号
【特許文献２】特開平９−１２８９６２号公報
【特許文献３】特開平８−０３１１９０号公報
【特許文献４】特開平８−００７５９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
提案されている交代処理では、上述したような一連の処理を必要とするため、交代処理は通常の書込み処理よりもさらに長い時間を必要とする。
また上記でも説明したように、交代処理では交代セル自体へも書込み、消去を行うことからエラーを発生する可能性も存在する。
【００１０】
ある一定以上の書込み速度でライト（Write）コマンドの実行を続けることを期待されるメモリシステムにおいては、上記のメモリを使用した場合、交代処理が発生し完了するまでは、ライトコマンドを完了することができない。
交代処理は例外的に起こる処理であって常に発生する処理ではないが、上記一定以上の書込み速度を続けるために、交代処理に必要な時間分のマージンを持たないと、メモリへの書込みが間に合わずシステムが破たんすることになる。
【００１１】
そこで図３のように書込むべきデータサイズに相当するバッファを追加するなどの方法によって交代処理にかかる時間分のマージンを確保している。
【００１２】
図３（Ａ）および（Ｂ）は、既存のバッファ構成とデータ転送シーケンスの一例を示す図である。
このメモリシステム１は、ホスト２およびメモリモジュール３を有する。
図３（Ａ）のホスト２は、一例として入力モジュール２１、およびバッファ部２２を含んで構成される。バッファ部２２は、入力モジュール２１およびメモリモジュール３に対して並列に接続された２つのバッファ２２Ａ、２２Ｂを含む。
この例では、バッファ入力シーケンスで書込み速度は２Ｍｂｙｔｅ／ｓｅｃ、メモリモジュール入力シーケンスで書込み速度は２．４Ｍｂｙｔｅ／ｓｅｃである。
【００１３】
しかし、バッファサイズの増加はメモリシステムのコストを増加させる要因となり、あるいは、メモリシステムとして実現できる書込み速度を低減させる要因となっていた。
図３（Ｂ）に示すように、交代処理が発生した場合に、データ転送において交代処理による延長分がマージンＭＧＮ内であれば問題とならないが、マージンＭＧＮを超える交代処理の場合にはオーバーフローが発生するという不利益がある。
このような課題を解決するために、上記交代処理にかかる時間を削減することが重要となっている。
【００１４】
本発明は、メモリセルの書込み特性の変化によって書込みエラーが発生した場合の交代処理にかかる時間を削減することが可能なメモリ装置、メモリ制御方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
本発明の第１の観点のメモリ装置は、主メモリ領域および交代領域を有するメモリと、コマンドに応じた命令を上記メモリに発行し、データの送受信、上記メモリの状態情報の読出しを行う機能を含むメモリコントローラと、を有し、上記メモリは、書込みに要するビジー時間が一定の時間内に終了しなかった場合にエラーを発生し、不良メモリセルであることを上記メモリコントローラに通知する機能と、エラーの発生した主メモリ領域のメモリセルを交代領域のメモリセルと切換える交代処理機能であって、不良メモリセルのアドレスを記憶し、アドレスデコード時に不良メモリセルに対するアクセスを、交代メモリセルへのアクセスに自動的に切換える機能と、不良メモリセルのアドレスとデータをペアとして退避するための領域を複数有する退避領域と、を含み、上記退避領域は、不良メモリセルのアドレスとデータをペアとして退避する上記各領域に、当該領域が使用状態であるか未使用状態であるかを示すフラグを含み、当該メモリは、新たに不良セルが発生した場合には、退避領域の未使用の領域に新しい不良アドレスとデータを保持し、フラグを使用状態に設定する機能と、上記交代処理を実施し退避領域の情報が不要になった場合にはフラグを未使用状態に設定する機能と、を含む。
【００１６】
本発明の第２の観点のメモリ制御方法は、書込みに要するビジー時間が一定の時間内に終了しなかった場合にエラーを発生し、不良メモリセルであることをメモリコントローラに通知するステップと、エラーの発生した主メモリ領域のメモリセルを交代領域のメモリセルと切換える交代処理を行うステップであって、不良セルのアドレスを記憶し、アドレスデコード時に不良メモリセルに対するアクセスを、交代メモリセルへのアクセスに自動的に切換えるステップと、新たに不良メモリセルが発生した場合には、不良メモリセルのアドレスとデータをペアとして退避するための領域を複数有し、各領域が使用状態であるか未使用状態であるかを示すフラグを含む退避領域の未使用の領域に新しい不良アドレスとデータを保持し、フラグを使用状態に設定するステップと、上記交代処理を実施し退避領域の情報が不要になった場合にはフラグを未使用状態に設定するステップと、を含む。
【００１７】
本発明の第３の観点は、書込みに要するビジー時間が一定の時間内に終了しなかった場合にエラーを発生し、不良メモリセルであることをメモリコントローラに通知する処理と、エラーの発生した主メモリ領域のメモリセルを交代領域のメモリセルと切換える交代処理を行うステップであって、不良セルのアドレスを記憶し、アドレスデコード時に不良メモリセルに対するアクセスを、交代メモリセルへのアクセスに自動的に切換える処理と、新たに不良メモリセルが発生した場合には、不良メモリセルのアドレスとデータをペアとして退避するための領域を複数有し、各領域が使用状態であるか未使用状態であるかを示すフラグを含む退避領域の未使用の領域に新しい不良アドレスとデータを保持し、フラグを使用状態に設定する処理と、上記交代処理を実施し退避領域の情報が不要になった場合にはフラグを未使用状態に設定する処理と、を含むメモリ制御処理をコンピュータに実行させるプログラムである。
【発明の効果】
【００１８】
本発明によれば、ある一定以上の書込み速度で書き込みを続けることを期待されるメモリシステムにおいて、セルの書込み特性の変化によって書込みエラーが発生した場合の交代処理にかかる時間を削減することができる。
【図面の簡単な説明】
【００１９】
【図１】メモリセルの書き込み処理のフローを示す図である。
【図２】提案されている交代処理のフローを示す図である。
【図３】既存のバッファ構成とデータ転送シーケンスの一例を示す図である。
【図４】本発明の第１の実施形態に係るメモリ装置を適用したメモリシステムの構成例を示すブロック図である。
【図５】第１の実施形態に係るホストからメモリモジュール（メモリコントローラ）に送信されるコマンドと、メモリコントローラからメモリに送信されるコマンドの対応例を示す図である。
【図６】本実施形態での一定以上の書込み速度でライトコマンドの実行処理を説明するための図である。
【図７】交代処理に対応した基本的な構成例を示す図である。
【図８】図７のメモリのMem_writeコマンド制御部が実施するMem_writeコマンドの処理フローを示す図である。
【図９】交代処理に対応したメモリの特徴的な構成例を示す図である。
【図１０】図９のメモリのMem_writeコマンド制御部が実施するMem_writeコマンドの処理フローを示す図である。
【図１１】図９のメモリのMem_readコマンド制御部が実施するMem_readコマンドの処理フローを示す図である。
【図１２】本実施形態の退避処理制御部が実施する退避処理のフローを示す図である。
【図１３】本実施形態に係る退避領域の一例を示す図である。
【図１４】本実施形態に係る交代処理のフローを示す図である。
【図１５】本実施形態に係る退避処理の具体例を説明するための基本概念図である。
【図１６】図１４の基本概念構成に関連付けた第１の具体例を説明するための図である。
【図１７】図１４の基本概念構成に関連付けた第２の具体例を説明するための図である。
【図１８】図１４の基本概念構成に関連付けた第３の具体例を説明するための図である。
【図１９】図１５の基本概念に示されるメモリを制御するコントローラ側の交代処理指示のフローを示す図である。
【図２０】図１４の基本概念構成に関連付けた交代処理時の具体例を示す図である。
【図２１】本発明の第２の実施形態に係るメモリ装置を適用したメモリシステムの構成例を示すブロック図である。
【図２２】第２の実施形態に係るホストからメモリモジュール（メモリコントローラ）に送信されるコマンドと、メモリコントローラからメモリに送信されるコマンドの対応例を示す図である。
【図２３】第２の実施形態に係る交代処理に対応したメモリの特徴的な構成例を示す図である。
【図２４】図２３のメモリのMem_eraseコマンド制御部が実施するMem_eraseコマンドの処理フローを示す図である。
【図２５】本第２の実施形態に係る退避処理制御部が実施する消去エラーに対応した退避処理のフローを示す図である。
【図２６】本第２の実施形態に係る交代処理のフローを示す図である。
【図２７】本発明の第３の実施形態に係るメモリ装置を適用したメモリシステムの構成例を示すブロック図である。
【図２８】第３の実施形態に係るホストからメモリモジュール（メモリコントローラ）に送信されるコマンドと、メモリコントローラからメモリに送信されるコマンドの対応例を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態を図面に関連付けて説明する。
なお、説明は以下の順序で行う。
１．第１の実施形態
２．第２の実施形態
３．第３の実施形態
【００２１】
＜１．第１の実施形態＞
図４は、本発明の第１の実施形態に係るメモリ装置を適用したメモリシステムの構成例を示すブロック図である。
【００２２】
本メモリシステム１００は、ホスト１１０、およびメモリモジュール１２０により構成されている。
メモリモジュール１２０は、メモリコントローラ１３０およびメモリ１４０を含んで構成される。
メモリ１４０は、たとえば不揮発性メモリにより形成される。
なお、メモリコントローラ１３０とメモリ１４０は、メモリ装置を形成するが、同一チップに集積化されてもよく、また、別々のチップに集積化されてもよい。
【００２３】
ホスト１１０は、メモリモジュール１２０を制御することで目的とするアプリケーションを実行する。
ホスト１１０は、メモリモジュール１２０に対して発行する読出し（リード：Read）コマンドＲＤ、書込み（ライト：Write）コマンドＷＲＴによって、データＤＴの送受信とコマンドの処理結果の確認を行う。
ホスト１１０は、アイドル（Idle）コマンドＩＤＬをメモリモジュール１２０に対して発行する。このアイドルコマンドＩＤＬは、メモリモジュール１２０を待機状態にし、待機状態から通常の状態への復帰は、次のコマンドの受信時に行われる。
【００２４】
メモリコントローラ１３０は、ホスト１１０とメモリ１４０の間に存在し、両者間のインターフェースの変換処理として、次のような処理を行う。
メモリコントローラ１３０は、読出し処理（Mem_read）、書込み処理（Mem_write）および交代処理（Mem_replace）などをメモリコマンドに置き換えて命令し、データＤＴの送受信、メモリ１４０の状態情報ＳＴＳの読出しを行う。
メモリコントローラ１３０は、待機状態において、必要な場合に交代処理を命令する。
【００２５】
図５に、第１の実施形態に係るホスト１１０からメモリモジュール１２０のメモリコントローラ１３０に送信されるコマンドと、メモリコントローラ１３０からメモリ１４０に送信されるコマンドの対応例を示す。
図５において、メモリコントローラ１３０は、ホスト１１０からのリードコマンドＲＤを読出し処理コマンドMem_read（Mem_readコマンドという場合もある）に変換し、メモリ１４０に供給する。
メモリコントローラ１３０は、ホスト１１０からのライトコマンドＷＲＴを書込み処理コマンドMem_write（Mem_writeコマンドという場合もある）に変換し、メモリ１４０に供給する。
メモリコントローラ１３０は、ホスト１１０からのアイドルコマンドＩＤＬを交代処理コマンドMem_replace（Mem_replaceという場合もある）に変換し、メモリ１４０に供給する。
【００２６】
メモリコントローラ１３０は、メモリ１４０から出力される状態情報ＳＴＳに含まれるエラーについて交代処理が必要となるエラーを判別し、メモリ１４０に対して不良メモリセルの交代処理を行うことを指示する機能を有する。
メモリコントローラ１３０は、書込み速度が不定でもよいアプリケーションから使用する場合には、エラーが発生した際に直ちに交代処理を開始する設定をする機能を有する。
【００２７】
メモリコントローラ１３０によって制御されるメモリ１４０は、メモリセルアレイからなる主メモリ領域１４１と交代領域１４２とそれらを制御する制御部１４３により構成される。
メモリ１４０の制御部１４３は、メモリセルの特性の変化（劣化）によって、書込みに要するビジー時間がある一定の時間内に終了しなかった場合にはエラーを発生し、メモリコントローラ１３０に対して不良メモリセルが発生したことを通知する機能を有する。
制御部１４３は、エラーの発生した主メモリ領域１４１のメモリセルを交代領域１４２のメモリセルと切換える交代処理機能を有する。換言すれば、制御部１４３は、不良メモリセルのアドレスを記憶し、アドレスデコード時に不良メモリセルに対するアクセスを、交代メモリセルへのアクセスに自動的に切換える機能を有する。
制御部１４３は、後で詳述するように、不良メモリセルのアドレスとデータをペアとして退避するための記憶領域、たとえば退避ラッチＬＴＣを複数有する退避領域を含む。
退避領域は、不良メモリセルのアドレスとデータをペアとして退避する退避ラッチに、その退避ラッチが使用状態であるか未使用状態であるかを示すフラグを含む。
制御部１４３は、新たに不良メモリセルが発生した場合には、退避領域の未使用の領域（退避ラッチ）に新しい不良アドレスとデータを保持（ラッチ）し、フラグを使用状態に設定する機能を有する。
制御部１４３は、交代処理を実施し退避領域の情報が不要になった場合にはフラグを未使用状態にする機能を有する。
なお、退避領域はラッチではなく、不揮発性記憶セルにより形成することも可能である。
【００２８】
メモリ１４０の制御部１４３は、ライトコマンドＷＲＴに応じた書込み処理実行時に、書込みに係るアドレスが退避領域にラッチされたアドレスと一致した場合に、退避領域にラッチされたデータを書換える。
これによって、交代処理を未実行であっても、不良セルへの書込みは発生せず、ライトコマンドＷＲＴがエラーを発生することを防ぐことが可能となっている。
【００２９】
制御部１４３は、リードコマンドＲＤに応じた読出し処理実行時に、読出しに係るアドレスが退避領域に保持されたアドレスと一致した場合に、退避領域にラッチされたデータを出力する。
これによって、交代処理を未実行であっても、不良セルからの読出しは発生せず、リードコマンドＲＤは正常なデータを返すことが可能となっている。
【００３０】
制御部１４３は、交代処理の対象とする不良メモリセルのアドレスを退避領域に保持された値から選択し、メモリコントローラ１３０からの指示で交代処理の対象として選択された退避領域のフラグを、未使用状態に設定する。
これにより、次のエラー発生時に再利用可能となる。
【００３１】
制御部１４３は、交代処理が実行されるまでに発生したすべての不良メモリセルのアドレスおよびデータを退避領域にラッチする機能を有する。
したがって、退避領域の容量は、メモリシステムに期待される一定以上の書込み速度を実現する上で、書込みを妨げずに交代処理が可能になるまでの時間に発生し得る書込みエラーに対応できる容量に設定される。
【００３２】
制御部１４３は、書込み速度が不定でもよいアプリケーションから使用する場合には、エラーが発生した際に直ちに交代処理を開始する設定を選択できる機能を有する。
このとき、上述したように、メモリコントローラ１３０が、書込み速度が不定でもよいアプリケーションから使用する場合には、エラーが発生した際に直ちに交代処理を開始する設定を行う。
この場合、メモリコントローラ１３０はメモリ１４０から交代処理を必要とするエラーを受信することはなく、したがって交代処理を指示する必要もない。
【００３３】
本実施形態のメモリシステム１００は、ホスト１１０からメモリモジュール１２０へある一定以上の書込み速度でライトコマンドＷＲＴの実行を続ける機能を含んで構成されていることを特徴とする。
すなわち、本実施形態のメモリシステム１００においては、基本的にライトコマンドＷＲＴ実行中は交代処理が発生しないにように構成される。
以下に、前述した機能について、本実施形態の特徴を示す図６（Ａ），（Ｂ）、および比較例としての図２（Ａ），（Ｂ）に関連付けて説明する。
まず、比較例の処理を説明した後、本実施形態の特徴的な処理について説明する。
【００３４】
［比較例での一定以上の書込み速度でライトコマンドＷＲＴの実行］
比較例は、入力モジュール２１からは２ＭＢｙｔｅ／ｓｅｃでデータが継続的に出力され、そのデータをライト（Write）コマンドを使ってメモリモジュール３上に途切れることなく記録するシステムの例である。
この例にあるメモリモジュール３の書込み速度は通常では２．４ＭＢｙｔｅ/ｓｅｃであるが交代処理が発生することによって最大２０％落ちるために、２面バッファメモリ２２Ａ，２２Ｂを備えることにより、２ＭＢｙｔｅ/ｓｅｃを維持する仕様となっている。
２面バッファ部２２はバッファ２２Ａ，２２Ｂの２つの面からなり、一方の面が入力モジュール２１からのデータを受信中に、もう一方の面のデータをメモリモジュール３に対して送信するといった動作を、交互に繰り返す。
【００３５】
図２（Ｂ）の例では、バッファ部２２の入力とメモリモジュール３への入力（バッファの出力）の各データのシーケンスを示した図が示されている。
メモリモジュール３への入力のデータＤａｔａ３で交代処理が発生し、書込みにかかる時間が延長されている。この場合、次のデータＤａｔａ４のデータの書込み開始までに、データＤａｔａ４の処理が完了するために、２ＭＢｙｔｅ/ｓｅｃの書込み速度が維持できている。
図２（Ｂ）の一番下の例では、データＤａｔａ３の書込み処理が延びたことによって、データＤａｔａ４の書込み完了がデータＤａｔａ５の書込み開始までに間に合わず、バッファオーバーフローが発生している例である。
【００３６】
［本実施形態での一定以上の書込み速度でライトコマンドＷＲＴの実行］
図６（Ａ）および（Ｂ）は、本実施形態での一定以上の書込み速度でライトコマンドＷＲＴの実行処理を説明するための図である。
【００３７】
本実施形態のメモリシステム１００においては、図６（Ａ）および（Ｂ）に示すように、交代処理がライトコマンドＷＲＴ実行中には発生しないため、メモリモジュール１２０に対する書込み速度は２．４ＭＢｙｔｅ/ｓｅｃで安定する。
したがって、２ＭＢｙｔｅ/ｓｅｃの書込み速度を維持するためにホスト１１０側にあった２面のバッファが不要となる。
また、本実施形態のメモリシステム１００は、メモリモジュール１２０の速度に合わせて、２．４ＭＢｙｔｅ/ｓｅｃに高速化することも可能となることを示している。
【００３８】
次に、メモリ１４０の使用中に発生した不良セルの交代処理に対応した具体的な構成例について説明する。
以下では、まず、交代処理に対応した基本的なメモリ１４０の構成例を説明した後、本実施形態の特徴的な構成を有するメモリ１４０の構成例について説明する。
【００３９】
［交代処理に対応した基本的なメモリの構成例］
図７は、交代処理に対応したメモリの基本的な構成例を示す図である。
図７においては、図４のメモリを符号２００で示す。
【００４０】
メモリ２００は、メモリセルアレイからなる主メモリ領域２１０と交代領域２２０と、それらを制御する制御部２３０により構成される。
【００４１】
図７の制御部２３０は、メモリコントローラ１３０から受信したコマンドをデコードするコマンドデコーダ２３１、各コマンドに対応した読出し（Mem_read）コマンド制御部２３２、書込み（Mem_write）コマンド制御部２３３、交代処理制御部２３４を有する。
また、制御部２３０は、アドレスデータラッチ２３５、アドレスデコーダ２３６、およびメモリの状態情報ＳＴＳをメモリコントローラ１３０に出力する状態出力部２３７を有する。
【００４２】
Mem_writeコマンド制御部２３３は、メモリセルへの書込み中、ベリファイ読出しを行い、一定回数内にデータが一致しない場合にはエラー信号ＥＲＲを発生する。
制御部２３０は、このベリファイエラーが発生した場合に交代処理を行う、交代処理制御部２３４が存在する。
交代処理を行った不良メモリセルのアドレスはアドレスデコーダ２３６に記憶され、不良メモリセルのアドレスに一致したアクセスはすべて交代領域２２０へのアクセスへ自動的に切り換えられる。
メモリコントローラ１３０から入力されるアドレスＡＤＲは、アドレスデコーダ２３６に入力され適切なセルの選択信号が生成される。
【００４３】
図７のメモリ２００におけるMem_writeコマンド制御部２３３が実施するメモリセルへの書込みは、たとえば図１の処理のフローに従って行われる。
Mem_writeコマンド制御部２３３は、メモリセルへの書込み後（ＳＴ１）、ベリファイ読出しを行い（ＳＴ２）、読出しデータと書込みデータとの比較処理を行う（ＳＴ３）。
この比較処理でデータが一致すれば処理を終了し、一致しない場合には規定回数、データが一致するまでステップＳＴ１からの処理を繰り返す（ＳＴ４）。
このように、この一連の制御を書込みが正しく行われるまで所定の回数繰り返す。所定の回数を超えてもデータが一致しないメモリセルは、特性の劣化した不良セルと判断される。
その結果、Mem_Writeコマンド制御部２３３は、交代処理制御部２３４に対して書込み処理のエラーを通知し、交代処理を起動する。
【００４４】
図８は、図７のメモリのMem_writeコマンド制御部が実施するMem_writeコマンドの処理フローを示す図である。
この場合、上記したメモリセルへの書込み処理と、交代処理制御部２３４が実施する交代処理も含まれている。
フローの最初にアドレスデコーダ２３６によって主メモリ領域２１０か、交代領域２２０のセルか判断されている。セルへの書込みが失敗し、交代処理も失敗した場合には、エラー信号ＥＲＲを返す仕様としている。
図７のメモリ２００では、最初の書込みが失敗したとしても交代処理が成功すれば、メモリコントローラ１３０に対して成功を示す信号を返す仕様になっている。
【００４５】
具体的には、まず、Mem_writeコマンド制御部２３３が、交代セルであるか否かを判断する（ＳＴ１０１）。
交代セルでない場合には、Mem_writeコマンド制御部２３３は、主メモリ領域２１０のメモリセルへの書込みを行う（ＳＴ１０２）。
ここで、Mem_writeコマンド制御部２３３はエラーが発生したか否かを判断する（ＳＴ１０３）。ここでエラーが発生した場合、エラーが発生したことが交代処理制御部２３４に報知される。
エラー信号を受けた交代処理制御部２３４は、交代処理を行い（ＳＴ１０４）、エラーが発生したか否かを判断する（ＳＴ１０５）。
ここでエラーが発生した場合、エラー信号ＥＲＲが出力される（ＳＴ１０６）。
ステップＳＴ１０１において、交代セルであると判断した場合、Mem_writeコマンド制御部２３３は、交代領域２２０のメモリセルへの書込みを行う（ＳＴ１０７）。
ここで、Mem_writeコマンド制御部２３３はエラーが発生したか否かを判断する（ＳＴ１０８）。ここでエラーが発生した場合、エラーが発生したことが交代処理制御部２３４に報知される。
エラー信号を受けた交代処理制御部２３４は、交代処理を行い（ＳＴ１０９）、エラーが発生したか否かを判断する（ＳＴ１１０）。
ここでエラーが発生した場合、エラー信号ＥＲＲが出力される（ＳＴ１１１）。
【００４６】
交代処理制御部２３４における交代処理は以下のように行われる。
交代処理制御部２３４は、不良セルと交代可能なセルを交代領域から探し出し、その交代セルへの書込みが成功した場合に、アドレスデコーダ２３６に不良セルと交代セルのアドレスを記憶し、以降の不良セルへのアクセスが交代セルに切換わるようになる。
【００４７】
［交代処理に対応したメモリの特徴的な構成例］
図９は、第１の実施形態に係る交代処理に対応したメモリの特徴的な構成例を示す図である。
【００４８】
図９のメモリ２００Ａは、図７のメモリ２００と比較して以下の２点が異なる。
第１は、メモリ２００Ａの制御部２３０Ａが、退避領域２３８と退避処理制御部２３９を有する。
第２は、制御部２３０Ａにおいては、交代処理制御部２３４の代わりに、Mem_replace（交代処理）コマンド制御部２３４Ａが設けられている。
つまり、図９のメモリ２００Ａは、交代処理もMem_replaceコマンドとしてメモリコントローラ１３０から指示され実行する。
【００４９】
図９の退避領域２３８は、メモリセルの特性劣化による書込みエラーが発生した場合に、不良セルのアドレスと書込みデータを退避するための複数のラッチ（以下、退避ラッチ）からなる領域である。
退避処理制御部２３９は、退避ラッチの未使用ラッチの検出機能、および退避ラッチの読み書き制御機能を有する。
さらに、退避処理制御部２３９は、使用状態の退避ラッチに保持された不良アドレスと外部から入力されるアドレスを比較し、一致した場合に退避領域２３８へのアクセスに切換える機能を有する。
【００５０】
以下に、図９のメモリ２００ＡにおけるMem_writeコマンド処理、Mem_readコマンド処理、退避処理、交代処理について詳述する。
【００５１】
図１０は、図９のメモリのMem_writeコマンド制御部が実施するMem_writeコマンドの処理フローを示す図である。
【００５２】
図１０の処理フローは、図８の処理フローと以下の点で異なる。
図１０の処理フローは、アクセスされたセルが退避ラッチに割り当てられているかをアドレス比較によって確認するステップが追加され、図８の交代処理の代わりに退避処理を行うことを特徴とする。
【００５３】
具体的には、まず、Mem_writeコマンド制御部２３３が、アクセスされたセルが退避領域２３８の退避ラッチに割り当てられているかをアドレス比較によって確認する（ＳＴ１２１）。
アクセスされるセルが退避領域２３８の退避ラッチに割り当てられていない場合、Mem_writeコマンド制御部２３３は、交代セルであるか否かを判断する（ＳＴ１２２）。
交代セルではない場合には、Mem_writeコマンド制御部２３３は、主メモリ領域２１０のメモリセルへの書込みを行う（ＳＴ１２３）。
ここで、Mem_writeコマンド制御部２３３はエラーが発生したか否かを判断する（ＳＴ１２４）。ここでエラーが発生した場合、その旨が退避処理制御部２３９に報知され、退避処理制御部２３９の制御による退避処理が行われる（ＳＴ１２５）。
ステップＳＴ１２２において、交代セルであると判断した場合、Mem_writeコマンド制御部２３３は、交代領域２２０のメモリセルへの書込みを行う（ＳＴ１２６）。
ここで、Mem_writeコマンド制御部２３３はエラーが発生したか否かを判断する（ＳＴ１２７）。ここでエラーが発生した場合、その旨が退避処理制御部２３９に報知され、退避処理制御部２３９の制御による退避処理が行われる（ＳＴ１２８）。
また、ステップＳＴ１２１において、アクセスされたセルが退避領域２３８の退避ラッチに割り当てられていると判断した場合には、退避処理制御部２３９により退避領域２３８の退避ラッチへの書込みが行われる（ＳＴ１２９）。
【００５４】
図１１は、図９のメモリのMem_readコマンド制御部が実施するMem_readコマンドの処理フローを示す図である。
【００５５】
図１１の処理フローにおいても、アクセスされたセルが退避ラッチに割り当てられているかをアドレス比較によって確認するステップを有する。
【００５６】
具体的には、まず、Mem_readコマンド制御部２３２が、アクセスされたセルが退避領域２３８の退避ラッチに割り当てられているかをアドレス比較によって確認する（ＳＴ１３１）。
アクセスされるセルが退避領域２３８の退避ラッチに割り当てられていない場合、Mem_readコマンド制御部２３２は、交代セルであるか否かを判断する（ＳＴ１３２）。
交代セルではない場合には、Mem_readコマンド制御部２３２は、主メモリ領域２１０のメモリセルからの読出しを行う（ＳＴ１３３）。
ステップＳＴ１２２において、交代セルであると判断した場合、Mem_readコマンド制御部２３２は、交代領域２２０のメモリセルからの読出しを行う（ＳＴ１３４）。
また、ステップＳＴ１３１において、アクセスされたセルが退避領域２３８の退避ラッチに割り当てられていると判断した場合には、退避処理制御部２３９により退避領域２３８の退避ラッチからの読出しが行われる（ＳＴ１３５）。
【００５７】
図１２は、本実施形態の退避処理制御部が実施する退避処理のフローを示す図である。
図１３は、本実施形態に係る退避領域の一例を示す図である。
【００５８】
退避領域２３８は、図１３に示すように、記憶（保持）領域である複数の退避ラッチＬＴＣ０〜ＬＴＣｎを有する。
各退避ラッチＬＴＣ０〜ＬＴＣｎは、フラグ領域ＦＡＲＡ、不良アドレスラッチ領域（不良アドレス退避領域）ＮＡＡＲＡ、およびデータラッチ領域（データ退避領域）ＤＡＲＡの各領域を含む。
フラグ領域ＦＡＲＡは、たとえば１ビットのフラグＦＬ０〜ＦＬｎが設定される。
フラグＦＬ０〜ＦＬｎは、たとえば「０」が設定されている場合にはその退避ラッチＬＴＣは「未使用」であることを示し、「１」が設定されている場合にはその退避ラッチＬＴＣは「使用中」であることを示す。
不良アドレスラッチ領域ＮＡＡＲＡは、不良アドレスＮＡＤＲ０〜ＭＡＤＲｎがラッチされる。
データラッチ領域ＤＡＲＡは、不良アドレスＮＡＤＲ０〜ＭＡＤＲｎに対応したデータＤＴ０〜ＤＴｎがラッチされる。
退避ラッチＬＴＣ０〜ＬＴＣｎは、通常メモリで使用されるラッチと同様、高速に読み書きが可能である。
【００５９】
退避処理はあらかじめ退避領域２３８で次に使用する未使用状態の退避ラッチＬＴＣを準備する。
退避処理が必要となるエラーが発生した場合には、その退避ラッチＬＴＣの使用状態を示すフラグＦＬを使用中（本例では、「１」）に設定し、不良アドレスとそのアドレスに保存するはずだったデータを退避ラッチＬＴＣに保存する（ＳＴ１４１〜ＳＴ１４３）。
これにより、書込みエラー発生時も高速に処理を完了する。
退避ラッチＬＴＣは、その後の交代処理が完了後にフラグＦＬが未使用状態（本例では、「０」）に再設定され、再利用される。
【００６０】
次に、交代処理について説明する。
図１４は、本実施形態に係る交代処理のフローを示す図である。
【００６１】
まず、Mem_replaceコマンド制御部２３４Ａが、たとえば退避処理制御部２３９を通して使用中の退避ラッチＬＴＣが存在するか否かの検出を行う（ＳＴ１５１）。
この場合、使用状態の退避ラッチＬＴＣが存在しなければ、Mem_replaceコマンド制御部２３４Ａは交代処理をただちに終了する。
使用状態の退避ラッチＬＴＣが存在した場合、Mem_replaceコマンド制御部２３４Ａは、その退避ラッチＬＴＣにラッチされている不良アドレスＮＡＤＲから交代可能な交代領域２２０のアドレスを決定し、交代領域２２０の交代セルを検出する（ＳＴ１５２）。
そして、Mem_replaceコマンド制御部２３４Ａは、退避ラッチＬＴＣ上のデータＤＴをその交代セルへ書込む（ＳＴ１５３）。
ここで、書込みエラーが発生した否かが判別される（ＳＴ１５４）。
書込みエラーが発生せず、交代セルへの書込みが成功した場合、Mem_replaceコマンド制御部２３４Ａは、アドレスデコーダ２３６に不良セルと交代セルのアドレスを記録し、アドレスデコード時に交代セルへのアクセスが有効になるよう設定する（ＳＴ１５５）。
最後に、退避ラッチＬＴＣのフラグＦＬを未使用状態にクリアする（「０」に設定する）ことで交代処理を完了する（ＳＴ１５６）。
なお、ステップＳＴ１５４で書込みエラーが発生した場合、その交代セルの不良情報が記録される（ＳＴ１５７）。
本実施形態の特徴として交代処理もホスト１１０およびメモリコントローラ１３０からの指示で起動する。
【００６２】
次に、本実施形態に係る退避処理のより具体な例について説明する。
図１５は、本実施形態に係る退避処理の具体例を説明するための基本概念図である。
【００６３】
この例では、退避領域２３８における３つの退避ラッチＬＴＣ１〜ＬＴＣ３が用いられる。
退避ラッチＬＴＣ１は、フラグ領域ＦＡＲＡ１、アドレスラッチ領域ＮＡＡＲＡ１、およびデータラッチ領域ＤＡＲＡ１により形成される。
退避ラッチＬＴＣ２は、フラグ領域ＦＡＲＡ２、アドレスラッチ領域ＮＡＡＲＡ２、およびデータラッチ領域ＤＡＲＡ２により形成される。
退避ラッチＬＴＣ３は、フラグ領域ＦＡＲＡ３、アドレスラッチ領域ＮＡＡＲＡ３、およびデータラッチ領域ＤＡＲＡ３により形成される。
【００６４】
アドレスラッチ領域ＮＡＡＲＡ１〜ＮＡＡＲＡ３の入力は、メモリコントローラ１３０によりアドレス信号ＡＤＲの供給ラインに接続されている。
アドレスラッチ領域ＮＡＡＲＡ１〜ＮＡＡＲＡ３の出力は、アドレス比較器２４０に接続されている。
アドレス比較器２４０は、アドレスラッチ領域ＮＡＡＲＡ１〜ＮＡＡＲＡ３にラッチされたアドレスの比較を行う。アドレス比較器２４０は、退避領域２３８の全アドレスラッチの中から、フラグ状態が「使用中」であるすべてのアドレスラッチと比較する。
アドレス比較器２４０は、アドレスの一致が検出された場合にアドレスデコーダ２３６の主メモリ領域２１０、交代領域２２０への選択信号の出力を禁止するための出力禁止信号Ｓ２４０を出力する。
【００６５】
図１６は、図１４の基本概念構成に関連付けた第１の具体例を説明するための図である。
図１７は、図１４の基本概念構成に関連付けた第２の具体例を説明するための図である。
【００６６】
図１６の例は、退避ラッチＬＴＣ１〜ＬＴＣ３がすべて未使用の初期状態で、１組の退避ラッチがフラグＦＬは未使用状態のまま、メモリコントローラ１３０からのアドレス入力、データ入出力用として常時使用される例を示している。
この例では、アドレス信号ＡＤＲにより入力されるアドレスＡｄｒは「０８００００ｈ」であり、データＤＴは「ＡＢＣＤｈ」である。
メモリコントローラ１３０からのMem_writeコマンド実行中に書込みエラーが発生すると、フラグＦＬが使用状態に設定され（ＦＬ＝１）、アドレスラッチ領域ＮＡＡＲＡ１、データラッチ領域ＤＡＲＡ１の値を保持した状態に移行する。
図１６でも書込みエラーが発生すると、図１７のようにフラグ領域ＦＡＲＡ１のフラグＦＬ１は使用状態に設定され（ＦＬ＝１）、アドレスラッチ領域ＮＡＡＲＡ１とデータラッチ領域ＤＡＲＡ１の値が保持される。
次のアクセスからは退避ラッチＬＴＣ２が入力用に使用され、退避ラッチＬＴＣ２に入力されるアドレスＡｄｒは退避ラッチＬＴＣ１のアドレスラッチ領域ＮＡＡＲＡ１にラッチされているアドレスと常にアドレス比較器２４０によって比較される。
【００６７】
図１８は、図１４の基本概念構成に関連付けた第３の具体例を説明するための図である。
【００６８】
図１８の例は、Mem_writeコマンドの処理では、退避ラッチＬＴＣ２へのアドレスが退避ラッチＬＴＣ１のアドレスラッチ領域ＮＡＡＲＡ１のアドレスと一致することがアドレス比較器２４０で検出された結果、データラッチ領域ＤＡＲＡ１の値が変更される例である。
図１５の構成は最大３回のエラーまで退避領域２３８にラッチすることができる。ただし、３つの退避ラッチＬＴＣ１〜ＬＴＣ３がすべて使用状態では、次のアドレス、コマンドを受信することができず、未使用状態の退避ラッチを作るために交代処理を実施する必要がある。
また図１５のメモリは、退避処理制御部２３９で使用状態にある退避ラッチの数を管理する。
メモリコントローラ１３０に対して、状態出力部２３７から使用の状態情報ＳＴＳとして退避ラッチ数をメモリコントローラ１３０に返す。
これにより、メモリコントローラ１３０は、退避領域２３８にある不良アドレスとデータの個数を把握し、すべての交代処理を完了するまでに、何回の交代処理が必要かを判断することができる。
【００６９】
交代処理については、図１４に関連付けて説明したことから、ここでは、その具体的な処理フローについては省略する。
【００７０】
次に、メモリを制御するメモリコントローラ側の交代処理指示のフローについて説明する。
図１９は、図１５の基本概念に示されるメモリを制御するコントローラ側の交代処理指示のフローを示す図である。
【００７１】
メモリの状態から退避領域の使用状態を事前に取得することで、交代処理の指示が必要かどうかを判断する。
まず、メモリコントローラ１３０は、メモリ２００Ａの状態出力部２３７かメモリ２００Ａの状態情報ＳＴＳを取得する（ＳＴ１６１）。
メモリコントローラ１３０は、取得した状態情報ＳＴＳからメモリ２００Ａにおける使用状態にある退避ラッチ数が０であるか否かを判断する（ＳＴ１６２）。
使用状態にある退避ラッチが０で無いと判断すると、メモリコントローラ１３０は、交代処理をメモリ２００Ａに対して指示する（ＳＴ１６３）。
そして、メモリコントローラ１３０は、処理結果を確認し（ＳＴ１６４）、エラーが発生したか否かを判別する（ＳＴ１６５）。
そして、エラーが発生した場合には、エラー信号ＥＲＲが出力される。
【００７２】
図２０は、図１５の基本概念構成に関連付けた交代処理時の具体例を示す図である。
【００７３】
この例では、退避領域２３８のアドレスラッチ領域ＮＡＡＲＡ１のアドレスとデータラッチ領域ＤＡＲＡ１のデータ入力として交代領域２２０に書込みが行われる。
交代に使用する交代領域２２０のセルのアドレスはMem_replaceコマンド制御部２３４Ａがアドレスラッチ領域ＮＡＡＲＡ１の値を基に決定する。
【００７４】
図１５の例では、退避領域２３８を３つの退避ラッチで構成したが、実際に退避領域として必要となる容量はそのメモリで発生する不良の発生率に依存して決定される値である。
ある一定の転送レートでメモリ２００Ａに記録を行う場合には、その一定レートの転送が継続する期間内で発生すると見込まれる不良セル数に充分なだけの退避領域が必要となる。
一般的に不良セルの発生する確率は、揮発性メモリでは発生せず、不揮発性メモリでも数万回から１０万回の書き換え回数が保証されていることから、ｐｐｍレベルの発生確率であり、そのために必要となる退避領域も規模的に現実的な範囲であるといえる。
【００７５】
＜２．第２の実施形態＞
図２１は、本発明の第２の実施形態に係るメモリ装置を適用したメモリシステムの構成例を示すブロック図である。
【００７６】
本第２の実施形態に係るメモリシステム１００Ｂは、第１の実施形態に係るメモリシステム１００の構成に加えて、消去コマンド（Mem_eraseコマンド）にも対応可能とする構成を有している。
メモリコントローラ１３０Ｂは、ホスト１１０Ｂとメモリ１４０（２００）の間でインターフェースの変換処理として、次のような処理を行う。
メモリコントローラ１３０Ｂは、読出し処理（Mem_read）、書込み処理（Mem_write）、消去処理（Mem_erase）、および交代処理（Mem_replace）などをメモリ１４０に命令し、データＤＴの送受信、メモリ１４０の状態情報の読出しを行う。
【００７７】
図２２に、第２の実施形態に係るホスト１１０Ｂからメモリモジュール１２０Ｂのメモリコントローラ１３０Ｂに送信されるコマンドと、メモリコントローラ１３０Ｂからメモリ１４０に送信されるコマンドの対応例を示す。
図２２において、メモリコントローラ１３０Ｂは、ホスト１１０ＢからのリードコマンドＲＤを読出し処理コマンドMem_read（Mem_readコマンド）に変換し、メモリ１４０に供給する。
メモリコントローラ１３０Ｂは、ホスト１１０ＢからのライトコマンドＷＲＴを書込み処理コマンドMem_write（Mem_writeコマンド）に変換し、メモリ１４０に供給する。
メモリコントローラ１３０Ｂは、ホスト１１０Ｂからの消去（イレーズ）コマンドＥＲＳを消去処理コマンドMem_erase（Mem_eraseコマンド）に変換し、メモリ１４０に供給する。
メモリコントローラ１３０Ｂは、ホスト１１０ＢからのアイドルコマンドＩＤＬを交代処理コマンドMem_replace（Mem_replaceコマンド）に変換し、メモリ１４０に供給する。
【００７８】
図２３は、第２の実施形態に係る交代処理に対応したメモリの特徴的な構成例を示す図である。
【００７９】
図２３においては、図２１のメモリを符号２００Ｂで示す。
図２３のメモリ２００Ｂは、図９のメモリ２００Ａの構成に加えて、消去処理（Mem_erase）を可能とするMem_eraseコマンド制御部２４１を有している。
Mem_eraseコマンド制御部２４１は、セルの特性の劣化によって消去エラーが発生する場合に、書込みエラーの場合と同様に交代処理に対応した制御を行う。
【００８０】
図２４は、図２３のメモリのMem_eraseコマンド制御部が実施するMem_eraseコマンドの処理フローを示す図である。
【００８１】
図２４の処理フローは、図１０の書込みと同様に、アクセスされたセルが退避領域に割り当てられているかを確認するステップがあり、交代処理の代わりに退避処理を行うことを特徴とする。
【００８２】
具体的には、まず、Mem_eraseコマンド制御部２４１が、アクセスされたセルが退避領域２３８の退避ラッチに割り当てられているかをアドレス比較によって確認する（ＳＴ１７１）。
アクセスされるセルが退避領域２３８の退避ラッチに割り当てられていない場合、Mem_eraseコマンド制御部２４１は、不良セルであるか否かを判断する（ＳＴ１７２）。
不良セルではない場合には、Mem_eraseコマンド制御部２４１は、主メモリ領域２１０のメモリセルの消去を行う（ＳＴ１７３）。
ここで、Mem_eraseコマンド制御部２４１はエラーが発生したか否かを判断する（ＳＴ１７４）。ここでエラーが発生した場合、その旨が退避処理制御部２３９に報知され、退避処理制御部２３９の制御による退避処理が行われる（ＳＴ１７５）。
ステップＳＴ１７２において、不良セルであると判断した場合、Mem_eraseコマンド制御部２４１は、交代領域２２０のメモリセルの消去を行う（ＳＴ１７６）。
ここで、Mem_eraseコマンド制御部２４１はエラーが発生したか否かを判断する（ＳＴ１７７）。ここでエラーが発生した場合、その旨が退避処理制御部２３９に報知され、退避処理制御部２３９の制御による退避処理が行われる（ＳＴ１７８）。
また、ステップＳＴ１７１において、アクセスされたセルが退避領域２３８の退避ラッチに割り当てられていると判断した場合には、退避処理制御部２３９により退避領域２３８の退避ラッチへの消去データの書込みが行われる（ＳＴ１７９）。
【００８３】
図２５は、本第２の実施形態に係る退避処理制御部が実施する消去エラーに対応した退避処理のフローを示す図である。
【００８４】
なお、この場合も退避領域２３８は、基本的に図１３に示すように、複数の退避ラッチＬＴＣ０〜ＬＴＣｎを有し、各退避ラッチの構成は図１３の場合と同様である。したがって、ここでは、その説明は省略する。
【００８５】
退避処理はあらかじめ退避領域２３８で次に使用する未使用状態の退避ラッチＬＴＣを準備する。
退避処理が必要となるエラーが発生した場合には、その退避ラッチＬＴＣの使用状態を示すフラグＦＬを使用中（本例では、「１」）に設定し、不良アドレスと、そのアドレスに保存するはずだったデータを退避ラッチに保存する（ＳＴ１８１〜ＳＴ１８３）。
Mem_eraseコマンド実行後のセルは消去状態を示す固定値となるため、その固定値が退避ラッチのデータとして保持される。
退避ラッチＬＴＣは、その後の交代処理が完了後にフラグＦＬが未使用状態（本例では、「０」）に再設定され、再利用される。
【００８６】
次に、第２の実施形態に係る交代処理について説明する。
図２６は、本第２の実施形態に係る交代処理のフローを示す図である。
【００８７】
図２６はMem_writeとMem_eraseに対応した交代処理であり、交代領域に未使用セルはすでに消去状態であるので、消去エラーが発生した不良セルの交代セルには書込みを行っていない。
【００８８】
まず、Mem_replaceコマンド制御部２３４Ｂが、たとえば退避処理制御部２３９を通して使用中の退避ラッチＬＴＣが存在するか否かの検出を行う（ＳＴ１９１）。
この場合、使用状態の退避ラッチが存在しなければ、Mem_replaceコマンド制御部２３４Ｂは交代処理をただちに終了する。
使用状態の退避ラッチＬＴＣが存在した場合、Mem_replaceコマンド制御部２３４Ｂは、その退避ラッチＬＴＣにラッチされている不良アドレスＮＡＤＲから交代可能な交代領域２２０のアドレスを決定し、交代領域２２０の交代セルを検出する（ＳＴ１９２）。
ここで、Mem_replaceコマンド制御部２３４Ｂは、退避ラッチＬＴＣのラッチデータが消去後の値であるか否かを判断する（ＳＴ１９３）。
退避ラッチのラッチデータが消去後の値でない場合、Mem_replaceコマンド制御部２３４Ｂは、退避ラッチＬＴＣ上のデータＤＴをその交代セルへ書込む（ＳＴ１９４）。
ここで、書込みエラーが発生した否かが判別される（ＳＴ１９５）。
書込みエラーが発生せず、交代セルへの書込みが成功した場合、Mem_replaceコマンド制御部２３４Ｂはまたは退避ラッチのラッチデータが消去後の値である場合、アドレスデコーダ２３６に不良セルと交代セルのアドレスを記録する（ＳＴ１９６）。そして、アドレスデコード時に交代セルへのアクセスが有効になるよう設定する。
最後に退避ラッチＬＴＣのフラグＦＬを未使用状態にクリアする（「０」に設定する）ことで交代処理を完了する（ＳＴ１９７）。
なお、ステップＳＴ１９５で書込みエラーが発生した場合、その交代セルの不良情報が記録される（ＳＴ１９８）。
本実施形態の特徴として交代処理もホスト１１０Ｂおよびメモリコントローラ１３０Ｂからの指示で起動する。
【００８９】
＜３．第３の実施形態＞
図２７は、本発明の第３の実施形態に係るメモリ装置を適用したメモリシステムの構成例を示すブロック図である。
【００９０】
本第３の実施形態に係るメモリシステム１００Ｃが、第２の実施形態に係るメモリシステム１００Ｂと異なる点は、メモリモジュール１２０Ｃがホストコマンドとして消去（Erase）コマンドを持たない場合に対応した構成を有することにある。
メモリコントローラ１３０Ｃはホストコマンドとして、ホスト１１０Ｃからはメモリ１４０に対して直接制御する必要のない処理を持たない場合がある。
たとえば、書込む前に消去が必要なメモリを搭載したメモリモジュール１２０Ｃであっても、ホストコマンドとしてはイレーズ（消去）コマンドを持たず、ライトコマンドだけを持つことで、ホスト１１０Ｃからは消去不要なメモリとして見せる。
この役割を担うのが、メモリコントローラ１３０Ｃである。
【００９１】
図２８に、第３の実施形態に係るホスト１１０Ｃからメモリモジュール１２０Ｃのメモリコントローラ１３０Ｃに送信されるコマンドと、メモリコントローラ１３０Ｃからメモリ１４０に送信されるコマンドの対応例を示す。
図２８において、メモリコントローラ１３０Ｃは、ホスト１１０ＣからのリードコマンドＲＤを読出し処理コマンドMem_read（Mem_readコマンド）に変換し、メモリ１４０に供給する。
メモリコントローラ１３０Ｃは、ホスト１１０ＣからのライトコマンドＷＲＴを消去処理コマンドMem_erase（Mem_eraseコマンド）および書込み処理コマンドMem_write（Mem_writeコマンド）に変換し、メモリ１４０に供給する。
メモリコントローラ１３０Ｃは、ホスト１１０ＣからのアイドルコマンドＩＤＬを交代処理コマンドMem_replace（Mem_replaceコマンド）に変換し、メモリ１４０に供給する。
【００９２】
このように、本第３の実施形態に係るメモリシステム１００Ｃにおいては、メモリコントローラ１３０Ｃが、ホスト１１０ＣからのライトコマンドＷＲＴに対して、Mem_eraseコマンドとMem_writeコマンドを発行し実行させる。
【００９３】
本実施形態では、退避処理によって書込み速度をある一定以上に保つ仕組みを用意しているが、書込み速度に制約のない使い方をする場合には、通常のように書込みエラー発生時に交代処理を実施するよう設定できる機能を持つことが望ましい。
また、メモリ１４０がMem_replaceコマンドによってのみ交代処理を開始する場合も、メモリコントローラ１３０Ｃが書込みエラー検出後ただちにMem_replaceコマンドを送信することによって、ホストから見て等価な動作を実現することができる。
【００９４】
以上説明したように、本実施形態によれば、以下の効果を得ることができる。
本発明の実施形態に係るメモリシステムは、メモリ上で書込みエラー、消去エラー発生時も、交代処理のパフォーマンスへの影響なく、ホストからメモリモジュールに対して、ある一定以上の書込み速度でライトコマンドを継続することができる。
システムの設計を容易にするだけでなく、交代処理に備えてマージンを取る必要がなく、結果としてパフォーマンスも改善する。
また、これによってメモリシステムとして、ホスト内に必要だったバッファが不要になることによるコスト削減効果が得られる。
本実施形態に係るメモリシステムは、データの書き込みを終了後に交代処理を指示する機能を持つことで、コントローラが交代処理を開始する最適なタイミングを選択する柔軟性を持つ。
本実施形態に係るメモリシステムは、不良セルのアドレスと書込むデータをラッチする機能を持つことにより、ホストは不良セルが発生したこと以外の情報を保持、管理する必要がなく、交代処理に必要なホスト側、コントローラ側の負荷を軽減できる。
【００９５】
上述した本実施の形態に限らず、本発明の要旨を逸脱しない限り、適宜、変更しうることはいうまでもない。
【００９６】
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【符号の説明】
【００９７】
１００，１００Ｂ、１００Ｃ・・・メモリシステム、１１０，１１０Ｂ，１１０Ｃ・・・ホスト、１２０，１２０Ｂ，１２０Ｃ・・・メモリモジュール、１３０，１３０Ｂ，１３０Ｃ・・・メモリコントローラ、１４０・・・メモリ、１４１・・・主メモリ領域、１４２・・・交代領域、１４３・・・制御部、２００Ａ，２００Ｂ，２００Ｃ・・・メモリ、２１０・・・主メモリ領域、２２０・・・交代領域、２３０Ａ，２３０Ｂ，２３０Ｃ・・・制御部、２３１・・・コマンドデコーダ、２３２・・・読出し（Mem_read）コマンド制御部、２３３・・・書込み（Mem_write）コマンド制御部、２３４Ａ，２３４Ｂ・・・３、交代処理（Mem_replace）コマンド制御部、２３５・・・アドレスデータラッチ、２３６・・・アドレスデコーダ、２３７・・・状態出力部、２３８・・・退避領域、２３９・・・退避処理制御部、２４１・・・消去処理（Mem_erase）コマンド制御部。
【図１】
2011018387.tif 000003
【図２】
2011018387.tif 000004
【図３】
2011018387.tif 000005
【図４】
2011018387.tif 000006
【図５】
2011018387.tif 000007
【図６】
2011018387.tif 000008
【図７】
2011018387.tif 000009
【図８】
2011018387.tif 000010
【図９】
2011018387.tif 000011
【図１０】
2011018387.tif 000012
【図１１】
2011018387.tif 000013
【図１２】
2011018387.tif 000014
【図１３】
2011018387.tif 000015
【図１４】
2011018387.tif 000016
【図１５】
2011018387.tif 000017
【図１６】
2011018387.tif 000018
【図１７】
2011018387.tif 000019
【図１８】
2011018387.tif 000020
【図１９】
2011018387.tif 000021
【図２０】
2011018387.tif 000022
【図２１】
2011018387.tif 000023
【図２２】
2011018387.tif 000024
【図２３】
2011018387.tif 000025
【図２４】
2011018387.tif 000026
【図２５】
2011018387.tif 000027
【図２６】
2011018387.tif 000028
【図２７】
2011018387.tif 000029
【図２８】
2011018387.tif 000030