(57)【要約】  クロックに同期して動作する装置のクロックを監視するために、クロック動作するユニットを機能単位または領域単位で複数に分割し、各機能または各領域にクロック動作するＦＦ（１０）を含むチェック回路（１００）を設け、チェック回路（１００）のＦＦ（１０）の値を一定時間毎に反転させて機能間または領域間でループ状に伝送し、戻ってきたＦＦ（１０）の値が所定の時間内に変化するか否かをエラー検出回路（２０）がチェックし、所定の時間内で変化しなかった場合にエラーと判定するよう構成する。
2008026283.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号の入力により値が反転するデータを出力するデータ出力手段と、
前記データ出力手段により出力されたデータを受信するデータ受信手段と、
前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、
前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、エラーとして検出を行うエラー検出手段とを有することを特徴とするクロック監視回路。
【請求項２】
前記データ変化検出手段は、クロック信号の入力によりデータの保持を行うデータ保持手段と、
前記データ保持手段の入力と出力との排他的論理和演算を行う論理演算手段とを有することを特徴とする請求項１記載のクロック監視回路。
【請求項３】
第１のユニットと第２のユニットを有する情報処理装置であって、
前記第１のユニットは、
クロック信号の入力により値が反転するデータを前記第２のユニットに出力するデータ出力手段と、
前記第２のユニットが有するデータ出力手段により前記第２のユニットから出力されたデータを受信するデータ受信手段と、
前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、
前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、前記第２のユニットのエラーとして検出を行うエラー検出手段とを有することを特徴とする情報処理装置。
【請求項４】
複数のユニットを有する情報処理装置であって、
前記複数のユニットのうち、一のユニットは、
クロック信号の入力により値が反転するデータを前記複数のユニットのうちのいずれかのユニットに出力するデータ出力手段と、
前記複数のユニットのうちのいずれかのユニットが有するデータ出力手段により前記複数のユニットのうちのいずれかのユニットから出力されたデータを受信するデータ受信手段と、
前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、
前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、前記受信されたデータを出力したユニットのエラーとして検出を行うエラー検出手段とを有することを特徴とする情報処理装置。
【請求項５】
クロック信号に同期して動作する回路の監視を行うクロック監視方法であって、
クロック信号の入力により値が反転するデータを出力するデータ出力ステップと、
前記出力されたデータの受信を行うデータ受信ステップと、
前記受信されたデータの変化を検出するデータ変化検出ステップと、
所定の時間内に前記受信されたデータが変化しない場合には、エラーとして検出を行うエラー検出ステップとを有することを特徴とするクロック監視方法。
【請求項６】
前記データ出力手段は、クロック動作するインクリメンタの最上位ビットを出力することを特徴とする請求項１または２に記載のクロック監視回路。
【請求項７】
前記エラー検出手段は、前記データ受信手段により受信されたデータの値の反転によりリセットされるインクリメンタを用いてエラー検出を行うことを特徴とする請求項１または２に記載のクロック監視回路。
【請求項８】
前記データ出力手段により出力されたデータを受取り、該受取ったデータを前記データ受信手段に同期するように該データ受信手段に送出する同期手段をさらに備えたことを特徴とする請求項１または２に記載のクロック監視回路。
【請求項９】
前記クロック信号に同期して動作する回路は、複数の部分から構成され、
前記データ受信ステップは、前記データ出力ステップによりある部分から送出されたデータが他の部分に伝搬されて戻ってきたデータを該ある部分が受信することを特徴とする請求項５に記載のクロック監視方法。
【請求項１０】
前記クロック信号に同期して動作する回路は、異なるクロックで動作する複数のユニットから構成され、
前記データ受信ステップは、他のユニットにより送出されたデータを受信し、
前記エラー検出ステップは、前記データ受信ステップにより受信されたデータの値が前記所定の時間内に反転するか否かを検出して前記他のユニットのクロックを監視することを特徴とする請求項５に記載のクロック監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロックに同期して動作する装置のクロックを監視するクロック監視回路、情報処理装置およびクロック監視方法に関し、特に、少ないハードウェアで高速にクロックを監視することができるクロック監視回路、情報処理装置およびクロック監視方法に関するものである。
【背景技術】
【０００２】
従来、クロックが正常に動作しているか否かを監視する手法として相互のタイムアウト監視がある。図６は、相互のタイムアウト監視を説明するための説明図である。同図に示すように、相互のタイムアウト監視では、異なるクロックで動作するユニットＡおよびＢの間で一方のユニットＡが他方のユニットＢに起動をかけ、起動を受けたユニットＢは一定時間内にユニットＡに応答を報告する。【０００３】
そして、ユニットＡは起動送出後ユニットＢからの応答があるか否かをチェックし、一定時間内に応答を検出できなかった場合には、ユニットＢのエラーをタイムアウトとして検出する。【０００４】
また、ユニットＡは、タイムアウトによるユニットＢのエラーを検出すると、例えば図７に示すように、エラーが発生したユニットＢを切り離し、代替ユニットであるユニットＣに切り替える処理を行う。なお、図７は、ユニットＢおよびユニットＣがメモリであり、ユニットＡとユニットＤがユニットＢまたはユニットＣ上のデータを共有する場合を示している。【０００５】
相互のタイムアウト監視以外には、特定のＦＦの内容をＩＥＥＥ標準１１４９．１のＪＴＡＧスキャン（例えば、特許文献１参照。）を用いて読み出し、スキャンにより読み出したデータが期待値と一致するか否かによってエラーを検出する手法がある。【０００６】
なお、情報処理装置の内部クロックに関する技術としては、特許文献２に、内部クロック停止時にレジスタ間のデ−タ伝播状況の把握をすることを目的としたデータの伝搬域を検出する技術が開示されている。【０００７】
【特許文献１】特開平１０−１４３３９０号公報
【特許文献２】特開昭６２−１１５５４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
相互のタイムアウト監視では、図７に示したユニットＢのユニットＡからの起動を受け付ける部分のＦＦが故障により正常に動作できない状態では、ユニットＢはユニットＡからの切り離し命令を受け付けられない状態になる。ここで、ユニットＡはユニットＢのエラーを検出しているので、ユニットＢのデータを使わない(または別のユニットＣに切り替える)ことができるが、ユニットＤはユニットＡが検知したユニットＢの故障がわからず継続してユニットＢを使用するという状況が発生する。このような状況に対しては、ユニットＡからユニットＢ、Ｃへの切り離し命令を伝えるパス／回路を２重化すれば対応できるがハードウェア量の増大を招いてしまうという問題がある。【０００９】
また、例えばＩＥＥＥ１１４９．１で規定されるＪＴＡＧを利用する場合には、ＳＶＰ(サービスプロセッサ)を介したプログラムにより定期的に回路チェックを行うが、当該プログラムの動作時間によりシステムに矛盾が拡大してしまい、ＯＳ等が矛盾を解消できず結果的にシステム動作を継続できなくなる場合がある。【００１０】
本発明は、上述した従来技術における問題点を解消するためになされたものであり、より少ないハードウェアで高速にクロックを監視することができるクロック監視回路、情報処理装置およびクロック監視方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、本発明に係るクロック監視回路は、クロック信号の入力により値が反転するデータを出力するデータ出力手段と、前記データ出力手段により出力されたデータを受信するデータ受信手段と、前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、エラーとして検出を行うエラー検出手段とを有することを特徴とする。【００１２】
この発明によれば、クロック信号の入力により値が反転するデータを出力し、出力したデータを受信し、受信したデータの変化を検出し、所定の時間内に受信したデータが変化しない場合には、エラーとして検出を行うよう構成したので、簡単な機構でクロックを監視することができる。【００１３】
また、本発明に係るクロック監視回路のデータ変化検出手段は、クロック信号の入力によりデータの保持を行うデータ保持手段と、前記データ保持手段の入力と出力との排他的論理和演算を行う論理演算手段とを有するように構成してもよい。【００１４】
この発明によれば、クロック信号の入力によりデータの保持を行い、保持手段の入力と出力との排他的論理和演算を行うよう構成したので、簡単な機構でデータの変化を検出することができる。【００１５】
また、本発明に係る情報処理装置は、第１のユニットと第２のユニットを有する情報処理装置であって、前記第１のユニットは、クロック信号の入力により値が反転するデータを前記第２のユニットに出力するデータ出力手段と、前記第２のユニットが有するデータ出力手段により前記第２のユニットから出力されたデータを受信するデータ受信手段と、前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、前記第２のユニットのエラーとして検出を行うエラー検出手段とを有することを特徴とする。【００１６】
この発明によれば、第１のユニットは、クロック信号の入力により値が反転するデータを第２のユニットに出力し、第２のユニットから出力されたデータを受信し、受信したデータの変化を検出し、受信したデータが所定の時間内に変化しない場合には、第２のユニットのエラーとして検出を行うよう構成したので、簡単な機構でクロックを監視することができる。【００１７】
また、本発明に係る情報処理装置は、複数のユニットを有する情報処理装置であって、前記複数のユニットのうち、一のユニットは、クロック信号の入力により値が反転するデータを前記複数のユニットのうちのいずれかのユニットに出力するデータ出力手段と、前記複数のユニットのうちのいずれかのユニットが有するデータ出力手段により前記複数のユニットのうちのいずれかのユニットから出力されたデータを受信するデータ受信手段と、前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、前記受信されたデータを出力したユニットのエラーとして検出を行うエラー検出手段とを有することを特徴とする。【００１８】
本発明によれば、複数のユニットのうち、一のユニットは、クロック信号の入力により値が反転するデータを複数のユニットのうちのいずれかのユニットに出力し、複数のユニットのうちのいずれかのユニットから出力されたデータを受信し、受信したデータの変化を検出し、受信したデータが所定の時間内に変化しない場合には、受信したデータを出力したユニットのエラーとして検出を行うよう構成したので、簡単な機構でクロックを監視することができる。【００１９】
また、本発明に係るクロック監視方法は、クロック信号に同期して動作する回路の監視を行うクロック監視方法であって、クロック信号の入力により値が反転するデータを出力するステップと、前記出力されたデータの受信を行うステップと、前記受信されたデータの変化を検出するステップと、所定の時間内に前記受信されたデータが変化しない場合には、エラーとして検出を行うステップとを有することを特徴とする。【００２０】
この発明によれば、クロック信号の入力により値が反転するデータを出力し、出力したデータを受信し、受信したデータの変化を検出し、所定の時間内に受信したデータが変化しない場合には、エラーとして検出を行うよう構成したので、簡単な機構でクロックを監視することができる。【００２１】
また、前記データ出力手段は、クロック動作するインクリメンタの最上位ビットを出力することを特徴とする。【００２２】
この発明によれば、クロック動作するインクリメンタの最上位ビットを出力するよう構成したので、簡単な機構でクロックを監視するデータを出力することができる。【００２３】
また、前記エラー検出手段は、前記データ受信手段により受信されたデータの値の反転によりリセットされるインクリメンタを用いてエラー検出を行うことを特徴とする。【００２４】
この発明によれば、受信したデータの値の反転によりリセットされるインクリメンタを用いてエラー検出を行うよう構成したので、簡単な機構でエラー検出を行うことができる。【００２５】
また、前記データ出力手段により出力されたデータを受取り、該受取ったデータを前記データ受信手段に同期するように該データ受信手段に送出する同期手段をさらに備えたことを特徴とする。【００２６】
この発明によれば、出力されたデータを受取り、受取ったデータをデータ受信手段に同期するようにデータ受信手段に送出するよう構成したので、クロック監視用のデータの送受信を同期させることができる。【００２７】
また、前記クロック信号に同期して動作する回路は、複数の部分から構成され、前記データ受信ステップは、前記データ出力ステップによりある部分から送出されたデータが他の部分に伝搬されて戻ってきたデータを該ある部分が受信することを特徴とする。【００２８】
この発明によれば、クロック信号に同期して動作する回路は、複数の部分から構成され、ある部分から送出されたデータが他の部分に伝搬されて戻ってきたデータをある部分が受信するよう構成したので、回路内にデータを伝搬させることによってクロックを監視することができる。【００２９】
また、前記クロック信号に同期して動作する回路は、異なるクロックで動作する複数のユニットから構成され、前記データ受信ステップは、他のユニットにより送出されたデータを受信し、前記エラー検出ステップは、前記データ受信ステップにより受信されたデータの値が前記所定の時間内に反転するか否かを検出して前記他のユニットのクロックを監視することを特徴とする。【００３０】
この発明によれば、クロック信号に同期して動作する回路は、異なるクロックで動作する複数のユニットから構成され、他のユニットにより送出されたデータを受信し、受信したデータの値が所定の時間内に反転するか否かを検出して他のユニットのクロックを監視するよう構成したので、簡単な機構で他のユニットのクロックを監視することができる。
【発明の効果】
【００３１】
本発明によれば、簡単な機構でクロックを監視するので、少ないハードウェアで高速にクロックを監視することができるという効果を奏する。【００３２】
本発明によれば、簡単な機構でクロック監視用のデータの変化を検出するので、少ないハードウェアで高速にクロックを監視することができるという効果を奏する。【００３３】
本発明によれば、簡単な機構でクロック監視用のデータを出力するので、少ないハードウェアで高速にクロックを監視することができるという効果を奏する。【００３４】
本発明によれば、簡単な機構でクロック監視用のデータのエラー検出を行うので、少ないハードウェアで高速にクロックを監視することができるという効果を奏する。【００３５】
本発明によれば、クロック監視用のデータの送受信を同期させるので、正確にクロックを監視することができる。【００３６】
本発明によれば、回路内にデータを伝搬させることによってクロックを監視するので、少ないハードウェアで高速にクロックを監視することができるという効果を奏する。【００３７】
本発明によれば、簡単な機構で他のユニットのクロックを監視するので、少ないハードウェアで高速に他のユニットのクロックを監視することができるという効果を奏する。
【図面の簡単な説明】
【００３８】
【図１】図１は、本実施例１に係るクロック監視機構を説明するための説明図である。
【図２】図２は、本実施例１に係るチェック回路の構成を示す機能ブロック図である。
【図３】図３は、本実施例２に係るクロック監視機構を説明するための説明図である。
【図４】図４は、図３に示した出力回路２１１およびチェック回路２２２を示す図である。
【図５】図５は、三つのユニットでのクロック相互監視を示す図である。
【図６】図６は、相互のタイムアウト監視を説明するための説明図である。
【図７】図７は、エラー検出後の処理の一例を示す図である。
【図８】図８は、本実施例２の通常時動作を示すタイミングチャートである。
【図９】図９は、本実施例２のエラー時動作を示すタイミングチャートである。
【図１０】図１０は、本実施例１の通常時動作を示すタイミングチャートである。
【図１１】図１１は、本実施例１のエラー時動作を示すタイミングチャートである。
【符号の説明】
【００３９】
１〜４    ＦＦ（フリップフロップ）
５，６    ＥＯＲ（排他的論理和演算回路）
１０    ＦＦ（フリップフロップ）
２０    エラー検出回路
１００    チェック回路
２１１    出力回路
２１１ａ    チェック回路有効フラグ
２１１ｂ    インクリメンタ
２１２    チェック回路
２２１    出力回路
２２２    チェック回路
２２２ａ    チェック回路有効フラグ
２２２ｂ    インクリメンタ
２２２ｃ    エラー検出回路
【発明を実施するための最良の形態】
【００４０】
以下に添付図面を参照して、本発明に係るクロック監視回路、情報処理装置およびクロック監視方法の好適な実施例を詳細に説明する。
【実施例１】
【００４１】
まず、本実施例１に係るクロック監視機構について説明する。図１は、本実施例１に係るクロック監視機構を説明するための説明図である。同図に示すように、このクロック監視機構では、監視対象のクロックで動作するユニットＷを機能ブロックまたは領域ブロックで分割する（図１のＸ、Ｙ及びＺ）。【００４２】
そして、Ｘは一定時間毎に、クロック動作するＦＦに保持されるデータを反転させＹに送る。Ｙも同様にＦＦに保持されるデータを一定時間毎に反転させＺに送る。Ｚも同様にＦＦに保持されるデータを一定時間毎に反転させＸに送る。そして、ＸはＹに一定時間毎に反転したデータを送るのと同時に、Ｚからのデータが一定時間内で変化するか否かをチェックする。そして、Ｚからのデータが一定時間内に変化しない場合には、クロックに異常があると判定する。ＹおよびＺにおいても同様とする。【００４３】
このように、一定時間毎に反転するＦＦのデータを機能ブロック間または領域ブロック間でループ状に伝送し、戻ってきたデータが一定時間内で変化するか否かをチェックすることにより、少ないハードウェアでクロックを監視することができる。【００４４】
次に、本実施例１に係るチェック回路の構成について説明する。図２は、本実施例１に係るチェック回路の構成を示すブロック図である。同図に示すように、このチェック回路１００は、ＦＦ１〜４と、ＥＯＲ５および６と、ＦＦ１０と、エラー検出回路２０とを有する。【００４５】
ＦＦ１〜４は直列に接続され、クロック動作するフリップフロップ（Ｆｌｉｐ−Ｆｌｏｐ）であり、各ブロックに入力される信号のクロック信号に対する同期をとるために設けられている。ＦＦ４の入力およびＦＦ４の出力は、データの変化を検出（エッジトリガ）するための排他的論理和（Ｅｘｃｌｕｓｉｖｅ−ＯＲ）演算を行うＥＯＲ５の２つの入力にそれぞれ接続され、クロック信号の入力とともにＦＦ１〜３を経由してＦＦ４に伝播するデータが変化すると、ＦＦ４の入力（ＦＦ３の出力）とＦＦ４の出力との排他的論理和演算を行うＥＯＲ５の出力が”１”となりＥＯＲ６の入力６ａが”１”になる。【００４６】
具体的には、ＦＦ４に保持されるデータが”０”である場合に、ＦＦ３に保持されるデータが”１”のときには、ＥＯＲ５による排他的論理和演算の結果として”１”がＥＯＲ６の入力６ａに出力されることにより、データの変化を検出（エッジトリガ）することができる。また、クロック信号の入力とともに、ＦＦ３に保持されていたデータ”１”がＦＦ４に伝播し、ＦＦ２に保持されていたデータ”０”がＦＦ３に伝播したときにも、ＥＯＲ５による排他的論理和演算の結果として”１”がＥＯＲ６の入力６ａに出力されることにより、データの変化を検出（エッジトリガ）することができる。従って、クロック信号毎にＦＦ４に保持されるデータが反転し続ける限り、ＥＯＲ５の出力は‘１’となる【００４７】
ＦＦ１０は、クロック動作するフリップフロップであり、排他的論理和演算を行うＥＯＲ６によりクロック毎に保持されるデータが反転して出力される。前述したＥＯＲ５の出力を排他的論理和演算を行うＥＯＲ６の一方の入力６ａに接続し、ＥＯＲ６の出力をＦＦ１０の入力に接続することによって、ＥＯＲ６の他の入力６ｂが”１”になるとＦＦ１０のデータが反転して出力される。【００４８】
具体的には、前述したＦＦ１〜４を経由して伝播してくるデータが、クロック信号の入力とともに変化する限り、ＥＯＲ５が出力しＥＯＲ６の入力６ａに入力されるデータは常に”１”となる。そうすると、次のクロック信号の入力とともにＦＦ１０にはデータ”１”がセットされるとともに、ＦＦ１０はデータ”１”の出力を行う。その結果、ＥＯＲ６の入力６ｂにはデータ”１”が入力され、排他的論理和演算によるＥＯＲ５が出力するデータは”０”となる。従って、次のクロック信号の入力とともにＦＦ１０にはデータ”０”がセットされるとともに、ＦＦ１０はデータ”０”の出力を行う。【００４９】
すなわち、クロック信号の入力とともに値が変化するＦＦ１０の出力データが、ユニットＹ及びユニットＺ経由でユニットＸに伝搬すると、ユニットＸ内のＦＦ４にセットされるデータが変化し、その結果ＦＦ１０の出力するデータがクロック信号の入力とともに変化しながら伝播することとなる。【００５０】
エラー検出回路２０は、ＦＦ１０の値が一定時間以内に変化するか否かを検出することによってクロックのエラーを検出する回路であり、ＦＦ１０の値が一定時間以内に変化しない場合には、エラーが発生したと判定する。【００５１】
図２はユニットＸのチェック回路１００を示すが、ユニットＹおよびユニットＺにも同様のチェック回路があり、最初はチェック回路上の全てのＦＦが'０'であったとする。エラーチェックをスタートさせる時はユニットＸのＦＦ１０に'１'をセットする。そして、ユニットＹに'１'が伝播していき、ユニットＹが有するＦＦ１０に'１'がセットされる。同様にユニットＺのＦＦ１０に'１'がセットされユニットＸに戻ってくる。そして、ユニットＸに'１'が伝播してくるとＦＦ１０は次に'０'にセットされ、あとはユニットＸ、ユニットＹおよびユニットＺが有するＦＦ１０はクロック信号の入力とともに'０'→'１'→'０'と変化し続ける。【００５２】
最初にＸのＦＦ１０に'１'を設定してから十分時間が経ち、ユニットＸ、ユニットＹおよびユニットＺが動作し始めたら、チェック回路１００によるエラーチェックを有効にする。ユニットＸでエラーが検出された場合、残りのユニットＹまたはユニットＺのうちのどちらかのユニットが有するＦＦ１０の動作が正常ではないことが判断できる。【００５３】
上述してきたように、本実施例１では、各ユニットを機能ブロックまたは領域ブロック毎に複数に分割し、各機能ブロックまたは各領域ブロックにクロック動作するＦＦ１０とチェック回路１００を設け、ＦＦ１０のデータをクロック信号が入力される毎に反転させて機能ブロック間または領域ブロック間でループ状に伝送し、シフトされるデータの値が所定の時間内に変化するか否かをエラー検出回路２０がチェックすることによって、クロックを監視することができる。なお、本実施例１に係るクロック監視機構の通常時とエラー発生時の動作を図１０および図１１に示す。
【実施例２】
【００５４】
ところで、上記実施例１では、クロック信号の入力とともに変化するデータをユニット間においてループ状に伝搬させることによってクロックの監視を行う場合について説明したが、ユニット間で相互にクロックを監視することもできる。そこで、本実施例２では、ユニット間で相互にクロックを監視する場合について説明する。【００５５】
図３は、本実施例２に係るクロック監視機構を説明するための説明図である。同図は、オシレータＵのクロックで動作するユニットＵと、オシレータＵとは異なるオシレータＶのクロックで動作するユニットＶとが相互にクロックを監視する場合を示している。【００５６】
図３に示すように、ユニットＵは出力回路２１１とチェック回路２１２とを有し、ユニットＶも同様に出力回路２２１とチェック回路２２２とを有する。そして、ユニットＵの出力回路２１１は一定時間毎に反転するビットを送出し、出力回路２１１によって送出されたビットをユニットＶのチェック回路２２２がチェックする一方、ユニットＶの出力回路２２１も一定時間毎に反転するビットを送出し、出力回路２２１によって送出されたビットをユニットＵのチェック回路２１２がチェックすることによってユニットＵとユニットＶは相互にオシレータＵまたはオシレータＶが出力するクロック信号が正しく動作しているか否かを監視する。【００５７】
また、ユニットＵ、ユニットＶでのチェック結果がエラーだった場合にオシレータＵ、オシレータＶによらず動作できる回路がエラーに対応できるようにエラー報告パス（図３の割り込み）がある。【００５８】
図４は、図３に示した出力回路２１１およびチェック回路２２２を示す図である。出力回路２１１、チェック回路２２２は、それぞれ動作開始を示すチェック回路有効フラグを保持するＳＲ（セットリセット）ラッチ２１１ａ、ＳＲラッチ２２２ａがある。各ユニットの初期化完了後、クロックが動作開始した(ハズの)後のタイミングで出力回路２１１のチェック回路有効フラグ用ＳＲラッチ２１１ａ、続けて受け回路２２２のチェック回路有効フラグ用ＳＲラッチ２２２ａを”１”にセットする。【００５９】
また、出力回路２１１には３ビットのインクリメンタ２１１ｂが装備されており、このインクリメンタ２１１ｂは、チェック回路有効フラグ用ＳＲラッチ２１１ａが”１”の場合にはクロックが入る限りインクリメントし、チェック回路有効フラグ用ＳＲラッチ２１１ａが”０”である場合またはユニットＶからのデータの変化が検出された場合にはＲＥＳＥＴされ続けるためインクリメントを行わない。つまり、インクリメンタ２１１ｂのインクリメント条件はチェック回路有効フラグ用ＳＲラッチ２１１ｂの値が“１”であることであり、リセット条件はユニットＶからのデータの変化が検出されることまたはチェック回路有効フラグ用ＳＲラッチ２１１ｂの値が“０”であることとなる。なお、インクリメンタ２１１ｂの必要ビット数は、オシレータＵとオシレータＶとの周期差によって変化する。【００６０】
そして、出力回路２１１は、インクリメンタ２１１ｂの最上位ビットの出力を同期化回路２３０を経由してユニットＶに送る。したがって、ユニットＵのクロックが正常な状態であれば、ユニットＶに送られるデータはインクリメンタ２１１ｂの最上位ビットに桁上がりが発生する４クロック毎に変化する。なお、同期化回路２３０は、クロック動作するフリップフロップを直接に接続した回路であり、インクリメンタ２１１ｂの最上位ビット出力のクロック信号に対する同期をとるために設けられた回路である。同期化を行う理由は、メタステーブル現象によるＦＦの誤動作を防止するためである。メタステーブルとは、ＦＦの出力が長い間閾値付近の電位にとどまる現象である。メタステーブルが発生すると、誤作動を起こすだけでなく素子の劣化の原因にもなるため、２段以上のＦＦを直列に接続した同期化回路を用いて受信することにより、その出力におけるメタステーブル現象の発生頻度を実用上問題ない程度にまで低減することができる。【００６１】
一方、ユニットＶのチェック回路２２２にも３ビットのインクリメンタ２２２ｂがある。このインクリメンタ２２２ｂも出力回路２１１のインクリメンタ２１１ｂと同様に、チェック回路有効フラグ用ＳＲラッチ２２２ａが”１”である限りインクリメントし、チェック回路有効フラグ用ＳＲラッチ２２２ａが”０”である場合またはユニットＵからのデータの変化が検出された場合にはＲＥＳＥＴされ続けるためインクリメントを行わない。つまり、インクリメンタ２２２ｂのインクリメント条件はチェック回路有効フラグ用ＳＲラッチ２２２ｂの値が“１”であることであり、リセット条件はユニットＵからのデータの変化が検出されることまたはチェック回路有効フラグ用ＳＲラッチ２２２ｂの値が“０”であることとなる。なお、インクリメンタ２２２ｂの必要ビット数は、オシレータＵとオシレータＶとの周期差によって変化する。【００６２】
したがって、正常な状態であればこのインクリメンタ２２２ｂの値はインクリメンタ２２２ｂの最上位ビットに桁上がりが発生する４クロック毎にＲＥＳＥＴされ、このインクリメンタ２２２ｂの値が例えば”１１１”となることはない。したがって、このインクリメンタ２２２ｂの値が”１１１”となると、一定の時間以内にユニットＵからのデータの変化が検出されなかったことになる。【００６３】
エラー検出回路２２２ｃは、インクリメンタ２２２ｂの値が”１１１”であることをデコードすることによってエラーを検出する回路であり、エラーを検出した場合にはオシレータＵおよびオシレータＶとは無関係に動作できる回路にエラーを報告する。【００６４】
上述してきたように、本実施例２では、ユニットＵの出力回路２１１のインクリメンタ２１１ｂがクロック入力に基づいてインクリメントするとともに最上位ビットをチェック回路２２２に送出し、出力回路２１１から送出されるデータが変化するとチェック回路２２２のインクリメンタ２２２ｂをリセットし、インクリメンタ２２２ｂの値が”１１１”になるとエラー検出回路２２２ｃがエラーを報告することとしたので、オシレータＵのクロックを監視することができる。【００６５】
なお、本実施例２では、二つのユニット間で相互にクロックの動作を監視する場合について説明したが、三つ以上のユニット間でも同様にクロックの動作を監視することができる。図５は、三つのユニットでのクロック相互監視を示す図である。同図に示すように、ユニットＰ、ユニットＱ、ユニットＲの三つのユニットにおいて、ユニットＰの出力回路が送出するデータをユニットＱのチェック回路がチェックし、ユニットＱの出力回路が送出するデータをユニットＲのチェック回路がチェックし、ユニットＲの出力回路が送出するデータをユニットＰのチェック回路がチェックすることによって、三つのユニット間でクロックの動作を監視することができる。【００６６】
次に、本実施例２に係るクロック監視機構の通常時とエラー発生時の動作について説明する。図８は、通常時の動作を示すタイミングチャートであり、図９は、エラー発生時の動作を示すタイミングチャートである。【００６７】
図８において、「出し側クロック」は図３のオシレータＵの出力、「出し回路ｓｔａｒｔ＿ｆｌａｇ」は図４のユニット２１１側のチェック回路有効フラグ用ＳＲラッチ２１１ａの出力であり、値が０の場合に３ＢＩＴインクリメンタ２１１ｂがカウント動作を行い、値が１の場合には３ＢＩＴインクリメンタ２１１ｂをリセットし続けることによりカウント動作を停止する。「出しＣＴ」は図４の出力側カウンタであるユニット２１１中の３ＢＩＴインクリメンタ２１１ｂの値を指す。「ＣＴ０，ＣＴ１，ＣＴ２」はそれぞれ３ＢＩＴインクリメンタ２１１ｂのビット０出力、ビット１出力及びビット２出力を表す。【００６８】
「受け側クロック」は図３のオシレータＶの出力、「同期化」とあるのは多段のＦＦにより構成される図４の同期化回路２３０における信号の同期化のプロセスを表し、上から１段目、２段目、３段目及び４段目の波形はそれぞれ、同期化回路２３０の１段目の同期化ＦＦ，２段目の同期化ＦＦ，３段目の同期化ＦＦ及び４段目の同期化ＦＦの出力を表す。また、上から５段目の波形は、図４の受信側ユニット２２２における受信ＦＦの出力を表す。さらに、「同期化」の欄における上から４段目の波形から「チェックＣＴ」の段に下りている矢印は、図４のユニット２２２のＥＯＲ回路によるエッジトリガ動作を現す。つまり、前記５段目の同期化ＦＦの入力と出力との排他的論理和演算をＥＯＲにより行うことにより、波形の立ち上がりと波形の立下りの検出を行うとともに、３ＢＩＴインクリメンタ２２２ｂのカウント値をリセットする。【００６９】
「チェック開始ｆｌａｇ」は図４のユニット２２２側のチェック回路有効フラグ用ＳＲラッチ２２２ｂの出力であり、値が０の場合に３ＢＩＴインクリメンタ２２２ｂがカウント動作を行い、値が１の場合には３ＢＩＴインクリメンタ２２２ｂをリセットし続けることによりカウント動作を停止する。【００７０】
ここで、図８の通常時動作のタイミングチャートを説明すると、まず、図３のオシレータＵの出力として「出し側クロック」が正常に動作しているときに、図４のユニット２１１側のチェック回路有効フラグ用ＳＲラッチ２１１ａに‘１’をセットすることによりタイミングチャート上の「出し回路ｓｔａｒｔ＿ｆｌａｇ」が‘１’となり、図４のユニット２１１側の３ＢＩＴインクリメンタ２１１ｂがカウント動作を開始し、「出しＣＴ」の「ＣＴ０，ＣＴ１，ＣＴ２」が動作し、最上位ビットであるビット２、つまりタイミングチャートにおける「ＣＴ２」の出力が１となる。【００７１】
ユニット２１１は３ＢＩＴインクリメンタ２１１ｂのし最上位ビット信号であるビット２の出力を行い、当該最上位ビット出力信号は「同期化回路２３０」の４段ＦＦにより同期化がなされる。【００７２】
図４のユニット２２２側のチェック回路有効フラグ用ＳＲラッチ２２２ｂに‘１’をセットすることにより図８のタイミングチャート上の「チェック開始ｆｌａｇ」が‘１’となり、図４のユニット２２２側の３ＢＩＴインクリメンタ２２２ｂがカウント動作を開始し、「出しＣＴ」の「ＣＴ０，ＣＴ１，ＣＴ２」がカウント動作を開始する。ここで、上述した図４のユニット２２２のＥＯＲ回路によるエッジトリガ動作により、同期化回路２３０による同期化後の最上位ビット信号の立ち上がりと立下りの検出を行い、ユニット２２２側の３ＢＩＴインクリメンタのリセットを４クロック毎に行うため、「チェックＣＴ」はエラー検出条件である‘１１１’までマウント動作を行うことはない。従って、図４の実施例２においては、図３のオシレータＵが正常動作している限り、エラーの検出がされないことがわかる。【００７３】
次に、図９のエラー発生時のタイミングチャートの動作を説明する。具体的には、上述した通常時動作を行っている最中に、「出し側クロック」が停止した場合の説明を行う。なお、信号名の説明は、上述した図８における説明と同様であるため省略する。【００７４】
上述した通常時動作の最中に図３におけるオシレータＵが停止した場合には、まず、図９における「出し側クロック」が停止する（図９中の「★」の時点）。そうすると、図４におけるチェック回路有効フラグ用ＳＲラッチ２１１ａに‘１’がセットされているのにも関わらず３ＢＩＴインクリメンタ２１１ｂのカウント動作が停止することになる。そうすると、最上位ビットであるビット２、つまりタイミングチャートにおける「ＣＴ２」の出力は‘０’または‘１’に固定されることにより、受信側ユニット２２２内のＥＯＲの排他的論理和演算の結果は常に‘０’となるため、３ＢＩＴインクリメンタ２２２ｂはリセットされず、図３におけるオシレータＶのクロックが入力される毎に、３ＢＩＴインクリメンタ２２２ｂのカウント動作が行われることにより、「チェックＣＴ」の「ＣＴ０」、「ＣＴ１」及び「ＣＴ２」が‘１１１’までカウントアップし、エラー検出回路２２２ｃによるカウンタ値‘１１１’のデコードの結果、エラーが検出されることとなる。【００７５】
なお、本実施例１および２では、クロックの動作を監視する場合について説明したが、本発明はこれに限定されるものではなく、クロックにより動作するＦＦ制御系の異常を監視する場合にも同様に適用することができる。
【産業上の利用可能性】
【００７６】
以上のように、本発明に係るクロック監視回路、情報処理装置およびクロック監視方法は、情報処理装置の異常検出に有用であり、特に、少量のハードウェアでクロック監視が必要な場合に適している。
【図１】
2008026283.tif 000003
【図２】
2008026283.tif 000004
【図３】
2008026283.tif 000005
【図４】
2008026283.tif 000006
【図５】
2008026283.tif 000007
【図６】
2008026283.tif 000008
【図７】
2008026283.tif 000009
【図８】
2008026283.tif 000010
【図９】
2008026283.tif 000011
【図１０】
2008026283.tif 000012
【図１１】
2008026283.tif 000013
【手続補正書】
【提出日】平成20年11月7日(2008.11.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クロック信号の入力により値が反転するデータを出力するデータ出力手段と、
前記データ出力手段により出力されたデータを受信するデータ受信手段と、
前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、
前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、エラーとして検出を行うエラー検出手段とを有することを特徴とするクロック監視回路。
【請求項２】
前記データ変化検出手段は、クロック信号の入力によりデータの保持を行うデータ保持手段と、
前記データ保持手段の入力と出力との排他的論理和演算を行う論理演算手段とを有することを特徴とする請求項１記載のクロック監視回路。
【請求項３】
第１のユニットと第２のユニットを有する情報処理装置であって、
前記第１のユニットは、
クロック信号の入力により値が反転するデータを前記第２のユニットに出力するデータ出力手段と、
前記第２のユニットが有するデータ出力手段により前記第２のユニットから出力されたデータを受信するデータ受信手段と、
前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、
前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、前記第２のユニットのエラーとして検出を行うエラー検出手段とを有することを特徴とする情報処理装置。
【請求項４】
複数のユニットを有する情報処理装置であって、
前記複数のユニットのうち、一のユニットは、
クロック信号の入力により値が反転するデータを前記複数のユニットのうちのいずれかのユニットに出力するデータ出力手段と、
前記複数のユニットのうちのいずれかのユニットが有するデータ出力手段により前記複数のユニットのうちのいずれかのユニットから出力されたデータを受信するデータ受信手段と、
前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、
前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、前記受信されたデータを出力したユニットのエラーとして検出を行うエラー検出手段とを有することを特徴とする情報処理装置。
【請求項５】
クロック信号に同期して動作する回路の監視を行うクロック監視方法であって、
クロック信号の入力により値が反転するデータを出力するデータ出力ステップと、
前記出力されたデータの受信を行うデータ受信ステップと、
前記受信されたデータの変化を検出するデータ変化検出ステップと、
所定の時間内に前記受信されたデータが変化しない場合には、エラーとして検出を行うエラー検出ステップとを有することを特徴とするクロック監視方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロックに同期して動作する装置のクロックを監視するクロック監視回路、情報処理装置およびクロック監視方法に関し、特に、少ないハードウェアで高速にクロックを監視することができるクロック監視回路、情報処理装置およびクロック監視方法に関するものである。
【背景技術】
【０００２】
従来、クロックが正常に動作しているか否かを監視する手法として相互のタイムアウト監視がある。図６は、相互のタイムアウト監視を説明するための説明図である。同図に示すように、相互のタイムアウト監視では、異なるクロックで動作するユニットＡおよびＢの間で一方のユニットＡが他方のユニットＢに起動をかけ、起動を受けたユニットＢは一定時間内にユニットＡに応答を報告する。
【０００３】
そして、ユニットＡは起動送出後ユニットＢからの応答があるか否かをチェックし、一定時間内に応答を検出できなかった場合には、ユニットＢのエラーをタイムアウトとして検出する。
【０００４】
また、ユニットＡは、タイムアウトによるユニットＢのエラーを検出すると、例えば図７に示すように、エラーが発生したユニットＢを切り離し、代替ユニットであるユニットＣに切り替える処理を行う。なお、図７は、ユニットＢおよびユニットＣがメモリであり、ユニットＡとユニットＤがユニットＢまたはユニットＣ上のデータを共有する場合を示している。
【０００５】
相互のタイムアウト監視以外には、特定のＦＦの内容をＩＥＥＥ標準１１４９．１のＪＴＡＧスキャン（例えば、特許文献１参照。）を用いて読み出し、スキャンにより読み出したデータが期待値と一致するか否かによってエラーを検出する手法がある。
【０００６】
なお、情報処理装置の内部クロックに関する技術としては、特許文献２に、内部クロック停止時にレジスタ間のデ−タ伝播状況の把握をすることを目的としたデータの伝搬域を検出する技術が開示されている。
【０００７】
【特許文献１】特開平１０−１４３３９０号公報
【特許文献２】特開昭６２−１１５５４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
相互のタイムアウト監視では、図７に示したユニットＢのユニットＡからの起動を受け付ける部分のＦＦが故障により正常に動作できない状態では、ユニットＢはユニットＡからの切り離し命令を受け付けられない状態になる。ここで、ユニットＡはユニットＢのエラーを検出しているので、ユニットＢのデータを使わない(または別のユニットＣに切り替える)ことができるが、ユニットＤはユニットＡが検知したユニットＢの故障がわからず継続してユニットＢを使用するという状況が発生する。このような状況に対しては、ユニットＡからユニットＢ、Ｃへの切り離し命令を伝えるパス／回路を２重化すれば対応できるがハードウェア量の増大を招いてしまうという問題がある。
【０００９】
また、例えばＩＥＥＥ１１４９．１で規定されるＪＴＡＧを利用する場合には、ＳＶＰ(サービスプロセッサ)を介したプログラムにより定期的に回路チェックを行うが、当該プログラムの動作時間によりシステムに矛盾が拡大してしまい、ＯＳ等が矛盾を解消できず結果的にシステム動作を継続できなくなる場合がある。
【００１０】
本発明は、上述した従来技術における問題点を解消するためになされたものであり、より少ないハードウェアで高速にクロックを監視することができるクロック監視回路、情報処理装置およびクロック監視方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、本発明に係るクロック監視回路は、クロック信号の入力により値が反転するデータを出力するデータ出力手段と、前記データ出力手段により出力されたデータを受信するデータ受信手段と、前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、エラーとして検出を行うエラー検出手段とを有することを特徴とする。
【００１２】
この発明によれば、クロック信号の入力により値が反転するデータを出力し、出力したデータを受信し、受信したデータの変化を検出し、所定の時間内に受信したデータが変化しない場合には、エラーとして検出を行うよう構成したので、簡単な機構でクロックを監視することができる。
【００１３】
また、本発明に係るクロック監視回路のデータ変化検出手段は、クロック信号の入力によりデータの保持を行うデータ保持手段と、前記データ保持手段の入力と出力との排他的論理和演算を行う論理演算手段とを有するように構成してもよい。
【００１４】
この発明によれば、クロック信号の入力によりデータの保持を行い、保持手段の入力と出力との排他的論理和演算を行うよう構成したので、簡単な機構でデータの変化を検出することができる。
【００１５】
また、本発明に係る情報処理装置は、第１のユニットと第２のユニットを有する情報処理装置であって、前記第１のユニットは、クロック信号の入力により値が反転するデータを前記第２のユニットに出力するデータ出力手段と、前記第２のユニットが有するデータ出力手段により前記第２のユニットから出力されたデータを受信するデータ受信手段と、前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、前記第２のユニットのエラーとして検出を行うエラー検出手段とを有することを特徴とする。
【００１６】
この発明によれば、第１のユニットは、クロック信号の入力により値が反転するデータを第２のユニットに出力し、第２のユニットから出力されたデータを受信し、受信したデータの変化を検出し、受信したデータが所定の時間内に変化しない場合には、第２のユニットのエラーとして検出を行うよう構成したので、簡単な機構でクロックを監視することができる。
【００１７】
また、本発明に係る情報処理装置は、複数のユニットを有する情報処理装置であって、前記複数のユニットのうち、一のユニットは、クロック信号の入力により値が反転するデータを前記複数のユニットのうちのいずれかのユニットに出力するデータ出力手段と、前記複数のユニットのうちのいずれかのユニットが有するデータ出力手段により前記複数のユニットのうちのいずれかのユニットから出力されたデータを受信するデータ受信手段と、前記データ受信手段により受信されたデータの変化を検出するデータ変化検出手段と、前記データ変化検出手段により所定の時間内に前記受信されたデータが変化しない場合には、前記受信されたデータを出力したユニットのエラーとして検出を行うエラー検出手段とを有することを特徴とする。
【００１８】
本発明によれば、複数のユニットのうち、一のユニットは、クロック信号の入力により値が反転するデータを複数のユニットのうちのいずれかのユニットに出力し、複数のユニットのうちのいずれかのユニットから出力されたデータを受信し、受信したデータの変化を検出し、受信したデータが所定の時間内に変化しない場合には、受信したデータを出力したユニットのエラーとして検出を行うよう構成したので、簡単な機構でクロックを監視することができる。
【００１９】
また、本発明に係るクロック監視方法は、クロック信号に同期して動作する回路の監視を行うクロック監視方法であって、クロック信号の入力により値が反転するデータを出力するステップと、前記出力されたデータの受信を行うステップと、前記受信されたデータの変化を検出するステップと、所定の時間内に前記受信されたデータが変化しない場合には、エラーとして検出を行うステップとを有することを特徴とする。
【００２０】
この発明によれば、クロック信号の入力により値が反転するデータを出力し、出力したデータを受信し、受信したデータの変化を検出し、所定の時間内に受信したデータが変化しない場合には、エラーとして検出を行うよう構成したので、簡単な機構でクロックを監視することができる。
【発明の効果】
【００２１】
本発明によれば、簡単な機構でクロックを監視するので、少ないハードウェアで高速にクロックを監視することができるという効果を奏する。
【００２２】
本発明によれば、簡単な機構でクロック監視用のデータの変化を検出するので、少ないハードウェアで高速にクロックを監視することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照して、本発明に係るクロック監視回路、情報処理装置およびクロック監視方法の好適な実施例を詳細に説明する。
【実施例１】
【００２４】
まず、本実施例１に係るクロック監視機構について説明する。図１は、本実施例１に係るクロック監視機構を説明するための説明図である。同図に示すように、このクロック監視機構では、監視対象のクロックで動作するユニットＷを機能ブロックまたは領域ブロックで分割する（図１のＸ、Ｙ及びＺ）。
【００２５】
そして、Ｘは一定時間毎に、クロック動作するＦＦに保持されるデータを反転させＹに送る。Ｙも同様にＦＦに保持されるデータを一定時間毎に反転させＺに送る。Ｚも同様にＦＦに保持されるデータを一定時間毎に反転させＸに送る。そして、ＸはＹに一定時間毎に反転したデータを送るのと同時に、Ｚからのデータが一定時間内で変化するか否かをチェックする。そして、Ｚからのデータが一定時間内に変化しない場合には、クロックに異常があると判定する。ＹおよびＺにおいても同様とする。
【００２６】
このように、一定時間毎に反転するＦＦのデータを機能ブロック間または領域ブロック間でループ状に伝送し、戻ってきたデータが一定時間内で変化するか否かをチェックすることにより、少ないハードウェアでクロックを監視することができる。
【００２７】
次に、本実施例１に係るチェック回路の構成について説明する。図２は、本実施例１に係るチェック回路の構成を示すブロック図である。同図に示すように、このチェック回路１００は、ＦＦ１〜４と、ＥＯＲ５および６と、ＦＦ１０と、エラー検出回路２０とを有する。
【００２８】
ＦＦ１〜４は直列に接続され、クロック動作するフリップフロップ（Ｆｌｉｐ−Ｆｌｏｐ）であり、各ブロックに入力される信号のクロック信号に対する同期をとるために設けられている。ＦＦ４の入力およびＦＦ４の出力は、データの変化を検出（エッジトリガ）するための排他的論理和（Ｅｘｃｌｕｓｉｖｅ−ＯＲ）演算を行うＥＯＲ５の２つの入力にそれぞれ接続され、クロック信号の入力とともにＦＦ１〜３を経由してＦＦ４に伝播するデータが変化すると、ＦＦ４の入力（ＦＦ３の出力）とＦＦ４の出力との排他的論理和演算を行うＥＯＲ５の出力が”１”となりＥＯＲ６の入力６ａが”１”になる。
【００２９】
具体的には、ＦＦ４に保持されるデータが”０”である場合に、ＦＦ３に保持されるデータが”１”のときには、ＥＯＲ５による排他的論理和演算の結果として”１”がＥＯＲ６の入力６ａに出力されることにより、データの変化を検出（エッジトリガ）することができる。また、クロック信号の入力とともに、ＦＦ３に保持されていたデータ”１”がＦＦ４に伝播し、ＦＦ２に保持されていたデータ”０”がＦＦ３に伝播したときにも、ＥＯＲ５による排他的論理和演算の結果として”１”がＥＯＲ６の入力６ａに出力されることにより、データの変化を検出（エッジトリガ）することができる。従って、クロック信号毎にＦＦ４に保持されるデータが反転し続ける限り、ＥＯＲ５の出力は‘１’となる。
【００３０】
ＦＦ１０は、クロック動作するフリップフロップであり、排他的論理和演算を行うＥＯＲ６によりクロック毎に保持されるデータが反転して出力される。前述したＥＯＲ５の出力を排他的論理和演算を行うＥＯＲ６の一方の入力６ａに接続し、ＥＯＲ６の出力をＦＦ１０の入力に接続することによって、ＥＯＲ６の他の入力６ｂが”１”になるとＦＦ１０のデータが反転して出力される。
【００３１】
具体的には、前述したＦＦ１〜４を経由して伝播してくるデータが、クロック信号の入力とともに変化する限り、ＥＯＲ５が出力しＥＯＲ６の入力６ａに入力されるデータは常に”１”となる。そうすると、次のクロック信号の入力とともにＦＦ１０にはデータ”１”がセットされるとともに、ＦＦ１０はデータ”１”の出力を行う。その結果、ＥＯＲ６の入力６ｂにはデータ”１”が入力され、排他的論理和演算によるＥＯＲ５が出力するデータは”０”となる。従って、次のクロック信号の入力とともにＦＦ１０にはデータ”０”がセットされるとともに、ＦＦ１０はデータ”０”の出力を行う。
【００３２】
すなわち、クロック信号の入力とともに値が変化するＦＦ１０の出力データが、ユニットＹ及びユニットＺ経由でユニットＸに伝搬すると、ユニットＸ内のＦＦ４にセットされるデータが変化し、その結果ＦＦ１０の出力するデータがクロック信号の入力とともに変化しながら伝播することとなる。
【００３３】
エラー検出回路２０は、ＦＦ１０の値が一定時間以内に変化するか否かを検出することによってクロックのエラーを検出する回路であり、ＦＦ１０の値が一定時間以内に変化しない場合には、エラーが発生したと判定する。
【００３４】
図２はユニットＸのチェック回路１００を示すが、ユニットＹおよびユニットＺにも同様のチェック回路があり、最初はチェック回路上の全てのＦＦが'０'であったとする。エラーチェックをスタートさせる時はユニットＸのＦＦ１０に'１'をセットする。そして、ユニットＹに'１'が伝播していき、ユニットＹが有するＦＦ１０に'１'がセットされる。同様にユニットＺのＦＦ１０に'１'がセットされユニットＸに戻ってくる。そして、ユニットＸに'１'が伝播してくるとＦＦ１０は次に'０'にセットされ、あとはユニットＸ、ユニットＹおよびユニットＺが有するＦＦ１０はクロック信号の入力とともに'０'→'１'→'０'と変化し続ける。
【００３５】
最初にＸのＦＦ１０に'１'を設定してから十分時間が経ち、ユニットＸ、ユニットＹおよびユニットＺが動作し始めたら、チェック回路１００によるエラーチェックを有効にする。ユニットＸでエラーが検出された場合、残りのユニットＹまたはユニットＺのうちのどちらかのユニットが有するＦＦ１０の動作が正常ではないことが判断できる。
【００３６】
上述してきたように、本実施例１では、各ユニットを機能ブロックまたは領域ブロック毎に複数に分割し、各機能ブロックまたは各領域ブロックにクロック動作するＦＦ１０とチェック回路１００を設け、ＦＦ１０のデータをクロック信号が入力される毎に反転させて機能ブロック間または領域ブロック間でループ状に伝送し、シフトされるデータの値が所定の時間内に変化するか否かをエラー検出回路２０がチェックすることによって、クロックを監視することができる。なお、本実施例１に係るクロック監視機構の通常時とエラー発生時の動作を図１０および図１１に示す。
【実施例２】
【００３７】
ところで、上記実施例１では、クロック信号の入力とともに変化するデータをユニット間においてループ状に伝搬させることによってクロックの監視を行う場合について説明したが、ユニット間で相互にクロックを監視することもできる。そこで、本実施例２では、ユニット間で相互にクロックを監視する場合について説明する。
【００３８】
図３は、本実施例２に係るクロック監視機構を説明するための説明図である。同図は、オシレータＵのクロックで動作するユニットＵと、オシレータＵとは異なるオシレータＶのクロックで動作するユニットＶとが相互にクロックを監視する場合を示している。
【００３９】
図３に示すように、ユニットＵは出力回路２１１とチェック回路２１２とを有し、ユニットＶも同様に出力回路２２１とチェック回路２２２とを有する。そして、ユニットＵの出力回路２１１は一定時間毎に反転するビットを送出し、出力回路２１１によって送出されたビットをユニットＶのチェック回路２２２がチェックする一方、ユニットＶの出力回路２２１も一定時間毎に反転するビットを送出し、出力回路２２１によって送出されたビットをユニットＵのチェック回路２１２がチェックすることによってユニットＵとユニットＶは相互にオシレータＵまたはオシレータＶが出力するクロック信号が正しく動作しているか否かを監視する。
【００４０】
また、ユニットＵ、ユニットＶでのチェック結果がエラーだった場合にオシレータＵ、オシレータＶによらず動作できる回路がエラーに対応できるようにエラー報告パス（図３の割り込み）がある。
【００４１】
図４は、図３に示した出力回路２１１およびチェック回路２２２を示す図である。出力回路２１１、チェック回路２２２は、それぞれ動作開始を示すチェック回路有効フラグを保持するＳＲ（セットリセット）ラッチ２１１ａ、ＳＲラッチ２２２ａがある。各ユニットの初期化完了後、クロックが動作開始した(ハズの)後のタイミングで出力回路２１１のチェック回路有効フラグ用ＳＲラッチ２１１ａ、続けて受け回路２２２のチェック回路有効フラグ用ＳＲラッチ２２２ａを”１”にセットする。
【００４２】
また、出力回路２１１には３ビットのインクリメンタ２１１ｂが装備されており、このインクリメンタ２１１ｂは、チェック回路有効フラグ用ＳＲラッチ２１１ａが”１”の場合にはクロックが入る限りインクリメントし、チェック回路有効フラグ用ＳＲラッチ２１１ａが”０”である場合またはユニットＶからのデータの変化が検出された場合にはＲＥＳＥＴされ続けるためインクリメントを行わない。つまり、インクリメンタ２１１ｂのインクリメント条件はチェック回路有効フラグ用ＳＲラッチ２１１ｂの値が“１”であることであり、リセット条件はユニットＶからのデータの変化が検出されることまたはチェック回路有効フラグ用ＳＲラッチ２１１ｂの値が“０”であることとなる。なお、インクリメンタ２１１ｂの必要ビット数は、オシレータＵとオシレータＶとの周期差によって変化する。
【００４３】
そして、出力回路２１１は、インクリメンタ２１１ｂの最上位ビットの出力を同期化回路２３０を経由してユニットＶに送る。したがって、ユニットＵのクロックが正常な状態であれば、ユニットＶに送られるデータはインクリメンタ２１１ｂの最上位ビットに桁上がりが発生する４クロック毎に変化する。なお、同期化回路２３０は、クロック動作するフリップフロップを直接に接続した回路であり、インクリメンタ２１１ｂの最上位ビット出力のクロック信号に対する同期をとるために設けられた回路である。同期化を行う理由は、メタステーブル現象によるＦＦの誤動作を防止するためである。メタステーブルとは、ＦＦの出力が長い間閾値付近の電位にとどまる現象である。メタステーブルが発生すると、誤作動を起こすだけでなく素子の劣化の原因にもなるため、２段以上のＦＦを直列に接続した同期化回路を用いて受信することにより、その出力におけるメタステーブル現象の発生頻度を実用上問題ない程度にまで低減することができる。
【００４４】
一方、ユニットＶのチェック回路２２２にも３ビットのインクリメンタ２２２ｂがある。このインクリメンタ２２２ｂも出力回路２１１のインクリメンタ２１１ｂと同様に、チェック回路有効フラグ用ＳＲラッチ２２２ａが”１”である限りインクリメントし、チェック回路有効フラグ用ＳＲラッチ２２２ａが”０”である場合またはユニットＵからのデータの変化が検出された場合にはＲＥＳＥＴされ続けるためインクリメントを行わない。つまり、インクリメンタ２２２ｂのインクリメント条件はチェック回路有効フラグ用ＳＲラッチ２２２ｂの値が“１”であることであり、リセット条件はユニットＵからのデータの変化が検出されることまたはチェック回路有効フラグ用ＳＲラッチ２２２ｂの値が“０”であることとなる。なお、インクリメンタ２２２ｂの必要ビット数は、オシレータＵとオシレータＶとの周期差によって変化する。
【００４５】
したがって、正常な状態であればこのインクリメンタ２２２ｂの値はインクリメンタ２２２ｂの最上位ビットに桁上がりが発生する４クロック毎にＲＥＳＥＴされ、このインクリメンタ２２２ｂの値が例えば”１１１”となることはない。したがって、このインクリメンタ２２２ｂの値が”１１１”となると、一定の時間以内にユニットＵからのデータの変化が検出されなかったことになる。
【００４６】
エラー検出回路２２２ｃは、インクリメンタ２２２ｂの値が”１１１”であることをデコードすることによってエラーを検出する回路であり、エラーを検出した場合にはオシレータＵおよびオシレータＶとは無関係に動作できる回路にエラーを報告する。
【００４７】
上述してきたように、本実施例２では、ユニットＵの出力回路２１１のインクリメンタ２１１ｂがクロック入力に基づいてインクリメントするとともに最上位ビットをチェック回路２２２に送出し、出力回路２１１から送出されるデータが変化するとチェック回路２２２のインクリメンタ２２２ｂをリセットし、インクリメンタ２２２ｂの値が”１１１”になるとエラー検出回路２２２ｃがエラーを報告することとしたので、オシレータＵのクロックを監視することができる。
【００４８】
なお、本実施例２では、二つのユニット間で相互にクロックの動作を監視する場合について説明したが、三つ以上のユニット間でも同様にクロックの動作を監視することができる。図５は、三つのユニットでのクロック相互監視を示す図である。同図に示すように、ユニットＰ、ユニットＱ、ユニットＲの三つのユニットにおいて、ユニットＰの出力回路が送出するデータをユニットＱのチェック回路がチェックし、ユニットＱの出力回路が送出するデータをユニットＲのチェック回路がチェックし、ユニットＲの出力回路が送出するデータをユニットＰのチェック回路がチェックすることによって、三つのユニット間でクロックの動作を監視することができる。
【００４９】
次に、本実施例２に係るクロック監視機構の通常時とエラー発生時の動作について説明する。図８は、通常時の動作を示すタイミングチャートであり、図９は、エラー発生時の動作を示すタイミングチャートである。
【００５０】
図８において、「出し側クロック」は図３のオシレータＵの出力、「出し回路ｓｔａｒｔ＿ｆｌａｇ」は図４のユニット２１１側のチェック回路有効フラグ用ＳＲラッチ２１１ａの出力であり、値が０の場合に３ＢＩＴインクリメンタ２１１ｂがカウント動作を行い、値が１の場合には３ＢＩＴインクリメンタ２１１ｂをリセットし続けることによりカウント動作を停止する。「出しＣＴ」は図４の出力側カウンタであるユニット２１１中の３ＢＩＴインクリメンタ２１１ｂの値を指す。「ＣＴ０，ＣＴ１，ＣＴ２」はそれぞれ３ＢＩＴインクリメンタ２１１ｂのビット０出力、ビット１出力及びビット２出力を表す。
【００５１】
「受け側クロック」は図３のオシレータＶの出力、「同期化」とあるのは多段のＦＦにより構成される図４の同期化回路２３０における信号の同期化のプロセスを表し、上から１段目、２段目、３段目及び４段目の波形はそれぞれ、同期化回路２３０の１段目の同期化ＦＦ，２段目の同期化ＦＦ，３段目の同期化ＦＦ及び４段目の同期化ＦＦの出力を表す。また、上から５段目の波形は、図４の受信側ユニット２２２における受信ＦＦの出力を表す。さらに、「同期化」の欄における上から４段目の波形から「チェックＣＴ」の段に下りている矢印は、図４のユニット２２２のＥＯＲ回路によるエッジトリガ動作を現す。つまり、前記５段目の同期化ＦＦの入力と出力との排他的論理和演算をＥＯＲにより行うことにより、波形の立ち上がりと波形の立下りの検出を行うとともに、３ＢＩＴインクリメンタ２２２ｂのカウント値をリセットする。
【００５２】
「チェック開始ｆｌａｇ」は図４のユニット２２２側のチェック回路有効フラグ用ＳＲラッチ２２２ｂの出力であり、値が０の場合に３ＢＩＴインクリメンタ２２２ｂがカウント動作を行い、値が１の場合には３ＢＩＴインクリメンタ２２２ｂをリセットし続けることによりカウント動作を停止する。
【００５３】
ここで、図８の通常時動作のタイミングチャートを説明すると、まず、図３のオシレータＵの出力として「出し側クロック」が正常に動作しているときに、図４のユニット２１１側のチェック回路有効フラグ用ＳＲラッチ２１１ａに‘１’をセットすることによりタイミングチャート上の「出し回路ｓｔａｒｔ＿ｆｌａｇ」が‘１’となり、図４のユニット２１１側の３ＢＩＴインクリメンタ２１１ｂがカウント動作を開始し、「出しＣＴ」の「ＣＴ０，ＣＴ１，ＣＴ２」が動作し、最上位ビットであるビット２、つまりタイミングチャートにおける「ＣＴ２」の出力が１となる。
【００５４】
ユニット２１１は３ＢＩＴインクリメンタ２１１ｂのし最上位ビット信号であるビット２の出力を行い、当該最上位ビット出力信号は「同期化回路２３０」の４段ＦＦにより同期化がなされる。
【００５５】
図４のユニット２２２側のチェック回路有効フラグ用ＳＲラッチ２２２ｂに‘１’をセットすることにより図８のタイミングチャート上の「チェック開始ｆｌａｇ」が‘１’となり、図４のユニット２２２側の３ＢＩＴインクリメンタ２２２ｂがカウント動作を開始し、「出しＣＴ」の「ＣＴ０，ＣＴ１，ＣＴ２」がカウント動作を開始する。ここで、上述した図４のユニット２２２のＥＯＲ回路によるエッジトリガ動作により、同期化回路２３０による同期化後の最上位ビット信号の立ち上がりと立下りの検出を行い、ユニット２２２側の３ＢＩＴインクリメンタのリセットを４クロック毎に行うため、「チェックＣＴ」はエラー検出条件である‘１１１’までマウント動作を行うことはない。従って、図４の実施例２においては、図３のオシレータＵが正常動作している限り、エラーの検出がされないことがわかる。
【００５６】
次に、図９のエラー発生時のタイミングチャートの動作を説明する。具体的には、上述した通常時動作を行っている最中に、「出し側クロック」が停止した場合の説明を行う。なお、信号名の説明は、上述した図８における説明と同様であるため省略する。
【００５７】
上述した通常時動作の最中に図３におけるオシレータＵが停止した場合には、まず、図９における「出し側クロック」が停止する（図９中の「★」の時点）。そうすると、図４におけるチェック回路有効フラグ用ＳＲラッチ２１１ａに‘１’がセットされているのにも関わらず３ＢＩＴインクリメンタ２１１ｂのカウント動作が停止することになる。そうすると、最上位ビットであるビット２、つまりタイミングチャートにおける「ＣＴ２」の出力は‘０’または‘１’に固定されることにより、受信側ユニット２２２内のＥＯＲの排他的論理和演算の結果は常に‘０’となるため、３ＢＩＴインクリメンタ２２２ｂはリセットされず、図３におけるオシレータＶのクロックが入力される毎に、３ＢＩＴインクリメンタ２２２ｂのカウント動作が行われることにより、「チェックＣＴ」の「ＣＴ０」、「ＣＴ１」及び「ＣＴ２」が‘１１１’までカウントアップし、エラー検出回路２２２ｃによるカウンタ値‘１１１’のデコードの結果、エラーが検出されることとなる。
【００５８】
なお、本実施例１および２では、クロックの動作を監視する場合について説明したが、本発明はこれに限定されるものではなく、クロックにより動作するＦＦ制御系の異常を監視する場合にも同様に適用することができる。
【産業上の利用可能性】
【００５９】
以上のように、本発明に係るクロック監視回路、情報処理装置およびクロック監視方法は、情報処理装置の異常検出に有用であり、特に、少量のハードウェアでクロック監視が必要な場合に適している。
【図面の簡単な説明】
【００６０】
【図１】図１は、本実施例１に係るクロック監視機構を説明するための説明図である。
【図２】図２は、本実施例１に係るチェック回路の構成を示す機能ブロック図である。
【図３】図３は、本実施例２に係るクロック監視機構を説明するための説明図である。
【図４】図４は、図３に示した出力回路２１１およびチェック回路２２２を示す図である。
【図５】図５は、三つのユニットでのクロック相互監視を示す図である。
【図６】図６は、相互のタイムアウト監視を説明するための説明図である。
【図７】図７は、エラー検出後の処理の一例を示す図である。
【図８】図８は、本実施例２の通常時動作を示すタイミングチャートである。
【図９】図９は、本実施例２のエラー時動作を示すタイミングチャートである。
【図１０】図１０は、本実施例１の通常時動作を示すタイミングチャートである。
【図１１】図１１は、本実施例１のエラー時動作を示すタイミングチャートである。
【符号の説明】
【００６１】
１〜４    ＦＦ（フリップフロップ）
５，６    ＥＯＲ（排他的論理和演算回路）
１０    ＦＦ（フリップフロップ）
２０    エラー検出回路
１００    チェック回路
２１１    出力回路
２１１ａ    チェック回路有効フラグ
２１１ｂ    インクリメンタ
２１２    チェック回路
２２１    出力回路
２２２    チェック回路
２２２ａ    チェック回路有効フラグ
２２２ｂ    インクリメンタ
２２２ｃ    エラー検出回路
【国際調査報告】
2008026283.tif 000014
2008026283.tif 000015