JP5585725B2 - 中継装置、及び復旧方法 - Google Patents

中継装置、及び復旧方法 Download PDF

Info

Publication number
JP5585725B2
JP5585725B2 JP2013510784A JP2013510784A JP5585725B2 JP 5585725 B2 JP5585725 B2 JP 5585725B2 JP 2013510784 A JP2013510784 A JP 2013510784A JP 2013510784 A JP2013510784 A JP 2013510784A JP 5585725 B2 JP5585725 B2 JP 5585725B2
Authority
JP
Japan
Prior art keywords
unit
error
areas
data
area
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.)
Expired - Fee Related
Application number
JP2013510784A
Other languages
English (en)
Other versions
JPWO2012144041A1 (ja
Inventor
真 清水
秀紀 菅井
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
Original Assignee
Fujitsu 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 filed Critical Fujitsu Ltd
Publication of JPWO2012144041A1 publication Critical patent/JPWO2012144041A1/ja
Application granted granted Critical
Publication of JP5585725B2 publication Critical patent/JP5585725B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing

Description

本発明は、データを中継する技術に関する。
近年インターネットの急速な普及に伴って、データ通信サービスは飛躍的に発展しており、今や、IP(Internet Protocol) パケットに代表されるパケットによるデータ通信が主流となりつつある。また、データ通信サービスの中でも、特に、音声や動画像データの伝送などのようにリアルタイム性が強く要求されるサービスに対する需要は非常に高まっている。このため、データ通信が行われるネットワークでルータやスイッチなどのノードとして使用される中継装置において、データ通信速度の高速化による大容量化、通信の高信頼性化は顕著である。
上記中継装置のなかには、データのカプセル化(分割/再構築)機能や、データの遅延、帯域制御などの通信品質を確保するためのQoS(Quality of Service)機能などを持つものがある。カプセル化、及びデータの送信タイミングの管理には、データ本体を保存するための記憶装置が必須である。この記憶装置は以降「パケットバッファ」と呼ぶことにする。
パケットバッファは、通常、或る単位領域(アドレス領域)で分割され、その単位領域がポインタ(PTR)と呼ぶデータで管理される。そのようにポインタでパケットバッファを管理する方法としては、チェーン管理方法が知られている。
チェーン管理方法では、チャネル毎に、データの保存に未使用の単位領域が割り当てられ、データの連続性はポインタで管理される。そのような管理では、チャネル毎に、そのチャネルに割り当てられたポインタ、そのポインタが割り当てられた順序を特定できるようにする必要がある。このため、それらを特定できる情報(チェーン管理情報)は、チェーン管理方法では必須となっている。ポインタが割り当てられた順序は、普通、ポインタ毎に、そのポインタの次に割り当てられたポインタを表すデータ(リンク情報)により管理される。
チェーン管理情報は、所定の記憶装置に保存される。その記憶装置へのデータの書き込み、及びデータの読み出しにはエラーが発生する可能性がある。チェーン管理情報のリンク情報中のデータにエラーが発生すると、そのエラーが発生したデータが表すポインタの他に、そのポイント以降に連なるポインタも特定できなくなる。このため、エラーは、パケットバッファに解放されない単位領域(メモリリーク)が多く発生する可能性がある。近年のデバイスの進化による高密集積化、低駆動電力化により、エラーは、発生し易くなる傾向にある。
このメモリリークが発生すると、パケットバッファで使用可能な容量は開放されない単位領域分だけ少なくなる。このため、中継装置のバックプレッシャによるスループット性能劣化やパケットバッファのオーバーフローによるデータロスが発生し易くなる。また、エラーが発生したデータが表すポインタが割り当てられたチャネルでは、そのポインタを特定できなくなるため、データの伝送(中継)を行えなくなる。
昨今では、クラウド技術などの発達によりネットワークインフラストラクチャの信頼性、及び通信品質が今まで以上に求められている。上記のようなスループット性能劣化やデータロス等は通信品質に対する悪影響が大きい。
このこともあり、従来の中継装置でも、記憶装置へのアクセスにおけるエラー監視が行われている。しかし、ECC(Error Correcting Code)等を用いてエラー監視を行っても、エラーが発生したデータのエラー訂正を行えるとは限らない。これは、エラー発生によるメモリリークに必ずしも対応できないことを意味する。
訂正が不可能なエラー発生によるメモリリークは、中継装置をリセットすることで解消することができる。しかし、中継装置をリセットする場合、中継装置が動作しない時間が生じ、パケットバッファに保存されているデータは全て失われる。この結果、データ通信サービスの質は大きく低下することになる。このことを考慮するならば、訂正が不可能なエラー発生によるメモリリークに自立的に対応できるようにすることが重要である。
なお、メモリリークへの対応方法としては、パケットバッファの単位領域毎に、その単位領域の使用時間を計時することにより、一定時間以上、使用されている単位領域を開放するという方法が考えられる。しかし、このような対応方法は現実的ではない。その理由は、中継装置で扱うチャネルの数は非常に大きく、且つチャネル毎に求められる通信速度が異なるのが普通だからである。つまり制御が非常に複雑になり、且つその制御のために使用するリソースも膨大となるのが普通だからである。
特開平9−244948号公報 特開2000−200210号公報 特開2002−57712号公報 特開2007−141193号公報
本発明を適用した1システムは、中継装置において、記憶装置に発生した、訂正が不可能なエラー発生によるメモリリークに自立的に対応できるようにする技術を提供することを目的とする。
本発明を適用した1システムでは、記憶装置を複数の単位領域に分割し、チャネルが指定されたデータを受信した場合に、該複数の単位領域のなかで未使用の単位領域を割り当て、該割り当てた単位領域を用いて該データの送信タイミングの調整、及び該データの変換のうちの少なくとも一つを行う。そのために、記憶装置で使用中の単位領域の領域数をチャネル毎に計数する領域数計数手段と、データを読み出すべき単位領域が特定できないエラーを検出するエラー検出手段と、エラー検出手段がエラーを検出した場合に、該エラーが検出されたチャネルについて領域数計数手段が計数していた領域数を保存する保存手段と、エラー検出手段がエラーを検出した後、記憶装置の複数の単位領域のなかで未使用となっている単位領域を特定する領域特定手段と、領域特定手段が特定している未使用の単位領域の数が、保存手段が保存していた領域数と一致した場合に、領域特定手段が特定している未使用の単位領域についての割り当てを無効とするエラー制御手段と、を具備する。
本発明を適用した1システムでは、記憶装置に発生した、訂正が不可能なエラー発生によるメモリリークに自立的に対応することができる。
本実施形態による中継装置が適用されたネットワークの構成を説明する図である。 本実施形態による中継装置が適用されたADMの回路構成を説明する図である。 パケット/セグメントマッパの回路構成を説明する図である。 第1のマッパのより詳細な回路構成を説明する図である。 ライトポインタ制御テーブルの構成を説明する図である。 Link List RAMに格納される内容を説明する図である。 容量監視部に格納される内容を説明する図である。 Free PTR RAMに格納される内容を説明する図である。 リードポインタ制御テーブルの構成を説明する図である。 PTR返却監視フラグ部に格納される内容を説明する図である。 パケットバッファへのデータの格納方法を説明する図である。 第1のマッパに入力されるセグメント、及び第1のマッパから出力されるパケットのシーケンス例を説明する図である。 Free PTR RAMの内容変化を説明する図である。 Free PTR RAMの内容変化を説明する図である。 ライトポインタ制御テーブルの内容変化を説明する図である。 ライトポインタ制御テーブルの内容変化を説明する図である。 Link List RAMの内容変化を説明する図である。 Link List RAMの内容変化を説明する図である。 パケットバッファの格納内容変化を説明する図である。 パケットバッファの格納内容変化を説明する図である。 リードポインタ制御テーブルの内容変化を説明する図である。 リードポインタ制御テーブルの内容変化を説明する図である。 容量監視部の格納内容変化を説明する図である。 容量監視部の格納内容変化を説明する図である。 PTR返却監視フラグ部の格納内容変化を説明する図である。 PTR返却監視フラグ部の格納内容変化を説明する図である。 ライト処理のフローチャートである。 リード処理のフローチャートである。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図1は、本実施形態による中継装置が適用されたネットワークの構成を説明する図である。
図1には、ネットワークとして、2つのWAN(Wide Area Network)1(1−1、1−2)、及び1つのLAN(Local Area Network)3を表している。各WAN1は、複数のADM(Add-Drop Multiplexer)10を用いたリング型のSonet/SDH(Synchronous Optical NETwork/Synchronous Digital Hierarchy)ネットワークである。これら2つのWAN1−1、1−2は、1つのADM10により接続されている。LAN3は、複数のL(Layer)2スイッチ31を用いたリング型のイーサネット(登録商標)ネットワークである。WAN1−1とLAN3とは、WAN1−1のADM10とLAN3のL2スイッチ31によって接続されている。本実施形態による中継装置は、ADM10に搭載される形で実現されている。なお、本実施形態による中継装置は、L2スイッチ31上に搭載させることもできる。
WAN1に配置された各ADM10は、WAN1に信号(データ)を出し入れする。ADM10は、ASW(Aggregate SW)5に接続されたノード6からの信号をWAN1−1に入れ、WAN1−1のASW5に転送すべき信号は取り出してASW5に転送する。ADM10は、LAN3のL2スイッチ31との間でも同様の転送処理を行う。L2スイッチ31は、例えばノード7をLAN3に接続する。
ADM10は、LAN3のL2スイッチ31との間は信号をパケットの形で送受信する。パケットを受信すると、ADM10は、パケットをカプセル化し、そのカプセル化によって得られたセグメントをWAN1−1に入れる。L2スイッチ31に転送すべきセグメントを受信したADM10は、受信したセグメントからパケットを構築し、L2スイッチ31に転送する。本実施形態による中継装置は、WAN1−1とLAN3間の信号の送受信を実現させるためにADM10に搭載されている。
図2は、ADMの回路構成を説明する図である。図2において、点線矢印はSonet/SDHのフレームの流れを表し、実線矢印はパケットの流れを表している。
ADM10は、図2に表すように、4つの終端カード110−1、110−2、130−1、130−2、SSW(Sonet SW)160、PSW(Packet SW)150、及びPE−M(Packet Engine Mapper)170を備える。
2つの終端カード110(110−1、110−2)はWAN1用であり、各終端カード110は、4つのポート111(111−0〜111−3)、各ポート111と接続されたインターフェース(IF)112、フレーマ(Framer)113を備える。フレーマ113は、インターフェース112を介して、各ポート111が受信したフレームを入力し、SSW160に出力する。また、SSW160から入力したフレームを、インターフェース112を介して各ポート111に出力することにより、WAN1−1に挿入する。
SSW160は、Sonet/SDHのパスレベルのクロスコネクトスイッチである。SSW160は、終端カード110−1、或いは110−2から出力された各フレームの方路切替を行ってPE−M170に出力する。また、SSW170は、PE−M170から出力された各フレームの方路切替を行って終端カード110−1或いは110−2に出力する。
2つの終端カード130−1、130−2は、LAN3用であり、各終端カード130は、4つのポート131(131−0〜131−3)、各ポート131と接続されたインターフェース(IF)132、IG/EG(Ingress/Egress)133を備えている。PSW150からのパケットは、IG/EG133、インターフェース132およびポート131を介してLAN3(L2スイッチ31)へ送信される。また、LAN3(L2スイッチ31)からのパケットは、各ポート131、インターフェース132およびIG/EG133を介してPSW150に出力される。 PSW150は、PE−M170と2つの終端カード130−1、130−2間におけるパケットの方路切替を行う。
PE−M170は、LAN3とWAN1間のデータ通信を可能とするために、データのカプセル化(分割/再構築)を行う。カプセル化のために、Sonet/SDHマッパ171、及びパケット/セグメントマッパ172を備える。
パケット/セグメントマッパ172は、PSW150(LAN3側)から入力したパケットをセグメントに分割してSonet/SDHマッパ171に出力する。また、パケット/セグメントマッパ172は、Sonet/SDHマッパ171から入力したセグメントを用いてパケットを構築し、構築したパケットをPSW150に出力する。Sonet/SDHマッパ171は、SSW160(WAN1側)から入力したセグメントをパケット/セグメントマッパ172に出力し、パケット/セグメントマッパ172から入力したセグメントのマッピングを行い、SSW160を介して出力すべき終端カード110に出力させる。
図3は、パケット/セグメントマッパの回路構成を説明する図である。
パケット/セグメントマッパ172は、図3に表すように、第1のマッパ310、及び第2のマッパ330を備える。第1のマッパ310は、セグメントからパケットを構築するものである。Sonet/SDHマッパ171から出力されたセグメントは、入力インターフェース(Input Interface)301、及び入力処理部(Input Processing Part)302を介して第1のマッパ310に入力される。第1のマッパ310から出力されたパケットは、出力処理部(Output Processing Part)303、及び出力インターフェース(Output Interface)304を介してPSW150に入力される。
第2のマッパ330は、パケットをセグメントに分割するものである。PSW150から出力されたパケットは、入力インターフェース321、及び入力処理部322を介して第2のマッパ330に入力される。第2のマッパ330から出力されたセグメントは、出力処理部323、及び出力インターフェース324を介してSSW160に入力される。第1のマッパ310は、ライト制御回路311、リード制御回路312、ページ制御回路313、パケットバッファ314、及びパケットバッファインターフェース315を備える。
パケットバッファ314は、セグメントからパケットを構築するために用いられるメモリである。図5Gに表すように、パケットバッファ314は、或る単位領域(アドレス領域)で分割され、その単位領域がポインタ(PTR)と呼ぶデータで管理される。図5G中に表記の「PTR#0」〜「PTR#n」はそれぞれ、異なるポインタを表している。パケットバッファインターフェース(以降「PBI」と略記)315は、パケットバッファ314へのアクセスを実現させるためのものである。以降、単位領域は「ポインタ」と表記し、ポインタを表すデータを「ポインタ値」或いは「ポインタの値」と表記する。
ライト制御回路311は、入力処理部302から入力したセグメントを書き込むべきパケットバッファ314のポインタを選択し、PBI315を介して、選択したポインタにセグメントを書き込む。リード制御回路312は、パケットバッファ314からセグメントを読み出すべきポインタを選択し、PBI315を介して、選択したポインタからセグメントを読み出す。ページ制御回路313は、リード制御回路312によるセグメントのパケットバッファ314からの読み出しを制御することにより、QoS制御等を実現させる。
ADM10が受信したセグメント及びパケットは、チャネルで管理され、セグメント、或いはパケットの形で受信したデータの優先度(通信速度)はチャネル毎に設定される。データの優先度は、データの送受信に用いられるポート、プロトコル、或いは予約等によって設定される。このようなことから、入力インターフェース301は、セグメントと共にチャネル番号を入力し、入力されたセグメントとチャネル番号はライト制御回路311に出力される。それにより、ページ制御回路313によるQoS制御は、チャネル単位で行われる。
ライト制御回路311は、メモリ311aを搭載し、そのメモリ311aには、ライトポインタ制御テーブルが格納される。そのライトポインタ制御テーブルは、チャネル毎に、セグメントを書き込むポインタを管理するためのものである。ライトポインタ制御テーブルには、図5Aに表すように、チャネル(チャネル番号)毎に、次のデータ(セグメント)を書き込むべきポインタの値(図5A中「Now PTR」と表記。以降「現ポインタ値」と呼ぶ)と、その次のデータ(セグメント)を書き込むべきポインタの値(図5A中「Nexr PTR」と表記。以降「次ポインタ値」と呼ぶ)とが格納される。
ページ制御回路313には、Link List RAM313a、及びFree PTR RAM313bが搭載されている。Link List RAM313aは、ポインタ単位でデータを読み出す順序、つまりデータの繋がりを管理するために用いられる。そのために、Link List RAM313aには、図5Bに表すように、ポインタ値毎に、そのポインタ値のポインタに格納されたデータの次のデータが格納されるポインタの値(図5B中「Next PTR」と表記。以降「次ポインタ値」と呼ぶ)が格納される。
Free PTR RAM313bは、ポインタのなかで未使用のポインタを管理するためにFIFO(First-In First-Out)として用いられる。Free PTR RAM313bには、図5Dに表すように、各アドレス(「add0」〜「addN」と表記)には未使用のポインタの値(「Free PTR」と表記)が格納される。
リード制御回路312は、メモリ312aを搭載し、そのメモリ312aには、リードポインタ制御テーブルが格納される。そのリードポインタ制御テーブルは、チャネル毎に、データを読み出すポインタを管理するためのものである。リードポインタ制御テーブルには、図5Eに表すように、チャネル(チャネル番号)毎に、次にデータ(セグメント)を読み出すべきポインタの値(図5E中「Read PTR」と表記)が格納される。
ライト制御回路311は、データ(セグメント)を入力すると、そのデータのチャネル番号を用いてメモリ311aのライトポインタ制御テーブルを参照し、そのデータを格納すべき現ポインタ値を読み出し、読み出した現ポインタ値のポインタにデータを書き込む。ライトポインタ制御テーブルのそのチャネル番号には、現ポインタ値として次ポインタ値を、次ポインタ値としてFree PTR RAM313bの先頭に格納されたポインタ値をそれぞれ格納する。Link List RAM313aの現ポインタ値と一致するポインタ値には、ライトポインタ制御テーブルの更新後の現ポインタ値を格納する。そのようにして、パケットバッファ314にポインタ単位で格納されたデータ(セグメント)はチャネル毎に追跡することが可能となっている。
リード制御回路312は、ページ制御回路313からデータを読み出すべきチャネルが指定される。チャネルが指定されたリード制御回路312は、メモリ312aのリードポインタ制御テーブルから指定されたチャネルのポインタ値を取得し、取得したポインタ値のポインタからデータを読み出す。リードポインタ制御テーブルの指定されたチャネルのポインタ値は、Link List RAM313aから読み出したポインタ値に更新する。Link List RAM313aからポインタ値を読み出すポインタ値は、パケットバッファ314からデータを読み出したポインタの値である。そのようなポインタ値をデータの読み出しに用いたポインタ値の代わりにリードポインタ制御テーブルに格納することにより、チャネル毎にデータをその格納順序に従って読み出すことができる。
第2のマッパ330は、ライト制御回路331、リード制御回路332、ページ制御回路333、パケットバッファ334、及びPBI335を備える。ライト制御回路331は、メモリ331aにライトポインタ制御テーブルを格納し、リード制御回路332は、メモリ332aにリードポインタ制御テーブルを格納する。ページ制御回路333は、Link List RAM333a、及びFree PTR RAM333bを搭載している。
第2のマッパ330では、ライト制御回路331は入力したパケットをパケットバッファ334に格納し、リード制御回路332はパケットバッファ334からパケットを読み出す。しかし、基本的に各部331〜334の機能は同じであるため、説明は省略する。
図4は、第1のマッパのより詳細な回路構成を説明する図である。
図4に表すように、第1のマッパ310のライト制御回路311は、ライト制御部311bを備え、リード制御回路312は、リード制御部312b、エラー(ERR)検出部312c、及びポインタ返却処理部312dを備えている。ページ制御回路333は、Link List RAM313a、及びFree PTR RAM313bの他に、復旧制御回路401、容量監視部402、及びQoS制御部403を備えている。図4では、PBI315は省略している。
Link List RAM313aは、上記のように、チャネル毎のパケットバッファ314からのデータの読み出しを実現するために用いられる。Link List RAM313aから読み出したポインタ値にエラーが発生した場合、そのポインタ値のポインタ、そのポインタ以降にデータが格納されたポインタが特定できなくなり、パケットバッファ314上にメモリリークが発生する。復旧制御回路401は、そのようなメモリリークに自立的に対応して復旧するためのものである。Link List RAM313aから読み出したポインタ値に発生したエラーは、リード制御回路312のエラー検出部312cによって検出される。
上記メモリリークとなるポインタは、開放(返却)されないため、使用中のままとなる。使用中のままとなるポインタの数は、エラーが検出されたポインタ値のポインタが割り当てられたチャネルでデータの格納に用いられているポインタの総数である。使用中となっているポインタは、開放されない限り、使用中の状態が維持される。本実施形態では、そのことに着目し、メモリリークによって開放されなくなったポインタを特定し開放することにより、自立的な復旧を行うようにしている。
容量監視部402は、上記のような復旧のために用意したものであり、チャネル毎に、使用中のポインタの数の計数に用いられる。このことから、図5Cに表すように、容量監視部402は、チャネル(チャネル番号)毎に、ポインタ数(図5Cでは「容量」と表記。以降「ポインタ総数」と呼ぶ)を保持する。
復旧制御回路401は、エラー(ERR)容量格納部411、PTR返却監視フラグ(Flag)部412、及び未返却PTR比較部413を備える。メモのエラー(ERR)容量格納部411は、ポインタ値の読み出しにエラーが発生したチャネルのポインタ総数の格納に用いられる。格納されるポインタ総数は、容量監視部402から取得される。
PTR返却監視フラグ(Flag)部412は、ポインタ毎に、返却が行われたか否かを特定するために用いられる。PTR返却監視フラグ(Flag)部412には、ポインタ(ポインタ値)毎に返却フラグが格納され、エラーの検出時、各ポインタの返却フラグの値は0にされ、各ポインタは全て未返却とされる。その後、返却が行われたポインタの返却フラグの値は返却を表す値(例えば1)に更新される。
未返却PTR比較部413は、エラー容量格納部411に格納されたポインタ総数と、PTR返却監視フラグ部412で未返却と設定されている返却フラグ数の比較を行う。その比較結果、つまり両者が一致したか否かは、リード制御回路312のPTR返却処理部312dに通知される。
PTR返却処理部312dは、未返却PTR比較部413から一致が通知された場合、PTR返却監視フラグ部412を参照し、未返却を表す返却フラグのポインタ値を取得する。取得したポインタ値は、Free PTR RAM313bに書き込むことにより、ポインタ値を書き込んだポインタを返却する。
メモリリークによって未返却とならないポインタは、パケットバッファ314へのデータの書き込みに使用されることから、その返却フラグは返却を表す値に更新される。このため、エラー容量格納部411に格納されたポインタ総数と、PTR返却監視フラグ部412で未返却と設定されている返却フラグ数の一致は、メモリリークによって未返却とならない全てのポインタが1度は返却されたことを意味する。従って、それらが一致した時点で未返却となっているポインタは、メモリリークによって未返却のままとなっていることとなる。このため、そのように未返却となっているポインタを特定し、返却することにより、エラーによって使用中のままとなったポインタを全て開放することができる。
上記容量監視部402を設けたことにより、ライト制御回路311のライト制御部311bは、入力処理部302からデータ(セグメント)を入力した場合、図14に表すフローチャートに沿って処理を行う。図14を参照しつつ、ライト制御部311bの動作について詳細に説明する。
入力処理部302からデータ、及びチャネル番号を入力したライト制御部311bは、メモリ311aのライトポインタ制御テーブルから、そのチャネル番号の現ポインタ値を取得し(S11)、パケットバッファ314の、取得した現ポインタ値のポインタに入力したデータ(セグメント)を格納する(S12)。そのデータの格納を行う一方、ライトポインタ制御テーブルの更新(S13)、及びQoS制御部403への通知(S14)、を行う。その後、容量監視部402から、入力したチャネル番号のポインタ総数を取得し、取得したポインタ総数をインクリメントした値を新たなポインタ総数として容量監視部402に書き込む(S15)。
上記ライトポインタ制御テーブルの更新は、入力したチャネル番号の次ポインタ値を現ポインタ値に、次ポインタ値をFree PTR RAM313bから取得したポインタ値にそれぞれ書き換えることで行われる。QoS制御部403には、パケットバッファ314にデータを書き込んだチャネルの番号が通知される。その通知により、QoS制御部403は、チャネル毎に、データ伝送の優先度に従ってリード制御回路312にデータの読み出しを指示する。
一方、リード制御回路312及びページ制御回路313の復旧制御回路401は、リード制御回路312のリード制御部312aのQoS制御部403からのチャネル指定により、図15に表すフローチャートに沿って処理を行う。図15を参照しつつ、リード制御回路312及びページ制御回路313の復旧制御回路401の各動作について詳細に説明する。
リード制御回路312のリード制御部312bは、QoS制御部403からデータの読み出しの対象となるチャネル番号を取得すると、そのチャネル番号を用いてメモリ312aのリードポインタ制御テーブルを参照し、そのチャネル番号のポインタ値を読み出す(S21)。次に、リード制御部312bは、パケットバッファ314の読み出したポインタ値のポインタからデータを読み出す(S22)。
データを読み出した後は、リード制御部312bは、次にLink List RAM313bを参照し、上記ポインタ値のデータとして格納されているポインタ値を読み出す(S23)。エラー検出部312cは、Link List RAM313bから読み出されたポインタ値に発生しているエラーを、そのポインタ値と共に読み出されるECC(Error Correcting Code)等を用いて検出し、その検出結果をリード制御部312bに通知する。それにより、リード制御部312bは、エラー検出部312cからの通知により、読み出されたポインタ値にエラーが検出されたか否かを判定する。
リード制御部312bは、エラーが検出されたと判定した場合、ライト制御回路311のライト制御部311bに取得したチャネル番号を通知して、ライト制御部311bから、ライトポインタ制御テーブルのそのチャネル番号の現ポインタ値を取得する。リード制御部312bは、取得した現ポインタ値を、リードポインタ制御テーブル中の取得したチャネル番号のポインタ値として格納する(S25)。そのようなリードポインタ制御テーブルの更新により、ポインタ値の読み出しにエラーが発生したチャネルでは、エラー発生時点以降のデータのパケットバッファ314への書き込みに対応できることとなる。
一方、リード制御部312bは、指定されたチャネル番号のポインタ総数を容量監視部402から取得して、取得したポインタ総数をエラー容量格納部411に格納し(S26)、容量監視部402のそのチャネル番号のポインタ総数は0にクリアする(S27)。また、リード制御部312bは、PTR返却監視フラグ部412の各ポインタの返却フラグの値を0にする(S29)。
Link List RAM313bからのポインタ値の読み出しにエラーが検出された場合、リード制御部312bは、上記のようにして、復旧のための初期設定、及びエラーが検出されたポインタ値のポインタが割り当てられたチャネルでのデータ伝送を可能にする再構築を行う。それにより、自立的な復旧が可能となり、メモリリークが直接、影響するチャネルでは、迅速なデータ伝送の再開が可能となる。
なお、エラーは、復旧の途中で発生する場合がありうる。このことから、リード制御部312bは実際には、現在、エラー容量格納部411に格納されているポインタ総数を参照し、そのポインタ総数が1以上であった場合、そのポインタ総数と、容量監視部402から取得したポインタ総数とを加算した値をエラー容量格納部411に格納するようにしている。
リード制御部312bは、読み出されたポインタ値にエラーが検出されないと判定した場合、そのポインタ値をリードポインタ制御テーブルの指定されたチャネル番号のデータとして格納する(S30)。また、リード制御部312bは、パケットバッファ314からデータを読み出したポインタの値をPTR返却処理部312dに通知して、PTR返却処理部312dにそのポインタを返却させる(S31)。
エラー容量格納部411には、エラーへの復旧が終了した後、ポインタ総数として負の値が格納される。リード制御部312bは、エラー容量格納部411に格納されたポインタ総数が0より大きいか否か判定する(S32)。そのポインタ総数が0より大きいと判定した場合(S32のYes)、リード制御部312bは、PTR返却監視フラグ部412のパケットバッファ314からデータを読み出したポインタの値の返却フラグを返却にセットする(S33)。そのポインタ総数が0未満と判定した場合(S32のNo)、リード制御部312bは、ここで一連の処理を終了する。
復旧制御回路401の未返却PTR比較部413は、リード制御部312bによる返却フラグの値の変更が行われた後、エラー容量格納部411のポインタ総数と、PTR返却監視フラグ部412で未返却と設定されている返却フラグ数とを比較する。その比較により、未返却PTR比較部413は、ポインタ総数と返却フラグ数が一致したか否かをPTR返却処理部312dに通知する。その通知により、PTR返却処理部312dは、ポインタ総数と返却フラグ数が一致するか否か判定する(S34)。それらが一致すると判定した場合(S34のYes)、PTR返却処理部312dは、PTR返却監視フラグ部412を参照し、未返却を表す返却フラグのポインタ値を取得して、取得したポインタ値を、Free PTR RAM313bに書き込む(S35)。そのポインタ値の書き込みにより、対応するポインタを返却した後、リード制御部312b、復旧制御回路401が実行する一連の処理が終了する。
ここで、図6〜図13Bを参照し、上記のようなリード制御回路312及びページ制御回路313の復旧制御回路401により行われる、エラーの発生によるメモリリークへの対応について具体的に説明する。
図6は、第1のマッパに入力されるセグメント、及び第1のマッパから出力されるパケットのシーケンス例を説明する図である。図6において、「CH0」〜「CH3」はそれぞれチャネル番号が0〜3のチャネルを表し、それらのシンボル列に続くハイフンと数字は、対応するチャネルのデータが入力、或いは出力される順番を表している。それにより、例えば「CH0−1」はチャネル番号が0のデータのなかで1番目に入力、或いは出力されるデータを表している。
図7A〜図13Bは、図6に表すようにセグメントの入力、及びパケットの出力が行われる場合において、Free PTR RAM313b、ライトポインタ制御テーブル、Link List RAM313a、パケットバッファ314、リードポインタ制御テーブル、容量監視部402、PTR返却監視フラグ部412の内容の変化を抜粋して表した説明図である。図7A及び図7Bは、Free PTR RAM313bの内容変化を説明する図である。図8A及び図8Bは、ライトポインタ制御テーブルの内容変化、図9A及び図9Bは、Link List RAM313aの内容変化、図10A及び図10Bは、パケットバッファ314の内容変化、図11A及び図11Bは、リードポインタ制御テーブルの内容変化、図12A及び図12Bは、容量監視部402の内容変化、図13A及び図13Bは、PTR返却監視フラグ部412の内容変化をそれぞれ説明する図である。図7A〜図13Bにおいて、「PTR0」〜「PTR15」はそれぞれ異なるポインタ値を表している。図13A及び図13Bにおいて、「返却」は返却を表す値が設定された返却フラグ、「未返却」は未返却を表す値が設定された返却フラグ、にそれぞれ相当する。
ここでは便宜的に、時刻t0では、Free PTR RAM313b、ライトポインタ制御テーブルはそれぞれ図7A及び図8Aに表すような内容を想定している。Link List RAM313a、パケットバッファ314、リードポインタ制御テーブル、容量監視部402、PTR返却監視フラグ部412にはそれぞれ、データは格納されていないと想定している。容量監視部402に格納された「0」は、対応するチャネルのポイント総数が0であることを表している。エラーは時刻t5におけるLink List RAM313aからのポインタ値の読み出し時に検出されたものと想定、具体的にはポインタ値PTR4がエラーによってポインタ値PTR12と読み出されたものと想定している。また、理解を容易とするために、1セグメントは1パケットのデータ量、つまり1セグメントは1パケットに対応すると想定し、パケットバッファ314は16ポインタに分割されていると想定することにより、実際より大幅に簡略化している。
そのエラー検出により、パケットバッファ314のPTR0、PTR4、PTR8、及びPTR9は返却できなくなる(図9A、図10A)。PTR返却監視フラグ部412の各返却フラグは未返却を表すものとされる(図13A)。時刻t5のとき、容量監視部404のチャネル番号0のポインタ総数は4である。このため、エラー容量格納部411には4が格納される。
時刻t17のとき、PTR返却監視フラグ部412の返却フラグのなかで未返却を表すものは4つとなる(図13B)。このため、未返却を表す返却フラグの数はエラー容量格納部411に格納されたポインタ総数と一致する。この結果、時刻t18では、返却フラグが未返却を表すポインタは返却されることとなる。
なお、本実施形態では、Link List RAM313aからのポインタ値の読み出しにおけるエラーに対応するようにしているが、別の場所で発生したエラーにも対応できるようにしても良い。また、本実施形態を適用したADM10は、QoS制御(受信したデータの送信タイミングの調整)、及びデータ変換(セグメントからパケット、及びパケットからセグメントへの変換)の両方を行うようになっている。本実施形態は、QoS制御、及びデータ変換のうちの一方のみを行うノードに適用しても良い。本実施形態は、記憶装置を用いてデータを一時的に保存し中継する中継装置に幅広く適用することができる。データ変換については、上記のようなものに限定されるものではない。

Claims (4)

  1. 記憶装置を複数の単位領域に分割し、チャネルが指定されたデータを受信した場合に、該複数の単位領域のなかで未使用の単位領域を割り当て、該割り当てた単位領域を用いて該データの送信タイミングの調整、及び該データの変換のうちの少なくとも一つを行う中継装置において、
    前記記憶装置で使用中の単位領域の領域数を前記チャネル毎に計数する領域数計数手段と、
    前記データを読み出すべき単位領域が特定できないエラーを検出するエラー検出手段と、
    前記エラー検出手段がエラーを検出した場合に、該エラーが検出されたチャネルについて前記領域数計数手段が計数していた領域数を保存する保存手段と、
    前記エラー検出手段がエラーを検出した後、前記記憶装置の複数の単位領域のなかで未使用となっている単位領域を特定する領域特定手段と、
    前記領域特定手段が特定している未使用の単位領域の数が、前記保存手段が保存していた領域数と一致した場合に、前記領域特定手段が特定している未使用の単位領域についての割り当てを無効とするエラー制御手段と、
    を具備することを特徴とする中継装置。
  2. 請求項1記載の中継装置であって、
    前記保存手段が前記領域数を保存した後、前記領域数計数手段に、前記エラーが検出されたチャネルについて前記領域数計数手段が計数していた領域数をクリアさせるリセット手段と、
    前記エラー制御手段が前記割り当てを無効とした単位領域を、前記割り当てが可能である未使用の単位領域として開放する領域開放手段と、
    更に具備することを特徴とする中継装置
  3. 請求項2記載の中継装置であって、
    前記保存手段は、前記領域開放手段による開放が行われる前に再度、前記エラー検出手段がエラーを検出した場合、保存している領域数に、該エラーが検出されたチャネルについて前記領域数計数手段が計数していた領域数加算して該保存している領域数を更新し、
    前記領域特定手段は、前記領域開放手段による開放が行われる前に再度、前記エラー検出手段がエラーを検出した場合、前記記憶装置の複数の単位領域のなかで未使用となっている単位領域の特定を初めから行う
    ことを特徴とする中継装置
  4. 記憶装置を複数の単位領域に分割し、チャネルが指定されたデータを受信した場合に、該複数の単位領域のなかで未使用の単位領域を割り当て、該割り当てた単位領域を用いて該データの送信タイミングの調整、及び該データの変換のうちの少なくとも一つを行う中継装置に実行させる復旧方法であって、
    前記記憶装置で使用中の単位領域の領域数を前記チャネル毎に計数し、
    前記データを読み出すべき単位領域が特定できないエラーが検出された場合に、該エラーが検出されたチャネルを対象チャネルとし、該対象チャネルで計数していた領域数を第1の領域数として保存し、
    前記エラーを検出した後、前記記憶装置の複数の単位領域のなかで未使用となっている単位領域の特定を行い、
    該特定している未使用の単位領域の数が前記第1の領域数と一致した場合に、該未使用の単位領域を全て開放する、ことを特徴とする復旧方法。
JP2013510784A 2011-04-20 2011-04-20 中継装置、及び復旧方法 Expired - Fee Related JP5585725B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/059763 WO2012144041A1 (ja) 2011-04-20 2011-04-20 中継装置、及び復旧方法

Publications (2)

Publication Number Publication Date
JPWO2012144041A1 JPWO2012144041A1 (ja) 2014-07-28
JP5585725B2 true JP5585725B2 (ja) 2014-09-10

Family

ID=47041190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013510784A Expired - Fee Related JP5585725B2 (ja) 2011-04-20 2011-04-20 中継装置、及び復旧方法

Country Status (3)

Country Link
US (1) US9465701B2 (ja)
JP (1) JP5585725B2 (ja)
WO (1) WO2012144041A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9762536B2 (en) 2006-06-27 2017-09-12 Waterfall Security Solutions Ltd. One way secure link
IL180020A (en) 2006-12-12 2013-03-24 Waterfall Security Solutions Ltd Encryption -and decryption-enabled interfaces
IL180748A (en) * 2007-01-16 2013-03-24 Waterfall Security Solutions Ltd Secure archive
US9635037B2 (en) 2012-09-06 2017-04-25 Waterfall Security Solutions Ltd. Remote control of secure installations
US9021313B2 (en) * 2012-11-21 2015-04-28 Microsoft Technology Licensing, Llc Priority-assignment interface to enhance approximate computing
US9419975B2 (en) 2013-04-22 2016-08-16 Waterfall Security Solutions Ltd. Bi-directional communication over a one-way link
IL235175A (en) 2014-10-19 2017-08-31 Frenkel Lior Secure desktop remote control
IL250010B (en) 2016-02-14 2020-04-30 Waterfall Security Solutions Ltd Secure connection with protected facilities

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102325A (ja) * 1997-09-26 1999-04-13 Nec Eng Ltd メモリ監視方式
JPH11331260A (ja) * 1998-05-18 1999-11-30 Nec Corp 通信装置および通信方法、並びに記録媒体
JP2000236334A (ja) * 1999-02-16 2000-08-29 Nec Corp フレーム組み立て回路及びフレーム組み立て方法
JP2000267905A (ja) * 1999-03-17 2000-09-29 Matsushita Electric Ind Co Ltd ファイル管理方式
JP2002009827A (ja) * 2000-06-19 2002-01-11 Nec Eng Ltd ルータおよびメモリリーク保護方法
JP2008160705A (ja) * 2006-12-26 2008-07-10 Fujitsu Ltd フレーム転送方法及び装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689707A (en) 1995-12-04 1997-11-18 Ncr Corporation Method and apparatus for detecting memory leaks using expiration events and dependent pointers to indicate when a memory allocation should be de-allocated
JP2000200210A (ja) 1999-01-05 2000-07-18 Nec Eng Ltd メモリ管理装置
US6993027B1 (en) * 1999-03-17 2006-01-31 Broadcom Corporation Method for sending a switch indicator to avoid out-of-ordering of frames in a network switch
JP2002033749A (ja) * 2000-07-18 2002-01-31 Fujitsu Ltd バッファ装置およびスイッチング装置
JP2002057712A (ja) 2000-08-10 2002-02-22 Nec Corp パケットメモリのメモリリーク復旧方法およびバッファ処理装置
US6918005B1 (en) * 2001-10-18 2005-07-12 Network Equipment Technologies, Inc. Method and apparatus for caching free memory cell pointers
US7236456B2 (en) * 2002-05-09 2007-06-26 Broadcom Corporation Using shadow Mcast/Bcast/Dlf counter and free pointer counter to balance unicast and Mcast/Bcast/Dlf frame ratio
US6883082B2 (en) * 2002-12-19 2005-04-19 Lsi Logic Corporation Central dynamic memory manager
WO2004066571A1 (ja) * 2003-01-20 2004-08-05 Fujitsu Limited ネットワークスイッチ装置およびネットワークスイッチ方法
JP2007141193A (ja) 2005-11-14 2007-06-07 Movell Software:Kk ワイヤレスデバイスのリアルタイム性に適用するメモリリーク検出手法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102325A (ja) * 1997-09-26 1999-04-13 Nec Eng Ltd メモリ監視方式
JPH11331260A (ja) * 1998-05-18 1999-11-30 Nec Corp 通信装置および通信方法、並びに記録媒体
JP2000236334A (ja) * 1999-02-16 2000-08-29 Nec Corp フレーム組み立て回路及びフレーム組み立て方法
JP2000267905A (ja) * 1999-03-17 2000-09-29 Matsushita Electric Ind Co Ltd ファイル管理方式
JP2002009827A (ja) * 2000-06-19 2002-01-11 Nec Eng Ltd ルータおよびメモリリーク保護方法
JP2008160705A (ja) * 2006-12-26 2008-07-10 Fujitsu Ltd フレーム転送方法及び装置

Also Published As

Publication number Publication date
JPWO2012144041A1 (ja) 2014-07-28
US20140040679A1 (en) 2014-02-06
WO2012144041A1 (ja) 2012-10-26
US9465701B2 (en) 2016-10-11

Similar Documents

Publication Publication Date Title
JP5585725B2 (ja) 中継装置、及び復旧方法
US11249688B2 (en) High-speed data packet capture and storage with playback capabilities
EP1836815B1 (en) Dynamic and intelligent buffer management for san extension
US7167442B2 (en) Hitless protection switching
US9191280B2 (en) System, device, and method for a voiding bandwidth fragmentation on a communication link by classifying bandwidth pools
JP6962599B2 (ja) クライアントサービス送信方法および装置
US20080084898A1 (en) Exchange node and exchange node control method
US11681470B2 (en) High-speed replay of captured data packets
WO2020221224A1 (zh) 一种拥塞信息采集方法、系统、相关设备及计算机存储介质
CN103825841B (zh) 一种以太网报文排序方法及装置
WO2019047110A1 (zh) 一种光传送网中时延测量的方法、装置和系统
CN108282416B (zh) 一种基于数据帧的调度方法和装置
US8862797B2 (en) Reducing delay and delay variation in a buffer in network communications
US9236968B2 (en) Communication device and communication method
KR101353183B1 (ko) 시분할 멀티플렉싱 의사회선을 포함하는 패킷 교환 네트워크에서 사용을 위한 네트워크 노드 및 시분할 의사회선을 통해 시분할 멀티플렉싱 접속을 유지하는 방법
US20090290592A1 (en) Ring buffer operation method and switching device
JP4673697B2 (ja) デジタル遅延バッファ及びこれに関連する方法
US20170093673A1 (en) Transmission apparatus and transmission system
CN113746616A (zh) 数据处理方法、装置、设备和存储介质
KR100757900B1 (ko) Eos 전송장치에서의 vcg 관리방법
JP2009278250A (ja) データ伝送装置および帯域割当方法
CN116346734A (zh) 数据包丢包率统计方法、设备以及计算机可读存储介质
CN109996129A (zh) 一种业务数据处理方法及装置
WO2013026378A1 (zh) 嵌入控制信道信息传输方法和装置
CN106559159A (zh) 电路仿真业务时钟同步检测方法及装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140603

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140707

R150 Certificate of patent or registration of utility model

Ref document number: 5585725

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees