JPWO2009147731A1 - データ転送装置、情報処理装置および制御方法 - Google Patents

データ転送装置、情報処理装置および制御方法 Download PDF

Info

Publication number
JPWO2009147731A1
JPWO2009147731A1 JP2010515700A JP2010515700A JPWO2009147731A1 JP WO2009147731 A1 JPWO2009147731 A1 JP WO2009147731A1 JP 2010515700 A JP2010515700 A JP 2010515700A JP 2010515700 A JP2010515700 A JP 2010515700A JP WO2009147731 A1 JPWO2009147731 A1 JP WO2009147731A1
Authority
JP
Japan
Prior art keywords
input queue
output
data
packet
circuit
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.)
Granted
Application number
JP2010515700A
Other languages
English (en)
Other versions
JP5018964B2 (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 JPWO2009147731A1 publication Critical patent/JPWO2009147731A1/ja
Application granted granted Critical
Publication of JP5018964B2 publication Critical patent/JP5018964B2/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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/6215Individual queue per QOS, rate or priority

Landscapes

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

Abstract

データ転送装置(300)は、複数の入力キュー(310)と、入力キューごとに設けられた調停制御回路(320)と、入力キューごとに設定された優先順位に基づいて入力キューのいずれかを選択し、選択した入力キュー(310)からデータを出力させる入力キュー選択回路(330)とを備える。そして、調停制御回路(320)は、所定の上限値が記憶されるレジスタ(321)と、対応する入力キューから出力されたデータ量を計数するカウンタ(325)と、カウンタの値がレジスタに記憶されている上限値以上となった場合に、入力キュー選択回路に優先順位を更新させるとともに、カウンタの値をリセットさせる制御回路(324)とを有する。

Description

この発明は、データ転送装置、情報処理装置および制御方法に関し、特に、パケット(データ)のサイズが一律でない場合でも各送信元のスループットを同等にすることができ、かつ、いずれの送信元のパケット(データ)も選択されない状況が発生することがないデータ転送装置、情報処理装置および制御方法に関する。
CPU(Central Processing Unit)やRAM(Random Access Memory)を備えたシステムボード等の演算処理モジュールと、各種入出力装置や各種入出力インターフェースを備えた入出力モジュールとを複数備え、それらを高速なスイッチで接続して構成された情報処理装置が知られている。このような構成の情報処理装置においては、複数のモジュールがスイッチへ向けて出力するコマンドパケットやデータパケットの競合を調停する必要がある。
一般的に、パケット競合の調停(アービトレーション)は、ラウンドロビン方式で実現される。ラウンドロビン方式とは、あるモジュールから出力されたパケットが選択されたら、そのモジュールの優先順位を最下位へ下げて、他のモジュールの優先順位を上げる方式である。このラウンドロビン方式は実装が容易であるものの、出力されるパケットのサイズが一律でない場合に、各モジュールのスループットにばらつきが生じてしまうという問題がある。
すなわち、ラウンドロビン方式では、単位時間当たりに出力可能なパケット数が全てのモジュールでほぼ同一となるため、サイズの大きいパケットを多く出力するモジュールのスループットは高くなり、サイズの小さいパケットを多く出力するモジュールのスループットは相対的に低くなってしまう。この問題を解決するため、ルータ装置等の通信装置の分野では、パケットの競合を調停するために、ディフィシットラウンドロビン(DRR:Deficit Round Robin)方式やその改良方式が用いられることがある。
ディフィシットラウンドロビン方式とは、パケットの出力元毎にキューとカウンタを設け、各カウンタに所定値dを加えていき、カウンタの値とキューの先頭パケットのサイズを比較しながら選択するパケットを決定する方式である。各キューの先頭パケットは、対応するキューの値が自身のサイズよりも大きくなった時点で選択され、このとき、対応するキューの値は、選択された先頭パケットのサイズ分だけ減算される。ディフィシットラウンドロビン方式では、パケットのサイズが考慮されるため、出力されるパケットのサイズが一律でない場合であっても、各モジュールのスループットを同等にすることができる。
特開2001−217868号公報 特開2001−223740号公報
しかしながら、ディフィシットラウンドロビン方式には、上記の所定値dが適正値よりも小さいと、カウンタの値が先頭パケットのサイズよりも大きくなるまでに要する時間が長くなり、いずれの出力元のパケットも選択されない状況が発生するという問題があった。ルータ装置等の通信装置よりもさらに高速な動作が求められる情報処理装置においては、パケットを出力しようとしているモジュールが複数あるにも関わらず、いずれのモジュールのパケットも選択されない状況が発生することは大幅な性能低下を招くため、回避しなければならない。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、パケット(データ)のサイズが一律でない場合でも各送信元のスループットを同等にすることができ、かつ、いずれの送信元のパケット(データ)も選択されない状況が発生することがないデータ転送装置、情報処理装置および制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本願の開示するデータ転送装置および情報処理装置は、一つの態様において、複数の入力キューと、前記入力キューごとに設けられた調停制御部と、前記入力キューごとに設定された優先順位に基づいて前記入力キューのいずれかを選択し、選択した入力キューからデータを出力させる入力キュー選択部とを備え、前記調停制御部は、所定の上限値が記憶されるレジスタと、対応する入力キューから出力されたデータ量を計数するカウンタと、前記カウンタの値が前記レジスタに記憶されている上限値以上となった場合に、前記入力キュー選択部に前記優先順位を更新させるとともに、前記カウンタの値をリセットさせる制御回路とを有する。
この発明の態様によれば、まず、入力キューからデータが出力され、出力されたデータ量に基づいて調停が行われるので、データのサイズが一律でない場合でも各送信元のスループットを同等にすることができ、かつ、いずれの送信元のデータも選択されない状況が発生することを抑止できる。
なお、本願の開示するデータ転送装置および情報処理装置の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも上述した課題を解決するために有効である。
本願の開示するデータ転送装置、情報処理装置および制御方法の一つの態様によれば、データのサイズが一律でない場合でも各送信元のスループットを同等にすることができ、かつ、いずれの送信元のデータも選択されない状況が発生することを抑止できるという効果を奏する。
図1−1は、入力キューに格納されているデータパケットの一例を示す図である。 図1−2は、本実施例に係る調停方法によるデータパケットの選択例を示す図である。 図2−1は、入力キューに格納されているコマンドパケットの一例を示す図である。 図2−2は、本実施例に係る調停方法によるコマンドパケットの選択例を示す図である。 図3は、本実施例に係る情報処理装置の構成の一例を示す図である。 図4は、図3に示したデータ転送装置の構成の一例を示す図である。 図5は、入力キュー選択回路の動作を示すフローチャートである。 図6は、出力データ量測定回路の動作を示すフローチャートである。 図7は、出力データ量測定回路の構成の一例を示す図である。 図8は、入力キュー選択回路の構成の一例を示す図である。 図9は、従来の調停方法によるデータパケットの選択例を示す図である。 図10は、従来の調停方法によるコマンドパケットの選択例を示す図である。
符号の説明
10 システムボード(SB)
11 CPU
12 CPU制御部
13 メモリ制御部
14 RAM
15 FWH
20 IOボード(IOB)
21 IO制御部
22 PCI制御部
23 PCIインターフェース
24 ICH
31 データクロスバ
32 アドレスクロスバ
300 データ転送装置
310 入力キュー
320 調停制御回路
321 上限値設定レジスタ
322 JTAG回路またはSMBus回路
323 パケット長デコード回路
324 出力データ量測定回路
324a、324b、324d、324e AND回路
324c、324f 加算指示回路
324g 比較器
324h リセット指示回路
324i OR回路
325 出力データ量測定カウンタ
330 入力キュー選択回路
331a〜331c ポインタ更新回路
332 最優先ポインタ
333 ラウンドロビン回路
334 OR回路
335 セレクタ
336 パケット長カウンタ
337a〜337c 選択期間生成回路
340 セレクタ
350 出力キュー
以下に、本願の開示するデータ転送装置、情報処理装置および制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
まず、本実施例に係る調停方法の概要について、従来の調停方法と比較しながら説明する。図1−1は、入力キューに格納されているデータパケットの一例を示す図である。この例は、入力キュー#0〜#2に格納されたパケットがセレクタによって選択され、出力キュー#3へ出力される場面を示している。入力キュー#0〜2は、それぞれ異なる出力元から出力されたパケットが一時的に格納されるキューである。
この例では、8byteのヘッダ部と24byteのデータ部とからなる32byteのデータパケットと4byteのヘッダ部と4byteのデータ部とからなる8byteのデータパケットとが混在している。入力キュー#0には、32byteのパケットAおよびBが格納されている。入力キュー#1には、8byteのパケットC〜Gが格納されている。また、入力キュー#2には、8byteのパケットHおよびIと、32byteのパケットJと、8byteのパケットKが格納されている。
図9は、従来の調停方法によるデータパケットの選択例を示す図である。図1−1に示した場面において、単純なラウンドロビン方式を用いて、最優先とする入力キューを#0→#1→#2→#0→#1→#2と巡回させると、この例のように、まず、入力キュー#0のパケットAが選択され、出力キュー#3に格納される。続いて、入力キュー#1のパケットC、入力キュー#2のパケットH、入力キュー#0のパケットB、入力キュー#1のパケットD、入力キュー#2のパケットIが順に選択され、出力キュー#3に格納される。
この例では、入力キュー#0からは合計64byte分のパケットが選択されているのに対して、入力キュー#1および#2からは、同じ期間内で、合計16byte分のパケットしか選択されていない。このように、従来の調停方法においては、出力されるパケットのサイズの違いによって、単位時間当たりに選択されるデータサイズが入力キューごとに異なってしまう。
全ての入力キューにおいて単位時間当たりに選択されるデータサイズが同等になるように制御するためにディフィシットラウンドロビン方式を採用することも考えられる。しかし、その場合、設定が適切でないと、出力可能なパケットがあるにも関わらず、いずれの入力キューのパケットも選択されない状況が生じ得る。
図1−2は、本実施例に係る調停方法によるデータパケットの選択例を示す図である。本実施例に係る調停方法は、既に選択されたパケットのサイズに基づいて各入力キューの優先順位を変動させる。具体的には、本実施例に係る調停方法では、ある入力キューのパケットが選択されると、その入力キューから出力されるパケットのサイズの集計が開始され、集計値が予め設定された上限値以上となるか、その入力キューから出力可能なパケットがなくなるまで、その入力キューのパケットが選択され続ける。そして、集計値が予め設定された上限値以上となるか、出力可能なパケットがなくなると、その入力キューの優先順位が最下位へ下げられ、他の入力キューのパケットが選択されるようになる。
この方式では、各入力キューに設定する上限値を同一の値とすることにより、全ての入力キューにおいて単位時間当たりに選択されるデータサイズを同等にすることができる。また、この方式では、入力キューから出力する前のパケットのサイズに基づいて出力の開始を判定するのではなく、まず、出力可能なパケットの出力が開始され、出力したサイズに基づいて出力の停止が判断されるので、出力可能なパケットがあるにも関わらず、いずれの入力キューのパケットも選択されない状況は発生しない。
図1−2の例では、上限値として32byteが各キューに設定されている。このため、最優先とする入力キューが#0→#1→#2と一巡する間に、入力キュー#0からはパケットAが選択され、入力キュー#1からはパケットC〜Fが選択され、入力キュー#2からはパケットHおよびIが選択されている。図9と図1−2を比較すれば明らかなように、本実施例に係る調停方法の方が、従来の調停方法よりも、単位時間当たりに選択されるデータサイズが均一に近くなっている。
なお、本実施例に係る調停方法では、各入力キューに設定する上限値を異なる値とすることにより、各入力キューにおいて単位時間当たりに選択されるデータサイズを意図的に変更することもできる。例えば、高スループットが必要な出力元から出力されるパケットが格納される入力キューに上限値として大きな値を設定することにより、単位時間当たりに選択されるデータ量を増やすことができる。
なお、上記の説明では、データパケットの調停について、本実施例に係る調停方法と従来の調停方法とを比較したが、本実施例に係る調停方法は、コマンドパケットの調停においても有効である。すなわち、図2−1に示すように、IOへのライトコマンドのような比較的サイズの大きいコマンドパケットと、メモリのリードコマンドのような比較的サイズの小さいコマンドパケットが混在している場合、単純なラウンドロビン方式に基づく従来の調停方法では、図10に示すように、単位時間当たりに選択されるパケットサイズが入力キューごとに異なってしまう。一方、本実施例に係る調停方法では、図2−2に示すように、単位時間当たりに選択されるパケットサイズをほぼ均一にすることができる。
次に、本実施例に係る調停方法を実行するデータ転送装置と、そのデータ転送装置を備える情報処理装置の構成について説明する。図3は、本実施例に係る情報処理装置の構成の一例を示す図である。図3に示すように、本実施例に係る情報処理装置は、複数のシステムボード(以下、「SB」と略記する)10と、複数のIOボード(以下、「IOB」と略記する)20と、データクロスバ31と、アドレスクロスバ32とを有する。
SB10は、演算処理を実行する演算処理モジュールであり、CPU11と、CPU制御部12と、メモリ制御部13と、RAM14と、FWH(FirmWare Hub)15等を有する。CPU11は、各種演算を実行する演算回路であり、CPU制御部12は、複数のCPU11のリクエストの競合を調停するとともに、CPU11のリクエストをメモリ制御部13もしくはIOB20へ振り分ける回路である。メモリ制御部13は、RAM14へのアクセスを制御する回路であり、RAM14は情報を一時的に記憶する記憶回路である。FWH15は、ファームウェアを記憶する記憶回路である。
IOB20は、メモリアクセス以外の各種入出力制御を実行する入出力モジュールであり、IO制御部21と、PCI(Peripheral Component Interconnect)制御部22と、PCIインターフェース23と、ICH(IO Controller Hub)24を有する。IO制御部21は、IOB20を全体制御する回路であり、PCI制御部22は、PCIインターフェース23に接続される各種PCIデバイスを制御する回路である。ICH24は、IOB20上に実装されたネットワークインターフェース(LAN)、画面制御装置(VGA)、シリアル入出力制御装置(SIO)、ベースボード管理装置(BMC)等を制御する回路である。
データクロスバ31およびアドレスクロスバ32は、複数のSB10および複数のIOB20を電気的に接続させる接続モジュールであり、それぞれ、高速なスイッチであるデータ転送装置300を有する。
図4は、図3に示したデータ転送装置300の構成の一例を示す図である。なお、ここでは、説明を簡単にするため、調停に関連する構成のみを図示している。また、データパケットとコマンドパケットの区別もおこなわないこととする。
図4に示すように、データ転送装置300は、入力キュー310と調停制御回路320の組合せを複数と、入力キュー選択回路330と、セレクタ340と、出力キュー350とを有する。入力キュー310は、あるモジュールから出力されたパケットが一時的に格納されるキューである。調停制御回路320は、入力キュー310ごとに設けられ、対応する入力キュー310から出力されるデータ量を監視する回路であり、上限値設定レジスタ321と、JTAG回路またはSMBus回路322と、パケット長デコード回路323と、出力データ量測定回路324と、出力データ量測定カウンタ325とを有する。
上限値設定レジスタ321は、出力するデータ量の上限値を記憶する。上限値設定レジスタ321は、入力キュー310ごとに存在するため、出力するデータ量の上限値は、入力キュー310ごとに異なった値とすることもできるし、全ての入力キュー310において同一の値とすることもできる。JTAG回路またはSMBus回路322は、上限値設定レジスタ321に対して、外部から上限値を設定するための回路である。
パケット長デコード回路323は、対応する入力キュー310の先頭パケットのサイズを取得する回路である。パケットのサイズは、パケットのヘッダ部の所定の位置を参照することにより取得することができる。
出力データ量測定回路324は、対応する入力キューの先頭パケットが選択される旨の信号を受信するたびに、パケット長デコード回路323によって取得された先頭パケットのサイズを出力データ量測定カウンタ325に加算させる。そして、加算後の出力データ量測定カウンタ325の値が、上限値設定レジスタ321の値以上となった場合には、出力データ量測定回路324は、出力データ量測定カウンタ325の値をリセットさせるとともに、入力キュー選択回路330に対して入力キューの優先順位の変更を指示する。また、出力データ量測定回路324は、対応する入力キューの先頭パケットが選択される旨の信号を受信した後に、対応する入力キューに出力可能なパケットがなくなった旨の信号を受信した場合にも、出力データ量測定カウンタ325の値をリセットさせるとともに、入力キュー選択回路330に対して入力キューの優先順位の変更を指示する。出力データ量測定カウンタ325は、出力データ量を記憶する。
入力キュー選択回路330は、優先順位に基づいていずれかの入力キュー310の先頭パケットを選択してセレクタ340へ出力させるとともに、先頭パケットを選択する旨の信号を、そのパケットが格納されている入力キューに対応する出力データ量測定回路324へ送信する。セレクタ340は、入力キュー310から出力されたパケットを出力キュー350に格納させる。出力キュー350は、パケットが一時的に格納されるキューである。
次に、図4に示したデータ転送装置300の動作について説明する。図5は、入力キュー選択回路330の動作を示すフローチャートである。図5に示すように、入力キュー選択回路330は、優先順位に従って、出力可能なパケットが格納された入力キュー310の中から選択するキューを決定する(ステップS101)。
続いて、入力キュー選択回路330は、決定した入力キュー310の先頭パケット長を取得する(ステップS102)。そして、入力キュー選択回路330は、取得したパケット長に基づいて、先頭パケットを出力させるために必要な期間を求め、決定した入力キュー310がその期間選択されるように設定する(ステップS103)。また、入力キュー選択回路330は、決定した入力キュー310の先頭パケットが出力される旨を通知する信号を、その入力キュー310に対応する出力データ量測定回路324へ送信する(ステップS104)。
また、入力キュー選択回路330は、出力データ量測定回路324から入力キューの優先順位の変更を指示された場合には(ステップS105肯定)、その出力データ量測定回路324に対応する入力キュー310の優先順位が最下位になるように優先順位を更新する(ステップS106)。入力キュー選択回路330は、以上のステップS101〜S106の手順を繰り返し実行する。なお、ステップ101〜S104の手順と、ステップS105〜S106の手順はこの通り順次実行する必要はなく、それぞれ独立して非同期で実行することができる。
図6は、出力データ量測定回路324の動作を示すフローチャートである。同図に示すように、対応する入力キュー310の先頭パケットが選択される旨の信号を受信すると(ステップS201)、出力データ量測定回路324は、先頭パケットのパケット長を出力データ量測定カウンタ325に加算する(ステップS202)。
そして、加算後の出力データ量測定カウンタ325の値を、上限値設定レジスタ321に記憶されている上限値と比較し(ステップS203)、加算後の値が上限値以上であれば(ステップS204肯定)、出力データ量測定回路324は、出力データ量測定カウンタ325の値をリセットするとともに(ステップS205)、入力キュー選択回路330に対して、入力キューの優先順位の変更を指示する(ステップS206)。
一方、加算後の値が上限値未満の場合は(ステップS204否定)、対応する入力キューに出力可能なパケットが残っていない旨の信号が受信されれば(ステップS207肯定)、出力データ量測定回路324は、出力データ量測定カウンタ325の値をリセットするとともに(ステップS205)、入力キュー選択回路330に対して、入力キューの優先順位の変更を指示する(ステップS206)。
入力キュー選択回路330は、対応する入力キュー310の先頭パケットが選択される旨の信号を受信するたびに、上記のステップS201〜S207の手順を実行する。
次に、上記の動作を実現させるための出力データ量測定回路324と入力キュー選択回路330の構成について説明する。図7は、出力データ量測定回路324の構成の一例を示す図である。なお、この例では、説明を簡単にするため、パケット長が2byteもしくは8byteであることを想定しているが、パケット長はこの2種類に限定されるものではない。
図7に示す構成においては、先頭パケットが選択される旨を通知するパケット出力信号が受信されたときに、パケット長デコード回路323から先頭パケットのサイズが2byteである旨を示す信号が送信されていると、AND回路324aの出力がONになる。そして、AND回路324aの出力がONになり、かつ、上限値設定レジスタ321に設定されている上限値と出力データ量測定カウンタ325の値を比較する比較器324gから上限値がカウンタ値以上である旨の信号が出力されていないと、AND回路324bの出力もONになる。そして、AND回路324bの出力がONになると、加算指示回路324cから増分2の加算指示が出力データ量測定カウンタ325へ送信されることになる。
また、先頭パケットが選択される旨を通知するパケット出力信号が受信されたときに、パケット長デコード回路323から先頭パケットのサイズが8byteである旨を示す信号が送信されていると、AND回路324dの出力がONになる。そして、AND回路324dの出力がONになり、かつ、比較器324gから上限値がカウンタ値以上である旨の信号が出力されていないと、AND回路324eの出力もONになる。そして、AND回路324eの出力がONになると、加算指示回路324fから増分8の加算指示が出力データ量測定カウンタ325へ送信されることになる。
また、比較器324gから上限値がカウンタ値以上である旨の信号が出力された場合には、OR回路324iの出力がONになる。また、対応する入力キュー310に出力可能なパケットがなくなった旨を示すブランク信号が受信された場合にも、OR回路324iの出力がONになる。そして、OR回路324iの出力がONになると、リセット指示回路324hからリセット指示が出力データ量測定カウンタ325へ送信されるとともに、優先順位変更指示が入力キュー選択回路330へ送信される。
図8は、入力キュー選択回路330の構成の一例を示す図である。なお、この例では、説明を簡単にするため、入力キュー310が3個あり、それぞれ#0〜#2として識別されることを想定しているが、入力キュー310の数は3個に限定されるものではない。
図8に示す構成においては、#0の入力キュー310に対応する調停制御回路320から優先順位変更指示が受信されると、ポインタ更新回路331aが最優先ポインタ332の値を#1に更新する。また、#1の入力キュー310に対応する調停制御回路320から優先順位変更指示が受信されると、ポインタ更新回路331bが最優先ポインタ332の値を#2に更新する。また、#2の入力キュー310に対応する調停制御回路320から優先順位変更指示が受信されると、ポインタ更新回路331cが最優先ポインタ332の値を#0に更新する。
また、1ないし複数の入力キュー310から出力可能なパケットが存在することを示すリクエストが受信されると、ラウンドロビン回路333は、最優先ポインタ332に設定されている番号に対応する入力キュー310を最優先とする優先順位に基づいて、リクエストを送信した入力キュー310のいずれを選択するかを決定し、該当入力キュー310のパケット出力信号を送信する。入力キュー310のいずれかのパケット出力信号がONになると、OR回路334の出力がONになる。そして、OR回路334の出力がONになると、ラウンドロビン回路333によって決定された入力キュー310の先頭パケット長がセレクタ335において選択され、パケット長カウンタ336に格納される。
そして、パケット長カウンタ336に格納されたパケット長は、パケット長に基づいて入力キュー310の選択期間を生成する選択期間生成回路337a〜337cに出力される。そして、選択期間生成回路337a〜337cのうち、ラウンドロビン回路333によって決定された入力キュー310に対応するものが、対応する入力キュー310を生成された期間だけ選択させるとともに、先頭パケットが選択される旨を示すパケット出力信号を対応する調停制御回路320へ送信する。
この発明は、データ転送装置、情報処理装置および制御方法に関し、特に、パケット(データ)のサイズが一律でない場合でも各送信元のスループットを同等にすることができ、かつ、いずれの送信元のパケット(データ)も選択されない状況が発生することがないデータ転送装置、情報処理装置および制御方法に関する。
CPU(Central Processing Unit)やRAM(Random Access Memory)を備えたシステムボード等の演算処理モジュールと、各種入出力装置や各種入出力インターフェースを備えた入出力モジュールとを複数備え、それらを高速なスイッチで接続して構成された情報処理装置が知られている。このような構成の情報処理装置においては、複数のモジュールがスイッチへ向けて出力するコマンドパケットやデータパケットの競合を調停する必要がある。
一般的に、パケット競合の調停(アービトレーション)は、ラウンドロビン方式で実現される。ラウンドロビン方式とは、あるモジュールから出力されたパケットが選択されたら、そのモジュールの優先順位を最下位へ下げて、他のモジュールの優先順位を上げる方式である。このラウンドロビン方式は実装が容易であるものの、出力されるパケットのサイズが一律でない場合に、各モジュールのスループットにばらつきが生じてしまうという問題がある。
すなわち、ラウンドロビン方式では、単位時間当たりに出力可能なパケット数が全てのモジュールでほぼ同一となるため、サイズの大きいパケットを多く出力するモジュールのスループットは高くなり、サイズの小さいパケットを多く出力するモジュールのスループットは相対的に低くなってしまう。この問題を解決するため、ルータ装置等の通信装置の分野では、パケットの競合を調停するために、ディフィシットラウンドロビン(DRR:Deficit Round Robin)方式やその改良方式が用いられることがある。
ディフィシットラウンドロビン方式とは、パケットの出力元毎にキューとカウンタを設け、各カウンタに所定値dを加えていき、カウンタの値とキューの先頭パケットのサイズを比較しながら選択するパケットを決定する方式である。各キューの先頭パケットは、対応するキューの値が自身のサイズよりも大きくなった時点で選択され、このとき、対応するキューの値は、選択された先頭パケットのサイズ分だけ減算される。ディフィシットラウンドロビン方式では、パケットのサイズが考慮されるため、出力されるパケットのサイズが一律でない場合であっても、各モジュールのスループットを同等にすることができる。
特開2001−217868号公報 特開2001−223740号公報
しかしながら、ディフィシットラウンドロビン方式には、上記の所定値dが適正値よりも小さいと、カウンタの値が先頭パケットのサイズよりも大きくなるまでに要する時間が長くなり、いずれの出力元のパケットも選択されない状況が発生するという問題があった。ルータ装置等の通信装置よりもさらに高速な動作が求められる情報処理装置においては、パケットを出力しようとしているモジュールが複数あるにも関わらず、いずれのモジュールのパケットも選択されない状況が発生することは大幅な性能低下を招くため、回避しなければならない。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、パケット(データ)のサイズが一律でない場合でも各送信元のスループットを同等にすることができ、かつ、いずれの送信元のパケット(データ)も選択されない状況が発生することがないデータ転送装置、情報処理装置および制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本願の開示するデータ転送装置および情報処理装置は、一つの態様において、複数の入力キューと、前記入力キューごとに設けられた調停制御部と、前記入力キューごとに設定された優先順位に基づいて前記入力キューのいずれかを選択し、選択した入力キューからデータを出力させる入力キュー選択部とを備え、前記調停制御部は、所定の上限値が記憶されるレジスタと、対応する入力キューから出力されたデータ量を計数するカウンタと、前記カウンタの値が前記レジスタに記憶されている上限値以上となった場合に、前記入力キュー選択部に前記優先順位を更新させるとともに、前記カウンタの値をリセットさせる制御回路とを有する。
この発明の態様によれば、まず、入力キューからデータが出力され、出力されたデータ量に基づいて調停が行われるので、データのサイズが一律でない場合でも各送信元のスループットを同等にすることができ、かつ、いずれの送信元のデータも選択されない状況が発生することを抑止できる。
なお、本願の開示するデータ転送装置および情報処理装置の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも上述した課題を解決するために有効である。
本願の開示するデータ転送装置、情報処理装置および制御方法の一つの態様によれば、データのサイズが一律でない場合でも各送信元のスループットを同等にすることができ、かつ、いずれの送信元のデータも選択されない状況が発生することを抑止できるという効果を奏する。
図1−1は、入力キューに格納されているデータパケットの一例を示す図である。 図1−2は、本実施例に係る調停方法によるデータパケットの選択例を示す図である。 図2−1は、入力キューに格納されているコマンドパケットの一例を示す図である。 図2−2は、本実施例に係る調停方法によるコマンドパケットの選択例を示す図である。 図3は、本実施例に係る情報処理装置の構成の一例を示す図である。 図4は、図3に示したデータ転送装置の構成の一例を示す図である。 図5は、入力キュー選択回路の動作を示すフローチャートである。 図6は、出力データ量測定回路の動作を示すフローチャートである。 図7は、出力データ量測定回路の構成の一例を示す図である。 図8は、入力キュー選択回路の構成の一例を示す図である。 図9は、従来の調停方法によるデータパケットの選択例を示す図である。 図10は、従来の調停方法によるコマンドパケットの選択例を示す図である。
以下に、本願の開示するデータ転送装置、情報処理装置および制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
まず、本実施例に係る調停方法の概要について、従来の調停方法と比較しながら説明する。図1−1は、入力キューに格納されているデータパケットの一例を示す図である。この例は、入力キュー#0〜#2に格納されたパケットがセレクタによって選択され、出力キュー#3へ出力される場面を示している。入力キュー#0〜2は、それぞれ異なる出力元から出力されたパケットが一時的に格納されるキューである。
この例では、8byteのヘッダ部と24byteのデータ部とからなる32byteのデータパケットと4byteのヘッダ部と4byteのデータ部とからなる8byteのデータパケットとが混在している。入力キュー#0には、32byteのパケットAおよびBが格納されている。入力キュー#1には、8byteのパケットC〜Gが格納されている。また、入力キュー#2には、8byteのパケットHおよびIと、32byteのパケットJと、8byteのパケットKが格納されている。
図9は、従来の調停方法によるデータパケットの選択例を示す図である。図1−1に示した場面において、単純なラウンドロビン方式を用いて、最優先とする入力キューを#0→#1→#2→#0→#1→#2と巡回させると、この例のように、まず、入力キュー#0のパケットAが選択され、出力キュー#3に格納される。続いて、入力キュー#1のパケットC、入力キュー#2のパケットH、入力キュー#0のパケットB、入力キュー#1のパケットD、入力キュー#2のパケットIが順に選択され、出力キュー#3に格納される。
この例では、入力キュー#0からは合計64byte分のパケットが選択されているのに対して、入力キュー#1および#2からは、同じ期間内で、合計16byte分のパケットしか選択されていない。このように、従来の調停方法においては、出力されるパケットのサイズの違いによって、単位時間当たりに選択されるデータサイズが入力キューごとに異なってしまう。
全ての入力キューにおいて単位時間当たりに選択されるデータサイズが同等になるように制御するためにディフィシットラウンドロビン方式を採用することも考えられる。しかし、その場合、設定が適切でないと、出力可能なパケットがあるにも関わらず、いずれの入力キューのパケットも選択されない状況が生じ得る。
図1−2は、本実施例に係る調停方法によるデータパケットの選択例を示す図である。本実施例に係る調停方法は、既に選択されたパケットのサイズに基づいて各入力キューの優先順位を変動させる。具体的には、本実施例に係る調停方法では、ある入力キューのパケットが選択されると、その入力キューから出力されるパケットのサイズの集計が開始され、集計値が予め設定された上限値以上となるか、その入力キューから出力可能なパケットがなくなるまで、その入力キューのパケットが選択され続ける。そして、集計値が予め設定された上限値以上となるか、出力可能なパケットがなくなると、その入力キューの優先順位が最下位へ下げられ、他の入力キューのパケットが選択されるようになる。
この方式では、各入力キューに設定する上限値を同一の値とすることにより、全ての入力キューにおいて単位時間当たりに選択されるデータサイズを同等にすることができる。また、この方式では、入力キューから出力する前のパケットのサイズに基づいて出力の開始を判定するのではなく、まず、出力可能なパケットの出力が開始され、出力したサイズに基づいて出力の停止が判断されるので、出力可能なパケットがあるにも関わらず、いずれの入力キューのパケットも選択されない状況は発生しない。
図1−2の例では、上限値として32byteが各キューに設定されている。このため、最優先とする入力キューが#0→#1→#2と一巡する間に、入力キュー#0からはパケットAが選択され、入力キュー#1からはパケットC〜Fが選択され、入力キュー#2からはパケットHおよびIが選択されている。図9と図1−2を比較すれば明らかなように、本実施例に係る調停方法の方が、従来の調停方法よりも、単位時間当たりに選択されるデータサイズが均一に近くなっている。
なお、本実施例に係る調停方法では、各入力キューに設定する上限値を異なる値とすることにより、各入力キューにおいて単位時間当たりに選択されるデータサイズを意図的に変更することもできる。例えば、高スループットが必要な出力元から出力されるパケットが格納される入力キューに上限値として大きな値を設定することにより、単位時間当たりに選択されるデータ量を増やすことができる。
なお、上記の説明では、データパケットの調停について、本実施例に係る調停方法と従来の調停方法とを比較したが、本実施例に係る調停方法は、コマンドパケットの調停においても有効である。すなわち、図2−1に示すように、IOへのライトコマンドのような比較的サイズの大きいコマンドパケットと、メモリのリードコマンドのような比較的サイズの小さいコマンドパケットが混在している場合、単純なラウンドロビン方式に基づく従来の調停方法では、図10に示すように、単位時間当たりに選択されるパケットサイズが入力キューごとに異なってしまう。一方、本実施例に係る調停方法では、図2−2に示すように、単位時間当たりに選択されるパケットサイズをほぼ均一にすることができる。
次に、本実施例に係る調停方法を実行するデータ転送装置と、そのデータ転送装置を備える情報処理装置の構成について説明する。図3は、本実施例に係る情報処理装置の構成の一例を示す図である。図3に示すように、本実施例に係る情報処理装置は、複数のシステムボード(以下、「SB」と略記する)10と、複数のIOボード(以下、「IOB」と略記する)20と、データクロスバ31と、アドレスクロスバ32とを有する。
SB10は、演算処理を実行する演算処理モジュールであり、CPU11と、CPU制御部12と、メモリ制御部13と、RAM14と、FWH(FirmWare Hub)15等を有する。CPU11は、各種演算を実行する演算回路であり、CPU制御部12は、複数のCPU11のリクエストの競合を調停するとともに、CPU11のリクエストをメモリ制御部13もしくはIOB20へ振り分ける回路である。メモリ制御部13は、RAM14へのアクセスを制御する回路であり、RAM14は情報を一時的に記憶する記憶回路である。FWH15は、ファームウェアを記憶する記憶回路である。
IOB20は、メモリアクセス以外の各種入出力制御を実行する入出力モジュールであり、IO制御部21と、PCI(Peripheral Component Interconnect)制御部22と、PCIインターフェース23と、ICH(IO Controller Hub)24を有する。IO制御部21は、IOB20を全体制御する回路であり、PCI制御部22は、PCIインターフェース23に接続される各種PCIデバイスを制御する回路である。ICH24は、IOB20上に実装されたネットワークインターフェース(LAN)、画面制御装置(VGA)、シリアル入出力制御装置(SIO)、ベースボード管理装置(BMC)等を制御する回路である。
データクロスバ31およびアドレスクロスバ32は、複数のSB10および複数のIOB20を電気的に接続させる接続モジュールであり、それぞれ、高速なスイッチであるデータ転送装置300を有する。
図4は、図3に示したデータ転送装置300の構成の一例を示す図である。なお、ここでは、説明を簡単にするため、調停に関連する構成のみを図示している。また、データパケットとコマンドパケットの区別もおこなわないこととする。
図4に示すように、データ転送装置300は、入力キュー310と調停制御回路320の組合せを複数と、入力キュー選択回路330と、セレクタ340と、出力キュー350とを有する。入力キュー310は、あるモジュールから出力されたパケットが一時的に格納されるキューである。調停制御回路320は、入力キュー310ごとに設けられ、対応する入力キュー310から出力されるデータ量を監視する回路であり、上限値設定レジスタ321と、JTAG回路またはSMBus回路322と、パケット長デコード回路323と、出力データ量測定回路324と、出力データ量測定カウンタ325とを有する。
上限値設定レジスタ321は、出力するデータ量の上限値を記憶する。上限値設定レジスタ321は、入力キュー310ごとに存在するため、出力するデータ量の上限値は、入力キュー310ごとに異なった値とすることもできるし、全ての入力キュー310において同一の値とすることもできる。JTAG回路またはSMBus回路322は、上限値設定レジスタ321に対して、外部から上限値を設定するための回路である。
パケット長デコード回路323は、対応する入力キュー310の先頭パケットのサイズを取得する回路である。パケットのサイズは、パケットのヘッダ部の所定の位置を参照することにより取得することができる。
出力データ量測定回路324は、対応する入力キューの先頭パケットが選択される旨の信号を受信するたびに、パケット長デコード回路323によって取得された先頭パケットのサイズを出力データ量測定カウンタ325に加算させる。そして、加算後の出力データ量測定カウンタ325の値が、上限値設定レジスタ321の値以上となった場合には、出力データ量測定回路324は、出力データ量測定カウンタ325の値をリセットさせるとともに、入力キュー選択回路330に対して入力キューの優先順位の変更を指示する。また、出力データ量測定回路324は、対応する入力キューの先頭パケットが選択される旨の信号を受信した後に、対応する入力キューに出力可能なパケットがなくなった旨の信号を受信した場合にも、出力データ量測定カウンタ325の値をリセットさせるとともに、入力キュー選択回路330に対して入力キューの優先順位の変更を指示する。出力データ量測定カウンタ325は、出力データ量を記憶する。
入力キュー選択回路330は、優先順位に基づいていずれかの入力キュー310の先頭パケットを選択してセレクタ340へ出力させるとともに、先頭パケットを選択する旨の信号を、そのパケットが格納されている入力キューに対応する出力データ量測定回路324へ送信する。セレクタ340は、入力キュー310から出力されたパケットを出力キュー350に格納させる。出力キュー350は、パケットが一時的に格納されるキューである。
次に、図4に示したデータ転送装置300の動作について説明する。図5は、入力キュー選択回路330の動作を示すフローチャートである。図5に示すように、入力キュー選択回路330は、優先順位に従って、出力可能なパケットが格納された入力キュー310の中から選択するキューを決定する(ステップS101)。
続いて、入力キュー選択回路330は、決定した入力キュー310の先頭パケット長を取得する(ステップS102)。そして、入力キュー選択回路330は、取得したパケット長に基づいて、先頭パケットを出力させるために必要な期間を求め、決定した入力キュー310がその期間選択されるように設定する(ステップS103)。また、入力キュー選択回路330は、決定した入力キュー310の先頭パケットが出力される旨を通知する信号を、その入力キュー310に対応する出力データ量測定回路324へ送信する(ステップS104)。
また、入力キュー選択回路330は、出力データ量測定回路324から入力キューの優先順位の変更を指示された場合には(ステップS105肯定)、その出力データ量測定回路324に対応する入力キュー310の優先順位が最下位になるように優先順位を更新する(ステップS106)。入力キュー選択回路330は、以上のステップS101〜S106の手順を繰り返し実行する。なお、ステップ101〜S104の手順と、ステップS105〜S106の手順はこの通り順次実行する必要はなく、それぞれ独立して非同期で実行することができる。
図6は、出力データ量測定回路324の動作を示すフローチャートである。同図に示すように、対応する入力キュー310の先頭パケットが選択される旨の信号を受信すると(ステップS201)、出力データ量測定回路324は、先頭パケットのパケット長を出力データ量測定カウンタ325に加算する(ステップS202)。
そして、加算後の出力データ量測定カウンタ325の値を、上限値設定レジスタ321に記憶されている上限値と比較し(ステップS203)、加算後の値が上限値以上であれば(ステップS204肯定)、出力データ量測定回路324は、出力データ量測定カウンタ325の値をリセットするとともに(ステップS205)、入力キュー選択回路330に対して、入力キューの優先順位の変更を指示する(ステップS206)。
一方、加算後の値が上限値未満の場合は(ステップS204否定)、対応する入力キューに出力可能なパケットが残っていない旨の信号が受信されれば(ステップS207肯定)、出力データ量測定回路324は、出力データ量測定カウンタ325の値をリセットするとともに(ステップS205)、入力キュー選択回路330に対して、入力キューの優先順位の変更を指示する(ステップS206)。
入力キュー選択回路330は、対応する入力キュー310の先頭パケットが選択される旨の信号を受信するたびに、上記のステップS201〜S207の手順を実行する。
次に、上記の動作を実現させるための出力データ量測定回路324と入力キュー選択回路330の構成について説明する。図7は、出力データ量測定回路324の構成の一例を示す図である。なお、この例では、説明を簡単にするため、パケット長が2byteもしくは8byteであることを想定しているが、パケット長はこの2種類に限定されるものではない。
図7に示す構成においては、先頭パケットが選択される旨を通知するパケット出力信号が受信されたときに、パケット長デコード回路323から先頭パケットのサイズが2byteである旨を示す信号が送信されていると、AND回路324aの出力がONになる。そして、AND回路324aの出力がONになり、かつ、上限値設定レジスタ321に設定されている上限値と出力データ量測定カウンタ325の値を比較する比較器324gから上限値がカウンタ値以上である旨の信号が出力されていないと、AND回路324bの出力もONになる。そして、AND回路324bの出力がONになると、加算指示回路324cから増分2の加算指示が出力データ量測定カウンタ325へ送信されることになる。
また、先頭パケットが選択される旨を通知するパケット出力信号が受信されたときに、パケット長デコード回路323から先頭パケットのサイズが8byteである旨を示す信号が送信されていると、AND回路324dの出力がONになる。そして、AND回路324dの出力がONになり、かつ、比較器324gから上限値がカウンタ値以上である旨の信号が出力されていないと、AND回路324eの出力もONになる。そして、AND回路324eの出力がONになると、加算指示回路324fから増分8の加算指示が出力データ量測定カウンタ325へ送信されることになる。
また、比較器324gから上限値がカウンタ値以上である旨の信号が出力された場合には、OR回路324iの出力がONになる。また、対応する入力キュー310に出力可能なパケットがなくなった旨を示すブランク信号が受信された場合にも、OR回路324iの出力がONになる。そして、OR回路324iの出力がONになると、リセット指示回路324hからリセット指示が出力データ量測定カウンタ325へ送信されるとともに、優先順位変更指示が入力キュー選択回路330へ送信される。
図8は、入力キュー選択回路330の構成の一例を示す図である。なお、この例では、説明を簡単にするため、入力キュー310が3個あり、それぞれ#0〜#2として識別されることを想定しているが、入力キュー310の数は3個に限定されるものではない。
図8に示す構成においては、#0の入力キュー310に対応する調停制御回路320から優先順位変更指示が受信されると、ポインタ更新回路331aが最優先ポインタ332の値を#1に更新する。また、#1の入力キュー310に対応する調停制御回路320から優先順位変更指示が受信されると、ポインタ更新回路331bが最優先ポインタ332の値を#2に更新する。また、#2の入力キュー310に対応する調停制御回路320から優先順位変更指示が受信されると、ポインタ更新回路331cが最優先ポインタ332の値を#0に更新する。
また、1ないし複数の入力キュー310から出力可能なパケットが存在することを示すリクエストが受信されると、ラウンドロビン回路333は、最優先ポインタ332に設定されている番号に対応する入力キュー310を最優先とする優先順位に基づいて、リクエストを送信した入力キュー310のいずれを選択するかを決定し、該当入力キュー310のパケット出力信号を送信する。入力キュー310のいずれかのパケット出力信号がONになると、OR回路334の出力がONになる。そして、OR回路334の出力がONになると、ラウンドロビン回路333によって決定された入力キュー310の先頭パケット長がセレクタ335において選択され、パケット長カウンタ336に格納される。
そして、パケット長カウンタ336に格納されたパケット長は、パケット長に基づいて入力キュー310の選択期間を生成する選択期間生成回路337a〜337cに出力される。そして、選択期間生成回路337a〜337cのうち、ラウンドロビン回路333によって決定された入力キュー310に対応するものが、対応する入力キュー310を生成された期間だけ選択させるとともに、先頭パケットが選択される旨を示すパケット出力信号を対応する調停制御回路320へ送信する。
10 システムボード(SB)
11 CPU
12 CPU制御部
13 メモリ制御部
14 RAM
15 FWH
20 IOボード(IOB)
21 IO制御部
22 PCI制御部
23 PCIインターフェース
24 ICH
31 データクロスバ
32 アドレスクロスバ
300 データ転送装置
310 入力キュー
320 調停制御回路
321 上限値設定レジスタ
322 JTAG回路またはSMBus回路
323 パケット長デコード回路
324 出力データ量測定回路
324a、324b、324d、324e AND回路
324c、324f 加算指示回路
324g 比較器
324h リセット指示回路
324i OR回路
325 出力データ量測定カウンタ
330 入力キュー選択回路
331a〜331c ポインタ更新回路
332 最優先ポインタ
333 ラウンドロビン回路
334 OR回路
335 セレクタ
336 パケット長カウンタ
337a〜337c 選択期間生成回路
340 セレクタ
350 出力キュー

Claims (12)

  1. 複数の入力キューと、
    前記入力キューごとに設けられた調停制御部と、
    前記入力キューごとに設定された優先順位に基づいて前記入力キューのいずれかを選択し、選択した入力キューからデータを出力させる入力キュー選択部とを備え、
    前記調停制御部は、
    所定の上限値が記憶されるレジスタと、
    対応する入力キューから出力されたデータ量を計数するカウンタと、
    前記カウンタの値が前記レジスタに記憶されている上限値以上となった場合に、前記入力キュー選択部に前記優先順位を更新させるとともに、前記カウンタの値をリセットさせる制御回路と
    を有することを特徴とするデータ転送装置。
  2. 前記制御回路は、さらに、対応する入力キューから出力されるデータがなくなった場合に、前記入力キュー選択部に前記優先順位を更新させるとともに、前記カウンタの値をリセットさせることを特徴とする請求項1に記載のデータ転送装置。
  3. 前記入力キュー選択部は、前記入力キューのいずれかを選択した場合に、選択した入力キューに対応する前記調停制御部へその旨を通知し、
    前記調停制御部は、前記入力キュー選択部からの通知を契機として、前記カウンタに計数を開始させることを特徴とする請求項1に記載のデータ転送装置。
  4. 前記調停制御部は、対応する入力キューの先頭に格納されているデータのデータ長を取得するデータ長取得部をさらに備え、
    前記カウンタは、前記データ長取得部によって取得されたデータ長を加算していくことにより、対応する入力キューから出力されたデータ量を計数することを特徴とする請求項1に記載のデータ転送装置。
  5. 複数の入力キューと、
    前記入力キューごとに設けられた調停制御部と、
    前記入力キューごとに設定された優先順位に基づいて前記入力キューのいずれかを選択し、選択した入力キューからデータを出力させる入力キュー選択部とを備え、
    前記調停制御部は、
    所定の上限値が記憶されるレジスタと、
    対応する入力キューから出力されたデータ量を計数するカウンタと、
    前記カウンタの値が前記レジスタに記憶されている上限値以上となった場合に、前記入力キュー選択部に前記優先順位を更新させるとともに、前記カウンタの値をリセットさせる制御回路と
    を有することを特徴とする情報処理装置。
  6. 前記制御回路は、さらに、対応する入力キューから出力されるデータがなくなった場合に、前記入力キュー選択部に前記優先順位を更新させるとともに、前記カウンタの値をリセットさせることを特徴とする請求項5に記載の情報処理装置。
  7. 前記入力キュー選択部は、前記入力キューのいずれかを選択した場合に、選択した入力キューに対応する前記調停制御部へその旨を通知し、
    前記調停制御部は、前記入力キュー選択部からの通知を契機として、前記カウンタに計数を開始させることを特徴とする請求項5に記載の情報処理装置。
  8. 前記調停制御部は、対応する入力キューの先頭に格納されているデータのデータ長を取得するデータ長取得部をさらに備え、
    前記カウンタは、前記データ長取得部によって取得されたデータ長を加算していくことにより、対応する入力キューから出力されたデータ量を計数することを特徴とする請求項5に記載の情報処理装置。
  9. 複数の入力キューと、
    前記入力キューごとに設けられた調停制御部と、
    前記入力キューごとに設定された優先順位に基づいて前記入力キューのいずれかを選択し、選択した入力キューからデータを出力させる入力キュー選択部とを備える情報処理装置における制御方法であって、
    前記調停制御部が、対応する入力キューから出力されたデータ量をカウンタに記憶させるステップと、
    前記カウンタの値が前記レジスタに記憶されている上限値以上となった場合に、前記調停制御部が、前記入力キュー選択部に前記優先順位を更新させるとともに、前記カウンタの値をリセットさせるステップと
    を含むことを特徴とする制御方法。
  10. 対応する入力キューから出力されるデータがなくなった場合に、前記入力キュー選択部に前記優先順位を更新させるとともに、前記制御回路が、前記カウンタの値をリセットさせるステップをさらに含むことを特徴とする請求項9に記載の制御方法。
  11. 前記入力キュー選択部が、前記入力キューのいずれかを選択した場合に、選択した入力キューに対応する前記調停制御部へその旨を通知するステップをさらに含み、
    前記調停制御部は、前記入力キュー選択部からの通知を契機として、前記データ量をカウンタに記憶させるステップを開始させることを特徴とする請求項9に記載の制御方法。
  12. 前記調停制御部が、対応する入力キューの先頭に格納されているデータのデータ長を取得するステップをさらに含み、
    前記調停制御部は、前記データ長を取得するステップによって取得されたデータ長を前記カウンタに加算していくことにより、対応する入力キューから出力されたデータ量を計数することを特徴とする請求項9に記載の制御方法。
JP2010515700A 2008-06-03 2008-06-03 データ転送装置、情報処理装置および制御方法 Expired - Fee Related JP5018964B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/060226 WO2009147731A1 (ja) 2008-06-03 2008-06-03 データ転送装置、情報処理装置および制御方法

Publications (2)

Publication Number Publication Date
JPWO2009147731A1 true JPWO2009147731A1 (ja) 2011-10-20
JP5018964B2 JP5018964B2 (ja) 2012-09-05

Family

ID=41397823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010515700A Expired - Fee Related JP5018964B2 (ja) 2008-06-03 2008-06-03 データ転送装置、情報処理装置および制御方法

Country Status (4)

Country Link
US (1) US20110069717A1 (ja)
EP (1) EP2290552A4 (ja)
JP (1) JP5018964B2 (ja)
WO (1) WO2009147731A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5380322B2 (ja) * 2010-02-17 2014-01-08 京セラドキュメントソリューションズ株式会社 メモリマスタデバイス
US8325723B1 (en) * 2010-02-25 2012-12-04 Integrated Device Technology, Inc. Method and apparatus for dynamic traffic management with packet classification
US8514700B2 (en) * 2010-10-29 2013-08-20 Alcatel Lucent MLPPP occupancy based round robin
JP5821624B2 (ja) * 2011-12-27 2015-11-24 富士通株式会社 通信制御装置、並列計算機システム及び通信制御方法
JP6259046B2 (ja) * 2016-11-04 2018-01-10 株式会社東芝 外部入出力装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4099561B2 (ja) * 1998-05-14 2008-06-11 ソニー株式会社 マルチプロセッサおよびそのバス調停方法
AU2426501A (en) * 1999-12-02 2001-06-12 Lightning Rod Software, Inc. System with multi-media real-time queue monitor
JP2001217868A (ja) 2000-02-04 2001-08-10 Nippon Telegr & Teleph Corp <Ntt> パケットスケジュール回路
JP3566165B2 (ja) 2000-02-09 2004-09-15 日本電信電話株式会社 競合制御方法及び装置
JP2001345839A (ja) * 2000-05-30 2001-12-14 Mitsubishi Electric Corp フレームリレー伝送装置及びフレームリレー伝送方法
EP1249972A1 (en) * 2001-04-09 2002-10-16 Telefonaktiebolaget L M Ericsson (Publ) Method of controlling a queue buffer
US20030065809A1 (en) * 2001-10-03 2003-04-03 Adc Telecommunications, Inc. Scheduling downstream transmissions
JPWO2003103234A1 (ja) * 2002-05-30 2005-10-06 松下電器産業株式会社 パケット転送回路及びパケット転送方法
US7522622B2 (en) * 2005-02-18 2009-04-21 Broadcom Corporation Dynamic color threshold in a queue
US20070118677A1 (en) * 2005-05-13 2007-05-24 Freescale Semiconductor Incorporated Packet switch having a crossbar switch that connects multiport receiving and transmitting elements
US20070174529A1 (en) * 2005-12-29 2007-07-26 Intel Corporation Queue manager having a multi-level arbitrator

Also Published As

Publication number Publication date
EP2290552A1 (en) 2011-03-02
JP5018964B2 (ja) 2012-09-05
WO2009147731A1 (ja) 2009-12-10
US20110069717A1 (en) 2011-03-24
EP2290552A4 (en) 2012-08-15

Similar Documents

Publication Publication Date Title
US6570403B2 (en) Quantized queue length arbiter
US7478183B2 (en) Method and system for n dimension arbitration algorithm—scalable to any number of end points
US7768907B2 (en) System and method for improved Ethernet load balancing
JP5018964B2 (ja) データ転送装置、情報処理装置および制御方法
US8234428B2 (en) Arbitration device that arbitrates conflicts caused in data transfers
JP2011150397A (ja) バス調停装置
WO2007099613A1 (ja) コマンド選択方法、装置、コマンド投入方法、及び装置
JP4999925B2 (ja) 調停を実行する方法及び装置
JP5443586B2 (ja) 回路構成におけるデータ交換を制御するための回路構成、および方法
US9223731B2 (en) Arbitration circuit and control method thereof
US20040111532A1 (en) Method, system, and program for adding operations to structures
US20110029706A1 (en) Electronic device and method for controlling an electronic device
JP2008046771A (ja) ダイレクトメモリアクセスコントローラ
EP1591907B1 (en) Resource management
US11252108B2 (en) Controller for ordering out-of-order transactions in SoC
US8174969B1 (en) Congestion management for a packet switch
CN116185649A (zh) 存储控制方法、存储控制器、存储芯片、网卡、可读介质
CN111078598B (zh) 存储模块数据访问控制方法、数据访问装置和芯片
US20070183450A1 (en) Band allocation method, communication control unit and communication apparatus
JP6786835B2 (ja) 管理装置、サーバ、シンクライアントシステム、管理方法及びプログラム
JP7226084B2 (ja) 情報処理装置
US7979766B2 (en) Architecture for a message bus
US11240178B2 (en) Data transmission method and data transmission system
JP2005316866A (ja) バス装置
CN114518957A (zh) 资源调整方法、装置、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120416

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120528

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150622

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees