JP2007034359A - 分散制御装置 - Google Patents

分散制御装置 Download PDF

Info

Publication number
JP2007034359A
JP2007034359A JP2005212238A JP2005212238A JP2007034359A JP 2007034359 A JP2007034359 A JP 2007034359A JP 2005212238 A JP2005212238 A JP 2005212238A JP 2005212238 A JP2005212238 A JP 2005212238A JP 2007034359 A JP2007034359 A JP 2007034359A
Authority
JP
Japan
Prior art keywords
control device
control
task
requested
ecu
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
JP2005212238A
Other languages
English (en)
Inventor
Akihiko Hyodo
章彦 兵頭
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 JP2005212238A priority Critical patent/JP2007034359A/ja
Priority to US11/354,072 priority patent/US20070021847A1/en
Publication of JP2007034359A publication Critical patent/JP2007034359A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/029Adapting to failures or work around with other constraints, e.g. circumvention by avoiding use of failed parts
    • B60W2050/0297Control Giving priority to different actuators or systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25229Partition control software among distributed controllers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2637Vehicle, car, auto, wheelchair

Abstract

【課題】複数の制御装置がネットワークで接続された分散制御システムにおいて、入出力処理を必要とする、もしくは固有の制御装置内に格納されているデータを利用しなければならないといった、制御装置に固有の特性を持つタスクを、他の制御装置上にて転送実行することができる分散制御システムの実現にある。
【解決手段】制御装置固有のタスクを他の制御装置上にて転送実行するために、転送元制御装置は、本来の機能に加え、記憶領域の入力データやコンテキスト情報を集め転送先制御装置に転送する機能を持たせる。転送先制御には、転送元制御装置から送信されたデータを記憶領域に格納し、演算を行い、結果を転送元制御装置に返信する機能を持たせる。演算処理を行うタスクのプログラムは、転送先制御装置と転送元制御装置の双方に存在させ、転送先制御装置はタスクの処理に適切な方法で参照アドレスを決定する。
【選択図】図1

Description

