JP2016151888A - Communication apparatus - Google Patents
Communication apparatus Download PDFInfo
- Publication number
- JP2016151888A JP2016151888A JP2015028844A JP2015028844A JP2016151888A JP 2016151888 A JP2016151888 A JP 2016151888A JP 2015028844 A JP2015028844 A JP 2015028844A JP 2015028844 A JP2015028844 A JP 2015028844A JP 2016151888 A JP2016151888 A JP 2016151888A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- memory area
- area
- data
- communication device
- 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.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 154
- 238000012545 processing Methods 0.000 claims abstract description 161
- 238000012546 transfer Methods 0.000 claims abstract description 64
- 230000004913 activation Effects 0.000 claims description 52
- 238000012423 maintenance Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 9
- 230000015556 catabolic process Effects 0.000 claims description 3
- 238000006731 degradation reaction Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 abstract description 15
- 238000000034 method Methods 0.000 description 148
- 230000008569 process Effects 0.000 description 117
- 238000012790 confirmation Methods 0.000 description 51
- 238000007726 management method Methods 0.000 description 33
- 238000001994 activation Methods 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 17
- 230000005055 memory storage Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000003068 static effect Effects 0.000 description 9
- 238000004441 surface measurement Methods 0.000 description 9
- 230000007704 transition Effects 0.000 description 8
- 239000000284 extract Substances 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Abstract
Description
本発明は、通信装置に関する。 The present invention relates to a communication device.
ルータ及びスイッチ等の一般的な通信装置では、通信装置の運用時に決定され、かつ、運用中に動的に更新される経路情報等のデータは、書込寿命に優れているDRAM(Dynamic Random Access Memory)等の揮発性メモリに格納される。また、一般的な通信装置では、通信装置の運用時に決定され、運用中に動的に更新されないコンフィグ情報及び装置の設定情報のデータは、一時的に揮発性メモリに格納され、ユーザからのオペレーション等を契機に、Flashメモリ等の不揮発性メモリに格納される。 In a general communication device such as a router and a switch, data such as path information determined at the time of operation of the communication device and dynamically updated during operation is DRAM (Dynamic Random Access) having an excellent write life. Stored in a volatile memory such as Memory. In general communication devices, configuration information and device setting information that are determined during operation of the communication device and are not dynamically updated during operation are temporarily stored in a volatile memory, and the operation from the user is performed. Etc., the data is stored in a non-volatile memory such as a flash memory.
本明細書では、運用中に動的に更新されるデータ(更新頻度が高いデータ)を動的データとも記載する。また、運用中に動的に更新されないデータ(更新頻度が低いデータ)を静的データとも記載する。 In this specification, data that is dynamically updated during operation (data that is frequently updated) is also referred to as dynamic data. In addition, data that is not dynamically updated during operation (data with low update frequency) is also described as static data.
通信装置の運用及び管理において、インシデントが発生した直前の装置情報(ログ)を記録し、故障又は障害が発生した時の装置及び経路の情報である障害ログに基づいて、原因究明及び障害対策を立てることが重要である。障害が発生する直前の装置情報を保持するためには常にログを更新する必要がある。また、ログの更新に合わせて電源断などの致命的な障害が発生した場合でも、障害を解析できる仕組みが必要とされる。 In the operation and management of communication devices, record device information (log) immediately before the occurrence of an incident, and investigate the cause and take countermeasures based on the failure log, which is device and path information when a failure or failure occurs. It is important to stand. In order to retain device information immediately before a failure occurs, it is necessary to always update the log. In addition, even if a fatal failure such as a power failure occurs when the log is updated, a mechanism that can analyze the failure is required.
通信装置の障害には、ルーティングプロトコルのアプリケーション若しくはデーモンのハングアップ又はプログラムの暴走等に起因するソフトウェア障害と、CPU、メモリ、電源又はクロック周辺回路等の故障に起因するハードウェア障害とが存在する。 Communication device failures include software failures due to routing protocol applications or daemon hang-ups or program runaway, and hardware failures due to failures in CPU, memory, power supply, clock peripheral circuits, etc. .
一般的な通信装置においてハードウェア障害が発生した場合、揮発性メモリに格納される動的データはログとして残らない。そのため、周期的に、揮発性メモリに格納される動的データを不揮発性メモリ等にバックアップする方法が考えられる。また、一般的な通信装置においてソフトウェア障害が発生した場合、揮発性メモリに格納される動的データを不揮発性メモリに障害ログとしてダンプする方法が考えられる。例えば、障害を解析するためのログの取得方法に関する発明として特許文献1に記載の発明が知られている。
When a hardware failure occurs in a general communication device, dynamic data stored in the volatile memory is not left as a log. Therefore, a method for periodically backing up dynamic data stored in a volatile memory to a nonvolatile memory or the like can be considered. In addition, when a software failure occurs in a general communication device, a method of dumping dynamic data stored in a volatile memory as a failure log in a nonvolatile memory can be considered. For example, the invention described in
特許文献1には、「機能ごとにパッケージ化されたユニットを複数個組み合わせて実装された伝送装置において、ロギングにより前記ユニットの状態情報を入手したログを、前記伝送装置に障害が生じた場合に前記障害の原因解析に利用できるように、順次記録する不揮発性記録部を備えることを特徴とする伝送装置」が記載されている。 Japanese Patent Laid-Open No. 2004-133867 describes that “a transmission device in which a plurality of units packaged for each function are combined and mounted is provided with a log obtained by logging the status information of the unit when a failure occurs in the transmission device. There is described a “transmission apparatus comprising a non-volatile recording unit that sequentially records so that it can be used for the cause analysis of the failure”.
特許文献1に記載の伝送装置は、ログ専用の揮発性メモリ及び不揮発性メモリを有する。特許文献1に記載の伝送装置は、周期的又は状態情報の変化が検出された場合にロギングを行い、収集された情報を一旦揮発性メモリに格納し、必要な情報を抽出し、抽出された情報を不揮発性メモリに格納する。また、特許文献1に記載の伝送装置は、重複した繰り返しパターンが含まれる場合には、時刻のログのみを不揮発性メモリに格納する。また、不揮発性メモリにおけるログの管理方法としてはループバッファ方式を用いることが記載されている。
The transmission device described in
特許文献1に記載の伝送装置は、一旦、揮発性メモリに、収集された情報を格納するため、ハードウェア障害が発生した場合、揮発性メモリに格納された情報が消滅する。そのためログを取得できない。
Since the transmission device described in
特許文献1に記載の伝送装置は、揮発性メモリに格納された情報から所定の条件を満たす情報のみを抽出し、抽出された情報を不揮発性メモリに格納する。そのため、揮発性メモリから不揮発性メモリへのデータの移動に時間が掛かり、前述したような問題が大きくなる要因となる。また、障害を解析するためには様々な要因を考慮する必要があるが、特許文献1に記載の伝送装置は必ずしも障害解析に必要な情報がログとして取得できるわけではない。
The transmission device described in
また、特許文献1に記載の伝送装置は、動的データを不揮発性メモリに格納する場合、ループバッファ方式でログを管理する。そのため、不揮発性メモリの容量が不足している場合、ログの取得を開始してから初めて発生した障害の障害情報が新たなデータに上書きされる。したがって、障害解析に必要な情報をログとして残すことができない。特許文献1に記載されているように、一度発生した障害は何度も発生する可能性があるため、初めて発生した障害の障害情報は、障害解析において重要な情報となる。
Moreover, the transmission apparatus described in
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、データを転送する通信装置であって、前記通信装置は、当該通信装置を制御する制御部及び前記データの転送を制御する転送部を備え、前記制御部は、処理を実行する演算処理部と、不揮発性メモリと、揮発性メモリと、前記演算処理部がアクセスする前記不揮発性メモリの領域を分割することによって生成されたメモリ領域を制御するメモリ領域制御デバイスと、を含み、前記転送部は、受信したデータを転送する経路を検索する経路検索エンジンと、前記受信したデータを前記経路検索エンジンの処理結果に基づいて転送する転送エンジンと、前記経路検索エンジンが前記受信したデータを転送する経路を検索するための経路情報を格納するメモリと、ネットワークに接続するインタフェースと、を含み、前記メモリ領域制御デバイスは、前記通信装置が起動し、かつ、前記不揮発性メモリが初期化されていない場合、前記不揮発性メモリの領域の一部を、データを格納する領域、前記メモリ領域に対するデータの上書きを抑止する制御を行う保護ビットを格納する領域、前記データに関するタイムスタンプを格納する領域を含む複数のメモリ領域に分割し、前記複数のメモリ領域の中から前記演算処理部に使用させるメモリ領域である利用メモリ領域を決定し、前記演算処理部は、前記メモリ領域制御デバイスによって決定された利用メモリ領域に前記通信装置の運用中に動的に更新される動的データを格納することを特徴とする。 A typical example of the invention disclosed in the present application is as follows. That is, a communication device that transfers data, the communication device including a control unit that controls the communication device and a transfer unit that controls the transfer of the data, and the control unit is an arithmetic processing unit that executes processing A non-volatile memory, a volatile memory, and a memory area control device that controls a memory area generated by dividing an area of the non-volatile memory accessed by the arithmetic processing unit, and the transfer unit Includes a route search engine for searching for a route for transferring received data, a transfer engine for transferring the received data based on a processing result of the route search engine, and the route search engine for transferring the received data. A memory for storing path information for searching for a path; and an interface connected to a network. When the communication device is activated and the non-volatile memory is not initialized, the device suppresses overwriting of a part of the non-volatile memory area, a data storage area, and the memory area. A memory area that is divided into a plurality of memory areas including an area for storing a protection bit for performing control and an area for storing a time stamp related to the data, and is used by the arithmetic processing unit from among the plurality of memory areas A memory area is determined, and the arithmetic processing unit stores dynamic data that is dynamically updated during operation of the communication apparatus in a use memory area determined by the memory area control device.
本発明によれば、複数のメモリ領域に分割し、データの上書きを抑止する保護ビットを設けた不揮発性メモリにログとして障害解析に必要となるデータを保存するので、ユーザによる障害解析を容易にする。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。 According to the present invention, data necessary for failure analysis is stored as a log in a nonvolatile memory that is divided into a plurality of memory areas and provided with a protection bit for preventing overwriting of data, so that failure analysis by a user is easy. To do. Problems, configurations, and effects other than those described above will become apparent from the description of the following examples.
以下、実施例を添付図面に基づいて説明する。 Embodiments will be described below with reference to the accompanying drawings.
図1は、実施例の通信装置の構成の一例を示すブロック図である。 FIG. 1 is a block diagram illustrating an example of the configuration of the communication apparatus according to the embodiment.
通信装置10は、ネットワーク206からパケット(データ)を受信し、受信したパケット(データ)を所定の宛先に送信する。通信装置10は、図1に示すように、制御部100及び転送部200から構成される。
The
制御部100は、通信装置10全体の制御を行う。制御部100は、中央演算処理部104、Flashメモリ101、揮発性メモリ105、不揮発性メモリ106、メモリ領域制御デバイス109、及び転送デバイス108を含む。中央演算処理部104は、Flashメモリ101、揮発性メモリ105、メモリ領域制御デバイス109、転送デバイス108、保守用Flashメモリ118、及び入出力装置103と接続され、また、メモリ領域制御デバイス109を経由して不揮発性メモリ106と接続される。
The
中央演算処理部104は、Flashメモリ101、揮発性メモリ105、及び不揮発性メモリ106等の記憶装置に格納される情報を用いて演算処理を実行する。
The
Flashメモリ101は、データの書き込みによる性能劣化が発生する不揮発性メモリであり、制御部100が有する機能を実現するOS(Operating System)等のデータを格納する。
The
揮発性メモリ105は、運用中に動的に更新されないデータ(更新頻度が低いデータ)、すなわち、静的データ102を格納する。揮発性メモリ105は、例えばDRAM(Dynamic Random Access Memory)等が考えられる。
The
不揮発性メモリ106は、運用中に動的に更新されるデータ(更新頻度が高いデータ)すなわち、動的データ107を格納する。不揮発性メモリ106は、データの書き込みによる性能劣化が発生しない不揮発性メモリであり、例えばMRAM(Magnetoresistive Random Access Memory)等が考えられる。本実施例では、不揮発性メモリ106のメモリ領域が複数のメモリ領域に分割され、一つのメモリ領域にパケットの転送に必要な動的データ107が格納される。以下では、メモリ領域を2次元の「面」と表現するが、メモリ領域は3次元であってもよい。また、以下では、メモリ領域制御デバイス109を面制御デバイス109と表現する。
The
面制御デバイス109は、不揮発性メモリ106の各面に対するデータの追加、削除、更新等の制御を行う。面制御デバイス109の具体的な処理については後述する。
The
転送デバイス108は、制御部100及び転送部200間のデータの転送を行う。
The
保守用Flashメモリ118は、通信装置10からログを取得する場合に、当該ログを一時的に格納する。保守用Flashメモリ118は、例えば通信装置10から抜き差し可能なUSBメモリなどが考えられる。
The
入出力装置103は、通信装置10の管理者等のユーザが通信装置10のオペレーションを行う装置である。入出力装置103は、例えば、管理用コンピュータ、キーボード、マウス、タッチパネル、及びディスプレイ等が考えられる。
The input /
転送部200は、パケットの受信及びパケットの送信を制御する。転送部200は、転送デバイス201、経路検索エンジン202、テーブルメモリ203、転送エンジン204、及び1つ以上のネットワークインタフェース205を含む。経路検索エンジン202は、転送デバイス201、テーブルメモリ203、及び転送エンジン204と接続される。転送エンジン204は、1つ以上のネットワークインタフェース205と接続される。図1では、転送エンジン204は、ネットワークインタフェース205A、205B、205C、205D、205E、205Fと接続される。
The
転送デバイス201は、転送デバイス108と同様のものであり、制御部100及び転送部200間のデータの転送を行う。経路検索エンジン202は、受信したパケットの転送先を決定する。テーブルメモリ203は、経路検索エンジン202によって使用される経路情報等を格納する。ネットワークインタフェース205は、ネットワーク206に接続するインタフェースである。
The
ネットワーク206は、例えば、WAN(Wide Area Network)、LAN(Local Area Network)、SAN(Storage Area Network)、及びインターネット等が考えられる。なお、本実施例は、通信装置10に接続されるネットワーク206の種類に限定されない。
The network 206 may be, for example, a WAN (Wide Area Network), a LAN (Local Area Network), a SAN (Storage Area Network), and the Internet. Note that the present embodiment is not limited to the type of network 206 connected to the
なお、経路検索エンジン202及び転送エンジン204は、機能ブロック単位で分割されているが、一つの機能ブロック又は一つのデバイスとして実現してもよい。
The
ここで、通信装置10の動作の概略について説明する。
Here, an outline of the operation of the
中央演算処理部104は、ルーティングプロトコルによる収集された動的な経路データ及びユーザが入出力装置103を操作して入力した静的な経路データに基づいて、経路算出処理を実行する。経路算出処理は、管理しているネットワークトポロジが変更されるたびに実行される。
The
中央演算処理部104は、経路算出処理の結果に基づいて現時点の経路情報の差分を更新情報として抽出し、面制御デバイス109を介して不揮発性メモリ106のメモリ領域の一部(面)に更新情報を動的データ107として格納する。本実施例では、更新情報が面制御デバイス109を経由して不揮発性メモリ106に格納される。また、中央演算処理部104は、転送デバイス108を経由して更新情報を転送部200に送信する。
The
転送デバイス108及び転送デバイス201は、それぞれ、バケツリレー方式で不揮発性メモリ106に格納された更新情報を転送する。これによって、テーブルメモリ203に当該更新情報が書き込まれる。
The
経路検索エンジン202は、テーブルメモリ203に書き込まれた更新情報に基づいて、ネットワーク206から送信されてきたパケットの転送先を決定する。
The
また、転送エンジン204は、経路検索エンジン202による宛先検索結果に基づいて、ネットワークインタフェース205のいずれかを経由して、ネットワーク206から受信したパケットを所定の宛先に転送する。なお、転送先が不明な場合又は通信装置10宛のパケットだった場合、パケットは、転送デバイス201及び転送デバイス108を経由して中央演算処理部104へ送信され、中央演算処理部104によって当該パケットが処理される。
Further, the
なお、図1に示す通信装置10の構成は一例であってこれに限定されない。例えば、制御部100及び転送部200を冗長構成にしてもよい。
Note that the configuration of the
図2は、実施例の制御部100の構成の一例を説明するブロック図である。
FIG. 2 is a block diagram illustrating an example of the configuration of the
中央演算処理部104は、CPU1041及びI/O(Input/Output)制御部1042を有する。CPU1041は、各種演算処理を実行する。I/O制御部1042は、転送デバイス108等のI/Oデバイスからのメモリアクセス(DMA:Direct Memory ACCESS)及びCPU1041からのメモリアクセス(PIO:Programmed I/O)の調停処理を実行する。
The
CPU1041は、I/O制御部1042に接続されるDDR3に代表されるメモリバス111を介して、揮発性メモリ105及び後述する面切替制御部114と接続される。ここで、メモリバス111はメモリアドレス信号の出力に用いられる接続線である。CPU1041は、I/O制御部1042に接続されるPCIeに代表される制御バス112を介して、転送デバイス108及び後述する面切替制御部114と接続される。ここで、制御バス112は、通信装置10内の各種バスを制御するバス制御用のバスであり、メモリバス111等のバスにおける信号の入出力タイミング、中央演算処理部104と面制御デバイス109等の他のデバイスとの間で送受信される制御情報の送信する信号の出力に用いられる接続線である。CPU1041は、I/O制御部1042に接続されるSATAに代表されるストレージ用バスを介して、Flashメモリ101と接続される。また、CPU1041は、活線状態で抜き挿しが可能なUSB等を代表としたバスを介して保守用Flashメモリ118と接続される。
The
面制御デバイス109は、面切替制御部114、面制御レジスタ110、及び面管理テーブル113を有する。なお、面制御デバイス109は、面管理テーブル113及び面制御レジスタ110、処理に使用する一時的なデータを格納するメモリ(図示省略)を有する。
The
面切替制御部114は、不揮発性メモリ106における面の割り当て及び切り替えを行い、また、中央演算処理部104にCPUリセット命令を出力する。CPUリセット命令は、CPU1041の起動処理をリセット(停止)する命令である。面切替制御部114は、内部バスを介して面管理テーブル113及び面制御レジスタ110と接続される。また、面切替制御部114は、メモリバス111を介して不揮発性メモリ106と接続される。
The surface
本実施例では、中央演算処理部104は、メモリバス111を介して直接不揮発性メモリ106に接続されず、面切替制御部114を経由して不揮発性メモリ106に接続される。これによって、面切替制御部114は、CPU1041が認識可能な不揮発性メモリ106のメモリ領域を特定の領域(面)に限定する。
In this embodiment, the
面制御レジスタ110は、不揮発性メモリ106における面の制御に必要な情報を格納する。面制御レジスタ110の詳細については図4を用いて後述する。面管理テーブル113は、不揮発性メモリ106における面を管理する情報を格納する。面管理テーブル113の詳細については図5を用いて後述する。
The surface control register 110 stores information necessary for controlling the surface in the
本実施例では、中央演算処理部104が、データを格納するメモリ領域として、揮発性メモリ105及び不揮発性メモリ106を動的に決定する。具体的には、中央演算処理部104は、図2に示すように情報の削除及び追加等、頻繁に更新される動的データ107を不揮発性メモリ106に格納し、頻繁に更新されない静的データ102を揮発性メモリ105に格納する。静的データ102は、例えば、コンフィグ情報等、ユーザ契機で適宜変更される情報が考えられる。
In this embodiment, the
なお、経路情報は、周期的に周辺の機器から収集された情報に基づいて設定されるデータ、すなわち、動的データ107の特性を有するデータと、ユーザ契機で設定されるデータ、すなわち、静的データ102の特性を有するデータとを含む。したがって、中央演算処理部104は、揮発性メモリ105又は不揮発性メモリ106のいずれか一方に経路情報を格納してもよいし、特性の異なるデータを分割することができる場合には、揮発性メモリ105及び不揮発性メモリ106にそれぞれのデータを格納してもよい。
The route information includes data set based on information periodically collected from peripheral devices, that is, data having the characteristics of the
次に、図3を用いて本実施例の不揮発性メモリ106の構成について説明する。図3は、実施例の不揮発性メモリ106の構成の一例を示す説明図である。
Next, the configuration of the
本実施例では不揮発性メモリ106のメモリ領域が、実利用メモリ領域1067及び制御フラグ格納領域1068の二つに分けて管理される。実利用メモリ領域1067は、データを格納するメモリ領域である。本実施例の実利用メモリ領域1067は、複数の面に分割され、各面にデータが格納される。以下の説明では、実利用メモリ領域1067を所定のサイズの複数の面に分割することを、面を設定するとも記載する。制御フラグ格納領域1068は、面を制御するためのフラグ及び情報を格納するメモリ領域である。
In the present embodiment, the memory area of the
本実施例では、不揮発性メモリ106の制御フラグ格納領域1068の定義情報が、面制御デバイス109等の通信装置10の内部に設定されているものとする。定義情報には、不揮発性メモリ106における制御フラグ格納領域1068の先頭アドレス(例えば、0x0000000)、及びサイズが含まれる。なお、制御フラグ格納領域1068は、必要な情報を格納できるメモリ領域であるものとする。
In this embodiment, it is assumed that the definition information of the control
実利用メモリ領域1067には、一つ以上の面を含む。本実施例では、一つの面は、データエリア1062、保護ビット1063、マジックナンバ1064、及びタイムスタンプ1065から構成される。
The actual
データエリア1062は、データを格納するメモリ領域である。保護ビット1063は、保護ビットを設定するメモリ領域である。ここで、保護ビットは、面に対する新たなデータの上書きを抑止する制御を実現するためのビットである。保護ビット1063には、保護ビットが無効であることを示す「0」、又は、保護ビットが有効であることを示す「1」のいずれかが格納される。なお、保護ビット1063には初期値として「0」が格納される。 The data area 1062 is a memory area for storing data. The protection bit 1063 is a memory area for setting a protection bit. Here, the protection bit is a bit for realizing control for suppressing overwriting of new data on the surface. The protection bit 1063 stores either “0” indicating that the protection bit is invalid or “1” indicating that the protection bit is valid. The protection bit 1063 stores “0” as an initial value.
マジックナンバ1064は、データエリア1062に格納されるデータの整合性を確認するための識別情報を格納するメモリ領域である。タイムスタンプ1065は、データエリア1062にデータが格納された時間(タイムスタンプ)を格納するメモリ領域である。 The magic number 1064 is a memory area for storing identification information for confirming the consistency of data stored in the data area 1062. The time stamp 1065 is a memory area for storing the time (time stamp) when data is stored in the data area 1062.
制御フラグ格納領域1068は、不揮発性メモリ初期化パスフラグ1066及びライトポイント格納エリア1061を含む。
The control
不揮発性メモリ初期化パスフラグ1066は、初期設定処理を実行する必要があるか否かを示すフラグを格納するメモリ領域である。不揮発性メモリ初期化パスフラグ1066が無効化されている場合、初期設定処理を実行する必要があることを示す。ライトポイント格納エリア1061は、中央演算処理部104にアサインする面の候補となる面の識別情報を格納するメモリ領域である。
The non-volatile memory
次に、図4及び図5を用いて、面切替制御部114が保持する情報について説明する。
Next, information held by the surface switching
図4は、実施例の面制御レジスタ110の一例を示す説明図である。 FIG. 4 is an explanatory diagram illustrating an example of the surface control register 110 according to the embodiment.
面制御レジスタ110は、最大面数1101、制御フラグ格納領域サイズ1102、実利用メモリ容量1103、マジックナンバ1104、ソフトウェア起動確認フラグ1105、及び面選択フラグ1106を含む。
The
最大面数1101は、不揮発性メモリ106に設定された面の数である。制御フラグ格納領域サイズ1102は、制御フラグ格納領域1068のメモリ容量である。実利用メモリ容量1103は、実利用メモリ領域1067のメモリ容量である。マジックナンバ1104は、面に格納されるデータの整合性を確認するための識別情報である。なお、マジックナンバ1104には、面制御デバイス109の固有の値が予め設定されているものとする。
The maximum number of
ソフトウェア起動確認フラグ1105は、OS等のソフトウェアの起動完了を確認するためのフラグである。本実施例のソフトウェア起動確認フラグ1105には、初期値としてフラグが無効であることを示す「0」が格納される。後述するように、ソフトウェアの起動が完了した場合、ソフトウェア起動確認フラグ1105にはフラグが有効であることを示す「1」が格納される。
The software
面選択フラグ1106は、不揮発性メモリ106の各面に格納されるデータを障害ログとして取得するか否かを示すフラグである。面選択フラグ1106は、最大面数1101に格納される値と同一の数だけ存在する。面選択フラグ1106には、初期値として、面に格納されるデータを障害ログとして取得しないこと、すなわち、フラグが無効であることを示す「0」が格納される。後述するように、任意の面に格納されるデータを障害ログとして取得する場合には、当該面に対応する面選択フラグ1106にはフラグが有効であることを示す「1」が格納される。
The surface selection flag 1106 is a flag indicating whether or not data stored in each surface of the
図5は、実施例の面管理テーブル113の一例を示す説明図である。 FIG. 5 is an explanatory diagram illustrating an example of the surface management table 113 according to the embodiment.
面管理テーブル113は、面ID1131、不揮発性メモリ格納領域1132、タイムスタンプ1133、及び故障フラグ1134を含む。
The surface management table 113 includes a
面ID1131は、不揮発性メモリ106内の各面を一意に識別するための識別番号である。不揮発性メモリ格納領域1132は、面に対応するメモリ領域を特定するためのアドレス範囲である。タイムスタンプ1133は、面にデータが格納された時間である。故障フラグ1134は、面に格納されるデータにデータ化け等の不具合が発生しているか否かを示すフラグである。故障フラグ1134には、初期値として、不具合が発生していないこと、すなわち、フラグが無効であることを示す「0」が格納される。
The
次に、図6を用いて通信装置10の一連の処理の流れについて説明する。図6は、実施例の通信装置10の処理の流れを示す説明図である
Next, a flow of a series of processes of the
図6では、横軸は時間軸に対応する。また、三角の記号は通信装置10における状態変化を表す。以下、三つのケース300、400、500に分けて通信装置10の処理の流れについて説明する。
In FIG. 6, the horizontal axis corresponds to the time axis. The triangular symbol represents a change in state in the
まず、通常の通信装置10の起動処理の流れを示すケース300について説明する。通信装置10に初めて電源が投入されると(ステップS10)、通信装置10は、中央演算処理部104及び面制御デバイス109等の各種デバイスを起動する(ステップS11)。このとき、面制御デバイス109は、中央演算処理部104のCPU1041に対してCPUリセット命令を出力し、不揮発性メモリ106を初期化し、また、利用面を決定する(ステップS12)。ここで、利用面とは、中央演算処理部104が動的データ107を格納するメモリ領域と提供される面をいう。また、初期化とは、格納された情報を削除することをいう。
First, a
具体的には、面制御デバイス109が、不揮発性メモリ106のメモリ領域に面を設定し、設定された面の中から初期の利用面を決定する。面制御デバイス109が、中央演算処理部104の起動前に不揮発性メモリ106を初期化し、また、利用面を決定することによって、中央演算処理部104がメモリ空間にアサインする不揮発性メモリ106のメモリ領域を設定できる。ここで、メモリ空間とは中央演算処理部104が不揮発性メモリ106にアクセスするアドレスが割り当てられたメモリ領域をいう。
Specifically, the
通信装置10は、BIOSを起動させ、また、CPUのリセットを解除する(ステップS13)。通信装置10は、不揮発性メモリ106の所定の利用面をメモリ空間にアサインする(ステップS14)。
The
具体的には、面制御デバイス109が中央演算処理部104へのCPUリセット命令の出力を停止する。これによって、中央演算処理部104が、通信装置10の各種デバイスの認識処理を開始する。本実施例では、面制御デバイス109によって不揮発性メモリ106の所定のメモリ領域、すなわち、一つの面のみを中央演算処理部104が認識できるように制御される。そのため、中央演算処理部104は、面制御デバイス109によって決定された一つの面をメモリ空間にアサインする。
Specifically, the
さらに、通信装置10は、OSの起動処理を実行する(ステップS15)。その後、通信装置10は、ソフトウェアの通常運用を開始する(ステップS16)。面制御デバイス109は、ソフトウェアの通常運用後に、アサインされた面の保護ビット1063に「1」を設定する(ステップS17)。
Furthermore, the
次に、通常の通信装置10の再起動処理の流れを示すケース400について説明する。通信装置10は、ソフトウェアの通常運用を開始している(ステップS20)。再起動オペレーションが発生した場合(ステップS21)、再起動のために通信装置10に再度電源が投入される(ステップS22)。面制御デバイス109は、通信装置10の再起動前に、アサインされた面の保護ビット1063に「0」を設定する(ステップS23)。
Next, a
通信装置10は、各種デバイスを起動すると(ステップS24)、面制御デバイス109は、利用面を切り替える(ステップS25)。再起動を契機にこれまで提供されていた利用面が他の面に切り替えられる。なお、切替前の面の保護ビット1063には「1」が設定されていないため、新たなデータを格納するメモリ領域として再利用できる。
When the
通信装置10は、BIOSを起動させ、また、CPUのリセットを解除する(ステップS26)。通信装置10は、面制御デバイス109によって決定された利用面をメモリ空間にアサインする(ステップS27)。さらに、通信装置10は、OSの起動処理を実行する(ステップS28)。その後、通信装置10は、ソフトウェアの通常運用を開始する(ステップS29)。面制御デバイス109は、ソフトウェアの通常運用後に、アサインされた面の保護ビット1063に「1」を設定する。
The
次に、障害発生時の通信装置10の再起動処理の流れを示すケース500について説明する。
Next, a
通信装置10は、ソフトウェアの通常運用を開始している(ステップS30)。障害が発生した場合(ステップS31)、再起動のために通信装置10に再度電源が投入される(ステップS32)。このとき、アサインされた面の保護ビット1063は変更されない。通信装置10は、各種デバイスを起動すると(ステップS33)、面制御デバイス109は、利用面を切り替える(ステップS34)。
The
このとき、これまで利用していた利用面の保護ビット1063には「1」が設定されているため、切替前の面のデータエリア1062に格納されるデータが障害ログとして保存される。 At this time, since “1” is set in the protection bit 1063 of the usage surface that has been used so far, the data stored in the data area 1062 of the surface before switching is saved as a failure log.
通信装置10は、BIOSを起動させ、また、CPUのリセットを解除する(ステップS35)。通信装置10は、不揮発性メモリ106の所定の利用面をメモリ空間にアサインする(ステップS36)。さらに、通信装置10は、OSの起動処理を実行する(ステップS37)。その後、通信装置10は、ソフトウェアの通常運用を開始する(ステップS38)。面制御デバイス109は、ソフトウェアの通常運用後に、アサインされた面の保護ビット1063に「1」を設定する(ステップS39)。
The
通信装置10は、自動的に又は管理者からの指示にしたがって、保護ビット1063に「1」が設定された面に格納されるデータを障害ログとして取得する(ステップS40)。
The
ケース300、400、500を用いて説明したように、本実施例の通信装置10は、不揮発性メモリ106の一部のメモリ領域(面)を中央演算処理部104が動的データ107を格納するメモリ領域として提供する。また、通信装置10は、通常の再起動処理の場合、保護ビット1063を無効化した後に、中央演算処理部104が使用する面を切り替え、また、障害発生に起因する再起動処理の場合、保護ビット1063を有効化したまま、中央演算処理部104が使用する面を切り替える。なお、以下の説明では障害発生に起因する再起動処理を障害再起動処理とも記載する。
As described using the
従来、通信装置10は、障害が発生した場合、障害ログのダンプを取得した後に再起動を行っていたため、通信装置10の停止時間が長くなるという問題があった。しかし、本実施例の通信装置10は、面を切り替えることによって障害ログを保存できるため、停止時間を短くすることができる。
Conventionally, when a failure occurs, the
また、保護ビット1063が「1」でない面は、新たにデータを上書きできるように制御される。そのため、不揮発性メモリ106のメモリ領域を有効に活用することができ、障害解析に必要な障害ログのみを不揮発性メモリ106に保存することができる。
Further, the surface where the protection bit 1063 is not “1” is controlled so that data can be overwritten newly. Therefore, the memory area of the
なお、面制御デバイス109の起動時間、不揮発性メモリ106の初期化、利用面の決定に必要な処理時間は、障害ログのダンプの取得に必要な時間より短いため、通信装置10の通常運用に与える影響は十分に小さい。
It should be noted that the processing time required for starting the
次に、通信装置10の起動時の処理における面制御デバイス109の処理の詳細について説明する。
Next, details of the process of the
図7は、実施例の面制御デバイス109が実行する処理の概要を説明するフローチャートである。通信装置10に電源が投入され、各種デバイスが起動した後に面制御デバイス109は、以下で説明する処理を開始する。
FIG. 7 is a flowchart illustrating an outline of processing executed by the
面制御デバイス109は、不揮発性メモリ106に対する初期設定処理を実行する(ステップS100)。初期設定処理では、面制御デバイス109は、不揮発性メモリ106のメモリ領域を所定のサイズのメモリ領域に分割することによって、複数の面を設定する。初期設定処理の詳細は図8A及び図8Bを用いて後述する。
The
面制御デバイス109は、不揮発性メモリ106に設定された複数の面の中から、中央演算処理部104の利用面を決定するために、利用面決定処理を実行する(ステップS200)。利用面決定処理では、通信装置10の起動の契機及び不揮発性メモリ106の各面の状態に応じて、ログ更新面選択処理及び不揮発性メモリ整合性確認処理が実行される(ステップS300、ステップS400)。利用面決定処理の詳細は図9A及び図9Bを用いて、ログ更新面選択処理の詳細は図10を用いて、不揮発性メモリ整合性確認処理の詳細は図11を用いて後述する。
The
面制御デバイス109は、利用面決定処理が完了した後、ソフトウェア正常起動確認処理を実行する(ステップS500)。ソフトウェア正常起動確認処理の詳細は図12A及び図12Bを用いて後述する。
The
ソフトウェア正常起動確認処理が正常に完了した場合、通信装置10は、通常の運用状態に移行する。通常の運用状態では、図1を用いた説明したように、通信装置10は、ネットワーク206に対するパケットの転送処理を実行する。
When the software normal activation confirmation process is normally completed, the
ソフトウェア正常起動確認処理が正常に完了しない場合、又は、再起動オペレーション若しくは障害が発生した場合、通信装置10はステップS100に戻り、面制御デバイス109は同様の処理を実行する。
If the software normal activation check process is not completed normally, or if a restart operation or a failure occurs, the
後述するように、本実施例では、不揮発性メモリ106の面に対して、リングバッファ形式でデータが更新される。通常の再起動処理の場合、保護ビット1063は無効化される。一方、障害再起動処理の場合、保護ビット1063は無効化されない。そのため、リングバッファ形式で面の管理を実現しつつ、不揮発性メモリ106に障害ログを残すことができる。
As will be described later, in this embodiment, data is updated in a ring buffer format on the surface of the
図8A及び図8Bは、実施例の面制御デバイス109が実行する初期設定処理の一例を説明するフローチャートである。
8A and 8B are flowcharts illustrating an example of an initial setting process executed by the
面制御デバイス109の面切替制御部114は、通信装置10に電源が投入された後に初期設定処理を開始する。なお、面制御デバイス109は、通信装置10の管理者によって不揮発性メモリ106、面制御レジスタ110、及び面管理テーブル113が初期化された場合に初期設定処理を実行してもよい。
The surface
面切替制御部114は、中央演算処理部104に対してCPUリセット命令を発行する(ステップS1001)。これによって、中央演算処理部104の起動が停止する。これは、中央演算処理部104がメモリ空間に不揮発性メモリ106のメモリ領域をアサインする前に、不揮発性メモリ106の設定を完了させるためである。
The surface
なお、通信装置10に電源管理用のデバイスを設けて、面制御デバイス109及び中央演算処理部104の起動シーケンスを制御することによって、同様の手順を実現してもよい。
A similar procedure may be realized by providing a power management device in the
面切替制御部114は、不揮発性メモリ106の制御フラグ格納領域1068の不揮発性メモリ初期化パスフラグ1066の値を読み出し(ステップS1002)、不揮発性メモリ初期化パスフラグ1066が有効化されているか否かを判定する(ステップS1003)。すなわち、不揮発性メモリ106の初期設定が必要であるか否かが判定される。
The surface
具体的には、面切替制御部114は、制御フラグ格納領域1068が設定されるメモリ領域の先頭アドレスに基づいて不揮発性メモリ106にアクセスし、不揮発性メモリ初期化パスフラグ1066の値を読み出す。
Specifically, the surface switching
不揮発性メモリ初期化パスフラグ1066が有効化されている場合(ステップS1003がYES)、すでに不揮発性メモリ106の初期化が完了しているため、面切替制御部114は初期設定処理を終了する。
If the nonvolatile memory
不揮発性メモリ初期化パスフラグ1066が無効化されている場合(ステップS1003がNO)、面切替制御部114は、面制御レジスタ110及び面管理テーブル113に設定された値を初期化する(ステップS1004)。
When the nonvolatile memory
具体的には、面切替制御部114は、面制御レジスタ110の最大面数1101、制御フラグ格納領域サイズ1102及び実利用メモリ容量1103の値を削除し、ソフトウェア起動確認フラグ1105に「0」を設定する。面切替制御部114は、面制御レジスタ110に含まれる全ての面選択フラグ1106を削除する。また、面切替制御部114は、面管理テーブル113から全てのエントリを削除する。
Specifically, the surface switching
面切替制御部114は、不揮発性メモリ106を初期化する(ステップS1005)。
The surface
具体的には、面切替制御部114は、不揮発性メモリ106の実利用メモリ領域1067を初期化する。また、面切替制御部114は、制御フラグ格納領域1068の不揮発性メモリ初期化パスフラグ1066を無効化し、また、ライトポイント格納エリア1061に初期値(例えば「1」)を設定する。また、面切替制御部114は、不揮発性メモリ106のメモリ領域のサイズを取得する。
Specifically, the surface switching
面切替制御部114は、面制御レジスタ110の制御フラグ格納領域サイズ1102及び実利用メモリ容量1103に値を格納する(ステップS1006)。
The surface
具体的には、面切替制御部114は、制御フラグ格納領域1068の定義情報から制御フラグ格納領域1068のサイズを取得し、取得された値を制御フラグ格納領域サイズ1102に格納する。面切替制御部114は、不揮発性メモリ106のメモリ領域のサイズから制御フラグ格納領域1068のサイズを減算することによって、実利用メモリ領域1067のサイズを算出する。面切替制御部114は、算出された値を実利用メモリ容量1103に格納する。
Specifically, the surface switching
面切替制御部114は、実利用メモリ領域1067に設定可能な最大面数を算出し、面制御レジスタ110を更新する(ステップS1007)。
The surface
具体的には、面切替制御部114は、面制御レジスタ110の最大面数1101に算出された値を格納し、また、面制御レジスタ110に算出された値の数だけ面選択フラグ1106を生成し、生成された面選択フラグ1106に「0」を設定する。
Specifically, the surface switching
なお、一つの面のサイズは、面切替制御部114に設定されているものとする。例えば、面切替制御部114に予め面のサイズの情報を入力する方法、管理者からの入力を受け付ける方法などが考えられる。また、不揮発性メモリ106の制御フラグ格納領域1068の一部に一つの面のサイズの情報を格納し、面切替制御部114が当該情報を読み出してもよい。
Note that the size of one surface is set in the surface switching
面切替制御部114は、算出された最大面数に基づいて実利用メモリ領域1067を分割し、面管理テーブル113を更新する(ステップS1008)。具体的には、以下のような処理が実行される。
The surface
面切替制御部114は、実利用メモリ領域1067を最大面数分のメモリ領域(面)に分割する。また、面切替制御部114は、分割された各メモリ領域に、データエリア1062、保護ビット1063、マジックナンバ1064、及びタイムスタンプ1065に対応するメモリ領域を設定する。この時点では、データエリア1062、保護ビット1063、マジックナンバ1064、及びタイムスタンプ1065にはデータは格納されていない。
The surface
また、面切替制御部114は、面管理テーブル113に最大面数のエントリを生成する。面切替制御部114は、生成された各エントリの不揮発性メモリ格納領域1132に、各面に対応するメモリ領域の開始アドレス及び終了アドレスを設定する。面切替制御部114は、生成された各エントリの面ID1131に降順に面の識別番号を設定する。また、面切替制御部114は、生成された各エントリの故障フラグ1134に「0」を設定する。なお、面ID1131に設定する面の識別番号は昇順に設定されてもよい。
In addition, the surface switching
面切替制御部114は、面制御レジスタ110のマジックナンバ1104の値を読み出し(ステップS1009)、不揮発性メモリ106の各面のマジックナンバ1064に読み出された値を設定する(ステップS1010)。
The surface
面切替制御部114は、不揮発性メモリの全ての面のマジックナンバ1064に設定された値が面制御レジスタ110のマジックナンバ1104の値と一致するか否かを判定する(ステップS1011)。
The surface
全ての面のマジックナンバ1064に設定された値が面制御レジスタ110のマジックナンバ1104の値と一致すると場合(ステップS1011がYES)、面切替制御部114は、ステップS1013に進む。
If the values set in the magic numbers 1064 of all the faces coincide with the
全ての面のマジックナンバ1064に設定された値が面制御レジスタ110のマジックナンバ1104の値と一致しない場合(ステップS1011がNO)、面切替制御部114は、面制御レジスタ110のマジックナンバ1104の値と一致していない面に対応するエントリの故障フラグ1134を有効化する(ステップS1012)。
When the values set for the magic numbers 1064 of all the faces do not match the
具体的には、面切替制御部114は、故障フラグ1134に「1」を設定する。なお、面切替制御部114は、ステップS1012の処理の代わりに、ステップS1002又はステップS1009に戻ってもよい。面のマジックナンバ1064に設定された値が面制御レジスタ110のマジックナンバ1104の値と一致しない場合、データの欠損及びデータ化け等が発生することによって当該面にはデータを正しく格納できないことを示しており、面が故障している可能性がある。そのため、前述した面の故障フラグ1134に「1」が設定される。
Specifically, the surface switching
ステップS1011又はステップS1012の処理が完了した後、面切替制御部114は、不揮発性メモリ106の制御フラグ格納領域1068にアクセスし、不揮発性メモリ初期化パスフラグ1066を有効化する(ステップS1013)。その後、面切替制御部114は、初期設定処理を終了する。
After the process of step S1011 or step S1012 is completed, the surface switching
図9A及び図9Bは、実施例の面制御デバイス109が実行する利用面決定処理の一例を説明するフローチャートである。
FIG. 9A and FIG. 9B are flowcharts for explaining an example of usage surface determination processing executed by the
面制御デバイス109の面切替制御部114は、初期設定処理が終了した後、以下で説明する利用面決定処理を開始する。
The surface
面切替制御部114は、不揮発性メモリ106にアクセスし、ライトポイント格納エリア1061から値を読み出し、読み出された値を変数WPとして保持する(ステップS2001)。面切替制御部114は、面管理テーブル113から変数WPに対応する面のアドレスを取得する(ステップS2002)。
The surface
具体的には、面切替制御部114は、面ID1131の値が変数WPの値と一致するエントリを検索し、検索されたエントリの不揮発性メモリ格納領域1132から面のアドレスを取得する。
Specifically, the surface switching
面切替制御部114は、取得されたアドレスに基づいて不揮発性メモリ106の変数WPの値に対応する面にアクセスして、当該面の保護ビット1063の値を読み出す(ステップS2003)。さらに、面切替制御部114は、読み出された値に基づいて保護ビット1063が有効化されているか否かを判定する(ステップS2004)。すなわち、保護ビット1063から読み出された値が「1」であるか否かが判定される。
The surface
保護ビット1063が無効化されている場合(ステップS2004がNO)、面切替制御部114は、変数WPの値に対応する面に不具合が発生しているか否かを判定するために不揮発性メモリ整合性確認処理を実行する(ステップS400)。また、面切替制御部114は、当該処理の結果が正常完了であるか否かを判定する(ステップS2005)。なお、不揮発性メモリ整合性確認処理では、変数WPの値に対応する面が処理対象の面として入力される。
When the protection bit 1063 is invalidated (NO in step S2004), the surface switching
不揮発性メモリ整合性確認処理の処理結果が正常完了である場合(ステップS2005がYES)、面切替制御部114は、変数WPの値に対応する面を中央演算処理部104の利用面として決定し、ステップS2008に進む。
When the processing result of the nonvolatile memory consistency check processing is normal completion (YES in step S2005), the surface switching
保護ビット1063が有効化されている場合(ステップS2004がYES)、又は、不揮発性メモリ整合性確認処理の処理結果が正常完了でない場合(ステップS2005がNO)、面切替制御部114は、変数WPの値に対応する面を中央演算処理部104の利用面として選択できない。そこで、面切替制御部114は、変数WPの値に対応する面以外の面の中で利用可能な全ての面の保護ビット1063の値を読み出す(ステップS2006)。さらに、面切替制御部114は、利用可能な全ての面の保護ビット1063が有効化されているか否かを判定する(ステップS2007)。ここで、利用可能な面とは故障フラグ1134が無効化された面を示す。具体的には、以下のような処理が実行される。
If the protection bit 1063 is enabled (YES in step S2004), or if the processing result of the nonvolatile memory consistency check process is not normally completed (NO in step S2005), the surface switching
面切替制御部114は、面管理テーブル113を参照し、面ID1131の値が変数WPの値と異なるエントリの中から、故障フラグ1134が「0」であるエントリを検索する。すなわち、面切替制御部114は、不揮発性メモリ106の面の中から利用可能な全ての面を検索する。
The surface
面切替制御部114は、検索された各エントリの不揮発性メモリ格納領域1132に格納されるアドレスに基づいて、当該エントリに対応する面の保護ビット1063の値を読み出す。面切替制御部114は、全ての面の保護ビット1063の値が「1」であるか否かを判定する。以上が、ステップS2006及びステップS2007の処理の説明である。
The surface
利用可能な全ての面の保護ビット1063が有効化されている場合(ステップS2007がYES)、面切替制御部114は、保護ビット1063が有効化されている面の中から中央演算処理部104の利用面を決定するために更新ログ選択処理を実行する(ステップS300)。これによって、中央演算処理部104の利用面が決定される。
When the protection bits 1063 for all available surfaces are enabled (YES in step S2007), the surface switching
面切替制御部114は、中央演算処理部104の利用面として決定された面にアクセスして、当該面のデータエリア1062及びタイムスタンプ1065を初期化し(ステップS2008)、また、変数WPの値に「1」を加算した値をライトポイント格納エリア1061に設定する(ステップS2009)。
The surface
具体的には、面切替制御部114は、データエリア1062からデータを削除し、タイムスタンプ1065からタイムスタンプを削除する。
Specifically, the surface switching
面切替制御部114は、面制御レジスタ110の決定された面に対応する面選択フラグ1106の操作を禁止する(ステップS2010)。例えば、面切替制御部114は、面選択フラグ1106へのアクセス属性を読み出しのみに設定する。その後、面切替制御部114は、利用面決定処理を終了する。ステップS2010の処理は、通信装置10の起動処理とは異なる処理として実行される障害ログの取得処理において、決定された面への操作を禁止するためのものである。
The surface
ステップS2007において、少なくとも一つの利用可能な面の保護ビット1063が無効化されている場合(ステップS2007がNO)、面切替制御部114は、変数WPの値に「1」を加算した値を新たな変数WPとして設定する(ステップS2011)。
When the protection bit 1063 of at least one available surface is invalidated in step S2007 (step S2007 is NO), the surface switching
面切替制御部114は、変数WPの値と最大面数とを比較し(ステップS2012)、変数WPの値が最大面数と一致するか否かを判定する(ステップS2013)。例えば、最大面数が「N−1」の場合、面切替制御部114は、変数WPの値が「N−1」であるか否かを判定する。
The surface
変数WPの値が最大面数と一致しない場合(ステップS2013がNO)、面切替制御部114は、ステップS2002に戻り同様の処理を実行する。
If the value of the variable WP does not match the maximum number of faces (NO in step S2013), the face
変数WPの値が最大面数と一致する場合(ステップS2013がYES)、面切替制御部114は、変数WPの値を「1」に設定し(ステップS2014)、その後ステップS2002に戻り同様の処理を実行する。
If the value of the variable WP matches the maximum number of faces (YES in step S2013), the face
ステップS2009において、面切替制御部114は、面が決定された後、当該面の次の面の識別番号を不揮発性メモリ106上のライトポイント格納エリア1061に設定することによって、通常運用中の電源障害等のハードウェア障害が発生した場合でも、再起動後の中央演算処理部104の利用面の候補を特定することが可能となり、リングバッファとしての機能が維持することができる。
In step S2009, after the face is determined, the face
なお、面切替制御部114は、ステップS2007の判定処理の前に、利用可能な全ての面の保護ビット1063の値を読み出していたが、以下のような処理でもよい。すなわち、面切替制御部114は、ステップS2007の判定処理の実行回数をカウントする変数を保持し、そのカウント値が最大面数と一致するまで変数WPの値をカウントアップする。このとき、面切替制御部114は、一度だけステップS2006の処理を実行し、読み出した保護ビット1063の値を一時的に保持する。これによって、不揮発性メモリ106へのアクセス回数を削減できる。
Note that the surface switching
前述したように、本実施例では、全ての面にデータが格納された状態において新たにデータを格納する場合に、所定の制御ポリシにしたがって、データを格納する面が選択される。これによって、不揮発性メモリ106の面におけるデータをリングバッファ形式で更新することができ、また、所定の条件を満たすデータが不揮発性メモリ106に障害ログとして残る。
As described above, in this embodiment, when data is newly stored in a state where data is stored in all the surfaces, the surface for storing the data is selected according to a predetermined control policy. As a result, data on the surface of the
図10は、実施例の面制御デバイス109が実行するログ更新面選択処理の一例を説明するフローチャートである。
FIG. 10 is a flowchart illustrating an example of a log update surface selection process executed by the
面制御デバイス109の面切替制御部114は、利用面決定処理において利用可能な全ての面の保護ビット1063が有効化されている場合に、以下で説明するログ更新面選択処理を開始する。
The surface
面切替制御部114は、不揮発性メモリ106の全ての面のタイムスタンプ1065の値を読み出し(ステップS3001)、読み出された値に基づいて面管理テーブル113を更新する(ステップS3002)。
The surface
具体的には、面切替制御部114は、各面のタイムスタンプ1065から取得された値を、各面に対応するエントリのタイムスタンプ1133に設定する。
Specifically, the surface switching
面切替制御部114は、更新された面管理テーブル113に基づいて、タイムスタンプが最も古い障害ログが格納される面を特定する(ステップS3003)。具体的には、以下のような処理が実行される。
Based on the updated surface management table 113, the surface switching
面切替制御部114は、更新された面管理テーブル113を参照し、故障フラグ1134が「0」であるエントリを全て抽出する。面切替制御部114は、抽出されたエントリの中からタイムスタンプ1133の値が最も古いエントリを選択する。面切替制御部114は、選択されたエントリに基づいて、当該エントリに対応する面の保護ビット1063の値を読み出す。
The surface
面切替制御部114は、読み出された保護ビット1063の値が「1」であるか否かを判定する。読み出された保護ビット1063の値が「1」である場合、面切替制御部114は、選択されたエントリに対応する面を、最も古い障害ログが格納される面として特定する。
The surface
読み出された保護ビット1063の値が「1」ではない場合、面切替制御部114は、抽出されたエントリの中からタイムスタンプ1133の値が2番目に古いエントリを選択し、前述した処理を実行する。面切替制御部114は、最も古い障害ログが格納される面が特定されるまで、前述した処理を繰り返し実行する。面切替制御部114は、特定された面の面ID1131を一時的に保持する。以上がステップS3003の処理の説明である。
If the value of the read protection bit 1063 is not “1”, the surface switching
面切替制御部114は、変数Jに「1」を設定する(ステップS3004)。また、面切替制御部114は、面管理テーブル113を参照して、最も古い障害ログが格納される面を除いた面の中から利用可能な全ての面を抽出し(ステップS3005)、抽出された利用可能な全ての面の中からJ番目にタイムスタンプが古い面を選択する(ステップS3006)。
The surface
具体的には、面切替制御部114は、最も古い障害ログが格納される面に対応するエントリを検索対象から除外する。面切替制御部114は、残りの面の中から故障フラグ1134が「0」であるエントリを全て抽出し、一時的に抽出されたエントリを保持する。面切替制御部114は、抽出されたエントリのタイムスタンプ1133の値を参照して、J番目に古いタイムスタンプを特定する。
Specifically, the surface switching
さらに、面切替制御部114は、選択された面に不具合が発生しているか否かを判定するために不揮発性メモリ整合性確認処理を実行する(ステップS400)。また、面切替制御部114は、当該処理の結果が正常完了であるか否かを判定する(ステップS3007)。なお、不揮発性メモリ整合性確認処理では、選択された面に対応するエントリの面ID1131の値が処理対象の面として入力される。つまり、面切替制御部114は、選択された面に対応するエントリの面ID1131を変数WPとして設定し、不揮発性メモリ整合性確認処理を実行する。
Further, the surface switching
不揮発性メモリ整合性確認処理の処理結果が正常完了である場合(ステップS3007がYES)、面切替制御部114は、不揮発性メモリ106のJ番目に古い面の保護ビット1063を無効化する(ステップS3008)。面切替制御部114は、J番目に古い面に対応するエントリの面ID1131の値を変数WPとして設定し(ステップS3009)、ログ更新面選択処理を終了する。
If the processing result of the nonvolatile memory consistency check processing is normal completion (YES in step S3007), the surface switching
ステップS3007において、不揮発性メモリ整合性確認処理の処理結果が正常完了でない場合(ステップS3007がNO)、面切替制御部114は、抽出された面の中に選択可能な面が存在するか否かを判定する(ステップS3010)。すなわち、処理されていない面が存在するか否かが判定される。
In step S3007, when the processing result of the nonvolatile memory consistency check process is not normally completed (NO in step S3007), the surface switching
抽出された面の中に選択可能な面が存在する場合(ステップS3010がYES)、面切替制御部114は、変数Jの値に「1」を加算した値を新たな変数Jとして設定して(ステップS3011)、ステップS3006に戻り、同様の処理を実行する。一方、抽出された面の中に選択可能な面が存在しない場合(ステップS3010がNO)、面切替制御部114は、通信装置10の起動を中断し、通信装置10を停止させる。
If there is a selectable surface among the extracted surfaces (YES in step S3010), the surface switching
不揮発性メモリ106の面に対するデータの更新はリングバッファ形式で管理される。そのため、面切替制御部114は、通常、全ての面にデータが格納されている場合、一番古いデータが格納される面に新たなデータを上書きする。この場合、通信装置10が起動してから初めて発生した障害に関する障害ログを保存することができない。
Data updates to the surface of the
本実施例では、ユーザが通信装置10の障害を解析するために障害ログを取得する場合、通信装置10が正常に起動した後から障害ログが取得されるまでの間に、最も古い障害ログ(最初の障害ログ)及び最も新しい障害ログ(直前の障害ログ)を不揮発性メモリ106に必ず残すことを想定している。これによって、1次障害及び2次障害で問題の切り分け等の障害解析に役立てることができる。したがって、面切替制御部114は、ユーザオペレーション又は障害の発生により通信装置10が再起動を繰り返した場合に、最初の障害ログが格納される面に新たなデータが上書きされるのを防止する必要がある。
In this embodiment, when a user acquires a failure log in order to analyze a failure of the
そこで、面切替制御部114は、利用可能な全ての面に保護ビット1063が有効化されている場合、最初の障害ログを格納する面を除外した面の中から新たなデータを上書きする面を選択する。前述のような制御によって、不揮発性メモリ106におけるリングバッファ形式のログ更新及び障害解析に必要な障害ログの保存を実現している。
Therefore, when the protection bit 1063 is enabled for all available surfaces, the surface switching
なお、本実施例の面切替制御部114は、最初の障害ログ及び直前の障害ログを必ず不揮発性メモリ106に残すように制御しているがこれに限定されない。面切替制御部114に予めログの更新を定義した制御ポリシを設定することが考えられる。例えば、面切替制御部114は、制御ポリシに基づいて、最初の障害の発生後、通信装置10が再起動し、再び発生した障害に関する障害ログを不揮発性メモリ106に残すように制御してもよい。また、不揮発性メモリ106に残す障害ログの数を制御ポリシとして設定することもできる。
Note that the surface switching
図11は、実施例の面制御デバイス109が実行する不揮発性メモリ整合性確認処理の一例を説明するフローチャートである。
FIG. 11 is a flowchart illustrating an example of a nonvolatile memory consistency check process executed by the
面制御デバイス109の面切替制御部114は、利用面の候補が選択された場合(ステップS2004がYES、又はステップS3006の後)、以下で説明する不揮発性メモリ整合性確認処理を開始する。なお、当該処理の開始時には、変数WPの値が入力される。
The surface
面切替制御部114は、面管理テーブル113を参照し、変数WPの値に対応する面の故障フラグ1134が有効化されているか否かを判定する(ステップS4001)。
The surface
具体的には、面切替制御部114は、面ID1131の値が変数WPの値と一致するエントリを検索し、検索されたエントリの故障フラグ1134が「1」であるか否かを判定する。検索されたエントリの故障フラグ1134が「1」である場合、面切替制御部114は、変数WPの値に対応する面の故障フラグ1134が有効化されていると判定する。
Specifically, the surface switching
変数WPの値に対応する面の故障フラグ1134が有効化されている場合(ステップS4001がYES)、面切替制御部114は、処理結果が失敗であるとして、不揮発性メモリ整合性確認処理を終了する。
When the
変数WPの値に対応する面の故障フラグ1134が無効化されている場合(ステップS4001がNO)、面切替制御部114は、面管理テーブル113から変数WPの値に対応する面のアドレスを取得する(ステップS4002)。さらに、面切替制御部114は、取得されたアドレスに基づいて不揮発性メモリ106の変数WPの値に対応する面のマジックナンバ1064から値を読み出す(ステップS4003)。
When the
具体的には、面切替制御部114は、ステップS4001において検索されたエントリの不揮発性メモリ格納領域1132から変数WPの値に対応する面のアドレスを取得する。また、面切替制御部114は、取得されたアドレスに基づいて変数WPの値に対応する面にアクセスし、当該面のマジックナンバ1064の値を読み出す。
Specifically, the surface switching
面切替制御部114は、面制御レジスタ110のマジックナンバ1104の値と変数WPに対応する面のマジックナンバ1064の値とを比較し(ステップS4004)、両方のマジックナンバが一致するか否かを判定する(ステップS4005)。
The surface
両方のマジックナンバが一致する場合(ステップS4005がYES)、面切替制御部114は、処理結果が正常完了であるとして不揮発性メモリ整合性確認処理を終了する。両方のマジックナンバが一致しない場合(ステップS4005がNO)、面切替制御部114は、変数WPの値に対応する面の故障フラグ1134を有効化し(ステップS4006)、また、処理結果が失敗であるとして、不揮発性メモリ整合性確認処理を終了する。
If the two magic numbers match (YES in step S4005), the surface switching
具体的には、面切替制御部114は、面管理テーブル113を参照して、面ID1131の値が変数WPに値に一致するエントリを検索し、検索されたエントリの故障フラグ1134に「1」を設定する。
Specifically, the surface switching
図12Aは、実施例の面制御デバイス109が実行するソフトウェア正常起動確認処理の一例を説明するフローチャートである。図12Bは、実施例のCPU1041がソフトウェア正常起動確認処理において実行する処理の一例を説明するフローチャートである。
FIG. 12A is a flowchart illustrating an example of a normal software activation confirmation process executed by the
面制御デバイス109の面切替制御部114は、利用面決定処理が完了した後、以下で説明するソフトウェア正常起動確認処理を開始する。ソフトウェアが起動し、当該ソフトウェアがメモリの利用を開始した後に、保護ビット1063が有効化された面に格納される情報が障害ログとして意味を持つ。そのため、面に格納される情報を障害ログとして保存するためにソフトウェア正常起動確認処理が実行される。
The surface
面切替制御部114は、中央演算処理部104に出力していたCPUリセット命令の発行を停止し(ステップS5001)、決定された利用面を不揮発性メモリ106のメモリ領域及び面制御レジスタ110を制御用のメモリ空間としてアサインするようにCPU1041に通知する(ステップS5002)。さらに、面切替制御部114は、面制御レジスタ110を参照し、ソフトウェア起動確認フラグ1105が有効化されているか否かを判定する(ステップS5003)。
The surface
具体的には、面切替制御部114は、周期的に、面制御レジスタ110のソフトウェア起動確認フラグ1105が「1」であるか否か判定する。面制御レジスタ110のソフトウェア起動確認フラグ1105が「1」である場合、面切替制御部114は、ソフトウェア起動確認フラグ1105が有効化されていると判定する。
Specifically, the surface switching
ソフトウェア起動確認フラグ1105が有効化されている場合(ステップS5003がYES)、面切替制御部114は、不揮発性メモリ106にアクセスして、利用面の保護ビット1063を有効化し(ステップS5004)、また、利用面のタイムスタンプ1065を更新する(ステップS5005)。具体的には、以下のような処理が実行される。
If the software
面切替制御部114は、面管理テーブル113を参照して利用面に対応するエントリを検索し、検索されたエントリの不揮発性メモリ格納領域1132から利用面のアドレスを取得する。面切替制御部114は、取得されたアドレスに基づいて不揮発性メモリ106にアクセスし、利用面の保護ビット1063に「1」を設定する。これによって、利用面に格納された情報を障害ログとして保存することができる。また、ステップS5004及びステップS5005の処理後は、通信装置10の通常運用に移行する。
The surface
また、面切替制御部114は、アクセスした利用面のタイムスタンプ1065に所定のタイムスタンプを設定する。タイムスタンプ1065に設定される時刻は、利用面の保護ビット1063を有効化された時刻、及びソフトウェア正常起動確認処理を開始した時刻等が考えられる。なお、本実施例はタイムスタンプ1065に格納する時刻に限定されない。以上がステップS5004及びステップS5005の処理の説明である。
Further, the surface switching
ソフトウェア起動確認フラグ1105が無効化されている場合(ステップS5003がNO)、面切替制御部114は、ソフトウェア起動確認フラグ1105の監視を開始してから一定時間経過したか否かを判定する(ステップS5008)。
When the software
ソフトウェア起動確認フラグ1105の監視を開始してから一定時間経過していない場合(ステップS5008がNO)、面切替制御部114は、ステップS5003に戻り、同様の処理を実行する。
If the predetermined time has not elapsed since the monitoring of the software
ソフトウェア起動確認フラグ1105の監視を開始してから一定時間経過した場合(ステップS5008がYES)、面切替制御部114は、障害発生として障害再起動処理を開始する。
If a certain time has elapsed since the monitoring of the software
ステップS5005の処理後、通信装置10は通常運用の状態に移行する。通常運用の状態では、面切替制御部114は、CPU1041によって発行された再起動コマンドを検知したか否かを判定する(ステップS5006)。
After the process of step S5005, the
CPU1041によって発行された再起動コマンドを検知していない場合(ステップS5006がNO)、面切替制御部114は、障害の発生が検知されたか否かを判定する(ステップS5007)。障害発生の検知方法としては、例えば、OSがソフトウェア障害又はハードウェア障害を検知する方法や、再起動処理の失敗を検知する方法などが考えられる。
When the restart command issued by the
障害の発生が検知されていない場合(ステップS5007がNO)、面切替制御部114は、ステップS5006に戻り同様の処理を実行する。一方、障害の発生が検知された場合(ステップS5007がYES)、面切替制御部114は、障害再起動処理を開始する。
When the occurrence of a failure is not detected (NO in step S5007), the surface switching
ステップS5006において、CPU1041によって発行された再起動コマンドを検知した場合(ステップS5006がYES)、面切替制御部114は、利用面の保護ビット1063を無効化し(ステップS5009)、通常の再起動処理を開始する。
In step S5006, when a restart command issued by the
具体的には、面切替制御部114は、面管理テーブル113を参照して面ID1131の値が変数WPの値と一致するエントリを検索し、検索されたエントリの不揮発性メモリ格納領域1132から利用面のアドレスを取得する。面切替制御部114は、取得されたアドレスに基づいて、不揮発性メモリ106の利用面にアクセスし、保護ビット1063に「0」を設定する。
Specifically, the surface switching
図12Aを用いて説明したように、障害再起動処理の場合、利用面の保護ビット1063は無効化されないため、利用面に格納される情報は初期化されず、障害ログとして保存される。 As described with reference to FIG. 12A, in the case of failure restart processing, since the usage protection bit 1063 is not invalidated, the information stored in the usage is not initialized but is saved as a failure log.
次に、図12Bを用いてCPU1041が実行する処理について説明する。
Next, processing executed by the
CPU1041は、面切替制御部114から発行されたCPUリセット命令の発行が停止されることによって、CPUリセットが解除されると(ステップS5101)、面切替制御部114から通知された不揮発性メモリ106のメモリ領域(利用面)をメモリ空間にアサインし(ステップS5102)、面制御レジスタ110をメモリ空間にアサインする(ステップS5103)。これによって、CPU1041は、不揮発性メモリ106の利用面及び面制御レジスタ110にアクセスできる。
When the CPU reset is released by stopping the issuance of the CPU reset command issued from the surface switching control unit 114 (step S5101), the
CPU1041は、デバイスを初期化し、また、診断する(ステップS5104)。このとき、CPU1041は、不揮発性メモリ106の利用面のメモリ領域のサイズ等を確認し、また、不揮発性メモリ106(利用面)を診断する。CPU1041は、Flashメモリ101からOSを実現するプログラムを読み出し、揮発性メモリ105にロードすることによって、OSを起動させる(ステップS5105)。これによって、通信装置10のソフトウェアが正常に起動する。CPU1041は、OSの起動後、面制御レジスタ110のソフトウェア起動確認フラグ1105を有効化する(ステップS5106)。
The
具体的には、CPU1041は、メモリ空間にアサインされた面制御レジスタ110にアクセスし、面制御レジスタ110のソフトウェア起動確認フラグ1105に「1」を設定する。ステップS5106の処理後は、通信装置10の通常運用に移行する。
Specifically, the
CPU1041は、再起動オペレーションを受け付けたか否かを判定する(ステップS5107)。例えば、管理者からの指示に起因する再起動オペレーション又は通信装置10の保守若しくはアップデートに起因する再起動オペレーションが考えられる。
The
再起動オペレーションを受け付けていない場合(ステップS5107がNO)、CPU1041は、ステップS5107に戻り同様の処理を実行する。
If the restart operation has not been received (NO in step S5107), the
再起動オペレーションを受け付けた場合(ステップS5107がYES)、CPU1041は、再起動コマンドを発行し(ステップS5108)、OS等のソフトウェアの起動処理が終了した後、ソフトウェア起動確認フラグ1105を無効化する(ステップS5109)。その後、通常の再起動処理が開始される。
When a restart operation is accepted (YES in step S5107), the
なお、初期設定処理から、利用面決定処理のステップS2014において不揮発性メモリ106のライトポイント格納エリア1061の値が更新されるまでの間に、ハードウェア障害が発生した場合、又は不揮発性メモリ整合性確認処理の完了後にCPU1041によるステップS5104の診断結果が不正となった場合、障害再起動処理が繰り返し実行される。この場合、CPU1041等が、リブートカウンタ等を用いてリブート回数をカウントして通信装置10を停止させる方法が考えられる。
It should be noted that if a hardware failure occurs between the initial setting process and the value of the write
ここで、通信装置10の通常運用時の動作について説明する。
Here, the operation of the
中央演算処理部104は、入出力装置103より受け付けた管理者のオペレーションにしたがって、コンフィグ情報及び装置設定情報などの静的データ102を揮発性メモリ105に格納する。また、中央演算処理部104は、管理者からの保存オペレーションにしたがって、揮発性メモリ105から静的データ102の情報をFlashメモリ101にコピーする。
The
中央演算処理部104は、通信装置10と隣接するネットワーク、すなわち、各ネットワークインタフェース205に接続される全てのネットワーク206のネットワークトポロジを把握するために、RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)、及びGRP(Gateway Routing Protocol)等のルーティングプロトコルにしたがって繰り返し、例えば周期的に経路情報を収集する。
The
中央演算処理部104は、収集した周辺の経路情報を用いた経路計算の結果に基づいて、パケットを転送するために必要な経路の追加、削除、変更等を求める。中央演算処理部104は、面制御デバイス109を経由して、経路情報における更新単位で動的データ107の情報を不揮発性メモリ106に書き込む。中央演算処理部104は、経路情報の更新を契機に、不揮発性メモリ106に格納された動的データ107の格納番地を転送デバイス108に通知する。
The
転送デバイス108は、通知された不揮発性メモリ106の格納番地にアクセスして更新された動的データ107を読み出し、転送部200に含まれる転送デバイス201に更新された動的データ107を転送する。
The
転送デバイス201は、転送デバイス108から更新された動的データ107を受信し、テーブルメモリ203へ更新された動的データ107を転送することによって経路情報を更新する。
The
転送エンジン204が各ネットワーク206に接続するネットワークインタフェース205を介してパケットを受信した場合、経路検索エンジン202は、テーブルメモリ203を参照して、受信した動的データ107が反映された経路情報に基づいてパケットの宛先を特定する。さらに、転送エンジン204は、経路検索エンジン202が特定した宛先の結果に基づいて、ネットワークインタフェース205を介してネットワーク206にパケットを転送する。
When the
受信したパケットの転送先が不明な場合、又は、受信したパケットが通信装置10宛のパケットの場合、受信したパケットは転送デバイス201及び転送デバイス108を経由して中央演算処理部104に送信され、中央演算処理部104によって所定の処理が実行される。
When the transfer destination of the received packet is unknown, or when the received packet is a packet addressed to the
ここで、図13A、図13B、図13C及び図13Dを用いて、本実施例の面の設定方法及び更新方法について説明する。 Here, the surface setting method and the updating method of the present embodiment will be described with reference to FIGS. 13A, 13B, 13C, and 13D.
図13A、図13B、図13C及び図13Dは、実施例の通信装置10の不揮発性メモリ106内の面の設定方法及び更新方法の一例を示す説明図である。
13A, 13B, 13C, and 13D are explanatory diagrams illustrating an example of a method for setting and updating a surface in the
なお、図13A、図13B、図13C及び図13Dでは、不揮発性メモリ106の実利用メモリ領域1067に3つの面が生成されるものとする。また、下の面の面ID1131は「1」、真ん中の面の面ID1131は「2」、上の面の面ID1131は「3」であるものとする。また、3つの面の故障フラグ1134の値は「0」であるものとする。また、タイムスタンプの時系列は「A:A:A」、「B:B:B」、「C:C:C」及び「D:D:D」の順に古いものとする。
13A, 13B, 13C, and 13D, it is assumed that three surfaces are generated in the actual
図13Aについて説明する。通信装置10の通常の起動処理が開始した場合、面切替制御部114は、実利用メモリ領域1067を初期化し、また、不揮発性メモリ初期化パスフラグ1066を無効化し、ライトポイント格納エリア1061に初期値を設定する(ステップS1005)。面切替制御部114は、最大面数を「3」と算出し(ステップS1007)、実利用メモリ領域1067を3つに分割する(ステップS1008)。このとき、面の状態は状態1のようになる。
FIG. 13A will be described. When the normal activation process of the
面切替制御部114は、面制御レジスタ110のマジックナンバ1104の値を読み出し(ステップS1009)、不揮発性メモリ106の各面のマジックナンバ1064に読み出された値を設定する(ステップS1010)。これによって、面の状態は状態1から状態2に遷移する。
The surface
面切替制御部114は、ライトポイント格納エリア1061に格納される値「1」を変数WPとして保持する(ステップS2001)。また、面切替制御部114は、下の面の保護ビット1063Aが有効化されているか否かを判定する(ステップS2004)。
The surface
面切替制御部114は、下の面の保護ビット1063Aは無効化されていると判定し(ステップS2004がNO)、下の面について不揮発性メモリ整合性確認処理を実行する(ステップS400)。下の面の故障フラグ1134は無効化されているため、面切替制御部114は、正常完了であると判定する(ステップS2005がYES)。
The surface
面切替制御部114は、下の面を利用面として決定して、当該利用面を初期化する(ステップS2008)。面切替制御部114は、ライトポイント格納エリア1061に「2」を書き込む(ステップS2009)。また、ソフトウェア正常起動確認処理において、面切替制御部114は、下の面の保護ビット1063Aを有効化し(ステップS5004)、タイムスタンプ1065Aを更新する(ステップS5005)。
The surface
CPU1041は、下の面をメモリ空間にアサインし(ステップS5102)、下の面に動的データ107を格納する。以上の処理によって、面の状態は状態2から状態3に遷移する。
The
このようにして、面制御デバイス109は、不揮発性メモリ106の一部のメモリ領域(面)をCPU1041が利用するメモリ領域として提供することができる。
In this way, the
次に、図13Bについて説明する。図13Bの下の面のデータエリア1062Aにはデータが格納され、かつ、保護ビット1063Aは「0」であり、また、真ん中の面のデータエリア1062Bにはデータが格納され、かつ、保護ビット1063Bが「1」である。そのため、通常の起動処理の実行後に、通常の再起動処理が1回行われ、現在真ん中の面が利用面であることを示す。このとき、ライトポイント格納エリア1061には「3」が格納される。
Next, FIG. 13B will be described. Data is stored in the
真ん中の面を利用しているときに通常の再起動処理が開始される場合、面切替制御部114は、真ん中の面の保護ビット1063Bを「1」から「0」に変更し(ステップS5009)、さらに、ライトポイント格納エリア1061に格納される「3」を変数WPとして保持する(ステップS2001)。面切替制御部114は、上の面の保護ビット1063Cが有効化されているかを判定する(ステップS2004)。
When the normal restart process is started when using the middle surface, the surface switching
面切替制御部114は、上の面の保護ビット1063Cは無効化されていると判定し(ステップS2004がNO)、上の面について不揮発性メモリ整合性確認処理を実行する(ステップS400)。上の面の故障フラグ1134は無効化されているため、面切替制御部114は、正常完了であると判定する(ステップS2005がYES)。
The surface
したがって、面切替制御部114は、上の面を利用面として決定して、当該利用面を初期化する(ステップS2008)。面切替制御部114は、ライトポイント格納エリア1061に「1」を書き込む(ステップS2009)。また、ソフトウェア正常起動確認処理において、面切替制御部114は、上の面の保護ビット1063Cを有効化し(ステップS5004)、タイムスタンプ1065Cを更新する(ステップS5005)。
Therefore, the surface switching
CPU1041は、上の面をメモリ空間にアサインし(ステップS5102)、上の面に動的データ107を格納する。以上の処理によって、面の状態は状態1から状態2に遷移する。
The
その後、再び通常の再起動処理が開始される場合、面切替制御部114は、上の面の保護ビット1063Cを無効化し(ステップS5009)、前述した処理と同様の処理を実行する。これによって、下の面が初期化され(ステップS2008)、ライトポイント格納エリア1061に「2」が格納される(ステップS2009)。また、ソフトウェア正常起動確認処理において、面切替制御部114は、下の面の保護ビット1063Aを有効化し(ステップS5004)、タイムスタンプ1065Aを更新する(ステップS5005)。また、CPU1041は、下の面をメモリ空間にアサインし(ステップS5102)、下の面に動的データ107を格納する。以上の処理によって、面の状態は状態2から状態3に遷移する。
Thereafter, when normal restart processing is started again, the surface switching
このようにして、本実施例では不揮発性メモリ106の面にリングバッファ形式で情報が上書きされる。また、再起動処理に伴って、利用面が切り替えられる。
In this manner, in this embodiment, information is overwritten in the ring buffer format on the surface of the
次に、図13Cについて説明する。図13Cの下の面及び真ん中の面のデータエリア1062A、Bにはデータが格納され、かつ、保護ビット1063A、Bは「1」である。そのため、障害再起動処理が1回行われ、現在真ん中の面が利用面であることを示す。このとき、ライトポイント格納エリア1061には「3」が格納される。
Next, FIG. 13C will be described. Data is stored in the
真ん中の面を利用しているときに通常の再起動処理が開始される場合、面切替制御部114は、図13Bと同様の処理を実行することによって、真ん中の面の保護ビット1063Bを無効化する(ステップS5009)。また、面切替制御部114は、上の面を初期化し(ステップS2008)、ライトポイント格納エリア1061に「1」を格納する(ステップS2009)。また、ソフトウェア正常起動確認処理において、面切替制御部114は、上の面の保護ビット1063Cを有効化し(ステップS5004)、タイムスタンプ1065Cを更新する(ステップS5005)。また、CPU1041は、上の面をメモリ空間にアサインし(ステップS5102)、上の面に動的データ107を格納する。以上の処理によって、面の状態は状態1から状態2に遷移する。
When the normal restart process is started when the middle plane is used, the plane switching
その後、再び通常の再起動処理が開始される場合、面切替制御部114は、上の面の保護ビット1063Cを無効化する(ステップS5009)。面切替制御部114は、下の面の保護ビット1063Aの値を読み出し(ステップS2003)、下の面の保護ビット1063Aが有効化されていると判定する(ステップS2004がYES)。そこで、面切替制御部114は、利用可能な全ての面として真ん中の面及び上の面の保護ビット1063B、Cの値を読み出す(ステップS2006)。
Thereafter, when normal restart processing is started again, the surface switching
少なくとも一つの利用可能な面の保護ビット1063が無効化されているため(ステップS2007がNO)、面切替制御部114は、変数WPの値を「2」に更新する(ステップS2011)。真ん中の面の保護ビット1063Bが無効化されているため(ステップS2004がNO)、面切替制御部114は、真ん中の面について不揮発性メモリ整合性確認処理を実行する(ステップS400)。真ん中の面の故障フラグ1134は無効化されており、面切替制御部114は、マジックナンバの整合性を確認し、正常完了と判定する(ステップS2005がYES)。
Since at least one usable surface protection bit 1063 is invalidated (NO in step S2007), the surface switching
面切替制御部114は、真ん中の面を利用面として決定して、当該利用面を初期化する(ステップS2008)。面切替制御部114は、ライトポイント格納エリア1061に「3」を書き込む(ステップS2009)。また、ソフトウェア正常起動確認処理において、面切替制御部114は、真ん中の面の保護ビット1063Bを有効化し(ステップS5004)、タイムスタンプ1065Bを更新する(ステップS5005)。また、CPU1041は、真ん中の面をメモリ空間にアサインし(ステップS5104)、真ん中の面に動的データ107を格納する。以上の処理によって、面の状態は状態2から状態3に遷移する。
The surface
このように、本実施例では、不揮発性メモリ106の面にリングバッファ形式で情報を上書きする場合、障害ログとして保存する面については情報が上書きされないように制御される。
As described above, in this embodiment, when information is overwritten in the ring buffer format on the surface of the
次に、図13Dについて説明する。図13Dの下の面及び真ん中の面のデータエリア1062A、Bにはデータが格納され、かつ、保護ビット1063A、Bは「1」である。そのため、障害再起動処理が1回行われ、現在真ん中の面が利用面であることを示す。このとき、ライトポイント格納エリア1061には「3」が格納される。
Next, FIG. 13D will be described. Data is stored in the
真ん中の面を利用しているときに障害発生に起因する再起動が発生した場合、面切替制御部114は、図13Bと同様の処理を実行することによって、上の面を初期化し(ステップS2008)、ライトポイント格納エリア1061に「1」を格納する(ステップS2009)。また、ソフトウェア正常起動確認処理において、面切替制御部114は、上の面の保護ビット1063Cを有効化する(ステップS5004)。また、面切替制御部114は、タイムスタンプ1065Cを更新する(ステップS5005)。このとき、真ん中の面の保護ビット1063Bは無効化されない。
If a restart due to the occurrence of a failure occurs while using the middle surface, the surface switching
また、CPU1041は、上の面をメモリ空間にアサインし(ステップS5104)、上の面に動的データ107を格納する。以上の処理によって、面の状態は状態1から状態2に遷移する。
The
その後、再び障害再起動処理が開始される場合、面切替制御部114は、下の面の保護ビット1063Aの値を読み出し(ステップS2003)、下の面の保護ビット1063Aが有効化されていると判定する(ステップS2004がYES)。このとき、上の面の保護ビット1063Cは無効化されない。
Thereafter, when the failure restart process is started again, the surface switching
面切替制御部114は、利用可能な全ての面として真ん中の面及び上の面の保護ビット1063B、Cの値を読み出す(ステップS2006)。面切替制御部114は、利用可能な全ての面に保護ビット1063B、Cが有効化されていると判定し(ステップS2007がYES)、ログ更新面選択処理を実行する(ステップS300)。
The surface
面切替制御部114は、ログ更新面選択処理において、最も古い障害ログを格納する面として下の面を特定し(ステップS3003)、下の面を除く、上の面及び真ん中の面を利用可能な面として抽出する(ステップS3005)。面切替制御部114は、1番目にタイムスタンプが古い面、すなわち、真ん中の面を選択し(ステップS3006)、真ん中の面について不揮発性メモリ整合性確認処理を実行する(ステップS400)。真ん中の面の故障フラグ1134は無効化されており、面切替制御部114は、マジックナンバの整合性を確認し、正常完了と判定する(ステップS3007がYES)。
In the log update surface selection process, the surface switching
面切替制御部114は、真ん中の面の保護ビット1063Bを無効化し(ステップS3008)、変数WPの値として「2」を設定する(ステップS3009)。面切替制御部114は、真ん中の面を利用面として決定して、当該利用面を初期化する(ステップS2008)。面切替制御部114は、ライトポイント格納エリア1061に「3」を書き込む(ステップS2009)。また、ソフトウェア正常起動確認処理において、面切替制御部114は、真ん中の面の保護ビット1063Bを有効化する(ステップS5004)。また、面切替制御部114は、タイムスタンプ1065Bを更新する(ステップS5005)。
The surface
また、CPU1041は、真ん中の面をメモリ空間にアサインし(ステップS5104)、真ん中の面に動的データ107を格納する。以上の処理によって、面の状態が状態2から状態3に遷移する。
Further, the
このように、本実施例では不揮発性メモリ106の全ての面の保護ビット1063が有効化されている場合、所定の制御ポリシに基づいて、障害ログとして保存する面が決定され、また、利用面が決定される。本実施例では、通信装置10が起動を開始してから最初に発生した障害に関する障害ログ(最も古い障害ログ)、及び最新の障害ログが不揮発性メモリ106に保存されるように制御される。
As described above, in this embodiment, when the protection bits 1063 of all the surfaces of the
次に、障害ログの取得処理について説明する。 Next, failure log acquisition processing will be described.
図14は、実施例の通信装置10が実行する障害ログの取得処理の一例を説明するフローチャートである。
FIG. 14 is a flowchart illustrating an example of a failure log acquisition process executed by the
障害ログは通信装置10に障害が発生した後に取得されるものであり、障害ログの取得方法には以下のようなものがある。一つの方法は、通信装置10の再起動処理によってソフトウェアの起動が完了し、通信装置10が通常運用に移行した後に、管理者等がコマンドを入力することによって障害ログを取得する方法である。もう一つの方法は、通信装置10の再起動処理でもソフトウェアの起動ができない場合、ソフトウェア起動を中断して、通信装置10を停止し、通信装置10から障害ログが格納された不揮発性メモリ106を回収する方法である。
The failure log is acquired after a failure has occurred in the
通信装置10に障害が発生した後に、以下で説明する処理が実行される。
After a failure has occurred in the
CPU1041は、ステップS5105におけるOSの起動処理(再起動処理)と平行して以下で説明する処理を開始する(ステップS6001)。まず、CPU1041は、ソフトウェア起動確認フラグ1105が有効化されているか否かを判定する(ステップS6002)。
The
具体的には、CPU1041は、制御バス112を介して面切替制御部114に面制御レジスタ110のソフトウェア起動確認フラグ1105の値の読み出しを指示することによって、ソフトウェア起動確認フラグ1105の値を取得する。CPU1041は、ソフトウェア起動確認フラグ1105の値が「1」であるか否かを判定する。ソフトウェア起動確認フラグ1105の値が「1」の場合、ソフトウェア起動確認フラグ1105が有効化されていると判定する。
Specifically, the
ソフトウェア起動確認フラグ1105が有効化されている場合(ステップS6002がYES)、CPU1041は、管理者によって入出力装置103を介して入力された障害ログの取得コマンドを受け付け(ステップS6003)、障害ログを取得する面の面選択フラグ1106を有効化する(ステップS6004)。取得コマンドは様々な形式が考えられる。例えば、障害ログを取得する面の識別番号を含むコマンド、現在の利用面以外の面の中から保護ビット1063が有効化されている面を指定するコマンド等が考えられる。
When the software
具体的には、CPU1041は、入力された取得コマンドに基づいて障害ログを取得する面を特定する。CPU1041は、面制御レジスタ110にアクセスし、特定された面に対応する面選択フラグ1106に「1」を設定する。なお、CPU1041は、面に格納される障害ログを参照するために、制御バス112経由で面選択フラグ1106を操作する。
Specifically, the
なお、受け付けたコマンドが現在の利用面以外の面のうち保護ビット1063が有効化されている面を指定するコマンドの場合、CPU1041は、面制御デバイス109に当該条件を満たす面の検索処理を依頼する。これによって、CPU1041は、障害ログを取得する面を特定できる。
If the received command is a command for designating a surface for which the protection bit 1063 is valid among the surfaces other than the current usage surface, the
なお、CPU1041は、制御バス112を介して、不揮発性メモリ106から障害ログを取得する。そのため、利用面に格納されるデータが利用されていないときに、不揮発性メモリ106の所定の面から障害ログを読み出す必要がある。
Note that the
面切替制御部114は、面選択フラグ1106の状態を監視し、CPU1041によって面選択フラグ1106が操作されたことを検知した場合、面管理テーブル113を参照して、操作された面選択フラグ1106に対応する面のアドレスを取得する(ステップS6005)。面切替制御部114は、取得されたアドレスに基づいて、障害ログを取得する面へのアクセス設定を行う(ステップS6006)。
The surface
具体的には、面切替制御部114は、面ID1131が面選択フラグ1106に示す面の識別番号と一致するエントリを検索し、検索されたエントリの不揮発性メモリ格納領域1132から障害ログを取得する面のアドレスを取得する。また、面切替制御部114は、アドレスに対応するメモリ領域(面)をCPU1041のメモリ領域にアサインすることによって障害ログを取得する面へのアクセス設定を行う。このとき、面切替制御部114は、当該面からのデータの読み出しのみを許可するように設定してもよい。これによって、CPU1041は、制御バス112を介してアサインされた面から障害ログを取得できる。
Specifically, the surface switching
面切替制御部114は、メモリバス111及び制御バス112のそれぞれを介した、不揮発性メモリ106に対するアクセスの調停処理を実行する(ステップS6007)。当該調停処理では、面切替制御部114は、メモリバス111を介した不揮発性メモリ106へのアクセス中に、制御バス112を介した不揮発性メモリ106へのアクセス、すなわち、障害ログの取得が行われないように制御する。
The surface
CPU1041は、管理者から保守用Flashメモリ118への障害ログのコピーを指示するコマンドを受け付けた場合、障害ログを保守用Flashメモリ118にコピーする(ステップS6008)。
When the
具体的には、CPU1041は、制御バス112を介して面から読み出された障害ログを保守用Flashメモリ118に格納する。
Specifically, the
面切替制御部114は、障害ログが取得された面に対応する面選択フラグ1106を無効化し(ステップS6009)、また、当該面の保護ビット1063を無効化する(ステップS6010)。その後、通信装置10は障害ログの取得処理を終了する。
The surface
具体的には、面切替制御部114は、面制御レジスタ110を参照して、障害ログが取得された面の面選択フラグ1106に「0」を設定し、また、不揮発性メモリ106の当該面の保護ビット1063に「0」を設定する。
Specifically, the surface switching
ステップS6002において、ソフトウェア起動確認フラグ1105が無効化されている場合(ステップS6002がNO)、CPU1041は、再起動の回数が所定の閾値以上であるか否かを判定する(ステップS6011)。例えば、リブートカウンタを用いる方法が考えられる。
In step S6002, when the software
再起動の回数が所定の閾値より小さい場合(ステップS6011がNO)、通信装置10は、ステップS6001に戻り同様の処理を実行する。
When the number of restarts is smaller than the predetermined threshold (NO in step S6011), the
再起動の回数が所定の閾値以上の場合(ステップS6011がYES)、CPU1041は、入出力装置103を介して管理者に再起動ができない旨を通知する(ステップS6012)。その後、CPU1041は、通信装置10を停止させる。このとき、管理者は、通信装置10からの通知を受信した場合、通信装置10の停止を確認し、通信装置10から不揮発性メモリ106を取り外す。
If the number of restarts is equal to or greater than the predetermined threshold (YES in step S6011), the
前述したように、面切替制御部114が実行する調停処理等によって、管理者は障害ログを取得するタイミングを意識することなく、不揮発性メモリ106から障害ログを読み出すことができる。また、ステップS2010において、現在の利用面に対する面選択フラグ1106の操作は禁止されているため、障害ログの取得処理においてCPU1041が誤って現在の利用面から障害ログを取得することを防止できる。
As described above, the administrator can read out the failure log from the
従来は以下のような問題があった。 Conventionally, there are the following problems.
特許文献1に記載の伝送装置は、ハードウェア障害が発生した場合、適切なログを不揮発性メモリに保存することが困難である。また、特許文献1に記載の伝送装置は、動的データを不揮発性メモリに格納する場合、ループバッファ方式でログを管理する。そのため、不揮発性メモリの容量が不足している場合、ログの取得を開始してから初めて発生した障害の障害情報が新たなデータに上書きされる。したがって、障害解析に必要な情報をログとして残すことができない。特許文献1に記載されているように、一度発生した障害は何度も発生する可能性があるため、初めて発生した障害の障害情報は、障害解析において重要な情報となる。
In the transmission device described in
また、特許文献1に記載の伝送装置は、ソフトウェア障害が発生した場合、一般的な通信装置と同様にダンプ処理が実行される。ダンプ処理が終了した後に伝送装置が再起動するため、早期の復旧が困難である。
Further, in the transmission device described in
また、特許文献1に記載の伝送装置は、不揮発性メモリに格納する情報を抽出するための定義情報を予め設定する必要があるため、管理コストが増大する。さらに、特許文献1に記載の伝送装置は、ログの保存にのみ使用する揮発性メモリ及び不揮発性メモリが必要となるため、装置のコストが増大する。
In addition, since the transmission apparatus described in
図1から図14を用いて説明したように、本実施例によれば、通信装置10は、不揮発性メモリを複数の面に分け、所定の制御ポリシにしたがって障害ログとして残す面の保護ビット1063を有効化することによって、障害解析に必要な障害ログを不揮発性メモリに残すことができる。これによって、1次障害及び2次障害の問題の切り分け等の障害解析に役立てることができる。
As described with reference to FIGS. 1 to 14, according to the present embodiment, the
また、通信装置10の運用中に、本来の処理とは関係のないバックアップ処理が不要であるため通信装置10の処理性能の低下が発生しない。本実施例の通信装置10は再起動時に利用面を切り替えることによって、すなわち、起動時処理同時にログの取得も実現しているため、動的データ107のダンプ処理が不要となる。したがって、通信装置10の早期の復旧が可能となる。
In addition, during the operation of the
また、本実施例の通信装置10は、不揮発性メモリの一つの面に運用中に使用する動的データ107を格納するため、ログ専用の不揮発性メモリを必要としない。したがって、装置のコストを低く抑えることができる。また、情報の抽出処理等が不要なため管理コストを低減できる。
In addition, the
また、面制御デバイスが不揮発性メモリを複数のメモリ領域に分割し、演算部が動的データを格納する領域として分割された一つのメモリ領域を提供する。他の分割されたメモリ領域はログを格納する領域として使用できる。また、分割されたメモリ領域にデータの上書きを抑止する保護ビットを設けることによって、新たなデータが上書きされる場合であっても、ログとして必要となるデータを不揮発性メモリに保存するので、ユーザによる障害解析を容易にする。 Further, the surface control device divides the nonvolatile memory into a plurality of memory areas, and the arithmetic unit provides one memory area divided as an area for storing dynamic data. Other divided memory areas can be used as log storage areas. In addition, by providing a protection bit that suppresses overwriting of data in the divided memory area, even if new data is overwritten, data required as a log is saved in the nonvolatile memory, so that the user can Facilitates failure analysis.
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。 In addition, this invention is not limited to an above-described Example, Various modifications are included. Further, for example, the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those provided with all the described configurations. Further, a part of the configuration of each embodiment can be added to, deleted from, or replaced with another configuration.
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるCPUが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。 Each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. The present invention can also be realized by software program codes that implement the functions of the embodiments. In this case, a storage medium in which the program code is recorded is provided to the computer, and a CPU included in the computer reads the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing it constitute the present invention. As a storage medium for supplying such a program code, for example, a flexible disk, a CD-ROM, a DVD-ROM, a hard disk, an SSD (Solid State Drive), an optical disk, a magneto-optical disk, a CD-R, a magnetic tape, A non-volatile memory card, ROM, or the like is used.
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。 The program code for realizing the functions described in the present embodiment can be implemented by a wide range of programs or script languages such as assembler, C / C ++, perl, Shell, PHP, Java (registered trademark).
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるCPUが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。 Furthermore, by distributing the program code of the software that implements the functions of the embodiments via a network, the program code is stored in a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or CD-R. The CPU included in the computer may read and execute the program code stored in the storage unit or the storage medium.
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。 In the above-described embodiments, the control lines and information lines indicate what is considered necessary for the explanation, and not all control lines and information lines on the product are necessarily shown. All the components may be connected to each other.
10 通信装置
100 制御部
101 Flashメモリ
102 静的データ
103 入出力装置
104 中央演算処理部
105 揮発性メモリ
106 不揮発性メモリ
107 動的データ
108 転送デバイス
109 面制御デバイス
110 面制御レジスタ
111 メモリバス
112 制御バス
113 面管理テーブル
114 面切替制御部
118 保守用Flashメモリ
200 転送部
201 転送デバイス
202 経路検索エンジン
203 テーブルメモリ
204 転送エンジン
205 ネットワークインタフェース
206 ネットワーク
1041 CPU
1042 I/O制御部
1061 ライトポイント格納エリア
1062 データエリア
1063 保護ビット
1064 マジックナンバ
1065 タイムスタンプ
1066 不揮発性メモリ初期化パスフラグ
1067 実利用メモリ領域
1068 制御フラグ格納領域
1101 最大面数
1102 制御フラグ格納領域サイズ
1103 実利用メモリ容量
1104 マジックナンバ
1105 ソフトウェア起動確認フラグ
1106 面選択フラグ
1131 面ID
1132 不揮発性メモリ格納領域
1133 タイムスタンプ
1134 故障フラグ
DESCRIPTION OF
1042 I /
1132 Non-volatile
Claims (9)
前記通信装置は、当該通信装置を制御する制御部及び前記データの転送を制御する転送部を備え、
前記制御部は、処理を実行する演算処理部と、不揮発性メモリと、揮発性メモリと、前記演算処理部がアクセスする前記不揮発性メモリの領域を分割することによって生成されたメモリ領域を制御するメモリ領域制御デバイスと、を含み、
前記転送部は、受信したデータを転送する経路を検索する経路検索エンジンと、前記受信したデータを前記経路検索エンジンの処理結果に基づいて転送する転送エンジンと、前記経路検索エンジンが前記受信したデータを転送する経路を検索するための経路情報を格納するメモリと、ネットワークに接続するインタフェースと、を含み、
前記メモリ領域制御デバイスは、
前記通信装置が起動し、かつ、前記不揮発性メモリが初期化されていない場合、前記不揮発性メモリの領域の一部を、データを格納する領域、前記メモリ領域に対するデータの上書きを抑止する制御を行う保護ビットを格納する領域、前記データに関するタイムスタンプを格納する領域を含む複数のメモリ領域に分割し、
前記複数のメモリ領域の中から前記演算処理部に使用させるメモリ領域である利用メモリ領域を決定し、
前記演算処理部は、前記メモリ領域制御デバイスによって決定された利用メモリ領域に前記通信装置の運用中に動的に更新される動的データを格納することを特徴とする通信装置。 A communication device for transferring data,
The communication device includes a control unit that controls the communication device and a transfer unit that controls transfer of the data,
The control unit controls a memory region generated by dividing a region of the arithmetic processing unit that executes processing, a nonvolatile memory, a volatile memory, and the nonvolatile memory accessed by the arithmetic processing unit. A memory area control device, and
The transfer unit includes a route search engine for searching for a route for transferring received data, a transfer engine for transferring the received data based on a processing result of the route search engine, and the data received by the route search engine. A memory for storing route information for searching for a route for transferring the data, and an interface connected to the network.
The memory area control device is:
When the communication device is activated and the nonvolatile memory is not initialized, a part of the area of the nonvolatile memory is controlled to suppress data overwriting to an area for storing data and the memory area. Divided into a plurality of memory areas including an area for storing protection bits to be performed and an area for storing time stamps related to the data;
Determining a use memory area that is a memory area to be used by the arithmetic processing unit from the plurality of memory areas;
The communication processing apparatus, wherein the arithmetic processing unit stores dynamic data dynamically updated during operation of the communication apparatus in a use memory area determined by the memory area control device.
前記不揮発性メモリは、前記データの書き込みによる性能劣化が発生しない不揮発性メモリであり、
前記メモリ領域制御デバイスは、
前記通信装置が再起動した場合、前記保護ビット及び前記タイムスタンプに基づいて前記複数のメモリ領域の中から新たな利用メモリ領域を決定し、
前記演算処理部が利用するメモリ領域を、現在使用される前記利用メモリ領域から前記新たな利用メモリ領域に切り替えることを特徴とする通信装置。 The communication device according to claim 1,
The non-volatile memory is a non-volatile memory in which performance degradation due to writing of the data does not occur,
The memory area control device is:
When the communication device is restarted, a new use memory area is determined from the plurality of memory areas based on the protection bit and the time stamp,
A communication apparatus that switches a memory area used by the arithmetic processing unit from the currently used memory area to the new used memory area.
前記不揮発性メモリの領域の一部は、前記利用メモリ領域の候補となるメモリ領域の識別情報を格納する第1の格納領域を含み、
前記メモリ領域制御デバイスは、
前記第1の格納領域から前記利用メモリ領域の候補となるメモリ領域の識別情報を取得し、
前記取得されたメモリ領域の識別情報に基づいて、前記不揮発性メモリの前記利用メモリ領域の候補となるメモリ領域から前記保護ビットを取得して、前記保護ビットが有効化されているかを判定し、
前記保護ビットが無効化されている場合、前記利用メモリ領域の候補となるメモリ領域を前記新たな利用メモリ領域として選択して、前記新たな利用メモリ領域として選択されたメモリ領域に隣接するメモリ領域の識別情報を前記第1の格納領域に格納し、
前記保護ビットが有効化されている場合、前記保護ビットが無効化されたメモリ領域が存在するかを判定し、
前記保護ビットが無効化されたメモリ領域が存在すると判定された場合、前記保護ビットが無効化されたメモリ領域の中から前記新たな利用メモリ領域を選択して、前記新たな利用メモリ領域として選択されたメモリ領域に隣接するメモリ領域の識別情報を前記第1の格納領域に格納することを特徴とする通信装置。 The communication device according to claim 2,
A part of the area of the non-volatile memory includes a first storage area that stores identification information of a memory area that is a candidate for the use memory area,
The memory area control device is:
Obtaining identification information of a memory area that is a candidate for the used memory area from the first storage area;
Based on the acquired identification information of the memory area, to obtain the protection bit from a memory area that is a candidate for the use memory area of the nonvolatile memory, to determine whether the protection bit is enabled,
When the protection bit is invalidated, a memory area that is a candidate for the use memory area is selected as the new use memory area, and a memory area adjacent to the memory area selected as the new use memory area Is stored in the first storage area,
If the protection bit is enabled, determine whether there is a memory area where the protection bit is disabled;
When it is determined that there is a memory area in which the protection bit is invalidated, the new usage memory area is selected from the memory areas in which the protection bit is invalidated, and is selected as the new usage memory area. The communication apparatus stores identification information of a memory area adjacent to the memory area in the first storage area.
前記メモリ領域制御デバイスは、
前記通信装置の機能を実現するソフトウェアの起動が完了したかを判定し、
前記ソフトウェアの起動が完了したと判定された場合、前記利用メモリ領域の前記保護ビットを有効化し、
前記通信装置の再起動の開始の契機が、管理者の操作又はメンテナンス計画に基づく再起動である場合、前記現在使用される利用メモリ領域の前記保護ビットを無効化した後に、前記現在使用される利用メモリ領域から前記新たな利用メモリ領域に切り替え、
前記通信装置の再起動の開始の契機が、前記通信装置の障害に起因する再起動である場合、前記現在使用される利用メモリ領域の前記保護ビットを変更することなく、前記現在使用される利用メモリ領域から前記新たな利用メモリ領域に切り替えることを特徴とする通信装置。 The communication device according to claim 3,
The memory area control device is:
Determining whether the activation of the software for realizing the function of the communication device is completed;
If it is determined that the activation of the software is completed, the protection bit of the used memory area is enabled,
When the start of restart of the communication device is a restart based on an operation of an administrator or a maintenance plan, the current use is performed after invalidating the protection bit of the currently used memory area. Switch from the used memory area to the new used memory area,
When the start of restart of the communication device is a restart due to a failure of the communication device, the currently used usage is performed without changing the protection bit of the currently used memory area. A communication apparatus that switches from a memory area to the newly used memory area.
前記演算処理部は、前記不揮発性メモリに保存される障害ログの取得要求を受け付けた場合、前記保護ビットが有効化されたメモリ領域の中から前記障害ログを取得するメモリ領域を選択し、
前記メモリ領域制御デバイスは、前記演算処理部から前記現在使用される利用メモリ領域へのアクセスと、前記演算処理部から前記選択されたメモリ領域へのアクセスとを調停し、
前記演算処理部は、前記選択されたメモリ領域から当該メモリ領域に格納されるデータを前記障害ログとして取得し、
前記メモリ領域制御デバイスは、前記選択されたメモリ領域から前記データが取得された後に、当該メモリ領域の前記保護ビットを無効化することを特徴とする通信装置。 The communication device according to claim 3,
The arithmetic processing unit, when receiving a failure log acquisition request stored in the non-volatile memory, selects a memory region for acquiring the failure log from memory regions in which the protection bit is enabled,
The memory area control device arbitrates access from the arithmetic processing unit to the currently used memory area and access from the arithmetic processing unit to the selected memory area,
The arithmetic processing unit obtains data stored in the memory area from the selected memory area as the failure log,
The communication apparatus, wherein the memory area control device invalidates the protection bit of the memory area after the data is acquired from the selected memory area.
前記通信装置が再起動した場合、前記複数のメモリ領域の各々の前記タイムスタンプを取得し、
前記複数のメモリ領域の各々の前記保護ビットを取得して、前記保護ビットが無効化されたメモリ領域を抽出し、
前記抽出されたメモリ領域の前記タイムスタンプに基づいて、前記抽出されたメモリ領域の中から前記新たな利用メモリ領域を選択することを特徴とする通信装置。 The communication device according to claim 3,
When the communication device is restarted, obtain the time stamp of each of the plurality of memory areas,
Obtaining the protection bit of each of the plurality of memory areas, and extracting the memory area in which the protection bit is invalidated;
The communication apparatus, wherein the new use memory area is selected from the extracted memory areas based on the time stamp of the extracted memory area.
前記メモリ領域制御デバイスは、
前記保護ビットが無効化されたメモリ領域が存在しない場合、前記タイムスタンプが最も古い障害ログを格納する前記メモリ領域を特定し、
前記タイムスタンプが最も古い障害ログを格納するメモリ領域を除く全てのメモリ領域の中から前記タイムスタンプが1番目に古いメモリ領域を前記新たな利用メモリ領域と選択して、前記選択されたメモリ領域の前記保護ビットを無効化することを特徴とする通信装置。 The communication device according to claim 6,
The memory area control device is:
If there is no memory area in which the protection bit is invalidated, the memory area storing the fault log with the oldest time stamp is specified;
The memory area selected by selecting the memory area having the oldest time stamp as the new used memory area from all the memory areas excluding the memory area storing the fault log having the oldest time stamp. The communication device is invalidated.
前記不揮発性メモリの領域の一部は、前記不揮発性メモリが初期化されたことを示す情報を格納する第2の格納領域を含み、
前記メモリ領域制御デバイスは、
前記不揮発性メモリの領域の一部が前記複数のメモリ領域に分割された後、前記第2の格納領域に、前記不揮発性メモリが初期化されたことを示す情報を設定し、
前記通信装置が起動後に、前記第2の格納領域を参照し、
前記第2の格納領域に前記不揮発性メモリが初期化されたことを示す情報が設定されている場合、前記不揮発性メモリが初期化されていると判定することを特徴とする通信装置。 The communication device according to claim 3,
A part of the area of the nonvolatile memory includes a second storage area for storing information indicating that the nonvolatile memory has been initialized,
The memory area control device is:
After a part of the area of the nonvolatile memory is divided into the plurality of memory areas, information indicating that the nonvolatile memory is initialized is set in the second storage area,
After the communication device is activated, refer to the second storage area,
The communication apparatus, wherein information indicating that the nonvolatile memory is initialized is set in the second storage area, and determines that the nonvolatile memory is initialized.
前記メモリ領域制御デバイスは、前記利用メモリ領域の決定後、当該利用メモリ領域における前記データを格納する領域、及び、前記データに関するタイムスタンプを格納する領域を初期化することを特徴とする通信装置。 The communication device according to claim 3,
The said memory area control device initializes the area | region which stores the said data in the said used memory area, and the area which stores the time stamp regarding the said data after the said used memory area is determined.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015028844A JP6316223B2 (en) | 2015-02-17 | 2015-02-17 | Communication device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015028844A JP6316223B2 (en) | 2015-02-17 | 2015-02-17 | Communication device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016151888A true JP2016151888A (en) | 2016-08-22 |
JP6316223B2 JP6316223B2 (en) | 2018-04-25 |
Family
ID=56696577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015028844A Active JP6316223B2 (en) | 2015-02-17 | 2015-02-17 | Communication device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6316223B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003104137A (en) * | 2001-09-27 | 2003-04-09 | Hitachi Ltd | On-vehicle control device |
JP2007206912A (en) * | 2006-02-01 | 2007-08-16 | Alaxala Networks Corp | Effective use method of trace memory |
JP2013003985A (en) * | 2011-06-20 | 2013-01-07 | Fuji Xerox Co Ltd | Information processing apparatus, image forming apparatus, and program |
JP2014127193A (en) * | 2012-12-27 | 2014-07-07 | Fujitsu Ltd | Information processing apparatus and storage information analysis method |
-
2015
- 2015-02-17 JP JP2015028844A patent/JP6316223B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003104137A (en) * | 2001-09-27 | 2003-04-09 | Hitachi Ltd | On-vehicle control device |
JP2007206912A (en) * | 2006-02-01 | 2007-08-16 | Alaxala Networks Corp | Effective use method of trace memory |
JP2013003985A (en) * | 2011-06-20 | 2013-01-07 | Fuji Xerox Co Ltd | Information processing apparatus, image forming apparatus, and program |
JP2014127193A (en) * | 2012-12-27 | 2014-07-07 | Fujitsu Ltd | Information processing apparatus and storage information analysis method |
Also Published As
Publication number | Publication date |
---|---|
JP6316223B2 (en) | 2018-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8990588B2 (en) | Storage system, storage control apparatus, and storage control method | |
US8069191B2 (en) | Method, an apparatus and a system for managing a snapshot storage pool | |
US11099953B2 (en) | Automatic data healing using a storage controller | |
US9946616B2 (en) | Storage apparatus | |
US9977620B2 (en) | Storage device and storage system | |
CN103392166A (en) | Information storage system and storage system management method | |
CN104205059A (en) | Storage system and storage control apparatus | |
US20100191757A1 (en) | Recording medium storing allocation control program, allocation control apparatus, and allocation control method | |
WO2014155653A1 (en) | Data duplication detection system and method for controlling data duplication detection system | |
WO2011036707A1 (en) | Computer system for controlling backups using wide area network | |
CN108475201B (en) | Data acquisition method in virtual machine starting process and cloud computing system | |
EP3198447A1 (en) | Smart flash cache logger | |
JP6544039B2 (en) | Storage control device, storage control program and storage system | |
US11226746B2 (en) | Automatic data healing by I/O | |
US9588855B2 (en) | Management and utilization of fault domains in distributed cache systems | |
JP6316223B2 (en) | Communication device | |
CN111752475B (en) | Method and device for data access management in storage server | |
US20100223442A1 (en) | Computer system and data erasing method | |
US20180295195A1 (en) | Method and apparatus for performing storage space management for multiple virtual machines | |
JP5760585B2 (en) | Storage system and abnormality location determination method | |
US10810163B2 (en) | Storage management computer, storage management method, and recording medium | |
KR102357715B1 (en) | Method to management operating system image for security and internet server using the methods | |
JP6999679B2 (en) | Data erasure method and equipment | |
JP2015215708A (en) | Storage control device, storage control program, and storage control method | |
CN116795494B (en) | Memory protection unit information processing method, system and readable medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170316 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180221 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180306 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180327 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6316223 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |