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

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

Info

Publication number
WO2004068356A1
WO2004068356A1 PCT/JP2003/000857 JP0300857W WO2004068356A1 WO 2004068356 A1 WO2004068356 A1 WO 2004068356A1 JP 0300857 W JP0300857 W JP 0300857W WO 2004068356 A1 WO2004068356 A1 WO 2004068356A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
communication
data communication
memory
recognized
Prior art date
Application number
PCT/JP2003/000857
Other languages
English (en)
French (fr)
Inventor
Shinji Sumimoto
Original Assignee
Fujitsu Limited
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 Limited filed Critical Fujitsu Limited
Priority to PCT/JP2003/000857 priority Critical patent/WO2004068356A1/ja
Priority to JP2004567523A priority patent/JP4218034B2/ja
Publication of WO2004068356A1 publication Critical patent/WO2004068356A1/ja
Priority to US11/120,963 priority patent/US7529261B2/en

Links

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

Definitions

  • Data communication system data communication method, data communication program
  • the present invention selects a communication method based on a computer environment when transmitting internal data of a computer to the outside or when receiving external data inside the computer.
  • the present invention relates to a data communication system, a data communication method, and a data communication program that can be used.
  • the optimum communication processing method differs depending on the combination of the nature of the network and the system hardware.
  • hardware that optimizes for a specific network and software that describes the communication procedure are provided as a single unit.
  • communication software and hardware processing are appropriately performed. It was not considered that the method could be changed.
  • the present invention has been made to solve such a problem, and it is possible to automatically select a communication method according to various computer environments, to speed up communication performance, and to improve application performance.
  • the data communication system can increase the speed of 1 1 producing capacity is for data communication method, aimed at obtaining a data communication program. Disclosure of the invention
  • the present invention provides a data communication system of a computer system that performs network communication, comprising: a performance state recognition unit that recognizes at least one of performance or state related to data communication of the computer system; A communication method selection execution unit that has an execution function for different communication methods and sets and executes at least one communication method from among the plurality of different communication methods based on the performance and state by the performance state recognition unit. It is provided.
  • Each communication method can be executed by software or hardware.
  • the communication method selection execution unit is configured by the communication control unit 32 and the NIC control unit 33.
  • the performance related to the data communication includes the data transfer performance of the IZO bus by the host processor (host CPU) and the data transfer performance by the hardware of the network interface card (NIC).
  • host CPU host processor
  • NIC network interface card
  • the state relating to the data communication includes a data length for which a communication request is made, and when the data length is equal to or longer than a predetermined length, the communication method selection execution unit performs data transfer by hardware of the network interface card.
  • the CPU of the network interface card can execute DMA (Direct Memory Access) to transfer data quickly.
  • DMA Direct Memory Access
  • the communication scheme selection execution unit performs data transfer using the iZo bus by the host processor.
  • a table for the data length may be provided, and the communication method for the data length may be selected according to the value of the table.
  • the state relating to the data communication includes an empty state of the memory of the network interface card for the data requested to be communicated, and when the performance state recognition unit recognizes that the memory of the network interface card is empty, The communication method selection executing unit directly transfers the data requested to be communicated to a memory of a network interface card.
  • the states related to the data communication include an empty state of the host memory for data for which communication is requested and an empty state of the memory of the network interface card, and the performance state recognition unit has no empty memory of the network interface card.
  • the communication method selection execution unit copies the data requested to be communicated to the host memory.
  • the states related to the data communication include an empty state of the host memory for data for which communication is requested and an empty state of the memory of the network interface card, and the performance state recognition unit has no empty memory of the network interface card.
  • the communication mode selection execution unit waits for the execution of the process for the communication request.
  • the state relating to the data communication includes an empty state of the memory of the network interface card for data requested to be communicated
  • the active state recognition unit recognizes that there is no empty space in the memory of the network interface card.
  • the performance state recognizing unit estimates the time when a vacancy occurs, and waits for execution of the process for the communication request for the estimated time until the vacancy occurs.
  • the communication method selection execution unit causes the network interface card to collectively transfer the data relating to the requests.
  • the communication method selection executing unit by using the network interface card, Such data is transferred one by one.
  • the present invention also relates to a data communication method of a computer system having network communication with an execution function for a plurality of different communication systems, wherein at least one of the performance or the state of the computer system relating to data communication is provided. And a communication execution step of setting and executing at least one communication method from among the plurality of different communication methods based on the function and state recognized as described above.
  • the present invention relates to a data communication program for causing a computer to execute a data communication method of a computer system having a function of executing a plurality of different communication methods and performing network communication, and relates to data communication of the computer system.
  • a recognition step of recognizing at least one of the performance or the state, and, based on the recognized performance and the state, It is intended to execute a communication execution step of executing by setting at least one communication method from the serial plurality of different communication methods to the computer.
  • the above program can be recorded on a medium which can be read by the computer, and the recording medium includes a portable storage medium such as a CD-ROM, a flexible disk, a DVD disk, a magneto-optical disk, and an IC card.
  • a portable storage medium such as a CD-ROM, a flexible disk, a DVD disk, a magneto-optical disk, and an IC card.
  • FIG. 1 is a hardware configuration diagram in an embodiment of the present invention.
  • FIG. 2 is a hardware configuration diagram showing NIC according to the embodiment of the present invention.
  • FIG. 3 is a software configuration diagram according to the embodiment of the present invention.
  • FIG. 4 is a functional block diagram according to Embodiment 1 of the present invention.
  • FIG. 5 is a flowchart showing an operation at the time of transmission according to Embodiment 1 of the present invention.
  • FIG. 6 is a diagram showing a table included in the hardware performance state recognition unit.
  • FIG. 7 is a diagram showing a table included in the memory state recognition unit.
  • FIG. 8 is a flowchart showing an operation at the time of reception according to Embodiment 1 of the present invention.
  • FIG. 9 is a functional block diagram according to Embodiment 3 of the present invention.
  • FIG. 10 is a flowchart showing the operation of the third embodiment of the present invention.
  • FIG. 11 is a table included in the descriptor request number recognizing unit according to the third embodiment of the present invention. BEST MODE FOR CARRYING OUT THE INVENTION
  • FIG. 1 is a basic hardware configuration diagram of a message communication system according to an embodiment of the present invention
  • FIG. 2 is a configuration diagram showing a NIC
  • FIG. 3 is a software configuration diagram
  • FIG. 4 is a functional block diagram in the first embodiment.
  • this messaging system communicates to host 1 with NIC
  • NIC Network Interface Card 2.
  • a CPU host processor
  • a host memory 5 are connected via a system path 3
  • a hard disk (HDD) 7 is connected via an interface (I / F) 6.
  • the NIC 2 is connected to the network 9 via the interface 6 and the I / O path 8.
  • the NIC 2 is configured by connecting a CPU 21 for NIC, a NIC memory 22 and an I / F 23 for network connection to each other by a system bus 24.
  • the software configuration of the message communication system includes a user program execution unit 31 , a communication control unit (communication library unit) 32,
  • the performance state recognition unit 34 includes a hardware performance recognition unit 341, which recognizes the performance of the hardware, a memory state recognition unit 342, which recognizes the empty state of the memory, and these recognition units 341, 342. And a communication method instructing unit 343 for instructing the communication control unit 32 to set a communication function based on the recognition result.
  • the communication control unit 32 The communication system includes a communication system setting unit 321 for setting the communication system specified by the unit 3 4 3 and a communication system execution unit 3222 for executing the communication system set by the communication system setting unit 3221. ing.
  • the NIC control unit 33 also sets a communication system designated by the communication system instruction unit 343, a communication system setting unit for NIC (hereinafter, simply referred to as a communication system setting unit) 331, and this communication system. It is provided with a NIC communication method execution unit (hereinafter simply referred to as communication method execution unit) 332 that executes the communication method set by the method setting unit 331.
  • the present system includes a communication data information acquisition unit 35 for acquiring information of communication data relating to a communication request by the user program execution unit 31. Then, the hardware performance recognition unit 341 recognizes the performance of the hardware in the present system based on the communication information (data length) from the communication data information acquisition unit 35, and the memory state recognition unit 342 stores the memory status. The memory status is recognized from the host memory 5, HDD 7, NIC memory 22, or other memory if necessary, and the communication method instruction unit 3 4 3 controls the communication method based on the recognition result. Unit 32 and NIC control unit 33 are instructed.
  • an operation at the time of transmission according to the first embodiment will be described with reference to FIG. 5, and an operation at the time of reception according to the first embodiment will be described with reference to FIG.
  • the first embodiment based on the length of communication data, data transfer on the I / O bus by the host processor (host CPU) 1 and data transfer by the hardware of the network interface card (NIC) Comparing with performance, select and set the communication method of whether the communication (transfer) is performed using NIC (hardware) 2 or whether it is performed using the host processor (CPU 4). It is like that. Further, at this time, the vacant state of the NIC memory 22 is determined, and, for example, the communication method for transferring data relating to transmission to the NIC memory 22 is described below. /, Even if it is judged appropriately, it can be handled.
  • the communication data information acquisition unit 35 acquires the data information related to the transmission request, and the hardware performance recognition unit 34 1 This communication data information acquisition unit 35 The data length is determined, the hardware performance for the data length is recognized, and the data is output to the communication system instruction unit 343. Also, the memory status recognition unit 342 recognizes the memory status based on the free space of the NIC memory 222 together with the free space in the host memory 5, and the empty status of the memory is sent to the communication method instruction unit 343. Output.
  • the hardware performance recognizing unit 341 has table information as shown in FIG. This table shows the transfer performance (transfer time) of the host CPU 4 and the transfer performance (transfer time) of NIC (hereinafter referred to as NIC hardware) 2 for a plurality of different data lengths.
  • the hardware performance recognition unit 341 calculates the approximate required time between the case where the data related to the transmission request is transferred using the CPU 4 and the case where the data is transferred using the NIC. It is given to the instruction unit 3 4 3.
  • the hardware performance recognition unit 341 gives the communication method instruction unit 343 which method to use based on the time in the table (for example, the one with the shorter time cost). Is also good.
  • the data transfer using the NIC can speed up the data transfer in a timely manner.
  • information about a predetermined data length is stored so that it can be determined whether or not the data related to the transmission request is longer than a predetermined data length, and data longer than the predetermined data length is stored.
  • the hardware performance recognition unit may instruct the communication method instruction unit to transmit data using the NIC hardware in principle (when possible).
  • the memory state recognition unit 342 has a table as shown in FIG. This table stores the free space in the NIC memory 22 and the host memory 5 and the estimated time until the free space required to store the data length for transmission when there is no free space is estimated. The time is obtained based on the statistical data of the idle time up to that time, or based on the transmission speed of the data during data transmission or the like.
  • the communication method instruction section 344 (1) when the data length is equal to or more than the predetermined length (SI, Y) and when the NIC memory 22 is empty ( S 2, Y) uses NIC hardware to transfer data related to the communication request to the NIC
  • the function (method) for transferring to the memory 22 is searched, and the communication method setting sections 321 and 331 of the communication control section 32 and the NIC control section 33 are set to the communication method execution section 322, 332 executes the communication method (S3).
  • the empty state of the host memory 5 is determined based on the recognition result from the
  • a function (method) of once copying communication data to the host memory 5 is adopted (S7). That is, the communication method instruction unit 343 causes the communication method setting units 321 and 331 to set a function of copying communication data to the host memory 5, and the communication method execution units 322 and 332 execute the function.
  • the communication function selection instructing unit determines whether the state of the NIC memory 22 or the force that enables direct output to the network. Judge, and execute the method of ( 2 ) or ( 3) .
  • the communication method instruction unit causes the communication method setting unit to set the function of causing the user program execution unit to wait for a process.
  • the communication method execution unit executes it (S8).
  • the performance state recognition unit 34 instructs the communication method setting units 321 and 331 of the communication control unit 32 and the NIC control unit 33 so that communication (transfer) using the host processor (host CPU 4) is performed instead of data communication. Put out.
  • the functions performed by the host processor (CPU4) are the same as those performed by the NI C hardware described above.
  • the performance state recognizing unit 34 (the communication method instructing unit 343) performs: (1) When the data length is not equal to or longer than the predetermined length and the NIC memory 22 is empty
  • (S 9, Y) adopts a function (method) for transferring data in the host memory 5 or the HDD 7 to the NIC memory 22 by using the host processor (CPU 4), for example, according to the communication request.
  • 32 and NIC control unit 33 Communication mode setting unit
  • the communication function execution units 322 and 332 execute the communication function by causing the communication methods 321 and 331 to set the method (S10).
  • Y) may adopt a function of outputting to the network directly from the interface using the host processor (CPU4) (S12).
  • the communication method instruction unit 343 determines the empty state of the host memory 5 based on the recognition result from the memory state recognition unit 342. If the host memory 5 is empty (S13, Y), For example, when data is stored in the HDD 7, a method of once copying the data to the host memory 5 is adopted. That is, the communication method instruction unit 3
  • step 43 the communication method setting units 321, 331 set the function of copying communication data to the host memory 5, and the communication method execution unit executes the method (S14).
  • the communication method instruction unit 343 determines the state of the NIC memory 22 or whether or not output to the network is directly possible. ) Or (2).
  • the communication method instruction unit 343 causes the communication method setting unit to set a method for waiting the process in the user program execution unit 31 and the communication method execution unit executes it (S15).
  • the communication data information acquisition unit 35 acquires data information related to the reception request.
  • the hardware performance recognizing unit 341 determines the data length obtained from the communication data information obtaining unit 35 and outputs the hardware performance corresponding to the data length to the communication system instruction unit 343.
  • the memory state recognition unit 342 recognizes the memory state based on the free space in the NIC memory 22 together with the free space in the host memory 5. Then, an empty state of the memory is output to the communication method instruction unit 343.
  • the communication method instruction unit 343 provides (1) when the data length is equal to or longer than the predetermined length (S21, Y) and when the NIC memory 22 is empty (S22 , Y) employs a function (method) for transferring data relating to the communication request to the NIC memory 22 using the NIC hardware, and the communication method setting units 321, 331 of the communication control unit 32 and the NIC control unit 33, respectively. Then, the respective communication method execution units 322 and 332 execute the set communication method (S23). On the other hand, (2) when the NIC memory is not empty for the data length (S22, N), the communication method instruction unit 343 sets the empty state of the host memory 5 based on the recognition result from the memory state recognition unit 342.
  • the communication system instruction unit 343 causes the communication system setting units 321 and 331 to set the function of copying communication data to the host memory 5, and the communication system execution units 322 and 332 execute the system (S25).
  • the communication method instructing unit 343 waits for the process in the user program execution unit 31 until one of the methods of (1) or (2) becomes available.
  • the communication system setting units 321, 331 set the system to be executed, and the communication system execution units 322, 332 execute the system (S26).
  • the performance state recognition unit 34 causes the host processor (host CPU 4) to perform the above-described data communication (transfer) operation instead of the NIC hardware.
  • the communication request is sent to the host processor (CPU4) using the host processor (CPU4).
  • a function (method) for transferring the data according to the above to the NIC memory 22 is adopted, and the communication control section 32 and the NIC control section 33 are made to set the communication mode setting sections 32 1 and 331 corresponding to the mode, respectively.
  • the communication method execution units 322 and 332 execute the set communication method (S28).
  • the communication method instruction unit 343 checks the host memory 5 based on the recognition result from the memory state recognition unit 342.
  • the empty state is determined, and when the host memory 5 is empty (S29, Y), a method of copying the data to the host memory 5 using the host CPU 4 is adopted. That is, the communication system instruction unit 343 causes the communication system setting units 321 and 331 to set the function of copying communication data to the host memory 5, and the communication system execution units 322 and 332 execute the system (S30). On the other hand, if there is no empty space in both the NIC memory 22 and the host memory 5 (S29, N), the above (1) to (3) will be performed immediately until the empty space is generated and reception becomes possible.
  • the communication method instructing unit 343 causes the communication method setting units 321 and 331 to set the method of waiting the process in the user program execution unit 31 and causes the communication method execution units 322 and 331 to set the method. 332 executes it (S31).
  • the memory state recognizing unit estimates the time when the memory becomes free, and executes the user process for the estimated time. You can make them wait.
  • the estimated time is, for example, based on empirical values, storing the time from when there is no free space in the NIC memory to when a predetermined amount of free space is generated, or determining the free speed of memory and storing predetermined data. It is determined by estimating the time between vacancies sufficient to store.
  • the host memory can be estimated in the same way and the user process can wait. Then, when a vacancy occurs, transfer processing corresponding to the steps (2), (3), and (4) is executed.
  • Embodiment 3 describes handling when a ⁇ communication system is adopted using transmission / reception descriptors.
  • the number of requests in the transmission / reception descriptor is equal to or more than a predetermined number
  • the number of activations by the NIC hardware is reduced by collectively transferring a plurality of requests, thereby reducing the activation overhead. Since NIC hardware has a large startup overhead, reducing the number of startups has a significant effect on increasing communication efficiency.
  • FIG. 9 shows a block functional diagram according to the third embodiment.
  • the same objects as those in FIG. 4 are denoted by the same reference numerals, and description thereof will be omitted.
  • the transmission / reception descriptor 40 (401, 402) is provided in the communication control unit 32A, and the recognition unit 4003 of the transmission / reception descriptor request number is provided in the performance state recognition unit 34A.
  • the number of descriptors is determined based on the information of the transmission / reception descriptor 40. If the number of descriptors is equal to or more than a predetermined number, communication (transfer) is performed collectively. Communicate (transfer) one by one.
  • the communication method instruction unit 3 4 3 A transmits the data collectively to the NIC memory 22 or outputs the data to an external network. 2 A and the communication mode setting sections 3 2 1 and 3 3 1 of the NIC control section 3 3 set the mode, and the communication mode execution sections 3 2 2 and 3 3 2 execute it. If the number of transmission descriptors is not a predetermined number or more, the above processing is performed one by one. At this time, the length of the transmitted data If the length is longer than the fixed length, the NIC hardware performs transfer processing according to the first embodiment.
  • the host processor (CPU 4) performs the transfer process. Similarly, in the case of reception, if the number of reception descriptors is equal to or more than a predetermined number, the data is collectively transferred to the host memory 5 or the HDD 7. If the number of transmission descriptors is not a predetermined number or more, the above processing is performed one by one.
  • the number of descriptor requests is less than the predetermined number (S41, N)
  • data transfer is performed one by one. In this case, the data length is determined for each data. If the data length is longer than the predetermined length, the transfer is performed by the NIC hardware. If the data length is not longer than the predetermined length, the transfer is performed by the CPU 4 of the host (S45).
  • the communication method can be automatically selected according to various computer environments, and the communication performance can be increased, and the application performance can be increased.
  • the data communication system, the data communication method, and the data communication program can be obtained.

