(57)【要約】  命令実行情報の出力信号を持ち、プログラムで動作可能な演算装置を複数有する半導体集積回路の選別試験装置が開示される。半導体集積回路の選別試験装置は、各演算装置への命令の供給を同期させ、また各演算装置へのデータの供給を同期させる命令・データ信号同期回路と、各演算装置から出力された命令実行情報同士を比較し、演算装置のいずれかが異なる命令実行情報を出力したか否かを判定するトレース比較回路とを有する。
2008053709.tif 000002
【特許請求の範囲】
【請求項１】
命令実行情報の出力信号を持ち、プログラムで動作可能な演算装置を複数有する半導体集積回路の選別試験装置であって、
前記各演算装置への命令の供給を同期させ、また前記各演算装置へのデータの供給を同期させる命令・データ信号同期手段と、
前記各演算装置から出力された命令実行情報同士を比較し、前記演算装置のいずれかが異なる命令実行情報を出力したか否かを判定するトレース比較手段と
を有する半導体集積回路選別試験装置。
【請求項２】
前記トレース比較手段は判定結果をトレース試験装置に出力する、請求項１に記載の半導体集積回路選別試験装置。
【請求項３】
前記命令・データ信号同期手段は、前記各演算装置への命令の供給を同期させる命令同期手段と、前記各演算装置へのデータの供給を同期させるデータ同期手段を含む、請求項１または2に記載の半導体集積回路選別試験装置。
【請求項４】
前記命令同期手段および前記データ同期手段は、全ての演算装置からの要求情報が揃わない場合または該要求情報が異なる場合、その旨を同期エラー信号によって前記前記トレース比較手段に通知する、請求項１から３のいずれか１項に記載の半導体集積回路選別試験装置。
【請求項５】
前記トレース比較手段は、前記各演算装置の命令実行情報の出力信号同士の比較の結果、不一致を起こした演算装置の情報を出力する不一致判定手段を含む、請求項１から４のいずれか１項に記載の半導体集積回路選別試験装置。
【請求項６】
前記トレース比較手段は、前記各演算装置の命令実行情報の出力信号同士を比較するトレース不一致判定手段と、前記各演算装置の命令実行情報を解釈し、前記トレース不一致判定手段から不一致が通知されると、不一致を起こした演算装置の情報と、不一致を起こした演算装置の命令実行情報の詳細を出力するトレース解釈手段とを含む、請求項１から４のいずれか１項に記載の半導体集積回路選別試験装置。
【請求項７】
前記トレース解釈手段から出力された、不一致を起こした演算装置の情報と、不一致を起こした演算装置の命令実行情報の詳細を圧縮するトレース圧縮手段をさらに有する、請求項６に記載の半導体集積回路選別試験装置。
【請求項８】
前記トレース不一致判定手段は、前記命令・データ信号同期手段からの不一致情報も参照する、請求項５から7のいずれか1項に記載の半導体集積回路選別試験装置。
【請求項９】
命令実行情報の出力信号を持ち、プログラムで動作可能な演算装置を複数有する半導体集積回路の選別試験方法であって、
各演算装置からの命令読み出し要求が揃うと、メモリから命令を読み出し、該命令を各演算装置に同期して出力し、
前記各演算装置の命令実行情報の出力信号同士を比較し、前記演算装置のいずれかが異なる命令実行情報を出力したか否かを判定する
半導体集積回路選別試験方法。
【請求項１０】
命令実行情報の出力信号を持ち、プログラムで動作可能な演算装置を複数有する半導体集積回路の半導体集積回路選別試験方法であって、
演算装置からのデータ読み出し要求が揃うと、メモリからデータを読み出し、該データを各演算装置に同期して出力し、
前記各演算装置の命令実行情報の出力信号同士を比較し、前記演算装置のいずれかが異なる命令実行情報を出力したか否かを判定する
半導体集積回路選別試験方法。
【請求項１１】
前記判定することは、前記各演算装置から出力された命令実行情報同士の比較の結果、不一致を起こした演算装置の情報を出力することを含む、請求項９または１０に記載の半導体集積回路選別試験方法。
【請求項１２】
前記判定することは、前記各演算装置から出力された命令実行情報同士を比較し、前記各演算装置から出力された命令実行情報を解釈し、不一致が通知されると、不一致を起こした演算装置の情報と、不一致を起こした演算装置から出力された命令実行情報の詳細を出力することを含む、請求項９または１０に記載の半導体集積回路選別試験方法。
【請求項１３】
前記判定するステップは、不一致を起こした演算装置の情報と、不一致を起こした演算装置から出力された命令実行情報の詳細を圧縮することをさらに有する、請求項１２に記載の半導体集積回路選別試験方法。
【請求項１４】
コンピュータに、命令実行情報の出力信号を持ち、プログラムで動作可能な演算装置を複数有する半導体集積回路の選別試験を実行させるコンピュータプログラムプロダクトであって、
前記コンピュータに所定の動作を行わせるソフトウェア命令と、該ソフトウェア命令を記録した、コンピュータ読み取り可能な媒体とを有し、
前記所定の動作が
各演算装置からの命令読み出し要求が揃うと、メモリから命令を読み出し、該命令を各演算装置に同期して出力するステップと、
前記各演算装置の命令実行情報の出力信号同士を比較し、前記演算装置のいずれかが異なる命令実行情報を出力したか否かを判定するステップと
を有するコンピュータプログラムプロダクト。
【請求項１５】
コンピュータに、命令実行情報の出力信号を持ち、プログラムで動作可能な演算装置を複数有する半導体集積回路の半導体集積回路選別試験を実行させるコンピュータプログラムプロダクトであって、
前記コンピュータに所定の動作を行わせるソフトウェア命令と、該ソフトウェア命令を記録した、コンピュータ読み取り可能な媒体とを有し、
前記所定の動作が
演算装置からのデータ読み出し要求が揃うと、メモリからデータを読み出し、該データを各演算装置に同期して出力する命令ステップと、
前記各演算装置の命令実行情報の出力信号同士を比較し、前記演算装置のいずれかが異なる命令実行情報を出力したか否かを判定するステップと
を有するコンピュータプログラムプロダクト。
【請求項１６】
請求項１から8のいずれかに記載の半導体集積回路選別試験装置を内蔵した半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の演算装置（ＣＰＵ）を有する半導体集積回路のＣＰＵを、同時並列に選別試験する半導体集積回路選別試験装置に関する。
【背景技術】
【０００２】
半導体の微細化の進展により半導体集積回路の集積度が向上し、その結果、内部に複数のプロセッサを有する半導体集積回路が現実味をおびている。【０００３】
図１は、複数のＣＰＵを有する半導体集積回路のＣＰＵを、半導体集積回路外部の試験装置によって同時並列に選別試験する場合の構成例を模式的に示している。この例は、スキャン試験装置６から、半導体集積回路５の有するＣＰＵ１０−１〜１０−ｎのそれぞれに対して、スキャンイン信号３００−１〜３００−nとスキャンアウト信号３０２−１〜３０２−ｎとが入出力される構成とされている。【０００４】
かかる構成において、スキャン試験装置６は、選別試験用のスキャンデータを、スキャンイン信号３０１−１〜３０１−ｎによってＣＰＵ内部のフリップフロップ回路に設定し、そして、スキャンアウト信号３０２−１〜３０２−ｎによって、その実行結果を取得する。得られた実行結果は、シミュレータ等で計算された比較データと比較され、その結果、もし実行結果が異なる場合には、半導体集積回路５は破棄される。【０００５】
このように、スキャン試験装置６は、単体ＣＰＵの選別試験を同時並列に行うことが可能である。【０００６】
しかしながら、図１に示した方式は、以下の問題点を有している。【０００７】
半導体集積回路の選別試験時間が、単体ＣＰＵ内部のフリップフロップ回路に選別試験用のスキャンデータを設定する時間によって律速されているため、非常に遅い。【０００８】
全てのＣＰＵに独立にスキャンイン信号およびスキャンアウト信号を接続する必要があるため、ハードウェアコストが非常に大きくなる。【０００９】
この問題に対処する技術として、特許文献１に記載のような複数のＣＰＵコアを利用した回路がある。特許文献１には、図１に示した構成と同様に、複数のコアのそれぞれの全ラッチに対して、スキャンチェインを接続した回路が開示されている。したがって、特許文献１には、図１に示した構成と同じ問題があった。【００１０】
次に、図２は、単体ＣＰＵ試験の高速化を実現するための構成の一典型例を示す図である。図２に示す例は、半導体集積回路５に含まれるＣＰＵ１０に対して、メモリ７に含まれる試験プログラム７１および試験演算結果７２を利用した比較試験を行う比較試験装置８からなる。【００１１】
かかる構成において、ＣＰＵ１０は、メモリバス４を介して、試験プログラム７１を実行し、そして、その実行結果を試験演算結果７２に格納する。その後、比較試験装置８は、比較試験装置信号４００によって、試験演算結果７２を取得することで、該ＣＰＵが正しく動作したかどうかを検査する。【００１２】
これにより、実速度動作による、単体ＣＰＵ１０の非常に高速な検査が可能となり、その結果、複数のＣＰＵを有する半導体集積回路の選別試験の高速化も実現できる。【００１３】
しかしながら、図２に示した方式は、以下の問題点を有している。【００１４】
メモリに格納される試験演算結果７２のみによってＣＰＵ１０を検査するので、その網羅率が非常に低い。【００１５】
また、試験演算結果７２と比較可能なデータを用意するためには、実速度動作を網羅する、大規模シミュレーションが必要となるため、非常にコストがかかる。【００１６】
この問題に対処する技術として、特許文献２には、ＣＰＵが持つ機能をテストする方法と、そのテストプログラムを選択する方法が開示されている。したがって、特許文献２には、図２の構成と同じ問題があった。【００１７】
また、特許文献３には、複数のＣＰＵに対して、それぞれのＣＰＵからの出力信号を比較して、ＣＰＵの自己診断機能を提供する方法が開示されている。かかる構成において、比較に利用されている信号は、バスの書き込みデータ、制御回路から出力されるアドレス信号および演算器が出力する演算フラグといったＣＰＵ内部信号である。したがって、内部信号を比較するため、既存ＣＰＵの改造に必要となる開発コストの増加といった問題や、比較対象信号が演算結果ないしメモリアクセス情報だけのため、前記情報も含む命令実行情報との比較とは異なり、網羅率が低下するといった問題があった。
【特許文献１】特開２００６−１５３５３８号公報
【特許文献２】特開平８−２３５０２３号公報
【特許文献３】特開平６−１６１７９８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
上記で述べたように、複数のＣＰＵを有する半導体集積回路の選別試験において、網羅率の向上と、その試験速度の向上はトレードオフ関係にあり、両者を同時に満足するような選別試験は実現不可能であった。【００１９】
したがって、本発明の目的は、複数のＣＰＵを有する半導体集積回路の選別試験において、プログラムの利用による実速度動作の高速性を有しつつ、網羅的に検査可能な半導体集積回路選別試験装置、方法、およびコンピュータプログラムプロダクトを提供することにある。
【課題を解決するための手段】
【００２０】
本発明の半導体集積回路選別試験装置は、各演算装置への命令の供給を同期させ、また各演算装置へのデータの供給を同期させる命令・データ信号同期手段と、各演算装置から出力された命令実行情報を比較し、演算装置のいずれかが異なる命令実行情報を出力したことを判定するトレース比較手段とを有する。【００２１】
また、本発明の半導体集積回路選別試験方法は、各演算装置からの命令読み出し要求が揃うと、メモリから命令を読み出し、該命令を各演算装置に同期して出力し、各演算装置の命令実行情報の出力信号を比較し、演算装置のいずれかが異なる命令実行情報を出力したことを判定する。【００２２】
また、本発明の他の半導体集積回路選別試験方法は、各演算装置からのデータ読み出し要求が揃うと、メモリからデータを読み出し、該データを各演算装置に同期して出力し、各演算装置の命令実行情報の出力信号を比較し、前記演算装置のいずれかが異なる命令実行情報を出力したことを判定する。【００２３】
本発明によれば、複数のＣＰＵを有する半導体集積回路の選別試験を、プログラムの利用によって高速に実行でき、さらに、命令レベルのトレース情報を比較することによって、より網羅的に実現することができる。【００２４】
また、ＣＰＵ同士のトレース情報の比較により、事前に選別試験用の比較データを準備する必要がない。すなわち、本来ＣＰＵ上で動作するプログラムのデバッグのために設けられたトレース情報機構を、半導体集積回路の選別試験に利用することで、より安価で、より高速で、より網羅的な検査が可能となる。【００２５】
このように、トレース情報同士の不一致をみることで、エラーのあるＣＰＵを特定することが可能となる。これは、命令・データ信号同期手段によって、各ＣＰＵが完全に同期して動作することになり、その結果、ＣＰＵの動作を出力するトレースポート同士の比較が容易に・網羅的に実行可能となっている点、また、トレースポートという従来の実動作環境でのソフトウェアデバッグ機構をそのまま利用しているため、高速な選別試験が可能となっている点、が大きな理由である。
【図面の簡単な説明】
【００２６】
【図１】図１は従来のシステム構成の一例を示す図である。
【図２】図２は従来のシステム構成の他の例を示す図である。
【図３】図３は本発明の一実施形態の半導体集積回路選別試験装置の構成を示す図である。
【図４】図４は図３の命令・データ信号同期回路の構成を示す図である。
【図５】図５は図３の命令・データ同期信号回路の動作例を説明する図である。
【図６】図６は図３の命令・データ同期信号回路の他の動作例を説明する図である。
【図７】図７は図３の命令・データ同期信号回路の他の動作例を説明する図である。
【図８】図８は図３の命令・データ同期信号回路の他の動作例を説明する図である。
【図９】図９は図３のトレース比較回路の構成を示す図である。
【図１０】図１０は本実施形態におけるトレース情報の構成を示す図である。
【図１１】図１１は本実施形態におけるトレース情報の構成の他の例を示す図である。
【図１２】図１２は図３のトレース比較手回路の動作を示す図である。
【図１３】図１３は図３のトレース比較手回路の他の動作を示す図である。
【図１４】図１４は図３のトレース比較回路の構成の変形例を示す図である。
【符号の説明】
【００２７】
１                  半導体集積回路
２                  メモリ
３                  トレース試験装置
４                  メモリバス
１０−１〜１０−ｎ  ＣＰＵ
１１                命令・データ信号同期回路
１２                トレース比較回路
１３                命令同期回路
１４                データ同期回路
１５                トレース解釈回路
１６                トレース不一致回路
１７                トレース圧縮回路
２１                トレース試験プログラム
２２                トレース試験データ
１０１−１〜１０１−ｎ  ＣＰＵ命令信号
１０２−１〜１０２−ｎ  ＣＰＵデータ信号
１０３−１〜１０３−ｎ  トレース信号
１０４                  同期エラー信号
２００                  トレース試験装置信号
【発明を実施するための最良の形態】
【００２８】
図３は本発明の一実施形態による半導体集積回路選別試験装置の構成を示す図である。図３を参照すると、本実施形態の半導体集積回路選別試験装置は、演算装置であるＣＰＵ１０-1〜ＣＰＵ１０-ｎと命令・データ信号同期回路１１とトレース比較回路１２を有する半導体集積回路１と、トレース試験プログラム２１とトレース試験データ２２を含むメモリ２と、トレース試験装置３とを備える。【００２９】
本実施形態において、ＣＰＵ１０-1〜ＣＰＵ１０-ｎ、半導体集積回路１、メモリ２、命令・データ信号同期回路１１、トレース比較回路１２は、それぞれ、別パッケージ構成だけでなく、ＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ-Ｃｈｉｐ）内部の回路構成あるいは別チップによるＳｉＰ（Ｓｙｓｔｅｍ-ｉｎ-Ｐａｃｋａｇｅ）構成、さらにその組み合わせからなる構成をとってもよい。【００３０】
ＣＰＵ１０-1〜ＣＰＵ１０-ｎは、信号処理プロセッサ、ＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）プロセッサ、構成可能プロセッサ等の、プログラム動作が可能な演算装置であれば何でもよい。これらＣＰＵは、ＣＰＵ命令信号１０１−１〜１０１−ｎを通じて命令の供給を受け、ＣＰＵデータ信号１０２−１〜１０２−ｎを通じて命令・データ信号同期回路１１とデータの授受を行う。また、その実行した結果をトレース情報としてトレース信号１０３−１〜１０３−ｎによりトレース比較回路１２に出力する。命令・データ信号同期回路１１は、ＣＰＵ１０-1〜ＣＰＵ１０-ｎに同期して命令ないしデータを供給する機能を有する。トレース比較回路１２は、ＣＰＵ１０-1〜ＣＰＵ１０-ｎからの対応するトレース情報同士を比較する機能を有する。【００３１】
なお、命令・データ信号同期回路１１とトレース比較回路１２の機能はソフトウェアで実現してもよい。【００３２】
また、命令・データ信号同期回路１１とトレース比較回路１２は同期エラー信号１０４により互いにエラー通知を行う。  命令・データ信号同期回路１１は、クロックやリセット、割り込み等のＣＰＵで利用される信号線を制御してもよい。【００３３】
メモリ２は、コスト的に見合うのであれば、マルチチップ構成やマルチバンク構成をとってもかまわない。【００３４】
本実施形態では、トレース試験プログラム２１は、ＣＰＵ１０-1〜ＣＰＵ１０-ｎによって実行される命令列からなる。また、トレース試験データ２２は、トレース試験プログラム２１によって参照されるデータ列からなる。【００３５】
図４は命令・データ信号同期回路１１の第１の構成例を示す図である。この命令・データ信号同期回路１１はメモリバス４を介してメモリ２に接続され、同期エラー信号１０４を介してトレース比較回路１２に接続され、ＣＰＵ命令信号１０１−１〜１０１−ｎおよびＣＰＵデータ信号１０２−１〜１０２−ｎを介してＣＰＵ１０-1〜ＣＰＵ１０-ｎに接続される、命令同期用の命令同期回路１３と、データ同期用のデータ同期回路１４とを含む。また、命令同期回路１３とデータ同期回路１４お互いの動作状況を監視可能な信号（不図示）を備えている。【００３６】
ここで、メモリ２から読み出される命令はトレース試験プログラム２１であり、また、参照されるデータはトレース試験データ２２である。無論、それ以外の範囲の命令・データを参照しても構わない。例えば、トレース試験プログラム２１は、ベンチマークプログラムのようなものであってもよいし、ＣＰＵの試験網羅率を上げるために新規に作られたものでもよし、顧客ソフトウェアやＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ)のような既存のソフトウェア資産であってもよい。トレース試験データ２２は、そのプログラム内のデータセクションであってもよいし、そのプログラムが参照するファイルのようなものであってもよいし、共有のデータであってもよい。【００３７】
命令同期回路１３は、ＣＰＵ命令信号１０１−〜１０１−ｎからの命令読み出し要求を待ち、全てのＣＰＵからの要求が揃った段階で、メモリバス４を介して、メモリ２から命令の読み出しを行う。そして、読み出された命令は、ＣＰＵ命令信号１０１−〜１０１−ｎを通じて、各ＣＰＵ１０-1〜ＣＰＵ１０-ｎに互いに同期して供給される。なお、全てのＣＰＵからの要求が揃わない場合ないし異なる場合、あるいは、揃ったとしても参照するアドレスが異なる場合には、同期エラー信号１０４によって、その旨をトレース比較回路１２に通知する。これにより、複数ＣＰＵへの命令供給を同期して行うことが可能となる。【００３８】
データ同期回路１４は、データの読み出しおよび書き込みについての同期化を行う。データの読み出しに関しては、ＣＰＵデータ信号１０２−１〜１０２−ｎからのデータ読み出し要求を待ち、全てのＣＰＵの要求が揃った段階で、メモリバス４を介してメモリ２からデータの読み出しを行う。読み出されたデータは、ＣＰＵデータ信号１０２−１〜１０２−ｎを通じて各ＣＰＵ１０-1〜ＣＰＵ１０-ｎに互いに同期して供給される。なお、全てのＣＰＵからの要求が揃わない場合ないし異なる場合、あるいは、揃ったとしても参照するアドレスが異なる場合には、同期エラー信号１０４によってその旨をトレース比較回路１２に通知する。また、データの書き込みに関しては、ＣＰＵデータ信号１０２−１〜１０２−ｎからのデータ書き込み要求を待ち、全てのＣＰＵの要求が揃った段階で、メモリバス４を介してメモリ２へのデータの書き込みを行う。そして、完了信号が、ＣＰＵデータ信号１０２−１〜１０２−ｎを通じて各ＣＰＵ１０-1〜ＣＰＵ１０-ｎに互いに同期して供給される。なお、全てのＣＰＵからの要求が揃わない場合ないし異なる場合、あるいは、揃ったとしても参照するアドレスないしデータが異なる場合には、同期エラー信号１０４によってその旨をトレース比較回路１２に通知する。これにより、複数ＣＰＵへのデータ供給を同期して行うことが可能となる。【００３９】
ここで、命令とデータのそれぞれの同期させる理由は、ＣＰＵの動作トレースを、各サイクルでＣＰＵ間で完全に一致させるためである。トレース比較回路１２に、そのサイクルのズレを補正するバッファのような回路があれば、完全同期でなくても構わない。【００４０】
トレース試験装置３は、トレース比較回路１２から、ＣＰＵ選別試験での不一致の発生の有無や、また不一致が発生した場合には該当するＣＰＵの情報といった、選別対象となる半導体集積回路１からの出力をトレース試験装置信号２００によって受け取り、その内容に応じて、選別試験の停止や続行、再開などを制御する。【００４１】
図５は、図４の命令・データ信号同期回路１１の動作を説明するための図である。図５において、矢印脇のＳと数字からなる符号はステップ番号を表している。ここで、ＣＰＵ１０-1〜ＣＰＵ１０-ｎは、一般的なＣＰＵで採用されている、命令とデータバスを分離したハーバード方式をとっているとする。したがって、命令とデータの両者を同期化する必要がある。【００４２】
ＣＰＵ１０−１は、ＣＰＵ命令信号１０１−１で命令の読み出し要求を出力する（ステップＳ１）。ＣＰＵ１０−２は、ＣＰＵ命令信号１０１−２で命令読み出し要求を出力する（ステップＳ２）。命令同期回路１３は、全ての命令読み出し要求が揃った段階で、メモリバス４を介してメモリ２から命令を読み出す（ステップＳ３）。命令同期回路１１０は、読み出した命令を、ＣＰＵ命令信号１０１-1〜ＣＰＵ１０１-ｎによってＣＰＵ１０-1〜ＣＰＵ１０-ｎに供給する。【００４３】
図６は、図２の命令・データ信号同期回路１１の動作の他の例を説明するための図である。図６において、矢印脇のＳと数字からなる符号は、ステップ番号を表している。【００４４】
ＣＰＵ１０−１は、ＣＰＵデータ信号１０２−１によってデータ読み出し要求を出力する（ステップＳ１）。ＣＰＵ１０−ｎは、ＣＰＵデータ信号１０２−ｎによってデータ読み出し要求を出力する（ステップＳ２）。データ同期回路１４は、全てのデータ読み出し要求が揃った段階で、メモリバス４を介してメモリ２からデータを読み出す（ステップＳ３）。データ同期回路１４は、読み出したデータを、ＣＰＵデータ信号１０２−１〜１０２−ｎによってＣＰＵ１０−１〜１０−ｎに同期して供給する（ステップＳ４）。【００４５】
図７は、図４の命令・データ信号同期回路１１の動作の他の例を説明するための図である。図７において、矢印脇のＳと数字からなる符号は、ステップ番号を表している。【００４６】
ここで、ＣＰＵ１０−１〜１０−ｎは、一般的なＣＰＵで採用されている、命令とデータバスを分離したハーバード方式をとっているとする。したがって、命令とデータの両者を同期させる必要がある。【００４７】
ＣＰＵ１０−１は、ＣＰＵデータ信号１０２−１によってデータ書き込み要求とデータを出力する（ステップＳ１）。ＣＰＵ１０−ｎは、ＣＰＵデータ信号１０２−ｎによってデータ書き込み要求とデータを出力する（ステップＳ２）。データ同期回路１４は、全てのデータ書き込み要求が揃った段階で、メモリバス４を介してメモリ２へデータを書き込む（ステップＳ３）。データ同期回路１４は、メモリ２へのデータ書き込み完了後に、ＣＰＵデータ信号１０２−１〜１０２−ｎによってＣＰＵ１０−１〜１０−ｎに完了を通知する（ステップＳ４）。【００４８】
図８は、図４の命令・データ信号同期回路１１の動作の他の例を説明するための図である。図８において、矢印脇のＳと数字からなる符号はステップ番号を表している。【００４９】
ここで、ＣＰＵ１０−１〜１０−ｎは、一般的なＣＰＵで採用されている、命令とデータバスを分離したハーバード方式をとっているとする。したがって、命令とデータの両者を同期化する必要がある。【００５０】
ＣＰＵ１０−１は、ＣＰＵデータ信号１０２−１によってデータ書き込み要求とデータを出力する（ステップＳ１）。ＣＰＵ１０−ｎは、ＣＰＵ命令信号１０１−ｎによって命令読み出し要求を出力する（ステップＳ２）。命令同期回路１３とデータ同期回路１４は、お互いの要求受理状況を監視し、その結果、お互いの要求が揃わず、かつ、異なる要求が来ていることを認知する（ステップＳ３）。命令同期回路１３とデータ同期回路１４は同期エラー信号１０４によってトレース比較回路１２にエラー情報を通知する。【００５１】
図９はトレース比較回路１２の構成例を示す図である。図９に示すように、トレース比較回路１２は、トレース試験装置信号２００を介して、比較結果出力先のトレース試験装置３と接続され、同期エラー信号１０４によって命令・データ同期信号回路１１に接続され、ＣＰＵトレース信号１０３−１〜１０３−ｎによってＣＰＵ１０−１〜１０−ｎに接続されたトレース解釈回路１５と、トレース情報同士の不一致を判定するトレース不一致判定回路１６を含む。また、トレース解釈回路１５とトレース不一致判定回路１６はお互いの協調動作に必要な信号（不図示）を備える。【００５２】
トレース解釈回路１５は、ＣＰＵトレース信号１０３−１からのトレース情報を解釈し、これを実際に実行された命令列へと変換する。この変換は、単一のＣＰＵのソフトウェアデバッグで利用されていた、トレース情報から命令列へ変換する既存技術で対応可能である。以下では、どの命令でエラーが発生したかを判別するために、命令列での比較を前提にするが、単純に不一致だけを判定するのであれば、トレース情報そのもので比較しても構わない。【００５３】
次に、この変換された命令列は、トレース不一致判定回路１６からの通知に基づいて、トレース試験装置信号２００としてトレース試験装置３に出力される。なお、トレース解釈回路１５は、内部にバッファを備えて、命令列を保存しておいてもよい。また、不一致を起こしたＣＰＵの命令列だけでなく、比較のために、一致しているＣＰＵの命令列を出力してもよい。これにより、不一致判定後に、どのＣＰＵがどの時点で動作不良となったかを診断することが可能となる。ただし、トレース解釈回路１５は、選別試験という観点からは、オプション構成としてもよい。【００５４】
トレース不一致判定回路１６は、ＣＰＵトレース信号１０３−１−１０３−ｎからのトレース情報同士を、比較器を用いて、一致しているかどうかを高速に比較する。すなわち、実際のＣＰＵに供給される周波数にて比較が可能である。もし不一致が検出された場合には、トレース解釈回路１５に不一致を起こしたＣＰＵ番号を通知する。同様に、同期エラー信号１０４によって通知があった場合には、その情報をトレース解釈回路１５に通知する。そして、不一致を起こしたＣＰＵに関する情報を、トレース試験装置信号２００としてトレース試験装置３に出力する。これにより、どのＣＰＵが不一致を起こしたかを診断することが可能となる。【００５５】
なお、トレース比較回路１２に、バッファのような回路を設けることで、サイクル毎のズレを回避し、その結果、命令・データ信号同期回路１１での同期供給を、そのズレ分回避することも可能である。あるいは、そのバッファによって、トレース列をシーケンス全体として比較してもよい。【００５６】
図１０は、本実施形態におけるトレース情報の構成の一例を示す図である。ここでは、トレース情報は、１命令トレース情報が原則として１パケットで表現される。例えば、１パケットは、実行された命令に関する、命令コード自身を表すｎビットと、アドレス自身を表すｎビットと、データ自身を表すｎビット含む。ここで、１命令によって、複数のメモリアクセスが実行される場合には、メモリアクセスについて、１パケットが出力される。【００５７】
図１１は、本実施形態におけるトレース情報の構成の他の例を示す図である。本例は図１０と異なり、１命令トレースが複数パケットで表現されるため、ハードウェアコストを抑えることが可能となる。例えば、１パケットは、実行された命令に関する、種類を表すｋビットと、アドレスおよびデータの一部を表すｎビット含む。ここで、トレースの種類は、実行された命令が、条件付で実行されなかったかという示す条件付非実行、通常の実行を示す単純実行、アドレス出力が行われたことを示すアドレス出力実行、データ出力が行われたことを示すデータ出力実行、アドレスおよびデータ出力が行われたことを示すアドレス・データ出力実行、分岐が行われたことを示す分岐実行からなり、また、その他に、このパケットが事前のパケットの継続情報を示す継続種類、命令実行が待ち状態になっていることを示すＷａｉｔ種類からなる。【００５８】
図１２は、図９のトレース比較回路１２の動作の一例を説明するための図である。図１２において、矢印脇のＳと数字からなる符号はステップ番号を表している。【００５９】
ＣＰＵ１０−１〜１０−ｎからＣＰＵトレース信号１０３−１〜１０３−ｎを介してトレース情報が入力される（ステップＳ１）。トレース不一致判定回路１６は、ステップＳ１で入力されたトレース情報同士に不一致があることを検出し、そして、トレース試験装置信号２００によって、トレース試験装置３にそのＣＰＵ番号を通知する。トレース不一致判定回路１６はまた、トレース解釈回路１５に対して、不一致を起こしたＣＰＵ番号を通知する。トレース解釈回路１５は、不一致を起こしたＣＰＵ全てに関するトレース情報を、トレース試験装置信号２００によってトレース試験装置３に出力する。【００６０】
図１３は、図９のトレース比較回路１２の動作の他の例を説明するための図である。図１３において、矢印脇のＳと数字からなる符号はステップ番号を表している。【００６１】
ＣＰＵ１０−１〜１０１−ｎから、ＣＰＵトレース信号１０３−１〜１０−ｎによってトレース情報が入力される（ステップＳ１）。トレース不一致判定回路１６は、同期エラー信号１０４によって、不一致を起こしたＣＰＵ情報を通知される（ステップＳ２）。トレース不一致判定回路１６は、トレース試験装置信号２００によってトレース試験装置３にそのＣＰＵ番号を通知する（ステップＳ３）。トレース不一致判定回路１６は、トレース解釈回路１５に対して、不一致を起こしたＣＰＵ番号を通知する（ステップＳ４）。トレース解釈回路１５は、不一致を起こしたＣＰＵ全てに関するトレース情報を、トレース試験装置信号２００によってトレース試験装置３に供給する。【００６２】
図１４は、トレース比較回路１２の他の構成例を示す図である。【００６３】
図１４に示すように、トレース比較回路１２はトレース解釈回路１５とトレース不一致判定回路１６とトレース圧縮回路１７を備えている。トレース圧縮回路１７は、不一致を起こしたＣＰＵの情報と、不一致を起こしたＣＰＵから出力された命令実行情報の詳細を圧縮する。一般に、外部のトレース試験装置３への出力には、非常に高い通信性能が要求されるため、このトレース圧縮回路１７によって、そのような通信性能を抑えることが可能となる。【００６４】
なお、以上説明した半導体集積回路選別試験装置の機能は、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータ内の揮発性メモリのように、一定時間プログラムを保持しているものを含む。【００６５】
この出願は２００６年１１月２日に出願された日本出願特願２００６−２９９０９１号を基礎とする優先権を主張し、その開示の全てをここに取り込む。【００６６】
以上、本発明の好ましい実施形態を特定の用語を用いて説明したが、そのような記載は例示のみを目的としており、種々の変形および修正が以下の特許請求の範囲から外れることなく可能であることが理解されるべきである。
【図１】
2008053709.tif 000003
【図２】
2008053709.tif 000004
【図３】
2008053709.tif 000005
【図４】
2008053709.tif 000006
【図５】
2008053709.tif 000007
【図６】
2008053709.tif 000008
【図７】
2008053709.tif 000009
【図８】
2008053709.tif 000010
【図９】
2008053709.tif 000011
【図１０】
2008053709.tif 000012
【図１１】
2008053709.tif 000013
【図１２】
2008053709.tif 000014
【図１３】
2008053709.tif 000015
【図１４】
2008053709.tif 000016
【国際調査報告】
2008053709.tif 000017
2008053709.tif 000018