JP3569149B2 - 通信制御装置 - Google Patents
通信制御装置 Download PDFInfo
- Publication number
- JP3569149B2 JP3569149B2 JP02667099A JP2667099A JP3569149B2 JP 3569149 B2 JP3569149 B2 JP 3569149B2 JP 02667099 A JP02667099 A JP 02667099A JP 2667099 A JP2667099 A JP 2667099A JP 3569149 B2 JP3569149 B2 JP 3569149B2
- Authority
- JP
- Japan
- Prior art keywords
- connection
- destination
- data
- transmission
- management table
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
Description
【発明の属する技術分野】
本発明は、通信制御装置に係り、特に、I/Oバス等の内部バスの転送速度が異なる複数の計算機・通信制御装置等の装置間において、データ損失のない効率的なデータ転送を行う通信制御装置に関する。
【0002】
【従来の技術】
一般に、計算機間の通信では、送信側計算機から送出されるデータパケットが、ネットワークを経由して受信側計算機に受け取られる。この際、送信側計算機では、例えば送信データに対してプロトコル処理を行い、データに制御情報を付加してパケットを生成する。生成されたパケットは、計算機内部バス(ホストバス、I/Oバス等)を経由してネットワークアダプタに送られ、ネットワークに送出される。一方、受信側計算機では、ネットワークアダプタで受信されたパケットは、I/Oバス、ホストバス等の内部バスを経由してメモリに格納される。さらに受信側計算機では、例えば、メモリに格納されたパケットの内容に対してプロトコル処理を行い、データを取り出す等の処理を行う。
【0003】
ここで、計算機間の通信を効率よく行うために、データパケットを1つずつ間隔をおいて送信するのではなく、複数のデータパケットを連続して送信することが行われる。この場合、受信側計算機での受信処理能力を越えた速度でパケットを送信すると、受信側計算機において受信失敗によるデータ損失が発生する。このようなデータ損失をなくすためには、送信側においてデータの送信量を制御する必要がある。ここで、受信処理能力としては、計算機の内部バスの転送速度、プロセッサの処理速度、メモリ等からの読出し・書込み速度等が影響する。
【0004】
データ損失をなくすためには、例えば、インターネットで標準的に使用されている通信プロトコルTCP(Transmission Control Protocol)では、受信側計算機の受信データ用バッファの空き容量から送信側計算機が送信できるデータ量を決定している(文献「Internetworking With TCP/IP, Volume II: Design, Implementation, and Internals」(Douglas E. Comer and David L. Stevens, Prentice−Hall International, Inc., 1991, ISBN:0−13−465378−5)の第14章5節(pp. 265−269)等参照。)。この技術により、受信側のバッファの空き容量不足のために受信に失敗し発生するデータ損失を防ぐことができる。
【0005】
【発明が解決しようとする課題】
従来、I/Oバスやホストバス等の計算機の内部バスの転送速度はネットワークのデータ伝送速度(ネットワーク速度)よりも高速であったため、内部バスの転送速度が通信の性能に影響することはなかった(又は少なかった)。しかし、近年、ネットワーク速度が高速になり、ネットワーク速度が内部バスの転送速度よりも高速である計算機システムが存在するようになった。こうしたシステムでは、受信側計算機の内部バスの転送速度が送信側計算機の内部バスの転送速度よりも遅い場合、受信側のネットワークアダプタが受け取ったデータを内部バスを介してメモリに格納する処理の性能が、システムのデータ転送速度の隘路となる。
【0006】
このように、ネットワーク速度が送信側計算機及び受信側計算機の内部バスの転送速度よりも高速で、かつ受信側計算機の内部バスの転送速度が送信側計算機の内部バスの転送速度よりも遅い場合、TCP等で用いられている従来の方法では、次のような問題がある。
【0007】
すなわち、受信側計算機の受信バッファの空き容量から送信できるデータ量を決定する方法では、送信側でデータを連続して送信すると、ネットワークアダプタが内部バスを介して受信データをメモリに格納する処理が終了する前に、次に送信されたデータが到着する場合がある。このため、受信側計算機では、受信失敗によるデータ損失が発生する。その結果、送信側計算機と受信側計算機との間では、失われたデータの再送が必要となり、よって、このような計算機システムでは効率の良い通信を行うことはできない。
【0008】
本発明は、以上の点に鑑み、内部バスの転送速度・プロセッサ処理速度等が異なる計算機・通信制御装置等の装置間の通信において、受信側での受信失敗によるデータ損失を防ぎ、効率的な通信を可能とする通信制御装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
本発明の解決手段によると、
自装置と送信先装置との間の通信に関するコネクション番号、及び、送信先装置の送信先識別子を含むデータを記憶するコネクション管理表と、
送信先装置の送信先識別子、送信先装置の内部バス速度、及び、次回送信可能時刻を含むデータを記憶する送信先管理表と、
コネクション確立時に、送信先装置の内部バス速度を含むコネクション確立応答を送信先装置から受信するコネクション管理手段と、
前記コネクション管理手段からコネクション確立の通知を受信し、前記コネクション管理表にデータを作成し、さらに、前記送信先管理表に送信先識別子に対応するデータがない場合、前記コネクション管理手段により受信された送信先装置の内部バス速度を含むデータを作成する表管理手段と、
前記表管理手段により作成された前記コネクション管理表から、次のコネクションについてのコネクション番号及び送信先識別子を選択し、前記表管理手段により作成された前記送信先管理表から、選択された送信先識別子についての次回送信可能時刻を取得し、取得された次回送信可能時刻と現在時間との比較結果に応じて送信キューを選択する送信キュー選択手段と
を備えた通信制御装置を提供する。
【0010】
また、本発明の他の解決手段によると、計算機システム内において、プロセッサとメモリがホストバスに接続されており、通信制御装置がI/Oバスに接続されており、ホストバスとI/Oバスを中継するバスブリッジが存在し、該バスブリッジを介してI/Oバス及びホストバス上でデータを転送することで、通信制御装置とメモリとの間のデータ転送を行う計算機システムであって、送信データを格納する送信キューと受信データを格納する受信キューを複数持ち、送信キューに格納したデータは任意の受信側計算機の受信キューに送達し、送信キューと受信キューの組合せを一意に特定する手段を持つ計算機システムにおいて、通信制御装置が接続されているI/Oバスの転送速度の値を保持する手段と、複数の送信キューの中からデータを送信する送信キューを選択する手段と、送信キューと受信キューの組合せと、相手通信制御装置との対応を示すコネクション管理表を格納するためのメモリと、相手通信制御装置ごとに、接続されているI/Oバスの転送速度の値とデータを送信可能な時刻を格納する送信先管理表を格納するためのメモリを有することを特徴とする通信制御装置を提供する。
【0011】
また、本発明は、前記コネクション管理表及び前記送信先管理表を更新するための手段と、送信キューと受信キューの組合せの作成及び削除を行うための手段を有することを特徴とする。
また、本発明は、相手通信制御装置が接続されているI/Oバスの転送速度をもとにデータを送信する送信キューを選択することで、送信先通信制御装置に対するデータの送信を一定時間だけ遅らせてデータパケット送信の時間間隔を空けるための手段を有することを特徴とする。
【0012】
さらに、本発明は、相手通信制御装置が接続されているI/Oバスの転送速度をもとにデータを送信する送信キューを選択することで、送信先通信制御装置に対するデータの送信をデータパケットの長さによって決定する可変長の時間だけ遅らせてデータパケット送信の時間間隔を空けるための手段を有することを特徴とする。
【0013】
【発明の実施の形態】
(1)通信制御装置についての構成及び動作概要
図1は、本発明に係る通信システム全体の構成図である。図1において、複数の計算機100及び110及び111が、ネットワーク162を介して接続されている。ここでは、計算機の具体的構成を、送信側計算機100を例に説明する。
【0014】
計算機100内では、プロセッサ120とメモリ130が、ホストバス160に接続されている。通信制御装置150は、計算機100内でI/Oバス161に接続されるとともに、外部のネットワーク162に接続されている。ホストバス160とI/Oバス161との間には、バスブリッジ140が存在し、バスブリッジ140がホストバス160とI/Oバス161との間のデータを中継して転送を行う。通信制御装置150とメモリ130との間のデータ転送は、バスブリッジ140を介して、I/Oバス161及びホストバス160上でデータを転送することにより行われる。受信側計算機110、111も同様の構成である。
【0015】
メモリ130内には、通信を行う複数のアプリケーション131、132等の命令列及びデータが格納されている。アプリケーション131、132は、送信データを格納する送信キュー133、135、137等と、受信データを格納する受信キュー134、136、138等を保持する。2台の計算機間で通信を行うとき、これらの計算機はデータ転送の前に計算機間のコネクションを作成する。ここで、コネクションとは、通信を行う2つの計算機内の送信キューと受信キューの組合せであって、一方の計算機内の送信キューに格納したデータが、他方の計算機内の受信キューに送達(送信及び格納)されるようにした接続のことである。計算機内において、1つのコネクションには、1組の送信キューと受信キューが含まれる。この例では、送信キュー133及び受信キュー134、送信キュー135及び受信キュー136、送信キュー137及び受信キュー138がそれぞれ1つのコネクションに対応する。1つのアプリケーションは、1つまたは複数のコネクションをもつ。送信キューに格納したデータを、対応する別の計算機の受信キューに送達することで、計算機間の通信が行われる。
【0016】
通信制御装置150内のメモリ510は、コネクション管理表600及び送信先管理表700を備える。コネクション管理表600は、例えば、コネクションと相手通信制御装置(又は、相手計算機)との対応を示す表である。ある1つの相手通信制御装置(又は、相手計算機)には、1つまたは複数のコネクションが対応する。送信先管理表700は、例えば、相手通信制御装置(又は、相手計算機)ごとに、接続されているI/Oバスの転送速度の値と、データを送信可能な時刻とを格納する表である。なお、この実施の形態では、特に転送速度の隘路がI/Oバスである場合を対象として説明するが、転送速度の隘路がI/Oバス以外による場合は、適宜のバスを対象としてその転送速度を記憶するようにしても良い。また、コネクション管理表600及び表管理手段700は、通信制御装置150内のメモリ510に格納されるが、計算機100のメモリ130やその他の適宜のメモリに格納することも可能である。
【0017】
コネクション管理手段200は、例えば、コネクション管理表600のコネクションの作成と削除を行う。表管理手段300は、例えば、コネクション管理表600と送信先管理表700の更新を行う。送信キュー選択手段400は、例えば、メモリ130の複数の送信キューからデータを送信する送信キューを選択する。自I/Oバス速度保持手段500は、例えば、通信制御装置150が接続されているI/Oバス161の転送速度の値を保持する。コネクション管理手段200、表管理手段300、送信キュー選択手段400、自I/Oバス速度保持手段500は、通信制御装置150内に格納されるが、計算機100のメモリ130等の適宜の構成内に命令列及びデータとして格納することも可能である。
【0018】
DMA制御部530は、例えば、メモリ130と送受信バッファ540との間のデータ転送を行う。DMA制御部530によるデータの転送は、直接I/Oバス161と行うこと、又は、制御装置520を介して行うこと等適宜実施することができる。送受信バッファ540は、例えば、送信データと受信データを一時的に格納する。送受信部550は、例えば、送受信バッファ540からデータを取り出し、パケットを作成してネットワーク162に送信し、また、ネットワーク162からパケットを受信し、データを取り出して送受信バッファ540に格納する。送受信部550によるデータの送受は、直接ネットワーク162と行うこと、又は、制御装置520を介して行うこと等適宜実施することができる。制御装置520は、通信制御装置内の機器からのデータの取り出し、記録及びこれらの機器の動作等を司り、内部に格納されたプログラムにしたがって上記の各機器の動作を制御する。
【0019】
つぎに、本発明に関連する一般的なパケット送受信について説明する。
図2は、送信側計算機と受信側計算機との間におけるパケットの送受信を示す説明図である。送信側821と受信側822との計算機間の通信は、コネクションの確立、データの転送、コネクションの切断の3つの段階からなる。ここで、コネクションの確立とは、2台の計算機間でコネクションを作成することをいい、コネクション確立パケットとは、コネクションを確立するために2台の計算機間で交換するパケットをいう。また、コネクションの切断とは、2台の計算機間で確立されているコネクションを削除することをいい、コネクション切断パケットとは、コネクションを切断するために2台の計算機間で交換するパケットをいう。
【0020】
まず、コネクション確立段階において、送信側計算機821は、受信側計算機822に対して、コネクションの確立を要求するパケット(コネクション確立要求パケット)823を送信する。受信側計算機822は、コネクション確立要求パケット823を受信すると、送信側計算機821に対してコネクションの確立を承認するパケット(コネクション確立応答パケット)824を送信する。送信側計算機821は、このコネクション確立応答パケット824を受信する。こうして、送信側計算機821と受信側計算機822との間でコネクションが確立され、送信側計算機821及び受信側計算機822内に、送信キューと受信キューの組が1つずつ作成される。
【0021】
つぎに、データ転送段階において、送信側計算機821は、受信側計算機822に対して、データパケット825、826、827等を送信する。なお、受信側計算機822は、データパケットを受信したとき、データパケットを受信したことを通知するパケットを送信側計算機821に対して送信してもよい。
【0022】
コネクション切断段階において、送信側計算機821は、受信側計算機822に対して、コネクションの切断を要求するパケット(コネクション切断要求パケット)828を送信する。受信側計算機822は、コネクション切断要求パケット828を受信すると、送信側計算機821に対してコネクションの切断を承認するパケット(コネクション切断応答パケット)829を送信する。送信側計算機821は、コネクション切断応答パケット829を受信する。こうして、送信側計算機821と受信側計算機822との間でコネクションが切断され、送信側計算機821及び受信側計算機822内の送信キューと受信キューが削除される。
【0023】
上述のコネクション確立段階、データ転送段階、コネクション切断段階において、送信側計算機821と受信側計算機822の役割は対称的なものであり、パケットはどちらの計算機からでも送信することが可能である。すなわち、コネクション確立要求パケット、データパケット、コネクション切断要求パケットは、受信側計算機822から送信することもできる。
【0024】
つぎに、本発明に係る通信制御装置について、再び図1を参照して、動作概要を説明する。以下、I/Oバスの転送速度に基づくデータ送信の例について説明するが、本発明はこれに限定されるものではない。
まず、コネクション確立段階においては、各々の計算機100、110、111は、通信制御装置150等が接続されているI/Oバス161等の転送速度を保持する。そして、受信側計算機110、111は、データ転送を開始する前に、送信キューと受信キューの組合せを作成し、通信制御装置が接続されているI/Oバスの転送速度を、通信を行う相手通信制御装置に対して通知する。このようにして、送信側計算機100の通信制御装置150は、受信側計算機110、111の相手通信制御装置が接続されているI/Oバスの転送速度を取得する。また、通信制御装置150は、送信キューと受信キューの組合せと、相手通信制御装置との対応を示すコネクション管理表600を保持する。ここで、ある1つの相手通信制御装置には、1つまたは複数の送信キューと受信キューの組合せが対応する。また、通信制御装置150は、相手通信制御装置ごとに、接続されているI/Oバスの転送速度の値とデータを送信可能な時刻を格納する送信先管理表700を保持する。
【0025】
つぎに、データ転送段階においては、通信制御装置150は、データ送信時、複数の送信キューからデータを送信する送信キューを決定する。この決定処理は、例えば、以下に述べる方法により行う。まず、通信制御装置150は、複数の送信キューの中から送信キューを1つ選択する。つぎに、コネクション管理表600が参照されて、選択した送信キューに対応する送信先の通信制御装置が選択される。次に、送信先管理表700が参照されて、選択した送信先通信制御装置が、最後に送信を行った時刻から一定の時間間隔が経過しているかが検査される。この検査は、送信先管理表700から、データを送信可能な時刻を取得し、現在時刻と比較することで行われる。データを送信可能な時刻が現在時刻よりも小さい場合、最後にデータを送信してから一定の時間間隔が経過しているので、選択した送信キューがデータ送信する送信キューとして決定される。データ送信後、現在時刻に一定時間間隔を加えた時刻が、次にデータを送信可能な時刻として、送信先管理表700に格納される。データを送信可能な時刻が現在時刻よりも大きい場合、最後にデータを送信してから一定の時間間隔が経過していないので、別の送信キューが選択されて、上述のような検査が行われる。送信可能な送信キューが選択されるまで、上述の送信キューの選択と時刻の検査が繰り返し行われる。上述のデータ送信の一定の時間間隔は、相手通信制御装置が接続されているI/Oバスの転送速度から決定される。
【0026】
図3は、従来技術と本発明との比較を示す動作説明図である。図3(A)に示すように、従来技術では、送信側計算機801がデータパケット803、804を連続して送信する。受信側計算機802では、データパケット803に対する受信処理808の実行中に、続いて送信されたデータパケット804が到着する場合が生じるため、このデータパケット804を受信することができない。このため、誤りのないデータ転送を行うためには、喪失したデータをデータパケット805として再送し、受信処理809を行う必要がある。これに対して、図3(B)に示すように、本発明では、送信側計算機811において、送信間隔816、817を空けてデータパケット813、814、815を送信するため、受信側計算機812では、各データパケット813に対する受信処理818を終了したあとで、次のデータパケット814を受信し、受信処理819を行うことができる。
【0027】
以上のように、送信側計算機が相手通信制御装置に対してデータを送信する時間間隔を空けることにより、受信側計算機では、通信制御装置がI/Oバスを介して受信データをメモリに格納する受信処理等を終了した後に、次に送信されたデータを受信することができる。これにより、受信失敗によるデータ損失が発生しないようになる。
【0028】
(2)通信制御装置についての詳細動作
以下に、本発明に係る通信制御装置についての動作を詳細に説明する。
【0029】
まず、コネクション管理表600、送信先管理表700、及び、コネクション確立パケットについて説明する。
【0030】
図4は、コネクション管理表の内容の一例を示す説明図である。コネクション管理表600において、コネクション番号601は、1つの計算機内で、他の通信装置や他の計算機等との間に確立された一意なコネクションの番号を保持する。送信先識別子602は、通信システム全体において、データの送信先を一意に識別するための値(他の通信装置や他の計算機等の装置についての値)を保持する。送信先識別子は、例えば、通信制御装置ごとに割り当てられたネットワークアドレス、または、計算機ごとに割り当てられた計算機番号、または、計算機番号とI/Oバス番号、又は、処理のボトルネックとなる内部バス番号等の組合せ等である。キュー長603は、各コネクションに対応する送信キューに置かれている送信データの数を保持する。データの送信時、オペレーティングシステムまたはアプリケーション等が送信キューのキュー長603の値を記入及び更新する。
【0031】
図5は、送信先管理表の内容の一例を示す説明図である。送信先管理表700において、送信先識別子701は、通信システム全体において、データの送信先を一意に識別するための値(他の通信装置や他の計算機等の装置についての値)を保持する(図4のそれと同様である。)。相手I/Oバス速度702は、通信相手の通信制御装置が接続されているI/Oバスの転送速度の値を保持する。I/Oバスの転送速度は、例えば、I/Oバスのビット幅に動作周波数を乗じたものである。ここでは、一例として、2112(=32ビット×66MHz、又は、64ビット×33MHz)、1056(=32ビット×33MHz)、4224(=64ビット×66MHz)等の各値を用いている。次回送信可能時刻703は、相手通信制御装置に対してデータを送信することのできる時刻を保持する。ここでは、一例として、基準時間からの時間等で表している。
【0032】
図6は、コネクション確立パケットの一例の説明図である。コネクション確立パケットにおいて、送信先ネットワークアドレス241は、コネクション確立パケット送信先の通信制御装置(又は、計算機)等に割り当てられたネットワークアドレスである。送信元ネットワークアドレス242は、コネクション確立パケット送信元の通信制御装置(又は、計算機)等に割り当てられたネットワークアドレスである。送信元識別子243は、通信システム全体において、コネクション確立パケットの送信元(通信制御装置又は計算機等の装置)を一意に識別するための識別子である。これにより、例えば、ひとつのネットワークアドレスに対し、そのI/Oバス等の内部バスに送信元となる複数の通信制御装置・計算機等が備えられている場合に、それを特定することができる。送信元I/Oバス速度244は、コネクション確立パケット送信元の通信制御装置が接続されているI/Oバスの転送速度である。その他の情報245には、コネクション確立に必要なその他の情報を適宜含めることができる。ここで、その他の情報としては、例えば、送信データの番号等がある。コネクション確立時、2台の計算機間でこのようなコネクション確立パケットを交換することにより、相手のI/Oバス速度を取得することができる。
【0033】
つぎに、各手段の詳細動作をフローチャートを参照して説明する。
【0034】
図7は、送信キュー選択手段の処理手順を示すフローチャートである。通信制御装置150の電源投入後、送信キュー選択手段400は、送信キューの選択処理を開始する(ステップ401)。送信キュー選択手段400は、コネクション管理表600を参照して、コネクションを1つ選択する(ステップ402)。この選択は、例えば、以下のように行う。すなわち、現在選択しているコネクションが存在する場合、コネクション管理表600で次のコネクションを選択する。例えば、図4において、コネクション「1」を現在選択している場合はコネクション「2」を選択し、コネクション「5」を現在選択している場合はコネクション「1」を選択する。現在選択しているコネクションが存在しない場合は、コネクション管理表600の最初のコネクションを選択する。
【0035】
コネクション選択後、選択したコネクションに対応する送信キューに送信データが存在するか否かを検査する(ステップ403)。これは、例えば、キュー長603を参照して、その値が0かどうかにより判断することができる。送信データが存在しない場合、ステップ402に戻り、次のコネクションを選択する。一方、送信データが存在する場合、送信先識別子602に基づいて、送信先管理表700を参照し、選択しているコネクションに対応する送信先を選択する(ステップ404)。
【0036】
つぎに、送信先管理表700において、選択した送信先の行の次回送信可能時刻703を取得し、この値が現在時刻以下であるか否かを検査する(ステップ405)。次回送信可能時刻が現在時刻よりも大きい場合、選択している送信先に対して送信を行うことは不可能と判断し、ステップ402に戻り、次の送信キューを選択する。一方、次回送信可能時刻が現在時刻以下である場合、選択しているコネクションの送信キューからデータを転送するよう、DMA制御部530に指示を行う(ステップ406)。選択したコネクションを表管理手段300に通知し(ステップ407)、ステップ402に戻り、次のコネクションを選択する。なお、表管理手段300は、後述のように、コネクション管理表600及び通信先管理表700の更新等を行う。
【0037】
図8、図9、図10、図11は、コネクション管理手段200の処理手順を示すフローチャートである。
【0038】
図8は、コネクション管理手段がアプリケーションまたはオペレーティングシステムからコネクション確立要求を受信した場合の処理手順を示すフローチャートである。コネクション管理手段200は、アプリケーションまたはオペレーティングシステムからコネクション確立要求を受信すると(ステップ201)、コネクション確立パケットを通信相手となる計算機に対して送信する(ステップ202)。つぎに、コネクション管理手段200は、相手計算機からのコネクション確立パケットの応答を受信すると(ステップ203)、表管理手段300に対してコネクションを確立したことを通知する(ステップ204)。さらに、コネクション管理手段200は、アプリケーションまたはオペレーティングシステムに対してコネクションを確立したことを通知して(ステップ205)、処理を終了する。
【0039】
図9は、コネクション管理手段が他の計算機からコネクション確立要求を受信した場合の処理手順を示すフローチャートである。コネクション管理手段200は、他の計算機からコネクション確立要求パケットを受信すると(ステップ211)、コネクション確立応答パケットをその計算機に対して送信する(ステップ212)。つぎに、コネクション管理手段200は、表管理手段300に対してコネクションを確立したことを通知する(ステップ213)。さらに、コネクション管理手段200は、アプリケーションまたはオペレーティングシステムに対してコネクションを確立したことを通知して(ステップ214)、処理を終了する。
【0040】
図10は、コネクション管理手段がアプリケーションまたはオペレーティングシステムからコネクション切断要求を受信した場合の処理手順を示すフローチャートである。コネクション管理手段200は、アプリケーションまたはオペレーティングシステムからコネクション切断要求を受信すると(ステップ221)、コネクション切断パケットを、コネクションを確立している通信相手の計算機に対して送信する(ステップ222)。つぎに、コネクション管理手段200は、表管理手段300に対してコネクションを切断したことを通知し(ステップ223)、アプリケーションまたはオペレーティングシステムに対してコネクションを切断したことを通知して(ステップ224)、処理を終了する。
【0041】
図11は、コネクション管理手段が通信相手の計算機からコネクション切断要求を受信した場合の処理手順を示すフローチャートである。コネクション管理手段200は、コネクションを確立している通信相手の計算機からコネクション切断要求パケットを受信すると(ステップ231)、表管理手段300に対してコネクションを切断したことを通知する(ステップ232)。つぎに、コネクション管理手段200は、アプリケーションまたはオペレーティングシステムに対してコネクションを切断したことを通知して(ステップ233)、処理を終了する。
【0042】
図12、13、14は、表管理手段300の処理手順を示すフローチャートである。
図12は、表管理手段がコネクション管理手段からコネクション確立の通知を受信した場合の処理手順を示すフローチャートである。表管理手段300は、コネクション管理手段200からコネクション確立の通知を受信すると(ステップ301)、コネクション管理表600の中に新しいコネクション用の行を作成する(ステップ302)。つぎに、表管理手段300は、通知されたコネクションに対応する送信先識別子の値を、作成した行の送信先識別子602の欄に書き込み(ステップ303)、値0をキュー長603の欄に書き込む(ステップ304)。
【0043】
つぎに、表管理手段300は、送信先管理表700の送信先識別子701の欄を参照して、送信先管理表700中に通知されたコネクションの送信先に対応する行が存在するか否かを検査する(ステップ305)。ここで、送信先管理表700の中に通知されたコネクションの送信先に対応する行が存在する場合、処理を終了する。一方、送信先管理表700の中に通知されたコネクションの送信先に対応する行が存在しない場合、表管理手段300は、送信先管理表700の中に新しい送信先用の行を作成する(ステップ306)。表管理手段300は、通知されたコネクションに対応する送信先識別子の値を、作成した行の送信先識別子701の欄に書き込み(ステップ307)、通信相手のI/Oバスの転送速度を作成した行の相手I/Oバス速度702の欄に書き込む(ステップ308)。さらに、表管理手段300は、現在時刻を作成した行の次回送信可能時刻703の欄に書き込み(ステップ309)、処理を終了する。
【0044】
図13は、表管理手段がコネクション管理手段からコネクション切断の通知を受信した場合の処理手順を示すフローチャートである。表管理手段300は、コネクション管理手段200からコネクション切断の通知を受信すると(ステップ311)、コネクション管理表600の送信先識別子602を参照して、送信先の同じコネクションが他に存在するか否かの検査を行う(ステップ312)。送信先の同じコネクションが他に存在する場合、表管理手段300は、通知されたコネクションに対応する行をコネクション管理表600から削除して(ステップ314)、処理を終了する。一方、送信先の同じコネクションが他に存在しない場合、表管理手段300は、送信先管理表700からこの送信先に対応する行を削除し(ステップ313)、さらに、通知されたコネクションに対応する行をコネクション管理表600から削除して(ステップ314)、処理を終了する。
【0045】
図14は、表管理手段が送信キュー選択手段からコネクション選択の通知を受信した場合の処理手順を示すフローチャートである。表管理手段300は、送信キュー選択手段400からコネクション選択の通知を受信すると(ステップ321)、DMA制御部530が選択したコネクションのデータをメモリ130内の送信キューから送受信バッファ540に転送し終ったか否かを検査する(ステップ322)。転送が終了していない場合、表管理手段300は、転送が終了するまでステップ322の検査を繰り返す。この転送が終了すると、表管理手段300は、次回送信可能時刻を計算し、送信先管理表700の通知されたコネクションの行において、次回送信可能時刻703の欄に書き込み(ステップ323)、コネクション管理表600のキュー長603の欄の値を1だけ減らし(ステップ324)、処理を終了する。
【0046】
(3)送信可能時刻の計算
つぎに、表管理手段300による送信先管理表700中の送信可能時刻の計算方法について説明する。
図15は、表管理手段における次回送信可能時刻の計算方法の一例を示す説明図である。まず、表管理手段300は、最大データ長、通信制御装置が接続されているI/Oバスの転送速度、相手通信制御装置が接続されているI/Oバスの転送速度から、最小送信間隔を計算する(式330)。ここで、最大データ長とは、例えば、通信を行う計算機間を接続するネットワークで定められている最大のデータ長である。つぎに、現在時刻と最小送信間隔の和を計算し、これを次回送信可能時刻とする(式331)。
【0047】
図15で示したように、最小送信間隔は、最大データ長、通信制御装置が接続されているI/Oバスの転送速度、相手通信制御装置が接続されているI/Oバスの転送速度から決まり、コネクション確立中は一定の値である。したがって、コネクション確立時に最小送信間隔を計算しておくことで、データ送信時の次回送信可能時刻の計算を簡単にし、表管理手段における処理を高速化することも可能である。
【0048】
次回送信可能時刻の計算を高速に行うための、本発明の他の実施の形態を、以下に説明する。
図16は、表管理手段における次回送信可能時刻の計算を高速化する場合の送信先管理表の内容の一例を示す説明図である。ここでは、送信先管理表700において、相手I/Oバス速度の欄の代わりに、最小送信間隔712の欄を備える。最小送信時間間隔712としては、例えば、時間、タイムスロット数、動作クロック数等の適宜の時間を表す値を用いることができる。表管理手段300は、コネクション確立時に最小送信間隔712の欄を作成して、データを書き込む。表管理手段300において次回送信可能時刻を計算する処理(図14のステップ323)では、現在時刻と最小送信間隔の和を計算する。
【0049】
図15に示す次回送信可能時刻の計算方法においては、最大データ長よりも短いデータを送信する場合、受信側において受信処理を行っていない期間が存在し、通信の効率が低下する。そこで、データ送信の時間間隔を決定する別の方法として、相手通信制御装置が接続されているI/Oバスの転送速度と、送信するデータの長さから時間間隔を決定することもできる。受信側計算機110、111において、通信制御装置150からI/Oバス161を介してデータをメモリに転送する処理に要する時間は、転送するデータの長さによって変化する。以下の方法によると、送信データの長さに応じて、受信側計算機110、111がデータをメモリに転送する時間だけ、送信側計算機100でのデータ送信の時間間隔を空けることができ、一層効率の良い通信を行うことができる。以下に、この方法について説明する。
【0050】
図17は、送信データが短い場合の動作説明図である。上述の方法では、最大データ長、通信制御装置が接続されているI/Oバスの転送速度、及び、相手通信制御装置が接続されているI/Oバスの転送速度に基づいて、最小送信間隔を計算する。そのため、次のデータ送信までに空ける最小送信間隔は、最大データ長のデータを送信した場合に受信側において受信処理を連続して行うだけの時間になる。図17において、送信側831では送信処理836の後にデータパケット833を送信し、送信処理837の後にデータパケット834を送信し、また、送信処理838の後にデータパケット835を送信する。受信側832ではデータパケット833の受信後に受信処理839を行い、データパケット834の受信後に受信処理840を行い、また、データパケット835の受信後に受信処理841を行う。しかし、送信データパケットが短い場合、受信処理839と840との間、及び受信処理840と841との間に無駄な時間が存在する。
【0051】
そこで、以下に説明するように、本発明の他の実施の形態は、送信データの長さが変化する場合に効率のよい通信を行うためのものである。
図18は、送信データの長さが変化する場合に効率のよい通信を行うための表管理手段における次回送信可能時刻の計算方法を示す説明図である。まず、表管理手段300は、通信制御装置が接続されているI/Oバスの転送速度、相手通信制御装置が接続されているI/Oバスの転送速度から、乗数を計算する(式340)。次に、送信データのデータ長に乗数を乗じた値と、現在時刻との和を計算し、これを次回送信可能時刻とする(式341)。このようにして、送信するデータの長さに基づいてデータ送信時の時間間隔を空けるため、短いデータを送信する場合でも受信側において連続して受信処理を行え、効率のよい通信を行うことができる。
【0052】
(4)コネクションを平等に選択するための他の実施の形態
図7に示す送信キュー選択手段の処理方法では、送信先の同じコネクションが複数存在する場合、選択されにくいコネクションが存在する可能性がある。例えば、図4のコネクション管理表600において、コネクション「2」、「4」、「5」の送信先識別子602はいずれも「2」である。そして、まず、コネクション「4」からデータを送信した際、送信先管理表700の次回送信可能時刻703に時刻を書き込む。つぎに、コネクション「5」を選択するが、コネクション「5」の送信先識別子はコネクション「4」の送信先識別子と同じであるため、図7のステップ405の検査「次回送信可能時刻≦現在時刻」が否となり、コネクション「5」からデータを送信できない場合がある。その後、次のコネクション「3」からデータを送信し、コネクション「4」を選択したとき、図7のステップ405の検査「次回送信可能時刻≦現在時刻」が成功し、コネクション「4」から再びデータを送信する。その後、さらに次のコネクション「5」を選択するが、再び図7のステップ405の検査「次回送信可能時刻≦現在時刻」が否となり、コネクション「5」からデータを送信できない場合が生じる。このように、送信先が同じ別のコネクションが複数存在すると、その特定のコネクションからは送信できないことがある。
【0053】
そこで、コネクションを平等に選択するための、本発明の他の実施の形態を以下に説明する。
図19は、コネクションを平等に選択するためのコネクション管理表の他の実施の形態を示す説明図である。このコネクション管理表620では、一例として、図4のコネクション管理表600に、次コネクション624の欄を追加するようにした。
【0054】
図20は、コネクションを平等に選択するための送信先管理表の他の実施の形態を示す説明図である。この送信先管理表720では、一例として、図4の送信先管理表700に、次コネクション724の欄を追加するようにした。
【0055】
この実施の形態では、図19のコネクション管理表620と図20の送信先管理表720を用いて、送信先識別子ごとにコネクションのリストを作る。例えば、コネクション管理表620では、コネクション「2」、「4」、「5」の送信先識別子は同じく「2」であるので、コネクション「2」、「4」、「5」でリストを1つ作成する。このリストは、送信の順番を表したもので、例えば次のように構成する。すなわち、送信先管理表720の送信先識別子「2」の行において、次コネクション724の欄は「2」である。コネクション管理表620のコネクション「2」の行において、次コネクション624の欄は「5」である。また、コネクション「5」の行において、次コネクション624の欄は「4」である。コネクション「4」の行の次コネクション624の欄は「終」マークである。このようにして、送信先識別子「2」に対して、コネクション「2」、コネクション「5」、コネクション「4」という順を表したリストを作成する。
【0056】
図21は、コネクションを平等に選択するための、送信キュー選択手段の処理手順の他の実施の形態を示すフローチャートである。
通信制御装置の電源投入後、送信キュー選択手段400は、送信キューの選択処理を開始する(ステップ411)。送信先管理表720の送信先識別子701の欄を参照して、送信先を1つ選択する。この選択は、例えば、以下のように行う。すなわち、現在選択している送信先(送信先識別子の番号)が存在する場合、送信先管理表720で次の送信先を選択する。例えば、図20において、送信先識別子「1」を現在選択している場合は送信先識別子「2」を選択し、送信先識別子「3」を現在選択している場合は送信先識別子「1」を選択する。現在選択している送信先が存在しない場合は、送信先管理表720の最初の送信先を選択する(ステップ412)。
【0057】
送信キュー選択手段400は、送信先選択後、送信先管理表720において、選択した送信先の行の次回送信可能時刻703を取得し、この値が現在時刻以下であるか否かを検査する(ステップ413)。次回送信可能時刻が現在時刻よりも大きい場合、選択している送信先に対して送信を行うことは不可能と判断し、ステップ412に戻り、次の送信先を選択する。一方、次回送信可能時刻が現在時刻以下である場合、選択している送信先の行の次コネクション724を取得し、次コネクションに対応するコネクションをコネクション管理表620から選択する(ステップ414)。
【0058】
コネクション選択後、選択したコネクションに対応する送信キューに送信データが存在するか否かを検査する(ステップ416)。例えば、キュー長603を参照することで、このような検査をすることができる。送信データが存在しない場合、選択しているコネクションの行の次コネクション624を取得し、この値が「終」マークであるか否かを検査する(ステップ419)。次コネクションの値が「終」マークである場合、選択しているコネクションは選択している送信先に対応する最後のコネクションなので、ステップ412に戻り、次の送信先を選択する。次コネクションの値が「終」マークでない場合、選択しているコネクションの行の次コネクション624を取得し、次コネクションに対応するコネクションを選択する(ステップ415)。送信データのあるコネクションを選択するか、次コネクション欄が「終」マークのコネクションを選択するまで、ステップ416、419、415を繰り返す。
【0059】
一方、送信データが存在する場合、選択しているコネクションの送信キューからデータを転送するよう、DMA制御部530に指示を行う(ステップ417)。送信キュー選択手段400は、選択したコネクションを表管理手段300に通知し(ステップ418)、ステップ412に戻り、次の送信先を選択する。
【0060】
図22、図23及び図24は、コネクションを平等に偏りなく選択するための、表管理手段300の処理手順の他の実施の形態を示すフローチャートである。図22は、コネクションを平等に選択するための、表管理手段がコネクション管理手段からコネクション確立の通知を受信した場合の処理手順を示すフローチャートである。表管理手段300は、コネクション管理手段200からコネクション確立の通知を受信すると(ステップ351)、コネクション管理表620の中に新しいコネクション用に行を作成する(ステップ352)。つぎに、表管理手段300は、通知されたコネクションに対応する送信先識別子の値を、作成した行の送信先識別子602の欄に書き込む(ステップ353)。つぎに、表管理手段300は、送信先管理表720の中に、通知されたコネクションの送信先に対応する行が存在するか否かを検査する(ステップ354)。送信先管理表720の中に通知されたコネクションの送信先に対応する行が存在する場合、その送信先に対応するコネクションのリストに通知されたコネクションを挿入するように、コネクション管理表620及び送信先管理表720の次コネクション624及び724の欄を更新し(ステップ355)、処理を終了する。
【0061】
一方、送信先管理表720の中に通知されたコネクションの送信先に対応する行が存在しない場合、表管理手段300は、送信先管理表720の中に新しい送信先用に行を作成する(ステップ356)。通知されたコネクションに対応する送信先識別子の値を、作成した行の送信先識別子701の欄に書き込み(ステップ357)、通信相手のI/Oバスの転送速度を作成した行の相手I/Oバス速度702の欄に書き込み(ステップ358)、現在時刻を作成した行の次回送信可能時刻703の欄に書き込む(ステップ359)。送信先管理表720の次コネクション724の欄に通知されたコネクション番号を書き込み、コネクション管理表620に作成した行の次コネクション624の欄に「終」マークを書き込むことで、送信先に対応するコネクションのリストを作成し(ステップ360)、処理を終了する。
【0062】
ステップ355において、通知されたコネクションをリストに挿入する処理は、例えば、次のように行う。例えば、図19のコネクション管理表620及び図20の送信先管理表720では、送信先識別子「2」に対して、コネクション「2」、コネクション「5」、コネクション「4」の順のリストを作成している。ここで、一例として、通知されたコネクション番号が「6」で、対応する送信先識別子が「2」である場合を説明する。この場合、送信先管理表720の送信先識別子「2」の行において、次コネクション724の欄を「2」から「6」に変更する。さらに、コネクション管理表620に作成したコネクション「6」の行において、次コネクション624の欄に「2」を記入する。このようにして、送信先識別子「2」に対して、コネクション「6」、コネクション「2」、コネクション「4」、コネクション「5」の順にリストを変更する。
【0063】
図23は、コネクションを平等に選択するための、表管理手段がコネクション管理手段からコネクション切断の通知を受信した場合の処理手順を示すフローチャートである。表管理手段300は、コネクション管理手段200からコネクション切断の通知を受信すると(ステップ371)、コネクション管理表620を参照して、送信先が同じコネクションが他に存在するか否かの検査を行う(ステップ372)。送信先の同じコネクションが他に存在する場合、表管理手段300は、送信先に対応するコネクションのリストから通知されたコネクションを削除するように、コネクション管理表620及び送信先管理表720の次コネクションの欄を更新し(ステップ375)、通知されたコネクションに対応する行をコネクション管理表620から削除して(ステップ374)、処理を終了する。
【0064】
一方、送信先の同じコネクションが他に存在しない場合、送信先管理表720からこの送信先に対応する行を削除し(ステップ373)、通知されたコネクションに対応する行をコネクション管理表620から削除して(ステップ374)、処理を終了する。
【0065】
ステップ375において、通知されたコネクションをリストから削除する処理は、例えば、次のように行う。図19のコネクション管理表620及び図20の送信先管理表720では、送信先識別子「2」に対して、コネクション「2」、コネクション「5」、コネクション「4」の順のリストを作成している。例えば、通知されたコネクション番号が「5」の場合、コネクション管理表620のコネクション「2」の行において、次コネクション624の欄を「5」から「4」に変更することで、送信先識別子「2」に対して、コネクション「2」、コネクション「4」の順にリストを変更する。また、例えば、通知されたコネクション番号が「2」の場合、送信先管理表72の送信先識別子「2」の行において、次コネクション724の欄を「2」から「5」に変更することで、送信先識別子「2」に対して、コネクション「5」、コネクション「4」の順にリストを変更する。
【0066】
図24は、コネクションを平等に選択するための、表管理手段が送信キュー選択手段からコネクション選択の通知を受信した場合の処理手順を示すフローチャートである。表管理手段300は、送信キュー選択手段400からコネクション選択の通知を受信すると(ステップ381)、DMA制御部530が選択したコネクションのデータをメモリ130内の送信キューから送受信バッファ540に転送し終ったか否かを検査する(ステップ382)。転送が終了していない場合、表管理手段300は、転送が終了するまでステップ382の検査を繰り返す。この転送が終了すると、表管理手段300は、次回送信可能時刻を計算し、送信先管理表720の通知されたコネクションの行において、次回送信可能時刻703の欄に書き込み(ステップ383)、コネクション管理表620のキュー長603の欄の値を1だけ減らす(ステップ384)。つぎに、表管理手段300は、通知されたコネクションを送信先に対応するコネクションのリストの最後に移動するように、コネクション管理表620及び送信先管理表720の次コネクションの欄を更新し(ステップ385)、処理を終了する。
【0067】
ステップ385において、通知されたコネクションをリストの最後に移動する処理は、例えば、次のように行う。図19のコネクション管理表620及び図20の送信先管理表720では、送信先識別子「2」に対して、コネクション「2」、コネクション「5」、コネクション「4」の順のリストを作成している。ここで、例えば、通知されたコネクション番号が「5」の場合、コネクション管理表620のコネクション「2」の行において、次コネクション624の欄を「5」から「4」に変更し、コネクション「4」の行の次コネクション624の欄を「終」から「5」に変更し、コネクション「5」の行の次コネクション624の欄を「4」から「終」に変更する。このようにして、送信先識別子「2」に対して、コネクション「2」、コネクション「4」、コネクション「5」の順にリストを変更する。
【0068】
また、例えば、通知されたコネクション番号が「2」の場合、送信先管理表720の送信先識別子「2」の行の次コネクション724の欄を「2」から「5」に変更する。さらに、コネクション管理表620のコネクション「4」の行において、次コネクション624の欄を「終」から2に変更し、コネクション「2」の行の次コネクション624の欄を「5」から「終」に変更する。このようにして、送信先識別子「2」に対して、コネクション「5」、コネクション「4」、コネクション「2」の順にリストを変更する。
【0069】
なお、上述のリストは、コネクション管理表620及び送信先管理表720とは別個に適宜記憶されても良いし、リストの次のアドレス・コネクション番号等を示すデータを各行のデータに加えることで各行のデータ間でチェーン構造を構成するようにしても良い。
【0070】
(5)応用
また、上述の説明では、主に、計算機内のI/Oバスが転送速度のボトルネックである場合を説明したが、この他適宜の内部バスがボトルネックとなる場合にも、本発明を適用することができる。さらに、チェックサム等のエラー有無等の制御データをプロセッサ等が計算する処理速度や、メモリとのデータの読出し速度及び書込み速度等がボトルネックとなる場合にも、本発明を適用することができる。その際、内部バス速度の代わりに、例えば、最小送信間隔に関するデータ、単位長データの伝送に要する時間に関するデータ、又は、送信先プロセッサ処理速度等の転送速度に関連するデータ等を適宜記憶するように構成すればよい。また、コネクションを平等に選択する場合にも、相手I/Oバス速度に限らず、上述のような適宜のデータを使用することもできる。さらに、直接ボトルネックとなるデータ以外の転送速度等に関連する適宜のデータを用いて、送信タイミングを図るようにしても良い。
【0071】
さらに、以上の説明では、特に計算機内の内部バスに接続された通信制御装置について説明したが、通信制御装置は、計算機内に限らず、計算機の外部の通信制御装置、計算機以外の装置に内蔵又は外部接続される通信制御装置等の適宜の装置にも、本発明を適用することができる。また、あるネットワークアドレスの装置内に設けられたI/Oバス等の内部バスに複数の通信制御装置・計算機等の装置が備えられている場合にも、その装置の送信先識別子を特定することにより、本発明を適用することができる。
【0072】
【発明の効果】
以上述べたように、本発明によれば、送信側装置(計算機等)において相手装置(計算機等)に対してデータを送信する時間間隔を空けるようにしたので、受信側装置では、通信制御装置が内部バスを介して受信データをメモリに格納する受信処理を終了した後に、次に送信されたデータを受信することができる。このため、受信失敗によるデータ損失を防ぎ、効率的な通信を達成することができる。
【図面の簡単な説明】
【図1】本発明に係る通信システム全体の構成図。
【図2】送信側計算機と受信側計算機との間におけるパケットの送受信を示す説明図。
【図3】従来技術と本発明との比較を示す動作説明図。
【図4】コネクション管理表の内容の一例を示す説明図。
【図5】送信先管理表の内容の一例を示す説明図。
【図6】コネクション確立パケットの一例の説明図。
【図7】送信キュー選択手段の処理手順を示すフローチャート。
【図8】コネクション管理手段がアプリケーションまたはオペレーティングシステムからコネクション確立要求を受信した場合の処理手順を示すフローチャート。
【図9】コネクション管理手段が他の計算機からコネクション確立要求を受信した場合の処理手順を示すフローチャート。
【図10】コネクション管理手段がアプリケーションまたはオペレーティングシステムからコネクション切断要求を受信した場合の処理手順を示すフローチャート。
【図11】コネクション管理手段が通信相手の計算機からコネクション切断要求を受信した場合の処理手順を示すフローチャート。
【図12】表管理手段がコネクション管理手段からコネクション確立の通知を受信した場合の処理手順を示すフローチャート。
【図13】表管理手段がコネクション管理手段からコネクション切断の通知を受信した場合の処理手順を示すフローチャート。
【図14】表管理手段が送信キュー選択手段からコネクション選択の通知を受信した場合の処理手順を示すフローチャート。
【図15】表管理手段における次回送信可能時刻の計算方法の一例を示す説明図。
【図16】表管理手段における次回送信可能時刻の計算を高速化する場合の送信先管理表の内容の一例を示す説明図。
【図17】送信データが短い場合の動作説明図。
【図18】送信データの長さが変化する場合に効率のよい通信を行うための表管理手段における次回送信可能時刻の計算方法を示す説明図。
【図19】コネクションを平等に選択するためのコネクション管理表の他の実施の形態を示す説明図。
【図20】コネクションを平等に選択するための送信先管理表の他の実施の形態を示す説明図。
【図21】コネクションを平等に選択するための、送信キュー選択手段の処理手順の他の実施の形態を示すフローチャート。
【図22】コネクションを平等に選択するための、表管理手段がコネクション管理手段からコネクション確立の通知を受信した場合の処理手順を示すフローチャート。
【図23】コネクションを平等に選択するための、表管理手段がコネクション管理手段からコネクション切断の通知を受信した場合の処理手順を示すフローチャート。
【図24】コネクションを平等に選択するための、表管理手段が送信キュー選択手段からコネクション選択の通知を受信した場合の処理手順を示すフローチャート。
【符号の説明】
100・・・送信側計算機
110・・・受信側計算機1
111・・・受信側計算機1
120・・・プロセッサ
130・・・メモリ
131・・・アプリケーション1
132・・・アプリケーション2
133・・・送信キュー1
134・・・受信キュー1
135・・・送信キュー2
136・・・受信キュー2
137・・・送信キューN
138・・・受信キューN
140・・・I/Oブリッジ
150・・・通信制御装置
160・・・ホストバス
161・・・I/Oバス
162・・・ネットワーク
200・・・コネクション管理手段
300・・・表管理手段
400・・・送信キュー選択手段
500・・・自I/Oバス速度保持手段
600・・・コネクション管理表
700・・・送信先管理表
510・・・メモリ
520・・・制御装置
530・・・DMA制御部
540・・・送受信バッファ
550・・・送受信部
Claims (3)
- 自装置と送信先装置との間の通信に関するコネクション番号、及び、送信先装置の送信先識別子を含むデータを記憶するコネクション管理表と、
送信先装置の送信先識別子、送信先装置の内部バス速度、及び、次回送信可能時刻を含むデータを記憶する送信先管理表と、
コネクション確立時に、送信先装置の内部バス速度を含むコネクション確立応答を送信先装置から受信するコネクション管理手段と、
前記コネクション管理手段からコネクション確立の通知を受信し、前記コネクション管理表にデータを作成し、さらに、前記送信先管理表に送信先識別子に対応するデータがない場合、前記コネクション管理手段により受信された送信先装置の内部バス速度を含むデータを作成する表管理手段と、
前記表管理手段により作成された前記コネクション管理表から、次のコネクションについてのコネクション番号及び送信先識別子を選択し、前記表管理手段により作成された前記送信先管理表から、選択された送信先識別子についての次回送信可能時刻を取得し、取得された次回送信可能時刻と現在時間との比較結果に応じて送信キューを選択する送信キュー選択手段と
を備えた通信制御装置。 - 前記送信先管理表は、内部バス速度の代わりに、最小送信間隔に関するデータ、単位長データの伝送に要する時間に関するデータ、又は、送信先プロセッサ処理速度等の転送速度に関連するデータのいずれかを記憶することを特徴とする請求項1に記載の通信制御装置。
- 前記表管理手段は、前記コネクション管理表及び前記送信先管理表によって、送信先識別子毎に選択されるコネクションの順番を示すリストをさらに作成し、前記送信キュー選択手段は、作成されたリストに従い、ひとつの送信先識別子についての複数のコネクションを順次選択するようにしたことを特徴とする請求項1又は2に記載の通信制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02667099A JP3569149B2 (ja) | 1999-02-03 | 1999-02-03 | 通信制御装置 |
US09/497,535 US6557034B1 (en) | 1999-02-03 | 2000-02-03 | Communication control device transmitting data based on internal bus speed of receiving computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02667099A JP3569149B2 (ja) | 1999-02-03 | 1999-02-03 | 通信制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000224260A JP2000224260A (ja) | 2000-08-11 |
JP3569149B2 true JP3569149B2 (ja) | 2004-09-22 |
Family
ID=12199846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02667099A Expired - Fee Related JP3569149B2 (ja) | 1999-02-03 | 1999-02-03 | 通信制御装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6557034B1 (ja) |
JP (1) | JP3569149B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6681275B2 (en) * | 2001-09-20 | 2004-01-20 | Intel Corporation | Method and apparatus for dynamic coalescing |
JP4936542B2 (ja) * | 2007-08-14 | 2012-05-23 | キヤノン株式会社 | 通信制御装置、通信制御方法、及びコンピュータプログラム |
US7861017B2 (en) * | 2007-10-19 | 2010-12-28 | Sony Corporation | Consumer electronics control (CEC) line enhancement method for HDMI network that selects a transfer rate from a plurality of transfer rates |
JP5478342B2 (ja) * | 2010-04-13 | 2014-04-23 | 京セラドキュメントソリューションズ株式会社 | 情報処理装置 |
US20120054362A1 (en) * | 2010-08-31 | 2012-03-01 | Canon Kabushiki Kaisha | Mechanism for autotuning mass data transfer from a sender to a receiver over parallel connections |
JP5978849B2 (ja) * | 2012-08-09 | 2016-08-24 | 富士通株式会社 | 並列計算機システム、クロスバスイッチ及び並列計算機システムの制御方法 |
JP6115396B2 (ja) * | 2013-08-15 | 2017-04-19 | 富士通株式会社 | 情報処理システム,情報処理装置,情報処理装置の制御プログラム,及び情報処理システムの制御方法 |
US10073714B2 (en) | 2015-03-11 | 2018-09-11 | Western Digital Technologies, Inc. | Task queues |
JP7087921B2 (ja) * | 2018-10-31 | 2022-06-21 | 富士通株式会社 | 処理フレームワーク連携装置、処理フレームワーク連携方法および処理フレームワーク連携プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2466808A1 (fr) * | 1979-09-28 | 1981-04-10 | Ibm France | Systeme pour controler la duree de l'intervalle de temps entre blocs dans un systeme de communication calculateur a calculateur |
US5623607A (en) * | 1993-10-05 | 1997-04-22 | Hitachi, Ltd. | Data transfer control method for controlling transfer of data through a buffer without causing the buffer to become empty or overflow |
-
1999
- 1999-02-03 JP JP02667099A patent/JP3569149B2/ja not_active Expired - Fee Related
-
2000
- 2000-02-03 US US09/497,535 patent/US6557034B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6557034B1 (en) | 2003-04-29 |
JP2000224260A (ja) | 2000-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7185114B1 (en) | Virtual memory systems and methods | |
CN1698337B (zh) | 利用卸载单元处理tcp连接数据的方法 | |
JP4160642B2 (ja) | ネットワークデータ転送方法 | |
JP4407556B2 (ja) | セッション中継装置、セッション中継方法およびプログラム | |
US7009967B1 (en) | Systems and methods for transmitting data packets | |
US6819681B1 (en) | Systems and methods for predicting data fields in layered protocols | |
JP3569149B2 (ja) | 通信制御装置 | |
US20040260841A1 (en) | Method, apparatus, and system for internet protocol communication over intelligent platform management bus | |
US7483990B2 (en) | Method, apparatus, and program for informing a client when a server is busy in the transfer control protocol | |
US6339796B1 (en) | System for logical connection resynchronization | |
US7539204B2 (en) | Data and context memory sharing | |
US20160359950A1 (en) | Systems and methods for improved trivial file transfer protocol | |
US20080313363A1 (en) | Method and Device for Exchanging Data Using a Virtual Fifo Data Structure | |
JPH10308791A (ja) | データ通信方法、データ通信装置、およびデータ通信プログラム記録媒体 | |
US20060050641A1 (en) | Method, system, and product for alleviating router congestion | |
US7593318B2 (en) | Method and apparatus for header updating | |
CN110609866A (zh) | 用于协商事务的方法、设备和计算机程序产品 | |
US6237111B1 (en) | Method for logical connection resynchronization | |
CN107273318A (zh) | 并行处理设备和通信控制方法 | |
JP2008148181A (ja) | 通信装置及び通信制御方法 | |
WO2001067272A1 (en) | Virtual memory systems and methods | |
JP2023057210A (ja) | 情報処理装置,情報処理方法および情報処理プログラム | |
Farber et al. | RFC0914: Thinwire protocol for connecting personal computers to the Internet | |
JP2002163181A (ja) | ファイル転送システム及びファイル転送方法 | |
KR20050098986A (ko) | 패킷 및 오류 판정 정보 송/수신 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040603 |
|
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: 20040615 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040617 |
|
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: 20080625 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080625 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |