(57)【特許請求の範囲】
【請求項１】
互いに通信可能に接続される複数のＣＰＵを搭載するとともに前記各ＣＰＵの動作を制御するファームウェアが格納されるメモリをＣＰＵごとに備えた情報処理装置における前記ファームウェアを更新するためのファームウェア更新方法であって、
前記情報処理装置に接続されるとともに更新すべきファームウェアが記憶された記憶媒体を制御するマスタＣＰＵ及び当該マスタＣＰＵと通信可能に接続されるスレーブＣＰＵのそれぞれの動作を制御するファームウェアを更新するとき、
前記マスタＣＰＵが、当該マスタＣＰＵの動作を制御する前記ファームウェアを前記メモリより消去するための消去コマンド及び前記記憶媒体に記憶された前記ファームウェアを前記メモリに書き込むための書き込みコマンドを発行した後、前記消去コマンド及び前記書き込みコマンドに対する応答を得るまでの待ち時間に、前記マスタＣＰＵが、前記スレーブＣＰＵの動作を制御する前記ファームウェアを更新するための処理を行い、
前記マスタＣＰＵが、当該マスタＣＰＵの動作を制御する前記ファームウェアを前記メモリより消去するための消去コマンド及び前記記憶媒体に記憶された前記ファームウェアを前記メモリに書き込むための書き込みコマンドを発行した後、前記消去コマンド及び前記書き込みコマンドに対する応答を得るまでの待ち時間と、前記マスタＣＰＵが、前記スレーブＣＰＵの動作を制御する前記ファームウェアを前記メモリより消去するための消去コマンド及び前記記憶媒体に記憶された前記ファームウェアを前記メモリに書き込むための書き込みコマンドを発行した後、前記消去コマンド及び前記書き込みコマンドに対する応答を得るまでの待ち時間と、を計測してこれらの計測データを前記情報処理装置の不揮発性メモリに記憶させておき、
前記不揮発性メモリに記憶された計測データに基づき、前記マスタＣＰＵが、前記マスタＣＰＵの動作を制御する前記ファームウェアを更新するための処理及び前記スレーブＣＰＵの動作を制御する前記ファームウェアを更新するための処理を行うことを特徴とするファームウェア更新方法。
【請求項２】
前記マスタＣＰＵと通信可能に接続される前記スレーブＣＰＵが複数存在するとき、
前記マスタＣＰＵが、前記各スレーブＣＰＵの動作を制御する前記ファームウェアを前記メモリより消去するための消去コマンド及び前記記憶媒体に記憶された前記ファームウェアを前記メモリに書き込むための書き込みコマンドを発行した後、前記消去コマンド及び前記書き込みコマンドに対する応答を得るまでの待ち時間を、スレーブＣＰＵごとに計測してこれらの計測データを前記情報処理装置の不揮発性メモリに記憶させ、
前記マスタＣＰＵが、前記不揮発性メモリに記憶された計測データに基づき更新処理を行う前記各スレーブＣＰＵの最適な組み合わせを決定し、この組み合わせに従って、前記マスタＣＰＵの動作を制御する前記ファームウェアを更新するための処理及び前記各スレーブＣＰＵの動作を制御する前記ファームウェアを更新するための処理を行うことを特徴とする請求項１に記載のファームウェア更新方法。
【請求項３】
互いに通信可能に接続される複数のＣＰＵを搭載するとともに前記各ＣＰＵの動作を制御するファームウェアが格納されるメモリをＣＰＵごとに備える情報処理装置において、
前記メモリに格納される前記ファームウェアに対して更新すべきファームウェアが記憶された記憶媒体が接続され、
請求項１又は請求項２の何れか１項に記載のファームウェア更新方法を用いて前記メモリに格納される前記ファームウェアの更新処理を行うことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信可能に接続される複数のＣＰＵの動作を制御するファームフェアのファームフェア更新方法、及び通信可能に接続される複数のＣＰＵを備えるとともにこのファームウェア更新方法を用いてファームウェアの更新を行う情報処理装置に関する。
【背景技術】
【０００２】
従来より、通信可能に接続される複数のＣＰＵを搭載する情報処理装置が知られている。この情報処理装置には、マスタＣＰＵの動作を制御するファームウェアを格納する媒体として、このマスタＣＰＵにフラッシュＲＯＭが内蔵されるか、或いは、フラッシュメモリ等の不揮発性デバイスが外部接続される。また、この情報処理装置には、マスタＣＰＵと通信可能に接続されるスレーブＣＰＵの動作を制御するファームウェアを格納する媒体として、スレーブＣＰＵにフラッシュＲＯＭが内蔵されるか、或いは、フラッシュメモリ等の不揮発性デバイスが外部接続される。
【０００３】
このような構成の情報処理装置において、マスタＣＰＵ及びスレーブＣＰＵの動作を制御するファームウェアの更新処理を行うとき、更新すべきファームウェアが記憶されたコンパクトフラッシュ（登録商標）等の外部記憶媒体がこの情報処理装置に接続される。そして、まず、マスタＣＰＵの動作を制御するファームウェアを更新するために、外部記憶媒体より更新すべきファームウェアが読み出され、マスタＣＰＵの動作を制御するファームウェアの更新処理が行われる。
【０００４】
また、次に、マスタＣＰＵの動作を制御するファームウェアの更新処理が完了すると、スレーブＣＰＵの動作を制御するファームウェアを更新するために、外部記憶媒体より更新すべきファームウェアが読み出され、スレーブＣＰＵの動作を制御するファームウェアの更新処理が行われる。よって、マスタＣＰＵと通信可能に接続されるスレーブＣＰＵが複数存在するとき、各スレーブＣＰＵの動作を制御するファームウェアの更新処理が、スレーブＣＰＵごとに順次行われる。
【０００５】
そして、複数のＣＰＵの動作を制御するファームウェアの更新処理を管理するシステムとして、ソフトウェアを記録媒体内から取り出す取出手段と、複数のＣＰＵおよびメモリと１つの取出手段との間をデータ伝送可能に接続するインターフェース手段と、記録媒体内から取り出したバージョンアップ用のソフトウェアを、インターフェース手段を介してこのソフトウェアを使用するＣＰＵ用のメモリ内に転送してソフトウェアを更新する更新手段と、メモリ内に格納された複数のＣＰＵ毎のソフトウェアのバージョンを一元的に管理するとともに、メモリ内のソフトウェアのバージョンアップを行うことを全てのＣＰＵに通知する管理手投と、を備えることにより、簡易なシステムにより低コストで容易なソフトウェアのバージョンアップを実現することのできるソフトウェアのバージョンアップ管理システムが提案されている（特許文献１参照）。
【特許文献１】特開２００１−１１７７６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ここで、上記情報処理装置において、マスタＣＰＵやスレーブＣＰＵの動作を制御するファームウェアを格納するフラッシュＲＯＭが各ＣＰＵに内蔵されるとき、まず、マスタＣＰＵの動作を制御するファームウェアを更新するために、マスタＣＰＵがフラッシュＲＯＭに対してマスタＣＰＵの動作を制御するファームウェアを消去するための消去コマンドを発行すると、フラッシュＲＯＭ内部において消去シーケンスが実行される。そして、マスタＣＰＵがフラッシュＲＯＭに対して消去コマンドを発行してから、この消去シーケンスが完了して消去完了の通知を得るまでの間、マスタＣＰＵは待ち状態となる。
【０００７】
また、フラッシュＲＯＭに格納されるファームウェアの消去が完了した後、外部記憶媒体より読み出された更新すべきファームウェアのデータを１ブロックずつフラッシュＲＯＭに書き込むために、マスタＣＰＵが、フラッシュＲＯＭに対して書き込みコマンドを発行すると、フラッシュＲＯＭ内部において書き込みシーケンスが実行される。そして、マスタＣＰＵがフラッシュＲＯＭに対して書き込みコマンドを発行してから、この書き込みシーケンスが完了して書き込み完了の通知を得るまでの間、マスタＣＰＵは待ち状態となる。よって、外部記憶媒体より読み出された更新すべきファームウェアをフラッシュＲＯＭに書き込むとき、ブロックごとに待ち時間が発生する。
【０００８】
また、次に、マスタＣＰＵの動作を制御するファームウェアの更新処理が完了した後、スレーブＣＰＵの動作を制御するファームウェアを更新するために、マスタＣＰＵがフラッシュＲＯＭに対してスレーブＣＰＵの動作を制御するファームウェアを消去するための消去コマンドを発行すると、フラッシュＲＯＭ内部において消去シーケンスが実行される。そして、マスタＣＰＵがフラッシュＲＯＭに対して消去コマンドを発行してから、この消去シーケンスが完了して消去完了の通知を得るまでの間、マスタＣＰＵは待ち状態となる。
【０００９】
更に、フラッシュＲＯＭに格納されるファームウェアの消去が完了した後、外部記憶媒体より読み出された更新すべきファームウェアのデータを１バイトずつ送信してフラッシュＲＯＭに書き込むために、マスタＣＰＵが、フラッシュＲＯＭに対して書き込みコマンドを発行すると、フラッシュＲＯＭ内部において書き込みシーケンスが実行される。そして、マスタＣＰＵがフラッシュＲＯＭに対して書き込みコマンドを発行してから、この書き込みシーケンスが完了して送信完了の通知を得るまでの間、マスタＣＰＵは待ち状態となる。よって、外部記憶媒体より読み出された更新すべきファームウェアをフラッシュＲＯＭに書き込むとき、１バイトのデータを送信するごとに待ち時間が発生する。
【００１０】
このように、マスタＣＰＵの動作を制御するファームウェアの更新処理が完了した後にスレーブＣＰＵの動作を制御するファームウェアの更新処理が行われる。よって、全ての更新処理が完了するまでに要する時間は、マスタＣＰＵの動作を制御するファームウェアの更新処理に要する時間とスレーブＣＰＵの動作を制御するファームウェアの更新処理に要する時間の総和となり、更新処理を行うユーザ、或いは、サービスマンに対し、多大な時間的負担を強いるものとなっていた。
【００１１】
特に、マスタＣＰＵに対して複数のスレーブＣＰＵが通信可能に接続される情報処理装置においては、全てのスレーブＣＰＵの動作を制御するファームウェアの更新処理に要する時間が、各スレーブＣＰＵの動作を制御するファームウェアの更新処理に要する時間にスレーブＣＰＵの個数を掛けた時間と概ね等しくなるため、ファームウェアの更新処理に要する時間が更に増加するという問題がある。
【００１２】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、通信可能に接続される複数のＣＰＵの動作を制御するファームフェアの更新処理に要する時間を短縮することのできるファームフェア更新方法、及びこのファームウェア更新方法を用いてファームウェアの更新を行う情報処理装置を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明のファームウェア更新方法は、互いに通信可能に接続される複数のＣＰＵを搭載するとともに前記各ＣＰＵの動作を制御するファームウェアが格納されるメモリをＣＰＵごとに備えた情報処理装置における前記ファームウェアを更新するためのファームウェア更新方法であって、前記情報処理装置に接続されるとともに更新すべきファームウェアが記憶された記憶媒体を制御するマスタＣＰＵ及び当該マスタＣＰＵと通信可能に接続されるスレーブＣＰＵのそれぞれの動作を制御するファームウェアを更新するとき、前記マスタＣＰＵが、当該マスタＣＰＵの動作を制御する前記ファームウェアを前記メモリより消去するための消去コマンド及び前記記憶媒体に記憶された前記ファームウェアを前記メモリに書き込むための書き込みコマンドを発行した後、前記消去コマンド及び前記書き込みコマンドに対する応答を得るまでの待ち時間に、前記マスタＣＰＵが、前記スレーブＣＰＵの動作を制御する前記ファームウェアを更新するための処理を行うことを特徴とする。
【００１４】
このようなファームウェア更新方法において、前記マスタＣＰＵが、当該マスタＣＰＵの動作を制御する前記ファームウェアを前記メモリより消去するための消去コマンド及び前記記憶媒体に記憶された前記ファームウェアを前記メモリに書き込むための書き込みコマンドを発行した後、前記消去コマンド及び前記書き込みコマンドに対する応答を得るまでの待ち時間と、前記マスタＣＰＵが、前記スレーブＣＰＵの動作を制御する前記ファームウェアを前記メモリより消去するための消去コマンド及び前記記憶媒体に記憶された前記ファームウェアを前記メモリに書き込むための書き込みコマンドを発行した後、前記消去コマンド及び前記書き込みコマンドに対する応答を得るまでの待ち時間と、を計測してこれらの計測データを前記情報処理装置の不揮発性メモリに記憶させ、前記不揮発性メモリに記憶された計測データに基づき、前記マスタＣＰＵが、前記マスタＣＰＵの動作を制御する前記ファームウェアを更新するための処理及び前記スレーブＣＰＵの動作を制御する前記ファームウェアを更新するための処理を行う。
【００１５】
このように、マスタＣＰＵが不揮発性メモリに記憶された計測データを参照し、これらの待ち時間を最大限に利用して各メモリに格納されたファームウェアの更新処理を並列で実行することにより、ファームウェアの更新処理に要する時間を大幅に短縮することができる。
【００１６】
また、このようなファームウェア更新方法において、前記マスタＣＰＵと通信可能に接続される前記スレーブＣＰＵが複数存在するとき、前記マスタＣＰＵが、前記各スレーブＣＰＵの動作を制御する前記ファームウェアを前記メモリより消去するための消去コマンド及び前記記憶媒体に記憶された前記ファームウェアを前記メモリに書き込むための書き込みコマンドを発行した後、前記消去コマンド及び前記書き込みコマンドに対する応答を得るまでの待ち時間を、スレーブＣＰＵごとに計測してこれらの計測データを前記情報処理装置の不揮発性メモリに記憶させ、前記マスタＣＰＵが、前記不揮発性メモリに記憶された計測データに基づき更新処理を行う前記各スレーブＣＰＵの最適な組み合わせを決定し、この組み合わせに従って、前記マスタＣＰＵの動作を制御する前記ファームウェアを更新するための処理及び前記各スレーブＣＰＵの動作を制御する前記ファームウェアを更新するための処理を行う。
【００１７】
このとき、マスタＣＰＵは、マスタＣＰＵが各スレーブＣＰＵの動作を制御するファームウェアをメモリより消去するための消去コマンド及び記憶媒体に記憶されたファームウェアをメモリに書き込むための書き込みコマンドを発行した後、消去コマンド及び書き込みコマンドに対する応答を得るまでの待ち時間が、マスタＣＰＵが当該マスタＣＰＵの動作を制御するファームウェアをメモリより消去するための消去コマンド及び記憶媒体に記憶されたファームウェアをメモリに書き込むための書き込みコマンドを発行した後、消去コマンド及び書き込みコマンドに対する応答を得るまでの待ち時間に、収まるように、更新処理を行うスレーブＣＰＵの最適な組み合わせを決定する。これにより、マスタＣＰＵと通信可能に接続されるスレーブＣＰＵが複数存在するときにも、ファームウェアの更新処理に要する時間を大幅に短縮することができる。
【００１８】
また、上記目的を達成するために、本発明の情報処理装置は、互いに通信可能に接続される複数のＣＰＵを搭載するとともに前記各ＣＰＵの動作を制御するファームウェアが格納されるメモリをＣＰＵごとに備える情報処理装置において、前記メモリに格納される前記ファームウェアに対して更新すべきファームウェアが記憶された記憶媒体が接続され、上述の何れかのファームウェア更新方法を用いて前記メモリに格納される前記ファームウェアの更新処理を行うことを特徴とする。
【発明の効果】
【００１９】
本発明によれば、マスタＣＰＵが当該マスタＣＰＵの動作を制御するファームウェアをメモリより消去するための消去コマンド及び記憶媒体に記憶されたファームウェアをメモリに書き込むための書き込みコマンドを発行した後、消去コマンド及び書き込みコマンドに対する応答を得るまでの待ち時間に、マスタＣＰＵがスレーブＣＰＵの動作を制御するファームウェアを更新するための処理を行うようにしているため、マスタＣＰＵの動作を制御するファームウェアの更新処理とスレーブＣＰＵの動作を制御するファームウェアの更新処理とを並列実行することが可能となり、通信可能に接続される複数のＣＰＵの動作を制御するファームフェアの更新処理に要する時間を大幅に短縮することができ、更新処理を行うユーザ、或いは、サービスマンに対する時間的負担を極力減らすことができる。特に、複数のスレーブＣＰＵがマスタＣＰＵと通信可能に接続されるとき、これらのＣＰＵの動作を制御するファームフェアの更新処理に要する時間をより一層短縮することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態を図面に基づいて詳細に説明する。
【００２１】
《発明の実施形態》
図１に示すように、本実施形態の情報処理装置は、マスタＣＰＵ装置１０と複数のスレーブＣＰＵ装置２０とによって構成されており、マスタＣＰＵ装置１０と各スレーブＣＰＵ装置２０とが通信可能に接続されている。尚、ＣＰＵとは、中央処理装置（Central Processing Unit）を表す。また、この情報処理装置では、図１に示すように、スレーブＣＰＵ装置２０を２台設置しているが、これに限らず、スレーブＣＰＵ装置２０を１台だけ設置してもよいし、或いは、スレーブＣＰＵ装置２０を３台以上設置するようにしてもよい。
【００２２】
このような構成の情報処理装置において、図１に破線で示すマスタＣＰＵ装置１０は、マスタＣＰＵ装置１０全体の動作を制御するマスタ側ＣＰＵ１１と、このマスタ側ＣＰＵ１１が各種制御を実行する際にワーク領域として使用されるマスタ側ＲＡＭ（Random Access Memory）１２と、各種制御プログラムや各種データ等が格納されるマスタ側フラッシュＲＯＭ（Read Only Memory）１３（以下、マスタ側ＲＯＭ１３と呼ぶ）と、このマスタＣＰＵ装置１０に接続されるとともに更新すべきファームウェアが記憶されるコンパクトフラッシュ（登録商標）等の外部記憶媒体１４と、後述する各スレーブＣＰＵ装置２０のスレーブ側通信部２５との通信によりデータの送受信を行うマスタ側通信部１５と、を備えている。
【００２３】
そして、図１に示すマスタ側ＲＯＭ１３には、マスタ側ＣＰＵ１１を動作させるとともにマスタ側ＣＰＵ１１の動作を制御するためのファームウェアが格納されている。
【００２４】
また、図１に示す外部記憶媒体１４には、マスタ側ＲＯＭ１３に格納されるファームウェアや後述するスレーブ側ＲＯＭ２３に格納されるファームウェアに対して更新すべきファームウェアが記憶されている。尚、この外部記憶媒体１４は、コンパクトフラッシュ（登録商標）に限定されるものではなく、更新すべきファームウェアを情報処理装置の外部より提供できるものであれば何でもよい。例えば、この外部記憶媒体１４として、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）やＭＯ（Magneto-Optical disk）などが挙げられる。
【００２５】
また、図１に示すマスタ側通信部１５は、後述するスレーブ側通信部２５との間で、同期式または非同期式のシリアル通信を行う。尚、マスタ側通信部１５とスレーブ側通信部２５との間の通信手段としては、他に、ＵＳＢ（Universal Serial Bus）、ＬＡＮ（Local Area Network）、或いは、インターネットなどが挙げられる。
【００２６】
一方、図１に破線で示す各スレーブＣＰＵ装置２０は、スレーブＣＰＵ装置２０全体の動作を制御するスレーブ側ＣＰＵ２１と、このスレーブ側ＣＰＵ２１が各種制御を実行する際にワーク領域として使用されるスレーブ側ＲＡＭ２２と、各種制御プログラムや各種データ等が格納されるスレーブ側フラッシュＲＯＭ２３（以下、スレーブ側ＲＯＭ２３と呼ぶ）と、マスタＣＰＵ装置１０のマスタ側通信部１５との通信によりデータの送受信を行うスレーブ側通信部２５と、を備えている。
【００２７】
そして、図１に示すスレーブ側ＲＯＭ２３には、スレーブ側ＣＰＵ２１を動作させるとともにスレーブ側ＣＰＵ２１の動作を制御するためのファームウェアが格納されている。
【００２８】
このように情報処理装置が構成されるとき、マスタ側ＣＰＵ１１は、マスタＣＰＵ装置１０に外部記憶媒体１４が接続されたことを認識すると、この外部記憶媒体１４に記憶されたファームウェアのバージョンを確認するとともに、マスタ側ＲＯＭ１３に格納されたファームウェアのバージョンを確認する。また、マスタ側通信部１５と各スレーブ側通信部２５との間で通信を行うことにより、マスタ側ＣＰＵ１１は、各スレーブ側ＲＯＭ２３に格納されたファームウェアのバージョンを確認する。
【００２９】
続いて、マスタ側ＣＰＵ１１において、外部記憶媒体１４に記憶されたファームウェアのバージョンと、マスタ側ＲＯＭ１３及び各スレーブ側ＲＯＭ２３に格納されたファームウェアのバージョンと、が比較される。この比較結果により、マスタ側ＣＰＵ１１が、外部記憶媒体１４に記憶されたファームウェアのバージョンの方がマスタ側ＲＯＭ１３或いは各スレーブ側ＲＯＭ２３に格納されたファームウェアのバージョンよりも高いことを確認すると、マスタ側ＲＯＭ１３或いは各スレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を行う。
【００３０】
具体的に、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理を行うとき、マスタ側ＣＰＵ１１は、マスタ側ＲＯＭ１３に格納されたファームウェアを消去するために、このマスタ側ＲＯＭ１３に対して消去コマンドを発行する。また、マスタ側ＲＯＭ１３に格納されたファームウェアの消去後、マスタ側ＣＰＵ１１は、外部記憶媒体１４より読み出したファームウェアのデータをマスタ側ＲＯＭ１３に書き込むために、マスタ側ＲＯＭ１３に対して書き込みコマンドを発行する。
【００３１】
そして、マスタ側ＣＰＵ１１がマスタ側ＲＯＭ１３に対して消去コマンド或いは書き込みコマンドを発行した後、このマスタ側ＲＯＭ１３より消去完了或いは書き込み完了の通知を得るまでの間、マスタ側ＣＰＵ１１は待ち状態となる。よって、この情報処理装置では、マスタ側ＣＰＵ１１がマスタ側ＲＯＭ１３に対して消去コマンド或いは書き込みコマンドを発行した後、このマスタ側ＲＯＭ１３より消去完了或いは書き込み完了の通知を得るまで待ち時間に、各スレーブＣＰＵ装置２０のスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を行う。
【００３２】
具体的に、マスタ側ＣＰＵ１１は、各スレーブＣＰＵ装置２０のスレーブ側ＲＯＭ２３に格納されたファームウェアを消去するために、各スレーブ側ＲＯＭ２３に対して消去コマンドを発行する。また、各スレーブ側ＲＯＭ２３に格納されたファームウェアの消去後、マスタ側ＣＰＵ１１は、外部記憶媒体１４より読み出したファームウェアのデータを各スレーブ側ＲＯＭ２３に書き込むために、各スレーブ側ＲＯＭ２３に対して書き込みコマンドを発行する。
【００３３】
そして、マスタ側ＣＰＵ１１が各スレーブ側ＣＰＵ２１に対して消去コマンド或いは書き込みコマンドを発行した後、各スレーブ側ＲＯＭ２３より消去完了或いは書き込み完了の通知を得るまでの間、マスタ側ＣＰＵ１１は待ち状態となる。よって、この情報処理装置では、マスタ側ＣＰＵ１１が各スレーブ側ＲＯＭ２３に対して消去コマンド或いは書き込みコマンドを発行した後、各スレーブ側ＲＯＭ２３より消去完了或いは書き込み完了の通知を得るまでの待ち時間に、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理を行う。
【００３４】
このように構成された情報処理装置におけるマスタ側ＲＯＭ１３及び各スレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理について、図２に示すフローチャートを参照しながら説明する。尚、ここでは、マスタＣＰＵ装置１０に通信可能に接続されるスレーブＣＰＵ装置２０を１個として説明を行う。また、丸囲みのＡ及びＢの動作については、全てのステップ（即ち、ステップＳ１１からステップＳ２５まで）について説明した後に、その説明を行う。また、上述した情報処理装置の動作と重複する部分については、その詳細な説明を省略する。
【００３５】
マスタＣＰＵ装置１０のマスタ側ＣＰＵ１１は、このマスタＣＰＵ装置１０に外部記憶媒体１４が接続されたことを認識すると、外部記憶媒体１４に記憶されたファームウェアのバージョンを確認するとともに、マスタ側ＲＯＭ１３及びスレーブＣＰＵ装置２０のスレーブ側ＲＯＭ２３に格納されたファームウェアのバージョンを確認する。
【００３６】
そして、マスタ側ＣＰＵ１１において、外部記憶媒体１４に記憶されたファームウェアのバージョンと、マスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアのバージョンと、を比較することにより、マスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアを更新する必要があるか否かの判断が行われる（ステップＳ１１）。
【００３７】
この比較結果により、マスタ側ＣＰＵ１１が、外部記憶媒体１４に記憶されたファームウェアのバージョンがマスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアのバージョンと同じか、このバージョンよりも低いことを確認すると（ステップＳ１１でＮｏ）、マスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を中止し、処理を終了する。
【００３８】
一方、この比較結果により、マスタ側ＣＰＵ１１が、外部記憶媒体１４に記憶されたファームウェアのバージョンの方がマスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアのバージョンよりも高いことを確認すると（ステップＳ１１でＹｅｓ）、マスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を開始する。尚、以下では、マスタ側ＲＯＭ１３とスレーブ側ＲＯＭ２３の両方に格納されたファームウェアを更新するものとして説明を行う。
【００３９】
まず、マスタ側ＣＰＵ１１は、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理を開始する（ステップＳ１２）。そして、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３に格納されたファームウェアを消去するために、このマスタ側ＲＯＭ１３に対して消去コマンドを発行することにより（ステップＳ１３）、マスタ側ＲＯＭ１３内部において消去シーケンスが実行される。続いて、マスタ側ＣＰＵ１１は、マスタ側ＲＯＭ１３に問い合わせることによって、マスタ側ＲＯＭ１３に格納されたファームウェアの消去が完了したか否かの判断を行う（ステップＳ１４）。
【００４０】
このとき、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３より消去完了の通知を得て、マスタ側ＲＯＭ１３に格納されたファームウェアの消去が完了したことを確認すると（ステップＳ１４でＹｅｓ）、マスタ側ＣＰＵ１１によって、外部記憶媒体１４より更新すべきファームウェアのデータが１ブロックずつ読み出される（ステップＳ１５）。そして、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３に新しいファームウェアを格納するために、このマスタ側ＲＯＭ１３に対して書き込みコマンドを発行する。これにより、外部記憶媒体１４より読み出された更新すべきファームウェアのデータが、ブロック単位でこのマスタ側ＲＯＭ１３に書き込まれる（ステップＳ１６）。
【００４１】
続いて、マスタ側ＣＰＵ１１において、マスタ側ＲＯＭ１３に問い合わせることによって、外部記憶媒体１４より読み出された更新すべきファームウェアのデータのマスタ側ＲＯＭ１３への書き込みが完了したか否かの判断が１ブロックずつ行われる（ステップＳ１７）。このとき、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３より書き込み完了の通知を得て、マスタ側ＲＯＭ１３へのデータの書き込みが１ブロック分完了したことを確認すると（ステップＳ１７でＹｅｓ）、次に、マスタ側ＣＰＵ１１において、外部記憶媒体１４に記憶される更新すべきファームウェアの全てのデータのマスタ側ＲＯＭ１３への書き込みが完了したか否かの判断が行われる（ステップＳ１８）。
【００４２】
このとき、マスタ側ＣＰＵ１１が、外部記憶媒体１４に記憶されるファームウェアの全てのデータのマスタ側ＲＯＭ１３への書き込みが完了していないことを確認すると（ステップＳ１８でＮｏ）、ステップＳ１５に戻り、マスタ側ＣＰＵ１１によって、外部記憶媒体１４より更新すべきファームウェアのデータが１ブロックずつ読み出される。一方、このとき、マスタ側ＣＰＵ１１が、外部記憶媒体１４に記憶される更新すべきファームウェアの全てのデータのマスタ側ＲＯＭ１３への書き込みが完了したことを確認すると（ステップＳ１８でＹｅｓ）、スレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理が完了したか否かの判断が行われる。
【００４３】
このとき、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理が完了したことを確認すると、マスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を終了する。一方、このとき、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理が完了していないことを確認すると、スレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理に移行する。そして、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理が完了したことを確認すると、マスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を終了する。
【００４４】
また、ステップＳ１４において、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３より消去完了の通知を得られず、マスタ側ＲＯＭ１３に格納されたファームウェアの消去が完了したことを確認できないと（ステップＳ１４でＮｏ）、マスタ側ＲＯＭ１３より消去完了の通知を得るまでの間、待ち状態となる。よって、このとき、マスタ側ＣＰＵ１１は、スレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を開始する（ステップＳ１９）。
【００４５】
そして、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に格納されたファームウェアを消去するために、このスレーブ側ＲＯＭ２３に対して消去コマンドを発行することにより（ステップＳ２０）、スレーブ側ＲＯＭ２３内部において消去シーケンスが実行される。続いて、マスタ側ＣＰＵ１１は、スレーブ側ＲＯＭ２３に問い合わせることによって、スレーブ側ＲＯＭ２３に格納されたファームウェアの消去が完了したか否かの判断を行う（ステップＳ２１）。
【００４６】
このとき、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３より消去完了の通知を得て、スレーブ側ＲＯＭ２３に格納されたファームウェアの消去が完了したことを確認すると（ステップＳ２１でＹｅｓ）、マスタ側ＣＰＵ１１によって、外部記憶媒体１４より更新すべきファームウェアのデータが１バイトずつ読み出される（ステップＳ２２）。そして、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に新しいファームウェアを格納するために、このスレーブ側ＲＯＭ２３に対して書き込みコマンドを発行する。これにより、外部記憶媒体１４より読み出された更新すべきファームウェアのデータが、マスタ側通信部１５からスレーブ側通信部２５へ１バイト分送信され、このスレーブ側ＲＯＭ２３に書き込まれる（ステップＳ２３）。
【００４７】
続いて、マスタ側ＣＰＵ１１において、スレーブ側ＲＯＭ２３に問い合わせることによって、外部記憶媒体１４より読み出された更新すべきファームウェアのデータのスレーブ側ＲＯＭ２３への送信が完了したか否かの判断が１バイトずつ行われる（ステップＳ２４）。このとき、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３より書き込み完了の通知を得て、スレーブ側ＲＯＭ２３へのファームウェアのデータの送信が１バイト分完了したことを確認すると（ステップＳ２４でＹｅｓ）、次に、マスタ側ＣＰＵ１１において、外部記憶媒体１４に記憶される更新すべきファームウェアの全てのデータについて、スレーブ側ＲＯＭ２３への送信が完了したか否かの判断が行われる（ステップＳ２５）。
【００４８】
このとき、マスタ側ＣＰＵ１１が、外部記憶媒体１４に記憶される更新すべきファームウェアの全てのデータのマスタ側ＲＯＭ１３への送信が完了していないことを確認すると（ステップＳ２５でＮｏ）、ステップＳ２２に戻り、マスタ側ＣＰＵ１１によって、外部記憶媒体１４より更新すべきファームウェアの残りのデータが１バイトずつ読み出される。一方、このとき、マスタ側ＣＰＵ１１が、外部記憶媒体１４に記憶される更新すべきファームウェアの全てのデータについて、スレーブ側ＲＯＭ２３への送信が完了したことを確認すると（ステップＳ２５でＹｅｓ）、次に、このマスタ側ＣＰＵ１１において、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理が完了したか否かの判断が行われる。
【００４９】
このとき、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理が完了したことを確認すると、マスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を終了する。一方、このとき、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理が完了していないことを確認すると、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理に移行する。そして、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理が完了したことを確認すると、マスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を終了する。
【００５０】
このようにマスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理が行われるとき、ステップＳ１６において、マスタ側ＣＰＵ１１がマスタ側ＲＯＭ１３に対して書き込みコマンドを発行することにより、マスタ側ＲＯＭ１３内部において書き込みシーケンスが実行される。そして、マスタ側ＣＰＵ１１がマスタ側ＲＯＭ１３に対して書き込みコマンドを発行した後、マスタ側ＲＯＭ１３より書き込み完了の通知を得るまでの間、マスタ側ＣＰＵ１１は待ち状態となる。よって、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３へのファームウェアのデータの書き込みが完了していないことを確認すると（ステップＳ１７でＮｏ）、スレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理に移行する。
【００５１】
具体的には、マスタ側ＣＰＵ１１によるスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理が開始されていないとき、ステップＳ１９において、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を開始する。
【００５２】
或いは、マスタ側ＣＰＵ１１よりスレーブ側ＲＯＭ２３に対してスレーブ側ＲＯＭ２３に格納されたファームウェアを消去するための消去コマンドが発行されたものの、スレーブ側ＲＯＭ２３より消去完了の通知が得られないとき（ステップＳ２１でＮｏ）、ステップＳ２１において、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に格納されたファームウェアの消去が完了したか否かの判断を行う。或いは、外部記憶媒体１４より読み出された更新すべきファームウェアのデータが、スレーブ側ＲＯＭ２３へ１バイト分送信されたものの、スレーブ側ＲＯＭ２３へのデータの送信が完了したことを確認できないとき（ステップＳ２４でＮｏ）、ステップＳ２４において、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３へのファームウェアのデータの送信が完了したか否かの判断を行う。
【００５３】
また、このようにマスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理が行われるとき、ステップＳ２０において、マスタ側ＣＰＵ１１がスレーブ側ＲＯＭ２３に対してスレーブ側ＲＯＭ２３に格納されたファームウェアを消去するための消去コマンドを発行することにより、スレーブ側ＲＯＭ２３内部において消去シーケンスが実行される。そして、マスタ側ＣＰＵ１１がスレーブ側ＲＯＭ２３に対して消去コマンドを発行してからスレーブ側ＲＯＭ２３より消去完了の通知を得るまでの間、マスタ側ＣＰＵ１１は待ち状態となる。よって、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に格納されたファームウェアの消去が完了していないことを確認すると（ステップＳ２１でＮｏ）、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理に移行する。
【００５４】
また、ステップＳ２３において、マスタ側ＣＰＵ１１がスレーブ側ＲＯＭ２３に対して書き込みコマンドを発行することにより、スレーブ側ＲＯＭ２３内部において書き込みシーケンスが実行される。そして、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に対して書き込みコマンドを発行した後、スレーブ側ＲＯＭ２３より書き込み完了の通知を得るまでの間、マスタ側ＣＰＵ１１は待ち状態となる。よって、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３より書き込み完了の通知を得られず、スレーブ側ＲＯＭ２３へのファームウェアのデータの送信が完了していないことを確認すると（ステップＳ２４でＮｏ）、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理に移行する。
【００５５】
具体的には、マスタ側ＣＰＵ１１よりマスタ側ＲＯＭ１３に対してマスタ側ＲＯＭ１３に格納されたファームウェアを消去するための消去コマンドが発行されたものの、マスタ側ＲＯＭ１３より消去完了の通知が得られないとき（ステップＳ１４でＮｏ）、ステップＳ１４において、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３に格納されたファームウェアの消去が完了したか否かの判断を行う。或いは、外部記憶媒体１４より読み出された更新すべきファームウェアのデータが、マスタ側ＲＯＭ１３に１ブロック分書き込まれたものの、マスタ側ＲＯＭ１３へのデータの書き込みが完了したことを確認できないとき（ステップＳ１７でＮｏ）、ステップＳ１７において、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３へのファームウェアのデータの書き込みが完了したか否かの判断を行う。
【００５６】
このように、マスタ側ＣＰＵ１１がマスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に消去コマンド或いは書き込みコマンドを発行してから応答を得るまでの待ち時間を利用して、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理とスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理とが並列で実行される。そして、この処理を行うためのプログラムは、ＯＳ上にタスクとして構成してもよいし、或いは、ＯＳレスシステムで構成してもよい。
【００５７】
また、図２に示すフローチャートのステップＳ１４でＮｏ，ステップＳ１７でＮｏがそれぞれ選択され、マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理から並列で実行されているスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理に移行するとき、この更新処理の明け渡しは、ＯＳ上ではサービスコールを発行することにより、また、ＯＳレス上ではメインループに制御を返却することにより、それぞれ実現する。
【００５８】
同様に、図２に示すフローチャートのステップＳ２１でＮｏ，ステップＳ２４でＮｏがそれぞれ選択され、スレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理から並列で実行されているマスタ側ＲＯＭ１３に格納されたファームウェアの更新処理に移行するとき、この更新処理の明け渡しは、ＯＳ上ではサービスコールを発行することにより、また、ＯＳレス上ではメインループに制御を返却することにより、それぞれ実現する。
【００５９】
また、図２に示すフローチャートに従ってマスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理が行われるとき、この更新処理の一例を図３に示すタイムチャートを参照しながら説明する。尚、以下のＡ〜Ｕまでのアルファベットは、図３におけるＡ〜Ｕまでのアルファベットを表すものとする。
【００６０】
マスタ側ＲＯＭ１３に格納されたファームウェアの更新処理が開始されると、処理Ａにおいて、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３に格納されたファームウェアを消去するために、このマスタ側ＲＯＭ１３に対して消去コマンドを発行する。これにより、処理Ｂにおいて、マスタ側ＲＯＭ１３内部において消去シーケンスが実行される。ところが、マスタ側ＲＯＭ１３に格納されたファームウェアの消去が完了するまでマスタ側ＣＰＵ１１が待ち状態となるため、マスタ側ＣＰＵ１１によるスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理が開始される。
【００６１】
そして、処理Ｃにおいて、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に格納されたファームウェアを消去するために、このスレーブ側ＲＯＭ２３に対して消去コマンドを発行する。よって、処理Ｄにおいて、スレーブ側ＲＯＭ２３内部において消去シーケンスが実行される。
【００６２】
このようにスレーブ側ＲＯＭ２３内部において消去シーケンスが実行されるとき、処理Ｅにおいて、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３に格納されたファームウェアの消去が完了したことを確認すると、処理Ｆにおいて、マスタ側ＣＰＵ１１が、外部記憶媒体１４より更新すべきファームウェアのデータを１ブロックずつ読み出す。そして、処理Ｇにおいて、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３に対して書き込みコマンドを発行する。よって、処理Ｈにおいて、外部記憶媒体１４より読み出された更新すべきファームウェアのデータが、１ブロック分だけマスタ側ＲＯＭ１３に書き込まれる。
【００６３】
このように外部記憶媒体１４より読み出された更新すべきファームウェアのデータがマスタ側ＲＯＭ１３に書き込まれるとき、処理Ｉにおいて、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に格納されたファームウェアの消去が完了したことを確認すると、処理Ｊにおいて、マスタ側ＣＰＵ１１が、外部記憶媒体１４より更新すべきファームウェアのデータを１バイトずつ読み出す。そして、処理Ｋにおいて、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に対して書き込みコマンドを発行する。よって、処理Ｌにおいて、外部記憶媒体１４より読み出された更新すべきファームウェアのデータが、マスタ側通信部１５からスレーブ側通信部２５へ１バイト分送信され、スレーブ側ＲＯＭ２３に書き込まれる。
【００６４】
このように外部記憶媒体１４より読み出された更新すべきファームウェアのデータがスレーブ側ＲＯＭ２３に書き込まれるとき、処理Ｍにおいて、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３へのデータの書き込みが１ブロック分完了したことを確認すると、処理Ｎにおいて、マスタ側ＣＰＵ１１が、外部記憶媒体１４より更新すべきファームウェアのデータを読み出す。そして、処理Ｏにおいて、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３に対して書き込みコマンドを発行する。よって、処理Ｐにおいて、外部記憶媒体１４より読み出された更新すべきファームウェアのデータが、１ブロック分だけマスタ側ＲＯＭ１３に書き込まれる。
【００６５】
このように外部記憶媒体１４より読み出された更新すべきファームウェアのデータがマスタ側ＲＯＭ１３に書き込まれるとき、処理Ｑにおいて、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３へのデータの送信が１バイト分完了したことを確認すると、処理Ｒにおいて、マスタ側ＣＰＵ１１が、外部記憶媒体１４より更新すべきファームウェアのデータを１バイトずつ読み出す。そして、処理Ｓにおいて、マスタ側ＣＰＵ１１が、スレーブ側ＲＯＭ２３に対して書き込みコマンドを発行する。よって、処理Ｔにおいて、外部記憶媒体１４より読み出された更新すべきファームウェアのデータが、マスタ側通信部１５からスレーブ側通信部２５へ１バイト分送信され、スレーブ側ＲＯＭ２３に書き込まれる。
【００６６】
その後、処理Ｍ〜Ｐの動作と処理Ｑ〜Ｔの動作が交互に行われることにより、外部記憶媒体１４より読み出された更新すべきファームウェアのデータが、マスタ側ＲＯＭ１３とスレーブ側ＲＯＭ２３とに書き込まれる。そして、マスタ側ＣＰＵ１１が、マスタ側ＲＯＭ１３とスレーブ側ＲＯＭ２３の両方に対し、外部記憶媒体１４より読み出された更新すべきファームウェアのデータの書き込みが完了したことを確認すると、マスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を終了する。
【００６７】
このように、本実施形態では、マスタ側ＣＰＵ１１が当該マスタ側ＣＰＵ１１の動作を制御するファームウェアをマスタ側ＲＯＭ１３より消去するための消去コマンド及び外部記憶媒体１４に記憶されたファームウェアをマスタ側ＲＯＭ１３に書き込むための書き込みコマンドを発行した後、消去コマンド及び書き込みコマンドに対する応答を得るまでの待ち時間に、マスタ側ＣＰＵ１１が、スレーブ側ＣＰＵ２１の動作を制御するファームウェアを更新するための処理を行うようにしている。
【００６８】
従って、本実施形態によれば、マスタ側ＣＰＵ１１の動作を制御するファームウェアの更新処理とスレーブ側ＣＰＵ２１の動作を制御するファームウェアの更新処理とを並列実行することが可能となり、マスタ側ＣＰＵ１１の動作を制御するファームウェアの更新処理とスレーブ側ＣＰＵ２１の動作を制御するファームウェアの更新処理のうち処理時間の短い方を処理時間の長い方に包含させることができる。よって、通信可能に接続される複数のＣＰＵの動作を制御するファームフェアの更新処理に要する時間を大幅に短縮することができ、更新処理を行うユーザ、或いは、サービスマンに対する時間的負担を極力減らすことができる。特に、複数のスレーブＣＰＵ装置２０がマスタＣＰＵ装置１０と通信可能に接続されるとき、マスタ側ＣＰＵ１１及び各スレーブ側ＣＰＵ２１の動作を制御するファームフェアの更新処理に要する時間をより一層短縮することができる。
【００６９】
尚、上記情報処理装置において、マスタ側ＣＰＵ１１がマスタ側ＲＯＭ１３に対して消去コマンドまたは書き込みコマンドを発行してから消去完了または書き込み完了の通知を得るまでの待ち時間、及びマスタ側ＣＰＵ１１がスレーブ側ＲＯＭ２３に対して消去コマンドまたは書き込みコマンドを発行してから消去完了または書き込み完了の通知を得るまでの待ち時間、を装置の開発段階で計測し、これらの計測データを情報処理装置の不揮発性メモリ（不図示）に記憶させてもよい。そして、マスタ側ＣＰＵ１１が不揮発性メモリに記憶された計測データを参照し、これらの待ち時間を最大限に利用してマスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を並列で実行することにより、ファームウェアの更新処理に要する時間を大幅に短縮することができる。
【００７０】
或いは、マスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を行うときに、これらの待ち時間の値を計測手段により計測し、計測データを情報処理装置の不揮発性メモリ（不図示）に記憶させてもよい。これにより、マスタＣＰＵ装置１０と通信可能に接続されるスレーブＣＰＵ装置２０の構成が動的に変化し、マスタＣＰＵ装置１０とスレーブＣＰＵ装置２０との間の通信速度が変化したときに、マスタ側ＣＰＵ１１が不揮発性メモリに記憶された計測データを参照し、これらの待ち時間を最大限に利用してマスタ側ＲＯＭ１３及びスレーブ側ＲＯＭ２３に格納されたファームウェアの更新処理を並列で実行することにより、ファームウェアの更新処理に要する時間を大幅に短縮することができる。
【００７１】
また、マスタＣＰＵ装置１０と通信可能に接続されるスレーブＣＰＵ装置２０が複数存在するとき、マスタ側ＣＰＵ１１がスレーブ側ＲＯＭ２３に対して消去コマンドまたは書き込みコマンドを発行してから消去完了または書き込み完了の通知を得るまでの待ち時間を、計測手段を用いてスレーブＣＰＵ装置２０ごとに計測し、これらの計測データを情報処理装置の不揮発性メモリ（不図示）に記憶させてもよい。
【００７２】
そして、マスタ側ＣＰＵ１１が、不揮発性メモリに記憶された計測データを参照し、マスタ側ＣＰＵ１１がスレーブ側ＲＯＭ２３に対して消去コマンドまたは書き込みコマンドを発行してから消去完了または書き込み完了の通知を得るまでの待ち時間がマスタ側ＣＰＵ１１がマスタ側ＲＯＭ１３に対して消去コマンドまたは書き込みコマンドを発行してから消去完了または書き込み完了の通知を得るまでの待ち時間に、収まるように、更新処理を行うスレーブＣＰＵ装置２０の最適な組み合わせを決定する。これにより、マスタＣＰＵ装置１０と通信可能に接続されるスレーブＣＰＵ装置２０が複数存在するときにも、ファームウェアの更新処理に要する時間を大幅に短縮することができる。
【００７３】
また、上記情報処理装置では、マスタＣＰＵ装置１０に接続される外部記憶媒体１４より更新すべきファームウェアを提供することとしたが、これに限るものではない。即ち、このマスタＣＰＵ装置１０と通信ネットワークを介して接続される外部機器（不図示）より更新すべきファームウェアを提供するようにしてもよい。これは、図１に示すマスタＣＰＵ装置１０において、外部記憶媒体１４とマスタ側通信部１５の間にネットワーク通信部（不図示）を配置することによって実現できる。そして、このネットワーク通信部は、外部記憶媒体１４と同様にマスタ側ＣＰＵ１１とバス接続される。
【００７４】
通信ネットワークによるファームウェアの提供に関しては、ＦＴＰ（File Transfer Protocol）等のプロトコルを用いて、外部機器からネットワーク通信部を介してマスタＣＰＵ装置１０にファームウェアが転送される。マスタＣＰＵ装置１０内では、転送されたファイル（更新すべきファームウェアに更新すべきファームウェアであることを示すファイルヘッダを付加したデータ）を受信すると、マスタ側ＲＡＭ１２に一旦ファームウェアを格納する。このとき、ファームウェアの容量がマスタ側ＲＡＭ１２の容量を超えていれば、ファームウェアを分割して複数のファイルに格納し、これらのファイルを通信ネットワークを介して分割受信する方法、或いは、ファームウェアを圧縮してファイルに格納し、このファイルを通信ネットワークを介して一括受信し、順次伸長しながらファームウェアを提供する方法がとられる。そして、マスタ側ＲＡＭ１２に格納されたファームウェアが、外部記憶媒体１４より提供されるファームウェアの代わりに使用される。
【産業上の利用可能性】
【００７５】
以上説明したように、本発明は、通信可能に接続される複数のＣＰＵの動作を制御するファームフェアのファームフェア更新方法、及び通信可能に接続される複数のＣＰＵを備えるとともにこのファームウェア更新方法を用いてファームウェアの更新を行う情報処理装置について有用である。
【図面の簡単な説明】
【００７６】
【図１】実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】実施形態に係る情報処理装置において、マスタ側ＲＯＭ及びスレーブ側ＲＯＭに格納されたファームウェアの更新処理を示すフローチャートである。
【図３】実施形態に係る情報処理装置において、マスタ側ＲＯＭ及びスレーブ側ＲＯＭに格納されたファームウェアの更新処理の一例を示すタイムチャートである。
【符号の説明】
【００７７】
１０  マスタＣＰＵ装置
１１  マスタ側ＣＰＵ
１２  マスタ側ＲＡＭ
１３  マスタ側ＲＯＭ
１４  外部記憶媒体
１５  マスタ側通信部
２０  スレーブＣＰＵ装置
２１  スレーブ側ＣＰＵ
２２  スレーブ側ＲＡＭ
２３  スレーブ側ＲＯＭ
２５  スレーブ側通信部
【図１】
0004804101.tif 000002
【図２】
0004804101.tif 000003
【図３】
0004804101.tif 000004