JP2010182086A - 伝送装置及びリンク切れ修復方法 - Google Patents

伝送装置及びリンク切れ修復方法 Download PDF

Info

Publication number
JP2010182086A
JP2010182086A JP2009024946A JP2009024946A JP2010182086A JP 2010182086 A JP2010182086 A JP 2010182086A JP 2009024946 A JP2009024946 A JP 2009024946A JP 2009024946 A JP2009024946 A JP 2009024946A JP 2010182086 A JP2010182086 A JP 2010182086A
Authority
JP
Japan
Prior art keywords
pointer
bit
storage area
address
candidate
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
Application number
JP2009024946A
Other languages
English (en)
Other versions
JP5356852B2 (ja
Inventor
Takayuki Furukawa
孝之 古川
Atsuyoshi Koga
淳悦 古賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Fujitsu Telecom Networks Ltd
Original Assignee
Fujitsu Ltd
Fujitsu Telecom Networks Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd, Fujitsu Telecom Networks Ltd filed Critical Fujitsu Ltd
Priority to JP2009024946A priority Critical patent/JP5356852B2/ja
Publication of JP2010182086A publication Critical patent/JP2010182086A/ja
Application granted granted Critical
Publication of JP5356852B2 publication Critical patent/JP5356852B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】 複数のセグメント間を連結するポインタに生じたビットエラーを正しい値に復元し、チェーンメモリーのリンク切れを修復することができる伝送装置及びリンク切れ修復方法を提供する。
【解決手段】 伝送装置100は、エラーポインタのビットパターン及び反転パターンの排他的論理和を演算し、真のポインタを含むポインタ候補を算出するポインタ予測部50を備えている。また、ポインタ候補が示すポインタ格納領域11aに格納された前ポインタとエラーポインタが格納されたポインタ格納領域11aのアドレスとの一致の有無を判定するポインタ検証部70を備えている。また、ポインタ検証部70による判定結果に基づき、エラーポインタを、一致した前ポインタが格納されるポインタ格納領域11aのアドレスであるポインタ候補に変換するポインタ復元部80を備えているものである。
【選択図】 図1

Description

この発明は、メモリー空間を小さな領域(以下、セグメントと称す)に区切り、複数のセグメントが連鎖するデータ構造のメモリー(以下、チェーンメモリーと称す)における、複数のセグメント間の繋がりが失われるリンク切れを修復するリンク切れ修復方法に関する。特に、この発明は、チェーンメモリーを備えた伝送装置に関する。
従来のバッファメモリ装置は、空き領域チェーンメモリーにアドレスが空き領域の先頭として格納されている空き領域チェーンに対して、新たにアドレスの空き領域が生じた場合、該空き領域チェーンの先頭の前部に、新たに生じた空き領域のアドレスを追加する(例えば、特許文献1参照)。
また、従来のチェーンメモリーの監視方法は、チェック対象アドレスを任意に変化させ、また監視対象アドレスを空きアドレスのあるポイントに絞り、一定時間内にチェック対象アドレスが出現することを監視する、ように構成する(例えば、特許文献2参照)。
特開2004−280333号公報 特開2004−72667号公報
従来のバッファメモリ装置を含め、電子機器内のメモリチップ等は、地上に到達する宇宙線のうち、電荷を持つα線等がメモリセルに衝突した際にメモリセルに蓄えられた電荷量の値を乱してしまうためにメモリエラー(ソフトエラー)が生じることがある。このため、従来のバッファメモリ装置は、格納領域のアドレスポインタの値が、ソフトエラーに起因するビットエラーを起こした場合に、格納領域間の繋がりが失われるリンク切れが生じるという課題があった。
また、従来のチェーンメモリーの監視方法は、チェーン異常(アドレス損失)を検出するのであるが、チェーン異常のあるアドレスの次アドレス値を正しい次アドレス値に復元することまでを考慮していない。このため、チェーン異常を検出したチェーンメモリー及び対応する共通メモリーに対しては、メモリー全体を初期化する必要があるなどの課題があった。
この発明は、上述のような課題を解決するためになされたもので、複数のセグメント間を連結するポインタに生じたビットエラーを正しい値に復元し、チェーンメモリーのリンク切れを修復することができる伝送装置及びリンク切れ修復方法を提供するものである。
この発明に係る伝送装置は、エラーポインタのビットパターン及び反転パターンの排他的論理和を演算し、真のポインタを含むポインタ候補を算出するポインタ予測部を備えている。また、ポインタ候補が示すポインタ格納領域に格納された前ポインタとエラーポインタが格納されたポインタ格納領域のアドレスとの一致の有無を判定するポインタ検証部を備えている。また、ポインタ検証部による判定結果に基づき、エラーポインタを、一致した前ポインタが格納されるポインタ格納領域のアドレスであるポインタ候補に変換するポインタ復元部を備えている。
開示の伝送装置は、従来技術のような、チェーン異常の対処方法としてのメモリーの初期化に伴う、当該チェーンに対応するセグメントの格納領域に格納されるデータが消去されることなく、チェーンメモリーのリンク切れを修復することができるという効果を奏する。
第1の実施形態に係る伝送装置の特徴部分を示す概略図である。 図1に示すメモリー空間を説明するための説明図である。 図1に示す反転パターン格納部に格納される反転パターンの一例を示す説明図である。 図1に示す反転パターン格納部に格納される反転パターンの他の例を示す説明図である。 反転させるビット位置の個数と反転パターンの組み合わせ数との関係を示す対応表である。 図1に示すポインタ候補格納部に格納されるポインタ候補の一例を示す説明図である。 図1に示すポインタ候補格納部に格納されるポインタ候補の他の例を示す説明図である。 図1に示す伝送装置における処理手順を示すフローチャートである。 チェーンメモリーのリンク切れを説明するための説明図である。 本発明以外のリンク切れの修復方法を説明するための説明図である。 図1に示す反転パターン格納部に格納される反転パターンのさらに他の例を示す説明図である。 第1の実施形態に係る伝送装置の他の例を示す概略図である。
ここで、本発明は多くの異なる形態で実施可能である。したがって、下記の各実施形態の記載内容のみで解釈すべきではない。また、各実施形態の全体を通して同じ要素には同じ符号を付けている。
各実施形態では、主に装置について説明するが、いわゆる当業者であれば明らかな通り、本発明はコンピュータで使用可能なプログラム、方法としても実施できる。また、本発明は、ハードウェア、ソフトウェア、又は、ソフトウェア及びハードウェアの実施形態で実施可能である。プログラムは、ハードディスク、CD−ROM、DVD−ROM、光記憶装置又は磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。さらに、プログラムはネットワークを介した他のコンピュータに記録することができる。
(本発明の第1の実施形態)
図1は第1の実施形態に係る伝送装置の特徴部分を示す概略図であり、図2は図1に示すメモリー空間を説明するための説明図である。図3は図1に示す反転パターン格納部に格納される反転パターンの一例を示す説明図であり、図4は図1に示す反転パターン格納部に格納される反転パターンの他の例を示す説明図である。図5は反転させるビット位置の個数と反転パターンの組み合わせ数との関係を示す対応表である。図6は図1に示すポインタ候補格納部に格納されるポインタ候補の一例を示す説明図であり、図7は図1に示すポインタ候補格納部に格納されるポインタ候補の他の例を示す説明図である。図8は図1に示す伝送装置における処理手順を示すフローチャートである。図9はチェーンメモリーのリンク切れを説明するための説明図であり、図10は本発明以外のリンク切れの修復方法を説明するための説明図である。図11は図1に示す反転パターン格納部に格納される反転パターンのさらに他の例を示す説明図である。図12は第1の実施形態に係る伝送装置の他の例を示す概略図である。
本実施形態においては、ネットワーク上で、ある特定の通信のための帯域を予約し、一定の通信速度を保証する技術(Quality Of Service:QoS)を実装する伝送装置100を例に挙げて説明する。しかしながら、本発明は、メモリー10をチェーンメモリー方式で管理する装置であれば、伝送装置100に限られるものではない。なお、本発明の特徴部分である装置構成以外については、既存の伝送装置100と同様の装置構成及び動作であるために、図示及び説明を省略する。
伝送装置100は、図1及び図2に示すように、メモリー10における、物理的なインターフェース(interface:I/F)20が一つであるメモリー空間11を複数のキュー12に割り当てる。この場合に、伝送装置100は、キュー12毎に固定長の格納領域をメモリー空間11に予め確保するとメモリー効率が悪いため、図2に示すように、必要な時(格納する順)に格納領域を確保する動的なメモリー構造としてのチェーンメモリーが使用される。
図2では、1ワード(Word:語)を16ビットとし、65536ワードのメモリー空間11に対して、1ワードのポインタ格納領域11aと3ワードのデータ格納領域11bとからなる4ワード毎に区切られる16384個のセグメントに領域分けした例を示している。
ポインタ格納領域11aは、任意のセグメントから連結される他のセグメントを特定する情報(アドレス)である次ポインタ及び任意のセグメントを連結する他のセグメントを特定する情報(アドレス)である前ポインタを格納する領域である。また、データ格納領域11bは、キュー12からのデータ(パケット)を格納する領域である。
なお、図2においては、紙面の都合上、各セグメントのデータ格納領域11bが3ワードで図示しており、メモリー効率が75%(ポインタ格納領域:データ格納領域=1:3)であるが、実際のデータ格納領域11bは3ワードよりも遥かに多いワード数である。このため、メモリー空間11に対してポインタ格納領域11aの占める割合は少なく、ポインタによるオーバーヘッドはほとんど生じない。
また、図2においては、以下の説明を容易にするために、キュー12の数を2つとし、低優先キュー12a及び高優先キュー12bからのパケットがセグメントにそれぞれ格納される様子を示しているが、実際のキュー12の数は2つよりも遥かに多いキュー数である。
ここで、チェーンメモリーの仕組みについて、図2を用いて説明する。
キュー12にパケットが入力されると、キュー12は、メモリー空間11のセグメントのうち、全てのデータ格納領域11bが空き領域である一のセグメントに対して、データ格納領域11bの容量に合わせて、パケットを分割してそれぞれ格納する。なお、パケットが一のセグメントに納まりきれない場合には、全てのデータ格納領域11bが空き領域である他のセグメントに対して、データ格納領域11bの容量に合わせて、残りのパケットの一部を分配して格納する。この場合に、一のセグメントのポインタ格納領域11aに格納された次ポインタは、他のセグメントのポインタ格納領域11aのアドレスを示す。また、他のセグメントのポインタ格納領域11aに格納された前ポインタは、一のセグメントのポインタ格納領域11aのアドレスを示す。
例えば、低優先キュー12aにパケットAが入力されると、低優先キュー12aは、データ格納領域11bの容量に合わせて、パケットAを5分割して、第1のセグメント及び第2のセグメントのデータ格納領域11bに、パケットAの一部をそれぞれ格納する。
この場合に、第1のセグメントのポインタ格納領域11aに格納された次ポインタは、第2のセグメントのポインタ格納領域11aのアドレス「0x0004番地(16進数)」を示す。また、第2のセグメントのポインタ格納領域11aに格納された前ポインタは、第1のセグメントのポインタ格納領域11aのアドレス「0x0000番地(16進数)」を示す。なお、パケットAは5分割されているために、第2のセグメントのデータ格納領域11bの1つ(アドレス「0x0007番地(16進数)」)は空き領域となる。
その後、高優先キュー12bにパケットBが入力されると、高優先キュー12bは、データ格納領域11bの容量に合わせて、パケットBを3分割して、第3のセグメントのデータ格納領域11bに、パケットBの一部をそれぞれ格納する。
また、その後、低優先キュー12aにパケットCが入力されると、低優先キュー12aは、データ格納領域11bの容量に合わせて、パケットCを4分割して、第4のセグメント及び第5のセグメントのデータ格納領域11bに、パケットCの一部をそれぞれ格納する。
この場合に、第4のセグメントのポインタ格納領域11aに格納された次ポインタは、第5のセグメントのポインタ格納領域11aのアドレス「0x0010番地(16進数)」を示す。また、第5のセグメントのポインタ格納領域11aに格納された前ポインタは、第4のセグメントのポインタ格納領域11aのアドレス「0x000C番地(16進数)」を示す。なお、パケットCは4分割されているために、第5のセグメントのデータ格納領域11bの2つ(アドレス「0x0012番地(16進数)」、「0x0013番地(16進数)」)は空き領域となる。
また、第2のセグメントと第4のセグメントとは、第3のセグメントを跨いで、同じ低優先キュー12aからのパケットを格納しており、ポインタによって連結される。すなわち、第2のセグメントのポインタ格納領域11aに格納された次ポインタは、第4のセグメントのポインタ格納領域11aのアドレス「0x000C番地(16進数)」を示す。また、第4のセグメントのポインタ格納領域11aに格納された前ポインタは、第2のセグメントのポインタ格納領域11aのアドレス「0x0004番地(16進数)」を示す。
その後、高優先キュー12bにパケットDが入力されると、高優先キュー12bは、データ格納領域11bの容量に合わせて、パケットDを2分割して、第6のセグメントのデータ格納領域11bに、パケットDの一部をそれぞれ格納する。なお、パケットDは2分割されているために、第6のセグメントのデータ格納領域11bの1つ(アドレス「0x0017番地(16進数)」)は空き領域となる。
また、その後、低優先キュー12aにパケットEが入力されると、低優先キュー12aは、データ格納領域11bの容量に合わせて、パケットEを3分割して、第7のセグメントのデータ格納領域11bに、パケットEの一部をそれぞれ格納する。
この場合に、第5のセグメントと第7のセグメントとは、第6のセグメントを跨いで、同じ低優先キュー12aからのパケットを格納しており、ポインタによって連結される。すなわち、第5のセグメントのポインタ格納領域11aに格納された次ポインタは、第7のセグメントのポインタ格納領域11aのアドレス「0x0018番地(16進数)」を示す。また、第7のセグメントのポインタ格納領域11aに格納された前ポインタは、第5のセグメントのポインタ格納領域11aのアドレス「0x0010番地(16進数)」を示す。
このように、同じキュー12に入力されたパケットが格納されるセグメントを対象にして、第1のセグメント、第2のセグメント、第4のセグメント、・・・というように、次ポインタが次のセグメントを指し示すことによって、チェーンメモリーが形成される。
誤り検出部30は、ポインタのビットパターンに生じたビットエラーを検出するインターフェース20の機能である。なお、以下の説明においては、ビットパターンにビットエラーが生じたポインタ(ビットエラーを含むポインタ)のことを、エラーポインタと称す。
また、伝送装置100は、内部の回路間のデータ転送にあたり、メモリー空間11のワード毎にパリティチェックを行なっているのであるが、本実施形態に係る誤り検出部30は、このパリティチェックにより、ポインタにおけるビットエラーを検出する。なお、誤り検出部30は、パリティチェックの他に、各セグメントの最後尾に、巡回冗長検査(Cyclic Redundancy Check:CRC)というコードを付加して、各セグメント全体をチェックする方式を採用することも考えられる。
反転パターン格納部40は、後述するポインタ予測部50により、ポインタのビットパターンのうち一及び/又は複数箇所のビットを反転させるビットパターン(以下、反転パターンと称す)を格納するROM(read-only memory)等である。
ここで、反転パターンの組み合わせ数は、ポインタのビット幅をnビットとし、ポインタのビットパターンのうち反転させようとするビット位置の個数をm個(ビット)とすると、次式(1)で表わせる。
〔式1〕
(反転パターンの組み合わせ数)=
=()/(m!)
=n!/((n−m)!・m!) ・・・(1)
すなわち、反転パターンは、例えば、ポインタのビット幅を16ビットとし、ポインタのビットパターンのうち一箇所のビットを反転させるビットパターンとしては、図3に示すように、16通りのビットパターンがある。
また、反転パターンは、例えば、ポインタのビット幅を16ビットとし、ポインタのビットパターンのうちニ箇所のビットを反転させるビットパターンとしては、図4に示すように、120通りのビットパターンがある。
このように、反転パターンは、図5に示すように、ポインタのビット幅や、ポインタのビットパターンのうち反転させようとするビット位置の個数に対応して、反転パターンの組み合わせ数が異なる。特に、反転パターンの組み合わせ数は、反転させようとするビット位置の個数がポインタのビット幅(ビット数)の半分以下において個数が増加するにつれて増加する傾向にあり、半分を超えてからは個数が増加するにつれて減少する傾向にある。
これに対し、反転パターン格納部40は、反転パターンの組み合わせの全ての反転パターンを格納することにより、エラーポインタの全てのビット位置におけるビットエラーに対応することができるのであるが、その分、ROM等のメモリー容量が必要となる。
このため、伝送装置100は、設計思想に応じて、エラーポインタの修復を可能とするビット数を設定し、反転パターン格納部40に必要最低限の反転パターンを格納することが好ましい。例えば、ポインタのビット幅を16ビットとし、ポインタのビットパターンのうち反転させようとするビット位置を一箇所及びニ箇所とした場合に、反転パターン格納部40は、図3及び図4に示すように、16通り及び120通りの全136通りの反転パターンを格納することになる。
ポインタ予測部50は、エラーポインタのビットパターン及び反転パターンの排他的論理和(XOR)を演算し、当該エラーポインタに対して、真のポインタを含むポインタの候補(以下、ポインタ候補と称す)を算出する回路である。
また、ポインタ候補格納部60は、ポインタ予測部50により算出されたポインタ候補を格納するRAM(random-access memory)等である。
ここで、ポインタ候補は、エラーポインタのビットパターンと反転パターンとに基づき、次式(2)で表わせる。
〔式2〕
(ポインタ候補)=(エラーポインタのビットパターン)XOR(反転パターン)・・・(2)
すなわち、ポインタ予測部50は、例えば、エラーポインタの値が「0x0010番地(16進数)」であり、反転パターンが図3に示すビットパターンである場合には、図6に示すように、16通りのポインタ候補を算出し、ポインタ候補格納部60に格納する。
また、ポインタ予測部50は、例えば、エラーポインタの値が「0x0010番地(16進数)」であり、反転パターンが図4に示すビットパターンである場合には、図7に示すように、120通りのポインタ候補を算出し、ポインタ候補格納部60に格納する。
ポインタ検証部70は、複数のポインタ候補のうち一のポインタ候補を選択し、当該一のポインタ候補が示すポインタ格納領域11aのアドレスを特定する。また、ポインタ検証部70は、特定したアドレス(以下、予測アドレスと称す)のポインタ格納領域11aに格納された前ポインタ(以下、関連ポインタと称す)とエラーポインタが格納されたポインタ格納領域11aのアドレスとの一致の有無を判定する回路である。
ポインタ復元部80は、ポインタ検証部70により一致ありと判定した場合に、エラーポインタを、一致した関連ポインタが格納されるポインタ格納領域11aのアドレス(予測アドレス)であるポインタ候補に変換する。
次に、本実施形態に係る伝送装置100による処理手順について、図8を用いて説明する。なお、以下の説明においては、図2に示す第5のセグメントにおける次ポインタのビットパターンにビットエラーが生じ、連結すべき第7のセグメントにおけるポインタ格納領域11aのアドレスが不明な場合を想定して説明する。また、エラーポインタの値は、「0x0010番地(16進数)」であるものとして説明する。
まず、誤り検出部30は、パリティチェックを行ない、ポインタのビットパターンに生じたビットエラーを検出した場合に(ステップS1)、ポインタにビットエラーが生じたことをポインタ予測部50に通知する(ステップS2)。この場合に、ポインタ予測部50は、エラーポインタの値(ここでは、「0x0010番地(16進数)」の2進数)と、当該エラーポインタが格納されたポインタ格納領域11aのアドレス(ここでは、「0x0010番地(16進数)」の2進数)が入力される。
ポインタ予測部50は、ポインタに生じたビットエラーのビット位置を一箇所(ビットエラー数を1)と仮定して(ステップS3)、反転パターン格納部40から対応する反転パターン(ここでは、図3に示す反転パターン)を読み出す(ステップS4)。
そして、ポインタ予測部50は、エラーポインタのビットパターン(ここでは、図6に示すエラーポインタ)及び反転パターン(ここでは、図3に示す反転パターン)の排他的論理和を演算し、ポインタ候補(ここでは、図6に示すポインタ候補)を算出する。
そして、ポインタ予測部50は、算出したポインタ候補のリストを作成し(ステップS5)、ポインタ候補リストをポインタ候補格納部60に書き込む(ステップS6)。また、ポインタ予測部50は、エラーポインタに対する真のポインタがポインタ候補リストに含まれているかの検証の指令を、ポインタ検証部70に出力する(ステップS7)。この場合に、ポインタ検証部70は、エラーポインタが格納されたポインタ格納領域11aのアドレス(ここでは、「0x0010番地(16進数)」の2進数)が入力される。
ポインタ検証部70は、ポインタ候補格納部60に格納されたポインタ候補(ここでは、図6に示す16通りのポインタ候補)のうち、一のポインタ候補(ここでは、第1行目(第0ビット反転)のポインタ候補)を選択する(ステップS8)。また、ポインタ検証部70は、当該一のポインタ候補(ここでは、第1行目のポインタ候補)が示すポインタ格納領域11aのアドレス(ここでは、「0x0011番地(16進数)」)を特定する。
そして、ポインタ検証部70は、インターフェース20を介して、特定した予測アドレスのポインタ格納領域11aに格納された前ポインタ(関連ポインタ)を参照する。また、ポインタ検証部70は、関連ポインタとエラーポインタが格納されたポインタ格納領域11aのアドレスとの一致の有無を判定する(ステップS9)。なお、ここでは、予測アドレス「0x0011番地(16進数)」に対応するメモリー空間11がデータ格納領域11bであるために、ポインタ検証部70は、関連ポインタを参照することができず、一致なしと判定する。
ステップS9において、一致なしと判断した場合には、ポインタ検証部70は、ポインタ候補格納部60に格納された全てのポインタ候補に対して、検証を完了したか否か(他のポインタ候補の有無)を判断する(ステップS10)。
ステップS10において、他のポインタ候補が存在しないと判断した場合には、ポインタ検証部70は、新規のポインタ候補リストの作成の指令を、ポインタ予測部50に出力する(ステップS11)。
ポインタ予測部50は、ポインタ検証に使用した現ポインタ候補リストを作成するうえで対象にしたビットエラー数に対して、1を加算して(ステップS12)、前述したステップS4に戻る。なお、現ポインタ候補リストを作成するうえで対象にしたビットエラー数が1である場合には、ビットエラー数を2とし、ステップS4において、ポインタ予測部50は、図4に示す反転パターンを反転パターン格納部40から読み出すことになる。また、ステップS5において、ポインタ予測部50は、図7に示すエラーポインタ及び図4に示す反転パターンの排他的論理和を演算し、図7に示すポインタ候補を算出して、新規のポインタ候補リストを作成することになる。
また、ステップS10において、他のポインタ候補が存在すると判断した場合には、前述したステップS8に戻る。
なお、ここでは、図6に示す16通りのポインタ候補のうち、第1行目のポインタ候補を検証したものであり、他のポインタ候補(ここでは、第2行目から第16行目までのポインタ候補)が存在するために、ステップS8に戻ることになる。この場合に、ステップS8では、ポインタ検証部70が、検証した現ポインタ候補をインクリメントして、ポインタ候補格納部60に格納された次のポインタ候補(ここでは、第2行目のポインタ候補)を選択する。
以下、ポインタ検証は、関連ポインタとエラーポインタが格納されたポインタ格納領域11aのアドレスとが一致するまで、又は他のポインタ候補が無くなるまで、ステップS8、ステップS9及びステップS10を繰り返すことになる。
具体的には、図2において、図6に示す第2行目(第1ビット反転)のポインタ候補が示す予測アドレスが「0x0012番地(16進数)」の場合には、関連ポインタを参照することができず、ポインタ検証部70が一致なしと判定する。
また、図2において、図6に示す第3行目(第2ビット反転)のポインタ候補が示す予測アドレスが「0x0014番地(16進数)」の場合には、ポインタ検証部70は、関連ポインタとして「0x000B番地(16進数)」を参照する。しかし、関連ポインタ「0x000B番地(16進数)」とエラーポインタが格納されたポインタ格納領域11aのアドレス「0x0010番地(16進数)」とが不一致のため、ポインタ検証部70は、一致なしと判定することになる。
また、図2において、図6に示す第4行目(第3ビット反転)のポインタ候補が示す予測アドレスが「0x0018番地(16進数)」の場合には、ポインタ検証部70は、関連ポインタとして「0x0010番地(16進数)」を参照する。この場合には、関連ポインタ「0x0010番地(16進数)」とエラーポインタが格納されたポインタ格納領域11aのアドレス「0x0010番地(16進数)」とが一致するため、ポインタ検証部70は、一致ありと判定することになる。
そして、前述したステップS9において、一致ありと判断した場合には、ポインタ検証部70は、関連ポインタとエラーポインタが格納されたポインタ格納領域11aのアドレスとが一致したことを、ポインタ復元部80に通知する(ステップS13)。この場合に、ポインタ復元部80は、一致した関連ポインタが格納されるポインタ格納領域11aのアドレスであるポインタ候補(ここでは、「0x0018番地(16進数)」の2進数)が入力される。また、ポインタ復元部80は、エラーポインタが格納されたポインタ格納領域11aのアドレス(ここでは、「0x0010番地(16進数)」の2進数)が入力される。
ポインタ復元部80は、ポインタ検証部70から入力された、ポインタ格納領域11aのアドレス(ここでは、「0x0010番地(16進数)」)に基づき、メモリー空間11における該当場所を特定する。また、ポインタ復元部80は、該当場所に格納されるエラーポインタ(ここでは、「0x0010番地(16進数)」)を、一致した関連ポインタのポインタ格納領域11aのアドレスであるポインタ候補(ここでは、「0x0018番地(16進数)」)に変換する(ステップS14)。そして、エラーポインタから真のポインタへの復元を完了する。
以上のように、本実施形態に係る伝送装置100は、複数のセグメント間を連結するポインタに生じたビットエラーを正しい値に復元し、チェーンメモリーのリンク切れを修復することができるという作用効果を奏する。特に、伝送装置100は、図9に示すように、リンク切れを検出したチェーンにおける、データ格納領域11bに格納されたパケットを破棄する(装置によっては、他のキューのチェーンを含めてメモリー全体を初期化する)ことなく、リンク切れを修復できる。
また、本実施形態に係る伝送装置100は、従来の装置と比較して、チェーンメモリーのリンク切れを修復するために必要な処理時間が短時間であり、処理が高速であるという作用効果を奏する。
具体的には、従来の装置において、メモリー全体を初期化するために要する処理時間は、全ワード数と1ワードあたりの書き込み時間との乗算時間(初期化時間=(全ワード数)×(1ワードあたりのライト時間))が必要である。例えば、メモリーに対して1ワードのリード又はライトに100ナノ秒を要する場合には、64kワード(ポインタのアドレスのビット幅が16ビットとなる)のメモリー空間11に対して、約6554マイクロ秒の処理時間が必要である。
これに対し、本実施形態に係る伝送装置100は、16ビットのポインタアドレスにおけるニ箇所のビットエラーを救済する場合のポインタ候補数が、136通り(16通りと120通りの和)であり、メモリー10に対して最大136回のリードでよいことなる。
すなわち、伝送装置100は、ポインタ検証部70による一のポインタ候補の検証時間を、従来装置によるメモリーリードに要する時間(100ナノ秒)のニ倍の200ナノ秒としても、最大(全てのポインタ候補を検証した場合)で27.2マイクロ秒しか掛からない。このため、本実施形態に係る伝送装置100は、従来の装置による初期化のみの処理時間(約6554マイクロ秒)と比較しても、処理が高速であることがわかる。
また、本実施形態に係る伝送装置100は、チェーンメモリーのリンク切れを修復するために必要な処理時間が、チェーンメモリーの長さに依存しないものである。これに対し、図10に示すように、双方向ポインタの構成を有するメモリー10は、チェーンメモリーのテール(Tail)から前ポインタを順に参照して遡ることにより、リンク切れを起こしているポインタを格納するポインタ格納領域10aに辿りつくことができる。しかしながら、この方法では、チェーンメモリーの長さが極端に長い場合に、リンク切れを起こしているポインタを格納するポインタ格納領域10aに辿りつくまでに、長時間を要することになる。
例えば、16Mワードのメモリー空間11を、16ワード単位に1M(100万)個のセグメントに分割し、ビットエラーを検出した時点で、チェーンメモリーの長さが2万個のセグメントを占有していた場合を想定する。この場合に、図10に示すように、チェーンメモリーのテールから遡る方法では、19999回のメモリーリードと判定処理とが必要となる。
これに対し、本実施形態に係る伝送装置100は、図5(c)に示すように、ニ箇所のビットエラーを救済する場合のポインタ候補数が、300通り(24通りと276通りの和)であり、メモリー10に対して最大300回のリードと判定処理とでよいことなる。
また、本実施形態に係る伝送装置100は、例えば、ECC(error check and correct:エラー訂正機能)付きのメモリーのようなメモリーリソースを必要とせず、複雑な符号理論を用いていないために、簡単なロジックにて実現が可能である。
特に、ECC付きメモリーは、一箇所のビットエラーに対して検出及び訂正することができ、二箇所のビットエラーに対してビットエラーを検出することができる(訂正はできない)が、三箇所以上のビットエラーに対して検出及び訂正することができない。これに対し、本実施形態に係る伝送装置100は、複数箇所のビットエラーに対して、対応する反転パターンを反転パターン格納部40に格納しておけば、訂正可能な個数に制限はないという作用効果を奏する。
なお、本実施形態に係る伝送装置100は、図3及び図4に示す全136通りの反転パターンを反転パターン格納部40に格納する例を示したが、図3に示す16通りの反転パターンと共に、図11に示す各16通りの反転パターンを適宜組み合わせて格納してもよい。
なお、図11(a)に示す反転パターンは、図3に示す反転パターンに対してビットを反転させるビット位置の上位にあるビットに対しても反転させるビットパターンを示している。また、図11(b)に示す反転パターンは、図3に示す反転パターンに対してビットを反転させるビット位置の下位にあるビットに対しても反転させるビットパターンを示している。また、図11(c)に示す反転パターンは、図3に示す反転パターンに対してビットを反転させるビット位置の上位及び下位にあるビットに対しても反転させるビットパターンを示している。
これにより、宇宙線によるメモリエラーが隣り合うビットで生じる可能性が高い場合を想定し、反転パターン格納部40に格納する反転パターン数を抑制しつつ、真のポインタとなるポインタ候補を算出するための反転パターンが格納される確率を高めることができる。
また、本実施形態に係る伝送装置100は、ポインタ検証部70が、ポインタ候補リストに基づき、真のポインタを導出していたが、このポインタ候補リストには、真のポインタに明らかに該当しない、検証不要なデータ格納領域11bのアドレスも含まれている。そこで、データ格納領域11bのアドレスをポインタ候補リストに含まないようにすることが好ましい。
すなわち、各セグメントが2のn乗のワードで構成されている場合に、ビット位置の第0ビットから第n−1ビットの値が1であるポインタ候補は、ポインタ格納領域11aのアドレスに該当しないため、ポインタ予測部50が、このポインタ候補を削除することが好ましい。
例えば、各セグメントが4ワードで構成されている場合に、ビット位置の第0ビット及び/又は第1ビットの値が1であるポインタ候補は、ポインタ格納領域11aのアドレスに該当しないため、ポインタ予測部50が、このポインタ候補を削除することが好ましい。具体的には、図6において、第1行目(第0ビット反転)及び第2行目(第1ビット反転)のポインタ候補を削除し、図7において、第1行目(第1ビット反転、第0ビット反転)から第29行目(第15ビット反転、第1ビット反転)までのポインタ候補を削除する。
また、本実施形態に係る伝送装置100は、予め、反転パターン格納部40に反転パターンを格納しているが、図12に示すように、反転パターン格納部40の替わりに、反転パターン生成部90を備える構成としてもよい。
反転パターン生成部90は、ポインタ予測部50からの指令(ビットエラー数)に基づき、既存の組み合わせ生成アルゴリズム等(「M.Beeler, R.W Gosper and R.Schroeppel」等による)を用いて、対応する反転パターンを生成し、ポインタ予測部50に出力する。これにより、反転パターン生成部90は、反転パターン格納部40に予め格納する反転パターンに対する伝送装置100の設計思想に応じた制限が無く、エラーポイントのビットエラー数に対して、柔軟に対応することができるという作用効果を奏する。
[付記] 以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1) メモリー空間が複数のセグメントに領域分けされ、任意のセグメントから連結される他のセグメントを特定する情報である次ポインタ及び前記任意のセグメントを連結する他のセグメントを特定する情報である前ポインタを格納するポインタ格納領域、並びにデータを格納するデータ格納領域を各セグメントに有するチェーンメモリーと、前記次ポインタに生じたビットエラーを検出する誤り検出部と、前記ビットエラーが生じた次ポインタのビットパターンと前記ビットエラーの候補となる一又は複数箇所のビットを反転させるビットパターンとの排他的論理和を演算し、真の次ポインタを含む次ポインタ候補を算出するポインタ予測部と、前記次ポインタ候補のうち一の次ポインタ候補を選択し、当該一の次ポインタ候補が示す前記ポインタ格納領域のアドレスを特定すると共に、当該アドレスの前記ポインタ格納領域に格納された前ポインタが示す前記ポインタ格納領域のアドレスと前記ビットエラーが生じた次ポインタが格納された前記ポインタ格納領域のアドレスとの一致の有無を判定するポインタ検証部と、前記ポインタ検証部により一致ありと判定した場合に、前記ビットエラーが生じた次ポインタを、前記一致した前ポインタが格納されるポインタ格納領域のアドレスである前記次ポインタ候補に変換するポインタ復元部と、を備えている伝送装置。
(付記2) 前記次ポインタのうちビットエラーの候補となる一及び/又は複数箇所のビットを反転させるビットパターンを格納する反転パターン格納部を備えていることを特徴とする伝送装置。
(付記3) 前記次ポインタのうちビットエラーの候補となる一及び/又は複数箇所のビットを反転させるビットパターンを生成する反転パターン生成部を備えていることを特徴とする伝送装置。
(付記4) 前記反転パターン格納部が、前記次ポインタのビットパターンのうち一箇所のビットを反転させるビットパターンと、当該ビットパターンに対して前記ビットを反転させるビット位置の上位及び/又は下位にあるビットを反転させるビットパターンとを格納していることを特徴とする伝送装置。
(付記5) 前記反転パターン格納部が、前記次ポインタの一箇所のビットを反転させるビットパターンと、前記次ポインタの二箇所のビットを反転させるビットパターンとからなる反転パターンを格納していることを特徴とする伝送装置。
(付記6) 前記各セグメントが2のn乗のワードで構成されている場合に、前記ポインタ予測部が、前記次ポインタ候補のうち、ビット位置の第0ビットから第n−1ビットまでの値が1であるポインタ候補を削除することを特徴とする伝送装置。
(付記7) メモリー空間が複数のセグメントに領域分けされ、任意のセグメントから連結される他のセグメントを特定する次ポインタ及び前記任意のセグメントを連結する他のセグメントを特定する前ポインタを格納するポインタ格納領域、並びにデータを格納するデータ格納領域を各セグメントに有するチェーンメモリーのリンク切れ修復方法であって、前記次ポインタに生じたビットエラーを検出する誤り検出ステップと、前記ビットエラーが生じた次ポインタのビットパターンと前記ビットエラーの候補となる一又は複数箇所のビットを反転させるビットパターンとの排他的論理和を演算し、真の次ポインタを含む次ポインタ候補を算出するポインタ予測ステップと、前記次ポインタ候補のうち一の次ポインタ候補を選択し、当該一の次ポインタ候補が示す前記ポインタ格納領域のアドレスを特定すると共に、当該アドレスの前記ポインタ格納領域に格納された前ポインタが示す前記ポインタ格納領域のアドレスと前記ビットエラーが生じた次ポインタが格納された前記ポインタ格納領域のアドレスとの一致の有無を判定するポインタ検証ステップと、前記ポインタ検証ステップにより一致ありと判定した場合に、前記ビットエラーが生じた次ポインタを、前記一致した前ポインタが格納されるポインタ格納領域のアドレスである前記次ポインタ候補に変換するポインタ復元ステップと、を有することを特徴とするリンク切れ修復方法。
(付記8) 前記次ポインタの一及び/又は複数箇所のビットを反転させるビットパターンを生成する反転パターン生成ステップを有することを特徴とするリンク切れ修復方法。
(付記9) 前記ポインタ検証ステップにより一致なしと判定した場合に、前記ポインタ検証ステップが、前記次ポインタ候補のうち他の次ポインタ候補を選択し、当該他の次ポインタ候補が示す前記ポインタ格納領域のアドレスを特定すると共に、当該アドレスの前記ポインタ格納領域に格納された前ポインタが示す前記ポインタ格納領域のアドレスと前記ビットエラーが生じた次ポインタが格納された前記ポインタ格納領域のアドレスとの一致の有無を判定するステップを有することを特徴とするリンク切れ修復方法。
(付記10) 前記反転パターン生成ステップが、前記次ポインタの一箇所のビットを反転させるビットパターンを生成するステップを有することを特徴とするリンク切れ修復方法。
(付記11) 前記ポインタ検証ステップにより、前記次ポインタ候補の全ての次ポインタ候補において一致なしと判定した場合に、前記反転パターン生成ステップが、前記次ポインタの二箇所のビットを反転させるビットパターンを生成するステップを有することを特徴とするリンク切れ修復方法。
10 メモリー
10a ポインタ格納領域
11 メモリー空間
11a ポインタ格納領域
11b データ格納領域
12 キュー
12a 低優先キュー
12b 高優先キュー
20 インターフェース
30 誤り検出部
40 反転パターン格納部
50 ポインタ予測部
60 ポインタ候補格納部
70 ポインタ検証部
80 ポインタ復元部
90 反転パターン生成部
100 伝送装置

Claims (6)

  1. メモリー空間が複数のセグメントに領域分けされ、任意のセグメントから連結される他のセグメントを特定する情報である次ポインタ及び前記任意のセグメントを連結する他のセグメントを特定する情報である前ポインタを格納するポインタ格納領域、並びにデータを格納するデータ格納領域を各セグメントに有するチェーンメモリーと、
    前記次ポインタに生じたビットエラーを検出する誤り検出部と、
    前記ビットエラーが生じた次ポインタのビットパターンと前記ビットエラーの候補となる一又は複数箇所のビットを反転させるビットパターンとの排他的論理和を演算し、真の次ポインタを含む次ポインタ候補を算出するポインタ予測部と、
    前記次ポインタ候補のうち一の次ポインタ候補を選択し、当該一の次ポインタ候補が示す前記ポインタ格納領域のアドレスを特定すると共に、当該アドレスの前記ポインタ格納領域に格納された前ポインタが示す前記ポインタ格納領域のアドレスと前記ビットエラーが生じた次ポインタが格納された前記ポインタ格納領域のアドレスとの一致の有無を判定するポインタ検証部と、
    前記ポインタ検証部により一致ありと判定した場合に、前記ビットエラーが生じた次ポインタを、前記一致した前ポインタが格納されるポインタ格納領域のアドレスである前記次ポインタ候補に変換するポインタ復元部と、
    を備えている伝送装置。
  2. 前記請求項1に記載の伝送装置において、
    前記次ポインタのうちビットエラーの候補となる一及び/又は複数箇所のビットを反転させるビットパターンを格納する反転パターン格納部を備えていることを特徴とする伝送装置。
  3. 前記請求項1に記載の伝送装置において、
    前記次ポインタのうちビットエラーの候補となる一及び/又は複数箇所のビットを反転させるビットパターンを生成する反転パターン生成部を備えていることを特徴とする伝送装置。
  4. 前記請求項2に記載の伝送装置において、
    前記反転パターン格納部が、前記次ポインタのビットパターンのうち一箇所のビットを反転させるビットパターンと、当該ビットパターンに対して前記ビットを反転させるビット位置の上位及び/又は下位にあるビットを反転させるビットパターンとを格納していることを特徴とする伝送装置。
  5. 前記請求項1乃至4のいずれかに記載の伝送装置において、
    前記各セグメントが2のn乗のワードで構成されている場合に、前記ポインタ予測部が、前記次ポインタ候補のうち、ビット位置の第0ビットから第n−1ビットまでの値が1であるポインタ候補を削除することを特徴とする伝送装置。
  6. メモリー空間が複数のセグメントに領域分けされ、任意のセグメントから連結される他のセグメントを特定する次ポインタ及び前記任意のセグメントを連結する他のセグメントを特定する前ポインタを格納するポインタ格納領域、並びにデータを格納するデータ格納領域を各セグメントに有するチェーンメモリーのリンク切れ修復方法であって、
    前記次ポインタに生じたビットエラーを検出する誤り検出ステップと、
    前記ビットエラーが生じた次ポインタのビットパターンと前記ビットエラーの候補となる一又は複数箇所のビットを反転させるビットパターンとの排他的論理和を演算し、真の次ポインタを含む次ポインタ候補を算出するポインタ予測ステップと、
    前記次ポインタ候補のうち一の次ポインタ候補を選択し、当該一の次ポインタ候補が示す前記ポインタ格納領域のアドレスを特定すると共に、当該アドレスの前記ポインタ格納領域に格納された前ポインタが示す前記ポインタ格納領域のアドレスと前記ビットエラーが生じた次ポインタが格納された前記ポインタ格納領域のアドレスとの一致の有無を判定するポインタ検証ステップと、
    前記ポインタ検証ステップにより一致ありと判定した場合に、前記ビットエラーが生じた次ポインタを、前記一致した前ポインタが格納されるポインタ格納領域のアドレスである前記次ポインタ候補に変換するポインタ復元ステップと、
    を有することを特徴とするリンク切れ修復方法。
JP2009024946A 2009-02-05 2009-02-05 伝送装置及びリンク切れ修復方法 Expired - Fee Related JP5356852B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009024946A JP5356852B2 (ja) 2009-02-05 2009-02-05 伝送装置及びリンク切れ修復方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009024946A JP5356852B2 (ja) 2009-02-05 2009-02-05 伝送装置及びリンク切れ修復方法

Publications (2)

Publication Number Publication Date
JP2010182086A true JP2010182086A (ja) 2010-08-19
JP5356852B2 JP5356852B2 (ja) 2013-12-04

Family

ID=42763642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009024946A Expired - Fee Related JP5356852B2 (ja) 2009-02-05 2009-02-05 伝送装置及びリンク切れ修復方法

Country Status (1)

Country Link
JP (1) JP5356852B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01251230A (ja) * 1988-03-31 1989-10-06 Toshiba Corp プログラム変換システム
JPH0895867A (ja) * 1994-09-28 1996-04-12 Fuji Facom Corp 制御演算装置の記憶領域管理方法
JP2002175211A (ja) * 2000-12-07 2002-06-21 Sharp Corp データ管理システムおよびデータ管理方法
JP2004348451A (ja) * 2003-05-22 2004-12-09 Fujitsu Ltd ポインタのリンクのチェック回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01251230A (ja) * 1988-03-31 1989-10-06 Toshiba Corp プログラム変換システム
JPH0895867A (ja) * 1994-09-28 1996-04-12 Fuji Facom Corp 制御演算装置の記憶領域管理方法
JP2002175211A (ja) * 2000-12-07 2002-06-21 Sharp Corp データ管理システムおよびデータ管理方法
JP2004348451A (ja) * 2003-05-22 2004-12-09 Fujitsu Ltd ポインタのリンクのチェック回路

Also Published As

Publication number Publication date
JP5356852B2 (ja) 2013-12-04

Similar Documents

Publication Publication Date Title
KR102143353B1 (ko) 메모리 소자로부터 액세스된 데이터의 오류를 정정하는 장치 및 방법
JP3234130B2 (ja) 誤り訂正符号復号化方法およびこの方法を用いる回路
US8880980B1 (en) System and method for expeditious transfer of data from source to destination in error corrected manner
US8127212B2 (en) System and method for determining the fault-tolerance of an erasure code
JP4648255B2 (ja) 情報処理装置および情報処理方法
KR101801075B1 (ko) 데이터를 판독하고 기록하기 위한 방법, 장치 및 시스템
US9246515B2 (en) Error correction code block having dual-syndrome generator, method thereof, and system having same
CN101615145B (zh) 一种提高存储器数据缓存可靠性的方法和装置
US20050132259A1 (en) Error correction method and system
KR20100111680A (ko) 메모리 어레이의 에러 수정 방법
US20140026022A1 (en) Cyclic redundancy check generation via distributed time multiplexed linear feedback shift registers
US9548761B2 (en) Coding and decoding of error correcting codes
US7607071B2 (en) Error correction using iterating generation of data syndrome
US3218612A (en) Data transfer system
JP2009259113A (ja) 不揮発性メモリ管理装置
JP5356852B2 (ja) 伝送装置及びリンク切れ修復方法
CN111464258B (zh) 一种数据校验方法、装置、计算设备及介质
US20080229174A1 (en) Error detection in a communications link
US9400715B1 (en) System and method for interconnecting storage elements
JP2020135391A (ja) メモリシステム
CN115269258A (zh) 一种数据恢复的方法和系统
WO2018165943A1 (zh) 存储控制器、数据处理芯片及数据处理方法
CN114691414A (zh) 一种校验块生成方法及一种数据恢复方法
CN109213722B (zh) 一种基于fpga的内存控制方法、装置、设备及介质
JP4829376B2 (ja) 情報処理装置および情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110902

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: 20130820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130829

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees