(57)【要約】【課題】短時間で半導体の試験を行うことができる半導体装置及びメモリ試験方法を提供する。【解決手段】Ｌ２キャッシュ２は、所定のウェイ数の単位でアドレス領域が分割される。ＲＡＭ−ＢＩＳＴパターン生成部１は、ウェイに対応するメモリアドレス、試験パターン及び試験パターンに対応する期待値を生成する。Ｌ２キャッシュ２及びＸＯＲ回路３は、試験パターンに従って、メモリアドレスに試験パターンを書込み、試験パターンを書込んだメモリアドレスからデータを読み出し、読み出したデータと前記期待値とを比較する。デコード部５は、メモリアドレスを基に、Ｌ２キャッシュ２のウェイ毎の選択信号を生成する。判定ラッチ６０〜６７は、各メモリアドレスにおける比較結果を、選択信号を基に、前記メモリアドレスに対応するウェイ毎に格納し、格納したウェイ毎の比較結果が所定の順でスキャンアウトされる。【選択図】図１
2014049165.tif 000002
【特許請求の範囲】
【請求項１】
所定のウェイ数の単位でアドレス領域を分割して使用するメモリと、
前記メモリの試験を行うための、前記ウェイに対応するメモリアドレス、試験パターン及び前記試験パターンに対応する期待値を生成する試験情報生成部と、
前記試験パターンに従って、前記試験情報生成部が生成した前記メモリアドレスに前記試験パターンを書込み、前記試験パターンを書込んだ前記メモリアドレスからデータを読み出し、読み出した前記データと前記期待値とを比較する良否判定試験部と、
前記試験情報生成部により生成された前記メモリアドレスを基に、前記メモリのウェイ毎の選択信号を生成する選択信号生成部と、
前記良否判定試験部による各前記メモリアドレスにおける比較結果を、前記選択信号を基に、各前記メモリアドレスに対応するウェイ毎に格納し、格納したウェイ毎の前記比較結果が所定の順でスキャンアウトされる第１格納部と
を備えたことを特徴とする半導体装置。
【請求項２】
前記良否判定試験部は、読み出した前記データと前記期待値とを比較し、それぞれが異なる場合、不良ウェイと判定することを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記ウェイ毎の前記比較結果を基に、不良ウェイの有無を示す値を格納し、前記スキャンアウトにおいて、前記第１格納部に格納されている前記比較結果が読み出される直前に、自己が格納している値が読み出される第２格納部をさらに備えたことを特徴とする請求項１又は２に記載の半導体装置。
【請求項４】
前記メモリは複数有り、
複数の前記メモリにおける前記第１格納部が格納する前記比較結果が連続して読み出される
ことを特徴とする請求項１〜３のいずれか一つに記載の半導体装置。
【請求項５】
所定のウェイ数の単位でアドレス領域を分割して使用するメモリの試験を行うための、前記ウェイに対応するメモリアドレス、試験パターン及び前記試験パターンに対応する期待値を生成し、
前記試験パターンに従って、生成した前記メモリアドレスに前記試験パターンを書込み、前記試験パターンを書込んだ前記メモリアドレスからデータを読み出し、読み出した前記データと前記期待値とを比較し、
生成した前記メモリアドレスを基に、前記メモリのウェイ毎の選択信号を生成し、
各前記メモリアドレスにおける比較結果を、前記選択信号を基に、各前記メモリアドレスに対応するウェイ毎に格納し、
格納されたウェイ毎の前記比較結果を所定の順に読み出し、
読み出した比較結果を基に、不良ウェイを特定する
ことを特徴とするメモリ試験方法。
【請求項６】
ウェイ毎の前記比較結果の読出しの前に、不良ウェイの有無を表す値を読み出し、
読み出した前記不良ウェイの有無を表す値及びそれに続く一連の前記比較結果を基に、不良ウェイの有無を表す値に対する読み出した比較結果の位置で不良ウェイを特定する
ことを特徴とする請求項５に記載のメモリ試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及びメモリ試験方法に関する。
【背景技術】
【０００２】
近年、ＣＰＵには、高速な動作を実現するために、半導体メモリであるＬ２（Level  2）キャッシュなどが配置されている。Ｌ２キャッシュは一部が不良の場合でも、製品となりえる。そのため、出荷時には、Ｌ２キャッシュの不良の量を求め、そのＬ２キャッシュが出荷可能か否かを判定することが行われている。
【０００３】
キャッシュメモリの容量は、エントリ数とキャッシュの連想数の積で表される。この連想数は、ウェイ数とも呼ばれる。１ウェイは、一定のアドレスの範囲を有している。１ウェイにおいて、インデックスで表される異なるアドレスそれぞれにデータを格納することができる。
【０００４】
Ｌ２キャッシュなど半導体装置における良否判定の試験として、例えば、Ｌ２キャッシュであればウェイ単位といった部分単位で試験が行われていた。そして、従来は、Ｌ２キャッシュ全体の試験を行う場合、そのＬ２キャッシュが有するウェイの数だけ試験が行われていた。例えば、Ｌ２キャッシュが２４ウェイを有している場合、試験は２４回行われていた。また、このような試験を容易に行うために、従来、チップ内にテストパターン発生器や比較器などを埋め込んでテストを行うＲＡＭ−ＢＩＳＴ（Random  Access  Memory-Built  In  Self  Test）という手法が用いられている。また、半導体の品質を確保するため、ＲＡＭ−ＢＩＳＴ試験をシステムの実速度で行うat-speedテストなどが行われている（例えば、特許文献１参照）。
【０００５】
さらに、従来は、１つのメモリが１ウェイを有していた。これに対して、近年、１つのメモリのアドレス範囲を区切ることで、１つのメモリに複数のウェイが設定できるようになった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−４００８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の半導体装置における試験方法は、１つのメモリが１ウェイに対応する場合を想定しており、１つのメモリに複数のウェイが設定された場合は考慮されていない。そのため、単に従来の半導体装置の試験方法を複数のウェイが設定されたメモリに適応した場合、ウェイ毎にテストが行えたとしても、ウェイの数だけ試験を行うことになり試験に多くの時間が掛かってしまう。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、短時間でメモリの試験を行う半導体装置及びメモリ試験方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する半導体装置及びメモリ試験方法は、一つの態様において、メモリは、所定のウェイ数の単位でアドレス領域を分割して使用する。試験情報生成部は、前記メモリの試験を行うための、前記ウェイに対応するメモリアドレス、試験パターン及び前記試験パターンに対応する期待値を生成する。良否判定試験部は、前記試験パターンに従って、前記試験情報生成部が生成した前記メモリアドレスに前記試験パターンを書込み、前記試験パターンを書込んだ前記メモリアドレスからデータを読み出し、読み出した前記データと前記期待値とを比較する。選択信号生成部は、前記試験情報生成部が生成した前記メモリアドレスを基に、前記メモリのウェイ毎の選択信号を生成する。第１格納部は、前記良否判定試験部による各前記メモリアドレスにおける比較結果を、前記選択信号を基に、各前記メモリアドレスに対応するウェイ毎に格納し、格納したウェイ毎の前記比較結果が所定の順でスキャンアウトされる。
【発明の効果】
【００１０】
本願の開示する半導体装置及びメモリ試験方法の一つの態様によれば、短時間でメモリの試験を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例に係る半導体装置のブロック図である。
【図２】図２は、各判定ラッチに格納される値を説明するための一例の図である。
【図３】図３は、スキャン及びテストのタイミングチャートである。
【図４】図４は、情報の読出しの詳細を説明するための図である。
【図５】図５は、各ウェイとテスタが判定した各ウェイの状態との対応を表す図である。
【図６】図６は、実施例に係る半導体装置における試験のフローチャートである。
【図７】図７は、不良ウェイの判別処理のフローチャートである。
【図８】図８は、実施例に係る半導体装置が搭載されたＣＰＵのハードウェア構成図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する半導体装置及びメモリ試験方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する半導体装置及びメモリ試験方法が限定されるものではない。
【実施例】
【００１３】
図１は、実施例に係る半導体装置のブロック図である。図１に示すように、半導体装置１００は、ＲＡＭ−ＢＩＳＴパターン生成部１、Ｌ２キャッシュ２、ＸＯＲ回路３、デコード部５、判別ラッチ６０〜６７、ＯＲ回路７及びスタートマーカ（Start-Marker）８を有している。さらに、半導体装置１００は、ＦＦ（Flip  Flop）９１及び９２を有している。また、試験を行う際には、半導体装置１００は、テスタ１０１と接続される。テスタ１０１は、半導体装置１００の動作試験や出荷試験等を行う試験装置である。以下では、半導体装置１００の試験時の動作について説明する。
【００１４】
Ｌ２キャッシュ２は、所定のウェイ数の単位でアドレス領域を分割して使用するメモリを有している。例えば、本実施例では、１つのメモリがウェイ＃０〜＃７の８個のウェイに分割されている場合で説明する。
【００１５】
まず、ＲＡＭ−ＢＩＳＴパターン生成部１、Ｌ２キャッシュ２、ＸＯＲ回路３、判別ラッチ６０〜６７、並びに、ＦＦ９１及び９２は、テスタ１０１から入力されたシステムクロックで動作する。ここで、図１では、分かり易くするため、テスタ１０１から入力されたクロックに基づいて、半導体装置１００内部で生成、分配されるシステムクロックを示す線は省略する。また、テスタ１０１から半導体装置１００に入力されるスキャンクロックを示す線も省略する。
【００１６】
ＲＡＭ−ＢＩＳＴパターン生成部１は、試験パターンに関する設定情報、例えば試験パターンの種類を示す設定情報等の試験プログラムをテスタ１０１から受ける。試験パターンは、例えば、Ｍａｒｃｈテストなどである。そして、ＲＡＭ−ＢＩＳＴパターン生成部１は、受信した設定情報に基づいて、良否判定を行うメモリアドレスに対する試験パターンを生成する。
【００１７】
そして、ＲＡＭ−ＢＩＳＴパターン生成部１は、試験パターンにしたがい、良否判定を行うメモリアドレス及びメモリリード・ライト制御信号（図１中の「ライトイネーブル」信号）をＬ２キャッシュ２及びＦＦ９２へ出力する。以下では、良否判定の対象とするあるメモリアドレス（以下では、「試験対象メモリアドレス」という。）を例に説明する。
【００１８】
さらに、ＲＡＭ−ＢＩＳＴパターン生成部１は、生成した試験パターンをＬ２キャッシュ２及びＦＦ９１へ出力する。
【００１９】
ＸＯＲ回路３は、Ｌ２キャッシュ２から読み出されたデータと、ＦＦ９１で１サイクル遅延させた試験パターンとの排他的論理和をとった結果を出力する。ここで、ＦＦ９１から出力されるデータは、Ｌ２キャッシュ２から読みだされる結果に対応する期待値としてＲＡＭ−ＢＩＳＴパターン生成部１が出力した試験パターンを１サイクルずらしたデータとなる。
【００２０】
ＦＦ９１は、期待値の入力をＲＡＭ−ＢＩＳＴパターン生成部１から受ける。そして、ＦＦ９１は、Ｌ２キャッシュ２からのデータの読出しにかかる時間だけ受信したデータを遅延させる。そして、ＦＦ９１は、遅延させたデータをＸＯＲ回路３へ出力する。
【００２１】
ＸＯＲ回路３は、Ｌ２キャッシュ２の試験対象メモリアドレスから読み出されたデータの入力を受ける。さらに、ＸＯＲ回路３は、ＦＦ９１から期待値の入力を受ける。
【００２２】
ＸＯＲ回路３は、受信した期待値と試験対象メモリアドレスから読み出されたデータとの排他的論理和を求める。例えば、期待値がＬｏｗ（以下では、単に「Ｌ」と表す。）であり、試験対象メモリアドレスから読み出されたデータがＨｉｇｈ（以下では、単に「Ｈ」と表す。）の場合、ＸＯＲ回路３は、一致しないことを表す値、例えば“Ｈ”を判定ラッチ６０〜６７のそれぞれへ出力する。すなわち、本実施例では、期待値と試験対象メモリアドレスから読み出されたデータとが異なっていれば、ＸＯＲ回路３は、“Ｈ”を判定ラッチ６０〜６７のそれぞれへ出力する。また、例えば、期待値が“Ｌ”であり、試験対象メモリアドレスから読み出されたデータも“Ｌ”の場合、ＸＯＲ回路３は、一致することを表す値、例えば“Ｌ”を判定ラッチ６０〜６７のそれぞれへ出力する。すなわち、本実施例では、期待値と試験対象メモリアドレスから読み出されたデータとが一致していれば、ＸＯＲ回路３は、“Ｌ”を判定ラッチ６０〜６７のそれぞれへ出力する。
【００２３】
ＦＦ９２は、試験対象メモリアドレスの入力をＲＡＭ−ＢＩＳＴパターン生成部１から受ける。そして、ＦＦ９２は、ＸＯＲ回路３から後述するＡＮＤ回路６０１へデータが入力されるタイミングとデコード部５から後述するＡＮＤ回路６０１へデータが入力されるタイミングが一致するように受信した試験対象メモリアドレスの上位ビット［Ｎ：Ｎ−２］及びライトイネーブル信号をシステムクロック１サイクル分遅延させる。そして、ＦＦ９２は、遅延させた試験対象メモリアドレス及びライトイネーブル信号をデコード部５へ出力する。
【００２４】
デコード部５は、試験対象メモリアドレス及びライトイネーブル信号の入力をＦＦ９２から受ける。そして、デコード部５は、受信した試験対象メモリアドレス及びライトイネーブル信号をデコードする。そして、デコード部５は、読み出し試験時、ＸＯＲ３で期待値比較しているアドレスに応じた判定ラッチへＸＯＲ３の比較結果を格納するための制御信号を出力する。
【００２５】
例えば、本実施例では、メモリアドレスの中の［Ｎ：Ｎ−２］の３ビットが、８個のウェイのいずれのウェイであるかを表している。また、期待値と試験対象メモリアドレスから読み出されたデータとが異なっている場合、ＸＯＲ回路３から“Ｈ”が出力され、期待値と試験対象メモリアドレスから読み出されたデータとが一致している場合、ＸＯＲ回路３から“Ｌ”が出力される。デコード部５は、受信した試験対象メモリアドレスの中の［Ｎ：Ｎ−２］の３ビット及びライトイネーブル信号を取得する。次に、デコード部５は、ライトイネーブルがオフの時、すなわち読み出し時のみ、取得した３ビットをデコードしてメモリ内のウェイ＃０〜＃７のいずれのウェイかを表す情報に変換する。これに対して、ライトイネーブルがオンの時、すなわち書込み時は、デコード部５の８本の出力は全て０である。そして、読み出し時、デコード部５は、判定ラッチ６０〜６７の内の試験対象メモリアドレスが示すウェイに対応する判定ラッチにＸＯＲ３の比較結果を格納する。他のウェイの判定ラッチは、ＯＲ６０２により前の状態が保持される。
【００２６】
判定ラッチ６０〜６７は、図では、３つしか図示していないが、実際には、メモリが有するウェイ数と同数配置されている。例えば、本実施例では、メモリは８ウェイ有しているので、判定ラッチ６０〜６７は、８つ配置されている。そして、判定ラッチ６０〜６７それぞれ、メモリ内のウェイ＃０〜＃７という８つのウェイのいずれかに対応している。例えば、判定ラッチ６０はウェイ＃７に対応し、判定ラッチ６１はウェイ＃６に対応し、判定ラッチ６７はウェイ＃０に対応している。そして、判定ラッチ６０〜６７は、各々が同じ構成であり、同じ機能を有しているので、以下では、判定ラッチ６０を例に説明する。
【００２７】
判定ラッチ６０は、ＡＮＤ回路６０１、ＯＲ回路６０２及びＦＦ６０３を有している。
【００２８】
ＡＮＤ回路６０１は、ＸＯＲ回路３及びデコード部５から入力を受ける。そして、ＡＮＤ回路６０１は、ＸＯＲ回路３からの入力とデコード部５からの入力の論理積を求め、求めた結果をＯＲ回路６０２へ出力する。
【００２９】
例えば、期待値と試験対象メモリアドレスから読み出されたデータとが異なっている場合でＸＯＲ回路３が“Ｈ”を出力したものとする。また、試験対象メモリアドレスに対応するウェイがウェイ＃０であり、デコード部５が、判定ラッチ６０に“Ｈ”を出力し、判定ラッチ６１〜６７に“Ｌ”を出力したものとする。この時、ＡＮＤ回路６０１は、ＸＯＲ回路３から“Ｈ”の入力を受け、デコード部５から“Ｈ”の入力を受ける。そこで、ＡＮＤ回路６０１は、“Ｈ”を出力する。
【００３０】
一方、例えば、期待値と試験対象メモリアドレスから読み出されたデータとが一致している場合でＸＯＲ回路３が“Ｌ”を出力したものとする。また、試験対象メモリアドレスに対応するウェイがウェイ＃０であり、デコード部５が、判定ラッチ６０に“Ｈ”を出力し、判定ラッチ６１〜６７に“Ｌ”を出力したものとする。この時、ＡＮＤ回路６０１は、ＸＯＲ回路３から“Ｌ”の入力を受け、デコード部５から“Ｈ”の入力を受ける。この場合、ＡＮＤ回路６０１は、デコード部５の出力に関らず“Ｌ”を出力する。
【００３１】
これに対して、例えば、試験対象メモリアドレスに対応するウェイがウェイ＃０以外であり、デコード部５が、判定ラッチ６０に“Ｌ”を出力したとする。この場合、ＡＮＤ回路６０１は、常に“Ｌ”を出力することになる。すなわち、試験対象メモリアドレスに対応するウェイ以外に対応する格納ラッチでは、ＡＮＤ回路６０１から“Ｌ”が出力される。
【００３２】
まとめると、本実施例では、ＡＮＤ回路６０１は、期待値とＬ２キャッシュ２の試験対象メモリアドレスから読み出されたデータとが異なっている場合で対象メモリアドレスに対応するウェイがウェイ＃０の場合のときのみ“Ｈ”をＯＲ回路６０２へ出力する。それ以外の場合は、ＡＮＤ回路６０１は、ＯＲ回路６０２へ“Ｌ”を出力する。
【００３３】
ＯＲ回路６０２は、ＡＮＤ回路６０１から入力を受ける。さらに、ＯＲ回路６０２は、ＦＦ６０３から入力を受ける。そして、ＯＲ回路６０２は、ＡＮＤ回路６０１からの入力とＦＦ６０３からの入力の論理和を求め、求めた結果をＦＦ６０３へ出力する。
【００３４】
具体的には、ＯＲ回路６０２は、期待値と試験対象メモリアドレスから読み出されたデータとが異なっている場合で対象メモリアドレスに対応するウェイがウェイ＃０の場合のときのみ“Ｈ”の入力をＡＮＤ回路６０１から受ける。それ以外の場合は、ＯＲ回路６０２は、ＡＮＤ回路６０１から“Ｌ”の入力を受ける。また、ＯＲ回路６０２は、既にＦＦ６０３へ“Ｈ”を出力している場合のみ、ＦＦ６０３から“Ｈ”の入力を受け、それ以外の場合は、ＦＦ６０３から“Ｌ”の入力を受ける。そこで、ＯＲ回路６０２は、既にＦＦ６０３へ“Ｈ”を入力している場合、すなわち、ウェイ＃０から読み出されたデータと試験値とが異なると既に判定されている場合、ＯＲ回路６０２は、ＦＦ６０３から“Ｈ”の入力を受ける。この場合、ＯＲ回路６０２は、常に“Ｈ”をＦＦ６０３へ出力する。
【００３５】
一方、ＯＲ回路６０２がＦＦ６０３へ未だ“Ｈ”を入力していない場合、すなわち、ウェイ＃０から読み出されたデータと試験値とが異なるとの判定がなされていない場合、ＯＲ回路６０２は、ＦＦ６０３から“Ｌ”の入力を受ける。この場合、ＡＮＤ回路６０１からの入力が“Ｈ”の場合、すなわち、ウェイ＃０から読み出されたデータと試験値とが異なる場合、ＯＲ回路６０２は、“Ｈ”をＦＦ６０３へ出力する。これに対して、ウェイ＃０から読み出されたデータと試験値とが一致する又は試験対象アドレスに対応するウェイがウェイ＃０以外である場合、ＯＲ回路６０２は、ＡＮＤ回路６０１から“Ｌ”の入力を受ける。このとき、ＯＲ回路６０２は、“Ｌ”をＦＦ６０３へ出力する。
【００３６】
まとめると、ウェイ＃０から読み出されたデータが試験期待値と一致した場合、ＯＲ回路６０２は、ＦＦ６０３に対して“Ｌ”を出力し続ける。これに対して、ウェイ＃０から読み出されたデータが試験期待値と異なった場合、それ以降、ＯＲ回路６０２は、ＦＦ６０３に対して“Ｈ”を出力し続ける。
【００３７】
ＦＦ６０３は、ＯＲ回路６０２から入力を受ける。そして、ＦＦ６０３は、ＯＲ回路６０２がＡＮＤ回路６０１から次の入力を受けるまで、受信した値を保持する。そして、ＦＦ６０３は、ＯＲ回路６０２がＡＮＤ回路６０１から入力を受けるタイミングで保持している値をＯＲ回路６０２へ出力する。
【００３８】
これにより、ＦＦ６０３は、ウェイ＃０から読み出されたデータが試験期待値と一致した場合、“Ｌ”を保持し続ける。これに対して、ウェイ＃０から読み出されたデータが試験期待値と異なった場合、それ以降、ＦＦ６０３は、“Ｈ”を保持し続ける。
【００３９】
図２は、各判定ラッチに格納される値を説明するための一例の図である。ここでは、ウェイ＃０〜＃７に対応するそれぞれの判定ラッチを、判定ラッチ６０，６１，６２，６３，６４，６５，６６，６７とする。
【００４０】
例えば、ウェイ＃１に対応する判定ラッチ６１では、欄１１に示すように、期待値とウェイ＃１に対応するメモリアドレスから読み出した読出データとが一致している。そこで、欄１２に示すように、判定ラッチ６１は、“Ｌ”を保持している。すなわち、欄１３に示すように、ウェイ＃１の状態は「良」である。これに対して、ウェイ＃６に対応する判定ラッチ６６では、欄１４に示すように、期待値とウェイ＃６に対応するメモリアドレスから読み出した読出データとが不一致である。そこで、欄１５に示すように、判定ラッチ６６は、“Ｈ”を保持している。すなわち、欄１６に示すように、ウェイ＃６の状態は「不良」である。このように、判定ラッチ６０〜６７それぞれが保持する値により、対応するウェイの状態が分かる。
【００４１】
図１のＯＲ回路７は、判定ラッチ６０〜６７の各ＦＦ６０３が保持する値の入力を受ける。そして、ＯＲ回路７は、受信した値の論理和を求め、求めた値をスタートマーカ８へ出力する。例えば、ウェイ＃０〜＃７のいずれかのウェイから読み出されたデータと期待値とが異なった場合、ＯＲ回路７は、判定ラッチ６０〜６７のいずれかのＦＦ６０３から“Ｈ”を受ける。その場合、ＯＲ回路７は、論理和として“Ｈ”を求める。したがって、ウェイ＃０〜＃７のいずれかのウェイから読み出されたデータと期待値とが異なった場合、ＯＲ回路７は、“Ｈ”をスタートマーカ８へ出力する。
【００４２】
スタートマーカ８は、フリップフロップである。そして、スタートマーカ８は、ＯＲ回路７から受信した値を保持しておく。すなわち、ウェイ＃０〜＃７のいずれかのウェイから読み出されたデータと期待値とが異なった場合、スタートマーカ８は、“Ｈ”を保持する。これに対して、ウェイ＃０〜＃７のウェイから読み出されたデータと期待値とがいずれも一致した場合、スタートマーカ８は、“Ｌ”を保持する。
【００４３】
テスタ１０１は、スキャンクロックに基づいて、試験パターンに関する設定情報をＲＡＭ−ＢＩＳＴパターン生成部１へ送信して試験の設定であるスキャンインを行う。そして、テスタ１０１は、ＲＡＭ−ＢＩＳＴパターン生成部１、Ｌ２キャッシュ２、判定ラッチ６０〜６７、並びに、ＦＦ９１及び９２にシステムクロックを印加して試験を実行させる。
【００４４】
試験終了後、テスタ１０１は、スタートマーカ８及び判定ラッチ６０〜６７のそれぞれのＦＦ６０３の値をシリアルに読出しスキャンアウトを行う。具体的には、テスタ１０１は、スタートマーカ８、判定ラッチ６７，６６，６５，６４，６３，６２，６１，６０の順で値を読み出していく。
【００４５】
次に、テスタ１０１は、読み出した値の“Ｈ”の位置から不良が発生しているウェイを特定する。例えば、不良のウェイがある場合、テスタ１０１は、スタートマーカ８から“Ｈ”を読み出すことになる。そこで、テスタ１０１は、スキャンアウトしたときの最初に読み出した“Ｈ”をスタートマーカ８から読み出した値と判定する。そして、テスタ１０１は、最初に読み出した“Ｈ”から次の“Ｈ”がいくつ離れているかを求め、その距離により不良のウェイを特定する。例えば、図１の場合、最初に読み出した“Ｈ”から６つ“Ｌ”を挟んで次の“Ｈ”がある場合、テスタ１０１は、ウェイ＃６が不良であると判定する。
【００４６】
また、テスタ１０１は、合格基準値として予め閾値（例えば、ウェイ数）を記憶している。そして、テスタ１０１は、不良であるウェイの判定結果から不良ウェイ数を算出し、不良ウェイ数が予め記憶している閾値未満であればＬ２キャッシュ２が出荷可能と判定し、閾値以上であればＬ２キャッシュ２が出荷不可能と判定する。例えば、テスタ１０１は、不良ウェイ数が２未満であればＬ２キャッシュ２が出荷可能と判定し、２以上であれば出荷不可能と判定する。不良ウェイが存在する状態で出荷可能と判定した場合には、例えば、検出された不良ウェイを縮退させて動作しないようにして出荷することができる。
【００４７】
次に、図３を参照して、スキャン及びテストのタイミングについて説明する。図３は、スキャン及びテストのタイミングチャートである。図３の上段はスキャンクロックを表しており、下段はシステムクロックを表している。
【００４８】
テスタ１０１は、期間２１において、スキャンインを実施する。すなわち、テスタ１０１は、期間２１でスキャンクロックを用いて試験パターンに関する設定情報をＲＡＭ−ＢＩＳＴパターン生成部１へ送信する。
【００４９】
次に、期間２２において、半導体装置１００は、テスタ１０１から入力された外部入力クロックに基づいて生成されたシステムクロックで動作する。そして、半導体装置１００は、試験の設定にしたがいシステムクロックを用いて試験を行う。システムクロックの印加により、ＲＡＭ−ＢＩＳＴパターン生成部１は、期間２１で設定されたプログラムに従ってＭａｒｃｈなどのＲＡＭ試験パターンを生成する。Ｌ２キャッシュ部２は、ＲＡＭ−ＢＩＳＴパターン生成部１により生成されたＲＭＡ試験パターンを用いて試験される。
【００５０】
テスタ１０１は、期間２３において、スキャンアウトを実施する。すなわち、テスタ１０１は、期間２３でスキャンクロックを用いてスタートマーカ８及び判定ラッチ６０〜６７のそれぞれのＦＦ６０３の値をシリアルに読出す。その後、テスタ１０１は、読み出した結果を用いてメモリ内の各ウェイの良否を判定し、Ｌ２キャッシュが出荷可能な状態か否かを判定する。
【００５１】
図４は、情報の読出しの詳細を説明するための図である。図４の表示３１は、上段でスキャンクロックを表し、下段にスタートマーカ８の値を起点にして判定ラッチの値が並んでいる。
【００５２】
表示３１における期間３２はＬ期待区間である。すなわち、期間３２の間、テスタ１０１は、正常値として“Ｌ”の値が入力されることを期待しており、“Ｈ”が入力された場合不良が発生していると判定する。
【００５３】
そして、テスタ１０１は、図３の期間２３において、スキャンタイミングに合わせて表示３１のようにスタートマーカ８、判定ラッチ６７，６６，６５，６４，６３，６２，６１，６０の順で値を読み出していく。テスタ１０１は、先頭の“Ｈ”の値が入力されるとそれをスタートマーカ８の値と判定することができる。
【００５４】
例えば、図４では、テスタ１０１は、読出値３３で先頭の“Ｈ”を読出し、読出値３４で“Ｈ”を読み出している。この場合、テスタ１０１は、取得した値からウェイの良否を表示３５のように判定することができる。ここで、状態３６は、スタートマーカ８の状態であり、状態３７は、ウェイ＃０〜＃７のいずれかに不良があることを表している。まず、テスタ１０１は、状態３６の不良を判定することで、その後の８つの状態の中に不良箇所があることが分かる。そして、テスタ１０１は、状態３６に対する状態３７の位置から不良のウェイを特定する。図５は、各ウェイとテスタが判定した各ウェイの状態との対応を表す図である。テスタ１０１は、図４のように各ウェイの状態を判定すると、判定した状態は、図５の下段のように並ぶ。そして、テスタ１０１が読み出した最初の不良を表す状態４１は、スタートマーカに対応し、そのメモリのウェイ＃０〜＃７のいずれかが不良であることが分かる。そして、テスタ１０１は、状態４１から６つの良の状態を挟んで状態４２で不良が発生していることを把握する。状態４１から６つの良の状態を挟んだ次の状態４２は、ウェイ＃６に対応する。そこで、テスタ１０１は、ウェイ＃６が不良であることを把握する。ここで、図４及び図５では、１つのウェイが不良の状態を示したが、複数のウェイが不良の場合にも、先頭のスタートマーカ８は“Ｈ”の値となり、テスタ１０１は、先頭の“Ｈ”の値をスタートマーカ８の値と判定することができる。さらに、テスタ１０１は、その後のＬ待機区間において受信した“Ｈ”の位置により不良ウェイを特定することができる。
【００５５】
次に、図６を参照して、本実施例に係る半導体装置における試験の流れについて説明する。図６は、実施例に係る半導体装置における試験のフローチャートである。
【００５６】
テスタ１０１は、試験パターンに関する設定情報などの初期値をＲＡＭ−ＢＩＳＴパターン生成部１へ送信して、メモリの試験の設定をする（ステップＳ１）。
【００５７】
テスタ１０１は、システムクロックをＲＡＭ−ＢＩＳＴパターン生成部１などの半導体装置１００の各部に印加し、試験を開始させる（ステップＳ２）。
【００５８】
ＲＡＭ−ＢＩＳＴパターン生成部１は、試験パターンに従い試験対象メモリアドレス、ＲＡＭへのライトデータ及び期待値を生成する（ステップＳ３）。
【００５９】
Ｌ２キャッシュ２は、試験対象メモリアドレスをＲＡＭ−ＢＩＳＴパターン生成部１から受信する。そして、Ｌ２キャッシュ２は、指定された試験対象メモリアドレスにＲＡＭ−ＢＩＳＴパターン生成部１が出力したデータを書込む。次に、Ｌ２キャッシュ２は、試験対象メモリアドレスからデータを読み出す（ステップＳ４）。
【００６０】
ＸＯＲ回路３は、Ｌ２キャッシュ２から読み出された読出データ及びＲＡＭ−ＢＩＳＴパターン生成部１から出力された期待値の入力を受ける。そして、ＸＯＲ回路３は、試験対象メモリアドレスから読み出された読出データと期待値とを比較する（ステップＳ５）。具体的には、ＸＯＲ回路３は、試験対象メモリアドレスから読み出された読出データと期待値との排他的論理和を求める。
【００６１】
デコード部５は、ＲＡＭ−ＢＩＳＴパターン生成部１から出力された試験対象メモリアドレスをデコードし、判定ラッチ６０〜６７へ出力する（ステップＳ６）。具体的には、デコード部５は、試験対象メモリアドレスに対応する判定ラッチへ、読出データと期待値とが不一致の場合のＸＯＲ回路３からの出力と同じ値を出力する。
【００６２】
デコード部５により試験対象メモリアドレスに対応するとされた判定ラッチ６０〜６７は、読出しデータと期待値との判定結果をＦＦ６０３に格納する（ステップＳ７）。
【００６３】
テスタ１０１は、スタートマーカ８及び判定ラッチ６０〜６７のＦＦ６０３に格納されている値をシリアルに読出しスキャンアウトを行う（ステップＳ８）。
【００６４】
テスタ１０１は、読み出したデータの並びから不良ウェイを特定する（ステップＳ９）。
【００６５】
テスタ１０１は、試験パターンが終了したか否かを判定する（ステップＳ１０）。試験パターンが終了していない場合（ステップＳ１０：否定）、テスタ１０１は、ステップＳ３に戻る。
【００６６】
これに対して、試験パターンが終了した場合（ステップＳ１０：肯定）、テスタ１０１は、不良ウェイ数が閾値未満か否かを判定する（ステップＳ１１）。閾値未満の場合（ステップＳ１１：肯定）、テスタ１０１は、Ｌ２キャッシュ２が出荷可能と判定する（ステップＳ１２）。
【００６７】
一方、不良ウェイ数が閾値以上の場合（ステップＳ１１：否定）、テスタ１０１は、Ｌ２キャッシュ２が出荷不可と判定する（ステップＳ１３）。
【００６８】
次に、図７を参照して、本実施例に係るテスタ１０１による不良ウェイの判別処理について説明する。図７は、不良ウェイの判別処理のフローチャートである。
【００６９】
ここで、図７におけるＦａｉｌ  Ｂｕｆｆｅｒとは、テスタ１０１がスキャンアウトすることにより半導体装置１００から出力されるＲＡＭ−ＢＩＳＴ試験の試験結果を格納するテスタ１０１が有するバッファである。Ｆａｉｌ  Ｂｕｆｆｅｒは、図１には図示していない。
【００７０】
テスタ１０１は、Ｆａｉｌ  Ｂｕｆｆｅｒに格納されているＲＡＭ−ＢＩＳＴ試験の試験結果を順次読み出していく。そして、テスタ１０１は、読み出した試験結果が“Ｈ”か否かによりＦａｉｌがあるか否かを判定する（ステップＳ１０１）。具体的には、テスタ１０１は、試験結果が「Ｈ」の場合に、Ｆａｉｌがあると判定する。
【００７１】
Ｆａｉｌがある場合（ステップＳ１０１：肯定）、テスタ１０１は、最初に見つけた先頭のフェイルをスタートマーカと判定する。そして、テスタ１０１は、先頭のＦａｉｌ（スタートマーカ）から８パターン以内、すなわちスタートマーカから続く８個の試験結果の中からＦａｉｌを抽出する（ステップＳ１０２）。
【００７２】
次に、テスタ１０１は、抽出したＦａｉｌのスタートマーカからの位置を用いてＦａｉｌが発生しているウェイを特定し、特定したウェイが判別可能なように、８ウェイ中の不良ウェイをマークする（ステップＳ１０３）。
【００７３】
そして、テスタ１０１は、処理した先頭のＦａｉｌと先頭のフェイルから８パターン以内のＦａｉｌをＦａｉｌ  Ｂｕｆｆｅｒから削除する(ステップＳ１０４)。その後、テスタ１０１は、ステップＳ１０１へ戻る。
【００７４】
一方、Ｆａｉｌ  ＢｕｆｆｅｒｎｉにＦａｉｌがない場合（ステップＳ１０１：否定）、テスタ１０１は、不良ウェイの判別を終了する。
【００７５】
ここで、以上では、メモリが一つの場合で説明したが、メモリは複数あってもよい。その場合、全てのメモリに対して、ＸＯＲ回路３、デコード部５、判定ラッチ６０〜６７、ＯＲ回路７、スタートマーカ８、並びに、ＦＦ９１及び９２が設けられる。そして、テスタ１０１は、各メモリに対応するスタートマーカ８及び判定ラッチ６０〜６７のＦＦ６０３のそれぞれに格納されている値をシリアルで読込む。
【００７６】
この場合も、テスタ１０１は、読込んだ値の列の最初に出てくる“Ｈ”をいずれかのメモリのスタートマーカ８の値とし、その後の８つの値の内の“Ｈ”から不良ウェイを特定する。そして、次に、テスタ１０１は、スタートマーカ８とその後に続く８つの値に続く値の列の最初に出てくる“Ｈ”をいずれかのメモリのスタートマーカ８の値とし、その後の８つの値の内の“Ｈ”から不良ウェイを特定する。この場合、テスタ１０１は、不良のウェイを有するメモリがどのメモリかは特定できないが、不良のウェイを特定することはできる。このようにすることで、テスタ１０１は、いずれのウェイが不良となっているかの情報を取得することができ、不良のウェイの情報から不良ウェイ数を求めることができる。
【００７７】
（ハードウェア構成）
図８は、実施例に係る半導体装置が搭載されたＣＰＵのハードウェア構成図である。
【００７８】
図８に示すように、ＣＰＵ９００は、コア９０１〜９０４、Ｌ２キャッシュ回路９０５、ＲＡＭ−ＢＩＳＴパターンジェネレータ回路９０６及びＪＴＡＧ（Joint  Test  Action  Group）回路９０７を有している。
【００７９】
ＪＴＡＧ回路９０７は、Ｌ２キャッシュ回路９０５やコア９０１〜９０４などの内部に設けられたテスト用の回路にアクセスし、端子の状態の操作や内部回路との通信を行う。
【００８０】
テスタ１０１は、ＪＡＴＧ回路９０７を介してＲＡＭ−ＢＩＳＴパターンジェネレータ回路９０６などへのスキャンインを行う。また、テスタ１０１は、ＪＴＡＧ回路９０７を介してスキャンアウトを行う。テスタ１０１は、ＪＴＡＧ回路９０７、ＲＡＭ−ＢＩＳＴパターンジェネレータ回路９０６、Ｌ２キャッシュ回路９０５、コア９０１〜９０４、ＪＴＡＧ回路９０７の順にスキャンパスを構築する。スキャンパスはコア９０１〜９０４及びＬ２キャッシュ回路９０５のそれぞれに配置されているＦＦを数珠繋ぎに繋いでいる。
【００８１】
ここで、図８では、１つのスキャンパスを例示しているが、コア９０１〜９０４やＬ２キャッシュ回路９０５等の回路規模に応じて、スキャンパスを分割して、分割したいずれかのスキャンパスを用いてＲＡＭ−ＢＩＳＴ試験結果を読み出すようにしてもよい。
【００８２】
ＲＡＭ−ＢＩＳＴパターンジェネレータ回路９０６は、例えば図１に示すＲＡＭ−ＢＩＳＴパターン生成部１の機能を実現する。ＲＡＭ−ＢＩＳＴパターンジェネレータ回路９０６は、試験パターンをＬ２キャッシュ回路９０５へ送る。
【００８３】
Ｌ２キャッシュ回路９０５は、例えば図１に示すＬ２キャッシュ２を搭載している。さらに、Ｌ２キャッシュ回路９０５は、ＸＯＲ回路３、デコード部５、判定ラッチ６０〜６７、ＯＲ回路７、スタートマーカ８、並びに、ＦＦ９１及び９２などの機能を実現する。
【００８４】
コア９０１〜９０４は、計算処理を行う。
【００８５】
以上に説明したように、本実施例に係る半導体装置は１回のＲＡＭ−ＢＩＳＴテストでメモリが有する各ウェイの良否を判定することができる。これにより、短時間で半導体の試験を行うことができる。
【符号の説明】
【００８６】
１  ＲＡＭ−ＢＩＳＴパターン生成部
２  Ｌ２キャッシュ
３  ＸＯＲ回路
５  デコード部
７  ＯＲ回路
８  スタートマーカ
６０〜６７  判定ラッチ
９１，９２  ＦＦ
１００  半導体装置
１０１  テスタ
６０１  ＡＮＤ回路
６０２  ＯＲ回路
６０３  ＦＦ
【図１】
2014049165.tif 000003
【図２】
2014049165.tif 000004
【図３】
2014049165.tif 000005
【図４】
2014049165.tif 000006
【図５】
2014049165.tif 000007
【図６】
2014049165.tif 000008
【図７】
2014049165.tif 000009
【図８】
2014049165.tif 000010