JP4218034B2 - データ通信システムおよびデータ通信方法、データ通信プログラム - Google Patents

データ通信システムおよびデータ通信方法、データ通信プログラム Download PDF

Info

Publication number
JP4218034B2
JP4218034B2 JP2004567523A JP2004567523A JP4218034B2 JP 4218034 B2 JP4218034 B2 JP 4218034B2 JP 2004567523 A JP2004567523 A JP 2004567523A JP 2004567523 A JP2004567523 A JP 2004567523A JP 4218034 B2 JP4218034 B2 JP 4218034B2
Authority
JP
Japan
Prior art keywords
communication
data
memory
host
interface card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004567523A
Other languages
English (en)
Other versions
JPWO2004068356A1 (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 JPWO2004068356A1 publication Critical patent/JPWO2004068356A1/ja
Application granted granted Critical
Publication of JP4218034B2 publication Critical patent/JP4218034B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system

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)

Description

本発明は、コンピュータの内部データを外部に送信する際に、あるいは外部データをコンピュータ内部に受信する際に、計算機環境に基づいて通信方式を選択することができるデータ通信システムおよびデータ通信方法、データ通信プログラムに関するものである。
近年、プロセッサ性能とネットワーク性能の向上は目覚ましいものがある。特にネットワーク性能の向上は目覚ましく、ネットワークハードウェアの性能を引き出すためには、プロセッサによる通信処理やデータのコピーを抑えた通信処理が必要となっている。しかしながら、どのような方式を用いることが最良の効率を得ることになるかについては、プロセッサの処理能力、システムバスの転送能力、メモリバンド幅転送能力、I/Oバス転送能力等の影響を受けるため、これらの組合せを総合的に考えなければならない。
従来のネットワーク通信ソフトウェアでは、ネットワークの性質とシステムハードウェアとの組合せにより最適な通信処理方式が異なっていた。このために、特定のネットワークに最適化するハードウェアや通信手順の記述が一つに定められたソフトウェアが備えられ、ソフトウェア処理性能とハードウェア性能の差に応じて適宜通信ソフトウェア及びハードウェア処理の方式を変更可能とすることは考慮されていなかった。
したがって、従来では、あるネットワークを用いた計算機システム上で通信性能(アプリケーション性能)を最大限に引き出すためには、そのシステム(システムハードウェアとネットワークハードウェアやオペレーティングシステム)用に最適化された特定の方式のみを実装するか、複数の方式を実装して、計算機システム毎に固定若しくはパラメータを最適化する必要があり、このため、計算機環境に応じて通信方式を適宜自動的に選択することはできず、したがって常時最適な通信方式を採用して高効率で通信を行うことはできなかった。
本発明は、そのような問題を解決するためになされたものであって、様々な計算機環境に応じて通信方式を自動的に選択することができ、通信性能の高速化、ならびにアプリケーション性能の高速化を図ることができるデータ通信システム、データ通信方法、データ通信プログラムを得ることを目的とするものである。
上述した目的を達成するため、本発明は、ネットワーク通信を行う計算機システムのデータ通信システムであって、計算機システムのデータ通信に関する性能又は状態の少なくとも一つを認識する性能状態認識部と、複数の異なる通信方式についての実行機能を有すると共に前記性能状態認識部による性能と状態に基づいて、前記複数の異なる通信方式から少なくとも一つの通信方式を設定して実行する通信方式選択実行部とを備えてなるものである。各通信方式はソフトウェア又はハードウェアにより実行されることができる。
なお、本発明の実施の形態において、通信方式選択実行部は、通信制御部32とNIC制御部33とにより構成される。
前記データ通信に関する性能としては、ホストプロセッサ(ホストCPU)によるI/Oバスのデータ転送性能とネットワークインターフェイスカード(NIC)の持つハードウェアによるデータ転送性能とが含まれる。
また、前記データ通信に関する状態としては、通信要求のあるデータ長が含まれ、データ長が所定の長さ以上の場合、前記通信方式選択実行部は、ネットワークインターフェイスカードの持つハードウェアによるデータ転送を実行する。この場合、ネットワークインターフェイスカードのCPUはDMA(Direct Memory Access)を実行して、迅速にデータを転送することができる。
また、通信要求のあるデータ長が所定の長さ以上でない場合は、前記通信方式選択実行部は、ホストプロセッサによるI/Oバスを用いたデータ転送を行う。なお、データ長についてのテーブルを有し、そのテーブルの値に従って、データ長に対する通信方式を選択するようにしても良い。
さらに、前記データ通信に関する状態として、通信要求のあるデータに対するネットワークインターフェイスカードのメモリの空き状態が含まれ、前記性能状態認識部によりネットワークインターフェイスカードのメモリに空きがあると認識された場合、前記通信方式選択実行部は、前記通信要求のあるデータをネットワークインターフェイスカードのメモリに直接転送する。
また、前記データ通信に関する状態として、通信要求のあるデータに対するホストメモリの空き状態とネットワークインターフェイスカードのメモリの空き状態とが含まれ、前記性能状態認識部によりネットワークインターフェイスカードのメモリに空きが無いと認識された場合において、ホストメモリに空きがあると認識された場合、前記通信方式選択実行部は、前記通信要求のあるデータをホストメモリにコピーする。
また、前記データ通信に関する状態として、通信要求のあるデータに対するホストメモリの空き状態とネットワークインターフェイスカードのメモリの空き状態とが含まれ、前記性能状態認識部によりネットワークインターフェイスカードのメモリに空きが無いと認識された場合において、更にホストメモリに空きが無いと認識された場合、前記通信方式選択実行部は、前記通信要求に対する処理実行を待ち状態にする。
また、前記データ通信に関する状態として、通信要求のあるデータに対するネットワークインターフェイスカードのメモリの空き状態が含まれ、前記性能状態認識部によりネットワークインターフェイスカードのメモリに空きが無いと認識された場合、前記性能状態認識部は空きが生じる時間を推定し、空きが生じるまでの推定時間だけ前記通信要求に対する処理実行を待ち状態にする。
さらに、ネットワークインターフェイスカードとホストとの間のデータ転送においてバッファディスクリプタを用いる場合に、前記データ通信に関する状態として、前記バッファディスクリプタにおける要求数が含まれ、前記性能状態認識部により、前記要求数が所定数以上あると認識された場合、前記通信方式選択実行部は、ネットワークインターフェイスカードにより、要求に係るデータを一括して転送させる。この場合、前記要求数が所定数以上ないと認識された場合、前記通信方式選択実行部は、ネットワークインターフェイスカードにより、要求に係るデータを一つずつ転送させる。
また、本発明は、複数の異なる通信方式についての実行機能を有してネットワーク通信を行う計算機システムのデータ通信方法であって、計算機システムのデータ通信に関する性能又は状態の少なくとも一つを認識する認識ステップと、前記認識された性能と状態に基づいて、前記複数の異なる通信方式から少なくとも一つの通信方式を設定して実行する通信実行ステップとを備えてなるものである。
また、本発明は、複数の異なる通信方式についての実行機能を有してネットワーク通信を行う計算機システムのデータ通信方法をコンピュータに実行させるデータ通信プログラムであって、計算機システムのデータ通信に関する性能又は状態の少なくとも一つを認識する認識ステップと、前記認識された性能と状態に基づいて、前記複数の異なる通信方式から少なくとも一つの通信方式を設定して実行する通信実行ステップとをコンピュータに実行させるものである。
なお、上記プログラムは、上記コンピュータにより読取り可能な媒体に記録されることができ、この記録媒体には、CD−ROMやフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含まれる。
第1図は、本発明の実施の形態におけるハードウェア構成図である。
第2図は、本発明の実施の形態におけるNICを示すハードウェア構成図である。
第3図は、本発明の実施の形態におけるソフトウェア構成図である。
第4図は、本発明の実施の形態1における機能ブロック図である。
第5図は、本発明の実施の形態1における送信時の動作を示すフローチャートである。
第6図は、ハードウェア性能状態認識部が有するテーブルを示す図である。
第7図は、メモリ状態認識部が有するテーブルを示す図である。
第8図は、本発明の実施の形態1における受信時の動作を示すフローチャートを示す図である。
第9図は、本発明の実施の形態3における機能ブロック図である。
第10図は、本発明の実施の形態3の動作を示すフローチャートである。
第11図は、本発明の実施の形態3においてディスクリプタ要求数認識部が有するテーブルである。
以下、本発明の実施の形態を図を用いて詳細に説明する。
実施の形態1.
第1図は本発明の実施の形態におけるメッセージ通信システムの基本ハードウェア構成図、第2図はNICを示す構成図、第3図はソフトウェア構成図、第4図は実施の形態1における機能ブロック図である。
第1図に示されるように、このメッセージ通信システムは、ホスト1にNIC(Network Interface Card)2を備えている。ホスト1においては、システムバス3を介して、CPU(ホストプロセッサ)4とホストメモリ5が接続され、更にインタフェイス(I/F)6を介してハードディスク(HDD)7が接続されている。そして、NIC2は、このインタフェイス6及びI/Oバス8を介してネットワーク9との間に接続されている。
NIC2はNIC用のCPU21とNICメモリ22とネットワーク接続用I/F23がシステムバス24により互いに接続されて構成されている。
また、第3図に示されるように、メッセージ通信システムのソフトウェア構成は、ユーザプログラム実行部31と、通信制御部(通信ライブラリ部)32と、NIC制御部33と、性能状態認識部34とを備えて構成されることができる。性能状態認識部34は、ハードウェアの性能を認識するハードウェア性能認識部341と、メモリの空状態を認識するメモリ状態認識部342と、これら認識部341,342の認識結果に基づいて通信機能を通信制御部32に指示して設定させる通信方式指示部343とを備えている。
更に第4図に示す機能ブロック図において、通信制御部32は、通信方式指示部343により指示された通信方式を設定する通信方式設定部321と、この通信方式設定部321により設定された通信方式を実行する通信方式実行部322とを備えている。またNIC制御部33では、やはり通信方式指示部343により指示された通信方式を設定するNIC用通信方式設定部(以下単に通信方式設定部という)331と、この通信方式設定部331により設定された通信方式を実行するNIC用通信方式実行部(以下単に通信方式実行部という)332とを備えている。また、本システムでは、ユーザプログラム実行部31による通信要求に係る通信データの情報を取得する通信データ情報取得部35を備えている。そして、ハードウェア性能認識部341が通信データ情報取得部35からの通信情報(データ長)に対して本システムにおけるハードウェアの性能を認識し、メモリ状態認識部342がメモリ36におけるホストメモリ5やHDD7やNICメモリ22、あるいは必要に応じて他のメモリからメモリ状態を認識し、これら認識結果に基づいて通信方式指示部343が通信方式を通信制御部32及びNIC制御部33に指示する。
以上の構成において、第5図を参照しながら実施の形態1の送信時の動作について説明し、第8図を参照しながら実施の形態1の受信時の動作について説明する。実施の形態1は、通信データの長さに基づいて、ホストプロセッサ(ホストCPU)によるI/Oバスのデータ転送性能とネットワークインターフェイスカード(NIC)の持つハードウェアによるデータ転送性能とを比較し、その通信(転送)をNIC(ハードウェア)2を用いて行うか、あるいはホストプロセッサ(CPU4)を用いて行うかについての通信方式について選択設定して取り扱うようにしたものである。さらに、この際、NICメモリ22の空き状態を判断し、例えば送信に係るデータをNICメモリ22に移すか、ホストメモリ5にコピーするかについての通信方式についても適宜判断して取り扱えるようにしている。
A)送信時:データ長が所定長さ以上の場合
ユーザプロセス(ユーザプログラム実行部31)からデータの送信要求があった場合、通信データ情報取得部35は、その送信要求に係るデータの情報を取得し、ハードウェア性能認識部341はこの通信データ情報取得部35から得られるデータ長を判断し、そのデータ長に対するハードウェア性能を認識し通信方式指示部343に出力する。また、メモリ状態認識部342はホストメモリ5における空容量と共にNICメモリ22の空容量に基づいてメモリ状態を認識し、そのメモリの空状態を通信方式指示部343に出力する。
なお、ハードウェア性能認識部341は、第6図に示すようなテーブル情報を有している。このテーブルは複数の異なるデータ長に対するホストのCPU4の転送性能(転送時間)とNIC(以下NICハードウェアという)2の転送性能(転送時間)を表したものである。ハードウェア性能認識部341はこのテーブルにしたがって、送信要求に係るデータがCPU4を用いて転送された場合と、NICを用いて転送された場合との概略所要時間を通信方式指示部343に与える。この場合、ハードウェア性能認識部341が通信方式指示部343に対してどちらの方式を採用するかをテーブルの時間に基づいて(例えば時間コストの短い方を)与えるようにしても良い。なお、通信要求に係るデータ長が所定の長さ以上の場合は、NICを用いて転送を行った方が、時間的に速くデータ転送を行うことができるので、第6図に示すテーブルに代わり、例えば、送信要求に係るデータが所定のデータ長以上であるか否かについて判断を行えるような所定データ長についての情報を格納しておくようにしておき、所定のデータ長以上のデータ送信の場合は、原則的(可能な場合)にNICハードウェアを用いてデータを送信するようハードウェア性能認識部が通信方式指示部に指示を与えるようにしても良い。
また、メモリ状態認識部342は、第7図に示すようなテーブルを有している。このテーブルは、NICメモリ22及びホストメモリ5の空き容量と、空が無い場合に送信に係るデータ長を格納するに必要な空きが生じるまでの推定時間を格納したものであり、推定時間はそれまでの空時間の統計データに基づき、或いはデータ送信中などの場合にそのデータの送出速度に基づいて取得するようにしてある。
通信方式指示部343は、第5図に示すように、(1)データ長が所定の長さ以上の場合であって(S1,Y)、且つNICメモリ22が空いている場合(S2,Y)は、NICハードウェアを用いてその通信要求に係るデータをNICメモリ22に転送する機能(方式)を採用し、通信制御部32及びNIC制御部33の各通信方式設定部321,331にその方式を設定させてそれぞれの通信方式実行部322,332がその通信方式を実行する(S3)。
一方、(2)データ長に対して、NICメモリ22が空いていない場合(S2,N)、例えばデータがホストメモリ5にある場合等で直接ネットワークに出力できる場合(S4,Y)には、NICハードウェアを用いて直接インタフェイスからネットワークに出力する機能(方式)を採用する(S5)ようにしても良いし、或いは、(3)NICメモリが空いていない場合(S2,N)、又は上記機能を採用する場合には、更にネットワークへの出力線が使用中などでネットワークへの直接の出力ができない場合(S4,N)は、通信方式指示部343はメモリ状態認識部342からの認識結果に基づいてホストメモリ5の空状態を判断し(S6)、ホストメモリ5が空いている場合(S6,Y)は、一度そのホストメモリ5へ通信データをコピーする機能(方式)を採用する(S7)。即ち通信方式指示部343は、通信方式設定部321,331にホストメモリ5への通信データのコピー機能を設定させて通信方式実行部322,332がその機能を実行する。なお、図示しないがホストメモリ5へのデータのコピーが行われると、所定の時間間隔で通信機能選択指示部はNICメモリ22の状態或いは直接ネットワークへの出力が可能となったか否かを判断し、(1)又は(2)の方式を実行させる。一方、(4)NICメモリにもホストメモリにも空が無い場合(S6,N)は、これらに空が生じ、或いはネットワークへNICハードウェアを用いて直接出力できるようになるまでの間、即ち上記(1)〜(3)のいずれかの機能が採用可能となるまでの間、通信方式指示部は、ユーザプログラム実行部におけるプロセスを待たせる機能を通信方式設定部に設定させて通信方式実行部がそれを実行する(S8)。
B)送信時:データ長が所定長さ以上でない場合
以上は通信データ長が所定の長さ以上の場合に、NICハードウェア(NIC2)を用いて通信を行う幾つかの機能について説明したが、通信データ長が所定の長さ以上でない場合(S1,N)は、上述したNICハードウェアによるデータ通信に代えて、ホストプロセッサ(ホストCPU4)を用いた通信(転送)が行われるように性能状態認識部34は通信制御部32及びNIC制御部33の通信方式設定部321,331に指示を出す。この場合、ホストプロセッサ(CPU4)が行う機能は前述のNICハードウェアが行う動作と同じである。
すなわち、性能状態認識部34(通信方式指示部343)は、(1)データ長が所定の長さ以上でない場合であって、且つNICメモリ22が空いている場合(S9,Y)は、ホストプロセッサ(CPU4)を用いてその通信要求に係る例えばホストメモリ5またはHDD7にあるデータをNICメモリ22に転送する機能(方式)を採用し、通信制御部32及びNIC制御部33の通信方式設定部321,331にその方式を設定させて通信機能実行部322,332がその通信機能を実行する(S10)。一方、(2)データ長に対して、NICメモリ22が空いていない場合(S9,N)、その通信に係るデータが例えばホストメモリ5にありネットワークへ直接出力できるような場合(S11,Y)は、ホストプロセッサ(CPU4)を用いて直接インタフェイスからネットワークに出力する機能を採用するようにしても良い(S12)。また、(3)NICメモリが空いていない場合、或いは上記機能を採用する場合には、さらにネットワークへの出力線が使用中などでネットワークへの直接の出力ができない場合(S11,N)は、通信方式指示部343はメモリ状態認識部342からの認識結果に基づいてホストメモリ5の空状態を判断し、ホストメモリ5が空いている場合(S13,Y)は、その通信に係るデータが例えばHDD7にあるような場合は、一度そのデータをホストメモリ5へコピーする方式を採用する。即ち通信方式指示部343は、通信方式設定部321,331にホストメモリ5への通信データのコピー機能を設定させて通信方式実行部がその方式を実行する(S14)。ホストメモリ5へのデータのコピーが行われると、例えば所定の時間間隔で通信方式指示部343はNICメモリ22の状態或いは直接ネットワークへの出力が可能となったか否かを判断し、(1)又は(2)の機能を実行させる。一方、(4)NICメモリ22にもホストメモリ7にも空が無い場合(S13,N)は、これらに空が生じ、或いはネットワークへNICハードウェアを用いて直接出力できるようになるまでの間、即ち上記(1)〜(3)のいずれかの機能が採用可能となるまでの間、通信方式指示部343は、ユーザプログラム実行部31におけるプロセスを待たせる方式を通信方式設定部に設定させて通信方式実行部がそれを実行する(S15)。
C)受信時:データ長が所定長さ以上の場合
ユーザプロセス(ユーザプログラム実行部31)からデータの受信要求があった場合、通信データ情報取得部35は、その受信要求に係るデータの情報を取得している。ハードウェア性能認識部341はこの通信データ情報取得部35から得られるデータ長を判断し、そのデータ長に対するハードウェア性能を通信方式指示部343に出力する。また、メモリ状態認識部342はホストメモリ5における空容量と共にNICメモリ22の空容量に基づいてメモリ状態を認識する。そしてメモリの空状態を通信方式指示部343に出力する。
通信方式指示部343は、第8図に示すように、(1)データ長が所定の長さ以上の場合(S21,Y)であって、且つNICメモリ22が空いている場合(S22,Y)は、NICハードウェアを用いてその通信要求に係るデータをNICメモリ22に転送する機能(方式)を採用し、通信制御部32及びNIC制御部33それぞれの通信方式設定部321,331にその方式に対応した設定をさせて、それぞれの通信方式実行部322,332が設定された通信方式を実行する(S23)。一方、(2)データ長に対して、NICメモリが空いていない場合(S22,N)、通信方式指示部343はメモリ状態認識部342からの認識結果に基づいてホストメモリ5の空状態を判断し、ホストメモリ5が空いている場合(S24,Y)は、NICメモリ22に転送することなく、NICハードウェアを用いて、そのデータをホストメモリ5へコピーする方式を採用する。即ち通信方式指示部343は、通信方式設定部321,331にホストメモリ5への通信データのコピー機能を設定させて通信方式実行部322,332がその方式を実行する(S25)。一方、(4)NICメモリ22にもホストメモリ5にも空が無い場合(S24,N)は、これらに空が生じ、受信できるようになるまでの間、即ち上記(1)〜(3)のいずれかの方式が採用可能となるまでの間、通信方式指示部343は、ユーザプログラム実行部31におけるプロセスを待たせる方式を通信方式設定部321,331に設定させて通信方式実行部322,332がそれを実行する(S26)。
D)受信時:データ長が所定長さ以上でない場合
データ長が所定の長さ以上でない場合は、性能状態認識部34は、上述したデータ通信(転送)動作をNICハードウェアに代えてホストプロセッサ(ホストCPU4)により行わせる。
即ち、データ長が所定の長さ以上でなく(S21,N)であって、且つNICメモリ22が空いている場合(S27,Y)は、ホストプロセッサ(CPU4)を用いてその通信要求に係るデータをNICメモリ22に転送する機能(方式)を採用し、通信制御部32及びNIC制御部33それぞれの通信方式設定部321,331にその方式に対応した設定をさせて、それぞれの通信方式実行部322,332が設定された通信方式を実行する(S28)。一方、データ長に対して、NICメモリ22が空いていない場合(S27,N)、通信方式指示部343はメモリ状態認識部342からの認識結果に基づいてホストメモリ5の空状態を判断し、ホストメモリ5が空いている場合(S29,Y)は、ホストのCPU4を用いて、そのデータをホストメモリ5へコピーする方式を採用する。即ち通信方式指示部343は、通信方式設定部321,331にホストメモリ5への通信データのコピー機能を設定させて通信方式実行部322,332がその方式を実行する(S30)。一方、NICメモリ22にもホストメモリ5にも空が無い場合(S29,N)は、これらに空が生じ、受信できるようになるまでの間、即ち上記(1)〜(3)のいずれかの方式が採用可能となるまでの間、通信方式指示部343は、ユーザプログラム実行部31におけるプロセスを待たせる方式を通信方式設定部321,331に設定させて通信方式実行部322,332がそれを実行する(S31)。
実施の形態2.
データ長が所定の長さ以上の場合、若しくは所定の長さ以上でない場合において、上記A)〜C)における(2)(3)(4)等でNICメモリやホストメモリに空きが生じていない場合、通信データ情報取得部から得られる通信データ情報に基づいて、メモリ状態認識部は、それらメモリに空きが生じる時間を推定し、その推定時間だけ、ユーザプロセスを待たせるようにすることもできる。この推定時間は、例えば経験値に基づきNICメモリに空きが無い場合から所定容量の空きが生じるまでの時間を記憶しておいたり、あるいはメモリの空き速度を判断して所定のデータを記憶させるに十分な容量が空く間での時間を推定することによって定められる。ホストメモリについても同様に推定し、ユーザプロセスを待たせることができる。そして、空きが生じた場合に、それぞれ(2)(3)(4)の段階に応じた転送処理を実行する。
実施の形態3.
実施の形態3は送受信ディスクリプタを用いる通信方式を採用する場合の取り扱いについて説明する。実施の形態3は、送受信ディスクリプタに要求数が所定数以上ある場合に、複数纏めて転送することにより、NICハードウェアによる起動回数を減らし、起動オーバヘッドを減らすようにしたものである。NICハードウェアは起動オーバヘッドが大きいので、起動回数を減らすことは、通信効率を高める上で大きな効果をもたらす。第9図は実施の形態3におけるブロック機能図を示す。ここでは、第4図と同一対象物については、同一の符号を付して、ここでの説明を省略する。実施の形態3では、通信制御部32Aに送受信ディスクリプタ40(401,402)が設けられると共に、性能状態認識部34Aに送受信ディスクリプタ要求数の認識部403が設けられ、通信要求があると、送受信ディスクリプタ40の情報に基づいて、ディスクリプタ数を判断し、それが所定数以上の場合は、纏めて通信(転送)を行い、一方所定数以上でない場合は一つずつ通信(転送)を行う。即ち、送信の場合は、送信ディスクリプタ数が所定数以上の場合は、データを纏めてNICメモリ22に転送し、あるいは外部ネットワークに出力するよう通信方式指示部343Aは通信制御部32A及びNIC制御部33の通信方式設定部321,331に方式を設定させ、通信方式実行部322,332がそれを実行する。送信ディスクリプタ数が所定数以上でない場合は、以上の処理を一つずつ行う。この際、送信されるデータ長の長さが所定長さ以上の場合は実施の形態1に準じてNICハードウェアが転送処理を行う。またデータ長の長さが所定長さ以上でない場合は、ホストプロセッサ(CPU4)が転送処理を行う。また受信の場合も同様に受信ディスクリプタ数が所定数以上の場合は、データをまとめてホストメモリ5やHDD7に転送する。送信ディスクリプタ数が所定数以上でない場合は、以上の処理を一つずつ行う。
送信の場合の動作を第10図のフローチャートに示している。これによれば、ディスクリプタ要求数が所定数以上の場合(S41,Y)は全データ長が所定長さ以上であるか否かが判断され、所定長さ以上の場合(S42,Y)はNICハードウェアにより纏めて転送を行う(S43)。全データ長が所定長さ以上でない場合(S42,N)はホストCPU4により全データを纏めて例えばNICメモリ22に送信する(S44)。
一方、ディスクリプタ要求数が所定数以上でない場合(S41,N)は、1つずつデータ転送を行う。この場合、各データ毎にデータ長が判断され、所定長さ以上の場合はNICハードウェアによる転送が行われ、所定長さ以上でない場合はホストのCPU4による転送が行われる(S45)。
以上、本発明の様々な実施の形態を説明したが、本発明は上述した実施の形態に限定されることはなく、本発明の要旨を逸脱しない範囲において応用可能であることはもちろんである。
産業上の利用の可能性
以上説明したように、本発明によれば、様々な計算機環境に応じて通信方式を自動的に選択することができ、通信性能の高速化、ならびにアプリケーション性能の高速化を図ることができるデータ通信システム、データ通信方法、データ通信プログラムを得ることができるという効果を奏する。

Claims (6)

  1. ホストの記憶装置とネットワークとの間で、ネットワークインターフェイスカードを介するデータの通信を行う計算機システムのデータ通信システムであって、
    計算機システムのデータ通信に関する状態として、前記ホストの記憶装置から前記ネットワークへの送信と前記ネットワークから前記ホストの記憶装置への受信とのいずれかを要求する通信要求の対象のデータに対する前記ネットワークインターフェイスカードのメモリの空き状態を認識する性能状態認識部と、
    複数の異なる通信方式についての設定機能を有すると共に前記性能状態認識部により認識された状態に基づいて、前記複数の異なる通信方式から少なくとも一つの通信方式を前記ホストの制御部及び前記ネットワークインターフェイスカードの制御部の少なくともいずれかに設定する通信方式指示部であって、前記性能状態認識部により前記ネットワークインターフェイスカードのメモリに空きがあると認識された場合、前記ネットワークインターフェイスカードの制御部が前記対象のデータを前記ホストの記憶装置または前記ネットワークから前記ネットワークインターフェイスカードのメモリへ転送する通信方式と、前記ホストの制御部が前記対象のデータを前記ホストの記憶装置または前記ネットワークから前記ネットワークインターフェイスカードのメモリへ転送する通信方式とのいずれか一つを、前記対象のデータの長さに基づいて選択して設定する通信方式指示部と、
    を備えてなるデータ通信システム。
  2. 請求項1に記載のデータ通信システムにおいて、
    前記計算機システムのデータ通信に関する状態として、前記対象のデータに対する前記ホストメモリの空き状態と前記ネットワークインターフェイスカードのメモリの空き状態とが含まれ、前記性能状態認識部により前記ネットワークインターフェイスカードのメモリに空きが無いと認識された場合において、前記ホストメモリに空きがあると認識された場合、前記通信方式指示部は、前記ネットワークインターフェイスカードの制御部が前記対象のデータを前記ホストの記憶装置または前記ネットワークから前記ホストメモリへ転送する通信方式と、前記ホストの制御部が前記対象のデータを前記ホストの記憶装置または前記ネットワークから前記ホストのメモリへ転送する通信方式とのいずれか一つを、前記対象のデータの長さに基づいて選択して設定することを特徴とするデータ通信システム。
  3. 請求項1に記載のデータ通信システムにおいて、
    前記計算機システムのデータ通信に関する状態として、前記対象のデータに対する前記ホストメモリの空き状態と前記ネットワークインターフェイスカードのメモリの空き状態とが含まれ、前記性能状態認識部によりネットワークインターフェイスカードのメモリに空きが無いと認識された場合において、更に前記ホストメモリに空きが無いと認識された場合、前記通信方式指示部は、前記通信要求に対する処理実行を待ち状態にすることを設定することを特徴とするデータ通信システム。
  4. 請求項1に記載のデータ通信システムにおいて、
    前記計算機システムのデータ通信に関する状態として、前記対象のデータに対する前記ネットワークインターフェイスカードのメモリの空き状態が含まれ、前記性能状態認識部により前記ネットワークインターフェイスカードのメモリに空きが無いと認識された場合、前記性能状態認識部は、前記ネットワークインターフェイスカードのメモリに空きが生じる時間を推定し、前記通信方式指示部は、前記性能状態認識部により推定された時間だけ前記通信要求に対する処理実行を待ち状態にすることを設定することを特徴とするデータ通信システム。
  5. 請求項1に記載のデータ通信システムにおいて、
    前記ネットワークインターフェイスカードと前記ホストとの間のデータ転送においてバッファディスクリプタを用いる場合に、
    前記計算機システムのデータ通信に関する状態として、前記バッファディスクリプタにおける前記通信要求の数が含まれ、前記性能状態認識部により前記通信要求の数が所定数以上あると認識された場合、前記通信方式指示部は、前記ネットワークインターフェイスカードの制御部が前記通信要求に係るデータを一括して転送させる通信方式と、前記ホストの制御部が前記通信要求に係るデータを一括して転送させる通信方式とのいずれか一つを、前記対象のデータの長さに基づいて選択して設定することを特徴とするデータ通信システム。
  6. 請求項5に記載のデータ通信システムにおいて、
    前記性能状態認識部により前記通信要求の数が所定数以上ないと認識された場合、前記通信方式指示部は、前記ネットワークインターフェイスカードの制御部が前記通信要求に係るデータを一つずつ転送させる通信方式と、前記ホストの制御部が前記通信要求に係るデータを一つずつ転送させる通信方式とのいずれか一つを、前記対象のデータの長さに基づいて選択して設定することを特徴とするデータ通信システム。
