(57)【要約】【課題】プロセッサコアのいずれかに異常が発生した際に行われる代替処理の信頼性を向上させること。【解決手段】複数の機能を実行可能な複数のプロセッサコアと、前記複数の機能と前記複数のプロセッサコアとの対応関係を決定すると共に、前記複数のプロセッサコアのうち少なくとも一部を、機能を実行しない待機状態とされる予備コアに指定する制御手段と、を備え、前記制御手段は、所定の切り替えタイミングが到来する度に、前記予備コアの指定を変更することを特徴とする、マルチコア・プロセッサ。【選択図】図１
2012226409.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能を実行可能な複数のプロセッサコアと、
前記複数の機能と前記複数のプロセッサコアとの対応関係を決定すると共に、前記複数のプロセッサコアのうち少なくとも一部を、機能を実行しない待機状態とされる予備コアに指定する制御手段と、
を備え、
前記制御手段は、所定の切り替えタイミングが到来する度に、前記予備コアの指定を変更することを特徴とする、
マルチコア・プロセッサ。
【請求項２】
請求項１に記載のマルチコア・プロセッサであって、
前記制御手段は、前記複数の機能と前記複数のプロセッサコアとの対応関係、及び前記複数のプロセッサコアにおける前記予備コアの指定を、循環的に変更する手段である、
マルチコア・プロセッサ。
【請求項３】
請求項２に記載のマルチコア・プロセッサであって、
前記制御手段は、前記予備コアに指定されていないプロセッサコアに異常が生じた際には、該異常が生じたプロセッサコアの実行していた機能を、前記予備コアに代替させる手段である、
マルチコア・プロセッサ。
【請求項４】
請求項１に記載のマルチコア・プロセッサであって、
前記制御手段は、前記複数のプロセッサコアのうち特定プロセッサコアが前記複数の機能を順に実行し、該特定プロセッサコア以外の非特定プロセッサコアが前記複数の機能のうち自己に割り当てられた特定の機能のみを実行するように制御する手段である、
マルチコア・プロセッサ。
【請求項５】
請求項４に記載のマルチコア・プロセッサであって、
前記制御手段は、前記所定の切り替えタイミングにおいて前記特定プロセッサコアに機能が移動した非特定プロセッサコアを、前記予備コアに指定する手段である、
マルチコア・プロセッサ。
【請求項６】
請求項４又は５に記載のマルチコア・プロセッサであって、
前記制御手段は、前記予備コアに指定されていないプロセッサコアに異常が生じた際には、該異常が生じたプロセッサコアの実行していた機能を、前記特定プロセッサコアに代替させる手段である、
マルチコア・プロセッサ。
【請求項７】
請求項６に記載のマルチコア・プロセッサであって、
前記制御手段は、前記予備コアに指定されていないプロセッサコアに異常が生じた際には、前記特定プロセッサコアが実行していた機能を、前記予備コアに指定されていた非特定プロセッサコアに割り当てる手段である、
マルチコア・プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサコアを有し、それぞれのプロセッサコアが独立した機能を実行可能なマルチコア・プロセッサに関する。
【背景技術】
【０００２】
従来、一パッケージ内に複数のプロセッサコア（ＣＰＵコア）を封入して各プロセッサコアが並行・独立して処理を行うことが可能なマルチコア・プロセッサが知られている。マルチコア・プロセッサは、並行処理が可能であるために、例えば、車載制御装置の分野において、異なる機能を有する複数の制御装置を統合して一の制御装置にするのに用いることが期待されている。
【０００３】
マルチコア・プロセッサでは、いずれかのプロセッサコアに異常が生じた場合に、他のプロセッサコアが代替処理を行うことができるという利点がある。
【０００４】
特許文献１には、複数のプロセッサコアを有するプロセッサにおいて、プロセッサコアを動作コア群と予備コア群に分けておき、動作コアが故障した場合に予備コアで代替処理を行うことについて記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００９−５２４８６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の特許文献１に記載の技術では、動作コアの故障時に、予備コアが代替処理を正常に行うことができることの信頼性が小さい。
【０００７】
予備コアが長時間の間、何も処理を行わない状態が継続する可能性があり、その間における経年劣化等により、代替処理が正常に行われない場合があるからである。また、予備コアが、故障した動作コアの機能を過去に全く実行していない可能性も高く、これも信頼性を低下させる要因となる。
【０００８】
本発明はこのような課題を解決するためのものであり、プロセッサコアのいずれかに異常が発生した際に行われる代替処理の信頼性を向上させることが可能なマルチコア・プロセッサを提供することを、主たる目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための本発明の一態様は、
複数の機能を実行可能な複数のプロセッサコアと、
前記複数の機能と前記複数のプロセッサコアとの対応関係を決定すると共に、前記複数のプロセッサコアのうち少なくとも一部を、機能を実行しない待機状態とされる予備コアに指定する制御手段と、
を備え、
前記制御手段は、所定の切り替えタイミングが到来する度に、前記予備コアの指定を変更することを特徴とする、
マルチコア・プロセッサである。
【００１０】
この本発明の一態様によれば、所定の切り替えタイミングが到来する度に、予備コアの指定を変更するため、予備コアとして待機しているプロセッサコアが正常に動作可能であるという信頼性が高くなる。また、異常が発生したプロセッサコアの代替処理を行う際に、当該処理を過去に行っている可能性も高くなる。このため、プロセッサコアのいずれかに異常が発生した際に行われる代替処理の信頼性を向上させることができる。
【００１１】
本発明の一態様において、
前記制御手段は、前記複数の機能と前記複数のプロセッサコアとの対応関係、及び前記複数のプロセッサコアにおける前記予備コアの指定を、循環的に変更する手段であるものとしてもよい。
【００１２】
この場合、
前記制御手段は、前記予備コアに指定されていないプロセッサコアに異常が生じた際には、該異常が生じたプロセッサコアの実行していた機能を、前記予備コアに代替させる手段であるものとしてもよい。
【００１３】
また、本発明の一態様において、
前記制御手段は、前記複数のプロセッサコアのうち特定プロセッサコアが前記複数の機能を順に実行し、該特定プロセッサコア以外の非特定プロセッサコアが前記複数の機能のうち自己に割り当てられた特定の機能のみを実行するように制御する手段であるものとしてもよい。
【００１４】
この場合、
前記制御手段は、前記所定の切り替えタイミングにおいて前記特定プロセッサコアに機能が移動した非特定プロセッサコアを、前記予備コアに指定する手段であるものとしてもよい。
【００１５】
特定プロセッサコアを指定する態様の本発明の一態様において、
前記制御手段は、前記予備コアに指定されていないプロセッサコアに異常が生じた際には、該異常が生じたプロセッサコアの実行していた機能を、前記特定プロセッサコアに代替させる手段であるものとしてもよい。
【００１６】
この場合、
前記制御手段は、前記予備コアに指定されていないプロセッサコアに異常が生じた際には、前記特定プロセッサコアが実行していた機能を、前記予備コアに指定されていた非特定プロセッサコアに割り当てる手段であるものとしてもよい。
【発明の効果】
【００１７】
本発明によれば、プロセッサコアのいずれかに異常が発生した際に行われる代替処理の信頼性を向上させることが可能なマルチコア・プロセッサを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１実施例に係るマルチコア・プロセッサ１のシステム構成例である。
【図２】ある時点で複数の機能がプロセッサコア２０＃０〜２０＃７に割り当てられた状態を示す図である。
【図３】図２に示す状態において所定の切り替えタイミングが到来した場合における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。
【図４】図３に示す状態から所定の切り替えタイミングが４回到来した後における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。
【図５】図４に示す状態において、プロセッサコア２０＃７に異常が発生した後における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。
【図６】第１実施例に係るプロセッサコア２０＃１により実行されるマスター制御機能の処理の流れを示すフローチャートである。
【図７】従来構成のマルチコア・プロセッサの動作を説明するための説明図である。
【図８】図２に示す状態において所定の切り替えタイミングが到来した場合における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。
【図９】図７に示す状態から所定の切り替えタイミングが４回到来した後における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。
【図１０】図８に示す状態において、プロセッサコア２０＃３に異常が発生した後における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。
【図１１】第２実施例に係るプロセッサコア２０＃１により実行されるマスター制御機能の処理の流れを示すフローチャートである。
【図１２】本発明の他の実施態様を説明するための説明図である。
【図１３】本発明の他の実施態様を説明するための説明図である。
【発明を実施するための形態】
【００１９】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【００２０】
本発明のマルチコア・プロセッサは、車両に搭載され、車載機器制御のための種々の演算処理を行う車載制御装置に好適に適用される。特に、複数の機能が統合された車載制御装置のように、複数の機能を同時実行する装置に好適に適用される。なお、これに限らず、航空機や船舶等の他の移動体、プラント等の構造物を制御する制御装置、家庭用のパーソナルコンピュータ、サーバ装置にも適用されることができる。
【実施例】
【００２１】
＜第１実施例＞
以下、図面を参照し、本発明の第１実施例に係るマルチコア・プロセッサ１について説明する。
【００２２】
［構成］
図１は、本発明の第１実施例に係るマルチコア・プロセッサ１のシステム構成例である。マルチコア・プロセッサ１は、主要な構成として、プログラムメモリ１０と、プロセッサコア２０＃０〜２０＃７と、ワーキングメモリ３０と、Ｉ／Ｏ手段４０と、を備える。なお、本実施例ではプロセッサコアの個数を８個としたが、２以上の如何なる個数のプロセッサコアを備えてもよい。以下、プロセッサコア２０＃０〜２０＃７の「＃」以降の番号を、ＩＤ番号と称する。
【００２３】
プログラムメモリ１０は、例えば、ＲＯＭ（Read  Only  Memory）、フラッシュＲＯＭ、ＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）等の不揮発性メモリである。プログラムメモリ１０は、プロセッサコア２０＃０〜２０＃７のそれぞれが実行可能な複数の機能（本実施例では、機能Ａ、機能Ｂ、機能Ｃ、機能Ｄ、機能Ｅ、機能Ｆ、機能Ｇ、及びマスター制御機能とする）に相当するプログラム（命令列）を格納している。そして、プログラムメモリ１０は、プロセッサコア２０＃０〜２０＃７のそれぞれから入力されるアドレスに格納された命令を、命令フェッチバス１５を介してプロセッサコア２０＃０〜２０＃７に出力する。
【００２４】
プロセッサコア２０＃０〜２０＃７は、例えば、プログラムカウンタ、命令フェッチユニット、命令キュー、命令発行部、汎用レジスタ、ＡＬＵ（Arithmetic  Logic  Unit）、ＭＵＬ（乗算器）、ＤＩＶ（除算器）、ＬＳＵ（Load  Store  Unit）その他の演算器を備えるコンピュータ単位である。
【００２５】
ワーキングメモリ３０は、例えばＲＡＭ（Random  Access  Memory）であり、データバス３５を介してプロセッサコア２０＃０〜２０＃７との間でデータの送受信を行うことができる。
【００２６】
Ｉ／Ｏ手段４０は、マルチコア・プロセッサ１の外部装置との送受信を行う。外部装置とは、マルチコア・プロセッサ１が車載制御装置である場合は、センサーの出力値をデジタル値に変換して出力するＡ／Ｄ変換器等である。係るＡ／Ｄ変換器は、所定期間毎にセンサーの出力値をデジタル変換し、マルチコア・プロセッサ１の該当するプロセッサコアに割り込み通知を行う。プロセッサコアでは、割り込み通知を検知することによって、自己が実行する機能のうち必要な処理を行う。
【００２７】
［対応関係の決定、及び予備コアの指定］
図２は、ある時点で複数の機能がプロセッサコア２０＃０〜２０＃７に割り当てられた状態を示す図である。この時点では、プロセッサコア２０＃０が予備コアに指定され、プロセッサコア２０＃１に機能Ａ及びマスター制御機能が割り当てられ、プロセッサコア２０＃２に機能Ｂが割り当てられ、プロセッサコア２０＃３に機能Ｃが割り当てられ、プロセッサコア２０＃４に機能Ｄが割り当てられ、プロセッサコア２０＃５に機能Ｅが割り当てられ、プロセッサコア２０＃６に機能Ｆが割り当てられ、プロセッサコア２０＃７に機能Ｇが割り当てられている。
【００２８】
ここで、予備コアとは、特定の機能を実行せず、他のコアの代替処理を行うことが可能な待機状態に維持されたプロセッサコアをいう。
【００２９】
マスター制御機能が割り当てられたプロセッサコア２０＃１は、所定の切り替えタイミングが到来する度に、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を変更する。
【００３０】
なお、「所定の切り替えタイミング」は、マルチコア・プロセッサ１が実行する機能に応じて任意に定めて良いが、マルチコア・プロセッサ１が車載制御装置である場合は、例えばＩＧオン、ＡＣＣオン等に同期したタイミングとすることが考えられる。また、これに限らず、所定時間毎、１日に１回、１週間に１回等、任意に定めて良い。
【００３１】
また、本実施例の場合、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を、以下に説明するように「循環的に」変更する。本発明において「循環的に」変更するとは、以下に例示するように、各機能、及び予備コアの指定が、ＩＤ番号を１ずつ（２ずつ、３ずつ等であってもよい）繰り上げて（又は繰り下げて）割り当てられ、コア２０＃７からはコア２０＃０に戻るように変更することをいう。
【００３２】
予備コア  ：  プロセッサコア２０＃０→２０＃１→２０＃２→２０＃３→２０＃４→２０＃５→２０＃６→２０＃７→２０＃０→…
機能Ａ    ：  プロセッサコア２０＃１→２０＃２→２０＃３→２０＃４→２０＃５→２０＃６→２０＃７→２０＃０→２０＃１→…
機能Ｂ    ：  プロセッサコア２０＃２→２０＃３→２０＃４→２０＃５→２０＃６→２０＃７→２０＃０→２０＃１→２０＃２→…
機能Ｃ    ：  プロセッサコア２０＃３→２０＃４→２０＃５→２０＃６→２０＃７→２０＃０→２０＃１→２０＃２→２０＃３→…
（以下省略）
【００３３】
上記の変更ルールは、以下のようにも表現できる。なお、番号Ｎは、予備コアに指定されているプロセッサコアのＩＤ番号を示し、番号ｉは、ある機能が割り当てられているプロセッサコアのＩＤ番号を示し（従って、７種類存在する）、「mod」は、剰余を示している。
【００３４】
予備コア指定の変更  ：  Ｎ→（Ｎ＋１）mod８
機能割り当ての変更（Ａ〜Ｇについて）  ：  ｉ→（ｉ＋１）mod８
【００３５】
図３は、図２に示す状態において所定の切り替えタイミングが到来した場合における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。
【００３６】
また、図４は、図３に示す状態から所定の切り替えタイミングが４回到来した後における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。
【００３７】
［異常発生時の処理］
このように、機能や予備コアの割り当てが循環的に行われる中で、いずれかのプロセッサコアに異常が発生すると、マスター制御機能が割り当てられているプロセッサコア２０＃１は、まず異常が発生したプロセッサコアを停止させる。
【００３８】
そして、プロセッサコア２０＃１は、予備コアに指定されているプロセッサコアに当該異常が発生したプロセッサコアの処理を代替させる。
【００３９】
プロセッサコアに異常が発生したかどうかの検知は、既知の手法により行われる。例えば、ＲＯＭから読み出したデータによるＳＵＭチェック、ＡＬＵ等の演算値チェック、演算値とＩ／Ｏ手段４０から入力されるセンサー出力値の一致判定等によって行う。
【００４０】
図５は、図４に示す状態において、プロセッサコア２０＃７に異常が発生した後における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。図示するように、プロセッサコア２０＃７に割り当てられていた機能Ｂは、予備コアに指定されていたプロセッサコア２０＃５に割り当てられる。
【００４１】
なお、いずれかのコアに異常が発生した場合には、ブザーや表示等によってユーザに通知する。その後の制御については、更に予備コアを指定可能な程度にプロセッサコアの個数に余裕があれば、上記のような循環的変更を行ってもよいし、余裕がなければそのままの状態で処理を行うと共に、ユーザに修理・点検を促すコメントを出力してもよい。
【００４２】
［処理フロー］
図６は、第１実施例に係るプロセッサコア２０＃１により実行されるマスター制御機能の処理の流れを示すフローチャートである。
【００４３】
まず、プロセッサコア２０＃１は、所定の切り替えタイミングが到来したか否かを判定する（Ｓ１００）。
【００４４】
所定の切り替えタイミングが到来した場合は、予備コアに指定されているプロセッサコアのＩＤ番号Ｎを取得する（Ｓ１０２）。
【００４５】
そして、ＩＤ番号Ｎが最大値（本実施例では７）であるか否かを判定する（Ｓ１０４）。予備コアに指定されているプロセッサコアの番号、及び後述する機能が割り当てられているプロセッサコアの番号は、プロセッサコア２０＃１の汎用レジスタ等に格納されているものとする。
【００４６】
ＩＤ番号Ｎが最大値でなければ、プロセッサコア２０＃Ｎ＋１を予備コアに指定する（Ｓ１０６）。一方、ＩＤ番号Ｎが最大値であれば、プロセッサコア２０＃０を予備コアに指定する（Ｓ１０８）。
【００４７】
次に、以下の処理を機能Ａ〜Ｆのそれぞれについて実行する。まず、機能Ｘ（Ａ〜Ｆを一般化したものをＸと称する）が割り当てられているプロセッサコアのＩＤ番号ｉを取得する（Ｓ１１０）。そして、ＩＤ番号ｉが最大値（本実施例では７）であるか否かを判定する（Ｓ１１２）。
【００４８】
ＩＤ番号ｉが最大値でなければ、機能Ｘをプロセッサコア２０＃ｉ＋１に割り当てる（Ｓ１１４）。一方、ＩＤ番号ｉが最大値であれば、機能Ｘをプロセッサコア２０＃０に割り当てる（Ｓ１１６）。
【００４９】
続いて、プロセッサコア２０＃１は、いずれかのプロセッサコアに異常が発生したか否かを判定する（Ｓ１１８）。いずれかのプロセッサコアに異常が発生した場合は、当該プロセッサコアに割り当てられている機能を、予備コアに指定されているプロセッサコアに割り当てる（Ｓ１２０）。
【００５０】
［従来構成との比較、まとめ］
ここで、機能割り当てや予備コアの指定を変更しない態様の、従来構成のマルチコア・プロセッサとの比較について説明する。
【００５１】
図７は、従来構成のマルチコア・プロセッサの動作を説明するための説明図である。図示するように、従来構成のマルチコア・プロセッサでは、予備コアが固定的であるために、例えば機能Ｃを実行しているプロセッサコア３に異常が生じた際に代替処理を行う場合に、機能Ｃを正常に実行できるかどうか信頼性が低かった。予備コアが代替処理を行うまでに、何ら処理を行っていない可能性があり、過去に機能Ｃを全く実行していない可能性もあるからである。
【００５２】
これに対し、本実施例のマルチプロセッサ１では、機能や予備コアの割り当てが循環的に行われるため、予備コアに指定されているプロセッサコアは、全ての（又は多くの）機能を既に実行している。この結果、代替処理に係る機能を正常に実行できるという信頼性を高めることができる。
【００５３】
更に、プロセッサコアが機能を実行する過程で異常チェックが行われているため、各プロセッサコアが正常であるという信頼性も高めることができる。
【００５４】
従って、プロセッサコアのいずれかに異常が発生した際に行われる代替処理の信頼性を向上させることができる。
【００５５】
以上説明した本実施例のマルチコア・プロセッサ１によれば、プロセッサコアのいずれかに異常が発生した際に行われる代替処理の信頼性を向上させることができる。
【００５６】
＜第２実施例＞
以下、本発明の第２実施例に係るマルチコア・プロセッサ２について説明する。
【００５７】
［構成］については、第１実施例と共通するため、図１を参照するものとし、各構成要素について同一の符号を付し、基本機能についての説明は省略する。
【００５８】
［対応関係の決定、及び予備コアの指定］
本実施例に係るマルチコア・プロセッサ２においても、マスター制御機能が割り当てられたプロセッサコア２０＃１は、所定の切り替えタイミングが到来する度に、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を変更する。
【００５９】
また、本実施例の場合、プロセッサコア２０＃０〜２０＃７の一部は、複数の機能を順に実行する特定プロセッサコアとして扱われる。この特定プロセッサコアは、他のコアに異常が発生した際に、代替処理が割り当てられる。
【００６０】
すなわち、マスター制御機能が割り当てられたプロセッサコア２０＃１は、所定の切り替えタイミングが到来する度に、プロセッサコア２０＃０〜２０＃７のうち特定プロセッサコア（ここでは、プロセッサコア２０＃０が特定プロセッサコアであるものとする）が複数の機能を順に実行し、他のプロセッサコア（以下、非特定プロセッサコアと称する）は、複数の機能のうち自己に割り当てられた特定の機能（以下、自己機能と称する）のみを実行するように制御する。
【００６１】
但し、非特定プロセッサコアのうち特定プロセッサコアに機能が移動したプロセッサコアは、予備コアに指定される。
【００６２】
これによって、各プロセッサコアに割り当てられる機能、又は予備コアの指定は、以下のように遷移する。なお、初期状態において、プロセッサコア２０＃０が特定プロセッサコアであり且つ予備コアに指定されているものとする。
【００６３】
プロセッサコア２０＃０（特定）    ：  予備コア→機能Ａ→機能Ｂ→機能Ｃ→機能Ｄ→機能Ｅ→機能Ｆ→機能Ｇ→予備コア→…
プロセッサコア２０＃１（非特定）  ：  機能Ａ→予備コア→機能Ａ→機能Ａ→機能Ａ→機能Ａ→機能Ａ→機能Ａ→機能Ａ→…
プロセッサコア２０＃２（非特定）  ：  機能Ｂ→機能Ｂ→予備コア→機能Ｂ→機能Ｂ→機能Ｂ→機能Ｂ→機能Ｂ→機能Ｂ→…
プロセッサコア２０＃３（非特定）  ：  機能Ｃ→機能Ｃ→機能Ｃ→予備コア→機能Ｃ→機能Ｃ→機能Ｃ→機能Ｃ→機能Ｃ→…
（以下省略）
【００６４】
上記の変更ルールは、以下のようにも表現できる。なお、「mod」は、剰余を示している。
【００６５】
予備コア指定の変更  ：  Ｎ→（Ｎ＋１）mod８
機能割り当ての変更  ：  コア２０＃０に割り当てられている機能→コア２０＃Ｎ
コア２０＃（Ｎ＋１）mod８に割り当てられている機能→コア２０＃０
【００６６】
図８は、図２に示す状態において所定の切り替えタイミングが到来した場合における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。
【００６７】
また、図９は、図８に示す状態から所定の切り替えタイミングが４回到来した後における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。
【００６８】
［異常発生時の処理］
このように、機能や予備コアの割り当てが循環的に行われる中で、いずれかのプロセッサコアに異常が発生すると、マスター制御機能が割り当てられているプロセッサコア２０＃１は、まず異常が発生したプロセッサコアを停止させる。
【００６９】
そして、プロセッサコア２０＃１は、当該異常が発生したプロセッサコアが実行していた機能を、特定プロセッサコアであるプロセッサコア２０＃０に代替させる。
【００７０】
プロセッサコアに異常が発生したかどうかの検知は、第１実施例と同様、既知の手法により行われる。
【００７１】
図１０は、図９に示す状態において、プロセッサコア２０＃３に異常が発生した後における、複数の機能とプロセッサコア２０＃０〜２０＃７との対応関係、及び予備コアの指定を示す図である。
【００７２】
図示するように、プロセッサコア２０＃３に割り当てられていた機能Ｆは、特定プロセッサコアであるプロセッサコア２０＃０に割り当てられる。そして、特定プロセッサコアであるプロセッサコア２０＃０が実行していた機能は、予備コアであるプロセッサコア２０＃５に割り当てられる。
【００７３】
なお、いずれかのコアに異常が発生した場合には、ブザーや表示等によってユーザに通知する。その後の制御については、更に予備コアを指定可能な程度にプロセッサコアの個数に余裕があれば、上記のような循環的変更を行ってもよいし、余裕がなければそのままの状態で処理を行うと共に、ユーザに修理・点検を促すコメントを出力してもよい。
【００７４】
［処理フロー］
図１１は、第２実施例に係るプロセッサコア２０＃１により実行されるマスター制御機能の処理の流れを示すフローチャートである。
【００７５】
まず、プロセッサコア２０＃１は、所定の切り替えタイミングが到来したか否かを判定する（Ｓ２００）。
【００７６】
所定の切り替えタイミングが到来した場合は、予備コアに指定されているプロセッサコアのＩＤ番号Ｎを取得する（Ｓ２０２）。そして、プロセッサコア２０＃Ｎを、そのプロセッサコアの「自己機能」を実行する状態に戻し（Ｓ２０４）、ＩＤ番号Ｎが最大値（本実施例では７）であるか否かを判定する（Ｓ２０６）。
【００７７】
ＩＤ番号Ｎが最大値でなければ、プロセッサコア２０＃Ｎ＋１を予備コアに指定すると共に、プロセッサコア２０＃Ｎ＋１が実行していた機能をプロセッサコア２０＃０に割り当てる（Ｓ２０８）。一方、ＩＤ番号Ｎが最大値であれば、プロセッサコア２０＃０を予備コアに指定する（Ｓ２１０）。
【００７８】
続いて、プロセッサコア２０＃１は、いずれかのプロセッサコアに異常が発生したか否かを判定する（Ｓ２１２）。いずれかのプロセッサコアに異常が発生した場合は、当該プロセッサコアに割り当てられている機能を、プロセッサコア２０＃０に割り当て（Ｓ２１４）、プロセッサコア２０＃０に割り当てられていた機能を、予備コアに指定されているプロセッサコアに割り当てる（Ｓ２１６；「自己機能」に戻す）。
【００７９】
［まとめ］
以上説明した本実施例のマルチコア・プロセッサ２によれば、第１実施例と同様に、プロセッサコアのいずれかに異常が発生した際に行われる代替処理の信頼性を向上させることができる。
【００８０】
また、第１実施例に比して、プロセッサコア間の機能の移動を少なくすることができる。特定プロセッサコアでない非特定プロセッサコアは、自己機能を実行するか、予備コアに指定されるかの二択で制御される。この結果、ソフトウエアの負荷を小さくすることができる。
【００８１】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【００８２】
第１、第２実施例共に、マスター制御機能を実行する主体は、以下のように変更することができる。
【００８３】
例えば、プロセッサコア２０＃１に限らず、任意のプロセッサコアがマスター制御機能を実行するものとしてもよい。
【００８４】
また、図１２に示すように、マスター制御機能は、機能Ａ〜機能Ｆのいずれかに付随して、プロセッサコア間を移動するものとしてもよい。図１２は、本発明の他の実施態様を説明するための説明図である。
【００８５】
また、図１３に示すように、マスター制御機能は、いずれのコアにも属しないハードウエア（図では、マスター制御回路５０と表記した）により実行されるものとしてもよいし、いずれのコアにも属しない他のＣＰＵ等により実行されるものとしてもよい。図１３は、本発明の他の実施態様を説明するための説明図である。
【００８６】
また、マスター制御機能のみを実行する専用のプロセッサコアを備えてもよい。
【符号の説明】
【００８７】
１、２  マルチコア・プロセッサ
１０    プログラムメモリ
１５    命令フェッチバス
２０＃０〜２０＃７  プロセッサコア
３０    ワーキングメモリ
３５    データバス
４０    Ｉ／Ｏ手段
５０    マスター制御回路
【図１】
2012226409.tif 000003
【図２】
2012226409.tif 000004
【図３】
2012226409.tif 000005
【図４】
2012226409.tif 000006
【図５】
2012226409.tif 000007
【図６】
2012226409.tif 000008
【図７】
2012226409.tif 000009
【図８】
2012226409.tif 000010
【図９】
2012226409.tif 000011
【図１０】
2012226409.tif 000012
【図１１】
2012226409.tif 000013
【図１２】
2012226409.tif 000014
【図１３】
2012226409.tif 000015