(57)【要約】【課題】複数のプロセッサーへのファームウェアの書き込みを効率的に行うことができる情報処理装置を提供すること。【解決手段】階層構造において第１順位が割り当てられた第１プロセッサーと、第１メモリーとを有する第１基板と、階層構造において第２順位が割り当てられた第２プロセッサーと、第２メモリーとを有する第２基板と、を備え、第１プロセッサーは、第２メモリーへの第２ファームウェアの書き込みを第２プロセッサーに行わせる第２書込実行データを含む第１書込実行データを取得した場合、第１書込実行データに含まれる第２書込実行データを第２プロセッサーへ出力し、第１メモリーへの第１ファームウェアの書き込みを第１プロセッサーに行わせる第１書込実行データに基づいて第１ファームウェアを第１メモリーに書き込み、第２書込実行データのデータ構造は、第１書込実行データのデータ構造と同じデータ構造である、情報処理装置。【選択図】図６
2020140621.tif 000002
【特許請求の範囲】
【請求項１】
決められた階層構造において第１順位が割り当てられた第１プロセッサーと、前記第１プロセッサーが読み出すデータを記憶する第１メモリーとを有する第１基板と、
前記階層構造において前記第１順位よりも順位が１つ下の第２順位が割り当てられた第２プロセッサーと、前記第２プロセッサーが読み出すデータを記憶する第２メモリーとを有する第２基板と、
を備え、
前記第１プロセッサーは、前記第２メモリーへの第２ファームウェアの書き込みを前記第２プロセッサーに行わせる第２書込実行データを含む第１書込実行データを取得した場合、前記第１書込実行データに含まれる前記第２書込実行データを前記第２プロセッサーへ出力し、前記第１メモリーへの第１ファームウェアの書き込みを前記第１プロセッサーに行わせる前記第１書込実行データに基づいて前記第１ファームウェアを前記第１メモリーに書き込み、
前記第２書込実行データのデータ構造は、前記第１書込実行データのデータ構造と同じデータ構造である、
情報処理装置。
【請求項２】
前記第１メモリーには、前記第１プロセッサーからデータを出力可能な１以上の出力先を示す第１出力先データが更に記憶されており、
前記第１書込実行データには、前記第２書込実行データの出力先として前記第２プロセッサーを示す第２出力先データが含まれており、
前記第１プロセッサーは、前記第１書込実行データを取得した場合、且つ、前記第１出力先データが示す１以上の出力先に、前記第２出力先データが示す前記第２プロセッサーが含まれている場合、前記第１書込実行データに含まれる前記第２書込実行データを前記第２プロセッサーへ出力する、
請求項１に記載の情報処理装置。
【請求項３】
前記第１プロセッサーは、前記第１書込実行データを取得した場合、且つ、前記第１出力先データが示す１以上の出力先に、前記第２出力先データが示す前記第２プロセッサーが含まれていない場合、エラーを出力する、
請求項２に記載の情報処理装置。
【請求項４】
前記第２プロセッサーは、前記第２書込実行データに含まれる前記第２ファームウェアが空データであった場合、前記第２メモリーへの前記第２ファームウェアの書き込みを行わず、前記第２メモリーへの前記第２ファームウェアの書き込みが成功したことを示すデータを前記第１プロセッサーに出力する、
請求項１から３のうちいずれか一項に記載の情報処理装置。
【請求項５】
前記第１プロセッサーは、前記第１書込実行データに含まれる前記第２書込実行データを前記第２プロセッサーへ出力した後、前記第２メモリーへの前記第２ファームウェアの書き込みが成功したことを示すデータを前記第２プロセッサーから取得した場合、前記第１書込実行データに基づいて前記第１ファームウェアを前記第１メモリーに書き込む、
請求項１から４のうちいずれか一項に記載の情報処理装置。
【請求項６】
前記第１プロセッサーは、前記第１書込実行データに含まれる前記第２書込実行データを前記第２プロセッサーへ出力した後、前記第２メモリーへの前記第２ファームウェアの書き込みが失敗したことを示すデータを前記第２プロセッサーから取得した場合、前記第１メモリーへの前記第１ファームウェアの書き込みを行わない、
請求項１から５のうちいずれか一項に記載の情報処理装置。
【請求項７】
前記階層構造において前記第２順位よりも順位が１つ下の第３順位が割り当てられた第３プロセッサーと、前記第３プロセッサーが読み出すデータを記憶する第３メモリーとを有する第３基板を更に備え、
前記第２書込実行データは、前記第３メモリーへの第３ファームウェアの書き込みを前記第３プロセッサーに行わせる第３書込実行データを含み、
前記第３書込実行データのデータ構造は、前記第２書込実行データのデータ構造と同じデータ構造であり、
前記第２プロセッサーは、前記第２書込実行データを取得した場合、前記第２書込実行データに含まれる前記第３書込実行データを前記第３プロセッサーへ出力し、前記第２書込実行データに基づいて前記第２ファームウェアを前記第２メモリーに書き込む、
請求項１から６のうちいずれか一項に記載の情報処理装置。
【請求項８】
決められた階層構造において第１順位が割り当てられた第１プロセッサーと前記第１プロセッサーが読み出すデータを記憶する第１メモリーとを有する第１基板と、前記階層構造において前記第１順位よりも順位が１つ下の第２順位が割り当てられた第２プロセッサーと前記第２プロセッサーが読み出すデータを記憶する第２メモリーとを有する第２基板と、を備える情報処理装置の情報処理方法であって、
前記第２メモリーへの第２ファームウェアの書き込みを前記第２プロセッサーに行わせる第２書込実行データを含む第１書込実行データを前記第１プロセッサーが取得した場合、前記第１書込実行データに含まれる前記第２書込実行データを前記第１プロセッサーが前記第２プロセッサーへ出力し、前記第１メモリーへの第１ファームウェアの書き込みを前記第１プロセッサーに行わせる前記第１書込実行データに基づいて前記第１プロセッサーが前記第１ファームウェアを前記第１メモリーに書き込み、
前記第２書込実行データのデータ構造は、前記第１書込実行データのデータ構造と同じデータ構造である、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置、及び情報処理方法に関する。
【背景技術】
【０００２】
情報処理装置が備える複数の基板それぞれに備えられたプロセッサーへのファームウェアの書き込みを効率的に行う技術についての研究、開発が行われている。なお、本明細書において、あるプロセッサーへのあるファームウェアの書き込みは、当該プロセッサーが読み出すデータを記憶するメモリーへの当該ファームウェアのインストール、又は、当該メモリーにおける当該ファームウェアのアップデートを意味する。
【０００３】
これに関し、特許文献１には、決められた階層構造においてそれぞれの順位が割り当てられた複数のプロセッサーのそれぞれを有する互いに異なる複数の基板を備えた情報処理装置において、当該複数のプロセッサーそれぞれへのファームウェアの書き込みを行う方法について記載されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２０４２９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、特許文献１に記載された方法では、各基板が有するプロセッサーのそれぞれについて、プロセッサーにファームウェアを書き込む書込実行データを独立に作成する必要がある。書込実行データは、例えば、インストーラー等のことである。このため、当該方法では、当該プロセッサー毎のファームウェアの書き込みを行うために要する手間と時間を少なくすることが困難な場合があった。すなわち、当該方法では、複数の基板のそれぞれが有するプロセッサーへのファームウェアの書き込みを効率的に行うことが困難な場合があった。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本発明の一態様は、決められた階層構造において第１順位が割り当てられた第１プロセッサーと、前記第１プロセッサーが読み出すデータを記憶する第１メモリーとを有する第１基板と、前記階層構造において前記第１順位よりも順位が１つ下の第２順位が割り当てられた第２プロセッサーと、前記第２プロセッサーが読み出すデータを記憶する第２メモリーとを有する第２基板と、を備え、前記第１プロセッサーは、前記第２メモリーへの第２ファームウェアの書き込みを前記第２プロセッサーに行わせる第２書込実行データを含む第１書込実行データを取得した場合、前記第１書込実行データに含まれる前記第２書込実行データを前記第２プロセッサーへ出力し、前記第１メモリーへの第１ファームウェアの書き込みを前記第１プロセッサーに行わせる前記第１書込実行データに基づいて前記第１ファームウェアを前記第１メモリーに書き込み、前記第２書込実行データのデータ構造は、前記第１書込実行データのデータ構造と同じデータ構造である、情報処理装置である。
【０００７】
また、本発明の一態様は、情報処理装置において、前記第１メモリーには、前記第１プロセッサーからデータを出力可能な１以上の出力先を示す第１出力先データが更に記憶されており、前記第１書込実行データには、前記第２書込実行データの出力先として前記第２プロセッサーを示す第２出力先データが含まれており、前記第１プロセッサーは、前記第１書込実行データを取得した場合、且つ、前記第１出力先データが示す１以上の出力先に、前記第２出力先データが示す前記第２プロセッサーが含まれている場合、前記第１書込実行データに含まれる前記第２書込実行データを前記第２プロセッサーへ出力する、構成が用いられてもよい。
【０００８】
また、本発明の一態様は、情報処理装置において、前記第１プロセッサーは、前記第１書込実行データを取得した場合、且つ、前記第１出力先データが示す１以上の出力先に、前記第２出力先データが示す前記第２プロセッサーが含まれていない場合、エラーを出力する、構成が用いられてもよい。
【０００９】
また、本発明の一態様は、情報処理装置において、前記第２プロセッサーは、前記第２書込実行データに含まれる前記第２ファームウェアが空データであった場合、前記第２メモリーへの前記第２ファームウェアの書き込みを行わず、前記第２メモリーへの前記第２ファームウェアの書き込みが成功したことを示すデータを前記第１プロセッサーに出力する、構成が用いられてもよい。
【００１０】
また、本発明の一態様は、情報処理装置において、前記第１プロセッサーは、前記第１書込実行データに含まれる前記第２書込実行データを前記第２プロセッサーへ出力した後、前記第２メモリーへの前記第２ファームウェアの書き込みが成功したことを示すデータを前記第２プロセッサーから取得した場合、前記第１書込実行データに基づいて前記第１データを前記第１メモリーに書き込む、構成が用いられてもよい。
【００１１】
また、本発明の一態様は、情報処理装置において、前記第１プロセッサーは、前記第１書込実行データに含まれる前記第２書込実行データを前記第２プロセッサーへ出力した後、前記第２メモリーへの前記第２ファームウェアの書き込みが失敗したことを示すデータを前記第２プロセッサーから取得した場合、前記第１メモリーへの前記第１ファームウェアの書き込みを行わない、構成が用いられてもよい。
【００１２】
また、本発明の一態様は、情報処理装置において、前記階層構造において前記第２順位よりも順位が１つ下の第３順位が割り当てられた第３プロセッサーと、前記第３プロセッサーが読み出すデータを記憶する第３メモリーとを有する第３基板を更に備え、前記第２書込実行データは、前記第３メモリーへの第３ファームウェアの書き込みを前記第３プロセッサーに行わせる第３書込実行データを含み、前記第３書込実行データのデータ構造は、前記第２書込実行データのデータ構造と同じデータ構造であり、前記第２プロセッサーは、前記第２書込実行データを取得した場合、前記第２書込実行データに含まれる前記第３書込実行データを前記第３プロセッサーへ出力し、前記第２書込実行データに基づいて前記第２ファームウェアを前記第２メモリーに書き込む、構成が用いられてもよい。
【００１３】
また、本発明の一態様は、決められた階層構造において第１順位が割り当てられた第１プロセッサーと前記第１プロセッサーが読み出すデータを記憶する第１メモリーとを有する第１基板と、前記階層構造において前記第１順位よりも順位が１つ下の第２順位が割り当てられた第２プロセッサーと前記第２プロセッサーが読み出すデータを記憶する第２メモリーとを有する第２基板と、を備える情報処理装置の情報処理方法であって、前記第２メモリーへの第２ファームウェアの書き込みを前記第２プロセッサーに行わせる第２書込実行データを含む第１書込実行データを前記第１プロセッサーが取得した場合、前記第１書込実行データに含まれる前記第２書込実行データを前記第１プロセッサーが前記第２プロセッサーへ出力し、前記第１メモリーへの第１ファームウェアの書き込みを前記第１プロセッサーに行わせる前記第１書込実行データに基づいて前記第１プロセッサーが前記第１ファームウェアを前記第１メモリーに書き込み、前記第２書込実行データのデータ構造は、前記第１書込実行データのデータ構造と同じデータ構造である、情報処理方法である。
【図面の簡単な説明】
【００１４】
【図１】実施形態に係る情報処理装置１の構成の一例を示す図である。
【図２】ある第１プロセッサーに応じた書込実行データのデータ構造の一例を示す図である。
【図３】図２に示したコンポーネントＣ１のデータ構造の一例を示す図である。
【図４】図３に示した書き込みブロックＷ１のデータ構造の一例を示す図である。
【図５】対象第１プロセッサーに応じた書込実行データを取得した場合において対象第１プロセッサーが行う処理の流れの一例を示す図である。
【図６】プロセッサーＰ０１に対してプロセッサーＰ０１に応じた書込実行データが情報処理装置１２から出力された場合において、各プロセッサーＰが書込実行データを取得する流れの一例を示す図である。
【発明を実施するための形態】
【００１５】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００１６】
＜情報処理システムの構成＞
まず、実施形態に係る情報処理システム１の構成について説明する。図１は、実施形態に係る情報処理システム１の構成の一例を示す図である。
【００１７】
情報処理システム１は、情報処理装置１１と、情報処理装置１２を備える。
【００１８】
情報処理装置１１は、例えば、プリンターである。なお、情報処理装置１１は、プリンターに代えて、スキャナー、ロボット、医療用機器、通信装置等の他の電子機器であってもよい。
【００１９】
情報処理装置１１は、複数の基板を備える。図１に示した例では、情報処理装置１１は、基板Ｌ０１、基板Ｌ１１、基板Ｌ１２、基板Ｌ１３、基板Ｌ２１、基板Ｌ２２、基板Ｌ２３、基板Ｌ３１、基板Ｌ３２の９個の基板を備える。以下では、説明の便宜上、情報処理装置１１が備える基板Ｌ０１、基板Ｌ１１、基板Ｌ１２、基板Ｌ１３、基板Ｌ２１、基板Ｌ２２、基板Ｌ２３、基板Ｌ３１、基板Ｌ３２の９個の基板のことを、単に９個の基板と称して説明する。９個の基板のうちの一部又は全部は、互いに同じ構成であってもよく、互いに異なる構成であってもよい。ただし、９個の基板のそれぞれは、プロセッサーと、プロセッサーが読み出すデータを記憶するメモリーとを有する。また、９個の基板のそれぞれにおいて、基板が有するプロセッサーとメモリーは、１つのチップとして一体に構成されてもよく、別体のチップとして別々に構成されてもよい。
【００２０】
図１では、基板Ｌ０１が備えるプロセッサーをプロセッサーＰ０１として示し、基板Ｌ０１が備えるメモリーをメモリーＭ０１として示している。また、図１では、基板Ｌ１１が備えるプロセッサーをプロセッサーＰ１１として示し、基板Ｌ１１が備えるメモリーをメモリーＭ１１として示している。また、図１では、基板Ｌ１２が備えるプロセッサーをプロセッサーＰ１２として示し、基板Ｌ１２が備えるメモリーをメモリーＭ１２として示している。また、図１では、基板Ｌ１３が備えるプロセッサーをプロセッサーＰ１３として示し、基板Ｌ１３が備えるメモリーをメモリーＭ１３として示している。また、図１では、基板Ｌ２１が備えるプロセッサーをプロセッサーＰ２１として示し、基板Ｌ２１が備えるメモリーをメモリーＭ２１として示している。また、図１では、基板Ｌ２２が備えるプロセッサーをプロセッサーＰ２２として示し、基板Ｌ２２が備えるメモリーをメモリーＭ２２として示している。また、図１では、基板Ｌ２３が備えるプロセッサーをプロセッサーＰ２３として示し、基板Ｌ２３が備えるメモリーをメモリーＭ２３として示している。また、図１では、基板Ｌ３１が備えるプロセッサーをプロセッサーＰ３１として示し、基板Ｌ３１が備えるメモリーをメモリーＭ３１として示している。また、図１では、基板Ｌ３２が備えるプロセッサーをプロセッサーＰ３２として示し、基板Ｌ３２が備えるメモリーをメモリーＭ３２として示している。
【００２１】
以下では、説明の便宜上、情報処理装置１１が備えるプロセッサーＰ０１、プロセッサーＰ１１、プロセッサーＰ１２、プロセッサーＰ１３、プロセッサーＰ２１、プロセッサーＰ２２、プロセッサーＰ２３、プロセッサーＰ３１、プロセッサーＰ３２の９個のプロセッサーのことを、単に９個のプロセッサーと称して説明する。また、以下では、説明の便宜上、９個のプロセッサーのそれぞれを区別する必要がない限り、まとめてプロセッサーＰと称して説明する。
【００２２】
また、以下では、説明の便宜上、情報処理装置１１が備えるメモリーＭ０１、メモリーＭ１１、メモリーＭ１２、メモリーＭ１３、メモリーＭ２１、メモリーＭ２２、メモリーＭ２３、メモリーＭ３１、メモリーＭ３２の９個のメモリーのことを、単に９個のメモリーと称して説明する。また、以下では、説明の便宜上、９個のメモリーのそれぞれを区別する必要がない限り、まとめてメモリーＭと称して説明する。
【００２３】
プロセッサーＰは、例えば、ＣＰＵ（Central  Processing  Unit）である。プロセッサーＰは、メモリーＭに記憶されたデータを読み出し、読み出したデータに基づく処理を行う。また、プロセッサーＰは、他の情報処理装置から何らかのデータを取得した場合、取得した当該データに基づく処理を行う。なお、９個のプロセッサーのうちの一部又は全部は、ＣＰＵに代えて、ＦＰＧＡ（Field  Programmable  Gate  Array）等の他のプロセッサーであってもよい。すなわち、９個のプロセッサーのうちの一部又全部は、互いに異なる構成であってもよく、互いに同じ構成であってもよい。
【００２４】
９個のプロセッサーのそれぞれは、互いに連携し、各種の動作を情報処理装置１１に行わせる。本実施形態のように情報処理装置１１がプリンターである場合、９個のプロセッサーは、例えば、互いに連携して、ユーザーから受け付けた画像データをロール紙等の媒体に印刷する。ただし、これは一例に過ぎず、９個のプロセッサーのうちの一部又は全部は、互いに独立に処理を行うプロセッサーであってもよい。９個のプロセッサーのそれぞれの役割は、９個のプロセッサーが適用される装置に応じて、当該装置の設計者により決められる。このため、情報処理装置１１における９個のプロセッサーそれぞれの具体的な役割については、説明を省略する。
【００２５】
メモリーＭは、例えば、フラッシュメモリーである。メモリーＭは、各種のデータがプロセッサーＰにより書き込まれる。また、メモリーＭは、メモリーＭが記憶しているデータをプロセッサーＰにより読み出される。なお、９個のメモリーのうちの一部又全部は、フラッシュメモリーに代えて、ＲＯＭ（Read  Only  Memory）等の他の記憶媒体であってもよい。すなわち、９個のメモリーのうちの一部又は全部は、互いに異なる構成であってもよく、互いに同じ構成であってもよい。
【００２６】
また、基板Ｌ０１は、ＵＳＢ（Universal  Serial  Bus）ポート等の外部接続ポートを有する。これにより、プロセッサーＰ０１は、当該外部接続ポートを介して、他の装置と通信を行うことができる。図１に示した例では、プロセッサーＰ０１には、当該外部接続ポートを介して情報処理装置１２が接続されている。また、当該例では、９個の基板のうちの基板Ｌ０１以外の８個の基板は、当該外部接続ポートを有していない。なお、当該８個の基板のうちの一部又は全部は、当該外部接続ポートを有する構成であってもよい。また、基板Ｌ０１は、当該接続ポートを有さない構成であってもよい。
【００２７】
また、９個の基板のそれぞれは、シリアル通信用のポートを有する。これにより、９個の基板のそれぞれは、当該ポートを介して、他の装置と通信を行うことができる。なお、９個の基板のうちの一部は、当該ポートを有さない構成であってもよい。
【００２８】
情報処理装置１２は、例えば、ノートＰＣ、タブレットＰＣ、デスクトップＰＣ、多機能携帯電話端末、ＰＤＡ（Personal  Digital  Assistant）等である。ここで、当該多機能携帯電話端末は、すなわち、スマートフォンのことである。なお、情報処理装置１２は、これらに代えて、他の情報処理装置であってもよい。
【００２９】
情報処理装置１２は、ユーザーから受け付けた操作に応じて、情報処理装置１２が接続されている基板が有するプロセッサーＰに対して、ユーザーが所望するデータを出力する。図１に示した例では、当該プロセッサーＰは、プロセッサーＰ０１である。すなわち、当該例では、情報処理装置１２は、プロセッサーＰ０１と通信可能に接続されている。このため、当該例では、情報処理装置１２は、当該操作に応じて、ユーザーが所望するデータをプロセッサーＰ０１に出力する。
【００３０】
＜プロセッサー間の接続態様及び階層構造＞
次に、情報処理装置１１における９個のプロセッサー間の接続態様及び階層構造について説明する。
【００３１】
図１に示した例では、プロセッサーＰ０１は、プロセッサーＰ１１〜プロセッサーＰ１３のそれぞれと通信可能に接続されている。また、当該例では、プロセッサーＰ１１は、プロセッサーＰ２１、プロセッサーＰ２２のそれぞれと通信可能に接続されている。また、当該例では、プロセッサーＰ１３は、プロセッサーＰ２３と通信可能に接続されている。また、当該例では、プロセッサーＰ２３は、プロセッサーＰ３１、プロセッサーＰ３２のそれぞれと通信可能に接続されている。なお、９個のプロセッサーの接続関係は、図１に示した接続関係に代えて、他の接続関係であってもよい。
【００３２】
また、９個のプロセッサーのそれぞれには、情報処理装置１１において予め決められた階層構造における順位が割り当てられている。予め決められた階層構造は、例えば、９個のプロセッサーそれぞれの物理的な通信経路と、９個のプロセッサーのうち、情報処理装置１１の設計者によって最上位の順位が割り当てられたプロセッサーとによって決まる階層構造である。図１に示した例では、９個のプロセッサーのうち当該設計者によって最上位の順位が割り当てられたプロセッサーは、プロセッサーＰ０１である。
【００３３】
９個のプロセッサーそれぞれについての階層構造においてプロセッサーＰ０１に割り当てられた順位が最上位である場合、プロセッサーＰ０１がデータを流すことが可能な３つのプロセッサー、すなわち、プロセッサーＰ１１〜プロセッサーＰ１３のそれぞれには、プロセッサーＰ０１よりも１つ下の順位が割り当てられる。また、当該場合、プロセッサーＰ１１がデータを流すことが可能なプロセッサーＰのうち、当該階層構造においてプロセッサーＰ１１よりも１つ下の順位が割り当てられるプロセッサーＰは、プロセッサーＰ２１、プロセッサーＰ２２のそれぞれである。これは、当該階層構造においてプロセッサーＰ０１がプロセッサーＰ１１よりも１つ上の順位が割り当てられたプロセッサーＰであるためである。また、当該場合、プロセッサーＰ１２がデータを流すことが可能なプロセッサーＰのうち、当該階層構造においてプロセッサーＰ１２よりも１つ下の順位が割り当てられるプロセッサーＰは、存在しない。これは、当該階層構造においてプロセッサーＰ０１がプロセッサーＰ１２よりも１つ上の順位が割り当てられたプロセッサーＰであるためである。また、当該場合、プロセッサーＰ１３がデータを流すことが可能なプロセッサーＰのうち、当該階層構造においてプロセッサーＰ１３よりも１つ下の順位が割り当てられるプロセッサーＰは、プロセッサーＰ２３である。これは、当該階層構造においてプロセッサーＰ０１がプロセッサーＰ１３よりも１つ上の順位が割り当てられたプロセッサーＰであるためである。また、当該場合、プロセッサーＰ２１がデータを流すことが可能なプロセッサーＰのうち、当該階層構造においてプロセッサーＰ２１よりも１つ下の順位が割り当てられるプロセッサーＰは、存在しない。これは、当該階層構造においてプロセッサーＰ１１がプロセッサーＰ２１よりも１つ上の順位が割り当てられたプロセッサーＰであるためである。また、当該場合、プロセッサーＰ２２がデータを流すことが可能なプロセッサーＰのうち、当該階層構造においてプロセッサーＰ２２よりも１つ下の順位が割り当てられるプロセッサーＰは、存在しない。これは、当該階層構造においてプロセッサーＰ１１がプロセッサーＰ２２よりも１つ上の順位が割り当てられたプロセッサーＰであるためである。また、当該場合、プロセッサーＰ２３がデータを流すことが可能なプロセッサーＰのうち、当該階層構造においてプロセッサーＰ２３よりも１つ下の順位が割り当てられるプロセッサーＰは、プロセッサーＰ３１、プロセッサーＰ３２のそれぞれである。これは、当該階層構造においてプロセッサーＰ１３がプロセッサーＰ２３よりも１つ上の順位が割り当てられたプロセッサーＰであるためである。また、当該場合、プロセッサーＰ３１がデータを流すことが可能なプロセッサーＰのうち、当該階層構造においてプロセッサーＰ３１よりも１つ下の順位が割り当てられるプロセッサーＰは、存在しない。これは、当該階層構造においてプロセッサーＰ２３がプロセッサーＰ３１よりも１つ上の順位が割り当てられたプロセッサーであるためである。また、当該場合、プロセッサーＰ３２がデータを流すことが可能なプロセッサーＰのうち、当該階層構造においてプロセッサーＰ３２よりも１つ下の順位が割り当てられるプロセッサーＰは、存在しない。これは、当該階層構造においてプロセッサーＰ２３がプロセッサーＰ３２よりも１つ上の順位が割り当てられたプロセッサーであるためである。
【００３４】
すなわち、図１に示した例では、プロセッサーＰ０１には、前述した通り、当該階層構造において最上位の順位が割り当てられている。また、プロセッサーＰ１１〜プロセッサーＰ１３のそれぞれには、当該階層構造において２番目の順位が割り当てられている。また、プロセッサーＰ２１〜プロセッサーＰ２３のそれぞれには、当該階層構造において３番目の順位が割り当てられている。また、プロセッサーＰ３１、プロセッサーＰ３２のそれぞれには、当該階層構造において最下位の順位が割り当てられている。
【００３５】
このように、９個のプロセッサーそれぞれについての階層構造は、９個のプロセッサーそれぞれの物理的な通信経路と、情報処理装置１１の設計者によって最上位の順位が割り当てられたプロセッサーＰとによって決まる。以下では、説明の便宜上、９個のプロセッサーそれぞれについての階層構造を、単に階層構造と称して説明する。なお、情報処理装置１１では、９個のプロセッサーのうち階層構造において同位の順位が割り当てられたある２つのプロセッサー同士が通信可能に接続される場合、当該２つのプロセッサーのうちのいずれに上位の順位を割り当てるかは、例えば、情報処理装置１１の設計者によって決められてもよく、他の方法によって決められてもよい。
【００３６】
＜プロセッサーがファームウェアを書き込む処理＞
以下、情報処理装置１１においてプロセッサーＰがファームウェアを書き込む処理について説明する。なお、以下では、説明の便宜上、あるプロセッサーＰにファームウェアを書き込むと称した場合、当該プロセッサーＰに対して当該プロセッサーＰに応じたファームウェアを書き込むことを意味する。
【００３７】
情報処理装置１１では、あるプロセッサーＰは、当該プロセッサーＰに応じた書込実行データを取得した場合、取得した当該書込実行データに基づいて、当該プロセッサーＰに応じたファームウェアをメモリーＭに書き込む。ここで、当該ファームウェアは、当該書込実行データに含まれている。すなわち、当該プロセッサーＰは、当該場合、取得した当該書込実行データに含まれる当該ファームウェアをメモリーＭに書き込む。
【００３８】
ここで、書込実行データのデータ構造について説明する。階層構造において各順位が割り当てられた９個のプロセッサーそれぞれに応じた書込実行データは、再帰的なデータ構造によって、１つのデータとして構成される。書込実行データのデータ構造が再帰的なデータ構造であることを説明するため、以下では、説明の便宜上、階層構造において第１順位が割り当てられたプロセッサーＰを第１プロセッサーと称し、第１プロセッサーと通信可能に接続されているプロセッサーＰのうち第１順位よりも順位が１つ下の第２順位が割り当てられたプロセッサーＰを第２プロセッサーと称して説明する。なお、第１順位は、階層構造において第２順位よりも順位が１つ上の順位であれば、如何なる順位であってもよい。また、第２順位は、階層構造における順位のうち最上位以外の順位であれば如何なる順位であってもよい。例えば、第１プロセッサーがプロセッサーＰ０１である場合、第２プロセッサーは、プロセッサーＰ１１のことである。また、例えば、第１プロセッサーがプロセッサーＰ２３である場合、第２プロセッサーは、プロセッサーＰ３１のことである。
【００３９】
書込実行データが再帰的なデータ構造を有する場合、第１書込実行データは、第２書込実行データを含む。第１書込実行データは、第１プロセッサーに応じた書込実行データのことである。第２書込実行データは、第２プロセッサーに応じた書込実行データのことである。そして、第２書込実行データのデータ構造は、第１書込実行データのデータ構造と同じデータ構造である。
【００４０】
具体的には、本実施形態では、階層構造において最上位の順位が割り当てられたプロセッサーＰ０１に応じた書込実行データには、プロセッサーＰ０１と通信可能に接続された３個のプロセッサーＰであり、且つ、階層構造において２番目の順位が割り当てられた３個のプロセッサーＰのそれぞれに応じた書込実行データが含まれている。当該３個のプロセッサーＰは、すなわち、プロセッサーＰ１１〜プロセッサーＰ１３のことである。そして、プロセッサーＰ０１、プロセッサーＰ１１、プロセッサーＰ１２、プロセッサーＰ１３のそれぞれに応じた書込実行データのデータ構造は、互いに同じである。
【００４１】
なお、本実施形態において、ある対象となるデータのデータ構造は、当該データに含まれる複数種類のデータの、当該対象となるデータ内における並び方を示す。例えば、あるデータＸ１のデータ構造と他のデータＸ２のデータ構造とが互いに同じであることは、データＸ１に種類Ｓ１のデータ、種類Ｓ２のデータ、種類Ｓ３のデータの３種類のデータのみが含まれている場合、データＸ２にも種類Ｓ１のデータ、種類Ｓ２のデータ、種類Ｓ３のデータの３種類のデータのみが含まれており、且つ、データＸ１内における当該３種類のデータの並び順と、データＸ２内における当該３種類のデータの並び順とが同じであることを意味する。ただし、当該場合であっても、データＸ１のデータ構造とデータＸ２のデータ構造とが互いに同じであることは、データＸ１に含まれる種類Ｓ１のデータが示す内容とデータＸ２に含まれる種類Ｓ１のデータが示す内容とが互いに同じ内容であることを意味しない。また、当該場合であっても、データＸ１のデータ構造とデータＸ２のデータ構造とが互いに同じであることは、データＸ１に含まれる種類Ｓ２のデータが示す内容とデータＸ２に含まれる種類Ｓ２のデータが示す内容とが互いに同じ内容であることを意味しない。また、当該場合であっても、データＸ１のデータ構造とデータＸ２のデータ構造とが互いに同じであることは、データＸ１に含まれる種類Ｓ３のデータが示す内容とデータＸ２に含まれる種類Ｓ３のデータが示す内容とが互いに同じ内容であることを意味しない。
【００４２】
また、本実施形態では、階層構造において２番目の順位が割り当てられたプロセッサーＰ１１に応じた書込実行データには、プロセッサーＰ１１と通信可能に接続された２個のプロセッサーＰであり、且つ、階層構造において３番目の順位が割り当てられた２個のプロセッサーＰのそれぞれに応じた書込実行データが含まれている。当該２個のプロセッサーＰは、すなわち、プロセッサーＰ２１及びプロセッサーＰ２２のことである。そして、プロセッサーＰ１１、プロセッサーＰ２１、プロセッサーＰ２２のそれぞれに応じた書込実行データのデータ構造は、互いに同じである。
【００４３】
また、本実施形態では、階層構造において２番目の順位が割り当てられたプロセッサーＰ１２に応じた書込実行データには、プロセッサーＰ１２と通信可能に接続されたプロセッサーＰであり、且つ、階層構造において３番目の順位が割り当てられたプロセッサーＰがプロセッサーＰ１２に接続されていないため、当該プロセッサーＰに応じた書込実行データとして、空データが含まれている。プロセッサーＰ１２に応じた書込実行データに含まれる空データは、本実施形態において、階層構造において３番目の順位が割り当てられたプロセッサーＰがプロセッサーＰ１２に接続されていないことを示すデータであれば如何なるデータであってもよく、例えば、ヌルデータ等である。
【００４４】
また、本実施形態では、階層構造において２番目の順位が割り当てられたプロセッサーＰ１３に応じた書込実行データには、プロセッサーＰ１３と通信可能に接続されたプロセッサーＰであり、且つ、階層構造において３番目の順位が割り当てられたプロセッサーＰに応じた書込実行データが含まれている。当該プロセッサーＰは、すなわち、プロセッサーＰ２３のことである。そして、プロセッサーＰ１３、プロセッサーＰ２３のそれぞれに応じた書込実行データのデータ構造は、互いに同じである。
【００４５】
また、本実施形態では、階層構造において３番目の順位が割り当てられたプロセッサーＰ２３に応じた書込実行データには、プロセッサーＰ２３と通信可能に接続された２個のプロセッサーＰであり、且つ、階層構造において最下位の順位が割り当てられた２個のプロセッサーＰのそれぞれに応じた書込実行データが含まれている。当該２個のプロセッサーＰは、すなわち、プロセッサーＰ３１及びプロセッサーＰ３２のことである。そして、プロセッサーＰ２３、プロセッサーＰ３１、プロセッサーＰ３２のそれぞれに応じた書込実行データのデータ構造は、互いに同じである。
【００４６】
また、本実施形態では、階層構造において最下位の順位が割り当てられたプロセッサーＰ３１に応じた書込実行データには、プロセッサーＰ３１と通信可能に接続されたプロセッサーＰであり、且つ、階層構造において最下位よりも下の順位が割り当てられたプロセッサーＰがプロセッサーＰ３１に接続されていないため、当該プロセッサーＰに応じた書込実行データとして、空データが含まれている。プロセッサーＰ３１に応じた書込実行データに含まれる空データは、本実施形態において、階層構造において最下位よりも下の順位が割り当てられたプロセッサーＰがプロセッサーＰ３１に接続されていないことを示すデータであれば如何なるデータであってもよく、例えば、ヌルデータ等である。
【００４７】
また、本実施形態では、階層構造において最下位の順位が割り当てられたプロセッサーＰ３２に応じた書込実行データには、プロセッサーＰ３２と通信可能に接続されたプロセッサーＰであり、且つ、階層構造において最下位よりも下の順位が割り当てられたプロセッサーＰがプロセッサーＰ３２に接続されていないため、当該プロセッサーＰに応じた書込実行データとして、空データが含まれている。プロセッサーＰ３２に応じた書込実行データに含まれる空データは、本実施形態において、階層構造において最下位よりも下の順位が割り当てられたプロセッサーＰがプロセッサーＰ３２に接続されていないことを示すデータであれば如何なるデータであってもよく、例えば、ヌルデータ等である。
【００４８】
ここで、図２は、ある第１プロセッサーに応じた書込実行データのデータ構造の一例を示す図である。以下では、説明の便宜上、第１プロセッサーを、対象第１プロセッサーと称して説明する。また、対象第１プロセッサーと通信可能に接続されている１個以上の第２プロセッサーのそれぞれを、対象第２プロセッサーと称して説明する。図２に示した例では、対象第１プロセッサーに応じた書込実行データには、当該書込実行データのヘッダーと、当該書込実行データのボディーとの２種類のデータが含まれている。また、当該例では、当該ヘッダーには、当該ヘッダーのサイズを示すデータ、当該ボディーのサイズを示すデータ、当該ボディーに含まれるコンポーネント数を示すデータ、データＤＸ１〜ＤＸｎの互いに異なる種類のｎ個のデータの（ｎ＋３）種類のデータが含まれている。ｎは、０以上の整数である。すなわち、当該ヘッダーには、当該ｎ個のデータが含まれない構成であってもよい。また、データＤＸ１〜データＤＸｎのそれぞれは、如何なる種類のデータであってもよい。当該コンポーネント数は、当該ボディーに含まれるコンポーネントの数のことである。また、当該ボディーに含まれるコンポーネントは、対象第１プロセッサーに応じたファームウェア、又は、対象第１プロセッサーから１個以上の対象第２プロセッサーのそれぞれへ出力する書込実行データが含まれるデータのことである。
【００４９】
また、図２に示した例では、対象第１プロセッサーに応じた書込実行データのボディーには、コンポーネントＣ１〜コンポーネントＣｍのｍ個のコンポーネントが含まれている。ｍは、１以上の整数である。コンポーネントＣ１は、対象第１プロセッサーに応じたファームウェアが含まれるデータの一例である。コンポーネントＣ１には、コンポーネントＣ１のヘッダーと、コンポーネントＣ１のボディーとの２種類のデータが含まれている。当該ヘッダーには、当該ヘッダーのサイズを示すデータと、当該ボディーのサイズを示すデータと、当該ボディーの出力先を示す出力先データとが含まれている。なお、当該ヘッダーには、他のデータが含まれる構成であってもよい。図２に示した例では、コンポーネントＣ１は、前述した通り、対象第１プロセッサーに応じたファームウェアが含まれるデータである。このため、当該出力先データは、当該出力先として対象第１プロセッサーを示す。当該出力先データが対象第１プロセッサーを示す場合、当該ボディーには、対象第１プロセッサーに応じたファームウェアを対象第１プロセッサーに書き込むために必要な各種のデータが含まれている。なお、当該ボディーには、当該各種のデータに加えて、他のデータが含まれる構成であってもよい。
【００５０】
一方、図２に示したコンポーネントＣｍは、１個以上の対象第２プロセッサーのうちのある対象第２プロセッサーに応じた書込実行データが含まれるデータの一例である。コンポーネントＣｍには、コンポーネントＣｍのヘッダーと、コンポーネントＣｍのボディーとの２種類のデータが含まれている。当該ヘッダーには、当該ヘッダーのサイズを示すデータと、当該ボディーのサイズを示すデータと、当該ボディーの出力先を示す出力先データとが含まれている。なお、当該ヘッダーには、他のデータが含まれる構成であってもよい。図２に示した例では、コンポーネントＣｍは、前述した通り、当該対象第２プロセッサーに応じた書込実行データが含まれるデータである。このため、当該出力先データは、当該出力先として当該対象第２プロセッサーを示す。当該出力先データが当該対象第２プロセッサーを示す場合、当該ボディーには、当該対象第２プロセッサーに応じた書込実行データが含まれている。そして、当該書込実行データのデータ構造は、図２に示した対象第１プロセッサーに応じた書込実行データのデータ構造と同じデータ構造である。
【００５１】
このように、ある第１プロセッサーに応じた書込実行データは、再帰的なデータ構造を有する。すなわち、当該書込実行データは、当該書込実行データのデータ構造と同じデータ構造を有する他の書込実行データを含んでいる。これにより、９個のプロセッサーのそれぞれに応じた書込実行データを作成する作成者は、データ構造が共通しているため、９個のプロセッサーのそれぞれに応じた書込実行データを作成する手間と時間を少なくすることができる。換言すると、当該作成者は、９個のプロセッサーＰのそれぞれに応じた書込実行データを効率的に作成することができる。また、９個のプロセッサーＰのそれぞれに応じた書込実行データが互いに同じデータ構造を有するため、これらの書込実行データのうちの一部にエラーが含まれていた場合であっても、９個のプロセッサーＰのそれぞれに応じた書込実行データが互いに異なるデータ構造を有する場合と比較して、デバッグに要する手間と時間を少なくすることができる。
【００５２】
なお、対象第１プロセッサーに応じた書込実行データに含まれるコンポーネントのうち、対象第１プロセッサーを示す出力先データを含むコンポーネント以外のすべてのコンポーネントのボディーの内部のデータ構造は、対象第１プロセッサーが行う処理から隠蔽されている。このため、対象第１プロセッサーに応じた書込実行データには、対象第１プロセッサーに応じた書込実行データのデータ構造と異なるデータ構造を有する書込実行データが、１個以上の対象第２プロセッサーのうちの一部のそれぞれに応じた書込実行データとして含まれる構成であってもよい。当該書込実行データは、例えば、バイナリデータ等であってもよく、他のデータ構造を有するデータであってもよい。これにより、ユーザーは、情報処理装置１１に含まれる９個のプロセッサーＰのうちの一部のプロセッサーＰが、他のプロセッサーＰと規格の異なるプロセッサーであったとしても、情報処理装置１２から対象第１プロセッサーに対して対象第１プロセッサーに応じた書込実行データを出力することにより、９個のプロセッサーＰのそれぞれにファームウェアを効率的に書き込むことができる。
【００５３】
例えば、プロセッサーＰ３１とプロセッサーＰ３２が、プロセッサーＰ０１、プロセッサーＰ１１、プロセッサーＰ１２、プロセッサーＰ１３、プロセッサーＰ２１、プロセッサーＰ２２、プロセッサーＰ２３のそれぞれと規格が異なるプロセッサーであった場合、ユーザーは、プロセッサーＰ２３に応じた書込実行データに対して、例えば、コンポーネントのボディーにバイナリデータを含む書込実行データを含ませることにより、情報処理装置１２から対象第１プロセッサーに対して対象第１プロセッサーに応じた書込実行データを出力し、９個のプロセッサーＰのそれぞれにファームウェアを効率的に書き込むことができる。
【００５４】
ここで、ある書込実行データのボディーに含まれる複数のコンポーネントのそれぞれも、互いに同じデータ構造を有する。そこで、以下では、図３を参照し、ある書込実行データのボディーに含まれるコンポーネントのデータ構造について、図２に示したコンポーネントＣ１のデータ構造を例に挙げて説明する。図３は、図２に示したコンポーネントＣ１のデータ構造の一例を示す図である。
【００５５】
以下では、説明の便宜上、図２に示したコンポーネントＣ１のボディーのことを、コンポーネントデータと称して説明する。コンポーネントデータには、コンポーネントデータのヘッダーと、コンポーネントデータのボディーとの２種類のデータが含まれている。当該ヘッダーには、当該ヘッダーのサイズを示すデータと、当該ボディーのサイズを示すデータと、当該ボディーに含まれる書き込みブロック数を示すデータとの３種類のデータが含まれている。当該書き込みブロック数は、当該ボディーに含まれる書き込みブロックの数を示すデータのことである。また、当該ボディーに含まれる複数の書き込みブロックのそれぞれは、前述の対象第１プロセッサーに書き込むファームウェアが分割された複数のデータのうちの１つである。図３に示した例では、当該ファームウェアは、ｋ個の書き込みブロックＷに分割されている。ｋは、１以上の整数であれば、如何なる整数であってもよい。なお、図３に示した書き込みブロックＷ１は、当該ボディーに含まれる１個目の書き込みブロックＷを示す。また、図３に示した書き込みブロックＷｋは、当該ボディーに含まれるｋ個目の書き込みブロックＷを示す。
【００５６】
なお、コンポーネントＣｍのボディーには、複数の書き込みブロックに代えて、コンポーネントＣｍの出力先データが示す対象第２プロセッサーに応じた書込実行データが含まれている。当該書込実行データのデータ構造については、前述した通り、図２に示した書込実行データのデータ構造と同じデータ構造であるため、図示による説明を省略する。
【００５７】
ここで、図３に示したコンポーネントデータのボディーに含まれる複数の書き込みブロックのそれぞれも、互いに同じデータ構造を有する。そこで、以下では、図４を参照し、あるコンポーネントデータに含まれる書き込みブロックのデータ構造について、図３に示した書き込みブロックＷ１のデータ構造を例に挙げて説明する。図４は、図３に示した書き込みブロックＷ１のデータ構造の一例を示す図である。
【００５８】
図３に示した書き込みブロックＷ１には、当該書き込みブロックＷ１のヘッダーと、当該書き込みブロックＷ１のボディーとの２種類のデータが含まれている。当該ヘッダーには、当該ヘッダーのサイズを示すデータと、当該ボディーのサイズを示すデータと、データＤＹ１〜ＤＹｓの互いに異なる種類のｓ個のデータの（ｓ＋２）種類のデータが含まれている。ｓは、０以上の整数である。すなわち、当該ヘッダーには、当該ｓ個のデータが含まれない構成であってもよい。また、データＤＹ１〜データＤＹｓのそれぞれは、如何なる種類のデータであってもよい。また、当該ボディーには、対象第１プロセッサーに書き込むファームウェアが分割された複数のデータのうちの１つが含まれている。なお、図４では、当該ボディーに含まれているデータの詳細については、省略している。
【００５９】
次に、図５を参照し、以上のようなデータ構造を有する書込実行データを前述の対象第１プロセッサーが取得した場合において、対象第１プロセッサーが行う処理について説明する。図５は、対象第１プロセッサーに応じた書込実行データを取得した場合において対象第１プロセッサーが行う処理の流れの一例を示す図である。なお、本実施形態において、対象第１プロセッサーとなり得るプロセッサーＰは、プロセッサーＰ０１、プロセッサーＰ１１、プロセッサーＰ１２、プロセッサーＰ１３、プロセッサーＰ２１、プロセッサーＰ２２、プロセッサーＰ２３、プロセッサーＰ３２のそれぞれである。また、以下では、説明の便宜上、当該書込実行データを対象書込実行データと称して説明する。
【００６０】
対象第１プロセッサーは、取得した書込実行データのヘッダーを参照し、当該書込実行データに含まれるコンポーネント数を特定する（ステップＳ１１０）。
【００６１】
次に、対象第１プロセッサーは、ステップＳ１１０において特定したコンポーネント数に基づいて、対象書込実行データに含まれるコンポーネントを１つずつ対象コンポーネントとして選択し、選択した対象コンポーネント毎に、ステップＳ１３０〜ステップＳ１６０の処理を繰り返し実行する（ステップＳ１２０）。
【００６２】
対象第１プロセッサーは、ステップＳ１２０において選択された対象コンポーネントのヘッダーに含まれる出力先データが示す出力先が対象第１プロセッサーであるか否かを判定する（ステップＳ１３０）。
【００６３】
対象第１プロセッサーは、対象コンポーネントのヘッダーに含まれる出力先データが示す出力先が対象第１プロセッサーであると判定した場合（ステップＳ１３０−ＹＥＳ）、ステップＳ１２０に遷移し、ステップＳ１２０において未選択のコンポーネントの中から次のコンポーネントを対象コンポーネントとして選択する。なお、対象第１プロセッサーは、ステップＳ１２０において未選択のコンポーネントが存在しない場合、ステップＳ１７０に遷移する。
【００６４】
一方、対象第１プロセッサーは、対象コンポーネントのヘッダーに含まれる出力先データが示す出力先が対象第１プロセッサーではないと判定した場合（ステップＳ１３０−ＮＯ）、当該出力先が対象第２プロセッサーであるか否かを判定する（ステップＳ１４０）。換言すると、対象第１プロセッサーは、ステップＳ１４０において、対象コンポーネントのヘッダーに含まれる出力先データが示す出力先が、対象第１プロセッサーと通信可能に接続されているプロセッサーＰであり、且つ、階層構造において対象第１プロセッサーよりも１つ下の順位が割り当てられたプロセッサーＰであるか否かを判定する。
【００６５】
対象第１プロセッサーは、対象コンポーネントのヘッダーに含まれる出力先データが示す出力先が対象第２プロセッサーではないと判定した場合（ステップＳ１４０−ＮＯ）、情報処理装置１２に対してエラーを出力し（ステップＳ１６０）、処理を終了する。
【００６６】
対象第１プロセッサーは、対象コンポーネントのヘッダーに含まれる出力先データが示す出力先が対象第２プロセッサーであると判定した場合（ステップＳ１４０−ＹＥＳ）、当該出力先の対象第２プロセッサーに対して、対象コンポーネントのボディーを出力する（ステップＳ１５０）。その後、対象第１プロセッサーは、ステップＳ１２０に遷移し、ステップＳ１２０において未選択のコンポーネントの中から次のコンポーネントを対象コンポーネントとして選択する。
【００６７】
ステップＳ１２０〜ステップＳ１６０の繰り返し処理が行われた後、対象第１プロセッサーは、対象書込実行データに含まれるコンポーネントを参照し、出力先として対象第２プロセッサーを示す出力先データを含むコンポーネントが存在するか否かを判定する（ステップＳ１６５）。
【００６８】
対象第１プロセッサーは、出力先として対象第２プロセッサーを示す出力先データを含むコンポーネントが存在すると判定した場合（ステップＳ１６５−ＹＥＳ）、すべての対象第２プロセッサーへのファームウェアの書き込みが成功したか否かを判定する（ステップＳ１７０）。ここで、対象第１プロセッサーは、ステップＳ１７０において、１個以上の対象第２プロセッサーのそれぞれから、ファームウェアの書き込みに成功したことを示す情報を取得することにより、すべての対象第２プロセッサーへのファームウェアの書き込みが成功したと判定する。一方、対象第１プロセッサーは、ステップＳ１７０において、１個以上の対象第２プロセッサーのうちの少なくとも１個のプロセッサーＰから、ファームウェアの書き込みに成功したことを示す情報を取得していない場合、すべての対象第２プロセッサーへのファームウェアの書き込みが成功していないと判定する。
【００６９】
対象第１プロセッサーは、すべての対象第２プロセッサーへのファームウェアの書き込みが成功していないと判定した場合（ステップＳ１７０−ＮＯ）、対象第２ファームウェアの書き込みに失敗したか否かを判定する（ステップＳ２００）。ここで、対象第１プロセッサーは、ステップＳ１７０において、例えば、１個以上の対象第２ファームウェアのうちの少なくとも１個から、ファームウェアの書き込みに失敗したことを示すデータを取得した場合、対象第２ファームウェアの書き込みに失敗したと判定する。この場合、対象第１プロセッサーは、ステップＳ１７０において、１個以上の対象第２ファームウェアのすべてから、ファームウェアの書き込みに失敗したことを示すデータを取得していない場合、対象第２ファームウェアの書き込みに失敗していないと判定する。なお、対象第１プロセッサーは、ステップＳ１７０において、１個以上の対象第２ファームウェアのうちの少なくとも１個から、予め決められた時間を超えても応答が返ってこない場合も、タイムアウトエラーのエラー処理として、対象第２ファームウェアの書き込みに失敗したと判定する構成であってもよい。
【００７０】
対象第１プロセッサーは、対象第２ファームウェアの書き込みに失敗したと判定した場合（ステップＳ２００−ＹＥＳ）、情報処理装置１２に対してエラーを出力し（ステップＳ２１０）、処理を終了する。
【００７１】
一方、対象第１プロセッサーは、対象第２ファームウェアの書き込みに失敗していないと判定した場合（ステップＳ２００−ＮＯ）、ステップＳ１７０に遷移し、すべての対象第２プロセッサーへのファームウェアの書き込みが成功したか否かを再び判定する。
【００７２】
一方、ステップＳ１７０において、対象第１プロセッサーは、すべての対象第２プロセッサーへのファームウェアの書き込みが成功したと判定した場合（ステップＳ１７０−ＹＥＳ）、対象第１プロセッサーにファームウェアを書き込むか否かを判定する（ステップＳ１８０）。ここで、対象第１プロセッサーは、ステップＳ１８０において、対象書込実行データに含まれるコンポーネントのうち、コンポーネントのヘッダーに対象第１プロセッサーを示す出力先データを含むコンポーネントのボディーに空データが含まれている場合、対象第１プロセッサーにファームウェアを書き込まないと判定する。一方、対象第１プロセッサーは、ステップＳ１８０において、当該ボディーに空データが含まれていない場合、対象第１プロセッサーにファームウェアを書き込むと判定する。
【００７３】
対象第１プロセッサーは、対象第１プロセッサーにファームウェアを書き込むと判定した場合（ステップＳ１８０−ＹＥＳ）、対象書込実行データに含まれるコンポーネントのうち、コンポーネントのヘッダーに対象第１プロセッサーを示す出力先データを含むコンポーネントのボディーに基づいて、対象第１プロセッサーに応じたファームウェアを対象第１プロセッサーに書き込み（ステップＳ１９０）、処理を終了する。
【００７４】
一方、対象第１プロセッサーは、対象第１プロセッサーにファームウェアを書き込まないと判定した場合（ステップＳ１８０−ＮＯ）、処理を終了する。
【００７５】
一方、ステップＳ１６５において、対象第１プロセッサーは、出力先として対象第２プロセッサーを示す出力先データを含むコンポーネントが存在しないと判定した場合（ステップＳ１６５−ＮＯ）、ステップＳ１８０に遷移し、対象第１プロセッサーにファームウェアを書き込むか否かを判定する。
【００７６】
以上のような処理により、情報処理装置１１では、ユーザーが所望するプロセッサーＰに対してファームウェアの書き込みを行うことができる。例えば、プロセッサーＰ０１の開発が未完了である場合、ユーザーは、情報処理装置１２からプロセッサーＰ１１に対してプロセッサーＰ１１に応じた書込実行データを出力することにより、プロセッサーＰ０１へデータを出力することなく、プロセッサーＰ１１、プロセッサーＰ２１、プロセッサーＰ２２のそれぞれへのファームウェアの書き込みを行うことができる。また、例えば、情報処理装置１１では、ユーザーがプロセッサーＰ２３に対するファームウェアの書き込みをしたくない場合、ユーザーは、プロセッサーＰ０１に応じた書込実行データに含まれる書込実行データのうちプロセッサーＰ２３に応じた書込実行データのコンポーネントのボディーを空データにすることにより、プロセッサーＰ２３にファームウェアを書き込まずに、プロセッサーＰ０１、プロセッサーＰ１１、プロセッサーＰ１２、プロセッサーＰ１３、プロセッサーＰ２１、プロセッサーＰ２２、プロセッサーＰ３１、プロセッサーＰ３２のそれぞれに対してファームウェアを書き込むことができる。このため、例えば、情報処理装置１１は、情報処理装置１１が備える９個のプロセッサーＰのそれぞれについての開発を行いつつ、開発が完了したプロセッサーＰへのファームウェアの書き込みを効率的に行うことができる。換言すると、情報処理装置１１は、ファームウェアのアップデートを行うプロセッサーＰを、ユーザーの都合に合わせて柔軟に選択することができる。
【００７７】
ここで、図６は、プロセッサーＰ０１に対してプロセッサーＰ０１に応じた書込実行データが情報処理装置１２から出力された場合において、各プロセッサーＰが書込実行データを取得する流れの一例を示す図である。
【００７８】
図６に示したように、プロセッサーＰ０１は、情報処理装置１２から書込実行データＤ０１を取得する。書込実行データＤ０１は、プロセッサーＰ０１に応じた書込実行データのことである。この場合、プロセッサーＰ０１は、第１プロセッサーとして動作する。すなわち、当該場合、プロセッサーＰ０１は、書込実行データＤ０１に基づいて、書込実行データＤ０１に含まれる書込実行データＤ１１を、プロセッサーＰ０１に対する第２プロセッサーのうちの１個であるプロセッサーＰ１１に出力する。書込実行データＤ１１は、プロセッサーＰ１１に応じた書込実行データのことである。また、当該場合、プロセッサーＰ０１は、書込実行データＤ０１に基づいて、書込実行データＤ０１に含まれる書込実行データＤ１２を、プロセッサーＰ０１に対する第２プロセッサーのうちの１個であるプロセッサーＰ１２に出力する。書込実行データＤ１２は、プロセッサーＰ１２に応じた書込実行データのことである。また、当該場合、プロセッサーＰ０１は、書込実行データＤ０１に基づいて、書込実行データＤ０１に含まれる書込実行データＤ１３を、プロセッサーＰ０１に対する第２プロセッサーのうちの１個であるプロセッサーＰ１３に出力する。書込実行データＤ１３は、プロセッサーＰ１３に応じた書込実行データのことである。
【００７９】
次に、プロセッサーＰ１１は、プロセッサーＰ０１から書込実行データＤ１１を取得した場合、第１プロセッサーとして動作する。そして、当該場合、プロセッサーＰ１１は、書込実行データＤ１１に基づいて、書込実行データＤ１１に含まれる書込実行データＤ２１を、プロセッサーＰ１１に対する第２プロセッサーのうちの１個であるプロセッサーＰ２１に出力する。また、当該場合、プロセッサーＰ１１は、書込実行データＤ１１に基づいて、書込実行データＤ１１に含まれる書込実行データＤ２２を、プロセッサーＰ１１に対する第２プロセッサーのうちの１個であるプロセッサーＰ２２に出力する。
【００８０】
また、プロセッサーＰ１３は、プロセッサーＰ０１から書込実行データＤ１３を取得した場合、第１プロセッサーとして動作する。そして、当該場合、プロセッサーＰ１３は、書込実行データＤ１３に基づいて、書込実行データＤ１３に含まれる書込実行データＤ２３を、プロセッサーＰ１３に対する第２プロセッサーであるプロセッサーＰ２３に出力する。
【００８１】
また、プロセッサーＰ２３は、プロセッサーＰ１３から書込実行データＤ２３を取得した場合、第１プロセッサーとして動作する。そして、当該場合、プロセッサーＰ２３は、書込実行データＤ２３に基づいて、書込実行データＤ２３に含まれる書込実行データＤ３１を、プロセッサーＰ２３に対する第２プロセッサーのうちの１個であるプロセッサーＰ３１に出力する。また、当該場合、プロセッサーＰ２３は、書込実行データＤ２３に基づいて、書込実行データＤ２３に含まれる書込実行データＤ３２を、プロセッサーＰ２３に対する第２プロセッサーのうちの１個であるプロセッサーＰ３２に出力する。
【００８２】
ここで、プロセッサーＰ０１は、書込実行データＤ０１に含まれるコンポーネントのうちプロセッサーＰ０１を示す出力先データを含むコンポーネントのボディーが空データである場合、プロセッサーＰ０１へのファームウェアの書き込みを行わない。
【００８３】
また、プロセッサーＰ１１は、書込実行データＤ１１に含まれるコンポーネントのうちプロセッサーＰ１１を示す出力先データを含むコンポーネントのボディーが空データである場合、プロセッサーＰ１１へのファームウェアの書き込みを行わない。
【００８４】
また、プロセッサーＰ１２は、書込実行データＤ１２に含まれるコンポーネントのうちプロセッサーＰ１２を示す出力先データを含むコンポーネントのボディーが空データである場合、プロセッサーＰ１２へのファームウェアの書き込みを行わない。
【００８５】
また、プロセッサーＰ１３は、書込実行データＤ１３に含まれるコンポーネントのうちプロセッサーＰ１３を示す出力先データを含むコンポーネントのボディーが空データである場合、プロセッサーＰ１３へのファームウェアの書き込みを行わない。
【００８６】
また、プロセッサーＰ２１は、書込実行データＤ２１に含まれるコンポーネントのうちプロセッサーＰ２１を示す出力先データを含むコンポーネントのボディーが空データである場合、プロセッサーＰ２１へのファームウェアの書き込みを行わない。
【００８７】
また、プロセッサーＰ２２は、書込実行データＤ２２に含まれるコンポーネントのうちプロセッサーＰ２２を示す出力先データを含むコンポーネントのボディーが空データである場合、プロセッサーＰ２２へのファームウェアの書き込みを行わない。
【００８８】
また、プロセッサーＰ２３は、書込実行データＤ２３に含まれるコンポーネントのうちプロセッサーＰ２３を示す出力先データを含むコンポーネントのボディーが空データである場合、プロセッサーＰ２３へのファームウェアの書き込みを行わない。
【００８９】
また、プロセッサーＰ３１は、書込実行データＤ３１に含まれるコンポーネントのうちプロセッサーＰ３１を示す出力先データを含むコンポーネントのボディーが空データである場合、プロセッサーＰ３１へのファームウェアの書き込みを行わない。
【００９０】
また、プロセッサーＰ３２は、書込実行データＤ３２に含まれるコンポーネントのうちプロセッサーＰ３２を示す出力先データを含むコンポーネントのボディーが空データである場合、プロセッサーＰ３２へのファームウェアの書き込みを行わない。
【００９１】
このように、情報処理装置１１では、再帰的なデータ構造を有する書込実行データと、書込実行データに含まれるコンポーネントのボディーを空データにするか否かとによって、すべてのプロセッサーＰのうちのユーザーが所望するプロセッサーＰへのファームウェアの効率的な書き込みを行うことができる。その結果、例えば、情報処理装置１１は、各プロセッサーＰのアップデートに要する手間と時間を少なくすることができる。また、例えば、情報処理装置１１では、各プロセッサーＰの開発においてのみ用いられるファームウェアをプロセッサーＰへ書き込む書込実行データを作成する必要がなく、書込実行データの作成に要する工数を少なくすることができる。また、情報処理装置１１では、個々のプロセッサーＰへの書込実行データを独立に作成する必要がない。
【００９２】
なお、上記において説明した書込実行データのデータ構造は、スクリプトプログラムによって容易に作成することができる。その結果、情報処理装置１１では、ユーザーによる書込実行データの作成に要する負担を軽減することができる。
【００９３】
以上説明したように、実施形態に係る情報処理装置は、決められた階層構造において第１順位が割り当てられた第１プロセッサーと、第１プロセッサーが読み出すデータを記憶する第１メモリーとを有する第１基板と、階層構造において第１順位よりも順位が１つ下の第２順位が割り当てられた第２プロセッサーと、第２プロセッサーが読み出すデータを記憶する第２メモリーとを有する第２基板と、を備え、第１プロセッサーは、第２メモリーへの第２ファームウェアの書き込みを第２プロセッサーに行わせる第２書込実行データを含む第１書込実行データを取得した場合、第１書込実行データに含まれる第２書込実行データを第２プロセッサーへ出力し、第１メモリーへの第１ファームウェアの書き込みを第１プロセッサーに行わせる第１書込実行データに基づいて第１ファームウェアを第１メモリーに書き込み、第２書込実行データのデータ構造は、第１書込実行データのデータ構造と同じデータ構造である。これにより、情報処理装置は、複数のプロセッサーへのファームウェアの書き込みを効率的に行うことができる。
【００９４】
また、情報処理装置では、第１メモリーには、第１プロセッサーからデータを出力可能な１以上の出力先を示す第１出力先データが更に記憶されており、第１書込実行データには、第２書込実行データの出力先として第２プロセッサーを示す第２出力先データが含まれており、第１プロセッサーは、第１書込実行データを取得した場合、且つ、第１出力先データが示す１以上の出力先に、第２出力先データが示す第２プロセッサーが含まれている場合、第１書込実行データに含まれる第２書込実行データを第２プロセッサーへ出力する、構成が用いられてもよい。
【００９５】
また、情報処理装置では、第１プロセッサーは、第１書込実行データを取得した場合、且つ、第１出力先データが示す１以上の出力先に、第２出力先データが示す第２プロセッサーが含まれていない場合、エラーを出力する、構成が用いられてもよい。
【００９６】
また、情報処理装置では、第２プロセッサーは、第２書込実行データに含まれる第２ファームウェアが空データであった場合、第２メモリーへの第２ファームウェアの書き込みを行わず、第２メモリーへの第２ファームウェアの書き込みが成功したことを示すデータを第１プロセッサーに出力する、構成が用いられてもよい。
【００９７】
また、情報処理装置では、第１プロセッサーは、第１書込実行データに含まれる第２書込実行データを第２プロセッサーへ出力した後、第２メモリーへの第２ファームウェアの書き込みが成功したことを示すデータを第２プロセッサーから取得した場合、第１書込実行データに基づいて第１データを第１メモリーに書き込む、構成が用いられてもよい。
【００９８】
また、情報処理装置では、第１プロセッサーは、第１書込実行データに含まれる第２書込実行データを第２プロセッサーへ出力した後、第２メモリーへの第２ファームウェアの書き込みが失敗したことを示すデータを第２プロセッサーから取得した場合、第１メモリーへの第１ファームウェアの書き込みを行わない、構成が用いられてもよい。
【００９９】
また、情報処理装置では、階層構造において第２順位よりも順位が１つ下の第３順位が割り当てられた第３プロセッサーと、第３プロセッサーが読み出すデータを記憶する第３メモリーとを有する第３基板を更に備え、第２書込実行データは、第３メモリーへの第３ファームウェアの書き込みを第３プロセッサーに行わせる第３書込実行データを含み、第３書込実行データのデータ構造は、第２書込実行データのデータ構造と同じデータ構造であり、第２プロセッサーは、第２書込実行データを取得した場合、第２書込実行データに含まれる第３書込実行データを第３プロセッサーへ出力し、第２書込実行データに基づいて第２ファームウェアを第２メモリーに書き込む、構成が用いられてもよい。
【０１００】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１０１】
また、以上に説明した装置における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。ここで、当該装置は、例えば、情報処理装置１１、情報処理装置１２、プロセッサーＰ等である。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含むものとする。
【０１０２】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワークや電話回線等の通信回線のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル又は差分プログラムであってもよい。
【符号の説明】
【０１０３】
１…情報処理システム、１１、１２…情報処理装置、Ｄ０１、Ｄ１１、Ｄ１２、Ｄ１３、Ｄ２１、Ｄ２２、Ｄ２３、Ｄ３１、Ｄ３２…書込実行データ、Ｌ、Ｌ０１、Ｌ１１、Ｌ１２、Ｌ１３、Ｌ２１、Ｌ２２、Ｌ２３、Ｌ３１、Ｌ３２…基板、Ｍ、Ｍ０１、Ｍ１１、Ｍ１２、Ｍ１３、Ｍ２１、Ｍ２２、Ｍ２３、Ｍ３１、Ｍ３２…メモリー、Ｐ、Ｐ０１、Ｐ１１、Ｐ１２、Ｐ１３、Ｐ２１、Ｐ２２、Ｐ２３、Ｐ３１、Ｐ３２…プロセッサー
【図１】
2020140621.tif 000003
【図２】
2020140621.tif 000004
【図３】
2020140621.tif 000005
【図４】
2020140621.tif 000006
【図５】
2020140621.tif 000007
【図６】
2020140621.tif 000008