(57)【要約】【課題】  読み出し経路にテスト回路を追加することなく、通常読み出しと同じ経路で読み出しテストが可能な不揮発性半導体記憶装置を提供する。【解決手段】  不揮発性半導体記憶装置は、電気的に書き換え可能な複数の不揮発性メモリセルを配列して構成されるメモリセルアレイと、外部から入力された入力データに基づき、エラー訂正に使用されるチェック符号を生成するパリティ生成回路と、前記入力データを前記メモリセルアレイに書き込む第１の書き込み制御回路と、前記チェック符号を前記メモリセルアレイに書き込む第２の書き込み制御回路と、前記第１の制御回路による書き込み動作を行うか否か、及び前記第２の書き込み制御回路による書き込み動作を行うか否かを制御する内部制御回路と、を有する。【選択図】  図１
2009158051.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書き換え可能な複数の不揮発性メモリセルを配列して構成されるメモリセルアレイと、
外部から入力された入力データに基づき、エラー訂正に使用されるチェック符号を生成するパリティ生成回路と、
前記入力データを前記メモリセルアレイに書き込む第１の書き込み制御回路と、
前記チェック符号を前記メモリセルアレイに書き込む第２の書き込み制御回路と、
前記第１の制御回路による書き込み動作を行うか否か、及び前記第２の書き込み制御回路による書き込み動作を行うか否かを制御する内部制御回路と、
を具備することを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記内部制御回路は、前記第１の制御回路及び前記第２の制御回路による書き込み動作を独立して制御可能であることを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
前記パリティ生成回路を経由することなく、前記第２の書き込み回路に外部から前記チェック符号を入力する経路を有することを特徴とする請求項１または請求項２に記載の不揮発性半導体記憶装置。
【請求項４】
請求項２に記載の不揮発性半導体記憶装置における読み出しテスト方法であって、
外部から前記不揮発性半導体記憶装置に第１の入力データを入力するステップと、
前記パリティ生成回路により、前記第１の入力データに基づき第１のチェック符号を生成するステップと、
前記第２の書き込み制御回路により、前記第１のチェック符号を前記メモリセルアレイに書き込むステップと、
外部から前記不揮発性半導体記憶装置に、前記第１の入力データ中の少なくとも１ビットを反転させた第２の入力データを入力するステップと、
前記第１の書き込み制御回路により、前記第２の入力データを前記メモリセルアレイに書き込むステップと、
前記メモリセルアレイに書き込まれた前記第２の入力データ及び前記第１のチェック符号を読み出すステップと、
を具備することを特徴とする不揮発性半導体記憶装置の読み出しテスト方法。
【請求項５】
請求項３に記載の不揮発性半導体記憶装置における読み出しテスト方法であって、
外部から前記不揮発性半導体記憶装置に前記チェック符号を入力するステップと、
前記前記第２の書き込み制御回路により、前記チェック符号を前記メモリセルアレイに書き込むステップと、
外部から前記不揮発性半導体記憶装置に前記入力データを入力するステップと、
前記第１の書き込み制御回路により、前記メモリセルアレイに前記入力データを書き込むステップと、
前記メモリセルアレイに書き込まれた前記入力データ及び前記チェック符号を読み出すステップと、
を具備することを特徴とする不揮発性半導体記憶装置の読み出しテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置及びその読み出しテスト方法に係り、例えば、ＥＣＣ機能を搭載したＮＯＲ型フラッシュメモリに関する。
【背景技術】
【０００２】
コンピュータやＬＳＩ（Large Scale Integration）等の半導体製品が様々な分野に応用されるようになり、その信頼性に対する要求は高くなっている。半導体製品の高信頼化を実現するためには、それぞれの構成要素において信頼性の高い部品を使用し、構成を工夫する等の方式が採られる。この信頼性の高い部品としては、メモリも例外ではない。
【０００３】
メモリのデータに対しては、静的冗長による高信頼化技術が採用される。誤り検出と訂正能力とを持つ符号をＥＣＣ（Error Checking and Correcting）と呼び、これによって読み出し時の誤データビットを訂正して読み出す高信頼化技術が開示されている（例えば、特許文献１参照。）。
【０００４】
このような仕組みをもつメモリにおいて、メモリデータが誤データの状態、或いは、読み出し経路において誤判定読み出しをした場合の、エラー訂正遅延を含めた読み出し能力の評価（リードアクセステスト）をする時に、読み出しセンスアンプの入力を加工、或いは、ＥＣＣ回路の入力を加工できるようなテスト回路を追加することが考えられる。
【０００５】
しかしながら、上記方法によりリードアクセステストを行う場合、誤りビットを生成するための回路コスト増となる、また、読み出し経路にロジック段が追加され、通常とは異なる動作（或いは経路）で評価することになる、という問題が生じ得る。
【特許文献１】特開２０００−１３７９９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、読み出し経路にテスト回路を追加することなく、通常読み出しと同じ経路で読み出しテストが可能な不揮発性半導体記憶装置を提供する。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る不揮発性半導体記憶装置は、電気的に書き換え可能な複数の不揮発性メモリセルを配列して構成されるメモリセルアレイと、外部から入力された入力データに基づき、エラー訂正に使用されるチェック符号を生成するパリティ生成回路と、前記入力データを前記メモリセルアレイに書き込む第１の書き込み制御回路と、前記チェック符号を前記メモリセルアレイに書き込む第２の書き込み制御回路と、前記第１の制御回路による書き込み動作を行うか否か、及び前記第２の書き込み制御回路による書き込み動作を行うか否かを制御する内部制御回路と、を具備することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、読み出し経路にテスト回路を追加することなく、通常読み出しと同じ経路で読み出しテストが可能な不揮発性半導体記憶装置を提供できる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態について図面を参照して説明する。
【００１０】
図１は、本実施形態に係る不揮発性半導体記憶装置、例えば、ＮＯＲ型フラッシュメモリ１００の構成を示すブロック図である。
【００１１】
ＮＯＲ型フラッシュメモリ１００は、アドレスバッファ１０１、入出力バッファ１０２、パリティ生成回路１０３、メモリセルアレイ１０４、第１の書き込み制御回路１０５、第２の書き込み制御回路１０６、センスアンプ回路１０７、センスアンプ回路１０８、パリティ生成回路１０９、シンドローム生成回路１１０、デコード回路１１１、データ訂正回路１１２、内部制御回路１１３、及びフリップフロップ回路１１４、１１５、１１６を有する。
【００１２】
アドレスバッファ１０１は、外部ホストシステムから、ＮＯＲ型フラッシュメモリ１００に入力されたアドレスを一時的に保持し、入出力バッファ１０２、内部制御回路１１３に転送する。
【００１３】
入出力バッファ１０２は、外部ホストシステムから、ＮＯＲ型フラッシュメモリ１００に入力されたデータを一時的に保持し、第１の書き込み制御回路１０５、及びパリティ生成回路１０３に転送する。また、ＮＯＲ型フラッシュメモリ１００から外部ホストシステムにデータを出力する際に、データ訂正回路１１２を介して読み出したデータを一時的に保持する。
【００１４】
外部ホストシステムと入出力バッファ１０２との間で、例えば１６個のＩＯ端子（ＩＯ［０］、ＩＯ［１］・・・ＩＯ［１５］）を介して、１６ビット（１ワード）単位でデータの入出力が行われる。また、１６個のＩＯ端子から、入出力バッファ１０２を経由することなく、マルチプレクサ１１７にデータを入力することが可能な経路が設けられている。
【００１５】
パリティ生成回路１０３は、入出力バッファ１０２から転送されるデータに基づき、パリティビット（チェック符号）を生成する。パリティ生成回路は、例えば、入出力バッファ１０２に保持されるデータの一部であるｎビットの入力データに対して、ｍビットのチェック符号を生成する。パリティ生成回路１０３は、例えば、ｎビットの入力データ及びｍビットのチェック符号からなる（ｎ＋ｍ）ビットのデータ中に発生する１ビットの誤りを訂正可能な機能を有する。
【００１６】
尚、パリティ生成回路１０３の訂正能力は、メモリセルの物理的な特性に起因する誤りビットの発生率等を考慮して適宜定められるものであり、求める訂正能力（訂正可能な誤りビット数）に応じて、ハミング符号、リードソロモン符号、ＢＣＨ（Bose-Chaudhuri-Hocqenghen）符号等の復号方式を選択すれば良い。
【００１７】
メモリセルアレイ１０４は、電気的に書き換え可能な複数のメモリセルから構成される、独立して消去可能な最小単位としてのブロックを複数配列して構成される。メモリセルアレイ１０４は、入出力バッファ１０２から転送される入力データを格納する本体データ格納領域と、パリティ生成回路１０３から転送されるチェック符号を格納するＥＣＣ領域とを有する。ｎビットの入力データとｍビットのチェック符号とは、例えば、同一のワード線に接続される複数のメモリセルに記憶することが可能である。
【００１８】
尚、図１で示す本体データ領域とＥＣＣ領域の割付は一例であり、必ずしも物理的に２つの領域に分割されていることを意味しない。即ち、ｎビットの入力データと、このｎビットの入力データに基づき生成されるｍビットのチェック符号とを対応付けて、メモリセルアレイ１０４に格納できるのであればどの様なデータ配置であっても構わない。
【００１９】
メモリセルは、浮遊ゲート電極及び制御ゲート電極からなる２層ゲート構造を有し、浮遊ゲート電極に注入された電子の多寡によるトランジスタの閾値電圧の変化に対応して、不揮発にデータを保持することが可能である。
【００２０】
メモリセルは、例えば、閾値電圧の順にデータ“１”（消去状態）、或いはデータ“０”の２値データの記憶を行っても良いし、また、閾値電圧の順にデータ“１１”（消去状態）、データ“１０”、データ“０１”、データ“００”の４値データの記憶を行っても良い。
【００２１】
第１の書き込み回路１０５は、入出力バッファ１０２から転送されるｎビット（ｎは正の整数）入力データを受けて、メモリセルアレイ１０４の本体データ格納領域にこの入力データを書き込む。第１の書き込み回路１０５は、フリップフロップ回路１１４から入力される制御信号ｅｎａｂｌｅＡにより制御され、例えば、ｅｎａｂｌｅＡ＝“０”で書き込み許可、ｅｎａｂｌｅＡ＝“１”で書き込み不許可とされる。
【００２２】
第２の書き込み回路１０６は、パリティ生成回路１０３からマルチプレクサ１１７を介して転送されるｍビット（ｍは正の整数）のチェック符号を受けて、メモリセルアレイ１０４のＥＣＣ領域にこのチェック符号を書き込む。また、入出力バッファ１０２及びパリティ生成回路１０３を経由することなく、マルチプレクサ１１７を介して外部から入力されるチェック符号を受けて、メモリセルアレイ１０４のＥＣＣ領域にこのチェック符号を書き込む。
【００２３】
パリティ生成回路１０３を経由せずに第２の書き込み制御回路１０６に入力されるチェック符号は、後述する読み出しテストで使用される入力データパタンに応じて、予め計算されたｍビットの値を使用すれば良い。
【００２４】
第２の書き込み回路１０６は、第１の書き込み回路１０５と同様に、フリップフロップ回路１１５から入力される制御信号ｅｎａｂｌｅＢにより制御され、例えば、ｅｎａｂｌｅＢ＝“０”で書き込み許可、ｅｎａｂｌｅＢ＝“１”で書き込み不許可とされる。
【００２５】
センスアンプ回路１０７は、複数のセンスアンプ及びデータラッチ回路を備える。メモリセルアレイ１０４の各ビット線に接続されたセンスアンプは、ビット線へデータをロードし、また、ビット線の電位を検出してデータラッチ回路で保持する。また、センスアンプ回路１０７によりメモリセルアレイ１０４の本体データ領域から読み出されたデータは、第１の書き込み制御回路１０５、パリティ生成回路１０９、及びデータ訂正回路１１２に転送される。
【００２６】
センスアンプ回路１０８は、複数のセンスアンプ及びデータラッチ回路を備える。メモリセルアレイ１０４の各ビット線に接続されたセンスアンプは、ビット線へデータをロードし、また、ビット線の電位を検出してデータラッチ回路で保持する。また、センスアンプ回路１０７によりメモリセルアレイ１０４のＥＣＣ領域から読み出されたチェック符号は、第２の書き込み制御回路１０６、及びシンドローム生成回路１１０に転送される。
【００２７】
パリティ生成回路１０９は、上述したパリティ生成回路１０３と実質的に同様の構成を有している。即ち、メモリセアレイ１０４の本体データ領域からセンスアンプ回路１０７により読み出されたｎビットのデータに対して、ｍビットのチェック符号を生成する。
【００２８】
シンドローム生成回路１１０は、メモリセアレイ１０４の本体データ領域から読み出されたデータに基づいてパリティ生成回路１０９が生成したチェック符号と、メモリセルアレイ１０４のＥＣＣ領域に書き込まれたチェック符号との排他的論理和を生成する。即ち、２つのチェックビットの排他的論理和が“０”であれば正しいデータ、“１”であれば誤りデータであると判定する。
【００２９】
デコード回路１１１は、シンドローム生成回路１１０により生成された各チェック符号間の排他的論理和から、訂正ビット位置を示す信号にデコードする。この訂正ビット位置を示す信号は、データ訂正回路１１２に転送される。
【００３０】
データ訂正回路１１２は、デコード回路１１１から入力される訂正ビット位置と、センスアンプ回路１０７から転送される読み出しデータとの排他的論理和を計算する。これにより、誤りの生じたビットを訂正し、入出力バッファ１０２を介して外部に出力することが可能となる。
【００３１】
内部制御回路１１３は、第１の書き込み制御回路１０５、第２の書き込み制御回路１０６、メモリセルアレイ１０４を制御し、ＮＯＲ型フラッシュメモリ１００の各種自動動作（書き込み動作、読み出し動作、消去動作）を管理する。また、ＩＯ端子、アドレス端子から入力される特殊なテストモード設定コマンドに基づき、テストモード信号を生成する。テストモード信号は、フリップフロップ回路１１４、１１５、１１６に入力される。
【００３２】
フリップフロップ回路１１４は、内部制御回路１１３の発生するクロック信号ＣＬＫ、及びテストモード信号により状態が設定され、リセット時は“０”データを保持している。フリップフロップ回路１１４は、テストモード信号により、“１”データに状態を反転させることが可能とされており、保持するデータ状態を制御信号ｅｎａｂｌｅＡとして第１の書き込み制御回路１０５に転送する。
【００３３】
フリップフロップ回路１１５は、内部制御回路１１３の発生するクロック信号ＣＬＫ、及びテストモード信号により状態が設定され、リセット時は“０”データを保持している。フリップフロップ回路１１５は、テストモード信号の入力により、“１”データに状態を反転させることが可能とされており、保持するデータ状態を制御信号ｅｎａｂｌｅＢとして第２の書き込み制御回路１０６に転送する。
【００３４】
フリップフロップ回路１１６は、内部制御回路１１３の発生するクロック信号ＣＬＫ、及びテストモード信号により状態が設定され、リセット時は“０”データを保持している。フリップフロップ回路１１６は、テストモード信号の入力により、“１”データに状態を反転させることが可能とされており、そのデータ状態に応じてマルチプレクサ１１７が選択するデータ信号を設定する。
【００３５】
例えば、フリップフロップ回路１１６が“０”データを保持している場合は、パリティ生成回路１０３から転送される入力データを選択し、第２の書き込み制御回路１０６に転送する。一方、フリップフロップ回路１１６が“１”データを保持している場合は、ＩＯ端子から、入出力バッファ１０２及びパリティ生成回路１０３を経由することなく入力されたデータ（チェック符号）を選択し、第２の書き込み制御回路１０６へ転送する。
【００３６】
マルチプレクサ１１７は、フリップフロップ回路１１６により制御され、パリティ生成回路１０３から入力されるチェック符号、或いは、入出力バッファ１０２及びパリティ生成回路１０３を経由することなく、ＩＯ端子から直接入力されるチェック符号のいずれか一方を、第２の書き込み制御回路１０６に転送する。
【００３７】
図２は、第１の書き込み制御回路１０５の内部における、１ビット分の書き込み回路２００の構成を示す等価回路図である。尚、第２の書き込み制御回路１０６についても同様の回路構成を有する。第１の書き込み制御回路１０５は、ｎ個の書き込み回路２００を有する。また、第２の書き込み回路１０６は、ｍ個の書き込み回路２００を有する。
【００３８】
各々の書き込み回路２００は、ＥＸＯＲゲート２０１、ＡＮＤゲート２０２、ＲＳ型フリップフロップ回路２０３、ＮＯＲゲート２０４、ＯＲゲート２０５、ＡＮＤゲート２０６、及びインバータ２０７、２０８を有する。
【００３９】
ＥＸＯＲゲート２０１は、入力データ（書き込み元データ）、及びセンスアンプから読み出されたデータ（Ｓ／Ａリードデータ）が入力され、両データの排他的論理和を出力する。書き込み元データは、“０”データであれば書き込み対象データ、“１”データであれば書き込み非対象データを意味する。Ｓ／Ａリードデータは、“１”データであれば書き込み済みデータ、“０”データであれば未書き込みデータ（消去状態）を意味する。
【００４０】
ＡＮＤゲート２０２は、ＥＸＯＲゲート２０１の出力信号、及び内部制御回路１１３から入力されるベリファイ結果更新信号を受けて、両データの論理積を出力する。ベリファイ結果更新信号は、センスアンプ回路１０７、またはセンスアンプ回路１０８内部のセンスアンプが読み出しデータを確定し、このデータがデータラッチに保持された際に出力される。
【００４１】
ＲＳ型フリップフロップ回路２０３は、セット（Ｓ）入力としてＡＮＤゲート２０２の出力信号が入力され、また、リセット入力（Ｒ）として内部制御回路１１３からベリファイ結果クリア信号が入力される。
【００４２】
ＮＯＲゲート２０４は、ＲＳ型フリップフロップ回路２０３の保持するデータ状態、及びフリップフロップ回路１１４から入力される制御信号ｅｎａｂｌｅＡを受けて、両データの否定論理和を出力する。
【００４３】
ＯＲゲート２０５は、ＮＯＲゲート２０４の出力信号をインバータ２０７により反転した信号、及び制御信号ｅｎａｂｌｅＡを受けて、両データの論理積を一致フラグ生成信号として出力する。一致フラグ生成信号は、第１の書き込み制御回路１０５及び第２の書き込み制御回路１０６内部で（ｎ＋ｍ）ビット分が束ねられ、これらの論理積をとることで、一致フラグが生成される。
【００４４】
ＡＮＤゲート２０６は、ＮＯＲゲート２０４の出力信号、及び書き込み元データをインバータ２０８により反転した信号を受けて、両データの論理積を書き込みデータとして出力する。書き込みデータは、“１”データであれば書き込み対象データ、“０”データであれば書き込み非対象データを意味する。書き込みデータが“１”であるビットに対応するメモリセルに対して、書き込み動作が行われる。
【００４５】
以下、本実施形態に係るＮＯＲ型フラッシュメモリ１００の書き込み動作について説明する。
【００４６】
（１）通常書き込み動作
ユーザが行う通常の書き込み動作時は、内部制御回路１１３によりテストモード信号が生成されることはないので、フリップフロップ回路１１４、１１５、１１６は全てリセット状態である。従って、第１の書き込み制御回路１０５、第２の書き込み制御回路１０６による書き込みは両方とも許可されている。また、パリティ生成回路１０３により生成されたチェック符号が第２の書き込み制御回路１０６に入力可能な状態とされている。
【００４７】
先ず、ＩＯ端子から１ワード単位でデータが入力され、入出力バッファ１０２に格納される。入出力バッファ１０２にｎビット分のデータが格納された後、パリティ生成回路１０３により、ｍビットのチェック符号が生成される。
【００４８】
ｎビットの入力データ、及びｍビットのチェック符号を対応付けて、それぞれ第１の書き込み回路１０５、第２の書き込み回路１０６により、メモリセルアレイ１０４に書き込みが行われる。以下、図２を参照して、具体的な書き込み動作について詳述する。
【００４９】
ＮＯＲ型フラッシュメモリのようなフラッシュメモリでは一般に、メモリセルの閾値電圧が所定の値に到達したか否かを、メモリチップ内部で自動的に検証（ベリファイ動作）し、書き込み動作を保証している。
【００５０】
先ず、書き込み動作開始前に、制御回路１１３がベリファイ結果クリア信号を出力し、ＲＳ型フリップフロップ回路２０３を“０”データ状態にリセットする。次に、例えば、書き込み元データとして“０”データ、即ち書き込み対象データがＥＸＯＲゲート２０１に入力される。Ｓ／Ａリードデータは確定しておらず、ＥＸＯＲゲート２０１の出力信号は不定であるが、ベリファイ結果出力信号が出力されないため、ＡＮＤゲート２０２の出力は“０”となる。
【００５１】
この時、ＲＳ型フリップフロップ回路２０３の出力信号は“０”を維持する。制御信号ｅｎａｂｌｅＡ（ｅｎａｂｌｅＢ）は、書き込みが許可されているため“０”であるから、ＮＯＲゲート２０４の出力は“１”となる。よって、ＡＮＤゲート２０６の出力は“１”（書き込み対象データ）となり、メモリセルへの書き込み（電子の注入）が行われる。
【００５２】
次に、メモリセルの閾値電圧が所定の値に到達したか否かを検証するため、メモリセルに保持されたデータの読み出しを行う。読み出しデータがセンスアンプ回路１０７、またはセンスアンプ回路１０８内部のデータラッチに保持されることで、ベリファイ結果更新信号が出力される。メモリセルの閾値電圧が所定の値に到達していない場合、Ｓ／Ａリードデータは“０”であるから、ＥＸＯＲゲート２０１の出力は“０”となる。よって、ＡＮＤゲート２０２の出力は“０”であるから、再度書き込みが行われる。
【００５３】
一方、メモリセルの閾値電圧が所定の値に到達した場合、Ｓ／Ａリードデータは“１”であるから、ＥＸＯＲゲート２０１の出力は“１”となる。よって、ＡＮＤゲート２０２の出力が“１”となり、ＲＳ型フリップフロップ回路２０３の出力信号は“１”に遷移する。よって、ＡＮＤゲート２０６の出力は“０”（書き込み非対象データ）となり、以降、メモリセルへの書き込みは行われない。
【００５４】
以上のように、ビット毎に書き込みが終了したか否かを判定し、全ビット（ｎ＋ｍビット）の一致フラグ生成信号が“１”となった場合に、書き込み動作が終了したと判定され、書き込み動作を終了する。
【００５５】
本実施形態に係るＮＯＲ型フラッシュメモリ１００においては、第１の書き込み制御回路１０５及び第２の制御回路１０６の書き込み動作を、リセット状態で許可する設定としているため、ユーザは通常と同様の方法で書き込み動作を行うことが可能である。
【００５６】
（２）読み出しテスト時の書き込み動作
（２−１）先ず、本体データの任意のビットに誤りを付加し、データが正しく訂正されるか否かをテストする場合について、図３を参照して説明する。
【００５７】
ＩＯ端子、アドレス端子から入力される特殊なテストモード設定コマンドに基づき、内部制御回路１１３がテストモード信号を生成する。テストモード信号は、フリップフロップ回路１１４、１１５、１１６に入力され、フリップフロップ回路１１４は“１”データ、フリップフロップ回路１１５は“０”データ、フリップフロップ回路１１６は“０”データに設定される。
【００５８】
これにより、第１の書き込み制御回路１０５による書き込み動作は不許可とされる。また、第２の書き込み制御回路１０６による書き込み動作は許可される。また、パリティ生成回路１０３の生成したチェック符号を、マルチプレクサ１１７を介して第２の書き込み制御回路１０６に転送することが可能となる。
【００５９】
この状態で、外部からｎビットの書き込みデータ（正しい入力データ）を入力する。このｎビットの入力データに基づき、パリティ生成回路１０３でｍビットのチェック符号（正しいパリティデータ）が生成される。
【００６０】
この時、第１の書き込み制御回路１０５による書き込み動作は不許可であるから、入力データがメモリセルアレイ１０４の本体データ領域に書き込まれることは無い。一方、第２の書き込み制御回路１０６による書き込み動作は許可であるから、メモリセルアレイ１０４のＥＣＣ領域にチェック符号が書き込まれる（図３上段の斜線領域）。
【００６１】
次に、内部制御回路１１３は、テストモード信号を切り替え、フリップフロップ回路１１４は“０”データ、フリップフロップ回路１１５は“１”データに設定される。これにより、第１の書き込み制御回路１０５による書き込み動作は許可され、第２の書き込み制御回路１０６による書き込み動作は不許可とされる。フリップフロップ回路１１６は、第２の書き込み制御回路１０６による書き込み動作が不許可とされているので、“０”データ、“１”データの何れに設定されていても良い。
【００６２】
この状態で、外部から、先に入力したｎビットの正しい入力データ中の、例えば１ビットを反転させたデータ（誤りを含む入力データ）を入力する。この誤りを含むｎビットの入力データに基づき、パリティ生成回路１０３でｍビットのチェック符号（誤りを含むパリティデータ）が生成される。
【００６３】
この時、第１の書き込み制御回路１０５による書き込み動作は許可であるから、誤りを含む入力データがメモリセルアレイ１０４の本体データ領域に書き込まれる（図３下段の斜線領域）。一方、第２の書き込み制御回路１０６による書き込み動作は不許可であるから、メモリセルアレイ１０４のＥＣＣ領域にチェック符号が書き込まれることは無い。
【００６４】
上述した読み出しテスト時の書き込み動作においては、書き込みが許可されているデータのみがベリファイ動作の対象となるように制御される。例えば、第１の書き込み制御回路１０５が書き込み不許可とされている場合、制御信号ｅｎａｂｌｅＡは“１”であるから、第１の書き込み制御回路１０５内部のｎビット分の書き込み回路２００は、一致フラグとして常に“１”を出力する。よって、第２の書き込み制御回路１０６の書き込み動作に影響を与えることは無い。
【００６５】
同様に、例えば、第２の書き込み制御回路１０６が書き込み不許可とされている場合、制御信号ｅｎａｂｌｅＢは“１”であるから、第２の書き込み制御回路１０６内部のｍビット分の書き込み回路２００は、一致フラグとして常に“１”を出力する。よって、第１の書き込み制御回路１０５の書き込み動作に影響を与えることは無い。
【００６６】
以上の工程により、メモリセルアレイ１０４は、本体データ領域に１ビットの誤りを含むｎビットのデータが格納され、ＥＣＣ領域にｍビットの正しいチェック符号が格納された状態となる。即ち、入力データ及びチェック符号の書き込み終了後に、例えばメモリセルのリテンション特性の劣化により、本体データ領域中のビットが反転したという不良モデルを簡易に実現することができる。
【００６７】
（２−２）次に、パリティデータの任意のビットに誤りを付加し、データが正しく訂正されるか否かをテストする場合について、図４を参照して説明する。
【００６８】
ＩＯ端子、アドレス端子から入力される特殊なテストモード設定コマンドに基づき、内部制御回路１１３がテストモード信号を生成する。テストモード信号は、フリップフロップ回路１１４、１１５、１１６に入力され、フリップフロップ回路１１４は“１”データ、フリップフロップ回路１１５は“０”データ、フリップフロップ回路１１６は“０”データに設定される。
【００６９】
これにより、第１の書き込み制御回路１０５による書き込み動作は不許可とされる。また、第２の書き込み制御回路１０６による書き込み動作は許可される。また、パリティ生成回路１０３の生成したチェック符号を、マルチプレクサ１１７を介して第２の書き込み制御回路１０６に入力することが可能となる。
【００７０】
この状態で、外部からｎビットの書き込みデータ（誤りを含む入力データ）を入力する。誤りを含む入力データとしては、（２−１）と同様、ｎビットの正しい入力データ中の、例えば１ビットを反転させたデータを用いれば良い。このｎビットの入力データに基づき、パリティ生成回路１０３でｍビットのチェック符号（誤りを含むパリティデータ）が生成される。
【００７１】
この時、第１の書き込み制御回路１０５による書き込み動作は不許可であるから、入力データがメモリセルアレイ１０４の本体データ領域に書き込まれることは無い。一方、第２の書き込み制御回路１０６による書き込み動作は許可であるから、メモリセルアレイ１０４のＥＣＣ領域にチェック符号が書き込まれる（図４上段の斜線領域）。
【００７２】
次に、内部制御回路１１３は、テストモード信号を切り替え、フリップフロップ回路１１４は“０”データ、フリップフロップ回路１１５は“１”データに設定される。これにより、第１の書き込み制御回路１０５による書き込み動作は許可され、第２の書き込み制御回路１０６による書き込み動作は不許可とされる。フリップフロップ回路１１６は、第２の書き込み制御回路１０６による書き込み動作が不許可とされているので、“０”データ、“１”データの何れに設定されていても良い。
【００７３】
この状態で、外部から、先に入力したｎビットの入力データ中の誤りビットを反転させたデータ（正しい入力データ）を入力する。このｎビットの正しい入力データに基づき、パリティ生成回路１０３でｍビットのチェック符号（正しいパリティデータ）が生成される。
【００７４】
この時、第１の書き込み制御回路１０５による書き込み動作は許可であるから、正しい入力データがメモリセルアレイ１０４の本体データ領域に書き込まれる（図４下段の斜線領域）。一方、第２の書き込み制御回路１０６による書き込み動作は不許可であるから、メモリセルアレイ１０４のＥＣＣ領域にチェック符号が書き込まれることは無い。
【００７５】
上述した読み出しテスト時の書き込み動作においては、書き込みが許可されているデータのみがベリファイ動作の対象となるように制御される。例えば、第１の書き込み制御回路１０５が書き込み不許可とされている場合、制御信号ｅｎａｂｌｅＡは“１”であるから、第１の書き込み制御回路１０５内部のｎビット分の書き込み回路２００は、一致フラグとして常に“１”を出力する。よって、第２の書き込み制御回路１０６の書き込み動作に影響を与えることは無い。
【００７６】
同様に、例えば、第２の書き込み制御回路１０６が書き込み不許可とされている場合、制御信号ｅｎａｂｌｅＢは“１”であるから、第２の書き込み制御回路１０６内部のｍビット分の書き込み回路２００は、一致フラグとして常に“１”を出力する。よって、第１の書き込み制御回路１０５の書き込み動作に影響を与えることは無い。
【００７７】
以上の工程により、メモリセルアレイ１０４は、本体データ領域にｎビットの正しいデータが格納され、ＥＣＣ領域に１ビットの誤りを含むｍビットのチェック符号が格納された状態となる。即ち、入力データ及びチェック符号の書き込み終了後に、例えばメモリセルのリテンション特性の劣化により、ＥＣＣ領域中のビットが反転したという不良モデルを簡易に実現することができる。
【００７８】
（２−３）次に、パリティデータの任意のビットに誤りを付加し、データが正しく訂正されるか否かをテストする場合の別の例について、図５を参照して説明する。
【００７９】
ＩＯ端子、アドレス端子から入力される特殊なテストモード設定コマンドに基づき、内部制御回路１１３がテストモード信号を生成する。テストモード信号は、フリップフロップ回路１１４、１１５、１１６に入力され、フリップフロップ回路１１４は“１”データ、フリップフロップ回路１１５は“０”データ、フリップフロップ回路１１６は“１”データに設定される。
【００８０】
これにより、第１の書き込み制御回路１０５による書き込み動作は不許可とされる。また、第２の書き込み制御回路１０６による書き込み動作は許可される。また、入出力バッファ１０２及びパリティ生成回路１０３を経由すること無く、外部から直接入力されるチェック符号を、マルチプレクサ１１７を介して第２の書き込み制御回路１０６に入力することが可能となる。
【００８１】
この状態で、外部からｍビットのチェック符号（誤りを含むパリティデータ）を入力する。ここで入力されるチェック符号は、予め入力データパタンに基づいて計算されたチェック符号中の任意の１ビットを反転させて、強制的に誤りビットを実現したものである。
【００８２】
この時、第１の書き込み制御回路１０５による書き込み動作は不許可であるから、入力データがメモリセルアレイ１０４の本体データ領域に書き込まれることは無い。一方、第２の書き込み制御回路１０６による書き込み動作は許可であるから、メモリセルアレイ１０４のＥＣＣ領域にチェック符号が書き込まれる（図５上段の斜線領域）。
【００８３】
次に、内部制御回路１１３は、テストモード信号を切り替え、フリップフロップ回路１１４は“０”データ、フリップフロップ回路１１５は“１”データに設定される。これにより、第１の書き込み制御回路１０５による書き込み動作は許可され、第２の書き込み制御回路１０６による書き込み動作は不許可とされる。フリップフロップ回路１１６は、第２の書き込み制御回路１０６による書き込み動作が不許可とされているので、“０”データ、“１”データの何れに設定されていても良い。
【００８４】
この状態で、外部からｎビットの入力データ（正しい入力データ）を入力する。このｎビットの正しい入力データに基づき、パリティ生成回路１０３でｍビットのチェック符号（正しいパリティデータ）が生成される。
【００８５】
この時、第１の書き込み制御回路１０５による書き込み動作は許可であるから、正しい入力データがメモリセルアレイ１０４の本体データ領域に書き込まれる（図５下段の斜線領域）。一方、第２の書き込み制御回路１０６による書き込み動作は不許可であるから、メモリセルアレイ１０４のＥＣＣ領域にチェック符号が書き込まれることは無い。
【００８６】
上述した読み出しテスト時の書き込み動作においては、書き込みが許可されているデータのみがベリファイ動作の対象となるように制御される。例えば、第１の書き込み制御回路１０５が書き込み不許可とされている場合、制御信号ｅｎａｂｌｅＡは“１”であるから、第１の書き込み制御回路１０５内部のｎビット分の書き込み回路２００は、一致フラグとして常に“１”を出力する。よって、第２の書き込み制御回路１０６の書き込み動作に影響を与えることは無い。
【００８７】
同様に、例えば、第２の書き込み制御回路１０６が書き込み不許可とされている場合、制御信号ｅｎａｂｌｅＢは“１”であるから、第２の書き込み制御回路１０６内部のｍビット分の書き込み回路２００は、一致フラグとして常に“１”を出力する。よって、第１の書き込み制御回路１０５の書き込み動作に影響を与えることは無い。
【００８８】
以上の工程により、メモリセルアレイ１０４は、本体データ領域にｎビットの正しいデータが格納され、ＥＣＣ領域に１ビットの誤りを含むｍビットのチェック符号が格納された状態となる。即ち、入力データ及びチェック符号の書き込み終了後に、例えばメモリセルのリテンション特性の劣化により、ＥＣＣ領域中のビットが反転したという不良モデルを簡易に実現することができる。
【００８９】
また、（２−２）で述べた方法に比べ、誤りを含むチェック符号を生成するために入出力バッファ１０２にｎビット分の入力データを格納する必要が無いこと、また、パリティ生成回路１０３でチェック符号を生成する必要が無いことにより、テスト時間を短縮することが可能である。
【００９０】
上述した（２−１）、（２−２）、及び（２−３）による書き込み動作を行うことによりメモリセルアレイ１０４に格納されたデータは、通常の読み出し動作と同様の方法で読み出すことが可能である。従って、センスアンプ回路１０７、１０８、パリティ生成回路１０９、シンドローム生成回路１１０、デコード回路１１１、データ訂正回路１１２によるエラー訂正が正しく行われているか否かの判定、或いは、エラー訂正が行われる場合の読み出し動作に要する時間の測定等の各種読み出しテストを行うことが可能である。
【００９１】
尚、本実施形態では、１ビットの誤りを訂正可能な機能を有するＮＯＲ型フラッシュメモリを想定したため、（ｎ＋ｍ）ビット中に１ビットの誤りが発生するという不良モデルを考慮したが、２ビット以上の誤りビットが訂正可能な不揮発性半導体記憶装置において、２ビット以上のビットが反転した場合についても当然適用可能である。
【００９２】
以上のように、本実施形態に係るＮＯＲ型フラッシュメモリ１００は、本体データ領域とＥＣＣ領域とに対応して、それぞれ別個の書き込み制御回路を設け、これらを独立して制御することにより、従来と比較して次のような効果が得られる。
【００９３】
（１）チップ面積の削減が可能である。
【００９４】
本実施形態に係るＮＯＲ型フラッシュメモリ１００においては、２つの書き込み制御回路を用いて、本体データ領域とＥＣＣ領域とに対する書き込み動作を独立して制御している。これにより、読み出し経路に余分なテスト回路の実装を行う必要が無くなるため、チップ面積の削減が可能である。
【００９５】
（２）読み出し時間の増大を防止できる。
【００９６】
本実施形態に係るＮＯＲ型フラッシュメモリ１００においては、２つの書き込み制御回路を用いて、本体データ領域とＥＣＣ領域とに対する書き込み動作を独立して制御している。これにより、本体データ領域、或いはＥＣＣ領域の任意のビットに誤りが生じた状態を実現することが可能であるため、読み出し経路にテスト用の特別なロジック回路を付加する必要が無い。従って、ユーザが行う通常の読み出し動作への影響（読み出し遅延等）は発生し得ない。
【００９７】
（３）通常の読み出し動作と同じ経路でテストを行うことが可能である。
【００９８】
本実施形態に係るＮＯＲ型フラッシュメモリ１００においては、読み出し経路にテスト用の特別なロジック回路を付加する必要が無い。従って、ユーザの実際の使用状況に即した読み出しテストが可能である。
【００９９】
以上、本実施形態を用いて本願発明の説明を行ったが、本願発明は上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々変形することが可能である。また、本実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適宜な組み合わせにより種々の発明が抽出され得る。例えば、本実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも１つが解決でき、発明の効果の欄で述べられている効果の少なくとも１つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【０１００】
【図１】本発明の実施形態に係るＮＯＲ型フラッシュメモリ１００の構成を示すブロック図。
【図２】本発明の実施形態に係るＮＯＲ型フラッシュメモリ１００における書き込み回路２００の等価回路。
【図３】本発明の実施形態に係るＮＯＲ型フラッシュメモリ１００における読み出しテスト方法を説明する模式図。
【図４】本発明の実施形態に係るＮＯＲ型フラッシュメモリ１００における読み出しテスト方法を説明する模式図。
【図５】本発明の実施形態に係るＮＯＲ型フラッシュメモリ１００における読み出しテスト方法を説明する模式図。
【符号の説明】
【０１０１】
１００  ＮＯＲ型フラッシュメモリ
１０１  アドレスバッファ
１０２  入出力バッファ
１０３  パリティ生成回路
１０４  メモリセルアレイ
１０５  第１の書き込み制御回路
１０６  第２の書き込み制御回路
１０７  センスアンプ回路
１０８  センスアンプ回路
１０９  パリティ生成回路
１１０  シンドローム生成回路
１１１  デコード回路
１１２  データ訂正回路
１１３  内部制御回路
１１４  フリップフロップ回路
１１５  フリップフロップ回路
１１６  フリップフロップ回路
１１７  マルチプレクサ
２００  書き込み回路
２０１  ＥＸＯＲゲート
２０２  ＡＮＤゲート
２０３  ＲＳ型フリップフロップ回路
２０４  ＮＯＲゲート
２０５  ＯＲゲート
２０６  ＡＮＤゲート
２０７  インバータ
２０８  インバータ
【図１】
2009158051.tif 000003
【図２】
2009158051.tif 000004
【図３】
2009158051.tif 000005
【図４】
2009158051.tif 000006
【図５】
2009158051.tif 000007