(57)【要約】【課題】少ないポート追加にて外部デバイスによって信頼性の高い誤り検出を行うことができるようにする。【解決手段】本発明の半導体集積回路は、チップ内に２重化した論理回路を有し、一方の論理回路の出力データまたは当該出力データに基づくデータをチップ外へ出力するとともに、他方の論理回路の出力データまたは当該出力データに基づくデータから誤り検出符号を生成する制御回路部と、制御回路部のチップ外に設けられ、制御回路部からチップ外へ出力されたデータから誤り検出符号を生成し、この生成した誤り検出符号と制御回路部で生成された誤り検出符号とを比較して誤りを検出する故障検出部と、を備える。【選択図】  図１
2016085162.tif 000002
【特許請求の範囲】
【請求項１】
チップ内に２重化した論理回路を有し、一方の論理回路の出力データまたは当該出力データに基づくデータをチップ外へ出力するとともに、他方の論理回路の出力データまたは当該出力データに基づくデータから誤り検出符号を生成する制御回路部と、
前記制御回路部のチップ外に設けられ、前記制御回路部からチップ外へ出力されたデータから誤り検出符号を生成し、この生成した誤り検出符号と前記制御回路部で生成された誤り検出符号とを比較して誤りを検出する故障検出部と、
を備えることを特徴とする半導体集積回路。
【請求項２】
前記制御回路部は、自身が生成した誤り検出符号と前記故障検出部で生成された誤り検出符号とを比較して誤りを検出する機能を有する
ことを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記制御回路部は、
前記誤り検出符号を生成する符号化回路と、
前記符号化回路が生成した前記誤り検出符号を保持する符号レジスタと、
前記符号化回路の初期化のタイミング情報と前記符号レジスタへの前記誤り検出符号の書き込みのタイミング情報とを保持するタイミング情報レジスタと、有し、
前記タイミング情報レジスタが保持するタイミング情報を前記２重化した論理回路から設定可能である
ことを特徴とする請求項１または２に記載の半導体集積回路。
【請求項４】
チップ内に２重化した論理回路を有する制御回路部において一方の論理回路の出力データまたは当該出力データに基づくデータをチップ外へ出力するステップと、
前記制御回路部において他方の論理回路の出力データまたは当該出力データに基づくデータから誤り検出符号を生成するステップと、
前記制御回路部のチップ外に設けられた故障検出部において前記制御回路部からチップ外へ出力されたデータから誤り検出符号を生成するステップと、
前記故障検出部で生成した誤り検出符号と前記制御回路部で生成した誤り検出符号とを比較して誤りを検出するステップと、の各処理を実行する
ことを特徴とする半導体集積回路の故障検出方法。
【請求項５】
制御対象の機器を制御する半導体集積回路を有し、
前記半導体集積回路は、
チップ内に２重化した論理回路を有し、一方の論理回路の出力データまたは当該出力データに基づくデータをチップ外へ出力するとともに、他方の論理回路の出力データまたは当該出力データに基づくデータから誤り検出符号を生成する制御回路部と、
前記制御回路部のチップ外に設けられ、前記制御回路部からチップ外へ出力されたデータから誤り検出符号を生成し、この生成した誤り検出符号と前記制御回路部で生成された誤り検出符号とを比較して誤りを検出する故障検出部と、を備える
ことを特徴とする電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、半導体集積回路の故障検出方法および電子装置に関する。
【背景技術】
【０００２】
家電製品、ＡＶ(Audio Visual)機器、携帯電話機、自動車、産業機械等の機器には、ＬＳＩ(Large Scale Integration)が数多く使用されている。ＬＳＩは、ウェハーと呼ばれる薄い半導体基板の上に電子回路が作り込まれた半導体集積回路である。ＬＳＩは、機器の高性能化・高機能化・小型化・低消費電力化・低コスト化に欠かせない重要な部品である。ＬＳＩを用いる電子装置（電子機器）では、信頼性を確保するために制御の誤りを検出することが重要である。この制御の誤りの要因としては、例えばＬＳＩの故障を挙げることができる。したがって、ＬＳＩの故障を検出することで、制御の誤りを検出することができる。
【０００３】
ＬＳＩの故障検出には様々な方法がある。その一つとして、論理回路を２重化して同一の処理を行わせ、出力を常時比較する方法（デュアルロックステップ方式）がしばしば用いられている。ＬＳＩは、外部デバイスとの間でデータを入出力するためのポートを持つが、内部で論理回路を２重化した場合でもポートまで２重化するのはコストの面から困難である。そのため、２重化した論理回路の一方のみを出力ポートに接続し、一方の論理回路の出力と他方の論理回路の出力とを同一チップ内の比較回路で常時比較して誤りを検出することが考えられる。
【０００４】
一方、データ通信の誤り検出方式としてＣＲＣ(Cyclic Redundancy Check：巡回冗長検査)がある。ＣＲＣ方式は、任意長のデータストリームを入力とし、あらかじめ定められた生成多項式に従って固定長のチェックコードを生成する。そして、送信側がデータストリームにＣＲＣを付加して送信を行い、受信側が受信したデータストリームからＣＲＣを生成し、この生成したＣＲＣと受信したＣＲＣとを比較する。そして、その比較結果が一致であればデータ通信は正しいと判断し、不一致であればデータ通信は誤りと判断する。
【０００５】
この種の従来技術として、特許文献１に記載の技術が知られている。特許文献１には、「サブシステムのそれぞれに誤り検出回路を設け、これらの誤り検出回路で受信したデータからチェックコードを計算し、このチェックコードと受信したチェックコードが一致しないときにエラー処理を行うようにした。」と記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１４６３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
チップ内で２重化された論理回路の出力を同一チップ内で比較して誤りを検出する方法は、論理回路と誤り検出回路とが同時に故障しない場合において有効である。論理回路と誤り検出回路とが同時に故障してしまうと、２つの論理回路の出力の不一致を誤り検出回路が一致と判断し、誤りを検出できないからである。論理回路と誤り検出回路とが同一チップ内にある場合、電源やクロックなど共通のリソースが原因となって論理回路と誤り検出回路とが同時に故障する可能性がある。このように、チップ内部での誤り検出では信頼性に限界がある。
【０００８】
特許文献１に記載の従来技術は、データとチェックコードを生成する第１のシステムとこれらをチェックする第２のシステムとが独立しており、第１のシステムと第２のシステムとが同時に故障する確率は低いが、適用対象が通信のデータストリームである。適用対象が通信のデータストリームの場合には、誤り検出の符号をデータストリームに付加して伝送することが可能である。
【０００９】
しかし、適用対象がバスサイクルごとにアクセスが完結するバス出力や、長い時間周期で変化する汎用出力の場合には、これらの出力に対して誤り検出の符号を付加して送信することはできない。したがって、特許文献１に記載の従来技術は、データストリームについては誤りを検出できるものの、バスサイクルごとにアクセスが完結するバス出力や、長い時間周期で変化する汎用出力の誤りについてはチェックすることはできない。
【００１０】
上述したことから明らかなように、チップ内部での誤り検出は信頼性に限界があるために、外部デバイス（ＬＳＩの外部回路）による誤り検出が有効である。しかし、ＬＳＩの制御出力を２重化すると、追加するポート数が多くなってしまう。ＬＳＩのポート数には制限があるため、追加できるポートの数に限りがある。
【００１１】
そこで、本発明は、少ないポート追加にて外部デバイスによって信頼性の高い誤り検出を行うことができる半導体集積回路およびその故障検出方法、ならびに、当該半導体集積回路を有する電子装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
本願は、上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、
チップ内に２重化した論理回路を有し、一方の論理回路の出力データまたは当該出力データに基づくデータをチップ外へ出力するとともに、他方の論理回路の出力データまたは当該出力データに基づくデータから誤り検出符号を生成する制御回路部と、
前記制御回路部のチップ外に設けられ、前記制御回路部からチップ外へ出力されたデータから誤り検出符号を生成し、この生成した誤り検出符号と前記制御回路部で生成された誤り検出符号とを比較して誤りを検出する故障検出部と、
を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、少ないポート追加にて外部デバイスによって信頼性の高い誤り検出を行うことができる。
上記した以外の課題、構成および効果は、以下の実施形態の説明によって明らかにされる。
【図面の簡単な説明】
【００１４】
【図１】実施例１に係る半導体集積回路の構成を示すブロック図の例である。
【図２】実施例１に係る半導体集積回路におけるチェックコードの生成およびチェックコード・レジスタの書き込みに関するタイミング関係を示すタイミングチャートの例である。
【図３】実施例１に係る半導体集積回路における制御ＬＳＩから故障検出ＬＳＩへのチェックコードのシリアル通信のタイミング関係を示すタイミングチャートの例である。
【図４】実施例１に係る半導体集積回路における故障検出方法の処理手順の一例を示すフローチャートの例である。
【図５】実施例２に係る半導体集積回路の構成を示すブロック図の例である。
【図６】実施例２に係る半導体集積回路における故障検出ＬＳＩから制御ＬＳＩへのチェックコードのシリアル通信のタイミング関係を示すタイミングチャートの例である。
【図７】実施例２に係る半導体集積回路における故障検出方法の処理手順の一例を示すフローチャートの例である。
【図８】実施例３に係る半導体集積回路の構成を示すブロック図の例である。
【図９】実施例４に係る半導体集積回路の構成を示すブロック図の例である。
【図１０】実施例５に係る半導体集積回路の構成を示すブロック図の例である。
【図１１】実施例６に係る半導体集積回路の構成を示すブロック図の例である。
【図１２】実施例７に係る半導体集積回路の構成を示すブロック図の例である。
【図１３】実施例８に係る半導体集積回路の構成を示すブロック図の例である。
【図１４】本発明の電子装置の一例の構成の概略を示すブロック図の例である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態（以下、「実施形態」と記述する）について詳細に説明する。本発明は実施形態に限定されるものではない。本明細書および図面において、同一の構成要素又は実質的に同一の機能を有する構成要素には同一の符号を付することとし、重複する説明は省略する。
【００１６】
＜本発明の一実施形態に係る半導体集積回路＞
本発明の一実施形態に係る半導体集積回路は、制御回路部、メモリ部および故障検出部を備える構成となっている。制御回路部と故障検出部とは同期して動作する。制御回路部は、チップ内に２重化した論理回路を有し、一方の論理回路の出力データまたは当該出力データに基づくデータをチップ外へ出力する。ここで、「チップ」とは、集積回路がパッケージ化されたＩＣチップをいう。制御回路部からチップ外へ出力されるデータは、一方の論理回路の出力データそのものがチップ外へ出力されるデータの場合もあれば、一方の論理回路の出力データが他の回路を経た後チップ外へ出力されるデータの場合もある。
【００１７】
一方の論理回路の出力データそのものがチップ外へ出力されるときのデータは、本半導体集積回路の制御対象となる機器（装置）に供給され、当該機器の制御に用いられる。一方の論理回路の出力データが他の回路を経た後チップ外へ出力されるときのデータは、他の回路が例えばバス制御回路である場合には、バスを介してメモリ部に供給され、当該メモリ部に記憶される。メモリ部に記憶されたデータは、必要に応じて、バス制御回路を介して一方の論理回路に読み出される。
【００１８】
制御回路部はさらに、他方の論理回路の出力データまたは当該出力データに基づくデータから、誤り検出符号（以下、「チェックコード」と記述する）を生成する。このチェックコード（誤り検出符号）としては、一例として、符号が短く、誤り検出率が高いＣＲＣを用いることができる。チェックコードの生成対象となるデータ（他方の論理回路の出力データまたは当該出力データに基づくデータ）は、他方の論理回路の出力データそのものである場合もあれば、他の回路（例えば、バス制御回路）を経たデータの場合もある。制御回路部は、生成したチェックコードをチップ外へ出力する、具体的には故障検出部に送信する。
【００１９】
故障検出部は、制御回路部のチップ外に設けられている。故障検出部は、制御回路部からチップ外へ出力される一方の論理回路の出力データまたは当該出力データに基づくデータを取り込み、この取り込んだデータからチェックコードを生成する。また、制御回路部から出力されるチェックコードを取り込む。具体的には、制御回路部が送信するチェックコードを受信する。そして、故障検出部は、自身が生成したチェックコードと、制御回路部で生成されたチェックコードとを比較することによって誤り検出を行う。この故障検出部による誤り検出により、制御回路部の故障を検出することができる。そして、誤りを検出した場合には、一例として、制御回路部に対してリセットをかける処理を行う。
【００２０】
上述したように、本実施形態に係る半導体集積回路は、チップ内に２重化した論理回路を有する制御回路部のチップ外に、外部デバイス（外部回路）として故障検出部を設ける構成を採っている。そして、外部デバイスである故障検出部において、一方の論理回路の出力データまたは当該出力データに基づくデータからチェックコードを生成し、この生成したチェックコードと制御回路部で生成したチェックコードとを比較することによって誤り検出を行う。
【００２１】
すなわち、本実施形態に係る半導体集積回路においては、制御回路部のチップ外に外部デバイスとして故障検出部を設け、外部デバイス（即ち、故障検出部）によって誤り検出を行う方式を採っている。そして、制御回路部と故障検出部とでチェックコードを２重に生成し、制御回路部が生成したチェックコードを故障検出部に転送（送信）し、故障検出部で両者のチェックコードを比較することによって誤り検出を行うようになっている。
【００２２】
このようにすることで、制御回路部には、故障検出部にチェックコードを出力するポート（端子）、故障検出部に同期をとるための信号を出力するポートおよび故障検出部から比較結果を取り込むポートの３つのポートを追加すればよいことになる。すなわち、少ないポート追加にて外部デバイスによって高い検出率にて誤り検出（故障検出）を行うことができることになる。
【００２３】
しかも、本実施形態に係る半導体集積回路では、制御回路部からバスに出力されるデータにチェックコードを付加する必要がない。そのため、誤り検出の符号を付加することができない、バスサイクルごとにアクセスが完結するバス出力や、長い時間周期で変化する汎用出力に対しても誤り検出を行うことができる。このように、本実施形態に係る半導体集積回路によれば、少ないポート追加にて外部デバイスである故障検出部によって信頼性の高い誤り検出を実現できる。
【００２４】
制御回路部および故障検出部はＬＳＩからなる。以下では、制御回路部を制御ＬＳＩと記述し、故障検出部を故障検出ＬＳＩと記述することとする。以下、図面を用いて、本実施形態に係る半導体集積回路の具体的な実施例について説明する。
【００２５】
［実施例１］
図１は、実施例１に係る半導体集積回路の構成を示すブロック図の例である。実施例１に係る半導体集積回路１Ａは、制御回路部である制御ＬＳＩ２と、メモリ部３と、故障検出部である故障検出ＬＳＩ４と、を備える構成となっている。
【００２６】
（制御ＬＳＩ）
制御ＬＳＩ２は、チップ内に２重化した第１論理回路５_1および第２論理回路５_2と、２重化した第１バス制御回路６_1および第２バス制御回路６_2と、故障検出回路７と、を有する。
【００２７】
制御ＬＳＩ２において、第１論理回路５_1および第２論理回路５_2は同一機能を有し、クロックを同期させながら同一の処理を実行する。第１論理回路５_1および第２論理回路５_2としては、例えば、ＣＰＵ(Central Processing Unit)とキャッシュメモリとを用いる構成が考えられる。制御ＬＳＩ２の入力信号ＩＮは、入力ポートＰ１０を介して第１論理回路５_1および第２論理回路５_2に入力される。
【００２８】
第１バス制御回路６_1および第２バス制御回路６_2は、第１論理回路５_1および第２論理回路５_2の各後段に設けられている。第１バス制御回路６_1および第２バス制御回路６_2は同一機能を有し、クロックを同期させながら同一の処理を実行する。第１論理回路５_1がメモリ部３をアクセスする場合には、第１論理回路５_1は第１バス制御回路６_1に対してメモリアクセス信号Ｓ１を出力する。このメモリアクセス信号Ｓ１を受けて、第１バス制御回路６_1は、出力ポートＰ１１からバス１１に制御信号およびアドレス信号を出力することによってメモリ部３をアクセスする。
【００２９】
メモリアクセスがライト（書き込み）の場合には、第１バス制御回路６_1は、出力ポートＰ１１を介してバス１１にライトデータを出力し、当該ライトデータをメモリ部３に書き込む。メモリアクセスがリード（読み出し）の場合には、メモリ部３からバス１２にリードデータが読み出される。そして、第１バス制御回路６_1は、バス１２から入力ポートＰ１２を介してリードデータを取り込み、第１論理回路５_1に読み込ませる。
【００３０】
第２論理回路５_2は、第１論理回路５_1と同じ動作を行う。すなわち、第２論理回路５_2は、メモリ部３をアクセスする場合には、第２バス制御回路６_2に対してメモリアクセス信号Ｓ２を出力する。このメモリアクセス信号Ｓ２を受けて、第２バス制御回路６_2は、バスコピー信号Ｓ３として制御信号およびアドレス信号を出力し、故障検出回路７に読み込ませる。メモリアクセスがライトの場合には、第２バス制御回路６_2は、バスコピー信号Ｓ３としてライトデータを出力し、故障検出回路７に読み込ませる。メモリアクセスがリードの場合には、第２バス制御回路６_2は、バス１２から入力ポートＰ１２を介してリードデータを取り込み、第２論理回路５_2に読み込ませる。
【００３１】
故障検出回路７は、符号化回路７１と、マスター・チェックコード・キャプチャ・レジスタ（以下、「ＭＣＣＲ」と記述する）７２と、送信回路７３と、制御回路７４と、を有する。符号化回路７１は、マスター・チェックコード・レジスタ（以下、「ＭＣＲ」と記述する）７１１を有し、バスコピー信号Ｓ３を符号化してバス１１のクロックサイクルごとにＭＣＲ７１１を更新する。
【００３２】
符号化回路７１は、あらかじめ定められた生成多項式にしたがって固定長のチェックコードＣ１１を生成する。符号化回路７１の符号化には、先述したＣＲＣなどのデータ通信の誤り検出方式を適用することができる。符号化回路７１は、バスコピー信号Ｓ３とＭＣＲ７１１のチェックコードＣ１１とを入力としてこれらの演算を行い、その演算結果をＭＣＲ７１１に書き戻すことによってＭＣＲ７１１のチェックコードＣ１１を更新する。このようにすることで、バスコピー信号Ｓ３のクロックサイクルごとの値がＭＣＲ７１１に反映される。
【００３３】
制御回路７４は、ＭＣＲ７１１に対してＭＣＲ更新信号Ｓ１１を出力し、ＭＣＣＲ７２に対してＭＣＣＲライト信号Ｓ１２を出力し、送信回路７３に対して送信要求信号Ｓ１３を出力する。ＭＣＲ７１１は、ＭＣＲ更新信号Ｓ１１の論理値‘０’でオール‘０’に初期化され、ＭＣＲ更新信号Ｓ１１の論理値‘１’でチェックコードＣ１１を書き込む。ＭＣＣＲ７２は、制御回路７４から出力されるＭＣＣＲライト信号Ｓ１２を受けて、ＭＣＲ７１１からチェックコードＣ１１を取り込み、チェックコードＣ１２として保持する。すなわち、ＭＣＣＲ７２は、符号化回路７１が生成したチェックコード（誤り検出符号）を保持する符号レジスタである。
【００３４】
送信回路７３は、制御回路７４から出力される送信要求信号Ｓ１３を受けて、ＭＣＣＲ７２に保持されているチェックコードＣ１２を、シリアルポートＰ１３を介してシリアルインタフェース１３に出力する。より具体的には、送信回路７３は、ＭＣＣＲ７２に保持されているチェックコードＣ１２を、当該チェックコードＣ１２のビット数よりも少ないビット数で複数のクロックサイクルをかけてシリアルポートＰ１３からシリアルインタフェース１３に出力する。
【００３５】
（故障検出ＬＳＩ）
故障検出ＬＳＩ４は、制御ＬＳＩ２から出力ポートＰ１４を介して出力され、入力ポートＰ２１から入力されるクロックｃｌｋに同期して動作し、バス１１をチェックする。故障検出ＬＳＩ４は、符号化回路４１と、チェッカー・チェックコード・キャプチャ・レジスタ（以下、「ＣＣＣＲ」と記述する）４２と、受信回路４３と、を有する。故障検出ＬＳＩ４はさらに、チェッカー受信レジスタ（以下、「ＣＲＲ」と記述する）４４と、比較回路４５と、制御回路４６と、を有する。
【００３６】
符号化回路４１は、チェッカー・チェックコード・レジスタ（以下、「ＣＣＲ」と記述する）４１１を有し、入力ポートＰ２２を介して入力されるバス１１のデータを符号化してＣＣＲ４１１をバス１１のクロックサイクルごとに更新する。符号化回路４１の符号化には、制御ＬＳＩ２の符号化回路７１と同じ方式、例えばＣＲＣを適用する。すなわち、符号化回路４１は、制御ＬＳＩ２の符号化回路７１と同じ生成多項式にしたがってチェックコードを生成する。
【００３７】
制御回路４６は、ＣＣＲ４１１に対してＣＣＲ更新信号Ｓ２１を出力し、ＣＣＣＲ４２に対してＣＣＣＲライト信号Ｓ２２を出力し、比較回路４５に対して比較許可信号Ｓ２３を出力する。ＣＣＲ４１１は、ＣＣＲ更新信号Ｓ２１の論理値‘０’でオール‘０’に初期化され、ＣＣＲ更新信号Ｓ２１の論理値‘１’でチェックコードＣ２１を書き込む。ＣＣＣＲ４２は、制御回路４６から出力されるＣＣＣＲライト信号Ｓ２２を受けて、ＣＣＲ４１１のチェックコードＣ２１を取り込み、チェックコードＣ２２として保持する。
【００３８】
制御ＬＳＩ２におけるＭＣＲ７１１の更新と、故障検出ＬＳＩ４におけるＣＣＲ４１１の更新とは同期して実行される。具体的には、制御信号ＣＳによって制御ＬＳＩ２側の制御回路７４と故障検出ＬＳＩ４側の制御回路４６との同期がとられる。制御信号ＣＳは、制御ＬＳＩ２から出力ポートＰ１５を介してチップ外へ出力され、入力ポートＰ２３を介して故障検出ＬＳＩ４に入力される。この制御信号ＣＳによる制御の下に、制御回路７４と制御回路４６との同期がとられることで、制御ＬＳＩ２におけるＭＣＲ更新信号Ｓ１１と故障検出ＬＳＩ４におけるＣＣＲ更新信号Ｓ２１とが同期して出力される。
【００３９】
同様に、制御ＬＳＩ２におけるＭＣＣＲ７２へのチェックコードＣ１１の書き込みと、故障検出ＬＳＩ４におけるＣＣＣＲ４２へのチェックコードＣ２１の書き込みとは同期して実行される。具体的には、制御信号ＣＳによる制御の下に、制御回路７４と制御回路４６との同期がとられることで、制御ＬＳＩ２におけるＭＣＣＲライト信号Ｓ１２と故障検出ＬＳＩ４におけるＣＣＣＲライト信号Ｓ２２とが同期して出力される。
【００４０】
故障検出ＬＳＩ４において、受信回路４３は、制御ＬＳＩ２の送信回路７３によって送信されたチェックコードＣ１２を、シリアルインタフェース１３からシリアルポートＰ２４を介して受信する。受信回路４３は、受信したチェックコードＣ１２をチェックコードＣ２３としてＣＲＲ４４に供給する。ＣＲＲ４４は、受信回路４３から供給されるチェックコードＣ２３をチェックコードＣ２４として保持する。比較回路４５は、ＣＣＣＲ４２に保持されているチェックコードＣ２２とＣＲＲ４４に保持されているチェックコードＣ２４とを比較し、その比較結果に応じたエラー信号Ｓｅを出力する。
【００４１】
具体的には、比較回路４５は、制御回路４６から出力される比較許可信号Ｓ２３が論理値‘１’のとき、チェックコードＣ２２とチェックコードＣ２４とを比較する。そして、比較回路４５は、比較結果が不一致の場合にエラー信号Ｓｅの論理値を‘１’とし、一致の場合にエラー信号Ｓｅの論理値を‘０’とする。エラー信号Ｓｅは、故障検出ＬＳＩ４から出力ポートＰ２５を介してチップ外へ出力され、その後入力ポートＰ１６を介して制御ＬＳＩ２に入力される。このエラー信号Ｓｅを受けて、故障検出回路７の制御回路７４は、エラー信号Ｓｅの論理値が‘１’のとき、制御ＬＳＩ２および故障検出ＬＳＩ４のリセットを行う。
【００４２】
図２は、実施例１に係る半導体集積回路１Ａにおけるチェックコードの生成およびチェックコード・レジスタの書き込みに関するタイミング関係を示すタイミングチャートの例である。図２Ａに制御ＬＳＩ２側のタイミング関係を示し、図２Ｂに故障検出ＬＳＩ４側のタイミング関係を示している。
【００４３】
図２Ａのタイミングチャートは、クロックｃｌｋ、バス１１の値（データ）、バスコピー信号Ｓ３、チェックコードＣ１１、チェックコードＣ１２、ＭＣＲ更新信号Ｓ１１およびＭＣＣＲライト信号Ｓ１２のタイミング関係を示している。図２Ｂのタイミングチャートは、クロックｃｌｋｏ、バス１１の値、チェックコードＣ２１、チェックコードＣ２２、ＣＣＲ更新信号Ｓ２１およびＣＣＣＲライト信号Ｓ２２のタイミング関係を示している。図２ＡのチェックコードＣ１２および図２ＢのチェックコードＣ２２において、ハッチング部分は前回保持したデータを表している。
【００４４】
図２Ａのタイミングチャートにおいて、クロックｃｌｋは制御ＬＳＩ２のバスクロックである。バス１１の値とバスコピー信号Ｓ３とはクロックｃｌｋごとに変化するものとし、制御ＬＳＩ２が故障していなければ、クロックｃｌｋごとに同じ値となる。ＭＣＲ７１のチェックコードＣ１１は、ＭＣＲ更新信号Ｓ１１が論理値‘０’の場合には次のクロックサイクルでオール‘０’に初期化され、論理値‘１’で更新される。クロックｃｌｋが１のサイクルではＭＣＲ更新信号Ｓ１１が論理値‘０’であるため、クロックｃｌｋが２のサイクルでチェックコードＣ１１がオール‘０’となる。
【００４５】
クロックｃｌｋが２のサイクルではＭＣＲ更新信号Ｓ１１が論理値‘１’である。したがって、符号化回路７１でバスコピー信号Ｓ３の値（Ｂ１Ｏ２）と、チェックコードＣ１１の値（オール‘０’）から生成されたチェックコード（ＭＣ２）とが次のサイクルでＭＣＲ７１１に書き込まれる。クロックｃｌｋが５のサイクルでは、ＭＣＣＲライト信号Ｓ１２が論理値‘１’となるため、このサイクルのチェックコードＣ１１の値（ＭＣ４）が、次のサイクルでＭＣＣＲ７２にチェックコードＣ１２として保持される。
【００４６】
図２Ｂのタイミングチャートにおいて、クロックｃｌｋｏは、制御ＬＳＩ２から故障検出ＬＳＩ４に入力されるクロックである。ＣＣＲ４１１のチェックコードＣ２１は、ＣＣＲ更新信号Ｓ２１が論理値‘０’の場合には次のクロックサイクルでオール‘０’に初期化され、論理値‘１’で更新される。クロックｃｌｋｏが１のサイクルではＣＣＲ更新信号Ｓ２１が論理値‘０’であるため、クロックｃｌｋｏが２のサイクルでチェックコードＣ２１がオール‘０’となる。
【００４７】
クロックｃｌｋｏが２のサイクルでは、ＣＣＲ更新信号Ｓ２１が論理値‘１’である。
このため、符号化回路４１でバス１１の値（Ｂ０Ｏ２）とチェックコードＣ２１の値（オール‘０’）とから生成されたチェックコード（ＣＣ２）が次のサイクルでＣＣＲ４１１に書き込まれる。クロックｃｌｋｏが５のサイクルでは、ＣＣＣＲライト信号Ｓ２２が論理値‘１’となるため、このサイクルのチェックコードＣ２１の値（ＣＣ４）が次のサイクルでＣＣＣＲ４２にチェックコードＣ２２として保持される。
【００４８】
図３は、実施例１に係る半導体集積回路１Ａにおける制御ＬＳＩ２から故障検出ＬＳＩ４へのチェックコードのシリアル通信のタイミング関係を示すタイミングチャートの例である。図３Ａに制御ＬＳＩ２側のタイミング関係を示し、図３Ｂに故障検出ＬＳＩ４側のタイミング関係を示している。
【００４９】
図３Ａのタイミングチャートは、クロックｃｌｋ、チェックコードＣ１１、シリアルインタフェース１３のシリアルデータおよび送信要求信号Ｓ１３のタイミング関係を示している。図３Ｂのタイミングチャートは、クロックｃｌｋｏ、シリアルインタフェース１３のシリアルデータ、チェックコードＣ２４、チェックコードＣ２２、エラー信号Ｓｅおよび比較許可信号Ｓ２３のタイミング関係を示している。
【００５０】
図３Ａのタイミングチャートにおいて、クロックｃｌｋが３のサイクルで制御回路７４から出力される送信要求信号Ｓ１３が論理値‘１’になると、送信回路７３はシリアルポートＰ１３を介してシリアルインタフェース１３に出力を開始する。このシリアル通信は連続する複数のサイクルをかけて行われ、通信の開始を表すプリアンブルと呼ばれるパターンを出力した後、チェックコードＣ１２のデータを出力する。ここでは、クロックｃｌｋが４から１１のサイクルでプリアンブルを出力し、クロックｃｌｋが１２から２１のサイクルでデータを出力するものとする。
【００５１】
図３Ｂのタイミングチャートにおいて、受信回路４３は、シリアルインタフェース１３を監視する。そして、受信回路４３は、クロックｃｌｋｏが４から１１のサイクルでプリアンブルを検出すると、続くクロックｃｌｋｏが１２から２１のサイクルでデータを入力し、受信したチェックコードＣ１２をチェックコードＣ２３としてＣＲＲ４４に書き込む。クロックｃｌｋｏが２２のサイクルで制御回路４６が比較許可信号Ｓ２３を論理値‘１’にする。これを受けて比較回路４５は、ＣＲＲ４４に保持されているチェックコードＣ２４とＣＣＣＲ４２に保持されているチェックコードＣ２２とを比較し、その比較結果に応じたエラー信号Ｓｅを出力する。エラー信号Ｓｅは、比較結果が一致の場合は論理値‘０’となり、不一致の場合は論理値‘１’となる。
【００５２】
（故障検出方法）
次に、半導体集積回路の故障検出方法の一例である、実施例１に係る半導体集積回路１Ａにおける故障検出方法（即ち、半導体集積回路１Ａにおいて実行される故障検出方法）の処理について説明する。
図４は、実施例１に係る半導体集積回路１Ａにおける故障検出方法の処理手順の一例を示すフローチャートの例である。図４には、制御ＬＳＩ２側の処理フローと故障検出ＬＳＩ４側の処理フローとを示している。
【００５３】
まず、制御ＬＳＩ２側の処理手順について説明する。制御ＬＳＩ２において、第１バス制御回路６_1は、その出力データを出力ポートＰ１１からバス１１へ出力する（ステップＳ１０１）。ステップＳ１０１の処理と並行して、故障検出回路７の符号化回路７１は、第２論理回路５_2の出力データに基づくデータ、具体的には第２バス制御回路６_2の出力データ（バスコピー信号Ｓ３）からチェックコードＣ１１を生成する（ステップＳ１０２）。
【００５４】
次に、ＭＣＣＲ７２は、制御回路７４から出力されるＭＣＣＲライト信号Ｓ１２を受けて、符号化回路７１が生成したチェックコードＣ１１をチェックコードＣ１２として保持する（ステップＳ１０３）。続いて、送信回路７３は、制御回路７４から出力される送信要求信号Ｓ１３を受けて、ＭＣＣＲ７２に保持されているチェックコードＣ１２をシリアルインタフェース１３に出力する。すなわち、送信回路７３は、チェックコードＣ１２を故障検出ＬＳＩ４へ送信する（ステップＳ１０４）。
【００５５】
次に、故障検出ＬＳＩ４側の処理手順について説明する。故障検出ＬＳＩ４において、符号化回路４１は、制御ＬＳＩ２からバス１１へ出力された第１バス制御回路６_1の出力データ、即ちバス１１のデータを取り込む（ステップＳ２０１）。次に、符号化回路４１は、バス１１のデータからチェックコードＣ２１を生成し、ＣＣＲ４１１に保持する（ステップＳ２０２）。次に、ＣＣＣＲ４２は、制御回路４６から出力されるＣＣＣＲライト信号Ｓ２２を受けて、ＣＣＲ４１１に保持されているチェックコードＣ２１を取り込み、チェックコードＣ２２として保持する（ステップＳ２０３）。
【００５６】
受信回路４３は、制御ＬＳＩ２からのチェックコードＣ１２の送信の有無を監視しており、制御ＬＳＩ２からチェックコードＣ１２を受信すると、受信したチェックコードＣ１２をチェックコードＣ２３としてＣＲＲ４４に供給する（ステップＳ２０４）。続いて、ＣＲＲ４４は、受信回路４３から供給されるチェックコードＣ２３をチェックコードＣ２４として保持する（ステップＳ２０５）。
【００５７】
次に、比較回路４５は、制御回路４６から出力される比較許可信号Ｓ２３を受けて、ＣＣＣＲ４２に保持されているチェックコードＣ２２とＣＲＲ４４に保持されているチェックコードＣ２４とを比較する。具体的には、比較回路４５は、比較許可信号Ｓ２３が論理値‘１’のとき、チェックコードＣ２２とチェックコードＣ２４とが一致するか否かを判断する（ステップＳ２０６）。
【００５８】
そして、比較回路４５は、チェックコードＣ２２とチェックコードＣ２４とが一致の場合（ステップＳ２０６のＹＥＳの場合）には誤りがない、即ち制御ＬＳＩ２に故障がないと判断し、故障検出の一連の処理を終了する。また、比較回路４５は、チェックコードＣ２２とチェックコードＣ２４とが不一致の場合（ステップＳ２０６のＮＯの場合）には誤りがある、即ち制御ＬＳＩ２に故障があると判断し、論理値‘１’のエラー信号Ｓｅを制御ＬＳＩ２へ送る。すなわち、故障検出ＬＳＩ４から制御ＬＳＩ２に対してエラー通知が行われる（ステップＳ２０７）。
【００５９】
（実施例１の効果）
上述したように、実施例１に係る半導体集積回路１Ａは、第１論理回路５_1および第２論理回路５_2と、第１バス制御回路６_1および第２バス制御回路６_2とを有する構成、即ち論理回路とバス制御回路（バスコントローラ）とを２重化した構成を採っている。そして、この２重化構成を採る半導体集積回路１Ａにおいて、制御ＬＳＩ２は、第１バス制御回路６_1の出力データをチップ外へ、即ちバス１１へ出力する。また、制御ＬＳＩ２は、第２バス制御回路６_2を経た、第２論理回路５_2の出力データに基づくデータからチェックコードを生成し、この生成したチェックコードを外部デバイスである故障検出ＬＳＩ４へ送信する。
【００６０】
一方、故障検出ＬＳＩ４は、制御ＬＳＩ２からバス１１へ出力された、第１バス制御回路６_1の出力データ、即ちバス１１のデータを取り込み、この取り込んだデータからチェックコードを生成する。また、故障検出ＬＳＩ４は、制御ＬＳＩ２で生成された、制御ＬＳＩ２から送信されるチェックコードを受信する。そして、故障検出ＬＳＩ４は、自身が生成したチェックコードと制御ＬＳＩ２で生成されたチェックコードとを比較することによって誤り検出を行う。
【００６１】
このような構成を採る実施例１に係る半導体集積回路１Ａによれば、２重化したバスコントローラ（第１バス制御回路６_1および第２バス制御回路６_2）の出力の挙動（バス１１の挙動）を外部デバイスである故障検出ＬＳＩ４によってチェック可能となる。そして、誤り検出の符号を付加することができない、バス出力や汎用出力に対しても誤り検出を行うことができる。また、制御ＬＳＩ２に追加するポート数も少なくて済む。実施例１に係る半導体集積回路１Ａにあっては、シリアルポートＰ１３、出力ポートＰ１５および入力ポートＰ１６の３つのポートの追加で済むことになる。シリアルポートＰ１３は、故障検出ＬＳＩ４にチェックコードを出力するポートである。出力ポートＰ１５は、故障検出ＬＳＩ４に同期をとるための制御信号ＣＳを出力するポートである。入力ポートＰ１６は、故障検出ＬＳＩ４からエラー信号Ｓｅを取り込むポートである。
【００６２】
［実施例２］
図５は、実施例２に係る半導体集積回路の構成を示すブロック図の例である。実施例２に係る半導体集積回路１Ｂは、実施例１に係る半導体集積回路１Ａと同様に、チップ内に２重化した第１論理回路５_1および第２論理回路５_2と、２重化した第１バス制御回路６_1および第２バス制御回路６_2と、を有する構成となっている。この論理回路およびバス制御回路の２重化の点については、後述する各実施例においても同様である。
【００６３】
そして、実施例１に係る半導体集積回路１Ａは、故障検出ＬＳＩ４でのみチェックコードを比較することによって誤り検出を行う構成をとっているのに対し、実施例２に係る半導体集積回路１Ｂは、制御ＬＳＩ２においても誤り検出を行う構成をとっている。すなわち、半導体集積回路１Ｂは、故障検出ＬＳＩ４で生成したチェックコードを制御ＬＳＩ２にシリアル通信にて転送し、制御ＬＳＩ２において、自身で生成したチェックコードと故障検出ＬＳＩ４で生成したチェックコードとを比較する構成となっている。以下に、その具体的な構成について説明する。
【００６４】
（制御ＬＳＩ）
制御ＬＳＩ２において、故障検出回路７は、符号化回路７１、ＭＣＣＲ７２、送信回路７３および制御回路７４に加えて、受信回路７５と、マスター受信レジスタ（以下、「ＭＲＲ」と記述する）７６と、比較回路７７と、を有している。制御回路７４は、比較回路７７に対して比較許可信号Ｓ１４を出力する。
【００６５】
受信回路７５は、故障検出ＬＳＩ４から、シリアルインタフェース１３_2を介して転送されるチェックコードＣ２２を入力ポートＰ１７を介して取り込み、チェックコードＣ１３として出力する。ＭＲＲ７６は、受信回路７５から出力されるチェックコードＣ１３をチェックコードＣ１４として保持する。比較回路７７は、制御回路７４から出力される比較許可信号Ｓ１４を受けて、ＭＣＣＲ７２に保持されているチェックコードＣ１２と、ＭＲＲ７６に保持されているチェックコードＣ１４とを比較し、比較結果に応じてエラー信号Ｓｅ２を出力する。
【００６６】
具体的には、比較回路７７は、制御回路７４から出力される比較許可信号Ｓ１４が論理値‘１’のとき、チェックコードＣ１２とチェックコードＣ１４とを比較する。そして、比較回路７７は、比較結果が不一致の場合にエラー信号Ｓｅ２の論理値を‘１’とし、一致の場合にエラー信号Ｓｅ２の論理値を‘０’とする。エラー信号Ｓｅ２は、制御回路７４に入力される。このエラー信号Ｓｅ２を受けて、制御回路７４は、エラー信号Ｓｅ２の論理値が‘１’のとき、制御ＬＳＩ２および故障検出ＬＳＩ４のリセットを行う。なお、図５では、故障検出ＬＳＩ４から制御ＬＳＩ２へ通知されるエラー信号ＳｅをＳｅ１として、制御ＬＳＩ２から故障検出ＬＳＩ４へのシリアルインタフェース１３をシリアルインタフェース１３_1として図示している。以下の実施例においても同様とする。
【００６７】
（故障検出ＬＳＩ）
一方、故障検出ＬＳＩ４は、符号化回路４１、ＣＣＣＲ４２、受信回路４３、ＣＲＲ４４、比較回路４５および制御回路４６に加えて、送信回路４７を有する。制御回路４６は、送信回路４７に対して送信要求信号Ｓ２４を出力する。
【００６８】
送信回路４７は、制御回路４６から出力される送信要求信号Ｓ２４を受けて、ＣＣＣＲ４２に保持されているチェックコードＣ２２を、シリアルポートＰ２６を介してシリアルインタフェース１３_2に出力する。より具体的には、送信回路４７は、ＣＣＣＲ４２に保持されているチェックコードＣ２２を、当該チェックコードＣ２２のビット数よりも少ないビット数で複数のクロックサイクルをかけてシリアルポートＰ２６からシリアルインタフェース１３_2に出力する。
【００６９】
図６は、実施例２に係る半導体集積回路１Ｂにおける故障検出ＬＳＩ４から制御ＬＳＩ２へのチェックコードのシリアル通信のタイミング関係を示すタイミングチャートの例である。図６Ａに故障検出ＬＳＩ４側のタイミング関係を示し、図６Ｂに制御ＬＳＩ２側のタイミング関係を示している。
【００７０】
図６Ａのタイミングチャートは、クロックｃｌｋｏ、チェックコードＣ２２、シリアルインタフェース１３のシリアルデータおよび送信要求信号Ｓ２４のタイミング関係を示している。図６Ｂのタイミングチャートは、クロックｃｌｋ、シリアルインタフェース１３のシリアルデータ、チェックコードＣ１４、チェックコードＣ１２、エラー信号Ｓｅ２および比較許可信号Ｓ１４のタイミング関係を示している。
【００７１】
図６Ａのタイミングチャートにおいて、クロックｃｌｋｏが３のサイクルで制御回路４６から出力される送信要求信号Ｓ２４が論理値‘１’になると、送信回路４７はシリアルポートＰ２５を介してシリアルインタフェース１３_2に出力を開始する。このシリアル通信は連続する複数のサイクルをかけて行われ、プリアンブルを出力した後、チェックコードＣ２２のデータを出力する。ここでは、クロックｃｌｋｏが４から１１のサイクルでプリアンブルを出力し、クロックｃｌｋｏが１２から２１のサイクルでデータを出力するものとする。
【００７２】
図６Ｂのタイミングチャートにおいて、受信回路７５は、シリアルインタフェース１３_2を監視する。そして、受信回路７５は、クロックｃｌｋが４から１１のサイクルでプリアンブルを検出すると、続くクロックｃｌｋが１２から２１のサイクルでデータを受信し、受信したチェックコードＣ２２をチェックコードＣ１３としてＭＲＲ７６に書き込む。クロックｃｌｋが２２のサイクルで制御回路７４が比較許可信号Ｓ１４を論理値‘１’にする。これを受けて比較回路７７は、ＭＲＲ７６に保持されているチェックコードＣ１４とＭＣＣＲ７２に保持されているチェックコードＣ１２とを比較し、その比較結果に応じたエラー信号Ｓｅ２を出力する。エラー信号Ｓｅは、比較結果が一致の場合は論理値‘０’となり、不一致の場合は論理値‘１’となる。
【００７３】
（故障検出方法）
次に、半導体集積回路の故障検出方法の他の例である、実施例２に係る半導体集積回路１Ｂにおける故障検出方法の処理について説明する。
図７は、実施例２に係る半導体集積回路１Ｂにおける故障検出方法の処理手順の一例を示すフローチャートの例である。図７には、制御ＬＳＩ２側の処理フローと故障検出ＬＳＩ４側の処理フローとを示している。
【００７４】
まず、制御ＬＳＩ２側の処理手順について説明する。制御ＬＳＩ２において、第１バス制御回路６_1は、その出力データを出力ポートＰ１１からバス１１へ出力する（ステップＳ３０１）。ステップＳ３０１の処理と並行して、故障検出回路７の符号化回路７１は、第２バス制御回路６_2の出力データ（バスコピー信号Ｓ３）からチェックコードＣ１１を生成する（ステップＳ３０２）。
【００７５】
次に、ＭＣＣＲ７２は、制御回路７４から出力されるＭＣＣＲライト信号Ｓ１２を受けて、符号化回路７１が生成したチェックコードＣ１１をチェックコードＣ１２として保持する（ステップＳ３０３）。続いて、送信回路７３は、制御回路７４から出力される送信要求信号Ｓ１３を受けて、ＭＣＣＲ７２に保持されているチェックコードＣ１２をシリアル通信にて故障検出ＬＳＩ４へ送信する（ステップＳ３０４）。
【００７６】
受信回路７５は、故障検出ＬＳＩ４からのチェックコードＣ２２の送信の有無を監視しており、故障検出ＬＳＩ４からチェックコードＣ２２を受信すると、受信したチェックコードＣ２２をチェックコードＣ１３としてＭＲＲ７６に供給する（ステップＳ３０５）。続いて、ＭＲＲ７６は、受信回路７５から供給されるチェックコードＣ１３をチェックコードＣ１４として保持する（ステップＳ３０６）。
【００７７】
次に、比較回路７７は、制御回路７４から出力される比較許可信号Ｓ１４を受けて、ＭＣＣＲ７２に保持されているチェックコードＣ１２とＭＲＲ７６に保持されているチェックコードＣ１４とを比較する。具体的には、比較回路７７は、比較許可信号Ｓ１４が論理値‘１’のとき、チェックコードＣ１２とチェックコードＣ１４とが一致するか否かを判断する（ステップＳ３０７）。
【００７８】
そして、比較回路７７は、チェックコードＣ１２とチェックコードＣ１４とが一致の場合（ステップＳ３０７のＹＥＳの場合）には誤りがない、即ち故障検出ＬＳＩ４に故障がないと判断し、故障検出の一連の処理を終了する。また、比較回路７７は、チェックコードＣ１２とチェックコードＣ１４とが不一致の場合（ステップＳ３０７のＮＯの場合）には誤りがある、即ち故障検出ＬＳＩ４に故障があると判断し、論理値‘１’のエラー信号Ｓｅ２を制御回路７４へ送る。すなわち、比較回路７７から制御回路７４に対してエラー通知が行われる（ステップＳ３０８）。
【００７９】
次に、故障検出ＬＳＩ４側の処理手順について説明する。故障検出ＬＳＩ４において、符号化回路４１は、制御ＬＳＩ２からバス１１へ出力された第１バス制御回路６_1の出力データ、即ちバス１１のデータを取り込む（ステップＳ４０１）。次に、符号化回路４１は、バス１１のデータからチェックコードＣ２１を生成し、ＣＣＲ４１１に保持する（ステップＳ４０２）。
【００８０】
次に、ＣＣＣＲ４２は、制御回路４６から出力されるＣＣＣＲライト信号Ｓ２２を受けて、ＣＣＲ４１１に保持されているチェックコードＣ２１を取り込み、チェックコードＣ２２として保持する（ステップＳ４０３）。続いて、送信回路４７は、制御回路４６から出力される送信要求信号Ｓ２４を受けて、ＣＣＣＲ４２に保持されているチェックコードＣ２２をシリアル通信にて制御ＬＳＩ２へ送信する（ステップＳ４０４）。
【００８１】
受信回路４３は、制御ＬＳＩ２からのチェックコードＣ１２の送信の有無を監視しており、制御ＬＳＩ２からチェックコードＣ１２を受信すると、受信したチェックコードＣ１２をチェックコードＣ２３としてＣＲＲ４４に供給する（ステップＳ４０５）。続いて、ＣＲＲ４４は、受信回路４３から供給されるチェックコードＣ２３をチェックコードＣ２４として保持する（ステップＳ４０６）。
【００８２】
次に、比較回路４５は、制御回路４６から出力される比較許可信号Ｓ２３を受けて、ＣＣＣＲ４２に保持されているチェックコードＣ２２とＣＲＲ４４に保持されているチェックコードＣ２４とを比較する。具体的には、比較回路４５は、比較許可信号Ｓ２３が論理値‘１’のとき、チェックコードＣ２２とチェックコードＣ２４とが一致するか否かを判断する（ステップＳ４０７）。
【００８３】
そして、比較回路４５は、チェックコードＣ２２とチェックコードＣ２４とが一致の場合（ステップＳ４０７のＹＥＳの場合）には誤りがない、即ち制御ＬＳＩ２に故障がないと判断し、故障検出の一連の処理を終了する。また、比較回路４５は、チェックコードＣ２２とチェックコードＣ２４とが不一致の場合（ステップＳ４０７のＮＯの場合）には誤りがある、即ち制御ＬＳＩ２に故障があると判断し、論理値‘１’のエラー信号Ｓｅ２を制御ＬＳＩ２へ送る。すなわち、故障検出ＬＳＩ４から制御ＬＳＩ２に対してエラー通知が行われる（ステップＳ４０８）。
【００８４】
（実施例２の効果）
上述した実施例２に係る半導体集積回路１Ｂにおいても、基本的に、実施例１に係る半導体集積回路１Ａと同様の効果を得ることができる。すなわち、誤り検出の符号を付加することができない、バス出力や汎用出力に対しても誤り検出を行うことができる。また、実施例１に比べて、ポート数が１つ（ポートＰ１７）増えるものの、チェックコードの比較が２重化されていることで、制御ＬＳＩ２の故障に加えて、故障検出ＬＳＩ４の故障についても検出することができるため、故障検出の信頼性をより向上できる。
【００８５】
［実施例３］
図８は、実施例３に係る半導体集積回路の構成を示すブロック図の例である。実施例３に係る半導体集積回路１Ｃは、実施例１に係る半導体集積回路１Ａにおけるバス１１のチェックタイミングをプログラム可能にしたものである。実施例３に係る半導体集積回路１Ｃは、実施例１に係る半導体集積回路１Ａとは、制御ＬＳＩ２における故障検出回路７の構成が異なっている。故障検出ＬＳＩ４の構成については、実施例１に係る半導体集積回路１Ａと同じである。
【００８６】
（制御ＬＳＩ）
故障検出回路７は、符号化回路７１、ＭＣＣＲ７２、送信回路７３および制御回路７４に加えて、２重化されたマスター・チェック・セッティング・レジスタ（以下、「ＭＣＳＲ」と記述する）７８_1、７８_2と、比較回路７９と、を有している。
【００８７】
第１ＭＣＳＲ７８_1は、制御回路７４からＭＣＲ７１１に対して出力されるＭＣＲ更新信号Ｓ１１のタイミング情報を保持する。第２ＭＣＳＲ７８_2は、制御回路７４からＭＣＣＲ７２に対して出力されるＭＣＣＲライト信号Ｓ１２のタイミング情報を保持する。すなわち、第１ＭＣＳＲ７８_1および第２ＭＣＳＲ７８_2は、符号化回路７１の初期化のタイミング情報とＭＣＣＲ（符号レジスタ）７２へのチェックコードの書き込みのタイミング情報とを保持するタイミング情報レジスタである。そして、第１ＭＣＳＲ７８_1および第２ＭＣＳＲ７８_2に保持されたタイミング情報に基づいて、ＭＣＲ更新信号Ｓ１１およびＭＣＣＲライト信号Ｓ１２の各タイミングの設定が行われる。
【００８８】
ＭＣＲ更新信号Ｓ１１およびＭＣＣＲライト信号Ｓ１２の各タイミングの設定方法としては、いろいろな方法が考えられる。例えば、図２のタイミングチャートにおいて、ＭＣＲ更新信号Ｓ１１を１サイクルの論理値‘０’と、これに続くＭサイクルの論理値‘１’のパターンとし、パターン発生の周期Ｍ＋１を設定する。また、ＭＣＣＲライト信号Ｓ１２をＮサイクルの論理値‘０’と、これに続く１サイクルの論理値‘１’のパターンとし、パターン発生の周期Ｎ＋１を設定する。
【００８９】
このタイミング設定により、次のように動作タイミングを設定することができる。すなわち、Ｍ＋１サイクルの周期でＭＣＲ７１１とＣＣＲ４１１とを初期化し、Ｎ＋１サイクルの周期でＭＣＣＲ７２にチェックコードＣ１１を、ＣＣＣＲ４２にチェックコードＣ２１を書き込んでシリアル通信を行うように動作タイミングを設定できる。さらに、故障検出ＬＳＩ４の比較回路４５において、チェックコードＣ２２、Ｃ２４を比較するように動作タイミングを設定できる。
【００９０】
第１論理回路５_1は、設定信号Ｓ３１により第１ＭＣＳＲ７８_1に対してタイミング情報を設定する。第２論理回路５_2は、設定信号Ｓ３２により第２ＭＣＳＲ７８_2に対してタイミング情報を設定する。制御回路７４は、第１ＭＣＳＲ７８_1の設定値に基づくタイミングでＭＣＲ更新信号Ｓ１１を発生する。比較回路７９は、第１ＭＣＳＲ７８_1の設定値と第２ＭＣＳＲ７８_2の設定値とを比較し、その比較結果を制御回路７４に入力する。制御回路７４は、比較回路７９の比較結果が不一致の場合には、制御ＬＳＩ２および故障検出ＬＳＩ４のリセットを行う。
【００９１】
以上のことから、第１ＭＣＳＲ７８_1および第２ＭＣＳＲ７８_2は、チェックコードＣ１１、Ｃ２１の生成の初期化タイミングと、ＭＣＣＲ７２およびＣＣＣＲ４２のチェックコードの取り込みタイミングとを設定できるレジスタであることがわかる。そして、第１ＭＣＳＲ７８_1および第２ＭＣＳＲ７８_2を有することで、第１論理回路５_1および第２論理回路５_2に設定されるプログラムに基づいて、バス１１のチェックタイミングをプログラム可能となる。
【００９２】
（実施例３の効果）
上述した実施例３に係る半導体集積回路１Ｃにおいても、基本的に、実施例１に係る半導体集積回路１Ａと同様の効果を得ることができる。すなわち、誤り検出の符号を付加することができない、バス出力や汎用出力に対しても誤り検出を行うことができる。また、チェックコードの生成の初期化タイミングと、ＭＣＣＲ７２およびＣＣＣＲ４２のチェックコードの取り込みタイミングとを設定できることで、バス１１のチェックタイミングをプログラム可能になる。これにより、バス１１のチェックタイミングをユーザが任意に設定可能になるため、ユーザの使い勝手の向上を図ることができる。
【００９３】
［実施例４］
図９は、実施例４に係る半導体集積回路の構成を示すブロック図の例である。実施例４に係る半導体集積回路１Ｄは、実施例２に係る半導体集積回路１Ｂにおけるバス１１のチェックタイミングをプログラム可能にしたものである。実施例４に係る半導体集積回路１Ｄは、実施例２に係る半導体集積回路１Ｄとは、制御ＬＳＩ２における故障検出回路７の構成の点で異なっている。故障検出ＬＳＩ４の構成については、実施例２に係る半導体集積回路１Ｄと同じである。
【００９４】
（制御ＬＳＩ）
故障検出回路７は、符号化回路７１、ＭＣＣＲ７２、送信回路７３および制御回路７４に加えて、２重化された第１ＭＣＳＲ７８_1および第２ＭＣＳＲ７８_2と、比較回路７９と、を有している。そして、第１ＭＣＳＲ７８_1は、制御回路７４からＭＣＲ７１１に対して出力されるＭＣＲ更新信号Ｓ１１のタイミング情報を設定する。第２ＭＣＳＲ７８_2は、制御回路７４からＭＣＣＲ７２に対して出力されるＭＣＣＲライト信号Ｓ１２のタイミング情報を設定する。以上の構成は、実施例３と同様であり、また各構成部の機能についても実施例３と同様である。
【００９５】
（実施例４の効果）
上述したように、実施例４に係る半導体集積回路１Ｄにおいても、基本的に、実施例２に係る半導体集積回路１Ｂと同様の効果を得ることができる。すなわち、誤り検出の符号を付加することができない、バス出力や汎用出力に対しても誤り検出を行うことができるとともに、チェックコードの比較が２重化されていることで、誤り検出の信頼性をより向上できる。また、実施例４に係る半導体集積回路１Ｄによれば、バス１１のチェックタイミングをプログラム可能になるため、ユーザの使い勝手の向上を図ることができるという効果を得ることができる。
【００９６】
［実施例５］
図１０は、実施例５に係る半導体集積回路の構成を示すブロック図の例である。実施例５は、実施例１の変形例である。
【００９７】
実施例１に係る半導体集積回路１Ａは、第１バス制御回路６_1および第２バス制御回路６_2の出力データを誤り検出の対象とする構成を採っている。これに対して、実施例５に係る半導体集積回路１Ｅは、第１論理回路５_1および第２論理回路５_2から出力されるメモリアクセス信号Ｓ１、Ｓ２を誤り検出の対象とする構成を採っている。このため、メモリアクセス信号Ｓ１は、第１論理回路５_1から出力ポートＰ１８を介してチップ外へ出力され、入力ポートＰ２２を介して故障検出ＬＳＩ４に入力される。一方、メモリアクセス信号Ｓ２は、第２論理回路５_2から故障検出回路７の符号化回路７１に入力される。そして、実施例５に係る半導体集積回路１Ｅでは、制御ＬＳＩ２が第２論理回路５_2のメモリアクセス信号Ｓ２からチェックコードＣ１１を生成し、故障検出ＬＳＩ４が第１論理回路５_1のメモリアクセス信号Ｓ１からチェックコードＣ２１を生成する。
【００９８】
実施例１で説明したように、第１論理回路５_1および第２論理回路５_2は同一機能を有しており、クロックを同期させながら同一の処理を実行する。したがって、第１論理回路５_1から出力されるメモリアクセス信号Ｓ１と第２論理回路５_2から出力されるメモリアクセス信号Ｓ２とは同じ内部信号であり、誤り検出の対象となる。メモリアクセス信号Ｓ１、Ｓ２は、デジタルデータであり、第１論理回路５_1および第２論理回路５_2の出力データの一種である。
【００９９】
実施例５と実施例１との違いは、実施例５が第１論理回路５_1および第２論理回路５_2の出力データ（メモリアクセス信号Ｓ１、Ｓ２）を誤り検出の対象とし、実施例１が第１バス制御回路６_1および第２バス制御回路６_2の出力データを誤り検出の対象としている点である。したがって、制御ＬＳＩ２における故障検出回路７および故障検出ＬＳＩ４の構成については、実施例１に係る半導体集積回路１Ａと同じである。
【０１００】
（実施例５の効果）
上述した実施例５に係る半導体集積回路１Ｅにおいても、基本的に、実施例１に係る半導体集積回路１Ａと同様の効果を得ることができる。さらに、第１論理回路５_1および第２論理回路５_2の出力を誤り検出の対象としている。このため、第１バス制御回路６_1および第２バス制御回路６_2が動作していないときでも、即ち第１バス制御回路６_1および第２バス制御回路６_2がバスアクセスを行わないときでも、誤り検出を行うことができる。
【０１０１】
［実施例６］
図１１は、実施例６に係る半導体集積回路の構成を示すブロック図の例である。実施例６は、実施例２の変形例である。
【０１０２】
実施例６に係る半導体集積回路１Ｆは、実施例２に係る半導体集積回路１Ｂにおいて、実施例５と同様に、第１論理回路５_1および第２論理回路５_2から出力されるメモリアクセス信号Ｓ１、Ｓ２を誤り検出の対象とする構成を採っている。すなわち、実施例６に係る半導体集積回路１Ｆでは、制御ＬＳＩ２が第２論理回路５_2のメモリアクセス信号Ｓ２からチェックコードＣ１１を生成し、故障検出ＬＳＩ４が第１論理回路５_1のメモリアクセス信号Ｓ１からチェックコードＣ２１を生成する。
【０１０３】
（実施例６の効果）
上述した実施例６に係る半導体集積回路１Ｆにおいても、基本的に、実施例２に係る半導体集積回路１Ｂと同様の効果を得ることができる。また、実施例６に係る半導体集積回路１Ｆによれば、第１論理回路５_1および第２論理回路５_2の出力データを誤り検出の対象としているため、第１バス制御回路６_1および第２バス制御回路６_2がバスアクセスを行わないときでも誤り検出を行うことができる。
【０１０４】
［実施例７］
図１２は、実施例７に係る半導体集積回路の構成を示すブロック図の例である。実施例７は、実施例５の変形例であり、実施例５の技術と実施例３の技術とを組み合わせたものである。
【０１０５】
すなわち、実施例７に係る半導体集積回路１Ｇは、実施例５に係る半導体集積回路１Ｅにおいて、制御ＬＳＩ２の内部信号であるメモリアクセス信号Ｓ１、Ｓ２のチェックタイミングをプログラム可能にする構成を採っている。具体的には、実施例７に係る半導体集積回路１Ｇは、メモリアクセス信号Ｓ１、Ｓ２を誤り検出の対象としている。そして、故障検出回路７は、符号化回路７１、ＭＣＣＲ７２、送信回路７３および制御回路７４に加えて、２重化されたＭＣＳＲ７８_1、７８_2と、比較回路７９と、を有している。第１ＭＣＳＲ７８_1、第２ＭＣＳＲ７８_2および比較回路７９の各機能については実施例３と同じである。
【０１０６】
（実施例７の効果）
上述した実施例７に係る半導体集積回路１Ｇにおいても、基本的に、実施例５に係る半導体集積回路１Ｅと同様の効果を得ることができる。また、実施例７に係る半導体集積回路１Ｇによれば、制御ＬＳＩ２の内部信号のチェックタイミングをプログラム可能になるため、ユーザの使い勝手の向上を図ることができる。
【０１０７】
［実施例８］
図１３は、実施例８に係る半導体集積回路の構成を示すブロック図の例である。実施例８は、実施例６の変形例であり、実施例６の技術と実施例４の技術とを組み合わせたものである。
【０１０８】
すなわち、実施例８に係る半導体集積回路１Ｈは、実施例６に係る半導体集積回路１Ｆにおいて、制御ＬＳＩ２の内部信号であるメモリアクセス信号Ｓ１、Ｓ２のチェックタイミングをプログラム可能にする構成を採っている。具体的には、実施例８に係る半導体集積回路１Ｈは、メモリアクセス信号Ｓ１、Ｓ２を誤り検出の対象としている。そして、故障検出回路７が、符号化回路７１、ＭＣＣＲ７２、送信回路７３および制御回路７４に加えて、２重化されたＭＣＳＲ７８_1、７８_2と、比較回路７９と、を有している。第１ＭＣＳＲ７８_1、第２ＭＣＳＲ７８_2および比較回路７９の各機能については実施例３と同じである。
【０１０９】
（実施例８の効果）
上述した実施例８に係る半導体集積回路１Ｈにおいても、基本的に、実施例６に係る半導体集積回路１Ｆと同様の効果を得ることができる。また、実施例８に係る半導体集積回路１Ｈによれば、制御ＬＳＩ２の内部信号のチェックタイミングをプログラム可能になるため、ユーザの使い勝手の向上を図ることができる。
【０１１０】
なお、本発明は、上記した実施例に限定されるものではなく、様々な変形例を含む。例えば、上記した実施例は本発明を分かりやすく説明するために詳細したものであり、必ずしも全ての構成を備えるものに限定されるものではない。
【０１１１】
＜本発明の電子装置＞
以上説明した実施例１〜８に係る半導体集積回路１Ａ〜１Ｈは、家電製品、ＡＶ機器、携帯電話機、自動車、産業機械等の機器において、電子装置の制御装置として用いることができる。
【０１１２】
図１４は、本発明の電子装置の一例の構成の概略を示すブロック図の例である。ここでは、一例として、本発明の電子装置が自動車に用いられる場合を例に挙げて説明する。自動車においては、様々な箇所の電子制御に電子装置が用いられている。ここでは、エンジンの電子制御に用いられる電子装置を例示する。
【０１１３】
図１４において、電子装置８０は、自動車のエンジン９０を制御対象の機器とし、センサ部１００から供給される各種のセンサ信号に基づいてエンジン９０の制御を行う。センサ部１００は、車速センサ、アクセル開度センサ、スロットルセンサ等の各種のセンサを有する。車速センサは、自動車の速度に応じた車速信号を電子装置８０に供給する。アクセル開度センサは、アクセルペダルの開度に応じたアクセル開度信号を電子装置８０に供給する。スロットルセンサは、スロットル弁の開度に応じたスロットル開度信号を電子装置８０に供給する。
【０１１４】
電子装置８０は、制御装置８１と、制御装置８１の前段に配されたＡ／Ｄ（アナログ／デジタル）変換部８２と、制御装置８１の後段に配されたＤ／Ａ（デジタル／アナログ）変換部８３と、を有する。センサ部１００から電子装置８０に供給される車速信号、アクセル開度信号、スロットル開度信号等のセンサ信号はアナログ信号である。Ａ／Ｄ変換部８２は、アナログの車速信号、アクセル開度信号、スロットル開度信号等のセンサ信号をデジタル信号に変換して制御装置８１に入力する。
【０１１５】
制御装置８１は、ＬＳＩからなり、デジタルの車速信号、アクセル開度信号、スロットル開度信号等のセンサ信号に基づいて、エンジン９０を制御するための各種の制御信号を生成する演算処理などを行う。各種の制御信号としては、燃料の噴射量や噴射時期、点火時期、スロットル弁の開度等を制御するための燃料噴射弁制御信号、点火時期制御信号、スロットル弁制御信号等がある。Ｄ／Ａ変換部８３は、制御装置８１から出力されるデジタルの燃料噴射弁制御信号、点火時期制御信号、スロットル弁制御信号等の制御信号をアナログ信号に変換する。
【０１１６】
本電子装置８０は、アナログの燃料噴射弁制御信号、点火時期制御信号、スロットル弁制御信号等の制御信号をエンジン９０に供給し、これらの制御信号に基づいてエンジン９０を制御する。具体的には、電子装置８０は、燃料噴射弁制御信号によって燃料噴射弁の噴射量や噴射時期を制御したり、点火時期制御信号によって点火プラグによる点火時期を制御したり、スロットル弁制御信号によってスロットル弁の開度を制御したりする。
【０１１７】
上記構成のエンジン９０の電子装置８０において、制御装置８１は、実施例１〜８に係る半導体集積回路１Ａ〜１Ｈを用いることによって構成される。実施例１〜８に係る半導体集積回路１Ａ〜１Ｈは、少ないポート追加にて外部デバイスによって信頼性の高い誤り検出を実現できる。したがって、制御装置８１として、実施例１〜８に係る半導体集積回路１Ａ〜１Ｈを用いることにより、電子装置８０によるエンジン制御の信頼性の向上に寄与できる。
【０１１８】
なお、ここでは、エンジン９０を制御対象の機器とした電子装置８０を例に挙げて説明したが、この適用例に限られるものではない。自動車においては、エンジン９０以外にも様々な箇所で電子制御が用いられており、その電子装置の制御装置として、実施例１〜８に係る半導体集積回路１Ａ〜１Ｈを用いることができる。
【符号の説明】
【０１１９】
１Ａ、１Ｂ、１Ｃ、１Ｄ、１Ｅ、１Ｆ、１Ｇ、１Ｈ…半導体集積回路、２…制御ＬＳＩ（制御回路部）、４…故障検出ＬＳＩ（故障検出部）、５_1…第１論理回路、５_2…第２論理回路、８０…電子装置
【図１】
2016085162.tif 000003
【図２】
2016085162.tif 000004
【図３】
2016085162.tif 000005
【図４】
2016085162.tif 000006
【図５】
2016085162.tif 000007
【図６】
2016085162.tif 000008
【図７】
2016085162.tif 000009
【図８】
2016085162.tif 000010
【図９】
2016085162.tif 000011
【図１０】
2016085162.tif 000012
【図１１】
2016085162.tif 000013
【図１２】
2016085162.tif 000014
【図１３】
2016085162.tif 000015
【図１４】
2016085162.tif 000016