以下において、図面を参照しながら、本開示を実施するための複数の形態を説明する。各形態において、先行する形態で説明した事項に対応する部分には同一の参照符号を付して重複する説明を省略する場合がある。各形態において、構成の一部のみを説明している場合は、構成の他の部分については先行して説明した他の形態を参照し適用することができる。
(第1実施形態)
図1~図3を用いて、本実施形態の電子装置に関して説明する。電子装置は、主に、複数のCPUコア11a、12aと、制御レジスタ50aを備えている。さらに、電子装置は、共有データ記憶部30、クロック供給部40などを備えていてもよい。
なお、電子装置は、複数のCPUコア11a、12aと、制御レジスタ50aを備えたマイクロコンピュータとも言える。電子装置は、例えば、車両に搭載され、車載機器を制御する車載制御装置に適用することができる。この場合、電子装置は、電子制御装置(Electronic Control Unit)と言える。
本実施形態では、一例として、第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を採用している。
また、各プロセッサ21a、22aは、記憶装置に記憶されたプログラムを個別に実行することで、各種演算処理を実行する。例えば、第1プロセッサ21aは、記憶装置に記憶された、第1プロセッサ21a用のプログラムを実行することで、各種演算処理を実行する。同様に、第2プロセッサ22aは、記憶装置に記憶された、第2プロセッサ22a用のプログラムを実行することで、各種演算処理を実行する。また、各プロセッサ21a、22aは、各種演算処理を実行することで、通常処理、割込み処理、異常処理などを実行する。
また、各コア11a、12aは、各プロセッサ21a、22aがプログラムを実行することで、態様を切り換える。各コア11a、12aがとりうる態様は、例えば、割込み禁止状態、割込み許可状態、省電力状態(HALT)、非省電力状態、異常処理状態、非異常処理状態などである。なお、態様の切り換えは、各コア11a、12aの状態や、各プロセッサ21a、22aの処理の切り換えを示している。しかしながら、本開示は、これに限定されず、上記以外の態様であっても採用できる。
本実施形態では、各コア11a、12aがとりうる態様の一例として、割込み禁止状態と割込み許可状態とを採用する。よって、各コア11a、12aは、各プロセッサ21a、22aがプログラムを実行することで、割込み禁止状態と割込み許可状態とで態様を切り換えることができる。
また、各コア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とを同時に操作することができる。なお、同時とは、同じクロックサイクルや、同じクロックエッジを示している。
このため、第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に関しても操作することができる。
このように、電子装置は、第1Iフラグ51aと第2Iフラグ52aの値を同時に変更することができるため、第1コア11aと第2コア12aの態様を同時に切り換えることができる。言い換えると、電子装置は、同じクロックエッジに同期して、第1コア11aと第2コア12aの態様を変えることができる。
なお、制御レジスタ50aは、各コア11a、12aの外部に設けられている。よって、電子装置は、第1Iフラグ51aの値を変更してから第1コア11aに作用(伝搬)するまでに、回路的な遅延が発生する可能性がある。同様に、第2Iフラグ52aの値を変更してから第2コア12aに作用するまでに、回路的な遅延が発生する可能性がある。また、第1コア11aと第2コア12aとで、伝達遅延に時間差がついてしまう可能性がある。この回路的な遅延は、例えば、メモリバスやキャッシュを経由することによって発生する。
このため、電子装置は、第1Iフラグ51aの変化が第1プロセッサ21aに伝搬する時間と、第2Iフラグ52aの変化が第2プロセッサ22aに伝搬する時間とのずれにかかわらず、全コア11a、12aの態様を同時に切り換える構成を備えていてもよい。つまり、電子装置は、伝搬に要する時間にずれが生じる場合であっても、第1Iフラグ51aの値が第1プロセッサ21aに作用するのと同時に、第2Iフラグ52aの値が第2プロセッサ22aに作用するように構成されていてもよい。この伝搬時間を考慮した同期方法に関しては、後程説明する。
なお、電子装置は、伝搬に要する時間を考慮する必要がない程度短い場合、第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とでタイミングを同期させるためである。
なお、CPは、Check Pointの略称である。そして、CP1やCP2は、ソフト処理の中のある処理部位(Check Point)を通過したことを示すデータである。また、CP1やCP2は、共有データ記憶部30に書き込まれる、待ち合わせコードとしてのデータとも言える。
各コア11a、12aは、ある処理部位を通過したことを他コアに知らせるために、共有データ記憶部30にCP1やCP2を書き込む。本実施形態では、図2に示すように、第1コア11aは、CP1が書き込まれるのを待つとともに、CP2を書き込む。一方、第2コア12aは、CP2が書き込まれるのを待つとともに、CP1を書き込む。
ここで、図2、図3を用いて、電子装置の処理動作に関して説明する。ここでは、一例として、電子装置を動作状態から、省電力状態に切り替える処理を採用する。この場合、電子装置は、各コア11a、12aが割込み許可状態である通常処理が完了したら、割込み受付不可のスリープ処理に入る前に、全コア11a、12aを割込み禁止状態にする必要がある。
ステップS10、S20では、各プロセッサ21a、22aは通常処理を行う。このとき、各コア11a、12aは、割込み許可状態である。すなわち、各コア11a、12aは、割込み受付可能である。
ステップS11、S21では、各プロセッサ21a、22aはタイミング同期処理を行う。このとき、各プロセッサ21a、22aは、共有データ記憶部30を介してハンドシェイクする。ステップS22では、第2プロセッサ22aは、共有データ記憶部30にCP1を書き込む。一方、ステップS12では、第1プロセッサ21aは、CP1になるまで、すなわち、第2プロセッサ22aがCP1を書き込むまで共有データ記憶部30をポーリングする。
ステップ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フラグを同時にマスク操作すると言える。
そして、第1プロセッサ21aは、割込み禁止状態を示す値を同時に設定した後に、ステップS14にて共有データ記憶部30にCP2を書き込む。このとき、第1プロセッサ21aは、タイミングt2~t3まで伝搬待ちをして、タイミングt3でCP2を書き込む。よって、両コア11a、12aは、タイミングt3で同時に割込み禁止状態となっている。なお、第2プロセッサ22aは、CP2が書き込まれると、共有データ記憶部30のポーリングを終了する。
このように、ここでは、伝搬時間を考慮した同期方法の一例として、伝搬待ちをしてからCP2を書き込む例を採用している。つまり、電子装置は、第1Iフラグ51aの変化が第1プロセッサ21aに伝搬するまでの遅延と、第2Iフラグ52aの変化が第2プロセッサ22aに伝搬するまでの遅延とを、第1コア11aと第2コア12aとで揃えることでタイミングを同期させている。
ステップS15、S24では、各プロセッサ21a、22aはスリープ処理を行う。例えば、第1プロセッサ21aは、タイミングt4でスリープ処理を行う。一方、第2プロセッサ22aは、タイミングt5でスリープ処理を行う。上記のように、各コア11a、12aは、タイミングt3で割込み禁止状態となっている。このため、電子装置は、各コア11a、12aがスリープ処理を行なう前に、割込み禁止状態とすることができる。よって、電子装置は、各コア11a、12aがスリープ処理を行なっている際に、割込み受付不可とすることができる。
このように、電子装置は、一つのCPUコアである第1コア11aが、複数のIフラグの値を同時に操作することで、複数のコア11a、12aの態様を同時に切り換えるため、各コア11a、12aの態様が切り換わるタイミングがずれることを抑制できる。よって、電子装置は、切り換わるタイミングが遅れたCPUコアが別の処理を受け付けてしまい、意図しない動作となることを抑制できる。つまり、電子装置は、コア11a、12a間のフラグ変化のスリットをなくせると言える。
ここで、比較例の電子装置(以下、単に比較例)と対比して、本実施形態の電子装置の効果を説明する。比較例は、CPUコア毎に独立してIフラグを管理する。つまり、比較例は、各CPUコアにIフラグが設けられている。この場合、各CPUコアのIフラグは、互いに直接操作できない。このため、共有データ記憶部やコア間割込みを通して、間接的に操作するしかない。
従って、比較例は、動作状態から省電力状態に切り替える場合、各CPUコアでハンドシェイクしながら、順次、コア毎にIフラグを操作する。例えば、比較例は、通常処理が終了すると、一回目のタイミング同期処理を行なってから第1コアのIフラグを操作する。次に、比較例は、二回目のタイミング同期処理を行なってから第2コアのIフラグを操作する。なお、ここでのタイミング同期処理は、第1コアがCP1になるまで共有データ記憶部をポーリングし第2コアがCP1を書き込み、その後、第2コアがCP2になるまで共有データ記憶部をポーリングし第1コアがCP2を書き込む。
そして、比較例は、各Iフラグが操作されると、三回目のタイミグ同期処理を行なってからスリープ処理を行う。
このように、比較例は、第1コアにおけるIフラグの操作から、第2コアにおけるIフラグの操作までに時間差が生じる。この時間差は、第2コアが別の処理(割込み)を受け付けてしまうスリットになってしまう。また、比較例では、スリットの間に第2コアが割込みを受けてしまうと、デッドロックが発生してしまう可能性がある。さらに、比較例では、スリットの間に第2コアが割込みを受けてしまうと、第1コアも含めて一旦通常処理に戻って通常処理完了後、タイミング同期処理をやり直さないといけない可能性がある。これにより、処理が複雑化し、開発工数増や性能低下につながる可能性がある。なお、比較例では、スリットが発生するため、スリット検証の工数も多くなる可能性がある。このスリット検証では、スリットでどのような処理を実行する可能性があるのか、それぞれの処理によって問題を生じないかを検証する。
これに対して、電子装置は、上記のように、一回のタイミング同期処理で、複数のIフラグの値を同時に操作することができる。このため、電子装置は、スリットが発生することが防止でき、切り換わるタイミングが遅れたCPUコアが別の処理を受け付けてしまい、意図しない動作となることを抑制できる。従って、電子装置は、デッドロックが発生することや割り込み処理を受け付けてしまった場合の処理複雑化を抑制できる。また、電子装置は、スリットの発生を防止できるため、スリット検証の工数を減らす、あるいは、なくすことができる。
さらに、電子装置は、比較例よりもコア11a、12a間のハンドシェイク処理を減らすことができ、比較例よりも早くスリープ処理を実行でき省電力状態に移行することができる。また、電子装置は、比較例よりもコア11a、12a間のハンドシェイク処理を減らすことができるため、処理性能の低下を抑制できるとともに、消費電力を低減することができる。
電子装置は、車載制御装置に適用した場合、車載バッテリによって動作することになる。この場合、電子装置は、消費電力を低減することで、車載バッテリの電力消費を少なくすることができるため好適である。
なお、電子装置は、一つのCPUコアが、複数の切換フラグの値を同時に操作することで、複数のCPUコアの態様を同時に切り換えるものであれば採用できる。電子装置は、このようにすることで、CPUコアの態様が切り換わるタイミングがずれることを抑制できる。よって、電子装置は、切り換わるタイミングが遅れたCPUコアが別の処理を受け付けてしまい、意図しない動作となることを抑制できる。
本実施形態では、切換フラグとして、割込み禁止状態と割込み許可状態とを切り換えるためのIフラグ51a、52aを含んだ制御レジスタ50aを採用した。しかしながら、本開示は、これに限定されない。この点は、他の実施形態でも同様である。
制御レジスタ50aは、各コア11a、12aの外部に設けられており、各コア11a、12aの態様として省電力状態と非省電力状態の切り換えを制御する切換フラグを含んでいてもよい。この場合、一つの第1コア11aは、各切換フラグ51a、52aに省電力状態を示す値を同時に操作することで、各コア11a、12aの現在の状態にかかわらず、全コア11a、12aの態様を同時に省電力状態に切り換える。
比較例では、一旦省電力状態に入ってしまうと、コア間ハンドシェイクでは動作状態に戻すためのトリガを入れられないケースがある。例えば、異常動作によって、Iフラグで全割込みマスク、あるいはコア間割り込みマスクの状態に入ってしまう場合。また、例えば、省電力状態にしたいだけなのに、ハンドシェイクのために、一旦省電力状態から復帰させて処理する必要があり、電流が増加する。
本実施形態の電子装置は、各コア11a、12aの外部に制御レジスタ50aが設けられている。つまり、電子装置は、各コア11a、12aの外部から直接省電力状態を制御する機構である。このため、電子装置は、相手コアの現在の状態に関わらず、電子装置全体の省電力状態を同じタイミングで切り換えることができる。
さらに、切換フラグとしては、異常処理状態と非異常処理状態の切り換えを制御する切換フラグや、割込み優先レベルのマスクレベルの切り換えを制御する切換フラグなどを採用できる。この点は、他の実施形態でも同様である。なお、異常処理状態と非異常処理状態の切り換えを制御する切換フラグは、異常処理開始フラグと言い換えることもできる。
以上、本開示の好ましい実施形態について説明した。しかしながら、本開示は、上記実施形態に何ら制限されることはなく、本開示の趣旨を逸脱しない範囲において、種々の変形が可能である。以下に、本開示のその他の形態として、第2~第6実施形態に関して説明する。上記実施形態及び第2~第6実施形態は、それぞれ単独で実施することも可能であるが、適宜組み合わせて実施することも可能である。本開示は、実施形態において示された組み合わせに限定されることなく、種々の組み合わせによって実施可能である。
(第2実施形態)
図4を用いて、第2実施形態の電子装置に関して説明する。本実施形態では、主に、上記実施形態と異なる点に関して説明する。本実施形態は、各コア11b、12bが高速レジスタ61、62と、OR回路71、72を備えている点が上記実施形態と異なる。本実施形態では、上記実施形態と同様の箇所に同じ符号を付与する。本実施形態で特に断りのない箇所に関しては、上記実施形態を適用することができる。
本実施形態の電子装置は、主に、複数のCPUコア11b、12bと、制御レジスタ50bを備えている。さらに、電子装置は、共有データ記憶部30、クロック供給部40などを備えていてもよい。
なお、制御レジスタ50bは、制御レジスタ50aと異なる符号を付与しているものの、制御レジスタ50aと同様の構成を有している。第1コアIフラグ51b及び第2コアIフラグ52bに関しても、第1コアIフラグ51a及び第2コアIフラグ52aと同様である。
第1CPUコア11bは、第1プロセッサ21bに加えて、第1高速レジスタ61、第1OR回路71などを備えている。第1高速レジスタ61は、切換フラグとしての第1Iフラグ61aを含んでいる。第1Iフラグ61aは、制御レジスタ50bの第1Iフラグ51bと同様、第1コア11bの態様の切り換えを制御するものである。第1Iフラグ61a、51bは、ともに第1プロセッサ21bによって操作される。
第2CPUコア12bは、第2プロセッサ22bに加えて、第2高速レジスタ62、第2OR回路72などを備えている。第2高速レジスタ62は、切換フラグとしての第2コアIフラグ62aを含んでいる。第2Iフラグ62aは、制御レジスタ50bの第2Iフラグ52bと同様、第2コア12bの態様の切り換えを制御するものである。第2Iフラグ62a、52bは、ともに第2プロセッサ22bによって操作される。
第1高速レジスタ61は、第1コア11b内に設けられている。このため、第1プロセッサ21bは、第1コア11bの外部に設けられた制御レジスタ50bの第1Iフラグ51bよりも高速に第1Iフラグ61aを操作することができる。
さらに、第1Iフラグ61aは、第1コア11b内に設けられた第1高速レジスタ61に含まれているため、第1コア11bの外部に設けられた制御レジスタ50bの第1Iフラグ51bよりも高速に第1コア11bの態様を切り換えることができる。つまり、第1Iフラグ61aは、第1フラグ51bよりも早く、第1プロセッサ21bに値の変化を作用させることができる。また、第1Iフラグ61aは、第1Iフラグ51bよりも、第1プロセッサ21bを高速動作させるとも言える。これは、Iフラグ61a、62aがコア11b、12b内に設けられているため、値の変化がプロセッサ21b、22bに作用する際に、伝播遅延やバスブリッジを介した操作による影響を受けにくいためである。第2高速レジスタ62、第2Iフラグ62aに関しても同様である。
なお、各Iフラグ61a、62aは、各Iフラグ51b、52bと区別するために、コア内第1フラグ61a、コア内第2フラグ62aと言い換えることもできる。
第1高速レジスタ61及び制御レジスタ50bは、第1OR回路71を介して第1プロセッサ21bと接続されている。つまり、第1プロセッサ21bは、第1OR回路71を介して、第1Iフラグ61a、51bの値が作用すると言える。第1プロセッサ21bは、第1Iフラグ61a、51bの少なくとも一方を操作することで、態様を切り換えることができる。
同様に、第2高速レジスタ62及び制御レジスタ50bは、第2OR回路72を介して第2プロセッサ22bと接続されている。つまり、第2プロセッサ22bは、第2OR回路72を介して、第2Iフラグ62a、52bの値が作用すると言える。第2プロセッサ22bは、第2Iフラグ62a、52bの少なくとも一方を操作することで、態様を切り換えることができる。
第1コア11bは、全コア11b、12bの態様を同時に切り換える場合、上記実施形態と同様に、制御レジスタ50bのIフラグ51b、52bを同時に操作する。Iフラグ51b、52bの値の変化は、OR回路71、72を介して、各プロセッサ21b、22bに作用する。これによって、第1コア11bは、第1コア11bと第2コア12bの態様を同時に切り換えることができる。
さらに、各コア11b、12bは、自コア11b、12bの態様のみを切り換える場合、自CPUコア11b、12bの高速レジスタ61、62における切換フラグ61a、62aの値を操作する。詳述すると、第1プロセッサ21bは、第1コア11bの態様のみを切り換える場合、第1フラグ61aのみを操作する。第1フラグ61aの値の変化は、第1コア11b内において、第1OR回路71を介して、第1プロセッサ21bに作用する。同様に、第2プロセッサ22bは、第2コア12bの態様のみを切り換える場合、第2フラグ62aのみを操作する。
上記のように、各Iフラグ61a、62aは、各Iフラグ51b、52bよりも早く、各プロセッサ21b、22bに値の変化を作用させることができる。このため、各コア11b、12bは、自コア11b、12bの態様のみを切り換える場合、第1コア11bと第2コア12bの態様を同時に切り換える場合よりも高速に、第1コア11bや第2コア12bの態様を切り換えることができる。なお、本実施形態の電子装置は、第1実施形態と同様の効果を奏することができる。
(第3実施形態)
図5を用いて、第3実施形態の電子装置に関して説明する。本実施形態では、主に、第1実施形態と異なる点に関して説明する。本実施形態は、制御レジスタ50cが状態切換許可フラグ91、92を含んでいる点が上記実施形態と異なる。本実施形態では、上記実施形態と同様の箇所に同じ符号を付与する。本実施形態で特に断りのない箇所に関しては、上記実施形態を適用することができる。
本実施形態の電子装置は、主に、複数のCPUコア11c、12cと、制御レジスタ50cと、AND回路81~83を備えている。さらに、電子装置は、共有データ記憶部30、クロック供給部40などを備えていてもよい。なお、第1コアIフラグ51c及び第2コアIフラグ52cは、第1実施形態と異なる符号を付与しているものの、第1コアIフラグ51a及び第2コアIフラグ52aと同様である。
第1CPUコア11cは、第1プロセッサ21cなどを備えている。第2CPUコア12cは、第2プロセッサ22cなどを備えている。
制御レジスタ50cは、Iフラグ51c、52cに加えて、第1コア状態切換許可フラグ91、第2コア状態切換許可フラグ92を含んでいる。以下においては、第1コア状態切換許可フラグを第1許可フラグと略称で記載し、第2コア状態切換許可フラグを第2許可フラグと略称で記載する。許可フラグ91、92は、状態フラグに相当する。
第1許可フラグ91は、第1コア11c(第1プロセッサ21c)によって操作され、第1コア11aの態様の切り換えが許可状態か禁止状態かを設定可能なフラグである。つまり、第1コア11cは、第1許可フラグ91に、切り換えが許可状態であることを示す値の設定と、この値をクリアすることができる。この場合、第1許可フラグ91は、値がクリアされることで、切り換えが禁止状態であることを示している。同様に、第2許可フラグ92は、第2コア12c(第2プロセッサ22c)によって操作され、第2コア12aの態様の切り換えが許可状態か禁止状態かを設定可能なフラグである。
第1AND回路81は、入力端子に第3AND回路83と第1Iフラグ51cとが接続され、出力端子が第1プロセッサ21cに接続されている。第2AND回路82は、入力端子に第3AND回路83と第2Iフラグ52cとが接続され、出力端子が第2プロセッサ22cに接続されている。そして、第3AND回路83は、入力端子に第1許可フラグ91と第2許可フラグ92とが接続され、出力端子が第1AND回路81と第2AND回路82に接続されている。AND回路81~83は、切換保留部に相当する。
また、第1AND回路81と第2AND回路82は、全コア11c、12cが態様を切り換え可能になるまで、先に切り換え可能になったCPUコアを待たせておく機構と言える。つまり、第1AND回路81と第2AND回路82は、全コア11c、12cが切り換え許可状態になるまで、先に切り換え許可状態になったCPUコアを待たせておく機構とも言える。一方、第3AND回路83は、第1プロセッサ21cからの態様の切り換え要求(指示)をキューイングする機構と言える。
各コア11c、12cは、態様を切り換えられると困る処理を開始する場合、許可フラグ91、92をクリア、すなわち、許可フラグ91、92に切り換え禁止状態を示す値を設定する。また、各コア11c、12cは、態様を切り換えられても困らない場合、許可フラグ91、92をセット、すなわち、許可フラグ91、92に切り換え許可状態を示す値を設定する。
ここで、電子装置の処理動作の一例を説明する。初期状態として、第1Iフラグ51cと第2Iフラグ52cの両方がセットされ、割込み禁止状態を示す値が設定されているものとする。
まず、第2コア12cは、切り換え禁止状態、すなわち、態様を切り替えられては困る処理(割込み禁止処理)を開始するので、第2プロセッサ22cが第2許可フラグ92をクリアする(ステップS1)。一方、第1コア11cは、切り換え許可状態なので、第1許可フラグ91をセットする(ステップS2)。
次に、第1プロセッサ21cは、第1Iフラグ51cと第2Iフラグ52cの両方をクリアして、割込み許可状態を示す値を設定する(ステップS3)。この時点では、第2許可フラグ92がクリアされているので、コア11c、12cの態様は切り替わらない。
そして、第2プロセッサ22cは、ステップS1で開始した処理が終了し、態様の切り換えが可能となったので、第2許可フラグ92をセットする(ステップS4)。
電子装置は、この時点で、全コア11c、12cが切り換え許可状態となったので、全コア11c、12cが同時に割込み許可状態に切り換わる。
このように、電子装置は、第1コア11cが複数のIフラグ51c、52cの値を同時に操作し、且つ、許可フラグ91、92に全コア11c、12cが許可状態であることが設定されている場合に、複数のコア11c、12cの態様を同時に切り換える。さらに、電子装置は、第1コア11cが複数のIフラグ51c、52cの値を同時に操作し、且つ、許可フラグ91、92に少なくとも一つのCPUコアが切り換え禁止状態であることが設定されている場合に、複数のコア11c、12cの態様の切り換えを保留する。つまり、電子装置は、態様の切り換えをペンディングする機能を備えていると言える。
電子装置は、第1プロセッサ21cがIフラグ51c、52cの値を同時に切り換えたとしても、態様の切り換えが禁止状態のCPUコアが一つでもあれば、態様の切り換えをペンディングすることができる。本実施形態では、第1コア11cと第2コア12cの少なくとも一方が、態様の切り換えが禁止状態であれば、態様の切り換えをペンディングすることができる。よって、電子装置は、態様の切り換えが禁止状態であるにもかかわらず、CPUコアの態様を切り換えてしまうことを抑制できる。また、電子装置は、態様の切り換えが禁止状態であるCPUコアの態様が切り換わってしまい、意図しない動作をしてしまうことを抑制できる。
さらに、電子装置は、第1コア11cがIフラグ51c、52cの値を同時に切り換え、且つ、全てのコア11c、12cにおいて態様の切り換えが許可状態になっていた場合、複数のコア11a、12aの態様を同時に切り換えることができる。なお、本実施形態の電子装置は、第1実施形態と同様の効果を奏することができる。
(第4実施形態)
図6を用いて、第4実施形態の電子装置に関して説明する。本実施形態では、主に、第1実施形態と異なる点に関して説明する。本実施形態は、第3CPUコア13d及び記憶装置200を備えている点が上記実施形態と異なる。本実施形態では、上記実施形態と同様の箇所に同じ符号を付与する。本実施形態で特に断りのない箇所に関しては、上記実施形態を適用することができる。
本実施形態の電子装置は、主に、複数のCPUコア11d~13dと、制御レジスタ50dと、記憶装置200を備えている。さらに、電子装置は、クロック供給部40などを備えていてもよい。なお、第1コアIフラグ51d及び第2コアIフラグ52dは、第1実施形態と異なる符号を付与しているものの、第1コアIフラグ51a及び第2コアIフラグ52aと同様である。
第1CPUコア11dは、第1プロセッサ21dなどを備えている。第2CPUコア12dは、第2プロセッサ22dなどを備えている。そして、第3CPUコア13dは、第3プロセッサ23dなどを備えている。制御レジスタ50dは、Iフラグ51d、52dに加えて、第3コア13d(第3プロセッサ23d)に対応して設けられた第3Iフラグ53dを含んでいる。
第1プロセッサ21dは、制御レジスタ50dのIフラグ51d、52dに加えて、第3Iフラグ53dを同時に操作することができる。また、第3プロセッサ23dは、第1プロセッサ21dと同様、制御レジスタ50dのIフラグ51d~53dを同時に操作することができる。
記憶装置200は、Iフラグ51d~53dの値を記憶(保持)可能に構成されている。つまり、記憶装置200は、第1コア11dあるいは第3コア13dが、複数のIフラグ51d~53dの値を同時に操作する際に、操作直前の各Iフラグ51d~53dの値を保存する記憶装置200は、記憶部に相当する。
記憶装置200は、第1制御データ値211、第2制御データ値212、第n制御データ値213を記憶可能に構成されている。例えば、記憶装置200は、あるタイミングで、第1コア11dあるいは第3コア13dが、複数のIフラグ51d~53dの値を同時に操作する際に、操作直前の各Iフラグ51d~53dの値が第1制御データ値211として記憶される。また、記憶装置200は、別のあるタイミングで、第1コア11dあるいは第3コア13dが、複数のIフラグ51d~53dの値を同時に操作する際に、操作直前の各Iフラグ51d~53dの値が第2制御データ値212として記憶される。第n制御データ値213に関しても同様である。
また、電子装置は、第1コア11dあるいは第3コア13dが、操作したIフラグ51d~53dの値をクリアする際に、記憶装置200に制御データ値として保存されている各Iフラグ51d~53dの値を読み出して制御レジスタに設定する。なお、第1コア11d、第3コア13dは、Iフラグ51d~53dのセットとクリアをワンセットで行う。
ここで、電子装置の処理動作の一例を説明する。初期状態として、第1Iフラグ51dと第2Iフラグ52dの両方がクリアされ、割込み許可状態を示す値が設定されているものとする。
まず、第1コア11dがIフラグ51d~53dをセットし、割込み禁止状態を示す値を設定する(ステップS1a)。このとき、電子装置は、セット直前の制御レジスタ50dの値、すなわちIフラグ51d~53dの値が、第1制御レジスタ値として記憶装置200に保存される。ここでは、割込み許可状態を示す値が第1制御レジスタ値として記憶装置200に保存される。
次に、第3コア13dがIフラグ51d~53dをセットし、割込み禁止状態を示す値を設定する(ステップS2a)。このとき、電子装置は、セット直前の制御レジスタ50dの値、すなわちIフラグ51d~53dの値が、第2制御レジスタ値として記憶装置200に保存される。ここでは、割込み禁止状態を示す値が第2制御レジスタ値として記憶装置200に保存される。
次に、第1コア11dがIフラグ51d~53dをクリアし、割込み許可状態を示す値を設定する(ステップS3a)。このとき、電子装置は、セット直前の制御レジスタ50dの値である第2制御レジスタ値が記憶装置200から取り出されて、制御レジスタ50dのIフラグ51d~53dに設定される。つまり、Iフラグ51d~53dには、割込み禁止状態を示す値が設定される。
このとき、第1コア11dがIフラグ51d~53dをクリアしているものの、第3コア13dは、ステップS2aでIフラグ51d~53dをセットしているため、割込み禁止状態を維持したいものとみなせる。そこで、電子装置は、割込み禁止状態を示す値である第2制御レジスタ値が記憶装置200から取り出されて、Iフラグ51d~53dに設定されるため、各コア11d~13dの割込み禁止状態を維持することができる。
次に、第3コア13dがIフラグ51d~53dをクリアし、割込み許可状態を示す値を設定する(ステップS4a)。このとき、電子装置は、セット直前の制御レジスタ50dの値である第1制御レジスタ値が記憶装置200から取り出されて、制御レジスタ50dのIフラグ51d~53dに設定される。このとき、電子装置は、各コア11d~13dの割込み許可状態となる。
このように、電子装置は、Iフラグ51d~53dを切り換える直前のIフラグ51d~53dの値を保管しておいて、処理後、Iフラグ51d~53dの値を切り換える直前の値に戻せる機能を備えていると言える。言い換えると、電子装置は、ネスト機能を備えている。
電子装置は、割込み禁止状態をネストすることで、排他を保つことができる。つまり、電子装置は、ステップS3aにおいて、各コア11d~13dの割込み禁止状態を維持することができる。また、電子装置は、第1実施形態と同様の効果を奏することができる。
制御レジスタ50dは、各コア11d~13dの態様として割込み優先レベルのマスクレベル(多ビット)の切り換えを制御する切換フラグを含んでいてもよい。また、電子装置は、このような構成で、且つ、ネスト機能を備えていてもよい。この場合であっても、電子装置は、上記と同様の効果を奏することができる。
(第5実施形態)
図7を用いて、第5実施形態の電子装置に関して説明する。本実施形態では、主に、第1実施形態と異なる点に関して説明する。本実施形態は、CPUコアの数と、データレジスタ300及びトリガレジスタ400を備えている点が上記実施形態と異なる。本実施形態では、上記実施形態と同様の箇所に同じ符号を付与する。本実施形態で特に断りのない箇所に関しては、上記実施形態を適用することができる。
本実施形態の電子装置は、主に、複数のCPUコア11e~1neと、制御レジスタ50eと、データレジスタ300と、トリガレジスタ400を備えている。さらに、電子装置は、クロック供給部40などを備えていてもよい。
なお、第1コアIフラグ51e及び第2コアIフラグ52eは、第1実施形態と異なる符号を付与しているものの、第1コアIフラグ51a及び第2コアIフラグ52aと同様である。
第1CPUコア11eは、第1プロセッサ21eなどを備えている。第2CPUコア12eは、第2プロセッサ22eなどを備えている。そして、第nCPUコア1neは、第nプロセッサ2neなどを備えている。nは、例えば、4以上の自然数などを採用できる。つまり、電子装置は、上記実施形態よりも、十分にCPUコアの数が多いものとする。
制御レジスタ50eは、Iフラグ51e、52eに加えて、第nコア1ne(第nプロセッサ2ne)に対応して設けられた第nIフラグ5neを含んでいる。
第1プロセッサ21eは、制御レジスタ50eのIフラグ51e、52eに加えて、第nIフラグ5neを同時に操作することができる。つまり、第1プロセッサ21eは、制御レジスタ50eの全てのIフラグ51e~5neを同時に操作することができる。
電子装置は、CPUコア数が多い場合、または、Iフラグが多ビットの場合、wordサイズに収まらず、アトミック操作できない可能性がある。つまり、電子装置は、CPUコアの数が増加することに伴って、制御レジスタ50eのIフラグの数も増加し、制御レジスタ50eへの書き込み量が増加する。Iフラグのビット数が増える場合も同様である。電子装置は、書き込み量が1命令で制御レジスタ50eに書き込めるサイズ(例えば、4Byte)を超えてしまうと、複数の命令で制御レジスタ50eに書き込む必要がある。
よって、電子装置は、同じクロックサイクルで複数コア11e~1neの態様を切り換えることができない。また、電子装置は、命令間に別の処理が割り込まれる可能性が生じるためスリットが発生する可能性がある。
そこで、本実施形態では、CPUコア数が多い場合、または、Iフラグが多ビットの場合であっても、同じクロックサイクルで複数コア11e~1neの態様を切り換えられる構成を備えている。
データレジスタ300は、第1プロセッサ21eによって操作される第1コアIフラグ311、第2コアIフラグ312、第nコアIフラグ31nを含んでいる。データレジスタ300には、コア11e~1neの数に対応して、Iフラグ311~31nが設けられている。また、Iフラグ311~31nのそれぞれは、Iフラグ51e~5neのそれぞれに対応している。データレジスタ300は、制御レジスタ50eにおける複数のIフラグ51e~5neに設定する値を設定可能に構成されている。例えば、第1Iフラグ311には、第1Iフラグ51eに設定される値が設定される。
トリガレジスタ400は、トリガビット410を含んでいる。トリガビット410は、第1コア11eによって操作可能である。トリガレジスタ400は、データレジスタ300の値、すなわち、データレジスタ300におけるIフラグ311~31nの値を、制御レジスタ50eにおける複数のIフラグ51e~5neにセットすることを示すトリガビット410をセット可能である。また、トリガレジスタ400は、トリガビット410がセットされると、データレジスタ300におけるIフラグ311~31nの値を、制御レジスタ50eにおける複数のIフラグ51e~5neにセットする。
ここで、電子装置の処理動作の一例を説明する。まず、第1プロセッサ21eは、制御レジスタ50eに書き込みたいデータを、データレジスタ300に設定する(ステップS1b)。つまり、第1プロセッサ21eは、制御レジスタ50eのIフラグ51e~5neに設定したい値を、データレジスタ300のIフラグ311~31nに設定する。詳述すると、第1プロセッサ21eは、Iフラグ51eに設定したい値をIフラグ311に設定し、Iフラグ52eに設定したい値をIフラグ312に設定し、Iフラグ5neに設定したい値をIフラグ31nに設定する。このとき、第1プロセッサ21eは、複数命令サイクルに分けて、データレジスタ300に設定しても良い。
次に、第1プロセッサ21eは、トリガレジスタ400のトリガビット410をセットする(ステップS2b)。電子装置は、例えば、トリガレジスタ400のトリガビット410がセットされると、データレジスタ300に設定されている値が制御レジスタ50eに反映されるようにハードウェア回路が設けられている。
これによって、電子装置は、トリガビット410をセットした次の命令サイクルで、データレジスタ300に設定されている値を制御レジスタ50eに反映させる。つまり、電子装置は、データレジスタ300のIフラグ311~31nに設定されている値を、制御レジスタ50eのIフラグ51e~5neに設定する。
よって、電子装置は、データレジスタ300から複数のIフラグ51e~5neの値を同時に操作することができる。このため、電子装置は、同じクロックサイクルで複数コア11e~1neの態様を切り換えられる。つまり、第1プロセッサ21eは、Iフラグ51e~5neの値を直接的に設定するのではなく、データレジスタ300を介して間接的に設定する。
このように、電子装置では、CPUコア数が多い場合、または、Iフラグが多ビットの場合であっても、同じクロックサイクルで複数コア11e~1neの態様を切り換えることができる。また、電子装置は、上記実施形態と同様の効果を奏することがきる。
(第6実施形態)
図8、図9を用いて、第6実施形態の電子装置に関して説明する。本実施形態では、主に、第1実施形態と異なる点に関して説明する。本実施形態は、CPUコアの数と、制御レジスタ50fの構成が上記実施形態と異なる。本実施形態では、上記実施形態と同様の箇所に同じ符号を付与する。本実施形態で特に断りのない箇所に関しては、上記実施形態を適用することができる。
本実施形態の電子装置は、主に、複数のCPUコア11f~13fと、制御レジスタ50fを備えている。さらに、電子装置は、クロック供給部40などを備えていてもよい。
第1CPUコア11fは、第1プロセッサ21fなどを備えている。第2CPUコア12fは、第2プロセッサ22fなどを備えている。そして、第3CPUコア13fは、第3プロセッサ23fなどを備えている。第1プロセッサ21f~23fは、異常を検出する機能を備えている。
制御レジスタ50fは、各コア11f~13fに対応して個別に設けられた各コア11f~13fの態様の切り換えを制御する複数の切換フラグ51f~53f、51g~53gを含んでいる。詳述すると、制御レジスタ50fは、各コア11f~13fの態様を省電力状態と非省電力状態とで切り換える第1コアHALT状態フラグ51f、第2コアHALT状態フラグ52f、第3コアHALT状態フラグ53fを含んでいる。さらに、制御レジスタ50fは、各コア11f~13fの態様を異常処理状態と非異常処理状態とで切り換える第1コア異常処理開始フラグ51g、第2コア異常処理開始フラグ52g、第3コア異常処理開始フラグ53gを含んでいる。
なお、以下においては、第1コアHALT状態フラグを第1省電力フラグ、第2コアHALT状態フラグを第2省電力フラグ、第3コアHALT状態フラグを第3省電力フラグと略称で記載する。また、以下においては、第1コア異常処理開始フラグを第1異常処理フラグ、第2コア異常処理開始フラグを第2異常処理フラグ、第3コア異常処理開始フラグを第3異常処理フラグと略称で記載する。
第1省電力フラグ51fと第1異常処理フラグ51gは、第1コア11f(第1プロセッサ21f)に対応して設けられている。第2省電力フラグ52fと第2異常処理フラグ52gは、第1コア12f(第2プロセッサ22f)に対応して設けられている。第3省電力フラグ53fと第3異常処理フラグ53gは、第1コア13f(第3プロセッサ23f)に対応して設けられている。
なお、制御レジスタ50fは、フラグ間に優先順位が決められるように構成されていてもよい。本実施形態では、一例として、Iフラグよりも省電力フラグ51f~53f及び異常処理フラグ51g~53gの方が、優先度が高い例を採用する。
第1プロセッサ21fは、例えば、第1省電力フラグ51fをセットすることで省電力状態を示す値を設定し、第1省電力フラグ51fをクリアすることで非省電力状態を示す値を設定すると言える。また、第1プロセッサ21fは、第1異常処理フラグ51gをセットすることで異常処理状態を示す値を設定し、第1異常処理フラグ51gをクリアすることで非異常処理状態を示す値を設定すると言える。言い換えると、第1プロセッサ21fは、第1異常処理フラグ51gをセットすることで異常処理の開始を示す値を設定すると言える。
他の省電力フラグ52f、53f、他の異常処理フラグ52g、53gに関しても同様に設定することができる。また、電子装置は、第3プロセッサ23fも各フラグ51f~53f、51g~53gを設定することができる。
このように、電子装置は、第1プロセッサ21fまたは第3プロセッサ23fが同一命令で操作可能なメモリ空間(例えば、同一word内)に省電力フラグ51f~53f、異常処理フラグ51g~53gが配置されている。これによって、第1プロセッサ21fまたは第3プロセッサ23fは、全ての切換フラグ51f~53f、51g~53gを同時に操作できる。
また、第1省電力フラグ51fと第1異常処理フラグ51gは、第1プロセッサ21fから参照可能であり、且つ、第1プロセッサ21fまたは第3プロセッサ23fから操作可能に構成されている。一方、第2省電力フラグ52fと第2異常処理フラグ52gは、第2プロセッサ22fから参照可能であり、且つ、第1プロセッサ21fまたは第3プロセッサ23fから操作可能に構成されている。同様に、第3省電力フラグ53fと第3異常処理フラグ53gは、第3プロセッサ23fから参照可能であり、且つ、第1プロセッサ21fまたは第3プロセッサ23fから操作可能に構成されている。
つまり、第1プロセッサ21fは、第1省電力フラグ51fだけでなく、第2省電力フラグ52f、第3省電力フラグ53fに関しても操作可能に構成されている。よって、第1プロセッサ21fは、第1省電力フラグ51f、第2省電力フラグ52f、第3省電力フラグ53fを同時に操作することができる。また、第1プロセッサ21fは、異常処理フラグ51g~53gに関しても、同時に操作することができる。なお、第3プロセッサ23fは、第1プロセッサ21fと同様に操作できる。このように、第1プロセッサ21f及び第3プロセッサ23fは、第1プロセッサ21aと同様に切換フラグの値を設定することができる。
ここで、図9を用いて、電子装置の処理動作に関して説明する。ここでは、一例として、第3CPUコア13fが異常を検出した場合の処理を採用する。
ステップS10b、S20b、S30bでは、各プロセッサ21f~23fは通常処理を行う。このとき、各コア11f~13fは、通常動作状態であり、割込み許可状態である。
第1プロセッサ21fと第2プロセッサ22fは、通常処理が終了すると、割込み禁止状態とする(ステップS11b、S21b)。一方、第3プロセッサ23fは、通常処理が終了すると、異常を検出する(ステップS31b)。
ステップS32bでは、第3プロセッサ23fは、フラグ操作を行う。具体的には、第1異常処理フラグ51g、第2省電力フラグ52f、第3省電力フラグ53fを同時にセットする。
これによって、第1コア11fは、異常時処理を実施する(ステップS12b)。第2コア12fと第3コア13fは、HALT状態に遷移し、命令の実行停止状態となる(ステップS22b、S33b)。
このように、電子装置は、一つのCPUコアが、複数の切換フラグの値を同時に操作することで、複数のコア11f~13fそれぞれを異なる態様に同時に切り換えることができる。本実施形態では、一例として、第3プロセッサ23fが、第1異常処理フラグ51g、第2省電力フラグ52f、第3省電力フラグ53fを同時にセットする例を採用している。このようにして、第3プロセッサ23fは、各コア11f~13fそれぞれを異なる態様に同時に切り換えることができる。
また、本実施形態では、Iフラグよりも省電力フラグ51f~53f及び異常処理フラグ51g~53gの方が、優先度が高い例を採用している。このため、電子装置は、一つのCPUコアが、複数の切換フラグに省電力状態を示す値を同時に操作することで、複数のCPUコアの現在の状態にかからず、複数のCPUコアの態様を同時に省電力状態に切り換えることができる。本実施形態では、一例として、第3プロセッサ23fが、第2コア12f、第3コア13fの態様を、同時にHALT状態に切り換える例を採用している。なお、電子装置は、一つのCPUコアが、割込み禁止状態のCPUコアに対応する異常処理フラグをセットすることで、そのCPUコアに異常処理を行なわせることができる。
このように、電子装置は、コア11f~13f毎に異なる状態に切り換えて、異なる処理を実施させることができる。電子装置は、切換フラグの優先順位を制御することで、通常動作の割込み禁止状態を解除して、異常時処理に切り替えることができる。また、電子装置は、第1実施形態と同様の効果を奏することができる。
なお、同様の状況の場合、共有データ記憶部を介して態様を切り換える第2比較例の電子装置(以下、単に第2比較例)が考えられる。第2比較例では、第3コアが異常を検出した場合、第2コア、第3コアは命令実行を停止(HALT状態)にし、第1コアは異常時処理を実行させる。この場合、第3コアは、共有データ記憶部に異常発生したことを示す異常発生コードを書き込む。また、第3コアは、コア間割込みで、第1コアと第2コアに通知する。そして、第3コアは、HALT状態に遷移する。
一方、第1コア、第2コアは、割込み禁止状態であるため、第3コアからのコア間割込みをペンディングして通常動作を継続する。その後、第1コア、第2コアは、それぞれ、割込み禁止状態が解除されたタイミングで、第3コアからのコア間割込みを受け付けて、共有データ記憶部を参照し、異常発生コードを読み取り、異常時処理を開始する。
このように、第2比較例は、異常時処理を開始するタイミング、HALT状態へ遷移するタイミングがコアによって異なる。第2比較例は、このように時間差がつくことで、別の処理が割り込むスリットとなり、別の処理が割り込まれた場合の制御が必要になる。また、第2比較例は、異常が発生していないコアが通常処理を継続している場合の設計が必要となる。さらに、第2比較例は、異常が発生しているコアに、複数の命令ステップを実行させないと、異常時処理に移れない。しかも、すでに異常が発生しているコアは、この複数の命令ステップを正しく実行できない可能性がある。
これに対して、本実施形態の電子装置は、異常時処理の開始、HALT状態への遷移を同時とすることができるため、このような課題を解決することができる。さらに、本実施形態の電子装置は、コアに異常が発生していたとしても、制御レジスタの値を操作するだけで、複数のコアの態様を切り換えることができる。
なお、制御レジスタ50fは、省電力フラグ51f~53f、異常処理フラグ51g~53gの他に、第4実施形態と同様、各コア11f~13fに対応したIフラグを含んでいてもよい。この場合、第1プロセッサ21fまたは第3プロセッサ23fは、切換フラグ51f~53f、51g~53gに加えて、各コア11f~13fに対応したIフラグを同時に操作できる。