(57)【特許請求の範囲】
【請求項１】
正規のセルアレイ領域と、
冗長セルアレイ領域と、
前記正規のセルアレイ領域のセクタのプログラムに失敗したデータを格納するデータ格納手段と、
前記正規のセルアレイ領域のセクタのプログラムに失敗すると、前記データ格納手段に格納されているデータと、前記正規のセルアレイ領域の前記セクタ内にすでに書き込まれているデータとを前記冗長セルアレイ領域に再プログラムする書込み制御手段と、を有することを特徴とする半導体装置。
【請求項２】
前記書込み制御手段は、前記再プログラムの前に、前記冗長セルアレイ領域の所定セクタを所定のデータへ初期化することを特徴とする請求項１記載の半導体装置。
【請求項３】
前記書込み制御手段は、前記所定セクタが既に初期化済みであった場合に、前記所定セクタに対する前記再プログラム前の前記初期化を行わないことを特徴とする請求項２記載の半導体装置。
【請求項４】
前記冗長セルアレイ領域に含まれるセクタが、使用状態にあるのか未使用の状態にあるのかを示す情報を記憶する第１の記憶部と、
前記第１の記憶部を検索して、前記冗長セルアレイ領域の未使用のセクタを検出する検索制御手段とを有することを特徴とする請求項１記載の半導体記憶装置。
【請求項５】
前記第１の記憶部は、使用された冗長セクタであるか否かを示す情報を記憶した記憶領域と、プログラムエラーを救済するための冗長領域として使用されたか否かを示す情報を記憶した記憶領域とを有することを特徴とする請求項４記載の半導体記憶装置。
【請求項６】
前記プログラムに失敗した前記セクタのセクタ番号と、前記冗長セルアレイ領域の所定セクタの番号との関係を記憶する第２の記憶部を有することを特徴とする請求項１記載の半導体装置。
【請求項７】
前記プログラムに失敗した前記セクタ内のメモリセルのアドレスを格納する失敗アドレスレジスタを有し、
前記書込み制御手段は、前記失敗アドレスレジスタに格納された前記アドレス以外の前記セクタ内のアドレスに書き込まれたデータを前記プログラムに失敗した前記セクタから読出して、前記冗長セルアレイ領域に再プログラムすることを特徴とする請求項１記載の半導体装置。
【請求項８】
前記書込み制御手段は、前記プログラムに失敗したデータ、又は前記セクタ内にすでに書き込まれているデータの前記冗長セルアレイ領域への再プログラムに失敗すると、前記半導体装置を制御するコントローラに対してエラー信号を出力することを特徴とする請求項１記載の半導体装置。
【請求項９】
前記検索制御手段は、前記冗長セルアレイ領域の未使用のセクタを検出することができなかった場合に、前記半導体装置を制御するコントローラに対してエラー信号を出力することを特徴とする請求項４記載の半導体装置。
【請求項１０】
前記書込み制御手段は、前記コントローラからのポーリングによる状態問い合わせに応答して、前記エラー信号を前記コントーラに出力することを特徴とする請求項８記載の半導体装置。
【請求項１１】
半導体装置の備える正規のセルアレイ領域のセクタにプログラムするステップと、
前記正規のセルアレイ領域のセクタのプログラムに失敗したデータをデータ格納手段に格納するステップと、
前記正規のセルアレイ領域のセクタへのプログラムに失敗すると、書込み制御手段により、前記データ格納手段に格納されているデータと、前記正規のセルアレイ領域の前記セクタ内にすでに書き込まれているデータとを前記半導体装置の備える冗長セルアレイ領域に再プログラムするステップと、を有することを特徴とするプログラムデータ冗長方法。
【請求項１２】
前記再プログラムの前に、前記冗長セルアレイ領域の所定セクタを所定のデータへ初期化するステップを有することを特徴とする請求項１１記載のプログラムデータ冗長方法。
【請求項１３】
前記初期化するステップは、前記所定セクタが既に初期化済みであった場合に、前記所定セクタに対する前記再プログラム前の前記初期化を行わないことを特徴とする請求項１２記載のプログラムデータ冗長方法。
【請求項１４】
前記プログラムに失敗した前記セクタ内のメモリセルのアドレスを失敗アドレスレジスタに格納するステップと、
前記プログラムに失敗した前記セクタ内のメモリセルのアドレスと、前記セクタ内の各メモリセルのアドレスとを比較するステップとを有し、
前記比較の結果をもとに、前記セクタ内にすでに書き込まれているデータを前記冗長セルアレイ領域に再プログラムすることを特徴とする請求項１１記載のプログラムデータ冗長方法。
【請求項１５】
前記プログラムに失敗したデータ、又は前記セクタ内にすでに書き込まれているデータの前記冗長セルアレイ領域への再プログラムに失敗すると、前記書込み制御手段は、前記半導体装置を制御するコントローラに対してエラー信号を出力するステップを有することを特徴とする請求項１１記載のプログラムデータ冗長方法。
【請求項１６】
再プログラムするステップが成功した時に、プログラムエラーを救済した記録を残すステップを有することを特徴とする請求項１１記載のプログラムデータ冗長方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関する。特に、データのプログラム時に不良が生じた場合に、不良メモリセルを冗長メモリセルに置換する技術に関する。
【背景技術】
【０００２】
フラッシュメモリ等の半導体装置では、通常セルアレイと、この通常セルアレイに不良があったときの予備回路として冗長セルアレイを設けている。データのプログラム、イレース時にエラーが発生した場合に、不良のメモリセルを冗長メモリセルに置換することで、データを救済し、製造歩留りを向上させている。例えば、特許文献１では、正常に書込みが完了しなかったメモリセルのロウアドレスを不良ロウアドレス記憶回路に記憶しておき、この不良ロウアドレスが入力されたときには冗長用のメモリセルを選択するように制御する制御回路を設けている。【０００３】
また特許文献２では、消去エラーの発生を検出したときには、消去エラーの発生したメモリブロックを予備のメモリブロックに対応付ける救済情報を記録し、この救済情報で示される正規のメモリセルへのアクセスを検出したときは、正規メモリブロックへのアクセスを対応する予備のメモリブロックへのアクセスに切り換えている。【０００４】
【特許文献１】日本国特許公開公報  特開平８−７５９７号公報
【特許文献２】日本国特許公開公報  特開２００４−３４２１８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の自動冗長の技術では、プログラムに失敗したデータを冗長メモリセルに再プログラムする技術に関しては開示されているが、プログラム対象のセクタにすでに書き込まれているデータを保証する技術については開示されていない。エラーが発生すると、通常セクタに代えて冗長セクタが選択されるため、エラーが発生した通常セクタに既に書き込まれているデータを冗長セクタに移さないと、この既に書き込まれているデータを保証することができない。【０００６】
また特許文献２は、データ消去時の技術であり、データの保証等については当然考慮していない。【０００７】
本発明は上記事情に鑑みてなされたものであり、顧客データを保証し、システムの信頼性を高めた半導体装置及びプログラムデータ冗長方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
かかる目的を達成するために本発明の半導体装置は、正規のセルアレイ領域と、前記正規のセルアレイ領域に対する冗長セルアレイ領域と、前記正規のセルアレイ領域のセクタへのプログラムに失敗すると、前記プログラムに失敗したデータと、前記正規のセルアレイ領域の前記セクタ内にすでに書き込まれているデータとを前記冗長セルアレイ領域に再プログラムする書込み制御手段と、を有する構成としている。このように本発明は、プログラムに失敗すると、プログラムに失敗したデータと、セクタ内にすでに書き込まれているデータとを冗長セルアレイ領域に再プログラムするようにしたので、データの消失を防止しデータを保証することができる。従って、システムの信頼性を向上させることができる。【０００９】
上記構成の半導体装置において、前記書込み制御手段は、前記再プログラムの前に、前記冗長セルアレイ領域の所定セクタを所定のデータへ初期化するとよい。再プログラムの前に、冗長セルアレイ領域の所定セクタを所定のデータへ初期化しておくことで、データが２重に書き込まれることを防止することができる。またプログラムに失敗した正規セルアレイ領域のセクタに既に書き込まれているデータと、書き込む予定のデータをそのまま冗長セルアレイ領域の所定セクタに書き込むことができる。【００１０】
上記構成の半導体装置において、前記書込み制御手段は、前記所定セクタが既に初期化済みであった場合に、前記所定セクタに対する前記再プログラム前の前記初期化を行わなくてよい。すでに所定セクタが初期化済みであった場合に、初期化を行わないことで不必要な処理を行うことがなく、再プログラムの時間を短縮させることができる。【００１１】
上記構成の半導体装置において、前記冗長セルアレイ領域の各セクタが、使用状態にあるのか未使用の状態にあるのかを示す情報を記憶する第１の記憶部と、前記第１の記憶部を検索して、前記冗長セルアレイ領域の未使用のセクタを検出する検索制御手段とを有しているとよい。これにより冗長セルアレイ領域の未使用のセクタを選択することができる。従って、使用済みのセクタにデータが重ね書きされ、記録済みのデータが消えてしまうという不具合を生じない。【００１２】
上記構成の半導体装置において、前記第１の記憶部は、製品出荷前にベンダによって使用された冗長セクタであるか否かを示す情報を記憶した記憶領域と、製品出荷後のプログラムエラーを救済するための冗長領域として使用されたか否かを示す情報を記憶した記憶領域とを有しているとよい。既にベンダで冗長を実施したセクタや既に自動冗長を実施したセクタへの冗長を防止し、製品の信頼性を高めることができる。【００１３】
上記構成の半導体装置において、前記プログラムに失敗した前記セクタのセクタ番号と、前記冗長セルアレイ領域の所定セクタの番号との関係を記憶する第２の記憶部を有しているとよい。プログラムに失敗した正規のセルアレイ領域のセクタ番号と、再プログラムを行った所定セクタのセクタ番号とを対応付けることができる。従って、データの読出しや消去時に、外部から入力されたアドレスに対して正しい冗長セルアレイのセクタを選択して処理を行うことができる。【００１４】
上記構成の半導体装置において、前記プログラムに失敗したデータを格納するデータ格納手段を有し、前記書込み制御手段は、前記データ格納手段から前記プログラムに失敗したデータを読出して前記冗長セルアレイ領域に前記再プログラムを行うとよい。プログラムに失敗したデータを格納しておいて、このデータを冗長セルアレイ領域に再プログラムを行うので、データの消失を防止すると共に、プログラムに失敗してもプログラム処理を最初からやり直す必要がない。【００１５】
上記構成の半導体装置において、前記プログラムに失敗した前記セクタ内のメモリセルのアドレスを格納する失敗アドレスレジスタを有し、前記書込み制御手段は、前記失敗アドレスレジスタに格納された前記アドレス以外の前記セクタ内のアドレスに書き込まれたデータを前記プログラムに失敗した前記セクタから読出して、前記冗長セルアレイ領域に再プログラムするとよい。プログラムに失敗したセクタ内のメモリセルのアドレスを格納しているので、セクタ内にすでに書き込まれているデータを読出して冗長セルアレイ領域に再プログラムすることができる。【００１６】
上記構成の半導体装置において、前記書込み制御手段は、前記プログラムに失敗したデータ、又は前記セクタ内にすでに書き込まれているデータの前記冗長セルアレイ領域への再プログラムに失敗すると、前記半導体装置を制御するコントローラに対してエラー信号を出力するとよい。再プログラムに失敗するとエラー信号をコントローラに出力するので、コントローラ側で、再プログラムの失敗を認識することができる。【００１７】
上記構成の半導体装置において、前記検索制御手段は、前記冗長セルアレイ領域の未使用のセクタを検出することができなかった場合に、前記半導体装置を制御するコントローラに対してエラー信号を出力するとよい。未使用の冗長セルアレイ領域のセクタを検出することができなかった場合にエラー信号をコントローラに出力するので、半導体装置が再プログラムできない状態にあることをコントローラ側に認識させることができる。【００１８】
上記構成の半導体装置において、前記書込み制御手段は、前記コントローラからのポーリングによる状態問い合わせに応答して、前記エラー信号を前記コントーラに出力するとよい。所定間隔ごとにコントローラから出力されるポーリング信号に応答して、エラーを通知するので、コントローラにエラーを通知する時間に大幅な遅れを生じない。【００１９】
本発明のプログラムデータ冗長方法は、半導体装置の備える正規のセルアレイ領域のセクタにプログラムするステップと、前記正規のセルアレイ領域のセクタへのプログラムに失敗すると、前記プログラムに失敗したデータと、前記セクタ内にすでに書き込まれているデータとを前記正規のセルアレイ領域の冗長セルアレイ領域に再プログラムするステップと、を有している。このように本発明は、プログラムに失敗すると、プログラムに失敗したデータと、前記セクタ内にすでに書き込まれているデータとを前記冗長セルアレイ領域に再プログラムするようにしたので、データの消失を防止しデータを保証することができる。従って、システムの信頼性を向上させることができる。【００２０】
上記プログラムデータ冗長方法において、前記再プログラムの前に、前記冗長セルアレイ領域の所定セクタを所定のデータへ初期化するステップを有しているとよい。再プログラムの前に、冗長セルアレイ領域の所定セクタを所定のデータへ初期化しておくことで、データが２重で書き込まれることがなく、プログラムに失敗した正規セルアレイ領域のセクタに書き込んだデータと、書き込む予定であったデータをそのまま冗長セルアレイ領域の所定セクタに書き込むことができる。【００２１】
上記プログラムデータ冗長方法において、前記初期化するステップは、前記所定セクタが既に初期化済みであった場合に、前記所定セクタに対する前記再プログラム前の初期化を行わない。すでに所定セクタが初期化済みであった場合に、初期化を行わないことで不必要な処理を行わなくてすみ、再プログラムの時間を短縮させることができる。【００２２】
上記プログラムデータ冗長方法において、前記プログラムに失敗したデータをデータ格納手段に格納するステップを有し、前記再プログラムのステップは、前記データ格納手段から前記プログラムに失敗したデータを読出して前記再プログラムを行うとよい。プログラムに失敗したデータを格納しておいて、このデータを冗長セルアレイ領域に再プログラムを行うので、データの消失を防止すると共に、プログラムに失敗してもプログラム処理を最初からやり直す必要がない。【００２３】
上記プログラムデータ冗長方法において、前記プログラムに失敗した前記セクタ内のメモリセルのアドレスを失敗アドレスレジスタに格納するステップと、前記プログラムに失敗した前記セクタ内のメモリセルのアドレスと、前記セクタ内の各メモリセルのアドレスとを比較するステップとを有し、前記比較の結果をもとに、前記セクタ内にすでに書き込まれているデータを前記冗長セルアレイ領域に再プログラムするとよい。プログラムに失敗したセクタ内のメモリセルのアドレスを格納しているので、セクタ内にすでに書き込まれているデータを読出して冗長セルアレイ領域に再プログラムすることができる。【００２４】
上記プログラムデータ冗長方法において、前記プログラムに失敗したデータ、又は前記セクタ内にすでに書き込まれているデータの前記冗長セルアレイ領域への再プログラムに失敗すると、前記半導体装置を制御するコントローラに対してエラー信号を出力するステップを有するとよい。再プログラムに失敗するとエラー信号をコントローラに出力するので、コントローラ側で、再プログラムの失敗を認識することができる。【００２５】
上記プログラムデータ冗長方法において、再プログラムするステップが成功した時、プログラムエラーを救済した記録を残すステップを有しているとよい。従って、既に自動冗長を実施したセクタへの冗長を防止し、製品の信頼性を高めることができる。
【発明の効果】
【００２６】
本発明は、顧客データを保証し、システムの信頼性を高めた半導体装置を提供することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の半導体装置の構成を示すブロック図である。
【図２】セルアレイ部とその周辺部の構成を示す図である。
【図３】半導体装置の動作概略を示すフローチャートである。
【図４】半導体装置の動作概略を示す図である。
【図５】冗長ＣＡＭ、付加ＣＡＭの構成を示す図である。
【図６】データラッチ回路にラッチされるデータと、そのコラム、ロウアドレスを示す図である。
【図７】自動冗長時の通常セクタと冗長セクタへのアクセス手順を示す図である。
【図８】半導体装置の動作を示すフローチャートである。
【図９】半導体装置の動作を示すフローチャートである。
【図１０】半導体装置の他の構成を示す図である。
【図１１】半導体装置の他の構成を示す図である。
【発明を実施するための最良の形態】
【００２８】
添付図面を参照しながら本発明を実施するための最良の形態について説明する。
【実施例】
【００２９】
まず、図１を参照しながら本実施例の構成を説明する。図１に示すように本実施例の半導体装置１は、メモリ部１０と、メモリ部１０を制御するコントローラ部１００とを備えている。また、半導体装置１の外部には、この半導体装置１を制御するＭＰＵ（Micro Processing Unit）１１０が接続されている。【００３０】
コントローラ部１００は、図１に示すようにアドレス生成部１０１と、コマンド生成部１０２と、データ処理部１０３とを備えている。アドレス生成部１０１は、データを書き込むセルアレイ部のアドレス、又は消去するセルアレイ部のアドレスを生成する。コマンド生成部１０２は、外部のＭＰＵ１１０から入力された命令を解析し、プログラムコマンド、イレースコマンドなどのコマンドを生成する。生成されたコマンドは、メモリ部１０のコマンドレジスタ１９に出力される。データ処理部１０３は、メモリ部１０に書き込むデータや、メモリ部１０から読み出されたデータを処理する。【００３１】
メモリ部１０は、アドレスデコーダ１１と、アドレスバッファ１２と、失敗アドレスレジスタ１３と、アドレスカウンタ１４と、比較回路１５と、冗長ＣＡＭ（Contents Addressable Memory）１６と、付加ＣＡＭ１７と、制御回路１８と、入出力バッファ２３、リードバッファ２４、ライトバッファ２５と、通常用のセルアレイ部３０と、冗長用のセルアレイ部３１と、を備えている。通常用のセルアレイ部３０は複数のセクタを備え、冗長用のセルアレイ部３１は一般的に通常用セルアレイ部３１のセクタ数よりも少ない任意数の冗長セクタを備える。【００３２】
また、制御回路１８は、コマンドレジスタ１９と、プログラム／イレースステートマシン（以下、ＰＧＭ／ＥＲステートマシンと表記する。このＰＧＭ／ＥＲステートマシン２０が本発明の書込み制御手段に該当する）２０と、自動冗長ステートマシン２１と、冗長／付加ＣＡＭ検索部２２（本発明の検索制御手段に該当する）とを備えている。【００３３】
アドレスデコーダ１１は、アドレス生成部１０１で生成されたアドレス信号をデコードし、該当するメモリセルを選択する選択信号を出力する。アドレスバッファ１２は、アドレスデコーダ１１でデコードされたアドレス信号を一時的に蓄積し、コラムデコーダ５６、ロウデコーダ５２にアドレスを供給する。【００３４】
またアドレスカウンタ１４は、自動冗長時に、通常用のセルアレイ部のアドレスを発生して比較回路１５に出力する。また、自動冗長時に、比較回路１５から後述するＭＡＴＣＨ信号が出力されると、アドレスカウンタ１４は、比較回路１５で比較したアドレスに対する出力不許可信号をアドレスバッファ１２に出力する。出力不許可信号を受けたアドレスバッファ１２は、該当するアドレスの出力を行わない。【００３５】
失敗アドレスレジスタ１３には、通常用セルアレイ部３０に対するプログラムが失敗した時に、このプログラムに失敗したアドレス（コラムアドレス、ロウアドレス、セクタ番号等）を記憶する。【００３６】
比較回路１５は、アドレスカウンタ１４によって発生したアドレスと、失敗アドレスレジスタ１３に格納されたアドレスとを比較し、両者が一致した場合にはアドレスカウンタ１４にＭＡＴＣＨ信号を出力する。また、両者が一致しなかった場合には、ＰＧＭ／ＥＲステートマシン２０に対してＮＯＭＡＴＣＨ信号を出力する。比較回路１５からＮＯＭＡＴＣＨ信号が出力されたＰＧＭ／ＥＲステートマシン２０は、該当するアドレスのデータを通常用セルアレイ部３０から読出して、冗長セルアレイ部３１に書き込む。【００３７】
制御回路１８に含まれるコマンドレジスタ１９は、コントローラ部１００からのプログラムやイレースのコマンドを認識し、ＰＧＭ／ＥＲステートマシン２０を制御する。またコマンドレジスタ１９は、コントローラ部１００からの自動メモリ冗長コマンド（可否確認コマンドを含む）を認識し、自動冗長ステートマシン２１又は冗長／付加ＣＡＭ検索部２２を制御する。さらにコマンドレジスタ１９は、コントローラ部１００から出力されたポーリングコマンドを認識し、ＰＧＭ／ＥＲステートマシン２０、自動冗長ステートマシン２１又は冗長／付加ＣＡＭ検索部２２を制御する。【００３８】
ＰＧＭ／ＥＲステートマシン２０は、通常用セルアレイ部３０に対するプログラム及びイレースと、これらの動作に伴うベリファイとを行う。またＰＧＭ／ＥＲステートマシン２０は、冗長セルアレイ部３１に対してもプログラム及びイレースと、これらの動作に伴うベリファイとを行う。さらに、コントローラ部１００からの各種ポーリングコマンドに対応して応答を返す。【００３９】
自動冗長ステートマシン２１は、自動冗長時の各種制御を行う。自動冗長ステートマシン２１は、冗長セルアレイ部３１に使用可能な領域があるか否かを冗長／付加ＣＡＭ検索部２２を使用して検出する。また、自動冗長ステートマシン２１は、自動冗長時に、ＰＧＭ／ＥＲステートマシン２０に対して、プログラム、イレースの要求信号を出力する。また、自動冗長ステートマシン２１は、自動冗長時にアクセス先を冗長ＣＡＭ１６、付加ＣＡＭ１７に切り換えて、冗長ＣＡＭ１６、付加ＣＡＭ１７に対する情報の書込みを行う。【００４０】
冗長ＣＡＭ１６（第２の記憶部）は、プログラムに失敗した通常用セルアレイ部３０のセクタ番号と、冗長セルアレイ部３１のセクタ番号との対応付けを管理する。付加ＣＡＭ１７（第１の記憶部）は、冗長セルアレイ部３１の各セクタが使用状態にあるのか、未使用状態にあるのかを示す情報と、この冗長セクタがすでにイレース済みのセクタであるか否かを示す情報と、この冗長セクタが製品出荷後に自動冗長を実施したという情報が記録されている。冗長ＣＡＭ１６、付加ＣＡＭ１７の詳細については後述する。【００４１】
次に、図２を参照しながらセルアレイ部の構成と、セルアレイ部の周辺に配置された機能部の構成について説明する。【００４２】
通常用セルアレイ部３０と、冗長セルアレイ部３１とは、ワード線ＷＬに接続されたコントロールゲートと、ビット線ＢＬに接続されたドレインと、ソース線ＡＲＶＳＳに接続されたソースと、電荷を蓄える層として、多結晶シリコンからなるフローティングゲートとを含む不揮発性のメモリセルＭＣを有し、このメモリセルＭＣが複数個マトリックス状に配置されている。【００４３】
制御回路１８は、ライトイネーブル（／ＷＥ）等の制御信号や、アドレス信号、データ信号を外部から受け取り、これらの信号に基づいてステートマシンとして動作し、メモリセルＭＣに対して書込み、消去および読出し等の動作を行うために各々の内部回路を制御する。図１に示すコマンドレジスタ１９、ＰＧＭ／ＥＲステートマシン２０、自動冗長ステートマシン２１、冗長／付加ＣＡＭ検索部２２が制御回路１８に該当する。【００４４】
高電圧生成回路５１は、電源電圧Ｖｃｃを所定のレベルになるように調整することで、ビット線電圧、ワード線電圧を生成して書込み回路５９に供給する。ロウデコーダ５２は、アドレスバッファ１２から供給されたアドレスをデコードする。スイッチング回路５３は、メモリセルのワード線ＷＬをデコード結果に応じて活性化させる。ソースデコーダ５５は、ソース電源５４から電源の供給を受け、ソース線ＡＲＶＳＳを選択する。コラムデコーダ５６は、アドレスバッファ１２から供給されたアドレスをデコードする。【００４５】
コラムゲート５７は、デコードアドレス信号に基づいて、読出し時には通常用セルアレイ部３０のビット線ＢＬを選択的にセンスアンプ５８に接続する。また書込み時にはビット線ＢＬを選択的に書込み回路５９内のライトアンプ２８に接続する。これによって、セルアレイ部３０、３１のメモリセルＭＣに対するデータの読出し／書込み経路が確立される。【００４６】
センスアンプ５８は、メモリセルＭＣのデータをリファレンスセルのデータと比較することで、メモリセルＭＣのデータが０であるのか１であるのかを判定し、判定結果を読出しデータとしてリードバッファ２４へ供給する。【００４７】
書込み回路５９は、制御回路１８の制御の下に、ロウデコーダ５２、コラムデコーダ５６を駆動して、メモリセルＭＣに対するデータ書込み動作を実行する。【００４８】
プログラム動作およびイレース動作に伴うベリファイ動作は、ロウデコーダ５２およびコラムデコーダ５６によって指定されたメモリセルＭＣから供給されたデータの電流を、プログラムベリファイ用リファレンスセルおよびイレースベリファイ用リファレンスセルの示すリファレンス電流と比較することで行われる。【００４９】
また、外部から入力したデータは、一旦ライトバッファ２５に蓄積され、コラムデコーダ５６により選択されたビット線ＢＬにライトアンプ２８によりデータを書き込むことで、選択されたメモリセルＭＣにデータが書き込まれる。【００５０】
次に、図３のフローチャートを参照しながら本実施例の動作概略を説明する。コントローラ部１００からプログラム又はイレースのコマンドが発行されると（ステップＳ１／ＹＥＳ）、ＰＧＭ／ＥＲステートマシン２０は、発行されたコマンドに従って、通常用セルアレイ部３０のセクタへのプログラム又はイレースを行う（ステップＳ２）。【００５１】
次に、プログラム又はイレースが正常に行われたか否かを判定するベリファイを行い、正常にプログラム又はイレースが行われたと判定すると（ステップＳ３／ＹＥＳ）、ベリファイパスでコントローラ部１００から発行されたコマンドに対する処理を終了する（ステップＳ１２）。【００５２】
また、プログラム又はイレースが正常に終了していないと判定すると（ステップＳ３／ＮＯ）、カウンタの値が予め設定された設定値になったか否かを判定する（ステップＳ４）。カウンタの値が、予め設定された値となっていないときには（ステップＳ４／ＮＯ）、通常用セルアレイ部３０のセクタへのプログラム又はイレースと、このプログラム又はイレースに対するベリファイとを繰り返し行う（ステップＳ２、３）。プログラム又はイレースと、ベリファイとを繰り返し行い、カウンタの値が設定値となった場合には（ステップＳ４／ＹＥＳ）、タイムアウトと判定し、ＰＧＭ／ＥＲステートマシン２０は自動冗長ステートマシン２１に対してプログラム又はイレースの救済要求信号を出力する。なお、本実施例では、カウンタによるカウント値によってタイムアップ時間を計時しているが、タイマ等によってタイムアップ時間を計時することもできる。【００５３】
自動冗長ステートマシン２１は、ＰＧＭ／ＥＲステートマシン２０からプログラム又はイレースの救済要求信号を受け取ると、冗長ＣＡＭ１６、付加ＣＡＭ１７を検索して、データのリカバリーに使用する未使用の冗長セクタがあるか否かを判定する（ステップＳ５）。未使用の冗長セクタがなかった場合（ステップＳ６／ＮＯ）、自動冗長ステートマシン２１は、コントローラ部１００に対してエラー信号を出力する。また未使用の冗長セクタがあった場合には（ステップＳ６／ＹＥＳ）、自動冗長ステートマシン２１は、ＰＧＭ／ＥＲステートマシン２０に対して当該冗長セクタのイレース要求信号を出力する。ＰＧＭ／ＥＲステートマシン２０は、このイレース要求信号に従って、冗長セクタのイレースを行う（ステップＳ７）。【００５４】
コントローラ部１００からプログラムコマンドが発行された場合、ＰＧＭ／ＥＲステートマシン２０は、冗長セクタのイレースが終了すると、エラーしたデータの冗長セクタへの書込みデータと、既に通常セクタに書き込まれているデータを読出して、冗長セクタに書き込む処理を行う（ステップＳ８）。その後、このプログラムに対するベリファイを行って、ベリファイがパスすると（ステップＳ９／ＹＥＳ）、ＰＧＭ／ＥＲステートマシン２０は、自動冗長ステートマシン２１に対してプログラム又はイレースの完了信号を出力する。また、ベリファイがパスしなかった場合（ステップＳ９／ＮＯ）、ＰＧＭ／ＥＲステートマシン２０はコントローラ部１００に対してエラー信号を出力する（ステップＳ１０）。プログラム又はイレースの完了信号を受信した自動冗長ステートマシン２１は、冗長ＣＡＭ１６、付加ＣＡＭ１７に自動冗長の情報をプログラムする。【００５５】
次に、上述した処理の詳細について図４及び図５を参照しながら説明する。まず、自動冗長ステートマシン２１が、ＰＧＭ／ＥＲステートマシン２０からプログラム又はイレースの救済要求信号を受け取った場合の動作について説明する。自動冗長ステートマシン２１は、救済要求信号を受け取ると、図５（Ａ）に示す冗長ＣＡＭ１６と、図５（Ｂ）に示す付加ＣＡＭ１７とを検索して、未使用の冗長セクタがあるか否かを判定する。なお、冗長ＣＡＭ１６、付加ＣＡＭ１７の検索は、冗長／付加ＣＡＭ検索部２２で行われる。【００５６】
図５（Ａ）に示すように冗長ＣＡＭ１６には、各冗長セクタそれぞれに欠陥対象である通常セクタのセクタ番号とエラーアドレスが管理されている。例えば、図５（Ａ）に示す＃０３の冗長セクタには、エラーの発生した通常セクタのセクタ番号と、エラーが発生したメモリセルのアドレスとが記録されている。また図５（Ｂ）に示す付加ＣＡＭには、製品出荷前にベンダによって使用された冗長セクタであるか否かを示す情報と、この冗長セクタがすでに初期化されたセクタ（イレース済みのセクタ）であるか否かを示す情報と、製品出荷後のプログラムエラーを救済するための冗長領域として使用されたか否かを示す情報が記録されている。自動冗長ステートマシン２１は、これらの情報を参照することで、未使用の状態にある冗長セクタを検出し、初期化されているか否かを検出することができる。尚、製品出荷後のプログラムエラーを救済するための冗長領域として使用されたか否かを示す情報は、製品出荷前にベンダによって使用された冗長セクタであるか否かを示す情報と同等の構成である。また、冗長ＣＡＭ１６（第２の記憶部）には、セクタ番号ごとのエラーアドレスが有効であるか否かを示すフラッグ情報を含める場合がある。この場合には、前記検索動作における付加ＣＡＭ１７（第１の記憶部）の製品出荷前にベンダによって使用された冗長セクタであるか否かを示す情報に置き換えることができる。【００５７】
自動冗長ステートマシン２１は、未使用の冗長セクタを検出すると、図５（Ｂ）に示す付加ＣＡＭ１７を参照して、この冗長セクタがすでにイレース済みであるか否かを判定する。製品の出荷前にイレースが行われている場合には、ステップＳ７のイレースを行う必要がないので、付加ＣＡＭ１７の記録を参照してイレースを行うか否かを判定する。【００５８】
次に、ステップＳ８の未使用の冗長セクタのプログラム又はイレースと、ベリファイの動作の詳細を説明する。自動冗長ステートマシン２１は、未使用の冗長セクタを検出すると、失敗アドレスレジスタ１３にプログラムに失敗したアドレスを書き込む。図４に示すように失敗アドレスレジスタ１３は、３つのレジスタに分かれており、プログラムに失敗したメモリセルのロウアドレス、コラムアドレス、プログラムに失敗したメモリセルを含む冗長セクタのセクタ番号とが書き込めるようになっている。【００５９】
次に、自動冗長ステートマシン２１は、ＰＧＭ／ＥＲステートマシン２０に対して、冗長セクタへのプログラム要求信号を出力する。この要求を受けたＰＧＭ／ＥＲステートマシン２０は、まず、プログラムに失敗し、ライトバッファ２５内のデータラッチ回路２７に保存されているデータを冗長セクタにプログラムする。このとき、センスアンプ２９内のスイッチ６０を切り換えて、データラッチ回路２７内のデータが冗長セクタに書き込まれるようにする。【００６０】
次に、ＰＧＭ／ＥＲステートマシン２０は、プログラムに失敗したメモリセルを含む通常用セルアレイ部３０のセクタ内に既に書き込まれているデータを冗長セクタに移動させる制御を行う。
まず、比較回路１５で、失敗アドレスレジスタ１３に記憶した失敗アドレスと、アドレスカウンタ１４で発生したセクタ内のアドレスとを比較する。アドレスカウンタは、エラーの発生したセクタ内のアドレスを順次発生させる。アドレスカウンタ１４の発生したアドレスと、失敗アドレスとが一致しないときには、比較回路１５は、ＰＧＭ／ＥＲステートマシン２０にＮＯＭＡＴＣＨ信号を出力する。このＮＯＭＡＴＣＨ信号を入力したＰＧＭ／ＥＲステートマシン２０は、該当するアドレスのデータを通常用セルアレイ部３０から読出して、データラッチ回路２７に記憶する。このとき、図４に示すようにセンスアンプ２９内のスイッチ６０とスイッチ６１とを切り換えて、データをデータラッチ回路２７に書き込む。次に、データラッチ回路２７に書き込んだデータを書込み回路５９のライトアンプ２８によって出力し、冗長セクタに書き込む。この手順を繰り返し、エラーの発生したセクタ内に書き込まれているデータを冗長セクタに移す。図６には、データラッチ回路２７に書き込まれるデータの順番と、そのコラムアドレスとロウアドレスとを示す。また、図７には、エラーの発生したセクタと、冗長セクタとを順にアクセス、エラーの発生したセクタからのデータの読出しと、冗長セクタへのデータの書込みとが示されている。【００６１】
また、比較回路１５は、アドレスカウンタ１４の発生したアドレスと、失敗アドレスとが一致すると、図４に示すようにアドレスカウンタ１４に対してＭＡＴＣＨ信号を出力する。アドレスカウンタ１４は、比較回路１５で比較したアドレスに対する出力不許可信号をアドレスバッファ１２に出力する。出力不許可信号を受けたアドレスバッファ１２は、該当するアドレスの出力を行わない。エラーの発生したメモリセルに書き込む予定であったデータは、データラッチ回路２７内に保存されているので、エラーセクタからのデータ読出しを行わないようにする。【００６２】
次に、ステップＳ１１の冗長ＣＡＭ１６、付加ＣＡＭ１７へのプログラムの動作について詳細に説明する。自動冗長ステートマシン２１は、冗長セクタへのプログラムが完了したことを示すプログラム／イレース完了信号をＰＧＭ／ＥＲステートマシン２０から受け取ると、冗長ＣＡＭ１６、付加ＣＡＭ１７に自動冗長の情報をプログラムする。例えば、図５（Ａ）に示す＃０３の冗長セクタが今回の自動冗長に使用された場合には、この冗長セクタに、エラーが発生した通常セクタのセクタ番号と、エラーが発生したメモリセルのコラム、ロウアドレスとを書き込む。外部から指定を受けたアドレスがエラーの発生したセクタであった場合には、ＰＧＭ／ＥＲステートマシン２０がこの冗長ＣＡＭ１６を参照し、該当する冗長セクタに対して処理を行う。
このようにしてコントローラ部１００で、冗長セクタのアドレスを認識していなくても、内部でアドレスを変換して該当する冗長セクタにアクセスすることができる。また図５（Ｂ）に示す付加ＣＡＭ１７＃０３の冗長セクタに対応するＣＡＭへは、製品出荷後のプログラムエラーを救済した記録を書き込む。【００６３】
次に図８及び図９に示すフローチャートを参照しながら、本実施例の詳細な動作手順を説明する。
コントローラ部１００からプログラム又はイレースのコマンドが発行されると（ステップＳ２１／ＹＥＳ）、ＰＧＭ／ＥＲステートマシン２０は、発行されたコマンドに従って、通常用セルアレイ部３０のセクタへのプログラム又はイレースを行う（ステップＳ２２）。【００６４】
次に、プログラム又はイレースが正常に行われたか否かを判定するベリファイを行い、正常にプログラム又はイレースが行われたと判定すると（ステップＳ２３／ＹＥＳ）、ベリファイパスでコントローラ部１００から発行されたコマンドに対する処理を終了する（ステップＳ３２）。また、ベリファイで正常にプログラム又はイレースが行われていないと判定された場合には（ステップＳ２３／ＮＯ）、ＰＧＭ／ＥＲステートマシン２０は、自動冗長ステートマシン２１に対してプログラム／イレース救済要求信号を出力する。【００６５】
プログラム／イレース救済要求信号を受けた自動冗長ステートマシン２１は、冗長／付加ＣＡＭ検索部２２を使用して冗長ＣＡＭ１６、付加ＣＡＭ１７を検索し（ステップＳ２４）、未使用の冗長セクタがあるか否かを検索する（ステップＳ２５）。未使用の冗長セクタが存在しなかった場合には（ステップＳ２５／ＮＯ）、自動冗長ステートマシン２１は、エラー信号をコントローラ部１００に出力する（ステップＳ２６）。また自動冗長ステートマシン２１は、未使用の冗長セルを検出した場合には（ステップＳ２５／ＹＥＳ）、この冗長セルはすでにイレース済みであるか否かを判定する（ステップＳ２７）。付加ＣＡＭ１７には製品の出荷時に、冗長セクタがイレース済みであるか否かの情報が記録されている。この情報を自動冗長ステートマシン２１が参照してイレース済みであるか否かを判定する（ステップＳ２７）。尚、ステップＳ２６の判定は、図５（Ｂ）に示す付加ＣＡＭのうち、製品出荷前にベンダによって使用された冗長セクタであるか否かを示す情報と、製品出荷後のプログラムエラーを救済するための冗長領域として使用されたか否かを示す情報の２つの情報から判定することが望ましい。即ち、既にベンダで冗長を実施したセクタや既に自動冗長を実施したセクタを更に冗長することは、製品の信頼性にとって望ましくないからである。【００６６】
自動冗長ステートマシン２１は、冗長セルがイレース済みではないと判定すると（ステップＳ２７／ＮＯ）、ＰＧＭ／ＥＲステートマシン２０に対して冗長セクタのイレース−ベリファイ要求信号を出力する。このイレース−ベリファイ要求信号を受けたＰＧＭ／ＥＲステートマシン２０は、冗長セクタのイレースと（ステップＳ２８）、ベリファイとを行う（ステップＳ２９）。ベリファイによりイレース動作が正常に行われていないと判定した場合には（ステップＳ２９／ＮＯ）、カウンタのカウント値が予め設定した設定値になったか否かをチェックする（ステップＳ３０）。カウント値が設定値に達していない場合には（ステップＳ３０／ＮＯ）、ステップＳ２８のイレース動作とステップＳ２９のベリファイ動作を繰り返し行う。またカウンタのカウント値が設定値に達した場合には（ステップＳ３０／ＹＥＳ）、カウントアップと判定し、ＰＧＭ／ＥＲステートマシン２０はエラー信号をコントローラ部１００に出力する（ステップＳ３１）。尚、前記ステップ３１の制御に前記任意数の冗長セクタ数分の追加サーチを加えても良い。これにより、複数の未使用の冗長セクタの内どれか１つが良好であれば、その後のステップへ進むことができ、半導体装置の救済効率が増大する。【００６７】
ステップＳ２９のベリファイで、イレースが正常に終了したと判定した場合（ステップＳ２９／ＹＥＳ）、またはステップＳ２７で冗長セクタがすでにイレース済みであった場合には（ステップＳ２７／ＹＥＳ）、自動冗長ステートマシン２１は冗長ＣＡＭ１６、付加ＣＡＭ１７のプログラムを行う（ステップＳ３３）。但しステップＳ３３は、コントローラ部１００からイレースコマンドが発行された場合のみ実行される。ここでは、通常用セルアレイ部３０のエラーが発生したセクタと、冗長セクタとを関連付ける情報が、冗長ＣＡＭ１６に記録される。コントローラ部１００からプログラムコマンドが発行された場合の冗長ＣＡＭ１６、付加ＣＡＭ１７へのプログラムは、後述するステップＳ５８で行う。
【００６８】
次に、自動冗長ステートマシン２１は、失敗をしたコマンドがプログラムコマンドであるか否かを判定する（ステップＳ３４）。失敗したコマンドがイレースコマンドであった場合には（ステップＳ３４／ＮＯ）、コントローラ部１００から発行されたコマンドに対する処理を終了する。また失敗したコマンドがプログラムコマンドであった場合には（ステップＳ３４／ＹＥＳ）、図９に示す自動冗長のルーチンに移行する。【００６９】
次に、図９に示すフローチャートを参照しながら自動冗長ルーチンについて詳細に説明する。自動冗長ルーチンでは、自動冗長ステートマシン２１からプログラムスタート信号が発行される。このプログラムスタート信号は、図４に示す冗長判定部２６に供給される。冗長判定部２６は、このプログラムスタート信号により、ロウデコーダ５２とコラムデコーダ５６とを冗長セクタ側に切り換える。また、図４に示すスイッチ６２をオンさせ、プログラムエラーのアドレスを失敗アドレスレジスタ１３に保存する（ステップＳ４１）。失敗アドレスレジスタ１３には、図４に示すようにプログラムに失敗したロウアドレスと、コラムアドレスと、セクタ番号とを記録することができるようになっている。
【００７０】
次に自動冗長ステートマシン２１は、ＰＧＭ／ＥＲステートマシン２０に対して、冗長セクタへのプログラム要求信号を出力する（ステップＳ４２）。プログラム要求信号を受けたＰＧＭ／ＥＲステートマシン２０は、ライトバッファのデータラッチ回路２７内に蓄積されているデータを冗長セクタに書き込む（ステップＳ４３）。その後、この書込みに対するベリファイを行う（ステップＳ４４）。ベリファイによりデータが冗長セクタに正常に書き込まれていないと判定した場合には（ステップＳ４４／ＮＯ）、カウンタのカウント値を設定値と比較する。カウント値が設定値に達していない場合には（ステップＳ４５／ＮＯ）、データの冗長セクタへの書込みと（ステップＳ４３）、この書込みに対するベリファイとを設定時間内で繰り返し行う。またカウント値が設定値に達すると（ステップＳ４５／ＹＥＳ）、ＰＧＭ／ＥＲステートマシン２０は、コントローラ部１００に対してエラー信号を出力する。【００７１】
またベリファイによりデータが冗長セクタに正常に書き込まれたと判定した場合には（ステップＳ４４／ＹＥＳ）、次に、エラーが発生した通常用セルアレイ部３０のセクタにすでに書き込まれているデータの冗長セクタへの移動処理を行う。まず、アドレスカウンタ１４は、自動冗長ステートマシン２１から出力されるＲＣＯＮＴ信号により、冗長セクタの先頭番地のアドレスを初期値としてセットする（ステップＳ４７）。そして、アドレスカウンタ１４から発生するアドレスと、失敗アドレスレジスタ１３に記録されているアドレスとを比較回路１５で比較する。アドレスカウンタ１４で発生するアドレスと失敗アドレスレジスタ１３のアドレスとが一致しなかった場合には、ＰＧＭ／ＥＲステートマシン２０は、まずエラーの発生したセクタを選択し（ステップＳ４９）、スイッチ６０、６１を切り換えてエラーの発生したセクタにすでに書き込まれているデータをデータラッチ回路２７に書き込む（ステップＳ５０）。次に、ＰＧＭ／ＥＲステートマシン２０は、冗長セクタを選択し、データラッチ回路２７内に蓄積したデータを冗長セクタに書き込む（ステップＳ５２）。データの書込み後、ベリファイを行う（ステップＳ５３）。ベリファイによりデータが正常に冗長セクタに書き込まれたと判定した場合には（ステップＳ５３／ＹＥＳ）、エラーの発生したセクタ内のアドレスは最終アドレスであるか否かを判定する。アドレスカウンタ１４から発生したアドレスがセクタ内の最終アドレスではなかった場合には（ステップＳ５６／ＮＯ）、アドレスカウンタ１４のアドレスを１インクリメントし（ステップＳ５７）、次のアドレスに対する処理を行う。また、ステップＳ５３でベリファイにパスしなかった場合には（ステップＳ５３／ＮＯ）、カウンタのカウント値が設定値に達するまで冗長セクタへのデータの書込みとベリファイ動作を繰り返す。カウンタのカウント値が設定値に達すると（ステップＳ５４／ＹＥＳ）、ＰＧＭ／ＥＲステートマシン２０は、エラー信号をコントローラ部１００に出力する。また、ステップＳ４８で、アドレスカウンタ１４で発生するアドレスと失敗アドレスレジスタ１３のアドレスとが一致した場合には（ステップＳ４８）、アドレスカウンタ１４で発生したアドレスはエラーセクタ内の最終アドレスであるか否かを確認し（ステップＳ５６）、アドレスカウンタ１４のアドレスを１インクリメントし（ステップＳ５７）、次のアドレスに対する処理を行う。【００７２】
このような処理を繰り返し、エラーの発生したセクタ内にすでに記録済みのデータを冗長セクタに移動させる。アドレスカウンタ１４でエラーの発生したセクタ内のアドレスを全て発生し、エラーセクタ内のデータの移動がすべて終了すると、自動冗長ステートマシン２１は、失敗アドレスレジスタ１３に記録してある不良アドレスを冗長ＣＡＭ１６に保存する。また、付加ＣＡＭ１７には自動冗長を行ったという記録を書込み、自動冗長ルーチンを終了する。尚、図８に示すステップＳ２５において未使用の冗長セクタが複数ある場合、前記ステップＳ４６または前記ステップＳ５５の制御に複数の未使用冗長セクタのうち残りの未使用冗長セクタで再度、自動冗長ルーチンを試行してもよい。具体的には、ステップＳ２７へフィードバックすることが最適である。【００７３】
このようにして本実施例では、プログラムに失敗すると、プログラムに失敗したデータと、セクタ内にすでに書き込まれているデータとを冗長セクタに再プログラムするようにしたので、データの消失を防止しデータを保証することができる。従って、システムの信頼性を向上させることができる。また、付加ＣＡＭ１７には自動冗長を行ったという記録を書き込むので、顧客のシステム上で本発明の自動的な冗長が実施されたか又はベンダ出荷試験時に冗長が実施されたかの選別ができ、ベンダ側での不良解析に役立つ。【００７４】
なお、上述した実施例の変形例として、図１０に示す半導体装置を用いることもできる。図１０に示す半導体装置１は、通常セクタ１２１と冗長セクタ１２２とがそれぞれ別々のデータバス線１３１、１３２に接続されている。またこれに伴い、リード用のセンスアンプ１２３と、冗長用のセンスアンプ１２４とを別々に設けている。このような構成とすることで、冗長セルアレイ部の場所をアレイの外の任意の場所に配置することができる。また、データの流れが一方方向であるので、スイッチング等の処理時間を短縮させることができる。また図１１に示す構成は、ＮＡＮＤ型のフラッシュメモリにおいて、ビット線に接続されているラッチ回路１４１に、エラーの発生したセクタからのデータを保存するようにしている。また図１１（Ａ）では、スイッチ１４２を設けて、セクタのプログラム時とイレース時の印加電圧を切り換えているが、図１１（Ｂ）では、ラッチ回路１４１とビット線とを直接接続し、このビット線に電圧を印加するＰＧＭ電圧変換部１４３によって印加電圧を調整するようにしている。【００７５】
上述した実施例は本発明の好適な実施例である。但しこれに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。例えば、上述した実施例では、ロウ、コラムの両方のアドレスを比較して、エラーの発生したメモリセルを特定し、データの冗長セクタへの書き換えを行っているが、ワード線冗長のように、コラムアドレスを除外してロウアドレスだけを用いてデータの冗長セクタへの書き換えを行うこともできる。【００７６】
更に、プログラム／イレースステートマシン２０と、自動冗長ステートマシン２１を１つのシーケンスマシーンとして構成しても良い。半導体装置１は、メモリ部１０単体であってもよいし、ＭＰＵなどと１つの半導体に集積されていても良い。また、セクタ単位で消去動作の必要性がないＦＲＡＭやＭＲＯＭなどの不揮発性メモリにおいては、冗長セクタが初期化されているか否かを確認するステップは必要ない。【００７７】
更に、冗長セルアレイ領域の所定セクタを初期化するとは、セクタ内の複数のメモリセルアレイのデータ１／０をすべて同一のデータにすることに限られない。隣接するメモリセルごとに１と０のデータをロウアドレス（ワード線方向）／またはコラムアドレス（ビット線方向）で交互に備えるストライプ的な初期化やチェッカー的な初期化がある。具体的には、特許文献３（日本国特許公開公報  特開２００４−０７９６０２）の図１０では、所謂ツインセルであるＯＮＯ構造のＮＲＯＭに対して、使用ビットと不使用ビットの両方をイレースした後、不使用ビットのみにプログラムを行うまでの一連の初期化動作がある。この結果、ビット線ごとにイレースされた使用ビット（データ“１”）と不使用ビット（データ“０”）がストライプ上に隣接する所定のデータに初期化される。
【図１】
0005014125.tif 000002
【図２】
0005014125.tif 000003
【図３】
0005014125.tif 000004
【図４】
0005014125.tif 000005
【図５】
0005014125.tif 000006
【図６】
0005014125.tif 000007
【図７】
0005014125.tif 000008
【図８】
0005014125.tif 000009
【図９】
0005014125.tif 000010
【図１０】
0005014125.tif 000011
【図１１】
0005014125.tif 000012