JP3933134B2 - Communications system - Google Patents

Communications system Download PDF

Info

Publication number
JP3933134B2
JP3933134B2 JP2004008539A JP2004008539A JP3933134B2 JP 3933134 B2 JP3933134 B2 JP 3933134B2 JP 2004008539 A JP2004008539 A JP 2004008539A JP 2004008539 A JP2004008539 A JP 2004008539A JP 3933134 B2 JP3933134 B2 JP 3933134B2
Authority
JP
Japan
Prior art keywords
reception
packet
data
transmission
command
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
JP2004008539A
Other languages
Japanese (ja)
Other versions
JP2005204089A (en
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2004008539A priority Critical patent/JP3933134B2/en
Publication of JP2005204089A publication Critical patent/JP2005204089A/en
Application granted granted Critical
Publication of JP3933134B2 publication Critical patent/JP3933134B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、パケット通信を行う通信システムに関する。   The present invention relates to a communication system that performs packet communication.

複数の電子計算機が交換網を介して通信する通信システムが知られている。前記通信システム(第1従来例の通信システム)は、交換網と、複数の電子計算機とを具備し、複数の電子計算機の各々は、交換網に接続された通信装置と、演算を行う演算装置と、送信バッファと、受信バッファとを備えている。第1従来例の通信システムは、通信処理として、演算装置が直接データ転送を行うのではなく、演算装置に備えられたプロセスからの命令により通信装置がデータ転送を行うため、演算装置による通信処理の負荷を軽減する。前記第1従来例の通信システムは並列計算機システムとして使用されている。   A communication system in which a plurality of electronic computers communicate via an exchange network is known. The communication system (the communication system of the first conventional example) includes an exchange network and a plurality of electronic computers, and each of the plurality of electronic computers includes a communication device connected to the exchange network and an arithmetic device that performs an operation. A transmission buffer and a reception buffer. In the communication system of the first conventional example, as the communication processing, the arithmetic device does not directly transfer data, but the communication device performs data transfer according to a command from a process provided in the arithmetic device. To reduce the load. The communication system of the first conventional example is used as a parallel computer system.

しかし、前記第1従来例の通信システムは以下のような問題点がある。
送信バッファと受信バッファとが単一である場合、通信装置が通信を行った結果、受信バッファのフルにより後続の受信データが破棄される。受信バッファのフルとは、相手の電子計算機からのパケット(受信パケット)に含まれるデータ(受信データ)の長さが、受信バッファ長(受信バッファが保持することができるデータの長さ)を超えることを表す。
演算装置に備えられた複数のプロセスが同時に同一の通信装置を利用して通信する場合、送信時に送信データを通信装置の送信バッファにコピーし、受信時には通信装置の受信バッファから受信データをプロセスの受信バッファにコピーするため、2度のコピーによるオーバヘッドが発生する。
However, the communication system of the first conventional example has the following problems.
When the transmission buffer and the reception buffer are single, as a result of communication performed by the communication device, subsequent reception data is discarded due to the reception buffer being full. The reception buffer full means that the length of data (reception data) included in the packet (reception packet) from the partner computer exceeds the reception buffer length (the length of data that the reception buffer can hold). Represents that.
When a plurality of processes provided in an arithmetic device simultaneously communicate using the same communication device, transmission data is copied to the transmission buffer of the communication device at the time of transmission, and received data is received from the reception buffer of the communication device at the time of reception. Since copying is performed to the reception buffer, overhead caused by copying twice occurs.

第1従来例の通信システムの問題を解決するため、プロセスがバッファのコピーなしに通信を行う、いわゆる、ゼロ・コピー通信を行う通信システム(第2従来例の通信システム)が知られている。前記第2従来例の通信システムは、オーバヘッドを低減する。第2従来例の通信システムでは、通信装置がプロセス毎に送信バッファおよび受信バッファを備えている。通信装置を利用するプロセスが送信データへのポインタを通信装置に通知し、通信装置はプロセスから通知されたポインタからデータを取りだし、コピーする事なく交換網にデータを送信する。データを交換網から受信した通信装置は、あらかじめプロセスから通知されている受信バッファにデータを書き込む。これにより、第2従来例の通信システムでは、受信時に通信装置専用の受信バッファからプロセスの受信バッファへのコピーにより発生するオーバヘッドを回避することができる。前記通信装置への受信バッファの登録(準備)を受信命令の発行と呼び、プロセスが新規にデータの受信待ちを実行するたびに、通信装置に受信命令が発行される。受信命令が発行されたときに、通信装置は、受信バッファを使用することができる。   In order to solve the problem of the communication system of the first conventional example, there is known a communication system that performs so-called zero copy communication (communication of the second conventional example) in which a process communicates without copying a buffer. The communication system of the second conventional example reduces overhead. In the communication system of the second conventional example, the communication device includes a transmission buffer and a reception buffer for each process. A process using the communication device notifies the communication device of a pointer to the transmission data, and the communication device extracts the data from the pointer notified from the process and transmits the data to the switching network without copying. The communication device that has received the data from the exchange network writes the data in the reception buffer that has been notified in advance by the process. Thereby, in the communication system of the second conventional example, it is possible to avoid the overhead caused by copying from the reception buffer dedicated to the communication device to the reception buffer of the process at the time of reception. Registration (preparation) of the reception buffer to the communication device is called issuance of a reception command, and a reception command is issued to the communication device each time a process newly waits for reception of data. When the reception command is issued, the communication device can use the reception buffer.

第1従来例の通信システム、第2従来例の通信システムを含む従来の通信システムに関連する技術が、特開平8−180001号公報(特許文献1)、特開2002−229963号公報(特許文献2)、特開平4−116747号公報(特許文献3)、特開2002−207676号公報(特許文献4)、特開2000−322309号公報(特許文献5)、特開2001−282707号公報(特許文献6)、特開平9−270821号公報(特許文献7)に開示されている。
特に、特許文献1に記載された通信方式(第3従来例の通信システム)では、プロセスが通信装置にデータ転送を指示し、プロセスの送信バッファから直接宛先のプロセスの受信バッファにデータを書き込む通信装置が開示されている。宛先のプロセスとは、相手先の電子計算機である宛先計算機のプロセスである。
特許文献1に示されるように、第3従来例の通信システムでは、ゼロコピー通信を行う。第3従来例の通信システムでは、送信側のプロセスが通信装置に送信バッファを登録し、受信側のプロセスが通信装置に受信バッファを登録し、通信装置が送信バッファから直接受信バッファにデータを転送することにより、通信時間を短縮する。
Techniques related to the conventional communication system including the communication system of the first conventional example and the communication system of the second conventional example are disclosed in JP-A-8-180001 (Patent Document 1) and JP-A-2002-229963 (Patent Document). 2), JP-A-4-116747 (Patent Document 3), JP-A 2002-207676 (Patent Document 4), JP-A 2000-322309 (Patent Document 5), JP-A-2001-282707 ( Patent Document 6) and Japanese Patent Laid-Open No. 9-270821 (Patent Document 7).
In particular, in the communication method described in Patent Document 1 (third conventional communication system), a process instructs a communication device to transfer data, and data is directly written from a process transmission buffer to a destination process reception buffer. An apparatus is disclosed. The destination process is a process of a destination computer that is a partner electronic computer.
As shown in Patent Document 1, the communication system of the third conventional example performs zero copy communication. In the communication system of the third conventional example, the transmitting process registers the transmission buffer in the communication device, the receiving process registers the reception buffer in the communication device, and the communication device transfers the data directly from the transmission buffer to the receiving buffer. By doing so, the communication time is shortened.

ただし、第3従来例の通信システムでは、データ転送の通信相手(宛先計算機)が必ず受信バッファあるいは、受信パケットの処理を定義していることが必要で、予め通信する相互のプロセス間で通信し、次のデータ転送により受信側での処理を準備しておく必要がある。
また、一般的なMPI(Message Passing Interface)ライブラリを使用し、直接通信相手のメモリに書き込むデータ転送機能を有する通信装置の動作は下記の様になる。
プロセス間で制御通信用回線を開く(ステップ1)。
送り元の電子計算機(送り元計算機)の送信側のプロセス(送信プロセス)は、前記通信装置から制御通信用回線を介して(経由して)、送信データを送信するための送信要求を宛先計算機の受信側のプロセス(受信プロセス)に通知する(ステップ2)。
宛先計算機の受信プロセスは、前記通信装置により受信された送信要求を確認し、前記受信バッファを前記通信装置に登録する(受信命令を発行する)(ステップ3)。
宛先計算機の受信プロセスは、前記通信装置から制御通信用回線を経由して、受信準備完了通知を送り元計算機の送信プロセスに通知する(ステップ4)。
送り元計算機の送信プロセスは、前記通信装置により受信された受信準備完了通知を確認し、データを転送する(ステップ5)。
ステップ1から5に示したように、第3従来例の通信システムでは、宛先計算機の受信バッファが未登録であるときにデータ転送が行われないように、宛先計算機の受信プロセスが前記受信バッファを準備するために、データ転送以外の通信(送信要求、受信準備完了通知)をした後に、実際のデータ転送が行われる。
However, in the communication system of the third conventional example, it is necessary that the communication partner (destination computer) of the data transfer always defines the processing of the reception buffer or the reception packet, and the communication is performed between the processes that communicate in advance. It is necessary to prepare the processing on the receiving side by the next data transfer.
In addition, the operation of a communication apparatus using a general MPI (Message Passing Interface) library and having a data transfer function for directly writing to a communication partner's memory is as follows.
A control communication line is opened between processes (step 1).
A transmission-side process (transmission process) of a transmission source electronic computer (transmission source computer) sends a transmission request for transmitting transmission data from the communication device via a control communication line (destination computer). To the process on the receiving side (reception process) (step 2).
The reception process of the destination computer confirms the transmission request received by the communication device, and registers the reception buffer in the communication device (issues a reception command) (step 3).
The reception process of the destination computer notifies the transmission process of the transmission source computer of the reception preparation completion notification from the communication device via the control communication line (step 4).
The transmission process of the transmission source computer confirms the reception preparation completion notification received by the communication device and transfers the data (step 5).
As shown in steps 1 to 5, in the communication system of the third conventional example, the reception process of the destination computer uses the reception buffer so that data transfer is not performed when the reception buffer of the destination computer is unregistered. In order to prepare, actual data transfer is performed after communication other than data transfer (transmission request, reception preparation completion notification).

従来の通信システム(第2従来例の通信システム、第3従来例の通信システム)において、送り元計算機がデータ転送を開始する以前に、宛先計算機の受信プロセスは、前記受信バッファを前記通信装置に登録しなければならない。宛先計算機の受信バッファを前記通信装置に事前に登録するために、宛先計算機の受信プロセスは前記通信装置に対して事前に受信命令を発行する。事前に受信命令を発行するためには、送り元計算機の送信プロセスと宛先計算機の受信プロセスとの間において、データ転送(データ通信)を行う前に、受信バッファを準備(登録)するための事前制御通信が行われなければならない。
事前制御通信としては、送り元計算機、宛先計算機に専用の制御バッファを設け、送り元計算機と宛先計算機とは制御バッファを介した通信により相互の同期をとり、送り元計算機がデータを送信する以前に、宛先計算機の受信プロセスが受信命令を発行しておくことが一般的である。すなわち、事前制御通信によって、送り元計算機が、宛先計算機の受信バッファを準備(登録)するための要求を宛先計算機に行い、宛先計算機の受信プロセスが、前記受信バッファを準備した後に、データ転送の要求を送り元計算機に行う。このように、従来の通信システムでは、データ転送(データ転送の開始から完了)を行う前に事前制御通信が行われるために、事前制御通信を開始してからデータ転送の完了までのレイテンシ(実行時間)データ転送の開始から完了までのレイテンシが大きくなる問題がある。
In the conventional communication system (the communication system of the second conventional example, the communication system of the third conventional example), before the transmission source computer starts data transfer, the reception process of the destination computer sets the reception buffer to the communication device. Must register. In order to register the reception buffer of the destination computer in the communication device in advance, the reception process of the destination computer issues a reception command to the communication device in advance. In order to issue a reception command in advance, it is necessary to prepare (register) a reception buffer before performing data transfer (data communication) between the transmission process of the source computer and the reception process of the destination computer. Control communication must take place.
As pre-control communication, a dedicated control buffer is provided in the source computer and destination computer, and the source computer and destination computer are synchronized with each other via communication via the control buffer, before the source computer sends data. In general, the reception process of the destination computer issues a reception command. That is, by the prior control communication, the source computer makes a request for preparing (registering) the reception buffer of the destination computer to the destination computer, and after the reception process of the destination computer prepares the reception buffer, Make a request to the sending computer. As described above, in the conventional communication system, since the prior control communication is performed before the data transfer (from the start of the data transfer to the completion), the latency from the start of the prior control communication to the completion of the data transfer (execution) Time) There is a problem that the latency from the start to the completion of data transfer increases.

特開平8−180001号公報JP-A-8-180001 特開2002−229963号公報JP 2002-229963 A 特開平4−116747号公報JP-A-4-116747 特開2002−207676号公報JP 2002-207676 A 特開2000−322309号公報JP 2000-322309 A 特開2001−282707号公報JP 2001-282707 A 特開平9−270821号公報JP-A-9-270821

計算機の演算性能が急激に向上しているにもかかわらず、計算機間の通信性能の向上は緩慢であるため、複数の計算機により構成され、計算機同士が相互に通信するシステムにおいて、計算機の演算性能よりも先に、通信速度がボトルネックとなり、システム性能を制限することが多くなっている。特に、演算処理を複数の計算機に分散し、相互に同期して動作している場合、データを相手に送信し、相手の計算機がデータを受信するまでは演算処理を実施できないため、演算処理性能が低下する。すなわち、通信が相手に届くまでの時間であるレイテンシがシステムの演算性能に大きな影響を与えている。
したがって、システム性能を向上させるためには、計算機がより長い時間演算処理を実行するため、通信のレイテンシを短縮することが必要である。
さらに、通信する複数の装置間における通信の確認のための事前通信、受信完了確認通信の時間が大きいため、データ通信以外の事前通信、受信完了確認等の通信を削除することが必要となる。
本発明の目的は、事前制御通信回数を削減、あるいは全く行わずにデータ転送を行うことができる通信システムを提供することにより、通信システムのレイテンシを低減することにある。
Despite the rapid improvement in computing performance of computers, the improvement in communication performance between computers is slow, so the computing performance of computers in a system consisting of multiple computers and communicating with each other. Prior to this, the communication speed becomes a bottleneck, which often limits system performance. In particular, when computation processing is distributed to multiple computers and operating in synchronization with each other, computation processing performance cannot be performed until data is transmitted to the other party and the other computer receives the data. Decreases. That is, the latency, which is the time until communication reaches the other party, has a great influence on the computing performance of the system.
Therefore, in order to improve the system performance, it is necessary to shorten the communication latency because the computer executes the arithmetic processing for a longer time.
Furthermore, since the time for prior communication for confirmation of communication between a plurality of communicating devices and reception completion confirmation communication is large, it is necessary to delete communication other than prior communication other than data communication, such as reception completion confirmation.
An object of the present invention is to reduce the latency of a communication system by providing a communication system that can reduce the number of times of prior control communication or perform data transfer without performing the control at all.

以下に、[発明を実施するための最良の形態]で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]の記載との対応関係を明らかにするために付加されたものであるが、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。   Hereinafter, means for solving the problem will be described using the numbers and symbols used in [Best Mode for Carrying Out the Invention]. These numbers and symbols are added to clarify the correspondence between the description of [Claims] and the description of [Best Mode for Carrying Out the Invention]. It should not be used to interpret the technical scope of the invention described in “

本発明の通信システムは、ネットワークに接続された第1電子計算機と第2電子計算機とを具備する。ネットワークは、実施の形態で説明される交換網(400)に対応する。第1電子計算機は、例えば、実施の形態で説明される電子計算機(100−2)であり、第1電子計算機は、例えば、実施の形態で説明される電子計算機(100−1)である。
電子計算機(100−1)と電子計算機(100−2)は、通信装置(300)と、演算装置(110)と、受信命令保持部(212)と、受信バッファ(222)と、保持バッファとを備えている。保持バッファは、実施の形態で説明される遠隔命令FIFO(213)である。演算装置(110)は、受信プロセス(111)を備えている。受信命令保持部は、実施の形態で説明される受信命令FIFO(212)である。受信プロセス(111)は、受信命令(510)を発行して受信命令FIFO(212)に登録する。
電子計算機(100−2)の通信装置(300)は、第1受信処理部と、第2受信処理部と、送信処理部とを備えている。第1受信処理部と第2受信処理部と送信処理部とは、実施の形態で説明されるコンテキスト処理部(341)である。
電子計算機(100−1)は、電子計算機(100−2)の受信命令FIFO(212)に受信命令(510)が登録されているか否かに関わらず、データを含むパケットを電子計算機(100−2)に転送する。前記パケットは、実施の形態で説明されるデータ送信パケット(600)である。
The communication system of the present invention comprises a first electronic computer and a second electronic computer connected to a network. The network corresponds to the switching network (400) described in the embodiment. The first electronic computer is, for example, the electronic computer (100-2) described in the embodiment, and the first electronic computer is, for example, the electronic computer (100-1) described in the embodiment.
The electronic computer (100-1) and the electronic computer (100-2) include a communication device (300), an arithmetic device (110), a reception command holding unit (212), a reception buffer (222), a holding buffer, It has. The holding buffer is a remote command FIFO (213) described in the embodiment. The arithmetic unit (110) includes a reception process (111). The reception command holding unit is a reception command FIFO (212) described in the embodiment. The reception process (111) issues a reception command (510) and registers it in the reception command FIFO (212).
The communication device (300) of the electronic computer (100-2) includes a first reception processing unit, a second reception processing unit, and a transmission processing unit. The first reception processing unit, the second reception processing unit, and the transmission processing unit are a context processing unit (341) described in the embodiment.
The electronic computer (100-1) transmits a packet including data to the electronic computer (100-) regardless of whether or not the reception command (510) is registered in the reception command FIFO (212) of the electronic computer (100-2). Transfer to 2). The packet is a data transmission packet (600) described in the embodiment.

受信命令(510)が電子計算機(100−2)の受信命令FIFO(212)に登録されているときに、電子計算機(100−2)がデータ送信パケット(600)を受け取った場合、電子計算機(100−2)のコンテキスト処理部(341)は、データ送信パケット(600)のデータを受信バッファ(222)に書き込む。
このように、本発明の通信システムによれば、電子計算機(100−1)は、電子計算機(100−2)に対して、従来の技術で説明されたような事前制御通信を行わずに、データ送信パケット(600)を転送することができる(データ転送を行うことができる)。
本発明の通信システムによれば、電子計算機(100−1)が事前制御通信を行わずにデータ転送を行うため、受信命令(510)が電子計算機(100−2)の受信命令FIFO(212)に登録されている場合、データ転送の開始から完了までのレイテンシ(実行時間)は、従来の技術で説明されたような事前制御通信を開始してからデータ転送の完了までのレイテンシ(実行時間)よりも低減する。
When the reception command (510) is registered in the reception command FIFO (212) of the electronic computer (100-2) and the electronic computer (100-2) receives the data transmission packet (600), the electronic computer ( The context processing unit (341) of 100-2) writes the data of the data transmission packet (600) in the reception buffer (222).
As described above, according to the communication system of the present invention, the electronic computer (100-1) does not perform pre-control communication as described in the prior art on the electronic computer (100-2). The data transmission packet (600) can be transferred (data transfer can be performed).
According to the communication system of the present invention, since the electronic computer (100-1) performs data transfer without performing pre-control communication, the reception command (510) is the reception command FIFO (212) of the electronic computer (100-2). , The latency (execution time) from the start to the completion of the data transfer is the latency (execution time) from the start of the pre-control communication as described in the prior art to the completion of the data transfer. Less than.

受信命令(510)が電子計算機(100−2)の受信命令FIFO(212)に登録されていないときに、電子計算機(100−2)がデータ送信パケット(600)を受け取った場合、電子計算機(100−2)のコンテキスト処理部(341)は、データ送信パケット(600)の転送を中断するための中断要求(610)を電子計算機(100−1)に送信すると共に、データ送信パケット(600)に関する転送情報を遠隔命令FIFO(213)に登録する。転送情報とは、実施の形態で説明される遠隔命令(640)であり、遠隔命令(640)には、データ送信パケット(600)のヘッダの一部が記載される。中断要求とは、実施の形態で説明される中断要求パケット(610)である。中断要求を受け取った電子計算機(100−1)は、電子計算機(100−2)からの中断要求パケット(610)に応じて、データ送信パケット(600)の転送を中断する。
このように、本発明の通信システムによれば、電子計算機(100−2)が受け取れない無駄なデータ転送を早期に抑止し、交換網(400)を流れる無駄なデータを低減することができる。
If the electronic computer (100-2) receives the data transmission packet (600) when the reception command (510) is not registered in the reception command FIFO (212) of the electronic computer (100-2), the electronic computer ( The context processing unit (341) of 100-2) transmits an interruption request (610) for interrupting the transfer of the data transmission packet (600) to the electronic computer (100-1) and also transmits the data transmission packet (600). The transfer information regarding is registered in the remote command FIFO (213). The transfer information is a remote command (640) described in the embodiment, and the remote command (640) describes a part of the header of the data transmission packet (600). The interruption request is an interruption request packet (610) described in the embodiment. The computer (100-1) that has received the suspension request suspends the transfer of the data transmission packet (600) in response to the suspension request packet (610) from the computer (100-2).
As described above, according to the communication system of the present invention, useless data transfer that cannot be received by the electronic computer (100-2) can be prevented at an early stage, and useless data flowing through the exchange network (400) can be reduced.

電子計算機(100−2)の受信プロセス(111)によって次に発行された受信命令(510)が電子計算機(100−2)の受信命令FIFO(212)に登録されているときに、電子計算機(100−2)がデータ送信パケット(600)を受け取った場合、電子計算機(100−2)のコンテキスト処理部(341)は、遠隔命令FIFO(213)に登録された遠隔命令(640)を参照して、中断されたデータ送信パケット(600)の転送を再開するための再開要求を電子計算機(100−1)に送信する。再開要求とは、実施の形態で説明される再開要求パケット(630)である。再開要求パケットを受け取った電子計算機(100−1)は、電子計算機(100−2)からの再開要求パケット(630)に応じて、電子計算機(100−2)に対してデータ送信パケット(600)の転送を再開する(データ転送を行う)。
このように、本発明の通信システムによれば、電子計算機(100−1)は、電子計算機(100−2)が受け取れないデータのみを再度転送すればよいため、電子計算機(100−2)に対して、従来の技術で説明されたような事前制御通信を行わずに、データ送信パケット(600)を転送することができる(データ転送を行うことができる)。
When the reception command (510) issued next by the reception process (111) of the electronic computer (100-2) is registered in the reception command FIFO (212) of the electronic computer (100-2), the electronic computer ( 100-2) receives the data transmission packet (600), the context processing unit (341) of the electronic computer (100-2) refers to the remote command (640) registered in the remote command FIFO (213). Then, a restart request for restarting the transfer of the interrupted data transmission packet (600) is transmitted to the electronic computer (100-1). The restart request is a restart request packet (630) described in the embodiment. The computer (100-1) that has received the restart request packet sends a data transmission packet (600) to the electronic computer (100-2) in response to the restart request packet (630) from the computer (100-2). Transfer is resumed (data transfer is performed).
As described above, according to the communication system of the present invention, the electronic computer (100-1) only needs to transfer only data that cannot be received by the electronic computer (100-2) again. On the other hand, the data transmission packet (600) can be transferred (data transfer can be performed) without performing the prior control communication as described in the prior art.

電子計算機(100−2)の通信装置(300)は、第3受信処理部を更に備えている。第3受信処理部は、上記のコンテキスト処理部(341)である。
電子計算機(100−2)がデータ送信パケット(600)を受け取ったときに、受信バッファ(222)に書き込まれるデータ送信パケット(600)のデータのデータ長が、受信バッファ(222)が保持することができるデータのデータ長を超える場合、電子計算機(100−2)のコンテキスト処理部(341)は、中断要求パケット(610)を電子計算機(100−1)に送信すると共に、遠隔命令(640)を作成し、電子計算機(100−2)の遠隔命令FIFO(213)に登録する。
遠隔命令(640)と再開要求パケット(630)は、電子計算機(100−1)からのデータ送信パケット(600)のデータ中の、受信バッファ(222)に書き込まれたデータのデータ長(受信済みデータ長)を含ませた場合、再開要求パケット(630)は、電子計算機(100−1)からのデータ送信パケット(600)のデータのうち、受信バッファ(222)に書き込まれたデータ以外のデータの転送を要求するための情報(パケット)である。
本発明の通信システムによれば、電子計算機(100−1)は、再開要求パケット(630)に含まれる受信済みデータ長を参照して、先にデータ送信パケット(600)にて転送したデータのデータ長のうちの、受信済みデータ長以外のデータ長を有するデータ(残りデータ)を電子計算機(100−2)に転送する。未受信の残データのみを送信要求する本発明の通信システムによれば、全データを再送する場合に比べ、電子計算機(100−1)から電子計算機(100−2)へのデータ転送時間が短縮できる。
The communication device (300) of the electronic computer (100-2) further includes a third reception processing unit. The third reception processing unit is the context processing unit (341).
When the electronic computer (100-2) receives the data transmission packet (600), the reception buffer (222) holds the data length of the data transmission packet (600) written to the reception buffer (222). When the data length of the data that can be transmitted exceeds the data length, the context processing unit (341) of the electronic computer (100-2) transmits a suspend request packet (610) to the electronic computer (100-1), and at the same time a remote command (640). Is registered in the remote command FIFO (213) of the electronic computer (100-2).
The remote command (640) and the restart request packet (630) are the data length (received) of the data written in the reception buffer (222) in the data transmission packet (600) from the electronic computer (100-1). When the data length is included, the restart request packet (630) is data other than the data written in the reception buffer (222) among the data transmission packet (600) from the electronic computer (100-1). This is information (packet) for requesting the transfer.
According to the communication system of the present invention, the electronic computer (100-1) refers to the received data length included in the restart request packet (630), and stores the data previously transferred in the data transmission packet (600). Of the data length, data having a data length other than the received data length (remaining data) is transferred to the electronic computer (100-2). According to the communication system of the present invention that requests transmission of only unreceived remaining data, the data transfer time from the electronic computer (100-1) to the electronic computer (100-2) is shortened compared to the case where all data is retransmitted. it can.

本発明の通信システムでは、従来の技術で説明されたような事前制御通信を行わずに、パケットを転送することができるため、データ転送の開始から完了までのレイテンシ(実行時間)が、従来の技術で説明されたような事前制御通信を開始してからデータ転送の完了までのレイテンシ(実行時間)よりも低減する。   In the communication system of the present invention, packets can be transferred without performing prior control communication as described in the prior art, so that the latency (execution time) from the start to the completion of data transfer is This is less than the latency (execution time) from the start of pre-control communication as described in the technology to the completion of data transfer.

図1は、本発明の通信システムの構成を示すブロック図である。本発明の通信システムは、複数の電子計算機(コンピュータ)と、ネットワークである交換網400とを具備する。交換網400には、複数の電子計算機が接続されている。複数の電子計算機を電子計算機100−1、100−2、100−3とする。
電子計算機100−1、100−2、100−3は、演算を行う演算装置110と、制御装置120と、主記憶装置200と、通信装置300とを備えている。演算装置110としては、CPU(Central Processing Unit)が例示される。制御装置120は、演算装置110と主記憶装置200と通信装置300とを接続するためのインターフェースとして働く。主記憶装置200は、データ、命令、電子計算機を識別する計算機番号を保持する。通信装置300は、演算装置110からの指示により、交換網400を介して通信を行う。
電子計算機100−1、100−2、100−3の構成は同じである。
FIG. 1 is a block diagram showing a configuration of a communication system according to the present invention. The communication system of the present invention includes a plurality of electronic computers (computers) and an exchange network 400 that is a network. A plurality of electronic computers are connected to the exchange network 400. A plurality of electronic computers are assumed to be electronic computers 100-1, 100-2, and 100-3.
The electronic computers 100-1, 100-2, and 100-3 include an arithmetic device 110 that performs arithmetic operations, a control device 120, a main storage device 200, and a communication device 300. An example of the arithmetic device 110 is a CPU (Central Processing Unit). The control device 120 functions as an interface for connecting the arithmetic device 110, the main storage device 200, and the communication device 300. The main storage device 200 holds data, instructions, and a computer number that identifies an electronic computer. The communication device 300 performs communication via the switching network 400 according to an instruction from the arithmetic device 110.
The configurations of the electronic computers 100-1, 100-2, and 100-3 are the same.

本発明の通信システムでは、送り元計算機(例えば電子計算機100−1)は、宛先計算機(例えば電子計算機100−2)に対して、従来の技術で説明されたような事前制御通信を行わずに、パケットを転送することができる(データ転送を行うことができる)。その結果、データ転送の開始から完了までのレイテンシ(実行時間)は、従来の技術で説明されたような事前制御通信を開始してからデータ転送の完了までのレイテンシ(実行時間)よりも低減する。添付図面を参照して、本発明による通信システムの実施の形態を以下に説明する。   In the communication system of the present invention, the transmission source computer (for example, the electronic computer 100-1) does not perform the prior control communication as described in the prior art with respect to the destination computer (for example, the electronic computer 100-2). , Packets can be transferred (data transfer can be performed). As a result, the latency (execution time) from the start to the completion of data transfer is lower than the latency (execution time) from the start of pre-control communication as described in the prior art to the completion of data transfer. . Embodiments of a communication system according to the present invention will be described below with reference to the accompanying drawings.

図2は、本発明の通信システムにおける電子計算機100−1、100−2、100−3の通信装置300の構成を示すブロック図である。
通信装置300は、送信部320と、受信部340と、メモリ制御部310とを備えている。メモリ制御部310は、送信部320と受信部340からのメモリアクセスを制御装置120に転送し、前記メモリアクセスの応答をそれぞれ前記送信部320、受信部340に返却し、制御装置120を経由する演算装置110からの通信装置300へのアクセスを仲介する。送信部320は、メモリ制御部310を経由した演算装置110からの通信命令実行指示により、パケットを生成し、交換網400へパケットを送信する。受信部340は、交換網400からのパケットを受信し、受信したパケットに応じて受信パケットを処理する。
FIG. 2 is a block diagram showing the configuration of the communication device 300 of the electronic computers 100-1, 100-2, 100-3 in the communication system of the present invention.
The communication apparatus 300 includes a transmission unit 320, a reception unit 340, and a memory control unit 310. The memory control unit 310 transfers the memory access from the transmission unit 320 and the reception unit 340 to the control device 120, and returns the response of the memory access to the transmission unit 320 and the reception unit 340, respectively, via the control device 120. Mediates access to the communication device 300 from the arithmetic device 110. The transmission unit 320 generates a packet in response to a communication command execution instruction from the arithmetic device 110 via the memory control unit 310, and transmits the packet to the switching network 400. The receiving unit 340 receives a packet from the switching network 400 and processes the received packet according to the received packet.

通信装置300の送信部320について説明する。送信部320は、命令処理部322と、パケット送信部321とを備えている。命令処理部322はレジスタ322’(後述)を備えている。
命令処理部322は、主記憶装置200から送信命令を取り出して解析し、受信部340からの制御パケット(送信中断要求パケット、データ要求パケット、受付パケット)を受け取り、送信命令を処理する。
パケット送信部321は、命令処理部322からの指示とメモリ制御部310から受け取る送信データとに基づいてデータ送信パケットを生成して交換網400に送信する。
The transmission unit 320 of the communication device 300 will be described. The transmission unit 320 includes an instruction processing unit 322 and a packet transmission unit 321. The instruction processing unit 322 includes a register 322 ′ (described later).
The instruction processing unit 322 extracts and analyzes a transmission command from the main storage device 200, receives a control packet (transmission interruption request packet, data request packet, reception packet) from the reception unit 340, and processes the transmission command.
The packet transmission unit 321 generates a data transmission packet based on the instruction from the command processing unit 322 and the transmission data received from the memory control unit 310 and transmits the data transmission packet to the switching network 400.

通信装置300の受信部340について説明する。受信部340は、パケット受信部342と、コンテキスト処理部341とを備えている。コンテキスト処理部341はレジスタ341’(後述)を備えている。
パケット受信部342は、交換網400から受信データを含む受信パケットを受信した場合、データパケットを受信した旨をコンテキスト処理部341に通知する。パケット受信部342は、受信パケット内の受信データをライトする指示をコンテキスト処理部341から受け取り、受信データを主記憶装置200にライトする。
パケット受信部342が交換網400から送信中断要求パケット、データ要求パケット、受付パケットのいずれかの制御パケットを受信した場合、受信パケットをコンテキスト処理部341に転送する。
コンテキスト処理部341は、パケット受信部342からデータパケット受信の通知を受けた後、受信パケットに対応するコンテキスト(後述)を主記憶装置200から読み出す。コンテキスト処理部341は、主記憶装置200から読み出したコンテキストに応じて、受信パケット内の受信データを主記憶装置200へライトすることをパケット受信部322に指示し、コンテキストの更新のために主記憶装置200へコンテキストを書き戻す処理を行う。
コンテキスト処理部341がパケット受信部342から制御パケットを受け付けた場合、コンテキスト処理部341は前記制御パケットを命令処理部322に転送する。
The receiving unit 340 of the communication device 300 will be described. The receiving unit 340 includes a packet receiving unit 342 and a context processing unit 341. The context processing unit 341 includes a register 341 ′ (described later).
When receiving a received packet including received data from the switching network 400, the packet receiving unit 342 notifies the context processing unit 341 that the data packet has been received. The packet receiving unit 342 receives an instruction to write received data in the received packet from the context processing unit 341, and writes the received data to the main storage device 200.
When the packet receiving unit 342 receives a control packet of any one of the transmission interruption request packet, the data request packet, and the reception packet from the switching network 400, the received packet is transferred to the context processing unit 341.
After receiving the data packet reception notification from the packet receiving unit 342, the context processing unit 341 reads a context (described later) corresponding to the received packet from the main storage device 200. The context processing unit 341 instructs the packet reception unit 322 to write the received data in the received packet to the main storage device 200 in accordance with the context read from the main storage device 200, and updates the main memory to update the context. Processing to write back the context to the device 200 is performed.
When the context processing unit 341 receives a control packet from the packet receiving unit 342, the context processing unit 341 transfers the control packet to the instruction processing unit 322.

図3は、本発明の通信システムにおける電子計算機100−1、100−2、100−3の演算装置110の構成を示すブロック図である。
演算装置110は、演算装置110が実行するための複数のプロセスと、通信装置用のドライバソフトウェア113とを備えている。複数のプロセスは、データを送信あるいは受信するコンピュータプログラムである計算機毎に異なる任意の数であるN個のプロセスが存在する。通信装置300を経由してデータを送信している時、前記プロセスを送信プロセスと呼び、通信装置を経由してデータを受信している時、前記プロセスを受信プロセスと呼び、任意のプロセスが状況により送信プロセス、あるいは受信プロセスと呼ばれる場合がある。
ドライバソフトウェア113は、1〜N個の固有の接続番号を有する。1〜N個の接続番号は、プロセス111が通信するための識別番号であり、1〜N個の接続番号を接続番号“1”〜接続番号“N”と称する。
通信装置用のドライバソフトウェア113は、初期時に、接続番号“1”〜接続番号“N”をプロセス111に与える(設定する)。接続番号“1”のプロセス111〜接続番号“N”のプロセス111をそれぞれプロセス111−1、111−2、…、111−Nと称する。
FIG. 3 is a block diagram showing the configuration of the arithmetic unit 110 of the electronic computers 100-1, 100-2, 100-3 in the communication system of the present invention.
The arithmetic device 110 includes a plurality of processes to be executed by the arithmetic device 110 and driver software 113 for the communication device. There are N processes, which are arbitrary numbers different for each computer that is a computer program that transmits or receives data. When transmitting data via the communication device 300, the process is called a transmission process, and when receiving data via the communication device, the process is called a reception process. May be referred to as a sending process or a receiving process.
The driver software 113 has 1 to N unique connection numbers. The 1 to N connection numbers are identification numbers for the process 111 to communicate, and the 1 to N connection numbers are referred to as connection numbers “1” to “N”.
The communication device driver software 113 gives (sets) the connection numbers “1” to “N” to the process 111 at the initial stage. The process 111 having the connection number “1” to the process 111 having the connection number “N” are referred to as processes 111-1, 111-2,..., 111-N, respectively.

送り元計算機の送信プロセス111−J(J=1、2、…、N)と宛先計算機の受信プロセス111−K(K=1、2、…、N)は、送り元計算機のプロセス111−Jが前記通信装置300を用いて送信データと共に宛先接続番号“K”に送信した時、宛先計算機の通信装置300(受信部340)は、送り元計算機からの宛先接続番号“K”により、宛先計算機の受信プロセス111−Kを特定する(後述)。送り元計算機は、電子計算機100−1、100−2、100−3のうちの1つの電子計算機であり、宛先計算機は、電子計算機100−1、100−2、100−3のうちの送り元計算機以外の1つの電子計算機である。   The sending process 111-J (J = 1, 2,..., N) of the source computer and the receiving process 111-K (K = 1, 2,..., N) of the destination computer are the process 111-J of the sending computer. Transmits to the destination connection number “K” together with the transmission data using the communication device 300, the communication device 300 (reception unit 340) of the destination computer uses the destination connection number “K” from the source computer to send the destination computer. The receiving process 111-K is specified (described later). The transmission source computer is one of the electronic computers 100-1, 100-2, and 100-3, and the destination computer is the transmission source of the electronic computers 100-1, 100-2, and 100-3. It is one electronic computer other than the computer.

図4は、本発明の通信システムにおける電子計算機100−1、100−2、100−3の主記憶装置200の構成を示すブロック図である。
主記憶装置200には、送信命令FIFO211と、受信命令FIFO212と、遠隔命令FIFO213と、コンテキストテーブル201と、送信バッファ221と、受信バッファ222と、転送長レジスタ231と、転送アドレスレジスタ232とが格納されている。
FIG. 4 is a block diagram showing the configuration of the main storage device 200 of the computers 100-1, 100-2, 100-3 in the communication system of the present invention.
The main storage device 200 stores a transmission command FIFO 211, a reception command FIFO 212, a remote command FIFO 213, a context table 201, a transmission buffer 221, a reception buffer 222, a transfer length register 231, and a transfer address register 232. Has been.

送信バッファ221は、それぞれのプロセス固有の送信バッファ221−1〜221−Nを含む。あるプロセス111−J(Jは任意)はプロセスのアドレス空間の任意のアドレスを送信バッファに使用可能であり、かつ複数の送信バッファを保持可能であるが、説明の簡素化のため、プロセス111−Jの送信バッファを221−Jとして以下を説明する。
受信バッファ222は、それぞれのプロセス固有の受信バッファ222−1〜222−Nを含む。あるプロセス111−J(Jは任意)はプロセスのアドレス空間の任意のアドレスを受信バッファに使用可能であり、かつ複数の受信バッファを保持可能であるが、説明の簡素化のため、プロセス111−Jの受信バッファを222−Jとして以下を説明する。
転送長レジスタ231は、固有の転送長レジスタ231−1〜231−Nを含む。
転送アドレスレジスタ232は、固有の転送アドレスレジスタ232−1〜232−Nを含む。
The transmission buffer 221 includes transmission buffers 221-1 to 221-N specific to each process. A certain process 111-J (J is arbitrary) can use an arbitrary address in the process address space as a transmission buffer and can hold a plurality of transmission buffers. The following will be described assuming that the transmission buffer of J is 221-J.
The reception buffer 222 includes reception buffers 222-1 to 222-N specific to each process. A certain process 111-J (J is arbitrary) can use any address in the address space of the process as a reception buffer and can hold a plurality of reception buffers. The following will be described assuming that the reception buffer of J is 222-J.
The transfer length register 231 includes unique transfer length registers 231-1 to 231-N.
The transfer address register 232 includes unique transfer address registers 232-1 to 232-N.

送信命令FIFO211は、それぞれのプロセス固有の送信命令FIFO211−1〜211−Nを含む。送信命令FIFO211−J(J=1、2、…、N)は、プロセス111−Jにより使用されるFIFO(First In First Out)構造の制御データである。プロセス111−Jは、通信装置300を使用して送信データを送信する。前記プロセス111−Jは、送信データを送信バッファ221−Jに登録し、前記送信データを通信装置300が送信するための送信命令を発行する(送信命令FIFO211−Jに登録する)。送信バッファ221−Jのアドレスは、プロセス111−Jが送信命令を発行した際に(送信命令を送信命令FIFO211−Jに登録した際に)指定される。
受信命令FIFO212は、それぞれのプロセス固有の受信命令FIFO212−1〜212−Nを含む。受信命令FIFO212−J(J=1、2、…、N)は、プロセス111−Jにより使用されるFIFO構造の制御データである。プロセス111−Jは、通信装置300を使用して受信データを受信する。前記プロセス111−Jは、受信データを通信装置300が受信するための受信命令を発行する(受信命令FIFO212−Jに登録する)。プロセス111−Jが受信命令を発行した際に、通信装置300への受信バッファ222−Jの登録(準備)が行われ、通信装置300は、受信バッファ222−Jを使用することができる。受信バッファ222−Jのアドレスは、プロセス111−Jが受信命令を発行した際に(受信命令を受信命令FIFO212−Jに登録した際に)指定される。
The transmission command FIFO 211 includes transmission commands FIFO 211-1 to 211-N specific to each process. The transmission command FIFO 211-J (J = 1, 2,..., N) is control data having a FIFO (First In First Out) structure used by the process 111-J. The process 111 -J transmits the transmission data using the communication device 300. The process 111-J registers the transmission data in the transmission buffer 221-J, and issues a transmission command for the communication device 300 to transmit the transmission data (registers in the transmission command FIFO 211-J). The address of the transmission buffer 221-J is specified when the process 111-J issues a transmission command (when the transmission command is registered in the transmission command FIFO 211-J).
The reception instruction FIFO 212 includes reception instructions FIFO 212-1 to 212-N specific to each process. The reception command FIFO 212-J (J = 1, 2,..., N) is FIFO structure control data used by the process 111-J. Process 111 -J receives received data using communication device 300. The process 111-J issues a reception command for the communication device 300 to receive the received data (registers in the reception command FIFO 212-J). When the process 111-J issues a reception command, the reception buffer 222-J is registered (prepared) in the communication device 300, and the communication device 300 can use the reception buffer 222-J. The address of the reception buffer 222-J is specified when the process 111-J issues a reception command (when the reception command is registered in the reception command FIFO 212-J).

遠隔命令FIFO213は、遠隔命令FIFO213−1〜213−Nを含む。遠隔命令FIFO213−J(J=1、2、…、N)は、通信装置300内のコンテキスト処理部341により使用されるFIFO構造の制御データであり、交換網400を介した遠隔計算機(後述)からの通信を一時的に保持する保持バッファである。通信装置300は、接続番号毎に1つの遠隔命令FIFO213−Jを使用する。
コンテキストテーブル201は、それぞれのプロセス固有のコンテキストテーブル201−1〜201−Nを含む。コンテキストテーブル201−J(J=1、2、…、N)は、コンテキスト処理部341により使用され、交換網400を介した遠隔計算機との通信状態を保持する制御テーブルである。通信装置300は、接続番号毎に1つのコンテキスト(後述)を使用する。
The remote command FIFO 213 includes remote command FIFOs 213-1 to 213-N. The remote command FIFO 213-J (J = 1, 2,..., N) is FIFO structure control data used by the context processing unit 341 in the communication apparatus 300, and is a remote computer (described later) via the switching network 400. This is a holding buffer that temporarily holds communication from. The communication device 300 uses one remote command FIFO 213-J for each connection number.
The context table 201 includes context tables 201-1 to 201-N specific to each process. The context table 201-J (J = 1, 2,..., N) is a control table that is used by the context processing unit 341 and holds the communication state with the remote computer via the switching network 400. The communication device 300 uses one context (described later) for each connection number.

ここで、通信装置300は、図示しない通信装置専用メモリを更に備え、通信装置専用メモリにはデータ構造が格納される場合がある。データ構造は、制御データ(送信命令FIFO211、受信命令FIFO212)、バッファ{送信バッファ221、受信バッファ222、遠隔命令FIFO213(保持バッファ)}、コンテキストテーブル201、レジスタ(転送長レジスタ231、転送アドレスレジスタ232)の少なくとも1つを含む。通信装置300が通信装置専用メモリを備えているため、通信装置300は、通信装置専用メモリに高速アクセス可能である。上記のデータ構造を高速アクセス可能な通信装置専用メモリ上に設けることにより、データ転送のレイテンシおよび転送帯域を向上させる。ただし、演算装置110が通信装置専用メモリに直接アクセスすることを可能にするために、通信装置専用メモリを演算装置110が使用するアドレス空間の一部としてアクセス可能とする必要がある。   Here, the communication device 300 further includes a communication device dedicated memory (not shown), and the data structure may be stored in the communication device dedicated memory. The data structure includes control data (transmission instruction FIFO 211, reception instruction FIFO 212), buffer {transmission buffer 221, reception buffer 222, remote instruction FIFO 213 (holding buffer)}, context table 201, registers (transfer length register 231, transfer address register 232). ). Since the communication device 300 includes the communication device dedicated memory, the communication device 300 can access the communication device dedicated memory at high speed. By providing the above data structure on a communication device dedicated memory that can be accessed at high speed, the latency and transfer bandwidth of data transfer are improved. However, in order to enable the arithmetic device 110 to directly access the communication device dedicated memory, the communication device dedicated memory needs to be accessible as a part of the address space used by the arithmetic device 110.

図5は、本発明の通信システムにおける送信命令500を示す。演算装置110(プロセス111−J)が送信データを送信するために、プロセス111−Jが主記憶装置200(送信命令FIFO211−J)に送信命令500を書き込み、送信部320の命令処理部322が送信命令500を読み出す。
送信命令500は、送信命令であることを示す送信タイプ欄501と、宛先の計算機番号を示す宛先計算機番号欄502と、宛先接続番号を示す接続番号欄503と、送信バッファの開始アドレスを示す送信バッファ開始アドレス欄504と、送信するデータの長さを示す転送長欄505から構成される。
FIG. 5 shows a transmission command 500 in the communication system of the present invention. In order for the arithmetic unit 110 (process 111-J) to transmit the transmission data, the process 111-J writes the transmission command 500 to the main storage device 200 (transmission command FIFO 211-J), and the command processing unit 322 of the transmission unit 320 Read the transmission command 500.
The transmission command 500 includes a transmission type column 501 indicating a transmission command, a destination computer number column 502 indicating a destination computer number, a connection number column 503 indicating a destination connection number, and a transmission indicating a start address of the transmission buffer. It consists of a buffer start address column 504 and a transfer length column 505 indicating the length of data to be transmitted.

