(57)【要約】【課題】アプリケーション実行効率をよりよくすることができる半導体集積回路及びその制御方法を提供すること【解決手段】本発明にかかる半導体集積回路は、スキャンチェーンを有するプロセッサと、プロセッサにアプリケーションを実行させるプロセッサ制御部と、プロセッサのスキャンテストを制御するスキャンテスト制御部と、を有する。そして、スキャンテスト制御部がスキャンテストを実行している際に、プロセッサ制御部からのスキャンテスト中断要求があった場合、スキャンテストを中断し、アプリケーションの実行後に、スキャンテストを再開させるものである。【選択図】図１
2012194111.tif 000002
【特許請求の範囲】
【請求項１】
スキャンチェーンを有するプロセッサと、
前記プロセッサにアプリケーションを実行させるプロセッサ制御部と、
前記プロセッサのスキャンテストを制御するスキャンテスト制御部と、を有し、
前記スキャンテスト制御部は、前記プロセッサのスキャンテストを実行している際に、前記プロセッサ制御部からのスキャンテスト中断要求があった場合、当該プロセッサのスキャンテストを中断し、アプリケーションの実行後に、スキャンテストを再開させる半導体集積回路。
【請求項２】
前記スキャンテスト制御部は、
スキャンチェーンに入力される入力値及び当該入力値に応じた出力の期待値の組み合わせをパターンとし、当該パターン毎にパターン番号を付与した、複数のパターンからなるテストデータを記憶したテストデータ記憶部と、
前記スキャンチェーンに、前記テストデータ記憶部から読み出した前記入力値を入力し、当該入力値に応じて前記スキャンチェーンから出力された応答値を、前記記憶部から読み出した前記期待値と比較することによりスキャンテストを実行するスキャンテスト実行部と、
前記スキャンテスト実行部における、スキャンテストの開始、中断、及び再開を制御するスキャンテスト実行制御部と、
スキャンテストが中断された際の前記パターン番号である中断パターン番号を記録するパターン番号記憶部と、
を有し、
前記スキャンテスト実行部は、スキャンテストを再開する際に、前記パターン番号記憶部が記憶した前記中断パターン番号に基づき、前記テストデータ記憶部から、テストデータを読み出してスキャンテストを再開する請求項１に記載の半導体集積回路。
【請求項３】
前記半導体集積回路は、複数の前記プロセッサを有するものであって、
前記スキャンテスト制御部は、前記プロセッサがスキャンテスト実行中であるか否かの情報及びスキャンテストの結果が正常であったか否かを示す情報のいずれか１以上の情報を有する管理情報を保持する管理情報保持部を更に有し、
前記プロセッサ制御部は、
複数の前記プロセッサが前記アプリケーションを実行する際に、当該アプリケーションの実行を制御するアプリケーション制御部と、
前記管理情報保持部が有する管理情報に基づき、複数の前記プロセッサがスキャンテスト実行中であるか否かを判定する動作判定部と、を有し、
スキャンテスト実行中のプロセッサがある場合、前記スキャンテスト実行制御部は、前記動作判定部の判定結果に基づき、スキャンテストの中断を決定する請求項２記載の半導体集積回路。
【請求項４】
前記アプリケーション制御部は、アプリケーションの実行に必要なプロセッサの数を算出し、
前記動作判定部は、前記アプリケーション制御部が算出したプロセッサ数及び前記管理情報に基づき、スキャンテスト実行中のプロセッサのうち、スキャンテストを中断させるプロセッサの数を判定し、
前記スキャンテスト実行制御部は、前記管理情報及び前記動作判定部からのプロセッサ数に基づき、所定のプロセッサのスキャンテストを中断する請求項３記載の半導体集積回路。
【請求項５】
スキャンテストが終了した前記パターン数をカウントする診断進捗情報格納部を更に有し、
診断進捗情報格納部は、管理情報として、更に、前記終了パターン数を保持し、
前記スキャンテスト実行制御部は、前記終了パターン数に基づき、前記プロセッサにスキャンテストを中断させる請求項４記載の半導体集積回路。
【請求項６】
前記スキャンテスト実行制御部は、複数の前記プロセッサのうち、前記終了パターン数のより多い前記プロセッサから順に、スキャンテストを中断させる請求項５記載の半導体集積回路。
【請求項７】
スキャンチェーンを有するプロセッサがスキャンテストを実行している際に、アプリケーション実行のためにスキャンテスト中断要求があった場合、スキャンテストを中断させ、アプリケーション実行後にスキャンテストを再開させる半導体集積回路の制御方法。
【請求項８】
スキャンチェーンに入力される入力値及び当該入力値に応じた出力の期待値の組み合わせをパターンとし、当該パターン毎にパターン番号を付与した、複数のパターンからなるテストデータをテストデータ記憶部に記憶させ、
前記スキャンチェーンに前記テストデータ記憶部から読み出したテストデータを入力し、当該入力値に応じて実際にスキャンチェーンから出力された応答値を、出力の期待値と比較することによりスキャンテストを実行し、
スキャンテストが中断された際の前記パターン番号である中断パターン番号をパターン番号記憶部に記録し、
スキャンテストを再開する際には、前記パターン番号記憶部が記憶した前記中断パターン番号に基づき前記テストデータ記憶部から前記テストデータを読み出してスキャンテストを再開させる請求項７の半導体集積回路の制御方法。
【請求項９】
前記プロセッサがアプリケーションを実行しようとする際、
複数の前記プロセッサがスキャンテスト実行中であるか否かの情報及びスキャンテストの結果が正常であったか否かを示す情報の少なくともいずれか一方を有する管理情報を保持し、
前記管理情報に基づき、複数の前記プロセッサがスキャンテスト実行中であるか否か判定し、
前記判定結果に基づき、前記スキャンテストを中断する請求項８記載の半導体集積回路の制御方法。
【請求項１０】
アプリケーションの実行に必要なプロセッサの数を算出し、
前記プロセッサを判定する際、必要なプロセッサ数及び前記管理情報に基づき、スキャンテストを中断してアプリケーションを実行させるプロセッサと、スキャンテストを継続させるプロセッサとを判定し、
スキャンテストを中断すると判定したプロセッサに対してスキャンテストを中断させる請求項９記載の半導体集積回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路及びその制御方法に関し、特にスキャンテストを行う半導体集積回路及びその制御方法に関する。
【背景技術】
【０００２】
近年、サーバや自動車など高速処理及び高信頼性が要求される分野の製品に対して、マルチプロセッサの利用が進んでいる。サーバにおいては製品を２４時間稼動しても信頼性が損なわれないことが要求され、自動車においてはヒューマンインターフェースの応答速度に対する製品の信頼性が重要である。そこで、使用されているデバイスを含めたシステムの状態を調べるための自己診断機能を有するものが増えてきている。その流れの中で、自己診断中に他のアプリケーション実行要求が発生した場合の応答速度を向上させる必要性が高まってきた。
【０００３】
例えば、引用文献１には、マルチプロセッサおいていずれかのプロセッサに故障が発生した場合、故障プロセッサをシステムから切り離してシステムの運用は継続しつつ故障プロセッサの自己診断を実行する技術が記載されている。
【０００４】
引用文献１に記載の技術では、複数のプロセッサが、それぞれのプロセッサに対応したシステムコントローラを介して、マルチプロセッサバスおよびローカルバスに接続されている。ローカルバスには、プロセッサの故障が発生すると、当該故障プロセッサを診断モードで再起動する診断モードリセット回路が接続されている。
【０００５】
システムコントローラは、プロセッサの故障を検出すると、プロセッサがマルチプロセッサバスに対してアクセスすることを禁止する。診断モードリセット回路は、故障プロセッサの番号を表示し、スイッチ入力に応じて、システムコントローラを介してリセット信号をプロセッサに出力する。故障プロセッサは自己診断プログラムを実行し、結果を外部に出力する。
【０００６】
ところで、自己診断機能を有するプロセッサとして、引用文献２にはマルチプロセッサ方式を採用したＰＣサーバの技術が記載されている。引用文献２に記載の技術では、各プロセッサボード及びメモリ等のサブシステム毎にバウンダリスキャンメカニズムを採用したテストバスを設ける。そして、サービスプロセッサに設けたテストバスコントローラから定期的に故障診断を行い、故障の有無の判断をする。
【０００７】
図１５は、引用文献２に記載のマルチプロセッサシステムを示すシステム構成図である。図１５では、ＣＰＵ（Central Processing Unit）ボード（＃１）２０１、ＣＰＵボード（＃２）２０２及びＣＰＵボード（＃ｎ）２０３は、それぞれコネクタ（＃１）２０４、コネクタ（＃２）２０５及びコネクタ（＃ｎ）２０６を通じてシステムバス２０７に接続され、ｎ個のプロセッサを有するマルチプロセッサシステムを構成している。
【０００８】
各プロセッサボード、すなわちＣＰＵボード（＃１）２０１〜ＣＰＵボード（＃ｎ）２０３には、上記コネクタ（＃１）２０４〜コネクタ（＃ｎ）２０６を通じてプロセッサボードの故障診断をハードウェアで行うためのテスト用の信号ＴＤＩ、ＴＣＫ、ＴＭＳ、ＴＤＯが接続されている。
【０００９】
システムバス２０７には、メモリボード２０９と、Ｉ／Ｏバスブリッジ２１０が接続されている。さらに、Ｉ／Ｏバスブリッジ２１０を介して、Ｉ／Ｏバス２０８にはＩ／Ｏボード２１２とサービスプロセッサ２１３とが接続されている。
【００１０】
Ｉ／Ｏボード２１２は、シリアル／パラレルデータ通信ポート及びＦＤ（フロッピィディスク装置）／ＨＤＤ（ハードディスク装置）等の補助記憶装置とのインタフェースや、ＢＩＯＳ（基本入出力を行うためのプログラム）やファームウエアなど、通常のパーソナルコンピュータあるいはワークステーションとして動作するために不可欠なＩ／Ｏサブシステムを備えるものである。
【００１１】
上記Ｉ／Ｏボード２１２及びＩ／Ｏサブシステムの構成については、一般に知られているパーソナルコンピュータまたはワークステーションとしての機能を保持していればよく、ここではその詳細な説明は省略する。一般的な業界標準仕様のパーソナルコンピュータが備えるＩ／Ｏサブシステムについては、例えば非特許文献１に記載されている。
【００１２】
サービスプロセッサ２１３は、各ＣＰＵボード（＃１）２０１〜（＃ｎ）２０３、メモリボード２０９及びＩ／Ｏボード２１２に、上記のテスト用の信号ＴＤＩ、ＴＣＫ、ＴＭＳ、ＴＤＯを接続し、これらの信号を制御して各ボード及びサブシステム毎に故障診断を行う機能を備えている。上記のテスト用の信号ＴＤＩ、ＴＣＫ、ＴＭＳ、ＴＤＯは、故障診断のためのテストバスを構成する。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平１３−１１３１９号公報
【特許文献２】特開平１０−２４７１８５号公報
【非特許文献】
【００１４】
【非特許文献１】「Ｔｈｅ  ８０ｘ８６  ＩＢＭ  ＰＣ  ＆  ＣＯＭＰＡＴＩＢＬＥ  ＣＯＭＰＵＴＥＲＳ"  ＶＯＬＵＭＥ  ＩＩ：Ｄｅｓｉｇｎ  ａｎｄ  Ｉｎｔｅｒｆａｃｉｎｇ  ｏｆ  ｔｈｅ  ＩＢＭ  ＰＣ、ＰＳ  ａｎｄ  Ｃｏｍｐａｔｉｂｌｅｓ」Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ社発行  １９９５年  Ｃｈａｐｔｅｒ４：Ｉ／Ｏ  Ｄｅｓｉｇｎａｎｄ  ｔｈｅ  ８２５５  Ｃｈｉｐ（８９ページから１２１ページまで）
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、引用文献２に記載された技術では、プロセッサの定期診断中にアプリケーション実行要求が発生した場合、故障診断プログラムを途中で中断できない。従って、故障診断終了までアプリケーションの実行が待たされて、アプリケーションの実行効率が低下するという問題がある。
【課題を解決するための手段】
【００１６】
本発明にかかる半導体集積回路は、スキャンチェーンを有するプロセッサと、プロセッサにアプリケーションを実行させるプロセッサ制御部と、プロセッサのスキャンテストを制御するスキャンテスト制御部と、を有する。そして、スキャンテスト制御部は、前記プロセッサのスキャンテストを実行している際に、プロセッサ制御部からのスキャンテスト中断要求があった場合、当該プロセッサのスキャンテストを中断し、アプリケーションの実行後に、スキャンテストを再開させるものである。
【００１７】
本発明にかかる半導体集積回路の制御方法は、スキャンチェーンを有するプロセッサがスキャンテストを実行している際に、アプリケーション実行のためにスキャンテスト中断要求があった場合、スキャンテストを中断させ、アプリケーション実行後にスキャンテストを再開させるものである。
【発明の効果】
【００１８】
本発明により、アプリケーションの実行効率の向上を図った半導体集積回路及びその制御方法を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態１にかかるマルチプロセッサシステムの実施形態を示すシステムを示す図である。
【図２】実施の形態１にかかる動作判定部２２で保持する情報を示す表である。
【図３】実施の形態１にかかる管理情報保持部３２が管理する情報を示す表である。
【図４】実施の形態１にかかるパターン番号記憶部３３に格納する情報を示す表である。
【図５】実施の形態１にかかる各構成要素のブロック間の信号を示す図である。
【図６】実施の形態１にかかるスキャンテスト開始、中断及び再開の動作を示すタイミングチャートである。
【図７】実施の形態１にかかるスキャンテスト制御部３の自己診断開始から終了までの動作を示す制御フローチャートである。
【図８】実施の形態１にかかる診断を中断する際の制御フローチャートである。
【図９】実施の形態１にかかるプロセッサ制御部２のアプリケーション開始する際の制御フローチャートである。
【図１０】実施の形態２にかかるマルチプロセッサ１ｂを示す図である。
【図１１】実施の形態２にかかるフローチャートである。
【図１２】実施の形態３にかかるマルチプロセッサ１ｃの構成を示す図である。
【図１３】実施の形態３にかかる診断時の実行済みパターン数情報を示す図である。
【図１４】実施の形態３にかかるマルチプロセッサ１ｃの動作を示すフローチャートである。
【図１５】従来のマルチプロセッサシステムを示すシステム構成図である。
【発明を実施するための形態】
【００２０】
実施の形態１
本実施の形態にかかる半導体集積回路としてのマルチプロセッサは、スキャンチェーンを有するプロセッサと、プロセッサにアプリケーションを実行させるプロセッサ制御部と、プロセッサのスキャンテストを制御するスキャンテスト制御部と、を有する。マルチプロセッサは、スキャンテスト制御部がスキャンテストを実行している際に、プロセッサ制御部からのスキャンテスト中断要求があった場合、スキャンテストを中断し、アプリケーションの終了後に、スキャンテストを再開する。
【００２１】
これにより、本実施の形態にかかる半導体集積回路は、スキャンテストの実行状態に関わらず、アプリケーションを実行できる。従って、アプリケーションの実行効率をより向上させることができる。
【００２２】
以下、本実施の形態にかかるマルチプロセッサについて、詳細に説明する。図１は、本実施の形態にかかるマルチプロセッサ１ａを示す図である。本実施の形態におけるマルチプロセッサ１ａは、自己診断機能を具備する。
【００２３】
図１に示すように、マルチプロセッサ１ａは、プロセッサ制御部２と、スキャンテスト制御部３と、スキャンテスト実行部４と、メモリ５と、Ｉ／Ｏ部６と、プロセッサ１１ａ〜１１ｎ（以下、特に区別する必要がないときは、プロセッサ１１という）とを有する。プロセッサ制御部２と、メモリ５と、Ｉ／Ｏ部６と、複数のプロセッサ１１とは、システムバス７を介して接続されている。そして、プロセッサ制御部２及びスキャンテスト制御部３、スキャンテスト制御部３及びスキャンテスト実行部４は、相互に接続されている。本実施の形態においては、スキャンテスト実行部４は、スキャンテスト制御部３の外部に設けられているが、スキャンテスト制御部３がスキャンテスト実行部４を有するようにしてもよい。
【００２４】
各プロセッサ１１は、それぞれ、スキャンテストのためのテストデータを入出力するＳＣＡＮ  Ｉ／Ｆ部１１１を有している。また、各プロセッサ１１は、それぞれＢＵＳ  Ｉ／Ｆ部１１２を介してシステムバス７に接続され、例えばｎ個のプロセッサを有するマルチプロセッサ１ａを構成している。各プロセッサ１１は、所望のタイミングで、順次、スキャンテスト実行部４によりスキャンテストが実施される。
【００２５】
プロセッサ制御部２は、アプリケーション制御部２１と、動作判定部２２と、中断要求部２３とを有する。アプリケーション制御部２１は、システムバス７を介して各プロセッサ１１に接続され、各プロセッサ１１がアプリケーションを実行する際に、当該アプリケーションの実行を制御する。
【００２６】
動作判定部２２は、後述する管理情報保持部３２が有する、プロセッサ１１がスキャンテスト実行中であるか否か、又はスキャンテストの結果が正常であったか否かを示す管理情報に基づき、プロセッサがスキャンテストを実行中の場合、当該スキャンテストを継続するか、それとも中断するかを判定し、後述するスキャンテスト実行制御部３１に出力する。
【００２７】
動作判定部２２は、例えばアプリケーション制御部２１がプロセッサ１１にアプリケーションを実行させる際に、複数のプロセッサ１１のうちいずれかのプロセッサ１１がスキャンテスト実行中であった場合、複数のプロセッサ１１全てのスキャンテストを中断するようにしてもよい。また後述するように、例えばアプリケーション制御部２１のアプリケーション実行に合わせて、複数のプロセッサ１１のうち、スキャンテストを中断するプロセッサの数を判定するようにしてもよい。中断要求部２３は、動作判定部２２の判定に基づき、スキャンテスト実行制御部３１に、スキャンテストの中断を要求する。なお、本実施の形態においては、中断要求部２３を設けているが、中断要求部を設けず、動作判定部２２から直接中断要求をスキャンテスト実行制御部３１に出力するようにしてもよい。
【００２８】
スキャンテスト制御部３は、スキャンテスト実行制御部３１と、管理情報保持部３２と、パターン番号記憶部３３とを有する。スキャンテスト実行制御部３１は、中断要求部２３の要求に基づき、スキャンテスト実行部４における、スキャンテストの開始、中断、及び再開を制御する。
【００２９】
管理情報保持部３２は、プロセッサ１１がスキャンテスト実行中であるか否か、又はスキャンテストの結果が正常であったか否かを示す管理情報を保持する。図２は、管理情報保持部３２で保持する情報を示す表である。図２には、プロセッサ番号（PE：processor element）と、このプロセッサ番号のプロセッサがアプリケーション実行中か否かを示すアプリ実行情報とが、プロセッサの数だけ記載されている。プロセッサ番号とは、各プロセッサを識別するための識別番号であり、例えば、プロセッサ１１ａはプロセッサ番号１、プロセッサ１１ｂはプロセッサ番号２のように識別番号を付されている。図２ではプロセッサ番号３のプロセッサがアプリケーションを実行していることを示している。
【００３０】
図３は、管理情報保持部３２が管理する情報を示す表である。プロセッサ番号と、診断中に１となる診断実施状態情報と、診断時に異常がある場合に１となる異常状態の有無を示す異常状態情報とがそれぞれのプロセッサの数だけ記載されている。ここでは、プロセッサ番号２のプロセッサが故障診断中であり、プロセッサ番号３のプロセッサに異常があったことを示している。
【００３１】
パターン番号記憶部３３は、スキャンテストが中断された際のパターン番号である中断パターン番号を記録する。ここで、パターン番号について説明する。スキャンテストは、スキャンチェーンへのシフトデータ入力（スキャン・イン）とキャプチャ動作とスキャンチェーンからのシフトデータ出力（スキャン・アウト）とを１つの連続動作とし、複数の連続動作をくりかえすことにより、回路の異常を検出する。本実施の形態においては、この連続動作のうち、シフトデータ入力における入力値及びシフトデータ出力における出力値の期待値の組を１つのパターンとし、これに識別番号（以下、パターン番号という。）を付す。かかるパターン番号は、スキャンテスト実施前に予め、パターン番号記憶部３３に格納される。ここで、１つのパターンを構成する入力値及び出力値に含まれる各データの数は、例えばスキャンチェーンの個数とすることができる。なお、このデータ数はスキャンチェーンの個数に限らず、所定の個数であればよい。また。各パターンにおけるデータ数が異なっていてもよい。
【００３２】
図４は、パターン番号記憶部３３に格納する情報を示す表である。図４に示すように、プロセッサ番号と、スキャンテストが中断された際のパターン番号である中断パターン番号が、それぞれのプロセッサ毎に記憶されている。すなわち、次に診断開始される際のパターン番号が、プロセッサ番号毎に記憶されている。ここでは、プロセッサ番号１のプロセッサでは、中断パターン番号が１５１２であり、プロセッサ番号２のプロセッサでは、中断パターン番号が１２３９０であり、プロセッサ番号３のプロセッサでは、中断パターン番号が１であり、プロセッサ番号４のプロセッサでは、中断パターン番号が４９５０であることを示している。
【００３３】
メモリ５は、システムバス７を介して各プロセッサ１１とアプリケーション制御部２１と接続される。Ｉ／Ｏ部６は、システムバス７を介して各プロセッサ１１とアプリケーション制御部２１とメモリ５と接続される。
【００３４】
スキャンテスト実行部４は、テストデータ記憶部４１を有する。ここで、本実施の形態では、スキャンテスト実行部４はテストデータ記憶部４１を有し、テストデータをテストデータ記憶部４１から読み出しているが、テストデータは外部から入力するようにしてもよい。スキャンテスト実行部４は、各プロセッサ１１のＳＣＡＮ  Ｉ／Ｆ部１１１、１２１及び１３１を介して相互に接続され、各プロセッサ１１に対してＭＵＸ  ＳＣＡＮを使った故障診断を実行する。スキャンテスト実行部４は、スキャンチェーンに、テストデータ記憶部４１から読み出した入力値であるドライブ値を入力し、当該入力値に応じて実際にスキャンチェーンから出力された応答値を、記憶部から読み出した出力の期待値と比較することによりスキャンテストを実行する。
【００３５】
本実施の形態においては、テストデータ記憶部４１は、上述したようにスキャンチェーンに入力される入力値及び当該入力値に応じた出力の期待値の組み合わせをパターンとし、当該パターン毎にパターン番号を付与した、複数のパターンからなるテストデータを記憶する。
【００３６】
スキャンテスト実行部４は、スキャンテストを再開する際に、パターン番号記憶部３３の記憶したパターン番号に基づき、テストデータ記憶部４１から、テストデータを読み出してスキャンテストを再開する。
【００３７】
これにより、本実施の形態にかかるマルチプロセッサ１ａのスキャンテスト実行部４は、ＭＵＸ  ＳＣＡＮテスト技術を使って、プロセッサの故障診断を実行している際に、スキャンテストを中断した場合、パターン番号記憶部３３にパターン番号を格納することができる。そして、スキャンを再開する際は、パターン番号記憶部３３の有するパターン番号に基づいてテストデータ記憶部４１からテストデータを読み出すため、スキャンテストを中断したパターンから再開することができる。
【００３８】
さらに、本実施の形態では、スキャンテストの実施中でも、アプリケーション実行の要求がある場合にはスキャンを中断し、アプリケーションを実行することができる。これにより、アプリケーションを停止させることなく、効率よく実行できる。
【００３９】
また、従来は、スキャンテストを実行していないプロセッサのみ、アプリケーションに使用することができたが、本実施の形態においては、スキャンテスト中か否かに関わらず、アプリケーションを実行することができる。従って、アプリケーションを実行するプロセッサの数や、アプリケーションを実行するプロセッサを自由に決定することができ、アプリケーションの実行の自由度が増すという効果を奏する。
【００４０】
次に、本実施の形態かかるマルチプロセッサ１ａの動作について説明する。図５は、各構成要素のブロック間の信号を示す図である。まず、スキャンテストを開始の際の動作を説明する。スキャンテスト実行制御部３１は、ＰＥ診断開始要求信号Ｃ１を動作判定部２２に入力する。ＰＥ診断開始要求信号Ｃ１は、スキャンテスト実行制御部３１がスキャンテスト開始を動作判定部２２に要求する信号である。次に動作判定部２２は、ＰＥ診断許可信号Ｃ２をスキャンテスト実行制御部３１に入力する。ＰＥ診断許可信号Ｃ２は、動作判定部２２がスキャンテスト（プロセッサ診断）をスキャンテスト実行制御部３１に許可する信号である。
【００４１】
スキャンテスト実行制御部３１は、ＳＣＡＮ開始命令信号Ｃ３を、スキャンテスト実行部４と管理情報保持部３２とに入力する。ＳＣＡＮ開始命令信号Ｃ３は、ＳＣＡＮ実行開始を開始する信号である。これにより、スキャンテストが開始され、また、管理情報保持部３２の保持する管理情報が更新される。
【００４２】
次に、スキャンテストの実行中に、アプリケーション実行を開始する場合について説明する。中断要求部２３は、診断中断命令信号Ｃ４をスキャンテスト実行制御部３１に入力する。診断中断命令信号Ｃ４は、中断要求部２３がスキャンテストの中断をスキャンテスト実行制御部３１に要求する信号である。スキャンテスト実行制御部３１は、ＳＣＡＮ停止命令信号Ｃ５をスキャンテスト実行部４と管理情報保持部３２とに入力する。ＳＣＡＮ停止命令信号Ｃ５は、スキャンテスト実行制御部３１が、スキャンテスト実行部４にスキャンテスト実行を停止させる信号である。これにより、各プロセッサのスキャンテストが停止され、管理情報保持部３２の保持する管理情報が更新される。
【００４３】
管理情報が更新されると、管理情報保持部３２は、ＰＥ診断状態情報信号Ｃ６を、動作判定部２２に入力する。ＰＥ診断状態情報信号Ｃ６は、各プロセッサ１１が診断中か否かを示す信号である。
【００４４】
スキャンテストが終了すると、スキャンテスト実行部４は、ＳＣＡＮ実行結果信号Ｃ１１を管理情報保持部３２とスキャンテスト実行制御部３１とに入力する。ＳＣＡＮ実行結果信号Ｃ１１は、各プロセッサ１１のＳＣＡＮ実行結果が正常であるか又は異常であるか（ＰＡＳＳ／ＦＡＩＬ）を示す信号である。
【００４５】
管理情報保持部３２は、スキャンテスト実行部４からＳＣＡＮ実行結果信号Ｃ１１を受け取ると、ＰＥ正常異常情報信号Ｃ１２を動作判定部２２に入力する。ＳＣＡＮ実行結果信号Ｃ１１は、各プロセッサ１１が正常か異常かの状態を示す情報を有する信号である。
【００４６】
外部からのアプリケーション開始の指示に基づき、アプリケーション制御部２１は、アプリケーション実行に必要なプロセッサ数を算出し、アプリ必要ＰＥ数情報信号Ｃ９を動作判定部２２に入力する。アプリ必要ＰＥ数情報信号Ｃ９は、アプリケーションを実行するために必要なプロセッサの数を指定する信号である。
【００４７】
動作判定部２２は、管理情報保持部３２から受け取った管理情報に基づき、アプリ使用許可ＰＥ番号情報信号Ｃ１０をアプリケーション制御部２１に入力する。アプリ使用許可ＰＥ番号情報信号Ｃ１０は、アプリケーションを実行可能なプロセッサの識別番号情報を有する信号である。中断要求部２３は、アプリケーション制御部２１の判断に基づき、診断中断命令信号Ｃ４をスキャンテスト実行制御部３１に入力する。診断中断命令信号Ｃ４は、中断要求部２３がスキャンテストの中断をスキャンテスト実行制御部３１に要求する信号である。
【００４８】
次に、スキャンテストが再開される場合について説明する。スキャンテストが中断される際、スキャンテスト実行部４は、ＳＣＡＮ実行中パターン番号信号Ｃ８をパターン番号記憶部３３に入力する。ＳＣＡＮ実行中パターン番号信号Ｃ８は、ＳＣＡＮ実行中のパターン番号を示す信号である。そして、スキャンテストが再開される際は、パターン番号記憶部３３から、ＳＣＡＮ実行開始パターン番号信号Ｃ７がスキャンテスト実行部４に入力される。ＳＣＡＮ実行開始パターン番号信号Ｃ７は、ＳＣＡＮ実行開始時のパターン番号を示す信号である。これにより、中断時のスキャンパターンに基づいて、スキャンテストを再開することができる。
【００４９】
次に、スキャンテストの開始、中断、及び再開について更に説明する。図６は、スキャンテスト開始、中断及び再開の動作を示すタイミングチャートである。まず、タイミングＴ０において、スキャンテスト実行制御部３１はＰＥ診断開始要求信号Ｃ１により動作判定部２２にプロセッサ診断開始要求を発行する。
【００５０】
次に、タイミングＴ１において、動作判定部２２は、ＰＥ診断許可信号Ｃ２によりスキャンテスト実行制御部３１に診断許可を発行する。
【００５１】
次に、タイミングＴ２において、ＳＣＡＮ開始命令信号Ｃ３によりスキャンテスト実行制御部３１からスキャンテスト実行部４と管理情報保持部３２へＳＣＡＮ実行開始命令を発行する。
【００５２】
次に、タイミングＴ３において、スキャンテスト実行制御部３１からのＳＣＡＮ開始命令信号Ｃ３により、スキャンテスト実行部４がＳＣＡＮテスト実行を開始する。同時に、ＳＣＡＮ開始命令信号Ｃ３により管理情報保持部３２の有する管理情報が更新され、管理情報保持部３２は、ＰＥ診断状態情報信号Ｃ６を診断中にする。スキャンテスト実行部４は、ＳＣＡＮ実行開始パターン番号信号Ｃ７が示すパターン番号２０８２よりＭＵＸ  ＳＣＡＮテスト実行を開始する。
【００５３】
次に、タイミングＴ４において、アプリケーション実行要求が発生し、中断要求部２３から診断中断命令信号Ｃ４が、スキャンテスト実行制御部３１に出力される。
【００５４】
次に、タイミングＴ５において、スキャンテスト実行制御部３１から、スキャンテスト実行部４と管理情報保持部３２とに、ＳＣＡＮ停止命令信号Ｃ５が出力される。これとほぼ同時に、スキャンテスト実行制御部３１から動作判定部２２へ、診断開始要求であるＰＥ診断開始要求信号Ｃ１が発行される。
【００５５】
タイミングＴ６において、ＳＣＡＮ実行を中断し、ＰＥ診断状態情報信号Ｃ６を通常動作中にする。スキャンテスト実行部４は、パターン番号信号Ｃ８としてパターン番号２０８３を、パターン番号記憶部３３へ格納する。
【００５６】
アプリケーション実行が終了したタイミングＴ７において、アプリケーションの実行が終了したプロセッサに対し、動作判定部２２からＰＥ診断許可信号Ｃ２によりスキャンテスト実行制御部３１へ診断許可が発行される。
【００５７】
次に、タイミングＴ８サイクルにおいて、ＳＣＡＮ開始命令信号Ｃ３によりスキャンテスト実行制御部３１からスキャンテスト実行部４と管理情報保持部３２へＳＣＡＮ実行開始命令を発行する。タイミングＴ９において、スキャンテスト実行を再開する。その際、管理情報保持部３２はＰＥ診断状態情報信号Ｃ６を診断中にする。スキャンテスト実行部４は、ＳＣＡＮテスト実行再開時には、パターン番号記憶部３３からのＳＣＡＮ実行開始パターン番号信号Ｃ７が示すパターン番号２０８３からＳＣＡＮテスト実行を再開する。そのため、アプリケーションを停止させることなく、かつ高故障検出率の自己診断を効率よく実行できる。
【００５８】
次に、スキャン開始から終了までの動作について説明する。図７は、スキャンテスト制御部３の自己診断開始から終了までの動作を示す制御フローチャートである。
【００５９】
まず、スキャンテスト実行制御部３１は、動作判定部２２へ診断対象のプロセッサの診断要求を、ＰＥ診断開始要求信号Ｃ１により発行する（ステップＳ１０１）。
【００６０】
次に、動作判定部２２は、図２に示すアプリ実行情報より各プロセッサがアプリケーション実行中か否かを判断（ステップＳ１０２）し、プロセッサがアプリケーション実行中で診断可能でない場合はステップＳ１０２を繰り返して診断可能になるまで待つ。プロセッサがアプリ未実行の場合は診断許可をＰＥ診断許可信号Ｃ２によりスキャンテスト実行制御部３１へ返す（ステップＳ１０３）。
【００６１】
次に、スキャンテスト実行制御部３１は、ＳＣＡＮ開始命令信号Ｃ３により管理情報保持部３２とスキャンテスト実行部４へＳＣＡＮ実行開始命令を発行する（ステップＳ１０４）。
【００６２】
次に、管理情報保持部３２は、図３に示す診断実施情報を、診断中を示す"１"に変更する（ステップＳ１０５）。
【００６３】
スキャンテスト実行部４は、パターン番号記憶部３３に格納されたパターン番号からＭＵＸ  ＳＣＡＮテスト実行をスタートして診断を開始し、プロセッサに対してＭＵＸ  ＳＣＡＮテストを実行している最中は、ＢＵＳ  Ｉ／Ｆ部のシステムバスへの出力をインアクティブに固定する（ステップＳ１０６）。
【００６４】
次に、スキャンテスト実行部４は、診断対象プロセッサのＳＣＡＮテストを実行（ステップＳ１０７）して、テスト結果の判定（ステップＳ１０８）し、テスト結果が異常あり（ＦＡＩＬ）であればステップＳ１１２に進み、テスト結果が異常なし（ＰＡＳＳ）であればステップＳ１０９に進む。
【００６５】
ステップＳ１０８においてテスト結果が異常なし（ＰＡＳＳ）であった場合、前記診断対象プロセッサのＳＣＡＮテストが最終パターンかを判断し（ステップＳ１０９）、最終パターンであればステップＳ１１０に進み、最終パターンでなければステップＳ１０７に戻り、テストを繰り返す。
【００６６】
ステップＳ１０９において、最終パターンまでＰＡＳＳすると、ＳＣＡＮ実行結果信号Ｃ１１により、スキャンテスト実行制御部３１と管理情報保持部３２へプロセッサの診断がＰＡＳＳ終了したことを伝達する（ステップＳ１１０）。管理情報保持部３２は、図３に示すプロセッサの診断実施情報を通常動作中を示す"０"へ変更し、プロセッサ故障診断を終了する（ステップＳ１１１）。
【００６７】
ステップＳ１０８においてテスト結果が異常あり（ＦＡＩＬ）であった場合、スキャンテスト実行部４は、スキャンテストを終了して、管理情報保持部３２とスキャンテスト実行制御部３１へＳＣＡＮ実行結果信号Ｃ１１によりＦＡＩＬしたことを伝達する（ステップＳ１１２）。ＦＡＩＬであった場合、管理情報保持部３２は、図３に示すプロセッサの異常状態情報を、異常を示す"１"に変更してプロセッサ故障診断を終了する（ステップＳ１１３）。
【００６８】
次に、スキャンテストを診断する場合について説明する。図８は、スキャンテストを中断する際の制御フローチャートである。
【００６９】
中断要求部２３は、診断中断命令信号Ｃ４によりスキャンテスト実行制御部３１へ診断中断命令を発行する（ステップＳ２０１）。スキャンテスト実行制御部３１は、ＳＣＡＮ停止命令信号Ｃ５によりスキャンテスト実行部４と管理情報保持部３２に診断停止の命令を発行し、ＳＣＡＮ実行を中断する（ステップＳ２０２）。
【００７０】
管理情報保持部３２は、図３に示すプロセッサ状態情報の診断実施中情報を通常動作中を示す"０"へ変更する（ステップＳ２０３）。パターン番号記憶部３３は、診断中断時のＳＣＡＮ実行中パターン番号信号Ｃ８が示すパターン番号を図４に示す診断開始パターン番号情報に格納する（ステップＳ２０４）。
【００７１】
スキャンテスト実行制御部３１は、ＰＥ診断開始要求信号Ｃ１により動作判定部２２へ診断開始要求を発行する（ステップＳ２０５）。スキャンテスト実行制御部３１は、アプリケーション実行が終了して診断対象のプロセッサが診断可能かを判断（ステップＳ２０６）し、診断対象のプロセッサのアプリケーションが終了したらステップＳ２０７に進み、診断対象のプロセッサが空いていない場合はステップＳ２０６を繰り返し実行して診断可能かを判断し、アプリケーションが終了するまで診断を中断して待つ。
【００７２】
スキャンテスト実行制御部３１は、ＰＥ診断許可信号Ｃ２によりプロセッサの診断が許可された後に、ＳＣＡＮ開始命令信号Ｃ３により管理情報保持部３２とスキャンテスト実行部４へＳＣＡＮ実行開始命令を発行し診断を再開する（ステップＳ２０７）。管理情報保持部３２は、図３に示すプロセッサ状態情報の診断実施中情報を、診断中を示す"１"へ変更する。スキャンテスト実行部４は、パターン番号記憶部３３に格納されたパターン番号よりパターン実行を開始する。
【００７３】
次に、アプリケーション実行中に、アプリケーションを実行するプロセッサが不足した場合について説明する。図９は、プロセッサ制御部２のアプリケーション開始する際の制御フローチャートである。この場合、アプリケーション制御部２１は、アプリ必要ＰＥ数情報信号Ｃ９により動作判定部２２へアプリケーション実行に必要なプロセッサ数情報を伝達する（ステップＳ５０１）。
【００７４】
動作判定部２２は、ＰＥ診断状態情報信号Ｃ６とＰＥ正常異常情報信号Ｃ１２により、正常かつ診断中ではないプロセッサを把握しアプリケーション実行に必要なプロセッサ数が足りているか判定（ステップＳ５０２）する。アプリケーション実行に必要なプロセッサ数が足りている場合はステップＳ５０５に進み、アプリケーション実行に必要なプロセッサ数が足りない場合は、ステップＳ５０３に進む。
【００７５】
動作判定部２２は、アプリケーション実行に必要なプロセッサ数が不足している場合は、診断中断命令信号Ｃ４によりスキャンテスト実行制御部３１へ診断中断命令を発行する（ステップＳ５０３）。
【００７６】
動作判定部２２は、ＰＥ診断状態情報信号Ｃ６により診断が中断されてアプリケーション実行に必要なプロセッサ数が足りる状態になったか否か判定をし（ステップＳ５０４）し、プロセッサ数が足りた時点でステップＳ５０５へ進み、実行に必要なプロセッサ数が足りない場合はステップＳ５０４を繰り返し実行する。
【００７７】
動作判定部２２は、アプリケーション実行に必要なプロセッサ数が足りている場合は、アプリ使用許可ＰＥ番号情報信号Ｃ１０によりアプリケーション制御部２１へアプリケーション実行に使用可能なプロセッサの識別番号を伝達する（ステップＳ５０５）。アプリケーション制御部２１は、アプリケーション実行を開始する（ステップＳ５０６）。
【００７８】
アプリケーション制御部２１は、アプリケーション実行が終了した後にアプリ必要ＰＥ数情報信号Ｃ９のプロセッサ必要数情報を変更して、アプリケーション実行に不要となった分のプロセッサ数をアプリ必要ＰＥ数情報信号Ｃ９から差し引く（ステップＳ５０７）。
【００７９】
動作判定部２２は、アプリ必要ＰＥ数情報信号Ｃ９によりアプリケーション実行が終了したことを判断し、ＰＥ診断開始要求信号Ｃ１により診断開始が要求されているプロセッサの診断許可を、ＰＥ診断許可信号Ｃ２によりスキャンテスト実行制御部３１へ返す（ステップＳ５０８）。
【００８０】
本実施の形態においては、アプリケーションの実行に合わせてスキャンテストの中断及び再開をすることができるため、より効率よくアプリケーションを実行することができる。
【００８１】
実施の形態２
次に、本発明の本実施の形態２にかかるマルチプロセッサについて説明する。実施の形態１と同一の構成である場合には、同一の符号を付し、その詳細な説明を省略する。図１０は、実施の形態２にかかるマルチプロセッサ１ｂを示す図である。実施の形態１と異なる点は、本実施の形態においては、中断要求部２３から、スキャンテスト制御部３に、さらに中断要求ＰＥ数情報信号Ｃ１３を入力する点である。中断要求ＰＥ数情報信号Ｃ１３は、中断要求部２３からスキャンテスト実行制御部３１へ診断中断が必要なプロセッサ数を知らせるための情報である。
【００８２】
本実施の形態においては、動作判定部２２は、スキャンテストを中断するか否かを判定するのみでなく、アプリケーション制御部２１が算出したアプリケーションに必要なプロセッサ１１の数と、管理情報とに基づき、スキャンテストを中断してアプリケーションを実行させるプロセッサの数を判定する。
【００８３】
中断要求部２３は、動作判定部２２の判定結果に基づき、スキャンテスト実行制御部３１に、スキャンテストの中断をするプロセッサの数を出力する。スキャンテスト実行制御部３１は、中断要求部２３から受け取った、スキャンテストを中断するプロセッサ数に基づいて、スキャンテストを中断させる。これにより、アプリケーションとスキャンテストとが同時に行われることになり、プロセッサをより効率よく動作させることができる。なお、本実施の形態では動作判定部２２がスキャンテストを中断するプロセッサの数を判定しているが、例えばアプリケーション制御部２１からの情報と、管理情報とに基づいて、中断要求部２３がスキャンテストを中断させるプロセッサ数を判断し、スキャンテスト実行制御部３１に出力するようにしてもよい。また、本実施の形態においては、中断要求部２３を設けているが、中断要求部を設けず、動作判定部２２から直接中断要求をスキャンテスト実行制御部３１に出力するようにしてもよい。
【００８４】
次に、本実施の形態にかかるマルチプロセッサ１ｂの動作の流れを説明する。図１１は、本実施の形態を示すフローチャートである。図１１に示すマルチプロセッサ１ｂの動作において、図８に示す実施の形態１におけるプロセッサの動作とは、中断が必要なプロセッサ１１を伝達するステップＳ３０１と、選択されたプロセッサの診断を中断するステップＳ３０２を有する点が異なる。他のステップは図８に示す実施の形態１と同じであるためその詳細な説明を省略する。中断要求部２３は、診断中断命令信号Ｃ４によりスキャンテスト実行制御部３１へ診断中断命令を発行する（ステップＳ２０１）。中断要求部２３は、中断要求時に中断要求ＰＥ数情報信号Ｃ１３によりスキャンテスト実行制御部３１へ中断が必要なプロセッサ数の情報を伝達する（ステップＳ３０１）。スキャンテスト実行制御部３１は、中断要求ＰＥ数情報信号Ｃ１３により要求された数のプロセッサの診断を中断する（ステップＳ３０２）。
【００８５】
本実施の形態においては、中断要求ＰＥ数情報信号Ｃ１３により、診断中断が必要な数のプロセッサのみ診断を中断することができるため、故障診断をより効率的に実行できる。
【００８６】
また、本実施の形態においては、一部のプロセッサにおいてスキャンテストを実行中に、残りのプロセッサにおいてアプリケーションを実行する。これにより、アプリケーション実行のためのプロセッサが不足した場合には、スキャンテストを実行しているプロセッサのスキャンテストを中断して、アプリケーションを実行させることができる。
【００８７】
実施の形態３
次に、本実施の形態３にかかるマルチプロセッサについて説明する。なお、実施の形態１および実施の形態２と同一の構成である場合には、同一の符号を付し、その詳細な説明を省略する。
【００８８】
本実施の形態にかかるマルチプロセッサ１ｃは、図５に示す実施の形態１および図１０に示す実施の形態２にかかるマルチプロセッサ１とは異なり、スキャンテストが終了したパターン数をカウントする診断進捗情報格納部８を更に有する。
【００８９】
本実施の形態にかかるマルチプロセッサ１ｃについて更に説明する。図１２は、本実施の形態を示す図である。図１２に示す本実施の形態におけるマルチプロセッサ１ｃは、上述したように診断進捗情報格納部８を更に有し、中断要求部２３からスキャンテスト制御部３に中断要求ＰＥ数情報信号Ｃ１３を入力し、診断進捗情報格納部８からスキャンテスト制御部３に実行済みパターン数情報信号Ｃ１４を入力する。中断要求ＰＥ数情報信号Ｃ１３は、スキャンテストを中断するプロセッサ数を示す信号である。パターン数情報信号Ｃ１４は、スキャンテストが終了したパターン数を示す信号である。本実施の形態においては、スキャンテスト実行制御部３１は、中断要求ＰＥ数情報信号Ｃ１３と、終了パターン数情報信号Ｃ１４とに基づき、終了パターン数のより多いプロセッサから順に、中断要求されたプロセッサの数分の、プロセッサ１１のスキャンテストを中断させる。
【００９０】
診断進捗情報格納部８は、診断中の実行済みパターン数情報信号Ｃ１４に基づき、スキャンテスト実行制御部３１へ診断中のパターンの実行済みパターン数を入力する。診断開始時には、スキャンテスト実行制御部３１は、ＳＣＡＮ開始命令信号Ｃ３により診断進捗情報格納部８へ診断開始を入力する。ＳＣＡＮ停止時には、スキャンテスト実行制御部３１は、ＳＣＡＮ停止命令信号Ｃ５により診断進捗情報格納部８へ診断停止を入力する。
【００９１】
診断進捗情報格納部８は、実行済みのパターン数を格納している。図１３は診断時の実行済みパターン数情報を示す図である。診断進捗情報格納部８は、ＳＣＡＮ実行中パターン番号信号Ｃ８の値のカウントアップにより、実行済みパターン数をカウントする。図１３は、実施の形態３を構成するＰＥ診断進捗情報格納部で保持する情報を示す表であり、プロセッサ番号と、診断時の実行済みパターン数情報が、プロセッサ毎に記載されたものである。ここでは、プロセッサ１１ｂは、終了済みのスキャンパターン数が２００であり、プロセッサ１１ｎは、終了済みスキャンパターン数が１０００であることを示している。
【００９２】
次に、本実施の形態にかかるマルチプロセッサ１ｃの動作についてさらに詳細に説明する。図１４は、マルチプロセッサ１ｃの動作を示すフローチャートである。図１１に示す実施の形態２におけるマルチプロセッサ１ｂの動作と異なる点は、本実施の形態におけるプロセッサ１ｃは、スキャンテスト実行制御部３１がスキャンテストを中断するプロセッサを選択するステップＳ４０１を有する点である。他のステップの動作は図１１に示す実施の形態２と同じであるためステップＳ４０１以外の詳細な説明は省略する。
【００９３】
中断要求部２３は、診断中断命令信号Ｃ４によりスキャンテスト実行制御部３１へ診断中断命令を発行する（ステップＳ２０１）。中断要求部２３は、中断要求時に中断要求ＰＥ数情報信号Ｃ１３によりスキャンテスト実行制御部３１へ中断が必要なプロセッサ数の情報を伝達する（ステップＳ３０１）。スキャンテスト実行制御部３１は、診断中の実行済みパターン数情報信号Ｃ１４の値が多いプロセッサから順に診断を中断するプロセッサとして選択する（ステップＳ４０１）。スキャンテスト実行制御部３１は、中断要求ＰＥ数情報信号Ｃ１３により要求された数のプロセッサの診断を中断する（ステップＳ３０２）。
【００９４】
本実施の形態においては、マルチプロセッサ１ｃは、故障診断において故障診断の実行済みパターン数が多いプロセッサと少ないプロセッサがあった場合に、故障診断の実行パターン数が少ないプロセッサを中断する場合があり、特定のプロセッサに診断の偏りが発生した場合に、故障診断の実行パターン数が多いプロセッサより診断を中断することにより、各プロセッサの故障診断を平均化することができるという効果を奏する。
【００９５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、上述したように、スキャンテストを中断させ、アプリケーション実行後にスキャンテストを再開させる処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００９６】
（付記１）
スキャンチェーンを有するプロセッサと、
前記プロセッサにアプリケーションを実行させるプロセッサ制御部と、
前記プロセッサのスキャンテストを制御するスキャンテスト制御部と、を有し、
前記スキャンテスト制御部は、前記プロセッサのスキャンテストを実行している際に、前記プロセッサ制御部からのスキャンテスト中断要求があった場合、当該プロセッサのスキャンテストを中断し、アプリケーションの実行後に、スキャンテストを再開させる半導体集積回路。
（付記２）
前記スキャンテスト制御部は、
スキャンチェーンに入力される入力値及び当該入力値に応じた出力の期待値の組み合わせをパターンとし、当該パターン毎にパターン番号を付与した、複数のパターンからなるテストデータを記憶したテストデータ記憶部と、
前記スキャンチェーンに、前記テストデータ記憶部から読み出した前記入力値を入力し、当該入力値に応じて前記スキャンチェーンから出力された応答値を、前記記憶部から読み出した前記期待値と比較することによりスキャンテストを実行するスキャンテスト実行部と、
前記スキャンテスト実行部における、スキャンテストの開始、中断、及び再開を制御するスキャンテスト実行制御部と、
スキャンテストが中断された際の前記パターン番号である中断パターン番号を記録するパターン番号記憶部と、
を有し、
前記スキャンテスト実行部は、スキャンテストを再開する際に、前記パターン番号記憶部の記憶した前記中断パターン番号に基づき、前記テストデータ記憶部から、テストデータを読み出してスキャンテストを再開する付記１に記載の半導体集積回路。
（付記３）
前記半導体集積回路は、複数の前記プロセッサを有するものであって、
前記スキャンテスト制御部は、前記プロセッサがスキャンテスト実行中であるか否かの情報及びスキャンテストの結果が正常であったか否かを示す管理情報を保持する管理情報保持部を更に有し、
前記プロセッサ制御部は、
複数の前記プロセッサが前記アプリケーションを実行する際に、当該アプリケーションの実行を制御するアプリケーション制御部と、
前記管理情報保持部が有する管理情報に基づき、複数の前記プロセッサがスキャンテストの実行中であるか否か判定する動作判定部と、を有し、
前記スキャンテスト実行制御部は、前記動作判定部の判定結果に基づき、スキャンテストの中断を決定する付記２記載の半導体集積回路。
（付記４）
前記アプリケーション制御部は、アプリケーションの実行に必要なプロセッサの数を算出し、
前記動作判定部は、前記アプリケーション制御部が算出したプロセッサ数及び前記管理情報に基づき、スキャンテスト実行中のプロセッサのうち、スキャンテストを中断させるプロセッサの数を判定し、
前記スキャンテスト実行制御部は、前記管理情報及び前記動作判定部からのプロセッサ数に基づき、所定のプロセッサのスキャンテストを中断する付記３記載の半導体集積回路。
（付記５）
スキャンテストが終了した前記パターン数をカウントする診断進捗情報格納部を更に有し、
診断進捗情報格納部は、管理情報として、更に、前記終了パターン数を保持し、
前記スキャンテスト実行制御部は、前記終了パターン数に基づき、前記プロセッサにスキャンテストを中断させる付記４記載の半導体集積回路。
（付記６）
前記スキャンテスト実行制御部は、複数の前記プロセッサのうち、前記終了パターン数のより多い前記プロセッサから順に、スキャンテストを中断させる付記５記載の半導体集積回路。
（付記７）
スキャンチェーンを有するプロセッサがスキャンテストを実行している際に、アプリケーション実行のためにスキャンテスト中断要求があった場合、スキャンテストを中断させ、アプリケーション実行後にスキャンテストを再開させる半導体集積回路の制御方法。
（付記８）
スキャンチェーンに入力される入力値及び当該入力値に応じた出力の期待値の組み合わせをパターンとし、当該パターン毎にパターン番号を付与した、複数のパターンからなるテストデータをテストデータ記憶部に記憶させ、
前記スキャンチェーンに前記テストデータ記憶部から読み出したテストデータを入力し、当該入力値に応じてスキャンチェーンから出力された応答値を、前記期待値と比較することによりスキャンテストを実行し、
スキャンテストが中断された際の前記パターン番号である中断パターン番号をパターン番号記憶部に記録し、
スキャンテストを再開する際には、前記パターン番号記憶部が記憶した前記中断パターン番号に基づき前記テストデータ記憶部から前記テストデータを読み出してスキャンテストを再開させる付記７の半導体集積回路の制御方法。
（付記９）
前記プロセッサがアプリケーションを実行しようとする際、
複数の前記プロセッサがスキャンテスト実行中であるか否か、又はスキャンテストの結果が正常であったか否かを示す管理情報を保持し、
前記管理情報に基づき、複数の前記プロセッサがスキャンテスト実行中であるか否か判定し、
前記判定結果に基づき、スキャンテストを中断する付記８記載の半導体集積回路の制御方法。
（付記１０）
アプリケーションの実行に必要なプロセッサの数を算出し、
前記プロセッサを判定する際、前記アプリケーションに必要なプロセッサ数及び前記管理情報に基づき、スキャンテストを中断してアプリケーションを実行させるプロセッサの数を判定し、
前記管理情報と、スキャンテストを中断させるプロセッサの数とに基づき、前記プロセッサに対してスキャンテストを中断させる付記９記載の半導体集積回路の制御方法。
（付記１１）
スキャンテストが終了した前記パターン数をカウントし、
前記管理情報として、更に、前記終了パターン数を保持し、
前記管理情報及び前記スキャンテストを中断させるプロセッサ数に基づき、前記プロセッサにスキャンテストを中断させる付記１０記載の半導体集積回路の制御方法。
（付記１２）
前記スキャンテストを中断させるプロセッサを決定する際、複数の前記プロセッサのうち、前記終了パターン数のより多い前記プロセッサから順に、スキャンテストを中断させる付記１１記載の半導体集積回路の制御方法。
（付記１３）
スキャンチェーンを有するプロセッサがスキャンテストを実行している際に、アプリケーション実行のためにスキャンテスト中断要求があった場合、スキャンテストを中断させ、アプリケーション実行後にスキャンテストを再開させる処理をコンピュータに実行させるためのプログラム。
【符号の説明】
【００９７】
１ａ  マルチプロセッサ
１ｂ  マルチプロセッサ
１ｃ  マルチプロセッサ
２  プロセッサ制御部
３  スキャンテスト制御部
４  スキャンテスト実行部
５  メモリ
６  Ｉ／Ｏ部
７  システムバス
８  診断進捗情報格納部
１１  プロセッサ
１１ａ  プロセッサ
１１ｂ  プロセッサ
１１ｎ  プロセッサ
２１  アプリケーション制御部
２２  動作判定部
２３  中断要求部
３１  スキャンテスト実行制御部
３２  管理情報保持部
３３  パターン番号記憶部
４１  テストデータ記憶部
１１１  ＳＣＡＮ  Ｉ／Ｆ部
１２１  ＳＣＡＮ  Ｉ／Ｆ部
１３１  ＳＣＡＮ  Ｉ／Ｆ部
１１２  ＢＵＳ  Ｉ／Ｆ部
１２２  ＢＵＳ  Ｉ／Ｆ部
１３２  ＢＵＳ  Ｉ／Ｆ部
Ｃ１  ＰＥ診断開始要求信号
Ｃ２  ＰＥ診断許可信号
Ｃ３  ＳＣＡＮ開始命令信号
Ｃ４  診断中断命令信号
Ｃ５  ＳＣＡＮ停止命令信号
Ｃ６  ＰＥ診断状態情報信号
Ｃ７  ＳＣＡＮ実行開始パターン番号信号
Ｃ８  ＳＣＡＮ実行中パターン番号信号
Ｃ９  アプリ必要ＰＥ数情報信号
Ｃ１０  アプリ使用許可ＰＥ番号情報信号
Ｃ１１  ＳＣＡＮ実行結果信号
Ｃ１２  ＰＥ正常異常情報信号
Ｃ１３  中断要求ＰＥ数情報信号
Ｃ１４  診断中の実行済みパターン数情報信号
２０１  ＣＰＵボード＃１
２０２  ＣＰＵボード＃２
２０３  ＣＰＵボード＃ｎ
２０７  システムバス
２０８  Ｉ／Ｏバス
２０９  メモリボード
２１０  Ｉ／Ｏバスブリッジ
２１２  Ｉ／Ｏボード
２１３  サービスプロセッサ
２２０  テスト・データ入力信号（ＴＤＩ）
２２１  テスト・クロック信号（ＴＣＫ）
２２７  テスト・データ出力信号（ＴＤＯ）
２２２、２２３、２２４、２２５  テスト・モード選択信号（ＴＭＳ）
【図１】
2012194111.tif 000003
【図２】
2012194111.tif 000004
【図３】
2012194111.tif 000005
【図４】
2012194111.tif 000006
【図５】
2012194111.tif 000007
【図６】
2012194111.tif 000008
【図７】
2012194111.tif 000009
【図８】
2012194111.tif 000010
【図９】
2012194111.tif 000011
【図１０】
2012194111.tif 000012
【図１１】
2012194111.tif 000013
【図１２】
2012194111.tif 000014
【図１３】
2012194111.tif 000015
【図１４】
2012194111.tif 000016
【図１５】
2012194111.tif 000017