JP6123568B2 - パケット伝送装置、パケットバッファ及びパケット処理方法 - Google Patents

パケット伝送装置、パケットバッファ及びパケット処理方法 Download PDF

Info

Publication number
JP6123568B2
JP6123568B2 JP2013168346A JP2013168346A JP6123568B2 JP 6123568 B2 JP6123568 B2 JP 6123568B2 JP 2013168346 A JP2013168346 A JP 2013168346A JP 2013168346 A JP2013168346 A JP 2013168346A JP 6123568 B2 JP6123568 B2 JP 6123568B2
Authority
JP
Japan
Prior art keywords
packet
pointer
block
address
buffer
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.)
Active
Application number
JP2013168346A
Other languages
English (en)
Other versions
JP2015037249A (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
Priority to JP2013168346A priority Critical patent/JP6123568B2/ja
Priority to US14/320,768 priority patent/US9380006B2/en
Publication of JP2015037249A publication Critical patent/JP2015037249A/ja
Application granted granted Critical
Publication of JP6123568B2 publication Critical patent/JP6123568B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本件は、パケット伝送装置、パケットバッファ及びパケット処理方法に関する。
通信需要の増加に伴い、パケットを転送するレイヤ2スイッチなどのパケット交換装置のスループットの向上が求められている。スループットを向上するため、パケットは、優先度や宛先などに応じて複数のフローに分かれて処理され、パケットを蓄積するバッファの管理手段が複雑化している。
例えば、パケットを格納するバッファを、リンクポインタによりリンクされた一連のポインタチェーンにより管理するチェーン管理方式が知られている。チェーン管理方式によると、パケットの書き込み対象となるアドレスのポインタを、ポインタチェーンから取得し、当該バッファからパケットが読み出された後、ポインタをポインタチェーンに返却する。
チェーン管理方式に関し、例えば特許文献1には、バッファ群ごとの空バッファチェインにリンク破壊が生じたとき、当該バッファ群をバッファ取得対象から除外し、一定時間経過後に空バッファチェインに再構成する点が開示されている。また、特許文献2には、シングルポインタ型バッファプールに対するシングルポインタ型バッファの取得時及び解放時に自動的にリンクを復旧する点が開示されている。
特開2000−285011号公報 特開平10−254763号公報
チェーン管理方式は、空きバッファだけでなく、パケットの読み出し対象となるバッファの管理にも適用することができる。この場合、例えば、バッファにパケットを書き込むたびに、当該アドレスをポインタチェーンに登録することにより、パケットを読み出すとき、ポインタチェーンから、読み出し対象となるアドレスのポインタを取得できる。
しかし、この場合、ポインタチェーンを記憶するメモリに障害が発生すると、リンクポインタが読み出せないために、ポインタチェーンのリンクが途切れてしまう。したがって、読み出し対象となるアドレスのポインタが取得できないことにより、パケットの読み出しが不可能となる。これにより、ポインタが返却されないため、ポインタチェーンに登録された記憶領域のアドレスが開放されず、空きバッファとして利用できないという問題が生ずる。このため、パケットを格納する記憶領域が不足し、最終的には、例えば装置のリセットなどにより対処していた。
そこで本件は上記の課題に鑑みてなされたものであり、バッファの管理機能を改善するパケット伝送装置、パケットバッファ、及びパケット処理方法を提供することを目的とする。
本明細書に記載のパケット伝送装置は、受信したパケットを格納するバッファと、前記バッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けて管理するバッファ管理部と、前記パケットを、前記バッファ管理部の指示に従い、前記複数のグループのうち、前記パケットを受信した期間に対応するグループに属する記憶領域に書き込む書込制御部と、前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせるポインタ管理部と、前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信する送信処理部とを有し、前記バッファ管理部は、前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放する。
本明細書に記載のパケットバッファは、受信したパケットを格納するパケットバッファであり、前記パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けられた複数の記憶領域を有し、前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に記憶し、前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスが、前記パケットの書き込み対象アドレスとして開放される。
本明細書に記載のパケット処理方法は、受信したパケットを格納するバッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分け、前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に書き込み、前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせ、前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信し、前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放する。
本明細書に記載のパケット伝送装置、パケットバッファ、及びパケット処理方法は、バッファの管理機能を改善できるという効果を奏する。
実施例に係るパケット伝送装置の機能構成を示す構成図である。 比較例に係るパケット処理方法を示す図である。 比較例において使用されるポインタの構成例を示す構成図である。 比較例に係るパケット処理方法において、メモリエラーが発生したときの状態を示す図である。 実施例に係るパケット処理方法を示す図である。 実施例において使用されるポインタの構成例を示す構成図である。 実施例に係るパケット処理方法において、メモリエラーが発生したときの状態を示す図である。 パケット出力部の機能構成を示す構成図である。 比較例におけるパケットの受信処理を示すラダーチャートである。 実施例におけるパケットの受信処理を示すラダーチャートである。 比較例におけるパケットの送信処理を示すラダーチャートである。 実施例におけるパケットの送信処理を示すラダーチャートである。 比較例における期間の切り替え時のパケットの受信処理(その1)を示すラダーチャートである。 比較例における期間の切り替え時のパケットの受信処理(その2)を示すラダーチャートである。 実施例における期間の切り替え時のパケットの受信処理を示すラダーチャートである。
図1は、実施例に係るパケット伝送装置の機能構成を示す構成図である。パケット伝送装置は、例えばレイヤ2スイッチであり、受信部10と、ヘッダ解析部11と、宛先検索部12と、スイッチ部13と、パケットスケジューラ14と、送信制御部15と、バッファ16と、送信部17とを有する。
受信部10は、PHY(Physical)/MAC(Media Access Control)レイヤの機能を有し、伝送路を介して他装置からのパケット(PKT)を受信する。パケットとしては、例えばイーサネット(登録商標)フレームが挙げられるが、これに限定されず、例えばIP(Internet Protocol)パケットであってもよい。
ヘッダ解析部11は、パケットのヘッダを解析して、ヘッダから宛先情報を取得する。宛先情報としては、例えばDA(Destination Address)が挙げられるが、これに限定されない。
宛先検索部12は、取得した宛先情報に基づいて、パケットのフローを決定する。フローは、パケットを送信するための論理ポートである。
スイッチ部13は、宛先情報に基づいて、複数のポート間においてパケットを交換する。これにより、パケット伝送装置は、異なる装置間においてパケットを転送する。
送信制御部15は、スイッチ部13から入力されたパケットを、バッファ16に一時的に格納する。また、送信制御部15は、パケットスケジューラ14の送信指示に従って、バッファ16からパケットを読み出して送信部17に出力する。バッファ(パケットバッファ)16は、パケットの格納手段であり、例えばメモリが挙げられるが、これに限定されず、ハードディスクドライブなどの他のデバイスであってもよい。
パケットスケジューラ14は、フローに応じて、パケットの送信タイミングをスケジューリングし、該スケジュールに従ったパケットの送信指示を送信制御部15に与える。スケジューリング手段としては、例えばWRR(Weighted Round Robin)が挙げられるが、これに限定されない。
送信部17は、PHY/MACレイヤの機能を有し、伝送路を介して他装置にパケット(PKT)を送信する。
パケットスケジューラ14、送信制御部15、及びバッファ16は、パケットの出力処理を行うパケット出力部Pとして機能する。以下に、パケット出力部Pにおいて用いるパケット処理方法について、実施例及び比較例を対比して説明する。
(比較例のパケット処理方法)
図2には、比較例に係るパケット処理方法が示されている。また、図3は、比較例において使用されるポインタの構成例を示す構成図である。
バッファ91は、複数のブロック910を有している。ブロック910は、1以上のパケットを記憶する記憶領域であり、例えば1024のアドレス空間を有する。本例では、各ブロック910を識別するため、0〜115(枠内の数字)のブロック番号を用いる。
ブロックポインタチェーン90は、図3(a)に示されるように、パケットを書き込み可能なブロック910、つまり、アドレスが開放されたブロック910のブロック番号を示すブロックポインタ同士をリンクさせた構造を有する。例えば、ブロック番号「96」のブロックポインタは、ブロック番号「103」のブロックポインタの位置を示す。
ブロックポインタチェーン90は、パケットが受信されるたびに、順次に、空きブロック910、つまりパケットを書き込み可能なブロック910のブロックポインタをアドレスポインタチェーン92に貸し出す。より具体的には、ブロックポインタチェーン90は、FIFO(First In First Out)と同様の構造を有し、先頭のブロックポインタ(つまり、最も先に登録されたブロック番号)から順次に貸出す。図2の例では、ブロック番号「96」のブロックポインタが貸し出されている。なお、図2において、複数のブロック910のうち、太線の枠のブロック910のブロックポインタ(「18」、「33」、「47」など)は、貸し出し中であることを意味する。
貸し出されたブロックポインタは、アドレスポインタチェーン92の最後尾にリンクされる。アドレスポインタチェーン92は、図3(b)に示されるように、フロー#0〜#15ごとに設けられ、次のブロックポインタ、つまり、次の書き込み対象または次の読み出し対象となるブロック番号を互いにリンクさせた構造を有する。さらに、アドレスポインタチェーン92は、次のブロックポインタの各々に対応する書き込みアドレス及び読み出しアドレスを有する。なお、アドレスポインタチェーン92は、例えばRAM(Random Access Memory)などの記憶手段により記憶される。
書き込みアドレス及び読み出しアドレスは、それぞれ、当該ブロック910のアドレスを示す。書き込みアドレスは、書き込み処理93によりパケット(パケットデータ)が書き込まれるたびに更新される。読み出しアドレスは、読み出し処理94によりパケット(パケットデータ)が読み出されるたびに更新される。すなわち、書き込みアドレスは、次のブロックポインタが示すブロック910における、パケットが書き込まれた最後尾アドレスを示す。読み出しアドレスは、次のブロックポインタが示すブロック910における、パケットが読み出された最後尾アドレスを示す。
ブロックポインタチェーン90は、アドレスポインタチェーン92の最後尾のブロック910の全アドレスに、書き込み処理93によるパケットの書き込みが完了するたびに、ブロックポインタを貸し出す。貸し出されたブロックポインタは、最後尾のブロック910、つまり次のブロックポインタにリンクされることにより、アドレスポインタチェーン92に登録される。これにより、新たに登録されたブロック910に対して書き込み処理93が行われる。
一方、パケットの読み出し処理94は、アドレスポインタチェーン92の先頭に位置する次のブロックポインタが示すブロック910から順次に行われる。これにより、読み出し処理94は、アドレスポインタチェーン92を辿るように行われる。なお、読み出されたパケットは、伝送路を介して他装置に伝送される。
アドレスポインタチェーン92に登録されたブロックポインタは、当該ブロック910の全アドレスからパケットの読み出し処理94が完了したとき、ブロックポインタチェーン90に返却される。図2の例において、ブロック番号「63」、「49」、「32」、及び「2」のブロックポインタは、全アドレスについて読み出し処理94が完了したため、ブロックポインタチェーン90に返却される。返却されたブロックポインタは、ブロックポインタチェーン90の最後尾にリンクされることにより登録される。
また、図2の例において、ブロック番号「81」のブロックポインタは、全アドレスについて読み出し処理94が完了しておらず、一部のアドレスについてのみ読み出しが行われただけであるので、当該ブロックポインタは、使用中の状態にあるとし、返却されない。なお、ブロックポインタ910は、アドレスポインタチェーン92に登録された後、所定の時間が経過すると、当該ブロック910について読み出し処理94が完了したか否かに関わらず、ブロックポインタチェーン90に返却される。
書き込み処理93及び読み出し処理94は、アドレスポインタチェーン92に登録された全ブロックポインタのうち、パケット処理の一周期内の複数の期間TR(Time Region)0〜TR7に応じた1以上のブロックポインタを対象として実行される。本例において、複数の期間TR0〜TR7は、それぞれ、パケット処理の一周期を均等に8分割して得られる期間とするが、これに限定されない。
書き込み処理93及び読み出し処理94は、複数の期間TR0〜TR7のうち、相違する期間に応じたブロックポインタを対象とし、該対象のブロックポインタは、一定時間が経過すると、順次に他の期間に移行する。つまり、期間TR0〜TR7は、繰り返される。図2の例において、書き込み処理93は、期間TR4に応じたブロックポインタ(ブロック番号「47」、「33」、「96」、「113」、「95」)を対象とし、一定時間が経過すると、次の期間TR5に応じたブロックポインタを対象とする。書き込み処理93の実行中、期間TR0〜TR7が移行したとき、アドレスポインタチェーン92における期間の境界を示すため、符号eで示されるように、エッジポインタが生成される。
エッジポインタは、図3(c)に示されるように、フロー#0〜#15及び期間TR0〜TR7ごとに、先頭ブロックポインタ及び先頭アドレスが設けられた構造を有する。先頭ブロックポインタは、アドレスポインタチェーン92において、フロー#0〜#15ごとに、各期間TR0〜TR7の先頭に位置するブロックポインタを示す。また、先頭アドレスは、先頭ブロックポインタが示すブロック910内において、各期間TR0〜TR7の先頭に位置するアドレスを示す。なお、エッジポインタは、例えばRAMなどの記憶手段により記憶される。
また、図2の例において、読み出し処理94は、期間TR2に応じたブロックポインタ(ブロック番号「63」、「49」、「81」、「32」、「2」)を対象とし、一定時間が経過すると、次の期間TR3に応じたブロックポインタを対象とする。読み出し処理94の実行中、期間TR0〜TR7が移行したとき、エッジポインタを目印として、新たに読み出し処理94の対象となるブロックポインタが決定される。
このように、比較例のパケット処理方法によると、バッファ91内のブロック910を時間領域(TR0〜TR7)ごとに分割して管理し、一定時間の経過後に、ブロックポインタを返却することにより、ブロック910のアドレスを開放する。これにより、当該ブロック910は、新たなパケットの書き込みが可能となり、ヘッドドロップ(Head Drop)方式によるパケット処理が行われる。なお、ヘッドドロップ方式とは、最も先にバッファに格納されたパケットから順次にパケット廃棄を行うものであり、バッファに格納された最新のパケットから順次に廃棄対象とするテイルドロップ(Tail Drop)方式とは対照的な方式である。
本比較例において、アドレスポインタチェーン92を記憶するメモリに障害が発生すると、リンクポインタが読み出せないために、アドレスポインタチェーン92のリンクが途切れてしまう。したがって、読み出し処理94の対象となるブロックポインタが取得できないことにより、パケットの読み出しが不可能となる。
図4には、比較例に係るパケット処理方法において、メモリエラーが発生したときの状態が示されている。ここでは、フロー#0のアドレスポインタチェーン92の障害により、ブロック番号「63」のブロックポインタが読み出せないと仮定する。このとき、アドレスポインタチェーン92のリンクが辿れないため、該ブロックポインタと同じ期間TR2に属する、後続のブロック番号「49」のブロックポインタの読み出しが不可能となる。
したがって、ブロック番号「49」のブロックポインタを、ブロックポインタチェーン90に返却することもできない。なお、図4には、次の期間TR3のエッジポインタ(ブロック番号「81」)までのブロックポインタとして、ブロック番号「49」のブロックポインタしか示されていないが、実際は、多数のブロックポインタが存在し、各ブロックポインタは返却不可能となる。
本比較例では、ブロックポインタが返却されない場合、当該ブロック910のアドレスが開放されず、空きブロックとして利用できない。このため、メモリエラーが頻繁に発生すると、パケットを格納するブロック910が不足し、最終的には、例えばパケット伝送装置のリセットなどにより対処する事態を招く。パケット伝送装置をリセットした場合、パケット伝送装置により提供されるサービス中の通信回線が、一時的に遮断されるなどの問題を生ずる。
(実施例に係るパケット処理方法)
これに対し、実施例に係るパケット処理方法は、バッファ内の記憶領域を、パケット処理の一周期内の複数の期間に対応する複数のグループに分け、パケットを受信期間に応じたグループの領域に書き込み、各記憶領域のアドレスを該グループの期間の到来時に開放する。これにより、バッファの管理機能が改善される。
図5には、実施例に係るパケット処理方法が示されている。また、図6は、実施例において使用されるポインタの構成例を示す構成図である。
バッファ(パケットバッファ)16は、複数のブロック160を有している。ブロック160は、1以上のパケットを記憶する記憶領域であり、例えば1024のアドレス空間を有する。本例では、各ブロック160を識別するため、0〜115(枠内の数字)のブロック番号を用いる。
バッファ16内の複数のブロック160は、パケット処理の一周期内の複数の期間TR0〜TR7にそれぞれ対応する複数のグループG0〜G7に分けられる。例えば、期間TR2に対応するグループG2には、ブロック番号「32」、「33」、「34」、・・・、「47」の16個のブロック160が属する。期間TR5に対応するグループG5には、ブロック番号「80」、「81」、「82」、・・・、「95」の16個のブロック160が属する。なお、本例において、複数の期間TR0〜TR7は、それぞれ、パケット処理の一周期を均等に8分割して得られる期間とするが、これに限定されない。
本例では、書き込み処理83の対象となるブロック160を管理するため、上記のブロックポインタチェーン90に代えて、ブロックカウンタ85が用いられる。ブロックカウンタ85は、図6(a)に示されるように、書き込み処理83の対象となるブロック160のブロックポインタを、各期間TR0〜TR7、つまり、各グループG0〜G7の先頭ブロック番号+0〜15としてカウントする。ブロックカウンタ85は、カウントにより得たブロックポインタ(カウンタ値)をアドレスポインタチェーン82に通知する。
ブロックカウンタ85が通知するブロックポインタは、1つのブロック160への書き込み処理83が完了するたびに、期間TR0〜TR7に応じた先頭ブロック番号(つまり初期値)に、1を加算する。例えば、ブロックカウンタ85は、グループG2の場合、ブロック番号「32」、「33」、「34」、・・・、「47」を順次に通知し、グループG5の場合、ブロック番号「80」、「81」、「82」、・・・、「95」を順次に通知する。このため、ブロックカウンタ85は、書き込み処理83の期間TR0〜TR7が移行するたびにリセットされる。なお、ブロックカウンタ85は、例えばFF(Flip Flop)により構成される。
通知されたブロックポインタは、アドレスポインタチェーン82の最後尾にリンクされる。アドレスポインタチェーン82は、図6(b)に示されるように、フロー#0〜#15ごとに設けられ、次のブロックポインタ、つまり、次の書き込み対象または読み出し対象となるブロック番号を互いにリンクさせた構造を有する。言い換えると、アドレスポインタチェーン82は、複数のブロック160のうち、パケットが書き込まれたブロック160のアドレス(ブロック番号)を示すブロックポインタ同士を順次にリンクさせた構造を有する。
さらに、アドレスポインタチェーン82は、次のブロックポインタの各々に対応する書き込みアドレス及び読み出しアドレスを有する。つまり、アドレスポインタチェーン82は、比較例のアドレスポインタチェーン92と同様の構成を有する。なお、アドレスポインタチェーン82は、例えばRAMなどの記憶手段により記憶される。
ブロックカウンタ85は、アドレスポインタチェーン82の最後尾のブロック160の全アドレスに、書き込み処理83によるパケットの書き込みが完了するたびに、ブロックポインタを通知する。通知されたブロックポインタは、最後尾のブロック160、つまり次のブロックポインタにリンクされることにより、アドレスポインタチェーン82に登録される。これにより、新たに登録されたブロック160に対して書き込み処理83が行われる。
一方、パケットの読み出し処理84は、アドレスポインタチェーン82の先頭に位置する次のブロックポインタが示すブロック160から順次に行われる。より具体的には、読み出し処理84において、アドレスポインタチェーン82のブロックポインタが順次に参照され、複数のブロック160のうち、ブロックポインタが示すブロック番号(アドレス)のブロック160からパケットが読み出される。これにより、読み出し処理84は、アドレスポインタチェーン82を辿るように行われる。なお、読み出されたパケットは、伝送路を介して他装置に送信される。
書き込み処理83及び読み出し処理84は、それぞれ、上記の期間TR0〜TR7に応じたグループG0〜G7のブロックポインタを対象として実行される。書き込み処理83及び読み出し処理84の期間TR0〜TR7は、相違し、一定時間の経過により順次に他の期間に移行する。つまり、期間TR0〜TR7は、繰り返される。
このため、書き込み処理83において、パケットは、複数のグループG0〜G7のうち、パケットを受信した期間TRに応じたグループに属するブロック160に書き込まれる。図5の例では、書き込み処理83は、グループG5に属するブロック160を対象として実行される。このとき、ブロックカウンタ85は、ブロック160への書き込みが完了するたび、グループG5に属するブロック160のブロック番号「80」、「81」、「82」、・・・、「95」を順次に通知する。
また、読み出し処理84において、パケットは、複数のグループG0〜G7のうち、パケットを送信する期間TR0〜TR7に応じたグループに属するブロック160から読み出される。図5の例では、読み出し処理84は、グループG2に属するブロック160を対象として実行される。つまり、読み出し処理84は、アドレスポインタチェーン82に登録されたブロック番号「32」、「34」、及び「33」を対象として実行される。
書き込み処理83の実行中、期間TR0〜TR7が移行したとき、アドレスポインタチェーン82における期間の先頭のブロックポインタを示すため、符号mで示されるように、マスタポインタが生成される。マスタポインタは、図6(c)に示されるように、フロー#0〜#15及び期間TR0〜TR7ごとに、先頭ブロックポインタ及び「EN」が設けられた構造を有する。先頭ブロックポインタは、アドレスポインタチェーン82において、フロー#0〜#15ごとに、各期間TR0〜TR7の先頭に位置するブロックポインタを示す。また、「EN」は、登録されている先頭ブロックポインタが有効であるか否かを示す。なお、マスタポインタは、例えばRAMなどの記憶手段により記憶される。
また、図5の例において、読み出し処理84は、期間TR2に応じたブロックポインタ(ブロック番号「「32」、「34」、及び「33」)を対象とし、一定時間が経過すると、次の期間TR3に応じたブロックポインタを対象とする。読み出し処理84の実行中、期間TR0〜TR7が移行したとき、マスタポインタを目印として、新たに読み出し処理84の対象となるブロックポインタが決定される。
複数のブロック160は、複数のグループG0〜G7の各々について、当該グループに対応する期間TR0〜TR7が到来したときにアドレスが開放される。つまり、各グループG0〜G7に属するブロック160は、パケット処理の一周期が経過すると、パケットの書き込みが可能な状態とされる。
ブロックカウンタ85は、書き込み処理83の期間TR0〜TR7が移行するたび、つまり、期間TR0〜TR7が切り替わるたび、リセットされる。そして、ブロックカウンタ85は、移行後の期間TR0〜TR7に対応するグループG0〜G7に属するブロック160のブロックポインタを、該ブロック160の読み出し処理84が完了したか否かに関わらず、アドレスポインタチェーン82に通知する。
これにより、各ブロック160のアドレスは、パケット処理の一周期が経過することにより開放される。さらに、実施例では、書き込み処理83の対象となるブロック160を、期間TR0〜TR7に対応するグループに分け、ブロックカウンタ85により管理するので、上記の比較例とは異なり、読み出し処理84の完了後に、ブロックポインタを返却する必要がない。
したがって、実施例に係るパケット処理方法によると、アドレスポインタチェーン82を記憶するメモリに障害が発生した場合でも、上述した問題を生ずることがない。図7には、実施例に係るパケット処理方法において、メモリエラーが発生したときの状態が示されている。ここでは、フロー#0のアドレスポインタチェーン82の障害により、ブロック番号「32」のブロックポインタが読み出せないと仮定する。このとき、アドレスポインタチェーン82のリンクが辿れないため、該ブロックポインタと同じ期間TR2に属する、後続のブロック番号「34」のブロックポインタの読み出しが不可能となる。
しかし、パケット処理の一周期が経過して、再び期間TR2が到来したとき、ブロックカウンタ85が、グループG2について、新たにブロックポインタを通知するので、グループG2に属するブロック160のアドレスは開放される。なお、このとき、メモリエラーが、宇宙線などに起因する一時的な障害である場合、ブロック番号「32」のブロックポインタに関するエラーの再発の可能性は低い。さらに、期間TR0〜TR7とブロック160のグループG0〜G7が互いに対応付けられているため、エラーが生じた期間TR0〜TR7に基づいて、障害があるブロック160のブロック番号(アドレス)が特定される。
このように、実施例において、各ブロック160のアドレスは、ブロックポインタの返却ではなく、パケット処理の一周期の経過により開放される。したがって、パケット処理は、メモリエラーが発生しても、パケット伝送装置のリセットなどの対処を行うことなく、継続される。
(パケット伝送装置)
次に、実施例に係るパケット伝送装置の機能構成を述べる。図8は、パケット出力部P(図1参照)の機能構成を示す構成図である。
パケット伝送装置は、バッファ16と、受信処理部2と、送信処理部3と、期間管理部5と、マスタポインタ記憶部6と、ポインタチェーン記憶部7とを有する。受信処理部2は、バッファ管理部20と、フロー識別部21と、書込制御部22と、受信側ポインタチェーン管理部23と、マスタポインタ管理部24とを有する。送信処理部3は、マスタポインタ取得部30と、送信側ポインタチェーン管理部31と、読出制御部32とを有する。
バッファ16は、複数のブロック(記憶領域)160を有し、受信したパケットを格納する。マスタポインタ記憶部6は、例えばRAMであり、マスタポインタを記憶する。ポインタチェーン記憶部7は、例えばRAMであり、アドレスポインタチェーン82を記憶する。
受信処理部2及び送信処理部3は、上記の書き込み処理83及び読み出し処理84を行う。期間管理部5は、パケット処理の周期TR0〜TR7を管理し、一周期内の期間を受信処理部2及び送信処理部3に通知する。書き込み処理83及び読み出し処理84の期間TR0〜TR7は、相違し、一定時間の経過後に、次の期間に移行する。
フロー識別部21は、受信したパケットの宛先情報を参照してフロー#0〜#16を識別する。フロー識別部21は、フロー#0〜#16を示すフローIDとともにパケットを書込制御部22に出力し、また、フローIDをマスタポインタ管理部24に出力する。
バッファ管理部20は、バッファ16内の複数のブロック160を、パケット処理の一周期内の複数の期間TR0〜TR7にそれぞれ対応する複数のグループG0〜G7に分けて管理する。バッファ管理部20は、複数のグループG0〜G7の各々について、複数のブロック160のブロック番号(アドレス)を、ブロックカウンタ85により管理し、書込制御部22に通知する。より具体的には、バッファ管理部20は、受信側ポインタチェーン管理部23の要求に応じて、期間管理部5から通知された期間TR0〜TR7に応じたブロックポインタを通知する。
書込制御部22は、パケットを、バッファ管理部20の指示に従い、複数のグループG0〜G7のうち、パケットを受信した期間に対応するグループに属するブロック160に書き込む。より具体的には、書込制御部22は、受信側ポインタチェーン管理部23を介して、期間TR0〜TR7及びフローIDに応じたブロックポインタを取得し、ブロックポインタが示すブロック160にパケットを書き込む。
受信側ポインタチェーン管理部(ポインタ管理部)23は、複数のブロック160のうち、パケットが書き込まれたブロックのブロック番号(アドレス)を示すポインタ同士を順次にリンクさせることにより、アドレスポインタチェーン82を更新する。また、受信側ポインタチェーン管理部23は、書込制御部22による書き込みが行われるたびに、アドレスポインタチェーン82の書き込みアドレスを更新する。
マスタポインタ管理部24は、期間管理部5から期間TR0〜TR7が通知されたとき、フロー識別部21から通知されたフローIDに応じたマスタポインタを生成し、マスタポインタ記憶部6に書き込む。このとき、マスタポインタ管理部24は、受信側ポインタチェーン管理部23から書き込み中のブロック160のブロックポインタを取得する。
送信処理部3は、アドレスポインタチェーン82のポインタを順次に参照し、複数のブロック160のうち、ポインタが示すブロック番号(アドレス)のブロック160からパケットを読み出して送信する。より具体的には、送信処理部3は、複数のグループG0〜G7のうち、パケットを送信する期間に応じたグループに属するブロック160からパケットを読み出して送信する。このため、送信対象のパケットが、期間TR0〜TR7に応じて決定され、パケット送信処理が容易となる。
マスタポインタ取得部30は、マスタポインタ記憶部6から、期間管理部5から通知された期間TR0〜TR7に応じたマスタポインタを取得する。マスタポインタ取得部30は、マスタポインタを送信側ポインタチェーン管理部31に通知する。
送信側ポインタチェーン管理部31は、マスタポインタ取得部30から通知されたマスタポインタに従って、アドレスポインタチェーン82のブロックポインタを取得して、読出制御部32に通知する。読出制御部32は、送信側ポインタチェーン管理部31から通知されたブロックポインタが示すブロック160から、パケットを読み出す。送信側ポインタチェーン管理部31は、読出制御部32によるパケットの読み出しが行われるたびに、アドレスポインタチェーン82の読み出しアドレスを更新する。
バッファ管理部20は、複数のグループG0〜G7の各々に対応する期間TR0〜TR7が到来したとき、複数の記憶領域160のうち、当該グループに属する記憶領域のアドレスを、パケットの書き込み対象アドレスとして開放する。このため、図5〜図7を参照して述べた内容と同様の効果が得られる。
また、この構成によると、上述した内容に加え、ロジック量(例えばゲート規模)やメモリなどの記憶容量が低減される。以下に、実施例に係るパケット伝送装置の処理を、図2〜図4に示された比較例における処理と対比して説明する。
図9は、比較例におけるパケットの受信処理を示すラダーチャートである。受信処理において、アドレスポインタチェーン92は、書き込み処理93が行われるたびに、書き込みアドレスが更新される。そして、1ブロック(BLK)910分の書き込みが終了すると、ポインタチェーン管理処理に対し、ブロックポインタが要求される。
ポインタチェーン管理処理において、ブロックポインタチェーン90を記憶するメモリにアクセスすることにより、空きブロック910のブロックポインタが取得される。空きブロック910のブロックポインタは、受信処理に対して貸し出される。受信処理において、貸し出されたブロックポインタは、アドレスポインタチェーン92の次のブロックポインタ(図3(b)参照)として書き込まれる。
これにより、受信処理は、該ブロックポインタが示す新たなブロック910に対して行われ、アドレスポインタチェーン92は、書き込み処理93が行われるたびに、書き込みアドレスが更新される。
一方、図10は、実施例におけるパケットの受信処理を示すラダーチャートである。つまり、図10には、図8の受信処理部2の処理が示されている。
アドレスポインタチェーン82は、書き込み処理83が行われるたびに、書き込みアドレスが更新される。そして、1ブロック(BLK)160分の書き込みが終了すると、ポインタチェーン管理処理(バッファ管理部20)に対し、ブロックポインタが要求される。
ポインタチェーン管理処理において、ブロックカウンタ85からブロックポインタが取得され、受信処理に対して通知される。つまり、バッファ管理部20は、複数のグループG0〜G7の各々について、複数のブロック160のブロックポインタ(アドレス)を、カウンタにより管理し、書込制御部22に通知する。
このとき、ブロックカウンタ85は、カウンタ値が更新されることにより、次に通知するブロックポインタを準備する。受信処理において、通知されたブロックポインタは、アドレスポインタチェーン82の次のブロックポインタ(図6(b)参照)として書き込まれる。
これにより、受信処理は、該ブロックポインタが示す新たなブロック160に対して行われ、アドレスポインタチェーン82は、書き込み処理83が行われるたびに、書き込みアドレスが更新される。
図9及び図10を対比すると理解されるように、比較例では、ブロックポインタチェーン90が用いられるのに対し、実施例では、ブロックカウンタ85が用いられる。ブロックポインタチェーン90は、RAMなどのメモリにより構成されるのに対し、ブロックカウンタ85は、FFを用いたカウンタ回路により構成される。したがって、実施例によると、比較例よりメモリの容量が低減され、処理が簡素化される。
また、図11は、比較例におけるパケットの送信処理を示すラダーチャートである。送信処理において、アドレスポインタチェーン92は、パケットの読み出し処理94が行われるたびに、読み出しアドレスが更新される。そして、1ブロック(BLK)910分の読み出しが終了すると、アドレスポインタチェーン92から次のブロックポインタが読み出される。また、読み出しが終了したブロックポインタは、返却される。
ポインタチェーン管理処理では、返却されたブロックポインタを、空きブロック910として、ブロックポインタチェーン90に登録するため、ブロックポインタチェーン90が記憶されたメモリへのアクセスが行われる。送信処理では、次のブロック910に対する読み出し処理94が行われ、アドレスポインタチェーン92の読み出しアドレスが更新される。
一方、図12は、実施例におけるパケットの送信処理を示すラダーチャートである。つまり、図12は、図8に示された送信処理部3の処理を示す。
送信処理において、アドレスポインタチェーン82は、パケットの読み出し処理84が行われるたびに、読み出しアドレスが更新される。そして、1ブロック(BLK)160分の読み出しが終了すると、アドレスポインタチェーン82から次のブロックポインタが読み出される。送信処理では、次のブロック160に対する読み出し処理84が行われ、アドレスポインタチェーン82の読み出しアドレスが更新される。
図11及び図12を対比すると理解されるように、比較例では、ポインタの返却が行われるのに対し、実施例では、ポインタの返却は行われない。したがって、実施例によると、比較例よりメモリの容量が低減され、処理が簡素化される。
また、比較例では、以下に述べるように、期間の切り替え(移行)の発生時、ブロックポインタの切り替えが行われる場合と、ブロックポインタの切り替えが行われない場合とが存在する。図13は、比較例における期間の切り替え時のパケットの受信処理(その1)を示すラダーチャートである。図13の例は、ブロックポインタの切り替えが行われない場合を示す。
受信処理において、書き込み処理93によりアドレスポインタチェーン92の書き込みアドレスの更新中、期間(TR)の切り替えが発生すると、エッジポインタ管理処理に対して、先頭ブロックポインタ及び先頭アドレスが通知され、エッジポインタが生成される。
一方、図14の例は、ブロックポインタの切り替えが行われない場合を示す。受信処理において、書き込み処理93により1ブロック(BLK)910分の書き込みが終了したときに、期間の切り替えが発生すると、図13に示されたエッジポインタ管理処理に加えて、ポインタチェーン管理処理が行われる。つまり、書き込み対象のブロックを切り替えるため、ブロックポインタチェーン90からブロックポインタの貸し出しが行われる。
図13及び図14を対比すると理解されるように、比較例では、期間の切り替えの発生時、ブロックポインタの切り替えが行われる場合と、ブロックポインタの切り替えが行われない場合とが存在する。このため、ハードウェアの回路構成が複雑化し、ロジック量が増加する。
これに対し、実施例では、上述したように、ブロック160が、期間TR0〜TR7に応じたグループG0〜G7に分けて管理されるので、期間の切り替えの発生のたびに、ブロックポインタの取得が行われる。
図15は、実施例における期間の切り替え時のパケットの受信処理を示すラダーチャートである。受信処理において、書き込み処理83の実行中、期間の切り替えが発生すると、マスタポインタ管理処理及びポインタチェーン管理処理が行われる。
ポインタチェーン管理処理では、期間の切り替えに応じて、ブロックカウンタ85のリセットが行われ、カウント値が初期化される。次に、ブロックポインタの要求に応じて、ブロックカウンタ85からブロックポインタが取得される。取得されたブロックポインタは、受信処理に対して通知される。また、ブロックカウンタ85は、カウンタ値が更新されることにより、次に通知するブロックポインタを準備する。
受信処理において、通知されたブロックポインタは、アドレスポインタチェーン82の次のブロックポインタとして書き込まれる。また、受信処理において、マスタポインタ管理処理(マスタポインタ管理部24)に対して、先頭ブロックポインタが通知され、マスタポインタが生成される。
そして、受信処理は、該ブロックポインタが示す新たなブロック160に対して行われ、アドレスポインタチェーン82は、書き込み処理83が行われるたびに、書き込みアドレスが更新される。
このように、実施例では、期間の切り替えの発生時において処理の場合分けが行われないので、比較例と対比すると、ロジック量が低減され、ハードウェアの回路構成が簡単化される。
これまで述べたように、実施例に係るパケット伝送装置は、受信したパケットを格納するバッファ16と、バッファ管理部20と、書込制御部22と、ポインタ管理部23とを有する。バッファ管理部20は、バッファ16内の複数の記憶領域(ブロック)160を、パケット処理の一周期内の複数の期間TR0〜TR7にそれぞれ対応する複数のグループG0〜G7に分けて管理する。
書込制御部22は、パケットを、バッファ管理部20の指示に従い、複数のグループG0〜G7のうち、パケットを受信した期間TR0〜TR7に対応するグループに属する記憶領域160に書き込む。ポインタ管理部23は、複数の記憶領域160のうち、パケットが書き込まれた記憶領域のアドレス(ブロック番号)を示すポインタ(ブロックポインタ)同士を順次にリンクさせる。
送信処理部3は、ポインタを順次に参照し、複数の記憶領域160のうち、ポインタが示すアドレスの記憶領域からパケットを読み出して送信する。バッファ管理部20は、複数のグループG0〜G7の各々に対応する期間TR0〜TR7が到来したとき、複数の記憶領域160のうち、当該グループに属する記憶領域のアドレスを、パケットの書き込み対象アドレスとして開放する。
実施例に係るパケット伝送装置によると、バッファ管理部20は、バッファ16内の複数の記憶領域160を、パケット処理の一周期内の複数の期間TR0〜TR7にそれぞれ対応する複数のグループG0〜G7に分けて管理する。書込制御部22は、パケットを、バッファ管理部20の指示に従い、パケット処理の周期内の期間TR0〜TR7に応じたグループG0〜G7に属する記憶領域160に書き込むので、期間TR0〜TR7及び記憶領域160が互いに対応付けられる。このため、エラーが生じた期間TR0〜TR7に基づいて、障害がある記憶領域160のアドレスが、特定される。
また、ポインタ管理部23は、複数の記憶領域160のうち、パケットが書き込まれた記憶領域160のアドレスを示すポインタ同士を順次にリンクさせる。送信処理部3は、ポインタを参照して、ポインタが示すアドレスの記憶領域160からパケットを読み出して送信するので、パケットが書き込まれた記憶領域160から、順次にパケットが読み出されて送信される。
また、バッファ管理部20は、複数のグループG0〜G7の各々に対応する期間TR0〜TR7が到来したとき、複数の記憶領域160のうち、当該グループに属する記憶領域のアドレスを、パケットの書き込み対象アドレスとして開放する。このため、各グループに属する記憶領域160は、周期内の当該期間が到来すると、パケットの書き込みが可能となる。
したがって、送信処理部3は、記憶領域160のアドレスの開放のために、パケットの読み出し後にポインタを返却する必要がないので、メモリエラーによりポインタが読み出せなくても、パケットを書き込む記憶領域160が不足することはない。よって、実施例に係るパケット装置によると、バッファの管理機能が改善される。
また、実施例に係るパケットバッファ16は、受信したパケットを格納し、パケット処理の一周期内の複数の期間TR0〜TR7にそれぞれ対応する複数のグループG0〜G7に分けられた複数の記憶領域160を有する。パケットバッファ16は、パケットを、複数のグループG0〜G7のうち、パケットを受信した期間TR0〜TR7に応じたグループに属する記憶領域160に記憶する。複数のグループG0〜G7の各々に対応する期間TR0〜TR7が到来したとき、複数の記憶領域160のうち、当該グループに属する記憶領域のアドレスは、パケットの書き込み対象アドレスとして開放される。
実施例に係るパケットバッファ16は、上記のパケット伝送装置と構成が重複するので、上述した内容と同様の作用効果を奏する。
また、実施例に係るパケット処理方法は、以下の(1)〜(5)の各工程を含む。
(1)受信したパケットを格納するバッファ16内の複数の記憶領域160を、パケット処理の一周期内の複数の期間TR0〜TR7にそれぞれ対応する複数のグループG0〜G7に分ける工程
(2)パケットを、複数のグループG0〜G7のうち、パケットを受信した期間に応じたグループに属する記憶領域160に書き込む工程
(3)複数の記憶領域160のうち、パケットが書き込まれた記憶領域のアドレス(ブロック番号)を示すポインタ(ブロックポインタ)同士を順次にリンクさせる工程
(4)ポインタを順次に参照し、複数の記憶領域160のうち、ポインタが示すアドレスの記憶領域160からパケットを読み出して送信する工程
(5)複数のグループG0〜G7の各々に対応する期間TR0〜TR7が到来したとき、複数の記憶領域160のうち、当該グループに属する各記憶領域のアドレスを、パケットの書き込み対象アドレスとして開放する工程
実施例に係るパケット処理方法は、上記のパケット伝送装置と同様の構成を有するので、上述した内容と同様の作用効果を奏する。
以上、好ましい実施例を参照して本発明の内容を具体的に説明したが、本発明の基本的技術思想及び教示に基づいて、当業者であれば、種々の変形態様を採り得ることは自明である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1) 受信したパケットを格納するバッファと、
前記バッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けて管理するバッファ管理部と、
前記パケットを、前記バッファ管理部の指示に従い、前記複数のグループのうち、前記パケットを受信した期間に対応するグループに属する記憶領域に書き込む書込制御部と、
前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせるポインタ管理部と、
前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信する送信処理部とを有し、
前記バッファ管理部は、前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放することを特徴とするパケット伝送装置。
(付記2) 前記送信処理部は、前記複数のグループのうち、前記パケットを送信する期間に応じたグループに属する記憶領域から前記パケットを読み出して送信することを特徴とする付記1に記載のパケット伝送装置。
(付記3) 前記バッファ管理部は、前記複数のグループの各々について、前記複数の記憶領域のアドレスを、カウンタにより管理し、前記書込制御部に通知することを特徴とする付記1または2に記載のパケット伝送装置。
(付記4) 受信したパケットを格納するパケットバッファにおいて、
パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けられた複数の記憶領域を有し、
前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に記憶し、
前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスが、前記パケットの書き込み対象アドレスとして開放されることを特徴とするパケットバッファ。
(付記5) 前記複数のグループのうち、前記パケットを送信する期間に応じたグループに属する記憶領域から前記パケットが読み出されることを特徴とする付記4に記載のパケットバッファ。
(付記6) 前記複数のグループの各々について、前記複数の記憶領域のアドレスが、カウンタにより管理されることを特徴とする付記4または5に記載のパケットバッファ。
(付記7) 受信したパケットを格納するバッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分け、
前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に書き込み、
前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせ、
前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信し、
前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放することを特徴とするパケット処理方法。
(付記8) 前記複数のグループのうち、前記パケットを送信する期間に応じたグループに属する記憶領域から前記パケットを読み出すことを特徴とする付記7に記載のパケット処理方法。
(付記9) 前記複数のグループの各々について、前記複数の記憶領域のアドレスを、カウンタにより管理することを特徴とする付記7または8に記載のパケット処理方法。
2 受信処理部
3 送信処理部
16 バッファ(パケットバッファ)
160 ブロック(記憶領域)
20 バッファ管理部
22 書込制御部
23 受信側ポインタチェーン管理部(ポインタ管理部)

