(57)【要約】 【課題】  データを確実且つ高速に書き込むことが可能なメモリシステムとその制御方法を提供する。【解決手段】  メモリシステムは、第１、第２のディストリクト３１ａ、３１ｂと、制御部２１を含んでいる。第１、第２のディストリクト３１ａ、３１ｂは、それぞれメモリセルアレイ３２を有する。制御部２１は、第１、第２のディストリクト３１ａ、３１ｂへ同時に第１のデータを書き込むための書き込みコマンド及びアドレスを受け、第１、第２のディストリクト３１ａ、３１ｂに同時に第１のデータを書き込む。【選択図】図２
2013069171.tif 000002
【特許請求の範囲】
【請求項１】
それぞれメモリセルアレイを有する第１、第２のディストリクトと、
前記第１、第２のディストリクトへ同時に第１のデータを書き込むための書き込みコマンド及びアドレスを受け、前記第１、第２のディストリクトに前記第１のデータを同時に書き込む制御部と
を具備することを特徴とするメモリシステム。
【請求項２】
前記制御部に、前記書き込みコマンドを発行するとともに、前記アドレスを供給するメモリコントローラをさらに具備し、
前記メモリコントローラは、読み出しコマンドを発行して前記第１、第２のディストリクトの一方から前記書き込んだ第１のデータを読み出し、この読み出された第１のデータが正常であるかどうか判別することを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記メモリコントローラは、前記書き込みコマンドを発行し、アドレスを供給した直後に、前記読み出しコマンドを発行することを特徴とする請求項２記載のメモリシステム。
【請求項４】
前記メモリコントローラは、前記読み出された第１のデータが正常である場合、前記第１、第２のディストリクトの他方に書き込まれた前記第１のデータを削除することを特徴とする請求項３記載のメモリシステム。
【請求項５】
前記メモリコントローラは、読み出し要求を受けたとき、前記第１、第２のディストリクトに対する書き込み履歴に基づき、前記第１、第２のディストリクトに前記第１のデータが書き込まれているかどうかを判別し、書き込まれている場合、前記第１、第２のディストリクトの一方から前記書き込んだ第１のデータを読み出し、前記ホストデバイスは、この読み出された第１のデータが正常であるかどうか判別し、
前記ホストデバイスは、前記履歴に基づき、前記第１、第２のディストリクトに前記第１のデータが書き込まれていない場合、通常の読み出し動作を実行することを特徴とする請求項３記載のメモリシステム。
【請求項６】
それぞれメモリセルアレイを有する第１、第２のディストリクトへ第１のデータを書き込むための書き込みコマンド及びアドレスを受け、
前記第１、第２のディストリクトに同時に前記第１のデータを書き込むことを特徴とするメモリシステムの制御方法。
【請求項７】
読み出しコマンドを発行して前記第１、第２のディストリクトの一方から前記書き込んだ第１のデータを読み出し、この読み出された第１のデータが正常であるかどうか判別することを特徴とする請求項６記載のメモリシステムの制御方法。
【請求項８】
前記読み出しコマンドは、前記書き込みコマンドを発行し、アドレスを供給した直後に、発行することを特徴とする請求項７記載のメモリシステムの制御方法。
【請求項９】
前記読み出された第１のデータが正常である場合、前記第１、第２のディストリクトの他方に書き込まれた前記第１のデータを削除することを特徴とする請求項８記載のメモリシステムの制御方法。
【請求項１０】
前記読み出しコマンドが発行されたとき、前記第１、第２のディストリクトに対する書き込み履歴に基づき、前記第１、第２のディストリクトに前記第１のデータが書き込まれているかどうかを判別し、書き込まれている場合、前記第１、第２のディストリクトの一方から前記書き込んだ第１のデータを読み出し、この読み出された第１のデータが正常であるかどうか判別し、
前記履歴に基づき、前記第１、第２のディストリクトに前記第１のデータが書き込まれていない場合、通常の読み出し動作を実行することを特徴とする請求項８記載のメモリシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置、例えばＮＡＮＤフラッシュメモリを備えたメモリシステムとその制御方法に関する。
【背景技術】
【０００２】
近時、ＮＡＮＤフラッシュメモリの記憶容量は増加しており、１チップ内のワード線の数が増加している。
【０００３】
データの書き込みにおいて、１つのワード線により選択されるページ内の一部のビットのエラーは、ＥＣＣ（Error Correction Code）を用いて訂正することが可能である。しかし、ページ単位のデータのエラー又は欠落は、ＥＣＣにより訂正することが困難である。
【０００４】
そこで、従来は、ページ単位のデータを保護するため、書き込みデータと同一のデータを書き込みデータとは別の領域に書き込み、バックアップが作成されていた。
【０００５】
しかし、バックアップのように同じデータを異なる領域に記録するためには、同じデータを２回書き込む必要があるため、書き込みに時間を要し、システムのスループットが低下していた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−０９７４０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本実施形態によれば、データを確実且つ高速に書き込むことが可能なメモリシステムとその制御方法を提供しようとするものである。
【課題を解決するための手段】
【０００８】
本実施形態のメモリシステムは、第１、第２のディストリクトと、制御部とを含んでいる。第１、第２のディストリクトは、それぞれメモリセルアレイを有する。制御部は、第１、第２のディストリクトへ同時に第１のデータを書き込むための書き込みコマンド及びアドレスを受け、前記第１、第２のディストリクトに同時に第１のデータを書き込む。
【図面の簡単な説明】
【０００９】
【図１】実施形態に適用されるメモリシステムを概略的に示す構成図。
【図２】図１の一部を示す構成図。
【図３】第１の実施形態に係るコマンドシーケンスの一例を示す図。
【図４】従来のコマンドシーケンスの例を示す図。
【図５】第１、第２のディストリクトの書き込み動作を説明するために示す図。
【図６】第２の実施形態の動作を示すフローチャート。
【図７】第３の実施形態の動作を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、実施の形態について、図面を参照して説明する。
【００１１】
（第１の実施形態）
図１は、本実施形態に係るメモリシステムを概略的に示している。
【００１２】
メモリシステムは、例えばＳＤカードのようなメモリデバイス１１と、ホスト２０により構成される。尚、メモリデバイス１１は必ずしもカード形状を有している必要は無く、ホスト２０に対して挿抜不可能な態様で実装されていても良い。ホスト２０は、ホストデバイスとも呼ぶ。
【００１３】
メモリデバイス１１は、ホスト２０に接続されたときに電源供給を受けて動作し、ホスト２０からのアクセスに応じた処理を行う。このメモリデバイス１１は、カードコントローラ１１ａを有している。
【００１４】
カードコントローラ１１ａは、例えばホストインターフェース（Ｉ／Ｆ）１２、ＣＰＵ１３、ＲＯＭ（Read only Memory）１４、ＲＡＭ（Random Access Memory）１５、バッファ１６により構成されている。これらは、バスにより接続されている。さらに、バスには、メモリコントローラ１７が接続されている。このメモリコントローラ１７には、例えばＮＡＮＤフラッシュメモリ１８が接続されている。
【００１５】
ホストインターフェース１２は、カードコントローラ１１ａとホスト２０との間のインターフェース処理を行う。
【００１６】
メモリコントローラ１７は、カードコントローラ１１ａとＮＡＮＤフラッシュメモリ１８との間のインターフェース処理を行う。さらに、メモリコントローラ１７は、ＥＣＣ回路１７ａを含み、このＥＣＣ回路１７ａにより、ＮＡＮＤフラッシュメモリ１８から供給されたデータに対してエラー訂正処理を行う。
【００１７】
ＣＰＵ１３は、メモリデバイス１１全体の動作を司るものである。ＣＰＵ１３は、ホスト２０からライト（書き込み）コマンド、リード（読み出し）コマンド、イレース（消去）コマンドなどを受けてＮＡＮＤフラッシュメモリ１８上の領域をアクセスしたり、バッファ１６を介してデータ転送処理を制御したりする。
【００１８】
ＲＯＭ１４は、ＣＰＵ１３により使用される制御プログラムなどのファームウェアの少なくとも一部を格納する。ＲＡＭ１５は、ＣＰＵ１３の作業エリアとして使用され、制御プログラムや各種のテーブルや後述する拡張レジスタを記憶する。
【００１９】
バッファ１６は、ホスト２０から送られてくるデータを、例えばＮＡＮＤフラッシュメモリ１８へ書き込む際、一定量のデータ（例えば１ページ分）を一時的に記憶したり、ＮＡＮＤフラッシュメモリ１８から読み出されたデータをホスト２０へ送り出す際、一定量のデータを一時的に記憶したりする。
【００２０】
ＮＡＮＤフラッシュメモリ１８は、例えば積層ゲート構造のメモリセル、又はＭＯＮＯＳ構造のメモリセルにより構成されている。このＮＡＮＤフラッシュメモリ１８は、例えばユーザデータや、アプリケーションソフトウェア、カードコントローラ１１ａの動作を制御するシステムソフトウェアなどを記憶している。これらユーザデータやアプリケーションソフトウェア、システムソフトウェアは、ＦＡＴ（File allocation table）により管理されている。
【００２１】
一方、ホスト２０は、例えばデジタルカメラや携帯電話、パーソナルコンピュータなどが適用可能である。ホスト２０は、ホストコントローラ２１、ＣＰＵ２２、ＲＯＭ２３、ＲＡＭ２４、例えばハードディスク２５(ＳＳＤ(Solid State Drive)を含む)により構成されている。これらはバスにより接続されている。
【００２２】
ＣＰＵ２２は、ホスト全体を制御する。ＲＯＭ２３は、ＣＰＵ２２の動作に必要なファームウェアを記憶している。ＲＡＭ２４は、例えばＣＰＵ２２の作業領域として使用されるが、ＣＰＵ２２が実行可能なプログラムもここにロードされ実行される。ハードディスク２５は、各種データを保持する。ホストコントローラ２１は、メモリデバイス１１が接続された状態において、メモリデバイス１１とのインターフェース処理を行う。すなわち、ホストコントローラ２１は、ＣＰＵ２２の指示に従って、後述する各種コマンドを発行する。
【００２３】
図２は、図１に示すＮＡＮＤフラッシュメモリ１８の一例を示している。ＮＡＮＤフラッシュメモリ１８は、例えば第１、第２のディストリクト３１ａ、３１ｂにより構成されている。これら第１、第２のディストリクト３１ａ、３１ｂは、同一構成であるため、第１のディストリクト３１ａについて説明し、第２のディストリクト１ｂにおいて、第１のディストリクト３１ａと同一部分には同一符号を付し、説明は省略する。
【００２４】
第１のディストリクト３１ａにおいて、メモリセルアレイ３２は、後述するように、複数のブロックＢＬＫ０〜ＢＬＫ４０９５を含んでいる。各ブロックは、複数のＮＡＮＤストリングにより構成されている。各ＮＡＮＤストリングは、直列接続された複数のメモリセルＭＣと、ＮＡＮＤストリングをビット線ＢＬ、及びソース線（図示せず）に接続するための選択トランジスタＳ１、Ｓ２を含んでいる。各メモリセルの制御ゲートはそれぞれワード線ＷＬに接続されている。
【００２５】
各ワード線ＷＬは、ロウデコーダ３３、３４に接続され、これらロウデコーダ３３、３４によりワード線が選択される。
【００２６】
また、各ビット線ＢＬは、センスアンプ３５にそれぞれ接続されている。各センスアンプ３５は、複数のデータレジスタ３６、３７、３８、ロジック回路３９にそれぞれ接続されている。各センスアンプ３５は、データの書き込み、ベリファイ、読み出し時にビット線ＢＬの電圧を検出する。複数のデータレジスタ３６、３７、３８は、データの書き込み及びベリファイ時、メモリセルに書き込むべきデータを保持し、データの読み出し時、メモリセルから読み出されたデータを保持する。センスアンプ３５、データレジスタ３６、３７、３８は、それぞれ1ページ分のデータを保持可能とされている。ロジック回路３９は、データレジスタ３６、３７、３８間のデータ転送、書き込み時及び読み出し時におけるデータの反転などの演算を行う。
【００２７】
さらに、第１、第２のディストリクト３１ａ、３１ｂには、周辺回路４０が共通接続されている。この周辺回路４０は、例えばアドレスデコーダ４１を含んでいる。このアドレスデコーダ４１は、ＩＯパッド４２に接続され、このＩＯパッド４２から供給されるアドレスをデコードし、このデコードしたアドレスを第１、第２のディストリクト３１ａ、３１ｂのうちの一方に供給する。
【００２８】
図３は、第１の実施形態に係るコマンドシーケンスの一例を示している。
【００２９】
第１の実施形態は、第１、第２のディストリクト３１ａ、３１ｂに同一のデータを同時に書き込むことを可能としている。このため、特別な書き込みコマンドＸＸが定義されている。“ＸＸ”は、コマンドの識別子であり、“ＸＸ”に限定されるものではなく、メモリシステムにおいて、識別可能な記号又は数字でればよい。
【００３０】
以下、メモリデバイス１１が、ホストデバイス２０から、「同一データを二重化して記憶する命令」を受信した場合の動作について説明する。同一データを二重化して記憶する命令は、ホストＩ／Ｆ１２を介してメモリデバイス１１に入力される。ＣＰＵ１３は当該命令を解釈し、メモリコントローラ１７が第１、第２のディストリクト３１ａ、３１ｂに同一のデータを同時に書き込むようＮＡＮＤフラッシュメモリ１８を制御する。
【００３１】
また、ホストデバイス２０がメモリデバイス１１に入力するデータに対して、当該データが重要でありかつ確実な保護を必要とするものであることを示すフラグビットを付加してもよい。ＣＰＵ１３は当該フラグビットを解釈し、メモリコントローラ１７が第１、第２のディストリクト３１ａ、３１ｂに同一のデータを同時に書き込むよう制御する。
【００３２】
また、ホストデバイス２０がメモリデバイス１１に連続して同じデータを入力した場合に、ＣＰＵ１３がこれを解釈し、メモリコントローラ１７が第１、第２のディストリクト３１ａ、３１ｂに同一のデータを同時に書き込むよう制御してもよい。
【００３３】
メモリコントローラ１７は、先ず、第１、第２のディストリクト３１ａ、３１ｂの同時書き込みコマンドＸＸをＮＡＮＤフラッシュメモリ１８に発行し、これに続いて、第１のディストリクト３１ａ内のページアドレスＡｄｄ（Ｌ）を出力する。次いで、メモリコントローラ１７は、第１、第２のディストリクト３１ａ、３１ｂを切り換えるコマンド又はコマンド１１ｈ（ｈは、１６進数を示す）など、ページアドレスの入力が続くことを示すコマンドをＮＡＮＤフラッシュメモリ１８に発行する。この後、メモリコントローラ１７は、第２のディストリクト３１ｂ内のページアドレスＡｄｄ（Ｒ）、及び書き込みデータＤＴ、コマンド１０ｈをＮＡＮＤフラッシュメモリ１８に順次供給する。コマンド１０ｈは、例えば本コマンドシーケンスの最後を示している。コマンド１０ｈが発行されると、レディ（Ready）／ビジー（Busy）信号がレディ状態からビジー状態（Ｂ２Ｒ）に設定され、第１のディストリクト３１ａのページアドレスＡｄｄ（Ｌ）と第２のディストリクト３１ｂのページアドレスＡｄｄ（Ｒ）にデータＤＴが同時に書き込まれる。
【００３４】
図４は、従来のコマンドシーケンスを示している。図３に示すコマンドシーケンスは、メモリコントローラ１７から第１、第２のディストリクト３１ａ、３１ｂに対する書き込みコマンドＸＸとページアドレスＡｄｄ（Ｌ）、Ａｄｄ（Ｒ）をメモリデバイス１１に供給した後、データＤＴをメモリコントローラ１７からＮＡＮＤフラッシュメモリ１８に一度だけ供給した。
【００３５】
一方、図４に示す従来のコマンドシーケンスは、先ず、第１、第２のディストリクト３１ａ、３１ｂの同時書き込みコマンドＸＸを発行し、次いで、第１のディストリクト３１ａに対して、アドレスＡｄｄ（Ｌ）、及びデータＤＴ、コマンド１１ｈをＮＡＮＤフラッシュメモリ１８に供給する。この後、メモリコントローラ１７は、第２のディストリクト３１ｂに対するページアドレスＡｄｄ（Ｒ）、及びデータＤＴをＮＡＮＤフラッシュメモリ１８に順次供給し、次いで、コマンド１０ｈを発行する。
【００３６】
図４に示すコマンドシーケンスの場合、同じデータＤＴを２度、メモリコントローラ１７からＮＡＮＤフラッシュメモリ１８に供給する必要がある。
【００３７】
図５は、第１、第２のディストリクト３１ａ、３１ｂに同一データを書き込む場合の概略的な動作を示している。
【００３８】
メモリコントローラ１７から第１、第２のディストリクト３１ａ、３１ｂに対する書き込みコマンドＸＸとページアドレスＡｄｄ（Ｌ）、Ａｄｄ（Ｒ）がＮＡＮＤフラッシュメモリ１８に供給されると、アドレスデコーダ４１は、ページアドレスＡｄｄ（Ｌ）を第１のディストリクト３１ａに供給し、ページアドレスＡｄｄ（Ｒ）を第２のディストリクト３１ｂに供給する。また、ＮＡＮＤフラッシュメモリ１８に供給されたデータＤＴは、第１、第２のディストリクト３１ａ、３１ｂのデータレジスタ（ＸＤＬ）３８にそれぞれ保持される。この後、データレジスタ３８に保持されたデータが、ロジック回路３９、データレジスタ３７、３６、センスアンプ３５にそれぞれ転送され、ページアドレスＡｄｄ（Ｌ）、Ａｄｄ（Ｒ）により指定されたページに同時に書き込まれる。
【００３９】
上記第１の実施形態によれば、第１、第２のディストリクト３１ａ、３１ｂに、同一のデータＤＴを書き込む書き込みコマンドＸＸを定義し、この書き込みコマンドＸＸに対応して、第１、第２のディストリクト３１ａ、３１ｂのページアドレスＡｄｄ（Ｌ）、Ａｄｄ（Ｒ）、及びデータＤＴを順次、ＮＡＮＤフラッシュメモリ１８に供給することにより、第１、第２のディストリクト３１ａ、３１ｂに、同一のデータＤＴを同時に書き込むことができる。したがって、単一の書き込みコマンドＸＸにより、第１、第２のディストリクト３１ａ、３１ｂに同一データを同時に書き込むことが可能であり、従来のように、書き込みコマンドを２回発行する必要がない。このため、書き込み処理のスループットを向上することが可能である。
【００４０】
また、第１、第２のディストリクト３１ａ、３１ｂに同一データを同時に書き込んでいるため、書き込みデータが破壊される確率を低下することができる。このため、例えば撮影された写真データのように、再入力が困難なデータを確実に保存する場合、有効である。
【００４１】
なお、本実施形態では、ＮＡＮＤフラッシュメモリ１８が２つのディストリクトを備える場合について説明したが、３つ以上のディストリクトを備える場合についても同様に適用可能である。また、第１、第２のディストリクト３１ａ、３１ｂに同一データを同時に書き込むための特別のコマンドを用意せず、ＮＡＮＤフラッシュメモリ１８が書き込みデータを受け付けた場合、常に第１、第２のディストリクト３１ａ、３１ｂに同一データを同時に書き込むようにしてもよい。
【００４２】
（第２の実施形態）
図６は、第２の実施形態を示すものであり、例えばメモリコントローラ１７の動作を示している。
【００４３】
第１の実施形態は、単一の書き込みコマンドＸＸにより、第１、第２のディストリクト３１ａ、３１ｂに、同一のデータＤＴを書き込んだ。
【００４４】
これに対して、第２の実施形態は、第１、第２のディストリクト３１ａ、３１ｂに同一のデータＤＴを書き込んだ直後に、第１、第２のディストリクト３１ａ、３１ｂの一方を読み出し、そのデータが正常である場合、第１、第２のディストリクト３１ａ、３１ｂに書き込んだデータＤＴの他方を無効とする。
【００４５】
すなわち、ＮＡＮＤフラッシュメモリ１８にデータを書き込む場合において、書き込みが完了すると、ＮＡＮＤフラッシュメモリ１８から正常に書き込みが終了した旨のステータスデータが出力される。しかし、この場合においても、ブロック内にデータを書き込むに従って、データが壊れている場合がある。データが破壊されているかどうかは、ＮＡＮＤフラッシュメモリ１８からデータを読み出すことにより判明する。データが正常に読み出された場合、そのデータが記録されたブロックは正常と判断される。このため、正常と判断されたブロックを含むディストリクトのデータを残し、別のディストリクトの同一データを含むブロックが無効とされる。
【００４６】
具体的には、図６に示すように、第１の実施形態に従って、単一の書き込みコマンドＸＸにより、第１、第２のディストリクト３１ａ、３１ｂに、同一のデータＤＴが書き込まれる（ＳＴ１１）。
【００４７】
この後、メモリコントローラ１７から第１、第２のディストリクト３１ａ、３１ｂに書き込んだデータＤＴの一方を読み出す読み出しコマンドが発行される。すなわち、例えば第１のディストリクト３１ａに書き込まれたデータＤＴを読み出す読み出しコマンドが発行され、第１のディストリクト３１ａに書き込まれたデータＤＴが読み出される（ＳＴ１２）。
【００４８】
第１のディストリクト３１ａから読み出されたデータＤＴは、メモリコントローラ１７に転送され、ＥＣＣ回路１７ａによりエラー訂正処理が実行される。このエラー訂正処理の結果、読み出されたデータが正常であるかどうかが判別される。すなわち、読み出されたデータに含まれたエラーが訂正可能な程度かどうかが判別される（ＳＴ１３）。
【００４９】
この判別の結果、ＥＣＣ回路１７ａで訂正可能な程度のエラーである場合、第１のディストリクト３１ａから読み出されたデータＤＴは、正常なデータであると判別され、第１、第２のディストリクト３１ａ、３１ｂの他方のデータ、すなわち、この場合、第２のディストリクト３１ｂに書き込まれた第１のディストリクト３１ａと同一のデータが無効とされる（ＳＴ１４）。すなわち、第２のディストリクト３１ｂの第１のディストリクト３１ａと同一のデータを含むブロックが無効とされる。
【００５０】
一方、上記ステップＳＴ１３において、読み出されたデータがエラー訂正不可能であると判別された場合、第１、第２のディストリクト３１ａ、３１ｂの他方、例えば第２のディストリクト３１ｂに書き込まれたデータＤＴを読み出す読み出しコマンドが発行され、第２のディストリクト３１ｂに、第１のディストリクト３１ａと同時に書き込まれたデータＤＴが読み出される（ＳＴ１５）。
【００５１】
この第２のディストリクト３１ｂから読み出されたデータＤＴは、メモリコントローラ１７に転送され、ＥＣＣ回路１７ａによりエラー訂正処理が実行される。このエラー訂正処理の結果、読み出されたデータが正常であるかどうかが判別される。すなわち、読み出されたデータに含まれたエラーが訂正可能な程度かどうかが判別される（ＳＴ１６）。
【００５２】
この判別の結果、ＥＣＣ回路１７ａで訂正可能な程度のエラーである場合、第２のディストリクト３１ｂから読み出されたデータＤＴは、正常なデータであると判別され、第１、第２のディストリクト３１ａ、３１ｂの一方のデータ、すなわち、この場合、第１のディストリクト３１ａに書き込まれた第２のディストリクト３１ｂと同一のデータを含むブロックが無効とされる（ＳＴ１７）。
【００５３】
また、上記ステップＳＴ１６の判別の結果、読み出されたデータがエラー訂正不可能である場合、上記第１、第２のディストリクト３１ａ、３１ｂの同一データを含む両ブロックがエラーであるため、本方式であっても訂正不能データであると認識される（ＳＴ１８）。
【００５４】
尚、メモリコントローラ１７による上記ブロックの無効化は、例えばデータのアクセスを禁止すればよく、物理的に消去する必要はない。また、無効とされたデータの消去は、メモリコントローラ１７により必要に応じて実行される。
【００５５】
上記第２の実施形態によれば、第１、第２のディストリクト３１ａ、３１ｂに書き込んだデータＤＴの一方を読み出し、この読み出されたデータが正常である場合、第１、第２のディストリクト３１ａ、３１ｂに書き込んだデータＤＴの他方を含むブロックを無効としている。したがって、データを、単一のコマンドにより第１、第２のディストリクト３１ａ、３１ｂのうちの１つに確実に書き込むことが可能である。
【００５６】
例えば従来のように、データを第１、第２のディストリクト３１ａ、３１ｂのうちの一方にのみ書き込む場合、書き込みに失敗した場合、メモリコントローラ１７は、再度書き込みコマンドを発行し、アドレス及びデータをメモリデバイス１１に転送する必要があるが、ＲＡＭ１５には既に該当データが存在しない場合があり、例えばホスト２０がデジタルスティルカメラである場合、撮影したデータは失われることになる。
【００５７】
しかし、第２の実施形態の場合、第１、第２のディストリクト３１ａ、３１ｂの両方に書き込んだデータの両方がエラー訂正不可能な場合は、稀であるため、データを確実に書き込むことが可能であるとともに、書き込みのスループットを向上することが可能である。
【００５８】
しかも、一方のディストリクトのデータが正常である場合、他方のディストリクトの同一データを含むブロックを無効とし、必要に応じて消去されるため、メモリの容量の低減を抑制することが可能である。
【００５９】
（第３の実施形態）
第２の実施形態は、第１、第２のディストリクト３１ａ、３１ｂの指定されたブロックにそれぞれ同一のデータを書き込んだ直後に、メモリコントローラ１７から読み出しコマンドを発行して、例えば第１のディストリクト３１ａの指定されたブロックからデータを読み出し、このデータにエラーがないか、ＥＣＣにより訂正可能である場合、第１のディストリクト３１ａのデータは正常であると判断し、第２のディストリクト３１ｂの同一のデータを含むブロックを無効とした。
【００６０】
これに対して、第３の実施形態は、第１、第２のディストリクト３１ａ、３１ｂにそれぞれ同一のデータを書き込んだ直後に、書き込んだデータを読み出さない。第３の実施形態の場合、第１、第２のディストリクト３１ａ、３１ｂに書き込まれたデータは、当面の間有効とする。すなわち、これら第１又は第２のディストリクト３１ａ、３１ｂに書き込まれたデータが読み出されるまでは、第１、第２のディストリクト３１ａ、３１ｂに書き込まれた両データとも有効と扱われる。
【００６１】
この状態において、図７に示すように、メモリコントローラ１７は、ＣＰＵ１３からデータの読み出し要求を受けると（Ｓ２１）、先ず、第１、第２のディストリクト３１ａ、３１ｂに同一データが書き込まれているかどうかを判別する（ＳＴ２２）。この場合、メモリコントローラ１７は、例えば書き込みコマンドＸＸの発行履歴及びページアドレスを保存し、この保存されたページアドレスと読み出しアドレスとが比較される。
【００６２】
上記判別の結果、第１、第２のディストリクト３１ａ、３１ｂに同一データが書き込まれている場合、図６に示すステップＳ１２〜Ｓ１８の動作が実行される（Ｓ２３）。すなわち、第１、第２のディストリクト３１ａ、３１ｂの一方からデータが読み出される。この読み出されたデータが正常である場合、第１、第２のディストリクト３１ａ、３１ｂの他方に記録された同一データを含むブロックが無効とされる。
【００６３】
また、上記ステップ２２の判別の結果、第１、第２のディストリクト３１ａ、３１ｂに同一データが書き込まれていないと判別された場合、通常の読み出し動作が実行される（ＳＴ２４）。
【００６４】
上記第３の実施形態によれば、第１、第２のディストリクト３１ａ、３１ｂにデータを書き込んだ直後に、書き込みデータが正常かどうかを検証するための読み出しを行わないため、検証に要するオーバーヘッドを低減することができる。したがって、書き込み速度を高速化することが可能である。
【００６５】
尚、上記第１乃至第３の実施形態は、第１、第２のディストリクトを有するＮＡＮＤフラッシュメモリの動作について説明した。しかし、これに限定されるものではなく、３つ以上のディストリクトを有するＮＡＮＤフラッシュメモリに本実施形態を適用可能なことは言うまでもない。
【００６６】
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００６７】
１１…メモリデバイス、１８…ＮＡＮＤフラッシュメモリ、２０…ホスト、２１…ホストコントローラ、３１ａ、３１ｂ…第１、第２のディストリクト、３２…メモリセルアレイ。
【図１】
2013069171.tif 000003
【図２】
2013069171.tif 000004
【図３】
2013069171.tif 000005
【図４】
2013069171.tif 000006
【図５】
2013069171.tif 000007
【図６】
2013069171.tif 000008
【図７】
2013069171.tif 000009