JP2004567523A 2003-01-29 2003-01-29 データ通信システムおよびデータ通信方法、データ通信プログラム Expired - Fee Related JP4218034B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/000857 WO2004068356A1 (ja) 2003-01-29 2003-01-29 データ通信システムおよびデータ通信方法、データ通信プログラム

Publications (2)

Publication Number Publication Date
JPWO2004068356A1 JPWO2004068356A1 (ja) 2006-05-25
JP4218034B2 true JP4218034B2 (ja) 2009-02-04

Family

ID=32800808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004567523A Expired - Fee Related JP4218034B2 (ja) 2003-01-29 2003-01-29 データ通信システムおよびデータ通信方法、データ通信プログラム

Country Status (3)

Country Link
US (1) US7529261B2 (ja)
JP (1) JP4218034B2 (ja)
WO (1) WO2004068356A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713139B1 (en) * 2009-10-29 2014-04-29 Hewlett-Packard Development Company, L.P. Automatic fixup of network configuration on system image move
US8954704B2 (en) 2011-08-12 2015-02-10 International Business Machines Corporation Dynamic network adapter memory resizing and bounding for virtual function translation entry storage
US20130042238A1 (en) 2011-08-12 2013-02-14 International Business Machines Corporation Optimized Virtual Function Translation Entry Memory Caching
JP5994067B2 (ja) * 2013-07-31 2016-09-21 サイレックス・テクノロジー株式会社 ネットワーク受信装置
JP6516539B2 (ja) * 2015-04-15 2019-05-22 キヤノン株式会社 通信装置、通信方法、およびプログラム
CN111339005B (zh) * 2020-02-19 2023-09-08 上海新物科技有限公司 一种数据采集方法、设备及计算机可读存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58219847A (ja) * 1982-06-14 1983-12-21 Ricoh Co Ltd 再送要求機能付データ通信方式
US5412782A (en) * 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
GB9311935D0 (en) * 1993-06-09 1993-07-28 Madge Networks Ltd Processor
JPH09288631A (ja) * 1996-04-24 1997-11-04 Hitachi Ltd 高速lan制御方式
US6397316B2 (en) * 1997-07-24 2002-05-28 Intel Corporation System for reducing bus overhead for communication with a network interface
US6978312B2 (en) * 1998-12-18 2005-12-20 Microsoft Corporation Adaptive flow control protocol
US6600721B2 (en) * 1998-12-31 2003-07-29 Nortel Networks Limited End node pacing for QOS and bandwidth management
JP2000235536A (ja) * 1999-02-15 2000-08-29 Fuji Xerox Co Ltd データ通信方式及び装置
US6760781B1 (en) * 2000-02-16 2004-07-06 3Com Corporation Intelligent packet transmission engine
US6874036B2 (en) * 2001-02-08 2005-03-29 International Business Machines Corporation Network management server combining PDUs to minimize bandwidth consumption at data link layer
US7327674B2 (en) * 2002-06-11 2008-02-05 Sun Microsystems, Inc. Prefetching techniques for network interfaces
US7184400B2 (en) * 2002-06-14 2007-02-27 Avaya Technology Corp. Apparatus and method for media parameters selection based on network and host conditions

Also Published As

Publication number Publication date
US20050190703A1 (en) 2005-09-01
US7529261B2 (en) 2009-05-05
WO2004068356A1 (ja) 2004-08-12
JPWO2004068356A1 (ja) 2006-05-25

Similar Documents

Publication Publication Date Title
US5459864A (en) Load balancing, error recovery, and reconfiguration control in a data movement subsystem with cooperating plural queue processors
US6954806B2 (en) Data transfer apparatus and method
US7069373B2 (en) USB endpoint controller flexible memory management
US5937200A (en) Using firmware to enhance the functionality of a controller
US20110289243A1 (en) Communication control device, data communication method and program
US7165124B2 (en) Data transfer control system, electronic instrument, program, and data transfer control method
EP1063594A2 (en) An interrupt controller and a microcomputer incorporating this controller
JP4218034B2 (ja) データ通信システムおよびデータ通信方法、データ通信プログラム
JP5029053B2 (ja) データ通信システム及びデータ通信プログラム
US20160057068A1 (en) System and method for transmitting data embedded into control information
US20080098198A1 (en) Information processing device, data transfer method, and information storage medium
JP2003288317A (ja) 端数ブロックデータ転送を検出し補償するシステムおよび方法
WO2014087654A1 (ja) データ送信装置、データ送信方法、及び記録媒体
US8099531B2 (en) Information processing method and computer program comprising network card wherein a plurality of processors switches use of network card related to setting of resource flag
US7409467B2 (en) Data transfer control system, electronic instrument, and data transfer control method
JP4979206B2 (ja) 情報処理方法および情報処理装置
CN112269649A (zh) 实现主机任务异步执行的方法及装置、系统
US7930438B2 (en) Interrogate processing for complex I/O link
KR101085393B1 (ko) 복수의 프로세스를 멀티태스킹하기 위한 명령 실행 방법 및장치
JP2003108513A (ja) ハードウェア・チェーン・プル
JP4985483B2 (ja) 計算機システム、ネットワークブートロードシステム、及び、そのブートロード方法
US20170277475A1 (en) Control device, storage device, and storage control method
JP2019020851A (ja) デバイス制御装置、デバイス制御方法、およびプログラム
JP6226666B2 (ja) バッチ処理制御プログラム、バッチ処理システム
JP2000040057A (ja) 計算機システム、バッファ制御装置及び転送方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071221

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

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

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4218034

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees