(57)【要約】【課題】データ転送装置の運用中にデータの経路情報を格納したメモリの診断を行うことができる、データ転送装置におけるメモリの診断方法を提供する。【解決手段】データ転送の開始後の運用中におけるあるデータ転送とそれに続くデータ転送との間の空き時間に、メモリが未使用の状況にあるメモリアドレスにメモリ診断用データを書き込み後読み出し、メモリ診断用データの書き込みデータと読み出しデータとを比較する第１のステップと、書き込みデータと読み出しデータとが一致するときは未使用の状況にあるメモリアドレスを正常と診断し、一致しないときは壊れと診断する第２のステップとを備える。【選択図】  図１
2017054313.tif 000002
【特許請求の範囲】
【請求項１】
データの経路情報を格納するメモリと、前記メモリを管理するメモリ管理部と、入力したデータの宛先を前記メモリ管理部に問合せ、前記メモリに格納された前記経路情報をもとに前記宛先を決定しデータ転送を行うデータ転送処理部とを有するデータ転送装置におけるメモリの診断方法であって、
前記データ転送の開始後の運用中におけるあるデータ転送とそれに続くデータ転送との間の空き時間に、前記メモリが未使用の状況にあるメモリアドレスにメモリ診断用データを書き込み後読み出し、前記メモリ診断用データの書き込みデータと読み出しデータとを比較する第１のステップと、
前記書き込みデータと前記読み出しデータとが一致するときは前記未使用の状況にあるメモリアドレスを正常と診断し、一致しないときは壊れと診断する第２のステップと
を備えたことを特徴とする前記診断方法。
【請求項２】
前記第２のステップにおいて前記書き込みデータと前記読み出しデータとが一致しないとき、少なくとも一回、前記第１のステップおよび第２のステップを繰り返すことを特徴とする請求項１に記載の診断方法。
【請求項３】
新たな経路情報は、前記壊れと診断されたメモリアドレスを避け、前記正常と診断されたメモリアドレスに登録されることを特徴とする請求項１または２に記載の診断方法。
【請求項４】
前記データ転送の開始後の運用中におけるあるデータ転送とそれに続くデータ転送との間の空き時間に、前記使用の状況にあるメモリアドレスに格納されている経路情報が、前記正常と診断された前記未使用の状況にあるメモリアドレスに移動され、前記使用の状況にあるメモリアドレスが未使用に変更されることを特徴とする請求項１〜３のいずれかに記載の診断方法。
【請求項５】
前記未使用に変更されたメモリアドレスは、前記第２のステップで正常と診断されるまで、新たな経路情報の登録または前記メモリ内の経路情報の移動の対象から外されることを特徴とする請求項４に記載の診断方法。
【請求項６】
前記メモリアドレスの使用または未使用の状況、および正常または壊れの診断結果が、メモリ管理テーブルに登録されることを特徴とする請求項１〜５のいずれかに記載の診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置におけるメモリの診断方法に関する
【背景技術】
【０００２】
大規模ネットワークにおけるデータ転送装置では、ネットワークが停止する原因の一つに、データ転送装置の中で使用されているほんの小さい部品にすぎないメモリの不具合によることがある。たった一つのメモリの一部分のビット化けで、大規模装置の運用が止まるおそれがある。そこで、長期使用による劣化などでビット化けなどの問題が生ずる部品を使用しても継続的に装置を止めないで動作するシステムが必要である。
【０００３】
メモリの診断方法に関しては従来から種々の提案がなされている。例えばランダムアクセスメモリ（ＲＡＭ）の診断方法として特許文献１が挙げられる。この技術は、ＲＡＭの全領域にデータパターンを書き込み、データパターンをＲＡＭの全領域から読み出してエラーを検出するものである。また、メモリの１ビットエラーの訂正には、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ）メモリの技術がよく知られている。
【０００４】
そして従来、データ転送装置においては、データ転送を開始前の装置初期化処理時にメモリの診断を行い、データ転送を開始後の運用中は、ＥＣＣメモリの技術等で１ビットエラーのメモリ壊れに対応していた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】ＷＯ２００７／０９７００１Ａ１
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のように、従来のメモリ診断は、メモリ全面に対する読み書きテストであり、運用中のメモリ診断はできなかった。このため、メモリの経年劣化などによる複数ビットエラーが発生した場合、メモリ壊れを回復できない。例えばルータ等のデータ転送装置において、データの経路情報をまだ登録していないメモリの未使用領域でメモリ壊れが発生している場合に、壊れた領域に経路情報を登録すると、正しい経路情報が登録されず、誤った宛先にデータを転送するなどの問題が発生する可能性があった。
【０００７】
本発明の目的は、データ転送装置の運用中にデータの経路情報を格納したメモリの診断を行うことができる、データ転送装置におけるメモリの診断方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、上記目的を達成するため以下のようなデータ転送装置におけるメモリの診断方法を提供する。
（１）データの経路情報を格納するメモリと、前記メモリを管理するメモリ管理部と、入力したデータの宛先を前記メモリ管理部に問合せ、前記メモリに格納された前記経路情報をもとに前記宛先を決定しデータ転送を行うデータ転送処理部とを有するデータ転送装置におけるメモリの診断方法であって、
前記データ転送の開始後の運用中におけるあるデータ転送とそれに続くデータ転送との間の空き時間に、前記メモリが未使用の状況にあるメモリアドレスにメモリ診断用データを書き込み後読み出し、前記メモリ診断用データの書き込みデータと読み出しデータとを比較する第１のステップと、
前記書き込みデータと前記読み出しデータとが一致するときは前記未使用の状況にあるメモリアドレスを正常と診断し、一致しないときは壊れと診断する第２のステップと
を備えたことを特徴とする前記診断方法。
（２）前記第２のステップにおいて前記書き込みデータと前記読み出しデータとが一致しないとき、少なくとも一回、前記第１のステップおよび第２のステップを繰り返すことを特徴とする上記（１）に記載の診断方法。
（３）新たな経路情報は、前記壊れと診断されたメモリアドレスを避け、前記正常と診断されたメモリアドレスに登録されることを特徴とする上記（１）または（２）に記載の診断方法。
（４）前記データ転送の開始後の運用中におけるあるデータ転送とそれに続くデータ転送との間の空き時間に、前記使用の状況にあるメモリアドレスに格納されている経路情報が、前記正常と診断された前記未使用の状況にあるメモリアドレスに移動され、前記使用の状況にあるメモリアドレスが未使用に変更されることを特徴とする上記（１）〜（３）のいずれかに記載の診断方法。
（５）前記未使用に変更されたメモリアドレスは、前記第２のステップで正常と診断されるまで、新たな経路情報の登録または前記メモリ内の経路情報の移動の対象から外されることを特徴とする上記（４）に記載の診断方法。
（６）前記メモリアドレスの使用または未使用の状況、および正常または壊れの診断結果が、メモリ管理テーブルに登録されることを特徴とする上記（１）〜（５）のいずれかに記載の診断方法。
【発明の効果】
【０００９】
本発明によれば、データ転送装置の運用中にデータの経路情報を格納したメモリの診断を行うことができる。これにより、データ転送装置の運用中に、メモリの未使用領域で壊れが発生した場合、事前に壊れた領域を認識し、この壊れた領域を避けて使用することにより、メモリを継続的に運用できる。また、メモリ内の有効な経路情報を未使用領域に移動することにより、もともと経路情報を登録していた領域の診断を可能にする。経路情報のメモリ内の移動をデータ転送とデータ転送の空き時間に繰り返し行うことにより、データ転送装置の運用中に、メモリ領域の全てを診断可能になる。さらに、運用中の周期的なデータ転送とデータ転送の空き時間にメモリ診断を行うことにより、運用中のメモリ診断の装置負荷を最小限に抑えることができ、メモリの経年劣化によるデータ転送装置の停止を最小限にできる。
【図面の簡単な説明】
【００１０】
【図１】本発明に係るデータ転送装置の一構成例を示す図である。
【図２Ａ】メモリ診断の一例を説明するためのフローチャートである。
【図２Ｂ】メモリ診断処理の一例を示すタイムチャートである。
【図３Ａ】診断対象メモリの一例を示す図である。
【図３Ｂ】メモリ管理テーブルの一例を示す図である。
【図４】メモリ診断処理の一例を示すフローチャートである。
【図５】（Ａ）−（Ｃ）はメモリ整理時の診断対象メモリの一例を示す図である。
【図６】（Ａ）−（Ｃ）はメモリ整理時のメモリ管理テーブルの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図面を用いて説明する。
（実施例１）
図１は、本発明に係るデータ転送装置の一構成例を示す図である。図示のように、データ転送装置１００は、データの経路情報を格納するＲＡＭ等の読み書き可能メモリであるメモリ１０５と、メモリ１０５を管理するメモリ管理部１０４と、例えばＩＥＥＥ８０２．３規格等に基づくパケットで入力インタフェース１０１を介して入力したデータの宛先をメモリ管理部１０４に問合せ、メモリ１０５に格納された経路情報をもとにデータの宛先を決定し、出力インタフェース１０３を介してパケットでデータ転送を行うデータ転送処理部１０２とを有する。
【００１２】
従来のメモリ診断では、データ転送を開始する前の初期処理でメモリ診断を行っていた。このため、経年劣化などのビット化けなどによるメモリ壊れが発生した場合、経路情報の格納されているメモリ１０５を読み書きしたときに、初めてその壊れが分かるものであった。
一方、本発明におけるメモリ診断では、周期的にデータ転送処理を行っている運用中にメモリ診断を行う。以下詳述する。
【００１３】
図１において、従来のように、データ転送処理部１０２は、データの宛先を決定するためにメモリ管理部１０４に宛先を問合わせ、メモリ管理部１０４からメモリ１０５に格納されている経路情報を得て宛先を決定し、出力インタフェース１０３よりパケットでデータを送出する。このようなデータ転送の開始後の運用中において、メモリ診断実行判断部１０７は、データ転送処理が少ないなど装置負荷が少ない状況を把握するため、データ転送装置の各部の制御を行う中央処理装置（ＣＰＵ）１１１の使用状況を監視するＣＰＵ使用状況監視部１１０を参照し、ＣＰＵ使用が少ない空き時間があると判断したときに、メモリ診断実行の判断を行う。この判断を受けて、メモリ診断部１０８は、メモリ管理部１０４経由で、データ転送処理部１０２で行われるデータ転送とそれに続くデータ転送との間の空き時間を検出するとともに、後述の図２Ｂに示すように、その空き時間にメモリ管理テーブル１０６を使い、メモリ診断を行う。
【００１４】
メモリ診断は、一時的には、メモリ１０５内の全領域ではなく、経路情報を格納していない未使用の状況にあるメモリアドレスが対象とされる。メモリ管理テーブル１０６には、メモリ１０５のメモリアドレス毎に、メモリアドレスの使用または未使用の状況、およびメモリ診断における正常または壊れの診断結果が登録されている。
【００１５】
ここで、メモリ診断は概略次のように行われる。まず、データ転送の開始後の運用中におけるあるデータ転送とそれに続くデータ転送との間の空き時間に、メモリ１０５が未使用の状況にあるメモリアドレスにメモリ診断用データを書き込み後読み出し、メモリ診断用データの書き込みデータと読み出しデータとを比較する。そして、書き込みデータと読み出しデータとが一致するときは未使用の状況にあるメモリアドレスを正常と診断し、一致しないときは壊れと診断する。
【００１６】
メモリ診断で周期的に未使用領域を診断することにより、経路情報の読み書きする前に、あらかじめ、メモリ壊れを見つける予防保守の効果が得られる。
【００１７】
メモリ診断実行後、メモリ整理部１０９はメモリ管理部１０４経由でメモリ管理テーブル１０６を使い、メモリ１０５の中の使用領域と未使用領域の入れ替えを行い、次のメモリ診断で、使用領域だったところを診断する。これにより、全領域の診断を可能にする効果が得られる。
【００１８】
図２Ａは、メモリ診断の一例を説明するためのフローチャートである。まず、システム起動時、ステップ２０１にて、初期メモリ診断処理を行い、メモリ１０５が正常に書き込みおよび読み出しができるかを確認する。初期メモリ診断実施後、ステップ２０２にて、初期化処理に状態遷移し、システムに必要な各種初期設定を行う。
【００１９】
初期設定完了後、ステップ２０３にて、システムの運用処理に遷移する。システム運用中は、ステップ１０２Ａにて、システム運用に必要なデータ転送処理を周期的に実施する。そしてステップ１０７Ａにて、メモリ診断を実行するかどうかが判断される。繰り返し実行されるデータ転送の周期的処理で、データ転送が少なく、ＣＰＵ使用状況が少ないと判断できる空き時間にメモリ診断が行われる。一方、ＣＰＵ使用状況が大きく空き時間が少ないと判断した場合は、ステップ１０２Ａに戻り、データ転送処理に復帰する。
【００２０】
空き時間の判断には、本実施例では、ＣＰＵ使用状況での判断となっているが、データ転送の単位時間あたりのデータ処理数などで判断しても同様の効果が得られる。
【００２１】
メモリ診断を実行すると判断された場合、ステップ１０８Ａにて、メモリ診断を行う。図２Ｂは、メモリ診断処理の一例を示すタイムチャートである。図示のように、データ転送２１１とそれに続くデータ転送２１２との間の空き時間２１３にメモリ診断処理２１４が行われる。メモリ診断では、メモリ１０５の未使用領域が、正常に書き込みおよび読み出しができるかの診断を行う。続いて、ステップ１０９Ａにて、メモリ整理を行う。メモリ整理では、メモリ診断の結果からメモリ壊れの領域を使用不可に設定する。メモリ整理が完了すると、ステップ１０２Ａに戻り、データ転送処理に復帰する。
【００２２】
図３Ａは、診断対象メモリの一例を示す図である。本メモリはデータ転送装置内のルーティングテーブルとなる。図示のように、メモリには、経路情報として、メモリアドレス毎に、宛先ネットワーク３０１、ネクストホップ３０２、コスト３０３、および出力インタフェース３０４が用意されている。ここで、宛先ネットワーク３０１は、宛先ネットワークアドレスとサブネットマスクの情報を含む。ネクストホップ３０２は、次の中継地点のアドレスを示す。コスト３０３は、宛先までの距離を示す。出力インタフェース３０４は、宛先への出口のポートを示す。本図において、経路情報が記載されているメモリアドレス１，２，４，５は使用の状況にあり、経路情報が空白のメモリアドレス３，６は未使用の状況にある。
【００２３】
図３Ｂは、メモリ管理テーブルの一例を示す図である。メモリ管理テーブルにて管理するデータは、診断対象メモリにおけるメモリアドレス１−６、対象メモリアドレスが使用中であるか否かを示す使用状況３１１、および対象メモリアドレスが正常であるか否かを示す診断結果３１２である。メモリ管理テーブルのメモリアドレス１−６は、診断対象メモリのメモリアドレス１−６と対応している。図示のメモリ管理テーブルでは、メモリアドレス３において診断結果３１２が「壊れ」となっており、その使用状況３１１は「未使用」とされ、以後使用しないことによりデータ消失を未然に防ぐことができる。
【００２４】
図４は、メモリ診断処理の一例を示すフローチャートである。本例では、メモリ診断部１０８で、データ転送の開始後の運用中において、データ転送とそれに続くデータ転送との間の空き時間にメモリ診断の割り込み処理を行う。まず、ステップ４００にて、メモリ管理テーブル１０６のメモリアドレスを参照し、対象メモリアドレスの（１）使用状況および（２）診断結果を取得する。ステップ４０１にて、対象メモリアドレスの使用状況を判定し、「使用」の場合はメモリ診断を終了する。「未使用」の場合、ステップ４０２にて、対象メモリアドレスの診断結果が壊れかどうかの判定を行い、診断結果が「壊れ」の場合はメモリ診断を終了し、「正常」の場合はメモリ診断を実施する。
【００２５】
メモリ診断は、ステップ４０３にて、対象メモリアドレスに対してメモリ診断用データを書き込み後、読み出しを行い、書き込みデータと読み出しデータとの比較を行う。ここで、メモリ診断用データは、特定パターン、例えば数パターンのビットパターンを用いることができる。ステップ４０４にて、書き込みデータと読み出しデータとが一致するかどうかを判定し、一致する場合は、ステップ４０７にて、メモリ管理テーブル１０６の対象メモリアドレスの診断結果を「正常」に設定する。一方、不一致の場合は、ステップ４０３に戻り、再度、対象メモリアドレスに対してメモリ診断用データを書き込み後、読み出しを行う。このステップ４０３，４０４の繰返しは無くてもよいが、少なくとも一回行われるのが好ましい。これを規定回数繰返し、対象メモリアドレスをメモリ診断して、不一致の場合は、ステップ４０６にて、対象メモリアドレスの診断結果を「壊れ」に設定する。そしてステップ４０８にて、対象メモリアドレスの更新を行い、メモリ診断を終了する。
【００２６】
上記フローチャートに示すように、対象メモリアドレスに壊れが見つかった場合、メモリ管理テーブル１０６において、壊れた領域に対応するメモリアドレスに「壊れ」を付加することにより、メモリ壊れした領域を避けて使用できる。これにより、メモリ壊れが一部あっても当該メモリの継続的な運用が可能となる。また、ステップ４０４にて不一致となった対象メモリアドレスに、規定回数、繰り返しメモリ診断を行うことにより、宇宙線等による一時的な複数ビット化けを回復可能とする。
【００２７】
（実施例２）
本実施例では、特定メモリアドレスが使用され続けることにより予防診断できない状態を回避し、メモリ領域の全てを予防診断可能とする。
【００２８】
図５（Ａ）−（Ｃ）は、メモリ整理時の診断対象メモリの一例を示す図、図６（Ａ）−（Ｃ）は、メモリ整理時のメモリ管理テーブルの一例を示す図である。図６（Ａ）の符号５００に示すメモリアドレス６のように、使用状況３１１が「未使用」かつ診断結果３１２が「正常」であるメモリ領域が存在するとき、使用中であるメモリ領域から経路情報を未使用領域へ移動して予防診断を行う。まず、図５（Ａ）、（Ｂ）の符号５０１，５０３に示すように、メモリアドレス２に対して予防診断する為に、メモリアドレス２の経路情報を未使用であるメモリアドレス６へ移動する。図５（Ｃ）は、経路情報の移動後の状態を示す。そして、図６（Ｂ）の符号５０２に示すように、複製先アドレスであるメモリアドレス６を「未使用」から「使用」へ変更する。また、図６（Ｂ）の符号５０４に示すように、複製元メモリアドレス２を「未使用」へ変更し、診断結果を「未実施」に設定する。さらに、図６（Ｃ）の符号５０５に示すように、「未使用」となったメモリアドレス２の領域は、データ転送処理の例えば次の空き時間にメモリ診断処理を実施し、診断結果が正常の場合は、診断結果３１２を「正常」に設定する。
【００２９】
このメモリ整理は、メモリ内で登録している経路情報を移動することにより、もともと経路情報を登録していた領域の診断を可能にする。経路情報の移動をデータ転送とデータ転送の空き時間に繰り返し行うことにより、メモリ領域の全てを繰り返し診断可能とする。
【符号の説明】
【００３０】
１００  データ転送装置
１０１  入力インタフェース
１０２  データ転送処理部
１０３  出力インタフェース
１０４  メモリ管理部
１０５  メモリ
１０６  メモリ管理テーブル
１０７  メモリ診断実行判断部
１０８  メモリ診断部
１０９  メモリ整理部
１１０  ＣＰＵ使用状況監視部
【図１】
2017054313.tif 000003
【図２Ａ】
2017054313.tif 000004
【図２Ｂ】
2017054313.tif 000005
【図３Ａ】
2017054313.tif 000006
【図３Ｂ】
2017054313.tif 000007
【図４】
2017054313.tif 000008
【図５】
2017054313.tif 000009
【図６】
2017054313.tif 000010