プロセス111−Jが送信命令500を送信命令FIFO211−Jに登録する時、プロセス111−Jによって、送信タイプ欄501に、送信命令であることを示す送信タイプを書き込む。宛先計算機番号欄502に、宛先計算機を識別する計算機番号として宛先計算機番号を書き込む。接続番号欄503に、宛先計算機内の宛先プロセスを識別する接続番号を書き込む。送信バッファ開始アドレス欄504に、送信データを保持する送信バッファ221−Jの先頭のアドレスである送信バッファ開始アドレスを書き込む。転送長欄505に、送信データの長さを示すデータ長である転送長を書き込む。   When the process 111-J registers the transmission command 500 in the transmission command FIFO 211-J, the transmission type indicating that it is a transmission command is written in the transmission type column 501 by the process 111-J. In the destination computer number field 502, the destination computer number is written as a computer number for identifying the destination computer. In the connection number column 503, the connection number for identifying the destination process in the destination computer is written. In the transmission buffer start address column 504, a transmission buffer start address that is the head address of the transmission buffer 221-J that holds transmission data is written. In the transfer length column 505, a transfer length that is a data length indicating the length of the transmission data is written.

送信命令FIFO211−Jの管理について説明する。
通信装置300の命令処理部322内のレジスタ322’は、接続番号毎に、主記憶装置200上の送信命令FIFO211−1〜211−NはそれぞれM個の送信命令を登録することが可能であるリングバッファ構造のFIFOであり、各命令を0からM−1までの命令番号で識別する。前記Mは送信命令FIFO211−1〜211−Nそれぞれの最大命令数である。前記送信命令FIFO211−1〜211−Nのライト・ポインタは、プロセス111−1〜111−Nのそれぞれが次に送信命令を登録する命令番号を示し、前記プロセス111が送信命令500を1個登録する毎に+1加算する。ただし、前記ライト・ポインタへ+1加算時にライト・ポインタの値がMを超える場合にはライト・ポインタが回り込み“1”に設定される。送信命令FIFO211−1〜211−Nのリード・ポインタは、命令処理部322が次に実行する送信命令500の命令番号を示し、命令処理部322が前記送信命令FIFO211−1〜211−Nから命令を取り出す毎に+1だけ加算する。ただし、前記リード・ポインタへ+1加算時にリード・ポインタの値がMを超える場合にはリード・ポインタが回り込み“1”に設定される。
通信装置用のドライバソフトウェア113は、主記憶装置200上の送信命令FIFO211−1〜211−Nの先頭アドレスと、送信命令FIFO211内の最大命令数とを、初期設定時に命令処理部322内のレジスタ322’に予め設定する。
The management of the transmission command FIFO 211-J will be described.
The register 322 ′ in the command processing unit 322 of the communication device 300 can register M transmission commands for each of the transmission commands FIFO 211-1 to 211-N on the main storage device 200 for each connection number. This is a ring buffer FIFO, and each instruction is identified by an instruction number from 0 to M-1. The M is the maximum number of instructions for each of the transmission instructions FIFO 211-1 to 211-N. The write pointers of the transmission command FIFOs 211-1 to 211 -N indicate the command number at which each of the processes 111-1 to 111 -N registers a transmission command next, and the process 111 registers one transmission command 500. Add +1 each time. However, if the value of the write pointer exceeds M when +1 is added to the write pointer, the write pointer wraps around and is set to “1”. The read pointer of the transmission command FIFO 211-1 to 211 -N indicates the command number of the transmission command 500 to be executed next by the command processing unit 322, and the command processing unit 322 receives a command from the transmission command FIFO 211-1 to 211 -N. +1 is added each time. However, if the value of the read pointer exceeds M when +1 is added to the read pointer, the read pointer wraps around and is set to “1”.
The driver software 113 for the communication device registers the start address of the transmission command FIFOs 211-1 to 211-N on the main storage device 200 and the maximum number of commands in the transmission command FIFO 211 in the register in the command processing unit 322 at the initial setting. It is preset to 322 ′.

送信プロセス111−1〜111−Nは、送信命令500を主記憶装置200(送信命令FIFO211−1〜211−N)に1個追加(登録)する毎に、命令処理部322内の送信命令FIFO211−1〜211−Nのライト・ポインタを1だけ加算する。
命令処理部322は、送信命令FIFO211−J(1、2、…、N)のライト・ポインタと送信命令FIFO211−Jのリード・ポインタとを比較する。命令処理部322は、比較の結果、差分があれば送信命令500が追加されたと判断し、送信命令FIFO211−Jの先頭アドレスから送信命令FIFO211−Jのリード・ポイントの示す命令番号の送信命令500を主記憶装置200上の送信命令FIFO211−Jから制御装置120、メモリ制御部310を経由して取り出して、前記送信命令500を実行する。
命令処理部322は、1つの送信命令500を実行する毎に、命令処理部322内の送信命令FIFO211−Jのリード・ポインタを1だけ加算する。命令処理部322は、送信命令FIFO211−Jのリード・ポインタを1だけ加算した後も送信命令FIFO211−Jのリード・ポインタと送信命令FIFO211−Jのライト・ポインタとの値が異なっていた場合、すなわち差分がある場合、送信命令FIFO211−Jのリード・ポイントにより、次の送信命令500を主記憶装置200上の送信命令FIFO211−Jから制御装置120、メモリ制御部310を経由して取り出して、前記送信命令500を実行する。前記送信命令取り出し、および実行は、送信命令FIFO211−Jのリード・ポインタと送信命令FIFOライト・ポインタとの差分がなくなるまで実行される。
Each time the transmission process 111-1 to 111 -N adds (registers) one transmission command 500 to the main storage device 200 (transmission command FIFO 211-1 to 211 -N), the transmission command FIFO 211 in the command processing unit 322. Add 1 to the write pointer of −1 to 211-N.
The instruction processing unit 322 compares the write pointer of the transmission instruction FIFO 211-J (1, 2,..., N) with the read pointer of the transmission instruction FIFO 211-J. If there is a difference as a result of the comparison, the instruction processing unit 322 determines that the transmission instruction 500 has been added, and the transmission instruction 500 having the instruction number indicated by the read point of the transmission instruction FIFO 211-J from the start address of the transmission instruction FIFO 211-J. Are extracted from the transmission command FIFO 211 -J on the main storage device 200 via the control device 120 and the memory control unit 310, and the transmission command 500 is executed.
The instruction processing unit 322 adds 1 to the read pointer of the transmission instruction FIFO 211 -J in the instruction processing unit 322 every time one transmission instruction 500 is executed. When the instruction processing unit 322 adds the read pointer of the transmission instruction FIFO 211-J by 1, even when the read pointer of the transmission instruction FIFO 211-J and the write pointer of the transmission instruction FIFO 211-J are different, That is, when there is a difference, the next transmission command 500 is extracted from the transmission command FIFO 211 -J on the main storage device 200 via the control device 120 and the memory control unit 310 by the read point of the transmission command FIFO 211 -J. The transmission command 500 is executed. The transmission command extraction and execution are executed until there is no difference between the read pointer of the transmission command FIFO 211-J and the transmission command FIFO write pointer.

制御装置120は、演算装置110内のプロセス111−1〜111−Nからの主記憶装置200内へ送信命令500の書き込み、送信データの書き込み、および演算装置110上の各プロセスによる主記憶装置200への書き込みと読み込みと、送信部320からの送信命令の読み出し、送信データの読み出し、および受信部340からの主記憶装置200への書き込みおよび読み出しの要求を受付け、主記憶装置200への書き込みと読み出しを実行する。   The control device 120 writes a transmission command 500, writes transmission data into the main storage device 200 from the processes 111-1 to 111-N in the arithmetic device 110, and the main storage device 200 by each process on the arithmetic device 110. Writing and reading to the main storage device 200, reading transmission commands from the transmission unit 320, reading transmission data, and writing and reading requests to the main storage device 200 from the reception unit 340. Perform a read.

図6は、本発明の通信システムにおけるデータ送信パケット600を示す。演算装置110内の送信プロセス111−Jが送信データを送信するために、送信部320のパケット送信部321が送信データを含むデータ送信パケット600を生成して交換網400に送信する。
命令処理部322は、主記憶装置200上の送信命令FIFO211−Jから送信命令500を取り出し、送信命令500の送信バッファ開始アドレス欄504に書き込まれた送信バッファ開始アドレスによって送信バッファ221−Jから送信データを読み出してパケット送信部321に転送する指示を、メモリ制御部310に発行する。前記指示を受けたメモリ制御部310は、制御装置120を介して主記憶装置200上の送信バッファ221−Jから送信データを取りだし、パケット送信部321に転送する。
パケット送信部321は、メモリ制御部310から受け取った送信データを予め決められたパケット(データ送信パケット600)の長さに分割し、データ送信パケット600のそれぞれに連続のパケット番号を付加する。前記パケット番号は、1つの送信命令の最初のパケットは0番のパケット番号、その後は1、2、3、…、N番の連続するパケット番号である。
FIG. 6 shows a data transmission packet 600 in the communication system of the present invention. In order for the transmission process 111 -J in the computing device 110 to transmit transmission data, the packet transmission unit 321 of the transmission unit 320 generates a data transmission packet 600 including the transmission data and transmits it to the switching network 400.
The command processing unit 322 extracts the transmission command 500 from the transmission command FIFO 211 -J on the main storage device 200 and transmits it from the transmission buffer 221 -J by the transmission buffer start address written in the transmission buffer start address field 504 of the transmission command 500. An instruction to read the data and transfer it to the packet transmission unit 321 is issued to the memory control unit 310. Receiving the instruction, the memory control unit 310 takes out transmission data from the transmission buffer 221 -J on the main storage device 200 via the control device 120 and transfers it to the packet transmission unit 321.
The packet transmission unit 321 divides the transmission data received from the memory control unit 310 into predetermined packet (data transmission packet 600) lengths, and adds a continuous packet number to each data transmission packet 600. The packet number is the 0th packet number for the first packet of one transmission command, and the subsequent 1, 2, 3,..., Nth packet numbers.

前記データ送信パケット600は、送信タイプ欄601と、宛先計算機番号欄602と、送り元計算機番号欄603と、接続番号欄604と、送信命令番号欄605と、パケット番号欄606と、データ長欄607と、データ欄607とを含む。
データ送信パケット600のデータ欄608以外の部分をパケット・ヘッダと呼び、パケットの制御に使用される。
The data transmission packet 600 includes a transmission type column 601, a destination computer number column 602, a transmission source computer number column 603, a connection number column 604, a transmission command number column 605, a packet number column 606, and a data length column. 607 and a data column 607 are included.
A portion other than the data column 608 of the data transmission packet 600 is called a packet header and is used for packet control.

データ送信パケット600を生成するときに、パケット送信部321によって、送信タイプ欄601には、データ送信パケット600であることを示す送信タイプが書き込まれる。宛先計算機番号欄602には、宛先計算機を識別する宛先計算機番号が書き込まれる。送り元計算機番号欄603には、送り元計算機を識別する計算機番号として送り元計算機番号が書き込まれる。接続番号欄604には、宛先計算機内の宛先プロセスを識別する接続番号が書き込まれる。送信命令番号欄605には、同時に同一宛先計算機にパケットを送信している送信命令のそれぞれを識別する送信命令番号が書き込まれる。パケット番号欄606には、同一送信命令により生成された複数のパケットを識別するパケット番号が書き込まれる。データ長欄607には、データ送信パケット600に組み込まれたデータの長さを示すデータ長が書き込まれる。データ欄608には、送信バッファ221−Jから読み出された送信データが書き込まれる。   When the data transmission packet 600 is generated, the packet transmission unit 321 writes a transmission type indicating that the data transmission packet 600 is in the transmission type column 601. In the destination computer number column 602, a destination computer number for identifying the destination computer is written. In the transmission source computer number column 603, a transmission source computer number is written as a computer number for identifying the transmission source computer. In the connection number column 604, a connection number for identifying a destination process in the destination computer is written. In the transmission command number column 605, a transmission command number for identifying each of the transmission commands simultaneously transmitting packets to the same destination computer is written. In the packet number column 606, packet numbers for identifying a plurality of packets generated by the same transmission command are written. A data length indicating the length of data incorporated in the data transmission packet 600 is written in the data length column 607. In the data column 608, transmission data read from the transmission buffer 221-J is written.

ここで、送信命令番号は、受信命令FIFO212−1〜212−Nに登録されてから順に実行される送信命令500から、特定の送信命令500(データ送信パケット600が今生成されたときの送信命令500)を識別するための識別番号であり、命令処理部322が命令毎に付加する番号である。命令処理部322は、次命令の送信命令番号をレジスタ322’に保持し、新規に送信命令番号を取り出す時に、次命令の送信命令番号を1だけ加算することにより、送信命令毎に異なる送信命令番号を付加する。
パケット番号は、データ(送信データ)が予め決められたパケット(データ送信パケット600)の長さに分割されたときに、同一の送信命令500(上記の特定の送信命令500)で生成されたデータ送信パケット600のうちの何番目のデータ送信パケット600であるかを示す番号である。
パケット分割の例を以下に示す。
パケット送信部321が実施するパケット分割(データ送信パケット600の分割)において、最大パケット長が1000バイト、かつ送信命令500の転送長が3500バイトの場合、パケット送信部321は、3つの1000バイトのデータを持ったデータ送信パケット600と、1つの500バイトのデータを持ったデータ送信パケット600を生成し、交換網400に送信する。
Here, the transmission command number is a specific transmission command 500 (a transmission command when the data transmission packet 600 is now generated) from a transmission command 500 that is sequentially executed after being registered in the reception commands FIFO 212-1 to 212-N. 500), and a number added by the instruction processing unit 322 for each instruction. The instruction processing unit 322 holds the transmission instruction number of the next instruction in the register 322 ′, and when a transmission instruction number is newly extracted, the transmission instruction number of the next instruction is incremented by 1, thereby different transmission instructions for each transmission instruction. Add a number.
The packet number is data generated by the same transmission command 500 (the above-mentioned specific transmission command 500) when the data (transmission data) is divided into predetermined packet (data transmission packet 600) lengths. This is a number indicating which data transmission packet 600 in the transmission packet 600 is.
An example of packet division is shown below.
In the packet division performed by the packet transmission unit 321 (division of the data transmission packet 600), when the maximum packet length is 1000 bytes and the transfer length of the transmission command 500 is 3500 bytes, the packet transmission unit 321 includes three 1000 bytes. A data transmission packet 600 having data and a data transmission packet 600 having one 500-byte data are generated and transmitted to the switching network 400.

図7は、本発明の通信システムにおける受信命令510を示す。演算装置110(プロセス111−J)が受信データを受信するために、プロセス111−Jが主記憶装置200(受信命令FIFO212−J)に受信命令510を書き込み、受信部340のコンテキスト処理部341が受信命令510を読み出す。
受信命令510は、受信タイプ欄511と、送り元計算機番号欄512と、接続番号欄513と、受信バッファ開始アドレス欄514と、受信バッファ長欄515から構成される。
プロセス111―Jが、受信命令510を受信命令FIFOに登録するときに、受信タイプ欄511に、受信命令であることを示す受信タイプを書き込む。送り元計算機番号欄512には、送り元計算機を識別する送り元計算機番号を書き込む。接続番号欄513に、受信プロセス111−Jを識別する接続番号を書き込む。受信バッファ開始アドレス欄514に、受信された受信データを保持する受信バッファ222−Jの先頭のアドレス(受信バッファ開始アドレス)を書き込む。受信バッファ長欄515に、受信バッファ222−Jが保持することができるデータの長さを表す受信バッファ長を書き込む。
FIG. 7 shows a reception command 510 in the communication system of the present invention. In order for the arithmetic unit 110 (process 111-J) to receive the received data, the process 111-J writes the reception command 510 to the main storage device 200 (reception command FIFO 212-J), and the context processing unit 341 of the reception unit 340 Read reception instruction 510.
The reception command 510 includes a reception type column 511, a transmission source computer number column 512, a connection number column 513, a reception buffer start address column 514, and a reception buffer length column 515.
When the process 111-J registers the reception command 510 in the reception command FIFO, the reception type indicating that it is a reception command is written in the reception type column 511. In the transmission source computer number column 512, a transmission source computer number for identifying the transmission source computer is written. In the connection number column 513, a connection number for identifying the reception process 111-J is written. In the reception buffer start address column 514, the head address (reception buffer start address) of the reception buffer 222-J that holds the received reception data is written. In the reception buffer length column 515, the reception buffer length indicating the length of data that can be held by the reception buffer 222-J is written.

受信命令FIFO212−Jの管理について説明する。
通信装置300のコンテキスト処理部341内のレジスタ341’は、接続番号毎に、主記憶装置200上の受信命令FIFO212−1〜212−Nの先頭アドレスと、受信命令FIFO212−1〜212−Nのリード・ポインタと、受信命令FIFO212−1〜212−Nのライト・ポインタとを保持する。それぞれの受信命令FIFOに登録可能な命令数をMとし、受信命令FIFOの各エントリに、最初のエントリの命令を0番、次を1番、…、最後をM−1番とした番号命令を付加する。
受信命令FIFO212−1〜212−Nのライト・ポインタは、演算装置110(プロセス111−1〜111−N)が次に登録する命令番号を示す。受信命令FIFO212−1〜212−Nのリード・ポインタはコンテキスト処理部341が次に実行する命令番号を表す。
通信装置用のドライバソフトウェア113は、主記憶装置200上の受信命令FIFO212−1〜212−Nの先頭アドレスと、受信命令FIFO212内の最大命令数とを、初期設定時にコンテキスト処理部341内のレジスタ341’に予め設定する。受信命令FIFO212−1〜212−Nのリード・ポインタは、コンテキスト処理部341が受信命令を1個処理する毎に1ずつ加算し、受信命令FIFO212−1〜212−Nのライト・ポインタは、受信プロセス111−1〜111−Nが受信命令を1個登録する毎に1ずつ加算される。受信命令FIFO212−1〜212−Nのリード・ポインタ、ライト・ポインタは、1だけ加算された時に受信命令FIFOの最後の命令番号を越えた場合、“0”になる。
The management of the reception command FIFO 212-J will be described.
The register 341 ′ in the context processing unit 341 of the communication device 300 stores the start address of the reception command FIFOs 212-1 to 212 -N on the main storage device 200 and the reception command FIFOs 212-1 to 212 -N for each connection number. The read pointer and the write pointers of the reception instructions FIFOs 212-1 to 212-N are held. The number of instructions that can be registered in each reception instruction FIFO is M, and each entry of the reception instruction FIFO has a number instruction in which the first entry instruction is 0, the next is 1, ..., and the last is M-1. Append.
The write pointers of the reception instruction FIFOs 212-1 to 212-N indicate instruction numbers that the arithmetic device 110 (processes 111-1 to 111-N) registers next. The read pointers of the reception instruction FIFOs 212-1 to 212 -N indicate the instruction number to be executed next by the context processing unit 341.
The driver software 113 for the communication device uses a register in the context processing unit 341 at the initial setting of the start address of the reception command FIFOs 212-1 to 212 -N on the main storage device 200 and the maximum number of commands in the reception command FIFO 212. It is preset to 341 ′. Each time the context processing unit 341 processes one reception instruction, the read pointers of the reception instructions FIFOs 212-1 to 212 -N are incremented by one, and the write pointers of the reception instructions FIFOs 212-1 to 212 -N are received. Each time the processes 111-1 to 111-N register one reception command, one is added. The read pointer and write pointer of the reception instruction FIFOs 212-1 to 212 -N become “0” when the last instruction number of the reception instruction FIFO is exceeded when 1 is added.

コンテキスト処理部341は、受信命令FIFO212−J(1、2、…、N)のライト・ポインタと受信命令FIFO212−Jのリード・ポインタとを比較する。コンテキスト処理部341は、比較の結果、差分があれば受信命令510が追加されたと判断し、受信命令FIFO212−Jの先頭アドレスから受信命令FIFO212−Jのリード・ポイントの指し示す受信命令510を主記憶装置200上の受信命令FIFO212−Jから制御装置120、メモリ制御部310を経由して取り出し、前記受信命令510を実行する。
コンテキスト処理部341は、1つの受信命令510を実行する毎に、コンテキスト処理部241内の受信命令FIFO212−Jのリード・ポインタを1だけ加算する。コンテキスト処理部341は、受信命令FIFO212−Jのリード・ポインタを1だけ加算した後も受信命令FIFO212−Jのリード・ポインタと受信命令FIFO212−Jのライト・ポインタとの値が異なっていた場合(差分がある場合)、受信命令FIFO212−Jのリード・ポイントにより、次の受信命令510を主記憶装置200上の受信命令FIFO212−Jから制御装置120、メモリ制御部310を経由して取り出し、前記受信命令510を実行する。前記受信命令取り出し処理は、受信命令FIFO212−Jのリード・ポインタと受信命令FIFO212−Jのライト・ポインタとの差分がなくなるまで実行される。
The context processing unit 341 compares the write pointer of the reception instruction FIFO 212-J (1, 2,..., N) with the read pointer of the reception instruction FIFO 212-J. If there is a difference as a result of the comparison, the context processing unit 341 determines that the reception instruction 510 has been added, and the main instruction is stored in the reception instruction 510 indicated by the read point of the reception instruction FIFO 212-J from the start address of the reception instruction FIFO 212-J. The reception instruction FIFO 212-J on the apparatus 200 is taken out via the control device 120 and the memory control unit 310, and the reception instruction 510 is executed.
Each time the context processing unit 341 executes one reception command 510, the context processing unit 341 adds 1 to the read pointer of the reception command FIFO 212-J in the context processing unit 241. The context processing unit 341 adds the read pointer of the reception instruction FIFO 212-J by 1 and the read pointer of the reception instruction FIFO 212-J and the write pointer of the reception instruction FIFO 212-J are different from each other ( If there is a difference), the next reception instruction 510 is fetched from the reception instruction FIFO 212-J on the main storage device 200 via the control device 120 and the memory control unit 310 according to the read point of the reception instruction FIFO 212-J. A receive instruction 510 is executed. The received instruction fetch process is executed until there is no difference between the read pointer of the received instruction FIFO 212-J and the write pointer of the received instruction FIFO 212-J.

