<本開示の実施形態の概要>
以下、本開示の実施形態の概要を列記して説明する。
(1) 本実施形態に係る通信装置は、データを格納するメモリと、前記メモリに格納されたデータを読み出し可能なプロセッサと、主信号の通信に関する機能を提供する第1ハードウェア機能部と、前記プロセッサと連携した機能を提供する第2ハードウェア機能部と、前記プロセッサ及び前記第1ハードウェア機能部のそれぞれを初期化することなく、更新後のオペレーティングシステムである第2オペレーティングシステムを起動するための起動コード、前記第2オペレーティングシステムの実行可能コードである第2コード、及び、更新前のオペレーティングシステムである第1オペレーティングシステムによる前記第2ハードウェア機能部の制御に用いられる第1制御情報を含む引継データを、前記第1オペレーティングシステムの実行可能コードである第1コードの前記メモリ内における格納領域とは異なる領域に格納する格納処理部と、前記プロセッサに、前記第1オペレーティングシステムを停止させ、前記起動コード及び前記第2コードを実行させことにより前記第2オペレーティングシステムを起動させる切替処理部と、前記第2オペレーティングシステムが起動される場合に、前記プロセッサに、前記第1制御情報を前記引継データから取得させる制御情報取得処理部と、を備える。これにより、実行中の第1オペレーティングシステム上で第2オペレーティングシステムをライブブートすることができる。第2オペレーティングシステムのライブブートにおいて、第1ハードウェア機能部が初期化されないため、主信号の通信機能を維持したまま、オペレーティングシステムを更新することができる。プロセッサ及びハードウェア機能部が1つの集積回路に実装されたSoC(System on a Chip)の場合、ブートストラップを経ずにオペレーティングシステムを起動するライブブートでは、ブートストラップにおいてプロセッサによって取得されるハードウェア機能部の制御情報が取得されない。上記開示により、第2オペレーティングシステムの起動時にプロセッサが第1制御情報を取得することができるため、SoCにおいてもライブブートが可能となる。なお、「ライブブート」とは、実行中のオペレーティングシステム上で、新たなオペレーティングシステムの実行可能コードをメモリにロードすることをいう。
(2) 前記切替処理部は、前記第2オペレーティングシステムの起動時に、前記プロセッサの初期化を伴わずに前記第2オペレーティングシステムが起動されることを示す通知情報を前記プロセッサに与え、前記制御情報取得処理部は、前記プロセッサに前記通知情報が与えられた場合に、前記プロセッサに、前記第1制御情報を前記引継データから取得させてもよい。これにより、オペレーティングシステムの起動時に、ブートストラップを経た通常の起動であるのかライブブートであるのかを、プロセッサに通知情報が与えられたか否かによって制御情報取得処理部が判断することができる。ライブブートの場合、第2オペレーティングシステムの起動時にプロセッサが第1制御情報を取得することができる。
(3) 前記メモリ、前記プロセッサ、及び前記第2ハードウェア機能部は、1つの集積回路に含まれてもよい。これにより、SoCにより通信装置を構成することができる。
(4) 前記通信装置は、前記第1オペレーティングシステムの起動時に前記プロセッサによって取得された前記第1制御情報に基づいて前記引継データを生成し、生成された前記引継データを記憶装置に格納する引継データ生成部をさらに備え、前記格納処理部は、前記記憶装置に格納された前記引継データを前記メモリに格納してもよい。これにより、引継データを第2オペレーティングシステムの起動時にメモリにロードすることができる。
(5) 前記制御情報取得処理部は、前記第2オペレーティングシステムの起動時に、前記第2オペレーティングシステムによる前記第2ハードウェア機能部の制御に用いられる第2制御情報が前記プロセッサによって取得された場合に、前記第2制御情報を前記引継データに追加してもよい。これにより、第1オペレーティングシステムでは必要なかったが第2オペレーティングシステムで必要となった第2制御情報を、次回のライブブートのために引継データに追加することができる。
(6) 本実施形態に係る通信装置は、ソフトウェアを実行可能なプロセッサと、主信号の通信に関する機能を提供する第1ハードウェア機能部と、前記主信号の通信に関する機能とは異なる機能を提供する第3ハードウェア機能部と、前記プロセッサ、前記第1ハードウェア機能部、及び前記第3ハードウェア機能部に再起動の指令信号を出力することが可能な制御回路と、前記プロセッサによって実行されるソフトウェアが更新される場合に、再起動の対象を設定する再起動対象設定部と、を備え、前記再起動対象設定部によって、前記プロセッサ及び前記第3ハードウェア機能部が再起動の対象に設定され、前記第1ハードウェア機能部が再起動の対象に設定されない場合、前記制御回路は、前記プロセッサ及び前記第3ハードウェア機能部に再起動の指令信号を出力し、前記第1ハードウェア機能部に再起動の指令信号を出力しない。これにより、第1ハードウェア機能部が再起動の対象から除外され、プロセッサが再起動の対象に含まれるため、主信号の通信機能を維持したまま、オペレーティングシステムを含むソフトウェアの更新を行うことができる。
(7) 前記制御回路は、前記再起動の指令信号を出力した場合、前記制御回路を再起動してもよい。これにより、制御回路を再起動の対象に含めることができる。
(8) 更新される前記ソフトウェアは、オペレーティングシステムを含んてもよい。これにより、主信号の通信機能を維持したまま、オペレーティングシステムを更新することができる。
(9) 更新される前記ソフトウェアは、ブートローダを含んでもよい。これにより、主信号の通信機能を維持したまま、プロセッサの再起動が必要なブートローダを更新することができる。
(10) 前記第1ハードウェア機能部は、前記主信号を送受信する送受信器、前記主信号を処理するための信号処理回路、並びに、前記送受信器及び前記信号処理回路にクロック信号を供給するクロック発生器を含んでもよい。これにより、送受信器、信号処理回路、及びクロック発生器を初期化することなく、オペレーティングシステムを含むソフトウェアを更新することができる。
(11) 前記通信装置は、前記プロセッサで実行される、前記第1ハードウェア機能部を制御するためのソフトウェアを更新する前に、前記ソフトウェアの内部情報に含まれる前記第1ハードウェア機能部の設定情報を、記憶装置に格納する情報退避部と、前記ソフトウェアの更新後に、前記記憶装置に格納された前記設定情報を、更新後の前記ソフトウェアの内部情報として復旧する復旧部と、をさらに備えてもよい。これにより、ソフトウェアの更新の際に内部情報から失われる第1ハードウェア機能部の設定情報を、ソフトウェア更新後に復旧することができる。
(12) 前記情報退避部は、前記内部情報に含まれる前記第1ハードウェア機能部の状態情報を、前記記憶装置に格納し、前記通信装置は、現在の前記第1ハードウェア機能部の状態を示す状態情報と、前記記憶装置に格納された前記状態情報とに差異がある場合、ユーザに通知する通知部をさらに備えてもよい。これにより、ソフトウェアの更新の際に第1ハードウェア機能部の状態が変化した場合、当該変化があったことをソフトウェアの更新後にユーザに通知することができる。
(13) 本実施形態に係るソフトウェア更新方法は、通信装置におけるソフトウェアを更新するソフトウェア更新方法であって、プロセッサ、及び、主信号の通信に関する機能を提供する第1ハードウェア機能部のそれぞれを初期化することなく、更新後のオペレーティングシステムである第2オペレーティングシステムを起動するための起動コード、前記第2オペレーティングシステムの実行可能コードである第2コード、及び、更新前のオペレーティングシステムである第1オペレーティングシステムによる前記第2ハードウェア機能部の制御に用いられる第1制御情報を含む引継データを、前記第1オペレーティングシステムの実行可能コードである第1コードのメモリ内における格納領域とは異なる領域に格納するステップと、前記プロセッサに、前記第1オペレーティングシステムを停止させ、前記起動コード及び前記第2コードを実行させことにより前記第2オペレーティングシステムを起動させるステップと、前記第2オペレーティングシステムが起動される場合に、前記プロセッサに、前記第1制御情報を前記引継データから取得させるステップと、を含む。これにより、第2オペレーティングシステムのライブブートにおいて、第1ハードウェア機能部が初期化されないため、主信号の通信機能を維持したまま、オペレーティングシステムを更新することができる。さらに、第2オペレーティングシステムの起動時に第1制御情報を取得することができるため、SoCにおいてもライブブートが可能となる。
(14) 本実施形態に係るソフトウェア更新方法は、通信装置におけるソフトウェアを更新するソフトウェア更新方法であって、プロセッサによって実行されるソフトウェアが更新される場合に、プロセッサ、主信号の通信に関する機能を提供する第1ハードウェア機能部、及び前記主信号の通信に関する機能とは異なる機能を提供する第3ハードウェア機能部の中から、再起動の対象を設定するステップと、前記プロセッサ及び前記第3ハードウェア機能部が再起動の対象に設定され、前記第1ハードウェア機能部が再起動の対象に設定されない場合、前記第1ハードウェア機能部に再起動の指令信号を出力せず、前記プロセッサ及び前記第3ハードウェア機能部に再起動の指令信号を出力するステップと、を含む。これにより、第1ハードウェア機能部が再起動の対象から除外され、プロセッサが再起動の対象に含まれるため、主信号の通信機能を維持したまま、オペレーティングシステムを含むソフトウェアの更新を行うことができる。
(15) 本実施形態に係るコンピュータプログラムは、通信装置におけるソフトウェアを更新するためのコンピュータプログラムであって、前記通信装置に、プロセッサ、及び、主信号の通信に関する機能を提供する第1ハードウェア機能部のそれぞれを初期化することなく、更新後のオペレーティングシステムである第2オペレーティングシステムを起動するための起動コード、前記第2オペレーティングシステムの実行可能コードである第2コード、及び、更新前のオペレーティングシステムである第1オペレーティングシステムによる前記第2ハードウェア機能部の制御に用いられる第1制御情報を含む引継データを、前記第1オペレーティングシステムの実行可能コードである第1コードのメモリ内における格納領域とは異なる領域に格納するステップと、前記プロセッサに、前記第1オペレーティングシステムを停止させ、前記起動コード及び前記第2コードを実行させことにより前記第2オペレーティングシステムを起動させるステップと、前記第2オペレーティングシステムが起動される場合に、前記プロセッサに、前記第1制御情報を前記引継データから取得させるステップと、を実行させる。これにより、第2オペレーティングシステムのライブブートにおいて、第1ハードウェア機能部が初期化されないため、主信号の通信機能を維持したまま、オペレーティングシステムを更新することができる。さらに、第2オペレーティングシステムの起動時に第1制御情報を取得することができるため、SoCにおいてもライブブートが可能となる。
(16) 本実施形態に係るコンピュータプログラムは、通信装置におけるソフトウェアを更新するためのコンピュータプログラムであって、前記通信装置に、プロセッサによって実行されるソフトウェアが更新される場合に、プロセッサ、主信号の通信に関する機能を提供する第1ハードウェア機能部、及び前記主信号の通信に関する機能とは異なる機能を提供する第3ハードウェア機能部の中から、再起動の対象を設定するステップと、前記プロセッサ及び前記第3ハードウェア機能部が再起動の対象に設定され、前記第1ハードウェア機能部が再起動の対象に設定されない場合、前記第1ハードウェア機能部に再起動の指令信号を出力せず、前記プロセッサ及び前記第3ハードウェア機能部に再起動の指令信号を出力するステップと、を実行させる。これにより、第1ハードウェア機能部が再起動の対象から除外され、プロセッサが再起動の対象に含まれるため、主信号の通信機能を維持したまま、オペレーティングシステムを含むソフトウェアの更新を行うことができる。
<本開示の実施形態の詳細>
以下、図面を参照しつつ、本開示の実施形態の詳細を説明する。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
[1.中継システムの構成]
図1は、実施形態に係る通信システム10の構成の一例を示す模式図である。図1に示される通信システム10は、モバイル通信ネットワークに含まれるモバイルフロントホール(MFH)である。通信システム10は、親局20と、子局30とを備える。親局20は、4G(第4世代移動通信システム)の場合、ベースバンド装置(BBU)であり、5G(第5世代移動通信システム)の場合、CU(Centralized Unit)及びDU(Distributed Unit)の機能を有する装置である。子局30は、4Gの場合、遠隔無線ヘッド(RRH)であり、5G(第5世代移動通信システム)の場合、RU(Radio Unit)である。
通信システム10は、親局20と子局30との間に中継システム100を含む。中継システム100は、親局20と子局30との間の通信を中継する。なお、本実施形態ではMFHに適用される中継システム100が説明されるが、これに限定されない。モバイルミッドホール(MMH)又はモバイルバックホール(MBH)に中継システム100を適用してもよい。
中継システム100は、互いに対抗する2つの通信装置200を含む。通信装置200は、ITU-T(International Telecommunication Union Telecommunication Standardization Sector) によって規定される通信規格であるOTN(Optical Transport Network)に準拠した光伝送装置である。一方の通信装置200は、親局20に光ファイバケーブルによって接続される。他方の通信装置200は、子局30に光ファイバケーブルによって接続される。2つの通信装置200は、1本の光ファイバケーブル25を介して互いに接続される。
2つの通信装置200は、互いに遠隔した拠点に配置される。光ファイバケーブル25は、例えば20km以上の長さを有する。光ファイバケーブル25には、例えばダークファイバが利用される。
[2.通信装置のハードウェア構成]
図2は、実施形態に係る通信装置の構成の一例を示すブロック図である。
通信装置200は、処理回路210と、制御回路220と、光トランシーバ231,233と、信号処理回路232と、PLL(Phase Locked Loop)234と、第2制御回路241と、L2スイッチ(レイヤ2スイッチ。「L2SW」とも表記する。)242と、PHY243と、トランシーバ244とを含む。
処理回路210は、通信装置200の全体を制御する。処理回路210は、プロセッサ211と、不揮発性メモリ212と、揮発性メモリ213と、通信インタフェース(I/F)214と、内部通信管理部215Aと、キュー管理部215Bと、バッファ管理部215Cと、フレーム管理部215Dとを含む。処理回路210はSoCであり、プロセッサ211、不揮発性メモリ212、揮発性メモリ213、通信I/F214、内部通信管理部215A、キュー管理部215B、バッファ管理部215C、及びフレーム管理部215Dは、1つの集積回路に実装されている。
揮発性メモリ213は、DRAM(Dynamic Random Access Memory)である。揮発性メモリ213は、SRAM(Static Random Access Memory)であってもよい。不揮発性メモリ212は、データを書き込み可能であり、例えばフラッシュメモリである。不揮発性メモリ212は、ハードディスクであってもよい。不揮発性メモリ212には、オペレーティングシステム(OS)250、ブートローダ251、デバイスファイル252、起動プログラム253、及びアプリケーションソフトウェア(APP)254が格納される。なお、不揮発性メモリ212に格納されているオペレーティングシステム250、ブートローダ251、起動プログラム253、及びアプリケーションソフトウェア254は、実行形式のプログラムコードである。通信装置200は、コンピュータを備えて構成され、通信装置200の各機能は、前記コンピュータの記憶装置に記憶されたコンピュータプログラムであるオペレーティングシステム250及びアプリケションソフトウェア254がプロセッサ211によって実行されることで発揮される。
プロセッサ211は、例えばCPU(Central Processing Unit)である。ただし、プロセッサ211は、CPUに限られない。プロセッサ211は、GPU(Graphics Processing Unit)であってもよい。具体的な一例では、プロセッサ211は、マルチコアCPUである。プロセッサ211は、コンピュータプログラムを実行可能に構成される。
オペレーティングシステム250は、通信装置200のシステム全体を管理し、アプリケーションソフトウェア254に共通の利用環境を提供する。オペレーティングシステム250は、カーネルを含む。ブートローダ251は、プロセッサ211がリセットされた後に起動し、オペレーティングシステム250(の実行形式のプログラムコード)を揮発性メモリ213にロードする。デバイスファイル252は、通信装置200に実装された各デバイスを制御するためのドライバである。起動プログラム253は、オペレーティングシステムをライブブートするためのプログラムである。つまり、起動プログラム253は、オペレーティングシステム250の実行中に、ブートローダ251の代わりに新しいオペレーティングシステム(カーネル)を起動するためのプログラムである。アプリケーションソフトウェア254は、通信装置200の各種の機能を実現するためのプログラムである。
通信I/F214は、イーサネットインタフェースである(「イーサネット」は登録商標)。通信I/F214は、保守管理用の端末装置との通信に用いられる。
内部通信管理部215A、キュー管理部215B、バッファ管理部215C、及びフレーム管理部215Dのそれぞれはハードウェア回路である。内部通信管理部215Aは、SoC内の通信を管理する。キュー管理部215Bは、CPUコアとアクセラレータ(SoC内の機能ユニット)とのパケット送受信に用いられるキューを管理する。バッファ管理部215Cは、メモリ領域のバッファを管理したり、要求に応じてバッファの取得及び開放を行ったりする。フレーム管理部215Dは、イーサネットコントローラであり、各種のオフロードを行ったり、プロトコル又はアドレスによるパケットの種別判定及び仕分けを行ったりする。
キュー管理部215B、バッファ管理部215C、及びフレーム管理部215Dは、プロセッサ211と連携した機能を提供する第2ハードウェア機能部の例である。
制御回路220は、例えば、保守管理用の端末装置との通信を制御するためのハードウェア回路である。制御回路220は、例えばFPGA(Field Programmable Gate Array)によって構成されている。ただし、制御回路220の構成はこれに限られない。制御回路220は、例えば、ゲートアレイによって構成されてもよいし、ASIC(Application Specific Integrated Circuit)によって構成されてもよい。
制御回路220は、プロセッサ211、光トランシーバ231,233、信号処理回路232、PLL234、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244に信号線によって接続されている。制御回路220は、再起動制御部221を含む。制御回路220は、プロセッサ211、光トランシーバ231,233、信号処理回路232、PLL234、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244のそれぞれに、再起動を指令するためのリセット信号を送信することができる。
光トランシーバ231は、光ファイバケーブルを介して親局20又は子局30に接続されるクライアントポートである。光トランシーバ231は、例えば、25Gイーサネットに対応している。光トランシーバ233は、対向装置である通信装置200に光ファイバケーブル25を介して接続される通信ポートである。光トランシーバ233は、例えば、100Gbpsの光信号を送受信することが可能である。光トランシーバ231,233は、光信号と電気信号とを相互変換する。
信号処理回路232は、親局20又は子局30から受信した複数のクライアント信号(主信号)に所定の処理を施すためのハードウェア回路である。具体的には、信号処理回路232は、クライアント信号を多重化し、1つの多重化信号を生成する。例えば、信号処理回路232は、送信回路及び受信回路、及びフレーム処理回路を含む(図示せず)。受信回路は光トランシーバ231から出力された電気信号に対して所定の信号処理を施す。通信装置200はマックスポンダである。フレーム処理回路は、複数のクライアント信号をOTNフレームに変換するフレーマの機能を有する。信号処理回路232は、生成されたOTNフレームの電気信号を、光トランシーバ233へ出力する。さらに、フレーム処理回路は、OTNフレームを複数のクライアント信号に変換するデフレーマの機能を有する。光トランシーバ233から出力されたOTNフレームの電気信号は、フレーム処理回路に与えられ、OTNフレームから複数のクライアント信号が復元される。送信回路は、フレーム処理回路から出力されたクライアント信号である電気信号に対して所定の信号処理を施し、光トランシーバ231へ出力する。
PLL234は、クロック信号を生成し、生成されたクロック信号を光トランシーバ231,233及び信号処理回路232へ供給する。
光トランシーバ231,233、信号処理回路232、及びPLL234は、主信号の通信に関する機能を提供する第1ハードウェア機能部の例である。
第2制御回路241は、例えば、制御回路220を補助するためのハードウェア回路であり、保守管理用の端末装置との通信を制御する。第2制御回路241は、例えばFPGA,ゲートアレイ等のプログラマブルロジックデバイス又はASICによって構成される。
L2スイッチ242、PHY243、及びトランシーバ244は保守管理用の端末装置との通信に用いられる。通信I/F214はL2スイッチ242のポートに接続されている。L2スイッチ242の他の1つのポートは、PHY243を介してトランシーバ244に接続されている。トランシーバ244は、RJ45コネクタを含み、イーサネットケーブルのコネクタが接続される。PHY243は、イーサネット物理トランシーバである。
第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244は、主信号の通信に関する機能とは異なる機能を提供する第3ハードウェア機能部の例である。
[3.通信装置の機能]
図3は、実施形態に係る通信装置の機能の一例を示すブロック図である。通信装置200は、第1格納処理部211Aと、引継データ生成部211Bと、第2格納処理部211Cと、切替処理部211Dと、制御情報取得処理部211Eと、再起動対象設定部211Fと、情報退避部211Gと、復旧部211Hと、通知部211Iの各機能を有する。
本実施形態に係る通信装置200は、オペレーティングシステムを実行したままアプリケーション又は制御回路220のファームウェアを更新する処理(以下、「従来方式」ともいう)と、ライブブートによりソフトウェアを更新する処理(以下、「ライブブート方式」ともいう)と、再起動対象を選択してソフトウェアを更新する処理(以下、「再起動対象選択方式」ともいう)を選択して実行することができる。従来方式は、例えば、特開2014-78784号公報に開示されたソフトウェア更新方法である。従来方式、ライブブート方式、及び再起動対象選択方式のいずれも、主信号の通信を維持したままソフトウェア更新を行うことができる。
図4は、従来方式、ライブブート方式、及び再起動対象選択方式のそれぞれにおける更新対象のソフトウェアの組み合わせを説明するための図である。従来方式では、ブートローダ及びオペレーティングシステムの更新を行うことができない。したがって、ブートローダ及びオペレーティングシステムのいずれか1つ又は両方が更新対象に含まれる場合、従来方式は選択されない。アプリケーションソフトウェア(図4では「アプリケーション」と表記)及び制御回路220のファームウェア(以下、単に「ファームウェア」ともいう)のいずれか1つ又は両方が更新対象である場合に、従来方式が選択される。ライブブート方式では、オペレーティングシステムの更新は可能であるが、ブートローダの更新はできない。したがって、更新対象にオペレーティングシステムが含まれ、ブートローダが含まれない場合に、ライブブート方式が選択される。再起動対象選択方式では、ブートローダの更新が可能である。したがって、更新対象にブートローダが含まれる場合に、再起動対象選択方式が選択される。再起動対象選択方式では、更新対象にブートローダが含まれていれば、更新対象にオペレーティングシステムも含まれ得る。
再び図3を参照する。第1格納処理部211Aは、プロセッサ211を再起動し、ブートストラップによってオペレーティングシステム250を起動する(以下、「通常ブート」という)。図5Aは、通常ブートにおいて揮発性メモリにロードされるデータを説明する図である。第1格納処理部211Aは、ブートローダ251を実行し、第1オペレーティングシステム250A及び第1デバイスファイル252Aを揮発性メモリ213にロード(格納)する。第1オペレーティングシステム250Aは、更新前のオペレーティングシステムである。第1デバイスファイル252Aは、第1オペレーティングシステム250Aによって用いられるデバイスファイルである。第1デバイスファイル252Aは、通信I/F214、内部通信管理部215A、キュー管理部215B、バッファ管理部215C、フレーム管理部215D、制御回路220、光トランシーバ231,233、信号処理回路232、PLL234、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244の第1オペレーティングシステム250Aによる制御に用いられる。
通常ブートにおいて、SoCである処理回路210が再起動したとき、ブートローダの起動前に、プロセッサ211はマイクロコードをロードする等の初期化処理を実行する。初期化が完了すると、ブートストラップが実行され、オペレーティングシステムが起動する。さらにプロセッサ211は、キュー管理部215B、バッファ管理部215C、及びフレーム管理部215Dの制御情報である第1制御情報を取得する。第1制御情報は、例えばメモリのアドレス等、キュー管理部215B、バッファ管理部215C、及びフレーム管理部215Dのそれぞれの制御に使用される情報である。第1制御情報は、オペレーティングシステム250及びアプリケーションソフトウェア254によって利用される。
再び図3を参照する。引継データ生成部211Bは、取得された第1制御情報から、引継データを生成する。引継データは、ライブブートされたオペレーティングシステムに、第1制御情報を与えるためのデータである。図6Aは、引継データの一例を示す図である。不揮発性メモリ212に保存された第1制御情報には、キュー管理部215Bの制御に用いられるキュー制御情報、バッファ管理部215Cの制御に用いられるバッファ制御情報、及びフレーム管理部215Dの制御に用いられるフレーム制御情報が含まれる。引継データ生成部211Bは、第1制御情報から、キュー制御情報、バッファ制御情報、及びフレーム制御情報のそれぞれを抽出し、引継データ300を生成する。例えば、引継データ300は、TLV(type-length-value)形式のデータである。引継データ300では、キュー制御情報が、キュー制御情報に割り当てられたタイプ「1」及びキュー制御情報の長さ「X」に対応付けられている。バッファ制御情報は、バッファ制御情報に割り当てられたタイプ「2」及びバッファ制御情報の長さ「Y」に対応付けられている。フレーム制御情報は、フレーム制御情報に割り当てられたタイプ「3」及びフレーム制御情報の長さ「Z」に対応付けられている。
[3.1.ライブブート方式]
再び図3を参照する。第2格納処理部211Cは、格納処理部の一例である。第2格納処理部211Cは、更新されたオペレーティングシステムをライブブートする。図5Bは、ライブブートにおいて揮発性メモリにロードされるデータを説明する図である。第2格納処理部211Cは、プロセッサ211、並びに、光トランシーバ231,233、信号処理回路232、及びPLL234(つまり、第1ハードウェア機能部)のそれぞれを初期化することなく、起動プログラム253、第2オペレーティングシステム250B、及び第2デバイスファイル252Bを揮発性メモリ213にロード(格納)する。起動プログラム253、第2オペレーティングシステム250B、及び第2デバイスファイル252Bの揮発性メモリ213における格納領域は、第1オペレーティングシステム及び第1デバイスファイル252Aの格納領域と異なる領域である。第2オペレーティングシステム250Bは、更新後のオペレーティングシステムである。第2デバイスファイル252Bは、第2オペレーティングシステム250Bによって用いられるデバイスファイルである。第2デバイスファイル252Bは、通信I/F214、内部通信管理部215A、キュー管理部215B、バッファ管理部215C、フレーム管理部215D、高速I/O管理部215E、制御回路220、光トランシーバ231,233、信号処理回路232、PLL234、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244の第2オペレーティングシステム250Bによる制御に用いられる。
第2格納処理部211Cは、さらに、引継データ生成部211Bによって生成された引継データ300を揮発性メモリ213にロードする。
再び図3を参照する。切替処理部211Dは、プロセッサ211に、第1オペレーティングシステム250Aを停止させ、起動プログラム253及び第2オペレーティングシステム250Bを実行させる。つまり、切替処理部211Dは、第1オペレーティングシステム250Aから第2オペレーティングシステム250Bに実行対象を切り替える。これにより、第2オペレーティングシステム250Bが起動する。
切替処理部211Dは、第2オペレーティングシステム250Bの起動時に、ライブブートであることを示す通知情報をプロセッサ211に与える。通知情報の一例は、ライブブートであることを示すフラグであり、他の例はライブブートデあることを示すコマンドラインである。例えば、切替処理部211Dは、第1オペレーティングシステム250Aの停止前に、通知情報を保存する。切替処理部211Dは、第2オペレーティングシステム250Bの起動時に、保存された通知情報をプロセッサ211に与える。これにより、プロセッサ211は、今回のオペレーティングシステムの起動がライブブートであるか否かを判定することができる。
制御情報取得処理部211Eは、第2オペレーティングシステム250Bが起動される場合に、揮発性メモリ213にロードされた引継データ300から、プロセッサ211に第1制御情報を取得させる。ライブブートでは、SoCである処理回路210が再起動されない。通常ブートでは、キュー管理部215B、バッファ管理部215C、及びフレーム管理部215Dの制御情報(第1制御情報)が取得されるが、SoCの再起動を伴わないライブブートでは、通常ブートで既に取得された第1制御情報が取得されない。このため、制御情報取得処理部211Eは、プロセッサ211に通知情報が与えられた場合に、プロセッサ211に引継データ300から第1制御情報を取得させることができる。通知情報がフラグである場合、プロセッサ211はフラグを参照して、今回のオペレーティングシステムの起動がライブブートであるか否かを判定する。フラグが立っていれば、プロセッサ211は引継データ300から第1制御情報を取得する。通知情報がコマンドラインである場合、ブートストラップにおいてプロセッサ211にコマンドラインが与えられる。プロセッサ211は、コマンドラインによって今回のオペレーティングシステムの起動がライブブートであるか否かを判定する。ライブブートであることを示すコマンドラインが与えられれば、プロセッサ211は引継データ300から第1制御情報を取得する。
オペレーティングシステムの更新により、処理回路210のハードウェア機能部を新たに使用する機能が追加される場合がある。例えば、第2オペレーティングシステム250Bにおいて、第1オペレーティングシステム250Aでは使用されていなかった高速I/O管理部215E(図2参照)を使用する機能が追加されることを想定する。ライブブートによって第2オペレーティングシステム250Bが起動される場合、第1制御情報には高速I/O管理部215Eの制御情報が含まれていないため、引継データ300から高速I/O管理部215Eの制御情報をプロセッサ211が取得することはできない。高速I/O管理部215Eの制御情報は、第2オペレーティングシステム250Bの起動時に、プロセッサ211によって処理回路210から取得される。
制御情報取得処理部211Eは、前記第2オペレーティングシステム250Bの起動時に取得された第2制御情報を、引継データ300に追加する。第2制御情報は、第1オペレーティングシステム250Aでは使用されていなかった第2ハードウェア機能部の制御に用いられる制御情報であり、第2オペレーティングシステム250Bの起動時にプロセッサ211によって取得される制御情報である。上述した高速I/O管理部215Eの制御情報は、第2制御情報の一例である。図6Bは、引継データへの第2制御情報の追加の一例を説明するための図である。制御情報取得処理部211Eは、高速I/O管理部215Eの制御情報である高速I/O制御情報にタイプ「4」を割り当て、タイプ「4」及び高速I/O制御情報の長さ「N」を高速I/O制御情報に対応させたデータ列300Aを生成する。制御情報取得処理部211Eは、生成されたデータ列300Aを、引継データ300に追加する。第2制御情報が追加された引継データ300は、次回のライブブートために不揮発性メモリ212に保存される。
[3.2.再起動対象選択方式]
図7Aは、通常ブートにおける再起動対象の一例を示す図であり、図7Bは、再起動対象選択方式における再起動対象の一例を示す図である。通常ブートでは、更新後のソフトウェアが不揮発性メモリ212に格納されると、プロセッサ211がリセット要求を制御回路220に送信する。制御回路220は、リセット要求を受信すると、通信装置200の各部、即ち、プロセッサ211、光トランシーバ231,233、信号処理回路232、PLL234、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244にリセット信号を送信する。リセット信号は再起動の指示信号である。プロセッサ211、光トランシーバ231,233、信号処理回路232、PLL234、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244のそれぞれは、リセット信号を受信すると再起動する。さらに、リセット信号を送信した制御回路220も再起動する。このような通常ブートでは、第1ハードウェア機能部、即ち、光トランシーバ231,233、信号処理回路232、及びPLL234が再起動されるため、ソフトウェア更新において主信号の通信が中断される。
再び図3を参照する。再起動対象選択方式では、ソフトウェア更新において、第1ハードウェア機能部、即ち、光トランシーバ231,233、信号処理回路232、及びPLL234は再起動されない。このため、ソフトウェア更新中に主信号の通信が維持される。再起動対象設定部211Fは、プロセッサ211によって実行されるソフトウェアが更新される場合に、再起動の対象を設定する。具体的には、再起動対象設定部211Fは、プロセッサ211、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244を再起動対象に設定する。
図7Bを参照する。再起動対象設定部211Fは、設定された再起動対象を制御回路220に通知する。制御回路220は、再起動対象に対してリセット信号を送信する。つまり、プロセッサ211、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244にリセット信号が送信され、光トランシーバ231,233、信号処理回路232、及びPLL234にはリセット信号が送信されない。プロセッサ211、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244は再起動し、ソフトウェアが更新される。
再び図3を参照する。プロセッサ211が再起動すると、第1格納処理部211Aが通常ブートを実行する。
[3.3.共通処理]
次にライブブート方式及び再起動対象選択方式の共通処理について説明する。プロセッサ211によって実行されるアプリケーションソフトウェア254が、信号処理回路232又は光トランシーバ231,233を制御する場合、アプリケーションソフトウェア254の内部テーブルに、信号処理回路232又は光トランシーバ231,233の設定情報及び状態情報が格納される。信号処理回路232の設定情報は、例えば通信経路の情報である。光トランシーバ231,233の設定情報は、例えば送信の有効/無効の設定値、動作モードの設定値を示す情報である。信号処理回路232の状態情報は、例えば、アラーム、警報のような異常を示す情報、送受信カウンタの値等である。光トランシーバ231,233の状態情報は、例えば、ケーブルの挿抜状態を示す情報、アラーム、警報のような異常を示す情報、送受信パワーの値等である。
アプリケーションソフトウェア254は、内部テーブルにおける設定情報及び状態情報を利用して、信号処理回路232又は光トランシーバ231,233を制御する。このようなアプリケーションソフトウェア254が更新されると、内部テーブルが初期化される。ライブブート方式又は再起動対象選択方式では、信号処理回路232及び光トランシーバ231,233が再起動されないため、再起動後のアプリケーションソフトウェア254は設定情報を取得することができない場合がある。ソフトウェア更新の間に、信号処理回路232及び光トランシーバ231,233の状態が変化する場合もある。このため、ライブブート方式又は再起動対象選択方式によるソフトウェア更新の前に、アプリケーションソフトウェア254の内部テーブルに格納された設定情報及び状態情報を情報退避部211Gが不揮発性メモリ212に退避させ、ソフトウェア更新後に退避された設定情報によって、復旧部211Hがアプリケーションソフトウェア254の内部テーブルを復旧する。さらに、退避された状態情報とソフトウェア更新後における信号処理回路232又は光トランシーバ231,233の状態とが相違する場合、通知部211Iがユーザに通知する。
図8Aは、設定情報及び状態情報の退避を説明する図である。情報退避部211Gは、信号処理回路232及び光トランシーバ231,233のいずれか一方又は両方を制御するためのアプリケーションソフトウェア254をライブブート方式又は再起動対象選択方式で更新する前に、更新前のアプリケーションソフトウェア254Aの内部テーブル411に含まれる設定情報412A,413A及び状態情報412B,413Bを含む退避データ500を生成する。情報退避部211Gは、生成された退避データ500を不揮発性メモリ212に格納する。なお、プロセッサ211の再起動を伴わないライブブート方式によってソフトウェア更新が行われることが事前に判明している場合には、退避データ500の格納先は揮発性メモリ213でもよい。
図8Bは、内部テーブルの復旧を説明する図である。復旧部211Hは、アプリケーションソフトウェア254が更新された後に、退避データ500に含まれる設定情報412A,413Aを、更新後のアプケーションソフトウェア254Bの内部テーブル421に書き込む。これにより、内部テーブル421が復旧される。
再び図3を参照する。状態情報は、アプリケーションソフトウェア254の更新後においても、信号処理回路232及び光トランシーバ231,233からプロセッサ211が取得することができる。通知部211Iは、現在の信号処理回路232及び光トランシーバ231,233の状態情報と、退避データ500に含まれる状態情報412B,413Bとを比較する。通知部211Iは、現在の信号処理回路232及び光トランシーバ231,233の状態情報と、退避データ500に含まれる状態情報412B,413Bとに差異がある場合、ソフトウェアの更新中に信号処理回路232又は光トランシーバ231,233の状態が変化したと判断し、信号処理回路232又は光トランシーバ231,233の状態が変化したことをユーザに通知する。通知は、例えば、信号処理回路232又は光トランシーバ231,233の状態が変化したことを示す情報を含むパケットを保守管理用の端末装置へ送信することによって行うことができる。
[4.通信装置のソフトウェア更新動作]
図9は、実施形態に係る通信装置のソフトウェア更新動作の一例を示すフローチャートである。
新たなソフトウェアは、フラッシュメモリのような不揮発性メモリに格納されてユーザに提供されたり、図示しないサーバから通信装置200にダウンロードされたりする。ソフトウェアの更新ファイルには、更新後のソフトウェアのイメージデータが含まれる。プロセッサ211は、現在のソフトウェア(オペレーティングシステム250、ブートローダ251、アプリケーションソフトウェア254、及び制御回路220のファームウェア)のバージョンを確認する(ステップS1)。プロセッサ211は、更新ファイルに含まれるイメージデータを確認し(ステップS2)、例えば、更新ファイルのヘッダ等に含まれる更新後のソフトウェアのバージョンを参照して、更新対象のソフトウェアを確認する(ステップS3)。
プロセッサ211は、更新対象にオペレーティングシステム又はブートローダが含まれるか否かを判定する(ステップS4)。更新対象にオペレーティングシステム又はブートローダが含まれない場合(ステップS4においてNO)、プロセッサ211は、従来方式による無瞬断ソフトウェア更新を実行する(ステップS5)。
更新対象にオペレーティングシステム又はブートローダが含まれる場合(ステップS4においてYES)、プロセッサ211は、情報退避処理を実行する(ステップS6)。情報退避処理では、アプリケーションソフトウェア254の内部テーブル421に含まれる設定情報412A,413A及び状態情報412B,413Bを含む退避データ500が生成され、退避データ500が不揮発性メモリ212に保存される。
プロセッサ211は、更新対象にブートローダが含まれるか否かを判定する(ステップS7)。更新対象にブートローダが含まれる場合(ステップS7においてYES)、プロセッサ211は、再起動対象選択更新処理を実行する(ステップS8)。更新対象にブートローダが含まれない場合(ステップS7においてNO)、プロセッサ211は、ライブブート更新処理を実行する(ステップS9)。
再起動対象選択更新処理は、再起動対象選択方式による無瞬断ソフトウェア更新である。図10は、再起動対象選択更新処理の一例を示すフローチャートである。
プロセッサ211は、新バージョンのソフトウェアを不揮発性メモリ212にインストールする(ステップS101)。
プロセッサ211は、プロセッサ211、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244を再起動対象に設定する(ステップS102)。第1ハードウェア機能部、即ち、光トランシーバ231,233、信号処理回路232、及びPLL234は再起動対象から除外される。
プロセッサ211は、設定された再起動対象を制御回路220に通知する(ステップS103)。制御回路220は、再起動対象に対してリセット信号を送信し、制御回路220自体もリセットする。プロセッサ211は、リセット信号を受信し、プロセッサ211をリセット(再起動)する(ステップS104))。
プロセッサ211は、ブートローダ251、オペレーティングシステム250、デバイスファイル252を揮発性メモリ213にロードする(ステップS105)。再起動対象選択方式では、更新対象にブートローダ251が含まれる。したがって、更新後のブートローダがロードされる。更新対象にオペレーティングシステムが含まれていれば、更新後のオペレーティングシステムがロードされる。更新対象にオペレーティングシステムが含まれていなければ、再起動前と同じオペレーティングシステムがロードされる。
プロセッサ211は、揮発性メモリ213にロードされたブートローダ251を実行し、ブートストラップを起動する(ステップS106)。さらにプロセッサ211は、揮発性メモリ213にロードされたオペレーティングシステム250を起動する(ステップS107)。つまり、この場合、通常ブートによってオペレーティングシステムが起動される。
通常ブートでは、プロセッサ211は、SoCに含まれるキュー管理部215B、バッファ管理部215C、及びフレーム管理部215Dの第1制御情報をブートシーケンス中に取得する(ステップS108)。オペレーティングシステムの起動後、プロセッサ211は、取得された第1制御情報から、引継データ300を生成する(ステップS109)。プロセッサ211は、生成された引継データ300を不揮発性メモリ212に保存する(ステップS110)。以上で、再起動対象選択更新処理が終了する。
ライブブート更新処理は、ライブブート方式による無瞬断ソフトウェア更新である。図11は、ライブブート更新処理の一例を示すフローチャートである。
プロセッサ211は、新バージョンのソフトウェアを不揮発性メモリ212にインストールする(ステップS201)。
プロセッサ211は、プロセッサ211をリセットせずに、即ち、オペレーティングシステムの稼働中に、起動プログラム253、オペレーティングシステム250、及びデバイスファイル252を揮発性メモリ213にロードする(ステップS202)。ライブブート方式では、ブートローダ251は揮発性メモリ213にロードされない。その代わりに、起動プログラム253がロードされる。ライブブート方式では、更新対象にオペレーティングシステム250が含まれる。したがって、更新後の第2オペレーティングシステム250B及び第2オペレーティングシステム250Bで使用される第2デバイスファイル252Bが揮発性メモリ213にロードされる。
プロセッサ211はさらに、不揮発性メモリ212に保存された引継データを揮発性メモリ213にロードする(ステップS203)。
次にプロセッサ211は、ライブブートの通知情報を不揮発性メモリ212に保存する(ステップS204)。
プロセッサ211は、稼働中のオペレーティングシステム、即ち、第1オペレーティングシステム250Aを停止する(ステップS205)。
プロセッサ211は、揮発性メモリ213にロードされた起動プログラム253を実行する(ステップS206)。さらにプロセッサ211は、起動プログラム253にしたがって、更新後のオペレーティングシステム、即ち、第2オペレーティングシステム250Bを起動する(ステップS207)。
プロセッサ211は、通知情報を確認し、ライブブートによるオペレーティングシステムの起動であるか否かを判定する(ステップS208)。ライブブートによるオペレーティングシステムの起動であることを確認すると、プロセッサ211は、揮発性メモリ213にロードされた引継データから第1制御情報を取得する(ステップS209)。
第1オペレーティングシステム250Aでは使用されていなかった処理回路210のハードウェア機能部が、第2オペレーティングシステム250Bにおいて新たに使用される場合、プロセッサ211は、当該ハードウェア機能部の制御情報である第2制御情報を、第2オペレーティングシステムの起動時に取得する(ステップS210)。プロセッサ211は、取得された第2制御情報を、引継データ300に追加する(ステップS211)。これにより、次回のライブブートによるオペレーティングシステムの起動時に、制御情報をプロセッサ211に与えることができる。なお、第2オペレーティングシステム250Bにおいて新たに使用されるハードウェア機能部がない場合、ステップS210及びS211はスキップされる。以上で、ライブブート更新処理が終了する。
再び図9を参照する。再起動対象選択更新処理又はライブブート更新処理が終了した場合、プロセッサ211は復旧処理を実行する(ステップS10)。復旧処理では、退避データ500に含まれる設定情報412A,413Aがアプリケーションソフトウェア254の内部テーブル421に書き込まれる。さらにプロセッサ211は、通知処理を実行する(ステップS11)。通知処理では、現在の信号処理回路232及び光トランシーバ231,233の状態情報と、退避データ500に含まれる状態情報412B,413Bとに差異がある場合、ソフトウェアの更新中に信号処理回路232又は光トランシーバ231,233の状態が変化したことがユーザに通知される。なお、現在の信号処理回路232及び光トランシーバ231,233の状態情報と、退避データ500に含まれる状態情報412B,413Bとに差異がない場合、ステップS11はスキップされる。以上で、通信装置200のソフトウェア更新動作が終了する。
[5.変形例]
上述した実施形態では、再起動対象選択更新処理とライブブート更新処理とを更新対象のソフトウェアに応じて選択する構成について述べたが、これに限定されない。ブートローダが更新対象に含まれず、オペレーティングシステムが更新対象に含まれる場合、再起動対象選択更新処理だけを実行する構成であってもよいし、ライブブート更新処理だけを実行する構成であってもよい。
上述した実施形態では、移動通信システムに適用された中継システム100について述べたが、これに限定されない。中継システム100は、移動通信システム以外の通信システムに適用されてもよい。さらに、中継システム100に含まれる通信装置200をOTNに準拠した光伝送装置としたが、これに限定されない。通信装置200は、OTNに準拠していない光伝送装置であってもよいし、光信号ではなく電気信号を伝送する伝送装置であってもよい。
[6.効果]
通信装置200は、データを格納する揮発性メモリ213と、揮発性メモリ213に格納されたデータを読み出し可能なプロセッサ211と、光トランシーバ231,233、信号処理回路232、及びPLL234(第1ハードウェア機能部)と、キュー管理部215B、バッファ管理部215C、及びフレーム管理部215D(第2ハードウェア機能部)と、第2格納処理部211C(格納処理部)と、切替処理部211Dと、制御情報取得処理部211Eとを含む。光トランシーバ231,233、信号処理回路232、及びPLL234は、主信号の通信に関する機能を提供する。キュー管理部215B、バッファ管理部215C、及びフレーム管理部215Dは、プロセッサ211と連携した機能を提供する。第2格納処理部211Cは、プロセッサ211、並びに、光トランシーバ231,233、信号処理回路232、及びPLL234のそれぞれを初期化することなく、起動プログラム253、第2オペレーティングシステム250B、及び、引継データ300を、更新前のオペレーティングシステムである第1オペレーティングシステム250Aの揮発性メモリ213内における格納領域とは異なる領域にロード(格納)する。起動プログラム253は、更新後のオペレーティングシステムである第2オペレーティングシステム250Bを起動するための起動コードである。引継データ300は、第1オペレーティングシステム250Aによるキュー管理部215B、バッファ管理部215C、及びフレーム管理部215Dの制御に用いられる第1制御情報を含む。切替処理部211Dは、プロセッサ211に、第1オペレーティングシステム250Aを停止させ、起動プログラム253及び第2オペレーティングシステム250Bを実行させことにより第2オペレーティングシステム250Bを起動させる。制御情報取得処理部211Eは、第2オペレーティングシステム250Bが起動される場合に、プロセッサ211に、第1制御情報を引継データ300から取得させる。これにより、実行中の第1オペレーティングシステム250A上で第2オペレーティングシステム250Bをライブブートすることができる。第2オペレーティングシステム250Bのライブブートにおいて、光トランシーバ231,233、信号処理回路232、及びPLL234が初期化されないため、主信号の通信機能を維持したまま、オペレーティングシステムを更新することができる。第2オペレーティングシステム250Bの起動時にプロセッサ211が第1制御情報を取得することができるため、SoCにおいてもライブブートが可能となる。
切替処理部211Dは、第2オペレーティングシステム250Bの起動時に、ライブブートによって第2オペレーティングシステム250Bが起動されることを示す通知情報をプロセッサ211に与えてもよい。制御情報取得処理部211Eは、プロセッサ211に通知情報が与えられた場合に、プロセッサ211に、第1制御情報を引継データ300から取得させてもよい。これにより、オペレーティングシステム250の起動時に、ブートストラップを経た通常の起動であるのかライブブートであるのかを、プロセッサ211に通知情報が与えられたか否かによって制御情報取得処理部211Eが判断することができる。ライブブートの場合、第2オペレーティングシステム250Bの起動時にプロセッサ211が第1制御情報を取得することができる。
揮発性メモリ213、プロセッサ211、並びに、キュー管理部215B、バッファ管理部215C、及びフレーム管理部215Dは、1つの集積回路に含まれてもよい。これにより、SoCにより通信装置200を構成することができる。
通信装置200は、引継データ生成部211Bをさらに備えてもよい。引継データ生成部211Bは、第1オペレーティングシステム250Aの起動時にプロセッサ211によって取得された第1制御情報に基づいて引継データ300を生成し、生成された引継データ300を不揮発性メモリ212に格納する、第2格納処理部211Cは、不揮発性メモリ212に格納された引継データ300を揮発性メモリ213に格納してもよい。これにより、引継データ300を第2オペレーティングシステム250Bの起動時に揮発性メモリ213にロードすることができる。
制御情報取得処理部211Eは、第2オペレーティングシステム250Bの起動時に、第2制御情報がプロセッサ211によって取得された場合に、第2制御情報を引継データ300に追加してもよい。第2制御情報は、第2オペレーティングシステム250Bによる第2ハードウェア機能部の制御に用いられる情報である。これにより、第1オペレーティングシステム250Aでは必要なかったが第2オペレーティングシステム250Bで必要となった第2制御情報を、次回のライブブートのために引継データ300に追加することができる。
通信装置200は、ソフトウェアを実行可能なプロセッサ211と、光トランシーバ231,233、信号処理回路232、及びPLL234(第1ハードウェア機能部)と、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244(第3ハードウェア機能部)と、制御回路220と、再起動対象設定部211Fとを含む。光トランシーバ231,233、信号処理回路232、及びPLL234は、主信号の通信に関する機能を提供する。第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244は、主信号の通信に関する機能とは異なる機能を提供する。制御回路220は、プロセッサ211、光トランシーバ231,233、信号処理回路232、及びPLL234、並びに、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244に再起動の指令信号であるリセット信号を出力することが可能である。再起動対象設定部211Fは、プロセッサ211によって実行されるソフトウェアが更新される場合に、再起動の対象を設定する。再起動対象設定部211Fによって、プロセッサ211、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244が再起動の対象に設定され、光トランシーバ231,233、信号処理回路232、及びPLL234が再起動の対象に設定されない場合、制御回路220は、プロセッサ211、第2制御回路241、L2スイッチ242、PHY243、及びトランシーバ244にリセット信号を出力し、光トランシーバ231,233、信号処理回路232、及びPLL234にリセット信号を出力しない。これにより、光トランシーバ231,233、信号処理回路232、及びPLL234が再起動の対象から除外され、プロセッサ211が再起動の対象に含まれるため、主信号の通信機能を維持したまま、オペレーティングシステム250を含むソフトウェアの更新を行うことができる。
制御回路220は、リセット信号を出力した場合、制御回路220を再起動してもよい。これにより、制御回路220を再起動の対象に含めることができる。
更新されるソフトウェアは、オペレーティングシステム250を含んてもよい。これにより、主信号の通信機能を維持したまま、オペレーティングシステム250を更新することができる。
更新されるソフトウェアは、ブートローダ251を含んでもよい。これにより、主信号の通信機能を維持したまま、プロセッサ211の再起動が必要なブートローダ251を更新することができる。
第1ハードウェア機能部は、主信号を送受信する光トランシーバ231,233、主信号を処理するための信号処理回路232、並びに、光トランシーバ231,233及び信号処理回路232にクロック信号を供給するPLL234を含んでもよい。これにより、光トランシーバ231,233、信号処理回路232、及びPLL234を初期化することなく、オペレーティングシステム250を含むソフトウェアを更新することができる。
通信装置200は、情報退避部211Gと、復旧部211Hとを含んでもよい。情報退避部211Gは、光トランシーバ231,233、信号処理回路232、及びPLL234を制御するためのアプリケーションソフトウェア254を更新する前に、アプリケーションソフトウェア254の内部テーブル411に含まれる光トランシーバ231,233及び信号処理回路232の設定情報412A,413Aを、不揮発性メモリ212に格納する。復旧部211Hは、アプリケーションソフトウェア254の更新後に、不揮発性メモリ212に格納された設定情報412A,413Aを、更新後のアプリケーションソフトウェア254の内部テーブル421として復旧する。これにより、アプリケーションソフトウェア254の更新の際に内部テーブル421から失われる光トランシーバ231,233及び信号処理回路232の設定情報412A,413Aを、アプリケーションソフトウェア254の更新後に復旧することができる。
情報退避部211Gは、内部テーブル411に含まれる光トランシーバ231,233及び信号処理回路232の状態情報412B,413Bを、不揮発性メモリ212に格納してもよい。通信装置200は、通知部211Iをさらに含んでもよい。通知部211Iは、現在の光トランシーバ231,233及び信号処理回路232の状態を示す状態情報と、不揮発性メモリ212に格納された状態情報とに差異がある場合、ユーザに通知する。これにより、ソフトウェアの更新の際に光トランシーバ231,233及び信号処理回路232の状態が変化した場合、当該変化があったことをソフトウェアの更新後にユーザに通知することができる。
[7.補記]
今回開示された実施の形態はすべての点で例示であって、制限的ではない。本発明の権利範囲は、上述の実施形態ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及びその範囲内でのすべての変更が含まれる。