(57)【特許請求の範囲】
【請求項１】
複数のコア（Ｃ０，Ｃ１，Ｃ２）を搭載したマルチコアマイクロコンピュータ（１００）を備えており、前記コアにおいて、回転角の位相に同期してタスクを実行する電子制御装置（１０）であって、
前記タスクを実行するタスク実行コア、を示すコア番号を記憶する第１記憶部（１３１）と、
前記タスク実行コアの切り替えが行われる際の位相、を示す切り替え位相を記憶する第２記憶部（１３２）と、を備え、
前記第１記憶部に記憶されている前記コア番号、及び、前記第２記憶部に記憶されている前記切り替え位相に基づいて、前記タスク実行コアの切り替えを行うことを特徴とする電子制御装置。
【請求項２】
それぞれの前記コアは、
前記第１記憶部に記憶されている前記コア番号が、当該コアを示すものである場合には、
位相が、前記第２記憶部に記憶されている前記切り替え位相となったときに、前記タスク実行コアに切り替わるように構成されていることを特徴とする、請求項１に記載の電子制御装置。
【請求項３】
前記第２記憶部に記憶されている前記切り替え位相は、当該切り替え位相が決定される時点の位相、に基づいて決定されたものであることを特徴とする、請求項２に記載の電子制御装置。
【請求項４】
前記第２記憶部に記憶されている前記切り替え位相は、当該切り替え位相が決定される時点の位相、よりも後の位相であることを特徴とする、請求項３に記載の電子制御装置。
【請求項５】
前記第２記憶部に記憶されている前記切り替え位相は、当該切り替え位相が決定される時点の位相、の次に、前記タスクが実行される位相であることを特徴とする、請求項４に記載の電子制御装置。
【請求項６】
前記第１記憶部に記憶されている前記コア番号は、それぞれの前記コアの、所定時間における演算処理負荷に基づいて決定されたものであることを特徴とする、請求項１に記載の電子制御装置。
【請求項７】
前記タスク実行コアの切り替えは、
前記所定時間における前記タスク実行コアの処理の空き時間の合計が、閾値を下回ったときにのみ行われることを特徴とする、請求項６に記載の電子制御装置。
【請求項８】
それぞれの前記コアにおける前記演算処理負荷は、
前記所定時間のうち、当該コアで前記タスクが実行される時間の合計である第１時間と、
前記所定時間のうち、当該コアの処理の空き時間の合計である第２時間と、に基づいて算出されることを特徴とする、請求項６又は７に記載の電子制御装置。
【請求項９】
それぞれの前記コアの性能は互いに同一であって、
前記タスク実行コアについて算出された前記第１時間と前記第２時間との和と、
前記タスク実行コア以外の前記コアについて算出された前記第２時間と、を比較し、
これらのうち最も長いものに対応する前記コアを示す前記コア番号が、前記第１記憶部に記憶されることを特徴とする、請求項８に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコアを搭載したマルチコアマイクロコンピュータを備える電子制御装置に関する。
【背景技術】
【０００２】
車両に備えられる電子制御装置として、複数のコアを搭載したマルチコアマイクロコンピュータ（以下、「マルチコアマイコン」とも表記する）を備えたものが実用化されている。マルチコアマイコンは、制御において実行される複数のタスクを、複数のコアにて分散処理するものである。それぞれのコアにおける処理負荷が軽減されるので、複雑な処理を比較的高速で実行することができる。
【０００３】
このような電子制御装置では、一部のコアにおける処理負荷のみが大きくなり過ぎることの無いよう、タスクを実行するコアの動的な切り替えが行われる（例えば、下記特許文献１を参照）。
【０００４】
例えば、あるタスクの実行が割り当てられた第１コアの処理負荷が大きく、且つ第２コアの処理負荷が小さいときには、当該タスクを実行するコアが第１コアから第２コアへと切り替えられる。
【０００５】
ところで、電子制御装置により実行されるタスクの中には、制御対象装置における回転角（内燃機関のクランク角など）の位相に同期して実行されるべきものがある。このようなタスクとしては、例えば、クランク角が所定の位相となる毎に開始される、燃料噴射タイミングの演算が挙げられる。また、同じくクランク角が所定の位相となる毎に開始される、点火タイミングの演算が挙げられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−７８０７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のような電子制御装置において、タスクを実行するコアが切り替えられるタイミングによっては、回転角の位相が特定の位相となったときに実行されるべきタスクが、当該位相においていずれのコアでも実行されない場合が生じることがある。加えて、回転角の位相が特定の位相となったときに実行されるべきタスクが、複数のコアで重複して実行されてしまう場合が生じることもある。
【０００８】
このような現象は、タスクの処理が開始されるタイミングがコア間で異なること、及び、タスクを実行するコアの切り替えが、タスクの処理が開始されるタイミングとは非同期に行われてしまうことに起因する。
【０００９】
本発明はこのような課題に鑑みてなされたものであり、その目的は、タスクを実行するコアの切り替えに伴い、特定の位相においてタスクが実行されない現象や、タスクが重複して実行されてしまう現象を確実に防止することのできる電子制御装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明に係る電子制御装置は、複数のコアを搭載したマルチコアマイクロコンピュータを備えており、コアにおいて、回転角の位相に同期してタスクを実行する電子制御装置であって、タスクを実行するタスク実行コア、を示すコア番号を記憶する第１記憶部と、タスク実行コアの切り替えが行われる際の位相、を示す切り替え位相を記憶する第２記憶部と、を備え、第１記憶部に記憶されているコア番号、及び、第２記憶部に記憶されている切り替え位相に基づいて、タスク実行コアの切り替えを行う。
【００１１】
このような構成の電子制御装置では、タスク実行コアの切り替えが、予め設定され記憶されている情報（コア番号及び切り替え位相）に基づいて行われる。
【００１２】
例えば、切り替えの前においてタスクを実行していたコアは、当該タスクを実行しない状態への切り替えを、位相が切り替え位相となったタイミングで行う。また、切り替えの後においてタスクを実行することとなるコアは、当該タスクを実行する状態への切り替えを、やはり位相が切り替え位相となったタイミングで行う。
【００１３】
このように、状態の切り替えが行われるタイミング（位相）を、全てのコアで一致させることが可能となる。その結果、特定の位相においていずれのコアでもタスクが実行されない現象や、複数のコアで重複してタスクが実行されてしまう現象が確実に防止される。
【発明の効果】
【００１４】
本発明によれば、タスクを実行するコアの切り替えに伴い、特定の位相においてタスクが実行されない現象や、タスクが重複して実行されてしまう現象を確実に防止することのできる電子制御装置が提供される。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る電子制御装置の構成を模式的に示す図である。
【図２】図１の電子制御装置で実行される、同期タスク実行コアの切り替えについて説明するためのタイムチャートである。
【図３】図１の電子制御装置で実行される、同期タスク実行コアの切り替えについて説明するためのタイムチャートである。
【図４】図１の電子制御装置で実行される処理の流れを示すフローチャートである。
【図５】図１の電子制御装置におけるコアの処理負荷を示す図である。
【図６】図１の電子制御装置におけるコアの処理負荷を示す図である。
【図７】図１の電子制御装置におけるコアの処理負荷を示す図である。
【図８】図１の電子制御装置で実行される処理の流れを示すフローチャートである。
【図９】同期タスク実行コアの切り替えが行われる際における、コアの状態遷移図である。
【図１０】本発明の比較例に係る電子制御で実行される、同期タスク実行コアの切り替えについて説明するためのタイムチャートである。
【図１１】本発明の比較例に係る電子制御で実行される、同期タスク実行コアの切り替えについて説明するためのタイムチャートである。
【図１２】本発明の比較例に係る電子制御で実行される、同期タスク実行コアの切り替えについて説明するためのタイムチャートである。
【図１３】本発明の比較例に係る電子制御で実行される、同期タスク実行コアの切り替えについて説明するためのタイムチャートである。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照しながら本発明の実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【００１７】
本実施形態に係る電子制御装置１０は、車両における内燃機関２０（エンジン）の動作を制御するための制御装置（エンジン制御ＥＣＵ）として構成されている。例えば、電子制御装置１０は、内燃機関２０に備えられたクランク角センサ（不図示）からの信号に基づいて、内燃機関２０におけるインジェクタ（不図示）の開閉動作、すなわち燃料噴射を制御する。
【００１８】
かかる制御において、電子制御装置１０で処理されるタスクの中には、クランクシャフトの回転角（クランク角）の位相の変化に同期して周期的に処理されるものがある。例えば、インジェクタの燃料噴射タイミングを決定するための演算は、上記位相が３０度増加する毎に処理される。以下の説明においては、上記のように回転角の位相に同期して処理されるタスクのことを、「同期タスク」と表記する。
【００１９】
電子制御装置１０による同期タスクの処理についての説明に先立ち、電子制御装置１０の構成について説明する。電子制御装置１０は、入力回路１１と、出力回路１２と、マイコン１００とを備えている。
【００２０】
入力回路１１は、制御対象である内燃機関２０から、各種のセンサ信号を受信するための通信インターフェースとなる回路である。センサ信号には、クランク角センサから送信される信号、すなわち、クランク角の位相を示す信号が含まれる。
【００２１】
出力回路１２は、インジェクタの開閉を切り替えるための駆動信号を、内燃機関２０に向けて出力するための通信インターフェースとなる回路である。尚、出力回路１２からは、インジェクタ以外の装置（例えばスパークプラグ）を動作させるための駆動信号が、上記駆動信号と共に送信されてもよい。
【００２２】
マイコン１００は、電子制御装置１０の主たる部分を構成するマイクロコンピュータである。マイコン１００は、ＣＰＵ１１０と、ＲＯＭ１２０と、ＲＡＭ１３０と、Ｉ／Ｏ１４０とを備えている。
【００２３】
ＣＰＵ１１０は、制御を実行するために必要な演算、すなわちタスクの処理を行うための中央演算処理装置である。ＣＰＵ１１０は３つのコア（Ｃ０、Ｃ１、Ｃ２）を有しており、所謂マルチコアの処理装置となっている。つまり、マイコン１００はマルチコアマイクロコンピュータとして構成されている。
【００２４】
ＲＯＭ１２０は、読み出し専用の半導体メモリである。ＲＯＭ１２０には、ＣＰＵ１１０で実行されるプログラムや、内燃機関２０の制御に必要な各種のマップ等が記憶されている。
【００２５】
ＲＡＭ１３０は、書き換え可能な半導体メモリである。ＲＡＭ１３０には、制御のための演算結果等が一時的に記憶される。また、本実施形態では、ＲＡＭ１３０における情報の記憶場所として、第１記憶部１３１と、第２記憶部１３２とが確保されている。第１記憶部１３１に書き込まれ記憶される情報、及び、第２記憶部１３２に書き込まれ記憶される情報については、それぞれ後に説明する。
【００２６】
Ｉ／Ｏ１４０は、車両に搭載された他のＥＣＵと、マイコン１００とが通信を行うためのインターフェース部分である。Ｉ／Ｏ１４０を介した上記通信は、ＣＰＵ１１０により制御される。
【００２７】
尚、上記のような電子制御装置１０の構成自体は、第１記憶部１３１と第２記憶部１３２とがＲＡＭ１３０に確保されている点を除き、従来の電子制御の構成と同じである。
【００２８】
電子制御装置１０は、内燃機関２０の動作を制御するにあたり、既に述べた同期タスクの他にも様々なタスクの処理を行っている。本実施形態では、同期タスクを含む複数のタスクが、コアＣ１とコアＣ２とによって分散処理されている。
【００２９】
コアＣ０は、ＣＰＵ１１０全体の動作を統括制御している。具体的には、コアＣ１及びコアＣ２のそれぞれに対し、処理すべきタスクの振り分けを行っている。尚、このような統括制御は、タスクの処理を行うコアＣ１又はコアＣ２のいずれかが、タスクの処理と並行して行うこととしてもよい。その場合、本実施形態におけるコアＣ０のように、統括制御を行うための専用のコアは不要となる。
【００３０】
タスクの振り分けは、コアＣ１及びコアＣ２のそれぞれの処理負荷が概ね均等となるように行われる。しかしながら、例えば、車両の走行状態の変化に伴って内燃機関２０の回転数が増加した場合には、一部のタスクの実行頻度が増加するなどにより、コアＣ１及びコアＣ２のうち一方の処理負荷が、他方の処理負荷に比べて著しく大きくなってしまう場合がある。
【００３１】
上記のような処理負荷の偏りは、ＣＰＵ１１０の処理能力の有効活用という点に鑑みれば好ましいものではない。そこで、ＣＰＵ１１０では、一部のコアにおける処理負荷のみが大きくなり過ぎることの無いように、同期タスクの処理を実行するコアが動的に切り替えられる構成となっている。例えば、同期タスクの処理がコアＣ１で行われている際、当該コアＣ１の処理負荷が大きくなり過ぎた場合には、同期タスクの処理を実行するコアがコアＣ１からコアＣ２へと切り替えられる。
【００３２】
以下の説明においては、コアＣ１及びコアＣ２のうち、同期タスクの処理を実行するコアのことを「同期タスク実行コア」とも称する。また、同期タスク実行コアを切り替えるためにコアＣ０が行う処理のことを「切り替え処理」とも称する。尚、後に説明するように、コアＣ０が切り替え処理を行うタイミングと、同期タスク実行コアが実際に切り替えられるタイミングとは、本実施形態においては必ずしも一致しない。
【００３３】
本実施形態で行われる切り替え処理の具体的な態様、及びその利点について説明する前に、従来から行われていた切り替え処理の態様について説明する。図１０乃至図１３は、本発明の比較例（従来例）に係る電子制御装置で実行される、切り替え処理の流れを示すタイムチャートである。尚、当該電子制御装置のハードウェア構成は、図１に示される電子制御装置１０の構成と同じである。
【００３４】
図１０を参照しながら説明する。図１０には、時刻ｔ１２５において切り替え処理が実行され、同期タスク実行コアがコアＣ１からコアＣ２へと切り替えられる例が示されている。
【００３５】
同期タスクは、内燃機関２０のクランク角センサから電子制御装置に伝達される情報、すなわち、クランクシャフトの回転角の位相（以下、「センサ位相」と表記する）が、３０度変化する毎に実行される。具体的には、センサ位相が６０度、９０度、１２０度、１５０度と、３０度増加する毎に、同期タスク実行コアにおいて同期タスクが実行される。尚、センサ位相は、７２０度まで増加した時点で０度に戻り、内燃機関２０の動作に伴って再び３０度ずつ増加していく。
【００３６】
図１０の例では、時刻ｔ１２５よりも前において同期タスク実行コアであるコアＣ１は、センサ位相が９０度となった後の時刻ｔ１１０において、同期タスクの処理を開始する。尚、センサ位相が９０度となったタイミングと、同期タスクの処理が開始されるタイミング（時刻ｔ１１０）とは必ずしも一致しない。このようなタイミングの不一致は、コアＣ１が同期タスク以外のタスクの処理も行っており、同期タスクの処理の開始タイミングが僅かに遅れてしまうことに起因する。センサ位相が９０度となってから、同期タスクの処理が開始されるまでの時間は、同期タスク実行コアの処理負荷に応じて変化する。
【００３７】
その後、時刻ｔ１１０よりも後の時刻ｔ１２５において、コアＣ０により切り替え処理が実行される。同期タスク実行コアはコアＣ１からコアＣ２へと切り替えられる。これ以降、コアＣ１は、センサ位相が３０度増加しても同期タスクの処理を行わない状態（以下、当該状態のことを「非実行状態」と称する）となり、コアＣ２は、センサ位相が３０度増加する毎に同期タスクの処理を行う状態（以下、当該状態のことを「実行状態」と称する）となる。
【００３８】
時刻ｔ１２５の後、センサ位相が１２０度になったときには、コアＣ１は非実行状態になっている。このため、コアＣ１は同期タスクの処理を開始しない。図１０に示される時刻ｔ１３０は、仮にコアＣ１が実行状態であるとしたときに、１２０度のセンサ位相に対応した同期タスクの実行が開始される時刻である。
【００３９】
コアＣ２は、時刻ｔ１２５よりも前においては同期タスク実行コアではなく、非実行状態となっている。このため、センサ位相が９０度となっても、同期タスクの処理を開始しない。図１０に示される時刻ｔ１２０は、仮にコアＣ２が実行状態であるとしたときに、９０度のセンサ位相に対応した同期タスクの実行がコアＣ２で開始される時刻である。
【００４０】
尚、同図に示されるように、時刻ｔ１１０と時刻ｔ１２０とは互いに一致していない。これは、センサ位相が９０度となってから、同期タスクの処理が開始されるまでの時間が、コアＣ１、Ｃ２の処理負荷に応じてそれぞれ変化するからである。図１０の例では、コアＣ２が処理を開始する時刻ｔ１２０が、コアＣ１が処理を開始する時刻ｔ１１０よりも後になっている例が示されている。ただし、コアＣ１及びコアＣ２のそれぞれの処理負荷によっては、これらの前後関係が入れ替わることも生じ得る。
【００４１】
時刻ｔ１２０よりも後の時刻ｔ１２５において、コアＣ０により切り替え処理が実行される。時刻ｔ１２５の後、センサ位相が１２０度になったときには、コアＣ２は実行状態になっている。このため、コアＣ２は、１２０度のセンサ位相に対応した同期タスクの処理を開始する（時刻ｔ１４０）。図１０の例では、時刻ｔ１４０は時刻ｔ１３０よりも後の時刻となっている。
【００４２】
以上のように、コアＣ０による切り替え処理が時刻ｔ１２５において実行されると、９０度のセンサ位相に対応した同期タスクはコアＣ１のみで行われ、１２０度のセンサ位相に対応した同期タスクはコアＣ２のみで行われる。その結果、切り替え処理が行われなかった場合と同様に、電子制御装置１０による内燃機関２０の制御は正常に行われる。
【００４３】
図１１を参照しながら、他の例について説明する。図１１の例では、切り替え処理が行われるタイミングが、時刻ｔ１３０よりも後であり、且つ時刻ｔ１４０よりも前の時刻ｔ１３５となっている点において、図１０の例と異なっている。
【００４４】
この例でも、９０度のセンサ位相に対応した同期タスクの処理はコアＣ１で開始され（時刻ｔ１１０）、コアＣ２では開始されない（時刻ｔ１２０）。
【００４５】
時刻ｔ１３０になると、この時点ではコアＣ１は同期タスク実行コアであり、実行状態なのであるから、コアＣ１は１２０度のセンサ位相に対応した同期タスクの処理を開始する。その後、時刻ｔ１３５において切り替え処理が行われるが、既にコアＣ１は同期タスクの処理を行っているので、当該処理は中断されることなくそのまま継続される。
【００４６】
時刻ｔ１３５よりも後の時刻ｔ１４０になると、この時点ではコアＣ２は同期タスク実行コアに切り替えられており、実行状態となっている。このため、コアＣ２は、１２０度のセンサ位相に対応した同期タスクの処理を開始する。
【００４７】
その結果、１２０度のセンサ位相に対応した同期タスクの処理は、コアＣ１とコアＣ２の両方で開始されてしまうことになる。この場合、内燃機関２０に対する駆動信号の送信が２重に送信されてしまうなどにより、内燃機関２０の制御において何らかの不具合が生じてしまう可能性がある。
【００４８】
このように、従来の電子制御装置においては、切り替え処理が行われるタイミングによっては、同期タスクが複数のコアで重複して処理されてしまう場合が生じ得る。以下では、このような現象を「処理の重複」とも称する。
【００４９】
引き続き、本発明の比較例に係る電子制御装置の切り替え処理について、図１２を参照しながら説明する。図１２には、時刻ｔ１２６において切り替え処理が実行され、同期タスク実行コアがコアＣ１からコアＣ２へと切り替えられる例が示されている。
【００５０】
図１２では、９０度のセンサ位相に対応した同期タスクの処理がコアＣ１で開始される時刻が、時刻ｔ１２１として示されている。また、仮にコアＣ２が実行状態であるとしたときに、９０度のセンサ位相に対応した同期タスクの実行がコアＣ２で開始される時刻が、時刻ｔ１１１として示されている。図１２の例では、時刻ｔ１２１が時刻ｔ１１１よりも後の時刻となっている。
【００５１】
同様に、図１２では、１２０度のセンサ位相に対応した同期タスクの処理がコアＣ２で開始される時刻が、時刻ｔ１３１として示されている。また、仮にコアＣ１が実行状態であるとしたときに、１２０度のセンサ位相に対応した同期タスクの実行がコアＣ１で開始される時刻が、時刻ｔ１４１として示されている。図１２の例では、時刻ｔ１４１が時刻ｔ１３１よりも後の時刻となっている。
【００５２】
時刻ｔ１２６よりも前において同期タスク実行コアであるコアＣ１は、センサ位相が９０度となった後の時刻ｔ１２１において、同期タスクの処理を開始する。その後、時刻ｔ１２１よりも後の時刻ｔ１２６において、コアＣ０により切り替え処理が実行される。同期タスク実行コアはコアＣ１からコアＣ２へと切り替えられる。
【００５３】
時刻ｔ１２６の後、センサ位相が１２０度になったときには、コアＣ１は非実行状態になっている。このため、時刻ｔ１４１において、コアＣ１は同期タスクの処理を開始しない。
【００５４】
コアＣ２は、時刻ｔ１２６よりも前においては同期タスク実行コアではなく、非実行状態となっている。このため、センサ位相が９０度となっても、コアＣ２は同期タスクの処理を開始しない。
【００５５】
コアＣ０により切り替え処理が実行された時刻ｔ１２６の後、センサ位相が１２０度になったときには、コアＣ２は実行状態になっている。このため、コアＣ２は、１２０度のセンサ位相に対応した同期タスクの処理を開始する（時刻ｔ１３１）。
【００５６】
以上のように、コアＣ０による切り替え処理が時刻ｔ１２６において実行されると、９０度のセンサ位相に対応した同期タスクはコアＣ１のみで行われ、１２０度のセンサ位相に対応した同期タスクはコアＣ２のみで行われる。その結果、切り替え処理が行われなかった場合と同様に、電子制御装置１０による内燃機関２０の制御は正常に行われる。
【００５７】
図１３を参照しながら、他の例について説明する。図１３の例では、切り替え処理が行われるタイミングが、時刻ｔ１３１よりも後であり、且つ時刻ｔ１４１よりも前の時刻ｔ１３６となっている点において、図１２の例と異なっている。
【００５８】
この例でも、９０度のセンサ位相に対応した同期タスクの処理はコアＣ１で開始され（時刻ｔ１２１）、コアＣ２では開始されない（時刻ｔ１１１）。
【００５９】
時刻ｔ１３１になると、この時点ではコアＣ２は未だ同期タスク実行コアではなく、非実行状態なのであるから、コアＣ２は１２０度のセンサ位相に対応した同期タスクの処理を開始しない。
【００６０】
時刻ｔ１３６よりも後の時刻ｔ１４１になると、この時点ではコアＣ１は同期タスク実行コアではなくなっており、非実行状態となっている。このため、コアＣ１は、１２０度のセンサ位相に対応した同期タスクの処理を開始しない。
【００６１】
その結果、１２０度のセンサ位相に対応した同期タスクの処理は、コアＣ１とコアＣ２のいずれにおいても開始されないことになる。この場合、内燃機関２０に対する駆動信号の送信が行われないので、やはり内燃機関２０の制御において何らかの不具合が生じてしまう可能性がある。
【００６２】
このように、従来の電子制御装置においては、切り替え処理が行われるタイミングによっては、同期タスクの一部が処理されない場合が生じ得る。以下では、このような現象を「処理の抜け」とも称する。
【００６３】
以上に説明した処理の重複、及び処理の抜けは、センサ位相が特定の位相となった際、それに対応した同期タスクの処理が開始されるタイミングがコア間で異なること、及び、切り替え処理が行われるタイミングが特に定められておらず、同期タスクの開始タイミング等とは非同期に切り替え処理が行われてしまうことに起因する。
【００６４】
本発明は、処理の重複及び処理の抜けを確実に防止しながら、切り替え処理を行うことを可能にするものである。図２及び図３を参照しながら、本実施形態における切り替え処理の概要について説明する。
【００６５】
図２は、電子制御装置１０で実行される切り替え処理の流れを示すタイムチャートである。尚、当該タイムチャートの上段部分には、ＲＡＭ１３０の状態が模式的に示されている。
【００６６】
本実施形態において同期タスクが実行されるタイミングは、図１０乃至図１３を参照しながら説明した比較例におけるタイミングと同一である。すなわち、本実施形態においても、センサ位相が６０度、９０度、１２０度、１５０度と、３０度増加する毎に、同期タスク実行コアにおいて同期タスクが実行される。
【００６７】
図２には、時刻ｔ３５において切り替え処理が実行され、同期タスク実行コアがコアＣ１からコアＣ２へと切り替えられる例が示されている。時刻ｔ３５よりも前において同期タスク実行コアであるコアＣ１は、センサ位相が９０度となった後の時刻ｔ１０において、同期タスクの処理を開始する。センサ位相が９０度となったタイミングと、同期タスクの処理が開始されるタイミングとは必ずしも一致しない。その理由は、比較例の説明において既に述べたとおりである。
【００６８】
ＲＡＭ１３０の第１記憶部１３１には、同期タスク実行コアを示す数値（コア番号）が記憶されている。図２の例の場合、時刻ｔ３５よりも前の期間においては、第１記憶部１３１にはコアＣ１を示す数値である「１」が記憶されている。時刻ｔ３５よりも後の期間においては、第１記憶部１３１にはコアＣ２を示す数値である「２」が記憶されている。
【００６９】
時刻ｔ１０の後、センサ位相が９０度から１２０度に変化すると、１２０度に対応した同期タスクの処理がコアＣ１により開始される（時刻ｔ３０）。図２の例では、切り替え処理が行われる時刻ｔ３５は、コアＣ１が同期タスクの処理を開始する時刻ｔ３０よりも後となっている。
【００７０】
本実施形態における切り替え処理は、コアＣ０が、第１記憶部１３１に記憶されているコア番号を書き換えることによって行われる。例えば、同期タスク実行コアをコアＣ１からコアＣ２に変更する場合には、第１記憶部１３１に記憶されているコア番号は１から２へと書き換えられる。
【００７１】
また、コアＣ０は、第１記憶部１３１に記憶されているコア番号を書き換えると同時に、第２記憶部１３２に記憶されている切り替え位相をも書き換える。「切り替え位相」とは、各コアの状態（実行状態、又は非実行状態）が切り替えられるべきタイミングを示す位相のことである。つまり、同期タスク実行コアの切り替え（変更）は、切り替え処理が実行されたタイミングである時刻ｔ３５において行われるのではなく、センサ位相が、第２記憶部１３２に記憶されている切り替え位相と一致したときに行われる。
【００７２】
図２の例では、時刻ｔ３５において、第１記憶部１３１に記憶されているコア番号は１から２へと書き換えられる。また、第２記憶部１３２に記憶されている切り替え位相の値は１５０度に書き換えられる。
【００７３】
本実施形態では、各コア（コアＣ１、コアＣ２）は、同期タスクの処理を行うに先立ち、第１記憶部１３１に記憶されているコア番号を参照する。また、第２記憶部１３２に記憶されている切り替え位相をも参照する。
【００７４】
このとき、読み込まれたコア番号が当該コアを示す数値であった場合には、当該コアは、センサ位相が切り替え位相と一致したときにのみ非実行状態から実行状態へと切り替わる。一方、読み込まれたコア番号が当該コアを示す数値でなかった場合には、当該コアは、センサ位相が切り替え位相と一致したときにのみ実行状態から非実行状態へと切り替わる。
【００７５】
時刻ｔ３０においては、コアＣ０による切り替え処理が未だ行われておらず、第１記憶部１３１に記憶されているコア番号は１のままとなっている。このため、コアＣ１は時刻ｔ３０以降も実行状態のままであり、時刻ｔ３０において同期タスクの処理を開始する。
【００７６】
その後、時刻ｔ３５において切り替え処理が行われ、第１記憶部１３１のコア番号が書き換えられるのであるが、既にコアＣ１は同期タスクの処理を行っているので、当該処理は中断されることなくそのまま継続される。
【００７７】
時刻ｔ３５の後、センサ位相が１５０度になると、コアＣ１は再び第１記憶部１３１のコア番号、及び、第２記憶部１３２の切り替え位相を参照する（時刻ｔ５０）。時刻ｔ５０においては、第１記憶部１３１に記憶されているコア番号は２となっており、コアＣ１を示す数値（１）とは一致しない。
【００７８】
また、第２記憶部１３２の切り替え位相は１５０度となっており、時刻ｔ５０におけるセンサ位相と一致している。このため、コアＣ１は、時刻ｔ５０において実行状態から非実行状態へと切り替わり、時刻ｔ５０では同期タスクの処理を開始しない。
【００７９】
コアＣ２は、時刻ｔ３５よりも前においては同期タスク実行コアではなく、非実行状態となっている。このため、センサ位相が９０度となっても、同期タスクの処理を開始しない。図２では、仮にコアＣ２が実行状態であるとしたときに、９０度のセンサ位相に対応した同期タスクの実行がコアＣ２で開始される時刻を時刻ｔ２０として示している。
【００８０】
時刻ｔ２０よりも後の時刻ｔ３５において、コアＣ０により切り替え処理が実行される。センサ位相が１２０度になると、コアＣ２は第１記憶部１３１のコア番号、及び、第２記憶部１３２に記憶されている切り替え位相を参照する（時刻ｔ４０）。図２の例では、時刻ｔ４０は、切り替え処理が実行される時刻ｔ３５よりも後である。
【００８１】
時刻ｔ４０においては、第１記憶部１３１に記憶されているコア番号は２となっており、コアＣ２に対応する番号と一致している。しかしながら、第２記憶部１３２に記憶されている切り替え位相は１５０度となっており、時刻ｔ４０におけるセンサ位相（１２０度）とは一致していない。このため、コアＣ２は、時刻ｔ４０においては実行状態に切り替わらず、時刻ｔ４０以降も非実行状態のままとなる。このため、このため、センサ位相が１２０度となっても、時刻ｔ４０においては同期タスクの処理を開始しない。
【００８２】
時刻ｔ４０の後、センサ位相が１５０度になると、コアＣ２は再び第１記憶部１３１のコア番号、及び、第２記憶部１３２に記憶されている切り替え位相を参照する（時刻ｔ６０）。時刻ｔ６０においては、第１記憶部１３１に記憶されているコア番号は２となっており、コアＣ２を示す数値（２）と一致している。また、第２記憶部１３２に記憶されている切り替え位相は１５０度となっており、時刻ｔ６０におけるセンサ位相（１５０）と一致している。このため、コアＣ２は、時刻ｔ６０において非実行状態から実行状態へと切り替わり、時刻ｔ６０において同期タスクの処理を開始する。
【００８３】
図２に示される例では、１２０度の位相に対応した同期タスクの処理をコアＣ１が開始する時刻ｔ３０と、１２０度の位相に対応した同期タスクの処理をコアＣ２が開始する時刻ｔ４０と、の間となる時刻ｔ３５において切り替え処理が実行されている。つまり、図１１を参照しながら説明した比較例の場合と同様のタイミングにおいて、切り替え処理が実行されている。
【００８４】
しかしながら、本実施形態においては、図１１の場合のような処理の重複は生じておらず、１２０度に対応した同期タスクの処理はコアＣ１においてのみ開始されている。
【００８５】
図３も、電子制御装置１０で実行される切り替え処理の流れを示すタイムチャートである。図２の場合と同様に、当該タイムチャートの上段部分には、ＲＡＭ１３０の状態が模式的に示されている。
【００８６】
図３には、時刻ｔ１６において切り替え処理が実行され、同期タスク実行コアがコアＣ１からコアＣ２へと切り替えられる例が示されている。時刻ｔ１６において、第１記憶部１３１に記憶されているコア番号は１から２へと書き換えられる。また、第２記憶部１３２に記憶されている切り替え位相は１２０度に書き換えられる。
【００８７】
図３では、９０度のセンサ位相に対応した同期タスクの処理がコアＣ１で開始される時刻が、時刻ｔ２１として示されている。また、仮にコアＣ２が実行状態であるとしたときに、９０度のセンサ位相に対応した同期タスクの実行がコアＣ２で開始される時刻が、時刻ｔ１１として示されている。図３の例では、時刻ｔ２１が時刻ｔ１１よりも後の時刻となっている。また、切り替え処理が実行される時刻ｔ１６は、時刻ｔ１１よりも後であり、且つ時刻ｔ２１よりも前である。
【００８８】
同様に、図３では、１２０度のセンサ位相に対応した同期タスクの処理がコアＣ２で開始される時刻が、時刻ｔ３１として示されている。また、仮にコアＣ１が実行状態であるとしたときに、１２０度のセンサ位相に対応した同期タスクの実行がコアＣ１で開始される時刻が、時刻ｔ４１として示されている。図３の例では、時刻ｔ４１が時刻ｔ３１よりも後の時刻となっている。
【００８９】
センサ位相が９０度となると、コアＣ１は、第１記憶部１３１のコア番号、及び、第２記憶部１３２に記憶されている切り替え位相を参照する（時刻ｔ２１）。
【００９０】
時刻ｔ２１においては、第１記憶部１３１に記憶されているコア番号は２となっており、コアＣ１に対応する番号と一致していない。このため、コアＣ１は、今後は同期タスク実行コアではなくなり、実行状態から非実行状態に切り替わることとなる。
【００９１】
しかしながら、このとき第２記憶部１３２に記憶されている切り替え位相は１２０度となっており、時刻ｔ２１におけるセンサ位相（９０度）とは一致していない。このため、コアＣ１は、時刻ｔ２１の時点においては未だ非実行状態に切り替わらず、引き続き実行状態のままとなる。このため、このため、センサ位相が９０度である時刻ｔ２１において、コアＣ１は同期タスクの処理を開始する。
【００９２】
時刻ｔ２１の後、センサ位相が１２０度になると、コアＣ１は再び第１記憶部１３１のコア番号、及び、第２記憶部１３２の切り替え位相を参照する（時刻ｔ４１）。時刻ｔ４１においては、第１記憶部１３１に記憶されているコア番号は２となっており、コアＣ１を示す数値（１）とは一致しない。
【００９３】
また、第２記憶部１３２の切り替え位相は１２０度となっており、時刻ｔ４１におけるセンサ位相と一致している。このため、コアＣ１は、時刻ｔ４１において実行状態から非実行状態へと切り替わり、時刻ｔ４１では同期タスクの処理を開始しない。
【００９４】
時刻ｔ１１において、コアＣ２は、第１記憶部１３１のコア番号、及び、第２記憶部１３２に記憶されている切り替え位相を参照する。時刻ｔ１１においては、第１記憶部１３１に記憶されているコア番号は１となっており、コアＣ２を示す数値（２）とは一致していない。このため、それまで非実行状態であったコアＣ２は、時刻ｔ１１以降も引き続き非実行状態のままとなる。コアＣ２は、時刻ｔ１１において同期タスクの処理を開始しない。
【００９５】
センサ位相が１２０度になると、コアＣ２は、第１記憶部１３１のコア番号、及び、第２記憶部１３２に記憶されている切り替え位相を再び参照する（時刻ｔ３１）。時刻ｔ３１においては、第１記憶部１３１に記憶されているコア番号は２となっており、コアＣ２を示す数値（２）と一致している。
【００９６】
また、第２記憶部１３２の切り替え位相は１２０度となっており、時刻ｔ３１におけるセンサ位相と一致している。このため、コアＣ２は非実行状態から実行状態へと切り替わり、時刻ｔ３１において同期タスクの処理を開始する。
【００９７】
図３に示される例では、９０度の位相に対応した同期タスクの処理をコアＣ２が開始する時刻ｔ１１と、９０度の位相に対応した同期タスクの処理をコアＣ１が開始する時刻ｔ２１と、の間となる時刻ｔ１６において切り替え処理が実行されている。つまり、図１３を参照しながら説明した比較例の場合と同様のタイミングにおいて、切り替え処理が実行されている。
【００９８】
しかしながら、本実施形態においては、図１３の場合のような処理の抜けは生じておらず、９０度に対応した同期タスクの処理はコアＣ１において開始されている。
【００９９】
図４を参照しながら、電子制御装置１０において実行される処理の具体的な内容について説明する。図４に示される一連の処理は、所定の周期が経過する毎に、マイコン１００のコアＣ０において繰り返し実行されている。尚、当該処理は、コアＣ１又はコアＣ２のいずれかにおいて、同期タスク等の処理と並行して実行されていてもよい。
【０１００】
最初のステップＳ０１では、切り替え処理の必要性が判断される。すなわち、コアＣ１及びコアＣ２において、処理負荷の偏りが生じていないかどうかが判断される。当該判定について、図５を参照しながら説明する。
【０１０１】
図５には、内燃機関の２０制御が電子制御装置１０によって行われているときにおける、一つのコア（コアＣ１等）の処理負荷の例が示されている。具体的には、同期タスク以外の処理が行われた時間ＰＴ１、同期タスクの処理が行われた時間ＰＴ２、及び何ら処理が行われなかった空き時間ＤＴのそれぞれについて、所定時間において各時間が占める割合の例が図示されている。
【０１０２】
図５（Ａ）の例では、時間ＰＴ１と時間ＰＴ２との和、すなわち、コアにおいて何らかの処理が行われていた時間の合計が比較的短くなっており、当該時間が所定時間において占める割合が閾値ＴＨ未満となっている。つまり、当該コアの処理負荷は比較的小さくなっており、当該コアでは、更なる処理を追加して行う余裕がある状態となっている。
【０１０３】
一方、図５（Ｂ）の例では、時間ＰＴ１と時間ＰＴ２との和が、閾値ＴＨを超えている。つまり、当該コアの処理負荷は比較的大きくなっており、当該コアは処理能力の限界に近い状態となっている。
【０１０４】
図４に戻って説明を続ける。ステップＳ０１では、時間ＰＴ１と時間ＰＴ２との和が所定時間において占める割合が、閾値ＴＨを超えている場合にのみ、切り替え処理が必要であると判定される。換言すれば、空き時間ＤＴが所定期間において占める割合が、閾値（１００％から閾値ＴＨを差し引いて得られた値）を下回った場合にのみ、切り替え処理が必要であると判定される。
【０１０５】
一方、時間ＰＴ１と時間ＰＴ２との和が所定時間において占める割合が、閾値ＴＨを超えていない場合には、切り替え処理が不要であると判定される。換言すれば、空き時間ＤＴが所定期間において占める割合が、閾値（１００％から閾値ＴＨを差し引いて得られた値）を下回らない場合には、切り替え処理が不要であると判定される。
【０１０６】
ステップＳ０１において、切り替え処理が不要であると判定された場合には、図４に示される一連の処理を終了する。一方、切り替え処理が必要であると判定された場合には、ステップＳ０２に移行する。ステップＳ０２では、切り替え処理後において同期タスクを実行するコアのコア番号（実行コア番号）が決定される。
【０１０７】
切り替え処理後の新たな実行コア番号を決定する方法について、図６及び図７を参照しながら説明する。図６及び図７には、内燃機関の２０制御が電子制御装置１０によって行われているときにおける、コアＣ１及びコアＣ２のそれぞれの処理負荷の例が示されている。図６及び図７においても、図５と同様に、同期タスク以外の処理が行われた時間ＰＴ１、同期タスクの処理が行われた時間ＰＴ２、何ら処理が行われなかった空き時間ＤＴのそれぞれについて、所定時間において各時間が占める割合の例が図示されている。
【０１０８】
図６及び図７例では、コアＣ１が同期タスク実行コアとなっている。このため、コアＣ１については、時間ＰＴ１、時間ＰＴ２、及び空き時間ＤＴがそれぞれ存在している。一方、コアＣ２は同期タスク実行コアではないので、コアＣ２については、同期タスクの処理が行われた時間ＰＴ２は存在しない。
【０１０９】
ここで、前記所定時間あたりにおける時間ＰＴ２と空き時間ＤＴとの和を「合算時間」と定義する。コアＣ１についての合算時間Ｔ１は、時間ＰＴ２と空き時間ＤＴとの和となる。一方、コアＣ２についての合算時間Ｔ２は、（時間ＰＴ２が存在しないので）空き時間ＤＴと同じである。図６の例では、コアＣ２における合算時間Ｔ２の方が、コアＣ１における合算時間Ｔ１よりも長くなっている。
【０１１０】
図４に戻って説明を続ける。ステップＳ０２では、各コア（Ｃ１、Ｃ２）における合算時間（Ｔ１、Ｔ２）をそれぞれ算出した上で、それらのうち最も長いものに対応するコア（図６の例ではコアＣ２）を示すコア番号が、新たな実行コア番号とされる。
【０１１１】
つまり、切り替え処理後における同期タスク実行コアの空き時間ＤＴが、切り替え処理前における同期タスク実行コアの空き時間ＤＴよりも長くなるように、新たな実行コア番号が決定される。
【０１１２】
尚、図７に示される例のように、合算時間Ｔ１の方が合算時間Ｔ２よりも長いような場合には、最も長い合算時間に対応するコアは、同期タスク実行コアであるコアＣ１ということになる。この場合、実行コア番号は変化せずに１のままとなる。このように、実行コア番号が変化すると、同期タスク実行コアの空き時間ＤＴが短くなってしまうような場合には、実行コア番号は変化しない。
【０１１３】
ステップＳ０２に続くステップＳ０３では、実行コア番号が変化するか否かが判定される。すなわち、ステップＳ０２で決定された実行コア番号が、切り替え処理が行われる前における同期タスク実行コアのコア番号とは異なるか否かが判定される。
【０１１４】
実行コア番号が変化しない場合には、切り替え処理は不要ということであるから、図４に示される一連の処理を終了する。実行コア番号が変化する場合には、ステップＳ０４に移行する。
【０１１５】
ステップＳ０４では、切り替え位相が決定される。切り替え位相は、図４の処理が行われている時点の位相に基づいて決定される。具体的には、当該時点におけるセンサ位相（例えば９０度）の次に回転同期タスクが実行される位相（この場合は１２０度）が、切り替え位相として決定される。
【０１１６】
切り替え位相（Ｐｎ）を上記のように決定するための式の例としては、以下の式（１）が挙げられる。
Ｐｎ＝（（（Ｐｃ／３０）＋１）％２４）×３０・・・（１）
上記の式（１）において、Ｐｃは現時点におけるセンサ位相である。また、「／」は商を算出するための演算子であり、「％」は剰余を算出するための演算子である。
【０１１７】
尚、切り替え位相を決定するための方法は、上記のようなものに限られない。例えば、現時点におけるセンサ位相（例えば９０度）の次の次に回転同期タスクが実行される位相（この場合は１５０度）が、切り替え位相として決定されてもよい。
【０１１８】
ステップＳ０４に続くステップＳ０５では、ステップＳ０４で決定された切り替え位相が第２記憶部１３２に書き込まれる。また、ステップＳ０５に続くステップＳ０６では、ステップＳ０２で決定された実行コア番号が第１記憶部１３１に書き込まれる。
【０１１９】
図８を参照しながら、コアＣ１及びコアＣ２で実行される処理の流れについて説明する。図８に示される処理は、コアＣ１及びコアＣ２のそれぞれにおいて、センサ位相が３０度変化する毎に繰り返し実行される。尚、センサ位相が３０度変化したタイミング（９０度等となったタイミング）と、図８の処理が開始されるタイミングとは、必ずしも一致しない。その理由は、比較例の説明等において既に述べたとおりである。
【０１２０】
最初のステップＳ１１では、第１記憶部１３１に記憶されているコア番号（実行コア番号）を読み出す。続くステップＳ１２では、第２記憶部１３２に記憶されている切り替え位相を読み出す。
【０１２１】
ステップＳ１２に続くステップＳ１３では、読み出された実行コア番号と切り替え位相、及び、現時点におけるコアの状態（実行状態又は非実行状態）に基づいて、今後の状態（実行状態又は非実行状態）を決定し切り替える。
【０１２２】
既に述べたように、本実施形態においては、第１記憶部１３１の実行コア番号が当該コアを示す数値であった場合には、当該コアは、センサ位相が第２記憶部１３２の切り替え位相と一致したときにのみ非実行状態から実行状態へと切り替わる。一方、第１記憶部１３１のコア番号が当該コアを示す数値でなかった場合には、当該コアは、センサ位相が第２記憶部１３２の切り替え位相と一致したときにのみ実行状態から非実行状態へと切り替わる。
【０１２３】
状態の切り替えを以上のように行うための、ステップＳ１３における具体的な決定方法について、図９を参照しながら説明する。図９は、コアＣ１及びコアＣ２のそれぞれについての状態遷移図である。
【０１２４】
コアＣ１を例にとって説明する。例えば、図３における時刻ｔ１６より前のように、初回の切り替え処理が行われるよりも前の初期状態においては、コアＣ１は実行状態（ＳＴ１）となっている。
【０１２５】
センサ位相が変化して同期タスクが実行されるべきタイミングにおいて、実行状態であるコアＣ１は、以下の条件Ｂが満たされているか否かを判定する。
【０１２６】
条件Ｂとは、読み出された実行コア番号が、当該コア（この例ではコアＣ１）を示すコア番号と一致しておらず、且つ、読み出された切り替え位相が、現時点におけるセンサ位相と一致していること、である。
【０１２７】
コアＣ１は、このような条件Ｂが満たされている場合にのみ、実行状態（ＳＴ１）から非実行状態（ＳＴ２）へと切り替わる。例えば、図３の時刻ｔ２１においては、読み出された実行コア番号（２）は、コアＣ１を示すコア番号（１）と一致していないので、条件Ｂの前半部分を満たしている。しかしながら、読み出された切り替え位相（１２０）は、時刻ｔ２１におけるセンサ位相（９０度）と一致していないので、条件Ｂの後半部分を満たしていない。このため、時刻ｔ２１の時点では、実行状態（ＳＴ１）から非実行状態（ＳＴ２）へは切り替わらない。
【０１２８】
コアＣ１が非実行状態となった後、同期タスクが再び実行されるべきタイミングになると、コアＣ１は、以下の条件Ａが満たされているか否かを判定する。
【０１２９】
条件Ａとは、読み出された実行コア番号が、当該コア（この例ではコアＣ１）を示すコア番号と一致しており、且つ、読み出された切り替え位相が、現時点におけるセンサ位相と一致していること、である。
【０１３０】
コアＣ１は、このような条件Ａが満たされている場合にのみ、非実行状態（ＳＴ２）から実行状態（ＳＴ１）へと切り替わる。
【０１３１】
コアＣ２についても上記と同様である。例えば、図２における時刻ｔ３５より前のように、初回の切り替え処理が行われるよりも前の初期状態においては、コアＣ２は非実行状態（ＳＴ２）となっている。
【０１３２】
センサ位相が変化して同期タスクが実行されるべきタイミングにおいて、非実行状態であるコアＣ２は、上記の条件Ａが満たされているか否かを判定する。コアＣ２は、条件Ａが満たされている場合にのみ、非実行状態（ＳＴ２）から実行状態（ＳＴ１）へと切り替わる。例えば、図２の時刻ｔ４０においては、読み出された実行コア番号（２）は、コアＣ２を示すコア番号（２）と一致しているので、条件Ａの前半部分を満たしている。しかしながら、読み出された切り替え位相（１５０）は、時刻ｔ４０におけるセンサ位相（１２０度）と一致していないので、条件Ａの後半部分を満たしていない。このため、時刻ｔ４０の時点では、非実行状態（ＳＴ２）から実行状態（ＳＴ１）へは切り替わらない
【０１３３】
コアＣ２が非実行状態となった後、同期タスクが再び実行されるべきタイミングになると、コアＣ２は条件Ｂが満たされているか否かを判定する。コアＣ２は、条件Ｂが満たされている場合にのみ、実行状態（ＳＴ１）から非実行状態（ＳＴ２）へと切り替わる。
【０１３４】
図８に戻って説明を続ける。ステップＳ１３に続くステップＳ１４では、ステップＳ１３の結果、当該セルが実行状態となったかどうかが判定される。実行状態となっていれば、同期タスクの実行を行う（ステップＳ１５）。実行状態となっていなければ、同期タスクの実行を行うことなく、図８に示される処理を終了する。
【０１３５】
以上、具体例を参照しつつ本発明の実施の形態について説明した。しかし、本発明はこれらの具体例に限定されるものではない。すなわち、これら具体例に、当業者が適宜設計変更を加えたものも、本発明の特徴を備えている限り、本発明の範囲に包含される。例えば、前述した各具体例が備える各要素およびその配置、材料、条件、形状、サイズなどは、例示したものに限定されるわけではなく適宜変更することができる。また、前述した各実施の形態が備える各要素は、技術的に可能な限りにおいて組み合わせることができ、これらを組み合わせたものも本発明の特徴を含む限り本発明の範囲に包含される。
【符号の説明】
【０１３６】
１０：電子制御装置
１１：入力回路
１２：出力回路
２０：内燃機関
１００：マイコン
Ｃ０，Ｃ１，Ｃ２：コア
１３１：第１記憶部
１３２：第２記憶部
【図１】
0006394442.tif 000002
【図２】
0006394442.tif 000003
【図３】
0006394442.tif 000004
【図４】
0006394442.tif 000005
【図５】
0006394442.tif 000006
【図６】
0006394442.tif 000007
【図７】
0006394442.tif 000008
【図８】
0006394442.tif 000009
【図９】
0006394442.tif 000010
【図１０】
0006394442.tif 000011
【図１１】
0006394442.tif 000012
【図１２】
0006394442.tif 000013
【図１３】
0006394442.tif 000014