(57)【要約】【課題】情報処理装置のＯＳに係る再起動の適切性に貢献可能な技術を提供する。【解決手段】情報処理装置１のマルチコアプロセッサＰが、例えばメモリ使用容量の異なる複数のオペレーティングシステムＯＳ１０，２０をそれぞれ異なるプロセッサコアＣ１，Ｃ２に搭載して動作させ、各コアＣ１，Ｃ２からアクセスされてデータを共有メモリＭによって授受できる構成とする。各コアＣ１，Ｃ２は、自身搭載ＯＳ（コアＣ１の場合はＯＳ１０）に係るステータス情報を共有メモリにそれぞれ記録させる一方で、自身以外の他方に搭載されている他方搭載ＯＳ（コアＣ１の場合はＯＳ２０）に係るステータス情報を検出し、その検出結果に基づいて他方搭載ＯＳに係る動作異常の有無を判定させ、その判定結果に応じて当該判定された他方搭載ＯＳを搭載している他方（コアＣ１の場合はコアＣ２）を再起動させる。【選択図】図１
2019057267.tif 000002
【特許請求の範囲】
【請求項１】
複数のオペレーティングシステムをそれぞれ異なるプロセッサコアに搭載して動作させるマルチコアプロセッサが、
各プロセッサコアからアクセスされてデータを授受する共有メモリと、
各プロセッサコアに対し、各オペレーティングシステムのうち自身が搭載している自身搭載オペレーティングシステムに係るステータス情報を、共有メモリにそれぞれ記録させる自身ＯＳ状態記録機能部と、
各プロセッサコアに対し、各オペレーティングシステムのうち自身以外の他方に搭載されている他方搭載オペレーティングシステムに係り共有メモリに記録されているステータス情報を、それぞれ検出させる他方ＯＳ状態検出機能部と、
各プロセッサコアに対し、他方ＯＳ状態検出機能部の検出結果に基づいて、他方搭載オペレーティングシステムに係る動作異常の有無をそれぞれ判定させる異常有無判定機能部と、
各プロセッサコアに対し、異常有無判定機能部の判定結果に応じて当該判定された他方搭載オペレーティングシステムを搭載している他方を、それぞれ再起動させる他方再起動実行機能部と、
を備えていることを特徴とする情報処理装置。
【請求項２】
複数個のマルチコアプロセッサが、データ伝送路を介して互いに通信可能に接続されて主従関係を有しており、
各マルチコアプロセッサの共有メモリは、等価処理対象であるプログラムおよびデータをそれぞれ記録するプログラム記録領域およびデータ記録領域を備え、
各マルチコアプロセッサは、
自身側が主系として優先動作している場合に、当該自身側の各プロセッサコアの何れかに対し、当該自身側の共有メモリに記録されている等価処理対称のプログラムおよびデータを、データ伝送路を介して他方側に送信して等価処理させる等価処理機能部と、
自身側が従系として待機動作している場合に、当該自身側の各プロセッサコアの何れかに対し、主系として優先動作している他方側の動作状態に応じて、各マルチコアプロセッサの主従を切り替えさせる主従切替機能部と、
を更に備えていることを特徴とする請求項１記載の情報処理装置。
【請求項３】
主従切替機能部は、
各プロセッサコアの何れかに対し、他方側の動作状態を検出させる他方側マルチコアプロセッサ状態検出機能部と、
各プロセッサコアの何れかに対し、他方側マルチコアプロセッサ状態検出機能部の検出結果に基づいて、他方側に係る動作異常の有無等を確認し、主従の切り替えの要否を判定させる主従切替要否判定機能部と、
各プロセッサコアの何れかに対し、主従切替要否判定機能部によって判定された判定結果に応じて、各マルチコアプロセッサの主従を切り替えさせる主従切替実行機能部と、
を含んでいることを特徴とする請求項２記載の情報処理装置。
【請求項４】
等価処理機能部および主従切替機能部を実行するプロセッサコアに搭載されているオペレーティングシステムが、リアルタイム性を有していることを特徴とする請求項２または３記載の情報処理装置。
【請求項５】
マルチコアプロセッサは、
各プロセッサコアに対し、異常有無判定機能部による判定結果を、共有メモリにそれぞれ記録させる判定結果記録機能部を、更に備えていることを特徴とする請求項１〜４の何れかに記載の情報処理装置。
【請求項６】
自身ＯＳ状態記録機能部により共有メモリに記録させるステータス情報は、自身搭載オペレーティングシステムの生存フラグを含み、
共有メモリは、生存フラグを更新記録する生存カウンタ領域を備えていることを特徴とする請求項１〜５の何れかに記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば各種機器の制御に適用されている情報処理装置に貢献する技術に係るものである。
【背景技術】
【０００２】
例えば各種設備（水処理設備，電力設備等）のシーケンス制御に適用されている情報処理装置（例えばプログラマブルコントローラ等）においては、複数のプロセッサコア（以下、単にコアと適宜称する）を有するマルチコアプロセッサを具備した構成が適用され始めている（例えば特許文献１，２）。
【０００３】
このような情報処理装置では、各コアにより同一のＯＳ（オペレーティングシステム）を動作させるＳＭＰ（対称マルチプロセッサ）型の構成の他に、複数のＯＳを動作させるＡＭＰ（非対称マルチプロセッサ）型の構成が知られている。
【０００４】
この複数のＯＳを動作させる構成の一例としては、クラウド側との間で拡張性（スケーラビリティ，高機能性等）が要求される情報処理用のＯＳ（以下、単に情報処理用ＯＳと適宜称する）や、設備の監視機器等との間でリアルタイム性が要求されるＯＳ（以下、単にＲＴ用ＯＳと適宜称する）を、別々のコアに搭載して適宜動作するように稼動させることが挙げられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−６５５２８号公報
【特許文献２】特開２００７−１１４２６号公報
【特許文献３】特開２００８−１８１２４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のＯＳを別々のコアに搭載した情報処理装置において、何れかのＯＳ側に係る動作が妨げられているような状態が発生している場合には、例えば当該情報処理装置の電源を再起動する等により、改めて当該ＯＳの所望の動作を実行できるように対応することが挙げられる。
【０００７】
しかしながら、単に電源を再起動する手法では、たとえ正常に動作しているＯＳが存在している場合であっても、当該正常なＯＳ側までも再起動させることになる。すなわち、正常なＯＳ側においても、改めて初期化処理や診断処理等の起動処理を要することにもなり、当該再起動の適切性が低くなってしまうことが考えられる。
【０００８】
本発明は、前述のような課題を鑑みてなされたものであって、情報処理装置のＯＳに係る再起動の適切性に貢献可能な技術を提供することにある。
【課題を解決するための手段】
【０００９】
この発明に係る情報処理装置は、前述のような課題の解決に貢献できるものであり、その一態様としては、複数のオペレーティングシステムをそれぞれ異なるプロセッサコアに搭載して動作させるマルチコアプロセッサが、各プロセッサコアからアクセスされてデータを授受する共有メモリと、各プロセッサコアに対し、各オペレーティングシステムのうち自身が搭載している自身搭載オペレーティングシステムに係るステータス情報を、共有メモリにそれぞれ記録させる自身ＯＳ状態記録機能部と、各プロセッサコアに対し、各オペレーティングシステムのうち自身以外の他方に搭載されている他方搭載オペレーティングシステムに係り共有メモリに記録されているステータス情報を、それぞれ検出させる他方ＯＳ状態検出機能部と、各プロセッサコアに対し、他方ＯＳ状態検出機能部の検出結果に基づいて、他方搭載オペレーティングシステムに係る動作異常の有無をそれぞれ判定させる異常有無判定機能部と、各プロセッサコアに対し、異常有無判定機能部の判定結果に応じて当該判定された他方搭載オペレーティングシステムを搭載している他方を、それぞれ再起動させる他方再起動実行機能部と、を備えていることを特徴とする。
【００１０】
また、複数個のマルチコアプロセッサが、データ伝送路を介して互いに通信可能に接続されて主従関係を有しており、各マルチコアプロセッサの共有メモリは、等価処理対象であるプログラムおよびデータをそれぞれ記録するプログラム記録領域およびデータ記録領域を備え、各マルチコアプロセッサは、自身側が主系として優先動作している場合に、当該自身側の各プロセッサコアの何れかに対し、当該自身側の共有メモリに記録されている等価処理対称のプログラムおよびデータを、データ伝送路を介して他方側に送信して等価処理させる等価処理機能部と、自身側が従系として待機動作している場合に、当該自身側の各プロセッサコアの何れかに対し、主系として優先動作している他方側の動作状態に応じて、各マルチコアプロセッサの主従を切り替えさせる主従切替機能部と、を更に備えていても良い。
【００１１】
また、主従切替機能部は、各プロセッサコアの何れかに対し、他方側の動作状態を検出させる他方側マルチコアプロセッサ状態検出機能部と、各プロセッサコアの何れかに対し、他方側マルチコアプロセッサ状態検出機能部の検出結果に基づいて、他方側に係る動作異常の有無等を確認し、主従の切り替えの要否を判定させる主従切替要否判定機能部と、各プロセッサコアの何れかに対し、主従切替要否判定機能部によって判定された判定結果に応じて、各マルチコアプロセッサの主従を切り替えさせる主従切替実行機能部と、を含んでいても良い。
【００１２】
また、等価処理機能部および主従切替機能部を実行するプロセッサコアに搭載されているオペレーティングシステムが、リアルタイム性を有していても良い。
【００１３】
また、マルチコアプロセッサは、各プロセッサコアに対し、異常有無判定機能部による判定結果を、共有メモリにそれぞれ記録させる判定結果記録機能部を、更に備えていることを特徴としても良い。また、自身ＯＳ状態記録機能部により共有メモリに記録させるステータス情報は、自身搭載オペレーティングシステムの生存フラグを含み、共有メモリは、生存フラグを更新記録する生存カウンタ領域を備えていることを特徴としても良い。また、異常有無判定機能部は、生存カウンタ領域の更新履歴に基づいて動作異常の有無を判定することを特徴としても良い。また、異常有無判定機能部の判定結果を、出力装置により出力することを特徴としても良い。また、各オペレーティングシステムは、メモリ使用容量がそれぞれ異なることを特徴としても良い。
【００１４】
なお、前述の情報処理装置の態様として、コンピュータを機能させるプログラムとして構成することも可能である。
【発明の効果】
【００１５】
以上示したように本発明によれば、情報処理装置のＯＳに係る再起動の適切性に貢献すること可能となる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態の一例である情報処理装置１を説明するための概略構成図。
【図２】情報処理装置１の機能構成例を説明するための概略構成図。
【図３】情報処理装置１の動作例を説明するためのフローチャート。
【図４】本実施形態の他例である情報処理装置１Ａを説明するための概略構成図。
【図５】情報処理装置１Ａの機能構成例を説明するための概略構成図。
【図６】情報処理装置１Ａの動作例を説明するためのフローチャート（プロセッサＰ１の優先動作例）。
【図７】情報処理装置１Ａの動作例を説明するためのフローチャート（プロセッサＰ２の待機動作例）。
【発明を実施するための形態】
【００１７】
本発明の実施形態の情報処理装置は、複数のＯＳをそれぞれ異なるコアに搭載して動作させるマルチコアプロセッサにおいて、例えば再起動を要するような状況の場合に、従来のように単に情報処理装置を再起動させる構成とは全く異なるものである。
【００１８】
すなわち、各コアに対し、自身搭載ＯＳ（各ＯＳのうち自身が搭載しているＯＳ）に係るステータス情報を共有メモリにそれぞれ記録（例えば所定周期で記録）させる一方で、当該各コアに対し、自身以外の他方に搭載されている他方搭載ＯＳ（各ＯＳのうち自身以外に搭載されているＯＳ）に係るステータス情報を検出させて、その検出結果に基づいて他方搭載ＯＳに係る動作異常の有無（例えば障害、停滞の有無）を判定させ、その判定結果に応じて当該判定された他方搭載ＯＳを搭載している他方（自身以外のコア）を再起動させることを可能とした構成である。
【００１９】
この本実施形態のような情報処理装置によれば、例えば動作異常のあるＯＳ側と正常に動作しているＯＳ側とが混在している場合には、当該動作異常のあるＯＳ側を再起動し、正常なＯＳ側については再起動されないように抑制できる。これにより、正常に動作しているＯＳ側においては当該動作を継続（起動処理を行わずに継続）し、動作異常のあるＯＳ側のみを再起動できるようにし、当該再起動の適切性の向上に貢献可能となる。
【００２０】
従来のように単に情報処理装置を再起動し、全てのＯＳに係る起動処理が完了した後に稼動開始（例えばユーザ等により利用開始）しようとすると、例えば起動完了時間の長いＯＳが搭載されている場合には、当該稼動開始に至るまでの時間（以下、単に稼動開始時間と適宜称する）が遅くなってしまう傾向となる。
【００２１】
一方、本実施形態によれば、起動完了時間の長いＯＳ側が正常に動作している場合には、当該正常なＯＳ側の動作を継続したままで、動作異常のあるＯＳ側のみを再起動することができるため、稼動可能時間が遅滞化しないように抑制可能であると言える。
【００２２】
本実施形態の情報処理装置は、前述のように各コアに対し、他方搭載ＯＳに係る動作異常の有無（例えば障害、停滞の有無）を判定させ、その判定結果に応じて当該判定された他方搭載ＯＳを搭載している他方（自身以外のコア）を再起動させることが可能な構成であれば、種々の分野（例えば各種設備で適用されているＰＬＣ技術や情報処理技術等の分野）の技術常識を適宜適用して設計することが可能であり、その一例として以下に示すものが挙げられる。
【００２３】
≪本実施形態の一例である情報処理装置１の概略構成≫
図１に示す本実施形態の一例である情報処理装置１は、複数のコア（図１中ではコアＣ１，Ｃ２の２個）を有したマルチコアプロセッサＰ（以下、単にプロセッサＰと適宜称する）を備えたものであって、例えば図外の設備（水処理設備，電力設備等）に適宜設置し、当該設備の監視対象（図示省略）と上位システム（図示省略）との間で適宜動作できるように構成されたものである。
【００２４】
この情報処理装置１の場合、図１に示すように、プロセッサＰが、コアＣ１，Ｃ２にそれぞれＯＳ１０，２０を搭載し、コアＣ１，Ｃ２から各々アクセスされてデータを授受（例えば図中矢印方向に授受）することが可能な共有メモリＭを備えた構成となっているが、これに限定されるものではなく、種々の構成に適宜変更することが可能である。
【００２５】
例えば、プロセッサＰは、前述のように単にコアＣ１，Ｃ２の２個を備えたものに限定されず、３個以上を備えた構成であっても良く、図外のバス等を介して共有メモリＭに各々アクセスしてデータを授受することが可能な構成が挙げられる。
【００２６】
また、共有メモリＭにおいても、各コア（図１ではコアＣ１，Ｃ２）からそれぞれアクセスされてデータを授受できるものであれば、特に限定されるものではない。図１の共有メモリＭの場合、各コアＣ１，Ｃ２に対応したステータス領域Ｍ１，Ｍ２（詳細を後述する）が設けられ、それらステータス領域Ｍ１，Ｍ２には生存カウンタ領域Ｍ１１，Ｍ２１（詳細を後述する）がそれぞれ設けられた構成となっている。
【００２７】
また、図１のように単に２個のＯＳ１０，２０を備えたものに限定されず、３個以上のＯＳを備えた構成であっても良く、各ＯＳがそれぞれ異なるコアに搭載されて動作するものであれば良い。また、各ＯＳ１０，２０は、単に１個のコアに搭載されるのではなく、複数のコアに搭載されても良い。例えば図１のコアＣ１，Ｃ２をそれぞれ２個（合計４個のコア）備えているものとして、当該２個のコアＣ１に対し１個のＯＳ１０を搭載し、２個のコアＣ２に対しては１個のＯＳ２０を搭載した構成（図示省略）であっても良い。
【００２８】
また、ＯＳ１０，２０の種類も特に限定されず、情報処理装置１の使用目的等に応じて適宜選択して搭載することが可能であり、ＯＳ１０，２０のメモリ使用容量がそれぞれ異なる構成であっても良い。その一例としては、メモリ使用容量が比較的大きい情報処理用ＯＳ（例えばＬｉｎｕｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）等の汎用ＯＳ）と、当該メモリ使用容量が比較的小さいＲＴ用ＯＳ（例えばμＩＴＲＯＮ，Ｔ−Ｋｅｒｎｅｌ等）と、を搭載した構成が挙げられる。
【００２９】
また、プロセッサＰ等の他に、例えば通常のコンピュータのハードウェアリソース（例えばＣＰＵ等の演算処理部、ＲＯＭ，ＲＡＭ等の主記憶装置、ＳＳＤ，ＨＤＤ等の補助記憶装置など）を適宜備えても良く、ＯＳ１０，２０の他に、例えば通常のコンピュータのソフトウェアリソース（アプリケーションプログラムなど）を備えても良い。
【００３０】
以上のような情報処理装置１のハードウェアリソースとソフトウェアリソースの協働の結果、プロセッサＰは、例えば図２の機能構成例に示すように、自身ＯＳ状態記録機能部１１，他方ＯＳ状態検出機能部１２，異常有無判定機能部１３，他方再起動実行機能部１４を実装したものとなっている。なお、情報処理装置１においては、前述のような各機能部１１〜１４の他に、図２に示すように判定結果記録機能部１５等を更に実装したものとしても良い。
【００３１】
この図２の情報処理装置１において、自身ＯＳ状態記録機能部１１は、各コアＣ１，Ｃ２に対し、自身搭載ＯＳ（図１の場合、コアＣ１はＯＳ１０、コアＣ２はＯＳ２０）に係るステータス情報を、共有メモリＭのステータス領域Ｍ１，Ｍ２にそれぞれ記録させるように構成されたものである。このステータス情報の記録においては、例えば所定周期で記録させことが挙げられる。
【００３２】
ステータス情報は、ＯＳ１０，ＯＳ２０に係る動作の情報であり、ＯＳ１０，２０自体の動作情報の他に、当該ＯＳ１０，２０によって接続されているアプリケーションプログラムや周辺機器（図示省略）の動作情報を含んだものが挙げられる。ＯＳ１０，２０自体やアプリケーションプログラムの動作情報の一例としては、所望通りに動作（正常に動作）しているかどうかや、動作異常の有無（例えば暴走，停滞（停止、あるいは極めて遅い状態等）の有無）等を含んだ情報が挙げられる。
【００３３】
周辺機器の動作情報は、特に限定されるものではなく、種々の態様のものが考えられ得る。ＯＳ１０が情報処理用ＯＳの場合の一例としてはＳＲＡＭ、バッテリ、ファン、電源、ＳＤカード等の情報が挙げられ、ＯＳ２０がＲＴ用ＯＳの場合の一例としてはＬＡＮ、ｍｉｃｒｏＳＤ、シリアル、ＤＩ（デジタル信号入力モジュール）／ＤＯ（デジタル信号出力モジュール）、バッテリ、Ｆｌａｓｈメモリ等の情報が挙げられるが、これら情報の全てをそれぞれ共有メモリＭに記録しても良いし、図１中のステータス領域Ｍ１，Ｍ２に示すように当該情報の一部のみを記録するようにしても良い。
【００３４】
また、図１中のステータス領域Ｍ１，Ｍ２では、生存カウンタ領域Ｍ１１，Ｍ２１が設けられ、自身搭載ＯＳの生存フラグをそれぞれ記録できる構成となっている。この生存カウンタ領域Ｍ１１，Ｍ２１の一例としては、各コアＣ１，Ｃ２から所定周期で送信される生存フラグを更新記録する構成が挙げられる。
【００３５】
他方ＯＳ状態検出機能部１２は、各コアＣ１，Ｃ２に対し、自身ＯＳ状態記録機能部１１によって共有メモリＭに記録されたステータス情報のうち、他方搭載ＯＳ（図１の場合、コアＣ１はＯＳ２０、コアＣ２はＯＳ１０）に係るステータス情報を、それぞれ検出させるように構成されたものである。この検出の態様としては、他方搭載ＯＳに係るステータス情報の全てまたは一部を所定周期で検出する構成が挙げられる。一部のみを検出する一例としては、生存カウンタ領域Ｍ１１，Ｍ２１の更新情報を検出することが挙げられる。
【００３６】
異常有無判定機能部１３は、各コアＣ１，Ｃ２に対し、他方ＯＳ状態検出機能部１２の検出結果に基づいて、他方搭載ＯＳに係る動作異常の有無等をそれぞれ判定させるように構成されたものである。判定方法としては、種々の態様を適用することが可能であり、特に限定されるものではない。その一例としては、各ＯＳ１０，２０において、所望通りに動作（正常に動作）する場合の現象や、動作異常が有る場合の現象のデータを予め観測し、その観測データと比較することにより、動作異常の有無や当該動作異常のレベル等を判定することが挙げられる。
【００３７】
動作異常のレベルの判定においては、例えばＯＳを再起動する必要があるレベルかどうかや、情報処理装置１全体を再起動や強制終了する必要があるレベルかどうかや、当該再起動等が直ちに必要なレベルかどうかや、後述の判定結果記録機能部１５によって記録する程度のレベルかどうか等を判定することが挙げられる。
【００３８】
検出結果において生存カウンタ領域の更新履歴が含まれている場合には、当該更新の有無（所定周期で更新されているかどうか等）により判定することが挙げられる。具体例としては、生存カウンタ領域が所定周期で更新されていないことを検出した場合に、他方搭載ＯＳにおいて生存カウンタ領域の更新動作をできない程度の動作異常があるものとし、これを持って当該他方搭載ＯＳ側が再起動を要する状態であるものとみなすことが挙げられる。
【００３９】
他方再起動実行機能部１４は、各コアＣ１，Ｃ２に対し、異常有無判定機能部１３によって判定された他方搭載ＯＳを搭載している他方（以下、単に他方コアと適宜称する）を、当該判定結果に応じて、それぞれ再起動（例えば他方コアのリセットポートにアクセスして再起動）させるように構成されたものである。この他方再起動実行機能部１４により再起動されたコア側は、自身搭載ＯＳ（コアＣ１が再起動された場合はＯＳ１０、コアＣ２が再起動された場合はＯＳ２０）に係る起動処理を開始して実行（稼動できるように実行）されることとなる。この起動処理の項目の一例としては、ＯＳ１０，２０に係る周辺機器（例えばフラッシュメモリ，ＬＡＮ，コア内蔵ペリフェラル等）に対する各種初期化処理や各種診断処理（セルフチェック）等が挙げられる。各起動処理が完了に至るまでの起動完了時間においては、例えばＯＳ１０，２０の種類（例えばＯＳのメモリ使用容量の違い）や周辺機器の状況（例えば周辺機器との通信状況）等によって差異が生じ得ることが考えられる。
【００４０】
判定結果記録機能部１５は、各コアＣ１，Ｃ２に対し、異常有無判定機能部１３による判定結果を、共有メモリＭにそれぞれ記録させるように構成されたものである。共有メモリＭに対する記録内容としては、例えばＯＳ１０，２０自体の動作情報の他に、当該ＯＳ１０，２０によって接続されているアプリケーションプログラムや周辺機器（図示省略）の動作情報を含んだものが挙げられ、これら情報の全てを記録しても良く、一部のみを選択的に適宜記録するようにしても良い。また、共有メモリＭに記録した記録内容は、出力装置（例えば、ディスプレイ，プリンタ，スピーカ，ランプ等）により適宜出力することが挙げられ、これにより、当該記録内容を情報処理装置１のユーザに認識させることも可能となる。
【００４１】
以上示した情報処理装置１は、各機能部１１〜１５の全てを必ずしも具備する必要はなく、本発明の目的を達成できる態様であれば、各機能部１１〜１５のうち一部を適宜省略したり、他の機能部を適宜追加して具備しても良い。
【００４２】
《情報処理装置１の動作例》
次に、図１，図２に示したように構成された情報処理装置１の動作例を、図３に基づいて説明する。なお、この動作例では、ＯＳ１０にはメモリ使用容量が比較的大きい情報処理用ＯＳを適用し、ＯＳ２０にはメモリ使用容量が比較的小さいＲＴ用ＯＳを適用し、生存カウンタ領域Ｍ１１，Ｍ２１の更新履歴に基づいて、コアＣ１側およびコアＣ２側をそれぞれ再起動，記録等を適宜実施できるものとする。また、図１，図２に示すものと同様のものには、同一符号を付する等により、その詳細な説明を適宜省略する。
【００４３】
情報処理装置１を電源起動すると、まず図３に示すように、コア電源投入処理ステップＳ１によりプロセッサＰのコアＣ１，Ｃ２等に電源がそれぞれ投入され、コアＣ１側およびコアＣ２側それぞれにおいて、ハードウェア起動処理ステップＳ２により周辺機器等が起動し、続いてＯＳ起動処理ステップＳ３によりＯＳ１０，２０の起動処理が開始して実行される。
【００４４】
各起動処理が完了すると、通常動作処理ステップＳ４によりＯＳ１０，２０に係る所望の動作が開始して実行され、この通常動作処理ステップＳ４の動作中、所定周期で状態記録・検出処理ステップＳ５に移行する。この状態記録・検出処理ステップＳ５では、自身ＯＳ状態記録機能部１１が、各コアＣ１，Ｃ２に対し、自身搭載ＯＳ（図３の場合、コアＣ１はＯＳ１０、コアＣ２はＯＳ２０）に係るステータス情報を、共有メモリＭのステータス領域Ｍ１，Ｍ２にそれぞれ記録させる。また、他方ＯＳ状態検出機能部１２が、各コアＣ１，Ｃ２に対し、自身ＯＳ状態記録機能部１１によって共有メモリＭに記録されたステータス情報のうち、他方搭載ＯＳ（図３の場合、コアＣ１はＯＳ２０、コアＣ２はＯＳ１０）に係るステータス情報を、それぞれ検出させる。
【００４５】
次に、異常有無判定処理ステップＳ６に移行して、異常有無判定機能部１３が各コアＣ１，Ｃ２に対し、処理ステップＳ５による検出結果（生存カウンタ領域Ｍ１１，Ｍ２１が所定周期で更新されているかどうか）に基づいて、他方搭載ＯＳに係る動作異常の有無等をそれぞれ判定させる。
【００４６】
この判定結果において、他方搭載ＯＳに動作異常が有ることを判定したコア側は、他方コア再起動処理ステップ７に移行し、他方再起動実行機能部１４により、他方搭載ＯＳを搭載している他方コア側を再起動（例えばコアＣ１がコアＣ２側を再起動）した後、判定記録処理ステップＳ８に移行し、当該判定内容を共有メモリＭ（コアＣ１側はステータス領域Ｍ１、コアＣ２側はステータス領域Ｍ２）に記録したうえで、再び処理ステップＳ４に戻り、所定周期で処理ステップＳ５に移行することとなる。一方、再起動された他方コア側においては、再起動により他方コアに電源が再投入されると、処理ステップＳ１〜Ｓ３を経た後、処理ステップＳ４により所望の動作が再び開始され、所定周期で処理ステップＳ５に移行することとなる。
【００４７】
また、判定結果において、他方搭載ＯＳに動作異常が無いことを判定したコア側は、再び処理ステップＳ４に戻り、所定周期で処理ステップＳ５に移行することとなる。
【００４８】
また、判定結果において、他方搭載ＯＳに軽微な動作異常（再起動等が不要なレベルの動作異常）が有ることを判定したコア側は、判定記録処理ステップＳ８に移行し、当該判定内容を共有メモリＭ（コアＣ１側はステータス領域Ｍ１、コアＣ２側はステータス領域Ｍ２）に記録したうえで、再び処理ステップＳ４に戻り、所定周期で処理ステップＳ５に移行することとなる。
【００４９】
≪本実施形態の他例である情報処理装置１Ａの概略構成≫
図１等には、一つのプロセッサＰを備えた構成の情報処理装置１を示したが、例えば後述の図４に示す情報処理装置１Ａのように、プロセッサＰと同様の構成のプロセッサを複数個用いて冗長化（図４ではプロセッサＰ１，Ｐ２を用いて二重化）し、当該各プロセッサの共有メモリＭに記録されている等価処理対象のプログラムおよびデータを等価処理（等価処理対象のプログラムおよびデータを同期保存）できる構成としても良い。
【００５０】
このように冗長化された構成によれば、当該各プロセッサにおいて主従関係を持たせることができ、何れかをマスタ（主系）として優先動作するように機能させ、残りをスレーブ（従系）として待機動作するように機能させることが可能となる。冗長化や等価処理自体は、種々の技術が存在（例えば特許文献３）しており、当該技術を情報処理装置１Ａに適宜適用することが可能である。
【００５１】
以下、図４において、図１，図２に示すものと同様のものには同一符号を付する等により、その詳細な説明を適宜省略する。
【００５２】
図４に示す情報処理装置１Ａでは、プロセッサＰと同様の構成のプロセッサＰ１，Ｐ２が、データ伝送路Ｌ（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）等）を介して互いに通信可能に接続された構成となっている。このような構成の具体例としては、プロセッサＰ１，Ｐ２をそれぞれ所望の制御装置に搭載して並設（例えば各制御装置を個別のラックに収容して並設）した構成が挙げられる。
【００５３】
プロセッサＰ１，Ｐ２の各共有メモリＭにおいては、ステータス領域Ｍ１，Ｍ２の他に、プログラム記録領域ＭＰ，データ記録領域ＭＤが設けられている。プログラム記録領域ＭＰ，データ記録領域ＭＤには、等価処理対象となるプログラム，データがそれぞれ記録される。具体例としては、例えばコアＣ１，Ｃ２を各機能部１１〜１５（および後述の等価処理機能部１６，主従切替機能部１７等）として機能させるプログラムや、当該プログラムの実行に必要な各種データが挙げられる。
【００５４】
以上のような情報処理装置１Ａにおいては、情報処理装置１と同様のハードウェアリソースとソフトウェアリソースの協働の結果、プロセッサＰ１，Ｐ２それぞれが、例えば図５の機能構成例に示すように、自身ＯＳ状態記録機能部１１，他方ＯＳ状態検出機能部１２，異常有無判定機能部１３，他方再起動実行機能部１４，等価処理機能部１６を実装したものとなる。また、各機能部１１〜１４，１６の他に、図５に示すように、判定結果記録機能部１５や主従切替機能部１７（他方側プロセッサ状態検出機能部１７ａ，主従切替要否判定機能部１７ｂ，主従切替実行機能部１７ｃ）等を更に実装したものとしても良い。なお、図５においては、プロセッサＰ１，Ｐ２の機能構成は同様であるため、一つに纏めて描写している。
【００５５】
この図５において、等価処理機能部１６は、自身側プロセッサ（例えば、プロセッサＰ１に実装されている等価処理機能部１６の場合、自身側プロセッサは当該プロセッサＰ１）がマスタとして優先動作している場合に、各コアＣ１，Ｃ２の何れか（後述の図６ではコアＣ２）に対し、当該自身側プロセッサのプログラム記録領域ＭＰ，データ記録領域ＭＤに記録されているプログラムおよびデータを、データ伝送路Ｌを介して他方側プロセッサ（例えば、プロセッサＰ１に実装されている等価処理機能部１６の場合、他方側プロセッサはプロセッサＰ２）に送信して、等価処理するように構成されたものである。
【００５６】
この等価処理機能部１６による等価処理においては、例えば所定周期で実行させことが挙げられる。具体例としては、自身側プロセッサが、自身ＯＳ状態記録機能部１１による自身搭載ＯＳに係るステータス情報の記録、および他方ＯＳ状態検出機能部１２による他方搭載ＯＳに係るステータス情報の検出を実行した後に、当該等価処理機能部１６による等価処理を実行させることが挙げられる。
【００５７】
また、等価処理機能部１６は、各プロセッサＰ１，Ｐ２の共有メモリＭに記録されている等価処理対象のプログラムおよびデータを前述のように等価処理できる構成であれば種々の態様を適用することが可能であり、特に限定されるものではないが、例えばリアルタイム性のあるＲＴ用ＯＳを搭載したコアに構成させた場合には、当該等価処理においてリアルタイム性を持たせ易くなる。
【００５８】
主従切替機能部１７は、自身側プロセッサ（例えば、プロセッサＰ２に実装されている主従切替機能部１７の場合、自身側プロセッサは当該プロセッサＰ２）がスレーブとして待機動作している場合に、各コアＣ１，Ｃ２の何れか（後述の図６ではコアＣ２）に対し、マスタとして優先動作している他方側プロセッサ（例えば、プロセッサＰ２に実装されている主従切替機能部１７の場合、他方側プロセッサはプロセッサＰ１）の動作状態に応じて、主従を切り替えるように構成されたものである。この主従の切り替えにより、自身側プロセッサがマスタに切り替って優先動作し、他方側プロセッサがスレーブに切り替わって待機動作することとなる。当該スレーブに切り替った他方側プロセッサは、必要に応じて適宜修理等を実施することが挙げられる。
【００５９】
主従切替機能部１７は、プロセッサＰ１，Ｐ２の主従関係を前述のように適宜切り替えることが可能な構成であれば、種々の態様を適用することが可能であり、特に限定されるものではないが、例えば図５に示すように、他方側プロセッサ状態検出機能部１７ａ，主従切替要否判定機能部１７ｂ，主従切替実行機能部１７ｃを具備した構成とし、以下に示すように機能させることが挙げられる。
【００６０】
他方側プロセッサ状態検出機能部１７ａは、各コアＣ１，Ｃ２の何れか（後述の図６ではコアＣ２）に対し、他方側プロセッサの動作情報を検出（例えばデータ伝送路Ｌを介して検出）させる。この検出の態様としては、他方側プロセッサに係る情報（ステータス情報等）の全てまたは一部を所定周期で検出させる構成が挙げられる。一部のみを検出させる一例としては、生存カウンタ領域Ｍ１１，Ｍ２１の更新情報を検出させることが挙げられる。
【００６１】
また、他方側プロセッサ状態検出機能部１７ａによる検出においては、例えば所定周期で実行させることが挙げられる。具体例としては、他方側プロセッサの等価処理機能部１６により所定周期の等価処理が実行されるように設定されている場合、自身側プロセッサが当該等価処理される毎に、他方側プロセッサ状態検出機能部１７ａにより他方側プロセッサの動作情報を検出させることが挙げられる。
【００６２】
また、当該所定周期の等価処理が任意時間（例えばタイマー等により設定されている時間）を過ぎても実行されなかった場合には、他方側プロセッサに係る何らかの動作異常が発生している可能性がある。このような場合においても、当該任意時間経過後に、他方側プロセッサ状態検出機能部１７ａにより他方側プロセッサの動作情報を検出させることが挙げられる。
【００６３】
主従切替要否判定機能部１７ｂは、各コアＣ１，Ｃ２の何れか（後述の図６ではコアＣ２）に対し、他方側プロセッサ状態検出機能部１７ａの検出結果に基づいて、他方側プロセッサに係る動作異常の有無等を確認し、主従の切り替えの要否を判定させるように構成されたものである。判定方法の一例としては、他方側プロセッサにおいて、所望通りに動作（正常に動作）する場合の現象や、動作異常（重故障，電源断，アプリケーション異常等）が有る場合の現象のデータを予め観測し、その観測データと比較することにより、動作異常の有無や当該動作異常のレベル等を確認して判定することが挙げられる。
【００６４】
動作異常のレベルの判定においては、例えば他方側プロセッサを再起動や強制終了する必要があるレベルかどうかや、当該再起動等を実施してマスタとして優先動作できるレベルかどうかや、等価処理が継続して実行されているかどうかや、主従の切り替えを要するレベルかどうか等を判定することが挙げられる。
【００６５】
検出結果において生存カウンタ領域の更新履歴が含まれている場合には、当該更新の有無（所定周期で更新されているかどうか等）により判定することが挙げられる。具体例としては、生存カウンタ領域が所定周期で更新されていないことを検出した場合に、当該生存カウンタ領域の更新動作をできない程度の動作異常があるものとし、これを持って他方側プロセッサにおいて主従の切り替えを要する状態であるものとみなすことが挙げられる。
【００６６】
主従切替実行機能部１７ｃは、各コアＣ１，Ｃ２の何れか（後述の図６ではコアＣ２）に対し、主従切替要否判定機能部１７ｂによって判定された判定結果に応じて、プロセッサＰ１，Ｐ２の主従関係を切り替えさせるように構成されたものである。この主従切替実行機能部１７ｃによりマスタからスレーブに切り替った他方側プロセッサは、必要に応じて適宜修正等を実施し、マスタとして優先動作できるようにしておくことが挙げられる。
【００６７】
以上示した情報処理装置１Ａは、各機能部１１〜１７の全てを必ずしも具備する必要はなく、本発明の目的を達成できる態様であれば、各機能部１１〜１７のうち一部を適宜省略したり、他の機能部を適宜追加して具備しても良い。
【００６８】
《情報処理装置１Ａの動作例》
次に、図４，図５に示したように構成された情報処理装置１Ａにおいて、初期状態が、プロセッサＰ１がマスタとして優先動作し、プロセッサＰ２がスレーブとして待機動作するように設定（例えば、プロセッサＰ１，Ｐ２の主従関係を決定するディップスイッチを備えて適宜設定）されているものとして、各プロセッサＰ１，Ｐ２の動作例をそれぞれ図６，図７に基づいて説明する。
【００６９】
なお、図６，図７の各動作例では、ＯＳ１０にはメモリ使用容量が比較的大きい情報処理用ＯＳを適用し、ＯＳ２０にはメモリ使用容量が比較的小さいＲＴ用ＯＳを適用し、生存カウンタ領域Ｍ１１，Ｍ２１の更新履歴に基づいて、コアＣ１側およびコアＣ２側をそれぞれ再起動，記録等を適宜実施できるものとする。また、図１〜図５に示すものと同様のものには、同一符号を付する等により、その詳細な説明を適宜省略する。
【００７０】
＜プロセッサＰ１のマスタとしての優先動作例＞
情報処理装置１Ａが電源起動すると、プロセッサＰ１においては、図６に示すように、処理ステップＳ１〜Ｓ３を経て起動処理が開始して実行され、処理ステップＳ４により、ＯＳ１０，２０に係る所望の動作（マスタとしての優先動作）が開始して実行される。
【００７１】
処理ステップＳ４の動作中、所定周期で処理ステップＳ５に移行し、自身ＯＳ状態記録機能部１１による自身搭載ＯＳに係るステータス情報の記録、および他方ＯＳ状態検出機能部１２による他方搭載ＯＳに係るステータス情報の検出を、適宜実行させる。
【００７２】
次に、等価処理ステップＳ５１に移行して、コアＣ２に対し、プロセッサＰ１（自身側プロセッサ）のプログラム記録領域ＭＰ，データ記録領域ＭＤに記録されているプログラムおよびデータを、データ伝送路Ｌを介してプロセッサＰ２（他方側プロセッサ）に送信して、等価処理する。
【００７３】
そして、処理ステップＳ６に移行して、処理ステップＳ５による検出結果に基づいて他方搭載ＯＳに係る動作異常の有無等をそれぞれ判定させ、当該判定結果に基づいて、後段の処理ステップに適宜移行（図３と同様に処理ステップＳ７，Ｓ８，Ｓ４等に移行）させる。
【００７４】
＜プロセッサＰ２のスレーブとしての待機動作例＞
情報処理装置１Ａが電源起動すると、プロセッサＰ２においては、図７に示すように、処理ステップＳ１〜Ｓ３を経て起動処理が開始して実行され、処理ステップＳ４により、ＯＳ１０，２０に係る所望の動作（スレーブとしての待機動作）が開始して実行される。
【００７５】
処理ステップＳ４の動作中、所定周期（例えばプロセッサＰ１の処理ステップＳ５１の周期、または当該処理ステップＳ５１が任意時間を過ぎても実行されなかった場合には当該任意時間経過後）で他方側プロセッサ状態検出処理ステップＳ４１に移行し、コアＣ２に対し、データ伝送路Ｌを介してプロセッサＰ１（他方側プロセッサ）の動作情報を検出させる。
【００７６】
次に、主従切替要否判定処理ステップ４２に移行して、コアＣ２に対し、処理ステップＳ４１による検出結果（生存カウンタ領域Ｍ１１，Ｍ２１が所定周期で更新されているかどうか）に基づいて、他方側プロセッサに係る動作異常の有無等を確認し、主従の切り替えの要否を判定させる。
【００７７】
この判定結果において、主従の切り替えが不用と判定された場合には、再び処理ステップＳ４に戻り、所定周期で処理ステップＳ４１に移行することとなる。
【００７８】
一方、判定結果において、主従の切り替えが必要と判定された場合には、主従切替実行処理ステップに移行し、コアＣ２に対し、プロセッサＰ１，Ｐ２の主従関係の切り替えを実行させる。情報処理装置１Ａの場合、プロセッサＰ２はマスタに切り替って図６に示したように優先動作することとなる。また、プロセッサＰ１においては、スレーブに切り替って図７に示したように待機動作（マスタに切り替る前のプロセッサＰ２と同様に動作）することとなる。
【００７９】
以上、本発明において、記載された具体例に対してのみ詳細に説明したが、本発明の技術思想の範囲で多彩な変更等が可能であることは、当業者にとって明白なことであり、このような変更等が特許請求の範囲に属することは当然のことである。例えば本発明は、コンピュータを前述の各機能部１１〜１５として機能させるプログラムとして構成することもできる。このプログラムによれば、コンピュータに前述のステップＳ１〜Ｓ８等の各処理を実行させることができる。このプログラムは、ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＭＯ，ＨＤＤ，ＢＤ−ＲＯＭ，ＢＤ−Ｒ，ＢＤ−ＲＥなどの記録媒体に記録して、保存・配布することも可能である。この記録媒体は、記録媒体駆動装置を利用して読み出され、そのプログラムコード自体が前記実施形態の処理を実現するので、該記録媒体も本発明を構成する。
【００８０】
また、通信媒体においては、特に限定されるものではなく、電話回線の有線通信媒体、マイクロ波回線の無線通信媒体等を含んだものが挙げられ、インターネットも含んでも良い。
【００８１】
また、前述のようなプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて本実施形態のような機能が実現される場合も、挙げられる。
【００８２】
ここで、以上示した各実施例等から把握し得る技術的思想について、以下に列挙する。
＜イ＞異常有無判定機能部は、生存カウンタ領域の更新履歴に基づいて動作異常の有無を判定すること。
＜ロ＞異常有無判定機能部の判定結果を、出力装置により出力すること。
＜ハ＞各オペレーティングシステムは、メモリ使用容量がそれぞれ異なること。
＜ニ＞情報処理装置として、コンピュータを機能させるプログラム。
【符号の説明】
【００８３】
１…情報処理装置
１１…自身ＯＳ状態記録機能部
１２…他方ＯＳ状態検出機能部
１３…異常有無判定機能部
１４…他方再起動実行機能部
１５…判定結果記録機能部
１６…等価処理機能部
１７…主従切替機能部１７
１７ａ…他方側プロセッサ（他方側マルチコアプロセッサ）状態検出機能部
１７ｂ…主従切替要否判定機能部
１７ｃ…主従切替実行機能部
Ｌ…データ伝送路
Ｐ，Ｐ１，Ｐ２…マルチコアプロセッサ
Ｃ１，Ｃ２…プロセッサコア
Ｍ…共有メモリ
Ｍ１，Ｍ２…ステータス領域
Ｍ１１，Ｍ２１…生存カウンタ領域
ＭＰ…プログラム記録領域
ＭＤ…データ記録領域
【図１】
2019057267.tif 000003
【図２】
2019057267.tif 000004
【図３】
2019057267.tif 000005
【図４】
2019057267.tif 000006
【図５】
2019057267.tif 000007
【図６】
2019057267.tif 000008
【図７】
2019057267.tif 000009