(57)【特許請求の範囲】
【請求項１】
第１のクロック信号に同期して動作する第１のデータ処理ユニットと、
前記第１のデータ処理ユニットの制御に基づいて前記第１のクロック信号に同期して動作する回路ユニットと、
前記第１のクロック信号と同一周期で位相差のある第２のクロック信号に同期して前記第１のデータ処理ユニットと同じデータ処理を行なう第２のデータ処理ユニットと、
前記第１のデータ処理ユニットから前記回路ユニットに出力される第１の信号を保持する複数のラッチ回路を備えた第１のインタフェース回路と、
前記第１のデータ処理ユニットによる前記第１の信号出力に対応して前記第２のデータ処理ユニットから出力される第２の信号と前記第１のインタフェース回路が保持する信号とを前記第２のクロック信号に同期して比較する比較器と、
前記回路ユニットから前記第１のデータ処理ユニットに供給される第３の信号を保持して前記第２データ処理ユニットに出力する複数のラッチ回路を備えた第２のインタフェース回路と、を含み、
前記第１及び第２のインタフェース回路が備える複数のラッチ回路にはラッチタイミングを規定するのに前記第１のクロック信号を使用するものと前記第２のクロック信号を使用するものとが混在される、マイクロコントローラ。
【請求項２】
前記第１及び第２のインタフェース回路が備える複数のラッチ回路には、ラッチタイミングを規定するのに前記第１のクロック信号に対して前記第２のクロック信号よりも大きな位相差のある第３のクロック信号を使用するものが更に混在される、請求項１記載のマイクロコントローラ。
【請求項３】
前記第１のクロック信号と前記第２のクロック信号との位相差が１８０度である、請求項１記載のマイクロコントローラ。
【請求項４】
前記第１のクロック信号と第２のクロック信号の位相差が１８０度であり、第１のクロック信号と第３のクロックの位相差が１９０度から３５０度の範囲にある、請求項３記載のマイクロコントローラ。
【請求項５】
第１のクロックと第３のクロック信号の位相差が２７０度である、請求項４記載のマイクロコントローラ。
【請求項６】
前記第１の信号は前記第１のデータ処理ユニットがバスに出力するコマンド、アドレス及びライトデータであり、
前記第２の信号は前記第２のデータ処理ユニットが出力するコマンド、アドレス及びライトデータであり、
前記第３の信号は前記前記第１のデータ処理ユニットが前記バスに出力するコマンド及びアドレスに従ってメモリから前記バスに出力されるリードデータ及び命令である、請求項２記載のマイクロコントローラ。
【請求項７】
前記第３の信号は前記第１のデータ処理ユニットが出力する制御データにしたがって動作する周辺回路から第１のデータ処理ユニット及び第２のデータ処理ユニットに出力されるデータである、請求項６記載のマイクロコントローラ。
【請求項８】
制御回路、前記制御回路に出力が接続されたセンサ、及び前記制御回路によって動作が制御されるアクチェータを有し、自動車のパワートレイン系を制御するための制御システムであって、
前記制御回路は、第１のクロック信号に同期して動作する第１のデータ処理ユニットと、
前記第１のデータ処理ユニットの制御に基づいて前記第１のクロック信号に同期して動作する回路ユニットと、
前記第１のクロック信号と同一周期で位相差のある第２のクロック信号に同期して前記第１のデータ処理ユニットと同じデータ処理を行なう第２のデータ処理ユニットと、
前記第１のデータ処理ユニットから前記回路ユニットに出力される第１の信号を保持する複数のラッチ回路を備えた第１のインタフェース回路と、
前記第１のデータ処理ユニットによる前記第１の信号出力に対応して前記第２のデータ処理ユニットから出力される第２の信号と前記第１のインタフェース回路が保持する信号とを前記第２のクロック信号に同期して比較する比較器と、
前記回路ユニットから前記第１のデータ処理ユニットに供給される第３の信号を保持して前記第２データ処理ユニットに出力する複数のラッチ回路を備えた第２のインタフェース回路と、を含み、
前記第１及び第２のインタフェース回路が備える複数のラッチ回路にはラッチタイミングを規定するのに前記第１のクロック信号を使用するものと前記第２のクロック信号を使用するものとが混在される、制御システム。
【請求項９】
前記第１及び第２のインタフェース回路が備える複数のラッチ回路には、ラッチタイミングを規定するのに前記第１のクロック信号に対して前記第２のクロック信号よりも大きな位相差のある第３のクロック信号を使用するものが更に混在される、請求項８記載の制御システム。
【請求項１０】
コンピュータ装置を用いて請求項１記載のマイクロコントローラの論理記述からその回路記述情報を生成する設計方法であって、前記夫々のラッチ回路のラッチクロックとして前記第１のクロック信号又は第２のクロック信号の何れを用いるかを指定するクロック候補データを論理記述データと共にコンピュータ装置に入力して回路記述情報を生成し、生成された回路記述情報を用いたタイミングチェックによりクロック候補の適否を判定する、マイクロコントローラの設計方法。
【請求項１１】
前記クロック候補の適否の判定結果に基づいて、不適当なクロック候補を適当なクロック候補に代えるように回路記述情報を修正する、請求項１０記載のマイクロコントローラの設計方法。
【請求項１２】
コンピュータ装置を用いて請求項２記載のマイクロコントローラの論理記述からその回路記述情報を生成する設計方法であって、前記夫々のラッチ回路のラッチタイミングを規定するのに前記第１のクロック信号、第２のクロック信号又は第３のクロック信号の何れを用いるかを指定するクロック候補データを論理記述データと共にコンピュータ装置に入力して回路記述情報を生成し、生成された回路記述情報を用いたタイミングチェックによりクロック候補の適否を判定する、マイクロコントローラの設計方法。
【請求項１３】
前記クロック候補の適否の判定結果に基づいて、不適当なクロック候補を適当なクロック候補に代えるように回路記述情報を修正する、請求項１２記載のマイクロコントローラの設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一方を制御用とし他方を比較用とする同一機能を有する一対のデータ処理ユニットを備えたマイクロコントローラに係り、例えば自動車の制御システムに適用して有効な技術に関する。
【背景技術】
【０００２】
マイクロコントローラ（以下単に「マイコン」とも称する）は、家電製品、ＡＶ機器、携帯電話、自動車、産業機械等の機器に組み込まれ、メモリに記憶されているプログラムにしたがって処理を行なうことで、それぞれの機器の制御を行なう半導体集積回路である。
【０００３】
自動車では、制御装置の故障が事故につながる可能性があるため、マイコンを含む部品に高い信頼性が求められるとともに、故障が発生した場合にはこれを検出して自動車が危険な状態にならないように安全機能を働かせるように設計されている。マイコンはセンサやアクチュエータの診断を行ってこれらの故障を検出するだけでなく、マイコン自身の故障も検出する必要がある。
【０００４】
マイコンの故障検出には様々な方法があるが、例えばデータ処理ユニットとしてのＣＰＵ（Central Processing Unit）を二重化して同一の処理を行わせ、バスの値を常時比較する技術がしばしば用いられている。特許文献１には、マスタＣＰＵと比較用ＣＰＵが同一の処理を同時に実行し、それぞれの結果を比較回路で比較する方法が示されている。特許文献２には、比較用ＣＰＵがマスタＣＰＵより０．５＋ｎ（ｎは０以上の整数）サイクル遅れて処理を行い、マスタＣＰＵの結果を０．５＋ｎサイクル遅らせたものと比較用ＣＰＵの結果とを比較器で比較する技術が示されている。
【０００５】
【特許文献１】Ｆａｕｌｔ Ｔｏｌｅｒａｎｃｅ Ａｃｈｉｅｖｅｄ ｉｎ ＶＬＳＩ，ＩＥＥＥ ＭＩＣＲＯ Ｄｅｃｅｍｂｅｒ １９８４
【特許文献２】特開平１０−１１３０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の技術のうち、マスタＣＰＵと比較用ＣＰＵが同一の処理を同時に実行する方式は、クロックの立ち上がり後に変化する信号の数がＣＰＵを二重化しない場合に対して２倍以上になるため、電源ノイズのピーク値が大きくなり、この影響を受けて信号の値が不正になるなど故障が発生しやすくなる。これに対し、特許文献２の方式は、２つのＣＰＵのクロックを０．５サイクルずらしているため、それぞれのＣＰＵにおける信号変化が０．５サイクルずらされ、電源ノイズのピークが１サイクル内の２箇所に分れ、その値は半減する。
【０００７】
しかしながら、２つのＣＰＵのクロックを０．５サイクルずらして動作させると共に、２つのＣＰＵの出力の位相を合わせて比較可能にするために、比較用ＣＰＵの入力信号とマスタＣＰＵから比較器への信号は夫々比較用ＣＰＵのクロックで変化するラッチ回路で一度保持した後に、比較用ＣＰＵと比較器に入力している。このため、夫々のラッチ回路へ供給される入信号はマスタＣＰＵのクロックの０．５サイクルで転送が完了される必要があり、動作周波数に厳しい制約を受け、マイクロコントローラの動作周波数を上げ難い、という新たな問題が生じていた。
【０００８】
本発明の目的は、一方を制御用とし他方を比較用とする同一機能を有する一対のデータ処理ユニットのノイズピークを抑えると共に、高速化への対応が容易なマイクロコントローラを提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、同じ機能を持つ２個のデータ処理ユニットの一方をマスタとし、他方を比較用として備え、回路ユニットの制御をマスタのデータ処理ユニットで行い、マスタのデータ処理ユニットと回路ユニットは第１のクロック信号に同期動作させ、第２のデータ処理ユニットは第１のクロック信号と同一周期で位相の異なる第２クロック信号に同期動作させ、双方のデータ処理ユニットによる処理結果を比較回路で比較することによってマスタのデータ処理ユニットの故障若しくは外乱による動作異常を検出可能にする。回路ユニットから比較用のデータ処理ユニットへの信号経路と、マスタのデータ処理ユニットから比較器への信号経路との夫々にラッチ回路を配置し、複数のラッチ回路のラッチタイミングを規定するクロック信号（単にラッチクロックとも称する）にはその入力信号に応じて第１のクロック信号と第２にクロック信号の双方を採用する。ラッチクロックに前記第２のクロック信号を用いるラッチ回路の入力信号は前記第１のクロック信号と前記第２のクロック信号との位相差内での転送に間に合う信号とされる。
【００１２】
前記第１のクロック信号と前記第２のクロック信号との位相差内での転送に間に合う信号が入力されるラッチ回路にだけ第２のクロック信号をラッチクロックに用いるから、それよりも転送タイミングの遅い信号のラッチには第１のクロック信号を用いればよく、クロック信号の周波数を低くすることを要しない。相互に位相の異なるクロック信号によってマスタと比較用のデータ処理ユニットを動作させるから、同じ位相のクロック信号を用いる場合に比べて、その電源系ノイズのピークを抑えることができ、しかもマスタと比較用のデータ処理ユニットがともに同じ故障を生じた場合にもその異常を検出することができる。
【発明の効果】
【００１３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１４】
すなわち、一方を制御用とし他方を比較用とする同一機能を有する一対のデータ処理ユニットのノイズピークを抑えることができると共に、動作周波数に厳しい制約を受けず、高速化への対応が容易なマイクロコントローラの実現が可能になる。
【発明を実施するための最良の形態】
【００１５】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕本発明に一実施の形態に係るマイクロコントローラは、第１のクロック信号（５０）に同期して動作する第１のデータ処理ユニット（１）と、前記第１のデータ処理ユニットの制御に基づいて前記第１のクロック信号に同期して動作する回路ユニット（２）と、前記第１のクロック信号と同一周期で位相差のある第２のクロック信号（５１）に同期して前記第１のデータ処理ユニットと同じデータ処理を行なう第２のデータ処理ユニット（３）とを備える。さらに、前記第１のデータ処理ユニットから前記回路ユニットに出力される第１の信号（６０１）を保持する複数のラッチ回路を備えた第１のインタフェース回路（７）と、前記第１のデータ処理ユニットによる前記第１の信号出力に対応して前記第２のデータ処理ユニットから出力される第２の信号（３０）と前記第１のインタフェース回路が保持する信号とを前記第２のクロック信号に同期して比較する比較器（４）と、前記回路ユニットから前記第１のデータ処理ユニットに供給される第３の信号（６１１，２１）を保持して前記第２データ処理ユニットに出力する複数のラッチ回路を備えた第２のインタフェース回路（８，９）と、を有する。前記第１及び第２のインタフェース回路が備える複数のラッチ回路（ＦＦ）にはラッチタイミングを規定するのに前記第１のクロック信号を使用するものと前記第２のクロック信号を使用するものとが混在される。
【００１７】
前記第１のクロック信号と前記第２のクロック信号との位相差内での転送に間に合う信号が入力されるラッチ回路にだけ第２のクロック信号をラッチクロックに用いるから、それよりも転送タイミングの遅い信号のラッチには第１のクロック信号を用いればよく、クロック信号の周波数を低くすることを要しない。更に、動作周波数を上げる場合にも、一部のラッチ回路のラッチクロックを第２のクロック信号から第１のクロック信号に変えるという簡単な設計変更によって高速化へ対応が可能になる。また、相互に位相の異なるクロック信号によって双方のデータ処理ユニットを動作させるから、同じ位相のクロック信号を用いる場合に比べて、その電源系ノイズのピークを抑えることができ、しかも双方のデータ処理ユニットが共に同じ故障を生じた場合にもその異常を検出することができる。
【００１８】
〔２〕項１のマイクロコントローラにおいて、前記第１及び第２のインタフェース回路が備える複数のラッチ回路には、ラッチタイミングを規定するのに前記第１のクロック信号に対して前記第２のクロック信号よりも大きな位相差のある第３のクロック信号（５２）を使用するものを更に混在させることも可能である。第２のクロック信号をラッチクロックに用いるラッチ回路には回路ユニットから第１クロック信号と第２クロック信号の位相差内で入力データが転送されることが必要であり、当該ラッチ回路の出力データは第２クロック信号の１サイクル内で第２のデータ処理ユニットに転送されればよい。一方、第１クロック信号をラッチクロックに用いるラッチ回路には回路ユニットから第１クロック信号の１サイクル内で入力データが転送されればよいが、当該ラッチ回路の出力データは第２クロック信号と第１クロック信号との位相差内で第２データ処理ユニットに転送されることが必要になる。第３クロック信号をラッチクロックに用いるラッチ回路には、回路ユニットから第１クロック信号と第３クロック信号の位相差内で入力データが転送されればよく、当該ラッチ回路の出力データは第３クロック信号と第２クロック信号の位相差内で第２のデータ処理ユニットに転送されればよい。ラッチ回路の入力側の転送条件と出力側の転送条件は、第１のクロック信号をラッチクロックに用いた場合と第２のクロック信号をラッチクロックに用いた場合では相互に逆の関係になり、入力側又は出力側のいずれか一方の転送条件の方が厳しくなっている。第３のクロック信号をラッチタイミングに用いた場合には入力側と出力側の転送条件の差が小さくなる。したがって、第１のクロック信号をラッチタイミングに用いた時の転送条件と第２のクロック信号をラッチタイミングに用いた時の転送条件との何れも満足できないとき、第３のクロック信号をラッチタイミングに用いることによってその転送条件を満足できる場合がある。これにより、動作速度の高速化の要請に対して融通性が増す。
【００１９】
〔３〕項１のマイクロコントローラにおいて、例えば前記第１のクロック信号と前記第２のクロック信号との位相差が１８０度である。この場合、第１のクロック信号によってタイミング制御されるラッチ回路の入力側の転送サイクルは第１のクロック信号の１サイクル、出力側の転送サイクルは第２のクロック信号の０．５サイクルに相当する。第２のクロック信号によってタイミング制御されるラッチ回路の入力側の転送サイクルは第１のクロック信号の０．５サイクル、出力側の転送サイクルは第２のクロック信号の１サイクルに相当する。
【００２０】
〔４〕項３のマイクロコントローラにおいて、例えば前記第１のクロック信号と第２のクロック信号の位相差が１８０度であり、第１のクロック信号と第３のクロックの位相差が１９０度から３５０度の範囲にある。
【００２１】
〔５〕項３のマイクロコントローラにおいて、例えば第１のクロックと第３のクロック信号の位相差が２７０度である。この場合、第１のクロック信号によってタイミング制御されるラッチ回路の入力側の転送サイクルは第１のクロック信号の１サイクル、出力側の転送サイクルは第２のクロック信号の０．５サイクルに相当する。第２のクロック信号によってタイミング制御されるラッチ回路の入力側の転送サイクルは第１のクロック信号の０．５サイクル、出力側の転送サイクルは第２のクロック信号の１サイクルに相当する。第３のクロック信号によってタイミング制御されるラッチ回路の入力側の転送サイクルは第１のクロック信号の０．７５サイクル、出力側の転送サイクルは第２のクロック信号の０．７５サイクルに相当する。
【００２２】
〔６〕項２のマイクロコントローラにおいて、例えば前記第１の信号は前記第１のデータ処理ユニットがバスに出力するコマンド、アドレス及びライトデータである。前記第２の信号は前記第２のデータ処理ユニットが出力するコマンド、アドレス及びライトデータである。前記第３の信号は前記前記第１のデータ処理ユニットが前記バスに出力するコマンド及びアドレスに従ってメモリから前記バスに出力されるリードデータ及び命令である。
【００２３】
〔７〕項６のマイクロコントローラにおいて、前記第３の信号は前記第１のデータ処理ユニットが出力する制御データにしたがって動作する周辺回路から第１のデータ処理ユニット及び第２のデータ処理ユニットに出力されるデータである。
【００２４】
〔８〕本発明に一実施の形態に係る制御システムは、制御回路（１４００）、前記制御回路に出力が接続されたセンサ（１１００，１２００，１２０１，１３００）、及び前記制御回路によって動作が制御されるアクチェータ（１６００）を有し、自動車のパワートレイン系を制御する。前記制御回路は、第１のクロック信号に同期して動作する第１のデータ処理ユニットと、前記第１のデータ処理ユニットの制御に基づいて前記第１のクロック信号に同期して動作する回路ユニットと、前記第１のクロック信号と同一周期で位相差のある第２のクロック信号に同期して前記第１のデータ処理ユニットと同じデータ処理を行なう第２のデータ処理ユニットとを有する。更に、前記第１のデータ処理ユニットから前記回路ユニットに出力される第１の信号を保持する複数のラッチ回路を備えた第１のインタフェース回路と、前記第１のデータ処理ユニットによる前記第１の信号出力に対応して前記第２のデータ処理ユニットから出力される第２の信号と前記第１のインタフェース回路が保持する信号とを前記第２のクロック信号に同期して比較する比較器と、前記回路ユニットから前記第１のデータ処理ユニットに供給される第３の信号を保持して前記第２データ処理ユニットに出力する複数のラッチ回路を備えた第２のインタフェース回路とを備える。前記第１及び第２のインタフェース回路が備える複数のラッチ回路にはラッチタイミングを規定するのに前記第１のクロック信号を使用するものと前記第２のクロック信号を使用するものとが混在される。
【００２５】
〔９〕項８の制御システムにおいて、例えば、前記第１及び第２のインタフェース回路が備える複数のラッチ回路には、前記第１のクロック信号に対して前記第２のクロック信号よりも大きな位相差のある第３のクロック信号をラッチ動作に使用するものが更に混在される。
【００２６】
〔１０〕本発明に係るマイクロコントローラの設計方法はコンピュータ装置を用いて項１のマイクロコントローラの論理記述（２０００）からその回路記述情報（２２００）を生成する設計方法であり、前記夫々のラッチ回路のラッチクロックとして前記第１のクロック信号又は第２のクロック信号の何れを用いるかを指定するクロック候補データ（２００３）を論理記述データと共にコンピュータ装置（２１００，２３００）に入力して回路記述情報を生成する処理と、生成された回路記述情報を用いたタイミングチェックによりクロック候補の適否を判定する処理とを行う。これにより、ラッチ回路に対するラッチクロックの割り当てを容易に最適化することが出来る。
【００２７】
〔１１〕項１０のマイクロコントローラの設計方法は、例えば前記クロック候補の適否の判定結果に基づいて、不適当なクロック候補を適当なクロック候補に代えるように回路記述情報を修正する処理を更に含む。これにより、ラッチ回路に対するラッチクロックの割り当てを最適化した回路記述情報を容易に得ることができる。
【００２８】
〔１２〕本発明に係るマイクロコントローラの別の設計方法はコンピュータ装置を用いて項２のマイクロコントローラの論理記述からその回路記述情報を生成する設計方法であり、前記夫々のラッチ回路のラッチクロックに前記第１のクロック信号、第２のクロック信号又は第３のクロック信号の何れを用いるかを指定するクロック候補データを論理記述データと共にコンピュータ装置に入力して回路記述情報を生成する処理と、生成された回路記述情報を用いたタイミングチェックによりクロック候補の適否を判定する処理とを行う。
【００２９】
〔１３〕項１２のマイクロコントローラの設計方法は、例えば前記クロック候補の適否の判定結果に基づいて、不適当なクロック候補を適当なクロック候補に代えるように回路記述情報を修正する処理を更に含む。
【００３０】
２．実施の形態の詳細
実施の形態について更に詳述する。以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。なお、発明を実施するための最良の形態を説明するための全図において、同一の機能を有する部材には同一の符号を付し、その繰り返しの説明は省略する。
【００３１】
図１には本発明に係るマイクロコントローラＭＣＵの一例がブロックダイヤグラムによって示される。１は第1のデータ処理ユニットの一例であるＣＰＵ（中央処理装置）であり、命令をフェッチし、フェッチした命令を解読してデータ転送や演算などの処理を実行する。２はＣＰＵ１によって制御される回路ユニットを総称する。回路ユニット２には、ＲＡＭ、ＲＯＭ、ＤＭＡコントローラ等のように内部バスを介して接続される回路部分（以下単にバス接続回路部２Ａ）、割込みコントローラやその他のロジック回路のように専用信号線を介して接続され回路部分（以下単に個別接続回路部２Ｂとも称する）を含む。
【００３２】
ＣＰＵ１はバス６０、６１を介して回路ユニット２のバス接続回路部２Ａをアクセスする。バス６０はコマンド、アドレス、ライトデータ用であり、バス６１はリードデータ若しくは命令フェッチ用である。ＣＰＵ１がバス接続回路部２Ａをアクセスする場合は、出力経路１０からバス６０にコマンドとアドレスを出力し、それらは入力経路６００からバス接続回路部２Ａに入力される。リードアクセスの場合は、バス接続回路部２Ａの出力経路２０からバス６１にデータが読み出され、ＣＰＵ１がこれを入力経路６１０から内部に取り込む。ライトアクセスの場合は、ＣＰＵ１が出力経路１０からバス６０にライトデータを出力し、これが入力経路６００よりバス接続回路部２Ａに書き込まれる。ＣＰＵ１は回路ユニット２の個別接続回路部２Ｂに個別信号線１１を介して信号を供給する。個別接続回路部２Ｂからの出力は個別信号線２１を介してＣＰＵ１に供給される。
【００３３】
マイクロコントローラＭＣＵはＣＰＵの冗長２重化によってデータ処理の信頼性を向上させるために、第２のデータ処理ユニットとして比較用ＣＰＵ３、比較器４、インタフェース回路（ＩＦ）７〜９を有する。比較用ＣＰＵ３はＣＰＵ１と同一構成のプロセッサである。比較用ＣＰＵ３はインタフェース回路８を経由してバス６１と接続し、インタフェース回路９を介して個別信号線２１と接続する。入力信号８０はリードデータであり、入力信号９０は回路ユニット２の個別接続回路部２Ａからの入力である。出力信号３０は、ＣＰＵ１が出力経路１０からバス６０に出力するコマンド、アドレス、ライトデータに対応されるコマンド、アドレス、ライトデータであり、バス６０には接続されず、ＣＰＵ１が出力するコマンド、アドレス、ライトデータとの比較に用いられる。インタフェース回路７はＣＰＵ１が出力するコマンド、アドレス、ライトデータを比較用に取り込む。比較動作は比較器４が行う。
【００３４】
比較器４はＣＰＵ１のバス６０への出力と、比較用ＣＰＵ３の出力信号３０を比較する。比較結果は出力信号４０より出力される。例えば信号４０の論理値０は一致を意味し、論理値１は不一致を意味する。出力信号４０は例えば回路ユニット２の割込みコントローラへの割込み信号として用いても良い。ＣＰＵ１の比較結果が不一致の場合は、例外処理プログラムルーチンに移行してマイクロコントローラＭＣＵをリセットするなどの処理が考えられる。あるいは、比較結果出力信号４０をマイクロコントローラＭＣＵの外部端子から出力し、外部のウォッチドッグタイマを使ってマイクロコントローラＭＣＵにリセットをかけるなどの方法を採用することも考えられる。
【００３５】
クロック発生回路（ＣＰＧ）５はマイクロコントローラＭＣＵの内部クロックを生成する。５０はＣＰＵ１及び回路ユニット２のクロック同期動作に用いられるクロック信号、５１は比較用ＣＰＵ３と比較器４のクロック同期動作に用いられるクロック信号である。クロック信号５０とクロック信号５１は同一周期で位相が１８０度異なる。インタフェース回路７、８、９には上記クロック信号５０，５１と共にクロック信号５２が供給される。クロック信号５２はクロック信号５０と同一周期で位相が２７０度遅れている。
【００３６】
インタフェース回路７、８、９はそれぞれの入力信号毎にラッチ回路を有し、ラッチ回路はそのラッチタイミングを規定するラッチクロックとして前記クロック信号５０，５１，５２のいずれかを用いる。インタフェース回路７は、バス６０のコマンド、アドレス、ライトデータを入力経路６０１からクロック５０、５１、５２のいずれかを使用してラッチし、出力信号７０として比較器へ供給する。インタフェース回路８はバス６１のリードデータを入力経路６１１からクロック５０、５１、５２のいずれかを使用してラッチし、出力信号８０として比較用ＣＰＵへ出力する。インタフェース回路９は回路ユニット２から個別信号線２１を経てＣＰＵ１に出力される信号をクロック５０、５１、５２のいずれかを使用してラッチし、出力信号９０として比較用ＣＰＵ３へ出力する。
【００３７】
図２は図１におけるＣＰＧ５が発生する３つのクロックを示す。ＣＬＫ０はクロック信号５０、ＣＬＫ１はクロック信号５１、ＣＬＫ２はクロック信号５２である。３つのクロック信号は周期がｔ０である。ＣＬＫ１はＣＬＫ０に対して立ち上がりエッジがｔ０１遅れるが、本実施例ではｔ０１は０．５×ｔ０であり、位相差が１８０度ということになる。ＣＬＫ２はＣＬＫ０に対して立ち上がりエッジがｔ０２遅れるが、本実施例ではｔ０２は０．７５×ｔ０であり、位相差が２７０度ということになる。
【００３８】
図３は図１におけるＣＰＵ１と比較用ＣＰＵ３の内部状態を示す。ＣＰＵ１はＣＬＫ０に同期して内部状態が変化し、比較用ＣＰＵ３はＣＬＫ１に同期してＣＰＵ１の０．５サイクル遅れで内部状態が変化する。
【００３９】
図４は図１における回路ユニット２の個別接続回路部２Ｂから比較用ＣＰＵ３への信号伝達パスを例示する。回路ユニット２において、ブロック２００、２０１、２０３は組み合わせ回路であり、ブロック２０２はフリップフロップとも称されるラッチ回路である。組み合わせ回路２００はＣＰＵ１と比較用ＣＰＵ３への信号２１のもととなる信号を生成し、ラッチ回路２０２で保持する。組み合わせ回路２０１はクロック信号５０を用いてラッチ回路２０２の書き込みクロックを生成する組み合わせ回路である。ラッチ回路２０２の出力は組み合わせ回路２０３を通った後、信号２１となる。ここで信号２１は回路ユニット２からＣＰＵ１と比較用ＣＰＵ３への全ての信号を１つで表現しているが、実際には多数の意味の異なる信号の集まりである。また、ラッチ回路２０２から組み合わせ回路２０３を通って信号２１に出力するまでのディレイは２１を構成する各信号によって異なる。
【００４０】
インタフェース回路９において、ブロック９００は組み合わせ回路であり、ブロック９０１はラッチ回路である。組み合わせ回路９００はクロック５０、５１、５２を用いてラッチ回路９０１の書き込みクロックを生成する。ラッチ回路は入力信号２１を保持して比較用ＣＰＵ３への信号９０を出力するが、書き込みクロックのもととなるクロックに５０、５１、５２のどれを使用するかは、入力信号２１のディレイによって決められている。
【００４１】
比較用ＣＰＵ３において、ブロック３００と３０１は組み合わせ回路であり、ブロック３０２はラッチ回路である。入力信号９０は組み合わせ回路３００を通ってラッチ回路３０２で保持される。組み合わせ回路３０１はクロック５１を用いてラッチ回路３０２の書き込みクロックを生成する。回路ユニット２からＣＰＵ１への信号転送の場合には、図４におけるインタフェース回路９は必要なく、信号２１を直接ＣＰＵ１に接続でき、回路ユニット２のラッチ回路からＣＰＵ１のラッチ回路までのパスは１サイクルで転送を行っている。比較用ＣＰＵ３の場合は、ＣＰＵ１に対して処理が０．５サイクル遅れているため、回路ユニット２のラッチ回路から比較用ＣＰＵ３のラッチ回路までのパスは１．５サイクルとなり、信号を１サイクル以内で一度保持する必要がある。これがインタフェース回路９の役割である。図１におけるインタフェース回路７と８も同様であるため説明は省略する。
【００４２】
図５には図１のバス接続回路部２Ａとインタフェース回路７，８との接続状態並びに個別接続回路部２Ｂとインタフェース回路９との接続状態を詳細に示している。
【００４３】
図６はＣＰＵ１からインタフェース回路７を経て比較器４に至る信号経路における信号伝達サイクル、並びに個別接続回路部２Ｂからインタフェース回路９を経て比較用ＣＰＵ３に至る信号経路における信号伝達サイクルが例示される。バス接続回路部２Ａからインタフェース回路８を経て比較用ＣＰＵ３に至る信号経路における信号伝達サイクルは個別接続回路部２Ｂからインタフェース回路９を経て比較器４に至る信号経路における信号伝達サイクルと同じであるからここでは説明を省略する。ＦＦ、ＦＦ１はラッチ回路を意味し、ＣＰＵ１には入力初段、出力最終段のラッチ回路ＦＦ１が代表的に示され、個別接続回路部２Ｂには出力最終段のラッチ回路ＦＦ１が代表的に例示される。インタフェース回路７，９にはラッチクロックとしてクロック信号５０（ＣＬＫ０）、５１（ＣＬＫ１）、５２（ＣＬＫ２）が入力されるラッチ回路ＦＦを夫々一つづつ代表的に示している。これにあわせて比較用ＣＰＵ３には入力初段、出力最終段のラッチ回路ＦＦ１が代表的に示され、比較器４には入力初段のラッチ回路ＦＦ１が代表的に示される。
【００４４】
個別接続回路部２Ｂから比較用ＣＰＵ３へ至る信号経路に配置されたインタフェース回路９において、クロック信号５０（ＣＬＫ０）をラッチクロックとするＦＦへの前段からの転送サイクルは１サイクル、当該ＦＦから次段までの転送サイクルは０．５サイクルとされる。同様に、クロック信号５１（ＣＬＫ１）をラッチクロックとするＦＦへの前段からの転送サイクルは０．５サイクル、当該ＦＦから次段までの転送サイクルは１サイクルとされ、同じく、クロック信号５２（ＣＬＫ２）をラッチクロックとするＦＦへの前段からの転送サイクルは０．７５サイクル、当該ＦＦから次段までの転送サイクルは０．７５サイクルとされる。ＣＰＵ１から比較器４へ至る信号経路に配置されたインタフェース回路７に関しても同様である。どの信号のＦＦのラッチクロックにどのクロック信号５０，５１、又は５２を用いるかは前述のとおり、その信号のディレイによって設計上決定される。後述のように例えば論理合成を行う設計段階で決定される。
【００４５】
図７は図４におけるインタフェース回路９のクロックにクロック５１を使った場合のタイミングチャートを示す。回路ユニット２の出力信号２１はクロック信号５０に同期して変化しており、インタフェース回路９のラッチ回路までの転送サイクルは０．５となる。比較用ＣＰＵ３はクロック信号５１に同期して動作しており、インタフェース回路９のラッチ回路から比較用ＣＰＵ３のラッチ回路までの転送サイクルは１．０となる。この転送方法は、回路ユニット２の信号２１のディレイが小さい場合、例えば１サイクルの４０％未満の場合に有効である。ディレイが大きい場合は０．５サイクル以内に間に合わずラッチ回路で正しくデータを保持することができない。０．５サイクルで転送しようとすると動作周波数を低下させなくてはならない。
【００４６】
図８は図４におけるインタフェース回路９のクロックにクロック信号５０を使った場合のタイミングチャートを示す。回路ユニット２の出力信号２１はクロック信号５０に同期して変化しており、インタフェース回路９のラッチ回路までの転送サイクルは１．０となる。比較用ＣＰＵ３はクロック信号５１に同期して動作しており、インタフェース回路９のラッチ回路から比較用ＣＰＵ３のラッチ回路までの転送サイクルは０．５となる。この転送方法は、回路ユニット２の信号２１のディレイが大きい場合、例えば１サイクルの６０％以上の場合に有効である。インタフェース回路９から比較用ＣＰＵ３のラッチ回路までの転送サイクルが０．５と短いため、この区間のディレイが大きい場合は０．５サイクル以内に間に合わずラッチ回路で正しくデータを保持することができない。０．５サイクルで転送しようとすると動作周波数を低下させなくてはならない。
【００４７】
図９は図４におけるインタフェース回路９のクロックにクロック信号５２を使った場合のタイミングチャートを示す。回路ユニット２の出力信号２１はクロック信号５０に同期して変化しており、インタフェース回路９のラッチ回路までの転送サイクルは０．７５となる。比較用ＣＰＵ３はクロック信号５１に同期して動作しており、インタフェース回路９のラッチ回路から比較用ＣＰＵ３のラッチ回路までの転送サイクルは０．７５となる。この転送方法は、回路ユニット２の信号２１のディレイが１サイクルの４０〜６０％の場合に有効である。回路ユニット２のラッチ回路からインタフェース回路９までのディレイが０．５サイクル程度だと、図５の方式ではインタフェース回路９までの転送が間に合わず、図６の方式ではインタフェース回路９からの転送が間に合わず、ラッチ回路で正しくデータを保持することができない可能性がある。０．５サイクルで転送しようとすると動作周波数を低下させなくてはならない。
【００４８】
図１０にはＣＰＵと比較用ＣＰＵを同一のクロック信号ＣＬＫ０で動作させる構成が比較例として示される。図１及び図５と比べると、ＣＰＵ、回路ユニット２Ａ，２Ｂ、比較用ＣＰＵ３、比較器４はクロック信号５０（ＣＬＫ０）に同期して動作する。インタフェース回路７〜９は設けられていない。
【００４９】
図１１は図１０の比較例におけるＣＰＵの内部状態を示す。ＣＰＵ１と比較用ＣＰＵ３はクロック信号５０に同期して同じタイミングで処理を行う。
【００５０】
図１２は２つのＣＰＵ１と比較用ＣＰＵ３を同一周期で位相が０．５サイクル異なるクロック信号５０（ＣＬＫ０）、５１（ＣＬＫ１）で動作させる構成が比較例として示される。図１と比較すると、ＣＰＧ５が発生するクロック信号は５０と５１で、ＣＰＵ１と回路ユニット２はクロック信号５０（ＣＬＫ０）に同期して動作し、比較用ＣＰＵ３と比較器４はクロック信号５１（ＣＬＫ１）に同期して動作する。バス６０、６１、回路ユニット２からの信号２１と比較用ＣＰＵ３、比較器４の間のインタフェース回路７Ａ、８Ａ、９Ａは、クロック信号５１（ＣＬＫ１）を用いて信号を保持した後出力する。
【００５１】
図１３には図１２の構成におけるＣＰＵ１からインタフェース回路７Ａを経て比較器４に至る信号経路における信号伝達サイクル、並びに個別接続回路部２Ｂからインタフェース回路９Ａを経て比較器４に至る信号経路における信号伝達サイクルが例示される。図１３の標記は図６に準ずる。
【００５２】
以上の説明より明らかなように、前記クロック信号５０（ＣＬＫ０）と前記クロック信号５１（ＣＬＫ１）との位相差内での転送に間に合う信号が入力されるラッチ回路にだけクロック信号５１をラッチクロックに用いるから、それよりも転送タイミングの遅い信号のラッチ回路にはクロック信号５０を用いればよく、クロック信号５０の周波数を低くすることを要しない。
【００５３】
特に、インタフェース回路７〜のラッチ回路ＦＦのラッチクロックとしてクロック信号５０（ＣＬＫ０），５１（ＣＬＫ１）に他にクロック信号５２（ＣＬＫ２）を用いる図１、図６の構成を採用する場合には、ラッチクロックにどのクロック信号を用いるかは、以下が考慮される。すなわち、第２のクロック信号５１（ＣＬＫ１）をラッチクロックに用いるラッチ回路ＦＦには前段（回路ユニット２、ＣＰＵ１）から第１クロック信号５０（ＣＬＫ０）と第２クロック信号５１（ＣＬＫ１）の位相差（０．５サイクル）内で入力データが転送されることが必要であり、当該ラッチ回路ＦＦの出力データは第２クロック信号５１（ＣＬＫ１）の１サイクル内で次段（比較用ＣＰＵ３、比較器４）に転送されればよい。一方、第１クロック信号５０（ＣＬＫ０）をラッチクロックに用いるラッチ回路ＦＦには前段から第１クロック信号５０（ＣＬＫ０）の１サイクル内で入力データが転送されればよいが、当該ラッチ回路ＦＦの出力データは第２クロック信号５１（ＣＬＫ１）と第１クロック信号５０（ＣＬＫ０）との位相差内で次段に転送されることが必要になる。第３クロック信号５２（ＣＬＫ２）をラッチクロックに用いるラッチ回路ＦＦには、前段から第１クロック信号５０（ＣＬＫ０）と第３クロック信号５２（ＣＬＫ２）の位相差（０．７５サイクル）内で入力データが転送されればよく、当該ラッチ回路ＦＦの出力データも第１クロック信号と第３クロック信号の位相差内で次段に転送されればよい。ラッチ回路ＦＦの入力側の転送条件と出力側の転送条件は、第１のクロック信号５０（ＣＬＫ０）をラッチクロックに用いた場合と第２のクロック信号５１（ＣＬＫ１）をラッチクロックに用いた場合では相互に逆の関係になり、入力側又は出力側のいずれか一方の転送条件の方が厳しくなっている。第３のクロック信号５２（ＣＬＫ２）をラッチタイミングに用いた場合には入力側と出力側の転送条件の差が小さくなる。したがって、第１のクロック信号５０をラッチタイミングに用いた時の転送条件と第２のクロック信号５１をラッチタイミングに用いた時の転送条件との何れも満足できないとき、第３のクロック信号５２をラッチタイミングに用いることによってその転送条件を満足できる場合がある。これにより、インタフェース回路７〜９のラッチ回路にクロック信号５０，５１だけを用いる場合に比べて、動作速度の高速化の要請に対して融通性を増すことができる。
【００５４】
インタフェース回路７〜９のどのラッチ回路に対しても次段回路のラッチ回路までの信号遅が０．５サイクルよりも小さくなるように当該次段経路の配線遅延を設定すればラッチ回利の入力信号遅延だけに着目してどのラッチクロックを用いるかを決定することができる。
【００５５】
上記より、マイクロコントローラＭＣＵの動作周波数を上げる場合にも、一部のラッチ回路のラッチクロックを第２のクロック信号５１（ＣＬＫ１）から第３のクロック信号５２（ＣＬＫ２）又は第１のクロック信号５０（ＣＬＫ０）に変えるという簡単な設計変更によって高速化へ対応が可能になる。また、相互に位相の異なるクロック信号によってＣＰＵ１と比較用ＣＰＵ３を動作させるから、同じ位相のクロック信号を用いる場合に比べて、その電源系ノイズのピークを抑えることができ、しかもＣＰＵ１と比較用ＣＰＵ３の双方が共に同じ故障を生じた場合にもその異常を検出することが可能になる。
【００５６】
図１４には前記マイクロコントローラＭＣＵを使用した自動車のスタビリティコントロールシステムが例示される。自動車１０００において、１１００はドライバのハンドル操作を検知する操舵角センサ、１２００と１２０１は車輪速センサ、１３００は車両の挙動を検知するヨーレートセンサであり、これらセンサ情報をスタビリティコントロール制御装置１４００に入力し、前記マイクロコントローラＭＣＵで処理を行い、ブレーキアクチュエータ１６００に指令を与えてブレーキ１７００、１７０１を制御する。マイクロコントローラＭＣＵの出力信号４０によって本システムの故障を検知したときは、スタビリティコントロールシステムの暴走とならないようにシステムを停止して安全性を確保することができる。
【００５７】
図１５には上記マイクロコントローラＭＣＵの設計方法、特に、インタフェース回路７、８、９におけるそれぞれのラッチ回路ＦＦで使用するクロック信号を決定する設計自動化方法が示される。図に示される方法はエンジニアリングワークステーション等のコンピュータ装置に適用された設計ツールを用いて行われる。
【００５８】
マイコンの論理記述２０００は図１におけるＣＰＵ１、回路ユニット２など、マイクロコントローラＭＣＵを構成する部品の機能とこれらの接続情報とをＨＤＬのようなハードウェア記述言語を用いて記述した論理記述情報である。ライブラリ２００１は生成する回路のデバイス情報であり、基本セルの機能、スピード、面積などの情報を含む。制約２００２はクロックの周期や端子のタイミング情報などの情報を含む。クロック候補２００３は本発明で追加する設定であり、クロック信号が決定されていないラッチ回路ＦＦと候補となるラッチクロックを指定する情報である。例えば、図１においてインタフェース回路７、８、９にはクロック信号５０、５１、５２の候補がある。マイコンの論理記述２０００においては仮のクロック信号と接続されており、回路を生成した後のタイミングに応じて最適なクロック信号に接続し直す。回路自動生成ツール２１００はマイコンの論理記述２０００から実際の回路情報（回路記述情報）２２００への変換を行う。タイミングチェックツール２３００は回路情報２２００を入力し、ラッチ回路間、端子とラッチ回路間などのパスのディレイを計算してレポート２４００を出力する。クロック候補２００３で指定したラッチ回路ＦＦに関しては、候補に指定したクロック信号ごとに必要なタイミングが満足されているか否かの結果がレポートとして出力される。このレポート結果をもとに、設計ツールで、クロック信号が未決定も若しくはクロック信号候補が不適切であったラッチ回路ＦＦのクロック信号を決定して、マイクロコントローラＭＣＵの論理記述２０００を修正する。望ましい形態としては、回路自動生成ツール２１００に結果レポート２４００が与えられることにより、自動的に最適なクロックが選択されて接続され、これが回路情報２２００に反映される。
【００５９】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６０】
例えば、インタフェース回路７〜９のラッチ回路に接続可能とするラッチクロックは０．５サイクルの位相差のある２種類のラッチ回路であってもよい。また、３種類のラッチクロックを用いる場合に追加するラッチクロックの位相差は０．７５サイクルに限定されず、クロックパルスジェネレータの機能に応じて適宜決定すればよい。データ処理ユニットはＣＰＵに限定されない。例えば、キャッシュメモリやアドレス変換バッファ等を備えたＣＰＵコア、更には浮動小数点演算ユニット等のアクセラレータが密結合されたＣＰＵコア、又は、ＲＡＭやＲＯＭ等を含んだプロセッサコア、その他に、データ演算機能とバスマスタ機能を備えた適宜のデータ処理ユニットであればよい。インタフェース回路に含まれるラッチ回路は所謂マスタ・スレーブ携帯のラッチ回路であることが望ましい。ラッチ動作形態は、エッジトリガ型、又はレベルセンス型の何れであってもよい。
【図面の簡単な説明】
【００６１】
【図１】図１は本発明に係るマイクロコントローラＭＣＵの一例がブロックダイヤグラムである。
【図２】図２は図１におけるＣＰＧが発生する３つのクロックを示す波形図である。
【図３】図３は図１におけるＣＰＵと比較用ＣＰＵの内部状態を示すタイミングイチャートである。
【図４】図４は図１における回路ユニットの個別接続回路部から比較用ＣＰＵへの信号伝達パスを例示するブロックダイヤグラムである。
【図５】図５は図１のバス接続回路部とインタフェース回路との接続状態並びに個別接続回路部とインタフェース回路との接続状態を詳細に示すブロックダイヤグラムである。
【図６】図６はＣＰＵからインタフェース回路を経て比較器に至る信号経路における信号伝達サイクル、並びに個別接続回路部からインタフェース回路を経て比較器に至る信号経路における信号伝達サイクルを例示するブロックダイヤグラムである。
【図７】図７は図４におけるインタフェース回路のクロックにクロック信号５１を使った場合のタイミングチャートである。
【図８】図８は図４におけるインタフェース回路のクロックにクロック信号５０を使った場合のタイミングチャートである。
【図９】図９は図４におけるインタフェース回路のクロックにクロック信号５２を使った場合のタイミングチャートである。
【図１０】図１０はＣＰＵと比較用ＣＰＵを同一のクロック信号ＣＬＫ０で動作させる構成を比較例として示すブロックダイヤグラムである。
【図１１】図１１は図１０の比較例におけるＣＰＵの内部状態を示すタイミングチャートである。
【図１２】図１２はＣＰＵと比較用ＣＰＵを同一周期で位相が０．５サイクル異なるクロック信号（ＣＬＫ０、ＣＬＫ１）で動作させる構成がを比較例として示すブロックダイヤグラムである。
【図１３】図１３は図１２の構成におけるＣＰＵからインタフェース回路を経て比較器に至る信号経路における信号伝達サイクル、並びに個別接続回路部からインタフェース回路を経て比較器に至る信号経路における信号伝達サイクルを例示するブロックダイヤグラムである。
【図１４】図１４はマイクロコントローラを使用した自動車のスタビリティコントロールシステムを例示するブロックダイヤグラムである。
【図１５】図１５はマイクロコントローラの設計方法、特に、インタフェース回路におけるそれぞれのラッチ回路ＦＦで使用するクロック信号を決定する設計自動化方法等について例示するフローチャートである。
【符号の説明】
【００６２】
ＭＣＵ  マイクロコントローラ
１  ＣＰＵ
２  回路ユニット
２Ａ  バス接続回路部
２Ｂ  個別接続回路部
３  比較用ＣＰＵ
４  比較器
ＦＦ  ラッチ回路
７〜９  インタフェース回路
５０  第1のクロック信号（ＣＬＫ０）
５１  第２のクロック信号（ＣＬＫ１）
５２  第３のクロック信号（ＣＬＫ２）
６０、６１  バス
１１００、１２００、１２０１、１３００  センサ
１４００  スタビリティコントロール制御装置
１６００  ブレーキアクチュエータ
【図１】
0004633134.tif 000002
【図２】
0004633134.tif 000003
【図３】
0004633134.tif 000004
【図４】
0004633134.tif 000005
【図５】
0004633134.tif 000006
【図６】
0004633134.tif 000007
【図７】
0004633134.tif 000008
【図８】
0004633134.tif 000009
【図９】
0004633134.tif 000010
【図１０】
0004633134.tif 000011
【図１１】
0004633134.tif 000012
【図１２】
0004633134.tif 000013
【図１３】
0004633134.tif 000014
【図１４】
0004633134.tif 000015
【図１５】
0004633134.tif 000016