JP3237599B2 - Multiprocessor system and data transfer method in multiprocessor system - Google Patents

Multiprocessor system and data transfer method in multiprocessor system

Info

Publication number
JP3237599B2
JP3237599B2 JP00657898A JP657898A JP3237599B2 JP 3237599 B2 JP3237599 B2 JP 3237599B2 JP 00657898 A JP00657898 A JP 00657898A JP 657898 A JP657898 A JP 657898A JP 3237599 B2 JP3237599 B2 JP 3237599B2
Authority
JP
Japan
Prior art keywords
data
address
unit
transmission
page
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
JP00657898A
Other languages
Japanese (ja)
Other versions
JPH11203260A (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 JP00657898A priority Critical patent/JP3237599B2/en
Publication of JPH11203260A publication Critical patent/JPH11203260A/en
Application granted granted Critical
Publication of JP3237599B2 publication Critical patent/JP3237599B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、マルチプロセッサ
システム及びマルチプロセッサシステムにおけるデータ
転送方法に関し、特に各ノードの通信ハードウェアが仮
想アドレスによるデータ転送機能をサポートするマルチ
プロセッサシステムに適用するものに関する。
The present invention relates to a multiprocessor system and a data transfer method in the multiprocessor system, and more particularly, to a multiprocessor system in which communication hardware of each node supports a data transfer function using a virtual address.

【0002】[0002]

【従来の技術】従来、ネットワークを介して複数のノー
ドが結合されたマルチプロセッサシステムにおいて、ノ
ード間でデータ転送を行う場合には、オペレーティング
システム(OS)の機能を利用する方法が一般的であっ
た。しかしながら、この方法では、OSをシステムコー
ルするための通信遅延時間が大きくなり、また、ユーザ
空間とシステム空間との間でデータをコピーしなければ
ならないため、データの転送速度が遅くなるという問題
があった。
2. Description of the Related Art Conventionally, in a multiprocessor system in which a plurality of nodes are connected via a network, when data is transferred between nodes, a method using an operating system (OS) function is generally used. Was. However, in this method, there is a problem that a communication delay time for making a system call to the OS becomes long and that data must be copied between a user space and a system space, so that a data transfer speed becomes slow. there were.

【0003】そこで、近年の分散メモリ型並列マシンや
クラスタ型マルチプロセッサシステムでは、ノード間通
信の機能として仮想アドレスによるデータ転送をサポー
トするものも用いられている。このようなシステムで
は、ユーザプロセスはOSを介することなく通信ハード
ウェアによるデータ転送を可能としている。しかしなが
ら、このようなシステムでは、送信されるデータや受信
したデータを格納すべきバッファは、主記憶装置上に存
在する保証がなく、アドレス変換に失敗して通信ハード
ウェアの動作が停止する可能性があった。
[0003] In recent years, a distributed memory type parallel machine or a cluster type multiprocessor system which supports data transfer by a virtual address is used as a function of communication between nodes. In such a system, the user process enables data transfer by communication hardware without going through the OS. However, in such a system, there is no guarantee that the buffer to store the transmitted data and the received data exists in the main storage device, and the address translation may fail and the operation of the communication hardware may stop. was there.

【0004】この問題を解決するため、特開平6−19
856号公報において、予め通信領域を特定し、その部
分はページアウトされないようにOSに登録しておくこ
とによって、データの転送時にアドレス変換の失敗が生
じないようにする方法(第1の方法)が提案されてい
る。
In order to solve this problem, Japanese Patent Laid-Open Publication No.
Japanese Patent Application Laid-Open No. 856 discloses a method in which a communication area is specified in advance and the part is registered in the OS so as not to be paged out, so that a failure in address conversion does not occur during data transfer (first method). Has been proposed.

【0005】また、アドレス変換の失敗があった時点で
データの送信あるいは受信を停止して、通信ハードウェ
アから割り込みをかけてオペレーティングシステムを呼
び出し、データの送信或いは受信を一旦停止して、ペー
ジフォルトに対する処理を行ってからデータの送信或い
は受信を再開する方法(第2の方法)も提案されてい
る。
Further, when the address translation fails, the transmission or reception of data is stopped, the operating system is called by an interrupt from communication hardware, the transmission or reception of data is temporarily stopped, and the page fault is stopped. A method (second method) of restarting the transmission or reception of data after performing the processing for (2) has also been proposed.

【0006】[0006]

【発明が解決しようとする課題】しかしながら、上記第
1の方法では、ユーザプロセス中の任意のデータを転送
するためには、結局データを通信領域にコピーする必要
があり、データ転送の速度を低下させるという問題があ
った。また、上記第2の方法では、ページフォルトの処
理の間、データの送信或いは受信が待たされることとな
るので、すべてのデータについての転送を終了するまで
に時間がかかるという問題があった。
However, in the first method, in order to transfer arbitrary data in the user process, it is necessary to copy the data to the communication area after all, and the data transfer speed is reduced. There was a problem of letting it. In the second method, transmission or reception of data is waited during the processing of the page fault, so that there is a problem that it takes time to complete the transfer of all data.

【0007】本発明は、上記従来例の問題点を解消する
ためになされたものであり、複数のノード間でのデータ
転送を高速に行うことができるマルチプロセッサシステ
ム及びこのようなマルチプロセッサシステムにおけるデ
ータ転送方法を提供することを目的とする。
SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems of the conventional example, and a multiprocessor system capable of performing high-speed data transfer between a plurality of nodes and a multiprocessor system having such a multiprocessor system. It is intended to provide a data transfer method.

【0008】[0008]

【課題を解決するための手段】上記目的を達成するた
め、本発明の第1の観点にかかるマルチプロセッサシス
テムは、互いに通信路を介して接続された複数のノード
から構成されるマルチプロセッサシステムであって、前
記複数のノードのうちの少なくとも1つは、物理アドレ
ス空間を提供する第1の記憶手段と、論理アドレス空間
を提供する第2の記憶手段と、所定のアドレス変換単位
毎に物理アドレスと論理アドレスとの間のアドレス変換
を行う第1のアドレス変換手段と、前記論理アドレス空
間に存在するデータを前記通信路を介して他のノードに
送信する第1の送信手段と、前記第1の送信手段によっ
て送信される前記データのうち前記第1の記憶手段が提
供する前記物理アドレス空間に存在しなかったアドレス
変換単位に関する情報を記録する第1の変換単位情報記
録手段と、前記第1の送信手段による前記データの送信
が終了した後、前記第1の変換単位情報記録手段に記録
されている情報に対応するアドレス変換単位のデータを
前記通信路を介して前記他のノードに再送する再送手段
と、を備え、前記送信されるデータのうちの最後の送信
単位には、該送信単位が最後のものであることを示す情
報が含まれ、前記複数のノードのうちの少なくとも1つ
は、前記第1の送信手段が前記送信単位のうちの最後の
データを送信するときに、前記第1の変換単位情報記録
手段に記録されている情報を参照する第1の変換単位情
報参照手段と、前記第1の変換単位情報参照手段による
参照の結果、いずれかのアドレス変換単位が前記第1の
記憶手段が提供する前記物理アドレス空間に存在しなか
ったことを示すときに、前記最後の送信単位を含むアド
レス変換単位に関する情報を前記第1の変換単位情報記
録手段に記録させる第1の変換単位情報制御手段と、
記第1の変換単位情報参照手段による参照の結果、いず
れかのアドレス変換単位が前記第1の記憶手段が提供す
る前記物理アドレス空間に存在しなかったことを示すと
きに、前記第1の送信手段による最後の送信単位のデー
タの送信を停止させる送信停止手段とをさらに備える
とを特徴とする。
To achieve the above object, a multiprocessor system according to a first aspect of the present invention is a multiprocessor system comprising a plurality of nodes connected to each other via a communication path. At least one of the plurality of nodes includes a first storage unit for providing a physical address space, a second storage unit for providing a logical address space, and a physical address for each predetermined address translation unit. First address conversion means for performing an address conversion between a logical address and a logical address; first transmission means for transmitting data existing in the logical address space to another node via the communication path; Out of the data transmitted by the transmitting means, the information relating to the address translation unit which did not exist in the physical address space provided by the first storage means. A first conversion unit information recording unit for recording the data, and an address conversion unit corresponding to the information recorded in the first conversion unit information recording unit after the data transmission by the first transmission unit is completed. Retransmission means for retransmitting the data to the other node via the communication path, the last transmission of the transmitted data
The unit contains information indicating that the transmission unit is the last one.
And at least one of said plurality of nodes
Means that the first transmitting means is the last of the transmission units
When transmitting data, the first conversion unit information record
First conversion unit information referring to information recorded in the means.
Report reference means and the first conversion unit information reference means.
As a result of the reference, one of the address translation units is
Does not exist in the physical address space provided by the storage means
The last transmission unit.
Information about the first conversion unit information.
A first conversion unit information control means for recording the recording means, before
As a result of reference by the first conversion unit information reference means,
One of the address translation units is provided by the first storage means.
Indicates that it did not exist in the physical address space.
Data of the last transmission unit by the first transmission means.
And transmission stop means for stopping transmission of data.

【0009】[0009]

【0010】[0010]

【0011】上記マルチプロセッサシステムでは、前記
送信手段によって送信されるデータのうちで物理アドレ
ス空間に存在しないアドレス変換単位、例えば、前記第
2の記憶手段にページアウトされているページは、それ
に関する情報(例えば、ページ番号)が前記第1の変換
情報記録手段に記録された後、前記再送手段によって再
送される。このため、前記変換情報記録手段への記録の
際にページイン要求を出し、それと並行してデータ処理
を続行させること(プリページング)が可能となる。こ
れにより、ページイン処理とデータ転送とをオーバーラ
ップさせることができ、全体としてデータ転送を高速化
することができる。
In the multiprocessor system, an address translation unit that does not exist in a physical address space, for example, a page that has been paged out to the second storage unit, of the data transmitted by the transmission unit may be information related thereto. (For example, a page number) is recorded in the first conversion information recording means, and then retransmitted by the retransmission means. For this reason, it becomes possible to issue a page-in request at the time of recording to the conversion information recording means and to continue data processing in parallel with the request (pre-paging). As a result, the page-in process and the data transfer can be overlapped, and the data transfer can be speeded up as a whole.

【0012】また、前記再送手段は、前記第1の変換単
位情報記録手段に記録されている情報に従ってアドレス
変換単位を再送すればよい。また、前記第1のアドレス
変換手段は、前記第1の変換単位情報記録手段に記録さ
れている情報に従ってアドレス変換単位のアドレス変換
を行えばよい。このため、必要のないアドレス変換やデ
ータの再送をしなくてもよく、無駄を防ぐことができ
る。そして、最後の送信単位は、前記再送手段による再
送があっても、全体のデータの中で必ず最後に送信され
ることとなるので、例えば、データ中の最後の1ビット
を受信完了を示すフラグとして用いるプログラムでも、
正しく動作させることが可能となる。
The retransmitting means may retransmit the address translation unit according to the information recorded in the first translation unit information recording means. Further, the first address conversion means may perform the address conversion in the address conversion unit according to the information recorded in the first conversion unit information recording means. Therefore, unnecessary address translation and data retransmission are not required, and waste can be prevented. The last transmission unit is the retransmission unit by the retransmission unit.
Even if data is sent, it is always sent last in the entire data.
Therefore, for example, the last one bit in the data
Is used as a flag indicating reception completion,
It is possible to operate correctly.

【0013】[0013]

【0014】[0014]

【0015】上記目的を達成するため、本発明の第2の
観点にかかるマルチプロセッサシステムは、互いに通信
路を介して接続された複数のノードから構成されるマル
チプロセッサシステムであって、前記複数のノードのう
ちの少なくとも1つは、物理アドレス空間を提供する第
1の記憶手段と、論理アドレス空間を提供する第2の記
憶手段と、所定のアドレス変換単位毎に物理アドレスと
論理アドレスとの間のアドレス変換を行う第1のアドレ
ス変換手段と、前記論理アドレス空間に存在するデータ
を前記通信路を介して他のノードに送信する第1の送信
手段と、前記第1の送信手段によって送信される前記デ
ータのうち前記第1の記憶手段が提供する前記物理アド
レス空間に存在しなかったアドレス変換単位に関する情
報を記録する第1の変換単位情報記録手段と、前記第1
の送信手段による前記データの送信が終了した後、前記
第1の変換単位情報記録手段に記録されている情報に対
応するアドレス変換単位のデータを前記通信路を介して
前記他のノードに再送する再送手段と、を備え、前記複
数のノードのうちの他の少なくとも1つは、物理アドレ
ス空間を提供する第3の記憶手段と、論理アドレス空間
を提供する第4の記憶手段と、所定のアドレス変換単位
毎に物理アドレスと論理アドレスとの間のアドレス変換
を行う第2のアドレス変換手段と、前記複数のノードの
うちの少なくとも1つから送信されたデータを受信する
受信手段と、前記受信手段が受信したデータを記憶すべ
き論理アドレスに対応する物理アドレスが前記第3の記
憶手段に存在しないアドレス変換単位に関する情報を記
録する第2の変換単位情報記録手段と、を備え、前記複
数のノードのうちの少なくとも1つは、前記通信路を介
して前記第2の変換単位情報記録手段に記録された情報
を読み出す変換単位情報読み出し手段と、前記変換単位
情報読み出し手段が読み出した情報に対応するデータを
前記第2のアドレス変換手段にアドレス変換させて前記
第4の記憶手段から前記第3の記憶手段に書き込む手段
とを備え、前記再送手段は、前記変換単位情報読み出し
手段が読み出した情報に対応するアドレス変換単位のデ
ータをさらに前記複数のノードのうちの少なくとも1つ
から前記通信路を介して前記複数のノードのうちの他の
少なくとも1つに再送することを特徴とする。
In order to achieve the above object, a second aspect of the present invention is provided.
Perspective multiprocessor systems communicate with each other
Network consisting of multiple nodes connected via a
Multiprocessor system, wherein the plurality of nodes
At least one of which provides a physical address space.
1 storage means and a second storage means for providing a logical address space.
Storage means and a physical address for each predetermined address conversion unit.
First address for performing address conversion to and from a logical address
Data conversion means and data existing in the logical address space.
Transmission to other nodes via the communication path
Means, and the data transmitted by the first transmitting means.
The physical address provided by the first storage means.
Address translation unit that did not exist in the address space
First conversion unit information recording means for recording information;
After the transmission of the data by the transmitting means is completed,
For the information recorded in the first conversion unit information recording means,
The corresponding address translation unit data is transmitted via the communication path.
Resending means for resending to the other node, wherein at least one of the plurality of nodes has a third storage means for providing a physical address space, and a fourth storage means for providing a logical address space. Storage means; second address translation means for performing address translation between a physical address and a logical address for each predetermined address translation unit; and receiving data transmitted from at least one of the plurality of nodes. Receiving means, and second translation unit information recording means for recording information about an address translation unit in which a physical address corresponding to a logical address at which the data received by the receiving means is to be stored does not exist in the third storage means, Wherein at least one of the plurality of nodes is a conversion unit that reads information recorded in the second conversion unit information recording means via the communication path. Information reading means, and means for causing the second address converting means to perform address conversion of data corresponding to the information read by the conversion unit information reading means and writing the converted data from the fourth storage means to the third storage means. Wherein the retransmitting means further includes data of an address conversion unit corresponding to the information read by the conversion unit information reading means, from at least one of the plurality of nodes via the communication path among the plurality of nodes. Other
It is characterized by resending to at least one .

【0016】このように構成した場合、上記マルチプロ
セッサシステムにおいて、前記受信手段は、受信したデ
ータのうち前記第3の記憶手段が提供する前記物理アド
レス空間に存在しなかったアドレス変換単位のデータを
破棄するものとすることができる。
[0016] In the multiprocessor system having the above-mentioned configuration, in the multiprocessor system, the receiving means converts the data of the address conversion unit which does not exist in the physical address space provided by the third storage means, from the received data. May be destroyed.

【0017】この場合、受信側となるノードで受信した
アドレス変換単位を記憶すべき物理アドレスが前記第3
の記憶手段にないとき、例えば、受信したデータを記憶
すべきページのうち前記第4の記憶手段にページアウト
されているページは、それに関する情報(例えば、ペー
ジ番号)が前記第2の変換情報記録手段に記録された
後、前記再送手段によって再送される。このため、前記
変換情報記録手段への記録の際にページイン要求を出
し、それと並行してデータ処理を続行させること(プリ
ページング)が可能となる。これにより、ページイン処
理とデータ転送とをオーバーラップさせることができ、
全体としてデータ転送を高速化することができる。
In this case, the physical address for storing the address translation unit received by the receiving node is the third address.
For example, among the pages in which the received data is to be stored and which are paged out to the fourth storage means, the information (for example, page number) relating to the page is stored in the second conversion information. After being recorded in the recording means, it is retransmitted by the retransmitting means. For this reason, it becomes possible to issue a page-in request at the time of recording to the conversion information recording means and to continue data processing in parallel with the request (pre-paging). As a result, the page-in process and the data transfer can be overlapped,
Data transfer can be speeded up as a whole.

【0018】このように構成した場合にも、また、前記
送信されるデータのうちの最後の送信単位には、該送信
単位が最後のものであることを示す情報が含まれ、前記
複数のノードのうちの他の少なくとも1つは、前記受信
手段が前記送信単位のうちの最後のデータを受信したと
きに、前記前記第2の変換単位情報記録手段に記録され
ている情報を参照する第2の変換単位情報参照手段と、
前記第2の変換単位情報参照手段による参照の結果、い
ずれかのアドレス変換単位を記憶すべき論理アドレスに
対応する物理アドレスが前記第3の記憶手段に存在しな
かったことを示すときに、前記最後の送信単位を含むア
ドレス変換単位に関する情報を前記第2の変換単位情報
記録手段に記録させる第2の変換単位情報制御手段と、
前記第2の変換単位情報参照手段による参照の結果、い
ずれかのアドレス変換単位を記憶すべき論理アドレスに
対応する物理アドレスが前記第3の記憶手段に存在しな
かったことを示すときに、前記最後の送信単位のデータ
を破棄する破棄手段とをさらに備えるものとすることが
できる。
In this case, the last transmission unit of the data to be transmitted also includes information indicating that the transmission unit is the last transmission unit. At least one of the second and third conversion units refers to information recorded in the second conversion unit information recording unit when the reception unit receives the last data of the transmission unit. Conversion unit information reference means of
When the result of the reference by the second conversion unit information reference means indicates that a physical address corresponding to a logical address to store any address conversion unit does not exist in the third storage means, Second conversion unit information control means for causing the second conversion unit information recording means to record information on the address conversion unit including the last transmission unit,
As a result of the reference by the second conversion unit information referring means,
One of the address conversion units is converted to a logical address to be stored.
A corresponding physical address does not exist in the third storage means.
When indicating that the last transmission unit data
And a discarding means for discarding the information .

【0019】この場合、最後の送信単位は、前記再送手
段による再送があっても、全体のデータの中で必ず最後
に送信されることとなるので、例えば、データ中の最後
の1ビットを受信完了を示すフラグとして用いるプログ
ラムでも、正しく動作させることが可能となる。
In this case, the last transmission unit is always transmitted last in the entire data even if there is retransmission by the retransmission means. For example, the last one bit in the data is received. Even a program used as a flag indicating completion can be operated correctly.

【0020】上記第1、第2の観点にかかるマルチプロ
セッサシステムにおいて、前記複数のノードのうちのさ
らに他の少なくとも1つは、前記第1の記憶手段が提供
する物理アドレス空間に対する論理アドレス空間をさら
に提供する第5の記憶手段と、前記複数のノードのうち
の少なくとも1つからの要求に従うアドレス変換単位を
送信する第2の送信手段とを備え、前記複数のノードの
うちの少なくとも1つは、前記第1の送信手段による前
記データの送信が終了した後、前記第1の変換単位情報
記録手段に記録されている情報に対応するアドレス変換
単位が前記第5の記憶手段に記憶されているかどうかを
判定する判定手段と、前記判定手段による判定の結果、
前記第5の記憶手段に記憶されていると判定されたアド
レス変換単位を前記第2の送信手段に送信させるべき前
記要求を前記通信路を介して行う送信要求手段と、をさ
らに備えるものとすることができる。
In the multiprocessor system according to the first and second aspects, at least one of the plurality of nodes stores a logical address space with respect to a physical address space provided by the first storage means. Further provided is a fifth storage means, and a second transmission means for transmitting an address translation unit according to a request from at least one of the plurality of nodes, wherein at least one of the plurality of nodes includes After the transmission of the data by the first transmission unit is completed, whether an address translation unit corresponding to the information recorded in the first translation unit information recording unit is stored in the fifth storage unit. Determining means for determining whether or not the result of the determination by the determining means;
Transmission requesting means for making the request to cause the second transmission means to transmit the address translation unit determined to be stored in the fifth storage means via the communication path. be able to.

【0021】前記第5の記憶手段に送信すべきデータの
アドレス変換単位が記憶されているときは、その第5の
記憶手段を有する前記複数のノードのうちのさらに他の
少なくとも1つから前記複数のノードのうちの少なくと
も1つにそのアドレス変換単位が送信されることとなる
ので、データの再送のために必要となる時間を短縮する
ことができる。さらに、送信側となる前記複数のノード
のうちの少なくとも1つにおける負担を軽減することが
できる。
When an address translation unit of data to be transmitted is stored in the fifth storage means, at least one of the plurality of nodes having the fifth storage means transmits the plurality of nodes to the plurality of nodes. Since the address translation unit is transmitted to at least one of the nodes, the time required for data retransmission can be reduced. Further, it is possible to reduce a burden on at least one of the plurality of nodes on the transmission side.

【0022】上記第1、第2の観点にかかるマルチプロ
セッサシステムにおいて、前記再送手段は、前記第1の
変換単位情報記録手段に記録されている情報に対応する
データを前記第1のアドレス変換手段にアドレス変換さ
せて前記第2の記憶手段から前記第1の記憶手段に書き
込む手段を備え、該手段によって前記第1の記憶手段に
書き込まれたデータを前記通信路を介して前記他のノー
ドに再送するものとすることができる。
According to the first and second aspects, the multi-pro
In the Sessa system, the retransmitting means includes the first transmitting means.
Corresponds to the information recorded in the conversion unit information recording means
The data is converted by the first address conversion means into an address.
And writes the data from the second storage means to the first storage means.
Means for storing the data in the first storage means.
The written data is transferred to the other node via the communication path.
Resend to the server.

【0023】上記目的を達成するため、本発明の第3の
観点にかかるマルチプロセッサシステムにおけるデータ
転送方法は、互いに通信路を介して接続され、それぞれ
物理アドレス空間を提供する第1の記憶装置と、論理ア
ドレス空間を提供する第2の記憶装置と、所定のアドレ
ス変換単位毎に物理アドレスと論理アドレスとの間のア
ドレス変換を行うアドレス変換機構とを有する複数のノ
ードから構成されるマルチプロセッサシステムにおける
データ転送方法であって、前記複数のノードのうちの少
なくとも1つから、該ノードの論理アドレス空間に存在
するデータを前記通信路を介して他のノードに送信する
送信ステップと、前記送信ステップで送信される前記デ
ータのうち前記第1の記憶装置が提供する前記物理アド
レス空間に存在しなかったアドレス変換単位に関する情
報を記録する第1の変換単位情報記録ステップと、前記
送信ステップでの前記データの送信が終了した後、前記
第1の変換単位情報記録ステップで記録した情報に対応
するアドレス変換単位のデータを前記複数のノードのう
ちの少なくとも1つから前記通信路を介して前記他のノ
ードに再送する再送ステップと、前記送信ステップで前
記複数のノードの少なくとも1つから送信されたデータ
を受信した前記他のノードが、該データを記憶すべき論
理アドレスに対応する物理アドレスが前記第1の記憶装
置に存在しないアドレス変換単位に関する情報を記録す
る第2の変換単位情報記録ステップとを含み、前記再送
ステップは、前記第2の変換単位情報記録ステップで記
録した情報に対応するアドレス変換単位のデータをさら
に前記複数のノードのうちの少なくとも1つから前記通
信路を介して前記他のノードに再送することを特徴とす
る。
In order to achieve the above object, a third aspect of the present invention is provided.
Data in a multiprocessor system according to an aspect
The transfer methods are connected to each other via a communication path,
A first storage device that provides a physical address space;
A second storage device for providing a dress space;
Address between the physical address and the logical address for each
Address conversion mechanism for performing address conversion.
In a multiprocessor system composed of
A data transfer method, comprising:
At least one exists in the logical address space of the node
Data to be transmitted to another node via the communication path
A transmitting step; and the data transmitted in the transmitting step.
The physical address provided by the first storage device.
Address translation unit that did not exist in the address space
A first conversion unit information recording step of recording information;
After the transmission of the data in the transmission step is completed,
Corresponds to the information recorded in the first conversion unit information recording step
Address conversion unit data to be transferred to the plurality of nodes.
From at least one of the other nodes via the communication path.
A retransmission step of retransmitting data to at least one of the plurality of nodes, and the other node having received the data transmitted from at least one of the plurality of nodes in the transmission step has a physical address corresponding to a logical address in which the data is to be stored. A second conversion unit information recording step of recording information relating to an address translation unit that does not exist in the first storage device , wherein the retransmitting step includes an address corresponding to the information recorded in the second translation unit information recording step. The data of the conversion unit is further retransmitted from at least one of the plurality of nodes to the other node via the communication path .
You.

【0024】[0024]

【発明の実施の形態】以下、添付図面を参照して、本発
明の実施の形態について説明する。
Embodiments of the present invention will be described below with reference to the accompanying drawings.

【0025】[第1の実施の形態]図1は、この実施の
形態にかかるマルチプロセッサシステムの機能構成を示
す機能ブロック図である。図示するように、このマルチ
プロセッサシステムは、ネットワーク10を介して互い
に結合された複数のノード3−1〜3−nからなる。
[First Embodiment] FIG. 1 is a functional block diagram showing a functional configuration of a multiprocessor system according to this embodiment. As shown, the multiprocessor system includes a plurality of nodes 3-1 to 3-n connected to each other via a network 10.

【0026】ノード3−1〜3−nは、同様の機能構成
を有し、それぞれCPU(図示せず)、メモリ13、二
次記憶装置18及び通信ハードウェア27を備える。ま
た、ノード3−1〜3−nのそれぞれの上では、プロセ
ス11及びカーネル36が動作する。このマルチプロセ
ッサシステムで結合することが可能なノード3−1〜3
−nは、最大で256個とすることができる。
Each of the nodes 3-1 to 3-n has a similar functional configuration, and includes a CPU (not shown), a memory 13, a secondary storage device 18, and communication hardware 27. On each of the nodes 3-1 to 3-n, the process 11 and the kernel 36 operate. Nodes 3-1 to 3-3 that can be connected in this multiprocessor system
-N can be up to 256.

【0027】メモリ13は、ノード3−1〜3−nのそ
れぞれの主記憶装置であり、物理アドレス空間を提供す
る。二次記憶装置18は、磁気ディスク装置などによっ
て構成され、ノード3−1〜3−nのそれぞれに仮想ア
ドレス空間を提供する。
The memory 13 is a main storage device of each of the nodes 3-1 to 3-n and provides a physical address space. The secondary storage device 18 is configured by a magnetic disk device or the like, and provides a virtual address space to each of the nodes 3-1 to 3-n.

【0028】通信ハードウェア27は、例えば、データ
の最大転送サイズを256KBとし、ページサイズを4
KBとするページング方式で転送されるデータの仮想ア
ドレスを物理アドレスに変換する機能を有する。通信ハ
ードウェア27は、また、割り込み発生部172、送信
部171、受信部272及びリモートリード部571の
各機能を有する。通信ハードウェア27は、さらにプロ
セス11からのデータの送受信の要求を書き込むための
要求領域176と、要求されたデータの送受信が終了し
たことを示す情報を書き込むための確認領域175とを
有する。要求領域176及び確認領域175は、仮想空
間内にマップされている。
For example, the communication hardware 27 sets the maximum transfer size of data to 256 KB and sets the page size to 4 KB.
It has a function of converting a virtual address of data transferred by the paging method of KB into a physical address. The communication hardware 27 has the functions of an interrupt generation unit 172, a transmission unit 171, a reception unit 272, and a remote read unit 571. The communication hardware 27 further has a request area 176 for writing a data transmission / reception request from the process 11 and a confirmation area 175 for writing information indicating that requested data transmission / reception has been completed. The request area 176 and the confirmation area 175 are mapped in the virtual space.

【0029】割り込み発生部172は、アドレス変換に
失敗したとき、すなわち送信或いは受信すべきデータに
ついてページフォルトが発生したときに、CPUに割り
込みを要求し、カーネル36に割り込み処理をさせる。
送信部171は、メモリ13に書き込まれているデータ
を読み出し、パケットに分割してネットワーク10に送
出する。受信部271は、ネットワーク10から受け取
ったパケット中のデータをメモリ13に書き込む。リモ
ートリード部571は、ネットワーク10から受け取っ
たリモートリード要求に応答して、カーネル36の受信
失敗ページ表641などを他のノードに読み込ませる機
能を提供する。
When the address translation fails, that is, when a page fault occurs for data to be transmitted or received, the interrupt generation unit 172 requests an interrupt from the CPU and causes the kernel 36 to perform the interrupt processing.
The transmitting unit 171 reads the data written in the memory 13, divides the data into packets, and sends the packets to the network 10. The receiving unit 271 writes the data in the packet received from the network 10 to the memory 13. The remote read unit 571 provides a function of reading a reception failure page table 641 or the like of the kernel 36 to another node in response to a remote read request received from the network 10.

【0030】カーネル36は、カーネル間通信や仮想記
憶管理などの基本機能を提供するほか、割り込み処理3
62及び遠隔ページアクセス761の機能を提供する。
カーネル36は、また、仮想アドレス空間と物理アドレ
ス空間との間でのアドレス変換を行うためのページテー
ブル40と、データの送信時及び受信時にそれぞれペー
ジフォルトが発生したページに関する情報を記録するた
めの送信失敗ページ表341と受信失敗ページ表641
とを有する。
The kernel 36 provides basic functions such as inter-kernel communication and virtual memory management, as well as interrupt processing 3
62 and remote page access 761 functions.
The kernel 36 also has a page table 40 for performing address conversion between a virtual address space and a physical address space, and a page table 40 for recording information about a page in which a page fault has occurred at the time of data transmission and reception, respectively. Transmission failure page table 341 and reception failure page table 641
And

【0031】割り込み処理362の機能は、CPUに割
り込みが生じたときにその割り込み要因を特定し、特定
した割り込み要因が送信部171或いは受信部271に
おけるアドレス変換の失敗(ページフォルト)である場
合には、アドレス変換に失敗したページに関する情報を
送信失敗ページ表341及び受信失敗ページ表641に
それぞれ記憶する。割り込み処理362では、送信失敗
ページ表341或いは受信失敗ページ表641にアドレ
ス変換に失敗したページに関する情報を記録した後、要
求領域176にデータの送受信の再開要求を書き込むこ
とにより、送信部171或いは受信部271の動作を再
開させる。
The function of the interrupt processing 362 is to specify the interrupt factor when an interrupt occurs in the CPU, and to execute the process if the specified interrupt factor is a failure of the address conversion in the transmission unit 171 or the reception unit 271 (page fault). Stores information on the page for which the address conversion has failed in the transmission failure page table 341 and the reception failure page table 641, respectively. In the interruption process 362, after recording information about the page for which the address conversion failed in the transmission failure page table 341 or the reception failure page table 641, a request for restarting data transmission / reception is written in the request area 176, so that the transmission unit 171 or reception The operation of the unit 271 is restarted.

【0032】送信失敗ページ表341は、送信部171
が送信するデータについてページフォルトが発生したと
きに、そのアドレス変換に失敗したページに関する情報
を記録する。受信失敗ページ表641は、受信部271
が受信するデータについてページフォルトが発生したと
きに、そのアドレス変換に失敗したページに関する情報
を記録する。送信失敗ページ表341と受信失敗ページ
表641とは、通信ハードウェア27で転送可能なデー
タの最大サイズが決まっているため、図2に示すよう
に、仮想アドレス+ビット列でアドレス変換に失敗した
ページを記録する。
The transmission failure page table 341 indicates that the transmission unit 171
When a page fault occurs in the data to be transmitted, information about the page whose address translation has failed is recorded. The reception failure page table 641 indicates that the reception unit 271
When a page fault occurs in the data received by the server, the information about the page whose address translation has failed is recorded. Since the maximum size of data that can be transferred by the communication hardware 27 is determined in the transmission failure page table 341 and the reception failure page table 641, as shown in FIG. Record

【0033】これらの失敗ページ表では、図2に示すよ
うに、1ワード目には最初にアドレス変換に失敗したペ
ージのページ番号PNUMが入れられる。2ワード目以
降には、各ビットの値で対応するページがアドレス変換
に失敗したかどうかを示し、例えば、2ワード目の第3
1ビットの値が「1」であるならば、PNUM+31ペ
ージでアドレス変換に失敗したことを、3ワード目の第
31ビットの値が「1」であるならば、PNUM+63
ページでアドレス変換に失敗したことを示すものであ
る。なお、PNUMの初期値は、「−1」とする。
In these failed page tables, as shown in FIG. 2, the first word contains the page number PNUM of the page whose address translation has failed first. In the second and subsequent words, the value of each bit indicates whether the corresponding page has failed in address translation.
If the value of one bit is “1”, the address conversion has failed in the PNUM + 31 page. If the value of the 31st bit of the third word is “1”, PNUM + 63.
Indicates that address conversion failed for the page. Note that the initial value of PNUM is "-1".

【0034】この実施の形態のマルチプロセッサシステ
ムでは、データの送信側となるプロセス11は、他の複
数のノードのプロセスに対して同時にデータ転送を行う
ことはない。このため、ノード3−1〜3−nのそれぞ
れにおいて、送信失敗ページ表341は1つだけ用意さ
れている。一方、プロセス11がデータの受信側となる
ときには、複数の他のノードのプロセスからデータを同
時に受信することがあるので、受信失敗ページ表641
は、送信側となるプロセスの数だけ用意される。なお、
これらの送信失敗ページ表341及び受信失敗ページ表
641の仮想空間上の配置を、図3に示す。
In the multiprocessor system of this embodiment, the process 11 on the data transmission side does not simultaneously transfer data to the processes of a plurality of other nodes. Therefore, in each of the nodes 3-1 to 3-n, only one transmission failure page table 341 is prepared. On the other hand, when the process 11 is on the data receiving side, data may be simultaneously received from processes of a plurality of other nodes.
Are prepared by the number of processes on the transmitting side. In addition,
FIG. 3 shows an arrangement of the transmission failure page table 341 and the reception failure page table 641 in the virtual space.

【0035】遠隔ページアクセス761は、当該ノード
とネットワーク10を介して接続された他のノードにあ
るプロセスの仮想空間にアクセスし、アクセスしたペー
ジがページアウトされているときには、そのノードのカ
ーネルにアクセスしたページをページインさせる。
The remote page access 761 accesses the virtual space of a process in another node connected to the node via the network 10, and accesses the kernel of the node when the accessed page is paged out. Page-in of the page.

【0036】プロセス11は、通信ハードウェア27の
要求領域176に送信要求を書き込むことによって、デ
ータ12を他のノードのプロセスに送信する。プロセス
11は、通信ハードウェア27の確認領域175の値を
調べることによって、データ12の送信が終了したこと
を確認する。プロセス11は、他のノードから受信した
データを書き込むための受信バッファ22を用意してい
る。
The process 11 transmits the data 12 to a process of another node by writing a transmission request in the request area 176 of the communication hardware 27. The process 11 confirms that the transmission of the data 12 has been completed by checking the value of the confirmation area 175 of the communication hardware 27. The process 11 has a reception buffer 22 for writing data received from another node.

【0037】プロセス11は、また、送信失敗ページ表
341や受信失敗ページ表641を参照して、データの
送受信時にアドレス変換の失敗があったかどうかを確認
し、アドレス変換の失敗があったページについて再送処
理を行う。なお、プロセス11には、システム中でプロ
セスを一意に定められるように、「0」から「255」
までのいずれかの識別子が割り付けられる。なお、デー
タ12及び受信バッファ22は、仮想空間にあるもの
で、メモリ13上に存在せずに、二次記憶装置18にペ
ージアウトされていることがあり得る。
The process 11 also refers to the transmission failure page table 341 and the reception failure page table 641 to confirm whether or not the address translation has failed during data transmission / reception. Perform processing. Note that the process 11 includes “0” to “255” so that the process can be uniquely determined in the system.
Are assigned. Note that the data 12 and the reception buffer 22 exist in the virtual space, and may not be present on the memory 13 but may be paged out to the secondary storage device 18.

【0038】以下、この実施の形態のマルチプロセッサ
システムにおける動作について説明する。以下の説明に
おいて、ノード3−1をデータの送信側とし、ノード3
−nをデータの受信側とする。ここで、ノード3−1の
プロセス11を送信側プロセス11と呼び、ノード3−
nのプロセス11を受信側プロセス11と呼ぶこととす
る。
The operation of the multiprocessor system according to this embodiment will be described below. In the following description, it is assumed that the node 3-1 is a data transmission side and the node 3
-N is the data receiving side. Here, the process 11 of the node 3-1 is referred to as a transmission-side process 11, and the process of the node 3-
The n process 11 is called a receiving process 11.

【0039】まず、ノード3−1とノード3−nとの間
において、データ転送が開始される前に、ノード3−1
とノード3−nとのそれぞれにおいて実行される準備処
理について説明する。
First, before data transfer is started between the node 3-1 and the node 3-n, the node 3-1
The preparation process executed in each of the node and the node 3-n will be described.

【0040】カーネル36は、プロセス11を生成した
ときに、生成したプロセス11に対応するページテーブ
ル40と送信失敗ページ表341と受信失敗ページ表6
41を記憶する領域をメモり13上に確保し、これらを
ページアウトしないよう指定する。カーネル36は、さ
らに送信失敗ページ表341と受信失敗ページ表641
とを、それぞれ仮想アドレスSND_FTBL_ADD
RとRCV_FTBL_ADDRにマップする。また、
プロセス11は、カーネル36のマップ機能を用いて、
要求領域176と確認領域175とを仮想空間内にマッ
プする。
When the kernel 36 generates the process 11, the page table 40, the transmission failure page table 341 and the reception failure page table 6 corresponding to the generated process 11
An area for storing 41 is secured on the memory 13 and designated so as not to be paged out. The kernel 36 further includes a transmission failure page table 341 and a reception failure page table 641.
And the virtual address SND_FTBL_ADD, respectively.
Map to R and RCV_FTBL_ADDR. Also,
The process 11 uses the map function of the kernel 36 to
The request area 176 and the confirmation area 175 are mapped in the virtual space.

【0041】次に、送信側ノード3−1から受信側ノー
ド3−nへのデータ転送の大まかな流れについて、図4
のフローチャートを参照して説明する。送信側プロセス
11は、まず、自プロセスの送信失敗ページ表341を
初期化する。送信側プロセス11は、さらに、通信ハー
ドウェア27の送信機能を利用して、受信側プロセス1
1の受信失敗ページ表のうち送信側プロセス11のもの
に対応する部分を初期化する。すなわち、送信側プロセ
ス11は、要求領域176に所定の送信要求を書き込ん
で、受信失敗ページ表641の初期値を受信側ノード3
−nの該当領域に書き込む(ステップS11)。なお、
該当領域の計算は、数式1に従って行われる。
Next, the general flow of data transfer from the transmitting node 3-1 to the receiving node 3-n will be described with reference to FIG.
This will be described with reference to the flowchart of FIG. The transmitting process 11 first initializes the transmission failure page table 341 of the own process. The transmitting process 11 further utilizes the transmitting function of the communication hardware 27 to execute the receiving process 1.
The part corresponding to the transmitting process 11 in the reception failure page table 1 is initialized. That is, the transmission-side process 11 writes a predetermined transmission request in the request area 176, and sets the initial value of the reception failure page table 641 to the reception-side node 3
-N is written into the corresponding area (step S11). In addition,
The calculation of the corresponding area is performed according to Equation 1.

【数1】RCV_FTBL_ADDR+3ワード×プロ
セスの識別子
## EQU1 ## RCV_FTBL_ADDR + 3 words × process identifier

【0042】送信側プロセス11は、通信ハードウェア
27の要求領域176に所定の送信要求を書き込むこと
により、通信ハードウェア27にデータ12の送信を要
求する(ステップS12)。
The transmitting process 11 requests the communication hardware 27 to transmit the data 12 by writing a predetermined transmission request in the request area 176 of the communication hardware 27 (step S12).

【0043】送信側ノード3−1の送信部171は、要
求領域176に書き込まれた送信要求を読み出すことに
よって、ネットワーク10を介してのノード3−nへの
データ12の送信を開始する。データ12は、前述した
ようにパケットの形式で行われる。送信部171は、デ
ータ12の途中でアドレス変換に失敗した場合には、デ
ータ12の送信を停止して、CPUに対して割り込みを
要求する(ステップS13)。
The transmitting unit 171 of the transmitting node 3-1 starts transmitting the data 12 to the node 3-n via the network 10 by reading the transmission request written in the request area 176. The data 12 is performed in the form of a packet as described above. If the address conversion fails in the middle of the data 12, the transmitting unit 171 stops transmitting the data 12, and requests an interrupt to the CPU (step S13).

【0044】ステップS13で割り込みが発生すると、
送信側ノード3−1のカーネル36は、割り込み処理を
行い、割り込み処理の終了の後、送信部171にデータ
12の送信を続行させる(ステップS14)。なお、こ
の割り込み処理については、さらに詳しく後述する。
When an interrupt occurs in step S13,
The kernel 36 of the transmission-side node 3-1 performs an interrupt process, and after the interruption process, causes the transmission unit 171 to continue transmitting the data 12 (step S14). The interrupt processing will be described later in more detail.

【0045】受信側ノード3−nの受信部271は、ネ
ットワーク10から受け取ったデータを受信バッファ2
2に書き込む。受信部271は、データの書き込みの途
中でアドレス変換に失敗した場合には、データの受信を
停止して、CPUに対して割り込みを要求する(ステッ
プS15)。
The receiving unit 271 of the receiving node 3-n stores the data received from the network 10 in the receiving buffer 2.
Write to 2. When the address conversion fails during the data writing, the receiving unit 271 stops receiving the data and requests an interrupt to the CPU (step S15).

【0046】ステップS15で割り込みが発生すると、
受信側ノード3−nのカーネル36は、割り込み処理を
行い、割り込み処理の終了の後、送信部271にデータ
12の送信を続行させる(ステップS16)。なお、こ
の割り込み処理については、さらに詳しく後述する。
When an interrupt occurs in step S15,
The kernel 36 of the receiving node 3-n performs an interrupt process, and after the interrupt process, causes the transmitting unit 271 to continue transmitting the data 12 (step S16). The interrupt processing will be described later in more detail.

【0047】一方、送信側プロセス11は、送信側ノー
ド3−1の確認領域175を参照することによって、要
求したデータ12の送信が終了したことを確認する(ス
テップS17)。
On the other hand, the transmission side process 11 confirms that the transmission of the requested data 12 has been completed by referring to the confirmation area 175 of the transmission side node 3-1 (step S17).

【0048】送信側プロセス11は、データ12の送信
が終了したことを確認すると、さらに送信側ノード3−
1の送信失敗ページ表341と、受信側ノード3−nの
受信失敗ページ表641とを参照して、アドレス変換の
失敗があったかどうかをチェックする(ステップS1
8)。ここで、送信側ノード3−1の送信部171での
アドレス変換の失敗は、通常のメモリアクセスで送信失
敗ページ表341を読み、PNUMの値が「−1」以外
であれば発生していることがわかる。受信側ノード3−
nの受信部271でのアドレス変換の失敗は、リモート
リード部571を利用してリモートリードで受信側ノー
ド3−nの受信失敗ページ表641を読み、PNUMの
値が「−1」以外であれば発生していることがわかる。
When the transmitting process 11 confirms that the transmission of the data 12 has been completed, the transmitting process 11 further transmits the data.
1 with reference to the transmission failure page table 341 and the reception failure page table 641 of the receiving node 3-n to check whether the address translation has failed (step S1).
8). Here, the failure of the address conversion in the transmission unit 171 of the transmission-side node 3-1 occurs when the transmission failure page table 341 is read by normal memory access and the value of PNUM is other than “−1”. You can see that. Receiving node 3-
For the failure of the address conversion in the receiving unit 271 of n, the reception failure page table 641 of the receiving node 3-n is read by remote reading using the remote reading unit 571, and if the value of PNUM is other than “−1”. It can be seen that it has occurred.

【0049】ステップS18で送信側ノード3−1の送
信部171或いは受信側ノード3−nの受信部271の
いずれかでアドレス変換の失敗があったことが確認され
た場合には、送信側プロセス11は、必要に応じてデー
タ12の再送処理を行う(ステップS19)。なお、こ
の再送処理については、さらに詳しく後述する。
If it is confirmed in step S18 that the address translation has failed in either the transmitting section 171 of the transmitting node 3-1 or the receiving section 271 of the receiving node 3-n, the transmitting process 11 performs retransmission processing of the data 12 as necessary (step S19). The retransmission processing will be described later in more detail.

【0050】次に、送信側ノード3−1及び受信側ノー
ド3−nのカーネル36の割り込み処理362に機能が
実行する割り込み処理(ステップS14、S16)につ
いて、図5のフローチャートを参照して詳しく説明す
る。割り込みが発生した場合、カーネル36の割り込み
処理40の機能は、その割り込み要因について調べる
(ステップS21)。
Next, the interrupt processing (steps S14 and S16) executed by the function in the interrupt processing 362 of the kernel 36 of the transmitting node 3-1 and the receiving node 3-n will be described in detail with reference to the flowchart of FIG. explain. When an interrupt occurs, the function of the interrupt processing 40 of the kernel 36 checks the cause of the interrupt (step S21).

【0051】ステップS21で調べた割り込み要因が送
信部171におけるアドレス変換の失敗である場合に
は、この例では、送信側ノード3−1で生じた割り込み
である。この場合は、データ12の送信が停止されると
共に、アドレス変換に失敗したページの仮想アドレスに
関する情報が送信側ノード3−1の送信失敗ページ表3
41に記録される(ステップS22)。このとき、送信
側ノード3−1の割り込み処理部362は、当該ページ
のページイン要求を出し、メモリ13にプリページング
させることができる。
If the cause of the interrupt determined in step S21 is the failure of the address conversion in the transmitting unit 171, in this example, the interrupt is generated in the transmitting node 3-1. In this case, the transmission of the data 12 is stopped, and the information on the virtual address of the page for which the address translation has failed is stored in the transmission failure page table 3 of the transmission node 3-1.
41 (step S22). At this time, the interrupt processing unit 362 of the transmitting node 3-1 can issue a page-in request for the page and cause the memory 13 to pre-page.

【0052】送信失敗ページ表341への記録が終了す
ると、データ12の送信を再開させるための所定の送信
要求が通信ハードウェア27の要求領域176に書き込
まれ、送信側ノード3−1の送信部171は、当該アド
レス変換に失敗したページの次のページから、データ1
2の送信を再開する。但し、アドレス変換に失敗したペ
ージが送信すべきデータ12の最後のページであった場
合には、データ12の送信処理は終了する(ステップS
23)。
When the recording in the transmission failure page table 341 is completed, a predetermined transmission request for restarting the transmission of the data 12 is written in the request area 176 of the communication hardware 27, and the transmission section of the transmission node 3-1 is transmitted. 171 is the data 1 from the page following the page for which the address translation failed.
Resume the transmission of 2. However, if the page for which the address conversion has failed is the last page of the data 12 to be transmitted, the transmission processing of the data 12 ends (step S).
23).

【0053】ステップS21で調べた割り込み要因が受
信部271におけるアドレス変換の失敗である場合に
は、この例では、受信側ノード3−nで生じた割り込み
である。この場合は、データ12の受信が停止されると
共に、アドレス変換に失敗したページの仮想アドレスに
関する情報が受信側ノード3−nの受信失敗ページ表6
41に記録される(ステップS24)。このとき、この
とき、受信側ノード3−nの割り込み処理部362は、
当該ページのページイン要求を出し、メモリ13にプリ
ページングさせることができる。
If the cause of the interruption determined in step S21 is the failure of the address conversion in the receiving section 271, in this example, the interruption is caused by the receiving node 3-n. In this case, the reception of the data 12 is stopped, and the information on the virtual address of the page for which the address translation has failed is stored in the reception failure page table 6 of the reception side node 3-n.
41 is recorded (step S24). At this time, at this time, the interrupt processing unit 362 of the receiving node 3-n
By issuing a page-in request for the page, the memory 13 can be pre-paged.

【0054】受信失敗ページ表641への記録が終了す
ると、受信側ノード3−nの受信部271は、当該アド
レス変換に失敗したページを破棄し、次のページからの
データ12を受信する。
When the recording in the reception failure page table 641 is completed, the reception unit 271 of the reception-side node 3-n discards the page for which the address conversion has failed, and receives the data 12 from the next page.

【0055】なお、ステップS21で調べた割り込み要
因がアドレス変換の失敗以外である時は、図5のフロー
チャートには示さないが、その割り込み要因に従った割
り込み処理が行われる。
When the cause of the interrupt determined in step S21 is other than the failure of the address conversion, an interrupt process is performed according to the cause of the interrupt, though not shown in the flowchart of FIG.

【0056】次に、送信側プロセス11が実行する再送
処理(ステップS19)について、図6(a)、(b)
のフローチャートを参照して詳しく説明する。送信側ノ
ード3−1でのアドレス変換の失敗があった場合には、
図6(a)に示すように、送信側プロセス11は、送信
側ノード3−1の送信側失敗ページ表341を参照し
て、アドレス変換に失敗したページの仮想アドレスを計
算する(ステップS31)。
Next, the retransmission processing (step S19) executed by the transmitting process 11 will be described with reference to FIGS. 6 (a) and 6 (b).
This will be described in detail with reference to the flowchart of FIG. If there is a failure in the address translation in the transmitting node 3-1:
As shown in FIG. 6A, the transmission-side process 11 refers to the transmission-side failed page table 341 of the transmission-side node 3-1 to calculate the virtual address of the page whose address translation has failed (step S31). .

【0057】次に、送信側プロセス11は、ステップS
31で計算した仮想アドレスにアクセスしてページフォ
ルトを起こさせ、カーネル36に当該アドレス変換に失
敗したページを二次記憶装置18からメモリ13にペー
ジインさせる(ステップS32)。そして、送信側プロ
セス11は、そのページインされたページを再送する
(ステップS33)。
Next, the transmission-side process 11 proceeds to step S
The virtual address calculated in step 31 is accessed to cause a page fault, and the kernel 36 causes the page for which the address conversion has failed to be paged into the memory 13 from the secondary storage device 18 (step S32). Then, the transmitting process 11 retransmits the page that has been paged in (step S33).

【0058】一方、受信側ノードでのアドレス変換の失
敗があった場合には、図6(b)に示すように、送信側
プロセス11は、リモートリードで呼んだ受信側ノード
3−nの受信失敗ページ表641を参照して、アドレス
変換に失敗したページの受信側ノード3−nにおける仮
想アドレスを計算する(ステップS41)。
On the other hand, when the address conversion has failed at the receiving node, as shown in FIG. 6B, the transmitting process 11 performs the receiving of the receiving node 3-n called by the remote read. Referring to the failed page table 641, the virtual address of the page on which the address translation has failed in the receiving node 3-n is calculated (step S41).

【0059】次に、送信側プロセス11は、カーネル3
6の遠隔ページアクセス761の機能を利用して、受信
側ノード3−nのステップS41で計算した仮想アドレ
スにアクセスしてページフォルトを起こさせ、受信側ノ
ード3−nのカーネル36に当該アドレス変換に失敗し
たページを二次記憶装置18からメモリ13にページイ
ンさせる(ステップS42)。そして、送信側プロセス
11は、当該受信側ノード3−nのメモリ13に書き込
めなかったデータを再送する。
Next, the transmission side process 11
6 using the function of the remote page access 761 to access the virtual address calculated in step S41 of the receiving node 3-n to cause a page fault, and the kernel 36 of the receiving node 3-n translates the address. The page which failed in the second step is paged into the memory 13 from the secondary storage device 18 (step S42). Then, the transmitting process 11 retransmits the data that could not be written to the memory 13 of the receiving node 3-n.

【0060】上記の処理で、送信側ノード3−1或いは
受信側ノード3−2でアドレス変換に失敗したページが
複数ある場合には、送信側プロセス11は、そのすべて
のページについてステップS31、S32、S41、S
42の処理を行った上で、ステップS33、S43の処
理を行う。
In the above processing, when there are a plurality of pages for which the address conversion has failed in the transmitting node 3-1 or the receiving node 3-2, the transmitting process 11 proceeds to steps S31 and S32 for all the pages. , S41, S
After performing the process of step S42, the processes of steps S33 and S43 are performed.

【0061】なお、カーネル36は、物理空間の空き容
量が不足した場合には、ページアウトの処理を行うが、
通信ハードウェア27がページアウトされるページを参
照している可能性もある。このため、カーネル36がペ
ージアウトの処理を行い、ページテーブル40に変更を
加える場合には、通信ハードウェアの動作を一旦停止さ
せて、通信ハードウェア27の処理によってアドレス変
換が行われないようにする。そして、ページテーブル4
0の内容が変更された後に、通信ハードウェア27の動
作を再開させる。
The kernel 36 performs a page-out process when the free space of the physical space is insufficient.
There is also a possibility that the communication hardware 27 is referring to a page to be paged out. For this reason, when the kernel 36 performs the page-out process and changes the page table 40, the operation of the communication hardware is temporarily stopped so that the address conversion is not performed by the process of the communication hardware 27. I do. And page table 4
After the content of 0 is changed, the operation of the communication hardware 27 is restarted.

【0062】以下、図7を参照して、この実施の形態に
かかるマルチプロセッサシステムの具体的な動作例につ
いて説明する。この例では、転送されるデータ12は4
Kバイトのページを4ページ含み、そのうち、1ページ
目と4ページ目がメモリ13上に存在し、2ページ目と
3ページ目が二次記憶装置18にページアウトされてい
るものとする。
Hereinafter, a specific operation example of the multiprocessor system according to this embodiment will be described with reference to FIG. In this example, the data 12 to be transferred is 4
It is assumed that four K-byte pages are included, of which the first and fourth pages exist in the memory 13, and the second and third pages are paged out to the secondary storage device 18.

【0063】プロセス11がデータ12を送信しようと
した場合、1ページ目121の先頭アドレスは物理アド
レス0x10000に変換される。プロセス11は、そ
の物理アドレスから1ページ分(0x1000バイト)
のデータを送信部171に転送させる。このとき、ステ
ップS13のデータ送信では、アドレス変換の失敗はな
い。
When the process 11 attempts to transmit the data 12, the head address of the first page 121 is converted to a physical address 0x10000. The process 11 performs one page (0x1000 bytes) from the physical address.
Is transmitted to the transmission unit 171. At this time, in the data transmission in step S13, there is no failure in address conversion.

【0064】しかし、2ページ目122(0x5040
00〜0x507FFF)はページアウトされているの
で、アドレス変換は失敗して割込み発生部172により
割り込みが発生する。これにより、ステップS13のデ
ータ送信でアドレス変換の失敗があったことがカーネル
36に通知される。
However, the second page 122 (0x5040)
Since (00 to 0x507FFF) is paged out, the address conversion fails and an interrupt is generated by the interrupt generation unit 172. Thus, the kernel 36 is notified that the address translation has failed in the data transmission in step S13.

【0065】割り込み処理362ではまず、送信失敗ペ
ージ表341にこのページのページ番号0x504を1
ワード目に記録する。さらに、送信失敗ページ表341
の2ワード目の第0ビットを「1」にする(ステップS
22)。このアドレス変換に失敗したページは、とばさ
れて送信が進む(ステップS23)。同様に、3ページ
目もページアウトされているので送信失敗ページ表34
1の2ワード目の第1ビットも「1」とされる。
In the interruption process 362, first, the page number 0x504 of this page is set to 1 in the transmission failure page table 341.
Record at word. Further, the transmission failure page table 341
Is set to “1” in the second word of the second word (step S
22). The page for which the address conversion has failed is skipped and the transmission proceeds (step S23). Similarly, since the third page is also paged out, the transmission failure page table 34
The first bit of the second word of “1” is also “1”.

【0066】送信側プロセス11は、データ12の送信
終了後、失敗ページ表341を調べる(ステップS1
8)。すると、送信側プロセス11は、送信側で第2ペ
ージと第3ページにアドレス変換の失敗があったことが
わかるので(ステップS31)、これらのページにアク
セスしてページフォルトを起こさせ、カーネル36に第
1ページと第2ページとを二次記憶装置18からメモリ
13にページインをさせる(ステップS32)。そし
て、送信側プロセス11は、ページインが終った後で失
敗した第2ページと第4ページのデータを再送する(ス
テップS33)。
After the transmission of the data 12 is completed, the transmission side process 11 checks the failed page table 341 (step S1).
8). Then, the transmitting process 11 knows that the second page and the third page have failed in the address translation on the transmitting side (step S31), and accesses these pages to cause a page fault, and the kernel 36 Then, the first page and the second page are page-in from the secondary storage device 18 to the memory 13 (step S32). Then, the transmitting process 11 retransmits the data of the failed second and fourth pages after the page-in is completed (step S33).

【0067】以上説明したように、この実施の形態のマ
ルチプロセッサシステムでは、送信プロセス11が送信
失敗ページ表341或いは受信失敗ページ表641を参
照してアドレス変換に失敗したページの有無をチェック
した上でページインや再送処理を行うことができる。こ
のため、送信プロセス11が必要ないと判断したとき
は、ページインや再送処理を行わなくて済むので、無駄
なページインの処理や再送処理を行わなくても済む。
As described above, in the multiprocessor system of this embodiment, the transmission process 11 checks the presence or absence of a page for which the address conversion has failed by referring to the transmission failure page table 341 or the reception failure page table 641. To perform page-in and retransmission processing. For this reason, when it is determined that the transmission process 11 is not necessary, the page-in and retransmission processing do not need to be performed, so that unnecessary page-in processing and retransmission processing need not be performed.

【0068】また、この実施の形態のマルチプロセッサ
システムでは、転送されるデータについてアドレス変換
に失敗したときに、ページインの要求だけを出してお
き、それと並行してデータ転送を継続することが可能で
ある。これにより、ページイン処理とデータ転送とをオ
ーバーラップさせることができ、全体としてデータ転送
を高速化することができる。
Further, in the multiprocessor system according to the present embodiment, when the address conversion of the data to be transferred fails, only a page-in request can be issued and the data transfer can be continued in parallel. It is. As a result, the page-in process and the data transfer can be overlapped, and the data transfer can be speeded up as a whole.

【0069】[第2の実施の形態]この実施の形態で
は、データ転送を複数回行なった後で一回だけ失敗確認
と再送をできるように失敗ページ表を変更することによ
り、失敗確認の回数を減らすことができるマルチプロセ
ッサシステムについて説明する。
[Second Embodiment] In this embodiment, the number of times of failure confirmation is changed by changing the failure page table so that failure transmission and retransmission can be performed only once after performing data transfer a plurality of times. Will be described.

【0070】この実施の形態のマルチプロセッサシステ
ムの構成は、第1の実施の形態のもの(図1)とほぼ同
一である。但し、この実施の形態のマルチプロセッサシ
ステムでは、アドレス変換に失敗したページの仮想アド
レスを記録するためのデータ構造として、第1の実施の
形態の失敗ページ表の代わりに、失敗ページカウンタと
失敗ページ表ポインタを使用する。
The configuration of the multiprocessor system of this embodiment is almost the same as that of the first embodiment (FIG. 1). However, in the multiprocessor system of this embodiment, instead of the failed page table of the first embodiment, a failed page counter and a failed page are used as the data structure for recording the virtual address of the page for which the address translation failed. Use a table pointer.

【0071】図8は、失敗ページカウンタの構成を示す
図である。失敗ページカウンタは、アドレス変換に失敗
したページの数を保存するカウンタと、カーネルが失敗
ページを記録するかどうかを指定するため書き込み許可
フラグとから構成される。カウンタは31ビットで構成
され、データの転送を開始する前に送信プロセスによっ
て「0」に初期化され、アドレス変換の失敗が起こる度
にカーネル36によって「1」ずつインクリメントされ
る。また、書き込み許可フラグは1ビットで構成されて
いる。失敗ページを記録していないとき、すなわちデー
タ12の送受信の終了後に失敗ページの確認の必要がな
い場合には、フラグは「0」に設定される。失敗ページ
を記録する場合には、フラグは「1に設定される。
FIG. 8 shows the structure of the failed page counter. The failed page counter includes a counter for storing the number of pages for which address translation has failed, and a write permission flag for specifying whether or not the kernel records a failed page. The counter is composed of 31 bits and is initialized to "0" by the transmission process before starting data transfer, and is incremented by "1" by the kernel 36 each time an address translation failure occurs. The write permission flag is composed of one bit. When the failed page is not recorded, that is, when it is not necessary to confirm the failed page after the transmission / reception of the data 12, the flag is set to “0”. When recording a failed page, the flag is set to “1”.

【0072】失敗ページ表ポインタは、アドレス変換に
失敗したページの仮想アドレスを保持するための領域を
指し示すポインタである。送信プロセス11あるいは受
信プロセス11は、この仮想アドレスの記録領域をデー
タ転送の前に確保し、失敗ページ表ポインタに、その記
録領域の先頭アドレスを設定する。
The failed page table pointer is a pointer that points to an area for holding a virtual address of a page for which address translation has failed. The transmission process 11 or the reception process 11 secures a recording area of this virtual address before data transfer, and sets the head address of the recording area in the failed page table pointer.

【0073】このような失敗ページカウンタと失敗ペー
ジ表ポインタとからなるデータ構造は、プロセス毎にそ
れぞれ用意される。但し、第1の実施の形態の場合と異
なり、受信用にはプロセス識別子の数だけこのようなデ
ータ構造を用意すればよい。なお、プロセス11の仮想
空間における上記のデータ構造の配置の例を、図9に示
す。
A data structure including such a failed page counter and a failed page table pointer is prepared for each process. However, unlike the case of the first embodiment, it is sufficient to prepare such a data structure as many as the number of process identifiers for reception. FIG. 9 shows an example of the arrangement of the above data structure in the virtual space of the process 11.

【0074】以下、この実施の形態のマルチプロセッサ
の動作について説明する。カーネル36は、プロセス1
1を生成する際に、送信用および受信用の失敗ページカ
ウンタ、書き込み許可フラグ、失敗ページ表ポインタの
領域を確保し、決められた仮想アドレス領域にマップす
る。カーネル36は、送信用および受信用の失敗ページ
カウンタ、書き込み許可フラグ、失敗ページ表ポインタ
の領域がページアウトされないように指定する。
The operation of the multiprocessor according to this embodiment will be described below. The kernel 36 executes the process 1
When generating 1, the areas for the failed page counter for transmission and reception, the write permission flag, and the failed page table pointer are secured, and are mapped to the determined virtual address area. The kernel 36 specifies that the area of the failed page counter for transmission and reception, the write permission flag, and the area of the failed page table pointer are not paged out.

【0075】生成されたプロセス11は、送信側、受信
側ともに、データ転送に先だって、カーネル36のメモ
リ割り当て機能を利用して、失敗ページ表の確保と設定
を行なう。このメモリ領域は割り込み処理172により
アクセスされるので、カーネル36は、失敗ページ表の
メモリ領域がページアウトされないように指定する。例
えば、Machオペレーティングシステムの場合では、
vm_wireシステムコールを使うことにより、失敗
ページカウンタや失敗ページ表などのメモリ領域がペー
ジアウトされないように指定する。
The generated process 11 uses the memory allocation function of the kernel 36 to secure and set the failed page table on both the transmitting side and the receiving side prior to data transfer. Since this memory area is accessed by the interrupt processing 172, the kernel 36 specifies that the memory area of the failed page table is not paged out. For example, in the case of the Mach operating system,
By using the vm_wire system call, a memory area such as a failed page counter or a failed page table is designated so as not to be paged out.

【0076】次に、プロセス11は、このメモリ領域の
先頭アドレスを送信用の失敗ページ表ポインタと受信用
の失敗ページ表ポインタに設定する。プロセス11が受
信プロセスであり、データの送信を行なわない場合は送
信用の失敗ページ表ポインタを設定しなくてもよい。ま
た、受信用の失敗ページ表ポインタは通信する送信プロ
セスの分だけ設定する。
Next, the process 11 sets the start address of the memory area as a failed page table pointer for transmission and a failed page table pointer for reception. When the process 11 is a receiving process and does not transmit data, it is not necessary to set a failed page table pointer for transmission. Also, the failed page table pointer for reception is set only for the transmission process to communicate.

【0077】送信側プロセス11(pid=n)は送信
を開始する前に、送信側の失敗ページカウンタを「0」
に初期設定し、送信側の書き込み許可フラグを「1」に
設定する。さらに、受信プロセスの仮想空間にある自分
のプロセス識別子に対応する失敗ページカウンタのアド
レス(FT_BASE+2*(n+1)*4)に0x8
0000000を転送する。
Before starting the transmission, the transmission side process 11 (pid = n) sets the failed page counter of the transmission side to “0”.
And the write permission flag on the transmission side is set to “1”. Further, the address (FT_BASE + 2 * (n + 1) * 4) of the failed page counter corresponding to its own process identifier in the virtual space of the receiving process is set to 0x8.
00000000.

【0078】そして、送信側プロセス11は、通信ハー
ドウェア27の要求領域176にパラメータを書き込
み、通信ハードウェア27にデータ12の転送を開始さ
せる。
Then, the transmission-side process 11 writes a parameter in the request area 176 of the communication hardware 27 and causes the communication hardware 27 to start transferring the data 12.

【0079】送信側ノードの送信部171での処理にお
いてアドレス変換の失敗が起こると、送信側ノードの通
信ハードウェア27の割り込み発生部172は、割り込
みを発生する。送信側ノードの割り込み処理362の機
能は、この割り込みを受け付けると、送信プロセス11
の識別子を通信ハードウェア27の状態レジスタ(図示
せず)からとりだす。割り込み処理362の機能は、送
信側プロセス11の仮想空間にある送信用の失敗ページ
カウンタの書き込み許可フラグを参照する。
When the address conversion fails in the processing in the transmitting section 171 of the transmitting node, the interrupt generating section 172 of the communication hardware 27 of the transmitting node generates an interrupt. The function of the interrupt processing 362 of the transmitting side node, when this interrupt is accepted, the transmission process 11
From the status register (not shown) of the communication hardware 27. The function of the interrupt processing 362 refers to the write permission flag of the failed page counter for transmission in the virtual space of the transmitting process 11.

【0080】書き込み許可フラグの値が「1」であれ
ば、割り込み処理362の機能は、まずその失敗ページ
カウンタの中のカウンタをインクリメントし、さらに、
失敗ページ表ポインタとカウンタの値から定まる場所
((先頭アドレス)+(カウンタ)*4)にアドレス変
換に失敗したページの仮想アドレスを記録する。書き込
み許可フラグの値が「0」であれば、割り込み処理36
2の機能では、失敗ページ表に対する操作はなにも行な
わない。割り込み処理から復帰する際には、割り込み処
理362の機能では、アドレス変換に失敗したページを
飛ばすように指定して、送信側ノードの通信ハードウェ
ア27の送信部171のデータ転送を再開させる。
If the value of the write permission flag is “1”, the function of the interrupt processing 362 is to first increment the counter in the failed page counter,
The virtual address of the page for which the address conversion has failed is recorded in a location ((head address) + (counter) * 4) determined from the failed page table pointer and the value of the counter. If the value of the write permission flag is “0”, the interrupt processing 36
In the second function, no operation is performed on the failed page table. When returning from the interrupt processing, the function of the interrupt processing 362 designates to skip the page for which the address conversion has failed, and restarts the data transfer of the transmitting unit 171 of the communication hardware 27 of the transmitting node.

【0081】一方、受信側ノードの受信部271での処
理においてアドレス変換の失敗が起ると、受信側ノード
の通信ハードウェア27の割り込み発生部172は、割
り込みを発生する。受信側ノードの割り込み処理362
の機能は、この割り込みを受け付けると、送信プロセス
11の識別子と受信プロセス11の識別子とを受信側ノ
ードの通信ハードウェア27の状態レジスタ(図示せ
ず)から取り出す。割り込み処理362の機能は、受信
プロセス11の仮想空間にある受信用の失敗ページカウ
ンタのうち送信プロセスに対応するものの書き込み許可
フラグを参照する。
On the other hand, when the address conversion fails in the processing in the receiving unit 271 of the receiving node, the interrupt generating unit 172 of the communication hardware 27 of the receiving node generates an interrupt. Interrupt processing 362 of the receiving node
When the interrupt is accepted, the function of (1) extracts the identifier of the transmitting process 11 and the identifier of the receiving process 11 from the status register (not shown) of the communication hardware 27 of the receiving node. The function of the interrupt process 362 refers to the write enable flag of the reception failure page counter in the virtual space of the reception process 11 that corresponds to the transmission process.

【0082】書き込み許可フラグの値が「1」であれ
ば、割り込み処理362の機能は、まず、その失敗ペー
ジカウンタの中のカウンタをインクリメントし、さら
に、失敗ページ表ポインタとカウンタの値から定まる場
所、例えば、失敗ページ表ポインタの値がRFTn_A
DDR、カウンタの値がkであったすると、RFTn_
ADDR+4*kのアドレスにアドレス変換に失敗した
ページのアドレスを書き込む。
If the value of the write permission flag is "1", the function of the interrupt processing 362 is to first increment the counter in the failed page counter, and further determine the location determined from the failed page table pointer and the value of the counter. For example, if the value of the failed page table pointer is RFTn_A
If the value of the DDR and the counter is k, RFTn_
The address of the page for which the address conversion has failed is written to the address of ADDR + 4 * k.

【0083】送信プロセス11は、何回かデータ転送を
行なうと、データ転送の途中でアドレス変換の失敗が起
きたかどうかを確認する。送信プロセス11は、送信側
ノードの送信部171でのアドレス変換の失敗をチェッ
クするために、自分の仮想空間にある送信用の失敗ペー
ジカウンタを読む。ここで、失敗ページカウンタ中のカ
ウンタの値が「0」より大きければ失敗が起きたことに
なる。この場合は送信用の失敗ページ表ポインタの値か
ら失敗ページ表の位置を特定し、そこからカウンタの分
だけ失敗ページを読み出す。つまり、送信プロセス11
は、失敗ページポインタの値がSFT_ADDR、カウ
ンタの値がkであった場合には、SFT_ADDRのア
ドレスから4*kバイト分読み出す。
After performing the data transfer several times, the transmission process 11 checks whether or not the address conversion has failed during the data transfer. The transmission process 11 reads the transmission failure page counter in its own virtual space in order to check the failure of the address conversion in the transmission unit 171 of the transmission side node. Here, if the value of the counter in the failed page counter is larger than "0", a failure has occurred. In this case, the position of the failed page table is identified from the value of the failed page table pointer for transmission, and the failed pages are read therefrom by the counter. That is, the transmission process 11
Reads 4 * k bytes from the address of SFT_ADDR when the value of the failed page pointer is SFT_ADDR and the value of the counter is k.

【0084】送信プロセス11は、次に受信側での失敗
をチェックするために、上述のリモートリード部571
機能を使って受信プロセス11の受信用の失敗ページカ
ウンタ及び失敗ページ表ポインタのアドレスを同時に読
む。この領域はページアウトされないのでリモートリー
ドの途中でアドレス変換の失敗は起こらない。ここで、
失敗ページカウンタ中のカウンタの値が「0」より大き
ければ失敗が起きたことになる。この場合は、カーネル
36が提供する遠隔ページアクセス761の機能を利用
して受信側ノードにある失敗ページ表をカウンタの分だ
け読み出す。つまり、送信プロセス11は、失敗ページ
ポインタの値がRFTn_ADDR、カウンタの値がk
であった場合には、リモートリード機能によってRFT
n_ADDRのアドレスから4*kバイト分読み出すこ
ととする。
The transmission process 11 next checks the remote read unit 571 to check for a failure on the receiving side.
Using the function, the address of the failed page counter for reception and the address of the failed page table pointer of the reception process 11 are simultaneously read. Since this area is not paged out, no address translation failure occurs during remote read. here,
If the value of the counter in the failed page counter is larger than "0", a failure has occurred. In this case, using the function of the remote page access 761 provided by the kernel 36, the failed page table in the receiving node is read by the counter. That is, in the transmission process 11, the value of the failed page pointer is RFTn_ADDR, and the value of the counter is k.
, RFT is performed by the remote read function.
It is assumed that 4 * k bytes are read from the address of n_ADDR.

【0085】なお、この実施の形態のマルチプロセッサ
システムでは、送信プロセス11は、あらかじめ確保さ
れた失敗ページ表を越すようなデータ転送を行なっては
いけない。もしも、失敗ページ表を越すようなことが送
信側ノードで起これば送信プロセス11が、受信側で起
これば受信プロセス11がカーネル36の機能によって
異常終了させられる。このような異常終了を避けるため
には、ユーザプログラムで最初に確保する失敗ページ表
のサイズを大きくすればよい。
In the multiprocessor system according to the present embodiment, the transmission process 11 must not perform data transfer beyond the previously reserved failed page table. The transmission process 11 is terminated abnormally by the function of the kernel 36 when the transmission process 11 occurs on the transmission side node, and when the reception process 11 occurs on the reception side, the reception process 11 exceeds the failed page table. In order to avoid such abnormal termination, the size of the failed page table initially secured by the user program may be increased.

【0086】以上説明したように、この実施の形態のマ
ルチプロセッサシステムでは、複数のデータ転送に対す
る失敗確認と再送を一回で済ませることができるように
なる。これにより、別々のアドレスにある小量のデータ
を送るような場合に、失敗確認の回数を減らすことがで
きるので、全体としてデータ転送に要する時間を第1の
実施の形態の場合よりもさらに短縮することができる。
As described above, in the multiprocessor system according to the present embodiment, it is possible to confirm the failure and retransmit a plurality of data transfers only once. As a result, when a small amount of data at different addresses is sent, the number of times of failure confirmation can be reduced, so that the time required for data transfer as a whole is further reduced as compared with the first embodiment. can do.

【0087】[第3の実施の形態]この実施の形態で
は、例えば、転送されるデータ12の最後の1ビットを
データの受信完了を示すフラグとして用いている。この
実施の形態にかかるマルチプロセッサシステムの構成
は、第1の実施の形態のものとほぼ同一であるが、通信
ハードウェア27の割り込み発生部172の機能とし
て、次の2つの機能が追加されている。
[Third Embodiment] In this embodiment, for example, the last bit of the transferred data 12 is used as a flag indicating the completion of data reception. The configuration of the multiprocessor system according to this embodiment is almost the same as that of the first embodiment, except that the following two functions are added as functions of the interrupt generation unit 172 of the communication hardware 27. I have.

【0088】すなわち、割り込み発生部172は、送信
部171がデータ12を送信するときに、送信すべきデ
ータのうちの最後のパケットとなったときに割り込みを
発生し、受信部271がネットワーク10からデータ1
2を受信するときに、受信すべきデータのうちの最後の
パケットとなったときに割り込みを発生する。
That is, when the transmitting unit 171 transmits the data 12, the interrupt generating unit 172 generates an interrupt when the last packet of the data to be transmitted is transmitted. Data 1
When receiving No. 2, an interrupt is generated when the last packet of the data to be received is reached.

【0089】以下、この実施の形態のマルチプロセッサ
システムにおける動作について説明する。カーネル36
の割り込み処理362の機能は、第1の実施の形態で説
明した割り込み処理に加えて、次のような割り込み処理
を行う。なお、この割り込み処理以外の動作は、第1の
実施の形態における動作と同一である。
The operation of the multiprocessor system according to this embodiment will be described below. Kernel 36
The function of the interrupt processing 362 performs the following interrupt processing in addition to the interrupt processing described in the first embodiment. The operation other than the interrupt processing is the same as the operation in the first embodiment.

【0090】図10は、この実施の形態において、送信
側ノード3−1と受信側ノード3−nのカーネル36の
割り込み処理362の機能が実行する割り込み処理を示
すフローチャートである。割り込みが発生した場合、カ
ーネル36の割り込み処理40の機能は、その割り込み
要因について調べる(ステップS21)。
FIG. 10 is a flowchart showing the interrupt processing executed by the function of the interrupt processing 362 of the kernel 36 of the transmitting node 3-1 and the receiving node 3-n in this embodiment. When an interrupt occurs, the function of the interrupt processing 40 of the kernel 36 checks the cause of the interrupt (step S21).

【0091】ステップS21で調べた割り込み要因が送
信すべきデータのうちの最後のパケットとなったもので
ある場合は、この例では、送信側ノード3−1で生じた
割り込みである。この場合、割り込み処理362の機能
は、まず、送信側ノード3−1の送信失敗ページ表34
1を調べる(ステップS51)。そして、送信失敗ペー
ジ表341を調べた結果、送信部171の処理でいずれ
かのページにアドレス変換の失敗があったかどうかを判
定する(ステップS52)。
If the cause of the interrupt determined in step S21 is the last packet of the data to be transmitted, in this example, it is an interrupt generated in the transmitting node 3-1. In this case, the function of the interrupt processing 362 is as follows.
1 is checked (step S51). Then, as a result of examining the transmission failure page table 341, it is determined whether or not any of the pages has failed in the address conversion in the processing of the transmission unit 171 (step S 52).

【0092】ステップS52でいずれかのページにおい
て、いずれかのページにアドレス変換の失敗があったと
判定したときは、送信側ノード3−1の割り込み処理3
62の機能は、送信失敗ページ表341に最後のページ
について(実際にはアドレス変換の失敗がなくても)ア
ドレス変換の失敗があったものとして送信側ノード3−
1の送信失敗ページ表341に記録する。そして、最後
のパケットの送信を停止させて(ステップS53)、こ
の割り込み処理を終了する。
If it is determined in step S52 that the address translation has failed in any of the pages, the interrupt processing 3
The function of the transmission-side node 3-62 is that the transmission failure page table 341 regards the last page as having failed in address translation (even if there is actually no failure in address translation).
1 is recorded in the transmission failure page table 341. Then, the transmission of the last packet is stopped (step S53), and this interrupt processing ends.

【0093】一方、ステップS52でいずれのページに
もアドレス変換の失敗がなかったと判定したときは、そ
のまま割り込み処理を終了する。この場合、最後のパケ
ットは送信されることとなる。
On the other hand, if it is determined in step S52 that there is no failure in the address conversion for any of the pages, the interrupt processing is terminated. In this case, the last packet will be transmitted.

【0094】ステップS21で調べた割り込み要因が受
信すべきデータのうちの最後のパケットとなったもので
ある場合は、この例では、受信側ノード3−nで生じた
割り込みである。この場合、割り込み処理362の機能
は、まず、受信側ノード3−1の受信失敗ページ表64
1を調べる(ステップS54)。そして、受信失敗ペー
ジ表641を調べた結果、受信部271の処理でいずれ
かのページにアドレス変換の失敗があったかどうかを判
定する(ステップS55)。
If the cause of the interrupt determined in step S21 is the last packet of the data to be received, in this example, the interrupt is generated in the receiving node 3-n. In this case, the function of the interrupt processing 362 is as follows.
1 is checked (step S54). Then, as a result of examining the reception failure page table 641, it is determined whether or not any page has failed in the address conversion in the processing of the reception unit 271 (step S55).

【0095】ステップS55でいずれかのページにおい
て、いずれかのページにアドレス変換の失敗があったと
判定したときは、受信側ノード3−nの割り込み処理3
62の機能は、受信失敗ページ表641に最後のページ
について(実際にはアドレス変換の失敗がなくても)ア
ドレス変換の失敗があったものとして受信側ノード3−
nの送信失敗ページ表641に記録する。そして、受信
した最後のパケットを破棄させて(ステップS56)、
この割り込み処理を終了する。
If it is determined in step S55 that any one of the pages has failed in the address conversion, the interrupt processing 3 of the receiving node 3-n is performed.
The function of No. 62 is that the receiving node 3-3 determines that the last page in the reception failure page table 641 has failed in address translation (even if there is actually no failure in address translation).
n in the transmission failure page table 641. Then, the last packet received is discarded (step S56),
This interrupt processing ends.

【0096】一方、ステップS55でいずれのページに
もアドレス変換の失敗がなかったと判定したときは、そ
のまま割り込み処理を終了する。この場合、受信した最
後のパケットは、受信バッファ22(メモリ13上にあ
る)に書き込まれる。
On the other hand, if it is determined in step S55 that no address conversion has failed in any of the pages, the interrupt processing ends. In this case, the last packet received is written to the reception buffer 22 (on the memory 13).

【0097】以上のように割り込み処理を加えたことに
よって、アドレス変換に失敗したページを再送する場合
には、最終ページも再送されることとなり、受信側ノー
ド3−nでは、データの受信完了を示すフラグを含む最
後のパケット(最終ページの最終パケット)を1番最後
に受信することとなる。
As described above, when the page for which the address translation has failed is retransmitted due to the addition of the interrupt processing, the last page is also retransmitted. The last packet including the indicated flag (the last packet of the last page) is received last.

【0098】以上説明したように、この実施の形態のマ
ルチプロセッサシステムでは、受信側ノード3−nは最
後のパケットを必ず最後に受信することとなるので、例
えば、データ中の最後の1ビットを受信完了を示すフラ
グとして用いるプログラムでも、正しく動作させること
が可能となる。
As described above, in the multiprocessor system of this embodiment, the receiving node 3-n always receives the last packet last. Even a program used as a flag indicating reception completion can be operated correctly.

【0099】[第4の実施の形態]図11は、この実施
の形態にかかるマルチプロセッサシステムの機能構成を
示す機能ブロック図である。このマルチプロセッサシス
テムは、第1の実施の形態のマルチプロセッサシステム
(図1)とほぼ同様の機能構成を有するが、カーネル4
6が他のノードのカーネルからの要求を受けて、二次記
憶装置18に存在するデータを送信先ノードに送信する
遠隔データ送信1062の機能を有する点が異なる。
[Fourth Embodiment] FIG. 11 is a functional block diagram showing a functional configuration of a multiprocessor system according to this embodiment. This multiprocessor system has almost the same functional configuration as the multiprocessor system of the first embodiment (FIG. 1).
6 has a function of a remote data transmission 1062 for transmitting data existing in the secondary storage device 18 to a destination node in response to a request from the kernel of another node.

【0100】以下、この実施の形態にかかるマルチプロ
セッサシステムにおける動作について説明する。この実
施の形態のマルチプロセッサシステムの動作は、第1の
実施の形態のものとほぼ同一であるが、ステップS19
の再送処理のみが異なる。また、ステップS19の再送
処理においても、受信側ノード4−nでアドレス変換の
失敗があった場合の処理は、第1の実施の形態のもの
(図6(b))と同一である。
The operation of the multiprocessor system according to this embodiment will be described below. The operation of the multiprocessor system according to this embodiment is almost the same as that of the first embodiment, except that step S19 is performed.
Only the retransmission processing of Also in the retransmission processing in step S19, the processing in the case where the address conversion has failed in the receiving node 4-n is the same as that in the first embodiment (FIG. 6B).

【0101】図12は、送信側ノード4−1でアドレス
変換の失敗があった場合に、送信側プロセス11が実行
する再送処理を示すフローチャートである。処理が開始
すると、送信側プロセス11は、送信側ノード4−1の
送信側失敗ページ表341を参照して、アドレス変換に
失敗したページの仮想アドレスを計算する(ステップS
31)。
FIG. 12 is a flowchart showing the retransmission processing executed by the transmitting process 11 when the address conversion has failed in the transmitting node 4-1. When the process starts, the transmission-side process 11 refers to the transmission-side failed page table 341 of the transmission-side node 4-1 to calculate the virtual address of the page for which the address translation has failed (step S).
31).

【0102】次に、送信側プロセス11は、ステップS
31で計算した仮想アドレスが示すページが遠隔ディス
ク(送信側ノード4−1以外にある二次記憶装置18)
にあるかどうかを判定する(ステップS34)。
Next, the transmission-side process 11 proceeds to step S
The page indicated by the virtual address calculated in 31 is the remote disk (the secondary storage device 18 other than the transmitting node 4-1)
Is determined (step S34).

【0103】ステップS34で当該ページが遠隔ディス
クにないと判定したときは、送信側プロセス11は、ス
テップS31で計算した仮想アドレスにアクセスしてペ
ージフォルトを起こさせ、カーネル46に当該アドレス
変換に失敗したページを二次記憶装置18からメモリ1
3にページインさせる(ステップS32)。そして、送
信側プロセス11は、そのページインされたページを再
送する(ステップS33)。
If it is determined in step S34 that the page is not on the remote disk, the transmitting process 11 accesses the virtual address calculated in step S31 to cause a page fault, and causes the kernel 46 to fail the address conversion. The stored page is transferred from the secondary storage device 18 to the memory 1
3 (step S32). Then, the transmitting process 11 retransmits the page that has been paged in (step S33).

【0104】ステップS34で当該ページが遠隔ディス
クにあると判定したときは、送信側プロセス11は、カ
ーネル46の遠隔データ送信要求1062の機能を利用
して、当該ノードのカーネル31に対して遠隔データ送
信要求を送る(ステップS35)。そして、送信側ノー
ド4−1における処理を終了する。
When it is determined in step S34 that the page is on the remote disk, the transmitting process 11 uses the function of the remote data transmission request 1062 of the kernel 46 to send the remote data to the kernel 31 of the node. A transmission request is sent (step S35). Then, the processing in the transmission side node 4-1 ends.

【0105】次に、この遠隔データ送信要求を受信した
ノード(以下、遠隔ノードという)における処理を、図
13のフローチャートを参照して説明する。遠隔ノード
の遠隔データ送信1061の機能は、遠隔データ送信要
求を受け取ると、その要求中に含まれている情報を元
に、遠隔ノードの二次記憶装置18から読み出すべきペ
ージを決定する(ステップS61)。
Next, the processing in the node that has received the remote data transmission request (hereinafter, referred to as a remote node) will be described with reference to the flowchart in FIG. Upon receiving the remote data transmission request, the function of the remote data transmission 1061 of the remote node determines a page to be read from the secondary storage device 18 of the remote node based on the information included in the request (step S61). ).

【0106】次に、遠隔データ送信1061の機能は、
二次記憶装置18からステップS61で決定したページ
を読み出し(ステップS62)、受信側ノード4−nに
そのページを 送信る(ステップS63)。最後に、遠
隔データ送信1061の機能は、送信が終了したことを
要求元の送信側プロセス11に遠隔ノードのカーネル4
6が提供するプロセッサ間通信機能を使って通知する
(ステップS64)。以上により、一連の再送処理を終
了する。
Next, the function of the remote data transmission 1061 is as follows.
The page determined in step S61 is read from the secondary storage device 18 (step S62), and the page is transmitted to the receiving node 4-n (step S63). Finally, the function of the remote data transmission 1061 is to notify the requesting sender process 11 that the transmission has been completed to the remote node kernel 4.
The notification is made using the inter-processor communication function provided by 6 (step S64). Thus, a series of retransmission processing ends.

【0107】以上説明したように、この実施の形態のマ
ルチプロセッサシステムでは、遠隔ノードから直接デー
タを送信するので、遠隔ノードから送信側のノードへの
データ転送を減らすことができ、データの再送の時間を
短縮することができる。さらに、送信側ノードの負担を
減らすこともできる。
As described above, in the multiprocessor system of this embodiment, since data is transmitted directly from the remote node, data transfer from the remote node to the transmitting node can be reduced, and data retransmission can be performed. Time can be reduced. Further, the burden on the transmitting node can be reduced.

【0108】[実施の形態の変形]上記の第1の実施の
形態では、プロセス11が受信バッファ22のページイ
ンさせるためにカーネルが提供する遠隔ページアクセス
機能761を利用したが、受信側ノードにページアクセ
ス専用のスレッドを設け、そのスレッドを使ってページ
インさせてもよい。
[Modification of Embodiment] In the above-described first embodiment, the process 11 uses the remote page access function 761 provided by the kernel in order to page in the reception buffer 22. A thread dedicated to page access may be provided, and a page may be entered using the thread.

【0109】このページアクセススレッドは要求メッセ
ージを受けとると、受信バッファ22の指定された仮想
アドレスに直接アクセスすることによりページフォルト
を起こし、カーネル36にページインさせる。この要求
メッセージは受信プロセスの識別子とページインさせた
い仮想アドレスのリストを含む。なお、この要求メッセ
ージは従来のカーネルが提供するのと同様のシステムコ
ールを用いた通信機能を用いて送ることができる。
Upon receiving the request message, the page access thread causes a page fault by directly accessing the specified virtual address of the reception buffer 22, and causes the kernel 36 to page in. This request message contains the identifier of the receiving process and a list of virtual addresses to be paged in. This request message can be sent using a communication function using a system call similar to that provided by a conventional kernel.

【0110】この方法を用いることにより、カーネルが
遠隔ページアクセス機能761を持たない場合でも、第
1の実施の形態と同様のマルチプロセッサシステムを構
築することができる。
By using this method, a multiprocessor system similar to that of the first embodiment can be constructed even when the kernel does not have the remote page access function 761.

【0111】上記の第3の実施の形態では、最後のパケ
ットを送信/受信する時に割り込みを起こし、その割り
込み処理の中で最後のパケットを送信/受信しないよう
にする処理を行なっているが、最後のパケットを送信/
受信する時の割り込みの代わりに、最後のパケットある
いは最後のページを送信/受信しないで捨てるような機
能が通信ハードウェアにある場合も、同様のことが実現
できる。
In the third embodiment, an interrupt is generated when the last packet is transmitted / received, and processing for preventing the last packet from being transmitted / received in the interrupt processing is performed. Send last packet /
The same can be realized when the communication hardware has a function of discarding the last packet or last page without transmitting / receiving the data instead of the interruption at the time of reception.

【0112】このような通信ハードウェアを使用した場
合、最初にアドレス変換の失敗が起きた時の割り込み処
理で、送信/受信失敗ページ表には最後のページも失敗
したものとして記録し、さらに、通信ハードウェアに対
して最後のパケット(あるいはページ)の送信/受信を
しないで捨てるように要求する。これにより、最後のパ
ケット(あるいはページ)は送信/受信されず、後で送
信プロセスが失敗確認した時には最後のページもアドレ
ス変換に失敗したように見える。これにより、上記の第
3の実施の形態と同様の効果を得ることができる。
When such communication hardware is used, the last page is also recorded as failed in the transmission / reception failure page table in the interrupt processing when the address translation fails first. Requests the communication hardware to discard the last packet (or page) without sending / receiving. As a result, the last packet (or page) is not transmitted / received, and when the transmission process later confirms failure, the last page also appears to have failed in address translation. Thus, effects similar to those of the third embodiment can be obtained.

【0113】上記の第1〜第4の実施の形態では、ペー
ジング方式の仮想記憶をサポートするものに本発明を適
用した場合について説明したが、セグメント方式やセグ
メントページング方式の仮想記憶をサポートする疎結合
型のマルチプロセッサシステムにも本発明を適用するこ
とは可能である。
In the above-described first to fourth embodiments, the case where the present invention is applied to the one supporting the paging type virtual storage has been described. However, the sparseness supporting the segment type or the segment paging type virtual storage is described. The present invention can be applied to a combined type multiprocessor system.

【0114】[0114]

【発明の効果】以上説明したように、本発明によれば、
ノード間でのデータ転送を高速化することができる。ま
た、不必要なアドレス変換や再送処理を行わなくてもよ
い。
As described above, according to the present invention,
Data transfer between nodes can be speeded up. Further, unnecessary address conversion and retransmission processing may not be performed.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1の実施の形態にかかるマルチプロ
セッサシステムの機能構成を示す機能ブロック図であ
る。
FIG. 1 is a functional block diagram illustrating a functional configuration of a multiprocessor system according to a first embodiment of the present invention.

【図2】本発明の第1の実施の形態における失敗ページ
表(送信失敗ページ表及び受信失敗ページ表)の構成を
示す図である。
FIG. 2 is a diagram showing a configuration of a failed page table (transmission failed page table and reception failed page table) according to the first embodiment of the present invention.

【図3】本発明の第1の実施の形態における失敗ページ
表の仮想空間上の割付を示す図である。
FIG. 3 is a diagram showing allocation of a failed page table in a virtual space according to the first embodiment of the present invention.

【図4】本発明の第1の実施の形態にかかるマルチプロ
セッサシステムにおける動作を示すフローチャートであ
る。
FIG. 4 is a flowchart showing an operation in the multiprocessor system according to the first embodiment of the present invention.

【図5】本発明の第1の実施の形態においてカーネルが
実行する割り込み処理を示すフローチャートである。
FIG. 5 is a flowchart illustrating an interrupt process executed by a kernel according to the first embodiment of this invention.

【図6】本発明の第1の実施の形態においてプロセスが
実行する再送処理を示すフローチャートであり、(a)
は送信側で失敗があった場合の処理を、(b)は受信側
で失敗があった場合の処理を示す。
FIG. 6 is a flowchart illustrating a retransmission process performed by a process according to the first embodiment of the present invention;
Shows the processing when there is a failure on the transmitting side, and (b) shows the processing when there is a failure on the receiving side.

【図7】本発明の第1の実施の形態にかかるマルチプロ
セッサシステムの動作例を説明する図である。
FIG. 7 is a diagram illustrating an operation example of the multiprocessor system according to the first embodiment of the present invention.

【図8】本発明の第2の実施の形態に適用されるページ
カウンタの構成を示す図である。
FIG. 8 is a diagram illustrating a configuration of a page counter applied to a second embodiment of the present invention.

【図9】本発明の第2の実施の形態における失敗ページ
表の仮想空間上の割付を示す図である。
FIG. 9 is a diagram showing allocation of a failed page table in a virtual space according to the second embodiment of the present invention.

【図10】本発明の第3の実施の形態においてカーネル
が実行する割り込み処理を示すフローチャートである。
FIG. 10 is a flowchart illustrating interrupt processing executed by a kernel according to the third embodiment of the present invention.

【図11】本発明の第4の実施の形態にかかるマルチプ
ロセッサシステムの機能構成を示す機能ブロック図であ
る。
FIG. 11 is a functional block diagram illustrating a functional configuration of a multiprocessor system according to a fourth embodiment of the present invention.

【図12】本発明の第4の実施の形態においてプロセス
が実行する再送処理を示すフローチャートであり、送信
側で失敗があった場合の処理を示す。
FIG. 12 is a flowchart illustrating a retransmission process executed by a process according to the fourth embodiment of the present invention, illustrating a process performed when a failure occurs on a transmission side.

【図13】本発明の第4の実施の形態においてプロセス
が実行する遠隔データ送信処理を示すフローチャートで
ある。
FIG. 13 is a flowchart showing a remote data transmission process executed by a process according to the fourth embodiment of the present invention.

【符号の説明】 3−1、3−n、4−1、4−n ノード 10 ネットワーク 11 プロセス 12 データ 13 メモリ 18 二次記憶装置 22 受信バッファ 27 通信ハードウェア 36、46 カーネル 40 ページテーブル 171 送信部 172 割り込み発生部 175 確認領域 176 要求領域 271 受信部 275 ページテーブルベース 341 送信失敗ページ表 362 割り込み処理 571 リモートリード部 641 受信失敗ページ表 761 遠隔ページアクセス 1061 遠隔データ送信 1062 遠隔データ送信要求[Description of Signs] 3-1, 3-n, 4-1, 4-n Node 10 Network 11 Process 12 Data 13 Memory 18 Secondary Storage 22 Receive Buffer 27 Communication Hardware 36, 46 Kernel 40 Page Table 171 Transmission Section 172 interrupt generation section 175 confirmation area 176 request area 271 reception section 275 page table base 341 transmission failure page table 362 interrupt processing 571 remote read section 641 reception failure page table 761 remote page access 1061 remote data transmission 1062 remote data transmission request

フロントページの続き (56)参考文献 特開 昭57−162164(JP,A) 特開 平7−64846(JP,A) 特開 平7−271739(JP,A) 特開 平9−212474(JP,A) 特開 平8−305667(JP,A) 特開 平7−262151(JP,A) 手塚宏史、外4名,「ピンダウンキャ ッシュを用いたユーザレベルゼロコピー 通信」,情報処理学会研究報告Vol. 97 No.76(97−ARC−125), 1997.08.22,p.167−172 石川裕,「コモディティハードウェア を用いた並列処理技術」,情報処理第39 巻第8号,1998.08.15,p.784−791 (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 12/08 - 12/12 G06F 13/00 G06F 13/38 - 13/42 JICSTファイル(JOIS)Continuation of the front page (56) References JP-A-57-162164 (JP, A) JP-A-7-64846 (JP, A) JP-A-7-271739 (JP, A) JP-A-9-212474 (JP, A) JP-A-8-305667 (JP, A) JP-A-7-262151 (JP, A) Hiroshi Tezuka, 4 others, "User-level zero-copy communication using pin-down cache", IPSJ research Report Vol. 97 No. 76 (97-ARC-125), Aug. 22, 1997, p. 167-172 Hiroshi Ishikawa, "Parallel Processing Technology Using Commodity Hardware", Information Processing Vol. 39, No. 8, August 15, 1998, p. 784-791 (58) Field surveyed (Int. Cl. 7 , DB name) G06F 15/16-15/177 G06F 12/08-12/12 G06F 13/00 G06F 13/38-13/42 JICST file ( JOIS)

Claims (6)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】互いに通信路を介して接続された複数のノA plurality of nodes connected to each other via a communication path;
ードから構成されるマルチプロセッサシステムであっMulti-processor system consisting of
て、hand, 前記複数のノードのうちの少なくとも1つは、At least one of the plurality of nodes includes: 物理アドレス空間を提供する第1の記憶手段と、First storage means for providing a physical address space; 論理アドレス空間を提供する第2の記憶手段と、Second storage means for providing a logical address space; 所定のアドレス変換単位毎に物理アドレスと論理アドレPhysical address and logical address for each predetermined address translation unit
スとの間のアドレス変換を行う第1のアドレス変換手段Address translation means for translating addresses between the address and the address
と、When, 前記論理アドレス空間に存在するデータを前記通信路をThe data existing in the logical address space is transferred to the communication path.
介して他のノードに送信する第1の送信手段と、First transmitting means for transmitting to another node via 前記第1の送信手段によって送信される前記データのうThe data transmitted by the first transmitting means;
ち前記第1の記憶手段が提供する前記物理アドレス空間The physical address space provided by the first storage means
に存在しなかったアドレス変換単位に関する情報を記録Records information about address translation units that did not exist in
する第1の変換単位情報記録手段と、First conversion unit information recording means, 前記第1の送信手段による前記データの送信が終了したThe transmission of the data by the first transmission means has been completed.
後、前記第1の変換単位情報記録手段に記録されているLater, it is recorded in the first conversion unit information recording means.
情報に対応するアドレス変換単位のデータを前記通信路The data of the address conversion unit corresponding to the information is transmitted to the communication path.
を介して前記他のノードに再送する再送手段と、を備Resending means for resending to the other node via
え、e, 前記複数のノードのうちの他の少なくとも1つは、At least one other of the plurality of nodes includes: 物理アドレス空間を提供する第3の記憶手段と、Third storage means for providing a physical address space; 論理アドレス空間を提供する第4の記憶手段と、Fourth storage means for providing a logical address space; 所定のアドレス変換単位毎に物理アドレスと論理アドレPhysical address and logical address for each predetermined address translation unit
スとの間のアドレス変換を行う第2のアドレス変換手段Address translation means for translating addresses between the address and the address
と、When, 前記複数のノードのうちの少なくとも1つから送信されTransmitted from at least one of the plurality of nodes
たデータを受信する受信手段と、Receiving means for receiving the received data; 前記受信手段が受信したデータを記憶すべき論理アドレA logical address to store the data received by the receiving means.
スに対応する物理アドレスが前記第3の記憶手段に存在A physical address corresponding to the resource exists in the third storage means.
しないアドレス変換単位に関する情報を記録する第2のThe second to record information about the address translation unit not
変換単位情報記録手段と、を備え、Conversion unit information recording means, 前記複数のノードのうちの少なくとも1つは、At least one of the plurality of nodes includes: 前記通信路を介して前記第2の変換単位情報記録手段にVia the communication path to the second conversion unit information recording means
記録された情報を読みRead the recorded information 出す変換単位情報読み出し手段Conversion unit information reading means to output
と、When, 前記変換単位情報読み出し手段が読み出した情報に対応Corresponds to the information read by the conversion unit information reading means
するデータを前記第2のアドレス変換手段にアドレス変The data to be converted to the second address converting means.
換させて前記第4の記憶手段から前記第3の記憶手段にIn other words, from the fourth storage means to the third storage means
書き込む手段とを備え、Means for writing, 前記再送手段は、前記変換単位情報読み出し手段が読みThe resending means reads the conversion unit information reading means.
出した情報に対応するアドレス変換単位のデータをさらData of the address translation unit corresponding to the
に前記複数のノードのうちの少なくとも1つから前記通The communication from at least one of the plurality of nodes.
信路を介して前記複数のノードのうちの他の少なくともAt least another of the plurality of nodes via a communication path
1つに再送することを特徴とするマルチプロセッサシスMultiprocessor system characterized by resending to one
テム。Tem.
【請求項2】 前記受信手段は、受信したデータのうち前
記第3の記憶手段が提供する前記物理アドレス空間に存
在しなかったアドレス変換単位のデータを破棄すること
を特徴とする請求項に記載のマルチプロセッサシステ
ム。
Wherein said receiving means to claim 1, characterized in that discarding data of said third address translation unit that did not exist in the physical address space storing means is provided within the received data A multiprocessor system as described.
【請求項3】 前記送信されるデータのうちの最後の送信
単位には、該送信単位が最後のものであることを示す情
報が含まれ、 前記複数のノードのうちの他の少なくとも1つは、 前記受信手段が前記送信単位のうちの最後のデータを受
信したときに、前記前記第2の変換単位情報記録手段に
記録されている情報を参照する第2の変換単位情報参照
手段と、 前記第2の変換単位情報参照手段による参照の結果、い
ずれかのアドレス変換単位を記憶すべき論理アドレスに
対応する物理アドレスが前記第3の記憶手段に存在しな
かったことを示すときに、前記最後の送信単位を含むア
ドレス変換単位に関する情報を前記第2の変換単位情報
記録手段に記録させる第2の変換単位情報制御手段と、前記第2の変換単位情報参照手段による参照の結果、い
ずれかのアドレス変換単位を記憶すべき論理アドレスに
対応する物理アドレスが前記第3の記憶手段に存在しな
かったことを示すときに、前記最後の送信単位のデータ
を破棄する破棄手段と をさらに備えることを特徴とする
請求項1または2に記載のマルチプロセッサシステム。
3. The last transmission unit of the transmitted data includes information indicating that the transmission unit is the last transmission unit, and at least one of the plurality of nodes includes at least one of the plurality of nodes. A second conversion unit information reference unit that refers to information recorded in the second conversion unit information recording unit when the receiving unit receives last data of the transmission unit; When the result of the reference by the second conversion unit information reference means indicates that the physical address corresponding to the logical address to store any address conversion unit does not exist in the third storage means, a second conversion unit information control means for causing the information about the address translation unit comprising a transmission unit recorded in the second conversion unit information recording means, the result of the reference by the second conversion unit information reference unit,
One of the address conversion units is converted to a logical address to be stored.
A corresponding physical address does not exist in the third storage means.
When indicating that the last transmission unit data
3. The multiprocessor system according to claim 1, further comprising: a discarding unit that discards the data.
【請求項4】 前記複数のノードのうちのさらに他の少な
くとも1つは、 前記第1の記憶手段が提供する物理アドレス空間に対す
る論理アドレス空間をさらに提供する第5の記憶手段
と、 前記複数のノードのうちの少なくとも1つからの要求に
従うアドレス変換単位を送信する第2の送信手段とを備
え、 前記複数のノードのうちの少なくとも1つは、 前記第1の送信手段による前記データの送信が終了した
後、前記第1の変換単位情報記録手段に記録されている
情報に対応するアドレス変換単位が前記第5の記憶手段
に記憶されているかどうかを判定する判定手段と、 前記判定手段による判定の結果、前記第5の記憶手段に
記憶されていると判定されたアドレス変換単位を前記第
2の送信手段に送信させるべき前記要求を前記通信路を
介して行う送信要求手段と、をさらに備えることを特徴
とする請求項1乃至3のいずれか1項に記載のマルチプ
ロセッサシステム。
Wherein at least one still another of said plurality of nodes, a fifth memory means for further providing the logical address space to physical address space of the first storage means is provided, said plurality of A second transmission unit for transmitting an address translation unit according to a request from at least one of the nodes, wherein at least one of the plurality of nodes transmits the data by the first transmission unit. After the processing, the determination unit determines whether an address translation unit corresponding to the information recorded in the first translation unit information recording unit is stored in the fifth storage unit, and the determination by the determination unit. As a result, the request to cause the second transmission unit to transmit the address translation unit determined to be stored in the fifth storage unit is transmitted through the communication path. Multiprocessor system according to any one of claims 1 to 3, a transmission request means, and further comprising a performing.
【請求項5】 前記再送手段は、 前記第1の変換単位情報記録手段に記録されている情報
に対応するデータを前記第1のアドレス変換手段にアド
レス変換させて前記第2の記憶手段から前記第1の記憶
手段に書き込む手段を備え、 該手段によって前記第1の記憶手段に書き込まれたデー
タを前記通信路を介して前記他のノードに再送すること
を特徴とする請求項1乃至4のいずれか1項に記載のマ
ルチプロセッサシステム。
Wherein said retransmission means, said from said second storage means data corresponding to the first conversion unit information recording means information recorded to by the address conversion in the first address translation means 5. The method according to claim 1, further comprising: means for writing to the first storage means, wherein the data written to the first storage means by the means is retransmitted to the other node via the communication path . The multiprocessor system according to claim 1.
【請求項6】 互いに通信路を介して接続され、それぞれ
物理アドレス空間を提供する第1の記憶装置と、論理ア
ドレス空間を提供する第2の記憶装置と、所定のアドレ
ス変換単位毎に物理アドレスと論理アドレスとの間のア
ドレス変換を行うアドレス変換機構とを有する複数のノ
ードから構成されるマルチプロセッサシステムにおける
データ転送方法であって、 前記複数のノードのうちの少なくとも1つから、該ノー
ドの論理アドレス空間に存在するデータを前記通信路を
介して他のノードに送信する送信ステップと、 前記送信ステップで送信される前記データのうち前記第
1の記憶装置が提供する前記物理アドレス空間に存在し
なかったアドレス変換単位に関する情報を記録する第1
の変換単位情報記録ステップと、 前記送信ステップでの前記データの送信が終了した後、
前記第1の変換単位情報記録ステップで記録した情報に
対応するアドレス変換単位のデータを前記複数のノード
のうちの少なくとも1つから前記通信路を介して前記他
のノードに再送する再送ステップと、前記送信ステップで前記複数のノードの少なくとも1つ
から送信されたデータを受信した前記他のノードが、該
データを記憶すべき論理アドレスに対応する物理アドレ
スが前記第1の記憶装置に存在しないアドレス変換単位
に関する情報を記録する第2の変換単位情報記録ステッ
プとを含み、 前記再送ステップは、前記第2の変換単位情報記録ステ
ップで記録した情報に対応するアドレス変換単位のデー
タをさらに前記複数のノードのうちの少なくとも1つか
ら前記通信路を介して前記他のノードに再送する ことを
特徴とするマルチプロセッサシステムにおけるデータ転
送方法。
6. A first storage device which is connected to each other via a communication path and provides a physical address space, a second storage device which provides a logical address space, and a physical address for each predetermined address conversion unit. A data transfer method in a multiprocessor system including a plurality of nodes having an address translation mechanism for performing an address translation between a logical address and a logical address, the method comprising: A transmitting step of transmitting data existing in a logical address space to another node via the communication path; and a data present in the physical address space provided by the first storage device among the data transmitted in the transmitting step No. 1 for recording information on the address translation unit not performed
After the conversion unit information recording step and the transmission of the data in the transmission step are completed,
A retransmission step of retransmitting data of an address translation unit corresponding to the information recorded in the first translation unit information recording step from at least one of the plurality of nodes to the other node via the communication path; At least one of the plurality of nodes in the transmitting step
The other node that has received the data transmitted from the
Physical address corresponding to the logical address where data should be stored
Address translation unit whose address does not exist in the first storage device
A second conversion unit information recording step for recording information on
And the retransmission step includes the second conversion unit information recording step.
Address conversion unit data corresponding to the information recorded in the
Further determine at least one of the plurality of nodes
And retransmitting the data to the other node via the communication path .
JP00657898A 1998-01-16 1998-01-16 Multiprocessor system and data transfer method in multiprocessor system Expired - Fee Related JP3237599B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP00657898A JP3237599B2 (en) 1998-01-16 1998-01-16 Multiprocessor system and data transfer method in multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP00657898A JP3237599B2 (en) 1998-01-16 1998-01-16 Multiprocessor system and data transfer method in multiprocessor system

Publications (2)

Publication Number Publication Date
JPH11203260A JPH11203260A (en) 1999-07-30
JP3237599B2 true JP3237599B2 (en) 2001-12-10

Family

ID=11642219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00657898A Expired - Fee Related JP3237599B2 (en) 1998-01-16 1998-01-16 Multiprocessor system and data transfer method in multiprocessor system

Country Status (1)

Country Link
JP (1) JP3237599B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882166B2 (en) 2003-02-21 2011-02-01 Nec Corporation Inter-computer data transfer method and inter-computer network system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3800037B2 (en) 2001-06-06 2006-07-19 日本電気株式会社 Interprocessor communication system and interprocessor communication method used therefor
JP7060805B2 (en) * 2018-07-18 2022-04-27 富士通株式会社 Communication buffer management program, information processing device and communication buffer management method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
手塚宏史、外4名,「ピンダウンキャッシュを用いたユーザレベルゼロコピー通信」,情報処理学会研究報告Vol.97 No.76(97−ARC−125),1997.08.22,p.167−172
石川裕,「コモディティハードウェアを用いた並列処理技術」,情報処理第39巻第8号,1998.08.15,p.784−791

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882166B2 (en) 2003-02-21 2011-02-01 Nec Corporation Inter-computer data transfer method and inter-computer network system

Also Published As

Publication number Publication date
JPH11203260A (en) 1999-07-30

Similar Documents

Publication Publication Date Title
US7194517B2 (en) System and method for low overhead message passing between domains in a partitioned server
Welch et al. Pseudo devices: User-level extensions to the Sprite file system
US7089289B1 (en) Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices
US7447855B2 (en) Data processing method providing remote copy in a system having first, second, and third storage systems
US20050055523A1 (en) Data processing system
JPH07168780A (en) Network interface device
JPH1185710A (en) Server device and file management method
JPH0962558A (en) Method and system for database management
CA2241994A1 (en) System and method for efficient remote disk i/o
US7020743B2 (en) Atomic remote memory operations in cache mirroring storage systems
US9910808B2 (en) Reflective memory bridge for external computing nodes
JP3919295B2 (en) Substantially memoryless coherent transformation method and apparatus for connecting a computer node with a coherent domain and apparatus thereof
JP3237599B2 (en) Multiprocessor system and data transfer method in multiprocessor system
KR20090065128A (en) Toe, apparatus and method for sendfile system call processing for static file transmission
US7136933B2 (en) Inter-processor communication systems and methods allowing for advance translation of logical addresses
JPH07239808A (en) Distributed data managing system
WO2020044036A1 (en) Method and apparatus for coherent interconnect recovery with protocol layer re-transmission
JP3376956B2 (en) Communication device between processors
JPH09167143A (en) Message reception control system
US11914865B2 (en) Methods and systems for limiting data traffic while processing computer system operations
US20240152476A1 (en) Data access method and related device
CN117171059A (en) RDMA-based persistent memory storage method and system
US10762011B2 (en) Reflective memory bridge for external computing nodes
WO2023046129A1 (en) Computer device, method for processing data, and computer system
WO2023217255A1 (en) Data processing method and device, processor and computer system

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010529

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010904

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

Free format text: PAYMENT UNTIL: 20071005

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20081005

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091005

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091005

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20101005

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111005

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20121005

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20131005

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees