JP2023009293A - Communication apparatus and information processing method - Google Patents
Communication apparatus and information processing method 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
Description
本発明は、通信装置及び情報処理方法に関する。 The present invention relates to a communication device and an information processing method.
一般的に、通信装置は、プロセッサ、不揮発性メモリ及び揮発性メモリ等を含んで構成される。不揮発性メモリは、通信装置に通信機能等を実装させるためのプログラムであるファームウェアを予め記憶している。通信装置の起動時に、不揮発性メモリに記憶されたファームウェアが揮発性メモリに展開される。そして、揮発性メモリに展開されたファームウェアが実行されることによって、通信装置に通信機能等が実装される。これにより、所望の通信サービスが提供される。 Generally, a communication device includes a processor, nonvolatile memory, volatile memory, and the like. The nonvolatile memory stores in advance firmware, which is a program for implementing communication functions and the like in the communication device. When the communication device is booted, the firmware stored in the nonvolatile memory is loaded into the volatile memory. Then, the communication function and the like are implemented in the communication device by executing the firmware developed in the volatile memory. This provides the desired communication service.
通信サービスを提供する通信装置に対して、新機能の追加又はバグ修正を行う場合、実行されるファームウェアを更新する必要がある。ファームウェアを更新する場合、揮発性メモリに展開されて実行されているファームウェアを一旦停止させることが一般的である。その後、不揮発性メモリに記憶されたファームウェアを書き換えて、通信装置を再起動させる。これにより、不揮発性メモリに記憶された更新後のファームウェアが、再起動によってリセットされた揮発性メモリに展開されて、実行されるようになる(例えば、非特許文献1)。 When adding a new function or correcting bugs to a communication device that provides communication services, it is necessary to update the firmware that is executed. When updating firmware, it is common to suspend the firmware that has been deployed in a volatile memory and is being executed. After that, the firmware stored in the nonvolatile memory is rewritten, and the communication device is restarted. As a result, the updated firmware stored in the non-volatile memory is deployed in the volatile memory reset by rebooting and executed (eg, Non-Patent Document 1).
通信装置の再起動中には通信機能が利用できなくなるため、通信サービスの提供が一時中断される。そのため、ファームウェアの更新が及ぼす、通信サービスの利用者への影響は大きい。しかしながら、もし実行中のファームウェアを停止させることなく、揮発性メモリに展開されたファームウェアを直接書き換える場合、ファームウェアが中途半端に書き換えられる可能性がある。中途半端に書き換えられたファームウェアは、セグメンテーションエラーやメモリエラーを発生させたり、動作中のハードウェアに対して致命的な故障を発生させたりする場合がある。従って、従来、通信サービスの提供を中断させずにファームウェアを更新することは困難であった。 Since the communication function cannot be used while the communication device is restarting, the provision of the communication service is temporarily interrupted. Therefore, updating the firmware has a great impact on users of communication services. However, if the firmware expanded in the volatile memory is directly rewritten without stopping the running firmware, the firmware may be rewritten halfway. Halfway rewritten firmware may cause a segmentation error or memory error, or cause a fatal failure to hardware in operation. Therefore, conventionally, it has been difficult to update the firmware without interrupting the provision of communication services.
例えば、光アクセスネットワークで使用される局舎側の通信装置である加入者線端局装置(OLT;Optical Line Network)においても上記の課題がある。従来、OLTにおいて、通信サービスの中断を伴わずにファームウェアを更新させることは困難であった。上記と同様、OLTの不揮発性メモリに記憶されたファームウェアは、OLTの起動時に、揮発性メモリに展開されて実行される。ファームウェアを更新する場合には、不揮発性メモリのファームウェアを書き換えることによって、次回の起動時からは更新されたファームウェアが揮発性メモリ上に展開される。 For example, the above-mentioned problem also exists in the optical line network (OLT), which is a communication device on the side of a station used in an optical access network. Conventionally, in an OLT, it has been difficult to update firmware without interrupting communication services. Similar to the above, the firmware stored in the non-volatile memory of the OLT is expanded in the volatile memory and executed when the OLT is started. When updating the firmware, by rewriting the firmware in the non-volatile memory, the updated firmware is developed on the volatile memory from the next startup.
ファームウェアの更新時に再起動を必要とする装置に対して、ファームウェアの更新による影響を小さくするための従来技術として、ファームウェアの更新時間を短縮させる技術が検討されている。例えば、更新後のファームウェアを予め不揮発性メモリに記憶させておくことにより、不揮発性メモリ内に更新前のファームウェア及び更新後のファームウェアの2面のファームウェアが保持された状態にする。そして、装置の起動時に、2面のファームウェアのいずれかを選択して起動させるという技術である。しかしながら、この従来技術では、ファームウェアを不揮発性メモリに書き込むことに要する時間は短縮されるものの、更新後のファームウェアを揮発性メモリに展開させるための、装置の再起動はやはり必要である。 As a conventional technique for reducing the impact of updating firmware on a device that requires a reboot when updating firmware, a technique for shortening the update time of firmware is being studied. For example, by pre-storing the updated firmware in the non-volatile memory, the non-volatile memory holds two types of firmware, the firmware before the update and the firmware after the update. Then, when the device is started, it is a technique of selecting and starting one of the two firmwares. However, in this prior art, although the time required to write the firmware to the nonvolatile memory is shortened, it is still necessary to restart the device in order to expand the updated firmware to the volatile memory.
また、ファームウェアの更新時におけるサービスの中断を防ぐ方法として、装置を冗長化する方法が考えられる。例えば、光スイッチ等を用いて物理的な通信経路を変更して、ファームウェアを更新させる対象の装置とは別の装置へ処理を切り替える。そして、ファームウェアの更新が完了したら再び元の通信経路へ戻す方法である。この場合、上述した、揮発性メモリに展開されたファームウェアを直接書き換える方法と比べて、より安全にファームウェアが更新されることが見込まれる。しかしながら、通信経路を切り替えるための光スイッチ及び予備のOLTが別途必要となることから、このように装置を冗長化する方法ではコストが高くなり、経済性の観点から懸念される。 Further, as a method of preventing interruption of service at the time of updating firmware, a method of making the device redundant is conceivable. For example, by changing the physical communication path using an optical switch or the like, the processing is switched to a device other than the device whose firmware is to be updated. Then, when the update of the firmware is completed, it is a method of returning to the original communication path. In this case, it is expected that the firmware will be updated more safely than the above-described method of directly rewriting the firmware developed in the volatile memory. However, since an optical switch and a backup OLT for switching communication paths are separately required, this method of making the device redundant increases the cost, which is a concern from an economic point of view.
上記事情に鑑み、本発明は、コストを抑えつつ、サービスを中断させずにプログラムを更新することができる技術を提供することを目的としている。 SUMMARY OF THE INVENTION In view of the above circumstances, it is an object of the present invention to provide a technology capable of updating a program without interrupting services while suppressing costs.
本発明の一態様は、更新前のファームウェアに関する第1データと、更新後のファームウェアに関する第2データと、前記第1データ又は前記第2データと前記第1データ又は前記第2データが位置付けられたアドレスとが対応付けられたテーブルと、を記憶するメモリと、前記テーブルに定義された前記アドレスに位置付けられた前記第1データ又は前記第2データに基づく処理を実行するプロセッサと、前記テーブルにおいて前記第1データに対応付けられた前記アドレスを、前記更新前のファームウェアにおいて定義された前記第1データに基づく処理が実行中ではないタイミングである更新タイミングに従って、前記第2データが位置付けられたアドレスに書き換える書込部と、を備える通信装置である。 According to one aspect of the present invention, first data relating to pre-update firmware, second data relating to post-update firmware, the first data or the second data, and the first data or the second data are positioned a table in which addresses are associated with each other; a memory that stores a table; a processor that executes processing based on the first data or the second data positioned at the addresses defined in the table; The address associated with the first data is set to the address where the second data is located according to an update timing, which is a timing at which processing based on the first data defined in the firmware before updating is not being executed. and a writing unit for rewriting.
また、本発明の一態様は、通信装置のコンピュータによる情報処理方法であって、更新前のファームウェアに関する第1データと、更新後のファームウェアに関する第2データと、前記第1データ又は前記第2データと前記第1データ又は前記第2データが位置付けられたアドレスとが対応付けられたテーブルと、を記憶するステップと、前記テーブルに定義された前記アドレスに位置付けられた前記第1データ又は前記第2データに基づく処理を実行するステップと、前記テーブルにおいて前記第1データに対応付けられた前記アドレスを、前記更新前のファームウェアにおいて定義された前記第1データに基づく処理が実行中ではないタイミングである更新タイミングに従って、前記第2データが位置付けられたアドレスに書き換える書込ステップと、を有する情報処理方法である。 Further, one aspect of the present invention is an information processing method by a computer of a communication device, comprising first data relating to pre-update firmware, second data relating to post-update firmware, and the first data or the second data. and an address at which the first data or the second data is located; and a table in which the first data or the second data is located at the address defined in the table executing a process based on the data; and setting the address associated with the first data in the table to a timing at which the process based on the first data defined in the firmware before the update is not being executed. and a writing step of rewriting to an address where the second data is located according to an update timing.
本発明により、コストを抑えつつ、サービスを中断させずにプログラムを更新することができる。 According to the present invention, it is possible to update the program without interrupting the service while suppressing the cost.
本発明を実施するための形態を、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
A mode for carrying out the present invention will be described with reference to the drawings. The embodiments described below are merely examples, and embodiments to which the present invention is applied are not limited to the following embodiments.
In addition, in all the drawings for explaining the embodiments, the same reference numerals are used for the parts having the same functions, and repeated explanations are omitted.
<第1の実施形態>
以下、本発明の第1の実施形態について説明する。
<First embodiment>
A first embodiment of the present invention will be described below.
[光通信システムの構成]
図1は、第1の実施形態に係る光通信システム1の構成の一例を示す図である。光通信システム1は、光信号を用いて通信するシステムである。光通信システム1は、光アクセス装置2と、制御端末3とを備える。
なお、ここでは光信号を用いてONU(Optical Network Unit;加入者線終端装置)等の他の通信装置との通信を行う光アクセス装置2を備える光通信システム1を一例として説明するが、これに限られるものではない。光通信とは異なる手段で通信を行うその他の通信装置及び通信システムであっても構わない。
[Configuration of optical communication system]
FIG. 1 is a diagram showing an example of the configuration of an
Here, an
光アクセス装置2は、不揮発性メモリ20と、起動処理部21と、揮発性メモリ22と、プロセッサ23と、通信部24と、書込部25と、を備える。
The
制御端末3は、パーソナルコンピュータ等の情報処理装置である。制御端末3は、更新後ファームウェア300を記憶している。更新後ファームウェア300及び後述する更新前ファームウェア200は、例えば、光アクセス装置2が光通信を実行するためのファームウェアである。
The
仮に、更新前ファームウェア221をプロセッサ23が使用している間に、制御端末3が更新後ファームウェア300を揮発性メモリ22に書き込んでしまった場合、光アクセス装置2に、想定外の異常が発生してしまう場合がある。そこで、光アクセス装置2は、揮発性メモリ22に記憶されている更新前ファームウェア221を書き換えないように、揮発性メモリ22の空き領域に、更新後ファームウェア300を更新後ファームウェア222として書き込む。揮発性メモリ22の空き領域に更新後ファームウェア222を書き込むことによって、更新前ファームウェア221をプロセッサ23が使用している間であっても、光アクセス装置2は、揮発性メモリ22に更新後ファームウェア222を書き込むことができる。
If the
また、光アクセス装置2は、ファームウェアの更新を、更新前ファームウェア221において処理される関数(第1データ)が呼び出された際の呼び出し先を更新後ファームウェア222内の関数(第2データ)へ変更することによって実施する。なお、呼び出し先が変更される対象は関数のデータに限られるものではなく、例えばプログラム等の、その他のデータであってもよい。以下の説明においては、一例として関数の呼び出し先が変更される場合について説明する。
In addition, the
以下に、光アクセス装置2の詳細を説明する。
起動処理部21は、大規模集積回路(LSI;Large Scale Integration)や特定用途向け集積回路(ASIC;Application Specific Integrated Circuit)等のハードウェアを用いて実現される。起動処理部21は、光アクセス装置2の起動時であってプロセッサ23が起動する前に、不揮発性メモリ20に記憶されている更新前ファームウェア200を、更新前ファームウェア221として揮発性メモリ22に書き込む。
更新前ファームウェア200は、例えば、光アクセス装置2が光通信を実行するためのファームウェアである。
Details of the
The
The
また、起動処理部21は、光アクセス装置2が起動するときであってプロセッサ23が起動する前に、不揮発性メモリ20等の不揮発性の記録媒体に記憶されているプラットフォームファームウェア220を、揮発性メモリ22に書き込む。以下、不揮発性の記録媒体の一例として、不揮発性メモリ20を適用した場合について説明を続ける。
プラットフォームファームウェア220は、例えば、オペレーティングシステム等のファームウェアである。
Also, the
不揮発性メモリ20は、例えば、読み出し専用メモリ(ROM;Read Only Memory)等の読み出し専用の記録媒体である。不揮発性メモリ20は、書き換え可能なフラッシュROMであってもよい。不揮発性メモリ20は、更新前ファームウェア200を記憶している。不揮発性メモリ20は、更新後ファームウェア222を記憶していない。以下では、更新前ファームウェア200は、不揮発性メモリ20に記憶されている状態でプロセッサ23から参照された場合でもプロセッサ23が動作可能な状態で、不揮発性メモリ20に記憶されている。すなわち、更新前ファームウェア200のバイナリデータは、更新前ファームウェア221のバイナリデータと同じである。
The
揮発性メモリ22は、例えば、読み書き可能なメモリ(RAM;Random Access Memory)等の揮発性の記録媒体である。揮発性メモリ22は、起動処理部21による書き込み操作によって、光アクセス装置2が起動したときに、プラットフォームファームウェア220を記憶する。揮発性メモリ22は、光アクセス装置2が起動したときであってプロセッサ23が起動する前に、起動処理部21による書き込み操作によって、更新前ファームウェア221を記憶する。揮発性メモリ22は、プラットフォームファームウェア220及び更新前ファームウェア221を記憶した場合でも、十分な容量の空き領域を備えている。十分な容量とは、少なくとも更新後ファームウェア222を記憶できる容量である。揮発性メモリ22は、プロセッサ23が起動した後に、制御端末3が出力する更新後ファームウェア300を、更新後ファームウェア222として揮発性メモリ22の空き領域に記憶する。
The
更新前ファームウェア221は、関数の参照先を含む。関数には、揮発性メモリ22におけるその関数の先頭アドレスが対応付けられている。
更新後ファームウェア222は、関数の新たな参照先を含む。関数には、揮発性メモリ22におけるその関数の先頭アドレスが対応付けられている。
The
The updated
揮発性メモリ22は、関数テーブル224を更に記憶する。関数テーブル224は、関数と、揮発性メモリ22におけるその関数の先頭アドレスとが関連付けられた、テーブル形式のデータである。なお、関数テーブル224は、プラットフォームファームウェア220、更新前ファームウェア221又は更新後ファームウェア222のいずれかに含まれている構成であってもよい。
書込部25は、例えばLSIやASIC等のハードウェアを用いて実現される。なお、書込部25は、ソフトウェアによって実装される構成であってもよい。この場合、例えば、書込部25の機能を実装するためのプログラムがプラットフォームファームウェア220(OS)に含まれており、OSのシステムコールに応じてソフトウェアの実装がなされる。書込部25は、制御端末3が出力した書込要求に基づいて、揮発性メモリ22の空き領域に更新後ファームウェア222を書き込むことができるか否かを判定する。ここで、書込要求は、更新後ファームウェア222の容量を示す情報を含む。
The
具体的には、書込部25は、書込要求に含まれる更新後ファームウェア222の容量に基づいて、揮発性メモリ22の空き領域が、更新後ファームウェア222の容量以上であるか否かを判定する。書込部25は、揮発性メモリ22の空き領域が、更新後ファームウェア222の容量以上である場合には、更新後ファームウェア222を、揮発性メモリ22に書き込む。一方、書込部25は、揮発性メモリ22の空き領域が、更新後ファームウェア222の容量未満である場合には、更新後ファームウェア222を、揮発性メモリ22に書き込まない。なお、書込部25は、揮発性メモリ22の空き領域が、更新後ファームウェア222の容量未満である場合には、揮発性メモリ22の空き領域が、更新後ファームウェア222の容量未満であることを通知するようにしてもよい。
Specifically, the
また、書込部25は、制御端末3が出力した書込要求に基づいて、関数テーブル224に含まれる先頭アドレスの値を書き換える。
Also, the
プロセッサ23は、揮発性メモリ22に記憶されているプラットフォームファームウェア220に基づく動作を実行する。また、プロセッサ23は、関数テーブル224に基づいて、更新前ファームウェア221又は更新後ファームウェア222に基づく動作を実行する。具体的には、プロセッサ23は、更新前ファームウェア221に含まれる関数の先頭アドレスを、関数テーブル224を参照して取得する。そして、プロセッサ23は、取得した先頭アドレスに位置付けられた関数を実行する。
通信部24は、更新前ファームウェア221又は更新後ファームウェア222に基づく動作を実行するプロセッサ23による制御に応じて、光信号を用いて、ONU等の他の通信装置と通信する。
The
[光アクセス装置による間接参照]
図2は、第1の実施形態に係る光アクセス装置2における間接参照の一例を示す図である。
[Indirect reference by optical access device]
FIG. 2 is a diagram showing an example of indirect reference in the
揮発性メモリ22は、予め関数テーブル224を記憶している。関数テーブル224は、例えば、プロセッサ23によって関数ポインタを用いて生成され、揮発性メモリ22に記憶される。これにより、更新前ファームウェア221に含まれる各関数の先頭アドレスを示す情報が関数テーブル224に格納される。
The
プロセッサ23は、実行中のプログラムによって関数が呼び出された場合、関数テーブル224を参照して、呼び出された関数の先頭アドレスを取得する。プロセッサ23は、取得した先頭アドレスへ処理を移行させる。
When a function is called by the program being executed, the
ファームウェアの更新を実施する場合、書込部25は、制御端末3からの書込要求に基づいて、関数テーブル224において定義された、関数の先頭アドレスの値を書き換える。
When updating the firmware, the
図2に示すように、関数テーブル224には、「function_A」と「function_A」の先頭アドレスである「0x00001500」とが関連付けて記憶されている。同様に、関数テーブル224には、「function_B」と「function_B」の先頭アドレス「0x00001200」とが関連付けて記憶されており、「function_C」と「function_C」の先頭アドレス「0x00001300」とが関連付けて記憶されている。 As shown in FIG. 2, the function table 224 stores "function_A" in association with "0x00001500" which is the top address of "function_A". Similarly, the function table 224 stores "function_B" in association with the start address "0x00001200" of "function_B", and stores "function_C" in association with the start address "0x00001300" of "function_C". ing.
図2に示すように、関数テーブル224に定義された、「function_A」の先頭アドレスである「0x00001500」は、書込部25によって「0x00001100」から書き換えられた値である。すなわち、更新前ファームウェアに含まれる関数「function_A」の先頭アドレスは「0x00001100」であり、更新後ファームウェアに含まれる関数「function_A」の先頭アドレスは「0x00001500」であることを示している。
As shown in FIG. 2 , “0x00001500”, which is the leading address of “function_A” defined in the function table 224 , is a value rewritten from “0x00001100” by the
以上の構成により、光アクセス装置2は、関数テーブル224を介して目的の関数を呼び出す間接的な処理を行うことによって、ファームウェアの更新を実行する。これにより、光アクセス装置2は、動作中のプログラムを上書きすることなく処理を変更することができる。そのため、光アクセス装置2によれば、基本ソフトウェア(OS;Operating System)のメモリ保護機能を回避して揮発性メモリ22上のデータが書き換えられるため、ファームウェア更新時の安定性を担保することができる。
With the above configuration, the
[光アクセス装置の動作]
図3は、第1の実施形態に係る光アクセス装置2の動作の一例を示すフローチャートである。
[Optical access device operation]
FIG. 3 is a flow chart showing an example of the operation of the
プロセッサ23は、ファームウェアを更新するか否かを判定する(ステップS001)。運用中のファームウェアに対して、新機能の追加、既存機能の変更又はバグ修正が行われる場合(ステップS001、Yes)、プロセッサ23は、ファームウェアを更新すると判定する。そうでない場合(ステップS001、No)、プロセッサ23は、ファームウェアを更新しないと判定し、本フローチャートが示す処理を終了させる。
The
プロセッサ23が、ファームウェアを更新すると判定した場合(ステップS001、Yes)、書込部25は、制御端末3から出力された更新後ファームウェア300を取得する(ステップS002)。なお、制御端末3等において更新後ファームウェア300が生成される際には、後に必要となる更新後ファームウェア300のメモリマップ等の付加情報も予め生成され、光アクセス装置2によって更新後ファームウェア300とともに取得されている必要がある。
When the
書込部25は、取得した更新後ファームウェア300を、更新後ファームウェア222として揮発性メモリ22の空き領域に書き込みを行う(ステップS003)。上述したように、揮発性メモリ22の空き領域に更新後ファームウェア222が書き込まれるため、実行中の更新前ファームウェア221を上書きすることが防止される。
The
プロセッサ23は、不具合なくファームウェアの更新を完了させるため、更新前ファームウェア221から更新後ファームウェア222への処理の移行をする前に、揮発性メモリ22における更新後ファームウェア222の展開が、エラーが発生することなく完了したか否かを確認する(ステップS004)。エラーが発生したことが確認された場合(ステップS004、Yes)、プロセッサ23は、再度、取得した更新後ファームウェア300を、更新後ファームウェア222として揮発性メモリ22の空き領域に書き込む(ステップS003)。
In order to complete the firmware update without any problem, the
エラーが発生していないことが確認された場合(ステップS004、No)、プロセッサ23は、ファームウェアを更新可能なタイミングであるか否かを判定する(ステップS005)。ファームウェアの更新を安全に実行するためには、動作中のプログラムの処理状況を確認して、ファームウェアの更新を実施するタイミングを適切に判定する必要がある。なお、ファームウェアを更新可能なタイミングであるか否かを判定する際の判定基準については、後に詳しく説明する。
When it is confirmed that no error has occurred (step S004, No), the
更新タイミングの判断は、ファームウェアに予め組み込まれた更新実施ポイントにおいて行われる。プロセッサ23は、プログラムが実行される周期ごとに、更新実施ポイントにおいて更新フラグの有無を確認する。
The determination of the update timing is made at the update execution point preliminarily incorporated in the firmware.
更新フラグに基づいて、ファームウェアを更新可能なタイミングではないと判定された場合(ステップS005、No)、プロセッサ23は、本フローチャートが示す処理を終了させる。更新フラグに基づいて、ファームウェアを更新可能なタイミングであると判定された場合(ステップS005、Yes)、書込部25は、関数テーブル224に定義された関数の先頭アドレスの値を書き換える(ステップS006)。そして、プロセッサ23は、本フローチャートが示す処理を終了させる。
If it is determined based on the update flag that it is not the time to update the firmware (step S005, No), the
図4に示すフローチャートは、関数テーブル224に定義された先頭アドレスを書き換える処理(すなわち、図3のステップS006の処理)における光アクセス装置2の動作を更に詳細に示すフローチャートである。
The flowchart shown in FIG. 4 is a flowchart showing in more detail the operation of the
ファームウェアの更新を実施するためには、揮発性メモリ22に記憶された関数テーブル224に定義されている関数の先頭アドレスの値を書き換える必要があるが、書き換えた先頭アドレスの値が誤っていた場合にはプログラムが異常停止する場合がある。従って、書込部25は、先頭アドレスの値を書き換える前に、書換箇所(揮発性メモリ22上における、更新対象の関数の先頭アドレスの位置)が書換可能なエリアに存在することを確認する(ステップS601)。
In order to update the firmware, it is necessary to rewrite the value of the top address of the function defined in the function table 224 stored in the
書込部25は、関数テーブル224における、更新対象の関数の先頭アドレスの値を順に書き換える(ステップS602)。更新対象の関数が複数ある場合、書込部25は、更新対象の関数について1つずつ順に先頭アドレスの値の書き換えを行う。
The
更新対象の関数であって、先頭アドレスの値の書き換えが完了していない関数が存在する場合(ステップS603、No)、書込部25は、引き続き、関数テーブル224における、更新対象の関数の先頭アドレスの値を書き換える処理を継続する(ステップS602)。
If there is a function to be updated and the value of the top address has not been completely rewritten (step S603, No), the
更新対象の全ての関数について、先頭アドレスの値の書き換えが完了した場合(ステップS603、Yes)、書込部25は、揮発性メモリ22上に展開された更新対象の関数の先頭アドレスの値と、関数テーブル224上で書き換えられた上記関数に関連付けられた先頭アドレスの値とが一致しているか否かを確認する。
When the rewriting of the values of the start addresses of all the functions to be updated has been completed (step S603, Yes), the
両者の先頭アドレスの値が一致していない場合(ステップS604、No)、プロセッサ23は、関数テーブル224に定義された先頭アドレスを書き換える処理(すなわち、図3のステップS006の処理)を再度実行しなおす。両者の先頭アドレスの値が一致している場合(ステップS604、Yes)、プロセッサ23は、本フローチャートが示す処理を終了させる。
If the values of both start addresses do not match (step S604, No), the
[更新タイミングの判定基準]
以下に、ファームウェアを更新可能なタイミングであるか否かの判定における判定基準について説明する。
プラットフォームファームウェア220内で実行される周期処理内において、以下に説明するタイミングのいずれかに、更新実施ポイントが組み込まれる。そして、毎周期もしくは定期的に、組み込まれた更新ポイントのタイミングでファームウェアの更新が必要であるか否かの確認がなされる。ファームウェアの更新が必要である場合には、ファームウェアの更新が行われる。
図5は、プロセスの処理状況と更新タイミングとの対応を説明するための模式図である。なお、ここでいうプロセスは、例えば、ファームウェアに含まれる関数に相当するものである。
[Criteria for determination of update timing]
The criteria for determining whether or not it is time to update the firmware will be described below.
Within the periodic processing executed within the
FIG. 5 is a schematic diagram for explaining the correspondence between the processing status of a process and update timing. Note that the process referred to here corresponds to, for example, a function included in firmware.
・単一プロセスに対するファームウェアの更新の場合
例えば、図5に示す「プロセスA」のみを更新対象とした場合、下記の3通りの更新タイミングが考えられる。ファームウェアにおいて、以下の更新タイミングのいずれか又は複数の箇所に、予め更新実施ポイントを組み込んでおく。
1-(1)単一プロセス実行前
1-(2)単一プロセス実行中
1-(3)単一プロセス実行後
When Updating Firmware for a Single Process For example, when only "process A" shown in FIG. 5 is to be updated, the following three update timings are conceivable. In the firmware, an update execution point is incorporated in advance in one or more of the following update timings.
1-(1) Before single process execution 1-(2) During single process execution 1-(3) After single process execution
細かいバグ修正やパッチ修正等を行う場合には、単一プロセスに対してファームウェアの更新を実施することで、更新範囲を絞ることができる。そのため、単一プロセスに対するファームウェア更新には、ファームウェア更新による影響範囲を削減することができるという利点がある。 When performing minor bug fixes, patch fixes, etc., the update range can be narrowed down by updating the firmware for a single process. Therefore, firmware update for a single process has the advantage of being able to reduce the range of influence of firmware update.
間接参照の書き換えによって,単一プロセスの実行前後(すなわち、図5に示す1-(1)又は1-(3)のタイミング)でファームウェア更新が実施された場合、次回のプロセス実行時からファームウェアの更新が反映される。また、更新対象のプロセスの実行中(すなわち、図5に示す1-(2)のタイミング)にファームウェア更新が実施された場合、実行中である更新対象のプロセスが完了した後、次回のプロセス実行時からファームウェアの更新が反映される。 If the firmware is updated before and after execution of a single process (that is, timing 1-(1) or 1-(3) shown in FIG. 5) by rewriting indirect references, the firmware will be updated from the next process execution. Updates are reflected. Also, if the firmware update is performed while the process to be updated is being executed (that is, the timing of 1-(2) shown in FIG. 5), the next process is executed after the process to be updated that is being executed is completed. From time to time the firmware update will be reflected.
なお、間接参照先の書き換えによるファームウェア更新では、プロセスが実行される前に変更が反映されるため、実行中のプロセスに対して影響を及ぼすことがないという利点がある。 Note that updating the firmware by rewriting the indirect reference destination has the advantage of not affecting the running process because the change is reflected before the process is executed.
・複数プロセスに対するファームウェアの更新の場合
例えば、図5に示す「プロセスA」及び「プロセスB」の2つのプロセスを更新対象とした場合、下記の2通りの更新タイミングが考えられる。ファームウェアにおいて、以下の更新タイミングのいずれか一方又は両方の箇所に、予め更新実施ポイントを組み込んでおく。
2-(1)複数プロセス実行前
2-(2)複数プロセス実行後
When Updating Firmware for Multiple Processes For example, when two processes, "process A" and "process B" shown in FIG. 5, are to be updated, the following two update timings are possible. In the firmware, an update execution point is incorporated in advance in either one or both of the following update timings.
2-(1) Before executing multiple processes 2-(2) After executing multiple processes
複数プロセスの実行中に、関数テーブル224に定義された先頭アドレスの書き換えが行われた場合、プロセス間で正常なデータを引き継ぐことができなくなる可能性がある。そのため、更新対象の複数のプロセスの全てが実行される前か、又は更新対象の複数のプロセスの全てが実行された後に、まとめてファームウェアの更新を実施することによって、ファームウェア更新前後の光アクセス装置2の動作を安定させることができる。 If the top address defined in the function table 224 is rewritten while multiple processes are running, there is a possibility that normal data cannot be handed over between processes. Therefore, by collectively updating the firmware before all of the multiple processes to be updated are executed or after all of the multiple processes to be updated are executed, the optical access device before and after the firmware update can be updated. 2 can be stabilized.
・全プロセスに対するファームウェアの更新の場合
更新対象のプログラム全体を変更する場合(例えば、図5に示す「プロセスA」、「プロセスB」及び「プロセスC」全てを更新対象とした場合)、更新時の不具合防止の観点から、下記のように、全プロセスの実行前又は全プロセスの実行後に更新が実施されることが好ましい。
3-(1)全プロセス実行前
3-(2)全プロセス実行後
・Updating firmware for all processes When changing the entire program to be updated (for example, when updating all "process A", "process B" and "process C" shown in FIG. 5), when updating From the viewpoint of preventing malfunctions, it is preferable to update before or after execution of all processes as described below.
3-(1) Before executing all processes 3-(2) After executing all processes
プログラム実行中における揮発性メモリ22上のデータの書き換えは,メモリエラーの発生の原因となり、プログラムをクラッシュさせてしまう可能性が非常に高くなる。一方、更新対象のプログラムの全プロセスの実行前又は全プロセスの実行後のタイミングであれば、メモリエラーの発生の可能性を相対的に低くすることができる。従って、上記3-(1)及び3-(2)のタイミングでファームウェアの更新を実施することによって、更新後ファームウェアへの移行を安全に行うことができる。
Rewriting data in the
以上説明したように、第1の実施形態に係る光アクセス装置2は、揮発性メモリ22と、プロセッサ23と、を含んで構成される。揮発性メモリ22は、更新前ファームウェア221に含まれる関数(第1データ)と、更新後ファームウェア222に含まれる関数(第2データ)と、関数テーブル224と、を記憶する。関数テーブル224は、更新前ファームウェア221に含まれる関数又は更新後ファームウェア222に含まれる関数と、揮発性メモリ22において更新前ファームウェア221に含まれる関数又は更新後ファームウェア222に含まれる関数が位置付けられたアドレスと、が対応付けられたテーブルである。また、プロセッサ23は、関数テーブル224に定義されたアドレスに位置付けられた、更新前ファームウェア221に含まれる関数又は更新後ファームウェア222に含まれる関数に基づく処理を実行する。
As described above, the
また、第1の実施形態に係る光アクセス装置2は、書込部25をさらに備える。書込部25は、関数テーブル224において更新前ファームウェア221に含まれる関数に対応付けられたアドレスを、揮発性メモリ22において更新後ファームウェア222に含まれる関数が位置付けられたアドレスに書き換える。
また、書込部25は、更新前ファームウェア200において定義された更新タイミングに従ってアドレスを書き換える。
また、書込部25は、揮発性メモリ22の空き領域に更新後ファームウェア222を書き込む。
Also, the
Also, the
The
以上の構成により、第1の実施形態に係る光アクセス装置2によれば、ファームウェア内に間接的な処理(間接参照)が組み入れられることによって、通信サービスの提供を中断させることなくファームウェアの更新をすることが可能となる。また、以上の構成により、第1の実施形態に係る光アクセス装置2によれば、装置を冗長化する従来の方法と比べて、より低コストに、通信サービスを中断させることのないファームウェアの更新を実現することができる。
With the above configuration, the
<第2の実施形態>
以下、本発明の第2の実施形態について説明する。
<Second embodiment>
A second embodiment of the present invention will be described below.
図4に示したように、上述した第1の実施形態においては、光アクセス装置2は、更新対象の関数それぞれについて1つずつ順に、関数テーブル224に定義された先頭アドレスの値を書き換える構成であった。この構成では、更新対象の関数が多く存在する場合、ファームウェアの更新に時間がかかることがある。
As shown in FIG. 4, in the above-described first embodiment, the
一方、以下に説明する第2の実施形態に係る光アクセス装置6は、ファームウェアを更新する場合、関数テーブルの単位で更新対象の関数の先頭アドレスの値をまとめて更新する。これにより、更新対象である全ての関数の先頭アドレスの値が一度の処理でまとめて書き換えられる。そのため、とくに更新対象の関数が多く存在する場合には、光アクセス装置6は、上述した第1の実施形態に係る光アクセス装置2と比べて、ファームウェアの更新に要する時間をより短くすることができる。
On the other hand, when updating the firmware, the
[光通信システムの構成]
図6は、第2の実施形態に係る光通信システム5の構成の一例を示す図である。上述した第1の実施形態に係る光通信システム1と同様に、光通信システム5は、光信号を用いて通信するシステムである。光通信システム5は、光アクセス装置6と、制御端末3とを備える。
[Configuration of optical communication system]
FIG. 6 is a diagram showing an example of the configuration of the
光アクセス装置6は、不揮発性メモリ20と、起動処理部21と、揮発性メモリ62と、プロセッサ23と、通信部24と、書込部65と、を備える。
なお、光通信システム5が有する機能ブロックのうち、上述した第1の実施形態に係る光通信システム1が有する機能ブロックと機能が共通する機能ブロックについては、同一の符号を付し、説明を省略する。
The
Among the functional blocks included in the
揮発性メモリ62は、プラットフォームファームウェア220と、更新前ファームウェア221と、更新後ファームウェア222と、関数テーブル624と、関数テーブル値625を記憶する。
書込部65は、制御端末3から出力された書込要求に基づいて、揮発性メモリ62に、更新後ファームウェア222と、関数テーブル624と、関数テーブル値625と、を記憶させる。
The
関数テーブル624は、第1の実施形態において説明した、1つの関数群のみの各関数の先頭アドレスが定義された関数テーブル224とは異なり、関数テーブル値625に設定されうる関数テーブル値ごとの関数群の各関数の先頭アドレスがそれぞれ定義されたテーブルである。なお、関数テーブル624及び関数テーブル値625の構成については、後に詳しく説明する。 The function table 624 differs from the function table 224 in which the start address of each function of only one function group is defined as described in the first embodiment. It is a table in which the start address of each function in the group is defined. The structure of the function table 624 and function table value 625 will be described in detail later.
プロセッサ23は、関数テーブル624と関数テーブル値625とを参照することにより、実行する関数の揮発性メモリ62上における先頭アドレス値を取得してファームウェアを実行する。
The
[光アクセス装置による間接参照]
図7は、第2の実施形態に係る光アクセス装置6における間接参照の一例を示す図である。
[Indirect reference by optical access device]
FIG. 7 is a diagram showing an example of indirect reference in the
図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を更に更新するファームウェアに含まれていてもよい。
FIG. 7A shows the correspondence between the version of each function and the value of the start address. From the left, a function group consisting of version 1 (Ver.1) functions, a function group consisting of version 2 (Ver.2) functions, and a function group consisting of version 3 (Ver.3) functions are shown. ing. That is, version 1 (Ver.1) functions are included in the
例えば、一番左の関数群には、バージョン1の関数「function_A」、バージョン1の関数「function_B」、及び、バージョン1の関数「function_C」が含まれる。図7(A)に示すように、揮発性メモリ62上における、バージョン1の関数「function_A」の先頭アドレスの値は「0x00001100」であり、バージョン1の関数「function_B」の先頭アドレスの値は「0x00001200」であり、及び、バージョン1の関数「function_C」の先頭アドレスの値は「0x00001300」である。
For example, the leftmost function group includes
図7(B)は、関数テーブル624の構成の一例を示す。図示するように、関数テーブル624には、関数テーブル値((1)~(3))ごとの関数群の各関数(「function_A」、「function_B」及び「function_C」)の先頭アドレスがそれぞれ定義されている。 FIG. 7B shows an example of the configuration of the function table 624. As shown in FIG. As shown, in the function table 624, the top address of each function ("function_A", "function_B" and "function_C") of the function group for each function table value ((1) to (3)) is defined. ing.
図7(B)に示すように、例えば、関数テーブル値625に設定された値が(1)であるならば、関数「function_A」が呼び出された場合にプロセッサ23が参照する、揮発性メモリ62上におけるアドレスの値は「0x00001100」である。すなわち、バージョン1の関数「function_A」の処理が実行される。同様に、関数テーブル値625に設定された値が(1)であるならば、関数「function_B」が呼び出された場合にはバージョン1の関数「function_B」の処理が実行され、関数「function_C」が呼び出された場合にはバージョン1の関数「function_C」の処理が実行される。
As shown in FIG. 7B, for example, if the value set in the function table value 625 is (1), the
また、図7(B)に示すように、例えば、関数テーブル値625に設定された値が(2)であるならば、関数「function_A」が呼び出された場合にプロセッサ23が参照する、揮発性メモリ62上におけるアドレスの値は「0x01001100」である。すなわち、バージョン2の関数「function_A」の処理が実行される。同様に、関数テーブル値625に設定された値が(2)であるならば、関数「function_B」が呼び出された場合にはバージョン1の関数「function_B」の処理が実行され、関数「function_C」が呼び出された場合にはバージョン1の関数「function_C」の処理が実行される。
Also, as shown in FIG. 7B, for example, if the value set in the function table value 625 is (2), the volatile The value of the address on
すなわち、例えば、関数テーブル値625の値が(1)から(2)へ設定変更された場合とは、関数「function_A」のみがバージョン1からバージョン2へ変更され、関数「function_B」及び関数「function_C」はバージョン1のままで、処理が実行されるようになることを示す。
That is, for example, when the value of the function table value 625 is changed from (1) to (2), only function "function_A" is changed from
また、図7(B)に示すように、例えば、関数テーブル値625に設定された値が(3)であるならば、関数「function_A」が呼び出された場合にプロセッサ23が参照する、揮発性メモリ62上におけるアドレスの値は「0x02001100」である。すなわち、バージョン3の関数「function_A」の処理が実行される。同様に、関数テーブル値625に設定された値が(3)であるならば、関数「function_B」が呼び出された場合にはバージョン3の関数「function_B」の処理が実行され、関数「function_C」が呼び出された場合にはバージョン3の関数「function_C」の処理が実行される。
Also, as shown in FIG. 7B, for example, if the value set in the function table value 625 is (3), the volatile The value of the address on
すなわち、例えば、関数テーブル値625の値が(1)から(3)へ設定変更された場合とは、関数「function_A」、関数「function_B」及び関数「function_C」の全てがバージョン1からバージョン3へ変更されて処理が実行されるようになることを示す。
That is, for example, when the value of the function table value 625 is changed from (1) to (3), the function "function_A", function "function_B" and function "function_C" all change from
図7(A)に示す3つの矢印は、関数テーブル値625の値に(1)が設定された場合に実行される関数、関数テーブル値625の値に(2)が設定された場合に実行される関数、及び、関数テーブル値625の値に(3)が設定された場合に実行される関数が分かるように、それぞれ図示したものである。 The three arrows shown in FIG. 7A are functions that are executed when the value of the function table value 625 is set to (1), and are executed when the value of the function table value 625 is set to (2). and the function executed when the value of the function table value 625 is set to (3).
このように、関数テーブル624は、更新前ファームウェア221に含まれる関数とアドレスとが対応付けられた情報(第1情報)と、更新後ファームウェア222に含まれる関数とアドレスとが対応付けられた情報(第2情報)とを含む。また、関数テーブル値625は、更新前ファームウェア221に含まれる関数を実行するか、又は、更新後ファームウェア222に含まれる関数を実行するかを識別する識別情報に相当する。
In this way, the function table 624 includes information (first information) in which functions included in the
光アクセス装置6は、上述した構成を有する関数テーブル624及び関数テーブル値625を用いることによって、更新対象である全ての関数の先頭アドレスの値を一度の処理でまとめて書き換えることができる。
By using the function table 624 and the function table value 625 having the above configuration, the
[光アクセス装置の動作]
図8は、第2の実施形態に係る光アクセス装置6の動作の一例を示すフローチャートである。
[Optical access device operation]
FIG. 8 is a flow chart showing an example of the operation of the
なお、図3に示した、第1の実施形態に係る光アクセス装置2の動作を示すフローチャートのうち、ステップS001~S005の処理については、第2の実施形態に係る光アクセス装置6においても同様の処理であるため、説明を省略する。従って、以下に説明する図8に示すフローチャートは、関数テーブル624に定義された先頭アドレスを書き換える処理(すなわち、図3のステップS006に相当する処理)における光アクセス装置6の動作を更に詳細に示すフローチャートである。
In the flowchart showing the operation of the
書込部65は、揮発性メモリ82に記憶された関数テーブル値625の値を確認する(ステップS611)。書込部65は、設定された関数テーブル値625の値と、実行される処理における関数テーブル値(図示せず)とが一致しているか否かを判定する(ステップS612)。実行される処理における関数テーブル値(図示せず)は、例えば揮発性メモリ22等の記憶媒体に記憶されている。
The
設定された関数テーブル値625の値と、実行される処理における関数テーブル値とが一致している場合(ステップS612、Yes)、プロセッサ23は、本フローチャートが示す処理を終了させる。設定された関数テーブル値625の値と、実行される処理における関数テーブル値とが一致していない場合(ステップS612、No)、書込部65は、関数テーブル624を更新する(ステップS613)。なお、関数テーブル624を丸ごと更新するのではなく、差分のみ追記又は変更する構成であってもよい。
If the value of the set function table value 625 matches the function table value in the process to be executed (step S612, Yes), the
書込部65は、実行される処理における関数テーブル値(図示せず)を関数テーブル値625に設定された値に書き換える(ステップS614)。書込部65は、関数テーブル値625に設定された値と、実行される処理における関数テーブル値(図示せず)とが一致しているか否かを確認する(ステップS615)。
The
関数テーブル値625に設定された値と、実行される処理における関数テーブル値(図示せず)とが一致していない場合(ステップS615、No)、書込部65は、再度、関数テーブル624及び関数テーブル値625の更新の処理をやり直す。関数テーブル値625に設定された値と、実行される処理における関数テーブル値(図示せず)とが一致している場合(ステップS615、Yes)、プロセッサ23は、本フローチャートが示す処理を終了させる。
If the value set in the function table value 625 and the function table value (not shown) in the process to be executed do not match (step S615, No), the
以上説明したように、第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に含まれる関数に基づく処理を実行する。
As explained above, the
以上の構成により、第2の実施形態に係る光アクセス装置6によれば、ファームウェアを更新する場合、関数テーブルの単位で更新対象の関数の先頭アドレスの値がまとめて更新される。これにより、更新対象である全ての関数の先頭アドレスの値が一度の処理でまとめて書き換えられる。そのため、とくに更新対象の関数が多く存在する場合には、光アクセス装置6は、上述した第1の実施形態に係る光アクセス装置2と比べて、ファームウェアの更新に要する時間をより短くすることができる。
With the above configuration, according to the
以上説明した構成を備える各実施形態に係る光通信システムによれば、ファームウェア内に間接的な処理(間接参照)が組み入れられることによって、通信サービスの提供を中断させることなくファームウェアの更新をすることが可能となる。 According to the optical communication system according to each embodiment having the configuration described above, the firmware can be updated without interrupting the provision of communication services by incorporating indirect processing (indirect reference) into the firmware. becomes possible.
間接参照によるファームウェアの更新の手法として、第1の実施形態においては、関数テーブルに保存されている先頭メモリアドレスを直接書き換える手法を説明した。また、第2の実施形態においては、とくに更新対象の関数が多い場合により有効な手法であって、複数の関数テーブル値関数テーブルを保持し、関数テーブル値を変更することによって実行する関数のバージョンを変更させる手法を説明した。 As a method of updating firmware by indirect reference, in the first embodiment, a method of directly rewriting the top memory address stored in the function table has been described. In the second embodiment, the method is more effective especially when there are many functions to be updated. explained how to change the
また、上記の手法を適用するにあたって、各実施形態に係る光通信システムにおいて、ファームウェアの更新タイミングを適切に判断するために、予めファームウェアに更新実施ポイントを組み込む構成について説明した。この構成によって、上述した各実施形態に係る光通信システムによれば、プログラムの異常停止等を生じさせることなく、サービスを中断させずにファームウェアの更新をすることが可能となる。 Further, in applying the above method, in the optical communication system according to each of the embodiments, a configuration has been described in which an update execution point is incorporated in the firmware in advance in order to appropriately determine the update timing of the firmware. With this configuration, according to the optical communication system according to each of the above-described embodiments, it is possible to update the firmware without interrupting the service without causing an abnormal stop of the program or the like.
例えば、サービスを中断させずにファームウェアを更新することが可能になることによって、ファームウェアのバグ修正や新規サービスの提供に伴う機能追加及び機能変更が容易に実施可能となる。 For example, by enabling firmware to be updated without interrupting services, it becomes possible to easily perform bug corrections in the firmware, addition of functions, and modification of functions accompanying the provision of new services.
また、従来、ファームウェアを更新させる場合、サービスを提供する事業者は、サービスを利用する利用者に対して事前周知を行ったり、利用者への影響を小さくするため夜間に更新作業を行ったりする必要があった。しかしながら、サービスを中断させずにファームウェアを更新することが可能になることによって、事業者による上記の作業が不要になる。これにより、例えば、通信設備の保守及び運用に係るコストの削減効果等も見込まれる。
上記の各実施形態において説明したファームウェアの更新方法は、装置を冗長化する従来の方法と比べて、より低コストに、通信サービスを中断させることのないファームウェアの更新を実現できる。
Conventionally, when updating firmware, service providers inform users of the service in advance, or perform the update at night to reduce the impact on users. I needed it. However, by making it possible to update the firmware without interrupting the service, the above work by the operator becomes unnecessary. As a result, for example, the effect of reducing costs related to maintenance and operation of communication equipment can be expected.
The firmware update method described in each of the above embodiments can implement firmware update at a lower cost and without interrupting communication services, compared to the conventional method of providing device redundancy.
なお、上述した実施形態における光アクセス装置2又は光アクセス装置6の一部又は全部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
Part or all of the
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。 Although the embodiments of the present invention have been described in detail above with reference to the drawings, the specific configuration is not limited to these embodiments, and designs and the like are included within the scope of the gist of the present invention.
1…光通信システム、2・6…光アクセス装置、3…制御端末、20…不揮発性メモリ、21…起動処理部、22・62…揮発性メモリ、23…プロセッサ、24…通信部、25・65…書込部、200・221…更新前ファームウェア、220…プラットフォームファームウェア、222・300…更新後ファームウェア、224・624…関数テーブル、625…関数テーブル値
DESCRIPTION OF
Claims (5)
前記テーブルに定義された前記アドレスに位置付けられた前記第1データ又は前記第2データに基づく処理を実行するプロセッサと、
前記テーブルにおいて前記第1データに対応付けられた前記アドレスを、前記更新前のファームウェアにおいて定義された前記第1データに基づく処理が実行中ではないタイミングである更新タイミングに従って、前記第2データが位置付けられたアドレスに書き換える書込部と、
を備える通信装置。 First data regarding firmware before updating, second data regarding firmware after updating, and addresses at which the first data or the second data and the first data or the second data are located are associated with each other. a memory for storing a table;
a processor that performs processing based on the first data or the second data located at the address defined in the table;
The address associated with the first data in the table is positioned by the second data according to update timing, which is timing at which processing based on the first data defined in the firmware before updating is not being executed. a writing unit that rewrites to the specified address;
A communication device comprising:
請求項1に記載の通信装置。 The communication device according to claim 1, wherein the writing unit follows the update timing determined based on the processing status of the pre-update firmware program in operation.
請求項2に記載の通信装置。 The communication device according to claim 2, wherein the processing status is before or after execution of processing based on the rewritten first data.
請求項1から3のうちいずれか一項に記載の通信装置。 The communication device according to any one of claims 1 to 3, wherein the writing unit writes the second data to an empty area of the memory.
更新前のファームウェアに関する第1データと、更新後のファームウェアに関する第2データと、前記第1データ又は前記第2データと前記第1データ又は前記第2データが位置付けられたアドレスとが対応付けられたテーブルと、を記憶するステップと、
前記テーブルに定義された前記アドレスに位置付けられた前記第1データ又は前記第2データに基づく処理を実行するステップと、
前記テーブルにおいて前記第1データに対応付けられた前記アドレスを、前記更新前のファームウェアにおいて定義された前記第1データに基づく処理が実行中ではないタイミングである更新タイミングに従って、前記第2データが位置付けられたアドレスに書き換える書込ステップと、
を有する情報処理方法。 A method of information processing by a computer of a communication device, comprising:
First data regarding firmware before updating, second data regarding firmware after updating, and addresses at which the first data or the second data and the first data or the second data are located are associated with each other. storing a table;
performing a process based on the first data or the second data located at the address defined in the table;
The address associated with the first data in the table is positioned by the second data according to update timing, which is timing at which processing based on the first data defined in the firmware before updating is not being executed. a write step of rewriting to the specified address;
An information processing method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022184733A JP2023009293A (en) | 2018-04-27 | 2022-11-18 | Communication apparatus and information processing method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018087760A JP7231807B2 (en) | 2018-04-27 | 2018-04-27 | Communication device and information processing method |
JP2022184733A JP2023009293A (en) | 2018-04-27 | 2022-11-18 | Communication apparatus and information processing method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018087760A Division JP7231807B2 (en) | 2018-04-27 | 2018-04-27 | Communication device and information processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023009293A true JP2023009293A (en) | 2023-01-19 |
Family
ID=68294296
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018087760A Active JP7231807B2 (en) | 2018-04-27 | 2018-04-27 | Communication device and information processing method |
JP2022184733A Pending JP2023009293A (en) | 2018-04-27 | 2022-11-18 | Communication apparatus and information processing method |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018087760A Active JP7231807B2 (en) | 2018-04-27 | 2018-04-27 | Communication device and information processing method |
Country Status (5)
Country | Link |
---|---|
US (1) | US11630656B2 (en) |
EP (2) | EP4130985A1 (en) |
JP (2) | JP7231807B2 (en) |
CN (1) | CN112236748A (en) |
WO (1) | WO2019208186A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7408931B2 (en) * | 2019-06-28 | 2024-01-09 | 株式会社リコー | Electronic equipment, information processing systems, information processing methods and programs |
JP6863628B1 (en) * | 2020-01-10 | 2021-04-21 | Necプラットフォームズ株式会社 | Update device, real-time system, update method and update program |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0644078A (en) * | 1992-07-27 | 1994-02-18 | Fujitsu Ltd | Firmware changing system during on-line operation |
EP2071453A1 (en) * | 2007-12-14 | 2009-06-17 | ITI Scotland Limited | Dynamic code update |
WO2013136366A1 (en) * | 2012-03-14 | 2013-09-19 | Hitachi, Ltd. | Storage apparatus and program update method |
JP5894495B2 (en) | 2012-04-27 | 2016-03-30 | キヤノン株式会社 | Information processing apparatus, firmware updating method and program in information processing apparatus |
JP6609199B2 (en) * | 2016-03-01 | 2019-11-20 | ルネサスエレクトロニクス株式会社 | Embedded equipment |
US11360758B2 (en) * | 2017-02-28 | 2022-06-14 | Nippon Telegraph And Telephone Corporation | Communication processing device, information processing device, and communication processing device control method |
-
2018
- 2018-04-27 JP JP2018087760A patent/JP7231807B2/en active Active
-
2019
- 2019-04-08 EP EP22197202.9A patent/EP4130985A1/en active Pending
- 2019-04-08 CN CN201980027268.5A patent/CN112236748A/en active Pending
- 2019-04-08 US US17/045,987 patent/US11630656B2/en active Active
- 2019-04-08 EP EP19793366.6A patent/EP3764222A4/en active Pending
- 2019-04-08 WO PCT/JP2019/015308 patent/WO2019208186A1/en unknown
-
2022
- 2022-11-18 JP JP2022184733A patent/JP2023009293A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3764222A1 (en) | 2021-01-13 |
CN112236748A (en) | 2021-01-15 |
US11630656B2 (en) | 2023-04-18 |
JP7231807B2 (en) | 2023-03-02 |
US20210117178A1 (en) | 2021-04-22 |
JP2019192171A (en) | 2019-10-31 |
EP4130985A1 (en) | 2023-02-08 |
EP3764222A4 (en) | 2022-03-09 |
WO2019208186A1 (en) | 2019-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10701084B2 (en) | Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices | |
JP2023009293A (en) | Communication apparatus and information processing method | |
JP5113700B2 (en) | Firmware update apparatus and method | |
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 (en) | COMMUNICATION PROCESSING DEVICE, INFORMATION PROCESSING DEVICE, AND COMMUNICATION PROCESSING DEVICE CONTROL METHOD | |
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 | |
US20090307677A1 (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 | |
CN104915226A (en) | Network device software starting method, device and network device | |
US10120677B2 (en) | Method of rewriting printer firmware, and printer | |
CN114356658A (en) | Processing method of firmware upgrading exception, computer equipment and readable storage medium | |
JP2007087269A (en) | Software update system, update method and program | |
US20190286447A1 (en) | Information processing device | |
JP6011687B1 (en) | Storage device and control method thereof | |
WO2020043361A1 (en) | Installing application program code on a vehicle control system | |
JP7491765B2 (en) | Firmware update system and firmware update method | |
JP2003122575A (en) | Information processing unit | |
JP2005321967A (en) | Information processor | |
JP2004094628A (en) | Memory rewriting control system for flash memory, memory rewriting control method, and program allowing execution of each process of memory rewriting control method | |
JP6252321B2 (en) | Memory control method and information processing apparatus | |
JP2008108048A (en) | Computer and method for updating firmware therefor | |
CN117407218A (en) | OpenPower server PNOR firmware backup and recovery method and system | |
JP2004110220A (en) | Method for updating program | |
KR20060120988A (en) | Apparatus and method for system booting which uses redundancy mechanism boot rom |
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 |