(57)【要約】【課題】微細化した半導体プロセスによるメモリでも従来と変わらない時間でエラーを検出及び修復する。【解決手段】ネットワーク通信装置であって、転送先を決定するための転送情報を記憶する転送情報記憶部と、前記転送情報の複製を記憶する転送情報複製記憶部とは、各々が所定数のビットを含む複数のワードによって論理的に構成され、前記転送情報記憶部の各ビットに記憶されるデータと、前記転送情報複製記憶部の対応するデータとを、ワード方向において所定の間隔で比較し、前記転送情報記憶部に記憶されるデータの誤りが検出された場合、誤り検出箇所から前記ワード方向において前記所定間隔の前後の範囲に含まれるワードのデータ、及び、前記誤り検出箇所と前記ビット方向において物理的に近い部分のデータと、前記転送情報複製記憶部の対応するデータとを比較し、前記転送情報複製記憶部の対応するデータを前記誤り検出箇所に書き込む。【選択図】図４
2014014052.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内でパケットを転送するネットワーク通信装置であって、
パケットを送受信する入出力部と、
受信したパケットのヘッダ情報から該パケットの転送先を決定する転送部と、
前記パケットの転送先を決定するための転送情報を記憶する転送情報記憶部と、
前記転送情報の複製を記憶する転送情報複製記憶部と、
前記ネットワーク通信装置の動作を制御する制御部と、を備え、
前記転送情報記憶部及び前記転送情報複製記憶部は、各々が所定数のビットを含む複数のワードによって論理的に構成され、
前記制御部は、
前記転送情報記憶部の各ビットに記憶されるデータと、前記転送情報複製記憶部の対応するデータとを、ワード方向において所定の間隔で比較することによって、前記転送情報記憶部に記憶されるデータの誤りを判定し、
前記転送情報記憶部に記憶されるデータの誤りが検出された場合、誤り検出箇所から前記ワード方向において前記所定間隔の前後の範囲に含まれるワードのデータ、及び、前記誤り検出箇所と前記ビット方向において物理的に近い部分のデータと、前記転送情報複製記憶部の対応するデータとを比較し、
データの誤りが検出された場合、前記転送情報複製記憶部の対応するデータを前記誤り検出箇所に書き込むことによって、前記誤りを修復することを特徴とするネットワーク通信装置。
【請求項２】
請求項１に記載のネットワーク通信装置であって、
前記所定の間隔は、粒子線の衝突によって破壊される記憶素子の範囲によって定まることを特徴とするネットワーク通信装置。
【請求項３】
請求項１に記載のネットワーク通信装置であって、
前記ビット方向に物理的に近い部分は、粒子線の衝突によって破壊される記憶素子の範囲によって定まることを特徴とするネットワーク通信装置。
【請求項４】
請求項１から３のいずれか一つに記載のネットワーク通信装置であって、
前記転送情報記憶部における記憶素子の論理的配置と物理的配置とを対応付けた論物マップを有し、
前記ビット方向に物理的に近い部分は、前記論物マップを参照することによって定められることを特徴とするネットワーク通信装置。
【請求項５】
請求項４に記載のネットワーク通信装置であって、
前記制御部は、
前記転送情報記憶部の記憶領域を、前記誤り検出箇所を含む等しい大きさになるように分割を定め、
前記定められた分割に従って、前記論物マップにマッピング情報を記録することを特徴とするネットワーク通信装置。
【請求項６】
請求項５に記載のネットワーク通信装置であって、
前記制御部は、
前記転送情報記憶部の分割された記憶領域の境界と、前記誤り検出箇所との距離が、各分割された記憶領域において等しくなるように、前記記憶領域の分割を定めることを特徴とするネットワーク通信装置。
【請求項７】
請求項５又は６に記載のネットワーク通信装置であって、
前記制御部は、前記誤りが検出された部分がワード方向に長いものを中心に配置し、前記誤りが検出された部分がワード方向に短いものを端に配置することによって、前記誤りが検出された部分を集約して、前記論物マップにマッピング情報を記録することを特徴とするネットワーク通信装置。
【請求項８】
ネットワーク内でパケットを転送するネットワーク通信装置におけるメモリの修復方法であって、
前記ネットワーク通信装置は、パケットを送受信する入出力部と、受信したパケットのヘッダ情報から該パケットの転送先を決定する転送部と、前記パケットの転送先を決定するための転送情報を記憶する転送情報記憶部と、前記転送情報の複製を記憶する転送情報複製記憶部と、前記ネットワーク通信装置の動作を制御する制御部と、を有し、
前記転送情報記憶部及び前記転送情報複製記憶部は、各々が所定数のビットを含む複数のワードによって論理的に構成され、
前記方法は、
前記制御部が、前記転送情報記憶部の各ビットに記憶されるデータと、前記転送情報複製記憶部の対応するデータとを、ワード方向において所定の間隔で比較することによって、前記転送情報記憶部に記憶されるデータの誤りを判定するステップと、
前記制御部が、前記転送情報記憶部に記憶されるデータの誤りが検出された場合、誤り検出箇所から前記ワード方向において前記所定間隔の前後の範囲に含まれるワードのデータ、及び、前記誤り検出箇所と前記ビット方向において物理的に近い部分のデータと、前記転送情報複製記憶部の対応するデータとを比較するステップと、
データの誤りが検出された場合、前記制御部が、前記転送情報複製記憶部の対応するデータを前記誤り検出箇所に書き込むステップと、を含むことを特徴とするメモリの修復方法。
【請求項９】
請求項８に記載のメモリの修復方法であって、
前記方法は、前記制御部が、前記所定の間隔を、粒子線の衝突によって破壊される記憶素子の範囲によって定めるステップを含むことを特徴とするメモリの修復方法。
【請求項１０】
請求項８に記載のメモリの修復方法であって、
前記方法は、前記制御部が、前記ビット方向に物理的に近い部分を、粒子線の衝突によって破壊される記憶素子の範囲によって定めるステップを含むことを特徴とするメモリの修復方法。
【請求項１１】
請求項８から１０のいずれか一つに記載のメモリの修復方法であって、
前記ネットワーク通信装置は、前記転送情報記憶部における記憶素子の論理的配置と物理的配置とを対応付けた論物マップを有し、
前記方法は、前記制御部が、前記ビット方向に物理的に近い部分を、前記論物マップを参照することによって定めるステップを含むことを特徴とするメモリの修復方法。
【請求項１２】
請求項１１に記載のメモリの修復方法であって、
前記方法は、
前記制御部が、前記転送情報記憶部の記憶領域を、前記誤り検出箇所を含む等しい大きさになるように分割を定めるステップと、
前記制御部が、前記定められた分割に従って、前記論物マップにマッピング情報を記録するステップと、を含むことを特徴とするメモリの修復方法。
【請求項１３】
請求項１２に記載のメモリの修復方法であって、
前記方法は、
前記制御部が、前記転送情報記憶部の分割された記憶領域の境界と、前記誤り検出箇所との距離が、各分割された記憶領域において等しくなるように、前記記憶領域の分割を定めるステップを含むことを特徴とするメモリの修復方法。
【請求項１４】
請求項１２又は１３に記載のメモリの修復方法であって、
前記方法は、前記制御部が、前記誤りが検出された部分がワード方向に長いものを中心に配置し、前記誤りが検出された部分がワード方向に短いものを端に配置することによって、前記誤りが検出された部分を集約して、前記論物マップにマッピング情報を記録するステップを含むことを特徴とするメモリの修復方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータネットワークにおいてパケットを交換するノードに関し、特に、ノードに実装されるメモリのエラー検出技術に関する。
【背景技術】
【０００２】
サーバやクライアント端末等のコンピュータ装置が接続されるネットワークを接続して、サーバ間で送受信されるパケットを目的のサーバに適切に送るためにルータやスイッチが用いられる。
【０００３】
ルータやスイッチは、各サーバが接続されるネットワークをそれぞれ物理的に異なるポートに接続する。ルータやスイッチは、受信したパケットをどのポートに送るかを決定するために経路テーブルを保有している。ルータやスイッチは、あるサーバから送られたパケットを受信すると、受信したパケットのヘッダを解析し、解析した内容を用いて経路テーブルを検索して、パケットの送り先を決定し、決定した送り先のポートにパケットを送出する。
【０００４】
ルータやスイッチは、高速（例えば、１００Ｇｂｐｓなどのワイヤーレート）で経路テーブルを参照する必要があることから、大容量かつ高速にアクセスできるＳＲＡＭに経路テーブルを保持する。
【０００５】
経路テーブルが保持されるＳＲＡＭにおいては、宇宙線（例えば、中性子線）等の放射線の影響によって、記録されているデータにビット反転が生じ、データが変化するソフトエラーが発生する場合がある。このソフトエラーを検出し、データを修正するために、メモリのパリティを使用する技術が提案されている（例えば、特許文献１参照。）。
【０００６】
また、メモリの全領域を、所定の時間毎に、１ワード毎に比較・検査をするビットエラー検出が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第５４９１７０３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、インターネットやＩＰ通信の急速な普及、拡大化に伴い、経路テーブルが大きくなり、経路テーブルを格納するメモリにも大容量化、高集積化が求められている。メモリの大容量化、高集積化は、半導体プロセスの微細化により実現されている。半導体プロセスの微細化によって、中性子線によるソフトエラーの影響範囲の拡大が問題となっている。
【０００９】
このソフトエラーに対し、半導体構造によるメモリセルのエラー耐性の向上や、メモリセル配置の工夫（例えば、ビットインターリーブ）によって、同一ワード内でのマルチビットエラー耐性向上、などの対策が提案されている。さらに、メモリにパリティやＥＣＣなどの冗長ビットを付加して、エラー検出及び修復することによってソフトエラーの影響を最小限に止める努力がされている。
【００１０】
しかし、これらの対策では、何れも大容量化、高集積化に対して十分ではない。このため、検出不可能なソフトエラーが発生し、スイッチやルータの品質に影響を生じる。特に、３値（０、１、Don't Care）を有するＴｅｒｎａｒｙ−ＣＡＭは、メモリセルの配置を工夫する対策によるエラー耐性の向上が困難であり、メモリの大容量化、高集積化によるソフトエラーが問題になっている。
【００１１】
また、メモリの全領域を１ワード毎に比較・検査をするビットエラー検出方法では、メモリの容量の増大に化に比例して、メモリの検査時間が増加し、ソフトエラーの発生からエラー検出（エラー修復）までの時間も増加する。このため、スイッチやルータが転送先を誤る時間が長くなる。
【課題を解決するための手段】
【００１２】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワーク内でパケットを転送するネットワーク通信装置であって、パケットを送受信する入出力部と、受信したパケットの転送先を該パケットのヘッダ情報から決定する転送部と、前記パケットの転送先を決定するための転送情報を記憶する転送情報記憶部と、前記転送情報の複製を記憶する転送情報複製記憶部と、前記ネットワーク通信装置の動作を制御する制御部と、を備え、前記転送情報記憶部及び前記転送情報複製記憶部は、所定数のビットを含むワードによって論理的に構成され、前記制御部は、前記転送情報記憶部の各ビットに記憶されるデータと、前記転送情報複製記憶部の対応するデータとを、ワード方向において所定の間隔で比較することによって、前記転送情報記憶部に記憶されるデータの誤りを判定し、前記転送情報記憶部に記憶されるデータの誤りが検出された場合、誤り検出箇所から前記ワード方向において前記所定間隔の前後の間に含まれるワードのデータ、及び、前記誤り検出箇所と前記ビット方向において物理的に隣接する部分のデータを、前記転送情報複製記憶部の対応するビットに記録されるデータと比較し、前記転送情報複製記憶部の対応するデータを前記誤り検出箇所に書き込むことによって、前記誤りを修復することを特徴とする。
【発明の効果】
【００１３】
本発明の代表的な実施の形態によれば、微細化した半導体プロセスによるメモリでも従来と変わらない時間でエラーを検出及び修復することができる。
【図面の簡単な説明】
【００１４】
【図１Ａ】従来のプロセスルールによって製造されたメモリにおける影響範囲の説明図である。
【図１Ｂ】従来のプロセスルールによって製造されたメモリにおける影響範囲の説明図である。
【図２Ａ】従来より４倍微細なプロセスルールによって製造されたメモリにおける影響範囲の説明図である。
【図２Ｂ】従来より４倍微細なプロセスルールによって製造されたメモリにおける影響範囲の説明図である。
【図３】本実施例のネットワーク通信装置のブロック図である。
【図４】本実施例のエラー検出において、最初のエラーを検出するまでのエラー検出方法の説明図である。
【図５】本実施例のメモリマップ（論理配置）とソフトエラー検出パトロール方向の説明図である。
【図６】本実施例のソフトエラー修正処理のフローチャートである。
【図７Ａ】ビットインターリーブ＝１である場合のメモリ構造の説明図である。
【図７Ｂ】ビットインターリーブ＝１である場合のメモリ構造におけるメモリのエラー修復方法の例の説明図である。
【図７Ｃ】ビットインターリーブ＝１である場合のメモリ構造におけるメモリのエラー修復方法の例の説明図である。
【図８Ａ】ビットインターリーブ＝２である場合のメモリ構造の説明図である。
【図８Ｂ】ビットインターリーブ＝２である場合のメモリ構造におけるメモリのエラー修復方法の例の説明図である。
【図８Ｃ】ビットインターリーブ＝２である場合のメモリ構造におけるメモリのエラー修復方法の例の説明図である。
【図９Ａ】ビットインターリーブ＝４である場合のメモリ構造の説明図である。
【図９Ｂ】ビットインターリーブ＝４である場合のメモリ構造におけるメモリのエラー修復方法の例の説明図である。
【図９Ｃ】ビットインターリーブ＝４である場合のメモリ構造におけるメモリのエラー修復方法の例の説明図である。
【図１０Ａ】本実施例のメモリ構造解析処理のフローチャートである。
【図１０Ｂ】本実施例のメモリ構造解析処理のフローチャートである。
【図１１Ａ】本実施例のメモリ構造解析処理の説明図である。
【図１１Ｂ】本実施例のメモリ構造解析処理の説明図である。
【図１２Ａ】具体例１のエラービットの発生状況を示す図である。
【図１２Ｂ】具体例１のエラービットの発生状況を示す図である。
【図１３Ａ】具体例２のエラービットの発生状況を示す図である。
【図１３Ｂ】具体例２のエラービットの発生状況を示す図である。
【図１４Ａ】具体例３のエラービットの発生状況を示す図である。
【図１４Ｂ】具体例３のエラービットの発生状況を示す図である。
【発明を実施するための形態】
【００１５】
まず、本発明の実施形態の概要について説明する。
【００１６】
半導体プロセスの微細化によるＳＲＡＭの大容量化の技術トレンドにおいて、図１Ａから図２Ｂに示すように、半導体製造プロセスのＮ倍の微細化によって、中性子線の一回の衝突によるソフトエラーの影響範囲がＮのべき乗（Ｎ×Ｎ）倍になる。すなわち、メモリをパトロールするワード方向についても、ソフトエラー領域がＮ倍となる。
【００１７】
このため、本実施形態では、この特性を利用して、Ｎワード毎に比較・検査をすることによって、エラー検出時間を短縮する。２サイクル目以降の比較・検査では、検査対象のワード位置を＋１することによって、Ｎサイクルで全てのメモリ領域の比較・検査が完了し、従来と同等の網羅性を確保する。
【００１８】
また、本実施形態では、最初のエラー検出後に、メモリ構造に従って、物理的に周辺に配置されたワードを直ちに比較・検査することによって、全メモリのエラーを早急に修復することができる。
【００１９】
次に本発明の実施例の詳細について説明する。
【００２０】
前述したように、不揮発性メモリ（例えば、ＳＲＡＭ）は、チップに含まれる不純物から発生するアルファ線や宇宙線（ガンマ線、中性子線）等の放射線の影響によって、記憶されているデータにビット反転が生じ、データが変化するソフトエラーが発生する場合がある。このソフトエラーの範囲は、図１Ａ及び図２Ａに示すように、放射線が衝突した箇所から同心円状に広がる。なお、ソフトエラーの発生確率（影響）は、外側の円ほど小さくなる。
【００２１】
図１Ａ及び図１Ｂは、従来のプロセスルールによって製造されたメモリにおける影響範囲を示し、図２Ａ及び図２Ｂは、図１Ｂに示すメモリのプロセスルールより４倍微細なプロセスルールによって製造されたメモリにおける影響範囲を示す。
【００２２】
図１Ｂに示すように、従来のプロセスルールによって製造されたメモリにおける影響範囲は、４ビットであるのに対し、図２Ｂに示すように、４倍微細なプロセスルールによって製造されたメモリにおける影響範囲は、４１ビットになる。
【００２３】
図３は、本実施例のネットワーク通信装置１００のブロック図であり、当該ネットワーク通信装置１００に接続される装置も図示する。
【００２４】
ネットワーク通信装置１００は、転送エンジン１１０、プロセッサ（ＣＰＵ）１２０、メモリ１３０及びポート１４１、１４２等を有する。
【００２５】
転送エンジン１１０は、転送ＬＳＩ１１１及びメモリ１１２を有する。転送ＬＳＩ１１１は、経路テーブル１１３を参照して、ネットワーク通信装置１００に入力されたパケットを出力するポートを決定する。メモリ１１２は、大容量で、高速にアクセスできるＳＲＡＭであり、パケットを出力するポートを決定するための経路テーブル１１３を保持する。
【００２６】
プロセッサ１２０は、メモリ１３０に格納されたプログラムを実行することによってネットワーク通信装置１００の動作を制御する。メモリ１３０は、プロセッサ１２０によって実行されるプログラム、バックアップの経路テーブル１３１及び論物マップ１３２を格納する。
【００２７】
例えば、プロセッサ１２０は、転送エンジン１１０内に格納された経路テーブル１１３と、メモリ１３０に格納されたバックアップの経路テーブル１３１とを比較し、両者のデータが一致していなければ、メモリ１１２にエラーが発生していることを検出し、バックアップの経路テーブル１３１のデータを経路テーブル１１３に書き込むことによって、経路テーブル１１３を修正する。この処理の詳細は、図６を参照して後述する。
【００２８】
論物マップ１３２は、メモリ１１２の記憶領域の論理的な配置と物理的な配置との関係を記録する。
【００２９】
ポート１４１、１４２は、他の装置と接続するためのネットワークインターフェースである。ポート１４１は、ネットワークＡ４１０を介して、ユーザＡが使用するコンピュータ２１０に接続されており、ポート１４２は、ネットワークＢ４２０を介して、ユーザＢが使用するコンピュータ２２０に接続されている。
【００３０】
例えば、ユーザＡとユーザＢとの間の通信は、転送ＬＳＩ１１１によって定められた、ポート１４１及び１４２を経由する経路によって転送される。
【００３１】
また、ネットワーク通信装置１００は、ネットワークＣ４３０を経由してエラー集計サーバ３００に接続されている。なお、図では省略したが、エラー集計サーバ３００も、あるポートを介して接続されている。
【００３２】
ネットワーク通信装置１００は、検出したメモリ１１２のエラーの検出箇所を、エラー集計サーバ３００に送信する。
【００３３】
エラー集計サーバ３００は、ネットワークインターフェース３１０、プロセッサ（ＣＰＵ）３２０及びメモリ３３０を有する計算機である。エラー集計サーバ３００は、ネットワーク通信装置１００が検出したエラーの検出箇所の情報を統計処理をして、ネットワーク通信装置１００の機種毎に分析することによって、ネットワーク通信装置１００のメモリの構造を解析する。この処理の詳細は、図１０Ａ及び図１０Ｂを参照して後述する。
【００３４】
プロセッサ３２０は、メモリ３３０に格納されたプログラムを実行する中央処理装置である。
【００３５】
メモリ３３０は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶装置であり、オペレーティングシステム（ＯＳ）及びアプリケーションプログラムを格納する。プロセッサ３２０が、オペレーティングシステムを実行することによって、計算機の基本機能が実現され、アプリケーションプログラムを実行することによって、エラー集計サーバ３００が提供する機能が実現される。
【００３６】
メモリ３３０は、具体的には、メモリ構造解析プログラム３３１及びエラー発生箇所情報３３２を格納する。
【００３７】
メモリ構造解析プログラム３３１は、ネットワーク通信装置１００が検出したエラー発生箇所の情報を用いて、ネットワーク通信装置１００のメモリ１１２の構造を解析するためのプログラムであって、その処理の詳細は、図１０Ａ及び図１０Ｂを用いて後述する。エラー発生箇所情報３３２は、ネットワーク通信装置１００が検出したエラー発生箇所の情報であり、複数のネットワーク装置１００からの情報が蓄積されたものである。
【００３８】
なお、エラー集計サーバ３００は、二次記憶装置を有してもよい。二次記憶装置は、例えば、磁気記憶装置、フラッシュメモリ等の大容量かつ不揮発性の記憶装置であり、プロセッサ３２０によって実行されるプログラム及びプログラム実行時にプロセッサ３２０によって使用されるデータを格納する。この場合、プログラムは、二次記憶装置ら読み出され、メモリ３３０にロードされて、プロセッサ３２０によって実行される。
【００３９】
ネットワークインターフェース３１０は、エラー集計サーバ３００をネットワークＣ４３０に接続し、他の装置との通信を制御する。なお、エラー集計サーバ３００がネットワークインターフェース３１０を介して端末と接続されており、エラー集計サーバ３００は該端末からの要求に従って時空間データを処理し、処理結果を端末に出力してもよい。
【００４０】
また、エラー集計サーバ３００は、キーボード、マウスなどのユーザインターフェースである入力装置、及び、ディスプレイ装置、プリンタなどのユーザインターフェースである出力装置を有してもよい。
【００４１】
また、エラー集計サーバ３００は、物理的に一つの計算機上に構築されても、物理的には一つ又は複数の計算機上に構成された論理区画上に構築されてもよい。
【００４２】
なお、プロセッサ３２０によって実行されるプログラムは、不揮発性の記憶媒体又はネットワークを介して計算機に提供される。このため、計算機は、記憶媒体（ＣＤ−ＲＯＭ、フラッシュメモリ等）を読み込むインターフェースを備えるとよい。
【００４３】
次に、本発明の実施例のソフトエラー検出方法について説明する。
【００４４】
図４、図５は、本実施例のエラー検出において、最初のエラーを検出するまでのエラー検出方法を説明する図である。
【００４５】
本実施例のソフトエラー検出方法（パトロール方法）では、まず、検査対象となるメモリとは別の媒体にバックアップデータを格納する。本実施例のネットワーク通信装置１００では、図３に示すように、経路テーブル１１３が格納される転送エンジン１１０内のメモリ１１２が検査対象であり、転送エンジン１１０の外に設けられたメモリ１３０にバックアップの経路テーブル１３１を格納する。
【００４６】
その後、図４に示すように、検査対象メモリ１１２をワード方向に所定のチェック間隔（Ｅｗｂ）で、ワード内の各ビットをバックアップの経路テーブル１３１と比較することによって、検査をする。そして、２サイクルの検査は、１サイクルで検査したワードに１を加えた箇所（ワード）について、バックアップの経路テーブル１３１と比較することによって、検査をし、さらに、３サイクル、４サイクルと、Ｅｗｂサイクルまで続ける。
【００４７】
いずれかのサイクルの検査で、エラーが検出されると、バックアップの経路テーブル１３１のデータをエラー検出箇所に書き込む。
【００４８】
前述したように、エラーは、ある範囲で発生する可能性があるので、メモリ構造（物理配置及び論理配置）に従って、エラー検出箇所の（物理的に）近傍に配置されたワードをバックアップの経路テーブル１３１と比較することによって、検査する。
【００４９】
また、ビット方向については、図５に示すように、各サイクルで、一つの論理ブロックの検査が完了した後に、隣の論理ブロックを順に検査する。
【００５０】
具体的には、第１サイクルにおいて、論理ブロック（Ｂ）をワード方向にＡ０からＡ３１までＥｗｂ毎に検査し、その後、論理ブロック（Ｆ）をワード方向にＡ３２からＡ６３までＥｗｂ毎に検査し、その後、順に、論理ブロック（Ｈ）のＡ６４からＡ９５まで、論理ブロック（Ｒ）のＡ９６からＡ１２７までを検査する。
【００５１】
さらに、第２サイクルにおいては、検査するワードを一つずらして、論理ブロック（Ｂ）、論理ブロック（Ｆ）、論理ブロック（Ｈ）及び論理ブロック（Ｒ）を順に検査する。その後、第３サイクル、第４サイクルと検査を続ける。
【００５２】
この検査処理の詳細は図６を用いて説明し、その具体例は図７Ａから図９Ｃを用いて説明する。
【００５３】
そして、最初のエラー検出箇所から所定の範囲の全ワードについてエラーを検査し、エラーが検出されると、バックアップの経路テーブル１３１のデータをエラー検出箇所に書き込む。
【００５４】
以上の処理によって、全メモリのエラーを修復することができる。
【００５５】
図６は、本実施例のソフトエラー修正処理のフローチャートである。
【００５６】
図６に示すソフトエラー修正処理は、図４に示す検出方法によって、最初のエラー検出した後にプロセッサ１２０が実行する。
【００５７】
まず、最初のエラー検出箇所の前後Ｅｗｂ分のワードについて、経路テーブル１１３とメモリ１３０に格納されたバックアップの経路テーブル１３１とを比較する。そして、経路テーブル１１３のエラーが検出されたワードについて、バックアップの経路テーブル１３１のデータを経路テーブル１１３に書き込み、経路テーブル１１３のエラーを修正する（Ｓ１０１）。
【００５８】
その後、メモリ構造（インターリーブ数）を参照して、前回エラーチェックを行った論理ブロックに隣接する二つの論理ブロックを特定し、前記特定された二つの論理ブロックの同じワード（エラー検出箇所の前後ＥＷｂ分のワード）について、経路テーブル１１３とメモリ１３０に格納されたバックアップの経路テーブル１３１とを比較する。そして、隣接する論理ブロックにおいても、経路テーブル１１３のエラーが検出されたワードについて、バックアップの経路テーブル１３１のデータを経路テーブル１１３に書き込み、経路テーブル１１３のエラーを修復する（Ｓ１０２）。
【００５９】
その後、最初のエラー検出箇所からビット方向に±ＥＢｂ分の範囲の論理ブロックのチェックが完了したかを判定する（Ｓ１０３）。その結果、ビット方向に±ＥＢｂ分の範囲の論理ブロックのチェックが完了していれば、ソフトエラー修正処理を終了する。一方、ビット方向に±ＥＢｂ分の範囲の論理ブロックのチェックが完了していなければ、ステップＳ１０２に戻り、さらに外側に隣接する論理ブロックについて検査する。
【００６０】
ネットワーク通信装置１００は、図６に示すソフトエラー修正処理によって検出したエラー発生箇所の情報をエラー集計サーバ３００に送る。エラー集計サーバ３００は、ネットワーク通信装置１００から受信したエラー発生箇所の情報を蓄積し、この蓄積されたエラー発生箇所の情報（エラー発生箇所情報３３２）を用いて、ネットワーク通信装置１００のメモリ１１２の構造を解析する（図１０Ａ及び図１０Ｂ参照）。
【００６１】
この様に、本実施例のソフトエラー修正処理では、インターリーブ数などのメモリ構造（論理・物理配置）を参照して、適切な論理ブロックについてベリファイチェックを行うことができる。
【００６２】
次に、エラー検査及び修復の具体例について説明する。
【００６３】
＜エラー修復の具体例１＞
次に、図７Ａから図７Ｃを用いて、ビットインターリーブ＝１である場合のエラー修復方法について説明する。
【００６４】
図７Ａは、ビットインターリーブ＝１である場合のメモリ構造及び中性子線衝突による影響範囲を示す。図７Ａに示すメモリ構造は、図５を用いて前述したものと同じである。
【００６５】
図７Ａに示すメモリ構造では、ビットインターリーブ＝１なので、各論理ブロックが、ビット方向において混在することなく、論理ブロック毎に区切られて順に並んでいる。具体的には、ビット１からビット６に論理ブロック（Ｂ）が割り当てられ、ビット７からビット１２に論理ブロック（Ｆ）が割り当てられ、ビット１３からビット１８に論理ブロック（Ｈ）が割り当てられ、ビット１９からビット２４に論理ブロック（Ｒ）が割り当てられる。
【００６６】
図７Ｂ及び図７Ｃは、図７Ａに示すメモリ構造（ビットインターリーブ＝１）における、メモリのエラー修復方法の例を示す。
【００６７】
まず、図７Ｂに示すように、論理ブロック（Ｂ）をワード方向（Ａ０からＡ３１）にＥｗｂ毎に検査をし、論理ブロック（Ｆ）をワード方向にＡ３２からＡ６３までＥｗｂ毎に検査をする。論理ブロック（Ｆ）には、エラー発生ビット（Ｆｆ４など）が含まれているが、論理ブロック（Ｆ）のエラー発生ビットは、Ｅｗｂ毎の検査の対象外なので、論理ブロック（Ｆ）ではエラーは検出されない。
【００６８】
その後、図７Ｃに示すように、論理ブロック（Ｈ）をワード方向（Ａ６４からＡ９５）にＥｗｂ毎に検査をする。すると、論理ブロック（Ｈ）のＡ８０において、エラーが検出された。このため、Ｅｗｂ毎の検査は、Ａ８０において終了する。
【００６９】
最初のエラー検出後、エラー検出箇所からワード方向に±ＥＷｂの全ワード（Ａ７３からＡ８９）を検査する。これによって、Ａ７５からＡ８３でエラーが検出されたので、バックアップの経路テーブル１３１のデータをエラー検出箇所に書き込む。
【００７０】
また、エラー検出箇所からビット方向に発生しているエラーも修復する必要がある。このため、エラー検出箇所に隣接する論理ブロックで同じワード位置を検査する。具体的には、エラー検出箇所を含む論理ブロック（Ｈ）に隣接する論理ブロック（Ｆ）及び論理ブロック（Ｒ）において、論理ブロック（Ｈ）の全ワード検査対象箇所（Ａ７３からＡ８９）に対応する論理ブロック（Ｆ）のＡ４１からＡ５７及び論理ブロック（Ｒ）のＡ１０５からＡ１２１について、全ワードを検査する。これによって、論理ブロック（Ｆ）のＡ４６からＡ４８及び論理ブロック（Ｒ）のＡ１１１でエラーが検出されたので、バックアップの経路テーブル１３１のデータをエラー検出箇所に書き込む。
【００７１】
なお、隣接する論理ブロックにおいて対応するワード位置でエラーが検出されなくなるまで、隣接する論理ブロックを検査してもよい。すなわち、エラー検出箇所からビット方向に±ＥＢｂの範囲に、さらに隣接する論理ブロック（インターリーブの組）が含まれる場合、さらに隣接する論理ブロックにおいて、対応するワード位置を検査する。
【００７２】
このように、具体例１においては、複数の論理ブロックにわたって広がりを見せるエラー発生箇所を的確かつ迅速に検査することができる。
【００７３】
＜エラー修復の具体例２＞
次に、図８Ａから図８Ｃを用いて、ビットインターリーブ＝２である場合のエラー修復方法について説明する。
【００７４】
図８Ａは、ビットインターリーブ＝２である場合のメモリ構造及び中性子線衝突による影響範囲を示す。
【００７５】
図８Ａに示すメモリ構造では、ビットインターリーブ＝２なので、一つのインターリーブの組の中で二つの論理ブロックのビットが交互に割り当てられる。具体的には、ビット１からビット１２までの領域が１ビット毎に交互に論理ブロック（Ｂ）及び論理ブロック（Ｆ）に割り当てられ、ビット１３からビット２４までの領域が１ビット毎に交互に論理ブロック（Ｈ）及び論理ブロック（Ｒ）に割り当てられる。すなわち、論理ブロック（Ｂ）及び論理ブロック（Ｆ）は、ビット１からビット１２までの領域に混在し、論理ブロック（Ｈ）及び論理ブロック（Ｒ）は、ビット１３からビット２４までの領域に混在する。
【００７６】
図８Ｂ及び図８Ｃは、図８Ａに示すメモリ構造（ビットインターリーブ＝２）における、メモリのエラー修復方法の例を示す。
【００７７】
まず、図８Ｂに示すように、論理ブロック（Ｂ）をワード方向（Ａ０からＡ３１）にＥｗｂ毎に検査をする。論理ブロック（Ｂ）には、エラー発生ビット（Ｂｆ５）が含まれているが、論理ブロック（Ｂ）のエラー発生ビットは、Ｅｗｂ毎の検査の対象外なので、論理ブロック（Ｂ）ではエラーは検出されない。
【００７８】
その後、論理ブロック（Ｆ）をワード方向にＡ３２からＡ６３までＥｗｂ毎に検査をする。すると、論理ブロック（Ｆ）のＡ４５において、エラーが検出された。このため、Ｅｗｂ毎の検査は、Ａ４５において終了する。
【００７９】
最初のエラー検出後、エラー検出箇所からワード方向に±ＥＷｂの全ワード（Ａ３７からＡ５３）を検査する。これによって、Ａ４３からＡ５１でエラーが検出されたので、バックアップの経路テーブル１３１のデータをエラー検出箇所に書き込む。
【００８０】
また、エラー検出箇所からビット方向に発生しているエラーも修復する必要がある。このため、エラー検出箇所に隣接する論理ブロックで同じワード位置を検査する。具体的には、図８Ｂ、図８Ｃに示すように、エラー検出箇所を含む論理ブロック（Ｆ）とインターリーブの組を構成する論理ブロック（Ｒ）及び、エラー検出箇所を含む論理ブロックによって構成されるインターリーブの組と隣接するインターリーブの組を構成する論理ブロック（論理ブロック（Ｂ）及び論理ブロック（Ｈ））において、エラーが検出された論理ブロック（Ｆ）と同じワード位置を検査する。
【００８１】
これによって、論理ブロック（Ｒ）のＡ１０８からＡ１１４、論理ブロック（Ｂ）のＡ１５及び論理ブロック（Ｈ）のＡ７８からＡ８０でエラーが検出されたので、バックアップの経路テーブル１３１のデータをエラー検出箇所に書き込む。
【００８２】
なお、隣接する論理ブロックにおいて対応するワード位置でエラーが検出されなくなるまで、隣接する論理ブロックを検査してもよい。すなわち、エラー検出箇所からビット方向に±ＥＢｂの範囲に、さらに隣接する論理ブロック（インターリーブの組）が含まれる場合、さらに隣接する論理ブロックにおいて、対応するワード位置を検査する。
【００８３】
このように、具体例２においては、メモリがインターリーブを構成している場合でも、複数の論理ブロックにわたって広がりを見せるエラー発生箇所を的確かつ迅速に検査することができる。
【００８４】
＜エラー修復の具体例３＞
次に、図９Ａから図９Ｃを用いて、ビットインターリーブ＝４である場合のエラー修復方法について説明する。
【００８５】
図９Ａは、ビットインターリーブ＝４である場合のメモリ構造及び中性子線衝突による影響範囲を示す。
【００８６】
図９Ａに示すメモリ構造では、ビットインターリーブ＝４なので、四つの論理ブロックのビットが順次割り当てられる。具体的には、ビット１からビット２４までの領域が１ビット毎に論理ブロック（Ｂ）、論理ブロック（Ｆ）、論理ブロック（Ｈ）、論理ブロック（Ｒ）の順に割り当てられる。すなわち、論理ブロック（Ｂ）、論理ブロック（Ｆ）、論理ブロック（Ｈ）、論理ブロック（Ｒ）は、ビット１からビット２４までの領域に混在する。
【００８７】
図９Ｂ及び図９Ｃは、図９Ａに示すメモリ構造（ビットインターリーブ＝２）における、メモリのエラー修復方法の例を示す。
【００８８】
まず、図９Ｂに示すように、論理ブロック（Ｂ）をワード方向（Ａ０からＡ３１）にＥｗｂ毎に検査をする。論理ブロック（Ｂ）には、エラー発生ビット（Ｂｄ３など）が含まれているが、論理ブロック（Ｂ）のエラー発生ビットは、Ｅｗｂ毎の検査の対象外なので、論理ブロック（Ｂ）ではエラーは検出されない。
【００８９】
その後、論理ブロック（Ｆ）をワード方向にＡ３２からＡ６３までＥｗｂ毎に検査をする。すると、論理ブロック（Ｆ）のＡ４５において、エラーが検出された。このため、Ｅｗｂ毎の検査は、Ａ４５において終了する。
【００９０】
最初のエラー検出後、エラー検出箇所からワード方向に±ＥＷｂの全ワード（Ａ３７からＡ５３）を検査する。これによって、Ａ４４からＡ５０でエラーが検出されたので、バックアップの経路テーブル１３１のデータをエラー検出箇所に書き込む。
【００９１】
また、エラー検出箇所からビット方向に発生しているエラーも修復する必要がある。このため、エラー検出箇所に隣接する論理ブロックで同じワード位置を検査する。具体的には、図９Ｂ、図９Ｃに示すように、エラー検出箇所を含む論理ブロック（Ｆ）とインターリーブの組を構成する論理ブロック（Ｂ）、論理ブロック（Ｈ）及び論理ブロック（Ｒ）において、エラーが検出された論理ブロック（Ｆ）と同じワード位置を検査する。
【００９２】
これによって、論理ブロック（Ｂ）のＡ１３からＡ１７、論理ブロック（Ｈ）のＡ７５からＡ８３及び論理ブロック（Ｒ）のＡ１０８からＡ１１４でエラーが検出されたので、バックアップの経路テーブル１３１のデータをエラー検出箇所に書き込む。
【００９３】
なお、エラー検出箇所からビット方向に±ＥＢｂの範囲に、さらに隣接する論理ブロック（インターリーブの組）が含まれる場合、さらに隣接する論理ブロックにおいて、対応するワード位置を検査する。
【００９４】
なお、隣接する論理ブロックにおいて対応するワード位置でエラーが検出されなくなるまで、隣接する論理ブロックを検査してもよい。すなわち、エラー検出箇所からビット方向に±ＥＢｂの範囲に、さらに隣接する論理ブロック（インターリーブの組）が含まれる場合、さらに隣接する論理ブロックにおいて、対応するワード位置を検査する。
【００９５】
また、エラー検出箇所を含む論理ブロックによって構成されるインターリーブの組と隣接するインターリーブの組を構成する論理ブロックを検査してもよい。
【００９６】
このように、具体例３においても、メモリがインターリーブを構成している場合に、複数の論理ブロックにわたって広がりを見せるエラー発生箇所を的確かつ迅速に検査することができる。
【００９７】
以上に説明したように、本発明の実施例では、微細化した半導体プロセスによって製造されたメモリでも、従来と変わらない時間でエラーを検出及び修復することができる。つまり、プロセスの微細化によるメモリの大容量化が進んでも、エラー修復時間は変わらないので、将来、さらに半導体プロセスが微細化した場合でも、マルチビットエラーを効果的に検出することができる。
【００９８】
＜メモリ構造の解析＞
次に、本実施例のメモリ構造の解析について説明する。
【００９９】
ネットワーク通信装置１００のメモリ１１２は、物理的に配置されたセルをそのまま使用するのではなく、ビットインターリーブを用いてメモリセルを配置することによるエラー耐性の向上や、経路テーブルで必要とされるビット数によってワードを構成するために、各ビットが論理的にマッピングされている。よって、あるセルの物理的に周辺のビットのデータが破壊されても、論理的に離れたビットのデータが破壊され、エラー発生箇所が散在することになる。
【０１００】
前述したエラー検出及び修復では、ネットワーク通信装置１００のメモリ１１２のメモリ構造（すなわち、メモリセルの物理的な配置）が分かっていることを前提として、エラーの発生を検出したが、ネットワーク通信装置１００のベンダがメモリ構造を公開していない場合もある。
【０１０１】
このため、本発明の別の実施例においては、エラー発生箇所の分布を解析することによって、メモリ構造（すなわち、メモリセルの物理的な配置）を推定する。具体的には、エラー集計サーバ３００が、複数のネットワーク通信装置１００で発生したエラーを集計することによって、メモリ構造を解析する。
【０１０２】
図１０Ａ及び図１０Ｂは、本実施例のメモリ構造解析処理のフローチャートであり、エラー集計サーバ３００のプロセッサ３２０によって実行される。
【０１０３】
前述したように、エラー集計サーバ３００は、ネットワーク通信装置１００が検出したエラー発生箇所の情報（エラー発生箇所情報３３２）を蓄積しており、この蓄積されたエラー発生箇所情報３３２を用いて、ネットワーク通信装置１００のメモリ１１２の構造を解析する。
【０１０４】
まず、プロセッサ３２０は、メモリ全体のマップ（論理配置）における、エラー群の位置を確認する（Ｓ１１１）。このとき、近接するエラービットは同一の群とする。
【０１０５】
その後、エラー群の分布がワード方向に等間隔になるように論理ブロックを分割する（Ｓ１１２）。具体的には、論理ブロックを２のベキ乗のワード単位で分割する。
【０１０６】
そして、各論理ブロックの先頭からエラー群の位置が等しいかを判定する（Ｓ１１３）。その結果、各論理ブロックにおいてエラー群の位置が異なっていれば、ダミーの論理ブロックを挿入した後、ワード方向に等間隔で論理ブロック分けを試みる（Ｓ１１４）。ステップＳ１１４でも、ステップＳ１１２と同様に、論理ブロックを２のベキ乗のワード単位で分割する。
【０１０７】
一方、各論理ブロックにおいてエラー群の位置が等しければ、論理ブロックが正しく分割されているので、論理ブロックの分割を完了し、Ｓ１１５に進む。なお、この時点ではインターリーブは判明せず、ワード方向の間隔が判明しているのみである。
【０１０８】
ステップＳ１１５では、ここまでの処理で解析した通りに論理ブロックを並べて、エラー分布が自然かを判定する。
【０１０９】
その結果、エラービットが同心円状に一塊となっていれば、エラー分布が自然なので、インターリーブ数は１であると判定し、メモリ構造解析処理を終了する。
【０１１０】
一方、エラービットが同心円状に一塊となっていなければ、エラー分布が不自然なので、インターリーブ数は２以上であると判定して、ステップＳ１１６に進む。
【０１１１】
ステップＳ１１６では、ワード方向に同一ビットで一番広範囲にエラーが発生した論理ブロック（Ｘ１）を探す。
【０１１２】
その後、ワード方向に同一ビットで、次に広範囲にエラーが発生した論理ブロック（Ｘｎ、ｎ＝２、３、・・・）を順次探す（Ｓ１１７）。なお、同じ範囲でエラーが発生した論理ブロックが複数ある場合は、その数だけｎを使用する。
【０１１３】
そして、全てのエラービットを調査したかを判定し（Ｓ１１８）、未調査のエラービットがあれば、ステップＳ１１７に戻る。一方、全てのエラービットの調査が完了していれば、ステップＳ１１９に進む。
【０１１４】
論理ブロックＸ１、Ｘ２、・・・と順に調査し、同じ論理ブロックが登場する箇所（ＸＩＮＴ）を見つける。ＸＩＮＴから１を減じた値をインターリーブ数とする（Ｓ１１９）。
【０１１５】
その後、解析したインターリーブ数に基づいて、Ｘ１のビット列を中心に両側にＸ２、Ｘ３のビット列を配置し、さらに外側にＸ４、Ｘ５のビット列を配置し、エラーが発生した全ての論理ブロックを順に配置する（Ｓ１２０）。
【０１１６】
次に、ステップＳ１２０で決定された論理ブロックの配置において、エラー分布が自然であるかを判定する（Ｓ１２１）。
【０１１７】
その結果、エラービットが同心円状に一塊となっていれば、エラー分布が自然であり、メモリの物理配置が推定できたので、構造解析処理を終了する。
【０１１８】
一方、エラービットが同心円状に一塊となっていなければ、エラー分布が不自然なので、論理ブロックを配置する順序を変更する（Ｓ１２２）。例えば、論理ブロックＸ２とＸ３の位置を入れ替えたり、更に外側の隣接する論理ブロック（例えば、Ｘ４とＸ５）の位置を入れ替えたりする。これらの論理ブロックの位置の入れ替えは、隣接する論理ブロックのエラー発生範囲の差が小さくなるように配置するとよい。
【０１１９】
図１１Ａは、転送エンジン１１０内のメモリ１１２のメモリ空間におけるエラー検出箇所を示す。前述したように、メモリ空間は複数の論理ブロックがワード方向に連続して構成されているので、各論理ブロックに含まれるエラービットは、メモリ空間において散在することになる。このエラービットが、各論理ブロックにおいて、同じ位置となるようにメモリ空間における論理ブロックの分割位置を決定する。
【０１２０】
この分割位置の決定は、図１１Ｂに示すように、各論理ブロックの中でエラー発生ビットが同一の位置（すなわち、論理ブロックの境界からエラー発生ビットまでのワード方向の距離が同じ）になるように、論理ブロックの境界を決定する。
【０１２１】
すなわち、メモリマップを論理ブロックに分割する際に必要な条件は、以下の三つとなる。
条件１  ソフトエラー群の数に合せて均等に論理ブロックに分割する（ＹＢ＝ＹＦ＝ＹＨ＝ＹＲ）。
条件２  各論理ブロックにおけるソフトエラー群の位置が等しい（ＹＢ１＝ＹＦ１＝ＹＨ１＝ＹＲ１）。
条件３  条件２を満たさない場合、ダミーの論理ブロックを挿入して、条件１及び２を満たすようにする。
【０１２２】
本実施例では、エラー集計サーバ３００が、エラービットの拡散状況を統計的に集計し、前述した条件を満たす論理ブロックの境界を見出すことによって、ビットインターリーブの数を含む、メモリ構造が判明する。判明したメモリ構造は、論物マップ１３２に書き込まれる。
【０１２３】
次に、図１２Ａから図１４Ｃを用いて、メモリ構造解析方法の具体例について説明する。
【０１２４】
＜メモリ構造解析の具体例１＞
図１２Ａ及び図１２Ｂは、具体例１のエラービットの発生状況を示す。
【０１２５】
まず、エラー群の大きさを判定し、中くらいのエラー群と、小さなエラー群とに区分する。その結果、論理ブロック（Ｈ）には中くらいのエラー群が含まれており、論理ブロック（Ｆ）（Ｒ）には小さなエラー群が含まれていることが分かる。
【０１２６】
次に、分布の形状から、エラー群の論理ブロック間の連続性を判定する。その結果、エラー群に連続性があると判定される場合、複数の小さなエラー群と一つの中くらいのエラー群とが連続するように、論理ブロックを連結する。一方、エラー群に連続性がないと判定される場合、一つの小さなエラー群と一つの中くらいのエラー群とが連続するように、論理ブロックを連結して、さらにエラー群の連続性を判定する。
【０１２７】
図１２Ａ、図１２Ｂに示す例では、論理ブロック（Ｈ）の中くらいのエラー群と、論理ブロック（Ｆ）の小さなエラー群と、論理ブロック（Ｒ）の小さなエラー群とが連続性があるので、一つの大きなエラー群に集約することができる。
【０１２８】
このようにエラー群が連続するように論理ブロックを連結した結果、一つのエラー群に集約された場合、この論理ブロック分けは正しいと判定することができる。
【０１２９】
そして、集約されたエラー群の数（判定されたビットインターリーブ数）に従って、ビット列を順に写像する。この写像は、図１２Ａ、図１２Ｂの、論理ブロックの下部に記載したビット列の写像順序に従ってメモリを再構成する。
【０１３０】
その結果、ネットワーク通信装置１００が図７Ａに示す（すなわち、ビットインターリーブ＝１の）メモリ構造を有することが分かる。
【０１３１】
＜メモリ構造解析の具体例２＞
図１３Ａ及び図１３Ｂは、具体例２のエラービットの発生状況を示す。
【０１３２】
まず、エラー群の大きさを判定し、中くらいのエラー群と、小さなエラー群とに区分する。その結果、論理ブロック（Ｆ）（Ｈ）には中くらいのエラー群が含まれており、論理ブロック（Ｂ）（Ｒ）には小さなエラー群が含まれていることが分かる。
【０１３３】
次に、分布の形状から、エラー群の論理ブロック間の連続性を判定する。その結果、エラー群に連続性があると判定される場合、複数の小さなエラー群と一つの中くらいのエラー群とが連続するように、論理ブロックを連結する。一方、エラー群に連続性がないと判定される場合、一つの小さなエラー群と一つの中くらいのエラー群とが連続するように、論理ブロックを連結して、さらにエラー群の連続性を判定する。
【０１３４】
図１３Ａ、図１３Ｂに示す例では、論理ブロック（Ｆ）の中くらいのエラー群と、論理ブロック（Ｂ）の小さなエラー群とが連続性があり、論理ブロック（Ｈ）の中くらいのエラー群と、論理ブロック（Ｒ）の小さなエラー群とが連続性があるので、二つの大きなエラー群に集約することができる。
【０１３５】
このようにエラー群が連続するように論理ブロックを連結した結果、二つの同程度の大きさのエラー群に集約された場合、ビットインターリーブ＝２であり、この論理ブロック分けは正しいと判定することができる。
【０１３６】
そして、集約されたエラー群の数（判定されたビットインターリーブ数）に従って、ビット列を順に写像する。この写像は、図１３Ａ、図１３Ｂの、論理ブロックの下部に記載したビット列の写像順序に従ってメモリを再構成する。
【０１３７】
その結果、ネットワーク通信装置１００が図８Ａに示す（すなわち、ビットインターリーブ＝２の）メモリ構造を有することが分かる。
【０１３８】
＜メモリ構造解析の具体例３＞
図１４Ａ及び図１４Ｂは、具体例３のエラービットの発生状況を示す。
【０１３９】
まず、エラー群の大きさを判定し、中くらいのエラー群と、小さなエラー群とに区分する。その結果、論理ブロック（Ｂ）（Ｆ）（Ｈ）（Ｒ）の各々に中くらいのエラー群が含まれていることが分かる。
【０１４０】
次に、分布の形状から、エラー群の論理ブロック間の連続性を判定する。その結果、エラー群に連続性があると判定される場合、複数の小さなエラー群と一つの中くらいのエラー群とが連続するように、論理ブロックを連結する。一方、エラー群に連続性がないと判定される場合、一つの小さなエラー群と一つの中くらいのエラー群とが連続するように、論理ブロックを連結して、さらにエラー群の連続性を判定する。
【０１４１】
図１４Ａ、図１４Ｂに示す例では、各論理ブロック（Ｆ）のエラー群とには連続性がないので、エラー群を集約することができず、四つのエラー群が残る。
【０１４２】
このように四つの同程度の大きさのエラー群が残った場合、ビットインターリーブ＝４であり、この論理ブロック分けは正しいと判定することができる。
【０１４３】
そして、集約されたエラー群の数（判定されたビットインターリーブ数）に従って、ビット列を順に写像する。この写像は、図１４Ａ、図１４Ｂの、論理ブロックの下部に記載したビット列の写像順序に従ってメモリを再構成する。
【０１４４】
その結果、ネットワーク通信装置１００が図９Ａに示す（すなわち、ビットインターリーブ＝４の）メモリ構造を有することが分かる。
【０１４５】
以上に説明したように、本発明の実施例では、エラー発生箇所の分布を解析することによって、メモリ構造（すなわち、メモリセルの物理的な配置）を推定することができる。また、エラー集計サーバ３００が、複数のネットワーク通信装置１００で発生したエラーを集計してメモリ構造を解析するので、稀にしか生じないエラーであっても、多数のネットワーク通信装置１００のデータを集計することによって、より的確にメモリ構造を推定することができる。
【０１４６】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【符号の説明】
【０１４７】
１００  ネットワーク通信装置
１１０  転送エンジン
１１１  転送ＬＳＩ
１１２  メモリ
１１３  経路テーブル
１２０  プロセッサ（ＣＰＵ）
１３０  メモリ
１３１  経路テーブル（バックアップ）
１３２  論物マップ
３００  エラー集計サーバ
３１０  ネットワークインターフェース
３２０  プロセッサ（ＣＰＵ）
３３０  メモリ
【図１Ａ】
2014014052.tif 000003
【図１Ｂ】
2014014052.tif 000004
【図２Ａ】
2014014052.tif 000005
【図２Ｂ】
2014014052.tif 000006
【図３】
2014014052.tif 000007
【図４】
2014014052.tif 000008
【図５】
2014014052.tif 000009
【図６】
2014014052.tif 000010
【図７Ａ】
2014014052.tif 000011
【図７Ｂ】
2014014052.tif 000012
【図７Ｃ】
2014014052.tif 000013
【図８Ａ】
2014014052.tif 000014
【図８Ｂ】
2014014052.tif 000015
【図８Ｃ】
2014014052.tif 000016
【図９Ａ】
2014014052.tif 000017
【図９Ｂ】
2014014052.tif 000018
【図９Ｃ】
2014014052.tif 000019
【図１０Ａ】
2014014052.tif 000020
【図１０Ｂ】
2014014052.tif 000021
【図１１Ａ】
2014014052.tif 000022
【図１１Ｂ】
2014014052.tif 000023
【図１２Ａ】
2014014052.tif 000024
【図１２Ｂ】
2014014052.tif 000025
【図１３Ａ】
2014014052.tif 000026
【図１３Ｂ】
2014014052.tif 000027
【図１４Ａ】
2014014052.tif 000028
【図１４Ｂ】
2014014052.tif 000029