(57)【要約】      （修正有）【課題】クロック遅延型ロックシステム方式の半導体装置の回路面積や消費電力の増大の抑制あるいは削減を可能とする。【解決手段】第１及び第２のプロセッサ１０、２０と、前記第１のプロセッサに入力する信号を遅延させ、前記第２のプロセッサに入力する第１の遅延回路３１、３２と、前記第１のプロセッサから出力されるｎビット出力信号を入力しｍビット（ｍ＜ｎ）に圧縮して並列出力する第１の圧縮回路４５と、前記第２のプロセッサから出力されるｎビット出力信号を入力しｍビットに圧縮して並列出力する第２の圧縮回路４６と、前記第１の圧縮回路から出力されるｍビット信号を入力し前記所定サイクル分遅延させて並列出力する第２の遅延回路４１、４２と、前記第２の遅延回路４１、４２から出力されるｍビット信号と、前記第２の圧縮回路から出力されるｍビット信号が一致するか比較する一致比較回路４３を備える。【選択図】図２
2014081853.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２のプロセッサと、
前記第１のプロセッサに入力する信号を入力し前記信号を予め定められた所定サイクル遅延させて前記第２のプロセッサに入力する第１の遅延回路と、
前記第１のプロセッサから出力されるビット幅ｎの信号を入力し、前記ビット幅ｎの信号をビット幅ｍ（ただし、ｍ＜ｎ）の信号に圧縮する第１の圧縮回路と、
前記第２のプロセッサから出力されるビット幅ｎの信号を入力し、前記ビット幅ｎの信号をビット幅ｍの信号に圧縮する第２の圧縮回路と、
前記第１の圧縮回路から出力されるビット幅ｍの信号を入力し、前記ビット幅ｍの信号を、前記第１の遅延回路の遅延に等しい前記所定サイクル分遅延させて出力する第２の遅延回路と、
前記第２の遅延回路から出力されるビット幅ｍの信号と、前記第２の圧縮回路から出力されるビット幅ｍの信号を入力し、入力した信号の対応するビット同士が互いに一致するか否か比較する一致比較回路と、
を備えた半導体装置。
【請求項２】
前記第１及び第２の圧縮回路の各々が、前記ビット幅ｎの信号を前記ビット幅ｍの信号に圧縮するハッシュ関数回路を備えた請求項１記載の半導体装置。
【請求項３】
前記第１及び第２の圧縮回路の各々において、前記ビット幅ｎの信号を、複数のグループに区分し、前記複数のグループの信号のうち、少なくとも１つのグループの信号のビット幅を少なくとも１ビットの信号に圧縮して出力する少なくとも１つのハッシュ関数回路を備え、少なくとも１つのハッシュ関数回路の出力信号と、残りのグループの信号のビット数との和が前記ｍである、請求項１記載の半導体装置。
【請求項４】
前記第１及び第２の圧縮回路の各々において、前記ビット幅ｎの信号を、ｍ個のグループに区分し、前記ｍ個のグループの信号のビット幅をそれぞれ１ビットの信号に圧縮して出力するｍ個のハッシュ関数回路を備えた請求項１記載の半導体装置。
【請求項５】
前記ｍ個のハッシュ関数回路が、圧縮率が互いに異なる少なくとも２つのハッシュ関数回路を含む、請求項４記載の半導体装置。
【請求項６】
前記第１及び第２の圧縮回路の各々において、前記ビット幅ｎの信号を（ｓ＋１）個のグループに区分し、１つのグループの信号のビット幅ｄ（ｄ＋ｓ＝ｍ）は圧縮せずにそのまま出力し、他のｓ個のグループの信号のビット幅をそれぞれ１ビットに圧縮するｓ個のハッシュ関数回路を備えた請求項１記載の半導体装置。
【請求項７】
前記第２の圧縮回路のビット幅ｍの信号のうち、予め定められたｋビットの信号をサンプルする第１のサンプリング回路を備え、
前記第２の遅延回路から出力されるビット幅ｍの信号のうち、前記第１のサンプリング回路でサンプルするｋビットに対応したｋビットの信号をサンプルする第２のサンプリング回路を備え、
前記第２の圧縮回路のビット幅ｍの信号のうち、前記第１のサンプリング回路でサンプルしたｋビットの信号と、残りの（ｍ−ｋ）ビット、及び、
前記第２の遅延回路から出力されるビット幅ｍの信号のうち、前記第２のサンプリング回路でサンプルしたｋビットの信号と、残りの（ｍ−ｋ）ビットが、前記一致比較回路に入力される請求項１記載の半導体装置。
【請求項８】
前記第１及び第２のサンプリング回路の各々が、前記ｋビットの信号をクロック信号のトリガーエッジに応答して入力をサンプルして出力する、ｋ個並列に接続されたフリップフロップを含む、請求項７記載の半導体装置。
【請求項９】
前記一致比較回路において、
前記第２の遅延回路から出力されるビット幅ｍの信号を（ｓ＋１）個のグループに区分し、
前記第２の圧縮回路から出力されるビット幅ｍの信号を（ｓ＋１）個のグループに区分し、
前記第２の遅延回路と前記第２の圧縮回路からそれぞれ出力される第１のグループの信号同士を比較し１ビットの比較結果を出力する第１の一致比較回路、乃至、
前記第２の遅延回路と前記第２の圧縮回路からそれぞれ出力される第（ｓ＋１）のグループの信号同士を比較し１ビットの比較結果を出力する第ｓの一致比較回路を備え、
前記第１乃至第（ｓ＋１）の一致比較回路の各１ビット出力を入力し、入力した（ｓ＋１）ビットの信号の論理演算結果を、前記第２の遅延回路と前記第２の圧縮回路から出力されるビット幅ｍの信号の比較結果として出力する論理回路を備えた請求項１記載の半導体装置。
【請求項１０】
前記第１乃至第（ｓ＋１）の一致比較回路の出力のうち、予め定められた少なくとも１つの出力を入力し、前記入力をサンプルして前記論理回路に入力する、少なくとも１つの第３のサンプリング回路を備えた請求項９記載の半導体装置。
【請求項１１】
前記第３のサンプリング回路が、クロック信号のトリガーエッジに応答して入力をサンプルして出力するフリップフロップを含む、請求項１０記載の半導体装置。
【請求項１２】
前記第１及び第２のプロセッサに対してクロック信号を共通に供給するか、一方のプロセッサへのクロック信号の供給を停止させる制御を行う回路を備えた請求項１記載の半導体装置。
【請求項１３】
前記第１の遅延回路が、予め定められた所定段数カスケード接続され、各段毎、入力のビット数に対応した個数並置され、クロック信号のトリガーエッジに応答して入力をサンプルして出力するフリップフロップを含む、請求項１記載の半導体装置。
【請求項１４】
前記第２の遅延回路が、予め定められた所定段数カスケード接続され、各段毎、ｍ個並置され、クロック信号のトリガーエッジに応答して入力をサンプルして出力するフリップフロップを含む、請求項１記載の半導体装置。
【請求項１５】
前記第１及び第２の圧縮回路の各々が、前記ビット幅ｎの信号を、複数のグループに区分し、前記複数のグループの信号のうち少なくとも１つのグループの信号に対応したハッシュ関数回路として、入力する前記グループの信号に関して複数ビットエラー検出可能な符号をなし、前記入力した信号のビット幅を圧縮した信号を出力する符号化回路を含む、請求項１記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、プロセッサ（CPUコア）を備えた半導体装置に関する。
【背景技術】
【０００２】
機能安全（Functional Safety）等の向上のために、半導体装置の稼動中に故障（障害）をいち早く、且つ、高精度に検出することが要求される。ここで、機能安全とは、安全機能が正しく動作することによって実現される安全性をいう。例えば車載電子機器等の機能安全規格として国際標準化機構のISO26262（ISO: International Organization for Standardization）がある。誤動作等による障害発生時に安全側に制御するフェールセーフ機能や、部品等に障害発生した場合でもシステムを停止することなく正常に稼動を続けられるようにしたフォールトトレラント機能等を実現するための一例として、ロックステップ方式（lockstep system）が用いられている。デュアルコア・ロックステップ方式は、同一構成の二つのプロセッサ（CPU（Central Processing Unit）コア）で同一の処理を実行し、その差を検出することで、故障を検出する。
【０００３】
ロックステップ・フォールトトレラント・コンピュータシステムとして、例えば特許文献１の記載が参照される。特許文献１には、サブシステムが、個々に、内部モジュールの動作の実際の比較を可能にするためのデータ圧縮に使用する並列入力シグネチャ生成器と、ロックステップ・サブシステムの内部モジュールの出力を記憶する論理解析器と、を含む。同期はずれ事象が起こった後、論理解析器のトレースを自動的に探索して、動作中の第１差分の位置を突き止め、どの内部モジュールが障害のある出力を与えたかを判別し、続いて、そのモジュールを故障であると標識するようにした構成とされている。
【０００４】
プロセッサの出力信号を圧縮して比較する関連技術として、例えば特許文献２には、同じ処理を並列に実行する第１、第２の処理部を備えた比較冗長型情報処理装置において、夫々の処理部が実行したデータの一致、不一致を比較判定する診断部を備え、前記診断部が、前記プロセッサが実行する前記演算データについて、ハッシュ演算を実行して、当該演算データを圧縮して要約情報とする要約情報変換部と、要約情報記憶部に記憶された一方の前記要約情報と、他の前記診断部が処理した他方の前記要約情報とを比較して、一致しているか否かを判定する比較部を備え、前記演算データを圧縮した要約情報を相互に比較して一致または不一致を判定して系統選択部に判定信号を出力する構成が開示されている。
【０００５】
特許文献３には、複数のマイクロプロセッサ（CPU1、CPU2）をクロック同期運転させ、同期運転状態の各マイクロプロセッサ（CPU1、CPU2）のバス出力（２０〜２ｍ）を比較することにより、故障の有無を監視するフェールセーフ処理装置における故障検出装置において、各マイクロプロセッサ（CPU1、CPU2）の多ビットのバス出力（２０〜２ｍ）の所定の単位を、各ビットあるいは複数ビット単位に直列にそれぞれ符号圧縮する圧縮処理部と、該圧縮処理部より出力される各圧縮データを直列に比較し、動作不一致の場合の故障を検出する比較部を有するバス比較器を備えた構成が開示されている。
【０００６】
特許文献４には、２重化構成の各装置へのテスト入力として、ランダムパタンを生成するテスト用パタン生成器と、テスト入力に伴う各装置からの出力を時間的に圧縮して固有の圧縮値を生成する圧縮器と、各装置へのテスト入力終了時、圧縮器の出力を、２を法（modulo）として加算する加算器と、前記加算器の加算結果が各装置へのランダムパタンのパタン入力数に依存して決定される所定パタンに一致するか比較する比較器を備えた構成が開示されている。
【０００７】
特許文献５には、第１のマイクロプロセッサのアドレスバスまたはデータバスに現れる多ビットデータの履歴を圧縮して符号化する第１の符号解析器（LFSR：Liner Feedback Shift Register）と、第２のマイクロプロセッサのアドレスバスまたはデータバスに現れる多ビットデータの履歴を、前記第１の符号解析器における手順と同一手順により圧縮して符号化する第２の符号解析器と、前記第１の符号解析器により得られた符号と、前記第２の符号解析器により得られた符号とを比較する照合手段を備え、マイクロプロセッサの処理負担を抑制しつつ、障害を高精度かつ高速に検出可能とした構成が開示されている。
【０００８】
図１に、クロック遅延型デュアルコア・ロックステップ方式(scheme)の半導体装置のプロトタイプ例を示す。図１を参照すると、この半導体装置は、通常動作用の第１のプロセッサ（CPUコア）１０と、通常動作用のプロセッサの動作を監視する第２のプロセッサ（CPUコア）２０と、入力制御回路３０と、出力比較回路４０’と、を備えている。デュアルコア・ロックステップシステムを構成する第１、第２のプロセッサ１０、２０は、同一構成とされ、それぞれ「Masterコア」、「Checkerコア」ともいう。特に制限されないが、各プロセッサ（１０、２０）は、例えばCPU、キャッシュメモリ、キャッシュコントローラ、割り込みコントローラ（INTC：Interrupt Controller）、割り込みインタフェース、バスインタフェース等を備えている。あるいは、さらに、浮動小数点演算を行う浮動小数点ユニット（FPU：Floating Processing Unit）、外部メモリへのアクセス制御を行うメモリ保護ユニット（MPU：Memory Protection Unit）、外部ペリフェラル（アドレス空間）にアクセスするペリフェラルインタフェース等を備えた構成としてもよい。
【０００９】
入力制御回路３０へ入力されるCPU入力は、第１のプロセッサ（Masterコア）１０へ入力される信号を表している。CPU入力は、例えば第１のプロセッサ１０による、例えば不図示のメモリやＩＯ機器等へのアクセスに対する当該メモリやＩＯ機器からの応答として、第１のプロセッサ１０に入力される信号に対応する。フリップフロップ（FF）３１、３２は、CPU入力を所定サイクル遅延させる遅延回路として機能する。フリップフロップ（FF）３１、３２の各々は、例えばクロック信号の立ち上がりエッジでデータ端子に入力される信号をサンプルして出力するエッジトリガー型Ｄフリップフロップ（D-FF）で構成される。２段カスケード接続されたフリップフロップ（FF）３１、３２はシフトレジスタとして機能し、CPU入力は、クロック信号をシフトクロックとして転送され、例えば２クロックサイクル遅延してフリップフロップ（FF）３２から出力される。あるいは、フリップフロップ（FF）３１がクロック信号の立ち上がりエッジでデータ端子に入力される信号をサンプルし、フリップフロップ（FF）３２がクロック信号の立ち下がりエッジでデータ端子に入力される信号をサンプルする構成の場合、フリップフロップ（FF）３１、３２は遅延時間１．５クロックサイクルの遅延回路として機能する。
【００１０】
第２のプロセッサ２０には、第１のプロセッサ１０に入力される信号（CPU入力）を、フリップフロップ３１、３２で遅延させた信号が入力される。第２のプロセッサ２０では、第１のプロセッサ１０と同一の信号を、例えば２クロックサイクル数分遅れて入力し、第１のプロセッサ１０と同一の処理を、２クロックサイクル数分、遅れて実行する。第１、第２のプロセッサ１０、２０における処理タイミングを遅延（分散）させることで、消費電力のピーク等を分散させる。
【００１１】
なお、図１において、第１、第２のプロセッサ１０、２０への入力信号（CPU入力）は、複数ビット（並列ビット）であってよいことは勿論である。この場合、入力制御回路３０において、フリップフロップ（FF）３１、３２は、それぞれ、複数ビットに対応した分、複数個、並列配置される。以下に説明される図面についても同様である。
【００１２】
出力比較回路４０’において、２段のフリップフロップ４１、４２は、第１のプロセッサ１０から並列に出力されるｎビット信号（Master出力）を、入力制御回路３０のフリップフロップ３１、３２と同一の遅延時間分遅延させる遅延回路として機能する。フリップフロップ（FF）４１、４２の各々は、例えば不図示のクロック信号の立ち上がりエッジ等で、データ端子に入力される信号をサンプルして出力するエッジトリガー型Ｄフリップフロップ（D-FF）で構成され、ｎビット出力に対応して、フリップフロップがｎ個並列に配置される。図１において、FF×ｎは１ビットのフリップフロップ（FF）がｎ個並列配置されていることを表している。
【００１３】
第１のプロセッサ１０から出力されるｎビット信号（Master出力）を、２段のフリップフロップ４１、４２で、例えば２クロックサイクル数分、遅らせる。
【００１４】
一致比較回路４３では、ｎ個のフリップフロップ４２から並列に出力されるｎビット信号と、第１のプロセッサ１０からの出力に対して２クロックサイクル遅れて第２のプロセッサ２０から出力されるｎビット信号（Checker出力）とが一致するかチェックする。一致比較回路４３は、２組のｎビット信号の対応するビット同士が互いに一致するかビット毎（bit-wise）に比較する。
【００１５】
フリップフロップ４４は、一致比較回路４３による比較結果出力（１ビット）を、クロック毎にサンプルし、比較エラー有無信号として出力する。比較エラー有の場合、プロセッサでデータ破壊等のエラーが生じていることになる。この場合、第１、第２のプロセッサ１０、２０等では、機能安全目標等に対応して予め定められた処理、が実行される。なお、図１において、第１、第２のプロセッサ１０、２０には、クロック信号clock、クロック信号の活性化を制御する制御信号であるクロックイネーブル信号clock_enable、リセット信号resetは、第１、第２のプロセッサ１０、２０に共通に入力される。また、入力制御回路３０、出力比較回路４０’にも、第１、第２のプロセッサ１０、２０と共通にクロック信号clock、リセット信号resetが入力される。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開平１０−１１６２５８号公報
【特許文献２】特開２０１１−１２３５４５号公報
【特許文献３】特開平０５−３２４３９１号公報
【特許文献４】特開平０１−２６５１７１号公報
【特許文献５】特開２０１１−１２８８２１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
以下に、図１のプロトタイプ例に関する分析を与える。
【００１８】
図１に示すように、第１のプロセッサ１０からの出力信号(ｎビット)を第２のプロセッサ２０の出力信号(ｎビット)と比較するために、第１のプロセッサ１０の出力信号(ｎビット)を例えば２クロックサイクル分遅延させる遅延回路（２段のフリップフロップ４１、４２）が必要である。このような２クロック遅延方式の場合、第１のプロセッサ１０の出力信号（例えば２０００ビット並列出力）を、第２のプロセッサ２０の出力信号（例えば２０００ビット）と比較するために、出力比較回路４０’では、２段のフリップフロップ（FF×ｎ）４１、４２として、２０００×２段＝４０００個のフリップフロップが必要となる。この結果、回路面積が増大し、電力も増大する。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１９】
一実施形態によれば、第１及び第２のプロセッサと、前記第１のプロセッサに入力する信号を予め定められた所定サイクル遅延させ、前記第２のプロセッサに入力する第１の遅延回路と、前記第１のプロセッサから並列に出力されるｎビット出力信号を入力しｍビット（ただし、ｍ＜ｎの正整数）に圧縮して並列出力する第１の圧縮回路と、前記第２のプロセッサから並列に出力されるｎビット出力信号を入力しｍビットに圧縮して並列出力する第２の圧縮回路と、前記第１の圧縮回路から出力されるｍビット信号を入力し前記所定サイクル分遅延させて並列出力する第２の遅延回路と、前記第２の遅延回路から並列に出力されるｍビット信号と、前記第２の圧縮回路から並列に出力されるｍビット信号の対応するビット同士が互いに一致するか否か比較する一致比較回路と、を備えている。
【発明の効果】
【００２０】
前記実施形態によれば、プロセッサのビット幅ｎの出力信号をビット幅ｍに圧縮して遅延回路に入力し、遅延回路を構成するフリップフロップ１段当りの個数をｎからｍ（ｍ＜ｎ）に削減し、クロック遅延型ロックステップ方式の半導体装置の回路面積や消費電力の増大の抑制あるいは削減を可能としている。
【図面の簡単な説明】
【００２１】
【図１】プロトタイプを例示した図である。
【図２】実施形態１の構成を例示する図である。
【図３】実施形態１におけるnbit→mbit出力圧縮回路の構成を例示する図である。
【図４】実施形態２におけるnbit→mbit出力圧縮回路の構成を例示する図である。
【図５】実施形態３におけるnbit→mbit出力圧縮回路の構成を例示する図である。
【図６】実施形態４における出力比較回路の構成を例示する図である。
【図７】実施形態５における一致比較回路の構成を例示する図である。
【図８】実施形態６の構成を例示する図である。
【図９】実施形態７におけるnbit→mbit出力圧縮回路の構成を例示する図である。
【発明を実施するための形態】
【００２２】
一実施形態において、半導体装置は、図２を参照すると、第１及び第２のプロセッサ（１０、２０）と、前記第１のプロセッサに入力する信号を入力し前記信号を予め定められた所定サイクル遅延させて前記第２のプロセッサに入力する第１の遅延回路（３１、３２）を備えている。さらに、前記第１のプロセッサ（１０）から出力されるビット幅ｎの信号を入力し、前記ビット幅ｎの信号をビット幅ｍ（ただし、ｍ＜ｎ）の信号に圧縮する第１の圧縮回路（４５）を備えている。さらに、前記第２のプロセッサ（２０）から出力されるビット幅ｎの信号を入力し、前記ビット幅ｎの信号をビット幅ｍの信号に圧縮する第２の圧縮回路（４６）と、前記第１の圧縮回路（４５）から出力されるビット幅ｍの信号を入力し、前記ビット幅ｍの信号を、前記第１の遅延回路の遅延に等しい前記所定サイクル分遅延させて出力する第２の遅延回路（４１、４２）と、前記第２の遅延回路から出力されるビット幅ｍの信号と、前記第２の圧縮回路から出力されるビット幅ｍの信号を入力し、入力した信号の対応するビット同士が互いに一致するか否か比較する一致比較回路（４３）を備えている。前記第１及び第２の圧縮回路（４５、４６）の各々が、前記ビット幅ｎの信号を前記ビット幅ｍの信号に圧縮する回路としてハッシュ関数（圧縮関数）回路（４７）を備えている。
【００２３】
一実施形態において、前記第１及び第２の圧縮回路（４５、４６）の各々が、前記ビット幅ｎの信号を、複数のグループに区分し、前記複数のグループの信号のうち、少なくとも１つのグループの信号のビット幅を少なくとも１ビットの信号に圧縮して出力する少なくとも１つのハッシュ関数回路（図５の４７１〜４７ｓ又は図４の４７１〜４７ｍ）を備え、少なくとも１つのハッシュ関数回路の出力信号と、前記少なくとも１つのグループ以外の残りのグループがある場合、前記残りのグループの信号のビット数（図５のｄ）の和が前記ｍである。
【００２４】
前記第１及び第２の圧縮回路（４５、４６）の各々が、前記ビット幅ｎの信号を、ｍ個のグループに区分し、前記ｍ個のグループの信号のビット幅をそれぞれ１ビットの信号に圧縮して出力するｍ個のハッシュ関数（圧縮関数）回路（図４の４７１〜４７ｍ）を備えた構成としてもよい。
【００２５】
前記ｍ個のハッシュ関数（圧縮関数）回路（図４の４７１〜４７ｍ）が、圧縮率が互いに異なる少なくとも２つのハッシュ関数（圧縮関数）回路を含む。
【００２６】
前記第１及び第２の圧縮回路（４５、４６）の各々が、前記ビット幅ｎの信号を（ｓ＋１）個のグループに区分し、１つのグループの信号のビット幅ｄ（ｄ＋ｓ＝ｍ）は圧縮せずにそのまま出力し、他のｓ個のグループの信号のビット幅をそれぞれ１ビットに圧縮するｓ個のハッシュ関数（圧縮関数）回路（図５の４７１〜４７ｓ）を備える。
【００２７】
前記第２の圧縮回路（４６）のビット幅ｍの信号のうち、予め定められたｋビットの信号をサンプルする第１のサンプリング回路（リタイミング（re-timing）回路）（図６の４９）を備え、前記第２の遅延回路（４１、４２）から出力されるビット幅ｍの信号のうち、前記第１のサンプリング回路でサンプルするｋビットに対応したｋビットの信号をサンプルする第２のサンプリング回路（リタイミング（re-timing）回路）（図６の４８）を備え、前記第２の圧縮回路（４６）のビット幅ｍの信号のうち、前記第１のサンプリング回路（４９）でサンプルしたｋビットの信号と、残りの（ｍ−ｋ）ビット、及び、前記第２の遅延回路（４１、４２）から出力されるビット幅ｍの信号のうち、前記第２のサンプリング回路（４８）でサンプルしたｋビットの信号と、残りの（ｍ−ｋ）ビットが、前記一致比較回路（４３）に入力される構成としてもよい。
【００２８】
前記第１及び第２のサンプリング回路（リタイミング（re-timing）回路）（４８、４９）の各々が、前記ｋビットの信号をクロック信号のトリガーエッジに応答して入力をサンプルして出力する、ｋ個並列に接続されたフリップフロップを含む構成としてもよい。一致比較回路（４３）等によるクリティカルパスを解消したことで、時間余裕度（タイミングマージン）の確保等のために、クロック周波数を低下させることが回避され、高速動作（高いクロック周波数）に対応可能としている。
【００２９】
前記一致比較回路（４３）において、前記第２の遅延回路（４１、４２）から出力されるビット幅ｍの信号を、（ｓ＋１）個のグループに区分し、前記第２の圧縮回路（４６）から出力されるビット幅ｍの信号を（ｓ＋１）個のグループに区分する。前記第２の遅延回路と前記第２の圧縮回路からそれぞれ出力される第１のグループの信号同士を比較し１ビットの比較結果を出力する第１の一致比較回路（図７の５０１）、乃至、前記第２の遅延回路と前記第２の圧縮回路からそれぞれ出力される第（ｓ＋１）のグループの信号同士を比較し１ビットの比較結果を出力する第（ｓ＋１）の一致比較回路（図７の５０S＋１）を備え、前記第１乃至第（ｓ＋１）の一致比較回路（図７の５０１〜５０S＋１）の各１ビット出力を入力し、入力した（ｓ＋１）ビットの信号の論理演算結果を、前記第２の遅延回路と前記第２の圧縮回路から出力されるビット幅ｍの信号の比較結果として出力する論理回路（図７の５２）を備えた構成としてもよい。
【００３０】
前記第１乃至第（ｓ＋１）の一致比較回路（図７の５０１〜５０ｓ＋１）の出力のうち、予め定められた少なくとも１つの出力を入力し、前記入力をサンプルして前記論理回路（５２）に入力する、少なくとも１つの第３のサンプリング回路（リタイミング（re-timing）回路）（図７の５１１〜５１ｓ）を備えた構成としてもよい。前記第３のサンプリング回路（リタイミング（re-timing）回路）（図７の５１１〜５１ｓ）が、クロック信号のトリガーエッジに応答して入力をサンプルして出力するフリップフロップを含む構成としてもよい。
【００３１】
前記第１及び第２のプロセッサ（１０、２０）に対してクロック信号を共通に供給するか、一方のプロセッサへのクロック信号の供給を停止させる制御を行う回路(図８の６０)を備えた構成としてもよい。
【００３２】
前記第１の遅延回路が、予め定められた所定段数カスケード接続され、各段毎、入力のビット数に対応した個数並置され、クロック信号のトリガーエッジに応答して入力をサンプルして出力するフリップフロップ（図２の３１、３２）を含む。
【００３３】
前記第２の遅延回路が、予め定められた所定段数カスケード接続され、各段毎、ｍ個並置され、クロック信号のトリガーエッジに応答して入力をサンプルして出力するフリップフロップ（図２の４１、４２）を含む。
【００３４】
前記第１及び第２の圧縮回路（４５、４６）の各々が、前記ビット幅ｎの信号を、複数のグループに区分し、前記複数のグループの信号のうちの１つのグループの信号又は複数のグループの信号に対応したハッシュ関数回路として、前記グループの信号に関して複数ビットエラーの検出を可能とする符号をなし、前記入力した信号のビット幅（図９のｙ１、・・・ｙｄ）を圧縮したビット幅（図９のｚ１、・・・ｚｄ）の信号を出力する符号化回路（図９の４７Ａ１〜４７Ａｄ）を含む構成としてもよい。
【００３５】
第１のプロセッサ（１０）のビット幅ｎの出力信号をビット幅ｍに圧縮して遅延回路（４１、４２）に入力し、遅延回路（４１、４２）を構成するフリップフロップ１段当りの個数をｎからｍ（ｍ＜ｎ）に削減し、クロック遅延型ロックステップ方式の半導体装置の回路面積や消費電力の増大の抑制あるいは削減する。また、第２のプロセッサ（２０）のビット幅ｎの出力信号をビット幅ｍに圧縮し、遅延回路（４１、４２）のビット幅ｍの出力と一致比較することで、ｎビットの一致比較を行う場合と比べて、回路面積や消費電力を低減可能としている。以下では、上記した実施形態について図面を参照してさらに詳細に説明する。
【００３６】
＜実施形態１＞
図２は、実施形態１の構成を示す図である。なお、図２において、図１の要素と同一又は同等な要素には同一の参照符号が付与されている。以下では、図１との重複部分の説明は必要に応じて適宜省略する。図２を参照すると、この半導体装置は、デュアルコア・ロックステップのMasterコア、Checkerコアとして機能する第１、第２のプロセッサ１０、２０と、入力制御回路３０と、出力比較回路４０を備えている。入力制御回路３０は、第１のプロセッサ１０に入力する信号（CPU入力）を、遅延回路として機能する２段のフリップフロップ３１、３２で所定のクロックサイクル（例えば２クロックサイクル）遅延させて、第２のプロセッサ２０に入力する。
【００３７】
出力比較回路４０では、第１のプロセッサ１０のビット幅ｎの出力信号（Master出力）を、nbit→mbit出力圧縮回路４５にてビット幅ｍ（ｍ＜ｎ）に圧縮してから、遅延回路として機能する２段のフリップフロップ４１、４２に入力される。フリップフロップ（FF）４１、４２の各々は、例えばクロック信号の立ち上がりエッジ等で、データ端子に入力される信号をサンプルして出力するエッジトリガー型Ｄフリップフロップで構成され、ｍビットに対応して、フリップフロップがｍ個並列に配置される。なお、図２のFF×ｍは１ビットのFFがｍ個並列配置されていることを表している（以下の図面も同様である）。２段のフリップフロップ４１、４２は、フリップフロップ３１、３２と同一の遅延時間（所定のクロックサイクル：例えば２クロックサイクル）、nbit→mbit出力圧縮回路４５の出力を遅延させる。
【００３８】
また、出力比較回路４０では、第２のプロセッサ２０のビット幅ｎの出力信号（Checker出力）を、nbit→mbit出力圧縮回路４６にて、ビット幅ｍに圧縮する。ｍビットの一致比較回路４３では、ｍ個のフリップフロップ４２の出力信号（ｍビット）と、nbit→mbit出力圧縮回路４６の出力信号（ｍビット）とをビット毎に比較し、１ビットの比較結果を出力する。フリップフロップ４４は、一致比較回路４３の出力信号をクロック信号に同期してサンプルする。nbit→mbit出力圧縮回路４５、４６は同一圧縮論理、同一構成としてもよい。なお、図２において、第１、第２のプロセッサ１０、２０には、クロック信号clock、クロック信号の活性化を制御するクロックイネーブル信号clock_enable、リセット信号resetは、第１、第２のプロセッサ１０、２０に共通に入力される。
【００３９】
実施形態１によれば、nbit→mbit出力圧縮回路４５で第１のプロセッサ１０のビット幅ｎの出力信号（Master出力）をビット幅ｍに圧縮し、圧縮後のｍビット信号を２段のフリップフロップ４１、４２で遅延させる。そして、第２のプロセッサ２０のビット幅ｎの出力信号（Checker出力：Master出力よりも例えば２クロックサイクル遅れて出力される）をnbit→mbit出力圧縮回路４６でビット幅ｍに圧縮した信号と、ｍ個のフリップフロップ４２からのビット幅ｍの出力信号とを比較する。
【００４０】
実施形態１によれば、出力比較回路４０において、第１のプロセッサ１０の出力信号（Master出力）を遅延させる遅延回路として、２×ｍ個のフリップフロップと、一致比較回路として、ｍビットの一致比較回路で対応可能である。一方、図１の構成では、デュアルコア・ロックステップの第１、第２のプロセッサのｎビット出力信号に対して、第１のプロセッサのｎビット出力信号の遅延用の２ｎ個のフリップフロップと、第１、第２のプロセッサのｎビット出力信号の一致比較用のｎビットの一致比較回路が必要とされる。
【００４１】
したがって、実施形態１によれば、出力比較回路４０のフリップフロップ４１、４２の数を、図１の２×ｎ個から、２×ｍ個に削減している。また、本実施形態によれば、一致比較回路４３で比較する信号のビット数をｎビットから、ｍビットに削減している。このため、プロセッサの出力信号のビット幅の増大に対して、回路面積の増大の抑制、消費電流の増大を抑制することができる。
【００４２】
図３は、図２のnbit→mbit出力圧縮回路４５（４６）の構成を示す図である。nbit→mbit出力圧縮回路４５（４６）は、圧縮関数として、ハッシュ関数（ハッシュ関数回路）４７を用いている。ハッシュ関数４７は、データに対して当該データを代表する数値（ハッシュ値）を割当てる関数である。この場合、ハッシュ関数４７は、ｎビットの信号をｍビットの信号（ハッシュ値）に圧縮する。ハッシュ関数４７は、ビット幅ｎの入力（最大２ｎ通りの値をとる）を、ビット幅ｍのハッシュ値（最大２ｍ通りの値をとる）にマッピングする。ハッシュ関数は、異なる入力に対してハッシュ値が同一となる（衝突する）場合がある。８ビット（最大２５６通りの異なる値）の入力を４ビットの値（３２通りの異なるハッシュ値）にマッピングすると、例えば、異なる８つの入力に一つのハッシュ値が共通に割当てられる場合がある。ｎビットの信号が、例えば、異なる２ｍ通りの固定値しかとらない場合には、ｍビットへの圧縮にあたり、ハッシュ値の衝突を回避可能なハッシュ関数（完全ハッシュ関数）を構成することが可能である。
【００４３】
＜実施形態２＞
図４は、実施形態２におけるnbit→mbit出力圧縮回路４５（４６）の構成例を示す図である。実施形態２では、nbit→mbit出力圧縮回路４５（４６）は、ｎビットの信号をグループ化して、グループ毎に圧縮レベルを可変に設定できるようにしている。すなわち、ｎビットの信号は、ｐ１、ｐ２、・・・ｐｍビットのｍ個のグループ（第１乃至第ｍのグループ）にグループ化される。図４のｐ１、ｐ２、・・・ｐｍ、ｍ、ｎの間には、以下の(1)が成り立つ。
【００４４】
2014081853.tif 000003
【００４５】
ｐ１−入力XOR（排他的論理和）４７１乃至ｐｍ−入力XOR４７ｍは、それぞれ、ｐ１乃至ｐｍビットの信号を１ビットのハッシュ値（１又は０）にマッピングするハッシュ関数である。例えばｐ１ビットの第１のグループは、ｐ１−入力XOR４７１に入力される。ｐ１−入力XOR４７１は、ｐ１ビットの信号の排他的論理和演算結果（１ビット）を出力する。ｐ１−入力XOR４７１の出力は、ｐ１ビットのうち「１」の数が偶数個の場合、「０」、「１」の数が奇数個の場合、「１」となる（圧縮率ｐ１：１）。
【００４６】
ｐ２ビットの第２のグループは、ｐ２−入力XOR４７２に入力される。ｐ２−入力XOR４７２は、ｐ２ビットの信号の排他的論理和演算結果（１ビット）を出力する。ｐ２−入力XOR４７２の出力の出力は、ｐ２ビットのうち「１」の数が偶数個の場合、「０」、奇数個の場合、「１」となる（圧縮率ｐ２：１）。
【００４７】
ｐｍビットの第ｍのグループは、ｐｍ−入力XOR４７ｍに入力される。ｐｍ−入力XOR４７ｍは、ｐｍビットの排他的論理和演算結果（１ビット）を出力する。ｐｍ−入力XOR４７ｍの出力は、ｐｍビットのうち「１」の数が偶数個の場合、「０」、奇数個の場合、「１」となる（圧縮率ｐｍ：１）。これらｐ１−入力XOR４７１乃至ｐｍ−入力XOR４７ｍの各々より１ビット、計ｍビットの信号が並列に出力される。
【００４８】
上記ｐ１−入力XOR４７１乃至ｐｍ−入力XOR４７ｍの各々は、パリティチェック方式のパリティ発生回路に対応する。パリティ発生回路（偶数パリティ発生回路）は、入力信号における「１」の出現数（個数）が偶数個のときパリティビット＝「０」、入力信号における「１」の出現数（個数）が奇数個のときパリティビット＝「１」とする。
【００４９】
圧縮論理の一例として、例えば２０００ビットの出力信号が存在する場合（ｎ＝２０００）、２０００ビットを１００ビットずつ２０のグループにグループ化（図４ｍ＝２０、ｐ１〜ｐｍ＝１００）して、グループ毎に、１００ビットのＸＯＲ演算結果である１ビットを出力する構成の場合、ｍ＝２０となり、出力比較回路４０において、２段のフリップフロップ４１、４２は、２×２０００＝４０００個から、２×２０＝４０個に削減できる。
【００５０】
なお、実施形態２において、上記したグループ化にのみに制限されるものでない。また、図４では、複数ビットから１ビットを生成するハッシュ関数回路として、XOR論理（パリティ生成回路）を用いたが、ハッシュ関数回路は、XOR論理に限定されるものでないこと勿論である。
【００５１】
ビット幅の圧縮による、故障検出精度や信頼性等への影響を考慮して、第１、第２のプロセッサ１０、２０から出力される信号のうち、重要度等に応じて圧縮レベルを変えても良い。
【００５２】
＜実施形態３＞
図５は、実施形態３におけるnbit→mbit出力圧縮回路４５（４６）の構成例を示す図である。なお、実施形態３において、半導体装置の全体構成は、図２に示した構成とされる。以下では、nbit→mbit出力圧縮回路４５（４６）について説明する。
【００５３】
図５を参照すると、実施形態３では、nbit→mbit出力圧縮回路４５（４６）において、ｎビットの信号をグループ化して、グループ毎に圧縮レベルを可変に設定するが、例えばアドレス信号、データ信号、制御信号（例えばバスリクエスト、バスレスポンス）等といった重要な信号は圧縮しない（ｄ−ビット）。他の信号は、ｐ１、ｐ２、・・・ｐｓビットのｓ個のグループ（第１乃至第ｓのグループ）にグループ化され、ｐ１−入力XOR４７１〜ｐs−入力XOR４７Sより各１ビットが出力される。図５のｐ１、ｐ２、・・・ｐｓ、ｎ、ｍ、ｓ、ｄの間には、以下の式(2)、(3)が成り立つ。
【００５４】
2014081853.tif 000004
【００５５】
2014081853.tif 000005
【００５６】
なお、nbit→mbit出力圧縮回路４５（４６）を、図５の構成とした場合、一致比較器４３には、nbit→mbit出力圧縮回路４６からのｍ（＝ｄ＋ｓ）ビットと、nbit→mbit出力圧縮回路４５からのｍ（＝ｄ＋ｓ）ビットをフリップフロップ４１、４２で遅延させたｍ（＝ｄ＋ｓ）ビットが入力され、ビット毎の比較が行われる。その際、アドレス信号、データ信号、バスリクエスト、バスレスポンス等といった重要な信号（ｄビット）はビット幅の圧縮を受けず、第１、第２のプロセッサ１０、２０間でビット毎に一致が比較される。
【００５７】
実施形態３によれば、プロセッサから出力されるｎビットの出力信号のうち、信頼性確保や故障検出等の上で重要な信号についてビット幅を圧縮せずに、そのままビット毎の比較を行うことで、故障の検出精度の低下は回避される。しかも、全体のビット幅をｎからｍに減少させることで、前記実施形態１と同様に、遅延回路のフリップフロップの個数を２×ｎから２×ｍに削減可能とし、且つ、一致比較回路４３での比較ビット数をｍビットに減少させ、回路規模の増大の抑制、消費電力の増大の抑制に貢献する。
【００５８】
＜実施形態４＞
図６は、実施形態４の出力比較回路４０の構成を示す図である。実施形態４において、第１、第２のプロセッサ１０、２０、入力制御回路３０は、図２に示した構成とされる。図２の一致比較器４３において、例えば第２のプロセッサ２０から出力される信号がタイミング的にクリティカルになる場合がある。そこで、実施形態４では、一致比較回路４３によるクリティカルパスとなる信号（ｋビット）について、nbit→mbit出力圧縮回路４６からの出力を一旦フリップフロップ４９でサンプルしてから一致比較回路４３で比較を行うようにしている。
【００５９】
図６を参照すると、nbit→mbit出力圧縮回路４６から並列に出力されるｍビット信号のうち、ｋビット（１≦ｋ＜ｍ）は、ｋ個並列接続されたフリップフロップ（FF×k）４９で一旦サンプルしてから、一致比較回路４３に入力し、残りの（ｍ−ｋ）ビットは、直接、一致比較回路４３に入力している。nbit→mbit出力圧縮回路４５からのｍビットの信号を遅延させる２段のフリップフロップ４１、４２から並列に出力されるｍビット信号のうちｋビット（nbit→mbit出力圧縮回路４６からのｍビット出力のうちのｋビットに対応する）は、ｋ個並列接続されたフリップフロップ（FF×k）４８で一旦サンプルしてから、一致比較回路４３に入力し、残りの（ｍ−ｋ）ビットは、直接、一致比較回路４３に入力している。フリップフロップ４８、４９は、例えばクロック信号の立ち上がり又は立ち下がりエッジでデータ端子の信号をサンプルするエッジトリガー型Dフリップフロップで構成される。フリップフロップ４８、４９は、re-timing用のサンプリング回路である。
【００６０】
nbit→mbit出力圧縮回路４６の圧縮処理に要する遅延、一致比較回路４３での比較処理に要する遅延等と、クロックサイクル（クロック周波数）の関係から時間余裕度（Timing margin）が少ない、すなわち、信号遅延が厳しい出力信号（ｋビット）は、フリップフロップ４９でサンプルしてから一致比較回路４３に入力する。
【００６１】
第１のプロセッサ１０のｎビット出力（master出力）をｍビットに圧縮するnbit→mbit出力圧縮回路４５の出力を遅延させる２段のフリップフロップ４１、４２のｍビット信号のうち、nbit→mbit出力圧縮回路４６の出力信号のｋビット（フリップフロップ４９でサンプルされる）に対応するｋビットは、フリップフロップ４８を介して、一致比較回路４３に入力する。
【００６２】
クロックサイクル内の例えば後半等所定のタイミングでプロセッサから出力される信号について、nbit→mbit出力圧縮回路４６の圧縮処理で遅延された結果、nbit→mbit出力圧縮回路４６の出力信号（ｋビット）の比較を行う一致比較回路４３での比較処理が、例えば当該クロックサイクル内に完了しなくなる場合等において、ｋビットの信号は、フリップフロップ４８、４９によるサンプル出力（フリップフロップ４８、４９は、クロック信号のエッジでサンプルした値を、次のクロックのエッジまでの１クロックサイクルの間、保持する）を比較すればよいため、比較動作を安定させ、誤検出等を回避することができる。また、一致比較回路４３等によるクリティカルパスを解消したことで、時間余裕度（タイミングマージン）の確保等のために、クロック周波数を低下させることが回避され、高速動作（高いクロック周波数）に対応可能としている。
【００６３】
＜実施形態５＞
図７は、実施形態５の構成を示す図である。実施形態５において、半導体装置の全体構成は、図２に示した構成とされる。図７には、実施形態５における一致比較回路４３の構成が示されている。実施形態５では、プロセッサから出力される信号のうち、タイミング的にクリティカルな信号について、少ない信号数でグループ化して、先に一致比較してから、比較結果（１ビット）を、フリップフロップ５１１〜５１S（図７）でサンプルする。
【００６４】
図２の第１のプロセッサ１０のｎビット出力（master出力）をｍビットに圧縮するnbit→mbit出力圧縮回路４５の出力を遅延させる２段のフリップフロップ４１、４２のｍビット信号と、第２のプロセッサ２０のｎビット出力（checker出力）をｍビットに圧縮するnbit→mbit出力圧縮回路４６のｍビット信号とに関して、図７に示すように、（ｓ＋１）個のグループにグループ分けする。第１乃至第ｓのグループと、第（ｓ＋１）のグループは、それぞれ、ｍ1乃至ｍｓ、及び、ｍｄビットとされ、ｍ1乃至ｍｄ、ｄ、ｍの間には以下の式(4)が成り立つ。
【００６５】
2014081853.tif 000006
【００６６】
第１のグループのｍ１ビット同士は、ｍ１ビット幅の信号の比較を行うｍ１-bit一致比較回路５０１で対応するビット毎の比較を行う。
【００６７】
第ｓのグループのｍｓビット同士は、ｍｓビット幅の信号の比較を行うｍｓ-bit一致比較回路５０Ｓで対応するビット毎の比較を行う。
【００６８】
第（ｓ＋１）のグループのｍｄビット同士は、ｍｄビット幅の信号の比較を行うｍｄ-bit一致比較回路５０ｓ＋１で対応するビット毎の比較を行う。
【００６９】
ｍ１-bit一致比較回路５０１乃至ｍｓ-bit一致比較回路５０ｓの各１ビット出力信号は、フリップフロップ５１１乃至５１Ｓでサンプルされ、（ｓ＋１）入力AND回路５２の第１乃至第ｓの入力端子に入力される。フリップフロップ５１１乃至５１Ｓは、例えばエッジトリガー型Dフリップフロップで構成される。フリップフロップ５１１乃至５１Ｓは、re-timing用のサンプリング回路である。
【００７０】
ｍｄ-bit一致比較回路５０S+1の１ビット出力信号は（ｓ＋１）入力AND回路５２の第（ｓ＋１）の入力端子に入力される。（ｓ＋１）入力AND回路５２は、ｍ１-bit一致比較回路５０１乃至ｍｄ-bit一致比較回路５０ｓ＋１の各１ビット出力が全てHighのとき、Highを出力し、ｍ１-bit一致比較回路５０１乃至ｍｄ-bit一致比較回路５０ｓ＋１の出力のうち１つでもLowであれば、Lowを出力する。
【００７１】
実施形態５によれば、一致比較回路４３を、複数の一致比較回路５０１〜５０ｄで構成しており、複数の一致比較回路５０１〜５０ｄの回路規模、遅延は、ｍビットの信号同士を比較する一致比較回路４３と比べて、特段に小さくなる。
【００７２】
また、実施形態５によれば、タイミング的にクリティカルな信号をフリップフロップ５１１〜５１ｓでサンプルして、（ｓ＋１）入力AND回路５２に入力しているため、クロック周波数の低下等は回避され、高速動作（高いクロック周波数）に対応可能としている。さらに、実施形態５によれば、前記各実施形態１乃至４と同様、プロセッサの出力信号のビット幅ｎをビット幅ｍに圧縮してからフリップフロップ４１、４２に入れて遅延させる構成としたことで、フリップフロップ４１、４２の個数を削減した分だけ、面積および消費電流を低減することができる。
【００７３】
＜実施形態６＞
図８は、実施形態６の構成を示す図である。図８と図２との相違点は、clock/reset生成部６０を備え、第１のプロセッサ（masterコア）１０と、第２のプロセッサ（Checkerコア）２０間で、クロック信号、クロックイネーブル信号、リセット信号を共通とせず、分離しておく。clock/reset生成部６０は、第１のプロセッサ（masterコア）１０に対してクロック信号clock_m、クロックイネーブル信号clock_enable_m、リセット信号reset_mを供給し、第２のプロセッサ（Checkerコア）２０に対してクロック信号clock_c、クロックイネーブル信号clock_enable_c、リセット信号reset_cを供給する。
【００７４】
clock/reset生成部６０は、例えばロックステップモードで動作時に、クロック信号clock_m、clock_cとして共通のクロック信号を供給し、クロックイネーブル信号clock_enable_m、clock_enable_c、リセット信号reset_m、reset_cも共通のクロックイネーブル信号、共通のリセット信号を供給する。
【００７５】
ロックステップモードで動作しない場合等、第２のプロセッサ２０が不要な場合、clock/reset生成部６０は、第２のプロセッサ２０へのクロック信号clock_cの供給を停止してその動作を停止させ、第１のプロセッサ０にのみクロック信号clock_mを供給して動作させる。ロックステップモードで動作しない場合、入力制御回路３０はCPU入力をスルーさせて第１のプロセッサ（masterコア）１０に供給し、フリップフロップ３１、３２は動作しない。また出力制御回路４０も動作しない。このため、消費電流を低減できる。
【００７６】
実施形態６において、ロックステップモードで動作時には、前記各実施形態と同様、プロセッサの出力信号のビット幅ｎをビット幅ｍに圧縮してからフリップフロップ４１、４２に入れて遅延させる構成としたことで、フリップフロップ４１、４２の個数を削減した分だけ、面積および消費電流を低減することができる。なお、実施形態６を、前記実施形態２乃至５と組み合わせた構成としてもよい。
【００７７】
＜実施形態７＞
図９は、実施形態７におけるnbit→mbit出力圧縮回路４５（４６）の構成を示す図である。実施形態７の全体構成は、図２に示す構成とされ、nbit→mbit出力圧縮回路４５（４６）の構成が実施形態２等と相違している。図４に示す実施形態２では、nbit→mbit出力圧縮回路４５（４６）は、ｎビットの信号を複数グループにグループ化し、各グループのハッシュ関数回路はパリティチェック方式のパリティ発生回路（ｐ１−入力XOR４７１乃至ｐｍ−入力XOR４７ｍ）で構成されているのに対して、実施形態７では、図９に示すように、nbit→mbit出力圧縮回路４５（４６）は、予め定められたビット幅ｙ１〜ｙｄの信号をそれぞれ入力し、ビット幅ｚ１〜ｚｄの２ビットエラー検出可能な符号（double error detection code）を出力する符号化（double error detection coding）回路４７A１〜４７Aｄ（ハッシュ関数回路）を備えている。
【００７８】
２ビットエラー検出可能な符号を出力する符号化回路４７A１〜４７Aｄの各々は、例えばECC（Error Correction Coding又はError Checking and Correcting）生成回路で構成される。
【００７９】
ECCは、よく知られているように、所定ビット幅（例えば64ビット）のデータに対して複数ビット（例えば８ビット）の冗長コード（ECCコード）を生成して該データに付加してメモリ等に記憶しておき、該メモリからの当該データ読み出し時に、当該データからECCコードを生成し元のECCコードと比較し、ECCコードが異なるとき、読み込んだデータにビットエラーが発生したものとして１ビットエラー（single bit error）の訂正を行う。ECCでは、１ビットエラーに対する１ビットエラー訂正のほか、２ビットエラー検出等複数ビットエラー（multi-bit error）検出も行う（ただし、複数ビットエラーは検出のみ可能）。ECCでは、例えばハミング符号（Hamming Code）が用いられる。図９において、各グループの符号化回路４７A１〜４７Aｄ（ECC生成回路）は、各グループの入力信号のビット幅ｙ１〜ｙｄを圧縮したビット幅ｚ１〜ｚｄの信号として、冗長コード（ECCコード）を出力するようにしてもよい。なお、ECCでは、上記したように、１ビットエラー訂正と複数ビットエラー検出が行われる（複数ビットエラーは検出のみ可能）が、実施形態７では、エラー訂正（１ビットエラー訂正）は不要である（１ビットエラー訂正回路の実装等は不要である）。
【００８０】
図９の示す例では、さらに、別のｓ個のグループに対応して、ビット幅ｐ１〜ｐｓの信号をそれぞれ入力し１ビットに圧縮するｐ１−入力XOR４７１〜ｐｓ−入力XOR４７ｓを備えている。なお、図９のｙ１〜ｙｄ、ｐ１〜ｐｓと、ｚ１〜ｚｄ（ｚ１＜ｙ１、・・・、ｚｄ＜ｙｄ）は、圧縮前のビット幅ｎと、圧縮後のビット幅ｍに関して、以下の式(5)、(6)が成り立つ。
【００８１】
2014081853.tif 000007
【００８２】
2014081853.tif 000008
【００８３】
実施形態７では、ビット幅ｎを複数のグループにグループ化し、各グループのビット幅を圧縮するにあたり、１ビットエラーの検出が可能なXORによる圧縮に加えて、２ビットエラー検出符号（double error detection code）を出力する符号化回路４７A１〜４７Aｄでビット幅を圧縮し、全体でビット幅をｎからｍ（ｍ＜ｎ）に圧縮している。なお、実施形態７において、符号化回路４７A１〜４７Aｄは１つ（ｄ＝１）であってもよい。あるいは、各グループに対して符号化回路を備えた構成としてもよい（この場合、図９のｐ１−入力XOR４７１〜ｐｓ−入力XOR４７ｓは削除される）。
【００８４】
以上、本発明者によってなされた発明を実施形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００８５】
１０  第１のプロセッサ（Masterコア）
２０  第２のプロセッサ（Checkerコア）
３０  入力制御回路
３１、３２  フリップフロップ
４０、４０’  出力比較回路
４１、４２、４４、４８、４９  フリップフロップ
４３  一致比較回路
４５、４６  nbit→mbit出力圧縮回路
４７  ハッシュ関数
４７１  ｐ１−入力XOR（ハッシュ関数回路）
４７２  ｐ２−入力XOR（ハッシュ関数回路）
４７ｍ  ｐｍ−入力XOR（ハッシュ関数回路）
４７S  ｐｓ−入力XOR（ハッシュ関数回路）
４７A１  符号化回路（2ビットエラー検出符号化回路：ハッシュ関数回路）
４７Aｄ  符号化回路（2ビットエラー検出符号化回路：ハッシュ関数回路）
５０１  m1-bit一致比較回路  
５０ｓ  ms-bit一致比較回路  
５０ｄ  md-bit一致比較回路  
５１１〜５１Ｓ  フリップフロップ
５２  （ｓ＋１）入力AND回路
６０  clock/reset生成部
【図１】
2014081853.tif 000009
【図２】
2014081853.tif 000010
【図３】
2014081853.tif 000011
【図４】
2014081853.tif 000012
【図５】
2014081853.tif 000013
【図６】
2014081853.tif 000014
【図７】
2014081853.tif 000015
【図８】
2014081853.tif 000016
【図９】
2014081853.tif 000017