(57)【要約】【課題】本発明は、パケットデータの処理遅延を少なくすることができ、データの連続性が正しく復元できたかを確実にチェックできるポインタのリンクのチェック回路を提供することを目的とする。【解決手段】第１のデータから演算した演算結果を第１のデータのポインタにより示される次の第２のデータに対応させて記憶する記憶手段４０と、記憶手段から読み出した第１のデータから演算した演算結果と該読み出した前記第１のデータのポインタにより示される次のデータに対応させて記憶された演算結果を比較する比較手段４６とを有する。【選択図】      図３
2004348451.tif 000002
【特許請求の範囲】
【請求項１】
ポインタのリンクのチェック回路において、
第１のデータから演算した演算結果を該第１のデータのポインタにより示される次の第２のデータに対応させて記憶する記憶手段と、
該記憶手段から読み出した前記第１のデータから演算した演算結果と該読み出した前記第１のデータのポインタにより示される次の第２のデータに対応させて記憶された演算結果を比較する比較手段と、を有することを特徴とするポインタのリンクのチェック回路。
【請求項２】
ポインタのリンクのチェック回路において、
次に書き込むデータの書き込み先を示す第１ポインタと、前に書き込んだデータの書き込み先を示す第２ポインタとをデータに対応付けて記憶する記憶手段と、
該記憶手段からデータを読み出す際に用いたポインタと、該データに対応付けて記憶された第１ポインタにより示されるデータに対応して記憶された第２ポインタとを比較する比較手段と、を有することを特徴とするポインタのリンクのチェック回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ポインタのリンクのチェック回路に関し、特に、記憶装置上でアドレスのリンクチェーンを展開することにより形成されるリンクドリストの連続性チェックを行うポインタのリンクのチェック回路に関する。
【０００２】
【従来の技術】
近年、パーソナル・コンピュータ等の情報関連機器、通信設備の普及、発展が目覚しく、様々な機器設備にて記憶装置上でアドレスのリンクチェーンを展開してリスト構造を形成するリンクドリストが用いられている。
【０００３】
特に通信事業者向けの通信設備では、通信サービス品質（ＱＯＳ）の提供等の顧客サービス向上のために、記憶装置の故障や周辺環境の影響による記憶装置の誤動作を早期に発見し、問題解決を確実とすることが要求されている。
【０００４】
図１は、従来のリンクドリストを用いた記憶装置の一例のブロック構成図を示す。この記憶装置は例えば通信ネットワークのノード装置の入力バッファ等に適用される。
【０００５】
同図中、ＦＣＳ演算回路１０は、パケット入力に対してＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）演算を行い、生成したＦＣＳ値をパケットに付加する。ここでＦＣＳ演算とは、パリティ演算やＣＲＣ演算等を用いたデータの誤り検出アルゴリズムを指している。固定長分割回路１２は、ＦＣＳ値を含む入力パケットを固定長に分割する。ポインタ付与回路１４は、固定長分割された個々のデータに対しポインタ値を付与する。
【０００６】
ポインタ保持回路１６は、ポインタ付与回路１４の出力するポインタ値を一時的に保持する。パリティ演算回路１８は、固定長分割された個々のデータ及びポインタ付与回路１４の出力するポインタ値に対し故障検出用のパリティ演算を行う。
【０００７】
記憶装置２０は例えばＲＡＭで構成され、固定長分割された個々のデータと、ポインタ付与回路１４の出力するポインタ値と、パリティ演算回路１８の出力するパリティ値とが、ポインタ保持回路１６からのポインタ値（前回の書き込み時に生成された値）で指示されるアドレスに書き込まれる。上記のデータ分割と記憶装置の記録の様子を図２に示す。
【０００８】
記憶装置２０から読み出されたポインタ値は次の読み出しアドレスとして記憶装置２０に供給される。また、読み出された個々のデータはパケット組立回路２２でパケットに組み立てられる。組み立てられたパケットはＦＣＳ演算回路２２に供給されてＦＣＳ演算が行われ、得られたＦＣＳ値とパケットに含まれるＦＣＳ値との一致比較によりパケットが正常に再現されたかを確認したのち、パケットに含まれるＦＣＳ値を削除して出力される。また、パリティ演算回路２６は、記憶装置２０から読み出された個々のデータ及び読み出されたポインタ値のパリティ演算を行って、記憶装置２０から読み出されたパリティ値との一致比較により個々のデータ及びポインタ値の正常性、すなわち記憶装置２０の故障の有無を確認している。
【０００９】
以上の手順により、記憶装置２０に書き込まれるデータの一部であるポインタ値のリンクを利用してデータの連続性を保持することにより、記憶装置２０上に連続した未使用領域が無くてもデータを書き込みでき、読み出し時にデータの連続性を復元するとともに、データの連続性が正しく復元されたかを、ＦＣＳ演算により確認する。また、記憶装置２０から読み出された個々のデータは後続の回路に向けて出力される。
【００１０】
なお、セルバッファメモリにおけるデータの連続性をチェックするために、シーケンス番号生成カウンタでシーケンス番号を発生して、セルデータをセルバッファメモリに書き込む際にシーケンス番号をアドレス監視テーブルに書き込み、セルデータをセルバッファメモリから読み出される際にアドレス監視テーブルから読み出されるシーケンス番号をシーケンス番号確認カウンタでシーケンス番号の連続性を確認する方法が例えば、特許文献１に記載されている。
【００１１】
【特許文献１】
特開平１０−１２６４１６号公報
【００１２】
【発明が解決しようとする課題】
しかしながら、従来の回路構成ではポインタのリンクチェックをＦＣＳ演算に頼っているため、パケット単位のＦＣＳ演算回路１０と、記憶装置２０の読み出し後にパケットを組み立てる回路２２と、パケットが正しく組み立てられたかをＦＣＳ演算により確認するＦＣＳ演算回路２４が必須であり、パケット組み立て後、ＦＣＳ演算を行うために、パケットデータ毎の処理遅延が大きくなるという問題があった。
【００１３】
また、ＦＣＳ演算回路１０，２４におけるＦＣＳ演算アルゴリズムとしてパリティ演算を用いた場合、記憶装置２０の書き込み側アドレス、または、読み出し側アドレスのビット誤りによりパケットデータの一部が前後入れ替わった場合にも、これを検出することができないという問題があった。
【００１４】
本発明は、上記の点に鑑みなされたものであり、パケットデータの処理遅延を少なくすることができ、データの連続性が正しく復元できたかを確実にチェックできるポインタのリンクのチェック回路を提供することを目的とする。
【００１５】
【課題を解決するための手段】
請求項１に記載の発明は、第１のデータから演算した演算結果を該第１のデータのポインタにより示される次の第２のデータに対応させて記憶する記憶手段と、
該記憶手段から読み出した前記第１のデータから演算した演算結果と該読み出した前記第１のデータのポインタにより示される次の第２のデータに対応させて記憶された演算結果を比較する比較手段と、を有することにより、
回路規模を小さくするとともにパケットデータの処理遅延を少なくすることができ、データの連続性が正しく復元できたかを確実にチェックできる。
【００１６】
請求項２に記載の発明は、次に書き込むデータの書き込み先を示す第１ポインタと、前に書き込んだデータの書き込み先を示す第２ポインタとをデータに対応付けて記憶する記憶手段と、
該記憶手段からデータを読み出す際に用いたポインタと、該データに対応付けて記憶された第１ポインタにより示されるデータに対応して記憶された第２ポインタとを比較する比較手段と、を有することにより、
回路規模を小さくするとともにパケットデータの処理遅延を少なくすることができ、データの連続性が正しく復元できたかを確実にチェックできる。
【００１７】
【発明の実施の形態】
図３は、本発明のリンクドリストを用いた記憶装置の第１実施例のブロック構成図を示す。この記憶装置は例えば通信ネットワークのノード装置の入力バッファ等に適用される。
【００１８】
同図中、固定長分割回路３２は、パケット入力を固定長に分割する。ポインタ付与回路３４は、固定長分割された個々のデータに対しポインタ値を付与する。ポインタ保持回路３６は、ポインタ付与回路３４の出力するポインタ値を一時的に保持する。
【００１９】
パリティ演算回路３８は、固定長分割された個々のデータ及びポインタ付与回路３４の出力するポインタ値に対し故障検出及び連続性検出用のパリティ演算を行う。ここで得られたパリティはパリティ保持回路３９で一時的に保持されたのち記憶装置４０に供給される。
【００２０】
記憶装置４０は例えばＲＡＭで構成され、固定長分割された個々のデータと、ポインタ付与回路３４の出力するポインタ値（次の書き込みに使用される値）と、パリティ保持回路３９の出力するパリティ値（前回の書き込み時に生成された値）とが、ポインタ保持回路３６からのポインタ値（前回の書き込み時に生成された値）で指示されるアドレスに書き込まれる。つまり、個々のデータ及びポインタ値に対してパリティ値はずらして記憶装置４０に書き込まれる。
【００２１】
上記のデータ分割と記憶装置の記録の様子を図４に示す。図４において、パケットデータはデータＡ，Ｂ，Ｃ，Ｄに４分割され、記憶装置４０のアドレス＃０に、データＡと次の書き込みに使用される次ポインタ値＃２と前回の書き込み時に生成されたパリティ値が書き込まれる。また、アドレス＃２に、データＢと次の書き込みに使用される次ポインタ値＃５と前回の書き込み時に生成されたパリティ値＃０が書き込まれる。同様に、アドレス＃５に、データＣと次の書き込みに使用される次ポインタ値＃４と前回の書き込み時に生成されたパリティ値＃２が書き込まれ、アドレス＃４に、データＤと次の書き込みに使用される次ポインタ値＃６と前回の書き込み時に生成されたパリティ値＃５が書き込まれる。
【００２２】
記憶装置４０から前回読み出された次ポインタ値が読みだしアドレスとして記憶装置４０に与えられており、これにより記憶装置４０から読み出された次ポインタ値が次の読み出しアドレスとして記憶装置４０に供給される。
【００２３】
また、パリティ演算回路４２は、記憶装置４０から読み出された個々のデータ及び読み出された次ポインタ値のパリティ演算を行う。得られたパリティ値はパリティ保持回路４４で一時的に保持されたのち比較回路４６に供給される。比較回路４６は記憶装置４０から読み出されたパリティ値とパリティ保持回路４４で一時的に保持されたパリティ値（前回の書き込み時に生成された値）との一致比較を行う。
【００２４】
例えば、記憶装置４０のアドレス＃０から読み出されたデータＡ及び次ポインタ値＃２をパリティ演算回路４２で演算して得られたパリティ値＃０がパリティ保持回路４４から比較回路４６に供給されるタイミングで、記憶装置４０のアドレス＃２からパリティ値＃０が読み出されて比較回路４６に供給され、両パリティ値の一致比較が行われる。
【００２５】
これにより、個々のデータ及びポインタ値の正常性、すなわち記憶装置４０の故障の有無を確認すると共に、前回読み出されたパリティ値（前回の書き込み時に生成された値）と今回読み出された個々のデータ及びポインタ値の連続性を確認している。
【００２６】
つまり、個々のデータ及びポインタ値に対してパリティ値はずらして記憶装置に書き込まれているため、上記比較回路４６で不一致の場合には、記憶装置４０から読み出された個々のデータ及びポインタ値が異常であるか、または、今回読み出された個々のデータ及びポインタ値と前回読み出されたパリティ値との間に連続性がないということであり、このような誤りがあった場合にはリンクエラー信号を出力する。また、記憶装置４０から読み出された個々のデータは後続の回路に向けて出力される。
【００２７】
この実施例では、パケット組み立て後ＦＣＳ演算を行う必要がないため、データの処理遅延を削減することができ、回路規模を削減することができる。また、記憶装置４０の書き込み側アドレス、または、読み出し側アドレスのビット誤りによりパケットデータの一部が前後入れ替わった場合にも、これを検出することができる。
【００２８】
なお、上記実施例ではパリティ演算回路３８，４２を用いているが、データの正当性を確認できる誤り検出符号であれば何でもよく、例えばＣＲＣ演算でも同じ効果を得ることができる。また、記憶装置４０に書き込む個々のデータとパリティ演算結果のずれは１アドレスで説明したが、２アドレス以上ずれていても同じ効果を得ることができる。
【００２９】
図５は、本発明のリンクドリストを用いた記憶装置の第２実施例のブロック構成図を示す。この記憶装置は例えば通信ネットワークのノード装置の入力バッファ等に適用される。同図中、図３と同一部分には同一符号を付す。
【００３０】
図５において、固定長分割回路３２は、パケット入力を固定長に分割する。ポインタ付与回路３４は、固定長分割された個々のデータに対しポインタ値を付与する。ポインタ保持回路３６は、ポインタ付与回路３４の出力するポインタ値を一時的に保持する。ポインタ保持回路５０は、ポインタ保持回路３６の出力するポインタ値を更に一時的に保持されて記憶装置４０に供給される。
【００３１】
パリティ演算回路３８は、固定長分割された個々のデータ及びポインタ付与回路３４の出力するポインタ値に対し故障検出及び連続性検出用のパリティ演算を行う。ここで得られたパリティは記憶装置４０に供給される。
【００３２】
記憶装置４０は例えばＲＡＭで構成され、固定長分割された個々のデータと、ポインタ付与回路３４の出力する次ポインタ値（次の書き込みに使用される値）と、ポインタ保持回路５０の出力する前ポインタ値（前回の書き込みに使用された値）と、パリティ保持回路３９の出力するパリティ値（今回の値）とが、ポインタ保持回路３６からの現ポインタ値（前回の書き込み時に生成された値）で指示されるアドレスに書き込まれる。つまり、個々のデータ及び次ポインタ値に対して前ポインタ値がずらして記憶装置４０に書き込まれる。
【００３３】
上記のデータ分割と記憶装置の記録の様子を図６に示す。図６において、パケットデータはデータＡ，Ｂ，Ｃ，Ｄに４分割され、記憶装置４０のアドレス＃０に、データＡと次の書き込みに使用される次ポインタ値＃２と前回の書き込みに使用された前ポインタ値と今回のパリティ値＃０が書き込まれる。また、アドレス＃２に、データＢと次の書き込みに使用される次ポインタ値＃５と前回の書き込みに使用された前ポインタ値＃０と今回のパリティ値＃２が書き込まれる。同様に、アドレス＃５に、データＣと次の書き込みに使用される次ポインタ値＃４と前回の書き込みに使用された前ポインタ値＃２と今回のパリティ値＃５が書き込まれ、アドレス＃４に、データＤと次の書き込みに使用される次ポインタ値＃６と前回の書き込みに使用された前ポインタ値＃５と今回のパリティ値＃４が書き込まれる。
【００３４】
記憶装置４０からは前回読み出された次ポインタ値が読みだしアドレスとして与えられており、これにより読み出された次ポインタ値は次の読み出しアドレスとして記憶装置４０に供給されると共に、ポインタ保持回路５２で一時的に保持されたのち比較回路５４に供給される。
【００３５】
また、記憶装置４０から読み出された前ポインタ値が比較回路５４に供給され、比較回路５４は記憶装置４０から読み出された前ポインタ値とポインタ保持回路５２で保持された次ポインタ値との一致比較を行い、今回読み出された個々のデータの連続性を確認して、エラーがあった場合にはリンクエラー信号を出力する。
【００３６】
例えば、記憶装置４０のアドレス＃２を読み出す際にポインタ保持回路５２に保持されたアドレス＃２が比較回路５４に供給されるタイミングに、記憶装置４０のアドレス＃５から前ポインタ値＃２が読み出されて比較回路５４に供給され、両ポインタ値の一致比較が行われる。
【００３７】
また、パリティ演算回路４２は、記憶装置４０から読み出された個々のデータ及び読み出された次ポインタ値のパリティ演算を行って個々のデータ及びポインタ値の正常性、すなわち記憶装置４０の故障の有無を確認して、エラーがあった場合にはパリティエラー信号を出力する。また、記憶装置４０から読み出された個々のデータは後続の回路に向けて出力される。
【００３８】
この実施例では、パケット組み立て後ＦＣＳ演算を行う必要がないため、データの処理遅延を削減することができ、回路規模を削減することができる。また、記憶装置４０の書き込み側アドレス、または、読み出し側アドレスのビット誤りによりパケットデータの一部が前後入れ替わった場合にも、これを検出することができる。
【００３９】
なお、上記実施例では前ポインタ値そのものを記憶装置４０に書き込んでいるが、ポインタ保持回路５０，５２にパリティ演算機能やＣＲＣ演算機能を付け、その演算結果を記憶装置４０に書き込んでも同じ効果が得られる。
【００４０】
なお、記憶装置４０が請求項記載の記憶手段に対応し、比較回路４６，５４が比較手段に対応する。
【００４１】
【発明の効果】
上述の如く、請求項１に記載の発明によれば、回路規模を小さくするとともにパケットデータの処理遅延を少なくすることができ、データの連続性が正しく復元できたかを確実にチェックできる。
【００４２】
また、請求項２に記載の発明によれば、回路規模を小さくするとともにパケットデータの処理遅延を少なくすることができ、データの連続性が正しく復元できたかを確実にチェックできる。
【図面の簡単な説明】
【図１】従来のリンクドリストを用いた記憶装置の一例のブロック構成図である。
【図２】従来の構成におけるデータ分割と記憶装置の記録の様子を示す図である。
【図３】本発明のリンクドリストを用いた記憶装置の第１実施例のブロック構成図である。
【図４】第１実施例の構成におけるデータ分割と記憶装置の記録の様子を示す図である。
【図５】本発明のリンクドリストを用いた記憶装置の第２実施例のブロック構成図である。
【図６】第２実施例の構成におけるデータ分割と記憶装置の記録の様子を示す図である。
【符号の説明】
３２  固定長分割回路
３４  ポインタ付与回路
３６  ポインタ保持回路
３８，４２  パリティ演算回路
３９  パリティ保持回路
４０  記憶装置
４４  パリティ保持回路
４６，５４  比較回路
５０，５２  ポインタ保持回路
【図１】
2004348451.tif 000003
【図２】
2004348451.tif 000004
【図３】
2004348451.tif 000005
【図４】
2004348451.tif 000006
【図５】
2004348451.tif 000007
【図６】
2004348451.tif 000008