図8は、本発明の通信システムにおけるコンテキスト700を示す。受信部340が交換網400からパケットを受信した時に受信部340の動作を決定するための、コンテキスト処理部341が管理するコンテキスト700を詳細に説明する。
コンテキスト700は、接続番号毎に存在し、パケット受信部342によってデータ送信パケット600が受信された時にデータ送信パケット600内の接続番号欄604の値により参照され、コンテキスト処理部341に取り込まれる。コンテキスト700は、受信命令処理中フラグ欄701と、送信命令番号欄702と、最終受信パケット番号欄703と、処理中受信命令の受信済みデータ長欄704と、送信中断済みフラグ705と、処理中受信命令欄710とを含む。
処理中受信命令欄710は、受信部340が処理中の受信命令510の一部を保持し、処理中受信命令の受信タイプ欄711と、処理中受信命令の受信バッファ開始アドレス欄712と、処理中受信命令のバッファ長欄713とを含む。
FIG. 8 shows a context 700 in the communication system of the present invention. The context 700 managed by the context processing unit 341 for determining the operation of the receiving unit 340 when the receiving unit 340 receives a packet from the switching network 400 will be described in detail.
A context 700 exists for each connection number. When the data transmission packet 600 is received by the packet reception unit 342, the context 700 is referred to by the value in the connection number column 604 in the data transmission packet 600 and is taken into the context processing unit 341. The context 700 includes a receiving command processing flag column 701, a transmission command number column 702, a final received packet number column 703, a received data length column 704 of a processing received reception command, a transmission interrupted flag 705, and a processing. A reception command column 710.
The in-process received command column 710 holds a part of the receive command 510 being processed by the receiving unit 340. The receive type column 711 of the in-process received command, the receive buffer start address column 712 of the in-process received command, and the processing A buffer length column 713 for a medium reception command.

コンテキスト700は、コンテキストテーブル201−1〜201−Nに格納されている。コンテキストテーブル201−J(J=1、2、…、N)内のコンテキスト700は、接続番号“J”用のコンテキストである。
パケット受信部342がデータ送信パケット600を受信した時に、パケット受信部342は、コンテキスト処理部341にデータ送信パケット600のパケット・ヘッダを転送する。
パケットヘッダを受け取ったコンテキスト処理部341は、パケット・ヘッダ内の接続番号欄604に記載された接続番号“J”により、コンテキストテーブル201−Jを参照し、対応するコンテキスト700を取り込む。
The context 700 is stored in the context tables 201-1 to 201-N. The context 700 in the context table 201-J (J = 1, 2,..., N) is a context for the connection number “J”.
When the packet reception unit 342 receives the data transmission packet 600, the packet reception unit 342 transfers the packet header of the data transmission packet 600 to the context processing unit 341.
The context processing unit 341 that has received the packet header refers to the context table 201 -J by the connection number “J” described in the connection number column 604 in the packet header, and takes in the corresponding context 700.

図16を用いて、パケット受信部342が交換網400からデータ送信パケット600を受信し、コンテキスト処理部341にパケット・ヘッダを送信し、コンテキスト処理部341がコンテキスト700を取り込んだ後の処理を詳細に説明する。
ここで、図中の“不問”とは、全く動作に影響を与えないことをいい、図中の“十分”とは、受信バッファ222−Jが受信したデータ送信パケット600の全データを書き込むに十分なだけの残受信バッファ長がある場合をいい、図中の“不十分”とは、受信バッファ222−Jが受信したデータ送信パケット600の全データを書き込むに十分なだけの残受信バッファ長がない場合をいい、受信バッファフル(あるいは受信バッファのフル)と表す場合もある。
Referring to FIG. 16, the packet receiving unit 342 receives the data transmission packet 600 from the switching network 400, transmits the packet header to the context processing unit 341, and details the processing after the context processing unit 341 captures the context 700. Explained.
Here, “unquestioned” in the figure means that the operation is not affected at all, and “sufficient” in the figure means that all data of the data transmission packet 600 received by the reception buffer 222-J is written. This means a case where there is a sufficient remaining reception buffer length. “Insufficient” in the drawing means that the remaining reception buffer length is sufficient to write all the data of the data transmission packet 600 received by the reception buffer 222-J. There is also a case where the reception buffer is full (or the reception buffer is full).

前記パケット・ヘッダを受け取ったコンテキスト処理部341は、コンテキスト700内のパケット処理中フラグ701(図中、処理中701)および中断済みフラグ705(図中、中断済み705)のコンテキストの状態と、前記パケットの接続番号604に対応する受信命令の有り・無し、および残受信バッファ長の十分・不十分の受信命令の状態とから、コンテキストおよびパケットの処理を決定する。前記状態としては、図中のケース名“ケースA1”、“ケースA2”、“ケースR1”、“ケースR2”、“ケースR3”、“ケースD1”が挙げられる。   Upon receiving the packet header, the context processing unit 341 receives the context status of the packet processing flag 701 (processing 701 in the figure) and the interrupted flag 705 (suspended 705 in the figure) in the context 700, and The processing of the context and packet is determined based on the presence / absence of the reception command corresponding to the packet connection number 604 and the state of the reception command with sufficient / insufficient remaining buffer length. Examples of the state include case names “Case A1”, “Case A2”, “Case R1”, “Case R2”, “Case R3”, and “Case D1” in the figure.

ケースA1においては、パケット処理中フラグ701の値が非処理中を示す“0”、前記パケットに対応する受信命令510が存在し、残受信バッファ長が十分である場合を示す。ケースA1の場合、前記コンテキストの処理は、“作成”を表し、前記パケットの処理は、“データ処理”を表す。
前記パケット処理中フラグ701の値が“0”の場合の残受信バッファ長は前記受信命令510内の受信バッファ長515である。前記パケット処理中フラグ701の値が“1”の場合の残受信バッファ長は前記受信命令510内の受信バッファ長515からコンテキスト700内の処理中命令の受信済みデータ長704を引いたものである。
前記パケット処理中フラグ701の値の初期値は“0”であり、通信装置300および通信装置用のドライバソフトウェア113の初期化後の前記パケット処理中フラグ701は“0”であり、また、送信命令の全パケットの処理が完了した後に前記パケット処理中フラグ701を“0”にクリアする。
ケースA1において、コンテキスト処理部341は、前記受信FIFO212から先頭の受信命令510を取り出し、コンテキスト700内の処理中受信命令710に登録し、前記受信命令処理フラグ701に処理中を示す“1”を書き込み、送信命令番号欄702に、前記パケット600の送信命令番号欄605に記載された送信命令番号を書き込み、最終受信パケット番号欄703に、前記パケット600のパケット番号欄606に記載されたパケット番号を書き込み、処理中受信命令の受信済みデータ長欄704に、前記パケット600のデータ長欄607に記載されたデータ長を書き込み、送信中断済みフラグ705に非中断を示す“0”を書き込む。
Case A1 indicates a case where the value of the packet processing flag 701 is “0” indicating non-processing, the reception command 510 corresponding to the packet exists, and the remaining reception buffer length is sufficient. In case A1, the context processing represents “creation”, and the packet processing represents “data processing”.
The remaining reception buffer length when the value of the packet processing flag 701 is “0” is the reception buffer length 515 in the reception command 510. The remaining reception buffer length when the value of the packet processing flag 701 is “1” is the reception buffer length 515 in the reception instruction 510 minus the received data length 704 of the processing instruction in the context 700. .
The initial value of the packet processing flag 701 is “0”, the packet processing flag 701 after initialization of the communication device 300 and the driver software 113 for the communication device is “0”, and transmission is performed. After the processing of all packets of the instruction is completed, the packet processing flag 701 is cleared to “0”.
In case A1, the context processing unit 341 extracts the first reception instruction 510 from the reception FIFO 212, registers the reception instruction 510 in processing in the context 700, and sets “1” indicating processing in the reception instruction processing flag 701. The transmission command number described in the transmission command number column 605 of the packet 600 is written in the write / transmission command number column 702, and the packet number described in the packet number column 606 of the packet 600 is written in the last received packet number column 703. Is written, the data length described in the data length column 607 of the packet 600 is written in the received data length column 704 of the receiving command being processed, and “0” indicating non-interruption is written in the transmission interrupted flag 705.

ケースA2においては、パケット処理中フラグ701の値が処理中を示す“1”、送信中断済みフラグ705の値が非中断を示す“0”、残受信バッファ長が十分である場合を示す。ケースA2の場合、前記コンテキストの処理は、“更新”を表し、前記パケットの処理は、“データ処理”を表す。
ケースA2において、コンテキスト処理部341は、受信命令処理フラグ701、送信命令番号欄702は更新せず、最終受信パケット番号欄703に、前記パケット600のパケット番号欄606に記載されたパケット番号を書き込み、送信中断済みフラグ705に非中断を示す“0”を書き込む。
Case A2 shows a case where the value of the packet processing flag 701 is “1” indicating that processing is in progress, the value of the transmission interrupted flag 705 is “0” indicating non-interruption, and the remaining reception buffer length is sufficient. In case A2, the context processing represents “update”, and the packet processing represents “data processing”.
In case A2, the context processing unit 341 does not update the reception command processing flag 701 and the transmission command number column 702, and writes the packet number described in the packet number column 606 of the packet 600 in the last received packet number column 703. Then, “0” indicating non-interruption is written in the transmission interrupted flag 705.

ケースA1、A2において、前記パケット600のデータ長607が“0”でなかった場合、受信命令510ないの受信バッファ開始アドレス514にコンテキスト700内の処理中受信命令の受信済みデータ長704を加算したアドレスをパケット受信部342に転送し、前記パケット内のデータ608を主記憶装置200へライトすることを指示し、前記パケット600のデータ長607が“0”であった場合、送信命令の最終データであり、送信部320へ受付パケットを転送し、コンテキスト700内の受信命令処理中フラグ701を“0”にクリアする。   In cases A1 and A2, when the data length 607 of the packet 600 is not “0”, the received data length 704 of the receiving command in process in the context 700 is added to the receiving buffer start address 514 without the receiving command 510. When the address is transferred to the packet receiving unit 342, the data 608 in the packet is instructed to be written to the main storage device 200, and the data length 607 of the packet 600 is “0”, the final data of the transmission command The reception packet is transferred to the transmission unit 320, and the reception command processing flag 701 in the context 700 is cleared to “0”.

ケースR1においては、パケット処理中フラグ701の値が非処理中を示す“0”、前記パケットに対応する受信命令510が存在し、残受信バッファ長が不十分(受信バッファフル)である場合を示す。ケースR1の場合、前記コンテキストの処理は、“作成し、中断”を表し、前記パケットの処理は、“遠隔命令作成”を表す。
ケースR1において、コンテキスト処理部341は、前記受信FIFO212から先頭の受信命令510を取り出し、コンテキスト700内の処置中受信命令710に登録し、前記受信命令処理フラグ701に処理中を示す“1”を書き込み、送信命令番号欄702に、前記パケット600の送信命令番号欄605に記載された送信命令番号を書き込み、最終受信パケット番号欄703にパケット未受信であることを示す“0”を書き込み、処理中受信命令の受信済みデータ長欄704に“0”を書き込み、送信中断済みフラグ705に中断済みである“1”を書き込み、送り元計算機の送信部320に受信を中断したことを通知するために、自計算機の送信部320へ中断要求パケットを転送する。
In case R1, the case where the value of the packet processing flag 701 is “0” indicating non-processing, the reception command 510 corresponding to the packet exists, and the remaining reception buffer length is insufficient (reception buffer full). Show. In the case of the case R1, the process of the context represents “create and interrupt”, and the process of the packet represents “create remote command”.
In case R1, the context processing unit 341 extracts the first reception instruction 510 from the reception FIFO 212, registers the reception instruction 510 in the context 700, and registers “1” indicating that processing is in progress in the reception instruction processing flag 701. The transmission command number described in the transmission command number column 605 of the packet 600 is written in the write / transmission command number column 702, and “0” indicating that no packet has been received is written in the last received packet number column 703. To write “0” in the received data length column 704 of the middle reception command, write “1” in the transmission interrupted flag 705, and notify the transmission unit 320 of the transmission source computer that the reception has been interrupted. Then, the interruption request packet is transferred to the transmission unit 320 of the own computer.

ケースR2においては、パケット処理中フラグ701の値が非処理中を示す“0”である場合を示す。ケースR2の場合、前記コンテキストの処理は、“作成し、中断”を表し、前記パケットの処理は、“遠隔命令作成”を表す。
ケースR2において、コンテキスト処理部341は、受信命令処理フラグ701に処理中を示す“1”を書き込み、送信命令番号欄702に、前記パケット600の送信命令番号欄605に記載された送信命令番号を書き込み、最終受信パケット番号欄703にパケット未受信であることを示す“0”を書き込み、処理中受信命令の受信済みデータ長欄704に“0”を書き込み、送信中断済みフラグ705に中断済みである“1”を書き込み、送り元計算機の送信部320に受信を中断したことを通知するために、自計算機の送信部320へ中断要求パケットを転送する。
Case R2 shows a case where the value of the packet processing flag 701 is “0” indicating that processing is not in progress. In the case of the case R2, the process of the context represents “create and interrupt”, and the process of the packet represents “create remote command”.
In case R2, the context processing unit 341 writes “1” indicating that processing is in progress to the reception command processing flag 701, and the transmission command number described in the transmission command number column 605 of the packet 600 is stored in the transmission command number column 702. Write, “0” indicating that the packet has not been received is written in the last received packet number column 703, “0” is written in the received data length column 704 of the receiving command being processed, and the transmission interrupted flag 705 has been interrupted. A certain “1” is written, and an interruption request packet is transferred to the transmission unit 320 of the own computer in order to notify the transmission unit 320 of the transmission source computer that reception has been interrupted.

ケースR3においては、パケット処理中フラグ701の値が処理中を示す“1”、送信中断済みフラグ705の値が非中断を示す“0”、残受信バッファ長が不十分(受信バッファフル)である場合を示す。ケースR3の場合、前記コンテキストの処理は、“中断”を表し、前記パケットの処理は、“遠隔命令作成”を表す。
ケースR3において、コンテキスト処理部341は、受信命令処理フラグ701と、送信命令番号欄702と、最終受信パケット番号欄703は更新せず、送信中断済みフラグ705に中断済みである“1”を書き込み、送り元計算機の送信部320に受信を中断したことを通知するために、自計算機の送信部320へ中断要求パケットを転送する。
In case R3, the value of the packet processing flag 701 is “1” indicating that processing is in progress, the value of the transmission interrupted flag 705 is “0” indicating non-interruption, and the remaining reception buffer length is insufficient (reception buffer full). Indicates a case. In the case of the case R3, the process of the context represents “suspend”, and the process of the packet represents “create remote command”.
In case R3, the context processing unit 341 does not update the reception command processing flag 701, the transmission command number column 702, and the final reception packet number column 703, and writes “1” that has been interrupted to the transmission interrupted flag 705. In order to notify the transmission unit 320 of the transmission source computer that reception has been interrupted, the interruption request packet is transferred to the transmission unit 320 of the own computer.

ケースR1、R2、R3において、コンテキスト処理部341は、遠隔命令(後述)を作成し、前記パケットの接続番号604用の遠隔命令FIFOに登録する。   In cases R1, R2, and R3, the context processing unit 341 creates a remote command (described later) and registers it in the remote command FIFO for the connection number 604 of the packet.

ケースD1においては、パケット処理中フラグ701の値が処理中を示す“1”、送信中断済みフラグ705の値が中断を示す“1”、である場合を示す。ケースD1の場合、前記コンテキストの処理は、“更新なし”を表し、前記パケットの処理は、“破棄”を表す。
ケースD1において、コンテキスト処理部341は、前記パケット600を破棄する。
Case D1 shows a case where the value of the packet processing flag 701 is “1” indicating that processing is in progress and the value of the transmission interrupted flag 705 is “1” indicating that the processing is interrupted. In case D1, the context processing represents “no update”, and the packet processing represents “discard”.
In case D1, the context processing unit 341 discards the packet 600.

次に、宛先計算機のコンテキスト処理部341がデータ送信パケット600に応じて、前記パケット600の送り元計算機に返信する返信パケットである、中断要求パケット、受付パケットを説明する。   Next, an interruption request packet and an acceptance packet, which are reply packets sent back to the sending computer of the packet 600 in response to the data transmission packet 600 by the context processing unit 341 of the destination computer, will be described.

図9(a)は、本発明の通信システムにおける中断要求パケット610を示す。
中断要求パケット610は、中断要求タイプ欄611と、宛先計算機番号欄612と、送り元計算機番号欄613と、接続番号欄614と、送信命令番号欄615とから構成される。
コンテキスト処理部341が中断要求パケット610を生成するとき、中断要求タイプ欄611に、送信中断を要求することを示す中断要求タイプを書き込み、宛先計算機番号欄612に、データ送信パケット600の宛先計算機番号欄602に記載された宛先計算機番号を書き込み、送り元計算機番号欄613に、データ送信パケット600の送り元計算機番号欄603に記載された送り元計算機番号を書き込み、接続番号欄614に、データ送信パケット600の接続番号欄604に記載された接続番号を書き込み、送信命令番号欄615に、データ送信パケット600の送信命令番号欄605に記載された送信命令番号を書き込む。
FIG. 9A shows an interruption request packet 610 in the communication system of the present invention.
The interruption request packet 610 includes an interruption request type field 611, a destination computer number field 612, a transmission source computer number field 613, a connection number field 614, and a transmission command number field 615.
When the context processing unit 341 generates the interruption request packet 610, the interruption request type indicating that transmission interruption is requested is written in the interruption request type column 611, and the destination computer number of the data transmission packet 600 is written in the destination computer number column 612. The destination computer number described in the column 602 is written, the source computer number described in the source computer number column 603 of the data transmission packet 600 is written in the source computer number column 613, and the data transmission is performed in the connection number column 614. The connection number described in the connection number column 604 of the packet 600 is written, and the transmission command number described in the transmission command number column 605 of the data transmission packet 600 is written in the transmission command number column 615.

また、前記中断要求パケットのもう一つの実施例として、前記中断要求パケット610に受信済みデータ長を追加し、後述する転送再開時に受信を中断したデータから再度送信する場合の中断要求パケットの生成方法を以下に示す。
前記中断要求パケット610は、前記中断要求タイプ欄611と、前記宛先計算機番号欄612と、前記送り元計算機番号欄613と、前記接続番号欄614と、前記送信命令番号欄615と、受信データ長欄616から構成される。コンテキスト処理部341は、前記コンテキスト700の処理中受信命令のバッファ長713から処理中受信命令の受信済みデータ長704を引いた値である残受信バッファ長を計算し、交換網400から受信したパケットのデータ長607が前記残受信バッファ長より大きい場合に受信バッファフルを検出し、中断要求パケット610の受信データ長欄616に、データ送信パケット600のデータ長欄607に記載されたデータ長を書き込み、受信バッファ222−Jに書き込まれたデータのデータ長を中断要求パケット610によって通知する。
Further, as another example of the interruption request packet, a method for generating an interruption request packet in the case where a received data length is added to the interruption request packet 610 and data is retransmitted from data interrupted when the transfer is resumed, which will be described later Is shown below.
The interruption request packet 610 includes the interruption request type field 611, the destination computer number field 612, the transmission source computer number field 613, the connection number field 614, the transmission command number field 615, and the received data length. It consists of a column 616. The context processing unit 341 calculates a residual reception buffer length that is a value obtained by subtracting the received data length 704 of the processing reception command from the buffer length 713 of the processing reception command of the context 700, and receives the packet received from the switching network 400 When the data length 607 of the packet is larger than the remaining reception buffer length, the reception buffer full is detected, and the data length described in the data length column 607 of the data transmission packet 600 is written in the reception data length column 616 of the interruption request packet 610 The interrupt request packet 610 notifies the data length of the data written in the reception buffer 222-J.

図10は、本発明の通信システムにおける受付パケット620を示す。
コンテキスト処理部341は、データ送信パケット600を受信したパケット受信部342からパケット・ヘッダを受け取ったときに、主記憶装置200のコンテキストテーブル201−1〜201−Nから、パケット・ヘッダ内の接続番号欄604に記載された接続番号“J”に対応するコンテキスト700を取り出す。
前記コンテキスト700の受信命令処理中フラグ欄701には受信命令処理中フラグ、送信中断済みフラグ欄705には送信中断済みフラグの両方がセットされておらず(“0”であり)、パケット・ヘッダ内の接続番号欄604に記載された接続番号“J”に対応する受信命令FIFO212−Jには受信命令510が登録されている場合、コンテキスト処理部341は、データ送信パケット600に対する返信パケットとして受付パケット620を、送信部320を経由して送り元計算機に送信すると共に、受信命令書込指示をパケット受信部342に送信する。パケット受信部342は、受信命令書込指示に応じて、データ送信パケット600のデータ欄608に記載されたデータ(受信データ)を受信バッファ222−Jに書き込む。
FIG. 10 shows an acceptance packet 620 in the communication system of the present invention.
When the context processing unit 341 receives the packet header from the packet receiving unit 342 that has received the data transmission packet 600, the context processing unit 341 connects the connection number in the packet header from the context tables 201-1 to 201-N of the main storage device 200. The context 700 corresponding to the connection number “J” described in the column 604 is extracted.
In the context 700, the reception command processing flag field 701 is not set with a reception command processing flag, and the transmission interrupted flag field 705 is not set with a transmission interrupted flag (it is “0”). When the reception command 510 is registered in the reception command FIFO 212-J corresponding to the connection number “J” described in the connection number column 604, the context processing unit 341 accepts it as a reply packet to the data transmission packet 600. The packet 620 is transmitted to the transmission source computer via the transmission unit 320 and a reception command write instruction is transmitted to the packet reception unit 342. The packet reception unit 342 writes the data (reception data) described in the data column 608 of the data transmission packet 600 in the reception buffer 222-J in response to the reception command write instruction.

受付パケット620は、受付タイプ欄621と、宛先計算機番号欄621と、送り元計算機番号欄623と、接続番号欄624と、送信命令番号欄625とを含む。
コンテキスト処理部341は、受付タイプ欄621に受付パケットであることを示す受付タイプを書き込み、宛先計算機番号欄621にデータ送信パケット600の宛先計算機番号欄602に記載された宛先計算機番号を書き込み、送り元計算機番号欄623には、データ送信パケット600の送り元計算機番号欄603に記載された送り元計算機番号を書き込み、接続番号欄624には、データ送信パケット600の接続番号欄604に記載された接続番号を書き込み、送信命令番号欄625には、データ送信パケット600の送信命令番号欄605に記載された送信命令番号を書き込み、受付パケット620を生成する。
The reception packet 620 includes a reception type column 621, a destination computer number column 621, a transmission source computer number column 623, a connection number column 624, and a transmission command number column 625.
The context processing unit 341 writes a reception type indicating that it is a reception packet in the reception type column 621, writes the destination computer number described in the destination computer number column 602 of the data transmission packet 600 in the destination computer number column 621, and sends In the former computer number column 623, the sender computer number described in the sender computer number column 603 of the data transmission packet 600 is written, and in the connection number column 624, it is written in the connection number column 604 of the data transmission packet 600. The connection number is written, and the transmission command number written in the transmission command number column 605 of the data transmission packet 600 is written in the transmission command number column 625 to generate a reception packet 620.

