JP5416168B2 - 通信装置 - Google Patents

通信装置 Download PDF

Info

Publication number
JP5416168B2
JP5416168B2 JP2011112348A JP2011112348A JP5416168B2 JP 5416168 B2 JP5416168 B2 JP 5416168B2 JP 2011112348 A JP2011112348 A JP 2011112348A JP 2011112348 A JP2011112348 A JP 2011112348A JP 5416168 B2 JP5416168 B2 JP 5416168B2
Authority
JP
Japan
Prior art keywords
frame
read
amount
scheduler
bytes
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
JP2011112348A
Other languages
English (en)
Other versions
JP2012244399A (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 Telecom Networks Ltd
Original Assignee
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 Telecom Networks Ltd filed Critical Fujitsu Telecom Networks Ltd
Priority to JP2011112348A priority Critical patent/JP5416168B2/ja
Priority to US13/414,558 priority patent/US8953473B2/en
Publication of JP2012244399A publication Critical patent/JP2012244399A/ja
Application granted granted Critical
Publication of JP5416168B2 publication Critical patent/JP5416168B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • H04L49/1576Crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix

Landscapes

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

Description

この発明は、データ通信技術に関し、特に通信装置に関する。
近年、光ファイバによるブロードバンドの急速な普及により、通信におけるアクセス回線速度は、最大100Mbpsから1Gbpsへ高速化が進展している。さらに、10GE−PON(Gigabit Ethernet-Passive Optical Network、「Ethernet」は登録商標)の標準化により、アクセス回線のさらなる高速化も想定される。
インターネットアクセスは基本的にベストエフォートサービスであり、複数の加入者のトラフィックは有限の通信帯域を共有して通信が行われる。このような通信形態においては、専用線等に求められる帯域保証ではなく、各加入者のトラフィックを公平に取り扱うよう帯域制御を行う通信装置が用いられることがある。なお、本明細書での「帯域」は、所定の単位時間あたりの通信データ量であるとも言える。
特開2004−153482号公報
公平な帯域制御を実現する従来の技術としてWRR(Weighted Round Robin)キューバッファ読み出し制御方式が知られている。この方式では、論理的な加入者回線(加入者側の装置と他装置との論理的な通信セッションとも言える)である入力フローごとに、フレームを一時的に保持するキューバッファを具備する。通信装置に入力されたフレームは、入力フローごとのキューバッファへ格納される。スケジューラは、フレーム読み出しを行うキューバッファを一定周期で巡回的に決定することにより各フローにおける出力データ量が均等になるようにする。
1周期における読み出しデータ量(ここでは「X」とする)を最短フレーム長より大きくすると、最短フレームが1つ蓄積されたキューバッファからフレームを読み出す場合、読み出しデータ量はXよりも小さくなる。すなわち、出力帯域よりも少ないデータ量しか読み出されず、出力帯域に余剰が発生することになる。また、余剰分を他のキューバッファのフレームに割り当てる場合、余剰量に応じて動的にかつ公平に割り当てる方式が必要となるが、この場合、方式が複雑化しやすく適切な方法もなかった。
出力帯域の余剰が発生しないように、X以上にフレームが蓄積されたキューバッファからのみフレームを読み出すよう制限することも考えられる。しかしこの場合、Xより小さいフレーム蓄積量しかないキューバッファからはフレームが読み出されなくなってしまう。また、Xを最短フレーム長とした場合は出力帯域の余剰は発生しない。しかし通信速度が速くなると、最短フレームの処理に費やすことができる時間(以下、「フレーム処理猶予時間」とも呼ぶ。)は短くなりすなわち1周期が短くなる。通信速度の一層の高速化が見込まれる状況において、従来の技術では、フレーム処理猶予時間内に、次のフレーム読み出しを行うべきキューバッファを決定することが一層困難になることが考えられる。
本発明は、こうした課題に鑑みてなされたものであり、その主たる目的は、通信装置において公平な帯域制御と通信速度の向上への対応との両立を支援するための技術を提供することである。
上記課題を解決するために、本発明のある態様の通信装置は、通信の管理単位であるフローごとの入力フレームをそれぞれ保持する複数のフレームバッファと、複数のフレームバッファを巡回して、外部へ出力すべきフレームを各フレームバッファから読み出す第1スケジューラおよび第2スケジューラと、を備える。第1スケジューラは、本通信装置の通信速度より低速で、各フレームバッファに対する1回の巡回あたり1フレームを読み出し、第2スケジューラは、各フレームバッファに対する1回の巡回あたり、最短フレーム長より大きい所定の基準値を読み出しの制限量として1以上のフレームを読み出す。
なお、以上の構成要素の任意の組合せ、本発明の表現を装置、方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、通信装置において公平な帯域制御と通信速度の向上への対応との両立を支援することができる。
実施の形態の通信システムの構成を示す図である。 図1の通信装置の機能構成を示すブロック図である。 逐次スケジューラの動作を詳細に示すフローチャートである。 調整スケジューラの動作を詳細に示すフローチャートである。 実施の形態の通信装置におけるフレーム読み出しの具体例を示す図である。 実施の形態の通信装置におけるフレーム読み出しの具体例を示す図である。
実施の形態の通信装置は、複数のキューバッファを巡回してフレームを読み出すスケジューラを2つ備える。第1のスケジューラは、通信装置の通信速度(例えば10Gbps)よりも低速(例えば1Gbps)で、1周期あたり読み出し対象のキューバッファから1フレームを読み出す。言い換えれば、最低フレーム長を読み出し制限量として、1周期あたり読み出し対象のキューバッファから、読み出しデータ量が読み出し制限量以上になるまでフレームを読み出す。その一方、第2のスケジューラは、最低フレーム長より大きい基準値を読み出し制限量として、1周期に読み出し対象のキューバッファから、読み出しデータ量が読み出し制限量以上になるまでフレームを読み出す。
少なくとも第1のスケジューラは各キューバッファを順次巡回して1フレームを読み出すため、複数のキューバッファ間でのフレーム読み出し量の公平性を維持しやすくなる。また、第1のスケジューラと並行して第2のスケジューラがフレームを読み出すため、第1のスケジューラが通信装置の通信速度よりも低速で動作しても出力帯域の余剰は発生しにくい。すなわち、通信装置の出力帯域を有効活用しつつ、通信装置の高速化へ対応が容易になる。言い換えれば、通信速度に対するスケーラビリティを維持しやすくなる。
なお実施の形態の通信装置は、可変長のイーサネットフレーム(「イーサネット」は登録商標、以下単に「フレーム」とも呼ぶ。)を中継するレイヤ2スイッチであることとする。ただし、所定の通信フレームを伝送するその他の伝送装置、例えばL3スイッチやルータ等であってもよいことはもちろんである。
図1は、実施の形態の通信システムの構成を示す。通信システム100において、通信装置10は、所定の伝送路を介して他の通信装置である他通信装置12や、ユーザのPC等の情報処理端末14と接続され、他通信装置12とともにLANやWAN等の通信網を構成する。通信装置10は、他通信装置12や情報処理端末14から送出されたフレームを受信し、フレームの設定内容(VLAN−ID、MACアドレス等)に基づいて他通信装置12や情報処理端末14へ当該フレームを中継する。本実施の形態では、通信装置10の出力帯域、すなわち通信速度は10Gbpsであることとする。
図2は、図1の通信装置10の機能構成を示すブロック図である。通信装置10は、入力ポート20と、出力ポート22と、キューバッファ24で総称される第1キューバッファ24a、第1キューバッファ24b、第3キューバッファ24c・・・と、方路決定部26と、フレーム書込部28と、フレーム読出し部30を備える。
本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのCPUやメモリをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
入力ポート20は、他通信装置12や情報処理端末14から伝送路へ送出されたイーサネットフレームを受信する通信ポートである。出力ポート22は、他通信装置12や情報処理端末14へ伝送すべきイーサネットフレームを伝送路へ送出する通信ポートである。なお入力ポート20および出力ポート22は説明の簡明化のため別個に示しているが、物理的には1つの通信ポートにおいて入力ポート20と出力ポート22の両方の機能が実装されてもよいことはもちろんである。
キューバッファ24は、通信装置10で受け付けられたフレームデータを、その設定内容(VLAN−IDやMACアドレス等)に応じたフローごとに一時的に保持するFIFO(First In First Out)のメモリである。図2では第1キューバッファ24a〜第3キューバッファ24cを示したが、例えば送信元MACアドレスと宛先MACアドレスとの組み合わせごと、またVLAN−IDごと等、4以上のキューバッファが含まれてもよいことはもちろんである。なお、第1キューバッファ24a〜第3キューバッファ24cのそれぞれが蓄積するフレームのデータ量は後述の積算量監視部36へ通知される。
方路決定部26は、入力ポート20で受け付けられたフレームに設定された宛先情報(宛先MACアドレスやVLAN−ID等)にもとづいてフローおよび出力ポート22を決定する。フレーム書込部28は、方路決定部26からフレームを受け付けて、方路決定部26により特定されたフローに対応するキューバッファ24へフレームデータを格納する。フレーム書込部28は、フレームを格納したキューバッファ24の識別情報と、格納したフレームの長さを積算量監視部36へ通知する。
フレーム読出し部30は、キューバッファ24に格納されたフレームデータを読み出し、方路決定部26により決定された出力ポート22から、そのフレームデータを送出させる。フレーム読出し部30は、逐次スケジューラ32と調整スケジューラ34と積算量監視部36を含む。
逐次スケジューラ32は、一度に処理するフレームの制限量(言い換えると、1周期における読み出しフレームの制限量)を最短フレーム長である84バイト、すなわちイーサネットフレームの最短長64バイト+フレーム間ギャップ20バイトとする。そして、通信装置10の通信速度よりも低速の1Gbpsで動作する。具体的には、1周期0.672マイクロ秒(以下「μs」とも表記する。)で第1キューバッファ24a〜第3キューバッファ24cを順次巡回する。そして、各キューバッファ24への巡回あたり読み出しフレームの制限量を超えるまでフレームデータを読み出す。すなわち各キューバッファ24から1フレームを読み出す。逐次スケジューラ32は、各キューバッファ24から読み出したフレームのデータ量を積算量監視部36へ通知する。
調整スケジューラ34は、一度に処理するフレームの制限量(以下「読み出し基準値」とも呼ぶ。)を最短フレーム長の10倍の840バイトとする。そして、出力帯域の10Gbpsの速度で動作する。具体的には、1周期0.672μsで第1キューバッファ24a〜第3キューバッファ24cを順次巡回する。そして、各キューバッファ24への巡回あたり、読み出し基準値と、各キューバッファ24からのそれまでの読み出し量とに応じて定まる制限量(以下、「読み出し制限量」とも呼ぶ。)を超えるまでフレームデータを読み出す。詳細は後述するが、各キューバッファ24からのそれまでの読み出し量が小さいほど、調整スケジューラ34によるフレームデータの読み出し量を大きくすることにより、複数のキューバッファ24間での公平なフレーム読み出しを実現する。
積算量監視部36は、第1キューバッファ24a〜第3キューバッファ24cのそれぞれに蓄積されたフレームのデータ量を示す情報(以下、「蓄積フレーム量」とも呼ぶ。)を保持する。そして、フレーム書込部28から通知された書込フレーム量に応じて蓄積フレーム量を増加させる一方、逐次スケジューラ32および調整スケジューラ34から通知された読み出しフレーム量に応じて蓄積フレーム量を減少させる。
また積算量監視部36は、第1キューバッファ24a〜第3キューバッファ24cのそれぞれについて、逐次スケジューラ32および調整スケジューラ34で読み出されたフレームの積算量を示す情報(以下、「読み出し積算量」とも呼ぶ。)を保持する。具体的には、逐次スケジューラ32から通知された読み出しフレームのデータ量を、そのまま読み出し積算量へ加算する。その一方、調整スケジューラ34から通知された読み出しフレームのデータ量については、そのデータ量から読み出し基準値(840バイト)を減じた値を読み出し積算量へ加算する。したがって、読み出しフレーム量が読み出し基準値未満であれば、読み出し積算量を減少させることになる。
逐次スケジューラ32および調整スケジューラ34は、キューバッファ24からのフレーム読み出しを行うべき際、積算量監視部36から各キューバッファ24の蓄積フレーム量を取得する。調整スケジューラ34は、積算量監視部36から各キューバッファ24の読み出し積算量をさらに取得する。逐次スケジューラ32は、フレームが蓄積されたキューバッファ24、すなわち蓄積フレーム量が0より大きいキューバッファ24をフレーム読み出しの対象として選択する。その一方、調整スケジューラ34は、蓄積フレーム量+読み出し積算量が読み出し基準値(840バイト)以上となるキューバッファ24をフレーム読み出しの対象として選択する。
以上の構成による通信装置10の動作を以下説明する。
通信装置10の入力ポート20は、他通信装置12や情報処理端末14から送信された通信フレームを所定の伝送路を介して受信する。方路決定部26は、受信された通信フレームの内容に基づいて出力ポートおよびフローを決定する。フレーム書込部28は、複数種類のフローと複数種類のキューバッファとの対応関係を予め定めたテーブルを参照し、方路決定部26により決定されたフローに対応づけられたキューバッファ24へフレームを格納する。そして、フレームを格納したキューバッファ24とそのフレーム長とを積算量監視部36へ通知する。
積算量監視部36は、各キューバッファ24における蓄積フレーム量と読み出し積算量を保持し、フレーム書込部28やスケジューラからの通知に応じて逐次更新する。逐次スケジューラ32は、積算量監視部36に保持された蓄積フレーム量にしたがって、フレームを読み出すべきキューバッファ24を決定してフレームデータを読み出す。調整スケジューラ34は、積算量監視部36に保持された蓄積フレーム量と読み出し積算量とにしたがって、フレームを読み出すべきキューバッファ24と読み出し制限量とを決定してフレームを読み出す。フレーム読出し部30は、逐次スケジューラ32および調整スケジューラ34により読み出されたフレームデータを、出力ポート22を介して他通信装置12や情報処理端末14へ送出させる。
図3は、逐次スケジューラ32の動作を詳細に示すフローチャートである。逐次スケジューラ32は、積算量監視部36から各キューバッファ24の蓄積フレーム量を取得する。逐次スケジューラ32は、前回選択したキューバッファ(以下「M」)を記憶し、M+1のキューバッファ24から順にフレームが蓄積されたキューバッファ24を検索して、条件に該当する最初のキューバッファ24を選択する(S10)。
いずれかのキューバッファ24を選択した場合(S12のY)、当該バッファから1フレームを読み出す(S14)。そして、逐次スケジューラ32はフレームを読み出したキューバッファ24および読み出したフレーム長を積算量監視部36へ通知し、積算量監視部36は当該キューバッファ24の読み出し積算量へそのフレーム長を加算する(S15)。なお図3には不図示であるが、積算量監視部36は、当該キューバッファ24の蓄積フレーム量から読み出しフレーム量を減算する。
いずれのキューバッファ24も未選択、すなわちフレームを蓄積したキューバッファ24がなければ(S12のN)、S14およびS15はスキップされる。停止コマンドが受け付けられた等の所定の終了条件が未充足の場合(S16のN)、1周期(0.672μs)が経過するまで待機し(S18のN)、1周期の経過を検出すると(S18のY)、S10へ戻る。終了条件が充足すると(S16のY)、本図のフローを終了する。
図4は、調整スケジューラ34の動作を詳細に示すフローチャートである。調整スケジューラ34は、積算量監視部36から各キューバッファ24の蓄積フレーム量および読み出し積算量を取得する。逐次スケジューラ32は、前回選択したキューバッファ(以下「N」)を記憶し、N+1のキューバッファ24から順に、(蓄積フレーム量+読み出し積算量)が読み出し基準値(840バイト)以上となるキューバッファ24を検索する。そして条件に該当する最初のキューバッファ24を選択する(S20)。
いずれかのキューバッファ24を読み出し対象として選択した場合(S22のY)、調整スケジューラ34は、読み出し基準値(840バイト)から読み出し積算量を減じた値を読み出し制限量として算出する(S24)。なお同一の周期において逐次スケジューラ32が同一のキューバッファ24からフレームを読み出した場合、逐次スケジューラ32により読み出されたフレーム量も読み出し積算量に含める。読み出し制限量が0以上であれば(S26のN)、調整スケジューラ34は読み出し対象のキューバッファ24から読み出し制限量を超えるまでフレーム読み出しを実行する(S28)。読み出し制限量が0未満、言い換えれば読み出し基準値よりも読み出し積算量が大きければ(S26のY)、S28をスキップし、フレーム読み出しを行わない。
調整スケジューラ34は、読み出し対象のキューバッファ24および読み出したフレーム長を積算量監視部36へ通知する。積算量監視部36は、通知されたキューバッファ24の読み出し積算量へ、読み出しフレーム量から読み出し基準値(840バイト)を減じた値を加算する(S30)。このとき、読み出しフレーム量が840バイトよりも小さい場合は、読み出し積算量をそれまでより小さくすることになる。なお図4には不図示であるが、積算量監視部36は、通知されたキューバッファ24の蓄積フレーム量から読み出しフレーム量を減算する。
いずれのキューバッファ24も未選択、すなわち(蓄積フレーム量+読み出し積算量)が読み出し基準値(840バイト)以上となるキューバッファ24がなければ(S22のN)、S22からS30はスキップされる。停止コマンドが受け付けられた等の所定の終了条件が未充足の場合(S32のN)、1周期(0.672μs)が経過するまで待機し(S34のN)、1周期の経過を検出すると(S34のY)、S20へ戻る。終了条件が充足すると(S32のY)、本図のフローを終了する。
次に、図5および図6を参照して実施の形態の通信装置10におけるフレーム読み出しの具体例を説明する。この例ではキューバッファ#1〜#10のそれぞれに、格納フレーム欄で示すフレームが蓄積されている。なおキューバッファ#4は開始当初、500バイト1フレームが蓄積されており、後述するように後の時点で500バイト1フレームが追加して蓄積される。同図のフレーム長84バイトは、イーサネットの最小フレーム長に、フレーム間ギャップおよびプリアンブルを加えた長さである。また、逐次スケジューラ32のM+1および調整スケジューラ34のN+1、すなわち両スケジューラが最初に検索すべきキューバッファはともにキューバッファ#1であることとする。
図5の各周期の欄では、「フレームを読み出すスケジューラ種類」−「読み出しフレーム数」−「読み出し積算量」を示している。S1は逐次スケジューラ32を意味し、S2は調整スケジューラ34を意味している。
1周期目は、逐次スケジューラ32によりキューバッファ#1が選択され、84バイトフレームが1つ読み出される。また調整スケジューラ34は、蓄積フレーム量が840バイト以上あるキューバッファを検索してキューバッファ#5を選択する。そしてキューバッファ#5から840バイトを超える1000バイトフレームが1つ読み出される。逐次スケジューラ32と調整スケジューラ34は、読み出し対象のキューバッファと読み出したフレーム量を積算量監視部36へ通知する。積算量監視部36は、キューバッファ#1の読み出し積算量を84バイト、キューバッファ#5の読み出し積算量を160バイト(1000−840)と算出する。
2周期目は、逐次スケジューラ32によりキューバッファ#2が選択され、84バイトフレームが1つ読み出される。また調整スケジューラ34によりキューバッファ#6が選択され、1000バイトフレームが1つ読み出される。キューバッファ#2の読み出し積算量は84バイト、キューバッファ#6の読み出し積算量は160バイトとなる。
3周期目は、逐次スケジューラ32によりキューバッファ#3が選択され、84バイトフレームが1つ読み出される。また調整スケジューラ34によりキューバッファ#7が選択されて1000バイトフレームが1つ読み出される。キューバッファ#3の読み出し積算量は84バイト、キューバッファ#7の読み出し積算量は160バイトとなる。
4周期目は、逐次スケジューラ32によりキューバッファ#4が選択され、500バイトフレームが1つ読み出される。また調整スケジューラ34によりキューバッファ#8が選択されて840バイトを超えるまでフレームが読み出されることにより、500バイトフレームが2つ読み出される。キューバッファ#4の読み出し積算量は500バイト、キューバッファ#8の読み出し積算量は160バイトとなる。
5周期目は、逐次スケジューラ32によりキューバッファ#5が選択され、1000バイトフレームが1つ読み出される。また調整スケジューラ34によりキューバッファ#9が選択され、500バイトフレームが2つ読み出される。キューバッファ#5の読み出し積算量は1160バイト(160+1000)、キューバッファ#9の読み出し積算量は160バイトとなる。
6周期目は、逐次スケジューラ32によりキューバッファ#6が選択され、1000バイトフレームが1つ読み出される。また調整スケジューラ34によりキューバッファ#10が選択され、500バイトフレームが2つ読み出される。キューバッファ#6の読み出し積算量は1160バイト、キューバッファ#10の読み出し積算量は160バイトとなる。
ここでキューバッファ#4に、500バイトのフレームが新たに格納されたとする。
7周期目は、逐次スケジューラ32によりキューバッファ#7が選択され、1000バイトフレームが1つ読み出される。また調整スケジューラ34は、(蓄積フレーム量+読み出し積算量)が840バイト以上となるキューバッファを検索してキューバッファ#4を選択する。そしてキューバッファ#4から、(840バイト−読み出し積算量500バイト)を超えるまでフレームを読み出すことにより、500バイトフレームを1つ読み出す。キューバッファ#7の読み出し積算量は1160バイトとなる。キューバッファ#4の読み出し積算量は、元の読み出し積算量500バイト+(読み出しフレーム量500バイト−読み出し基準値840バイト)=160バイトとなる。
8周期目は、逐次スケジューラ32によりキューバッファ#8が選択され、500バイトフレームが1つ読み出される。また調整スケジューラ34は、(蓄積フレーム量+読み出し積算量)が840バイト以上となるキューバッファを検索してキューバッファ#5を選択する。このときキューバッファ#5では、読み出し基準値840バイト−読み出し積算量1160バイト<0となるため、調整スケジューラ34はフレームの読み出しをスキップする。キューバッファ#8の読み出し積算量は660バイト(160+500)となる。キューバッファ#5の読み出し積算量は、元の読み出し積算量1160バイト+(読み出しフレーム量0バイト−読み出し基準値840バイト)=320バイトとなる。
9周期目は、逐次スケジューラ32によりキューバッファ#9が選択され、500バイトフレームが1つ読み出される。また調整スケジューラ34は、(蓄積フレーム量+読み出し積算量)が840バイト以上となるキューバッファを検索してキューバッファ#6を選択する。このときキューバッファ#6では、読み出し基準値840バイト−読み出し積算量1160バイト<0となるため、調整スケジューラ34はフレームの読み出しをスキップする。キューバッファ#9の読み出し積算量は660バイト(160+500)となる。キューバッファ#6の読み出し積算量は、元の読み出し積算量1160バイト+(読み出しフレーム量0バイト−読み出し基準値840バイト)=320バイトとなる。
10周期目は、逐次スケジューラ32によりキューバッファ#10が選択され、500バイトフレームが1つ読み出される。また調整スケジューラ34は、(蓄積フレーム量+読み出し積算量)が840バイト以上となるキューバッファを検索してキューバッファ#7を選択する。このときキューバッファ#7では、読み出し基準値840バイト−読み出し積算量1160バイト<0となるため、調整スケジューラ34はフレームの読み出しをスキップする。キューバッファ#10の読み出し積算量は660バイト(160+500)となる。キューバッファ#7の読み出し積算量は、元の読み出し積算量1160バイト+(読み出しフレーム量0バイト−読み出し基準値840バイト)=320バイトとなる。
11周期目は、逐次スケジューラ32によりフレームが蓄積されたキューバッファ#8が選択され、500バイトフレームが1つ読み出される。また調整スケジューラ34は、(蓄積フレーム量+読み出し積算量)が840バイト以上となるキューバッファを検索して同じキューバッファ#8を選択する。このときキューバッファ#8では、読み出し基準値840バイト−元の読み出し積算量660バイト−逐次スケジューラ32による読み出し量500バイト<0となるため、調整スケジューラ34はフレームの読み出しをスキップする。キューバッファ#8の読み出し積算量は、元の読み出し積算量660バイト+逐次スケジューラ32による読み出し量500バイト+(調整スケジューラ34による読み出しフレーム量0バイト−読み出し基準値840バイト)=320バイトとなる。
12周期目は、逐次スケジューラ32によりフレームが残存するキューバッファ#9が選択され、500バイトフレームが1つ読み出される。また調整スケジューラ34は、(蓄積フレーム量+読み出し積算量)が840バイト以上となるキューバッファを検索して同じキューバッファ#9を選択する。このときキューバッファ#9では、読み出し基準値840バイト−元の読み出し積算量660バイト−逐次スケジューラ32による読み出し量500バイト<0となるため、調整スケジューラ34はフレームの読み出しをスキップする。キューバッファ#9の読み出し積算量は、元の読み出し積算量660バイト+逐次スケジューラ32による読み出し量500バイト+(調整スケジューラ34による読み出しフレーム量0バイト−読み出し基準値840バイト)=320バイトとなる。
13周期目は、逐次スケジューラ32によりフレームが残存するキューバッファ#10が選択され、500バイトフレームが1つ読み出される。また調整スケジューラ34は、(蓄積フレーム量+読み出し積算量)が840バイト以上となるキューバッファを検索して同じキューバッファ#10を選択する。このときキューバッファ#10では、読み出し基準値840バイト−元の読み出し積算量660バイト−逐次スケジューラ32による読み出し量500バイト<0となるため、調整スケジューラ34はフレームの読み出しをスキップする。キューバッファ#10の読み出し積算量は、元の読み出し積算量660バイト+逐次スケジューラ32による読み出し量500バイト+(調整スケジューラ34による読み出しフレーム量0バイト−読み出し基準値840バイト)=320バイトとなる。
この13回の周期において各キューバッファから読み出されたフレーム量と読み出し積算量は以下のようになる。
キューバッファ#1 :読み出しフレーム量84バイト、積算量84バイト
キューバッファ#2 :読み出しフレーム量84バイト、積算量84バイト
キューバッファ#3 :読み出しフレーム量84バイト、積算量84バイト
キューバッファ#4 :読み出しフレーム量1000バイト、積算量160バイト
キューバッファ#5 :読み出しフレーム量2000バイト、積算量320バイト
キューバッファ#6 :読み出しフレーム量2000バイト、積算量320バイト
キューバッファ#7 :読み出しフレーム量2000バイト、積算量320バイト
キューバッファ#8 :読み出しフレーム量2000バイト、積算量320バイト
キューバッファ#9 :読み出しフレーム量2000バイト、積算量320バイト
キューバッファ#10:読み出しフレーム量2000バイト、積算量320バイト
この13回の周期に相当する出力帯域のフレーム量は、840バイト×13=10920バイトである。これを10個のキューバッファで均等に分けると1092バイト/キューバッファとなる。しかし、キューバッファ#1〜#4は、1092バイトのフレームがないため、単純に逐次スケジューラ32のみで巡回した場合、出力帯域に余剰が発生することになる。その余剰量は、1092バイト×4−(84バイト×3+1000バイト)=3116バイトとなる。通信装置10のキューバッファ#5〜#10は、1092バイト×6+3116バイト=9668バイトを公平に使用することになる。
上記の例では、キューバッファ#5〜#10は、それぞれが格納するフレーム長が異なるにもかかわらず、読み出したフレーム量は同じであり、公平な帯域使用が実現されている。また、キューバッファ#1〜#4は、一度には840バイトに満たないフレームしか蓄積されなかったにもかかわらず、840バイトのフレームデータの蓄積を待つことなく、フレーム読出しが行われている。また、全体の読み出しフレーム量は13252バイト、読み出し積算量は2332バイトとなり、前者から後者を減算すると10920バイトとなって13回分の出力帯域のフレーム量と合致している。このように、出力帯域に対しても無駄なくフレームの読み出しが行われている。
本実施の形態の通信装置10によれば、逐次スケジューラ32は各キューバッファへの巡回あたり1フレームを読み出すため、複数のキューバッファ間でのフレーム読み出し量の公平性を維持しやすくなる。また、逐次スケジューラ32と並行して調整スケジューラ34がフレーム読み出しを行うため、逐次スケジューラ32が通信装置の通信速度よりも低速で動作しても出力帯域の余剰は発生しにくい。すなわち、通信装置の出力帯域を有効活用しつつ、通信装置の高速化への対応が容易になる。
また通信装置10によれば、あるキューバッファにおけるフレームの読み出し積算量が大きいほど、当該キューバッファからの調整スケジューラ34によるフレーム読み出し量を小さくする。これにより、複数のキューバッファ間でのフレーム読み出し量の公平性を一層厳密に維持しやすくなる。
また通信装置10によれば、あるキューバッファにおけるフレームの読み出し積算量が所定値(例えば読み出し基準値840バイト)を超過する場合、当該キューバッファからの調整スケジューラ34によるフレーム読み出しをスキップする。そして、当該キューバッファの読み出し積算量をそれまでよりも小さくする(例えば読み出し基準値840バイトを減算する)。これにより、次回の巡回時には当該キューバッファからの調整スケジューラ34によるフレーム読み出しが行われやすくなり、複数のキューバッファ間でのフレーム読み出し量の公平性を一層厳密に維持しやすくなる。
なお、通信装置10では、出力帯域10Gbpsの公平読み出しを実現するにあたり、逐次スケジューラ32および調整スケジューラ34において次のフレーム読み出しの対象とするキューバッファを決定するまでの時間として、1Gbpsの最短フレーム時間である0.672μsが確保されればよい。一方、従来のWRRによるフレーム読み出しでは同じ0.672μs周期で次のフレーム読み出しの対象とするキューバッファを決定した場合、1Gbpsの出力帯域しか実現できない。このように、通信装置10で提案する技術は、従来技術と比較して、高速な出力帯域での公平読み出しを一層容易に実現可能であり、高速なインタフェースを持つ通信装置に好適である。
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
上記実施の形態の通信装置10は、最短フレーム長を基準として各キューバッファへの巡回あたり1フレームを読み出す逐次スケジューラ32と、読み出し基準値840バイト(ここでは「第1読み出し基準値」と呼ぶ。)を基準として各キューバッファへの巡回あたり1以上のフレームを読み出す調整スケジューラ34を備えることとした。変形例として、通信装置10は、最短フレーム長よりも大きく第1読み出し基準値よりも小さい基準値(ここでは「第2読み出し基準値」と呼ぶ。)を基準として各キューバッファへの巡回あたり1以上のフレームを読み出す1つ以上の中間スケジューラをさらに備えてもよい。
以下では、通信装置10は、1つの中間スケジューラをさらに備える例を示す。なお第2読み出し基準値は、最短フレーム長と読み出し基準値の略中間値であってもよく、また読み出し基準値の半分程度の値であってもよく、ここでは420バイトとする。
中間スケジューラは、逐次スケジューラ32と同様に動作し、各キューバッファへの巡回あたり、第2読み出し基準値420バイトを上回るまで1以上のフレームデータを読み出し、キューバッファの識別情報と読み出しフレーム量を積算量監視部36へ通知する。積算量監視部36は、逐次スケジューラ32および中間スケジューラによる読み出し量を各キューバッファの読み出し積算量にそのまま加算する。実施の形態と同様に、調整スケジューラ34は、読み出し積算量が大きいほど読み出し制限量を小さくし、その結果、調整スケジューラ34による読み出しフレーム量は低減される。
上記実施の形態では、調整スケジューラ34による1回の読み出し量が大きくなることがあり、言い換えれば、各キューバッファのフレームのバースト量が大きくなることがあった。この場合、通信装置10の出力フレームを受け付ける他通信装置12等において一度に大きなデータ量を処理する必要が生じ、他通信装置12等の処理負荷が一時的に高まって処理の遅延を生じさせることが考えられる。本変形例によれば、逐次スケジューラ32と調整スケジューラ34の中間の値を基準値とする中間スケジューラを設けることにより、1周期あたりの通信装置10の出力フレーム量を平準化させやすくなる。これにより例えば他通信装置12における処理負荷も平準化させやすくなり、処理の遅延を生じさせにくくすることができる。
請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
10 通信装置、 20 入力ポート、 22 出力ポート、 24 キューバッファ、 26 方路決定部、 28 フレーム書込部、 30 フレーム読出し部、 32 逐次スケジューラ、 34 調整スケジューラ、 36 積算量監視部。

Claims (4)

  1. 通信の管理単位であるフローごとの入力フレームをそれぞれ保持する複数のフレームバッファと、
    前記複数のフレームバッファを巡回して、外部へ出力すべきフレームを各フレームバッファから読み出す第1スケジューラおよび第2スケジューラと、
    を備え、
    前記第1スケジューラは、本通信装置の通信速度より低い速度に基づく時間間隔で前記複数のフレームバッファを順次巡回し、各フレームバッファに対する1回の巡回あたり1フレームを読み出し、
    前記第2スケジューラは、各フレームバッファに対する1回の巡回あたり、最短フレーム長より大きい所定の基準値を読み出しの制限量として1以上のフレームを読み出すことを特徴とする通信装置。
  2. 前記複数のフレームバッファのそれぞれについて、少なくとも前記第1スケジューラにより読み出されたフレームの積算量を読み出し積算量として保持する積算量監視部をさらに備え、
    前記第2スケジューラは、あるフレームバッファの読み出し積算量が大きいほど当該フレームバッファからの読み出しの制限量を小さい値へ変更することを特徴とする請求項1に記載の通信装置。
  3. 前記第2スケジューラは、あるフレームバッファの読み出し積算量が所定値を超過する場合、当該フレームバッファからのフレーム読み出しをスキップし、
    前記積算量監視部は、前記フレームバッファからのフレーム読み出しがスキップされた場合、前記フレームバッファの読み出し積算量をそれまでよりも小さくすることを特徴とする請求項2に記載の通信装置。
  4. 前記複数のフレームバッファを巡回して、外部へ出力すべきフレームを各フレームバッファから読み出すスケジューラであって、最短フレーム長より大きく、かつ、前記第2スケジューラにおける基準値より小さい別の基準値を読み出しの制限量として1以上のフレームを読み出す第3スケジューラをさらに備えることを特徴とする請求項1から3のいずれかに記載の通信装置。
JP2011112348A 2011-05-19 2011-05-19 通信装置 Expired - Fee Related JP5416168B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011112348A JP5416168B2 (ja) 2011-05-19 2011-05-19 通信装置
US13/414,558 US8953473B2 (en) 2011-05-19 2012-03-07 Communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011112348A JP5416168B2 (ja) 2011-05-19 2011-05-19 通信装置

Publications (2)

Publication Number Publication Date
JP2012244399A JP2012244399A (ja) 2012-12-10
JP5416168B2 true JP5416168B2 (ja) 2014-02-12

Family

ID=47174859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011112348A Expired - Fee Related JP5416168B2 (ja) 2011-05-19 2011-05-19 通信装置

Country Status (2)

Country Link
US (1) US8953473B2 (ja)
JP (1) JP5416168B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014064824A1 (ja) * 2012-10-26 2014-05-01 Necディスプレイソリューションズ株式会社 識別子制御装置、識別子制御システム、多画面表示システム、識別子制御方法及びプログラム
JP6633502B2 (ja) * 2016-12-01 2020-01-22 日本電信電話株式会社 通信装置
JP7122871B2 (ja) * 2018-06-05 2022-08-22 ボッシュ株式会社 車載用ゲートウェイ装置、方法及びプログラム

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933603A (en) * 1995-10-27 1999-08-03 Emc Corporation Video file server maintaining sliding windows of a video data set in random access memories of stream server computers for immediate video-on-demand service beginning at any specified location
US5737747A (en) * 1995-10-27 1998-04-07 Emc Corporation Prefetching to service multiple video streams from an integrated cached disk array
US5829046A (en) * 1995-10-27 1998-10-27 Emc Corporation On-line tape backup using an integrated cached disk array
US6061504A (en) * 1995-10-27 2000-05-09 Emc Corporation Video file server using an integrated cached disk array and stream server computers
US6201807B1 (en) * 1996-02-27 2001-03-13 Lucent Technologies Real-time hardware method and apparatus for reducing queue processing
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US5892915A (en) * 1997-04-25 1999-04-06 Emc Corporation System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list
US6041059A (en) * 1997-04-25 2000-03-21 Mmc Networks, Inc. Time-wheel ATM cell scheduling
US5987621A (en) * 1997-04-25 1999-11-16 Emc Corporation Hardware and software failover services for a file server
US6230200B1 (en) * 1997-09-08 2001-05-08 Emc Corporation Dynamic modeling for resource allocation in a file server
JP3471222B2 (ja) * 1998-06-01 2003-12-02 日本電信電話株式会社 セル読出スケジューラ
US6625750B1 (en) * 1999-11-16 2003-09-23 Emc Corporation Hardware and software failover services for a file server
JP3386117B2 (ja) * 2000-01-11 2003-03-17 日本電気株式会社 マルチレイヤクラス識別通信装置と通信装置
JP4879382B2 (ja) * 2000-03-22 2012-02-22 富士通株式会社 パケットスイッチ、スケジューリング装置、廃棄制御回路、マルチキャスト制御回路、およびQoS制御装置
JP3736338B2 (ja) * 2000-11-13 2006-01-18 株式会社日立製作所 パケットスイッチ
JP4072315B2 (ja) * 2000-12-26 2008-04-09 富士通株式会社 パケットスイッチ
US7099330B2 (en) * 2001-01-10 2006-08-29 Lucent Technologies Inc. Method and apparatus for integrating guaranteed-bandwidth and best-effort traffic in a packet network
US7342942B1 (en) * 2001-02-07 2008-03-11 Cortina Systems, Inc. Multi-service segmentation and reassembly device that maintains only one reassembly context per active output port
JP2002237839A (ja) * 2001-02-09 2002-08-23 Fujitsu Ltd スケジューリング方法及びその装置
US7382787B1 (en) * 2001-07-30 2008-06-03 Cisco Technology, Inc. Packet routing and switching device
JP3952395B2 (ja) 2002-10-30 2007-08-01 富士通株式会社 可変長パケットの帯域制御装置
US8218546B2 (en) * 2005-11-10 2012-07-10 Broadcom Corporation Interleaved processing of dropped packets in a network device
US8634431B1 (en) * 2006-11-10 2014-01-21 Marvell International Ltd. Quality of service and flow control architecture for a passive optical network
US8291285B1 (en) * 2008-09-18 2012-10-16 Marvell International Ltd. Circulant processing scheduler for layered LDPC decoder

Also Published As

Publication number Publication date
JP2012244399A (ja) 2012-12-10
US20120294171A1 (en) 2012-11-22
US8953473B2 (en) 2015-02-10

Similar Documents

Publication Publication Date Title
US9036481B1 (en) Method and apparatus for adaptive packet load balancing
JP5659125B2 (ja) 中継装置、中継方法
JP7433479B2 (ja) パケット転送方法、装置及び電子デバイス
US6795870B1 (en) Method and system for network processor scheduler
US20100150164A1 (en) Flow-based queuing of network traffic
US9608927B2 (en) Packet exchanging device, transmission apparatus, and packet scheduling method
JP2014187421A (ja) 通信装置及びパケットスケジューリング方法
US20170093739A1 (en) Apparatus to reduce a load for bandwidth control of packet flows
CN111526095A (zh) 一种流量控制方法和装置
CN113612696A (zh) 多主机网络适配器中的拥塞控制度量
JP5416168B2 (ja) 通信装置
JP2020072336A (ja) パケット転送装置、方法、及びプログラム
JP2020017903A (ja) 通信システム、通信制御方法、及び通信装置
JP2007288491A (ja) フレームの分割回路、該分割回路を用いた伝送システム及び方法
JP6127857B2 (ja) トラフィック制御装置
JP2008060700A (ja) バッファ制御装置及びバッファ制御方法
CN114900469B (zh) 一种multihost网卡的数据流量控制的方法、***、设备及介质
JP2008263430A (ja) トラヒックシェーピング回路、端末装置及びネットワークノード
JPH10271163A (ja) パケット通信網接続装置
JP4846601B2 (ja) 不足ラウンドロビン方式のデータパケットスケジューリングのインスタントサービス方法
JP2007110483A (ja) パケット通信品質制御装置およびパケット通信品質制御方法
CN113824652A (zh) 一种用于调度队列的方法及装置
CN114095431A (zh) 队列管理的方法和网络设备
JP2006229432A (ja) パケット中継装置
CN114070776B (zh) 一种改进的时间敏感网络数据传输方法、装置及设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130326

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130815

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130828

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131114

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees