(57)【要約】【課題】回路面積の増大を抑制することができる異常検出回路及び回路の異常検出方法を提供すること【解決手段】本発明にかかる異常検出回路４は、複数の入力信号に対応した複数の出力信号を出力するバッファ群３に設けられる。異常検出回路４は、複数の入力信号に基づく固有信号ＭＩＳＲＯＵＴ１を生成するＭＩＳＲ回路５と、複数の出力信号に基づく固有信号ＭＩＳＲＯＵＴ２を生成するＭＩＳＲ回路６と、両固有信号の不一致を検出して異常信号を特定する異常信号特定回路７を備える。異常信号特定回路７は、両固有信号の不一致を検出した場合、制御信号ＣＡＰＴＵＲＥを生成し、ＭＩＳＲ回路５、６は、当該制御信号に応じて、複数の入力信号、出力信号を異常信号特定回路７に順次出力する。異常信号特定回路７は、複数の入力及び出力信号との不一致を順次検出することによって、複数の入力及び出力信号における異常信号を特定する。【選択図】図１
2012198776.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力信号に対応した複数の出力信号を出力する信号伝達部に設けられる異常検出回路であって、
前記複数の入力信号に基づく第１の固有信号を生成する第１の固有信号出力回路と、
前記複数の出力信号に基づく第２の固有信号を生成する第２の固有信号出力回路と、
前記第１及び第２の固有信号の不一致を検出して、異常信号を特定する異常信号特定回路と、を備え、
前記異常信号特定回路は、前記第１及び第２の固有信号の不一致を検出した場合、制御信号を生成し、
前記第１の固有信号出力回路は、前記制御信号に応じて、前記複数の入力信号を前記異常信号特定回路に順次出力し、
前記第２の固有信号出力回路は、前記制御信号に応じて、前記複数の出力信号を前記異常信号特定回路に順次出力し、
前記異常信号特定回路は、前記複数の入力及び出力信号の不一致を順次検出することによって、前記複数の入力及び出力信号における異常信号を特定する、
異常検出回路。
【請求項２】
前記異常信号特定回路は、
前記第１及び第２の固有信号の不一致を検出する不一致検出回路と、
前記不一致検出回路が不一致を検出した場合、前記制御信号を生成する制御回路と、を備え、
前記不一致検出回路は、前記制御信号に応じた前記第１及び第２の固有信号出力回路からの前記複数の入力及び出力信号の不一致を検出して、エラー特定信号を出力し、
前記制御回路は、前記エラー特定信号に応じて、前記複数の入力及び出力信号における異常信号を特定する、
請求項１に記載の異常検出回路。
【請求項３】
少なくとも前記第１の固有信号出力回路又は前記第２の固有信号出力回路のいずれか１個は、
一方の入力端子が前記複数の入力又は出力信号中の第１信号の第１出力端子と、他方の入力端子が演算素子の出力端子と、それぞれ接続されている第１セレクタと、
一方の入力端子が前記複数の入力又は出力信号中の第１信号の第２出力端子と、他方の入力端子が前記第１セレクタの出力端子と、それぞれ接続されている第２セレクタと、を備え、
前記第１セレクタは、前記不一致検出回路が前記第１及び第２の固有信号の不一致を検出した場合に出力するエラー信号に応じて出力を切り替え、前記第２セレクタは、前記制御信号に応じて出力を切り替える、
請求項２に記載の異常検出回路。
【請求項４】
前記不一致検出回路は、前記第１及び第２の固有信号の不一致を検出した場合、エラーパルスを生成し、
前記第１及び第２の固有信号出力回路は、前記エラーパルスに応じて、保持する値を初期化する、
請求項２又は３に記載の異常検出回路。
【請求項５】
前記制御回路は、前記エラーパルスに応じて、入力される基準クロックをカウントするカウンタを備え、
前記制御回路は、前記エラー特定信号が入力された場合、前記カウンタのカウント値に基づいて、前記複数の入力及び出力信号における異常信号を特定する、
請求項４に記載の異常検出回路。
【請求項６】
前記信号伝達部はバッファを有し、
前記第１の固有信号出力回路は前記バッファの入力側に設けられ、前記第２の固有信号出力回路は前記バッファの出力側に設けられる、
請求項１ないし５のいずれか一項に記載の異常検出回路。
【請求項７】
信号伝達部に入力された複数の入力信号に基づいて、第１の固有信号を生成し、前記信号伝達部が出力した複数の出力信号に基づいて、第２の固有信号を生成し、
前記第１及び第２の固有信号の不一致を検出した場合、制御信号を生成し、
前記制御信号に基づき、前記複数の入力信号及び出力信号の不一致を順次検出することで、前記複数の入力信号及び出力信号における異常信号を特定する、
回路の異常検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検出回路及び回路の異常検出方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路は、多機能化に伴い、搭載されている多数の機能マクロの並列処理を行っている。更に、半導体集積回路は、製造プロセスの微細化が進み、配線間隔がより狭くなっている。これによって、半導体集積回路内でのデータバス、アドレスバス等の動作信号は、ノイズやクロストークによる異常が、より生じやすくなっている。以上を背景にして、半導体集積回路の動作状態を診断し、これらの異常を検出する機能を有する回路を搭載することで、異常発生時に適切な対応を可能にする技術が求められている。
【０００３】
例えば、特許文献１には、一方の装置から複数の装置にそれぞれ出力バッファを介したデータ信号の伝送において、出力バッファの障害が簡単な構成で検出できる出力バッファ障害検出方式の技術が開示されている。
【０００４】
図７は、特許文献１にかかる個別の出力バッファの障害検出方式を示す、第１の原理図である。図８は、特許文献１にかかるスター配線の場合の出力バッファの障害検出方式を示す、第２の原理図である。図７における１０１、図８における１０１−１〜１０１−ｎは出力バッファ、１０２は２入力のチェック回路、１０３は出力バッファがｎ個の場合に入力信号と各出力バッファの出力を入力とするｎ＋１入力のチェック回路である。
【０００５】
図７に示す出力バッファ１０１は、ノンインバートバッファであるものとする。チェック回路１０２は入力信号と出力バッファ１０１の出力信号を入力とする２入力が同一であるか否かをチェックする回路により構成される。２入力信号が不一致の場合、チェック回路１０２は障害であることを表す出力を発生する。出力バッファ１０１がインバートバッファであれば、チェック回路１０２は２入力信号が異なるか否かをチェックして、両者が一致すると障害であることを表す出力を発生する。
【０００６】
次に図８において、出力バッファ１０１−１〜１０１−ｎの各出力信号はチェック回路１０３に入力されると共に、入力信号も入力される。チェック回路１０３はｎ＋１の信号の状態をチェックして、正常動作状態であれば対応する信号出力を発生する。そして、チェック回路１０３は、出力バッファの１つが障害であれば障害であることを表す出力を発生する。チェック回路１０３のチェック機能は、出力バッファ１０１−１〜１０１−ｎがノンインバートバッファか、インバートバッファかに対応して、変更することができる。
【０００７】
関連する技術として、特許文献２には、複数ビット幅メモリを使用しながら効率的にパリティビットの操作を可能とするパリティ回路の技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平４−２８７２５６号公報
【特許文献２】特開２０００−５７０６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
半導体集積回路は、より低価格にするために、チップ面積を小さくすることが望まれる。
【００１０】
しかしながら、特許文献１で開示されている回路では、入力信号と出力信号は一対一で比較されている。このため、障害を検出するためには、入力信号毎にチェック回路を設ける必要がある。検出対象である入力信号と出力信号が増加する場合、障害を検出するために設けるチェック回路の数が増加することによって、回路面積は増大してしまう。
【００１１】
さらに、チェック回路と、検出対象である入力信号及び出力信号との距離が離れてしまう場合も考えられる。この場合、検出対象である全ての入力信号及び出力信号を、配線を介してチェック回路に接続させる必要があるため、チェック回路が搭載される半導体集積回路の配線領域が増大する。検出対象である入力信号及び出力信号の数が増加する場合、配線領域がさらに増大してしまう。つまり、回路面積がさらに増大する。
【００１２】
特許文献２では、入力信号と出力信号とを逐一比較する回路の構成は、開示されていない。
【課題を解決するための手段】
【００１３】
本発明にかかる異常検出回路は、複数の入力信号に対応した複数の出力信号を出力する信号伝達部に設けられ、前記複数の入力信号に基づく第１の固有信号を生成する第１の固有信号出力回路と、前記複数の出力信号に基づく第２の固有信号を生成する第２の固有信号出力回路と、前記第１及び第２の固有信号の不一致を検出して、異常信号を特定する異常信号特定回路を備える。前記異常信号特定回路は、前記第１及び第２の固有信号の不一致を検出した場合、制御信号を生成する。前記第１の固有信号出力回路は、前記制御信号に応じて、前記複数の入力信号を前記異常信号特定回路に順次出力し、前記第２の固有信号出力回路は、前記制御信号に応じて、前記複数の出力信号を前記異常信号特定回路に順次出力する。前記異常信号特定回路は、前記複数の入力及び出力信号との不一致を順次検出することによって、前記複数の入力及び出力信号における異常信号を特定する。このような構成により、複数の入力及び出力信号の不一致検出に必要な配線は、第１及び第２の固有信号にかかる配線だけであるため、回路面積の増大を抑制することができる。
【００１４】
本発明にかかる回路の異常検出方法は、信号伝達部に入力された複数の入力信号に基づいて、第１の固有信号を生成し、前記信号伝達部が出力した複数の出力信号に基づいて、第２の固有信号を生成し、前記第１及び第２の固有信号の不一致を検出した場合、制御信号を生成し、前記制御信号に基づき、前記複数の入力信号及び出力信号の不一致を順次検出することで、前記複数の入力信号及び出力信号における異常信号を特定する方法である。このような方法により、複数の入力及び出力信号の不一致検出に必要な配線は、第１及び第２の固有信号にかかる配線だけであるため、回路面積の増大を抑制することができる。
【発明の効果】
【００１５】
本発明により、回路面積の増大を抑制することができる異常検出回路及び回路の異常検出方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１にかかる異常検出回路の全体構成の例を示すブロック図である。
【図２】実施の形態１にかかるＭＩＳＲ回路の構成の例を示す図である。
【図３】実施の形態１にかかる不一致検出回路の構成の例を示す図である。
【図４】実施の形態１にかかる処理制御回路の構成の例を示す図である。
【図５】実施の形態１にかかる処理制御回路において、選択発生信号器の動作を示す図表である。
【図６】実施の形態１にかかる異常検出回路の動作例を示すタイミングチャートである。
【図７】関連技術にかかる個別の出力バッファの障害検出方式を示す、第１の原理図である。
【図８】関連技術にかかるスター配線の場合の出力バッファの障害検出方式を示す、第２の原理図である。
【発明を実施するための形態】
【００１７】
実施の形態１
本実施形態にかかる異常検出回路は、バッファ群へ入力される動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１（複数の入力信号）に基づいて第１の固有信号出力回路が生成する第１の固有信号と、バッファ群が出力する動作信号ＥＮ２、ＷＲ２及びＤＡＴＡ２（複数の出力信号）に基づいて第２の固有信号出力回路が生成する第２の固有信号の不一致を検出することで、異常信号を特定する。以上より、本実施形態にかかる異常検出回路は、動作信号数が増加しても、異常検出のために設ける不一致検出回路の数は１個のままで済む。更に、入力信号及び出力信号数が増加しても、不一致を判定するために第１及び第２の固有信号出力回路から不一致検出回路に接続される配線は２本ですむため、回路面積の増大を抑制することができる。
【００１８】
以下、図面を参照して本発明の実施の形態１について説明する。図１は、本実施形態の異常検出回路の全体構成の例を示すブロック図である。本実施形態の異常検出回路４は、バッファ群（信号伝達部）３の入力信号及び出力信号の異常を検出する。ここで、「バッファ群３の入力信号」とはＣＰＵ１から出力され、バッファ群３に入力される動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１のことを示す。「バッファ群３の出力信号」とは、バッファ群３から出力され、ＲＡＭ２に入力される動作信号ＥＮ２、ＷＲ２及びＤＡＴＡ２のことを示す。以降では、当該入力信号及び出力信号のことをまとめて、「動作信号」と記述する。この「動作信号」とは、ＣＰＵ、ＲＡＭといった機能マクロ間の信号線を伝達する信号のことを示す。
【００１９】
ＣＰＵ１、ＲＡＭ２、バッファ群３及び異常検出回路４は、半導体集積回路の一部であり、半導体チップ上に設けられている。
【００２０】
ＣＰＵ１は、バッファ群３に動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１を出力する。ここで、動作信号ＥＮ１はデータ変更を許可する信号、動作信号ＷＲ１は書き込みを制御する信号、動作信号ＤＡＴＡ１はメモリ等に書き込むデータの信号である。
【００２１】
ＲＡＭ２には、バッファ群３からの動作信号ＥＮ２、ＷＲ２及びＤＡＴＡ２が入力される。動作信号ＥＮ２、ＷＲ２及びＤＡＴＡ２は、それぞれ動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１に対応して、バッファ群３が出力する信号である。ＲＡＭ２は、バッファ群３を介してＣＰＵ１と離れた箇所に設けられている。
【００２２】
以降では、動作信号ＥＮ１及びＥＮ２を動作信号ＥＮ、動作信号ＷＲ１及びＷＲ２を動作信号ＷＲ、動作信号ＤＡＴＡ１及びＤＡＴＡ２を動作信号ＤＡＴＡとも記述する。
【００２３】
バッファ群（信号伝達部）３は、動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１に対応した、動作信号ＥＮ２、ＷＲ２及びＤＡＴＡ２をＲＡＭ２に出力する。バッファ群３は、ＣＰＵ１から出力されて、ＲＡＭ２に入力される動作信号を中継するために存在するバッファである。ここで、バッファ群３の異常、動作信号ＥＮ、ＷＲ及びＤＡＴＡの配線の異常等がない場合、動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１と、動作信号ＥＮ２、ＷＲ２及びＤＡＴＡ２は同じ論理レベルを有する。
【００２４】
異常検出回路４は、ＭＩＳＲ回路５（第１の固有信号出力回路）、ＭＩＳＲ回路６（第２の固有信号出力回路）及び異常信号特定回路７を備える。異常信号特定回路７は、不一致検出回路８及び処理制御回路９を備える。
【００２５】
ＭＩＳＲ回路５（第１の固有信号出力回路）は、バッファ群３の入力側に設けられ、ＭＩＳＲ回路５にはＣＰＵ１が出力した動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１が入力される。さらに、ＭＩＳＲ回路５には、外部からの出力である基準クロックＳＨＣＫ、リセット信号ＲＥＳのほか、不一致検出回路８が出力したエラー信号ＥＲＲ、エラーパルスＥＧＣＫ及び処理制御回路９が出力した制御信号ＣＡＰＴＵＲＥが入力される。
【００２６】
ＭＩＳＲ回路５は、動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１を逐次演算する。なお、ＭＩＳＲ回路５は、反転された基準クロックＳＨＣＫに同期して、演算を行う。（この点については後述する。）ＭＩＳＲ回路５は、演算結果として、固有信号ＭＩＳＲＯＵＴ１（第１の固有信号）を生成し、不一致検出回路８に出力する。ここで、ＭＩＳＲ（Ｍｕｌｔｉｐｌｅ  Ｉｎｐｕｔ  Ｓｉｇｎａｔｕｒｅ  Ｒｅｇｉｓｔｅｒ）回路とは、クロックに同期して入力された信号を逐次演算し、Ｓｉｇｎａｔｕｒｅとして出力する信号圧縮回路である。固有信号ＭＩＳＲＯＵＴ１は、複数の動作信号ＥＮ、ＷＲ及びＤＡＴＡの異常を不一致検出回路８で判定するための信号である。なお、固有信号ＭＩＳＲＯＵＴ１においては、複数の動作信号ＥＮ、ＷＲ及びＤＡＴＡが１本に圧縮されている。
【００２７】
さらに、ＭＩＳＲ回路５は、外部から出力されるリセット信号ＲＥＳに応じて、回路内に保持される値を初期化する。不一致検出回路８から出力されたエラーパルスＥＧＣＫによっても、ＭＩＳＲ回路５は保持する値を初期化する。なお、エラーパルスＥＧＣＫは、固有信号ＭＩＳＲＯＵＴ１、２の不一致発生を報知する信号である。
【００２８】
また、ＭＩＳＲ回路５は、制御信号ＣＡＰＴＵＲＥ及びエラー信号ＥＲＲに応じて、動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１を順次出力する。この動作信号を順次出力する動作を、ビットシフト動作と記述する。
【００２９】
ＭＩＳＲ回路６（第２の固有信号出力回路）は、バッファ群３の出力側に設けられる。ＭＩＳＲ回路６には、ＲＡＭ２に出力される動作信号ＥＮ２、ＷＲ２及びＤＡＴＡ２が入力される。さらに、ＭＩＳＲ回路６には、外部からの出力である基準クロックＳＨＣＫ、リセット信号ＲＥＳのほか、不一致検出回路８が出力したエラー信号ＥＲＲ、エラーパルスＥＧＣＫ及び処理制御回路９が出力した制御信号ＣＡＰＴＵＲＥが入力される。
【００３０】
ＭＩＳＲ回路６は、ＭＩＳＲ回路５と同様に、反転された基準クロックＳＨＣＫに同期して、動作信号ＥＮ２、ＷＲ２及びＤＡＴＡ２を逐次演算する。ＭＩＳＲ回路５は、演算結果として、固有信号ＭＩＳＲＯＵＴ２（第２の固有信号）を生成する。
【００３１】
ＭＩＳＲ回路６は、リセット信号ＲＥＳ、エラーパルスＥＧＣＫ、エラー信号ＥＲＲ及び制御信号ＣＡＰＴＵＲＥに応じて、ＭＩＳＲ回路５と同様の動作を行う。ＭＩＳＲ回路６もＭＩＳＲ回路５と同様に、制御信号ＣＡＰＴＵＲＥ及びエラー信号ＥＲＲに応じて、動作信号ＥＮ２、ＷＲ２及びＤＡＴＡ２を順次出力するビットシフト動作をする。
【００３２】
ここで、半導体チップ上において、ＭＩＳＲ回路５はＣＰＵ１の近傍へ配置され、ＭＩＳＲ回路６はＲＡＭ２の近傍へ配置される。つまり、ＭＩＳＲ回路５は、ＣＰＵ１が出力した直後の動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１を検出対象とし、ＭＩＳＲ回路６は、ＲＡＭ２に入力される直前の動作信号ＥＮ２、ＷＲ２及びＤＡＴＡ２を検出対象としている。このようにＭＩＳＲ回路５、６が配置されることにより、異常検出回路４は、動作信号の異常をより正確に検出することができる。
【００３３】
異常信号特定回路７は、固有信号ＭＩＳＲＯＵＴ１、２の不一致を検出した場合、制御信号ＣＡＰＴＵＲＥ、エラー信号ＥＲＲをＭＩＳＲ回路５、６に出力する。異常信号特定回路７は、ＭＩＳＲ回路５、６がビットシフト動作により順次出力する動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１及び動作信号ＥＮ２、ＷＲ２及びＤＡＴＡ２の不一致を検出する。このようにして、異常信号特定回路７は、動作信号ＥＮ、ＷＲ及びＤＡＴＡにおける異常信号を特定することができる。
【００３４】
次に、異常信号特定回路７が備える不一致検出回路８及び処理制御回路９について説明する。
【００３５】
不一致検出回路８には、ＭＩＳＲ回路５、６が出力する固有信号ＭＩＳＲＯＵＴ１、２、外部から出力されるリセット信号ＲＥＳ、基準クロックＳＨＣＫが入力される。不一致検出回路８は、固有信号ＭＩＳＲＯＵＴ１、２の不一致を検出する。なお、不一致検出回路８は、基準クロックＳＨＣＫに同期して動作する。不一致検出回路８は、固有信号ＭＩＳＲＯＵＴ１、２の不一致を検出した場合、エラーパルスＥＧＣＫ及びエラー信号ＥＲＲを生成し、ＭＩＳＲ回路５、６及び処理制御回路９に出力する。
【００３６】
さらに、不一致検出回路８は、ＭＩＳＲ回路５、６がビットシフト動作中に動作信号の不一致を検出した場合、エラー特定信号ＥＲＲ−ＲＴを、処理制御回路９に出力する。具体的には、不一致検出回路８は、基準クロックＳＨＣＫに同期して、ＭＩＳＲ回路５、６がビットシフト動作中の固有信号ＭＩＳＲＯＵＴ１、２の不一致を検出することで、動作信号の不一致を検出する。
【００３７】
不一致検出回路８は、リセット信号ＲＥＳに応じて、保持する値を初期化する動作を行う。
【００３８】
処理制御回路９には、エラーパルスＥＧＣＫ、リセット信号ＲＥＳ、エラー信号ＥＲＲ、エラー特定信号ＥＲＲ−ＲＴ及び基準クロックＳＨＣＫが入力される。処理制御回路９は、エラーパルスＥＧＣＫに基づいて、制御信号ＣＡＰＴＵＲＥを出力する。なお、処理制御回路９は、基準クロックＳＨＣＫに同期して制御信号ＣＡＰＴＵＲＥを出力する。この制御信号ＣＡＰＴＵＲＥは、固有信号ＭＩＳＲＯＵＴ１、２で不一致が検出された後、ＭＩＳＲ回路５に前述のビットシフト動作をさせる信号である。
【００３９】
更に、処理制御回路９は、エラー特定信号ＥＲＲ−ＲＴに応じて、信号ＥＲＲＯＲを出力する。この信号ＥＲＲＯＲは、動作信号ＥＮ、ＷＲ及びＤＡＴＡにおいて、どの動作信号で異常が生じたかを知らせる信号である。具体的には、動作信号ＥＮに異常がある場合、処理制御回路９は、信号ＥＲＲＯＲ１を出力する。動作信号ＷＲに異常がある場合、処理制御回路９は、信号ＥＲＲＯＲ２を出力する。動作信号ＤＡＴＡに異常がある場合、処理制御回路９は、信号ＥＲＲＯＲ３を出力する。図１では、信号ＥＲＲＯＲ１〜信号ＥＲＲＯＲ３を、ＥＲＲＯＲ信号群として表記している。
【００４０】
処理制御回路９は、リセット信号ＲＥＳに応じて、保持する値を初期化する動作を行う。
【００４１】
以下、図２を用いて、ＭＩＳＲ回路５の詳細について説明する。図２は、本実施形態のＭＩＳＲ回路の構成の例を示す図である。ＭＩＳＲ回路５は、セレクタ回路１１〜１６、フリップフロップ３１〜３３及びＥＯＲ回路４１〜４４を備える。前述の図１の説明の通り、ＭＩＳＲ回路５は、動作信号ＥＮ１、ＷＲ１及びＤＡＴＡ１に基づいて、固有信号ＭＩＳＲＯＵＴ１を出力する。
【００４２】
ＥＯＲ回路４１には、動作信号ＤＡＴＡ１及び固有信号ＭＩＳＲＯＵＴ１が入力される。ＥＯＲ回路４１は、動作信号ＤＡＴＡ１及び固有信号ＭＩＳＲＯＵＴ１の排他的論理和の信号を、セレクタ回路１１に出力する。
【００４３】
セレクタ回路１１には、ＥＯＲ回路４１の出力及び固有信号ＭＩＳＲＯＵＴ１が入力される。セレクタ回路１１は、エラー信号ＥＲＲの論理レベルが「０」ならば、ＥＯＲ回路４１の出力をセレクタ回路１２に出力し、論理レベルが「１」ならば、固有信号ＭＩＳＲＯＵＴ１をセレクタ回路１２に出力する。
【００４４】
セレクタ回路１２には、動作信号ＤＡＴＡ１及びセレクタ回路１１の出力が入力される。セレクタ回路１２は、制御信号ＣＡＰＴＵＲＥの論理レベルが「０」ならば、セレクタ回路１１の出力をフリップフロップ３１に出力し、論理レベルが「１」ならば、動作信号ＤＡＴＡ１をフリップフロップ３１に出力する。
【００４５】
フリップフロップ３１は、入力Ｄにセレクタ回路１２の出力が入力され、クロック／ＣＫに基準クロックＳＨＣＫが入力される。さらに、リセット／ＲＥＳには、ＥＯＲ回路４４の出力が入力される。
【００４６】
ここで、ＥＯＲ回路４４には、リセット信号ＲＥＳ及びエラーパルスＥＧＣＫが入力される。ＥＯＲ回路４４は、リセット信号ＲＥＳ及びエラーパルスＥＧＣＫの排他的論理和の信号を、フリップフロップ３１〜３３のリセット／ＲＥＳに出力する。
【００４７】
フリップフロップ３１は、反転された基準クロックＳＨＣＫの立ち上がりに同期して、セレクタ回路１２の出力をＥＯＲ回路４２及びセレクタ回路１３に出力する。フリップフロップ３１は、反転された基準クロックＳＨＣＫの次の立ち上がりまで、セレクタ回路１２の出力の値を保持する。
【００４８】
なお、フリップフロップ３１は、ＥＯＲ回路４４の出力に応じて、保持している値を初期化する。具体的には、ＥＯＲ回路４４の出力の論理レベルが「０」であり、フリップフロップ３１のリセット／ＲＥＳにその論理レベル「０」の信号が入力される場合、フリップフロップ３１は、保持する値を初期化する。
【００４９】
なお、ＥＯＲ回路４４の出力の論理レベルが「１」であり、フリップフロップ３１のリセット／ＲＥＳにその論理レベル「１」の信号が入力される場合、フリップフロップ３１は、通常の動作を行う。
【００５０】
ＥＯＲ回路４２には、動作信号ＷＲ１及びフリップフロップ３１の出力が入力される。ＥＯＲ回路４１は、動作信号ＷＲ１及びフリップフロップ３１の出力の排他的論理和の信号を、セレクタ回路１３に出力する。
【００５１】
セレクタ回路１３には、ＥＯＲ回路４２の出力及びフリップフロップ３１の出力が入力される。セレクタ回路１３は、セレクタ回路１１と同様に、エラー信号ＥＲＲの論理レベルが「０」ならば、ＥＯＲ回路４２の出力をセレクタ回路１４に出力し、論理レベルが「１」ならば、フリップフロップ３１の出力をセレクタ回路１４に出力する。
【００５２】
セレクタ回路１４には、動作信号ＷＲ１及びセレクタ回路１３の出力が入力される。セレクタ回路１４は、制御信号ＣＡＰＴＵＲＥの論理レベルが「０」ならば、セレクタ回路１３の出力をフリップフロップ３２に出力し、論理レベルが「１」ならば、動作信号ＷＲ１をフリップフロップ３２に出力する。
【００５３】
フリップフロップ３２は、フリップフロップ３１と同様、反転された基準クロックＳＨＣＫの立ち上がりに同期して、セレクタ回路１４の出力をＥＯＲ回路４３及びセレクタ回路１５に出力し、次の反転された基準クロックＳＨＣＫの立ち上がりまで、その出力の値を保持する。
【００５４】
なお、フリップフロップ３２は、フリップフロップ３１と同様、ＥＯＲ回路４４の出力の論理レベルが「０」の場合、保持する値を初期化する。
【００５５】
ＥＯＲ回路４３には、動作信号ＥＮ１及びフリップフロップ３２の出力が入力される。ＥＯＲ回路４３は、動作信号ＥＮ１及びフリップフロップ３２の出力の排他的論理和の信号を、セレクタ回路１５に出力する。
【００５６】
セレクタ回路１５には、ＥＯＲ回路４３の出力及びフリップフロップ３２の出力が入力される。セレクタ回路１５は、セレクタ回路１１及び１３と同様に、エラー信号ＥＲＲの論理レベルが「０」ならば、ＥＯＲ回路４３の出力をセレクタ回路１６に出力し、論理レベルが「１」ならば、フリップフロップ３２の出力をセレクタ回路１６に出力する。
【００５７】
セレクタ回路１６には、動作信号ＥＮ１及びセレクタ回路１５の出力が入力される。セレクタ回路１６は、制御信号ＣＡＰＴＵＲＥの論理レベルが「０」ならば、セレクタ回路１５の出力をフリップフロップ３３に出力し、論理レベルが「１」ならば、動作信号ＥＮ１をフリップフロップ３３に出力する。
【００５８】
フリップフロップ３３は、反転された基準クロックＳＨＣＫの立ち上がりに同期して、セレクタ回路１６の出力を固有信号ＭＩＳＲＯＵＴ１として、ＥＯＲ回路４１及び不一致検出回路８に出力する。フリップフロップ３３は、次の反転された基準クロックＳＨＣＫの立ち上がりまで、出力した固有信号ＭＩＳＲＯＵＴ１の値を保持する。
【００５９】
なお、フリップフロップ３３は、フリップフロップ３１、３２と同様、ＥＯＲ回路４４の出力の論理レベルが「０」の場合、保持する値を初期化する。
【００６０】
まとめると、ＭＩＳＲ回路５は、２種類のセレクタ回路によって、固有信号ＭＩＳＲＯＵＴ１の値を切り替えている。例えば、セレクタ回路１５（第１セレクタ）の一方の入力端子には、ＥＯＲ回路４３を介して動作信号ＥＮ１の第１出力端子が、他方の入力端子には、演算素子であるフリップフロップ３２の出力端子が接続されている。セレクタ回路１５は、エラー信号ＥＲＲの論理レベルが「１」に変化することによって、出力させる信号を、ＥＯＲ回路４３の出力からフリップフロップ３２の出力に切り替える。
【００６１】
また、セレクタ回路１６（第２セレクタ）の一方の入力端子には、動作信号ＥＮ１の第２出力端子が、他方の入力端子には、セレクタ回路１５の出力端子が接続されている。セレクタ回路１６（第２セレクタ）は、制御信号ＣＡＰＴＵＲＥの論理レベルが「１」に変化することによって、出力させる信号を、セレクタ回路１５の出力から動作信号ＥＮ１に切り替える。セレクタ回路１１、１３もセレクタ回路１５と同様に動作し、セレクタ回路１２、１４もセレクタ回路１６と同様に動作する。
【００６２】
つまり、不一致検出回路８が出力したエラー信号ＥＲＲ、制御信号ＣＡＰＴＵＲＥに応じて、各セレクタが制御され、各フリップフロップに出力される値が変化する。こうすることで、ＭＩＳＲ回路５は、動作信号ＥＮ１、ＷＲ１、ＤＡＴＡ１を一つずつ順番にシフトして出力するビットシフト動作をする。このビットシフト動作により、異常検出回路４は不一致発生箇所の特定を行う。
【００６３】
ＭＩＳＲ回路６は、ＥＯＲ回路４１〜４３及びセレクタ回路１２、１４、１６に入力される信号が、動作信号ＥＮ２、ＷＲ２、ＤＡＴＡ２となる。その他の回路構成は、ＭＩＳＲ回路５と同じであるため、説明を省略する。
【００６４】
なお、ＭＩＳＲ回路５、６において、異常検出対象となる動作信号がｎ本増える毎に、フリップフロップ、ＥＯＲ回路は新たにｎ個、セレクタ回路は新たに２ｎ個必要となる。セレクタ回路は、前述の第１セレクタに対応するものがｎ個、前述の第２セレクタに対応するものがｎ個、それぞれ必要となる。
【００６５】
以下、図３を用いて、不一致検出回路８の詳細について説明する。図３は、本実施形態の不一致検出回路の構成の例を示す図である。不一致検出回路８は、フリップフロップ３４〜３６、ＥＯＲ回路４５、ＡＮＤ回路４７、４８及び立ち上がりエッジ検出回路５１を備える。前述の図１の説明の通り、不一致検出回路８は、固有信号ＭＩＳＲＯＵＴ１、ＭＩＳＲＯＵＴ２に基づいて、エラーパルスＥＧＣＫ、エラー信号ＥＲＲ及びエラー特定信号ＥＲＲ−ＲＴを生成し、出力する。なお、不一致検出回路８は、基準クロックＳＨＣＫに同期して動作する。
【００６６】
ＥＯＲ回路４５には、固有信号ＭＩＳＲＯＵＴ１及びＭＩＳＲＯＵＴ２が入力される。ＥＯＲ回路４５は、固有信号ＭＩＳＲＯＵＴ１、ＭＩＳＲＯＵＴ２の排他的論理和をとった信号を、フリップフロップ３４に出力する。つまり、ＥＯＲ回路４５は、固有信号ＭＩＳＲＯＵＴ１、ＭＩＳＲＯＵＴ２の不一致を検出した場合、論理レベル「１」の信号を出力する。
【００６７】
フリップフロップ３４は、入力ＤにＥＯＲ回路４５の出力が入力され、クロックＣＫに基準クロックＳＨＣＫが入力される。さらに、リセット／ＲＥＳには、リセット信号ＲＥＳが入力される。
【００６８】
フリップフロップ３４は、基準クロックＳＨＣＫの立ち上がりに同期して、ＥＯＲ回路４５の出力をＡＮＤ回路４７及び４８に出力する。フリップフロップ３４は、基準クロックＳＨＣＫの次の立ち上がりまで、ＥＯＲ回路４５の出力の値を保持する。
【００６９】
なお、フリップフロップ３４は、リセット信号ＲＥＳに応じて、保持している値を初期化する。具体的には、リセット信号ＲＥＳの論理レベルが「０」である場合、フリップフロップ３４は、保持する値を初期化する。
【００７０】
ＡＮＤ回路４７には、フリップフロップ３４の出力及び反転されたエラー信号ＥＲＲが入力される。ＡＮＤ回路４７は、出力を立ち上がりエッジ検出回路５１に出力する。
【００７１】
立ち上がりエッジ検出回路５１には、ＡＮＤ回路４７の出力が入力される。立ち上がりエッジ検出回路５１は、基準クロックＳＨＣＫの立ち上がりのタイミングでＡＮＤ回路４７の出力の論理レベルが「１」であることを検出した場合、エラーパルスＥＧＣＫを、フリップフロップ３５、ＭＩＳＲ回路５、６及び処理制御回路９に出力する。
【００７２】
フリップフロップ３５は、入力Ｄに論理レベルが「１」のＶＤＤが入力され、クロックＣＫにエラーパルスＥＧＣＫが入力される。さらに、リセット／ＲＥＳには、リセット信号ＲＥＳが入力される。
【００７３】
フリップフロップ３５は、エラーパルスＥＧＣＫの立ち上がりに同期して、ＶＤＤの論理レベルが「１」の信号を、エラー信号ＥＲＲとしてＡＮＤ回路４８、ＭＩＳＲ回路５、６及び処理制御回路９に出力する。
【００７４】
フリップフロップ３５は、フリップフロップ３４と同様、リセット信号ＲＥＳの論理レベルが「０」の場合、保持する値を初期化する。フリップフロップ３５は、エラーパルスＥＧＣＫの立ち上がりがあった場合、論理レベルが「０」のリセット信号ＲＥＳが入力されるまで、出力するエラー信号ＥＲＲの論理レベルを「１」に保ち続ける。
【００７５】
ＡＮＤ回路４８には、フリップフロップ３４の出力及びエラー信号ＥＲＲが入力される。ＡＮＤ回路４８は、出力をフリップフロップ３６に出力する。
【００７６】
フリップフロップ３６は、入力ＤにＡＮＤ回路４８の出力が入力され、クロックＣＫに基準クロックＳＨＣＫが入力される。さらに、リセット／ＲＥＳには、リセット信号ＲＥＳが入力される。
【００７７】
フリップフロップ３６は、基準クロックＳＨＣＫの立ち上がりに同期して、ＡＮＤ回路４８の出力をエラー特定信号ＥＲＲ−ＲＴとして処理制御回路９に出力する。
【００７８】
なお、フリップフロップ３６は、フリップフロップ３４と同様、リセット信号ＲＥＳの論理レベルが「０」の場合、保持する値を初期化する。
【００７９】
まとめると、不一致検出回路８は、固有信号ＭＩＳＲＯＵＴ１、２の不一致を検出することによって、エラー信号ＥＲＲ及びエラーパルスＥＧＣＫを出力している。エラー信号ＥＲＲは、ＭＩＳＲ回路５、６の動作をビットシフト動作へ移行させるための信号である。エラーパルスＥＧＣＫは、ＭＩＳＲＯＵＴ１、２の不一致発生を知らせるための信号である。
【００８０】
さらに、不一致検出回路８は、エラー信号ＥＲＲの論理レベルが「１」の場合に固有信号ＭＩＳＲＯＵＴ１、２の不一致を検出すると、エラー特定信号ＥＲＲ−ＲＴを出力する。エラー特定信号ＥＲＲ−ＲＴは、ＭＩＳＲ回路５、６がビットシフト動作中において、固有信号ＭＩＳＲＯＵＴ１、２の不一致発生を知らせるものである。つまり、エラー特定信号ＥＲＲ−ＲＴは、動作信号ＥＮ、ＷＲ及びＤＡＴＡの中で、異常がある信号を特定する役割を果たす。
【００８１】
以下、図４を用いて、処理制御回路９の詳細について説明する。図４は、本実施形態の処理制御回路の構成の例を示す図である。処理制御回路９は、カウンタ２１、レジスタ２２、選択信号発生器２３、ＯＲ回路４６、ＡＮＤ回路４９、５０及び立ち上がりエッジ検出回路５２を備える。前述の図１の説明の通り、処理制御回路９は、エラーパルスＥＧＣＫ、エラー信号ＥＲＲ、エラー特定信号ＥＲＲ−ＲＴに基づいて、制御信号ＣＡＰＴＵＲＥ及びいずれかの信号ＥＲＲＯＲ１〜３を生成し、出力する。なお、処理制御回路９は、基準クロックＳＨＣＫに同期して動作する。
【００８２】
立ち上がりエッジ検出回路５２は、基準クロックＳＨＣＫの立ち上がりに同期してエラーパルスＥＧＣＫの立ち上がりを検出すると、制御信号ＣＡＰＴＵＲＥをカウンタ２１、ＡＮＤ回路４９及びＭＩＳＲ回路５、６に出力する。
【００８３】
ＡＮＤ回路４９には、基準クロックＳＨＣＫ及び制御信号ＣＡＰＴＵＲＥが入力される。ＡＮＤ回路４９は、出力をＯＲ回路４６に出力する。
【００８４】
ＯＲ回路４６には、ＡＮＤ回路４９の出力及びリセット信号ＲＥＳが入力される。ＯＲ回路４６は、出力をカウンタ２１に出力する。
【００８５】
カウンタ２１には、カウントトリガＣＮＴ−ＴＲＧに制御信号ＣＡＰＴＵＲＥが入力され、クロック／ＣＫに基準クロックＳＨＣＫが入力される。さらに、リセット／ＲＥＳには、ＯＲ回路４６の出力が入力される。
【００８６】
カウンタ２１は、反転された基準クロックＳＨＣＫの立ち上がりに同期して、制御信号ＣＡＰＴＵＲＥの立ち上がりを検知すると、カウントアップを開始する。カウンタ２１は、レジスタ２２にカウント値のデータを出力する。
【００８７】
なお、カウンタ２１は、ＯＲ回路４６の出力の論理レベルが「０」の場合、カウントアップした値を初期化する。
【００８８】
レジスタ２２には、カウンタ２１のカウント値のデータが入力される。さらに、リセット／ＲＥＳにはリセット信号ＲＥＳが入力され、レジスタトリガＲＧ−ＴＲＧにはＡＮＤ回路５０の出力が入力される。
【００８９】
ここで、ＡＮＤ回路５０には、エラー信号ＥＲＲ及びエラー特定信号ＥＲＲ−ＲＴが入力される。ＡＮＤ回路５０は、出力をレジスタ２２に出力する。
【００９０】
レジスタ２２は、ＡＮＤ回路５０の出力の論理レベルが「１」になった場合、カウンタ２１のカウント値を保持（ラッチ）する。保持したカウント値のＤＡＴＡは、選択信号発生器２３に出力される。
【００９１】
なお、レジスタ２２は、リセット信号ＲＥＳの論理レベルが「０」になった場合、保持したカウント値を初期化する。
【００９２】
選択信号発生器２３には、レジスタ２２が保持したカウント値のデータが入力される。さらに、リセット／ＲＥＳにはリセット信号ＲＥＳが入力され、セレクトナンバーＳＥＬＥＮにはエラー特定信号ＥＲＲ−ＲＴが入力される。
【００９３】
さらに、選択信号発生器２３は、エラー特定信号ＥＲＲ−ＲＴが入力されると、レジスタ２２が保持したカウント値に対応して、信号ＥＲＲＯＲ１、２、３のいずれかを出力する。
【００９４】
なお、選択信号発生器２３は、リセット信号ＲＥＳの論理レベルが「０」になった場合、保持したカウント値を初期化する。
【００９５】
図５は、セレクトナンバーＳＥＬＥＮに入力された論理レベル（つまり、エラー特定信号ＥＲＲ−ＲＴの論理レベル）と、レジスタ２２に保持された２ビットのカウント値とに基づいて、選択信号発生器２３が何の動作を行うかを示した図表である。以下、図５に基づいて、選択信号発生器２３の動作について説明する。
【００９６】
選択信号発生器２３のセレクトナンバーＳＥＬＥＮに論理レベルが「０」の信号が入力されている場合、選択信号発生器２３は、レジスタ２２が保持するカウント値に関係なく、信号ＥＲＲＯＲ１〜３に論理レベルが「０」の信号を出力する。
【００９７】
選択信号発生器２３のセレクトナンバーＳＥＬＥＮに論理レベルが「１」の信号が入力され、レジスタ２２が保持するカウント値が「０１」である場合、選択信号発生器２３は、信号ＥＲＲＯＲ１に論理レベルが「１」の信号を出力する。これにより、選択信号発生器２３は、１本目の動作信号ＥＮに異常があることを通知する。
【００９８】
選択信号発生器２３のセレクトナンバーＳＥＬＥＮに論理レベルが「１」の信号が入力され、レジスタ２２が保持するカウント値が「１０」である場合、選択信号発生器２３は、信号ＥＲＲＯＲ２に論理レベルが「１」の信号を出力する。これにより、選択信号発生器２３は、２本目の動作信号ＷＲに異常があることを通知する。
【００９９】
選択信号発生器２３のセレクトナンバーＳＥＬＥＮに論理レベルが「１」の信号が入力され、レジスタ２２が保持するカウント値が「１１」である場合、選択信号発生器２３は、信号ＥＲＲＯＲ３に論理レベルが「１」の信号を出力する。これにより、選択信号発生器２３は、３本目の動作信号ＤＡＴＡに異常があることを通知する。
【０１００】
以上のようにして、選択信号発生器２３は、信号ＥＲＲＯＲ１〜３のいずれかの信号を発生させることで、異常が生じた動作信号を特定する。つまり、セレクトナンバーＳＥＬＥＮに論理レベルが「１」の信号が入力されることにより、選択信号発生器２３は、レジスタ２２に保持している値に応じた信号ＥＲＲＯＲ１〜３のいずれかの信号に、論理レベルが「１」の信号を出力する。
【０１０１】
まとめると、処理制御回路９は、エラーパルスＥＧＣＫを検出することによって、制御信号ＣＡＰＴＵＲＥを出力している。制御信号ＣＡＰＴＵＲＥは、固有信号ＭＩＳＲＯＵＴ１、２の不一致を検出した後に、ＭＩＳＲ回路５、６に対して、動作信号ＥＮ、ＷＲ、ＤＡＴＡを出力させるための信号である。
【０１０２】
更に、処理制御回路９は、エラー信号ＥＲＲ及びエラー特定信号ＥＲＲ−ＲＴに応じて、異常が生じた動作信号を特定する信号ＥＲＲＯＲ１〜３のいずれかを出力する。
【０１０３】
以下、本実施形態にかかる異常検出回路４の動作例を、図６を用いて詳細に説明する。図６は、異常検出回路４の動作例を示すタイミングチャートである。異常検出回路４の構成は、図１〜図４に示した通りである。
【０１０４】
図６において、動作信号ＥＮ１とＥＮ２、動作信号ＤＡＴＡ１とＤＡＴＡ２とは常に一致している。しかし、動作信号ＷＲ１とＷＲ２とは、時刻Ｔ２〜Ｔ３で不一致が生じ、そのまま不一致が継続している。言いかえれば、図６において、動作信号ＥＮ及び動作信号ＤＡＴＡには異常がないが、動作信号ＷＲは、Ｔ３以降で異常が生じている。
【０１０５】
初期状態の時刻Ｔ０において、リセット信号ＲＥＳの論理レベルは「０」である。このとき、ＭＩＳＲ回路５、６のフリップフロップ３１〜３３、不一致検出回路８のフリップフロップ３４〜３６及び処理制御回路９のカウンタ２１、レジスタ２２、選択信号発生器２３はリセットされ、保持している値を「０」にする。
【０１０６】
このとき、エラーパルスＥＧＣＫ及びエラー信号ＥＲＲの論理レベルが「０」であることから、図２のＭＩＳＲ回路５、６におけるフリップフロップ３１〜３３には、それぞれＥＯＲ回路４１〜４３の出力が入力される。
【０１０７】
時刻Ｔ０〜Ｔ１において、動作信号ＥＮ１及び動作信号ＥＮ２の論理レベルは「１」に変化する。ここで、ＭＩＳＲ回路５、６において、フリップフロップ３２は、初期化されていて出力が「０」であることから、ＥＯＲ回路４３の出力の論理レベルは、「０」から「１」に変化する。
【０１０８】
このため、時刻Ｔ１においては、反転された基準クロックＳＨＣＫに同期して、固有信号ＭＩＳＲＯＵＴ１、２の論理レベルが「１」に変化する。
【０１０９】
時刻Ｔ１〜Ｔ２において、動作信号ＷＲ１及び動作信号ＷＲ２の論理レベルは「１」に変化する。
【０１１０】
時刻Ｔ２〜Ｔ３において、動作信号ＥＮ１及び動作信号ＥＮ２の論理レベルは「１」に変化する。ここまでが、全ての動作信号が正常に動作している期間である。
【０１１１】
ここで、時刻Ｔ２〜Ｔ３において、動作信号ＷＲ２に異常が生じ、時刻Ｔ３以降、動作信号ＷＲ２の論理レベルは「０」のままである。異常検出回路４は、この動作信号ＷＲの異常を、以下に示す動作によって検出する。
【０１１２】
時刻Ｔ３の直前において、ＭＩＳＲ回路５のＥＯＲ回路４２には、動作信号ＷＲ１の論理レベル「１」及びフリップフロップ３１の出力である論理レベル「１」が入力される。そのため、ＭＩＳＲ回路５のフリップフロップ３２には、ＥＯＲ回路４２の出力である論理レベル「０」が入力される。
【０１１３】
しかしながら、時刻Ｔ３の直前において、ＭＩＳＲ回路６のＥＯＲ回路４２には、動作信号ＷＲ２の論理レベル「０」及びフリップフロップ３１の出力である論理レベル「１」が入力される。そのため、ＭＩＳＲ回路６のフリップフロップ３２には、ＥＯＲ回路４２の出力である論理レベル「１」が入力される。
【０１１４】
以上から、時刻Ｔ３において、反転された基準クロックＳＨＣＫに同期して、ＭＩＳＲ回路５のフリップフロップ３２は、「０」の論理レベルを出力し、ＭＩＳＲ回路６のフリップフロップ３２は、「１」の論理レベルを出力する。
【０１１５】
時刻Ｔ３〜Ｔ４において、ＭＩＳＲ回路５のＥＯＲ回路４３には、動作信号ＥＮ１の論理レベル「１」及びフリップフロップ３２の出力である論理レベル「０」が入力される。そのため、ＭＩＳＲ回路５のフリップフロップ３３には、ＥＯＲ回路４３の出力である論理レベル「１」が入力される。
【０１１６】
しかし、ＭＩＳＲ回路６のＥＯＲ回路４３には、動作信号ＥＮ２の論理レベル「１」及びフリップフロップ３２の出力である論理レベル「１」が入力される。そのため、ＭＩＳＲ回路６のフリップフロップ３３には、ＥＯＲ回路４３の出力である論理レベル「０」が入力される。
【０１１７】
以上から、時刻Ｔ４において、反転された基準クロックＳＨＣＫに同期して、ＭＩＳＲ回路５は、固有信号ＭＩＳＲＯＵＴ１として「１」の論理レベルを出力し、ＭＩＳＲ回路６は、固有信号ＭＩＳＲＯＵＴ２として「０」の論理レベルを出力する。つまり、時刻Ｔ４における固有信号ＭＩＳＲＯＵＴ１と固有信号ＭＩＳＲＯＵＴ２は、不一致である。
【０１１８】
時刻Ｔ４において、不一致検出回路８のＥＯＲ回路４５には、論理レベルが「１」の固有信号ＭＩＳＲＯＵＴ１及び論理レベルが「０」の固有信号ＭＩＳＲＯＵＴ２が入力される。ここから、ＥＯＲ回路４５は、論理レベル「１」をフリップフロップ３４に出力する。
【０１１９】
時刻Ｔ１２において、フリップフロップ３４は、基準クロックＳＨＣＫに同期して、「１」を出力する。フリップフロップ３４の出力の論理レベルが「１」であり、エラー信号ＥＲＲの論理レベルが「０」であることから、ＡＮＤ回路４７は、論理レベル「１」を出力する。立ち上がりエッジ検出回路５１は、そのＡＮＤ回路４７の出力「１」に応じて、論理レベルが「１」のエラーパルスＥＧＣＫを出力する。
【０１２０】
さらに、時刻Ｔ１２において、フリップフロップ３５は、エラーパルスＥＧＣＫに応じて論理レベルが「１」のエラー信号ＥＲＲを出力する。
【０１２１】
つまり、時刻Ｔ１２において、不一致検出回路８は、固有信号ＭＩＳＲＯＵＴ１、２の不一致を検出する。それにより、論理レベルが「１」のエラーパルスＥＧＣＫと、ＭＩＳＲ回路５、６をビットシフト動作へ切り替える論理レベルが「１」のエラー信号ＥＲＲとを、ＭＩＳＲ回路５、６及び処理制御回路９へ出力する。
【０１２２】
以下、時刻Ｔ１２におけるＭＩＳＲ回路５、６の動作について説明する。前述の不一致検出回路８の動作説明の通り、時刻Ｔ１２において、ＭＩＳＲ回路５、６には、論理レベルが「１」のエラーパルスＥＧＣＫ及びエラー信号ＥＲＲが入力される。このとき、エラーパルスＥＧＣＫの論理レベルが「１」であり、リセット信号ＲＥＳの論理レベルが「１」であることから、ＥＯＲ回路４４は論理レベル「０」を出力する。このＥＯＲ回路４４の出力「０」によって、ＭＩＳＲ回路５、６のフリップフロップ３１〜３３は、保持している値がリセットされる。そのため、時刻Ｔ１２において、ＭＩＳＲＯＵＴ１、２は、共に論理レベルが「０」である。
【０１２３】
さらに、論理レベルが「１」のエラー信号ＥＲＲにより、セレクタ回路１１、１３及び１５は、出力を切り替える。例えば、セレクタ回路１５は、ＥＯＲ回路４３の出力ではなく、フリップフロップ３２の出力を出力する。
【０１２４】
次に、処理制御回路９の動作について説明する。時刻Ｔ１２において、処理制御回路９の立ち上がりエッジ検出回路５２には、論理レベルが「１」のエラーパルスＥＧＣＫが入力される。
【０１２５】
ここから、時刻Ｔ１３において、基準クロックＳＨＣＫに同期して、立ち上がりエッジ検出回路５２は論理レベル「１」を出力する。ここから、論理レベルが「１」の制御信号ＣＡＰＴＵＲＥが、ＭＩＳＲ回路５及び６に出力される。
【０１２６】
さらに、時刻Ｔ１３において、論理レベルが「１」の基準クロック及び制御信号ＣＡＰＴＵＲＥがＡＮＤ回路４９に入力される。ＡＮＤ回路４９は、論理レベル「１」をＯＲ回路４６に出力するため、ＯＲ回路４６は、論理レベル「１」を出力する。以上より、カウンタ２１はリセットされる。
【０１２７】
時刻Ｔ１３において、ＭＩＳＲ回路５、６には論理レベルが「１」の制御信号ＣＡＰＴＵＲＥが入力される。そのため、セレクタ回路１２、１４及び１６は、出力を切り替える。例えば、セレクタ回路１６は、セレクタ回路１５の出力ではなく、動作信号ＥＮ１又はＥＮ２を出力する。
【０１２８】
なお、前述の時刻Ｔ１２での説明の通り、時刻Ｔ１２で固有信号ＭＩＳＲＯＵＴ１、２の値が同一であるため、エラーパルスＥＧＣＫは、時刻Ｔ１２〜Ｔ１３の期間（基準クロックＳＨＣＫの１クロック分）のみ、論理レベルが「１」である。そのため、ＭＩＳＲ回路５のフリップフロップ３１〜３３がリセットされるのは時刻Ｔ１３迄である。これはＭＩＳＲ回路６についても同様である。
【０１２９】
次に、時刻Ｔ６において、ＭＩＳＲ回路５のフリップフロップ３１〜３３は、反転された基準クロックＳＨＣＫに同期して、時刻Ｔ６直前の動作信号ＥＮ１をそのまま出力する。ＭＩＳＲ回路６も、ほぼ同時に、時刻Ｔ６直前の動作信号ＥＮ２をそのまま出力する。
【０１３０】
このとき、ＭＩＳＲ回路５、６が出力する動作信号ＥＮ１、２の論理レベルは、「０」である。不一致検出回路８のＥＯＲ回路４５は、動作信号ＥＮ１、２を比較し、不一致がないことを検出して、論理レベル「０」を出力する。そのため、時刻Ｔ７において、不一致検出回路８の出力は変化せず、論理レベル「０」のままである。
【０１３１】
なお、制御信号ＣＡＰＴＵＲＥは、時刻Ｔ１３からＴ１４まで、論理レベルが「１」である。これは、前述の通り、エラーパルスＥＧＣＫの論理レベルが「１」である期間が、時刻Ｔ１２からＴ１３迄であるためである。以上から、制御信号ＣＡＰＴＵＲＥは、ＭＩＳＲ回路５のフリップフロップ３１〜３３に対して、時刻Ｔ６直前の動作信号ＥＮ１、ＷＲ１、ＤＡＴＡ１を１度だけそのまま出力させる働きをする。ＭＩＳＲ回路６のフリップフロップ３１〜３３に対しても、同様に時刻Ｔ６直前の動作信号ＥＮ２、ＷＲ２、ＤＡＴＡ２を１度だけ出力させる。
【０１３２】
エラー信号ＥＲＲは、そのようにして各フリップフロップから出力された出力を、そのままの状態で次のフリップフロップに伝達させる働きをする。
【０１３３】
例えば、時刻Ｔ６において、フリップフロップ３２から出力された動作信号ＷＲ１は、論理レベルが「１」のエラー信号ＥＲＲによって、セレクタ回路１５からそのまま出力される。前述の通り、時刻Ｔ１４以降では、制御信号ＣＡＰＴＵＲＥの論理レベルが「０」であるため、セレクタ回路１６はセレクタ回路１５の出力をフリップフロップ３３に出力する。これにより、時刻Ｔ７において、フリップフロップ３３から動作信号ＷＲ１がそのまま出力される。
【０１３４】
以上のようにして、ＭＩＳＲ回路５は、時刻Ｔ６直前の動作信号ＥＮ１、ＷＲ１、ＤＡＴＡ１を順番に出力する。ＭＩＳＲ回路６も同様である。このようにして、ＭＩＳＲ回路５、６から動作信号を順番に出力させることで、異常検出回路４は、異常が生じた動作信号を特定する。なお、このＭＩＳＲ回路５及び６の動作を、ここではビットシフト動作と記述する。
【０１３５】
さらに、時刻Ｔ６において、処理制御回路９のカウンタ２１は、反転された基準クロックＳＨＣＫに同期して、制御信号ＣＡＰＴＵＲＥの論理レベルが「１」であることに応じ、カウントアップを開始する。なお、時刻Ｔ６において、カウンタ２１のカウンタ値は「０」である。
【０１３６】
次に、時刻Ｔ７において、ＭＩＳＲ回路５、６はビットシフト動作を行い、ほぼ同時に時刻Ｔ６における動作信号ＷＲ１、２を出力する。時刻Ｔ６直前において、動作信号ＷＲ１の論理レベルは「１」であり、動作信号ＷＲ２の論理レベルは「０」である。不一致検出回路８のＥＯＲ回路４５は、この動作信号ＷＲ１、２を比較し、不一致があることを検出して論理レベル「１」を出力する。
【０１３７】
なお、時刻Ｔ７において、処理制御回路９のカウンタ２１は、反転された基準クロックＳＨＣＫに同期し、カウントアップする。これにより、カウンタ２１のカウンタ値は、「０」から「１」に変化する。
【０１３８】
時刻Ｔ１５において、不一致検出回路８のフリップフロップ３４は、基準クロックＳＨＣＫに同期して、ＥＯＲ回路４５の出力である論理レベル「１」をＡＮＤ回路４８に出力する。エラー信号ＥＲＲの論理レベルが「１」であることから、ＡＮＤ回路４８は論理レベル「１」をフリップフロップ３６に出力する。
【０１３９】
時刻Ｔ８において、ＭＩＳＲ回路５、６はビットシフト動作を行い、ほぼ同時に時刻Ｔ６直前における動作信号ＤＡＴＡ１、２を出力する。なお、時刻Ｔ６直前における動作信号ＤＡＴＡ１、２の論理レベルは、「０」である。
【０１４０】
時刻Ｔ８において、処理制御回路９のカウンタ２１は、反転された基準クロックＳＨＣＫに同期し、カウントアップする。これにより、カウンタ２１のカウンタ値は「１」から「２」に変化する。
【０１４１】
時刻Ｔ１６において、不一致検出回路８のフリップフロップ３６は、基準クロックＳＨＣＫに同期して、論理レベル「１」のエラー特定信号ＥＲＲ−ＲＴを処理制御回路９に出力する。
【０１４２】
時刻Ｔ１６では、処理制御回路９のＡＮＤ回路５０において、論理レベルが「１」のエラー特定信号ＥＲＲ−ＲＴ及びエラー信号ＥＲＲが入力される。従って、ＡＮＤ回路５０は、論理レベル「１」をレジスタ２２に出力する。
【０１４３】
以上の通り、レジスタ２２のレジスタトリガＲＧ−ＴＲＧには、論理レベル「１」が入力される。ここから、時刻Ｔ１６において、レジスタ２２はカウンタ２１のカウンタ値である「２」を保持する。保持したカウンタ値「２」は、選択信号発生器２３に出力される。
【０１４４】
さらに、時刻Ｔ１６において、論理レベル「１」のエラー特定信号ＥＲＲ−ＲＴが、選択信号発生器２３のセレクトナンバーＳＥＬＥＮに入力される。レジスタ２２に保持された値は「２」であることから、選択信号発生器２３は、この値に対応した論理レベル「１」の信号ＥＲＲＯＲ２を出力する。
【０１４５】
このようにして、選択信号発生器２３が、論理レベル「１」の信号ＥＲＲＯＲ２を出力することによって、動作信号ＷＲの異常を判定することができる。同様に、信号ＥＲＲＯＲ１の論理レベルが「１」であれば動作信号ＥＮ、信号ＥＲＲＯＲ３の論理レベルが「１」であれば動作信号ＤＡＴＡが異常と判定できる。
【０１４６】
図１におけるバッファ群３の異常、動作信号ＷＲ１又は動作信号ＷＲ２にかかる配線に異常がある等の理由で、動作信号ＷＲに異常が生じた場合、異常検出回路４は以上のように動作する。これによって、動作信号ＷＲについて異常を判定することができる。
【０１４７】
本実施形態にかかる異常検出回路の構成及び処理について、改めて簡潔に説明する。
【０１４８】
ＭＩＳＲ回路５、６は、複数の動作信号に基づき、１本の固有信号ＭＩＳＲＯＵＴ１、２をそれぞれ出力し、不一致検出回路８は、それらの不一致を検出する。ここで、固有信号を出力する回路をＭＩＳＲ回路としたことで、異常検出回路４は、どの動作信号に異常が生じても、その異常を固有信号ＭＩＳＲＯＵＴ１、２の不一致として確実に検出することができる。
【０１４９】
不一致検出回路８が固有信号ＭＩＳＲＯＵＴ１、２の不一致を検出した後、ＭＩＳＲ回路５、６は、制御信号ＣＡＰＴＵＲＥ、エラー信号ＥＲＲに応じて、複数の動作信号を、１本の固有信号ＭＩＳＲＯＵＴ１、２により、シリアルに１ビットずつ順次出力するビットシフト動作を行う。このビットシフト動作は、ＭＩＳＲ回路５、６が、制御信号ＣＡＰＴＵＲＥ又はエラー信号ＥＲＲに応じて出力を切り替えるセレクタ回路１１〜１６を備えていることにより、可能である。不一致検出回路８、処理制御回路９は、その出力された動作信号の何番目に異常があるか（何ビット目に異常が検出されたのか）を検出することで、異常な動作信号を特定できる。
【０１５０】
以上に示した異常検出回路は、次の効果を奏する。
【０１５１】
まず、特許文献１と比較して、総配線長が短くなり、チップ面積の増大を抑えられるという第１の効果が得られる。本実施形態にかかる異常検出回路４においては、任意の数の動作信号の異常検出をする場合でも、ＭＩＳＲ回路５、６から不一致検出回路に接続される配線は、固有信号ＭＩＳＲＯＵＴ１、２にかかる２本の配線で済む。つまり、動作信号毎に配線を設ける必要はない。
【０１５２】
例えば、ＣＰＵ１、ＲＡＭ２間の距離が離れることによって、ＭＩＳＲ回路５、６間の距離が離れても、ＭＩＳＲ回路５、６から不一致検出回路８に接続される配線が２本であるため、配線長の増大は抑制される。
【０１５３】
さらに、障害を検出するために設けられる不一致検出回路の数も、動作信号毎に設ける必要はなく、動作信号の数に関わらず１個で対応可能である。
【０１５４】
特許文献１で開示されている回路は、入力信号と出力信号を一対一で比較する回路構成であるため、動作信号毎にチェック回路を設ける必要がある。そのため、多数の動作信号の異常を検出する場合、必要なチェック回路の数も増大する。
【０１５５】
例えば、図１に示したような場合、動作信号ＥＮ１、ＷＲ１、ＤＡＴＡ１に対応した３本の配線が、ＣＰＵ１近傍からチェック回路まで必要となる。同様に、動作信号ＥＮ２、ＷＲ２、ＤＡＴＡ２に対応した３本の配線が、ＲＡＭ２近傍からチェック回路まで必要となる。しかし、本実施形態にかかる異常検出回路の場合、ＣＰＵ１近傍に設けられたＭＩＳＲ回路５から不一致検出回路まで必要となる配線は１本であり、ＭＩＳＲ回路６においても同様である。
【０１５６】
更に、ＣＰＵ１、ＲＡＭ２の距離が、配置上離れてしまう場合が考えられる。この状態は、ＲＡＭ等のハードマクロとＣＰＵ等のソフトマクロ間のように、タイミング制約、グルーピング制約といった多数の制約がある場合に生じる。そのような場合、合計して６本の配線が、ＣＰＵ１又はＲＡＭ２近傍からチェック回路まで必要となるため、総配線長は大きく増大する。動作信号の数が増大すれば、総配線長は更に増大する。
【０１５７】
しかしながら、本実施形態にかかる異常検出回路においては、ＭＩＳＲ回路５、６から不一致検出回路８に接続される配線は２本で済むため、ＣＰＵ１とＲＡＭ２との距離の増大に伴う総配線長の増大を、特許文献１と比較して抑制することができる。この効果は、異常検出対象とする動作信号の数が多くなるほど顕著である。
【０１５８】
以上のように、本実施形態にかかる異常検出回路は、「総配線長が長くなることで、配線領域が増加し、チップ面積が増大してしまう」といった、特許文献１にかかる課題を解決することができる。
【０１５９】
なお、本実施形態にかかる異常検出回路では、特許文献１で開示されている回路と比べて、ＭＩＳＲ回路５、６が追加されている。ＭＩＳＲ回路５、６を構成するトランジスタ素子は数平方マイクロメートルであり、そのトランジスタ素子が数十個集まることで、ＭＩＳＲ回路５、６は、例えば数百平方マイクロメートル程度の面積を占有する。しかし、本実施形態にかかる異常検出回路によって削減される配線の長さは数ミリ〜数十ミリであり、面積にすると数万平方マイクロメートル程度に相当する。以上を考慮すると、チップ面積の増大を抑制するという観点において、総配線長を短くするメリットの方が、新たに面積を占有するＭＩＳＲ回路を設けるデメリットより、はるかに大きいことは明らかである。
【０１６０】
更に、不一致検出回路８（チェック回路）まで接続される配線長が短くなることで、当該配線における異常発生を低減できるという第２の効果が得られる。言いかえれば、異常検出回路そのものにおいて、異常発生の要因となる配線を削減することが出来る。
【０１６１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、動作信号は３本ではなく４本、５本など、複数であれば他の数でもよい。
【０１６２】
バッファ群３は、正常である場合、動作信号ＥＮ１、ＷＲ１、ＤＡＴＡ１と同じ値で動作信号ＥＮ２、ＷＲ２、ＤＡＴＡ２を出力するとしたが、そうでなくてもよい。例えば、バッファ群３は、動作信号ＤＡＴＡ１を常に反転させて、動作信号ＤＡＴＡ２を出力するとしてもよい。その場合、例えば、動作信号ＤＡＴＡ２がＭＩＳＲ回路６に入力する時点で反転されるようにすることで、異常検出回路４は上記実施の形態と同様に動作できる。
【０１６３】
ＭＩＳＲ回路５はＣＰＵ１の近傍へ配置され、ＭＩＳＲ回路６はＲＡＭ２の近傍へ配置されるとしたが、ＭＩＳＲ回路５及び６の配置はそれ以外の場所でも構わない。例えば、異常検出回路４が異常を検出する対象がバッファ群３のみであり、動作信号ＥＮ、ＷＲ、ＤＡＴＡにかかる配線の異常は検出しなくてよい場合、ＭＩＳＲ回路５、６はバッファ群３の近傍に設けてもよい。それにより、総配線長を、上記実施形態よりも更に削減することが可能である。
【０１６４】
ＣＰＵ１は、動作信号の入出力を行う機能を有するならば、他の論理回路でもよい。ＲＡＭ２も、ＣＰＵ１からの信号が入力されるような、他の周辺回路（次段回路）でもよい。要するに、ＣＰＵ１、ＲＡＭ２は、他の機能マクロでもよい。また、動作信号は、動作信号ＥＮ、ＷＲ、ＤＡＴＡ以外の信号でもよい。
【０１６５】
バッファ群３は、必ずしも設けられる必要はない。例えば、ＣＰＵ１及びＲＡＭ２の間には信号伝達部として長い配線が設けられ、ＭＩＳＲ回路５、６は、それぞれＣＰＵ１、ＲＡＭ２の近傍に配置されているような構成でもよい。その場合、異常検出回路４は、動作信号における配線上の異常、長距離の動作信号の伝送に伴う減衰等を検出する働きをする。
【０１６６】
ＭＩＳＲ回路５、６、不一致検出回路８及び処理制御回路９は、実施の形態１と同様に動作するものであれば、実施の形態１で示した構成以外の構成を備えてもよい。
【符号の説明】
【０１６７】
１  ＣＰＵ
２  ＲＡＭ
３  バッファ群
４  異常検出回路
５、６  ＭＩＳＲ回路
７  異常信号特定回路
８  不一致検出回路
９  処理制御回路
１１、１２、１３、１４、１５、１６  セレクタ回路
２１  カウンタ
２２  レジスタ
２３  選択信号発生器
３１、３２、３３、３４、３５、３６  フリップフロップ
４１、４２、４３、４４、４５  ＥＯＲ回路
４６  ＯＲ回路
４７、４８、４９、５０  ＡＮＤ回路
５１、５２  立ち上がりエッジ検出回路
【図１】
2012198776.tif 000003
【図２】
2012198776.tif 000004
【図３】
2012198776.tif 000005
【図４】
2012198776.tif 000006
【図５】
2012198776.tif 000007
【図６】
2012198776.tif 000008
【図７】
2012198776.tif 000009
【図８】
2012198776.tif 000010