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

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

Info

Publication number
JP2008044391A
JP2008044391A JP2006218624A JP2006218624A JP2008044391A JP 2008044391 A JP2008044391 A JP 2008044391A JP 2006218624 A JP2006218624 A JP 2006218624A JP 2006218624 A JP2006218624 A JP 2006218624A JP 2008044391 A JP2008044391 A JP 2008044391A
Authority
JP
Japan
Prior art keywords
service
task
processing
processing request
electronic control
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.)
Granted
Application number
JP2006218624A
Other languages
English (en)
Other versions
JP4238258B2 (ja
Inventor
Yosuke Sato
洋介 佐藤
Seiji Miyamoto
誠司 宮本
Takahiro Shidai
尊裕 司代
Kazuyoshi Noda
和佳 野田
Makoto Ito
良 伊藤
Hiroyuki Hirano
洋之 平野
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)

Abstract

【課題】より少ないハードウェアリソースでタスク呼出に基づく処理を行うことのできる車載電子制御装置のタスク管理装置及びタスク方法を提供する。
【解決手段】単一のタスクに複数のサービスを割り付ける。またサービスの処理要求のメッセージを受信したメッセージ受信処理部20は、その処理要求のサービスに割り付けられたタスクが実行中であれば、タスク起床を行わずに、実行中のタスクに、受信した処理要求のサービスの処理を引き続き実行させる。
【選択図】図2

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つに対して複数のサービスを割り付けるとともに、前記サービスの処理要求の受信時に、その前記サービスに割り付けられたタスクが既に実行中であるか否かを判定する判定手段と、同判定手段が肯定判定したときには、そのときに受信した前記サービスの処理要求に応じた前記タスクの起床を行わずに、前記実行中のタスクにそのまま当該サービスの処理を行わせることとしている。
上記構成では、タスクによるサービスの処理の実行中に、そのタスクに割り当てられた別のサービスの処理要求が受信されると、その新たに受信した処理要求のサービスの処理が、実行中のタスクにより引き続き実行されるようになる。すなわち、一度の起床で複数のサービスを処理することができるようになる。そのため、起床の頻度が抑えられ、タスク起床によるオーバーヘッドが低減されるようになる。
こうしたタスク管理装置での上記判定手段の判定は、請求項2によるように、サービスの識別情報をキー項目とし、各サービスに割り当てられたタスクの識別情報をデータ項目とするサービス割付テーブルを備えるとともに、そのサービス割付テーブルを参照して、前記処理要求を受信したサービスの割り付けられたタスクの識別情報を取得し、その取得した識別情報と現在実行中のタスクの識別情報との対比に基づくことで、容易且つ確実に行うことができる。
また請求項3によるように、受信した前記サービスの処理要求をそのサービスの処理が開始されるまで格納する格納手段を備え、サービスの処理を完了する毎に、当該タスクに割り当てられた他のサービスの処理要求が同格納手段に格納されているか否かを確認し、格納されていることが確認されたときには、その処理要求を読み込んでその処理を引き続き実施し、そうでなければ自身を終了させる処理ルーチンを当該タスク管理装置にて管理される各タスクに組み込むようにすれば、外部に別途の手段を設けずとも、タスク自らが複数サービスの処理を継続実施するようになる。
なお、サービスの処理を終え、タスクが将に終了しようとしているタイミングで、そのタスクに割り当てられた別のサービスの処理要求が受信されると、その時点ではタスクは一応は実行中であるので、その受信した処理要求に応じたタスク起床はなされないようになる。しかしながら、その時点でタスクの終了が既に決定されていた場合には、新たに受信した処理要求に応じたサービスの処理を実行しないまま、タスクが終了されてしまうことがある。
その点、請求項4によるように、受信した前記サービスの処理要求をそのサービスの処理が開始されるまで格納する格納手段と、割り当てられたタスクが実行中でないサービスの処理要求がその格納手段に格納されているか否かを定期的に確認し、格納されていることが確認されたときには、そのサービスに割り当てられたタスクを起床するサービス実行状況監視手段とを備えることとすれば、タスクが終了してしまい、サービスが処理待ちのまま放置された場合にも、サービス実行状況監視手段が、その放置状態のサービス処理要求を検出して、タスクを再び起床させるため、処理待ちのままサービスの処理が放置される状況が回避されるようになる。
なお、こうしたタスク管理装置を、請求項5に記載のような、遠隔手続呼出に基づくメッセージ通信機能を備えて他の車載電子制御ユニットとの通信を行う車載電子制御ユニットに適用すれば、低リソースで動作可能な、RPCに基づく分散処理型の車両制御システムを構築することができる。
一方、上記課題を達成するため、車載電子制御ユニットのタスク管理方法としての請求項6に記載の発明では、車載された電子制御ユニットでのサービスの処理要求の受信に応じて起床されるタスクの管理を行う方法であって、前記タスクの1つに対して複数のサービスを割り付けるとともに、前記サービスの処理要求の受信時にそのサービスに割り当てられたタスクが実行中であるか否かを判定する工程と、前記判定において前記タスクが実行中でないと判定されたときには、同タスクを起床して前記処理要求を受信したサービスの処理を行わせ、そうでないときには、同タスクを新たに起床せずにその実行中のタスクに前記処理要求を受信したサービスの処理を引き続き実行させる工程と、を備えることとした。
上記方法では、サービスの処理要求の受信時に、そのサービスに割り付けられたタスクが、別のサービスの処理を実行中であると、その実行中のサービスがその別のサービスの処理に引き続き、新たに受信した処理要求のサービスを実行するようになる。そのため、一度の起床で複数のサービスの実行が可能となり、起床の頻度が抑えられることから、タスク起床によるオーバーヘッドが低減されるようになる。
こうしたタスク管理方法でのタスク実行中の可否判定は、請求項7によるように、サービスの識別情報をキー項目とし、各サービスに割り当てられたタスクの識別情報をデータ項目とするサービス割付テーブルを設けるとともに、前記処理要求を受信したサービスの識別情報をキーとして前記サービス割付テーブルを参照して該サービスに割り付けられたタスクの識別情報を取得する工程、及びその取得した識別情報と現在実行中のタスクの識別情報と対比する工程、を通じて行うことも可能である。
また上記タスク管理方法において請求項8によるように、受信した前記サービスの処理要求がそのサービスが開始されるまで格納されるバッファを設けるとともに、前記サービスの処理を完了する毎に前記バッファを参照し、当該タスクに割り当てられた他のサービスの処理要求が同バッファに有るか否かを判定する処理と、その判定が肯定判定されたときには、前記バッファから前記処理要求を取得してその処理を引き続き行い、否定判定されたときには、自身を終了させる処理と、からなる処理ルーチンを各タスクに組み込むようにすれば、タスク自らにより、複数サービスの処理を継続実施されるようになる。
また請求項9によるように、受信した前記サービスの処理要求をそのサービスが開始されるまで格納するバッファを設けるとともに、そのバッファを定期的に参照し、該バッファに処理要求が格納され、且つ割り当てられたタスクが実行中でないサービスが確認されたときには、そのサービスに割り当てられたタスクを起床する工程を備えることとすれば、サービスが処理されぬまま放置される状況の発生が回避されるようになる。
なお、こうしたタスク管理方法を、請求項10に記載のような、遠隔手続呼出に基づくメッセージ通信機能を備えて他の車載電子制御ユニットとの通信を行う車載電子制御ユニットのタスク管理に適用すれば、低リソースで動作可能な、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 (10)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020504390A (ja) * 2017-01-05 2020-02-06 ガードノックス・サイバー・テクノロジーズ・リミテッドGuardKnox Cyber Technologies Ltd. サービス指向アーキテクチャに基づく集中化サービスecuおよびその使用方法
JP2020038616A (ja) * 2018-08-31 2020-03-12 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド インテリジェント運転自動車の通信システム、通信方法、端末装置、及び記憶媒体

