IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通クライアントコンピューティング株式会社の特許一覧

<>
  • 特許-情報処理システム 図1
  • 特許-情報処理システム 図2
  • 特許-情報処理システム 図3
  • 特許-情報処理システム 図4
  • 特許-情報処理システム 図5
  • 特許-情報処理システム 図6
  • 特許-情報処理システム 図7
  • 特許-情報処理システム 図8
  • 特許-情報処理システム 図9
  • 特許-情報処理システム 図10
  • 特許-情報処理システム 図11
  • 特許-情報処理システム 図12
  • 特許-情報処理システム 図13
  • 特許-情報処理システム 図14
  • 特許-情報処理システム 図15
  • 特許-情報処理システム 図16
  • 特許-情報処理システム 図17
  • 特許-情報処理システム 図18
  • 特許-情報処理システム 図19
  • 特許-情報処理システム 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-21
(45)【発行日】2022-06-29
(54)【発明の名称】情報処理システム
(51)【国際特許分類】
   G06F 8/61 20180101AFI20220622BHJP
   G06F 9/4401 20180101ALI20220622BHJP
【FI】
G06F8/61
G06F9/4401
【請求項の数】 6
(21)【出願番号】P 2020175741
(22)【出願日】2020-10-20
(65)【公開番号】P2022067178
(43)【公開日】2022-05-06
【審査請求日】2021-03-05
(73)【特許権者】
【識別番号】518133201
【氏名又は名称】富士通クライアントコンピューティング株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】特許業務法人扶桑国際特許事務所
(72)【発明者】
【氏名】中山 雄二
【審査官】多賀 実
(56)【参考文献】
【文献】国際公開第2019/203331(WO,A1)
【文献】"Tinker Board Series User Manual",[online],First Edition,ASUSTeK COMPUTER INC.,2019年02月,pp.1-11(特に、p.7-11),[令和4年5月12日検索], インターネット:<URL: https://tinker-board.asus.com/images/doc/download/User-Manual.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/61
G06F 9/44-9/445
(57)【特許請求の範囲】
【請求項1】
第1記憶装置と第2記憶装置とを有する計算装置と、
前記第1記憶装置にシステムイメージデータを書き込むためのソフトウェアを前記計算装置に実行させることで、前記第2記憶装置にシステムイメージデータを書き込むための第1システムイメージデータを前記第1記憶装置へ書き込み、前記計算装置を前記第1システムイメージデータで起動させ、前記計算装置に、前記第1システムイメージデータによって第2システムイメージデータを前記第2記憶装置へ書き込ませる情報処理装置と、
を有する情報処理システム。
【請求項2】
前記情報処理装置は、前記計算装置の揮発性の記憶領域へ前記ソフトウェアを書き込み、前記ソフトウェアを前記計算装置に実行させることで、前記第1システムイメージデータを不揮発性の前記第1記憶装置へ書き込む、
請求項1記載の情報処理システム。
【請求項3】
前記計算装置は、前記ソフトウェアを実行することで、第1経路を介して前記情報処理装置から前記第1システムイメージデータを取得し、前記第1システムイメージデータを前記第1記憶装置へ書き込み、
前記第1システムイメージデータは、前記第1経路と異なる第2経路を用いるためのドライバを含み、
前記第1システムイメージデータで起動した前記計算装置は、前記第2経路を介して前記情報処理装置から前記第2システムイメージデータを取得し、前記第2システムイメージデータを前記第2記憶装置へ書き込む、
請求項1または2記載の情報処理システム。
【請求項4】
前記情報処理装置は、前記第1記憶装置へ書き込まれた前記第1システムイメージデータ、前記第2記憶装置へ書き込まれた前記第2システムイメージデータおよび前記第1記憶装置にあらかじめ記憶された、前記ソフトウェアを実行するための第3システムイメージデータのうちのいずれのシステムイメージデータで前記計算装置が起動するかを前記計算装置に指示し、
前記計算装置は、前記情報処理装置から指示されたシステムイメージデータで起動する、
請求項1ないし3のいずれかに記載の情報処理システム。
【請求項5】
前記情報処理装置は、記憶部を有し、前記第1システムイメージデータで起動した前記計算装置に、前記第2記憶装置に記憶された第4システムイメージデータを前記情報処理装置へ送信させ、前記第4システムイメージデータを前記記憶部に格納する、
請求項1ないし4のいずれかに記載の情報処理システム。
【請求項6】
前記情報処理装置は、前記第1システムイメージデータで起動した前記計算装置へ第5システムイメージデータを送信し、前記第1システムイメージデータで起動した前記計算装置に、前記第2記憶装置に記憶されたシステムイメージデータを前記第5システムイメージデータに書き替えさせる、
請求項1ないし5のいずれかに記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システムに関する。
【背景技術】
【0002】
近年、AI(Artificial Intelligence)を用いた推論処理や画像処理が普及している。推論処理や画像処理のような負荷が高い処理を行う情報処理装置は、処理の一部を並列処理に適した計算装置に実行させることが多い。
【0003】
計算装置を用いた処理に関する技術としては、例えば、処理負荷を適宜分散させ、推論処理を効率的に行う推論処理システムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第6614373号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
情報処理装置と計算装置とを有するシステムでは、例えば、情報処理装置がシステムイメージデータを計算装置に送信し、計算装置にシステムイメージデータを書き込ませる。しかし、システムイメージデータを書き込むためのソフトウェアは、計算装置の所定の記憶装置以外の記憶装置へのシステムイメージデータの書込を制限されている場合がある。すると、記憶装置を複数有する計算装置の所望の記憶装置に対して、システムイメージデータを書き込むことが難しいことがある。
【0006】
1つの側面では、本件は、記憶装置を複数有する計算装置に対するシステムイメージデータの書込を容易にすることを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、計算装置と情報処理装置とを有する情報処理システムが提供される。計算装置は、第1記憶装置と第2記憶装置とを有する。情報処理装置は、第1記憶装置にシステムイメージデータを書き込むためのソフトウェアを計算装置に実行させることで、第2記憶装置にシステムイメージデータを書き込むための第1システムイメージデータを第1記憶装置へ書き込み、計算装置を第1システムイメージデータで起動させ、計算装置に、第1システムイメージデータによって第2システムイメージデータを第2記憶装置へ書き込ませる。
【発明の効果】
【0008】
1態様によれば、記憶装置を複数有する計算装置に対するシステムイメージデータの書込を容易にすることができる。
【図面の簡単な説明】
【0009】
図1】第1の実施の形態に係る情報処理システムの一例を示す図である。
図2】第2の実施の形態に係る情報処理システムの一例を示す図である。
図3】情報処理システムの接続状態の一例を示す図である。
図4】情報処理装置および計算装置のハードウェアの一構成例を示す図である。
図5】PCIeブリッジボードのハードウェア構成の一例を示す図である。
図6】情報処理システムの各装置のソフトウェア構成の一例を示す図である。
図7】情報処理システムにおけるUSB接続の経路の一例を示す図である。
図8】情報処理システムにおけるUSB接続の経路の一例を示す図である。
図9】装置間における通信処理の一例を示す図である。
図10】PCIeブリッジボードを仮想的なLANのように用いたときのプロセッサ間のデータ転送方法の一例を示す図である。
図11】情報処理システムの機能例を示すブロック図である。
図12】スイッチおよびスイッチ制御部の接続構成の一例を示す図である。
図13】接続状態テーブルの一例を示す図である。
図14】スイッチ接続状態の一例を示す図である。
図15】初期システムイメージデータの書込処理の一例を示す図である。
図16】初期システムイメージデータ書込処理の手順の一例を示すフローチャートである。
図17】書込用システムイメージデータ書込処理の手順の一例を示すフローチャートである。
図18】USB接続確立処理の例を示すシーケンス図である。
図19】バックアップ処理の手順の一例を示すフローチャートである。
図20】リストア処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。
【0011】
図1は、第1の実施の形態に係る情報処理システムの一例を示す図である。第1の実施の形態は、情報処理装置10が計算装置20にシステムイメージデータを書き込むものである。情報処理装置10は、計算装置20と連携して負荷の大きい処理を実行するコンピュータである。情報処理装置10は、サーバコンピュータであってもよいし、クライアントコンピュータであってもよい。情報処理装置10は、処理部11を有する。処理部11は、例えば、情報処理装置10が有するプロセッサ、または演算回路である。
【0012】
計算装置20は、情報処理装置10の指示に従って、負荷の大きい処理の一部を実行するコンピュータである。計算装置20は、揮発性記憶領域21と第1記憶装置22と第2記憶装置23と処理部24とを有する。揮発性記憶領域21は、例えば、計算装置20が有するメモリである。第1記憶装置22は、不揮発性の記憶装置であり、例えば、計算装置20が有するストレージ装置である。第2記憶装置23は、不揮発性の記憶装置であり、例えば、計算装置20に増設されたストレージ装置である。処理部24は、例えば、計算装置20が有するプロセッサ、または演算回路である。
【0013】
なお、情報処理装置10と計算装置20とは、例えば、図示しない中継装置で接続される。中継装置は、情報処理装置10と計算装置20とを接続する、USB(Universal Serial Bus)を用いた経路を含む。また、中継装置は、情報処理装置10と計算装置20とを接続する、中継装置を仮想的なLAN(Local Area Network)のように用いる経路を含む。
【0014】
まず、処理部11は、ソフトウェア1を計算装置20に実行させることで、第2記憶装置23にシステムイメージデータを書き込むための第1システムイメージデータを第1記憶装置22へ書き込む。ソフトウェア1は、第1記憶装置22にシステムイメージデータを書き込むためのソフトウェアである。なお、ソフトウェア1は、計算装置20の第1記憶装置22以外の記憶装置(例えば、第2記憶装置23)へのシステムイメージデータの書込を制限されている。処理部11は、揮発性記憶領域21へソフトウェア1を書き込み、ソフトウェア1を計算装置20に実行させることで、第1システムイメージデータを第1記憶装置22へ書き込む。
【0015】
ここで、処理部24は、ソフトウェア1を実行することで、第1経路を介して情報処理装置10から第1システムイメージデータを取得する。第1経路は、例えば、情報処理装置10と計算装置20とが接続されている中継装置内のUSB接続を用いる経路である。そして、処理部24は、取得した第1システムイメージデータを第1記憶装置22へ書き込む。
【0016】
次に、処理部11は、計算装置20を第1システムイメージデータで起動させる。例えば、処理部11は、計算装置20のブートローダに第1システムイメージデータで再起動するよう指示する。そして、処理部11は、計算装置20に、第1システムイメージデータによって第2システムイメージデータを第2記憶装置23へ書き込ませる。第2システムイメージデータは、例えば、計算装置20が情報処理装置10の指示に従って、推論処理や画像処理の一部を実行するためのOS(Operating System)やソフトウェアを含む。
【0017】
ここで、第1システムイメージデータは、第1経路と異なる第2経路を用いるためのドライバを含む。第2経路は、ソフトウェア1が使用できない経路であり、例えば、情報処理装置10と計算装置20とが接続されている中継装置を仮想的なLANのように用いる経路である。第1システムイメージデータで起動した計算装置20の処理部24は、第2経路を介して情報処理装置10から第2システムイメージデータを取得する。そして、処理部24は、取得した第2システムイメージデータを第2記憶装置23へ書き込む。
【0018】
第1の実施の形態の情報処理システムによれば、情報処理装置10の処理部11は、ソフトウェア1を計算装置20に実行させることで、第2記憶装置23にシステムイメージデータを書き込むための第1システムイメージデータを第1記憶装置22へ書き込む。処理部11は、計算装置20を第1システムイメージデータで起動させる。そして、処理部11は、計算装置20に、第1システムイメージデータによって第2システムイメージデータを第2記憶装置23へ書き込ませる。これにより、ソフトウェア1が第2記憶装置23へのシステムイメージデータの書込を制限されている場合であっても、第1の実施の形態の情報処理システムは、第2記憶装置23へ第2システムイメージデータを書き込むことができる。よって、第1の実施の形態の情報処理システムは、記憶装置を複数有する計算装置20に対するシステムイメージデータの書込を容易にすることができる。
【0019】
また、情報処理装置10の処理部11は、計算装置20の揮発性記憶領域21へソフトウェア1を書き込み、ソフトウェア1を計算装置20に実行させることで、第1システムイメージデータを不揮発性の第1記憶装置22へ書き込む。これにより、第1の実施の形態の情報処理システムは、計算装置20の再起動によって、第2システムイメージデータを書き込むのに用いないソフトウェア1が消去されるようにする。また、第1の実施の形態の情報処理システムは、計算装置20の再起動によって、第2システムイメージデータを書き込むのに用いる第1システムイメージデータが消去されないようにすることができる。
【0020】
また、計算装置20の処理部24は、ソフトウェア1を実行することで、第1経路を介して情報処理装置10から第1システムイメージデータを取得し、第1システムイメージデータを第1記憶装置22へ書き込む。第1システムイメージデータは、第1経路と異なる第2経路を用いるためのドライバを含む。第1システムイメージデータで起動した計算装置20の処理部24は、第2経路を介して情報処理装置10から第2システムイメージデータを取得し、第2システムイメージデータを第2記憶装置23へ書き込む。これにより、第1の実施の形態の情報処理システムは、ソフトウェア1が第2経路の使用を制限されている場合であっても、情報処理装置10から計算装置20への第2システムイメージデータの送信に第2経路を用いることができる。
【0021】
なお、第1記憶装置22には、ソフトウェア1を実行するための第3システムイメージデータがあらかじめ記憶されていてもよい。また、処理部11は、第1記憶装置22へ書き込まれた第1システムイメージデータ、第2記憶装置23へ書き込まれた第2システムイメージデータおよび第3システムイメージデータのうちのいずれのシステムイメージデータで計算装置20が起動するかを計算装置20に指示してもよい。計算装置20は、情報処理装置10から指示されたシステムイメージデータで起動する。これにより、第1の実施の形態の情報処理システムは、情報処理装置10によって、第2記憶装置23へのシステムイメージデータの書込処理の開始および計算装置20による第2システムイメージデータの利用を制御するようにできる。
【0022】
また、情報処理装置10は、記憶部を有していてもよく、処理部11は、次のようなバックアップ処理を行ってもよい。処理部11は、第1システムイメージデータで起動した計算装置20に、第2記憶装置23に記憶された第4システムイメージデータを情報処理装置10へ送信させる。そして、処理部11は、第4システムイメージデータを記憶部に格納する。これにより、第1の実施の形態の情報処理システムは、ソフトウェア1が第2記憶装置23に記憶されたシステムイメージデータの読取を制限されている場合であっても、第2記憶装置23に対するバックアップ処理を容易にすることができる。
【0023】
また、処理部11は、次のようなリストア処理を行ってもよい。処理部11は、第1システムイメージデータで起動した計算装置20へ第5システムイメージデータを送信する。そして、処理部11は、第1システムイメージデータで起動した計算装置20に、第2記憶装置23に記憶されたシステムイメージデータを第5システムイメージデータに書き替えさせる。これにより、第1の実施の形態の情報処理システムは、ソフトウェア1が第2記憶装置23へのシステムイメージデータの書込を制限されている場合であっても、第2記憶装置23に対するリストア処理を容易にすることができる。
【0024】
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。第2の実施の形態は、計算装置のシステムイメージデータを管理するものである。
【0025】
図2は、第2の実施の形態に係る情報処理システムの一例を示す図である。第2の実施の形態の情報処理システムは、情報処理装置100、計算装置200-1,200-2,・・・およびPCIe(Peripheral Component Interconnect express:登録商標)ブリッジボード300を有する。
【0026】
情報処理装置100は、AI推論処理や画像処理を用いたサービスを提供するコンピュータである。例えば、情報処理装置100は、動画から不審者を検出するサービスを提供する。情報処理装置100は、PCIeブリッジボード300を介して計算装置200-1,200-2,・・・に接続されている。
【0027】
計算装置200-1,200-2,・・・は、情報処理装置100の指示に従って、AI推論処理や画像処理の一部を分散して実行し、実行結果を情報処理装置100に送信する。例えば、計算装置200-1,200-2,・・・は、並列処理に適したプロセッサ(アクセラレータ)を有していてもよい。
【0028】
また、情報処理装置100は、計算装置200-1,200-2,・・・の状態を管理する。例えば、情報処理装置100は、計算装置200-1,200-2,・・・に初期のシステムイメージデータを書き込む。また、例えば、情報処理装置100は、計算装置200-1,200-2,・・・に対するバックアップ処理およびリストア処理をする。
【0029】
図3は、情報処理システムの接続状態の一例を示す図である。第2の実施の形態の情報処理システムは、情報処理装置100、計算装置200-1~200-6およびPCIeブリッジボード300を含む。第2の実施の形態では、計算装置は計算装置200-1~200-6の6台としているが、任意の台数の計算装置がPCIeブリッジボード300に接続可能である。
【0030】
情報処理装置100および計算装置200-1~200-6は、PCIeブリッジボード300に通信可能に接続されている。具体的には、情報処理装置100は、2つのRCを用いて(例えば、2つのPCIeインタフェースをRCとして機能させて)PCIeブリッジボード300に搭載されている2つのEPと接続されている。EPは、拡張バスの末端機器(デバイス)として認識されるスレイブ側の接続部であり、RCは、EP側を末端機器として認識して拡張バスを介した通信を制御するマスター側の接続部である。また、情報処理装置100は、プロセッサ101を有する。
【0031】
なお、情報処理装置100は、ホストPCとして機能するため、データの送受信量が大きくなることが想定されることから2つのRCを用いてPCIeブリッジボード300と接続されている。このように2つのRCと2つのEPとが接続されているため、情報処理装置100は、データの通信経路を適切に振り分けることで(即ち、いずれのRC-EP間で通信するか決定することで)広い通信帯域の通信を行うことができる。なお、情報処理装置100は、1つのRCを用いてPCIeブリッジボード300に搭載されている1つのEPと接続されていてもよい。
【0032】
計算装置200-1~200-6は、1つのRCを用いてPCIeブリッジボード300に搭載されている1つのEPと接続されている。また、計算装置200-1~200-6は、プロセッサ201-1~201-6をそれぞれ有する。
【0033】
このように第2の実施の形態の情報処理システムにおいては、情報処理装置100および計算装置200-1~200-6がホスト側として動作可能なRCとなり、PCIeブリッジボード300がデバイス側として動作可能なEPとなり、データの送受信が行われる。
【0034】
なお、プロセッサ101,201-1~201-6は、それぞれ同じメーカ(またはベンダ)から提供されてもよいし、違うメーカから提供されてもよい。例えば、プロセッサ101は、A社が提供するものであり、プロセッサ201-1は、B社が提供するものであり、プロセッサ201-2は、C社が提供するものであり、プロセッサ201-3は、D社が提供するものであるものとすることができる。また、プロセッサ201-4は、E社が提供するものであり、プロセッサ201-5は、F社が提供するものであり、プロセッサ201-6は、G社が提供するものであるものとすることができる。
【0035】
PCIeブリッジボード300は、拡張バス(例えば、情報処理装置100および計算装置200-1~200-6の拡張バスとして機能するバス)を有し、拡張バスを介した通信を中継する。また、PCIeブリッジボード300は、情報処理装置100および計算装置200-1~200-6をUSB接続させ、USB接続を介した通信を中継する。
【0036】
図4は、情報処理装置および計算装置のハードウェアの一構成例を示す図である。情報処理装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス108を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0037】
メモリ102は、情報処理装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えば、RAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0038】
バス108に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、媒体リーダ106およびネットワークインタフェース107がある。また、バス108に接続されている周辺機器としては、PCIeインタフェース40-1,40-2がある。
【0039】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、情報処理装置100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0040】
グラフィック処理装置104には、モニタ31が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ31の画面に表示させる。モニタ31としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0041】
入力インタフェース105は、情報処理装置100に接続された入力デバイス32から入力信号を取得し、プロセッサ101に出力する。入力デバイス32としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、情報処理装置100に、複数の種類の入力デバイスが接続されていてもよい。
【0042】
媒体リーダ106は、記録媒体33に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体33として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0043】
ネットワークインタフェース107は、ネットワーク30に接続されている。ネットワークインタフェース107は、ネットワーク30を介して、他の装置との間でデータの送受信を行う。PCIeインタフェース40-1,40-2は、PCIeブリッジボード300に接続されている。PCIeインタフェース40-1,40-2は、PCIeブリッジボード300を介して、他の装置との間でデータの送受信を行う。
【0044】
計算装置200-1は、SoM(System on Module)200a-1とSoM200a-1にバス205-1を介して接続される周辺機器とを有する。SoM200a-1は、プロセッサ201-1とメモリ202-1とeMMC(embedded Multi Media Card)203-1とを有する。
【0045】
プロセッサ201-1は、計算装置200-1全体を制御する。プロセッサ201-1は、マルチプロセッサであってもよい。プロセッサ201-1は、例えば、CPU、MPU、またはDSPである。プロセッサ201-1がプログラムを実行することで実現する機能の少なくとも一部を、ASIC、PLDなどの電子回路で実現してもよい。また、プロセッサ201-1には、並列演算処理に適したプロセッサであるアクセラレータが含まれていてもよい。アクセラレータとしては、例えば、GPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)を使用することができる。
【0046】
メモリ202-1は、計算装置200-1の主記憶装置として使用される。メモリ202-1には、プロセッサ201-1に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ202-1には、プロセッサ201-1による処理に利用する各種データが格納される。メモリ202-1としては、例えば、RAMなどの揮発性の半導体記憶装置が使用される。
【0047】
eMMC203-1は、電気的にデータの書き込みおよび読み出しを行う不揮発性の記憶装置である。eMMC203-1は、計算装置200-1の補助記憶装置として使用される。eMMC203-1には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、SoM200a-1は、eMMC以外の不揮発性の記憶装置を有していてもよい。eMMC以外の不揮発性の記憶装置としては、例えば、HDD、SSD、フラッシュメモリ等を使用することができる。
【0048】
バス205-1に接続されている周辺機器としては、増設eMMC204-1およびPCIeインタフェース50-1がある。増設eMMC204-1は、SoM200a-1に増設されたeMMCである。増設eMMC204-1は、eMMC203-1とともに、またはeMMC203-1に代えて、計算装置200-1の補助記憶装置として使用される。なお、増設eMMC204-1に代えて、eMMC以外の不揮発性の記憶装置がSoM200a-1に増設されていてもよい。
【0049】
PCIeインタフェース50-1は、PCIeブリッジボード300に接続されている。PCIeインタフェース50-1は、PCIeブリッジボード300を介して、他の装置との間でデータの送受信を行う。
【0050】
情報処理装置100および計算装置200-1は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、図4に示した情報処理装置100と同様のハードウェアにより実現することができる。また、プロセッサ101は、第1の実施の形態に示した処理部11の一例である。また、メモリ102またはストレージ装置103は、第1の実施の形態に示した記憶部の一例である。
【0051】
また、計算装置200-2~200-6および第1の実施の形態に示した計算装置20も、図4に示した計算装置200-1と同様のハードウェアにより実現することができる。また、プロセッサ201-1は、第1の実施の形態に示した処理部24の一例である。また、メモリ202-1は、第1の実施の形態に示した揮発性記憶領域21の一例である。また、eMMC203-1は、第1の実施の形態に示した第1記憶装置22の一例である。また、増設eMMC204-1は、第1の実施の形態に示した第2記憶装置23の一例である。
【0052】
情報処理装置100は、例えば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。情報処理装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、情報処理装置100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また、情報処理装置100に実行させるプログラムを、記録媒体33に記録しておくこともできる。記録媒体33に格納されたプログラムは、例えば、プロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。また、プロセッサ101が、記録媒体33から直接プログラムを読み出して実行することもできる。
【0053】
計算装置200-1は、例えば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。計算装置200-1に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、計算装置200-1に実行させるプログラムをeMMC203-1または増設eMMC204-1に格納しておくことができる。プロセッサ201-1は、eMMC203-1または増設eMMC204-1内のプログラムの少なくとも一部をメモリ202-1にロードし、プログラムを実行する。また、計算装置200-1に実行させるプログラムを、記録媒体33に記録しておくこともできる。情報処理装置100に接続された記録媒体33に格納されたプログラムは、例えば、プロセッサ101の制御により、eMMC203-1または増設eMMC204-1にインストールされた後、実行可能となる。またプロセッサ201-1が、記録媒体33から直接プログラムを読み出して実行することもできる。
【0054】
図5は、PCIeブリッジボードのハードウェア構成の一例を示す図である。PCIeブリッジボード300は、プロセッサ301、メモリ302、インターコネクト303およびスロット304-1~304-8(スロット#0~#7)を有する。
【0055】
プロセッサ301は、PCIeブリッジボード300全体を制御する。プロセッサ301は、マルチプロセッサであってもよい。プロセッサ301は、例えばCPU、MPU、またはDSPである。プロセッサ301がプログラムを実行することで実現する機能の少なくとも一部を、ASIC、PLDなどの電子回路で実現してもよい。
【0056】
メモリ302は、例えば、ROM(Read Only Memory)およびRAMを含む記憶メモリ(物理メモリ)である。メモリ302のROMには、データ通信制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ302上のソフトウェアプログラムは、プロセッサ301に適宜読み込まれて実行される。また、メモリ302のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
【0057】
プロセッサ301およびメモリ302は、インターコネクト303に接続されている。また、スロット304-1~304-8は、内部バスを介してインターコネクト303にそれぞれ接続されている。これにより、プロセッサ301およびメモリ302とスロット304-1~304-8とは、インターコネクト303を介して相互に通信可能に接続されている。
【0058】
スロット304-1~304-8は、PCIeの規格を満たすよう構成されたデバイスが接続される接続インタフェースである。第2の実施の形態の情報処理システムでは、スロット304-1,304-2に情報処理装置100が接続され、スロット304-3~304-8のそれぞれに計算装置200-1~200-6が接続される。このように、情報処理装置100に対して2つのスロットをアサインすることで、情報処理装置100は、広い通信帯域を用いた通信を行うことができるようになる。
【0059】
なお、以下では、Slot#0に情報処理装置100のPCIeインタフェース40-1が接続され、Slot#1に情報処理装置100のPCIeインタフェース40-2が接続されているものとする。また、Slot#2に計算装置200-1のPCIeインタフェース50-1が接続され、Slot#3に計算装置200-2のPCIeインタフェースが接続され、Slot#4に計算装置200-3のPCIeインタフェースが接続されているものとする。また、Slot#5に計算装置200-4のPCIeインタフェースが接続され、Slot#6に計算装置200-5のPCIeインタフェースが接続され、Slot#7に計算装置200-6のPCIeインタフェースが接続されているものとする。
【0060】
そして、プロセッサ301がメモリ302に格納されたプログラムを実行することで、PCIeブリッジボード300による情報処理装置100および計算装置200-1~200-6間(またはプロセッサ間)のデータの送受信を実現する。なお、PCIeブリッジボード300は、情報処理装置100および計算装置200-1~200-6間のデータの送受信を高速化するためにPCIeを用いる。PCIeブリッジボード300は、情報処理装置100および計算装置200-1~200-6の各プロセッサをそれぞれRCとして動作させ、デバイスとして動作するEP間でデータの送受信を実現している。
【0061】
具体的には、第2の実施の形態の情報処理システムにおいて、情報処理装置100および計算装置200-1~200-6のプロセッサは、データ転送インタフェースとしてPCIeのRCとして動作している。また、情報処理装置100および計算装置200-1~200-6(または各装置のプロセッサ)に対して、PCIeブリッジボード300(例えば、各装置が接続されているスロット304-1~304-8)は、EPとして動作している。なお、PCIeブリッジボード300をプロセッサに対してEPとして接続する手法としては、既知の種々の手法を用いて実現することができる。例えば、PCIeブリッジボード300は、情報処理装置100および計算装置200-1~200-6との接続時に、EPとして機能することを示す信号を当該プロセッサに通知することで、EPとしてプロセッサと接続することができる。
【0062】
ここで、PCIeブリッジボード300は、USB接続を用いるデータの送受信とPCIeブリッジボード300を仮想的なLANのように用いるデータの送受信とを中継する。USB接続を用いるデータの送受信では、PCIeブリッジボード300は、情報処理装置100の指示に従って、情報処理装置100と計算装置200-1~200-6のいずれかとのUSB接続を確立する。そして、情報処理装置100とUSB接続された計算装置との間でUSBを用いたデータの送受信が行われる。
【0063】
PCIeブリッジボード300を仮想的なLANのように用いるデータの送受信では、PCIeブリッジボード300は、EPtoEP(End Point to End Point)でデータをカプセル化およびトンネリングさせて、RCにデータを送信する。なお、情報処理装置100および計算装置200-1~200-6のプロセッサ間の通信は、PCIeのトランザクションが発生したときに論理的に接続される。また、PCIeブリッジボード300を仮想的なLANのように用いるデータの送受信では、情報処理装置100および計算装置200-1~200-6のそれぞれのプロセッサは、並行してデータの送受信ができる。
【0064】
次に、第2の実施の形態の情報処理システムの各装置のソフトウェア構成について説明する。
図6は、情報処理システムの各装置のソフトウェア構成の一例を示す図である。なお、図6中においては、情報処理装置100および計算装置200-1のソフトウェア構成のみを図示する。計算装置200-2~200-6は、計算装置200-1と同様のソフトウェア構成である。
【0065】
情報処理装置100は、アプリケーション110a、ブリッジドライバ110b、USBドライバ110c、OS110dおよびBIOS(Basic Input Output System)110eを有する。アプリケーション110aは、情報処理装置100で行うOS110dが提供する機能を利用して各種処理を実行する応用ソフトウェアまたは応用プログラムである。アプリケーション110aは、OS110d上で動作する。情報処理装置100は、アプリケーション110aの制御下で各種処理を行う。
【0066】
ブリッジドライバ110bは、PCIeブリッジボード300をOS110dによって制御可能にするためのソフトウェアである。例えば、ブリッジドライバ110bは、PCIeブリッジボード300に電気的にアクセスして、計算装置と通信を行うための制御をする。なお、情報処理装置100は、2つのRCを用いてPCIeブリッジボード300に搭載されている2つのEPと接続しているため、それぞれの接続として機能するRCに対応するブリッジドライバを有していてもよい。
【0067】
USBドライバ110cは、OS110dによってUSBを使用可能にするためのソフトウェアである。例えば、USBドライバ110cは、USBを用いて計算装置と通信を行うための制御をする。OS110dは、情報処理装置100を動かすための基本ソフトウェアまたは基本プログラムである。BIOS110eは、情報処理装置100におけるOS110dの起動を制御するソフトウェアである。情報処理装置100では、例えば、BIOS110eによってブートローダが起動され(または呼び出され)、起動されたブートローダによりOS110dが検出され、OS110dが起動する。
【0068】
次に、計算装置200-1~200-6について説明する。計算装置200-1~200-6は、同様のソフトウェア構成であるので、計算装置200-1を例として用いて説明する。計算装置200-1は、アプリケーション210a-1、ブリッジドライバ210b-1、USBドライバ210c-1、eMMCドライバ210d-1、OS210e-1およびブートローダ210f-1を有する。
【0069】
アプリケーション210a-1は、計算装置200-1で行うOS210e-1が提供する機能を利用して各種処理を実行する応用ソフトウェアまたは応用プログラムである。アプリケーション210a-1は、OS210e-1上で動作する。計算装置200-1は、アプリケーション210a-1の制御下で各種処理を行う。
【0070】
ブリッジドライバ210b-1は、PCIeブリッジボード300をOS210e-1によって制御可能にするためのソフトウェアである。例えば、ブリッジドライバ210b-1は、PCIeブリッジボード300に電気的にアクセスして、情報処理装置100や他の計算装置と通信を行うための制御をする。USBドライバ210c-1は、OS210e-1によってUSBを使用可能にするためのソフトウェアである。例えば、USBドライバ210c-1は、USBを用いて情報処理装置100と通信を行うための制御をする。eMMCドライバ210d-1は、OS210e-1によって増設eMMC204-1を使用可能にするためのソフトウェアである。
【0071】
OS210e-1は、計算装置200-1を動かすための基本ソフトウェアまたは基本プログラムである。ブートローダ210f-1は、計算装置200-1の起動時に呼び出され、OS210e-1を起動するソフトウェアである。計算装置200-1では、例えば、ブートローダ210f-1によりOS210e-1が検出され、OS210e-1が起動する。
【0072】
第2の実施の形態の情報処理装置100は、計算装置200-1~200-6と連携して、AI推論処理や画像処理を用いたサービスを提供する。そこで、情報処理装置100は、AI推論処理や画像処理の一部を実行するためのOSやソフトウェアを含むシステムイメージデータ(初期システムイメージデータ)を、計算装置200-1~200-6の増設eMMCに書き込む。
【0073】
ここで、計算装置200-1~200-6に、システムイメージデータを書き込むためには、リカバリソフトが用いられることがある。リカバリソフトは、計算装置200-1~200-6のバックアップやリストアに用いられてもよい。リカバリソフトを用いたシステムイメージデータの書込では、情報処理装置100は、リカバリソフトとシステムイメージデータとをリカバリモードで起動した計算装置200-1~200-6に送信する。計算装置200-1~200-6は、情報処理装置100から受信したリカバリソフトを実行し、情報処理装置100から受信したシステムイメージデータを所定の記憶装置に書き込む。
【0074】
しかし、リカバリモードで起動した計算装置200-1~200-6には、ブリッジドライバおよびeMMCドライバが含まれていないことがある。例えば、リカバリソフトがSoM200a-1と同じベンダから提供されている場合、リカバリソフトは、SoM200a-1上のeMMC203-1にシステムイメージデータを書き込むよう設計されていることがある。また、例えば、リカバリソフトは、一般的なインタフェースであるUSBを用いるよう設計されていることがある。つまり、リカバリモードで起動した計算装置200-1~200-6は、増設eMMCにシステムイメージデータを書き込むことができない。また、リカバリモードで起動した計算装置200-1~200-6は、PCIeブリッジボード300を仮想的なLANのように用いてデータの送受信をすることができない。
【0075】
そこで、第2の実施の形態では、情報処理装置100は、リカバリソフトを用いて、システムイメージデータを増設eMMCに書き込むためのシステムイメージデータ(書込用システムイメージデータ)を、計算装置200-1~200-6のeMMCに書き込む。書込用システムイメージデータには、ブリッジドライバおよびeMMCドライバが含まれる。そして、情報処理装置100は、書込用システムイメージデータによって起動した計算装置200-1~200-6と連携して、計算装置200-1~200-6の増設eMMCに、初期システムイメージデータを書き込む。
【0076】
なお、情報処理装置100が、計算装置200-1~200-6のeMMCに書込用システムイメージデータを書き込むためのデータの送受信は、USB接続を用いて行われる。また、情報処理装置100が、計算装置200-1~200-6の増設eMMCに初期システムイメージデータを書き込むためのデータの送受信は、PCIeブリッジボード300を仮想的なLANのように用いて行われる。
【0077】
ここで、リカバリソフトは、第1の実施の形態に示したソフトウェア1の一例である。また、USB接続を用いたデータの送受信経路は、第1の実施の形態に示した第1経路の一例である。また、PCIeブリッジボード300を仮想的なLANのように用いたデータの送受信経路は、第1の実施の形態に示した第2経路の一例である。また、ブリッジドライバ210b-1は、第1の実施の形態に示した、第2経路を用いるためのドライバの一例である。
【0078】
次に、USB接続を用いるデータの送受信およびPCIeブリッジボード300を仮想的なLANのように用いるデータの送受信について説明する。まず、USB接続を用いるデータの送受信について説明する。
【0079】
図7図8は、情報処理システムにおけるUSB接続の経路の一例を示す図である。第2の実施の形態の情報処理システムは、情報処理装置100、PCIeブリッジボード300および計算装置200-1~200-6を有する。なお、図中に示すPCIeブリッジボード300内に示す点線は、データの転送経路を示す。
【0080】
情報処理装置100は、制御部100aを含む。制御部100aは、プロセッサ101、メモリ102およびストレージ装置103が含まれる。情報処理装置100とPCIeブリッジボード300とは、2個のPCIeインタフェース40-1,40-2(図では、PCIeインタフェース40として総称している)を介して互いに接続される。PCIeブリッジボード300と計算装置200-1~200-6は、6個の各PCIeインタフェース(図では、PCIeインタフェース50として総称している)を介して互いに接続される。
【0081】
PCIeブリッジボード300は、スイッチsw1~sw5、スイッチ制御部311、USBハブ312、USB/UART(Universal Asynchronous Receiver Transmitter)変換IC(Integrated Circuit)313および電源制御部314を含む。また、図中のポートp1~p6は、PCIeブリッジボード300と計算装置200-1~200-6との間でデータを送受信するためのポートである。なお、図8では計算装置200-1の内部構成のみを示しているが、計算装置200-2~200-6も同様の構成である。また、制御部100aから計算装置200-1~200-6それぞれには、リカバリモード信号rmが出力される。プロセッサ101は、リカバリモード信号rmをオンにすることで、計算装置200-1~200-6にリカバリモードで起動するよう指示する。
【0082】
次に、各構成要素を接続しているバスのインタフェースについて説明する。図7中の<>記号にはバスインタフェースの名称を記載している。なお、<>記号がない場合は、Hレベル/Lレベルの制御線またはデータ線を示している。
【0083】
制御部100aとUSBハブ312との接続インタフェースは、USBである。なお、USBインタフェースは、PCIeインタフェースで許容される通信インタフェースの1つである。制御部100aと電源制御部314との接続インタフェースはI2C(Inter-Integrated Circuit:I2Cは登録商標)である。USBハブ312とスイッチsw1との接続インタフェースおよびスイッチsw1~sw5間の接続インタフェースはUSBである。USBハブ312とスイッチ制御部311との接続インタフェースはUSBであり、USBハブ312とUSB/UART変換IC313との接続インタフェースはUSBである。USB/UART変換IC313と、SoM200a-1との接続インタフェースは、UARTである。
【0084】
次に、PCIeブリッジボード300の各構成要素について説明する。PCIeブリッジボード300内のスイッチsw1~sw5は、1入力2出力のスイッチ構造を有するスイッチICである。PCIeブリッジボード300内のスイッチ制御部311は、起動信号en1に基づいて起動し、プロセッサ101から与えられた指示を、USBハブ312を通じて受信して、スイッチsw1~sw5のスイッチ制御を行う。スイッチ制御部311は、スイッチsw1~sw5のイネーブル信号である信号OE、およびスイッチsw1~sw5のスイッチングの切替信号である信号SEL1,SEL2,SEL3を出力してスイッチ制御を行う。例えば、スイッチ制御部311は、プロセッサ101からの指示に従って、情報処理装置100から送信されたデータがポートp1から出力されるようスイッチsw1~sw5のスイッチ制御を行う。すると、情報処理装置100と計算装置200-1とのPCIeブリッジボード300を介したUSB接続が確立する。なお、スイッチsw1~sw5のスイッチ制御の詳細動作については後述する。
【0085】
PCIeブリッジボード300内のUSBハブ312は、制御部100aの信号線と、スイッチsw1の信号線およびスイッチ制御部311の信号線とを集線する。PCIeブリッジボード300内のUSB/UART変換IC313は、起動信号en2に基づいて起動し、制御部100aと計算装置200-1~200-6内のSoMとの通信インタフェースの変換を行う。USB/UART変換IC313は、通信インタフェースの変換として、USBインタフェースからUARTインタフェースへの通信インタフェース変換、またはUARTインタフェースからUSBインタフェースへの通信インタフェース変換を行う。
【0086】
USB/UART変換IC313は、計算装置200-1~200-6それぞれのSoMに対して、UARTインタフェースの信号u1~u6による通信を行う。なお、計算装置の状態チェックなどの制御部100aと計算装置間の通信は、USB/UART変換IC313を介して行われる。
【0087】
PCIeブリッジボード300内の電源制御部314は、スタンバイ電力に基づいて駆動し、システム内の各構成デバイスに対する電力供給または電力停止制御を行う。例えば、電源制御部314は、電源ボタンの操作に基づいて、情報処理装置100へのアクティブ電力の供給または電力供給停止の制御を行う。また、電源制御部314は、計算装置200-1~200-6それぞれのSoMに対して電源起動信号s1~s6を送信する。計算装置200-1~200-6それぞれは、電源制御部314からの電源起動信号s1~s6に基づいて起動する。
【0088】
このように、PCIeブリッジボード300を介したUSB接続は、プロセッサ101がPCIeブリッジボード300内のスイッチsw1~sw5を制御することで確立する。リカバリモードで起動した計算装置200-1~200-6は、USBドライバを含むため、情報処理装置100とUSB接続が確立された計算装置との間でデータの送受信が可能となる。次に、PCIeブリッジボード300を仮想的なLANのように用いるデータの送受信について説明する。
【0089】
図9は、装置間における通信処理の一例を示す図である。ここでは情報処理装置100のプロセッサ101と計算装置200-1のプロセッサ201-1との間で通信を行う例を用いて説明する。
【0090】
送信元の情報処理装置100は、RCであるプロセッサ101において生成したデータを、ソフトウェア、トランザクション層、データリンク層および物理層(PHY)に順次転送し、物理層においてPCIeブリッジボード300の物理層に転送する。
【0091】
PCIeブリッジボード300は、情報処理装置100から転送されたデータを、物理層、データリンク層、トランザクション層およびソフトウェアに順次転送し、計算装置200-1のRCに対応するEPにトンネリングにより転送する。即ち、PCIeブリッジボード300においては、EP間でデータをトンネリングさせることで、1つのRC(またはプロセッサ)から他のRC(またはプロセッサ)にデータが転送される。
【0092】
送信先の計算装置200-1は、PCIeブリッジボード300から転送されたデータを、物理層、データリンク層、トランザクション層およびソフトウェアに順次転送し、送信先の計算装置200-1のプロセッサ201-1に転送する。
【0093】
PCIeブリッジボード300を仮想的なLANのように用いる場合、装置間の通信はPCIeのトランザクションが発生したときに論理的に接続される。PCIeブリッジボード300が有する8スロットのうちの一つに接続された特定のプロセッサに対して複数の他のプロセッサからのデータ転送が集中しないときは、異なる任意の複数組のそれぞれのプロセッサ間で並行してデータ転送してもよい。例えば、プロセッサ101に対して、プロセッサ201-1およびプロセッサ201-2が通信する場合には、PCIeブリッジボード300は、プロセッサ201-1およびプロセッサ201-2による通信をシリアルに処理する。
【0094】
一方、異なる装置のプロセッサ同士が通信し、特定の装置のプロセッサに通信が集中しない場合には、PCIeブリッジボード300は、装置間の通信を並行して処理することも可能である。
【0095】
図10は、PCIeブリッジボードを仮想的なLANのように用いたときのプロセッサ間のデータ転送方法の一例を示す図である。ここではSlot#0およびSlot#1に接続された情報処理装置100が、Slot#3に接続された計算装置200-1にデータを転送する場合を例に用いて説明する。
【0096】
送信元の情報処理装置100のブリッジドライバ110bは、ソフトウェア等によって送信されるデータ(以下、送信データという)を、ストレージ装置103からメモリ102(物理メモリ)のメモリ領域102aに格納する(P10)。ここで、ブリッジドライバ110bは、送信データをカプセル化してメモリ領域102aに格納する。なお、メモリ領域102aは、転送されるデータが一時的に格納される通信バッファの一部であってもよい。
【0097】
メモリ領域102aは、PCIeブリッジボード300のスロットの数に応じて分割されている。メモリ領域102aの分割された記憶領域は、PCIeブリッジボード300のいずれかのスロットに対応付けられている。即ち、メモリ領域102aには、Slot#0~#7のそれぞれに対応する記憶領域が設けられている。なお計算装置200-1~200-6のメモリにも、メモリ領域102aと同様のメモリ領域が設けられている。
【0098】
例えば、メモリ領域102a内のSlot#0で示す記憶領域は、Slot#0に接続された情報処理装置100に対応付けられ、Slot#3で示す記憶領域は、Slot#3に接続された計算装置200-1に対応付けられている。情報処理装置100は、メモリ領域102aのうち、送信先のスロット(ここでは、Slot#3)に割り当てられた領域に送信データを格納する。
【0099】
ブリッジドライバ110bは、メモリ領域102aの記憶領域に基づいて、送信先のスロットを示すスロット情報と、送信先のメモリ領域における分割領域内におけるアドレスを示すアドレス情報とを取得または生成する(P11)。
【0100】
送信元EPにおいて、ブリッジドライバ110bは、スロット情報と、アドレス情報と、送信データとを含む転送データをPCIeブリッジボード300に渡す(P12)。これにより、PCIeブリッジボード300は、スロット情報に基づいてEPtoEPにより送信元のスロットと送信先のスロットとを接続することにより、転送データを送信先の計算装置200-1に転送する(P13)。ブリッジドライバ210b-1は、スロット情報およびアドレス情報に基づいて、メモリ202-1のメモリ領域202a-1のSlot#3に対応する記憶領域内のアドレス情報が示す領域に送信データ(または転送データ)を格納する(P14)。ここで、ブリッジドライバ210b-1は、カプセル化されている送信データを元のデータに戻す。
【0101】
送信先の計算装置200-1において、例えば、プログラムが、メモリ領域202a-1に格納された送信データを読み出して、メモリ202-1のメモリ領域202a-1以外の記憶領域やeMMC203-1に移動させる(P15、P16)。
【0102】
このように、PCIeブリッジボード300内のEP間でデータ転送を媒介して情報処理装置100から計算装置200-1にデータが転送される。これにより、第2の実施の形態の情報処理システムは、PCIeブリッジボード300に接続された複数のRC間でのデータ転送を実現することができる。
【0103】
第2の実施の形態の情報処理システムでは、情報処理装置100および計算装置200-1~200-6のプロセッサをPCIeのRCとして独立動作する。また、第2の実施の形態の情報処理システムでは、PCIeブリッジボード300は、デバイスであるEPとして情報処理装置100および計算装置200-1~200-6に接続され、EP間でデータ転送を行う。
【0104】
ここで、情報処理装置100および計算装置200-1~200-6は、EPとなるPCIeブリッジボード300を介して接続されるため、EPの先のRCのデバイスドライバを追加しなくてよい。従って、第2の実施の形態の情報処理システムは、PCIeブリッジボード300を仮想的なLANのように用いるためのブリッジドライバ以外のデバイスドライバの開発を不要にし、デバイスドライバを追加することに起因する不具合の発生を防止できる。また、情報処理装置100および計算装置200-1~200-6のプロセッサは、PCIeの規格に適合したデータ通信機能を有してさえいればよい。
【0105】
よって、第2の実施の形態の情報処理システムは、デバイスドライバの有無や、サポートOS等によらず使用するプロセッサの選択肢を広げることが可能となる。また、第2の実施の形態の情報処理システムは、PCIeブリッジボード300を仮想的なLANのように用いることにより、USBやイーサネット(登録商標)よりも高速なデータ転送を実現することができる。
【0106】
次に、第2の実施の形態の情報処理システムに含まれる各装置の機能について詳細に説明する。
図11は、情報処理システムの機能例を示すブロック図である。情報処理装置100は、記憶部120、書込制御部130、USB接続管理部140およびインストーラ部150を有する。記憶部120は、メモリ102またはストレージ装置103の記憶領域を用いて実現される。書込制御部130、USB接続管理部140およびインストーラ部150は、メモリ102に記憶されたプログラムをプロセッサ101が実行することで実現される。
【0107】
記憶部120は、書込用システムイメージデータ60、初期システムイメージデータ70、接続状態テーブル121およびバックアップデータ122-1,122-2,・・・を記憶する。書込用システムイメージデータ60は、増設eMMCへのシステムイメージデータの書込、増設eMMC内のシステムイメージデータのバックアップおよびリストアのために計算装置200-1~200-6が用いるシステムイメージデータである。書込用システムイメージデータ60は、計算装置200-1~200-6が増設eMMCにデータを書き込むためのeMMCドライバを含む。また、書込用システムイメージデータ60は、計算装置200-1~200-6がPCIeブリッジボード300を仮想的なLANのように用いるためのブリッジドライバを含む。
【0108】
初期システムイメージデータ70は、計算装置200-1~200-6がAI推論処理や画像処理の一部を実行するためのOSやソフトウェアを含むシステムイメージデータである。接続状態テーブル121は、計算装置200-1~200-6それぞれとのUSB接続を確立させるための信号OE,SEL1,SEL2,SEL3のレベル状態が示される。バックアップデータ122-1,122-2,・・・は、計算装置200-1~200-6のバックアップ処理において、計算装置200-1~200-6の増設eMMCからバックアップされたシステムイメージデータである。また、バックアップデータ122-1,122-2,・・・は、計算装置200-1~200-6のリストア処理において、計算装置200-1~200-6の増設eMMCのシステムイメージデータを書き替えるためのシステムイメージデータである。
【0109】
書込制御部130は、計算装置200-1~200-6への初期システムイメージデータ70の書込処理、バックアップ処理およびリストア処理を実行する。初期システムイメージデータ70の書込処理では、まず、書込制御部130は、計算装置200-1~200-6にリカバリモードで起動するよう指示する。例えば、書込制御部130は、リカバリモード信号rmをオンにして、計算装置200-1~200-6にリカバリモードに遷移するよう指示する。次に、書込制御部130は、接続対象の計算装置を選択し、USB接続管理部140に、接続対象の計算装置とのUSB接続を確立させる。書込制御部130は、インストーラ部150に、書込用システムイメージデータ60を、接続対象の計算装置のeMMCに書き込ませる。書込制御部130は、計算装置200-1~200-6がすべて接続対象として選択されるまで、接続対象の選択と、USB接続の確立指示と、書込用システムイメージデータ60の書込指示とを繰り返す。
【0110】
書込制御部130は、計算装置200-1~200-6のeMMCに書込用システムイメージデータ60が書き込まれると、計算装置200-1~200-6に書込用システムイメージデータ60で再起動するよう指示する。例えば、書込制御部130は、リカバリモード信号rmをオフにして、計算装置200-1~200-6に通常モードに遷移するよう指示する。また、書込制御部130は、計算装置200-1~200-6に、通常モードで起動に用いるシステムイメージデータを示すフラグを、eMMC内の書込用システムイメージデータ60を用いて起動することを示すように更新させる。
【0111】
書込制御部130は、書込用システムイメージデータ60を用いて起動した計算装置200-1~200-6に、初期システムイメージデータ70を増設eMMCに書き込むよう指示する。例えば、書込制御部130は、PCIeブリッジボード300を仮想的なLANのように用いて、初期システムイメージデータ70を計算装置200-1~200-6に送信するようブリッジドライバ110bに指示する。書込制御部130は、計算装置200-1~200-6に、送信した初期システムイメージデータ70を増設eMMCに書き込むよう指示する。
【0112】
書込制御部130は、計算装置200-1~200-6の増設eMMCに初期システムイメージデータ70が書き込まれると、計算装置200-1~200-6に初期システムイメージデータ70で再起動するよう指示する。例えば、書込制御部130は、計算装置200-1~200-6に、通常モードで起動に用いるシステムイメージデータを示すフラグを、増設eMMC内の初期システムイメージデータ70を用いて起動することを示すように更新させる。
【0113】
バックアップ処理では、書込制御部130は、計算装置200-1~200-6の増設eMMC内のシステムイメージデータ(バックアップ対象データ)をバックアップする。なお、バックアップ対象データは、初期システムイメージデータ70でもよいし、情報処理システムの運用によって初期システムイメージデータ70が更新されたものでもよい。まず、書込制御部130は、計算装置200-1~200-6に書込用システムイメージデータ60で再起動するよう指示する。書込制御部130は、書込用システムイメージデータ60を用いて起動した計算装置200-1~200-6に、増設eMMC内のバックアップ対象データをバックアップするよう指示する。
【0114】
書込制御部130は、バックアップ指示に応じて計算装置200-1~200-6から送信されたバックアップ対象データを記憶部120に格納する。例えば、書込制御部130は、計算装置200-1~200-6からPCIeブリッジボード300を仮想的なLANのように用いて送信されたバックアップ対象データを取得するようブリッジドライバ110bに指示する。そして、書込制御部130は、取得したバックアップ対象データを記憶部120に格納する。書込制御部130は、バックアップ対象データを記憶部120に格納すると、計算装置200-1~200-6にバックアップ対象データで再起動するよう指示する。
【0115】
リストア処理では、書込制御部130は、計算装置200-1~200-6の増設eMMC内のシステムイメージデータ(リストア対象データ)を記憶部120に記憶されたバックアップデータ(例えば、バックアップデータ122-1)に書き替える。なお、リストア対象データは、初期システムイメージデータ70でもよいし、情報処理システムの運用によって初期システムイメージデータ70が更新されたものでもよい。まず、書込制御部130は、計算装置200-1~200-6に書込用システムイメージデータ60で再起動するよう指示する。
【0116】
書込制御部130は、書込用システムイメージデータ60を用いて起動した計算装置200-1~200-6に、バックアップデータ122-1を送信しリストアを指示する。例えば、書込制御部130は、PCIeブリッジボード300を仮想的なLANのように用いて、バックアップデータ122-1を計算装置200-1~200-6に送信するようブリッジドライバ110bに指示する。書込制御部130は、計算装置200-1~200-6に、送信したバックアップデータ122-1で増設eMMCのリストア対象データを書き替えるよう指示する。そして、書込制御部130は、計算装置200-1~200-6にバックアップデータ122-1で再起動するよう指示する。
【0117】
USB接続管理部140は、書込制御部130の指示に従って、情報処理装置100と接続対象の計算装置(例えば、計算装置200-1)とのUSB接続を確立する。まず、USB接続管理部140は、PCIeブリッジボード300内の各構成要素に対して起動オン/オフ指示を与える。例えば、USB接続管理部140は、起動信号en1に基づいて、スイッチ制御部311を無効化状態(非起動状態)から有効化状態(起動状態)にする。そして、USB接続管理部140は、接続状態テーブル121から、情報処理装置100と計算装置200-1とを接続させるための信号のレベル状態を判定する。USB接続管理部140は、信号SEL1,SEL2,SEL3を判定したレベル状態にするようスイッチ制御部311に指示する。
【0118】
インストーラ部150は、書込制御部130の指示に従って、書込用システムイメージデータ60を、USB接続が確立された計算装置(例えば、計算装置200-1)のeMMCに書き込む。まず、インストーラ部150は、リカバリソフトを計算装置200-1のメモリ202-1に書き込む。例えば、インストーラ部150は、USB接続を介してリカバリソフトを計算装置200-1に送信し、計算装置200-1にリカバリソフトをメモリ202-1に書き込ませる。そして、インストーラ部150は、リカバリソフトを実行した計算装置200-1に、書込用システムイメージデータ60をeMMC203-1に書き込むよう指示する。例えば、インストーラ部150は、USB接続を介して、書込用システムイメージデータ60を計算装置200-1に送信する。そして、インストーラ部150は、計算装置200-1に、送信した書込用システムイメージデータ60をeMMC203-1に書き込むよう指示する。
【0119】
計算装置200-1は、eMMC203-1、増設eMMC204-1、ブートローダ210f-1、インストーラ部220-1および増設eMMC書込部230-1を有する。インストーラ部220-1は、リカバリモードで起動した計算装置200-1のメモリ202-1に書き込まれたリカバリソフトをプロセッサ201-1が実行することで実現される。増設eMMC書込部230-1は、メモリ202-1に記憶された、書込用システムイメージデータ60に含まれるプログラムをプロセッサ201-1が実行することで実現される。なお、計算装置200-2~200-6も図11に示した計算装置200-1と同様の機能を有する。
【0120】
eMMC203-1は、リカバリ用システムイメージデータ80およびフラグ90を記憶する。リカバリ用システムイメージデータ80は、計算装置200-1がリカバリモードで起動するためのシステムイメージデータである。フラグ90は、計算装置200-1が通常モードで起動に用いるシステムイメージデータを示すフラグである。また、eMMC203-1には、書込用システムイメージデータ60が書き込まれる。また、増設eMMC204-1には、初期システムイメージデータ70が書き込まれる。
【0121】
ブートローダ210f-1は、システムイメージデータ内のOSで計算装置200-1を起動させる。ブートローダ210f-1は、リカバリモード信号rmがオンの場合、リカバリ用システムイメージデータ80内のOSで計算装置200-1を起動させる。また、ブートローダ210f-1は、リカバリモード信号rmがオフの場合、フラグ90の値に応じたシステムイメージデータ内のOSで計算装置200-1を起動させる。例えば、ブートローダ210f-1は、フラグ90の値が「1」の場合、eMMC203-1内のシステムイメージデータ(例えば、書込用システムイメージデータ60)内のOSで計算装置200-1を起動させる。また、例えば、ブートローダ210f-1は、フラグ90の値が「0」の場合、増設eMMC204-1内のシステムイメージデータ(例えば、初期システムイメージデータ70)内のOSで計算装置200-1を起動させる。
【0122】
インストーラ部220-1は、情報処理装置100の指示に従って、書込用システムイメージデータ60をeMMC203-1に書き込む。例えば、インストーラ部220-1は、USB接続を介して、書込用システムイメージデータ60を情報処理装置100から受信する。そして、インストーラ部220-1は、受信した書込用システムイメージデータ60をeMMC203-1に書き込む。
【0123】
増設eMMC書込部230-1は、情報処理装置100の指示に従って、増設eMMC204-1への初期システムイメージデータ70の書込処理を実行する。また、増設eMMC書込部230-1は、情報処理装置100の指示に従って、増設eMMC204-1内のシステムイメージデータのバックアップ処理およびリストア処理を実行する。
【0124】
初期システムイメージデータ70の書込処理では、増設eMMC書込部230-1は、情報処理装置100から送信された初期システムイメージデータ70を増設eMMC204-1に書き込む。例えば、増設eMMC書込部230-1は、情報処理装置100からPCIeブリッジボード300を仮想的なLANのように用いて送信された初期システムイメージデータ70を取得するようブリッジドライバ210b-1に指示する。そして、増設eMMC書込部230-1は、取得した初期システムイメージデータ70をeMMCドライバ210d-1を用いて、増設eMMC204-1に書き込む。
【0125】
バックアップ処理では、増設eMMC書込部230-1は、増設eMMC204-1内のバックアップ対象データを情報処理装置100に送信する。例えば、増設eMMC書込部230-1は、eMMCドライバ210d-1を用いて、増設eMMC204-1内のバックアップ対象データを読み取る。そして、増設eMMC書込部230-1は、PCIeブリッジボード300を仮想的なLANのように用いて、バックアップ対象データを情報処理装置100に送信するようブリッジドライバ210b-1に指示する。
【0126】
リストア処理では、増設eMMC書込部230-1は、情報処理装置100から送信されたバックアップデータ(例えば、バックアップデータ122-1)で、増設eMMC204-1内のリストア対象データを書き替える。例えば、増設eMMC書込部230-1は、情報処理装置100からPCIeブリッジボード300を仮想的なLANのように用いて送信されたバックアップデータ122-1を取得するようブリッジドライバ210b-1に指示する。そして、増設eMMC書込部230-1は、eMMCドライバ210d-1を用いて、バックアップデータ122-1で増設eMMC204-1内のリストア対象データを書き替える。
【0127】
なお、ブートローダ210f-1のプログラムは、SoM200a-1内の図示しないフラッシュメモリに格納されていてもよい。そして、リカバリ用システムイメージデータ80およびフラグ90も、ブートローダ210f-1のプログラムが格納されているフラッシュメモリに記憶されていてもよい。
【0128】
また、書込用システムイメージデータ60は、第1の実施の形態に示した第1システムイメージデータの一例である。また、初期システムイメージデータ70は、第1の実施の形態に示した第2システムイメージデータの一例である。また、リカバリ用システムイメージデータ80は、第1の実施の形態に示した第3システムイメージデータの一例である。また、バックアップ対象データは、第1の実施の形態に示した第4システムイメージデータの一例である。また、バックアップデータ122-1は、第1の実施の形態に示した第5システムイメージデータの一例である。また、図11に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【0129】
次に、USB接続を確立するためのスイッチ制御について詳細に説明する。
図12は、スイッチおよびスイッチ制御部の接続構成の一例を示す図である。図12は、図7に示したスイッチsw1~sw5およびスイッチ制御部311の接続構成を示している。スイッチsw1~sw5は、1入力2出力のスイッチであり、スイッチsw1~sw5はそれぞれ切替端子c1~c5を有する。
【0130】
スイッチsw1の入力端子a1は、USBハブ312に接続される。スイッチsw1の第1の出力端子b11は、スイッチsw2の入力端子a2に接続され、スイッチsw1の第2の出力端子b12は、スイッチsw5の入力端子a5に接続される。スイッチsw2の第1の出力端子b21は、スイッチsw3の入力端子a3に接続され、スイッチsw2の第2の出力端子b22は、スイッチsw4の入力端子a4に接続される。スイッチsw3の第1の出力端子b31は、ポートp1に接続され、スイッチsw3の第2の出力端子b32は、ポートp2に接続される。スイッチsw4の第1の出力端子b41は、ポートp3に接続され、スイッチsw4の第2の出力端子b42は、ポートp4に接続される。スイッチsw5の第1の出力端子b51は、ポートp5に接続され、スイッチsw5の第2の出力端子b52は、ポートp6に接続される。
【0131】
さらに、ポートp1は、PCIeインタフェース50を介して、計算装置200-1に接続され、ポートp2は、PCIeインタフェース50を介して、計算装置200-2に接続される。また、ポートp3は、PCIeインタフェース50を介して、計算装置200-3に接続され、ポートp4は、PCIeインタフェース50を介して、計算装置200-4に接続される。また、ポートp5は、PCIeインタフェース50を介して、計算装置200-5に接続され、ポートp6は、PCIeインタフェース50を介して、計算装置200-6に接続される。また、スイッチ制御部311は、スイッチsw1~sw5をスイッチ制御するための制御信号として、信号OE,SEL1,SEL2,SEL3を有している。
【0132】
信号OEは、スイッチsw1~sw5に送信され、スイッチsw1~sw5を一括して非接続状態、またはスイッチ切替状態を確定するための信号である。例えば、信号OEがHレベルのとき、スイッチsw1~sw5は非接続状態(無効化状態)になる。また、信号OEがLレベルのとき、スイッチsw1~sw5はスイッチ切替状態(有効化状態)が確定される。
【0133】
一方、信号SEL1は、スイッチsw1に送信され、信号SEL2は、スイッチsw2に送信され、信号SEL3は、スイッチsw3,sw4,sw5に送信される。信号SEL1,SEL2,SEL3は、スイッチsw1~sw5の切替端子を駆動する信号である。信号SEL1,SEL2,SEL3は、Lレベルのとき、スイッチ内の切替端子は第1の出力端子(上側出力端子)に接続され、Hレベルのとき、スイッチ内の切替端子は第2の出力端子(下側出力端子)に接続される。
【0134】
上記のようなスイッチsw1~sw5の接続構成により、少ないスイッチの個数で効率よく計算装置200-1~200-6のうちから1つの計算装置を選択することができ、また回路実装規模の増加を抑制することができる。
【0135】
次に、記憶部120に記憶される接続状態テーブル121について詳細に説明する。
図13は、接続状態テーブルの一例を示す図である。接続状態テーブル121は、計算装置200-1~200-6に対するスイッチsw1~sw5の接続状態を示すテーブルであり、項目として、信号名およびスイッチ制御部311のGPIO(General Purpose Input Output)のピン番を有している。また、接続状態テーブル121は、計算装置200-1~200-6がPCIeブリッジボード300を介して情報処理装置100と接続するときのスイッチ制御信号(OE,SEL1,SEL2,SEL3)のレベル状態が示されている。
【0136】
信号OEはスイッチ制御部311のGPIOの6ピンから出力されることが示されている。また、信号SEL1はスイッチ制御部311のGPIOの7ピンから出力され、信号SEL2はスイッチ制御部311のGPIOの10ピンから出力され、信号SEL3はスイッチ制御部311のGPIOの11ピンから出力されることが示されている。なお、テーブル中の“-”は、信号SEL2はLレベルまたはHレベルのいずれでもよい不定であることを示している。
【0137】
次に、接続状態テーブル121に基づくスイッチ制御について説明する。
図14は、スイッチ接続状態の一例を示す図である。図14は、PCIeブリッジボード300を介した情報処理装置100と計算装置200-1とのUSB接続が確立する場合のスイッチ切替状態を示す。図14に示すスイッチの切替状態にするため、USB接続管理部140は、図13の接続状態テーブル121を参照し、情報処理装置100と計算装置200-1とを接続させるためのレベル状態を判定する。そして、USB接続管理部140は、情報処理装置100と計算装置200-1とを接続させるためのレベル状態である(SEL1,SEL2,SEL3)=(L,L,L)にするスイッチ制御をスイッチ制御部311にさせる。
【0138】
スイッチ制御部311は、スイッチ制御の開始時は、信号OEをHレベルにして、スイッチsw1~sw5のスイッチ状態を非接続状態にし、各スイッチの切替端子はどの出力端子にも接続されない状態にする。そして、スイッチ制御部311は、信号SEL1,SEL2,SEL3を(SEL1,SEL2,SEL3)=(L,L,L)に切り替え、信号OEをLレベルにして、スイッチsw1~sw5のスイッチ切替状態を確定させる。
【0139】
スイッチsw1は、信号SEL1がLレベルなので、切替端子c1が出力端子b11に接続される。スイッチsw2は、信号SEL2がLレベルなので、切替端子c2が出力端子b21に接続される。さらに、スイッチsw3は、信号SEL3がLレベルなので、切替端子c3が出力端子b31に接続される。
【0140】
その後、信号OEがLレベルに設定されることで、信号SEL1,SEL2,SEL3によって上記のように設定されたスイッチング状態で、スイッチsw1,sw2,sw3が有効化状態になる。このようなスイッチ制御によって、情報処理装置100と計算装置200-1とがPCIeブリッジボード300を介してUSB接続される転送経路r1が確立される。なお、信号SEL3がLレベルなので、スイッチsw4の切替端子c4は出力端子b41に接続され、スイッチsw5の切替端子c5は出力端子b51に接続される。ただし、スイッチsw4,sw5のスイッチングは、転送経路r1の設定には関係しない。
【0141】
このようにして、USB接続管理部140は、少ないスイッチの個数で計算装置200-1~200-6のうちから計算装置200-1とのUSB接続を効率よく確立させることができる。
【0142】
次に、初期システムイメージデータ70の書込処理について説明する。
図15は、初期システムイメージデータの書込処理の一例を示す図である。第2の実施の形態では、リカバリソフトを用いた書込用システムイメージデータ60の書き込みおよび書込用システムイメージデータ60を用いた初期システムイメージデータ70の書き込みの2段階の処理が実行される。
【0143】
まず、情報処理装置100と計算装置200-1とのUSB接続が確立されると、情報処理装置100のインストーラ部150は、計算装置200-1に、リカバリソフトをUSB接続を介して送信し、実行させる。すると、計算装置200-1のインストーラ部220-1が起動する。インストーラ部150は、計算装置200-1に、書込用システムイメージデータ60をUSB接続を介して送信し、eMMC203-1へ書き込むよう指示する。インストーラ部220-1は、受信した書込用システムイメージデータ60をeMMC203-1へ書き込む。インストーラ部150は、計算装置200-2~200-6に対しても、計算装置200-1に対する処理と同様の処理を実行する。
【0144】
そして、計算装置200-1~200-6は、書込用システムイメージデータ60を用いて再起動する。なお、再起動後の計算装置200-1~200-6は、並行して同様の処理を実行するため、計算装置200-1が実行する処理のみ説明する。計算装置200-1が書込用システムイメージデータ60を用いて再起動すると、計算装置200-1の増設eMMC書込部230-1が起動する。情報処理装置100の書込制御部130は、計算装置200-1~200-6に、初期システムイメージデータ70を、PCIeブリッジボード300を仮想的なLANのように用いて送信し、増設eMMCへ書き込むよう指示する。増設eMMC書込部230-1は、受信した初期システムイメージデータ70を増設eMMC204-1へ書き込む。
【0145】
このように、書込制御部130は、リカバリソフトが計算装置200-1~200-6のSoM上のeMMC以外への書込を制限されている場合でも、計算装置200-1~200-6の増設eMMCに初期システムイメージデータ70を書き込むことができる。ここで、計算装置200-1~200-6の増設eMMCに書き込まれた初期システムイメージデータ70は、情報処理システムの運用によって更新されることがある。計算装置200-1のeMMC203-1には、書込用システムイメージデータ60が書き込まれているため、書込制御部130は、増設eMMC書込部230-1と連携して、更新された初期システムイメージデータ70のバックアップおよびリストアができる。
【0146】
以下、初期システムイメージデータ70の書込処理の手順について、詳細に説明する。
図16は、初期システムイメージデータ書込処理の手順の一例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。なお、図16に示す処理では、計算装置200-1~200-6は、並行して同様の処理を実行するため、計算装置200-1~200-6が実行する処理としては計算装置200-1が実行する処理のみ説明する。
【0147】
[ステップS11]情報処理装置100の書込制御部130は、計算装置200-1~200-6にリカバリモードで起動するよう指示する。例えば、書込制御部130は、リカバリモード信号rmをオンにする。そして、書込制御部130は、電源制御部314に対して計算装置200-1~200-6を再起動させる指示を与える。すると、電源制御部314は、計算装置200-1~200-6を再起動させるための電源起動信号s1~s6を出力する。
【0148】
[ステップS12]計算装置200-1のブートローダ210f-1は、リカバリモードで計算装置200-1を起動させる。例えば、ブートローダ210f-1は、リカバリモード信号rmがオンであることを確認し、リカバリ用システムイメージデータ80内のOSで計算装置200-1を起動させる。
【0149】
[ステップS13]書込制御部130は、リカバリソフトを用いて、書込用システムイメージデータ60を計算装置200-1~200-6のeMMCへ書き込む。書込用システムイメージデータ書込処理の詳細については後述する(図17参照)。
【0150】
[ステップS14]書込制御部130は、計算装置200-1~200-6に書込用システムイメージデータ60で再起動するよう指示する。例えば、書込制御部130は、リカバリモード信号rmをオフにして、計算装置200-1~200-6に通常モードに遷移するよう指示する。また、書込制御部130は、計算装置200-1~200-6に、フラグの値を「1」に更新させる。そして、書込制御部130は、電源制御部314に対して計算装置200-1~200-6を再起動させる指示を与える。すると、電源制御部314は、計算装置200-1~200-6を再起動させるための電源起動信号s1~s6を出力する。
【0151】
[ステップS15]ブートローダ210f-1は、書込用システムイメージデータ60で計算装置200-1を再起動させる。例えば、ブートローダ210f-1は、リカバリモード信号rmがオフであることとフラグ90の値が「1」であることとを確認し、eMMC203-1に書き込まれた書込用システムイメージデータ60内のOSで計算装置200-1を起動させる。
【0152】
[ステップS16]計算装置200-1の増設eMMC書込部230-1は、起動する。例えば、増設eMMC書込部230-1は、メモリ202-1に記憶された、書込用システムイメージデータ60に含まれるプログラムをプロセッサ201-1が実行することで起動する。
【0153】
[ステップS17]書込制御部130は、計算装置200-1~200-6に、初期システムイメージデータ70を送信し、増設eMMCに書き込むよう指示する。例えば、書込制御部130は、PCIeブリッジボード300を仮想的なLANのように用いて、初期システムイメージデータ70を計算装置200-1~200-6に送信するようブリッジドライバ110bに指示する。そして、書込制御部130は、計算装置200-1~200-6に、送信した初期システムイメージデータ70を増設eMMCに書き込むよう指示する。
【0154】
[ステップS18]増設eMMC書込部230-1は、情報処理装置100から送信された初期システムイメージデータ70を増設eMMC204-1に書き込む。例えば、増設eMMC書込部230-1は、情報処理装置100からPCIeブリッジボード300を仮想的なLANのように用いて送信された初期システムイメージデータ70を取得するようブリッジドライバ210b-1に指示する。そして、増設eMMC書込部230-1は、取得した初期システムイメージデータ70をeMMCドライバ210d-1を用いて、増設eMMC204-1に書き込む。
【0155】
[ステップS19]書込制御部130は、計算装置200-1~200-6に初期システムイメージデータ70で再起動するよう指示する。例えば、書込制御部130は、計算装置200-1~200-6に、フラグの値を「1」に更新させる。そして、書込制御部130は、電源制御部314に対して計算装置200-1~200-6を再起動させる指示を与える。すると、電源制御部314は、計算装置200-1~200-6を再起動させるための電源起動信号s1~s6を出力する。
【0156】
[ステップS20]ブートローダ210f-1は、初期システムイメージデータ70で計算装置200-1を再起動させる。例えば、ブートローダ210f-1は、リカバリモード信号rmがオフであることとフラグ90の値が「0」であることとを確認し、増設eMMC204-1に書き込まれた初期システムイメージデータ70内のOSで計算装置200-1を起動させる。
【0157】
このように、書込制御部130は、まず、リカバリソフトを用いて、計算装置200-1のeMMC203-1に、書込用システムイメージデータ60を書き込む。ここで、書込制御部130は、書込用システムイメージデータ60を不揮発性のeMMC203-1に書き込むことにより、計算装置200-1の再起動によって、書込用システムイメージデータ60が消去されないようにできる。そして、書込制御部130は、書込用システムイメージデータ60によって起動した計算装置200-1の増設eMMC書込部230-1と連携して、初期システムイメージデータ70を増設eMMC204-1に書き込む。
【0158】
これにより、リカバリソフトがeMMC203-1以外の記憶装置にシステムイメージデータを書き込むことを制限されている場合でも、第2の実施の形態の情報処理システムは、初期システムイメージデータ70を増設eMMC204-1に書き込むことができる。よって、第2の実施の形態の情報処理システムは、記憶装置を複数有する計算装置200-1~200-6に対するシステムイメージデータの書込を容易にすることができる。
【0159】
また、書込用システムイメージデータ60にはブリッジドライバ210b-1が含まれる。これにより、リカバリソフトがデータの送受信にUSBを用いるよう設計されている場合でも、増設eMMC書込部230-1は、PCIeブリッジボード300を仮想的なLANのように用いることができる。そして、書込制御部130と増設eMMC書込部230-1とは、PCIeブリッジボード300を仮想的なLANのように用いることで、USBを用いる場合より高速にデータを送受信できる。
【0160】
また、書込制御部130は、リカバリモード信号rmとフラグ90とによって、計算装置200-1が起動に用いるシステムイメージデータを指示する。これにより、書込制御部130は、増設eMMC204-1内のシステムイメージデータに対する処理の開始および計算装置200-1による増設eMMC204-1内のシステムイメージデータの利用を制御することができる。なお、書込制御部130は、リカバリモード信号rmとフラグ90とによって計算装置200-1に起動に用いるシステムイメージデータを指示していたが、信号のみによって計算装置200-1に指示してもよい。
【0161】
以下、書込用システムイメージデータ60の書込処理の手順について、詳細に説明する。
図17は、書込用システムイメージデータ書込処理の手順の一例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
【0162】
[ステップS31]書込制御部130は、計算装置200-1~200-6のうちの1つの計算装置を選択する。例えば、書込制御部130は、計算装置200-1を選択する。
【0163】
[ステップS32]書込制御部130は、USB接続管理部140にPCIeブリッジボード300を制御させて、情報処理装置100と計算装置200-1とのUSB接続を確立させる。USB接続確立処理の詳細については後述する(図18参照)。
【0164】
[ステップS33]書込制御部130は、インストーラ部150に、書込用システムイメージデータ60を、計算装置200-1のeMMC203-1に書き込むよう指示する。
【0165】
[ステップS34]インストーラ部150は、リカバリソフトを計算装置200-1のメモリ202-1に書き込む。例えば、インストーラ部150は、USB接続を介してリカバリソフトを計算装置200-1に送信し、計算装置200-1にリカバリソフトをメモリ202-1に書き込ませる。
【0166】
[ステップS35]計算装置200-1のインストーラ部220-1は、起動する。例えば、インストーラ部220-1は、メモリ202-1に書き込まれたリカバリソフトをプロセッサ201-1が実行することで実現される。
【0167】
[ステップS36]インストーラ部150は、計算装置200-1に書込用システムイメージデータ60を送信し、eMMC203-1に書き込むよう指示する。例えば、インストーラ部150は、USB接続を介して、書込用システムイメージデータ60を計算装置200-1に送信する。そして、インストーラ部150は、計算装置200-1に、送信した書込用システムイメージデータ60をeMMC203-1に書き込むよう指示する。
【0168】
[ステップS37]インストーラ部220-1は、書込用システムイメージデータ60をeMMC203-1に書き込む。例えば、インストーラ部220-1は、USB接続を介して、書込用システムイメージデータ60を情報処理装置100から受信する。そして、インストーラ部220-1は、受信した書込用システムイメージデータ60をeMMC203-1に書き込む。
【0169】
[ステップS38]書込制御部130は、計算装置200-1~200-6のすべての計算装置を選択したか否かを判定する。書込制御部130は、計算装置200-1~200-6のすべての計算装置を選択したと判定した場合、処理を終了する。また、書込制御部130は、計算装置200-1~200-6に、選択していない計算装置が残っていると判定した場合、処理をステップS31に進める。
【0170】
このようにして、インストーラ部150は、リカバリソフトを用いて計算装置200-1~200-6のeMMCに、書込用システムイメージデータ60を書き込むことができる。なお、インストーラ部150は、リカバリソフトを計算装置200-1のメモリ202-1に書き込むことにより、計算装置200-1の再起動によって、初期システムイメージデータ70を書き込むのに用いないリカバリソフトが消去されるようにできる。次に、USB接続管理部140が、PCIeブリッジボード300を制御して情報処理装置100と計算装置200-1とのUSB接続を確立する処理について、シーケンス図を用いて説明する。
【0171】
図18は、USB接続確立処理の例を示すシーケンス図である。以下、図18に示す処理をステップ番号に沿って説明する。
[ステップS41]情報処理装置100のUSB接続管理部140は、PCIeブリッジボード300のスイッチ制御部311に起動指示を与える。
【0172】
[ステップS42]Hレベルの起動信号en1が、USB接続管理部140からスイッチ制御部311に送信される。
[ステップS43]スイッチ制御部311は、Hレベルの起動信号en1の受信に基づいて、有効化状態になる。
【0173】
[ステップS44]スイッチ制御部311は、有効化状態になったことの結果通知をUSB接続管理部140に返信する。
[ステップS45]USB接続管理部140は、スイッチ制御部311の起動を検出する。
【0174】
[ステップS46]スイッチ制御部311は、USB接続管理部140からの指示に基づいて、信号OEをHレベルにしてスイッチsw1~sw5を非接続状態に設定する。
[ステップS47]スイッチ制御部311は、USB接続管理部140からの指示に基づいて、信号SEL1,SEL2,SEL3を制御して対象の計算装置(例えば、計算装置200-1)が選択される転送経路を設定する。例えば、USB接続管理部140は、接続状態テーブル121から、情報処理装置100と計算装置200-1とを接続させるための信号のレベル状態を判定し、信号SEL1,SEL2,SEL3を判定したレベル状態にするようスイッチ制御部311に指示する。スイッチ制御部311は、(SEL1,SEL2,SEL3)=(L,L,L)のレベル設定をし、PCIeブリッジボード300内に転送経路r1を設定する。
【0175】
[ステップS48]スイッチ制御部311は、USB接続管理部140からの指示に基づいて、信号OEをLレベルにして、スイッチsw1~sw5のスイッチ切替状態を確定する。
【0176】
[ステップS49]スイッチsw1~sw5は、ステップS47で設定されたスイッチ切替状態で有効化状態になる。例えば、スイッチsw1~sw5は、転送経路r1が設定されるスイッチ切替状態で有効化状態になる。
【0177】
このようにして、USB接続管理部140がスイッチ制御部311にスイッチsw1~sw5を制御させることによって、情報処理装置100と計算装置200-1とのUSB接続が確立する。これにより、情報処理装置100と計算装置200-1との間でUSB接続を介したデータの送受信が可能となる。
【0178】
以下、計算装置200-1~200-6の増設eMMC内のシステムイメージデータ(バックアップ対象データ)のバックアップ処理の手順について、詳細に説明する。なお、バックアップ対象データは、初期システムイメージデータ70でもよいし、情報処理システムの運用によって初期システムイメージデータ70が更新されたものでもよい。
【0179】
図19は、バックアップ処理の手順の一例を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。なお、図19に示す処理では、計算装置200-1~200-6は、並行して同様の処理を実行するため、計算装置200-1~200-6が実行する処理としては計算装置200-1が実行する処理のみ説明する。
【0180】
[ステップS51]情報処理装置100の書込制御部130は、計算装置200-1~200-6に書込用システムイメージデータ60で再起動するよう指示する。例えば、書込制御部130は、リカバリモード信号rmをオフにして、計算装置200-1~200-6に通常モードに遷移するよう指示する。また、書込制御部130は、計算装置200-1~200-6に、フラグの値を「1」に更新させる。そして、書込制御部130は、電源制御部314に対して計算装置200-1~200-6を再起動させる指示を与える。すると、電源制御部314は、計算装置200-1~200-6を再起動させるための電源起動信号s1~s6を出力する。
【0181】
[ステップS52]計算装置200-1のブートローダ210f-1は、書込用システムイメージデータ60で計算装置200-1を再起動させる。例えば、ブートローダ210f-1は、リカバリモード信号rmがオフであることとフラグ90の値が「1」であることとを確認し、eMMC203-1に書き込まれた書込用システムイメージデータ60内のOSで計算装置200-1を起動させる。
【0182】
[ステップS53]計算装置200-1の増設eMMC書込部230-1は、起動する。例えば、増設eMMC書込部230-1は、メモリ202-1に記憶された、書込用システムイメージデータ60に含まれるプログラムをプロセッサ201-1が実行することで起動する。
【0183】
[ステップS54]書込制御部130は、計算装置200-1~200-6に、増設eMMC内のバックアップ対象データをバックアップするよう指示する。
[ステップS55]増設eMMC書込部230-1は、増設eMMC204-1内のバックアップ対象データを情報処理装置100に送信する。例えば、増設eMMC書込部230-1は、eMMCドライバ210d-1を用いて、増設eMMC204-1内のバックアップ対象データを読み取る。そして、増設eMMC書込部230-1は、PCIeブリッジボード300を仮想的なLANのように用いて、バックアップ対象データを情報処理装置100に送信するようブリッジドライバ210b-1に指示する。
【0184】
[ステップS56]書込制御部130は、計算装置200-1~200-6から送信されたバックアップ対象データを記憶部120に格納する。例えば、書込制御部130は、計算装置200-1~200-6からPCIeブリッジボード300を仮想的なLANのように用いて送信されたバックアップ対象データを取得するようブリッジドライバ110bに指示する。そして、書込制御部130は、取得したバックアップ対象データを記憶部120に格納する。
【0185】
[ステップS57]書込制御部130は、計算装置200-1~200-6にバックアップ対象データ(元のシステムイメージデータ)で再起動するよう指示する。例えば、書込制御部130は、計算装置200-1~200-6に、フラグの値を「0」に更新させる。そして、書込制御部130は、電源制御部314に対して計算装置200-1~200-6を再起動させる指示を与える。すると、電源制御部314は、計算装置200-1~200-6を再起動させるための電源起動信号s1~s6を出力する。
【0186】
[ステップS58]ブートローダ210f-1は、バックアップ対象データで計算装置200-1を再起動させる。例えば、ブートローダ210f-1は、リカバリモード信号rmがオフであることとフラグ90の値が「0」であることとを確認し、増設eMMC204-1に書き込まれたバックアップ対象データ内のOSで計算装置200-1を起動させる。
【0187】
このように、書込制御部130と増設eMMC書込部230-1とが連携して、増設eMMC204-1内のバックアップ対象データをバックアップする。これにより、リカバリソフトがeMMC203-1以外の記憶装置のシステムイメージデータを読み取ることを制限されている場合でも、第2の実施の形態の情報処理システムは、増設eMMC204-1内のシステムイメージデータをバックアップできる。
【0188】
以下、計算装置200-1~200-6の増設eMMC内のシステムイメージデータ(リストア対象データ)のリストア処理の手順について、詳細に説明する。なお、リストア対象データは、初期システムイメージデータ70でもよいし、情報処理システムの運用によって初期システムイメージデータ70が更新されたものでもよい。
【0189】
図20は、リストア処理の手順の一例を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。なお、図20に示す処理では、計算装置200-1~200-6は、並行して同様の処理を実行するため、計算装置200-1~200-6が実行する処理としては計算装置200-1が実行する処理のみ説明する。
【0190】
[ステップS61]情報処理装置100の書込制御部130は、計算装置200-1~200-6に書込用システムイメージデータ60で再起動するよう指示する。例えば、書込制御部130は、リカバリモード信号rmをオフにして、計算装置200-1~200-6に通常モードに遷移するよう指示する。また、書込制御部130は、計算装置200-1~200-6に、フラグの値を「1」に更新させる。そして、書込制御部130は、電源制御部314に対して計算装置200-1~200-6を再起動させる指示を与える。すると、電源制御部314は、計算装置200-1~200-6を再起動させるための電源起動信号s1~s6を出力する。
【0191】
[ステップS62]計算装置200-1のブートローダ210f-1は、書込用システムイメージデータ60で計算装置200-1を再起動させる。例えば、ブートローダ210f-1は、リカバリモード信号rmがオフであることとフラグ90の値が「1」であることとを確認し、eMMC203-1に書き込まれた書込用システムイメージデータ60内のOSで計算装置200-1を起動させる。
【0192】
[ステップS63]計算装置200-1の増設eMMC書込部230-1は、起動する。例えば、増設eMMC書込部230-1は、メモリ202-1に記憶された、書込用システムイメージデータ60に含まれるプログラムをプロセッサ201-1が実行することで起動する。
【0193】
[ステップS64]書込制御部130は、計算装置200-1~200-6に、記憶部120に記憶されたバックアップデータ(例えば、バックアップデータ122-1)を送信しリストアを指示する。例えば、書込制御部130は、PCIeブリッジボード300を仮想的なLANのように用いて、バックアップデータ122-1を計算装置200-1~200-6に送信するようブリッジドライバ110bに指示する。書込制御部130は、計算装置200-1~200-6に、送信したバックアップデータ122-1で増設eMMCのリストア対象データを書き替えるよう指示する。
【0194】
[ステップS65]増設eMMC書込部230-1は、情報処理装置100から送信されたバックアップデータ122-1で、増設eMMC204-1内のリストア対象データを書き替える。例えば、増設eMMC書込部230-1は、情報処理装置100からPCIeブリッジボード300を仮想的なLANのように用いて送信されたバックアップデータ122-1を取得するようブリッジドライバ210b-1に指示する。そして、増設eMMC書込部230-1は、eMMCドライバ210d-1を用いて、バックアップデータ122-1で増設eMMC204-1内のリストア対象データを書き替える。
【0195】
[ステップS66]書込制御部130は、計算装置200-1~200-6にバックアップデータ122-1で再起動するよう指示する。例えば、書込制御部130は、計算装置200-1~200-6に、フラグの値を「0」に更新させる。そして、書込制御部130は、電源制御部314に対して計算装置200-1~200-6を再起動させる指示を与える。すると、電源制御部314は、計算装置200-1~200-6を再起動させるための電源起動信号s1~s6を出力する。
【0196】
[ステップS67]ブートローダ210f-1は、バックアップデータ122-1で計算装置200-1を再起動させる。例えば、ブートローダ210f-1は、リカバリモード信号rmがオフであることとフラグ90の値が「0」であることとを確認し、増設eMMC204-1に書き込まれたバックアップデータ122-1内のOSで計算装置200-1を起動させる。
【0197】
このように、書込制御部130と増設eMMC書込部230-1とが連携して、バックアップデータ122-1で増設eMMC204-1内のリストア対象データを書き替える。これにより、リカバリソフトがeMMC203-1以外の記憶装置にシステムイメージデータを書き込むことを制限されている場合でも、第2の実施の形態の情報処理システムは、増設eMMC204-1内のシステムイメージデータをリストアできる。
【0198】
第2の実施の形態の情報処理システムによれば、情報処理装置100は、eMMC203-1にシステムイメージデータを書き込むためのリカバリソフトを計算装置200-1に実行させることで、増設eMMC204-1にシステムイメージデータを書き込むための書込用システムイメージデータ60をeMMC203-1へ書き込む。情報処理装置100は、計算装置200-1を書込用システムイメージデータ60で起動させる。そして、情報処理装置100は、計算装置200-1に、書込用システムイメージデータ60によって初期システムイメージデータ70を増設eMMC204-1へ書き込ませる。これにより、リカバリソフトが増設eMMC204-1へのシステムイメージデータの書込を制限されている場合であっても、第2の実施の形態の情報処理システムは、増設eMMC204-1へ初期システムイメージデータ70を書き込むことができる。よって、第2の実施の形態の情報処理システムは、記憶装置を複数有する計算装置200-1に対するシステムイメージデータの書込を容易にすることができる。
【0199】
また、情報処理装置100は、計算装置200-1のメモリ202-1へリカバリソフトを書き込み、リカバリソフトを計算装置200-1に実行させることで、書込用システムイメージデータ60を不揮発性のeMMC203-1へ書き込む。これにより、第2の実施の形態の情報処理システムは、計算装置200-1の再起動によって、初期システムイメージデータ70を書き込むのに用いないリカバリソフトが消去されるようにする。また、第2の実施の形態の情報処理システムは、計算装置200-1の再起動によって、初期システムイメージデータ70を書き込むのに用いる書込用システムイメージデータ60が消去されないようにすることができる。
【0200】
また、計算装置200-1は、リカバリソフトを実行することで、USBを用いて情報処理装置100から書込用システムイメージデータ60を取得し、書込用システムイメージデータ60をeMMC203-1へ書き込む。書込用システムイメージデータ60は、PCIeブリッジボード300を仮想的なLANのように用いるためのブリッジドライバ210b-1を含む。書込用システムイメージデータ60で起動した計算装置200-1は、PCIeブリッジボード300を仮想的なLANのように用いて情報処理装置100から初期システムイメージデータ70を取得し、初期システムイメージデータ70を増設eMMC204-1へ書き込む。これにより、第2の実施の形態の情報処理システムは、リカバリソフトが使用を制限されているデータの送受信経路を用いた、情報処理装置100と計算装置200-1との初期システムイメージデータ70の送受信を可能にすることができる。
【0201】
情報処理装置100は、eMMC203-1へ書き込まれた書込用システムイメージデータ60、増設eMMC204-1へ書き込まれた初期システムイメージデータ70およびeMMC203-1にあらかじめ記憶された、リカバリソフトを実行するためのリカバリ用システムイメージデータ80のうちのいずれのシステムイメージデータで計算装置200-1が起動するかを計算装置200-1に指示する。計算装置200-1は、情報処理装置100から指示されたシステムイメージデータで起動する。これにより、第2の実施の形態の情報処理システムは、情報処理装置100によって、増設eMMC204-1へのシステムイメージデータの書込処理の開始および計算装置200-1による増設eMMC204-1内のシステムイメージデータの利用を制御できる。
【0202】
また、情報処理装置100は、書込用システムイメージデータ60で起動した計算装置200-1に、増設eMMC204-1に記憶されたバックアップ対象データを情報処理装置100へ送信させる。そして、情報処理装置100は、バックアップ対象データを記憶部120に格納する。これにより、第2の実施の形態の情報処理システムは、リカバリソフトが増設eMMC204-1に記憶されたシステムイメージデータの読取を制限されている場合であっても、増設eMMC204-1に対するバックアップ処理を容易にすることができる。
【0203】
また、情報処理装置100は、書込用システムイメージデータ60で起動した計算装置200-1へバックアップデータ122-1を送信する。そして、情報処理装置100は、書込用システムイメージデータ60で起動した計算装置200-1に、増設eMMC204-1に記憶されたシステムイメージデータをバックアップデータ122-1に書き替えさせる。これにより、第2の実施の形態の情報処理システムは、リカバリソフトが増設eMMC204-1へのシステムイメージデータの書込を制限されている場合であっても、増設eMMC204-1に対するリストア処理を容易にすることができる。
【0204】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0205】
1 ソフトウェア
10 情報処理装置
11 処理部
20 計算装置
21 揮発性記憶領域
22 第1記憶装置
23 第2記憶装置
24 処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20