JPH11252142A - データ伝送装置及び方法、並びにネットワークシステム - Google Patents

データ伝送装置及び方法、並びにネットワークシステム

Info

Publication number
JPH11252142A
JPH11252142A JP5112198A JP5112198A JPH11252142A JP H11252142 A JPH11252142 A JP H11252142A JP 5112198 A JP5112198 A JP 5112198A JP 5112198 A JP5112198 A JP 5112198A JP H11252142 A JPH11252142 A JP H11252142A
Authority
JP
Japan
Prior art keywords
packet
queue
input
output
node
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.)
Withdrawn
Application number
JP5112198A
Other languages
English (en)
Inventor
Hideki Hara
英樹 原
Akihiko Kimura
明彦 木村
Hiroshi Kawashima
浩 川島
Masashi Endo
政士 遠藤
Shinji Hayashi
伸二 林
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP5112198A priority Critical patent/JPH11252142A/ja
Publication of JPH11252142A publication Critical patent/JPH11252142A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【課題】 複数のノードで構成されるネットワークの1
つのノードのパケット入出力用のキュー(待ち行列)の
有効利用を図り、システム全体の通信効率等の性能向上
を実現する。 【解決手段】 複数のノードで構成されるネットワーク
の1つのノード100内のキューリソース140は、キ
ューリソース制御部150からの制御信号により、リク
エスト出力用領域141、レスポンス出力用領域14
2、リクエスト入力用領域143、レスポンス入力用領
域144が割当制御されるようになっている。キューリ
ソース制御部150は、各領域141〜144に対する
入出力パケット量等に応じて、動的に各領域141〜1
44の割当を変更制御する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ伝送装置及
び方法、並びにネットワークシステムに関し、特に、複
数のノードで構成されるネットワークの1つのノードと
なるデータ伝送装置及び当該ノードからデータを伝送す
るためのデータ伝送方法、並びにネットワークシステム
に関する。
【0002】
【従来の技術】複数のノードで構成されるネットワーク
環境でノード間通信を行なう際には、情報をまとめて一
定の大きさとしたパケットを通信単位として用いるパケ
ット通信が近年において多く採用されている。ここでノ
ード(node)とは、ネットワーク上での送受信ステーシ
ョン、すなわち、コンピュータ端末やそれに準ずる装
置、例えばハードディスク、監視/制御機器、プリン
タ、その他の各種端末機器等のことを言う。
【0003】図26は、複数のノードで構成されるネッ
トワーク環境の一例を示す図である。この図26に示し
た例は、リングトポロジー接続によるものである。トポ
ロジーとは、一般的にはネットワーク接続での形態・形
状のことであり、各ノード間をリング(ring:輪)状につ
なげた場合を言う。
【0004】図26において、例えばノードNAとノー
ドNCで通信等によるパケットのやり取りがある場合、
ノードNAから発信されたパケットは、ノードNBを経
由してノードNCに、また、ノードNCから発信された
パケットは、ノードNDを経由してノードNAで受信さ
れることになる。
【0005】各ノードには入力と出力の口(ポート)が
あり、入力ポートから入った信号、又はパケットデータ
は、ノード内で処理されてから出力ポートから出力され
たり、処理されずに出力ポートからそのまま出力された
りする。ネットワークにおけるこの形態(トポロジー)
の例としては、標準規格の“Token Ring /IEEE 802.5”
や“Fibre Channel”,“Scalable Coherent Interface
/IEEE 1596-1992” などがある。
【0006】次に、各ノード間での通信、すなわちデー
タのやり取りが行われるときのパケットの流れ方につい
て、図27を参照しながら説明する。
【0007】図27において、パケットPKは、ノード
101の入力部(入力ポート)111からノード101
に到達し、出力部(出力ポート)112から次のノード
へと出て行く。パケット用一時記憶領域部105は、入
力部111から入ってきたパケットを一時的に蓄積して
おき、自身のノード(自ノード)へのパケットなのか否
かを判断する部分であり、自身のノードに対するパケッ
トであれば、入力パケット用記憶領域部103へとパケ
ットが導かれる。自ノードに対するパケットでなけれ
ば、ネットワークを通して先のノードへと転送しなけれ
ばならないので、MUX部106でマルチプレクス(セ
レクト)されて出力部112から出て行く。パケット用
一時記憶領域部105では、入力されたパケットのヘッ
ダ部の中に組み込まれているパケット発行先の識別子
(ターゲットID)をみることにより、自ノードへのパ
ケットなのか、他ノードへのパケットなのかを判断する
ことができる。
【0008】入力パケット用記憶領域部103は、自ノ
ードに対するパケットを自ノードの中心的な処理部に送
り込むための一時記憶領域である。その先にはノード処
理部102があり、ノードを包括するネットワークと他
の処理系とをインタフェースする部分である。このノー
ド処理部102の機能としては、例えば、バス幅やバス
の信号レベル、バスプロトコル(規約)といったバスの
変換等が挙げられる。出力パケット用記憶領域部104
は、他の処理系からバス変換等が行われ、ノード処理部
102においてデータのパケット化が行われてから、そ
のパケットを出力の前段で一時的に蓄積するための部分
である。入力パケット用記憶領域部103は、自ノード
入力用の一時的な記憶領域であり、出力パケット記憶領
域104は、自ノード出力用の一時的な記憶領域であ
る。
【0009】パケット用一時記憶領域部105、入力パ
ケット用記憶領域部103、出力パケット用記憶領域部
104の具体例としては、FIFO(First In First O
ut)メモリやキュー(Queue:待ち行列)などが挙げられ
る。また、パケット用一時記憶領域部105、入力パケ
ット用記憶領域部103、出力パケット用記憶領域部1
04の大きさは、最低でも、そのネットワーク上でやり
取りされる最大パケットサイズを必要とする。
【0010】次に、図27で示した構成をさらに具体化
して、従来のノードにおける上記入力パケット用記憶領
域部及び出力パケット用記憶領域部となるキュー(待ち
行列)リソース(資源)の配置とその制御管理について
図28で説明する。
【0011】図28において、リクエスト出力キュー1
31及びレスポンス出力キュー132が上記出力パケッ
ト用記憶領域部104に、リクエスト入力キュー133
及びレスポンス入力キュー134が上記入力パケット用
記憶領域部103にそれぞれ対応する。また、上記ノー
ド処理部102として、リクエスタ121及びレスポン
ダ122が示され、これらのリクエスタ121及びレス
ポンダ122によって、他の処理系との間のクロック周
波数、データバス幅等の整合性がとられる。なお、上記
図27に示したパケット用一時記憶領域部105は、入
力パケットのアドレスを解読(デコード)するパケット
アドレス解読(デコード)部105aと、記憶部105
bとで示している。
【0012】以下、これらのリクエスト出力キュー13
1、レスポンス出力キュー132、リクエスト入力キュ
ー133、レスポンス入力キュー134の役割について
説明するが、ここで説明上の便宜のために、例えば、ノ
ードNAとノードNBの2つのノード間でデータのやり
取りを行うものとする。
【0013】リクエスト出力キュー131は、ノードN
AがノードNBに対して、データのやり取りを行ないた
いというリクエストパケットをノードNA内で生成した
ときに、その生成されたリクエストパケットが入力され
る記憶領域部である。すなわち、上記生成されたパケッ
トは、ノードNA内のリクエスト出力キュー131を経
由、または、リクエスト出力キュー131に一時的に蓄
積されて、順次ノードNA内のMUX部106に送り出
される。レスポンス出力キュー132は、データのやり
取りを行ないたいというリクエストパケットが送られて
きたときに、そのリクエストに対して応答(レスポン
ス)できるか否かを示したレスポンスパケットが入力さ
れる記憶領域部である。すなわち、ノードNAからの上
記リクエストパケットがノードNBに対して送られてき
たときに、そのリクエスト(データのやり取り)の対象
となるノードNBが、応答(レスポンス)できるか否か
を示したレスポンスパケットをノードNAに対して返す
際に、ノードNB内でそのレスポンスパケットが生成さ
れ、レスポンス出力キュー132を経由、または、レス
ポンス出力キュー132に一時的に蓄積されてから、順
次ノードNB内のMUX部106に送り出される。
【0014】リクエスト入力キュー133は、ノードN
AがノードNBに対して、データのやり取りを行いたい
というリクエストパケットを発行したときに、ノードN
Bでは、その内部のパケットアドレス解読(デコード)
部105aで、そのリクエストパケットがノードNB
(自ノード)に対するものであることを判断したあと
で、ノードNBの処理の中心部に取り込む際に、そのリ
クエストパケットが経由、または、一時的に蓄積される
記憶領域部である。レスポンス入力キュー134は、他
のノードから自ノードに送られてきたレスポンスパケッ
トが入力される記憶領域部である。すなわち、ノードN
AがノードNBに対して、データのやり取りを行いたい
というリクエストパケットを発行すると、そのリクエス
トに対して応答(レスポンス)できるか否かを示したレ
スポンスパケットをノードNBがノードNAに対して発
行する。そのレスポンスパケットがノードNA(自ノー
ド)に対するものであることをノードNAは内部のパケ
ットアドレス解読(デコード)部105aで判断したあ
とで、ノードNAの処理の中心部に取り込む。その際に
そのレスポンスパケットが経由、または、一時的に蓄積
される記憶領域部がレスポンス入力キュー134であ
る。
【0015】以上のリクエスト出力キュー131、レス
ポンス出力キュー132、リクエスト入力キュー13
3、レスポンス入力キュー134の関係を、模式的に以
下の図29に示す。ノードNAがノードNBに対してリ
クエスト(データやり取りの要求)を発行して、それに
対してノードNBが応答する様子を図29の(a)に示
す。また、ノードNBがノードNAに対してリクエスト
(データのやり取りの要求)を発行して、それに対して
ノードNAが応答する様子、すなわち、リクエストとレ
スポンスの発行関係が逆の場合の様子を図29の(b)
に示す。
【0016】すなわち、図29の(a)においては、ノ
ードNAのリクエスト出力キュー131Aを介してリク
エストパケットがノードNBのリクエスト入力キュー1
33Bに送られ、これに対する応答であるレスポンスパ
ケットが、ノードNBのレスポンス出力キュー132B
を介してノードNAのレスポンス入力キュー134Aに
送られている。また、図29の(b)においては、ノー
ドNBのリクエスト出力キュー131Bを介してリクエ
ストパケットがノードNAのリクエスト入力キュー13
3Aに送られ、これに対する応答であるレスポンスパケ
ットが、ノードNAのレスポンス出力キュー132Aを
介してノードNBのレスポンス入力キュー134Bに送
られている。
【0017】
【発明が解決しようとする課題】ところで、従来におい
ては、これら4種類のキュー(リクエスト出力キュー1
31、レスポンス出力キュー132、リクエスト入力キ
ュー133、レスポンス入力キュー134)は、それぞ
れ、リクエスト出力用、レスポンス出力用、リクエスト
入力用、レスポンス入力用といった固有の用途・目的に
しか使用されていない。そのような構成では、例えば、
図29の(a)のノードNAのようにデータの送出を行
なう頻度の高いノードにおいては、そのノード内のリク
エスト出力キュー131、および、レスポンス入力キュ
ー134は頻繁に使用される状態となるが、レスポンス
出力キュー132、および、リクエスト入力キュー13
3はほとんど使用されない状態となる。また、図29の
(b)のノードNAのようにデータの受信を行なう頻度
の高いノードにおいては、そのノード内のリクエスト入
力キュー133、および、レスポンス出力キュー132
は頻繁に使用される状態となるが、リクエスト出力キュ
ー131、および、レスポンス入力キュー134はほと
んど使用されない状態となる。
【0018】さらに、リクエストパケットに対してレス
ポンスパケットを必要としないデータのやり取りもある
ので、その場合に、データ送出を主に行なうノードで
は、リクエスト出力キュー131のみが頻繁に使用さ
れ、その他のレスポンス出力キュー132、リクエスト
入力キュー133、レスポンス入力キュー134はほと
んど使用されないことになり、データ受信を主に行なう
ノードでは、リクエスト入力キュー133のみが頻繁に
使用され、その他のリクエスト出力キュー131、レス
ポンス出力キュー132、レスポンス入力キュー134
はほとんど使用されないことになる。
【0019】このような状況を考えるとネットワークシ
ステムにおいて、バランス良く通信されている場合は問
題ないが、例えば、ビデオオンデマンドをはじめとする
特にビデオ映像系のアプリケーションシステムにおいて
は、映像データを送出するノードであるコンピュータや
それに準ずる機器などの役割と、そのデータを受信する
ノードであるコンピュータやそれに準ずる機器などの役
割とが分担されることが多々ある。このような例におい
て、固定した役割を担うキュー構成では、上記キューの
リソース(資源)としてのバランスが悪いと言える。ま
た、キューは記憶ブロック(メモリ)であるので、不必
要に実装してしまうとコスト高にもつながる。しかしな
がら、頻繁に使用するキューを多めに実装し、あまり使
用しないキューを全く実装しない、または、ほとんど実
装しない、という構成を採用した場合では、そのノード
自身の役割が、データ送出専用ノード、データ受信専用
ノードなどと固定化されてしまい、変更が極めて困難で
ある。このような専用ノードの用途が変更された場合、
例えば、データ送信を主として行なう役割からデータ受
信を主として行なう役割へと変更された場合には、ノー
ド自身におけるデータ処理の性能低下、さらには、その
ノードが接続されたネットワークにおける通信効率の悪
化などの問題が生じることが明らかに予測される。
【0020】本発明は、このような実情に鑑みてなされ
たものであり、ノード内部の処理パケットの入出力用に
使用されるキュー(待ち行列)の利用効率を高め、通信
効率を高めることができるようなデータ伝送装置及び方
法、並びにネットワークシステムの提供を目的とする。
【0021】
【課題を解決するための手段】本発明に係るデータ伝送
装置は、上述した課題を解決するために、複数のノード
で構成されるネットワークの1つのノードとなるデータ
伝送装置において、パケットを処理するパケット処理手
段と、上記パケット処理手段における処理パケットが入
出力され複数パケットを記憶する容量を有し記憶された
ものが順次処理される記憶手段、いわゆるキュー(待ち
行列)と、上記記憶手段の入力用、出力用の割り当てを
変更制御する制御手段とを有することを特徴としてい
る。
【0022】また、本発明に係るデータ伝送方法は、上
述した課題を解決するために、複数のノードで構成され
るネットワークのノード間でデータのパケットを伝送す
るためのデータ伝送方法において、上記ノードにおける
処理パケットの入出力状況に応じたノード情報を得るノ
ード情報取得工程と、得られたノード情報に応じて処理
パケットが入出力される記憶手段の入力用、出力用の割
り当てを制御する割当制御工程とを有することを特徴と
している。
【0023】さらに、本発明に係るネットワークシステ
ムは、複数のノードで構成されるネットワークシステム
において、上記ノード内での処理パケットが入出力され
複数パケットを記憶する容量を有し記憶されたものが順
次処理される記憶手段と、上記記憶手段の入力用、出力
用の割り当てを変更制御する制御手段とを有することを
特徴としている。
【0024】ノード内の処理パケットの記憶手段(キュ
ー)の入力用、出力用の割り当てを変更制御することに
よって、状況に応じて動的に割当を変更でき、記憶手段
であるキューリソースの利用効率を高め、通信効率を高
めることができる。
【0025】
【発明の実施の形態】本発明に係るデータ伝送装置及び
方法の好ましい実施の形態について、図面を参照しなが
ら説明する。
【0026】図1は、本発明の実施の形態となるデータ
伝送装置の概略構成を示すブロック図である。
【0027】この図1において、データ伝送装置である
ノード100は、通信経路を介して伝送されるパケット
PKが入力される入力部(入力ポート)111と、通信
経路にパケットPKを出力する出力部(出力ポート)1
12と、入力部111から入力されたパケットのアドレ
スを解読(デコード)して一時記憶するパケット用一時
記憶領域部105(パケットアドレス解読部105a及
び記憶部105b)と、パケット一時記憶領域部105
と出力部112との間に挿入接続されたMUX部106
とを有し、さらに、入力パケットが自分のノード宛のも
のであるとき、そのパケットが入力され、またノード内
で生成されたパケットを出力する記憶領域部であるキュ
ーリソース140と、このキューリソース140との間
でパケットがやり取りされ、外部の他の処理系とのイン
ターフェース部分ともなるノード処理部102(リクエ
スタ121及びレスポンダ122)とを有して構成され
ている。ここで、メモリブロック等を用いた記憶領域部
であるキューリソース140が、従来の図27や図28
で示した入力パケット用記憶領域部103及び出力パケ
ット用記憶領域部104に対応するものであり、キュー
リソース制御部150からの制御信号により、リクエス
ト出力用領域141、レスポンス出力用領域142、リ
クエスト入力用領域143、レスポンス入力用領域14
4が割当制御されるようになっている。
【0028】このキューリソース140のリクエスト出
力用領域141、レスポンス出力用領域142、リクエ
スト入力用領域143及びレスポンス入力用領域144
は、上述した図28のリクエスト出力キュー131、レ
スポンス出力キュー132、リクエスト入力キュー13
3及びレスポンス入力キュー134にそれぞれ対応する
ものであり、同様な機能を有している。
【0029】すなわち、リクエスト出力用領域141、
レスポンス出力用領域142、リクエスト入力用領域1
43及びレスポンス入力用領域144の役割について、
例えば、ノードNAとノードNBの2つのノード間でデ
ータのやり取りを行うものとして説明すると、次のよう
になる。
【0030】リクエスト出力用領域141は、ノードN
AがノードNBに対して、データのやり取りを行ないた
いというリクエストパケットをノードNA内で生成した
ときに、その生成されたリクエストパケットが入力され
る記憶領域部である。すなわち、上記生成されたパケッ
トは、ノードNA内のリクエスト出力用領域141を経
由、または、リクエスト出力用領域141に一時的に蓄
積されて、順次ノードNA内のMUX部106に送り出
される。レスポンス出力用領域142は、データのやり
取りを行いたいというリクエストパケットが送られてき
たときに、そのリクエストに対して応答(レスポンス)
できるか否かを示したレスポンスパケットが入力される
記憶領域部である。すなわち、ノードNAからの上記リ
クエストパケットがノードNBに対して送られてきたと
きに、そのリクエスト(データのやり取り)の対象とな
るノードNBが、応答(レスポンス)できるか否かを示
したレスポンスパケットをノードNAに対して返す際
に、ノードNB内でそのレスポンスパケットが生成さ
れ、レスポンス出力用領域142を経由、または、レス
ポンス出力用領域142に一時的に蓄積されてから、順
次ノードNB内のMUX部106に送り出される。
【0031】リクエスト入力用領域143は、ノードN
AがノードNBに対して、データのやり取りを行いたい
というリクエストパケットを発行したときに、ノードN
Bでは、その内部のパケットアドレス解読(デコード)
部105aで、そのリクエストパケットがノードNB
(自ノード)に対するものであることを判断したあと
で、ノードNBの処理の中心部に取り込む際に、そのリ
クエストパケットが経由、または、一時的に蓄積される
記憶領域部である。レスポンス入力用領域144は、他
のノードから自ノードに送られてきたレスポンスパケッ
トが入力される記憶領域部である。すなわち、ノードN
AがノードNBに対して、データのやり取りを行いたい
というリクエストパケットを発行すると、そのリクエス
トに対して応答(レスポンス)できるか否かを示したレ
スポンスパケットをノードNBがノードNAに対して発
行する。そのレスポンスパケットがノードNA(自ノー
ド)に対するものであることをノードNAは内部のパケ
ットアドレス解読(デコード)部105aで判断したあ
とで、ノードNAの処理の中心部に取り込む。その際に
そのレスポンスパケットが経由、または、一時的に蓄積
される記憶領域部がレスポンス入力用領域144であ
る。
【0032】本発明の実施の形態においては、ノード1
00内部のパケットの入出力用に必要なキューリソース
140を一括管理し、キューリソース制御部150によ
り、その時々の状況に応じてキューリソース140をリ
クエストパケット出力用、レスポンスパケット出力用、
リクエストパケット入力用、レスポンスパケット入力用
の各領域141〜144のそれぞれに対して動的に割り
当てる。例えば、データ送出を行なう頻度の高いノード
では、リクエスト出力用領域141とレスポンス入力用
領域144にキューリソース140を多く割り当てるよ
うにし、また、レスポンスパケットを必要としないやり
取りの場合には、リクエスト出力用領域141にだけ多
めのキューリソース140を割り当て、その他のレスポ
ンス出力用領域142、リクエスト入力用領域143、
レスポンス入力用領域144には少なめのキューリソー
ス140を割り当てる。データ受信を行なう頻度の高い
ノードでは、リクエスト入力用領域143とレスポンス
出力用領域142にキューリソース140を多く割り当
てるようにし、また、レスポンスパケットを必要としな
いやり取りの場合には、リクエスト入力用領域143に
だけ多めのキューリソース140を割り当て、その他の
リクエスト出力用領域141、レスポンス出力用領域1
42、レスポンス入力用領域144には少なめのキュー
リソースを割り当てる。このように、一括管理して、キ
ューリソース140を必要とする部分に対しては多く割
り当て、それほど必要としない部分に対しては少なく割
り当てる。このような操作をネットワークシステムにお
けるノードにおいて動的に変更して、常に通信効率の高
いネットワークシステムを実現することができる。
【0033】以下、キューリソース140の割当制御の
具体例について、図面を参照しながら説明する。
【0034】図2は、メモリであるキューリソース14
0は、ポインタで指示される複数の記憶ブロック(以下
キューエントリという。)146から構成されており、
各キューエントリ(記憶ブロック)146は、所定の記
憶容量、すなわち、そのノードあるいはネットワークで
取り扱うことのできる最大のパケットサイズを有し、ポ
インタアドレスにより各キューエントリ146を区別し
て指示することができるようになっている。図2の例で
は、16エントリ(16ブロック)から成るキューリソ
ース140を示しており、ポインタアドレスは0〜15
で、4ビットで表すことができる。
【0035】この図2に示す実施の形態では、ポインタ
を使用することで、一括管理しているキューリソース1
40をある程度のまとまり(キューエントリ146)ご
とに分割して、それらをリクエスト出力用、レスポンス
出力用、リクエスト入力用、レスポンス入力用にそれぞ
れ割り当てるている。制御部150は、ポインタ格納部
151を有し、このポインタ格納部151には、それぞ
れ、リクエスト出力用、レスポンス出力用、リクエスト
入力用、レスポンス入力用についての、カレントポイン
タ、割当開始ポインタ、割当終了ポインタの3種類のポ
インタを格納するための記憶部がある。割当開始ポイン
タ、割当終了ポインタには、割り当てたキューエントリ
146の先頭ポインタアドレスと終了ポインタアドレス
とを格納する。例えば、ポインタアドレス3から8が割
り当てられた場合には、割当開始ポインタに3が、割当
終了ポインタには8が格納される。4種類(リクエスト
出力用、レスポンス出力用、リクエスト入力用、レスポ
ンス入力用)の役割に応じて、ポインタアドレスがそれ
ぞれ設定格納される。この割当開始ポインタと割当終了
ポインタは、ある時点で設定され、その後もノードの状
況に応じて、逐次その設定が変更される。ただし、それ
らのポインタアドレスの開始から終了までが、別のポイ
ンタアドレスの開始から終了までと重なることがあって
はならない。
【0036】カレントポインタには、ノードが実際に現
在参照しているキューエントリ146のアドレスポイン
タが格納される。このポインタの値は、例えば、割当開
始ポインタと同じ値からノードによってキューエントリ
146内のパケットデータが参照されるたびに、1ずつ
順番にインクリメント(+1)されていき、割当終了ポ
インタと同じ値になったとき、再び、割当開始ポインタ
と同じ値になり、以降、同様の動作を繰り返す。これら
のポインタ格納用の部分はキューエントリの数に依存す
るが、この例では、キューエントリ146が16個ある
ので各4ビットが必要となることから、ポインタ格納部
151全体では、 4ビット×12=48ビット=6バイト の容量が必要ということになる。
【0037】以下、図3〜図7にノードの役割例に応じ
た制御の様子を説明する。図3は、データ送受信を比較
的均等に行なっているノードにおける様子を、図4は、
データ送信を高い頻度で行なうノードで、レスポンスパ
ケットがある場合における様子を、図5は、データ受信
を高い頻度で行なうノードで、レスポンスパケットがあ
る場合における様子を、図6は、データ送信を高い頻度
で行なうノードで、レスポンスパケットが不要な場合に
おける様子を、図7は、データ受信を高い頻度で行なう
ノードで、レスポンスパケットが不要な場合における様
子をそれぞれ示している。
【0038】図3においては、ポインタを使用したキュ
ーリソース140のブロック分割による割り当て方法に
よって、データの送受信を比較的均等に行なっている場
合のノード内キューリソース140の割り当ての様子を
示している。データの送信と受信の頻度が同じくらいな
ので、キューリソース140も均等に分割、制御する。
この図3の例では、リクエスト出力用、レスポンス出力
用、リクエスト入力用、レスポンス入力用の各領域14
1,142,143,144にそれぞれ4エントリずつ
を割り当てている状態を表わしている。なお、図中の矢
印CPは、カレントポインタの位置を示している。
【0039】図4においては、ポインタを使用したキュ
ーリソース140のブロック分割による割り当て方法に
よって、データの送信を高い頻度で行なっている場合の
ノード内キューリソース140の割り当ての様子を示し
ている。データ送信の頻度が高いので、キューリソース
制御部150は、リクエスト出力用領域141とレスポ
ンス入力用領域144に多めのキューリソース140を
割り当てるように制御する。図4では、使用頻度の高い
リクエスト出力用領域141とレスポンス入力用領域1
44に5エントリずつを、そして、使用頻度の低いリク
エスト入力用領域143とレスポンス出力用領域142
に3エントリずつをそれぞれ割り当てている状態を表わ
している。
【0040】図5においては、ポインタを使用したキュ
ーリソース140のブロック分割による割り当て方法に
よって、データの受信を高い頻度で行なっている場合の
ノード内キューリソース140の割り当ての様子を示し
ている。データ受信の頻度が高いので、リクエスト入力
用とレスポンス出力用に多めのキューリソース140を
割り当て、制御する。図5では、使用頻度の高いリクエ
スト入力用領域143とレスポンス出力用領域142に
6エントリずつを、そして、使用頻度の低いリクエスト
出力用領域141とレスポンス入力用領域144に2エ
ントリずつをそれぞれ割り当てている状態を表わしてい
る。
【0041】図6においては、ポインタを使用したキュ
ーリソース140のブロック分割による割り当て方法に
よって、データの送信を高い頻度で行なっている場合
で、かつ、リクエストパケットに対応するレスポンスパ
ケットが不要なやり取りを行なっている場合のノード内
キューリソース140の割り当ての様子を示している。
データ送信の頻度が高く、レスポンスパケットが不要な
ので、リクエスト出力用のみに多めのキューリソースを
割り当て、制御する。図6では、使用頻度の高いリクエ
スト出力用領域141に8エントリを、そして、使用頻
度の低いレスポンス入力用領域144に2エントリを、
リクエスト入力用領域143とレスポンス出力用領域1
42に3エントリずつをそれぞれ割り当てている状態を
表わしている。
【0042】図7においては、ポインタを使用したキュ
ーリソース140のブロック分割による割り当て方法に
よって、データの受信を高い頻度で行なっている場合
で、かつ、リクエストパケットに対応するレスポンスパ
ケットが不要なやり取りを行なっている場合のノード内
キューリソース140の割り当ての様子を示している。
データ受信の頻度が高く、レスポンスパケットが不要な
ので、リクエスト入力用のみに多めのキューリソースを
割り当て、制御する。図7では、使用頻度の高いリクエ
スト入力用領域143に7エントリを、そして、使用頻
度の低いリクエスト出力用領域141、レスポンス出力
用領域142、レスポンス入力用領域144にそれぞれ
3エントリずつを割り当てている状態を表わしている。
【0043】以上の図2〜図7に示す具体例では、キュ
ーリソース140の各領域141〜144について、領
域毎のポインタアドレスが連続している場合を示してい
るが、領域毎のエントリが不連続であってもよい。この
ような領域を構成するエントリが不連続であるような例
について、図8〜図13を参照しながら説明する。
【0044】すなわち、図8はキューリソース140及
びキューリソース制御部150の構成を概略的に示して
おり、この図8の具体例では、ポインタを使用すること
で、一括管理しているキューリソース140の各エント
リを完全に分割して、それらをリクエスト出力用、レス
ポンス出力用、リクエスト入力用、レスポンス入力用に
それぞれ割り当てている。
【0045】キューリソース制御部150内のポインタ
格納部152には、それぞれ、リクエスト出力用、レス
ポンス出力用、リクエスト入力用、レスポンス入力用の
ポインタ格納部があり、各入出力用に割り当てられたキ
ューエントリのポインタアドレスを格納する。ここで
は、全くの任意にキューエントリを割り当てることがで
きるようになっており、5ビットで構成される1つのポ
インタ格納部分(152a及び152b)には、キュー
エントリのポインタアドレスが格納される。ポインタア
ドレスを格納する部分152aに必要な容量は、この例
のようにキューリソース140が16エントリの場合に
は4ビットであり、残りの1ビットの部分152bは、
そのポインタ格納部分に有効なポインタアドレスが格納
されているか否かを示す一種のフラグのために設けられ
ている。4種類(リクエスト出力用、レスポンス出力
用、リクエスト入力用、レスポンス入力用)の役割に応
じて、ポインタアドレスがそれぞれ設定格納されるので
あるが、この設定は、ある時点で行われ、その後もノー
ドの状況に応じて、逐次その設定が変更される。ただ
し、それらのポインタアドレスが重複して存在すること
があってはならない。
【0046】このようなポインタ格納部152の容量は
キューエントリの数に依存するが、ここの例では、キュ
ーエントリが16あるので各4ビットが必要となり、格
納されているポインタアドレスが有効か否かを示す1ビ
ットを含めると、ポインタ格納部全体では、 5ビット×52=260ビット≒33バイト の容量が必要ということになる。
【0047】図8の例では、1つのポインタ格納部分
(5ビットの部分:152a及び152b)を1つの入
出力用(リクエスト出力用、レスポンス出力用、リクエ
スト入力用、レスポンス入力用)に13個ずつで合計5
2個設けているが、13個としたのは、全キューリソー
スエントリの数が16個であるのに対して、1つの入出
力用に割り当てることのできるキューリソースの最大数
を13個とし、その他の3種類の入出力用には1個ずつ
を割り当てるという状況が可能になるように考えたから
である。もし、全キューリソースエントリ16個に対し
て、1つの入出力用に割り当てることのできるキューリ
ソースの最大数を8個とした場合には、前述のポインタ
格納部分は、1つの入出力用には8個ずつを設けておけ
ば良いので、合計で8個×4種類=32個となり、した
がって、ポインタ格納部分のビット数は、 5ビット×32=160ビット=20バイト となり、1つの入出力用に割り当てることのできるキュ
ーリソースの最大数を13個から8個にすることによっ
て、ビット数の節約が可能になる。
【0048】以下、図9〜図13に、この具体例による
ノードの役割例に応じたキューリソース割当制御の様子
を説明する。図9では、データ送受信を比較的均等に行
なっているノードにおける様子を、図10では、データ
送信を高い頻度で行なうノード(レスポンスパケットが
ある場合)における様子を、図11では、データ受信を
高い頻度で行なうノード(レスポンスパケットがある場
合)における様子を、図12では、データ送信を高い頻
度で行なうノード(レスポンスパケットが不要な場合)
における様子を、図13では、データ受信を高い頻度で
行なうノード(レスポンスパケットが不要な場合)にお
ける様子をそれぞれ表わしている。
【0049】先ず、図9の例においては、ポインタを使
用したキューリソース140の完全分割による割り当て
方法によって、データの送受信を比較的均等に行なって
いる場合のノード内キューリソース140の割り当ての
様子を示している。データの送信と受信の頻度が同じく
らいなので、キューリソース制御部150は、キューリ
ソース140を均等に分割、制御する。図9では、各キ
ュー割り当ては全くのバラバラであるが、合計で4エン
トリずつを割り当てている状態を表わしている。すなわ
ち、リクエスト出力用領域141としてポインタアドレ
スが「0」,「4」,「6」,「14」の4エントリ
を、レスポンス出力用領域142としてポインタアドレ
スが「1」,「8」,「10」,「11」の4エントリ
を、リクエスト入力用領域143としてポインタアドレ
スが「2」,「9」,「12」,「15」の4エントリ
を、レスポンス入力用領域144としてポインタアドレ
スが「3」,「5」,「7」,「13」の4エントリ
を、それぞれ割り当てている。
【0050】図10においては、ポインタを使用したキ
ューリソース140の完全分割による割り当て方法によ
って、データの送信を高い頻度で行っている場合のノー
ド内キューリソース140の割り当ての様子を示してい
る。データ送信の頻度が高いので、キューリソース制御
部150は、リクエスト出力用とレスポンス入力用に多
めのキューリソースを割り当て、制御する。図10で
は、使用頻度の高いリクエスト出力用領域141とレス
ポンス入力用領域143にそれぞれ5エントリずつを、
そして、使用頻度の低いリクエスト入力用領域144と
レスポンス出力用領域142にそれぞれ3エントリずつ
を割り当てている状態を表わしている。
【0051】図11においては、ポインタを使用したキ
ューリソース140の完全分割による割り当て方法によ
って、データの受信を高い頻度で行っている場合のノー
ド内キューリソース140の割り当ての様子を示してい
る。データ受信の頻度が高いので、キューリソース制御
部150は、リクエスト入力用とレスポンス出力用に多
めのキューリソースを割り当て、制御する。図11で
は、使用頻度の高いリクエスト入力用領域142とレス
ポンス出力用領域142にそれぞれ6エントリずつを、
そして、使用頻度の低いリクエスト出力用領域141と
レスポンス入力用領域144にそれぞれ2エントリずつ
を割り当てている状態を表わしている。
【0052】図12においては、ポインタを使用したキ
ューリソース140の完全分割による割り当て方法によ
って、データの送信を高い頻度で行っている場合で、か
つ、リクエストパケットに対応するレスポンスパケット
が不要なやり取りを行っている場合のノード内キューリ
ソース140の割り当ての様子を示している。データ送
信の頻度が高く、レスポンスパケットが不要なので、キ
ューリソース制御部150は、リクエスト出力用のみに
多めのキューリソースを割り当て、制御する。図12で
は、使用頻度の高いリクエスト出力用領域141に10
エントリを、そして、使用頻度の低いレスポンス出力用
領域142、リクエスト入力用領域143、レスポンス
入力用領域144にそれぞれ2エントリずつを割り当て
ている状態を表わしている。
【0053】図13においては、ポインタを使用したキ
ューリソース140の完全分割による割り当て方法によ
って、データの受信を高い頻度で行っている場合で、か
つ、リクエストパケットに対応するレスポンスパケット
が不要なやり取りを行っている場合のノード内キューリ
ソース140の割り当ての様子を示している。データ受
信の頻度が高く、レスポンスパケットが不要なので、リ
クエスト入力用のみに多めのキューリソースを割り当
て、制御する。図13では、使用頻度の高いリクエスト
入力用領域143に13エントリを、そして、使用頻度
の低いリクエスト出力用領域141、レスポンス出力用
領域142、レスポンス入力用領域144にそれぞれ1
エントリずつを割り当てている状態を表わしている。
【0054】次に、上記図1、図2、図8に示したよう
なキューリソース制御部150の制御動作の例について
説明する。キューリソース制御部150は、その時々の
状況に応じてキューリソース140をリクエスト出力
用、レスポンス出力用、リクエスト入力用、レスポンス
入力用に動的に割当制御する。具体的には、例えば、リ
クエスト出力用パケット、レスポンス出力用パケット、
リクエスト入力用パケット、レスポンス入力用パケット
のそれぞれの量(パケット量)の情報に応じて、最もパ
ケット量が多いものに多くのキューリソースを割り当て
るように制御する。このパケット量等の制御のための情
報は、キューリソース140に入出力されるパケット量
を直接測定してもよいが、メモリであるキューリソース
140の上記各領域141,142,143,144に
対するアクセスの頻度から使用状況を判断することで得
るようにしてもよい。また、アプリケーション等により
当該ノードがどのような用途に使用されるかとか、デー
タの送信、受信のいずれが多くなるか等の情報に応じて
各領域の割当を制御するようにしてもよい。
【0055】図14は、キューリソースの上述したよう
なリクエスト出力用、レスポンス出力用、リクエスト入
力用、レスポンス入力用の各領域に対するメモリアクセ
スの頻度、より具体的にはメモリフル状態になったこと
の認識に応じて、各領域の割当を制御する動作の一例を
示すフローチャートである。
【0056】すなわち、例えば図1のキューリソース制
御部150内において、キューリソース140の割り当
ての判断を行うための情報を生成し、それに基づいてキ
ューリソース140の割り当てを行う。キューリソース
制御部150では、キューリソース140の管理や割り
当てのためにポインタを使用しているので、これらのポ
インタ情報を利用することで、図14に示したキューリ
ソース割り当てを行うための判断フローチャートに従っ
て、キューリソースの使用状況を認識し、どの部分のキ
ューエントリを減らして、どの部分のキューエントリを
増やすかを判断し、制御する。
【0057】図14は、例えば図2あるいは図8のキュ
ーリソース制御部150が、自身で管理しているリクエ
スト出力パケット用、レスポンス出力パケット用、リク
エスト入力パケット用、レスポンス入力パケット用の各
領域141〜144のポインタを参照し、それらの情報
をどのように判断して、キューリソース割り当てを変更
するのかを示した例である。図中において、比較の対象
となっているMは、設定可能な値として定義している。
このMの値を設定、格納する記憶部分が制御部内に設け
られる。この値は、固定値である場合も考えられるし、
また、プログラマブルで逐次設定変更可能である場合も
考えられる。
【0058】図14に示した処理手順を説明する。ま
ず、キューリソース制御部150は、ステップS11に
おいて、自身で管理している各領域(キューブロッ
ク)、すなわちリクエスト出力用領域141、レスポン
ス出力用領域142、リクエスト入力用領域143、レ
スポンス入力用領域144のポインタとしてのリードポ
インタR1,R2,R3,R4、及びライトポインタW
1,W2,W3,W4を参照し、また、各領域の全エン
トリに有効なパケットが格納されているかどうかを示す
フルフラグF1,F2,F3,F4を参照する。これら
の情報は、全てキューリソース制御部150で把握され
ている。フルフラグF1,F2,F3,F4は、各領域
(キュー)がフルの状態かどうかを示すフラグでもあ
り、「1」がフル状態、「0」がフルで無い状態を示す
ものとする。
【0059】ここで、図2、図3〜図7においては、カ
レントポインタCPとして説明しているが、具体的には
上記のノードがキューエントリからパケットを読み出す
エントリアドレスを示したリードポインタ(読み込みポ
インタ)Rとキューエントリにパケットを書き込むエン
トリアドレスを示したライトポインタ(書き込みポイン
タ)Wとがある。ステップS12,S17,S21,S
25では、参照したフルフラグF1,F2,F3,F4
の状態をみて、図14の例では、値が「1」のフル状態
であるか否かを判別して、どのフラグもキューエントリ
の使用状況がフルの状態でなければ、現状の割り当てら
れているキューの使用状況が比較的バランスを保ってい
ると判断して、キューリソースの割り当てをやり直すこ
とは行わないでステップS11に戻る。もし、フルの状
態の領域(キューブロック)がある場合には、リクエス
ト出力パケット用についてはステップS13で、レスポ
ンス出力パケット用についてはステップS18で、リク
エスト入力パケット用についてはステップS22で、ま
た、レスポンス入力パケット用についてはステップS2
6で、それぞれの領域(キューブロック)がフル状態に
なった回数をカウントして、N1,N2,N3,N4の
値として記憶しておく。
【0060】そして、これらの値N1,N2,N3,N
4のうちどれかが、上記設定値Mより大きくなったとき
(ステップSS14,S19,S23,S27)、すな
わち、割り当てられた各キューエントリの使用状況がか
なりの確率で不足気味になっているという状況を示した
フル状態にM回以上なった場合に、現状のキューリソー
スの割り当て状況ではバランスがよくないと判断して、
その時のフル状態になる確率が極めて高かった領域(キ
ューブロック)に対して、さらに、キューリソースのエ
ントリを1つ増加(ステップS15,S20,S24,
S28でのインクリメント)している。
【0061】次のステップS16では、上記カウント値
N1,N2,N3,N4をリセットしている。これは、
上記エントリがインクリメントされたものについてのみ
行うようにしてもよい。次のステップS29では、その
時点で、リードポインタ値R1,R2,R3,R4とラ
イトポインタ値W1,W2,W3,W4との差分D1,
D2,D3,D4を求め、ステップS30でこれらの差
分D1,D2,D3,D4の中で最も小さい値Dmin を
求める。ステップS31〜S37では、上記最小値Dmi
n となるキューブロック、すなわち、現状割り当てられ
ているキューリソースをあまり使用していないと判断さ
れるキューブロックに対して、キューリソースのエント
リを1つ減らすようにする。
【0062】図14の例では、以上のような判断の流れ
によってキューリソースの割り当てを変更していき、そ
の結果、キューリソースの使用効率のよい、したがっ
て、通信効率の良いノードの実現が可能となり、そのよ
うなノードが接続されたネットワーク全体の通信効率が
改善される。
【0063】図14で示した判断の流れは、ノード内の
キューリソース制御部150自身が全て行ってもよい
し、あるいは、例えば、各キューブロックである各領域
141,142,143,144のフルフラグ情報を格
納する場所だけをキューリソース制御部150内に設け
て、ホスト(CPU)側から、それらの値を読みとるこ
とにより、どのキューエントリを増やし、どのキューエ
ントリを減らすかをCPU(ソフトウェア)で判断して
キューリソース制御部150内のポインタ格納部、すな
わち、図2、図3〜図7のポインタ格納部151や、図
8、図9〜図13でのポインタ格納部152に対して適
切な設定を行う、という手法も考えられる。すなわち、
本発明の実施の形態で示されたキューリソース制御部1
50のハードウェアが全ての処理、すなわち、フルフラ
グ情報の提供、フルフラグ情報からの判断、キューリソ
ースの割り当て決定、キューリソースの割り当て作業等
を行う場合もあるし、キューリソース制御部150が、
フルフラグ情報の提供とキューリソースの割り当て作業
を行い、ソフトウェア(CPU)が、フルフラグ情報か
らの判断とキューリソース割り当て決定を行うという分
担の手法も考えられる。その際に、少なくともキューリ
ソース制御部150は、各フルフラグ(リクエスト出力
パケット用、レスポンス出力パケット用、リクエスト入
力パケット用、レスポンス入力パケット用)の情報を格
納する場所(記憶領域)をその内部に設けて、外部(ホ
スト側)から参照できるようになっていることが必要で
ある。
【0064】図14において、キューリソース制御部1
50の参照対象となるフルフラグの考え方について、以
下の図15〜図17に説明する。説明の簡略化のため
に、以下の例では、キューエントリ数を3として説明す
る。
【0065】図15〜図17において、キューリソース
制御部内部で管理するポインタとして、リードポインタ
R、及びライトポインタWがあり、その他に、各キュー
ブロック(上記各領域141,142,143,14
4)のキューエントリ消費状態を示すフラグとして、フ
ル状態を示すフルフラグ(Full_Flag) 及び空(エンプ
ティ)状態を示すエンプティフラグ(Empty_Flag)があ
る。
【0066】初期状態では、図15の(a)に示すよう
に、キューエントリには全く有効なパケットが格納され
ていないので、リードポインタRとライトポインタWは
同じキューエントリを指し示しており、フルフラグは
0、エンプティフラグは「1」となっている。エンプテ
ィフラグが「1」であるということは、キューエントリ
がエンプティ(空)であることを示している。この状態
から、図15の(b)〜(e)に示すように、キューリ
ソースに対して有効なパケットが書き込まれるたびにラ
イトポインタWは1つずつインクリメントされる。キュ
ーエントリがエンプティ(空)でなくなるとエンプティ
フラグは1から0に変更される。図15の(b)はキュ
ーエントリに1つの有効パケットが書き込まれた状態
を、図15の(c)はパケットの書き込みが完了してラ
イトポインタWが1だけインクリメントされた状態を、
図15の(d)はキューエントリにさらに1つの有効パ
ケットが書き込まれた状態を、図15の(e)はパケッ
トの書き込みが完了してライトポインタWがさらに1だ
けインクリメントされた状態をそれぞれ示している。
【0067】次に、有効なパケットがキューエントリ内
に入っている時に、それらをノードが参照して読み出す
たびに、図16の(f)〜(i)に示すように、リード
ポインタは1つずつデクリメントされる。図16の
(f)はキューエントリから1つの有効パケットが読み
出された状態を、図16の(g)はパケットの読み出し
が完了してリードポインタRが1だけデクリメントされ
た状態を、図16の(h)はキューエントリからさらに
1つの有効パケットが読み出された状態を、図16の
(i)はパケットの読み出しが完了してリードポインタ
Rがさらに1だけデクリメントされた状態をそれぞれ示
している。図16の(i)では、読み出しが完了した状
態でキューエントリがエンプティ(空)となるため、エ
ンプティフラグは「0」から「1」に変更される。
【0068】リードポインタRもライトポインタWも一
通り進むと最終的には元の位置を指し示すことになり、
リング上に際限なくそのインクリメント、デクリメント
が繰り返される。例えば、図16の(j)に示すよう
に、ライトポインタWが3つめのキューエントリを指示
しているときに1つの有効パケットが書き込まれると、
書き込みが完了した図17の(k)では、ライトポイン
タWは1だけインクリメントされることにより1つめの
キューエントリを指示することになる。
【0069】また、リードポインタRは、ライトポイン
タWを追い越すことはなく、ライトポインタWも、次々
に有効なパケットがキューエントリ内に書き込まれて先
に進んで行ってもリードポインタRを追い越すことはな
い。そして、次々に有効なパケットがキューエントリ内
に書き込まれ、全てのエントリに有効なパケットが格納
された状態になると、リードポインタRとライトポイン
タWは再び同じキューエントリを指し示すことになり、
さらに、フルフラグを「0」から「1」に変更する。す
なわち、エンプティフラグが0(キューエントリは空の
状態でない)で、しかも、リードポインタRとライトポ
インタWが同じエントリ位置を指し示したときは、フル
フラグを「1」とする。フルフラグが「1」(キューエ
ントリがフルの状態)である間は、それ以降には新たな
パケットをキューエントリ内に書き込むことはできな
い。
【0070】例えば、図17の(l)でキューエントリ
にさらに1つの有効パケットが書き込まれ、図17の
(m)でライトポインタWが1だけインクリメントさ
れ、図17の(n)でキューエントリにさらに1つの有
効パケットが書き込まれ、図17の(o)でライトポイ
ンタWがさらに1だけインクリメントされて、リードポ
インタRと同じ位置を指示するようになると、フルフラ
グが「0」から「1」に変更される。
【0071】上述したキューリソース制御部150で
は、このようなフラグを装備し、管理することで、図1
4に示したようなフローにおいて、本発明におけるキュ
ーリソースの割り当てを実現することが可能となる。
【0072】次に、上記図1、図2、図8に示すキュー
リソース140の各領域、すなわちリクエスト出力用領
域141、レスポンス出力用領域142、リクエスト入
力用領域143及びレスポンス入力用領域144に対し
て入出力されるそれぞれのパケット量を検出し、これら
の各パケット量(リクエスト出力用パケット量、レスポ
ンス出力用パケット量、リクエスト入力用パケット量、
レスポンス入力用パケット量)の情報に応じて、最もパ
ケット量が多いものに多くのキューリソースを割り当て
るように制御する場合の具体例について説明する。
【0073】図18は、上記図1の構成に、パケット量
測定部160を付加した例を示している。このパケット
量測定部160で測定されたパケット量情報がキューリ
ソース制御部150に送られ、キューリソース制御部1
50では、このパケット量情報に応じて、キューリソー
ス140のリクエスト出力用領域141、レスポンス出
力用領域142、リクエスト入力用領域143及びレス
ポンス入力用領域144の割り当てを制御している。
【0074】パケット量測定部160は、リクエスト出
力パケット測定用カウンタ161、レスポンス出力パケ
ット測定用カウンタ162、リクエスト入力パケット測
定用カウンタ163、レスポンス入力パケット測定用カ
ウンタ164を有し、リクエスト出力パケット測定用カ
ウンタ161及びレスポンス出力パケット測定用カウン
タ162、リクエスト入力パケット測定用カウンタ16
3及びレスポンス入力パケット測定用カウンタ164に
はタイマ165からのタイマ情報がそれぞれ供給されて
いる。
【0075】キューリソース制御部150は、パケット
量測定部160のリクエスト出力パケット測定用カウン
タ161、レスポンス出力パケット測定用カウンタ16
2、リクエスト入力パケット測定用カウンタ163、レ
スポンス入力パケット測定用カウンタ164から、タイ
マ165によって提供される一定時間内にその経路を通
過する各パケット数の測定値を受け取る。その受け取っ
たパケット量(測定値)情報に基づいて、キューリソー
スの割当を動的に行い、経路を通過するパケット数が多
い場合には、キューリソースを多く割り当て、少ない場
合には少なく割り当てる。
【0076】パケット量測定部160のリクエスト出力
パケット測定用カウンタ161、レスポンス出力パケッ
ト測定用カウンタ162、リクエスト入力パケット測定
用カウンタ163、レスポンス入力パケット測定用カウ
ンタ164における具体的な測定方法としては、経路を
流れるパケットそのものかどうかを示すフラグ(信号)
を正確に観測する方法や、パケットサイズ等の各種情報
が書き込んであるヘッダ部を観測する方法、あるいは、
近似的ではあるが、パケットの数を実際にカウントする
方法などが考えられる。さらに、これらのカウンタ16
1〜164はノード100の内部にあり、ノード100
の実現の仕方(インプリメント)に自由度があるので、
パケットであることを判断する方法はインプリメントに
依存しても問題ない。
【0077】図19は、パケット量測定部160からリ
クエスト出力パケット量、レスポンス出力パケット量、
リクエスト入力パケット量、レスポンス入力パケット量
の情報を受け取ったキューリソース制御部150が、ど
のように判断して、キューリソース割り当てを変更する
のかを示した例である。図中において、比較の対象とな
っているL,Mは、設定可能な値として定義している。
これらのL,Mの値を設定、格納する記憶部分がキュー
リソース制御部150に設けられる。これらの値は、固
定値である場合も考えられるし、また、プログラマブル
で逐次設定変更可能である場合も考えられる。
【0078】図19のフローチャートの動作を以下に説
明する。まず、図18のキューリソース制御部150
は、ステップS41において、パケット量測定部160
からリクエスト出力パケット量、レスポンス出力パケッ
ト量、リクエスト入力パケット量、レスポンス入力パケ
ット量の情報を定期的に受け取り、ステップS42にて
その4つの値の中の最大値Rmax と最小値Rmin をそれ
ぞれ比較して求める。次のステップS43で最大値Rma
x と最小値Rmin との差分(Rmax−Rmin)を計算し、
ステップS44でこの差分(Rmax−Rmin)が上記設定
値L以上か否かを判別する。差分(Rmax−Rmin)が設
定値Lよりも小さい場合には、現状の割り当てられてい
るキューの使用状況が比較的バランスを保っていると判
断して、キューリソースの割り当てし直すことを行わな
いでステップS41に戻る。差分が設定値Lよりも大き
い場合には、ステップS45,S50,S54により、
その時の最大値が、リクエスト出力パケット量、レスポ
ンス出力パケット量、リクエスト入力パケット量、レス
ポンス入力パケット量のどれであったかをチェックし
て、ステップS46,S51,S55,S58により、
それぞれが最大値になった回数をカウントして、N1、
N2、N3、N4の値として記憶しておく。
【0079】そして、ステップS47,S52,S5
6,S59において、これらの値N1、N2、N3、N
4のうちどれかが設定値Mよりも大きくなったとき、す
なわち、各パケット量の最大値Rmax と最小値Rmin の
差分が一定値L以上にM回以上になった場合に、現状の
キューリソースの割り当て状況ではバランスが良くない
と判断して、その時の最大値Rmax であったキュー担当
ブロック(上記各領域141,142,143,14
4)に対して、さらにキューリソースのエントリを1つ
増加(ステップS48,S53,S57,S60で該当
するエントリをインクリメント)する。次のステップS
49では、上記カウント値N1,N2,N3,N4をリ
セットしている。これは、上記エントリがインクリメン
トされたものについてのみ行うようにしてもよい。ステ
ップS61〜S67では、上記最小値Rmin となるキュ
ーブロック、すなわち、現状割り当てられているキュー
リソースをあまり使用していないと判断されるキューブ
ロックに対して、キューリソースのエントリを1つ減ら
すようにする。
【0080】図19の例では、以上のような判断の流れ
によって、キューリソースの割り当てを変更していき、
その結果、キューリソースの使用効率の良い、したがっ
て、通信効率の良いノードの実現が可能となり、そのよ
うなソードが接続されたネットワーク全体の通信行率が
改善される。
【0081】図19で示した判断の流れは、ノード内の
制御部自身が全て行ってもよいし、あるいは、例えば、
各パケット量(リクエスト出力パケット量、レスポンス
出力パケット量、リクエスト入力パケット量、レスポン
ス入力パケット量)の情報を格納する場所だけをキュー
リソース制御部150内に設けて、ホスト(CPU)側
から、それらの値を読みとることにより、どのキューを
増やし、どのキューを減らすかをCPU(ソフトウェ
ア)で判断してキューリソース制御部内のポインタ格納
部、すなわち図2のポインタ格納部151や図8のポイ
ンタ格納部152や、または、後述する複数エントリの
接続状態を切り換える方式における図20のセレクタ制
御部155に対して、適切な設定を行うという手法も考
えられる。すなわち、本発明の実施の形態で示されたキ
ューリソース制御部150がハードウェア的に全ての処
理であるパケット量情報の提供、パケット量情報からの
判断、キューリソ−スの割り当て決定、キューリソース
の割り当て作業等を行う場合もあるし、キューリソース
制御部150が、パケット量情報の提供とキューリソー
スの割り当て作業を行い、ソフトウェア(CPU)が、
パケット量情報からの判断とキューリソース割り当て決
定を行うという分担の手法も考えられる。その際に、少
なくともキューリソース制御部150は、各パケット量
(リクエスト出力パケット量、レスポンス出力パケット
量、リクエスト入力パケット量、レスポンス入力パケッ
ト量)の情報を格納する場所(記憶領域)をその内部に
設けて、外部(ホスト側)から参照できるようになって
いなければならない。
【0082】次に、図20には、さらに別の具体例を示
している。この図20に示す例では、セレクタ、あるい
は、スイッチマトリクスにより、キューリソース140
として一括管理されたエントリQ11〜Q44を組み替える
ことで、リクエスト出力用、レスポンス出力用、リクエ
スト入力用、レスポンス入力用にそれぞれキューリソー
ス140を割り当てている。
【0083】この図20の例において、キューリソース
140の割り当ては、最大で10エントリ、最低でも2
エントリとなる。図20の例では、リクエスト出力用、
レスポンス出力用、リクエスト入力用、レスポンス入力
用に平均して4エントリずつ割り当てて配置した状態か
ら、データ送信の頻度が高い場合にはリクエスト出力用
とレスポンス入力用、または、リクエスト出力用のみに
対してキューリソースを多めに割り当てられるように、
データ受信の頻度が高い場合にはリクエスト入力用とレ
スポンス出力用、または、リクエスト入力用のみに対し
てキューリソースを多めに割り当てられるように、セレ
クタSEL、もしくは、スイッチマトリクス部分を配置
する。それらのセレクタ、もしくは、スイッチマトリク
スを、セレクタ制御部155から制御して、ノードの役
割に応じたキューリソース140の各エントリQ11〜Q
44の組み替えを行うことで、効率の良いノード間通信が
可能となり、したがって、ネットワーク全体の通信効率
も改善される。
【0084】図21〜図25に、この図20の構成例に
よるノードの役割の具体例に応じた制御の様子を説明す
る。図21では、データ送受信を比較的均等に行なって
いるノードにおける様子を、図22では、データ送信を
高い頻度で行なうノード(レスポンスパケットがある場
合)における様子を、図23では、データ受信を高い頻
度で行なうノード(レスポンスパケットがある場合)に
おける様子を、図24では、データ送信を高い頻度で行
なうノード(レスポンスパケットが不要な場合)におけ
る様子を、図25では、データ受信を高い頻度で行なう
ノード(レスポンスパケットが不要な場合)における様
子をそれぞれ表わしている。
【0085】図21には、セレクタSELの切換制御に
よるキューリソース140の各エントリQ11〜Q44の組
み替えによって、データの送受信を比較的均等に行なっ
ている場合のノード内キューリソース140の割り当て
の様子を示している。データの送信と受信の頻度が同じ
くらいなので、キューリソースも均等になるように組み
替える。図21では、太線で示された矢印が選択制御さ
れて組み替えられたパス(経路)であり、それぞれ4エ
ントリずつを割り当てている状態を表わしている。すな
わち、リクエスト出力用にエントリQ11〜Q14が、レス
ポンス出力用にエントリQ21〜Q24が、リクエスト入力
用にエントリQ31〜Q34が、またレスポンス入力用にエ
ントリQ41〜Q44がそれぞれ割り当てられるように制御
される。
【0086】図22には、セレクタ制御によるキューリ
ソースの組み替え方法によって、データの送信を高い頻
度で行なっている場合のノード内キューリソース140
の割り当ての様子を示している。データ送信の頻度が高
いので、リクエスト出力用とレスポンス入力用に多めの
キューリソースを割り当てるように組み替え、制御す
る。図22では、太線で示された矢印が選択制御されて
組み替えられたパス(経路)であり、使用頻度の高いリ
クエスト出力用とレスポンス入力用に6エントリずつ
を、そして、使用頻度の低いリクエスト入力用とレスポ
ンス出力用に2エントリずつを割り当てている状態を表
わしている。
【0087】図23には、セレクタ制御によるキューリ
ソースの組み替え方法によって、データの受信を高い頻
度で行なっている場合のノード内キューリソース140
の割り当ての様子を示している。データ受信の頻度が高
いので、リクエスト入力用とレスポンス出力用に多めの
キューリソースを割り当てるように組み替え、制御す
る。図23では、太線で示された矢印が選択制御されて
組み替えられたパス(経路)であり、使用頻度の高いリ
クエスト入力用とレスポンス出力用に6エントリずつ
を、そして、使用頻度の低いリクエスト出力用とレスポ
ンス入力用に2エントリずつを割り当てている状態を表
わしている。
【0088】図24には、セレクタ制御によるキューリ
ソースの組み替え方法によって、データの送信を高い頻
度で行なっている場合で、かつ、リクエストパケットに
対応するレスポンスパケットが不要なやり取りを行なっ
ている場合のノード内キューリソース140の割り当て
の様子を示している。データ送信の頻度が高く、レスポ
ンスパケットが不要なので、リクエスト出力用のみに多
めのキューリソースを割り当てるように組み替え、制御
する。図24では、太線で示された矢印が選択制御され
て組み替えられたパス(経路)であり、使用頻度の高い
リクエスト出力用に10エントリを、そして、使用頻度
の低いレスポンス出力用、リクエスト入力用、レスポン
ス入力用に2エントリずつを割り当てている状態を表わ
している。
【0089】図25には、セレクタ制御によるキューリ
ソースの組み替え方法によって、データの受信を高い頻
度で行なっている場合で、かつ、リクエストパケットに
対応するレスポンスパケットが不要なやり取りを行なっ
ている場合のノード内キューリソース140の割り当て
の様子を示している。データ受信の頻度が高く、レスポ
ンスパケットが不要なので、リクエスト入力用のみに多
めのキューリソースを割り当てるように組み替え、制御
する。図25では、太線で示された矢印が選択制御され
て組み替えられたパス(経路)であり、使用頻度の高い
リクエスト入力用に10エントリを、そして、使用頻度
の低いリクエスト出力用、レスポンス出力用、レスポン
ス入力用に2エントリずつを割り当てている状態を表わ
している。
【0090】以上説明したような本発明の実施の形態に
よれば、キューが記憶ブロック(メモリ)であることか
ら、そのキューリソースを効率良く使用することによっ
て、必要最小限のキューサイズで足りることになり、ノ
ード内部をIC(集積回路)化したときには、そのダイ
サイズを小さくすることができる。したがって、ICの
小型化、省コスト、省スペースなどの利点が期待でき
る。また、従来と同じ容量のキューを実装した場合で
も、ノード間の通信効率、さらには、ネットワーク全体
の通信効率において、従来よりも改善される。
【0091】
【発明の効果】以上の説明から明らかなように、本発明
によれば、複数のノードで構成されるネットワークの1
つのノードにおいて、パケット処理手段における処理パ
ケットが入出力され複数パケットを記憶する容量を有し
記憶されたものが順次処理される記憶手段、いわゆるキ
ュー(待ち行列)の入力用、出力用の割り当てを動的に
変更制御することにより、状況に応じて動的に上記記憶
手段であるキューリソースの割当を変更でき、キューリ
ソースの利用効率を高め、通信効率を高めることができ
る。
【0092】すなわち、例えば、データ送出を行なう頻
度の高いノードでは、リクエストパケット出力用とレス
ポンスパケット入力用にキューリソースを多く割り当
て、データ受信を行なう頻度の高いノードでは、リクエ
ストパケット入力用とレスポンスパケット出力用にキュ
ーリソースを多く割り当てる。このように、一括管理し
て、キューリソースを必要とする部分に対しては多く割
り当て、それほど必要としない部分に対しては少なく割
り当て、キューリソースを効率良く使用することによっ
て、必要最小限のキューサイズで足りることになり、ノ
ード内部をIC(集積回路)化したときには、そのダイ
サイズを小さくすることができる。したがって、ICの
小型化、省コスト、省スペースなどの利点が期待でき
る。また、従来と同じ容量のキューを実装した場合で
も、ノード間の通信効率、さらには、ネットワーク全体
の通信効率において、従来よりも改善される。
【図面の簡単な説明】
【図1】本発明に係る実施の形態となるデータ伝送装置
の概略構成を示すブロック図である。
【図2】複数エントリから成るキューリソースをポイン
タを用いて割当制御を行うための構成の一例を示す図で
ある。
【図3】データの送受信が均等な場合の図2のキューリ
ソースの割当の様子の具体例を示す図である。
【図4】データの送信の頻度が高い場合の図2のキュー
リソースの割当の様子の具体例を示す図である。
【図5】データの受信の頻度が高い場合の図2のキュー
リソースの割当の様子の具体例を示す図である。
【図6】データの送信の頻度が高く、レスポンスパケッ
トが無い場合の図2のキューリソースの割当の様子の具
体例を示す図である。
【図7】データの受信の頻度が高く、レスポンスパケッ
トが無い場合の図2のキューリソースの割当の様子の具
体例を示す図である。
【図8】複数エントリから成るキューリソースをポイン
タを用いて割当制御を行うための構成の他の例を示す図
である。
【図9】データの送受信が均等な場合の図8のキューリ
ソースの割当の様子の具体例を示す図である。
【図10】データの送信の頻度が高い場合の図8のキュ
ーリソースの割当の様子の具体例を示す図である。
【図11】データの受信の頻度が高い場合の図8のキュ
ーリソースの割当の様子の具体例を示す図である。
【図12】データの送信の頻度が高く、レスポンスパケ
ットが無い場合の図8のキューリソースの割当の様子の
具体例を示す図である。
【図13】データの受信の頻度が高く、レスポンスパケ
ットが無い場合の図8のキューリソースの割当の様子の
具体例を示す図である。
【図14】キューリソースの各領域の使用状況に応じて
キューリソース割当を行うための動作を説明するための
フローチャートである。
【図15】キューリソースの各領域のライトポインタ及
びリードポインタの移動及びフラグの変化を説明するた
めの図である。
【図16】キューリソースの各領域のライトポインタ及
びリードポインタの移動及びフラグの変化を説明するた
めの図15に続く図である。
【図17】キューリソースの各領域のライトポインタ及
びリードポインタの移動及びフラグの変化を説明するた
めの図16に続く図である。
【図18】本発明の他の実施の形態として、ノード内の
処理パケットの入出力量を測定してキューリソース割当
を行うデータ伝送装置の概略構成を示すブロック図であ
る。
【図19】ノード内の処理パケットの入出力状況に応じ
てキューリソース割当を行うための動作を説明するため
のフローチャートである。
【図20】セレクタ制御によるキューリソースの割当制
御を行うための構成の一例を示す図である。
【図21】データの送受信が均等な場合の図20のキュ
ーリソースの割当の様子の具体例を示す図である。
【図22】データの送信の頻度が高い場合の図20のキ
ューリソースの割当の様子の具体例を示す図である。
【図23】データの受信の頻度が高い場合の図20のキ
ューリソースの割当の様子の具体例を示す図である。
【図24】データの送信の頻度が高く、レスポンスパケ
ットが無い場合の図20のキューリソースの割当の様子
の具体例を示す図である。
【図25】データの受信の頻度が高く、レスポンスパケ
ットが無い場合の図20のキューリソースの割当の様子
の具体例を示す図である。
【図26】複数のノードで構成されるネットワーク環境
の一例を示す図である。
【図27】各ノード間で通信が行われるときのパケット
の流れ方を説明するための図である。
【図28】ノード内部の入出力パケット用記憶領域部を
具体化した概略構成の例を示す図である。
【図29】入力/出力キューと、リクエスト/レスポン
スパケットの関係を説明するための図である。
【符号の説明】
100 ノード、 102 ノード処理部、 103
入力パケット用記憶領域部、 104 出力パケット用
記憶領域部、 105 パケット用一時記憶領域部、
106 MUX部、 111 入力部、 112 出力
部、 140キューリソース、 141 リクエスト出
力用領域、 142 レスポンス出力用領域、 143
リクエスト入力用領域、 144 レスポンス入力用
領域、150 キューリソース制御部、 151,15
2 ポインタ格納部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 遠藤 政士 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 (72)発明者 林 伸二 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 複数のノードで構成されるネットワーク
    の1つのノードとなるデータ伝送装置において、 パケットを処理するパケット処理手段と、 上記パケット処理手段における処理パケットが入出力さ
    れ複数パケットを記憶する容量を有し記憶されたものが
    順次処理される記憶手段と、 上記記憶手段の入力用、出力用の割り当てを変更制御す
    る制御手段とを有することを特徴とするデータ伝送装
    置。
  2. 【請求項2】 上記制御手段は、上記記憶手段を、リク
    エストパケット出力用領域と、レスポンスパケット出力
    用領域と、リクエストパケット入力用領域と、レスポン
    スパケット入力用領域とにそれぞれ割当制御することを
    特徴とする請求項1記載のデータ伝送装置。
  3. 【請求項3】 上記記憶手段に対して入出力される入力
    データ量及び出力データ量を測定するデータ量測定手段
    をさらに有し、 上記制御手段は、このデータ量測定手段からの測定デー
    タ量に応じて上記記憶手段の割当を制御することを特徴
    とする請求項1記載のデータ伝送装置。
  4. 【請求項4】 上記記憶手段は、パケット記憶単位とな
    るエントリを複数有し、 上記制御手段は、上記記憶手段の各エントリを指示する
    ポインタ格納するポインタ格納部を有し、このポインタ
    格納部のポインタを用いて、上記記憶手段をリクエスト
    パケット出力用領域と、レスポンスパケット出力用領域
    と、リクエストパケット入力用領域と、レスポンスパケ
    ット入力用領域とにそれぞれ割当制御することを特徴と
    する請求項1記載のデータ伝送装置。
  5. 【請求項5】 上記記憶手段は、パケット記憶単位とな
    る複数のエントリと、これらのエントリの接続状態を切
    り換えるセレクタとを有し、 上記制御手段は、上記記憶手段の上記セレクタを切換制
    御することで各エントリの接続状態を切り換えて、上記
    記憶手段をリクエストパケット出力用領域と、レスポン
    スパケット出力用領域と、リクエストパケット入力用領
    域と、レスポンスパケット入力用領域とにそれぞれ割当
    制御することを特徴とする請求項1記載のデータ伝送装
    置。
  6. 【請求項6】 上記ネットワークは、複数のノードをリ
    ング状に接続してなるリングネットワークであることを
    特徴とする請求項1記載のデータ伝送装置。
  7. 【請求項7】 複数のノードで構成されるネットワーク
    のノード間でデータのパケットを伝送するためのデータ
    伝送方法において、 上記ノードにおける処理パケットの入出力状況に応じた
    ノード情報を得るノード情報取得工程と、 得られたノード情報に応じて処理パケットが入出力され
    る記憶手段の入力用、出力用の割り当てを制御する割当
    制御工程とを有することを特徴とするデータ伝送方法。
  8. 【請求項8】 上記割当制御工程では、上記記憶手段
    を、リクエストパケット出力用領域と、レスポンスパケ
    ット出力用領域と、リクエストパケット入力用領域と、
    レスポンスパケット入力用領域とにそれぞれ割当制御す
    ることを特徴とする請求項7記載のデータ伝送方法。
  9. 【請求項9】 上記ノード情報取得工程では、上記記憶
    手段に対して入出力される入力データ量及び出力データ
    量を測定し、 上記割当制御工程では、この入力データ量及び出力デー
    タ量に応じて上記記憶手段の割当を制御することを特徴
    とする請求項7記載のデータ伝送方法。
  10. 【請求項10】 上記ネットワークは、複数のノードを
    リング状に接続してなるリングネットワークであること
    を特徴とする請求項7記載のデータ伝送方法。
  11. 【請求項11】 複数のノードで構成されるネットワー
    クシステムにおいて、 上記ノード内での処理パケットが入出力され複数パケッ
    トを記憶する容量を有し記憶されたものが順次処理され
    る記憶手段と、 上記記憶手段の入力用、出力用の割り当てを変更制御す
    る制御手段とを有することを特徴とするネットワークシ
    ステム。
JP5112198A 1998-03-03 1998-03-03 データ伝送装置及び方法、並びにネットワークシステム Withdrawn JPH11252142A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5112198A JPH11252142A (ja) 1998-03-03 1998-03-03 データ伝送装置及び方法、並びにネットワークシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5112198A JPH11252142A (ja) 1998-03-03 1998-03-03 データ伝送装置及び方法、並びにネットワークシステム

Publications (1)

Publication Number Publication Date
JPH11252142A true JPH11252142A (ja) 1999-09-17

Family

ID=12877983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5112198A Withdrawn JPH11252142A (ja) 1998-03-03 1998-03-03 データ伝送装置及び方法、並びにネットワークシステム

Country Status (1)

Country Link
JP (1) JPH11252142A (ja)

Similar Documents

Publication Publication Date Title
EP2613479B1 (en) Relay device
EP0993635B1 (en) Method and apparatus for dynamic queue sizing
US6922408B2 (en) Packet communication buffering with dynamic flow control
US5546392A (en) Communications bus and controller
US6877048B2 (en) Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US6084856A (en) Method and apparatus for adjusting overflow buffers and flow control watermark levels
CA2358525C (en) Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
US7227841B2 (en) Packet input thresholding for resource distribution in a network switch
US7307998B1 (en) Computer system and network interface supporting dynamically optimized receive buffer queues
US5805827A (en) Distributed signal processing for data channels maintaining channel bandwidth
CN101199168B (zh) 监控通信链路的队列的方法、设备和系统
JP3734704B2 (ja) パケット分類エンジン
US7209489B1 (en) Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing
CN116955247B (zh) 一种缓存描述符管理装置及其方法、介质、芯片
CN112272933B (zh) 队列控制方法、装置及存储介质
JPH11252142A (ja) データ伝送装置及び方法、並びにネットワークシステム
CN117499351A (zh) 报文转发装置及方法、通信芯片及网络设备
KR20030091244A (ko) 네트워크 프로세서에서 다양한 개수의 포트들을 처리하기위한 방법
JP3663347B2 (ja) Atm通信装置
US20060048156A1 (en) Unified control store
KR100243414B1 (ko) 가상연결단위의 큐잉장치 및 방법
JPH04363939A (ja) セル出力装置
JP2001251306A (ja) Atm通信システムおよびatmセル転送制御方法
JPH07183864A (ja) タイムスロット割当制御方法及び装置
JP2001156839A (ja) ネットワークシステム、帯域管理装置および帯域管理方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050510