(57)【要約】【課題】汎用のＣＰＵを用いてロックステップ方式を効率的に実現できるマイクロコンピュータを提供する。【解決手段】ＣＰＵ２及び３は同一の制御プログラムを並行して実行し、書き込み制御部７はＣＰＵ２及び３による書き込みアクセスを制御し、判定部６はＣＰＵ２及び３の出力を比較する。設定部８には、書き込み制御部７によってデータの書き込みが行われる。書き込み制御部７は、ＣＰＵ２及び３によるデータの書き込み先が設定部８であれば、ＣＰＵ２及び３に対して書き込み応答信号を出力し、判定部６は、ＣＰＵ２及び３により出力されたデータが不一致であれば書き込み判定信号をローレベルに変化させる。書き込み制御部７は、ＣＰＵ２及び３により出力されたデータの書き込み先が設定部８であり、且つ判定信号がハイレベルであることを条件に設定部８にデータを書き込む。【選択図】図１
2018165892.tif 000002
【特許請求の範囲】
【請求項１】
同一の制御プログラムを並行して実行する第１及び第２ＣＰＵ（２，３）と、
前記第１又は第２ＣＰＵによる書き込みアクセスを制御する書き込み制御部（７，２４）と、
前記第１及び第２ＣＰＵの出力を比較する判定部（６）と、
前記書き込み制御部によってデータの書き込みが行われる書き込み対象部（８）とを備え、
前記書き込み制御部は、前記第１及び第２ＣＰＵによるデータの書き込み先が前記書き込み対象部であれば、前記第１及び第２ＣＰＵに対して書き込み応答信号を出力し、
前記判定部は、前記第１及び第２ＣＰＵにより出力されたデータが不一致であれば、前記書き込み制御部に異常判定信号を出力し、
前記書き込み制御部は、前記第１及び第２ＣＰＵにより出力されたデータの書き込み先が前記書き込み対象部であり、且つ前記異常判定信号が入力されていないことを条件として、前記書き込み対象部に前記データを書き込むマイクロコンピュータ。
【請求項２】
前記第１ＣＰＵと前記判定部との間のパスに配置され、遅延時間を付与する第１遅延部（２２）と、
前記第２ＣＰＵに接続されるパス中に、前記判定部に対するデータの入力タイミングが前記第１ＣＰＵ側と等しくなるように遅延時間を付与する第２遅延部（２２）とを備える請求項１記載のマイクロコンピュータ。
【請求項３】
前記遅延時間は、システムクロックの２周期分である請求項２記載のマイクロコンピュータ。
【請求項４】
前記書き込み制御部（２４）には、前記第１ＣＰＵにより、前記第１遅延部を介して書き込みアクセスが行われる請求項２又は３記載のマイクロコンピュータ。
【請求項５】
前記書き込み制御部（２４）には、前記第２ＣＰＵにより書き込みアクセスが行われる請求項２又は３記載のマイクロコンピュータ。
【請求項６】
前記書き込み制御部と前記書き込み対象部との間を接続する専用バス（３２）を備える請求項１から５の何れか一項に記載のマイクロコンピュータ。
【請求項７】
前記書き込み対象部を複数備え、
前記書き込み制御部は、前記専用バスを介して前記複数の書き込み対象部に選択的に書き込みを行う請求項６記載のマイクロコンピュータ。
【請求項８】
前記第１ＣＰＵが、前記専用バスを介して前記書き込み対象部に対する読出しアクセスを行うように構成される請求項６又は７記載のマイクロコンピュータ。
【請求項９】
前記異常判定信号は、前記書き込み対象部にも入力され、
前記書き込み対象部は、前記異常判定信号が入力された際に、異常対応処理を行う機能（４１〜４３）を備える請求項１から８の何れか一項に記載のマイクロコンピュータ。
【請求項１０】
前記異常対応処理は、システムリセット要求信号の出力である請求項９記載のマイクロコンピュータ。
【請求項１１】
前記異常対応処理は、前記第１及び第２ＣＰＵに対する割り込み要求の出力である請求項９又は１０記載のマイクロコンピュータ。
【請求項１２】
前記異常対応処理は、外部に対する異常発生信号の出力である請求項９から１１の何れか一項に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２つのＣＰＵにより処理を２重化することで異常監視を行うロックステップ方式のマイクロコンピュータに関する。
【背景技術】
【０００２】
ロックステップ方式を採用した電子制御装置の一例として、特許文献１では、２つのプロセッサコア１０，１２が、それぞれ専用のパスを介して切替装置３０にアクセスを行う。そして、切替装置３０は、プロセッサコア１０又は１２に対して処理の切替を指示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５９７８８７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のように専用パスを用いる場合はＣＰＵをそれに対応した構成にする必要があるため、汎用のＣＰＵを使用することができない。一方、切替装置を汎用バスに接続すると、２つのＣＰＵが同じアドレスにアクセスすれば、各ＣＰＵが書き込むデータが個別に保持できなくなる。また、２つのＣＰＵを異なるアドレスにアクセスさせれば前記データを個別に保持できるが、複数回のアクセスが必要になるという問題が残る。
【０００５】
本発明は上記事情に鑑みてなされたものであり、その目的は、汎用のＣＰＵを用いてロックステップ方式を効率的に実現できるマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１記載のマイクロコンピュータによれば、第１及び第２ＣＰＵは、同一の制御プログラムを並行して実行する。書き込み制御部は、第１又は第２ＣＰＵによる書き込みアクセスを制御し、判定部は第１及び第２ＣＰＵの出力を比較する。書き込み対象部には、書き込み制御部によってデータの書き込みが行われる。
【０００７】
書き込み制御部は、第１及び第２ＣＰＵによるデータの書き込み先が書き込み対象部であれば、第１及び第２ＣＰＵに対して書き込み応答信号を出力し、判定部は、第１及び第２ＣＰＵにより出力されたデータが不一致であれば書き込み制御部に異常判定信号を出力する。そして、書き込み制御部は、第１及び第２ＣＰＵにより出力されたデータの書き込み先が書き込み対象部であり、且つ異常判定信号が入力されていないことを条件として書き込み対象部にデータを書き込む。
【０００８】
すなわち、書き込み対象部に対するデータの書き込みは、２つのＣＰＵによるロックステップ方式で、且つ書き込み制御部を介して行われる。そして、書き込み制御部には、何れか一方のＣＰＵのみがシステムバスを介して接続されていれば良く、他方のＣＰＵは、少なくともデータ書き込み用のパスが判定部に直接接続されていれば良い。したがって、システムバス上では２つのＣＰＵによる競合が発生しない。加えて、書き込み制御部は、データの書き込み先が書き込み対象部であれば両ＣＰＵに対して直ちに書き込み応答信号を出力するので、ＣＰＵは実行待ち状態になることが無い。したがって、ＣＰＵの処理効率を低下させることなくロックステップ方式を実現できる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態であり、マイクロコンピュータの構成を要部について示す機能ブロック図
【図２】書き込み制御部の構成を示す機能ブロック図
【図３】正常動作時のタイミングチャート
【図４】異常動作時のタイミングチャート
【図５】第２実施形態であり、マイクロコンピュータの構成を要部について示す機能ブロック図
【図６】正常動作時のタイミングチャート
【図７】異常動作時のタイミングチャート
【図８】第３実施形態であり、マイクロコンピュータの構成を要部について示す機能ブロック図
【図９】第４実施形態であり、マイクロコンピュータの構成を要部について示す機能ブロック図
【図１０】第５実施形態であり、マイクロコンピュータの構成を要部について示す機能ブロック図
【図１１】第６実施形態であり、マイクロコンピュータの構成を要部について示す機能ブロック図
【図１２】第７実施形態であり、マイクロコンピュータの構成を要部について示す機能ブロック図
【図１３】第８実施形態であり、マイクロコンピュータの構成を要部について示す機能ブロック図
【図１４】異常動作時のタイミングチャート
【発明を実施するための形態】
【００１０】
（第１実施形態）
図１に示すように、本実施形態のマイクロコンピュータ１は、第１ＣＰＵ２及び第２ＣＰＵ３を備えている。ＣＰＵ２は、システムバス４を介してＲＯＭ５及び書き込み制御部７等の周辺回路に接続されている。ＣＰＵ２及び３は、同一の制御プログラムを並行的に実行する。ＲＯＭ５に対するアクセスはＣＰＵ２のみが実行し、ＣＰＵ３は、ＣＰＵ２により読み出されたデータを、システムバス４を介して読み込む。また、ＣＰＵ２は、判定部６に対してはシステムバス４を介すことなく直接接続されている。
【００１１】
各周辺回路に対するデータの書き込みは、実質ＣＰＵ２のみによって行われるが、判定部６は、ＣＰＵ３が出力したデータを、ＣＰＵ２が出力したデータと照合する。そして、判定部６は、照合結果である判定信号を書き込み制御部７に対して出力する。判定信号は、ＣＰＵ２及び３の各データが一致している限りハイレベルに維持され、データ不一致になるとローレベルに変化する。判定信号ローレベルに変化した状態が異常判定信号に相当する。
【００１２】
書き込み制御部７は、書き込み対象部である設定部８に対するデータの書き込みを制御するもので、ＣＰＵ２がバス４に出力したアドレスが設定部８をアクセス先として示した際に、ＣＰＵ２及び３に対し、アクノリッジとしてバス応答信号を出力する。そして、ＣＰＵ２が設定部８にアクセスした際に、前記判定信号がハイレベルを示していればＣＰＵ２が出力したデータを設定部８に書き込む。設定部８の具体構成例については、後の実施形態において示す。
【００１３】
図２に示すように、書き込み制御部７は、アドレス識別部１１，データ保持部１２及び書き込み実行部１３を備えている。アドレス識別部１１は、ＣＰＵ２のアクセスアドレスを識別し、上述のようにアクセス先が設定部８であればバス応答信号を出力する。データ保持部１２は、ＣＰＵ２が出力した書き込みデータを保持するバッファである。書き込み実行部１３は、アクセス先が設定部８であり、且つ判定信号がハイレベルであればデータ保持部１２に保持されているデータを設定部８に出力して書き込む。
【００１４】
次に、本実施形態の作用について説明する。図３に示すように、ＣＰＵ２及び３の動作が正常であれば、それらのアクセス対象及び書き込みデータは同一である。尚、図中に示すＰ０〜Ｐ２は、書き込み制御部７及び設定部８以外の図示しない他の周辺回路へのアクセス命令又は書き込みデータを意味する。また、Ｍ０，Ｍ１は、設定部８へのアクセス命令又は書き込みデータを意味する。「−」は命令が無い状態を意味する。設定部８は、その動作に対する安全性の要求が高く、その他の周辺回路は、動作に対する安全性の要求が相対的に低いものである。
【００１５】
ＣＰＵ２及び３が共にＰ１，Ｐ２でアクセスした際には、対応する周辺回路からの応答信号が返る。尚、前記周辺回路に対しては、ＣＰＵ２のアクセス開始からシステムクロック周期の１サイクル後にアクセス結果が反映される。また、ＣＰＵ２及び３が共にＭ１でアクセスした際には、書き込み制御部７がバス応答信号を返す。判定信号は常時ハイレベルを維持し、設定部８に対しては、ＣＰＵ２のアクセス開始から３サイクル後にアクセス結果が反映される。
【００１６】
一方、図４に示すように、ＣＰＵ２がＭ１でアクセスした際に、ＣＰＵ３がＰ２でアクセスを行ったとする。この時、判定部６は、アクセス状態，データの不一致により判定信号をローレベルに変化させる。したがって、書き込み制御部７は、バス応答信号を返しはするが設定部８への書き込みは実行せず、設定部８のステータスはＭ０のままとなる。
【００１７】
以上のように本実施形態によれば、第１ＣＰＵ２及び第２ＣＰＵ３は同一の制御プログラムを並行して実行し、書き込み制御部７は、ＣＰＵ２及び３による書き込みアクセスを制御し、判定部６はＣＰＵ２及び３の出力を比較する。設定部８には、書き込み制御部７によってデータの書き込みが行われる。書き込み制御部７は、ＣＰＵ２及び３によるデータの書き込み先が設定部８であれば、ＣＰＵ２及び３に対して書き込み応答信号を出力し、判定部６は、ＣＰＵ２及び３により出力されたデータが不一致であれば書き込み判定信号をローレベルに変化させる。そして、書き込み制御部７は、ＣＰＵ２及び３により出力されたデータの書き込み先が設定部８であり、且つ判定信号がハイレベルであることを条件として設定部８にデータを書き込む。
【００１８】
すなわち、設定部８に対するデータの書き込みは、ＣＰＵ２及び３によるロックステップ方式で、且つ書き込み制御部７を介して行われる。そして、書き込み制御部７には、ＣＰＵ２のみがシステムバス４を介して接続されていれば良く、ＣＰＵ３は、少なくともデータ書き込み用のパスが判定部６に直接接続されていれば良い。したがって、システムバス４上ではＣＰＵ２及び３による競合が発生しない。加えて、書き込み制御部７は、データの書き込み先が設定部８であればＣＰＵ２及び３に対して直ちにバス応答信号を出力するので、ＣＰＵ２及び３は実行待ち状態になることが無い。したがって、ＣＰＵ２及び３の処理効率を低下させることなくロックステップ方式を実現できる。
【００１９】
（第２実施形態）
以下、第１実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図５に示すように、第２実施形態のマイクロコンピュータ２１は、遅延部２２を備えている。遅延部２２は、第２ＣＰＵ３がバス４を介して命令フェッチを行うパスと、第１ＣＰＵ２が出力したデータが判定部６に入力されるパスとの間に介在しており、それぞれのパスに２サイクル分の遅延時間を付与する。遅延部２２は、第１及び第２遅延部に相当する。
【００２０】
次に、第２実施形態の作用について説明する。図６に示すように、ＣＰＵ２が行うアクセスに対して、ＣＰＵ３が行うアクセスは２サイクル分遅延するが、判定部６が比較対象とするデータは同じタイミングで入力される。図７に示す異常発生時の動作では、書き込み制御部７がバス応答信号を返すタイミングに対して、判定部６が判定信号をローレベルに変化させるタイミングが２サイクル遅れることになる。
【００２１】
第１実施形態のように、ＣＰＵ２及び３の実行タイミングが同じである場合、例えばノイズの影響を受けたデータ値が同じように変化するため、照合結果は一致することになる。これに対して第２実施形態のように、ＣＰＵ３側の実行タイミングをＣＰＵ２とずらすことで、両者がノイズの影響を同じように受ける可能性をより低くすることができる。
【００２２】
（第３実施形態）
図８に示すように、第３実施形態のマイクロコンピュータ２３は、ＣＰＵ２が書き込み制御部２４にアクセスを行うパスを、システムバス４を介すことなく、遅延部２２を経てデータが判定部６に入力されるパスを用いて行うようにしている。この場合、書き込み制御部２４に対するデータの入力タイミングが判定部６と同じになる。したがって、書き込み制御部２４については、データ保持部１２を削除できる。
【００２３】
（第４実施形態）
図９に示すように、第４実施形態のマイクロコンピュータ２５は、書き込み制御部２４にアクセスを行うパスを、ＣＰＵ３が判定部６にデータを出力するパスとしている。この場合も第３実施形態と同様に、書き込み制御部２４を用いることができる。
【００２４】
（第５実施形態）
図１０に示すように、第５実施形態のマイクロコンピュータ３１は、第１実施形態の構成において、書き込み制御部７と設定部８とを、ローカルバス３２を介して接続したものである。ローカルバス３２は専用バスに相当する。このように構成すれば、設定部８と同様に安全性の要求が高い周辺回路を追加するための拡張性を持たせることができる。
【００２５】
（第６実施形態）
そして、図１１に示すように第６実施形態のマイクロコンピュータ３３は、第５実施形態の構成において、ローカルバス３２に複数の設定部８（１）〜８（ｎ）を接続したもので、このように拡張することが可能になる。
【００２６】
（第７実施形態）
図１２に示すように、第７実施形態のマイクロコンピュータ３４は、第５実施形態の構成において、ローカルバス３２とシステムバス４との読出しパスを接続している。そして、ＣＰＵ２及び３が設定部８に格納されているデータを読み出す必要がある場合には、ローカルバス３２を介して直接読出しを行うようにする。これにより、設定部８からのデータ読み出しを迅速に行うことができる。
【００２７】
（第８実施形態）
図１３に示すように、第８実施形態は、第２実施形態のマイクロコンピュータ２１における設定部８の具体構成例である。設定部８は、判定制御部４１，異常処置設定部４２及び監視機構設定部４３を備えている。判定制御部４１は、判定部６より入力される判定信号がローレベルを示した際に、異常処置設定部４２及び監視機構設定部４３に異常処置信号を通知する。
【００２８】
異常処置設定部４２は、リセット要求設定部４２ａ，割り込み要求設定部４２ｂ及び外部出力要求設定部４２ｃを備えている。リセット要求設定部４２ａには、マイクロコンピュータ２１全体若しくはＣＰＵ２及び３へのリセット要求をするか、又はリセット要求をしないかが選択設定可能である。リセットの対象は、周辺回路を含んでいても良い。そして、リセット要求設定部４２ａは、判定制御部４１から異常処置信号が入力されると、設定されているリセット要求種別に該当するリセット要求信号を出力する。但し、「リセット要求をしない」設定の場合は、リセット要求信号を出力しない。
【００２９】
割り込み要求設定部４２ｂには、ＣＰＵ２及び３に対するマスカブル割り込み若しくはノンマスカブル割り込み要求をするか、又は割り込み要求をしないかが選択設定可能である。割り込み要因が複数ある場合は、それらの優先順位の設定を含んでいても良い。そして、割り込み要求設定部４２ｂは、異常処置信号が入力されると、設定されている割り込み要求種別に該当する割り込み要求信号を出力する。但し、「割り込み要求をしない」設定の場合は、割り込み要求信号を出力しない。
【００３０】
外部出力要求設定部４２ｃには、マイクロコンピュータ２１の１つ以上の外部端子の何れか又は全てへの信号出力要求をするか、又は信号出力要求をしないかが選択設定可能である。そして、外部出力要求設定部４２ｃは、異常処置信号が入力されると、設定されている信号出力要求種別に該当する信号出力要求信号を出力する。但し、「信号出力要求をしない」設定の場合は、信号出力要求信号を出力しない。
【００３１】
監視機構設定部４３は、遅延サイクル数設定部４３ａ，セルフテスト設定部４３ｂ及びＣＰＵ動作モード設定部４３ｃを備えている。遅延サイクル数設定部４３ａは、遅延部２２が遅延サイクル数の設定変更が可能に構成されている場合に、その遅延サイクル数の設定を行う。
【００３２】
セルフテスト設定部４３ｂは、ＣＰＵ２及び３又は判定部６又は書き込み制御部２４又は設定部８について行うセルフテストの動作内容を設定する。ＣＰＵ動作モード設定部４３ｃは、ＣＰＵ２及び３の動作モードを、例えば上述したように両者が同一の制御プログラムを実行するロックステップモードと、それぞれ異なる制御プログラムを実行する非ロックステップモードとに切り換える。
【００３３】
次に、第８実施形態の作用について説明する。図１４に示すように、第２実施形態の図７に示すケースと同様の異常が発生すると、異常処置設定部４２のリセット要求設定部４２ａは、「リセット要求をする」設定の場合、リセット要求信号をローレベルからハイレベルに変化させてアクティブにする。尚、同じ又は異なるタイミングで、割り込み要求設定部４２ｂにより割り込み要求を出力させたり、外部出力要求設定部４２ｃにより外部への信号出力要求を出力させても良い。または、監視機構設定部４３の各機能を実行させても良い。
【００３４】
以上のように第８実施形態によれば、設定部８に対する書き込みアクセスが行われた際に、判定部６より入力される判定信号がローレベルに変化すると、異常対応処理としてリセット要求設定部４２ａによりリセット要求信号を出力させることができる。また、割り込み要求設定部４２ｂは、ＣＰＵ２及び３に対するマスカブル割り込み又はノンマスカブル割り込み要求を設定する。外部出力要求設定部４２ｃは、マイクロコンピュータ２１の１つ以上の外部端子を介した、外部への信号出力要求を設定する。
【００３５】
（その他の実施形態）
設定部８は、ＣＰＵ２のアクセス開始から３サイクル後にアクセス結果が反映されるものに限らない。
遅延部２２における遅延サイクル数は「２」に限らない。
第８実施形態における設定部８の各機能は、何れか１つ以上を備えていれば良い。
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【符号の説明】
【００３６】
図面中、１はマイクロコンピュータ、２は第１ＣＰＵ、３は第２ＣＰＵ、４はシステムバス、６は判定部、７は書き込み制御部、８は設定部である。
【図１】
2018165892.tif 000003
【図２】
2018165892.tif 000004
【図３】
2018165892.tif 000005
【図４】
2018165892.tif 000006
【図５】
2018165892.tif 000007
【図６】
2018165892.tif 000008
【図７】
2018165892.tif 000009
【図８】
2018165892.tif 000010
【図９】
2018165892.tif 000011
【図１０】
2018165892.tif 000012
【図１１】
2018165892.tif 000013
【図１２】
2018165892.tif 000014
【図１３】
2018165892.tif 000015
【図１４】
2018165892.tif 000016