(57)【要約】【課題】故障箇所の特定が容易な半導体記憶装置を提供する。【解決手段】半導体記憶装置１は、第１及び第２のメモリ２，２０と、第１及び第２のメモリ２，２０間のデータパスと、データパスを第１の方向に転送される第１のデータを格納するレジスタ５１と、データパスを第２の方向に転送される第２のデータと、レジスタ５１に格納された第１のデータとを比較することで、故障箇所を検知する比較回路５０とを含む。【選択図】      図９
2012128922.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２のメモリと、
前記第１及び第２のメモリ間のデータパスと、
前記データパスを第１の方向に転送される第１のデータを格納するレジスタと、
前記データパスを第２の方向に転送される第２のデータと、前記レジスタに格納された第１のデータとを比較することで、故障箇所を検知する比較回路と、
を具備することを特徴とする半導体記憶装置。
【請求項２】
テストモードにおいて、前記第１のメモリ、前記第２のメモリ、及び前記第１のメモリの順にデータを転送する制御回路をさらに具備することを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
メモリと、
前記メモリに格納されたデータのエラーを訂正するＥＣＣ回路と、
前記メモリ及び前記ＥＣＣ間のデータパスと、
前記データパスを第１の方向に転送される第１のデータを格納するレジスタと、
前記データパスを第２の方向に転送される第２のデータと、前記レジスタに格納された第１のデータとを比較することで、故障箇所を検知する比較回路と、
を具備することを特徴とする半導体記憶装置。
【請求項４】
テストモードにおいて、前記メモリ、前記ＥＣＣ回路、及び前記メモリの順にデータを転送する制御回路をさらに具備することを特徴とする請求項３に記載の半導体記憶装置。
【請求項５】
第１及び第２のメモリと、
前記第１及び第２のメモリ間のデータパスと、
前記データパスに設けられたラッチ回路と、
前記ラッチ回路に入力される第１のデータと、前記ラッチ回路から出力される第２のデータとを比較することで、故障箇所を検知する比較回路と、
を具備することを特徴とする半導体記憶装置。
【請求項６】
前記比較回路から送られるフラグを受け、このフラグに基づいて故障箇所の検知結果を出力する出力回路をさらに具備することを特徴とする請求項１乃至５のいずれかに記載の半導体記憶装置。
【請求項７】
レイテンシが異なる第１及び第２のメモリを有する半導体記憶装置のテスト方法であって、
前記第１のメモリ、前記第２のメモリ、及び前記第１のメモリの順に経由する第１のデータパスにデータを転送する工程と、
前記第１のメモリから前記第２のメモリへの第２のデータパスにデータを転送する工程と、
前記第２のメモリから前記第１のメモリへの第３のデータパスにデータを転送する工程と、
前記第１乃至第３のデータパスのそれぞれに対して、転送前後のデータを比較する工程と、
前記比較結果に基づいて、故障箇所を検知する工程と、
を具備することを特徴とする半導体記憶装置のテスト方法。
【請求項８】
メモリと、前記メモリに格納されたデータのエラーを訂正するＥＣＣ回路とを有する半導体記憶装置のテスト方法であって、
前記メモリ、前記ＥＣＣ回路、及び前記メモリの順に経由する第１のデータパスにデータを転送する工程と、
前記メモリから前記ＥＣＣ回路への第２のデータパスにデータを転送する工程と、
前記ＥＣＣ回路から前記メモリへの第３のデータパスにデータを転送する工程と、
前記第１乃至第３のデータパスのそれぞれに対して、転送前後のデータを比較する工程と、
前記比較結果に基づいて、故障箇所を検知する工程と、
を具備することを特徴とする半導体記憶装置のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置及びそのテスト方法に関する。
【背景技術】
【０００２】
種類の異なるメモリを１チップに集積したシステムＬＳＩが進展してきている。このような半導体記憶装置は、内部に複数のデータパスを有している。半導体記憶装置の故障箇所を検知する手法としては、内部信号をプローブし、検査箇所全ての結果をまとめて解析している。しかし、この手法で故障箇所を特定する場合、故障解析に時間がかかってしまう。
【０００３】
また、複数のメモリを１チップで構成した場合、チップ内のデータパスは外部から視認できない。このため、検査結果を解析しても故障箇所の特定が困難である。故障箇所が特定できない場合、そのチップは不良品となり、歩留まりが低下してしまう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−９６４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
実施形態は、故障箇所の特定が容易な半導体記憶装置及びそのテスト方法を提供する。
【課題を解決するための手段】
【０００６】
実施形態に係る半導体記憶装置は、第１及び第２のメモリと、前記第１及び第２のメモリ間のデータパスと、前記データパスを第１の方向に転送される第１のデータを格納するレジスタと、前記データパスを第２の方向に転送される第２のデータと、前記レジスタに格納された第１のデータとを比較することで、故障箇所を検知する比較回路とを具備する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係るメモリシステム１の構成を示すブロック図。
【図２】メモリセルアレイ１０の構成を示す回路図。
【図３】メモリシステム１のテスト動作を実現するためのブロック図。
【図４】テストフロー（１）を説明するフローチャート。
【図５】テストフロー（２）を説明するフローチャート。
【図６】テストフロー（３）を説明するフローチャート。
【図７】テストフロー（４）を説明するフローチャート。
【図８】テストフロー（５）を説明するフローチャート。
【図９】第２の実施形態に係るメモリシステム１の構成を示すブロック図。
【図１０】比較回路５０の構成を示す回路図。
【図１１】出力回路５４の構成を示す回路図。
【図１２】テストフロー（６）を説明するフローチャート。
【図１３】第３の実施形態に係るメモリシステム１の構成を示すブロック図。
【図１４】出力回路５８の構成を示す回路図。
【図１５】テストフロー（７）を説明するフローチャート。
【図１６】テストフロー（８）を説明するフローチャート。
【発明を実施するための形態】
【０００８】
以下、実施形態について図面を参照して説明する。ただし、図面は模式的または概念的なものであり、各図面の寸法および比率などは必ずしも現実のものと同一とは限らないことに留意すべきである。以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【０００９】
［第１の実施形態］
複数種類のメモリを１チップに集積した半導体記憶装置の一例として、ＯｎｅＮＡＮＤ（登録商標）がある。このＯｎｅＮＡＮＤは、主記憶部としてのＮＡＮＤ型フラッシュメモリと、バッファ部としてのＳＲＡＭとを１チップで集積したものである。本実施形態では、複数種類のメモリを１チップに集積した半導体記憶装置（メモリシステム）としてＯｎｅＮＡＮＤを例に挙げて説明する。
【００１０】
＜１．メモリシステム１の構成＞
図１は、第１の実施形態に係るメモリシステム（ＯｎｅＮＡＮＤ）１の構成を示すブロック図である。メモリシステム１は、ＮＡＮＤ型フラッシュメモリ２、ＲＡＭ部３、及びコントローラ４を備えている。ＮＡＮＤ型フラッシュメモリ２、ＲＡＭ部３、及びコントローラ４は、同一の半導体基板上に形成され、１つのチップに集積されている。以下、メモリシステム１を構成する各モジュールについて詳細に説明する。
【００１１】
＜１−１．ＮＡＮＤ型フラッシュメモリ２＞
ＮＡＮＤ型フラッシュメモリ２は、メモリシステム１の主記憶部として機能する。ＮＡＮＤ型フラッシュメモリ２は、メモリセルアレイ（NAND Cell Array）１０、ロウデコーダ（Row Dec.）１１、ＮＡＮＤページバッファ１２、電圧発生回路（Voltage Supply）１３、ＮＡＮＤシーケンサ１４、及びオシレータ（ＯＳＣ）１５，１６を備えている。
【００１２】
メモリセルアレイ１０は、複数のメモリセルトランジスタを備えている。図２は、メモリセルアレイ１０の構成を示す回路図である。メモリセルアレイ１０は、複数のメモリセルユニットＣＵを備えている。各メモリセルユニットＣＵは、複数個のメモリセルトランジスタＭＴと、２個の選択トランジスタＳＴ１、ＳＴ２とから構成されている。メモリセルトランジスタＭＴは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（例えば浮遊ゲート電極）と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極とを有する積層ゲート構造を備えている。メモリセルトランジスタＭＴは、浮遊ゲート構造に限らず、電荷蓄積層としての絶縁膜（例えば、窒化膜）に電子をトラップさせる方式を用いたＭＯＮＯＳ（Metal Oxide Nitride Oxide Silicon）構造であっても良い。
【００１３】
１個のメモリセルユニットＣＵ内で隣接するメモリセルトランジスタＭＴ同士の電流経路は直列接続されている。すなわち、（ｍ＋１）個のメモリセルトランジスタＭＴは、隣接するもの同士で拡散領域（ソース領域若しくはドレイン領域）を共有するような形でカラム方向に直列接続される。直列接続されたメモリセルトランジスタＭＴの一端側のドレインは選択トランジスタＳＴ１のソースに接続され、他端側のソースは選択トランジスタＳＴ２のドレインに接続されている。
【００１４】
同一行にあるメモリセルトランジスタＭＴの各制御ゲート電極は、複数のワード線ＷＬ０〜ＷＬｍのいずれかに共通接続されている。同一行にある選択トランジスタＳＴ１，ＳＴ２の各ゲート電極は、選択ゲート線ＳＧＤ，ＳＧＳにそれぞれ共通接続されている。各選択トランジスタＳＴ１のドレインは、複数のビット線ＢＬ０〜ＢＬｎのいずれかに接続されている。選択トランジスタＳＴ２のソースは、ソース線ＣＥＬＳＲＣに共通接続されている。
【００１５】
同一のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴはページを構成する。データのプログラム及び読み出しは、１つのページ内のメモリセルトランジスタＭＴに対して一括して行なわれる。また、メモリセルアレイ１０は、複数のページのデータが一括して消去されるように構成されており、この消去の単位がブロックである。図２には１個のブロックを抽出して示しているが、実際には、メモリセルアレイ１０は、複数個のブロックを備えている。
【００１６】
ビット線ＢＬは、ブロック間で、選択トランジスタＳＴ１のドレインを共通接続している。つまり、複数のブロック内において同一列にあるメモリセルユニットＣＵは、同一のビット線ＢＬに接続される。
【００１７】
各メモリセルトランジスタＭＴは、例えば、浮遊ゲート電極に注入された電子の多寡による閾値電圧の変化に応じて、１ビットのデータを記憶することが可能である。閾値電圧の制御を細分化し、各メモリセルトランジスタＭＴに２ビット以上のデータを記憶する構成としても良い。
【００１８】
図１において、ロウデコーダ１１は、データの書き込み、読み出し、及び消去の際に、ワード線ＷＬ０〜ＷＬｍ、及び選択ゲート線ＳＧＤ、ＳＧＳを選択する。そして、必要な電圧をワード線ＷＬ０〜ＷＬｍ、及び選択ゲート線ＳＧＤ、ＳＧＳに印加する。
【００１９】
ＮＡＮＤページバッファ１２は、メモリセルアレイ１０のページと同じ大きさのデータを保持できるデータラッチを備えている。すなわち、ＮＡＮＤページバッファ１２は、読み出しの際はメモリセルアレイ１０から読み出された１ページ分のデータを一時的に格納し、書き込みの際はメモリセルアレイ１０に書き込むべき１ページ分のデータを一時的に格納する。また、ＮＡＮＤページバッファ１２は、書き込みデータをメモリセルアレイ１０に書き込み、かつメモリセルアレイ１０からデータを読み出すセンスアンプを含んでいる。
【００２０】
電圧発生回路１３は、データの書き込み、読み出し、及び消去に必要な電圧を生成し、この電圧をロウデコーダ１１などに供給する。
【００２１】
ＮＡＮＤシーケンサ１４は、ＮＡＮＤ型フラッシュメモリ２全体の動作を司る。すなわち、ＮＡＮＤシーケンサ１４は、コントローラ４から各種の命令を受けると、これに応答して、データの書き込み、読み出し、及び消去などのシーケンスを実行する。そして、このシーケンスに従って、電圧発生回路１３やページバッファ１２の動作を制御する。
【００２２】
オシレータ１５は、内部クロックＩＣＬＫを生成し、この内部クロックＩＣＬＫをＮＡＮＤシーケンサ１４に供給する。ＮＡＮＤシーケンサ１４は、この内部クロックＩＣＬＫに同期して動作する。オシレータ１６は、内部クロックＡＣＬＫを生成し、この内部クロックＡＣＬＫをコントローラ４やＲＡＭ部３へ供給する。内部クロックＡＣＬＫは、コントローラ４やＲＡＭ部３が動作するための基準クロックである。
【００２３】
＜１−２．ＲＡＭ部３＞
次に、図１に示したＲＡＭ部３の構成について説明する。ＲＡＭ部３は、ＳＲＡＭコア５、ＥＣＣ（Error Checking and Correcting）バッファ２５、ＥＣＣエンジン２６、バーストバッファ２７Ａ，２７Ｂ、インターフェース（Ｉ／Ｆ）２８、及びアクセスコントローラ２９を備えている。
【００２４】
メモリシステム１では、ＮＡＮＤ型フラッシュメモリ２が主記憶部として機能し、ＲＡＭ部３のＳＲＡＭコア５がメモリバッファとして機能する。従って、ＮＡＮＤ型フラッシュメモリ２からデータを外部に読み出すには、まずメモリセルアレイ１０から読み出されたデータが、ＮＡＮＤページバッファ１２を介してＳＲＡＭコア５に格納される。その後、ＳＲＡＭコア５内のデータがインターフェース２８に転送されて、外部に出力される。他方、データをＮＡＮＤ型フラッシュメモリ２に記憶させるには、まず外部から入力されたデータが、インターフェース２８を介してＳＲＡＭコア５に格納される。その後、ＳＲＡＭコア５内のデータがＮＡＮＤページバッファ１２へ転送されて、メモリセルアレイ１０に書き込まれる。
【００２５】
以下の説明では、データがメモリセルアレイ１０から読み出されてから、ＮＡＮＤページバッファ１２を介してＳＲＡＭコア５に転送されるまでの動作を、データの“ロード（load）”と呼ぶ。また、ＳＲＡＭコア５内のデータが、インターフェース２８に転送されるまでの動作を、データの“読み出し（read）”と呼ぶ。
【００２６】
また、ＮＡＮＤ型フラッシュメモリ２に記憶させるべきデータが、インターフェース２８からＳＲＡＭコア５に転送されるまでの動作を、データの“書き込み（write）”と呼ぶ。また、ＳＲＡＭコア５内のデータがＮＡＮＤページバッファ１２を介してメモリセルアレイ１０に書き込まれるまでの動作を、データの“プログラム（program）”と呼ぶ。
【００２７】
ＳＲＡＭコア５は、複数のＳＲＡＭ２０（例えば３個のＳＲＡＭ２０Ａ〜２０Ｃ
）、及びＤＱバッファ２４を備えている。ＤＱバッファ２４は、ＳＲＡＭ２０Ａ〜２０Ｃからデータを読み出す際、及びＳＲＡＭ２０Ａ〜２０Ｃへデータを書き込む際に、データを一時的に格納する。
【００２８】
各ＳＲＡＭ２０は、メモリセルアレイ（SRAM Cell Array）２１、ロウデコーダ（Row Dec.）２２、及びセンスアンプ（Ｓ／Ａ）２３を備えている。メモリセルアレイ２１は、複数のワード線と複数のビット線対との交差領域にマトリクス状に配置された複数のメモリセル（ＳＲＡＭセル）を備えている。ロウデコーダ２２は、メモリセルアレイ２１内の特定のワード線を選択する。センスアンプ２３は、ＳＲＡＭセルからのデータを検知及び増幅し、また、ＤＱバッファ２４内のデータをＳＲＡＭセルに書き込む際の負荷としても機能する。
【００２９】
本実施形態の場合、例えば、ＳＲＡＭ２０Ａはバンク０の１バンク（１ＫＢ）で構成されたＢｏｏｔＲＡＭとして機能するバッファメモリであり、ＳＲＡＭ２０Ｂはバンク０，１の２バンク（２ＫＢ）で構成されたＤａｔａＲＡＭ０として機能するバッファメモリであり、ＳＲＡＭ２０Ｃはバンク０，１の２バンク（２ＫＢ）で構成されたＤａｔａＲＡＭ１として機能するバッファメモリである。なお、ＤａｔａＲＡＭは２つ（ＤａｔａＲＡＭ０，１）に限らず、さらに増設することも可能である。
【００３０】
ＥＣＣバッファ２５は、ＮＡＮＤデータバスによってＮＡＮＤページバッファ１２と接続され、ＥＣＣデータバスによってＤＱバッファ２４と接続される。ＥＣＣバッファ２５は、ＥＣＣ処理（ロード時は誤り訂正、プログラム時はパリティ生成）のために一時的にデータを格納する。
【００３１】
ＥＣＣエンジン２６は、ＥＣＣバッファ２５に格納されたデータを用いて、エラーの検出及び訂正を行う。具体的には、ＥＣＣエンジン２６は、ＥＣＣバッファ２５に入力されたデータ（Data）の誤り訂正し、訂正したデータ（Correct）を再びＥＣＣバッファ２５に送る。ＥＣＣバッファ２５及びＥＣＣエンジン２６からＥＣＣ回路が構成される。
【００３２】
バーストバッファ２７Ａ，２７Ｂは、例えば１６ビット幅を有するＤＩＮ／ＤＯＵＴバスによりインターフェース２８と接続され、RAM/RegisterデータバスによりＤＱバッファ２４及びコントローラ４と接続されている。そして、バーストバッファ２７Ａ，２７Ｂはそれぞれ、外部からインターフェース２８を介して入力されるデータ、またはＤＱバッファ２４から送られるデータを、一時的に格納する。
【００３３】
インターフェース２８は、ＮＯＲ型フラッシュメモリと同様のインターフェース規格をサポートしており、メモリシステム１外部のホスト機器との間で、データ、制御信号、及びアドレス等の様々な信号の受け渡しを行なう。制御信号の一例は、メモリシステム１全体をイネーブルにするチップイネーブル信号／ＣＥ、アドレスをラッチさせるためのアドレスバリッド信号／ＡＶＤ、バースト読み出し用のクロックＣＬＫ、書き込み動作をイネーブルにするためのライトイネーブル信号／ＷＥ、及びデータの外部への出力をイネーブルにするためのアウトプットイネーブル信号／ＯＥなどである。また、インターフェース２８は、ホスト機器からの書き込み要求及び読み出し要求などに係る制御信号をアクセスコントローラ２９へ送る。
【００３４】
アクセスコントローラ２９は、ホスト機器の要求を満たす動作を実行するように、ＳＲＡＭコア５及びコントローラ４を制御する。具体的には、アクセスコントローラ２９は、ホスト機器の要求に応じて、ＳＲＡＭコア５とコントローラ４の後述するレジスタ３０とのいずれかをアクティブ状態にする。そして、ＳＲＡＭコア５またはレジスタ３０に対する書き込みコマンドまたは読み出しコマンド（Write/Read）を発行する。これらの制御により、ＳＲＡＭコア５及びコントローラ４は動作を開始する。
【００３５】
＜１−３．コントローラ４＞
コントローラ４は、メモリシステム１全体の動作を司る。コントローラ４は、レジスタ３０、コマンドユーザインターフェース（ＣＵＩ）３１、ステートマシン３２、ＮＡＮＤアドレス／コマンド発生回路３３、及びＳＲＡＭアドレス／タイミング発生回路（SRAM Add/Timing）３４を備えている。
【００３６】
レジスタ３０は、アクセスコントローラ２９からのコマンドに応じて、ファンクションの動作状態を設定するために使用される。具体的には、レジスタ３０は、例えば読み出しコマンドや書き込みコマンドを保持する。
【００３７】
コマンドユーザインターフェース３１は、所定のコマンドがレジスタ３０に保持されることで、メモリシステム１に対してファンクション実行コマンドが与えられたことを認識する。そして、内部コマンド信号（Command）をステートマシン３２へ送る。
【００３８】
ステートマシン３２は、コマンドユーザインターフェース３１から与えられる内部コマンド信号に基づいて、メモリシステム１内部におけるシーケンス動作を制御する。ステートマシン３２がサポートするファンクションは、書き込み、読み出し、及び消去を含め多数のものがある。ステートマシン３２は、これらのファンクションを実行するように、ＮＡＮＤ型フラッシュメモリ２及びＲＡＭ部３の動作を制御する。
【００３９】
アドレス／コマンド発生回路３３は、ステートマシン３２の制御に基づいてＮＡＮＤ型フラッシュメモリ２の動作を制御する。具体的には、アドレスやコマンド（Write/Read/Load）等を生成し、これらをＮＡＮＤ型フラッシュメモリ２へ送る。
【００４０】
アドレス／タイミング発生回路３４は、ステートマシン３２の制御に基づいてＲＡＭ部３の動作を制御する。具体的には、ＲＡＭ部３において必要なアドレスやコマンドを発行し、これらをアクセスコントローラ２９及びＥＣＣエンジン２６へ送る。
【００４１】
図１に示したメモリシステム１において、ＮＡＮＤ型フラッシュメモリ２は、読み出し時間及び書き込み時間が遅く、一方で、ＳＲＡＭ２０は、ＮＡＮＤ型フラッシュメモリ２に比べて、読み出し時間及び書き込み時間が速い。すなわち、ＮＡＮＤ型フラッシュメモリ２及びＳＲＡＭ２０は、レイテンシが異なる。このように、レイテンシの異なる２種類のメモリを１チップに集積することで、レイテンシの遅いメモリ（ＮＡＮＤ型フラッシュメモリ２）の処理速度を、外部（ホスト機）からの見かけ上、高速化することができる。
【００４２】
＜２．メモリシステム１のテスト動作＞
次に、メモリシステム１のテスト動作について説明する。図３は、メモリシステム（ＯｎｅＮＡＮＤ）１のテスト動作を実現するためのブロック図である。図３には、図１のうちテスト動作に特に関わるブロックを抽出して示している。ＮＡＮＤ型フラッシュメモリ２には、ＢＩＳＴ（Built-In Self Test）テスタ４０が接続されている。ＢＩＳＴテスタ４０は、ＮＡＮＤ型フラッシュメモリ２（具体的には、ＮＡＮＤページバッファ１２）に直接にデータを書き込んだり、ＮＡＮＤページバッファ１２から直接にデータを読み出したりする。また、ＢＩＳＴテスタ４０は、メモリシステム１にコマンドを発行する。
【００４３】
メモリシステム１には、インターフェース２８を介して、ＯｎｅＮＡＮＤテスタ４１が接続されている。ＯｎｅＮＡＮＤテスタ４１は、ＯｎｅＮＡＮＤチップからなるメモリシステム１が所望の動作を行うことができるかをテストするものである。ＯｎｅＮＡＮＤテスタ４１は、インターフェース２８を介して、ＳＲＡＭコア５にデータを書き込んだり、ＳＲＡＭコア５からデータを読み出したりする。また、ＯｎｅＮＡＮＤテスタ４１は、メモリシステム１にコマンドを発行する。
【００４４】
以下に、メモリシステム１の故障箇所を検知及び特定するための各種テストフローについて説明する。  
＜２−１．テストフロー（１）＞
図４は、テストフロー（１）を説明するフローチャートである。テストフロー（１）は、「ＮＡＮＤページバッファ→ＥＣＣ→ＳＲＡＭ→ＥＣＣ→ＮＡＮＤページバッファ」のデータパスで発生した故障を検知するためのものである。本実施形態で言う故障には、配線、素子、及び回路で発生した短絡、開放、及び接地や、これらの相互間を接続する配線で発生した短絡、開放、及び接地が含まれる。
【００４５】
まず、ＢＩＳＴテスタ４０は、メモリシステム１に、テストモードに入るためのコマンドを発行する（ステップＳ１００）。このコマンドを受けて、ステートマシン３２は、テストモードであることを認識し、テストモードに入る。ステートマシン３２は、テストモードを行うための各種機能を有している。続いて、ＢＩＳＴテスタ４０は、ＮＡＮＤページバッファ１２に直接にデータを書き込む（ステップＳ１０１）。メモリシステム１は、テストモード以外の通常の動作モードでは、インターフェース２８を介してホスト機器とデータをやり取りするが、テストモードに入ることで、ＮＡＮＤ型フラッシュメモリ２（主にＮＡＮＤページバッファ１２）を介して外部とデータのやり取りを可能とする機能を有している。
【００４６】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１にロードコマンドを発行する（ステップＳ１０２）。ロードコマンドを受けて、コントローラ４は、ロード動作を実行する。すなわち、ＮＡＮＤページバッファ１２は、ＮＡＮＤデータバスを介して、ＥＣＣバッファ２５にデータを転送する（ステップＳ１０３）。続いて、ＥＣＣバッファ２５は、ＥＣＣデータバスを介して、ＳＲＡＭコア５にデータを転送する（ステップＳ１０４）。この時、ＥＣＣエンジン２６によるエラー訂正は行われない。このＥＣＣエンジン２６の処理を停止する設定は、ＢＩＳＴテスタ４０からメモリシステム１に所定のフラグを設定することで実現される。
【００４７】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１にプログラムコマンドを発行する（ステップＳ１０５）。このプログラムコマンドを受けて、コントローラ４は、プログラム動作を実行する。すなわち、ＳＲＡＭコア５は、ＥＣＣデータバスを介して、ＥＣＣバッファ２５にデータを転送する（ステップＳ１０６）。続いて、ＥＣＣバッファ２５は、ＮＡＮＤデータバスを介して、ＮＡＮＤページバッファ１２にデータを転送する（ステップＳ１０７）。この時、ＥＣＣエンジン２６によるパリティ生成は行われない。このＥＣＣエンジン２６の処理を停止する設定は、ＯｎｅＮＡＮＤテスタ４１からメモリシステム１に所定のフラグを設定することで実現される。
【００４８】
続いて、ＢＩＳＴテスタ４０は、ＮＡＮＤページバッファ１２から直接にデータを読み出す（ステップＳ１０８）。続いて、ＢＩＳＴテスタ４０は、ステップＳ１０１でＮＡＮＤページバッファ１２に書き込んだ第１のデータと、ステップＳ１０８でＮＡＮＤページバッファ１２から読み出した第２のデータとを比較する（ステップＳ１０９）。
【００４９】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１に、テストモードを抜けるためのコマンドを発行する。このコマンドを受けて、ステートマシン３２は、テストモードが終了したことを認識し、テストモードを抜ける（ステップＳ１１０）。
【００５０】
＜２−２．テストフロー（２）＞
図５は、テストフロー（２）を説明するフローチャートである。テストフロー（２）は、「ＮＡＮＤページバッファ→ＥＣＣ→ＳＲＡＭ」のデータパスで発生した故障を検知するためのものである。
【００５１】
図５のステップＳ２００〜Ｓ２０４は、図４のステップＳ１００〜Ｓ１０４と同じである。続いて、ＢＩＳＴテスタ４０は、メモリシステム１に、テストモードを抜けるためのコマンドを発行する。このコマンドを受けて、ステートマシン３２は、テストモードが終了したことを認識し、テストモードを抜ける（ステップＳ２０５）。
【００５２】
続いて、ＯｎｅＮＡＮＤテスタ４１は、メモリシステム１に読み出しコマンドを発行し、ＳＲＡＭコア５からデータを読み出す（ステップＳ２０６）。続いて、ＢＩＳＴテスタ４０は、ステップＳ２０１でＮＡＮＤページバッファ１２に書き込んだ第１のデータと、ステップＳ２０６でＳＲＡＭコア５から読み出した第２のデータとを比較する（ステップＳ２０７）。
【００５３】
＜２−３．テストフロー（３）＞
図６は、テストフロー（３）を説明するフローチャートである。テストフロー（３）は、「ＳＲＡＭ→ＥＣＣ→ＮＡＮＤページバッファ」のデータパスで発生した故障を検知するためのものである。
【００５４】
まず、ＯｎｅＮＡＮＤテスタ４１は、メモリシステム１に書き込みコマンドを発行し、ＳＲＡＭコア５にデータを書き込む（ステップＳ３００）。続いて、ＯｎｅＮＡＮＤテスタ４１は、メモリシステム１にプログラムコマンドを発行する（ステップＳ３０１）。プログラムコマンドを受けて、コントローラ４は、プログラム動作を実行する。すなわち、ＳＲＡＭコア５は、ＥＣＣデータバスを介して、ＥＣＣバッファ２５にデータを転送する（ステップＳ３０２）。続いて、ＥＣＣバッファ２５は、ＮＡＮＤデータバスを介して、ＮＡＮＤページバッファ１２にデータを転送する（ステップＳ３０３）。
【００５５】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１に、テストモードに入るためのコマンドを発行する（ステップＳ３０４）。このコマンドを受けて、ステートマシン３２は、テストモードであることを認識し、テストモードに入る。続いて、ＢＩＳＴテスタ４０は、ＮＡＮＤページバッファ１２から直接にデータを読み出す（ステップＳ３０５）。続いて、ＢＩＳＴテスタ４０は、ステップＳ３００でＳＲＡＭコア５に書き込んだ第１のデータと、ステップＳ３０５でＮＡＮＤページバッファ１２から読み出した第２のデータとを比較する（ステップＳ３０６）。
【００５６】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１に、テストモードを抜けるためのコマンドを発行する。このコマンドを受けて、ステートマシン３２は、テストモードが終了したことを認識し、テストモードを抜ける（ステップＳ３０７）。
【００５７】
＜２−４．テストフロー（４）＞
図７は、テストフロー（４）を説明するフローチャートである。テストフロー（４）は、「ＮＡＮＤページバッファ→ＥＣＣ→ＮＡＮＤページバッファ」のデータパスで発生した故障を検知するためのものである。
【００５８】
図７のステップＳ４００及びＳ４０１は、図４のステップＳ１００及びＳ１０１と同じである。続いて、ＢＩＳＴテスタ４０は、メモリシステム１にロード２コマンドを発行する（ステップＳ４０２）。ロード２コマンドは、ＮＡＮＤページバッファ１２、ＥＣＣバッファ２５、ＮＡＮＤページバッファ１２を経由するデータパスでデータ転送を行うためのコマンドである。
【００５９】
ロード２コマンドを受けて、コントローラ４は、ロード２コマンドに対応するロード動作を実行する。すなわち、ＮＡＮＤページバッファ１２は、ＮＡＮＤデータバスを介して、ＥＣＣバッファ２５にデータを転送する（ステップＳ４０３）。続いて、ＥＣＣバッファ２５は、ＮＡＮＤデータバスを介して、ＮＡＮＤページバッファ１２にデータを転送する（ステップＳ４０４）。
【００６０】
続いて、ＢＩＳＴテスタ４０は、ＮＡＮＤページバッファ１２から直接にデータを読み出す（ステップＳ４０５）。続いて、ＢＩＳＴテスタ４０は、ステップＳ４０１でＮＡＮＤページバッファ１２に書き込んだ第１のデータと、ステップＳ４０５でＮＡＮＤページバッファ１２から読み出した第２のデータとを比較する（ステップＳ４０６）。
【００６１】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１に、テストモードを抜けるためのコマンドを発行する。このコマンドを受けて、ステートマシン３２は、テストモードが終了したことを認識し、テストモードを抜ける（ステップＳ４０７）。
【００６２】
＜２−５．テストフロー（５）＞
図８は、テストフロー（５）を説明するフローチャートである。テストフロー（５）は、「ＳＲＡＭ→ＥＣＣ→ＳＲＡＭ」のデータパスで発生した故障を検知するためのものである。
【００６３】
まず、ＯｎｅＮＡＮＤテスタ４１は、メモリシステム１に、テストモードに入るためのコマンドを発行する（ステップＳ５００）。このコマンドを受けて、ステートマシン３２は、テストモードであることを認識し、テストモードに入る。
【００６４】
続いて、ＯｎｅＮＡＮＤテスタ４１は、メモリシステム１に書き込みコマンドを発行し、ＳＲＡＭコア５にデータを書き込む（ステップＳ５０１）。続いて、ＯｎｅＮＡＮＤテスタ４１は、メモリシステム１にプログラム２コマンドを発行する（ステップＳ５０２）。プログラム２コマンドは、ＳＲＡＭコア５、ＥＣＣバッファ２５、ＳＲＡＭコア５を経由するデータパスでデータ転送を行うためのコマンドである。
【００６５】
プログラム２コマンドを受けて、コントローラ４は、プログラム２コマンドに対応するプログラム動作を実行する。すなわち、ＳＲＡＭコア５は、ＥＣＣデータバスを介して、ＥＣＣバッファ２５にデータを転送する（ステップＳ５０３）。続いて、ＥＣＣバッファ２５は、ＥＣＣデータバスを介して、ＳＲＡＭコア５にデータを転送する（ステップＳ５０４）。
【００６６】
続いて、ＯｎｅＮＡＮＤテスタ４１は、メモリシステム１に読み出しコマンドを発行し、ＳＲＡＭコア５からデータを読み出す（ステップＳ５０５）。続いて、ＯｎｅＮＡＮＤテスタ４１は、ステップＳ５０１でＳＲＡＭコア５に書き込んだ第１のデータと、ステップＳ５０５でＳＲＡＭコア５から読み出した第２のデータとを比較する（ステップＳ５０７）。
【００６７】
続いて、ＯｎｅＮＡＮＤテスタ４１は、メモリシステム１に、テストモードを抜けるためのコマンドを発行する。このコマンドを受けて、ステートマシン３２は、テストモードが終了したことを認識し、テストモードを抜ける（ステップＳ５０７）。
【００６８】
＜２−６．故障箇所判定方法＞
テストフロー（１）〜（５）を用いることで、メモリシステム１の全てのデータパス毎に故障検知が可能となる。よって、テストフロー（１）〜（５）の検知結果を組み合わせることで、故障箇所の特定が可能となる。
【００６９】
テストフロー（１）は全てのデータパスを経由しているため、テストフロー（１）でパスした場合は、メモリシステム１が故障していないことが確認できる。一方、テストフロー（１）がフェイルである場合は、メモリシステム１の少なくとも１つのデータパスで故障が発生している。よって、故障箇所を特定するために、さらに他のテストフローを実行する。
【００７０】
以下に、故障箇所判定例について説明する  。
【００７１】
（例１）
テストフロー（１）＝フェイル、かつテストフロー（２）＝フェイル、かつテストフロー（４）＝フェイルである場合、「ＮＡＮＤページバッファ１２→ＥＣＣバッファ２５」のデータパスで故障が発生していることが特定される。
【００７２】
（例２）
テストフロー（１）＝フェイル、かつテストフロー（２）＝フェイル、かつテストフロー（５）＝フェイルである場合、「ＥＣＣバッファ２５→ＳＲＡＭコア５」のデータパスで故障が発生していることが特定される。
【００７３】
（例３）
テストフロー（１）＝フェイル、かつテストフロー（３）＝フェイル、かつテストフロー（４）＝フェイルである場合、「ＥＣＣバッファ２５→ＮＡＮＤページバッファ１２」のデータパスで故障が発生していることが特定される。
【００７４】
（例４）
テストフロー（１）＝フェイル、かつテストフロー（３）＝フェイル、かつテストフロー（５）＝フェイルである場合、「ＳＲＡＭコア５→ＥＣＣバッファ２５」のデータパスで故障が発生していることが特定される。
【００７５】
＜３．効果＞
以上詳述したように第１の実施形態では、レイテンシの異なるＮＡＮＤ型フラッシュメモリ２及びＳＲＡＭ２０と、ＥＣＣ回路（ＥＣＣバッファ２５及びＥＣＣエンジン２６）とを１チップに集積したメモリシステム１において、ＮＡＮＤ型フラッシュメモリ２にＢＩＳＴテスタ４０を接続し、ＳＲＡＭ２０にインターフェース２８を介してＯｎｅＮＡＮＤテスタ４１を接続する。そして、ＢＩＳＴテスタ４０及びＯｎｅＮＡＮＤテスタ４１を用いて、メモリシステム１の複数のデータパスに対して、故障箇所を検知するための複数のテストフローを実行するようにしている。
【００７６】
従って第１の実施形態によれば、複数のテストフローの検知結果を比較することで、故障が発生した箇所、若しくは故障が発生した最も短い単位のデータパスを容易に特定することができる。これにより、内部信号をプローブするテスト方法に比べて、テストコストを低減することが可能となる。
【００７７】
また、故障箇所をリペアしたり、故障箇所のデータパスを無効にするなどの対応が可能となるため、不良品を低減できる。これにより、製造コストの低減が可能となる。
【００７８】
特に、外部（ホスト機器）とのデータのやり取りをインターフェースのみで行い、かつ外部からは視認できない内部のデータパスを有するチップにおいては、本実施形態のテスト方法を実施することで、低コストで故障箇所を特定することができる。
【００７９】
［第２の実施形態］
第１の実施形態では、テスタで読み出したデータをチップの外部で比較し、この比較結果に基づいて故障箇所を判定している。第２の実施形態では、メモリシステム１の内部にデータを比較するための比較回路を設け、この比較回路によって故障検出に必要なデータの比較を行うようにしている。
【００８０】
＜１．メモリシステム１の構成＞
図９は、第２の実施形態に係るメモリシステム（ＯｎｅＮＡＮＤ）１の構成を示すブロック図である。メモリシステム１は、図１のブロックに加えて、比較回路５０，５２、レジスタ５１，５３、及び出力回路５４を備えている。図９には、図１のブロックのうちコントローラ４、ＳＲＡＭコア５、ＮＡＮＤページバッファ１２、及びＥＣＣバッファ２５を抽出して示しているが、これらのブロック以外も図１と同じである。
【００８１】
ＢＩＳＴテスタ４０は、ＮＡＮＤ型フラッシュメモリ２に接続され、さらにインターフェース２８を介してＳＲＡＭコア５に接続されている。
【００８２】
比較回路５０は、ＮＡＮＤデータバスに接続されている。比較回路５０は、ＮＡＮＤページバッファ１２から出力される出力データと、ＮＡＮＤページバッファ１２に入力される入力データとを比較する。そして、比較回路５０は、出力データと入力データとの比較結果であるフラグＣｏｕｔ１を出力する。比較回路５０は、ＢＩＳＴテスタ４０から送られるリセット信号／ＲＳＴによってリセットされる。レジスタ５１は、ＮＡＮＤページバッファ１２から出力される出力データ、すなわち、ＮＡＮＤページバッファ１２からＥＣＣバッファ２５に転送されるデータを格納する。
【００８３】
比較回路５２は、ＥＣＣデータバスに接続されている。比較回路５２は、ＳＲＡＭコア５から出力される出力データと、ＳＲＡＭコア５に入力される入力データとを比較する。そして、比較回路５２は、出力データと入力データの比較結果であるフラグＣｏｕｔ２を出力する。比較回路５２は、ＢＩＳＴテスタ４０から送られるリセット信号／ＲＳＴによってリセットされる。レジスタ５３は、ＳＲＡＭコア５から出力される出力データ、すなわち、ＳＲＡＭコア５からＥＣＣバッファ２５に転送されるデータを格納する。
【００８４】
図１０は、比較回路５０の構成を示す回路図である。比較回路５０は、データバスのビット数と同じ数の排他的論理和回路（ＸＯＲ回路）６０−０〜６０−ｎと、ＸＯＲ回路６０−０〜６０−ｎと同じ数のＮチャネルＭＯＳＦＥＴ６１−０〜６１−ｎと、インバータ回路６２と、ＮＡＮＤ回路６３とを備えている。
【００８５】
ｎ番目のＸＯＲ回路６０−ｎの２つの入力端子にはそれぞれ、入力データ〈ｎ〉及び出力データ〈ｎ〉が入力されている。ＸＯＲ回路６０−ｎの出力端子は、ＮＭＯＳＦＥＴ６１−ｎのゲートに接続されている。ＮＭＯＳＦＥＴ６１−ｎのソースは接地端子ＶＳＳに接続され、ドレインはノードＮ１に接続されている。
【００８６】
インバータ回路６２の入力端子は、ノードＮ１に接続されている。インバータ回路６２は、全てのＸＯＲ回路６０−０〜６０−ｎの出力がローレベルの場合に、ローレベルのフラグＣｏｕｔ１を出力し、それ以外の場合に、ハイレベルのフラグＣｏｕｔ１を出力する。ＮＡＮＤ回路６３の第１の入力端子はインバータ回路６２の出力端子に接続され、第２の入力端子にはリセット信号／ＲＳＴが供給されている。ＮＡＮＤ回路６３は、リセット信号／ＲＳＴがローレベルの場合に、ノードＮ１をハイレベルにリセットする。比較回路５２の構成も、比較回路５０と同じである。
【００８７】
図９に示した出力回路５４は、比較回路５０からフラグＣｏｕｔ１を受け、比較回路５２からフラグＣｏｕｔ２を受ける。出力回路５４は、フラグＣｏｕｔ１，Ｃｏｕｔ２に基づいて検出結果ＤＲをＢＩＳＴテスタ４０に出力する。
【００８８】
図１１は、出力回路５４の構成を示す回路図である。出力回路５４は、比較回路５０，５２に対応する数のクロックドインバータ回路７０，７１と、インバータ回路７２と、ＮＡＮＤ回路７３とを備えている。
【００８９】
クロックドインバータ回路７０の入力端子にはフラグＣｏｕｔ１が入力され、クロックドインバータ回路７０の出力はノードＮ２に接続されている。クロックドインバータ回路７０は、ＢＩＳＴテスタ４０から送られる制御信号ＳＥＬ１がハイレベルの場合に動作する。クロックドインバータ回路７１の入力端子にはフラグＣｏｕｔ２が入力され、クロックドインバータ回路７１の出力はノードＮ２に接続されている。クロックドインバータ回路７１は、ＢＩＳＴテスタ４０から送られる制御信号ＳＥＬ２がハイレベルの場合に動作する。
【００９０】
インバータ回路７２の入力端子は、ノードＮ２に接続されている。インバータ回路７２は、クロックドインバータ回路７０，７１からノードＮ２に送られたデータを反転して出力する。ＮＡＮＤ回路７３の第１の入力端子はインバータ回路７２の出力端子に接続され、第２の入力端子にはリセット信号／ＲＳＴが供給されている。ＮＡＮＤ回路７３は、リセット信号／ＲＳＴがローレベルの場合に、ノードＮ２をハイレベルにリセットする。
【００９１】
＜２．メモリシステム１のテスト動作＞
次に、メモリシステム１のテスト動作について説明する。図１２は、テストフロー（６）を説明するフローチャートである。
【００９２】
まず、ＢＩＳＴテスタ４０は、メモリシステム１に、テストモードに入るためのコマンドを発行する（ステップＳ６００）。このコマンドを受けて、ステートマシン３２は、テストモードであることを認識し、テストモードに入る。続いて、ＢＩＳＴテスタ４０は、ＮＡＮＤページバッファ１２に直接にデータを書き込む（ステップＳ６０１）。
【００９３】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１にロード２コマンドを発行する（ステップＳ６０２）。ロード２コマンドを受けて、コントローラ４は、ロード２コマンドに対応するロード動作を実行する。すなわち、ＮＡＮＤページバッファ１２は、ＮＡＮＤデータバスを介して、ＥＣＣバッファ２５にデータを転送する（ステップＳ６０３）。続いて、レジスタ５１は、ステップＳ６０３で転送されたデータを格納する（ステップＳ６０４）。続いて、ＥＣＣバッファ２５は、ＮＡＮＤデータバスを介して、ＮＡＮＤページバッファ１２にデータを転送する（ステップＳ６０５）。
【００９４】
続いて、比較回路５０は、ステップＳ６０５で転送されたデータと、レジスタ５１に格納されたデータとを比較し、これら２つのデータが一致しているか否かを判定する（ステップＳ６０６）。そして、比較回路５０は、２つのデータが一致している場合にローレベル、２つのデータが異なる場合にハイレベルとなるフラグＣｏｕｔ１を出力回路５４に送る。
【００９５】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１に書き込みコマンドを発行し、ＳＲＡＭコア５にデータを書き込む（ステップＳ６０７）。続いて、ＢＩＳＴテスタ４０は、メモリシステム１にプログラム２コマンドを発行する（ステップＳ６０８）。プログラム２コマンドを受けて、コントローラ４は、プログラム２コマンドに対応するプログラム動作を実行する。すなわち、ＳＲＡＭコア５は、ＥＣＣデータバスを介して、ＥＣＣバッファ２５にデータを転送する（ステップＳ６０９）。続いて、レジスタ５３は、ステップＳ６０９で転送されたデータを格納する（ステップＳ６１０）。続いて、ＥＣＣバッファ２５は、ＥＣＣデータバスを介して、ＳＲＡＭコア５にデータを転送する（ステップＳ６１１）。
【００９６】
続いて、比較回路５２は、ステップＳ６１１で転送されたデータと、レジスタ５３に格納されたデータとを比較し、これら２つのデータが一致しているか否かを判定する（ステップＳ６１２）。そして、比較回路５２は、２つのデータが一致している場合にローレベル、２つのデータが異なる場合にハイレベルとなるフラグＣｏｕｔ２を出力回路５４に送る。
【００９７】
続いて、ＢＩＳＴテスタ４０は、出力回路５４に制御信号ＳＥＬ１，ＳＥＬ２を供給し、検知結果ＤＲを読み出す（ステップＳ６１３）。この検知結果ＤＲにより、故障箇所を特定することができる。なお、検知結果ＤＲとしては、クロックに同期してフラグＣｏｕｔ１，Ｃｏｕｔ２を順に読み出すようにしてもよいし、全てのフラグのＯＲを出力するようにしてもよい。
【００９８】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１に、テストモードを抜けるためのコマンドを発行する。このコマンドを受けて、ステートマシン３２は、テストモードが終了したことを認識し、テストモードを抜ける（ステップＳ６１４）。
【００９９】
＜３．効果＞
以上詳述したように第２の実施形態によれば、故障が発生した箇所、若しくは故障が発生した最も短い単位のデータパスを容易に特定することができる。これにより、テストコストを低減することが可能となる。
【０１００】
また、メモリシステム１の内部で故障検知に必要なデータの比較を行うことができる。これにより、高価なテスト装置を使う必要がないため、テストコストを低減することができる。さらに、テスト時間の短縮も可能である。
【０１０１】
［第３の実施形態］
第３の実施形態では、メモリシステム１はパイプライン処理を行うためのラッチ回路を複数有し、各ラッチ回路の入出力でデータを比較することで、各ラッチ回路の故障を検知するようにしている。
【０１０２】
＜１．メモリシステム１の構成＞
図１３は、第３の実施形態に係るメモリシステム（ＯｎｅＮＡＮＤ）１の構成を示すブロック図である。メモリシステム１は、図１のブロックに加えて、比較回路５５〜５７、及び出力回路５８を備えている。図１３には、図１のブロックのうちコントローラ４、ＳＲＡＭコア５、ＮＡＮＤページバッファ１２、及びＥＣＣバッファ２５を抽出して示しているが、これらのブロック以外も図１と同じである。ＢＩＳＴテスタ４０は、ＮＡＮＤ型フラッシュメモリ２に接続されている。
【０１０３】
ＮＡＮＤページバッファ１２は、センスアンプＳ／Ａ、ラッチ回路１２Ａ、及びバッファ１２Ｂを備えている。センスアンプＳ／Ａの一端は、メモリセルアレイ１０に接続されている。センスアンプＳ／Ａの他端は、ラッチ回路１２Ａの一端に接続されている。ラッチ回路１２Ａの他端は、ＮＡＮＤデータバスに接続されている。バッファ１２Ｂの一端は、ＮＡＮＤデータバスに接続されている。バッファ１２Ｂの他端は、センスアンプＳ／Ａの一端に接続されている。
【０１０４】
ＥＣＣバッファ２５は、ラッチ回路２５Ａ，２５Ｂを備えている。ラッチ回路２５Ａ，２５Ｂの一端は、ＮＡＮＤデータバスに接続されている。ラッチ回路２５Ａ，２５Ｂの他端は、ＥＣＣデータバスに接続されている。
【０１０５】
ＳＲＡＭコア５に含まれるＤＱバッファ２４は、ラッチ回路２４Ａ、及びバッファ２４Ｂを備えている。ラッチ回路２４Ａ及びバッファ２４Ｂの一端は、ＥＣＣデータバスに接続されている。ラッチ回路２４Ａ及びバッファ２４Ｂの他端は、センスアンプ２３（図示せず）を介してメモリセルアレイ２１に接続されている。
【０１０６】
ロード動作時のデータパスは、「ラッチ回路１２Ａ→ラッチ回路２５Ａ→ラッチ回路２４Ａ」を経由する。プログラム動作時のデータパスは、「バッファ２４Ｂ→ラッチ回路２５Ｂ→バッファ１２Ｂ」を経由する。
【０１０７】
比較回路５５は、ラッチ回路１２Ａの両端に接続されている。比較回路５５は、ラッチ回路１２Ａに入力される入力データと、ラッチ回路１２Ａから出力される出力データとを比較する。そして、比較回路５５は、入力データと出力データとの比較結果であるフラグＣｏｕｔ１を出力する。
【０１０８】
比較回路５６は、ラッチ回路２５Ａ，２５Ｂの両端に接続されている。比較回路５６は、ラッチ回路２５Ａに入力される入力データと、ラッチ回路２５Ａから出力される出力データとを比較する。また、比較回路５６は、ラッチ回路２５Ｂに入力される入力データと、ラッチ回路２５Ｂから出力される出力データとを比較する。そして、比較回路５６は、入力データと出力データとの比較結果であるフラグＣｏｕｔ２を出力する。
【０１０９】
比較回路５７は、ラッチ回路２４Ａの両端に接続されている。比較回路５７は、ラッチ回路２４Ａに入力される入力データと、ラッチ回路２４Ａから出力される出力データとを比較する。そして、比較回路５７は、入力データと出力データとの比較結果であるフラグＣｏｕｔ３を出力する。比較回路５５〜５７は、ＢＩＳＴテスタ４０から送られるリセット信号／ＲＳＴによってリセットされる。なお、比較回路５５〜５７の構成は、図１０と同じである。
【０１１０】
出力回路５８は、比較回路５５からフラグＣｏｕｔ１を受け、比較回路５６からフラグＣｏｕｔ２を受け、比較回路５７からフラグＣｏｕｔ３を受ける。出力回路５８は、フラグＣｏｕｔ１〜Ｃｏｕｔ３に基づいて検出結果ＤＲをＢＩＳＴテスタ４０に出力する。
【０１１１】
図１４は、出力回路５８の構成を示す回路図である。出力回路５８は、図１１の回路に加えて、フラグＣｏｕｔ３用のクロックドインバータ回路７４を備えている。クロックドインバータ回路７４は、ＢＩＳＴテスタ４０から送られる制御信号ＳＥＬ３がハイレベルの場合に動作する。
【０１１２】
＜２．メモリシステム１のテスト動作＞
図１５は、テストフロー（７）を説明するフローチャートである。テストフロー（７）は、「ページバッファ→ＥＣＣ→ＳＲＡＭ」のデータパス、すなわち、ロード動作時のデータパスで発生した故障を検知するためのものである。
【０１１３】
図１５のステップＳ７００及びＳ７０１は、図４のステップＳ１００及びＳ１０１と同じである。続いて、ＢＩＳＴテスタ４０は、メモリシステム１にロードコマンドを発行する（ステップＳ７０２）。ロードコマンドを受けて、コントローラ４は、ロード動作を実行する。すなわち、ＮＡＮＤページバッファ１２は、ＮＡＮＤデータバスを介して、ＥＣＣバッファ２５にデータを転送する（ステップＳ７０３）。続いて、ＥＣＣバッファ２５は、ＥＣＣデータバスを介して、ＳＲＡＭコア５にデータを転送する（ステップＳ７０４）。
【０１１４】
このロード動作と並行して、比較回路５５〜５７は、データ比較を行う（ステップＳ７０５）。そして、比較回路５５〜５７はそれぞれ、フラグＣｏｕｔ１〜Ｃｏｕｔ３を出力回路５８に送る。具体的には、各比較回路は、２つのデータが一致している場合にローレベル、２つのデータが異なる場合にハイレベルとなるフラグＣｏｕｔを出力回路５４に送る。
【０１１５】
続いて、ＢＩＳＴテスタ４０は、出力回路５８に制御信号ＳＥＬ１〜ＳＥＬ３を供給し、検知結果ＤＲを読み出す（ステップＳ７０６）。この検知結果ＤＲにより、故障したラッチ回路を検出することができる。なお、検知結果ＤＲとしては、クロックに同期してフラグＣｏｕｔ１〜Ｃｏｕｔ３を順に読み出すようにしてもよいし、全てのフラグのＯＲを出力するようにしてもよい。
【０１１６】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１に、テストモードを抜けるためのコマンドを発行する。このコマンドを受けて、ステートマシン３２は、テストモードが終了したことを認識し、テストモードを抜ける（ステップＳ７０７）。
【０１１７】
図１６は、テストフロー（８）を説明するフローチャートである。テストフロー（８）は、「ＳＲＡＭ→ＥＣＣ→ページバッファ」のデータパス、すなわち、プログラム動作時のデータパスで発生した故障を検知するためのものである。
【０１１８】
図１６のステップＳ８００及びＳ８０３は、図６のステップＳ３００及びＳ３０３と同じである。プログラム動作と並行して、比較回路５６は、データ比較を行う（ステップＳ８０４）。そして、比較回路５６は、フラグＣｏｕｔ２を出力回路５８に送る。具体的には、比較回路５６は、２つのデータが一致している場合にローレベル、２つのデータが異なる場合にハイレベルとなるフラグＣｏｕｔ２を出力回路５４に送る。
【０１１９】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１に、テストモードに入るためのコマンドを発行する（ステップＳ８０５）。このコマンドを受けて、ステートマシン３２は、テストモードであることを認識し、テストモードに入る。
【０１２０】
続いて、ＢＩＳＴテスタ４０は、出力回路５８に制御信号ＳＥＬ２を供給し、検知結果ＤＲを読み出す（ステップＳ８０６）。この検知結果ＤＲにより、故障したラッチ回路を検出することができる。
【０１２１】
続いて、ＢＩＳＴテスタ４０は、メモリシステム１に、テストモードを抜けるためのコマンドを発行する。このコマンドを受けて、ステートマシン３２は、テストモードが終了したことを認識し、テストモードを抜ける（ステップＳ８０７）。
【０１２２】
＜３．効果＞
以上詳述したように第３の実施形態によれば、ＮＡＮＤ型フラッシュメモリ２、ＳＲＡＭコア５、及びＥＣＣバッファ２５に含まれる複数のラッチ回路のうち故障が発生したラッチ回路を検知することができる。また、メモリシステム１の内部で故障検知に必要なデータの比較を行うことができる。これにより、高価なテスト装置を使う必要がないため、テストコストを低減することができる。さらに、テスト時間の短縮も可能である。
【０１２３】
また、故障したラッチ回路をリペアしたり、故障箇所のデータパスを無効にするなどの対応が可能となるため、不良品を低減できる。これにより、製造コストの低減が可能となる。
【０１２４】
なお、本実施形態では、ＮＡＮＤ型フラッシュメモリ及びＳＲＡＭが１チップに集積されたメモリシステムを用いている。しかし、１チップに集積されるメモリの種類はＮＡＮＤ型フラッシュメモリ及びＳＲＡＭに限らず、例えばレイテンシが異なる複数のメモリを含むチップであれば、本実施形態を同様に適用可能である。
【０１２５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２６】
１…メモリシステム、２…ＮＡＮＤ型フラッシュメモリ、３…ＲＡＭ部、４…コントローラ、５…ＳＲＡＭコア、１０…メモリセルアレイ、１１…ロウデコーダ、１２…ＮＡＮＤページバッファ、１２Ａ…ラッチ回路、１２Ｂ…バッファ、１３…電圧発生回路、１４…ＮＡＮＤシーケンサ、１５，１６…オシレータ、２０…ＳＲＡＭ、２１…メモリセルアレイ、２２…ロウデコーダ、２３…センスアンプ、２４…ＤＱバッファ、２４Ａ…ラッチ回路、２４Ｂ…バッファ、２５…ＥＣＣバッファ、２５Ａ，２５Ｂ…ラッチ回路、２６…ＥＣＣエンジン、２７Ａ，２７Ｂ…バーストバッファ、２８…インターフェース、２９…アクセスコントローラ、３０…レジスタ、３１…コマンドユーザインターフェース、３２…ステートマシン、３３…ＮＡＮＤアドレス／コマンド発生回路、３４…ＳＲＡＭアドレス／タイミング発生回路、４０…ＢＩＳＴテスタ、４１…ｏｎｅＮＡＮＤテスタ、５０，５２，５５〜５７…比較回路、５１，５３…レジスタ、５４，５８…出力回路。
【図１】
2012128922.tif 000003
【図２】
2012128922.tif 000004
【図３】
2012128922.tif 000005
【図４】
2012128922.tif 000006
【図５】
2012128922.tif 000007
【図６】
2012128922.tif 000008
【図７】
2012128922.tif 000009
【図８】
2012128922.tif 000010
【図９】
2012128922.tif 000011
【図１０】
2012128922.tif 000012
【図１１】
2012128922.tif 000013
【図１２】
2012128922.tif 000014
【図１３】
2012128922.tif 000015
【図１４】
2012128922.tif 000016
【図１５】
2012128922.tif 000017
【図１６】
2012128922.tif 000018