(57)【要約】【課題】冗長構成の各データ処理ブロックが実行するプログラムを相違させること要さずに処置結果をデータ処理ブロック毎に異なる鍵（誤り訂正符号の生成論理）で符号化できるようにする。【解決手段】データ処理ブロック（１００ａ，１００ｂ）による処置結果を符号化するのにハードウェア回路を用いる。例えば、夫々のデータ処理ブロック毎に、固有の鍵（誤り訂正符号の生成論理１０４ａ，１０４ｂ）を用いる符号化用のハードウェア回路（１０３あ、１０３ｂ）を採用する。これによって、複数のデータ処理ブロックのプログラム動作を同じにすることを保証しつつ、夫々のデータ処理ブロックによる処理結果を外部で検証可能にする。したがって、データ処理ブロックのプログラム動作の結果に不一致を生じさせずに、データ処理ブロック固有の鍵を用いて外部検証用のデータを符号化することが可能となる。【選択図】図１
2010160712.tif 000002
【特許請求の範囲】
【請求項１】
相互に同一のデータ処理機能を有する複数のデータ処理ブロックと、
夫々の前記データ処理ブロックから出力される情報を同期的に比較する比較器と、
前記比較器の比較結果を外部に出力する出力回路と、
前記夫々のデータ処理ブロックから定期的に出力される第１情報に基づいてデータ処理ブロック毎に異なる生成論理による誤り検出符号を付加して第２情報を出力する符号化回路と、
夫々の前記データ処理ブロックの第２情報を外部に出力する第１外部インタフェース回路と、を有する半導体データ処理デバイス。
【請求項２】
前記符号化回路は、夫々のデータ処理ブロック毎に、誤り検出符号を生成するための生成条件を保持する符号化鍵と、前記符号化鍵を用いて前記情報の誤り検出符号を生成して付加する論理回路とを有する、請求項１記載の半導体データ処理デバイス。
【請求項３】
前記夫々のデータ処理ブロックは同一のクロック信号によって同期動作される、請求項２記載の半導体データ処理デバイス。
【請求項４】
夫々の前記データ処理ブロックは相互に位相差のあるクロック信号を入力して同期動作され、
前記比較器は、夫々の前記データ処理ブロックの出力に対して前記位相さを相殺する遅延回路を通した信号を比較対象とする、請求項２記載の半導体データ処理デバイス。
【請求項５】
前記データ処理ブロックは、プログラムを実行するマイクロプロセッサである、請求項１記載の半導体データ処理デバイス。
【請求項６】
前記第１外部インタフェース回路はシリアル出力回路である、請求項１記載の半導体データ処理デバイス。
【請求項７】
相互に同一のデータ処理機能を有する複数のデータ処理ブロックの内の一つは本来の制御用途のための主データ処理ブロックであり、残りは冗長データ処理ブロックであり、
主データ処理ブロックが本来の制御用途のための外部インタフェースに用いる第２外部インタフェースは出力動作用の回路に対する故障検出機能を有し、故障検出信号を外部に出力する、請求項１記載の半導体データ処理デバイス。
【請求項８】
相互に同一のデータ処理機能を有する第１データ処理ブロック及び第２データ処理ブロックと、
前記第１データ処理ブロック及び前記第２データ処理ブロックから出力される情報を同期的に比較する比較器と、
前記比較器の比較結果を外部に出力する出力回路と、
前記第２データ処理ブロックから出力される第１情報に第１生成論理による誤り検出符号を付加して第２情報を出力する符号化回路と、
前記第１データ処理ブロックが、第３情報を生成し、生成した第３情報に第２生成論理による誤り検出符号を付加して出力した第４情報と、前記符号化回路が出力する第２情報とを外部に出力する第１外部インタフェース回路と、を有し、
前記第２データ処理ブロックは、前記第１データ処理ブロックが第３情報を生成して第２生成論理による誤り検出符号を付加して第４情報を出力する動作に並行して、第３情報を生成し、生成した第３情報に第２生成論理による誤り検出符号を付加して第４情報をダミー出力するための第１ダミー動作を行い、
前記第１データ処理ブロックは、前記第２データ処理ブロックが第１情報を生成して出力する動作に並行して、第１情報を生成してダミー出力するための第２ダミー動作を行う、半導体データ処理デバイス。
【請求項９】
相互に同一のデータ処理機能を有する第１データ処理ブロック及び第２データ処理ブロックと、
前記第１データ処理ブロック及び前記第２データ処理ブロックから出力される情報を同期的に比較する比較器と、
前記比較器の比較結果を外部に出力する出力回路と、
前記第２データ処理ブロックから出力される第１情報に第１生成論理による誤り検出符号を付加して第２情報を前記第１データ処理ブロック及び第２データ処理ブロックに供給する符号化回路と、
前記第１データ処理ブロックが第３情報を生成すると共に前記第３情報に第２生成論理による誤り検出符号を付加して生成した第４情報と、前記第１データ処理ブロックに供給された第２情報とを外部に出力する第１外部インタフェース回路と、を有し、
前記第２データ処理ブロックは、前記第１データ処理ブロックが第３情報を生成して第２生成論理による誤り検出符号を付加して第４情報を生成して出力する動作に並行して、第３情報を生成し、生成した第３情報に第２生成論理による誤り検出符号を付加して第４情報をダミー出力するための第１ダミー動作を行い、
前記第１データ処理ブロックは、前記第２データ処理ブロックが第１情報を生成して出力する動作に並行して、第１情報を生成してダミー出力するための第２ダミー動作を行う、半導体データ処理デバイス。
【請求項１０】
相互に同一のデータ処理機能を有する第１データ処理ブロック及び第２データ処理ブロックと、
前記第１データ処理ブロック及び前記第２データ処理ブロックから出力される情報を同期的に比較する比較器と、
前記比較器の比較結果を外部に出力する出力回路と、
前記第２データ処理ブロックから出力される第１情報に第１生成論理による誤り検出符号を付加して第２情報を前記第１データ処理ブロック及び第２データ処理ブロックに供給する第１符号化回路と、
前記第１データ処理ブロックから出力される第３情報に第２生成論理による誤り検出符号を付加して第４情報を前記第２データ処理ブロック及び第１データ処理ブロックに供給する第２符号化回路と、
前記第１データ処理ブロックが、前記第２データ処理ブロックから供給された第２情報と前記第１データ処理ブロックから供給された第４情報とを外部に出力する第１外部インタフェース回路と、を有し、
前記第１データ処理ブロックは、前記第２データ処理ブロックが第１情報を生成して出力する動作に並行して、第１情報を生成してダミー出力するための第１ダミー動作を行い、
前記第２データ処理ブロックは、前記第１データ処理ブロックが第３情報を生成して出力する動作に並行して、第３情報を生成してダミー出力するための第２ダミー動作を行い、
前記第２データ処理ブロックは、前記第１データ処理ブロックが第１情報及び第３情報を出力する動作に並行して、第１情報及び第３情報をダミー出力するための第３ダミー動作を行う、半導体データ処理デバイス。
【請求項１１】
前記符号化回路は、夫々のデータ処理ブロック毎に、誤り検出符号を生成するための生成条件を保持する符号化鍵と、前記符号化鍵を用いて前記情報の誤り検出符号を生成して付加する論理回路とを有する、請求項８乃至１０のいずれか１項に記載の半導体データ処理デバイス。
【請求項１２】
前記第１データ処理ブロック及び前記第２データ処理ブロックは同一のクロック信号によって同期動作される、請求項１１記載の半導体データ処理デバイス。
【請求項１３】
前記第１データ処理ブロック及び前記第２データ処理ブロックは相互に位相差のあるクロック信号を入力して同期動作され、
前記比較器は、夫々の前記データ処理ブロックの出力に対して前記位相さを相殺する遅延回路を通した信号を比較対象とする、請求項１２記載の半導体データ処理デバイス。
【請求項１４】
前記第１データ処理ブロック及び前記第２データ処理ブロックはプログラムを実行するマイクロプロセッサである、請求項８乃至１０の何れか１項に記載の半導体データ処理デバイス。
【請求項１５】
前記第１外部インタフェース回路はシリアル出力回路である、請求項８乃至１０の何れか１項に記載の半導体データ処理デバイス。
【請求項１６】
前記第１データ処理ブロックは本来の制御用途のための主データ処理ブロックであり、前記第２データ処理ブロックは冗長データ処理ブロックであり、
主データ処理ブロックが本来の制御用途のための外部インタフェースに用いる第２外部インタフェースは出力動作用の回路に対する故障検出機能を有し、故障検出信号を外部に出力する、請求項８乃至１０の何れか１項に記載の半導体データ処理デバイス。
【請求項１７】
請求項１に記載の半導体データ処理デバイスと、
前記半導体データ処理デバイスが制御対象とする制御対象回路と、
前記制御対象回路の動作または動作停止を制御する制御信号を生成するロジック回路と、を有するデータ処理システムにおいて、
前記ロジック回路は、第１インタフェース回路から出力される第２情報と比較回路から出力される比較結果信号を入力し、前記第２情報の非正当性又は比較結果信号による比較不一致状態を判別したとき、前記制御対象回路を動作停止させる、データ処理システム。
【請求項１８】
請求項８乃至１０のいずれか１項に記載の半導体データ処理デバイスと、
前記半導体データ処理デバイスが制御対象とする制御対象回路と、
前記制御対象回路の動作または動作停止を制御する制御信号を生成するロジック回路と、を有するデータ処理システムにおいて、
前記ロジック回路は、第１インタフェース回路から出力される第２情報、第４情報及び比較回路から出力される比較結果信号を入力し、前記第２情報若しくは第４情報の非正当性又は比較結果信号による比較不一致状態を判別したとき、前記制御対象回路を動作停止させる、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理ブロックに冗長性を持たせて高信頼性を実現する半導体データ処理デバイス及びこれを搭載したデータ処理システムに係り、例えば自動車や鉄道等の電子制御装置、産業機器などの電子制御装置に適用して有効な技術に関する。
【背景技術】
【０００２】
社会の根幹を担うインフラシステムや、交通システムが電子制御化され、コンピュータが導入されるにつれて、コンピュータシステムの信頼性が求められるようになってきている。コンピュータシステムの信頼性を高める方法として冗長化という手段が広く採られてきている。
【０００３】
また近年になって、半導体の集積度が高くなり、システムレベルの回路がチップ内に実装できるようになり、例えば特許文献１に示されるように冗長化されたシステムを１つのチップ内で実現できるようになってきている。こうしたチップ内に冗長化されたシステムを構成する方法は、組み込みシステムにおいては小型軽量化につながり、また、高性能システムにおいては信号遅延時間を短縮、ひいては性能向上につながる極めて優れた方式である。
【０００４】
しかしチップ全体に波及する故障の対策に関する考慮が必要である。冗長化したシステムの出力同士を比較照合することで正常性を保証する方式では、故障を検出するための比較照合機能も同一チップ内に実装していては、何らかの対策なしでは比較照合機能に故障の影響が及んだ場合の動作を保証することはできない。
【０００５】
そのためにはチップ内で冗長化したシステムの出力を比較照合する比較照合機能を前記チップ内で冗長化したシステムとは異なる別のチップ又はボード上の別回路で実装する必要がある。
【０００６】
その際、冗長化した処理装置の出力をたとえ故障時、誤動作が発生した場合でも区別、保障するために、特許文献２では処理装置固有の鍵で符号化する技術が開示されている。
【０００７】
【特許文献１】特開平６−１６１７９８号公報
【特許文献２】特開２０００−１０９４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記した従来技術は、信号が、夫々の処理装置が出力したものであることを区別、保証しながら共通の出力インタフェースを通じて出力することができるため、出力インタフェースの物量を削減し、システムを小型化、低価格化できる点で優れた方法である。しかし、冗長化した処理装置をクロックレベルで比較して故障を検出することに対するさらなる考慮が望ましい。つまり、冗長化した処理装置が夫々のソフトウェアに従って処理装置固有の鍵で符号化する処理が行なわれた段階で、夫々の処理装置は異なる演算、異なる動作をすることになり、実行するプログラムが相違されることになり、単にデータ処理結果を比較したのでは、処理が正常であっても比較結果に不一致が生じてしまい、比較による故障検出ができなくなる。一部のデータ処理のプログラムが相違する場合、相違する部分の比較結果を無視する制御が新たに必要になり、無視を開始するタイミングや無視を解除するタイミング制御などが複雑になることが予想される。
【０００９】
本発明の目的は、冗長構成の各データ処理ブロックが実行するプログラムを相違させること要さずに処置結果をデータ処理ブロック毎に異なる鍵（誤り訂正符号の生成論理）で符号化できる半導体データ処理デバイスを提供することにある。
【００１０】
本発明の別の目的は、冗長構成の各データ処理ブロック相互間の処理結果の内部比較と外部での比較のための各データ処理ブロック固有の符号化とを容易に実現することができる半導体データ処理デバイスを提供することにある。
【００１１】
本発明の更に別の目的は、容易にデータ処理の信頼性を向上させることができるデータ処理システムを提供することにある。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１４】
すなわち、データ処理ブロックによる処置結果を符号化するのにハードウェア回路を用いる。例えば、夫々のデータ処理ブロック毎に、固有の鍵（誤り訂正符号の生成論理）を用いる符号化用のハードウェア回路を採用する。あるいは、一部のデータ処理ブロックに対応して固有の鍵（誤り訂正符号の生成論理）を用いる符号化用のハードウェア回路を採用し、一部のデータ処理ブロックから符号化用のハードウェア回路へのデータ出力に対応させて他のデータ処理ブロックにはダミーデータ出力動作などをさせる。これによって、複数のデータ処理ブロックのプログラム動作を同じにすることを保証しつつ、夫々のデータ処理ブロックによる処理結果を外部で検証可能にする。したがって、データ処理ブロックのプログラム動作の結果に不一致を生じさせずに、データ処理ブロック固有の鍵を用いて外部検証用のデータを符号化することが可能となる。また、鍵を用いて符号化するハードウェアが故障した場合には、鍵に対応してそれを復号した結果に相互間の不一致を生ずるから、その故障も検出することができる。
【発明の効果】
【００１５】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１６】
すなわち、冗長構成の各データ処理ブロックが実行するプログラムを相違させること要さずに処置結果をデータ処理ブロック毎に異なる鍵（誤り訂正符号の生成論理）で符号化できる。このとき更に、鍵を用いて符号化するハードウェアが故障した場合には、鍵に対応してそれを復号した結果に相互間の不一致を生ずるから、その故障の影響も受けない。
【００１７】
また、冗長構成の各データ処理ブロック相互間の処理結果の内部比較と外部での比較のための各データ処理ブロック固有の符号化とを容易に実現することができる。
【００１８】
本発明の半導体データ処理デバイスを適用したデータ処理システムにおいては、容易にデータ処理の信頼性を向上させることができる。
【発明を実施するための最良の形態】
【００１９】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２０】
〔１〕本発明に係る半導体データ処理デバイスは、相互に同一のデータ処理機能を有する複数のデータ処理ブロックと、夫々の前記データ処理ブロックから出力される情報を同期的に比較する比較器と、前記比較器の比較結果を外部に出力する出力回路と、前記夫々のデータ処理ブロックから定期的に出力される第１情報に基づいてデータ処理ブロック毎に異なる生成論理による誤り検出符号を付加して第２情報を出力する符号化回路と、夫々の前記データ処理ブロックの第２情報を外部に出力する第１外部インタフェース回路と、を有する。
【００２１】
これによれば、データ処理ブロックによる処置結果を符号化するのにデータ処理ブロックとは別のハードウェア回路を用いるから、複数のデータ処理ブロックのプログラム動作を同じにすることを保証しつつ、夫々のデータ処理ブロックによる処理結果を外部で検証することができる。したがって、データ処理ブロックのプログラム動作の結果に不一致を生じさせずに、データ処理ブロック固有の鍵を用いて外部検証用のデータを符号化することが可能になる。また、鍵を用いて符号化するハードウェアが故障した場合には、鍵に対応してそれを復号した結果に相互間の不一致を生ずるから、その故障の影響も受けない。
【００２２】
〔２〕項１の半導体データ処理デバイスにおいて、前記符号化回路は、夫々のデータ処理ブロック毎に、誤り検出符号を生成するための生成条件を保持する符号化鍵と、前記符号化鍵を用いて前記情報の誤り検出符号を生成して付加する論理回路とを有する。
【００２３】
〔３〕項２の半導体データ処理デバイスにおいて、前記夫々のデータ処理ブロックは同一のクロック信号によって同期動作される。
【００２４】
〔４〕項２の半導体データ処理デバイスにおいて、夫々の前記データ処理ブロックは相互に位相差のあるクロック信号を入力して同期動作される。前記比較器は、夫々の前記データ処理ブロックの出力に対して前記位相さを相殺する遅延回路を通した信号を比較対象とする。動作電流に伴うノイズピークを抑えることができ、耐ノイズ生を向上させることができる。
【００２５】
〔５〕項１の半導体データ処理デバイスにおいて、前記データ処理ブロックは、プログラムを実行するマイクロプロセッサである。
【００２６】
〔６〕項１の半導体データ処理デバイスにおいて、前記第１外部インタフェース回路はシリアル出力回路である。信頼性向上のための外部端子が本来の制御対象に対する制御信号に割当て可能なインタフェース端子を圧迫しない。
【００２７】
〔７〕項１の半導体データ処理デバイスにおいて、相互に同一のデータ処理機能を有する複数のデータ処理ブロックの内の一つは本来の制御用途のための主データ処理ブロックであり、残りは冗長データ処理ブロックである。主データ処理ブロックが本来の制御用途のための外部インタフェースに用いる第２外部インタフェースは出力動作用の回路に対する故障検出機能を有し、故障検出信号を外部に出力する。本来の制御用途のための外部インタフェースに用いる第２外部インタフェース回路の故障にも対処することができる。
【００２８】
〔８〕本発明の別の観点による半導体データ処理デバイス（図１１、図１２、図１３）は、相互に同一のデータ処理機能を有する第１データ処理ブロック（１００ａ）及び第２データ処理ブロック（１００ｂ）と、前記第１データ処理ブロック及び前記第２データ処理ブロックから出力される情報を同期的に比較する比較器（１０１）と、前記比較器の比較結果を外部に出力する出力回路と、前記第２データ処理ブロックから出力される第１情報（図１３のＳ１２ｂのメッセージｍ’（１０２ｂ））に第１生成論理（１０４ｂ）による誤り検出符号を付加して第２情報（図１３のシグナチャー１０５ｂ）を出力する符号化回路（１０３ｂ）と、前記第１データ処理ブロックが、第３情報（図１３のＳ１ａにおけるメッセージｍ）を生成し、生成した第３情報に第２生成論理（鍵Ａ）による誤り検出符号を付加して出力した第４情報（図１３のＳ１１ａにおけるシグナチャーＳａ（１０５ａ））及び前記符号化回路が出力する前記第２情報（１０５ｂ）とを外部に出力する第１外部インタフェース回路(１０６)と、を有する。前記第２データ処理ブロックは、前記第１データ処理ブロックが第３情報を生成して(図１３のＳ１ａ)第２生成論理による誤り検出符号を付加して（図１３のＳ４ａ）第４情報を出力する動作（Ｓ１１ａ）に並行して、第３情報を生成し（図１３のＳ１ｂ）、生成した第３情報に第２生成論理による誤り検出符号を付加して（図１３のＳ４ｂ）第４情報（シグナチャーＳｂａ）をダミー出力するための第１ダミー動作（図１３のＳ１１ｂ）を行う。前記第１データ処理ブロックは、前記第２データ処理ブロックが第１情報を生成して出力する動作（図１３のＳ１２ｂ）に並行して、第１情報（図１３のＳ１２ａにおけるメッセージｍ）を生成してダミー出力するための第２ダミー動作（図１３のＳ１２ａ）を行う。
【００２９】
一部のデータ処理ブロックに対応して固有の鍵（誤り訂正符号の生成論理）を用いる符号化用のハードウェア回路を採用し、一部のデータ処理ブロックから符号化用のハードウェア回路へのデータ出力に対応させて他のデータ処理ブロックにはダミーデータ出力動作などをさせることによって、双方のデータ処理ブロックの動作プログラムを同一にしながら、符号化用のハードウェア回路を半減することができる。
【００３０】
〔９〕本発明の別の観点による半導体データ処理デバイス（図１４、図１５、図１６）は、相互に同一のデータ処理機能を有する第１データ処理ブロック（１００ａ）及び第２データ処理ブロック（１００ｂ）と、前記第１データ処理ブロック及び前記第２データ処理ブロックから出力される情報を同期的に比較する比較器（１０１）と、前記比較器の比較結果を外部に出力する出力回路と、前記第２データ処理ブロックから出力される第１情報(図１６のＳ２ｂにおけるメッセージｍ’（１０２ｂ）)に第１生成論理(１０４ｂ)による誤り検出符号を付加して第２情報（図１６の１０５ｂ（シグナチャーＳｂ））を前記第１データ処理ブロック及び第２データ処理ブロックに供給する符号化回路(１０３ｂ)と、前記第１データ処理ブロックが第３情報（図１６のＳ４ａにおけるメッセージｍ）を生成すると共に前記第３情報に第２生成論理（図１６のＳ４ａにおける鍵Ａ）による誤り検出符号を付加して生成した第４情報（図１６のＳ４ａにおけるシグナチャーＳａ）及び前記第１データ処理ブロックに供給された前記第２情報（しぐなちゃーＳｂ）とを外部に出力する第１外部インタフェース回路（１０６）と、を有する。前記第２データ処理ブロックは、前記第１データ処理ブロックが第３情報を生成し第２生成論理による誤り検出符号を付加して第４情報を生成して出力する動作（図１６のＳ４ａ，Ｓ１０ａ）に並行して、第３情報を生成し生成した第３情報に第２生成論理（鍵Ａ）による誤り検出符号を付加して（図１６のＳ４ｂ）第４情報をダミー出力するための第１ダミー動作（図１６のＳ１０ｂ）を行う。前記第１データ処理ブロックは、前記第２データ処理ブロックが第１情報を生成して出力するための動作（図１６のＳ２ｂ）に並行して、第１情報を生成してダミー出力する第２ダミー動作（図１６のＳ２ａ）を行う。
【００３１】
これによれば、外部へ出力されるシグナチャー出力（図１６の１０７）が本来の機器制御を行う第１データ処理ブロックの出力に限定される。これは、本来の機器制御を行う第１データ処理ブロックのプログラムだけでシグナチャー出力の出力動作を規定することができることを意味する。したがって、本来の機器制御を行う第１データ処理ブロックとは別の第２データ巣折ブロックのプログラムによる出力動作が外部に直接影響を与えることはなく、マイクロコンピュータの設計概念が、本来の機器制御を行う第１データ処理ブロックだけを含むものと大きく変わることはなく、マイクロコンピュータの設計手法という点において優れている。
【００３２】
〔１０〕本発明の別の観点による半導体データ処理デバイス（図１７、図１８）は、相互に同一のデータ処理機能を有する第１データ処理ブロック（１００ａ）及び第２データ処理ブロック(１００ｂ)と、前記第１データ処理ブロック及び前記第２データ処理ブロックから出力される情報を同期的に比較する比較器（１０１）と、前記比較器の比較結果を外部に出力する出力回路（１０６）と、前記第２データ処理ブロックから出力される第１情報（１０２ｂ）に第１生成論理（１０４ｂ）による誤り検出符号を付加して第２情報（１０５ｂ）を前記第１データ処理ブロック及び第２データ処理ブロックに供給する第１符号化回路（１０３ｂ）と、前記第１データ処理ブロックから出力される第３情報（１０２ａ）に第２生成論理（１０４ａ）による誤り検出符号を付加して第４情報（１０５ａ）を前記第２データ処理ブロック及び第１データ処理ブロックに供給する第２符号化回路（１０３ａ）と、前記第１データ処理ブロックが、前記第２データ処理ブロックから供給された第２情報と前記第１データ処理ブロックから供給された第４情報とを外部に出力する第１外部インタフェース回路（１０６）と、を有する。前記第１データ処理ブロックは、前記第２データ処理ブロックが第１情報を生成して出力する動作（図１８のＳ２ｂ）に並行して、第１情報を生成してダミー出力するための第１ダミー動作（図１８のＳ２ａ）を行う。前記第２データ処理ブロックは、前記第１データ処理ブロックが第３情報を生成して出力する動作（図１８のＳ２’ａ）に並行して、第３情報を生成してダミー出力するための第２ダミー動作を行う（図１８のＳ２’ｂ）。前記第２データ処理ブロックは、前記第１データ処理ブロックが第１情報及び第３情報を出力する動作（図１８のＳ１０ａ）に並行して、第１情報及び第３情報をダミー出力するための第３ダミー動作（図１８のＳ１０ｂ）を行う。
【００３３】
〔１１〕項８乃至１０の何れかの半導体データ処理デバイスにおいて、前記符号化回路は、夫々のデータ処理ブロック毎に、誤り検出符号を生成するための生成条件を保持する符号化鍵と、前記符号化鍵を用いて前記情報の誤り検出符号を生成して付加する論理回路とを有する。
【００３４】
〔１２〕項１１の半導体データ処理デバイスにおいて、前記第１データ処理ブロック及び前記第２データ処理ブロックは同一のクロック信号によって同期動作される。
【００３５】
〔１３〕項１２の半導体データ処理デバイスにおいて、前記第１データ処理ブロック及び前記第２データ処理ブロックは相互に位相差のあるクロック信号を入力して同期動作され、前記比較器は、夫々の前記データ処理ブロックの出力に対して前記位相さを相殺する遅延回路を通した信号を比較対象とする。
【００３６】
〔１４〕項８乃至１０の何れかの半導体データ処理デバイスにおいて、前記第１データ処理ブロック及び前記第２データ処理ブロックはプログラムを実行するマイクロプロセッサである。
【００３７】
〔１５〕項８乃至１０の何れかの半導体データ処理デバイスにおいて、前記第１外部インタフェース回路はシリアル出力回路である。
【００３８】
〔１６〕項８乃至１０の何れかの半導体データ処理デバイスにおいて、前記第１データ処理ブロックは本来の制御用途のための主データ処理ブロックであり、前記第２データ処理ブロックは冗長データ処理ブロックである。主データ処理ブロックが本来の制御用途のための外部インタフェースに用いる第２外部インタフェースは出力動作用の回路に対する故障検出機能を有し、故障検出信号を外部に出力する。
【００３９】
〔１７〕本発明に係るデータ処理システムは、項１に記載の半導体データ処理デバイスと、前記半導体データ処理デバイスが制御対象とする制御対象回路と、前記制御対象回路の動作または動作停止を制御する制御信号を生成するロジック回路と、を有する。前記ロジック回路は、第１インタフェース回路から出力される第２情報と比較回路から出力される比較結果信号を入力し、前記第２情報の非正当性又は比較結果信号による比較不一致状態を判別したとき、前記制御対象回路を動作停止させる。これにより、データ処理システムにおけるデータ処理の信頼性を容易に向上させることができる。
【００４０】
〔１８〕本発明に係る別のデータ処理システムは、項８乃至１０のいずれかの半導体データ処理デバイスと、前記半導体データ処理デバイスが制御対象とする制御対象回路と、前記制御対象回路の動作または動作停止を制御する制御信号を生成するロジック回路と、を有する。前記ロジック回路は、第１インタフェース回路から出力される第２情報、第４情報及び比較回路から出力される比較結果信号を入力し、前記第２情報若しくは第４情報の非正当性又は比較結果信号による比較不一致状態を判別したとき、前記制御対象回路を動作停止させる。これにより、データ処理システムにおけるデータ処理の信頼性を容易に向上させることができる。
【００４１】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００４２】
図１は本発明に係る半導体データ処理デバイスの一例であるマイクロコンピュータの基本的な構成を示すブロック図である。
【００４３】
マイクロコンピュータ１０は単結晶シリコンのような１個の半導体基板に例えば相補型ＭＯＳ集積回路製造技術等によって構成され、特に制限されないが、第１プロセッサ（ＰＲＣＳＲＡ）１００ａと第２プロセッサ(ＰＲＣＳＲＢ)１００ｂを有する。第１プロセッサ１００ａは制御対象機器に対する本来の制御用途に用いるプロセッサである。１０９は本来の制御用途のための外部制御信号を総称する。外部制御信号１０９のインタフェース回路は図示を省略してある。第２プロセッサ１００ｂは、マイクロコンピュータの信頼性維持のために搭載された、第１プロセッサ１００ａに対する冗長プロセッサである。
【００４４】
第１プロセッサ１００ａと第２プロセッサ１００ｂは相互に同じハードウェアを有し同じプログラムを同期的に実行する。第１プロセッサ１００ａと第２プロセッサ１００ｂの具体的な回路構成についてはここでは図示を省略するが、例えば、プログラムを格納するプログラムメモリ、前記プログラムメモリから命令をフェッチして実行するＣＰＵ（中央処理装置）、ＣＰＵのワークメモリ、及びその他の周辺回路を備え、それらは内部アドレスバス、内部データバス及び内部コントロールバスに接続される。
【００４５】
第１プロセッサ１００ａ及び第２プロセッサ１００ｂの夫々の命令実行によって生成されるデータ、アドレス信号、コントロール情報は、夫々のプロセッサ１００ａ，１００ｂの内部アドレスバス、内部データバス及び内部コントロールバスに現れる。比較器（ＣＯＭＰ）１０１は、第１プロセッサ１００ａと第２プロセッサ１００ｂのデータ処理によって内部で生成されるデータバス信号、アドレスバス信号、及びコントロールバス信号を、相互に対応するもの同士で比較する。比較動作はプロセッサ１００ａ，１００の動作サイクル単位で毎サイクル行ってもよいし、適当な複数サイクル単位で行ってもよい。比較結果は比較結果信号３２として外部に出力される。比較結果信号３２をマイクロコンピュータの外部に出力するインタフェース回路としての出力回路は図示を省略してある。
【００４６】
また、第１プロセッサ１００ａはその動作プログラムにしたがって、複数の命令実行サイクル毎にメッセージを生成して出力する処理を実行する。第１プロセッサ１００ａが生成するメッセージ１０２ａは排他的論理和などの論理回路１０３ａにより第１鍵（ＥＮＣＤＫＡ）１０４ａを用いて符号化される。同様に、第２プロセッサ１００ｂはその動作プログラムにしたがって、上記と同じ複数の命令実行サイクル毎にメッセージを生成して出力する処理を実行する。第２プロセッサ１００ｂが生成するメッセージ１０２ｂは排他的論理和などの論理回路１０３ｂにより第２鍵（ＥＮＣＤＫＢ）１０４ｂを用いて符号化される。第１プロセッサ１００ａによる符号化処理は、例えばメッセージ１０２ａに誤り検出コードを付加して符号化する処理であり、例えば第１鍵１０４ａは誤り検出コードの生成多項式などとされる。第２プロセッサ１００ｂによる符号化処理は、上記と同じくメッセージ１０２ｂに誤り検出コードを付加して符号化する処理であり、例えば第１鍵１０４ｂは誤り検出コードの生成多項式などとされる。符号化データの復号、すなわち誤り検出処理には、その生成多項式に対応する復号論理を用いる。このとき、第１鍵１０４ａと第２鍵１０４ｂは異なるから、夫々の符号化データの復号に用いる復号論理は相違されることになり、この点において、それぞれ符号化された符号化データ１０５ａ，１０５ｂが何れのプロセッサから出力されたメッセージに対応するかは、それに用いる復号論理の相違として区別可能である。したがって符号化データ１０５ａ，１０５ｂをシグナチャーとも称する。シグナチャー１０５ａ，１０５ｂは出力インタフェース(Ｉ／Ｆ)１０６に接続する出力端子１０６０からシグナチャー出力１０７として出力される。誤り訂正符号を付加することによりインタフェース回路１０６の故障による不所望なデータ変化によって双方のプロセッサのシグナチャーから差異が消失するというような事態にも対処できるようになる。
【００４７】
出力端子１０６０の端子数を削減するにはシグナチャー出力をシリアル出力とすることが好ましい。シグナチャー出力１０７はプロセッサ１００ａによる本来の制御対象に出力すべき信号ではなく、システムの信頼性維持のための冗長的な信号だからである。シリアル出力を採用する場合には、そのときのシグナチャー出力１０７が何れのプロセッサの出力によるものであるかを認識できるように交互出力の順番が予め決められており、外部ではこの規則に則っとればシグナチャー出力１０７が何れのプロセッサの出力に起因するものであるかを認識することができる。
【００４８】
以上説明したように、第１プロセッサ１００ａのメッセージ出力１０２ａと第２プロセッサ１００ｂのメッセージ出力１０２ｂはそれぞれ異なる固有の第１鍵１０４ａ、第２鍵１０４ｂ符号化演算されるため、共通の外部端子１０６０を介して出力されても、外部では何れのプロセッサ１００ａまたは１００ｂの出力メッセージに基づくシグネチャーであるかを識別でき、シグネチャーの正当性を保証することができる。
【００４９】
さらに、メッセージ出力１０２ａを第１鍵１０４ａで符号化する演算操作にはプロセッサ１００ａ外部のハードウェアである論理回路１０３ａを用い、メッセージ出力１０２ｂを第２鍵１０４ｂで符号化する演算操作にはプロセッサ１００ｂ外部のハードウェアである論理回路１０３ｂを用いるから、符号化のために第１プロセッサ１００ａと第２プロセッサ１００ｂに異なる動作をさせることを要しない。即ち、第１プロセッサ１００ａと第２プロセッサ１００ｂの動作プログラムを完全同一にすることができる。したがって、比較器１０１で第１プロセッサ１００ａと第２プロセッサ１００ｂの出力を常時比較することができる。
【００５０】
シグナチャー出力１０７シリアル出力とすることにより、マイクロコンピュータの外部端子であるピン数、配線を少なくして、マイクロコンピュータの小型化と低価格化に資することができる。
【００５１】
図２にはプロセッサ１００ａ，１００ｂを同じクロック信号ＣＬＫで同期動作させることを明示した例が示される。この場合、比較器１０１は第１プロセッサ１００ａの出力と第２プロセッサ１００ｂの出力を対応するもの同士でそのまま比較すればよい。比較タイミングを特に制御することを要しない。
【００５２】
図３にはプロセッサ１００ａと１００ｂとに供給するクロック信号の位相をずらすことを明示した例が示される。この場合、第１プロセッサ１００ａにはクロック信号ＣＬＫが供給され、第２プロセッサ１００ｂにはクロック信号ＣＬＫを遅延回路（ＤＬＹ）２１で遅延させたクロック信号が供給される。この場合には、比較器１０１による比較タイミングを制御することが必要になり、例えば、第１プロセッサ１００ａからの出力を遅延回路（ＤＬＹ）２２で遅延させて比較器１０１に供給する。遅延回路２１と遅延回路２２の遅延時間は等しい。第１プロセッサプロ１００ａと第２プロセッサ１００ｂの動作タイミングがずれることにより、電流ピークが抑制され、電気的ノイズによる誤動作防止に役立つ。
【００５３】
特に、両プロセッサを半クロック奇数倍の時間差を持って動作させれば、電気的ノイズにより冗長化した両プロセッサで同じ誤りが発生するのを防止し、誤り検出率を高め、動作の安全性を高めることが可能となる。例えば、図４に示すように遅延回路２１にインバータを用いてクロック信号ＣＬＫを１／２サイクル遅延させ、遅延回路２２は信号反転を行わずに１／２サイクル分だけ信号を伝播遅延させる。
【００５４】
尚、図１において第１プロセッサ１００ａと第２プロセッサ１００ｂの同期クロック信号を明示しないのは、図２及び図３のほかに、夫々が固有のクロック信号に同期動作する場合など、その他の同期動作の実現手法を採用することも可能であることを想定するためである。要は、比較器１０１の比較動作において対応する情報同士を比較すればよく、プロセッサ１００ａ，１００ｂの出力をＦＩＦＯバッファに一時的に蓄積し、双方にＦＩＦＯＩバッファのリードを同期的に行って比較動作を行ってもよい。
【００５５】
図５には本来の制御用途のための外部制御信号１０９のインタフェース回路に故障検出機能を付加したマイクロコンピュータの例が示される。
【００５６】
図５では通常の外部制御信号１０９のための出力インタフェース１０８とシグナチャー出力１０７のための出力インタフェース１０６を別に設け、出力インタフェース１０８には全部または所定の一部の信号に対する故障検出機能が備えられる。
【００５７】
一般に制御用のマイクロプロセッサでは通常の外部制御信号１０９として、単純なデジタル出力の他に、タイマ出力などがある。特にモータやソレノイドを制御する用途ではタイマ出力としてＰＷＭ（パルス幅変調）の信号を出力することが多い。これらのタイマ出力は高速で変化する信号であるため、これらに上記鍵と同様の鍵を用いて誤り訂正符合を付加して出力するのは不向きである。そこで、タイマ出力などに代表される通常の外部制御信号１０９のための出力インタフェース１０８と、プロセッサの正常動作を保障するシグナチャー出力１０７のための出力インタフェース１０６とを別に設ける。
【００５８】
出力インタフェース１０８は故障検出機能（ＦＬＴＤＴＣ）を有し、この故障検出機能は、外部インタフェース機能に対する故障検出機能であり、故障を検出することによって故障検出信号３７を出力する。この故障検出機能のそれ自体の具体例については詳細を後述する。
【００５９】
図６には図５のマイクロコンピュータを用いたデータ処理システムの一例が示される。５０はマイクロコンピュータ１０の本来の制御対象（ＣＴＲＧＴ）である。駆動回路（ＩＦＤＲＶ）４０は外部制御信号１０９を受けて制御対象５０の制御端子を駆動したりする回路である。駆動回路４０にはパワースイッチ４１を介して動作電源ＰＷＲが供給され、駆動回路４０の出力はトランスファスイッチ４２を介して制御対象５０に供給される。前記パワースイッチ４１とトランスファスイッチ４２は、例えば制御信号３３のハイレベルによってオン状態、ローレベルによってオフ状態にされる。
【００６０】
前記制御信号３３を生成するために例えば照合回路（ＣＨＣＫ）３０とアンドゲート３５を備える。照合回路３０はシグナチャー出力１０７の正当性の判定を行い、不当であることを判別したときローレベルをアンドゲート３５に出力する。出力インタフェース１０８は故障を検出することによって故障検出信号３７をローレベルに変化させてアンドゲート３５に出力する。比較器１０１２は比較不一致を判別したとき比較結果信号３２をローレベルに変化させてアンドゲート３５に出力する。これにより、照合回路３０による照合不一致、インタフェース回路１０８における故障検出、比較器１０１による比較不一致のいずれかが発生したときドライバ４０の出力を切断し、ドライバ４０の電源を遮断することで制御対象５０に対する誤った制御の発生を抑制することができ、制御システムの安全性を堅固に保障することができる。
【００６１】
ここでは制御を停止する場合を説明したが、信号３３によってマイクロコンピュータ１０を別のマイクロコンピュータに切換えたりすることも可能である。また、信号３３の生成には照合回路３０による照合不一致、インタフェース回路１０８における故障検出、比較器１０１による比較不一致の全てを参照することを要しない。少なくとも、照合回路３０による照合不一致と比較器１０１による比較不一致を参照すればよい。比較器１０１に故障を生じてプロセッサ１００ａ、１００ｂの故障が比較結果信号３２に反映されなくなってもシグナチャー出力１０７の正当性によってプロセッサ１００ａ、１００ｂの故障を外部で把握することができる。
【００６２】
特に図示はしないが、図６のデータそりシステムは、自動車のエンジン制御などのパワーとレイン系、自動車のブレーキ制御などのシャーシ系、その他自動車のボディー系などの各種自動車制御装置に適用することによって、そのシステムの信頼性向上に資することができる。自動車に限らず、鉄道、エレベータ等の設備機器、産業用機器などにも広く適用することができる。
【００６３】
図７には照合回路３０の具体例が示される。シグナチャー出力１０７は分離回路（ＤＩＶ）３００により第１プロセッサ１００ａと第２プロセッサ１００ｂ夫々のシグナチャーに分離される。第１プロセッサ１００ａのシグナチャーは論理回路３０１ａにより第１鍵３０２ａを用いて復号演算されて元のメッセージに復号される。第２プロセッサ１００ｂのシグナチャーは論理回路３０１ｂにより第２鍵３０２ｂを用いて復号演算されて元のメッセージに復号される。第１鍵３０２ａは第１鍵１０４ａに対応する復号用の多項式であり、第２鍵３０２ｂは第２鍵１０４ｂに対応する復号用の多項式である。
【００６４】
以上のようにして復号された双方プロセッサ１００ａ、１００ｂのメッセージは比較器（ＣＯＭＰ）３０３に入力されて比較され、その比較結果が照合結果３１として出力される。分離回路３００はシグナチャー１０７をその入力順に論理回路３０１ａ側と論理回路３０１ｂ側に振り分ければよい。要するに、シグナチャー出力１０７がシリアル伝送される場合には、分離回路３００では伝送される順番により両プロセッサのシグナチャーを分離すればよい。
【００６５】
図８、図９、図１０にはインタフェース回路１０８の具体例が示される。制御対象５０に供給される外部制御信号１０９のためのインタフェース回路１０８は信号に誤り訂正符号を付加しないから、前述の通り、その安全性を保障するためにインタフェース回路１０８は故障検出機能を備える。
【００６６】
図８においてインタフェース回路１０８は外部制御信号１０９の信号ビット毎に２重化されたレジスタ(ＲＥＧ)１０８０ａ，１０８０ｂとインタフェースバッファ（ＩＦＢＵＦ）１０８１ａ，１０８１ｂを有し、インタフェースバッファ１０８１ａの出力とインタフェースバッファ１０８１ｂの出力を比較器１０８２で比較して、比較結果信号３７を出力する。レジスタ１０８０ａ，１０８０ｂは第１プロセッサ１００ａにより出力データが書き込まれる。１１は外部制御信号１０９を出力する出力端子である。
【００６７】
図８の構成によれば、外部制御信号１０９のためのインタフェース回路１０８の故障を検出することができ、外部制御出力１０９が正常であることを保障することができる。
【００６８】
図９ではインタフェースバッファ１０８１ａの出力を一旦出力端子１１を介して出力し、出力端子１１’を介して再び入力して比較器１０８２でインタフェースバッファ１０８１ｂの出力と比較するように構成される。この構成によれば、出力端子１１と外部の接続手段（例えば、配線基板上のパッド）との接続不良も検出することができる。
【００６９】
図１０においては２重化したレジスタのうち、レジスタ１０８０ａは第１プロセッサ１００ａにより書き込み制御され、レジスタ１０８０ｂは第２プロセッサ１００ｂにより書き込み制御される。個の構成によれば、インタフェースバッファ１０８１ａの誤動作を比較器１０８２で検出できるだけでなく、第１プロセッサ１００ａの誤動作を、比較器１０１に加えて、比較器１０８２でも検出することができる。これによれば、第１プロセッサ１００ａの誤動作を比較器１０１と比較器１０８２によって二重に検出できるから、図６のような構成に適用されるとき、制御対象５０に対する制御の安全性を更に堅固に保障することが可能になる。
【００７０】
以上の説明では第１プロセッサ１００ａと第２プロセッサ１００ｂの夫々のメッセージ出力１０２ａ，１０２ｂに個別の鍵を用いてハードウェアで符号化する構成とした。以下においては、一方のプロセッサのメッセージ出力だけをハードウェアで符号化するようにして、ハードウェアの回路規模を縮小した構成について説明する。
【００７１】
図１１には一方の第２プロセッサ１００ｂのメッセージ出力１０２ｂ側だけに符号化のハードウェアを設けた構成が例示される。メッセージ出力１０２ｂは第２鍵１０４ｂを用いて論理回路１０３ｂで上記同様に符号化される。図１２には図１１の構成によって上記同様のシグナチャー出力１０７を生成するために用いるプロセッサのバッファレジスタ構成が例示される。第１プロセッサ１００ａは命令実行によって書き込み可能にされるバッファレジスタ１１０ａ，１１１ａを有し、一方のバッファレジスタ１１０ａの出力はインタフェース回路１０６に接続され、他方のバッファレジスタ１１１ａの出力はフローティングにされる。第２プロセッサ１００ｂは命令実行によって書き込み可能にされるバッファレジスタ１１０ｂ，１１１ｂを有し、一方のバッファレジスタ１１０ｂの出力はフローティングにされ、他方のバッファレジスタ１１１ｂの出力は論理回路１０３ｂに接続される。
【００７２】
図１３には図１１及び図１２の構成において第１プロセッサ１００ａと第２プロセッサ１００ｂのメッセージ出力に鍵を用いて符号化する処理手順が例示される。
【００７３】
最初のステップＳ１ａ、Ｓ１ｂでは両プロセッサ１００ａ，１０ｂではメッセージを作成する。ここで第１プロセッサ１００ａが作成したメッセージをｍ、第２プロセッサ１００ｂが作成したメッセージをｍ’と呼ぶことにする。両プロセッサ１００ａ，１００ｂが正常に動作しているときにはｍ＝ｍ’で、比較器１０１により両者の動作が一致していることが確認される。
【００７４】
次のステップＳ４ａ、Ｓ４ｂでは両プロセッサ１００ａ，１００ｂはメッセージに第１鍵を用いて符号化処理を行ってシグナチャーを作成する。この符号化処理は、両プロセッサ１００ａ，１００ｂが共に同じ第１鍵を用いてソフトウェアで実行する。このとき第１鍵も当然ソフトウェアで提供される。即ちプログラムに記述される。両プロセッサ１００ａ，１００ｂが作成したシグナチャーを夫々Ｓａ、Ｓｂａとする。このステップまで両プロセッサが正常に動作しているときにはＳａ＝Ｓｂａでで、比較器１０１により両者の動作が一致していることが確認される。
【００７５】
次のステップＳ１１ａ、Ｓ１１ｂでは両プロセッサ１００ａ，１００ｂはシグナチャーをレジスタ１１０ａ、１１０ｂに書き込む。但し、プロセッサＢ（１００ｂ）が書き込んだレジスタ１１０ｂは出力に関与しないダミーのレジスタで、第１プロセッサ１００ａが書き込んだシグナチャー１０５ａのみが出力インタフェース１０６に出力される。第２プロセッサ１００ｂがダミーのレジスタ１１０ｂにシグナチャーを書き込むのは両プロセッサ１００ａ，１００ｂのプログラム実行動作を一致させるためである。このステップまで両プロセッサが正常に動作しているときには比較器１０１により両者の動作が一致していることが確認される。
【００７６】
次のステップＳ１２ａ、Ｓ１２ｂでは両プロセッサ１００ａ，１００ｂはメッセージｍ，ｍ’をレジスタ１１１ａ、１１１ｂに書き込む。但し、第１プロセッサ１００ａが書き込んだレジスタ１１１ａは出力に関与しないダミーのレジスタで、第２プロセッサ１００ｂが書き込んだメッセージ１０２ｂのみがハードウェアにて第２鍵１０４ｂを用いて符号化され、出力インタフェース１０６に出力される。第１プロセッサ１００ａがダミーのレジスタ１１１ａに書き込むのは両プロセッサのプログラム実行動作を一致させるためである。このステップまで両プロセッサ１００ａ，１００ｂが正常に動作しているときには比較器１０１により両者の動作が一致していることが確認される。
【００７７】
尚、図１１の構成に対してインタフェース回路２０６から出力されるシグナチャー出力を図６と同様の照合回路３０で一致／不一致を検査する場合、両プロセッサ１００ａ，１００ｂはそのプログラムに従って毎回同じメッセージを生成するようにされなければならない。
【００７８】
図１４には第２プロセッサ１００ｂのメッセージ１０２ｂに第２鍵１０４ｂを付加して両プロセッサ１００ａ，１００ｂに出力するハードウェアを採用したマイクロコンピュータが例示される。第２プロセッサ１００ｂのメッセージ１０２ｂを符号化する第２鍵１０４ｂと論理回路１０３ｂをハードウェアで備える。この例においても図１１と同じく第１プロセッサ１００ａのメッセージに鍵を用いて符合化するハードウェアを必要としない。
【００７９】
図１５には図１４の構成によって上記同様のシグナチャー出力１０７を生成するために用いるプロセッサのバッファレジスタ構成が例示される。レジスタ１１１ａ、１１１ｂはメッセージを書き込むためのレジスタで、第２プロセッサ１００ｂが備えるレジスタ１１１ｂに書き込まれたメッセージは第２鍵１０４ｂを用いて論理回路１０３ｂで符号化され、シグナチャー１０５ｂとして両プロセッサ１００ａ，１００ｂのバッファレジスタ１１２ａ、１１２ｂに供給される。第１プロセッサ１００ａが備えるバッファレジスタ１１１ａは出力動作を伴わないダミーのレジスタで、両プロセッサのプログラム実行動作を一致させるためのものである。要するに、第２プロセッサ１００ｂがバッファレジスタ１１１ｂにメッセージを書き込むプログラム動作を行うとき、第１プロセッサ１００ａも同じくバッファレジスタ１１１ａにメッセージを書き込むプログラム動作を行う。
【００８０】
バッファレジスタ１１０ａ、１１０ｂはシグナチャーを書き込むためのレジスタで、第１プロセッサ１００ａが備えるバッファレジスタ１１０ａに書き込まれたシグナチャー１０５ａがインタフェース回路１０６を介してシグナチャー出力１０７として出力される。第２プロセッサ１００ｂが備えるレジスタ１１０ｂは出力動作を伴わないダミーのレジスタで、両プロセッサのプログラム動作を一致させるためのものである。
【００８１】
図１６には図１５の構成により第１プロセッサ１００ａと第２プロセッサ１００ｂがシグナチャーを生成して出力するための処理手順が例示される。
【００８２】
最初のステップＳ１ａ、Ｓ１ｂでは図１３同様に両プロセッサ１００ａ，１００ｂではメッセージを作成する。ここで第１プロセッサ１００ａが作成したメッセージをｍ、第２プロセッサ１００ｂが作成したメッセージをｍ’と呼ぶことにする。両プロセッサ１００ａ，１００ｂが正常に動作しているときにはｍ＝ｍ’で、比較器１０１により両者の動作が一致していることが確認される。
【００８３】
次のステップＳ２ａ、Ｓ２ｂでは両プロセッサ１００ａ，１００ｂは夫々バッファレジスタ１１１ａ、１１１ｂにメッセージを書き込む。このとき、第２プロセッサ１００ｂが備えるレジスタ１１１ｂに書き込まれたメッセージは第２鍵１０４ｂを用いて論理回路１０３ｂで符号化され、シグナチャー１０５ｂとして両プロセッサ１００ａ，１００ｂのバッファレジスタ１１２ａ、１１２ｂに出力される。
【００８４】
続いて、ステップＳ３ａ、Ｓ３ｂでは両プロセッサ１００ａ，１００ｂは夫々バッファレジスタ１１１ａ、１１１ｂを読み出す。ここで第１プロセッサ１００ａが読み出した内容をシグナチャーＳｂ、第２プロセッサ１００ｂが読み出した内容をシグナチャーＳｂ’とする。このステップまで両プロセッサ１００ａ，１００ｂが正常に動作しているときにはＳｂ＝Ｓｂ’で、比較器１０１により両者の動作が一致していることが確認される。
【００８５】
次のステップＳ４ａ、Ｓ４ｂでは両プロセッサ１００ａ，１００ｂは夫々ソフトウェアによってメッセージに鍵を用いて符合化するデータ処理を行なってシグナチャーを作成する。上記同様に、このときの鍵や符号化論理は夫々の動作プログラムによって規定され、その処理内容は同じとされる。これによって両プロセッサ１００ａ，１００ｂが作成したシグナチャーを夫々Ｓａ、Ｓｂａとする。このステップまで両プロセッサ１００ａ,１００ｂが正常に動作しているときにはＳａ＝Ｓｂａでで、比較器１０１により両者の動作が一致していることが確認される。
【００８６】
最後のステップＳ１０ａでは、第１プロセッサ１００ａはバッファレジスタ１１０ａにシグナチャーＳｂ，Ｓａを書き込み、第２プロセッサ１００ｂはバッファレジスタ１１０ｂにシグナチャーＳｂ’，Ｓｂａを書き込む処理を行ない、バッファレジスタ１１０ａに書き込まれた内容がインタフェース１０６を介してシグナチャー出力１０７として出力される。バッファレジスタ１１０ｂに書き込まれた内容は出力されない。
【００８７】
図１４及び図１５の構成では、外部へ出力されるシグナチャー出力１０７が本来の機器制御を行う第１プロセッサ１００ａのバッファレジスタ１１０ａの出力に限定される。これは、本来の機器制御を行う第１プロセッサ１００ａのプログラムだけでシグナチャー出力１０７の出力動作を規定することができることを意味する。図１や図１１などのように、信頼性保障のためのプロセッサ１００ｂのバッファレジスタの出力も直接に外部へ出力する構成では、本来の機器制御を行う第１プロセッサ１００ａとは別の第２プロセッサ１００ａのプログラムによる出力動作が外部に直接影響を与えることになり、マイクロコンピュータの設計概念が本来の機器制御を行う第１プロセッサだけを含むものと大きく変わってしまう。マイクロコンピュータの設計手法という点において図１４及び図１５の構成が優れている。
【００８８】
図１７には図１５の変形例として第１プロセッサ１００ａのメッセージ１０３ａにも第２鍵１０４ａを用いて符号化するハードウェアを備えるようにしたマイクロコンピュータの要部の構成が例示される。図１５に対して第１プロセッサ１００側に第１鍵(ＥＮＣＤＫＡ)１０４ａと論理回路１０３を追加し、第１プロセッサ１００ａにバッファレジスタ１１１ａ’，１１２ａを追加し、第２プロセッサ１００ｂにバッファレジスタ１１１ｂ’，１１２ｂを追加した。レジスタ１１１ａ’、１１１ｂ’はメッセージを書き込むためのレジスタで、第１プロセッサ１００ａが備えるレジスタ１１１ａ’に書き込まれたメッセージは第１鍵１０４ａを用いて論理回路１０３ａで符号化され、シグナチャー１０５ｂとして両プロセッサ１００ａ，１００ｂのバッファレジスタ１１２ａ’、１１２ｂ’に供給される。第２プロセッサ１００ｂが備えるバッファレジスタ１１１ｂ’は出力動作を伴わないダミーのレジスタで、両プロセッサのプログラム実行動作を一致させるためのものである。要するに、第１プロセッサ１００ａがバッファレジスタ１１１ａ’にメッセージを書き込むプログラム動作を行うとき、第２プロセッサ１００ｂも同じくバッファレジスタ１１１ｂ’にメッセージを書き込むプログラム動作を行う。その他の構成は図１５と同じであるからその詳細な説明は省略する。
【００８９】
図１８には図１７の構成により第１プロセッサ１００ａと第２プロセッサ１００ｂがシグナチャーを生成して出力する処理を用いた動作手順が示される。図１８では図１６のステップＳ４ａ、Ｓ４ｂに代えて、ステップＳ２’ａ、Ｓ２’ｂ、Ｓ３’ａ、Ｓ３’ｂを実行する。
【００９０】
ステップＳ２’ａ、Ｓ２’ｂでは両プロセッサ１００ａ，１００ｂは夫々バッファレジスタ１１１ａ、１１１ｂにメッセージを書き込む。このとき、第１プロセッサ１００ａが備えるレジスタ１１１ａに書き込まれたメッセージは論理回路１０３ａで第１鍵１０４ａを用いて符号化され、シグナチャー１０５ａとして両プロセッサ１００ａ，１００ｂのレジスタ１１２ａ、１１２ｂに出力される。
【００９１】
続いて、ステップＳ３’ａ、Ｓ３’ｂでは両プロセッサ１００ａ，１００ｂは夫々バッファレジスタ１１１ａ、１１１ｂを読み出す。ここで第１プロセッサ１００ａが読み出した内容をシグナチャーＳａ、第２プロセッサ１００ｂが読み出した内容をシグナチャーＳａ’とする。このステップまで両プロセッサ１００ａ，１００ｂが正常に動作しているときにはＳｂ＝Ｓａ’で、比較器１０１により両者の動作が一致していることが確認される。
【００９２】
図１９には本発明におけるシグナチャー出力と通常処理との関係に着目したフローチャートが例示される。第１プロセッサ１００ａと第２プロセッサ１００ｂでは通常処理（本来の制御対象に対する制御処理）２００の間に一定時間未満の間隔を置いてシグナチャー出力処理２０１、２０１’を実行する。照合機能３０では一定時間未満の間隔でシグナチャー出力処理２０１、２０１’により出力されたシグナチャーが一致していることにより、シグナチャー出力に関して第１プロセッサ１００ａと第２プロセッサ１００ｂが正常であることを確認することができる。
【００９３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００９４】
例えば、図６以降において同期クロックの図示が省略されているマイクロコンピュータにおける同期クロックは図１乃至図３の説明と同様である。データ処理ブロックの数は２個に限定されない。例えばマルチプロセッサシステムにおいて、個々のプロセッサに冗長用のプロセッサを配置する。データ処理ブロックは汎用プロセッサであってもよいし、特定の機器制御用途に特化された専用プロセッサであってもよい。データ処理ブロックはプロセッサおよびこのプロセッサによるデータ処理の一部を負担するアクセラレータであってもよい。また、データ処理ブロックにはＣＰＵのほかのコプロセッサ又は信号処理プロセッサを含む構成であってもよい。
【図面の簡単な説明】
【００９５】
【図１】図１は本発明に係る半導体データ処理デバイスの一例であるマイクロコンピュータの基本的な構成を示すブロック図である。
【図２】図２は双方のプロセッサを同じクロック信号で同期動作させることを明示した例を示すブロック図である。
【図３】図３は双方のプロセッサに供給するクロック信号の位相をずらすことを明示した例を示すブロック図である。
【図４】図４は図３において両プロセッサを半クロックの時間差を持って動作させる時の構成を例示するブロック図である。
【図５】図５は本来の制御用途のための外部制御信号のインタフェース回路に故障検出機能を付加したマイクロコンピュータを例示するブロック図である。
【図６】図６は図５のマイクロコンピュータを用いたデータ処理システムの一例を示すブロック図である。
【図７】図７は照合回路の具体例を示すブロック図である。
【図８】図８は図５の故障検出機能を備えたインタフェース回路の具体例を示すブロック図である。
【図９】図９は図５の故障検出機能を備えたインタフェース回路の別の具体例を示すブロック図である。
【図１０】図１０は図５の故障検出機能を備えたインタフェース回路の更に別の具体例を示すブロック図である。
【図１１】図１１は一方の第２プロセッサのメッセージ出力側だけに符号化のハードウェアを設けた構成を例示するブロック図である。
【図１２】図１２は図１１の構成によってシグナチャー出力１０７を生成するために用いるプロセッサのバッファレジスタ構成を例示するブロック図である。
【図１３】図１３は図１１及び図１２の構成において双方のプロセッサのメッセージ出力に鍵を用いて符号化する処理手順を例示するフローチャートである。
【図１４】図１４は第２プロセッサのメッセージに第２鍵を付加して第１及び第２プロセッサに出力するハードウェアを採用したマイクロコンピュータを例示するブロック図である。
【図１５】図１５は図１４の構成によってシグナチャー出力を生成するために用いるプロセッサのバッファレジスタ構成を例示するブロック図である。
【図１６】図１６は図１５の構成により第１プロセッサと第２プロセッサがシグナチャーを生成して出力するための処理手順を例示するフローチャートである。
【図１７】図１７は図１５の変形例として第１プロセッサのメッセージにも第２鍵を用いて符号化するハードウェアを備えるようにしたマイクロコンピュータの要部の構成を例示するブロック図である。
【図１８】図１８は図１７の構成により第１プロセッサと第２プロセッサがシグナチャーを生成して出力する処理を用いた動作手順を示すフローチャートである。
【図１９】図１９はシグナチャー出力と通常処理との関係に着目したフローチャートである。
【符号の説明】
【００９６】
１０  マイクロコンピュータ
１００ａ  第１プロセッサ（ＰＲＣＳＲＡ）
１００ｂ  第２プロセッサ(ＰＲＣＳＲＢ)
１０９  本来の制御用途のための外部制御信号
１０１  比較器（ＣＯＭＰ）
３２  比較結果信号
１０２ａ，１０２ｂ  メッセージ
１０３ａ  論理回路
１０４ａ  第１鍵（ＥＮＣＤＫＡ）
１０３ｂ  論理回路
１０４ｂ  第２鍵（ＥＮＣＤＫＢ）
１０５ａ，１０５ｂ  符号化データ（シグナチャー）
１０６  出力インタフェース(Ｉ／Ｆ)
１０６０  出力端子
１０７  シグナチャー出力
ＣＬＫ  クロック信号
２１、２２  遅延回路（ＤＬＹ）
１０８  出力インタフェース
３７  故障検出信号
５０  マイクロコンピュータ１０の本来の制御対象（ＣＴＲＧＴ）
４０  駆動回路（ＩＦＤＲＶ）
４１  パワースイッチ
４２  トランスファスイッチ
３３  制御信号
３０  照合回路（ＣＨＣＫ）
３５  アンドゲート
１０８０ａ，１０８０ｂ  レジスタ(ＲＥＧ)
１０８１ａ，１０８１ｂ  インタフェースバッファ（ＩＦＢＵＦ）
１０８２  比較器
１１０ａ，１１１ａ  バッファレジスタ
１１０ｂ，１１１ｂ  バッファレジスタ
１１２ａ、１１２ｂ  バッファレジスタ
【図１】
2010160712.tif 000003
【図２】
2010160712.tif 000004
【図３】
2010160712.tif 000005
【図４】
2010160712.tif 000006
【図５】
2010160712.tif 000007
【図６】
2010160712.tif 000008
【図７】
2010160712.tif 000009
【図８】
2010160712.tif 000010
【図９】
2010160712.tif 000011
【図１０】
2010160712.tif 000012
【図１１】
2010160712.tif 000013
【図１２】
2010160712.tif 000014
【図１３】
2010160712.tif 000015
【図１４】
2010160712.tif 000016
【図１５】
2010160712.tif 000017
【図１６】
2010160712.tif 000018
【図１７】
2010160712.tif 000019
【図１８】
2010160712.tif 000020
【図１９】
2010160712.tif 000021