本発明は、複数の制御対象機器を制御するためのプログラムを実行する複数の制御装置をネットワークで接続した分散制御システムに関するものであり、特に車両制御に代表されるリアルタイム性の要求の高い分散制御システムに関する。
近年、自動車等の制御システムは、安全性、快適性の追求、環境配慮の観点において制御の高度化が進んでおり、搭載される電子制御装置(ECU)の数は増加の一途をたどっている。車載電子制御システムでは、ECUがセンサ等から入力された情報に基づいて制御信号を生成してアクチュエータに出力し、アクチュエータがその制御信号に基づき動作する。各ECUは車載LANで接続され通信ネットワークを構築しており、データ共有化や連係動作を行うことによって高度な協調制御を実現している。
このように各ECUをネットワークで接続した分散制御システムにおいては、個々のECUは固有の制御プログラムのみを実行するように構成され、最大の負荷に対応できる処理性能を必要とする。しかし、制御対象機器が動作しない場合や複雑な制御を必要としない場合には、ECUの処理能力を十分に利用していないために全体としての動作効率が低いという問題がある。
そこで、複数のECUで負荷を分散して処理を行わせることによって各ECUの余剰能力を有効活用しようとする技術が提案されている。例えば、特開2004−38766号公報「車両用通信システム」(以下、特許文献1)では、各種制御対象機器を制御するのに必要な制御プログラムを、ネットワークに接続されたECU毎に実行する必要のある固有タスクと、任意のECUにて実行可能なフロートタスクとに分け、そのフロートタスク実行用のプログラムを、ネットワークに接続されたマネージャECUにて管理することにより、制御装置全体の稼働率を高め、各制御装置の資源を有効に活用する。
特開2004−038766号公報
特許文献1で開示された技術は、転送対象となるタスクを任意のECUで実行可能なフロートタスクに限定している。自動車制御においては、一般的には、個々の制御装置での処理が負荷の大半を占めており、特許文献1のように局所性のあるタスクを負荷分散の対象から除外すると、負荷分散に用いることができるタスクが少なくなってしまう。このため、非常に限定された負荷分散効果しか期待出来ない。
本発明の課題は、複数の制御装置がネットワークで接続された分散制御システムにおいて、入出力処理を含み制御装置内に格納されているデータを利用するといった、制御装置に固有の特性を持つタスクを、他の制御装置上にて転送実行することができる分散制御システムの実現にある。
前記の課題を達成するために、本発明では、各ECUに制御装置固有のタスクを転送するための新たな機能を持たせる。ここで、転送元制御装置をECU1、転送先制御装置をECU2とし、ECU1に固有のタスクでありECU1からECU2へ転送することができるタスクをタスクTAとするとき、ECU1においては以下に述べる機能を持たせる。
まず、ECU1本来の機能として、(1)タスクTAの実行に必要である入力データをECU1に接続されているセンサから取り込みランダムアクセスメモリ(RAM)に格納する機能、(2)RAMに格納されている入力データを用いてタスクTAの演算処理を行う機能、(3)タスクTAの演算処理結果をアクチュエータに出力する機能を備えるものとする。前記(1)〜(3)の本来の機能に加えて、ECU2にタスク処理を依頼し、処理結果を受けて利用するための機能として、(4)前記機能(1)によりRAMに格納されたデータも含む、タスクTAの演算に必要な入力データをRAMから集め、さらにECU1内の汎用レジスタや制御レジスタなどのコンテキスト情報も必要であれば含めて、ECU2に転送する機能、(5)ECU2に転送したタスクの結果データが返信されてきた場合に、その結果データをECU1に接続されたアクチュエータに出力、もしくは必要であればECU1のRAMに格納する機能、の2つの機能を新たに持たせる。
一方、前記ECU2では、前記ECU1と同様、ECU2本来の機能として前記(1)〜(3)の機能を持つ他、以下に述べる機能を新たに持たせる。(6)ECU1から送信されてきたタスクTAの入力データをECU2のRAMに格納する機能、(7)RAMに格納された入力データを用いてタスクTAの演算処理を行い、演算結果をRAMに格納する機能、(8)RAMに格納された前記演算結果を集めECU1に送信する機能、の3つの機能である。
本発明によれば、一般的に処理負荷の大部分を占める個々の制御装置に固有であるタスクを転送実行の対象とすることができるようになるため、従来にない高い負荷分散効果を得ることができる。
ECU1、ECU2が、ともに本来のタスクを持っていることを前提に他のECUにタスクの処理を依頼する場合、処理を依頼するタスクのデータのみならずプログラムを含めて依頼することにする方法もある。本発明では、ECU1、ECU2間で処理を依頼するタスクは既定とし、ECU1、ECU2ともに処理を依頼するタスクのプログラムを持つものとされ、処理を依頼するときは、関連データが転送されればよいものとされる。
したがって、処理を依頼されるECU2上ではタスクTAの演算を実行できる形態にしたプログラムが格納されているが、細かく見れば、これは処理を依頼するECU1に格納されているプログラムの形態とは、異なるものが格納されている場合もある。
具体的には、ECU1内に格納されているプログラムとECU2内に格納されているプログラムとでは記憶領域の参照先のアドレスが異なる場合がある。もしくは、ECU1のプログラムと参照先アドレスが同一のままのプログラムをECU2にも格納して、アドレス変換テーブルのような、中央処理装置(CPU)のメモリアクセスのアドレスを補正するハードウェアを新たに設けて、逐次、適したデータにアクセスするようにする場合がある。
このため、ECU2内のCPUに直接メモリにアクセスするモードとアドレス変換テーブルによりアドレス補正を行うモードとを設けておき、実行中のタスクが処理を依頼されたものである場合は、アドレス補正を行うモードで実行を行うようにするのも良い。なお、処理を依頼されたタスクに関する、入力データ、出力データの送受信は、全てのデータが揃った時点で一括して送信する方法、個々のデータを逐一送信する方法、あるいは、あるまとまりで複数回送信する方法を取ることも可能である。
タスクTAをECU1上で実行する場合は前記機能(1)→(2)→(3)の順に処理を行えばよく、この処理の流れを処理モード1と呼ぶ。タスクTAの処理を依頼して実行する場合は、前記機能(1)→(4)→(6)→(7)→(8)→(5)→(3)の順に処理を行えばよく、この処理の流れを処理モード2と呼ぶ。ECU1はタスクTAの起動時に前記2つのどちらの処理モードで実行を行うか選択できるが、基本的にはタスクTAを処理モード1で処理する。しかし、そうすると、タスクのデッドラインが守れない場合に処理モード2で処理を行うことにして、ECU2に処理を依頼する。これら(1)〜(8)の機能を持ち、二つの処理モードを持つことにより、各ECUに固有のタスクを、他のECUで実行することが可能となり高い負荷分散効果を得ることができる。
(実施例1)
図1は、N個の制御装置ECU1〜ECUNが通信路に接続された実施例1にかかる分散制御システムの全体構成を示すブロック図である。各ECUはリードオンリーメモリ(ROM)やRAMなどの記憶装置と演算を行うCPUと入出力装置I/Oと通信器COMから構成されている。
ECU1のROM1には、ECU1でのみ実行できるタスクT11と、ECU1もしくはECU1の依頼を受けたECU2が実行できるタスクT12が格納されている。ECU1のROM1には、さらにT12の転送実行時の入出力データ送受信に関係するプログラムであるT12ISとT12ORが格納されている。T12ISは、T12の演算処理に必要となる入力データをECU1に接続されたセンサやROM1、RAM1から集めて通信器COM1へ渡す処理を行うプログラムである。T12ORは、タスク転送先ECU2から返信されてきた演算結果データをI/O1に書き込む処理やRAM1に格納する処理を行うプログラムである。これらT12ISとT12ORのプログラムは、タスクとして扱ってもよいし、オペレーティングシステム(OS)が担当する処理という扱いでも特に問題はない。
ECU2のROM2には、ECU2でのみ実行できるタスクT21と、ECU1から依頼を受けた場合に実行できるタスクT12’が格納されている。ECU1のROM1に格納されているタスクT12とECU2のROM2に格納されているタスクT12’は、演算処理内容は同一であるが演算時に参照するメモリアドレスが異なっているため「’」を付け区別している。T12とT12’は、CPU1とCPU2の間に互換性がない場合には当然異なるバイナリコードとなる。またT12とT12’とで異なる演算処理アルゴリズムを利用していたとしても出力結果の数値が一致していれば特に問題はない。ECU2のROM2には、さらにECU1のタスクT12を転送実行する場合の入出力データ送受信に関係するプログラムであるT12IRとT12OSが格納されている。T12IRは、T12’の演算処理に必要となる入力データを、ECU1からの送信データを受信した通信器COM2から受け取りRAM2に格納する処理を行うプログラムである。T12OSは、T12’の演算処理結果データをRAM2から集めて通信器COM2に渡す処理を行うプログラムである。これらT12IRとT12OSのプログラムは、タスクとして扱ってもよいし、オペレーティングシステム(OS)が担当する処理という扱いでも特に問題はない。また、図示していないが、各ECUは転送可能なタスクと転送先ECUについての情報をテーブルとして保持している。以下、通常のタスク実行例としてタスクT11の実行処理の流れを説明する。
まず、タイマ割り込みなどの要因によりタスクT11が起動される。ECU1は入出力装置I/O1を通じてECU1に接続されたセンサからタスクT11の演算実行に必要な入力データを受け取る。そして、タスクT11に記述されたプログラム手順に基づき、上記センサからの入力データや、ROM1、RAM1に格納されたデータなどを用いてCPU1で演算を行い、第一制御対象を制御する信号を生成する。その際、必要であれば通信器COM1から通信路を通して他のECUとデータの送受信を行う。その後、ECU1は入出力装置I/O1を通じてアクチュエータに制御信号を出力することにより、第一制御対象を制御する。
タスクT12に関しては、ECU1での実行かECU2へ転送しての実行か選択することができるため、起動要求が発生した時にどちらの実行方法にするか選択する必要がある。選択の基準は、基本的にはタスクT12をECU1で実行した場合にタスクのデッドラインが守れるか否かである。これについては、図9を参照して、後述する。ECU1で実行する方法を選択した場合は、先に示したタスクT11の実行と同様の流れで処理が行われる。ECU2へ転送して実行する方法を選択した場合については、以下に図2を用いて説明する。
図2は、ECU1のROM1に格納されているプログラムT12ISとT12OR、ECU2のROM2に格納されているプログラムT12IRとT12OSについて、転送実行における入出力データのやり取りの様子を示している。タスクT12が起動され、ECU2に転送して実行する方法を選択した場合には、まずプログラムT12ISが実行される。プログラムT12ISは、タスクT12の演算に必要となるセンサからの入力データやROM1、RAM1のデータを集めて通信器COM1へ渡す。入力データを集めたパケットは、通信器COM1から通信路を通してECU2の通信器COM2へ渡される。
そして、通信割り込みの発生に起因してプログラムT12IRが起動される。プログラムT12IRは、通信器COM2から入力データパケットを受け取り、事前に決定もしくは実行時にRAM2の空き領域を確保した時点で決定されたアドレスに入力データを格納する。タスクT12’は、入力データが全てRAM2に格納された後に起動されて演算処理を始めてもよいし、入力データパケット受信時の通信割り込みの発生に起因して起動され、入力データの格納処理と並行して演算実行処理を始めるようにしてもよい。タスクT12’の演算処理が完了した後、もしくは演算処理中に一部の結果データがRAM2に格納された時点で、プログラムT12OSが起動される。プログラムT12OSは、タスクT12’の演算結果のデータをRAM2から集めて通信器COM2に渡す。
この出力データパケットは通信器COM2から通信路を通してECU1の通信器COM1に送信される。そして、通信割り込みの発生に起因してプログラムT12ORが起動される。プログラムT12ORは、通信器COM1から出力データパケットを受け取り、入出力装置I/O1を通じてアクチュエータへ制御信号を出力する。このとき必要であれば、上記出力データの一部をRAM1に格納する処理も行う。以上の手順によって、タスクT12の転送実行が行われる。
図3は、図2で示した入出力データ送受信プログラムT12IR、T12IS、T12OS、T12ORによるデータ格納例を用いた場合の、タスクT12とT12’の実行時のメモリ参照先のアドレスの相違を示している。タスクT12’の参照アドレスは事前に絶対アドレスとして決めておく必要はなく、相対アドレスを決めておき、プログラムT12IRが使用するメモリ領域を実行時に決定してタスクT12’に知らせるようにする方法などが考えられる。
(実施例2)
次に、本発明にかかる分散制御システムの実施例2について実施例1との相違点を中心に、図4、図5および図6を用いて説明する。
図4は、実施例1におけるECU1でのタスクT12をタスクT12P、タスクT12M、タスクT12Eの3つのプログラム処理で代替している。ここではタスクT12P、T12Eをタスクと呼んでいるが、これらは格納されているデータをタスクT12の進行に対応して新しい所定のアドレスに移す処理に過ぎないから、ECU1のOSの処理に含めても問題ない。タスクT12Pは、前記タスクT12の処理に必要となるセンサなどのI/O領域の入力データを全てRAM領域に格納する。タスクT12MはRAMから入力データを得て演算処理を行い、出力データをRAMに格納する。タスクT12Eは、RAM領域に格納された出力データをアクチュエータなどに出力するためにI/O領域に移す処理を行う。この手順によってECU1上で前記タスクT12の実行が行われる。
図5は、上記のECU1での上記タスク実行に伴うメモリアクセスの様子と、その結果としてのECU1のメモリ領域の記憶状況を図示したものである。ECU1記憶状況Aは、タスクT12が起動される前のECU1のメモリ領域の記憶状況を示す。ここでは、RAM領域の3つのエリア入力データが格納されている状況であるとともに、I/O領域に新しい入力データが格納された状況である。タスクT12の起動に応じて、タスクT12PはECU1記憶状況Aに示すI/O領域の入力データを全てRAM領域に格納する。その結果、ECU1記憶状況Bに示すように、RAM領域には入力データが全て揃うことになる。タスクT12MはECU1記憶状況Bに示すRAM領域にあるすべての入力データを得て演算処理を行い、出力データをRAM領域の2つのエリアに格納する。このとき、ECU1記憶状況Cに示すように、保存されている入力データに影響を及ぼさないエリアに保存されることは言うまでもない。タスクT12Eは、RAM領域に格納された2つの出力データのうち、アクチュエータなどに出力するためのデータをI/O領域に移す処理を行う。ECU1記憶状況Dは、タスクT12の処理が完了した段階でメモリ領域の記憶状況を示す。
一方、実施例2ではECU2がECU1のタスクT12を実行する場合、タスクT12に代えて、ECU1に格納されているタスクT12Mのみを格納しておく。ECU1からECU2にタスクの実行が依頼されたときは、ECU1のRAM領域に集められた入力データは、通信器COM1でパケットに纏められて通信路を通してECU2の通信器COM2へ渡される。図6は、ECU2での上記タスク実行に伴うメモリアクセスの様子と、その結果としてのECU2のメモリ領域の記憶状況を図示したものである。
ECU2記憶状況Aは、ECU1のタスクT12のための入力データが、ECU2の通信器COM領域に格納された状態を示す。ECU2のプログラムT12IRはCOM領域に格納された入力データをRAM領域に移す操作を行う。この場合、タスクT12Mが参照するメモリアドレスが有効であるように格納する。したがって、実施例1のタスクT12’のように参照メモリアドレスの補正を行う必要は無い。タスクT12MはECU2記憶状況Bに示すRAM領域にあるすべての入力データを得て演算処理を行い、出力データをRAM領域の2つのエリアに格納する。このとき、ECU2記憶状況Cに示すように、保存されている入力データに影響を及ぼさないエリアに保存されることは言うまでもない。ECU2のプログラムT12OSは、RAM領域の2つのエリアに格納されている出力データを、ECU1に転送するのに備えて、COM領域に格納する。ECU2記憶状況Dは、タスクT12の処理が完了した段階でメモリ領域の記憶状況を示す。
COM領域に格納された出力データはECU2−通信路−ECU1を通して、ECU1の通信器COM1へ渡される。
実施例2においては、前記タスクT12の演算処理部分T12Mは、自己が参照するメモリアドレスを維持できるように、プログラムT12IRとT12OSを設定すれば良いので、複数の転送先ECUにおいて共通のタスクT12のプログラムを用いてよいため、実装が容易になるという利点がある。
(実施例3)
次に、本発明にかかる分散制御システムの実施例3について実施例2との相違点を中心に、図7を用いて説明する。
実施例3においては、ECU2のCPUがRAMなどの記憶領域をアクセスする際に、アドレス変換テーブル(ATT)を経由するか、直接アクセスを行うかをセレクタ回路(sel)で選択できるようになっている。CPUから出力されるadはアドレスを示す信号、mdはアクセスのモードを選択する信号を表している。
実施例2においては、転送先のECU2においてタスクT12Mは依頼元のECU1がタスクT12を実行するときの参照先のアドレスが使用できるものとした。そのため、ハードの実装の面では簡便で有利である反面、依頼を受けたECU2では、その都度、タスクT12Mの参照領域となるメモリ領域を開放する必要がある。あるいは、依頼を受けることを前提として所定のメモリ領域を空けておくことが必要となる。依頼を受ける都度、メモリ領域を開放することにすると、ECU2本来のタスクの処理効率が悪くなるし、所定のメモリ領域を空けておく場合には、メモリの利用率が悪くなる。
したがって、ECU2全体の処理スケジュールに余裕があり、依頼されるタスクT12に備えて所定のメモリ領域を空けておける場合には、実施例2と同様に直接アクセスを行うことにする。一方、所定のメモリ領域を空けておく余裕が無い場合には、依頼されたタスクT12の処理の際に、アドレス変換テーブル(ATT)を利用して、参照先のメモリ領域のアドレスに変換して、アクセスを行うことにする。
アドレス変換テーブル(ATT)がどのようにアドレスを補正するかは、固定的に決定しておくこともできるし、動作時に書き換え可能としておくこともできる。アドレス変換テーブルによるアドレス補正機能を利用することで、ECU2の制御プログラムのアドレス参照先の決定に柔軟性ができるメリットもある。
(実施例4)
次に、本発明にかかる分散制御システムの実施例4について図8と図9を用いて説明する。
図8に示すように、実施例4ではECU1はCPUモニタとタスク転送先ECUテーブルを有する。テーブルには、転送可能なタスクがリストアップされており、転送される優先度の情報や、優先度順に並んだ転送先ECUの情報が登録されている。また、ECU1はCPUモニタを具備し、自己のCPU負荷を観測しており、CPU負荷が事前に設定した閾値を超えた場合に、ECU1はタスクの転送を開始することができる。タスク転送先ECUテーブルを具備することによって、より効率的に負荷分散を行うことが可能となる。ECU2はCPUモニタを具備することによって、ECU1からのタスク転送実行依頼を引き受けるか否かを自己の観測したCPU負荷に基づき決定することができる。
図9は、タスクの起動要求が発生してから負荷分散によるタスク実行を行うまでの一連のフローを示している。ECU1でタスクの起動要求が発生したら、まずECU1は実行可能状態にある全てのタスクがデッドラインを守って実行を完了できるかを判定する(ステップ1)。もし可能であればあらかじめ登録されている優先順位に従いタスクの実行を行う(ステップ2)。不可能であると判定された場合には、実行可能状態にあるタスクの中から他のECUに依頼して実行することが可能なタスクが存在するか調べる(ステップ3)。もし、他のECUで実行可能なタスクが存在しない場合は、タスク実行放棄処理を行う(ステップ4)。タスク実行放棄処理は、例えば、実行可能状態にある全タスクの中で最も実行優先度の低いタスクを削除するなどの方法がある。タスク実行放棄処理を終えたら、再度残りの全ての実行可能状態にあるタスクがデットラインを守って実行を完了できるかを判定する(ステップ1)。可能であると判定されるまでこの手順は続けられる。
次に、他のECUで実行可能なタスクが存在する場合について、もし、一つしか存在しない場合はそのタスクを選択し、複数存在する場合はECU1が有するタスク転送先ECUテーブルを参照して転送の優先順位が最も高いタスクを選択する(ステップ5)。そして選択したタスクについて、ECU2に依頼した場合にタスクのデッドライン時間を守って実行を完了できるか判定する(ステップ6)。判定は、タスクの実行時間やデータ転送時間などの事前に与えられている情報に基づき行われる。不可能であると判定された場合は選択タスクを候補から除外した(ステップ7)後、他に転送実行が可能であるタスクが存在するかを調べ(ステップ3)同様の手順を繰り返す。可能であると判定された場合は、ECU1が有する転送先ECUテーブルを参照し、最も高い優先順位が与えられている転送先候補ECUに対して実行可否の問い合わせを行う(ステップ8)。
実行可否の問い合わせを受けたECU2は、ECU2が有する自己のCPU負荷モニタを参照するか、もしくは事前に与えられた問い合わせを受けているタスクの情報を基にするなどして、実行の依頼を引き受けることが可能であるか判定(ステップ9)し、判定結果を依頼元のECUに返信する(ステップ10)。
ECU2に実行可否の問い合わせを行ったECU1は、事前に定めた一定時間、ECU2からの返信を待つ(ステップ11)。一定時間内に返信が来なかった場合、もしくは返信は来たが実行依頼が不可能であるという判定(ステップ12)の場合は、ECU2を転送先ECU候補から外し(ステップ13)、選択タスクのデッドラインが保証可能であるか再度判定(ステップ6)し、上記手順を繰り返す。依頼の引き受けが可能であるというECU2からの返信の場合は、ECU2にタスクの実行依頼を行い(ステップ14)、引き続き残りのタスクの実行を行う。
依頼の引き受けが可能であると返信したECU2は、一定時間ECU1からの実行依頼を待つ(ステップ15)。一定時間内に実行依頼があった場合、依頼されたタスクの実行を行い(ステップ16)、結果のデータをECU1に返信(ステップ17)し通常処理に戻る(ステップ18)。もし一定時間内にECU1から実行依頼がなかった場合は通常処理に戻る(ステップ19)こととする。
ECU1は、ECU2からの結果の返信を受け取ると返信データの処理(ステップ20)を行う。一定時間内にECU2からの結果の返信がない場合は返信データの処理(ステップ20)として、依頼タスクの実行放棄処理を行う。
(実施例5)
次に、本発明にかかる分散制御システムの実施例5について図10を用いて説明する。
実施例5においては、ECU2は、ECU1の制御項目について、ECU1に格納されているタスクT12のプログラムと同一のタスクT12のプログラムを保有している。ECU2は、ECU1からタスクT12の実行を依頼された場合に、自己の記憶領域に格納しているタスクT12を実行する。ECU2でタスクT12を実行するためのデータは、通信起動装置(COMCON)によりECU1にデータの転送要求を送り、ECU1の記憶領域のデータを転送して入手する。さらに、演算結果の格納先もECU1の記憶装置アドレスであるために、ECU1の記憶領域へのデータの書き込みに対しては、通信起動装置(COMCON)によりECU1へのデータ転送が行われる。実施例5では、データ参照やデータ書き込みの度に通信が起動されるというオーバーヘッドと通信起動装置(COMCON)という追加機能が必要であるが、ECU1とECU2のプログラム(T12)は全く同一であるため、ECU2用にプログラムを修正する必要がないという利点がある。
ECU2にメモリ参照先を変えたタスクを格納した分散制御システムを示す図である。 実施例1のデータ送受信プログラムによる転送タスク実行時のデータの流れを示す図である。 実施例1のタスク実行時のメモリ参照アドレスの違いを示す図である。 I/Oへのアクセスを要する処理を分離したタスク構成でプログラムを格納している分散制御システムを示す図である。 実施例2の分散制御システムにおけるECU1でのタスク実行に伴うメモリアクセスを示す図である。 実施例2の分散制御システムにおけるECU2でのタスク実行に伴うメモリアクセスを示す図である。 実施例3におけるアドレス変換テーブルを参照して転送タスクの実行を行う分散制御システムを示す図である。 実施例4におけるCPU負荷モニタとタスク転送先ECUテーブルを有する分散制御システムを示す図である。 実施例4におけるタスク負荷分散フローを示す図である。 実施例5におけるプログラム実行時に通信モジュールを起動する分散制御システムを示す図である。
符号の説明
ECU…制御装置、ROM…リードオンリーメモリ、RAM…ランダムアクセスメモリ、CPU…中央処理装置、COM…通信器、T11,T12…タスク、I/O…入出力装置。

Claims (15)

  1. ネットワークで接続された複数の制御装置の各制御装置が入出力装置、記憶装置、演算装置および通信器から構成され、各制御装置が複数のタスクを分散して実行する分散制御システムであって、前記ネットワークに接続された第1の制御装置と第2の制御装置との間で、
    前記第1の制御装置が、
    入力装置から記憶領域への入力機能、
    記憶装置内のデータを用いた制御タスクの演算機能、
    演算結果を出力装置に出力する機能、
    記憶装置内のデータ、汎用レジスタやステータスレジスタなどの情報を含むコンテキストを前記第2の制御装置に転送する機能、及び、
    前記第2の制御装置から転送されたデータを記憶装置に格納する機能を有し、
    前記第2の制御装置が、
    前記第1の制御装置から転送されたデータを記憶する機能、
    記憶装置のデータを用いた制御タスクの演算機能、及び、
    演算結果を第1の制御装置に転送する機能を有することを特徴とする分散制御システム。
  2. 前記第1の制御装置が自己の実行すべき制御タスクの演算機能を代行可能な制御装置に関する情報を保持している請求項1記載の分散制御システム。
  3. 前記第1の制御装置は、自己の実行すべき制御タスクを所定のデッドライン内に処理できないと判定したときに、該制御タスクの演算機能を代行可能な制御装置に処理の依頼をする請求項2記載の分散制御システム。
  4. 前記第1の制御装置は、自己の実行すべき制御タスクを所定のデッドライン内に処理できないと判定したときに、該制御タスクの演算機能を代行可能な制御装置の設定されている優先順位にしたがって処理を依頼する請求項3記載の分散制御システム。
  5. 前記第1の制御装置から制御タスクの演算機能の代行を依頼された制御装置は、実行可能性を判定して実行可否を前記第1の制御装置に通知し、前記第1の制御装置は所定時間内に実行可を通知されたときは代行を依頼した制御装置に実行依頼を送り、代行を依頼された制御装置は前記第1の制御装置からの実行依頼を待って実行する請求項4記載の分散制御システム。
  6. 前記第1の制御装置は、制御タスクの演算機能の代行を依頼された制御装置から所定の時間内に返信がなくあるいは実行否を通知されたときは代行を依頼した制御装置に代わる他の制御装置に制御タスクの演算機能の代行を依頼する請求項5記載の分散制御システム。
  7. 前記制御タスクの演算機能の代行を依頼された制御装置は、実行可を通知された第1の制御装置から所定の時間内に実行依頼があったときは実行し、所定の時間内に実行依頼がないときは、代行を依頼されたタスクの演算機能を無視して、自己の通常処理に戻る請求項5記載の分散制御システム。
  8. 前記制御タスクの演算機能の代行を依頼された制御装置は、前記第1の制御装置から転送されたデータ、汎用レジスタやステータスレジスタなどの情報を含むコンテキストを前記第1の制御装置のデータ参照アドレスと同一の参照アドレスに格納し、前記代行を依頼された制御装置は前記同一の参照アドレスにアクセスして処理を実行する請求項5記載の分散制御システム。
  9. 前記制御タスクの演算機能の代行を依頼された制御装置は、前記第1の制御装置から転送されたデータ、汎用レジスタやステータスレジスタなどの情報を含むコンテキストを前記第1の制御装置のデータ参照アドレスと異なった参照アドレスに格納し、前記代行を依頼された制御装置はアドレス変換器を介して前記異なった参照アドレスにアクセスして処理を実行する請求項5記載の分散制御システム。
  10. ネットワークで接続された複数の制御装置の各制御装置が入出力装置、記憶装置、演算装置および通信器から構成され、各制御装置が複数のタスクを分散して実行する分散制御システムであって、前記ネットワークに接続された第1の制御装置と第2の制御装置との間で、前記第1の制御装置と第2の制御装置は第1の制御装置の固有の制御項目のプログラムと同一のプログラムを少なくとも1つ記憶装置に保持し、第2の制御装置は第1の制御装置からの実行依頼に従い、前記プログラムを実行するものであるとともに、前記プログラムを実行するために必要となるデータは、通信器およびネットワークを介して第1の制御装置からデータを転送して導入し、実行結果は、通信器およびネットワークを介して第1の制御装置にデータを転送することを特徴とする分散制御システム。
  11. 前記第1の制御装置は、自己の実行すべき制御タスクを所定のデッドライン内に処理できないと判定したときに、該制御タスクの演算機能を代行可能な制御装置に処理の依頼をする請求項10記載の分散制御システム。
  12. 前記第1の制御装置は、自己の実行すべき制御タスクを所定のデッドライン内に処理できないと判定したときに、該制御タスクの演算機能を代行可能な制御装置の設定されている優先順位にしたがって処理を依頼する請求項11記載の分散制御システム。
  13. 前記第1の制御装置から制御タスクの演算機能の代行を依頼された制御装置は、実行可能性を判定して実行可否を前記第1の制御装置に通知し、前記第1の制御装置は所定時間内に実行可を通知されたときは代行を依頼した制御装置に実行依頼を送り、代行を依頼された制御装置は前記第1の制御装置からの実行依頼を待って実行する請求項12記載の分散制御システム。
  14. 前記第1の制御装置は、制御タスクの演算機能の代行を依頼された制御装置から所定の時間内に返信がなくあるいは実行否を通知されたときは代行を依頼した制御装置に代わる他の制御装置に制御タスクの演算機能の代行を依頼する請求項13記載の分散制御システム。
  15. 前記制御タスクの演算機能の代行を依頼された制御装置は、実行可を通知された第1の制御装置から所定の時間内に実行依頼があったときは実行し、所定の時間内に実行依頼がないときは、代行を依頼されたタスクの演算機能を無視して、自己の通常処理に戻る請求項13記載の分散制御システム。
JP2005212238A 2005-07-22 2005-07-22 分散制御装置 Withdrawn JP2007034359A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005212238A JP2007034359A (ja) 2005-07-22 2005-07-22 分散制御装置
US11/354,072 US20070021847A1 (en) 2005-07-22 2006-02-15 Distributed control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005212238A JP2007034359A (ja) 2005-07-22 2005-07-22 分散制御装置

Publications (1)

Publication Number Publication Date
JP2007034359A true JP2007034359A (ja) 2007-02-08

Family

ID=37680112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005212238A Withdrawn JP2007034359A (ja) 2005-07-22 2005-07-22 分散制御装置

Country Status (2)

Country Link
US (1) US20070021847A1 (ja)
JP (1) JP2007034359A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009061883A (ja) * 2007-09-05 2009-03-26 Denso Corp 車両用空調装置
KR101524152B1 (ko) * 2013-09-27 2015-05-29 삼성중공업 주식회사 이중화 제어 장치 및 이중화 제어 방법
JP2017092835A (ja) * 2015-11-16 2017-05-25 日立オートモティブシステムズ株式会社 処理装置および車両制御システム
JP2020516346A (ja) * 2017-04-03 2020-06-11 ソニー・インタラクティブエンタテインメント エルエルシー 分散型ゲームエンジンを使用するシステム及び方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008152470A (ja) * 2006-12-15 2008-07-03 Hitachi Ltd データ処理システム及び半導体集積回路
JP4934113B2 (ja) * 2008-08-01 2012-05-16 株式会社オートネットワーク技術研究所 制御装置及びコンピュータプログラム
US8761190B2 (en) * 2011-01-06 2014-06-24 GM Global Technology Operations LLC Message loss prevention by using sender and receiver buffers in event-triggered distributed embedded real-time systems
US8863256B1 (en) 2011-01-14 2014-10-14 Cisco Technology, Inc. System and method for enabling secure transactions using flexible identity management in a vehicular environment
US20130201316A1 (en) 2012-01-09 2013-08-08 May Patents Ltd. System and method for server based control
WO2014044298A1 (de) * 2012-09-18 2014-03-27 Siemens Aktiengesellschaft Verfahren zur durchführung einer verbesserten rechenlastverteilung in einem automatisierungs-system
US9223598B1 (en) * 2012-11-26 2015-12-29 Parallels IP Holdings GmbH Displaying guest operating system statistics in host task manager
JP6675303B2 (ja) * 2013-04-29 2020-04-01 エシロール エンテルナショナル 眼科用レンズを製造するための計算システム
EP3553608A1 (de) * 2018-04-10 2019-10-16 Siemens Aktiengesellschaft Automatisierungsanlage und verfahren zum betreiben einer automatisierungsanlage
JP7423920B2 (ja) * 2019-07-03 2024-01-30 オムロン株式会社 制御システム、設定装置およびコンピュータプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3111752B2 (ja) * 1993-06-22 2000-11-27 株式会社日立製作所 自動車制御方法及び制御システム
US5949673A (en) * 1997-06-13 1999-09-07 Allen-Bradley Company, Llc Hybrid centralized and distributed industrial controller
AU2003241771A1 (en) * 2002-05-28 2003-12-12 Dai Nippon Printing Co., Ltd. Parallel processing system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009061883A (ja) * 2007-09-05 2009-03-26 Denso Corp 車両用空調装置
KR101524152B1 (ko) * 2013-09-27 2015-05-29 삼성중공업 주식회사 이중화 제어 장치 및 이중화 제어 방법
JP2017092835A (ja) * 2015-11-16 2017-05-25 日立オートモティブシステムズ株式会社 処理装置および車両制御システム
WO2017086087A1 (ja) * 2015-11-16 2017-05-26 日立オートモティブシステムズ株式会社 処理装置および車両制御システム
US10946867B2 (en) 2015-11-16 2021-03-16 Hitachi Automotive Systems, Ltd. Processing device and vehicle control system
JP2020516346A (ja) * 2017-04-03 2020-06-11 ソニー・インタラクティブエンタテインメント エルエルシー 分散型ゲームエンジンを使用するシステム及び方法
JP7030134B2 (ja) 2017-04-03 2022-03-04 ソニー・インタラクティブエンタテインメント エルエルシー 分散型ゲームエンジンを使用するシステム及び方法

Also Published As

Publication number Publication date
US20070021847A1 (en) 2007-01-25

Similar Documents

Publication Publication Date Title
JP2007034359A (ja) 分散制御装置
JP6954422B2 (ja) 並行処理装置、並行処理方法及び並行処理システム
JP2006134203A (ja) 分散制御システム
JP5360061B2 (ja) マルチプロセッサシステム及びその制御方法
US20110022809A1 (en) Consolidated electronic control unit and relay program implemented in the same
JP4457047B2 (ja) マルチプロセッサシステム
US20070157207A1 (en) Hardwired scheduler for low power wireless device processor and method for using the same
EP2196912B1 (en) Apparatus for controlling a multi-processor system, scalable node, scalable multi-processor system, and method of controlling a multi-processor system
JP2010170320A (ja) プログラム、及び制御装置
JP5790514B2 (ja) 電子装置
JP4150853B2 (ja) 資源競合制御システム及び制御方法並びにプログラム
US20150208142A1 (en) Method for the efficient transmission of data
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法
CN114826817A (zh) 一种通信控制方法、电子设备及存储介质
JP3576437B2 (ja) マルチプロセッサタスク制御方法及びタスク制御装置
JP2006236371A (ja) 制御システム
JP2008210280A (ja) 半導体装置及びdmaコントローラ
US20020010823A1 (en) Multimaster bus system and method for operating the multimaster bus system
KR102441045B1 (ko) 멀티 코어 구조의 전자 제어 유닛에서 수행되는 방법, 그리고 이를 구현하기 위한 장치
JP2005346164A (ja) データ処理装置およびデータ転送制御方法
JP7057328B2 (ja) 車両制御装置、及び車両制御方法
JP7313123B2 (ja) 演算システムおよび演算方法
JP5347544B2 (ja) 半導体集積回路
WO2024009656A1 (ja) 車両制御装置
JP4963310B2 (ja) 分散制御システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091203

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100315