受信命令510をコンテキスト処理部341に発行するときの受信命令FIFO212−Jの管理について説明する。
演算装置110で動作中の受信プロセス111−Jが受信命令510をコンテキスト処理部341に発行する時、受信プロセス111−Jは、自身が使用している主記憶装置200上の受信命令FIFO212−Jに受信命令510を追加し、コンテキスト処理部341内の(レジスタ341’が保持する)受信命令FIFO212−Jのライト・ポインタに、追加した受信命令510の数だけ加算する。
コンテキスト処理部341は、受信命令FIFO212−Jのライト・ポインタと受信命令FIFO212−Jのリード・ポインタとを比較する。コンテキスト処理部341は、比較の結果、差分があれば受信命令510が追加されたと判断し、主記憶装置200のコンテキストテーブル201−1〜201−Nから、接続番号“J”に対応するコンテキスト700を取り出す。
前記コンテキスト700の受信命令処理中フラグ欄701の受信命令処理中フラグが“1”であり、送信中断済みフラグ欄705の送信中断済みフラグが“0”である場合、コンテキスト処理部341は、前記受信命令510に対応するデータ送信パケット600を受け取るまで待つ。
一方、送信中断済みフラグ欄705の送信中断済みフラグが“1”である場合、コンテキスト処理部341は、接続番号“J”に対応する遠隔命令FIFO213−Jから遠隔命令(第1遠隔命令、第2遠隔命令)を取り出し、再開要求パケット(後述)を作成し、送信部320を経由して後述する再開要求パケットを交換網400に送信する。
The management of the reception command FIFO 212-J when the reception command 510 is issued to the context processing unit 341 will be described.
When the reception process 111-J operating in the arithmetic unit 110 issues the reception command 510 to the context processing unit 341, the reception process 111-J receives the reception command FIFO 212-J on the main storage device 200 used by itself. The reception instruction 510 is added to the write pointer of the reception instruction FIFO 212-J (held by the register 341 ′) in the context processing unit 341, and the number of the reception instructions 510 added is added.
The context processing unit 341 compares the write pointer of the reception instruction FIFO 212-J with the read pointer of the reception instruction FIFO 212-J. If there is a difference as a result of the comparison, the context processing unit 341 determines that the reception instruction 510 has been added, and the context 700 corresponding to the connection number “J” is determined from the context tables 201-1 to 201-N of the main storage device 200. Take out.
When the received command processing flag in the received command processing flag column 701 of the context 700 is “1” and the transmission interrupted flag in the transmission interrupted flag column 705 is “0”, the context processing unit 341 Wait until data transmission packet 600 corresponding to reception command 510 is received.
On the other hand, when the transmission interrupted flag in the transmission interrupted flag column 705 is “1”, the context processing unit 341 receives a remote command (first remote command, first command from the remote command FIFO 213-J corresponding to the connection number “J”). 2 remote command), a resumption request packet (described later) is created, and a resumption request packet described later is transmitted to the switching network 400 via the transmission unit 320.

図11(a)は、本発明の通信システムにおける遠隔命令640を示す。コンテキスト処理部341がパケット受信部342から受け取ったパケット・ヘッダに基づいて遠隔命令640を生成し、主記憶装置200上の遠隔命令FIFO213に登録する。
遠隔命令640は、遠隔命令タイプ欄641と、宛先計算機番号欄642と、送り元計算機番号欄643と、接続番号欄644と、送信命令番号欄645とから構成される。
コンテキスト処理部341が遠隔命令640を生成するとき、遠隔命令タイプ欄641に、遠隔命令であることを示す遠隔命令タイプを書き込み、宛先計算機番号欄642に、データ送信パケット600の宛先計算機番号欄602に記載された宛先計算機番号を書き込み、送り元計算機番号欄643に、データ送信パケット600の送り元計算機番号欄603に記載された送り元計算機番号を書き込み、接続番号欄644に、データ送信パケット600の接続番号欄604に記載された接続番号を書き込み、送信命令番号欄645に、データ送信パケット600の送信命令番号欄605に記載された送信命令番号を書き込む。
FIG. 11 (a) shows a remote command 640 in the communication system of the present invention. The context processing unit 341 generates a remote command 640 based on the packet header received from the packet receiving unit 342 and registers it in the remote command FIFO 213 on the main storage device 200.
The remote command 640 includes a remote command type column 641, a destination computer number column 642, a source computer number column 643, a connection number column 644, and a transmission command number column 645.
When the context processing unit 341 generates the remote command 640, the remote command type indicating that it is a remote command is written in the remote command type column 641, and the destination computer number column 602 of the data transmission packet 600 is written in the destination computer number column 642. Is written in the source computer number field 643, the source computer number described in the source computer number field 603 of the data transmission packet 600 is written, and the data transmission packet 600 is written in the connection number field 644. The connection number described in the connection number column 604 is written, and the transmission command number described in the transmission command number column 605 of the data transmission packet 600 is written in the transmission command number column 645.

コンテキスト処理部341が遠隔命令640を生成するときに、受信命令FIFO212−Jに受信命令510が登録されているが、受信バッファ222−Jのフルを検出した場合、コンテキスト処理部341は、図11(b)に示されるように、遠隔命令640に受信済みデータ長欄646を追加する。コンテキスト処理部341は、受信済みデータ長欄646に、データ送信パケット600のデータ長欄607に記載されたデータ長を受信済みデータ長として書き込む。   When the context processing unit 341 generates the remote command 640, the reception command 510 is registered in the reception command FIFO 212-J, but when the reception buffer 222-J is detected full, the context processing unit 341 displays As shown in (b), a received data length column 646 is added to the remote command 640. The context processing unit 341 writes the data length described in the data length column 607 of the data transmission packet 600 in the received data length column 646 as the received data length.

上述したように、通信装置300は、接続番号毎に主記憶装置200上の遠隔命令FIFO213−J(保持バッファ)を使用する(図4参照)。
通信装置300のコンテキスト処理部341内のレジスタ341’は、接続番号毎に、主記憶装置200上の遠隔命令FIFO213−1〜213−Nの先頭アドレスへのポインタと、遠隔命令FIFO213−1〜213−Nのリード・ポインタと、遠隔命令FIFO213−1〜213−Nのライト・ポインタとを保持する。遠隔命令FIFO213−1〜213−Nのライト・ポインタは、コンテキスト処理部341が自身に命令する遠隔命令640の数(命令数;0、1、2、…)を表す。遠隔命令FIFO213−1〜213−Nのライト・ポインタは、コンテキスト処理部341が実行した遠隔命令640の数(命令数;0、1、2、…)を表す。
通信装置用のドライバソフトウェア113は、初期設定時に、主記憶装置200上の遠隔命令FIFO213−1〜213−Nの先頭アドレスへのポインタとして初期値をコンテキスト処理部341内のレジスタ341’に予めに設定し、遠隔命令FIFO213−1〜213−N内の最大命令数を前記レジスタ341’に予めに設定する。通信装置用のドライバソフトウェア113は、前記初期設定時に、遠隔命令FIFO213−1〜213−Nのリード・ポインタと、遠隔命令FIFO213−1〜213−Nのライト・ポインタとを“0”にする。遠隔命令FIFO213−1〜213−Nのリード・ポインタ、ライト・ポインタは、最大命令数を越えた場合、“0”になる。
As described above, the communication device 300 uses the remote command FIFO 213-J (holding buffer) on the main storage device 200 for each connection number (see FIG. 4).
The register 341 ′ in the context processing unit 341 of the communication device 300 stores, for each connection number, a pointer to the start address of the remote command FIFOs 213-1 to 213 -N on the main storage device 200 and the remote command FIFOs 213-1 to 213. -N read pointers and remote instruction FIFOs 213-1 through 213-N are held. The write pointers of the remote instructions FIFOs 213-1 to 213 -N represent the number of remote instructions 640 (the number of instructions: 0, 1, 2,...) That the context processing unit 341 instructs itself. The write pointers of the remote instructions FIFOs 213-1 to 213 -N represent the number of remote instructions 640 executed by the context processing unit 341 (number of instructions: 0, 1, 2,...).
The driver software 113 for the communication device stores an initial value in advance in the register 341 ′ in the context processing unit 341 as a pointer to the top address of the remote command FIFOs 213-1 to 213-N on the main storage device 200 at the time of initial setting. The maximum number of instructions in the remote instruction FIFOs 213-1 to 213-N is set in advance in the register 341 ′. The driver software 113 for the communication device sets the read pointers of the remote instructions FIFOs 213-1 to 213-N and the write pointers of the remote instructions FIFOs 213-1 to 213-N to “0” at the time of the initial setting. The read pointer and write pointer of the remote instruction FIFOs 213-1 to 213-N become “0” when the maximum number of instructions is exceeded.

コンテキスト処理部341は、遠隔命令640を主記憶装置200(遠隔命令FIFO213−1〜213−N)に1個追加(登録)する毎に、コンテキスト処理部341内の遠隔命令FIFO213−1〜213−Nのライト・ポインタを1だけ加算する。
コンテキスト処理部341は、遠隔命令FIFO213−J(1、2、…、N)のライト・ポインタと受信命令FIFO212−Jのリード・ポインタとを比較する。コンテキスト処理部341は、比較の結果、差分があれば遠隔命令640が追加されたと判断し、遠隔命令FIFO213−Jの先頭アドレスから遠隔命令FIFO213−Jのリード・ポイントの数だけ進んだ位置の遠隔命令640の次の遠隔命令640を主記憶装置200上の遠隔命令FIFO213−Jから制御装置120、メモリ制御部310を経由して取り出して、前記遠隔命令640を実行する。
コンテキスト処理部341は、1つの遠隔命令640を実行する毎に、コンテキスト処理部241内の遠隔命令FIFO213−Jのリード・ポインタを1だけ加算する。コンテキスト処理部341は、遠隔命令FIFO213−Jのリード・ポインタを1だけ加算した後も遠隔命令FIFO213−Jのリード・ポインタと遠隔命令FIFO213−Jのライト・ポインタとの値が異なっていた場合(差分がある場合)、遠隔命令FIFO213−Jのリード・ポイントにより、次の遠隔命令640を主記憶装置200上の遠隔命令FIFO213−Jから制御装置120、メモリ制御部310を経由して取り出して、前記遠隔命令640を実行する。前記処理は、遠隔命令FIFO213−Jのリード・ポインタと遠隔命令FIFO213−Jのライト・ポインタとの差分がなくなるまで実行される。
Each time the context processing unit 341 adds (registers) one remote command 640 to the main storage device 200 (remote command FIFOs 213-1 to 213-N), the remote command FIFOs 213-1 to 213- in the context processing unit 341 are added. Add 1 to the N write pointer.
The context processing unit 341 compares the write pointer of the remote instruction FIFO 213-J (1, 2,..., N) with the read pointer of the reception instruction FIFO 212-J. If there is a difference as a result of the comparison, the context processing unit 341 determines that the remote command 640 has been added, and the remote at a position advanced from the start address of the remote command FIFO 213-J by the number of read points of the remote command FIFO 213-J. The remote command 640 next to the command 640 is fetched from the remote command FIFO 213-J on the main storage device 200 via the control device 120 and the memory control unit 310, and the remote command 640 is executed.
Every time one remote command 640 is executed, the context processing unit 341 adds 1 to the read pointer of the remote command FIFO 213 -J in the context processing unit 241. The context processing unit 341 adds the read pointer of the remote instruction FIFO 213-J by 1 and the read pointer of the remote instruction FIFO 213-J is different from the write pointer of the remote instruction FIFO 213-J ( If there is a difference), the remote command FIFO 213-J reads the next remote command 640 from the remote command FIFO 213-J on the main storage device 200 via the control device 120 and the memory control unit 310. The remote command 640 is executed. The processing is executed until there is no difference between the read pointer of the remote instruction FIFO 213-J and the write pointer of the remote instruction FIFO 213-J.

図12(a)は、本発明の通信システムにおける再開要求パケット630を示す。演算装置110上で動作している受信プロセス111−Jは、受信命令510をコンテキスト処理部341に発行し、コンテキスト処理部341は、主記憶装置200のコンテキストテーブル201−1〜201−Nから接続番号“J”に対応するコンテキスト700を取り出す。コンテキスト700の送信中断済みフラグ欄705の送信中断済みフラグが“1”である場合、コンテキスト処理部341は、遠隔命令FIFO213−Jから遠隔命令640を取り出し、遠隔命令640に基づいて再開要求パケット630を生成し、送信部320を経由して再開要求パケット630を交換網400に送信する。   FIG. 12A shows a restart request packet 630 in the communication system of the present invention. The reception process 111-J operating on the arithmetic device 110 issues a reception command 510 to the context processing unit 341, and the context processing unit 341 is connected from the context tables 201-1 to 201-N of the main storage device 200. The context 700 corresponding to the number “J” is taken out. When the transmission suspended flag column 705 of the context 700 is “1”, the context processing unit 341 extracts the remote command 640 from the remote command FIFO 213 -J, and resume request packet 630 based on the remote command 640. And the restart request packet 630 is transmitted to the switching network 400 via the transmission unit 320.

再開要求パケット630は、再開要求タイプ欄631と、宛先計算機番号632と、送り元計算機番号欄633と、接続番号欄634と、送信命令番号欄635とを含む。
コンテキスト処理部341は、再開要求パケット630を生成するとき、再開要求タイプ欄631に、再開要求を示す再開要求タイプを書き込み、宛先計算機番号632に、遠隔命令640の宛先計算機番号欄642に記載された宛先計算機番号を書き込み、送り元計算機番号欄633に、遠隔命令640の送り元計算機番号欄643に記載された送り元計算機番号を書き込み、接続番号欄634に、遠隔命令640の接続番号欄644に記載された接続番号を書き込み、送信命令番号欄635に、遠隔命令640の送信命令番号欄645に記載された送信命令番号を書き込む。
The restart request packet 630 includes a restart request type column 631, a destination computer number 632, a source computer number column 633, a connection number column 634, and a transmission command number column 635.
When the context processing unit 341 generates the restart request packet 630, the context processing unit 341 writes the restart request type indicating the restart request in the restart request type column 631, and is described in the destination computer number 632 in the destination computer number column 642 of the remote command 640. The destination computer number is written, the source computer number described in the source computer number column 643 of the remote command 640 is written in the source computer number column 633, and the connection number column 644 of the remote command 640 is written in the connection number column 634. And the transmission command number described in the transmission command number column 645 of the remote command 640 is written in the transmission command number column 635.

コンテキスト処理部341は、受信バッファ222−Jのフルによって送信(転送)の中断を実施しているときに前記転送を再開する場合(再開要求パケット630を送信する場合)、図12(b)に示されるように、再開要求パケット630に受信済みデータ長欄636を追加する。コンテキスト処理部341は、受信済みデータ長欄636に、遠隔命令640の受信済みデータ長欄646に記載された受信済みデータ長を書き込む。   When the transfer is resumed when the transmission (transfer) is interrupted due to the reception buffer 222-J being full (when the resume request packet 630 is transmitted), the context processing unit 341 returns to FIG. As shown, a received data length column 636 is added to the resume request packet 630. The context processing unit 341 writes the received data length described in the received data length column 646 of the remote command 640 in the received data length column 636.

次に、本発明の通信システムの動作として、パケット送信実行処理、パケット受信実行処理、受信命令実行処理について説明する。ここで、送り元計算機を電子計算機100−1とし、宛先計算機を電子計算機100−2とする。   Next, packet transmission execution processing, packet reception execution processing, and reception command execution processing will be described as operations of the communication system of the present invention. Here, the transmission source computer is the electronic computer 100-1, and the destination computer is the electronic computer 100-2.

図13は、本発明の通信システムの動作であるパケット送信実行処理(ステップS1〜S13)を示すフローチャートである。
電子計算機100−1の演算装置110上の送信プロセス111−Jが、主記憶装置200(送信命令FIFO211−J)に送信命令500を書き込み(登録し)、電子計算機100−1の送信部320の命令処理部322内の(レジスタ322’が保持する)送信命令FIFO211−Jのライト・ポインタに前記送信命令500の数だけ加算したとき、電子計算機100−1の送信部320は、パケット送信実行処理を行う。
FIG. 13 is a flowchart showing packet transmission execution processing (steps S1 to S13) which is the operation of the communication system of the present invention.
The transmission process 111-J on the arithmetic unit 110 of the electronic computer 100-1 writes (registers) the transmission command 500 in the main storage device 200 (transmission command FIFO 211-J), and the transmission unit 320 of the electronic computer 100-1 When the number of transmission instructions 500 is added to the write pointer of the transmission instruction FIFO 211-J (held by the register 322 ′) in the instruction processing unit 322, the transmission unit 320 of the electronic computer 100-1 performs packet transmission execution processing. I do.

まず、送信部320は、送信命令取り出し処理を行う(ステップS1)。
送信命令FIFO211−Jのライト・ポインタが更新されたことにより、送信命令FIFO211−Jのライト・ポインタと送信命令FIFO211−Jのリード・ポインタとに差分が発生するため、命令処理部322は、送信命令FIFO211−Jの先頭アドレスから送信命令FIFO211−Jのリード・ポイントの数だけ進んだ位置の送信命令500の次の送信命令500を主記憶装置200上の送信命令FIFO211−Jから制御装置120、メモリ制御部310を経由して取り出して、命令処理部322内の送信命令FIFO211−Jのリード・ポインタに送信命令500を取り出した数だけ加算する。
First, the transmission unit 320 performs transmission command extraction processing (step S1).
Since the write pointer of the transmission command FIFO 211-J is updated, a difference occurs between the write pointer of the transmission command FIFO 211-J and the read pointer of the transmission command FIFO 211-J. Therefore, the command processing unit 322 transmits The transmission command 500 following the transmission command 500 at the position advanced by the number of read points of the transmission command FIFO 211-J from the head address of the command FIFO 211-J is transmitted from the transmission command FIFO 211-J on the main storage device 200 to the control device 120. The data is fetched via the memory control unit 310 and added to the read pointer of the transmission command FIFO 211-J in the command processing unit 322 by the number of transmission commands 500.

次に、送信部320は、転送長・転送アドレス設定処理を行う(ステップS2)。
命令処理部322は、取り出した送信命令500により、主記憶装置200上の上記の転送長レジスタ231−Jに、送信命令500の転送長欄505に記載された転送長を設定し、主記憶装置200上の上記の転送アドレスレジスタ232−Jに、送信命令500の送信バッファ開始アドレス欄504に記載された送信バッファ開始アドレスを設定し、送信命令500に対応するACKフラグをクリアする。ACKフラグは、セットを示す“1”、又は、クリアを示す“0”で表され、命令処理部322のレジスタ322’に設定されている。
Next, the transmission unit 320 performs transfer length / transfer address setting processing (step S2).
The instruction processing unit 322 sets the transfer length described in the transfer length column 505 of the transmission command 500 in the transfer length register 231 -J on the main storage device 200 according to the extracted transmission command 500, and the main storage device The transmission buffer start address described in the transmission buffer start address column 504 of the transmission command 500 is set in the transfer address register 232 -J on the 200, and the ACK flag corresponding to the transmission command 500 is cleared. The ACK flag is represented by “1” indicating set or “0” indicating clear, and is set in the register 322 ′ of the instruction processing unit 322.

次に、送信部320は、送信データ取り出し処理を行う(ステップS3)。
命令処理部322は、主記憶装置200上の転送アドレスレジスタ232−Jに設定された送信バッファ開始アドレスから、交換網400上で最大の1パケットのデータ長を越えず、転送長レジスタ231−Jに設定された転送長を超えない最大のデータ長のデータを送信データとして送信バッファ221−Jから取り出して(読み出して)パケット送信部321に転送するように、メモリ制御部310に指示する。すなわち、主記憶装置200から読み出されるデータ長は、Min(1パケットの最大データ長、転送長レジスタ231−Jに設定された転送長)となる。ただし、Min(a、b)は、a<=bの場合にa、a>bの場合にbの値となる関数である。例えば、転送長レジスタ231−Jに設定された転送長が100バイト、1パケットの最大データ長が256バイトの場合、主記憶装置200から取り出されるデータのデータ長はMin(100、256)バイト、すなわち100バイトとなる。
Next, the transmission unit 320 performs transmission data extraction processing (step S3).
The instruction processing unit 322 does not exceed the maximum data length of one packet on the switching network 400 from the transmission buffer start address set in the transfer address register 232-J on the main storage device 200, and the transfer length register 231-J. The memory control unit 310 is instructed to take out (read out) the data having the maximum data length not exceeding the transfer length set in (2) from the transmission buffer 221-J as transmission data and transfer it to the packet transmission unit 321. That is, the data length read from the main storage device 200 is Min (maximum data length of one packet, transfer length set in the transfer length register 231-J). However, Min (a, b) is a function that takes the value a when a < = b and the value b when a > b. For example, when the transfer length set in the transfer length register 231-J is 100 bytes, and the maximum data length of one packet is 256 bytes, the data length of the data retrieved from the main storage device 200 is Min (100, 256) bytes, That is, 100 bytes.

次に、送信部320は、パケット生成処理を行う(ステップS4)。
パケット送信部321は、データ送信パケット600を生成するために、データ送信パケット600の各欄に必要事項を書き込む。パケット送信部321は、送信タイプを送信タイプ欄601に書き込み、宛先計算機(電子計算機100−2)を識別する宛先計算機番号を宛先計算機番号欄602に書き込み、送り元計算機(電子計算機100−1)を識別する送り元計算機番号を送り元計算機番号欄603に書き込む。更に、パケット送信部321は、宛先プロセス(宛先計算機の受信プロセス)を識別する接続番号を接続番号欄604に書き込み、特定の送信命令500(データ送信パケット600が今生成されたときの送信命令500)を識別するための送信命令番号を送信命令番号欄605に書き込む。更に、パケット送信部321は、送信データが予め決められたパケット(データ送信パケット600)の長さに分割されたときに、同一の送信命令500(上記の特定の送信命令500)で生成された前記データ送信パケット600が前記送信命令500の何番目のデータ送信パケット600であるかを示すパケット番号をパケット番号欄606に書き込む。更に、パケット送信部321は、データ送信パケット600に組み込まれた送信データの長さを示すデータ長をデータ長欄607に書き込み、送信バッファ221−Jから読み出された送信データをデータ欄608に書き込む。
Next, the transmission unit 320 performs packet generation processing (step S4).
The packet transmission unit 321 writes necessary information in each column of the data transmission packet 600 in order to generate the data transmission packet 600. The packet transmission unit 321 writes the transmission type in the transmission type column 601, writes the destination computer number identifying the destination computer (electronic computer 100-2) in the destination computer number column 602, and sends the source computer (electronic computer 100-1). Is written in the sender computer number column 603. Further, the packet transmission unit 321 writes a connection number for identifying the destination process (the reception process of the destination computer) in the connection number column 604, and transmits a specific transmission command 500 (a transmission command 500 when the data transmission packet 600 is now generated). ) Is written in the transmission command number column 605. Further, the packet transmission unit 321 is generated with the same transmission command 500 (the above-mentioned specific transmission command 500) when the transmission data is divided into predetermined packet (data transmission packet 600) lengths. A packet number indicating which data transmission packet 600 of the transmission command 500 is the data transmission packet 600 is written in the packet number column 606. Further, the packet transmission unit 321 writes the data length indicating the length of the transmission data incorporated in the data transmission packet 600 in the data length column 607 and the transmission data read from the transmission buffer 221 -J in the data column 608. Write.

次に、送信部320は、パケット送信処理を行う(ステップS5)。
パケット送信部321は、生成されたデータ送信パケット600を交換網400に送信する。このように、電子計算機100−1(送り元計算機)は、電子計算機100−2(宛先計算機)の受信命令FIFO212−Jに受信命令510が登録されているか否かに関わらず、データ送信パケット600を電子計算機100−2に転送する。
このため、本発明の通信システムによれば、電子計算機100−1(送り元計算機)は、電子計算機100−2(宛先計算機)に対して、従来の技術で説明されたような事前制御通信を行わずに、データ送信パケット600を転送することができる(データ転送を行うことができる)。
Next, the transmission unit 320 performs packet transmission processing (step S5).
The packet transmission unit 321 transmits the generated data transmission packet 600 to the switching network 400. As described above, the electronic computer 100-1 (source computer) transmits the data transmission packet 600 regardless of whether or not the reception command 510 is registered in the reception command FIFO 212-J of the electronic computer 100-2 (destination computer). Is transferred to the electronic computer 100-2.
For this reason, according to the communication system of the present invention, the electronic computer 100-1 (source computer) performs pre-control communication as described in the prior art on the electronic computer 100-2 (destination computer). Without this, the data transmission packet 600 can be transferred (data transfer can be performed).

次に、送信部320は、転送長レジスタ、転送アドレスレジスタ更新処理を行う(ステップS6)。
命令処理部322は、転送長レジスタ231−Jに設定された転送長から、パケット送信部321によりデータ送信パケット600が送信(転送)されたときのデータ長を減算する。同時に、命令処理部322は、転送アドレスレジスタ232−Jに設定された送信バッファ開始アドレスに、データ送信パケット600が送信(転送)されたときのデータ長を加算する。
Next, the transmission unit 320 performs a transfer length register / transfer address register update process (step S6).
The instruction processing unit 322 subtracts the data length when the data transmission packet 600 is transmitted (transferred) by the packet transmission unit 321 from the transfer length set in the transfer length register 231 -J. At the same time, the instruction processing unit 322 adds the data length when the data transmission packet 600 is transmitted (transferred) to the transmission buffer start address set in the transfer address register 232-J.

次に、送信部320は、中断要求確認処理を行う(ステップS7)。
受信部340のパケット受信部342で受信されたデータ送信パケット600以外のパケットがコンテキスト処理部341を経由して命令処理部322に転送されたとき、命令処理部322は、パケット送信部321が送信(転送)したデータ送信パケット600の送信命令番号欄505に記載された送信命令番号と一致する送信命令番号を含む中断要求パケット610を受信部340(パケット受信部342)が受信したかを確認する。
受信部340(パケット受信部342)が中断要求パケット610を受信していない場合(ステップS7−NO)、送信部320は、受付パケット受信(ステップS10)を行う。
受信部340(パケット受信部342)が中断要求パケット610を受信した場合(ステップS7−YES)、命令処理部322は、電子計算機100−2(宛先計算機)からの中断要求パケット610に応じて、データ送信パケット600の転送を中断し、送信部320は、再開要求受信待ち処理(ステップS8)を行う。
このように、本発明の通信システムによれば、電子計算機100−2(宛先計算機)が受け取れない無駄なデータ転送を早期に抑止し、交換網400を流れる無駄なデータを低減することができる。
Next, the transmission unit 320 performs an interruption request confirmation process (step S7).
When a packet other than the data transmission packet 600 received by the packet reception unit 342 of the reception unit 340 is transferred to the instruction processing unit 322 via the context processing unit 341, the packet transmission unit 321 transmits the instruction processing unit 322. It is confirmed whether the receiving unit 340 (packet receiving unit 342) has received the interruption request packet 610 including the transmission command number that matches the transmission command number described in the transmission command number column 505 of the (transferred) data transmission packet 600. .
When the reception unit 340 (packet reception unit 342) has not received the interruption request packet 610 (step S7—NO), the transmission unit 320 performs reception packet reception (step S10).
When the reception unit 340 (packet reception unit 342) receives the interruption request packet 610 (step S7-YES), the instruction processing unit 322 responds to the interruption request packet 610 from the electronic computer 100-2 (destination computer). The transfer of the data transmission packet 600 is interrupted, and the transmission unit 320 performs a restart request reception waiting process (step S8).
Thus, according to the communication system of the present invention, useless data transfer that cannot be received by the electronic computer 100-2 (destination computer) can be prevented at an early stage, and useless data flowing through the exchange network 400 can be reduced.

再開要求受信待ち処理(ステップS8)を説明する。
命令処理部322は、パケット送信部321が送信(転送)したデータ送信パケット600の送信命令番号欄505に記載された送信命令番号と一致する送信命令番号を含む再開要求パケット630を受信部340(パケット受信部342)が受信するまで待つ。
The restart request reception waiting process (step S8) will be described.
The command processing unit 322 receives the restart request packet 630 including the transmission command number that matches the transmission command number described in the transmission command number column 505 of the data transmission packet 600 transmitted (transferred) by the packet transmission unit 321, Wait until the packet receiver 342) receives it.

再開要求パケット630を受信した場合(ステップS8−YES)、送信部320は、転送長・転送アドレス再設定処理(ステップS9)を行う。前記転送長・転送アドレス再設定処理には、第1転送長・転送アドレス再設定処理と、第2転送長・転送アドレス再設定処理とが含まれる。第1転送長・転送アドレス再設定処理とは、再開要求パケット630による再開要求時に送信データの全てを送信(転送)する処理である。第2転送長・転送アドレス再設定処理とは、再開要求パケット630による再開要求時に、送信データのうち、宛先計算機(電子計算機100−2)が既に受信したデータ以外のデータ(残りデータ)を送信(転送)する処理である。   When the restart request packet 630 is received (step S8—YES), the transmission unit 320 performs transfer length / transfer address resetting processing (step S9). The transfer length / transfer address resetting process includes a first transfer length / transfer address resetting process and a second transfer length / transfer address resetting process. The first transfer length / transfer address resetting process is a process of transmitting (transferring) all transmission data when a restart request is made by the restart request packet 630. The second transfer length / transfer address resetting process is to transmit data (remaining data) other than the data already received by the destination computer (electronic computer 100-2) among the transmission data at the time of the restart request by the restart request packet 630. (Transfer) processing.

第1転送長・転送アドレス再設定処理では、命令処理部322は、先に取り出した送信命令500により、主記憶装置200上の転送長レジスタ231−Jに、送信命令500の転送長欄505に記載された転送長を設定し、主記憶装置200上の転送アドレスレジスタ232−Jに、送信命令500の送信バッファ開始アドレス欄504に記載された送信バッファ開始アドレスを設定する。   In the first transfer length / transfer address resetting process, the instruction processing unit 322 stores the transfer command 500 previously extracted into the transfer length register 231 -J in the main storage device 200 and the transfer length column 505 of the transmission command 500. The described transfer length is set, and the transmission buffer start address described in the transmission buffer start address column 504 of the transmission command 500 is set in the transfer address register 232 -J on the main storage device 200.

第2転送長・転送アドレス再設定処理では、命令処理部322は、第1転送長・転送アドレス再設定処理を実行した後、転送長レジスタ231−Jに設定された転送長から、再開要求パケット630の受信済みデータ長欄636に記載された受信済みデータ長を減算する。同時に、命令処理部322は、転送アドレスレジスタ232−Jに設定された送信バッファ開始アドレスに、受信済みデータ長を加算する。   In the second transfer length / transfer address reset process, the instruction processing unit 322 executes the first transfer length / transfer address reset process, and then restarts the request packet from the transfer length set in the transfer length register 231-J. The received data length described in the received data length column 636 of 630 is subtracted. At the same time, the instruction processing unit 322 adds the received data length to the transmission buffer start address set in the transfer address register 232-J.

送信部320は、転送長・転送アドレス再設定処理(ステップS9)を行った後、再度、送信データ取り出し処理を行う(ステップS3)。
本発明の通信システムによれば、電子計算機100−1(送り元計算機)は、電子計算機100−2(宛先計算機)が受け取れないデータのみを再度転送すればよいため、電子計算機100−2(宛先計算機)に対して、従来の技術で説明されたような事前制御通信を行わずに、データ送信パケット600を転送することができる(データ転送を行うことができる)。
本発明の通信システムによれば、電子計算機100−1(送り元計算機)は、再開要求パケット630に含まれる受信済みデータ長を参照して、先にデータ送信パケット600にて転送したデータのデータ長のうちの、受信済みデータ長以外のデータ長を有するデータ(上記の残りデータ)を電子計算機100−2(宛先計算機)に転送すればよい。このため、本発明の通信システムによれば、前記残りデータを電子計算機100−1(送り元計算機)から電子計算機100−2(宛先計算機)に転送するときの転送時間は、例えば、先に転送したデータを電子計算機100−1(送り元計算機)から電子計算機100−2(宛先計算機)に始めから転送した場合の転送時間よりも短くなる。
After performing the transfer length / transfer address resetting process (step S9), the transmission unit 320 performs the transmission data extraction process again (step S3).
According to the communication system of the present invention, the electronic computer 100-1 (source computer) only has to transfer again data that cannot be received by the electronic computer 100-2 (destination computer). The data transmission packet 600 can be transferred (data transfer can be performed) to the computer without performing the prior control communication as described in the prior art.
According to the communication system of the present invention, the electronic computer 100-1 (sender computer) refers to the received data length included in the restart request packet 630, and the data of the data previously transferred in the data transmission packet 600. Data having a data length other than the received data length (the remaining data) may be transferred to the electronic computer 100-2 (destination computer). Therefore, according to the communication system of the present invention, the transfer time when the remaining data is transferred from the electronic computer 100-1 (source computer) to the electronic computer 100-2 (destination computer) is, for example, transferred first. The transfer time when the transferred data is transferred from the electronic computer 100-1 (source computer) to the electronic computer 100-2 (destination computer) from the beginning is shorter.

受付パケット受信処理(ステップS10)を説明する。
命令処理部322は、パケット送信部321が送信(転送)したデータ送信パケット600の送信命令番号欄505に記載された送信命令番号と一致する送信命令番号を含む受付パケット620を受信部340(パケット受信部342)が受信したかを確認する。
受信部340(パケット受信部342)が受付パケット620を受信した場合(ステップS10−YES)、送信部320は、ACKフラグ・セット処理(ステップS11)を行う。
受信部340(パケット受信部342)が受付パケット620を受信していない場合(ステップS10−NO)、送信部320は、残転送長確認処理(ステップS12)を行う。
The received packet reception process (step S10) will be described.
The command processing unit 322 receives the reception packet 620 including the transmission command number that matches the transmission command number described in the transmission command number column 505 of the data transmission packet 600 transmitted (transferred) by the packet transmission unit 321, with the reception unit 340 (packet It is confirmed whether the receiving unit 342) has received it.
When the reception unit 340 (packet reception unit 342) receives the reception packet 620 (step S10—YES), the transmission unit 320 performs ACK flag setting processing (step S11).
When the reception unit 340 (packet reception unit 342) has not received the reception packet 620 (step S10—NO), the transmission unit 320 performs a remaining transfer length confirmation process (step S12).

ACKフラグ・セット処理(ステップS11)を説明する。
命令処理部322は、受信部340からの受付パケット620により、送信命令500に対応するACKフラグ“1”をセットする。前記セットされたACKフラグは、送り元計算機(電子計算機100−1)からの送信命令500(データ送信パケット600)に対して、宛先計算機(電子計算機100−2)から受付パケット620を受信したことを示す。
The ACK flag setting process (step S11) will be described.
The command processing unit 322 sets the ACK flag “1” corresponding to the transmission command 500 based on the reception packet 620 from the reception unit 340. The set ACK flag indicates that the reception packet 620 has been received from the destination computer (electronic computer 100-2) in response to the transmission command 500 (data transmission packet 600) from the transmission source computer (electronic computer 100-1). Indicates.

残転送長確認処理(ステップS12)を説明する。
命令処理部322は、主記憶装置200上の転送長レジスタ231−Jに設定された転送長が0以下であるか確認する。
転送長レジスタ231−Jに設定された転送長が0以下であれば、送信部320は、ACKフラグ確認処理(ステップS13)を行う。
転送長レジスタ231−Jに設定された転送長が0より大きければ、送信部320は、再度、送信データ取り出し処理を行う(ステップS3)を行う。
The remaining transfer length confirmation process (step S12) will be described.
The instruction processing unit 322 checks whether the transfer length set in the transfer length register 231 -J on the main storage device 200 is 0 or less.
If the transfer length set in the transfer length register 231-J is 0 or less, the transmission unit 320 performs ACK flag confirmation processing (step S13).
If the transfer length set in the transfer length register 231-J is larger than 0, the transmission unit 320 performs transmission data extraction processing again (step S3).

ACKフラグ確認処理(ステップS13)を説明する。
命令処理部322は、送信命令500に対応するACKフラグがセットされているか(“1”であるか)確認する。
送信命令500に対応するACKフラグがセットされている場合、送信部320は、パケット送信実行処理を完了する。
送信命令500に対応するACKフラグがクリアである場合、送信部320は、再度、中断要求確認処理を行う(ステップS7)を行う。
The ACK flag confirmation process (step S13) will be described.
The command processing unit 322 confirms whether the ACK flag corresponding to the transmission command 500 is set (is “1”).
When the ACK flag corresponding to the transmission command 500 is set, the transmission unit 320 completes the packet transmission execution process.
If the ACK flag corresponding to the transmission command 500 is clear, the transmission unit 320 performs the interruption request confirmation process again (step S7).

図14は、本発明の通信システムの動作であるパケット受信実行処理(ステップS21〜S33)を示すフローチャートである。
電子計算機100−2の受信部340のパケット受信部342が、交換網400を介して電子計算機100−1(送り元計算機)から送信されたパケットを受信したとき、電子計算機100−2(宛先計算機)の受信部340は、パケット受信実行処理を行う。
FIG. 14 is a flowchart showing packet reception execution processing (steps S21 to S33) which is the operation of the communication system of the present invention.
When the packet reception unit 342 of the reception unit 340 of the electronic computer 100-2 receives a packet transmitted from the electronic computer 100-1 (source computer) via the switching network 400, the electronic computer 100-2 (destination computer) The receiving unit 340 performs packet reception execution processing.

まず、受信部340は、パケット判別処理を行う(ステップS21)。
受信部340のパケット受信部342は、受信した受信パケットがデータ送信パケット600であるか判別する。パケット受信部342は、受信パケットがデータ送信パケット600である場合、受信パケット(データ送信パケット600)の送信タイプ欄601に記載された送信タイプにより確認する。
受信パケットがデータ送信パケット600ではない場合、受信部340は、送信部通知処理(ステップS22)を実行する。
受信パケットがデータ送信パケット600である場合、受信部340は、コンテキストロード処理(ステップS23)を実行する。
First, the receiving unit 340 performs packet discrimination processing (step S21).
The packet reception unit 342 of the reception unit 340 determines whether the received reception packet is the data transmission packet 600. When the received packet is the data transmission packet 600, the packet receiving unit 342 confirms the transmission type described in the transmission type column 601 of the received packet (data transmission packet 600).
If the received packet is not the data transmission packet 600, the reception unit 340 performs a transmission unit notification process (step S22).
When the received packet is the data transmission packet 600, the receiving unit 340 executes a context load process (step S23).

送信部通知処理(ステップS22)を説明する。
パケット受信部342は、受信パケットがデータ送信パケット600ではないため、コンテキスト処理部341を経由して、送信部320の命令処理部322に前記パケットを転送する。受信部340は、送信部通知処理を行った後、パケット受信実行処理を完了する。
A transmission part notification process (step S22) is demonstrated.
Since the received packet is not the data transmission packet 600, the packet reception unit 342 transfers the packet to the command processing unit 322 of the transmission unit 320 via the context processing unit 341. The reception unit 340 completes the packet reception execution process after performing the transmission unit notification process.

コンテキストロード処理(ステップS23)を説明する。
受信パケット(データ送信パケット600)である場合、パケット受信部342は、前記受信パケット(受信パケット600とする)のパケット・ヘッダをコンテキスト処理部341に転送する。コンテキスト処理部341は、主記憶装置200のコンテキストテーブル201−1〜201−Nから、パケット・ヘッダの接続番号欄604に記載された接続番号“J”に対応するコンテキスト700を取り出す(ロードする)。
The context load process (step S23) will be described.
In the case of a received packet (data transmission packet 600), the packet receiving unit 342 transfers the packet header of the received packet (referred to as the received packet 600) to the context processing unit 341. The context processing unit 341 extracts (loads) the context 700 corresponding to the connection number “J” described in the connection number column 604 of the packet header from the context tables 201-1 to 201-N of the main storage device 200. .

次に、受信部340は、受信命令確認処理(ステップS24)を行う。   Next, the reception unit 340 performs reception command confirmation processing (step S24).

ケースA2の場合、即ち、前記ロードされたコンテキスト700の受信命令処理中フラグ欄701の受信命令処理中フラグが“1”であり、送信中断済みフラグ欄705の送信中断済みフラグが“0”であり、残受信バッファ長が十分である場合、コンテキスト処理部341は、前記受信命令510に対応する受信パケット(データ送信パケット600)を受け取るまで待つ。前記受信パケット600を受け取ったとき(ステップS24−NO)、コンテキスト処理部341は、第1パケット確認処理(ステップS25)を行う。   In case A2, that is, the received instruction processing flag in the received instruction processing flag column 701 of the loaded context 700 is “1”, and the transmission interrupted flag in the transmission interrupted flag column 705 is “0”. If the remaining reception buffer length is sufficient, the context processing unit 341 waits until a reception packet (data transmission packet 600) corresponding to the reception command 510 is received. When the received packet 600 is received (step S24—NO), the context processing unit 341 performs a first packet confirmation process (step S25).

ケースA1の場合、即ち、前記ロードされたコンテキスト700の送信中断済みフラグ欄705の送信中断済みフラグが“0”であり、パケット・ヘッダ内の接続番号欄604に記載された接続番号“J”に対応する受信命令FIFO212−Jに受信命令510が登録され、残受信バッファ長が十分である場合(ステップS24−NO)、コンテキスト処理部341は、第1パケット確認処理(ステップS25)を行う。   In case A1, that is, the transmission interrupted flag in the transmission interrupted flag column 705 of the loaded context 700 is “0”, and the connection number “J” described in the connection number column 604 in the packet header. When the reception command 510 is registered in the reception command FIFO 212-J corresponding to the above and the remaining reception buffer length is sufficient (step S24-NO), the context processing unit 341 performs the first packet confirmation processing (step S25).

ケースR2の場合、即ち、前記ロードされたコンテキスト700の受信命令処理中フラグ欄701の受信命令処理中フラグが“0”であり、前記コンテキスト700の送信中断済みフラグ欄705の送信中断済みフラグが“0”であり、パケット・ヘッダ内の接続番号欄604に記載された値“J”に対応する受信命令FIFO212−Jに受信命令510が登録されていない場合(ステップS24−YES)、コンテキスト処理部341は、遠隔命令ストア処理(ステップS32)を行う。   In case R2, that is, the received instruction processing flag in the received instruction processing flag column 701 of the loaded context 700 is “0”, and the transmission interrupted flag in the transmission interrupted flag column 705 of the context 700 is set. When it is “0” and the reception command 510 is not registered in the reception command FIFO 212-J corresponding to the value “J” described in the connection number column 604 in the packet header (step S24—YES), context processing The unit 341 performs remote instruction store processing (step S32).

ケースR1の場合、即ち、前記ロードされたコンテキスト700の受信命令処理中フラグ欄701の受信命令処理中フラグが“0”であり、前記コンテキスト700の送信中断済みフラグ欄705の送信中断済みフラグが“0”であり、パケット・ヘッダ内の接続番号欄604に記載された値“J”に対応する受信命令FIFO212−Jに受信命令510が登録されているが、残受信バッファ長が不十分(受信バッファフル)である場合(ステップS24−YES)、コンテキスト処理部341は、遠隔命令ストア処理(ステップS32)を行う。   In the case of case R1, that is, the received instruction processing flag in the received instruction processing flag column 701 of the loaded context 700 is “0”, and the transmission interrupted flag in the transmission interrupted flag column 705 of the context 700 is set. The reception command 510 is registered in the reception command FIFO 212-J corresponding to the value “J” described in the connection number column 604 in the packet header, but the remaining reception buffer length is insufficient ( When the reception buffer is full (step S24-YES), the context processing unit 341 performs a remote instruction store process (step S32).

ケースR3の場合、即ち、前記ロードされたコンテキスト700の受信命令処理中フラグ欄701の受信命令処理中フラグが“1”であり、前記コンテキスト700の送信中断済みフラグ欄705の送信中断済みフラグが“0”であり、残受信バッファ長が不十分(受信バッファフル)である場合(ステップS24−YES)、コンテキスト処理部341は、遠隔命令ストア処理(ステップS32)を行う。   In case R3, that is, the received instruction processing flag in the received instruction processing flag column 701 of the loaded context 700 is “1”, and the transmission interrupted flag in the transmission interrupted flag column 705 of the context 700 is set. When it is “0” and the remaining reception buffer length is insufficient (reception buffer full) (step S24—YES), the context processing unit 341 performs a remote instruction store process (step S32).

なお、ケースD1の場合、即ち、前記ロードされたコンテキスト700の送信中断済みフラグ欄705の送信中断済みフラグが“1”であり、送信中断済みフラグ欄705の送信中断済みフラグが“1”である場合、受信部340のコンテキスト処理部341は、前記受信パケット600を破棄する。   In case D1, that is, the transmission interrupted flag in the transmission interrupted flag column 705 of the loaded context 700 is “1”, and the transmission interrupted flag in the transmission interrupted flag column 705 is “1”. If there is, the context processing unit 341 of the receiving unit 340 discards the received packet 600.

第1パケット確認処理(ステップS25)を説明する。   The first packet confirmation process (step S25) will be described.

前記ケースA2では、前記ロードされたコンテキスト700の受信命令処理中フラグ欄701の受信命令処理中フラグが“1”であるため、同一の送信命令500(上述の特定の送信命令500)で生成された受信パケット600のうちの1番目の受信パケット(第1パケット)ではない(ステップS25−NO)。すなわち、パケット・ヘッダ内のパケット番号欄606に記載されたパケット番号が最初のパケット番号ではなく、受信部340は、後続の受信パケット600を待っている状態であり、受信部340は、受信データストア処理(ステップS28)を行う。   In the case A2, since the received command processing flag in the received command processing flag column 701 of the loaded context 700 is “1”, it is generated with the same transmission command 500 (the specific transmission command 500 described above). It is not the first received packet (first packet) among the received packets 600 (step S25-NO). That is, the packet number described in the packet number field 606 in the packet header is not the first packet number, and the receiving unit 340 is waiting for the subsequent received packet 600. The receiving unit 340 Store processing (step S28) is performed.

前記ケースA1では、前記ロードされたコンテキスト700の受信命令処理中フラグ欄701の受信命令処理中フラグが“0”であるため、同一の送信命令500(上述の特定の送信命令500)で生成された受信パケット600のうちの1番目の受信パケット(第1パケット)である(ステップS25−YES)。すなわち、パケット・ヘッダ内のパケット番号欄606に記載されたパケット番号が最初のパケット番号を表し、受信部340は、受信命令取り出し処理(ステップS26)を行う。   In the case A1, since the received command processing flag in the received command processing flag column 701 of the loaded context 700 is “0”, the same transmission command 500 (the specific transmission command 500 described above) is generated. This is the first received packet (first packet) of the received packets 600 (step S25—YES). That is, the packet number described in the packet number column 606 in the packet header represents the first packet number, and the reception unit 340 performs reception command extraction processing (step S26).

受信命令取り出し処理(ステップS26)を説明する。
受信部340のコンテキスト処理部341は、パケット・ヘッダ内の接続番号欄604に記載された接続番号“J”に一致する受信命令FIFO212−Jを参照し、前記受信命令FIFO212−Jに登録された受信命令510を取り出す。コンテキスト処理部341は、前記受信命令510の受信タイプ欄511、受信バッファ開始アドレス欄514、受信バッファ長欄515に、前記ロードされたコンテキスト700の処理中受信命令欄710の受信タイプ欄711、受信バッファ開始アドレス欄712、受信バッファ長欄713に記載された内容を書き込む(更新する)。コンテキスト処理部341は、前記ロードされたコンテキスト700の受信命令処理中フラグ欄701に受信命令処理中フラグ“1”をセットする。コンテキスト処理部341は、前記ロードされたコンテキスト700の送信命令番号欄702に、パケット・ヘッダ内の送信命令番号欄605に記載された送信命令番号を書き込む(更新する)。コンテキスト処理部341は、前記ロードされたコンテキスト700の最終受信パケット番号欄703に、パケット・ヘッダ内のパケット番号欄606に記載されたパケット番号を書き込む(更新する)。コンテキスト処理部341は、前記ロードされたコンテキスト700の処理中受信命令の受信済みデータ長欄704に“0”を書き込む(設定する)。前記ステップでは、前記ロードされたコンテキスト700の送信中断済みフラグ欄705には、“0”が書き込まれているため(送信中断済みフラグがセットされていないため)、更新しない。
The received command extraction process (step S26) will be described.
The context processing unit 341 of the reception unit 340 refers to the reception command FIFO 212-J that matches the connection number “J” described in the connection number column 604 in the packet header, and is registered in the reception command FIFO 212-J. Receive command 510 is fetched. The context processing unit 341 includes a reception type column 511 of the reception command 510, a reception buffer start address column 514, a reception buffer length column 515, a reception type column 711 of the processing instruction command column 710 of the loaded context 700, a reception The contents described in the buffer start address column 712 and the reception buffer length column 713 are written (updated). The context processing unit 341 sets a reception command processing flag “1” in the reception command processing flag column 701 of the loaded context 700. The context processing unit 341 writes (updates) the transmission command number described in the transmission command number column 605 in the packet header in the transmission command number column 702 of the loaded context 700. The context processing unit 341 writes (updates) the packet number described in the packet number column 606 in the packet header in the last received packet number column 703 of the loaded context 700. The context processing unit 341 writes (sets) “0” in the received data length column 704 of the received processing instruction of the loaded context 700. In the step, since “0” is written in the transmission interrupted flag column 705 of the loaded context 700 (since the transmission interrupted flag is not set), no update is performed.

次に、受信部340は、受付パケット送信処理(ステップS27)を行う。
受信部340のコンテキスト処理部341は、受信パケット600に対する返信パケットとして受付パケット620を生成したとき、受付タイプを受付タイプ欄621に書き込み、パケット・ヘッダ内の宛先計算機番号欄602に記載された宛先計算機番号を宛先計算機番号欄621に書き込み、パケット・ヘッダ内の送り元計算機番号欄603に記載された送り元計算機番号を送り元計算機番号欄623に書き込み、パケット・ヘッダ内の接続番号欄604に記載された接続番号を接続番号欄624に書き込み、パケット・ヘッダ内の送信命令番号欄605に記載された送信命令番号を送信命令番号欄625に書き込む。コンテキスト処理部341は、前記受付パケット620を、送信部320を経由して送り元計算機(電子計算機100−1)に送信する。その後、受信部340は、受信データストア処理(ステップS28)を行う。
Next, the receiving unit 340 performs reception packet transmission processing (step S27).
When the context processing unit 341 of the reception unit 340 generates the reception packet 620 as a reply packet to the reception packet 600, the context processing unit 341 writes the reception type in the reception type column 621 and the destination described in the destination computer number column 602 in the packet header. The computer number is written in the destination computer number column 621, the source computer number described in the source computer number column 603 in the packet header is written in the source computer number column 623, and the connection number column 604 in the packet header is written. The described connection number is written in the connection number column 624, and the transmission command number described in the transmission command number column 605 in the packet header is written in the transmission command number column 625. The context processing unit 341 transmits the acceptance packet 620 to the transmission source computer (electronic computer 100-1) via the transmission unit 320. Thereafter, the reception unit 340 performs reception data store processing (step S28).

受信データストア処理(ステップS28)を説明する。
コンテキスト処理部341は、受信命令書込指示をパケット受信部342に送信する。パケット受信部342は、受信命令書込指示に応じて、受信パケット600のデータ欄608に記載されたデータ(受信データ)を受信バッファ222−Jにストアする(書き込む/登録する)。
コンテキスト700の処理中受信命令のバッファ長欄713に記載されたバッファ長をBLENとし、コンテキスト700の処理中受信命令の受信済みデータ長欄704に記載されたデータ長をRLENとし、受信パケット600のデータ長欄607に記載されたデータ長をPLENとした場合、主記憶装置200上の受信バッファ222−Jに書き込むデータサイズWLENは、数1により決定される。
The received data store process (step S28) will be described.
The context processing unit 341 transmits a reception command write instruction to the packet reception unit 342. The packet reception unit 342 stores (writes / registers) the data (reception data) described in the data column 608 of the reception packet 600 in the reception buffer 222-J according to the reception command write instruction.
The buffer length described in the buffer length column 713 of the processing instruction received in the context 700 is BLEN, the data length described in the received data length column 704 of the processing instruction received in the context 700 is RLEN, and the received packet 600 When the data length described in the data length column 607 is PLEN, the data size WLEN to be written to the reception buffer 222-J on the main storage device 200 is determined by Equation 1.

Figure 0003933134
Figure 0003933134

パケット受信部342は、受信パケット600のデータ欄608に記載されたデータ(受信データ)を、コンテキスト700の処理中受信命令の受信バッファ開始アドレス712にRLENを加算したアドレスにWLENの指定する長さだけ書き込む。   The length of the packet receiving unit 342 that WLEN designates the data (received data) described in the data column 608 of the received packet 600 as the address obtained by adding RLEN to the reception buffer start address 712 of the receiving command being processed in the context 700. Just write.

次に、受信部340は、最終パケット確認処理(ステップS29)を行う。
受信部340のコンテキスト処理部341は、受信パケット600のデータ長欄607に記載されたデータ長が0であるか確認する。
前記データ長が0である場合(ステップS29−YES)、前記受信パケット(データ送信パケット600)は、同一の送信命令500(上述の特定の送信命令500)で生成された受信パケット600のうちの最後の受信パケット(最終パケット)であるため、受信部340は、受信命令完了処理(ステップS30)を行う。
前記データ長が0ではない場合(ステップS29−NO)、前記受信パケット(データ送信パケット600)は、同一の送信命令500(上述の特定の送信命令500)で生成された受信パケット600のうちの最後の受信パケット(最終パケット)ではないため、受信部340は、コンテキスト書き戻し(ステップS31)を行う。
Next, the receiving unit 340 performs final packet confirmation processing (step S29).
The context processing unit 341 of the receiving unit 340 checks whether the data length described in the data length column 607 of the received packet 600 is zero.
When the data length is 0 (step S29-YES), the received packet (data transmission packet 600) is the same as the received packet 600 generated by the same transmission command 500 (the specific transmission command 500 described above). Since it is the last received packet (final packet), the receiving unit 340 performs a reception command completion process (step S30).
When the data length is not 0 (step S29-NO), the received packet (data transmission packet 600) is the received packet 600 generated by the same transmission command 500 (the specific transmission command 500 described above). Since it is not the last received packet (final packet), the receiving unit 340 performs context write-back (step S31).

受信命令完了処理(ステップS30)を説明する。
コンテキスト処理部341は、前記ロードされたコンテキスト700の受信命令処理中フラグ欄701の受信命令処理中フラグをクリアにする。すなわち、受信命令処理中フラグ欄701に“0”を書き込む(設定する)。
The reception command completion process (step S30) will be described.
The context processing unit 341 clears the received instruction processing flag in the received instruction processing flag field 701 of the loaded context 700. That is, “0” is written (set) in the received command processing flag field 701.

コンテキスト書き戻し(ステップS31)を説明する。
コンテキスト処理部341は、主記憶装置200のコンテキストテーブル201−Jに、前記ロードされたコンテキスト700を書き戻し、受信部340は、パケット受信実行処理を完了する。
The context write-back (step S31) will be described.
The context processing unit 341 writes back the loaded context 700 in the context table 201-J of the main storage device 200, and the reception unit 340 completes the packet reception execution process.

本発明の通信システムによれば、電子計算機100−1(送り元計算機)が事前制御通信を行わずにデータ転送を行うため、データ転送の開始から完了までのレイテンシ(実行時間)は、従来の技術で説明されたような事前制御通信を開始してからデータ転送の完了までのレイテンシ(実行時間)よりも低減する。   According to the communication system of the present invention, since the electronic computer 100-1 (source computer) performs data transfer without performing prior control communication, the latency (execution time) from the start to the completion of data transfer is the conventional one. This is less than the latency (execution time) from the start of pre-control communication as described in the technology to the completion of data transfer.

遠隔命令ストア処理(ステップS32)を説明する。
前記ケースR1、R2、R3において、コンテキスト処理部341は、遠隔命令640を生成するとき、遠隔命令タイプを遠隔命令タイプ欄641に書き込み、パケット・ヘッダ内の宛先計算機番号欄602に記載された宛先計算機番号を宛先計算機番号欄642に書き込み、パケット・ヘッダ内の送り元計算機番号欄603に記載された送り元計算機番号を送り元計算機番号欄643に書き込み、パケット・ヘッダ内の接続番号欄604に記載された接続番号を接続番号欄644に書き込み、パケット・ヘッダ内の送信命令番号欄605に記載された送信命令番号を送信命令番号欄645に書き込む。
受信命令FIFO212−Jに受信命令510が登録されているが、受信バッファ222−Jのフルを検出した場合、コンテキスト処理部341は、パケット・ヘッダ内のデータ長欄607に記載されたデータ長を受信済みデータ長として受信済みデータ長欄646に書き込む。
The remote instruction store process (step S32) will be described.
In the cases R1, R2, and R3, when generating the remote command 640, the context processing unit 341 writes the remote command type in the remote command type column 641, and the destination described in the destination computer number column 602 in the packet header. The computer number is written in the destination computer number column 642, the source computer number described in the source computer number column 603 in the packet header is written in the source computer number column 643, and the connection number column 604 in the packet header is written. The described connection number is written in the connection number column 644, and the transmission command number described in the transmission command number column 605 in the packet header is written in the transmission command number column 645.
When the reception instruction 510 is registered in the reception instruction FIFO 212-J, but the full reception buffer 222-J is detected, the context processing unit 341 sets the data length described in the data length column 607 in the packet header. Write in the received data length column 646 as the received data length.

次に、受信部340は、中断要求パケット送信処理(ステップS33)を行う。
前記ケースR1、R2、R3において、コンテキスト処理部341は、受信パケット600に対する返信パケットとして中断要求パケット610を生成するとき、中断要求タイプを中断要求タイプ欄611に書き込み、パケット・ヘッダ内の宛先計算機番号欄602に記載された宛先計算機番号を宛先計算機番号欄612に書き込み、パケット・ヘッダ内の送り元計算機番号欄603に記載された送り元計算機番号を送り元計算機番号欄613に書き込み、パケット・ヘッダ内の接続番号欄604に記載された接続番号を接続番号欄614に書き込み、パケット・ヘッダ内の送信命令番号欄605に記載された送信命令番号を送信命令番号欄615に書き込む。
Next, the receiving unit 340 performs an interruption request packet transmission process (step S33).
In the cases R1, R2, and R3, when generating the interruption request packet 610 as a reply packet to the received packet 600, the context processing unit 341 writes the interruption request type in the interruption request type column 611, and the destination computer in the packet header. The destination computer number described in the number column 602 is written in the destination computer number column 612, the source computer number described in the source computer number column 603 in the packet header is written in the source computer number column 613, and the packet number The connection number described in the connection number column 604 in the header is written in the connection number column 614, and the transmission command number described in the transmission command number column 605 in the packet header is written in the transmission command number column 615.

前記ケースR1において、コンテキスト処理部341は、前記中断要求パケット610を、送信部320を経由して送り元計算機(電子計算機100−1)に送信すると同時に、受信FIFO212から先頭の受信命令510を取り出し、コンテキスト700の処置中受信命令欄710に登録し、受信命令処理フラグ欄701に受信命令処理フラグ“1”をセットし、送信命令番号欄702に、パケット・ヘッダ内の送信命令番号欄605に記載された送信命令番号を書き込み、最終受信パケット番号欄703にパケット未受信であることを示す“0”を書き込み、処理中受信命令の受信済みデータ長欄704に“0”を書き込み、送信中断済みフラグ欄705に送信中断済みフラグ“1”をセットし、パケット受信実行処理を完了する。   In the case R1, the context processing unit 341 transmits the interruption request packet 610 to the transmission source computer (electronic computer 100-1) via the transmission unit 320, and at the same time extracts the first reception instruction 510 from the reception FIFO 212. , Registered in the in-process received command column 710 of the context 700, set the received command processing flag “1” in the received command processing flag column 701, and set the transmission command number column 702 in the transmission command number column 605 in the packet header. Write the described transmission command number, write “0” indicating that no packet has been received in the last received packet number column 703, write “0” in the received data length column 704 of the receiving command being processed, and stop transmission The transmission interrupted flag “1” is set in the completed flag column 705, and the packet reception execution process is completed.

前記ケースR2において、コンテキスト処理部341は、前記中断要求パケット610を前記送り元計算機(電子計算機100−1)に送信すると同時に、受信命令処理フラグ欄701に受信命令処理フラグ“1”をセットし、送信命令番号欄702に、パケット・ヘッダ内の送信命令番号欄605に記載された送信命令番号を書き込み、最終受信パケット番号欄703にパケット未受信であることを示す“0”を書き込み、処理中受信命令の受信済みデータ長欄704に“0”を書き込み、送信中断済みフラグ欄705に送信中断済みフラグ“1”をセットし、パケット受信実行処理を完了する。   In the case R2, the context processing unit 341 sets the reception command processing flag “1” in the reception command processing flag column 701 at the same time as transmitting the interruption request packet 610 to the transmission source computer (electronic computer 100-1). The transmission command number described in the transmission command number column 605 in the packet header is written in the transmission command number column 702, and “0” indicating that the packet has not been received is written in the last received packet number column 703. Write “0” in the received data length column 704 of the middle reception command, set the transmission interrupted flag “1” in the transmission interrupted flag column 705, and complete the packet reception execution processing.

前記ケースR3において、コンテキスト処理部341は、前記中断要求パケット610を前記送り元計算機(電子計算機100−1)に送信すると同時に、受信命令処理フラグ欄701と送信命令番号欄702と最終受信パケット番号欄703とを更新せずに、送信中断済みフラグ欄705に送信中断済みフラグ“1”をセットし、パケット受信実行処理を完了する。   In the case R3, the context processing unit 341 transmits the interruption request packet 610 to the transmission source computer (the electronic computer 100-1), and at the same time, receives the reception command processing flag column 701, the transmission command number column 702, and the last received packet number. Without updating the column 703, the transmission suspended flag “1” is set in the transmission suspended flag column 705, and the packet reception execution process is completed.

本発明の通信システムによれば、電子計算機100−2(宛先計算機)は、データ送信パケット600の転送を中断するための中断要求パケット610を送信するため、電子計算機100−2(宛先計算機)が受け取れない無駄なデータ転送を早期に抑止し、交換網400を流れる無駄なデータを低減することができる。   According to the communication system of the present invention, since the electronic computer 100-2 (destination computer) transmits the interruption request packet 610 for interrupting the transfer of the data transmission packet 600, the electronic computer 100-2 (destination computer) Unnecessary data transfer that cannot be received can be prevented at an early stage, and wasteful data flowing through the switching network 400 can be reduced.

図15は、本発明の通信システムの動作である受信命令実行処理(ステップS41〜S45)を示すフローチャートである。演算装置110上の受信プロセス111−Jが、主記憶装置200(受信命令FIFO212−J)に受信命令510を書き込み(登録し)、コンテキスト処理部341内の(レジスタ341’が保持する)受信命令FIFO212−Jのライト・ポインタに前記送信命令500の数だけ加算したとき、受信命令実行処理が受信部340(コンテキスト処理部341)により行われる。   FIG. 15 is a flowchart showing reception command execution processing (steps S41 to S45) which is the operation of the communication system of the present invention. The reception process 111-J on the arithmetic unit 110 writes (registers) the reception instruction 510 in the main storage device 200 (reception instruction FIFO 212-J), and the reception instruction in the context processing unit 341 (held by the register 341 ′) When the number of the transmission commands 500 is added to the write pointer of the FIFO 212-J, the reception command execution processing is performed by the reception unit 340 (context processing unit 341).

まず、コンテキスト処理部341は、コンテキストロード処理を行う(ステップS41)。
コンテキスト処理部341は、受信命令FIFO212−Jに登録された受信命令510により、コンテキストテーブル201−1〜201−Nを参照して、コンテキスト700−Jを取り出す(ロードする)。
First, the context processing unit 341 performs context loading processing (step S41).
The context processing unit 341 retrieves (loads) the context 700-J with reference to the context tables 201-1 to 201-N by the reception instruction 510 registered in the reception instruction FIFO 212-J.

次に、コンテキスト処理部341は、中断命令確認処理を行う(ステップS42)。
コンテキスト処理部341は、前記ロードされたコンテキスト700の送信中断済みフラグ欄705に送信中断済みフラグ“1”がセットされているか確認する。
送信中断済みフラグ“1”がセットされていた場合、コンテキスト処理部341は、遠隔命令取り出し処理(ステップS43)を行う。
送信中断済みフラグがセットされていなかった(“0”であった)場合、コンテキスト処理部341は、再開要求処理(ステップS45)を行う。
Next, the context processing unit 341 performs an interruption instruction confirmation process (step S42).
The context processing unit 341 confirms whether the transmission interrupted flag “1” is set in the transmission interrupted flag column 705 of the loaded context 700.
When the transmission interrupted flag “1” is set, the context processing unit 341 performs a remote command extraction process (step S43).
When the transmission interrupted flag is not set (it is “0”), the context processing unit 341 performs a restart request process (step S45).

遠隔命令取り出し処理(ステップS43)を説明する。
遠隔命令FIFO213−Jのライト・ポインタが更新されたことにより、遠隔命令FIFO213−Jのライト・ポインタと遠隔命令FIFO213−Jのリード・ポインタとに差分が発生するため、コンテキスト処理部341は、遠隔命令FIFO213−Jの先頭アドレスから遠隔命令FIFO213−Jのリード・ポイントの数だけ進んだ位置の遠隔命令640の次の遠隔命令640を主記憶装置200上の遠隔命令FIFO213−Jから制御装置120、メモリ制御部310を経由して取り出して、コンテキスト処理部341内の遠隔命令FIFO213−Jのリード・ポインタに遠隔命令640を取り出した数だけ加算する。
The remote command fetch process (step S43) will be described.
As the write pointer of the remote instruction FIFO 213-J is updated, a difference occurs between the write pointer of the remote instruction FIFO 213-J and the read pointer of the remote instruction FIFO 213-J. The remote command 640 next to the remote command 640 at the position advanced by the number of read points of the remote command FIFO 213-J from the head address of the command FIFO 213-J is transferred from the remote command FIFO 213-J on the main storage device 200 to the control device 120. The number is fetched via the memory control unit 310, and is added to the read pointer of the remote command FIFO 213-J in the context processing unit 341 by the number of remote commands 640.

次に、コンテキスト処理部341は、コンテキスト書き出し処理を行う(ステップS44)。
コンテキスト処理部341は、前記ロードされたコンテキスト700の送信中断済みフラグ欄705の送信中断済みフラグをクリアにする。すなわち、送信中断済みフラグ欄705に“0”を書き込む(設定する)。コンテキスト処理部341は、主記憶装置200のコンテキストテーブル201−Jに、前記ロードされたコンテキスト700を書き戻す。
Next, the context processing unit 341 performs context writing processing (step S44).
The context processing unit 341 clears the transmission interrupted flag in the transmission interrupted flag column 705 of the loaded context 700. That is, “0” is written (set) in the transmission interrupted flag column 705. The context processing unit 341 writes back the loaded context 700 in the context table 201-J of the main storage device 200.

再開要求処理(ステップS45)を説明する。
コンテキスト処理部341は、取り出した遠隔命令640により、再開要求パケット630を生成したとき、再開要求タイプを再開要求タイプ欄631に書き込み、遠隔命令640の宛先計算機番号欄642に記載された宛先計算機番号を宛先計算機番号632に書き込み、遠隔命令640の送り元計算機番号欄643に記載された送り元計算機番号を送り元計算機番号欄633に書き込み、遠隔命令640の接続番号欄644に記載された接続番号を接続番号欄634に書き込み、遠隔命令640の送信命令番号欄645に記載された送信命令番号を送信命令番号欄635に書き込む。
コンテキスト処理部341は、受信バッファ222−Jのフルによって送信(転送)の中断を実施しているときに前記転送を再開する場合、遠隔命令640の受信済みデータ長欄646に記載された受信済みデータ長を受信済みデータ長欄636に書き込む。
コンテキスト処理部341は、前記再開要求パケット630を、送信部320を経由して交換網400に送信する。
コンテキスト処理部341は、再開要求処理を行った後、受信命令実行処理を完了する。
The restart request process (step S45) will be described.
When the context processing unit 341 generates the restart request packet 630 by the extracted remote command 640, the context processing unit 341 writes the restart request type in the restart request type column 631, and the destination computer number described in the destination computer number column 642 of the remote command 640 Is written in the destination computer number 632, the source computer number described in the source computer number column 643 of the remote command 640 is written in the source computer number column 633, and the connection number described in the connection number column 644 of the remote command 640 Is written in the connection number column 634, and the transmission command number described in the transmission command number column 645 of the remote command 640 is written in the transmission command number column 635.
When the context processing unit 341 resumes the transmission when the transmission (transfer) is interrupted due to the reception buffer 222-J being full, the context processing unit 341 has received the data described in the received data length column 646 of the remote command 640. The data length is written in the received data length column 636.
The context processing unit 341 transmits the restart request packet 630 to the switching network 400 via the transmission unit 320.
After performing the restart request process, the context processing unit 341 completes the reception instruction execution process.

このように、本発明の通信システムによれば、電子計算機100−2(宛先計算機)は、中断されたデータ送信パケット600の転送を再開するための再開要求パケット630を送信するため、電子計算機100−1(送り元計算機)は、電子計算機100−2(宛先計算機)が受け取れないデータのみを再度転送すればよい。このため、本発明の通信システムによれば、電子計算機100−2(宛先計算機)に対して、従来の技術で説明されたような事前制御通信を行わずに、データ送信パケット600を転送することができる(データ転送を行うことができる)。   As described above, according to the communication system of the present invention, the electronic computer 100-2 (destination computer) transmits the resume request packet 630 for resuming the transfer of the interrupted data transmission packet 600. -1 (source computer) may transfer only data that cannot be received by the electronic computer 100-2 (destination computer). Therefore, according to the communication system of the present invention, the data transmission packet 600 is transferred to the electronic computer 100-2 (destination computer) without performing the pre-control communication as described in the prior art. (Data transfer can be performed).

再開要求パケット630に、電子計算機100−1(送り元計算機)からのデータ送信パケット600のデータのうちの、受信バッファ222−Jに書き込まれたデータのデータ長(受信済みデータ長)が含まれる場合、再開要求パケット630は、電子計算機100−1(送り元計算機)からのデータ送信パケット600のデータのうち、受信バッファ222に書き込まれたデータ以外のデータの転送を要求するための情報(パケット)である。このように、本発明の通信システムによれば、電子計算機100−1(送り元計算機)は、再開要求パケット630に含まれる受信済みデータ長を参照して、先にデータ送信パケット600にて転送したデータのデータ長のうちの、受信済みデータ長以外のデータ長を有するデータ(上記の残りデータ)を電子計算機100−2(宛先計算機)に転送すればよい。このため、本発明の通信システムによれば、前記残りデータを電子計算機100−1(送り元計算機)から電子計算機100−2(宛先計算機)に転送するときの転送時間は、例えば、先に転送したデータを電子計算機100−1(送り元計算機)から電子計算機100−2(宛先計算機)に始めから転送した場合の転送時間よりも短くなる。   The restart request packet 630 includes the data length (received data length) of the data written in the reception buffer 222-J among the data of the data transmission packet 600 from the electronic computer 100-1 (source computer). In this case, the restart request packet 630 is information (packet) for requesting transfer of data other than the data written in the reception buffer 222 among the data of the data transmission packet 600 from the electronic computer 100-1 (source computer). ). As described above, according to the communication system of the present invention, the electronic computer 100-1 (sender computer) refers to the received data length included in the restart request packet 630 and transfers it first in the data transmission packet 600. Data having a data length other than the received data length (the remaining data) among the data lengths of the received data may be transferred to the electronic computer 100-2 (destination computer). Therefore, according to the communication system of the present invention, the transfer time when the remaining data is transferred from the electronic computer 100-1 (source computer) to the electronic computer 100-2 (destination computer) is, for example, transferred first. The transfer time when the transferred data is transferred from the electronic computer 100-1 (source computer) to the electronic computer 100-2 (destination computer) from the beginning is shorter.

以上の説明により、本発明の通信システムによれば、電子計算機100−1(送り元計算機)は、電子計算機100−2(宛先計算機)に対して、従来の技術で説明されたような事前制御通信を行わずに、データ送信パケット600を転送することができる(データ転送を行うことができる)。   As described above, according to the communication system of the present invention, the electronic computer 100-1 (source computer) controls the electronic computer 100-2 (destination computer) in advance as described in the prior art. The data transmission packet 600 can be transferred without performing communication (data transfer can be performed).

本発明の通信システムによれば、電子計算機100−1(送り元計算機)が事前制御通信を行わずにデータ転送を行うため、データ転送の開始から完了までのレイテンシ(実行時間)は、従来の技術で説明されたような事前制御通信を開始してからデータ転送の完了までのレイテンシ(実行時間)よりも低減する。   According to the communication system of the present invention, since the electronic computer 100-1 (source computer) performs data transfer without performing prior control communication, the latency (execution time) from the start to the completion of data transfer is the conventional one. This is less than the latency (execution time) from the start of pre-control communication as described in the technology to the completion of data transfer.

本発明の通信システムによれば、電子計算機100−2(宛先計算機)は、データ送信パケット600の転送を中断するための中断要求パケット610を送信するため、電子計算機100−2(宛先計算機)が受け取れない無駄なデータ転送を早期に抑止し、交換網400を流れる無駄なデータを低減することができる。   According to the communication system of the present invention, since the electronic computer 100-2 (destination computer) transmits the interruption request packet 610 for interrupting the transfer of the data transmission packet 600, the electronic computer 100-2 (destination computer) Unnecessary data transfer that cannot be received can be prevented at an early stage, and wasteful data flowing through the switching network 400 can be reduced.

このように、本発明の通信システムによれば、電子計算機100−2(宛先計算機)は、中断されたデータ送信パケット600の転送を再開するための再開要求パケット630を送信するため、電子計算機100−1(送り元計算機)は、電子計算機100−2(宛先計算機)が受け取れないデータのみを再度転送すればよい。このため、本発明の通信システムによれば、電子計算機100−2(宛先計算機)に対して、従来の技術で説明されたような事前制御通信を行わずに、データ送信パケット600を転送することができる(データ転送を行うことができる)。   As described above, according to the communication system of the present invention, the electronic computer 100-2 (destination computer) transmits the resume request packet 630 for resuming the transfer of the interrupted data transmission packet 600. -1 (source computer) may transfer only data that cannot be received by the electronic computer 100-2 (destination computer). Therefore, according to the communication system of the present invention, the data transmission packet 600 is transferred to the electronic computer 100-2 (destination computer) without performing the pre-control communication as described in the prior art. (Data transfer can be performed).

再開要求パケット630に、電子計算機100−1(送り元計算機)からのデータ送信パケット600のデータのうちの、受信バッファ222−Jに書き込まれたデータのデータ長(受信済みデータ長)が含まれる場合、再開要求パケット630は、電子計算機100−1(送り元計算機)からのデータ送信パケット600のデータのうち、受信バッファ222に書き込まれたデータ以外のデータの転送を要求するための情報(パケット)である。このように、本発明の通信システムによれば、電子計算機100−1(送り元計算機)は、再開要求パケット630に含まれる受信済みデータ長を参照して、先にデータ送信パケット600にて転送したデータのデータ長のうちの、受信済みデータ長以外のデータ長を有するデータ(上記の残りデータ)を電子計算機100−2(宛先計算機)に転送すればよい。このため、本発明の通信システムによれば、前記残りデータを電子計算機100−1(送り元計算機)から電子計算機100−2(宛先計算機)に転送するときの転送時間は、例えば、先に転送したデータを電子計算機100−1(送り元計算機)から電子計算機100−2(宛先計算機)に始めから転送した場合の転送時間よりも短くなる。   The restart request packet 630 includes the data length (received data length) of the data written in the reception buffer 222-J among the data of the data transmission packet 600 from the electronic computer 100-1 (source computer). In this case, the restart request packet 630 is information (packet) for requesting transfer of data other than the data written in the reception buffer 222 among the data of the data transmission packet 600 from the electronic computer 100-1 (source computer). ). As described above, according to the communication system of the present invention, the electronic computer 100-1 (sender computer) refers to the received data length included in the restart request packet 630 and transfers it first in the data transmission packet 600. Data having a data length other than the received data length (the remaining data) among the data lengths of the received data may be transferred to the electronic computer 100-2 (destination computer). Therefore, according to the communication system of the present invention, the transfer time when the remaining data is transferred from the electronic computer 100-1 (source computer) to the electronic computer 100-2 (destination computer) is, for example, transferred first. The transfer time when the transferred data is transferred from the electronic computer 100-1 (source computer) to the electronic computer 100-2 (destination computer) from the beginning is shorter.

図1は、本発明の通信システムの構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a communication system according to the present invention. 図2は、本発明の通信システムにおける電子計算機の通信装置の構成を示すブロック図である。FIG. 2 is a block diagram showing the configuration of the communication device of the electronic computer in the communication system of the present invention. 図3は、本発明の通信システムにおける電子計算機の演算装置の構成を示すブロック図である。FIG. 3 is a block diagram showing the configuration of the arithmetic unit of the electronic computer in the communication system of the present invention. 図4は、本発明の通信システムにおける電子計算機の主記憶装置の構成を示すブロック図である。FIG. 4 is a block diagram showing the configuration of the main storage device of the electronic computer in the communication system of the present invention. 図5は、本発明の通信システムにおける送信命令を示す。FIG. 5 shows a transmission command in the communication system of the present invention. 図6は、本発明の通信システムにおけるデータ送信パケットを示す。FIG. 6 shows a data transmission packet in the communication system of the present invention. 図7は、本発明の通信システムにおける受信命令を示す。FIG. 7 shows a reception command in the communication system of the present invention. 図8は、本発明の通信システムにおけるコンテキストを示す。FIG. 8 shows the context in the communication system of the present invention. 図9(a)、(b)は、本発明の通信システムにおける中断要求パケットを示す。FIGS. 9A and 9B show an interruption request packet in the communication system of the present invention. 図10は、本発明の通信システムにおける受付パケットを示す。FIG. 10 shows an acceptance packet in the communication system of the present invention. 図11(a)、(b)は、本発明の通信システムにおける遠隔命令を示す。FIGS. 11A and 11B show remote commands in the communication system of the present invention. 図12(a)、(b)は、本発明の通信システムにおける再開要求パケットを示す。FIGS. 12A and 12B show a restart request packet in the communication system of the present invention. 図13は、本発明の通信システムの動作であるパケット送信実行処理を示すフローチャートである。FIG. 13 is a flowchart showing packet transmission execution processing which is the operation of the communication system of the present invention. 図14は、本発明の通信システムの動作であるパケット受信実行処理を示すフローチャートである。FIG. 14 is a flowchart showing packet reception execution processing which is the operation of the communication system of the present invention. 図15は、本発明の通信システムの動作である受信命令実行処理を示すフローチャートである。FIG. 15 is a flowchart showing a reception command execution process which is an operation of the communication system of the present invention. 図16は、本発明の通信システムにおいてコンテキスト処理部がコンテキストを取り込んだ後の処理を説明するための図である。FIG. 16 is a diagram for explaining processing after the context processing unit captures a context in the communication system of the present invention.

符号の説明Explanation of symbols

100−1 電子計算機
100−2 電子計算機
100−3 電子計算機
110 演算装置
111、111−1〜111−N プロセス
113 ドライバソフトウェア
120 制御装置
200 主記憶装置
201 コンテキストテーブル
211、211−1〜211−N 送信命令FIFO
212、212−1〜212−N 受信命令FIFO
213、213−1〜213−N 遠隔命令FIFO
221、221−1〜221−N 送信バッファ
222、222−1〜222−N 受信バッファ
231 転送長レジスタ
232 転送アドレスレジスタ
300 通信装置
310 メモリ制御部
320 送信部
321 パケット送信部
322 命令処理部
322’ レジスタ
340 受信部
341 コンテキスト処理部
341’ レジスタ
342 パケット受信部
400 交換網
500 送信命令
501 送信タイプ欄
502 宛先計算機番号欄
503 接続番号欄
504 送信バッファ開始アドレス欄
505 転送長欄
510 受信命令
511 受信タイプ欄
512 宛先計算機番号欄
513 接続番号欄
514 受信バッファ開始アドレス欄
515 受信バッファ長欄
600 データ送信パケット
601 送信タイプ欄
602 宛先計算機番号欄
603 送り元計算機番号欄
604 接続番号欄
605 送信命令番号欄
606 パケット番号欄
607 データ長欄
608 データ欄
610 中断要求パケット
611 中断要求タイプ欄
612 宛先計算機番号欄
613 送り元計算機番号欄
614 接続番号欄
615 送信命令番号欄
616 受信データ長欄
620 受付パケット
621 受付タイプ欄
622 宛先計算機番号欄
623 送り元計算機番号欄
624 接続番号欄
625 送信命令番号欄
630 再開要求パケット
631 再開要求タイプ欄
632 宛先計算機番号欄
633 送り元計算機番号欄
634 接続番号欄
635 送信命令番号欄
636 受信済みデータ長欄
640 遠隔命令
641 遠隔命令タイプ欄
642 宛先計算機番号欄
643 送り元計算機番号欄
644 接続番号欄
645 送信命令番号欄
646 受信済みデータ長欄
700 コンテキスト
701 受信命令処理中フラグ欄
702 送信命令番号欄
703 最終受信パケット番号欄
704 処理中受信命令の受信済みデータ長欄
705 送信中断済みフラグ欄
710 処理中受信命令欄
711 処理中受信命令の受信タイプ欄
712 処理中受信命令の受信バッファ開始アドレス欄
713 処理中受信命令のバッファ長欄
100-1 electronic computer 100-2 electronic computer 100-3 electronic computer 110 arithmetic device 111, 111-1 to 111-N process 113 driver software 120 control device 200 main storage device 201 context table 211, 211-1 to 211-N Send command FIFO
212, 212-1 to 212-N Receive command FIFO
213, 213-1 to 213-N Remote command FIFO
221, 221-1 to 221 -N transmission buffer 222, 222-1 to 222 -N reception buffer 231 transfer length register 232 transfer address register 300 communication device 310 memory control unit 320 transmission unit 321 packet transmission unit 322 instruction processing unit 322 ′ Register 340 Reception unit 341 Context processing unit 341 'Register 342 Packet reception unit 400 Switching network 500 Transmission command 501 Transmission type column 502 Destination computer number column 503 Connection number column 504 Transmission buffer start address column 505 Transfer length column 510 Reception command 511 Reception type Field 512 Destination computer number field 513 Connection number field 514 Reception buffer start address field 515 Reception buffer length field 600 Data transmission packet 601 Transmission type field 602 Destination computer number field 603 Source computer number field 604 Connection Number field 605 Transmission command number field 606 Packet number field 607 Data length field 608 Data field 610 Interrupt request packet 611 Interrupt request type field 612 Destination computer number field 613 Source computer number field 614 Connection number field 615 Transmission command number field 616 Received data Long field 620 Accepted packet 621 Accepted type field 622 Destination computer number field 623 Source computer number field 624 Connection number field 625 Transmission command number field 630 Resume request packet 631 Resume request type field 632 Destination computer number field 633 Source computer number field 634 Connection number column 635 Transmission command number column 636 Received data length column 640 Remote command 641 Remote command type column 642 Destination computer number column 643 Source computer number column 644 Connection number column 645 Transmission command number column 646 Received data length column 700 701 Receive command processing flag column 702 Transmission command number column 703 Last received packet number column 704 Received data length column 705 of processing received command Transmission interrupted flag column 710 Received command column 711 Processing type of received command Field 712 Receive buffer start address field for receive command being processed 713 Buffer length field for receive command being processed

Claims (3)

ネットワークに接続された第1電子計算機と、
前記ネットワークに接続され、データを含むパケットを前記第1電子計算機に転送する第2電子計算機とを具備し、
前記第1電子計算機は、通信装置と、演算装置と、受信バッファと、保持バッファとを備え、
前記通信装置は、
前記演算装置によって受信命令が発行されたときに、前記パケットの前記データを前記受信バッファに書き込む第1受信処理部と、
前記演算装置によって前記受信命令が発行されていないときに、前記パケットの転送を中断するための中断要求を前記第2電子計算機に送信すると共に、前記パケットに関する転送情報を前記保持バッファに登録する第2受信処理部と、
前記演算装置によって次の受信命令が発行されたときに、前記保持バッファに登録された前記転送情報を参照して、前記中断されたパケットの転送を再開するための再開要求を前記第2電子計算機に送信する送信処理部と
前記第1受信処理部によって前記受信バッファに書き込まれる前記データのデータ長が、前記受信バッファが保持することができるデータのデータ長を超えるときに、前記中断要求を前記第2電子計算機に送信すると共に、前記転送情報を前記保持バッファに登録する第3受信処理部とを備え、
前記転送情報と前記再開要求とは、前記データのうちの、前記第1受信処理部によって前記受信バッファに書き込まれたデータのデータ長を含み、
前記再開要求は、前記データのうち、前記受信バッファに書き込まれたデータ以外のデータの転送を要求するための情報である
通信システム。
A first computer connected to the network;
A second electronic computer connected to the network and transferring packets containing data to the first electronic computer;
The first electronic computer includes a communication device, an arithmetic device, a reception buffer, and a holding buffer.
The communication device
A first reception processing unit that writes the data of the packet into the reception buffer when a reception command is issued by the arithmetic unit;
When the reception instruction is not issued by the arithmetic unit, a suspension request for interrupting the transfer of the packet is transmitted to the second electronic computer, and transfer information regarding the packet is registered in the holding buffer. Two reception processing units;
When the next reception command is issued by the arithmetic device, the second electronic computer issues a restart request for restarting the transfer of the interrupted packet with reference to the transfer information registered in the holding buffer. A transmission processing unit to transmit to ,
When the data length of the data written to the reception buffer by the first reception processing unit exceeds the data length of data that can be held by the reception buffer, the interruption request is transmitted to the second electronic computer. And a third reception processing unit for registering the transfer information in the holding buffer,
The transfer information and the restart request include a data length of the data written in the reception buffer by the first reception processing unit of the data,
The resumption request is a communication system which is information for requesting transfer of data other than data written in the reception buffer among the data .
データを含むパケットを転送する他の電子計算機とネットワークを介して接続された電子計算機であって、
通信装置と、
受信命令保持部と、
受信命令を発行して前記受信命令保持部に登録する演算装置と、
受信バッファと、
保持バッファとを備え、
前記通信装置は、
前記受信命令が前記受信命令保持部に登録されているときに、前記パケットの前記データを前記受信バッファに書き込む第1受信処理部と、
前記受信命令が前記受信命令保持部に登録されていないときに、前記パケットの転送を中断するための中断要求を前記他の電子計算機に送信すると共に、前記パケットに関する転送情報を前記保持バッファに登録する第2受信処理部と、
前記演算装置によって次に発行された受信命令が前記受信命令保持部に登録されているときに、前記保持バッファに登録された前記転送情報を参照して、前記中断されたパケットの転送を再開するための再開要求を前記他の電子計算機に送信する送信処理部と
前記第1受信処理部によって前記受信バッファに書き込まれる前記データのデータ長が、前記受信バッファが保持することができるデータのデータ長を超えるときに、前記中断要求を前記第2電子計算機に送信すると共に、前記転送情報を前記保持バッファに登録する第3受信処理部とを備え、
前記転送情報と前記再開要求とは、前記データのうちの、前記第1受信処理部によって前記受信バッファに書き込まれたデータのデータ長を含み、
前記再開要求は、前記データのうち、前記受信バッファに書き込まれたデータ以外のデータの転送を要求するための情報である
電子計算機。
An electronic computer connected via a network to another electronic computer that transfers packets containing data,
A communication device;
A reception command holding unit;
An arithmetic unit that issues a reception command and registers it in the reception command holding unit;
A receive buffer;
A holding buffer,
The communication device
A first reception processing unit that writes the data of the packet to the reception buffer when the reception command is registered in the reception command holding unit;
When the reception command is not registered in the reception command holding unit, a suspension request for interrupting the transfer of the packet is transmitted to the other electronic computer, and transfer information regarding the packet is registered in the holding buffer. A second reception processing unit,
When the next received command issued by the arithmetic unit is registered in the received command holding unit, the transfer of the interrupted packet is resumed with reference to the transfer information registered in the holding buffer. A transmission processing unit for transmitting a restart request for the other electronic computer ;
When the data length of the data written to the reception buffer by the first reception processing unit exceeds the data length of data that can be held by the reception buffer, the interruption request is transmitted to the second electronic computer. And a third reception processing unit for registering the transfer information in the holding buffer,
The transfer information and the restart request include a data length of the data written in the reception buffer by the first reception processing unit of the data,
The resuming request is an electronic computer that is information for requesting transfer of data other than data written in the reception buffer .
データを含むパケットを転送する他の電子計算機とネットワークを介して接続され、演算装置と受信バッファと保持バッファとを備えた電子計算機を使用する通信方法であって、
前記演算装置によって受信命令が発行されたときに、前記パケットの前記データを前記受信バッファに書き込むステップと、
前記演算装置によって前記受信命令が発行されていないときに、前記パケットの転送を中断するための中断要求を前記他の電子計算機に送信すると共に、前記パケットに関する転送情報を前記保持バッファに登録するステップと、
前記演算装置によって次の受信命令が発行されたときに、前記保持バッファに登録された前記転送情報を参照して、前記中断されたパケットの転送を再開するための再開要求を前記他の電子計算機に送信するステップと
前記書き込むステップによって前記受信バッファに書き込まれる前記データのデータ長が、前記受信バッファが保持することができるデータのデータ長を超えるときに、前記中断要求を前記第2電子計算機に送信すると共に、前記転送情報を前記保持バッファに登録するステップとを具備し、
前記転送情報と前記再開要求とは、前記データのうちの、前記書き込むステップによって前記受信バッファに書き込まれたデータのデータ長を含み、
前記再開要求は、前記データのうち、前記受信バッファに書き込まれたデータ以外のデータの転送を要求するための情報である
通信方法。
A communication method using an electronic computer connected to another electronic computer for transferring a packet containing data via a network and having an arithmetic device, a reception buffer, and a holding buffer,
Writing the data of the packet into the reception buffer when a reception command is issued by the arithmetic unit;
A step of transmitting an interruption request for interrupting the transfer of the packet to the other electronic computer when the reception command is not issued by the arithmetic unit and registering transfer information relating to the packet in the holding buffer When,
When the next reception command is issued by the arithmetic unit, the transfer information registered in the holding buffer is referred to and a restart request for restarting the transfer of the interrupted packet is issued to the other electronic computer. and the step of transmitting to,
When the data length of the data written to the reception buffer by the writing step exceeds the data length of the data that can be held by the reception buffer, the interruption request is transmitted to the second electronic computer, and Registering transfer information in the holding buffer,
The transfer information and the restart request include a data length of the data written in the reception buffer by the writing step of the data,
The communication method , wherein the restart request is information for requesting transfer of data other than the data written in the reception buffer .
JP2004008539A 2004-01-15 2004-01-15 Communications system Expired - Fee Related JP3933134B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004008539A JP3933134B2 (en) 2004-01-15 2004-01-15 Communications system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004008539A JP3933134B2 (en) 2004-01-15 2004-01-15 Communications system

Publications (2)

Publication Number Publication Date
JP2005204089A JP2005204089A (en) 2005-07-28
JP3933134B2 true JP3933134B2 (en) 2007-06-20

Family

ID=34821836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004008539A Expired - Fee Related JP3933134B2 (en) 2004-01-15 2004-01-15 Communications system

Country Status (1)

Country Link
JP (1) JP3933134B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868672B2 (en) * 2012-05-14 2014-10-21 Advanced Micro Devices, Inc. Server node interconnect devices and methods

Also Published As

Publication number Publication date
JP2005204089A (en) 2005-07-28

Similar Documents

Publication Publication Date Title
US20180375782A1 (en) Data buffering
US7320041B2 (en) Controlling flow of data between data processing systems via a memory
US7908335B1 (en) Methods and apparatus for bridging a USB connection
EP0889622B1 (en) Apparatus and method for remote buffer allocation and management for message passing between network nodes
US20070041383A1 (en) Third party node initiated remote direct memory access
US7647436B1 (en) Method and apparatus to interface an offload engine network interface with a host machine
US20030051076A1 (en) Methods and system for pre-fetching descriptors
US20080263171A1 (en) Peripheral device that DMAS the same data to different locations in a computer
US20090157896A1 (en) Tcp offload engine apparatus and method for system call processing for static file transmission
JP2015005097A (en) Electronic equipment, control device, and program
US20060242258A1 (en) File sharing system, file sharing program, management server and client terminal
US9565049B2 (en) Communication apparatus, communication method, and computer product for sharing data
JP2014515195A (en) Retransmission control system and retransmission control method
JP3933134B2 (en) Communications system
JP7056870B2 (en) Information processing equipment, information processing methods and programs
EP1936514B1 (en) Apparatus and method for controlling issue of requests to another operation processing device
JPWO2010050092A1 (en) Information processing system
US7676605B1 (en) Methods and apparatus for bridging a bus controller
JP3189269B2 (en) Network printer
JP5305754B2 (en) Information processing apparatus, client, information processing method, and program
JP2005346164A (en) Data processor and data transfer control method
JP2853607B2 (en) Communication system between jobs
KR20010095103A (en) An intelligent bus interconnect unit
JP6885635B1 (en) Information processing device, information processing method and program for information processing device
WO2022024562A1 (en) Parallel and distributed computing system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070312

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110330

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110330

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120330

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120330

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130330

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees