JP4238258B2 - 車載電子制御ユニットのタスク管理装置及びタスク管理方法 - Google Patents

車載電子制御ユニットのタスク管理装置及びタスク管理方法 Download PDF

Info

Publication number
JP4238258B2
JP4238258B2 JP2006218624A JP2006218624A JP4238258B2 JP 4238258 B2 JP4238258 B2 JP 4238258B2 JP 2006218624 A JP2006218624 A JP 2006218624A JP 2006218624 A JP2006218624 A JP 2006218624A JP 4238258 B2 JP4238258 B2 JP 4238258B2
Authority
JP
Japan
Prior art keywords
service
task
processing
assigned
processing request
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.)
Expired - Fee Related
Application number
JP2006218624A
Other languages
English (en)
Other versions
JP2008044391A (ja
Inventor
洋介 佐藤
誠司 宮本
尊裕 司代
和佳 野田
良 伊藤
洋之 平野
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.)
Denso Corp
Toyota Motor Corp
Original Assignee
Denso Corp
Toyota Motor Corp
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 Denso Corp, Toyota Motor Corp filed Critical Denso Corp
Priority to JP2006218624A priority Critical patent/JP4238258B2/ja
Priority to EP07015729.2A priority patent/EP1890232B1/en
Priority to US11/889,335 priority patent/US7783401B2/en
Publication of JP2008044391A publication Critical patent/JP2008044391A/ja
Application granted granted Critical
Publication of JP4238258B2 publication Critical patent/JP4238258B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

本発明は、車載電子制御ユニットのタスク管理を行う装置及びその方法に関する。
近年の車両では、車内ネットワークを通じて相互接続された電子制御ユニット(ECU)による分散処理を通じて、車両全体の統括的な制御が実現されている。こうした車内ネットワークにおいて、より有機的な電子制御ユニット間の連携を実現させる仕組みとして、IT分野で実用されている遠隔手続呼出(RPC:Remote Procedure Call )の導入が検討されている。RPCは、受信したクライアントからの要求(関数コールなど)に対して処理を実施し、その結果をクライアントに応答するクライアント=サーバモデルでの、クライアント・サーバ間のメッセージ通信に係るプロセス間通信プロトコルであり、分散コンピューティングの基礎技術となっている。
図10は、車両制御システムにRPCに基づくメッセージ通信機能を設けた場合のシステムのモデル構造を示している。同図に示すように、車内ネットワーク50を介して互いに接続されたECU1,ECU2はそれぞれメッセージ通信機構51,52を備えている。メッセージ通信機構51,52は、クライアント=サーバ間のメッセージ(処理要求やその処理結果の応答など)の通信を仲介する。より具体的には、メッセージ通信機構51,52は、受信したメッセージを、その内容から通知先を判別してその通知先へ送信する処理を行う。なお実際には、メッセージ通信機構51,52、クライアント53、54及びサーバ55は、ECU1,ECU2のハードウェア上で実行されるソフトウェアによってそれぞれその機能が実現されている。
こうした車載制御システムでのサービス実行処理の態様を、図11に示すタイミングチャートを参照して説明する。ここでは、ECU2のサーバ55が、各クライアント53,54に対してサービスA、サービスBを公開しているものとする。
さて同図に示すように、ECU2のクライアント54が上記サービスAの処理要求を行うと、その処理要求は同じECU2のメッセージ通信機構52に渡される。ここでメッセージ通信機構52は、要求された処理を行うサービスを起床させるためのメッセージ受信処理を行い、サーバ55の公開するサービスAを起床させる。サーバ55にてその起床されたサービスAの処理が実行されると、その結果は再びメッセージ通信機構52を介してクライアント54に応答される。
一方、同図では、上記クライアント54のサービスAの処理要求に若干遅れて、ECU1のクライアント53がサービスBの処理要求を行っている。この処理要求は、まずECU1のメッセージ通信機構51が受け取り、その通知先の確認がなされた後、メッセージとしてECU2に送られる。そのメッセージを受信したECU2のメッセージ通信機構52は、メッセージ受信処理を行ってサービスBを起床させる。サーバ55にてその起床されたサービスBが実行されると、その結果はメッセージ通信機構51,52を中継してクライアント53に応答される。
ここで上記サービスAの実行は、同じECU内のサーバに対するローカルのサービス呼出として、上記サービスBの実行は、別のECUのサーバに対するリモートのサービス呼出としてそれぞれ行われている。ただし、ECU間のメッセージ(サービスの処理要求や処理結果)の送受はメッセージ通信機構51,52に全て委ねられており、各クライアント53,54やサーバ55側からは隠蔽されているため、ローカル、リモートの区別なくサービスの呼出を行うことができるようになっている。
上記のようなRPCに基づいた通信プロトコルを採用すれば、車両制御の分散処理システムを容易に構築可能となるものの、以下のような問題があり、現状では実用に至ってはいない。
上記RPCに基づくメッセージ通信機能によるサービス実行処理では、起床の単位、すなわち処理プログラムの読み込み及び実行の単位であるタスクには、その1つひとつに、それぞれ1つのサービスが割り当てられており、要求されたサービスの数だけ、タスクの起床が行われるようになっている。こうした仕組みは、機能の並列実行性を高めるには有効となっている。
一方、エンジンルーム等の苛酷な環境下での長年の耐用が必要とされる車載ECUでは、一般用途に比べて信頼性や耐久性の高い、高価な電子部品が使用されること、設置スペースが限られていること、などのため、ハードウェアリソースの制約は厳しいものとなっている。そのため、車載ECUでは、処理プログラムの読み込みに伴うメモリ使用量やCPU負荷の一時的な増大といった、サービス(タスク)起床時のオーバーヘッドは無視し難いものとなっており、タスクの起床が高頻度で行われると、ハードウェアリソースが不足して、処理の停滞を招く虞がある。処理のリアルタイム性が求められる車両制御システムでは、こうしたリソース不足による処理の停滞は致命的な問題となる。
なお、上記のようなRPCに基づくメッセージ通信機能の搭載された車載ECU以外でも、タスク呼出に基づく処理の実施を行うことがある。例えば、複数の制御で共通して実施される処理をタスクとして管理し、その処理が必要となる毎にそのタスクを起床して実施することで、共通する処理についてのプログラムコードを共有して、プログラムの軽量化を図ることがある。こうした場合にも、タスクの起床が高頻度でなされれば、やはりハードウェアリソースの不足を招く虞がある。
本発明はこうした実状に鑑みてなされたものであって、その解決しようとする課題は、より少ないハードウェアリソースでタスク呼出に基づく処理を行うことのできる車載電子制御装置のタスク管理装置及びタスク管理方法を提供することにある。
上記課題を解決するため、請求項1に記載の発明では、サービスの処理要求の受信に応じてそのサービスに割り付けられたタスクを起床して該サービスの処理を行わせる車載電子制御ユニットのタスク管理システムにおいて、前記タスクの1つに対して複数のサービスを割り付けるとともに、前記サービスの処理要求の受信時に、その前記サービスに割り
付けられたタスクが既に実行中であるか否かを判定する判定手段と、受信した前記サービスの処理要求をそのサービスの処理が開始されるまで格納する格納手段と、割り当てられたタスクが実行中でないサービスの処理要求がその格納手段に格納されているか否かを定期的に確認し、格納されていることが確認されたときには、そのサービスに割り当てられたタスクを起床するサービス実行状況監視手段と、を備え、前記判定手段が肯定判定したときには、そのときに受信した前記サービスの処理要求に応じた前記タスクの起床を行わずに、前記実行中のタスクにそのまま当該サービスの処理を行わせることとしている。
上記構成では、タスクによるサービスの処理の実行中に、そのタスクに割り当てられた別のサービスの処理要求が受信されると、その新たに受信した処理要求のサービスの処理が、実行中のタスクにより引き続き実行されるようになる。すなわち、一度の起床で複数のサービスを処理することができるようになる。そのため、起床の頻度が抑えられ、タスク起床によるオーバーヘッドが低減されるようになる。
なお、サービスの処理を終え、タスクが将に終了しようとしているタイミングで、そのタスクに割り当てられた別のサービスの処理要求が受信されると、その時点ではタスクは一応は実行中であるので、その受信した処理要求に応じたタスク起床はなされないようになる。しかしながら、その時点でタスクの終了が既に決定されていた場合には、新たに受信した処理要求に応じたサービスの処理を実行しないまま、タスクが終了されてしまうことがある。
その点、上記請求項1によるように、受信した前記サービスの処理要求をそのサービスの処理が開始されるまで格納する格納手段と、割り当てられたタスクが実行中でないサービスの処理要求がその格納手段に格納されているか否かを定期的に確認し、格納されていることが確認されたときには、そのサービスに割り当てられたタスクを起床するサービス実行状況監視手段とを備えることとすれば、タスクが終了してしまい、サービスが処理待ちのまま放置された場合にも、サービス実行状況監視手段が、その放置状態のサービス処理要求を検出して、タスクを再び起床させるため、処理待ちのままサービスの処理が放置される状況が回避されるようになる。
こうしたタスク管理装置での上記判定手段の判定は、請求項2によるように、サービスの識別情報をキー項目とし、各サービスに割り当てられたタスクの識別情報をデータ項目とするサービス割付テーブルを備えるとともに、そのサービス割付テーブルを参照して、前記処理要求を受信したサービスの割り付けられたタスクの識別情報を取得し、その取得した識別情報と現在実行中のタスクの識別情報との対比に基づくことで、容易且つ確実に行うことができる。
また請求項3によるように、サービスの処理を完了する毎に、当該タスクに割り当てられた他のサービスの処理要求が前記格納手段に格納されているか否かを確認し、格納されていることが確認されたときには、その処理要求を読み込んでその処理を引き続き実施し、そうでなければ自身を終了させる処理ルーチンを当該タスク管理装置にて管理される各タスクに組み込むようにすれば、外部に別途の手段を設けずとも、タスク自らが複数サービスの処理を継続実施するようになる。
なお、こうしたタスク管理装置を、請求項に記載のような、遠隔手続呼出に基づくメッセージ通信機能を備えて他の車載電子制御ユニットとの通信を行う車載電子制御ユニットに適用すれば、低リソースで動作可能な、RPCに基づく分散処理型の車両制御システムを構築することができる。
一方、上記課題を達成するため、車載電子制御ユニットのタスク管理方法としての請求項に記載の発明では、車載された電子制御ユニットでのサービスの処理要求の受信に応じて起床されるタスクの管理を行う方法であって、前記タスクの1つに対して複数のサービスを割り付けるとともに、前記サービスの処理要求の受信時にそのサービスに割り当てられたタスクが実行中であるか否かを判定する工程と、前記判定において前記タスクが実行中でないと判定されたときには、同タスクを起床して前記処理要求を受信したサービスの処理を行わせ、そうでないときには、同タスクを新たに起床せずにその実行中のタスクに前記処理要求を受信したサービスの処理を引き続き実行させる工程と、受信した前記サービスの処理要求をそのサービスが開始されるまで格納するバッファを設けるとともに、そのバッファを定期的に参照し、該バッファに処理要求が格納され、且つ割り当てられたタスクが実行中でないサービスが確認されたときには、そのサービスに割り当てられたタスクを起床する工程と、を備えることとした。
上記方法では、サービスの処理要求の受信時に、そのサービスに割り付けられたタスクが、別のサービスの処理を実行中であると、その実行中のサービスがその別のサービスの処理に引き続き、新たに受信した処理要求のサービスを実行するようになる。そのため、一度の起床で複数のサービスの実行が可能となり、起床の頻度が抑えられることから、タスク起床によるオーバーヘッドが低減されるようになる。
また同請求項5によるように、受信した前記サービスの処理要求をそのサービスが開始されるまで格納するバッファを設けるとともに、そのバッファを定期的に参照し、該バッファに処理要求が格納され、且つ割り当てられたタスクが実行中でないサービスが確認されたときには、そのサービスに割り当てられたタスクを起床する工程を備えることとすれば、サービスが処理されぬまま放置される状況の発生が回避されるようになる。
こうしたタスク管理方法でのタスク実行中の可否判定は、請求項によるように、サービスの識別情報をキー項目とし、各サービスに割り当てられたタスクの識別情報をデータ項目とするサービス割付テーブルを設けるとともに、前記処理要求を受信したサービスの識別情報をキーとして前記サービス割付テーブルを参照して該サービスに割り付けられたタスクの識別情報を取得する工程、及びその取得した識別情報と現在実行中のタスクの識別情報と対比する工程、を通じて行うことも可能である。
また上記タスク管理方法において請求項によるように、前記サービスの処理を完了する毎に前記バッファを参照し、当該タスクに割り当てられた他のサービスの処理要求が同バッファに有るか否かを判定する処理と、その判定が肯定判定されたときには、前記バッファから前記処理要求を取得してその処理を引き続き行い、否定判定されたときには、自身を終了させる処理と、からなる処理ルーチンを各タスクに組み込むようにすれば、タスク自らにより、複数サービスの処理を継続実施されるようになる。
なお、こうしたタスク管理方法を、請求項に記載のような、遠隔手続呼出に基づくメッセージ通信機能を備えて他の車載電子制御ユニットとの通信を行う車載電子制御ユニットのタスク管理に適用すれば、低リソースで動作可能な、RPCに基づく車載制御の分散処理システムが構築されるようになる。
本発明の車載電子制御装置のタスク管理装置及びタスク管理方法によれば、一度の起床で複数のサービスを処理して、タスクの起床頻度を抑えることで、タスク起床によるオーバーヘッドが低減されるようになる。そのため、より少ないハードウェアリソースでタスク呼出に基づく処理を実施することができる。
以下、本発明を具体化した一実施形態を、図1〜図9を参照して詳細に説明する。ここでは、エンジンと電動機との2つの駆動源を備えるハイブリッド車両の制御システムに本発明を適用した場合を説明する。なお以下の説明では、簡単のため、エンジンECUとハイブリッドECUとの2つのECUのみによって車両制御システムが構成されているものとする。またサービスを公開するサーバも、エンジンECUに設けられたエンジン制御サーバの一つのみとし、そのエンジン制御サーバは、エンジンを始動させるためのエンジン始動サービス、エンジンの回転速度(NE)を取得する回転速度取得サービスの2つサービスのみをクライアントに公開するものとする。
まず、こうした車両制御システムの全体構成を説明する。図1は、そうした車両制御システムの模式的なモデル構成を示したものとなっている。この車両制御システムは、遠隔手続呼出(RPC)に基づく分散処理にて車両制御を行うシステムとして構成されている。
同図に示すように、ハイブリッドECU10及びエンジンECU11は、車内ネットワーク12を介して相互通信可能に接続されている。ハイブリッド車両の駆動源間の協調制御を司るハイブリッドECU10には、上記RPCに基づく分散処理に必要なメッセージ通信機能を担うメッセージ通信機構13が設けられるとともに、協調制御に係る各種処理を行うクライアント14が稼働されている。一方、エンジン制御を司るエンジンECU11には、やはりメッセージ通信機構15が設けられ、またエンジン制御に係る各種処理を行うクライアント16と、上記2つのサービスをクライアント14.16に公開するエンジン制御サーバ17とが稼働されている。このエンジンECU11のメッセージ通信機構15は、上記メッセージ通信機能を担うとともに、エンジン制御サーバ17の公開するサービスの呼出に係る処理を担ってもいる。ちなみに実際には、上記メッセージ通信機構13,15、クライアント14,16及びエンジン制御サーバ17はそれぞれ、各ECUのハードウェア上で実行されるソフトウェアによってその機能が実現されるようになっている。
続いて、上記エンジンECU11のメッセージ通信機構15の詳細を、図2を参照して説明する。本実施形態では、こうしたメッセージ通信機構15に、本発明に係るタスク管理装置、タスク管理方法を適用する構成となっている。なお図2は、メッセージ通信機構15のサービス呼出に係る構成要素の相関をブロック図にて模式的に示したものである。
本実施形態では、クライアントによる処理要求の単位であるサービスと、その処理要求に応じたサーバのプロセスの起床、実行の単位であるタスクとを別々に管理するようにしている。そして、高いリアルタイム性が必要とされるサービス以外は、単一のタスクに複数のサービスを割り付けるようにしている。例えば上述したエンジン始動サービス、及びエンジン回転速度取得サービスは、双方共にエンジン制御タスクに割り付けられている。すなわち、エンジン始動サービス、及び回転速度取得サービスのいずれの処理要求に対しても、エンジン制御サーバ17からはエンジン制御タスクが起床されるようにしている。そして本実施形態では、同一のタスクに割り当てられた複数のサービスを、起床された同一のタスク内で処理させることで、タスク起床の頻度を抑え、その起床によるオーバーヘッドを低減するようにしている。
さて、同図2に示すように、エンジンECU11のメッセージ通信機構15には、メッセージ受信処理部20、エンジン始動サービス用、及び回転速度取得サービス用の受信キュー21,22、サービス割付テーブル23及びサービス実行状況監視部24が設けられている。メッセージ受信処理部20は、クライアント14,16からのサービスの処理要求のメッセージを受信するとともに、要求されたサービスに割り当てられたタスクを起床させる処理を実行する。受信キュー21,22は、メッセージ受信処理部20により受信された各サービスの処理要求のメッセージを、そのメッセージに対する処理が開始されるまで格納するバッファとなっている。
一方、サービス割付テーブル23は、サービスの識別番号(ID)をキー項目とし、各サービスに割り当てられたタスクのIDをデータ項目とするデータテーブルであり、サービスに割り当てられたタスクの調査に使用される。ここでのサービス割付テーブル23は、図3のように構成されている。ちなみに、ここでは、エンジン制御タスクのIDには「0x01」が、エンジン始動サービスのIDには「0xF1」が、回転速度取得サービスのIDには「0xF2」が、それぞれ設定されている。ちなみに、タスクのIDには「0x01」から始まる通番が、サービスのIDには「0xF1」から始まる通番が、それぞれ割り振られるようになっている。なお、ここでは、「*」を16進数表記の「0」〜「F」(10進数表記の「15」)の任意の数値としたとき、「0x**」は、16進数表記の数値「**」を示すこととする。
更にサービス実行状況監視部24は、処理要求がなされたものの、処理が行われないまま放置されたサービスの有無を監視し、放置されたサービスの確認に応じてそのサービスに割り当てられたタスクを起床させるタスクを実行する。なお、このサービス実行状況監視部24の詳細については後述することとする。
次に、以上のように構成されたメッセージ通信機構15でのサービス実行処理の詳細を、図4を参照して説明する。図4は、メッセージ通信機構15によるサービス実行の処理態様の一例を示している。
同図では、まずハイブリッドECU10のクライアント14により、エンジン始動サービスの処理要求が行われている。この処理要求のメッセージを受信するとメッセージ受信処理部20は、メッセージ受信処理を実行する。そしてこのメッセージ受信処理においてメッセージ受信処理部20は、受信したメッセージを受信キュー21に格納する。またメッセージ受信処理部20は、サービス割付テーブル23を参照して要求されたサービス(エンジン始動サービス)に割り付けられたタスク(エンジン制御タスク)を確認し、そのタスクを起床させる。エンジン制御サーバ17にて起床されたエンジン制御タスクは、受信キュー21からメッセージを読み込んで、エンジン始動サービスの処理を実施する。
また同図では、上記クライアント14のエンジン始動サービスの処理要求に続いて、回転速度取得(NE)サービスの処理要求が、エンジンECU11のクライアント16により行われている。この処理要求に対してもメッセージ受信処理部20は、メッセージ受信処理を実行し、受信キュー22へのメッセージの格納、及び割り当てられたタスクの確認を行う。ただし、このときには、先のエンジン始動サービスの処理要求により、このとき要求された回転速度取得サービスに割り当てられたエンジン制御タスクは既に起床された状態となっている。そのため、メッセージ受信処理部20は、タスク起床を行わず、単にメッセージを受信キュー22に格納しただけで、このときのメッセージ受信処理を終了する。先に要求されたエンジン始動サービスの処理を終え、その結果をクライアント14に応答したエンジン制御タスクは、受信キュー22からメッセージを読み込んで、そのまま引き続き、回転速度取得サービスの処理を行い、その処理の結果をクライアント16に応答する。これにより、1度のエンジン制御タスクの起床で、エンジン始動サービスと回転速度サービスとの2つのサービスの処理が行われる。
続いて、上記メッセージ受信処理部20のメッセージ受信処理の詳細を説明する。図5は、メッセージ受信処理の処理手順を示すフローチャートを示している。この処理は、サービスの処理を要求するメッセージの受信の都度、メッセージ受信処理部20により実行される。
さてサービスの処理要求のメッセージを受信すると(S101)、メッセージ受信処理部20はまず、そのメッセージを、該当するサービスの受信キュー21,22に格納する(S102)。
続いてメッセージ受信処理部20は、サービス割付テーブル23を参照して、要求されたサービスに割り付けられたタスクを確認し(S103)、そのタスクが、現在実行中であるか否かを判定する(S104)。より具体的には、処理を要求されたサービスに割り付けられたタスクのIDをサービス割付テーブル23から取得するとともに、現在実行中のタスクのIDと対比する。そして現在実行中のタスクの中に、取得したタスクと同じIDのものがあれば(S104:YES)、メッセージ受信処理部20はそのまま今回の処理を終了する。一方、同じIDのものが無ければ、メッセージ受信処理部20は、エンジン制御サーバ17への割り込みをかけ、処理を要求されたサービスに割り付けられたタスクを起床させる(S105)。
次に、こうしたメッセージ受信処理を通じて起床されるタスクのサービス実行の処理に係る処理ルーチンについて説明する。図6は、起床されてから終了するに至るまでの、タスクの処理ルーチンを示している。この処理ルーチンは、上記メッセージ受信処理のステップS105の処理によるタスク起床の開始と共に実行される。
起床されたタスクは、ステップSS201〜S204の処理を通じて、そのタスクに割り当てられたサービスのIDの若い順に受信キューを走査しながら、空きでない、すなわちメッセージの格納された受信キューがないか確認する。なお、同図のステップS201に記載の定数「IDSTA」は、そのタスクに割り当てられたサービスのIDの初番を、ステップS203に記載の定数「IDEND」は、同サービスのIDの末番をそれぞれ指している。例えばIDが「0xF1」のエンジン始動サービスとIDが「0xF2」の回転速度取得サービスとが割り当てられたエンジン制御タスクの場合、「IDSTA=0xF1」、「IDEND=0xF2」となる。
ここでタスクは、メッセージの格納された受信キューが確認されると(S204:NO)、その都度、その受信キューから処理要求のメッセージを取得して(S205)、そのメッセージの要求するサービスの処理を実行する(S206)。そして実行した処理の結果をクライアントに応答する(S207)と、タスクは再び、上記空きでない受信キューの確認を再開し、すべての受信キューが空であることが確認されると自身を終了させる。すなわち、一旦起床されたタスクは、同タスクを呼び出したサービスの処理を完了しても、そのタスクに割り当てられたサービスの処理要求が他にもないか確認し、そうした処理要求が有ればそのサービスの処理を引き続き実行する。
このように本実施形態では、一つのタスクに複数のサービスを割り当てるとともに、同一のタスクに割り当てられた複数のサービスを、起床された同一のタスク内で処理させるようにしている。そしてこれにより、起床の頻度を抑えて、タスク起床によるオーバーヘッドを低減するようにしている。そのため、RPCに基づくメッセージ通信機能を利用した車両制御の分散処理でのタスク呼出に基づく処理を、より少ないハードウェアリソースで実施することができるようになる。
ただし、以上説明した処理態様だけでは、確率的には低いものの、要求されたサービスの処理が実行されずに放置されてしまう可能性がある。図7は、そうした事態が生じる状況を示している。上述したようにタスクは、サービスの処理を完了した時点で、自身に割り当てられたサービスの処理要求が他に無いことが確認されれば(図6のS202:YES)、自身を終了させるようにしている。このときの上記確認がなされる時点と実際にタスクが終了される時点とには若干のタイムラグが存在している。このタイムラグの期間には、タスクの内部では既に終了することが決定されているにも拘わらず、外部から見ればタスクは実行中となっている。このタイミングにメッセージ受信処理が行われると、サービスの処理が行われないようになってしまう。
例えば図7では、エンジン始動サービスの処理を終えたエンジン制御タスクがこの終了待ちの状態となっているタイミングで、クライアント16からの回転速度取得サービスの処理要求に対するメッセージ受信処理が行われている。この場合、メッセージ受信処理部20から見れば、エンジン制御タスクは実行中であるため、タスクの起床は行わずにメッセージ受信処理が終了される。しかしながら、エンジン制御タスクは既に終了作業を開始しており、メッセージ受信処理にて受信キュー22に格納されたメッセージは、同タスクに顧みられることなく、放置されてしまうようになる。そしてこのメッセージは、別の処理要求によりエンジン制御タスクが再び起床されるまで、受信キュー22に格納されたままとなる。
そこで本実施形態では、上述したサービス実行状況監視部24が、こうしてサービスが処理されないまま放置された処理要求の救済を図るようにしている。具体的には、サービス実行状況監視部24は、メッセージ通信機構15にタスクとして常駐されており、定期的に受信キューを確認して、サービスが処理されぬまま放置された処理要求のメッセージが無いか監視する。そしてそうしたメッセージの存在が確認されれば、そのメッセージが処理を要求するサービスに割り当てられたタスクを起床させるようにしている。
こうしたサービス実行状況監視部24の処理の詳細を説明する。図8は、こうしたサービス実行状況監視部24の行われるサービス実行状況監視処理のフローチャートを示している。サービス実行状況監視部24は、この処理を定時割込処理として周期的に実行する。
本処理が開始されると、サービス実行状況監視部24は、ステップSS301〜S305の処理を通じて、メッセージ通信機構15に設けられたすべての受信キューをサービスのIDの若い順に走査しながら、上記のような放置されたサービス処理要求のメッセージがないか確認する。具体的には、受信キューに処理要求のメッセージが格納され(S304:NO)、且つそのサービスに割り当てられたタスクが実行中(厳密にはそのサービスの処理要求の受信処理中も含む)ではない(S305:NO)場合に、その受信キューに格納されたメッセージの処理要求が上記放置状態にあると判定するようにしている。
そしてサービス実行状況監視部24は、そうした放置状態の処理要求のメッセージが確認されると、その都度、そのメッセージが処理を要求するサービスに割り当てられたタスクを起床する(S306)。サービス実行状況監視部24は、以上の処理を、そうしたメッセージが何れの受信キューにも存在しないことが確認されるまで継続した後、処理を一旦終了する。
図9に、こうしたサービス実行状況監視部24の処理態様の一例を示す。先の図7の状況と同様に、同図においても、エンジン制御タスクが終了待ちの状態となっているタイミングで、クライアント16からの回転速度取得サービスの処理要求に対するメッセージ受信処理が行われている。そのため、この回転速度取得サービスの処理要求のメッセージは、受信キュー22内に格納のまま、放置されてしまうようになる。その点、上記サービス実行状況監視部24があれば、そうした放置状態のメッセージが検出されてエンジン制御タスクが再び起床されるため、回転速度取得サービスの処理を実行できるようになる。
なお、本実施形態のタスク管理装置及びタスク管理方法を、車両制御システムに実際に採用する場合には、より多くのECUがシステムに設けられ、サービスを公開するサーバ機能を持つECUも複数となる。またより多くのサービスやタスクが必要にもなる。そうした場合にも、上記エンジンECU11のメッセージ通信機構15と同様或いはそれに準じた構成を、サーバ機能を有した他のECUにも適用することで、低リソースで動作するRPCに基づく分散処理にて車両制御を行うシステムを構築することができる。
また上記構成では、タスクのサービス割付を任意自在に設定することができ、その設定を工夫することで柔軟な運用を行うことができる。例えば単一のタスクに複数のサービスを割り付けると、先行サービスの処理が終わるまでサービスの処理が遅れることがあるため、リアルタイム性の要求されるサービスは、単独でタスクに割り当てるようにすると良い。またリソースに比較的余裕のあるECUでは、単一のサービスのみが割り付けられたタスクの比率を高め、余裕の少ないECUでは、複数のサービスが割り付けられたタスクの比率を高めるといったように、各ECUのリソース状況に合わせた運用も可能である。
以上説明した本実施形態では、メッセージ受信処理部20による図5のステップS103、104の処理にて上記判定手段の処理が行われている。また受信キュー21,22が上記格納手段に、サービス実行状況監視部24が上記サービス実行状況監視手段にそれぞれ相当する構成となっている。
こうした本実施形態では、以下に記載する効果を奏することができる。
(1)本実施形態では、単一のタスクに複数のサービスを割り付けるとともに、同一のタスクに割り当てられた複数のサービスを、起床された同一のタスク内で処理させるようにしている。そのため、タスク起床の頻度を抑え、その起床によるオーバーヘッドを低減することができ、RPCに基づく分散処理におけるタスク呼出に基づく処理を、より少ないハードウェアリソースで実施することができる。
(2)サービス割付テーブル23を用いることで、サービスとタスクとの関係を容易且つ迅速に確認することが可能となる。
(3)本実施形態では、受信したサービスの処理要求のメッセージを受信キュー21,22に格納するとともに、タスク自らがその受信キュー21,22を参照して、自身に割り当てられた他の処理要求の有無を確認するようにしている。そのため、同一タスクによる複数サービスの継続実行を、簡易な処理構造で行うことができる。
(4)サービス実行状況監視部24が、処理待ちのまま放置された状態のサービスの処理要求の有無を確認し、必要に応じてタスクを起床させているため、サービスが処理されずに放置されてしまう事態の発生を回避することができる。
(5)タスク割付を任意自在に設定することができるため、各ECUのリソース状況や個々のサービスの利用形態に合わせた柔軟な運用が可能である。
なお上記実施形態は、以下のように変更して実施することもできる。
・サービス実行状況監視部24及びそのタスク、処理を割愛するようにしても良い。そうした場合にも、タスク終了時の上記タイムラグの解消などの別の手法でサービスの未処理放置を回避することはできる。
・上記実施形態では、処理待ちのサービス処理要求の確認や、複数サービスの継続実行の判定をタスク内部の処理として行うようにしていたが、タスク外部に別途設けられた他の手段にそうした処理を行わせるようにしても良い。
本発明の一実施形態の適用される車両制御システムの全体構造を模式的に示すブロック図。 同車両制御システムのエンジンECUのメッセージ通信機構15の内部構造を模式的に示すブロック図。 同メッセージ通信機構15に設けられるサービス割付テーブルの一例を示す図。 同実施形態でのサービス実行処理の一例を示すタイミングチャート。 同実施形態において採用されるメッセージ受信処理のフローチャート。 同実施形態において採用されるタスクのサービス実行処理ルーチンのフローチャート。 サービス実行状況監視部24がない場合のサービス実行処理の一例を示すタイミングチャート。 同実施形態において採用されるサービス実行状況監視処理のフローチャート。 サービス実行状況監視部24が設けられた本実施形態でのサービス実行処理の一例を示すタイミングチャート。 RPCに基づく車両制御システムの構成例を模式的に示すブロック図。 上記車両制御システムでのサービス実行処理の一例を示すタイミングチャート。
符号の説明
10…ハイブリッドECU、11…エンジンECU、12…車内ネットワーク、13,15,51,52…メッセージ通信機構、14,16,53,54…クライアント、17…エンジン制御サーバ、20…メッセージ受信処理部、21…エンジン始動サービス用の受信キュー、22…回転速度取得サービス用の受信キュー、23…サービス割付テーブル、24…サービス実行状況監視部、55…サーバ。

Claims (8)

  1. サービスの処理要求の受信に応じてそのサービスに割り付けられたタスクを起床して該サービスの処理を行わせる車載電子制御ユニットのタスク管理システムにおいて、
    前記タスクの1つに対して複数のサービスを割り付けるとともに、
    前記サービスの処理要求の受信時に、その前記サービスに割り付けられたタスクが既に実行中であるか否かを判定する判定手段と、
    受信した前記サービスの処理要求をそのサービスの処理が開始されるまで格納する格納手段と、
    割り当てられたタスクが実行中でないサービスの処理要求がその格納手段に格納されているか否かを定期的に確認し、格納されていることが確認されたときには、そのサービスに割り当てられたタスクを起床するサービス実行状況監視手段とを備え、
    前記判定手段が肯定判定したときには、そのときに受信した前記サービスの処理要求に応じた前記タスクの起床を行わずに、前記実行中のタスクにそのまま当該サービスの処理を行わせる
    ことを特徴とする車載電子制御ユニットのタスク管理装置。
  2. サービスの識別情報をキー項目とし、各サービスに割り当てられたタスクの識別情報をデータ項目とするサービス割付テーブルを備え、
    前記判定手段は、そのサービス割付テーブルを参照して、前記処理要求を受信したサービスの割り付けられたタスクの識別情報を取得し、その取得した識別情報と現在実行中のタスクの識別情報との対比に基づき前記判定を行う
    請求項1に記載の車載電子制御ユニットのタスク管理装置。
  3. 該タスク管理装置にて管理される各タスクには、サービスの処理を完了する毎に、当該タスクに割り当てられた他のサービスの処理要求が前記格納手段に格納されているか否かを確認し、格納されていることが確認されたときには、その処理要求を読み込んでその処理を引き続き実施し、そうでなければ自身を終了させる処理ルーチンが組み込まれてな

    請求項1又は2に記載の車載電子制御ユニットのタスク管理装置。
  4. 当該タスク管理装置は、遠隔手続呼出に基づくメッセージ通信機能を備えて他の車載電子制御ユニットとの通信を行う車載電子制御ユニットに適用されてなる
    請求項1〜3のいずれか1項に記載の車載電子制御ユニットのタスク管理装置。
  5. された電子制御ユニットサービスの処理要求の受に応じて起床されるタスクの管理を行う方法であって、
    前記タスクの1つに対して複数のサービスを割り付けるとともに、
    前記サービスの処理要求の受信時にそのサービスに割り当てられたタスクが実行中であるか否かを判定する工程と、
    前記判定において前記タスクが実行中でないと判定されたときには、同タスクを起床して前記処理要求を受信したサービスの処理を行わせ、そうでないときには、同タスクを新たに起床せずにその実行中のタスクに前記処理要求を受信したサービスの処理を引き続き実行させる工程と、
    受信した前記サービスの処理要求をそのサービスが開始されるまで格納するバッファを設けるとともに、そのバッファを定期的に参照し、該バッファに処理要求が格納され、且つ割り当てられたタスクが実行中でないサービスが確認されたときには、そのサービスに割り当てられたタスクを起床する工程と、
    を備えることを特徴とする車載電子制御ユニットのタスク管理方法
  6. ービスの識別情報をキー項目とし、各サービスに割り当てられたタスクの識別情報をデータ項目とするサービス割付テーブルを設けるとともに、
    記処理要求受信したサービスの識別情報をキーとして前記サービス付テーブルを参照して該サービスに割り付けられたタスクの識別情報を取得する工程、及びその取得した識別情報と現在実行中タスクの識別情報と対比する工程、を通じて前記判定を行う
    とを特徴とする請求項5に記載の車載電子制御ユニットのタスク管理方法。
  7. 前記サービスの処を完了する毎に前記バッファを参照し、当該タスクに割り当てられた他のサービスの処理要求が同バッファに有るか否かを判定する処理と、
    その判定が肯定判定されたときには、前記バッファから前記処理要求を取得してその処理を引き続き行い、否定判定されたときには、自身を終了させる処理と、
    からなる処理ルーチンを各タスクに組み込む
    ことを特徴とする請求項5又は6に記載の車載電子制御ユニットのタスク管理方法。
  8. 遠隔手続呼出に基づくメッセージ通信機能を備えて他の車載電子制御ユニットとの通信を行う車載電子制御ユニットのタスク管理に適用した
    ことを特徴とする請求項5〜のいずれか1項に記載の車載電子制御ユニットのタスク管理方法。
JP2006218624A 2006-08-10 2006-08-10 車載電子制御ユニットのタスク管理装置及びタスク管理方法 Expired - Fee Related JP4238258B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006218624A JP4238258B2 (ja) 2006-08-10 2006-08-10 車載電子制御ユニットのタスク管理装置及びタスク管理方法
EP07015729.2A EP1890232B1 (en) 2006-08-10 2007-08-09 Method and device for managing tasks of an in-vehicle electronic control unit
US11/889,335 US7783401B2 (en) 2006-08-10 2007-08-10 Method and device for managing tasks of in-vehicle electronic control unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006218624A JP4238258B2 (ja) 2006-08-10 2006-08-10 車載電子制御ユニットのタスク管理装置及びタスク管理方法

Publications (2)

Publication Number Publication Date
JP2008044391A JP2008044391A (ja) 2008-02-28
JP4238258B2 true JP4238258B2 (ja) 2009-03-18

Family

ID=38875068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006218624A Expired - Fee Related JP4238258B2 (ja) 2006-08-10 2006-08-10 車載電子制御ユニットのタスク管理装置及びタスク管理方法

Country Status (3)

Country Link
US (1) US7783401B2 (ja)
EP (1) EP1890232B1 (ja)
JP (1) JP4238258B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140130063A1 (en) * 2012-11-07 2014-05-08 Cloudcar, Inc. Systems and methods for low overhead remote procedure calls
CN114465719A (zh) * 2017-01-05 2022-05-10 伽德诺克斯信息技术有限公司 被配置成基于面向服务的体系结构实施集中式服务ecu的专门编程的计算系统及其方法
CN110875936A (zh) * 2018-08-31 2020-03-10 百度在线网络技术(北京)有限公司 智能驾驶汽车的通讯系统、方法及终端设备、存储介质
CN116566790B (zh) * 2023-04-26 2024-05-03 坤联数字技术(深圳)有限公司 车载分布式服务调用系统及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04322332A (ja) 1991-04-23 1992-11-12 Toshiba Corp プログラム実行制御方式
JPH05127926A (ja) 1991-10-31 1993-05-25 Nec Corp タスク制御装置
DE19909157A1 (de) 1999-03-02 2000-09-21 Daimler Chrysler Ag Verteiltes Fahrzeuginformationsverarbeitungs- und Fahrzeugsteuersystem
JP2000305671A (ja) 1999-04-22 2000-11-02 Mitsubishi Electric Corp 省電力制御方式
JP3601677B2 (ja) 1999-06-09 2004-12-15 日本電気株式会社 タスク処理システム
FI20010163A (fi) * 2001-01-26 2002-07-27 Nokia Corp Palvelinarkitehtuuri
JP4058752B2 (ja) 2001-12-11 2008-03-12 日本電気株式会社 携帯情報端末装置
JP3882760B2 (ja) 2003-02-18 2007-02-21 株式会社デンソー タスク間通信方法、プログラム、記録媒体、電子機器
US20070282880A1 (en) * 2006-05-31 2007-12-06 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Partial role or task allocation responsive to data-transformative attributes

Also Published As

Publication number Publication date
US7783401B2 (en) 2010-08-24
JP2008044391A (ja) 2008-02-28
EP1890232B1 (en) 2016-09-28
EP1890232A2 (en) 2008-02-20
US20080039982A1 (en) 2008-02-14
EP1890232A3 (en) 2009-04-22

Similar Documents

Publication Publication Date Title
US7316017B1 (en) System and method for allocatiing communications to processors and rescheduling processes in a multiprocessor system
CN107077390B (zh) 一种任务处理方法以及网卡
JP5516398B2 (ja) マルチプロセッサシステム、マルチプロセッサシステムのos間デバイス共有方法
CA3000422A1 (en) Workflow service using state transfer
US20110022809A1 (en) Consolidated electronic control unit and relay program implemented in the same
CN108874549B (zh) 资源复用方法、装置、终端和计算机可读存储介质
US20220155992A1 (en) Methods and systems for memory management in a publish and subscribe system
JP4238258B2 (ja) 車載電子制御ユニットのタスク管理装置及びタスク管理方法
JP4571216B2 (ja) 装置管理システム及びそのシステムにおける設定値セット方法
CN111580990A (zh) 一种任务调度方法、调度节点、集中配置服务器及系统
JP4985662B2 (ja) プログラム、及び制御装置
US20070174683A1 (en) Method for operating software modules
CN111177032A (zh) 缓存空间申请方法、系统、装置及计算机可读存储介质
US9792419B2 (en) Starvationless kernel-aware distributed scheduling of software licenses
JP2020086522A (ja) 車載システム
JP2878988B2 (ja) チェックポイント通信処理システム
CN110175078B (zh) 业务处理方法及装置
US20160150556A1 (en) Telematics provisioning method
US20110246553A1 (en) Validation of internal data in batch applications
CN115442422A (zh) 服务提供方法、装置、车辆以及存储介质
CN115454594A (zh) 一种车辆域控制器通信信号周期优化方法、系统及车辆
CN113190624A (zh) 基于分布式跨容器的异步转同步调用方法及装置
CN108683612B (zh) 一种消息获取方法和装置
CN111523692B (zh) 订单管理方法、订单管理装置及订单管理系统
CN118113496B (zh) 一种基于多核异构soc的进程间通信方法、系统及芯片

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080722

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080917

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081219

R150 Certificate of patent or registration of utility model

Ref document number: 4238258

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111226

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121226

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131226

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees