JP2010027062A - 分散制御システム - Google Patents

分散制御システム Download PDF

Info

Publication number
JP2010027062A
JP2010027062A JP2009191718A JP2009191718A JP2010027062A JP 2010027062 A JP2010027062 A JP 2010027062A JP 2009191718 A JP2009191718 A JP 2009191718A JP 2009191718 A JP2009191718 A JP 2009191718A JP 2010027062 A JP2010027062 A JP 2010027062A
Authority
JP
Japan
Prior art keywords
control
task
control circuit
network
control device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2009191718A
Other languages
English (en)
Inventor
Naoki Kato
直樹 加藤
Fumio Arakawa
文男 荒川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009191718A priority Critical patent/JP2010027062A/ja
Publication of JP2010027062A publication Critical patent/JP2010027062A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】複数の制御装置がネットワークで接続された分散制御システムにおいて、リアルタイム性を保証した上で各制御装置を効率よく稼動させること、リアルタイム性を保証した上で耐故障性の向上を達成した負荷分散システムの提供。
【解決手段】各タスクには、タスク終了までの要求時間であるデッドラインまたはタスクが起動される周期の情報を付与し、前記デッドラインまたはタスク周期に応じて、タスクを実行する制御装置を選択する。高速な応答時間を保証し易い専用パスで第一の制御回路とセンサ及びアクチュエータとを接続し、更に他の制御回路とセンサ及びアクチュエータとをネットワークで接続する。第一の制御回路が正常動作、且つ、処理能力が十分な場合は第一の制御回路を制御に使用し、第一の制御回路が故障、あるいは、処理能力が不足の場合は他の制御回路を使用する。
【選択図】図1

Description

本発明は、複数の制御対象機器を制御するためのプログラムを実行する複数の制御装置をネットワークで接続した分散制御システムに関するものであり、特に車両制御に代表されるリアルタイム性の要求の高い分散制御システムに関する。
自動車等の電子制御装置(ECU)では、制御回路(CPU)が、センサ等から入力された情報に基づいて制御信号を生成してアクチュエータに出力し、アクチュエータが前記制御信号に基づいて動作する。近年、自動車内では、このような電子制御装置が増加している。また、各制御装置間で、連係動作若しくはデータを共有化の通信を行うために互いに接続して、ネットワークを構築している。
このように複数の制御装置をネットワークで接続した分散制御システムにおいては、個々の制御装置は、制御装置固有の制御プログラムのみを実行するように構成されているために、最大の負荷に対応できる処理性能の制御装置が選択される。しかし、対象とする機器が動作しない場合や、複雑な制御を必要としない場合には、制御装置の処理能力を十分に利用していないために、全体としての動作効率が低いという問題がある。
一方、ビジネス利用や学術研究などに用いられる計算機システムでは、複数のコンピュータで負荷を分散して処理を行わせることで、一台一台の性能は低くとも高速に大量の処理を実行できるようにする試みが行われている。例えば、特許文献1(特開平7−328442号公報)では、計算機群を構成する複数の計算機に複数の種類の業務を負荷分散することが可能な方法が提案されている。車両内の分散制御システムにおいても、複数の制御装置で負荷分散を行う技術が提案されている。例えば、特許文献2(特開平7−9887号公報)では、制御装置を通信線で接続して自動車各部の制御を実行するものにおいて、少なくとも1つの制御装置は制御負荷の高い他の制御装置の制御項目の少なくとも1つを実行可能にするようにし、制御装置間でバックアップを可能にするとともに、処理量の平均化を計るものとしている。
また、特許文献3(特開2004−38766号公報)では、ネットワークに接続された制御装置毎に実行する必要のある固有タスクと、任意の制御装置にて実行可能なフロートタスクとに分け、そのフロートタスク実行用のプログラムを、ネットワークに接続されたマネージャ制御装置にて管理する。そして、マネージャ制御装置は、車両の運転状態や乗員からの指示に応じて、そのとき実行すべきフロートタスクを特定し、そのフロートタスクを、処理負荷が低く、フロートタスクを実行可能な制御装置に実行させる。
制御回路とセンサ及びアクチュエータとは専用パスで接続されるのが一般的である。また、特許文献4(特開平7−078004号公報)記載の制御装置では、制御回路、セン
サ、及びアクチュエータを全てネットワークで接続し、専用パスを用いない方式が開示されている。この方式の利点は、専用パスの代わりにネットワークを使うことにより、センサ情報によるアクチュエータのための制御処理を、特定の制御回路に限定せずにネットワークに接続された、どの制御回路でも行えることである。この結果、ある制御回路が故障しても、他の制御回路で容易にバックアップでき、信頼性が向上する。また、公報では開示されていないが、適切な分散制御技術と組み合わせれば、制御を複数の制御回路に分散処理させることも、専用パス方式より容易であると考えられる。
また、公報にも開示されているように、ネットワークの故障に備えてネットワークを二重化することも良く知られている。
特開平7−328442号公報 特開平7−9887号公報 特開2004−38766号公報 特開平7−078004号公報
特許文献1で開示された技術は、主にビジネス利用の分散計算機環境での負荷分散方法に関するものであり、タスクのリアルタイム性の保証に関する考慮はなされていない。また、特許文献2で開示された技術は、自動車用の分散制御システムであり、複数の制御装置間での負荷分散を行うものであるが、自動車の制御では特に重要であるタスクのリアルタイム性の保証に関する考慮はなされていない。特許文献3では、個々の制御装置固有のタスクと、どの制御装置で実行してよいフロートタスクとに予めタスクを分け、任意の制御装置で実行可能なフロートタスクのみを負荷分散に利用している。この場合には、予めシステムを構築する際に固有タスクとフロートタスクとに分けておく必要がある。実際は動作状況によって他の制御装置で実行可能かどうかは変化する。また、自動車制御においては、一般的には、個々の制御装置での処理が負荷の大半を占めており、特許文献3のように局所性のあるタスクを負荷分散の対象から除外すると、負荷分散に用いることができるタスクが少ないために、うまく負荷を分散することが出来なくなってしまう。
本発明の第1の課題は、複数の制御装置がネットワークで接続された分散制御システムにおいて、リアルタイム性を保証した上で各制御装置を効率よく稼動させる負荷分散方法を提供することにある。
本発明が解決しようとする第2の課題は、リアルタイム性を保証した上で耐故障性の向上を達成することにある。制御回路とセンサ及び制御回路とアクチュエータが専用パスで接続され、個々の制御装置上で個々の制御プログラムを動作させる従来からの一般的な電子制御装置の場合は、十分なリアルタイム性を保証できるが、個々の制御装置が故障した場合に、その動作が停止することになる。つまり、耐故障性が低いことになる。全ての制御装置を2重化する方法も考えられるが、システムコストの上昇が避けられない。
一方、特許文献4では、全てのセンサ情報及びアクチュエータ制御情報がネットワークを介して遣り取りされる構成をとっている。この場合、1つの制御回路が故障した場合でも、センサ情報やアクチェータ制御信号は、ネットワークを通じて別の制御回路とやり取りでき、継続動作が可能となる。しかし、自動車等の電子制御装置では、センサ情報取得からアクチュエータ制御までを数msから数十msで処理する必要がある。このため、前記ネットワークは十分なスループットを持っているだけでなく、高速な応答時間を保証しなければならない。しかしながら、多数の制御回路、センサ及びアクチュエータが同時に情報を遣り取りする状況では、全てのアクセスの高速な応答時間を保証することは困難で
ある。
さらに、第3の課題は、複数の制御回路を仮想化し、分散処理を容易化することである。すなわち、ユーザープログラムから見たシステムの均一性を実現し、特定の制御回路と特定のセンサ又はアクチュエータとの組み合わせを意識してプログラミングする必要をなくし、あたかも一つの高性能な制御回路があるかのように扱えるようにすることである。
本発明の第4の課題は、回路の冗長性を最小限に抑えつつ、自動車のようなコストに敏感なシステムにも適用可能な、耐故障性の向上や分散処理の容易化を達成することである。
前記第1の課題を達成するために本発明は、ネットワークで接続された複数の制御装置で複数のタスクを実行する分散制御システムにおいて、各タスクには、タスク終了までの要求時間であるデッドラインまたはタスクが起動される周期の情報を付与し、前記デッドラインまたはタスク周期に応じて、タスクを実行する制御装置を選択するようにする。さらに、タスクに処理完了に要する時間と、起動された制御装置以外の他の制御装置で実行した場合の往復の通信レイテンシ情報を付与することで、ネットワークで接続された他の制御装置で実行した際にリアルタイム性を保証可能か判断できるようにし、タスクを実行する制御装置を選択するようにする。
また、通信レイテンシは、通信時にどれだけのデータを転送する必要があるかによって決まる点に鑑み、タスク実行においてアクセスする個々の制御装置の記憶装置内のデータ量およびアクセスする個々の制御装置の入力装置からの入力信号のデータ量の情報が付与されており、前記データ量を元に通信レイテンシを算出する手段を備える。さらにネットワークのトラフィック量を観測する手段を設け、トラフィック量に応じて通信レイテンシを補正する。
個々の制御装置の演算能力や記憶装置の構成などのタスク処理能力が制御装置毎に異なる場合には、タスク処理時間を、タスク処理能力に応じて補正する手段を設ける。さらに、タスク処理時間および通信レイテンシ情報を、過去に実際にタスクが実行された際の実行時間により、更新する手段を設ける。また、制御装置は実行待ちタスクをタスク管理リストに格納し、新たなタスクの起動要求が発生した際に、前記タスク管理リストを参照し、前記新たなタスクのデッドライン以内での実行完了が可能かどうかを検証し、デッドライン以内の実行が不可能な場合に、タスク管理リストに含まれるタスクおよび新たな起動タスクの中から他の制御装置に実行を依頼する少なくとも1つのタスクを選択し、選択したタスクの起動要求コマンドを他の制御装置にネットワークを通じて送信する。
また、要求コマンドを送信する際に、タスクのデッドラインおよび処理時間の情報を合わせて送信する。タスク実行を依頼する他の制御装置を決定するための手段の1つは、前記タスクの起動要求コマンドを送信する前に、少なくとも1つの他の制御装置に対して、前記タスクのデッドライン、処理時間、通信レイテンシ情報を送信することで、前記デッドライン以内でタスクを完了できるかを問い合わせる通信を行い、可能であるとの返信があった他の制御装置の中から実際にタスクの起動要求コマンドを送信する制御装置を選択する。
タスク実行を依頼する他の制御装置を決定するための別の手段は、前記タスクの起動要求コマンドを送信する前に、少なくとも1つの他の制御装置に対して、前記タスクのデッドライン時刻までの負荷状況を問い合わせ、前記タスクのデッドライン、処理時間、通信レイテンシ情報、および、返信された負荷状況から、他の制御装置で、前記デッドライン
以内でタスクを完了できるかを検証し、検証の結果タスクの実行が可能であった他の制御装置の中から実際にタスクの起動要求コマンドを送信する制御装置を選択する。
第2の課題を解決するための構成手段は、まず高速な応答時間を保証し易い専用パスで第一の制御回路とセンサ及びアクチュエータとを接続し、更に他の制御回路とセンサ及びアクチュエータとをネットワークで接続する。そして、第一の制御回路が正常動作しており、処理能力が十分な場合は第一の制御回路を制御に使用し、第一の制御回路が故障したり、処理能力が足りなかったりした場合は他の制御回路を使用するようにする。
さらに、ユーザープログラムが特定のタスクを特定の制御装置に限定して実行させるように意識するのでなく、上記タスクの分配は、OSやミドルウェアにより実現するために、ユーザープログラム開発を複雑化することなく、分散処理の恩恵を受けられるようにして、第3の課題を解決する。
更に、専用パスとネットワークの二系統のパスを備えることで、ネットワークを二重化しなくても、一つの制御回路の故障時に他の制御回路でバックアップできる構成とする。そのため、個々の制御回路の二重化も不要とでき、回路の冗長性が押さえられ、第4の課題を解決する。
本発明によれば、リアルタイム性の保証、耐故障性の向上、又は、複数の制御回路の仮想化が実現できる。
N個の制御装置ECU1〜ECUNがネットワークNW1に接続された構成の概略を示す図である。 a)−(d)は、横軸に現在時刻を0としたときの時間をとって、各タスクが制御回路で処理される実施例1のスケジュールの態様を示す図である。 各制御装置がデッドラインを守った処理を行うための負荷分散の他の実施例を説明するための図である。 各制御装置のタスク管理リストTLに登録されているタスク処理時間PTを過去の実績の履歴で更新する構成の概略を示す図である。 各制御装置のタスク管理リストTLに登録されている通信レイテンシCLを過去の履歴で更新する構成の概略を示す図である。 各制御装置のタスク管理リストTLに登録されている通信レイテンシCLをタスクのデータアクセス量と通信の待ち時間から更新する構成の概略を示す図である。 横軸に現在時刻を0としたときの時間をとって、各タスクが制御回路で処理される実施例6のスケジュールの態様を示す図である。 制御装置ECU間でタスクの実行依頼を行う通信パケットの例を説明する図である。 タスクの起動要求が発生してから、負荷分散によるタスク実行を行う一連のフローの例を説明する図である。 タスクの起動要求が発生してから、負荷分散によるタスク実行を行う一連の他のフローの例を説明する図である。 直結信号線とネットワークを併用した制御システムを示す図である。 図11の構成のネットワークを二重化した例を示す図である。 実施例10の変形例として、図11のシステムのネットワークを分割した例を示す図である。 図11のシステムのネットワークを図13とは異なる方式で分割した実施例を示す図である。 図11のシステムのネットワーク接続を削減した本実施例を示す図である。 図15のシステムのネットワーク接続を二重化した実施例を示す図である。 図11のシステムのネットワークに記憶ユニットMEMUを接続した例を示す図である。 無線によるネットワークの構成例を示す図である。 自動車内のLANで接続された制御装置とさらに無線で接続される車外のサーバによって構成されるネットワークの例を示す図である。
(実施例1)
図1および図2を用いて本発明の実施例1を説明する。図1は、N個の制御装置ECU1〜ECUNがネットワークNW1に接続された構成の概略を示す図である。ただし、図1では、制御装置ECU1〜ECU3およびECUNのみが表示され、他の制御装置は省略されている。また、内部構成は説明に必要な制御装置ECU1およびECU2についてのみ示している。制御装置ECU1の内部には、ネットワークNW1に接続してデータの通信を担当する通信装置COM1、タスクを処理する制御回路CPU1、センサ群SN1及びアクチュエータ群AC1とデータ信号のやりとりを行う入出力制御回路IO1からなる。また、図中にタスク管理リストTL1を示している。タスク管理リストは、起動要求があり、実行を待つタスクを管理するためのリストであり、記憶領域上に保存され、例えばオペレーティングシステムなどによって管理されている。制御装置ECUは、いわゆる計算機であるから、図に示されない、計算機としての機能を果たすために必要なものを備えることは言うまでもない。制御装置ECU2およびその他の制御装置の内部構成も、同様である。
実施例1のタスク管理リストTLは、少なくとも、その制御装置が実行すべきタスクについての、タスクID、デッドラインDL、処理時間PT、通信レイテンシCLなどの情報がテーブルとして管理されている。以下の説明で用いないその他の情報は、ここでは省略されている。デッドラインDLは、タスクの実行が完了する要求時刻であるが、多くのタスクが周期性をもつため、タスクの周期をデッドラインとして扱っても良い。
同様に、制御装置ECU2の内部には、ネットワークNW1に接続してデータの通信を担当する通信装置COM2、タスクを処理する制御回路CPU2、センサ群SN2及びアクチュエータ群AC2とデータ信号のやりとりを行う入出力制御回路IO2からなり、管理リストTL2を記憶領域上に有する。
今、制御装置ECU1の、タスク管理リストTL1に、タスクT1、タスクT2、タスクT3の3つのタスクが管理され実行待ちにあったときに、タスクT4の起動要求が発生したとする。タスク管理リストTL1における、デッドラインDL、処理時間PT、通信レイテンシCLは、一定の時間幅を単位時間としてあらわしたもので、例えば制御回路CPU1の100クロック分の時間を1単位時間として用いることができる。また、デッドラインDLは、通常、タスクが起動された時刻からの時間で表されるが、実施例1では、理解しやすいように、現在の時刻を0と考えた値にすべて変換して表現している。
図2(a)−(d)は、横軸に現在時刻を0としたときの時間をとって、各タスクが制御回路で処理される実施例1のスケジュールの態様を示す図である。(a)は、タスクT4の起動要求が発生する前のタスクT1,T2,T3のスケジュールを示している。スケジュールの連続する四角い箱の一つが1単位時間を示す。すなわち、タスクT1は3単位時間で、タスクT2は4単位時間で、そして、タスクT3は10単位時間で、それぞれ、処理が完了すること、タスクT1,T2,T3の順にタスクが実行されることを示している。さらに、各タスクの処理時間の上辺に付した矢印は各タスクのデッドラインを示しており、タスクの連続する四角い箱が矢印より左で終わっていれば、そのタスクはデッドラインを守った実行が可能となることを意味する。図2(a)の3つのタスクは、全てデッドライン以内での実行が可能な状況である。タスクの実行順序を決める、いくつかの公知の技術があるが、ここでは、デッドラインが近いものから順に実行するアーリエスト・デッドライン・ファースト(EDF)法を用いてスケジューリングを行っている。
実施例1では、実行中のタスクを中断して、他のタスクを実行するプリエンプトを許可する方法もあるが、以下の説明では実行中のタスクの中断を行わないノンプリテンプトを前提とするが、本発明はノンプリエンプトスケジュールに限定されるものではない。
次に、図2(b)は、この状況の下で、新たにタスクT4の起動要求が発生したため、タスクT4を含めてEDF法でスケジューリングを行った状態を示す図である。タスクT4のデッドラインはT3より早いため、タスクT4を先に実行するようにスケジューリングされる。この結果、タスクT1,T2,T4はデッドライン以内に処理が完了するが、タスクT3は20単位時間後のデッドライン時刻を守れなくなってしまう。
一方、図2(c)は、同時点での制御装置ECU2のタスクのスケジューリングを示す図である。制御装置ECU2のタスクT5,T6,T7は十分余裕がある。そこで、新たに発生したタスクT4を制御装置ECU2で実行させることを考える。タスクT4の処理に必要な時間は4単位時間であるので、処理時間のみに着目すれば、制御装置ECU2で実行するのには、十分な余裕がある。しかし、図1のタスク管理リストTL1を参照して明らかなように、タスクT4をネットワークで実行依頼を行い、結果を得るための通信のレイテンシは10単位時間である。すなわち、処理時間PTと通信レイテンシCLを合計すると14単位時間となり、デッドラインDLの12単位時間をオーバーしてしまう。したがって、タスクT4を制御装置ECU2で実行させるとデッドラインを守れない。
この方法で、他の制御装置で実行可能なタスを調べると、タスクT3のみであることがわかる。図2(d)は、制御装置ECU2でタスクT3を実行することとしたときのタスクのスケジューリングを示す図である。制御装置ECU2でタスクT5、T6を実行した後、T3を実行し、次いで、T7を実行すれば、全てのタスクをデッドラインを満足するように、タスクの処理ができる。すなわち、制御装置ECU2でタスクT3を実行した後に、4単位時間の余裕があるから、タスクT3の実行結果をレイテンシの4単位時間を費やして制御装置ECU1に転送し、アクチュエータAC1を動作させても、デッドラインを満足できる。このとき、制御装置ECU1は、タスクT1,T2およびT4を実行すれば良い。そこで、制御装置ECU1に発生したタスクT4の起動要求に対応して、タスクT3を制御装置ECU2で処理するため、制御装置ECU1から制御装置ECU2に、タスクT3を制御装置ECU2で起動させる要求をネットワークのコマンドとして送信する。実施例1では、通信レイテンシは送信時のレイテンシと返信時のレイテンシの合計を示しているとする。また、実際は送信レイテンシと返信レイテンシは異なるが、説明を簡単化するために、どちらも等しいとした。この結果、制御装置ECU1、制御装置ECU2の全てのタスクがデッドラインを守り、リアルタイム性を保証したタスクの負荷分散が可能となる。
(実施例2)
図3は、各制御装置がデッドラインを守った処理を行うための負荷分散の他の実施例を説明するための図である。実施例2は、他の制御装置に処理を依頼するタスクの決定にデッドラインのみを用いる。実施例1に比べて、単純なしくみで判断を行う例である。各制御装置のタスク管理リストTLには、図1で説明したと同様にタスクIDごとに必要な情報が管理されているが、ここでは、デッドラインDLがタスクについての情報として管理されていれば足りるので、デッドラインDLが小さい順に並べられているとして表示した。また、別に、デッドラインDLのしきい値時間TH1が設定されている。しきい値時間は、メモリ、レジスタなどの記憶領域に保存されている。
実施例2では、各制御装置は、しきい値時間TH1より小さいデッドラインDLのタスクは、起動された制御装置で実行し、しきい値時間TH1より大きいデッドラインDLのタスクに対しては、起動された制御装置とは別の制御装置に実行を依頼することを可能とする。すなわち、デッドラインDLの小さいタスクは、無条件に起動された制御装置で実行することにし、デッドラインDLの大きいタスクに対しては、デッドラインDLが守れないと判断されたとき、起動された制御装置とは別の制御装置に実行を依頼する。これにより、図の例では、タスクT1およびタスクT2は起動制御装置のみで実行し、タスクT3以降は他の制御装置での実行が許可され、負荷分散のために利用することができる。個々のタスクで通信レイテンシやタスク処理時間は異なるが、例えば、通信レイテンシとタスク処理時間の和の最大値をしきい値時間とすることで、デッドラインを守った負荷分散が可能になる。
実際は、他の制御装置に実行依頼したタスクが、他の制御装置でデッドラインを守った処理が実行不可能と判断されることもあるが、構成が簡単で、他の制御装置に実行依頼するタスクの決定のためのオーバヘッドが小さいことが利点である。
通信レイテンシCLやタスク処理時間PTは、ネットワークの負荷や制御回路の構成や使用状況、或いは実行フローが一定でないことなどで変化し、厳密に推定することは困難な場合がある。このような場合、ある程度のマージンを見込んだしきい値時間TH1を設定しておけば良いので、実施例2は実現が容易である。また、しきい値時間TH1は、予め設定して固定的に用いることもできるが、動的に変化させることも可能である。例えば、通信トラフィックを観測する手段を設け、ネットワーク負荷が大きく通信レイテンシが増大するときはしきい値時間を大きくし、逆の場合は、しきい値時間を小さくすることもできる。
(実施例3)
図4は、各制御装置のタスク管理リストTLに登録されているタスク処理時間PTを過去の実績の履歴で更新する構成の概略を示す図である。タスク処理時間PTは、考え方としては、タスクの実行フローを予測し、そのフローを実行するための実行命令サイクル数とすることができる。しかし、実施例2の説明で触れたように、状況に応じて変化するために厳密に推定することは困難な場合がある。そこで、実施例3では、タスク処理時間計測手段CT1を設け、タスクが実行される際の時間を計測し、実績に応じて更新するもの
とする。
タスク処理時間計測手段CT1には、タスクの開始時を知らせる信号St1が入力されると同時に、タスク処理時間計測手段CT1内部のカウンター(図示しない)のカウントを開始し、タスクの終了を知らせる信号En1が入力されるとカウンターを停止する。また、割り込みなどによりタスクの中断が発生した場合にカウンターを一時停止するために、一時停止信号Paと再開信号Reが入力されている。タスク実行に費やした正味のサイクル数を計測し、タスクの処理時間PTとして、タスク管理リストTLに登録されているタスク処理時間PTを更新して、記憶領域MEMに保管する。これにより、例えば、過去の最大処理時間や平均処理時間をタスク情報として用いることが可能になる。
(実施例4)
図5は、各制御装置のタスク管理リストTLに登録されている通信レイテンシCLを過去の履歴で更新する構成の概略を示す図である。通信レイテンシCLは、転送データ量などから静的に推定することも可能であるが、実施例2の説明で触れたように、通信トラフィックの混雑状況に応じて変化するために厳密に推定することは困難な場合がある。
そこで、実施例4では、通信レイテンシ計測手段CT2を設け、通信装置COM1により、他の制御装置にタスクの実行を依頼し、実行された結果の返信を受信する際の、通信コマンド投入から結果の受信までの時間を計測する。通信レイテンシ計測手段CT2は、通信装置COM1から通信コマンド投入を知らせる信号St2が入力されると同時に、通信レイテンシ計測手段CT2内部のカウンターのカウントを開始し、結果の返信があったことを知らせる信号En2が入力されるとカウンターを停止する。これにより、通信を用いた他の制御装置でのタスク実行に費やした正味のサイクル数を計測し、その時刻からタスクの処理時間を減じた値を通信レイテンシCLとして管理リストTLに登録されている通信レイテンシCLを更新し、記憶領域MEMに保管する。これにより、例えば、過去の最大通信レイテンシや平均通信レイテンシをタスク情報として用いることが可能になる。
(実施例5)
図6は、各制御装置のタスク管理リストTLに登録されている通信レイテンシCLをタスクのデータアクセス量と通信の待ち時間から更新する構成の概略を示す図である。通信装置COM1が通信の要求コマンドを投入した際には、すでに他の通信パケットがネットワークを使用中である、あるいは、より優先度の高い他の通信要求が待機している場合など、必ずしも通信が即時実行されるわけではない。通信の要求コマンドに応じて通信が開始されるまでには待ち時間が存在するのが通常である。
実施例5では、タスク管理リストTLは、図1で説明したデータの他に、メモリアクセス量MAおよび入力装置を通じてアクセスする入力データ量IAが情報として備えられるものとしている。ここで、メモリアクセス量MAおよび入力データ量IAは、他のデータが単位時間であったのに対し、扱うデータの大きさを示すものとしている。例えば、タスクT1はメモリアクセス量MAは8Byte、入力データ量IAは16bitをアクセスして処理を行うことを示している。
通信待ち時間計測手段CT3は、通信装置COM1から通信要求コマンドが投入されたことを示す信号St3が入力されてから内部のカウンターを開始し、通信が開始したことを示す信号En3が入力されるとカウンターを停止する。これにより通信の待ち時間WT1を求め、通信レイテンシ計算手段CCL1に入力する。これに合わせ、通信レイテンシ計算手段CCL1はメモリアクセス量MAおよび入力データ量IAから、タスクの起動依頼に伴って転送すべきデータ量を求め、それに要する転送時間を計算する。さらに、通信待ち時間WT1を加算することで通信レイテンシを計算し、タスク管理リストTL4の通
信レイテンシCLに新しい値を書き込む。
通信待ち時間WT1は、常に計測することも可能であるし、定期的な計測でも構わない。これにより、通信待ち時間と転送データ量を反映した通信レイテンシを用いることができる。実施例5ではデータアクセス量と通信の待ち時間をどちらも考慮に入れた通信レイテンシ計算をおこなっているが、どちらかが大きく支配的な場合は、片方のみを利用する構成でもよい。
(実施例6)
次に、各制御装置の処理能力が同一でない場合の実施例について説明する。実施例1の状況で仮に制御装置ECU2が制御装置ECU1の倍の動作周波数で動作すると仮定する。図7は、横軸に現在時刻を0としたときの時間をとって、各タスクが制御回路で処理される実施例6のスケジュールの態様を示す図である。
実施例6の場合は、制御装置ECU1でのタスク処理時間が制御装置ECU2では半分になる。例えば、タスク依頼元である制御装置ECU1で、依頼先が制御装置ECU2であると決定した際に、依頼先の制御装置と自己の性能比からタスクT3の処理時間を半分の5単位時間として制御装置ECU2に伝える方法や、逆に制御装置ECU1はタスク処理時間をそのまま10単位時間であるとして、依頼先の制御装置ECU2に伝え、制御装置ECU2で、依頼元の制御装置と自己の性能比からタスク処理時間を半分の5単位時間として扱う方法が取りうる。いずれの結果においても、制御装置ECU2においては、タスクT3の処理時間は5単位時間として扱われ、図7に示すスケジューリングとなる。
図8は、制御装置ECU間でタスクの実行依頼を行う通信パケットの例を説明する図である。通信パケットは、パケット開始を示すSOP、送信元のノード、つまり、どの制御装置から送信されたかを示すNODE−ID、実行を依頼するタスクを示すTASK−ID、さらにタスクのデッドラインDL、処理時間PT、実行に必要なデータ、パケットの終了を示すEOPからなる。デッドラインDLは依頼元制御装置と依頼先制御装置に共通の絶対時刻で表現するか、または、パケットが依頼先制御装置に到着する時間を基準に相対時刻で表現する。また、前述したように、返信に要する時間を差し引いてデッドラインは変更されている。データ量はタスクによって異なるために、パケットの長さが固定されており、1つのパケットで送信できない場合は、データが継続することを知らせるフラグをパケットに挿入し、複数のパケットを使用することで対応できる。
(実施例7)
図9は、タスクの起動要求が発生してから、負荷分散によるタスク実行を行う一連のフローの例を説明する図である。図9では新規タスクが起動された制御装置1の処理(ステップP900〜P912)と、これに対応した他の制御装置の処理(ステップP1001〜ステップP1009)が示されている。また、制御装置間の通信(BC91、BC92、MS91、MS92)を太い矢印で示している。
制御装置ECU1でタスク起動要求が発生(ステップP901)したら、タスク管理リストに新規タスクを追加(ステップP902)し、全てのタスクがデッドラインを守って実行を完了できるかを判定する(ステップP903)。もし、可能であればタスク管理リストに従い、タスクを実行する(ステップP900)。不可能であると判定された場合、タスク管理リストで管理されているタスクの中から他の制御装置ECUに実行依頼するものが存在するかを調べる(ステップP904)。ここでは、例えば実施例1や実施例2に示したようにタスク実行時間と通信レイテンシ、タスクのデッドラインを考慮して他の制御装置で実行可能なタスクを選択する。選択されたタスクは管理リストから削除される(ステップP905)。他の制御装置ECUで実行可能なタスクが存在しない場合には、タ
スク実行放棄処理(ステップP906)を行う。タスク実行放棄処理は、例えば、予め決められたタスクの重要度に従い、最も重要度の低いタスクを管理リストから削除するなどの方法がある。タスク実行放棄処理では、さらに、放棄するタスクを管理リストから削除する。
次に、更新された管理リストで残り全てのタスクがデッドラインを守って実行を完了できるかを判定する(ステップP907)。Noなら、可能と判定されるまで、ステップP904に戻り、他の制御装置ECUに実行依頼するタスクを選択し続ける。ステップP907がYesなら、タスク管理リストに従い、タスクを実行する(ステップP900)とともに、他の制御装置ECUに実行依頼するタスクとして選択したタスクについて、以下の処理を行う。
タスクがデッドライン以内で実行可能であるかどうか他の制御装置ECUに問い合わせを行う(ステップP908)。ここで、予め定められた制御装置ECUの順に1つずつ問い合わせる方法やブロードキャストを用いて一度に全ての制御装置に問い合わせる方法が選択できるが、実施例7では、図中太い矢印で示したブロードキャストBC91により、他の制御装置ECUに問い合わせるものとする。問い合わせの方法は、例えば図8に示したパケットを送ってもよいが、問い合わせの段階では、データは送信する必要がないために、図8のパケット構成からデータを除いた情報を送信するものとするのが良い。
受信した制御装置ECUはデッドラインと処理時刻および自己のタスク管理リストを参照し、依頼されたタスクがデッドライン内に実行可能かどうか判定(ステップP1001)する。実行不可能な場合は返信せずに、通常処理(ステップP1002)に戻る。実行可能であると判定した場合は、その旨返信することになるが、実施例7ではブロードキャストを用いて全ての制御装置ECUに問い合わせたために、複数の制御装置ECUが同時に実行可能であると判定した場合は、同時に複数の返信を行う可能性がある。ここでは、コントローラ・エリア・ネットワーク(通称CANと表記される)を用いている例についてこの問題への対応を説明する。CANでは同時の送信に対しては、ノードの優先度に従い通信路を与える仕組みで衝突を回避している。優先度が低いノードは、他の優先度の高いノードからの送信を検知した場合には、送信を中断し、通信路が確保できるまで待つ。そこで、他の制御装置から実行可能のメッセージが返信されたかどうか判定(ステップP1003)する。他の制御装置ECUが実行可能のメッセージを返信していれば、これを受信して、通常処理(ステップP1004)に戻る。メッセージの受信が無い場合に限り実行可能であるというブロードキャストBC92が全制御装置ECUに送信される(ステップP1005)。実行可能の返信を送信するために、通信路が空くのを待っていた制御装置ECUは、他の制御装置ECUの実行可能のブロードキャストBC92を受信した場合、通信待ちを解除して通常処理(ステップP1003,P1004)に戻る。
実行可能の返信を送信した後、一定時間以内に実行依頼があったか否か判定(ステップP1006)し、実行依頼があったときは依頼されたタスクを実行(ステップP1007)し、無かったときは通常処理(ステップP1008)に戻る。依頼されたタスクを実行したときは、結果のメッセージMS92を制御装置ECU1に送信(ステップP1009)し、通常処理(ステップP1010)に戻る。
制御装置ECU1では、実行可能であるというブロードキャストBC92が所定時間内に受信できたか判定(ステップP909)し、所定時間内の受信であったときは、実行可能であると返信した制御装置ECUに対して、実行依頼のメッセージMS91を送信(ステップP910)する。依頼先から結果のデータがメッセージMS92で返信されてきたら、データをメモリに格納や、出力信号としてアクチェータの制御に用いるなどの返信データ処理(ステップP912)を行う。一方、所定時間内の受信でなかった場合は、タス
ク実行放棄処理(ステップP911)を行う。
制御装置ECU1の処理の、他の制御装置ECUへの実行問い合わせ(ステップP908)、返信判定(ステップP909)、実行依頼(ステップP910)、実行放棄(ステップP911)、返信データ処理(ステップP912)の一連の処理は、他の制御装置ECUに実行依頼すべきタスクとして選択された全てのタスクについて実行される。
(実施例8)
図10は、タスクの起動要求が発生してから、負荷分散によるタスク実行を行う一連の他のフローの例を説明する図である。実施例8も、実施例7と同様、更新された管理リストで残り全てのタスクがデッドラインを守って実行を完了できるかを判定する(ステップP907)し、Noなら、可能と判定されるまで、ステップP904に戻り、他の制御装置ECUに実行依頼するタスクを選択し続ける。ステップP907がYesなら、タスク管理リストに従い、タスクを実行する(ステップP900)とともに、他の制御装置ECUに実行依頼するタスクとして選択したタスクについて、以下の処理を行う。
実施例7では、タスクがデッドライン以内で実行可能であるかどうかをブロードキャストで問い合わせたのに対し、実施例8では実行を依頼するタスクのデッドラインまでの時間における負荷状況を制御装置ECUを特定してメッセージMS93で問い合わせる(ステップP913)点で実施例7と相違する。例えば、ある時間までの制御装置ECUの空き時間を問い合わせる。図1の例では、タスクT3のデッドラインから返信レイテンシを差し引いた時刻16までの負荷状況を問い合わせる。これに対応して、問い合わせを受けた制御装置ECUは、自分の負荷状況をブロードキャストBC94で返信(ステップP1010)する。図1の例では、制御装置ECU2では、タスクT7を時刻17から開始することにより10単位時間の空き時間が確保できることを返信する。返信を受けた制御装置ECU1側で、問合せ先の制御装置ECUでのタスク実行可能性を判定(ステップP914)する。図10の例では、負荷状況の問い合わせ先は予め定められた制御装置ECUの順に決められ、実行可能な制御装置ECUが見つかるまで繰り返される。煩雑化を避けるために、図では省略したが、問い合わせる制御装置数の限度を設定しておき、限度に達するか全ての制御装置ECUに問い合わせても実行可能な制御装置ECUが見つからない場合には、タスク実行を放棄するようにするのが実用的である。負荷状況の応答から実行可能な制御装置ECU見つかったときは、返信のあった制御装置ECUにタスクの実行を依頼(ステップP910)する。以下、依頼を受けた制御装置ECUの依頼されたタスクへの対応は、タスクの実行結果を制御装置ECU1に報告する点も、実施例7と同様である。
また、別の方法として、各制御装置ECUが共通にアクセスできる記憶ユニットをネットワークNW1に設け、各制御装置ECUが、所定の周期で負荷状況を定期的に書き込んだデータベースを構成しておくことも可能である。このようなデータベースがあれば、制御装置ECU1は、このデータベースにアクセスして情報を入手でき、タスクの処理の依頼の可否を決定できる。したがって、実施例7のように、他の制御装置ECUに実行可否を問い合わせることや、実施例8のように、他の制御装置ECUに負荷状況を問い合わせる必要がない。
本実施例および実施例7では、全てのタスクがデッドラインを守って実行を完了できるか判定し、不可能であると判定された場合に、他の制御装置でタスクを実行する例を示している。本発明は、必ずしもデッドラインを違反する場合のみでなく、制御装置の負荷を平準化する目的で実施することが可能である。例えば、実施例7および実施例8の説明図である図9および図10のフローにおいて、全てのタスクがデッドラインを守って実行を完了できるかを判定する(ステップP903およびステップP907)処理を、全てのタ
スクを実行した場合のCPUの負荷率を計算し、例えば70%などの予め定めた負荷率を越えるかどうかを判定する処理に置き換えることで、平準化を目的に本発明の負荷分散方法を実施することができる。CPUを平準化して負荷率のピーク値を抑えることにより、従来よりも性能が低いCPUを用い、システムのコストを低減することができる。
(実施例9)
図11は直結信号線とネットワークを併用した制御システムを示す図である。電子制御装置ECU1は、制御回路CPU1、入出力制御回路IO1、センサ群SN1及びアクチュエータ群AC1から成る。センサ群SN1から入出力制御回路IO1にセンサ情報が入力され、入出力制御回路IO1からアクチュエータ群AC1にアクチュエータ制御情報が出力される。制御回路CPU1と入出力制御回路IO1は直結信号線DC1によって接続されている。更に制御回路CPU1と入出力制御回路IO1はネットワークNW1に接続されている。電子制御装置ECU2及びECU3も同様な構成となっている。
電子制御装置ECU4は、入出力制御回路IO4、センサ群SN4及びアクチュエータ群AC4から成る。センサ群SN4から入出力制御回路IO4にセンサ情報が入力され、入出力制御回路IO4からアクチュエータ群AC4にアクチュエータ制御情報が出力される。更に入出力制御回路IO4はネットワークNW1に接続されている。実施例9の電子制御装置ECU4は他の電子制御装置ECU1、ECU2、ECU3とは異なり、センサ群及びアクチュエータ群から独立した制御回路を持っていない。
制御回路CPU4はネットワークNW1に接続されているどの入出力制御回路とも直結信号線によって接続されていない独立した制御回路である。
次に、実施例9の代表的な動作を説明する。センサ情報に基づいてアクチュエータ制御情報を生成する処理を制御タスクと呼ぶことにする。この時、センサ群SN1とアクチュエータ群AC1が関与する制御タスクは多数あるのが一般的である。電子制御装置ECU1では、通常は入出力制御回路IO1がセンサ群SN1から受け取ったセンサ情報を直結信号線DC1経由で制御回路CPU1に送る。制御回路CPU1は送られたセンサ情報に基づいて制御タスクを実行して、生成したアクチュエータ制御情報を直結信号線DC1経由で入出力制御回路IO1に送る。入出力制御回路IO1は送られた制御情報をアクチュエータ群AC1に送る。そして、アクチュエータ群AC1は受け取った制御情報に基づいて動作する。或いは、入出力制御回路IO1が単純な入出力制御だけでなく制御タスクの処理能力があって、制御回路CPU1の助けを必要としない制御タスクを処理する場合は、入出力制御回路IO1はセンサ群SN1から受け取ったセンサ情報に基づいて制御タスクを実行し、生成したアクチュエータ制御情報をアクチュエータ群AC1に送り、アクチュエータ群AC1は受け取った制御情報に基づいて動作する。
従来は、この多数の制御タスクを全て電子制御装置ECU1で処理する必要があり、それに必要な能力を電子制御装置ECU1に持たせていた。実施例9では電子制御装置ECU1が全ての制御タスクを処理できない場合は、入出力制御回路IO1はネットワークNW1経由で他の電子制御装置ECU2、ECU3、ECU4、又は制御回路CPU4に、センサ群SN1から受け取ったセンサ情報を送り、送られた側はそのセンサ情報に基づいてアクチュエータ制御情報を生成して、ネットワークNW1経由で入出力制御回路IO1に送る。入出力制御回路IO1は送られた制御情報をアクチュエータ群AC1に送る。そして、アクチュエータ群AC1は受け取った制御情報に基づいて動作する。
電子制御装置ECU2及びECU3も電子制御装置ECU1と同様な動作をする。一方、電子制御装置ECU4では、入出力制御回路IO4はセンサ群SN4から受け取ったセンサ情報に基づいて制御タスクを実行し、生成したアクチュエータ制御情報をアクチュエ
ータ群AC4に送り、アクチュエータ群AC4は受け取った制御情報に基づいて動作する。また、入出力制御回路IO4に制御タスク処理能力がないか足りない場合は、他の電子制御装置ECU1、ECU2及びECU3と同様にネットワークNW1経由で他の電子制御装置ECU1、ECU2、ECU3、ECU4、又は制御回路CPU4を使って制御タスクを処理する。
電子制御装置ECU1が全ての制御タスクを処理できない場合、どの制御タスクをネットワークNW1経由で他の電子制御装置ECU2、ECU3、ECU4、又は制御回路CPU4に振り分けるかを判断する必要がある。一般に、制御回路は複数の制御タスクに優先度を付けて優先度の高いタスクから処理する。優先度が同じであれば時間的に早く受け付けたタスクを先に処理する。したがって、処理可能な範囲で優先度の高いタスクを制御回路CPU1で処理し、残りの優先度の低いタスクを他の電子制御装置ECU2、ECU3、ECU4、又は制御回路CPU4に振り分ければ、制御タスクの振り分けが可能である。また、制御タスクにはアクチュエータ群を適切なタイミングで制御するために、センサ情報を受け取ってから制御タスクを完了するまでの応答時間に制限がある。この応答時間制限は制御タスク毎に様々である。ネットワーク経由での情報の遣り取りは直結信号線による遣り取りより時間がかかる。したがって、応答時間制限によって完了すべき時刻の近い制御タスクは制御回路CPU1で処理し、残りの完了すべき時刻の比較的遅いタスクを他の電子制御装置ECU2、ECU3、ECU4、又は制御回路CPU4に振り分けると、応答時間制限を守り易くなる。この考えに基づいた実施例1〜9の負荷分散方法を用いることにより、リアルタイム性を保証した負荷分散が可能になる。
また、実施例9においては、他の制御装置にタスクの実行を依頼する通信パケットは、図8の例をもちいることも出来るが、入出力制御回路がネットワークに接続しているため、タスク起動要求パケットでは、入力データの送信を行わず、タスクを実行する制御装置がネットワークを通じて、センサからの入力信号をアクセスする方法を採ることも出来る。また、ネットワーク負荷の軽減が重要な場合は、制御回路の処理負荷に比べてネットワーク負荷が重い処理、例えば制御回路内での演算量に比べてデータ転送量が多いタスクは制御回路CPU1で処理し、残りのデータ転送量の比較的少ないタスク他の電子制御装置ECU2、ECU3、ECU4、又は制御回路CPU4に振り分けると、負荷分散の際のネットワーク負荷の軽減が図れる。タスクのデータ転送量は、実施例5の説明で用いた図6に示すタスク管理リストの情報から求めることが可能である。
自動車等の制御装置では、製品化前に処理すべき制御タスクが決まっている。しかし、状況に応じて各制御タスクを実行するタイミングや各制御タスクの処理量が変化する。したがって、全ての状況において制御が破綻しないように製品化前に最適化を行う。このため、状況に応じた最適な負荷分散ルールを事前に決めておくことが可能である。或いは、製品に依存しない汎用的な負荷分散ルールを作って、OSに組み込んだりミドルウェアで実装したりすれば、製品化前の最適化において、負荷分散の人手最適化が不要となる。この結果、システム設計者はどの制御回路で制御タスクが実行されるかを意識しなくても制御プログラムを書くことが可能となる。システム構成は、製品化後でも機能増強や部品の故障によって変化する可能性がある。このため、システム構成に応じた負荷分散ルールの自動最適化をできるようにしておくと、負荷分散を常に最適な状態に保つことができる。また、多数の制御タスクの負荷も状況に応じて変化するので、負荷分散ルールによるオンデマンドの負荷分散と、状況の変化に応じた負荷分散ルールの自動最適化とを使い分けることにより、更に最適な負荷分散を達成できる。
次に、実施例9の耐故障性について説明する。実施例9ではアクチュエータ群AC1の制御タスクに必ず必要なのはアクチュエータ群AC1自身とセンサ群SN1及び入出力制御回路IO1であるので、これらが制御タスク処理に支障が出るほど壊れてしまった場合
はアクチュエータ群AC1の制御タスクは実行不可能になる。このため、これらの部品は耐故障性の要求レベルに応じて部品レベルでの二重化等の耐故障性向上策を施す。入出力制御回路IO1が、ある制御タスクを処理する能力を有しない場合は、通常は更に直結信号線DC1及び制御回路CPU1を使用する。直結信号線DC1の故障時にはネットワークNW1経由で入出力制御回路IO1と制御回路CPU1を接続して処理を継続することが可能である。或いは、直結信号線DC1又は制御回路CPU1が故障した場合、実施例9では前述の電子制御装置ECU1が全ての制御タスクを処理できない場合と同様に、ネットワークNW1経由で他の電子制御装置ECU2、ECU3、ECU4、又は制御回路CPU4で制御タスクを実行することにより、制御を継続することが出来る。
この時、ネットワークNW1及び他の電子制御装置ECU2、ECU3、ECU4、又は制御回路CPU4の負荷が増大するが、多数の電子制御装置が接続されたシステムでは相対的な負荷増大は許容範囲内に抑えることが可能である。システム全体に能力の余裕を持たせておけば故障前と同一の処理が継続できる。例えば、制御回路一個の故障で10%能力が低下するならば、あらかじめ10%高い能力を持たせておけばよい。また、効率を重視して能力に余裕を持たせない場合でも、快適性や燃費、排気ガスの清浄度といった緊急時には我慢できる項目の質を下げることによって処理量を軽減すれば処理を継続できる。尚、自動車等の制御システムでは各部品の信頼性は十分高く同時に二つ以上の部品が故障する場合を想定する必要がないことが一般的である。例えば10万時間に一度壊れる可能性のある部品が一時間以内に二つ故障する確率は100億時間に1回である。
従来システムでは、制御回路CPU1と入出力制御回路IO1とが一体になっていたり、分離されていても入出力制御回路IO1が制御回路CPU1経由でネットワークNW1に接続されていたりして、耐故障性向上には直結信号線DC1及び制御回路CPU1を含めた多重化が必要であった。同様に、他の電子制御装置ECU2、ECU3においても耐故障性が実現できる。また、電子制御装置ECU4は耐故障性を要するアクチュエータ群AC4、センサ群SN4及び入出力制御回路IO4のみから成るので二重化等の耐故障性向上策が必要である。
実施例9ではネットワークNW1は多重化していない。ネットワークNW1が故障した場合、各電子制御装置ECU1〜ECU4はネットワークNW1経由の負荷分散には頼らずに制御タスクを実行しなければならない。通常動作時はネットワークNW1経由の負荷分散を行わず、故障時にネットワークNW1経由の負荷分散によって処理を継続するシステムであれば、ネットワークNW1と電子制御装置の同時故障のような確率の極めて低い多重故障以外の故障に対応できる。また、効率を重視して能力に余裕を持たせない場合は、ネットワークNW1経由の負荷分散に頼っていた分だけ低い性能で実行できるように、緊急時には我慢できる項目の質を下げることによって処理量を軽減すれば処理を継続できる。
制御システムの高度化に伴い制御回路CPU1〜CPU4は高性能化、高機能化が必要となっており、これらと、これらを接続する直結信号線DC1〜DC4及びネットワークNW1を多重化せずにシステムの耐故障性を実現できることはシステムの効率化向上に大きく寄与する。
実施例9ではアクチュエータ群AC1の制御タスクの負荷分散制御は、通常時は制御回路CPU1又は入出力制御回路IO1が行う。入出力制御回路IO1は耐故障性向上のために二重化等が必要になる回路なので、出来るだけ能力を制限して小さな回路とすることが望ましい。負荷分散制御を制御回路CPU1で行えば入出力制御回路IO1の小型化に寄与する。この場合、制御回路CPU1故障時の負荷分散は、他の電子制御装置ECU2〜ECU4で行う必要がある。そこで、入出力制御回路IO1が制御回路CPU1の故障
を検出できるようにして、制御回路CPU1の故障した場合は、入出力制御回路IO1があらかじめ定められたルールで選択した他の電子制御装置ECU2〜ECU4に制御タスク処理を要求し、要求を受けた電子制御装置は前記制御タスク処理を自分の管理する制御タスクに加える。この負荷分散制御の移管は他の電子制御装置ECU2〜ECU4の一つに集中的に移管する方式と分散して移管する方式が考えられる。そして、負荷分散ルールに従って最初の制御タスク実行回路となる制御回路に移管することが望ましい。一方、入出力制御回路IO1で負荷分散制御を行った場合は入出力制御回路IO1の回路規模は増大するが、制御回路CPU1故障時に負荷分散制御を他の電子制御装置ECU2〜ECU4に移管する必要がなくなる。
(実施例10)
図12は、図11の構成のネットワークを二重化した例を示す図である。図11の構成ではネットワーク経由で情報を遣り取りして複数の電子制御装置が協調して動作している場合に、ネットワークが故障すると処理を継続できない。このため、ネットワーク故障時には協調制御を必要としないレベルまで制御の質を下げる必要がある。図12のように第二のネットワークNW2を追加してネットワーク接続を二重化すれば一方のネットワークが故障してもネットワークを使用する処理を継続できる。しかしながら、単純なる二重化では耐故障性は向上するが、ハードウェア量が増えて効率が低下する。
図13は、実施例10の変形例として、図11のシステムのネットワークを分割した例を示す図である。図12の構成のネットワークと比較して、ネットワークを二重化した点では、図12の概念と同じであるが、ネットワークNW1及びNW2に分割して、ネットワークNW1に制御回路CPU1及びCPU3並びに入出力制御回路IO2及びIO4を接続し、ネットワークNW2に制御回路CPU2及びCPU4並びに入出力制御回路IO1及びIO3を接続している。図12の構成ではネットワークが対称であったため、ネットワーク経由の負荷分散に特に制約はなかった。図13の構成では電子制御装置ECU1の負荷分散先は、入出力制御回路IO1からネットワークNW2経由で繋がる制御回路CPU2及びCPU4が望ましい。しかしながら、入出力制御回路IO1から、直結信号線DC1、制御回路CPU1、及びネットワークNW1経由、又は、ネットワークNW2、入出力制御回路IO3、及び直結信号線DC3経由で、制御回路CPU3とも繋がっているので、制御回路CPU3への負荷分散も可能である。また、入出力制御回路IO2〜IO4が単純な入出力制御だけでなく制御タスクの処理能力があって電子制御装置ECU1の負荷分散先となる場合は、入出力制御回路IO3とはネットワークNW2経由で、入出力制御回路IO2及びIO4とは制御回路CPU3と同様な経路で情報の遣り取りを行うことが出来る。
直結信号線DC1又は制御回路CPU1が故障した場合には、これらを経由する経路は使用不能となるが、他の経路によって制御回路CPU2〜CPU4又は入出力制御回路IO2〜IO4による制御回路CPU1のバックアップが可能である。ネットワークNW2が故障した場合、入出力制御回路IO1は直結信号線DC1及び制御回路CPU1経由でネットワークNW1に接続できる。逆に、ネットワークNW1が故障した場合、制御回路CPU1は直結信号線DC1及び入出力制御回路IO1経由でネットワークNW2に接続できる。直結信号線DC1経由の迂回路は複数のネットワークを経由する迂回路より単純かつ高速であるため、故障時のバックアップ回路としては十分である。他の電子制御装置ECU2〜ECU4の負荷分散及びバックアップも同様に実現できる。
(実施例11)
図14は、図11のシステムのネットワークを図13とは異なる方式で分割した実施例を示す図である。ネットワークNW1及びNW2に分割して、ネットワークNW1には制御回路CPU1〜CPU4を接続し、ネットワークNW2には入出力制御回路IO1〜I
O4を接続している。実施例11では、電子制御装置ECU1の負荷分散先が制御回路CPU2〜CPU4である場合は、入出力制御回路IO1から、直結信号線DC1、制御回路CPU1、及びネットワークNW1経由、又は、ネットワークNW2、入出力制御回路IO2〜IO4、及び直結信号線DC2〜DC4経由で繋がっている。負荷分散先が入出力制御回路IO2〜IO4の場合はネットワークNW2経由で繋がっている。また、直結信号線DC1又は制御回路CPU1が故障した場合には、これらを経由する経路は使用不能となるが、他の経路によって制御回路CPU2〜CPU4又は入出力制御回路IO2〜IO4によるバックアップが可能である。他の電子制御装置ECU2〜ECU4の負荷分散及びバックアップも同様に実現できる。
(実施例12)
図15は、図11のシステムのネットワーク接続を削減した本実施例を示す図である。図11の構成の直結信号線DC1〜DC3を持つ制御回路CPU1〜CPU3のネットワークNW1への接続を削減している。ネットワークNW1を使用しない場合の動作は図11のシステムと同様である。ネットワークNW1経由で制御回路CPU1〜CPU3を使用する場合は、図11のシステムのように制御回路CPU1〜CPU3を直接ネットワークNW1へ接続する代わりに、入出力制御回路IO1〜IO3及び直結信号線DC1〜DC3経由でネットワークNW1に接続する。図11のシステムに比べると、直結信号線DC1〜DC3の故障時に対応する制御回路CPU1〜CPU3が使用できなくなるが、制御回路CPU1〜CPU3の故障に備えた余裕を持たせておけば問題ない。効率を重視して能力に余裕を持たせない場合には、直結信号線DC1〜DC3の故障確率分、制御の質を低下させなければならない確率が上がるが、ネットワーク接続を削減した分の効率が向上するので、効率を重視したシステムに向いている。
(実施例13)
図16は、図15のシステムのネットワーク接続を二重化した実施例を示す図である。図15の構成に第二のネットワークNW2を追加して、ネットワーク接続を二重化した構成である。こうすれば、一方のネットワークが故障しても、他のネットワークを使用できるので、ネットワークを使用する処理を継続できる。また、入出力制御回路IO1〜IO4が直結信号線DC1及び制御回路CPU1を経由せずに直接ネットワークNW1及びNW2に接続されているので、直結信号線DC1及び制御回路CPU1を多重化しなくても耐故障性を実現できる。
(実施例14)
図17は、図11に示す実施例9の直結信号線とネットワークを併用した制御システムのネットワークNW1に、実施例8で言及した記憶ユニットMEMUを接続した例である。この記憶ユニットMEMUに、各制御装置ECUが共通にアクセスして所定の周期で負荷状況を定期的に書き込んだデータベースを構成しておけば、各制御装置ECUは、このデータベースにアクセスして他の制御装置ECUの負荷状況の情報を入手でき、タスクの処理の依頼の可否を決定できる。この記憶ユニットMEMUは、実施例10-13のネットワークNW1、NW2にも設けることができることは当然である。
(実施例15)
以上述べてきた実施例のネットワークの物理的な配線は電気信号を伝播する伝送線路で構成することも可能であるし、光伝送線路で構成することも可能である。さらに、無線でネットワークを構成することも可能である。
図18は、無線によるネットワークの構成例を示す図である。無線でデータを通信する1つ1つのノードは、図中の制御装置ECU5のように、制御回路CPU1、入出力制御回路IO1、センサ群SN1及びアクチュエータ群AC1に加え、無線通信モジュールR
F1およびアンテナから成る。このような構成の複数の制御装置が無線で相互に通信し、距離が離れたノード間の通信では、間に存在するノードが中継を行うようなネットワークにおいても、実施例1〜9の負荷分散方法が適用可能である。ただし、この場合、タスクを依頼する先の制御装置によって、通信のための中継ノードの介入数が異なるために、通信レイテンシを変える必要がある。そのため、予め、または、ネットワークが構成された際に、各ノード間の中継段数による通信レイテンシを求めておき、リアルタイム性の保証可能性の判定に用いる。
(実施例16)
図19は、自動車内のLANで接続された制御装置とさらに無線で接続される車外のサーバによって構成されるネットワークの例を示す図である。図中の車内のネットワークNW1にはこれまでの実施例と同様に複数の制御装置が接続されている。さらに、無線通信機能を有する制御装置RC1が接続され車外のサーバSV1と無線通信を行う。サーバSV1は例えば自動車との近距離無線通信では路側に設置される。あるいは、長距離通信を用いた場合は基地局などに設置される。サーバは自動車に搭載される制御装置と比べ、巨大な記憶装置と高速な処理性能を有する。この場合にも実施例1〜9の負荷分散方法を用いることで、計算処理能力を重視されるタスク、つまり、計算処理量が大きくサーバと車内の制御装置の性能比によるメリットが通信レイテンシによるオーバヘッドを上回り、要求デッドラインを守れる場合にはサーバへのタスクの実行依頼が行われることになる。これにより、自動車内では従来不可能であった複雑な計算が必要となる高度な情報処理が可能となる。また、自動車内の計算リソースが十分出ない場合にも、車内の制御装置や演算処理装置を交換、増強するのでなく、車外の計算リソースを利用することで対応できる。
複数の制御対象機器を制御するためのプログラムを実行する複数の制御装置をネットワークで接続した分散制御システムに関するものであり、リアルタイム性の要求の高い自動車制御、ロボット制御、工場における製造機器の制御などにおいて、リアルタイム性を保証した上で、システムコスト低減と耐故障性を向上させる分散制御を実現するものである。
SN…センサ、AC…アクチュエータ、IO…センサに接続された制御回路、CPU…制御回路、NW…ネットワーク、COM…通信装置、MEMU…記憶ユニット。

Claims (9)

  1. 第1センサを有する第1制御回路と、前記第1センサの第1情報を処理する第2制御回路及び第3制御回路と、第1と第2の制御回路を接続する専用第1経路と、第1と第3の制御回路を接続する第2経路を有し、前記第1情報は第1経路を介して第2制御回路に伝達される場合と、第2経路を介して第3制御回路に伝達される場合があることを特徴とする分散制御システム。
  2. 第1アクチュエータを有する第1制御回路と、前記第1アクチュエータへの第1情報を処理する第2制御回路及び第3制御回路と、第1と第2の制御回路を接続する専用第1経路と、第1と第3の制御回路を接続する第2経路を有し、前記第1情報は第1経路を介して第2制御回路から伝達される場合と、第2経路を介して第3制御回路から伝達される場合があることを特徴とする分散制御システム。
  3. 前記第2経路は3個以上の回路が関与するネットワーク型の経路である請求項1又は2記載の分散制御システム。
  4. 前記第2経路は第4の制御回路を経由する間接的な経路である請求項1から3のいずれかに記載の分散制御システム。
  5. 前記第1制御回路と前記第3制御回路を接続する第3経路を有し、該第3経路と前記第2経路の一方が故障しても、前記第1制御回路と前記第3制御回路の接続を維持する請求項1から4のいずれかに記載の分散制御システム。
  6. 前記第1情報が第2制御回路で適切に処理できない場合に、前記第3制御回路で処理される請求項1又は2記載の分散制御システム。
  7. センサと、前記センサに接続された第1制御回路と、前記センサの情報を処理する第2制御回路及び前記第1制御回路からの信号に応答するアクチュエータと、前記第1制御回路と前記第2制御回路を接続する専用経路とを備える複数個の制御装置と、これらの電子制御装置間を連係するネットワークを備え、前記第1制御回路および前記第2制御回路が、それぞれ、前記ネットワークに接続されたことを特徴とする分散制御システム。
  8. センサと、前記センサに接続された第1制御回路と、前記第1制御回路からの信号に応答するアクチュエータとを備える制御装置および任意の制御装置からの情報を処理する制御回路が付加された請求項7記載の分散制御システム。
  9. 任意の電子制御装置からのアクセスを受け、任意の制御装置からの情報を記憶し、およ
    び、記憶した情報を提供する記憶ユニットが付加された請求項7または8記載の分散制御システム。
JP2009191718A 2009-08-21 2009-08-21 分散制御システム Withdrawn JP2010027062A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009191718A JP2010027062A (ja) 2009-08-21 2009-08-21 分散制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009191718A JP2010027062A (ja) 2009-08-21 2009-08-21 分散制御システム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004324679A Division JP4410661B2 (ja) 2004-11-09 2004-11-09 分散制御システム

Publications (1)

Publication Number Publication Date
JP2010027062A true JP2010027062A (ja) 2010-02-04

Family

ID=41732765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009191718A Withdrawn JP2010027062A (ja) 2009-08-21 2009-08-21 分散制御システム

Country Status (1)

Country Link
JP (1) JP2010027062A (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012247978A (ja) * 2011-05-27 2012-12-13 Toyota Motor Corp 制御装置及び制御方法
WO2013021472A1 (ja) * 2011-08-09 2013-02-14 富士通株式会社 スケジューリング方法、およびスケジューリングシステム
KR101299579B1 (ko) * 2011-08-16 2013-08-23 주식회사 와이즈오토모티브 차량 제어용 통합 제어 시스템 및 방법
JP2015152987A (ja) * 2014-02-12 2015-08-24 株式会社日立製作所 制御装置
JP2015525400A (ja) * 2012-06-15 2015-09-03 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 電気/電子アーキテクチャのためのセンサ構造、および車両のためのこれに対応する電気/電子アーキテクチャ
JP6143986B1 (ja) * 2016-09-27 2017-06-07 三菱電機株式会社 情報提示システム
WO2017098644A1 (ja) * 2015-12-10 2017-06-15 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム
JP2018124856A (ja) * 2017-02-02 2018-08-09 株式会社デンソー 電子制御装置
JP2019179964A (ja) * 2018-03-30 2019-10-17 株式会社Subaru 航空機
JP2020098547A (ja) * 2018-12-19 2020-06-25 富士通株式会社 情報処理装置、情報処理プログラムおよび情報処理システム
WO2020129911A1 (ja) * 2018-12-18 2020-06-25 株式会社オートネットワーク技術研究所 統括ecu、制御方法、制御システム及びプログラム
US10747546B2 (en) 2017-06-19 2020-08-18 Mitsubishi Electric Corporation Distributed allocation device, distributed allocation system, and distributed allocation method
WO2021117186A1 (ja) * 2019-12-12 2021-06-17 三菱電機株式会社 データ処理実行装置、データ処理実行方法及びデータ処理実行プログラム

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012247978A (ja) * 2011-05-27 2012-12-13 Toyota Motor Corp 制御装置及び制御方法
US9684536B2 (en) 2011-08-09 2017-06-20 Fujitsu Limited Scheduling method and scheduling system
WO2013021472A1 (ja) * 2011-08-09 2013-02-14 富士通株式会社 スケジューリング方法、およびスケジューリングシステム
JPWO2013021472A1 (ja) * 2011-08-09 2015-03-05 富士通株式会社 スケジューリング方法、およびスケジューリングシステム
KR101299579B1 (ko) * 2011-08-16 2013-08-23 주식회사 와이즈오토모티브 차량 제어용 통합 제어 시스템 및 방법
JP2015525400A (ja) * 2012-06-15 2015-09-03 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 電気/電子アーキテクチャのためのセンサ構造、および車両のためのこれに対応する電気/電子アーキテクチャ
US9623818B2 (en) 2012-06-15 2017-04-18 Robert Bosch Gmbh Sensor system for an electric/electronic architecture and associated electric/electronic architecture for a vehicle
JP2015152987A (ja) * 2014-02-12 2015-08-24 株式会社日立製作所 制御装置
JPWO2017098644A1 (ja) * 2015-12-10 2018-03-01 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム
WO2017098644A1 (ja) * 2015-12-10 2017-06-15 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US10261773B2 (en) 2015-12-10 2019-04-16 Mitsubishi Electric Corporation Information processing device, information processing method, and computer readable medium
JP6143986B1 (ja) * 2016-09-27 2017-06-07 三菱電機株式会社 情報提示システム
WO2018061066A1 (ja) * 2016-09-27 2018-04-05 三菱電機株式会社 情報提示システム
JP2018124856A (ja) * 2017-02-02 2018-08-09 株式会社デンソー 電子制御装置
US10747546B2 (en) 2017-06-19 2020-08-18 Mitsubishi Electric Corporation Distributed allocation device, distributed allocation system, and distributed allocation method
JP2019179964A (ja) * 2018-03-30 2019-10-17 株式会社Subaru 航空機
US11643188B2 (en) 2018-03-30 2023-05-09 Subaru Corporation Aircraft
WO2020129911A1 (ja) * 2018-12-18 2020-06-25 株式会社オートネットワーク技術研究所 統括ecu、制御方法、制御システム及びプログラム
JP2020098547A (ja) * 2018-12-19 2020-06-25 富士通株式会社 情報処理装置、情報処理プログラムおよび情報処理システム
JP7180362B2 (ja) 2018-12-19 2022-11-30 富士通株式会社 情報処理装置、情報処理プログラムおよび情報処理システム
WO2021117186A1 (ja) * 2019-12-12 2021-06-17 三菱電機株式会社 データ処理実行装置、データ処理実行方法及びデータ処理実行プログラム

Similar Documents

Publication Publication Date Title
JP4410661B2 (ja) 分散制御システム
JP2010027062A (ja) 分散制御システム
US10780894B2 (en) Vehicle control device and vehicle control system
CN109204324B (zh) 用于操作自动驾驶车辆的集中调度系统
CN109213143B (zh) 操作自动驾驶车辆的使用事件循环的集中调度系统
JP5255579B2 (ja) 車内データ中継装置、車両制御システム
JP5843020B2 (ja) 通信装置及び通信方法
JP2006338264A (ja) タスク割当装置およびタスク割当方法
JP2007034359A (ja) 分散制御装置
JP5360061B2 (ja) マルチプロセッサシステム及びその制御方法
JP5712783B2 (ja) 電子制御ユニット、車載ネットワーク、データ送信方法
JP2011022934A (ja) 電子制御ユニット、異常検出方法
KR101073428B1 (ko) 자동차용 임베디드 운영체제의 태스크 스케줄링 방법
JP5110998B2 (ja) 分配装置、通信システム及び通信方法
JP2020022019A (ja) 車両システム
JP2020078022A (ja) ネットワークシステム
JP7039861B2 (ja) 車両用サービス管理装置及び車両用サービス管理プログラム
JP2013147209A (ja) 電子装置
JP5601306B2 (ja) 車両ネットワークの通信管理装置
JP2004220326A (ja) 制御ソフトウエア構造およびこの構造を用いた制御装置
JP4963310B2 (ja) 分散制御システム
WO2023209820A1 (ja) 車載電子装置
JP7396245B2 (ja) 運行管理方法、サーバ、及びシステム
JP2005346164A (ja) データ処理装置およびデータ転送制御方法
TW201626222A (zh) 用以決定任務分配路徑的方法、裝置及系統

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100531