(57)【要約】【課題】テスト時間を短縮させる。【解決手段】フラッシュメモリＬＳＩ１は、データを記憶する記憶部であって、予め定められたビット数のデータ領域を複数有するフラッシュメモリ部８と、フラッシュメモリ部８から読み出したデータとデータの期待値とが不一致であるビットを示す不良ビットの数が、予め定められた閾値以下であるか否かを、データ領域ごとに判定する判定回路部１０と、判定回路部１０が判定した判定結果に応じた出力を出力端子（ＲＢ＃端子）に出力させるＲＢ制御回路部６０と、を備える。【選択図】図１
2013065376.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶部であって、予め定められたビット数のデータ領域を複数有する記憶部と、
前記記憶部から読み出した前記データと前記データの期待値とが不一致であるビットを示す不良ビットの数が、予め定められた閾値以下であるか否かを、前記データ領域ごとに判定する判定回路部と、
前記判定回路部が判定した判定結果に応じた出力を出力端子に出力させる出力制御回路部と、
を備えることを特徴とする半導体装置。
【請求項２】
前記データ領域は、予め定められたビット長の単位データを複数記憶し、
前記判定回路部は、
前記単位データに含まれる前記不良ビットが前記閾値以下であるか否かを判定し、当該判定結果を示す信号を出力するとともに、前記単位データに含まれる前記不良ビットが前記閾値以下である場合に、前記単位データに含まれる前記不良ビットの数を示す不良ビット数信号を出力する単位データ判定回路部と、
前記ビット数のデータのうちの前記単位データごとに前記単位データ判定回路部が判定した判定結果及び前記不良ビット数信号に基づいて、前記データ領域ごとに前記ビット数のデータに含まれる前記不良ビットが前記閾値以下であるか否かを判定し、当該判定結果を保持する領域判定ラッチ部と、
を備えることを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記閾値は、１ビットであり、
前記単位データ判定回路部は、
全ビットが第１の論理レベルである前記単位データを期待値として、前記単位データの全ビットが前記第１の論理レベルであるか否かを判定する第１の判定回路と、前記単位データの全ビットのうちの、前記第１の論理レベルを論理反転した第２の論理レベルであるビットの数が、１ビット以下であるか否かを判定する第２の判定回路と、前記第１の判定回路による判定結果と、前記第２の判定回路による判定結果とに基づいて、前記不良ビット数信号を生成する信号生成回路と、を有する不良ビット判定回路を備える
ことを特徴とする請求項２に記載の半導体装置。
【請求項４】
前記単位データ判定回路部は、
２つの前記不良ビット判定回路である第１の不良ビット判定回路及び第２の不良ビット判定回路を備え、
前記第１の不良ビット判定回路は、
全ビットが前記第１の論理レベルである前記単位データを期待値として判定した第１の判定結果と第１の不良ビット数信号とを出力し、
前記第２の不良ビット判定回路は、
前記第１の不良ビット判定回路に供給される前記単位データを論理反転したデータが供給され、全ビットが前記第２の論理レベルである前記単位データを期待値として判定した第２の判定結果と第２の不良ビット数信号とを出力し、
前記単位データ判定回路部は、
前記第１の不良ビット判定回路による前記第１の判定結果及び前記第２の不良ビット判定回路による前記第２の判定結果に基づいて、前記単位データに含まれる前記不良ビットが１ビット以下であるか否かを判定し、
前記第１の不良ビット判定回路から出力される前記第１の不良ビット数信号、及び前記第２の不良ビット判定回路から出力される前記第２の不良ビット数信号に基づいて、前記不良ビット数信号を生成する
ことを特徴とする請求項３に記載の半導体装置。
【請求項５】
前記単位データの単位で前記データを前記記憶部から読み出して、読み出した前記単位データを前記判定回路部に供給させる制御回路部を備え、
前記領域判定ラッチ部は、
前記不良ビット数信号に基づいて、前記ビット数のデータに含まれる前記不良ビットの数をカウントするカウンタ部を有しており、当該カウンタ部によってカウントされたカウント値と、前記単位データ判定回路部が判定した判定結果とに基づいて、前記データ領域ごとに前記ビット数のデータに含まれる前記不良ビットが前記閾値以下であるか否かを判定し、
前記判定回路部は、
前記制御回路部によって前記記憶部から供給される前記単位データの数が前記ビット数に達するごとに、前記カウンタ部をリセットするリセット回路部を備える
ことを特徴とする請求項４に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型ＦＬＡＳＨ（ナンド型フラッシュ）メモリなどの半導体装置において、ＥＣＣ（Error Correcting Code）を使用してエラー訂正を行う技術が知られている。ＥＣＣの使用を前提として、このような半導体装置をテストする場合には、検査装置（例えば、メモリテスタ）が半導体装置のメモリ素子から読み出した所定の単位（例えば、５１２バイト単位）のデータに含まれる不良ビットの数をカウントする。そして、検査装置は、カウントした不良ビットの数に応じて、不良ビットの数がＥＣＣのエラー訂正能力の範囲ないにあるか否かを判定し、この判定結果により不良ビットを救済できるか否かを判定していた（例えば、特許文献１を参照）。
ここで、不良ビットとは、メモリ素子から読み出したデータと、その期待値とが一致していない（不一致である）ビットのことである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−４８５９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のような技術では、検査装置が、メモリ素子からデータを読み出して、検査装置が備える記憶部（例えば、フェイルメモリ）に一旦記憶させる。そして、検査装置は、検査装置が備える記憶部に記憶されているデータの不良ビットを所定の単位（例えば、５１２バイト単位）ごとにカウントする処理を、半導体装置の全メモリエリアに対して行う必要がある。そのため、上述のような技術では、半導体装置をテストするために、膨大なテスト時間が必要になる。
【課題を解決するための手段】
【０００５】
上記問題を解決するために、本発明の一態様は、データを記憶する記憶部であって、予め定められたビット数のデータ領域を複数有する記憶部と、前記記憶部から読み出した前記データと前記データの期待値とが不一致であるビットを示す不良ビットの数が、予め定められた閾値以下であるか否かを、前記データ領域ごとに判定する判定回路部と、前記判定回路部が判定した判定結果に応じた出力を出力端子に出力させる出力制御回路部と、を備えることを特徴とする半導体装置である。
【発明の効果】
【０００６】
本発明によれば、半導体装置は、判定回路部が、記憶部から読み出したデータに含まれる不良ビットの数が予め定められた閾値以下であるか否かを、データ領域ごとに判定する。そして、出力制御回路部が、判定回路部が判定した判定結果に応じた出力を出力端子に出力させる。これにより、検査装置が不良ビットの数をカウント及び、不良ビットの数に基づく判定を行う必要がなくなるので、半導体装置は、テスト時間を短縮させることができる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態による半導体装置を示すブロック図である。
【図２】同実施形態におけるフラッシュメモリ部のデータ構成の一例を示す図である。
【図３】同実施形態におけるＥＣＣ訂正可否判定回路部を示すブロック図である。
【図４】同実施形態における半導体装置のコマンド処理の一例を示すタイムチャートである。
【図５】同実施形態における単位データ判定回路部の動作を示す図である。
【図６】同実施形態における判定クロック生成部の動作を示すタイムチャートである。
【図７】同実施形態における５１２サイクルリセット回路部の動作を示すタイムチャートである。
【図８】同実施形態における半導体装置のテスト処理を示すフローチャートである。
【図９】同実施形態における半導体装置のテスト処理の一例を示す第１のタイムチャートである。
【図１０】同実施形態における半導体装置のテスト処理の一例を示す第２のタイムチャートである。
【図１１】同実施形態における半導体装置のテスト処理の一例を示す第３のタイムチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の一実施形態による半導体装置について、図面を参照して説明する。
なお、本実施形態では、半導体装置の一例として、フラッシュメモリＬＳＩ（Large Scale Integration）である場合の例について説明する。
図１は、本実施形態によるフラッシュメモリＬＳＩ１（半導体装置）を示すブロック図である。
この図において、フラッシュメモリＬＳＩ１は、アドレスレジスタ／カウンタ部２、コマンドＩ／Ｆ（インターフェース）部３、コマンドレジスタ部４、制御回路部５、Ｉ／Ｏ（Input/Output）バッファ／ラッチ部６、ＲＢバッファ部７、フラッシュメモリ部８、及びＥＣＣ訂正可否判定回路部９を備えている。また、フラッシュメモリＬＳＩ１は、ＡＬＥ端子、ＣＬＥ端子、ＷＥ＃端子、ＣＥ＃端子、ＷＰ＃端子、ＲＥ＃端子、ＲＢ＃端子、ＩＯ０−７端子を備えている。なお、各端子名において、「＃」が付されている端子の信号は、ローアクティブな信号であることを意味する。
【０００９】
ＡＬＥ（Address Latch Enable）端子は、アドレスのラッチを行うＡＬＥ信号を入力する入力端子である。ＣＬＥ（Command Latch Enable）端子は、コマンドのラッチを行うＣＬＥ信号を入力する入力端子である。ＷＥ＃（Write Enable）端子は、データを書き込む際にイネーブル信号（ＷＥ＃信号）を入力する入力端子である。ＣＥ＃（Chip Enable）端子は、フラッシュメモリＬＳＩ１を活性化させるＣＥ＃信号を入力する入力端子である。ＲＥ＃（Read Enable）端子は、データを読み出す際にイネーブル信号（ＲＥ＃信号）を入力する入力端子である。
【００１０】
ＲＢ＃（Ready/Busy）端子Ｔ１（図３）は、フラッシュメモリＬＳＩ１の通常動作モードにおいて、内部処理が実行中であることを出力する出力端子である。また、ＲＢ＃端子Ｔ１は、本実施形態におけるテスト処理において、ＥＣＣ（Error Correcting Code）を使用したエラー訂正が可能か否かの判定結果を出力する。ＲＢ＃（Ready/Busy）端子Ｔ１の詳細については、後述する。
ＩＯ（Input Output）０−７端子は、ＩＯ０信号〜ＩＯ７信号の８ビットのデータを入力又は出力する入出力端子である。なお、「ＩＯ０−７信号」と表記した場合には、ＩＯ０信号〜ＩＯ７信号の８ビット幅の信号に対応する。
【００１１】
アドレスレジスタ／カウンタ部２（Address Register/Counter部）は、ＩＯ０−７端子に入力されたフラッシュメモリ部８のアドレス情報を、Ｉ／Ｏバッファ／ラッチ部６を介して取得し、取得したアドレス情報を記憶する。また、アドレスレジスタ／カウンタ部２は、記憶しているアドレス情報を制御回路部５から供給される制御信号に基づいて更新する。アドレスレジスタ／カウンタ部２は、記憶しているアドレス情報をＸデコーダ部８１及びＹデコーダ部８２に供給する。
【００１２】
コマンドＩ／Ｆ部３（Command Interface logic部）は、ＡＬＥ端子、ＣＬＥ端子、ＷＥ＃端子、ＣＥ＃端子、ＷＰ＃端子、及びＲＥ＃端子の各端子から供給される信号（ＡＬＥ信号、ＣＬＥ信号、ＷＥ＃信号、ＣＥ＃信号、ＷＰ＃信号、及びＲＥ＃信号）をコマンド信号として、取得するインターフェース回路である。また、コマンドＩ／Ｆ部３は、上述のコマンド信号（ＡＬＥ信号、ＣＬＥ信号、ＷＥ＃信号、ＣＥ＃信号、ＷＰ＃信号、及びＲＥ＃信号）及びコマンドレジスタ部４に供給されたコマンド情報に基づいて、ＲＥＢ信号、ＲＥＳＥＴ信号、及びＴＭ信号を生成する。コマンドＩ／Ｆ部３は、生成したＲＥＢ信号、ＲＥＳＥＴ信号、及びＴＭ信号をＥＣＣ訂正可否判定回路部９に供給する。
また、コマンドＩ／Ｆ部３は、コマンド信号に基づいて生成した制御情報、及びコマンドレジスタ部４が記憶しているコマンド情報を制御回路部５に供給する。
【００１３】
ここで、ＲＥＢ信号は、ＲＥ＃信号と同位相の信号である。なお、ＲＥ＃信号は、フラッシュメモリ部８を読み出すための読み出しクロック信号として機能する。また、ＲＥＳＥＴ信号は、電源投入時（パワーオン時）や、リセットコマンドの発行時に、ＥＣＣ訂正可否判定回路部９をリセット（初期化）する信号である。ＲＥＳＥＴ信号は、電源投入時（パワーオン時）やリセットコマンドの発行時に、Ｈパルス（ハイ：Highパルス）が出力される。また、ＴＭ信号は、ＥＣＣ訂正可否判定回路部９によるテスト処理のエントリー信号である。
【００１４】
コマンドレジスタ部４（Command register部）は、ＩＯ０−７端子に入力された各種のコマンド情報を、Ｉ／Ｏバッファ／ラッチ部６を介して取得し、取得したコマンド情報を記憶する。
なお、コマンドレジスタ部４が記憶しているコマンド情報は、コマンドＩ／Ｆ部３を介して制御回路部５に供給される。
【００１５】
制御回路部５（P/E/R controller, High voltage generator部）は、フラッシュメモリＬＳＩ１を制御する制御部である。制御回路部５は、例えば、フラッシュメモリ部８に対して、データの消去（Erase）、書き込み（Program）、及び読み出し（Read）などのコマンド処理の制御を行う。また、制御回路部５は、フラッシュメモリ部８の消去（Erase）及び書き込み（Program）に必要な高電圧を生成する高電圧生成機能を有している。
また、制御回路部５は、フラッシュメモリ部８に制御信号と、消去（Erase）及び書き込み（Program）電圧とを供給する。
【００１６】
また、制御回路部５は、フラッシュメモリ部８からデータを読み出して、ＥＣＣ訂正可否判定回路部９に供給させる制御を行う。制御回路部５は、フラッシュメモリ部８からデータを読み出して、読み出したデータを例えば８ビット（単位データ）単位でＥＣＣ訂正可否判定回路部９に供給させる。
また、制御回路部５は、フラッシュメモリＬＳＩ１の内部処理が実行中であることを示すＢＵＳＹＢ信号をＥＣＣ訂正可否判定回路部９に供給する。例えば、制御回路部５は、リードコマンド（読み出しコマンド）処理が実行され、ＮＡＮＤフラッシュメモリアレイ８０からページバッファ部８３に読み出しが開始され場合に、ＢＵＳＹＢ信号をＬレベル（ロウ：Ｌｏｗレベル）にする。
【００１７】
フラッシュメモリ部８（記憶部）は、データを記憶する記憶部であって、予め定められたデータ長（ビット数）のデータ領域（例えば、５１２バイトの領域）を複数有している。フラッシュメモリ部８は、制御回路部５から供給される制御信号に基づいて、データの消去（Erase）、書き込み（Program）、及び読み出し（Read）を行う。なお、フラッシュメモリ部８は、データの書き込みを行う場合に、Ｉ／Ｏバッファ／ラッチ部６を介してＩＯ０−７端子から供給されるデータをＮＡＮＤ（ナンド）フラッシュメモリアレイ８０に記憶（書き込む）する。また、フラッシュメモリ部８は、データの読み出しを行う場合に、ＮＡＮＤフラッシュメモリアレイ８０に記憶されているデータをＩ／Ｏバッファ／ラッチ部６に供給するとともに、ＥＣＣ訂正可否判定回路部９に供給する。なお、ここで、Ｉ／Ｏバッファ／ラッチ部６に供給されるデータは、例えば、８ビット長のデータであり、以下この８ビットを「単位データ」として説明する。
上述のデータ領域（例えば、５１２バイトのデータ領域）は、８ビット長の単位データ（１バイト）を複数（５１２個）記憶している。すなわち、上述のデータ領域に記憶されるデータは、８ビット長の単位データを複数（５１２個）含んでいる。
【００１８】
また、フラッシュメモリ部８は、ＮＡＮＤフラッシュメモリアレイ８０、Ｘデコーダ部８１、Ｙデコーダ部８２、及びページバッファ部８３を備えている。
ＮＡＮＤフラッシュメモリアレイ８０（メモリセル部）は、例えば、ＮＡＮＤ型ＦＬＡＳＨ（ナンド型フラッシュ）メモリのメモリセルを複数備えるメモリコアである。ＮＡＮＤフラッシュメモリアレイ８０の構成については、図２を用いて後述する。
【００１９】
Ｘデコーダ部８１（X decoder部）及びＹデコーダ部８２（Y decoder部）は、アドレスレジスタ／カウンタ部２から供給されるアドレス情報に基づいて、ＮＡＮＤフラッシュメモリアレイ８０上のメモリセルを選択するデコーダ回路である。
また、Ｙデコーダ部８２は、データの読み出し処理の際に、ページバッファ部８３に一時記憶されたＮＡＮＤフラッシュメモリアレイ８０から読み出されたページデータを、コマンドＩ／Ｆ部３から供給される制御信号に基づいて、８ビット単位（単位データ単位）で選択する。そして、Ｙデコーダ部８２は、選択した８ビット単位のデータをＩ／Ｏバッファ／ラッチ部６及びＥＣＣ訂正可否判定回路部９に順次供給する。
【００２０】
ページバッファ部８３（Page buffer部）は、ＮＡＮＤフラッシュメモリアレイ８０に書き込むデータ、及びＮＡＮＤフラッシュメモリアレイ８０から読み出すデータを一時記憶する。なお、ページバッファ部８３は、ＮＡＮＤフラッシュメモリアレイ８０の１ページ分のデータを一時記憶する。本実施形態では、例えば、１ページを２ＫＢｙｔｅ（キロバイト）とし、上述した予め定められたデータ長（ビット数）のデータ領域（５１２バイトの領域）を４つ含む構成の例を説明する。
【００２１】
Ｉ／Ｏバッファ／ラッチ部６（I/O buffer & latches部）は、ＩＯ０−７端子と、フラッシュメモリＬＳＩ１の内部の各部とのインターフェースを行う回路である。例えば、Ｉ／Ｏバッファ／ラッチ部６は、フラッシュメモリ部８から読み出したデータをＩＯ０−７端子に出力する。また、Ｉ／Ｏバッファ／ラッチ部６は、ＩＯ０−７端子から供給された書き込みデータをページバッファ部８３に供給する。また、Ｉ／Ｏバッファ／ラッチ部６は、ＩＯ０−７端子から供給されたアドレス情報をアドレスレジスタ／カウンタ部２に、ＩＯ０−７端子から供給されたコマンド情報をコマンドレジスタ部４にそれぞれ供給する。
【００２２】
ＲＢバッファ部７は、ＥＣＣ訂正可否判定回路部９から供給されるＲＢＢ信号に基づいて、ＲＢ＃端子（Ｔ１）に情報（データ）を出力する。例えば、フラッシュメモリＬＳＩ１が通常の動作を行う通常動作モードにおいて、ＲＢバッファ部７は、内部処理が実行中であることを示す情報（データ）を出力する。また、例えば、ＥＣＣ訂正可否判定回路部９を用いた後述するテスト処理を行う場合に、ＲＢバッファ部７は、ＥＣＣ訂正可否判定回路部９が判定した判定結果に応じた出力をＲＢ＃端子（Ｔ１）に出力する。
なお、ＲＢ＃端子（Ｔ１）は、後述するオープンドレインの構造になっており、フラッシュメモリＬＳＩ１の外部から抵抗等でプルアップして使用される。
【００２３】
ＥＣＣ訂正可否判定回路部９は、フラッシュメモリ部８から読み出したデータに含まれる不良ビット（Fail Bit）の数が、予め定められた閾値（例えば、１ビット）以下であるか否かを、５１２バイトごとに判定する。ここで、不良ビット（Fail Bit）とは、フラッシュメモリ部８から読み出したデータと、当該データの期待値とが不一致であるビットを示す。また、ＥＣＣ訂正可否判定回路部９は、判定した判定結果に応じた出力をＲＢ＃端子（Ｔ１）に出力させる出力制御を行い、出力制御を行う信号として、ＲＢＢ信号をＲＢバッファ部７に供給する。
なお、フラッシュメモリ部８から読み出したデータは、Ｉ／Ｏバッファ／ラッチ部６から、単位データ（ＤＢ＜７：０＞）として、ＲＥ＃信号（ＲＥＢ信号）の立ち下がりエッジに同期してＥＣＣ訂正可否判定回路部９に供給される。
また、ＥＣＣ訂正可否判定回路部９は、判定回路部１０及びＲＢ制御回路部６０を備えている。ＥＣＣ訂正可否判定回路部９の構成の詳細については、図３を用いて後述する。
【００２４】
次に、上述したフラッシュメモリ部８のＮＡＮＤフラッシュメモリアレイ８０の構成の一例について説明する。
図２は、本実施形態におけるフラッシュメモリ部８のデータ構成の一例を示す図である。
この図において、ＮＡＮＤフラッシュメモリアレイ８０は、＃０から＃４０９５の４０９６つのブロック（図２のＢＮ参照）を有している。また、各ブロックは、それぞれ＃０から６４個のページ（図２のＰＮ参照）を有している。
【００２５】
また、各ページは、メインエリアＡ１とスペアエリアＡ２を有している。ここで、メインエリアＡ１は、例えば、５１２バイトのデータ領域を４つ有している。また、スペアエリアＡ２には、４つの各データ領域に対応するＥＣＣコード（ＥＣＣ（０）〜ＥＣＣ（３））及び、管理データ（ＭＤ（０）〜ＭＤ（３））を有している。例えば、ブロック＃０のページ＃０には、データ領域Ａ１１〜Ａ１４、ＥＣＣコード（ＥＣＣ（０）〜ＥＣＣ（３））Ａ２０１〜Ａ２０４及び、管理データ（ＭＤ（０）〜ＭＤ（３））Ａ２１１〜Ａ２１４が含まれている。また、例えば、ブロック＃４０９５のページ＃６３には、データ領域Ａ１５〜Ａ１８、ＥＣＣコード（ＥＣＣ（０）〜ＥＣＣ（３））Ａ２０５〜Ａ２０８及び、管理データ（ＭＤ（０）〜ＭＤ（３））Ａ２１５〜Ａ２１８が含まれている。
なお、ＥＣＣコードは、例えば、データ領域（５１２Ｂｙｔｅの領域）に１ビットの不良ビットが含まれる場合に訂正（救済）可能な情報である。
【００２６】
次に、本実施形態におけるＥＣＣ訂正可否判定回路部９の具体的な構成について説明する。
図３は、本実施形態におけるＥＣＣ訂正可否判定回路部９を示すブロック図である。
この図において、ＥＣＣ訂正可否判定回路部９は、判定回路部１０及びＲＢ制御回路部６０を備えている。また、判定回路部１０は、ＲＢ制御回路部６０を介してＲＢバッファ部７に接続されている。
【００２７】
判定回路部１０は、単位データ判定回路部２０、５１２サイクルリセット回路部３０、判定クロック生成部４０、及び判定結果ラッチ部５０を備えている。
単位データ判定回路部２０は、フラッシュメモリ部８から読み出したデータを、例えば８ビットの単位データ（ＤＢ＜７：０＞）として、単位データに含まれる不良ビットが１ビット以下であるか否かを判定し、当該判定結果を示す信号（Ｆ２信号）を出力する。また、単位データ判定回路部２０は、単位データに含まれる不良ビットが１ビット以下である場合に、単位データに含まれる不良ビットの数を示す不良ビット数信号（Ｆ１信号）を出力する。
【００２８】
ここで、単位データ判定回路部２０は、単位データの各ビット同士のデータを比較する事で判定する。これは不良ビットがランダムに発生する状況下では、１つのアドレス（単位データ）において、全ビットが同時に不良ビットになる確率が極めて低い事に基づくものである。単位データ判定回路部２０は、フラッシュメモリ部８の読み出しサイクルごとに単位データ（ＤＢ＜７：０＞）のデータを比較し、比較結果を不良検出信号としてＦ１信号及びＦ２信号を判定結果ラッチ部５０に出力する。
単位データ判定回路部２０は、単位データのうちの１ビットだけ他のビットのレベル（論理レベル）と異なる場合に、Ｆ１信号にＨレベル（ハイ：Highレベル）を出力する。また、単位データ判定回路部２０は、単位データのうちの２ビット以上が他のビットのレベル（論理レベル）と異なる場合に、Ｆ２信号にＨレベル（ハイ：Highレベル）を出力する。また、単位データ判定回路部２０は、単位データのうちの全ビットのレベル（論理レベル）が一致している場合に、Ｆ１信号及びＦ２信号にＬレベルを出力する。
このように、単位データ判定回路部２０は、３種類の判定を行い、判定した判定結果を判定結果ラッチ部５０に出力する。
【００２９】
また、単位データ判定回路部２０は、不良ビットカウント部（２００、２５０）、反転バッファ部２０８、アンド回路２０６、及びオア回路２０７を備えている。
反転バッファ部２０８は、８ビットの単位データであるＤＢ＜７：０＞信号を論理反転して、論理反転した８ビットの信号をＤＢＢ＜７：０＞信号として出力する。なお、反転バッファ部２０８は、８ビットのインバータ回路２０９を備えている。
【００３０】
不良ビットカウント部２００（不良ビット判定回路）は、単位データの期待値をＡＬＬ“０”として、単位データ（ＤＢ＜７：０＞）に含まれる不良ビットが１ビット以下であるか否かを判定し、当該判定結果を示す信号（Ｆ２＿０信号）を出力する。また、不良ビットカウント部２００は、単位データに含まれる不良ビットが１ビット以下である場合に、単位データに含まれる不良ビットの数を示す不良ビット数信号（Ｆ１＿０信号）を出力する。
【００３１】
また、不良ビットカウント部２００は、２ビット不良判定回路２１、ＡＬＬ０判定回路２２、及び信号生成回路２３を備えている。
ＡＬＬ０判定回路２２（第１の判定回路）は、単位データの全ビットが第１の論理レベル（例えば、論理“０”又は“Ｌ（ロウ）”レベル）であるか否かを判定する。すなわち、ＡＬＬ０判定回路２２は、全ビットが第１の論理レベルである単位データを期待値として、単位データの全ビットが第１の論理レベルであるか否かを判定する。ＡＬＬ０判定回路２２は、オア回路２２１〜２２７を備えている。オア回路２２１（ＯＲ：論理和演算回路）は、入力端子の一端がＤＢ＜０＞信号線に、入力端子の他端がＤＢ＜１＞信号線に、出力端子がノードＮ２１に、それぞれ接続されている。また、オア回路２２２は、入力端子の一端がノードＮ２１に、入力端子の他端がＤＢ＜２＞信号線に、出力端子がノードＮ２２に、それぞれ接続されている。
【００３２】
同様に、オア回路２２３は、入力端子の一端がノードＮ２２に、入力端子の他端がＤＢ＜３＞信号線に、出力端子がノードＮ２３に、それぞれ接続されている。オア回路２２４は、入力端子の一端がノードＮ２３に、入力端子の他端がＤＢ＜４＞信号線に、出力端子がノードＮ２４に、それぞれ接続されている。オア回路２２５は、入力端子の一端がノードＮ２４に、入力端子の他端がＤＢ＜５＞信号線に、出力端子がノードＮ２５に、それぞれ接続されている。オア回路２２６は、入力端子の一端がノードＮ２５に、入力端子の他端がＤＢ＜６＞信号線に、出力端子がノードＮ２６に、それぞれ接続されている。オア回路２２７は、入力端子の一端がノードＮ２６に、入力端子の他端がＤＢ＜７＞信号線に、出力端子がノードＮ５に、それぞれ接続されている。
ここで、ノードＮ２１〜ノードＮ２６における各信号をＮ１Ｒ信号〜Ｎ６Ｒ信号と定義し、ノードＮ５における信号をＮ７Ｒ信号と定義する。
ＡＬＬ０判定回路２２は、単位データ（ＤＢ＜７：０＞）の全ビットを論理和した信号であるＮ７Ｒ信号を信号生成回路２３に出力する。
【００３３】
２ビット不良判定回路２１（第２の判定回路）は、単位データの全ビットのうちの、第１の論理レベル（例えば、論理“０” 又は“Ｌ”レベル）を論理反転した（反転した論理を示す）第２の論理レベル（例えば、論理“１”又は“Ｈ（ハイ）”レベル）であるビットの数が、１ビット以下であるか否かを判定する。すなわち、２ビット不良判定回路２１は、単位データの全ビットのうちの２ビット以上が論理“１”又は“Ｈ（ハイ）”レベルであるか否か（マルチビット不良であるか否か）を判定する。２ビット不良判定回路２１は、判定した判定結果をＦ２＿０信号として、アンド回路２０６に出力する。
【００３４】
また、２ビット不良判定回路２１は、アンド回路２１１〜２１７、及びオア回路２０１〜２０３を備えている。アンド回路２１１（ＡＮＤ：論理積演算回路）は、入力端子の一端がＤＢ＜０＞信号線に、入力端子の他端がＤＢ＜１＞信号線に、出力端子がノードＮ１１に、それぞれ接続されている。また、アンド回路２１２は、入力端子の一端がノードＮ２１に、入力端子の他端がＤＢ＜２＞信号線に、出力端子がノードＮ１２に、それぞれ接続されている。
【００３５】
同様に、アンド回路２１３は、入力端子の一端がノードＮ２２に、入力端子の他端がＤＢ＜３＞信号線に、出力端子がノードＮ１３に、それぞれ接続されている。アンド回路２１４は、入力端子の一端がノードＮ２３に、入力端子の他端がＤＢ＜４＞信号線に、出力端子がノードＮ１４に、それぞれ接続されている。アンド回路２１５は、入力端子の一端がノードＮ２４に、入力端子の他端がＤＢ＜５＞信号線に、出力端子がノードＮ１５に、それぞれ接続されている。アンド回路２１６は、入力端子の一端がノードＮ２５に、入力端子の他端がＤＢ＜６＞信号線に、出力端子がノードＮ１６に、それぞれ接続されている。アンド回路２１７は、入力端子の一端がノードＮ２６に、入力端子の他端がＤＢ＜７＞信号線に、出力端子がノードＮ１７に、それぞれ接続されている。
ここで、ノードＮ１１〜ノードＮ１７における各信号をＮ１Ａ信号〜Ｎ７Ａ信号と定義する。
【００３６】
オア回路２０１は、３入力論理和回路であり、ノードＮ１１〜ノードＮ１３の信号であるＮ１Ａ信号〜Ｎ３Ａ信号を論理和演算した信号をノードＮ１に出力する。
オア回路２０２は、４入力論理和回路であり、ノードＮ１４〜ノードＮ１７の信号であるＮ４Ａ信号〜Ｎ７Ａ信号を論理和演算した信号をノードＮ２に出力する。
オア回路２０３は、入力端子の一端がノードＮ１に、入力端子の他端がノードＮ２に、出力端子がノードＮ３に、それぞれ接続されている。すなわち、オア回路２０３は、オア回路２０１の出力とオア回路２０２の出力とを論理和演算した信号をＦ２＿０信号として出力する。
【００３７】
信号生成回路２３は、ＡＬＬ０判定回路２２による判定結果と、２ビット不良判定回路２１による判定結果とに基づいて、Ｆ１＿０信号（不良ビット数信号）を生成する。また、信号生成回路２３は、インバータ回路２０４及びアンド回路２０５を備えている。
インバータ回路２０４は、入力端子がノードＮ３に、出力端子がノードＮ４に、それぞれ接続されている。インバータ回路２０４は、Ｆ１＿０信号を論理反転して、アンド回路２０５に出力する。
アンド回路２０５は、入力端子の一端がノードＮ４に、入力端子の他端がノードＮ５に、出力端子がノードＮ６に、それぞれ接続されている。アンド回路２０５は、Ｆ１＿０信号を論理反転信号とＮ７Ｒ信号とを論理積演算して、演算結果をＦ１＿０信号として出力する。
【００３８】
不良ビットカウント部２５０は、不良ビットカウント部２００と同一の構成であるが、反転バッファ部２０８によってＤＢ＜７：０＞信号が論理反転されたＤＢＢ＜７：０＞信号を、単位データとして用いる点が異なる。すなわち、不良ビットカウント部２５０は、単位データの期待値をＡＬＬ“１”として、単位データ（ＤＢ＜７：０＞）に含まれる不良ビットが１ビット以下であるか否かを判定し、当該判定結果を示す信号（Ｆ２＿１信号）を出力する。また、不良ビットカウント部２００は、単位データに含まれる不良ビットが１ビット以下である場合に、単位データに含まれる不良ビットの数を示す不良ビット数信号（Ｆ１＿１信号）を出力する。
【００３９】
アンド回路２０６は、不良ビットカウント部２００による判定結果であるＦ２＿０信号（第１の判定結果）と、不良ビットカウント部２５０による判定結果であるＦ２＿１信号（第２の判定結果）とを論理積演算して、演算結果をＦ２信号として判定結果ラッチ部５０に出力する。
また、オア回路２０７は、不良ビットカウント部２００による判定結果であるＦ１＿０信号（第１の不良ビット数信号）と、不良ビットカウント部２５０による判定結果であるＦ１＿１信号（第２の不良ビット数信号）とを論理和演算して、演算結果をＦ１信号として判定結果ラッチ部５０に出力する。
【００４０】
このように、本実施形態では、単位データ判定回路部２０は、２つの不良ビットカウント部（２００、２５０）を備えている。単位データ判定回路部２０は、不良ビットカウント部２００によるＦ２＿０信号、及び不良ビットカウント部２５０によるＦ２＿０信号に基づいて、単位データ（ＤＢ＜７：０＞）に含まれる不良ビットが１ビット以下であるか否かを判定する。また、単位データ判定回路部２０は、不良ビットカウント部２００から出力されるＦ１＿０信号、及び不良ビットカウント部２５０から出力される第２のＦ１＿１信号に基づいて、Ｆ１信号（不良ビット数信号）を生成する。
【００４１】
判定クロック生成部４０は、コマンドＩ／Ｆ部３から供給されるＲＥＢ信号及びＴＭ信号に基づいて、判定回路部１０が判定を行うタイミング信号であるクロック信号（ＣＫＪ信号）を生成する。判定クロック生成部４０は、生成したクロック信号（ＣＫＪ信号）を判定結果ラッチ部５０に供給する。判定クロック生成部４０は、例えば、ＲＥＢ信号の立ち上がりエッジに同期してＣＫＪ信号として、Ｈパルスを発生させる。なお、読み出しデータであるＤＢ＜７：０＞信号は、ＲＥ＃信号（ＲＥＢ信号）の立ち下がりエッジに同期して出力されるため、判定クロック生成部４０は、ＲＥＢ信号から半クロック遅れとなる信号の立ち下がりエッジでこのパルスを発生させる。すなわち、判定クロック生成部４０は、単位データ判定回路部２０が出力（Ｆ１信号及びＦ２信号）を確定させた後に、このパルス信号を発生させる。
【００４２】
また、判定クロック生成部４０は、Ｄｅｌａｙ（ディレイ）回路４１、インバータ回路４２、及びアンド回路４３を備えている。
Ｄｅｌａｙ回路４１（遅延回路）は、コマンドＩ／Ｆ部３から供給されるＲＥＢ信号を予め定められた遅延時間だけ遅延させて、インバータ回路４２に供給する。
インバータ回路４２は、Ｄｅｌａｙ回路４１によって遅延されたＲＥＢ信号を論理反転したＲＥＤＬＹ信号を生成し、生成したＲＥＤＬＹ信号をアンド回路４３に供給する。
アンド回路４３は、３入力論理積演算回路であり、コマンドＩ／Ｆ部３から供給されるＴＭ信号及びＲＥＢ信号と、インバータ回路４２から供給されるＲＥＤＬＹ信号とを論理積演算してクロック信号（ＣＫＪ信号）を生成する。
【００４３】
判定結果ラッチ部５０（領域判定ラッチ部）は、５１２バイト長のデータのうちの単位データごとに単位データ判定回路部２０が判定した判定結果（Ｆ２信号）及び不良ビット数信号（Ｆ１信号）に基づいて、データ領域（５１２バイトの領域）ごとにデータに含まれる不良ビットが１ビット以下であるか否かを判定する。判定結果ラッチ部５０は、この判定結果をＪＤＧ信号として、ＲＢ制御回路部６０に出力する。また、判定結果ラッチ部５０は、この判定結果を保持する。判定結果ラッチ部５０は、例えば、コマンドＩ／Ｆ部３から供給されるＲＥＳＥＴ信号にＨレベルが供給されるまで保持する。
【００４４】
また、判定結果ラッチ部５０は、カウンタ部５００を有している。このカウンタ部５００（計数部）は、不良ビット数信号（Ｆ１信号）に基づいて、５１２バイト長のデータに含まれる不良ビットの数をカウント（計数）する。
判定結果ラッチ部５０は、カウンタ部５００によってカウントされたカウント値と、単位データ判定回路部２０が判定した判定結果（Ｆ２信号）とに基づいて、データ領域ごとに５１２バイト長のデータに含まれる不良ビットが１ビット以下であるか否かを判定する。
【００４５】
判定結果ラッチ部５０は、アンド回路５１、オア回路５６、ノア回路（５７、５８）、及びカウンタ部５００を備えている。また、カウンタ部５００は、アンド回路５２、オア回路５３、及びＤフリップフロップ（５４、５５）を備えている。
アンド回路５１は、単位データ判定回路部２０から出力されるＦ２信号と、判定クロック生成部４０から供給されるクロック信号（ＣＫＪ信号）とを論理積演算して、当該演算結果をＪＤＧ＿Ｆ２信号としてノードＮ９に出力する。ここで、ＪＤＧ＿Ｆ２信号は、Ｆ２信号がＨレベルにある場合に、クロック信号（ＣＫＪ信号）に同期したＨパルス信号を出力する。
オア回路５６は、アンド回路５１から出力されるＪＤＧ＿Ｆ２信号と、カウンタ部５００から出力されるＪＤＧ＿Ｆ１信号とを論理和演算して、当該辺算結果をノードＮ１０に出力する。
【００４６】
ノア回路（５７、５８）（ＮＯＲ：否定論理和演算回路）は、それぞれの出力端子が、互いの入力端子の１つに接続されているＳＲ（セットリセット：Set-Reset）ラッチとして機能する。また、ノア回路５７は、２入力のうちの１つの入力端子がノードＮ１０に接続され、出力端子がノードＮ１１及びノア回路５８の入力端子に接続されている。ノア回路５８は、２入力のうちの１つの入力端子が、ＲＥＳＥＴ信号線に接続され、出力端子がノア回路５７の入力端子に接続されている。なお、ノア回路５７は、ＪＤＧ信号をＲＢ制御回路部６０に出力する。
ノア回路（５７、５８）によるラッチ出力（ＪＤＧ信号）は、ＪＤＧ＿Ｆ１信号又はＪＤＧ＿Ｆ２信号がＨレベルになった場合にＬレベルになり、ＲＥＳＥＴ信号がＨレベルになった場合にＨレベルになる。すなわち、ＪＤＧ信号は、５１２バイトのデータ領域において、単位データ判定回路部２０が単位データに２ビット以上の不良ビットを検出した場合、又は、１ビット以下の不良ビットが２回検出された場合に、Ｌレベルが出力される。
【００４７】
アンド回路５２は、単位データ判定回路部２０から出力されるＦ１信号と、判定クロック生成部４０から供給されるクロック信号（ＣＫＪ信号）とを論理積演算して、当該演算結果であるＣＫＦ１信号をＤフリップフロップ（５４、５５）の入力端子ＣＫ（クロック入力端子）に出力する。ここで、ＣＫＦ１信号は、Ｆ１信号がＨレベルにある場合に、クロック信号（ＣＫＪ信号）に同期したＨパルス信号を出力する。
オア回路５３は、５１２サイクルリセット回路部３０から出力されるＲＳＴ５１２信号と、コマンドＩ／Ｆ部３から供給されるＲＥＳＥＴ信号とを論理和演算して、当該辺算結果をＲＳＴ＿ＤＦ信号として、Ｄフリップフロップ（５４、５５）の入力端子Ｒ（リセット端子）に出力する。
【００４８】
Ｄフリップフロップ５４（Ｄ−ＦＦ）は、入力端子ＤがＨレベルに固定され、出力端子ＱがＤフリップフロップ５５の入力端子Ｄに接続されている。また、Ｄフリップフロップ５５は、入力端子ＤがＤフリップフロップ５４の出力端子Ｑに接続される。Ｄフリップフロップ５５は、出力端子Ｑに上述したＪＤＧ＿Ｆ１信号を出力する。
なお、Ｄフリップフロップ（５４、５５）は、２ビットカウンタとして機能し、ＣＫＦ１信号によりカウントアップする。Ｄフリップフロップ（５４、５５）は、５１２バイトのデータ領域において、Ｆ１信号が２回以上Ｈレベルになった場合に、ＪＤＧ＿Ｆ１信号としてＨレベルを出力する。
【００４９】
５１２サイクルリセット回路部３０（リセット回路部）は、制御回路部５によってフラッシュメモリ部８から供給される単位データの数が予め定められたデータ長（５１２バイト）に達するごとに、カウンタ部５００をリセットする。すなわち、５１２サイクルリセット回路部３０は、５１２バイト（５１２読み出しサイクル）ごとに、ＲＳＴ５１２信号にＨパルスを出力する。このＲＳＴ５１２信号は、ＥＣＣの１ビット訂正仕様にあわせて５１２バイト単位で不良ビットのカウント動作をリセットする目的で使われ、判定結果ラッチ部５０のカウンタ部５００（Ｄフリップフロップ５４及び５５）のリセット信号として使用される。
また、５１２サイクルリセット回路部３０は、インバータ回路（３０１、３０２、３０４）、Ｄフリップフロップ３１０〜３１８、Ｄｅｌａｙ回路３０３、及びアンド回路３０５を備えている。
【００５０】
インバータ回路３０１は、コマンドＩ／Ｆ部３から供給されるＲＥＢ信号を論理反転して、Ｄフリップフロップ３１０〜３１８のクロック信号として入力端子ＣＫに供給する。
インバータ回路３０２は、コマンドＩ／Ｆ部３から供給されるＴＭ信号を論理反転して、Ｄフリップフロップ３１０〜３１８のセット信号として入力端子Ｓに供給する。これにより、ＴＭ信号がＬレベルにある場合には、Ｄフリップフロップ３１０〜３１８の出力端子Ｑは、Ｈレベルに固定される。また、ＴＭ信号がＨレベルにある場合には、Ｄフリップフロップ３１０〜３１８は、ＲＥＢ信号によって、Ｑ端子のレベルが変化する。
Ｄフリップフロップ３１０〜３１８は、５１２サイクルをカウントする９ビットのバイナリカウンタである。Ｄフリップフロップ３１０〜３１８は、それぞれ、自身の反転出力端子／Ｑと入力端子Ｄとが接続されている。また、各反転出力端子／Ｑは、次段の入力端子ＣＫと接続され、Ｄフリップフロップ３１０〜３１８は、クロック信号として、それぞれ、ＱＢ０信号〜ＱＢ８信号を出力する。
【００５１】
Ｄフリップフロップ３１８は、ＱＢ８信号をＤｅｌａｙ回路３０３、及びアンド回路３０５に出力する。
Ｄｅｌａｙ回路３０３（遅延回路）は、Ｄフリップフロップ３１８から出力されるＱＢ８信号を予め定められた遅延時間だけ遅延させて、インバータ回路３０４に供給する。
インバータ回路３０４は、Ｄｅｌａｙ回路３０３によって遅延されたＱＢ８信号を論理反転した信号を生成し、生成した論理反転した信号をアンド回路３０５に供給する。
アンド回路３０５は、Ｄフリップフロップ３１８から出力されるＱＢ８信号と、インバータ回路３０４から供給される信号とを論理積演算して、ＲＳＴ５１２信号を生成する。
アンド回路３０５は、生成したＲＳＴ５１２信号を判定結果ラッチ部５０に出力する。
【００５２】
ＲＢ制御回路部６０（出力制御回路部）は、判定回路部１０が判定した判定結果に応じた出力を出力端子（ＲＢ＃端子Ｔ１に出力させる。ＲＢ制御回路部６０は、本来のRB#端子の制御信号である制御回路部５から出力されるＢＵＳＹＢ信号と判定回路部１０から出力されるＪＤＧ信号とを、ＴＭ信号に基づいて選択する。ＲＢ制御回路部６０は、ＴＭ信号に基づいて選択した信号（ＲＢＢ信号）をＲＢバッファ部７に出力する。
また、ＲＢ制御回路部６０は、ナンド回路（６１、６２、６４〜６６）、及びインバータ回路６３を備えている。
【００５３】
ナンド回路（６１、６２）（ＮＡＮＤ：否定論理積演算回路）は、それぞれの出力端子が、互いの入力端子の１つに接続されているＳＲ（セットリセット：Set-Reset）ラッチとして機能する。また、ナンド回路６１は、２入力のうちの１つの入力端子がＲＥＢ信号線に接続され、出力端子がノードＮ１３及びナンド回路６２の入力端子に接続されている。ナンド回路６２は、３入力のうちの１つの入力端子が、ＢＵＳＹＢ信号線に接続され、３入力のうちの別の入力端子が、ＴＭ信号線に接続され、出力端子がナンド回路６１の入力端子に接続されている。なお、ナンド回路６２は、ＳＥＬ信号をナンド回路６５及びインバータ回路６３に出力する。
ナンド回路（６１、６２）によるラッチ出力（ＳＥＬ信号）は、ＴＭ信号又はＢＵＳＹＢ信号がＬレベルになった場合にＨレベルになり、ＲＥＢ信号がＬレベルになった場合にＬレベルになる。
【００５４】
インバータ回路６３は、入力端子がノードＮ１４に、出力端子がノードＮ１５にそれぞれ接続されている。インバータ回路６３は、ナンド回路６２から出力されるＳＥＬ信号を論理反転した信号をノードＮ１５に出力する。
ナンド回路６４は、入力端子の一端がノードＮ１１に、入力端子の他端がノードＮ１５に、出力端子がノードＮ１７に、それぞれ接続されている。
ナンド回路６５は、入力端子の一端がノードＮ１４に、入力端子の他端がＢＵＳＹ信号線に、出力端子がノードＮ１６に、それぞれ接続されている。
ナンド回路６６は、入力端子の一端がノードＮ１７に、入力端子の他端がノードＮ１６に、出力端子がＲＢＢ信号線に、それぞれ接続されている。
ナンド回路６４〜６６、及びインバータ回路６３は、ＴＭ信号より生成したＳＥＬ信号に基づいて、ＲＢ＃端子Ｔ１に出力する信号として、ＪＤＧ信号又はＢＵＳＹＢ信号を選択する選択回路として機能する。
【００５５】
なお、ＲＢ制御回路部６０では、ＴＭ信号がＨレベルにある場合に、リードコマンドの発行が完了して、ＮＡＮＤフラッシュメモリアレイ８０（メモリセル部）からページバッファ部８３に読み出しか開始された際に、ＢＵＳＹＢ信号がＬレベルになり、これによりＳＥＬ信号がＨレベルになる。ＳＥＬ信号がＨレベルになった場合に、ナンド回路６６は、ＢＵＳＹＢ信号をＲＢＢ信号として、ＲＢバッファ部７に出力する。
また、ＮＡＮＤフラッシュメモリアレイ８０（メモリセル部）からページバッファ部８３に読み出しか完了すると、ＢＵＳＹＢ信号がＨレベルになり、ＲＥ＃信号（ＲＥＢ信号）がＬレベルになった場合に、ＳＥＬ信号がＬレベルになる。ＳＥＬ信号がＬレベルになった場合に、ナンド回路６６は、ＪＤＧ信号をＲＢＢ信号として、ＲＢバッファ部７に出力する。
また、ＴＭ信号がＬレベルにある場合に、ＳＥＬ信号がＨレベルになるため、ナンド回路６６は、ＢＵＳＹＢ信号をＲＢＢ信号として、ＲＢバッファ部７に出力する。
【００５６】
ＲＢバッファ部７は、インバータ回路７１とＮＭＯＳトランジスタ（Ｎ型チャネル金属酸化膜半導体電界効果トランジスタ）７２を備えている。
インバータ回路７１は、ＲＢ制御回路部６０から出力されるＲＢＢ信号を論理反転して、ノードＮ１８に出力する。
ＮＭＯＳトランジスタ７２は、ドレイン端子がＲＢ＃端子Ｔ１に、ゲート端子がノードＮ１８に、ソース端子がグランド電源線に、それぞれ接続されている。ＮＭＯＳトランジスタ７２は、ＲＢ＃端子Ｔ１をオープンドレイン出力端子（ＮＭＯＳオープンドレイン出力端子）として機能させる。
【００５７】
次に、本実施形態におけるフラッシュメモリＬＳＩ１の動作について説明する。
図４は、本実施形態におけるフラッシュメモリＬＳＩ１のコマンド処理の一例を示すタイムチャートである。
この図において、フラッシュメモリＬＳＩ１の動作の一例として、フラッシュメモリＬＳＩ１の通常の動作におけるリードコマンド処理（００ｈ）を示している。なお、本実施形態において「ＸＸｈ」は、１６進数データ形式による表記を示す。
【００５８】
図４において、横軸は時間を示し、縦軸は、上からサイクルタイプ（Cycle Type）、ＩＯ０−７信号、ＲＢ＃信号、ＷＥ＃信号、ＲＥ＃信号、ＡＬＥ信号、及びＣＬＥ信号の波形を示している。各信号の初期状態（初期レベル）は、ＲＢ＃信号、ＷＥ＃信号、及びＲＥ＃信号がＨレベルであり、ＡＬＥ信号、及びＣＬＥ信号がＬレベルである。また、ＩＯ０−７信号の初期状態は、Ｈｉ−Ｚ（ハイインピーダンス）レベルである。
図４では、まず、時刻ｔ１において、ＣＬＥ端子がＨレベルに、ＷＥ＃信号がＬレベルにされることによって、フラッシュメモリＬＳＩ１は、コマンド処理の実行を開始する。つまり、サイクルタイプにおけるコマンドサイクル（ＣＭＤ）が開始される。なお、ここでは、ＩＯ０−７信号には、リードコマンドのコマンドコードである“００ｈ”が入力される。
【００５９】
次に、時刻ｔ２において、ＷＥ＃信号がＨレベルにされ、フラッシュメモリＬＳＩ１は、１バイト目のコマンドコード“００ｈ”を内部にラッチする。フラッシュメモリＬＳＩ１は、内部にラッチしたコマンドコードに応じて、各種処理を実行する。
【００６０】
次に、時刻ｔ３において、ＣＬＥ信号がＬレベルにされて、コマンドサイクル（ＣＭＤ）が終了される。
次に、時刻ｔ４から時刻ｔ５において、ＡＬＥ信号がＨレベルにされて、ＩＯ０−７信号に“Ｃ１”、“Ｃ２”、“Ｒ１”、Ｒ２”、及び“Ｒ３”が順次供給される。また、ＷＥ＃信号は、ＩＯ０−７信号の“Ｃ１”、“Ｃ２”、“Ｒ１”、Ｒ２”、及び“Ｒ３”にあわせて、その都度、Ｌレベルにされる。なお、“Ｃ１”、“Ｃ２”、“Ｒ１”、Ｒ２”、及び“Ｒ３”は、フラッシュメモリＬＳＩ１にデータを読み出すアドレス情報を示している。
【００６１】
次に、時刻ｔ６から時刻ｔ８において、再び、ＣＬＥ信号がＨレベルにされ、時刻ｔ７において、ＷＥ＃信号がＨレベルにされ、フラッシュメモリＬＳＩ１は、２バイト目のコマンドコード“３０ｈ”（コンファームコマンド）を内部にラッチする。
このように、時刻ｔ１から時刻ｔ８までの期間では、リードコマンドのための情報がフラッシュメモリＬＳＩ１に供給され、フラッシュメモリＬＳＩ１は、リードコマンドの処理を開始する。
【００６２】
時刻ｔ８のＣＬＥ信号がＬレベルにされたことに応じて、フラッシュメモリＬＳＩ１は、ＲＢ＃信号をＬレベルにする（時刻ｔ９から時刻ｔ１０）。
なお、ＲＢ＃端子Ｔ１は、上述したように、ＲＢバッファ部７が接続されたオープンドレイン出力の端子である。そのため、ＲＢ＃端子Ｔ１は、通常動作モードで使用する場合に、プルアップ抵抗などを介して外部でプルアップされている。
【００６３】
時刻ｔ９から時刻ｔ１０において、フラッシュメモリＬＳＩ１では、Ｘデコーダ部８１及びＹデコーダ部８２が、アドレスレジスタ／カウンタ部２に記憶されているアドレス情報に基づいて、デコード信号を生成し、生成したデコード信号をＮＡＮＤフラッシュメモリアレイ８０に出力する。また、制御回路部５は、フラッシュメモリ部８に記憶されているデータをページ単位（例えば２Ｋバイト単位）で読み出し、読み出したページ単位のデータをページバッファ部８３に一時記憶させる。
【００６４】
次に、フラッシュメモリＬＳＩ１は、ＲＥ＃信号がトグルされ、ＲＥ＃信号の立ち下がり（時刻ｔ１１、時刻ｔ１２、及び時刻ｔ１３）に応じて、データを出力する。つまり、フラッシュメモリ部８は、ＲＥ＃信号の立ち下がりに応じて、ページバッファ部８３からＹデコーダ部８２及びＩ／Ｏバッファ／ラッチ部６を介してＩＯ０−７端子に読み出したデータを出力する。なお、ＲＥ＃信号の立ち下がりに応じて、アドレス情報が更新され、異なるメモリセルからデータが読み出される。
【００６５】
以上により、フラッシュメモリＬＳＩ１のリードコマンド処理を説明したが、フラッシュメモリＬＳＩ１は、データの消去やデータの書き込みも、同様のコマンド処理によって実行する。
【００６６】
次に、本実施形態におけるテスト処理の動作について説明する。
図５は、本実施形態における単位データ判定回路部２０の動作を示す図である。
この図において、横軸は、左から順に、（ａ）ＤＢ＜７：０＞信号の状態、（ｂ）不良ビットカウント部２００（Ｄａｔａ０）の出力状態、（ｃ）不良ビットカウント部２５０（Ｄａｔａ１）の出力状態、（ｄ）Ｆ１信号の出力状態、及び（ｅ）Ｆ２信号の出力状態を示している。また、縦軸における（ａ）ＤＢ＜７：０＞信号の状態として、上から順に“ＡＬＬ０”、“１”が１個、“０”が２個〜６個、“１”が２個〜６個、“０”が１個、及び“ＡＬＬ１”を示している。
【００６７】
図５（ｂ）及び図５（ｃ）に示すように、不良ビットカウント部２００は、ＤＢ＜７：０＞信号が“ＡＬＬ０”である場合に、Ｆ１＿０信号、及びＦ２＿０信号に論理“０”レベル（Ｌレベル）を出力する。また、不良ビットカウント部２００は、ＤＢ＜７：０＞信号に“１”が１個ある場合に、Ｆ１＿０信号に論理“１”レベル（Ｈレベル）を出力し、Ｆ２＿０信号に論理“０”レベル（Ｌレベル）を出力する。また、不良ビットカウント部２００は、ＤＢ＜７：０＞信号に“１”が２個以上である場合に、Ｆ１＿０信号に論理“０”レベル（Ｌレベル）を出力し、Ｆ２＿０信号に論理“１”レベル（Ｈレベル）を出力する。
同様に、不良ビットカウント部２５０は、ＤＢ＜７：０＞信号が“ＡＬＬ１”である場合に、Ｆ１＿１信号、及びＦ２＿１信号に論理“０”レベル（Ｌレベル）を出力する。また、不良ビットカウント部２５０は、ＤＢ＜７：０＞信号に“０”が１個ある場合に、Ｆ１＿１信号に論理“１”レベル（Ｈレベル）を出力し、Ｆ２＿１信号に論理“０”レベル（Ｌレベル）を出力する。また、不良ビットカウント部２５０は、ＤＢ＜７：０＞信号に“０”が２個以上である場合に、Ｆ１＿１信号に論理“０”レベル（Ｌレベル）を出力し、Ｆ２＿１信号に論理“１”レベル（Ｈレベル）を出力する。
【００６８】
また、図５（ｄ）及び図５（ｅ）に示すように、単位データ判定回路部２０は、ＤＢ＜７：０＞信号が“ＡＬＬ０”又は“ＡＬＬ１”である場合に、Ｆ１信号、及びＦ２信号に論理“０”レベル（Ｌレベル）を出力する。また、また、単位データ判定回路部２０は、ＤＢ＜７：０＞信号に“０”又は“１”が１個ある場合に、Ｆ１信号に論理“１”レベル（Ｈレベル）を出力し、Ｆ２信号に論理“０”レベル（Ｌレベル）を出力する。また、単位データ判定回路部２０は、ＤＢ＜７：０＞信号に“０”又は“１”が２個〜６個である場合に、Ｆ１信号に論理“０”レベル（Ｌレベル）を出力し、Ｆ２信号に論理“１”レベル（Ｈレベル）を出力する。
【００６９】
図６は、本実施形態における判定クロック生成部４０の動作を示すタイムチャートである。
この図において、縦軸は、上から順に、ＲＥＢ信号、ＲＥＤＬＹ信号、ＣＫＪ信号を示している。また、横軸は、時間を示している。なお、この図では、テストモード信号であるＴＭ信号は、Ｈレベルである場合における判定クロック生成部４０の動作を示している。
【００７０】
時刻ｔ２１において、ＲＥＢ信号がＨレベルからＬレベルに遷移されると、Ｄｅｌａｙ回路４１及びインバータ回路４２は、時刻ｔ２２において、ＲＥＢ信号を論理反転したＲＥＤＬＹ信号をＬレベルからＨレベルに遷移させる。また、時刻ｔ２３において、ＲＥＢ信号がＬレベルからＨレベルに遷移されると、Ｄｅｌａｙ回路４１及びインバータ回路４２は、時刻ｔ２４において、ＲＥＢ信号を論理反転したＲＥＤＬＹ信号をＨレベルからＬレベルに遷移させる。
その結果、アンド回路４３は、時刻ｔ２３から時刻ｔ２４までの間、ＣＫＪ信号にＨパルスを出力する。
【００７１】
このように、判定クロック生成部４０は、ＲＥＢ信号から半クロック遅れとなる信号の立ち上がりエッジでＣＫＪ信号にＨパルスを発生させる。すなわち、判定クロック生成部４０は、単位データ判定回路部２０が出力（Ｆ１信号及びＦ２信号）を確定させた後に、ＣＫＪ信号のパルス信号を発生させる。このＣＫＪ信号は、カウンタ部５００、及びノア回路（５７、５８）によるラッチのためのクロック信号として使用される。
【００７２】
図７は、本実施形態における５１２サイクルリセット回路部３０の動作を示すタイムチャートである。
この図において、縦軸は、上から順に、ＲＥＢ信号、Ｄフリップフロップ３１０〜３１８による９ビットカウンタのカウント値、ＲＳＴ５１２信号を示している。また、横軸は、時間を示している。なお、この図では、テストモード信号であるＴＭ信号は、Ｈレベルである場合における判定クロック生成部４０の動作を示している。
【００７３】
なお、ＴＭ信号がＬレベルにある場合に、Ｄフリップフロップ３１０〜３１８による９ビットカウンタは、ＡＬＬ“１”にセットされて、“５１１”のカウント値となる。
時刻ｔ３１において、ＲＥ＃信号により８ビットデータ（単位データ）がフラッシュメモリ部８から読み出されると、ＲＥ＃信号に同期してＲＥＢ信号が立ち下がり、５１２サイクルリセット回路部３０は、カウント値を“０”にする。なお、５１２サイクルリセット回路部３０におけるＤｅｌａｙ回路３０３、インバータ回路３０４、及びアンド回路３０５は、判定クロック生成部４０におけるＤｅｌａｙ回路４１、インバータ回路４２、及びアンド回路４３と同様の回路である。そのため、Ｄフリップフロップ３１８の出力であるＱＢ８信号が論理“０”レベル（Ｌレベル）から論理“１”レベル（Ｈレベル）に遷移した場合に、アンド回路３０５は、ＲＳＴ５１２信号にＨパルスを出力する。
【００７４】
続いて、時刻ｔ３２から時刻ｔ３６におけるＲＥＢ信号の立ち下がりタイミングにおいて、Ｄフリップフロップ３１０〜３１８による９ビットカウンタはカウントアップされ、カウント値は“１”〜“５１１”に順次遷移する。そして、時刻ｔ３７におけるＲＥＢ信号の立ち下がりタイミングにおいて、５１２サイクルリセット回路部３０のアンド回路３０５は、再び、ＲＳＴ５１２信号にＨパルスを出力する。すなわち、５１２サイクルリセット回路部３０は、ＲＥＢ信号の立ち下がりが５１２回発生する毎に、ＲＳＴ５１２信号にＨパルスを判定結果ラッチ部５０に供給する。
【００７５】
次に、本実施形態におけるフラッシュメモリＬＳＩ１全体のテスト処理について説明する。
図８は、本実施形態におけるフラッシュメモリＬＳＩ１のテスト処理を示すフローチャートである。
この図において、まず、フラッシュメモリＬＳＩ１は、外部の検査装置（例えば、ＬＳＩテスタなど）から期待値が書き込まれる（ステップＳ１０１）。この場合、フラッシュメモリＬＳＩ１には、書き込みコマンド処理により、例えば、偶数アドレスにＡＬＬ“０”、奇数アドレスにＡＬＬ“１”が書き込まれる。フラッシュメモリＬＳＩ１の制御回路部５は、コマンドＩ／Ｆ部３を介して供給された制御信号及びコマンド情報に基づいて、フラッシュメモリ部８に上述の期待値を記憶させる制御を行う。
【００７６】
次に、フラッシュメモリＬＳＩ１は、検査装置によりテストモードがエントリー（ＴＭ信号がＨレベルに）された後に、リードコマンド処理（例えば、Read Array Block#0-4095コマンド処理）が実行される（ステップＳ１０２）。これにより、制御回路部５は、フラッシュメモリ部８に記憶されているデータをページ単位で読み出し、読み出したページ単位のデータをページバッファ部８３に一時記憶させる。ＲＥ＃信号によるトグルがフラッシュメモリＬＳＩ１に供給されると、ＲＥ＃信号の立ち下がりエッジに応じて、Ｙデコーダ部８２が、ページバッファ部８３に一時記憶されているデータを８ビットデータ（単位データ）により、Ｉ／Ｏバッファ／ラッチ部６及びＥＣＣ訂正可否判定回路部９に順次供給する。なお、制御回路部５は、このページ単位のデータを読み出す処理をフラッシュメモリ部８の全領域（Block#0-4095）に対して行う。
【００７７】
ＥＣＣ訂正可否判定回路部９では、コマンドＩ／Ｆ部３から供給されるＲＥＢ信号に応じて、単位データ判定回路部２０が、８ビット（単位データ）ごとに図５に示すような不良ビットの判定処理を行う。単位データ判定回路部２０は、判定した判定結果としてＦ１信号及びＦ２信号を判定結果ラッチ部５０に出力する。判定結果ラッチ部５０は、５１２バイト長のデータのうちの８ビットごとに単位データ判定回路部２０が判定した判定結果（Ｆ２信号）及び不良ビット数信号（Ｆ１信号）に基づいて、データ領域（５１２バイトの領域）ごとにデータに含まれる不良ビットが１ビット以下であるか否かを判定する。判定結果ラッチ部５０は、判定結果を保持するとともに、判定結果としてＪＤＧ信号をＲＢ制御回路部６０に出力する。ＪＤＧ信号は、５１２バイトのデータ領域において、単位データ判定回路部２０が単位データに２ビット以上の不良ビットを検出した場合、又は、１ビット以下の不良ビットが２回検出された場合に、Ｌレベルが出力される。
【００７８】
なお、判定結果ラッチ部５０のカウンタ部５５は、データ領域（５１２バイトの領域）の中で、Ｆ１信号がＨレベルになる場合にカウントされる。カウンタ部５５は、Ｆ１信号がＨレベルになる場合が２回以上ある場合に、ノア回路（５７、５８）によるラッチ出力（ＪＤＧ信号）をＬレベルにする。
また、カウンタ部５５は、５１２サイクルリセット回路部３０から供給されるＲＳＴ５１２信号により、単位データ判定回路部２０が５１２回の判定処理を行うごとに、リセットされる。
【００７９】
ＲＢ制御回路部６０は、判定結果ラッチ部５０から出力されるＪＤＧ信号がＬレベルである場合に、ＲＢＢ信号にＬレベルにする。これにより、ＲＢバッファ部７は、ＮＭＯＳトランジスタ７１が導通状態になることにより、ＲＢ＃端子Ｔ１にＬレベル（論理“０”レベル）を出力させる。すなわち、ＲＢ制御回路部６０は、テストモード（ＴＭ信号がＨレベル）であり、フラッシュメモリ部８から読み出したデータがＥＣＣ訂正できないと判定された場合に、ＲＢ＃端子Ｔ１にＬレベル（論理“０”レベル）を出力させる。
【００８０】
また、ＲＢ制御回路部６０は、判定結果ラッチ部５０から出力されるＪＤＧ信号がＨレベルである場合に、ＲＢＢ信号にＨレベルにする。これにより、ＲＢバッファ部７は、ＮＭＯＳトランジスタ７１が非導通状態になることにより、ＲＢ＃端子Ｔ１を外部のプルアップによりＨレベル（論理“１”レベル）にさせる。すなわち、ＲＢ制御回路部６０は、テストモード（ＴＭ信号がＨレベル）であり、フラッシュメモリ部８から読み出したデータがＥＣＣ訂正できると判定された場合に、ＲＢ＃端子Ｔ１にＨレベル（論理“１”レベル）を出力させる。
【００８１】
次に、フラッシュメモリＬＳＩ１は、検査装置によりＲＢ＃端子Ｔ１の信号レベル（論理状態）がチェックされ、ＲＢ＃端子Ｔ１が論理“１”レベルか否かを判定される（ステップＳ１０３）。ここで、ＲＢ＃端子Ｔ１が論理“１”レベルである場合に、フラッシュメモリＬＳＩ１は、検査装置によりＥＣＣ訂正が可能（Ｐａｓｓ）であると判定され、ＲＢ＃端子Ｔ１が論理“０”レベルである場合に、フラッシュメモリＬＳＩ１は、検査装置によりＥＣＣ訂正が不可能（Ｆａｉｌ）であると判定され、テスト処理が終了される。
【００８２】
図９〜図１１は、本実施形態におけるフラッシュメモリＬＳＩ１のテスト処理の一例を示すタイムチャートである。
図９は、フラッシュメモリＬＳＩ１において、ＥＣＣ訂正が不可能な場合の第１の例を示している。図９に示す一例は、５１２バイトのデータ領域のうちに、８ビットデータ（単位データ）の不良ビット（１ビット不良）が２回発生した場合である。
この図において、縦軸は、上からＲＥＢ信号、ＴＭ信号、ＩＯ０−７信号、Ｆ１信号、Ｆ２信号、ＣＫＪ信号、ＣＫＦ１信号、ＪＤＧ＿Ｆ１＿１信号、ＪＤＧ＿Ｆ１信号、ＪＤＧ＿Ｆ２信号、ＪＤＧ信号、ＲＳＴ５１２信号、ＲＢＢ信号、ＲＢ＃信号、及び、ＲＢ＃端子のテストストローブ信号（ＳＴＲＢ信号）を示している。また、横軸は時間を示している。
【００８３】
この図において、まず、ＥＣＣ訂正可否判定回路部９を活性化するためのテストモードコマンドがフラッシュメモリＬＳＩ１に供給される。これにより、コマンドＩ／Ｆ部３は、ＴＭ信号（活性化信号）をＨレベルにして、ＥＣＣ訂正可否判定回路部９に出力する。ＴＭ信号がＨレベルになることにより、ＥＣＣ訂正可否判定回路部９の５１２サイクルリセット回路部３０、判定クロック生成部４０、及びＲＢ制御回路部６０が活性化する。
【００８４】
次に、通常動作モードと同様に、リードコマンドがフラッシュメモリＬＳＩ１に供給される。
ここで、時刻ｔ４１において、コンファームコマンド（＃３０）がフラッシュメモリＬＳＩ１に供給されると、フラッシュメモリＬＳＩ１の制御回路部５は、ＮＡＮＤフラッシュメモリアレイ８０からページ単位のデータを読み出し、ページバッファ部８３に一時記憶させる処理を開始し、ＲＢ＃信号にＬレベルを出力させる（時刻ｔ４２）。ここで、なお、「＃ＸＸ」は、１６進数データ形式による表記を示す。
また、時刻ｔ４３において、制御回路部５は、ページバッファ部８３にページ単位のデータを一時記憶させる処理が完了した場合に、ＲＢ＃信号にＨレベルを出力させる。
【００８５】
続いて、ＲＥ＃信号がトグルされると、ＲＥ＃信号の立ち下がりエッジに応じて、Ｙデコーダ部８２が、ページバッファ部８３に一時記憶されているデータを８ビットデータ（単位データ）により、Ｉ／Ｏバッファ／ラッチ部６及びＥＣＣ訂正可否判定回路部９に順次供給する。これにより、Ｉ／Ｏバッファ／ラッチ部６は、ＩＯ０−７端子に読み出したデータを出力する。また、ＥＣＣ訂正可否判定回路部９は、ＥＣＣ訂正が可能であるか否かの判定処理を開始する。
【００８６】
時刻ｔ４４（２サイクル目）において、８ビットの読み出しデータが、“＃０１”であり、ＮＡＮＤフラッシュメモリアレイ８０において、８ビットデータ（単位データ）に、不良ビットが１ビット発生していることを示している。時刻ｔ４４において、単位データ判定回路部２０は、Ｆ１信号をＬレベルからＨレベルに遷移させる。
また、時刻ｔ４５におけるＲＥＢ信号の立ち上がりに同期して（判定クロック生成部４０のＣＫＪ信号に応じて）、アンド回路５２がＣＫＦ１信号にＨパルスを出力し、カウンタ部５００のＤフリップフロップ５４は、出力であるＪＤＧ＿Ｆ１＿１信号がＬレベルからＨレベルに遷移させる。
【００８７】
時刻ｔ４６（５１２サイクル目）において、５１２サイクルリセット回路部３０は、ＲＥＢ信号の立ち下がりに同期して、ＲＳＴ５１２信号にＨパルスを出力して、判定結果ラッチ部５０のカウンタ部５００をリセットする。これにより、ＪＤＧ＿Ｆ１＿１信号がＨレベルからＬレベルに遷移される。
また、時刻ｔ４６において、３サイクル〜５１１サイクルまでの間、不良ビットの発生がないため、判定結果ラッチ部５０は、ＥＣＣ訂正が可能な状態（Ｐａｓｓ状態）を示すＨレベルをＪＤＧ信号に出力し、このＨレベルを保持する。
【００８８】
時刻ｔ４６以降もＲＥ＃信号がトグルされることにより、フラッシュメモリＬＳＩ１は、同様の動作を繰り返えす。
次に、時刻ｔ４７（５１４サイクル目）において、時刻ｔ４４（２サイクル目）と同様に、８ビットの読み出しデータが、“＃０１”となる不良ビット（１ビット）が発生した場合に、単位データ判定回路部２０は、Ｆ１信号をＬレベルからＨレベルに遷移させる。
また、これにより時刻ｔ４８において、カウンタ部５００のＤフリップフロップ５４は、出力であるＪＤＧ＿Ｆ１＿１信号をＬレベルからＨレベルに遷移させる。
【００８９】
次に、時刻ｔ４９（１０２２サイクル目）において、８ビットの読み出しデータが、“＃８０”となる不良ビット（１ビット不良）が発生した場合に、単位データ判定回路部２０は、時刻ｔ４７と同様に、Ｆ１信号をＬレベルからＨレベルに遷移させる。
この場合、５１２バイトのデータ領域の中で２回目の不良ビットの判定であり、時刻ｔ５０において、カウンタ部５００のＤフリップフロップ５５は、出力であるＪＤＧＦ１信号をＬレベルからＨレベルに遷移させる。これにより、判定結果ラッチ部５０は、ＪＤＧ信号をＨレベルからＬレベルに遷移させる。ＲＢ制御回路部６０は、ＪＤＧ信号がＨレベルからＬレベルに遷移したことにより、ＲＢバッファ部７にＲＢ＃端子Ｔ１にＬレベルを出力させる。
【００９０】
その後、時刻ｔ５１（１０２４サイクル目）において、５１２サイクルリセット回路部３０は、ＲＥＢ信号の立ち上がりに同期して、ＲＳＴ５１２信号にＨパルスを出力して、カウンタ部５００をリセットするが、判定結果ラッチ部５０は、ＥＣＣ訂正が不可能な状態（Ｆａｉｌ状態）を示すＪＤＧ信号のＬ状態を保持する。したがって、フラッシュメモリＬＳＩ１は、時刻ｔ５０以降、ＲＢ＃端子にＬレベルを出力し続ける。
１ページ分のデータの読み出しが完了した２０４７サイクル目以降である時刻ｔ５２において、検査装置は、ＲＢ＃端子の論理レベルを取得するストローブ信号（ＳＴＲＢ信号）を出して、ＲＢ＃端子の論理レベルによって、フラッシュメモリＬＳＩ１のＥＣＣ訂正が可能（Ｐａｓｓ）か否かを判定する。ここでは、フラッシュメモリＬＳＩ１は、検査装置によって、ＥＣＣ訂正が不可能である（Ｆａｉｌ）という判定がされる。
時刻ｔ５２において、ＥＣＣ訂正が可能（Ｐａｓｓ）か否かを判定した後、検査装置は、リセットコマンド処理により、テストモードを解除する。これにより、コマンドＩ／Ｆ部３は、ＴＭ信号をＬレベルにして、ＥＣＣ訂正可否判定回路部９に出力する。
【００９１】
図１０は、フラッシュメモリＬＳＩ１において、ＥＣＣ訂正が不可能な場合の第２の例を示している。図１０に示す一例は、５１２バイトのデータ領域のうちに、８ビットデータ（単位データ）に２ビット以上のマルチビット不良が１回発生した場合である。
この図において、縦軸及び横軸は、図９と同様である。
また、図１０における時刻ｔ６１から時刻ｔ６６までの処理は、図９における時刻ｔ４１から時刻ｔ４６までの処理と同様である。
【００９２】
時刻ｔ６７（５１４サイクル目）において、８ビットの読み出しデータが、“＃１１”となる不良ビット（マルチビット不良）が発生した場合に、単位データ判定回路部２０は、Ｆ２信号をＬレベルからＨレベルに遷移させる。これにより時刻ｔ６８において、判定結果ラッチ部５０のアンド回路５１は、判定クロック生成部４０のＣＫＪ信号に応じて、ＪＤＧ＿Ｆ２信号をＬレベルからＨレベルに遷移させる。
これにより、判定結果ラッチ部５０は、ＪＤＧ信号をＨレベルからＬレベルに遷移させる。ＲＢ制御回路部６０は、ＪＤＧ信号がＨレベルからＬレベルに遷移したことにより、ＲＢバッファ部７にＲＢ＃端子Ｔ１にＬレベルを出力させる。
【００９３】
その後、時刻ｔ６９（１０２４サイクル目）において、５１２サイクルリセット回路部３０は、ＲＥＢ信号の立ち下がりに同期して、ＲＳＴ５１２信号にＨパルスを出力して、カウンタ部５００をリセットするが、判定結果ラッチ部５０は、ＥＣＣ訂正が不可能な状態（Ｆａｉｌ状態）を示すＪＤＧ信号のＬ状態を保持する。したがって、フラッシュメモリＬＳＩ１は、時刻ｔ５０以降、ＲＢ＃端子にＬレベルを出力し続ける。
１ページ分のデータの読み出しが完了した２０４７サイクル目以降である時刻ｔ７０において、検査装置は、ＲＢ＃端子の論理レベルを取得するストローブ信号（ＳＴＲＢ信号）を出して、ＲＢ＃端子の論理レベルによって、フラッシュメモリＬＳＩ１のＥＣＣ訂正が可能（Ｐａｓｓ）か否かを判定する。ここでは、フラッシュメモリＬＳＩ１は、検査装置によって、ＥＣＣ訂正が不可能である（Ｆａｉｌ）という判定がされる。
時刻ｔ７０においてＥＣＣ訂正が可能（Ｐａｓｓ）か否かを判定した後、検査装置は、リセットコマンド処理により、テストモードを解除する。これにより、コマンドＩ／Ｆ部３は、ＴＭ信号をＬレベルにして、ＥＣＣ訂正可否判定回路部９に出力する。
【００９４】
図１１は、フラッシュメモリＬＳＩ１において、ＥＣＣ訂正が可能な場合の例を示している。図１１に示す一例は、５１２バイトのデータ領域のうちに、８ビットデータ（単位データ）の不良ビット（１ビット不良）が１回発生した場合である。
この図において、縦軸及び横軸は、図９と同様である。
また、図１１における時刻ｔ７１から時刻ｔ７８までの処理は、図９における時刻ｔ４１から時刻ｔ４８までの処理と同様である。
【００９５】
図１１におけるフローチャートでは、図９の時刻ｔ４９における２回目の８ビットデータ（単位データ）の不良ビット（１ビット不良）がしない。そのため、時刻ｔ７９（１０２４サイクル目）において、時刻ｔ７６と同様に、５１２サイクルリセット回路部３０は、ＲＥＢ信号の立ち下がりに同期して、ＲＳＴ５１２信号にＨパルスを出力して、判定結果ラッチ部５０のカウンタ部５００をリセットする。これにより、ＪＤＧ＿Ｆ１＿１信号がＨレベルからＬレベルに遷移される。
また、時刻ｔ７９において、判定結果ラッチ部５０は、ＥＣＣ訂正が可能な状態（Ｐａｓｓ状態）を示すＨレベルをＪＤＧ信号に出力し、このＨレベルを保持する。これにより、ＲＢ制御回路部６０は、ＲＢバッファ部７にＲＢ＃端子Ｔ１にＨレベルの出力を維持させる。
【００９６】
１ページ分のデータの読み出しが完了した２０４７サイクル目以降である時刻ｔ８０において、検査装置は、ＲＢ＃端子の論理レベルを取得するストローブ信号（ＳＴＲＢ信号）を出して、ＲＢ＃端子の論理レベルによって、フラッシュメモリＬＳＩ１のＥＣＣ訂正が可能（Ｐａｓｓ）か否かを判定する。ここでは、フラッシュメモリＬＳＩ１は、検査装置によって、ＥＣＣ訂正が可能である（Ｐａｓｓ）という判定がされる。
時刻ｔ８０においてＥＣＣ訂正が可能（Ｐａｓｓ）か否かを判定した後、検査装置は、リセットコマンド処理により、テストモードを解除する。これにより、コマンドＩ／Ｆ部３は、ＴＭ信号をＬレベルにして、ＥＣＣ訂正可否判定回路部９に出力する。
【００９７】
以上説明したように、本実施形態におけるフラッシュメモリＬＳＩ１は、フラッシュメモリ部８がデータを記憶し、予め定められたデータ長（ビット数）のデータ領域を複数有する。判定回路部１０は、フラッシュメモリ部８から読み出したデータとデータの期待値とが不一致であるビットを示す不良ビットの数が、予め定められた閾値（例えば１ビット）以下であるか否かを、データ領域ごとに判定する。ＲＢ制御回路部６０は、判定回路部１０が判定した判定結果に応じた出力を出力端子（例えば、ＲＢ＃端子Ｔ１）に出力させる。
すなわち、本実施形態におけるフラッシュメモリＬＳＩ１は、予め定められたデータ長（ビット数）のデータ領域に含まれる不良ビットの数が予め定められた閾値（例えば１ビット）以下であるか否かを、データ領域ごとに内部で判定し、その判定結果を出力端子（例えば、ＲＢ＃端子Ｔ１）に出力する。これにより、検査装置がフラッシュメモリ部８に記憶されているデータを読み出した後に、検査装置が不良ビットの数が予め定められた閾値（例えば１ビット）以下であるかを判定する必要がない。すなわち、検査装置が不良ビットの数をカウント及び、不良ビットの数に基づく判定を行う必要がなくなるので、本実施形態におけるフラッシュメモリＬＳＩ１は、テスト時間を短縮させることができる。
【００９８】
例えば、不良ビットの数が予め定められた閾値（例えば１ビット）以下であるか否かにより、フラッシュメモリ部８のＥＣＣ訂正の可否を判定する場合に、フラッシュメモリＬＳＩ１は、ＥＣＣのエラー訂正を考慮したファンクション試験（テスト）を高速に実行することができる。
【００９９】
なお、一般に検査装置において不良ビットをカウントする場合には、フラッシュメモリＬＳＩ１のフラッシュメモリ部８から読み出したデータを検査装置の記憶部（例えば、フェイルメモリ）に一旦記憶させる必要がある。また、半導体装置において、複数のフラッシュメモリＬＳＩ１を並列にテストする場合がある。このような場合には、複数のフラッシュメモリＬＳＩ１を並列にテストするために、大容量のフェイルメモリが必要になる。
これに対して、本実施形態におけるフラッシュメモリＬＳＩ１では、検査装置が不良ビットの数をカウントする必要がないので、検査装置（ＬＳＩテスタ）の判定用のメモリ（例えばフェイルメモリ）容量を低減することができる。また、判定結果が出力端子（例えば、ＲＢ＃端子Ｔ１）に出力されるため、検査装置によって、簡易に判定することができる。そのため、本実施形態におけるフラッシュメモリＬＳＩ１は、ＥＣＣ訂正の可否を判定する特別な構成を備えた専用のＬＳＩテスト（専用メモリＬＳＩ用テスタ）を用いずに、簡易な構成の検査装置によって、ＥＣＣ訂正の可否を判定するテストを実行することができる。
【０１００】
また、本実施形態では、上述のデータ領域（例えば、５１２バイトのデータ領域）は、予め定められたビット長の単位データ（例えば、８ビットデータ）を複数記憶している。すなわち、上述のデータ領域に記憶されるデータは、予め定められたビット長の単位データを複数含んでいる。そして、判定回路部１０は、単位データ判定回路部２０と判定結果ラッチ部５０とを備えている。単位データ判定回路部２０は、単位データに含まれる不良ビットが閾値（例えば１ビット）以下であるか否かを判定し、当該判定結果（Ｆ２信号）を示す信号を出力する。さらに、単位データ判定回路部２０は、単位データに含まれる不良ビットが閾値以下である場合に、単位データに含まれる不良ビットの数を示す不良ビット数信号（Ｆ１信号）を出力する。また、判定結果ラッチ部５０は、予め定められたデータ長（ビット数）のデータのうちの単位データごとに単位データ判定回路部２０が判定した判定結果及び不良ビット数信号に基づいて、データ領域ごとに予め定められたデータ長（ビット数）のデータに含まれる不良ビットが閾値以下であるか否かを判定し、当該判定結果を保持する。
これにより、判定回路部１０は、単位データ（例えば８ビット）ごとに、不良ビットが閾値（例えば１ビット）以下であるか否かを判定した判定結果に基づいて、データ領域（例えば、５１２バイトのデータ領域）全体の判定を行う。そのため、判定回路部１０は、簡易な回路構成により実現することができる。
【０１０１】
また、本実施形態では、閾値は１ビットであり、単位データ判定回路部２０は、不良ビットカウント部２００を備えている。また、不良ビットカウント部２００は、ＡＬＬ０判定回路２２（第１の判定回路）と、２ビット不良判定回路２１（第２の判定回路）と、信号生成回路２３とを有している。ＡＬＬ０判定回路２２は、全ビットが第１の論理レベル（例えば、論理“０”レベル）である単位データを期待値として、単位データの全ビットが第１の論理レベルであるか否かを判定する。２ビット不良判定回路２１は、単位データの全ビットのうちの、第１の論理レベルを論理反転した第２の論理レベル（例えば、論理“１”レベル）であるビットの数が、１ビット以下であるか否かを判定する。そして、信号生成回路２３は、ＡＬＬ０判定回路２２による判定結果と、２ビット不良判定回路２１による判定結果とに基づいて、不良ビット数信号（Ｆ１信号）を生成する。
【０１０２】
これにより、単位データ判定回路部２０は、単位データの全ビットの論理レベルが一致した状態（不良ビットが０ビットの状態）、１ビットが不一致状態（不良ビットが１ビットの状態）、及び２ビット以上が不一致状態（不良ビットが２ビット以上の状態）の３つの状態に限定して判定を行う。また、単位データ判定回路部２０は、読み出された単位データのビット同士を比較して、不良ビットを検出するため、単位データの期待値を検査装置側から取り込む制御や、フラッシュメモリＬＳＩ１内で自動発生させる必要がない。すなわち、単位データ判定回路部２０は、不良ビットを判定するための期待値データを供給する必要がなく、単位データが例えば、期待値がＡＬＬ“１”又はＡＬＬ“０”において不良ビットが１ビット以下であるか否かを判定することができる。これにより、単位データ判定回路部２０は、簡易な回路構成により、不良ビットが１ビット以下であるか否かを判定することができる。よって、本実施形態におけるフラッシュメモリＬＳＩ１は、簡易な回路構成により、テスト時間を短縮させることができる。
【０１０３】
また、本実施形態では、単位データ判定回路部２０は、２つの不良ビットカウント部（２００、２５０）であって、不良ビットカウント部２００及び不良ビットカウント部２５０を備えている。不良ビットカウント部２００は、第１の判定結果（Ｆ２＿０信号）と第１の不良ビット数信号（Ｆ１＿０信号）とを出力する。不良ビットカウント部２５０は、不良ビットカウント部２００に供給される単位データを論理反転したデータが供給され、第２の判定結果（Ｆ２＿１信号）と第２の不良ビット数信号（Ｆ１＿１信号）とを出力する。すなわち、単位データ判定回路部２０は、２つの不良ビットカウント部（２００、２５０）である不良ビットカウント部２００（第１の不良ビット判定回路）及び不良ビットカウント部２５０（第２の不良ビット判定回路）を備えている。不良ビットカウント部２００は、全ビットが第１の論理レベル（例えば、論理“０”レベル）である単位データを期待値として判定した第１の判定結果（Ｆ２＿０信号）と第１の不良ビット数信号（Ｆ１＿０信号）とを出力する。不良ビットカウント部２５０は、不良ビットカウント部２００に供給される単位データを論理反転したデータが供給され、全ビットが第２の論理レベル（例えば、論理“１”レベル）である単位データを期待値として判定した第２の判定結果（Ｆ２＿１信号）と第２の不良ビット数信号（Ｆ１＿１信号）とを出力する。
【０１０４】
また、単位データ判定回路部２０は、不良ビットカウント部２００による第１の判定結果（Ｆ２＿０信号）及び不良ビットカウント部２５０による第２の判定結果（Ｆ２＿１信号）に基づいて、単位データに含まれる不良ビットが１ビット以下であるか否かを判定する。さらに、単位データ判定回路部２０は、不良ビットカウント部２００から出力される第１の不良ビット数信号（Ｆ１＿０信号）、及び不良ビットカウント部２５０から出力される第２の不良ビット数信号（Ｆ１＿１信号）に基づいて、不良ビット数信号（Ｆ１信号）を生成する。
【０１０５】
これにより、例えば、単位データの期待値ＡＬＬ“０”を不良ビットカウント部２００が判定し、単位データの期待値ＡＬＬ“１”を不良ビットカウント部２５０が判定する。そのため、単位データ判定回路部２０は、単位データの期待値がＡＬＬ“０”である場合と、ＡＬＬ“１”である場合の両方の判定を行うことができる。
【０１０６】
また、本実施形態では、フラッシュメモリＬＳＩ１は、フラッシュメモリ部８からデータを読み出して、読み出したデータを単位データ単位で判定回路部１０に供給させる制御回路部５を備える。また、判定結果ラッチ部５０は、不良ビット数信号（Ｆ１信号）に基づいて、予め定められたデータ長（例えば５１２バイト）のデータに含まれる不良ビットの数をカウントするカウンタ部５００を有している。判定結果ラッチ部５０は、当該カウンタ部５００によってカウントされたカウント値と、単位データ判定回路部２０が判定した判定結果とに基づいて、データ領域ごとに予め定められたデータ長（ビット数）のデータに含まれる不良ビットが閾値（例えば１ビット）以下であるか否かを判定する。また、判定回路部１０は、制御回路部５によってフラッシュメモリ部８から供給される単位データの数が予め定められたデータ長（ビット数）に達するごとに、カウンタ部５００をリセットする５１２サイクルリセット回路部３０を備える。
これにより、制御回路部５がフラッシュメモリ部８からデータを読み出して、単位データ単位で判定回路部１０に供給し、５１２サイクルリセット回路部３０が、予め定められたデータ長（例えば５１２バイト）に達するごとに、カウンタ部５００をリセットする。そのため、フラッシュメモリＬＳＩ１は、複数のデータ領域を連続して、不良ビットが閾値（例えば１ビット）以下であるか否かを判定することができる。よって、本実施形態におけるフラッシュメモリＬＳＩ１は、一度に複数のデータ領域をテストできるので、テスト時間を短縮させることができる。
【０１０７】
なお、本発明は、上記の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の実施形態において、ＥＣＣ訂正可否判定回路部９は、５１２バイトのデータ領域ごとにＥＣＣ訂正の可否を判定する形態を説明したが、これに限定されず、他の
データ長（ビット数）のデータ領域ごとに判定する形態でもよい。
また、上記の実施形態において、単位データを８ビットデータとする形態を説明したが、１６ビットデータ、３２ビットデータなど、他のビット長を適用する形態でもよい。
【０１０８】
また、上記の実施形態において、１ビット訂正のＥＣＣ方式に適用する形態を説明したが、他の訂正方式や冗長救済の方式に適用する形態でもよい。また、ＥＣＣ訂正可否判定回路部９は、予め定められた閾値が１ビットである形態を説明したが、２ビット以上の閾値により判定する形態でもよい。
【０１０９】
また、上記の実施形態において、半導体装置の一例として、フラッシュメモリＬＳＩ１に適用する形態を説明したが、これに限定されない。例えば、ＤＲＡＭ（Dynamic Random Access Memory）などの他のメモリ素子を含む半導体装置に適用してもよい。
また、例えば、ＣＰＵ（Central Processing Unit）、ＭＣＵ（Micro Control Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＡＳＳＰ（Application Specific Standard Product）、メモリ（Memory）等の半導体装置全般に、本発明を適用することができる。このような本発明が適用された半導体装置の製品形態としては、例えば、ＳＯＣ（システムオンチップ）、ＭＣＰ（マルチチップパッケージ）やＰＯＰ（パッケージオンパッケージ）などが挙げられる。これらの任意の製品形態、パッケージ形態を有する半導体装置に対して本発明を適用することができる。
【符号の説明】
【０１１０】
１…フラッシュメモリＬＳＩ、２…アドレスレジスタ／カウンタ部、３…コマンドＩ／Ｆ部、４…コマンドレジスタ部、５…制御回路部、６…Ｉ／Ｏバッファ／ラッチ部、７…ＲＢバッファ部、８…フラッシュメモリ部、９…ＥＣＣ訂正可否判定回路部、１０…判定回路部、２０…単位データ判定回路部、２１…２ビット不良判定回路、２２…ＡＬＬ０判定回路、２３…信号生成回路、３０…５１２サイクルリセット回路部、４０…判定クロック生成部、４１，３０３…Ｄｅｌａｙ回路、４２，６３，７１，２０４，２０９，３０１，３０２，３０４…インバータ回路、４３，５１，５２，２０５，２０６，２１１，２１２，２１３，２１４，２１５，２１６，２１７，３０５…アンド回路、５０…判定結果ラッチ部、５３，５６，２０１，２０２，２０３，２０７，２２１，２２２，２２３，２２４，２２５，２２６，２２７…オア回路、５４，５５，３１０，３１１，３１２，３１３，３１４，３１５，３１６，３１７，３１８…Ｄフリップフロップ、５７，５８…ノア回路、６０…ＲＢ制御回路部、６１，６２，６４，６５，６６…ナンド回路、７２…ＮＭＯＳトランジスタ、８０…メモリセル部、８１…Ｘデコーダ部、８２…Ｙデコーダ部、８３…ページバッファ部、２００，２５０…不良ビットカウント部、２０８…反転バッファ部、５００…カウンタ部
【図１】
2013065376.tif 000003
【図２】
2013065376.tif 000004
【図３】
2013065376.tif 000005
【図４】
2013065376.tif 000006
【図５】
2013065376.tif 000007
【図６】
2013065376.tif 000008
【図７】
2013065376.tif 000009
【図８】
2013065376.tif 000010
【図９】
2013065376.tif 000011
【図１０】
2013065376.tif 000012
【図１１】
2013065376.tif 000013