(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサ・システムで用いられ、前記システムの少なくとも１つのサブモジュールと結合するよう配置される周辺モジュールであって：
前記の少なくとも１つのサブモジュールに結合するよう配置される周辺バス；
前記周辺バスを前記マイクロプロセッサ・システムのメイン・プロセッサに結合されたメイン・バスに結合する非同期インターフェース；および
前記周辺バスに結合され、前記の少なくとも１つのサブモジュールの動作を管理するよう配置される周辺処理手段であって、前記少なくとも１つのサブモジュールを管理するデータでプログラミングされるよう配置され、さらに、前記メイン・プロセッサ内でエラーが起こった場合に、前記メイン・プロセッサのバックアップ処理手段として動作可能であり、かつ追加の電源および追加のクロック回路を有するように構成されている周辺処理手段；
によって構成されることを特徴とする周辺モジュール。
【請求項２】
マイクロプロセッサ・システムであって：
メイン・プロセッサ；
前記メイン・プロセッサに結合されたメイン・バス；
少なくとも１つのサブモジュール；
前記少なくとも１つのサブモジュールに結合するよう配置される周辺バス；
前記周辺バスと前記メイン・バスとの間を結合する非同期インターフェース；および
前記周辺バスに結合され、前記の少なくとも１つのサブモジュールの動作を管理するよう配置される周辺処理手段であって、前記少なくとも１つのサブモジュールを管理するデータでプログラミングされるよう配置され、さらに、前記メイン・プロセッサ内でエラーが起こった場合に、前記メイン・プロセッサのバックアップ処理手段として動作可能であり、かつ追加の電源および追加のクロック回路を有するように構成されている周辺処理手段；
によって構成されることを特徴とするマイクロプロセッサ・システム。
【請求項３】
前記非同期インターフェースが、前記周辺バスに結合された第１ポートと前記メイン・バスに結合するよう配置された第２ポートとを有する二重ポート・メモリによって構成される請求項１記載の周辺モジュール。
【請求項４】
前記周辺処理手段が、周辺プロセッサおよびメモリを備える請求項１記載の周辺モジュール。
【請求項５】
前記周辺処理手段が、周辺プロセッサおよびメモリを備える請求項２記載のマイクロプロセッサ・システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、マイクロプロセッサ・システムのプログラミング可能な周辺モジュールに関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
自動車用などの埋込型リアル・タイム・マイクロプロセッサ・システムは、大量のプロセッサ性能を必要とする。エンジン／伝導機構の制御およびABS （自動ブレーキング・システム）やサスペンションを含む車両の制御には、多くの処理能力と速度とが必要とされる。たとえば、車両衝突予測検出，ナビゲーションおよび車両ハイウェイ・システムなどのインテリジェント輸送システム（ITS ）により、将来的にはプロセッサに課せられる要求が増すことになろう。
【０００３】
高性能マイクロプロセッサ・コアが、すでにこのような埋込型制御用途に用いられている。このような高性能のマイクロコントローラ・コアは、キャッシュ，スーパー・スケーラ・アーキテクチャ，パイプライン・プロセッサ・ユニットおよび予測分岐などの技術を用いる。
【０００４】
これらの技術により、高度に同期化されたプログラム・フローの場合は、プロセッサの性能が大きく増大する。しかし、同期プログラムのフローが非同期イベントにより割り込まれると、性能は著しく下がる。これは、推論的に実行された段階が反転され、パイプラインを空にしてもう一度満たさねばならないからである。
【０００５】
さらに、これらのハイエンド・マイクロコントローラ・コアは、ワークステーションなどに要求されるダイナミック・システム設計を支援するために開発される。このため、多くの数のレジスタが必要になる。埋込型コントローラは、スタティック設定しか用いないが、一方で割込には迅速に反応することが求められる。レジスタの数が多いと、膨大なデータをスタックなどにセーブしなければならないので、外部割込に対するプロセッサ・コアの反応時間が遅くなる。
【０００６】
また、自動車用埋込型コントローラの入力データは、８〜１２ビットである。予備処理および大量のデータ処理も、１６ビット程度である。従って、この種のアルゴリズムのために３２ビットのアーキテクチャを用いることは、プログラムとデータ・メモリの使用量を非常に大きくして、３２ビットのアーキテクチャのハードウェアには部分的にしか負荷をかけないことになる。
【０００７】
外部の非同期イベントは、たとえば、角度を入力するとノック検出のためのデータ・サンプリングを始めるなど、出力信号の生成にわずかな量の処理能力しか必要としないことが多い。
【０００８】
通常の既知のアーキテクチャは、I/O モジュール間でほとんど、あるいは全然相互接続を持たない。タイマがノック検出データ・サンプリングのために割り込み信号を生成するなどのノック検出の場合は、マイクロコントローラ・コアは、この割込に対応して、データをサンプリングするようにA/D 変換器を起動する。
最後に、ハイエンド・コアは、特にフェール・セーフの概念に対応しない。冗長モジュール／実行ユニットの１つが故障の場合は、コア内には、検出または偶発事故のための手順／ハードウェアが組み込まれていない。安全上不可欠な埋込型リアル・タイム用途（たとえばABS ，エンジン管理，ギアボックス制御，エアバッグなど）では、マイクロコントローラのエラーを検出して、これらに自動的に対処する機構が必要とされる。
【０００９】
簡単な解決策は、エラーの場合にはコントローラ・ユニットのスイッチを切るか、あるいは故障が起きたときにシステムを動かし続けるために削減された機能を持つバックアップ・システムが最小限の操作（リンプ・ホーム・モード(limp home mode)）を維持するための冗長ハードウェアを追加することである。このため、I/O ，保護回路，クロック回路などをすべて備える第２の冗長マイクロコントローラなどの追加の冗長ハードウェアの必要性が高まる。
【００１０】
本発明は、上記の欠点を軽減する周辺モジュールを提供することを求める。
【００１１】
【課題を解決するための手段】
本発明の第１面により、マイクロプロセッサ・システムと共に用いて、システムの少なくとも１つのモジュールに結合するよう配置された周辺モジュールであって：少なくとも１つのサブモジュールに結合するよう配置された周辺バス；周辺バスをマイクロプロセッサ・システムのメイン・バスに結合する非同期インターフェース；および周辺バスに結合され、少なくとも１つのサブモジュールの活動を管理するよう配置された周辺処理手段であって、少なくとも１つのサブモジュールを管理するためのデータでプログラミングされるよう配置される周辺処理手段によって構成されることを特徴とする周辺モジュールが提供される。
【００１２】
本発明の第２面により、メイン・プロセッサ；メイン・プロセッサに結合されたメイン・バス；少なくとも１つのサブモジュール；少なくとも１つのサブモジュールに結合するよう配置された周辺バス；周辺バスとメイン・バスとの間を結合する非同期インターフェース；および周辺バスに結合され、少なくとも１つのサブモジュールの活動を管理するよう配置された周辺処理手段であって、少なくとも１つのサブモジュールを管理するデータによりプログラミングされるよう配置される周辺処理手段によって構成されることを特徴とするマイクロプロセッサ・システムが提供される。
【００１３】
好ましくは、非同期インターフェースは、周辺バスに結合された第１ポートと、メイン・バスに結合するよう配置された第２ポートとを有する二重ポート・メモリによって構成される。好ましくは、周辺処理手段は、周辺プロセッサおよびメモリを備える。
【００１４】
【実施例】
図１を参照して、メイン・プロセッサ３０と、メイン・メモリ４０と、複数のハイエンド・モジュール５０，６０と、周辺モジュール１００と、これらすべてを相互接続するために結合されたメイン・バス２０とを備えるマイクロプロセッサ・システム１０が図示される。
【００１５】
周辺モジュール１００は、非同期バス・インターフェース１２５，割込ユニット１２７，周辺プロセッサ１３０，周辺メモリ１３５および複数のサブモジュール１４０，１５０を備える。サブモジュールについては後で詳しく説明する。周辺バスのすべての要素は、周辺バス１２０により相互接続される。
【００１６】
非同期バス・インターフェース１２５は、メイン・バス２０と周辺バス１２０との間に結合された二重ポート・メモリで、メイン・バス２０と周辺バス１２０との間の非同期データ転送を可能にする。
【００１７】
非同期バス・インターフェース１２５は、メイン・プロセッサ３０および周辺プロセッサ１３０内の異なるクロックに備えるために非同期に設定される。非同期バス・インターフェース１２５は、さらに、周辺バス１２０に接続されたすべてのサブモジュール１４０，１５０に対して、メイン・プロセッサ３０による直接的アクセスが可能になるよう配置される。
【００１８】
各サブモジュール１４０，１５０は、周辺バス・インターフェースを有し、要求されたデータ読み書き動作を実行する際には、周辺プロセッサ１３０の管理下でバス・スレーブとして動作することができる。あるいは、周辺バス１２０のバス所有権がサブモジュール１４０，１５０の一方に与えられている場合は、そのサブモジュールがデータ読み取りまたはデータ書き込み動作を開始するときに、バス・マスタとして動作する。
【００１９】
バス・インターフェースのオーバーヘッドを削減するためには、周辺バス１２０についてはクロック同期バスが好ましい。バス幅はデータについて１６ビットで、アドレッシングについては最大８／１６ビットである。サブモジュール１４０，１５０は、１６ビット，１２ビットおよび８ビット設定の混合なので、非整合データ・アクセスが好ましい選択となる。メモリ割当アドレッシング法も好ましい。データ転送の速度を上げるには、重複アドレッシング／データ・サイクルが好都合である。割込メカニズムは、入／出力モジュール（場合によっては割込処理ユニットを介して）間での通信を行えるように設定することができる。サブモジュール１４０，１５０のレベルは、１列または２列のバスにより接続された周辺モジュール１００内の２列，３列または４列のサブモジュールを用いることができるよう標準化しなければならない。
【００２０】
サブモジュール１４０，１５０は、内部処理能力（待行列スマートI/O モジュール）を持つ、あるいは持たない標準の入／出力モジュールである。二重プロセッサ・アーキテクチャは、周辺プロセッサ１３０の「処理能力」を共有するので、非常に簡単な（データ処理能力を持たない）サブモジュールしか必要としないことが理解頂けよう。
【００２１】
タイマに必要な主なハードウェアは、比較器，ラッチおよびリンク・レジスタである。これらは、予定されたイベントが非常に正確な時間フレームで発生されるようにするために必要である。リンク・レジスタのオプションにより、周辺プロセッサによりすでにプログラミングされている他のイベントを起動する能力が提供される。
【００２２】
周辺プロセッサ１３０は、RISC命令集合を有する。たとえば命令集合の下位集合（サブセット）を通じてアクセスされる独立した演算ユニットなどの、高性能のデータ予備処理用途および標準的なI/O 処理用途に対応するには、演算性能は設計段階中に測定可能なものでなければならない。これには、たとえばシャドウ・レジスタなどの高速割込応答手法，低レジスタ・カウントおよび演算ユニットが含まれ、これらにはすべて割り込むことができる。割込ネスティングが、通常の埋込型データ処理ルーチンについては３ないし４の範囲であるので、シャドウ・レジスタ・カウントは高過ぎてはならない。命令集合は、データを処理できるよう最適化しなければならない。これは別々のプログラムとデータ・バスを有するハーバード・アーキテクチャを持たねばならない。これは、たとえばバックグラウンド・デバッグ・モードなどのデバッグ機能，バイナリ・スキャンに対応しなければならない。メイン・プロセッサの命令集合と同様の命令集合により、ソフトウェア分割段階のソフトウェア開発コストが下がる（ルーチンまたはその一部が周辺プロセッサ１３０またはメイン・プロセッサ３０上で実行される場合も同様）。これにより、必要とされるデバッグ・オーバーヘッドがさらに小さくなる。
【００２３】
周辺プロセッサ１３０の性能は、障害耐性機能を支援するだけの高いものでなければならない。そのため、設計段階では、このプロセッサは、たとえば、追加の電源（メインMCU と同じでないもの），追加のクロック回路構成（たとえばバックアップRC発振器）を持つように設定しなければならない。これにより、メイン・プロセッサ３０の故障の場合に、周辺プロセッサをバックアップ処理装置として用いることができる。これにより、たとえば自動車用など安全上不可欠な用途（ABS ，エンジン管理，エアバッグなど）について、故障の際のバックアップまたは検出を行う、ハードウェア上非常に効率の良い解決策が可能になる。
【００２４】
周辺メモリ１３５は、直接プログラム・バス１３７を介して周辺プロセッサ１３０に接続される。周辺メモリは、メイン・バス２０にも結合され、サブモジュール１４０，１５０の管理に用いられるデータを記憶するように配置される。
【００２５】
割込ユニット１２７は、非同期バス・インターフェース１２５に結合され、サブモジュール１４０，１５０の一方から１つ以上の他のサブモジュール１４０，１５０へ割込を送るためのプログラミング可能な機能を提供する。これにより、タイマは周期的な割込信号を発生することができ、この割込信号は、いくつかのサブモジュールが、データ・サンプリング，データ出力などの動作を開始するよう起動する。割込ユニット１２７は、メイン・プロセッサ３０と周辺ルーチンとの間のイベントの同期を処理することもできる。
【００２６】
メイン・プロセッサ３０は、データの前処理のために周辺プロセッサ１３０を用いて標準的処理アルゴリズムを処理する。メイン・プロセッサ３０により、前処理タスクの下位集合のみが冗長的に実行され、周辺プロセッサ１３０内のエラーを検出する。同様に、周辺プロセッサは、簡略化されたコントローラ・アルゴリズムも実行して、メイン・プロセッサ３０内のエラーを検出する。エラーがある場合は、追加のソフトウェア／ハードウェア（図示せず）により故障のあるプロセッサを検出しなければならず、故障のないプロセッサが簡略化されたコントローラ・アルゴリズムを実行してシステム１０の動作を維持する。
【００２７】
上記に説明された実施例に対して代替の実施例が可能であることは、当業者には理解頂けよう。たとえば、割込ユニット１２７を非同期バス・インターフェース１２５に組み込むこともできる。
【図面の簡単な説明】
【図１】本発明によるマイクロプロセッサ・システム内に組み込まれる周辺モジュールを示す。
【符号の説明】
１０  マイクロプロセッサ・システム
２０  メイン・バス
３０  メイン・プロセッサ
４０  メイン・メモリ
５０  ハイエンド通信モジュール
６０  ハイエンド周辺機器
１００  周辺モジュール
１２０  周辺バス
１２５  非同期バス・インターフェース
１２７  割込ユニット
１３０  周辺プロセッサ
１３５  周辺メモリ
１３７  直接プログラム・バス
１４０，１５０  サブモジュール
【図１】
0004226668.tif 000002