JP2023009293A - 通信装置及び情報処理方法 - Google Patents
通信装置及び情報処理方法 Download PDFInfo
- Publication number
- JP2023009293A JP2023009293A JP2022184733A JP2022184733A JP2023009293A JP 2023009293 A JP2023009293 A JP 2023009293A JP 2022184733 A JP2022184733 A JP 2022184733A JP 2022184733 A JP2022184733 A JP 2022184733A JP 2023009293 A JP2023009293 A JP 2023009293A
- Authority
- JP
- Japan
- Prior art keywords
- firmware
- data
- function
- update
- volatile memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 66
- 230000010365 information processing Effects 0.000 title claims description 7
- 238000003672 processing method Methods 0.000 title claims description 4
- 238000012545 processing Methods 0.000 claims abstract description 42
- 238000000034 method Methods 0.000 claims description 76
- 230000008569 process Effects 0.000 claims description 64
- 230000006870 function Effects 0.000 description 218
- 230000003287 optical effect Effects 0.000 description 84
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2823—Reporting information sensed by appliance or service execution status of appliance services in a home automation network
- H04L12/2825—Reporting to a device located outside the home and the home network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Automation & Control Theory (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】コストを抑えつつ、サービスを中断させずにプログラムを更新すること。
【解決手段】通信装置は、更新前のファームウェアに関する第1データと、更新後のファームウェアに関する第2データと、前記第1データ又は前記第2データと前記第1データ又は前記第2データが位置付けられたアドレスとが対応付けられたテーブルと、を記憶するメモリと、前記テーブルに定義された前記アドレスに位置付けられた前記第1データ又は前記第2データに基づく処理を実行するプロセッサと、前記テーブルにおいて前記第1データに対応付けられた前記アドレスを、前記更新前のファームウェアにおいて定義された前記第1データに基づく処理が実行中ではないタイミングである更新タイミングに従って、前記第2データが位置付けられたアドレスに書き換える書込部と、を備える。
【選択図】図1
【解決手段】通信装置は、更新前のファームウェアに関する第1データと、更新後のファームウェアに関する第2データと、前記第1データ又は前記第2データと前記第1データ又は前記第2データが位置付けられたアドレスとが対応付けられたテーブルと、を記憶するメモリと、前記テーブルに定義された前記アドレスに位置付けられた前記第1データ又は前記第2データに基づく処理を実行するプロセッサと、前記テーブルにおいて前記第1データに対応付けられた前記アドレスを、前記更新前のファームウェアにおいて定義された前記第1データに基づく処理が実行中ではないタイミングである更新タイミングに従って、前記第2データが位置付けられたアドレスに書き換える書込部と、を備える。
【選択図】図1
Description
本発明は、通信装置及び情報処理方法に関する。
一般的に、通信装置は、プロセッサ、不揮発性メモリ及び揮発性メモリ等を含んで構成される。不揮発性メモリは、通信装置に通信機能等を実装させるためのプログラムであるファームウェアを予め記憶している。通信装置の起動時に、不揮発性メモリに記憶されたファームウェアが揮発性メモリに展開される。そして、揮発性メモリに展開されたファームウェアが実行されることによって、通信装置に通信機能等が実装される。これにより、所望の通信サービスが提供される。
通信サービスを提供する通信装置に対して、新機能の追加又はバグ修正を行う場合、実行されるファームウェアを更新する必要がある。ファームウェアを更新する場合、揮発性メモリに展開されて実行されているファームウェアを一旦停止させることが一般的である。その後、不揮発性メモリに記憶されたファームウェアを書き換えて、通信装置を再起動させる。これにより、不揮発性メモリに記憶された更新後のファームウェアが、再起動によってリセットされた揮発性メモリに展開されて、実行されるようになる(例えば、非特許文献1)。
小谷 亮、清原 良三、攝津 敦、橘高 大造、"組み込みLinuxにおけるソフトウェア更新方式(1)"、情報処理学会第66回全国大会講演論文集、平成16年、p.1-21-p.1-22
通信装置の再起動中には通信機能が利用できなくなるため、通信サービスの提供が一時中断される。そのため、ファームウェアの更新が及ぼす、通信サービスの利用者への影響は大きい。しかしながら、もし実行中のファームウェアを停止させることなく、揮発性メモリに展開されたファームウェアを直接書き換える場合、ファームウェアが中途半端に書き換えられる可能性がある。中途半端に書き換えられたファームウェアは、セグメンテーションエラーやメモリエラーを発生させたり、動作中のハードウェアに対して致命的な故障を発生させたりする場合がある。従って、従来、通信サービスの提供を中断させずにファームウェアを更新することは困難であった。
例えば、光アクセスネットワークで使用される局舎側の通信装置である加入者線端局装置(OLT;Optical Line Network)においても上記の課題がある。従来、OLTにおいて、通信サービスの中断を伴わずにファームウェアを更新させることは困難であった。上記と同様、OLTの不揮発性メモリに記憶されたファームウェアは、OLTの起動時に、揮発性メモリに展開されて実行される。ファームウェアを更新する場合には、不揮発性メモリのファームウェアを書き換えることによって、次回の起動時からは更新されたファームウェアが揮発性メモリ上に展開される。
ファームウェアの更新時に再起動を必要とする装置に対して、ファームウェアの更新による影響を小さくするための従来技術として、ファームウェアの更新時間を短縮させる技術が検討されている。例えば、更新後のファームウェアを予め不揮発性メモリに記憶させておくことにより、不揮発性メモリ内に更新前のファームウェア及び更新後のファームウェアの2面のファームウェアが保持された状態にする。そして、装置の起動時に、2面のファームウェアのいずれかを選択して起動させるという技術である。しかしながら、この従来技術では、ファームウェアを不揮発性メモリに書き込むことに要する時間は短縮されるものの、更新後のファームウェアを揮発性メモリに展開させるための、装置の再起動はやはり必要である。
また、ファームウェアの更新時におけるサービスの中断を防ぐ方法として、装置を冗長化する方法が考えられる。例えば、光スイッチ等を用いて物理的な通信経路を変更して、ファームウェアを更新させる対象の装置とは別の装置へ処理を切り替える。そして、ファームウェアの更新が完了したら再び元の通信経路へ戻す方法である。この場合、上述した、揮発性メモリに展開されたファームウェアを直接書き換える方法と比べて、より安全にファームウェアが更新されることが見込まれる。しかしながら、通信経路を切り替えるための光スイッチ及び予備のOLTが別途必要となることから、このように装置を冗長化する方法ではコストが高くなり、経済性の観点から懸念される。
上記事情に鑑み、本発明は、コストを抑えつつ、サービスを中断させずにプログラムを更新することができる技術を提供することを目的としている。
本発明の一態様は、更新前のファームウェアに関する第1データと、更新後のファームウェアに関する第2データと、前記第1データ又は前記第2データと前記第1データ又は前記第2データが位置付けられたアドレスとが対応付けられたテーブルと、を記憶するメモリと、前記テーブルに定義された前記アドレスに位置付けられた前記第1データ又は前記第2データに基づく処理を実行するプロセッサと、前記テーブルにおいて前記第1データに対応付けられた前記アドレスを、前記更新前のファームウェアにおいて定義された前記第1データに基づく処理が実行中ではないタイミングである更新タイミングに従って、前記第2データが位置付けられたアドレスに書き換える書込部と、を備える通信装置である。
また、本発明の一態様は、通信装置のコンピュータによる情報処理方法であって、更新前のファームウェアに関する第1データと、更新後のファームウェアに関する第2データと、前記第1データ又は前記第2データと前記第1データ又は前記第2データが位置付けられたアドレスとが対応付けられたテーブルと、を記憶するステップと、前記テーブルに定義された前記アドレスに位置付けられた前記第1データ又は前記第2データに基づく処理を実行するステップと、前記テーブルにおいて前記第1データに対応付けられた前記アドレスを、前記更新前のファームウェアにおいて定義された前記第1データに基づく処理が実行中ではないタイミングである更新タイミングに従って、前記第2データが位置付けられたアドレスに書き換える書込ステップと、を有する情報処理方法である。
本発明により、コストを抑えつつ、サービスを中断させずにプログラムを更新することができる。
本発明を実施するための形態を、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
<第1の実施形態>
以下、本発明の第1の実施形態について説明する。
以下、本発明の第1の実施形態について説明する。
[光通信システムの構成]
図1は、第1の実施形態に係る光通信システム1の構成の一例を示す図である。光通信システム1は、光信号を用いて通信するシステムである。光通信システム1は、光アクセス装置2と、制御端末3とを備える。
なお、ここでは光信号を用いてONU(Optical Network Unit;加入者線終端装置)等の他の通信装置との通信を行う光アクセス装置2を備える光通信システム1を一例として説明するが、これに限られるものではない。光通信とは異なる手段で通信を行うその他の通信装置及び通信システムであっても構わない。
図1は、第1の実施形態に係る光通信システム1の構成の一例を示す図である。光通信システム1は、光信号を用いて通信するシステムである。光通信システム1は、光アクセス装置2と、制御端末3とを備える。
なお、ここでは光信号を用いてONU(Optical Network Unit;加入者線終端装置)等の他の通信装置との通信を行う光アクセス装置2を備える光通信システム1を一例として説明するが、これに限られるものではない。光通信とは異なる手段で通信を行うその他の通信装置及び通信システムであっても構わない。
光アクセス装置2は、不揮発性メモリ20と、起動処理部21と、揮発性メモリ22と、プロセッサ23と、通信部24と、書込部25と、を備える。
制御端末3は、パーソナルコンピュータ等の情報処理装置である。制御端末3は、更新後ファームウェア300を記憶している。更新後ファームウェア300及び後述する更新前ファームウェア200は、例えば、光アクセス装置2が光通信を実行するためのファームウェアである。
仮に、更新前ファームウェア221をプロセッサ23が使用している間に、制御端末3が更新後ファームウェア300を揮発性メモリ22に書き込んでしまった場合、光アクセス装置2に、想定外の異常が発生してしまう場合がある。そこで、光アクセス装置2は、揮発性メモリ22に記憶されている更新前ファームウェア221を書き換えないように、揮発性メモリ22の空き領域に、更新後ファームウェア300を更新後ファームウェア222として書き込む。揮発性メモリ22の空き領域に更新後ファームウェア222を書き込むことによって、更新前ファームウェア221をプロセッサ23が使用している間であっても、光アクセス装置2は、揮発性メモリ22に更新後ファームウェア222を書き込むことができる。
また、光アクセス装置2は、ファームウェアの更新を、更新前ファームウェア221において処理される関数(第1データ)が呼び出された際の呼び出し先を更新後ファームウェア222内の関数(第2データ)へ変更することによって実施する。なお、呼び出し先が変更される対象は関数のデータに限られるものではなく、例えばプログラム等の、その他のデータであってもよい。以下の説明においては、一例として関数の呼び出し先が変更される場合について説明する。
以下に、光アクセス装置2の詳細を説明する。
起動処理部21は、大規模集積回路(LSI;Large Scale Integration)や特定用途向け集積回路(ASIC;Application Specific Integrated Circuit)等のハードウェアを用いて実現される。起動処理部21は、光アクセス装置2の起動時であってプロセッサ23が起動する前に、不揮発性メモリ20に記憶されている更新前ファームウェア200を、更新前ファームウェア221として揮発性メモリ22に書き込む。
更新前ファームウェア200は、例えば、光アクセス装置2が光通信を実行するためのファームウェアである。
起動処理部21は、大規模集積回路(LSI;Large Scale Integration)や特定用途向け集積回路(ASIC;Application Specific Integrated Circuit)等のハードウェアを用いて実現される。起動処理部21は、光アクセス装置2の起動時であってプロセッサ23が起動する前に、不揮発性メモリ20に記憶されている更新前ファームウェア200を、更新前ファームウェア221として揮発性メモリ22に書き込む。
更新前ファームウェア200は、例えば、光アクセス装置2が光通信を実行するためのファームウェアである。
また、起動処理部21は、光アクセス装置2が起動するときであってプロセッサ23が起動する前に、不揮発性メモリ20等の不揮発性の記録媒体に記憶されているプラットフォームファームウェア220を、揮発性メモリ22に書き込む。以下、不揮発性の記録媒体の一例として、不揮発性メモリ20を適用した場合について説明を続ける。
プラットフォームファームウェア220は、例えば、オペレーティングシステム等のファームウェアである。
プラットフォームファームウェア220は、例えば、オペレーティングシステム等のファームウェアである。
不揮発性メモリ20は、例えば、読み出し専用メモリ(ROM;Read Only Memory)等の読み出し専用の記録媒体である。不揮発性メモリ20は、書き換え可能なフラッシュROMであってもよい。不揮発性メモリ20は、更新前ファームウェア200を記憶している。不揮発性メモリ20は、更新後ファームウェア222を記憶していない。以下では、更新前ファームウェア200は、不揮発性メモリ20に記憶されている状態でプロセッサ23から参照された場合でもプロセッサ23が動作可能な状態で、不揮発性メモリ20に記憶されている。すなわち、更新前ファームウェア200のバイナリデータは、更新前ファームウェア221のバイナリデータと同じである。
揮発性メモリ22は、例えば、読み書き可能なメモリ(RAM;Random Access Memory)等の揮発性の記録媒体である。揮発性メモリ22は、起動処理部21による書き込み操作によって、光アクセス装置2が起動したときに、プラットフォームファームウェア220を記憶する。揮発性メモリ22は、光アクセス装置2が起動したときであってプロセッサ23が起動する前に、起動処理部21による書き込み操作によって、更新前ファームウェア221を記憶する。揮発性メモリ22は、プラットフォームファームウェア220及び更新前ファームウェア221を記憶した場合でも、十分な容量の空き領域を備えている。十分な容量とは、少なくとも更新後ファームウェア222を記憶できる容量である。揮発性メモリ22は、プロセッサ23が起動した後に、制御端末3が出力する更新後ファームウェア300を、更新後ファームウェア222として揮発性メモリ22の空き領域に記憶する。
更新前ファームウェア221は、関数の参照先を含む。関数には、揮発性メモリ22におけるその関数の先頭アドレスが対応付けられている。
更新後ファームウェア222は、関数の新たな参照先を含む。関数には、揮発性メモリ22におけるその関数の先頭アドレスが対応付けられている。
更新後ファームウェア222は、関数の新たな参照先を含む。関数には、揮発性メモリ22におけるその関数の先頭アドレスが対応付けられている。
揮発性メモリ22は、関数テーブル224を更に記憶する。関数テーブル224は、関数と、揮発性メモリ22におけるその関数の先頭アドレスとが関連付けられた、テーブル形式のデータである。なお、関数テーブル224は、プラットフォームファームウェア220、更新前ファームウェア221又は更新後ファームウェア222のいずれかに含まれている構成であってもよい。
書込部25は、例えばLSIやASIC等のハードウェアを用いて実現される。なお、書込部25は、ソフトウェアによって実装される構成であってもよい。この場合、例えば、書込部25の機能を実装するためのプログラムがプラットフォームファームウェア220(OS)に含まれており、OSのシステムコールに応じてソフトウェアの実装がなされる。書込部25は、制御端末3が出力した書込要求に基づいて、揮発性メモリ22の空き領域に更新後ファームウェア222を書き込むことができるか否かを判定する。ここで、書込要求は、更新後ファームウェア222の容量を示す情報を含む。
具体的には、書込部25は、書込要求に含まれる更新後ファームウェア222の容量に基づいて、揮発性メモリ22の空き領域が、更新後ファームウェア222の容量以上であるか否かを判定する。書込部25は、揮発性メモリ22の空き領域が、更新後ファームウェア222の容量以上である場合には、更新後ファームウェア222を、揮発性メモリ22に書き込む。一方、書込部25は、揮発性メモリ22の空き領域が、更新後ファームウェア222の容量未満である場合には、更新後ファームウェア222を、揮発性メモリ22に書き込まない。なお、書込部25は、揮発性メモリ22の空き領域が、更新後ファームウェア222の容量未満である場合には、揮発性メモリ22の空き領域が、更新後ファームウェア222の容量未満であることを通知するようにしてもよい。
また、書込部25は、制御端末3が出力した書込要求に基づいて、関数テーブル224に含まれる先頭アドレスの値を書き換える。
プロセッサ23は、揮発性メモリ22に記憶されているプラットフォームファームウェア220に基づく動作を実行する。また、プロセッサ23は、関数テーブル224に基づいて、更新前ファームウェア221又は更新後ファームウェア222に基づく動作を実行する。具体的には、プロセッサ23は、更新前ファームウェア221に含まれる関数の先頭アドレスを、関数テーブル224を参照して取得する。そして、プロセッサ23は、取得した先頭アドレスに位置付けられた関数を実行する。
通信部24は、更新前ファームウェア221又は更新後ファームウェア222に基づく動作を実行するプロセッサ23による制御に応じて、光信号を用いて、ONU等の他の通信装置と通信する。
[光アクセス装置による間接参照]
図2は、第1の実施形態に係る光アクセス装置2における間接参照の一例を示す図である。
図2は、第1の実施形態に係る光アクセス装置2における間接参照の一例を示す図である。
揮発性メモリ22は、予め関数テーブル224を記憶している。関数テーブル224は、例えば、プロセッサ23によって関数ポインタを用いて生成され、揮発性メモリ22に記憶される。これにより、更新前ファームウェア221に含まれる各関数の先頭アドレスを示す情報が関数テーブル224に格納される。
プロセッサ23は、実行中のプログラムによって関数が呼び出された場合、関数テーブル224を参照して、呼び出された関数の先頭アドレスを取得する。プロセッサ23は、取得した先頭アドレスへ処理を移行させる。
ファームウェアの更新を実施する場合、書込部25は、制御端末3からの書込要求に基づいて、関数テーブル224において定義された、関数の先頭アドレスの値を書き換える。
図2に示すように、関数テーブル224には、「function_A」と「function_A」の先頭アドレスである「0x00001500」とが関連付けて記憶されている。同様に、関数テーブル224には、「function_B」と「function_B」の先頭アドレス「0x00001200」とが関連付けて記憶されており、「function_C」と「function_C」の先頭アドレス「0x00001300」とが関連付けて記憶されている。
図2に示すように、関数テーブル224に定義された、「function_A」の先頭アドレスである「0x00001500」は、書込部25によって「0x00001100」から書き換えられた値である。すなわち、更新前ファームウェアに含まれる関数「function_A」の先頭アドレスは「0x00001100」であり、更新後ファームウェアに含まれる関数「function_A」の先頭アドレスは「0x00001500」であることを示している。
以上の構成により、光アクセス装置2は、関数テーブル224を介して目的の関数を呼び出す間接的な処理を行うことによって、ファームウェアの更新を実行する。これにより、光アクセス装置2は、動作中のプログラムを上書きすることなく処理を変更することができる。そのため、光アクセス装置2によれば、基本ソフトウェア(OS;Operating System)のメモリ保護機能を回避して揮発性メモリ22上のデータが書き換えられるため、ファームウェア更新時の安定性を担保することができる。
[光アクセス装置の動作]
図3は、第1の実施形態に係る光アクセス装置2の動作の一例を示すフローチャートである。
図3は、第1の実施形態に係る光アクセス装置2の動作の一例を示すフローチャートである。
プロセッサ23は、ファームウェアを更新するか否かを判定する(ステップS001)。運用中のファームウェアに対して、新機能の追加、既存機能の変更又はバグ修正が行われる場合(ステップS001、Yes)、プロセッサ23は、ファームウェアを更新すると判定する。そうでない場合(ステップS001、No)、プロセッサ23は、ファームウェアを更新しないと判定し、本フローチャートが示す処理を終了させる。
プロセッサ23が、ファームウェアを更新すると判定した場合(ステップS001、Yes)、書込部25は、制御端末3から出力された更新後ファームウェア300を取得する(ステップS002)。なお、制御端末3等において更新後ファームウェア300が生成される際には、後に必要となる更新後ファームウェア300のメモリマップ等の付加情報も予め生成され、光アクセス装置2によって更新後ファームウェア300とともに取得されている必要がある。
書込部25は、取得した更新後ファームウェア300を、更新後ファームウェア222として揮発性メモリ22の空き領域に書き込みを行う(ステップS003)。上述したように、揮発性メモリ22の空き領域に更新後ファームウェア222が書き込まれるため、実行中の更新前ファームウェア221を上書きすることが防止される。
プロセッサ23は、不具合なくファームウェアの更新を完了させるため、更新前ファームウェア221から更新後ファームウェア222への処理の移行をする前に、揮発性メモリ22における更新後ファームウェア222の展開が、エラーが発生することなく完了したか否かを確認する(ステップS004)。エラーが発生したことが確認された場合(ステップS004、Yes)、プロセッサ23は、再度、取得した更新後ファームウェア300を、更新後ファームウェア222として揮発性メモリ22の空き領域に書き込む(ステップS003)。
エラーが発生していないことが確認された場合(ステップS004、No)、プロセッサ23は、ファームウェアを更新可能なタイミングであるか否かを判定する(ステップS005)。ファームウェアの更新を安全に実行するためには、動作中のプログラムの処理状況を確認して、ファームウェアの更新を実施するタイミングを適切に判定する必要がある。なお、ファームウェアを更新可能なタイミングであるか否かを判定する際の判定基準については、後に詳しく説明する。
更新タイミングの判断は、ファームウェアに予め組み込まれた更新実施ポイントにおいて行われる。プロセッサ23は、プログラムが実行される周期ごとに、更新実施ポイントにおいて更新フラグの有無を確認する。
更新フラグに基づいて、ファームウェアを更新可能なタイミングではないと判定された場合(ステップS005、No)、プロセッサ23は、本フローチャートが示す処理を終了させる。更新フラグに基づいて、ファームウェアを更新可能なタイミングであると判定された場合(ステップS005、Yes)、書込部25は、関数テーブル224に定義された関数の先頭アドレスの値を書き換える(ステップS006)。そして、プロセッサ23は、本フローチャートが示す処理を終了させる。
図4に示すフローチャートは、関数テーブル224に定義された先頭アドレスを書き換える処理(すなわち、図3のステップS006の処理)における光アクセス装置2の動作を更に詳細に示すフローチャートである。
ファームウェアの更新を実施するためには、揮発性メモリ22に記憶された関数テーブル224に定義されている関数の先頭アドレスの値を書き換える必要があるが、書き換えた先頭アドレスの値が誤っていた場合にはプログラムが異常停止する場合がある。従って、書込部25は、先頭アドレスの値を書き換える前に、書換箇所(揮発性メモリ22上における、更新対象の関数の先頭アドレスの位置)が書換可能なエリアに存在することを確認する(ステップS601)。
書込部25は、関数テーブル224における、更新対象の関数の先頭アドレスの値を順に書き換える(ステップS602)。更新対象の関数が複数ある場合、書込部25は、更新対象の関数について1つずつ順に先頭アドレスの値の書き換えを行う。
更新対象の関数であって、先頭アドレスの値の書き換えが完了していない関数が存在する場合(ステップS603、No)、書込部25は、引き続き、関数テーブル224における、更新対象の関数の先頭アドレスの値を書き換える処理を継続する(ステップS602)。
更新対象の全ての関数について、先頭アドレスの値の書き換えが完了した場合(ステップS603、Yes)、書込部25は、揮発性メモリ22上に展開された更新対象の関数の先頭アドレスの値と、関数テーブル224上で書き換えられた上記関数に関連付けられた先頭アドレスの値とが一致しているか否かを確認する。
両者の先頭アドレスの値が一致していない場合(ステップS604、No)、プロセッサ23は、関数テーブル224に定義された先頭アドレスを書き換える処理(すなわち、図3のステップS006の処理)を再度実行しなおす。両者の先頭アドレスの値が一致している場合(ステップS604、Yes)、プロセッサ23は、本フローチャートが示す処理を終了させる。
[更新タイミングの判定基準]
以下に、ファームウェアを更新可能なタイミングであるか否かの判定における判定基準について説明する。
プラットフォームファームウェア220内で実行される周期処理内において、以下に説明するタイミングのいずれかに、更新実施ポイントが組み込まれる。そして、毎周期もしくは定期的に、組み込まれた更新ポイントのタイミングでファームウェアの更新が必要であるか否かの確認がなされる。ファームウェアの更新が必要である場合には、ファームウェアの更新が行われる。
図5は、プロセスの処理状況と更新タイミングとの対応を説明するための模式図である。なお、ここでいうプロセスは、例えば、ファームウェアに含まれる関数に相当するものである。
以下に、ファームウェアを更新可能なタイミングであるか否かの判定における判定基準について説明する。
プラットフォームファームウェア220内で実行される周期処理内において、以下に説明するタイミングのいずれかに、更新実施ポイントが組み込まれる。そして、毎周期もしくは定期的に、組み込まれた更新ポイントのタイミングでファームウェアの更新が必要であるか否かの確認がなされる。ファームウェアの更新が必要である場合には、ファームウェアの更新が行われる。
図5は、プロセスの処理状況と更新タイミングとの対応を説明するための模式図である。なお、ここでいうプロセスは、例えば、ファームウェアに含まれる関数に相当するものである。
・単一プロセスに対するファームウェアの更新の場合
例えば、図5に示す「プロセスA」のみを更新対象とした場合、下記の3通りの更新タイミングが考えられる。ファームウェアにおいて、以下の更新タイミングのいずれか又は複数の箇所に、予め更新実施ポイントを組み込んでおく。
1-(1)単一プロセス実行前
1-(2)単一プロセス実行中
1-(3)単一プロセス実行後
例えば、図5に示す「プロセスA」のみを更新対象とした場合、下記の3通りの更新タイミングが考えられる。ファームウェアにおいて、以下の更新タイミングのいずれか又は複数の箇所に、予め更新実施ポイントを組み込んでおく。
1-(1)単一プロセス実行前
1-(2)単一プロセス実行中
1-(3)単一プロセス実行後
細かいバグ修正やパッチ修正等を行う場合には、単一プロセスに対してファームウェアの更新を実施することで、更新範囲を絞ることができる。そのため、単一プロセスに対するファームウェア更新には、ファームウェア更新による影響範囲を削減することができるという利点がある。
間接参照の書き換えによって,単一プロセスの実行前後(すなわち、図5に示す1-(1)又は1-(3)のタイミング)でファームウェア更新が実施された場合、次回のプロセス実行時からファームウェアの更新が反映される。また、更新対象のプロセスの実行中(すなわち、図5に示す1-(2)のタイミング)にファームウェア更新が実施された場合、実行中である更新対象のプロセスが完了した後、次回のプロセス実行時からファームウェアの更新が反映される。
なお、間接参照先の書き換えによるファームウェア更新では、プロセスが実行される前に変更が反映されるため、実行中のプロセスに対して影響を及ぼすことがないという利点がある。
・複数プロセスに対するファームウェアの更新の場合
例えば、図5に示す「プロセスA」及び「プロセスB」の2つのプロセスを更新対象とした場合、下記の2通りの更新タイミングが考えられる。ファームウェアにおいて、以下の更新タイミングのいずれか一方又は両方の箇所に、予め更新実施ポイントを組み込んでおく。
2-(1)複数プロセス実行前
2-(2)複数プロセス実行後
例えば、図5に示す「プロセスA」及び「プロセスB」の2つのプロセスを更新対象とした場合、下記の2通りの更新タイミングが考えられる。ファームウェアにおいて、以下の更新タイミングのいずれか一方又は両方の箇所に、予め更新実施ポイントを組み込んでおく。
2-(1)複数プロセス実行前
2-(2)複数プロセス実行後
複数プロセスの実行中に、関数テーブル224に定義された先頭アドレスの書き換えが行われた場合、プロセス間で正常なデータを引き継ぐことができなくなる可能性がある。そのため、更新対象の複数のプロセスの全てが実行される前か、又は更新対象の複数のプロセスの全てが実行された後に、まとめてファームウェアの更新を実施することによって、ファームウェア更新前後の光アクセス装置2の動作を安定させることができる。
・全プロセスに対するファームウェアの更新の場合
更新対象のプログラム全体を変更する場合(例えば、図5に示す「プロセスA」、「プロセスB」及び「プロセスC」全てを更新対象とした場合)、更新時の不具合防止の観点から、下記のように、全プロセスの実行前又は全プロセスの実行後に更新が実施されることが好ましい。
3-(1)全プロセス実行前
3-(2)全プロセス実行後
更新対象のプログラム全体を変更する場合(例えば、図5に示す「プロセスA」、「プロセスB」及び「プロセスC」全てを更新対象とした場合)、更新時の不具合防止の観点から、下記のように、全プロセスの実行前又は全プロセスの実行後に更新が実施されることが好ましい。
3-(1)全プロセス実行前
3-(2)全プロセス実行後
プログラム実行中における揮発性メモリ22上のデータの書き換えは,メモリエラーの発生の原因となり、プログラムをクラッシュさせてしまう可能性が非常に高くなる。一方、更新対象のプログラムの全プロセスの実行前又は全プロセスの実行後のタイミングであれば、メモリエラーの発生の可能性を相対的に低くすることができる。従って、上記3-(1)及び3-(2)のタイミングでファームウェアの更新を実施することによって、更新後ファームウェアへの移行を安全に行うことができる。
以上説明したように、第1の実施形態に係る光アクセス装置2は、揮発性メモリ22と、プロセッサ23と、を含んで構成される。揮発性メモリ22は、更新前ファームウェア221に含まれる関数(第1データ)と、更新後ファームウェア222に含まれる関数(第2データ)と、関数テーブル224と、を記憶する。関数テーブル224は、更新前ファームウェア221に含まれる関数又は更新後ファームウェア222に含まれる関数と、揮発性メモリ22において更新前ファームウェア221に含まれる関数又は更新後ファームウェア222に含まれる関数が位置付けられたアドレスと、が対応付けられたテーブルである。また、プロセッサ23は、関数テーブル224に定義されたアドレスに位置付けられた、更新前ファームウェア221に含まれる関数又は更新後ファームウェア222に含まれる関数に基づく処理を実行する。
また、第1の実施形態に係る光アクセス装置2は、書込部25をさらに備える。書込部25は、関数テーブル224において更新前ファームウェア221に含まれる関数に対応付けられたアドレスを、揮発性メモリ22において更新後ファームウェア222に含まれる関数が位置付けられたアドレスに書き換える。
また、書込部25は、更新前ファームウェア200において定義された更新タイミングに従ってアドレスを書き換える。
また、書込部25は、揮発性メモリ22の空き領域に更新後ファームウェア222を書き込む。
また、書込部25は、更新前ファームウェア200において定義された更新タイミングに従ってアドレスを書き換える。
また、書込部25は、揮発性メモリ22の空き領域に更新後ファームウェア222を書き込む。
以上の構成により、第1の実施形態に係る光アクセス装置2によれば、ファームウェア内に間接的な処理(間接参照)が組み入れられることによって、通信サービスの提供を中断させることなくファームウェアの更新をすることが可能となる。また、以上の構成により、第1の実施形態に係る光アクセス装置2によれば、装置を冗長化する従来の方法と比べて、より低コストに、通信サービスを中断させることのないファームウェアの更新を実現することができる。
<第2の実施形態>
以下、本発明の第2の実施形態について説明する。
以下、本発明の第2の実施形態について説明する。
図4に示したように、上述した第1の実施形態においては、光アクセス装置2は、更新対象の関数それぞれについて1つずつ順に、関数テーブル224に定義された先頭アドレスの値を書き換える構成であった。この構成では、更新対象の関数が多く存在する場合、ファームウェアの更新に時間がかかることがある。
一方、以下に説明する第2の実施形態に係る光アクセス装置6は、ファームウェアを更新する場合、関数テーブルの単位で更新対象の関数の先頭アドレスの値をまとめて更新する。これにより、更新対象である全ての関数の先頭アドレスの値が一度の処理でまとめて書き換えられる。そのため、とくに更新対象の関数が多く存在する場合には、光アクセス装置6は、上述した第1の実施形態に係る光アクセス装置2と比べて、ファームウェアの更新に要する時間をより短くすることができる。
[光通信システムの構成]
図6は、第2の実施形態に係る光通信システム5の構成の一例を示す図である。上述した第1の実施形態に係る光通信システム1と同様に、光通信システム5は、光信号を用いて通信するシステムである。光通信システム5は、光アクセス装置6と、制御端末3とを備える。
図6は、第2の実施形態に係る光通信システム5の構成の一例を示す図である。上述した第1の実施形態に係る光通信システム1と同様に、光通信システム5は、光信号を用いて通信するシステムである。光通信システム5は、光アクセス装置6と、制御端末3とを備える。
光アクセス装置6は、不揮発性メモリ20と、起動処理部21と、揮発性メモリ62と、プロセッサ23と、通信部24と、書込部65と、を備える。
なお、光通信システム5が有する機能ブロックのうち、上述した第1の実施形態に係る光通信システム1が有する機能ブロックと機能が共通する機能ブロックについては、同一の符号を付し、説明を省略する。
なお、光通信システム5が有する機能ブロックのうち、上述した第1の実施形態に係る光通信システム1が有する機能ブロックと機能が共通する機能ブロックについては、同一の符号を付し、説明を省略する。
揮発性メモリ62は、プラットフォームファームウェア220と、更新前ファームウェア221と、更新後ファームウェア222と、関数テーブル624と、関数テーブル値625を記憶する。
書込部65は、制御端末3から出力された書込要求に基づいて、揮発性メモリ62に、更新後ファームウェア222と、関数テーブル624と、関数テーブル値625と、を記憶させる。
関数テーブル624は、第1の実施形態において説明した、1つの関数群のみの各関数の先頭アドレスが定義された関数テーブル224とは異なり、関数テーブル値625に設定されうる関数テーブル値ごとの関数群の各関数の先頭アドレスがそれぞれ定義されたテーブルである。なお、関数テーブル624及び関数テーブル値625の構成については、後に詳しく説明する。
プロセッサ23は、関数テーブル624と関数テーブル値625とを参照することにより、実行する関数の揮発性メモリ62上における先頭アドレス値を取得してファームウェアを実行する。
[光アクセス装置による間接参照]
図7は、第2の実施形態に係る光アクセス装置6における間接参照の一例を示す図である。
図7は、第2の実施形態に係る光アクセス装置6における間接参照の一例を示す図である。
図7(A)は、各関数のバージョンと先頭アドレスの値との対応付けを示したものである。左から、バージョン1(Ver.1)の関数からなる関数群、バージョン2(Ver.2)の関数からなる関数群、及び、バージョン3(Ver.3)の関数からなる関数群、が示されている。すなわち、バージョン1(Ver.1)の関数は、更新前ファームウェア221に含まれる関数であり、バージョン2(Ver.1)及びバージョン3(Ver.3)の関数は、更新後ファームウェア222に含まれる関数である。なお、バージョン3(Ver.3)の関数は、バージョン2(Ver.2)の関数が含まれる更新後ファームウェア222ではなく、当該更新後ファームウェア222を更に更新するファームウェアに含まれていてもよい。
例えば、一番左の関数群には、バージョン1の関数「function_A」、バージョン1の関数「function_B」、及び、バージョン1の関数「function_C」が含まれる。図7(A)に示すように、揮発性メモリ62上における、バージョン1の関数「function_A」の先頭アドレスの値は「0x00001100」であり、バージョン1の関数「function_B」の先頭アドレスの値は「0x00001200」であり、及び、バージョン1の関数「function_C」の先頭アドレスの値は「0x00001300」である。
図7(B)は、関数テーブル624の構成の一例を示す。図示するように、関数テーブル624には、関数テーブル値((1)~(3))ごとの関数群の各関数(「function_A」、「function_B」及び「function_C」)の先頭アドレスがそれぞれ定義されている。
図7(B)に示すように、例えば、関数テーブル値625に設定された値が(1)であるならば、関数「function_A」が呼び出された場合にプロセッサ23が参照する、揮発性メモリ62上におけるアドレスの値は「0x00001100」である。すなわち、バージョン1の関数「function_A」の処理が実行される。同様に、関数テーブル値625に設定された値が(1)であるならば、関数「function_B」が呼び出された場合にはバージョン1の関数「function_B」の処理が実行され、関数「function_C」が呼び出された場合にはバージョン1の関数「function_C」の処理が実行される。
また、図7(B)に示すように、例えば、関数テーブル値625に設定された値が(2)であるならば、関数「function_A」が呼び出された場合にプロセッサ23が参照する、揮発性メモリ62上におけるアドレスの値は「0x01001100」である。すなわち、バージョン2の関数「function_A」の処理が実行される。同様に、関数テーブル値625に設定された値が(2)であるならば、関数「function_B」が呼び出された場合にはバージョン1の関数「function_B」の処理が実行され、関数「function_C」が呼び出された場合にはバージョン1の関数「function_C」の処理が実行される。
すなわち、例えば、関数テーブル値625の値が(1)から(2)へ設定変更された場合とは、関数「function_A」のみがバージョン1からバージョン2へ変更され、関数「function_B」及び関数「function_C」はバージョン1のままで、処理が実行されるようになることを示す。
また、図7(B)に示すように、例えば、関数テーブル値625に設定された値が(3)であるならば、関数「function_A」が呼び出された場合にプロセッサ23が参照する、揮発性メモリ62上におけるアドレスの値は「0x02001100」である。すなわち、バージョン3の関数「function_A」の処理が実行される。同様に、関数テーブル値625に設定された値が(3)であるならば、関数「function_B」が呼び出された場合にはバージョン3の関数「function_B」の処理が実行され、関数「function_C」が呼び出された場合にはバージョン3の関数「function_C」の処理が実行される。
すなわち、例えば、関数テーブル値625の値が(1)から(3)へ設定変更された場合とは、関数「function_A」、関数「function_B」及び関数「function_C」の全てがバージョン1からバージョン3へ変更されて処理が実行されるようになることを示す。
図7(A)に示す3つの矢印は、関数テーブル値625の値に(1)が設定された場合に実行される関数、関数テーブル値625の値に(2)が設定された場合に実行される関数、及び、関数テーブル値625の値に(3)が設定された場合に実行される関数が分かるように、それぞれ図示したものである。
このように、関数テーブル624は、更新前ファームウェア221に含まれる関数とアドレスとが対応付けられた情報(第1情報)と、更新後ファームウェア222に含まれる関数とアドレスとが対応付けられた情報(第2情報)とを含む。また、関数テーブル値625は、更新前ファームウェア221に含まれる関数を実行するか、又は、更新後ファームウェア222に含まれる関数を実行するかを識別する識別情報に相当する。
光アクセス装置6は、上述した構成を有する関数テーブル624及び関数テーブル値625を用いることによって、更新対象である全ての関数の先頭アドレスの値を一度の処理でまとめて書き換えることができる。
[光アクセス装置の動作]
図8は、第2の実施形態に係る光アクセス装置6の動作の一例を示すフローチャートである。
図8は、第2の実施形態に係る光アクセス装置6の動作の一例を示すフローチャートである。
なお、図3に示した、第1の実施形態に係る光アクセス装置2の動作を示すフローチャートのうち、ステップS001~S005の処理については、第2の実施形態に係る光アクセス装置6においても同様の処理であるため、説明を省略する。従って、以下に説明する図8に示すフローチャートは、関数テーブル624に定義された先頭アドレスを書き換える処理(すなわち、図3のステップS006に相当する処理)における光アクセス装置6の動作を更に詳細に示すフローチャートである。
書込部65は、揮発性メモリ82に記憶された関数テーブル値625の値を確認する(ステップS611)。書込部65は、設定された関数テーブル値625の値と、実行される処理における関数テーブル値(図示せず)とが一致しているか否かを判定する(ステップS612)。実行される処理における関数テーブル値(図示せず)は、例えば揮発性メモリ22等の記憶媒体に記憶されている。
設定された関数テーブル値625の値と、実行される処理における関数テーブル値とが一致している場合(ステップS612、Yes)、プロセッサ23は、本フローチャートが示す処理を終了させる。設定された関数テーブル値625の値と、実行される処理における関数テーブル値とが一致していない場合(ステップS612、No)、書込部65は、関数テーブル624を更新する(ステップS613)。なお、関数テーブル624を丸ごと更新するのではなく、差分のみ追記又は変更する構成であってもよい。
書込部65は、実行される処理における関数テーブル値(図示せず)を関数テーブル値625に設定された値に書き換える(ステップS614)。書込部65は、関数テーブル値625に設定された値と、実行される処理における関数テーブル値(図示せず)とが一致しているか否かを確認する(ステップS615)。
関数テーブル値625に設定された値と、実行される処理における関数テーブル値(図示せず)とが一致していない場合(ステップS615、No)、書込部65は、再度、関数テーブル624及び関数テーブル値625の更新の処理をやり直す。関数テーブル値625に設定された値と、実行される処理における関数テーブル値(図示せず)とが一致している場合(ステップS615、Yes)、プロセッサ23は、本フローチャートが示す処理を終了させる。
以上説明したように、第2の実施形態に係る光アクセス装置6は、揮発性メモリ62と、プロセッサ23と、を備える。揮発性メモリ62は、更新前ファームウェア221に含まれる関数(第1データ)と、更新後ファームウェア222に含まれる関数(第2データ)と、関数テーブル624と、関数テーブル値625と、を記憶する。関数テーブル624は、更新前ファームウェア221に含まれる関数と更新前ファームウェア221に含まれる関数が位置付けられたアドレスとが対応付けられた第1情報と、更新後ファームウェア222に含まれる関数と更新後ファームウェア222に含まれる関数が位置付けられたアドレスとが対応付けられた第2情報と、を含む。関数テーブル値625は、更新後ファームウェア222に含まれる関数と、更新後ファームウェア222に含まれる関数と、を識別する値である。プロセッサ23は、揮発性メモリ62に記憶された関数テーブル値625によって識別される第1情報又は前記第2情報に定義されたアドレスに位置付けられた、更新前ファームウェア221に含まれる関数又は更新後ファームウェア222に含まれる関数に基づく処理を実行する。
以上の構成により、第2の実施形態に係る光アクセス装置6によれば、ファームウェアを更新する場合、関数テーブルの単位で更新対象の関数の先頭アドレスの値がまとめて更新される。これにより、更新対象である全ての関数の先頭アドレスの値が一度の処理でまとめて書き換えられる。そのため、とくに更新対象の関数が多く存在する場合には、光アクセス装置6は、上述した第1の実施形態に係る光アクセス装置2と比べて、ファームウェアの更新に要する時間をより短くすることができる。
以上説明した構成を備える各実施形態に係る光通信システムによれば、ファームウェア内に間接的な処理(間接参照)が組み入れられることによって、通信サービスの提供を中断させることなくファームウェアの更新をすることが可能となる。
間接参照によるファームウェアの更新の手法として、第1の実施形態においては、関数テーブルに保存されている先頭メモリアドレスを直接書き換える手法を説明した。また、第2の実施形態においては、とくに更新対象の関数が多い場合により有効な手法であって、複数の関数テーブル値関数テーブルを保持し、関数テーブル値を変更することによって実行する関数のバージョンを変更させる手法を説明した。
また、上記の手法を適用するにあたって、各実施形態に係る光通信システムにおいて、ファームウェアの更新タイミングを適切に判断するために、予めファームウェアに更新実施ポイントを組み込む構成について説明した。この構成によって、上述した各実施形態に係る光通信システムによれば、プログラムの異常停止等を生じさせることなく、サービスを中断させずにファームウェアの更新をすることが可能となる。
例えば、サービスを中断させずにファームウェアを更新することが可能になることによって、ファームウェアのバグ修正や新規サービスの提供に伴う機能追加及び機能変更が容易に実施可能となる。
また、従来、ファームウェアを更新させる場合、サービスを提供する事業者は、サービスを利用する利用者に対して事前周知を行ったり、利用者への影響を小さくするため夜間に更新作業を行ったりする必要があった。しかしながら、サービスを中断させずにファームウェアを更新することが可能になることによって、事業者による上記の作業が不要になる。これにより、例えば、通信設備の保守及び運用に係るコストの削減効果等も見込まれる。
上記の各実施形態において説明したファームウェアの更新方法は、装置を冗長化する従来の方法と比べて、より低コストに、通信サービスを中断させることのないファームウェアの更新を実現できる。
上記の各実施形態において説明したファームウェアの更新方法は、装置を冗長化する従来の方法と比べて、より低コストに、通信サービスを中断させることのないファームウェアの更新を実現できる。
なお、上述した実施形態における光アクセス装置2又は光アクセス装置6の一部又は全部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
1…光通信システム、2・6…光アクセス装置、3…制御端末、20…不揮発性メモリ、21…起動処理部、22・62…揮発性メモリ、23…プロセッサ、24…通信部、25・65…書込部、200・221…更新前ファームウェア、220…プラットフォームファームウェア、222・300…更新後ファームウェア、224・624…関数テーブル、625…関数テーブル値
Claims (5)
- 更新前のファームウェアに関する第1データと、更新後のファームウェアに関する第2データと、前記第1データ又は前記第2データと前記第1データ又は前記第2データが位置付けられたアドレスとが対応付けられたテーブルと、を記憶するメモリと、
前記テーブルに定義された前記アドレスに位置付けられた前記第1データ又は前記第2データに基づく処理を実行するプロセッサと、
前記テーブルにおいて前記第1データに対応付けられた前記アドレスを、前記更新前のファームウェアにおいて定義された前記第1データに基づく処理が実行中ではないタイミングである更新タイミングに従って、前記第2データが位置付けられたアドレスに書き換える書込部と、
を備える通信装置。 - 前記書込部は、動作中の前記更新前のファームウェアのプログラムの処理状況に基づいて判定された前記更新タイミングに従う
請求項1に記載の通信装置。 - 前記処理状況は、書き換えされる前記第1データに基づく処理の実行前又は実行後であることである
請求項2に記載の通信装置。 - 前記書込部は、前記メモリの空き領域に前記第2データを書き込む
請求項1から3のうちいずれか一項に記載の通信装置。 - 通信装置のコンピュータによる情報処理方法であって、
更新前のファームウェアに関する第1データと、更新後のファームウェアに関する第2データと、前記第1データ又は前記第2データと前記第1データ又は前記第2データが位置付けられたアドレスとが対応付けられたテーブルと、を記憶するステップと、
前記テーブルに定義された前記アドレスに位置付けられた前記第1データ又は前記第2データに基づく処理を実行するステップと、
前記テーブルにおいて前記第1データに対応付けられた前記アドレスを、前記更新前のファームウェアにおいて定義された前記第1データに基づく処理が実行中ではないタイミングである更新タイミングに従って、前記第2データが位置付けられたアドレスに書き換える書込ステップと、
を有する情報処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022184733A JP2023009293A (ja) | 2018-04-27 | 2022-11-18 | 通信装置及び情報処理方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018087760A JP7231807B2 (ja) | 2018-04-27 | 2018-04-27 | 通信装置及び情報処理方法 |
JP2022184733A JP2023009293A (ja) | 2018-04-27 | 2022-11-18 | 通信装置及び情報処理方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018087760A Division JP7231807B2 (ja) | 2018-04-27 | 2018-04-27 | 通信装置及び情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023009293A true JP2023009293A (ja) | 2023-01-19 |
Family
ID=68294296
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018087760A Active JP7231807B2 (ja) | 2018-04-27 | 2018-04-27 | 通信装置及び情報処理方法 |
JP2022184733A Pending JP2023009293A (ja) | 2018-04-27 | 2022-11-18 | 通信装置及び情報処理方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018087760A Active JP7231807B2 (ja) | 2018-04-27 | 2018-04-27 | 通信装置及び情報処理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11630656B2 (ja) |
EP (2) | EP4130985A1 (ja) |
JP (2) | JP7231807B2 (ja) |
CN (1) | CN112236748A (ja) |
WO (1) | WO2019208186A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7408931B2 (ja) * | 2019-06-28 | 2024-01-09 | 株式会社リコー | 電子機器、情報処理システム、情報処理方法およびプログラム |
JP6863628B1 (ja) * | 2020-01-10 | 2021-04-21 | Necプラットフォームズ株式会社 | 更新装置、リアルタイムシステム、更新方法及び更新プログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0644078A (ja) * | 1992-07-27 | 1994-02-18 | Fujitsu Ltd | オンライン動作中のファームウェア変更方式 |
EP2071453A1 (en) * | 2007-12-14 | 2009-06-17 | ITI Scotland Limited | Dynamic code update |
US8904107B2 (en) * | 2012-03-14 | 2014-12-02 | Hitachi, Ltd. | Storage apparatus and program update method |
JP5894495B2 (ja) | 2012-04-27 | 2016-03-30 | キヤノン株式会社 | 情報処理装置、情報処理装置におけるファームウエアの更新方法およびプログラム |
JP6609199B2 (ja) | 2016-03-01 | 2019-11-20 | ルネサスエレクトロニクス株式会社 | 組込み機器 |
JP6751197B2 (ja) | 2017-02-28 | 2020-09-02 | 日本電信電話株式会社 | 通信処理装置、情報処理装置、及び、通信処理装置の制御方法 |
-
2018
- 2018-04-27 JP JP2018087760A patent/JP7231807B2/ja active Active
-
2019
- 2019-04-08 US US17/045,987 patent/US11630656B2/en active Active
- 2019-04-08 EP EP22197202.9A patent/EP4130985A1/en active Pending
- 2019-04-08 EP EP19793366.6A patent/EP3764222A4/en active Pending
- 2019-04-08 WO PCT/JP2019/015308 patent/WO2019208186A1/ja unknown
- 2019-04-08 CN CN201980027268.5A patent/CN112236748A/zh active Pending
-
2022
- 2022-11-18 JP JP2022184733A patent/JP2023009293A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US11630656B2 (en) | 2023-04-18 |
JP2019192171A (ja) | 2019-10-31 |
WO2019208186A1 (ja) | 2019-10-31 |
EP4130985A1 (en) | 2023-02-08 |
US20210117178A1 (en) | 2021-04-22 |
EP3764222A4 (en) | 2022-03-09 |
CN112236748A (zh) | 2021-01-15 |
EP3764222A1 (en) | 2021-01-13 |
JP7231807B2 (ja) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10701084B2 (en) | Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices | |
JP2023009293A (ja) | 通信装置及び情報処理方法 | |
JP5113700B2 (ja) | ファームウェア更新装置及び方法 | |
US7036007B2 (en) | Firmware architecture supporting safe updates and multiple processor types | |
US6836859B2 (en) | Method and system for version control in a fault tolerant system | |
JP6751197B2 (ja) | 通信処理装置、情報処理装置、及び、通信処理装置の制御方法 | |
US8245214B2 (en) | Reliably updating computer firmware while performing command and control functions on a power/thermal component in a high-availability, fault-tolerant, high-performance server | |
US7739490B2 (en) | Control apparatus, upgrade method and program product of the same | |
US20040260919A1 (en) | Computer system and method therefor to bootup the system quickly after initialization | |
CN104915226A (zh) | 一种网络设备软件启动方法、装置及网络设备 | |
US10120677B2 (en) | Method of rewriting printer firmware, and printer | |
CN114356658A (zh) | 固件升级异常的处理方法、计算机设备以及可读存储介质 | |
US20190286447A1 (en) | Information processing device | |
JP6011687B1 (ja) | 記憶装置およびその制御方法 | |
WO2020043361A1 (en) | Installing application program code on a vehicle control system | |
JP7491765B2 (ja) | ファームウェア更新システムおよびファームウェア更新方法 | |
JP2003122575A (ja) | 情報処理装置 | |
JP2005321967A (ja) | 情報処理装置 | |
JP2004094628A (ja) | フラッシュメモリのメモリ書き換え制御システム、メモリ書き換え制御方法及びメモリ書き換え制御方法の各工程を実行させるプログラム | |
JP6252321B2 (ja) | メモリ制御方法及び情報処理装置 | |
JP2008108048A (ja) | コンピュータ及びそのファームウェア更新方法 | |
CN117407218A (zh) | 一种OpenPower服务器PNOR固件备份和恢复方法及系统 | |
JP2004110220A (ja) | プログラムの更新方法 | |
KR20060120988A (ko) | 이중화된 부트롬을 사용하는 시스템 부팅 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240319 |