Families Citing this family (2)

* 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
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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020504390A (ja) * 2017-01-05 2020-02-06 ガードノックス・サイバー・テクノロジーズ・リミテッドGuardKnox Cyber Technologies Ltd. サービス指向アーキテクチャに基づく集中化サービスecuおよびその使用方法
JP7316609B2 (ja) 2017-01-05 2023-07-28 ガードノックス・サイバー・テクノロジーズ・リミテッド サービス指向アーキテクチャに基づく集中化サービスecuおよびその使用方法
JP2020038616A (ja) * 2018-08-31 2020-03-12 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド インテリジェント運転自動車の通信システム、通信方法、端末装置、及び記憶媒体
US11368827B2 (en) 2018-08-31 2022-06-21 Apollo Intelligent Driving Technology (Beijing) Co., Ltd. Communication system and method of autonomous vehicle and terminal device

Also Published As

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

Similar Documents

Publication Publication Date Title
US11354179B2 (en) System, method and computer program product for sharing information in a distributed framework
US7316017B1 (en) System and method for allocatiing communications to processors and rescheduling processes in a multiprocessor system
US20090165003A1 (en) System and method for allocating communications to processors and rescheduling processes in a multiprocessor system
JP5516398B2 (ja) マルチプロセッサシステム、マルチプロセッサシステムのos間デバイス共有方法
CN107077390B (zh) 一种任务处理方法以及网卡
US11709620B2 (en) Methods and systems for memory management in a publish and subscribe system
JP4238258B2 (ja) 車載電子制御ユニットのタスク管理装置及びタスク管理方法
US8132171B2 (en) Method of controlling thread access to a synchronization object
WO2011087892A2 (en) Persistent application activation and timer notifications
US20070174683A1 (en) Method for operating software modules
CN115442422A (zh) 服务提供方法、装置、车辆以及存储介质
US9792419B2 (en) Starvationless kernel-aware distributed scheduling of software licenses
US20220159070A1 (en) Methods and systems for enabling publish-subscribe message transmission in a distributed environment
JP2022079764A (ja) 同期制御システムおよび同期制御方法
US11429290B2 (en) Methods and systems for providing a lockless access to a shared memory region in a publish and subscribe system
JP2002229791A (ja) インターフェース生成装置、プログラム及び記録媒体
Mishra et al. Performance optimization of task intensive real‐time applications on multicore ECUs—A hybrid scheduler
CN117651057A (zh) 车辆控制方法、装置、车辆及存储介质
WO2022103708A1 (en) Methods and systems for providing a lockless access to a shared memory region in a publish and subscribe system
US20130290584A1 (en) Sequence-based process locking
CN117170833A (zh) 大数据计算任务处理方法、系统、存储介质及计算机
JP2024063883A (ja) 車載中継装置、スリープ制御方法およびスリープ制御プログラム
EP4052127A1 (en) A system and method for scheduling computing tasks on a network of autonomous vehicles
CN116545953A (zh) 终端以太网调度方法、系统、存储介质及计算机
CN117651260A (zh) 一种车端ecu通信方法及系统

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