(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024032198
(43)【公開日】2024-03-12
(54)【発明の名称】通信装置および制御方法
(51)【国際特許分類】
H04L 12/44 20060101AFI20240305BHJP
H04L 67/01 20220101ALI20240305BHJP
【FI】
H04L12/44 200
H04L67/01
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022135721
(22)【出願日】2022-08-29
(71)【出願人】
【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
(74)【代理人】
【識別番号】110001461
【氏名又は名称】弁理士法人きさ特許商標事務所
(72)【発明者】
【氏名】丸山 兼司
【テーマコード(参考)】
5K033
【Fターム(参考)】
5K033AA05
5K033DB13
5K033EC01
(57)【要約】
【課題】限られたメモリ資源においてファームウェアの更新を成功させる通信装置および制御方法を得る。
【解決手段】局側装置と通信を行う通信部と、局側装置から受信する更新用ファームウェアを記憶する第1の記憶部と、局側装置から更新用ファームウェアの受信を開始すると、第1の記憶部の空き容量が予め決められた閾値未満であるか否かを判定する判定部と、判定部によって空き容量が閾値未満と判定されると、非信号処理に限定した制御処理を行う制御部と有する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
局側装置と通信を行う通信部と、
前記局側装置から受信する更新用ファームウェアを記憶する第1の記憶部と、
前記局側装置から前記更新用ファームウェアの受信を開始すると、前記第1の記憶部の空き容量が予め決められた閾値未満であるか否かを判定する判定部と、
前記判定部によって前記空き容量が前記閾値未満と判定されると、非信号処理に限定した制御処理を行う制御部と、
を有する通信装置。
【請求項2】
前記第1の記憶部は、信号処理に関するログを記憶し、
前記非信号処理に限定した制御処理は、前記第1の記憶部から前記ログを削除するものである、
請求項1に記載の通信装置。
【請求項3】
前記第1の記憶部は、信号処理の保守プロセスに必要な容量を未使用とし、
前記非信号処理に限定した制御処理は、前記保守プロセスを停止するものである、
請求項1に記載の通信装置。
【請求項4】
前記第1の記憶部は、信号処理の保守系コマンドを記憶し、
前記非信号処理に限定した制御処理は、前記第1の記憶部から前記保守系コマンドを削除するものである、
請求項1に記載の通信装置。
【請求項5】
前記第1の記憶部は、未使用のメモリの消費電力を低減する省電力機能を実行し、
前記非信号処理に限定した制御処理は、前記省電力機能を停止するものである、
請求項1に記載の通信装置。
【請求項6】
前記非信号処理に限定した複数の制御処理が優先度と対応付けられた処理テーブルを記憶する第2の記憶部を有し、
前記制御部は、前記空き容量に対応して前記優先度の高い方から順に前記非信号処理に限定した制御処理を行う、
請求項1に記載の通信装置。
【請求項7】
前記処理テーブルには、前記優先度に対応づけられて前記非信号処理に限定した制御処理に対する復旧処理の情報が登録され、
前記制御部は、前記更新用ファームウェアの受信が終了すると、前記非信号処理に限定した制御処理に対する前記復旧処理を行う、
請求項6に記載の通信装置。
【請求項8】
局側装置から受信する更新用ファームウェアを記憶する第1の記憶部を有する通信装置による制御方法であって、
前記局側装置から前記更新用ファームウェアの受信を開始すると、前記第1の記憶部の空き容量が予め決められた閾値未満であるか否かを判定するステップと、
前記空き容量が前記閾値未満と判定されると、非信号処理に限定した制御処理を行うステップと、
を有する制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、局側装置と通信する通信装置および通信装置が実行する制御方法に関する。
【背景技術】
【0002】
従来、PON(Passive Optical Network)システムにおいて、加入者側の通信装置であるONU(Optical Network Unit)は、装置に予め格納されたファームウェアを実行することで、ユーザが使用する通信の信号である主信号の信号処理を行う。ONUは、ファームウェアを記憶する不揮発性メモリと、揮発性メモリとを有し、起動時にファームウェアを不揮発性メモリから揮発性メモリに展開し、ファームウェアを実行する。揮発性メモリは、例えば、RAM(Random Access Memory)である。
【0003】
また、ONUの小型化手段の1つとして、1つのLSI(Large Scale Integrated Circuit)にCPU(Central Processing Unit)およびRAM等の複数のデバイスが搭載されたSoC(System on a Chip)を用いることが行われている。しかし、SoCに搭載されるRAMのメモリ容量は、単独でONUに搭載されるRAMと比べて小さい。
【0004】
一方、ONUに搭載されるRAMは、主信号の信号処理用バッファとして大容量であることが望まれている。信号処理用バッファの大容量化を目的として、「バッファ専用メモリ」と「RAMの一部」との2種類のメモリを用いる「2段バッファ構成」を採用するONUもある。この場合、RAMは、信号処理バッファ用と、ファームウェア用とに分割される。このように、ファームウェアは使用可能なメモリ容量が十分ではない状況下でも動作可能であることが求められている。
【0005】
ONUが揮発性メモリの容量をより多く必要とする処理の1つとして「ファームウェア更新」が挙げられる。ファームウェアの更新について、例えば、特許文献1に、局側装置であるOLT(Optical Line Terminal)がONUのファームウェアの版数を確認し、更新用ファームウェアをONUに送信することでファームウェアの更新を管理するPONシステムが提案されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に開示されたPONシステムにおいて、ONUはOLTから更新用ファームウェアを受信するとき、更新用ファームウェアの全てを一時的に揮発性メモリに保存する。更新用ファームウェアのデータサイズが通常よりも大きい場合、揮発性メモリのうち、使用可能なメモリ容量が不足してしまう。その結果、ファームウェア更新ができなくなってしまうおそれがある。
【課題を解決するための手段】
【0008】
本発明に係る通信装置は、局側装置と通信を行う通信部と、前記局側装置から受信する更新用ファームウェアを記憶する第1の記憶部と、前記局側装置から前記更新用ファームウェアの受信を開始すると、前記第1の記憶部の空き容量が予め決められた閾値未満であるか否かを判定する判定部と、前記判定部によって前記空き容量が前記閾値未満と判定されると、非信号処理に限定した制御処理を行う制御部と、を有するものである。
【0009】
本発明に係る制御方法は、局側装置から受信する更新用ファームウェアを記憶する第1の記憶部を有する通信装置による制御方法であって、前記局側装置から前記更新用ファームウェアの受信を開始すると、前記第1の記憶部の空き容量が予め決められた閾値未満であるか否かを判定するステップと、前記空き容量が前記閾値未満と判定されると、非信号処理に限定した制御処理を行うステップと、を有するものである。
【発明の効果】
【0010】
本発明によれば、ファームウェアを更新する際、第1の記憶部において使用可能メモリ容量を確認し、第1の記憶部の空き容量が閾値より小さい場合、非信号処理に限定した制御処理が行われる。そのため、第1の記憶部において信号処理に必要なメモリ容量を確保しつつ、更新用ファームウェアをダウンロードするための空き容量を一時的に増加させることができる。その結果、限られたメモリ資源において、実行中のファームウェアを正常に動作させながら、ファームウェアの更新を成功させることができる。
【図面の簡単な説明】
【0011】
【
図1】実施の形態1に係る通信装置を含むPONシステムの一構成例を示す図である。
【
図2】実施の形態1に係るONUの一構成例を示す機能ブロック図である。
【
図3】
図2に示した第2の記憶部が記憶する処理テーブルの一構成例を示す図である。
【
図4】実施の形態1に係るONUのファームウェア更新部の動作手順を示すフローチャートである。
【
図5】実施の形態1に係るONUの判定部およびメモリ制御部の動作手順を示すフローチャートである。
【
図6】実施の形態1に係るONUによる制御方法を説明するための模式図である。
【発明を実施するための形態】
【0012】
実施の形態1.
本実施の形態1の通信装置を有するPONシステムの構成を説明する。
図1は、実施の形態1に係る通信装置を含むPONシステムの一構成例を示す図である。本実施の形態1においては、PONシステムがEPON(Ethernet(登録商標) PON)システムの場合で説明するが、実施の形態1に係る通信装置を有するシステムはEPONシステムに限らない。
【0013】
EPONシステム1は、局側装置であるOLT10と、加入者側の通信装置であるONU20-1~20-m(mは1以上の整数)と、光ファイバ30と、光スプリッタ40とを有する。光スプリッタ40は、OLT10から受信するデータをONU20-1~20-mに分配し、ONU20-1~20-mから受信するデータをOLT10に送信する。OLT10は、光スプリッタ40によってONU20-1~20-mと接続される。
【0014】
ONU20-1~20-mのそれぞれには、各ユーザが使用する通信端末(図示せず)が接続されている。また、本実施の形態1では、ONU20-1~20-mがファームウェアを更新する動作を説明するために、光ファイバ30を介してOLT10と接続される場合の構成を
図1に示しているが、ONU20-1~20-mはOLT10を介して光ネットワーク(図示せず)と接続されていてもよい。ONU20-1~20-mは各ユーザの主信号の信号処理を行う。ONU20-1~20-mは同一の構成であるため、以下では、任意の1台のONUをONU20と表記する。
【0015】
次に、本実施の形態1の通信装置であるONU20の構成を説明する。
図2は、実施の形態1に係るONUの一構成例を示す機能ブロック図である。ONU20は、通信部2と、制御部3と、記憶部4とを有する。通信部2はOLT10と通信を行う。また、通信部2は、OLT10および光ファイバ30を介して、光ネットワーク(図示せず)と主信号を送受信する。
【0016】
制御部3は、主信号の信号処理を実行する信号処理部6と、ファームウェア更新部7と、メモリ制御部8と、判定部9とを有する。制御部3は、例えば、プログラムを記憶するメモリ(図示せず)と、プログラムにしたがって処理を実行するCPU(図示せず)とを有する構成である。CPU(図示せず)がプログラムを実行することで、信号処理部6、ファームウェア更新部7、メモリ制御部8および判定部9が構成される。
【0017】
記憶部4の構成を説明する。記憶部4は、第1の記憶部21および第2の記憶部22を有する。第1の記憶部21は、揮発性メモリで構成される。第2の記憶部22は、不揮発性メモリで構成される。揮発性メモリは、例えば、DRAM(Dynamic RAM)等のRAMである。不揮発性メモリは、例えば、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)またはフラッシュメモリである。
【0018】
第1の記憶部21は、信号処理部6が主信号の信号処理を実行する際、信号処理部6が実行するファームウェアを記憶する。また、第1の記憶部21は、信号処理部6が主信号の信号処理を実行する際、信号処理に必要なデータを一時的に記憶するバッファ専用メモリとして機能する。さらに、第1の記憶部21は、OLT10から通信部2が更新用ファームウェアのファイルの受信を開始すると、更新用ファームウェアを記憶する。ファームウェアのデータサイズ(容量)の情報等を含むファイル情報がファームウェアに添付されたものを、以下では、ファームウェアファイルと称する。ファイル情報には、ファームウェアのデータサイズの他に、例えば、伝送エラーを防ぐためのチェックサムのサム値が含まれる。
【0019】
第2の記憶部22は、主信号の信号処理のためのファームウェアを記憶し、信号処理部6が主信号の信号処理を実行する際、記憶するファームウェアを第1の記憶部21に展開する。また、第2の記憶部22は、第1の記憶部21の空き容量Cfmを増加するための処理が記述された処理テーブルを記憶する。
【0020】
図3は、
図2に示した第2の記憶部が記憶する処理テーブルの一構成例を示す図である。処理テーブルは、実行番号に対応して、実行閾値、実行名称、メモリ増加処理および復旧処理の内容が登録されている。
図3に示す構成例では、実行番号に対応して、実行閾値、実行名称、メモリ増加処理および復旧処理の各内容が異なる列に記述されている。
図3に示す実行番号の最大値nは任意の正の整数である。
【0021】
図3に示す処理テーブルの「実行名称」の欄に記載されたOS(Operating System)カーネルログは、制御部3によってOSプログラムが実行された結果の履歴情報である。SNMP(Simple Network Management Protocol)ログは、SNMPにしたがってOLT10がONU20を管理した結果の履歴情報である。これらのログは、第1の記憶部21に記憶される。これらのログは、例えば、ONU20に障害などが発生したとき、OLT10による解析のために使用される。第1の記憶部21において、蓄積されるログの容量は予め決められており、ONU20が正常に動作している間、古いログの上に新しいログが上書きされる。
【0022】
保守プロセス1および保守プロセス2等の保守プロセスは、OLT10がSNMPによって決められた手順にしたがってONU20に対して定期的または不定期に行う保守である。保守プロセス1と保守プロセス2とは保守の種類が異なる。第1の記憶部21において、保守プロセスが実行される場合に備えて、予め決められたメモリ容量が未使用容量として確保される。
【0023】
図3に示す処理テーブルにおいて、メモリ増加処理は、第1の記憶部21において、空き容量Cfmを増加させる処理であり、物理的にメモリ容量を増加させるものではない。メモリ増加処理は、(1)「増加容量の観点」および(2)「影響度の観点」の2つの観点によって優先度が高い順に実行番号1~nが割り振られている。(1)番目の「増加容量の観点」はメモリ増加容量がより大きいという観点である。(2)番目の「影響度の観点」は、処理が実行されてもONU20の機能面で影響度がより小さいという観点である。
【0024】
例えば、実行番号1の「OSカーネルログ削除」の場合の2つの観点を説明する。(1)増加容量の観点について、容量大の増加が可能である。(2)影響度の観点について、RAMに蓄積されるOSの標準機能であり、「保守」機能面では役立つが、装置電源をオフすると削除され、実行されてもONU20の機能に影響はない。よって、「OSカーネルログ削除」は、実行優先度が「高」の処理である。
【0025】
一方、実行番号3の「保守プロセス1の停止」および実行番号nの「保守プロセス2の停止」は、(1)増加容量の観点では一般的に小さく、(2)影響度の観点について、プロセスの内容に依存するが、ログの削除に比べると、信号処理への影響度は大きい。そのため、「保守プロセス1の停止」および「保守プロセス2の停止」は、実行優先度が「低」の処理である。
【0026】
メモリ増加処理および復旧処理の全ては、ONU20におけるPONまたはイーサネット(登録商標)等によるユーザが使用する通信の主信号に関わるハードウェアに変更を行わない処理である。主信号に関わるハードウェアの変更とは、例えば、SoC内PON-LSIおよびPHY-LSI等の、レジスタ値の変更がある。レジスタ値の変更とは、PONまたはイーサネット(登録商標)によるフレーム送受信処理に関わるレジスタ値の設定変更である。レジスタ値が変化すると、主信号のスループット低下または主信号のリンク断線など、主信号に何らかの影響が出てしまう。
【0027】
図3に示すようなメモリ増加処理は、「主信号に関わるハードウェアに変更を行わない処理」である。「主信号に関わるハードウェアに変更を行わない処理」を「非信号処理に限定した制御処理」と称する。非信号処理に限定した制御処理は、主信号の信号処理およびその性能(スループット、バースト耐性、レイテンシ等)に影響を及ぼさずに、第1の記憶部21における使用可能なメモリ容量を一時的に増加させることができる。
【0028】
図3に示す処理テーブルにおける「実行閾値」は、第1の記憶部21の空き容量Cfmに対して、実行閾値と同じ実行番号の欄に記載されたメモリ増加処理を実行するか否かの判定基準となる値である。実行閾値は、一般的なファームウェアのデータサイズおよび上記の優先度の観点に基づいて予め決められている。以下では、実行閾値をPthと表記する。例えば、kを1~nの任意の整数とすると、実行番号kの実行閾値PthをPthkと表記する。
【0029】
なお、
図3に示す実行閾値の数値、実行名称、メモリ増加処理および復旧処理の処理内容は一例である。メモリ増加処理について、
図3に示す処理以外に、例えば、保守系コマンドの削除および省電力機能の停止がある。保守プロセス1または保守プロセス2などの保守プロセスで使用されたコマンドが第1の記憶部21に記憶されるが、保守系コマンドの削除は、記憶されたコマンドの情報を第1の記憶部21から削除することである。
【0030】
省電力機能は、例えば、第1の記憶部21がDRAMを有する構成である場合、PASR(Partial Array Self-Refresh)である。DRAMは、メモリセルアレイに記憶させたデータを保持するために一定の周期でメモリセルアレイにリフレッシュ動作を行う必要がある。PASRは、メモリの消費電力を低減するために、複数のメモリセルアレイのうち、未使用のメモリセルアレイのリフレッシュ動作を実施しない機能である。ただし、省電力機能の停止は、一時的に第1の記憶部21の消費電力が上がってしまうため、実行優先度が「低」に設定される。
【0031】
続いて、
図2に示した制御部3の構成を説明する。信号処理部6は、第2の記憶部22から第1の記憶部21に展開されたファームウェアを実行することで、主信号の信号処理を行う。ファームウェア更新部7は、OLT10から受信する更新用ファームウェアを第1の記憶部21に格納する。判定部9は、通信部2がOLT10から更新用ファームウェアの受信を開始すると、第1の記憶部21の空き容量Cfmが予め決められた閾値Pth未満であるか否かを判定する。メモリ制御部8は、判定部9によって空き容量Cfmが閾値Pth未満と判定されると、非信号処理に限定した制御処理を行う。
【0032】
なお、本実施の形態1においては、ファームウェア更新部7、メモリ制御部8および判定部9が制御部3に設けられている場合で説明したが、制御部3以外に設けられていてもよい。例えば、記憶部4にDMA(Direct Memory Access)コントローラ(図示せず)が設けられている場合、ファームウェア更新部7、メモリ制御部8および判定部9の一部または全部がDMAコントローラに設けられていてもよい。
【0033】
次に、本実施の形態1のONU20がOLT10から更新用ファームウェアを受信する場合の動作を説明する。はじめに、ファームウェア更新部7の動作を説明する。
図4は、実施の形態1に係るONUのファームウェア更新部の動作手順を示すフローチャートである。
【0034】
OLT10は、主信号帯域に影響を及ぼさないように、更新用ファームウェアを含むファームウェアファイルを複数のピースに分割し、分割したピースを一定の間隔で順次、ONU20に送信する。通信部2がOLT10からファームウェアファイルの受信を開始すると、ファームウェア更新部7は、ファームウェアファイルの受信状態が「ダウンロード中」、「正常終了」および「異常終了」のどの状態かを判定する(ステップS101)。
【0035】
ステップS101において、ファームウェアファイルの受信状態が「ダウンロード中」である場合、ファームウェア更新部7は、通信部2がファームウェアファイルのピースを1個受け取ったか否かを判定する(ステップS102)。ファームウェアファイルのピースを1個受け取った場合、受け取ったピースを第1の記憶部21に格納する(ステップS103)。ステップS102~ステップS104は少なくとも、OLT10により分割されたピースの数だけ繰り返し行われる動作となる。
【0036】
ファームウェア更新部7は、ピースを受け取る毎にそのピースが正常か否かを確認しても良い。例えば、個々のピースには「ピース番号」という情報が1から昇順に付与されている。OLT10によってファームウェアファイルが分割されたピースの数がj個である場合、ファームウェア更新部7は、ピース番号1~ピース番号jの各ピースをOLT10から受信すると、各ピースを第1の記憶部21に格納する。ファームウェア更新部7は、ピース番号を確認した結果、番号重複や欠番があった場合は、そのピースを第1の記憶部21に格納しないで破棄し、OLT10に正しい番号のピースを要求しても良い。
【0037】
また、ファイル情報は通常、ピース番号1のピースに付与される等、ダウンロードの初期の段階で受け取ることができる。ファームウェア更新部7は、ファイル情報から更新用ファームウェアのデータサイズを確認し、更新用ファームウェアのデータサイズが大きく、変動領域Vc(
図6参照)を考慮してもなお、空き容量Cfmを超過してしまいファームウェア更新が失敗することが明らかな場合は、ファイル情報を受け取った時点でOLT10にファイルサイズ超過のエラーメッセージを送信しても良い。変動領域Vcについては、
図6を参照しながら、後で説明する。
【0038】
ステップS104において、ファームウェア更新部7は、受信する更新用ファームウェアに関して、メモリ制御部8に通知が必要か否かを予め決められた条件に基づき判定する(ステップS104)。予め決められた条件は、例えば、「一定数のピースを受け取る毎」という条件である。この場合、ファームウェア更新部7は、一定数のピースを受け取る毎に通知が必要と判定する。あるいは、予め決められた条件は、「受け取ったピースの総数が予め決められた数を超過した後は、ピースを1個受け取る度」という条件であってもよい。この場合、ファームウェア更新部7は、受け取ったピースの総数が予め決められた数を超過した後、ピースを1個受け取る度に通知が必要と判定する。ステップS104の判定の結果、ファームウェア更新部7は、メモリ制御部8に通知が必要と判定した場合、メモリ制御要求をメモリ制御部8に通知する(ステップS105)。
【0039】
一方、ステップS101の判定の結果、受信状態が「正常終了」の場合、ファームウェア更新部7は、更新用ファームウェアの全てのピースを正常に受信したと判定する。例えば、ファームウェア更新部7は、更新用ファームウェアのデータに対してチェックサムを実行し、算出したサム値がファイル情報に記録されたサム値と一致していれば、更新用ファームウェアを正常に受信したと判定する。また、ファームウェア更新部7は、ファイル情報に記録されたデータサイズを参照し、参照したデータサイズと受信した更新用ファームウェアのデータサイズとが一致している場合、更新用ファームウェアを正常に受信したと判定してもよい。
【0040】
ファームウェア更新部7は、更新用ファームウェアを正常に受信したと判定すると、更新用ファームウェアを第1の記憶部21から読み出し、第2の記憶部22が記憶するファームウェアを更新用ファームウェアに置き換える(ステップS106)。そして、ファームウェア更新部7は、第1の記憶部21に格納されている更新用ファームウェアを削除する(ステップS107)。ONU20の再起動時に更新用ファームウェアを第2の記憶部22から第1の記憶部21に展開して、信号処理部6が更新されたファームウェアを実行できるようにするためである。その後、ファームウェア更新部7は、メモリ制御部8に正常に終了したことを通知する(ステップS108)。
【0041】
また、ステップS101の判定の結果、受信状態が「異常終了」の場合、ファームウェア更新部7は、更新用ファームウェアのダウンロードの途中でOLT10とONU20とのリンクが切れるなどの異常が発生して、更新用ファームウェアの全データを受信できなかったと判定する。ファームウェア更新部7は、更新用ファームウェアを正常に受信できなかったと判定すると、第1の記憶部21に格納されている更新用ファームウェアを削除する(ステップS109)。その後、ファームウェア更新部7は、異常終了したことをメモリ制御部8に通知する(ステップS110)。
【0042】
例えば、ファームウェア更新部7は、更新用ファームウェアのデータに対してチェックサムを実行し、算出したサム値がファイル情報に記録されたサム値と一致していないと、更新用ファームウェアを正常に受信できなかったと判定する。また、ファームウェア更新部7は、ファイル情報に記録されたデータサイズを参照し、参照したデータサイズと受信した更新用ファームウェアのデータサイズとが一致していない場合、更新用ファームウェアを正常に受信できなかったと判定してもよい。
【0043】
次に、メモリ制御部8および判定部9の動作を説明する。
図5は、実施の形態1に係るONUの判定部およびメモリ制御部の動作手順を示すフローチャートである。メモリ制御部8は、ファームウェア更新部7から通知があるか否かを判定する(ステップS201)。ステップS201において、メモリ制御部8は、ファームウェア更新部7から通知があると、通知内容を確認する(ステップS202)。
【0044】
ステップS202の確認処理において、通知内容が「メモリ制御要求」の場合、メモリ制御部8は、使用可能メモリ容量である空き容量Cfmの情報を第1の記憶部21から取得する(ステップS203)。判定部9は、第2の記憶部22が記憶する処理テーブルを参照し、実行番号kについてk=1から昇順に、メモリ制御部8が取得した情報である空き容量Cfmと実行閾値Pthkとを比較する(ステップS204)。そして、判定部9は、実行番号kについて、「空き容量Cfmが実行閾値Pthk未満、かつ実行番号kに対応するメモリ増加処理が未実行」の条件を満たすか否かを判定する(ステップS205)。ステップS205の判定条件を満たさない場合、メモリ制御部8はステップS201に戻る。ステップS205の判定条件を満たす場合、メモリ制御部8は、実行番号kのメモリ増加処理を行う(ステップS206)。
【0045】
一方、ステップS202の確認処理において、通知内容が「正常終了」または「異常終了」の場合、メモリ制御部8は、実行番号kについてk=1から昇順に、実行番号kに対応するメモリ増加処理が実行されているか否かを判定する(ステップS207)。ステップS207の判定の結果、メモリ制御部8は、実行番号kに対応するメモリ増加処理が実行されていると、第2の記憶部22が記憶する処理テーブルを参照し、実行番号kに対応する復旧処理を行う(ステップS208)。一方、ステップS207の判定の結果、実行されたメモリ増加処理がない場合、メモリ制御部8は処理を終了する。
【0046】
ここで、
図5に示したステップS206の処理による効果を説明する。
図6は、実施の形態1に係るONUによる制御方法を説明するための模式図である。
図6は、第1の記憶部21におけるメモリ容量の使用区分およびファームウェアのデータサイズを模式的に示している。
【0047】
図6に示す模式図において、第1の記憶部21の全メモリ容量をCmallとし、ログ情報などが蓄積されるメモリ領域を変動領域Vcとし、空き容量をCfmと表している。ここでは、説明を簡単にするために、実行中のファームウェアと更新用ファームウェアのデータサイズが同じと仮定する。この場合、
図6に示すように、第1の記憶部21において、変動領域VcがVc1である場合、更新用ファームウェアをそのまま第1の記憶部21にダウンロードすることができない。一方、変動領域VcがVc2まで低減すれば、空き容量Cfmが変動領域Vc2の端部まで増加し、更新用ファームウェアを第1の記憶部21にダウンロードすることができる。
【0048】
変動領域Vcは、例えば、
図3に示したログの蓄積またはリセットなどにより、時々刻々と変化する。つまり、第1の記憶部21にアクセスするタイミングによって、変動領域Vcが大きい場合もあれば、小さい場合もある。また、更新用ファームウェアのダウンロードにかかる時間が、1時間以上になる場合もある。そのため、更新用ファームウェアのダウンロード開始時に変動領域VcがVc1の状態であっても、更新用ファームウェアのダウンロードの途中で、変動領域VcがVc1の状態からVc2の状態に遷移する場合がある。この場合、更新用ファームウェアのダウンロード開始時に変動領域VcがVc1の状態であっても、メモリ制御部8は
図5に示したステップS206のメモリ増加処理を行う必要がなく、ONU20の機能を低下させずに済む。
【0049】
一方、
図6に示した模式図において、更新用ファームウェアのダウンロード開始時に変動領域VcがVc2の状態であっても、更新用ファームウェアのダウンロードの途中で、変動領域VcがVc2の状態からVc1の状態に遷移する場合もある。ONU20は、更新用ファームウェアのダウンロードの途中で変動領域VcがVc1の状態である場合、
図5に示したステップS206のメモリ増加処理を実行する。これにより、
図6に示した変動領域VcがVc1の状態からVc2の状態に遷移し、空き容量Cfmが増加し、ONU20は、更新用ファームウェアの全データを第1の記憶部21にダウンロードすることができる。このようにして、本実施の形態1のONU20は、ファームウェアファイルのダウンロードを開始したときおよびダウンロードの完了直前のいずれのタイミングでもなく、更新用ファームウェアのダウンロードの途中、例えば、
図4に示したステップS105の通知をトリガーとして、メモリ増加処理が必要か否かを判定することで、機能低下を抑制しながら、更新用ファームウェアのダウンロードを成功させる。
【0050】
ここで、ONUがファームウェアファイルのピース番号1のピースを受信した段階で、ファイル情報を参照して更新用ファームウェアのデータサイズを確認し、空き容量Cfmが不足するか否かを判定し、空き容量Cfmが不足すると判定すると、
図3に示した実行番号1~nの処理を全て実行することも考えられる。しかし、
図6を参照して説明したように、更新用ファームウェアのダウンロード中に変動領域Vcが変化し、メモリ増加処理を実行しなくても、最終的に空き容量Cfmが不足しない場合もある。この場合、ONUが、ファームウェアファイルのピース番号1のピースを受信した段階で空き容量Cfmが不足すると判定してメモリ増加処理を実行すると、ONUの機能を無駄に低下させてしまうことになる。これに対して、本実施の形態1のONU20は、上述したように、更新用ファームウェアのダウンロードの途中で空き容量Cfmをチェックし、メモリ増加処理を実行すべきか否かを決定することで、ONU20の機能低下を最小限に抑えることができる。
【0051】
なお、
図5に示すステップS202の確認処理において、「正常終了」および「異常終了」のいずれの場合もその後の処理は同じであるが、「正常終了」の場合、通常、ONU20の再起動が行われる。そのため、「正常終了」の場合、実行番号kのメモリ増加処理が実行されていても、メモリ制御部8は、実行番号kに対応するステップS208の処理を実行しなくてもよい。また、
図4に示したステップS110において、ファームウェア更新部7は、異常終了したことをメモリ制御部8に通知した後、OLT10に更新用ファームウェアを含むファームウェアファイルの再送を依頼してもよい。
【0052】
本実施の形態1の通信装置は、OLT10と通信を行う通信部2と、OLT10から受信する更新用ファームウェアを記憶する第1の記憶部21と、OLT10から更新用ファームウェアの受信を開始すると、第1の記憶部21の空き容量Cfmが予め決められた閾値Pthk未満であるか否かを判定する判定部9と、判定部9によって空き容量Cfmが閾値Pthk未満と判定されると、非信号処理に限定した制御処理を行うメモリ制御部8とを有する。
【0053】
本実施の形態1によれば、ファームウェアを更新する際、第1の記憶部21において使用可能メモリ容量を確認し、第1の記憶部21の空き容量Cfmが閾値Pthkより小さい場合、非信号処理に限定した制御処理が行われる。そのため、第1の記憶部において信号処理に必要なメモリ容量を確保しつつ、更新用ファームウェアをダウンロードするための空き容量Cfmを一時的に増加させることができる。その結果、限られたメモリ資源において、実行中のファームウェアを正常に動作させながら、ファームウェアの更新を成功させることができる。
【0054】
(実施の形態1に係る通信装置の利用形態)
上述した実施の形態1においては、ONU20を有するシステムがEPONシステム1の場合で説明したが、PONシステムは、G(Gigabit)E-PONでもよく、10G-EPONであってもよい。本実施の形態1を、ONUにおけるファームウェア動作のために使用するメモリ制御方法に適用することができる。
【0055】
また、上述の実施の形態1においては、本実施の形態1の制御方法を、EPONシステム1におけるONU20に適用する場合を一例として説明したが、ONUに限らず、ルータまたはHGW(Home Gateway)など、RAMが搭載された通信装置に適用することができる。
【符号の説明】
【0056】
1 EPONシステム
2 通信部
3 制御部
4 記憶部
6 信号処理部
7 ファームウェア更新部
8 メモリ制御部
9 判定部
10 OLT
20 ONU
20-1~20-m ONU
21 第1の記憶部
22 第2の記憶部
30 光ファイバ
40 光スプリッタ