JP4985662B2 - プログラム、及び制御装置 - Google Patents
プログラム、及び制御装置 Download PDFInfo
- Publication number
- JP4985662B2 JP4985662B2 JP2009012055A JP2009012055A JP4985662B2 JP 4985662 B2 JP4985662 B2 JP 4985662B2 JP 2009012055 A JP2009012055 A JP 2009012055A JP 2009012055 A JP2009012055 A JP 2009012055A JP 4985662 B2 JP4985662 B2 JP 4985662B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- real
- processing unit
- interrupt
- time 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
Links
- 238000000034 method Methods 0.000 claims description 77
- 230000008569 process Effects 0.000 claims description 71
- 230000002093 peripheral effect Effects 0.000 claims description 50
- 230000006870 function Effects 0.000 description 29
- 230000010354 integration Effects 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Description
また、統合前のECUにおける制御プログラムには、割込み処理が用いられている場合がある。例えば、処理単位が、このような制御プログラムに基づくVMである場合には、プログラムは、次のようなステップをさらに有していても良い。
(1)統合ECUの構成について
図1の(a)は、本実施形態における統合ECU10の構成を示すブロック図である。この統合ECU10は、第一のECUと、第二のECUと、第三のECUという三つのECUが統合されたものであり、この三つのECUが有していた機能を全て有している。また、統合ECU10は、CPU11と、ROM12と、RAM13と、CANコントローラ14とを有しており、これらの部位は内部バス15で接続されている。尚、統合ECU10は、これらの部位以外にも、第一〜第三のECUが備えている部位に対応する部位を有している。
また、図1の(b)は、統合ECU10に搭載されている統合制御プログラム100の構成を示すブロック図である。統合制御プログラム100は、ROM12に記憶されている。統合制御プログラム100は、保護機能付きRTOS110と、第一のVM120と、第二のVM130と、第三のVM140と、仮想デバイス150とを有している。尚、VMとは、Virtual Machine Programの略である。
統合制御プログラム100は、第一〜第三のECUの機能を、統合ECU10にて実現するためのプログラムである。統合制御プログラム100では、保護機能付きRTOS110が第一〜第三のVMのスケジューリングを行い、第一〜第三のVMをCPU11に並行して実行させることにより、第一〜第三のECUの機能を実現している。ここでは、保護機能付きRTOS110の動作について説明する。
保護機能付きRTOS110のスケジューラ111は、第一〜第三のVMと、仮想デバイス150とをタスクとしており、これらのタスクに対し、タイムスロット1〜10を順次割り当てる。また、タイムスロット10の割り当てが行なわれた後は、再度、タイムスロット1〜10の割り当てが順次行なわれる。そして、タスクにいずれかのタイムスロットが割り当てられると、CPU11は、このタイムスロット分の処理時間にわたって、このタスクを実行する。尚、本実施形態では、タイムスロット1〜10は全て100μsの長さであるが、各タイムスロットの長さは、この時間に限定されるものではない。また、例えば、割り当てるタスクに応じてタイムスロットの長さを変更しても良いし、条件に応じて異なる長さのタイムスロットが用いられても良い。また、タイムスロットの長さとして、例えば、100μs〜120μsといった具合に、一定の時間幅を持った時間が設定されていても良い。そして、例えば、所定の条件やタスクの状態等に応じて、この時間幅の範囲内でCPUの実行時間を変動させても良い。
次に、第一〜第三のVMのスケジューリングについて説明する。図2の(a)には、タイムスロット1〜10をどのVMに割り当てるかを示すVMスケジューリングテーブルが記載されている。VMスケジューリングテーブルは、タイムスロット1は第一のVM120に、タイムスロット2は第二のVM130に、タイムスロット3は第三のVM140に、タイムスロット4は第三のVM140に、タイムスロット5は第三のVM140に、タイムスロット6は第一のVM120に、タイムスロット7は第二のVM130に、タイムスロット8は第三のVM140に、それぞれ割り当てられることを示している。また、タイムスロット9,10に関しては、第一〜第三のVMに割り当てられないことを示している。スケジューラ111は、VMスケジューリングテーブルが示すようにタイムスロット1〜10を第一〜第三のVMに割り当て、CPU11に、第一〜第三のVMを並行して実行させる。
スケジューラ111によるタスクのスケジューリングについて説明する。上述したように、タイムスロット1〜10は、順次、第一〜第三のVMのいずれかに割り当てられる。しかし、仮想デバイス150に関しても、処理時間を確保する必要があり、仮想デバイス150に対してもタイムスロットを割り当てることができる。また、タイムスロットを割り当てられた第一のVM120または第二のVM130は、所定の条件が成立すると、自発的に処理を終了する。このため、第一のVM120または第二のVM130に関しては、割り当てられたタイムスロットを全て使い切ることなく、処理が終了してしまう場合がある。このようなケースを想定して、タイムスロット1〜10に対し、メインのタスクとサブのタスクとを対応付けておくことができる。そして、スケジューラ111は、メインのタスクがタイムスロットを使い切ることなく終了した場合には、サブのタスクに対しタイムスロットの残り時間を割り当てるのである。
図3には、タイムスロット1〜10に対応付けられているメインのタスクとサブのタスクを示すタイムスロット管理テーブルの一例が記載されている。タイムスロット管理テーブルは、タイムスロット1,6には、メインのタスクとして第一のVM120が、サブのタスクとして第三のVM140が対応付けられていることを示している。また、タイムスロット2,7には、メインのタスクとして第二のVM130が、サブのタスクとして第三のVM140が対応付けられていることを示している。また、タイムスロット3〜5、8には、メインのタスクとして第三のVM140が対応付けられており、サブのタスクに関しては対応付けがなされていないことを示している。また、タイムスロット9には、メインのタスクとして仮想デバイス150が対応付けられており、サブのタスクに関しては対応付けがなされていないことを示している。また、タイムスロット10には、メインのタスク及びサブのタスクに関して、対応付けがなされていないことを示している。スケジューラ111は、タイムスロット管理テーブルに基づき、各タスクのスケジューリングを行なう。
スケジューラ111によるタスクのスケジューリングについて、さらに詳しく説明する。スケジューラ111は、各タイムスロットに相当する時間(100μs)が経過する度に、タイムスロット割当処理を実行する。ここでは、タイムスロット割当処理について、図4に記載のフローチャートを用いて説明する。
また、上述したように、第一のVM120及び第二のVM130は、自発的に終了する場合があるが、タイムスロットを割り当てられたメインのタスクが自発的に終了すると、スケジューラ111は、サブのタスク開始処理を実行する。ここでは、サブのタスク開始処理について、図5に記載のフローチャートを用いて説明する。
既に述べたが、統合ECU10は、第一〜第三のECUを統合したECUであり、第一〜第三のECUが備える機能を有している。また、第一〜第三のVMは、それぞれ、第一〜第三のECUのプログラムの一部を変更して作成されたプログラムである。そして、第一〜第三のECUのプログラムでは、周辺デバイスからの割込み要求が発生した際にCPUから直接コールされる割込みハンドラが用いられているが、第一〜第三のVMでは、この割込みハンドラに対応するサブルーチンが用いられている。
次に、上述したタイムスロット割当処理やサブのタスク開始処理によりタイムスロットの割り当てを行った場合のタイムスロットの利用状況について説明する。尚、スケジューラ111は、図3に記載のタイムスロット管理テーブルに従いタイムスロットの割り当てを行うものとする。また、ここでは、わかりやすく説明するため、タイムスロット1〜3の利用状況については、図7に記載の説明図を用いて特に詳しく説明する。
次に、割込み処理の実行状況について、図8に記載の説明図を用いて説明する。尚、スケジューラ111は、図3に記載のタイムスロット管理テーブルに従いタイムスロットの割り当てを行うものとする。また、この説明では、例としてA割込み,B割込み,C割込みが発生するものとしているが、A割込み,B割込みに関しては、第一〜第三のVMがそれぞれ対応する割込み処理を有しており、C割込みに関しては、第二,第三のVMがそれぞれ対応する割込み処理を有している。
次に、スケジューラ111におけるタスクの一つである仮想デバイス150について説明する。上述したように、この仮想デバイス150は、第一〜第三のVMと、統合ECU10におけるCPU11の周辺デバイスへとのI/Fとなる部位である。また、この仮想デバイス150は、図3に記載のタイムスロット管理テーブルでは、タイムスロット9に対応するメインのタスクとして設定されている。ここでは、一例として、仮想デバイス150におけるCANコントローラ14に対応する機能について説明する。
次に、第一のVM120または第二のVM130が、CAN20を介して接続されている他のECUにデータを送信する場合の動作について、図10に記載のシーケンス図を用いて説明する。
次に、統合ECU10がCAN20を介して接続されている他のECUからデータを受信する場合の仮想デバイス150等の動作について、図11に記載のシーケンス図を用いて説明する。
本実施形態の統合制御プログラム100におけるスケジューラ111では、タイムスロット1,6に対応付けて、リアルタイム性が要求される第一のVM120がメインのタスクとして登録されていると共に、リアルタイム性が要求されない第三のVM140がサブのタスクとして登録されている。また、タイムスロット2,7に対応付けて、リアルタイム性が要求される第二のVM130がメインのタスクとして登録されていると共に、第三のVM140がサブのタスクとして登録されている。そして、メインのタスクとして登録されている第一のVM120或いは第二のVM130が、自身に割り当てられたタイムスロットを全て消費することなく処理を終了した場合には、サブのタスクである第三のVM140に、このタイムスロットの残り時間が割り当てられる(S310)。したがって、スケジューラ111によれば、リアルタイム性が要求されない第三のVM140により実現される処理の停滞を抑えつつ、第一〜第三のVMをCPUに並行して実行させることができる。
(1)本実施形態では、第一〜第三のVMと、仮想デバイス150とがスケジューラ111の四つがタスクとして登録されているが、スケジューラ111に登録されるタスクの数は四つに限定されるものではない。また、本実施形態では、仮想デバイス150は、メインのタスクとしてタイムスロット9に割り当てられているが、サブのタスクとしてタイムスロットに割り当てられていても良い。また、VM等に替えて、例えば、外部装置を制御するためのアプリケーション等をタスクとしても良い。このような構成を有する場合であっても、同様の効果を得ることができる。
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
Claims (7)
- 複数の処理単位のうちのいずれかに対して予め設定されたタイミングでタイムスロットを割り当てることにより、これらの前記処理単位をCPUに並行して実行させる基本プログラムであって、
前記処理単位として、外部からの入力に対し予め設定された時間内での応答が可能であるという性質であるリアルタイム性が要求されるリアルタイム処理単位と、前記リアルタイム性が要求されない非リアルタイム処理単位とが存在し、前記非リアルタイム処理単位は、いずれかの前記リアルタイム処理単位に対応付けられており、
前記処理単位として、所定の割込みに対応する割込み処理を有している割込み対応処理単位が存在し、
前記基本プログラムは、前記処理単位に対して前記タイムスロットを割り当てるタイミングを示すデータであるタイムスロットデータを有しており、
前記基本プログラムは、
前記タイムスロットデータに基づき、前記リアルタイム処理単位に前記タイムスロットを割り当てる第一のステップと、
前記第一のステップにて割り当てられた前記タイムスロットを使い切ることなく、前記リアルタイム処理単位が終了した場合には、該リアルタイム処理単位に替えて、該リアルタイム処理単位に対応付けられている前記非リアルタイム処理単位に、該タイムスロットの残り時間を割り当てる第二のステップと、
前記タイムスロットに前記リアルタイム処理単位が割り当てられて当該リアルタイム処理単位が実行中、または、前記タイムスロットの前記残り時間に前記非リアルタイム処理単位が割り当てられて当該非リアルタイム処理単位が実行中に、前記割込み対応処理単位に対応する前記所定の割込みが発生すると、該所定の割込みに対応する前記割込み処理を優先して実行する第七のステップと、
を有することを特徴とする基本プログラム。 - 請求項1に記載の基本プログラムにおいて、
前記リアルタイム処理単位は、複数の前記非リアルタイム処理単位に対応付けられており、該リアルタイム処理単位に対応する前記非リアルタイム処理単位には、優先順位が設定されており、
前記第二のステップにおいて、前記リアルタイム処理単位に対応する前記非リアルタイム処理単位のうち、優先順位の高い前記非リアルタイム処理単位から順に前記タイムスロットの残り時間を割り当てること、
を特徴とする基本プログラム。 - 請求項1または請求項2に記載の基本プログラムにおいて、
前記処理単位のうちの少なくとも二つは、前記基本プログラムが搭載される装置とは異なる他の装置の制御プログラムに基づく処理単位であるVM(Virtual Machine Programの略)であること、
を特徴とする基本プログラム。 - 請求項3に記載の基本プログラムにおいて、
前記VMは、前記他の装置におけるCPUの周辺デバイスであって、前記基本プログラムが搭載される装置におけるCPUにおける周辺デバイスである自装置の周辺デバイスと同一の用途にて用いられる周辺デバイスである他の装置の周辺デバイスを制御するための処理を有しており、
前記自装置の周辺デバイスには、前記他の装置の周辺デバイスとは異なる形式で指示を行う必要があり、
前記基本プログラムは、
それぞれの前記VMから、前記他の装置の周辺デバイスへの指示と同様の形式で、前記自装置の周辺デバイスに対しての指示を受け付ける第三のステップと、
前記第三のステップにて受け付けた指示を、前記自装置の周辺デバイスに対応する形式に変換し、該自装置の周辺デバイスに対しての制御を行う第四のステップと、
をさらに有すること、
を特徴とする基本プログラム。 - 請求項4に記載の基本プログラムにおいて、
前記基本プログラムは、
前記自装置の周辺デバイスから提供されるデータを取得する第五のステップと、
前記第五のステップにて取得したデータを、該自装置の周辺デバイスに対応する前記他の装置の周辺デバイスを制御する処理を有する前記VMに対し、該他の装置の周辺デバイスに対応する形式で提供する第六のステップと、
をさらに有すること、
を特徴とする基本プログラム。 - 請求項1から請求項5のうちのいずれか1項に記載の基本プログラムにおいて、
前記割込み対応処理単位が有する前記割込み処理に対応する前記所定の割込みとは、CANを介してデータを受信した際に発生する割り込みであり、該割込み処理では、該データを受信するための処理が行われること、
を特徴とする基本プログラム。 - 請求項1から請求項6のうちのいずれか1項に記載の基本プログラムに従い処理を行うコンピュータを備える制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009012055A JP4985662B2 (ja) | 2009-01-22 | 2009-01-22 | プログラム、及び制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009012055A JP4985662B2 (ja) | 2009-01-22 | 2009-01-22 | プログラム、及び制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010170320A JP2010170320A (ja) | 2010-08-05 |
JP4985662B2 true JP4985662B2 (ja) | 2012-07-25 |
Family
ID=42702419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009012055A Active JP4985662B2 (ja) | 2009-01-22 | 2009-01-22 | プログラム、及び制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4985662B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656855A (zh) * | 2016-07-26 | 2018-02-02 | 佛山市顺德区顺达电脑厂有限公司 | 提醒用户放错cpu的系统及其方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5423635B2 (ja) | 2009-11-09 | 2014-02-19 | 株式会社デンソー | スケジューリング方法,スケジューリングプログラム,スケジューリング装置 |
WO2015045151A1 (ja) | 2013-09-30 | 2015-04-02 | 三菱電機株式会社 | 受信装置および通信装置 |
CN118312196A (zh) | 2015-09-14 | 2024-07-09 | 松下电器(美国)知识产权公司 | 网关装置、车载网络系统以及固件更新方法 |
DE112019007432B4 (de) * | 2019-06-27 | 2024-02-08 | Mitsubishi Electric Corporation | Elektronische steuereinheit und programm |
JP7468308B2 (ja) * | 2020-11-13 | 2024-04-16 | 住友電装株式会社 | 車載ecu、プログラム、及び情報処理方法 |
JP2022144140A (ja) * | 2021-03-18 | 2022-10-03 | 株式会社オートネットワーク技術研究所 | 車載装置、情報処理方法、及びコンピュータプログラム |
JP2024047740A (ja) * | 2022-09-27 | 2024-04-08 | 日立Astemo株式会社 | 電子制御装置、車両制御システム、及びタスクの制御方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3659062B2 (ja) * | 1999-05-21 | 2005-06-15 | 株式会社日立製作所 | 計算機システム |
JP3813930B2 (ja) * | 2002-01-09 | 2006-08-23 | 松下電器産業株式会社 | プロセッサ及びプログラム実行方法 |
CN1922576A (zh) * | 2003-09-30 | 2007-02-28 | 扎鲁纳股份有限公司 | 操作系统 |
JP4728083B2 (ja) * | 2005-10-14 | 2011-07-20 | パナソニック株式会社 | メディア処理装置 |
JP2008262419A (ja) * | 2007-04-12 | 2008-10-30 | Toyota Motor Corp | 情報処理装置、オペレーティングシステム選択方法、プログラム。 |
-
2009
- 2009-01-22 JP JP2009012055A patent/JP4985662B2/ja active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656855A (zh) * | 2016-07-26 | 2018-02-02 | 佛山市顺德区顺达电脑厂有限公司 | 提醒用户放错cpu的系统及其方法 |
CN107656855B (zh) * | 2016-07-26 | 2020-06-30 | 佛山市顺德区顺达电脑厂有限公司 | 提醒用户放错cpu的系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2010170320A (ja) | 2010-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4985662B2 (ja) | プログラム、及び制御装置 | |
JP2011028559A (ja) | 中継プログラムおよび電子制御装置 | |
JP5324934B2 (ja) | 情報処理装置および情報処理方法 | |
US8856196B2 (en) | System and method for transferring tasks in a multi-core processor based on trial execution and core node | |
US9858115B2 (en) | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium | |
US11416293B2 (en) | Control unit having a scheduler for scheduling a plurality of virtual machines, and methods for scheduling a plurality of virtual machines | |
US20150121387A1 (en) | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium | |
Masrur et al. | VM-based real-time services for automotive control applications | |
JP2020135214A (ja) | タスク管理装置 | |
US9367349B2 (en) | Multi-core system and scheduling method | |
JP5533789B2 (ja) | 車載電子制御装置 | |
Li et al. | Multi-mode virtualization for soft real-time systems | |
CN112817762A (zh) | 一种基于自适应汽车开放系统架构标准的调度系统及其调度方法 | |
US10853133B2 (en) | Method and apparatus for scheduling tasks to a cyclic schedule | |
Pöhnl et al. | A middleware journey from microcontrollers to microprocessors | |
JP2013152636A (ja) | 情報処理装置、タスクスケジューリング方法 | |
JP2011170619A (ja) | マルチスレッド処理装置 | |
Munk et al. | Position paper: Real-time task migration on many-core processors | |
US8095695B2 (en) | Control apparatus for process input-output device | |
CN111831406A (zh) | 一种基于车载嵌入式系统的多任务调度方法及装置 | |
Mishra et al. | Dynamic task scheduling on multicore automotive ECUs | |
JP3893136B2 (ja) | 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム | |
Dasari et al. | Applying Reservation-based Scheduling to a μC-based Hypervisor: An industrial case study | |
Böhm et al. | Multi-core processors in the automotive domain: An AUTOSAR case study | |
WO2025065274A1 (en) | Dynamic time partitioning for computation-communication chains |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100603 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110826 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111031 |
|
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: 20120403 |
|
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: 20120416 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4985662 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150511 Year of fee payment: 3 |
|
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 |
|
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 |