(57)【要約】      （修正有）【課題】マルチプロセッサシステムにおいて、再起動することなく、ファームウェアをアップデートする更新処理装置、更新処理方法及びプログラムを提供する。【解決手段】マルチプロセッサシステムにおいて、いずれか又は全部のプロセッサのファームウェアを更新するため、ファームウェア更新対象であるプロセッサ以外のプロセッサを指定し、その動作を停止させるプロセッサ指定部１１と、指定プロセッサのメモリ領域に、更新後ファームウェアを書き込み、更に、指定プロセッサが、更新対象プロセッサのメモリ領域に格納されたデータにアクセスできるように、指定プロセッサのメモリマップ設定を修正し、指定プロセッサに、更新対象プロセッサの処理を行わせる代替処理実行部１２と、更新対象プロセッサのメモリ領域に、更新後のファームウェアを書き込み、更新対象プロセッサのファームウェアを更新するファームウェア更新部１３と、を備える。【選択図】図１
2019159415.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するための装置であって、
前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、プロセッサ指定部と、
指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、代替処理実行部と、
前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ファームウェア更新部と、
を備えている、ことを特徴とする、更新処理装置。
【請求項２】
請求項１に記載の更新処理装置であって、
前記マルチプロセッサシステムは、単一の第１のプロセッサと、前記第１のプロセッサの指示に応じて動作する２つ以上の第２のプロセッサとを備え、
前記プロセッサ指定部は、前記第１のプロセッサがファームウェアの更新対象である場合に、いずれかの前記第２のプロセッサを指定し、その動作を停止させ、
前記代替処理実行部は、指定された前記第２のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定された前記第２のプロセッサが、前記第１のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第２のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第２のプロセッサに、前記第１のプロセッサの処理を行わせ、
前記ファームウェア更新部は、前記第１のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記第１のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、更新処理装置。
【請求項３】
請求項２に記載の更新処理装置であって、
前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有しており、
当該更新処理装置が、更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ファームウェア変換部を更に備え、
前記代替処理実行部は、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第２のプロセッサのメモリ領域に書き込み、
前記ファームウェア更新部は、前記第１のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込む、
ことを特徴とする、更新処理装置。
【請求項４】
請求項２または３に記載の更新処理装置であって、
前記ファームウェア更新部は、前記第１のプロセッサの前記ファームウェアを更新した後に、前記第２のプロセッサそれぞれ毎に、当該第２のプロセッサのメモリ領域に、前記第２のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第２のプロセッサのファームウェアを更新する、
ことを特徴とする、更新処理装置。
【請求項５】
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサ
のうちのいずれか又は全部のファームウェアを更新するための方法であって、
（ａ）前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、ステップと、
（ｂ）指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
（ｃ）前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
を有する、ことを特徴とする、更新処理方法。
【請求項６】
請求項５に記載の更新処理方法であって、
前記マルチプロセッサシステムは、単一の第１のプロセッサと、前記第１のプロセッサの指示に応じて動作する２つ以上の第２のプロセッサとを備え、
前記（ａ）のステップにおいて、前記第１のプロセッサがファームウェアの更新対象である場合に、いずれかの前記第２のプロセッサを指定し、その動作を停止させ、
前記（ｂ）のステップにおいて、指定された前記第２のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定された前記第２のプロセッサが、前記第１のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第２のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第２のプロセッサに、前記第１のプロセッサの処理を行わせ、
前記（ｂ）のステップにおいて、前記第１のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記第１のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、更新処理方法。
【請求項７】
請求項６に記載の更新処理方法であって、
前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有しており、当該更新処理方法が、更に、
（ｄ）更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ステップを有し、
前記（ｂ）のステップにおいて、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第２のプロセッサのメモリ領域に書き込み、
前記（ｃ）のステップにおいて、前記第１のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込む、
ことを特徴とする、更新処理方法。
【請求項８】
請求項６または７に記載の更新処理方法であって、
当該更新処理方法が、更に、
（ｅ）前記第１のプロセッサの前記ファームウェアを更新した後に、前記第２のプロセッサそれぞれ毎に、当該第２のプロセッサのメモリ領域に、前記第２のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第２のプロセッサのファームウェアを更新する、ステップを有する、
ことを特徴とする、更新処理方法。
【請求項９】
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するためのプログラムであって、
前記複数のプロセッサのいずれかに、
（ａ）前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、ステップと、
（ｂ）指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
（ｃ）前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
を実行させる、ことを特徴とする、プログラム。
【請求項１０】
請求項９に記載のプログラムであって、
前記マルチプロセッサシステムは、単一の第１のプロセッサと、前記第１のプロセッサの指示に応じて動作する２つ以上の第２のプロセッサとを備え、
前記（ａ）のステップにおいて、前記第１のプロセッサがファームウェアの更新対象である場合に、いずれかの前記第２のプロセッサを指定し、その動作を停止させ、
前記（ｂ）のステップにおいて、指定された前記第２のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定された前記第２のプロセッサが、前記第１のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第２のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第２のプロセッサに、前記第１のプロセッサの処理を行わせ、
前記（ｂ）のステップにおいて、前記第１のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記第１のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、プログラム。
【請求項１１】
請求項１０に記載のプログラムであって、
前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有しており、前記複数のプロセッサのいずれかに、更に、
（ｄ）更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ステップを実行させ、
前記（ｂ）のステップにおいて、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第２のプロセッサのメモリ領域に書き込み、
前記（ｃ）のステップにおいて、前記第１のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込む、
ことを特徴とする、プログラム。
【請求項１２】
請求項１０または１１に記載のプログラムであって、
前記複数のプロセッサのいずれかに、更に、
（ｅ）前記第１のプロセッサの前記ファームウェアを更新した後に、前記第２のプロセッサそれぞれ毎に、当該第２のプロセッサのメモリ領域に、前記第２のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第２のプロセッサのファームウェアを更新する、ステップを実行させる、
ことを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサを搭載したシステムにおいてファームウェアを更新するための、更新処理装置、及び更新処理方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【０００２】
近年、シングルプロセッサの処理性能の限界から、組み込みシステムを含むコンピュータシステムにおいては、マルチプロセッサを搭載する場合が増加している。このようなマルチプロセッサを搭載したシステム（以下「マルチプロセッサシステム」と表記する。）によれば、大量のデータ及び命令を並列に処理できるため、システム全体の処理能力が飛躍的に向上することになる（例えば、特許文献１〜３参照）。
【０００３】
また、このようなマルチプロセッサシステムには、対称型マルチプロセッシング（ＳＭＰ：Symmetric Multiprocessing）と呼ばれる方式と、非対称型マルチプロセッシング（ＡＭＰ：Asymmetric Multiprocessing）と呼ばれる方式とがある。このうち、ＳＭＰは、プロセッサ間に特別な役割及び主従関係等がなく、各プロセッサは対等であり、処理要求が全てのプロセッサに均等に割り当てられる方式である。一方、ＡＭＰは、プロセッサ間に特別な役割及び主従関係等があり、プロセッサ毎に異なる処理が割り当てられる方式である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１０／１３７２６２号
【特許文献２】国際公開第２０１０／１１９９３２号
【特許文献３】国際公開第２０１４／００６７３２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上述したマルチプロセッサシステムであっても、シングルプロセッサで構成されたシステム（以下「シングルプロセッサシステム」と表記する。）と同様に、ファームウェアをアップデートする場合は、システムを一旦停止し、その後、再起動を行う必要がある。
【０００６】
しかしながら、マルチプロセッサシステムは、シングルプロセッサシステムに比べて処理性能が高く、高い業務処理能力が求められる場面に採用されている。このため、マルチプロセッサシステムにおいては、システムを停止することなく、ファームウェアをアップデートすることが強く求められている。
【０００７】
本発明の目的の一例は、上記問題を解消し、マルチプロセッサシステムにおいて、再起動を行うことなく、ファームウェアをアップデートし得る、更新処理装置、更新処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一側面における更新処理装置は、複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するための装置であって、
前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以
外のプロセッサを指定し、その動作を停止させる、プロセッサ指定部と、
指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、代替処理実行部と、
前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ファームウェア更新部と、
を備えている、ことを特徴とする。
【０００９】
また、上記目的を達成するため、本発明の一側面における更新処理方法は、複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するための方法であって、
（ａ）前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、ステップと、
（ｂ）指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
（ｃ）前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
を有する、ことを特徴とする。
【００１０】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するためのプログラムであって、
前記複数のプロセッサのいずれかに、
（ａ）前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、ステップと、
（ｂ）指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
（ｃ）前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
を実行させる、ことを特徴とする。
【発明の効果】
【００１１】
以上のように本発明によれば、マルチプロセッサシステムにおいて、再起動を行うことなく、ファームウェアをアップデートすることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の実施の形態における更新処理装置の概略構成を示すブロック図である。
【図２】図２は、本発明の実施の形態における更新処理装置の具体的構成を示すブロック図である。
【図３】図３は、本発明の実施の形態において、ファームウェアが有している、データのアクセス先のアドレスを示すテーブルの一例を示す図である。
【図４】図４は、本発明の実施の形態１における更新処理装置の動作を示すフロー図である。
【図５】図５は、図４に示す更新処理の際のサブプロセッサの動作を示す図である。
【発明を実施するための形態】
【００１３】
（実施の形態）
以下、本発明の実施の形態における、更新処理装置、更新処理方法、及びプログラムについて、図１〜図５を参照しながら説明する。
【００１４】
［装置構成］
最初に、図１を用いて、本発明の実施の形態における更新処理装置の概略構成について説明する。図１は、本発明の実施の形態における更新処理装置の概略構成を示すブロック図である。
【００１５】
図１に示す本実施の形態における更新処理装置１０は、複数のプロセッサを備えたマルチプロセッサシステム１００において、複数のプロセッサのうちの、いずれか又は全部のプロセッサのファームウェアを更新するための装置である。
【００１６】
図１に示すように、更新処理装置１０は、プロセッサ指定部１１と、代替処理実行部１２と、ファームウェア更新部１３とを備えている。プロセッサ指定部１５は、複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる。
【００１７】
代替処理実行部１２は、まず、指定されたプロセッサのメモリ領域に、更新後のファームウェアを書き込む。次いで、代替処理実行部１２は、指定されたプロセッサが、更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正する。そして、代替処理実行部１２は、指定されたプロセッサに、更新対象となっているプロセッサの処理を行わせる。
【００１８】
ファームウェア更新部１３は、更新対象となっているプロセッサのメモリ領域に、更新後のファームウェアを書き込み、更新対象となっているプロセッサのファームウェアを更新する。
【００１９】
このように、本実施の形態では、マルチプロセッサシステムを構成するプロセッサのファームウェアを更新しないといけない場面において、更新対象となるプロセッサの処理を、別のプロセッサによって肩代わりすることができる。このため、本実施の形態によれば、マルチプロセッサシステムにおいて、再起動を行うことなく、ファームウェアをアップデートすることができる。
【００２０】
続いて、図２を用いて、本実施の形態における更新処理装置１０の構成をより具体的に説明する。図２は、本発明の実施の形態における更新処理装置の具体的構成を示すブロック図である。
【００２１】
図２の例では、マルチプロセッサシステム１００は、単一のメインプロセッサ２０と、メインプロセッサ２０の指示に応じて動作する２つ以上のサブプロセッサ３０とを備えている。メインプロセッサ２０と、サブプロセッサ３０とは、バス４０によって接続されている。なお、メインプロセッサ２０と、サブプロセッサ３０とは、相手のメモリを読み書
き可能な環境にあれば良く、バス４０以外の手段によって接続されていても良い。
【００２２】
また、マルチプロセッサシステム１００において、メインプロセッサ２０は、専用のＲＡＭ（Random Access Memory）２１と、ファームウェアを格納したフラッシュＲＯＭ（Read Only Memory）２２と、専用のＩ／Ｏコントローラ２３とを備えている。メインプロセッサ２０は、起動時において、フラッシュＲＯＭからファームウェアを読み出し、これをＲＡＭ２１に展開する。また、各サブプロセッサ３０も、専用のＲＡＭ３１を備えている。なお、本実施の形態において、サブプロセッサ３０の個数は特に限定されるものではない。
【００２３】
このようなマルチプロセッサシステム１００において、通常、サブプロセッサ３０のファームウェアを更新する場合は、システム自体を停止しなくても良いが、メインプロセッサ２０のファームウェアを更新する場合は、システム自体を停止する必要性がある。これに対して、更新処理装置１０によれば、システム自体を停止することなく、メインプロセッサ２０のファームウェアの更新が可能となる。
【００２４】
また、本実施の形態では、更新処理装置１０は、メインプロセッサ２０によって構築されている。具体的には、後述する本実施の形態におけるプログラムが、メインプロセッサ２０のＲＡＭ２１のメモリ領域に展開されると、メインプロセッサ２０はプログラムのコードを実行する。これにより、更新処理装置１０が構築されることになる。
【００２５】
本実施の形態では、更新処理装置１０において、プロセッサ指定部１１は、メインプロセッサがファームウェアの更新対象である場合に、いずれかのサブプロセッサ３０を指定し、その動作を停止させる。
【００２６】
また、本実施の形態では、代替処理実行部１２は、まず、指定されたサブプロセッサ３０のＲＡＭ３１のメモリ領域に、更新後のファームウェアを書き込む。更に、代替処理実行部１２は、指定されたサブプロセッサ３０が、メインプロセッサ２０のＲＡＭ２１のメモリ領域に格納されたデータにアクセスできるように、指定されたサブプロセッサ３０のメモリマップ設定を修正する。そして、代替処理実行部１２は、指定されたサブプロセッサ３０に、メインプロセッサ２０の処理を行わせる。
【００２７】
その後、ファームウェア更新部１３は、指定されたサブプロセッサ３０が、メインプロセッサ２０の処理を行っている間に、メインプロセッサ２０のＲＡＭ２１のメモリ領域に、更新後のファームウェアを書き込み、メインプロセッサ２０のファームウェアを更新する。
【００２８】
ここで、図２に加えて、図３を用いて、更新処理装置１０の機能についてより具体的に説明する。図３は、本発明の実施の形態において、ファームウェアが有している、データのアクセス先のアドレスを示すテーブルの一例を示す図である。
【００２９】
まず、本実施の形態では、ファームウェアは、データのアクセス先のアドレスを示すテーブル（以下「データアクセス箇所テーブル」と表記する）を有している。図３において、上段は、更新前のファームウェアのデータアクセス箇所テーブルを示し、中段は、更新後のファームウェアのデータアクセス箇所テーブルを示している。また、図３上段及び中段に示すように、データアクセス箇所テーブルは、シンボル毎に、アドレス及びオフセット（オフセットアドレス）を登録している。
【００３０】
更に、図２に示すように、更新処理装置１０は、本実施の形態では、上述したプロセッサ指定部１１、代替処理実行部１２、及びファームウェア更新部１３に加えて、ファーム
ウェア変換部１４を備えている。
【００３１】
ファームウェア変換部１４は、更新前のファームウェアのテーブルと、更新後のファームウェアのテーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブル（図３の下段参照）を作成する。
【００３２】
具体的には、ファームウェア変換部１４は、まず、更新前及び更新後のファームウェアそれぞれの「データアクセス箇所テーブル」を比較し、シンボルが同一で、アドレスが異なるエントリを特定する。次に、ファームウェア変換部１４は、更新後のファームウェアにおいて、特定したエントリにおけるアドレスが更新前のファームウェアのアドレスとなるように、変換テーブルを作成する。
【００３３】
また、変換テーブルには、「初期化」の欄が設定されており、この欄において、ファームウェア変換部１４は、更新前のファームウェアからデータを引き継ぐエントリについては、「×」と設定する。一方、ファームウェア変換部１４は、更新後のファームウェアにのみ存在するエントリについては、「○」と設定する。
【００３４】
また、ファームウェア変換部１４は、この変換テーブルを用いて、更新後のファームウェアにおけるアクセス先を変換する。この場合、代替処理実行部１２は、アクセス先が変換された、更新後のファームウェアを、指定されたサブプロセッサ３０のＲＡＭ３１のメモリ領域に書き込み、指定されたサブプロセッサに、メインプロセッサ２０の処理を肩代わりさせる。
【００３５】
また、ファームウェア更新部１３は、メインプロセッサ２０のフラッシュＲＯＭ２２のメモリ領域に、アクセス先が変換された、更新後のファームウェアを書き込む。これにより、メインプロセッサ２０において、ファームウェアが更新させる。その後、ファームウェア更新部１３は、メインプロセッサ２０に再起動を行わせる。再起動後、メインプロセッサ２０は、更新されたファームウェアによって動作する。
【００３６】
また、ファームウェア更新部１３は、メインプロセッサ２０のファームウェアを更新した後に、サブプロセッサ３０それぞれ毎に、各サブプロセッサ３０のＲＡＭ３１のメモリ領域に、サブプロセッサ３０の新たなファームウェアを書き込むことができる。この場合、ファームウェア更新部１３は、書き込んだ新たなファームウェアを用いて、各サブプロセッサ３０のファームウェアを更新する。
【００３７】
［装置動作］
次に、本発明の実施の形態１における更新処理装置１０の動作について図４及び図５を用いて説明する。図４は、本発明の実施の形態１における更新処理装置の動作を示すフロー図である。図５は、図４に示す更新処理の際のサブプロセッサの動作を示す図である。以下の説明においては、適宜図１〜図３を参酌する。また、本実施の形態では、更新処理装置１０を動作させることによって、更新処理方法が実施される。よって、本実施の形態における更新処理方法の説明は、以下の更新処理装置１０の動作説明に代える。
【００３８】
図４に示すように、最初に、更新処理装置１０は、マルチプロセッサシステム１００の上位システム等から、メインプロセッサ２０のファームウェアの更新通知と更新後のファームウェアとを受信する（ステップＡ１）。
【００３９】
次に、更新処理装置１０において、プロセッサ指定部１１は、サブプロセッサ３０のうちの１つを指定し、指定したサブプロセッサ３０に対して、動作の停止を指示する（ステップＡ２）。具体的には、プロセッサ指定部１１は、例えば、サブプロセッサ３０のうち
、処理を行っていないサブプロセッサ３０が存在している場合は、このサブプロセッサを指定する。
【００４０】
次に、ファームウェア変換部１４は、フラッシュＲＯＭ２２に格納されている更新前のファームウェアのテーブルと、ステップＡ１で受信した更新後のファームウェアのテーブルとを対比する。そして、ファームウェア変換部１４は、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブル（図３の下段参照）を作成する（ステップＡ３）。
【００４１】
次に、ファームウェア変換部１４は、ステップＡ３で作成した変換テーブルを用いて、更新後のファームウェアにおけるアクセス先を変換する（ステップＡ４）。
【００４２】
次に、代替処理実行部１２は、ステップＡ４によってアクセス先が変換された、更新後のファームウェアを、ステップＡ２で指定されたサブプロセッサ３０のＲＡＭ３１のメモリ領域に書き込む（ステップＡ５）。
【００４３】
次に、代替処理実行部１２は、ステップＡ２で指定されたプロセッサが、更新対象となっているメインプロセッサ２０のＲＡＭ２１のメモリ領域に格納されたデータにアクセスできるように、指定されたサブプロセッサのメモリマップ設定を修正する（ステップＡ６）。
【００４４】
また、ステップＡ６においては、代替処理実行部１２は、Ｉ／Ｏコントローラ２３のデータ転送先を、指定されたサブプロセッサに変更する。これにより、図５に示すように、指定されたサブプロセッサは、メインプロセッサ２０のＲＡＭ２１のメモリ領域にアクセスして、処理を開始する。図５において、指定されたサブプロセッサ３０には、ハッチングが施されている。
【００４５】
次に、ファームウェア更新部１３は、更新対象となっているメインプロセッサ２０のフラッシュＲＯＭ２２のメモリ領域に、更新後のファームウェアを書き込み、メインプロセッサ２０のファームウェアを更新する（ステップＡ７）。
【００４６】
その後、ファームウェア更新部１３は、メインプロセッサ２０に再起動を行わせる（ステップＡ８）。再起動後、メインプロセッサ２０は、更新されたファームウェアによって動作する。また、ファームウェア更新部１３は、再起動が行われる前に、メインプロセッサ２０は、ファームウェアが更新中であることを示すフラグを立てる。
【００４７】
そして、フラグが立っている場合は、ファームウェア更新部１３は、ＲＡＭ２１のメモリ領域の初期化の禁止、Ｉ／Ｏコントローラ２３のデータ転送先のメインプロセッサ２０への変更を実行する。
【００４８】
加えて、ファームウェア更新部１３は、フラグが立っている場合は、各サブプロセッサ３０のＲＡＭ３１のメモリ領域に、サブプロセッサ３０の新たなファームウェアを書き込むことができる。また、ファームウェア更新部１３は、書き込んだ新たなファームウェアを用いて、各サブプロセッサ３０のファームウェアを更新する。
【００４９】
［実施の形態による効果］
以上のように、本実施の形態では、メインプロセッサ２０の処理をサブプロセッサ３０に肩代わりさせることができる。このため、本実施の形態によれば、メインプロセッサ２０のファームウェアを更新する場合であっても、マルチプロセッサシステム１００を停止させることなく、継続して稼働させることができる。
【００５０】
［プログラム］
本実施の形態におけるプログラムは、コンピュータに、図５に示すステップＡ１〜Ａ８を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における更新処理装置１０と更新処理方法とを実現することができる。この場合、コンピュータのプロセッサは、プロセッサ指定部１１、代替処理実行部１２、ファームウェア更新部１３、及びファームウェア変換部１４として機能し、処理を行なう。
【００５１】
また、本実施の形態におけるプログラムを実行するコンピュータとしては、図２に示したマルチプロセッサシステムが挙げられる。この場合、更新処理装置１０の各部として機能するプロセッサは、メインプロセッサ２０であるのが良いが、本実施の形態はこれに限定されず、いずれかのサブプロセッサ３０であっても良い。また、コンピュータは、マルチプロセッサシステムに接続された外部のコンピュータであっても良い。
【００５２】
また、本実施の形態において、プロセッサは、ＣＰＵ（Central Processing Unit）であっても良いし、ＧＰＵ（Graphics Processing Unit）、又はＦＰＧＡ（Field-Programmable Gate Array）であっても良い。
【００５３】
また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体に格納された状態で提供される。更に、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００５４】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体が挙げられる。
【００５５】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１２）によって表現することができるが、以下の記載に限定されるものではない。
【００５６】
（付記１）
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するための装置であって、
前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、プロセッサ指定部と、
指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、代替処理実行部と、
前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ファームウェア更新部と、
を備えている、ことを特徴とする、更新処理装置。
【００５７】
（付記２）
付記１に記載の更新処理装置であって、
前記マルチプロセッサシステムは、単一の第１のプロセッサと、前記第１のプロセッサの指示に応じて動作する２つ以上の第２のプロセッサとを備え、
前記プロセッサ指定部は、前記第１のプロセッサがファームウェアの更新対象である場
合に、いずれかの前記第２のプロセッサを指定し、その動作を停止させ、
前記代替処理実行部は、指定された前記第２のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定された前記第２のプロセッサが、前記第１のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第２のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第２のプロセッサに、前記第１のプロセッサの処理を行わせ、
前記ファームウェア更新部は、前記第１のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記第１のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、更新処理装置。
【００５８】
（付記３）
付記２に記載の更新処理装置であって、
前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有しており、
当該更新処理装置が、更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ファームウェア変換部を更に備え、
前記代替処理実行部は、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第２のプロセッサのメモリ領域に書き込み、
前記ファームウェア更新部は、前記第１のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込む、
ことを特徴とする、更新処理装置。
【００５９】
（付記４）
付記２または３に記載の更新処理装置であって、
前記ファームウェア更新部は、前記第１のプロセッサの前記ファームウェアを更新した後に、前記第２のプロセッサそれぞれ毎に、当該第２のプロセッサのメモリ領域に、前記第２のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第２のプロセッサのファームウェアを更新する、
ことを特徴とする、更新処理装置。
【００６０】
（付記５）
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するための方法であって、
（ａ）前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、ステップと、
（ｂ）指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
（ｃ）前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
を有する、ことを特徴とする、更新処理方法。
【００６１】
（付記６）
付記５に記載の更新処理方法であって、
前記マルチプロセッサシステムは、単一の第１のプロセッサと、前記第１のプロセッサの指示に応じて動作する２つ以上の第２のプロセッサとを備え、
前記（ａ）のステップにおいて、前記第１のプロセッサがファームウェアの更新対象である場合に、いずれかの前記第２のプロセッサを指定し、その動作を停止させ、
前記（ｂ）のステップにおいて、指定された前記第２のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定された前記第２のプロセッサが、前記第１のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第２のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第２のプロセッサに、前記第１のプロセッサの処理を行わせ、
前記（ｂ）のステップにおいて、前記第１のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記第１のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、更新処理方法。
【００６２】
（付記７）
付記６に記載の更新処理方法であって、
前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有しており、当該更新処理方法が、更に、
（ｄ）更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ステップを有し、
前記（ｂ）のステップにおいて、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第２のプロセッサのメモリ領域に書き込み、
前記（ｃ）のステップにおいて、前記第１のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込む、
ことを特徴とする、更新処理方法。
【００６３】
（付記８）
付記６または７に記載の更新処理方法であって、
当該更新処理方法が、更に、
（ｅ）前記第１のプロセッサの前記ファームウェアを更新した後に、前記第２のプロセッサそれぞれ毎に、当該第２のプロセッサのメモリ領域に、前記第２のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第２のプロセッサのファームウェアを更新する、ステップを有する、
ことを特徴とする、更新処理方法。
【００６４】
（付記９）
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するためのプログラムであって、
前記複数のプロセッサのいずれかに、
（ａ）前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、ステップと、
（ｂ）指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
（ｃ）前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
を実行させる、ことを特徴とする、プログラム。
【００６５】
（付記１０）
付記９に記載のプログラムであって、
前記マルチプロセッサシステムは、単一の第１のプロセッサと、前記第１のプロセッサの指示に応じて動作する２つ以上の第２のプロセッサとを備え、
前記（ａ）のステップにおいて、前記第１のプロセッサがファームウェアの更新対象である場合に、いずれかの前記第２のプロセッサを指定し、その動作を停止させ、
前記（ｂ）のステップにおいて、指定された前記第２のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定された前記第２のプロセッサが、前記第１のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第２のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第２のプロセッサに、前記第１のプロセッサの処理を行わせ、
前記（ｂ）のステップにおいて、前記第１のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記第１のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、プログラム。
【００６６】
（付記１１）
付記１０に記載のプログラムであって、
前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有しており、前記複数のプロセッサのいずれかに、更に、
（ｄ）更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ステップを実行させ、
前記（ｂ）のステップにおいて、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第２のプロセッサのメモリ領域に書き込み、
前記（ｃ）のステップにおいて、前記第１のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込む、
ことを特徴とする、プログラム。
【００６７】
（付記１２）
付記１０または１１に記載のプログラムであって、
前記複数のプロセッサのいずれかに、更に、
（ｅ）前記第１のプロセッサの前記ファームウェアを更新した後に、前記第２のプロセッサそれぞれ毎に、当該第２のプロセッサのメモリ領域に、前記第２のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第２のプロセッサのファームウェアを更新する、ステップを実行させる、
ことを特徴とする、プログラム。
【産業上の利用可能性】
【００６８】
以上のように本発明によれば、マルチプロセッサシステムにおいて、再起動を行うことなく、ファームウェアをアップデートすることができる。本発明は、種々のマルチプロセッサシステムに有効である。
【符号の説明】
【００６９】
１０  更新処理装置
１１  プロセッサ指定部
１２  代替処理実行部
１３  ファームウェア更新部
１４  ファームウェア変換部
２０  メインプロセッサ
２１  ＲＡＭ
２２  フラッシュＲＯＭ
２３  Ｉ／Ｏコントローラ
３０  サブプロセッサ
３１  ＲＡＭ
４０  バス
１００  マルチプロセッサシステム
【図１】
2019159415.tif 000003
【図２】
2019159415.tif 000004
【図３】
2019159415.tif 000005
【図４】
2019159415.tif 000006
【図５】
2019159415.tif 000007