(57)【要約】【課題】性能及び信頼性を向上させるとともに、コスト削減を図ることができる情報処理装置を提供する。【解決手段】プロセッサＡ２１０とプロセッサＢ２２０とを備える情報処理装置１００において、非安全機能と安全機能とを実行する制御部を備え、制御部は非安全機能を複数の部分処理に分割し、プロセッサＡ２１０とプロセッサＢ２２０とのそれぞれに複数の部分処理のそれぞれを重複なく実行させる並列処理と、プロセッサＡ２１０とプロセッサＢ２２０とのそれぞれに安全機能を実行させる多重処理とを交互に繰り返す。【選択図】図３
2015176292.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサを備える情報処理装置において、
前記複数のプロセッサを用いて、第１処理と第２処理とを実行する制御部を備え、
前記制御部は、
前記第１処理を複数の部分処理に分割し、前記複数のプロセッサのそれぞれに前記複数の部分処理のそれぞれを重複なく実行させる分割処理と、前記複数のプロセッサのそれぞれに前記第２処理を実行させる重複処理とを交互に繰り返すことを特徴とする情報処理装置。
【請求項２】
前記制御部は、前記第２処理と、前記第２処理が実現する機能を前記第２処理とは異なる方式で実現する第３処理とを前記複数のプロセッサのそれぞれに実行させ、前記第２処理の処理結果と前記第３処理の処理結果とを比較し、比較結果が閾値よりも大きい場合に前記複数のプロセッサを停止させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記複数のプロセッサのうち少なくとも２つのプロセッサは、稼働する条件が互いに異なることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記少なくとも２つのプロセッサは、物理的に非対称であることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、前記複数のプロセッサのうち稼働を休止している休止プロセッサがあるか否かを判定し、前記休止プロセッサがあると判定した場合に、前記休止プロセッサに前記複数のプロセッサの動作を検査する検査処理を実行させることを特徴とする請求項１〜４のいずれかに記載の情報処理装置。
【請求項６】
複数のプロセッサを備え、前記複数のプロセッサを用いて第１処理と第２処理とを実行する制御部を備える情報処理装置の情報処理方法において、
前記制御部が、前記第１処理を複数の部分処理に分割し、前記複数のプロセッサのそれぞれに前記複数の部分処理のそれぞれを重複なく実行させる分割処理と、前記複数のプロセッサのそれぞれに前記第２処理を実行させる重複処理とを交互に繰り返すことを特徴とする情報処理方法。
【請求項７】
複数のプロセッサを備え、前記複数のプロセッサを用いて第１処理と第２処理とを実行する情報処理装置のプログラムにおいて、
前記第１処理を複数の部分処理に分割し、前記複数のプロセッサのそれぞれに前記複数の部分処理のそれぞれを重複なく実行させる分割処理と、前記複数のプロセッサのそれぞれに前記第２処理を実行させる重複処理とを交互に繰り返す制御処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関するものであり、特に、複数のプロセッサを備えたマルチプロセッサシステムによる情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
現在、安全対応のマルチメディア機器や産業用制御機器を実現する機能には、安全機能と非安全機能とがある。安全機能は車両の走行に係わる機能やシーケンサの制御機能などであり、非安全機能は、マルチメディア機能などである。
従来技術では、安全機能と非安全機能とをそれぞれ別々のプロセッサにおいて実行している。あるいは、１つのプロセッサにおいて、メモリの保護機能と時分割機能とを用いることにより、安全機能と非安全機能とを分離して処理している。
【０００３】
また、回路や専用制御・処理部などを追加して、信頼性と実行性能とを向上させる効果を得ているシステムや装置が開示されている。
特許文献１には、タスクの優先度情報に基づいて、連続するタスクを他のサブシステムとの間で並列処理するか、又は、同時処理するかを選択する二重化制御部を備えることにより、信頼性と実行性能を向上させようとしている（特許文献１参照）。
【０００４】
特許文献２には、データ処理部が生成する情報をデータ処理部毎に圧縮して保持する複数の圧縮器と、複数のデータ処理部が同じ処理を非同期で行なったとき夫々の圧縮器が保持するデータを比較してデータ処理部の異常を検出する検出部を備えることにより、データ処理の信頼性と実行性能を向上させようとしている（特許文献２参照）。
特許文献３には、同期動作あるいは並列動作いずれかの動作モード切り替えに対応した専用のＩＯブリッジやキャッシュメモリをもち、これらを構成制御プロセッサあるいは手段が動作モード切り替えを行なうＨ／Ｗ（ハードウェア）構成を前提にして、信頼性と実行性能を向上させようとしている（特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２２４９４０号公報
【特許文献２】特開２０１０−１１３３８８号公報
【特許文献３】特開平０９−０７３４３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、安全機能と非安全機能とをそれぞれ別々のプロセッサにおいて実行する構成では、安全機能についてプロセッサの多重性が小さく信頼性が十分でないという課題がある。また、１つのプロセッサにおいて安全機能と非安全機能とを分離して処理する構成では、非安全機能について実行性能が十分確保できないという課題がある。
【０００７】
また、回路や専用制御・処理部を追加して信頼性と実行性能を向上させる効果を得る構成では、専用の回路ないし制御・処理部の追加が必要になり、故障率が増加するため信頼性を低下させる課題がある。
また、専用の回路や制御・処理部の追加は、部品コストあるいは検証のための工数が必要であり、システム価格や開発費用を増加させ、信頼性、処理性能、コスト削減の両立が困難になるという課題がある。
【０００８】
本発明は、上述のような課題を解決するためになされたものであり、性能及び信頼性を向上させるとともに、コスト削減を図ることができる情報処理装置、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置は、複数のプロセッサを備える情報処理装置において、前記複数のプロセッサを用いて、第１処理と第２処理とを実行する制御部を備え、前記制御部は、前記第１処理を複数の部分処理に分割し、前記複数のプロセッサのそれぞれに前記複数の部分処理のそれぞれを重複なく実行させる分割処理と、前記複数のプロセッサのそれぞれに前記第２処理を実行させる重複処理とを交互に繰り返すことを特徴とする。
【発明の効果】
【００１０】
本発明に係る情報処理装置によれば、複数のプロセッサを用いて第１処理と第２処理とを実行する制御部であって、第１処理を複数の部分処理に分割し、複数のプロセッサのそれぞれに複数の部分処理のそれぞれを重複なく実行させる分割処理と、複数のプロセッサのそれぞれに第２処理を実行させる重複処理とを交互に繰り返す制御部を備えているので。部品を追加することなく、信頼性が必要な第１処理では信頼性を向上させることができ、効率性が必要な第２処理では効率性を向上させることができるので、コスト削減を図りつつ、性能及び信頼性の向上を図ることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る情報処理装置１００のハードウェア構成を示す図である。
【図２】実施の形態１に係る情報処理装置１００の機能構成図である。
【図３】実施の形態１に係る情報処理装置１００における機能及び動作を説明するための図である。
【図４】実施の形態２に係る制御部１２０の繰り返し実行処理（工程）の流れを示すフローチャートである。
【図５】実施の形態３に係る情報処理装置１００ａのシステム構成を示す図である。
【図６】実施の形態４に係る情報処理装置１００ｂのシステム構成を示す図である。
【図７】比較例であるプロセッサシステム１０１の機能構成を示す図である。
【図８】比較例であるプロセッサシステム１０２の機能構成を示す図である。
【発明を実施するための形態】
【００１２】
実施の形態１．
図７は、比較例であるプロセッサシステム１０１の機能構成を示す図である。図８は、比較例であるプロセッサシステム１０２の機能構成を示す図である。
図７に示すプロセッサシステム１０１では、安全機能を安全対応ＣＰＵにより実行し、非安全機能を性能重視の非安全対応ＣＰＵにおいて実行する構成である。図１の構成では、安全対応ＣＰＵの多重性が小さく信頼性が十分でない。
【００１３】
図８に示すプロセッサシステム１０２では、１つの共有ＣＰＵにおいてメモリの保護機能と時分割機能とを用いることにより、安全機能と非安全機能とを分離して処理する。図８の構成では、非安全機能について実行性能が十分確保できない。
【００１４】
図１は、本実施の形態に係る情報処理装置１００のハードウェア構成を示す図である。
図１に示すように、情報処理装置１００は、プロセッサ２００、メモリ３００、ＩＯポート４００を備える。さらに、プロセッサ２００、メモリ３００、ＩＯポート４００が接続する（ぶら下がる）共有バス５００を備える。
【００１５】
プロセッサ２００は、複数のプロセッサであるプロセッサＡ２１０、プロセッサＢ２２０から構成されるマルチプロセッサである。すなわち、情報処理装置１００は、複数のプロセッサを備えるプロセッサシステム、マルチプロセッサシステムである。
【００１６】
プロセッサ２００は、ＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ：中央処理装置）２１１、ＧＰＵ（Ｇｒａｐｈｉｃｓ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ：画像処理装置）２１２、ＣＰＵ２２１、ＧＰＵ２２２を備えるものとする。
以下の説明において、ＣＰＵ２１１、ＧＰＵ２１２をまとめてプロセッサＡ２１０と呼ぶ。ＣＰＵ２２１、ＧＰＵ２２２をまとめてプロセッサＢ２２０と呼ぶ。また、ＣＰＵ、ＧＰＵをプロセッサと呼ぶ場合がある。
【００１７】
ＩＯポート４００は、複数のＩＯポートから構成される。ここでは、ＩＯポート４００は、ＩＯポート４００１，４００２，・・・，４００ｘを備えるものとする。
【００１８】
なお、情報処理装置１００のハードウェア構成としては、プロセッサ２００、メモリ３００、ＩＯポート４００、共有バス５００の他に、図示はないが通信装置を備えていてもよい。メモリ３００は、主記憶装置と外部記憶装置とを備える。
【００１９】
プロセッサ２００は、プログラムを実行する。
外部記憶装置は、例えば、ＲＯＭ（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）である。主記憶装置は、例えば、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）である。
【００２０】
通信装置は、例えば通信ボード等であり、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）等に接続されている。通信装置は、ＬＡＮに限らず、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークといったＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）、あるいは、インターネットに接続されていても構わない。
【００２１】
プログラムは、通常は外部記憶装置に記憶されており、主記憶装置にロードされた状態で、順次プロセッサ２００に読み込まれ、実行される。
プログラムは、例えば、図２で説明する機能部１１０、制御部１２０などの「〜部」として説明している機能を実現するプログラムである。
【００２２】
なお、図１の構成は、あくまでも情報処理装置１００のハードウェア構成の一例を示すものであり、情報処理装置１００のハードウェア構成は図１に記載の構成に限らず、他の構成であっても構わない。
【００２３】
図２は、本実施の形態に係る情報処理装置１００の機能構成図である。
図３は、本実施の形態に係る情報処理装置１００における機能及び動作を説明するための図である。
【００２４】
本実施の形態に係る情報処理装置１００は、信頼性向上のための回路を追加する必要がない。情報処理装置１００は、信頼性向上のために、例えば、ソフトウェア処理によって時分割することにより処理を安全モードと非安全モードに分ける。情報処理装置１００において、安全モードのときは多重処理系（重複処理系、安全処理系ともいう）として動作し、信頼性を向上させる。また、非安全モードのときは並列処理系（分割処理系、非安全処理系）として動作し、処理性能を向上させる。
【００２５】
情報処理装置１００は、機能部１１０、制御部１２０、メモリ３００、ＩＯポート４００を備える。
機能部１１０は、安全機能部１１１、非安全機能部１１２を備える。情報処理装置１００の機能部１１０は、例えば、車両の走行に関わる機能、マルチメディア機器を実現する機能、シーケンサの制御機能などの様々な機能を有する。機能部１１０が有する各機能は、それぞれ安全機能であるか非安全機能であるかが予め指定されている。
【００２６】
例えば、車両の走行に関わる機能、シーケンサの制御機能など信頼性を重視すべき安全機能（第２処理、安全処理ともいう）を実現するのは安全機能部１１１であり、マルチメディア機器を実現する処理性能を重視すべき非安全機能（第１処理、非安全処理ともいう）を実現するのは非安全機能部１１２である。
また、情報処理装置１００は、図示は無いが、各機能を実現するのに必要な、各プロセッサで実行すべき複数のタスクが指定されている。
【００２７】
情報処理装置１００において、各機能を実現するのに必要なメモリ領域が指定されている。
図２に示すように、メモリ３００は、各機能のうち安全機能部１１１に割り当てられている安全用領域３１０と、非安全機能部１１２に割り当てられている非安全用領域３２０とを備える。安全用領域３１０と非安全用領域３２０とは、メモリ３００空間上で重ならない。
【００２８】
情報処理装置１００において、各機能を実現するのに必要な複数のＩＯポート４００が指定されている。
図２に示すように、ＩＯポート４００は、各機能のうち安全機能部１１１に割り当てられている安全用ＩＯポート４１０と、非安全機能部１１２に割り当てられている非安全用ＩＯポート４２０とを備える。
【００２９】
図３を用いて、情報処理装置１００の制御部１２０の動作について説明する。
制御部１２０は、プロセッサ２００を用いて、安全機能部１１１による安全機能（第２処理）と非安全機能部１１２による非安全機能（第１処理）とを実行する。各プロセッサの実行時間は、安全処理を実行する安全時間８０１と非安全処理を実行する非安全時間８０２とに分けられる。
【００３０】
制御部１２０は、安全時間８０１には安全機能部１１１を実行させ、非安全時間８０２には非安全機能部１１２を実行させる。すなわち、制御部１２０は、安全時間８０１には安全機能部１１１を実現するタスクをＣＰＵ２１１及びＣＰＵ２２１を用いて実行する。また、制御部１２０は、非安全時間８０２には非安全機能部１１２を実現するタスクをＣＰＵ２１１、ＧＰＵ２１２、ＣＰＵ２２１、及びＧＰＵ２２２を用いて実行する。
各プロセッサ２００の安全時間８０１、非安全時間８０２の分割方法は、重ならない限りどのようなものでもよい。
【００３１】
制御部１２０は、安全時間８０１には、メモリ領域として安全用領域３１０を使用する。また、制御部１２０は、非安全時間８０２には、メモリ領域として非安全用領域３２０を使用する。各メモリ領域（安全用領域３１０、非安全用領域３２０）は通常のプロセッサのメモリ保護機能によって保護する。安全用領域３１０には、いわゆる特権タスクのみがアクセスできる領域を割り当てる。また、非安全用領域３２０には、非特権タスクでもアクセスできる領域を割り当てる。
【００３２】
制御部１２０は、安全機能に指定されている安全機能部１１１を実行するのに必要なタスクを安全時間８０１に実行する。このとき、制御部１２０は、安全機能部１１１の実行に必要なメモリ３００を安全用領域３１０に割り当てる。また、安全機能部１１１を実行するのに必要な安全用ＩＯポート４１０は、制御部１２０により安全時間８０１に制御される。
【００３３】
安全機能部１１１が非安全機能部１１２を使用する場合は、制御部１２０は、非安全機能部１１２により使用されるタスク、非安全用領域３２０、非安全用ＩＯポート４２０が信頼性が低い（まったくあてにならない場合がある）ことを前提として制御する。すなわち、制御部１２０は、非安全機能部１１２により使用されるタスク、非安全用領域３２０、非安全用ＩＯポート４２０に関するチェック機能を用いる。あるいは、実行途中での停止機能などを利用する。
【００３４】
制御部１２０は、非安全機能を実現するのに必要なタスクを非安全時間８０２に実行する。また、制御部１２０は、非安全用領域３２０、非安全用ＩＯポート４２０については非安全時間８０２に制御する。ただし、非安全機能部１１２が安全機能部１１１を使用する場合は、制御部１２０は、安全機能部１１１が提供するインタフェース経由で安全機能部１１１を実行する。制御部１２０は、非安全機能部１１２の動作が安全機能部１１１にとって問題がないと判断した場合のみ安全機能部１１１を実行する。
【００３５】
なお、本実施の形態では、プロセッサ２００はプロセッサＡ２１０とプロセッサＢ２２０との２重系であるが、プロセッサの数は、２つでなくても構わない。例えば、３つ、４つ、その他の数でもよい。
制御部１２０は、複数のプロセッサを用いて、安全処理と非安全処理とを実行する。制御部１２０は、非安全処理を複数の部分処理に分割し、複数のプロセッサのそれぞれに複数の部分処理のそれぞれを重複なく実行させる並列処理（分割処理）と、複数のプロセッサのそれぞれに安全処理を重複して実行させる多重処理（重複処理）とを交互に繰り返す制御処理を行う。
【００３６】
図３を用いて、制御部１２０の情報処理方法（処理、工程）についてさらに説明する。
図３に示すように、安全機能部１１１は安全機能１と安全機能２とを実行し、非安全機能部１１２は非安全機能１と非安全機能２とを実行するものとする。
【００３７】
制御部１２０は、非安全時間８０２には、プロセッサＡ２１０とプロセッサＢ２２０とを用いて、非安全機能部１１２を並列処理により実行する（非安全モード処理（工程））。
具体的には、制御部１２０は、非安全時間８０２ａには、ＣＰＵ２１１とＣＰＵ２２１との並列処理により非安全機能１を実行し、非安全時間８０２ｂには、ＣＰＵ２１１とＣＰＵ２２１との並列処理、ＧＰＵ２１２とＧＰＵ２２２との並列処理により非安全機能２を実行する。
よって、非安全機能部１１２の実行時の処理性能は向上する。
【００３８】
制御部１２０は、安全時間８０１には、ＣＰＵ２１１とＣＰＵ２２１とを用いる多重化処理により、安全機能部１１１を実行する（安全モード処理（工程））。
具体的には、制御部１２０は、安全時間８０１ａには、ＣＰＵ２１１とＣＰＵ２２１とを用いる多重化処理により安全機能１を実行し、安全時間８０１ｂには、ＣＰＵ２１１とＣＰＵ２２１とを用いる多重化処理により安全機能２を実行する。
よって、安全機能部１１１の実行時の信頼性は向上する。
【００３９】
以上のように、本実施の形態に係る情報処理装置１００は、情報処理方法（処理、工程）において、非安全モード処理（工程）と、安全モード処理（工程）とを繰り返す。
本実施の形態に係る情報処理装置１００によれば、論理的あるいは時間的に、安全時間（安全モード）と非安全時間（非安全モード）とを厳格に分離することができる。また、非安全機能が安全機能に影響を及ぼす可能性を排除することができる。また、本実施の形態に係る情報処理装置１００によれば、Ｈ／Ｗ（ＩＯポート，メモリ，プロセッサ）自体には特別な安全対応の追加Ｈ／Ｗを必要としない。
【００４０】
したがって、本実施の形態に係る情報処理装置１００によれば、安全対応の車載マルチメディア機器や高性能を要求される産業制御システムにおいて、追加の回路や処理部を追加せずに最小限のプロセッサ個数で、コストを上昇させずに安全性と処理性能とを両立させることが可能になる。
さらに、専用の回路あるいは制御・処理部の追加や、外部からの指示によるシステム動作への影響の可能性が無くなり、故障率を減少させ、信頼性を向上させることが可能になる。
【００４１】
以上のように、本実施の形態に係る情報処理装置１００は、信頼性向上のための回路を追加する必要がなく、信頼性向上のために、例えば、ソフトウェア処理によって時分割することにより処理を安全モードと非安全モードに分けている。情報処理装置１００において、安全モードのときは多重処理系として動作し、信頼性を向上させるとともに、非安全モードのときは並列処理系として動作し、処理性能を向上させる。よって、本実施の形態に係る情報処理装置１００によれば、性能向上、信頼性向上、及びコスト削減の両立を図ることができる。
【００４２】
実施の形態２．
本実施の形態では、主に、実施の形態１との差異について説明する。
本実施の形態において、実施の形態１で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する場合がある。
本実施の形態では、実施の形態１の制御部１２０の動作に、以下の処理を加えることにより、より信頼性を向上させることができる情報処理装置１００について説明する。
【００４３】
図４は、本実施の形態に係る制御部１２０の繰り返し実行処理（工程）の流れを示すフローチャートである。ここでは、制御部１２０は、安全時間８０１の処理の実行を開始するものとする。
本実施の形態に係る制御部１２０は、安全時間８０１において、以下の制御を行う。
Ｓ１０１において、制御部１２０は、安全時間８０１ａの開始時に多重化（２重化処理）をする２つのプロセッサの性能に余裕があるが否かを判定する。
【００４４】
制御部１２０は、余裕があると判定した場合には、Ｓ１０２に進む。
制御部１２０は、余裕がないと判定した場合には、処理を終了し、通常の安全時間８０１ａにおける安全機能１の多重化処理を実行する。
【００４５】
Ｓ１０２において、制御部１２０は、安全機能１を同じアルゴリズム、違うアルゴリズム、異なった実装方法などにより繰り返し実行する。そして、制御部１２０は、それぞれの実行結果を比較することにより冗長性を大きくする。このような処理により、より信頼性を向上させることができる。
【００４６】
具体的には、制御部１２０は、安全機能１を、プロセッサＡ２１０とプロセッサＢ２２０とを用いて、同じアルゴリズム、違うアルゴリズム、異なった実装方法などにより繰り返し多重化処理を実行する（Ｓ１０３）。そして、制御部１２０は、実行結果を繰り返し比較する（Ｓ１０４）。
【００４７】
あるいは、安全機能（機能の一例）を実現する複数のタスク（第２タスク及び第３タスクを含む）を予め用意しておく。制御部１２０は、まず、第２タスク（第２処理の一例）をプロセッサＡ２１０とプロセッサＢ２２０とに実行させ、次に、第３タスク（第３処理の一例）をプロセッサＡ２１０とプロセッサＢ２２０とに実行させる（Ｓ１０３）。そして、制御部１２０は、それぞれの処理結果を比較する（Ｓ１０４）。制御部１２０は、処理結果が予め定められた閾値以下の場合には（Ｓ１０４でＮＯ）、何もせずに終了する。一方、制御部１２０は、処理結果が閾値より大きい場合には（Ｓ１０４でＹＥＳ）、安全機能を実現する並列処理（重複処理）が不良であると判断する。制御部１２０は、安全機能を実現する並列処理（重複処理）が不良であると判断すると、情報処理装置１００を停止する（Ｓ１０５）、あるいは、警告を出力する。
【００４８】
なお、上記の繰り返し実行処理の動作例については、上述した動作に限らず、複数のプロセッサ、複数のアルゴリズム、複数の実装方法などをどのように組み合わせて繰り返し実行しても構わない。
【００４９】
以上のように、本実施の形態に係る制御部１２０によれば、安全処理（重複処理）において、複数のプロセッサ２００のうち性能に余裕がある性能プロセッサがあるか否かを判定し、性能プロセッサがあると判定した場合に、例えば、性能プロセッサに安全処理の機能を実現する処理を繰り返し実行させるので、信頼性の高い安全時間（安全モード）の処理を実現することができる。
【００５０】
実施の形態３．
本実施の形態では、主に、実施の形態１，２との差異について説明する。
本実施の形態において、実施の形態１，２で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する場合がある。
本実施の形態では、複数のプロセッサ２００のうち少なくとも２つのプロセッサ２００が、稼働する条件が互いに異なる情報処理装置１００ａについて説明する。
【００５１】
図５は、本実施の形態に係る情報処理装置１００ａのシステム構成を示す図である。
図５に示すように、本実施の形態では、プロセッサＡ２１０とプロセッサＢ２２０とで、異なるＥＭＣ（Ｅｌｅｃｔｒｏ  Ｍａｇｎｅｔｉｃ  Ｉｎｔｅｒｆｅｒｅｎｃｅ）（電磁妨害）シールド構造を有する。
また、情報処理装置１００ａは、プロセッサＡ２１０に動作周波数を供給するクロック６１０と、プロセッサＢ２２０に動作周波数を供給するクロック６２０とを備える。クロック６１０とクロック６２０とは、異なった位相、異なった周波数の動作周波数を供給するものとする。
【００５２】
また、情報処理装置１００ａは、プロセッサＡ２１０に電源を供給する電源７１０と、プロセッサＢ２２０に電源を供給する電源７２０とを備える。電源７１０と電源７２０とは、異なった電圧、異なった方式により電源を供給するものとする。
また、情報処理装置１００ａは、電源７１０接続されたＥＭＣフィルタ８１０と、電源７２０に接続されたＥＭＣフィルタ８２０とを備える。ＥＭＣフィルタ８１０とＥＭＣフィルタ８２０とは、異なった周波数帯域へのノイズ対策を実行するものとする。
【００５３】
上述したように、制御部１２０は、安全時間８０１において、安全機能部１１１をプロセッサＡ２１０とプロセッサＢ２２０とを用いて多重化処理を実行している。すなわち、制御部１２０は、プロセッサＡ２１０とプロセッサＢ２２０とにより同一の安全機能処理を実行し、一方のＣＰＵが故障した場合であっても、処理の継続を保証している。
【００５４】
本実施の形態では、さらに信頼性を向上させるために、図５に示すように、各プロセッサに非対象性を導入する。
非対称の例としては、図５に示すように、クロック６１０及びクロック６２０の非対称、プロセッサＡ２１０及びプロセッサＢ２２０の非対称、電源７１０及び電源７２０の非対称、ＥＭＣフィルタ８１０及びＥＭＣフィルタ８２０の非対称などがある。これらの非対称な構成をどのように組み合わせても構わない。
【００５５】
情報処理装置１００ａにおいて、その他の非対象性とする稼働する条件の例としては、別基板への配置、別パッケージへ配置、向き、パターン、伝送路、異種メモリ、放熱構造、プロセス製造、ロット、セカンドソース、異種プロセッサ、同じ機能の違うアルゴリズム、同じ機能の違うデータ構造を使用した処理などがある。
【００５６】
本実施の形態に係る情報処理装置１００ａによれば、実施の形態１あるいは実施の形態２の構成に加え、各プロセッサに物理的・動作的非対称性を導入したので、多重系における共通の故障を防ぐことができ、より信頼性を向上させることができる。
なお、実施の形態１の構成に実施の形態２の構成を加え、さらに、本実施の形態の構成を加えてもよい。この構成により、より信頼性を向上させることができる。
【００５７】
実施の形態４．
本実施の形態では、主に、実施の形態１〜３との差異について説明する。
本実施の形態において、実施の形態１〜３で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する場合がある。
【００５８】
図６は、本実施の形態に係る情報処理装置１００ｂのシステム構成を示す図である。図６は、実施の形態１で説明した図３に対応する図である。
図６に示す情報処理装置１００ｂは、図３の構成に加え、遊休中のプロセッサ２００ｂを備える。プロセッサ２００ｂは、例えば、ＣＰＵ２３１、ＧＰＵ２３２を備える。
【００５９】
制御部１２０は、一時的に機能を処理していない状態のプロセッサ（遊休プロセッサ）があるか否かを判定し、例えば、プロセッサ２００ｂが遊休プロセッサであると判定した場合には、プロセッサ２００ｂを用いてプルーフテストなどの検査や回復処理（リセット等）を実行する。あるいは、外部の装置からプロセッサ２００ｂを用いたプルーフテストなどの検査や回復処理（リセット等）を実行してもよい。
【００６０】
以上のように本実施の形態に係る情報処理装置１００ｂによれば、制御部１２０が、複数のプロセッサのうち稼働を休止している遊休プロセッサ（休止プロセッサ）があるか否かを判定し、遊休プロセッサにプルーフテストなどの検査及び回復処理（リセット等）などの複数のプロセッサ２００の動作を検査する検査処理を実行させるので、信頼性、安全性を向上させるために安全システムの機能が正しく動作しているか否かのプルーフテストの間隔を短縮することができ、さらに信頼性を向上させることができる。
【００６１】
以上、本発明の実施の形態について説明したが、例えば、実施の形態１の構成・機能に加え、実施の形態２、あるいは、実施の形態３、あるいは、実施の形態４の構成・機能を加えてもよい。また、実施の形態１に実施の形態２の構成・機能に加えたものに、実施の形態３、あるいは、実施の形態４の構成・機能を加えてもよい。また、実施の形態１に実施の形態２及び実施の形態３の構成・機能に加えたものに、実施の形態４の構成・機能を加えてもよい。
このように、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。
【００６２】
なお、以上の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００６３】
１００，１００ａ，１００ｂ  情報処理装置、１０１，１０２  プロセッサシステム、１１０  機能部、１１１  安全機能部、１１２  非安全機能部、１２０  制御部、２００，２００ｂ  プロセッサ、２１０  プロセッサＡ、２１１，２２１，２３１  ＣＰＵ、２１２，２２２，２３２  ＧＰＵ、２２０  プロセッサＢ、３００  メモリ、３１０  安全用領域、３２０  非安全用領域、４００  ＩＯポート、４１０  安全用ＩＯポート、４２０  非安全用ＩＯポート、５００  共有バス、６１０，６２０  クロック、７１０，７２０  電源、８０１  安全時間、８０２  非安全時間、８１０，８２０  ＥＭＣフィルタ。
【図１】
2015176292.tif 000003
【図２】
2015176292.tif 000004
【図３】
2015176292.tif 000005
【図４】
2015176292.tif 000006
【図５】
2015176292.tif 000007
【図６】
2015176292.tif 000008
【図７】
2015176292.tif 000009
【図８】
2015176292.tif 000010