Abstract

 ネットワーク通信を行う計算機システムのデータ通信システムであって、通信データの長さに基づいて、その通信(転送)をNIC(ハードウェア)2を用いて行うか、あるいはホストプロセッサ(CPU4)を用いて行うかについての通信方式について選択設定して取り扱うようにすると共に、さらに、この際、NICメモリ22の空き状態を判断し、例えば送信に係るデータをNICメモリ22に移すか、ホストメモリ5にコピーするかについての通信方式についても適宜判断して取り扱えるようにした。

Description

データ通信システムおよびデータ通信方法、 データ通信プログラム 技術分野
本発明は、 コンピュータの内部データを外部に送信する際に、 あるいは外部デ ータをコンピュータ内部に受信する際に、 計算機環境に基づいて通信方式を選択 明
することができるデータ通信システムおよびデータ通信方法、 データ通信プログ ラムに関するものである。 食 i
背景技術
近年、 プロセッサ性能とネットワーク性能の向上は目覚ましいものがある。 特 にネットワーク'性能の向上は目覚ましく、 ネットワークハードウェアの†生能を引 き出すためには、 プロセッサによる通信処理ゃデータのコピーを抑えた通信処理 が必要となっている。 しかしながら、 どのような方式を用いることが最良の効率 を得ることになるかについては、 プロセッサの処理能力、 システムバスの転送能 力、 メモリバンド幅転送能力、 I /Oバス転送能力等の影響を受けるため、 これ らの,組合せを総合的に考えなければならなレ、。
従来のネットワーク通信ソフトウェアでは、 ネットワークの性質とシステムハ 一ドウエアとの組合せにより最適な通信処理方式が異なっていた。 このために、 特定のネットワークに最適化するハードウエアや通信手順の記述が一つに定めら れたソフトウェアが備えられ、 ソフトウェア処理性能とハードウェア性能の差に 応じて適宜通信ソフトゥエア及びハードゥヱァ処理の方式を変更可能とすること は考慮されていなかった。
したがって、 従来では、 あるネットワークを用いた計算機システム上で通信性 能 (アプリケーション性能) を最大限に引き出すためには、 そのシステム (シス テムハードウエアとネットワークハードウエアやオペレーティングシステム) 用 に最適化された特定の方式のみを実装する力、 複数の方式を実装して、 計算機シ ステム毎に固定若しくはパラメータを最適化する必要があり、 このため、 計算機 環境に応じて通信方式を適宜自動的に選択することはできず、 したがって常時最 適な通信方式を揉用して高効率で通信を行うことはできなかつた。
本発明は、 そのような問題を解決するためになされたものであって、 様々な計 算機環境に応じて通信方式を自動的に選択することができ、 通信性能の高速化、 ならびにアプリケーション'11生能の高速化を図ることができるデータ通信システム 、 データ通信方法、 データ通信プログラムを得ることを目的とするものである。 発明の開示
上述した目的を達成するため、 本発明は、 ネットワーク通信を行う計算機シス テムのデータ通信システムであって、 計算機システムのデータ通信に関する性能 又は状態の少なくとも一つを認識する性能状態認識部と、 複数の異なる通信方式 についての実行機能を有すると共に前記性能状態認識部による性能と状態に基づ いて、 前記複数の異なる通信方式から少なくとも一つの通信方式を設定して実行 する通信方式選択実行部とを備えてなるものである。 各通信方式はソフトウェア 又はハードウェアにより実行されることができる。
なお、 本発明の実施の形態において、 通信方式選択実行部は、 通信制御部 3 2 と N I C制御部 3 3とにより構成される。
前記データ通信に関する性能としては、 ホストプロセッサ (ホスト C P U) に よる I ZOバスのデータ転送性能とネットワークインターフェイスカード (N I C) の持つハードウェアによるデータ転送性能とが含まれる。
また、 前記データ通信に関する状態としては、 通信要求のあるデータ長が含ま れ、 データ長が所定の長さ以上の場合、 前記通信方式選択実行部は、 ネットヮー クインターフェイスカードの持つハードウェアによるデータ転送を実行する。 こ の場合、 ネットワークインターフェイスカードの C P Uは DMA (Direct Mem ory Access) を実行して、 迅速にデータを転送することができる。
また、 通信要求のあるデータ長が所定の長さ以上でない場合は、 前記通信方式 選択実行部は、 ホストプロセッサによる i Zoバスを用いたデータ転送を行う。 なお、 データ長についてのテーブルを有し、 そのテーブルの値に従って、 データ 長に対する通信方式を選択するようにしても良い。 さらに、 前記データ通信に関する状態として、 通信要求のあるデータに対する ネットワークインターフェイスカードのメモリの空き状態が含まれ、 前記性能状 態認識部によりネットワークインターフェイスカードのメモリに空きがあると認 識された場合、 前記通信方式選択実行部は、 前記通信要求のあるデータをネット ワークインターフェイスカードのメモリに直接転送する。
また、 前記データ通信に関する状態として、 通信要求のあるデータに対するホ ストメモリの空き状態とネットワークインターフェイスカードのメモリの空き状 態とが含まれ、 前記性能状態認識部によりネットワークインターフェイスカード のメモリに空きが無いと認識された場合において、 ホストメモリに空きがあると 認識された場合、 前記通信方式選択実行部は、 前記通信要求のあるデータをホス トメモリにコピーする。
また、 前記データ通信に関する状態として、 通信要求のあるデータに対するホ ストメモリの空き状態とネットワークインターフェイスカードのメモリの空き状 態とが含まれ、 前記性能状態認識部によりネットワークインターフェイスカード のメモリに空きが無いと認識された場合において、 更にホストメモリに空きが無 いと認識された場合、 前記通信方式選択実行部は、 前記通信要求に対する処理実 行を待ち状態にする。
また、 前記データ通信に関する状態として、 通信要求のあるデータに対するネ ットワークインターフェイスカードのメモリの空き状態が含まれ、 前記生能状態 認識部によりネットワークインターフェイスカードのメモリに空きが無いと認識 された場合、 前記性能状態認識部は空きが生じる時間を推定し、 空きが生じるま での推定時間だけ前記通信要求に対する処理実行を待ち状態にする。
さらに、 ネットワークインターフェイスカードとホストとの間のデータ転送に おいてバッファディスクリプタを用いる場合に、 前記データ通信に関する状態と して、 前記バッファディスクリプタにおける要求数が含まれ、 前記性能状態認識 部により、 前記要求数が所定数以上あると認識された場合、 前記通信方式選択実 行部は、 ネットワークインターフェイスカードにより、 要求に係るデータを一括 して転送させる。 この場合、 前記要求数が所定数以上ないと認識された場合、 前 記通信方式選択実行部は、 ネットワークインターフェイスカードにより、 要求に 係るデータを一つずつ転送させる。
また、 本発明は、 複数の異なる通信方式についての実行機能を有してネットヮ 一ク通信を行う計算機システムのデータ通信方法であって、 計算機システムのデ ータ通信に関する性能又は状態の少なくとも一つを認識する認識ステップと、 前 記認識された† 能と状態に基づいて、 前記複数の異なる通信方式から少なくとも 一つの通信方式を設定して実行する通信実行ステップとを備えてなるものである また、 本発明は、 複数の異なる通信方式についての実行機能を有してネットヮ ーク通信を行う計算機システムのデータ通信方法をコンピュータに実行させるデ ータ通信プログラムであって、 計算機システムのデータ通信に関する性能又は状 態の少なくとも一つを認識する認識ステップと、 前記認識された性能と状態に基 づいて、 前記複数の異なる通信方式から少なくとも一つの通信方式を設定して実 行する通信実行ステップとをコンピュータに実行させるものである。
なお、 上記プログラムは、 上記コンピュータにより読取り可能な媒体に記録さ れることができ、 この記録媒体には、 C D— R OMやフレキシブルディスク、 D VDディスク、 光磁気ディスク、 I Cカード等の可搬型記憶媒体や、 コンビユー タプログラムを保持するデータベース、 或いは、 他のコンピュータ並びにそのデ ータベースや、 更に回線上の伝送媒体をも含まれる。 図面の簡単な説明
第 1図は、 本発明の実施の形態におけるハードウエア構成図である。
第 2図は、 本発明の実施の形態における N I Cを示すハードウェア構成図であ る。
第 3図は、'本発明の実施の形態におけるソフトウエア構成図である。
第 4図は、 本発明の実施の形態 1における機能プロック図である。
第 5図は、 本発明の実施の形態 1における送信時の動作を示すフローチヤ一ト である。
第 6図は、 ハードウヱァ性能状態認識部が有するテーブルを示す図である。 第 7図は、 メモリ状態認識部が有するテーブルを示す図である。 第 8図は、 本発明の実施の形態 1における受信時の動作を示すフローチヤ一ト を示す図である。
第 9図は、 本発明の実施の形態 3における機能プロック図である。
第 1 0図は、 本宪明の実施の形態 3の動作を示すフローチャートである。 第 1 1図は、 本発明の実施の形態 3においてディスクリプタ要求数認識部が有 するテーブルである。 発明を実施するための最良の形態
以下、 本発明の実施の形態を図を用いて詳細に説明する。
実施の形態 1 . .
第 1図は本発明の実施の形態におけるメッセージ通信システムの基本ハードウ エア構成図、 第 2図は N I Cを示す構成図、 第 3図はソフトウェア構成図、 第 4 図は実施の形態 1における機能プロック図である。
第 1図に示されるように、 このメッセージ通信システムは、 ホスト 1に N I C
(Network Interface Card) 2を備えている。 ホスト 1においては、 システム パス 3を介して、 C P U (ホストプロセッサ) 4とホストメモリ 5が接続され、 更にインタフェイス (I /F ) 6を介してハードディスク (HD D) 7が接続さ れている。 そして、 N I C 2は、 このインタフェイス 6及ぴ I /Oパス 8を介し てネットワーク 9との間に接続されている。
N I C 2は N I C用の C P U 2 1と N I Cメモリ 2 2とネットワーク接続用 I /F 2 3がシステムバス 2 4により互いに接続されて構成されている。
また、 第 3図に示されるように、 メッセージ通信システムのソフトウェア構成 は、 ユーザプログラム実行部 3 1と、 通信制御部 (通信ライブラリ部) 3 2と、
N I C制御部 3 3と、 性能状態認識部 3 4とを備えて構成されることができる。 性能状態認識部 3 4は、 ハードウエアの性能を認識するハードウヱァ性能認識部 3 4 1と、 メモリの空状態を認識するメモリ状態認識部 3 4 2と、 これら認識部 3 4 1 , 3 4 2の認識結果に基づいて通信機能を通信制御部 3 2に指示して設定 させる通信方式指示部 3 4 3とを備えている。
更に第 4図に示す機能プロック図において、 通信制御部 3 2は、 通信方式指示 部 3 4 3により指示された通信方式を設定する通信方式設定部 3 2 1と、 この通 信方式設定部 3 2 1により設定された通信方式を実行する通信方式実行部 3 2 2 とを備えている。 また N I C制御部 3 3では、 やはり通信方式指示部 3 4 3によ り指示された通信方式を設定する N I C用通信方式設定部 (以下単に通信方式設 定部という) 3 3 1と、 この通信方式設定部 3 3 1により設定された通信方式を 実行する N I C用通信方式実行部 (以下単に通信方式実行部という) 3 3 2とを 備えている。 また、 本システムでは、 ユーザプログラム実行部 3 1による通信要 求に係る通信データの情報を取得する通信データ情報取得部 3 5を備えている。 そして、 ハードウエア性能認識部 3 4 1が通信データ情報取得部 3 5からの通信 情報 (データ長) に対して本システムにおけるハードウェアの性能を認識し、 メ モリ状態認識部 3 4 2がメモリ 3 6におけるホストメモリ 5や HD D 7や N I C メモリ 2 2、 あるいは必要に応じて他のメモリからメモリ状態を認識し、 これら 認識結果に基づいて通信方式指示部 3 4 3が通信方式を通信制御部 3 2及び N I C制御部 3 3に指示する。
以上の構成において、 第 5図を参照しながら実施の形態 1の送信時の動作につ いて説明し、 第 8図を参照しながら実施の形態 1の受信時の動作について説明す る。 実施の形態 1は、 通信データの長さに基づいて、 ホストプロセッサ (ホスト C P U) による I /Oバスのデータ転送' 1·生能とネットワークインターフェイス力 ード (N I C) の持つハードウェアによるデータ転送性能とを比較し、 その通信 (転送) を N I C (ハードウェア) 2を用いて行う力、、 あるいはホストプロセッ サ (C P U 4 ) を用いて行うかについての通信方式について選択設定して取り扱 うようにしたものである。 さらに、 この際、 N I Cメモリ 2 2の空き状態を判断 し、 例えば送信に係るデータを N I Cメモリ 2 2に移す力 ホストメモリ 5にコ ピーするかにっレ、ての通信方式につ!/、ても適宜判断して取り极えるようにしてい る。
A) 送信時:データ長が所定長さ以上の場合
ユーザプロセス (ユーザプログラム実行部 3 ]_ ) からデータの送信要求があつ た場合、 通信データ情報取得部 3 5は、 その送信要求に係るデータの情報を取得 し、 ハードゥエァ性能認識部 3 4 1はこの通信データ情報取得部 3 5から得られ るデータ長を判断し、 そのデータ長に対するハードウエア性能を認識し通信方式 指示部 3 4 3に出力する。 また、 メモリ状態認識部 3 4 2はホストメモリ 5にお ける空容量と共に N I Cメモリ 2 2の空容量に基づいてメモリ状態を認識し、 そ のメモリの空状態を通信方式指示部 3 4 3に出力する。
なお、 ハードウェア性能認識部 3 4 1は、 第 6図に示すようなテーブル情報を 有している。 このテーブルは複数の異なるデータ長に対するホストの C P U 4の 転送性能 (転送時間) と N I C (以下 N I Cハードウェアという) 2の転送性能 (転送時間) を表したものである。 ハードウェア性能認識部 3 4 1はこのテープ ルにしたがって、 送信要求に係るデータが C P U 4を用レ、て転送された場合と、 N I Cを用いて転送された場合との概略所要時間を通信方式指示部 3 4 3に与え る。 この場合、 ハードウエア性能認識部 3 4 1が通信方式指示部 3 4 3に対して どちらの方式を採用するかをテーブルの時間に基づいて (例えば時間コストの短 い方を) 与えるようにしても良い。 なお、 通信要求に係るデータ長が所定の長さ 以上の場合は、 N I Cを用いて転送を行った方が、 時間的に速くデータ転送を行 うことができるので、 第 6図に示すテーブルに代わり、 例えば、 送信要求に係る データが所定のデータ長以上である力否かについて判断を行えるような所定デー タ長についての情報を格納しておくようにしておき、 所定のデータ長以上のデー タ送信の場合は、 原則的 (可能な場合) に N I Cハードウェアを用いてデータを 送信するようハードウエア性能認識部が通信方式指示部に指示を与えるようにし ても良い。
また、 メモリ状態認識部 3 4 2は、 第 7図に示すようなテーブルを有している 。 このテーブルは、 N I Cメモリ 2 2及ぴホストメモリ 5の空き容量と、 空が無 い場合に送信に係るデータ長を格納するに必要な空きが生じるまでの推定時間を 格納したものであり、 推定時間はそれまでの空時間の統計データに基づき、 或い はデータ送信中などの場合にそのデータの送出速度に基づいて取得するようにし てある。
通信方式指示部 3 4 3は、 第 5図に示すように、 ( 1 ) データ長が所定の長さ 以上の場合であって (S I , Y) 、 且つ N I Cメモリ 2 2が空いている場合 ( S 2 , Y) は、 N I Cハードウェアを用いてその通信要求に係るデータを N I Cメ モリ 22に転送する機能 (方式) を探用し、 通信制御部 32及び NI C制御部 3 3の各通信方式設定部 321, 331にその方式を設定させてそれぞれの通信方 式実行部 322, 332がその通信方式を実行する (S 3) 。
一方、 (2) データ長に対して、 N I Cメモリ 22が空いていない場合 (S 2 , N) 、 例えばデータがホストメモリ 5にある場合等で直接ネットワークに出力 できる場合 (S 4, Y) には、 N I Cハードウェアを用いて直接インタフェイス からネットワークに出力する機能 (方式) を採用する (S 5) ようにしても良い し、 或いは、 (3) N I Cメモリが空いていない場合 (S 2, Ν)· 、 又は上記機 能を採用する場合には、 更にネットワークへの出力線が使用中などでネットヮー クへの直接の出力ができない場合 (S4, N) は、 通信方式指示部 343はメモ リ状態認識部 342からの認識結果に基づいてホストメモリ 5の空状態を判断し
(S 6) 、 ホストメモリ 5が空いている場合 (S 6, Y) は、 一度そのホストメ モリ 5へ通信データをコピーする機能 (方式) を採用する (S 7) 。 即ち通信方 式指示部 343は、 通信方式設定部 321, 331にホストメモリ 5への通信デ ータのコピー機能を設定させて通信方式実行部 322, 332がその機能を実行 する。 なお、 図示しないがホストメモリ 5へのデータのコピーが行われると、 所 定の時間間隔で通信機能選択指示部は N I Cメモリ 22の状態或いは直接ネット ワークへの出力が可能となった力否かを判断し、 ) 又は (2) の方式を実行 させる。 一方、 (4) N I Cメモリにもホストメモリにも空が無い場合 (S 6, N) は、 これらに空が生じ、 或いはネットワークへ N I Cハードウェアを用いて 直接出力できるようになるまでの間、 即ち上記 (1) 〜 (3) のいずれかの機能 が採用可能となるまでの間、 通信方式指示部は、 ユーザプログラム実行部におけ るプロセスを待たせる機能を通信方式設定部に設定させて通信方式実行部がそれ を実行する (S 8) 。
B) 送信時:データ長が所定長さ以上でない場合
以上は通信データ長が所定の長さ以上の場合に、 N I Cハードウエア (N I C 2) を用いて通信を行う幾つかの機能について説明したが、 通信データ長が所定 の長さ以上でない場合 (S 1, N) は、 上述した N I Cハードゥヱァによるデー タ通信に代えて、 ホストプロセッサ (ホスト CPU4) を用いた通信 (転送) が 行われるように性能状態認識部 34は通信制御部 32及び N I C制御部 33の通 信方式設定部 321, 331に指示を出す。 この場合、 ホストプロセッサ (CP U4) が行う機能は前述の NI Cハードウェアが行う動作と同じである。
すなわち、 性能状態認識部 34 (通信方式指示部 343) は、 (1) データ長 が所定の長さ以上でない場合であって、 且つ NI Cメモリ 22が空いている場合
(S 9, Y) は、 ホストプロセッサ (CPU4) を用いてその通信要求に係る例 えばホストメモリ 5または HDD 7にあるデータを N I Cメモリ 22に転送する 機能 (方式) を採用し、 通信制御部 32及ぴ N I C制御部 33の通信方式設定部
321, 331にその方式を設定させて通信機能実行部 322, 332がその通 信機能を実行する (S 10) 。 一方、 (2) データ長に対して、 N I Cメモリ 2 2が空いていない場合 (S 9, N) 、 その通信 係るデータが例えばホストメモ リ 5にありネットワークへ直接出力できるような場合 (S 11, Y) は、 ホスト プロセッサ (CPU4) を用いて直接インタフェイスからネットワークに出力す る機能を採用するようにしても良い (S 12) 。 また、 (3) N I Cメモリが空 いていない場合、 或いは上記機能を採用する場合には、 さらにネットワークへの 出力線が使用中などでネットワークへの直接の出力ができない場合 (S 1 1, N ) は、 通信方式指示部 343はメモリ状態認識部 342からの認識結果に基づい てホストメモリ 5の空状態を判断し、 ホストメモリ 5が空いている場合 (S 13 , Y) は、 その通信に係るデータが例えば HDD 7にあるような場合は、 一度そ のデータをホストメモリ 5へコピーする方式を採用する。 即ち通信方式指示部 3
43は、 通信方式設定部 321, 331にホストメモリ 5への通信データのコピ 一機能を設定させて通信方式実行部がその方式を実行する (S 14) 。 ホストメ モリ 5へのデータのコピーが行われると、 例えば所定の時間間隔で通信方式指示 部 343は N I Cメモリ 22の状態或いは直接ネットワークへの出力が可能とな つたか否かを判断し、 (1) 又は (2) の機能を実行させる。 一方、 (4) N I Cメモリ 22にもホストメモリ 7にも空が無い場合 (S 13, N) は、 これらに 空が生じ、 或いはネットワークへ NI Cハードウェアを用いて直接出力できるよ うになるまでの間、 即ち上記 (1) 〜 (3) のいずれかの機能が採用可能となる までの間、 通信方式指示部 343は、 ユーザプログラム実行部 31におけるプロ セスを待たせる方式を通信方式設定部に設定させて通信方式実行部がそれを実行 する (S 15) 。
C) 受信時:データ長が所定長さ以上の場合
ユーザプロセス (ユーザプログラム実行部 31) からデータの受信要求があつ た場合、 通信データ情報取得部 35は、 その受信要求に係るデータの情報を取得 して 、る。 ハードゥエァ性能認識部 341はこの通信データ情報取得部 35から 得られるデータ長を判断し、 そのデータ長に対するハードウエア性能を通信方式 指示部 343に出力する。 また、 メモリ状態認識部 342はホストメモリ 5にお ける空容量と共に NI Cメモリ 22の空容量に基づいてメモリ状態を認識する。 そしてメモリの空状態を通信方式指示部 343に出力する。
通信方式指示部 343は、 第 8図に示すように、 (1) データ長が所定の長さ 以上の場合 (S 21, Y) であって、 且つ N I Cメモリ 22が空いている場合 ( S 22, Y) は、 N I Cハードウェアを用いてその通信要求に係るデータを N I Cメモリ 22に転送する機能 (方式) を採用し、 通信制御部 32及び N I C制御 部 33それぞれの通信方式設定部 321, 331にその方式に対応した設定をさ せて、 それぞれの通信方式実行部 322 , 332が設定された通信方式を実行す る (S 23) 。 一方、 (2) データ長に対して、 N I Cメモリが空いていない場 合 ( S 22, N) 、 通信方式指示部 343はメモリ状態認識部 342からの認識 結果に基づいてホストメモリ 5の空状態を判断し、 ホストメモリ 5が空いている 場合 (S 24, Y) は、 N I Cメモリ 22に転送することなく、 N I Cノヽードウ エアを用いて、 そのデータをホストメモリ 5へコピーする方式を採用する。 即ち 通信方式指示部 343は、 通信方式設定部 321, 331にホストメモリ 5への 通信データのコピー機能を設定させて通信方式実行部 322, 332がその方式 を実行する (S 25) 。 一方、 (4) N I Cメモリ 22にもホストメモリ 5にも 空が無い場合 (S 24, N) は、 これらに空が生じ、 受信できるようになるまで の間、 即ち上記 (1) 〜 (3) のいずれかの方式が揉用可能となるまでの間、 通 信方式指示部 343は、 ユーザプログラム実行部 31におけるプロセスを待たせ る方式を通信方式設定部 321, 331に設定させて通信方式実行部 322, 3 32がそれを実行する (S 26) 。
D) 受信時:データ長が所定長さ以上でない場合
データ長が所定の長さ以上でない場合は、 性能状態認識部 34は、 上述したデ ータ通信 (転送) 動作を N I Cハードウェアに代えてホストプロセッサ (ホスト CPU 4) により行わせる。
即ち、 データ長が所定の長さ以上でなく (S 21, N) であって、 且つ N I C メモリ 22が空いている場合 (S 27, Y) は、 ホストプロセッサ (CPU4) を用いてその通信要求に係るデータを N I Cメモリ 22に転送する機能 (方式) を採用し、 通信制御部 32及ぴ N I C制御部 33それぞれの通信方式設定部 32 1, 331にその方式に対応した設定をさせて、 それぞれの通信方式実行部 32 2, 332が設定された通信方式を実行する (S 28) 。 一方、 データ長に対し て、 N I Cメモリ 22が空いていない場合 (S 27, N) 、 通信方式指示部 34 3はメモリ状態認識部 342力 らの認識結果に基づレ、てホストメモリ 5の空状態 を判断し、 ホストメモリ 5が空いている場合 (S 29, Y) は、 ホストの CPU 4を用いて、 そのデータをホストメモリ 5へコピーする方式を採用する。 即ち通 信方式指示部 343は、 通信方式設定部 321, 331にホストメモリ 5への通 信データのコピー機能を設定させて通信方式実行部 322, 332がその方式を 実行する (S 30) 。 一方、 N I Cメモリ 22にもホストメモリ 5にも空が無い 場合 (S 29, N) は、 これらに空が生じ、 受信できるようになるまでの間、 即 ち上記 (1) 〜 (3) のいずれかの方式が採用可能となるまでの間、 通信方式指 示部 343は、 ユーザプログラム実行部 31におけるプロセスを待たせる方式を 通信方式設定部 321, 331に設定させて通信方式実行部 322, 332がそ れを実行する (S 31) 。 実施の形態 2.
データ長が所定の長さ以上の場合、 若しくは所定の長さ以上でない場合におい て、 上記 A) 〜C) における (2) (3) (4) 等で N I Cメモリやホストメモ リに空きが生じていない場合、 通信データ情報取得部から得られる通信データ情 報に基づいて、 メモリ状態認識部は、 それらメモリに空きが生じる時間を推定し 、 その推定時間だけ、 ユーザプロセスを待たせるようにすることもできる。 この 推定時間は、 例えば経験値に基づき N I Cメモリに空きが無い場合から所定容量 の空きが生じるまでの時間を記憶しておレ、たり、 あるいはメモりの空き速度を判 断し 所定のデータを記憶させるに十分な容量が空く間での時間を推定すること によって定められる。 ホストメモリについても同様に推定し、 ユーザプロセスを 待たせることができる。 そして、 空きが生じた場合に、 それぞれ ( 2 ) ( 3 ) ( 4 ) の段階に応じた転送処理を実行する。 実施の形態 3 .
実施の形態 3は送受信ディスクリプタを用い δ通信方式を採用する場合の取り 扱いについて説明する。 実施の形態 3は、 送受信ディスクリプタに要求数が所定 数以上ある場合に、 複数纏めて転送することにより、 N I Cハードウェアによる 起動回数を減らし、 起動オーバへッドを減らすようにしたものである。 N I Cハ 一ドウ: ァは起動オーバヘッドが大きいので、 起動回数を減らすことは、 通信効 率を高める上で大きな効果をもたらす。 第 9図は実施の形態 3におけるブロック 機能図を示す。 ここでは、 第 4図と同一対象物については、 同一の符号を付して 、 ここでの説明を省略する。 実施の形態 3では、 通信制御部 3 2 Aに送受信ディ スクリプタ 4 0 ( 4 0 1 , 4 0 2 ) が設けられると共に、 性能状態認識部 3 4 A に送受信ディスクリプタ要求数の認識部 4 0 3が設けられ、 通信要求があると、 送受信ディスクリプタ 4 0の情報に基づいて、 ディスクリプタ数を判断し、 それ が所定数以上の場合は、 纏めて通信 (転送) を行い、 一方所定数以上でない場合 は一つずつ通信 (転送) を行う。 即ち、 送信の場合は、 送信ディスクリプタ数が 所定数以上の場合は、 データを纏めて N I Cメモリ 2 2に転送し、 あるいは外部 ネットワークに出力するよう通信方式指示部 3 4 3 Aは通信制御部 3 2 A及び N I C制御部 3 3の通信方式設定部 3 2 1 , 3 3 1に方式を設定させ、 通信方式実 行部 3 2 2, 3 3 2がそれを実行する。 送信ディスクリプタ数が所定数以上でな い場合は、 以上の処理を一つずつ行う。 この際、 送信されるデータ長の長さが所 定長さ以上の場合は実施の形態 1に準じて N I Cハードウエアが転送処理を行う 。 またデータ長の長さが所定長さ以上でない場合は、 ホストプロセッサ (CPU 4) が転送処理を行う。 また受信の場合も同様に受信ディスクリプタ数が所定数 以上の場合は、 データをまとめてホストメモリ 5や HDD 7に転送する。 送信デ イスタリプタ数が所定数以上でない場合は、 以上の処理を一つずつ行う。
送信の場合の動作を第 10図のフローチャートに示している。 これによれば、 ディスクリプタ要求数が所定数以上の場合 (S41, Y) は全データ長が所定長 さ以上である力否かが判断され、 所定長さ以上の場合 (S42, Y) は N I Cハ 一ドウエアにより纏めて転送を行う (S 43) 。 全データ長が所定長さ以上でな い場合 (S42, N) はホスト CPU 4により全データを纏めて例えば N I Cメ モリ 22に送信する (S 44)。
一方、 ディスクリプタ要求数が所定数以上でない場合 (S41, N) は、 1つ ずつデータ転送を行う。 この場合、 各データ毎にデータ長が判断され、 所定長さ 以上の場合は NI Cハードウェアによる転送が行われ、 所定長さ以上でない場合 はホストの CPU4による転送が行われる (S45)。
以上、 本発明の様々な実施の形態を説明したが、 本発明は上述した実施の形態 に限定されることはなく、 本発明の要旨を逸脱しない範囲において応用可能であ ることはもちろんである。 産業上の利用の可能性 、
以上説明したように、 本発明によれば、 様々な計算機環境に応じて通信方式を 自動的に選択することができ、 通信性能の高速化、 ならびにアプリケーション性 能の高速ィヒを図ることができるデータ通信システム、 データ通信方法、 データ通 信プログラムを得ることができるという効果を奏する。

Claims

請 求 の 範 囲
1 . ネットワーク通信を行う計算機システムのデータ通信システムであって、 計算機システムのデータ通信に関する性能又は状態の少なくとも一つを認識す る性能状態認識部と、
複数の異なる通信方式についての実行機能を有すると共に前記性能状態認識部 による性能と状態に基づいて、 前記複数の異なる通信方式から少なくとも一つの 通信方式を設定して実行する通信方式選択実行部と、
を備えてなるデ一タ通信システム。
2 . 請求の範囲第 1項に記載のデータ通信システムにおいて、
前記データ通信に関する性能として、 ホストプロセッサによる I /Oバスのデ ータ転送 能とネットワークインターフェイスカードの持つハードウエアによる データ転送性能を含むことを特徴とするデータ通信システム。
3 . 請求の範囲第 2項に記載のデータ通信システムにおいて、
前記データ通信に関する状態として、 通信要求のあるデータ長が含まれ、 デー タ長が所定の長さ以上の場合、 前記通信方式選択実行部は、 ネットワークインタ 一フェイスカードの持つハードウエアによるデータ転送を実行することを特徴と するデータ通信システム。
4 . 請求の範囲第 3項に記載のデータ通信システムにおいて、
前記データ通信に関する状態として、 通信要求のあるデータ長が含まれ、 デー タ長が所定の長さ以上でない場合、 前記通信方式選択実行部は、 ホストプロセッ サによる I /Oバスを用いたデータ転送を行うことを特徴とするデータ通信シス テム。
5 . 請求の範囲第 1項に記載のデータ通信システムにおいて、
前記データ通信に関する状態として、 通信要求のあるデータに対するネットヮ 一クインターフェイスカードのメモリの空き状態が含まれ、 前記性能状態認識部 によりネットワークインターフェイスカードのメモリに空きがあると認識された 場合、 前記通信方式選択実行部は、 前記通信要求のあるデータをネットワークィ ンターフェイスカードのメモリに直接転送することを特徴とするデータ通信シス テム。
6 . 請求の範囲第 1項に記載のデータ通信システムにおいて、
前記データ通信に関する状態として、 通信要求のあるデータに対するホストメ モリの空き状態とネットワークインターフェイスカードのメモリの空き状態とが 含まれ、 前記' ι·生能状態認識部によりネットワークインターフェイスカードのメモ リに空きが無いと認識された場合において、 ホストメモリに空きがあると認識さ れた場合、 前記通信方式選択実行部は、 前記通信要求のあるデータをホストメモ リにコピーすることを特徴とするデータ通信システム。
7 . 請求の範囲第 5項に記載のデータ通信システムにおいて、
前記データ通信に関する状態として、 通信要求のあるデータに対するホストメ モリの空き状態とネットワークインターフヱイスカードのメモリの空き状態とが 含まれ、 前記性能状態認識部によりネットワークインターフェイスカードのメモ リに空きが無いと認識された場合において、 更にホストメモリに空きが無いと認 識された場合、 前記通信方式選択実行部は、 前記通信要求に対する処理実行を待 ち状態にすることを特徴とするデータ通信システム。
8 . 請求の範囲第 1項に記載のデータ通信システムにおいて、
前記データ通信に関する状態として、 通信要求のあるデータに対するネットヮ 一クインターフェイスカードのメモリの空き状態が含まれ、 前記性能状態認識部 によりネットワークインターフェイスカードのメモリに空きが無いと認識された 場合、 前記性能状態認識部は空きが生じる時間を推定し、 空きが生じるまでの推 定時間だけ前記通信要求に対する処理実行を待ち状態にすることを特徴とするデ ータ通信システム。
9 . 請求の範囲第 1項に記載のデータ通信システムにおいて、 ネットワークインターフェイスカードとホストとの間のデータ転送においてバ ッファディスタリプタを用いる場合に、
前記データ通信に関する状態として、 前記バッファディスクリプタにおける要 求数が含まれ、 前記性能状態認識部により、 前記要求数が所定数以上あると認識 された場合、 前記通信方式選択実行部は、 ネットワークインターフェイスカード により、 要求に係るデータを一括して転送させることを特徴とするデータ通信シ ステム。
1 0 . 請求の範囲第 9項に記載のデータ通信システムにおいて、
前記性能状態認識部により、 前記要求数が所定数以上ないと認識された場合、 前記通信方式選択実行部は、 ネットワークインターフェイスカードにより、 要求 に係るデータを一つずつ転送させることを特徴とするデータ通信システム。
1 1 . 複数の異なる通信方式についての実行機能を有してネットワーク通信を行 う計算機システムのデータ通信方法であつて、
計算機システムのデータ通信に関する性能又は状態の少なくとも一つを認識す る認識ステップと、
前記認識された性能と状態に基づいて、 前記複数の異なる通信方式から少なく とも一つの通信方式を設定して実行する通信実行ステップと、
を備えてなるデータ通信方法。
1 2 . 請求の範囲第 1 1項に記載のデータ通信方法において、
前記認識ステップにおいて認識されるデータ通信に関する性能として、 ホスト プロセッサによる I /Oバスのデニタ転送性能とネットワークインターフェイス カードの持つハードウエアによるデータ転送性能を含むことを特徴とするデータ 通信システム。
1 3. 請求の範囲第 1 2項に記載のデータ通信方法において、 前記認識ステップにおいて認識されるデータ通信に関する状態として、 通信要 求のあるデータ長が含まれ、 データ長が所定の長さ以上の場合、 前記通信実行ス テツプでは、 前記通信方式としてネットワークインターフェイスカードの持つハ 一ドウエアによるデータ転送を実行することを特徴とするデータ通信方法。
1 4. 請求の範囲第 1 2項に記載のデータ通信方法において、
前記認識ステップにおいて認識されるデータ通信に関する状態として、 通信要 求のあるデータ長が含まれ、 データ長が所定の長さ以上でない場合、 前記通信実 行ステップでは、 ホストプロセッサによる I ZOバスを用いたデータ転送を行う ことを特徴とするデータ通信方法。
1 5. 請求の範囲第 1 1項に記載のデータ通信方法において、
前記認識ステップにおいて認識されるデータ通信に関する状態として、 通信要 求のあるデータに対するネットワークインターフェイスカードのメモリの空き状 態が含まれ、 前記認識ステップにおいてネットワークインターフェイスカードの メモリに空きがあると認識された場合、 前記通信実行ステップでは、 前記通信要 求のあるデータをネットワークインターフェイスカードのメモリに直接転送する ことを特徴とするデータ通信方法。
1 6. 請求の範囲第 1 1項に記載のデータ通信方法において、
前記認識ステップにおいて認識されるデータ通信に関する状態として、 通信要 求のあるデータに対するホストメモリの空き状態とネットワークインターフェイ スカードのメモリの空き状態とが含まれ、 前記認識ステップにおいてネットヮー クインターフェイスカードのメモリに空きが無いと認識された場合において、 ホ ストメモリに空きがあると認識された場合、 前記通信実行ステップでは、 前記通 信要求のあるデータをホストメモリにコピーすることを特徴とするデータ通信方 法。
1 7 . 青求の範囲第 1 5項に記載のデータ通信方法において、 前記認識ステップにおいて認識されるデータ通信に関する状態として、 通信要 求のあるデータに対するホストメモリの空き状態とネットワークインターフェイ スカードのメモリの空き状態とが含まれ、 前記認識ステップにおいてネットヮー クインターフェイスカードのメモリに空きが無いと認識された場合において、 更 にホストメモリに空きが無いと認識された場合、 前記通信実行ステップでは、 前 記通信要求に対する処理実行を待ち状態にすることを特徴とするデータ通信方法
11 88 .. 請請求求のの範範囲囲第第 11 11項項にに記記載載ののデデーータタ通通信信方方法法ににおおいいてて、、
前前記記認認識識スステテッッププににおおいいてて認認識識さされれるるデデーータタ通通信信にに関関すするる状状態態ととししてて、、 通通信信要要 求求ののああるるデデーータタにに対対すするるネネッットトワワーーククイインンタターーフフェェイイススカカーードドののメメモモリリのの空空きき状状 態態がが含含ままれれ、、 前前記記認認識識スステテッッププにによよりりネネッットトワワーーククイインンタターーフフェェイイススカカーードドののメメ モモリリにに空空ききがが無無いいとと認認識識さされれたた場場合合、、 空空ききがが生生じじるる時時間間をを推推定定すするる推推定定スステテッッププ をを備備ええ、、 前前記記通通信信実実行行スステテッッププでではは、、 空空ききがが生生じじるるままででのの推推定定時時間間だだけけ前前記記通通信信 要要求求にに対対すするる処処理理実実行行をを待待ちち状状態態ににすするるここととをを特特徴徴ととすするるデデーータタ通通信信方方法法。。
11 99 .. 請請求求のの範範囲囲第第 11 11項項にに記記載載ののデデーータタ通通信信方方法法ににおおいいてて、、
ネネッットトワワーーククイインンタターーフフェェイイススカカーードドととホホスストトととのの間間ののデデーータタ転転送送ににおおいいててババ
前記認識ステップにより認識されるデータ通信に関する状態として、 前記バッ ファディスタリプタにおける要求数が含まれ、 前記認識ステップにおいて前記要 求数が所定数以上あると認識された場合、 前記通信実行ステップでは、 ネットヮ 一クインターフェイスカードにより、 要求に係るデータを一括して転送させるこ とを特徴とするデータ通信方法。
2 0 . 請求の範囲第 1 9項に記載のデータ通信方法において、
前記認識ステップにおレヽて、 前記要求数が所定数以上なレヽと認識された場合、 前記通信実行ステップでは、 ネットワークインターフェイスカードにより、 要求 に係るデータを一つずつ転送させることを特徴とするデータ通信方法。
2 1 . 複数の異なる通信方式についての実行機能を有してネットワーク通信を行 う計算機システムのデータ通信方法をコンピュータに実行させるデータ通信プ口 グラムであって、
計算機システムのデータ通信に関する性能又は状態の少なくとも一つを認識す る認識ステップと、
前記認識された性能と状態に基づ 、て、 前記複数の異なる通信方式から少なく とも一つの通信方式を設定して実行する通信実行ステツプと、
をコンピュータに実行させるデータ通信プログラム。
2 2 . 請求の範囲第 2 1項に記載のデータ通信プログラムにおいて、
前記認識ステップにおいて認識されるデータ通信に関する性能として、 ホスト プロセッサによる Iノ oパスのデータ転送性能とネットワークインターフェイス カードの持つハードウエアによるデータ転送性能を含むことを特徴とするデータ 通信プログラム。
2 3 . 請求の範囲第 2 2項に記載のデータ通信プログラムにおいて、
前記認識ステップにおいて認識されるデータ通信に関する状態として、 通信要 求のあるデータ長が含まれ、 データ長が所定の長さ以上の場合、 前記通信実行ス テツプでは、 前記通信方式としてネットワークインターフェイスカードの持つハ 一ドウエアによるデータ転送をコンピュータに実行させることを特徴とするデー タ通信プログラム。
2 4 . 請求の範囲第 2 2項に記載のデータ通信プログラムにおいて、
前記認識ステップにおいて認識されるデータ通信に関する状態として、 通信要 求のあるデータ長が含まれ、 データ長が所定の長さ以上でない場合、 前記通信実 行ステップでは、 ホストプロセッサによる I /Oパスを用いたデータ転送を行う ことをコンピュータに実行させることを特徴とするデータ通信プログラム。
2 5 . 請求の範囲第 2. 1項に記載のデータ通信プログラムにおいて、
前記認識ステップにおいて認識されるデータ通信に関する状態として、 通信要 求のあるデータに対するネットワークインターフェイスカードのメモリの空き状 態が含まれ、 前記認識ステップにおいてネットワークインターフェイスカードの メモリに空きがあると認識された場合、 前記通信実行ステップでは、 前記通信要 求 あるデータをネットワークインターフェイスカードのメモリに直接転送する ことをコンピュータに実行させることを特徴とするデータ通信プログラム。
2 6 . 請求の範囲第 2 1項に記載のデータ通信プログラムにおいて、
前記認識ステップにおいて認識されるデータ通信に関する状態として、 通信要 求のあるデータに対するホストメモリの空き状態とネットワークインターフェイ スカードのメモリの空き状態とが含まれ、 前記認識ステップにおいてネットヮー クインターフェイスカードのメモリに空きが無いと認識された場合において、 ホ ストメモリに空きがあると認識された場合、 前記通信実行ステップでは、 前記通 信要求のあるデータをホストメモリにコピーすることをコンピュータに実行させ ることを特徴とするデータ通信プロダラム。
2 7. 請求の範囲第 2 5項に記載のデータ通信プログラムにおいて、
前記認識ステップにおいて認識されるデータ通信に関する状態として、 通信要 求のあるデータに対するホストメモリの空き状態とネットワークインターフヱイ スカードのメモリの空き状態とが含まれ、 前記認識ステップにおいてネットヮー クインターフェイスカードのメモリに空きが無 、と認識された場合にお V、て、 更 にホストメモリに空きが無いと認識された場合、 前記通信実行ステップでは、 前 記通信要求に対する処理実行を待ち状態にすることをコンピュータに実行させる ことを特徴とするデータ通信プログラム。
2 8 . 請求の範囲第 2 8項に記載のデータ通信プログラムにおいて、
前記認識ステップにおいて認識されるデータ通信に関する状態として、 通信要 求のあるデータに対するネットワークインターフェイスカードのメモリの空き状 態が含まれ、 前記認識ステップによりネットワークインターフェイスカードのメ モリに空きが無いと認識された場合、 空きが生じる時間を推定する推定ステップ を備え、 前記通信実行ステップでは、 空きが生じるまでの推定時間だけ前記通信 要求に対する処理実行を待ち状態にすることをコンピュータに実行させることを 特徴とするデータ通信プログラム。
2 9 . 請求の範囲第 2 1項に記載のデータ通信プロダラムにおいて、
ネットワークインターフェイスカードとホストとの間のデータ転送においてパ ッファディスタリプタを用いる場合に、
前記認識ステップにより認識されるデータ通信に関する状態として、 前記バッ ファディスタリプタにおける要求数が含まれ、 前記認識ステップにおいて前記要 求数が所定数以上あると認識された場合、 前記通信実行ステップでは、 ネットヮ 一クインターフェイスカードにより、 要求に係るデータを一括して転送させるこ とをコンピュータに実行させることを特徴とするデータ通信プログラム。
3 0 . 請求の範囲第 2 9項に記載のデータ通信プログラムにおいて、
前記認識ステップにおいて、 前記要求数が所定数以上ないと認識された場合、 前記通信実行ステップでは、 ネットワークインターフェイスカードにより、 要求 に係るデータを一つずつ転送させることをコンピュータに実行させることを特徴 とするデータ通信プログラム。
PCT/JP2003/000857 2003-01-29 2003-01-29 データ通信システムおよびデータ通信方法、データ通信プログラム WO2004068356A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2003/000857 WO2004068356A1 (ja) 2003-01-29 2003-01-29 データ通信システムおよびデータ通信方法、データ通信プログラム
JP2004567523A JP4218034B2 (ja) 2003-01-29 2003-01-29 データ通信システムおよびデータ通信方法、データ通信プログラム
US11/120,963 US7529261B2 (en) 2003-01-29 2005-05-04 Data communications method selection by data communication system

