Twitter他の特許を見る10個以上の画像は省略されています。第1プロセッサ21aを備えた第1CPUコア11aと、第2プロセッサ22aを備えた第2CPUコア12aと、制御レジスタ50aとを備えている。制御レジスタ50aは、第1CPUコア11aの態様を割込み禁止状態と割込み許可状態とで切り換える第1コアIフラグ51aと、第2CPUコア12aの態様を割込み禁止状態と割込み許可状態とで切り換える第2コアIフラグ52aを含んでいる。第1CPUコア11aは、複数のIフラグ51a、52aの値を同時に操作することで、複数のCPUコア11a、12aの態様を同時に切り換える。一つの前記CPUコアは、複数の前記切換フラグの値を同時に操作することで、複数の前記CPUコアの態様を同時に切り換える電子装置。一つの前記CPUコアは、複数の前記切換フラグに前記省電力状態を示す値を同時に操作することで、複数の前記CPUコアの現在の状態にかからず、複数の前記CPUコアの態様を同時に前記省電力状態に切り換える請求項1乃至6のいずれか1項に記載の電子装置。本開示は、電子装置に関する。【0004】また、特許文献2のように、複数のCPUコアを備え、CPUコア毎に独立して、各CPUコアの態様の切り換えを制御する切換フラグを管理する電子装置が考えられる。この電子装置では、互いの切換フラグを直接操作できないため、共有データ記憶部やコア間割込みを通して、間接的に互いの切換フラグを操作する必要がある。この場合、電子装置は、CPUコア間でタイミング同期処理を行ない、CPUコア毎に順次切換フラグを設定することになる。【0005】このため、電子装置は、CPUコア毎に態様が切り換わるタイミングがずれてしまう。電子装置は、先に態様が切り換わったCPUコアが別の処理を受け付けてしまうスリットが発生するという問題がある。本開示は、上記問題点に鑑みなされたものであり、CPUコアの態様が切り換わるタイミングがずれることを抑制できる電子装置を提供することを目的とする。一つのCPUコアは、複数の切換フラグの値を同時に操作することで、複数のCPUコアの態様を同時に切り換えることを特徴とする。【0008】このように、本開示は、一つのCPUコアが、複数の切換フラグの値を同時に操作することで、複数のCPUコアの態様を同時に切り換えるため、CPUコアの態様が切り換わるタイミングがずれることを抑制できる。よって、本開示は、切り換わるタイミングが遅れたCPUコアが別の処理を受け付けてしまい、意図しない動作となることを抑制できる。【0009】なお、特許請求の範囲、及びこの項に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。第1実施形態における電子装置の概略構成を示すブロック図である。第1実施形態における電子装置の処理動作を示すフローチャートである。第1実施形態における電子装置の処理動作を示すタイミングチャートである。第2実施形態における電子装置の概略構成を示すブロック図である。第3実施形態における電子装置の概略構成を示すブロック図である。第4実施形態における電子装置の概略構成を示すブロック図である。第5実施形態における電子装置の概略構成を示すブロック図である。第6実施形態における電子装置の概略構成を示すブロック図である。第6実施形態における電子装置の処理動作を示すフローチャートである。以下において、図面を参照しながら、本開示を実施するための複数の形態を説明する。各形態において、先行する形態で説明した事項に対応する部分には同一の参照符号を付して重複する説明を省略する場合がある。各形態において、構成の一部のみを説明している場合は、構成の他の部分については先行して説明した他の形態を参照し適用することができる。【0012】(第1実施形態)図1〜図3を用いて、本実施形態の電子装置に関して説明する。電子装置は、主に、複数のCPUコア11a、12aと、制御レジスタ50aを備えている。電子装置は、共有データ記憶部30、クロック供給部40などを備えていてもよい。【0013】なお、電子装置は、複数のCPUコア11a、12aと、制御レジスタ50aを備えたマイクロコンピュータとも言える。電子装置は、例えば、車両に搭載され、車載機器を制御する車載制御装置に適用することができる。本実施形態では、一例として、第1CPUコア11aと第2CPUコア12aの二つのCPUコアを備えた電子装置を採用している。本開示は、これに限定されず、三つ以上のCPUコアを備えていてもよい。以下においては、第1CPUコアを第1コアと略称で記載し、第2CPUコアを第2コアと略称で記載する。第1コア11aは、第1プロセッサ21aを備えており、共有データ記憶部30、クロック供給部40、及び制御レジスタ50aと接続されている。第2コア12aは、第2プロセッサ22aを備えており、共有データ記憶部30、クロック供給部40、及び制御レジスタ50aと接続されている。各コア11a、12aは、クロック供給部40から供給されるクロックに同期して動作する。本実施形態では、同じクロック供給部40からクロックが供給される各コア11a、12aを採用している。【0017】また、各プロセッサ21a、22aは、記憶装置に記憶されたプログラムを個別に実行することで、各種演算処理を実行する。第1プロセッサ21aは、記憶装置に記憶された、第1プロセッサ21a用のプログラムを実行することで、各種演算処理を実行する。同様に、第2プロセッサ22aは、記憶装置に記憶された、第2プロセッサ22a用のプログラムを実行することで、各種演算処理を実行する。各プロセッサ21a、22aは、各種演算処理を実行することで、通常処理、割込み処理、異常処理などを実行する。【0018】また、各コア11a、12aは、各プロセッサ21a、22aがプログラムを実行することで、態様を切り換える。態様の切り換えは、各コア11a、12aの状態や、各プロセッサ21a、22aの処理の切り換えを示している。本開示は、これに限定されず、上記以外の態様であっても採用できる。本実施形態では、各コア11a、12aがとりうる態様の一例として、割込み禁止状態と割込み許可状態とを採用する。よって、各コア11a、12aは、各プロセッサ21a、22aがプログラムを実行することで、割込み禁止状態と割込み許可状態とで態様を切り換えることができる。【0020】また、各コア11a、12aは、後程説明する第1コアIフラグ51aと第2コアIフラグ52aの値に応じて態様を切り換えることができる。第1コア11aは、第1コアIフラグ51aの値に応じて態様を切り換えることができる。同様に、第2コア12aは、第2コアIフラグ52aの値に応じて態様を切り換えることができる。詳述すると、第1プロセッサ21aは、第1コアIフラグ51aの値に応じて、第1コア11aの態様を切り換えることができる。同様に、第2プロセッサ21aは、第2コアIフラグ52aの値に応じて、第2コア12aの態様を切り換えることができる。制御レジスタ50aは、各コア11a、12aに対応して個別に設けられた各コア11a、12aの態様の切り換えを制御する複数の切換フラグ51a、52aを備えている。制御レジスタ50aは、一例として、各コア11a、12aに対応して、各コア11a、12aの態様を割込み禁止状態と割込み許可状態とで切り換える割込み禁止フラグである第1コアIフラグ51aと第2コアIフラグ52aの二つの切換フラグを含んでいる。第1コアIフラグ51aは、第1コア11aに対応して設けられている。第2コアIフラグ52aは、第2コア12aに対応して設けられている。言い換えると、第1コアIフラグ51aは、第1プロセッサ21aに対応して設けられている。第2コアIフラグ52aは、第2プロセッサ22aに対応して設けられている。以下においては、第1コアIフラグを第1Iフラグと略称で記載し、第2コアIフラグを第2Iフラグと略称で記載する。第1プロセッサ21aは、第1Iフラグ51aをセットすることで割込み禁止状態を示す値を設定し、第1Iフラグ51aをクリアすることで割込み許可状態を示す値を設定すると言える。第1プロセッサ21aは、第2Iフラグ52aに関しても同様に設定することができる。第1Iフラグ51aは、第1コア11aの第1プロセッサ21aから参照可能であり、且つ、第1プロセッサ21aから操作可能に構成されている。第2Iフラグ52aは、第2コア12aの第2プロセッサ22aから参照可能であり、且つ、第1コア11aの第1プロセッサ21aから操作可能に構成されている。第1プロセッサ21aは、第1Iフラグ51aだけでなく、第2Iフラグ52aに関しても操作可能に構成されている。よって、第1プロセッサ21aは、第1Iフラグ51aと第2Iフラグ52aとを同時に操作することができる。同時とは、同じクロックサイクルや、同じクロックエッジを示している。【0025】このため、第1プロセッサ21aは、第1Iフラグ51aと第2Iフラグ52aの値を同時に変更することができる。詳述すると、第1プロセッサ21aは、第1Iフラグ51aと第2Iフラグ52aに対して、同時に割込み禁止状態を示す値を設定したり、同時に割込み許可状態を示す値を設定したりすることができる。言い換えると、第1プロセッサ21aは、第1Iフラグ51aと第2Iフラグ52aを同時に割込み許可状態を示す値から割込み禁止状態を示す値に切り換えたり、同時に割込み禁止状態を示す値から割込み許可状態を示す値に切り換えたりすることができる。Iフラグ51a、52aの値は、1ビット、もしくは数ビットなどを採用できる。電子装置は、例えば、第1プロセッサ21aが同一命令で操作可能なメモリ空間(例えば、同一word内)に、全Iフラグ51a、52aが配置されている。このため、電子装置は、第1プロセッサ21aが第1Iフラグ51aだけでなく、第2Iフラグ52aに関しても操作することができる。【0027】このように、電子装置は、第1Iフラグ51aと第2Iフラグ52aの値を同時に変更することができるため、第1コア11aと第2コア12aの態様を同時に切り換えることができる。言い換えると、電子装置は、同じクロックエッジに同期して、第1コア11aと第2コア12aの態様を変えることができる。【0028】なお、制御レジスタ50aは、各コア11a、12aの外部に設けられている。よって、電子装置は、第1Iフラグ51aの値を変更してから第1コア11aに作用(伝搬)するまでに、回路的な遅延が発生する可能性がある。同様に、第2Iフラグ52aの値を変更してから第2コア12aに作用するまでに、回路的な遅延が発生する可能性がある。第1コア11aと第2コア12aとで、伝達遅延に時間差がついてしまう可能性がある。この回路的な遅延は、例えば、メモリバスやキャッシュを経由することによって発生する。【0029】このため、電子装置は、第1Iフラグ51aの変化が第1プロセッサ21aに伝搬する時間と、第2Iフラグ52aの変化が第2プロセッサ22aに伝搬する時間とのずれにかかわらず、全コア11a、12aの態様を同時に切り換える構成を備えていてもよい。電子装置は、伝搬に要する時間にずれが生じる場合であっても、第1Iフラグ51aの値が第1プロセッサ21aに作用するのと同時に、第2Iフラグ52aの値が第2プロセッサ22aに作用するように構成されていてもよい。この伝搬時間を考慮した同期方法に関しては、後程説明する。【0030】なお、電子装置は、伝搬に要する時間を考慮する必要がない程度短い場合、第1Iフラグ51aと第2Iフラグ52aの値を同時に変更することで、第1コア11aと第2コア12aの態様を同時に切り換えることができる。よって、本開示は、伝搬時間を考慮した同期方法を採用しなくてもよい。伝搬する時間は、各Iフラグ51a、52aの変化から、各コア11a、12aに伝搬するまでの遅延と言い換えることができる。本実施形態では、第1Iフラグ51aと第2Iフラグ52aを第1プロセッサ21aが直接的に操作できる例を採用している。本開示は、これに限定されず、第1Iフラグ51aと第2Iフラグ52aを第1プロセッサ21aが間接的に操作できるものであっても採用できる。本開示は、第1プロセッサ21aのかわりに第2プロセッサ22aが第1Iフラグ51aと第2Iフラグ52aを操作可能に構成されていてもよい。共有データ記憶部30は、各コア11a、12aで共有するデータが書き込まれる。共有データ記憶部30は、例えば、第1コア11aからCP2が書き込まれ、第2コア12aからCP1が書き込まれる。これは、第1コア11aと第2コア12aとでタイミングを同期させるためである。Pointの略称である。Point)を通過したことを示すデータである。CP1やCP2は、共有データ記憶部30に書き込まれる、待ち合わせコードとしてのデータとも言える。各コア11a、12aは、ある処理部位を通過したことを他コアに知らせるために、共有データ記憶部30にCP1やCP2を書き込む。本実施形態では、図2に示すように、第1コア11aは、CP1が書き込まれるのを待つとともに、CP2を書き込む。第2コア12aは、CP2が書き込まれるのを待つとともに、CP1を書き込む。【0035】ここで、図2、図3を用いて、電子装置の処理動作に関して説明する。ここでは、一例として、電子装置を動作状態から、省電力状態に切り替える処理を採用する。この場合、電子装置は、各コア11a、12aが割込み許可状態である通常処理が完了したら、割込み受付不可のスリープ処理に入る前に、全コア11a、12aを割込み禁止状態にする必要がある。【0036】ステップS10、S20では、各プロセッサ21a、22aは通常処理を行う。このとき、各コア11a、12aは、割込み許可状態である。各コア11a、12aは、割込み受付可能である。【0037】ステップS11、S21では、各プロセッサ21a、22aはタイミング同期処理を行う。このとき、各プロセッサ21a、22aは、共有データ記憶部30を介してハンドシェイクする。ステップS22では、第2プロセッサ22aは、共有データ記憶部30にCP1を書き込む。ステップS12では、第1プロセッサ21aは、CP1になるまで、すなわち、第2プロセッサ22aがCP1を書き込むまで共有データ記憶部30をポーリングする。【0038】ステップS23では、第2プロセッサ22aは、CP2になるまで、すなわち、第1プロセッサ21aがCP2を書き込むまで共有データ記憶部30をポーリングする(図3のタイミングt1〜t5)。第2プロセッサ22aは、第1プロセッサ21aがCP2を書き込むまで待ち状態となる。ステップS13では、第1プロセッサ21aは、CP1が書き込まれると、両コア11a、12aのIフラグを操作する。第1プロセッサ21aは、タイミングt1に示すように、第1Iフラグ51aと第2Iフラグ52aに対して、割込み禁止状態を示す値を同時に設定する。電子装置は、第2コア12aが待ち状態中に、第1コア11aから両コア11a、12aのIフラグを同時にマスク操作すると言える。【0040】そして、第1プロセッサ21aは、割込み禁止状態を示す値を同時に設定した後に、ステップS14にて共有データ記憶部30にCP2を書き込む。このとき、第1プロセッサ21aは、タイミングt2〜t3まで伝搬待ちをして、タイミングt3でCP2を書き込む。よって、両コア11a、12aは、タイミングt3で同時に割込み禁止状態となっている。第2プロセッサ22aは、CP2が書き込まれると、共有データ記憶部30のポーリングを終了する。【0041】このように、ここでは、伝搬時間を考慮した同期方法の一例として、伝搬待ちをしてからCP2を書き込む例を採用している。電子装置は、第1Iフラグ51aの変化が第1プロセッサ21aに伝搬するまでの遅延と、第2Iフラグ52aの変化が第2プロセッサ22aに伝搬するまでの遅延とを、第1コア11aと第2コア12aとで揃えることでタイミングを同期させている。【0042】ステップS15、S24では、各プロセッサ21a、22aはスリープ処理を行う。第1プロセッサ21aは、タイミングt4でスリープ処理を行う。第2プロセッサ22aは、タイミングt5でスリープ処理を行う。上記のように、各コア11a、12aは、タイミングt3で割込み禁止状態となっている。このため、電子装置は、各コア11a、12aがスリープ処理を行なう前に、割込み禁止状態とすることができる。よって、電子装置は、各コア11a、12aがスリープ処理を行なっている際に、割込み受付不可とすることができる。【0043】このように、電子装置は、一つのCPUコアである第1コア11aが、複数のIフラグの値を同時に操作することで、複数のコア11a、12aの態様を同時に切り換えるため、各コア11a、12aの態様が切り換わるタイミングがずれることを抑制できる。よって、電子装置は、切り換わるタイミングが遅れたCPUコアが別の処理を受け付けてしまい、意図しない動作となることを抑制できる。電子装置は、コア11a、12a間のフラグ変化のスリットをなくせると言える。【0044】ここで、比較例の電子装置(以下、単に比較例)と対比して、本実施形態の電子装置の効果を説明する。比較例は、CPUコア毎に独立してIフラグを管理する。比較例は、各CPUコアにIフラグが設けられている。この場合、各CPUコアのIフラグは、互いに直接操作できない。このため、共有データ記憶部やコア間割込みを通して、間接的に操作するしかない。従って、比較例は、動作状態から省電力状態に切り替える場合、各CPUコアでハンドシェイクしながら、順次、コア毎にIフラグを操作する。比較例は、通常処理が終了すると、一回目のタイミング同期処理を行なってから第1コアのIフラグを操作する。次に、比較例は、二回目のタイミング同期処理を行なってから第2コアのIフラグを操作する。ここでのタイミング同期処理は、第1コアがCP1になるまで共有データ記憶部をポーリングし第2コアがCP1を書き込み、その後、第2コアがCP2になるまで共有データ記憶部をポーリングし第1コアがCP2を書き込む。【0046】そして、比較例は、各Iフラグが操作されると、三回目のタイミグ同期処理を行なってからスリープ処理を行う。【0047】このように、比較例は、第1コアにおけるIフラグの操作から、第2コアにおけるIフラグの操作までに時間差が生じる。この時間差は、第2コアが別の処理(割込み)を受け付けてしまうスリットになってしまう。比較例では、スリットの間に第2コアが割込みを受けてしまうと、デッドロックが発生してしまう可能性がある。比較例では、スリットの間に第2コアが割込みを受けてしまうと、第1コアも含めて一旦通常処理に戻って通常処理完了後、タイミング同期処理をやり直さないといけない可能性がある。これにより、処理が複雑化し、開発工数増や性能低下につながる可能性がある。比較例では、スリットが発生するため、スリット検証の工数も多くなる可能性がある。このスリット検証では、スリットでどのような処理を実行する可能性があるのか、それぞれの処理によって問題を生じないかを検証する。【0048】これに対して、電子装置は、上記のように、一回のタイミング同期処理で、複数のIフラグの値を同時に操作することができる。このため、電子装置は、スリットが発生することが防止でき、切り換わるタイミングが遅れたCPUコアが別の処理を受け付けてしまい、意図しない動作となることを抑制できる。従って、電子装置は、デッドロックが発生することや割り込み処理を受け付けてしまった場合の処理複雑化を抑制できる。電子装置は、スリットの発生を防止できるため、スリット検証の工数を減らす、あるいは、なくすことができる。【0049】さらに、電子装置は、比較例よりもコア11a、12a間のハンドシェイク処理を減らすことができ、比較例よりも早くスリープ処理を実行でき省電力状態に移行することができる。電子装置は、比較例よりもコア11a、12a間のハンドシェイク処理を減らすことができるため、処理性能の低下を抑制できるとともに、消費電力を低減することができる。電子装置は、車載制御装置に適用した場合、車載バッテリによって動作することになる。この場合、電子装置は、消費電力を低減することで、車載バッテリの電力消費を少なくすることができるため好適である。chizai-watch.com当サービスで使用している一部の画像の著作権は各々の作者に帰属します。