JP6721340B2 - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP6721340B2
JP6721340B2 JP2016004376A JP2016004376A JP6721340B2 JP 6721340 B2 JP6721340 B2 JP 6721340B2 JP 2016004376 A JP2016004376 A JP 2016004376A JP 2016004376 A JP2016004376 A JP 2016004376A JP 6721340 B2 JP6721340 B2 JP 6721340B2
Authority
JP
Japan
Prior art keywords
output
slave
operation state
circuit
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016004376A
Other languages
English (en)
Other versions
JP2017126153A (ja
Inventor
小山 学
学 小山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MegaChips Corp filed Critical MegaChips Corp
Priority to JP2016004376A priority Critical patent/JP6721340B2/ja
Publication of JP2017126153A publication Critical patent/JP2017126153A/ja
Application granted granted Critical
Publication of JP6721340B2 publication Critical patent/JP6721340B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、半導体集積回路に関し、特に、マスター/スレーブ型コア構成を備える半導体集積回路に関する。
マルチプロセッサシステムは、1つのコアのみを備えるシングルプロセッサシステムと比べて、複数のコアによって異なるデータや命令を並列に処理するため、システム全体の処理能力を向上させることができる点で有利である。
マルチプロセッサシステムの構成の一例として、1つのコアをマスターコアに設定する一方で、その他のコアをスレーブコアに設定して、マスターコアによって複数のスレーブコアを制御するマスター/スレーブ型コア構成がある。このようなマスター/スレーブ型コア構成のマルチプロセッサシステムでは、典型的には、複数のスレーブコアのそれぞれが正常に動作しているか否かの動作状態を定期的にマスターコアに通知するための機構が設けられる。マスターコアは、異常を示す動作状態が通知された場合には、例えば、実行している処理を一旦停止し、マルチプロセッサシステムの復旧を行う。
例えば、下記特許文献1は、スレーブコアごとに、プログラムが動作していることを示す動作状態情報を更新しながら記憶する動作状態記憶手段と、動作状態記憶手段に動作状態情報が記憶されている場合、ウォッチドッグタイマをリセットするリセット手段と、スレーブコアごとに、低電力モードであることを示す低電力モード状態情報を記憶するモード記憶手段とを備えるウォッチドッグタイマ監視装置を開示する。
特開2011−2993号公報
上述した特許文献1に開示されるウォッチドッグタイマ監視装置は、各スレーブコアがウォッチドッグタイマのタイムアウト周期を共有するため、各スレーブコアのうち監視周期が最長のものの周期にタイムアウト周期を合わせる必要があった。したがって、このようなウォッチドッグタイマ監視装置は、各スレーブコアに応じた適切な周期で動作状態のチェックを行うことができなかった。
このため、上述したウォッチドッグタイマ監視装置は、どのスレーブコアでエラーが発生したかということをチェックすることができず、マルチプロセッサシステムを復旧させるためには、マルチプロセッサシステム全体を再起動しなければならなかった。
そこで、本発明は、マスター/スレーブ型コア構成を備える半導体集積回路であって、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックすることができる半導体集積回路、及びこのような半導体集積回路における各スレーブコアの動作状態をチェックする方法を提供することを目的とする。
また、本発明は、マスター/スレーブ型コア構成を備える半導体集積回路であって、正常に動作していないスレーブコアを検出することができる半導体集積回路、及びスレーブコアを検出する方法を提供することを目的とする。
また、本発明は、マスター/スレーブ型コア構成を備える半導体集積回路であって、正常に動作していないスレーブコアが検出された場合に、半導体集積回路全体を再起動させることなく、正常に動作していないスレーブコアのみを切り離し又は再起動させることによって、実行中の処理を続行させることができる半導体集積回路、及びこれの制御方法を提供することを目的とする。
上記課題を解決するための本発明は、以下の技術的特徴乃至は発明特定事項を含んで構成される。
すなわち、ある観点に従う本発明は、第1のクロックで動作するマスターコアと、前記第1のクロックと非同期関係にある第2のクロックで動作する複数のスレーブコアとを含む半導体集積回路である。前記半導体集積回路は、前記第2のクロックに基づく所定の周期に従って前記複数のスレーブコアのいずれかから出力される動作状態を、動作状態記憶ブロックに保持するとともに、前記第1のクロックに基づくチェックタイミングになるまで、動作状態設定ブロックに別に保持しておく。前記半導体集積回路は、前記第1のクロックに基づくにチェックタイミングになったとき、前記動作状態設定ブロックに保持している前記動作状態を前記動作状態記憶ブロックに戻して検出結果として前記マスターコアに通知するとともに、前記動作状態設定ブロックを初期化する。一方、前記半導体集積回路は、前記第1のクロックに基づくチェックタイミングになったとき、前記動作状態設定ブロックが初期化されている場合には、該チェックタイミングにおいて前記動作状態記憶ブロックに記憶されている前記動作状態を検出結果として前記マスターコアに通知する。前記マスターコアは、前記通知された検出結果に基づいて、前記複数のスレーブコアに対して制御を行う。
このように、前記複数のスレーブコアのいずれかから、前記第2のクロックに依存して、出力される動作状態は、前記動作状態設定ブロックにより退避されて一時的に保持され、前記第1のクロックに基づくチェックタイミングで読み出され、出力されることになる。つまり、あるチェックタイミングよりも早いタイミングでエラー動作状態が出力された場合であっても、次のエラー動作状態まで一時的に保持され、該チェックタイミングになったときに、該エラー動作状態が出力されることになる。
また、ある観点に従う本発明は、第1のクロックに基づいて動作するマスターコアと、前記第1のクロックと非同期関係にある少なくとも1つの第2のクロックに基づいて動作し、前記第2のクロックに基づく所定の周期で正常に動作しているか否かを示す動作状態を出力する複数のスレーブコアと、前記第1のクロックに基づいて動作し、前記複数のスレーブコアのそれぞれから出力される前記動作状態を、チェックタイミングパターンに従うチェックタイミングで、検出する状態検出回路と、を備える半導体集積回路である。前記状態検出回路は、前記複数のスレーブコアのうちの一のスレーブコアが、正常動作していることを示す動作状態を前記所定の周期で出力している場合に、前記一のスレーブコアに対応する前記チェックタイミングパターンに従うチェックタイミングになるまで、前記正常動作していることを示す動作状態を退避させるために一時的に記憶する。前記状態検出回路は、前記チェックタイミングパターンに従うチェックタイミングになったとき、前記退避させ記憶されている正常動作していることを示す動作状態を検出結果として出力するとともに、該記憶されている動作状態を初期状態にする。一方、前記状態検出回路は、前記チェックタイミングパターンに従うチェックタイミングになったとき、該記憶されている動作状態が前記初期状態にある場合、前記一のスレーブコアから出力される前記動作状態を検出結果として退避させることなく出力する。
これにより、半導体集積回路は、第1のクロック及び第2のクロックが非同期関係にある場合でも、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックするとともに、正常に動作していないスレーブコアを検出することができるようになる。
ここで、前記マスターコアは、前記複数のスレーブコアのそれぞれに対する前記チェックタイミングパターンを設定し得る。
これにより、半導体集積回路は、複数のスレーブコアのそれぞれに対応するチェックタイミングパターンに従って、複数のスレーブコアのそれぞれに対する適切な周期を設定することができるようになる。
また、前記マスターコアは、前記状態検出回路から前記一のスレーブコアが正常動作していないことを示す動作状態が出力される場合、前記一のスレーブコアを停止させ又は再起動するように制御し得る。
これにより、半導体集積回路は、正常に動作していないスレーブコアのみを停止させて切り離し又は再起動させることができるようになるため、半導体集積回路全体の再起動を回避することができるようになり、耐障害性を得ることができるようになる。
また、前記第2のクロックは、前記第1のクロックの周波数よりも低い周波数で交番し得る。
また、複数の前記第2のクロックのそれぞれは、互いに非同期関係にあり、前記複数のスレーブコアのそれぞれは、対応する前記第2のクロックに基づいて動作し得る。
これにより、半導体集積回路は、複数の第2のクロックのそれぞれが互いに非同期関係にある場合においても、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックするとともに、正常に動作していないスレーブコアを検出することができるようになる。
また、前記状態検出回路は、前記チェックタイミングパターンを記憶するチェックパターン設定ブロックと、前記複数のスレーブコアから出力される前記動作状態をそれぞれ記憶する動作状態記憶ブロックと、前記チェックタイミングパターンに従う前記チェックタイミングになるまで前記動作状態を記憶する動作状態設定ブロックと、前記動作状態記憶ブロックから出力される前記動作状態の出力先を制御する出力制御回路と、を含む。前記出力制御回路は、前記動作状態記憶ブロックが、前記一のスレーブコアが正常動作していることを示す動作状態を記憶している場合に、前記一のスレーブコアに対応する前記チェックタイミングパターンに従うチェックタイミングになるまで、前記正常動作していることを示す動作状態を前記動作状態設定ブロックに出力する。前記出力制御回路は、前記チェックタイミングパターンに従うチェックタイミングになったとき、前記動作状態記憶ブロックから出力される前記動作状態を検出結果として出力し得る。
これにより、半導体集積回路は、チェックタイミングパターンに従うチェックタイミングに従って、動作状態記憶ブロックが記憶するスレーブコアの動作状態の出力先を制御することができるようになる。
さらに、前記動作状態設定ブロックは、前記出力制御回路から前記一のスレーブコアが正常動作していることを示す動作状態が出力される場合、前記正常動作していることを示す動作状態を記憶するとともに、前記動作状態記憶ブロックが記憶する前記動作状態を前記正常動作していることを示す動作状態に設定する。前記動作状態設定ブロックは、前記出力制御回路から前記出力制御回路から前記一のスレーブコアが正常動作していることを示す動作状態が出力されない場合、記憶した前記正常動作していることを示す動作状態を初期状態にする。また、前記動作状態記憶ブロックは、前記動作状態設定ブロックによって前記正常動作していることを示す動作状態に設定される場合、前記正常動作していることを示す動作状態を記憶し得る。
これにより、半導体集積回路は、出力制御回路からの出力によって、動作状態設定ブロックにスレーブコアが正常動作していることを示す動作状態を記憶させるとともに該動作状態を動作状態記憶ブロックに記憶させるか、又は動作状態設定ブロックが記憶した動作状態を初期状態にすることができるようになる。
また、前記チェックパターン設定ブロックは、循環型シフトレジスタを含み、前記循環型シフトレジスタは、前記マスターコアから出力される前記チェックタイミングパターンに従う値を記憶するように構成されるとともに、前記第1のクロックに従って、前記チェックタイミングパターンに従う値を順次に出力するように構成され得る。
これにより、半導体集積回路は、単純な構成でチェックタイミングパターンを設定することができるようになる。
また、前記チェックパターン設定ブロックは、カウンタを含み、前記チェックパターン設定ブロックは、前記カウンタのカウント値に従って、前記チェックタイミングパターンに従うチェックタイミングを決定し得る。
これにより、半導体集積回路は、少ない素子数で高精度にチェックタイミングパターンを設定することができるようになる。
また、前記状態検出回路から出力される前記動作状態を記憶する異常状態記憶ブロックをさらに備える。前記異常状態記憶ブロックは、前記状態検出回路から前記複数のスレーブコアのうちいずれかが正常に動作していないことを示す動作状態が出力される場合に、再び前記状態検出回路から前記複数のスレーブコアのうちいずれかが正常に動作していないことを示す動作状態が出力されるまで前記状態検出回路から出力される前記動作状態を記憶し得る。
これにより、半導体集積回路は、正常に動作していないスレーブコアの動作状態に関する情報を再び正常に動作していないスレーブコアの動作状態が出力されるまで利用し続けることができるようになる。
さらに、別の観点に従う本発明は、第1のクロックと非同期の関係にある少なくとも1つの第2のクロックに基づいて動作する複数のスレーブコアのそれぞれから出力される動作状態を、チェックタイミングパターンに従うチェックタイミングで検出し、該検出結果を、前記第1のクロックに基づいて動作するマスターコアに出力する半導体集積回路である。前記スレーブコアは、前記第2のクロックに基づく所定の周期で正常に動作しているか否かを示す動作状態を出力する。前記半導体集積回路は、前記複数のスレーブコアのうちの一のスレーブコアが、正常動作していることを示す動作状態を前記所定の周期で出力している場合に、前記一のスレーブコアに対応する前記チェックタイミングパターンに従うチェックタイミングになるまで、前記正常動作していることを示す動作状態を退避させるために一時的に記憶する。前記半導体集積回路は、前記チェックタイミングパターンに従うチェックタイミングになったとき、前記退避させ記憶されている前記正常動作していることを示す動作状態を検出結果として出力するとともに、該記憶されている動作状態を初期状態にする。一方、前記半導体集積回路は、前記チェックタイミングパターンに従うチェックタイミングになったとき、該記憶されている動作状態が前記初期状態にある場合、前記一のスレーブコアから出力される前記動作状態を検出結果として退避させることなく前記マスターコアに出力する。
これにより、半導体集積回路は、第1のクロック及び第2のクロックが非同期関係にある場合でも、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックするとともに、正常に動作していないスレーブコアを検出することができるようになる。
さらに、別の観点に従う本発明は、第1のクロックに基づいて動作するマスターコアと、前記第1のクロックと非同期関係にある少なくとも1つの第2のクロックに基づいて動作する複数のスレーブコアとを備える半導体集積回路において、前記複数のスレーブコアのそれぞれの動作状態をチェックする方法である。かかる方法は、前記複数のスレーブコアのそれぞれの動作状態をチェックするチェックタイミングパターンを設定することと、前記複数のスレーブコアのうち一のスレーブコアに対応するチェックタイミングパターンに従うチェックタイミングであるか否かを判断することと、前記チェックタイミングパターンに従うチェックタイミングでないと判断する場合、前記一のスレーブコアが正常動作していることを示す動作状態を出力しているか否かをチェックし、前記一のスレーブコアが前記正常動作していることを示す動作状態を出力している場合、前記正常動作していることを示す動作状態を記憶することと、前記チェックタイミングパターンに従うチェックタイミングであると判断する場合、該チェックタイミングでの記憶されている前記正常動作していることを示す動作状態をチェック結果として出力するとともに、該記憶されている動作状態を初期状態にする一方、前記チェックタイミングパターンに従うチェックタイミングであると判断する場合、該記憶されている動作状態が前記初期状態にある場合、前記一のスレーブコアから出力される前記動作状態をチェック結果として出力することと、を含む。
これにより、半導体集積回路は、第1のクロック及び第2のクロックが非同期関係にある場合でも、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックするとともに、正常に動作していないスレーブコアを検出することができるようになる。
本発明によれば、半導体集積回路は、各スレーブコアに応じた適切な周期で、各スレーブコアの動作状態をチェックすることができるようになる。
また、本発明によれば、半導体集積回路は、正常に動作していないスレーブコアを検出することができるようになる。
また、本発明によれば、正常に動作していないスレーブコアのみを切り離し又は再起動させることができるので、半導体集積回路全体の再起動を回避することができるようになり、したがって、耐障害性を有する半導体集積回路が得られるようになる。
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
本発明の一実施形態に係る半導体集積回路の概略構成を示す図である。 本発明の一実施形態に係るチェックパターン設定回路の構成の一例を示す図である。 本発明の一実施形態に係る出力制御回路の構成の一例を示す図である。 本発明の一実施形態に係る半導体集積回路の各ブロックが記憶する動作状態の伝搬を説明するための図である。 本発明の一実施形態に係る半導体集積回路の動作を示すタイミングチャートである。 本発明の一実施形態に係る半導体集積回路の動作を示すフローチャートである。 本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。 本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。 本発明の一実施形態に係るチェックタイミング設定ブロックのチェックパターン設定回路の構成の他の例を示す図である。
次に、本発明の実施の形態について、図面を参照しつつ説明する。以下の図の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図は、模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
図1は、本発明の一実施形態に係る半導体集積回路の概略構成を示す図である。同図に示すように、本実施形態に係る半導体集積回路100は、マスターコア110と、スレーブコア120(1)乃至120(n)とからなるマスター/スレーブ型コア構成を備えたマルチプロセッサシステムである。本実施形態に係る半導体集積回路100は、また、チェックパターン設定ブロック130と、チェックタイミング記憶ブロック140と、動作状態記憶ブロック150と、出力制御回路160と、動作状態設定ブロック170と、検出結果記憶ブロック180と、論理和回路190とを含んで構成される。これらのコンポーネントは、例えば、ASICのような1つの半導体集積回路として構成される。
マスターコア110は、例えば図示しないPLL(Phase Locked Loop)から供給されるクロックCLK_Mに従って、各スレーブコア120を制御しながら、所定の処理を実行するマイクロプロセッサである。本実施形態では、マスターコア110は、スレーブコア120(1)乃至120(n)の動作状態をチェックするタイミングを示すタイミングパターン(以下「チェックタイミングパターン」という。)をチェックパターン設定ブロック130に設定する。具体的には、マスターコア110は、チェックタイミングパターンの設定を行うために、イネーブル状態(例えば“1”)のセットイネーブル信号SET_ENをチェックパターン設定ブロック130に出力し、チェックパターン設定ブロック130をイネーブル状態にして、スレーブコア120(1)乃至120(n)のそれぞれに対応する値信号V(1)乃至V(n)をチェックパターン設定ブロック130に、クロックCLK_Mの周期に従って、出力する。これによって、チェックパターン設定ブロック130には、スレーブコア120(1)乃至120(n)の動作状態をそれぞれチェックするためのタイミングが設定される。
また、マスターコア110は、後述する半導体集積回路100のチェック機構によって正常に動作していないスレーブコア120が検出された場合に、実行中の処理に支障を来さないよう、少なくとも該正常に動作していないスレーブコア120の制御を行う。具体的には、マスターコア110は、スレーブコア120(1)乃至120(n)のいずれかが正常に動作していないことを示す割り込み信号INTを論理和回路190から受け取ると、通常モードから割り込み処理モードに移行し、正常に動作していないスレーブコア120の動作を停止させてこれを切り離すように制御を行う。或いは、マスターコア110は、該割り込みモードにおいて、該スレーブコア120の再起動するように制御を行っても良い。マスターコア110は、このような制御を行った後、通常モードに復帰する。
スレーブコア120は、マスターコア110の制御の下、クロックCLK_Mと非同期の関係にありクロックCLK_Mの周波数以下の周波数で交番するクロックCLK_Sに基づいて動作するマイクロプロセッサである。スレーブコア120(1)乃至120(n)のそれぞれに入力されるクロックCLK_S(1)乃至CLK_S(n)は、互いに非同期の関係にあっても良いし、異なる周波数でも良い。スレーブコア120(1)乃至120(n)のそれぞれは、正常に動作している間は、所定の周期で正常に動作していることを示す値に変化するフラグを動作状態記憶ブロック150に出力する。
具体的には、スレーブコア120(1)乃至120(n)のそれぞれは、例えば、図示しないカウンタを有し、スレーブコア120が正常に動作している間、クロックCLK_Sの交番数をカウントする。スレーブコア120は、該カウンタのカウント値が所定の値に達していない場合、スレーブコア120が正常に動作していることを示さないフラグを動作状態記憶ブロック150に出力する。一方、スレーブコア120は、該カウント値が所定の値に達した場合、該カウンタをリセットするとともに、スレーブコア120が正常に動作していること示すフラグを動作状態記憶ブロック150に出力する。つまり、スレーブコア120は、正常に動作している場合(すなわち、カウンタが動作する場合)、カウンタが所定の値を示したタイミングで、スレーブコア120が正常に動作していることを示すフラグを動作状態記憶ブロック150に出力する一方で、スレーブコア120が正常に動作していることを示さない場合(すなわち、カウンタが動作しない場合)、スレーブコア120が正常に動作していることを示さないフラグを動作状態記憶ブロック150に出力する。
チェックパターン設定ブロック130は、スレーブコア120(1)乃至120(n)のそれぞれに対するチェックタイミングパターンをそれぞれ記憶するチェックパターン設定回路131(1)乃至131(n)を含んで構成される。チェックタイミングパターンは、例えば所定長のビットパターンとして表現され、“1”のビット値が参照される場合にのみ、スレーブコア120の動作状態がチェックされる。ビットパターンの長さは、適宜に、設定されて良い。チェックパターン設定回路131(1)乃至131(n)は、マスターコア110から出力されるセットイネーブル信号SET_ENがイネーブル状態の間、クロックCLK_Mに従って、マスターコア110から出力される値信号V(1)乃至V(n)の値を順次に記憶する。チェックパターン設定回路131は、例えば選択回路及びシフトレジスタが環状に接続されることによって構成される循環型シフトレジスタである。或いは、チェックパターン設定回路131は、順序回路及びカウンタによって構成される回路であっても良い。なお、チェックパターン設定ブロック130は、チェックタイミング記憶ブロック140と、動作状態記憶ブロック150と、出力制御回路160と、動作状態設定ブロック170と、検出結果記憶ブロック180と、論理和回路190とともに、本発明の状態検出回路を構成する。
チェックタイミング記憶ブロック140は、クロックCLK_Mに基づいて、チェックパターン設定回路131(1)乃至131(n)から出力されるチェックタイミングパターンのビット値を記憶する順序回路141(1)乃至141(n)を含んで構成される。本例では、順序回路141は、例えばD型フリップフロップであるが、これに限られない。
動作状態記憶ブロック150は、スレーブコア120(1)乃至120(n)の動作状態をそれぞれ記憶する順序回路151(1)乃至151(n)を含む。本例では、順序回路151は、例えばセット機能付きD型フリップフロップであるが、これに限られない。順序回路151(1)乃至151(n)のそれぞれは、対応するスレーブコア120から出力されるフラグが示す動作状態を一時的に記憶し、該記憶した動作状態を所定のタイミングで出力制御回路160に出力する。つまり、動作状態記憶ブロック150には、クロックCLK_Sに従うスレーブコア120の動作タイミングで該スレーブコア120の動作状態が供給され、クロックCLK_Mに従うタイミングで、これを記憶するとともに記憶した動作状態を出力制御回路160に出力する。また、動作状態記憶ブロック150は、スレーブコア120がフラグを出力するタイミングと、チェックタイミング記憶ブロック140がスレーブコア120の動作状態をチェックするタイミングとの同期をとるために、動作状態設定ブロック170から出力されるセット信号SETに従って該順序回路151が記憶する動作状態をセット信号SETの動作状態に、クロックCLK_Mに従うタイミングで、設定する。
出力制御回路160は、動作状態記憶ブロック150が記憶する動作状態を検出し、チェックタイミング記憶ブロック140から出力されるチェックタイミングパターンの値に従って、該検出した動作状態の出力を制御する。具体的には、出力制御回路160は、チェックタイミング記憶ブロック140の順序回路141の出力が、対応するスレーブコア120の動作状態をチェックすべきタイミングであることを示す場合、動作状態記憶ブロック150の対応する順序回路151が記憶する動作状態を検出し、該検出結果を検出結果記憶ブロック180の対応する順序回路181に出力するとともに、動作状態設定ブロック170の対応する順序回路171が記憶する動作状態を初期状態にする。一方、出力制御回路160は、該順序回路141の出力が、対応するスレーブコア120の動作状態をチェックするタイミングでないことを示す場合、該順序回路151が記憶する動作状態を検出し、該動作状態を該順序回路171に出力する。
動作状態設定ブロック170は、クロックCLK_Mに基づいて、チェックタイミング記憶ブロック140の出力がスレーブコア120の動作状態をチェックするタイミングを示しておらず、かつ、動作状態記憶ブロック150からスレーブコア120が正常に動作していることを示す動作状態が出力されていた場合に、該動作状態を例えば順序回路171(1)乃至171(n)によって記憶するとともに、該記憶した動作状態をセット信号SETとして動作状態記憶ブロック150に出力する。また、動作状態設定ブロック170は、クロックCLK_Mに基づいて、チェックタイミング記憶ブロック140の出力がスレーブコア120の動作状態を確認するタイミングであることを示す場合、該記憶した動作状態を初期状態にするとともに、該記憶した初期状態をセット信号SETとして動作状態記憶ブロック150に出力する。つまり、動作状態設定ブロック170は、スレーブコア120がフラグを出力するタイミングと、チェックタイミング記憶ブロック140の出力が示すスレーブコア120の動作状態をチェックするタイミングとの間で同期をとるために、チェックタイミング記憶ブロック140の出力がスレーブコアの動作状態をチェックするタイミングを示すまで、スレーブコア120が正常に動作していたことを動作状態記憶ブロック150の出力が示す場合に該動作状態を記憶し、さらに、動作状態設定ブロック170は、動作状態記憶ブロック150の動作状態を該記憶した動作状態(すなわち正常動作)に設定する。なお、順序回路171は、例えばD型フリップフロップであるが、これに限られない。
検出結果記憶ブロック180は、クロックCLK_Mに基づいて、チェックタイミング記憶ブロック140の出力が、対応するスレーブコア120の動作状態をチェックするタイミングであることを示す場合に、読み出された動作状態記憶ブロック150が記憶する動作状態を例えば順序回路181(1)乃至181(n)によって一時的に記憶し、該記憶した動作状態を所定のタイミングで論理和回路190に出力する。つまり、検出結果記憶ブロック180は、チェックパターン設定ブロック130と、チェックタイミング記憶ブロック140と、動作状態記憶ブロック150と、出力制御回路160と、動作状態設定ブロック170とによってチェックされたスレーブコア120の動作状態を記憶し出力する。なお、順序回路181は、例えばD型フリップフロップであるが、これに限られない。
論理和回路190は、スレーブコア120(1)乃至120(n)の少なくとも1つが正常に動作していないことを示している場合、スレーブコア120が正常に動作していないことを示す割り込み信号INT(例えば“1”)をマスターコア110に出力する。つまり、論理和回路190は、検出結果記憶ブロック180の順序回路181(1)乃至181(n)から出力される動作状態に対して論理和演算を行い、該演算の結果を割り込み信号INTとしてマスターコア110に出力する。
以上のように構成される半導体集積回路100は、まず、チェックパターン設定ブロック130によってスレーブコア120(1)乃至120(n)のそれぞれの動作状態をチェックするチェックタイミングパターンを設定し、チェックタイミング記憶ブロック140にチェックパターンのビット値を記憶させる。半導体集積回路100は、スレーブコア120(1)乃至120(n)の動作状態を、クロックCLK_Sに従って、動作状態記憶ブロック150に出力する。半導体集積回路100は、チェックタイミング記憶ブロック140の出力がスレーブコア120の動作状態をチェックするタイミングでないことを示す場合、動作状態記憶ブロック150が記憶するスレーブコア120の動作状態を退避させるために動作状態設定ブロック170に一時的に記憶するとともに、該動作状態設定ブロック170が記憶する動作状態を該動作状態記憶ブロック150の動作状態に設定する。一方、半導体集積回路100は、チェックタイミング記憶ブロック140の出力がスレーブコア120の動作状態をチェックするタイミングであることを示す場合、該動作状態設定ブロック170が記憶する動作状態を初期状態にするとともに、該動作状態記憶ブロック150が記憶する動作状態を検出結果記憶ブロック180に記憶し、検出結果記憶ブロック180の出力の論理和をマスターコア110に出力する。これによって、マスターコア110は、検出結果記憶ブロック180の出力の論理和に従って、スレーブコア120の動作を制御する。
このように、半導体集積回路100は、スレーブコア120(1)乃至120(n)の動作周期に関係なく、チェックタイミングパターンに従ってスレーブコア120(1)乃至120(n)の動作状態をチェックする。この場合、動作状態のチェックタイミングよりも早いタイミングでスレーブコア120が正常に動作していることを示した場合に、半導体集積回路100は、チェックタイミングになるまで、該動作状態を動作状態設定ブロック170の対応する順序回路171に退避させ、記憶する。これにより、半導体集積回路100は、マスターコア110及びスレーブコア120(1)乃至120(n)の動作に用いられるクロックCLK_M、及びCLK_S(1)乃至CLK_S(n)が互いに同期関係にない場合でも、スレーブコア120(1)乃至120(n)に応じた適切なタイミングでスレーブコア120(1)乃至120(n)の動作状態の検出を行うことができる。
なお、本例では、検出結果記憶ブロック180の出力に対して論理和演算を行った結果が、割り込み信号INTとしてマスターコア110に出力されるが、これに限られるものではない。半導体集積回路100においては、論理和回路190が省略され、検出結果記憶ブロック180の順序回路181(1)乃至181(n)の出力がそれぞれ割り込み信号INT(1)乃至INT(n)としてマスターコア110に出力されても良い。かかる場合、半導体集積回路100は、正常に動作していないスレーブコア120を個別に検出することができ、半導体集積回路100全体を再起動させることなく、正常に動作していないスレーブコア120のみを切り離し又は再起動させることによって、実行中の処理を継続させることができる。
また、本例では、上述した各ブロック乃至はコンポーネントが1つの半導体集積回路100に設けられているが、これに限られるものではない。これらのブロック乃至はコンポーネントは、それぞれ別個のASICとして構成されても良く、或いは、それぞれ別個のプリント基板に設けられても良い。
図2は、本発明の一実施形態に係るチェックパターン設定回路の構成の一例を示す図である。同図に示すように、チェックパターン設定回路131(i)は、順序回路1312(1)乃至1312(m)からなるシフトレジスタと、該シフトレジスタの最前段及び最後段を接続する選択回路1311とを含んで構成される循環型シフトレジスタである。
選択回路1311は、例えばマルチプレクサであるが、これに限られない。選択回路1311は、選択端子SLに入力されるセットイネーブル信号SET_ENがイネーブル状態を示す場合、入力端子A1に入力される値信号V(i)を選択する一方、セットイネーブル信号SET_ENがイネーブル状態を示さない場合、入力端子A0に入力されるシフトレジスタの最後段の順序回路1312(m)の出力を選択し、該選択した結果を出力端子Yからシフトレジスタの最前段の順序回路1312(1)に出力する。つまり、選択回路1311は、チェックタイミングパターンを設定する設定モード、又は設定されたチェックタイミングパターンを出力する出力モードのいずれかを選択し、該選択したモードにチェックパターン設定回路131(i)のモードを設定する。
順序回路1312は、例えばD型フリップフロップであるが、これに限られない。順序回路1312は、クロックCLK_Mに基づいて、前段に接続される回路から出力される信号を後段に接続される回路に出力する。
以上のように構成されるチェックパターン設定回路131(i)は、セットイネーブル信号SET_ENがイネーブル状態を示す場合、設定モードとなり、マスターコア110から出力される値信号V(i)の値を取り込むことによって、対応するスレーブコア120(i)の動作状態をチェックするチェックタイミングパタ−ンを設定する。一方、チェックパターン設定回路131(i)は、セットイネーブル信号SET_ENがイネーブル状態を示さない場合、出力モードとなり、設定されたチェックタイミングパターンで、対応するスレーブコア120(i)の動作状態をチェックするタイミングであることを示す信号をチェックタイミング記憶ブロック140の対応する順序回路141(i)に出力する。これにより、チェックパターン設定回路131(i)は、単純な構成でチェックタイミングパターンを設定することができる。
図3は、本発明の一実施形態に係る出力制御回路の構成の一例を示す図である。同図に示すように、本実施形態に係る出力制御回路160は、論理積回路161(1)乃至161(n)と、論理積回路162(1)乃至162(n)とを含んで構成される。
論理積回路161は、動作状態記憶ブロック150における対応する順序回路151から出力される、対応するスレーブコア120の動作状態を示す信号に対してチェックタイミング記憶ブロック140の出力信号との論理積の信号を動作状態設定ブロック170における対応する順序回路171に出力する。また、論理積回路161は、チェックタイミング記憶ブロック140における対応する順序回路141の出力が、対応するスレーブコア120の動作状態をチェックすべきタイミングであることを示す場合、値を“0”として該順序回路171に出力する。つまり、論理積回路161は、対応する順序回路141からの出力に対する論理否定と、対応する順序回路151からの出力とに対して論理積演算を行い、該演算の結果を出力する。
論理積回路162は、イネーブル端子ENAに、チェックタイミング記憶ブロック140の対応する順序回路141から対応するスレーブコア120の動作状態を確認するタイミングであることを示す信号が入力された場合、対応する順序回路151から出力される対応するスレーブコア120の動作状態の論理否定に対して論理積演算を行った結果を検出結果記憶ブロック180の対応する順序回路181に出力する。つまり、論理積回路162は、対応する順序回路151からの出力に対する論理否定と、対応する順序回路141からの出力とに対して論理積演算を行い、該演算の結果を出力するものであっても良い。
以上のように構成される出力制御回路160は、チェックタイミング記憶ブロック140の順序回路141の出力が、対応するスレーブコア120の動作状態をチェックするタイミングであることを示す場合、動作状態記憶ブロック150における対応する順序回路151が記憶する動作状態を検出し、該検出結果を検出結果記憶ブロック180の対応する順序回路181に出力するとともに、動作状態設定ブロック170における対応する順序回路171を初期状態にする。一方、出力制御回路160は、該順序回路141の出力が、対応するスレーブコア120の動作状態をチェックするタイミングでないことを示す場合、対応する該順序回路151が記憶する動作状態を検出し、検出した該動作状態を動作状態設定ブロック170の対応する順序回路171に出力する。
図4は、本発明の一実施形態に係る半導体集積回路の各ブロックが記憶する動作状態の伝搬を説明するための図である。ここでは、スレーブコア120が3個(すなわち、n=3)である場合を例にして説明する。また、本例では、動作状態記憶ブロック150の順序回路151(1)乃至151(3)は、それぞれ、ある時点において、“1”、“0”、及び“1”を記憶しているものと仮定する。ここで、“1”は、例えば、対応するスレーブコア120が正常動作していることを示すフラグを出力していることを示し、“0”は、例えば、対応するスレーブコア120が正常に動作していることを示さないフラグを出力していることを示す。また、本例では、チェックタイミング記憶ブロック140の順序回路141(1)乃至141(3)がそれぞれ“0”、“1”及び“1”を記憶するものと仮定する。
まず、スレーブコア120(1)に関して、各コンポーネントが記憶する値の伝搬について説明する。チェックタイミング記憶ブロック140の順序回路141(1)が記憶する値が“0”である。また、動作状態記憶ブロック150の順序回路151(1)は、スレーブコア120(1)が正常に動作していることを示す“1”を記憶している。
出力制御回路160は、順序回路141(1)が記憶する“0”を受けてその論理否定“1”と、順序回路151(1)が記憶する“1”との論理積“1”を動作状態設定ブロック170の順序回路171(1)に出力するとともに、順序回路141(1)が記憶する“0”を受けて、スレーブコア120(1)が正常に動作していることを示す、順序回路151(1)が記憶する“1”の論理否定との論理積“0”を検出結果記憶ブロック180の順序回路181(1)に出力する。
これにより、動作状態設定ブロック170の順序回路171(1)は、出力制御回路160から出力される順序回路151(1)が記憶する“1”を記憶するとともに、該値をセット信号SET(1)として順序回路151(1)に出力することによって、順序回路151(1)が記憶する値を“1”に設定する。
一方、検出結果記憶ブロック180の順序回路181(1)は、出力制御回路160から出力される“0”を記憶し、スレーブコア120が正常に動作していることを示す信号を論理和回路190に出力する。
このように、チェックタイミング記憶ブロック140が、スレーブコア120の動作状態をチェックするタイミングでないことを示す値を記憶し、かつ、動作状態記憶ブロック150が、スレーブコア120が正常に動作していることを示す値を記憶している場合、動作状態記憶ブロック150が記憶していた値は、動作状態設定ブロック170に伝搬され、記憶される。また、動作状態設定ブロック170が記憶していた値は、該動作状態記憶ブロック150に設定される。
次に、スレーブコア120(2)に関して、各コンポーネントが記憶する値の伝搬について説明する。チェックタイミング記憶ブロック140の順序回路141(2)が記憶する値が“1”である。また、動作状態記憶ブロック150の順序回路151(2)は、スレーブコア120(2)が正常に動作していないことを示す“0”を記憶している。
出力制御回路160は、順序回路141(2)が記憶している“1”を受けてその論理否定“0”と、順序回路151(2)が記憶する“0”との論理積“0”を動作状態設定ブロック170の順序回路171(2)に出力するとともに、順序回路141(2)が記憶する“0”を受けて、スレーブコア120(2)が正常に動作していることを示さない、順序回路151(2)が記憶する“0”の論理否定との論理積“1”を検出結果記憶ブロック180の順序回路181(2)に出力する。
これにより、動作状態設定ブロック170の順序回路171(2)は、出力制御回路160から出力される順序回路151(2)が記憶する“0”を記憶するとともに、該値をセット信号SET(2)として順序回路151(2)に出力することによって、順序回路151(2)が記憶する値を“0”に設定する。
一方、検出結果記憶ブロック180の順序回路181(2)は、出力制御回路160から出力される“1”を記憶し、スレーブコア120が正常に動作していることを示さない信号“1”を論理和回路190に出力する。
このように、チェックタイミング記憶ブロック140が、スレーブコア120の動作状態をチェックするタイミングであることを示す値を記憶し、かつ、動作状態記憶ブロック150が、スレーブコア120が正常に動作していることを示さない値を記憶している場合、動作状態記憶ブロック150が記憶していた値は、動作状態設定ブロック170に伝播され、記憶される。また、動作状態記憶ブロック150が記憶していた値は、該動作状態設定ブロック170が記憶する値に設定される。
次に、スレーブコア120(3)に関して、各コンポーネントが記憶する値の伝搬について説明する。チェックタイミング記憶ブロック140の順序回路141(3)が記憶する値が“1”である。また、動作状態記憶ブロック150の順序回路151(3)は、スレーブコア120(1)が正常動作していることを示す“1”を記憶している。
出力制御回路160は、順序回路141(3)が記憶している“1”を受けてその論理否定“0”と、順序回路151(3)が記憶する“1”との論理積“0”を動作状態設定ブロック170の順序回路171(3)に出力するとともに、順序回路141(3)が記憶する“1”を受けて、スレーブコア120(3)が正常に動作していることを示す、順序回路151(3)が記憶する“1”の論理否定との論理積“0”を検出結果記憶ブロック180の順序回路181(3)に出力する。
これにより、動作状態設定ブロック170の順序回路171(3)は、出力制御回路160から出力される順序回路151(3)が記憶する“0”を記憶するとともに、該値をセット信号SET(3)として順序回路151(3)に出力することによって、順序回路151(3)が記憶する値を“0”に設定する。
一方、検出結果記憶ブロック180の順序回路181(3)は、出力制御回路160から出力される“0”を記憶し、スレーブコア120(3)が正常に動作していることを示さない信号“0”を論理和回路190に出力する。
このように、チェックタイミング記憶ブロック140が、スレーブコア120の動作状態をチェックするタイミングであることを示す値を記憶し、かつ、動作状態記憶ブロック150が、スレーブコア120が正常動作していることを示す値を記憶している場合、動作状態記憶ブロック150が記憶していた値は、動作状態設定ブロック170が記憶する動作状態を初期状態にして、動作状態記憶ブロック150に対する設定を解除するとともに、スレーブコア120が正常動作していることを示す“0”を検出結果記憶ブロック180に記憶する。
そして、検出結果記憶ブロック180は、順序回路181(1)乃至181(3)にそれぞれ“0”、“1”、及び“0”を記憶するとともに、該記憶した値を、クロックCLK_Mに同期して、論理和回路190に出力する。論理和回路190は、検出結果記憶ブロック180から出力された値に対して論理和演算を行うため、割り込み信号INTの値を正常に動作していないスレーブコア120があることを示す“1”として、該信号をマスターコア110に出力する。
図5は、本発明の一実施形態に係る半導体集積回路の動作を示すタイミングチャートである(なお、図4に示した設定状態とは異なる。)。同図において、クロックCLK_Mが交番するタイミングは、時刻t1乃至t10として示されている。
まず、スレーブコア120(1)に関する各コンポーネントの動作について説明する。時刻t1で、スレーブコア120(1)は、正常に動作していることを示す“1”を動作状態記憶ブロック150の順序回路151(1)に出力している。
時刻t2で、チェックタイミング記憶ブロック140の順序回路141(1)は、スレーブコア120(1)の動作状態をチェックするタイミングであることを示す“1”を、チェックパターン設定ブロック130の順序回路131(1)から受け、記憶する。また、動作状態記憶ブロック150の順序回路151(1)は、スレーブコア120(1)からスレーブコア120(1)が正常に動作していることを示す“1”を受け、該値を記憶する。
時刻t3で、出力制御回路160は、順序回路141(1)からスレーブコア120(1)の動作状態をチェックするタイミングであることを示す“1”を受ける一方、順序回路151(1)からスレーブコア120(1)が正常に動作していることを示す“1”を受け、順序回路181(1)にスレーブコア120(1)が正常に動作していることを示す“0”を出力する。順序回路181(1)は、スレーブコア120が正常に動作していることを示す“0”を記憶する。また、スレーブコア120(1)は、正常に動作していることを示さない“0”を動作状態記憶ブロック150の順序回路151(1)に出力する。
時刻t6で、チェックタイミング記憶ブロック140の順序回路141(1)は、スレーブコア120(1)の動作状態を確認するタイミングであることを示す“1”を、チェックパターン設定ブロック130の順序回路131(1)から受け、記憶する。また、動作状態記憶ブロック150の順序回路151(1)は、スレーブコア120(1)からスレーブコア120(1)が正常に動作していることを示さない“0”を受け、該値を記憶する。
時刻t7で、出力制御回路160は、順序回路141(1)からスレーブコア120(1)の動作状態を確認するタイミングであることを示す“1”を受ける一方、順序回路151(1)からスレーブコア120(1)が正常に動作していることを示さない“0”を受け、論理演算の結果として、順序回路181(1)にスレーブコア120(1)が正常に動作していないことを示す“1”を出力する。順序回路181(1)は、スレーブコア120が正常に動作していないことを示す“1”を記憶する。
このように、半導体集積回路100は、スレーブコア120(1)が正常に動作している場合、順序回路181(1)にスレーブコア120(1)が正常に動作していることを示す“0”を記憶する一方で、スレーブコア120(1)が正常に動作していない場合、順序回路181(1)にスレーブコア120(1)が正常に動作していないことを示す“1”を記憶する。
次に、スレーブコア120(2)に関する各コンポーネントの動作について説明する。時刻t1で、スレーブコア120(2)は、正常に動作していることを示す“1”を動作状態記憶ブロック150の順序回路151(2)に出力している。
時刻t2で、チェックタイミング記憶ブロック140の順序回路141(2)は、スレーブコア120(2)の動作状態を確認するタイミングであることを示す“1”を、チェックパターン設定ブロック130の順序回路131(2)から受け、記憶する。また、動作状態記憶ブロック150の順序回路151(2)は、スレーブコア120(2)からスレーブコア120(2)が正常に動作していることを示す“1”を受け、該値を記憶する。
時刻t2と時刻t3との間で、スレーブコア120(2)は、正常に動作していることを示さない“0”を動作状態記憶ブロック150の順序回路151(2)に出力する。
時刻t3で、出力制御回路160は、順序回路141(2)からスレーブコア120(2)の動作状態を確認するタイミングであることを示す“1”を受ける一方、順序回路151(2)からスレーブコア120(2)が正常に動作していることを示す“1”を受け、順序回路181(2)にスレーブコア120(2)が正常に動作していることを示す“0”を出力する。順序回路181(2)は、スレーブコア120(2)が正常に動作していることを示す“0”を記憶する。
時刻t3と時刻t4との間で、スレーブコア120(2)は、正常に動作していることを示す“1”を動作状態記憶ブロック150の順序回路151(2)に出力する。
時刻t4で、順序回路141(2)は、スレーブコア120(2)の動作状態を確認するタイミングでないことを示す“0”を、チェックパターン設定ブロック130の順序回路131(2)から受け、記憶する。また、時刻t4で、順序回路151(2)は、スレーブコア120(2)からスレーブコア120(2)が正常に動作していることを示す“1”を受け、該値を記憶する。
時刻t4と時刻t5との間で、スレーブコア120(2)は、正常に動作していることを示さない“0”を動作状態記憶ブロック150の順序回路151(2)に出力する。
時刻t5で、出力制御回路160は、順序回路141(2)からスレーブコア120(2)の動作状態を確認するタイミングでないことを示す“0”を、チェックパターン設定ブロック130の順序回路131(2)から受ける一方、順序回路151(2)からスレーブコア120(2)が正常に動作していることを示す“1”を受け、動作状態設定ブロック170の順序回路171(2)にスレーブコア120(2)が正常に動作していることを示す“1”を出力する。順序回路171(2)は、スレーブコア120(2)が正常に動作していることを示す“1”を記憶するとともに、順序回路151(2)が記憶する値をスレーブコア120(2)が正常に動作していることを示す“1”に設定する。また、順序回路141(2)は、スレーブコア120(2)の動作状態を確認するタイミングであることを示す“1”を、チェックパターン設定ブロック130の順序回路131(2)から受け、記憶する。
時刻t6で、出力制御回路160は、順序回路141(2)からスレーブコア120(2)の動作状態を確認するタイミングであることを示す“1”を受ける一方、順序回路151(2)からスレーブコア120(2)が正常に動作していることを示す“1”を受け、順序回路181(2)にスレーブコア120(2)が正常に動作していることを示す“0”を出力する。順序回路181(2)は、スレーブコア120が正常に動作していることを示す“0”を記憶する。また、順序回路171(2)は、順序回路151(2)に対する順序回路151(2)が記憶する値の設定を初期化する。
時刻t8で、順序回路141(2)は、スレーブコア120(2)の動作状態を確認するタイミングであることを示す“1”を、チェックパターン設定ブロック130の順序回路131(2)から受け、記憶する。また、時刻t8で、順序回路151(2)は、スレーブコア120(2)からスレーブコア120(2)が正常に動作していることを示さない“0”を受け、該値を記憶する。
時刻t9で、出力制御回路160は、順序回路141(2)からスレーブコア120(2)の動作状態を確認するタイミングであることを示す“1”を受ける一方、順序回路151(2)からスレーブコア120(2)が正常に動作していることを示さない“0”を受け、順序回路181(2)にスレーブコア120(2)が正常に動作していないことを示す“1”を出力する。順序回路181(2)は、スレーブコア120が正常に動作していないことを示す“1”を記憶する。
このように、半導体集積回路100は、スレーブコア120(2)の動作状態をチェックするタイミングで、スレーブコア120(2)が正常に動作している場合、順序回路181(2)にスレーブコア120(2)が正常に動作していることを示す“1”を記憶する一方で、スレーブコア120(2)の動作状態をチェックしないタイミングにおいて、スレーブコア120(2)が正常に動作している場合、順序回路171(2)にスレーブコア120(2)が正常に動作していることを示す“1”を記憶するとともに、順序回路151(2)が記憶する値を、スレーブコア120(2)が正常に動作していることを示す“1”に設定する。これに対して、半導体集積回路100は、スレーブコア120(1)が正常に動作していない場合、順序回路181(1)にスレーブコア120(1)が正常に動作していないことを示す“1”を記憶する。
図6は、本発明の一実施形態に係る半導体集積回路の動作を示すフローチャートである。同図に示すように、半導体集積回路100は、まず、チェックパターン設定ブロック130に、スレーブコア120(1)乃至120(n)のそれぞれの動作状態をチェックするタイミングを示すチェックタイミングパターンを設定する(S601)。
次に、半導体集積回路100は、チェックタイミング記憶ブロック140の順序回路141が記憶する値、すなわち、チェックタイミングパターンに従ってチェックすべきタイミングであるか否かをチェックするする(S602)。半導体集積回路100は、順序回路141の記憶する値が、対応するスレーブコア120の動作状態をチェックするタイミングであることを示す場合(S603のYes)、動作状態記憶ブロック150の順序回路151が記憶する対応するスレーブコア120の動作状態を検出し(S604)、該検出結果を検出結果記憶ブロック180の順序回路181に記憶する(S605)。また、半導体集積回路100は、動作状態設定ブロック170の対応する順序回路171の状態を初期化する(S606)。半導体集積回路100は、順序回路181が記憶する動作状態をマスターコア110に出力し(S607)、ステップS612の処理に進む。
これに対して、半導体集積回路100は、順序回路141が記憶する値が対応するスレーブコア120の動作状態をチェックするタイミングでないことを示す場合(S603のNo)、動作状態記憶ブロック150の順序回路151が記憶する対応するスレーブコア120の動作状態を確認する(S608)。半導体集積回路100は、順序回路151が記憶する値が、対応するスレーブコア120が正常に動作していることを示す場合(S609のYes)、動作状態設定ブロック170の対応する順序回路171に順序回路151の状態を記憶し(S610)、順序回路151が記憶する動作状態を順序回路171が記憶する動作状態に設定し(S611)、ステップS612の処理に進む。一方、半導体集積回路100は、順序回路151が記憶する値が、対応するスレーブコア120が正常に動作していることを示さない場合(S609のNo)、ステップS612の処理に進む。
半導体集積回路100は、マスターコア110によってスレーブコア120の動作を停止させるか或いは再起動させる(S612)。
なお、同図中、理解の容易のため、半導体集積回路100の処理の流れをステップごとに逐次的に説明したが、各ステップは、適宜、並列的に実行されうる。
図7は、本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。同図に示すように、本実施形態に係る半導体集積回路100Aは、動作状態記憶ブロック150の代わりに動作状態記憶ブロック150Aを含んで構成される以外は、半導体集積回路100と同じである。なお、同図では、半導体集積回路100と同じコンポーネントについては、同じ符号が付され、したがって、その説明を適宜省略する。
動作状態記憶ブロック150Aは、順序回路151の代わりに、順序回路151A及び論理和回路152を含んで構成される以外は、動作状態記憶ブロック150と同じである。すなわち、動作状態記憶ブロック150Aは、順序回路151A及び論理和回路152によって、スレーブコア120から出力されるフラグが示す動作状態を記憶し、該記憶した動作状態を出力制御回路160に出力する。また、動作記憶状態ブロック150Aは、動作状態設定ブロック170からセット信号SETが出力される場合、該論理和回路152の出力をセット信号SETが示す動作状態とする。
順序回路151Aは、例えばD型フリップフロップであるが、これに限られない。順序回路151Aは、クロックCLK_Mに基づいて、対応するスレーブコア120から出力されるフラグが示す動作状態を記憶し、該記憶した動作状態を対応する論理和回路152に出力する。
論理和回路152は、対応する順序回路151Aからの出力と、動作状態設定ブロック170の対応する順序回路171からの出力とに対して論理和演算を行い、該演算の結果を出力制御回路160に出力する。
以上のように構成される半導体集積回路100Aは、セット機能を必要としないD型フリップフロップと、論理和回路とからなる単純な構成によって、動作状態記憶ブロック150Aを実現でき、半導体集積回路100と同様の機能を実現することができる。
図8は、本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。同図に示すように、半導体集積回路100Cは、半導体集積回路100に対して異常状態記憶ブロック1000がさらに追加されることによって構成される。なお、同図には、マスターコア110、チェックパターン設定ブロック130及びスレーブコア120(1)乃至120(n)が図示されていないが、半導体集積回路100Cは、該コンポーネントを含むものとする。また、同図では、半導体集積回路100と同じコンポーネントについては、同じ符号が付され、したがって、その説明を適宜省略する。
異常状態記憶ブロック1000は、割り込み信号INTに従って、検出結果記憶ブロック180の出力が示す動作状態を記憶する。具体的には、異常状態記憶ブロック1000は、割り込み信号INTがスレーブコア120(1)乃至120(n)のうちいずれかが正常に動作していないことを示す場合に、検出結果記憶ブロック180が記憶し出力するスレーブコア120(1)乃至120(n)の動作状態を記憶し続ける。異常状態記憶ブロック1000は、異常状態検出回路1010と、バッファ回路1020(1)乃至1020(n)と、順序回路1030(1)乃至1030(n)とを含んで構成される。
異常状態検出回路1010は、論理和回路190から出力される割り込み信号INTがスレーブコア120(1)乃至120(n)のいずれかが正常に動作していないことを示す場合、論理和回路190及び順序回路1013の出力に対して論理和演算を行い、該演算結果を出力する論理和回路1011と、論理和回路1011の出力に対して所定の遅延を与えるバッファ回路1012と、クロックCLK_Mに基づいてバッファ回路1012からの出力を論理和回路1011及びバッファ回路1020に出力する順序回路1013との環状構造によって、該割り込み信号INTが示す値を記憶し続けるとともに該記憶した値をバッファ回路1020(1)乃至1020(n)に出力する。また、異常状態検出回路1010は、マスターコア110から出力されるクリア信号CLRを受けて、バッファ回路1020によって該記憶した値を初期状態にする。つまり、異常状態検出回路1010は、割り込み信号INTがスレーブコア120(1)乃至120(n)が正常に動作していないことを示す場合、クリア信号CLRによって初期状態にされるまで、該割り込み信号INTが示す値を記憶し続ける。
バッファ回路1020は、異常状態検出回路1010から出力される信号がスレーブコア120(1)乃至120(n)のいずれかが正常に動作していないことを示す場合、検出結果記憶ブロック180の対応する順序回路181から出力される信号に対して所定の遅延を与え、該遅延を与えた信号を対応する順序回路1030に出力する。一方、バッファ回路1020は、異常状態検出回路1010から出力される信号がスレーブコア120(1)乃至120(n)のいずれも正常に動作していることを示す場合、対応する順序回路1030への信号の出力を停止する。また、バッファ回路1020は、マスターコア110からクリア信号CLRが出力される場合、スレーブコア120(1)乃至120(n)のいずれも正常に動作していることを示す“0”を対応する順序回路1030に出力する。つまり、バッファ回路1020は、対応する順序回路181からの出力と、異常状態検回路1010からの出力と、クリア信号CLRに対する論理否定とに対して論理積演算を行い、該演算の結果を対応する順序回路1013に出力する。
順序回路1030は、例えばD型フリップフロップであるが、これに限られない。順序回路1030は、クロックCLK_Mに基づいて、対応するバッファ回路1020からの出力が示す動作状態を記憶し、該記憶した動作状態をステータス信号STとしてマスターコア110に出力する。
以上のように構成される半導体集積回路100Cは、異常状態記憶ブロック1000により、スレーブコア120(1)乃至120(n)のいずれかが正常に動作していない場合、どのスレーブコア120が正常に動作していないかに関する情報を記憶し続けることができる。したがって、半導体集積回路100Cは、正常に動作していないスレーブコア120の動作状態に関する情報をマスターコア110がクリア信号CLRを出力するまで利用し続けることができる。
図9は、本発明の一実施形態に係るチェックタイミング設定ブロックのチェックパターン設定回路の構成の他の例を示す図である。同図に示すように、本実施形態に係るチェックパタ−ン設定回路131D(i)は、順序回路1312(1)乃至1312(m)と、否定排他的論理和回路1313(1)乃至1313(m)と、論理積回路1314と、カウンタ1315とを含んで構成される。なお、本実施形態に係るチェックパターン設定回路131D(i)は、セットイネーブル信号SET_ENが入力されることを必要としない。
順序回路1312は、クロックCLK_Mに基づいて、マスターコア110から出力される値信号V(i)が示す値を記憶し、該記憶した値を対応する否定排他的論理和回路1313に出力する。なお、順序回路1312(1)乃至1312(m)のそれぞれが記憶する値は、カウンタ1315がカウントするカウント値の上限の各桁に対応する。
否定排他的論理和回路1313は、対応する順序回路1312からの出力と、カウンタ1315の対応する桁のカウント値算出回路1350からの出力とが一致する場合、値が一致することを示す信号を論理積回路1314に出力する一方で、対応する順序回路1312からの出力と、カウンタ1315の対応する桁のカウント値算出回路1350からの出力とが一致しない場合、値が一致しないことを示す信号を論理積回路1314に出力する。つまり、否定排他的論理和回路1313は、対応する順序回路1312からの出力と、カウンタ1315の対応する桁のカウント値算出回路1350からの出力とに対して否定排他的論理和演算を行い、該演算の結果を論理積回路1314に出力する。
論理積回路1314は、順序回路1312(1)乃至1312(m)が記憶する値と、カウンタ1315が出力するカウント値とが一致した場合に、該一致を示す信号をカウンタ1315とチェックタイミング記憶ブロック140とに出力する。つまり、論理積回路1314は、各否定排他的論理和回路1313(1)乃至1313(m)の出力に対して論理積演算を行い、該演算の結果をカウンタ1315と、チェックタイミング記憶ブロック140とに出力する。
カウンタ1315は、クロックCLK_Mに基づいて、順序回路1312(1)乃至1312(m)が記憶する値までカウントを行い、該順序回路1312が記憶する値にカウント値が達したらカウント値を初期状態にするという動作を繰り返す。カウンタ1315は、カウント値の各桁の値を算出するカウント値算出部1350(1)乃至1350(m)を含んで構成される。
カウント値算出部1350は、カウンタ1315がカウントするカウント値における対応する桁の値を算出する。具体的には、カウント値算出部1350は、後段の回路に出力する信号に対して論理否定演算を行った結果と、前段のカウント値算出部1350から出力される信号とに対して排他的論理和演算を行い、該演算の結果を後段のカウント値算出部1350と、対応する否定排他的論理和回路1313とに出力することによって、カウント値の対応する桁の値を算出する。カウント値算出部1350は、例えば排他的論理和回路1351と、バッファ回路1352と、順序回路1353とを含んで構成される。なお、最前段のカウント値算出部1350には、前段のカウント値算出部1350から出力される信号の代わりに、例えば接地電位と同じ電位を有する接地信号GNDが入力される。
排他的論理和回路1351は、前段の回路から出力される信号と、対応する順序回路1353の出力端子Qから出力される信号に対して論理否定演算を行った信号を出力する出力端子QBから出力される信号とに対して排他的論理和演算を行い、該演算の結果を対応するバッファ回路1352に出力する。
バッファ回路1352は、対応する排他的論理和回路1351から出力される信号に対して所定の遅延を与え、該遅延を与えた信号を対応する順序回路1353のデータ端子Dに出力する。また、バッファ回路1352は、順序回路1312(1)乃至1312(m)が記憶する値と、カウンタ1315が出力するカウント値の各桁とが全て一致することを論理積回路1314から出力される信号が示す場合、対応する順序回路1353を初期状態にする。つまり、バッファ回路1352は、対応する排他的論理和回路1351からの出力と、論理積回路1314からの出力に対する論理否定とに対して論理積演算を行い、該演算の結果を対応する順序回路1353に出力する。
順序回路1353は、例えばD型フリップフロップであるが、これに限られない。順序回路1353は、クロックCLK_Mに基づいて、対応するバッファ回路1352から出力される信号を対応する否定排他的論理和回路1313と、後段のカウント値算出回路1350とに出力するとともに、該信号に対して論理否定演算を行った結果を対応する排他的論理和回路1351に出力する。
以上のように構成されるチェックパターン設定回路131D(i)は、順序回路1312(1)乃至1312(m)がカウント値の各桁に対応する値を記憶するため、チェックパターン設定回路131と比べて、少ない素子数で高精度にチェックタイミングパターンを設定することができる。
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
また、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。
本発明は、半導体集積回路の分野に広く利用することができる。
100…半導体集積回路
110…マスターコア
120…スレーブコア
130…チェックパターン設定ブロック
131…チェックパターン設定回路
1311…選択回路
1312…順序回路
1313…否定排他的論理和回路
1314…論理積回路
1315…カウンタ
1350…カウント値算出回路
1351…排他的論理和回路
1352…バッファ回路
1353…順序回路
140…チェックタイミング記憶ブロック
141…順序回路
150…動作状態記憶ブロック
151…順序回路
152…論理和回路
160…出力制御回路
161,162…論理積回路
170…動作状態設定ブロック
171…順序回路
180…検出結果記憶ブロック
181…順序回路
190…論理和回路
1000…異常状態記憶ブロック
1010…異常状態検出回路
1011…論理和回路
1012…バッファ回路
1013…順序回路
1020…バッファ回路
1030…順序回路

Claims (11)

  1. 第1のクロックに基づいて動作するマスターコアと、
    前記第1のクロックと非同期関係にある少なくとも1つの第2のクロックに基づいて動作し、前記第2のクロックに基づく所定の周期で正常に動作しているか否かを示す動作状態を出力する複数のスレーブコアと、
    前記第1のクロックに基づいて動作し、前記複数のスレーブコアのそれぞれから出力される前記動作状態を、チェックタイミングパターンに従うチェックタイミングで、検出する状態検出回路と、
    を備え、
    前記状態検出回路は、
    前記チェックタイミングパターンを記憶するチェックパターン設定ブロックと、
    前記複数のスレーブコアから出力される前記動作状態をそれぞれ記憶する動作状態記憶ブロックと、
    前記チェックタイミングパターンに従う前記チェックタイミングになるまで前記動作状態を記憶する動作状態設定ブロックと、
    前記動作状態記憶ブロックから出力される前記動作状態の出力先を制御する出力制御回路と、を含み、
    前記出力制御回路は、
    前記動作状態記憶ブロックが、前記複数のスレーブコアのうちの一のスレーブコアから所定の周期で出力された正常動作していることを示す動作状態を記憶している場合に、前記チェックパターン設定ブロックに記憶された前記一のスレーブコアに対応する前記チェックタイミングパターンに従うチェックタイミングになるまで、前記正常動作していることを示す動作状態を前記動作状態設定ブロックに一時的に記憶させるために出力し、
    前記チェックタイミングパターンに従うチェックタイミングになったとき、前記動作状態設定ブロックに記憶されている前記正常動作していることを示す動作状態を検出結果として出力するとともに、前記動作状態設定ブロックに記憶されている動作状態を初期化する一方、前記チェックタイミングパターンに従うチェックタイミングになったときに前記記憶されている動作状態が初期化状態にある場合、前記一のスレーブコアから出力される前記動作状態を検出結果として出力する、
    半導体集積回路。
  2. 前記マスターコアは、前記複数のスレーブコアのそれぞれに対する前記チェックタイミングパターンを設定する、請求項1記載の半導体集積回路。
  3. 前記マスターコアは、前記状態検出回路から前記一のスレーブコアが正常動作していないことを示す動作状態が出力される場合、前記一のスレーブコアを停止させ又は再起動するように制御する、請求項1記載の半導体集積回路。
  4. 前記第2のクロックは、前記第1のクロックの周波数よりも低い周波数で交番する、請求項1記載の半導体集積回路。
  5. 複数の前記第2のクロックのそれぞれは、互いに非同期関係にあり、
    前記複数のスレーブコアのそれぞれは、対応する前記第2のクロックに基づいて動作する、
    請求項1記載の半導体集積回路。
  6. 前記動作状態設定ブロックは、
    前記出力制御回路から前記一のスレーブコアが正常動作していることを示す動作状態が出力される場合、前記正常動作していることを示す動作状態を記憶するとともに、前記動作状態記憶ブロックが記憶する前記動作状態を前記正常動作していることを示す動作状態に設定し、
    前記出力制御回路から前記出力制御回路から前記一のスレーブコアが正常動作していることを示す動作状態が出力されない場合、記憶した前記正常動作していることを示す動作状態を初期状態にし、
    前記動作状態記憶ブロックは、
    前記動作状態設定ブロックによって前記正常動作していることを示す動作状態に設定される場合、前記正常動作していることを示す動作状態を記憶する、
    請求項記載の半導体集積回路。
  7. 前記チェックパターン設定ブロックは、循環型シフトレジスタを含み、
    前記循環型シフトレジスタは、前記マスターコアから出力される前記チェックタイミングパターンに従う値を記憶するように構成されるとともに、前記第1のクロックに従って、前記チェックタイミングパターンに従う値を順次に出力するように構成される、
    請求項記載の半導体集積回路。
  8. 前記チェックパターン設定ブロックは、カウンタを含み、
    前記チェックパターン設定ブロックは、前記カウンタのカウント値に従って、前記チェックタイミングパターンに従うチェックタイミングを決定する、
    請求項記載の半導体集積回路。
  9. 前記状態検出回路から出力される前記動作状態を記憶する異常状態記憶ブロックをさらに備え、
    前記異常状態記憶ブロックは、前記状態検出回路から前記複数のスレーブコアのうちいずれかが正常に動作していないことを示す動作状態が出力される場合に、再び前記状態検出回路から前記複数のスレーブコアのうちいずれかが正常に動作していないことを示す動作状態が出力されるまで前記状態検出回路から出力される前記動作状態を記憶する、
    請求項記載の半導体集積回路。
  10. 第1のクロックと非同期の関係にある少なくとも1つの第2のクロックに基づいて動作する複数のスレーブコアのそれぞれから出力される動作状態を、チェックタイミングパターンに従うチェックタイミングで検出し、検出結果を、前記第1のクロックに基づいて動作するマスターコアに出力する半導体集積回路であって、
    前記スレーブコアは、前記第2のクロックに基づく所定の周期で正常に動作しているか否かを示す動作状態を出力し、
    前記半導体集積回路は、
    前記複数のスレーブコアのうちの一のスレーブコアが、正常動作していることを示す動作状態を前記所定の周期で出力している場合に、前記一のスレーブコアに対応する前記チェックタイミングパターンに従うチェックタイミングになるまで、前記正常動作していることを示す動作状態を退避させるために一時的に記憶し、
    前記半導体集積回路は、
    前記チェックタイミングパターンに従うチェックタイミングになったとき、前記退避させ記憶されている前記正常動作していることを示す動作状態を検出結果として出力するとともに、該記憶されている動作状態を初期状態にする一方、前記チェックタイミングパターンに従うチェックタイミングになったとき、該記憶されている動作状態が前記初期状態にある場合、前記一のスレーブコアから出力される前記動作状態を検出結果として退避させることなく前記マスターコアに出力する、
    半導体集積回路。
  11. 第1のクロックに基づいて動作するマスターコアと、前記第1のクロックと非同期関係にある少なくとも1つの第2のクロックに基づいて動作する複数のスレーブコアとを備える半導体集積回路において、前記複数のスレーブコアのそれぞれの動作状態をチェックする方法であって、
    前記複数のスレーブコアのそれぞれの動作状態をチェックするチェックタイミングパターンを設定することと、
    前記複数のスレーブコアのうち一のスレーブコアに対応するチェックタイミングパターンに従うチェックタイミングであるか否かを判断することと、
    前記チェックタイミングパターンに従うチェックタイミングでないと判断する場合、前記一のスレーブコアが正常動作していることを示す動作状態を出力しているか否かをチェックし、前記一のスレーブコアが前記正常動作していることを示す動作状態を出力している場合、前記正常動作していることを示す動作状態を記憶することと、
    前記チェックタイミングパターンに従うチェックタイミングであると判断する場合、該チェックタイミングでの記憶されている前記正常動作していることを示す動作状態をチェック結果として出力するとともに、該記憶されている動作状態を初期状態にする一方、前記チェックタイミングパターンに従うチェックタイミングであると判断する場合、該記憶されている動作状態が前記初期状態にある場合、前記一のスレーブコアから出力される前記動作状態をチェック結果として出力することと、
    を含む、前記複数のスレーブコアのそれぞれの動作状態をチェックする方法。
JP2016004376A 2016-01-13 2016-01-13 半導体集積回路 Active JP6721340B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016004376A JP6721340B2 (ja) 2016-01-13 2016-01-13 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016004376A JP6721340B2 (ja) 2016-01-13 2016-01-13 半導体集積回路

Publications (2)

Publication Number Publication Date
JP2017126153A JP2017126153A (ja) 2017-07-20
JP6721340B2 true JP6721340B2 (ja) 2020-07-15

Family

ID=59364296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016004376A Active JP6721340B2 (ja) 2016-01-13 2016-01-13 半導体集積回路

Country Status (1)

Country Link
JP (1) JP6721340B2 (ja)

Also Published As

Publication number Publication date
JP2017126153A (ja) 2017-07-20

Similar Documents

Publication Publication Date Title
US5459855A (en) Frequency ratio detector for determining fixed frequency ratios in a computer system
JP3597782B2 (ja) クロック信号補正回路および半導体装置
US8564355B2 (en) Clock device
US8369477B2 (en) Clock frequency divider circuit and clock frequency division method
CN102497200A (zh) 一种时钟信号丢失检测电路及方法
TW202343182A (zh) 具備時脈丟失容限的無毛刺信號時脈切換電路及其操作方法、以及無毛刺信號時脈切換裝置
US6469544B2 (en) Device for detecting abnormality of clock signal
JP6721340B2 (ja) 半導体集積回路
US20050116754A1 (en) Reset circuit
US7953999B2 (en) Semiconductor integrated circuit device and method of operating the same
JP7031936B2 (ja) メタステーブル回避型同期化回路およびメタステーブル回避方法
US4993051A (en) Johnson counter circuit with invalid counter position detection and correction mechanism
CN110750129B (zh) 分频电路
JP2011199743A (ja) クロック異常検出回路
JP2005332097A (ja) マイクロコンピュータ
JP6944856B2 (ja) 監視回路、マイクロコントローラ、及び監視方法
US8850256B2 (en) Communication circuit and communication method
EP2447805B1 (en) Apparatus and method for synchronizing and providing a glitch-free clock
CN211826248U (zh) 一种脉冲检测电路及检测脉冲信号的设备
KR101006843B1 (ko) 출력신호를 안정적으로 생성하는 동기화 회로
JP3586578B2 (ja) エッジ検出回路
JPS61501661A (ja) 並列同期動作
JP2003203045A (ja) インタフェース回路
JP4819493B2 (ja) 回路システム
JP4951739B2 (ja) 半導体集積回路及び動作条件制御方法

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180216

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180216

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180719

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20180802

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200618

R150 Certificate of patent or registration of utility model

Ref document number: 6721340

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250