JP6796040B2 - アクセス制御装置 - Google Patents

アクセス制御装置 Download PDF

Info

Publication number
JP6796040B2
JP6796040B2 JP2017164747A JP2017164747A JP6796040B2 JP 6796040 B2 JP6796040 B2 JP 6796040B2 JP 2017164747 A JP2017164747 A JP 2017164747A JP 2017164747 A JP2017164747 A JP 2017164747A JP 6796040 B2 JP6796040 B2 JP 6796040B2
Authority
JP
Japan
Prior art keywords
task
access
time
unit
slot
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.)
Active
Application number
JP2017164747A
Other languages
English (en)
Other versions
JP2019045907A (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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems 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 Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2017164747A priority Critical patent/JP6796040B2/ja
Priority to PCT/JP2018/026818 priority patent/WO2019044226A1/ja
Priority to DE112018003505.0T priority patent/DE112018003505T5/de
Priority to CN201880049591.8A priority patent/CN110959152B/zh
Publication of JP2019045907A publication Critical patent/JP2019045907A/ja
Application granted granted Critical
Publication of JP6796040B2 publication Critical patent/JP6796040B2/ja
Active 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/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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、アクセス制御装置に関する。
制御装置では優先度が異なる様々なタスクが実行される。優先度が低いタスクにより優先度が高いタスクの動作を妨げないことが求められる。特許文献1には、実行開始予定時刻が予測可能な第1のタスクと共有資源を占有使用する時間長が既知である第2のタスクとが資源を共有するシステムにおいて、前記第1のタスクの優先度が前記第2のタスクの優先度よりも高いという条件の元でタスクのスケジューリングを行うタスク実行制御装置であって、前記第2のタスクによる共有資源の占有に先立って、前記第1のタスクの次回実行開始予定時刻と前記第2のタスクが前記共有資源を解放すると予想される解放予定時刻とを求める時間算出手段と、前記次回実行開始予定時刻と前記解放予定時刻とを比較して、前記解放予定時刻より前記次回実行開始予定時刻が早ければ、前記第2のタスクに前記共有資源の占有を許さず、一方、前記解放予定時刻より前記次回実行開始予定時刻が早くなければ、前記第2のタスクに前記共有資源の占有を許す資源管理手段、を有するタスク実行制御装置が開示されている。
特開2003−131892号公報
特許文献1に記載されている発明では、優先度の低いタスクの共有データへの排他取得による他タスクの動作への影響を防ぐことができない。
本発明の第1の態様によるアクセス制御装置は、実行の優先度により分類され相対的に優先度が低い第1タスクおよび相対的に優先度が高い第2タスクを含むアプリケーション部と、前記第1タスクおよび前記第2タスクを実行する実行部と、実行されるタスクごとに、タスクごとのあらかじめ定められた長さの時間であるスロットを割り当て、前記第1タスクに割り当てた前記スロットにおいて、前記スロットの末尾の第1の所定時間をアクセス監視時間に設定するシステム状態管理部と、前記第1タスクおよび前記第2タスクによりアクセスされる共有データ部と、前記アクセス監視時間における前記第1タスクによる前記共有データ部へのアクセスを禁止するデータアクセス制御部とを備える。
本発明によれば、優先度の低いタスクの共有データへの排他取得による他タスクの動作への影響を防ぐことができる。
車両システム2001の概要図 車両制御装置2002の全体ブロック図 タスクの状態遷移図 タスクの実行例を示す図 スケジューリングテーブル501の一例を示す図 タスク実行制御部206の詳細な構成を示す図 スケジューリング部108の動作を示すフローチャート タスクの動作を示すフローチャート データアクセス監視時間を説明する図 システム状態管理部111の動作を表すフローチャート タスク状態管理部107の動作を表すフローチャート 第1タスク101による共有データ部205へのアクセスを示す模式図 跨りタスクのアクセス監視時間を説明する図 アクセス監視時間の設定例を示す図 データアクセス制御部105の動作を表すフローチャート 一般的な共有データへのアクセス手順を示すフローチャート 第2の実施の形態におけるデータアクセス制御部105の動作を表すフローチャート 第3の実施の形態におけるシステム状態管理部111の動作を表すフローチャート 第5の実施の形態におけるCPU208の構成を示す図 システム状態テーブル1901の一例を示す図 システム状態テーブル1901の書き換えを説明する図 第2タスク102による共有データ部205へのアクセス要求が重複した状況を示す図 第5の実施の形態におけるシステム状態管理部111の動作を表すフローチャート 第6の実施の形態における車両制御装置2002の動作の概要を示す図 第7の実施の形態における車両制御装置2002のブロック図 タイマフラグ監視部2303の動作を説明する図 第8の実施の形態における動作ログ管理部213の動作を表すフローチャート 動作ログ1101の一例を示す図
―第1の実施の形態―
以下、図1〜図16を参照して、アクセス制御装置である車両制御装置の第1の実施の形態を説明する。
<車両システムの構成>
図1は車両制御装置2002を搭載する車両システム2001の概要図である。車両システム2001は、車両制御装置2002と、無線通信部2003と、駆動装置2004と、認識装置2005と、出力装置2006と、入力装置2007と、通知装置2008とを備える。車両制御装置2002は車両を制御する電子制御装置、すなわちECU(Electronic Control Unit)である。無線通信部2003は地図などの情報を取得する。駆動装置2004は、車両制御装置2002の動作指令に基づき、車両の運動を制御するために、たとえばエンジン、ホイール、ブレーキ、操舵装置などを駆動する。認識装置2005は、外界から入力される情報を取得し、外界認識情報を生成するための情報を出力する、たとえばカメラやセンサーなどである。出力装置2006は、車両の速度や警告などの情報を表示する。入力装置2007は、運転者が車両操作の指示を入力する、たとえばペダル、ハンドルなどである。通知装置2008は、車両システム2001が外界に対して車両の状態等を通知する、たとえばランプ、LED、スピーカなどである。
<自動運転ECUの構成>
図2は車両制御装置2002の全体ブロック図である。ただし詳細なブロック図は後に改めて示す。車両制御装置2002は、ソフトウエア216とハードウエア215とから構成される。ソフトウエア216は、後述するCPU208が不図示のROMに格納されるプログラムをメモリ209に展開して実行されることにより実現される。
ハードウエア215は、中央演算装置であるCPU208と、不揮発性の記憶装置であるメモリ209と、リアルタイム制御のタイミングを管理するタイマ210と、ネットワークにアクセスするネットワークアダプタ211と、センサーや自動ブレーキ装置などの周辺装置212とを備える。CPU208はコアを1つのみ備える、いわゆるシングルコアCPUである。ただしCPU208が複数のコアを備えるが、後述するアプリケーション部214の実行には1つのコアしか使用しない場合も本実施の形態の範囲に含まれる。ソフトウエア216は、アプリケーション部214と、共有データ部205と、タスク実行制御部206と、動作ログ管理部213と、オペレーティングシステムであるOS207とを備える。
アプリケーション部214は、センサーデバイス等の周辺装置から外部情報を処理するセンサーフュージョン201と、自動運転のための地図情報を処理するマップフュージョン202と、追突回避、追従運転、および車線逸脱防止を実現するADAS(Advanced Driving Assistant System)203と、自動駐車を実現するオートパーキング204などを含んで構成される。ただしここで説明したアプリケーション部214の構成は一例であり、少なくとも1つのアプリケーションが含まれていればよい。なおそれぞれのアプリケーションは、複数のタスクから構成され、各タスクには優先度が設定される。
共有データ部205は、アプリケーション部214に格納されるそれぞれのアプリケーションで使用されるデータを管理する。共有データ部205はたとえばメモリ209に格納領域を確保し、その格納領域におけるデータの読み書きを管理する。タスク実行制御部206は、アプリケーションを構成するそれぞれのタスクの実行を制御する。タスク実行制御部206の詳しい構成および動作は後述する。動作ログ管理部213は、それぞれのタスクの動作を記録する。タスク実行制御部206はスケジューリング部108の指定したタイミングに基づきタスク状態管理部107により後述する各タスク101、102に対して、後述する状態遷移に基づき管理を行う。
<タスク>
OS207は、アプリケーション部214に含まれるアプリケーションを実行するために、アプリケーションを実行単位であるタスクに分けて実行する。OS207は複数のタスクを略同時に実行可能であるが、厳密にはCPU208の計算資源を時分割で利用する。換言するとOS207は、時間の経過にしたがって次々とタスクを実行する。それぞれのタスクは、あらかじめ定められた長さの時間である「スロット」内で実行される。
タスクは実行の重要性が平等ではなく、その処理内容に応じて、実行時間を保証しなければならない優先度が高いタスクと、実行時間が多少遅れてもよい優先度が低いタスクがある。ISO26262では機能安全の視点からタスクを危険事象の低いものから高いものの順にQM(Quality Management)、ASIL(Automotive Safety Integrity Level)−A、ASIL−B,ASIL−C,ASIL−Dに分類している。すなわち大きく分類すると、安全性担保という点において実行時間を保証しなければならないタスクはASIL、安全保障に関係がなく実行時間が多少遅れてもよいタスクはQMとなる。また本実施の形態では、実行時間の保証の必要性を優先度の高さで言い換える場合があり、たとえば分類がQMであるタスクは「優先度が低いタスク」、分類がASIL−Dであるタスクは「優先度が高いタスク」とも呼ぶ。
<タスクの状態遷移>
図3はタスクの状態遷移図である。タスクの状態は、以下の4つの状態に分類される。第1の状態は実行状態(RUNNING)301である。実行状態301とは、CPU208が割り当てられタスクが実行している状態である。第2の状態は実行可能状態(READY)302である。実行可能状態302とは、タスクを実行する条件は整っているが、当該タスクよりも優先順位が高いタスクが実行状態であるため、実行できない状態である。第3の状態は待機状態(WAITING)303である。待機状態303とは、何らかの条件が整うまで、実行を中断した状態である。第4の状態は休止状態(DORMANT)304である。休止状態とは、タスクがいまだ起動されていないか、終了した状態である。
タスクの状態遷移を説明する。新規に生成されたタスクは休止状態304で開始され、タスクが起動されると実行可能状態302へと遷移する。そのタスクに割り当てられた時刻になるとディスパッチされて実行状態301へと遷移し、タスク処理を実行する。タスクの実行が完了、または割り当てられたスロットの時間が終了すると、タスク状態は実行可能状態302へ遷移する。タスクがリソース要求を行い、排他制御によりリソースの取得ができない場合には、待機状態303に遷移される。その後リソースが解放され、そのタスクがリソースを取得可能となると、タスク状態が待機状態303から実行可能状態302へと遷移される。タスクが強制終了命令を受けた、またはタスク自身が終了処理を行うと、タスク状態は休止状態304へと遷移される。
<時間駆動スケジューリング>
図4は、時間駆動スケジューリングにて制御したタスクの実行例を示す図である。時間駆動スケジューリングとは、OS207が決められた実行順により決められた時刻に決められた時間だけタスクを実行することである。図4は横軸が時間経過を表しており、図示SL1〜SL9は、それぞれのスロットに付与されたID(以下、「スロットID」)である。図4下部の拡大図に示すように、各スロットの開始直後はタスク実行制御部206が処理を行い、その後にタスクが実行される。なお図4では最後のスロットIDがSL9であるが、さらにSL10、SL11、、、と続いてもよい。それぞれのタスクは、割り当てられたスロットの時間内で実行される。なお図4に示すt_1〜t_3は、実行されるタスクを識別するID(以下、「タスクID」)である。一連の最後のスロットへ到達すると、最初のスロットであるSL1に戻りスケジューリングが継続される。
図5は、時間駆動スケジューリングに用いられるスケジューリングテーブル501の一例を示す図である。スケジューリングテーブル501は複数のレコードから構成され、各レコードは、スロットID、開始時刻、終了時刻、タスクID、および時間エラー判定フラグのフィールドを有する。スロットIDのフィールドにはそのレコードのスロットIDが格納される。開始時刻および終了時刻のフィールドには、そのレコードのスロットの開始時刻および終了時刻が格納される。ただしこの時刻はSL1の開始時刻をゼロとしたものである。タスクIDのフィールドには、そのレコードにおいて実行されるタスクのタスクIDが格納される。時間エラー判定フラグのフィールドには、後述するスケジューリング部108が参照するフラグが格納される。時間エラー判定については後に詳述する。
スケジューリングテーブル501は各タスクの実行周期、想定される最長の実行時間、安全要求レベル等の情報に基づいてあらかじめ作成される。スケジューリングテーブル501の1サイクルの長さは全タスクの実行周期を満たす長さにて作成される。サイクルの終端へ到達した場合、SL1に戻りスケジューリングを継続する。たとえば図5に示す例では、最後のスロットIDがSL12であり、終了時間が「5.1ms」なので、1サイクルの長さは5.1msである。そしてSL12の次にSL1が実行される。
<車両制御装置の構成>
図6は、タスク実行制御部206の詳細な構成を示す図である。ただし図6では、アプリケーション部214は、安全要求レベルの低い複数の第1タスク101と安全要求レベルの高い複数の第2タスク102とを含むとして説明する。この第1タスク101および第2タスク102は、アプリケーション部214に含まれるいずれかのアプリケーションを構成するタスクである。ただし以下では、第1タスク101と第2タスク102とをまとめて、単に「タスク」とも呼ぶ。
タスク実行制御部206は、データアクセス制御部105と、システム状態判定部106と、タスク状態管理部107と、スケジューリング部108とを備える。データアクセス制御部105は、後述するアクセスフラグを利用して、タスクからの共有データ部205へのアクセス要求を制御する。システム状態判定部106は、システム状態を管理する後述するシステム状態管理部111を参照してシステムの状態を判定する。タスク状態管理部107は、タスクの状態を管理する。スケジューリング部108は、データアクセス制御部105、システム状態判定部106、およびタスク状態管理部107と協調してタスクのスケジュール管理を行う。
ハードウエア215は、アクセス時間監視部109と、スロット時間監視部110と、システム状態管理部111とを備える。アクセス時間監視部109はタイマ210により実現され、設定されたアクセス監視時間への到達を監視する。アクセス監視時間については後述する。スロット時間監視部110はタイマ210により実現され、設定されたそれぞれのスロット時間への到達を監視する。システム状態管理部111は不図示のハードウエア回路により実現され、アクセス時間監視部109およびスロット時間監視部110と協調してシステム状態を管理する。
なおここでは、アクセス時間監視部109、スロット時間監視部110、およびシステム状態管理部111は、ハードウエアから構成されると説明したが、ソフトウエアを含むことを排除するものではない。ただしソフトウエアを含む場合はソフトウエア216とはリソースが独立しており、アクセス時間監視部109、スロット時間監視部110、およびシステム状態管理部111の動作タイミングがソフトウエア216の動作タイミングに影響を与えないこととする。
<スケジューリング部の動作>
図7は、スケジューリング部108の動作を示すフローチャートである。各スロットの開始時刻になると、タイマ210からの動作指令によりスケジューリング部108が動作を開始する。以下に説明する各ステップの実行主体はCPU208である。
スケジューリング部108はまず前のスロットのタスクが実行完了しているか否かの判定を行う(S101)。前のスロットのタスクが実行完了していると判断する場合は(S101:yes)、スケジューリング部108は、スケジューリングテーブル501における現在のスロットの終了時刻にスケジューリング部108が動作開始するようにタイマ210をセットする(S102)。そしてスケジューリング部108は現在のスロットに割り当てられたタスクを実行状態へ遷移させる(S103)。スロットにタスクが割り当てられていない場合には、そのスロットではタスクを動作させない。このようにして決められた時間でのタスク実行処理を行うことで、各タスクの実行時間を確保する。実行状態へ遷移されたタスクの処理については後に図8を参照して説明する。
前のスロットのタスクが実行完了していないと判断する場合は(S101:no)、スケジューリング部108はスケジューリングテーブル501におけるそのスロットの時間エラー判定フラグを参照し、”しない”の場合(S104:No)には前スロットのタスクを待機状態303へ遷移させる(S105)。なお待機状態303へ遷移させる対象となるタスク、換言するとスケジューリングテーブル501において時間エラー判定が”する”であるタスクを「跨りタスク」と呼ぶ。跨りタスクは1つのスロット内で処理が完了しない長い時間を要するタスクであり、複数のスロットにわたって動作する。時間エラー判定フラグが”する”の場合(S104:yes)、前のスロットのエラーフラグを立て(S106)、前のスロットのタスクを休止状態304へ遷移させる(S107)。強制終了には時間を要するため、S107にてタスクを一時的に待機状態303へ遷移させ、空いているスロットで休止状態304へ遷移させてもよい。S105またはS107の実行が完了すると、前述のS102に進む。
<タスクの動作>
図8は、実行状態にされたそれぞれのタスクの動作を示すフローチャートである。まずタスクは、共有データ部205へのアクセスを含むタスク処理を実行し(S301)、その実行が完了すると実行完了フラグを立ち上げる(S302)ことで実行完了したことを示すスケジューリング部108に示す。スケジューリング部108は直前のスロットにおいて実行されたタスクの実行完了フラグを参照し、実行完了フラグが立ちあげられていればそのタスクを実行可能状態302へと遷移する。タスクは、次に実行を開始する際に実行完了フラグを立ち下げる(S303)。ただしスケジューリング部108が実行完了フラグを立ち下げてもよい。
<タスクのデータアクセス監視時間>
図9は、タスクのデータアクセス監視時間を説明する図である。図9では、第1タスク101および第2タスク102を実行する状況を示している。そして第1タスク101は、割り当てられたスロット時間T1aからT1dの間で動作する。第1タスク101に割り当てられたスロットでは、スロットの最後であるT1bからT1dにデータアクセスを監視するアクセス監視時間を設ける。このアクセス監視時間の長さはデータアクセス時間、すなわちタスクによる共有データ部205へのアクセスに要する時間である、たとえばT1bからT1cよりも長い時間である。このアクセス監視時間の長さは、タスクによらず一定である。なお第2タスク102は安全要求レベルが高いので、第2タスク102に割り当てられたスロットにはアクセス監視時間は設定されない。
本実施の形態では、アクセス監視時間である時間を「アクセス監視状態」、アクセス監視時間ではない時間を「アクセス非監視状態」と呼ぶ。そしてアクセス監視状態またはアクセス非監視状態をとる状態を「システム状態」とよぶ。すなわち図9の下部に示すように、システム状態は平時はアクセス非監視状態であり、第1タスク101が属するスロットの終了所定時間前から、第1タスク101が属するスロットの終了時間までがアクセス監視状態となる。
<システム状態管理部の動作>
図10は、システム状態管理部111の動作を表すフローチャートである。以下では図9も参照してシステム状態管理部111の動作を説明する。以下に説明する各ステップの実行主体はCPU208である。
システム状態管理部111は、各スロットの開始時、たとえば図9の時刻T1aにそのスロットで実行されるタスクが第1タスク101であるか否かを判断し(S400A)、実行されるタスクが第1タスク101であると判断する場合はS401に進む。実行されるタスクが第1タスク101ではない、すなわち第2タスク102が実行されると判断する場合はスロットの終了時刻をスロット時間監視部110に設定して(S400B)、タイマ210による計数を開始させてS404に進む。S401ではシステム状態管理部111は、アクセス監視時間の開始時刻をスロット時間監視部110に設定し、かつスロットの終了時刻をスロット時間監視部110に設定して計数を開始させる。
システム状態管理部111はアクセス時間監視部109のレジスタ状態を監視し、そのレジスタ状態から設定したアクセス監視時間に到達したか否かを判断し(S402)、アクセス監視時間に到達していないと判断する場合はS402に留まる。システム状態管理部111は、アクセス監視時間に到達したと判断する場合は、システム状態をアクセス非監視状態からアクセス監視状態へ遷移させる(S403)。
システム状態管理部111はスロット時間監視部110のレジスタ状態を監視し、そのレジスタ状態から設定したスロットの終了時刻に到達したか否かを判断し(S404)、スロットの終了時刻に到達していないと判断する場合はS404に留まる。システム状態管理部111は、スロットの終了時刻に到達したと判断する場合は、システム状態をアクセス監視状態からアクセス非監視状態へ遷移させる(S405)。続くS406ではシステム状態管理部111はシステムを終了させるか否か、たとえば車両制御装置2002を搭載する車両のイグニションキースイッチがオフにされたか否かを判断する。システム状態管理部111は、システムを終了させないと判断する場合はS400Aに戻り、システムを終了させると判断する場合は図10に示す動作を終了する。
<タスク状態管理部の動作>
図11は、タスク状態管理部107の動作を表すフローチャートである。タスク状態管理部107は、呼び出される際にどの状態へ遷移させるかも併せて指定される。すなわちタスク状態管理部107は、待機状態、休止状態、実行可能状態のいずれかの指定とともに呼び出される。
タスク状態管理部107は待機状態への遷移を指定されている場合は(S501:YES)、タスクを待機状態へ遷移させる(S502)。指定された状態が待機状態ではないと判断する場合は(S501:NO)、休止状態への遷移を指定されているか否かを判断する(S503)。タスク状態管理部107は、休止状態への遷移を指定されていると判断する場合はタスクを休止状態へ遷移させ(S504)、休止状態への遷移を指定されていないと判断する場合はタスクを実行可能状態へ遷移させる(S505)。
<共有データ部へのアクセス>
図12は、第1タスク101による共有データ部205へのアクセスを示す模式図である。データアクセス制御部105は、第1タスク101が共有データ部205へアクセスを試みると、システム状態判定部106を介してシステム状態管理部111が管理するシステム状態を取得する。データアクセス制御部105は、システム状態がアクセス非監視状態であると判断する場合は第1タスク101による共有データ部205へのアクセスを許可する。データアクセス制御部105は、システム状態がアクセス監視状態であると判断する場合は第1タスク101による共有データ部205へのアクセスを拒否し、さらにタスク状態管理部107を用いて第1タスク101を休止状態304へと遷移させる。ただしデータアクセス制御部105は、システム状態がアクセス監視状態である場合に、第1タスク101のタスク状態を休止状態304へと遷移せず、待機状態303へ遷移もしくは無限ループを実行させ、時間エラー判定させてもよい。
<跨りタスクのデータアクセス制御>
図13は、跨りタスクのアクセス監視時間を説明する図である。図13に示す例では第1タスク101および第2タスク102を実行する状況を示している。そして第1タスク101は、複数のスロットにまたがって動作し、具体的には時刻T2a〜T2dまでのスロット、および時刻T2e〜T2hまでのスロットで動作する。すなわち本例における第1タスク101は跨りタスクである。跨りタスクが割り当てられたスロットにおいても、安全要求レベルの低いタスクに割り当てられたスロット全てにおいて、スロットの最後にデータアクセス監視用のアクセス監視時間が設けられる。図13に示す例では、時刻T2b〜T2d、および時刻T2f〜T2hがアクセス監視時間である。また図13の下段に示すように、アクセス監視時間にあわせてシステム状態がアクセス監視状態に設定される。
第1タスク101が共有データ部205へアクセスを試みると、システム状態がアクセス監視状態である場合にはデータアクセス制御部105は次の処理を行う。すなわちデータアクセス制御部105は、第1タスク101による共有データ部205へのアクセスを禁止し、タスク状態管理部107により第1タスク101のタスク状態を待機状態へと遷移させる。ただしシステム状態がアクセス監視状態である場合に、第1タスク101のタスク状態を待機状態303へと遷移させず、無限ループを実行させ、時間エラー判定にて待機状態303へ遷移させてもよい。第1タスク101による共有データ部205へのアクセスは、第1タスク101の続きのスロットのアクセス監視時間以外、すなわち時刻T2e〜T2fにて開始される。第1タスク101が共有データ部205へアクセスを試みた際に、システム状態がアクセス非監視状態である場合には第1タスク101による共有データ部205へのアクセスを実施する。
<割り当てスロットに基づいたアクセス監視時間配置>
図14は、アクセス監視時間の設定例を示す図である。以下では、アクセス監視時間は安全要求レベルの高いタスクの起動タイミングに左右されず、安全要求レベルの低いタスクのスロット時間によって決定されることを説明する。
図14に示す例では、第3タスクは第1タスク101と同様に安全要求レベルが低い。第1タスク101は時刻T3a〜T3d、および時刻T3j〜T3lにて動作する。第3タスクは時刻T3f〜T3hに動作する。アクセス監視時間は第1タスク101および第3タスクにそれぞれ割り当てられたスロットの末尾である時刻T3b〜T3d,時刻T3f〜T3h、および時刻T3j〜T3lに配置される。このように、安全要求レベルの低いタスクのスロット時間に基づいてアクセス監視時間を配置することにより、共有データ部205へのアクセスの有無やアクセス対象の詳細に関する情報が無い場合においても、排他中のタスク切り替えによる影響を防ぐことが可能となる。
<データアクセス制御部105の動作>
図15は、データアクセス制御部105の動作を表すフローチャートである。以下に説明する各ステップの実行主体はCPU208である。
データアクセス制御部105は、タスクから共有データ部205へのアクセス要求を受け取ると、システム状態判定部106にてシステム状態を確認する(S201)。データアクセス制御部105は、システム状態がアクセス非監視状態であると判断すると(S201:No)、共有データ部205へのアクセス状況を示すアクセスフラグを「アクセス中」へ遷移させ(S202)、共有データ部205へのアクセスを実行する(S203)。データアクセス制御部105は、タスクによる共有データ部205へのアクセスが完了すると、アクセスフラグを「非アクセス中」へと遷移させる(S204)。
データアクセス制御部105は、システム状態がアクセス監視状態の場合には(S201:yes)、スケジューリングテーブル501にて現在のスロットの時間エラー判定フラグの内容を判定する(S205)。時間エラー判定フラグが“しない”の場合(S205:No)は、データアクセス制御部105は、タスク状態管理部107にタスクの状態を待機状態303へ遷移させる(S206)。そしてデータアクセス制御部105は、続きのスロットにてタスク状態が実行状態301へ遷移した後にデータアクセスを行う(S202,S203,S204)。時間エラー判定フラグが“する”の場合(S205:Yes)はデータアクセス制御部105は、現在のスロットのマージン内エラーフラグをONに遷移させ(S207)、実行状態301のタスクを強制終了させて休止状態304にする(S208)。ただし強制終了には時間を要するため、S208にてタスクを一時的に待機状態303へ遷移させ、空いているスロットで休止状態304へ遷移させてもよい。
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)車両制御装置2002は、実行の優先度により分類され相対的に優先度が低い第1タスク101および相対的に優先度が高い第2タスク102を含むアプリケーション部214と、実行されるタスクごとに、タスクごとのあらかじめ定められた長さの時間であるスロットを割り当て、第1タスク101に割り当てたスロットにおいて、スロットの末尾の第1の所定時間をアクセス監視時間に設定するシステム状態管理部111と、第1タスク101および第2タスク102によりアクセスされる共有データ部205と、アクセス監視時間における第1タスク101による共有データ部205へのアクセスを禁止するデータアクセス制御部105とを備える。
車両制御装置2002は、いずれのタスクが共有データ部205へアクセスするか否か、さらには共有データ部205に含まれるいずれのデータにアクセスするのかなどの情報を有していない。しかし第1タスク101が割り当てられたスロットの末尾にアクセス監視時間を設けたので、優先度が低い第1タスク101が共有データ部205へアクセスしたことを原因として、他のタスクによる共有データ部205へのアクセスが妨げられる事態を防止することができる。図16を参照して想定される従来の問題点を説明する。
図16は、一般的な共有データへのアクセス手順を示すフローチャートである。一般的な共有データへのアクセスとして、共有データへアクセスするタスクは排他取得、換言すると共有データへのアクセス権を取得する(S601)。次にデータ処理を行い(S602)、最後に排他を開放、換言すると共有データへのアクセス権を開放して(S603)一連の処理を終了する。もしも図16に示す処理を行っているタスクのスロットが、データ処理の途中で終了すると、排他開放が行われないまま他のタスクに処理が移行する。その場合は、そのタスクの処理が再開されない限り排他開放が行われず、それまでは他のタスクは排他取得ができず、共有データへのアクセスが不可能となる。
従来はこのような問題を有していたが、車両制御装置2002は第1タスク101に割り当てられたスロットの末尾の所定時間をアクセス監視時間とし、アクセス監視時間における共有データ部205へのアクセスを禁止したので、上述した問題を回避できる。すなわち車両制御装置2002では、第1タスク101がアクセス権を保持したままスロットの終期を迎えることがないので、第1タスク101の排他取得による他のタスクへの共有データ部205へのアクセスに関する悪影響を防止できる。さらにこの利点は、本実施の形態のように、車両制御装置2002がタスクごとの共有データ部205へのアクセスの有無を有していない場合にも得られる。すなわち車両制御装置2002は、排他制御に用いる共有データ部205のアクセス情報の有無にかかわらず、安全要求レベルの低い第1タスク101の排他取得による他タスクの動作への影響を防ぐことができる。
(2)アクセス監視時間は、第1タスク101が共有データへのアクセスに要する時間よりも長い。そのため第1タスク101が共有データ部205へアクセスするための時間が十分にあるアクセス監視時間の開始以前は第1タスク101による共有データ部205へアクセスを認める。そしてアクセス監視時間の直前に第1タスク101が共有データ部205へのアクセスを開始した場合にも、アクセス監視時間は第1タスク101が共有データへのアクセスに要する時間よりも長いので、そのスロット内で排他開放までを完了させて他タスクの動作への影響を防ぐことができる。
(3)データアクセス制御部105は、アクセス監視時間に共有データ部205へのアクセスを試みた第1タスク101を終了状態に遷移させる。そのため次の処理である共有データ部205へアクセスができない第1タスク101の動作を終了させ、CPU208のリソースを節約することができる。
(4)データアクセス制御部105は、複数のスロットに跨って実行される第1タスク101が、最終スロット以外でアクセス監視時間に共有データ部205へのアクセスを試みると、第1タスク101を次のスロットの開始時刻まで待機させる。そのため複数のスロットに跨って実行される第1タスク101に、次に実行するスロットにおいて共有データ部205へアクセスさせることができる。
(5)優先度は、タスクに要求される機能安全のレベルに基づいて決定される。具体的には、要求される機能安全レベルが高い、たとえばASIL−Dのタスクは優先度を高く設定し要求される機能安全レベルが低い、たとえばQMのタスクは優先度を、低く設定する。これにより、機能安全レベルが高いタスクは優先的に実行される。
(変形例1)
第1の実施の形態では、優先度は2通りしか設定されなかった。しかし3通り以上の優先度が設定されてもよい。その場合は最も高い優先度とそれ以外の優先度に分類して処理を行う。たとえば1〜5の優先度を設け、数字が大きいほど優先されるべき場合に、優先度1〜4のタスクは、第1の実施の形態における優先度が低いタスク、すなわち第1タスク101に相当する。そして優先度5のタスクのみが第1の実施の形態における優先度が高いタスク、すなわち第2タスク102に相当する。
(変形例2)
第1の実施の形態では、タスクに要求される機能安全レベルに基づいて優先度が決定された。しかし他の指標によりタスクの優先度を決定してもよい。たとえば、他のタスクへの影響の大きさやユーザの嗜好、または機能安全レベルとそれらの組み合わせによりタスクの優先度を決定してもよい。
―第2の実施の形態―
図17を参照して、アクセス制御装置である車両制御装置の第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、スロット内に共有データ部205へのアクセスが完了しない場合を考慮する点で、第1の実施の形態と異なる。すなわち第2の実施の形態では以下のようなタスクを想定する。すなわち、あるタスクがアクセス監視時間が始まる前に共有データ部205へのアクセスを開始し、アクセス監視時間が開始してもそのアクセスは終了しなかった。さらにそのタスクは、アクセス監視時間が終了しても、換言するとそのスロットの終了時刻に到達しても共有データ部205へのアクセスが終了しなかった。
本実施の形態では、データアクセス制御部105のアクセスフラグを活用する。アクセスフラグはたとえばメモリ209に格納される情報である。第1の実施の形態において説明したように、データアクセス制御部105は、タスクの要求に応じて共有データ部205へのアクセスを許可する場合に、アクセスフラグを「アクセス中」に遷移させ、データアクセス完了時にアクセスフラグを「非アクセス中」に遷移させる。データアクセス制御部105は、アクセス監視時間の終了時にアクセスフラグが「アクセス中」であることを検出すると、車両制御装置2002を再起動することにより、全ての排他制御をリセットさせる。
これによりアクセス監視時間を超えてデータアクセスを行った場合の排他による他タスクへの影響を最小限に抑え、早期の回復が可能となる。またアクセス監視時間開始時にタスク状態が実行状態かつアクセスフラグが「アクセス中」である場合は、異常発生と判断しタスク状態管理部107によりタスクを待機状態へ遷移させてもよい。また、再起動する対象は車両制御装置2002に限らず、実装されるその他のシステム全体で再起動させてもよい。
<データアクセス制御部105の動作>
図17は、第2の実施の形態におけるデータアクセス制御部105の動作を表すフローチャートである。S203までの処理は第1の実施の形態と同様なので説明を省略する。S203において共有データ部205へのアクセスを開始させると、データアクセス制御部105はタスクによる共有データ部205へのアクセスが終了したか否かを判断し、アクセスが終了したと判断する場合は(S211:YES)、S204に進む。データアクセス制御部105はアクセスが終了していないと判断する場合は(S211:No)、アクセス監視時間が終了したか否かを判断し、アクセス監視時間が終了したと判断する場合(S212:Yes)は車両制御装置2002を再起動する(S213)。データアクセス制御部105は、アクセス監視時間が終了していないと判断する場合は(S212:No)、S211に戻る。
上述した第2の実施の形態によれば、次の作用効果が得られる。
(6)車両制御装置2002は、タスクによる共有データ部205へのアクセス状態を示すアクセスフラグと、タスクが共有データ部205へのアクセスを開始するとアクセスフラグをオンにし、タスクが共有データ部205へのアクセスを終了するとアクセスフラグをオフにするデータアクセス制御部105とを備える。データアクセス制御部105は、アクセス監視時間の終了時にアクセスフラグがオンであると車両制御装置2002を再起動させる。そのためアクセス監視時間を超えてデータアクセスを行った場合の排他による他タスクへの影響を最小限に抑え、早期の回復が可能となる。
―第3の実施の形態―
図18を参照して、アクセス制御装置である車両制御装置の第3の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、第2タスク102に割り当てられたスロットにアクセス監視時間を設ける場合がある点で、第1の実施の形態と異なる。
本実施の形態では、安全要求レベルの高い第2タスク102により他タスクへ影響を与えることが許されない場合の車両制御装置2002の動作を説明する。すなわち本実施の形態では、第2タスク102に割り当てられたスロットの次のスロットが第2タスク102に割り当てられている場合にも、先の第2タスク102に割り当てられたスロット最終部にデータアクセス監視用のアクセス監視時間を設ける。これにより、安全要求レベルの高い第2タスク102が誤動作を起こした場合に他の安全要求レベルの高い第2タスク102への影響を防ぐことが可能となる。
<システム状態管理部111の動作>
図18は、第3の実施の形態におけるシステム状態管理部111の動作を表すフローチャートである。第1の実施の形態と同様の処理には同一のステップ番号を付して説明を省略する。システム状態管理部111は、S400Aにおいて否定判定をすると、現在のスロットと次のスロットの両方に第2タスク102が割り当てられているか否かを判断する(S400C)。本ステップを肯定判定する場合はシステム状態管理部111はS401に進み、否定判定する場合はS400Bにすすむ。以下の動作は第1の実施の形態と同様なので説明を省略する。
上述した第3の実施の形態によれば、アクセス監視時間の配置対象を変更することにより、安全要求レベルの高いタスクによる他タスクへの影響を防止することが可能となる。
―第4の実施の形態―
アクセス制御装置である車両制御装置の第4の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、スケジューリングテーブル501を自動生成する点で、第1の実施の形態と異なる。
不図示の開発ツールは、スケジューリングテーブル501を自動生成する。開発ツールは、各タスクの周期、最悪実行時間、安全要求レベル等の設計情報からスケジューリングテーブル501を自動生成する。自動生成時には安全要求レベルの情報をもとに、各スロットの最終部にデータアクセス監視用のアクセス監視時間を設けるかを決定する。アクセス監視時間を設ける場合には、アクセス監視時間を含めたスロット時間の配置が行われる。
上述した第4の実施の形態によればスケジューリングテーブル501が自動生成されるので、アクセス監視時間の必要有無を考えずにアプリケーション設計が可能となる。
―第5の実施の形態―
図19〜図23を参照して、アクセス制御装置である車両制御装置の第5の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、車両制御装置2002のCPU208が複数のコアを備える点で、第1の実施の形態と異なる。
本実施の形態におけるCPU208は、図19に示すように第1コア1701、第2コア1702、および第3コア1703を備える、いわゆるマルチコアCPUである。ただしCPU208が備えるコアの数は2以上であればよく、その個数は限定されない。いずれのコアも、安全要求レベルの低い第1タスク101、および安全要求レベルの高い第2タスク102を実行し、それぞれのタスクが共有データ部205にアクセスする。また本実施の形態では、システム状態を全体監視状態、個別監視状態、非監視状態の3つに分類する。
図20は、システム状態テーブル1901の一例を示す図である。システム状態テーブル1901は各コアが個別監視状態か非監視状態かの情報及び、“全コア用アクセス監視カウンタ”を保持する。全コア用アクセス監視カウンタは0からコア数の間を増減する。そして全コア用アクセス監視カウンタの値が1以上である状態を「全体監視状態」と呼ぶ。すなわち第1の実施の形態におけるアクセス監視状態およびアクセス非監視状態は、本実施の形態における個別監視状態および非監視状態に対応し、各コアにおける共有データ部205へのアクセス可否を示す。全体監視状態は、車両制御装置2002の全体、すなわちすべてのコアに影響し、全体監視状態ではすべてのコアにおける第1タスク101による共有データ部205への新規のアクセスが禁止される。
本実施の形態では、システム状態管理部111は、第1タスク101だけでなく第2タスク102にも監視時間を設定する。ただし第2タスク102の監視時間は、アクセス時間の2倍以上となるように設定される。
図21を参照してシステム状態テーブル1901がどのように書き換えられるかを説明する。第1タスク101用スロットにおけるアクセス監視時間の開始時(T4b)において、システム状態管理部111は第1コアのシステム状態を個別監視状態へと遷移させる。第1タスク101用スロットにおけるアクセス監視時間の終了時(T4c)において、システム状態管理部111は第1コアのシステム状態を非監視状態へと遷移させる。前述のとおり、個別監視状態のコアでは、第1タスク101における共有データ部205への新規のアクセスが禁止される。第2タスク102用スロットにおけるアクセス監視時間の開始時(T4e)において、システム状態管理部111によりそのコアのシステム状態を個別監視状態へと遷移させるとともに、全コア用アクセス監視カウンタを1インクリメントさせて全体監視状態に遷移させる。第2タスク102用スロットにおけるアクセス監視時間の終了時(T4h)において、システム状態管理部111によりそのコアのシステム状態を非監視状態へと遷移させ、全コア用アクセス監視カウンタを1デクリメントさせる。このデクリメントにより全コア用アクセス監視カウンタの値がゼロになると、全体監視状態は解除される。
前述のとおり、全コア用アクセス監視カウンタが1以上の場合は、全体監視状態となるのですべてのコアにおける第1タスク101による共有データ部205への新規のデータアクセスが禁止される。複数のコア1701、1702、1703の第2タスク102により共有データ部205へのデータアクセス要求がある場合は、データアクセス制御部105は、実行しているスロットの終了時間までが最も短い第2タスク102によるデータアクセスを優先する。ただし全体監視状態でない場合、すなわちいずれのコアにおいてもスロットの終了までに共有データ部205へアクセスに十分な時間がある場合は、データアクセス制御部105は、要求を受けた順番に第2タスク102に共有データ部205へアクセスさせてもよい。これにより、アクセス監視時間より前に他コアの第1タスク101がアクセスした際にも、第1タスク101によるデータアクセス完了後に第2タスク102によるデータアクセスを実行する時間を確保可能となる。そのため、メニーコア環境における第1タスク101のデータアクセスによる第2コア1702への影響を防ぐことが可能となる。図22を参照して具体的に説明する。
図22は、第2タスク102による共有データ部205へのアクセス要求が重複した状況を示す図である。図22では図示左から右に向かって時間が経過しており、上から第1コア1701、第2コア1702、第3コア1703の状態を示す。ただし図22は模式図であり、時間軸の長さは均一ではない。たとえば図22では第3コア1703のアクセス時間が他に比べて非常に長く描画されているが、これは作図上の問題によるものであり、全てのアクセス時間は略同一である。第1コア1701と第2コア1702は第2タスク102を実行し、第3コア1703は第1タスク101を実行している。第1コア1701におけるスロットの終了時刻はt6であり、第2タスク102の監視時間から算出して時刻t3から全体監視時間となる。第2コア1702におけるスロットの終了時刻はt7であり、第2タスク102の監視時間から算出して時刻t5から全体監視時間となる。時刻t0において、第3コア1703において第1タスク101が共有データ部205へアクセスを行っている。このアクセスは時刻t4まで継続する。
時刻t1において下向きの三角形で示すように、第2コア1702では第2タスク102による共有データ部205へアクセス要求が発生した。続く時刻t2において下向きの三角形で示すように、第1コア1703では第2タスク102による共有データ部205へアクセス要求が発生した。そして時刻t3において第1コア1703では全体監視時間が開始された。第3コア1703の第1タスク101による共有データ部205へアクセスが完了する時刻t4において、データアクセス制御部105は第2コア1702よりも第1コア1701の方がスロットの終了までの時間が短いと判断し、第1コア1701の第2タスク102に共有データ部205へアクセスさせる。その後、時刻t5に第1コア1701による共有データ部205へアクセスが終了すると、データアクセス制御部105は第2コア1702による共有データ部205へアクセスを開始させる。
(システム状態管理部111の動作)
図23は、第5の実施の形態におけるシステム状態管理部111の動作を表すフローチャートである。図23では第1の実施の形態と同様の動作には同一のステップ番号を付して説明を省略する。システム状態管理部111は、各スロットの開始時にそのスロットで実行されるタスクが第1タスク101であるか否かを判断し(S400A)、実行されるタスクが第1タスク101であると判断する場合は(S400A:Yes)、S401Aに進む。実行されるタスクが第1タスク101ではない、すなわち第2タスク102が実行されると判断する場合は(S400A:No)、S400Bにおいて次の処理を行う。
すなわちシステム状態管理部111は、スロットの終了時刻をスロット時間監視部110に設定するとともに、アクセス監視時間の開始時刻を第2タスク102用の監視時間に基づき算出してアクセス時間監視部109に設定して計数を開始させる(S400B)。そしてシステム状態管理部111は監視時間であると判断すると(S402B:Yes)、そのコアのシステム監視状態を個別監視状態へ遷移させるとともに、全コア用アクセス監視カウンタをインクリメントし、システム状態を全体監視状態に遷移させ(S403B)、S404へ進む。ただしすでにシステム状態が全体監視状態である場合は全コア用アクセス監視カウンタのインクリメントのみを行う。
S401Aではシステム状態管理部111は、アクセス監視時間の開始時刻を第1タスク101用の監視時間に基づき算出してその時刻をアクセス時間監視部109に設定し、かつスロットの終了時刻をスロット時間監視部110に設定して計数を開始させてS402に進む。S402ではシステム状態管理部111は監視時間であると判断すると(S402A:Yes)、そのコアのシステム監視状態を個別監視状態へ遷移させてS404に進む(S403A)。S404ではスロット時間であると判断すると、そのコアのシステム監視状態を非監視状態に遷移させるとともに、全コア用アクセス監視カウンタをデクリメントする(S405A)。このデクリメントにより全コア用アクセス監視カウンタの値がゼロになった場合は、全体監視状態が解除される。
上述した第5の実施の形態によれば、次の作用効果が得られる。
(7)タスクを実行するCPU208のコアを複数備え、システム状態管理部111は、第2タスク102に割り当てたスロットにおいて、スロットの末尾の第2の所定時間を全体監視時間に設定し、全体監視時間の長さは個別監視時間以上の長さである。データアクセス制御部105は、CPU208のコアごとにアクセス監視時間であるか否かを判断し、全体監視時間における全てのコアで実行される第1タスク101による共有データ部205へのアクセスを禁止する。そのため、CPU208が複数のコアを備えて複数のタスクを並列して実行可能な場合に、コアごとにアクセス監視時間を設けることで、安全要求レベルの低いタスクによる安全要求レベルの高いタスクへの影響を防止することができる。また第2タスク102のスロット末尾において全体監視時間を設け全てのコアにおける第1タスク101の共有データ部205へのアクセスを制限することで、いずれのコアで実行されている第2タスク102も共有データ部205へのアクセスを優先させ、実行の遅延を防止することができる。
(8)データアクセス制御部105は、複数のコアにおいて第2タスク102が共有データ部205へのアクセスを試みると、実行しているスロットの終期までの時間が全体監視時間未満である第2タスク102による共有データ部205へのアクセスを優先させる。そのため第2タスク102同士の共有データ部205へのアクセスが重複した場合に、実行終了までの時間が短いタスクによるアクセスを優先し、第2タスク102による共有データ部205へのアクセスを可能な限り提供する。
(第5の実施の形態の変形例)
全体監視時間は、タスクが共有データ部205へのアクセスに要する時間と、コア数との積よりも長い時間としてもよい。これにより、他のコアで実行されている第2タスク102のデータアクセスによる影響を防ぐことができる。
―第6の実施の形態―
図24を参照して、アクセス制御装置である車両制御装置の第6の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、システム状態管理部を備えない点で、第1の実施の形態と異なる。
本実施の形態では、システム状態管理部111の代わりにハードウエアタイマの複数のモードとモードに対応する複数のフラグを併用してシステム状態管理を行う。タイマは設定された時間となったことを示すフラグを保持している。
図24は本実施の形態における動作の概要を示す図である。図24を参照してタイマの動作を説明する。第一のモードである連続実行モードではカウンタが設定時間(T5d)になるとフラグ1をマッチング状態へと遷移し、カウンタを0へとリセットして再度カウントを開始する。カウントが開始されるとフラグ1は非マッチング状態へと遷移する。このモードをスロット時間の監視に用いることで、タスクを定められた時間で起動する。
第二のモードである単発実行モードではカウンタが設定時間(T5b)になるとフラグ2をマッチング状態へと遷移し、再度時間を設定される(T5d)までカウンタを停止させる。このモードをアクセス監視時間の監視に用いる。スロットの開始時(T5a)にアクセス監視時間の開始時刻を設定する。タスクがデータアクセスを試みる際にはシステム状態判定部106がフラグ2を参照し、フラグ2がマッチング状態の場合にはアクセス監視状態と判定、データアクセス制御部105がタスクのデータアクセスを禁止する。
上述した第6の実施の形態によれば、複数のタイマモード併用により、システム状態の管理をハードウエアタイマのみで実現できる。
―第7の実施の形態―
図25〜図26を参照して、アクセス制御装置である車両制御装置の第7の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、FPGAを用いる点で、第1の実施の形態と異なる。
(構成)
図25は第7の実施の形態における車両制御装置2002のブロック図である。本実施の形態では、アクセス時間監視部109、スロット時間監視部110、およびシステム状態管理部111はFPGA(field-programmable gate array)上に構成される。また第1の実施の形態の構成に加えて、FPGA上にタイマフラグ監視部2303をさらに備える。
図26は、タイマフラグ監視部2303の動作を説明する図である。タイマフラグ監視部2303はアクセス時間監視部109およびスロット時間監視部110とタイマの時間を常に比較する。そしてタイマフラグ監視部2303は、アクセス時間監視部109とタイマが一致すると(図26の時刻T6b)monitorフラグをマッチング状態に遷移させ、スロット時間監視部とタイマが一致すると(時刻T6d)slotフラグをマッチング状態に遷移させる。システム状態管理部111は、monitorフラグおよびslotフラグの状態遷移を監視し、monitorフラグがマッチング状態に遷移すると(時刻T6b)システム状態をアクセス監視状態に遷移させる。またシステム状態管理部111は、slotフラグがマッチング状態に遷移されると(時刻T6d)システム状態をアクセス非監視状態に遷移させる。
上述した第7の実施の形態によれば、FPGAを用いた時間監視及び状態管理により、ひとつのタイマで複数の時間を監視可能となる。
―第8の実施の形態―
図27〜図28を参照して、アクセス制御装置である車両制御装置の第8の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、動作ログ管理部213の動作を明確にしている点で、第1の実施の形態と異なる。
図27は、動作ログ管理部213の動作を表すフローチャートである。動作ログ管理部213は、各スロットにおけるタスクの開始時刻、終了時刻、タスクID及びスロット終了時の状態を取得(S701、S702)して記録する(S703)。特に終了時の状態を記録しておくことにより、タスクが正常に動作しているか、長い動作時間を有する跨りタスクか、異常が発生したことによる強制終了か、アクセス監視時間内でのデータアクセスによる終了か、アクセス監視時間内でのデータアクセスによる跨り中断かを動作ログに保持する。
図28は、動作ログ管理部213が記録した動作ログ1101の一例を示す図である。動作ログ1101には、各スロットにおける開始時刻、終了時刻、タスクID、および終了時の状態が記録される。
上述した第8の実施の形態によれば、動作ログを記録することにより、各時間におけるタスクの状態を確認可能となる。また、他タスクへ影響を起こすタイミングでのデータアクセスを試みたタスクの発見が可能となる。
上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
101…第1タスク
102…第2タスク
105…データアクセス制御部
106…システム状態判定部
107…タスク状態管理部
108…スケジューリング部
109…アクセス時間監視部
110…スロット時間監視部
111…システム状態管理部
205…共有データ部
206…タスク実行制御部
208…CPU
210…タイマ
213…動作ログ管理部
214…アプリケーション部
215…ハードウエア
216…ソフトウエア
501…スケジューリングテーブル
1101…動作ログ
1901…システム状態テーブル
2001…車両システム
2002…車両制御装置
2303…タイマフラグ監視部

Claims (8)

  1. 実行の優先度により分類され相対的に優先度が低い第1タスクおよび相対的に優先度が高い第2タスクを含むアプリケーション部と、
    前記第1タスクおよび前記第2タスクを実行する実行部と、
    実行されるタスクごとに、タスクごとのあらかじめ定められた長さの時間であるスロットを割り当て、前記第1タスクに割り当てた前記スロットにおいて、前記スロットの末尾の第1の所定時間をアクセス監視時間に設定するシステム状態管理部と、
    前記第1タスクおよび前記第2タスクによりアクセスされる共有データ部と、
    前記アクセス監視時間における前記第1タスクによる前記共有データ部へのアクセスを禁止するデータアクセス制御部とを備えるアクセス制御装置。
  2. 請求項1に記載のアクセス制御装置において、
    前記アクセス監視時間は、前記第1タスクが前記共有データ部へのアクセスに要する時間よりも長いアクセス制御装置。
  3. 請求項1に記載のアクセス制御装置において、
    前記データアクセス制御部は、前記アクセス監視時間に前記共有データ部へのアクセスを試みた前記第1タスクを終了状態に遷移させるアクセス制御装置。
  4. 請求項1に記載のアクセス制御装置において、
    前記データアクセス制御部は、複数の前記スロットに跨って実行される前記第1タスクが、最終スロット以外で前記アクセス監視時間に前記共有データ部へのアクセスを試みると、前記第1タスクを次のスロットの開始時刻まで待機させるアクセス制御装置。
  5. 請求項1に記載のアクセス制御装置において、
    タスクによる前記共有データ部へのアクセス状態を示すアクセスフラグと、
    タスクが前記共有データ部へのアクセスを開始すると前記アクセスフラグをオンにし、タスクが前記共有データ部へのアクセスを終了すると前記アクセスフラグをオフにするフラグ管理部とをさらに備え、
    前記データアクセス制御部は、前記アクセス監視時間の終了時に前記アクセスフラグがオンであると前記アクセス制御装置を再起動させるアクセス制御装置。
  6. 請求項1に記載のアクセス制御装置において、
    前記タスクを実行する前記実行部を複数備え、
    システム状態管理部はさらに、前記第2タスクに割り当てた前記スロットにおいて、前記スロットの末尾の第2の所定時間を全体アクセス監視時間に設定し、前記第2の所定時間は前記第1の所定時間以上の長さであり、
    前記データアクセス制御部は、前記実行部ごとに前記アクセス監視時間であるか否かを判断し、前記全体アクセス監視時間における全ての前記実行部で実行される前記第1タスクによる前記共有データ部へのアクセスを禁止するアクセス制御装置。
  7. 請求項6に記載のアクセス制御装置において、
    前記データアクセス制御部は、複数の前記実行部において前記第2タスクが前記共有データ部へのアクセスを試みると、前記スロットの終期までの時間が短い前記第2タスクによる前記共有データ部へのアクセスを優先させるアクセス制御装置。
  8. 請求項1に記載のアクセス制御装置において、
    前記優先度は、前記タスクに要求される機能安全のレベルに基づいて決定されるアクセス制御装置。
JP2017164747A 2017-08-29 2017-08-29 アクセス制御装置 Active JP6796040B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017164747A JP6796040B2 (ja) 2017-08-29 2017-08-29 アクセス制御装置
PCT/JP2018/026818 WO2019044226A1 (ja) 2017-08-29 2018-07-18 アクセス制御装置
DE112018003505.0T DE112018003505T5 (de) 2017-08-29 2018-07-18 Zugriffssteuereinrichtung
CN201880049591.8A CN110959152B (zh) 2017-08-29 2018-07-18 访问控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017164747A JP6796040B2 (ja) 2017-08-29 2017-08-29 アクセス制御装置

Publications (2)

Publication Number Publication Date
JP2019045907A JP2019045907A (ja) 2019-03-22
JP6796040B2 true JP6796040B2 (ja) 2020-12-02

Family

ID=65527283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017164747A Active JP6796040B2 (ja) 2017-08-29 2017-08-29 アクセス制御装置

Country Status (4)

Country Link
JP (1) JP6796040B2 (ja)
CN (1) CN110959152B (ja)
DE (1) DE112018003505T5 (ja)
WO (1) WO2019044226A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259306A (zh) * 2020-12-31 2021-08-13 上海自动化仪表有限公司 功能安全与信息安全融合的温度变送器及其操作方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895807A (ja) * 1994-09-21 1996-04-12 Toyota Motor Corp タスク実行制御方法
JP2003131892A (ja) * 2001-10-25 2003-05-09 Matsushita Electric Ind Co Ltd タスク実行制御装置及びタスク実行制御方法
CN1327347C (zh) * 2002-01-24 2007-07-18 皇家飞利浦电子股份有限公司 在多处理环境中执行进程
JP4750350B2 (ja) * 2003-03-13 2011-08-17 パナソニック株式会社 タスク切換装置、方法及びプログラム
EP2642399A1 (en) * 2010-11-15 2013-09-25 Fujitsu Limited Access method, and multi-core processor system
JP5684629B2 (ja) * 2011-03-31 2015-03-18 日本電気株式会社 ジョブ管理システム及びジョブ管理方法
JP5726006B2 (ja) * 2011-07-26 2015-05-27 三菱日立パワーシステムズ株式会社 タスクおよびリソースのスケジューリング装置及びその方法並びに制御装置

Also Published As

Publication number Publication date
DE112018003505T5 (de) 2020-04-23
CN110959152B (zh) 2023-11-10
CN110959152A (zh) 2020-04-03
JP2019045907A (ja) 2019-03-22
WO2019044226A1 (ja) 2019-03-07

Similar Documents

Publication Publication Date Title
US9880927B2 (en) Functionally expandable vehicle control device and method for supplementing the functionality of a vehicle control device
WO2007001014A1 (ja) 情報端末、計算機資源管理方法、および仮想マシンの実行切り替え方法
US20150339491A1 (en) Data allocation among devices with different data rates
US20070118838A1 (en) Task execution controller, task execution control method, and program
CN109960589B (zh) 嵌入式系统的系统软件层的实现方法、装置及可读介质
EP3056991A1 (en) Apparatus and method for managing a plurality of threads in an operating system
CN103329102A (zh) 多处理器系统
JP6796040B2 (ja) アクセス制御装置
US11934865B2 (en) Vehicle control system for dynamically updating system components
EP3702911B1 (en) Hardware for supporting os driven load anticipation based on variable sized load units
JP2013161242A (ja) 電子制御装置
JP6861591B2 (ja) 車両制御装置
WO2022138218A1 (ja) 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム
US20180068501A1 (en) Multiprocessor system and vehicle control system
CN111597018B (zh) 一种机器人作业调度方法及装置
JP4017005B2 (ja) 演算装置
JP6729430B2 (ja) 電子制御装置
US20240036941A1 (en) Vehicle-mounted computer, computer execution method, and computer program
US11520638B1 (en) Combined active and preinitialized resource management for rapid autoscaling
WO2018127394A1 (en) Scalable control system for a motor vehicle
CN116302430A (zh) 自动驾驶云仿真的任务调度系统及方法
JP6968726B2 (ja) 車両制御装置
WO2022141297A1 (zh) 事件处理方法和装置
US11481262B1 (en) Rapid autoscaling with preinitialized instance quantity based on historical scale up rate
JP7463947B2 (ja) 車載ecu、プログラム、及び情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200129

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: 20201104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201113

R150 Certificate of patent or registration of utility model

Ref document number: 6796040

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250