(57)【要約】【課題】  バッファの管理機能を改善するパケット伝送装置、パケットバッファ、及びパケット処理方法を提供する。【解決手段】  パケット伝送装置は、パケットを格納するバッファと、バッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けて管理するバッファ管理部と、パケットを、バッファ管理部の指示に従い、複数のグループのうち、パケットを受信した期間に対応するグループに属する記憶領域に書き込む書込制御部と、パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせるポインタ管理部と、ポインタを順次に参照し、ポインタが示すアドレスの記憶領域からパケットを読み出して送信する送信処理部とを有し、バッファ管理部は、各グループに対応する期間が到来したとき、当該グループに属する記憶領域のアドレスを、パケットの書き込み対象アドレスとして開放する。【選択図】図５
2015037249.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットを格納するバッファと、
前記バッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けて管理するバッファ管理部と、
前記パケットを、前記バッファ管理部の指示に従い、前記複数のグループのうち、前記パケットを受信した期間に対応するグループに属する記憶領域に書き込む書込制御部と、
前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせるポインタ管理部と、
前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信する送信処理部とを有し、
前記バッファ管理部は、前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放することを特徴とするパケット伝送装置。
【請求項２】
前記送信処理部は、前記複数のグループのうち、前記パケットを送信する期間に応じたグループに属する記憶領域から前記パケットを読み出して送信することを特徴とする請求項１に記載のパケット伝送装置。
【請求項３】
前記バッファ管理部は、前記複数のグループの各々について、前記複数の記憶領域のアドレスを、カウンタにより管理し、前記書込制御部に通知することを特徴とする請求項１または２に記載のパケット伝送装置。
【請求項４】
受信したパケットを格納するパケットバッファにおいて、
パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けられた複数の記憶領域を有し、
前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に記憶し、
前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスが、前記パケットの書き込み対象アドレスとして開放されることを特徴とするパケットバッファ。
【請求項５】
受信したパケットを格納するバッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分け、
前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に書き込み、
前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせ、
前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信し、
前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放することを特徴とするパケット処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、パケット伝送装置、パケットバッファ及びパケット処理方法に関する。
【背景技術】
【０００２】
通信需要の増加に伴い、パケットを転送するレイヤ２スイッチなどのパケット交換装置のスループットの向上が求められている。スループットを向上するため、パケットは、優先度や宛先などに応じて複数のフローに分かれて処理され、パケットを蓄積するバッファの管理手段が複雑化している。
【０００３】
例えば、パケットを格納するバッファを、リンクポインタによりリンクされた一連のポインタチェーンにより管理するチェーン管理方式が知られている。チェーン管理方式によると、パケットの書き込み対象となるアドレスのポインタを、ポインタチェーンから取得し、当該バッファからパケットが読み出された後、ポインタをポインタチェーンに返却する。
【０００４】
チェーン管理方式に関し、例えば特許文献１には、バッファ群ごとの空バッファチェインにリンク破壊が生じたとき、当該バッファ群をバッファ取得対象から除外し、一定時間経過後に空バッファチェインに再構成する点が開示されている。また、特許文献２には、シングルポインタ型バッファプールに対するシングルポインタ型バッファの取得時及び解放時に自動的にリンクを復旧する点が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２８５０１１号公報
【特許文献２】特開平１０−２５４７６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
チェーン管理方式は、空きバッファだけでなく、パケットの読み出し対象となるバッファの管理にも適用することができる。この場合、例えば、バッファにパケットを書き込むたびに、当該アドレスをポインタチェーンに登録することにより、パケットを読み出すとき、ポインタチェーンから、読み出し対象となるアドレスのポインタを取得できる。
【０００７】
しかし、この場合、ポインタチェーンを記憶するメモリに障害が発生すると、リンクポインタが読み出せないために、ポインタチェーンのリンクが途切れてしまう。したがって、読み出し対象となるアドレスのポインタが取得できないことにより、パケットの読み出しが不可能となる。これにより、ポインタが返却されないため、ポインタチェーンに登録された記憶領域のアドレスが開放されず、空きバッファとして利用できないという問題が生ずる。このため、パケットを格納する記憶領域が不足し、最終的には、例えば装置のリセットなどにより対処していた。
【０００８】
そこで本件は上記の課題に鑑みてなされたものであり、バッファの管理機能を改善するパケット伝送装置、パケットバッファ、及びパケット処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本明細書に記載のパケット伝送装置は、受信したパケットを格納するバッファと、前記バッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けて管理するバッファ管理部と、前記パケットを、前記バッファ管理部の指示に従い、前記複数のグループのうち、前記パケットを受信した期間に対応するグループに属する記憶領域に書き込む書込制御部と、前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせるポインタ管理部と、前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信する送信処理部とを有し、前記バッファ管理部は、前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放する。
【００１０】
本明細書に記載のパケットバッファは、受信したパケットを格納するパケットバッファであり、前記パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けられた複数の記憶領域を有し、前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に記憶し、前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスが、前記パケットの書き込み対象アドレスとして開放される。
【００１１】
本明細書に記載のパケット処理方法は、受信したパケットを格納するバッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分け、前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に書き込み、前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせ、前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信し、前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放する。
【発明の効果】
【００１２】
本明細書に記載のパケット伝送装置、パケットバッファ、及びパケット処理方法は、バッファの管理機能を改善できるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】実施例に係るパケット伝送装置の機能構成を示す構成図である。
【図２】比較例に係るパケット処理方法を示す図である。
【図３】比較例において使用されるポインタの構成例を示す構成図である。
【図４】比較例に係るパケット処理方法において、メモリエラーが発生したときの状態を示す図である。
【図５】実施例に係るパケット処理方法を示す図である。
【図６】実施例において使用されるポインタの構成例を示す構成図である。
【図７】実施例に係るパケット処理方法において、メモリエラーが発生したときの状態を示す図である。
【図８】パケット出力部の機能構成を示す構成図である。
【図９】比較例におけるパケットの受信処理を示すラダーチャートである。
【図１０】実施例におけるパケットの受信処理を示すラダーチャートである。
【図１１】比較例におけるパケットの送信処理を示すラダーチャートである。
【図１２】実施例におけるパケットの送信処理を示すラダーチャートである。
【図１３】比較例における期間の切り替え時のパケットの受信処理（その１）を示すラダーチャートである。
【図１４】比較例における期間の切り替え時のパケットの受信処理（その２）を示すラダーチャートである。
【図１５】実施例における期間の切り替え時のパケットの受信処理を示すラダーチャートである。
【発明を実施するための形態】
【００１４】
図１は、実施例に係るパケット伝送装置の機能構成を示す構成図である。パケット伝送装置は、例えばレイヤ２スイッチであり、受信部１０と、ヘッダ解析部１１と、宛先検索部１２と、スイッチ部１３と、パケットスケジューラ１４と、送信制御部１５と、バッファ１６と、送信部１７とを有する。
【００１５】
受信部１０は、ＰＨＹ（Physical）／ＭＡＣ（Media Access Control）レイヤの機能を有し、伝送路を介して他装置からのパケット（ＰＫＴ）を受信する。パケットとしては、例えばイーサネット（登録商標）フレームが挙げられるが、これに限定されず、例えばＩＰ（Internet Protocol）パケットであってもよい。
【００１６】
ヘッダ解析部１１は、パケットのヘッダを解析して、ヘッダから宛先情報を取得する。宛先情報としては、例えばＤＡ（Destination Address）が挙げられるが、これに限定されない。
【００１７】
宛先検索部１２は、取得した宛先情報に基づいて、パケットのフローを決定する。フローは、パケットを送信するための論理ポートである。
【００１８】
スイッチ部１３は、宛先情報に基づいて、複数のポート間においてパケットを交換する。これにより、パケット伝送装置は、異なる装置間においてパケットを転送する。
【００１９】
送信制御部１５は、スイッチ部１３から入力されたパケットを、バッファ１６に一時的に格納する。また、送信制御部１５は、パケットスケジューラ１４の送信指示に従って、バッファ１６からパケットを読み出して送信部１７に出力する。バッファ（パケットバッファ）１６は、パケットの格納手段であり、例えばメモリが挙げられるが、これに限定されず、ハードディスクドライブなどの他のデバイスであってもよい。
【００２０】
パケットスケジューラ１４は、フローに応じて、パケットの送信タイミングをスケジューリングし、該スケジュールに従ったパケットの送信指示を送信制御部１５に与える。スケジューリング手段としては、例えばＷＲＲ（Weighted Round Robin）が挙げられるが、これに限定されない。
【００２１】
送信部１７は、ＰＨＹ／ＭＡＣレイヤの機能を有し、伝送路を介して他装置にパケット（ＰＫＴ）を送信する。
【００２２】
パケットスケジューラ１４、送信制御部１５、及びバッファ１６は、パケットの出力処理を行うパケット出力部Ｐとして機能する。以下に、パケット出力部Ｐにおいて用いるパケット処理方法について、実施例及び比較例を対比して説明する。
【００２３】
（比較例のパケット処理方法）
図２には、比較例に係るパケット処理方法が示されている。また、図３は、比較例において使用されるポインタの構成例を示す構成図である。
【００２４】
バッファ９１は、複数のブロック９１０を有している。ブロック９１０は、１以上のパケットを記憶する記憶領域であり、例えば１０２４のアドレス空間を有する。本例では、各ブロック９１０を識別するため、０〜１１５（枠内の数字）のブロック番号を用いる。
【００２５】
ブロックポインタチェーン９０は、図３（ａ）に示されるように、パケットを書き込み可能なブロック９１０、つまり、アドレスが開放されたブロック９１０のブロック番号を示すブロックポインタ同士をリンクさせた構造を有する。例えば、ブロック番号「９６」のブロックポインタは、ブロック番号「１０３」のブロックポインタの位置を示す。
【００２６】
ブロックポインタチェーン９０は、パケットが受信されるたびに、順次に、空きブロック９１０、つまりパケットを書き込み可能なブロック９１０のブロックポインタをアドレスポインタチェーン９２に貸し出す。より具体的には、ブロックポインタチェーン９０は、ＦＩＦＯ（First In First Out）と同様の構造を有し、先頭のブロックポインタ（つまり、最も先に登録されたブロック番号）から順次に貸出す。図２の例では、ブロック番号「９６」のブロックポインタが貸し出されている。なお、図２において、複数のブロック９１０のうち、太線の枠のブロック９１０のブロックポインタ（「１８」、「３３」、「４７」など）は、貸し出し中であることを意味する。
【００２７】
貸し出されたブロックポインタは、アドレスポインタチェーン９２の最後尾にリンクされる。アドレスポインタチェーン９２は、図３（ｂ）に示されるように、フロー＃０〜＃１５ごとに設けられ、次のブロックポインタ、つまり、次の書き込み対象または次の読み出し対象となるブロック番号を互いにリンクさせた構造を有する。さらに、アドレスポインタチェーン９２は、次のブロックポインタの各々に対応する書き込みアドレス及び読み出しアドレスを有する。なお、アドレスポインタチェーン９２は、例えばＲＡＭ（Random Access Memory）などの記憶手段により記憶される。
【００２８】
書き込みアドレス及び読み出しアドレスは、それぞれ、当該ブロック９１０のアドレスを示す。書き込みアドレスは、書き込み処理９３によりパケット（パケットデータ）が書き込まれるたびに更新される。読み出しアドレスは、読み出し処理９４によりパケット（パケットデータ）が読み出されるたびに更新される。すなわち、書き込みアドレスは、次のブロックポインタが示すブロック９１０における、パケットが書き込まれた最後尾アドレスを示す。読み出しアドレスは、次のブロックポインタが示すブロック９１０における、パケットが読み出された最後尾アドレスを示す。
【００２９】
ブロックポインタチェーン９０は、アドレスポインタチェーン９２の最後尾のブロック９１０の全アドレスに、書き込み処理９３によるパケットの書き込みが完了するたびに、ブロックポインタを貸し出す。貸し出されたブロックポインタは、最後尾のブロック９１０、つまり次のブロックポインタにリンクされることにより、アドレスポインタチェーン９２に登録される。これにより、新たに登録されたブロック９１０に対して書き込み処理９３が行われる。
【００３０】
一方、パケットの読み出し処理９４は、アドレスポインタチェーン９２の先頭に位置する次のブロックポインタが示すブロック９１０から順次に行われる。これにより、読み出し処理９４は、アドレスポインタチェーン９２を辿るように行われる。なお、読み出されたパケットは、伝送路を介して他装置に伝送される。
【００３１】
アドレスポインタチェーン９２に登録されたブロックポインタは、当該ブロック９１０の全アドレスからパケットの読み出し処理９４が完了したとき、ブロックポインタチェーン９０に返却される。図２の例において、ブロック番号「６３」、「４９」、「３２」、及び「２」のブロックポインタは、全アドレスについて読み出し処理９４が完了したため、ブロックポインタチェーン９０に返却される。返却されたブロックポインタは、ブロックポインタチェーン９０の最後尾にリンクされることにより登録される。
【００３２】
また、図２の例において、ブロック番号「８１」のブロックポインタは、全アドレスについて読み出し処理９４が完了しておらず、一部のアドレスについてのみ読み出しが行われただけであるので、当該ブロックポインタは、使用中の状態にあるとし、返却されない。なお、ブロックポインタ９１０は、アドレスポインタチェーン９２に登録された後、所定の時間が経過すると、当該ブロック９１０について読み出し処理９４が完了したか否かに関わらず、ブロックポインタチェーン９０に返却される。
【００３３】
書き込み処理９３及び読み出し処理９４は、アドレスポインタチェーン９２に登録された全ブロックポインタのうち、パケット処理の一周期内の複数の期間ＴＲ（Time Region）０〜ＴＲ７に応じた１以上のブロックポインタを対象として実行される。本例において、複数の期間ＴＲ０〜ＴＲ７は、それぞれ、パケット処理の一周期を均等に８分割して得られる期間とするが、これに限定されない。
【００３４】
書き込み処理９３及び読み出し処理９４は、複数の期間ＴＲ０〜ＴＲ７のうち、相違する期間に応じたブロックポインタを対象とし、該対象のブロックポインタは、一定時間が経過すると、順次に他の期間に移行する。つまり、期間ＴＲ０〜ＴＲ７は、繰り返される。図２の例において、書き込み処理９３は、期間ＴＲ４に応じたブロックポインタ（ブロック番号「４７」、「３３」、「９６」、「１１３」、「９５」）を対象とし、一定時間が経過すると、次の期間ＴＲ５に応じたブロックポインタを対象とする。書き込み処理９３の実行中、期間ＴＲ０〜ＴＲ７が移行したとき、アドレスポインタチェーン９２における期間の境界を示すため、符号ｅで示されるように、エッジポインタが生成される。
【００３５】
エッジポインタは、図３（ｃ）に示されるように、フロー＃０〜＃１５及び期間ＴＲ０〜ＴＲ７ごとに、先頭ブロックポインタ及び先頭アドレスが設けられた構造を有する。先頭ブロックポインタは、アドレスポインタチェーン９２において、フロー＃０〜＃１５ごとに、各期間ＴＲ０〜ＴＲ７の先頭に位置するブロックポインタを示す。また、先頭アドレスは、先頭ブロックポインタが示すブロック９１０内において、各期間ＴＲ０〜ＴＲ７の先頭に位置するアドレスを示す。なお、エッジポインタは、例えばＲＡＭなどの記憶手段により記憶される。
【００３６】
また、図２の例において、読み出し処理９４は、期間ＴＲ２に応じたブロックポインタ（ブロック番号「６３」、「４９」、「８１」、「３２」、「２」）を対象とし、一定時間が経過すると、次の期間ＴＲ３に応じたブロックポインタを対象とする。読み出し処理９４の実行中、期間ＴＲ０〜ＴＲ７が移行したとき、エッジポインタを目印として、新たに読み出し処理９４の対象となるブロックポインタが決定される。
【００３７】
このように、比較例のパケット処理方法によると、バッファ９１内のブロック９１０を時間領域（ＴＲ０〜ＴＲ７）ごとに分割して管理し、一定時間の経過後に、ブロックポインタを返却することにより、ブロック９１０のアドレスを開放する。これにより、当該ブロック９１０は、新たなパケットの書き込みが可能となり、ヘッドドロップ（Head Drop）方式によるパケット処理が行われる。なお、ヘッドドロップ方式とは、最も先にバッファに格納されたパケットから順次にパケット廃棄を行うものであり、バッファに格納された最新のパケットから順次に廃棄対象とするテイルドロップ（Tail Drop）方式とは対照的な方式である。
【００３８】
本比較例において、アドレスポインタチェーン９２を記憶するメモリに障害が発生すると、リンクポインタが読み出せないために、アドレスポインタチェーン９２のリンクが途切れてしまう。したがって、読み出し処理９４の対象となるブロックポインタが取得できないことにより、パケットの読み出しが不可能となる。
【００３９】
図４には、比較例に係るパケット処理方法において、メモリエラーが発生したときの状態が示されている。ここでは、フロー＃０のアドレスポインタチェーン９２の障害により、ブロック番号「６３」のブロックポインタが読み出せないと仮定する。このとき、アドレスポインタチェーン９２のリンクが辿れないため、該ブロックポインタと同じ期間ＴＲ２に属する、後続のブロック番号「４９」のブロックポインタの読み出しが不可能となる。
【００４０】
したがって、ブロック番号「４９」のブロックポインタを、ブロックポインタチェーン９０に返却することもできない。なお、図４には、次の期間ＴＲ３のエッジポインタ（ブロック番号「８１」）までのブロックポインタとして、ブロック番号「４９」のブロックポインタしか示されていないが、実際は、多数のブロックポインタが存在し、各ブロックポインタは返却不可能となる。
【００４１】
本比較例では、ブロックポインタが返却されない場合、当該ブロック９１０のアドレスが開放されず、空きブロックとして利用できない。このため、メモリエラーが頻繁に発生すると、パケットを格納するブロック９１０が不足し、最終的には、例えばパケット伝送装置のリセットなどにより対処する事態を招く。パケット伝送装置をリセットした場合、パケット伝送装置により提供されるサービス中の通信回線が、一時的に遮断されるなどの問題を生ずる。
【００４２】
（実施例に係るパケット処理方法）
これに対し、実施例に係るパケット処理方法は、バッファ内の記憶領域を、パケット処理の一周期内の複数の期間に対応する複数のグループに分け、パケットを受信期間に応じたグループの領域に書き込み、各記憶領域のアドレスを該グループの期間の到来時に開放する。これにより、バッファの管理機能が改善される。
【００４３】
図５には、実施例に係るパケット処理方法が示されている。また、図６は、実施例において使用されるポインタの構成例を示す構成図である。
【００４４】
バッファ（パケットバッファ）１６は、複数のブロック１６０を有している。ブロック１６０は、１以上のパケットを記憶する記憶領域であり、例えば１０２４のアドレス空間を有する。本例では、各ブロック１６０を識別するため、０〜１１５（枠内の数字）のブロック番号を用いる。
【００４５】
バッファ１６内の複数のブロック１６０は、パケット処理の一周期内の複数の期間ＴＲ０〜ＴＲ７にそれぞれ対応する複数のグループＧ０〜Ｇ７に分けられる。例えば、期間ＴＲ２に対応するグループＧ２には、ブロック番号「３２」、「３３」、「３４」、・・・、「４７」の１６個のブロック１６０が属する。期間ＴＲ５に対応するグループＧ５には、ブロック番号「８０」、「８１」、「８２」、・・・、「９５」の１６個のブロック１６０が属する。なお、本例において、複数の期間ＴＲ０〜ＴＲ７は、それぞれ、パケット処理の一周期を均等に８分割して得られる期間とするが、これに限定されない。
【００４６】
本例では、書き込み処理８３の対象となるブロック１６０を管理するため、上記のブロックポインタチェーン９０に代えて、ブロックカウンタ８５が用いられる。ブロックカウンタ８５は、図６（ａ）に示されるように、書き込み処理８３の対象となるブロック１６０のブロックポインタを、各期間ＴＲ０〜ＴＲ７、つまり、各グループＧ０〜Ｇ７の先頭ブロック番号＋０〜１５としてカウントする。ブロックカウンタ８５は、カウントにより得たブロックポインタ（カウンタ値）をアドレスポインタチェーン８２に通知する。
【００４７】
ブロックカウンタ８５が通知するブロックポインタは、１つのブロック１６０への書き込み処理８３が完了するたびに、期間ＴＲ０〜ＴＲ７に応じた先頭ブロック番号（つまり初期値）に、１を加算する。例えば、ブロックカウンタ８５は、グループＧ２の場合、ブロック番号「３２」、「３３」、「３４」、・・・、「４７」を順次に通知し、グループＧ５の場合、ブロック番号「８０」、「８１」、「８２」、・・・、「９５」を順次に通知する。このため、ブロックカウンタ８５は、書き込み処理８３の期間ＴＲ０〜ＴＲ７が移行するたびにリセットされる。なお、ブロックカウンタ８５は、例えばＦＦ（Flip Flop）により構成される。
【００４８】
通知されたブロックポインタは、アドレスポインタチェーン８２の最後尾にリンクされる。アドレスポインタチェーン８２は、図６（ｂ）に示されるように、フロー＃０〜＃１５ごとに設けられ、次のブロックポインタ、つまり、次の書き込み対象または読み出し対象となるブロック番号を互いにリンクさせた構造を有する。言い換えると、アドレスポインタチェーン８２は、複数のブロック１６０のうち、パケットが書き込まれたブロック１６０のアドレス（ブロック番号）を示すブロックポインタ同士を順次にリンクさせた構造を有する。
【００４９】
さらに、アドレスポインタチェーン８２は、次のブロックポインタの各々に対応する書き込みアドレス及び読み出しアドレスを有する。つまり、アドレスポインタチェーン８２は、比較例のアドレスポインタチェーン９２と同様の構成を有する。なお、アドレスポインタチェーン８２は、例えばＲＡＭなどの記憶手段により記憶される。
【００５０】
ブロックカウンタ８５は、アドレスポインタチェーン８２の最後尾のブロック１６０の全アドレスに、書き込み処理８３によるパケットの書き込みが完了するたびに、ブロックポインタを通知する。通知されたブロックポインタは、最後尾のブロック１６０、つまり次のブロックポインタにリンクされることにより、アドレスポインタチェーン８２に登録される。これにより、新たに登録されたブロック１６０に対して書き込み処理８３が行われる。
【００５１】
一方、パケットの読み出し処理８４は、アドレスポインタチェーン８２の先頭に位置する次のブロックポインタが示すブロック１６０から順次に行われる。より具体的には、読み出し処理８４において、アドレスポインタチェーン８２のブロックポインタが順次に参照され、複数のブロック１６０のうち、ブロックポインタが示すブロック番号（アドレス）のブロック１６０からパケットが読み出される。これにより、読み出し処理８４は、アドレスポインタチェーン８２を辿るように行われる。なお、読み出されたパケットは、伝送路を介して他装置に送信される。
【００５２】
書き込み処理８３及び読み出し処理８４は、それぞれ、上記の期間ＴＲ０〜ＴＲ７に応じたグループＧ０〜Ｇ７のブロックポインタを対象として実行される。書き込み処理８３及び読み出し処理８４の期間ＴＲ０〜ＴＲ７は、相違し、一定時間の経過により順次に他の期間に移行する。つまり、期間ＴＲ０〜ＴＲ７は、繰り返される。
【００５３】
このため、書き込み処理８３において、パケットは、複数のグループＧ０〜Ｇ７のうち、パケットを受信した期間ＴＲに応じたグループに属するブロック１６０に書き込まれる。図５の例では、書き込み処理８３は、グループＧ５に属するブロック１６０を対象として実行される。このとき、ブロックカウンタ８５は、ブロック１６０への書き込みが完了するたび、グループＧ５に属するブロック１６０のブロック番号「８０」、「８１」、「８２」、・・・、「９５」を順次に通知する。
【００５４】
また、読み出し処理８４において、パケットは、複数のグループＧ０〜Ｇ７のうち、パケットを送信する期間ＴＲ０〜ＴＲ７に応じたグループに属するブロック１６０から読み出される。図５の例では、読み出し処理８４は、グループＧ２に属するブロック１６０を対象として実行される。つまり、読み出し処理８４は、アドレスポインタチェーン８２に登録されたブロック番号「３２」、「３４」、及び「３３」を対象として実行される。
【００５５】
書き込み処理８３の実行中、期間ＴＲ０〜ＴＲ７が移行したとき、アドレスポインタチェーン８２における期間の先頭のブロックポインタを示すため、符号ｍで示されるように、マスタポインタが生成される。マスタポインタは、図６（ｃ）に示されるように、フロー＃０〜＃１５及び期間ＴＲ０〜ＴＲ７ごとに、先頭ブロックポインタ及び「ＥＮ」が設けられた構造を有する。先頭ブロックポインタは、アドレスポインタチェーン８２において、フロー＃０〜＃１５ごとに、各期間ＴＲ０〜ＴＲ７の先頭に位置するブロックポインタを示す。また、「ＥＮ」は、登録されている先頭ブロックポインタが有効であるか否かを示す。なお、マスタポインタは、例えばＲＡＭなどの記憶手段により記憶される。
【００５６】
また、図５の例において、読み出し処理８４は、期間ＴＲ２に応じたブロックポインタ（ブロック番号「「３２」、「３４」、及び「３３」）を対象とし、一定時間が経過すると、次の期間ＴＲ３に応じたブロックポインタを対象とする。読み出し処理８４の実行中、期間ＴＲ０〜ＴＲ７が移行したとき、マスタポインタを目印として、新たに読み出し処理８４の対象となるブロックポインタが決定される。
【００５７】
複数のブロック１６０は、複数のグループＧ０〜Ｇ７の各々について、当該グループに対応する期間ＴＲ０〜ＴＲ７が到来したときにアドレスが開放される。つまり、各グループＧ０〜Ｇ７に属するブロック１６０は、パケット処理の一周期が経過すると、パケットの書き込みが可能な状態とされる。
【００５８】
ブロックカウンタ８５は、書き込み処理８３の期間ＴＲ０〜ＴＲ７が移行するたび、つまり、期間ＴＲ０〜ＴＲ７が切り替わるたび、リセットされる。そして、ブロックカウンタ８５は、移行後の期間ＴＲ０〜ＴＲ７に対応するグループＧ０〜Ｇ７に属するブロック１６０のブロックポインタを、該ブロック１６０の読み出し処理８４が完了したか否かに関わらず、アドレスポインタチェーン８２に通知する。
【００５９】
これにより、各ブロック１６０のアドレスは、パケット処理の一周期が経過することにより開放される。さらに、実施例では、書き込み処理８３の対象となるブロック１６０を、期間ＴＲ０〜ＴＲ７に対応するグループに分け、ブロックカウンタ８５により管理するので、上記の比較例とは異なり、読み出し処理８４の完了後に、ブロックポインタを返却する必要がない。
【００６０】
したがって、実施例に係るパケット処理方法によると、アドレスポインタチェーン８２を記憶するメモリに障害が発生した場合でも、上述した問題を生ずることがない。図７には、実施例に係るパケット処理方法において、メモリエラーが発生したときの状態が示されている。ここでは、フロー＃０のアドレスポインタチェーン８２の障害により、ブロック番号「３２」のブロックポインタが読み出せないと仮定する。このとき、アドレスポインタチェーン８２のリンクが辿れないため、該ブロックポインタと同じ期間ＴＲ２に属する、後続のブロック番号「３４」のブロックポインタの読み出しが不可能となる。
【００６１】
しかし、パケット処理の一周期が経過して、再び期間ＴＲ２が到来したとき、ブロックカウンタ８５が、グループＧ２について、新たにブロックポインタを通知するので、グループＧ２に属するブロック１６０のアドレスは開放される。なお、このとき、メモリエラーが、宇宙線などに起因する一時的な障害である場合、ブロック番号「３２」のブロックポインタに関するエラーの再発の可能性は低い。さらに、期間ＴＲ０〜ＴＲ７とブロック１６０のグループＧ０〜Ｇ７が互いに対応付けられているため、エラーが生じた期間ＴＲ０〜ＴＲ７に基づいて、障害があるブロック１６０のブロック番号（アドレス）が特定される。
【００６２】
このように、実施例において、各ブロック１６０のアドレスは、ブロックポインタの返却ではなく、パケット処理の一周期の経過により開放される。したがって、パケット処理は、メモリエラーが発生しても、パケット伝送装置のリセットなどの対処を行うことなく、継続される。
【００６３】
（パケット伝送装置）
次に、実施例に係るパケット伝送装置の機能構成を述べる。図８は、パケット出力部Ｐ（図１参照）の機能構成を示す構成図である。
【００６４】
パケット伝送装置は、バッファ１６と、受信処理部２と、送信処理部３と、期間管理部５と、マスタポインタ記憶部６と、ポインタチェーン記憶部７とを有する。受信処理部２は、バッファ管理部２０と、フロー識別部２１と、書込制御部２２と、受信側ポインタチェーン管理部２３と、マスタポインタ管理部２４とを有する。送信処理部３は、マスタポインタ取得部３０と、送信側ポインタチェーン管理部３１と、読出制御部３２とを有する。
【００６５】
バッファ１６は、複数のブロック（記憶領域）１６０を有し、受信したパケットを格納する。マスタポインタ記憶部６は、例えばＲＡＭであり、マスタポインタを記憶する。ポインタチェーン記憶部７は、例えばＲＡＭであり、アドレスポインタチェーン８２を記憶する。
【００６６】
受信処理部２及び送信処理部３は、上記の書き込み処理８３及び読み出し処理８４を行う。期間管理部５は、パケット処理の周期ＴＲ０〜ＴＲ７を管理し、一周期内の期間を受信処理部２及び送信処理部３に通知する。書き込み処理８３及び読み出し処理８４の期間ＴＲ０〜ＴＲ７は、相違し、一定時間の経過後に、次の期間に移行する。
【００６７】
フロー識別部２１は、受信したパケットの宛先情報を参照してフロー＃０〜＃１６を識別する。フロー識別部２１は、フロー＃０〜＃１６を示すフローＩＤとともにパケットを書込制御部２２に出力し、また、フローＩＤをマスタポインタ管理部２４に出力する。
【００６８】
バッファ管理部２０は、バッファ１６内の複数のブロック１６０を、パケット処理の一周期内の複数の期間ＴＲ０〜ＴＲ７にそれぞれ対応する複数のグループＧ０〜Ｇ７に分けて管理する。バッファ管理部２０は、複数のグループＧ０〜Ｇ７の各々について、複数のブロック１６０のブロック番号（アドレス）を、ブロックカウンタ８５により管理し、書込制御部２２に通知する。より具体的には、バッファ管理部２０は、受信側ポインタチェーン管理部２３の要求に応じて、期間管理部５から通知された期間ＴＲ０〜ＴＲ７に応じたブロックポインタを通知する。
【００６９】
書込制御部２２は、パケットを、バッファ管理部２０の指示に従い、複数のグループＧ０〜Ｇ７のうち、パケットを受信した期間に対応するグループに属するブロック１６０に書き込む。より具体的には、書込制御部２２は、受信側ポインタチェーン管理部２３を介して、期間ＴＲ０〜ＴＲ７及びフローＩＤに応じたブロックポインタを取得し、ブロックポインタが示すブロック１６０にパケットを書き込む。
【００７０】
受信側ポインタチェーン管理部（ポインタ管理部）２３は、複数のブロック１６０のうち、パケットが書き込まれたブロックのブロック番号（アドレス）を示すポインタ同士を順次にリンクさせることにより、アドレスポインタチェーン８２を更新する。また、受信側ポインタチェーン管理部２３は、書込制御部２２による書き込みが行われるたびに、アドレスポインタチェーン８２の書き込みアドレスを更新する。
【００７１】
マスタポインタ管理部２４は、期間管理部５から期間ＴＲ０〜ＴＲ７が通知されたとき、フロー識別部２１から通知されたフローＩＤに応じたマスタポインタを生成し、マスタポインタ記憶部６に書き込む。このとき、マスタポインタ管理部２４は、受信側ポインタチェーン管理部２３から書き込み中のブロック１６０のブロックポインタを取得する。
【００７２】
送信処理部３は、アドレスポインタチェーン８２のポインタを順次に参照し、複数のブロック１６０のうち、ポインタが示すブロック番号（アドレス）のブロック１６０からパケットを読み出して送信する。より具体的には、送信処理部３は、複数のグループＧ０〜Ｇ７のうち、パケットを送信する期間に応じたグループに属するブロック１６０からパケットを読み出して送信する。このため、送信対象のパケットが、期間ＴＲ０〜ＴＲ７に応じて決定され、パケット送信処理が容易となる。
【００７３】
マスタポインタ取得部３０は、マスタポインタ記憶部６から、期間管理部５から通知された期間ＴＲ０〜ＴＲ７に応じたマスタポインタを取得する。マスタポインタ取得部３０は、マスタポインタを送信側ポインタチェーン管理部３１に通知する。
【００７４】
送信側ポインタチェーン管理部３１は、マスタポインタ取得部３０から通知されたマスタポインタに従って、アドレスポインタチェーン８２のブロックポインタを取得して、読出制御部３２に通知する。読出制御部３２は、送信側ポインタチェーン管理部３１から通知されたブロックポインタが示すブロック１６０から、パケットを読み出す。送信側ポインタチェーン管理部３１は、読出制御部３２によるパケットの読み出しが行われるたびに、アドレスポインタチェーン８２の読み出しアドレスを更新する。
【００７５】
バッファ管理部２０は、複数のグループＧ０〜Ｇ７の各々に対応する期間ＴＲ０〜ＴＲ７が到来したとき、複数の記憶領域１６０のうち、当該グループに属する記憶領域のアドレスを、パケットの書き込み対象アドレスとして開放する。このため、図５〜図７を参照して述べた内容と同様の効果が得られる。
【００７６】
また、この構成によると、上述した内容に加え、ロジック量（例えばゲート規模）やメモリなどの記憶容量が低減される。以下に、実施例に係るパケット伝送装置の処理を、図２〜図４に示された比較例における処理と対比して説明する。
【００７７】
図９は、比較例におけるパケットの受信処理を示すラダーチャートである。受信処理において、アドレスポインタチェーン９２は、書き込み処理９３が行われるたびに、書き込みアドレスが更新される。そして、１ブロック（ＢＬＫ）９１０分の書き込みが終了すると、ポインタチェーン管理処理に対し、ブロックポインタが要求される。
【００７８】
ポインタチェーン管理処理において、ブロックポインタチェーン９０を記憶するメモリにアクセスすることにより、空きブロック９１０のブロックポインタが取得される。空きブロック９１０のブロックポインタは、受信処理に対して貸し出される。受信処理において、貸し出されたブロックポインタは、アドレスポインタチェーン９２の次のブロックポインタ（図３（ｂ）参照）として書き込まれる。
【００７９】
これにより、受信処理は、該ブロックポインタが示す新たなブロック９１０に対して行われ、アドレスポインタチェーン９２は、書き込み処理９３が行われるたびに、書き込みアドレスが更新される。
【００８０】
一方、図１０は、実施例におけるパケットの受信処理を示すラダーチャートである。つまり、図１０には、図８の受信処理部２の処理が示されている。
【００８１】
アドレスポインタチェーン８２は、書き込み処理８３が行われるたびに、書き込みアドレスが更新される。そして、１ブロック（ＢＬＫ）１６０分の書き込みが終了すると、ポインタチェーン管理処理（バッファ管理部２０）に対し、ブロックポインタが要求される。
【００８２】
ポインタチェーン管理処理において、ブロックカウンタ８５からブロックポインタが取得され、受信処理に対して通知される。つまり、バッファ管理部２０は、複数のグループＧ０〜Ｇ７の各々について、複数のブロック１６０のブロックポインタ（アドレス）を、カウンタにより管理し、書込制御部２２に通知する。
【００８３】
このとき、ブロックカウンタ８５は、カウンタ値が更新されることにより、次に通知するブロックポインタを準備する。受信処理において、通知されたブロックポインタは、アドレスポインタチェーン８２の次のブロックポインタ（図６（ｂ）参照）として書き込まれる。
【００８４】
これにより、受信処理は、該ブロックポインタが示す新たなブロック１６０に対して行われ、アドレスポインタチェーン８２は、書き込み処理８３が行われるたびに、書き込みアドレスが更新される。
【００８５】
図９及び図１０を対比すると理解されるように、比較例では、ブロックポインタチェーン９０が用いられるのに対し、実施例では、ブロックカウンタ８５が用いられる。ブロックポインタチェーン９０は、ＲＡＭなどのメモリにより構成されるのに対し、ブロックカウンタ８５は、ＦＦを用いたカウンタ回路により構成される。したがって、実施例によると、比較例よりメモリの容量が低減され、処理が簡素化される。
【００８６】
また、図１１は、比較例におけるパケットの送信処理を示すラダーチャートである。送信処理において、アドレスポインタチェーン９２は、パケットの読み出し処理９４が行われるたびに、読み出しアドレスが更新される。そして、１ブロック（ＢＬＫ）９１０分の読み出しが終了すると、アドレスポインタチェーン９２から次のブロックポインタが読み出される。また、読み出しが終了したブロックポインタは、返却される。
【００８７】
ポインタチェーン管理処理では、返却されたブロックポインタを、空きブロック９１０として、ブロックポインタチェーン９０に登録するため、ブロックポインタチェーン９０が記憶されたメモリへのアクセスが行われる。送信処理では、次のブロック９１０に対する読み出し処理９４が行われ、アドレスポインタチェーン９２の読み出しアドレスが更新される。
【００８８】
一方、図１２は、実施例におけるパケットの送信処理を示すラダーチャートである。つまり、図１２は、図８に示された送信処理部３の処理を示す。
【００８９】
送信処理において、アドレスポインタチェーン８２は、パケットの読み出し処理８４が行われるたびに、読み出しアドレスが更新される。そして、１ブロック（ＢＬＫ）１６０分の読み出しが終了すると、アドレスポインタチェーン８２から次のブロックポインタが読み出される。送信処理では、次のブロック１６０に対する読み出し処理８４が行われ、アドレスポインタチェーン８２の読み出しアドレスが更新される。
【００９０】
図１１及び図１２を対比すると理解されるように、比較例では、ポインタの返却が行われるのに対し、実施例では、ポインタの返却は行われない。したがって、実施例によると、比較例よりメモリの容量が低減され、処理が簡素化される。
【００９１】
また、比較例では、以下に述べるように、期間の切り替え（移行）の発生時、ブロックポインタの切り替えが行われる場合と、ブロックポインタの切り替えが行われない場合とが存在する。図１３は、比較例における期間の切り替え時のパケットの受信処理（その１）を示すラダーチャートである。図１３の例は、ブロックポインタの切り替えが行われない場合を示す。
【００９２】
受信処理において、書き込み処理９３によりアドレスポインタチェーン９２の書き込みアドレスの更新中、期間（ＴＲ）の切り替えが発生すると、エッジポインタ管理処理に対して、先頭ブロックポインタ及び先頭アドレスが通知され、エッジポインタが生成される。
【００９３】
一方、図１４の例は、ブロックポインタの切り替えが行われない場合を示す。受信処理において、書き込み処理９３により１ブロック（ＢＬＫ）９１０分の書き込みが終了したときに、期間の切り替えが発生すると、図１３に示されたエッジポインタ管理処理に加えて、ポインタチェーン管理処理が行われる。つまり、書き込み対象のブロックを切り替えるため、ブロックポインタチェーン９０からブロックポインタの貸し出しが行われる。
【００９４】
図１３及び図１４を対比すると理解されるように、比較例では、期間の切り替えの発生時、ブロックポインタの切り替えが行われる場合と、ブロックポインタの切り替えが行われない場合とが存在する。このため、ハードウェアの回路構成が複雑化し、ロジック量が増加する。
【００９５】
これに対し、実施例では、上述したように、ブロック１６０が、期間ＴＲ０〜ＴＲ７に応じたグループＧ０〜Ｇ７に分けて管理されるので、期間の切り替えの発生のたびに、ブロックポインタの取得が行われる。
【００９６】
図１５は、実施例における期間の切り替え時のパケットの受信処理を示すラダーチャートである。受信処理において、書き込み処理８３の実行中、期間の切り替えが発生すると、マスタポインタ管理処理及びポインタチェーン管理処理が行われる。
【００９７】
ポインタチェーン管理処理では、期間の切り替えに応じて、ブロックカウンタ８５のリセットが行われ、カウント値が初期化される。次に、ブロックポインタの要求に応じて、ブロックカウンタ８５からブロックポインタが取得される。取得されたブロックポインタは、受信処理に対して通知される。また、ブロックカウンタ８５は、カウンタ値が更新されることにより、次に通知するブロックポインタを準備する。
【００９８】
受信処理において、通知されたブロックポインタは、アドレスポインタチェーン８２の次のブロックポインタとして書き込まれる。また、受信処理において、マスタポインタ管理処理（マスタポインタ管理部２４）に対して、先頭ブロックポインタが通知され、マスタポインタが生成される。
【００９９】
そして、受信処理は、該ブロックポインタが示す新たなブロック１６０に対して行われ、アドレスポインタチェーン８２は、書き込み処理８３が行われるたびに、書き込みアドレスが更新される。
【０１００】
このように、実施例では、期間の切り替えの発生時において処理の場合分けが行われないので、比較例と対比すると、ロジック量が低減され、ハードウェアの回路構成が簡単化される。
【０１０１】
これまで述べたように、実施例に係るパケット伝送装置は、受信したパケットを格納するバッファ１６と、バッファ管理部２０と、書込制御部２２と、ポインタ管理部２３とを有する。バッファ管理部２０は、バッファ１６内の複数の記憶領域（ブロック）１６０を、パケット処理の一周期内の複数の期間ＴＲ０〜ＴＲ７にそれぞれ対応する複数のグループＧ０〜Ｇ７に分けて管理する。
【０１０２】
書込制御部２２は、パケットを、バッファ管理部２０の指示に従い、複数のグループＧ０〜Ｇ７のうち、パケットを受信した期間ＴＲ０〜ＴＲ７に対応するグループに属する記憶領域１６０に書き込む。ポインタ管理部２３は、複数の記憶領域１６０のうち、パケットが書き込まれた記憶領域のアドレス（ブロック番号）を示すポインタ（ブロックポインタ）同士を順次にリンクさせる。
【０１０３】
送信処理部３は、ポインタを順次に参照し、複数の記憶領域１６０のうち、ポインタが示すアドレスの記憶領域からパケットを読み出して送信する。バッファ管理部２０は、複数のグループＧ０〜Ｇ７の各々に対応する期間ＴＲ０〜ＴＲ７が到来したとき、複数の記憶領域１６０のうち、当該グループに属する記憶領域のアドレスを、パケットの書き込み対象アドレスとして開放する。
【０１０４】
実施例に係るパケット伝送装置によると、バッファ管理部２０は、バッファ１６内の複数の記憶領域１６０を、パケット処理の一周期内の複数の期間ＴＲ０〜ＴＲ７にそれぞれ対応する複数のグループＧ０〜Ｇ７に分けて管理する。書込制御部２２は、パケットを、バッファ管理部２０の指示に従い、パケット処理の周期内の期間ＴＲ０〜ＴＲ７に応じたグループＧ０〜Ｇ７に属する記憶領域１６０に書き込むので、期間ＴＲ０〜ＴＲ７及び記憶領域１６０が互いに対応付けられる。このため、エラーが生じた期間ＴＲ０〜ＴＲ７に基づいて、障害がある記憶領域１６０のアドレスが、特定される。
【０１０５】
また、ポインタ管理部２３は、複数の記憶領域１６０のうち、パケットが書き込まれた記憶領域１６０のアドレスを示すポインタ同士を順次にリンクさせる。送信処理部３は、ポインタを参照して、ポインタが示すアドレスの記憶領域１６０からパケットを読み出して送信するので、パケットが書き込まれた記憶領域１６０から、順次にパケットが読み出されて送信される。
【０１０６】
また、バッファ管理部２０は、複数のグループＧ０〜Ｇ７の各々に対応する期間ＴＲ０〜ＴＲ７が到来したとき、複数の記憶領域１６０のうち、当該グループに属する記憶領域のアドレスを、パケットの書き込み対象アドレスとして開放する。このため、各グループに属する記憶領域１６０は、周期内の当該期間が到来すると、パケットの書き込みが可能となる。
【０１０７】
したがって、送信処理部３は、記憶領域１６０のアドレスの開放のために、パケットの読み出し後にポインタを返却する必要がないので、メモリエラーによりポインタが読み出せなくても、パケットを書き込む記憶領域１６０が不足することはない。よって、実施例に係るパケット装置によると、バッファの管理機能が改善される。
【０１０８】
また、実施例に係るパケットバッファ１６は、受信したパケットを格納し、パケット処理の一周期内の複数の期間ＴＲ０〜ＴＲ７にそれぞれ対応する複数のグループＧ０〜Ｇ７に分けられた複数の記憶領域１６０を有する。パケットバッファ１６は、パケットを、複数のグループＧ０〜Ｇ７のうち、パケットを受信した期間ＴＲ０〜ＴＲ７に応じたグループに属する記憶領域１６０に記憶する。複数のグループＧ０〜Ｇ７の各々に対応する期間ＴＲ０〜ＴＲ７が到来したとき、複数の記憶領域１６０のうち、当該グループに属する記憶領域のアドレスは、パケットの書き込み対象アドレスとして開放される。
【０１０９】
実施例に係るパケットバッファ１６は、上記のパケット伝送装置と構成が重複するので、上述した内容と同様の作用効果を奏する。
【０１１０】
また、実施例に係るパケット処理方法は、以下の（１）〜（５）の各工程を含む。
（１）受信したパケットを格納するバッファ１６内の複数の記憶領域１６０を、パケット処理の一周期内の複数の期間ＴＲ０〜ＴＲ７にそれぞれ対応する複数のグループＧ０〜Ｇ７に分ける工程
（２）パケットを、複数のグループＧ０〜Ｇ７のうち、パケットを受信した期間に応じたグループに属する記憶領域１６０に書き込む工程
（３）複数の記憶領域１６０のうち、パケットが書き込まれた記憶領域のアドレス（ブロック番号）を示すポインタ（ブロックポインタ）同士を順次にリンクさせる工程
（４）ポインタを順次に参照し、複数の記憶領域１６０のうち、ポインタが示すアドレスの記憶領域１６０からパケットを読み出して送信する工程
（５）複数のグループＧ０〜Ｇ７の各々に対応する期間ＴＲ０〜ＴＲ７が到来したとき、複数の記憶領域１６０のうち、当該グループに属する各記憶領域のアドレスを、パケットの書き込み対象アドレスとして開放する工程
【０１１１】
実施例に係るパケット処理方法は、上記のパケット伝送装置と同様の構成を有するので、上述した内容と同様の作用効果を奏する。
【０１１２】
以上、好ましい実施例を参照して本発明の内容を具体的に説明したが、本発明の基本的技術思想及び教示に基づいて、当業者であれば、種々の変形態様を採り得ることは自明である。
【０１１３】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  受信したパケットを格納するバッファと、
前記バッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けて管理するバッファ管理部と、
前記パケットを、前記バッファ管理部の指示に従い、前記複数のグループのうち、前記パケットを受信した期間に対応するグループに属する記憶領域に書き込む書込制御部と、
前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせるポインタ管理部と、
前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信する送信処理部とを有し、
前記バッファ管理部は、前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放することを特徴とするパケット伝送装置。
（付記２）  前記送信処理部は、前記複数のグループのうち、前記パケットを送信する期間に応じたグループに属する記憶領域から前記パケットを読み出して送信することを特徴とする付記１に記載のパケット伝送装置。
（付記３）  前記バッファ管理部は、前記複数のグループの各々について、前記複数の記憶領域のアドレスを、カウンタにより管理し、前記書込制御部に通知することを特徴とする付記１または２に記載のパケット伝送装置。
（付記４）  受信したパケットを格納するパケットバッファにおいて、
パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けられた複数の記憶領域を有し、
前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に記憶し、
前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスが、前記パケットの書き込み対象アドレスとして開放されることを特徴とするパケットバッファ。
（付記５）  前記複数のグループのうち、前記パケットを送信する期間に応じたグループに属する記憶領域から前記パケットが読み出されることを特徴とする付記４に記載のパケットバッファ。
（付記６）  前記複数のグループの各々について、前記複数の記憶領域のアドレスが、カウンタにより管理されることを特徴とする付記４または５に記載のパケットバッファ。
（付記７）  受信したパケットを格納するバッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分け、
前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に書き込み、
前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせ、
前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信し、
前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放することを特徴とするパケット処理方法。
（付記８）  前記複数のグループのうち、前記パケットを送信する期間に応じたグループに属する記憶領域から前記パケットを読み出すことを特徴とする付記７に記載のパケット処理方法。
（付記９）  前記複数のグループの各々について、前記複数の記憶領域のアドレスを、カウンタにより管理することを特徴とする付記７または８に記載のパケット処理方法。
【符号の説明】
【０１１４】
２                                受信処理部
３                                送信処理部
１６                              バッファ（パケットバッファ）
１６０                            ブロック（記憶領域）
２０                              バッファ管理部
２２                              書込制御部
２３                              受信側ポインタチェーン管理部（ポインタ管理部）
【図１】
2015037249.tif 000003
【図２】
2015037249.tif 000004
【図３】
2015037249.tif 000005
【図４】
2015037249.tif 000006
【図５】
2015037249.tif 000007
【図６】
2015037249.tif 000008
【図７】
2015037249.tif 000009
【図８】
2015037249.tif 000010
【図９】
2015037249.tif 000011
【図１０】
2015037249.tif 000012
【図１１】
2015037249.tif 000013
【図１２】
2015037249.tif 000014
【図１３】
2015037249.tif 000015
【図１４】
2015037249.tif 000016
【図１５】
2015037249.tif 000017