JP6512087B2 - 車両用制御装置 - Google Patents

車両用制御装置 Download PDF

Info

Publication number
JP6512087B2
JP6512087B2 JP2015240566A JP2015240566A JP6512087B2 JP 6512087 B2 JP6512087 B2 JP 6512087B2 JP 2015240566 A JP2015240566 A JP 2015240566A JP 2015240566 A JP2015240566 A JP 2015240566A JP 6512087 B2 JP6512087 B2 JP 6512087B2
Authority
JP
Japan
Prior art keywords
core
storage unit
control
exclusive
semaphore
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
JP2015240566A
Other languages
English (en)
Other versions
JP2017107394A (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
Original Assignee
Denso 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 filed Critical Denso Corp
Priority to JP2015240566A priority Critical patent/JP6512087B2/ja
Priority to DE102016224206.7A priority patent/DE102016224206A1/de
Publication of JP2017107394A publication Critical patent/JP2017107394A/ja
Application granted granted Critical
Publication of JP6512087B2 publication Critical patent/JP6512087B2/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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Description

本発明は、車両に搭載されるものであり、複数の演算部と複数の演算部が共通にアクセスする共有データが格納された共有記憶部とを有した車両用制御装置に関する。
従来、上記のような構成の車両用制御装置の一例として、特許文献1に開示されたものがある。
特許文献1には、複数の演算部と、複数の演算部が共通にアクセスする共有データが冗長に格納される共有記憶部とを備えた車両用制御装置が開示されている。この車両用制御装置は、共有記憶部へのアクセスが競合することを避けるために、データ更新処理部を実行していない演算部に対して最高優先度の割り込み信号を入力している。
特開2013−171547号公報
しかしながら、特許文献1では、共有データを更新するたびに割り込みが発生するため、共有データが多い場合には割り込みが多発する。よって、特許文献1では、共有データを更新するための割り込みによって、他の割り込みが遅延されるという問題がある。さらに、特許文献1では、共有記憶部の通知処理などのための処理時間によっても演算部のロードが増加する。
本発明は、上記問題点に鑑みなされたものであり、割り込み遅延や演算部のロード増加を低減した車両用制御装置を提供することを目的とする。
上記目的を達成するために本発明は、
車両に搭載されるものであり、複数の演算部(10、20)と、複数の演算部が共通にアクセスする共有記憶部(33、41)と、を備えた車両用制御装置であって、
複数の演算部によって実行されるものであり、複数の演算部による共有記憶部への競合を抑制するための複数の排他制御を含むプログラム(31a、31b)と、
各排他制御が各演算部によって実行されたか否かを示す、各排他制御に対応した複数の実行履歴を記憶している記憶部(32、32a)と、
各演算部は、排他制御を実行するものであり、複数の排他制御のうち複数の演算部で実行されたことを示す実行履歴が記憶された排他制御に関しては排他制御を実行し、複数の排他制御のうち複数の演算部で実行されたことを示す実行履歴が記憶されていない排他制御に関しては排他制御を実行せず、さらに、重複しない識別情報が割り振られており、自身が排他制御を実行した場合、実行した排他制御と、自身に割り振られた識別情報と、を関連付けた情報を実行履歴として記憶部に記憶することで、排他制御を実行した演算部に対応する実行履歴を更新する更新部を含むことを特徴とする。
このように、本発明は、各排他制御が各演算部によって実行されたか否かを示す実行履歴を記憶している記憶部を有している。よって、本発明は、複数の排他制御の夫々を実行した演算部がわかるように構成されている。そして、複数の演算部で実行された排他制御は、複数の演算部による共有記憶部への競合が発生する可能性がある。このため、各演算部は、複数の排他制御のうち複数の演算部で実行されたことを示す実行履歴が記憶された排他制御に関しては排他制御を実行する。一方、複数の演算部で実行されていない排他制御は、複数の演算部による共有記憶部への競合が発生する可能性がない。このため、各演算部は、複数の排他制御のうち複数の演算部で実行されたことを示す実行履歴が記憶されていない排他制御に関しては排他制御を実行しない。
よって、本発明は、複数の演算部による共有記憶部への競合が発生する可能性がない場合に排他制御が実行されることを抑制できる。従って、本発明は、必要以上に排他制御を行うことを抑制できる。なお、これによって、本発明は、演算部によるロード増加の低減が期待できる。さらに、本発明は、排他制御を実行するために割り込みを行ったとしても、割り込みによる遅延の低減が期待できる。
なお、特許請求の範囲、及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、発明の技術的範囲を限定するものではない。
第1実施形態における車両用制御装置の概略構成を示すブロック図である。 第1実施形態におけるプラットフォームプログラム実行時のフローチャートである。 第1実施形態におけるセマフォ獲得処理を示すフローチャートである。 第1実施形態におけるスピンロック処理を示すフローチャートである。 第1実施形態におけるセマフォ解放処理を示すフローチャートである。 第1実施形態における実行履歴を示すイメージ図である。 第1実施形態における各共有記憶部とセマフォとの関係を示すイメージ図である。 変形例1における各共有記憶部とセマフォとの関係を示すイメージ図である。 変形例2における各共有記憶部とセマフォとの関係を示すイメージ図である。 第2実施形態における車両用制御装置の概略構成を示すブロック図である。
以下において、図面を参照しながら、発明を実施するための形態を説明する。
(第1実施形態)
本実施形態では、図1に示す車両用制御装置100に適用した例を採用する。また、車両用制御装置100は、車両に搭載される制御装置であり、例えばエンジン制御装置、ハイブリッド制御装置などに適用できる。本実施形態では、一例として、車両用制御装置100をエンジン制御装置に適用した例を採用する。
車両用制御装置100は、複数のセンサから検出信号を取得可能に構成されており、取得した検出信号を用いてエンジンの状態に応じた最適な燃料噴射を行うための演算を実行する。図1では、センサの一例としてクランク角センサ210を図示している。また、車両用制御装置100は、各種アクチュエータが接続されている。図1では、アクチュエータの一例としてインジェクタ220を図示している。そして、車両用制御装置100は、演算結果である制御信号を出力することで、インジェクタ220などのアクチュエータを制御する。このようにして、車両用制御装置100は、エンジン制御を行う。
車両用制御装置100は、マイコンなどを備えて構成されている。詳述すると、車両用制御装置100は、第1コア10、第2コア20、第1記憶部31、第2記憶部32、第1共有記憶部33、入出力回路40などを備えて構成されている。また、車両用制御装置100は、第1コア10と第2コア20、及び、第1コア10と第2コア20とが共通にアクセスする第1共有記憶部33と後程説明する第2共有記憶部41とを備えて構成されている。なお、以下においては、第1共有記憶部33と後程説明する第2共有記憶部41とを纏めて共有記憶部と称することもある。
第1コア10は、第1CPU11、第1レジスタ12、第1メモリ13を備えて構成されている。第1メモリ13は、第1コア10の第1コアIDが記憶されている。第1コアIDは、第1コア10であることを示す情報、すなわち識別情報である。IDは、Identificationの略称である。
第2コア20は、第1コア10と同様に、第2CPU21、第2レジスタ22、第2メモリ23を備えて構成されている。第2コアIDは、第2コア20であることを示す識別情報である。第1コアIDと第2コアIDとは、重複することなく設けられている。
このように、本実施形態では、複数の演算部として、第1コア10と第2コア20とを採用している。しかしながら、本発明は、これに限定されず、三つ以上のコアを備えていても目的を達成できる。なお、CPUは、Central Processing Unitの略称である。
第1コア10と第2コア20は、後程説明するアプリケーションプログラム及びプラットフォームプログラムを実行することで、共有記憶部に記憶された共有データにアクセスしつつ、上記のように演算や入出力回路40を介して制御信号の出力を行う。また、第1コア10と第2コア20は、アプリケーションプログラム及びプラットフォームプログラムを実行することで、第2記憶部32にアクセスする。第1コア10と第2コア20は、第2記憶部32にアクセスした場合、セマフォの獲得及び解放や、コア実行履歴の更新などを行う。このように、車両用制御装置100は、コア排他制御の一例として、セマフォを用いたコア排他制御を行う。しかしながら、本発明は、これに限定されず、ミューテックスなどの排他制御を採用できる。なお、コア排他制御は、特許請求の範囲における排他制御に相当する。
以下においては、第1コア10と第2コア20とを区別する必要がない場合、単にコアとも記載する。同様に、第1コアIDと第2コアIDとを区別する必要がない場合、単にコアIDとも記載する。
第1記憶部31は、例えばROMを採用できる。第1記憶部31には、第1コア10及び第2コア20で実行されるプログラムが記憶されている。このプログラムは、アプリケーションプログラムとプラットフォームプログラムに分離されている。つまり、第1記憶部31には、アプリケーションプログラムやプラットフォームプログラムが記憶されている。アプリケーションプログラムは、例えば、車両状態に応じて燃料を噴射するエンジン位置や噴射量の要求値などを演算するプログラムである。プラットフォームプログラムは、例えば、アプリケーションプログラムからの要求値に基づき、要求されたエンジン位置、噴射量で燃料を噴射するように入出力回路40を駆動するプログラムである。
なお、第1記憶部31に記憶されたプログラムは、例えば、プラットフォームプログラムを車両制御装置サプライヤが開発し、アプリケーションプログラムを完成車両メーカが開発することが考えられる。また、プラットフォームプログラムの開発資産は、複数の車両システムで再利用されることが一般的である。一方、アプリケーションプログラムは、車両システムごとに異なることがありうる。このため、プラットフォームプログラムを実行するCPU割り当ては、車両システムによって異なる可能性がある。このような場合、プラットフォームプログラムは、どのようにCPU割り当てがされても、共有記憶部の競合を避けられるように、コア間の排他制御(以下、コア排他制御)が行われるようにする必要がある。
つまり、プラットフォームプログラムは、共有記憶部へアクセスされる全てのタイミングでコア排他制御が行われるように構成されている。言い換えると、プラットフォームプログラムは、共有記憶部へアクセスされる全ての処理に対応してコア排他制御が行われるように構成されている。また、プラットフォームプログラムは、フルにコア排他制御が設けられているとも言える。さらに、プログラムは、第1コア10と第2コア20による共有記憶部への競合を抑制するための複数の排他制御を含んでいると言える。しかしながら、第1コア10と第2コア20は、全てのタイミングで共有記憶部へアクセスするとは限らない。
また、第1記憶部31には、第1コア10及び第2コア20で実行されるプログラムとして、複数のコア排他制御を含む第1プログラムと、第1プログラムとは異なる第2プログラムとが記憶されていると言うこともできる。
第2記憶部32は、例えばRAMを採用できる。第2記憶部32には、セマフォやコア実行履歴が記憶されている。第2記憶部32は、特許請求の範囲における記憶部に相当する。
セマフォは、周知のように、複数コアと共有記憶部を持つ装置におけるコア排他制御に用いられる。つまり、セマフォは、第1コア10と第2コア20による、第1共有記憶部33や第2共有記憶部41へのアクセスが競合することを避けるためのコア排他制御に用いられる。また、コア排他制御は、第1コア10が共有データにアクセスするタイミングと、第2コア20が共有データにアクセスするタイミングとが同時にならないことを実現するための手法とも言える。
セマフォは、解放中の状態と、獲得中の状態を持つ。詳述すると、セマフォは、獲得中のコアID、及び解放中を示すことができる。例えば、第2記憶部32は、セマフォ獲得中であるかセマフォ解放中であるかを示す情報と、セマフォ獲得中であるコアのコアIDとを含むものである。なお、セマフォ獲得中であるかセマフォ解放中であるかを示す情報と獲得中であるコアのコアIDは、纏めてセマフォ情報と称することができる。よって、図1の第2記憶部32に記載したセマフォは、セマフォ情報に相当するとも言える。
また、セマフォを獲得中のコアは、唯一となるように構成されている。すなわち、セマフォを獲得中のコアは、第1コア10と第2コア20のいずれか一方のみである。そして、コア排他制御では、セマフォを参照しながら第1共有記憶部33や第2共有記憶部41にアクセスすることによりコア間での排他が可能になる。例えば、第1コア10は、セマフォを参照しながら第1共有記憶部33にアクセスすることにより、自身がセマフォを解放するまで、第2コア20による第1共有記憶部33へのアクセス禁止が可能になる。
また、セマフォは、一つであってもよいし、複数であってもよい。図7は、セマフォが一つの場合の各共有記憶部とセマフォとの関係を示している。つまり、セマフォXは、複数の共有記憶部の夫々に共通である。なお、本実施形態では、共有記憶部として、第1共有記憶部33と第2共有記憶部41のみを有した車両用制御装置100を採用している。しかしながら、共有記憶部とセマフォとの関係の説明では、第1共有記憶部33及び第2共有記憶部41に加えて、第3共有記憶部を備えている場合を採用している。
一方、コア実行履歴は、コア排他制御を実行したプログラム、すなわちコア排他制御を実行した演算部の実行履歴を記憶する領域である。このコア実行履歴は、セマフォ獲得処理を実行した履歴と言い換えることができる。また、コア実行履歴は、各コアがセマフォ獲得処理を実行したか否かを示すデータと言い換えることもできる。さらに、コア実行履歴は、各コア排他制御が第1コア10と第2コア20によって実行されたか否かを示す、各排他制御に対応した実行履歴を含んでいる。
コア実行履歴は、図6に示すように、第1コア10と第2コア20の夫々における実行履歴を含んでおり、0が実行履歴なしを示しており、1が実行履歴ありを示している。図6の例では、第1コア10が実行履歴ありで、第2コア20が実行履歴なしを示している。なお、コア実行履歴は、セマフォと1対1の関係にある。つまり、上記のように、複数のセマフォがある場合、コア実行履歴は、複数のセマフォの夫々に対応して設けられている。また、第2記憶部32は、複数のコア実行履歴を記憶していると言える。
複数のセマフォがある場合、複数の共有記憶部の夫々は、一つのセマフォが対応していることが必要である。言い換えると、複数の共有記憶部の夫々は、対応するセマフォを唯一持つようになっている。
例えば、図8は、セマフォが二つの場合の各共有記憶部とセマフォとの関係を示している。この場合、第1共有記憶部33は、セマフォXのみが対応している。第2共有記憶部41と第3共有記憶部の夫々は、セマフォYのみが対応している。よって、第1共有記憶部33にアクセスする際は、セマフォXで排他する。そして、第2共有記憶部41及び第3共有記憶部にアクセスする際は、セマフォYで排他する。
また、図9は、セマフォが三つの場合の各共有記憶部とセマフォとの関係を示している。この場合、第1共有記憶部33は、セマフォXのみが対応している。第2共有記憶部41は、セマフォYのみが対応している。第3共有記憶部は、セマフォZのみが対応している。よって、第1共有記憶部33にアクセスする際は、セマフォXで排他する。第2共有記憶部41にアクセスする際は、セマフォYで排他する。そして、第3共有記憶部にアクセスする際は、セマフォZで排他する。
しかしながら、車両用制御装置100は、図9に示すように、複数の共有記憶部の夫々に対して、異なるセマフォX,Y,Zを設ける場合、記憶部リソーセスの制約を満たすことが厳しくなる。また、車両用制御装置100は、図7に示すように、複数の共有記憶部に対して一つのセマフォXを設ける場合、競合確率が高くなる可能性がある。よって、車両用制御装置100は、図8に示すように、複数の共有記憶部と複数のセマフォを設けることが好ましい。この場合、車両用制御装置100は、リソーセスの制約を満たしつつ、競合確率を低減できる。
この実行履歴は、第2記憶部32として、不揮発性メモリに記憶されていると好ましい。つまり、第2記憶部32は、不揮発性メモリであると好ましい。これによって、車両用制御装置100は、車両のイグニッションスイッチがオフになって、自身に対する電源の供給が停止された場合であっても、実行履歴を記憶しておくことができる。
なお、第1記憶部31と第2記憶部32は、メモリ空間として、一連のアドレスで管理されていてもよい。ROMは、Read Only Memoryの略称である。RAMは、Random Access Memoryの略称である。
第1共有記憶部33は、例えばRAMを採用できる。第1共有記憶部33は、第1コア10と第2コア20が更新及び参照するデータを記憶するための領域である。第1共有記憶部33には、第1コア10と第2コア20が共にアクセスする共有データが含まれている。
入出力回路40は、車両用制御装置100とクランク角センサ210などのセンサ及びインジェクタ220などのアクチュエータとの間で信号のやり取りをするインターフェースである。また、入出力回路40は、第2共有記憶部41を備えて構成されている。第2共有記憶部41は、例えばレジスタを採用できる。第2共有記憶部41は、第1共有記憶部33と同様であるため、説明を省略する。
このように、本実施形態では、共有記憶部として、第1共有記憶部33と第2共有記憶部41とを採用している。しかしながら、本発明は、これに限定されず、少なくとも一つの共有記憶部を備えていれば目的を達成できる。
ここで、図2〜図5を用いて、車両用制御装置100の処理動作に関して説明する。車両用制御装置100の第1コア10及び第2コア20は、図2〜図5に示す処理を行う。
まず、図2を用いて、プラットフォームプログラム実行時の処理動作に関して説明する。特に、ここでは、コア排他制御を用いて、共有記憶部にアクセスする際の処理動作に関して説明する。
ステップS10では、セマフォ獲得処理を行う。第1コア10及び第2コア20は、コア排他制御を行う場合、すなわち共有記憶部にアクセスする場合、セマフォ獲得処理を行う。第1コア10及び第2コア20のうちコア排他制御を行う方は、セマフォ獲得処理を行う。例えば、第1コア10は、第1共有記憶部33にアクセスする場合、セマフォ獲得処理を行う。つまり、第1コア10は、最初に、セマフォ獲得処理を呼び出し、第1共有記憶部33に対するアクセスをロックする。この場合、第2コア20は、セマフォを獲得できていないので、第1共有記憶部33にアクセスできない。
ステップS12では、共有記憶部にアクセスする。第1コア10及び第2コア20のうちステップS10でセマフォを獲得した方は、共有記憶部にアクセスする。例えば、第1コア10は、セマフォを獲得した場合、第1共有記憶部33にアクセスして、第1共有記憶部33に記憶されたデータの更新や参照を行う。このとき、第2コア20は、セマフォを獲得できていないので、第1共有記憶部33にアクセスできない。
ステップS14では、セマフォ解放処理を行う。つまり、第1コア10及び第2コア20は、セマフォ解放処理を行う。第1コア10及び第2コア20のうちステップS10でセマフォを獲得した方は、獲得していたセマフォを解放する。例えば、第1コア10は、セマフォを獲得していた場合、第1共有記憶部33に記憶されたデータの更新や参照を行うと、セマフォを解放する。第2コア20は、第1コア10がセマフォを解放すると、セマフォを獲得可能となる。なお、セマフォの解放処理は、セマフォを獲得したコアしかできない。よって、第1コア10がセマフォを獲得した場合、セマフォの解放処理は、第1コア10のみが行うことができる。
ここで、共有記憶部に対して第1コア10と第2コア20のアクセスが競合する一例を説明する。
まず、一つ目の例は、第1共有記憶部33がRAMの場合である。第1コア10は、カウンタインクリメントして時間を計測する。また、第1コア10は、第1共有記憶部33にアクセスして、第1共有記憶部33に記憶されたカウント値をインクリメントすることで時間を計測するとも言える。一方、第2コア20は、ある条件が成立するとカウンタクリアして計測時間をクリアする。また、第2コア20は、ある条件が成立すると第1共有記憶部33にアクセスして、第1共有記憶部33に記憶されたカウント値をクリアすることで計測時間をクリアするとも言える。
この例の場合、競合が発生すると、第1コア10によるカウンタインクリメントの間に、第2コア20によるカウンタクリアが行われてしまう。つまり、第1共有記憶部33のカウント値は、第1コア10によってインクリメントしている間に、第2コア20によってクリアされてしまう。よって、第1コア10は、意図せず計測し続けてしまうという懸念がある。そのため、第1コア10及び第2コア20は、カウンタを操作する際、コア排他制御を行って第1共有記憶部33にアクセスする。
次の例は、第2共有記憶部41がレジスタの場合である。第1コア10及び第2コア20は、第2共有記憶部41の値を用いて、複数の端子における夫々の出力レベルを設定する。つまり、第1コア10及び第2コア20は、同一の第2共有記憶部41を操作して、複数端子の出力レベルを個別に設定する。また、ある端子の出力レベル変更時には、他の端子の出力レベルを変更しないように、現在の出力設定状態を読み出し、該当する端子のビットのみ変更して再度書き込む必要がある。この例の場合、競合が発生すると、第1コア10と第2コア20で第2共有記憶部41における別端子の出力レベルを変更することがおこり得る。そして、第1コア10による書き込みと第2コア20による書き込みとが干渉すると、あるコアで更新した出力レベルは、反映されない懸念がある。そのため、第1コア10及び第2コア20は、第2共有記憶部41を操作する際は、コア排他制御を行って第2共有記憶部41にアクセスする。
次に、図3を用いて、セマフォ獲得処理時の処理動作に関して説明する。以下においては、主に、第1コア10の処理動作を用いて説明する。当然ながら、第2コア20でも同様の処理動作を行う。
ステップS20では、セマフォ獲得処理を実行しているコアIDを取得する。第1コア10及び第2コア20は、セマフォ獲得処理を実行しているコアIDを取得する。例えば、第1コア10がセマフォ獲得処理を実行した場合、第1CPU11は、第1メモリ13から自身の第1コアIDを取得する。
ステップS22では、セマフォ獲得処理を実行したコアの履歴を更新する。第1コア10及び第2コア20は、図6に示すコア実行履歴を更新する。例えば、第1コア10は、図3のフローチャートで示すセマフォ獲得処理を実行した場合、自身の実行履歴を1とする。言い換えると、第1コア10及び第2コア20は、セマフォ獲得処理を実行した場合、コア実行履歴における自身に対応する値を、実行履歴ありを示す値にする。
つまり、第1記憶部31に記憶されているプログラムは、セマフォ獲得処理を実行したコアのコアIDを取得する手順(ステップS20)と、取得したコアIDに対応する実行履歴を更新する手順(ステップS22)を含んでいると言える。
このように、第1コア10と第2コア20は、自身がコア排他制御を実行した場合、実行したコア排他制御と、自身に割り振られたコアIDとを関連付けた情報を実行履歴として第2記憶部32に記憶することで、実行履歴を更新する(更新部)と言える。つまり、更新部は、コア排他制御を実行した演算部(第1コア10と第2コア20のいずれか)に対応するコア実行履歴を更新すると言える。
なお、車両用制御装置100は、第1コア10及び第2コア20の夫々が、セマフォ獲得処理を実行した場合、自身のコア実行履歴を更新できれば目的を達成できる。よって、本発明は、ステップS20を含まなくても目的を達成できる。つまり、第1記憶部31に記憶されているプログラムは、コア実行履歴を更新するためにコアIDを取得する手順を含むことなく、セマフォ獲得処理を実行したコアが、自身に対応するコア実行履歴を更新する手順を含んでいるものであってもよい。
ステップS24では、複数コアでの実行履歴があるかを判定する。つまり、第1コア10及び第2コア20は、コア実行履歴において、第1コア10及び第2コア20の両方で実行履歴ありを示す値であるか否かを判定する。そして、第1コア10及び第2コア20は、両コアでの実行履歴があると判定した場合はステップS26へ進み、両コアでの実行履歴があると判定しなかった場合は図3の処理を終了する。後程説明するが、第1コア10及び第2コア20は、ステップS26でスピンロック処理を行う。
例えば、第1コア10は、コア実行履歴における第1コア10に対応する値が1で、第2コア20に対応する値が1の場合、複数コアでの実行履歴があると判定し、すなわち、スピンロック処理が必要であるとみなして、ステップS26へ進む。また、第1コア10は、コア実行履歴における第1コア10に対応する値が1で、第2コア20に対応する値が0の場合、複数コアでの実行履歴があると判定せず、スピンロック処理が必要であるとみなして、図3の処理を終了する。つまり、第1コア10と第2コア20は、コア実行履歴における第1コア10に対応する値がと第2コア20に対応する値の少なくとも一方が0の場合、複数コアでの実行履歴があると判定せずに、図3の処理を終了する。
ステップS26では、スピンロック処理を実行する。スピンロック処理に関しては、図4のフローチャートを用いて説明する。
ステップS30では、セマフォを獲得する。詳述すると、第1コア10及び第2コア20は、複数コアでの実行履歴があると判定した場合、セマフォの獲得を試みる。例えば、第1コア10がステップS24でYES判定した場合、第1コア10は、セマフォを獲得しようとする。第1コア10は、例えば第1共有記憶部33へのアクセスが第2コア20と競合しないようにするために、セマフォを獲得しようとする。このとき、セマフォが解放中であった場合、第1コア10は、第2記憶部32にアクセスして、セマフォ解放中をセマフォ獲得中に書き換え、セマフォ獲得中であるコアのコアIDを、自身のコアIDに書き換える。一方、セマフォが獲得中であった場合、第1コア10は、その状態を継続する。つまり、第2記憶部32は、セマフォ獲得中の状態が維持され、且つ、セマフォ獲得中であるコアのコアIDが書き換えられることなく維持される。なお、セマフォ解放中をセマフォ獲得中に書き換えるとは、セマフォ情報を、セマフォ解放中を示す内容からセマフォ獲得中を示す内容に書き換えることである。
ステップS32では、セマフォ獲得が成功したか否かを判定する。例えば、第1コア10は、セマフォ獲得を試みた後における、第2記憶部32の記憶内容を確認し、セマフォ獲得中であるコアのコアIDが自身のものと一致するか否かによって、成功したか否かを判定する。そして、第1コア10は、コアIDが自身のものと一致すると判定した場合に成功したとみなして図4の処理を終了し、コアIDが自身のものと一致しないと判定した場合に失敗したとみなしてステップS30へ戻る。第1コア10は、一致するまで、ステップS30、S32を繰り返す。つまり、スピンロック処理を行うコアは、他コアがセマフォを獲得していないと判定した場合にセマフォ獲得に成功したとみなし、他コアがセマフォを獲得していると判定した場合にセマフォ獲得に失敗したとみなす、とも言える。ここで、セマフォ獲得は、セマフォ状態を確認してセマフォを書き換えるまで、アトミック(不可分)に行われ、一連の処理に他コアの処理が割り込めないようになっている。
このように、第1コア10と第2コア20は、ステップS24でYES判定の場合、すなわち、複数の排他制御のうち第1コア10及び第2コア20の両方で実行されたことを示す実行履歴が記憶されたコア排他制御に関してはコア排他制御を実行する。しかしながら、第1コア10と第2コア20は、ステップS24でNO判定の場合、すなわち複数のコア排他制御のうち第1コア10及び第2コア20の両方で実行されたことを示す実行履歴が記憶されていないコア排他制御に関してはコア排他制御を実行しない。
次に、図5を用いて、セマフォ解放処理時の処理動作に関して説明する。
ステップS40では、複数コアでの実行履歴があるかを判定する。つまり、第1コア10及び第2コア20は、ステップS22で更新したコア実行履歴において、第1コア10及び第2コア20の両方で実行履歴ありを示す値であるか否かを判定する。そして、第1コア10及び第2コア20は、両コアでの実行履歴があると判定した場合はステップS42へ進み、両コアでの実行履歴があると判定しなかった場合は図4の処理を終了する。例えば、第1コア10は、コア実行履歴における第1コア10に対応する値が1で、第2コア20に対応する値が1の場合、複数コアでの実行履歴があると判定して、ステップS42へ進む。そして、ステップS42では、セマフォを解放する。例えば、第1コア10は、第2記憶部32にアクセスして、セマフォ獲得中をセマフォ解放中に書き換える。つまり、第1コア10は、セマフォ情報を、セマフォ獲得中を示す内容からセマフォ解放中を示す内容に書き換える。このように、セマフォを獲得しているコアは、第2記憶部32の記憶内容を、セマフォ解放中を示す内容に書き換えることで、セマフォを解放する。
このように、車両用制御装置100は、各コア排他制御が第1コア10と第2コアによって実行されたか否かを示す実行履歴を記憶している第2記憶部32を有している。よって、車両用制御装置100は、複数のコア排他制御の夫々を実行したコアがわかるように構成されている。そして、第1コア10と第2コア20で実行されたコア排他制御は、第1コア10と第2コア20による共有記憶部への競合が発生する可能性がある。このため、第1コア10と第2コア20は、複数のコア排他制御のうち第1コア10と第2コア20とで実行されたことを示す実行履歴が記憶されたコア排他制御に関してはコア排他制御を実行する。一方、第1コア10と第2コア20で実行されていないコア排他制御は、第1コア10と第2コア20による共有記憶部への競合が発生する可能性がない。このため、第1コア10と第2コア20は、複数のコア排他制御のうち第1コア10と第2コア20の両方で実行されたことを示す実行履歴が記憶されていないコア排他制御に関してはコア排他制御を実行しない。
よって、車両用制御装置100は、第1コア10と第2コアによる共有記憶部への競合が発生する可能性がない場合にコア排他制御が実行されることを抑制できる。従って、車両用制御装置100は、必要以上にコア排他制御を行うことを抑制できる。
なお、これによって、車両用制御装置100は、コアによるロード増加の低減が期待できる。このため、車両用制御装置100は、コアによるロードリソーセス制約を守りやすくなる。
ところで、上記のように車両用制御装置100は、一例としてエンジン制御装置を採用できる。通常、エンジン制御装置は、厳しいリアルタイム時間が設けられて制御を行う。しかしながら、車両用制御装置100は、必要以上にコア排他制御を行うことを抑制できるため、厳しいリアルタイム時間であり、且つ、コア排他制御を実行するために割り込みを行ったとしても、割り込みによる遅延の低減が期待できる。
また、プラットフォームプログラムは、上記のように、共有記憶部へアクセスされる全ての処理に対応してコア排他制御が行われるように構成されている。しかしながら、車両用制御装置100は、複数のコア排他制御のうち第1コア10と第2コア20の両方で実行されたことを示す実行履歴が記憶されていないコア排他制御に関してはコア排他制御を実行しない。このため、車両用制御装置100は、フルでコア排他制御が行われるように構成されたプラットフォームプログラムであっても、第1コア10と第2コア20による共有記憶部への競合が発生する可能性がない場合、コア排他制御が実行されることを抑制できる。
以上、本発明の好ましい実施形態について説明した。しかしながら、本発明は、上記実施形態に何ら制限されることはなく、本発明の趣旨を逸脱しない範囲において、種々の変形が可能である。
(第2実施形態)
第2実施形態の車両用制御装置100aは、車両用制御装置100と同様の個所が多いため、車両用制御装置100と異なる点を主に説明する。車両用制御装置100aは、図10に示すように、第2記憶部32のかわりに排他制御部32aが設けられている点が、車両用制御装置100と異なる。さらに、車両用制御装置100aは、第1コア10及び第2コア20の処理内容が車両用制御装置100と異なる。
排他制御部32aは、上記のようなセマフォ情報とコア実行履歴を備えて構成されている。この排他制御部32aは、特許請求の範囲における記憶部に相当する。そして、排他制御部32aは、第1コア10と第2コア20のかわりに、コア実行履歴の管理を行う。つまり、排他制御部32aは、第1コア10が図3に示すセマフォ獲得処理を実行しようとした場合、ステップS22でコア実行履歴を更新する。
このように、排他制御部32aは、コア排他制御を実行したコアを判断する。そして、排他制御部32aは、実行されたコア排他制御と、このコア排他制御を実行したコアのコアIDとを関連付けた情報を実行履歴として記憶する。例えば、第1コア10があるコア排他制御を実行した場合、排他制御部32aは、実行されたコア排他制御と、第1コアIDとを関連付けた情報を実行履歴として記憶する。
また、排他制御部32aは、第1コア10と第2コア20のかわりに、セマフォ情報の書き換えを行ってもよい。この場合、排他制御部32aは、第1コア10が図4のスピンロック処理を実行する場合、セマフォ解放中をセマフォ獲得中に書き換え、セマフォ獲得中であるコアのコアIDを、第1コア10のコアIDに書き換える。しかしながら、排他制御部32aは、上記と同様に、ステップS30でセマフォが獲得中であった場合、セマフォ情報の書き換えは行なわない。そして、排他制御部32aは、第1コア10が図5のセマフォ解放処理を実行する場合、セマフォ獲得中をセマフォ解放中に書き換える。
車両用制御装置100aは、車両用制御装置100と同様の効果を奏することができる。
10…第1コア、11…第1CPU、12…第1レジスタ、13…第1メモリ、20…第2コア、21…第2CPU、22…第2レジスタ、23…第2メモリ、31…第1記憶部、32…第2記憶部、32a…排他制御部、33…第1共有記憶部、40…入出力回路、41…第2共有記憶部、100,100a…車両制御装置、210…クランク角センサ、220…インジェクタ

Claims (4)

  1. 車両に搭載されるものであり、複数の演算部(10、20)と、複数の演算部が共通にアクセスする共有記憶部(33、41)と、を備えた車両用制御装置であって、
    複数の前記演算部によって実行されるものであり、複数の前記演算部による前記共有記憶部への競合を抑制するための複数の排他制御を含むプログラム(31a、31b)と、
    各排他制御が各演算部によって実行されたか否かを示す、各排他制御に対応した複数の実行履歴を記憶している記憶部(32)と、
    各演算部は、前記排他制御を実行するものであり、複数の前記排他制御のうち複数の前記演算部で実行されたことを示す前記実行履歴が記憶された前記排他制御に関しては前記排他制御を実行し、複数の前記排他制御のうち複数の前記演算部で実行されたことを示す前記実行履歴が記憶されていない前記排他制御に関しては前記排他制御を実行せず、さらに、重複しない識別情報が割り振られており、自身が前記排他制御を実行した場合、実行した前記排他制御と、自身に割り振られた前記識別情報と、を関連付けた情報を前記実行履歴として前記記憶部に記憶することで、前記排他制御を実行した前記演算部に対応する前記実行履歴を更新する更新部を含む車両用制御装置。
  2. 車両に搭載されるものであり、複数の演算部(10、20)と、複数の演算部が共通にアクセスする共有記憶部(33、41)と、を備えた車両用制御装置であって、
    複数の前記演算部によって実行されるものであり、複数の前記演算部による前記共有記憶部への競合を抑制するための複数の排他制御を含むプログラム(31a、31b)と、
    各排他制御が各演算部によって実行されたか否かを示す、各排他制御に対応した複数の実行履歴を記憶している排他制御部(32a)と、
    各演算部は、重複しない識別情報が割り振られており、前記排他制御を実行するものであり、複数の前記排他制御のうち複数の前記演算部で実行されたことを示す前記実行履歴が記憶された前記排他制御に関しては前記排他制御を実行し、複数の前記排他制御のうち複数の前記演算部で実行されたことを示す前記実行履歴が記憶されていない前記排他制御に関しては前記排他制御を実行せず、
    前記排他制御部は、前記排他制御を実行した前記演算部を判断し、前記演算部で実行された前記排他制御と、前記排他制御を実行した前記演算部の前記識別情報とを関連付けた情報を前記実行履歴として記憶することで、前記排他制御を実行した前記演算部に対応する前記実行履歴を更新する車両用制御装置。
  3. 前記プログラムは、アプリケーションプログラムとプラットフォームプログラムとに分離されて構成されている請求項1又は2に記載の車両用制御装置。
  4. 前記実行履歴は、不揮発性メモリに記憶されている請求項1乃至のいずれか一項に記載の車両用制御装置。
JP2015240566A 2015-12-09 2015-12-09 車両用制御装置 Active JP6512087B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015240566A JP6512087B2 (ja) 2015-12-09 2015-12-09 車両用制御装置
DE102016224206.7A DE102016224206A1 (de) 2015-12-09 2016-12-06 Fahrzeugsteuervorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015240566A JP6512087B2 (ja) 2015-12-09 2015-12-09 車両用制御装置

Publications (2)

Publication Number Publication Date
JP2017107394A JP2017107394A (ja) 2017-06-15
JP6512087B2 true JP6512087B2 (ja) 2019-05-15

Family

ID=58773597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015240566A Active JP6512087B2 (ja) 2015-12-09 2015-12-09 車両用制御装置

Country Status (2)

Country Link
JP (1) JP6512087B2 (ja)
DE (1) DE102016224206A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101967442B1 (ko) * 2017-06-19 2019-04-09 현대오트론 주식회사 멀티 마스터 시스템, 전력 제어기, 및 그것의 동작 방법
US10994718B2 (en) 2018-06-27 2021-05-04 Hyundai Autron Co., Ltd. Multi-master system, power controller and operating method of the multi-master system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2742246B2 (ja) * 1995-05-23 1998-04-22 甲府日本電気株式会社 ロックリクエスト制御機構
JP2000003287A (ja) * 1998-06-12 2000-01-07 Nec Corp 共有リソースの排他制御装置、排他制御方法及び排他制御プログラムを記録した記録媒体
US7882339B2 (en) * 2005-06-23 2011-02-01 Intel Corporation Primitives to enhance thread-level speculation
JP5270268B2 (ja) * 2008-09-05 2013-08-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 共有データへの排他的アクセスを許すためのコンピュータ・システム、並びにその方法及びコンピュータ読み取り可能な記録媒体
JP5816572B2 (ja) * 2012-02-23 2015-11-18 日立オートモティブシステムズ株式会社 車両用制御装置

Also Published As

Publication number Publication date
DE102016224206A1 (de) 2017-06-14
JP2017107394A (ja) 2017-06-15

Similar Documents

Publication Publication Date Title
US9170844B2 (en) Prioritization for conflict arbitration in transactional memory management
US8234476B2 (en) Information processing apparatus and method of updating stack pointer
US10853071B2 (en) Simulation of exclusive instructions
CN105765541B (zh) 用于机动车的控制器
US20080127201A1 (en) Electronic unit for saving state of task to be run in stack
KR20170051465A (ko) 복수의 쓰레드를 실행하기 위한 데이터 처리장치에서의 공유 자원
CN103329102A (zh) 多处理器系统
JP6512087B2 (ja) 車両用制御装置
JP2015518605A (ja) 安全アプリケーションのための機能アーキテクチャパターン
JP5533789B2 (ja) 車載電子制御装置
JP5999216B2 (ja) データ処理装置
KR102235142B1 (ko) 시간 집약적 명령의 처리
JP6323235B2 (ja) 電子制御装置
JP6183251B2 (ja) 電子制御装置
JP5900168B2 (ja) 電子制御装置
JP3755415B2 (ja) 処理実行装置、当該処理実行装置に搭載される処理プログラム、及び記録媒体
JP2017204083A (ja) メモリ保護システム
US20100058008A1 (en) Data processing control unit, method for controlling data processing operations and data processing system
CN109358903B (zh) 数据访问设备和访问错误通知方法
JP2006079230A (ja) 半導体回路装置及び暴走検出方法
JP2002312334A (ja) マルチプロセッサシステム
CN108369558B (zh) 用于运行微控制器的方法
JP5942904B2 (ja) 処理装置
JP6252259B2 (ja) 電子制御装置
JP5703505B2 (ja) バスパーティション構造を備えるコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181225

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190325

R151 Written notification of patent or utility model registration

Ref document number: 6512087

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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