プログラムカウンタの示す値に従ってプログラムを実行する第1のプロセッサコアと、前記第1のプロセッサコアが正常に作動しているか否かを監視する第2のプロセッサコアと、前記第2のプロセッサコアにより参照可能なデータテーブルと、を備え、前記第1のプロセッサコアは、所定のチェックタイミングにおいて、少なくとも前記プログラムカウンタの示す値を前記第2のプロセッサコアに通知し、前記第2のプロセッサコアは、前記第1のプロセッサコアから通知されたプログラムカウンタの示す値と前記データテーブルに格納された値を比較して、前記第1のプロセッサコアが正常に作動しているか否かを監視することを特徴とする、マルチコアプロセッサ。請求項1に記載のマルチコアプロセッサであって、前記第1のプロセッサコアが前記プログラムカウンタの示す値を前記第2のプロセッサコアに通知するタイミングは、前記第1のプロセッサコアが実行するプログラム内で規定されていることを特徴とする、マルチコアプロセッサ。請求項1に記載のマルチコアプロセッサであって、定期的にタイミング信号を前記第1のプロセッサコアに通知するタイミング通知手段を備え、前記第1のプロセッサコアは、前記報知手段によりタイミング信号が通知されたときに、前記プログラムカウンタの示す値を前記第2のプロセッサコアに通知することを特徴とする、マルチコアプロセッサ。請求項1ないし3のいずれか1項に記載のマルチコアプロセッサであって、前記第2のプロセッサコアは、前記データテーブルに格納された値のうち特定の値を現在値として認識し、前記第1のプロセッサコアから通知されたプログラムカウンタの示す値と前記現在値を比較して、前記第1のプロセッサコアが正常に作動しているか否かを監視することを特徴とする、マルチコアプロセッサ。請求項1ないし3のいずれか1項に記載のマルチコアプロセッサであって、前記第1のプロセッサコアは、前記所定のチェックタイミングにおいて、前記プログラムカウンタの示す値に加えて前記データテーブルにおけるアドレスを指定するデータを前記第2のプロセッサコアに通知し、前記第2のプロセッサコアは、前記第1のプロセッサコアから通知されたプログラムカウンタの示す値と、前記第1のプロセッサコアから通知されたデータにより特定される前記データテーブルのアドレスに格納された値を比較して、前記第1のプロセッサコアが正常に作動しているか否かを監視することを特徴とする、マルチコアプロセッサ。請求項1ないし5のいずれか1項に記載のマルチコアプロセッサであって、前記第1のプロセッサコアが実行するプログラムは、複数のタスクに分類され、前記タスク毎に複数の前記データテーブルを備え、前記第2のプロセッサコアは、前記第1のプロセッサコアから通知されたプログラムカウンタの示す値と、前記複数のデータテーブルのうち前記第1のプロセッサコアが実行しているタスクに応じたデータテーブルに格納された値を比較して、前記第1のプロセッサコアが正常に作動しているか否かを監視することを特徴とする、マルチコアプロセッサ。プログラムカウンタの示す値に従ってプログラムを実行する第1のプロセッサコアと、前記第1のプロセッサコアが正常に作動しているか否かを監視する第2のプロセッサコアと、を備え、前記第1のプロセッサコアは、所定のチェックタイミングにおいて、少なくとも前記プログラムカウンタの示す値を前記第2のプロセッサコアに通知し、前記第2のプロセッサコアは、前記第1のプロセッサコアから通知されたプログラムカウンタの示す値に基づいて、前記第1のプロセッサコアが正常に作動しているか否かを監視することを特徴とする、マルチコアプロセッサ。しかしながら、上記信頼性を向上させるための技術においては、比較のためにのみ同じ処理を行うという冗長な構成を有しているため、CPUリソースを多く消費し、コストに見合った性能をプロセッサが発揮できないという課題が存在する。本発明はこのような課題を解決するためのものであり、信頼性を維持しつつ、各コアが十分な性能を発揮することが可能なマルチコアプロセッサを提供することを、主たる目的とする。上記目的を達成するための本発明の第1の態様は、プログラムカウンタの示す値に従ってプログラムを実行する第1のプロセッサコアと、前記第1のプロセッサコアが正常に作動しているか否かを監視する第2のプロセッサコアと、前記第2のプロセッサコアにより参照可能なデータテーブルと、を備え、前記第1のプロセッサコアは、所定のチェックタイミングにおいて、少なくとも前記プログラムカウンタの示す値を前記第2のプロセッサコアに通知し、前記第2のプロセッサコアは、前記第1のプロセッサコアから通知されたプログラムカウンタの示す値と前記データテーブルに格納された値を比較して、前記第1のプロセッサコアが正常に作動しているか否かを監視することを特徴とする、マルチコアプロセッサである。この本発明の第1の態様によれば、第1のプロセッサコアは、所定のチェックタイミングにおいて、少なくともプログラムカウンタの示す値を第2のプロセッサコアに通知し、第2のプロセッサコアは、第1のプロセッサコアから通知されたプログラムカウンタの示す値と前記データテーブルに格納された値を比較して、第1のプロセッサコアが正常に作動しているか否かを監視するため、信頼性を維持しつつ、各コアが十分な性能を発揮することが可能なマルチコアプロセッサを提供することができる。本発明の第1の態様において、前記第1のプロセッサコアが前記プログラムカウンタの示す値を前記第2のプロセッサコアに通知するタイミングは、前記第1のプロセッサコアが実行するプログラム内で規定されていることを特徴とするものとしてもよい。また、本発明の第1の態様において、定期的にタイミング信号を前記第1のプロセッサコアに通知するタイミング通知手段を備え、前記第1のプロセッサコアは、前記報知手段によりタイミング信号が通知されたときに、前記プログラムカウンタの示す値を前記第2のプロセッサコアに通知することを特徴とするものとしてもよい。また、本発明の第1の態様において、前記第2のプロセッサコアは、前記データテーブルに格納された値のうち特定の値を現在値として認識し、前記第1のプロセッサコアから通知されたプログラムカウンタの示す値と前記現在値を比較して、前記第1のプロセッサコアが正常に作動しているか否かを監視することを特徴とするものとしてもよい。また、本発明の一態様において、前記第1のプロセッサコアは、前記所定のチェックタイミングにおいて、前記プログラムカウンタの示す値に加えて前記データテーブルにおけるアドレスを指定するデータを前記第2のプロセッサコアに通知し、前記第2のプロセッサコアは、前記第1のプロセッサコアから通知されたプログラムカウンタの示す値と、前記第1のプロセッサコアから通知されたデータにより特定される前記データテーブルのアドレスに格納された値を比較して、前記第1のプロセッサコアが正常に作動しているか否かを監視することを特徴とするものとしてもよい。また、本発明の第1の態様において、前記第1のプロセッサコアが実行するプログラムは、複数のタスクに分類され、前記タスク毎に複数の前記データテーブルを備え、前記第2のプロセッサコアは、前記第1のプロセッサコアから通知されたプログラムカウンタの示す値と、前記複数のデータテーブルのうち前記第1のプロセッサコアが実行しているタスクに応じたデータテーブルに格納された値を比較して、前記第1のプロセッサコアが正常に作動しているか否かを監視することを特徴とするものとしてもよい。本発明の第2の態様は、プログラムカウンタの示す値に従ってプログラムを実行する第1のプロセッサコアと、前記第1のプロセッサコアが正常に作動しているか否かを監視する第2のプロセッサコアと、を備え、前記第1のプロセッサコアは、所定のチェックタイミングにおいて、少なくとも前記プログラムカウンタの示す値を前記第2のプロセッサコアに通知し、前記第2のプロセッサコアは、前記第1のプロセッサコアから通知されたプログラムカウンタの示す値に基づいて、前記第1のプロセッサコアが正常に作動しているか否かを監視することを特徴とする、マルチコアプロセッサである。本発明の第2の態様によれば、信頼性を維持しつつ、各コアが十分な性能を発揮することが可能なマルチコアプロセッサを提供することができる。本発明によれば、信頼性を維持しつつ、各コアが十分な性能を発揮することが可能なマルチコアプロセッサを提供することができる。以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。以下、図面を参照し、本発明の一実施例に係るマルチコアプロセッサ1について説明する。[構成]図1は、本発明の第1実施例に係るマルチコアプロセッサ1のシステム構成例である。マルチコアプロセッサ1は、主要な構成として、プログラムメモリ10と、メインコア20と、サブコア30と、共有メモリ40と、を備える。なお、本実施例ではプロセッサコアの個数を2個としたが、2以上の如何なる個数のプロセッサコアを備えてもよい。プログラムメモリ10は、例えば、ROMReadOnlyMemory、フラッシュROM、EEPROMElectricallyErasableandProgrammableReadOnlyMemory等の不揮発性メモリである。プログラムメモリ10は、メインコア20及びサブコア30が実行するプログラムを格納している。そして、プログラムメモリ10は、メインコア20又はサブコア30から入力されるアドレスに格納された命令を、命令フェッチバス15を介してメインコア20又はサブコア30に出力する。メインコア20は、例えば、ALUArithmeticLogicUnit、MUL乗算器、DIV除算器、LSULoadStoreUnitその他を含む演算ユニット21と、レジスタやキャッシュメモリ等の内部メモリ22と、プログラムカウンタ23と、ローカル割り込みコントローラ24と、を備えるコンピュータユニットである。同様に、サブコア30は、例えば、演算ユニット31と、内部メモリ32と、プログラムカウンタ33と、ローカル割り込みコントローラ34と、を備えるコンピュータユニットである。メモリ40は、例えばRAMRandomAccessMemoryやキャッシュメモリであり、データバス45を介してメインコア20及びサブコア30との間でデータの送受信を行うことができる。メモリ40には、メインコア20とサブコア30の間のデータ送受信に用いられる共有領域41と、メインコア20とサブコア30に領域分割されてアクセスが各コアに制限される専用領域42と、監視用プログラムカウンタテーブル43と、が設定される。監視用プログラムカウンタテーブル43は、例えばマルチコアプロセッサ1の起動時にROM等から読み出されてメモリ40に書き込まれたものが利用される。なお、監視用プログラムカウンタテーブル43は、内部メモリ32に設定されてもよい。監視用プログラムカウンタテーブル43の内容については後述する。[機能]図2は、本実施例のマルチコアプロセッサ1が作動している状態を模式的に示す図である。本図では、図1に示した構成要素のうち一部を省略している。メインコア20及びサブコア30は、それぞれ自己が実行すべきタスク20A、20B、...、30A、30B、...を実行している。タスクとは、一定のまとまりを有する命令の集合である。例えば本実施例のマルチコアプロセッサ1が車両に搭載されてエンジンを制御する制御装置である場合、タスク20Aがエンジンの点火時期制御、タスク20Bがスロットル開度制御、タスク30Aがスターターモータ制御、タスク30Bがエンジン始動認証制御、等のように機能分割される。また、サブコア30は、ローカル割り込みコントローラ34によって起動されるメインコア監視タスク30Zを実行する。メインコア20は、上記のようにタスク20A、20Bを実行している中で、所定のチェックタイミングが到来すると、プログラムカウンタ23の示す値PCMainをサブコア30に通知する。以下、係る通知をチェック用通知と称する。ここで、所定のチェックタイミングは、タスク20A、20Bを構成する命令に埋め込まれている。すなわち、所定のチェックタイミングは、メインコア20が実行するプログラム内で規定されている。チェック用通知には、コア間割り込みを使用する。すなわち、ローカル割り込みコントローラ24が専用線等を介してローカル割り込みコントローラ34に情報送信することにより、チェック用通知が行われる。ローカル割り込みコントローラ34は、チェック用通知を受領すると、メインコア監視タスク30Zを起床させると共に、チェック用通知に含まれるプログラムカウンタ23の示す値PCMainを内部メモリ32に書き込む。メインコア監視タスク30Zは、内部メモリ32に書き込まれたプログラムカウンタ23の示す値PCMainと、監視用プログラムカウンタテーブル43に格納された値とを比較することにより、メインコア20が正常に作動しているか否かを判定する。図2における破線矢印は、チェック用通知からメインコア監視タスク30Zが判定を行うまでの情報通信の流れを示している。すなわち、監視用プログラムカウンタテーブル43に格納された値は、チェック用通知によりメインコア20から送られてくるであろうプログラムカウンタ23の示す値を、時系列で列挙したものである。このような値は、後述するように、メインコア20の実行するプログラムのコンパイル時等に把握され、監視用プログラムカウンタテーブル43上に設定される。なお、監視用プログラムカウンタテーブル43は、メインコア20が実行するプログラムのソースコードをコンパイルする際に決定されるプログラムカウンタ情報に基づいて生成される。また、メインコア監視タスク30Zは、監視用プログラムカウンタテーブル43に格納された値のうち特定の値を、現在値として認識するためのポインタ制御を行う。ポインタ制御は、例えばメモリ43又は内部メモリ32上に、監視用プログラムカウンタテーブル43における特定のアドレス値現在アドレス値TBRefを記憶させておき、チェック用通知を受領する毎に、基準アドレスずつアドレス値が増加するように、現在アドレス値TBRefを更新する。そして、メインコア20が正常に作動しているか否かを判定する際には、メモリ43又は内部メモリ32に格納された現在アドレス値TBRefが示す監視用プログラムカウンタテーブル43上のアドレスに書き込まれた値PCRefを読み込んで判定基準とする。メインコア監視タスク30Zは、内部メモリ32に書き込まれたプログラムカウンタ23の示す値PCMainと、監視用プログラムカウンタテーブル43に格納された値PCRefが一致する場合にメインコア20が正常に作動していると判定し、一致しない場合にメインコア20が正常に作動していないと判定する。メインコア監視タスク30Zは、メインコア20が正常に作動していないと判定すると、コントロールフローエラーが生じた旨をメインコア20に通知する。具体的には、ローカル割り込みコントローラ34に、メインコア20への割り込み通知を行うように指示する。図2における実線矢印は、メインコア20が正常に作動していないと判定した後に生じる情報通信の流れを示している。図3は、メインコア監視タスク30Zの処理の流れを示すフローチャートである。本フローは、ローカル割り込みコントローラ34からの起床指示によって開始される。まず、サブコア30は、メインコア監視タスク30Zにおいて、内部メモリ32に書き込まれたプログラムカウンタ23の示す値PCMainを読み込むS100。次に、サブコア30は、監視用プログラムカウンタテーブル43に格納された値のうち、メモリ43又は内部メモリ32上に記憶された現在アドレス値TBRefに格納された値PCRefを読み込むS102。次に、サブコア30は、PCMainとPCRefが一致しているか否かを判定するS104。PCMainとPCRefが一致していない場合は、ローカル割り込みコントローラ34に、メインコア20への割り込み通知を行うように指示するS106。そして、現在アドレス値を基準アドレス分増加させS108、本フローを終了する。一方、PCMainとPCRefが一致している場合は、現在アドレス値TBRefを基準アドレス分増加させS108、本フローを終了する。図4は、メインコア監視タスク30Zによる処理の流れを模式的に示す図である。このような制御によって、監視用プログラムカウンタテーブル43に格納された値のうち特定の値が現在アドレス値TBRefとして認識され、現在アドレス値TBRefの示すアドレスに格納されたPCRefが読み出されて判定に用いられる。なお、S104における判定は、例えばPCRefがPCMainの下三桁のみ特定しているような場合も考えられるので、一致しているか否かを判定するのではなく、整合しているか否かを判定すると読み替えてもよい。係る制御によって、プログラムカウンタ値を基準値と比較するという簡易な演算のみによってメインコア20が正常に作動しているかどうかを判定することができる。このため、サブコア30は、メインコア監視タスク30Z以外にも自己に割り当てられたタスクを実行することができる。従って、信頼性を維持しつつ、各コアが十分な性能を発揮することができる。[従来構成との比較]ここで、従来行われていたロックステップとの比較について説明する。図5は、ロックステップによりメインコアの監視が行われる様子を模式的に示す図である。図示するように、ロックステップを採用したマルチコアプロセッサでは、サブコアにおいてメインコアと同じプログラムを実行しており、全ての演算結果を比較していた。このため、サブコアはメインコアの監視以外のタスクを実行することができず、コストに見合った性能をプロセッサが発揮できないことになっていた。これに対し、図6は、本実施例のマルチコアプロセッサ1によりメインコア20の監視が行われる様子を模式的に示す図である。図示するように、サブコア30は、プログラムカウンタ値を基準値と比較するという簡易な演算のみによってメインコア20が正常に作動しているかどうかを判定することができる。このため、サブコア30は、メインコア監視タスク30Z以外にも自己に割り当てられたタスクを実行することができる。[まとめ]以上説明した本実施例のマルチコアプロセッサ1によれば、信頼性を維持しつつ、各コアが十分な性能を発揮することができる。[変形等]以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。例えば、現在アドレス値TBRefを特定するための制御がサブコア30により行われるものとしたが、メインコア20からのチェック用通知において、PCMainと現在アドレス値TBRefが一緒にサブコア30に送られて来るものとしてもよい。また、監視用プログラムカウンタテーブル43は、単独のものではなく、図7に示すように、メインコア20が実行するタスク毎に複数個設定されてもよい。この場合、サブコア30は、メインコア20がタスクを起床する度に、使用される監視用プログラムカウンタテーブル43を特定する処理を行う。図7は、本発明の他の実施例に係るマルチコアプロセッサのシステム構成例である。また、チェック用通知を行う所定のチェックタイミングは、メインコア20が実行するプログラム内で規定されているものとしたが、図8に示すように、定期的にタイミング信号をメインコア20或いはメインコア20の実行するタスクに通知するタイミング通知手段25を備えるものとしてもよい。タイミング通知手段は、ハードウエア手段であってもよいし、ソフトウエア手段であってもよい。図8は、発明の他の実施例に係るマルチコアプロセッサのシステム構成例である。また、チェック用通知において通知されるPCMainが規則的に変動することを前提とし、監視用プログラムカウンタテーブル43を省略した構成としてもよい。この場合、PCMainこの場合、通知されたPCRefを前回値と比較した差分を用いて、メインコア20が正常に作動しているかどうかを判定する。