(57)【要約】【課題】複数のプロセッサを有する装置またはシステムにおいて、ファームウェアプログラムの更新の際に障害が発生した場合であっても、自動的に更新後のファームウェアプログラムに復旧する。【解決手段】情報処理装置は、第１プロセッサのファームウェアプログラムを記憶する第１記憶手段と、第２プロセッサのファームウェアプログラムを記憶する第２記憶手段と、前記第２プロセッサの動作状態を確認する確認手段と、前記第１プロセッサを制御する第１制御手段と、を備え、前記第１制御手段は、前記第２プロセッサのファームウェアプログラムの更新の際に、前記第２プロセッサのファームウェアプログラムの更新プログラムを前記第１記憶手段に記憶させ、前記確認手段が前記第２プロセッサの異常を確認した場合、前記第１記憶手段に記憶させた前記更新プログラムを用いて、前記第２記憶手段のファームウェアプログラムを更新する。【選択図】      図９
2017049874.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサのファームウェアプログラムを記憶する第１記憶手段と、
第２プロセッサのファームウェアプログラムを記憶する第２記憶手段と、
前記第２プロセッサの動作状態を確認する確認手段と、
前記第１プロセッサを制御する第１制御手段と、を備え、
前記第１制御手段は、
前記第２プロセッサのファームウェアプログラムの更新プログラムを前記第１記憶手段に記憶させ、
前記確認手段が前記第２プロセッサの異常を確認した場合、前記第１記憶手段に記憶させた前記更新プログラムを用いて、前記第２記憶手段のファームウェアプログラムを更新する、
ことを特徴とする情報処理装置。
【請求項２】
前記第２プロセッサを制御する第２制御手段と、
前記第２プロセッサに接続された揮発性メモリと、を更に備え、
前記第１記憶手段および前記第２記憶手段は、夫々、不揮発性メモリであり、
前記第２制御手段は、該第２プロセッサのファームウェアプログラムの更新の際に、揮発性メモリに格納された更新前のファームウェアプログラムを用いて前記第２プロセッサを動作させる、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記更新プログラムを受信する受信手段を更に備え、
前記受信手段が受信した更新プログラムに前記第２プロセッサのファームウェアプログラムを更新する際に、前記第１制御手段は、前記更新プログラムを前記第１記憶手段に記憶させる、ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
第１プロセッサのファームウェアプログラムを記憶する第１記憶手段と、前記第１プロセッサを制御する第１制御手段と、第２プロセッサの動作状態を確認する確認手段とを備える第１情報処理装置と、
前記第２プロセッサのファームウェアプログラムを記憶する第２記憶手段と、前記第１情報処理装置と通信する通信手段とを備える第２情報処理装置と、を備え、
前記第１制御手段は、
前記第２プロセッサのファームウェアプログラムの更新プログラムを前記第１記憶手段に記憶させ、
前記確認手段が前記第２プロセッサの異常を確認した場合、前記第１記憶手段に記憶させた前記更新プログラムを前記第２情報処理装置に送信し、
前記通信手段は、前記第１制御手段から送信された前記更新プログラムを用いて、前記第２記憶手段のファームウェアプログラムを更新する、
ことを特徴とする情報処理システム。
【請求項５】
前記第２情報処理装置は、前記第２プロセッサを制御する第２制御手段と、前記第２プロセッサに接続された揮発性メモリと、を更に備え、
前記第１記憶手段および前記第２記憶手段は、夫々、不揮発性メモリであり、
前記第２制御手段は、該第２プロセッサのファームウェアプログラムの更新の際に、揮発性メモリに格納された更新前のファームウェアプログラムを用いて前記第２プロセッサを動作させる、
ことを特徴とする請求項４に記載の情報処理システム。
【請求項６】
前記第１情報処理装置は、前記更新プログラムを受信する受信手段を更に備え、
前記第１制御手段は、前記更新プログラムを前記第１記憶手段に記憶させ、且つ、前記更新プログラムを前記第２情報処理装置に送信し、
前記通信手段は、前記第１制御手段から送信された前記更新プログラムを用いて、前記第２記憶手段のファームウェアプログラムを更新する、
ことを特徴とする請求項４または５に記載の情報処理システム。
【請求項７】
第１プロセッサのファームウェアプログラムを記憶する第１記憶手段および第２プロセッサのファームウェアプログラムを記憶する第２記憶手段を備える情報処理装置の制御方法であって、
前記第１記憶手段に、前記第２プロセッサのファームウェアプログラムの更新プログラムを記憶させ、
前記第２プロセッサの動作状態を確認し、
前記第２プロセッサの異常を確認したとき、前記第１記憶手段に記憶させた前記更新プログラムを用いて、前記第２記憶手段のファームウェアプログラムを更新する、
ことを特徴とする制御方法。
【請求項８】
第１プロセッサのファームウェアプログラムを記憶する第１記憶手段を備える第１情報処理装置と、第２プロセッサのファームウェアプログラムを記憶する第２記憶手段を備える第２情報処理装置とを備える情報処理システムの制御方法であって、
前記第１記憶手段に、前記第２プロセッサのファームウェアプログラムの更新プログラムを記憶させ、
前記第２プロセッサの動作状態を確認し、
前記第２プロセッサの異常を確認したとき、前記第１記憶手段に記憶させた前記更新プログラムを前記第２情報処理装置に送信し、
前記送信された更新プログラムを用いて、第２記憶手段のファームウェアプログラムを更新する、
ことを特徴とする制御方法。
【請求項９】
第１プロセッサのファームウェアプログラムを記憶する第１記憶手段および第２プロセッサのファームウェアプログラムを記憶する第２記憶手段を備える情報処理装置の制御プログラムであって、
前記第１記憶手段に、前記第２プロセッサのファームウェアプログラムの更新プログラムを記憶させる処理と、
前記第２プロセッサの動作状態を確認する処理と、
前記第２プロセッサの異常を確認したとき、前記第１記憶手段に記憶させた前記更新プログラムを用いて、前記第２記憶手段のファームウェアプログラムを更新する処理と、を前記情報処理装置に実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、制御方法、および制御プログラムに関する。
【背景技術】
【０００２】
情報処理装置の中央演算処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ））のファームウェア（ＦｉｒｍＷａｒｅ（ＦＷ））のアップデートを、情報処理装置の動作中に行うことがある。
【０００３】
例えば、下位のＣＰＵのＦＷの更新（アップデートまたはアップグレード）中に情報処理装置の電源が切れるなどの障害が発生すると、正常にこのＦＷが更新されない可能性がある。この場合、この下位のＣＰＵは、起動できなくなる可能性がある。
【０００４】
上記特許文献１〜３には、このような障害が発生した場合、更新前のプログラムに戻す方法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１０５４０７号公報
【特許文献２】特開平１１−３２８０４０号公報
【特許文献３】特開２００２−４４６９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１〜３に記載の技術では、障害が発生すると、自動的に、更新前の状態に戻ってしまう。したがって、ファームウェアを更新する処理を再び実行させる必要があり、手間がかかってしまう。
【０００７】
本発明の目的は、複数のプロセッサを有する装置またはシステムにおいて、ファームウェアプログラムの更新の際に障害が発生した場合であっても、自動的に更新後のファームウェアプログラムに復旧する技術を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一態様に係る情報処理装置は、第１プロセッサのファームウェアプログラムを記憶する第１記憶手段と、第２プロセッサのファームウェアプログラムを記憶する第２記憶手段と、前記第２プロセッサの動作状態を確認する確認手段と、前記第１プロセッサを制御する第１制御手段と、を備え、前記第１制御手段は、前記第２プロセッサのファームウェアプログラムの更新プログラムを前記第１記憶手段に記憶させ、前記確認手段が前記第２プロセッサの異常を確認した場合、前記第１記憶手段に記憶させた前記更新プログラムを用いて、前記第２記憶手段のファームウェアプログラムを更新する。
【０００９】
本発明の一態様に係る情報処理システムは、第１プロセッサのファームウェアプログラムを記憶する第１記憶手段、前記第１プロセッサを制御する第１制御手段および第２プロセッサの動作状態を確認する確認手段を備える第１情報処理装置と、前記第２プロセッサのファームウェアプログラムを記憶する第２記憶手段および前記第１情報処理装置と通信する通信手段を備える第２情報処理装置とを、前記第１制御手段は、前記第２プロセッサのファームウェアプログラムの更新プログラムを前記第１記憶手段に記憶させ、前記確認手段が前記第２プロセッサの異常を確認した場合、前記第１記憶手段に記憶させた前記更新プログラムを前記第２情報処理装置に送信し、前記通信手段は、前記第１制御手段から送信された前記更新プログラムを用いて、前記第２記憶手段のファームウェアプログラムを更新する。
【００１０】
本発明の一態様に係る制御方法は、第１プロセッサのファームウェアプログラムを記憶する第１記憶手段および第２プロセッサのファームウェアプログラムを記憶する第２記憶手段を備える情報処理装置の制御方法であって、前記第１記憶手段に、前記第２プロセッサのファームウェアプログラムの更新プログラムを記憶させ、前記第２プロセッサの動作状態を確認し、前記第２プロセッサの異常を確認したとき、前記第１記憶手段に記憶させた前記更新プログラムを用いて、前記第２記憶手段のファームウェアプログラムを更新する。
【００１１】
本発明の一態様に係る制御方法は、第１プロセッサのファームウェアプログラムを記憶する第１記憶手段を備える第１情報処理装置と、第２プロセッサのファームウェアプログラムを記憶する第２記憶手段を備える第２情報処理装置とを備える情報処理システムの制御方法であって、前記第１記憶手段に、前記第２プロセッサのファームウェアプログラムの更新プログラムを記憶させ、前記第２プロセッサの動作状態を確認し、前記第２プロセッサの異常を確認したとき、前記第１記憶手段に記憶させた前記更新プログラムを前記第２情報処理装置に送信し、前記送信された更新プログラムを用いて、第２記憶手段のファームウェアプログラムを更新する。
【００１２】
なお、上記装置、システムまたは方法を、コンピュータによって実現するコンピュータプログラム、およびそのコンピュータプログラムが格納されている、コンピュータ読み取り可能な非一時的記録媒体も、本発明の範疇に含まれる。
【発明の効果】
【００１３】
複数のプロセッサを有する装置またはシステムにおいて、ファームウェアプログラムの更新の際に障害が発生した場合であっても、自動的に更新後のファームウェアプログラムに復旧することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施の形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図２】本発明の第１の実施の形態に係る情報処理装置の機能構成の一例を示す機能ブロック図である。
【図３】本発明の第１の実施の形態に係る情報処理装置の更新プログラム受信処理の動作の流れの一例を示すフローチャートである。
【図４】本発明の第１の実施の形態に係る情報処理装置の障害回復処理（障害復旧処理）の動作の流れの一例を示すフローチャートである。
【図５】本発明の第２の実施の形態に係る情報処理システムの全体構成およびハードウェア構成の一例を示すブロック図である。
【図６】本発明の第２の実施の形態に係る情報処理システムの機能構成の一例を示す機能ブロック図である。
【図７】本発明の第２の実施の形態に係る情報処理システムの更新プログラム受信処理の動作の流れの一例を示すフローチャートである。
【図８】本発明の第２の実施の形態に係る情報処理システムの障害回復処理（障害復旧処理）の動作の流れの一例を示すフローチャートである。
【図９】本発明の第３の実施の形態に係る情報処理装置の構成を示す図である。
【図１０】本発明の第４の実施の形態に係る情報処理システムの構成を示す図である。
【発明を実施するための形態】
【００１５】
＜第１の実施の形態＞
本発明の第１の実施の形態について、図面を参照して詳細に説明する。図１は、本実施の形態に係る情報処理装置１００のハードウェア構成の一例を示すブロック図である。情報処理装置１００は、図１に例示するハードウェア資源で実現される。図１に示す通り、本実施の形態に係る情報処理装置１００は、複数のＣＰＵ（１０、２０）と、複数の不揮発性メモリ（１１、２１）と、複数の揮発性メモリ（１２、２２）と、通信インタフェース３０と、記憶装置４０とを備える。ＣＰＵ１０と、ＣＰＵ２０と、通信インタフェース３０と、記憶装置４０とは互いにバスを介して接続されている。また、不揮発性メモリ１１および揮発性メモリ１２は、ＣＰＵ１０に接続している。不揮発性メモリ２１と、揮発性メモリ２２とは、ＣＰＵ２０に接続している。なお、図１に示す各ハードウェア資源は、一例であり、情報処理装置１００が、図１に示すハードウェア資源以外の部材を有していてもよいことは言うまでもない。また、図１では、情報処理装置１００は、ＣＰＵ、揮発性メモリ、不揮発性メモリを夫々２つずつ有しているが、本実施の形態はこれに限定されず、これらは複数であればよい。
【００１６】
本実施の形態では、ＣＰＵ１０は、情報処理装置１００全体の制御を行うメインＣＰＵであるとする。以降、ＣＰＵ１０を、上位ＣＰＵとも呼び、ＣＰＵ２０を下位ＣＰＵとも呼ぶ。なお、ＣＰＵ１０は、ＣＰＵ２０の下位ＣＰＵであってもよい。
【００１７】
不揮発性メモリ１１は、ＣＰＵ１０のファームウェアプログラムを格納する。以下、ＣＰＵ１０のファームウェアプログラムをＦＷ−Ａとも呼ぶ。また、不揮発性メモリ１１は、この他に、ＣＰＵ１０にて実行されるプログラムを格納してもよい。
【００１８】
不揮発性メモリ２１は、ＣＰＵ２０のファームウェアプログラムを格納する。以下、ＣＰＵ２０のファームウェアプログラムをＦＷ−Ｂとも呼ぶ。また、不揮発性メモリ２１は、この他に、ＣＰＵ２０にて実行されるプログラムを格納してもよい。
【００１９】
記憶装置４０は、情報処理装置１００で実行されるプログラムやデータが格納される、ハードディスク等で実現されるものである。このプログラムは、コンピュータ読み取り可能な各種の記録媒体を介して当該装置内にインストールする方法や、通信インタフェース３０を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。
【００２０】
ＣＰＵ１０は、この記憶装置４０に記憶された各種ソフトウェアプログラム、または、不揮発性メモリ１１に格納された、ＣＰＵ１０のファームウェアプログラムを含むプログラムを、揮発性メモリ１２に読み出して実行する。同様に、ＣＰＵ２０は、記憶装置４０に記憶された各種ソフトウェアプログラム、または、不揮発性メモリ２１に格納された、ＣＰＵ２０のファームウェアプログラムを含むプログラムを、揮発性メモリ２２に読み出して実行する。
【００２１】
次に、図２を参照して、本実施の形態に係る情報処理装置１００の機能構成について説明する。図２は、本実施の形態に係る情報処理装置１００の機能構成の一例を示す機能ブロック図である。図２に示す通り、情報処理装置１００は、第１制御部１１０、第２制御部１２０、受信部１３０、状態確認部１４０、第１記憶部１１１、第２記憶部１２１、第３記憶部１１２および第４記憶部１２２を備えている。
【００２２】
第１記憶部１１１は、不揮発性メモリ１１によって構成される。第２記憶部１２１は、不揮発性メモリ２１によって構成される。第３記憶部１１２は、揮発性メモリ１２によって構成される。第４記憶部１２２は、揮発性メモリ２２によって構成される。
【００２３】
受信部１３０は、例えば、通信インタフェース３０と、ＣＰＵ１０とによって構成される。状態確認部１４０および第１制御部１１０は、ＣＰＵ１０によって構成される。第２制御部１２０は、ＣＰＵ２０によって構成される。
【００２４】
以上のように、情報処理装置１００の各構成要素は、図１で示したハードウェア資源で実現される。また、情報処理装置１００の各構成要素の一部または全部は、その他の汎用または専用の回路、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【００２５】
次に、情報処理装置１００の各部の詳細について説明する。
【００２６】
受信部１３０は、例えば、情報処理装置１００の外部から、更新プログラムを受信する。ここで、受信部１３０が受信する更新プログラムは、少なくとも、ＣＰＵ２０のファームウェアプログラム（ＦＷ−Ｂ）の更新プログラムを含むとする。本実施の形態では、単に更新プログラムと述べた場合、ＦＷ−Ｂの更新プログラムを指すとする。受信部１３０は、受信した更新プログラムを第１制御部１１０に供給する。
【００２７】
第１制御部１１０は、ＣＰＵ１０を制御する。第１制御部１１０は、第１記憶部１１１に格納されたプログラムを、第３記憶部１１２に書き込み、第３記憶部１１２に書き込んだプログラムを実行する。例えば、第１制御部１１０は、第１記憶部１１１に格納された、ＣＰＵ１０のファームウェアプログラム（ＦＷ−Ａ）を、第３記憶部１１２に書き込み、第３記憶部１１２に書き込んだＦＷ−Ａを実行する。これにより、第１記憶部１１１と第３記憶部１１２とには、同じＦＷ−Ａが格納されることになる。
【００２８】
また、第１制御部１１０は、受信部１３０から更新プログラムを受信する。第１制御部１１０は、受信した更新プログラムを、第１記憶部１１１に格納する。また、第１制御部１１０は、この更新プログラムを、第２制御部１２０に供給する。また、第１制御部１１０は、後述する状態確認部１４０からＦＷ−Ｂの異常を知らせる通知を受信すると、第１記憶部１１１に格納された更新プログラムを、第２記憶部１２１に格納させるために、第２制御部１２０に供給する。
【００２９】
第２制御部１２０は、第２記憶部１２１に格納されたプログラムを、第４記憶部１２２に書き込み、第４記憶部１２２に書き込んだプログラムを実行する。例えば、第２制御部１２０は、第２記憶部１２１に格納された、ＣＰＵ２０のファームウェアプログラム（ＦＷ−Ｂ）を、第４記憶部１２２に書き込み、第４記憶部１２２に書き込んだＦＷ−Ｂを実行する。
【００３０】
また、第２制御部１２０は、第１制御部１１０から更新プログラムを受信すると、第２記憶部１２１に格納されたＦＷ−Ｂを受信した更新プログラムに更新（アップデートまたは、アップグレード）する。このＦＷ−Ｂの更新の際、第２制御部１２０は、第４記憶部１２２に書き込んだＦＷ−Ｂを用いて、ＣＰＵ２０を動作させる。これにより、情報処理装置１００は、ＣＰＵ２０を動作させた状態で、ＣＰＵ２０のＦＷ−Ｂを最新のファームウェアプログラムに更新することができる。
【００３１】
状態確認部１４０は、ＣＰＵ２０の動作状態を確認する。具体的には、状態確認部１４０は、ＣＰＵ２０が正常にＦＷ−Ｂを実行できているか否かを確認する。例えば、ＦＷ−Ｂの更新中に障害が発生した場合、ＦＷ−Ｂの更新が正常に終了できていない可能性が高い。上述したとおり、ＦＷ−Ｂの更新時、第２制御部１２０は、第４記憶部１２２に書き込んだＦＷ−Ｂを実行する。したがって、第２制御部１２０（ＣＰＵ２０）は、ＦＷ−Ｂを正常に実行できている。しかし、障害発生後に、ＣＰＵ２０を再起動した場合、ＣＰＵ２０は、第２記憶部１２１に格納された、更新が正常に終了できていないＦＷ−Ｂを、第４記憶部１２２に書き込み、この書き込んだＦＷ−Ｂを実行する。この場合、ＣＰＵ２０は、正常にＦＷ−Ｂを実行できなくなる。状態確認部１４０は、ＣＰＵ２０が正常にＦＷ−Ｂを実行できているか否かを確認することによって、ＦＷ−Ｂの不具合の有無を確認することができる。
【００３２】
状態確認部１４０がＣＰＵ２０の動作状態を確認する方法の一例について説明する。状態確認部１４０は、ＣＰＵ２０の動作状態を確認するコマンドを、第１制御部１１０を介して、第２制御部１２０に送信する。そして、状態確認部１４０は、第１制御部１１０を介して、第２制御部１２０から、このコマンドの応答を受信する。応答が、ＣＰＵ２０が正常にＦＷ−Ｂを実行できていないことを示す場合、状態確認部１４０は、ＦＷ−Ｂの異常を知らせる通知を、第１制御部１１０に送信する。なお、状態確認部１４０が状態を確認するコマンドや方法については特に限定されず、種々の方法を採用可能である。例えば、状態確認部１４０は、第１制御部１１０を介さず、直接第２制御部１２０に動作状態を確認するコマンドを送付してもよい。
【００３３】
次に、図３および図４を参照して、情報処理装置１００の動作について説明する。図３は、本実施の形態に係る情報処理装置１００の更新プログラム受信処理の動作の流れの一例を示すフローチャートである。
【００３４】
図３に示す通り、受信部１３０は、更新プログラムを受信する（ステップＳ３１）。そして、第１制御部１１０は、受信部１３０が受信した更新プログラムを第１記憶部１１１に格納する（ステップＳ３２）。また、第１制御部１１０は、更新プログラムを第２制御部１２０に供給する。そして、第２制御部１２０が、第２記憶部１２１に格納されている、ＣＰＵ２０のファームウェアプログラムを、更新プログラムに更新する（ステップＳ３３）。
【００３５】
以上により、情報処理装置１００は、更新プログラム受信処理を終了する。
【００３６】
図４は、情報処理装置１００の障害回復処理（障害復旧処理）の動作の流れの一例を示すフローチャートである。なお、この処理は、ステップＳ３２が行われた後に実行される。まず、情報処理装置１００の状態確認部１４０が、ＣＰＵ２０の動作状態を確認する（ステップＳ４１）。
【００３７】
ＣＰＵ２０が正常に動作している場合（ステップＳ４２にてＹＥＳ）、情報処理装置１００は障害が起こっていないと判断し、処理を終了する。ＣＰＵ２０が正常に動作していない場合（ステップＳ４２にてＮＯ）、つまり、状態確認部１４０がＣＰＵ２０の異常を確認した場合、第１制御部１１０は、第１記憶部１１１に格納した更新プログラム（更新されたＦＷ−Ｂ）を第２制御部１２０に供給する。第２制御部１２０は、第１制御部１１０から供給された更新プログラムを用いて、第２制御部１２０のファームウェアプログラム（ＦＷ−Ｂ）を更新する（ステップＳ４３）。以上により、情報処理装置１００は、障害回復処理を終了する。
【００３８】
ステップＳ４３終了後、第２制御部１２０は、第２記憶部１２１に格納された、更新されたＦＷ−Ｂを、第４記憶部１２２に書き込み、第４記憶部１２２に書き込んだＦＷ−Ｂを実行する。これにより、第２制御部１２０は、ＣＰＵ２０を正常に起動することができる。このとき、第２制御部１２０は、ＣＰＵ２０を再起動してもよい。再起動するタイミングは、ステップＳ４３終了後であればよい。
【００３９】
（効果）
以上のように、本実施の形態に係る情報処理装置１００の第１制御部１１０は、ＣＰＵ２０のファームウェアプログラムの更新プログラムを第１記憶部１１１に記憶させる。そして、第１制御部１１０は、ＣＰＵ２０に異常がある場合、第１記憶部１１１に格納した更新プログラムを用いて、第２記憶部１２１のファームウェアプログラムを更新するよう、第２制御部１２０に該更新プログラムを送信する。これにより、ＣＰＵ２０は、更新されたファームウェアプログラムを正常に実行することができる。
【００４０】
よって、本実施の形態に係る情報処理装置１００は、下位ＣＰＵ（ＣＰＵ２０）の更新の際に障害が発生し、ＦＷ−Ｂを起動できなくなった場合であっても、自動的に更新後のファームウェアプログラムに復旧することができる。
【００４１】
＜第２の実施の形態＞
次に、本発明の第２の実施の形態について説明する。第１の実施の形態では、ＣＰＵ１０と、ＣＰＵ２０とが同じ装置に含まれることについて説明を行ったが、ＣＰＵ１０とＣＰＵ２０とは、別々の装置に含まれるものであってもよい。本実施の形態では、ＣＰＵ１０とＣＰＵ２０とが別個の装置で実現される構成について説明する。なお、説明の便宜上、前述した第１の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付し、その説明を省略する。
【００４２】
図５は、本実施の形態に係る情報処理システム１の全体構成およびハードウェア構成の一例を示すブロック図である。図５に示す通り情報処理システム１は、複数の情報処理装置（２００、３００）を含む。本実施の形態では、情報処理システム１は、２つの情報処理装置を含むことを例に説明を行う。情報処理装置２００と、情報処理装置３００とは、ネットワークを介して互いに通信可能に接続している。
【００４３】
情報処理装置２００は、ＣＰＵ１０と、不揮発性メモリ１１と、揮発性メモリ１２と、通信インタフェース３１と、記憶装置４１とを備える。ＣＰＵ１０と、通信インタフェース３１と、記憶装置４１とは互いにバスを介して接続されている。また、不揮発性メモリ１１および揮発性メモリ１２は、ＣＰＵ１０に接続している。通信インタフェース３１および記憶装置４１は、夫々、上述した第１の実施の形態における通信インタフェース３０および記憶装置４０に相当する。
【００４４】
ＣＰＵ１０は、上述した第１の実施の形態と同様に、記憶装置４１に記憶された各種ソフトウェアプログラム、または、不揮発性メモリ１１に格納された、ＣＰＵ１０のファームウェアプログラムを含むプログラムを、揮発性メモリ１２に読み出して実行する。
【００４５】
情報処理装置３００は、ＣＰＵ２０と、不揮発性メモリ２１と、揮発性メモリ２２と、通信インタフェース３２と、記憶装置４２とを備える。ＣＰＵ２０と、通信インタフェース３２と、記憶装置４２とは互いにバスを介して接続されている。また、不揮発性メモリ２１および揮発性メモリ２２は、ＣＰＵ２０に接続している。通信インタフェース３２および記憶装置４２は、夫々、上述した第１の実施の形態における通信インタフェース３０および記憶装置４０に相当する。
【００４６】
ＣＰＵ２０は、上述した第１の実施の形態と同様に、記憶装置４２に記憶された各種ソフトウェアプログラム、または、不揮発性メモリ２１に格納された、ＣＰＵ２０のファームウェアプログラムを含むプログラムを、揮発性メモリ２２に読み出して実行する。
【００４７】
本実施の形態では、情報処理装置２００は、情報処理装置３００の上位装置であるとして説明を行うが、情報処理装置３００が情報処理装置２００の上位装置であってもよい。
【００４８】
次に、図６を参照して、本実施の形態に係る情報処理システム１の情報処理装置２００および情報処理装置３００の機能構成について説明する。図６は、本実施の形態に係る情報処理システム１の機能構成の一例を示す機能ブロック図である。図６に示す通り、情報処理システム１の情報処理装置２００は、第１制御部１１０、受信部１３０、状態確認部１４１、第１記憶部１１１、第３記憶部１１２およびデータ送信部１５０を備えている。
【００４９】
第１記憶部１１１は、不揮発性メモリ１１によって構成される。第３記憶部１１２は、揮発性メモリ１２によって構成される。受信部１３０、状態確認部１４１、および、データ送信部１５０は、例えば、通信インタフェース３１と、ＣＰＵ１０とによって構成される。第１制御部１１０は、ＣＰＵ１０によって構成される。
【００５０】
また、情報処理装置３００は、第２制御部１２０、第２記憶部１２１、第４記憶部１２２および通信部１６０を備えている。第２記憶部１２１は、不揮発性メモリ２１によって構成される。第４記憶部１２２は、揮発性メモリ２２によって構成される。通信部１６０は、例えば、通信インタフェース３２と、ＣＰＵ２０とによって構成される。第２制御部１２０は、ＣＰＵ２０によって構成される。
【００５１】
以上のように、情報処理装置２００および情報処理装置３００の各構成要素は、図５で示したハードウェア資源で実現される。また、情報処理装置２００および情報処理装置３００の各構成要素の一部または全部は、その他の汎用または専用の回路、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【００５２】
次に、情報処理装置２００および情報処理装置３００の各部の詳細について説明する。
【００５３】
受信部１３０は、上述した第１の実施の形態と同様に、更新プログラムを受信し、受信した更新プログラムを第１制御部１１０に供給する。
【００５４】
第１制御部１１０は、上述した第１の実施の形態と同様に、第１記憶部１１１に格納された、ＣＰＵ１０のファームウェアプログラム（ＦＷ−Ａ）を、第３記憶部１１２に書き込み、第３記憶部１１２に書き込んだＦＷ−Ａを実行する。第１制御部１１０は、受信部１３０から更新プログラムを受信し、受信した更新プログラムを第１記憶部１１１に格納する。
【００５５】
また、第１制御部１１０は、状態確認部１４１から、ＦＷ−Ｂの異常を知らせる通知を受信すると、第１記憶部１１１に格納した更新プログラムを、データ送信部１５０に供給する。
【００５６】
状態確認部１４１は、第１の実施の形態における状態確認部１４０と同様に、ＣＰＵ２０の動作状態を確認する。状態確認部１４１は、例えば、ＣＰＵ２０が正常にＦＷ−Ｂを実行できているか否かを問い合わせるコマンド（ＣＰＵ２０の動作状態の確認コマンド）を情報処理装置３００に送信する。そして、状態確認部１４１は、送信した確認コマンドに対する応答を、情報処理装置３００から受け取る。そして、状態確認部１４１は、受け取った応答が、ＣＰＵ２０が正常にＦＷ−Ｂを実行できていないことを示す場合、ＦＷ−Ｂの異常を知らせる通知を、第１制御部１１０に送信する。
【００５７】
データ送信部１５０は、第１制御部１１０から、更新プログラムを受信する。そして、データ送信部１５０は、受信した更新プログラムを、情報処理装置３００に送信する。
【００５８】
情報処理装置３００の通信部１６０は、情報処理装置２００から送信された更新プログラムを受信する。そして、通信部１６０は受信した更新プログラムを第２制御部１２０に供給する。
【００５９】
また、通信部１６０は、情報処理装置２００から、確認コマンドを受信し、第２制御部１２０に出力する。そして、通信部１６０は、第２制御部１２０から上記確認コマンドに対する応答を受信すると、受信した応答を、情報処理装置２００に送信する。
【００６０】
第２制御部１２０は、上述した第１の実施の形態と同様に、第２記憶部１２１に格納された、ＣＰＵ２０のファームウェアプログラム（ＦＷ−Ｂ）を、第４記憶部１２２に書き込み、第４記憶部１２２に書き込んだＦＷ−Ｂを実行する。
【００６１】
また、第２制御部１２０は、通信部１６０から更新プログラムを受信すると、第２記憶部１２１に格納されたＦＷ−Ｂを受信した更新プログラムに更新（アップデートまたは、アップグレード）する。
【００６２】
また、第２制御部１２０は、通信部１６０から、確認コマンドを受信し、確認コマンドに応じた処理を行う。そして、第２制御部１２０は、この確認コマンドの応答（確認結果とも呼ぶ）を、通信部１６０に出力する。なお、ＣＰＵ２０の動作状態の確認コマンドは、どのような形態のものであってもよい。
【００６３】
次に、図７および図８を参照して、情報処理システム１の動作について説明する。図７は、本実施の形態に係る情報処理システムの更新プログラム受信処理の動作の流れの一例を示すフローチャートである。
【００６４】
図７は、情報処理装置２００の処理を左側に、情報処理装置３００の処理を右側に示している。また、情報処理装置２００の処理と、情報処理装置３００の処理との間にある破線の矢印は、情報の流れを示している。
【００６５】
図７に示す通り、情報処理装置２００の受信部１３０は、更新プログラムを受信する（ステップＳ７１）。そして、第１制御部１１０は、受信部１３０が受信した更新プログラムを第１記憶部１１１に格納する（ステップＳ７２）。また、第１制御部１１０は、この更新プログラムを通信部１６０に供給する。そして、通信部１６０は、更新プログラムを情報処理装置３００に送信する（ステップＳ７３）。
【００６６】
そして、情報処理装置３００の通信部１６０は、情報処理装置２００から更新プログラムを受信する（ステップＳ７４）。第２制御部１２０は、第２記憶部１２１に格納されている、ＣＰＵ２０のファームウェアプログラム（ＦＷ−Ｂ）を、通信部１６０が受信した更新プログラムに更新する（ステップＳ７５）。
【００６７】
以上により、情報処理システム１は、更新プログラム受信処理を終了する。
【００６８】
図８は、情報処理システム１の障害回復処理（障害復旧処理）の動作の流れの一例を示すフローチャートである。なお、この処理は、ステップＳ７２が行われた後に実行される。
【００６９】
なお、図８は、情報処理装置２００の処理を左側に、情報処理装置３００の処理を右側に示している。また、情報処理装置２００の処理と、情報処理装置３００の処理との間にある破線の矢印は、情報の流れを示している。
【００７０】
まず、情報処理装置２００の状態確認部１４１が、ＣＰＵ２０の動作状態を確認する確認コマンドを情報処理装置３００に送信する（ステップＳ８１）。
【００７１】
そして、情報処理装置３００の通信部１６０が、情報処理装置２００から確認コマンドを受信する（ステップＳ９１）。そして、第２制御部１２０が、上記確認コマンドに対する応答を通信部１６０に供給し、通信部１６０がこの応答を、情報処理装置２００に送信する（ステップＳ９２）。
【００７２】
そして、情報処理装置２００の状態確認部１４１は、情報処理装置３００から上記応答を受信する（ステップＳ８２）。状態確認部１４１は、この応答が、ＣＰＵ２０が正常に動作していることを示す場合（ステップＳ８３にてＹＥＳ）、障害が起こっていないと判断し、処理を終了する。状態確認部１４１は、上記応答が、ＣＰＵ２０が正常に動作していないことを示す場合（ステップＳ８３にてＮＯ）、具体的には、ＣＰＵ２０がＦＷ−Ｂを起動できていない場合、第１制御部１１０に、ＦＷ−Ｂの異常を知らせる通知を送信する。そして、第１制御部１１０は、第１記憶部１１１に格納した更新プログラム（更新されたＦＷ−Ｂ）をデータ送信部１５０に供給し、データ送信部１５０がこの更新プログラムを情報処理装置３００に送信する（ステップＳ８４）。
【００７３】
情報処理装置３００の通信部１６０は、情報処理装置２００から送信された更新プログラムを受信する（ステップＳ９３）。そして、第２制御部１２０は、通信部１６０が受信した更新プログラムを用いて、第２制御部１２０のファームウェアプログラム（ＦＷ−Ｂ）を更新する（ステップＳ９４）。以上により、情報処理システム１は、障害回復処理を終了する。
【００７４】
ステップＳ９４終了後、第２制御部１２０は、第２記憶部１２１に格納された、更新されたＦＷ−Ｂを、第４記憶部１２２に書き込み、第４記憶部１２２に書き込んだＦＷ−Ｂを実行する。これにより、第２制御部１２０は、正常に更新されたＦＷ−Ｂを起動することができる。このとき、第２制御部１２０は、ＣＰＵ２０を再起動してもよい。再起動するタイミングは、ステップＳ９４終了後であればよい。
【００７５】
（効果）
以上のように、本実施の形態に係る情報処理システム１は、情報処理装置２００の第１制御部１１０が、ＣＰＵ２０のファームウェアプログラムの更新プログラムを第１記憶部１１１に記憶させる。そして、ＣＰＵ２０に異常がある場合、第１制御部１１０は、第１記憶部１１１に格納した更新プログラムを用いて第２記憶部１２１のファームウェアプログラムを更新するよう、情報処理装置３００に該更新プログラムを、データ送信部１５０を介して送信する。そして、通信部１６０はこの更新プログラムを受信する。第２制御部１２０は、第２記憶部１２１のファームウェアプログラムを、通信部１６０が受信した更新プログラムに更新する。これにより、ＣＰＵ２０は、更新されたファームウェアプログラムを正常に実行することができる。
【００７６】
よって、本実施の形態に係る情報処理システム１は、下位装置のＣＰＵ（ＣＰＵ２０）の更新の際に障害が発生し、ＦＷ−Ｂを起動できなくなった場合であっても、自動的に更新後のファームウェアプログラムに復旧することができる。
【００７７】
＜第３の実施の形態＞
次に、本発明の第３の実施の形態について説明する。本実施の形態では、上述した第１の実施の形態における情報処理装置１００の基本の構成を有する情報処理装置２について説明する。情報処理装置２は、本発明の課題を解決する最小の構成を有する装置である。
【００７８】
図９は、本実施の形態に係る情報処理装置２の構成の一例を示す図である。図９に示す通り、本実施の形態に係る情報処理装置２は、複数のプロセッサ（２０１、２０２）を備える。なお、図９に示す情報処理装置２の各部は、情報処理装置１００と同様に、例えば、図１に示すハードウェアにて実現可能である。
【００７９】
図９に示す通り、情報処理装置２は、第１プロセッサ２０１のファームウェアプログラムを記憶する第１記憶部２１１と、第２プロセッサ２０２のファームウェアプログラムを記憶する第２記憶部２１２と、確認部２１３と、第１制御部２１４とを備える。第１記憶部２１１は、上述した第１の実施の形態における第１記憶部１１１に相当する。また、第２記憶部２１２は、第１の実施の形態における第２記憶部１２１に相当する。
【００８０】
確認部２１３は、第２プロセッサ２０２の動作状態を確認する。確認部２１３は、第１の実施の形態における状態確認部１４０に相当する。確認部２１３の動作は、状態確認部１４０と同様であるため、説明を省略する。
【００８１】
第１制御部２１４は、第１の実施の形態における第１制御部１１０に相当する。第１制御部２１４は、第１プロセッサ２０１を制御する。また、第１制御部２１４は、第２プロセッサ２０２のファームウェアプログラムの更新プログラムを第１記憶部２１１に記憶させる。また、第１制御部２１４は、確認部２１３が第２プロセッサ２０２の異常を確認した場合、第１記憶部２１１に記憶させた更新プログラムを用いて、第２記憶部２１２に記憶された、第２プロセッサ２０２のファームウェアプログラムを更新する。
【００８２】
これにより、本実施の形態に係る情報処理装置２の第２プロセッサ２０２は、更新されたファームウェアプログラムを実行することができるため、上述した第１の実施の形態に係る情報処理装置１００と同様の効果を得ることができる。
【００８３】
＜第４の実施の形態＞
次に、本発明の第４の実施の形態について説明する。本実施の形態では、上述した第２の実施の形態における情報処理システム１の基本の構成を有する情報処理システム３について説明する。情報処理システム３は、本発明の課題を解決する最小の構成を有するシステムである。なお、説明の便宜上、前述した第３の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付し、その説明を省略する。
【００８４】
図１０は、本実施の形態に係る情報処理システム３の構成の一例を示す図である。図１０に示す通り、本実施の形態に係る情報処理システム３は、第１プロセッサ２０１を備える第１情報処理装置３０１と、第２プロセッサ２０２を備える第２情報処理装置３０２とを含む。なお、図１０に示す情報処理システム３の各部は、情報処理システム１と同様に、例えば、図５に示すハードウェアにて実現可能である。
【００８５】
図１０に示す通り、情報処理システム３の第１情報処理装置３０１は、第１プロセッサ２０１のファームウェアプログラムを記憶する第１記憶部２１１と、確認部２１３と、第１制御部２１４とを備える。また、第２情報処理装置３０２は、第２プロセッサ２０２のファームウェアプログラムを記憶する第２記憶部２１２と、第１情報処理装置３０１と通信する通信部３０３とを備える。通信部３０３は、上述した第２の実施の形態における情報処理システム１の情報処理装置３００が備える第２制御部１２０および通信部１６０の機能を有する。通信部３０３は、第１情報処理装置３０１から送信された更新プログラムを用いて、第２記憶部２１２に記憶された、第２プロセッサ２０２のファームウェアプログラムを更新する。
【００８６】
これにより、本実施の形態に係る情報処理システム３の第２情報処理装置３０２が備える第２プロセッサ２０２は、更新されたファームウェアプログラムを実行することができる。したがって、上述した第２の実施の形態に係る情報処理システム１と同様の効果を得ることができる。
【００８７】
なお、上述した各実施の形態は、本発明の好適な実施の形態であり、上記各実施の形態にのみ本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において当業者が上記各実施の形態の修正や代用を行い、種々の変更を施した形態を構築することが可能である。
【符号の説明】
【００８８】
１    情報処理システム
１０    ＣＰＵ
１１    不揮発性メモリ
１２    揮発性メモリ
２０    ＣＰＵ
２１    不揮発性メモリ
２２    揮発性メモリ
３０    通信インタフェース
３１    通信インタフェース
３２    通信インタフェース
４０    記憶装置
４１    記憶装置
４２    記憶装置
１００    情報処理装置
１１０    第１制御部
１１１    第１記憶部
１１２    第３記憶部
１２０    第２制御部
１２１    第２記憶部
１２２    第４記憶部
１３０    受信部
１４０    状態確認部
１４１    状態確認部
１５０    データ送信部
１６０    通信部
２００    情報処理装置
３００    情報処理装置
２    情報処理装置
２０１    第１プロセッサ
２０２    第２プロセッサ
２１１    第１記憶部
２１２    第２記憶部
２１３    確認部
２１４    第１制御部
３    情報処理システム
３０１    第１情報処理装置
３０２    第２情報処理装置
３０３    通信部
【図１】
2017049874.tif 000003
【図２】
2017049874.tif 000004
【図３】
2017049874.tif 000005
【図４】
2017049874.tif 000006
【図５】
2017049874.tif 000007
【図６】
2017049874.tif 000008
【図７】
2017049874.tif 000009
【図８】
2017049874.tif 000010
【図９】
2017049874.tif 000011
【図１０】
2017049874.tif 000012