(57)【要約】  本発明の半導体集積回路は、相互結合網（１０００）に接続される複数のコア（９９）と、相互結合網（１０００）に接続され、コア（９９）の試験に関する試験制御要求を、相互結合網（１０００）を介して発行する試験制御部（５００）と、を備える。相互結合網（１０００）は、複数のコア（９９）および試験制御部（５００）のそれぞれの接続インタフェースとなる複数のアダプタ（３０００）と、複数のアダプタ（３０００）間を接続する複数のルータ（２０００）と、から構成されている。コア（９９）に接続されたアダプタ（３０００）は、試験制御部（５００）から相互結合網（１０００）を介して受信した試験制御要求に基づいて、自身に接続されたコア（９９）の試験を代行するコア試験部を含む。
2008126471.tif 000002
【特許請求の範囲】
【請求項１】
相互結合網に接続される複数のコアを備える半導体集積回路であって、
前記相互結合網に接続され、前記コアの試験に関する試験制御要求を、前記相互結合網を介して発行する試験制御部を備え、
前記相互結合網は、前記複数のコアおよび前記試験制御部のそれぞれの接続インタフェースとなる複数のアダプタと、当該複数のアダプタ間を接続する複数のルータとから構成されており、
前記コアに接続されたアダプタは、前記試験制御部から前記相互結合網を介して受信した前記試験制御要求に基づいて、自身に接続された前記コアの試験を代行するコア試験部を含むことを特徴とする半導体集積回路。
【請求項２】
前記試験制御部は、前記複数のコアの全てまたは一部を対象として前記試験制御要求を発行することを特徴とする、請求項１に記載の半導体集積回路。
【請求項３】
前記試験制御部に接続されたアダプタは、当該試験制御部からの前記試験制御要求を、前記複数のコアの全てまたは一部を対象として複製することを特徴とする、請求項２に記載の半導体集積回路。
【請求項４】
前記試験制御部は、前記試験制御要求として、前記コアへ試験データを注入する旨の要求と、当該コアの試験を当該試験データを用いて実行する旨の要求と、当該コアから試験結果を抽出する旨の要求と、を発行することを特徴とする、請求項１に記載の半導体集積回路。
【請求項５】
前記コア試験部は、自身に接続されたコアからの試験結果を、前記相互結合網を介して、前記試験制御部に送信することを特徴とする、請求項４に記載の半導体集積回路。
【請求項６】
前記試験制御部は、前記コア試験部からの試験結果同士を比較することを特徴とする、請求項５に記載の半導体集積回路。
【請求項７】
前記試験制御部は、前記コア試験部からの試験結果の順序を整列することを特徴とする、請求項６に記載の半導体集積回路。
【請求項８】
前記試験制御部は、前記試験制御要求として、さらに、前記コアから抽出した試験結果を別のコアへ転送する旨の要求を発行することを特徴とする、請求項４に記載の半導体集積回路。
【請求項９】
前記コア試験部は、自身に接続されたコアからの試験結果を、前記相互結合網を介して、別のコア試験部に送信することを特徴とする、請求項８に記載の半導体集積回路。
【請求項１０】
前記コア試験部は、自身に接続されたコアからの試験結果と別のコア試験部からの試験結果とを比較することを特徴とする、請求項９に記載の半導体集積回路。
【請求項１１】
前記コア試験部は、別のコア試験部からの試験結果同士を比較することを特徴とする、請求項９に記載の半導体集積回路。
【請求項１２】
相互結合網に接続される複数のコアを備える半導体集積回路の試験方法であって、
前記相互結合網に接続される試験制御部を設けるとともに、前記相互結合網を、前記複数のコアおよび前記試験制御部のそれぞれの接続インタフェースとなる複数のアダプタと、当該複数のアダプタ間を接続する複数のルータとから構成し、
前記試験制御部が、前記コアの試験に関する試験制御要求を、前記相互結合網を介して発行する試験制御要求発行ステップと、
前記コアに接続されたアダプタ内のコア試験部が、前記試験制御部から前記相互結合網を介して受信した前記試験制御要求に基づいて、自身に接続された前記コアの試験を代行するコア試験代行ステップと、を有することを特徴とする試験方法。
【請求項１３】
前記試験制御要求発行ステップでは、前記複数のコアの全てまたは一部を対象として前記試験制御要求を発行することを特徴とする、請求項１２に記載の試験方法。
【請求項１４】
前記試験制御部に接続されたアダプタが、当該試験制御部からの前記試験制御要求を、前記複数のコアの全てまたは一部を対象として複製する試験制御要求複製ステップをさらに有することを特徴とする、請求項１３に記載の試験方法。
【請求項１５】
前記試験制御要求発行ステップでは、前記試験制御要求として、前記コアへ試験データを注入する旨の要求と、当該コアの試験を当該試験データを用いて実行する旨の要求と、当該コアから試験結果を抽出する旨の要求と、を発行することを特徴とする、請求項１２に記載の試験方法。
【請求項１６】
前記コア試験部が、自身に接続されたコアからの試験結果を、前記相互結合網を介して、前記試験制御部に送信する試験結果送信ステップをさらに有することを特徴とする、請求項１５に記載の試験方法。
【請求項１７】
前記試験制御部が、前記コア試験部からの試験結果同士を比較する試験結果比較ステップをさらに有することを特徴とする、請求項１６に記載の試験方法。
【請求項１８】
前記試験制御部が、前記コア試験部からの試験結果の順序を整列する試験結果整列ステップをさらに有することを特徴とする、請求項１７に記載の試験方法。
【請求項１９】
前記試験制御要求発行ステップでは、前記試験制御要求として、さらに、前記コアから抽出した試験結果を別のコアへ転送する旨の要求を発行することを特徴とする、請求項１５に記載の試験方法。
【請求項２０】
前記コア試験部が、自身に接続されたコアからの試験結果を、前記相互結合網を介して、別のコア試験部に送信する試験結果送信ステップをさらに有することを特徴とする、請求項１９に記載の試験方法。
【請求項２１】
前記コア試験部は、自身に接続されたコアからの試験結果と別のコア試験部からの試験結果とを比較する試験結果比較ステップをさらに有することを特徴とする、請求項２０に記載の試験方法。
【請求項２２】
前記コア試験部は、別のコア試験部からの試験結果同士を比較する試験結果比較ステップをさらに有することを特徴とする、請求項２０に記載の試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、相互結合網に接続される複数のコアを有する半導体集積回路およびその試験方法に関し、特に、相互結合網を活用して、高速かつ柔軟に試験を行うことができる半導体集積回路およびその試験方法に関する。
【背景技術】
【０００２】
半導体の微細化の進展に伴い、今後の半導体集積回路には、ＣＰＵ、演算回路等のコアが数多く搭載されることが予期されている。しかしながら、半導体集積回路の試験時間は、コア数が増えれば増えるほど、当然ながら長くなってしまう。試験時間の短縮には、複数のコアをまとめて並列に試験することと、試験対象のコアを様々な順序で試験することとの両立が不可欠である。【０００３】
図１は、関連する半導体集積回路の一構成例を示す模式図である。【０００４】
図１に示す例では、複数のスキャンチェーン２００１０Ｐ１〜Ｐｎと、コンパクタ２０１００とが設けられている。コンパクタ２０１００は、複数のスキャンチェーン２００１０Ｐ１〜Ｐｎによる試験結果から中間値を生成する注入装置ネットワーク２０１１０と、その生成された中間値を格納するメモリ要素２０１２０とを備えている。これにより、複数のスキャンチェーン２００１０Ｐ１〜Ｐｎでの試験を並列に行うことができ、それらの試験結果を圧縮することが可能となる。【０００５】
しかしながら、図１に示した例は、以下の問題点を有している。【０００６】
全てのスキャンチェーンを利用する必要があるため、特定のコアのみを試験したり、特定のスキャンチェーンのみがコアを試験したりすることができない。【０００７】
これに対応する技術として、特許文献１に記載のような情報処理装置がある。特許文献１には、図１に示した例と同様に、コンパクタが開示されている。したがって、特許文献１記載の技術は、図１に示した例と同じ問題点を有している。【０００８】
図２は、関連する半導体集積回路の別の構成例を示す模式図である。【０００９】
図２に示す例では、複数のコア３００２０Ｐ１〜Ｐｎにそれぞれ接続された複数のスキャンチェーン３００１０Ｐ１〜Ｐｎが設けられている。さらに、複数のスキャンチェーン３００１０Ｐ１〜Ｐｎへの入力の切替を行うコア切替部３０１００と、コア切替部３０１００の制御を行う切替制御部３０２００とが設けられている。これにより、複数のコア３００２０Ｐ１〜Ｐｎのうち、特定のコアのみの試験を行うことが可能となる。【００１０】
しかしながら、図２に示した例は、以下の問題点を有している。【００１１】
スイッチ結合であるために、スキャンチェーンの接続があらかじめ固定されているので、コアの試験順序変更や試験対象のコアのグルーピング等の、負荷に応じた柔軟な試験を行うことができない。【００１２】
これに対応する技術として、特許文献２に記載のような情報処理装置がある。特許文献２には、図２に示した例と同様に、コア切替部に相当する集積回路スイッチ手段が開示されている。したがって、特許文献２記載の技術は、図２に示した例と同じ問題点を有している。【００１３】
図３は、関連する半導体集積回路のさらに別の構成例を示す模式図である。【００１４】
図３に示す例では、ルータ１０１００Ａおよび１０１００Ｂから構成される相互結合網１０２００が設けられており、この相互結合網１０２００によってマスターコア１００１０とスレーブコア１００２０とを接続している。これにより、マスターコア１００１０とスレーブコア１００２０間の接続は、ネットワークベースの結合で仮想化されるため、両者を様々な経路を通って接続することが可能となる。【００１５】
しかしながら、図３に示した例は、以下の問題点を有している。【００１６】
コア間の通信について対応しているものの、接続されたコアの試験について一切考慮していない。【００１７】
これに対応する技術として、特許文献３に記載のような情報処理装置がある。特許文献３には、図３に示した例と同様に、相互結合網が開示されている。したがって、特許文献３記載の技術は、図３に示した例と同じ問題点を有している。【００１８】
上述したように、相互結合網に接続される複数のコアを有する半導体集積回路においては、半導体の微細化に伴いコア数が増大するにあたり、複数のコアをまとめて並列に試験することと、試験対象のコアを様々な順序で試験することとを両立する必要があるものの、上述の関連技術では達成困難であるという課題があった。
【特許文献１】特表２００６−５１８８５５号公報
【特許文献２】特許第３７９１８５９号明細書
【特許文献３】特表２００６−５０２４８７号公報
【発明の開示】
【００１９】
そこで、本発明の目的は、上述した課題を解決する半導体集積回路およびその試験方法を提供することにある。
【００２０】
上記目的を達成する本発明は、相互結合網に接続される複数のコアを備える半導体集積回路およびその試験方法に適用され、概略は以下の通りである。
【００２１】
すなわち、本発明の半導体集積回路は、前記相互結合網に接続され、前記コアの試験に関する試験制御要求を、前記相互結合網を介して発行する試験制御部を備え、前記相互結合網は、前記複数のコアおよび前記試験制御部のそれぞれの接続インタフェースとなる複数のアダプタと、当該複数のアダプタ間を接続する複数のルータとから構成されており、前記コアに接続されたアダプタは、前記試験制御部から前記相互結合網を介して受信した前記試験制御要求に基づいて、自身に接続された前記コアの試験を代行するコア試験部を含むことを特徴とする。
【００２２】
また、本発明の半導体集積回路の試験方法は、前記相互結合網に接続される試験制御部を設けるとともに、前記相互結合網を、前記複数のコアおよび前記試験制御部のそれぞれの接続インタフェースとなる複数のアダプタと、当該複数のアダプタ間を接続する複数のルータとから構成し、前記試験制御部が、前記コアの試験に関する試験制御要求を、前記相互結合網を介して発行する試験制御要求発行ステップと、前記コアに接続されたアダプタ内のコア試験部が、前記試験制御部から前記相互結合網を介して受信した前記試験制御要求に基づいて、自身に接続された前記コアの試験を代行するコア試験代行ステップと、を有することを特徴とする。
【００２３】
この構成によれば、試験制御部が、相互結合網を介して試験制御要求を送信することでコア試験部の制御を行い、コア試験部が、本来は試験制御部で実行すべきコアの試験を代行している。
【００２４】
したがって、複数のコアをまとめて並列に試験することと、試験対象のコアを様々な順序で試験することとを両立できるため、高速かつ柔軟に試験を行うことができ、その結果、半導体集積回路の試験時間の短縮を図ることができるという効果が得られる。
【００２５】
なお、この効果は、単に相互結合網を用いた構成とするだけで得られるものではなく、コアの試験を目的として、試験制御部とコア試験部との間で試験のための試験制御要求を送受信する機能を含めることで初めて得られる。
【図面の簡単な説明】
【００２６】
【図１】関連する半導体集積回路の一構成例を示す図である。
【図２】関連する半導体集積回路の別の構成例を示す図である。
【図３】関連する半導体集積回路のさらに別の構成例を示す図である。
【図４】本実施形態の半導体集積回路の全体構成を示す図である。
【図５】本実施形態に係るコアを説明する図である。
【図６】本実施形態に係る相互結合網の構成を示す図である。
【図７】本実施形態に係るルータノードおよびアダプタの動作を説明する図である。
【図８】本実施形態に係る相互結合網内で転送される通常パケットのパケット構成を示す図である。
【図９】本実施形態に係るルータノードの構成を示す図である。
【図１０】本実施形態に係るルータノードの動作を説明する図である。
【図１１】本実施形態に係るルータノードの動作を説明する図である。
【図１２】本実施形態に係るルータノードの動作を説明する図である。
【図１３】本実施形態に係るアダプタの接続関係を示す図である。
【図１４】本実施形態に係るアダプタの動作を説明する図である。
【図１５】本実施形態に係るアダプタの動作を説明する図である。
【図１６】本実施形態に係る相互結合網内で転送される試験パケットのパケット構成を示す図である。
【図１７】本実施形態に係るアダプタの構成を示す図である。
【図１８】本実施形態に係るアダプタの動作を説明する図である。
【図１９】本実施形態に係るアダプタの動作を説明する図である。
【図２０】本実施形態に係るアダプタの動作を説明する図である。
【図２１】本実施形態に係るアダプタの動作を説明する図である。
【図２２】本実施形態の半導体集積回路の構成を示す図である。
【図２３】本実施形態の半導体集積回路の動作を説明する図である。
【図２４】本実施形態の半導体集積回路の動作を説明する図である。
【図２５】本実施形態の半導体集積回路の動作を説明する図である。
【図２６】本実施形態の半導体集積回路の動作を説明する図である。
【図２７】本実施形態に係るコアの試験作業時の接続関係を示す図である。
【図２８】本実施形態に係るコアの試験作業時の接続関係を示す図である。
【図２９】本実施形態の半導体集積回路の動作を説明する図である。
【図３０】本実施形態に係るコアの試験作業時の接続関係を示す図である。
【図３１】本実施形態に係るコアの試験作業時の接続関係を示す図である。
【図３２】本実施形態に係るコアの試験作業時の接続関係を示す図である。
【図３３】本実施形態の半導体集積回路の動作を説明する図である。
【図３４】本実施形態に係るアダプタの別の動作を説明する図である。
【図３５】本実施形態に係るアダプタの別の動作を説明する図である。
【図３６】本実施形態の半導体集積回路の別の動作を説明する図である。
【発明を実施するための最良の形態】
【００２７】
以下に、本発明を実施するための最良の形態について図面を参照して説明する。【００２８】
図４は、本実施形態の半導体集積回路１００の全体構成の一例を示す図である。【００２９】
図４を参照すると、半導体集積回路１００は、ＣＰＵ１０Ｐ１〜Ｐｎと、演算回路２０Ｐ１〜Ｐｎと、外部のメモリ３１に接続されるメモリ制御回路３０と、外部のＩ／Ｏ４１に接続されるＩ／Ｏ制御回路４０と、外部の試験装置やＩＣＥ（In Circuit Emulator）等に接続される試験制御部５００と、ＣＰＵ１０Ｐ１〜Ｐｎ、演算回路２０Ｐ１〜Ｐｎ、メモリ制御回路３０、Ｉ／Ｏ制御回路４０、および試験制御部５００が接続される相互結合網１０００とを備えている。【００３０】
なお、半導体集積回路１００は、上記構成要素を別々のパッケージとした別パッケージ構成とすることができる。また、半導体集積回路１００は、上記構成要素を１チップに実装するＳｏＣ（System On Chip）構成、上記構成要素を別チップとして製造した後にチップ間を接続するＳｉＰ（System in Package）構成、３次元ＬＳＩ構成、または３次元ＬＳＩを組み合わせた構成であってもよい。【００３１】
ＣＰＵ１０Ｐ１〜Ｐｎは、信号処理プロセッサ、ＶＬＩＷ（Very Long Instruction Word）プロセッサ、構成可能プロセッサ等の、プログラム動作が可能な演算装置である。【００３２】
演算回路２０Ｐ１〜Ｐｎは、アクセラレータ、動的再構成可能回路等の、主にデータ処理を行う演算装置である。【００３３】
電源・クロック制御回路５０は、各回路への電源やクロックを供給する制御を行う。また、電源・クロック制御回路５０は、割込み制御や温度制御といった共通制御機能を備えていてもよい。【００３４】
図５は、半導体集積回路１００におけるコアを説明する図である。【００３５】
図５を参照すると、ＣＰＵ１０、演算回路２０、メモリ制御回路３０、Ｉ／Ｏ制御回路４０、電源・クロック制御回路５０等の各回路は、以降、コア９９という総称で表される。すなわち、コア９９と表された回路は、特定の回路種別に依存しないことを意味する。【００３６】
試験制御部５００は、本発明の特徴部分の１つであり、試験装置やＩＣＥ等と接続されて、半導体集積回路１００内の試験をつかさどる役目を果たす。試験制御部５００は、ＣＰＵ、信号処理プロセッサ、ＶＬＩＷプロセッサ、構成可能プロセッサ等の、プログラム動作が可能な演算装置、または、それら演算装置の組み合わせである。これにより、試験作業時の状況に応じた、適切な機能を実現することができる。【００３７】
試験制御部５００は、試験対象のコア９９に関する試験制御要求を、相互結合網１０００を介して発行する。この試験制御要求は、相互結合網１０００の内部において、試験制御部５００に接続されるアダプタ３０００（図６参照）により複製され、マルチキャストやブロードキャスト等を利用して、試験対象のコア９９に接続されるアダプタ３０００に転送される。試験制御要求を受信したアダプタ３０００の内部では、その試験制御要求に基づき、コア試験部３３００（図１７参照）がコア９９の試験を代行する。これにより、複数のコア９９をまとめて並列に試験することと、試験対象のコア９９を様々な順序で試験することとの両立を図ることができ、その結果、試験時間の短縮が図れる。【００３８】
また、試験制御部５００は、コア９９から試験制御要求に対する応答として受信した試験結果の順序を整列する。これにより、コア９９同士を仮想的に接続することができる。【００３９】
さらに、試験制御部５００は、コア９９から受信した試験結果同士を比較する。これにより、試験装置やＩＣＥ等を介さずに、どのコア９９に不具合があるのかを検出することができ、その結果、試験時間のさらなる短縮が図れる。【００４０】
なお、図４においては、試験制御部５００を１つだけ図示しているが、試験制御部５００は、半導体集積回路１００内に複数設けてもよい。【００４１】
また、試験制御部５００の接続先は、試験装置やＩＣＥだけでなく、半導体集積回路１００内部の試験回路や、半導体集積回路１００にスタックされる試験回路といった、試験に関係するものであればよい。また、試験制御部５００の上記接続先との接続方法、接続形態、接続構成は一切限定されない。【００４２】
図６は、相互結合網１０００の全体構成の一例を示す図である。【００４３】
図６を参照すると、相互結合網１０００は、複数のコア９９および試験制御部５００が接続されるものであり、複数のコア９９および試験制御部５００のそれぞれの接続インタフェースとなる複数のアダプタ３０００と、複数のアダプタ３０００間を接続するルータである複数のルータノード２０００とを備えている。【００４４】
アダプタ３０００は、コア９９または試験制御部５００から受信した信号を、相互結合網１０００内で転送可能なパケット構成のパケット（図８および図１６参照）に変換して、ルータノード２０００に送信する。また、アダプタ３０００は、ルータノード２０００から受信したパケットを、コア９９および試験制御部５００で処理可能な信号に変換して、コア９９または試験制御部５００に送信する。【００４５】
ルータノード２０００は、アダプタ３０００または隣接ルータノード２０００から受信したパケットを、そのパケットのヘッダに記述された宛先情報に従って、隣接ルータノード２０００またはアダプタ３０００へ送信する。【００４６】
なお、図６においては、アダプタ３０００は、ルータノード２０００、コア９９、および試験制御部５００から独立した手段として図示しているが、上述したパケット変換機能を備えていれば、ルータノード２０００内またはコア９９もしくは試験制御部５００内に埋め込まれていてもよい。【００４７】
図７は、図６に示したルータノード２０００およびアダプタ３０００の動作の一例を説明するための図である。図７において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、送信コア９９Ａが、送信アダプタ３０００Ａ、送信ルータノード２０００Ａ、受信ルータノード２０００Ｂ、および受信アダプタ３０００Ｂを介して、受信コア９９Ｂに対して、リードアクセスまたはライトアクセスといったアクセス要求を送信する場合の動作について説明する。【００４８】
ステップ１（Ｓ１）：送信コア９９Ａは、送信アダプタ３０００Ａに対して、アクセス要求をコア送信信号（図１３参照）として送信する。【００４９】
ステップ２（Ｓ２）：送信アダプタ３０００Ａは、送信コア９９Ａから受信したアクセス要求を、相互結合網１０００内で転送可能なパケット構成のパケットに変換する。この変換されたパケットは送信ルータノード２０００Ａに送信される。【００５０】
ステップ３（Ｓ３）：送信ルータノード２０００Ａは、送信アダプタ３０００Ａから受信したパケットを、そのパケットのヘッダに記述された宛先情報に従って、隣接ルータノード２０００に送信する。その隣接ルータノード２０００が受信コア９９Ｂに接続された受信ルータノード２０００Ｂでない限り、上記パケットは、様々な中間ルータノード群２０００Ｃを経由して、受信ルータノード２０００Ｂへと到着する。【００５１】
ステップ４（Ｓ４）：受信ルータノード２０００Ｂは、送信ルータノード２０００Ａから到着したパケットのヘッダに記述された宛先情報を基に、そのパケットが自身に接続された受信コア９９Ｂで処理すべきパケットであるか判断する。受信コア９９Ｂで処理すべきパケットであると判断すると、受信ルータノード２０００Ｂは、そのパケットを受信アダプタ３０００Ｂに送信する。【００５２】
ステップ５（Ｓ５）：受信アダプタ３０００Ｂは、受信ルータノード２０００Ｂから受信したパケットの解析と展開を行うことにより、そのパケットを受信コア９９Ｂで処理可能なコア受信信号（図１３参照）に変換して受信コア９９Ｂに送信する。【００５３】
図８は、相互結合網１０００内で転送されるパケットの典型的なパケット構成を示す図である。なお、図８に示すパケットは、試験制御部５００から発行された試験制御要求およびその試験制御要求に対する応答の処理に用いられる試験パケット以外のパケットであり、試験パケットと区別するために通常パケットと称する。【００５４】
図８を参照すると、通常パケットは、ルータノード２０００の制御情報が記述されたヘッダと、コア９９へのアクセス情報が記述されたボディと、パケットの正当性を保証するためのテイラと、の３パートからなる。各パートは、ルータノード２０００間の転送の際に、フリットと呼ばれる、さらに細かい単位へ分割される。例えば、ヘッダは、宛先ノード、パケットサイズ、送信元ノード、パケット種別がそれぞれ記述されたフリットに分割される。また、ボディは、送信先のコアがメモリである場合、そのメモリへのアドレス、リード・ライトといったアクセス種別、ライト時の書き込みデータがそれぞれ記述されたフリットに分割される。さらに、テイラについては、パケット全体のＣＲＣ（Cyclic Redundancy Code）が記述されたフリットに分割される。【００５５】
なお、図８に示した通常パケットのパケット構成やフリット構成は、あくまで一例であり、相互結合網１０００を構成するルータノード２０００の仕様に従うものであれば一切限定されない。【００５６】
図９は、ルータノード２０００の典型的な構成を示す図である。【００５７】
図９を参照すると、ルータノード２０００は、隣接ルータノード２０００との入力用に複数チャネルを、隣接ルータノード２０００との出力用に複数チャネルを、アダプタ３０００との入力用と出力用にそれぞれ１チャネルを備えている。各チャネルは、接続リンクのフロー制御等を行うリンク制御回路２０１０と、パケットを一時的に格納するバッファ２０２０とから構成される。さらに、ルータノード２０００は、入力用と出力用のチャネル間を接続するスイッチ回路２０３０と、スイッチ回路２０３０にて接続するチャネルを通知するルーティング制御部２１００とを備えている。なお、アダプタ３０００との入力用と出力用のチャネルは１チャネルに限らず、複数チャネルとしてもよい。その場合、アダプタ３０００とスイッチ回路２０３０とを接続するチャネル数を拡張すれば良い。【００５８】
リンク制御回路２０１０は、エンド・トゥ・エンドではなく、リンク・トゥ・リンク（隣接ルータノード間）でパケットをやり取りする。これにより、例えば、ハンドシェーク信号を用いてデータを転送したり、送信先のバッファが満杯の場合に、送信を停止したりすることが可能となる。【００５９】
スイッチ回路２０３０は、ルーティング制御部２１００からの通知を基に、入力用と出力用のチャネル間を接続する。例えば、スイッチ回路２０３０は、クロスバースイッチ、オメガ網に代表される多段結合網、ネットワークに接続される結合網等である。【００６０】
ルーティング制御部２１００は、隣接ルータノード２０００またはアダプタ３０００との入力用チャネルから受信したパケットのヘッダに記述された宛先情報を基に、その入力用チャネルをどの出力用チャネルに接続するかを決定し、決定した出力用チャネルをスイッチ回路２０３０に通知する。なお、ルーティング制御部２１００は、チャネルでのスタベーションやデッドロックを防ぐ機能等を備えていてもよい。【００６１】
なお、ルータノード２０００は、仮想チャネルを用いたルータノードであってもよい。【００６２】
図１０は、図９に示したルータノード２０００の動作の一例を説明するための図である。図１０において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、隣接ルータノード２０００からパケットを受信し、そのパケットを別の隣接ルータノード２０００へ送信する場合の動作について説明する。【００６３】
ステップ１（Ｓ１）：リンク制御回路２０１０Ａは、隣接ルータノード２０００からパケットを受信する。【００６４】
ステップ２（Ｓ２）：リンク制御回路２０１０Ａは、上記パケットを入力バッファ２０２０Ａに格納する。【００６５】
ステップ３（Ｓ３）：入力バッファ２０２０Ａは、自身の出力を、スイッチ回路２０３０の入力に接続する。【００６６】
ステップ４（Ｓ４）：ルーティング制御部２１００は、入力バッファ２０２０Ａに格納されたパケットのヘッダに記述された宛先情報を基に、入力バッファ２０２０Ａを接続する出力バッファ２０２０Ｂを決定する。【００６７】
ステップ５（Ｓ５）：ルーティング制御部２１００は、ステップ４で決定した出力バッファ２０２０Ｂをスイッチ回路２０３０に通知する。【００６８】
ステップ６（Ｓ６）：スイッチ回路２０３０は、入力バッファ２０２０Ａと出力バッファ２０２０Ｂとを接続し、入力バッファ２０２０Ａに格納されたパケットを出力バッファ２０２０Ｂに格納する。【００６９】
ステップ７（Ｓ７）：リンク制御回路２０１０Ｂは、出力バッファ２０２０Ｂに格納されたパケットを読み出し、隣接ルータノード２０００への転送準備を開始する。【００７０】
ステップ８（Ｓ８）：リンク制御回路２０１０Ｂは、出力バッファ２０２０Ｂから読み出したパケットを、隣接ルータノード２０００へ送信する。【００７１】
図１１は、図９に示したルータノード２０００の動作の一例を説明するための図である。図１１において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、アダプタ３０００からパケットを受信し、そのパケットを隣接ルータノード２０００へ送信する場合の動作について説明する。【００７２】
ステップ１（Ｓ１）：リンク制御回路２０１０Ｃは、アダプタ３０００からパケットを受信する。【００７３】
ステップ２（Ｓ２）：リンク制御回路２０１０Ｃは、上記パケットを入力バッファ２０２０Ｃに格納する。【００７４】
ステップ３（Ｓ３）：入力バッファ２０２０Ｃは、自身の出力を、スイッチ回路２０３０の入力に接続する。【００７５】
ステップ４（Ｓ４）：ルーティング制御部２１００は、入力バッファ２０２０Ｃに格納されたパケットのヘッダに記述された宛先情報を基に、入力バッファ２０２０Ｃを接続する出力バッファ２０２０Ｄを決定する。【００７６】
ステップ５（Ｓ５）：ルーティング制御部２１００は、ステップ４で決定した出力バッファ２０２０Ｄをスイッチ回路２０３０に通知する。【００７７】
ステップ６（Ｓ６）：スイッチ回路２０３０は、入力バッファ２０２０Ｃと出力バッファ２０２０Ｄとを接続し、入力バッファ２０２０Ｃに格納されたパケットを出力バッファ２０２０Ｄに格納する。【００７８】
ステップ７（Ｓ７）：リンク制御回路２０１０Ｄは、出力バッファ２０２０Ｄに格納されたパケットを読み出し、隣接ルータノード２０００への転送準備を開始する。【００７９】
ステップ８（Ｓ８）：リンク制御回路２０１０Ｄは、出力バッファ２０２０Ｄから読み出したパケットを、隣接ルータノード２０００へ送信する。【００８０】
図１２は、図９に示したルータノード２０００の動作の一例を説明するための図である。図１２において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、隣接ルータノード２０００からパケットを受信し、そのパケットをアダプタ３０００へ送信する場合の動作について説明する。【００８１】
ステップ１（Ｓ１）：リンク制御回路２０１０Ａは、隣接ルータノード２０００からパケットを受信する。【００８２】
ステップ２（Ｓ２）：リンク制御回路２０１０Ａは、上記パケットを入力バッファ２０２０Ａに格納する。【００８３】
ステップ３（Ｓ３）：入力バッファ２０２０Ａは、自身の出力を、スイッチ回路２０３０の入力に接続する。【００８４】
ステップ４（Ｓ４）：ルーティング制御部２１００は、入力バッファ２０２０Ａに格納されたパケットのヘッダに記述された宛先情報を基に、アダプタ３０００への送信が必要であると判断し、入力バッファ２０２０Ａを接続する出力バッファ２０２０Ｅを決定する。【００８５】
ステップ５（Ｓ５）：ルーティング制御部２１００は、ステップ４で決定した出力バッファ２０２０Ｅをスイッチ回路２０３０に通知する。【００８６】
ステップ６（Ｓ６）：スイッチ回路２０３０は、入力バッファ２０２０Ａと出力バッファ２０２０Ｅとを接続し、入力バッファ２０２０Ａに格納されたパケットを出力バッファ２０２０Ｅに格納する。【００８７】
ステップ７（Ｓ７）：リンク制御回路２０１０Ｅは、出力バッファ２０２０Ｅに格納されたパケットを読み出し、アダプタ３０００への転送準備を開始する。【００８８】
ステップ８（Ｓ８）：リンク制御回路２０１０Ｅは、出力バッファ２０２０Ｅから読み出したパケットを、アダプタ３０００へ送信する。【００８９】
図１３は、アダプタ３０００の典型的な接続関係を示す図である。なお、図１３は、コア９９に接続されたアダプタ３０００の接続関係を示している。【００９０】
図１３を参照すると、アダプタ３０００は、コア９９とは、コア９９からのコア送信信号３０１０およびコア９９へのコア受信信号３０２０の信号線を介して接続されている。また、アダプタ３０００は、ルータノード２０００とは、ルータノード２０００へのルータノード受信信号３０１１およびルータノード２０００からのルータノード送信信号３０２１の信号線を介して接続されている。さらに、アダプタ３０００は、コア９９とは、コア９９へのコア試験入力信号３０３０およびコア９９からのコア試験出力信号３０４０の信号線を介して接続されている。なお、コア試験入力信号３０３０およびコア試験出力信号３０４０の信号線は、コア９９経由で、スキャンチェーンやＪＴＡＧ（Joint Test Action Group）で定めた試験信号線に接続される。【００９１】
なお、コア送信信号３０１０、コア受信信号３０２０、コア試験入力信号３０３０、およびコア試験出力信号３０４０は、コア９９で処理可能な信号である。ここで、コア試験入力信号３０３０およびコア試験出力信号３０４は、試験制御部５００から発行された試験制御要求およびその試験制御要求に対する応答の処理に用いられる信号であり、コア送信信号３０１０およびコア受信信号３０２０は、上記以外の処理に用いられる信号である。一方、ルータノード受信信号３０１１およびルータノード送信信号３０２１は、パケットをやり取りするパケット信号である。【００９２】
図１４は、図１３に示したアダプタ３０００の動作の一例を説明するための図である。図１４において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、コア９９からのコア送信信号３０１０を受信する処理について説明する。【００９３】
ステップ１（Ｓ１）：アダプタ３０００は、コア９９からのコア送信信号３０１０を受信する。【００９４】
ステップ２（Ｓ２）：アダプタ３０００は、コア９９から受信したコア送信信号３０１０をパケットに変換し、変換したパケットをルータノード受信信号３０１１としてルータノード２０００に送信する。【００９５】
図１５は、図１３に示したアダプタ３０００の動作の一例を説明するための図である。図１５において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、ルータノード２０００からのルータノード送信信号３０２１を受信する処理について説明する。【００９６】
ステップ１（Ｓ１）：アダプタ３０００は、ルータノード２０００からのパケットをルータノード送信信号３０２１として受信する。【００９７】
ステップ２（Ｓ２）：アダプタ３０００は、ルータノード２０００から受信したパケットをコア受信信号３０２０に変換し、変換したコア受信信号３０２０をコア９９に送信する。【００９８】
図１６は、相互結合網１０００内で転送される試験パケットの典型的な構成を示す図である。試験パケットとは、上述のように、試験制御部５００から発行された試験制御要求およびその試験制御要求に対する応答の処理に用いられるパケットである。【００９９】
図１６を参照すると、試験パケットは、図８に示した通常パケットとはボディパートが異なる。試験パケットのボディパートは、試験実行時に用いる試験データのコア９９への注入、その試験データを用いたコア９９の試験の実行、その試験結果のコア９９からの抽出等であるパケット種別と、ルータノード２０００のノード番号と組み合わされてコア９９間の仮想的な接続を実現するための逐次番号と、上記試験データや応答データ（上記試験結果や後述の比較結果等を表すデータ）であるデータとが記述されている。【０１００】
なお、試験データとは、上述のように、コア９９の試験実行時に用いるデータである。例えば、コア９９の構造試験の一種であるスキャンテストにおいては、コア９９のスキャン入力ＳＩに入力する“０”または“１”の値が試験データとなる。【０１０１】
試験制御部５００は、試験パケットの逐次番号とルータノード２０００のノード番号とを用いて、試験結果の順序を整列する。これにより、試験パケットの実際の到着順序に依らず、コア９９同士を仮想的に接続することが可能となる。【０１０２】
なお、図１６に示した試験パケットのパケット構成やフリット構成は、あくまで一例であり、相互結合網１０００を構成するルータノード２０００の仕様に従うものであれば一切限定されない。【０１０３】
図１７は、アダプタ３０００の典型的な構成を示す図である。なお、図１７は、コア９９に接続されたアダプタ３０００の構成を示している。【０１０４】
図１７を参照すると、アダプタ３０００は、ルータノード２０００へパケットを送信するパケット送信部３１００と、ルータノード２０００からのパケットを受信するパケット受信部３２００と、本発明の特徴部分の１つであるコア試験部３３００とを備えている。【０１０５】
パケット送信部３１００は、コア９９からコア送信信号３０１０を受信すると、そのコア送信信号３０１０を相互結合網１０００内で転送可能なパケット構成のパケットに変換して、ルータノード受信信号３０１１としてルータノード２０００に送信する。また、パケット送信部３１００は、コア試験部３３００から試験パケットが渡されると、その試験パケットをルータノード受信信号３０１１としてルータノード２０００に送信する。【０１０６】
パケット受信部３２００は、ルータノード２０００から通常パケットを受信すると、その通常パケットをコア９９で処理可能なコア受信信号３０２０に変換して、コア９９に送信する。また、パケット受信部３２００は、ルータノード２０００から試験パケットを受信すると、その試験パケットをコア試験部３３００に渡す。ここで、パケット受信部３２００の内部に、複数のパケットを保持しておくバッファを設けていてもよい。【０１０７】
コア試験部３３００は、パケット受信部３２００から試験パケットが渡されると、その試験パケットの内容に基づいて試験作業を行う。ここで、試験の種類は、構造試験、遅延試験、マージン試験、機能試験等、どのような試験方式であっても構わない。【０１０８】
なお、試験作業とは、例えば、試験パケットに含まれる試験データをコア９９を介してスキャンチェーンへ注入する作業、コア９９を介してスキャンチェーンに対し、試験データを用いたコア９９の試験実行命令を供給する作業、スキャンチェーンからコア９９を介して試験結果を抽出し、その試験結果を試験パケットに変換する作業、コア９９およびＪＴＡＧで定めた試験信号線を介して機能テスト用レジスタの設定を行う作業、その機能テスト用レジスタに対して命令を供給する作業等、試験に関する全般的な作業のことを指す。【０１０９】
このように、本実施形態においては、相互結合網１０００を単に複数のコア９９間の通信に用いるだけでなく、試験制御部５００が、相互結合網１０００を用いて試験制御要求の試験パケットを送信することでコア試験部３３００の制御を行い、コア試験部３３００が、コア９９の試験を代行する点に特徴がある。【０１１０】
これにより、複数のコア９９をまとめて並列に試験することと、試験対象のコア９９を様々な順序で試験することとの両立を図ることができ、半導体集積回路１００の試験を高速かつ柔軟に行うことができる。【０１１１】
また、コア試験部３３００は、試験実行中の通常パケット用のデータの授受のために、コア受信信号３０２０によるコア９９への命令・データの供給や、コア９９からのコア送信信号３０１０によるデータの供給を代行してもよい。【０１１２】
ここで、試験制御部５００に接続されるアダプタ３０００は、例えば、図１７からコア送信信号３０１０の信号線およびコア受信信号３０２０の信号線を削除した構成とすることができる。このような構成とする場合、コア試験部３３００は、試験制御部５００から発行された試験制御要求を試験パケットに変換し、パケット送信部３１００は、その試験パケットをルータノード２００に送信する。なお、コア試験部３３００は試験パケットを複製することができる。また、パケット受信部３２００は、ルータノード２００から試験パケットを受信し、コア試験部３３００は、その試験パケットを試験制御要求に対する応答に変換して試験制御部５００に送信する。【０１１３】
図１８は、図１７に示したアダプタ３０００の動作の一例を説明するための図である。図１８において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、試験制御部５００から、自身に接続されたコア９９に試験データを注入する旨の試験制御要求が発行された場合の動作について説明する。【０１１４】
ステップ１（Ｓ１）：パケット受信部３２００は、試験制御部５００から発行された上記試験制御要求の試験パケットを受信する。【０１１５】
ステップ２（Ｓ２）：パケット受信部３２００は、受信した試験パケットをコア試験部３３００へと渡す。【０１１６】
ステップ３（Ｓ３）：コア試験部３３００は、パケット受信部３２００から渡された試験パケットを解析する。解析の結果、その試験パケットが自身に接続されたコア９９に試験データを注入する旨の試験制御要求であると判断すると、コア試験部３３００は、その試験パケットに含まれる試験データを、コア９９へと注入する。【０１１７】
図１９は、図１７に示したアダプタ３０００の動作の一例を説明するための図である。図１９において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、試験制御部５００から、自身に接続されたコア９９の試験を実行する旨の試験制御要求が発行された場合の動作について説明する。【０１１８】
ステップ１（Ｓ１）：パケット受信部３２００は、試験制御部５００から発行された上記試験制御要求の試験パケットを受信する。
ステップ２（Ｓ２）：パケット受信部３２００は、受信した試験パケットをコア試験部３３００へと渡す。【０１１９】
ステップ３（Ｓ３）：コア試験部３３００は、パケット受信部３２００から渡された試験パケットを解析する。解析の結果、その試験パケットが自身に接続されたコア９９の試験を実行する旨の試験制御要求であると判断すると、コア試験部３３００は、試験実行命令をコア９９に供給して、コア９９の試験を開始する。【０１２０】
図２０は、図１７に示したアダプタ３０００の動作の一例を説明するための図である。図２０において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、試験制御部５００から、自身に接続されたコア９９から試験結果を抽出して試験制御部５００へ試験結果を戻す旨の試験制御要求が発行された場合の動作について説明する。【０１２１】
ステップ１（Ｓ１）：パケット受信部３２００は、試験制御部５００から発行された上記試験制御要求の試験パケットを受信する。【０１２２】
ステップ２（Ｓ２）：パケット受信部３２００は、受信した試験パケットをコア試験部３３００へと渡す。【０１２３】
ステップ３（Ｓ３）：コア試験部３３００は、パケット受信部３２００から渡された試験パケットを解析する。解析の結果、その試験パケットが自身に接続されたコア９９から試験結果を抽出して試験制御部５００へ試験結果を戻す旨の試験制御要求であると判断すると、コア試験部３３００は、コア９９から試験結果を抽出する準備を開始する。【０１２４】
ステップ４（Ｓ４）：コア試験部３３００は、コア９９からの試験結果を抽出する。【０１２５】
ステップ５（Ｓ５）：コア試験部３３００は、コア９９から抽出した試験結果を、宛先を試験制御部５００とし、さらに、逐次番号を振った試験パケットに変換し、変換した試験パケットをパケット送信部３１００へと渡す。【０１２６】
ステップ６（Ｓ６）：パケット送信部３１００は、コア試験部３３００から渡された試験パケットをルータノード２０００へ送信する。【０１２７】
図２１は、図１７に示したアダプタ３０００の動作の一例を説明するための図である。図２１において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、試験制御部５００から、試験制御部５００から、自身に接続されたコア９９に試験データを注入し、試験を実行し、試験結果を抽出して試験制御部５００へ試験結果を戻す旨の試験制御要求が発行された場合の動作について説明する。【０１２８】
ステップ１（Ｓ１）：パケット受信部３２００は、試験制御部５００から発行された上記試験制御要求の試験パケットを受信する。【０１２９】
ステップ２（Ｓ２）：パケット受信部３２００は、受信した試験パケットをコア試験部３３００へと渡す。【０１３０】
ステップ３（Ｓ３）：コア試験部３３００は、パケット受信部３２００から渡された試験パケットを解析する。解析の結果、その試験パケットが自身に接続されたコア９９に試験データを注入し、試験を実行し、試験結果を抽出して試験制御部５００へ試験結果を戻す旨の試験制御要求であると判断すると、コア試験部３３００は、その試験パケットに含まれる試験データをコア９９へと注入する。その後、コア試験部３３００は、試験実行命令をコア９９に供給して、コア９９の試験を開始する。【０１３１】
ステップ４（Ｓ４）：コア試験部３３００は、コア９９からの試験結果を抽出する。【０１３２】
ステップ５（Ｓ５）：コア試験部３３００は、コア９９から抽出した試験結果を、宛先を試験制御部５００とし、さらに、逐次番号を振った試験パケットに変換し、変換した試験パケットをパケット送信部３１００へと渡す。【０１３３】
ステップ６（Ｓ６）：パケット送信部３１００は、コア試験部３３００から渡された試験パケットをルータノード２０００へ送信する。【０１３４】
図２２は、相互結合網１０００に接続された複数のコア９９を有する半導体集積回路１００の典型的な構成を示す図である。【０１３５】
図２２を参照すると、半導体集積回路１００は、試験制御部５００と、１５個のコア９９Ｐ１０〜９９Ｐ３３と、相互結合網１０００を構成する１６個のルータノード２０００Ｐ００〜２０００Ｐ３３および１６個のアダプタ３０００Ｐ００〜３０００Ｐ３３とを備えている。ここで、試験制御部５００はアダプタ３０００Ｐ００を介してルータノード３０００Ｐ００に接続され、また、残りのコア９９Ｐ１０〜９９Ｐ３３は、アダプタ３０００Ｐ１０〜３０００Ｐ３３に接続され、また、アダプタ３０００Ｐ１０〜３０００Ｐ３３はルータノード２０００Ｐ１０〜２０００Ｐ３３に接続される。【０１３６】
ルータノード２０００Ｐ００〜２０００Ｐ３３は、入力用と出力用にそれぞれ４チャネルを備えており、全体としてメッシュ構造の相互結合網１０００を形成している。無論、相互結合網１０００の構成はメッシュ構造に限らず、一般の相互結合網１０００の構造でもよい。【０１３７】
図２３は、図２２に示した半導体集積回路１００の動作の一例を説明するための図である。図２３において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、試験制御部５００から発行された、全てのコア９９Ｐ１０〜９９Ｐ３３に試験データを注入する旨の試験制御要求の試験パケットが、アダプタ３０００Ｐ００以外の全てのアダプタ３０００Ｐ１０〜３０００Ｐ３３へブロードキャストで送信される場合の動作について説明する。【０１３８】
ステップ１（Ｓ１）：試験制御部５００は、アダプタ３０００Ｐ００に対し、全てのコア９９Ｐ１０〜９９Ｐ３３へ試験データを注入する旨の試験制御要求を発行する。次に、アダプタ３０００Ｐ００は、全てのコア９９Ｐ１０〜９９Ｐ３３を宛先とした試験パケットを複製し、複製した試験パケットをルータノード２０００Ｐ００へと送信する。次に、ルータノード２０００Ｐ００は、全ての試験パケットを隣接ルータノード２０００Ｐ０１または２０００Ｐ１０に送信する。以降、試験パケットを受信した各ルータノード２０００Ｐ１０〜２０００Ｐ３３は、自身を宛先とする試験パケットをアダプタ３０００Ｐ１０〜３０００Ｐ３３に送信する。【０１３９】
これにより、相互結合網１０００の特徴を生かすことができ、さらに、試験制御部５００とコア試験部３３００との協調で試験データの複製を容易に行うことができるため、試験時間の短縮に効果がある。【０１４０】
図２４は、図２２に示した半導体集積回路１００の動作の一例を説明するための図である。図２４において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、全てのコア９９Ｐ１０〜９９Ｐ３３への試験データの注入を行う場合の動作について説明する。【０１４１】
ステップ１（Ｓ１）：試験制御部５００に接続されたアダプタ３０００Ｐ００以外のアダプタ３０００Ｐ１０〜３０００Ｐ３３は、自身に接続されたコア９９Ｐ１０〜９９Ｐ３３に対して、試験データの注入を行う。【０１４２】
これにより、試験データの並列注入が可能となるため、試験時間の短縮に効果がある。【０１４３】
図２５は、図２２に示した半導体集積回路１００の動作の一例を説明するための図である。図２５において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、試験制御部５００から発行された、全てのコア９９Ｐ１０〜９９Ｐ３３の試験を実行する旨の試験制御要求の試験パケットが、アダプタ３０００Ｐ００以外の全てのアダプタ３０００Ｐ１０〜３０００Ｐ３３へブロードキャストで送信される場合の動作について説明する。【０１４４】
ステップ１（Ｓ１）：試験制御部５００は、アダプタ３０００Ｐ００に対し、全てのコア９９Ｐ１０〜９９Ｐ３３の試験を実行する旨の試験制御要求を発行する。次に、アダプタ３０００Ｐ００は、全てのコア９９Ｐ１０〜９９Ｐ３３を宛先とした試験パケットを複製し、複製した試験パケットをルータノード２０００Ｐ００へと送信する。次に、ルータノード２０００Ｐ００は、全ての試験パケットを隣接ルータノード２０００Ｐ０１または２０００Ｐ１０に送信する。以降、試験パケットを受信した各ルータノード２０００Ｐ１０〜２０００Ｐ３３は、自身を宛先とする試験パケットをアダプタ３０００Ｐ１０〜３０００Ｐ３３に送信する。試験パケットを受信した各アダプタ３０００Ｐ１０〜３０００Ｐ３３は、自身に接続されたコア９９Ｐ１０〜９９Ｐ３３に試験実行命令を供給して試験を開始する。【０１４５】
図２６は、図２２に示した半導体集積回路１００の動作の一例を説明するための図である。図２６において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、コア試験部３３００から試験制御部５００に、試験結果を戻す場合の動作について説明する。【０１４６】
ステップ１（Ｓ１）：アダプタ３０００Ｐ００以外のアダプタ３０００Ｐ１０〜３０００Ｐ３３内のコア試験部３３００は、自身に接続されたコア９９Ｐ１０〜９９Ｐ３３から試験結果を抽出する。そして、コア試験部３３００は、試験結果を、試験制御部５００を宛先とした試験パケットに変換し、変換した試験パケットをルータノード２０００Ｐ１０〜２０００Ｐ３３へと送信する。各ルータノード２０００Ｐ１０〜２０００Ｐ３３は、別のルータノード２０００と協調して、試験制御部５００に試験パケットを送信する。【０１４７】
なお、試験制御部５００は、コア試験部３３００から受信した試験パケットに含まれる試験結果同士を比較することもできる。これにより、試験装置やＩＣＥを介さずに、試験結果の比較を行うことができるので、さらなる試験時間の短縮が可能となる。【０１４８】
図２７は、図２２に示した半導体集積回路１００内のコア９９の試験作業時の接続関係の一例を説明するための図である。【０１４９】
試験制御部５００は、コア９９Ｐ１０〜９９Ｐ３３から戻された試験結果の順序を整列する。これにより、半導体集積回路１００の内部において、コア９９Ｐ１０からコア９９Ｐ３３までが順に接続されたように、試験装置やＩＣＥに見せることが可能である。【０１５０】
図２８は、図２２に示した半導体集積回路１００内のコア９９の試験作業時の接続関係の一例を説明するための図である。【０１５１】
試験制御部５００は、コア９９Ｐ１０〜９９Ｐ３３から戻された試験結果の順序を整列する。これにより、半導体集積回路１００の内部において、図２７とは逆に、コアＰ３３からコアＰ１０までが順に接続されたように、試験装置やＩＣＥに見せることが可能である。【０１５２】
以上に述べたように、試験制御部５００とコア試験部３３００との協調により、複数のコア９９間を仮想的に自由に接続することが可能となる。【０１５３】
図２９は、図２２に示した半導体集積回路１００の動作の一例を説明するための図である。図２９において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、試験制御部５００から、特定のコア９９Ｐ３３へ試験データを注入し、試験を実行し、試験結果を抽出して試験制御部５００へ試験結果を戻す旨の試験制御要求が発行された場合の動作について説明する。【０１５４】
ステップ１（Ｓ１）：試験制御部５００は、アダプタ３０００Ｐ００に対し、コア９９Ｐ３３を試験対象とする上記試験制御要求を発行する。この際、試験制御要求には試験データも含まれている。次に、アダプタ３０００Ｐ００は、試験制御部５００から発行された試験制御要求を試験パケットに変換し、変換した試験パケットをルータノード２０００Ｐ００に送信する。この試験パケットは、中間ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０、２０００Ｐ３１、および２０００Ｐ３２を介して、ルータノード２０００Ｐ３３に到着する。ルータノード２０００Ｐ３３は、到着した試験パケットをアダプタ３０００Ｐ３３に送信する。【０１５５】
ステップ２（Ｓ２）：アダプタ３０００Ｐ３３は、ルータノード２０００Ｐ３３から受信した試験パケットを解析する。解析の結果、その試験パケットが特定のコア９９Ｐ３３へ試験データを注入し、試験を実行し、その試験結果を試験制御部５００へ戻す旨の試験制御要求であると判断すると、アダプタ３０００Ｐ３３は、コア９９Ｐ３３への試験データの注入と試験の実行を行い、その後、その試験結果をコア９９Ｐ３３から抽出する。【０１５６】
ステップ３（Ｓ３）：アダプタ３０００Ｐ３３は、試験結果を、試験制御部５００を宛先とする試験パケットに変換し、変換した試験パケットをルータノード２０００Ｐ３３に渡す。この試験パケットは、中間ルータノード２０００Ｐ２３、２０００Ｐ１３、２０００Ｐ１２、２０００Ｐ０２、および２０００Ｐ０１を介して、ルータノード２０００Ｐ００に到着する。ルータノード２０００Ｐ００は、到着した試験パケットをアダプタ３０００Ｐ００を介して試験制御部５００に戻す。【０１５７】
図３０は、図２２に示した半導体集積回路１００内のコア９９の試験作業時の接続関係の一例を説明するための図である。図３０は、図２９の試験制御に対応している。【０１５８】
試験制御部５００は、特定のコア９９Ｐ３３にのみ試験パケットを送信することにより、半導体集積回路１００の内部において、単にコア９９Ｐ３３があるかのように、試験装置やＩＣＥに見せることが可能である。【０１５９】
これにより、重点的に試験が必要なコア９９だけを試験対象として試験を行うことができるので、試験の網羅率も向上する。さらに、別のコア９９に依存せずに試験を行うこともできるので、試験時間の短縮にも寄与する。【０１６０】
図３１は、図２２に示した半導体集積回路１００内のコア９９の試験作業時の接続関係の一例を説明するための図である。図３１は、図２９の試験制御を全てのコア９９に拡張した場合の接続関係を示している。【０１６１】
試験制御部５００は、全てのコア９９Ｐ１０〜９９Ｐ３３に試験パケットを直接送信することにより、半導体集積回路１００の内部において、全てのコア９９Ｐ１０〜９９Ｐ３３があたかも並列になっているかのように、試験装置やＩＣＥに見せることが可能である。【０１６２】
これにより、試験の並列処理ができるため、試験時間の短縮に寄与することができる。【０１６３】
図３２は、図２２に示した半導体集積回路１００内のコア９９の試験作業時の接続関係の一例を説明するための図である。【０１６４】
試験制御部５００は、半導体集積回路１００の内部において、コア９９Ｐ１０〜９９Ｐ３３の試験負荷に応じて、コア９９Ｐ１０〜９９Ｐ３３を適切にグルーピングすることが可能である。例えば、図３２では、コア９９Ｐ０１、９９Ｐ０２、および９９Ｐ０３を１グループ、コア９９Ｐ１０、９９Ｐ２０、および９９Ｐ３０を１グループ、残りのコアを１グループとしている。【０１６５】
これにより、コア９９毎に異なる試験負荷を隠蔽化することが可能となるため、より効率のよい試験が実現できる。【０１６６】
図３３は、図２２に示した半導体集積回路１００の動作の一例を説明するための図である。図３３において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、パイプラインテストを実行する場合の動作について説明する。【０１６７】
ステップ１（Ｓ１）：試験制御部５００は、アダプタ３０００Ｐ００に対し、コア９９Ｐ１０へ試験データを注入し、試験を実行し、試験結果を抽出してコア９９Ｐ２０に試験結果を渡し、さらに、その試験結果を用いて、順にコア９９Ｐ３０まで試験を実行して試験結果を抽出する、いわゆる、パイプラインテストを実行する旨の試験制御要求を発行する。次に、アダプタ３０００Ｐ００は、試験制御部５００から発行された試験制御要求を試験パケットに変換し、変換した試験パケットをルータノード２０００Ｐ００および２０００Ｐ１０を介して、アダプタ３０００Ｐ１０に送信する。次に、アダプタ３０００Ｐ１０は、コア９９Ｐ１０への試験データの注入と試験の実行を行う。【０１６８】
ステップ２（Ｓ２）：アダプタ３０００Ｐ１０は、コア９９Ｐ１０から試験結果を抽出し、抽出した試験結果を、ルータノード３０００Ｐ１０および３０００Ｐ２０を介して、アダプタ３０００Ｐ２０へ送信する。この際、コア９９Ｐ１０から抽出した試験結果には、試験データが含まれている。次に、アダプタ３０００Ｐ２０は、その試験結果を用いて、コア９９Ｐ２０へ試験データの注入と試験の実行を行う。【０１６９】
ステップ３（Ｓ３）：アダプタ３０００Ｐ２０は、コア９９Ｐ２０から試験結果を抽出し、抽出した試験結果を、ルータノード３０００Ｐ２０および３０００Ｐ３０を介して、アダプタ３０００Ｐ３０へ送信する。アダプタ３０００Ｐ３０は、その試験結果を用いて、コア９９Ｐ３０への試験データの注入と試験の実行を行う。【０１７０】
ステップ４（Ｓ４）：アダプタ３０００Ｐ３０は、コア９９Ｐ３０から試験結果を抽出し、抽出した試験結果を、ルータノード３０００Ｐ３０、３０００Ｐ３１、３０００Ｐ２１、３０００Ｐ１１、３０００Ｐ０１、および３０００Ｐ００を介して、アダプタ３０００Ｐ００へ送信する。アダプタ３０００Ｐ００は、その試験結果を試験制御部５００へと送信する。【０１７１】
無論、上記のようにパイプライン的に試験を行うコア９９は、全てのコア９９であってもよく、また部分的なコア９９でもよく、どのような順序で試験結果をコア９９間で渡していってもよい。すなわち、相互結合網１０００の柔軟性を生かした試験を行うことができる。【０１７２】
このように、本実施形態では、試験結果を順序付けして転送することにより、試験制御部５００を介さずに、相互結合網１０００の柔軟性を生かした試験を行うこともできる。【０１７３】
図３４は、図１７に示したアダプタ３０００の動作の別の一例を説明するための図である。図３４において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、コア試験部３３００が、自身に接続されたコア９９の試験結果と外部からの試験結果とを比較する機能を備える場合の動作について説明する。【０１７４】
ステップ１（Ｓ１）：コア試験部３３００は、自身に接続されたコア９９から試験結果を抽出する。【０１７５】
ステップ２（Ｓ２）：パケット受信部３２００は、外部の別のコア試験部３３００から受信した試験パケットをコア試験部３３００へと渡す。【０１７６】
ステップ３（Ｓ３）：コア試験部３３００は、パケット受信部３２００から渡された試験パケットを解析する。解析の結果、その試験パケットが、自身に接続されたコア９９からの試験結果と別のコア試験部３３００からの試験結果とを比較する旨の試験制御要求であると判断すると、コア試験部３３００は、その試験パケットに含まれる試験結果を、ステップ１で抽出した試験結果と比較する。【０１７７】
ステップ４（Ｓ４）：コア試験部３３００は、ステップ３の比較結果を、宛先を試験制御部５００とした試験パケットに変換し、変換した試験パケットをパケット送信部３１００に渡す。【０１７８】
ステップ５（Ｓ５）：パケット送信部３１００は、コア試験部３３００から渡された試験パケットをルータノード２０００へ送信する。【０１７９】
図３５は、図１７のアダプタ３０００の動作の別の一例を説明するための図である。図３５において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、コア試験部３３００が、外部からの２つの試験結果を比較する機能を備える場合の動作について説明する。【０１８０】
ステップ１（Ｓ１）：パケット受信部３２００は、外部の別のコア試験部３３００から試験パケットを受信する。【０１８１】
ステップ２（Ｓ２）：パケット受信部３２００は、受信した試験パケットをコア試験部３３００へと渡す。コア試験部３３００は、パケット受信部３２００から渡された試験パケットを解析する。解析の結果、その試験パケットが、別のコア試験部３３００からの２つの試験結果を比較する旨の試験制御要求であると判断すると、コア試験部３３００は、別の試験パケットを待つ。【０１８２】
ステップ３（Ｓ３）：パケット受信部３２００は、外部のさらに別のコア試験部３３００から試験パケットを受信する。【０１８３】
ステップ４（Ｓ４）：パケット受信部３２００は、受信した試験パケットをコア試験部３３００へと渡す。コア試験部３３００は、パケット受信部３２００から渡された試験パケットを解析する。解析の結果、その試験パケットが、別のコア試験部３３００からの２つの試験結果を比較する旨の試験制御要求であると判断すると、コア試験部３３００は、その試験パケットに含まれる試験結果を、ステップ２でパケット受信部３２００から渡された試験パケットに含まれる試験結果と比較する。【０１８４】
ステップ５（Ｓ５）：コア試験部３３００は、ステップ４の比較結果を、宛先を試験制御部５００とした試験パケットに変換し、変換した試験パケットをパケット送信部３１００に渡す。【０１８５】
ステップ６（Ｓ６）：パケット送信部３１００は、コア試験部３３００から渡された試験パケットをルータノードへ送信する。【０１８６】
なお、試験結果を比較する旨の試験制御要求の試験パケットにおいては、ヘッダに比較対象用の試験パケットを明確化するフィールドを設けてもよい。すなわち、どの試験パケット同士を比較するかを指定するようにしてもよい。【０１８７】
図３６は、図２２に示した半導体集積回路１００の動作の一例を説明するための図である。図３６において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、図３５に示した比較機能を持つコア試験部３３００を含むアダプタ３０００Ｐ２１が、試験結果の比較を行う場合の動作について説明する。【０１８８】
ステップ１（Ｓ１）：試験制御部５００は、アダプタ３０００Ｐ００に対し、コア９９Ｐ２０へ試験データを注入し、試験を実行し、試験結果を抽出してアダプタ３０００Ｐ２１に転送し、アダプタ３０００Ｐ２１で比較する旨の試験制御要求を発行する。次に、アダプタ３０００Ｐ００は、試験制御部５００から発行された試験制御要求を試験パケットに変換し、変換した試験パケットを、ルータノード２０００Ｐ００、２０００Ｐ１０、および２０００Ｐ２０を介して、アダプタ３０００Ｐ２０に送信する。【０１８９】
ステップ２（Ｓ２）：試験制御部５００は、アダプタ３０００Ｐ００に対し、コア９９Ｐ２２へ試験データを注入し、試験を実行し、試験結果を抽出してアダプタ３０００Ｐ２１に転送し、アダプタ３０００Ｐ２１で比較する旨の試験制御要求を発行する。次に、アダプタ３０００Ｐ００は、試験制御部５００から発行された試験制御要求を試験パケットに変換し、変換した試験パケットを、ルータノード２０００Ｐ００、２０００Ｐ０１、２０００Ｐ０２、２０００Ｐ１２、および２０００Ｐ２２を介して、アダプタ３０００Ｐ２２に送信する。【０１９０】
ステップ３（Ｓ３）：アダプタ３０００Ｐ２０は、コア９９Ｐ２０への試験データの注入と試験の実行を行う。【０１９１】
ステップ４（Ｓ４）：アダプタ３０００Ｐ２２は、コア９９Ｐ２２への試験データの注入と試験の実行を行う。【０１９２】
ステップ５（Ｓ５）：アダプタ３０００Ｐ２０は、コア９９Ｐ２０から抽出した試験結果を試験パケットに変換し、変換した試験パケットを、ルータノード２０００Ｐ２０および２０００Ｐ２１を介して、アダプタ３０００Ｐ２１へと送信する。【０１９３】
ステップ６（Ｓ６）：アダプタ３０００Ｐ２２は、コア９９Ｐ２２から抽出した試験結果を試験パケットに変換し、変換した試験パケットを、ルータノード２０００Ｐ２２および２０００Ｐ２１を介して、アダプタ３０００Ｐ２１へと送信する。【０１９４】
ステップ７（Ｓ７）：アダプタ３０００Ｐ２１は、コア９９Ｐ２０の試験結果とコア９９Ｐ２２の試験結果を比較する。そして、アダプタ３０００Ｐ２１は、その比較結果を試験パケットに変換し、変換した試験パケットを、ルータノード２０００Ｐ２１、２０００Ｐ１１、２０００Ｐ０１、および２０００Ｐ００を介して、アダプタ３０００Ｐ００に送信する。そして、試験制御部５００がその比較結果を引き取る。【０１９５】
無論、上記のようなアダプタ３００による試験結果の比較においては、全てのコア９９からの試験結果を比較してもよいし、一部のコア９９からの試験結果を比較してもよい。また、試験作業時に、コア９９間を仮想的にどのように接続して、コア９９同士の試験結果を比較してもよい。【０１９６】
このように、本実施形態では、試験制御部５００に試験結果の比較機能を備えさせるだけでなく、アダプタ３０００内のコア試験部３３００にも比較機能を備えさせている。これにより、試験制御部５００を介さずに、相互結合網１０００の柔軟性を生かして、試験結果の比較を行うこともできるので、さらなる試験時間の短縮が可能となる。【０１９７】
また、本実施形態では、相互結合網１０００内のコア群に対して、自由なグルーピングを行うことができるため、試験対象以外のコア群を、任意の数・配置・実行順序で動作させることができる。すなわち、試験対象以外のコア群の動作形態によって、試験対象のコアに生じる、信号ノイズ、クロストークノイズ、電源ノイズ、熱等のノイズ量を擬似的に変化させることができる。そのため、従来の論理値に応じた試験だけではなく、そのようなノイズを発生する動作環境に応じたマージン試験を行うこともできる。【０１９８】
さらに、本実施形態では、試験制御部５００とコア試験部３３００との協調により、相互結合網１０００内のコア群に対して、自由なグルーピングを行うことができるため、半導体集積回路１００の外部の試験装置やＩＣＥの試験並列度に、半導体集積回路１００の内部の試験信号線の並列度を合わせることができる。すなわち、試験装置やＩＣＥで並列試験が可能な試験信号線の構成を仮想的に実現できるので、試験装置やＩＣＥの並列試験の実行数の仕様に応じた最適な試験信号線の構成が実現できる。もし、試験制御部５００と試験装置やＩＣＥとのインタフェースが、仮想的な試験信号線の接続に対応していない場合には、半導体集積回路１００の外部にＢＯＳＴ（Built Off Self Test）と呼ばれるチップを備えることで対応可能である。または、並列試験の最大実行数は制限されるものの、インタフェース部分を複数備えることで対処してもよい。【０１９９】
なお、本実施形態では、コア９９間の通信用に相互結合網１０００を既に備える半導体集積回路１００を例に挙げて説明したが、試験パケットの通信用に独自の相互結合網を設けてもよい。【０２００】
また、本実施形態では、複数のコア９９が接続される相互結合網１０００を半導体集積回路１００の内部に設けた場合を挙げて説明したが、本発明は、これに限定されず、相互結合網１０００を半導体集積回路１００の外部に設ける場合も適用可能である。【０２０１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解し得る様々な変更をすることができる。【０２０２】
この出願は、２００７年４月６日に出願された日本出願特願２００７−１００７３０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2008126471.tif 000003
【図２】
2008126471.tif 000004
【図３】
2008126471.tif 000005
【図４】
2008126471.tif 000006
【図５】
2008126471.tif 000007
【図６】
2008126471.tif 000008
【図７】
2008126471.tif 000009
【図８】
2008126471.tif 000010
【図９】
2008126471.tif 000011
【図１０】
2008126471.tif 000012
【図１１】
2008126471.tif 000013
【図１２】
2008126471.tif 000014
【図１３】
2008126471.tif 000015
【図１４】
2008126471.tif 000016
【図１５】
2008126471.tif 000017
【図１６】
2008126471.tif 000018
【図１７】
2008126471.tif 000019
【図１８】
2008126471.tif 000020
【図１９】
2008126471.tif 000021
【図２０】
2008126471.tif 000022
【図２１】
2008126471.tif 000023
【図２２】
2008126471.tif 000024
【図２３】
2008126471.tif 000025
【図２４】
2008126471.tif 000026
【図２５】
2008126471.tif 000027
【図２６】
2008126471.tif 000028
【図２７】
2008126471.tif 000029
【図２８】
2008126471.tif 000030
【図２９】
2008126471.tif 000031
【図３０】
2008126471.tif 000032
【図３１】
2008126471.tif 000033
【図３２】
2008126471.tif 000034
【図３３】
2008126471.tif 000035
【図３４】
2008126471.tif 000036
【図３５】
2008126471.tif 000037
【図３６】
2008126471.tif 000038
【国際調査報告】
2008126471.tif 000039
2008126471.tif 000040
2008126471.tif 000041
2008126471.tif 000042