(57)【要約】【課題】キャッシュメモリは、ヒット信号等ＳＲＡＭ等のメモリにはない機能部分を有しているため自動生成化技術の進歩しているＳＲＡＭ等のメモリ用ＢＩＳＴコントローラを適用できず、ＬＳＩ外部に接続したテスト装置等で検査を実施する必要があり、ＳＲＡＭ等のメモリとは別にテスト時間を要した。【解決手段】キャッシュメモリ固有の機能テストを含めたキャッシュメモリの機能テストを実行しキャッシュメモリ２０２の不良個所を診断するキャッシュＢＩＳＴコントローラ２０４を設ける。これにより、外部に接続したテスト装置を用いた場合のようにＬＳＩの品種毎のプログラムの書き換えが不要となる上、同一ＬＳＩに内蔵されているキャッシュメモリ以外のＳＲＡＭ等のメモリと同時並行してキャッシュメモリのテストが可能となり、テスト時間の短縮が図れる。【選択図】        図９
2004318209.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリを備えた半導体集積回路装置であって、
前記キャッシュメモリ固有の機能テストを含めた前記キャッシュメモリの機能テストを実行し前記キャッシュメモリの不良個所を診断する自己診断回路を設けたことを特徴とする半導体集積回路装置。
【請求項２】
キャッシュメモリとＣＰＵとを備えた半導体集積回路装置であって、
前記キャッシュメモリ固有の機能テストを含めた前記キャッシュメモリの機能テストを実行し前記キャッシュメモリの不良個所を診断する自己診断回路を設け、前記自己診断回路が前記ＣＰＵを介して前記キャッシュメモリと接続されることを特徴とする半導体集積回路装置。
【請求項３】
キャッシュメモリと外部メモリインタフェースを有するＣＰＵとを備えた半導体集積回路装置であって、
前記キャッシュメモリ固有の機能テストを含めた前記キャッシュメモリの機能テストを実行し前記キャッシュメモリの不良個所を診断する自己診断回路を設け、前記自己診断回路が前記外部メモリインタフェースおよびＣＰＵを介して前記キャッシュメモリと接続されることを特徴とする半導体集積回路装置。
【請求項４】
前記キャッシュメモリは複数のブロックで構成されており、前記自己診断回路は前記キャッシュメモリを構成するブロックごとに順次機能テストを実行することを特徴とする請求項２または３記載の半導体集積回路装置。
【請求項５】
前記自己診断回路は、前記キャッシュメモリ固有の機能テスト以外のＳＲＡＭ等のメモリに共通の機能テストを実行する共通機能テスト手段に、前記キャッシュメモリ固有の機能テストを実行するキャッシュメモリ固有機能テスト手段を付加したことを特徴とする請求項１〜３のうちいずれかに記載の半導体集積回路装置。
【請求項６】
前記自己診断回路は、前記共通機能テスト手段で生成する前記キャッシュメモリへの入力データに、前記キャッシュメモリ固有機能テスト手段で生成する前記キャッシュメモリに固有の機能制御信号を付加して前記キャッシュメモリへ出力することを特徴とする請求項５記載の半導体集積回路装置。
【請求項７】
前記共通機能テスト手段は前記キャッシュメモリからの出力データの良否を判定し、前記キャッシュメモリ固有機能テスト手段は前記共通機能テスト手段による判定結果と前記キャッシュメモリからのヒット信号とを用いて前記キャッシュメモリに固有の機能の判定を行うことを特徴とする請求項５記載の半導体集積回路装置。
【請求項８】
バーンインテストでの前記キャッシュメモリと前記ＣＰＵの両方のトグルを実行する手段を設けたことを特徴とする請求項２または３記載の半導体集積回路装置。
【請求項９】
前記トグルを実行する手段は、前記バーンインテストにおいて前記自己診断回路による前記キャッシュメモリの自己診断終了後に前記ＣＰＵのスキャンテストモードに移行させることを特徴とする請求項８記載の半導体集積回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュメモリとその検査回路を内蔵した半導体集積回路装置に関するものである。
【０００２】
【従来の技術】
従来、ＳＲＡＭやＤＲＡＭ、ＥＥＰＲＯＭメモリに対しては、ＣＰＵとメモリの間にセレクタを挿入し、メモリの故障を自己診断するメモリＢＩＳＴ回路が自動生成ツールとして用意されている（例えば、特許文献１参照。）。
【０００３】
また、従来のキャッシュメモリを内蔵したＬＳＩでは、ＬＳＩ外部に接続したテスト装置により、外部バスインタフェースを介してキャッシュメモリをテストしている（例えば、特許文献２参照。）。
【０００４】
【特許文献１】
特表２００２−５２３８９４号公報
【特許文献２】
特開平５−１２８０００号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、従来のメモリＢＩＳＴ回路では、ＳＲＡＭ等のメモリのテスト項目であるチェッカーテストやマーチテストは実行できるものの、バリッドビットオールクリア等のキャッシュメモリ固有のテスト項目が実行できず、キャッシュメモリには適用できないという問題があった。
【０００６】
また、従来のＬＳＩ外部に接続したテスト装置によりキャッシュメモリをテストする方法では、同一の構成を持つキャッシュメモリが搭載されているＬＳＩにおいても外部端子仕様は各ＬＳＩによって異なるため、テスト装置のプログラムをＬＳＩの種類が変わるごとに書き換える必要があるという問題があった。
【０００７】
さらに、従来のＬＳＩ外部に接続したテスト装置によりキャッシュメモリをテストする方法では、同一ＬＳＩに搭載されているＳＲＡＭ等のメモリは各メモリに接続したメモリＢＩＳＴ回路により同時並行してテストを実行が可能であるのに対し、外部のテスト装置は同時実行が困難なためキャッシュメモリのテスト時間をＳＲＡＭ等のメモリのテスト時間とは別に必要とする場合があるという問題があった。
【０００８】
なお、キャッシュメモリは、単純にアドレスを指定して例えば１を書き込み、同アドレスにアクセスすると１が読み出せるＳＲＡＭ等のメモリと同等のメモリセル部分に加えて、リフィルビット、バリッドビット、ライトバックバッファなどの機能部分を併せ持つメモリであり、実際の物理的構成としては、メモリセル部分と機能部分が混在している（独立していない）ため、メモリセル部分のみを切り出してＳＲＡＭ等のメモリ用のＢＩＳＴコントローラ（前述のメモリＢＩＳＴ回路）を接続することはできない。
【０００９】
本発明は上記の従来の問題点を解決するもので、キャッシュメモリ固有の機能部分を含む自己診断を実行する回路を内蔵した半導体集積回路装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明の請求項１記載の半導体集積回路装置は、キャッシュメモリを備えた半導体集積回路装置であって、キャッシュメモリ固有の機能テストを含めたキャッシュメモリの機能テストを実行しキャッシュメモリの不良個所を診断する自己診断回路を設けたことを特徴とする。
【００１１】
請求項１の構成によれば、自己診断回路によりキャッシュメモリ固有の機能部分を含む自己診断を実行することができ、また自己診断回路を内蔵しているため、外部に接続したテスト装置を用いた場合のようにＬＳＩの品種毎のプログラムの書き換えが不要となる上、同一ＬＳＩにキャッシュメモリ以外のＳＲＡＭ等のメモリとそのメモリの自己診断回路が内蔵されている場合に、ＳＲＡＭ等のメモリと同時並行してキャッシュメモリのテストが可能となり、外部に接続したテスト装置を用いた場合に別途必要であったキャッシュメモリのテスト時間が不要となり、テスト時間の短縮が図れる。
【００１２】
本発明の請求項２記載の半導体集積回路装置は、キャッシュメモリとＣＰＵとを備えた半導体集積回路装置であって、キャッシュメモリ固有の機能テストを含めたキャッシュメモリの機能テストを実行しキャッシュメモリの不良個所を診断する自己診断回路を設け、自己診断回路がＣＰＵを介してキャッシュメモリと接続されることを特徴とする。
【００１３】
請求項２の構成によれば、請求項１と同様の効果が得られる他、キャッシュメモリとＣＰＵ間のアクセスの遅延が大きい場合でも動作速度を低下させることなく、キャッシュメモリの自己診断を実行することが可能となる。
【００１４】
本発明の請求項３記載の半導体集積回路装置は、キャッシュメモリと外部メモリインタフェースを有するＣＰＵとを備えた半導体集積回路装置であって、キャッシュメモリ固有の機能テストを含めたキャッシュメモリの機能テストを実行しキャッシュメモリの不良個所を診断する自己診断回路を設け、自己診断回路が外部メモリインタフェースおよびＣＰＵを介してキャッシュメモリと接続されることを特徴とする。
【００１５】
請求項３の構成によれば、請求項１と同様の効果が得られる他、ＣＰＵ全体のデータ入出力タイミングに余裕がない場合でも動作速度を低下させることなく、キャッシュメモリの自己診断を実行することが可能となる。
【００１６】
また、請求項４記載の半導体集積回路装置は、請求項２または３記載の半導体集積回路装置において、キャッシュメモリは複数のブロックで構成されており、自己診断回路はキャッシュメモリを構成するブロックごとに順次機能テストを実行することを特徴とする。
【００１７】
請求項４の構成によれば、請求項２または３と同様の効果が得られる他、自己診断回路の回路規模を小さくできる。
【００１８】
また、請求項５記載の半導体集積回路装置は、請求項１〜３のうちいずれかに記載の半導体集積回路装置において、自己診断回路は、キャッシュメモリ固有の機能テスト以外のＳＲＡＭ等のメモリに共通の機能テストを実行する共通機能テスト手段に、キャッシュメモリ固有の機能テストを実行するキャッシュメモリ固有機能テスト手段を付加したことを特徴とする。
【００１９】
請求項５の構成によれば、請求項１〜３と同様の効果が得られる他、ＳＲＡＭ等のメモリの自己診断回路構成技術を活用した上で小規模の回路追加によりキャッシュメモリの自己診断回路を実現することができる。
【００２０】
また、請求項６記載の半導体集積回路装置は、請求項５記載の半導体集積回路装置において、自己診断回路は、共通機能テスト手段で生成するキャッシュメモリへの入力データに、キャッシュメモリ固有機能テスト手段で生成するキャッシュメモリに固有の機能制御信号を付加してキャッシュメモリへ出力することを特徴とする。
【００２１】
請求項６の構成によれば、請求項５と同様の効果が得られる。
【００２２】
また、請求項７記載の半導体集積回路装置は、請求項５記載の半導体集積回路装置において、共通機能テスト手段はキャッシュメモリからの出力データの良否を判定し、キャッシュメモリ固有機能テスト手段は共通機能テスト手段による判定結果とキャッシュメモリからのヒット信号とを用いてキャッシュメモリに固有の機能の判定を行うことを特徴とする。
【００２３】
請求項７の構成によれば、請求項５と同様の効果が得られる。
【００２４】
また、請求項８記載の半導体集積回路装置は、請求項２または３記載の半導体集積回路装置において、バーンインテストでのキャッシュメモリとＣＰＵの両方のトグルを実行する手段を設けたことを特徴とする。
【００２５】
請求項８の構成によれば、請求項２または３と同様の効果が得られる他、バーンインテストでのキャッシュメモリとＣＰＵの両方のトグルを実行することができる。
【００２６】
また、請求項９記載の半導体集積回路装置は、請求項８記載の半導体集積回路装置において、トグルを実行する手段は、バーンインテストにおいて自己診断回路によるキャッシュメモリの自己診断終了後にＣＰＵのスキャンテストモードに移行させることを特徴とする。
【００２７】
請求項９の構成によれば、請求項８と同様の効果が得られる他、バーンインテスト時に、自己診断回路の動作によりキャッシュメモリの全領域をトグルした上でスキャンテストモードに移行させて、結果的にＬＳＩの全領域のトグルをも可能とする。
【００２８】
【発明の実施の形態】
（第１の実施の形態）
図１は本発明の第１の実施の形態の構成を示すブロック図である。
【００２９】
１０１はＬＳＩであり、キャッシュメモリ１０２、ＣＰＵ１０３、セレクタ１０４、キャッシュＢＩＳＴコントローラ１０５から構成される。
【００３０】
ＣＰＵ１０３は、セレクタ１０４を介してキャッシュメモリ１０２にチップセレクト（ＣＳ）、ライトイネーブル（ＷＥ）、リードイネーブル（ＲＥ）、アドレスを出力し、セレクタ１０４を介してキャッシュメモリ１０２とデータの入出力を行う。
【００３１】
セレクタ１０４は、ＣＳおよび、ＷＥ、ＲＥ、アドレス、データ、機能制御信号について、通常動作モードの場合はＣＰＵ１０３からの信号を選択してキャッシュメモリ１０２へ出力し、キャッシュＢＩＳＴテストモードの場合はキャッシュＢＩＳＴコントローラ１０５からの信号を選択してキャッシュメモリ１０２へ出力し、キャッシュメモリ１０２から入力されたデータをそのままＣＰＵ１０３、キャッシュＢＩＳＴコントローラ１０５へ出力する。
【００３２】
キャッシュメモリ１０２は、データとして命令を記憶するための命令キャッシュ部分と命令以外のデータを記憶するためのデータキャッシュ部分とを備え、さらにそれぞれの部分がタグ記憶部分とデータ記憶部分とに分かれており、命令キャッシュタグメモリ部１０６、命令キャッシュデータメモリ部１０７、データキャッシュタグメモリ部１０８、データキャッシュデータメモリ部１０９の４つのブロックから構成される。
【００３３】
図２〜図５を用いてキャッシュメモリ１０２についてより詳しく説明する。図２は命令キャッシュタグメモリ部１０６の構成を示すブロック図である。命令キャッシュタグメモリ部１０６は、セレクタ１０４から供給される命令キャッシュタグメモリ部用のチップセレクトおよびライトイネーブル、リードイネーブル、アドレスの各信号に従ってデータの入出力を行う。さらに、タグの一致比較をしてヒット信号を出力し、セレクタ１０４から供給されるリフィルビットオールクリア信号またはバリッドビットオールクリア信号を受けてそれぞれリフィルビットアレイとバリッドビットアレイの一括消去を実行する。
【００３４】
以下、図２中の構成要素について詳しい説明をしておく。なお、キャッシュメモリ１０２は、ＣＰＵ１０３の近くに配置された小容量・高速なメモリで、最近にアクセスされたデータや命令コードを保持し、ＣＰＵ１０３が必要とする項目がキャッシュメモリ１０２内に存在しなければキャッシュミスが起こり、外部メモリインタフェース（図示せず）に接続されている外部メモリ（主記憶メモリ）からデータが検索されてキャッシュメモリ１０２に格納される。通常、ＣＰＵ１０３はデータが使用可能になるまで一時停止している。
【００３５】
キャッシュミスが発生した場合において、外部メモリからキャッシュメモリへデータが転送中であることを示すフラグがリフィルビットであり、この転送が行われる単位をエントリという。リフィルビットはエントリごとに１ビットずつ存在し、全エントリ分のリフィルビットをまとめたものがリフィルビットアレイである。リフィルビットオールクリア信号がアサートされると、リフィルビットアレイ中の全ビットがクリアされる。
【００３６】
キャッシュメモリに格納されているデータや命令コードが有効であるかどうかを示すのがバリッドビットであり、バリッドビットはエントリごとに１ビットずつ存在し、全エントリ分のバリッドビットをまとめたものがバリッドビットアレイである。バリッドビットオールクリア信号がアサートされると、バリッドビットアレイ中の全ビットがクリアされる。
【００３７】
キャッシュメモリには、各エントリを格納できる場所（ウェイという）が２つ以上あるものがあり、この方式はセットアソシアティブ方式と呼ばれる。セットアソシアティブ方式のキャッシュメモリにおいて、命令キャッシュがキャッシュミスを起こした場合、主記憶メモリからは、使用された時点が最も古いウェイに対してデータの転送が行われる。使用された時点が最も古いウェイを示すのがＬＲＵ（ｌｅａｓｔ  ｒｅｃｅｎｔｌｙ  ｕｓｅｄ）ビットであり、ＬＲＵビットはエントリごとに１ビットずつ存在し、全エントリ分のＬＲＵビットをまとめたものがＬＲＵビットアレイである。
【００３８】
また、ＣＰＵが必要とする項目がキャッシュメモリ内に存在するかどうかを示すために、タグメモリアレイに、キャッシュメモリ内に格納したデータの転送元アドレスの上位部分をタグデータ（タグ）として格納する。コンパレータは、ＣＰＵから送られてきたアドレスとタグデータを比較して、それらが一致しており、かつバリッドビットが有効を示している場合には、１を、そうでなければ０をキャッシュヒット信号として出力する。
【００３９】
図３は命令キャッシュデータメモリ部１０７の構成を示すブロック図である。命令キャッシュデータメモリ部１０７は、セレクタ１０４から供給されるＣＳおよびＷＥ、ＲＥ、アドレスの各信号に従ってデータの入出力を行う。
【００４０】
図４はデータキャッシュタグメモリ部１０８の構成を示すブロック図である。データキャッシュタグメモリ部１０８は、セレクタ１０４から供給されるＣＳおよびＷＥ、ＲＥ、アドレスの各信号に従ってデータの入出力を行う。さらに、タグの一致比較をしてヒット信号を出力し、セレクタ１０４から供給されるリフィルビットオールクリア信号またはバリッドビットオールクリア信号を受けてそれぞれリフィルビットアレイとバリッドビットアレイの一括消去を実行し、セレクタ１０４から供給されるライトバッファ転送要求信号を受けてライトバッファ転送を行う。ライトバッファが存在し、ＬＲＵビットが存在しないこと以外の構成要素については、図２の命令キャッシュタグメモリ１０６中の対応する構成要素と基本的に同様である。ライトバッファは、主記憶メモリに対する書き込み待ちのデータを一時的に蓄積しておく場所のことであり、ＣＰＵが書き込みをするときにキャッシュミスが発生した場合に、データキャッシュタグメモリアレイ（図５の場合はデータキャッシュデータメモリアレイ）の該当するエントリの内容をライトバッファにコピーすることをライトバッファ転送という。
【００４１】
図５はデータキャッシュデータメモリ部１０９の構成を示すブロック図である。データキャッシュデータメモリ部１０９は、セレクタ１０４から供給されるＣＳおよびＷＥ、ＲＥ、アドレスの各信号に従ってデータの入出力を行う。さらに、セレクタ１０４から供給されるライトバッファ転送要求信号を受けてライトバッファ転送を行う。このライトバッファは、図４中のライトバッファと基本的に同様である。ライトバッファへ転送された内容が、主記憶メモリに書き込まれていないことを示すビットがダーティビットであり、ダーティビットは各エントリごとに１ビットずつ存在し、全エントリ分のダーティビットをまとめたものがダーティビットアレイである。
【００４２】
また、データキャッシュでは、ＣＰＵが書き込みを行う際に、例えば３２ビットＣＰＵの場合、１度に書き込み、読み出しのできる４バイト（３２ビット）全部を書き込まず、そのうちの一部のバイトのみを書き込む場合があり、４バイトのうちのどのバイト分のみ書き込むかを示すのがバイトイネーブル信号であり、各バイトに対応して計４ビット存在する。データキャッシュデータメモリ部１０９のデータメモリアレイは、送られてきたデータ（本例では３２ビット幅）のうち、バイトイネーブル信号に対応する部分のみに対して書き込みを行う。
【００４３】
次にキャッシュＢＩＳＴコントローラ１０５について詳しく説明する。図６はキャッシュＢＩＳＴコントローラ１０５の構成を表すブロック図である。
【００４４】
キャッシュＢＩＳＴコントローラ１０５は、テスト制御部１１０、ＣＳ・ＷＥ・ＲＥ生成部１１１、アドレス生成部１１２、データ生成部１１３、データ比較部１１４から構成される。
【００４５】
テスト制御部１１０は、キャッシュＢＩＳＴテスト開始信号を受けるとＣＳ・ＷＥ・ＲＥ生成部１１１および、アドレス生成部１１２、データ生成部１１３、データ比較部１１４を制御してキャッシュメモリ１０２が必要とするテスト項目に応じて順次自己診断を進行させ、キャッシュＢＩＳＴホールド信号を受けるとテスト回路をホールド状態とし、自己診断が終了するとキャッシュＢＩＳＴテスト終了信号を出力する。
【００４６】
ＣＳ・ＷＥ・ＲＥ生成部１１１は、テスト制御部１１０から供給されるテスト状態信号の値に従ってＣＳおよび、ＷＥ、ＲＥの信号を生成しセレクタ１０４へ出力する。
【００４７】
アドレス生成部１１２は、テスト制御部１１０から供給されるテスト状態信号の値に従ってアドレス信号を生成しセレクタ１０４へ出力し、そのアドレスとあらかじめ設定された実行中のテストでの最終アドレス値（これはテスト状態信号のうちのテスト種別信号が示すテストでの最終アドレス値）とを比較して一致する場合は１、一致しない場合は０を最終アドレス信号としてテスト制御部１１０に出力する。テスト制御部１１０では、最終アドレス信号が０の場合はそのときのテスト種別信号をそのまま維持し、最終アドレス信号が１になると、テスト種別信号を次のテストを示す値に変化させる。なお、テスト種別信号については後述する。
【００４８】
図７はデータ生成部１１３の構成を示すブロック図である。１１〜２１は複数の入力の中からテスト状態信号の値に基づいて１つの入力を選択し出力する選択回路である。選択回路１１、１２、１３は、セレクタ１０４を介して命令キャッシュタグメモリ部１０６へ供給される入力データ（テストデータ）、リフィルビットオールクリア信号、バリッドビットオールクリア信号を出力する。選択回路１４は、セレクタ１０４を介して命令キャッシュデータメモリ部１０７へ供給される入力データ（テストデータ）を出力する。選択回路１５、１６、１７、１８は、セレクタ１０４を介してデータキャッシュタグメモリ部１０８へ供給される入力データ（テストデータ）、リフィルビットオールクリア信号、バリッドビットオールクリア信号、ライトバッファ転送要求信号を出力する。選択回路１９、２０、２１は、セレクタ１０４を介してデータキャッシュデータメモリ部１０９へ供給される入力データ（テストデータ）、ライトバッファ転送要求信号、バイトイネーブル信号を出力する。また、１ａ〜１ｄはテストデータ発生部、２ａ〜２ｆおよび３ａは信号発生部である。
【００４９】
このようにデータ生成部１１３は、テスト制御部１１０から供給されるテスト状態信号の値に従ってテストデータおよび機能制御信号（リフィルビットオールクリア信号、バリッドビットオールクリア信号、ライトバッファ転送要求信号、バイトイネーブル信号）を生成し、セレクタ１０４へ出力する。
【００５０】
図８はデータ比較部１１４の構成を示すブロック図である。３１〜３４は２つの入力データが一致したときに０を、不一致のときは１を出力する不一致検出回路（排他的論理和回路）である。３５、３６、４２、４３はそれぞれ複数の入力の中からテスト状態信号の値に基づいて１つの入力を選択し出力する選択回路である。３７は４入力の論理和回路、３８〜４１は論理積回路である。
【００５１】
データ比較部１１４は、テスト制御部１１０から供給されるテスト状態信号の値に従ってデータ生成部１１３からの期待値データとセレクタ１０４からのデータを比較し、さらにセレクタ１０４からのヒット信号を判定して比較結果を出力する。
【００５２】
以上のように構成されたＬＳＩについて、以下にその動作を説明する。
【００５３】
キャッシュＢＩＳＴテスト開始信号を０に設定すると、ＬＳＩ１０１は通常動作モードとなる。通常動作モードの場合、セレクタ１０４はＣＰＵ１０３から供給されるキャッシュメモリ１０２の各ブロック用の信号群を選択し、対応するキャッシュメモリ１０２の各ブロックへ出力する。
【００５４】
キャッシュＢＩＳＴテスト開始信号を１に設定すると、ＬＳＩ１０１はキャッシュＢＩＳＴテストモードとなる。キャッシュＢＩＳＴテストモードの場合、セレクタ１０４はキャッシュＢＩＳＴコントローラ１０５から供給されるキャッシュメモリ１０２の各ブロック用の信号群を選択し、対応するキャッシュメモリ１０２の各ブロックへ出力する。
【００５５】
キャッシュＢＩＳＴテストモードの場合、テスト制御部１１０は、ＳＲＡＭ等のメモリのテスト項目であるマーチテストとチェッカーテストに加えて、キャッシュメモリ固有のテスト項目であるコンパレータテスト（ヒットテストおよびミステスト）、リフィルビットオールクリアテスト、バリッドビットオールクリアテスト、バイトイネーブルテスト、ライトバッファ転送テストの各テスト項目に対応したテスト状態信号を順次出力する。このようにテスト制御部１１０は、キャッシュＢＩＳＴテストモードになると、各テスト項目を予め定められた順番に行うようにテスト状態信号の値を順次変更し出力する。
【００５６】
また、テスト制御部１１０は、キャッシュＢＩＳＴテストモードの場合、全テストが終了するとキャッシュＢＩＳＴテスト終了信号に１を出力し、全テストが終了していない場合はキャッシュＢＩＳＴテスト終了信号に０を出力する。また、テスト制御部１１０はキャッシュＢＩＳＴホールド信号を１に設定するとキャッシュＢＩＳＴコントローラ１０５の動作を停止させ、停止する直前の状態を維持させ、その後キャッシュＢＩＳＴホールド信号を０に設定するとキャッシュＢＩＳＴコントローラ１０５の動作を再開する。
【００５７】
キャッシュＢＩＳＴテストモードの場合、データ生成部１１３は、テスト状態信号の値に従ってキャッシュメモリ１０２への入力データ（テストデータ）に加えて機能制御信号、すなわちリフィルビットオールクリア信号およびバリッドビットオールクリア信号、ライトバッファ転送要求信号、バイトイネーブル信号をキャッシュメモリ１０２への入力データの付加ビットとして生成する。
【００５８】
キャッシュＢＩＳＴテストモードの場合、データ比較部１１４は、キャッシュメモリ１０２から供給されるヒット信号をキャッシュメモリ１０２からの出力データの付加ビットとして取り扱い、テスト状態信号に従ってヒット信号の判定が必要な場合は出力データの比較とヒット信号の判定結果を合わせた上でキャッシュメモリ１０２の値もしくは機能動作が正常である場合はキャッシュ故障情報信号として０を出力し、キャッシュメモリ１０２の値もしくは機能動作が正常でない場合は１を出力する。
【００５９】
以下、さらに詳細に説明する。テスト制御部１１０が生成するテスト状態信号は、次の（１）〜（８）の信号から構成される。
【００６０】
（１）テスト種別信号
テスト種別信号は、テストの種類を示し、ＣＳ・ＷＥ・ＲＥ生成部１１１およびアドレス生成部１１２、データ生成部１１３、データ比較部１１４に送信される。このテスト種別信号は初期化以降は、マーチイニシャライズ、マーチ昇順１パターン、マーチ昇順０パターン、マーチ降順１パターン、マーチ降順０パターン、チェッカー表パターン書き込み、チェッカー表パターン読み出し、チェッカー裏パターン書き込み、チェッカー裏パターン読み出し、コンパレータヒットパターン書き込み、コンパレータヒットパターン読み出し、コンパレータミスパターン書き込み、コンパレータミスパターン読み出し、リフィルビットオールクリア・バリッドビットオールクリアテスト用データ書き込み、リフィルビットオールクリア、リフィルビットオールクリア後読み出し、バリッドビットオールクリア、バリッドビットオールクリア後読み出し、バイトイネーブル書き込み、バイトイネーブル書き込み後読み出し、タグライトバッファ転送用タグ書き込み、タグライトバッファ転送、タグライトバッファ読み出し、データライトバッファ転送用データ書き込み、データライトバッファ転送、データライトバッファ読み出しおよび完了の各テスト状態を示す値を順次出力する。なお、ＳＲＡＭ等のメモリ用ＢＩＳＴコントローラでは、前記各テスト状態のうちマーチイニシャライズからチェッカー裏パターン読み出しまでのみを順次出力する。
【００６１】
マーチテストに対応するテスト種別信号は、マーチイニシャライズおよびマーチ昇順１パターン、マーチ昇順０パターン、マーチ降順１パターン、マーチ降順０パターンのテスト状態を示す信号である。
【００６２】
チェッカーテストに対応するテスト種別信号は、チェッカー表パターン書き込みおよびチェッカー表パターン読み出し、チェッカー裏パターン書き込み、チェッカー裏パターン読み出しのテスト状態を示す信号である。
【００６３】
コンパレータテストに対応するテスト種別信号は、コンパレータヒットパターン書き込みおよびコンパレータヒットパターン読み出し、コンパレータミスパターン書き込み、コンパレータミスパターン読み出しのテスト状態を示す信号である。
【００６４】
リフィルビットオールクリアテストに対応するテスト種別信号は、リフィルビットオールクリア・バリッドビットオールクリアテスト用データ書き込み、リフィルビットオールクリア、リフィルビットオールクリア後読み出しのテスト状態を示す信号である。
【００６５】
バリッドビットオールクリアテストに対応するテスト種別信号は、バリッドビットオールクリア、バリッドビットオールクリア後読み出しのテスト状態を示す信号である。
【００６６】
バイトイネーブルテストに対応するテスト種別信号は、バイトイネーブル書き込みおよびバイトイネーブル書き込み後読み出しのテスト状態を示す信号である。
【００６７】
ライトバッファ転送テストに対応するテスト種別信号は、タグライトバッファ転送用タグ書き込みおよびタグライトバッファ転送、タグライトバッファ読み出し、データライトバッファ転送用データ書き込み、データライトバッファ転送、データライトバッファ読み出しのテスト状態を示す信号である。
【００６８】
（２）書き込み読み出し状態信号
書き込み読み出し状態信号は、ＣＳ・ＷＥ・ＲＥ生成部１１１およびデータ比較部１１４へ出力される。初期化以降は例えば０から７までの値を繰り返し出力することで、ＣＳ、ＷＥ、ＲＥのアサートタイミングおよび、データを比較するタイミング（以下、比較タイミングという）を示す。
【００６９】
（３）アドレス進行制御信号
アドレス進行制御信号は、アドレス生成部１１２に出力される。テスト種別信号がマーチ降順１パターンまたはマーチ降順０パターンのときは１を出力し、それ以外の場合は０を出力する。アドレスの進行方向が昇順か降順かを示す。
【００７０】
（４）パターン種別信号
パターン種別信号は、テストデータのパターンの種類を示す。テスト種別信号から生成される。データ生成部１１３へ出力される。テスト種別信号がマーチイニシャライズまたはマーチ昇順０パターン、マーチ降順０パターンの場合は０、マーチ昇順１パターンまたはマーチ降順１パターンの場合は１、チェッカー表パターン書き込みまたはチェッカー表パターン読み出しの場合は２、チェッカー裏パターン書き込みまたはチェッカー裏パターン読み出しの場合は３、擬似乱数パターンの場合は４となる。
【００７１】
（５）命令キャッシュタグ選択信号
命令キャッシュタグ選択信号は、テスト種別信号から生成される。ＣＳ・ＷＥ・ＲＥ生成部１１１およびアドレス生成部１１２、データ生成部１１３、データ比較部１１４に送信される。テスト種別信号がマーチイニシャライズまたはマーチ昇順１パターン、マーチ昇順０パターン、マーチ降順１パターン、マーチ降順０パターン、チェッカー表パターン書き込み、チェッカー表パターン読み出し、チェッカー裏パターン書き込み、チェッカー裏パターン読み出し、コンパレータヒットパターン書き込み、コンパレータヒットパターン読み出し、コンパレータミスパターン書き込み、コンパレータミスパターン読み出し、リフィルビットオールクリア・バリッドビットオールクリアテスト用データ書き込み、リフィルビットオールクリア、リフィルビットオールクリア後読み出し、バリッドビットオールクリア、バリッドビットオールクリア後読み出しのいずれかの場合は１、それ以外の場合は０を出力する。
【００７２】
（６）命令キャッシュデータ選択信号
命令キャッシュデータ選択信号は、テスト種別信号から生成される。ＣＳ・ＷＥ・ＲＥ生成部１１１およびアドレス生成部１１２、データ生成部１１３、データ比較部１１４に送信される。テスト種別信号がマーチイニシャライズまたはマーチ昇順１パターン、マーチ昇順０パターン、マーチ降順１パターン、マーチ降順０パターン、チェッカー表パターン書き込み、チェッカー表パターン読み出し、チェッカー裏パターン書き込み、チェッカー裏パターン読み出しのいずれかの場合は１、それ以外の場合は０を出力する。
【００７３】
（７）データキャッシュタグ選択信号
データキャッシュタグ選択信号は、テスト種別信号から生成される。ＣＳ・ＷＥ・ＲＥ生成部１１１およびアドレス生成部１１２、データ生成部１１３、データ比較部１１４に送信される。テスト種別信号がマーチイニシャライズまたはマーチ昇順１パターン、マーチ昇順０パターン、マーチ降順１パターン、マーチ降順０パターン、チェッカー表パターン書き込み、チェッカー表パターン読み出し、チェッカー裏パターン書き込み、チェッカー裏パターン読み出し、コンパレータヒットパターン書き込み、コンパレータヒットパターン読み出し、コンパレータミスパターン書き込み、コンパレータミスパターン読み出し、リフィルビットオールクリア・バリッドビットオールクリアテスト用データ書き込み、リフィルビットオールクリア、リフィルビットオールクリア後読み出し、バリッドビットオールクリア、バリッドビットオールクリア後読み出し、タグライトバッファ転送用タグ書き込み、タグライトバッファ転送、タグライトバッファ読み出しのいずれかの場合は１、それ以外の場合は０を出力する。
【００７４】
（８）データキャッシュデータ選択信号
データキャッシュデータ選択信号は、テスト種別信号から生成される。ＣＳ・ＷＥ・ＲＥ生成部１１１およびアドレス生成部１１２、データ生成部１１３、データ比較部１１４に送信される。テスト種別信号がマーチイニシャライズまたはマーチ昇順１パターン、マーチ昇順０パターン、マーチ降順１パターン、マーチ降順０パターン、チェッカー表パターン書き込み、チェッカー表パターン読み出し、チェッカー裏パターン書き込み、チェッカー裏パターン読み出し、バイトイネーブル書き込み、バイトイネーブル書き込み後読み出し、データライトバッファ転送用データ書き込み、データライトバッファ転送、データライトバッファ読み出しのいずれかの場合は１、それ以外の場合は０を出力する。
【００７５】
次に、上記のテスト状態信号に基づく、図７に示すデータ生成部１１３の内部要素の具体的な動作を説明する。
【００７６】
データ生成部１１３は、テスト状態信号のうちテスト種別信号と、パターン種別信号から命令キャッシュタグメモリ１０６およびデータキャッシュタグメモリ１０８、データキャッシュデータメモリ１０９へそれぞれ入力する入力データおよび機能制御信号、命令キャッシュデータデータメモリ１０７へ入力する入力データを生成する。なお、本実施の形態では、キャッシュメモリ１０２の各ブロックへ同時にデータ等を入出力することにより、各ブロックの同時テストが可能である。
【００７７】
データ生成部１１３のテストデータ発生部１ａから出力される信号は、選択回路１１により、命令キャッシュタグ選択信号が０の場合は「００００００００．．．」が選択され、命令キャッシュタグ選択信号が１の場合はテスト種別信号およびパターン種別信号に応じたデータが選択され、命令キャッシュタグ入力データとして出力される。
【００７８】
テストデータ発生部１ｂから出力される信号は、選択回路１４により、命令キャッシュデータ選択信号が０の場合は「００００００００．．．」が選択され、命令キャッシュデータ選択信号が１の場合はテスト種別信号およびパターン種別信号に応じたデータが選択され、命令キャッシュデータ入力データとして出力される。
【００７９】
テストデータ発生部１ｃから出力される信号は、選択回路１５により、データキャッシュタグ選択信号が０の場合は「００００００００．．．」が選択され、データキャッシュタグ選択信号が１の場合はテスト種別信号およびパターン種別信号に応じたデータが選択され、データキャッシュタグ入力データとして出力される。
【００８０】
テストデータ発生部１ｄから出力される信号は、選択回路１９により、データキャッシュデータ選択信号が０の場合は「００００００００．．．」が選択され、データキャッシュデータ選択信号が１の場合はテスト種別信号およびパターン種別信号に応じたデータが選択され、データキャッシュデータ入力データとして出力される。
【００８１】
信号発生部２ａから出力される信号は、選択回路１２により、命令キャッシュタグ選択信号が１でかつ、テスト種別信号がリフィルビットオールクリアを示している場合のみ１が選択され、それ以外の場合は０が選択されて、命令キャッシュタグリフィルビットオールクリア信号として出力される。
【００８２】
信号発生部２ｂから出力される信号は、選択回路１３により、命令キャッシュタグ選択信号が１でかつ、テスト種別信号がバリッドビットオールクリアを示している場合のみ１が選択され、それ以外の場合は０が選択されて、命令キャッシュタグバリッドビットオールクリア信号として出力される。
【００８３】
信号発生部２ｃから出力される信号は、選択回路１６により、データキャッシュタグ選択信号が１でかつ、テスト種別信号がリフィルビットオールクリアを示している場合のみ１が選択され、それ以外の場合は０が選択されて、データキャッシュリフィルビットオールクリア信号として出力される。
【００８４】
信号発生部２ｄから出力される信号は、選択回路１７により、データキャッシュタグ選択信号が１でかつ、テスト種別信号がバリッドビットオールクリアを示している場合のみ１が選択され、それ以外の場合は０が選択されて、データキャッシュバリッドビットオールクリア信号として出力される。
【００８５】
信号発生部２ｅから出力される信号は、選択回路１８により、テスト種別信号がタグライトバッファ転送またはタグライトバッファ読み出しを示している場合のみ１が選択され、それ以外の場合は０が選択されて、データキャッシュタグライトバッファ転送要求信号として出力される。
【００８６】
信号発生部２ｆから出力される信号は、選択回路２０により、テスト種別信号がデータライトバッファ転送またはデータライトバッファ読み出しを示している場合のみ１が選択され、それ以外の場合は０が選択されて、データキャッシュデータライトバッファ転送要求信号として出力される。
【００８７】
信号発生部３ａから出力される信号は、選択回路２１により、テスト種別信号がバイトイネーブル書き込みを示している場合に、あらかじめ定められたタイミングで順次「０００１」、「００１０」、「０１００」、「１０００」が選択され、それ以外の場合は「１１１１」が選択され、データキャッシュデータバイトイネーブル信号として出力される。
【００８８】
次に、図８に示すデータ比較部１１４の内部要素の具体的な動作を説明する。データ比較部１１４は、命令キャッシュタグメモリ１０６および命令キャッシュデータメモリ１０７、データキャッシュタグメモリ１０８、データキャッシュデータメモリ１０９へそれぞれ入力される入力データとそれぞれから出力される出力データ、命令キャッシュタグメモリ１０６およびデータキャッシュタグメモリ１０８からそれぞれ出力されるヒット信号、テスト状態信号のうちのテスト種別信号と書き込み読み出し状態信号、命令キャッシュタグ選択信号、命令キャッシュデータ選択信号、データキャッシュタグ選択信号、データキャッシュデータ選択信号からキャッシュ故障情報信号を生成する。
【００８９】
データ比較部１１４の選択回路３５は、命令キャッシュタグ選択信号が１でかつ、テスト種別信号がコンパレータヒットパターン読み出しを示していてかつ、書き込み読み出し状態信号が比較タイミングを示している場合は論理積回路３８の出力を選択し、命令キャッシュタグ選択信号が１でかつ、テスト種別信号がコンパレータミスパターン読み出しを示していてかつ、書き込み読み出し状態信号が比較タイミングを示している場合は論理積回路３９の出力を選択し、命令キャッシュタグ選択信号が１でかつ、テスト種別信号がコンパレータヒットパターン読み出しでなくかつ、テスト種別信号がコンパレータミスパターン読み出しでなくかつ、書き込み読み出し状態信号が比較タイミングを示している場合は不一致検出回路３１の出力を選択し、これらのいずれにも該当しない場合は０を選択して論理和回路３７への入力信号とする。
【００９０】
選択回路４２は、命令キャッシュデータ選択信号が１でかつ、書き込み読み出し状態信号が比較タイミングを示している場合は不一致検出回路３２の出力を選択し、それ以外の場合は０を選択して論理和回路３７への入力信号とする。
【００９１】
選択回路３６は、データキャッシュタグ選択信号が１でかつ、テスト種別信号がコンパレータヒットパターン読み出しを示していてかつ、書き込み読み出し状態信号が比較タイミングを示している場合は論理積回路４０の出力を選択し、データキャッシュタグ選択信号が１でかつ、テスト種別信号がコンパレータミスパターン読み出しを示していてかつ、書き込み読み出し状態信号が比較タイミングを示している場合は論理積回路４１の出力を選択し、データキャッシュタグ選択信号が１でかつ、テスト種別信号がコンパレータヒットパターン読み出しでなくかつ、テスト種別信号がコンパレータミスパターン読み出しでなくかつ、書き込み読み出し状態信号が比較タイミングを示している場合は不一致検出回路３３の出力を選択し、これらのいずれにも該当しない場合は０を選択して論理和回路３７への入力信号とする。
【００９２】
選択回路４３は、データキャッシュデータ選択信号が１でかつ、書き込み読み出し状態信号が比較タイミングを示している場合は不一致検出回路３４の出力を選択し、それ以外の場合は０を選択して、論理和回路３７への入力信号とする。
【００９３】
なお、ここではキャッシュメモリ１０２の機能部分のテスト項目をコンパレータテスト（ヒットテストおよびミステスト）、リフィルビットオールクリアテスト、バリッドビットオールクリアテスト、バイトイネーブルテスト、ライトバッファ転送テストとして説明したが、キャッシュメモリの仕様によってさらに追加・削除してテストする必要が出た場合でも、テスト制御部１１０およびデータ生成部１１３、データ比較部１１４への同様の回路追加・削除によってキャッシュメモリの自己診断を実現することが可能である。また、本構成ではキャッシュメモリ１０２内の各ブロックのテストは並行して同時実行することもブロックごとに順次実行することも可能である。
【００９４】
本実施の形態のキャッシュＢＩＳＴコントローラ１０５のテスト制御部１１０では、ＳＲＡＭ等のメモリ用のＢＩＳＴコントローラのテスト制御部のステートマシン（マーチテスト、チェッカーテスト）に、前述のキャッシュメモリ固有のテスト項目のステートを追加して構成しており、マーチテスト、チェッカーテストおよび前述のキャッシュメモリ固有のテスト項目を順次実施するためのテスト状態信号を発生するようにしている。また、データ生成部１１３では、図７の構成中、テストデータ発生部１ａ，１ｂ，１ｃ，１ｄおよび選択回路１１，１４，１５，１９がＳＲＡＭ等のメモリ用のＢＩＳＴコントローラのデータ生成部と同様の構成部分である。また、データ比較部１１４では、図８の構成中、不一致検出回路３１，３２，３３，３４および論理和回路３７がＳＲＡＭ等のメモリ用のＢＩＳＴコントローラのデータ比較部と同様の構成部分であり、ＳＲＡＭ等のメモリ用のＢＩＳＴコントローラでは不一致検出回路３１および３３の出力をそのまま論理和回路３７の入力としている。
【００９５】
このように、キャッシュＢＩＳＴコントローラ１０５は、ＳＲＡＭ等のメモリ用のＢＩＳＴコントローラに対し、テスト制御部へのテスト状態信号の状態数の追加と、データ生成部への機能制御信号の追加と、データ比較部のヒット信号比較部分の追加をするだけで、他のブロックはＳＲＡＭ等のメモリ用のＢＩＳＴコントローラと共通のままキャッシュメモリの自己診断回路の実現を可能とする。
【００９６】
本実施の形態によれば、キャッシュメモリ１０２のテスト用信号の生成と比較を行うキャッシュＢＩＳＴコントローラ１０５を内蔵しているため、外部に接続したテスト装置を用いた場合のようにＬＳＩの品種毎のプログラムの書き換えが不要となる。また、キャッシュメモリ以外にＳＲＡＭ等のメモリを有するＬＳＩでは、同一時間内にＳＲＡＭ等のメモリのＢＩＳＴテストとキャッシュＢＩＳＴテストを並行して実行可能のため、ＬＳＩ外部に接続したテスト装置によってＳＲＡＭ等のメモリＢＩＳＴテスト時間とは別にキャッシュメモリを検査する場合と比較して、テスト時間の短縮が可能となる。
【００９７】
なお、従来のようにＬＳＩ外部に接続したテスト装置から外部バスインタフェースを介してアドレス、データ、機能制御信号等を入力してテストを実施する場合、使用する外部バスインタフェースの端子にはＳＲＡＭ等のメモリも接続されていて端子を共有しているため、キャッシュメモリをテストするモードと外部バスインタフェースに接続されているＳＲＡＭ等のメモリをテストするモードとを分ける必要があり、同時にキャッシュメモリをテストするモードとＳＲＡＭ等のメモリをテストするモードに入れるとデータの競合が発生し、外部バスインタフェース端子の値が不定になるため、同時にテストすることはできなかった。
【００９８】
これに対し本実施の形態では、ＳＲＡＭ等のメモリＢＩＳＴコントローラの構成にキャッシュメモリ固有のテスト項目を追加実施するための回路追加をした構成になっているので、ＳＲＡＭ等のメモリＢＩＳＴコントローラのテスト開始信号と図１でのキャッシュＢＩＳＴテスト開始信号、ＳＲＡＭ等のメモリＢＩＳＴコントローラのテストホールド信号と図１でのキャッシュＢＩＳＴホールド信号にそれぞれ同一の信号を入力することによって同時にテストを開始またはホールドすることができ、ＳＲＡＭ等のメモリＢＩＳＴコントローラのテスト終了信号と図１のキャッシュＢＩＳＴテスト終了信号の論理積を取るだけでテスト終了判定ができ、ＳＲＡＭ等のメモリＢＩＳＴコントローラの故障情報信号と図１のキャッシュ故障情報信号との論理和を取るだけでテストの故障判定が可能となる。
【００９９】
（第２の実施の形態）
前述の第１の実施の形態において、キャッシュメモリ１０２とＣＰＵ１０３間の入出力データのアクセスタイミングに余裕がない場合、セレクタ１０４をキャッシュメモリ１０２とＣＰＵ１０３間に挿入すると動作速度が低下し、ユーザが要求している動作速度仕様を満たせなくなる場合がある。このような問題をも解消できるようにしたのが第２の実施の形態である。
【０１００】
図９は本発明の第２の実施の形態の構成を示すブロック図である。
【０１０１】
２０１はＬＳＩであり、キャッシュメモリ２０２、ＣＰＵ２０３、キャッシュＢＩＳＴコントローラ２０４から構成される。
【０１０２】
キャッシュメモリ２０２の構成は第１の実施の形態におけるキャッシュメモリ１０２と同様である。
【０１０３】
ＣＰＵ２０３は、データ経路が数段のＦＦ（フリップフロップ）を介するパイプライン構造を持ち、キャッシュＢＩＳＴテストモードではパイプライン構造の一部もしくは全部利用してキャッシュＢＩＳＴコントローラ２０４から入力されたブロック選択信号に従い命令キャッシュタグメモリ部２０５または命令キャッシュデータメモリ部２０６、データキャッシュタグメモリ部２０７、データキャッシュデータメモリ部２０８のいずれかのブロックにチップセレクト（ＣＳ）、ライトイネーブル（ＷＥ）、リードイネーブル（ＲＥ）、アドレスを出力し、データや機能制御信号の入出力を行う。
【０１０４】
図１０はキャッシュＢＩＳＴコントローラ２０４の構成を示すブロック図である。キャッシュＢＩＳＴコントローラ２０４は、テスト制御部２０９、ＣＳ・ＷＥ・ＲＥ生成部２１０、アドレス生成部２１１、データ生成部２１２、データ比較部２１３から構成される。
【０１０５】
テスト制御部２０９は、テスト開始信号を受けると、命令キャッシュタグメモリ部２０５または命令キャッシュデータメモリ部２０６、データキャッシュタグメモリ部２０７、データキャッシュデータメモリ部２０８のいずれかを順次選択するブロック選択信号を出力し、ＣＳ・ＷＥ・ＲＥ生成部２１０および、アドレス生成部２１１、データ生成部２１２、データ比較部２１３を制御し選択したブロックが必要とするテスト項目に応じて順次選択ブロックに対して、ＳＲＡＭ等のメモリのテスト項目であるマーチテストとチェッカーテストに加えてキャッシュメモリ固有のテスト項目であるコンパレータテスト（ヒットテストおよびミステスト）、リフィルビットオールクリアテスト、バリッドビットオールクリアテスト、バイトイネーブルテスト、ライトバッファ転送テストの各テスト項目に対応したテスト状態信号を出力する。
【０１０６】
ＣＳ・ＷＥ・ＲＥ生成部２１０は、テスト制御部２０９から供給されるテスト状態信号の値に従ってＣＳおよびＷＥ、ＲＥを生成しＣＰＵ２０３へ出力する。
【０１０７】
アドレス生成部２１１は、テスト制御部２０９から供給されるテスト状態信号の値に従ってアドレス信号を生成しＣＰＵ２０３へ出力し、そのアドレスと、あらかじめ設定された実行中のテストでの最終アドレス値（これはテスト種別信号が示すテストにおける、ブロック選択信号の示すキャッシュメモリ２０２の選択中のブロックの最も最後にアクセスすることになっているアドレスの値）とを比較して、一致する場合は１、一致しない場合は０を最終アドレス信号としてテスト制御部２０９に出力する。テスト制御部２０９では、最終アドレス信号が０の場合はそのときのテスト種別信号およびブロック選択信号を維持する。最終アドレス信号が１でかつブロック選択信号がテスト種別信号の示すテストでのテスト対象最終ブロックを示していない場合、テスト制御部２０９はブロック選択信号をテスト種別信号が示すテストでの次対象ブロックを示す値へ遷移させる。また、最終アドレス信号が１でかつブロック選択信号がテスト種別信号の示すテストでのテスト対象最終ブロックを示している場合、テスト制御部２０９はテスト種別信号を次のテストを示す値に変化させ、ブロック選択信号を次状態のテスト種別信号が示すテストでの最初のテスト対象ブロックを示す値へ遷移させる。なお、テスト種別信号およびブロック選択信号はテスト状態信号であり、これらについては後述する。
【０１０８】
図１１はデータ生成部２１２の構成を示すブロック図である。５１〜５５は複数の入力の中からテスト状態信号の値に基づいて１つの入力を選択し出力する選択回路である。選択回路５１、５２、５３、５４、５５は、ＣＰＵ２０３を介してキャッシュメモリ２０２へ供給される入力データ（テストデータ）、リフィルビットオールクリア信号、バリッドビットオールクリア信号、ライトバッファ転送要求信号、バイトイネーブル信号を出力する。また、１ｅはテストデータ発生部、２ｇ〜２ｉおよび３ｂは信号発生部である。
【０１０９】
このようにデータ生成部２１２は、テスト制御部２０９から供給されるテスト状態信号の値に従ってテストデータを生成し、また機能制御信号、すなわちリフィルビットオールクリア信号およびバリッドビットオールクリア信号、ライトバッファ転送要求信号、バイトイネーブル信号を生成し、ＣＰＵ２０３へ出力する。
【０１１０】
図１２はデータ比較部２１３の構成を示すブロック図である。６１は２つの入力データが一致したときに０を、不一致のときは１を出力する不一致検出回路（排他的論理和回路）、６２は４つの入力の中からテスト状態信号の値に基づいて１つの入力を選択し出力する選択回路、６３，６４は論理積回路である。
【０１１１】
データ比較部２１３は、テスト制御部２０９から供給されるテスト状態信号の値に従ってデータ生成部２１２からの期待値データとＣＰＵ２０３からのデータを比較し、さらにＣＰＵ２０３からのヒット信号を判定して比較結果を出力する。
【０１１２】
以上のように構成されたＬＳＩについて、以下にその動作を説明する。
【０１１３】
キャッシュＢＩＳＴテスト開始信号を０に設定すると、ＬＳＩ２０１は通常動作モードとなる。通常動作モードの場合、ＣＰＵ２０３はキャッシュＢＩＳＴコントローラ２０４から供給される信号は使用せず、キャッシュメモリ２０２とデータの入出力を行う。
【０１１４】
キャッシュＢＩＳＴテスト開始信号を１に設定すると、ＬＳＩ２０１はキャッシュＢＩＳＴテストモードとなる。キャッシュＢＩＳＴテストモードの場合、ＣＰＵ２０３は、キャッシュＢＩＳＴコントローラ２０４から供給されるブロック選択信号に従って命令キャッシュタグメモリ部２０５または命令キャッシュデータメモリ部２０６、データキャッシュタグメモリ部２０７、データキャッシュデータメモリ部２０８のいずれかへキャッシュＢＩＳＴコントローラ２０４から供給されるＣＳおよびＷＥ、ＲＥ、アドレス、データを出力する。
【０１１５】
キャッシュＢＩＳＴテストモードの場合、テスト制御部２０９は、ＳＲＡＭ等のメモリのテスト項目であるマーチテストとチェッカーテストに加えて、キャッシュメモリ固有のテスト項目であるコンパレータテスト（ヒットテストおよびミステスト）、リフィルビットオールクリアテスト、バリッドビットオールクリアテスト、バイトイネーブルテスト、ライトバッファ転送テストの各テスト項目に対応したテスト状態信号を順次出力する。
【０１１６】
また、テスト制御部２０９は、キャッシュＢＩＳＴテストモードの場合、全テストが終了するとキャッシュＢＩＳＴテスト終了信号に１を出力し、全テストが終了していない場合はキャッシュＢＩＳＴテスト終了信号に０を出力する。また、テスト制御部２０９は、キャッシュＢＩＳＴホールド信号を１に設定するとキャッシュＢＩＳＴコントローラ２０４の動作を停止させ、停止する直前の状態を維持させ、その後キャッシュＢＩＳＴホールド信号を０に設定するとキャッシュＢＩＳＴコントローラ２０４の動作を再開する。
【０１１７】
キャッシュＢＩＳＴテストモードの場合、データ生成部２１２は、テスト状態信号の値に従ってキャッシュメモリ２０２への入力データに加えて機能制御信号、すなわちリフィルビットオールクリア信号およびバリッドビットオールクリア信号、ライトバッファ転送要求信号、バイトイネーブル信号をキャッシュメモリ２０２への入力データの付加ビットとして生成する。
【０１１８】
キャッシュＢＩＳＴテストモードの場合、データ比較部２１３は、キャッシュメモリ２０２から供給されるヒット信号をキャッシュメモリ２０２からの出力データの付加ビットとして取り扱い、テスト状態信号に従ってヒット信号の判定が必要な場合は出力データの比較とヒット信号の判定結果を合わせた上でキャッシュメモリ２０２の値もしくは機能動作が正常である場合はキャッシュ故障情報信号として０を出力し、キャッシュメモリ２０２の値もしくは機能動作が正常でない場合は１を出力する。
【０１１９】
以下、さらに詳細に説明する。命令キャッシュタグメモリ部２０５では、マーチテストおよび、チェッカーテスト、コンパレータテスト、リフィルビットオールクリアテスト、バリッドビットオールクリアテストが実行される。命令キャッシュデータメモリ部２０６では、マーチテスト及び、チェッカーテストが実行される。データキャッシュタグメモリ部２０７では、マーチテストおよびチェッカーテスト、コンパレータテスト、リフィルビットオールクリアテスト、バリッドビットオールクリアテスト、ライトバッファ転送テストが実行される。データキャッシュデータメモリ部２０８では、マーチテストおよびチェッカーテスト、バイトイネーブルテスト、ライトバッファ転送テストが実行される。
【０１２０】
テスト制御部２０９が生成するテスト状態信号は、次の（１）〜（５）の信号から構成される。
【０１２１】
（１）テスト種別信号
テスト種別信号は、テストの種類を示す。ＣＳ・ＷＥ・ＲＥ生成部２１０およびアドレス生成部２１１、データ生成部２１２、データ比較部２１３に出力される。テスト種別信号は初期化以降は、マーチイニシャライズ、マーチ昇順１パターン、マーチ昇順０パターン、マーチ降順１パターン、マーチ降順０パターン、チェッカー表パターン書き込み、チェッカー表パターン読み出し、チェッカー裏パターン書き込み、チェッカー裏パターン読み出し、コンパレータヒットパターン書き込み、コンパレータヒットパターン読み出し、コンパレータミスパターン書き込み、コンパレータミスパターン読み出し、リフィルビットオールクリア・バリッドビットオールクリアテスト用データ書き込み、リフィルビットオールクリア、リフィルビットオールクリア後読み出し、バリッドビットオールクリア、バリッドビットオールクリア後読み出し、バイトイネーブル書き込み、バイトイネーブル書き込み後読み出し、タグライトバッファ転送用タグ書き込み、タグライトバッファ転送、タグライトバッファ読み出し、データライトバッファ転送用データ書き込み、データライトバッファ転送、データライトバッファ読み出しおよび完了の各テスト状態を示す値のいずれかを、前状態でのテスト種別信号とブロック選択信号から生成し順次出力する。
【０１２２】
上述の信号のうち、マーチテストに対応するテスト種別信号、チェッカーテストに対応するテスト種別信号、コンパレータテストに対応するテスト種別信号、リフィルビットオールクリアテストに対応するテスト種別信号、バリッドビットオールクリアテストに対応するテスト種別信号、バイトイネーブルテストに対応するテスト種別信号、ライトバッファ転送テストに対応するテスト種別信号については、第１の実施の形態での説明と同じである。
【０１２３】
（２）ブロック選択信号
ブロック選択信号は、初期化以降はテスト状態信号と、前状態のブロック選択信号から生成される。ＣＳ・ＷＥ・ＲＥ生成部２１０およびアドレス生成部２１１およびＣＰＵ２０３に送信され、どのメモリブロックに対するテストをしているかを示す。命令キャッシュタグメモリ部２０５を選択の場合は０、命令キャッシュデータメモリ部２０６を選択の場合は１、データキャッシュタグメモリ部２０７を選択の場合は２、データキャッシュデータメモリ部２０８を選択の場合は３となる。
【０１２４】
この第２の実施の形態では各メモリブロックを順次テストしていくので、ＣＳ・ＷＥ・ＲＥ生成部２１０は、入力されたブロック選択信号に対応した各メモリブロックに適したＣＳ・ＷＥ・ＲＥを出力する。一方、第１の実施の形態におけるＣＳ・ＷＥ・ＲＥ生成部１１１は、テストを各ブロック同時実行するため独立したＣＳ・ＷＥ・ＲＥを出力しており、各ブロックに適したＣＳ・ＷＥ・ＲＥをそれぞれのブロックに出力している。また、アドレス生成部２１１は、入力されたブロック選択信号に対応した各メモリブロックでのテストに必要な数のアドレスを順次生成する。一方、第１の実施の形態におけるアドレス生成部１１２は、テストを各ブロック同時実行するため独立したアドレス信号を出力しており、各ブロックに適した数のアドレスを、適した順序でそれぞれのブロックに出力している。
【０１２５】
テスト種別信号とブロック選択信号の具体的変化としては、まずテスト種別信号がマーチイニシャライズ、ブロック選択信号が０でテストが開始され、命令キャッシュタグメモリ部２０５の全エントリをアクセスさせた後、ブロック選択信号は１となる。そして、命令キャッシュデータメモリ部２０６の全エントリをアクセスさせた後、同様にしてブロック選択信号を２、３と順次変化させたのち、データキャッシュデータメモリ部２０８の全エントリのアクセスが終了すると、テスト種別信号はマーチ昇順１パターン、ブロック選択信号は０となる。マーチ昇順１パターンでもマーチイニシャライズと同様にして順次ブロック選択信号を１、２、３と変化させて各ブロックのマーチテストを進行させる。この動作をテスト種別信号がマーチ昇順０パターン、マーチ降順１パターン、マーチ降順０パターン、チェッカー表パターン書き込み、チェッカー表パターン読み出し、チェッカー裏パターン書き込み、チェッカー裏パターン読み出しの各状態で繰り返す。その後、パターン種別信号はリフィルビットオールクリア・バリッドビットオールクリアテスト用データ書き込みへ遷移し、ブロック選択信号は０となる。命令キャッシュタグメモリ部２０５のアクセス終了後、ブロック選択信号は２となり、データキャッシュタグメモリ部２０７のアクセスに移行する。その後、テスト種別信号がリフィルビットオールクリアおよび、リフィルビットオールクリア後読み出し、バリッドビットオールクリア、バリッドビットオールクリア後読み出しの各状態へ順次遷移し、それぞれにおいてブロック選択信号０、ブロック選択信号２を順次出力してテストを進行する。その後も同様にして、テスト種別信号を順次遷移させながら、テスト対象のブロックを選択するブロック選択信号を順次生成してテストを実行する。
【０１２６】
（３）書き込み読み出し状態信号
書き込み読み出し状態信号は、ＣＳ・ＷＥ・ＲＥ生成部２１０およびデータ比較部２１３へ出力される。初期化以降は例えば０から７までの値を繰り返し出力することで、ＣＳ、ＷＥ、ＲＥのアサートタイミングおよび、データを比較するタイミング（以下、比較タイミングという）を示す。
【０１２７】
（４）アドレス進行制御信号
アドレス進行制御信号は、アドレス生成部２１１に出力される。テスト種別信号がマーチ降順１パターンまたはマーチ降順０パターンのときは１を出力し、それ以外の場合は０を出力する。アドレスの進行方向が昇順か降順かを示す。
【０１２８】
（５）パターン種別信号
パターン種別信号は、データ生成部２１２に生成させるテストデータのパターンの種類を示す。テスト種別信号から生成される。テスト種別信号がマーチイニシャライズまたはマーチ昇順０パターン、マーチ降順０パターンの場合は０、マーチ昇順１パターンまたはマーチ降順１パターンの場合は１、チェッカー表パターン書き込みまたはチェッカー表パターン読み出しの場合は２、チェッカー裏パターン書き込みまたはチェッカー裏パターン読み出しの場合は３、擬似乱数パターンの場合は４となる。
【０１２９】
次に、上記のテスト状態信号に基づく、図１１に示すデータ生成部２１２の内部要素の具体的な動作を説明する。
【０１３０】
データ生成部２１２は、テスト状態信号のうちテスト種別信号とパターン種別信号から、ＣＰＵ２０３を介してキャッシュメモリ２０２へ入力する入力データおよび機能制御信号を生成する。なお、本実施の形態では、第１の実施の形態とは異なりキャッシュメモリ２０２の各ブロックへ同時にデータ等を入出力できないため、１ブロックごとの順次のテストのみが可能である。
【０１３１】
データ生成部２１２のテストデータ発生部１ｅから出力される信号は、選択回路５１により、パターン種別信号に応じたデータが選択され、入力データとして出力される。なお、キャッシュメモリ２０２の各ブロックのビット幅が異なる場合には、ビット幅が最大のブロックにデータのビット幅を合わせて出力し、ビット幅が最大でないブロックに対してはデータの上位ビットを切り捨てて入力することで対応可能である。
【０１３２】
信号発生部２ｇから出力される信号は、選択回路５２により、テスト種別信号がリフィルビットオールクリアを示している場合のみ１が選択され、それ以外の場合は０が選択されて、リフィルビットオールクリア信号として出力される。
【０１３３】
信号発生部２ｈから出力される信号は、選択回路５３により、テスト種別信号がバリッドビットオールクリアを示している場合のみ１が選択され、それ以外の場合は０が選択されて、バリッドビットオールクリア信号として出力される。
【０１３４】
信号発生部２ｉから出力される信号は、選択回路５４により、テスト種別信号がタグライトバッファ転送またはタグライトバッファ読み出し、データライトバッファ転送、データライトバッファ読み出しを示している場合のみ１が選択され、それ以外の場合は０が選択されて、ライトバッファ転送要求信号として出力される。
【０１３５】
信号発生部３ｂから出力される信号は、選択回路５５により、テスト種別信号がバイトイネーブル書き込みを示している場合に、あらかじめ定められたタイミングで順次「０００１」、「００１０」、「０１００」、「１０００」が選択され、それ以外の場合は「１１１１」が選択され、データキャッシュデータバイトイネーブル信号として出力される。
【０１３６】
次に、図１２に示すデータ比較部２１３の内部要素の具体的な動作を説明する。データ比較部２１３は、キャッシュメモリ２０２への入力データおよびキャッシュメモリ２０２からの出力データ、キャッシュヒット信号、テスト状態信号のうちのテスト種別信号と書き込み読み出し状態信号からキャッシュ故障情報信号を生成する。
【０１３７】
データ比較部２１３の選択回路６２は、テスト種別信号がコンパレータヒットパターン読み出しを示していてかつ、書き込み読み出し状態信号が比較タイミングを示している場合は論理積回路６３の出力を選択し、テスト種別信号がコンパレータミスパターン読み出しを示していてかつ、書き込み読み出し状態信号が比較タイミングを示している場合は論理積回路６４の出力を選択し、テスト種別信号がコンパレータヒットパターン読み出しでなくかつ、テスト種別信号がコンパレータミスパターン読み出しでなくかつ、書き込み読み出し状態信号が比較タイミングを示している場合は不一致検出回路６１の出力を選択し、それ以外の場合は０を選択してキャッシュ故障情報信号として出力する。データ生成部２１２から出力されるキャッシュメモリ２０２への入力データおよびＣＰＵ２０３から出力されるキャッシュメモリ２０２からの出力データがブロック選択信号で選択された信号であるので、データ比較部２１３ではブロック選択信号は必要ないため入力されていない。
【０１３８】
なお、ここではキャッシュメモリ２０２の機能部分のテスト項目をコンパレータテスト（ヒットテストおよびミステスト）、リフィルビットオールクリアテスト、バリッドビットオールクリアテスト、バイトイネーブルテスト、ライトバッファ転送テストとして説明したが、キャッシュメモリの仕様によってテスト項目の追加・削除が必要な場合でも、同様にテスト制御部２０９およびデータ生成部２１２、データ比較部２１３への同様の回路追加・削除によってキャッシュメモリの自己診断を実現することが可能である。
【０１３９】
このように、キャッシュＢＩＳＴコントローラ２０４は、パイプライン構造を持ち数段のＦＦを介してデータの入出力を行うＣＰＵ２０３を通すことによって、キャッシュメモリ２０２とＣＰＵ２０３間のアクセスの遅延が大きい場合でも動作速度を低下させることなく、キャッシュメモリの自己診断を実行することが可能となる。
【０１４０】
（第３の実施の形態）
前述の第２の実施の形態において、キャッシュメモリ２０２とＣＰＵ２０３間の入出力データのアクセスタイミングに余裕がなく、かつＣＰＵ２０３のうちキャッシュＢＩＳＴコントローラ２０４を接続している部分も入出力データのアクセスタイミングに余裕がない場合、キャッシュＢＩＳＴコントローラ２０４を接続することによって動作速度が律速され、要求仕様を満たせなくなる場合がある。このような問題をも解消できるようにしたのが第３の実施の形態である。
【０１４１】
図１３は本発明の第３の実施の形態の構成を示すブロック図である。
【０１４２】
３０１はＬＳＩであり、キャッシュメモリ３０２、ＣＰＵ３０３、外部メモリインタフェース３０４、キャッシュＢＩＳＴコントローラ３０５から構成される。
【０１４３】
キャッシュメモリ３０２の構成は第１の実施の形態におけるキャッシュメモリ１０２と同様である。
【０１４４】
ＣＰＵ３０３は、データ経路が数段のＦＦを介するパイプライン構造を持ち、キャッシュＢＩＳＴテストモードではそのパイプライン構造の一部もしくは全部利用してキャッシュＢＩＳＴコントローラ３０５から出力されたブロック選択信号に従い命令キャッシュタグメモリ部３０６または命令キャッシュデータメモリ部３０７、データキャッシュタグメモリ部３０８、データキャッシュデータメモリ部３０９のいずれかのブロックに、チップセレクト（ＣＳ）、ライトイネーブル（ＷＥ）、リードイネーブル（ＲＥ）、アドレスを出力し、データや機能制御信号の入出力を行う。これは第２の実施の形態におけるＣＰＵ２０３と同様の構成である。
【０１４５】
外部メモリインタフェース３０４は、ＣＰＵ３０３とＬＳＩ３０１外部に接続された外部メモリ間のＣＳおよびＷＥ、ＲＥ、アドレス、データの入出力制御を行い、ＣＰＵ３０３とキャッシュＢＩＳＴコントローラ３０５間のＣＳおよびＷＥ、ＲＥ、アドレス、データ、機能制御信号の入出力制御を行う。
【０１４６】
図１４はキャッシュＢＩＳＴコントローラ３０５の構成を示すブロック図である。キャッシュＢＩＳＴコントローラ３０５は、第２の実施の形態におけるキャッシュＢＩＳＴコントローラ２０４と同様の構成である。すなわち、テスト制御部３１０、ＣＳ・ＷＥ・ＲＥ生成部３１１、アドレス生成部３１２、データ生成部３１３、データ比較部３１４は、それぞれ第２の実施の形態におけるテスト制御部２０９、ＣＳ・ＷＥ・ＲＥ生成部２１０、アドレス生成部２１１、データ生成部２１２、データ比較部２１３と同様の構成である。
【０１４７】
要するに、第３の実施の形態では外部メモリインタフェース３０４を設け、ＣＰＵ３０３とキャッシュＢＩＳＴコントローラ３０５間の信号の授受を外部メモリインタフェース３０４を介して行うことが第２の実施の形態とは異なり、これ以外の構成については第２の実施の形態と同様である。
【０１４８】
以上のように構成されたＬＳＩについて、以下にその動作を説明する。
【０１４９】
キャッシュＢＩＳＴテスト開始信号を０に設定すると、ＬＳＩ３０１は通常動作モードとなる。通常動作モードの場合、ＣＰＵ３０３および外部メモリインタフェース３０４はキャッシュＢＩＳＴコントローラ３０５から供給される信号は使用せず、ＬＳＩ３０１外部に接続した外部メモリ（不図示）およびキャッシュメモリ３０２とデータの入出力を行う。
【０１５０】
キャッシュＢＩＳＴテスト開始信号を１に設定すると、ＬＳＩ３０１はキャッシュＢＩＳＴテストモードとなる。キャッシュＢＩＳＴテストモードの場合、ＣＰＵ３０３および外部メモリインタフェース３０４は、キャッシュＢＩＳＴコントローラ３０５から供給されるブロック選択信号に従って命令キャッシュタグメモリ部３０６または命令キャッシュデータメモリ部３０７、データキャッシュタグメモリ部３０８、データキャッシュデータメモリ部３０９のいずれかへキャッシュＢＩＳＴコントローラ３０５から供給されるＣＳおよびＷＥ、ＲＥ、アドレス、データを出力する。
【０１５１】
キャッシュＢＩＳＴテストモードの場合、テスト制御部３１０は、ＳＲＡＭ等のメモリのテスト項目であるマーチテストとチェッカーテストに加えて、キャッシュメモリ固有のテスト項目であるコンパレータテスト（ヒットテストおよびミステスト）、リフィルビットオールクリアテスト、バリッドビットオールクリアテスト、バイトイネーブルテスト、ライトバッファ転送テストの各テスト項目に対応したテスト状態信号を順次出力する。
【０１５２】
また、テスト制御部３１０は、キャッシュＢＩＳＴテストモードの場合、全テストが終了するとキャッシュＢＩＳＴテスト終了信号に１を出力し、全テストが終了していない場合はキャッシュＢＩＳＴテスト終了信号に０を出力する。また、テスト制御部３１０は、キャッシュＢＩＳＴホールド信号を１に設定するとキャッシュＢＩＳＴコントローラ３０５の動作を停止させ、停止する直前の状態を維持させ、その後キャッシュＢＩＳＴホールド信号を０に設定するとキャッシュＢＩＳＴコントローラ３０５の動作を再開する。
【０１５３】
キャッシュＢＩＳＴテストモードの場合、データ生成部３１３は、テスト状態信号の値に従ってキャッシュメモリ３０２への入力データに加えて機能制御信号、すなわちリフィルビットオールクリア信号およびバリッドビットオールクリア信号、ライトバッファ転送要求信号、バイトイネーブル信号をキャッシュメモリ３０２への入力データの付加ビットとして生成する。
【０１５４】
キャッシュＢＩＳＴテストモードの場合、データ比較部３１４は、キャッシュメモリ３０２から供給されるヒット信号をキャッシュメモリ３０２からの出力データの付加ビットとして取り扱い、テスト状態信号に従ってヒット信号の判定が必要な場合は出力データの比較とヒット信号の判定結果を合わせた上でキャッシュメモリ３０２の値もしくは機能動作が正常である場合はキャッシュ故障情報信号として０を出力し、キャッシュメモリ３０２の値もしくは機能動作が正常でない場合は１を出力する。
【０１５５】
なお、ここではキャッシュメモリ３０２の機能部分のテスト項目をコンパレータテスト（ヒットテストおよびミステスト）、リフィルビットオールクリアテスト、バリッドビットオールクリアテスト、バイトイネーブルテスト、ライトバッファ転送テストとして説明したが、キャッシュメモリの仕様によってテスト項目に追加・削除が必要な場合でも、同様にテスト制御部３１０およびデータ生成部３１３、データ比較部３１４への同様の回路追加・削除によってキャッシュメモリの自己診断を実現することが可能である。
【０１５６】
このように、キャッシュＢＩＳＴコントローラ３０５は、キャッシュメモリ３０２との接続をＣＰＵ３０３と外部メモリインタフェース３０４を介することによって、ＣＰＵ３０３全体のデータ入出力タイミングに余裕がない場合でも動作速度を低下させることなく、キャッシュメモリの自己診断を実行することが可能となる。
【０１５７】
（第４の実施の形態）
前述の第２、第３の実施の形態の場合には、キャッシュメモリ２０２、３０２のテストがＣＰＵ２０３、３０３を介して実施されているため、スキャンテストモードを利用してＬＳＩ２０１、３０１のバーンインテストを実施する際に、そのままではＣＰＵ２０３、３０３のトグルを実行するとキャッシュメモリ２０２、３０２のテスト経路がスキャン対象となっているためキャッシュＢＩＳＴコントローラ２０４、３０５が入力したＣＳおよびＷＥ、アドレス、データ信号等がキャッシュメモリ２０２、３０２に正しく伝達されず、キャッシュメモリ２０２、３０２の全領域のトグルができない場合がある。このような問題をも解消できるようにしたのが第４の実施の形態である。なお、ＣＰＵのトグルとは、ＣＰＵ内に存在するレジスタおよび配線の値を０から１または１から０に変化させることをいい、キャッシュメモリのトグルとは、キャッシュメモリ内に存在するレジスタ及び配線の値を０から１または１から０に変化させることをいう。バーンインテストの目的は、全てのレジスタおよび配線のトグルを実行して、回路にストレスを与えることにある。
【０１５８】
図１５は本発明の第４の実施の形態の構成を示すブロック図である。
【０１５９】
４０１はＬＳＩであり、キャッシュメモリ４０２、ＣＰＵ４０３、キャッシュＢＩＳＴコントローラ４０４、バーンイン制御回路４０５から構成される。
【０１６０】
キャッシュメモリ４０２の構成は第１の実施の形態におけるキャッシュメモリ１０２と同様である。
【０１６１】
ＣＰＵ４０３は、データ経路が数段のＦＦを介するパイプライン構造を持ち、キャッシュＢＩＳＴテストモードではそのパイプライン構造の一部もしくは全部利用してキャッシュＢＩＳＴコントローラ４０４から入力されたブロック選択信号に従い命令キャッシュタグメモリ部４０６または命令キャッシュデータメモリ部４０７、データキャッシュタグメモリ部４０８、データキャッシュデータメモリ部４０９のいずれかのブロックに、チップセレクト（ＣＳ）、ライトイネーブル（ＷＥ）、リードイネーブル（ＲＥ）、アドレスを出力し、データや機能制御信号の入出力を行う。また、バーンイン制御回路４０５から供給されるスキャンテストモード信号が１の場合はバーンイン制御回路４０５から供給されるスキャンシフトイネーブル信号に従ってシフトおよびキャプチャ動作を実行する。
【０１６２】
キャッシュＢＩＳＴコントローラ４０４は、第２の実施の形態におけるキャッシュＢＩＳＴコントローラ２０４と同様の構成である。
【０１６３】
バーンイン制御回路４０５は、外部から供給されるキャッシュＢＩＳＴテストの開始信号および、キャッシュＢＩＳＴコントローラ４０４から供給されるキャッシュＢＩＳＴテスト終了信号、外部から供給されるスキャンテストモード設定信号、外部から供給されるスキャンシフトイネーブル設定信号の各信号に従って、ＣＰＵ４０３へスキャンテストモード信号およびスキャンシフトイネーブル信号を出力し、バーンインテスト時のテストモードを制御する。図１６はバーンイン制御回路４０５の構成を示すブロック図である。
【０１６４】
以上のように構成されたＬＳＩについて、以下にその動作を説明する。
【０１６５】
ＬＳＩ４０１は、表１に示す通り通常動作モードおよびキャッシュＢＩＳＴテストモード、スキャンテストモード、バーンインテストモードの４モードを有する。
【０１６６】
【表１】
2004318209.tif 000003
【０１６７】
表１における入力、出力は、バーンイン制御回路４０５の入力、出力であり、バーンイン制御回路４０５を図１６のように構成することで、表１の入力に対する出力を実現できる。図１６において、７１は論理積否定回路、７２、７３は論理和回路、７４はＤ−ＦＦ、７５、７６は選択回路である。選択回路７５は、論理積否定回路７１の出力が１のとき図中「１」側の入力信号を選択し、論理積否定回路７１の出力が０のとき図中「０」側の入力信号を選択して出力する。同様に、選択回路７６は、論理和回路７３の出力が１のとき図中「１」側の入力信号を選択し、論理和回路７３の出力が０のとき図中「０」側の入力信号を選択して出力する。
【０１６８】
スキャンテストモード設定信号とキャッシュＢＩＳＴテスト開始信号をどちらも０に設定するとＬＳＩ４０１は通常動作モードとなる。通常動作モードの場合、バーンイン制御回路４０５はスキャンテストモード信号として０を出力し、スキャンシフトイネーブル設定信号をそのままスキャンシフトイネーブル信号として出力する。通常動作モードの場合、ＣＰＵ４０３はキャッシュＢＩＳＴコントローラ４０４から供給される信号は使用せず、キャッシュメモリ４０２とデータの入出力を行う。
【０１６９】
スキャンテストモード設定信号とキャッシュＢＩＳＴテスト開始信号をそれぞれ０と１に設定するとＬＳＩ４０１はキャッシュＢＩＳＴテストモードとなる。キャッシュＢＩＳＴテストモードの場合、バーンイン制御回路４０５はスキャンテストモード信号として０を出力し、スキャンシフトイネーブル設定信号をそのままスキャンシフトイネーブル信号として出力する。キャッシュＢＩＳＴテストモードの場合、ＣＰＵ４０３はキャッシュＢＩＳＴコントローラ４０４から供給されるブロック選択信号に従って命令キャッシュタグメモリ部４０６または命令キャッシュデータメモリ部４０７、データキャッシュタグメモリ部４０８、データキャッシュデータメモリ部４０９のいずれかへキャッシュＢＩＳＴコントローラ４０４から供給されるＣＳおよびＷＥ、ＲＥ、アドレス、データを出力する。
【０１７０】
スキャンテストモード設定信号とキャッシュＢＩＳＴテスト開始信号をそれぞれ１と０に設定するとＬＳＩ４０１はスキャンテストモードとなる。スキャンテストモードの場合、バーンイン制御回路４０５はスキャンテストモード信号として１を出力し、スキャンシフトイネーブル設定信号をそのままスキャンシフトイネーブル信号として出力する。スキャンテストモードの場合、ＣＰＵ４０３はバーンイン制御回路４０５から供給されるスキャンシフトイネーブル信号に従ってシフトもしくはキャプチャを実行しＣＰＵ全体のスキャン動作を実施する。
【０１７１】
スキャンテストモード設定信号とキャッシュＢＩＳＴテスト開始信号をどちらも１に設定するとＬＳＩ４０１はバーンインテストモードとなる。バーンインテストモードにおいてキャッシュＢＩＳＴコントローラ４０４から供給されるキャッシュＢＩＳＴテスト終了信号が０の場合、すなわちキャッシュＢＩＳＴコントローラ４０４によるキャッシュメモリ４０２の自己診断が未終了である場合、バーンイン制御回路４０５はスキャンテストモード信号に０を出力し、スキャンシフトイネーブル信号に０を出力する。このとき、スキャンテストモード信号が０のためＣＰＵ４０３はキャッシュＢＩＳＴコントローラ４０４とキャッシュメモリ４０２間のデータを破壊することなく伝搬させる。
【０１７２】
バーンインテストモードにおいてキャッシュＢＩＳＴコントローラ４０４から供給されるキャッシュＢＩＳＴテスト終了信号が１の場合、すなわちキャッシュＢＩＳＴコントローラ４０４によるキャッシュメモリ４０２の自己診断が終了している場合、バーンイン制御回路４０５はスキャンテストモード信号に１を出力し、スキャンシフトイネーブル設定信号をそのままスキャンシフトイネーブル信号に出力する。
【０１７３】
このように、バーンイン制御回路４０５は、通常動作およびキャッシュＢＩＳＴコントローラ４０４によるキャッシュメモリ４０２の自己診断が実行可能な構成を損なうことなく、バーンインテストモードとしてキャッシュＢＩＳＴテストモードの動作によりキャッシュメモリの全領域をトグルした上でスキャンテストモードに移行させて、結果的にＬＳＩの全領域のトグルをも可能とする。
【０１７４】
なお、この第４の実施の形態では、第２の実施の形態の構成にバーンイン制御回路４０５を付加した構成で説明したが、第３の実施の形態の構成において同様にバーンイン制御回路４０５を付加した構成とすることもできる。この場合、バーンイン制御回路４０５が出力するスキャンテストモード信号とスキャンシフトイネーブル信号は、外部メモリインタフェース３０４を介してＣＰＵ３０３へ入力される。
【０１７５】
また、第２、第３、第４の実施の形態では、ブロック選択信号によりキャッシュメモリの各ブロックを順次選択して各テスト項目を実行するようにしたが、第２、第３、第４の実施の形態の構成（図９、図１３、図１５）において、それぞれのキャッシュＢＩＳＴコントローラ２０４、３０５、４０４を、第１の実施の形態のキャッシュＢＩＳＴコントローラ１０５に変更した構成も可能である。この場合、回路規模は増えるが、キャッシュメモリの各ブロックを並行して同時にテスト可能となるためテスト時間をより短くすることが可能となる。
【０１７６】
【発明の効果】
以上のように本発明によれば、キャッシュメモリ固有の機能テストを含めたキャッシュメモリの機能テストを実行しキャッシュメモリの不良個所を診断する自己診断回路を内蔵しているため、外部に接続したテスト装置を用いた場合のようにＬＳＩの品種毎のプログラムの書き換えが不要となる上、同一ＬＳＩにキャッシュメモリ以外のＳＲＡＭ等のメモリとそのメモリの自己診断回路が内蔵されている場合に、ＳＲＡＭ等のメモリと同時並行してキャッシュメモリのテストが可能となり、外部に接続したテスト装置を用いた場合に別途必要であったキャッシュメモリのテスト時間が不要となり、テスト時間の短縮が図れる。
【０１７７】
また、自己診断回路がＣＰＵを介してキャッシュメモリと接続されるようにすることにより、キャッシュメモリとＣＰＵ間のアクセスの遅延が大きい場合でも動作速度を低下させることなく、キャッシュメモリの自己診断を実行することが可能となる。
【０１７８】
また、自己診断回路が外部メモリインタフェースおよびＣＰＵを介してキャッシュメモリと接続されるようにすることにより、ＣＰＵ全体のデータ入出力タイミングに余裕がない場合でも動作速度を低下させることなく、キャッシュメモリの自己診断を実行することが可能となる。
【０１７９】
また、自己診断回路がキャッシュメモリを構成するブロックごとに順次機能テストを実行するように構成することにより、自己診断回路の回路規模を小さくできる。
【０１８０】
また、自己診断回路は、ＳＲＡＭ等のメモリの自己診断回路構成技術を活用した上で、キャッシュメモリ固有の機能テストを実行するための小規模の回路追加により実現することができる。
【０１８１】
また、バーンインテストでのキャッシュメモリとＣＰＵの両方のトグルを実行する手段を設けることにより、バーンインテスト時におけるＬＳＩの全領域のトグルをも可能とする。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるＬＳＩの構成を示すブロック図
【図２】第１の実施の形態における命令キャッシュタグメモリ部の構成を示すブロック図
【図３】第１の実施の形態における命令キャッシュデータメモリ部の構成を示すブロック図
【図４】第１の実施の形態におけるデータキャッシュタグメモリ部の構成を示すブロック図
【図５】第１の実施の形態におけるデータキャッシュデータメモリ部の構成を示すブロック図
【図６】第１の実施の形態におけるキャッシュＢＩＳＴコントローラの構成を示すブロック図
【図７】第１の実施の形態におけるデータ生成部の構成を示すブロック図
【図８】第１の実施の形態におけるデータ比較部の構成を示すブロック図
【図９】本発明の第２の実施の形態におけるＬＳＩの構成を示すブロック図
【図１０】第２の実施の形態におけるキャッシュＢＩＳＴコントローラの構成を示すブロック図
【図１１】第２の実施の形態におけるデータ生成部の構成を示すブロック図
【図１２】第２の実施の形態におけるデータ比較部の構成を示すブロック図
【図１３】本発明の第３の実施の形態におけるＬＳＩの構成を示すブロック図
【図１４】第３の実施の形態におけるキャッシュＢＩＳＴコントローラの構成を示すブロック図
【図１５】本発明の第４の実施の形態におけるＬＳＩの構成を示すブロック図
【図１６】第４の実施の形態におけるバーンイン制御回路の構成を示すブロック図
【符号の説明】
１０１              ＬＳＩ
１０２  キャッシュメモリ
１０３              ＣＰＵ
１０４              セレクタ
１０５              キャッシュＢＩＳＴコントローラ
１０６              命令キャッシュタグメモリ部
１０７  命令キャッシュデータメモリ部
１０８              データキャッシュタグメモリ部
１０９  データキャッシュデータメモリ部
１１０              テスト制御部
１１１              ＣＳ・ＷＥ・ＲＥ生成部
１１２              アドレス生成部
１１３              データ生成部
１１４              データ比較部
２０１              ＬＳＩ
２０２  キャッシュメモリ
２０３              ＣＰＵ
２０４              キャッシュＢＩＳＴコントローラ
２０５              命令キャッシュタグメモリ部
２０６              命令キャッシュデータメモリ部
２０７              データキャッシュタグメモリ部
２０８              データキャッシュデータメモリ部
２０９              テスト制御部
２１０              ＣＳ・ＷＥ・ＲＥ生成部
２１１              アドレス生成部
２１２              データ生成部
２１３              データ比較部
３０１              ＬＳＩ
３０２              キャッシュメモリ
３０３              ＣＰＵ
３０４              外部メモリインタフェース
３０５              キャッシュＢＩＳＴコントローラ
３０６              命令キャッシュタグメモリ部
３０７              命令キャッシュデータメモリ部
３０８              データキャッシュタグメモリ部
３０９              データキャッシュデータメモリ部
３１０              テスト制御部
３１１              ＣＳ・ＷＥ・ＲＥ生成部
３１２              アドレス生成部
３１３              データ生成部
３１４              データ比較部
４０１              ＬＳＩ
４０２              キャッシュメモリ
４０３              ＣＰＵ
４０４              キャッシュＢＩＳＴコントローラ
４０５              バーンイン制御回路
４０６              命令キャッシュタグメモリ部
４０７              命令キャッシュデータメモリ部
４０８              データキャッシュタグメモリ部
４０９              データキャッシュデータメモリ部
【図１】
2004318209.tif 000004
【図２】
2004318209.tif 000005
【図３】
2004318209.tif 000006
【図４】
2004318209.tif 000007
【図５】
2004318209.tif 000008
【図６】
2004318209.tif 000009
【図７】
2004318209.tif 000010
【図８】
2004318209.tif 000011
【図９】
2004318209.tif 000012
【図１０】
2004318209.tif 000013
【図１１】
2004318209.tif 000014
【図１２】
2004318209.tif 000015
【図１３】
2004318209.tif 000016
【図１４】
2004318209.tif 000017
【図１５】
2004318209.tif 000018
【図１６】
2004318209.tif 000019