Applications Claiming Priority (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/120,963 Continuation US7529261B2 (en) 2003-01-29 2005-05-04 Data communications method selection by data communication system

Publications (1)

Publication Number Publication Date
WO2004068356A1 true WO2004068356A1 (ja) 2004-08-12

Family

ID=32800808

Family Applications (1)

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

Country Status (3)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016206713A (ja) * 2015-04-15 2016-12-08 キヤノン株式会社 通信装置、通信方法、およびプログラム

Families Citing this family (5)

* 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 サイレックス・テクノロジー株式会社 ネットワーク受信装置
CN111339005B (zh) * 2020-02-19 2023-09-08 上海新物科技有限公司 一种数据采集方法、设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09288631A (ja) * 1996-04-24 1997-11-04 Hitachi Ltd 高速lan制御方式
JP2000235536A (ja) * 1999-02-15 2000-08-29 Fuji Xerox Co Ltd データ通信方式及び装置

Family Cites Families (10)

* 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
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09288631A (ja) * 1996-04-24 1997-11-04 Hitachi Ltd 高速lan制御方式
JP2000235536A (ja) * 1999-02-15 2000-08-29 Fuji Xerox Co Ltd データ通信方式及び装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016206713A (ja) * 2015-04-15 2016-12-08 キヤノン株式会社 通信装置、通信方法、およびプログラム

Also Published As

Publication number Publication date
JPWO2004068356A1 (ja) 2006-05-25
US7529261B2 (en) 2009-05-05
US20050190703A1 (en) 2005-09-01
JP4218034B2 (ja) 2009-02-04

Similar Documents

Publication Publication Date Title
US6954806B2 (en) Data transfer apparatus and method
US7069373B2 (en) USB endpoint controller flexible memory management
US7451255B2 (en) Hardware port scheduler (PTS) having register to indicate which of plurality of protocol engines PTS is to support
US6636951B1 (en) Data storage system, data relocation method and recording medium
US11010094B2 (en) Task management method and host for electronic storage device
JPH04314160A (ja) ダイナミックポーリング装置、機械処理方法、コントローラ及びデータ処理システム
US6581119B1 (en) Interrupt controller and a microcomputer incorporating this controller
US7529261B2 (en) Data communications method selection by data communication system
JP5029053B2 (ja) データ通信システム及びデータ通信プログラム
JP3481308B2 (ja) インターフェース装置、データ転送システム及びデータ転送方法
JP2006302065A (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
KR101085393B1 (ko) 복수의 프로세스를 멀티태스킹하기 위한 명령 실행 방법 및장치
CN1578267B (zh) 处理分组以在主机系统的网络上传送的方法、系统及装置
CN111290856A (zh) 数据处理装置和方法
JPH04288638A (ja) コンピュータシステム
JP4089506B2 (ja) ファイル共有システム及びサーバー並びにプログラム
JP3347580B2 (ja) 情報処理装置、及び記憶媒体
JP2000132507A (ja) Scsiプロトコルにおけるコマンド処理方法およびそれに用いる装置
KR102260820B1 (ko) 대칭적 인터페이스 기반 인터럽트 신호 처리 장치 및 방법
JP2000244585A (ja) バスインタフェース回路
JP2002132698A (ja) データ転送制御方法およびその装置
JP2002169699A (ja) 複数の仮想計算機を用いた通信システム
WO1989008886A1 (en) Data exchange between a plurality of processors
JPH10214247A (ja) 外部記憶装置インタフェース

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

WWE Wipo information: entry into national phase

Ref document number: 2004567523

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11120963

Country of ref document: US