(57)【要約】【課題】エラー訂正前とエラー訂正後との動作テストを同時に行うことで、テスト時間を短縮でき、さらにテストコストを低減する。【解決手段】書き込みデータをメモリセルアレイ１に記憶すると共に、上記書き込みデータに対してエラー訂正に必要な検査データを生成して検査データメモリセルアレイ２に記憶する。一方、メモリセルアレイ１から読み出したデータと検査データメモリセルアレイ２から読み出した検査データとからシンドローム信号を生成する。そして、シンドローム信号に基づいて、上記読み出したデータをエラー訂正し、エラー訂正後のデータを外部に出力する。また、同時に、上記シンドローム信号に基づいて、エラー訂正前のデータのエラービットの番地を特定する内部エラーＩ／Ｏ番地信号を生成して外部に出力するようにしている。【選択図】    図１
2005004876.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力される一次データを記憶するメモリセルアレイと、
前記一次データに対応する検査データを生成する検査データ生成回路と、
前記検査データを記憶する検査記憶部と、
前記メモリセルアレイに記憶された前記一次データを読み出すことにより得られる読み出しデータに対して、前記検査データに基づいてビットエラーの検出を行い、シンドローム信号を生成するシンドローム生成回路と、
前記シンドローム信号に基づいて、前記読み出しデータのエラーを訂正すると共に、前記ビットエラーが発生した前記メモリセルアレイ内のメモリセルの番地を表す内部エラー番地信号を生成するシンドローム信号処理回路と
を具備することを特徴とする半導体記憶装置。
【請求項２】
前記シンドローム信号処理回路は、前記シンドローム信号に基づいて、前記読み出しデータのエラーの有無を表す内部エラー信号を生成する回路をさらに具備することを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
エラーの監視を開始する旨のエラー監視信号を入力する第１入力部をさらに具備し、
前記シンドローム信号処理回路は、前記エラー監視信号が前記入力部に入力された場合に、前記内部エラー番地信号及び前記内部エラー信号を生成することを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
前記読み出しデータのエラービットが訂正された訂正データを外部へ出力する第１出力部と、
前記内部エラー番地信号を外部へ出力する第２出力部と、
前記内部エラー信号を外部へ出力する第３出力部とをさらに具備することを特徴とする請求項２記載の半導体記憶装置。
【請求項５】
前記検査データは、ハミング符号からなることを特徴とする請求項１記載の半導体記憶装置。
【請求項６】
メモリセルアレイ及びエラー訂正回路を有するメモリマクロと、
前記メモリマクロに書き込むための入力データを生成する入力データ生成回路と、
前記メモリマクロから読み出された出力データと前記入力データ生成回路により生成された入力データとを比較し、前記出力データのエラーの有無を表すエラー信号を生成するエラー信号生成回路と、
前記メモリマクロから出力される、前記メモリセルアレイに記憶された前記入力データを読み出すことにより得られる読み出しデータのビットエラーが発生した前記メモリセルアレイ内のメモリセルのエラー番地を表す内部エラー番地信号を一時的に記憶する内部エラー番地レジスタと
を具備することを特徴とする半導体記憶装置。
【請求項７】
前記メモリマクロから出力される、前記読み出しデータのエラーの有無を表す内部エラー信号を一時的に記憶する内部エラー信号レジスタをさらに具備することを特徴とする請求項６記載の半導体記憶装置。
【請求項８】
エラーの監視を開始する旨のエラー監視信号を生成するエラー監視信号生成回路をさらに具備し、
前記メモリマクロは、前記エラー監視信号が入力された場合に、前記内部エラー番地信号及び前記内部エラー信号を出力することを特徴とする請求項７記載の半導体記憶装置。
【請求項９】
前記入力データを前記メモリマクロが記憶する場所の指定に用いられるアドレスを生成するアドレス生成回路をさらに具備することを特徴とする請求項７記載の半導体記憶装置。
【請求項１０】
前記エラー信号を一時的に記憶するエラー信号レジスタと、
前記アドレスを一時的に記憶するアドレスレジスタとをさらに具備することを特徴とする請求項９記載の半導体記憶装置。
【請求項１１】
前記アドレスと前記エラー信号と前記エラー番地信号と前記内部エラー信号とをシリアルに外部へ出力する出力部をさらに具備することを特徴とする請求項１０記載の半導体記憶装置。
【請求項１２】
メモリセルアレイ及びエラー訂正回路を有する半導体記憶装置の評価方法であって、
入力データを前記半導体記憶装置が記憶する場所の指定に用いられるアドレスを生成するステップと、
前記アドレスを一時的に記憶するステップと、
前記一時的に記憶したアドレスを前記半導体記憶装置に入力するステップと、
前記半導体記憶装置に書き込むための前記入力データを生成するステップと、
前記入力データを前記半導体記憶装置に書き込むステップと、
前記入力データを前記半導体記憶装置から読み出すステップと、
前記半導体記憶装置から読み出された出力データと前記生成された入力データとを比較し、前記出力データのエラーの有無を表すエラー信号を生成するステップと、
前記エラー信号を一時的に記憶するステップと、
前記半導体記憶装置から出力される、前記メモリセルアレイに記憶された前記入力データを読み出すことにより得られる読み出しデータのビットエラーが発生した前記メモリセルアレイ内のメモリセルのエラー番地を表す内部エラー番地信号を一時的に記憶するステップと
を有することを特徴とする半導体記憶装置の評価方法。
【請求項１３】
前記エラー番地信号を一時的に記憶するステップの後に行われ、前記半導体記憶装置から出力される、前記メモリセルアレイに記憶された前記入力データを読み出すことにより得られる読み出しデータのエラーの有無を表す内部エラー信号を一時的に記憶するステップをさらに有することを特徴とする請求項１２記載の半導体記憶装置の評価方法。
【請求項１４】
内部エラー信号を一時的に記憶するステップの後に行われ、前記アドレスと前記エラー信号と前記内部エラー番地信号と前記内部エラー信号とをシリアルに出力するステップをさらに有することを特徴とする請求項１３記載の半導体記憶装置の評価方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）回路を備えた半導体記憶装置とその評価方法に関する。
【０００２】
【従来の技術】
近年、半導体記憶装置の微細化が進められている。しかし、この微細化に伴い、半導体記憶装置が備えるメモリセルのソフトエラーによるセルデータ破壊が問題となっている。この対策としては、エラー符号訂正技術を用いて、破壊されたデータを修復する方法が各種提案されている。その一例として、ＥＣＣ回路をメモリセルアレイと同一チップ上に集積し、ユーザがエラー訂正を意識せずに使用できる半導体記憶装置が非特許文献１に開示されている（非特許文献１参照）。このＥＣＣ回路を備えた半導体記憶装置では、製造工程中に欠陥が生じたメモリセルの記憶データを訂正することができるため、半導体記憶装置の製造歩留まりを向上させることができる。
【０００３】
このように欠陥メモリセルの救済にＥＣＣ回路を用いた場合でも、製造ラインのモニタ及び管理上、エラー訂正前のメモリセルアレイの加工歩留まりをテストすることが必要となる。上記加工歩留まりのテストを行う場合には、例えばエラー訂正を行うか否かを制御する信号であるエラー訂正イネーブル信号を上記半導体記憶装置に入力する。そして、エラー訂正イネーブル信号をハイ（エラー訂正あり）の場合と、エラー訂正イネーブル信号をロー（エラー訂正あり）の場合とに分けてテストを行う。この２回のテスト結果により、前者ではエラー訂正を含めたメモリ機能の問題の有無を、後者では上記半導体記憶装置のエラー訂正前のメモリセルアレイの加工歩留まりをテストすることが可能となる。
【０００４】
また、この種の関連技術として、半導体記憶装置のテストデータを複数蓄積し、パケット形式で出力するものが提案されている（特許文献１）。
【０００５】
【非特許文献１】
ＫＩＹＯＨＩＲＯ  ＦＵＲＵＴＡＮＩ  ｅｔ  ａｌ．，  Ａ  Ｂｕｉｌｔ−Ｉｎ  Ｈａｍｍｉｎｇ  Ｃｏｄｅ  ＥＣＣ  Ｃｉｒｃｕｉｔ  ｆｏｒ  ＤＲＡＭ’ｓ，  ＩＥＥＥ  ＪＯＵＲＮＡＬ  ＯＦ  ＳＯＬＩＤ−ＳＴＡＴＥ  ＣＩＲＣＵＩＴＳ，ＶＯＬ．２４，ＮＯ．１，  ＦＥＢＲＵＡＲＹ  １９８９，  ｐ．５０−５６
【０００６】
【特許文献１】
特開２０００−１４９５９８号公報
【０００７】
【発明が解決しようとする課題】
ところが、メモリセルアレイの加工歩留まりのテストを行う場合、エラー訂正なしの場合とエラー訂正ありの場合についてそれぞれ動作テストを行う必要がある。よって、結果として２回の動作テストが必要となる。このため、メモリテスト時間が長く、テストコストの増大につながるという問題点がある。特に、同一チップ上に搭載した数十個以上のメモリマクロをすべてテストする必要があるシステムＬＳＩ等では、このテスト時間の増大は大きな問題である。
【０００８】
本発明は、上記のような事情に鑑みてなされたもので、エラー訂正前とエラー訂正後との動作テストを同時に行うことで、テスト時間を短縮でき、さらにテストコストを低減することができる半導体記憶装置とその評価方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するために本発明の一側面に係る半導体記憶装置は、外部から入力される一次データを記憶するメモリセルアレイと、前記一次データに対応する検査データを生成する検査データ生成回路と、前記検査データを記憶する検査記憶部と、前記メモリセルアレイに記憶された前記一次データを読み出すことにより得られる読み出しデータに対して、前記検査データに基づいてビットエラーの検出を行い、シンドローム信号を生成するシンドローム生成回路とを備える。
【００１０】
さらに本装置は、前記シンドローム信号に基づいて、前記読み出しデータのエラーを訂正すると共に、前記ビットエラーが発生した前記メモリセルアレイ内のメモリセルの番地を表す内部エラー番地信号を生成するシンドローム信号処理回路を具備する。
【００１１】
また本発明の一側面に係る半導体記憶装置は、メモリセルアレイ及びエラー訂正回路を有するメモリマクロと、前記メモリマクロに書き込むための入力データを生成する入力データ生成回路と、前記メモリマクロから読み出された出力データと前記入力データ生成回路により生成された入力データとを比較し、前記出力データのエラーの有無を表すエラー信号を生成するエラー信号生成回路とを備える。
【００１２】
さらに本回路は、前記メモリマクロから出力される、前記メモリセルアレイに記憶された前記入力データを読み出すことにより得られる読み出しデータのビットエラーが発生した前記メモリセルアレイ内のメモリセルのエラー番地を表す内部エラー番地信号を一時的に記憶する内部エラー番地レジスタを具備する。
【００１３】
また本発明の一側面に係るメモリセルアレイ及びエラー訂正回路を有する半導体記憶装置の評価方法は、入力データを前記半導体記憶装置が記憶する場所の指定に用いられるアドレスを生成するステップと、前記アドレスを一時的に記憶するステップと、前記一時的に記憶したアドレスを前記半導体記憶装置に入力するステップと、前記半導体記憶装置に書き込むための前記入力データを生成するステップと、前記入力データを前記半導体記憶装置に書き込むステップとを有する。
【００１４】
さらに本評価方法は、前記入力データを前記半導体記憶装置から読み出すステップと、前記半導体記憶装置から読み出された出力データと前記生成された入力データとを比較し、前記出力データのエラーの有無を表すエラー信号を生成するステップと、前記エラー信号を一時的に記憶するステップと、前記半導体記憶装置から出力される、前記メモリセルアレイに記憶された前記入力データを読み出すことにより得られる読み出しデータのビットエラーが発生した前記メモリセルアレイ内のメモリセルのエラー番地を表す内部エラー番地信号を一時的に記憶するステップとを有する。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。
【００１６】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る半導体記憶装置１００の回路ブロック図である。
【００１７】
この半導体記憶装置１００は、書き込みデータを記憶するためのメモリセルアレイ１と、エラー訂正に必要な検査データを記憶するための検査データメモリセルアレイ２とを備える。メモリセルアレイ１は、例えば１Ｍビット（８ｋワード×１２８ビット）の容量を持つ。検査データメモリセルアレイ２は、例えば７２ｋビット（８ｋワード×９ビット）の容量を持つ。メモリセルアレイ１と検査データメモリセルアレイ２とは、例えばＳＲＡＭにより構成されるが、これに限定されるものではない。
【００１８】
また上記半導体記憶装置１００は、検査データ生成回路３とシンドローム生成回路４とエラービットセレクタ生成回路５とを備える。この検査データ生成回路３とシンドローム生成回路４とエラービットセレクタ生成回路５とからシンドローム信号処理回路が構成される。
【００１９】
検査データ生成回路３は、外部から書き込まれた入力データに対して、エラー訂正を行うための検査データを生成する。上記検査データは、例えば９ビットのデータにより構成される。また、上記検査データは、例えば１ビットのエラー訂正が可能なハミング符号により構成される。
【００２０】
シンドローム生成回路４は、メモリセルアレイ１に記憶されたデータを読み出すことにより得られる読み出しデータに対して、検査データメモリセルアレイ２から読み出された検査データに基づいてビットエラーの検出を行う。そして、このビットエラーを表すシンドローム信号を生成する。このシンドローム信号は、例えば７ビットのデータにより構成される。
【００２１】
エラービットセレクタ生成回路５は、シンドローム生成回路４により生成されたシンドローム信号から１２８ビットのエラービットセレクタ信号を生成する。このエラービットセレクタ信号は、１２８ビットのうち、シンドローム信号が示すエラービットに対応するビットがハイとなり、残りはローとなる。
【００２２】
さらに上記半導体記憶装置１００は、エラー訂正回路と内部エラーＩ／Ｏ番地生成回路６と内部エラーフラグ生成回路７とを備える。
【００２３】
エラー訂正回路は、トランスファーゲート１６とインバータ回路１７とトランスファーゲート１８とから構成される。エラー訂正回路は、シンドローム信号に基づいて生成されたエラービットセレクタ信号を用いて、メモリセルアレイ１から読み出されたデータのエラー訂正を行う。
【００２４】
内部エラーＩ／Ｏ番地生成回路６は、シンドローム生成回路４により生成されたシンドローム信号に基づいて、ビットエラーが発生したメモリセルアレイ１内のメモリセルの番地を表す内部エラーＩ／Ｏ番地信号を生成する。この内部エラー番地信号は、例えば７ビットのデータにより構成され、１２８ビットからなるメモリセルアレイ１からの読み出しデータのうち、ビットエラーが発生したビットを特定できる信号である。
【００２５】
内部エラーフラグ生成回路７は、シンドローム生成回路４により生成されたシンドローム信号に基づいて、メモリセルアレイ１から読み出されたデータにエラービットが存在するか否かを表す内部エラーフラグを生成する。この内部エラーフラグは、例えば１ビットのフラグにより構成され、エラービットが存在する場合はハイ、エラービットが存在しない場合はローとなる。
【００２６】
なお、内部エラーＩ／Ｏ番地生成回路６と内部エラーフラグ生成回路７とは、入力ピン１２から入力される内部エラーモニタイネーブル信号（ＥＭＥ）がハイの時に活性化される。
【００２７】
さらに上記半導体記憶装置１００は、入力ピン８と、入力ピン９と、入出力ピン１０と、出力ピン１１と、入力ピン１２と、出力ピン１３とを備える。
【００２８】
入力ピン８には、データの記憶場所を指定するアドレス（Ａ０−１２）が入力される。このアドレス（Ａ０−１２）は、例えば１３ビットのデータにより構成される。
【００２９】
入力ピン９には、クロック（ＣＫ）と制御信号とが入力される。この制御信号には、例えばチップイネーブル信号（ＣＥＮ）、ライトイネーブル信号（ＷＥＮ）、アウトプットイネーブル信号（ＯＥＮ）が含まれる。
【００３０】
入出力ピン１０には、半導体記憶装置１００に書き込むための入力データ（Ｉ０−１２７）が入力される。また入出力ピン１０からは、半導体記憶装置１００から外部に出力データ（Ｏ０−１２７）が出力される。
【００３１】
出力ピン１１からは、内部エラーＩ／Ｏ番地生成回路６により生成された内部エラーＩ／Ｏ番地信号が出力される。
【００３２】
入力ピン１２には、内部エラーＩ／Ｏ番地生成回路６と内部エラーフラグ生成回路７とを活性化するための内部エラーモニタイネーブル信号（ＥＭＥ）が入力される。この内部エラーモニタイネーブル信号（ＥＭＥ）は、例えばユーザが直接入力する。また、当該半導体記憶装置１００の周辺回路あるいは当該半導体記憶装置１００が接続されるホストが生成して入力してもよい。
【００３３】
出力ピン１３からは、内部エラーフラグ生成回路７により生成された内部エラーフラグが出力される。
【００３４】
なお、上記入力ピン８，９，１２に入力される各信号は、例えば同じチップ上に集積される回路から入力される。また、例えば半導体記憶装置１００が接続されるホストから入力されてもよい。
【００３５】
次に、このように構成された半導体記憶装置１００の動作を説明する。
【００３６】
半導体記憶装置１００は、入力ピン９にハイレベルのライトイネーブル信号（ＷＥＮ）が入力されると、データ書き込み処理を実行する。半導体記憶装置１００に書き込むための入力データが入出力ピン１０から入力されると、この入力データは入力バッファ１４に入力される。入力バッファ１４は、入力ピン９から入力される制御信号に基づいて１２８ビットの入力データ（ＤＩＮ０−１２７）を出力する。入力バッファ１４から出力された入力データ（ＤＩＮ０−１２７）は、メモリセルアレイ１に書き込まれる。また入力データ（ＤＩＮ０−１２７）は、検査データ生成回路３に入力される。検査データ生成回路３は、入力データ（ＤＩＮ０−１２７）に基づいて、９ビットのハミング符号からなる検査データを生成する。この検査データは、検査データメモリセルアレイ２に書き込まれる。
【００３７】
なお、入力ピン８には、アドレス（Ａ０−１２）が入力される。このアドレス（Ａ０−１２）は、メモリセルアレイ１と検査データメモリセルアレイ２とにそれぞれ入力される。メモリセルアレイ１は、入力データ（ＤＩＮ０−１２７）をアドレス（Ａ０−１２）により指定された場所に記憶する。同様に、検査データメモリセルアレイ２は、検査データをアドレス（Ａ０−１２）により指定された場所に記憶する。
【００３８】
一方、半導体記憶装置１００は、入力ピン９にハイレベルのアウトプットイネーブル信号（ＯＥＮ）とローレベルのＷＥＮ信号が入力されると、データ読み出し処理を実行する。
【００３９】
メモリセルアレイ１から読み出されたデータ（ＤＯＵＴ０−１２７）は、トランスファーゲート１６とインバータ回路１７とに入力される。インバータ回路１７は、入力データを反転して出力する。インバータ回路１７から出力されたデータは、トランスファーゲート１８に入力される。
【００４０】
さらに、メモリセルアレイ１から読み出されたデータ（ＤＯＵＴ０−１２７）と、検査データメモリセルアレイ２から読み出された検査データとは、シンドローム生成回路４に入力される。シンドローム生成回路４は、シンドローム信号（ＳＹ０−６）を生成する。このシンドローム信号（ＳＹ０−６）は、エラービットセレクタ生成回路５と内部エラーＩ／Ｏ番地生成回路６と内部エラーフラグ生成回路７とに入力される。
【００４１】
エラービットセレクタ生成回路５は、１２８ビットのエラービットセレクタ信号を生成する。このエラービットセレクタ信号は、トランスファーゲート１６の制御端子とトランスファーゲート１８の制御端子とに入力される。
【００４２】
トランスファーゲート１６は、制御端子に入力されるエラービットセレクタ信号に従い、入力されるデータ（ＤＯＵＴ０−１２７）を出力する。トランスファーゲート１６は、エラービットセレクタ信号がローの場合に入力データを出力する。
【００４３】
トランスファーゲート１８は、制御端子に入力されるエラービットセレクタ信号に従い、入力データを出力する。トランスファーゲート１８は、エラービットセレクタ信号がハイの場合に入力データを出力する。
【００４４】
すなわち、エラーが発生していないビットは、トランスファーゲート１６を経由するパス“Ａ”を通る。一方、エラーが発生しているビットは、トランスファーゲート１８を経由するパス“Ｂ”を通る。このようにして、エラービットの訂正が行われる。
【００４５】
トランスファーゲート１６及びトランスファーゲート１８によりエラー訂正されたデータは、出力バッファ１５に入力される。出力バッファ１５は、入力ピン９から入力される制御信号に基づいて１２８ビットの出力データ（Ｏ０−１２７）を出力する。この出力データ（Ｏ０−１２７）は、入出力ピン１０から外部に出力される。
【００４６】
内部エラーＩ／Ｏ番地生成回路６は、内部エラーモニタイネーブル信号（ＥＭＥ）が入力された場合に、入力されたシンドローム信号（ＳＹ０−６）に基づいて内部エラーＩ／Ｏ番地信号を生成する。この内部エラーＩ／Ｏ番地信号は、出力ピン１１から外部に出力される。
【００４７】
内部エラーフラグ生成回路７は、内部エラーモニタイネーブル信号（ＥＭＥ）が入力された場合に、入力されたシンドローム信号（ＳＹ０−６）に基づいて内部エラーフラグを生成する。この内部エラーフラグは、出力ピン１３から外部に出力される。
【００４８】
次に、図１に示した半導体記憶装置１００の評価方法について説明する。
【００４９】
図２は、図１に示した半導体記憶装置１００の評価方法を表すフローチャートである。ここでは、例えば半導体記憶装置１００が接続されたホストが評価を行うものとする。これに限定されるものではなく、半導体記憶装置１００と同じチップ上に集積されるＢＩＳＴ（Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔｉｎｇ）回路が評価を行ってもよい。
【００５０】
ホストは、ステップ２ａにおいて、上記半導体記憶装置１００に対してデータの書き込みを指示する制御信号を生成する。次にホストは、ステップ２ａからステップ２ｂに移行して、上記書き込みを指示する制御信号を上記半導体記憶装置１００に入力する。
【００５１】
次にホストは、ステップ２ｂからステップ２ｃに移行して、上記半導体記憶装置１００がデータを記憶する場所を指定するアドレスを生成する。次にホストは、ステップ２ｃからステップ２ｄに移行して、上記アドレスを上記半導体記憶装置１００に入力する。
【００５２】
次にホストは、ステップ２ｄからステップ２ｅに移行して、上記半導体記憶装置１００に書き込むための入力データを生成する。次にホストは、ステップ２ｅからステップ２ｆに移行して、上記入力データを上記半導体記憶装置１００に書き込む。
【００５３】
次にホストは、ステップ２ｆからステップ２ｇに移行して、上記半導体記憶装置１００に対してデータの読み出しを指示する制御信号を生成する。次にホストは、ステップ２ｇからステップ２ｈに移行して、上記読み出しを指示する制御信号を上記半導体記憶装置１００に入力する。
【００５４】
次にホストは、ステップ２ｈからステップ２ｉに移行して、上記生成したアドレスと同じアドレスを生成する。次にホストは、ステップ２ｉからステップ２ｊに移行して、上記同じアドレスを上記半導体記憶装置１００に入力する。
【００５５】
次にホストは、ステップ２ｊからステップ２ｋに移行して、上記書き込んだ入力データを上記半導体記憶装置１００から読み出す。次にホストは、ステップ２ｋからステップ２ｌに移行して、上記半導体記憶装置１００から読み出された出力データと上記生成した入力データとを比較し、上記出力データのエラーの有無を表すエラー信号を生成する。
【００５６】
次にホストは、ステップ２ｌからステップ２ｍに移行して、上記半導体記憶装置１００から出力される内部エラーＩ／Ｏ番地信号を一時的に記憶する。次にホストは、ステップ２ｍからステップ２ｎに移行して、上記半導体記憶装置１００から出力される内部エラー信号を一時的に記憶する。
【００５７】
次にホストは、ステップ２ｎからステップ２ｏに移行して、上記アドレスと上記エラー信号と上記内部エラーＩ／Ｏ番地信号と上記内部エラー信号とを外部にシリアルに出力する。
【００５８】
以上詳述したように第１の実施形態では、書き込みデータをメモリセルアレイ１に記憶すると共に、上記書き込みデータに対してエラー訂正に必要な検査データを生成して検査データメモリセルアレイ２に記憶する。
【００５９】
一方、メモリセルアレイ１から読み出したデータと検査データメモリセルアレイ２から読み出した検査データとからシンドローム信号を生成する。そして、シンドローム信号に基づいて、上記読み出したデータをエラー訂正し、エラー訂正後のデータを外部に出力する。また、同時に、上記シンドローム信号に基づいて、エラー訂正前のデータにエラービットが存在するか否かを表す内部エラーフラグと、エラービットの番地を特定する内部エラーＩ／Ｏ番地信号とを生成して外部に出力するようにしている。
【００６０】
したがって第１の実施形態によれば、エラー訂正後のデータが外部に出力されるため、エラー訂正後の半導体記憶装置１００の動作評価が可能となる。また同時に、内部エラーフラグと内部エラーＩ／Ｏ番地信号とにより、エラー訂正前のメモリセルアレイの動作評価が可能となる。これにより、エラー訂正前とエラー訂正後の動作テストを同時に行うことで、テスト時間を短縮でき、さらにテストコストを低減することができる。
【００６１】
また、内部エラーモニタイネーブル信号（ＥＭＥ）が半導体記憶装置１００に入力された場合に内部エラーＩ／Ｏ番地信号と内部エラーフラグとを出力するようにしているため、テストの種類をユーザが選択することが可能である。
【００６２】
また、内部エラーＩ／Ｏ番地信号により、エラービットが発生したメモリセルアレイ１内のメモリセルの番地を特定することができる。なおセルデータ破壊によるビットエラーは、ソフトエラーにより発生する場合もあるが、この確率は非常に低く、またソフトエラーによるセルデータ破壊が発生しない環境でテストを行うことで、メモリセルアレイ１内の欠陥メモリセルを特定することが可能となる。
【００６３】
なお、第１の実施形態において、半導体記憶装置１００に書き込まれるデータと、検査データとを別々のメモリセルアレイに記憶している。しかし、これに限定されるものではなく、検査データメモリセルアレイ２をメモリセルアレイ１が含む構成としてもよい。
【００６４】
（第２の実施形態）
図３は、本発明の第２の実施形態に係る半導体記憶装置２００のブロック図である。
【００６５】
この半導体記憶装置２００は、上記第１の実施形態で示した半導体記憶装置１００からなるメモリマクロ２１と、このメモリマクロ２１をテストするためのメモリ自己テスト回路であるＢＩＳＴ（Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔｉｎｇ）回路２０とを含む。なお、メモリマクロ２１の構成及び動作は上記第１の実施形態と同様である。
【００６６】
メモリマクロ２１とＢＩＳＴ回路２０とには、例えば半導体記憶装置２００の周辺回路により生成されたクロック（ＣＫ）が入力される。メモリマクロ２１とＢＩＳＴ回路２０とは、このクロック（ＣＫ）に基づいて動作する。
【００６７】
ＢＩＳＴ回路２０は、アドレス発生回路２２と、アドレスレジスタ２３と、制御信号発生回路２４と、制御信号レジスタ２５と、ＥＭＥ発生回路２６と、ＥＭＥレジスタ２７とを備える。
【００６８】
アドレス発生回路２２は、メモリマクロ２１内のメモリセルアレイ１にデータを記憶する場所の指定に用いるアドレス（Ａ０−１２）を生成する。このアドレス（Ａ０−１２）は、例えば１３ビットのデータにより構成される。アドレスレジスタ２３は、アドレス発生回路２２により生成されたアドレス（Ａ０−１２）を一時的に記憶する。
【００６９】
制御信号発生回路２４は、メモリマクロ２１に対してデータの書き込み及びデータの読み出しに必要な制御信号を生成する。この制御信号には、例えばチップイネーブル信号（ＣＥＮ）、ライトイネーブル信号（ＷＥＮ）、アウトプットイネーブル信号（ＯＥＮ）が含まれる。制御信号レジスタ２５は、制御信号発生回路２４により生成された制御信号を一時的に記憶する。
【００７０】
ＥＭＥ発生回路２６は、メモリマクロ２１が備える内部エラーＩ／Ｏ番地生成回路６と内部エラーフラグ生成回路７とを活性化するための内部エラーモニタイネーブル信号（ＥＭＥ）を生成する。ＥＭＥレジスタ２７は、ＥＭＥ発生回路２６により生成された内部エラーモニタイネーブル信号（ＥＭＥ）を一時的に記憶する。
【００７１】
またＢＩＳＴ回路２０は、入力データ発生回路２８と、入力データレジスタ２９と、出力データレジスタ３０と、比較器３１と、エラーフラグレジスタ３２とを備える。
【００７２】
入力データ発生回路２８は、１２８ビットからなる任意の入力データ（Ｉ０−１２７）を生成する。入力データレジスタ２９は、入力データ発生回路２８により生成された入力データ（Ｉ０−１２７）を一時的に記憶する。
【００７３】
出力データレジスタ３０は、メモリマクロ２１から出力されたエラー訂正後の出力データ（Ｏ０−１２７）を一時的に記憶する。
【００７４】
比較器３１は、入力データ発生回路２８から入力された入力データ（Ｉ０−１２７）と、出力データレジスタ３０から入力された出力データ（Ｏ０−１２７）とを比較する。そして、この出力結果をエラーフラグとして出力する。
【００７５】
エラーフラグレジスタ３２は、比較器３１から出力されたエラーフラグを一時的に記憶する。
【００７６】
またＢＩＳＴ回路２０は、内部エラーＩ／Ｏ番地レジスタ３３と内部エラーフラグレジスタ３４と出力部３５とを備える。
【００７７】
内部エラーＩ／Ｏ番地レジスタ３３は、メモリマクロ２１から出力された内部エラーＩ／Ｏ番地信号を一時的に記憶する。内部エラーフラグレジスタ３４は、メモリマクロ２１から出力された内部エラーフラグを一時的に記憶する。
【００７８】
出力部３５は、アドレス（Ａ０−１２）とエラーフラグと内部エラーＩ／Ｏ番地信号と内部エラーフラグとを外部にシリアル出力する。すなわち、アドレスレジスタ２３とエラーフラグレジスタ３２と内部エラーＩ／Ｏ番地レジスタ３３と内部エラーフラグレジスタ３４とがチェーン接続され、各レジスタに記憶されたデータをシリアル出力する。この出力先は、例えば直接ユーザに出力する。また、当該半導体記憶装置２００の周辺回路あるいは当該半導体記憶装置２００が接続されるホストに出力するようにしてもよい。さらに、出力方法は、シリアル出力に限定されるものではなく、各レジスタが記憶するデータごとに出力部を備えるようにしてもよい。
【００７９】
このように構成された半導体記憶装置２００の動作を説明する。
先ず、メモリマクロ２１にデータを書き込む動作を説明する。
【００８０】
制御信号発生回路２４は、チップイネーブル信号（ＣＥＮ）とハイレベルのライトイネーブル信号（ＷＥＮ）とを生成する。このチップイネーブル信号（ＣＥＮ）とライトイネーブル信号（ＷＥＮ）とは、制御信号レジスタ２５に保持される。制御信号レジスタ２５は、クロック（ＣＫ）に同期してチップイネーブル信号（ＣＥＮ）とライトイネーブル信号（ＷＥＮ）とを出力する。制御信号レジスタ２５から出力されたチップイネーブル信号（ＣＥＮ）とライトイネーブル信号（ＷＥＮ）とは、メモリマクロ２１に入力される。これにより、メモリマクロ２１は、データ書き込み処理を実行する。
【００８１】
アドレス発生回路２２は、メモリマクロ２１内のメモリセルアレイ１にデータを記憶する場所の指定に用いるアドレス（Ａ０−１２）を生成する。このアドレス（Ａ０−１２）は、アドレスレジスタ２３に記憶される。アドレスレジスタ２３は、クロック（ＣＫ）に同期してアドレス（Ａ０−１２）を出力する。アドレスレジスタ２３から出力されたアドレス（Ａ０−１２）は、メモリマクロ２１に入力される。
【００８２】
入力データ発生回路２８は、任意の入力データ（Ｉ０−１２７）を生成する。入力データ発生回路２８により生成された入力データ（Ｉ０−１２７）は、入力データレジスタ２９に保持される。入力データレジスタ２９は、クロック（ＣＫ）に同期して入力データ（Ｉ０−１２７）を出力する。入力データレジスタ２９から出力された入力データ（Ｉ０−１２７）は、メモリマクロ２１に入力される。
【００８３】
そして、メモリマクロ２１は、アドレスレジスタ２３から入力されたアドレス（Ａ０−１２）により指定された場所に入力データ（Ｉ０−１２７）を記憶する。
【００８４】
次に、メモリマクロ２１からデータを読み出す動作について説明する。
【００８５】
制御信号発生回路２４は、チップイネーブル信号（ＣＥＮ）とハイレベルのアウトプットイネーブル信号（ＯＥＮ）とローレベルのライトイネーブル信号（ＷＥＮ）を生成する。このチップイネーブル信号（ＣＥＮ）とアウトプットイネーブル信号（ＯＥＮ）とライトイネーブル信号（ＷＥＮ）とは、制御信号レジスタ２５に保持される。制御信号レジスタ２５は、クロック（ＣＫ）に同期してこれらの制御信号を出力する。制御信号レジスタ２５から出力されたチップイネーブル信号（ＣＥＮ）とアウトプットイネーブル信号（ＯＥＮ）とライトイネーブル信号（ＷＥＮ）とは、メモリマクロ２１に入力される。これにより、メモリマクロ２１は、データ読み出し処理を実行する。
【００８６】
アドレス発生回路２２は、上記書き込み時に生成したアドレス（Ａ０−１２）と同じアドレス（Ａ０−１２）を生成する。このアドレス（Ａ０−１２）は、アドレスレジスタ２３に保持される。アドレスレジスタ２３は、クロック（ＣＫ）に同期してアドレス（Ａ０−１２）を出力する。アドレスレジスタ２３から出力されたアドレス（Ａ０−１２）は、メモリマクロ２１に入力される。これによりメモリマクロ２１は、アドレス（Ａ０−１２）により指定された記憶データの出力処理を実行する。
【００８７】
ＥＭＥ発生回路２６は、上記内部エラーモニタイネーブル信号（ＥＭＥ）を生成する。このＥＭＥ信号は、ＥＭＥレジスタ２７に保持される。ＥＭＥレジスタ２７は、クロック（ＣＫ）に同期してＥＭＥ信号を出力する。ＥＭＥレジスタ２７から出力されたＥＭＥ信号は、メモリマクロ２１に入力される。これにより、メモリマクロ２１は、内部エラーＩ／Ｏ番地生成回路６と内部エラーフラグ生成回路７とを活性化させる。
【００８８】
メモリマクロ２１から出力されたエラー訂正後の出力データ（Ｏ０−１２７）は、出力データレジスタ３０に記憶される。出力データレジスタ３０に記憶された出力データ（Ｏ０−１２７）は、比較器３１に入力される。また、入力データ発生回路２８により生成された上記入力データ（Ｉ０−１２７）は、比較器３１に入力される。
【００８９】
比較器３１は、入力データ（Ｉ０−１２７）と出力データ（Ｏ０−１２７）とを比較する。そして、出力データ（Ｏ０−１２７）にエラーが存在するか否かを表すエラーフラグを生成する。このエラーフラグは、例えば１ビットのフラグにより構成され、エラーが存在する場合はハイ、エラーが存在しない場合はローとなる。比較器３１から出力されたエラーフラグは、エラーフラグレジスタ３２に記憶される。
【００９０】
メモリマクロ２１から出力された内部エラーＩ／Ｏ番地信号は、内部エラーＩ／Ｏ番地レジスタ３３に記憶される。また、メモリマクロ２１から出力された内部エラーフラグは、内部エラーフラグレジスタ３４に記憶される。
【００９１】
そして、アドレス（Ａ０−１２）とエラーフラグと内部エラーＩ／Ｏ番地信号と内部エラーフラグとは、出力部３５からシリアル出力される。
【００９２】
次に、図３に示したメモリマクロ２１の評価方法について説明する。
【００９３】
先ずＢＩＳＴ回路２０がメモリマクロ２１にデータを書き込む処理を説明する。図４は、ＢＩＳＴ回路２０がメモリマクロ２１にデータを書き込む処理を表すフローチャートである。
【００９４】
ＢＩＳＴ回路２０は、ステップ４ａにおいてメモリマクロ２１に対してデータの書き込みを指示する制御信号を生成する。次にＢＩＳＴ回路２０は、ステップ４ａからステップ４ｂに移行して、上記書き込みを指示する制御信号を上記メモリマクロ２１に入力する。
【００９５】
次にＢＩＳＴ回路２０は、ステップ４ｂからステップ４ｃに移行して、上記メモリマクロ２１がデータを記憶する場所を指定するアドレスを生成する。次にＢＩＳＴ回路２０は、ステップ４ｃからステップ４ｄに移行して、上記生成したアドレスを一時的に記憶する。次にＢＩＳＴ回路２０は、ステップ４ｄからステップ４ｅに移行して、上記一時的に記憶したアドレスを上記メモリマクロ２１に入力する。
【００９６】
次にＢＩＳＴ回路２０は、ステップ４ｅからステップ４ｆに移行して、上記メモリマクロ２１に書き込むための入力データを生成する。次にＢＩＳＴ回路２０は、ステップ４ｆからステップ４ｇに移行して、上記入力データを上記メモリマクロ２１に書き込む。
【００９７】
次に、ＢＩＳＴ回路２０がメモリマクロ２１からデータを読み出す処理を説明する。図５は、ＢＩＳＴ回路２０がメモリマクロ２１からデータを読み出す処理を表すフローチャートである。
【００９８】
ＢＩＳＴ回路２０は、ステップ５ａにおいて、上記メモリマクロ２１に対してデータの読み出しを指示する制御信号を生成する。次にＢＩＳＴ回路２０は、ステップ５ａからステップ５ｂに移行して、上記読み出しを指示する制御信号を上記メモリマクロ２１に入力する。
【００９９】
次にＢＩＳＴ回路２０は、ステップ５ｂからステップ５ｃに移行して、上記ＥＭＥ信号を生成する。次にＢＩＳＴ回路２０は、ステップ５ｃからステップ５ｄに移行して、上記ＥＭＥ信号を上記メモリマクロ２１に入力する。
【０１００】
次にＢＩＳＴ回路２０は、ステップ５ｄからステップ５ｅに移行して、上記書き込み時に生成したアドレスと同じアドレスを生成する。次にＢＩＳＴ回路２０は、ステップ５ｅからステップ５ｆに移行して、上記同じアドレスを一時的に記憶する。次にＢＩＳＴ回路２０は、ステップ５ｆからステップ５ｇに移行して、上記一時的に記憶したアドレスを上記メモリマクロ２１に入力する。
【０１０１】
次にＢＩＳＴ回路２０は、ステップ５ｇからステップ５ｈに移行して、上記書き込んだ入力データを上記メモリマクロ２１から読み出す。
【０１０２】
次にＢＩＳＴ回路２０は、ステップ５ｈからステップ５ｉに移行して、上記メモリマクロ２１から読み出された出力データと上記生成された入力データとを比較し、上記出力データのエラーの有無を表すエラーフラグを生成する。次にＢＩＳＴ回路２０は、ステップ５ｉからステップ５ｊに移行して、上記生成したエラーフラグを一時的に記憶する。
【０１０３】
次にＢＩＳＴ回路２０は、ステップ５ｊからステップ５ｋに移行して、上記メモリマクロ２１から出力される、上記出力データが上記メモリマクロ２１によりエラー訂正される前のデータにおけるエラー番地を表す内部エラーＩ／Ｏ番地信号を一時的に記憶する。
【０１０４】
次にＢＩＳＴ回路２０は、ステップ５ｋからステップ５ｌに移行して、上記メモリマクロ２１から出力される、上記出力データが上記メモリマクロ２１によりエラー訂正される前のデータにおけるエラーの有無を表す内部エラーフラグを一時的に記憶する。
【０１０５】
次にＢＩＳＴ回路２０は、ステップ５ｌからステップ５ｍに移行して、上記アドレスと上記エラーフラグと上記内部エラーＩ／Ｏ番地信号と上記内部エラーフラグとを外部にシリアルに出力する。
【０１０６】
以上詳述したように第２の実施形態では、アドレスと入力データを生成してメモリマクロ２１に入力し、アドレスにより指定した場所に入力データを書き込む。一方、メモリマクロ２１によりエラー訂正された出力データをメモリマクロ２１から読み出す。そして、入力データと出力データとを比較し、出力データにエラーが存在するか否かを表すエラーフラグを生成する。そして、アドレスと、エラーフラグと、メモリマクロ２１から出力された内部エラーＩ／Ｏ番地信号と、メモリマクロ２１から出力された内部エラーフラグとを半導体記憶装置２００外部にシリアル出力するようにしている。
【０１０７】
したがって第２の実施形態によれば、上記シリアル出力されたデータによって、メモリマクロ２１から出力された出力データにエラーが存在するか否かを評価することができる。また、メモリセルアレイ１から読み出したデータにビットエラーが存在するか否かを評価することができる。
【０１０８】
さらに、ビットエラーが存在する場合、エラービットが発生したメモリセルアレイ１内のメモリセルの番地を特定することができる。このように、ユーザは一度の測定で、メモリマクロ２１の製造歩留まりとメモリセルアレイ１の加工歩留まりとの評価を行うことができる。
【０１０９】
これにより、テスト時間を短縮でき、さらにテストコストを低減することができる。
【０１１０】
この発明は、上記実施形態に限定されるものではなく、その他、本発明の要旨を変更しない範囲において種々変形して実施可能なことは勿論である。
【０１１１】
【発明の効果】
以上詳述したように本発明によれば、エラー訂正前とエラー訂正後との動作テストを同時に行うことで、テスト時間を短縮でき、さらにテストコストを低減することができる半導体記憶装置とその評価方法を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る半導体記憶装置１００の回路ブロック図。
【図２】図１に示した半導体記憶装置１００の評価方法を表すフローチャート。
【図３】本発明の第２の実施形態に係る半導体記憶装置２００のブロック図。
【図４】ＢＩＳＴ回路２０がメモリマクロ２１にデータを書き込む処理を表すフローチャート。
【図５】ＢＩＳＴ回路２０がメモリマクロ２１からデータを読み出す処理を表すフローチャート。
【符号の説明】
１００，２００…半導体記憶装置、１…メモリセルアレイ、２…検査データメモリセルアレイ、３…検査データ生成回路、４…シンドローム生成回路、５…エラービットセレクタ生成回路、６…内部エラーＩ／Ｏ番地生成回路、７…内部エラーフラグ生成回路、８…入力ピン、９…入力ピン、１０…入出力ピン、１１…出力ピン、１２…入力ピン、１３…出力ピン、１４…入力バッファ、１５…出力バッファ、１６…トランスファーゲート、１７…インバータ回路、１８…トランスファーゲート、２０…ＢＩＳＴ回路、２１…メモリマクロ、２２…アドレス発生回路、２３…アドレスレジスタ、２４…制御信号発生回路、２５…制御信号レジスタ、２６…ＥＭＥ発生回路、２７…ＥＭＥレジスタ、２８…入力データ発生回路、２９…入力データレジスタ、３０…出力データレジスタ、３１…比較器、３２…エラーフラグレジスタ、３３…内部エラーＩ／Ｏ番地レジスタ、３４…内部エラーフラグレジスタ、３５…出力部。
【図１】
2005004876.tif 000003
【図２】
2005004876.tif 000004
【図３】
2005004876.tif 000005
【図４】
2005004876.tif 000006
【図５】
2005004876.tif 000007