専用キャッシュメモリを有し、タスクを実行する第1のプロセッサと、専用キャッシュメモリを有し、タスクを実行する第2のプロセッサと、前記第1及び第2のプロセッサによって読み書き可能な共有メモリと、前記第1及び第2のプロセッサが実行するタスクのうち少なくとも周期的に起動される定周期タスクについて、前記第1及び第2のプロセッサの処理負荷に応じて割り振り先を決定するタスク制御手段と、を備え、前記第1及び第2のプロセッサのうち少なくとも一方は、前記定周期タスクのうち予め定められた特定の定周期タスクの組を連続して実行する際に、該特定の定周期タスクの組のうち先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから前記共有メモリにコピーし、前記第1及び第2のプロセッサのうち少なくとも他方は、前記定周期タスクを実行する際に、該実行する定周期タスクの前回の処理が自己により行われなかった場合に、自己の専用キャッシュメモリに代えて前記共有メモリに格納された処理結果を用いて処理を行うように切り替えることを特徴とする、マルチプロセッサ装置。請求項1に記載のマルチプロセッサ装置であって、前記特定の定周期タスクの組は、起動周期と処理所要時間の関係により、後に実行される定周期タスクの処理が終了するまでに、先に実行される定周期タスクが起動することが予め判明している定周期タスクの組である、マルチプロセッサ装置。請求項1又は2に記載のマルチプロセッサ装置であって、前記第1及び第2のプロセッサのうち少なくとも一方は、前記特定の定周期タスクの組を連続して実行する際に、前記特定の定周期タスクの組のうち先に実行される定周期タスクの処理が終了した時点で、該先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから前記共有メモリにコピーすることを特徴とする、マルチプロセッサ装置。請求項1ないし3のいずれか1項に記載のマルチプロセッサ装置であって、前記定周期タスクのうち少なくとも一部は、起動される周期が変動することを特徴とする、マルチプロセッサ装置。請求項1ないし4のいずれか1項に記載のマルチプロセッサ装置であって、前記タスク制御手段は、前記定周期タスクを起動する際に、前記第1及び第2のプロセッサの双方が前記タスクを実行中であり、前記第1及び第2のプロセッサのいずれかが非周期的に起動される非定周期タスクを実行している場合には、該非定周期タスクを一時停止すると共に該非定周期タスクを実行していたプロセッサにより前記定周期タスクを起動する手段である、マルチプロセッサ装置。請求項1ないし5のいずれか1項に記載のマルチプロセッサ装置であって、前記共有メモリは、前記第1及び第2のプロセッサによって読み書き可能な共有キャッシュメモリである、マルチプロセッサ装置。上記ライトスルー方式を採用した場合、書き込みの度に下位メモリにアクセスする必要があるため、処理全体が遅延するという不都合が生じ得る。また、上記ライトバック方式を採用した場合、下位メモリにキャッシュメモリの内容が書き込まれるタイミングが、必ずしもキャッシュ同期が必要なタイミングとなるとは限らないという課題が存在する。この点は、上記特許文献1に記載の装置でも同様である。特に、上記SMP環境下では、タスクの割り振りを制御するRTOSReal‐TimeOperatingSystemが、プロセッサの負荷状態を考慮してタスクを割り振るため、予め定められたキャッシュ同期のタイミングとタスクの割り振りが協調するとは限らない。本発明は、一側面によれば、周期的に起動するタスクを実行するマルチプロセッサ装置において、適切なタイミングでキャッシュ同期を行うことを目的とする。上記目的を達成するための本発明の一態様は、専用キャッシュメモリを有し、タスクを実行する第1のプロセッサと、専用キャッシュメモリを有し、タスクを実行する第2のプロセッサと、前記第1及び第2のプロセッサによって読み書き可能な共有メモリと、前記第1及び第2のプロセッサが実行するタスクのうち少なくとも周期的に起動される定周期タスクについて、前記第1及び第2のプロセッサの処理負荷に応じて割り振り先を決定するタスク制御手段と、を備え、前記第1及び第2のプロセッサのうち少なくとも一方は、前記定周期タスクのうち予め定められた特定の定周期タスクの組を連続して実行する際に、該特定の定周期タスクの組のうち先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから前記共有メモリにコピーし、前記第1及び第2のプロセッサのうち少なくとも他方は、前記定周期タスクを実行する際に、該実行する定周期タスクの前回の処理が自己により行われなかった場合に、自己の専用キャッシュメモリに代えて前記共有メモリに格納された処理結果を用いて処理を行うように切り替えることを特徴とする、マルチプロセッサ装置である。この本発明の一態様によれば、第1及び第2のプロセッサのうち少なくとも一方は、周期的に起動される定周期タスクのうち予め定められた特定の定周期タスクの組を連続して実行する際に、特定の定周期タスクの組のうち先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから共有メモリにコピーし、第1及び第2のプロセッサのうち少なくとも他方は、定周期タスクを実行する際に、実行する定周期タスクの前回の処理が自己により行われなかった場合に、自己の専用キャッシュメモリに代えて共有メモリに格納された処理結果を用いて処理を行うように切り替えるため、周期的に起動するタスクを実行する際に、適切なタイミングでキャッシュ同期を行うことができる。本発明の一態様において、前記特定の定周期タスクの組は、起動周期と処理所要時間の関係により、後に実行される定周期タスクの処理が終了するまでに、先に実行される定周期タスクが起動することが予め判明している定周期タスクの組であるものとしてもよい。また、本発明の一態様において、前記第1及び第2のプロセッサのうち少なくとも一方は、前記特定の定周期タスクの組を連続して実行する際に、前記特定の定周期タスクの組のうち先に実行される定周期タスクの処理が終了した時点で、該先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから前記共有メモリにコピーすることを特徴とするものとしてもよい。また、本発明の一態様において、前記定周期タスクのうち少なくとも一部は、起動される周期が変動することを特徴とするものとしてもよい。また、本発明の一態様において、前記タスク制御手段は、前記定周期タスクを起動する際に、前記第1及び第2のプロセッサの双方が前記タスクを実行中であり、前記第1及び第2のプロセッサのいずれかが非周期的に起動される非定周期タスクを実行している場合には、該非定周期タスクを一時停止すると共に該非定周期タスクを実行していたプロセッサにより前記定周期タスクを起動する手段であるものとしてもよい。また、本発明の一態様において、前記共有メモリは、前記第1及び第2のプロセッサによって読み書き可能な共有キャッシュメモリであるものとしてもよい。本発明は、一側面によれば、周期的に起動するタスクを実行するマルチプロセッサ装置において、適切なタイミングでキャッシュ同期を行うことができる。以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。以下、図面を参照し、本発明の一実施例に係るマルチプロセッサ装置1について説明する。マルチプロセッサ装置1は、例えば複数のプロセッサコアが一チップ上に搭載されたマルチコアプロセッサである。また、これに限らず、マルチプロセッサ装置1は、複数のプロセッサコアが別々のチップ上に搭載されたマルチプロセッサ装置であってもよい。以下の説明では、マルチプロセッサ装置1がマルチコアプロセッサであるものとして説明する。[ハードウエア構成]図1は、本発明の一実施例に係るマルチプロセッサ装置1のシステム構成例である。マルチプロセッサ装置1は、主要な構成として、プロセッサコア10と、プロセッサコア20と、L2キャッシュ30と、プロセッサ間バス40と、バス45に接続されたセンサ群50、ROMReadOnlyMemory52、RAMRandomAccessMemory54、I/O56、DMADirectMemoryAccessコントローラ58と、を備える。プロセッサコア10は、例えば、ALUArithmeticLogicUnit、MUL乗算器、DIV除算器、LSULoadStoreUnitその他を含む演算ユニット、レジスタ、プログラムカウンタ、プロセッサ間バス40を介したプロセッサコア20との通信を制御するローカル割り込みコントローラ等の他、専用キャッシュメモリであるL1レベル1キャッシュ12を備える。また、プロセッサコア10は、ROM52等のプログラムメモリに格納されたプログラムを実行することにより機能する機能ブロックとして、タスク処理部10Aと、キャッシュ制御部10Bと、を備える。キャッシュ制御部10Bは、トリガ管理部10Ba、キャッシュ同期制御部10Bb、参照方向切替制御部10Bc、キャッシュ切替制御部10Bdを含む。これらの機能ブロックの機能については、後述する。同様に、プロセッサコア20は、例えば、ALU、MUL、DIV、LSUその他を含む演算ユニット、レジスタ、プログラムカウンタ、プロセッサ間バス40を介したプロセッサコア10との通信を制御するローカル割り込みコントローラ等の他、専用キャッシュメモリであるL1キャッシュ22を備える。また、プロセッサコア20は、ROM52等のプログラムメモリに格納されたプログラムを実行することにより機能する機能ブロックとして、タスク処理部20Aと、キャッシュ制御部20Bと、を備える。キャッシュ制御部20Bは、トリガ管理部20Ba、参照方向切替制御部20Bc、キャッシュ切替制御部20Bdを含む。これらの機能ブロックの機能については、後述する。L2レベル2キャッシュ30は、プロセッサコア10とプロセッサ20の双方によって読み書き可能な共有キャッシュメモリである。L2キャッシュ30としては、例えばL1キャッシュ12、22よりも低速アクセス且つ大容量のものが採用される。外部バス45に接続されたセンサ群50は、マルチプロセッサ装置1が例えば車両に搭載された制御装置である場合、車速センサ、アクセル開度センサ、ブレーキスイッチ、ステアリング操舵角センサ、エンジンのクランク角センサ、スロットルバルブセンサ等が該当する。これらのセンサ群50は、センサ出力値を例えば所定周期で割り込み信号としてプロセッサコア10、20に出力する。ROM52は、例えばBIOSBasicInput/OutputSystemをはじめとするオペレーティングシステム、各種プログラム等を格納している。RAM54は、マルチプロセッサ装置1のメインメモリとして機能する。I/O56は、入出力装置や他のコンピュータ等との間で情報の送受信を行う際のインターフェースとして機能する。DMAコントローラ58は、バス45を介したデータの直接転送を制御する。[機能ブロック]以下、プロセッサコア10、20の各機能ブロックの機能について説明する。タスク処理部10A、20Aは、マルチプロセッサ装置1が実行するタスクを分担して実行する。タスクは、マルチプロセッサ装置1のRTOS5によって、いずれかのプロセッサコアに割り振られる。RTOS5は、図1ではプロセッサコア10が実行するものとして表現したが、いずれのプロセッサコアが実行してもよく、RTOS5を実行する専用のプロセッサコアが存在してもよい。以下、タスクA、B、C、D、Eをマルチプロセッサ装置1が実行するものとする。タスクA、B、Cは周期的に起動される定周期タスクであり、原則としてプロセッサコア10に割り振られるが、プロセッサコア10が他のタスクを実行している場合には、プロセッサコア20に割り振られるように、RTOS5が制御する。タスクAは、基本的には最も短い周期で高頻度に実行されるタスクである。タスクB、Cは通常時にはタスクAよりも長い周期で実行されるが、状態変化に応じてタスクAと同程度に短い周期で実行されるものとする。一方、タスクD、Eは、例えばユーザーの操作等の不定期なイベントに対応して起動される非定周期タスクである。タスクD、Eは、プロセッサコア20に割り振られる。このようなタスクの性質は、マルチプロセッサ装置1が例えば車両に搭載された制御装置である場合に、現実に実行されるタスクの性質に近いものである。この場合、タスクA、B、Cはエンジン制御のための周期的演算だとすると、タスクAとしては周期的に入力されるアクセル開度等に応じたトルク演算等が該当し、タスクB、Cとしてはエンジン回転数の増加に応じて短い周期となる点火時期制御演算等が該当する。一方、タスクD、Eとしては、エンジンの運転モード変更制御演算、スタータモータ制御演算等が該当する。本実施例のマルチプロセッサ装置1は、このように周期の変動するものと変動しないものを含む定周期タスク、非定周期タスクが混在するような環境において、迅速な処理を実現することができる。図2は、本実施例のマルチプロセッサ装置1によってタスクA、B、C、D、Eが実行される様子を示す図である。図中、細実線矢印はセンサ群50等からの割り込み信号に応じて立ち上がるISRInterruptServiceRoutine;割り込みハンドラを示し、細線矢印はユーザーアクションユーザによる指示を示し、太実線矢印はキャッシュ同期が行われるタイミングを示し、白抜き矢印は参照キャッシュ切替が行われるタイミングを示す。以下、図示する時刻1~5において実行される処理について説明する。時刻t1において、ISRが立ち上がると、RTOS5はタスクAをプロセッサコア10のタスク処理部10Aに実行させる。タスク処理部10Aは、続いてタスクCを実行する。時刻t2において、ユーザーが入出力装置に対して何らかの指示を行うと、RTOS5はタスクD及びタスクEをプロセッサコア20のタスク処理部20Aに実行させる。時刻t3において、ISRが立ち上がると、RTOS5はタスクAをプロセッサコア10のタスク処理部10Aに実行させる。時刻t4において、RTOS5がタスクBをプロセッサコア10に割り振ると、プロセッサコア10のトリガ管理部10Baがこれを検知し例えばタスク処理部10Aから入力されるタスク処理状況を参照する、L1キャッシュ12に格納されたデータをL2キャッシュ30にコピーするように、キャッシュ同期制御部10Bbに指示する以下、係る動作をキャッシュ同期と称する。図3は、L1キャッシュ12に格納されたデータがL2キャッシュ30にコピーされた時点におけるL1キャッシュ12、L2キャッシュ30、L1キャッシュ22に格納されたデータの一部を示す図である。なお、L2キャッシュ30にコピーされたデータのうち直近に書き込まれたデータには、最新のデータであることを示すポインタ等が付されている。時刻t5において、ISRが立ち上がると、RTOS5はタスクAをプロセッサコア20のタスク処理部20Aに実行させる。プロセッサコア10のタスク処理部10Aが他のタスクBを実行しており、処理負荷が高い状態だからである上記参照。RTOS5がタスクAをプロセッサコア20に割り振ると、プロセッサコア20のトリガ管理部20Baがこれを検知し例えばタスク処理部20Aから入力されるタスク処理状況を参照する、当該タスクAの処理において、L1キャッシュ22ではなく、L2キャッシュ30に格納されたデータを用いて処理を行うようにキャッシュ切替制御部20Bdに指示する以下、係る動作をキャッシュ切替と称する。この際に、L2キャッシュ30におけるデータ参照方向がL1キャッシュ22の参照方向と異なっている場合には、参照方向切替制御部20Bcがデータ参照方向の切替をタスク処理部20Aに指示する図3、4の場合は参照方向の相違が無いため、何も処理を行わない。図4は、L1キャッシュ22ではなく、L2キャッシュ30に格納されたデータを用いて処理を行うように切り替えられたことを模式的に示す図である。上記説明したキャッシュ同期、及びキャッシュ切替の指示を行うか否かは、トリガ管理部10Ba、20Baがタスク処理部10A、20Aから入力されるタスク処理状況に、制御条件を適用することによって決定される。トリガ管理部10Ba、20Baは、係る制御条件をテーブルデータとして、専用レジスタ、或いはL1キャッシュ12、22上に保持している。図5は、トリガ管理部10Ba、20Baによって保持される制御条件テーブルの一例である。図5に示す制御条件テーブルは、定周期タスクのうち予め定められた特定の定周期タスクの組本実施例ではA→Bを連続して実行する際に、タスクA、Bのうち先に実行される定周期タスクAに関する処理結果を自己の専用キャッシュメモリからL2キャッシュ30にコピーすることを規定する。例えば図5のテーブルデータの上段には、トリガとしてタスクBの開始が格納され、更に、条件として直前にタスクAが実行完了したことが格納される。そして、トリガと条件の双方を満たす際のアクションとして、キャッシュ同期が格納される。ここで、上記特定の定周期タスクの組は、起動周期と処理所要時間の関係により、後に実行される定周期タスクの処理が終了するまでに、先に実行される定周期タスクが起動することが予め判明している定周期タスクの組である。本実施例では、特定の定周期タスクの組はA→Bのみであるが、他の定周期タスクの組が特定の定周期タスクの組に該当してもよい。また、連続して実行する、とは、間隔を置かずに実行されることのみを指すものではなく、一定の時間間隔以内で連続して実行すると定義してもよい。また、図5に示す制御条件テーブルは、定周期タスクを実行する際に、実行する定周期タスクの前回の処理が他のプロセッサコアで行われたすなわち自己により行われなかった場合に、自己の専用キャッシュメモリに代えてL2キャッシュ30に格納されたデータを用いて処理を行うように切り替えることを規定する。例えば図5のテーブルデータの下段には、トリガとしてタスクAの開始が格納され、条件として前回のタスクAの実行が他のプロセッサコアで行われたことが格納される。そして、トリガと条件の双方を満たす際のアクションとして、キャッシュ切替が格納される。実行する定周期タスクの前回の処理が他のプロセッサコアで行われたことは、例えば、RTOS5によってタスク処理部10A、20Aに割り振られた実行するタスクに連番のタスクIDが付与されており、タスク処理部10A、20Aは実行したタスクのタスクIDをプロセッサコア内に保持し、前回のタスクIDが自プロセッサコア内に保持されていない場合に前回の処理が他のプロセッサコアで行われたと判断することができる。また、RTOS5によって、タスク割り振り時に、前回の処理が他のプロセッサコアで行われたことを示す信号が送信されてもよい。なお、トリガ管理部10Ba、20Baは、このようなテーブルデータを用いて処理を行う手法に代えて、同様の機能を実現可能な関数等を用いて処理を行っても構わない。本実施例のマルチプロセッサ装置1は、時刻1~5において行われた処理を繰り返し実行する。係る制御によって、後に実行される定周期タスクの処理が終了するまでに、先に実行される定周期タスクが起動することが予め判明している定周期タスクの組が連続して実行される場合には、当該組の定周期タスクのうち先に実行される定周期タスクの処理結果がL2キャッシュ30に格納され、プロセッサコアを跨いで定周期タスクが実行される場合には、自己のL1キャッシュ12又は22に代えてL2キャッシュに格納された処理結果を用いて処理を行うことになる。この結果、周期的に起動するタスクを実行するマルチプロセッサ装置において、適切なタイミングでキャッシュ同期を行うことができる。この結果、キャッシュ制御を含む処理を円滑に行うことができる。次に、図2に示される状態から、タスクB、Cの起動周期が短くなった場合の制御態様について説明する。図6は、図2に示される状態から、タスクB、Cの起動周期が短くなった場合に、タスクA、B、C、D、Eが実行される様子を示す図である。本図に示すように、タスクB、Cの起動周期が短くなった場合であっても、図5に示す制御条件テーブルに従うことにより、キャッシュ制御を含む処理を円滑に行うことができる。本実施例のマルチプロセッサ装置1がエンジン制御を行う制御装置に適用された場合、タスクB、Cとしてはエンジン回転数の増加に応じて短い周期となる点火時期制御演算等が該当する。従って、図6に示す状態は、車速が増加してエンジン回転数が増加した状態を示している。図6においても、図2と同様、細実線矢印はセンサ群50等からの割り込み信号に応じて立ち上がるISRを示し、細線矢印はユーザーアクションを示し、太実線矢印はキャッシュ同期が行われるタイミングを示し、白抜き矢印は参照キャッシュ切替が行われるタイミングを示す。以下、図6における処理について部分的に説明する。図6における時刻t6において、RTOS5がタスクBをプロセッサコア20に割り振ると、プロセッサコア20のトリガ管理部20Baがこれを検知し、L1キャッシュ22に格納されたデータをL2キャッシュ30にコピーするように、キャッシュ同期制御部20Bbに指示するキャッシュ同期。図7は、L1キャッシュ22に格納されたデータがL2キャッシュ30にコピーされた時点におけるL1キャッシュ12、L2キャッシュ30、L1キャッシュ22に格納されたデータの一部を示す図である。時刻t7において、ISRが立ち上がると、RTOS5はタスクAをプロセッサコア10のタスク処理部10Aに実行させる。プロセッサコア20のタスク処理部20Aが他のタスクBを実行しており、処理負荷が高い状態だからである。RTOS5がタスクAをプロセッサコア10に割り振ると、プロセッサコア10のトリガ管理部10Baがこれを検知し、当該タスクAの処理において、L1キャッシュ12ではなく、L2キャッシュ30に格納されたデータを用いて処理を行うようにキャッシュ切替制御部10Bdに指示するキャッシュ切替。この際に、L2キャッシュ30におけるデータ参照方向がL1キャッシュ12の参照方向と異なっている場合には、参照方向切替制御部10Bcがデータ参照方向の切替をタスク処理部20Aに指示する図7、8の場合は参照方向の相違が無いため、何も処理を行わない。図8は、L1キャッシュ12ではなく、L2キャッシュ30に格納されたデータを用いて処理を行うように切り替えられたことを模式的に示す図である。[処理フロー]以下、キャッシュ制御部10Ba、20Baが実行する処理の流れについて説明する。図9は、キャッシュ制御部10Ba、20Baが実行する処理の流れを示すフローチャートである。本フローチャートは、例えばマルチプロセッサ1が起動されている間、繰り返し実行される。まず、キャッシュ制御部10Ba、20Baは、タスク処理部10A、20Aから最新のタスク処理状況が入力されるまで待機するS100。最新のタスク処理状況が入力されると、最新のタスク処理状況が制御条件テーブルにおけるトリガを満たすか否かを判定するS102。最新のタスク処理状況が制御条件テーブルにおけるトリガを満たさない場合、キャッシュ制御部10Ba、20Baは、本フローチャートを終了する。最新のタスク処理状況が制御条件テーブルにおけるトリガを満たす場合、キャッシュ制御部10Ba、20Baは、最新のタスク処理状況が制御条件テーブルにおける条件を満たすか否かを判定するS104。最新のタスク処理状況が制御条件テーブルにおける条件を満たさない場合、キャッシュ制御部10Ba、20Baは、本フローチャートを終了する。最新のタスク処理状況が制御条件テーブルにおける条件を満たす場合、キャッシュ制御部10Ba、20Baは、制御条件テーブルにおけるアクションを実行するように、キャッシュ同期制御部10Bb、参照方向切替制御部10Bc、キャッシュ切替制御部10Bd、或いはキャッシュ同期制御部20Bb、参照方向切替制御部20Bc、キャッシュ切替制御部20Bdに指示するS106。[まとめ]以上説明した本実施例のマルチプロセッサ装置1によれば、周期的に起動するタスクを実行する際に、適切なタイミングでキャッシュ同期を行うことができる。なお、上記実施例において、ISRが立ち上がった場合に、いずれのプロセッサコアもタスクを実行中である場合について言及していないが、この場合、例えば定周期タスクを優先して実行するように制御するものとしてよい。すなわち、一方のプロセッサコアがタスクB又はCを実行し、他方のプロセッサコアがタスクD又はEを実行しているタイミングでISRが立ち上がった場合には、タスクD又はEを一時停止してタスクAを実行させる。図10は、タスクEを一時停止してタスクAを実行させる様子を示す図である。本図における時刻t8においてISRが立ち上がると、RTOS5は、プロセッサコア20のタスク処理部20Aが実行しているタスクEを一時停止させ、タスクAをプロセッサコア20のタスク処理部20Aに実行させる。プロセッサコア10のタスク処理部10Aが他のタスクBを実行しており、定周期タスクであるタスクBの方が、優先度が高いからである。図10における時刻t9において、プロセッサコア20のタスク処理部20AがタスクAの処理を完了すると、RTOS5は、一時停止していたタスクEの処理をプロセッサコア20のタスク処理部20Aに再開させる。以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。