Claims (5)

  1. 受信したパケットを格納するバッファと、
    前記バッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けて管理するバッファ管理部と、
    前記パケットを、前記バッファ管理部の指示に従い、前記複数のグループのうち、前記パケットを受信した期間に対応するグループに属する記憶領域に書き込む書込制御部と、
    前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせるポインタ管理部と、
    前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信する送信処理部とを有し、
    前記バッファ管理部は、前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放することを特徴とするパケット伝送装置。
  2. 前記送信処理部は、前記複数のグループのうち、前記パケットを送信する期間に応じたグループに属する記憶領域から前記パケットを読み出して送信することを特徴とする請求項1に記載のパケット伝送装置。
  3. 前記バッファ管理部は、前記複数のグループの各々について、前記複数の記憶領域のアドレスを、カウンタにより管理し、前記書込制御部に通知することを特徴とする請求項1または2に記載のパケット伝送装置。
  4. 受信したパケットを格納するパケットバッファにおいて、
    パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分けられた複数の記憶領域を有し、
    前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に記憶し、
    前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスが、前記パケットの書き込み対象アドレスとして開放されることを特徴とするパケットバッファ。
  5. 受信したパケットを格納するバッファ内の複数の記憶領域を、パケット処理の一周期内の複数の期間にそれぞれ対応する複数のグループに分け、
    前記パケットを、前記複数のグループのうち、前記パケットを受信した期間に応じたグループに属する記憶領域に書き込み、
    前記複数の記憶領域のうち、前記パケットが書き込まれた記憶領域のアドレスを示すポインタ同士を順次にリンクさせ、
    前記ポインタを順次に参照し、前記複数の記憶領域のうち、前記ポインタが示すアドレスの前記記憶領域から前記パケットを読み出して送信し、
    前記複数のグループの各々に対応する期間が到来したとき、前記複数の記憶領域のうち、当該グループに属する記憶領域のアドレスを、前記パケットの書き込み対象アドレスとして開放することを特徴とするパケット処理方法。
JP2013168346A 2013-08-13 2013-08-13 パケット伝送装置、パケットバッファ及びパケット処理方法 Active JP6123568B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013168346A JP6123568B2 (ja) 2013-08-13 2013-08-13 パケット伝送装置、パケットバッファ及びパケット処理方法
US14/320,768 US9380006B2 (en) 2013-08-13 2014-07-01 Packet processing method, and packet transmission apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013168346A JP6123568B2 (ja) 2013-08-13 2013-08-13 パケット伝送装置、パケットバッファ及びパケット処理方法

Publications (2)

Publication Number Publication Date
JP2015037249A JP2015037249A (ja) 2015-02-23
JP6123568B2 true JP6123568B2 (ja) 2017-05-10

Family

ID=52466824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013168346A Active JP6123568B2 (ja) 2013-08-13 2013-08-13 パケット伝送装置、パケットバッファ及びパケット処理方法

Country Status (2)

Country Link
US (1) US9380006B2 (ja)
JP (1) JP6123568B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6759166B2 (ja) 2017-08-28 2020-09-23 株式会社東芝 磁気ディスク装置及びリード方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2643249B2 (ja) * 1988-03-10 1997-08-20 日本電気株式会社 空バッファ管理方式
JPH10254763A (ja) 1997-03-10 1998-09-25 Nec Corp シングルポインタ型バッファプール管理方式
US6744762B1 (en) * 1998-09-01 2004-06-01 Canon Kabushiki Kaisha Node device, communication network having a plurality of node devices, and control method therefor
JP3454747B2 (ja) * 1999-03-30 2003-10-06 日立ソフトウエアエンジニアリング株式会社 空バッファ管理方法
US6870837B2 (en) * 1999-08-19 2005-03-22 Nokia Corporation Circuit emulation service over an internet protocol network
US6738379B1 (en) * 2000-03-30 2004-05-18 Telefonaktiebolaget Lm Ericsson (Publ) Method of preserving data packet sequencing
US6781898B2 (en) * 2002-10-30 2004-08-24 Broadcom Corporation Self-repairing built-in self test for linked list memories
KR100667700B1 (ko) * 2004-12-02 2007-01-12 한국전자통신연구원 휴대 인터넷 시스템의 단말 장치와 단말 장치에서의 상향데이터 전송 방법
JP4832278B2 (ja) * 2006-12-26 2011-12-07 富士通株式会社 フレーム転送方法及び装置

Also Published As

Publication number Publication date
JP2015037249A (ja) 2015-02-23
US20150049771A1 (en) 2015-02-19
US9380006B2 (en) 2016-06-28

Similar Documents

Publication Publication Date Title
US11044204B1 (en) Visibility packets with inflated latency
US10673770B1 (en) Intelligent packet queues with delay-based actions
US8364864B2 (en) Multi-bank queuing architecture for higher bandwidth on-chip memory buffer
US7555579B2 (en) Implementing FIFOs in shared memory using linked lists and interleaved linked lists
US7742405B2 (en) Network processor architecture
US10523576B1 (en) High-performance garbage collection in a network device
US10313255B1 (en) Intelligent packet queues with enqueue drop visibility and forensics
US11968129B1 (en) Delay-based tagging in a network switch
US10263919B1 (en) Buffer assignment balancing in a network device
US20100254387A1 (en) Network processor architecture
JP5148707B2 (ja) 待ち行列形成方法
US8306045B2 (en) Packet forwarding apparatus and method for discarding packets
US10038571B2 (en) Method for reading and writing forwarding information base, and network processor
US9584637B2 (en) Guaranteed in-order packet delivery
US8588239B2 (en) Relaying apparatus and packet relaying apparatus
CN102882809B (zh) 一种基于报文缓存的网络限速方法及装置
US20220210078A1 (en) Method implemented by computer means of a communicating entity in a packet-switched network, and computer program and computer-readable non-transient recording medium thereof, and communicating entity of a packet-switched network
JP6123568B2 (ja) パケット伝送装置、パケットバッファ及びパケット処理方法
US9641466B2 (en) Packet storage distribution based on available memory
US20090232140A1 (en) Packet transmission apparatus and method
US9338219B2 (en) Direct push operations and gather operations
US9319333B2 (en) Instantaneous random early detection packet dropping
JP2011234114A (ja) フレーム処理装置及びフレーム処理方法
US10228852B1 (en) Multi-stage counters
WO2003090018A2 (en) Network processor architecture

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170320

R150 Certificate of patent or registration of utility model

Ref document number: 6123568

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150