(57)【特許請求の範囲】
【請求項１】
第１のクロックに基づいて動作するマスターコアと、
前記第１のクロックと非同期関係にある少なくとも１つの第２のクロックに基づいて動作し、前記第２のクロックに基づく所定の周期で正常に動作しているか否かを示す動作状態を出力する複数のスレーブコアと、
前記第１のクロックに基づいて動作し、前記複数のスレーブコアのそれぞれから出力される前記動作状態を、チェックタイミングパターンに従うチェックタイミングで、検出する状態検出回路と、
を備え、
前記状態検出回路は、
前記チェックタイミングパターンを記憶するチェックパターン設定ブロックと、
前記複数のスレーブコアから出力される前記動作状態をそれぞれ記憶する動作状態記憶ブロックと、
前記チェックタイミングパターンに従う前記チェックタイミングになるまで前記動作状態を記憶する動作状態設定ブロックと、
前記動作状態記憶ブロックから出力される前記動作状態の出力先を制御する出力制御回路と、を含み、
前記出力制御回路は、
前記動作状態記憶ブロックが、前記複数のスレーブコアのうちの一のスレーブコアから所定の周期で出力された正常動作していることを示す動作状態を記憶している場合に、前記チェックパターン設定ブロックに記憶された前記一のスレーブコアに対応する前記チェックタイミングパターンに従うチェックタイミングになるまで、前記正常動作していることを示す動作状態を前記動作状態設定ブロックに一時的に記憶させるために出力し、
前記チェックタイミングパターンに従うチェックタイミングになったとき、前記動作状態設定ブロックに記憶されている前記正常動作していることを示す動作状態を検出結果として出力するとともに、前記動作状態設定ブロックに記憶されている動作状態を初期化する一方、前記チェックタイミングパターンに従うチェックタイミングになったときに前記記憶されている動作状態が初期化状態にある場合、前記一のスレーブコアから出力される前記動作状態を検出結果として出力する、
半導体集積回路。
【請求項２】
前記マスターコアは、前記複数のスレーブコアのそれぞれに対する前記チェックタイミングパターンを設定する、請求項１記載の半導体集積回路。
【請求項３】
前記マスターコアは、前記状態検出回路から前記一のスレーブコアが正常動作していないことを示す動作状態が出力される場合、前記一のスレーブコアを停止させ又は再起動するように制御する、請求項１記載の半導体集積回路。
【請求項４】
前記第２のクロックは、前記第１のクロックの周波数よりも低い周波数で交番する、請求項１記載の半導体集積回路。
【請求項５】
複数の前記第２のクロックのそれぞれは、互いに非同期関係にあり、
前記複数のスレーブコアのそれぞれは、対応する前記第２のクロックに基づいて動作する、
請求項１記載の半導体集積回路。
【請求項６】
前記動作状態設定ブロックは、
前記出力制御回路から前記一のスレーブコアが正常動作していることを示す動作状態が出力される場合、前記正常動作していることを示す動作状態を記憶するとともに、前記動作状態記憶ブロックが記憶する前記動作状態を前記正常動作していることを示す動作状態に設定し、
前記出力制御回路から前記出力制御回路から前記一のスレーブコアが正常動作していることを示す動作状態が出力されない場合、記憶した前記正常動作していることを示す動作状態を初期状態にし、
前記動作状態記憶ブロックは、
前記動作状態設定ブロックによって前記正常動作していることを示す動作状態に設定される場合、前記正常動作していることを示す動作状態を記憶する、
請求項１記載の半導体集積回路。
【請求項７】
前記チェックパターン設定ブロックは、循環型シフトレジスタを含み、
前記循環型シフトレジスタは、前記マスターコアから出力される前記チェックタイミングパターンに従う値を記憶するように構成されるとともに、前記第１のクロックに従って、前記チェックタイミングパターンに従う値を順次に出力するように構成される、
請求項１記載の半導体集積回路。
【請求項８】
前記チェックパターン設定ブロックは、カウンタを含み、
前記チェックパターン設定ブロックは、前記カウンタのカウント値に従って、前記チェックタイミングパターンに従うチェックタイミングを決定する、
請求項１記載の半導体集積回路。
【請求項９】
前記状態検出回路から出力される前記動作状態を記憶する異常状態記憶ブロックをさらに備え、
前記異常状態記憶ブロックは、前記状態検出回路から前記複数のスレーブコアのうちいずれかが正常に動作していないことを示す動作状態が出力される場合に、再び前記状態検出回路から前記複数のスレーブコアのうちいずれかが正常に動作していないことを示す動作状態が出力されるまで前記状態検出回路から出力される前記動作状態を記憶する、
請求項１記載の半導体集積回路。
【請求項１０】
第１のクロックと非同期の関係にある少なくとも１つの第２のクロックに基づいて動作する複数のスレーブコアのそれぞれから出力される動作状態を、チェックタイミングパターンに従うチェックタイミングで検出し、検出結果を、前記第１のクロックに基づいて動作するマスターコアに出力する半導体集積回路であって、
前記スレーブコアは、前記第２のクロックに基づく所定の周期で正常に動作しているか否かを示す動作状態を出力し、
前記半導体集積回路は、
前記複数のスレーブコアのうちの一のスレーブコアが、正常動作していることを示す動作状態を前記所定の周期で出力している場合に、前記一のスレーブコアに対応する前記チェックタイミングパターンに従うチェックタイミングになるまで、前記正常動作していることを示す動作状態を退避させるために一時的に記憶し、
前記半導体集積回路は、
前記チェックタイミングパターンに従うチェックタイミングになったとき、前記退避させ記憶されている前記正常動作していることを示す動作状態を検出結果として出力するとともに、該記憶されている動作状態を初期状態にする一方、前記チェックタイミングパターンに従うチェックタイミングになったとき、該記憶されている動作状態が前記初期状態にある場合、前記一のスレーブコアから出力される前記動作状態を検出結果として退避させることなく前記マスターコアに出力する、
半導体集積回路。
【請求項１１】
第１のクロックに基づいて動作するマスターコアと、前記第１のクロックと非同期関係にある少なくとも１つの第２のクロックに基づいて動作する複数のスレーブコアとを備える半導体集積回路において、前記複数のスレーブコアのそれぞれの動作状態をチェックする方法であって、
前記複数のスレーブコアのそれぞれの動作状態をチェックするチェックタイミングパターンを設定することと、
前記複数のスレーブコアのうち一のスレーブコアに対応するチェックタイミングパターンに従うチェックタイミングであるか否かを判断することと、
前記チェックタイミングパターンに従うチェックタイミングでないと判断する場合、前記一のスレーブコアが正常動作していることを示す動作状態を出力しているか否かをチェックし、前記一のスレーブコアが前記正常動作していることを示す動作状態を出力している場合、前記正常動作していることを示す動作状態を記憶することと、
前記チェックタイミングパターンに従うチェックタイミングであると判断する場合、該チェックタイミングでの記憶されている前記正常動作していることを示す動作状態をチェック結果として出力するとともに、該記憶されている動作状態を初期状態にする一方、前記チェックタイミングパターンに従うチェックタイミングであると判断する場合、該記憶されている動作状態が前記初期状態にある場合、前記一のスレーブコアから出力される前記動作状態をチェック結果として出力することと、
を含む、前記複数のスレーブコアのそれぞれの動作状態をチェックする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、特に、マスター／スレーブ型コア構成を備える半導体集積回路に関する。
【背景技術】
【０００２】
マルチプロセッサシステムは、１つのコアのみを備えるシングルプロセッサシステムと比べて、複数のコアによって異なるデータや命令を並列に処理するため、システム全体の処理能力を向上させることができる点で有利である。
【０００３】
マルチプロセッサシステムの構成の一例として、１つのコアをマスターコアに設定する一方で、その他のコアをスレーブコアに設定して、マスターコアによって複数のスレーブコアを制御するマスター／スレーブ型コア構成がある。このようなマスター／スレーブ型コア構成のマルチプロセッサシステムでは、典型的には、複数のスレーブコアのそれぞれが正常に動作しているか否かの動作状態を定期的にマスターコアに通知するための機構が設けられる。マスターコアは、異常を示す動作状態が通知された場合には、例えば、実行している処理を一旦停止し、マルチプロセッサシステムの復旧を行う。
【０００４】
例えば、下記特許文献１は、スレーブコアごとに、プログラムが動作していることを示す動作状態情報を更新しながら記憶する動作状態記憶手段と、動作状態記憶手段に動作状態情報が記憶されている場合、ウォッチドッグタイマをリセットするリセット手段と、スレーブコアごとに、低電力モードであることを示す低電力モード状態情報を記憶するモード記憶手段とを備えるウォッチドッグタイマ監視装置を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した特許文献１に開示されるウォッチドッグタイマ監視装置は、各スレーブコアがウォッチドッグタイマのタイムアウト周期を共有するため、各スレーブコアのうち監視周期が最長のものの周期にタイムアウト周期を合わせる必要があった。したがって、このようなウォッチドッグタイマ監視装置は、各スレーブコアに応じた適切な周期で動作状態のチェックを行うことができなかった。
【０００７】
このため、上述したウォッチドッグタイマ監視装置は、どのスレーブコアでエラーが発生したかということをチェックすることができず、マルチプロセッサシステムを復旧させるためには、マルチプロセッサシステム全体を再起動しなければならなかった。
【０００８】
そこで、本発明は、マスター／スレーブ型コア構成を備える半導体集積回路であって、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックすることができる半導体集積回路、及びこのような半導体集積回路における各スレーブコアの動作状態をチェックする方法を提供することを目的とする。
【０００９】
また、本発明は、マスター／スレーブ型コア構成を備える半導体集積回路であって、正常に動作していないスレーブコアを検出することができる半導体集積回路、及びスレーブコアを検出する方法を提供することを目的とする。
【００１０】
また、本発明は、マスター／スレーブ型コア構成を備える半導体集積回路であって、正常に動作していないスレーブコアが検出された場合に、半導体集積回路全体を再起動させることなく、正常に動作していないスレーブコアのみを切り離し又は再起動させることによって、実行中の処理を続行させることができる半導体集積回路、及びこれの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するための本発明は、以下の技術的特徴乃至は発明特定事項を含んで構成される。
【００１２】
すなわち、ある観点に従う本発明は、第１のクロックで動作するマスターコアと、前記第１のクロックと非同期関係にある第２のクロックで動作する複数のスレーブコアとを含む半導体集積回路である。前記半導体集積回路は、前記第２のクロックに基づく所定の周期に従って前記複数のスレーブコアのいずれかから出力される動作状態を、動作状態記憶ブロックに保持するとともに、前記第１のクロックに基づくチェックタイミングになるまで、動作状態設定ブロックに別に保持しておく。前記半導体集積回路は、前記第１のクロックに基づくにチェックタイミングになったとき、前記動作状態設定ブロックに保持している前記動作状態を前記動作状態記憶ブロックに戻して検出結果として前記マスターコアに通知するとともに、前記動作状態設定ブロックを初期化する。一方、前記半導体集積回路は、前記第１のクロックに基づくチェックタイミングになったとき、前記動作状態設定ブロックが初期化されている場合には、該チェックタイミングにおいて前記動作状態記憶ブロックに記憶されている前記動作状態を検出結果として前記マスターコアに通知する。前記マスターコアは、前記通知された検出結果に基づいて、前記複数のスレーブコアに対して制御を行う。
【００１３】
このように、前記複数のスレーブコアのいずれかから、前記第２のクロックに依存して、出力される動作状態は、前記動作状態設定ブロックにより退避されて一時的に保持され、前記第１のクロックに基づくチェックタイミングで読み出され、出力されることになる。つまり、あるチェックタイミングよりも早いタイミングでエラー動作状態が出力された場合であっても、次のエラー動作状態まで一時的に保持され、該チェックタイミングになったときに、該エラー動作状態が出力されることになる。
【００１４】
また、ある観点に従う本発明は、第１のクロックに基づいて動作するマスターコアと、前記第１のクロックと非同期関係にある少なくとも１つの第２のクロックに基づいて動作し、前記第２のクロックに基づく所定の周期で正常に動作しているか否かを示す動作状態を出力する複数のスレーブコアと、前記第１のクロックに基づいて動作し、前記複数のスレーブコアのそれぞれから出力される前記動作状態を、チェックタイミングパターンに従うチェックタイミングで、検出する状態検出回路と、を備える半導体集積回路である。前記状態検出回路は、前記複数のスレーブコアのうちの一のスレーブコアが、正常動作していることを示す動作状態を前記所定の周期で出力している場合に、前記一のスレーブコアに対応する前記チェックタイミングパターンに従うチェックタイミングになるまで、前記正常動作していることを示す動作状態を退避させるために一時的に記憶する。前記状態検出回路は、前記チェックタイミングパターンに従うチェックタイミングになったとき、前記退避させ記憶されている正常動作していることを示す動作状態を検出結果として出力するとともに、該記憶されている動作状態を初期状態にする。一方、前記状態検出回路は、前記チェックタイミングパターンに従うチェックタイミングになったとき、該記憶されている動作状態が前記初期状態にある場合、前記一のスレーブコアから出力される前記動作状態を検出結果として退避させることなく出力する。
【００１５】
これにより、半導体集積回路は、第１のクロック及び第２のクロックが非同期関係にある場合でも、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックするとともに、正常に動作していないスレーブコアを検出することができるようになる。
【００１６】
ここで、前記マスターコアは、前記複数のスレーブコアのそれぞれに対する前記チェックタイミングパターンを設定し得る。
【００１７】
これにより、半導体集積回路は、複数のスレーブコアのそれぞれに対応するチェックタイミングパターンに従って、複数のスレーブコアのそれぞれに対する適切な周期を設定することができるようになる。
【００１８】
また、前記マスターコアは、前記状態検出回路から前記一のスレーブコアが正常動作していないことを示す動作状態が出力される場合、前記一のスレーブコアを停止させ又は再起動するように制御し得る。
【００１９】
これにより、半導体集積回路は、正常に動作していないスレーブコアのみを停止させて切り離し又は再起動させることができるようになるため、半導体集積回路全体の再起動を回避することができるようになり、耐障害性を得ることができるようになる。
【００２０】
また、前記第２のクロックは、前記第１のクロックの周波数よりも低い周波数で交番し得る。
【００２１】
また、複数の前記第２のクロックのそれぞれは、互いに非同期関係にあり、前記複数のスレーブコアのそれぞれは、対応する前記第２のクロックに基づいて動作し得る。
【００２２】
これにより、半導体集積回路は、複数の第２のクロックのそれぞれが互いに非同期関係にある場合においても、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックするとともに、正常に動作していないスレーブコアを検出することができるようになる。
【００２３】
また、前記状態検出回路は、前記チェックタイミングパターンを記憶するチェックパターン設定ブロックと、前記複数のスレーブコアから出力される前記動作状態をそれぞれ記憶する動作状態記憶ブロックと、前記チェックタイミングパターンに従う前記チェックタイミングになるまで前記動作状態を記憶する動作状態設定ブロックと、前記動作状態記憶ブロックから出力される前記動作状態の出力先を制御する出力制御回路と、を含む。前記出力制御回路は、前記動作状態記憶ブロックが、前記一のスレーブコアが正常動作していることを示す動作状態を記憶している場合に、前記一のスレーブコアに対応する前記チェックタイミングパターンに従うチェックタイミングになるまで、前記正常動作していることを示す動作状態を前記動作状態設定ブロックに出力する。前記出力制御回路は、前記チェックタイミングパターンに従うチェックタイミングになったとき、前記動作状態記憶ブロックから出力される前記動作状態を検出結果として出力し得る。
【００２４】
これにより、半導体集積回路は、チェックタイミングパターンに従うチェックタイミングに従って、動作状態記憶ブロックが記憶するスレーブコアの動作状態の出力先を制御することができるようになる。
【００２５】
さらに、前記動作状態設定ブロックは、前記出力制御回路から前記一のスレーブコアが正常動作していることを示す動作状態が出力される場合、前記正常動作していることを示す動作状態を記憶するとともに、前記動作状態記憶ブロックが記憶する前記動作状態を前記正常動作していることを示す動作状態に設定する。前記動作状態設定ブロックは、前記出力制御回路から前記出力制御回路から前記一のスレーブコアが正常動作していることを示す動作状態が出力されない場合、記憶した前記正常動作していることを示す動作状態を初期状態にする。また、前記動作状態記憶ブロックは、前記動作状態設定ブロックによって前記正常動作していることを示す動作状態に設定される場合、前記正常動作していることを示す動作状態を記憶し得る。
【００２６】
これにより、半導体集積回路は、出力制御回路からの出力によって、動作状態設定ブロックにスレーブコアが正常動作していることを示す動作状態を記憶させるとともに該動作状態を動作状態記憶ブロックに記憶させるか、又は動作状態設定ブロックが記憶した動作状態を初期状態にすることができるようになる。
【００２７】
また、前記チェックパターン設定ブロックは、循環型シフトレジスタを含み、前記循環型シフトレジスタは、前記マスターコアから出力される前記チェックタイミングパターンに従う値を記憶するように構成されるとともに、前記第１のクロックに従って、前記チェックタイミングパターンに従う値を順次に出力するように構成され得る。
【００２８】
これにより、半導体集積回路は、単純な構成でチェックタイミングパターンを設定することができるようになる。
【００２９】
また、前記チェックパターン設定ブロックは、カウンタを含み、前記チェックパターン設定ブロックは、前記カウンタのカウント値に従って、前記チェックタイミングパターンに従うチェックタイミングを決定し得る。
【００３０】
これにより、半導体集積回路は、少ない素子数で高精度にチェックタイミングパターンを設定することができるようになる。
【００３１】
また、前記状態検出回路から出力される前記動作状態を記憶する異常状態記憶ブロックをさらに備える。前記異常状態記憶ブロックは、前記状態検出回路から前記複数のスレーブコアのうちいずれかが正常に動作していないことを示す動作状態が出力される場合に、再び前記状態検出回路から前記複数のスレーブコアのうちいずれかが正常に動作していないことを示す動作状態が出力されるまで前記状態検出回路から出力される前記動作状態を記憶し得る。
【００３２】
これにより、半導体集積回路は、正常に動作していないスレーブコアの動作状態に関する情報を再び正常に動作していないスレーブコアの動作状態が出力されるまで利用し続けることができるようになる。
【００３３】
さらに、別の観点に従う本発明は、第１のクロックと非同期の関係にある少なくとも１つの第２のクロックに基づいて動作する複数のスレーブコアのそれぞれから出力される動作状態を、チェックタイミングパターンに従うチェックタイミングで検出し、該検出結果を、前記第１のクロックに基づいて動作するマスターコアに出力する半導体集積回路である。前記スレーブコアは、前記第２のクロックに基づく所定の周期で正常に動作しているか否かを示す動作状態を出力する。前記半導体集積回路は、前記複数のスレーブコアのうちの一のスレーブコアが、正常動作していることを示す動作状態を前記所定の周期で出力している場合に、前記一のスレーブコアに対応する前記チェックタイミングパターンに従うチェックタイミングになるまで、前記正常動作していることを示す動作状態を退避させるために一時的に記憶する。前記半導体集積回路は、前記チェックタイミングパターンに従うチェックタイミングになったとき、前記退避させ記憶されている前記正常動作していることを示す動作状態を検出結果として出力するとともに、該記憶されている動作状態を初期状態にする。一方、前記半導体集積回路は、前記チェックタイミングパターンに従うチェックタイミングになったとき、該記憶されている動作状態が前記初期状態にある場合、前記一のスレーブコアから出力される前記動作状態を検出結果として退避させることなく前記マスターコアに出力する。
【００３４】
これにより、半導体集積回路は、第１のクロック及び第２のクロックが非同期関係にある場合でも、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックするとともに、正常に動作していないスレーブコアを検出することができるようになる。
【００３５】
さらに、別の観点に従う本発明は、第１のクロックに基づいて動作するマスターコアと、前記第１のクロックと非同期関係にある少なくとも１つの第２のクロックに基づいて動作する複数のスレーブコアとを備える半導体集積回路において、前記複数のスレーブコアのそれぞれの動作状態をチェックする方法である。かかる方法は、前記複数のスレーブコアのそれぞれの動作状態をチェックするチェックタイミングパターンを設定することと、前記複数のスレーブコアのうち一のスレーブコアに対応するチェックタイミングパターンに従うチェックタイミングであるか否かを判断することと、前記チェックタイミングパターンに従うチェックタイミングでないと判断する場合、前記一のスレーブコアが正常動作していることを示す動作状態を出力しているか否かをチェックし、前記一のスレーブコアが前記正常動作していることを示す動作状態を出力している場合、前記正常動作していることを示す動作状態を記憶することと、前記チェックタイミングパターンに従うチェックタイミングであると判断する場合、該チェックタイミングでの記憶されている前記正常動作していることを示す動作状態をチェック結果として出力するとともに、該記憶されている動作状態を初期状態にする一方、前記チェックタイミングパターンに従うチェックタイミングであると判断する場合、該記憶されている動作状態が前記初期状態にある場合、前記一のスレーブコアから出力される前記動作状態をチェック結果として出力することと、を含む。
【００３６】
これにより、半導体集積回路は、第１のクロック及び第２のクロックが非同期関係にある場合でも、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックするとともに、正常に動作していないスレーブコアを検出することができるようになる。
【発明の効果】
【００３７】
本発明によれば、半導体集積回路は、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックすることができるようになる。
【００３８】
また、本発明によれば、半導体集積回路は、正常に動作していないスレーブコアを検出することができるようになる。
【００３９】
また、本発明によれば、正常に動作していないスレーブコアのみを切り離し又は再起動させることができるので、半導体集積回路全体の再起動を回避することができるようになり、したがって、耐障害性を有する半導体集積回路が得られるようになる。
【００４０】
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
【図面の簡単な説明】
【００４１】
【図１】本発明の一実施形態に係る半導体集積回路の概略構成を示す図である。
【図２】本発明の一実施形態に係るチェックパターン設定回路の構成の一例を示す図である。
【図３】本発明の一実施形態に係る出力制御回路の構成の一例を示す図である。
【図４】本発明の一実施形態に係る半導体集積回路の各ブロックが記憶する動作状態の伝搬を説明するための図である。
【図５】本発明の一実施形態に係る半導体集積回路の動作を示すタイミングチャートである。
【図６】本発明の一実施形態に係る半導体集積回路の動作を示すフローチャートである。
【図７】本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。
【図８】本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。
【図９】本発明の一実施形態に係るチェックタイミング設定ブロックのチェックパターン設定回路の構成の他の例を示す図である。
【発明を実施するための形態】
【００４２】
次に、本発明の実施の形態について、図面を参照しつつ説明する。以下の図の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図は、模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
【００４３】
図１は、本発明の一実施形態に係る半導体集積回路の概略構成を示す図である。同図に示すように、本実施形態に係る半導体集積回路１００は、マスターコア１１０と、スレーブコア１２０（１）乃至１２０（ｎ）とからなるマスター／スレーブ型コア構成を備えたマルチプロセッサシステムである。本実施形態に係る半導体集積回路１００は、また、チェックパターン設定ブロック１３０と、チェックタイミング記憶ブロック１４０と、動作状態記憶ブロック１５０と、出力制御回路１６０と、動作状態設定ブロック１７０と、検出結果記憶ブロック１８０と、論理和回路１９０とを含んで構成される。これらのコンポーネントは、例えば、ＡＳＩＣのような１つの半導体集積回路として構成される。
【００４４】
マスターコア１１０は、例えば図示しないＰＬＬ（Phase Locked Loop）から供給されるクロックＣＬＫ＿Ｍに従って、各スレーブコア１２０を制御しながら、所定の処理を実行するマイクロプロセッサである。本実施形態では、マスターコア１１０は、スレーブコア１２０（１）乃至１２０（ｎ）の動作状態をチェックするタイミングを示すタイミングパターン（以下「チェックタイミングパターン」という。）をチェックパターン設定ブロック１３０に設定する。具体的には、マスターコア１１０は、チェックタイミングパターンの設定を行うために、イネーブル状態（例えば“１”）のセットイネーブル信号ＳＥＴ＿ＥＮをチェックパターン設定ブロック１３０に出力し、チェックパターン設定ブロック１３０をイネーブル状態にして、スレーブコア１２０（１）乃至１２０（ｎ）のそれぞれに対応する値信号Ｖ（１）乃至Ｖ（ｎ）をチェックパターン設定ブロック１３０に、クロックＣＬＫ＿Ｍの周期に従って、出力する。これによって、チェックパターン設定ブロック１３０には、スレーブコア１２０（１）乃至１２０（ｎ）の動作状態をそれぞれチェックするためのタイミングが設定される。
【００４５】
また、マスターコア１１０は、後述する半導体集積回路１００のチェック機構によって正常に動作していないスレーブコア１２０が検出された場合に、実行中の処理に支障を来さないよう、少なくとも該正常に動作していないスレーブコア１２０の制御を行う。具体的には、マスターコア１１０は、スレーブコア１２０（１）乃至１２０（ｎ）のいずれかが正常に動作していないことを示す割り込み信号ＩＮＴを論理和回路１９０から受け取ると、通常モードから割り込み処理モードに移行し、正常に動作していないスレーブコア１２０の動作を停止させてこれを切り離すように制御を行う。或いは、マスターコア１１０は、該割り込みモードにおいて、該スレーブコア１２０の再起動するように制御を行っても良い。マスターコア１１０は、このような制御を行った後、通常モードに復帰する。
【００４６】
スレーブコア１２０は、マスターコア１１０の制御の下、クロックＣＬＫ＿Ｍと非同期の関係にありクロックＣＬＫ＿Ｍの周波数以下の周波数で交番するクロックＣＬＫ＿Ｓに基づいて動作するマイクロプロセッサである。スレーブコア１２０（１）乃至１２０（ｎ）のそれぞれに入力されるクロックＣＬＫ＿Ｓ（１）乃至ＣＬＫ＿Ｓ（ｎ）は、互いに非同期の関係にあっても良いし、異なる周波数でも良い。スレーブコア１２０（１）乃至１２０（ｎ）のそれぞれは、正常に動作している間は、所定の周期で正常に動作していることを示す値に変化するフラグを動作状態記憶ブロック１５０に出力する。
【００４７】
具体的には、スレーブコア１２０（１）乃至１２０（ｎ）のそれぞれは、例えば、図示しないカウンタを有し、スレーブコア１２０が正常に動作している間、クロックＣＬＫ＿Ｓの交番数をカウントする。スレーブコア１２０は、該カウンタのカウント値が所定の値に達していない場合、スレーブコア１２０が正常に動作していることを示さないフラグを動作状態記憶ブロック１５０に出力する。一方、スレーブコア１２０は、該カウント値が所定の値に達した場合、該カウンタをリセットするとともに、スレーブコア１２０が正常に動作していること示すフラグを動作状態記憶ブロック１５０に出力する。つまり、スレーブコア１２０は、正常に動作している場合（すなわち、カウンタが動作する場合）、カウンタが所定の値を示したタイミングで、スレーブコア１２０が正常に動作していることを示すフラグを動作状態記憶ブロック１５０に出力する一方で、スレーブコア１２０が正常に動作していることを示さない場合（すなわち、カウンタが動作しない場合）、スレーブコア１２０が正常に動作していることを示さないフラグを動作状態記憶ブロック１５０に出力する。
【００４８】
チェックパターン設定ブロック１３０は、スレーブコア１２０（１）乃至１２０（ｎ）のそれぞれに対するチェックタイミングパターンをそれぞれ記憶するチェックパターン設定回路１３１（１）乃至１３１（ｎ）を含んで構成される。チェックタイミングパターンは、例えば所定長のビットパターンとして表現され、“１”のビット値が参照される場合にのみ、スレーブコア１２０の動作状態がチェックされる。ビットパターンの長さは、適宜に、設定されて良い。チェックパターン設定回路１３１（１）乃至１３１（ｎ）は、マスターコア１１０から出力されるセットイネーブル信号ＳＥＴ＿ＥＮがイネーブル状態の間、クロックＣＬＫ＿Ｍに従って、マスターコア１１０から出力される値信号Ｖ（１）乃至Ｖ（ｎ）の値を順次に記憶する。チェックパターン設定回路１３１は、例えば選択回路及びシフトレジスタが環状に接続されることによって構成される循環型シフトレジスタである。或いは、チェックパターン設定回路１３１は、順序回路及びカウンタによって構成される回路であっても良い。なお、チェックパターン設定ブロック１３０は、チェックタイミング記憶ブロック１４０と、動作状態記憶ブロック１５０と、出力制御回路１６０と、動作状態設定ブロック１７０と、検出結果記憶ブロック１８０と、論理和回路１９０とともに、本発明の状態検出回路を構成する。
【００４９】
チェックタイミング記憶ブロック１４０は、クロックＣＬＫ＿Ｍに基づいて、チェックパターン設定回路１３１（１）乃至１３１（ｎ）から出力されるチェックタイミングパターンのビット値を記憶する順序回路１４１（１）乃至１４１（ｎ）を含んで構成される。本例では、順序回路１４１は、例えばＤ型フリップフロップであるが、これに限られない。
【００５０】
動作状態記憶ブロック１５０は、スレーブコア１２０（１）乃至１２０（ｎ）の動作状態をそれぞれ記憶する順序回路１５１（１）乃至１５１（ｎ）を含む。本例では、順序回路１５１は、例えばセット機能付きＤ型フリップフロップであるが、これに限られない。順序回路１５１（１）乃至１５１（ｎ）のそれぞれは、対応するスレーブコア１２０から出力されるフラグが示す動作状態を一時的に記憶し、該記憶した動作状態を所定のタイミングで出力制御回路１６０に出力する。つまり、動作状態記憶ブロック１５０には、クロックＣＬＫ＿Ｓに従うスレーブコア１２０の動作タイミングで該スレーブコア１２０の動作状態が供給され、クロックＣＬＫ＿Ｍに従うタイミングで、これを記憶するとともに記憶した動作状態を出力制御回路１６０に出力する。また、動作状態記憶ブロック１５０は、スレーブコア１２０がフラグを出力するタイミングと、チェックタイミング記憶ブロック１４０がスレーブコア１２０の動作状態をチェックするタイミングとの同期をとるために、動作状態設定ブロック１７０から出力されるセット信号ＳＥＴに従って該順序回路１５１が記憶する動作状態をセット信号ＳＥＴの動作状態に、クロックＣＬＫ＿Ｍに従うタイミングで、設定する。
【００５１】
出力制御回路１６０は、動作状態記憶ブロック１５０が記憶する動作状態を検出し、チェックタイミング記憶ブロック１４０から出力されるチェックタイミングパターンの値に従って、該検出した動作状態の出力を制御する。具体的には、出力制御回路１６０は、チェックタイミング記憶ブロック１４０の順序回路１４１の出力が、対応するスレーブコア１２０の動作状態をチェックすべきタイミングであることを示す場合、動作状態記憶ブロック１５０の対応する順序回路１５１が記憶する動作状態を検出し、該検出結果を検出結果記憶ブロック１８０の対応する順序回路１８１に出力するとともに、動作状態設定ブロック１７０の対応する順序回路１７１が記憶する動作状態を初期状態にする。一方、出力制御回路１６０は、該順序回路１４１の出力が、対応するスレーブコア１２０の動作状態をチェックするタイミングでないことを示す場合、該順序回路１５１が記憶する動作状態を検出し、該動作状態を該順序回路１７１に出力する。
【００５２】
動作状態設定ブロック１７０は、クロックＣＬＫ＿Ｍに基づいて、チェックタイミング記憶ブロック１４０の出力がスレーブコア１２０の動作状態をチェックするタイミングを示しておらず、かつ、動作状態記憶ブロック１５０からスレーブコア１２０が正常に動作していることを示す動作状態が出力されていた場合に、該動作状態を例えば順序回路１７１（１）乃至１７１（ｎ）によって記憶するとともに、該記憶した動作状態をセット信号ＳＥＴとして動作状態記憶ブロック１５０に出力する。また、動作状態設定ブロック１７０は、クロックＣＬＫ＿Ｍに基づいて、チェックタイミング記憶ブロック１４０の出力がスレーブコア１２０の動作状態を確認するタイミングであることを示す場合、該記憶した動作状態を初期状態にするとともに、該記憶した初期状態をセット信号ＳＥＴとして動作状態記憶ブロック１５０に出力する。つまり、動作状態設定ブロック１７０は、スレーブコア１２０がフラグを出力するタイミングと、チェックタイミング記憶ブロック１４０の出力が示すスレーブコア１２０の動作状態をチェックするタイミングとの間で同期をとるために、チェックタイミング記憶ブロック１４０の出力がスレーブコアの動作状態をチェックするタイミングを示すまで、スレーブコア１２０が正常に動作していたことを動作状態記憶ブロック１５０の出力が示す場合に該動作状態を記憶し、さらに、動作状態設定ブロック１７０は、動作状態記憶ブロック１５０の動作状態を該記憶した動作状態（すなわち正常動作）に設定する。なお、順序回路１７１は、例えばＤ型フリップフロップであるが、これに限られない。
【００５３】
検出結果記憶ブロック１８０は、クロックＣＬＫ＿Ｍに基づいて、チェックタイミング記憶ブロック１４０の出力が、対応するスレーブコア１２０の動作状態をチェックするタイミングであることを示す場合に、読み出された動作状態記憶ブロック１５０が記憶する動作状態を例えば順序回路１８１（１）乃至１８１（ｎ）によって一時的に記憶し、該記憶した動作状態を所定のタイミングで論理和回路１９０に出力する。つまり、検出結果記憶ブロック１８０は、チェックパターン設定ブロック１３０と、チェックタイミング記憶ブロック１４０と、動作状態記憶ブロック１５０と、出力制御回路１６０と、動作状態設定ブロック１７０とによってチェックされたスレーブコア１２０の動作状態を記憶し出力する。なお、順序回路１８１は、例えばＤ型フリップフロップであるが、これに限られない。
【００５４】
論理和回路１９０は、スレーブコア１２０（１）乃至１２０（ｎ）の少なくとも１つが正常に動作していないことを示している場合、スレーブコア１２０が正常に動作していないことを示す割り込み信号ＩＮＴ（例えば“１”）をマスターコア１１０に出力する。つまり、論理和回路１９０は、検出結果記憶ブロック１８０の順序回路１８１（１）乃至１８１（ｎ）から出力される動作状態に対して論理和演算を行い、該演算の結果を割り込み信号ＩＮＴとしてマスターコア１１０に出力する。
【００５５】
以上のように構成される半導体集積回路１００は、まず、チェックパターン設定ブロック１３０によってスレーブコア１２０（１）乃至１２０（ｎ）のそれぞれの動作状態をチェックするチェックタイミングパターンを設定し、チェックタイミング記憶ブロック１４０にチェックパターンのビット値を記憶させる。半導体集積回路１００は、スレーブコア１２０（１）乃至１２０（ｎ）の動作状態を、クロックＣＬＫ＿Ｓに従って、動作状態記憶ブロック１５０に出力する。半導体集積回路１００は、チェックタイミング記憶ブロック１４０の出力がスレーブコア１２０の動作状態をチェックするタイミングでないことを示す場合、動作状態記憶ブロック１５０が記憶するスレーブコア１２０の動作状態を退避させるために動作状態設定ブロック１７０に一時的に記憶するとともに、該動作状態設定ブロック１７０が記憶する動作状態を該動作状態記憶ブロック１５０の動作状態に設定する。一方、半導体集積回路１００は、チェックタイミング記憶ブロック１４０の出力がスレーブコア１２０の動作状態をチェックするタイミングであることを示す場合、該動作状態設定ブロック１７０が記憶する動作状態を初期状態にするとともに、該動作状態記憶ブロック１５０が記憶する動作状態を検出結果記憶ブロック１８０に記憶し、検出結果記憶ブロック１８０の出力の論理和をマスターコア１１０に出力する。これによって、マスターコア１１０は、検出結果記憶ブロック１８０の出力の論理和に従って、スレーブコア１２０の動作を制御する。
【００５６】
このように、半導体集積回路１００は、スレーブコア１２０（１）乃至１２０（ｎ）の動作周期に関係なく、チェックタイミングパターンに従ってスレーブコア１２０（１）乃至１２０（ｎ）の動作状態をチェックする。この場合、動作状態のチェックタイミングよりも早いタイミングでスレーブコア１２０が正常に動作していることを示した場合に、半導体集積回路１００は、チェックタイミングになるまで、該動作状態を動作状態設定ブロック１７０の対応する順序回路１７１に退避させ、記憶する。これにより、半導体集積回路１００は、マスターコア１１０及びスレーブコア１２０（１）乃至１２０（ｎ）の動作に用いられるクロックＣＬＫ＿Ｍ、及びＣＬＫ＿Ｓ（１）乃至ＣＬＫ＿Ｓ（ｎ）が互いに同期関係にない場合でも、スレーブコア１２０（１）乃至１２０（ｎ）に応じた適切なタイミングでスレーブコア１２０（１）乃至１２０（ｎ）の動作状態の検出を行うことができる。
【００５７】
なお、本例では、検出結果記憶ブロック１８０の出力に対して論理和演算を行った結果が、割り込み信号ＩＮＴとしてマスターコア１１０に出力されるが、これに限られるものではない。半導体集積回路１００においては、論理和回路１９０が省略され、検出結果記憶ブロック１８０の順序回路１８１（１）乃至１８１（ｎ）の出力がそれぞれ割り込み信号ＩＮＴ（１）乃至ＩＮＴ（ｎ）としてマスターコア１１０に出力されても良い。かかる場合、半導体集積回路１００は、正常に動作していないスレーブコア１２０を個別に検出することができ、半導体集積回路１００全体を再起動させることなく、正常に動作していないスレーブコア１２０のみを切り離し又は再起動させることによって、実行中の処理を継続させることができる。
【００５８】
また、本例では、上述した各ブロック乃至はコンポーネントが１つの半導体集積回路１００に設けられているが、これに限られるものではない。これらのブロック乃至はコンポーネントは、それぞれ別個のＡＳＩＣとして構成されても良く、或いは、それぞれ別個のプリント基板に設けられても良い。
【００５９】
図２は、本発明の一実施形態に係るチェックパターン設定回路の構成の一例を示す図である。同図に示すように、チェックパターン設定回路１３１（ｉ）は、順序回路１３１２（１）乃至１３１２（ｍ）からなるシフトレジスタと、該シフトレジスタの最前段及び最後段を接続する選択回路１３１１とを含んで構成される循環型シフトレジスタである。
【００６０】
選択回路１３１１は、例えばマルチプレクサであるが、これに限られない。選択回路１３１１は、選択端子ＳＬに入力されるセットイネーブル信号ＳＥＴ＿ＥＮがイネーブル状態を示す場合、入力端子Ａ１に入力される値信号Ｖ（ｉ）を選択する一方、セットイネーブル信号ＳＥＴ＿ＥＮがイネーブル状態を示さない場合、入力端子Ａ０に入力されるシフトレジスタの最後段の順序回路１３１２（ｍ）の出力を選択し、該選択した結果を出力端子Ｙからシフトレジスタの最前段の順序回路１３１２（１）に出力する。つまり、選択回路１３１１は、チェックタイミングパターンを設定する設定モード、又は設定されたチェックタイミングパターンを出力する出力モードのいずれかを選択し、該選択したモードにチェックパターン設定回路１３１（ｉ）のモードを設定する。
【００６１】
順序回路１３１２は、例えばＤ型フリップフロップであるが、これに限られない。順序回路１３１２は、クロックＣＬＫ＿Ｍに基づいて、前段に接続される回路から出力される信号を後段に接続される回路に出力する。
【００６２】
以上のように構成されるチェックパターン設定回路１３１（ｉ）は、セットイネーブル信号ＳＥＴ＿ＥＮがイネーブル状態を示す場合、設定モードとなり、マスターコア１１０から出力される値信号Ｖ（ｉ）の値を取り込むことによって、対応するスレーブコア１２０（ｉ）の動作状態をチェックするチェックタイミングパタ−ンを設定する。一方、チェックパターン設定回路１３１（ｉ）は、セットイネーブル信号ＳＥＴ＿ＥＮがイネーブル状態を示さない場合、出力モードとなり、設定されたチェックタイミングパターンで、対応するスレーブコア１２０（ｉ）の動作状態をチェックするタイミングであることを示す信号をチェックタイミング記憶ブロック１４０の対応する順序回路１４１（ｉ）に出力する。これにより、チェックパターン設定回路１３１（ｉ）は、単純な構成でチェックタイミングパターンを設定することができる。
【００６３】
図３は、本発明の一実施形態に係る出力制御回路の構成の一例を示す図である。同図に示すように、本実施形態に係る出力制御回路１６０は、論理積回路１６１（１）乃至１６１（ｎ）と、論理積回路１６２（１）乃至１６２（ｎ）とを含んで構成される。
【００６４】
論理積回路１６１は、動作状態記憶ブロック１５０における対応する順序回路１５１から出力される、対応するスレーブコア１２０の動作状態を示す信号に対してチェックタイミング記憶ブロック１４０の出力信号との論理積の信号を動作状態設定ブロック１７０における対応する順序回路１７１に出力する。また、論理積回路１６１は、チェックタイミング記憶ブロック１４０における対応する順序回路１４１の出力が、対応するスレーブコア１２０の動作状態をチェックすべきタイミングであることを示す場合、値を“０”として該順序回路１７１に出力する。つまり、論理積回路１６１は、対応する順序回路１４１からの出力に対する論理否定と、対応する順序回路１５１からの出力とに対して論理積演算を行い、該演算の結果を出力する。
【００６５】
論理積回路１６２は、イネーブル端子ＥＮＡに、チェックタイミング記憶ブロック１４０の対応する順序回路１４１から対応するスレーブコア１２０の動作状態を確認するタイミングであることを示す信号が入力された場合、対応する順序回路１５１から出力される対応するスレーブコア１２０の動作状態の論理否定に対して論理積演算を行った結果を検出結果記憶ブロック１８０の対応する順序回路１８１に出力する。つまり、論理積回路１６２は、対応する順序回路１５１からの出力に対する論理否定と、対応する順序回路１４１からの出力とに対して論理積演算を行い、該演算の結果を出力するものであっても良い。
【００６６】
以上のように構成される出力制御回路１６０は、チェックタイミング記憶ブロック１４０の順序回路１４１の出力が、対応するスレーブコア１２０の動作状態をチェックするタイミングであることを示す場合、動作状態記憶ブロック１５０における対応する順序回路１５１が記憶する動作状態を検出し、該検出結果を検出結果記憶ブロック１８０の対応する順序回路１８１に出力するとともに、動作状態設定ブロック１７０における対応する順序回路１７１を初期状態にする。一方、出力制御回路１６０は、該順序回路１４１の出力が、対応するスレーブコア１２０の動作状態をチェックするタイミングでないことを示す場合、対応する該順序回路１５１が記憶する動作状態を検出し、検出した該動作状態を動作状態設定ブロック１７０の対応する順序回路１７１に出力する。
【００６７】
図４は、本発明の一実施形態に係る半導体集積回路の各ブロックが記憶する動作状態の伝搬を説明するための図である。ここでは、スレーブコア１２０が３個（すなわち、ｎ＝３）である場合を例にして説明する。また、本例では、動作状態記憶ブロック１５０の順序回路１５１（１）乃至１５１（３）は、それぞれ、ある時点において、“１”、“０”、及び“１”を記憶しているものと仮定する。ここで、“１”は、例えば、対応するスレーブコア１２０が正常動作していることを示すフラグを出力していることを示し、“０”は、例えば、対応するスレーブコア１２０が正常に動作していることを示さないフラグを出力していることを示す。また、本例では、チェックタイミング記憶ブロック１４０の順序回路１４１（１）乃至１４１（３）がそれぞれ“０”、“１”及び“１”を記憶するものと仮定する。
【００６８】
まず、スレーブコア１２０（１）に関して、各コンポーネントが記憶する値の伝搬について説明する。チェックタイミング記憶ブロック１４０の順序回路１４１（１）が記憶する値が“０”である。また、動作状態記憶ブロック１５０の順序回路１５１（１）は、スレーブコア１２０（１）が正常に動作していることを示す“１”を記憶している。
【００６９】
出力制御回路１６０は、順序回路１４１（１）が記憶する“０”を受けてその論理否定“１”と、順序回路１５１（１）が記憶する“１”との論理積“１”を動作状態設定ブロック１７０の順序回路１７１（１）に出力するとともに、順序回路１４１（１）が記憶する“０”を受けて、スレーブコア１２０（１）が正常に動作していることを示す、順序回路１５１（１）が記憶する“１”の論理否定との論理積“０”を検出結果記憶ブロック１８０の順序回路１８１（１）に出力する。
【００７０】
これにより、動作状態設定ブロック１７０の順序回路１７１（１）は、出力制御回路１６０から出力される順序回路１５１（１）が記憶する“１”を記憶するとともに、該値をセット信号ＳＥＴ（１）として順序回路１５１（１）に出力することによって、順序回路１５１（１）が記憶する値を“１”に設定する。
【００７１】
一方、検出結果記憶ブロック１８０の順序回路１８１（１）は、出力制御回路１６０から出力される“０”を記憶し、スレーブコア１２０が正常に動作していることを示す信号を論理和回路１９０に出力する。
【００７２】
このように、チェックタイミング記憶ブロック１４０が、スレーブコア１２０の動作状態をチェックするタイミングでないことを示す値を記憶し、かつ、動作状態記憶ブロック１５０が、スレーブコア１２０が正常に動作していることを示す値を記憶している場合、動作状態記憶ブロック１５０が記憶していた値は、動作状態設定ブロック１７０に伝搬され、記憶される。また、動作状態設定ブロック１７０が記憶していた値は、該動作状態記憶ブロック１５０に設定される。
【００７３】
次に、スレーブコア１２０（２）に関して、各コンポーネントが記憶する値の伝搬について説明する。チェックタイミング記憶ブロック１４０の順序回路１４１（２）が記憶する値が“１”である。また、動作状態記憶ブロック１５０の順序回路１５１（２）は、スレーブコア１２０（２）が正常に動作していないことを示す“０”を記憶している。
【００７４】
出力制御回路１６０は、順序回路１４１（２）が記憶している“１”を受けてその論理否定“０”と、順序回路１５１（２）が記憶する“０”との論理積“０”を動作状態設定ブロック１７０の順序回路１７１（２）に出力するとともに、順序回路１４１（２）が記憶する“０”を受けて、スレーブコア１２０（２）が正常に動作していることを示さない、順序回路１５１（２）が記憶する“０”の論理否定との論理積“１”を検出結果記憶ブロック１８０の順序回路１８１（２）に出力する。
【００７５】
これにより、動作状態設定ブロック１７０の順序回路１７１（２）は、出力制御回路１６０から出力される順序回路１５１（２）が記憶する“０”を記憶するとともに、該値をセット信号ＳＥＴ（２）として順序回路１５１（２）に出力することによって、順序回路１５１（２）が記憶する値を“０”に設定する。
【００７６】
一方、検出結果記憶ブロック１８０の順序回路１８１（２）は、出力制御回路１６０から出力される“１”を記憶し、スレーブコア１２０が正常に動作していることを示さない信号“１”を論理和回路１９０に出力する。
【００７７】
このように、チェックタイミング記憶ブロック１４０が、スレーブコア１２０の動作状態をチェックするタイミングであることを示す値を記憶し、かつ、動作状態記憶ブロック１５０が、スレーブコア１２０が正常に動作していることを示さない値を記憶している場合、動作状態記憶ブロック１５０が記憶していた値は、動作状態設定ブロック１７０に伝播され、記憶される。また、動作状態記憶ブロック１５０が記憶していた値は、該動作状態設定ブロック１７０が記憶する値に設定される。
【００７８】
次に、スレーブコア１２０（３）に関して、各コンポーネントが記憶する値の伝搬について説明する。チェックタイミング記憶ブロック１４０の順序回路１４１（３）が記憶する値が“１”である。また、動作状態記憶ブロック１５０の順序回路１５１（３）は、スレーブコア１２０（１）が正常動作していることを示す“１”を記憶している。
【００７９】
出力制御回路１６０は、順序回路１４１（３）が記憶している“１”を受けてその論理否定“０”と、順序回路１５１（３）が記憶する“１”との論理積“０”を動作状態設定ブロック１７０の順序回路１７１（３）に出力するとともに、順序回路１４１（３）が記憶する“１”を受けて、スレーブコア１２０（３）が正常に動作していることを示す、順序回路１５１（３）が記憶する“１”の論理否定との論理積“０”を検出結果記憶ブロック１８０の順序回路１８１（３）に出力する。
【００８０】
これにより、動作状態設定ブロック１７０の順序回路１７１（３）は、出力制御回路１６０から出力される順序回路１５１（３）が記憶する“０”を記憶するとともに、該値をセット信号ＳＥＴ（３）として順序回路１５１（３）に出力することによって、順序回路１５１（３）が記憶する値を“０”に設定する。
【００８１】
一方、検出結果記憶ブロック１８０の順序回路１８１（３）は、出力制御回路１６０から出力される“０”を記憶し、スレーブコア１２０（３）が正常に動作していることを示さない信号“０”を論理和回路１９０に出力する。
【００８２】
このように、チェックタイミング記憶ブロック１４０が、スレーブコア１２０の動作状態をチェックするタイミングであることを示す値を記憶し、かつ、動作状態記憶ブロック１５０が、スレーブコア１２０が正常動作していることを示す値を記憶している場合、動作状態記憶ブロック１５０が記憶していた値は、動作状態設定ブロック１７０が記憶する動作状態を初期状態にして、動作状態記憶ブロック１５０に対する設定を解除するとともに、スレーブコア１２０が正常動作していることを示す“０”を検出結果記憶ブロック１８０に記憶する。
【００８３】
そして、検出結果記憶ブロック１８０は、順序回路１８１（１）乃至１８１（３）にそれぞれ“０”、“１”、及び“０”を記憶するとともに、該記憶した値を、クロックＣＬＫ＿Ｍに同期して、論理和回路１９０に出力する。論理和回路１９０は、検出結果記憶ブロック１８０から出力された値に対して論理和演算を行うため、割り込み信号ＩＮＴの値を正常に動作していないスレーブコア１２０があることを示す“１”として、該信号をマスターコア１１０に出力する。
【００８４】
図５は、本発明の一実施形態に係る半導体集積回路の動作を示すタイミングチャートである（なお、図４に示した設定状態とは異なる。）。同図において、クロックＣＬＫ＿Ｍが交番するタイミングは、時刻ｔ１乃至ｔ１０として示されている。
【００８５】
まず、スレーブコア１２０（１）に関する各コンポーネントの動作について説明する。時刻ｔ１で、スレーブコア１２０（１）は、正常に動作していることを示す“１”を動作状態記憶ブロック１５０の順序回路１５１（１）に出力している。
【００８６】
時刻ｔ２で、チェックタイミング記憶ブロック１４０の順序回路１４１（１）は、スレーブコア１２０（１）の動作状態をチェックするタイミングであることを示す“１”を、チェックパターン設定ブロック１３０の順序回路１３１（１）から受け、記憶する。また、動作状態記憶ブロック１５０の順序回路１５１（１）は、スレーブコア１２０（１）からスレーブコア１２０（１）が正常に動作していることを示す“１”を受け、該値を記憶する。
【００８７】
時刻ｔ３で、出力制御回路１６０は、順序回路１４１（１）からスレーブコア１２０（１）の動作状態をチェックするタイミングであることを示す“１”を受ける一方、順序回路１５１（１）からスレーブコア１２０（１）が正常に動作していることを示す“１”を受け、順序回路１８１（１）にスレーブコア１２０（１）が正常に動作していることを示す“０”を出力する。順序回路１８１（１）は、スレーブコア１２０が正常に動作していることを示す“０”を記憶する。また、スレーブコア１２０（１）は、正常に動作していることを示さない“０”を動作状態記憶ブロック１５０の順序回路１５１（１）に出力する。
【００８８】
時刻ｔ６で、チェックタイミング記憶ブロック１４０の順序回路１４１（１）は、スレーブコア１２０（１）の動作状態を確認するタイミングであることを示す“１”を、チェックパターン設定ブロック１３０の順序回路１３１（１）から受け、記憶する。また、動作状態記憶ブロック１５０の順序回路１５１（１）は、スレーブコア１２０（１）からスレーブコア１２０（１）が正常に動作していることを示さない“０”を受け、該値を記憶する。
【００８９】
時刻ｔ７で、出力制御回路１６０は、順序回路１４１（１）からスレーブコア１２０（１）の動作状態を確認するタイミングであることを示す“１”を受ける一方、順序回路１５１（１）からスレーブコア１２０（１）が正常に動作していることを示さない“０”を受け、論理演算の結果として、順序回路１８１（１）にスレーブコア１２０（１）が正常に動作していないことを示す“１”を出力する。順序回路１８１（１）は、スレーブコア１２０が正常に動作していないことを示す“１”を記憶する。
【００９０】
このように、半導体集積回路１００は、スレーブコア１２０（１）が正常に動作している場合、順序回路１８１（１）にスレーブコア１２０（１）が正常に動作していることを示す“０”を記憶する一方で、スレーブコア１２０（１）が正常に動作していない場合、順序回路１８１（１）にスレーブコア１２０（１）が正常に動作していないことを示す“１”を記憶する。
【００９１】
次に、スレーブコア１２０（２）に関する各コンポーネントの動作について説明する。時刻ｔ１で、スレーブコア１２０（２）は、正常に動作していることを示す“１”を動作状態記憶ブロック１５０の順序回路１５１（２）に出力している。
【００９２】
時刻ｔ２で、チェックタイミング記憶ブロック１４０の順序回路１４１（２）は、スレーブコア１２０（２）の動作状態を確認するタイミングであることを示す“１”を、チェックパターン設定ブロック１３０の順序回路１３１（２）から受け、記憶する。また、動作状態記憶ブロック１５０の順序回路１５１（２）は、スレーブコア１２０（２）からスレーブコア１２０（２）が正常に動作していることを示す“１”を受け、該値を記憶する。
【００９３】
時刻ｔ２と時刻ｔ３との間で、スレーブコア１２０（２）は、正常に動作していることを示さない“０”を動作状態記憶ブロック１５０の順序回路１５１（２）に出力する。
【００９４】
時刻ｔ３で、出力制御回路１６０は、順序回路１４１（２）からスレーブコア１２０（２）の動作状態を確認するタイミングであることを示す“１”を受ける一方、順序回路１５１（２）からスレーブコア１２０（２）が正常に動作していることを示す“１”を受け、順序回路１８１（２）にスレーブコア１２０（２）が正常に動作していることを示す“０”を出力する。順序回路１８１（２）は、スレーブコア１２０（２）が正常に動作していることを示す“０”を記憶する。
【００９５】
時刻ｔ３と時刻ｔ４との間で、スレーブコア１２０（２）は、正常に動作していることを示す“１”を動作状態記憶ブロック１５０の順序回路１５１（２）に出力する。
【００９６】
時刻ｔ４で、順序回路１４１（２）は、スレーブコア１２０（２）の動作状態を確認するタイミングでないことを示す“０”を、チェックパターン設定ブロック１３０の順序回路１３１（２）から受け、記憶する。また、時刻ｔ４で、順序回路１５１（２）は、スレーブコア１２０（２）からスレーブコア１２０（２）が正常に動作していることを示す“１”を受け、該値を記憶する。
【００９７】
時刻ｔ４と時刻ｔ５との間で、スレーブコア１２０（２）は、正常に動作していることを示さない“０”を動作状態記憶ブロック１５０の順序回路１５１（２）に出力する。
【００９８】
時刻ｔ５で、出力制御回路１６０は、順序回路１４１（２）からスレーブコア１２０（２）の動作状態を確認するタイミングでないことを示す“０”を、チェックパターン設定ブロック１３０の順序回路１３１（２）から受ける一方、順序回路１５１（２）からスレーブコア１２０（２）が正常に動作していることを示す“１”を受け、動作状態設定ブロック１７０の順序回路１７１（２）にスレーブコア１２０（２）が正常に動作していることを示す“１”を出力する。順序回路１７１（２）は、スレーブコア１２０（２）が正常に動作していることを示す“１”を記憶するとともに、順序回路１５１（２）が記憶する値をスレーブコア１２０（２）が正常に動作していることを示す“１”に設定する。また、順序回路１４１（２）は、スレーブコア１２０（２）の動作状態を確認するタイミングであることを示す“１”を、チェックパターン設定ブロック１３０の順序回路１３１（２）から受け、記憶する。
【００９９】
時刻ｔ６で、出力制御回路１６０は、順序回路１４１（２）からスレーブコア１２０（２）の動作状態を確認するタイミングであることを示す“１”を受ける一方、順序回路１５１（２）からスレーブコア１２０（２）が正常に動作していることを示す“１”を受け、順序回路１８１（２）にスレーブコア１２０（２）が正常に動作していることを示す“０”を出力する。順序回路１８１（２）は、スレーブコア１２０が正常に動作していることを示す“０”を記憶する。また、順序回路１７１（２）は、順序回路１５１（２）に対する順序回路１５１（２）が記憶する値の設定を初期化する。
【０１００】
時刻ｔ８で、順序回路１４１（２）は、スレーブコア１２０（２）の動作状態を確認するタイミングであることを示す“１”を、チェックパターン設定ブロック１３０の順序回路１３１（２）から受け、記憶する。また、時刻ｔ８で、順序回路１５１（２）は、スレーブコア１２０（２）からスレーブコア１２０（２）が正常に動作していることを示さない“０”を受け、該値を記憶する。
【０１０１】
時刻ｔ９で、出力制御回路１６０は、順序回路１４１（２）からスレーブコア１２０（２）の動作状態を確認するタイミングであることを示す“１”を受ける一方、順序回路１５１（２）からスレーブコア１２０（２）が正常に動作していることを示さない“０”を受け、順序回路１８１（２）にスレーブコア１２０（２）が正常に動作していないことを示す“１”を出力する。順序回路１８１（２）は、スレーブコア１２０が正常に動作していないことを示す“１”を記憶する。
【０１０２】
このように、半導体集積回路１００は、スレーブコア１２０（２）の動作状態をチェックするタイミングで、スレーブコア１２０（２）が正常に動作している場合、順序回路１８１（２）にスレーブコア１２０（２）が正常に動作していることを示す“１”を記憶する一方で、スレーブコア１２０（２）の動作状態をチェックしないタイミングにおいて、スレーブコア１２０（２）が正常に動作している場合、順序回路１７１（２）にスレーブコア１２０（２）が正常に動作していることを示す“１”を記憶するとともに、順序回路１５１（２）が記憶する値を、スレーブコア１２０（２）が正常に動作していることを示す“１”に設定する。これに対して、半導体集積回路１００は、スレーブコア１２０（１）が正常に動作していない場合、順序回路１８１（１）にスレーブコア１２０（１）が正常に動作していないことを示す“１”を記憶する。
【０１０３】
図６は、本発明の一実施形態に係る半導体集積回路の動作を示すフローチャートである。同図に示すように、半導体集積回路１００は、まず、チェックパターン設定ブロック１３０に、スレーブコア１２０（１）乃至１２０（ｎ）のそれぞれの動作状態をチェックするタイミングを示すチェックタイミングパターンを設定する（Ｓ６０１）。
【０１０４】
次に、半導体集積回路１００は、チェックタイミング記憶ブロック１４０の順序回路１４１が記憶する値、すなわち、チェックタイミングパターンに従ってチェックすべきタイミングであるか否かをチェックするする（Ｓ６０２）。半導体集積回路１００は、順序回路１４１の記憶する値が、対応するスレーブコア１２０の動作状態をチェックするタイミングであることを示す場合（Ｓ６０３のＹｅｓ）、動作状態記憶ブロック１５０の順序回路１５１が記憶する対応するスレーブコア１２０の動作状態を検出し（Ｓ６０４）、該検出結果を検出結果記憶ブロック１８０の順序回路１８１に記憶する（Ｓ６０５）。また、半導体集積回路１００は、動作状態設定ブロック１７０の対応する順序回路１７１の状態を初期化する（Ｓ６０６）。半導体集積回路１００は、順序回路１８１が記憶する動作状態をマスターコア１１０に出力し（Ｓ６０７）、ステップＳ６１２の処理に進む。
【０１０５】
これに対して、半導体集積回路１００は、順序回路１４１が記憶する値が対応するスレーブコア１２０の動作状態をチェックするタイミングでないことを示す場合（Ｓ６０３のＮｏ）、動作状態記憶ブロック１５０の順序回路１５１が記憶する対応するスレーブコア１２０の動作状態を確認する（Ｓ６０８）。半導体集積回路１００は、順序回路１５１が記憶する値が、対応するスレーブコア１２０が正常に動作していることを示す場合（Ｓ６０９のＹｅｓ）、動作状態設定ブロック１７０の対応する順序回路１７１に順序回路１５１の状態を記憶し（Ｓ６１０）、順序回路１５１が記憶する動作状態を順序回路１７１が記憶する動作状態に設定し（Ｓ６１１）、ステップＳ６１２の処理に進む。一方、半導体集積回路１００は、順序回路１５１が記憶する値が、対応するスレーブコア１２０が正常に動作していることを示さない場合（Ｓ６０９のＮｏ）、ステップＳ６１２の処理に進む。
【０１０６】
半導体集積回路１００は、マスターコア１１０によってスレーブコア１２０の動作を停止させるか或いは再起動させる（Ｓ６１２）。
【０１０７】
なお、同図中、理解の容易のため、半導体集積回路１００の処理の流れをステップごとに逐次的に説明したが、各ステップは、適宜、並列的に実行されうる。
【０１０８】
図７は、本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。同図に示すように、本実施形態に係る半導体集積回路１００Ａは、動作状態記憶ブロック１５０の代わりに動作状態記憶ブロック１５０Ａを含んで構成される以外は、半導体集積回路１００と同じである。なお、同図では、半導体集積回路１００と同じコンポーネントについては、同じ符号が付され、したがって、その説明を適宜省略する。
【０１０９】
動作状態記憶ブロック１５０Ａは、順序回路１５１の代わりに、順序回路１５１Ａ及び論理和回路１５２を含んで構成される以外は、動作状態記憶ブロック１５０と同じである。すなわち、動作状態記憶ブロック１５０Ａは、順序回路１５１Ａ及び論理和回路１５２によって、スレーブコア１２０から出力されるフラグが示す動作状態を記憶し、該記憶した動作状態を出力制御回路１６０に出力する。また、動作記憶状態ブロック１５０Ａは、動作状態設定ブロック１７０からセット信号ＳＥＴが出力される場合、該論理和回路１５２の出力をセット信号ＳＥＴが示す動作状態とする。
【０１１０】
順序回路１５１Ａは、例えばＤ型フリップフロップであるが、これに限られない。順序回路１５１Ａは、クロックＣＬＫ＿Ｍに基づいて、対応するスレーブコア１２０から出力されるフラグが示す動作状態を記憶し、該記憶した動作状態を対応する論理和回路１５２に出力する。
【０１１１】
論理和回路１５２は、対応する順序回路１５１Ａからの出力と、動作状態設定ブロック１７０の対応する順序回路１７１からの出力とに対して論理和演算を行い、該演算の結果を出力制御回路１６０に出力する。
【０１１２】
以上のように構成される半導体集積回路１００Ａは、セット機能を必要としないＤ型フリップフロップと、論理和回路とからなる単純な構成によって、動作状態記憶ブロック１５０Ａを実現でき、半導体集積回路１００と同様の機能を実現することができる。
【０１１３】
図８は、本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。同図に示すように、半導体集積回路１００Ｃは、半導体集積回路１００に対して異常状態記憶ブロック１０００がさらに追加されることによって構成される。なお、同図には、マスターコア１１０、チェックパターン設定ブロック１３０及びスレーブコア１２０（１）乃至１２０（ｎ）が図示されていないが、半導体集積回路１００Ｃは、該コンポーネントを含むものとする。また、同図では、半導体集積回路１００と同じコンポーネントについては、同じ符号が付され、したがって、その説明を適宜省略する。
【０１１４】
異常状態記憶ブロック１０００は、割り込み信号ＩＮＴに従って、検出結果記憶ブロック１８０の出力が示す動作状態を記憶する。具体的には、異常状態記憶ブロック１０００は、割り込み信号ＩＮＴがスレーブコア１２０（１）乃至１２０（ｎ）のうちいずれかが正常に動作していないことを示す場合に、検出結果記憶ブロック１８０が記憶し出力するスレーブコア１２０（１）乃至１２０（ｎ）の動作状態を記憶し続ける。異常状態記憶ブロック１０００は、異常状態検出回路１０１０と、バッファ回路１０２０（１）乃至１０２０（ｎ）と、順序回路１０３０（１）乃至１０３０（ｎ）とを含んで構成される。
【０１１５】
異常状態検出回路１０１０は、論理和回路１９０から出力される割り込み信号ＩＮＴがスレーブコア１２０（１）乃至１２０（ｎ）のいずれかが正常に動作していないことを示す場合、論理和回路１９０及び順序回路１０１３の出力に対して論理和演算を行い、該演算結果を出力する論理和回路１０１１と、論理和回路１０１１の出力に対して所定の遅延を与えるバッファ回路１０１２と、クロックＣＬＫ＿Ｍに基づいてバッファ回路１０１２からの出力を論理和回路１０１１及びバッファ回路１０２０に出力する順序回路１０１３との環状構造によって、該割り込み信号ＩＮＴが示す値を記憶し続けるとともに該記憶した値をバッファ回路１０２０（１）乃至１０２０（ｎ）に出力する。また、異常状態検出回路１０１０は、マスターコア１１０から出力されるクリア信号ＣＬＲを受けて、バッファ回路１０２０によって該記憶した値を初期状態にする。つまり、異常状態検出回路１０１０は、割り込み信号ＩＮＴがスレーブコア１２０（１）乃至１２０（ｎ）が正常に動作していないことを示す場合、クリア信号ＣＬＲによって初期状態にされるまで、該割り込み信号ＩＮＴが示す値を記憶し続ける。
【０１１６】
バッファ回路１０２０は、異常状態検出回路１０１０から出力される信号がスレーブコア１２０（１）乃至１２０（ｎ）のいずれかが正常に動作していないことを示す場合、検出結果記憶ブロック１８０の対応する順序回路１８１から出力される信号に対して所定の遅延を与え、該遅延を与えた信号を対応する順序回路１０３０に出力する。一方、バッファ回路１０２０は、異常状態検出回路１０１０から出力される信号がスレーブコア１２０（１）乃至１２０（ｎ）のいずれも正常に動作していることを示す場合、対応する順序回路１０３０への信号の出力を停止する。また、バッファ回路１０２０は、マスターコア１１０からクリア信号ＣＬＲが出力される場合、スレーブコア１２０（１）乃至１２０（ｎ）のいずれも正常に動作していることを示す“０”を対応する順序回路１０３０に出力する。つまり、バッファ回路１０２０は、対応する順序回路１８１からの出力と、異常状態検回路１０１０からの出力と、クリア信号ＣＬＲに対する論理否定とに対して論理積演算を行い、該演算の結果を対応する順序回路１０１３に出力する。
【０１１７】
順序回路１０３０は、例えばＤ型フリップフロップであるが、これに限られない。順序回路１０３０は、クロックＣＬＫ＿Ｍに基づいて、対応するバッファ回路１０２０からの出力が示す動作状態を記憶し、該記憶した動作状態をステータス信号ＳＴとしてマスターコア１１０に出力する。
【０１１８】
以上のように構成される半導体集積回路１００Ｃは、異常状態記憶ブロック１０００により、スレーブコア１２０（１）乃至１２０（ｎ）のいずれかが正常に動作していない場合、どのスレーブコア１２０が正常に動作していないかに関する情報を記憶し続けることができる。したがって、半導体集積回路１００Ｃは、正常に動作していないスレーブコア１２０の動作状態に関する情報をマスターコア１１０がクリア信号ＣＬＲを出力するまで利用し続けることができる。
【０１１９】
図９は、本発明の一実施形態に係るチェックタイミング設定ブロックのチェックパターン設定回路の構成の他の例を示す図である。同図に示すように、本実施形態に係るチェックパタ−ン設定回路１３１Ｄ（ｉ）は、順序回路１３１２（１）乃至１３１２（ｍ）と、否定排他的論理和回路１３１３（１）乃至１３１３（ｍ）と、論理積回路１３１４と、カウンタ１３１５とを含んで構成される。なお、本実施形態に係るチェックパターン設定回路１３１Ｄ（ｉ）は、セットイネーブル信号ＳＥＴ＿ＥＮが入力されることを必要としない。
【０１２０】
順序回路１３１２は、クロックＣＬＫ＿Ｍに基づいて、マスターコア１１０から出力される値信号Ｖ（ｉ）が示す値を記憶し、該記憶した値を対応する否定排他的論理和回路１３１３に出力する。なお、順序回路１３１２（１）乃至１３１２（ｍ）のそれぞれが記憶する値は、カウンタ１３１５がカウントするカウント値の上限の各桁に対応する。
【０１２１】
否定排他的論理和回路１３１３は、対応する順序回路１３１２からの出力と、カウンタ１３１５の対応する桁のカウント値算出回路１３５０からの出力とが一致する場合、値が一致することを示す信号を論理積回路１３１４に出力する一方で、対応する順序回路１３１２からの出力と、カウンタ１３１５の対応する桁のカウント値算出回路１３５０からの出力とが一致しない場合、値が一致しないことを示す信号を論理積回路１３１４に出力する。つまり、否定排他的論理和回路１３１３は、対応する順序回路１３１２からの出力と、カウンタ１３１５の対応する桁のカウント値算出回路１３５０からの出力とに対して否定排他的論理和演算を行い、該演算の結果を論理積回路１３１４に出力する。
【０１２２】
論理積回路１３１４は、順序回路１３１２（１）乃至１３１２（ｍ）が記憶する値と、カウンタ１３１５が出力するカウント値とが一致した場合に、該一致を示す信号をカウンタ１３１５とチェックタイミング記憶ブロック１４０とに出力する。つまり、論理積回路１３１４は、各否定排他的論理和回路１３１３（１）乃至１３１３（ｍ）の出力に対して論理積演算を行い、該演算の結果をカウンタ１３１５と、チェックタイミング記憶ブロック１４０とに出力する。
【０１２３】
カウンタ１３１５は、クロックＣＬＫ＿Ｍに基づいて、順序回路１３１２（１）乃至１３１２（ｍ）が記憶する値までカウントを行い、該順序回路１３１２が記憶する値にカウント値が達したらカウント値を初期状態にするという動作を繰り返す。カウンタ１３１５は、カウント値の各桁の値を算出するカウント値算出部１３５０（１）乃至１３５０（ｍ）を含んで構成される。
【０１２４】
カウント値算出部１３５０は、カウンタ１３１５がカウントするカウント値における対応する桁の値を算出する。具体的には、カウント値算出部１３５０は、後段の回路に出力する信号に対して論理否定演算を行った結果と、前段のカウント値算出部１３５０から出力される信号とに対して排他的論理和演算を行い、該演算の結果を後段のカウント値算出部１３５０と、対応する否定排他的論理和回路１３１３とに出力することによって、カウント値の対応する桁の値を算出する。カウント値算出部１３５０は、例えば排他的論理和回路１３５１と、バッファ回路１３５２と、順序回路１３５３とを含んで構成される。なお、最前段のカウント値算出部１３５０には、前段のカウント値算出部１３５０から出力される信号の代わりに、例えば接地電位と同じ電位を有する接地信号ＧＮＤが入力される。
【０１２５】
排他的論理和回路１３５１は、前段の回路から出力される信号と、対応する順序回路１３５３の出力端子Ｑから出力される信号に対して論理否定演算を行った信号を出力する出力端子ＱＢから出力される信号とに対して排他的論理和演算を行い、該演算の結果を対応するバッファ回路１３５２に出力する。
【０１２６】
バッファ回路１３５２は、対応する排他的論理和回路１３５１から出力される信号に対して所定の遅延を与え、該遅延を与えた信号を対応する順序回路１３５３のデータ端子Ｄに出力する。また、バッファ回路１３５２は、順序回路１３１２（１）乃至１３１２（ｍ）が記憶する値と、カウンタ１３１５が出力するカウント値の各桁とが全て一致することを論理積回路１３１４から出力される信号が示す場合、対応する順序回路１３５３を初期状態にする。つまり、バッファ回路１３５２は、対応する排他的論理和回路１３５１からの出力と、論理積回路１３１４からの出力に対する論理否定とに対して論理積演算を行い、該演算の結果を対応する順序回路１３５３に出力する。
【０１２７】
順序回路１３５３は、例えばＤ型フリップフロップであるが、これに限られない。順序回路１３５３は、クロックＣＬＫ＿Ｍに基づいて、対応するバッファ回路１３５２から出力される信号を対応する否定排他的論理和回路１３１３と、後段のカウント値算出回路１３５０とに出力するとともに、該信号に対して論理否定演算を行った結果を対応する排他的論理和回路１３５１に出力する。
【０１２８】
以上のように構成されるチェックパターン設定回路１３１Ｄ（ｉ）は、順序回路１３１２（１）乃至１３１２（ｍ）がカウント値の各桁に対応する値を記憶するため、チェックパターン設定回路１３１と比べて、少ない素子数で高精度にチェックタイミングパターンを設定することができる。
【０１２９】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
【０１３０】
また、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
【０１３１】
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ（技術的事項）を適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。
【産業上の利用可能性】
【０１３２】
本発明は、半導体集積回路の分野に広く利用することができる。
【符号の説明】
【０１３３】
１００…半導体集積回路
１１０…マスターコア
１２０…スレーブコア
１３０…チェックパターン設定ブロック
１３１…チェックパターン設定回路
１３１１…選択回路
１３１２…順序回路
１３１３…否定排他的論理和回路
１３１４…論理積回路
１３１５…カウンタ
１３５０…カウント値算出回路
１３５１…排他的論理和回路
１３５２…バッファ回路
１３５３…順序回路
１４０…チェックタイミング記憶ブロック
１４１…順序回路
１５０…動作状態記憶ブロック
１５１…順序回路
１５２…論理和回路
１６０…出力制御回路
１６１，１６２…論理積回路
１７０…動作状態設定ブロック
１７１…順序回路
１８０…検出結果記憶ブロック
１８１…順序回路
１９０…論理和回路
１０００…異常状態記憶ブロック
１０１０…異常状態検出回路
１０１１…論理和回路
１０１２…バッファ回路
１０１３…順序回路
１０２０…バッファ回路
１０３０…順序回路
【図１】
0006721340.tif 000002
【図２】
0006721340.tif 000003
【図３】
0006721340.tif 000004
【図４】
0006721340.tif 000005
【図５】
0006721340.tif 000006
【図６】
0006721340.tif 000007
【図７】
0006721340.tif 000008
【図８】
0006721340.tif 000009
【図９】
0006721340.tif 000010