(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-28
(45)【発行日】2022-12-06
(54)【発明の名称】更新処理装置、更新処理方法、及びプログラム
(51)【国際特許分類】
G06F 8/656 20180101AFI20221129BHJP
【FI】
G06F8/656
(21)【出願番号】P 2018041160
(22)【出願日】2018-03-07
【審査請求日】2021-02-04
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】猪熊 俊夫
【審査官】杉浦 孝光
(56)【参考文献】
【文献】特開2012-146234(JP,A)
【文献】特開2002-342102(JP,A)
【文献】特開平10-260845(JP,A)
【文献】特開平07-319717(JP,A)
【文献】特開平07-099674(JP,A)
【文献】米国特許出願公開第2017/0139698(US,A1)
【文献】特開2002-034102(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00- 8/38
G06F 8/60- 8/77
G06F 9/44- 9/451
(57)【特許請求の範囲】
【請求項1】
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれかのファームウェアを更新するための装置であって、
前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、指定したプロセッサの動作を停止させる、プロセッサ指定部と、
指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、代替処理実行部と、
前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ファームウェア更新部と、
前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有している場合において、更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ファームウェア変換部と、
を備え、
前記マルチプロセッサシステムは、単一の第1のプロセッサと、前記第1のプロセッサの指示に応じて動作する2つ以上の第2のプロセッサとを備え、
前記プロセッサ指定部は、前記第1のプロセッサがファームウェアの更新対象である場合に、いずれかの前記第2のプロセッサを指定し、その動作を停止させ、
前記代替処理実行部は、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第2のプロセッサのメモリ領域に書き込み、更に、指定された前記第2のプロセッサが、前記第1のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第2のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第2のプロセッサに、前記第1のプロセッサの処理を行わせ、
前記ファームウェア更新部は、前記第1のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込み、前記第1のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、更新処理装置。
【請求項2】
請求項1に記載の更新処理装置であって、
前記ファームウェア更新部は、前記第1のプロセッサの前記ファームウェアを更新した後に、前記第2のプロセッサそれぞれ毎に、当該第2のプロセッサのメモリ領域に、前記第2のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第2のプロセッサのファームウェアを更新する、
ことを特徴とする、更新処理装置。
【請求項3】
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれかのファームウェアを更新するための方法であって、
(a)前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、指定したプロセッサの動作を停止させる、ステップと、
(b)指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
(c)前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
(d)前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有している場合において、更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ステップと、
を有し、
前記マルチプロセッサシステムは、単一の第1のプロセッサと、前記第1のプロセッサの指示に応じて動作する2つ以上の第2のプロセッサとを備え、
前記(a)のステップにおいて、前記第1のプロセッサがファームウェアの更新対象である場合に、いずれかの前記第2のプロセッサを指定し、その動作を停止させ、
前記(b)のステップにおいて、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第2のプロセッサのメモリ領域に書き込み、更に、指定された前記第2のプロセッサが、前記第1のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第2のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第2のプロセッサに、前記第1のプロセッサの処理を行わせ、
前記(b)のステップにおいて、前記第1のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込み、前記第1のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、更新処理方法。
【請求項4】
請求項3に記載の更新処理方法であって、
当該更新処理方法が、更に、
(e)前記第1のプロセッサの前記ファームウェアを更新した後に、前記第2のプロセッサそれぞれ毎に、当該第2のプロセッサのメモリ領域に、前記第2のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第2のプロセッサのファームウェアを更新する、ステップを有する、
ことを特徴とする、更新処理方法。
【請求項5】
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれかのファームウェアを更新するためのプログラムであって、
前記複数のプロセッサのいずれかに、
(a)前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、指定したプロセッサの動作を停止させる、ステップと、
(b)指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
(c)前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
(d)前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有している場合において、更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ステップと、
を実行させ、
前記マルチプロセッサシステムは、単一の第1のプロセッサと、前記第1のプロセッサの指示に応じて動作する2つ以上の第2のプロセッサとを備え、
前記(a)のステップにおいて、前記第1のプロセッサがファームウェアの更新対象である場合に、いずれかの前記第2のプロセッサを指定し、その動作を停止させ、
前記(b)のステップにおいて、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第2のプロセッサのメモリ領域に書き込み、更に、指定された前記第2のプロセッサが、前記第1のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第2のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第2のプロセッサに、前記第1のプロセッサの処理を行わせ、
前記(b)のステップにおいて、前記第1のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込み、前記第1のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、プログラム。
【請求項6】
請求項5に記載のプログラムであって、
前記複数のプロセッサのいずれかに、更に、
(e)前記第1のプロセッサの前記ファームウェアを更新した後に、前記第2のプロセッサそれぞれ毎に、当該第2のプロセッサのメモリ領域に、前記第2のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第2のプロセッサのファームウェアを更新する、ステップを実行させる、
ことを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチプロセッサを搭載したシステムにおいてファームウェアを更新するための、更新処理装置、及び更新処理方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【0002】
近年、シングルプロセッサの処理性能の限界から、組み込みシステムを含むコンピュータシステムにおいては、マルチプロセッサを搭載する場合が増加している。このようなマルチプロセッサを搭載したシステム(以下「マルチプロセッサシステム」と表記する。)によれば、大量のデータ及び命令を並列に処理できるため、システム全体の処理能力が飛躍的に向上することになる(例えば、特許文献1~3参照)。
【0003】
また、このようなマルチプロセッサシステムには、対称型マルチプロセッシング(SMP:Symmetric Multiprocessing)と呼ばれる方式と、非対称型マルチプロセッシング(AMP:Asymmetric Multiprocessing)と呼ばれる方式とがある。このうち、SMPは、プロセッサ間に特別な役割及び主従関係等がなく、各プロセッサは対等であり、処理要求が全てのプロセッサに均等に割り当てられる方式である。一方、AMPは、プロセッサ間に特別な役割及び主従関係等があり、プロセッサ毎に異なる処理が割り当てられる方式である。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2010/137262号
【文献】国際公開第2010/119932号
【文献】国際公開第2014/006732号
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上述したマルチプロセッサシステムであっても、シングルプロセッサで構成されたシステム(以下「シングルプロセッサシステム」と表記する。)と同様に、ファームウェアをアップデートする場合は、システムを一旦停止し、その後、再起動を行う必要がある。
【0006】
しかしながら、マルチプロセッサシステムは、シングルプロセッサシステムに比べて処理性能が高く、高い業務処理能力が求められる場面に採用されている。このため、マルチプロセッサシステムにおいては、システムを停止することなく、ファームウェアをアップデートすることが強く求められている。
【0007】
本発明の目的の一例は、上記問題を解消し、マルチプロセッサシステムにおいて、再起動を行うことなく、ファームウェアをアップデートし得る、更新処理装置、更新処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明の一側面における更新処理装置は、複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するための装置であって、
前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以
外のプロセッサを指定し、その動作を停止させる、プロセッサ指定部と、
指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、代替処理実行部と、
前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ファームウェア更新部と、
を備えている、ことを特徴とする。
【0009】
また、上記目的を達成するため、本発明の一側面における更新処理方法は、複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するための方法であって、
(a)前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、ステップと、
(b)指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
(c)前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
を有する、ことを特徴とする。
【0010】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するためのプログラムであって、
前記複数のプロセッサのいずれかに、
(a)前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、ステップと、
(b)指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
(c)前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
を実行させる、ことを特徴とする。
【発明の効果】
【0011】
以上のように本発明によれば、マルチプロセッサシステムにおいて、再起動を行うことなく、ファームウェアをアップデートすることができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、本発明の実施の形態における更新処理装置の概略構成を示すブロック図である。
【
図2】
図2は、本発明の実施の形態における更新処理装置の具体的構成を示すブロック図である。
【
図3】
図3は、本発明の実施の形態において、ファームウェアが有している、データのアクセス先のアドレスを示すテーブルの一例を示す図である。
【
図4】
図4は、本発明の実施の形態1における更新処理装置の動作を示すフロー図である。
【
図5】
図5は、
図4に示す更新処理の際のサブプロセッサの動作を示す図である。
【発明を実施するための形態】
【0013】
(実施の形態)
以下、本発明の実施の形態における、更新処理装置、更新処理方法、及びプログラムについて、
図1~
図5を参照しながら説明する。
【0014】
[装置構成]
最初に、
図1を用いて、本発明の実施の形態における更新処理装置の概略構成について説明する。
図1は、本発明の実施の形態における更新処理装置の概略構成を示すブロック図である。
【0015】
図1に示す本実施の形態における更新処理装置10は、複数のプロセッサを備えたマルチプロセッサシステム100において、複数のプロセッサのうちの、いずれか又は全部のプロセッサのファームウェアを更新するための装置である。
【0016】
図1に示すように、更新処理装置10は、プロセッサ指定部11と、代替処理実行部12と、ファームウェア更新部13とを備えている。プロセッサ指定部15は、複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる。
【0017】
代替処理実行部12は、まず、指定されたプロセッサのメモリ領域に、更新後のファームウェアを書き込む。次いで、代替処理実行部12は、指定されたプロセッサが、更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正する。そして、代替処理実行部12は、指定されたプロセッサに、更新対象となっているプロセッサの処理を行わせる。
【0018】
ファームウェア更新部13は、更新対象となっているプロセッサのメモリ領域に、更新後のファームウェアを書き込み、更新対象となっているプロセッサのファームウェアを更新する。
【0019】
このように、本実施の形態では、マルチプロセッサシステムを構成するプロセッサのファームウェアを更新しないといけない場面において、更新対象となるプロセッサの処理を、別のプロセッサによって肩代わりすることができる。このため、本実施の形態によれば、マルチプロセッサシステムにおいて、再起動を行うことなく、ファームウェアをアップデートすることができる。
【0020】
続いて、
図2を用いて、本実施の形態における更新処理装置10の構成をより具体的に説明する。
図2は、本発明の実施の形態における更新処理装置の具体的構成を示すブロック図である。
【0021】
図2の例では、マルチプロセッサシステム100は、単一のメインプロセッサ20と、メインプロセッサ20の指示に応じて動作する2つ以上のサブプロセッサ30とを備えている。メインプロセッサ20と、サブプロセッサ30とは、バス40によって接続されている。なお、メインプロセッサ20と、サブプロセッサ30とは、相手のメモリを読み書
き可能な環境にあれば良く、バス40以外の手段によって接続されていても良い。
【0022】
また、マルチプロセッサシステム100において、メインプロセッサ20は、専用のRAM(Random Access Memory)21と、ファームウェアを格納したフラッシュROM(Read Only Memory)22と、専用のI/Oコントローラ23とを備えている。メインプロセッサ20は、起動時において、フラッシュROMからファームウェアを読み出し、これをRAM21に展開する。また、各サブプロセッサ30も、専用のRAM31を備えている。なお、本実施の形態において、サブプロセッサ30の個数は特に限定されるものではない。
【0023】
このようなマルチプロセッサシステム100において、通常、サブプロセッサ30のファームウェアを更新する場合は、システム自体を停止しなくても良いが、メインプロセッサ20のファームウェアを更新する場合は、システム自体を停止する必要性がある。これに対して、更新処理装置10によれば、システム自体を停止することなく、メインプロセッサ20のファームウェアの更新が可能となる。
【0024】
また、本実施の形態では、更新処理装置10は、メインプロセッサ20によって構築されている。具体的には、後述する本実施の形態におけるプログラムが、メインプロセッサ20のRAM21のメモリ領域に展開されると、メインプロセッサ20はプログラムのコードを実行する。これにより、更新処理装置10が構築されることになる。
【0025】
本実施の形態では、更新処理装置10において、プロセッサ指定部11は、メインプロセッサがファームウェアの更新対象である場合に、いずれかのサブプロセッサ30を指定し、その動作を停止させる。
【0026】
また、本実施の形態では、代替処理実行部12は、まず、指定されたサブプロセッサ30のRAM31のメモリ領域に、更新後のファームウェアを書き込む。更に、代替処理実行部12は、指定されたサブプロセッサ30が、メインプロセッサ20のRAM21のメモリ領域に格納されたデータにアクセスできるように、指定されたサブプロセッサ30のメモリマップ設定を修正する。そして、代替処理実行部12は、指定されたサブプロセッサ30に、メインプロセッサ20の処理を行わせる。
【0027】
その後、ファームウェア更新部13は、指定されたサブプロセッサ30が、メインプロセッサ20の処理を行っている間に、メインプロセッサ20のRAM21のメモリ領域に、更新後のファームウェアを書き込み、メインプロセッサ20のファームウェアを更新する。
【0028】
ここで、
図2に加えて、
図3を用いて、更新処理装置10の機能についてより具体的に説明する。
図3は、本発明の実施の形態において、ファームウェアが有している、データのアクセス先のアドレスを示すテーブルの一例を示す図である。
【0029】
まず、本実施の形態では、ファームウェアは、データのアクセス先のアドレスを示すテーブル(以下「データアクセス箇所テーブル」と表記する)を有している。
図3において、上段は、更新前のファームウェアのデータアクセス箇所テーブルを示し、中段は、更新後のファームウェアのデータアクセス箇所テーブルを示している。また、
図3上段及び中段に示すように、データアクセス箇所テーブルは、シンボル毎に、アドレス及びオフセット(オフセットアドレス)を登録している。
【0030】
更に、
図2に示すように、更新処理装置10は、本実施の形態では、上述したプロセッサ指定部11、代替処理実行部12、及びファームウェア更新部13に加えて、ファーム
ウェア変換部14を備えている。
【0031】
ファームウェア変換部14は、更新前のファームウェアのテーブルと、更新後のファームウェアのテーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブル(
図3の下段参照)を作成する。
【0032】
具体的には、ファームウェア変換部14は、まず、更新前及び更新後のファームウェアそれぞれの「データアクセス箇所テーブル」を比較し、シンボルが同一で、アドレスが異なるエントリを特定する。次に、ファームウェア変換部14は、更新後のファームウェアにおいて、特定したエントリにおけるアドレスが更新前のファームウェアのアドレスとなるように、変換テーブルを作成する。
【0033】
また、変換テーブルには、「初期化」の欄が設定されており、この欄において、ファームウェア変換部14は、更新前のファームウェアからデータを引き継ぐエントリについては、「×」と設定する。一方、ファームウェア変換部14は、更新後のファームウェアにのみ存在するエントリについては、「○」と設定する。
【0034】
また、ファームウェア変換部14は、この変換テーブルを用いて、更新後のファームウェアにおけるアクセス先を変換する。この場合、代替処理実行部12は、アクセス先が変換された、更新後のファームウェアを、指定されたサブプロセッサ30のRAM31のメモリ領域に書き込み、指定されたサブプロセッサに、メインプロセッサ20の処理を肩代わりさせる。
【0035】
また、ファームウェア更新部13は、メインプロセッサ20のフラッシュROM22のメモリ領域に、アクセス先が変換された、更新後のファームウェアを書き込む。これにより、メインプロセッサ20において、ファームウェアが更新させる。その後、ファームウェア更新部13は、メインプロセッサ20に再起動を行わせる。再起動後、メインプロセッサ20は、更新されたファームウェアによって動作する。
【0036】
また、ファームウェア更新部13は、メインプロセッサ20のファームウェアを更新した後に、サブプロセッサ30それぞれ毎に、各サブプロセッサ30のRAM31のメモリ領域に、サブプロセッサ30の新たなファームウェアを書き込むことができる。この場合、ファームウェア更新部13は、書き込んだ新たなファームウェアを用いて、各サブプロセッサ30のファームウェアを更新する。
【0037】
[装置動作]
次に、本発明の実施の形態1における更新処理装置10の動作について
図4及び
図5を用いて説明する。
図4は、本発明の実施の形態1における更新処理装置の動作を示すフロー図である。
図5は、
図4に示す更新処理の際のサブプロセッサの動作を示す図である。以下の説明においては、適宜
図1~
図3を参酌する。また、本実施の形態では、更新処理装置10を動作させることによって、更新処理方法が実施される。よって、本実施の形態における更新処理方法の説明は、以下の更新処理装置10の動作説明に代える。
【0038】
図4に示すように、最初に、更新処理装置10は、マルチプロセッサシステム100の上位システム等から、メインプロセッサ20のファームウェアの更新通知と更新後のファームウェアとを受信する(ステップA1)。
【0039】
次に、更新処理装置10において、プロセッサ指定部11は、サブプロセッサ30のうちの1つを指定し、指定したサブプロセッサ30に対して、動作の停止を指示する(ステップA2)。具体的には、プロセッサ指定部11は、例えば、サブプロセッサ30のうち
、処理を行っていないサブプロセッサ30が存在している場合は、このサブプロセッサを指定する。
【0040】
次に、ファームウェア変換部14は、フラッシュROM22に格納されている更新前のファームウェアのテーブルと、ステップA1で受信した更新後のファームウェアのテーブルとを対比する。そして、ファームウェア変換部14は、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブル(
図3の下段参照)を作成する(ステップA3)。
【0041】
次に、ファームウェア変換部14は、ステップA3で作成した変換テーブルを用いて、更新後のファームウェアにおけるアクセス先を変換する(ステップA4)。
【0042】
次に、代替処理実行部12は、ステップA4によってアクセス先が変換された、更新後のファームウェアを、ステップA2で指定されたサブプロセッサ30のRAM31のメモリ領域に書き込む(ステップA5)。
【0043】
次に、代替処理実行部12は、ステップA2で指定されたプロセッサが、更新対象となっているメインプロセッサ20のRAM21のメモリ領域に格納されたデータにアクセスできるように、指定されたサブプロセッサのメモリマップ設定を修正する(ステップA6)。
【0044】
また、ステップA6においては、代替処理実行部12は、I/Oコントローラ23のデータ転送先を、指定されたサブプロセッサに変更する。これにより、
図5に示すように、指定されたサブプロセッサは、メインプロセッサ20のRAM21のメモリ領域にアクセスして、処理を開始する。
図5において、指定されたサブプロセッサ30には、ハッチングが施されている。
【0045】
次に、ファームウェア更新部13は、更新対象となっているメインプロセッサ20のフラッシュROM22のメモリ領域に、更新後のファームウェアを書き込み、メインプロセッサ20のファームウェアを更新する(ステップA7)。
【0046】
その後、ファームウェア更新部13は、メインプロセッサ20に再起動を行わせる(ステップA8)。再起動後、メインプロセッサ20は、更新されたファームウェアによって動作する。また、ファームウェア更新部13は、再起動が行われる前に、メインプロセッサ20は、ファームウェアが更新中であることを示すフラグを立てる。
【0047】
そして、フラグが立っている場合は、ファームウェア更新部13は、RAM21のメモリ領域の初期化の禁止、I/Oコントローラ23のデータ転送先のメインプロセッサ20への変更を実行する。
【0048】
加えて、ファームウェア更新部13は、フラグが立っている場合は、各サブプロセッサ30のRAM31のメモリ領域に、サブプロセッサ30の新たなファームウェアを書き込むことができる。また、ファームウェア更新部13は、書き込んだ新たなファームウェアを用いて、各サブプロセッサ30のファームウェアを更新する。
【0049】
[実施の形態による効果]
以上のように、本実施の形態では、メインプロセッサ20の処理をサブプロセッサ30に肩代わりさせることができる。このため、本実施の形態によれば、メインプロセッサ20のファームウェアを更新する場合であっても、マルチプロセッサシステム100を停止させることなく、継続して稼働させることができる。
【0050】
[プログラム]
本実施の形態におけるプログラムは、コンピュータに、
図5に示すステップA1~A8を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における更新処理装置10と更新処理方法とを実現することができる。この場合、コンピュータのプロセッサは、プロセッサ指定部11、代替処理実行部12、ファームウェア更新部13、及びファームウェア変換部14として機能し、処理を行なう。
【0051】
また、本実施の形態におけるプログラムを実行するコンピュータとしては、
図2に示したマルチプロセッサシステムが挙げられる。この場合、更新処理装置10の各部として機能するプロセッサは、メインプロセッサ20であるのが良いが、本実施の形態はこれに限定されず、いずれかのサブプロセッサ30であっても良い。また、コンピュータは、マルチプロセッサシステムに接続された外部のコンピュータであっても良い。
【0052】
また、本実施の形態において、プロセッサは、CPU(Central Processing Unit)であっても良いし、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)であっても良い。
【0053】
また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体に格納された状態で提供される。更に、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
【0054】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
【0055】
上述した実施の形態の一部又は全部は、以下に記載する(付記1)~(付記12)によって表現することができるが、以下の記載に限定されるものではない。
【0056】
(付記1)
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するための装置であって、
前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、プロセッサ指定部と、
指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、代替処理実行部と、
前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ファームウェア更新部と、
を備えている、ことを特徴とする、更新処理装置。
【0057】
(付記2)
付記1に記載の更新処理装置であって、
前記マルチプロセッサシステムは、単一の第1のプロセッサと、前記第1のプロセッサの指示に応じて動作する2つ以上の第2のプロセッサとを備え、
前記プロセッサ指定部は、前記第1のプロセッサがファームウェアの更新対象である場
合に、いずれかの前記第2のプロセッサを指定し、その動作を停止させ、
前記代替処理実行部は、指定された前記第2のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定された前記第2のプロセッサが、前記第1のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第2のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第2のプロセッサに、前記第1のプロセッサの処理を行わせ、
前記ファームウェア更新部は、前記第1のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記第1のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、更新処理装置。
【0058】
(付記3)
付記2に記載の更新処理装置であって、
前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有しており、
当該更新処理装置が、更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ファームウェア変換部を更に備え、
前記代替処理実行部は、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第2のプロセッサのメモリ領域に書き込み、
前記ファームウェア更新部は、前記第1のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込む、
ことを特徴とする、更新処理装置。
【0059】
(付記4)
付記2または3に記載の更新処理装置であって、
前記ファームウェア更新部は、前記第1のプロセッサの前記ファームウェアを更新した後に、前記第2のプロセッサそれぞれ毎に、当該第2のプロセッサのメモリ領域に、前記第2のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第2のプロセッサのファームウェアを更新する、
ことを特徴とする、更新処理装置。
【0060】
(付記5)
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するための方法であって、
(a)前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、ステップと、
(b)指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
(c)前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
を有する、ことを特徴とする、更新処理方法。
【0061】
(付記6)
付記5に記載の更新処理方法であって、
前記マルチプロセッサシステムは、単一の第1のプロセッサと、前記第1のプロセッサの指示に応じて動作する2つ以上の第2のプロセッサとを備え、
前記(a)のステップにおいて、前記第1のプロセッサがファームウェアの更新対象である場合に、いずれかの前記第2のプロセッサを指定し、その動作を停止させ、
前記(b)のステップにおいて、指定された前記第2のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定された前記第2のプロセッサが、前記第1のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第2のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第2のプロセッサに、前記第1のプロセッサの処理を行わせ、
前記(b)のステップにおいて、前記第1のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記第1のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、更新処理方法。
【0062】
(付記7)
付記6に記載の更新処理方法であって、
前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有しており、当該更新処理方法が、更に、
(d)更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ステップを有し、
前記(b)のステップにおいて、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第2のプロセッサのメモリ領域に書き込み、
前記(c)のステップにおいて、前記第1のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込む、
ことを特徴とする、更新処理方法。
【0063】
(付記8)
付記6または7に記載の更新処理方法であって、
当該更新処理方法が、更に、
(e)前記第1のプロセッサの前記ファームウェアを更新した後に、前記第2のプロセッサそれぞれ毎に、当該第2のプロセッサのメモリ領域に、前記第2のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第2のプロセッサのファームウェアを更新する、ステップを有する、
ことを特徴とする、更新処理方法。
【0064】
(付記9)
複数のプロセッサを備えたマルチプロセッサシステムにおいて、前記複数のプロセッサのうちのいずれか又は全部のファームウェアを更新するためのプログラムであって、
前記複数のプロセッサのいずれかに、
(a)前記複数のプロセッサの中から、ファームウェアの更新対象となっているプロセッサ以外のプロセッサを指定し、その動作を停止させる、ステップと、
(b)指定されたプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定されたプロセッサが、前記更新対象となっているプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定されたプロセッサのメモリマップ設定を修正し、指定されたプロセッサに、前記更新対象となっているプロセッサの処理を行わせる、ステップと、
(c)前記更新対象となっているプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記更新対象となっているプロセッサの前記ファームウェアを更新する、ステップと、
を実行させる、ことを特徴とする、プログラム。
【0065】
(付記10)
付記9に記載のプログラムであって、
前記マルチプロセッサシステムは、単一の第1のプロセッサと、前記第1のプロセッサの指示に応じて動作する2つ以上の第2のプロセッサとを備え、
前記(a)のステップにおいて、前記第1のプロセッサがファームウェアの更新対象である場合に、いずれかの前記第2のプロセッサを指定し、その動作を停止させ、
前記(b)のステップにおいて、指定された前記第2のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、更に、指定された前記第2のプロセッサが、前記第1のプロセッサのメモリ領域に格納されたデータにアクセスできるように、指定された前記第2のプロセッサのメモリマップ設定を修正し、それによって、指定された前記第2のプロセッサに、前記第1のプロセッサの処理を行わせ、
前記(b)のステップにおいて、前記第1のプロセッサのメモリ領域に、更新後の前記ファームウェアを書き込み、前記第1のプロセッサの前記ファームウェアを更新する、
ことを特徴とする、プログラム。
【0066】
(付記11)
付記10に記載のプログラムであって、
前記ファームウェアが、データのアクセス先のアドレスを示すテーブルを有しており、前記複数のプロセッサのいずれかに、更に、
(d)更新前のファームウェアの前記テーブルと、更新後のファームウェアの前記テーブルとを対比して、更新前と更新後とにおけるアクセス先の変換箇所を示す変換テーブルを作成し、前記変換テーブルを用いて、更新後の前記ファームウェアにおけるアクセス先を変換する、ステップを実行させ、
前記(b)のステップにおいて、アクセス先が変換された、更新後の前記ファームウェアを、指定された前記第2のプロセッサのメモリ領域に書き込み、
前記(c)のステップにおいて、前記第1のプロセッサのメモリ領域に、アクセス先が変換された、更新後の前記ファームウェアを書き込む、
ことを特徴とする、プログラム。
【0067】
(付記12)
付記10または11に記載のプログラムであって、
前記複数のプロセッサのいずれかに、更に、
(e)前記第1のプロセッサの前記ファームウェアを更新した後に、前記第2のプロセッサそれぞれ毎に、当該第2のプロセッサのメモリ領域に、前記第2のプロセッサの新たなファームウェアを書き込み、書き込んだ前記新たなファームウェアを用いて、当該第2のプロセッサのファームウェアを更新する、ステップを実行させる、
ことを特徴とする、プログラム。
【産業上の利用可能性】
【0068】
以上のように本発明によれば、マルチプロセッサシステムにおいて、再起動を行うことなく、ファームウェアをアップデートすることができる。本発明は、種々のマルチプロセッサシステムに有効である。
【符号の説明】
【0069】
10 更新処理装置
11 プロセッサ指定部
12 代替処理実行部
13 ファームウェア更新部
14 ファームウェア変換部
20 メインプロセッサ
21 RAM
22 フラッシュROM
23 I/Oコントローラ
30 サブプロセッサ
31 RAM
40 バス
100 マルチプロセッサシステム