JP2736237B2 - Remote memory access controller - Google Patents
Remote memory access controllerInfo
- Publication number
- JP2736237B2 JP2736237B2 JP7045779A JP4577995A JP2736237B2 JP 2736237 B2 JP2736237 B2 JP 2736237B2 JP 7045779 A JP7045779 A JP 7045779A JP 4577995 A JP4577995 A JP 4577995A JP 2736237 B2 JP2736237 B2 JP 2736237B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- memory access
- remote memory
- remote
- memory
- 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 - Lifetime
Links
- 230000015654 memory Effects 0.000 title claims description 567
- 238000000034 method Methods 0.000 claims description 88
- 239000000872 buffer Substances 0.000 claims description 59
- 230000004044 response Effects 0.000 claims description 46
- 230000005540 biological transmission Effects 0.000 claims description 44
- 230000007246 mechanism Effects 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 32
- 238000001514 detection method Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 79
- 238000004891 communication Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 29
- 238000006243 chemical reaction Methods 0.000 description 25
- 230000000694 effects Effects 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 238000013519 translation Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 7
- 230000004888 barrier function Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000017105 transposition Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 101000612837 Mus musculus Tetraspanin-7 Proteins 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
- Complex Calculations (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、遠隔に実装されたメモ
リに対してアクセスを行うことができる分散共有メモリ
方式の並列計算機における遠隔メモリアクセス制御装置
に係り、特にリストベクトルによってアクセス先を細か
く制御しつつ高速にアクセスできる遠隔メモリアクセス
制御装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a remote memory access control device in a distributed shared memory type parallel computer capable of accessing a remotely mounted memory, and in particular, to fine-tune the access destination by using a list vector. The present invention relates to a remote memory access control device capable of controlling and accessing at high speed.
【0002】[0002]
【従来の技術】従来の分散共有メモリ型並列計算機で
は、マイクロプロセッサから出されるリード要求やライ
ト要求を受けて、その1回のアクセスが遠隔メモリへの
アクセスを意味した場合は1つの遠隔メモリアクセスパ
ケットを生成していた。2. Description of the Related Art In a conventional distributed shared memory type parallel computer, when a read request or a write request issued from a microprocessor is received and one access means access to a remote memory, one remote memory access is performed. Was generating packets.
【0003】このため、様々なアドレスの遠隔メモリに
1語ずつアクセスするような処理を行う場合は、(i)
マイクロプロセッサがメモリからアクセス先のアドレス
そのものを読みだし、あるいはメモリから読みだしたデ
ータを元にそのアドレスを計算により求め、(ii)その
結果をアドレスとして遠隔メモリにアクセスをする、と
いう一連の動作を、マイクロプロセッサのプログラムの
中で逐次に処理しなければならなかった。For this reason, when performing processing for accessing the remote memory at various addresses one word at a time, (i)
A series of operations in which the microprocessor reads the access destination address itself from the memory, or calculates the address based on the data read from the memory, and (ii) accesses the remote memory using the result as an address. Must be sequentially processed in a microprocessor program.
【0004】さらに、多数の遠隔プロセッサ上の遠隔メ
モリに少しずつアクセスするような場合は、マイクロプ
ロセッサ内のデータキャッシュを大量の遠隔メモリアド
レス情報が通過するような不都合や、マイクロプロセッ
サ内のトランスレーション・ルックアサイド・バッファ
(Trnslation Look Aside Bu
ffer;以下、TLBと略記する)の限られた個数の
エントリを次々とページ外にはみでる遠隔メモリアドレ
スが食いつぶしてしまうおそれがあった。Further, when remote memory on a large number of remote processors is accessed little by little, a large amount of remote memory address information passes through a data cache in the microprocessor.・ Look aside buffer (Trnslation Look Acid Bu)
(hereinafter, abbreviated as TLB), there is a possibility that a remote memory address that overflows a limited number of entries one after another out of the page.
【0005】また従来は、応答パケットを用いて遠隔メ
モリへの書き込みが完了したかどうかを確認していたの
で、全ての応答が戻ってくるまでの時間だけ遅く書き込
みの完了が伝わるために、処理が遅くなり、プロセッサ
間結合網を応答パケットにより混雑させてしまうという
欠点があった。Conventionally, whether or not the writing to the remote memory has been completed has been confirmed by using a response packet. Therefore, the completion of the writing is transmitted only later until all the responses are returned. And there is a disadvantage that the inter-processor connection network is congested by the response packet.
【0006】[0006]
【発明の解決しようとする課題】以上のように、従来の
分散共有メモリ型並列計算機では、遠隔メモリアクセス
制御装置が結合網に出力するパケットは間欠的にしか発
生させることができないばかりか、マイクロプロセッサ
の処理時間を増加させ、その他の演算処理と通信のオー
バーラップを阻害したり、遠隔メモリアドレス情報がキ
ャッシュやTLBを通過するためにキャッシュやTLB
のヒット率を低下させたりしてしまうという問題点があ
った。As described above, in the conventional distributed shared memory type parallel computer, the packet output from the remote memory access control device to the connection network can be generated only intermittently, and the It increases the processing time of the processor, hinders the overlap of communication with other arithmetic processing, and prevents the cache and TLB from passing remote memory address information through the cache and TLB.
There is a problem that the hit rate is lowered.
【0007】本発明は、上記事情に鑑みてなされたもの
であり、キャッシュやTLBのミスヒットに起因する割
り込み発生を排除し、かつ、遠隔メモリアクセスパケッ
トを連続的に発生させることの可能な遠隔メモリアクセ
ス制御装置を提供することを目的とする。SUMMARY OF THE INVENTION The present invention has been made in view of the above circumstances, and eliminates the occurrence of an interrupt due to a cache or TLB mishit, and enables a remote memory access packet to be continuously generated. It is an object to provide a memory access control device.
【0008】また、本発明は、遠隔メモリへの書き込み
処理に対する応答パケットにより結合網を混雑させるこ
とがないようする遠隔メモリアクセス制御装置を提供す
ることを目的とする。Another object of the present invention is to provide a remote memory access control device for preventing a connection network from being congested by a response packet to a write process to a remote memory.
【0009】[0009]
【課題を解決するための手段】第1の発明は、複数のプ
ロセッサと物理的に分散して実装され論理的に該複数の
プロセッサから共有メモリとしてアクセス可能な分散共
有メモリとを具備する並列計算機において対応するプロ
セッサの該分散共有メモリに対する遠隔メモリアクセス
を制御する遠隔メモリアクセス制御装置であって、パケ
ット生成用情報のアドレスを指定するポインタ指定手段
と、生成するパケットの個数を指定するパケット数指定
手段と、前記対応するプロセッサからの遠隔メモリアク
セス要求を検出するアクセス要求検出手段と、前記遠隔
メモリアクセス要求が検出された場合、前記ポインタ指
定手段により指示される前記アドレスを元にして、前記
対応するプロセッサのローカルメモリから所定のフォー
マットのパケット生成用情報を読み出すローカルメモリ
アクセス手段と、読み出された前記パケット生成用情報
に基づいて、前記パケット数指定手段により指示される
パケット数分、前記分散共有メモリに対して遠隔メモリ
アクセスするパケットを生成するパケット生成手段とを
備えたことを特徴とする。According to a first aspect of the present invention, there is provided a parallel computer including a plurality of processors and a distributed shared memory which is physically distributed and mounted and which can be logically accessed as a shared memory from the plurality of processors. A remote memory access control device for controlling remote memory access of said corresponding processor to said distributed shared memory, comprising: pointer specifying means for specifying an address of packet generation information; and packet number specification for specifying the number of packets to be generated. Means, an access request detecting means for detecting a remote memory access request from the corresponding processor, and, when the remote memory access request is detected, based on the address indicated by the pointer designating means, Packet of a predetermined format from the local memory of the processor Local memory access means for reading application information; and packets for remote memory access to the distributed shared memory for the number of packets specified by the packet number designation means based on the read packet generation information. And a packet generating means for generating.
【0010】第2の発明は、第1の発明に係る遠隔メモ
リアクセス制御装置において、前記ローカルメモリに格
納される前記パケット生成用情報の格納フォーマットを
配列とすることを特徴とする。According to a second aspect, in the remote memory access control device according to the first aspect, a storage format of the packet generation information stored in the local memory is arranged.
【0011】第3の発明は、第1の発明に係る遠隔メモ
リアクセス制御装置において、前記パケット生成用情報
を一時的に格納する第1のバッファ手段と、書き込みデ
ータを一時的に格納する第2のバッファ手段とをさらに
備え、前記ローカルメモリアクセス手段は、前記遠隔メ
モリアクセス要求が遠隔メモリ書き込み要求である場
合、前記ローカルメモリから前記第1及び第2のバッフ
ァ手段に情報を取り込むものであるとともに、前記パケ
ット生成手段は、前記遠隔メモリアクセス要求が遠隔メ
モリ書き込み要求である場合、対応する前記パケット生
成用情報と前記書き込みデータとの組がそろったものか
ら、該組の内容に基づいて遠隔メモリ書き込みパケット
を生成するものであって、前記ローカルメモリアクセス
手段と前記パケット生成手段とを、パイプライン的に同
時動作させるようにしたことを特徴とする。According to a third invention, in the remote memory access control device according to the first invention, a first buffer means for temporarily storing the packet generation information and a second buffer means for temporarily storing write data. Wherein the local memory access means fetches information from the local memory to the first and second buffer means when the remote memory access request is a remote memory write request. When the remote memory access request is a remote memory write request, the packet generation means starts the remote memory based on the contents of the set of the corresponding packet generation information and the write data. Generating a write packet, said local memory access means and said packet And forming means, characterized in that so as to pipeline manner are simultaneously operated.
【0012】第4の発明は、第3の発明に係る遠隔メモ
リアクセス制御装置において、前記ローカルメモリアク
セス手段は、連続アクセスが高速なローカルメモリをア
クセスするものであり、前記パケット生成用情報および
前記書き込みデータを前記ローカルメモリから連続アク
セスによって各々複数パケット分、前記第1および第2
のバッファ手段に取り込むようにしたことを特徴とす
る。According to a fourth aspect of the present invention, in the remote memory access control device according to the third aspect, the local memory access means accesses a local memory having a high continuous access speed. The first and second write data are sequentially accessed from the local memory for a plurality of packets.
In the buffer means.
【0013】第5の発明は、第1の発明に係る遠隔メモ
リアクセス制御装置において、前記パケットが運ぶべき
情報のデータ語数を指定するバースト長指定手段をさら
に具備し、該バースト長指定手段により指定される語数
の読み書きを行う遠隔メモリバーストアクセスパケット
を生成するようにしたことを特徴とする。A fifth aspect of the present invention is the remote memory access control device according to the first aspect, further comprising a burst length designating unit for designating the number of data words of the information to be carried by the packet, and designated by the burst length designating unit. A remote memory burst access packet for reading and writing the number of words to be written is generated.
【0014】第6の発明は、第1の発明に係る遠隔メモ
リアクセス制御装置において、前記パケット生成用情報
には、メモリアドレスの他に当該パケットが運ぶべき情
報のデータ語数を持たせ、各パケット毎に所望の語数の
連続データの読み書きを行う遠隔メモリバーストアクセ
スパケットを生成するようにしたことを特徴とする。According to a sixth aspect of the present invention, in the remote memory access control device according to the first aspect, the packet generation information has the number of data words of information to be carried by the packet in addition to the memory address. Each time, a remote memory burst access packet for reading and writing a desired number of words of continuous data is generated.
【0015】第7の発明は、第1の発明に係る遠隔メモ
リアクセス制御装置において、前記パケット生成手段に
は、非特権モードでのプログラムからは特権モードに移
行することなく直接制御することが不可能なプロテクシ
ョン情報付加機構を設けるとともに、他のプロセッサか
らの遠隔メモリアクセスパケットを受信した場合に、該
パケット中のプロテクション情報に基づいてメモリアク
セスの許可不許可を制御するメモリアクセス保護機構を
備えたことを特徴とする。According to a seventh aspect of the present invention, in the remote memory access control device according to the first aspect, the packet generation means does not directly control the program in the non-privileged mode without shifting to the privileged mode. A possible protection information adding mechanism is provided, and a memory access protection mechanism for controlling permission / non-permission of a memory access based on protection information in the packet when a remote memory access packet from another processor is received is provided. It is characterized by the following.
【0016】第8の発明は、複数のベクトルプロセッサ
と物理的に分散して実装され論理的に該複数のベクトル
プロセッサから共有メモリとしてアクセス可能な分散共
有メモリとを具備する並列計算機においてベクトルプロ
セッサの該分散共有メモリに対する遠隔メモリアクセス
を制御する遠隔メモリアクセス制御装置であって、ベク
トルプロセッサがフェッチしたベクトル命令によりパケ
ット生成が起動され、ベクトルプロセッサのベクトルロ
ード手段によりローカルメモリからベクトルレジスタに
ロードされたパケット生成用情報に基づいて、ベクトル
長指定手段により指示されるパケット数分、前記分散共
有メモリに対して遠隔メモリアクセスするパケットを生
成するパケット生成手段を備えたことを特徴とする。According to an eighth aspect of the present invention, there is provided a parallel computer including a plurality of vector processors and a distributed shared memory which is physically distributed and logically accessible as a shared memory from the plurality of vector processors. A remote memory access control device for controlling remote memory access to the distributed shared memory, wherein packet generation is started by a vector instruction fetched by a vector processor, and is loaded from a local memory to a vector register by a vector loading means of the vector processor. A packet generator is provided which generates packets for remote memory access to the distributed shared memory for the number of packets specified by the vector length designator based on the packet generation information.
【0017】第9の発明は、第8の発明に係る遠隔メモ
リアクセス制御装置において、パケット生成用情報を前
記ベクトルレジスタの少なくとも1つに格納するととも
に、前記ローカルメモリからロードした書き込みデータ
またはベクトル演算器からの出力として得られる書き込
みデータを前記ベクトルレジスタの他のベクトルレジス
タに格納し、対応するパケット生成用情報と書き込みデ
ータを組み合わせて、前記フェッチしたベクトル命令に
よって遠隔メモリ書き込みパケットを生成することを特
徴とする。According to a ninth aspect, in the remote memory access control device according to the eighth aspect, the packet generation information is stored in at least one of the vector registers, and the write data or vector operation loaded from the local memory is stored. Storing the write data obtained as an output from the device in another vector register of the vector register, combining the corresponding packet generation information and the write data, and generating a remote memory write packet by the fetched vector instruction. Features.
【0018】第10の発明は、第8の発明に係る遠隔メ
モリアクセス制御装置において、前記ローカルメモリに
格納される前記パケット生成用情報の格納フォーマット
を配列とすることを特徴とする。According to a tenth aspect, in the remote memory access control device according to the eighth aspect, a storage format of the packet generation information stored in the local memory is arranged.
【0019】第11の発明は、第8の発明に係る遠隔メ
モリアクセス制御装置において、前記パケットが運ぶべ
き情報のデータ語数を指定できるベクトル命令を設け、
所定の語数の連続データの読み書きを1つのパケットで
行う遠隔メモリバーストアクセスパケットを生成するこ
とを特徴とする。According to an eleventh aspect, in the remote memory access control device according to the eighth aspect, a vector instruction capable of designating the number of data words of information to be carried by the packet is provided,
A remote memory burst access packet for reading and writing a predetermined number of words of continuous data in one packet is generated.
【0020】第12の発明は、第8の発明に係る遠隔メ
モリアクセス制御装置において、前記パケット生成用情
報には、メモリアドレスの他に当該パケットが運ぶべき
情報のデータ語数を持たせ、各パケット毎に所望の語数
の連続データの読み書きを行う遠隔メモリバーストアク
セスパケットを生成するようにしたことを特徴とする。According to a twelfth aspect, in the remote memory access control device according to the eighth aspect, the packet generation information has the number of data words of information to be carried by the packet in addition to the memory address. Each time, a remote memory burst access packet for reading and writing a desired number of words of continuous data is generated.
【0021】第13の発明は、第8の発明に係る遠隔メ
モリアクセス制御装置において、前記パケット生成手段
には、非特権モードでのプログラムからは特権モードに
移行することなく直接制御することが不可能なプロテク
ション情報付加機構を設けるとともに、他のプロセッサ
からの遠隔メモリアクセスパケットを受信した場合に、
該パケット中のプロテクション情報に基づいてメモリア
クセスの許可不許可を制御するメモリアクセス保護機構
を備えたことを特徴とする。According to a thirteenth aspect, in the remote memory access control device according to the eighth aspect, the packet generation means does not require direct control from a program in the non-privileged mode without shifting to the privileged mode. In addition to providing a possible protection information addition mechanism, when a remote memory access packet from another processor is received,
A memory access protection mechanism for controlling permission / rejection of memory access based on protection information in the packet.
【0022】第14の発明は、第7または第13の発明
に係る遠隔メモリアクセス制御装置において、遠隔メモ
リを指定するアドレスとして送信側でシステムコールに
よって変換をかけた変換後アドレスを前記ローカルメモ
リに準備し、実際の遠隔メモリアクセスの際には、前記
変換後アドレスを再利用することを特徴とする。According to a fourteenth aspect, in the remote memory access control device according to the seventh or thirteenth aspect, a translated address obtained by performing a translation by a system call on the transmission side as an address designating the remote memory is stored in the local memory. It is characterized in that the prepared address is reused in the prepared and actual remote memory access.
【0023】第15の発明は、複数のプロセッサと物理
的に分散して実装され論理的に該複数のプロセッサから
共有メモリとしてアクセス可能な分散共有メモリとを具
備する並列計算機において対応するプロセッサの該分散
共有メモリに対する遠隔メモリアクセスを制御する遠隔
メモリアクセス制御装置であって、前記対応するプロセ
ッサからの遠隔書き込み要求を検出するアクセス要求検
出手段と、前記遠隔書き込み要求に応答して、対応する
パケットを生成し、所定のプロセッサに向けて送信する
手段と、前記対応するプロセッサ以外のプロセッサから
前記遠隔書き込み要求に対応するパケットを受信する手
段と、前記遠隔書き込み要求に対応するパケットの内容
に応じて、対応するローカルメモリにデータ書き込み処
理を行なう手段と、前記遠隔書き込み要求に対応するパ
ケットに対する前記処理の完了の回数を計数するカウン
タ手段とを備えたことを特徴とする。According to a fifteenth aspect, in a parallel computer including a plurality of processors and a distributed shared memory that is physically distributed and mounted and logically accessible as a shared memory from the plurality of processors, A remote memory access control device for controlling remote memory access to a distributed shared memory, comprising: an access request detecting means for detecting a remote write request from the corresponding processor; and a corresponding packet in response to the remote write request. Means for generating and transmitting to a predetermined processor, means for receiving a packet corresponding to the remote write request from a processor other than the corresponding processor, and according to the content of the packet corresponding to the remote write request, Means for writing data to the corresponding local memory; Characterized by comprising a counter means for counting the number of times of completion of the processing for the packet corresponding to the remote write request.
【0024】[0024]
【作用】第1の発明に係る遠隔メモリアクセス制御装置
では、パケット生成用情報の一部または全部を少なくと
も1つ以上のパケットに対応する分だけ所定のフォーマ
ットに基づいてローカルメモリに格納しておき、そのア
ドレスをポインタ指定手段(パケット生成用情報ポイン
タ指定レジスタ)に設定し、生成するパケットの個数を
パケット数指定手段(パケット数指定レジスタ)に設定
する。その状態まで準備ができたところで、対応する
(外部)プロセッサから遠隔メモリアクセスパケットの
生成を指示する。In the remote memory access control device according to the first invention, part or all of the packet generation information is stored in the local memory based on a predetermined format corresponding to at least one packet. The address is set in the pointer specifying means (packet generation information pointer specifying register), and the number of packets to be generated is set in the packet number specifying means (packet number specifying register). When ready to that state, the corresponding (external) processor instructs the generation of a remote memory access packet.
【0025】指示を受けた遠隔メモリアクセス制御装置
は、パケット生成用情報ポインタ指定レジスタに設定さ
れたアドレスからローカルメモリ上のパケット生成用情
報を1パケット分読みだし、これを用いて遠隔メモリア
クセスパケットを生成し、パケット生成用情報ポインタ
指定レジスタの値を1パケット分のパケット生成用情報
のデータバイト数だけ進ませ、パケット数指定レジスタ
の値を1つデクリメントする。Upon receiving the instruction, the remote memory access control device reads out one packet of packet generation information on the local memory from the address set in the packet generation information pointer designation register, and uses this to read the remote memory access packet. Is generated, the value of the packet generation information pointer designation register is advanced by the number of data bytes of the packet generation information for one packet, and the value of the packet number designation register is decremented by one.
【0026】さらに、上記のパケット生成の一連の動作
を、パケット数指定レジスタの値が0になるまで繰り返
す。このようにして、プロセッサからの1回の起動で、
複数の遠隔メモリアクセスパケットが生成されるので、
プロセッサは、遠隔メモリアクセス制御装置を起動した
後は、遠隔メモリアクセスの処理のために忙殺されるこ
となく別の処理を行うことが可能となる。また、パケッ
ト生成用情報は、プロセッサのキャッシュを通過しない
ので、プロセッサのキャッシュのヒット率も向上する。Further, the above-described series of operations for packet generation is repeated until the value of the packet number designation register becomes zero. In this way, with one activation from the processor,
Since multiple remote memory access packets are generated,
After activating the remote memory access control device, the processor can perform another process without being busy for the process of the remote memory access. In addition, since the packet generation information does not pass through the cache of the processor, the hit rate of the cache of the processor is also improved.
【0027】第2の発明に係る遠隔メモリアクセス制御
装置では、ローカルメモリに格納されるパケット生成用
情報の格納フォーマットを配列とするので、パケット生
成用情報を次々とローカルメモリから遠隔メモリアクセ
ス制御装置に取り込んでくる際に、アドレスの生成が簡
単であり、例えばリンクドリストを用いてアクセスする
ような場合と比べてアドレス入手のためのメモリアクセ
スが無くなり、パケット生成用情報や遠隔書き込みデー
タの読みだしや、プロセッサのメモリアクセスなどのた
めにローカルメモリのバンド幅を有効に活用できる。In the remote memory access control device according to the second invention, since the storage format of the packet generation information stored in the local memory is arranged, the packet generation information is successively transferred from the local memory to the remote memory access control device. When fetching data into a device, it is easy to generate an address.For example, there is no need to access the memory to obtain an address as compared with a case where access is performed using a linked list. However, the bandwidth of the local memory can be effectively used for accessing the memory of the processor.
【0028】第3の発明に係る遠隔メモリアクセス制御
装置では、送信側においてパケット生成用情報を一時的
に格納しておくバッファ手段と、書き込みデータを一時
的に格納しておくバッファ手段を具備する。このように
すると、複数パケット分のパケット生成用情報や書き込
みデータが同時に遠隔メモリアクセス制御装置内に存在
することができ、複数パケット分のパケット生成用情報
を読みだした後に複数パケット分の書き込みデータを読
みだしたり、例えばパケット生成手段が1番目のパケッ
トの生成を行いつつ、メモリアクセス手段が4番目のパ
ケットの別のパケットのためのパケット生成用情報を読
みだすというように、パイプライン動作をさせることに
よりパケット生成手段がメモリアクセス手段と同時に動
作できる。よって、短い間隔で遠隔メモリ書き込みパケ
ットを生成することができる。The remote memory access control device according to the third invention comprises a buffer means for temporarily storing packet generation information on the transmission side and a buffer means for temporarily storing write data. . In this way, the packet generation information and the write data for a plurality of packets can exist in the remote memory access control device at the same time, and after the packet generation information for the plurality of packets is read, the write data for the plurality of packets is read out. The pipeline operation is performed such that the packet generation means generates the first packet and the memory access means reads out the packet generation information for another packet of the fourth packet. By doing so, the packet generation means can operate simultaneously with the memory access means. Therefore, a remote memory write packet can be generated at short intervals.
【0029】遠隔メモリ書き込みパケットは、パケット
生成用情報を一時的に格納しておくバッファ手段と、書
き込みデータを一時的に格納しておくバッファ手段のど
ちらかが空にならない限り、これらを組み合わせて休む
こと無く遠隔メモリ書き込みパケットを生成することが
できる。The remote memory write packet is a combination of a buffer means for temporarily storing packet generation information and a buffer means for temporarily storing write data, unless one of them becomes empty. A remote memory write packet can be generated without a break.
【0030】第4の発明に係る遠隔メモリアクセス制御
装置では、連続アクセスが高速なローカルメモリをアク
セスするローカルメモリアクセス手段を具備するので、
パケット生成用情報を一時的に格納しておくバッファ手
段と、書き込みデータを一時的に格納しておくバッファ
手段に複数パケット分のパケット生成用情報や書き込み
データをそれぞれまとめてローカルメモリからロードす
ることを許容するので、連続アクセスによる高い実効メ
モリバンド幅を使いながら各々複数パケット分バッファ
手段に高速に取り込むことができる。In the remote memory access control device according to the fourth aspect of the present invention, since the local memory access means for accessing the local memory for continuous access at high speed is provided,
Loading packet generation information and write data for a plurality of packets into the buffer means for temporarily storing packet generation information and the buffer means for temporarily storing write data from the local memory. Therefore, a plurality of packets can be fetched at high speed into the buffer means while using a high effective memory bandwidth by continuous access.
【0031】第5の発明に係る遠隔メモリアクセス制御
装置では、パケットが運ぶべきデータ語数を指定するバ
ースト長指定手段(バースト長指定レジスタ)を具備す
る。遠隔メモリアクセスをプロセッサから起動する前
に、バースト長指定レジスタにパケットが運ぶべきデー
タ語数を設定しておく。パケット生成手段は、上記レジ
スタで指定される語数の読み書きを行う遠隔メモリバー
ストアクセスパケットを生成する。The remote memory access control device according to the fifth aspect of the present invention includes a burst length specifying means (burst length specifying register) for specifying the number of data words to be carried by the packet. Before starting the remote memory access from the processor, the number of data words to be carried by the packet is set in the burst length designation register. The packet generation means generates a remote memory burst access packet for reading and writing the number of words specified by the register.
【0032】このようにして、遠隔メモリアドレスなど
からなる1つのパケットヘッダーに対して、バースト長
で指定されるブロック状のデータが運ばれることになる
ので、常に1語ずつ遠隔メモリアクセスを行うより結合
網やメモリバンド幅が有効に活用されることになる。In this way, block-shaped data specified by the burst length is carried for one packet header including a remote memory address and the like, so that remote memory access is always performed one word at a time. The connection network and the memory bandwidth are effectively used.
【0033】第6の発明に係る遠隔メモリアクセス制御
装置では、ローカルメモリに格納されるパケット生成用
情報としてメモリアドレスの他にパケットが運ぶべきデ
ータ語数を具備する。In the remote memory access control device according to the sixth aspect of the present invention, the packet generation information stored in the local memory includes the number of data words to be carried by the packet in addition to the memory address.
【0034】パケット生成手段は、遠隔メモリアクセス
パケットを生成する際に、パケット生成用情報中のパケ
ットが運ぶべきデータ語数(バースト長)を参照しつ
つ、読みだしならば、バースト長をヘッダーに含む遠隔
メモリ読みだし要求パケットを生成し、書き込みなら
ば、ローカルメモリから読みだしたデータをバースト長
の分だけデータ部に含む遠隔メモリ書き込みパケットを
生成する。バースト長は、パケット毎にパケット生成用
情報に含まれるので、アクセス先によって異なるバース
ト長でアクセスすることが可能となる。When generating the remote memory access packet, the packet generation means refers to the number of data words (burst length) to be carried by the packet in the packet generation information, and if reading, includes the burst length in the header. A remote memory read request packet is generated, and in the case of writing, a remote memory write packet is generated which includes data read from the local memory by a burst length in a data portion. Since the burst length is included in the packet generation information for each packet, it is possible to access with a different burst length depending on the access destination.
【0035】第7の発明に係る遠隔メモリアクセス制御
装置では、パケット生成手段に非特権モードでのプログ
ラムからは特権モードに移行することなく直接制御する
ことが不可能なプロテクション情報付加機構を具備す
る。In the remote memory access control device according to the seventh aspect, the packet generation means includes a protection information adding mechanism that cannot directly control the program in the non-privileged mode without shifting to the privileged mode. .
【0036】特権モードからはプロテクション情報を書
き換えることができるので、プロセッサがコンテクスト
スイッチして他のユーザーのプロセスに切り替わる時に
オペレーティングシステムがこれからプロセッサや遠隔
メモリアクセス制御装置などの資源を割り当てるプロセ
スIDなどを設定しておき非特権モードでの遠隔メモリ
アクセス時にはパケット生成手段がこの情報をパケット
のヘッダーに埋め込む。つまり非特権モードでローカル
メモリ上のパケット生成用情報を書き換えても、他人の
遠隔メモリに誤って書き込むことは受信側のメモリアク
セス保護機構でパケットヘッダー中のプロテクション情
報をチェックすることによって排除される。Since the protection information can be rewritten from the privileged mode, when the processor performs a context switch and switches to another user's process, the operating system can assign a process ID or the like to allocate resources such as the processor and the remote memory access controller. At the time of remote memory access in the non-privileged mode, the packet generation means embeds this information in the header of the packet. In other words, even if the information for packet generation on the local memory is rewritten in the non-privileged mode, erroneous writing to the remote memory of another person is eliminated by checking the protection information in the packet header with the memory access protection mechanism on the receiving side. .
【0037】第8の発明に係る遠隔メモリアクセス制御
装置では、分散共有メモリ型並列計算機において、ベク
トルプロセッサの機能の一部として実現される。まず、
遠隔メモリをアクセスするパケットを生成するためのパ
ケット生成用情報の一部または全部を少なくとも1つ以
上のパケットに対応する分だけ所定のフォーマットに基
づいてローカルメモリに格納しておく。In the remote memory access control device according to the eighth invention, the distributed shared memory type parallel computer is realized as a part of the function of the vector processor. First,
Part or all of the packet generation information for generating a packet for accessing the remote memory is stored in the local memory in a predetermined format corresponding to at least one packet.
【0038】次に、ベクトルプロセッサがフェッチした
ベクトルロード命令によってローカルメモリからベクト
ルレジスタにパケット生成用情報のロードを開始する。
次に、生成するパケットの個数に対応する情報をベクト
ル長指定手段(ベクトル長指定レジスタ)に設定した状
態でベクトルプロセッサがフェッチしたベクトル遠隔メ
モリアクセス命令を起動させる。Next, loading of packet generation information from the local memory into the vector register is started by the vector load instruction fetched by the vector processor.
Next, the vector processor activates the vector remote memory access instruction fetched by the vector processor with the information corresponding to the number of packets to be generated set in the vector length specifying means (vector length specifying register).
【0039】こうして、メモリアクセス手段とパケット
生成手段が同時進行でパイプライン動作し、1回のベク
トル遠隔メモリアクセス命令によって次々と遠隔メモリ
アクセスパケットが生成される。メインのプロセッサ
は、遠隔メモリアクセス開始の許可をベクトルプロセッ
サに通知した後は、遠隔メモリアクセスの処理のために
忙殺されることなく別の処理を行うことが可能となる。
また、パケット生成用情報は、メインのプロセッサのキ
ャッシュを通過しないので、メインのプロセッサのキャ
ッシュのヒット率も向上する。In this way, the memory access means and the packet generation means operate in a pipeline simultaneously, and remote memory access packets are generated one after another by one vector remote memory access instruction. After notifying the vector processor of the permission to start the remote memory access, the main processor can perform another processing without being busy for the processing of the remote memory access.
Further, since the packet generation information does not pass through the cache of the main processor, the hit rate of the cache of the main processor is also improved.
【0040】第9の発明に係る遠隔メモリアクセス制御
装置では、書き込みデータをベクトルレジスタ上にお
く。よってベクトル演算器がある場合は、演算器からの
結果がベクトルレジスタに保持され、それをベクトル遠
隔メモリ書き込み命令のソースオペランドとして指定し
た場合はメモリを経由することなくパケット生成手段に
おいて、別のベクトルレジスタにローカルメモリからロ
ードされるパケット生成用情報と組み合わされて遠隔メ
モリ書き込みパケットが次々と生成される。In the remote memory access control device according to the ninth aspect, the write data is stored in the vector register. Therefore, if there is a vector operation unit, the result from the operation unit is held in the vector register, and if the result is specified as the source operand of the vector remote memory write instruction, the packet generation means does not pass through the memory without passing through another vector. Remote memory write packets are generated one after another in combination with the packet generation information loaded into the register from the local memory.
【0041】第10の発明に係る遠隔メモリアクセス制
御装置では、ローカルメモリに格納されるパケット生成
用情報の格納フォーマットを配列とする。このため、ベ
クトルロード命令によって簡単かつ高速にベクトルレジ
スタにパケット生成用情報をロードすることができる。In the remote memory access control device according to the tenth aspect, the storage format of the packet generation information stored in the local memory is an array. Therefore, packet generation information can be easily and quickly loaded into the vector register by the vector load instruction.
【0042】第11の発明に係る遠隔メモリアクセス制
御装置では、パケットが運ぶべきデータ語数(バースト
長)を指定可能なベクトル命令を具備する。バースト長
の指定は、例えば汎用のスカラレジスタであっても良い
し、専用のレジスタを設けても良く、ここに値を設定し
た状態でベクトル遠隔メモリバーストアクセス命令を起
動する。The remote memory access control device according to the eleventh aspect of the present invention includes a vector instruction capable of designating the number of data words (burst length) to be carried by a packet. The burst length can be specified by, for example, a general-purpose scalar register or a dedicated register. The vector remote memory burst access instruction is started with the value set therein.
【0043】すると、パケット生成手段は、上記レジス
タで指定される語数の読み書きを行う遠隔メモリバース
トアクセスパケットを生成する。このようにして、遠隔
メモリアドレスなどからなる1つのパケットヘッダーに
対して、バースト長で指定されるブロック状のデータが
運ばれることになるので、常に1語ずつ遠隔メモリアク
セスを行うより結合網やメモリバンド幅が有効に活用さ
れることになる。Then, the packet generating means generates a remote memory burst access packet for reading and writing the number of words specified by the register. In this manner, block-shaped data specified by the burst length is carried for one packet header including a remote memory address and the like, so that the connection network and the remote memory access are always performed one word at a time. The memory bandwidth will be used effectively.
【0044】第12の発明に係る遠隔メモリアクセス制
御装置では、ローカルメモリに保持され、ベクトルレジ
スタにロードされるパケット生成用情報として、メモリ
アドレスの他にパケットが運ぶべきデータ語数(バース
ト長)を具備する。In the remote memory access control device according to the twelfth aspect of the present invention, the number of data words (burst length) to be carried by the packet other than the memory address is used as packet generation information held in the local memory and loaded into the vector register. Have.
【0045】パケット生成手段は、遠隔メモリアクセス
パケットを生成する際にパケット生成用情報中のバース
ト長を参照しつつ、読みだしならば、バースト長をヘッ
ダーに含む遠隔メモリ読みだし要求パケットを生成し、
書き込みならば、ベクトルレジスタ上のデータをバース
ト長の分だけデータ部に含む遠隔メモリ書き込みパケッ
トを生成する。バースト長は、パケット毎にパケット生
成用情報に含まれるので、アクセス先によって異なるバ
ースト長でアクセスすることが可能となる。When generating a remote memory access packet, the packet generation means refers to the burst length in the packet generation information and, if reading, generates a remote memory read request packet including the burst length in the header. ,
In the case of writing, a remote memory write packet including the data in the vector register by the burst length in the data portion is generated. Since the burst length is included in the packet generation information for each packet, it is possible to access with a different burst length depending on the access destination.
【0046】第13の発明に係る遠隔メモリアクセス制
御装置では、パケット生成手段に非特権モードでのプロ
グラムからは特権モードに移行することなく直接制御す
ることが不可能なプロテクション情報付加機構を具備す
る。In the remote memory access control device according to the thirteenth aspect, the packet generation means has a protection information adding mechanism that cannot directly control the program in the non-privileged mode without shifting to the privileged mode. .
【0047】特権モードからはプロテクション情報を書
き換えることができるので、プロセッサがコンテクスト
スイッチして他のユーザーのプロセスに切り替わる時に
オペレーティングシステムがこれからプロセッサや遠隔
メモリアクセス制御装置などの資源を割り当てるプロセ
スIDなどを設定しておき非特権モードでの遠隔メモリ
アクセス時にはパケット生成手段がこの情報をパケット
のヘッダーに埋め込む。Since the protection information can be rewritten from the privileged mode, when the processor performs a context switch and switches to another user's process, the operating system will assign a process ID or the like to which resources such as the processor and the remote memory access control device will be allocated. At the time of remote memory access in the non-privileged mode, the packet generation means embeds this information in the header of the packet.
【0048】つまり、非特権モードでローカルメモリ上
のパケット生成用情報を書き換えても、他人の遠隔メモ
リに誤って書き込むことは受信側のメモリアクセス保護
機構でパケットヘッダー中のプロテクション情報をチェ
ックすることによって排除される。In other words, even if the information for generating a packet on the local memory is rewritten in the non-privileged mode, if the information is erroneously written to the remote memory of another person, the protection information in the packet header is checked by the memory access protection mechanism on the receiving side. Will be eliminated by
【0049】第14の発明に係る遠隔メモリアクセス装
置では、パケット生成手段に非特権モードでのプログラ
ムからは特権モードに移行することなく直接制御するこ
とが不可能なプロテクション情報付加機構を利用する。In the remote memory access device according to the fourteenth aspect, the packet generating means uses a protection information adding mechanism that cannot be directly controlled from the program in the non-privileged mode without shifting to the privileged mode.
【0050】特権モードからはプロテクション情報を書
き換えることができるので、プロセッサがコンテクスト
スイッチして他のユーザーのプロセスに切り替わる時に
オペレーティングシステムがこれからプロセッサや遠隔
メモリアクセス制御装置などの資源を割り当てるプロセ
スIDなどを設定しておき非特権モードでの遠隔メモリ
アクセス時にはパケット生成手段がこの情報をパケット
のヘッダーに埋め込む。Since the protection information can be rewritten from the privileged mode, when the processor performs a context switch and switches to another user's process, the operating system specifies a process ID to allocate resources such as the processor and the remote memory access controller from now on. At the time of remote memory access in the non-privileged mode, the packet generation means embeds this information in the header of the packet.
【0051】遠隔メモリを指定するアドレスは送信側で
システムコールによって変換をかけた変換後アドレスが
ローカルメモリに準備されるので、非特権モードでロー
カルメモリ上の変換後アドレスを書き換えられる危険性
がある。しかし、他人の遠隔メモリに誤って書き込むこ
とは受信側のメモリアクセス保護機構でパケットヘッダ
ー中のプロテクション情報をチェックすることによって
排除される。As for the address for designating the remote memory, the translated address obtained by performing the translation by the system call on the transmission side is prepared in the local memory, so that the translated address on the local memory may be rewritten in the non-privileged mode. . However, erroneous writing to someone else's remote memory is eliminated by checking the protection information in the packet header with the receiving memory access protection mechanism.
【0052】実際の遠隔メモリアクセス時には上記の変
換後アドレスを再利用することによってアドレス変換を
通信実行時に逐一行わなくても良くなるので、送信側に
TLBやシステムコールの多発をなくすことができる。In the actual remote memory access, by reusing the address after the above-mentioned conversion, the address conversion does not have to be performed every time the communication is executed. Therefore, it is possible to eliminate the occurrence of TLB and system calls on the transmitting side.
【0053】遠隔メモリアクセスの場合、送信先のプロ
セッサ番号は遠隔メモリのアドレスの一部を形成するこ
とになるが、これらは通常別のプロセッサならば異なる
TLBエントリを必要とするために、送信側でTLBに
よるアドレス変換が逐一必要な方式では送信先プロセッ
サが多いとTLBミスヒットが連発することになるが、
本発明の場合は通信が多数回繰り返される場合でも、変
換は事前に1回だけ行うに過ぎないので、このような問
題点がない。In the case of a remote memory access, the destination processor number will form part of the address of the remote memory, but these are usually different processors requiring different TLB entries, so In the method in which the address translation by the TLB is required one by one, if there are many destination processors, TLB mishits will occur repeatedly.
In the case of the present invention, even when communication is repeated many times, the conversion is performed only once in advance, and thus there is no such problem.
【0054】第15の発明に係る遠隔メモリアクセス制
御装置では、受信した遠隔書き込み要求に対する処理の
完了の回数を計数するカウンタを具備する。よって、遠
隔ノードから書き込まれる回数が、書き込まれる側のプ
ログラムでわかっているような処理を行う場合は、遠隔
書き込みに対する応答パケットを返送することなしに、
受信側でカウントされる上記カウンタの値を受信側でチ
ェックし、所定の回数の書き込みパケットの処理が完了
したことを確認してから全体でバリア同期をとることに
よって、遠隔書き込みパケットを送信した側に速やかに
書き込みの完了が伝わるので高速であり、プロセッサ間
結合網に対する負担も軽くなる。The remote memory access control device according to the fifteenth aspect includes a counter for counting the number of times of completion of the processing for the received remote write request. Therefore, when performing a process in which the number of times of writing from the remote node is known by the program to be written, without returning a response packet to the remote writing,
The value of the above counter, which is counted on the receiving side, is checked on the receiving side, and after confirming that the processing of the predetermined number of write packets has been completed, barrier synchronization is performed as a whole, and the side that has transmitted the remote write packet has Since the completion of writing is immediately transmitted to the processor, the speed is high and the load on the inter-processor connection network is reduced.
【0055】[0055]
【実施例】以下、図面を参照しながら本発明の実施例を
説明する。 (実施例1)最初に、本実施例の主な構成と、その作用
効果について述べる。Embodiments of the present invention will be described below with reference to the drawings. (Embodiment 1) First, the main configuration of this embodiment and its operation and effect will be described.
【0056】<実施例1の主な構成>本実施例は、物理
的に分散して実装され論理的に複数のプロセッサ(2)
から共有メモリとしてアクセス可能な分散共有メモリ
(3)を具備する並列計算機において、遠隔メモリをア
クセスするパケットを生成するためのパケット生成用情
報の一部または全部を所望の個数のパケットに対応する
分、所定のフォーマットに基づいて遠隔メモリアクセス
制御装置(1)の外部でかつ手元にあるローカルメモリ
(3)に格納しておき、遠隔メモリアクセス制御装置
(1)内部にパケット生成用情報のアドレスを指定する
パケット生成用情報ポインタ指定レジスタ(104)
と、生成するパケット数を指定するパケット数指定レジ
スタ(105)を具備し、外部プロセッサ(2)からの
1回の指示によって所望の個数の遠隔メモリアクセスパ
ケットを生成する。<Main Structure of First Embodiment> In this embodiment, a plurality of processors (2) are physically distributed and mounted and logically arranged.
In a parallel computer having a distributed shared memory (3) that can be accessed as a shared memory from a remote computer, part or all of the packet generation information for generating a packet for accessing a remote memory is divided into a part corresponding to a desired number of packets. According to a predetermined format, the address of the packet generation information is stored in the local memory (3) outside the remote memory access control device (1) and at hand, and stored in the remote memory access control device (1). Packet generation information pointer specification register (104)
And a packet number designation register (105) for designating the number of packets to be generated, and generates a desired number of remote memory access packets in response to a single instruction from the external processor (2).
【0057】<実施例1の主な作用効果>本実施例の遠
隔メモリアクセス制御装置では、パケット生成用情報の
一部または全部を所望の個数のパケットに対応する分だ
け所定のフォーマットに基づいてローカルメモリ(3)
に格納しておき、そのアドレスをパケット生成用情報ポ
インタ指定レジスタ(104)に設定し、生成するパケ
ット数をパケット数指定レジスタ(105)に設定す
る。その状態まで準備ができたところで外部プロセッサ
(2)から遠隔メモリアクセスパケットの生成を指示す
る。<Main Functions and Effects of First Embodiment> In the remote memory access control device of the present embodiment, a part or all of the packet generation information is based on a predetermined format corresponding to a desired number of packets. Local memory (3)
The address is set in the packet generation information pointer designation register (104), and the number of packets to be generated is set in the packet number designation register (105). When preparation is completed up to that state, the external processor (2) instructs generation of a remote memory access packet.
【0058】指示を受けた遠隔メモリアクセス制御装置
(1)は、パケット生成用情報ポインタ指定レジスタ
(104)に設定されたアドレスからローカルメモリ
(3)上のパケット生成用情報を1パケット分読みだ
し、これを用いて遠隔メモリアクセスパケットを生成
し、パケット生成用情報ポインタ指定レジスタ(10
4)の値を1パケット分のパケット生成用情報のデータ
バイト数だけ進ませ、パケット数指定レジスタ(10
5)の値を1つデクリメントする。Upon receiving the instruction, the remote memory access control device (1) reads one packet of packet generation information on the local memory (3) from the address set in the packet generation information pointer designation register (104). , A remote memory access packet is generated, and a packet generation information pointer designation register (10
The value of 4) is advanced by the number of data bytes of the packet generation information for one packet, and the packet number designation register (10
Decrement the value of 5) by one.
【0059】上記のパケット生成の一連の動作を、パケ
ット数指定レジスタの値が0になるまで繰り返す。この
ようにして、外部プロセッサ(2)からの1回の起動
で、複数の遠隔メモリアクセスパケットが生成されるの
で、外部プロセッサ(2)は遠隔メモリアクセス制御装
置(1)を起動した後は遠隔メモリアクセスの処理のた
めに忙殺されることなく別の処理を行うことが可能とな
る。また、パケット生成用情報は、外部プロセッサ
(2)のキャッシュ(31)を通過しないので、外部プ
ロセッサ(2)のキャッシュ(31)のヒット率も向上
する。The above-described series of operations for packet generation is repeated until the value of the packet number designation register becomes zero. In this way, since a single activation from the external processor (2) generates a plurality of remote memory access packets, the external processor (2) activates the remote memory access controller (1) after activating the remote memory access controller (1). Another process can be performed without being busy for the memory access process. Further, since the packet generation information does not pass through the cache (31) of the external processor (2), the hit rate of the cache (31) of the external processor (2) is also improved.
【0060】以下、さらに具体的に本実施例を説明す
る。 <実施例1の具体的説明>図1および図2は、本実施例
の遠隔メモリアクセス制御装置を具備した並列計算機の
要素プロセッサ(PE)を示す図である。Hereinafter, this embodiment will be described more specifically. <Specific Description of First Embodiment> FIGS. 1 and 2 are diagrams showing an element processor (PE) of a parallel computer provided with a remote memory access control device of the present embodiment.
【0061】並列計算機は、プロセッサ間結合網により
複数の要素プロセッサを相互接続することにより実現さ
れる。本実施例では、要素プロセッサの相互接続方式は
任意とする。The parallel computer is realized by interconnecting a plurality of element processors by an interconnection network between processors. In this embodiment, the interconnection scheme of the element processors is arbitrary.
【0062】図のように、各要素プロセッサでは、遠隔
メモリアクセス制御装置1、マイクロプロセッサ2およ
びローカルメモリ3が、外部バス4により接続されてい
る。プロセッサ間結合網には、遠隔メモリアクセス制御
装置1が直接接続される。本実施例では、各要素プロセ
ッサのローカルメモリ3を分散共有メモリとして使うこ
ととする。As shown in the figure, in each element processor, a remote memory access control device 1, a microprocessor 2, and a local memory 3 are connected by an external bus 4. The remote memory access control device 1 is directly connected to the inter-processor connection network. In this embodiment, the local memory 3 of each element processor is used as a distributed shared memory.
【0063】マイクロプロセッサ2は、CPU33に加
えて、近年の一般的なマイクロプロセッサのように、キ
ャッシュメモリ31およびアドレス変換用のTLB32
を備えるものとする。キャッシュメモリ31は、過去の
メモリアクセスデータを記憶して、それにヒットするメ
モリアクセスはローカルメモリ3や遠隔メモリ(図示せ
ず)にアクセスに行かないことにより性能向上に寄与す
る。TLB32は、ローカルメモリ3上のページテーブ
ルをキャッシングすることにより、TLB32がヒット
している間はオーバーヘッドなしにアドレス変換が行わ
れる。よって、これらはアクセスの局所性のある場合効
果を発揮する。The microprocessor 2 includes, in addition to the CPU 33, a cache memory 31 and a TLB 32 for address conversion as in a general microprocessor in recent years.
Shall be provided. The cache memory 31 stores the past memory access data and contributes to the performance improvement by not accessing the local memory 3 or the remote memory (not shown) for the memory access hitting it. The TLB 32 caches the page table on the local memory 3 so that address conversion is performed without overhead while the TLB 32 is hit. Therefore, they are effective when there is access locality.
【0064】ところで、従来の分散共有メモリ型並列計
算機においては、プロセッサ間通信をメモリアクセスの
形で実現しており、アクセスの局所性のある場合に効果
を発揮する仕組みを使って、アクセスの局所性の薄い処
理であるプロセッサ間通信を実現しているために、遠隔
メモリアクセスのために用いられるアドレス情報のキャ
ッシュの通過によるキャッシュのミスヒットの増加や、
遠隔メモリアクセスのために用いられる遠隔プロセッサ
毎に異なるエントリを用いることに起因するアクセス先
のプロセッサ数が多い場合のTLBミスヒットの増加と
いった弊害を生じていた。Incidentally, in the conventional distributed shared memory type parallel computer, communication between processors is realized in the form of memory access, and a mechanism that exerts an effect when there is access locality is used. Since inter-processor communication, which is a process that is inexpensive, is realized, an increase in cache misses due to the passage of address information used for remote memory access through the cache,
The use of a different entry for each remote processor used for remote memory access causes a problem such as an increase in TLB misses when the number of access destination processors is large.
【0065】本実施例ではそのような弊害を解消するた
めに、遠隔メモリアクセス制御装置1を、マイクロプロ
セッサ2からのメモリアクセスを監視する形でアクセス
ごとに起動されるようにするとともに、マイクロプロセ
ッサ2とは起動時以外は独立した形態で動作するように
して、プロセッサ間通信すなわち遠隔メモリアクセスを
実現している。In the present embodiment, in order to solve such a problem, the remote memory access control device 1 is activated for each access by monitoring the memory access from the microprocessor 2, 2 operates in an independent manner except at the time of startup, thereby realizing inter-processor communication, that is, remote memory access.
【0066】図1および図2のように、遠隔メモリアク
セス制御装置1は、パケット生成部100、バスインタ
フェース部101、メモリアドレス生成部102、制御
装置内TLB103、パケット生成用情報ポインタ指定
レジスタ104、パケット数指定レジスタ105、パケ
ットデータ部ポインタ指定レジスタ106、バースト長
指定レジスタ107、プロセスID指定レジスタ10
8、パケット生成用情報バッファ109、送信パケット
データ部バッファ110、送信パケットバッファ11
1、受信パケットバッファ112、パケット受信部11
3、応答待ち読み出し要求数カウンタ114、応答待ち
書き込み要求数カウンタ115、受信書き込み処理完了
回数カウンタ116、プロセッサ間結合網インタフェー
ス部117、返信パケットバッファ121、ステータス
レジスタ122を具備する。As shown in FIGS. 1 and 2, the remote memory access control device 1 includes a packet generation unit 100, a bus interface unit 101, a memory address generation unit 102, a control unit TLB 103, a packet generation information pointer designation register 104, Packet number designation register 105, packet data part pointer designation register 106, burst length designation register 107, process ID designation register 10
8. Packet generation information buffer 109, transmission packet data buffer 110, transmission packet buffer 11
1. Received packet buffer 112, packet receiving unit 11
3, a response waiting read request number counter 114, a response waiting write request number counter 115, a reception / writing process completion number counter 116, an inter-processor network interface 117, a reply packet buffer 121, and a status register 122.
【0067】この遠隔メモリアクセス制御装置1は、バ
スインタフェース部101により外部バス4に接続され
ており、これらを介して、遠隔メモリアクセス制御装置
1の内部構成要素とマイクロプロセッサ2やローカルメ
モリ3の間で情報の転送が行なわれる。The remote memory access control device 1 is connected to an external bus 4 by a bus interface unit 101, and through these components, the internal components of the remote memory access control device 1 and the microprocessor 2 and the local memory 3 are connected. The information is transferred between them.
【0068】制御装置内TLB103、パケット生成用
情報ポインタ指定レジスタ104、パケット数指定レジ
スタ105、パケットデータ部ポインタ指定レジスタ1
06、バースト長指定レジスタ107、プロセスID指
定レジスタ108は、マイクロプロセッサ2のメモリ空
間上にマップされるなどしてアクセスされる。Control device TLB 103, packet generation information pointer designation register 104, packet number designation register 105, packet data part pointer designation register 1
06, the burst length designation register 107, and the process ID designation register 108 are accessed by being mapped in the memory space of the microprocessor 2.
【0069】ここで、好ましくは、パケット生成部(1
00)に非特権モードでのプログラムからは特権モード
に移行することなく直接制御することが不可能なプロテ
クション情報付加機構を設け、遠隔メモリアクセスパケ
ットを受信する側にパケット中のプロテクション情報に
基づいてメモリアクセスの許可不許可を制御するメモリ
アクセス保護機構を設けても良い。特権モードからはプ
ロテクション情報を書き換えることができるので、プロ
セッサ(2)がコンテクストスイッチして他のユーザー
のプロセスに切り替わる時にオペレーティングシステム
がこれから外部プロセッサや遠隔メモリアクセス制御装
置などの資源を割り当てるプロセスIDなどを設定して
おき、非特権モードでの遠隔メモリアクセス時にはパケ
ット生成部(100)がこの情報をパケットのヘッダー
に埋め込む。つまり、非特権モードでローカルメモリ
(3)上のパケット生成用情報を書き換えても、他人の
遠隔メモリに誤って書き込むことは、受信側のメモリア
クセス保護機構でパケットヘッダー中のプロテクション
情報をチェックすることによって排除されるという利点
がある。Here, preferably, the packet generation unit (1)
00), a protection information adding mechanism that cannot be directly controlled from the program in the non-privileged mode without shifting to the privileged mode is provided, and the remote memory access packet receiving side is provided with a protection information adding mechanism based on the protection information in the packet. A memory access protection mechanism for controlling permission / denial of memory access may be provided. Since the protection information can be rewritten from the privileged mode, when the processor (2) is context-switched and switches to another user's process, the operating system allocates resources such as an external processor and a remote memory access controller from the process ID. Is set, and at the time of remote memory access in the non-privileged mode, the packet generator (100) embeds this information in the header of the packet. That is, even if the information for packet generation on the local memory (3) is rewritten in the non-privileged mode, if the information is erroneously written to the remote memory of another person, the protection information in the packet header is checked by the memory access protection mechanism on the receiving side. This has the advantage of being eliminated.
【0070】本実施例では、上記のような機構を採用す
ることとし、制御装置内TLB103とプロセスID指
定レジスタ108は、マイクロプロセッサ2の特権モー
ドでしかアクセスできない領域にマップされるようにす
る。In this embodiment, the above mechanism is adopted, and the TLB 103 in the control device and the process ID designation register 108 are mapped to an area which can be accessed only in the privilege mode of the microprocessor 2.
【0071】制御装置内TLB103には、メモリアド
レス生成部102が発生するメモリアクセス時のアドレ
ス変換に用いられる物理アドレスと論理アドレスの組の
他に、TLB32のエントリ毎に付けられたプロセスI
Dを保持する。その実体はローカルメモリ3の特権モー
ドでしかアクセスできない領域に上にあり、TLB32
にはその情報がキャッシングされる。なお、ここでいう
プロセスとは仮想アドレス空間を割り当てる単位であ
り、複数のプロセッサにまたがって同一のプロセスID
を使用する複数のスレッドが存在する。In the TLB 103 in the control device, in addition to a set of a physical address and a logical address used for address conversion at the time of memory access generated by the memory address generation unit 102, a process I assigned to each entry of the TLB 32
Hold D. The entity is located in an area of the local memory 3 which can be accessed only in the privilege mode, and the TLB 32
The information is cached. Here, a process is a unit for allocating a virtual address space, and has the same process ID across a plurality of processors.
There are multiple threads that use.
【0072】プロセスID指定レジスタ108には、遠
隔メモリアクセス制御装置1を割り当てられているプロ
セスIDが保持され、パケット生成部100で生成され
るパケットのヘッダーには、プロセスID指定レジスタ
108上のプロセスIDが埋め込まれる。このように、
制御装置内TLB103とプロセスID指定レジスタ1
08は、プロテクション情報を保持し、不正なメモリア
クセスを防止するための機構であるために、ユーザーモ
ードからは直接アクセスはさせないようにする。The process ID designation register 108 holds the process ID assigned to the remote memory access control device 1, and the header of the packet generated by the packet generator 100 includes the process ID in the process ID designation register 108. The ID is embedded. in this way,
TLB103 in control device and process ID designation register 1
08 is a mechanism for holding protection information and preventing unauthorized memory access, so that direct access is not made from the user mode.
【0073】一方、通信の際にOSを介さずユーザーモ
ードで処理することができれば、トラップによるコンテ
クストスイッチに伴う大きなオーバーヘッドを回避する
ことができるので、パケット生成用情報ポインタ指定レ
ジスタ104、パケット数指定レジスタ105、パケッ
トデータ部ポインタ指定レジスタ106、バースト長指
定レジスタ107は、ユーザーモードから直接アクセス
できるメモリ空間にマップすることが望ましい。On the other hand, if processing can be performed in user mode without using the OS during communication, a large overhead associated with a context switch due to traps can be avoided. It is desirable that the register 105, the packet data pointer designation register 106, and the burst length designation register 107 be mapped to a memory space directly accessible from the user mode.
【0074】ここで、好ましくは、ローカルメモリ
(3)に格納されるパケット生成用情報の格納フォーマ
ットを配列とすると良い。そのようにした場合、パケッ
ト生成用情報を次々とローカルメモリ3から遠隔メモリ
アクセス制御装置1に取り込んでくる際に、アドレスの
生成が簡単であり、例えばリンクドリストを用いてアク
セスするような場合と比べてアドレス入手のためのメモ
リアクセスが無くなり、パケット生成用情報や遠隔書き
込みデータの読みだしや、外部プロセッサのメモリアク
セスなどのためにローカルメモリのバンド幅を有効に活
用できる。Here, it is preferable that the storage format of the packet generation information stored in the local memory (3) be an array. In such a case, when the packet generation information is successively fetched from the local memory 3 to the remote memory access control device 1, it is easy to generate an address, for example, when accessing using a linked list. This eliminates the need for memory access to obtain an address, and makes it possible to effectively utilize the bandwidth of the local memory for reading packet generation information and remote write data, and for accessing memory of an external processor.
【0075】本実施例では、ローカルメモリ3に格納さ
れるパケット生成用情報の格納フォーマットを配列とす
る。本実施例の遠隔メモリアクセス制御装置によるプロ
セッサ間通信を行う場合には、パケット数nはパケット
数指定レジスタ105に設定され、n個のパケットのヘ
ッダー情報を生成するために必要なパケット生成用情報
がパケット生成用情報ポインタ指定レジスタ104に設
定されたローカルメモリ3上に準備される。本実施例で
は、パケット生成用情報の格納フォーマットを配列とし
たので、パケット生成用情報は、ローカルメモリ3上の
論理的に連続した領域上に準備される。In the present embodiment, the storage format of the packet generation information stored in the local memory 3 is an array. When the inter-processor communication is performed by the remote memory access control device of the present embodiment, the packet number n is set in the packet number designation register 105, and the packet generation information necessary to generate the header information of n packets. Is prepared in the local memory 3 set in the packet generation information pointer designation register 104. In this embodiment, since the storage format of the packet generation information is arranged, the packet generation information is prepared in a logically continuous area on the local memory 3.
【0076】ヘッダー情報には、プロセッサ間結合網に
おけるルーティング情報となる遠隔ノードを識別する実
アドレスや、遠隔ノード内のローカルメモリにおけるア
ドレスが必要となり、遠隔読み出しやアクノリッジ付き
の遠隔書き込みの場合はさらに読み出したデータやアク
ノリッジを返送すべきノードの実アドレスやノード内ア
ドレスが必要となる。The header information requires a real address for identifying a remote node serving as routing information in an inter-processor interconnection network and an address in a local memory in the remote node. In the case of remote reading or remote writing with an acknowledgment, furthermore, The real address of the node to which the read data or acknowledge is to be returned and the address in the node are required.
【0077】遠隔書き込みを行う場合は、ローカルメモ
リ3上に書き込むべきデータを準備する。ここでは、送
信パケット毎にバースト長L語のデータを持つものと
し、1回の起動によりn個の送信パケットが生成される
ものとする。When performing remote writing, data to be written on the local memory 3 is prepared. Here, it is assumed that each transmission packet has data of burst length L words, and that n transmission packets are generated by one activation.
【0078】ここで、好ましくは、パケットが運ぶべき
データ語数を指定するバースト長指定レジスタ(10
7)を設け、遠隔メモリアクセスを外部プロセッサ
(2)から起動する前にバースト長指定レジスタ(10
7)にパケットが運ぶべきデータ語数を設定しておき、
パケット生成部(100)は、バースト長指定レジスタ
(107)で指定される語数の読み書きを行う遠隔メモ
リバーストアクセスパケットを生成するようにしても良
い。バースト長指定レジスタ107を具備せず、Lを設
定できない構成の場合は、1語しかデータ部を持つこと
ができなくなるのでパケットのプロセッサ間結合網上で
の伝送効率が低下するが、上記のようにすれば、遠隔メ
モリアドレスなどからなる1つのパケットヘッダーに対
して、バースト長で指定されるブロック状のデータが運
ばれることになるので、常に1語ずつ遠隔メモリアクセ
スを行うより、結合網やメモリバンド幅が有効に活用さ
れることになる。Here, preferably, a burst length designation register (10) for designating the number of data words to be carried by the packet.
7) and a burst length designation register (10) before remote memory access is started from the external processor (2).
In 7), set the number of data words that the packet should carry,
The packet generation unit (100) may generate a remote memory burst access packet for reading and writing the number of words specified by the burst length specification register (107). In a configuration in which the burst length designation register 107 is not provided and L cannot be set, only one word can have a data portion, so that the transmission efficiency of the packet on the interconnection network between processors is reduced. In this case, block data specified by the burst length is carried for one packet header including a remote memory address, etc., so that remote memory access is always performed one word at a time. The memory bandwidth will be used effectively.
【0079】本実施例では、バースト長指定レジスタ1
07を具備することとし、バースト長指定レジスタ10
7にLが設定される。書き込むべきデータは、L×nの
二次元配列として論理的に連続した領域に格納される。
この二次元配列の先頭アドレスを、パケットデータ部ポ
インタ指定レジスタ106に設定する。In this embodiment, the burst length designation register 1
07, the burst length designation register 10
L is set to 7. Data to be written is stored in a logically continuous area as an L × n two-dimensional array.
The head address of this two-dimensional array is set in the packet data part pointer designation register 106.
【0080】さて、遠隔メモリアクセスの起動は、本実
施例では、マイクロプロセッサ2からユーザーモードの
まま起動用のアドレスをアクセスすることにより行う。
通信実行時のユーザーモードからの遠隔メモリアクセス
の起動は、ユーザー空間上の起動用アドレスを実際の物
理起動アドレスにマップしてもらうように事前にOSに
1回だけ依頼することによって実現される。In this embodiment, the remote memory access is started by accessing the start address from the microprocessor 2 in the user mode.
Activation of the remote memory access from the user mode at the time of communication execution is realized by requesting the OS only once in advance so that the activation address in the user space is mapped to the actual physical activation address.
【0081】本実施例では、遠隔メモリアクセスの起動
用アドレスは、遠隔読み出し起動用とアクノリッジなし
遠隔書き込み起動用とアクノリッジ付きの遠隔書き込み
起動用の3種類があるものとする。In the present embodiment, it is assumed that there are three types of starting addresses for remote memory access: starting for remote reading, starting for remote writing without acknowledgment, and starting for remote writing with acknowledgment.
【0082】バスインタフェース部101が起動用のア
ドレスへのアクセスを検知すると、メモリアドレス生成
部102内の残りパケット数カウンタにパケット数指定
レジスタ105の値がコピーされ、メモリアドレス生成
部102は、パケット生成用情報ポインタ指定レジスタ
104、書き込みの場合のパケットデータ部ポインタ指
定レジスタ106およびバースト長指定レジスタ107
上の情報を基に、ローカルメモリ3のアクセス要求の生
成を開始する。When the bus interface unit 101 detects an access to the start address, the value of the packet number designation register 105 is copied to the remaining packet number counter in the memory address generation unit 102, and the memory address generation unit 102 Generation information pointer designation register 104, packet data portion pointer designation register 106 for writing, and burst length designation register 107
Based on the above information, generation of an access request for the local memory 3 is started.
【0083】パケット生成用情報ポインタは、論理アド
レスで指定されており、その論理アドレスを制御装置内
TLB103により変換した物理メモリアドレスで指定
されるローカルメモリ3をアクセスして、パケット生成
用情報バッファ109にパケット生成用情報をロードす
る。このとき、本実施例では、ローカルメモリ3に格納
されるパケット生成用情報の格納フォーマットを配列と
しているので、パケット生成用情報は論理的に連続した
領域に格納されるため、リンクドリストをたどる場合の
ようにアドレスの生成のために再びメモリアクセスをし
なくても、簡単なカウンターによって容易にかつ高速に
アドレスを生成することが可能である。The packet generation information pointer is specified by a logical address, and accesses the local memory 3 specified by the physical memory address obtained by converting the logical address by the TLB 103 in the control device. Is loaded with packet generation information. At this time, in the present embodiment, since the storage format of the packet generation information stored in the local memory 3 is arrayed, the packet generation information is stored in a logically continuous area, so that the linked list is traced. Even if the memory is not accessed again for generating the address as in the case, the address can be easily and quickly generated by the simple counter.
【0084】同様に、パケットデータ部ポインタは、論
理アドレスで指定されており、遠隔メモリ書き込みが起
動された場合は、その論理アドレスを制御装置内TLB
103により変換した物理メモリアドレスで指定される
ローカルメモリ3をアクセスして、送信パケットデータ
部バッファ110に送信パケットデータ部をロードす
る。Similarly, the packet data section pointer is designated by a logical address, and when remote memory writing is started, the logical address is stored in the TLB in the control device.
The local memory 3 specified by the physical memory address converted by 103 is accessed, and the transmission packet data section is loaded into the transmission packet data section buffer 110.
【0085】このとき、書き込むべきデータは、L×n
の二次元配列として論理的に連続した領域に格納される
ため、リンクドリストをたどる場合のようにアドレスの
生成のために再びメモリアクセスをしなくても、簡単な
カウンターによって容易にかつ高速にアドレスを生成す
ることが可能である。At this time, the data to be written is L × n
Is stored in a logically continuous area as a two-dimensional array of addresses, so a simple counter makes it easy and fast, without having to access the memory again to generate addresses as in the case of following a linked list. It is possible to generate an address.
【0086】ここで、好ましくは、送信側においてパケ
ット生成用情報を一時的に格納しておくバッファ(10
9)と、書き込みデータを一時的に格納しておくバッフ
ァ(110)を設け、ローカルメモリ(3)から上記バ
ッファに取り込むローカルメモリアクセス部と、対応す
るパケット生成用情報と書き込みデータの組がそろった
ものから遠隔メモリ書き込みパケットを生成するパケッ
ト生成部(100)が、パイプライン的に同時動作をす
るようにしても良い。このようにすると、複数パケット
分のパケット生成用情報や書き込みデータが同時に遠隔
メモリアクセス制御装置(1)内に存在することがで
き、複数パケット分のパケット生成用情報を読みだした
後に複数パケット分の書き込みデータを読みだしたり、
例えばパケット生成部(100)が1番目のパケットの
生成を行いつつ、メモリアクセス部が4番目のパケット
のためのパケット生成用情報を読みだすというように、
パイプライン動作をさせることによりパケット生成部
(100)がメモリアクセス部と同時に動作できる。よ
って、短い間隔で遠隔メモリ書き込みパケットを生成す
ることができる。遠隔メモリ書き込みパケットは、パケ
ット生成用情報を一時的に格納しておくバッファと、書
き込みデータを一時的に格納しておくバッファのどちら
かが空にならない限り、これらを組み合わせて休むこと
無く遠隔メモリ書き込みパケットを生成することができ
る。Here, preferably, a buffer (10) for temporarily storing packet generation information on the transmitting side.
9), a buffer (110) for temporarily storing write data is provided, and a local memory access unit for taking in the buffer from the local memory (3) and a set of corresponding packet generation information and write data are provided. The packet generation unit (100) that generates a remote memory write packet from the packet may operate in a pipelined manner. With this configuration, the packet generation information and the write data for a plurality of packets can exist in the remote memory access control device (1) at the same time. Read the write data of
For example, while the packet generation unit (100) generates the first packet, the memory access unit reads out the packet generation information for the fourth packet.
By performing the pipeline operation, the packet generation unit (100) can operate simultaneously with the memory access unit. Therefore, a remote memory write packet can be generated at short intervals. The remote memory write packet is a combination of a buffer for temporarily storing packet generation information and a buffer for temporarily storing write data unless the buffer becomes empty. A write packet can be generated.
【0087】また、好ましくは、上記のようなパイプラ
イン動作を可能とする仕組みにおいて、前記ローカルメ
モリアクセス部は、ローカルメモリを高速に連続アクセ
スするようにし、パケット生成用情報や書き込みデータ
を上記ローカルメモリから連続アクセスによって各々複
数パケット分バッファに取り込むようにしても良い。こ
の場合、パケット生成用情報を一時的に格納しておくバ
ッファ(109)と、書き込みデータを一時的に格納し
ておくバッファ(110)が、複数パケット分のパケッ
ト生成用情報や書き込みデータをそれぞれまとめてロー
カルメモリ(3)からロードすることを許容するので、
連続アクセスによる高い実効メモリバンド幅を使いなが
ら各々複数パケット分バッファに高速に取り込むことが
できる。Preferably, in the mechanism enabling the pipeline operation as described above, the local memory access unit makes continuous access to the local memory at high speed, and stores packet generation information and write data in the local memory. A plurality of packets may be fetched into the buffer by continuous access from the memory. In this case, the buffer (109) for temporarily storing the packet generation information and the buffer (110) for temporarily storing the write data respectively store the packet generation information and the write data for a plurality of packets. Since it allows loading from local memory (3) at once,
It is possible to capture a plurality of packets into the buffer at high speed while using a high effective memory bandwidth by continuous access.
【0088】図3は、ローカルメモリ3に格納されるパ
ケット生成用情報の格納フォーマットを配列とし、か
つ、ローカルメモリ3に対するアクセスとパケット生成
をパイプライン動作できるようにした場合の、パケット
送信時のパイプライン動作を示す図である。配列のアド
レス発生に1クロック、1ワードのメモリアクセスに3
クロック、ヘッダー部1ワードでデータ部1ワードのパ
ケット生成に2クロックかかるものとして図示してい
る。FIG. 3 shows an arrangement of the storage format of the packet generation information stored in the local memory 3 in which the access to the local memory 3 and the generation of the packet can be performed in a pipeline manner. It is a figure showing a pipeline operation. One clock for address generation of array, three for memory access of one word
It is shown that it takes two clocks to generate a packet of one word of the data part with one word of the clock and the header part.
【0089】本実施例では、パケット生成部100は、
上記のアドレス発生動作やメモリアクセス動作に並行し
て動作する。この例では、パイプラインのボトルネック
となっているステージは、メモリアクセスのステージで
あり、1パケットを作るために2回のメモリアクセスが
必要なことから6クロックに1パケットの割合でパケッ
トを生成している。In this embodiment, the packet generator 100
It operates in parallel with the above address generation operation and memory access operation. In this example, the stage that is the bottleneck in the pipeline is the stage of memory access, and since two memory accesses are required to create one packet, packets are generated at a rate of one packet every six clocks. doing.
【0090】図4は、ローカルメモリ3に格納されるパ
ケット生成用情報の格納フォーマットを配列とし、ロー
カルメモリ3に対するアクセスとパケット生成をパイプ
ライン動作できるようにし、さらに、ローカルメモリ3
に連続アクセスする場合の、パケット送信時のパイプラ
イン動作を示す図である。配列のアドレス発生に1クロ
ック、ランダムメモリアクセスの遅延が2クロック、以
降連続アクセス時のメモリ読み出し転送レートが1ワー
ドあたり1クロック、ヘッダー部1ワードでデータ部1
ワードのパケット生成に2クロックかかるものとして図
示している。FIG. 4 shows an arrangement of the storage format of the packet generation information stored in the local memory 3 so that access to the local memory 3 and packet generation can be performed in a pipelined manner.
FIG. 7 is a diagram showing a pipeline operation at the time of packet transmission when accessing the. One clock for generating the address of the array, two clocks for the delay of random memory access, and thereafter, the memory read transfer rate for continuous access is one clock per word, and one word for the header part and one data part for the header part
It is shown that it takes two clocks to generate a word packet.
【0091】メモリとしてニブルモードやページモード
を持ったDRAMや同期DRAMを使用した場合は、連
続アクセスを行うとメモリバンド幅が向上する。複数パ
ケット分のヘッダー(パケット生成情報)や複数パケッ
ト分のデータ部をブロック状にアクセスすることによっ
てメモリバンド幅が向上し、例えば4パケット分を一塊
として動作させると12クロックに4パケット生成でき
るので、図3の場合の2倍のレートでパケットを生成す
ることが可能となっている。When a DRAM having a nibble mode or a page mode or a synchronous DRAM is used as a memory, the memory bandwidth is improved by performing continuous access. By accessing the header (packet generation information) for a plurality of packets and the data portion for a plurality of packets in a block shape, the memory bandwidth is improved. For example, if four packets are operated as one block, four packets can be generated in 12 clocks. , It is possible to generate packets at twice the rate as in the case of FIG.
【0092】ここで、メモリアドレス生成部102は、
バッファ109,110に受けきれないほどロード要求
を出しすぎると、データを受けられる状態になるまでロ
ーカルメモリ3をアクセスする外部バス4を長期間待た
したまま占有し、パケットの受信やマイクロプロセッサ
2によるメモリアクセスを遅延させてしまうので、パケ
ット生成用情報バッファ109や送信パケットデータ部
バッファ110の残り容量を考慮しながらローカルメモ
リ3への読み出し要求を発生することが望ましい。Here, the memory address generation unit 102
If the load request is issued too much to be received by the buffers 109 and 110, the external bus 4 accessing the local memory 3 is occupied while waiting for a long time until data can be received. Since the memory access is delayed, it is desirable to generate a read request to the local memory 3 in consideration of the remaining capacity of the packet generation information buffer 109 and the transmission packet data buffer 110.
【0093】本実施例において、遠隔読み出しが起動さ
れた場合は、パケット生成部100内の残りパケット数
カウンタにパケット数指定レジスタ105の値がコピー
され、パケット生成部100は、パケット生成用情報バ
ッファ109にデータが存在し、生成したパケット数が
パケット数指定レジスタ105の遠隔読み出しが起動さ
れた時点での値に達する(残りパケット数カウンタが0
になる)まで、プロセスID指定レジスタ108上の値
とバースト長指定レジスタ107上の値をパケットヘッ
ダーに組み込みながらパケットを生成する。In this embodiment, when remote reading is started, the value of the packet number designation register 105 is copied to the remaining packet number counter in the packet generation unit 100, and the packet generation unit 100 109, the number of generated packets reaches the value at the time when remote reading of the packet number designation register 105 is started (the remaining packet number counter is 0).
), A packet is generated while incorporating the value on the process ID designation register 108 and the value on the burst length designation register 107 into the packet header.
【0094】図5は、遠隔読み出し要求パケットの例を
示した図である。(a)に示すように、ヘッダーの第一
ワードのパケットタイプフィールドには、遠隔読み出し
要求を示すコードが記入され、プロセスID、バースト
長、パケット生成用情報から得られるデスティネーショ
ン物理PE番号、デスティネーションPE内論理メモリ
アドレスにより残りのフィールドは構成される。(b)
に示すように、第二ワードには、レスポンスパケット生
成用に自分の物理PE番号と、パケット生成用情報から
得られるレスポンスデータ書き込み先PE内論理メモリ
アドレスが記入される。FIG. 5 is a diagram showing an example of a remote read request packet. As shown in (a), a code indicating a remote read request is written in the packet type field of the first word of the header, and a process ID, a burst length, a destination physical PE number obtained from packet generation information, and a destination The remaining fields are configured by the logical memory addresses in the nation PE. (B)
In the second word, the own PE number for response packet generation and the logical memory address in the response data write destination PE obtained from the packet generation information are written in the second word.
【0095】パケット生成部100は、上記のようなパ
ケットを、(必要に応じて送信パケットバッファ111
を介して、)プロセッサ間結合網インタフェース117
に渡し、パケット生成部100内の残り生成パケット数
カウンタをデクリメントし、応答待ち読み出し要求数カ
ウンタ114をインクリメントする。残り生成パケット
数カウンタが0になると、パケット生成部100はステ
ータスレジスタ122のパケット生成完了を通知するビ
ットを立てる。The packet generator 100 converts the above-mentioned packet into the transmission packet buffer 111 (if necessary).
Via the network interface 117 between processors
, Decrements the remaining generated packet number counter in the packet generating unit 100, and increments the response waiting read request number counter 114. When the remaining generated packet number counter becomes 0, the packet generator 100 sets a bit in the status register 122 to notify the completion of packet generation.
【0096】一方、遠隔書き込みが起動された場合は、
パケット生成部100内の残り生成パケット数カウンタ
にパケット数指定レジスタ105の値がコピーされ、パ
ケット生成部100はパケット生成用情報バッファ10
9と送信パケットデータ部バッファ110の双方にデー
タが存在し、生成したパケット数がパケット数指定レジ
スタ105の遠隔読み出しが起動された時点での値に達
する(残り生成パケット数カウンタが0になる)まで、
プロセスID指定レジスタ108上の値とバースト長指
定レジスタ107上の値ををパケットヘッダーに組み込
みながら送信パケットデータ部を付加してパケットを生
成する。On the other hand, when remote writing is started,
The value of the packet number designation register 105 is copied to the remaining generated packet number counter in the packet generation unit 100, and the packet generation unit 100
9 and the transmission packet data buffer 110 both have data, and the number of generated packets reaches the value at the time when remote reading of the packet number designation register 105 is started (the remaining generated packet number counter becomes 0). Until,
A packet is generated by adding the transmission packet data portion while incorporating the value on the process ID designation register 108 and the value on the burst length designation register 107 into the packet header.
【0097】図6は、アクノリッジ付きの遠隔書き込み
要求パケットヘッダーの例を示した図である。(a)に
示すように、ヘッダーの第一ワードのパケットタイプフ
ィールドには、アクノリッジ付きの遠隔書き込み要求を
示すコードが記入され、プロセスID、バースト長、パ
ケット生成用情報から得られるデスティネーション物理
PE番号、デスティネーションPE内論理メモリアドレ
スにより残りのフィールドは構成される。(b)に示す
ように、第二ワードには、レスポンスパケット生成用に
自分の物理PE番号が記入される。FIG. 6 is a diagram showing an example of a remote write request packet header with an acknowledgment. As shown in (a), a code indicating a remote write request with an acknowledgment is written in the packet type field of the first word of the header, and the destination physical PE obtained from the process ID, burst length, and packet generation information. The remaining fields are constituted by the numbers and the logical memory addresses in the destination PE. As shown in (b), the own PE number is written in the second word for generating the response packet.
【0098】図7は、アクノリッジなしの遠隔書き込み
要求パケットヘッダーの例を示した図である。パケット
タイプフィールドには、アクノリッジなしの遠隔書き込
み要求を示すコードが記入され、プロセスID、バース
ト長、パケット生成用情報から得られるデスティネーシ
ョン物理PE番号、デスティネーションPE内論理メモ
リアドレスにより残りのフィールドは構成される。FIG. 7 is a diagram showing an example of a remote write request packet header without acknowledgment. A code indicating a remote write request without acknowledgment is written in the packet type field, and the remaining fields are represented by a process ID, a burst length, a destination physical PE number obtained from packet generation information, and a logical memory address in the destination PE. Be composed.
【0099】パケット生成部100は、上記のようなパ
ケットヘッダーを付加したパケットをプロセッサ間結合
網インタフェース117に渡し、パケット生成部100
内の残り生成パケット数カウンタをデクリメントする。
ここで、アクノリッジ付きの遠隔書き込みであった場合
は、さらに応答待ち書き込み要求数カウンタ115をイ
ンクリメントする。残り生成パケット数カウンタが0に
なると、パケット生成部100はステータスレジスタ1
22のパケット生成完了を通知するビットを立てる。The packet generation unit 100 passes the packet to which the packet header as described above is added to the inter-processor connection network interface 117, and the packet generation unit 100
Is decremented.
Here, in the case of remote writing with an acknowledgment, the response waiting write request number counter 115 is further incremented. When the remaining generated packet number counter becomes 0, the packet generator 100
A bit for notifying the completion of packet generation is set.
【0100】以上のように本実施例では、バッファへの
ローカルメモリ3上のデータのロードをするステージ
と、パケットを生成するステージがパイプライン的に同
時動作する。よって、ローカルメモリアクセスとパケッ
ト生成が逐時に行われる方式に比べて高いレートでパケ
ットを生成することが可能となる。As described above, in the present embodiment, the stage for loading data into the buffer on the local memory 3 and the stage for generating packets operate simultaneously in a pipeline manner. Therefore, it is possible to generate packets at a higher rate than in a method in which local memory access and packet generation are performed sequentially.
【0101】次に、受信について説明する。パケット受
信部113は、受信パケットバッファ112を介してプ
ロセッサ間結合網から種々のパケットを受信し、それぞ
れに応じた動作を行う。例えば、受信するパケットのう
ち3種は既に述べた遠隔読み出し要求パケット、アクノ
リッジ付き遠隔書き込み要求パケット、アクノリッジな
し遠隔書き込み要求パケットである。その他に、遠隔読
み出し応答パケット、遠隔書き込み応答パケットの2種
類がある。Next, reception will be described. The packet receiving unit 113 receives various packets from the inter-processor connection network via the reception packet buffer 112, and performs an operation corresponding to each packet. For example, three of the received packets are the remote read request packet, the remote write request packet with acknowledgment, and the remote write request packet without acknowledgment. In addition, there are two types of remote read response packets and remote write response packets.
【0102】以下、この5種類それぞれについて説明す
る。パケット受信部113が遠隔読み出し要求パケット
を受信した場合は、メモリアドレス生成部102に、パ
ケットヘッダー内に存在するプロセスID、バースト長
および読み出し先頭アドレス(仮想アドレス)を渡し、
パケット生成部100に、プロセスID、応答を返送す
べきノードのアドレス(ソース物理PE番号)および応
答データ書き込み先PE内論理メモリアドレスを渡す。Hereinafter, each of these five types will be described. When the packet receiving unit 113 receives the remote read request packet, the process ID, the burst length, and the read start address (virtual address) present in the packet header are passed to the memory address generating unit 102.
The process ID, the address of the node to which the response should be returned (source physical PE number), and the logical memory address in the response data write destination PE are passed to the packet generation unit 100.
【0103】メモリアドレス生成部102は、制御装置
内TLB103を用いてプロセスIDによるアクセス権
限チェックを行った後、読み出し先頭アドレスの物理ア
ドレスを生成し、バスインタフェース部101を介して
ローカルメモリ3からデータを読み出し、返信パケット
データ部バッファ121に格納する。The memory address generation unit 102 checks the access right based on the process ID using the TLB 103 in the control device, and then generates the physical address of the read start address, and transmits the data from the local memory 3 through the bus interface unit 101. Is read out and stored in the reply packet data part buffer 121.
【0104】パケット生成部100は、パケット受信部
113から受け取ったプロセスID、ソース物理PE番
号および応答データ書き込み先PE内論理メモリアドレ
スからヘッダーを生成しつつ、返信パケットデータ部バ
ッファ121にデータが入ったらヘッダーとあわせてパ
ケットとし、プロセッサ間結合網インタフェース部11
7に渡す。The packet generator 100 generates a header from the process ID received from the packet receiver 113, the source physical PE number, and the logical memory address in the response data write destination PE, while the data is input to the reply packet data buffer 121. Then, a packet is added together with the header, and the processor
Pass to 7.
【0105】パケット受信部113がアクノリッジなし
遠隔書き込み要求パケットを受信した場合は、メモリア
ドレス生成部102に、パケットヘッダー内に存在する
プロセスID、バースト長と書き込み先頭アドレス(仮
想アドレス)および書き込みデータを渡す。When the packet receiving section 113 receives the remote write request packet without acknowledgment, the memory address generating section 102 stores the process ID, burst length, write start address (virtual address) and write data existing in the packet header. hand over.
【0106】メモリアドレス生成部102は、制御装置
内TLB103を用いてプロセスIDによるアクセス権
限チェックと書き込み先頭アドレスの物理アドレスを生
成し、バスインタフェース部101を介してローカルメ
モリ3に、書き込みデータを書き込む。The memory address generation unit 102 uses the TLB 103 in the control device to check the access right based on the process ID and generates the physical address of the write start address, and writes the write data to the local memory 3 via the bus interface unit 101. .
【0107】ここで、好ましくは、受信した遠隔書き込
み要求に対する処理の完了の回数を計数するカウンタを
設けても良い。遠隔ノードから書き込まれる回数が、書
き込まれる側のプログラムでわかっているような処理を
行う場合は、遠隔書き込みに対する応答パケットを返送
することなしに、受信側でカウントされる上記カウンタ
の値を受信側でチェックし、所定の回数の書き込みパケ
ットの処理が完了したことを確認してから全体でバリア
同期をとることによって、遠隔書き込みパケットを送信
した側に速やかに書き込みの完了が伝わるので高速であ
り、プロセッサ間結合網に対する負担も軽くなる。Here, preferably, a counter for counting the number of times of completion of the processing for the received remote write request may be provided. When performing a process whose number of times of writing from the remote node is known by the program to be written, the value of the counter counted by the receiving side is returned to the receiving side without returning a response packet to the remote writing. Checking that the processing of the write packet of a predetermined number of times is completed, and then performing barrier synchronization as a whole, so that the completion of the write is immediately transmitted to the side that transmitted the remote write packet, so that the speed is high. The burden on the inter-processor connection network is also reduced.
【0108】本実施例では、受信書き込み処理完了回数
カウンタ116を具備することとしており、これが動作
状態にある場合は、バスインタフェース部101が受信
した遠隔書き込み要求に伴うローカルメモリへ3の書き
込みを完了するたびに受信書き込み処理完了回数カウン
タ116はデクリメントされる。このカウンタ116の
初期化は、受信書き込み処理を一時停止させた状態で予
めマイクロプロセッサ2から予想される遠隔書き込み回
数をセットしておき、受信書き込み処理の一時停止を解
除し、受信書き込み処理完了回数カウンタ116を動作
状態にして遠隔書き込み要求パケットの到着を待機す
る。そこに設定された回数だけ受信書き込み処理が完了
すると、受信書き込み処理完了回数カウンタ116は0
となり、ステータスレジスタ122に指定回数に達した
旨が反映される。マイクロプロセッサ2は、この値をポ
ーリングするか、割り込みをかけてもらうことにより受
け取るべきデータを自PEが全て受け取ったことを認識
し、全PEがそのような状態になった場合に次のフェー
ズに進むべき場合はそこでバリア同期をかけることによ
り、書き込みに関する応答パケットなしに書き込み完了
の同期を高速にとることが可能となる。In the present embodiment, the reception write processing completion number counter 116 is provided. When this counter is in the operating state, the writing of 3 to the local memory accompanying the remote write request received by the bus interface unit 101 is completed. Each time the operation is completed, the reception write processing completion number counter 116 is decremented. The counter 116 is initialized by setting the number of remote writes expected from the microprocessor 2 in advance in a state where the reception / write processing is temporarily stopped, releasing the suspension of the reception / write processing, and completing the reception / write processing. The counter 116 is set to the operation state and waits for the arrival of the remote write request packet. When the reception / write processing is completed the set number of times, the reception / write processing completion number counter 116 becomes 0.
And the fact that the specified number of times has been reached is reflected in the status register 122. The microprocessor 2 recognizes that its own PE has received all the data to be received by polling this value or receiving an interrupt, and when all the PEs are in such a state, the microprocessor 2 proceeds to the next phase. If it is necessary to proceed, by applying barrier synchronization, it becomes possible to synchronize write completion at high speed without a response packet related to write.
【0109】パケット受信部113がアクノリッジあり
遠隔書き込み要求パケットを受信した場合は、メモリア
ドレス生成部102に、パケットヘッダー内に存在する
プロセスID、バースト長と書き込み先頭アドレス(仮
想アドレス)および書き込みデータを渡し、一方、パケ
ット生成部100に、プロセスIDおよび応答を返送す
べきノードのアドレス(ソース物理PE番号)を渡す。When the packet receiver 113 receives the remote write request packet with acknowledgment, the memory address generator 102 stores the process ID, burst length, write start address (virtual address) and write data existing in the packet header. On the other hand, the process ID and the address of the node to return the response (source physical PE number) are passed to the packet generation unit 100.
【0110】メモリアドレス生成部102は、制御装置
内TLB103を用いてプロセスIDによるアクセス権
限チェックと書き込み先頭アドレスの物理アドレスを生
成し、バスインタフェース部101を介してローカルメ
モリ3に書き込みデータを書き込み、書き込みが完了し
たところでパケット生成部100にアクノリッジパケッ
トの送信を指示する。The memory address generation unit 102 uses the TLB 103 in the control device to check the access right based on the process ID and generate the physical address of the write start address, and writes the write data to the local memory 3 via the bus interface unit 101. When the writing is completed, the packet generation unit 100 is instructed to transmit an acknowledge packet.
【0111】パケット生成部100は、パケット受信部
113から受け取ったプロセスIDとソース物理PE番
号から遠隔書き込みアクノリッジパケットを生成し、プ
ロセッサ間結合網インタフェース部117に渡す。The packet generating section 100 generates a remote write acknowledge packet from the process ID and the source physical PE number received from the packet receiving section 113, and transfers the packet to the inter-processor connection network interface section 117.
【0112】パケット受信部113が遠隔読み出し応答
パケットを受信した場合は、アクノリッジなし遠隔書き
込み要求パケットと概ね同じ動作をし、応答待ち書き込
み要求数カウンタ115のかわりに応答待ち読み出し要
求数カウンタ114をデクリメントする。応答待ち読み
出し要求カウンタ114が0になったらステータスレジ
スタ122の遠隔読み出し動作の完了を示すビットを立
てる。When the packet receiving unit 113 receives the remote read response packet, it performs almost the same operation as the remote write request packet without acknowledgment, and decrements the response wait read request number counter 114 instead of the response wait write request number counter 115. I do. When the response waiting read request counter 114 becomes 0, a bit indicating the completion of the remote read operation of the status register 122 is set.
【0113】なお、パケットヘッダー内に存在するプロ
セスIDと、プロセスID指定レジスタ108の値を比
較して、一致しなかった場合は、アクノリッジが戻って
くる前にコンテクストスイッチが起こってしまって、デ
クリメントすべき応答待ち読み出し要求数カウンタ11
4はローカルメモリ3上に退避されているので、外部マ
イクロプロセッサ2に割り込みをかけてOSに対して退
避済みのプロセスに対する遠隔書き込み応答パケットを
受信したことを通知する。OSはローカルメモリ3上に
退避された対応する応答待ち読み出し要求数カウンタ1
14をデクリメントしてコンテクストを割り込み前の状
態に戻す。The process ID present in the packet header is compared with the value of the process ID designation register 108. If the values do not match, a context switch occurs before an acknowledge is returned, and the decrement is performed. Response waiting read request number counter 11 to be performed
4 is saved on the local memory 3 and interrupts the external microprocessor 2 to notify the OS that a remote write response packet for the saved process has been received. The OS reads the corresponding response waiting read request number counter 1 saved on the local memory 3.
Decrement 14 to return the context to the state before interrupt.
【0114】パケット受信部113が遠隔書き込み応答
パケットを受信した場合は、パケットヘッダー内に存在
するプロセスIDと、プロセスID設定レジスタの値を
比較して、一致した場合は応答待ち書き込み要求数カウ
ンタ115をデクリメントする。応答待ち書き込み要求
数カウンタ115が0になったらステータスレジスタ1
22のアクノリッジ付き遠隔書き込み動作の完了を示す
ビットを立てる。When the packet receiving unit 113 receives the remote write response packet, the process ID existing in the packet header is compared with the value of the process ID setting register. Is decremented. When the response waiting write request number counter 115 becomes 0, the status register 1
A bit indicating the completion of the remote write operation with acknowledgment 22 is set.
【0115】なお、パケットヘッダー内に存在するプロ
セスIDと、プロセスID設定レジスタの値を比較して
一致しなかった場合は、アクノリッジが戻ってくる前に
コンテクストスイッチが起こってしまって、デクリメン
トすべき応答待ち書き込み要求数カウンタ115は、ロ
ーカルメモリ3上に退避されているので、外部マイクロ
プロセッサ2に割り込みをかけてOSに対して退避済み
のプロセスに対する遠隔書き込み応答パケットを受信し
たことを通知する。OSはローカルメモリ3上に退避さ
れた対応する応答待ち書き込み要求数カウンタ115を
デクリメントしてコンテクストを割り込み前の状態に戻
す。If the process ID existing in the packet header and the value of the process ID setting register do not match, a context switch occurs before the acknowledgment returns, and should be decremented. The response waiting write request number counter 115, which has been saved on the local memory 3, interrupts the external microprocessor 2 to notify the OS that a remote write response packet for the saved process has been received. The OS decrements the corresponding response-waiting write request counter 115 saved on the local memory 3 to return the context to the state before the interruption.
【0116】次に、並列計算機上での本実施例の遠隔メ
モリアクセス制御装置の使用例を説明する。図8は、8
×9=72個の要素プロセッサ(PE)を具備した二次
元メッシュ結合型並列計算機における複数のユーザーの
ジョブ混在と故障PEの代替を有するマッピング状況の
例を示した図である。PE0〜PE31はプロセス1に
割り当てられるが、4×4の論理PEを割り当てようと
したときにPE46が故障しているため、PE36〜P
E39、PE44、PE45、PE47、PE52〜P
E55、PE60〜PE63、PE70がプロセス2に
割り当てられている。Next, an example of using the remote memory access control device of this embodiment on a parallel computer will be described. FIG.
FIG. 11 is a diagram illustrating an example of a mapping situation having a mixture of jobs of a plurality of users and substitution of a faulty PE in a two-dimensional mesh-connected parallel computer including × 9 = 72 element processors (PEs). PE0 to PE31 are assigned to the process 1. However, when trying to assign a 4 × 4 logical PE, the PE46 has failed.
E39, PE44, PE45, PE47, PE52-P
E55, PE60 to PE63, and PE70 are allocated to the process 2.
【0117】図9は、プロセス2の論理的なPE群を示
した図である。括弧の中の数字は物理PE番号で括弧の
外の番号は論理PE番号である。論理PE番号は0〜1
5まで連続しているが、対応する物理PE番号はプロセ
ス2のように割り当てられる位置や故障PEの存在によ
り必ずしも連続しない。FIG. 9 is a diagram showing a logical group of PEs in the process 2. The numbers in parentheses are physical PE numbers, and the numbers outside of parentheses are logical PE numbers. Logical PE number is 0-1
Although the number is consecutive up to 5, the corresponding physical PE number is not always consecutive due to the position assigned as in Process 2 or the presence of a faulty PE.
【0118】図10は、プロセス2のアドレス変換の様
子を示した図である。プロセス2の送信側PEにおける
仮想アドレス(ローカル論理アドレスと呼ぶ)では、各
PE上に分散配置されたメモリが論理的に連続した領域
にマッピングされている。FIG. 10 is a diagram showing a state of address conversion in process 2. In a virtual address (called a local logical address) in the transmission-side PE of the process 2, memories distributed on each PE are mapped to logically continuous areas.
【0119】しかし、図8に示されるように物理PE番
号は必ずしも連続していないために、図10のようにP
Eアドレス部のみを物理アドレスとしたメモリ空間(グ
ローバル中間アドレス)においては不規則的にとびとび
の物理PE番号に対応した不規則的にとびとびのメモリ
領域にローカル論理アドレスは変換され、結合網上を行
き交うパケットの中のヘッダー情報の一部として取り扱
われる。結合網は、パケットヘッダー中の物理PE番号
をもとにメッセージのルーティングを行う。However, since the physical PE numbers are not always consecutive as shown in FIG.
In a memory space (global intermediate address) in which only the E address portion is a physical address, the local logical address is converted into an irregularly discrete memory area corresponding to the discrete physical PE number irregularly. Treated as part of the header information in the outgoing and incoming packets. The connection network performs message routing based on the physical PE number in the packet header.
【0120】各PE上で時分割的にマルチユーザー運用
を行っていたり、ローカルに実装されている半導体メモ
リ以上のメモリが存在するように見せかけるために仮想
記憶をローカルに行う場合は、さらにグローバル中間ア
ドレス中のPEアドレス部を除いたビットとして表現さ
れるPE内メモリアドレスが、受信側PE上でPE内論
理メモリアドレスからPE内物理メモリアドレスに変換
される。In the case where multi-user operation is performed in a time-division manner on each PE or virtual storage is locally performed in order to make it appear that there is more memory than a locally mounted semiconductor memory, a global intermediate The in-PE memory address expressed as a bit excluding the PE address part in the address is converted from the in-PE logical memory address to the in-PE physical memory address on the receiving PE.
【0121】本実施例では、この変換は、受信側の制御
装置内TLBを用いて実現される。受信側でのアドレス
変換は、手元のメモリに対するアドレス変換であるので
局所性が利用でき、TLBが効果的である。In this embodiment, this conversion is realized using the TLB in the control device on the receiving side. Since the address conversion on the receiving side is an address conversion for the memory at hand, locality can be used, and TLB is effective.
【0122】一方、どの物理PE番号が大域的共有メモ
リ空間上にマップされているのかということは、ユーザ
ーは直接知らずにローカル論理アドレス空間上でプログ
ラミングすべきであるし、ジョブへのプロセッサの割当
が行われる実行時にOSが管理すべき情報でありアドレ
スの変換が必要になるが、このアドレス変換は例えば全
PE間で小量の別々のデータを互いに交換しあう全対全
通信(all toall personalized
communication)を行うような場合は、
頻繁に論理PE番号も変化するようなアクセスとなるた
め、TLBのエントリ数が通信する相手PE数より少な
いとTLBがミスヒットの連続となり逆効果となる。On the other hand, which physical PE number is mapped in the global shared memory space should be programmed by the user without directly knowing it on the local logical address space. This is information to be managed by the OS when execution is performed, and address conversion is required. This address conversion is performed, for example, in all-to-all personalized communication in which small amounts of separate data are exchanged among all PEs.
communication).
Since the access is such that the logical PE number changes frequently, if the number of entries in the TLB is smaller than the number of the communicating PEs, the TLB becomes a series of mishits, which has an adverse effect.
【0123】図11は、16×16の正方行列A,Bを
16個のPEで列方向に分割し1列ずつ保持させたとこ
ろから行列Aの転置行列Bを生成する際にPE2が行う
べき通信パターンを示した図である。PE2に保持され
たA(k,2)はそれぞれB(2,k)に代入される。
ここでkは0〜15の整数である。B(2,k)は16
個のPEに分割されているので、この代入操作は全て異
なるPEへの通信となる。同様な通信が他の全てのPE
においても発生するので、この処理は全対全通信とな
る。この例のように割り当てられたPE数が16程度で
あれば通常のマイクロプロセッサ内部のTLBのエント
リ数より少ないので全対全通信を行ってもTLBは効果
が期待できるが、数百以上のPEを持つ高並列計算機や
超並列計算機上で百以上のPEを用いたプロセスにおい
て全対全通信を繰り返し行う場合を想定すると、マイク
ロプロセッサ内部のTLBのように数十程度に限定され
た個数のエントリしか持たないTLBを用いてPEアド
レスを論理PEアドレスから物理PEアドレスに変換す
る方式は、TLBのエントリは再利用されずにTLBミ
スヒットを連発してしまう。FIG. 11 shows that the 16 × 16 square matrices A and B are divided in the column direction by 16 PEs and held one column at a time. It is a figure showing a communication pattern. A (k, 2) held in PE2 is assigned to B (2, k), respectively.
Here, k is an integer of 0 to 15. B (2, k) is 16
Since the PEs are divided into a plurality of PEs, the assignment operation is all communication to different PEs. Similar communication is performed for all other PEs.
, This processing is all-to-all communication. If the number of assigned PEs is about 16 as in this example, the number of entries in the TLB in the ordinary microprocessor is smaller, so that TLB can be expected to be effective even if all-to-all communication is performed. If it is assumed that all-to-all communication is repeatedly performed in a process using more than 100 PEs on a highly parallel computer or a massively parallel computer with a In a method of converting a PE address from a logical PE address to a physical PE address using a TLB having only the TLB, the TLB entry is not reused and TLB mishits occur repeatedly.
【0124】そこで、好ましくは、パケット生成部(1
00)に非特権モードでのプログラムからは特権モード
に移行することなく直接制御することが不可能なプロテ
クション情報付加機構を設け、遠隔メモリアクセスパケ
ットを受信する側にパケット中のプロテクション情報に
基づいてメモリアクセスの許可不許可を制御するメモリ
アクセス保護機構を設けるとともに、遠隔メモリを指定
するアドレスとして送信側でシステムコールによって変
換をかけた変換後アドレスをローカルメモリ(3)に準
備し、実際の遠隔メモリアクセス時には上記の変換後ア
ドレスを再利用するようにしても良い。Therefore, preferably, the packet generator (1)
00), a protection information adding mechanism that cannot be directly controlled from the program in the non-privileged mode without shifting to the privileged mode is provided, and the remote memory access packet receiving side is provided with a protection information adding mechanism based on the protection information in the packet. In addition to providing a memory access protection mechanism for controlling the permission / non-permission of memory access, a translated address prepared by a system call on the transmission side as an address for specifying the remote memory is prepared in the local memory (3), and the actual remote address is prepared. At the time of memory access, the above-mentioned converted address may be reused.
【0125】すなわち、特権モードからはプロテクショ
ン情報を書き換えることができるので、プロセッサがコ
ンテクストスイッチして他のユーザーのプロセスに切り
替わる時にオペレーティングシステムがこれから外部プ
ロセッサ(2)や遠隔メモリアクセス制御装置(1)な
どの資源を割り当てるプロセスIDなどを設定しておき
非特権モードでの遠隔メモリアクセス時にはパケット生
成部がこの情報をパケットのヘッダーに埋め込む。That is, since the protection information can be rewritten from the privileged mode, when the processor is context-switched and switched to another user's process, the operating system is now ready for the external processor (2) or remote memory access controller (1). When a remote memory access is performed in the non-privileged mode, the packet generator embeds this information in the header of the packet.
【0126】遠隔メモリを指定するアドレスは送信側で
システムコールによって変換をかけた変換後アドレスが
ローカルメモリ(3)に準備されるので、非特権モード
でローカルメモリ(3)上の変換後アドレスを書き換え
られる危険性がある。しかし、他人の遠隔メモリに誤っ
て書き込むことは受信側のメモリアクセス保護機構でパ
ケットヘッダー中のプロテクション情報をチェックする
ことによって排除される。As for the address designating the remote memory, the translated address obtained by performing the translation by the system call on the transmitting side is prepared in the local memory (3), so that the translated address on the local memory (3) is stored in the non-privileged mode. There is a risk of being rewritten. However, erroneous writing to someone else's remote memory is eliminated by checking the protection information in the packet header with the receiving memory access protection mechanism.
【0127】実際の遠隔メモリアクセス時には、上記の
変換後アドレスを再利用することによってアドレス変換
を通信実行時に逐一行わなくても良くなるので、送信側
にTLBやシステムコールの多発をなくすことができ
る。At the time of actual remote memory access, by reusing the above-mentioned converted address, the address conversion does not have to be performed each time communication is performed, so that the TLB and system calls are not frequently generated on the transmission side. .
【0128】遠隔メモリアクセスの場合、送信先のプロ
セッサ番号は遠隔メモリのアドレスの一部を形成するこ
とになるが、これらは通常別のプロセッサならば異なる
TLBエントリを必要とするために、送信側でTLBに
よるアドレス変換が逐一必要な方式では送信先プロセッ
サが多いとTLBミスヒットが連発することになるが、
上記のようにすれば、通信が多数回繰り返される場合で
も、変換は事前に1回だけ行うに過ぎないので、このよ
うな問題点がない。In the case of a remote memory access, the destination processor number will form part of the address of the remote memory, but these are usually different processors which require different TLB entries, so In the method in which the address translation by the TLB is required one by one, if there are many destination processors, TLB mishits will occur repeatedly.
According to the above, even if the communication is repeated many times, the conversion is performed only once in advance, so that there is no such a problem.
【0129】本実施例では、このように、通信を始める
前に1回だけOSをコールし、アクセスを行いたい大域
的共有メモリアドレス(ローカル論理アドレス)を、実
ノードを識別できるアドレス(グローバル中間アドレ
ス)に変換してもらい、その情報を基に得られるパケッ
ト生成用情報をローカルメモリ3上に格納しておき、そ
の情報を再利用すると効果的である。なぜなら、FFT
や行列転置などの科学技術計算にはしばしば用いられる
ように、アクセス先が動的に変動せず決まったアクセス
先に何度もループでアクセスが繰り返される場合は、遠
隔メモリアクセスの際にマイクロプロセッサ内部のTL
Bは一切使わずにすませつつ、パケット送信時には制御
装置内TLBを遠隔メモリアドレスの変換のために使う
ことなく、遠隔メモリアクセス実行時にトラップを起こ
すことなしに、異なるプロセッサ上に配置された異なる
ページに属する多くの遠隔アクセス先に遠隔メモリアク
セスパケットを生成することが可能となるためである。In this embodiment, as described above, the OS is called only once before communication starts, and the global shared memory address (local logical address) to be accessed is changed to the address (global intermediate address) capable of identifying the real node. It is effective to have the local memory 3 store the packet generation information obtained based on that information in the local memory 3 and to reuse that information. Because FFT
When the access destination does not fluctuate dynamically and is repeatedly accessed in a loop many times, as is often used in scientific and technical calculations such as matrix transposition and matrix transposition, a microprocessor is used for remote memory access. Internal TL
A different page allocated on a different processor without using the TLB in the control unit for transmitting a packet, without using a TLB for translation of a remote memory address, and without causing a trap when executing a remote memory access. This is because it is possible to generate a remote memory access packet to many remote access destinations belonging to.
【0130】図12は、PE2における図11に示した
行列転置の際のアドレス変換前の書き込み先ポインタの
配列を示した図である。アドレスの上位は論理PE番号
であり、これがワード毎に全て異なる。アドレスの下位
はPE内論理メモリアドレスであり、行列A,Bの要素
が8バイトのデータからなるとすると、この値は配列B
の各PE内におけるベースアドレスに8バイト×2要素
目=16を加算したものである。FIG. 12 is a diagram showing an array of write destination pointers before address conversion in the matrix transposition shown in FIG. 11 in PE2. The upper part of the address is a logical PE number, which is different for each word. The lower part of the address is the logical memory address in the PE. If the elements of the matrices A and B consist of 8 bytes of data, this value is
Is obtained by adding 8 bytes × the second element = 16 to the base address in each PE.
【0131】図13は、図9のマッピングがされたプロ
セス2におけるPE2における図11に示した行列転置
の際のアドレス変換後の書き込み先ポインタの配列を示
した図である。アドレスの上位が論理PE番号から物理
PE番号に変換されている。この配列は、図12を準備
した上で、前述のように通信を始める前に1回だけOS
をコールすることによって得られる。この配列が、パケ
ット生成用情報に対応する。FIG. 13 is a diagram showing an array of write destination pointers after address conversion at the time of transposing the matrix shown in FIG. 11 in PE2 in the process 2 mapped in FIG. The upper part of the address is converted from a logical PE number to a physical PE number. This arrangement is such that, after preparing FIG. 12, the OS is executed only once before starting communication as described above.
Is obtained by calling This array corresponds to the packet generation information.
【0132】なお、本実施例では、プロセッサ間結合網
が絶対アドレスを用いてルーティングするものとしてア
ドレスの上位を物理PE番号そのものに変換したが、プ
ロセッサ間結合網が相対アドレスを用いてルーティング
する場合には、ルーティングに便利なように書き込み元
のPEアドレスと書き込み先のPEアドレスから計算さ
れる相対アドレスに変換し、そのままルーティング情報
として使える形にすることが望ましい。In this embodiment, the high-order address is converted into the physical PE number itself assuming that the inter-processor interconnection network performs routing using an absolute address. However, the inter-processor interconnection network performs routing using a relative address. In order to facilitate the routing, it is desirable that the address be converted into a relative address calculated from the PE address of the writing source and the PE address of the writing destination, and be used as it is as the routing information.
【0133】次に、図11で示される通信を行う場合の
動作例について解説する。この動作を行うためには、ま
ず、64bitデータ16個からなる送信用データの配
列A、受信用データの配列B、および図13に示したパ
ケット生成情報の配列Cをメモリ上に準備する。Next, an example of the operation when the communication shown in FIG. 11 is performed will be described. In order to perform this operation, first, an array A of 16 pieces of 64-bit data for transmission, an array B of data for reception, and an array C of packet generation information shown in FIG. 13 are prepared in the memory.
【0134】受信書き込み処理完了カウンタ116に
“16”を、パケット数指定レジスタ105に“16”
を、バースト長指定レジスタ107に“2”(32bi
tデータ2ワード分を意味する)を、パケットデータ部
ポインタ指定レジスタ106に“配列Aの先頭アドレ
ス”を、パケット生成用情報ポインタ指定レジスタ10
4に“配列Cの先頭アドレス”を、マイクロプロセッサ
2からそれぞれ設定し、「アクノリッジなし遠隔書き込
み要求アドレス」をマイクロプロセッサ2からアクセス
することによって、遠隔書き込み動作が起動される。“16” is set in the reception write processing completion counter 116 and “16” is set in the packet number designation register 105.
Is stored in the burst length designation register 107 as “2” (32 bi).
t means 2 words), the “header of array A” is stored in the packet data section pointer specification register 106, and the packet generation information pointer specification register 10
4, the "start address of array C" is set from the microprocessor 2 and the "remote write request address without acknowledgment" is accessed from the microprocessor 2 to start the remote write operation.
【0135】パケット生成部100は、図7のようなヘ
ッダーと64bitのデータ部を持つ16個のパケット
を、配列Cの情報に基づき生成する。16個のパケット
全ての生成が終わると、ステータスレジスタ122には
パケット生成の終了を示すビットが立つ。The packet generating section 100 generates 16 packets having a header and a 64-bit data portion as shown in FIG. When all 16 packets have been generated, a bit indicating the end of packet generation is set in the status register 122.
【0136】PE2以外の他のPEでも同様の動作が行
われ、PE2は自分を含めた16個のPEから1個ずつ
上記のようなパケットを受け取る。順番に、16個のア
クノリッジなし遠隔書き込み要求パケットのデータ部
を、ヘッダー部に含まれるPE内論理メモリアドレスを
制御装置内TLB103で変換して得られる物理メモリ
アドレスに書き込むと、受信書き込み処理完了回数カウ
ンタ116が“0”となり、ステータスレジスタ122
に受信書き込み完了のビットを立てて、遠隔書き込み動
作は完了する。The same operation is performed in other PEs other than PE2, and PE2 receives the above-mentioned packets one by one from 16 PEs including itself. In turn, when the data portion of the 16 remote write request packets without acknowledgment is written to the physical memory address obtained by converting the logical memory address in the PE included in the header portion by the TLB 103 in the control device, the number of times of completion of the reception write process The counter 116 becomes “0” and the status register 122
The remote write operation is completed by setting the bit of the completion of the receive write operation.
【0137】マイクロプロセッサ2は、受信書き込み完
了をポーリングして、ステータスレジスタ122の受信
書き込み完了ビットが立ったことを検知したら、バリア
同期を実行する。全てのPEがバリア同期を実行する
と、全対全通信が完了したことになり、行列Aを転置し
た行列Bが得られたことになる。The microprocessor 2 polls the completion of the reception and writing, and when detecting that the reception and writing completion bit of the status register 122 is set, executes the barrier synchronization. When all the PEs execute the barrier synchronization, all-to-all communication is completed, and a matrix B obtained by transposing the matrix A is obtained.
【0138】以上の動作例ではアクノリッジなしの遠隔
書き込みを用いて実現することを示したが、アクノリッ
ジ付きの遠隔書き込みや、遠隔読み出しを用いても同様
のことが実現できる。本動作例では書き込み先および書
き込まれ回数が静的に決まる例であるので、アクノリッ
ジなしの遠隔書き込みを用いることが、応答メッセージ
が不要なことから最も高速な実現形態となる。In the above operation example, the realization is performed by using remote writing without acknowledgment. However, the same can be realized by using remote writing with acknowledgment or remote reading. In this operation example, since the write destination and the number of times of writing are statically determined, the use of remote writing without acknowledgment is the fastest mode of implementation because no response message is required.
【0139】(変形例1)次に、実施例1の変形例を説
明する。変形例1では、実施例1の遠隔メモリアクセス
制御装置において、ローカルメモリ3に格納されるパケ
ット生成用情報として、メモリアドレスの他に、パケッ
トが運ぶべきデータ語数を用意し、パケット毎に異なる
語数の連続データの読み書きを行う遠隔メモリバースト
アクセスパケットを生成する。(Modification 1) Next, a modification of the first embodiment will be described. In the first modification, in the remote memory access control device of the first embodiment, as the packet generation information stored in the local memory 3, the number of data words to be carried by the packet is prepared in addition to the memory address. A remote memory burst access packet for reading and writing the continuous data of is generated.
【0140】パケット生成部100は、遠隔メモリアク
セスパケットを生成する際に、パケット生成用情報中の
パケットが運ぶべきデータ語数(バースト長)を参照し
つつ、読みだしならば、バースト長をヘッダーに含む遠
隔メモリ読みだし要求パケットを生成し、書き込みなら
ば、ローカルメモリから読みだしたデータを元に、バー
スト長の分だけ、データ部に含む遠隔メモリ書き込みパ
ケットを生成する。バースト長は、パケット毎にパケッ
ト生成用情報に含まれるので、アクセス先によって異な
るバースト長でアクセスすることが可能となる。When generating a remote memory access packet, the packet generation section 100 refers to the number of data words (burst length) to be carried by the packet in the packet generation information, and reads the burst length in the header if it is read. A remote memory read request packet including a remote memory write request packet is generated based on the data read from the local memory for the burst length, based on the data read from the local memory. Since the burst length is included in the packet generation information for each packet, it is possible to access with a different burst length depending on the access destination.
【0141】図14は、この変形例を説明するための図
であり、メッセージ毎に指定できるバースト長を持つパ
ケット生成用情報に対応する配列の例を示した図であ
る。図1の遠隔メモリアクセス制御装置1におけるバー
スト長指定レジスタ107上の値は全てのパケット生成
に際して用いられていたが、ここでの例のようにパケッ
ト生成を行う場合は、図5、図6、図7のパケットヘッ
ダー内のバースト長には、図14のパケット生成用情報
の中にある個別のバースト長が用いられる。FIG. 14 is a diagram for explaining this modification, and shows an example of an array corresponding to packet generation information having a burst length that can be specified for each message. Although the value on the burst length designation register 107 in the remote memory access control device 1 in FIG. 1 has been used for generating all packets, when generating a packet as in the example here, FIGS. The individual burst length in the packet generation information in FIG. 14 is used as the burst length in the packet header in FIG.
【0142】例えば、図14のパケット生成用情報の中
の先頭の要素に対応するパケットは物理PE番号36を
持つPEに対するデータ2語を書き込むまたは読み出す
パケットを生成し、2番目の要素に対応するパケットは
物理PE番号37を持つPEに対するデータ3語を書き
込むまたは読み出すパケットを生成する。For example, the packet corresponding to the first element in the packet generation information in FIG. 14 generates a packet for writing or reading two words of data for the PE having the physical PE number 36, and corresponds to the second element. The packet generates a packet for writing or reading three words of data for the PE having the physical PE number 37.
【0143】図7の形式のパケット生成情報が用いられ
るのか図14の形式のパケット生成情報が用いられるの
かは、遠隔アクセスの起動をかけるためのアドレスを別
のアドレスにマッピングさせておくことなどによって区
別できる。Whether the packet generation information in the format of FIG. 7 or the packet generation information in the format of FIG. 14 is used is determined by mapping an address for starting remote access to another address. Can be distinguished.
【0144】(実施例2)最初に、本実施例の主な構成
と、その作用効果について述べる。 <実施例2の主な構成>本実施例は、物理的に分散して
実装され論理的に複数のベクトルプロセッサ(25)か
ら共有メモリとしてアクセス可能な分散共有メモリ(2
3)を具備する並列計算機において、生成パケット数に
対応する情報をベクトル長指定レジスタ(236)によ
り指定し、遠隔メモリをアクセスするパケットを生成す
るためのパケット生成用情報の一部または全部を所望の
個数のパケットに対応する分、所定のフォーマットに基
づいて遠隔メモリアクセス制御装置(21)の外部でか
つ手元にあるローカルメモリ(23)に格納しておき、
ベクトルプロセッサ(25)がフェッチしたベクトル命
令によってローカルメモリ(23)からベクトルレジス
タ(234)にパケット生成用情報をロードし、これら
を用いてベクトルプロセッサ(25)がフェッチしたベ
クトル命令によって遠隔メモリアクセスパケットを生成
する。(Embodiment 2) First, the main configuration of this embodiment and the operation and effect thereof will be described. <Main Configuration of Second Embodiment> In this embodiment, a distributed shared memory (2) that is physically distributed and is logically accessible as a shared memory from a plurality of vector processors (25).
In the parallel computer having 3), information corresponding to the number of generated packets is specified by the vector length specifying register (236), and a part or all of the packet generation information for generating a packet for accessing the remote memory is desired. Are stored in a local memory (23) outside the remote memory access control device (21) and at hand based on a predetermined format, corresponding to the number of packets.
The vector processor (25) loads the packet generation information from the local memory (23) into the vector register (234) by the vector instruction fetched, and uses them to execute the remote memory access packet by the vector instruction fetched by the vector processor (25). Generate
【0145】<実施例2の主な作用効果>本実施例の遠
隔メモリアクセス制御装置(21)は、分散共有メモリ
型並列計算機において、ベクトルプロセッサ(25)の
機能の一部として実現される。まず、遠隔メモリをアク
セスするパケットを生成するためのパケット生成用情報
の一部または全部を所望の個数のパケットに対応する分
だけ、所定のフォーマットに基づいてローカルメモリ
(23)に格納しておく。次に、ベクトルプロセッサ
(25)自身がフェッチしたベクトルロード命令によっ
てローカルメモリ(23)からベクトルレジスタ(23
4)にパケット生成用情報のロードを開始する。次に、
生成パケット数に対応する情報をベクトル長指定レジス
タ(236)に設定した状態で、ベクトルプロセッサ
(25)がフェッチしたベクトル遠隔メモリアクセス命
令を起動させる。<Main Functions and Effects of Second Embodiment> The remote memory access control device (21) of this embodiment is realized as a part of the function of the vector processor (25) in a distributed shared memory type parallel computer. First, part or all of the packet generation information for generating a packet for accessing the remote memory is stored in the local memory (23) based on a predetermined format in an amount corresponding to a desired number of packets. . Next, the vector register (23) is read from the local memory (23) by the vector load instruction fetched by the vector processor (25) itself.
In 4), loading of packet generation information is started. next,
With the information corresponding to the number of generated packets set in the vector length designation register (236), the vector processor (25) activates the vector remote memory access instruction fetched.
【0146】このようにして、メモリアクセス部とパケ
ット生成部(200)が同時進行でパイプライン動作
し、1回のベクトル遠隔メモリアクセス命令によって次
々と遠隔メモリアクセスパケットが生成される。外部プ
ロセッサ(22)は遠隔メモリアクセス開始の許可をベ
クトルプロセッサに通知した後は遠隔メモリアクセスの
処理のために忙殺されることなく別の処理を行うことが
可能となる。また、パケット生成用情報は、外部プロセ
ッサ(22)のキャッシュ(41)を通過しないので、
外部プロセッサ(22)のキャッシュ(41)のヒット
率も向上する。In this way, the memory access unit and the packet generation unit (200) operate in a pipeline simultaneously, and remote memory access packets are generated one after another by one vector remote memory access instruction. After notifying the vector processor of the permission to start the remote memory access, the external processor (22) can perform another processing without being busy for the processing of the remote memory access. Also, since the packet generation information does not pass through the cache (41) of the external processor (22),
The hit rate of the cache (41) of the external processor (22) is also improved.
【0147】また、ベクトル演算器からの結果は出たら
メモリに出入りすることなく遠隔メッセージのデータと
することができるので、メモリアクセスのボトルネック
を回避した高速な遠隔メモリアクセスが実現される。Further, since the result from the vector operation unit can be used as the data of the remote message without going into and out of the memory when it comes out, high-speed remote memory access avoiding a memory access bottleneck is realized.
【0148】以下、さらに具体的に本実施例を説明す
る。 <実施例2の具体的説明>図15および図16は、本実
施例のコプロセッサを具備する並列計算機の要素プロセ
ッサの構成を示す図である。Hereinafter, the present embodiment will be described more specifically. <Specific Description of Second Embodiment> FIGS. 15 and 16 are diagrams showing a configuration of an element processor of a parallel computer having the coprocessor of the present embodiment.
【0149】並列計算機は、プロセッサ間結合網により
複数の要素プロセッサを相互接続することにより実現さ
れる。本実施例では、要素プロセッサの相互接続方式は
任意とする。A parallel computer is realized by interconnecting a plurality of element processors by an inter-processor connection network. In this embodiment, the interconnection scheme of the element processors is arbitrary.
【0150】図のように、各要素プロセッサでは、遠隔
メモリアクセス制御装置とベクトルプロセッサが一体化
されたコプロセッサ21、汎用マイクロプロセッサによ
り実現されるメインプロセッサ22およびローカルメモ
リ23が、外部バス24により接続されている。プロセ
ッサ間結合網には、遠隔メモリアクセス制御装置21が
直接接続される。本実施例では、各要素プロセッサのロ
ーカルメモリ23を分散共有メモリとして使うこととす
る。As shown in the figure, in each element processor, a coprocessor 21 in which a remote memory access control device and a vector processor are integrated, a main processor 22 realized by a general-purpose microprocessor, and a local memory 23 are connected by an external bus 24. It is connected. The remote memory access control device 21 is directly connected to the inter-processor connection network. In this embodiment, the local memory 23 of each element processor is used as a distributed shared memory.
【0151】実施例1と同様に、マイクロプロセッサ2
2は、CPU43に加えて、キャッシュメモリ41およ
びアドレス変換用のTLB42を備えるものとする。ま
た、メインプロセッサ22は、外部バス24を介してロ
ーカルメモリ23やベクトルプロセッサ21の内部資源
をアクセスする。本実施例では、このメインプロセッサ
22上でOSやユーザープログラムの一部が動作し、ベ
クトルプロセッサ21はそのコプロセッサという位置づ
けとなっている。As in the first embodiment, the microprocessor 2
2 includes a cache memory 41 and a TLB 42 for address conversion in addition to the CPU 43. Further, the main processor 22 accesses the internal resources of the local memory 23 and the vector processor 21 via the external bus 24. In the present embodiment, an OS and a part of a user program operate on the main processor 22, and the vector processor 21 is positioned as a coprocessor.
【0152】しかし、本実施例のようにTLBやキャッ
シュメモリを備えた汎用のマイクロプロセッサによって
実現されるメインプロセッサ(22)とコプロセッサ
(21)の組み合わせで実現しなければならないわけで
はなく、カスタム設計により本実施例よりも緊密に結合
されたスカラプロセッサとベクトルプロセッサにより実
現するなどしても構わない。However, unlike the present embodiment, it is not necessary to implement the combination of the main processor (22) and the coprocessor (21) implemented by a general-purpose microprocessor having a TLB and a cache memory. It may be realized by a scalar processor and a vector processor which are more tightly coupled than in this embodiment by design.
【0153】図15および図16のように、コプロセッ
サ21は、ベクトル演算パイプライン232、ロードス
トアパイプライン233、ベクトルレジスタ234、ス
カラレジスタ235、ベクトル長指定レジスタ236、
ステータスレジスタ222、プロセスID指定レジスタ
208、命令バッファ241、命令制御部242、ベク
トルプロセッサ内結合網243、バスインタフェース部
201、プロセッサ間結合網インタフェース部217、
パケット生成部200、パケット受信部213、送信パ
ケットバッファ211、受信パケットバッファ212、
応答待ち読み出し要求カウンタ214、応答待ち書き込
み要求カウンタ215、受信書き込み処理完了回数カウ
ンタ216、コプロセッサ内TLB203、返信パケッ
トデータ部バッファ221、メモリアドレス生成部20
2を具備する。As shown in FIGS. 15 and 16, the coprocessor 21 includes a vector operation pipeline 232, a load store pipeline 233, a vector register 234, a scalar register 235, a vector length designation register 236,
Status register 222, process ID designation register 208, instruction buffer 241, instruction control unit 242, vector processor connection network 243, bus interface unit 201, inter-processor connection network interface unit 217,
A packet generation unit 200, a packet reception unit 213, a transmission packet buffer 211, a reception packet buffer 212,
Response waiting read request counter 214, response waiting write request counter 215, reception / write processing completion counter 216, TLB 203 in coprocessor, reply packet data section buffer 221, memory address generation section 20
2 is provided.
【0154】ローカルメモリ23には、メインプロセッ
サ内TLB42やコプロセッサ内TLB21にキャッシ
ングされるべきページテーブルの本体や、ベクトルプロ
セッサ21のためのプログラムや、メインプロセッサ2
2のためのプログラムや、パケット生成用情報の配列や
送信パケットデータ部などのその他のデータが保持され
る。In the local memory 23, the main body of the page table to be cached in the TLB 42 in the main processor and the TLB 21 in the coprocessor, the program for the vector processor 21 and the main processor 2
2 and other data such as an array of packet generation information and a transmission packet data section.
【0155】ここで、好ましくは、パケット生成部(2
00)に非特権モードでのプログラムからは特権モード
に移行することなく直接制御することが不可能なプロテ
クション情報付加機構を設け、遠隔メモリアクセスパケ
ットを受信する側にパケット中のプロテクション情報に
基づいてメモリアクセスの許可不許可を制御するメモリ
アクセス保護機構を設けると良い。特権モードからはプ
ロテクション情報を書き換えることができるので、プロ
セッサがコンテクストスイッチして他のユーザーのプロ
セスに切り替わる時にオペレーティングシステムがこれ
から外部プロセッサや遠隔メモリアクセス制御装置など
の資源を割り当てるプロセスIDなどを設定しておき非
特権モードでの遠隔メモリアクセス時にはパケット生成
部がこの情報をパケットのヘッダーに埋め込む。つま
り、非特権モードでローカルメモリ(23)上のパケッ
ト生成用情報を書き換えても、他人の遠隔メモリに誤っ
て書き込むことは受信側のメモリアクセス保護機構でパ
ケットヘッダー中のプロテクション情報をチェックする
ことによって排除される。Here, preferably, the packet generation unit (2
00), a protection information adding mechanism that cannot be directly controlled from the program in the non-privileged mode without shifting to the privileged mode is provided, and the remote memory access packet receiving side is provided with a protection information adding mechanism based on the protection information in the packet. It is preferable to provide a memory access protection mechanism for controlling permission / denial of memory access. Since the protection information can be rewritten from the privileged mode, when the processor context switches and switches to another user's process, the operating system sets a process ID to allocate resources such as an external processor and a remote memory access control device. When the remote memory is accessed in the non-privileged mode, the packet generator embeds this information in the header of the packet. In other words, even if the information for packet generation on the local memory (23) is rewritten in the non-privileged mode, if it is erroneously written to the remote memory of another person, the protection information in the packet header is checked by the memory access protection mechanism on the receiving side. Will be eliminated by
【0156】本実施例では、上記のような機構を採用す
るとととし、コプロセッサ内TLB203とプロセスI
D指定レジスタ208は、マイクロプロセッサの特権モ
ードでしかアクセスできない領域にマップされる。In this embodiment, it is assumed that the above-described mechanism is adopted, and the TLB 203 in the coprocessor and the process I
D designation register 208 is mapped to an area that can be accessed only in the privileged mode of the microprocessor.
【0157】コプロセッサ内TLB203には、メモリ
アドレス生成部202が発生するメモリアクセス時のア
ドレス変換に用いられる物理アドレスと論理アドレスの
組の他に、TLB42のエントリ毎に付けられたプロセ
スIDを保持する。その実体はローカルメモリ23の特
権モードでしかアクセスできない領域に上にあり、TL
B42にはその情報がキャッシングされる。なお、ここ
でいうプロセスとは、仮想アドレス空間を割り当てる単
位であり、複数のプロセッサにまたがって同一のプロセ
スIDを使用する複数のスレッドが存在する。The in-coprocessor TLB 203 holds a process ID assigned to each entry of the TLB 42 in addition to a set of a physical address and a logical address used for address conversion at the time of memory access generated by the memory address generation unit 202. I do. The entity is located in an area of the local memory 23 which can be accessed only in the privileged mode, and TL
The information is cached in B42. Here, the process is a unit for allocating a virtual address space, and there are a plurality of threads using the same process ID across a plurality of processors.
【0158】プロセスID指定レジスタ208には、コ
プロセッサ21を割り当てられているプロセスIDが保
持され、パケット生成部200で生成されるパケットの
ヘッダーには、プロセスID指定レジスタ208上のプ
ロセスIDが埋め込まれる。このように、コプロセッサ
内TLB203とプロセスID指定レジスタ208は、
プロテクション情報を保持し、不正なメモリアクセスを
防止するための機構であるために、ユーザーモードから
は直接アクセスはさせないようになっている。The process ID designation register 208 holds the process ID assigned to the coprocessor 21, and the header of the packet generated by the packet generation unit 200 has the process ID on the process ID designation register 208 embedded therein. It is. Thus, the TLB 203 in the coprocessor and the process ID designation register 208
Direct access is not allowed from the user mode because it is a mechanism that holds protection information and prevents unauthorized memory access.
【0159】コプロセッサ21内部のベクトルプロセッ
サは、メインプロセッサ22からの指示に基づき、命令
制御部242がローカルメモリ23上のコプロセッサ用
プログラムを命令バッファに読み込んでは、命令バッフ
ァ241上の命令をデコードして、ベクトル演算パイプ
ライン232、ロードストアパイプライライン233、
スカラレジスタ235、ベクトルレジスタ234などへ
の制御信号を送り、メインプロセッサ22とは同期命令
や割り込み処理が発生しない限り独立して動作する。The vector processor in the coprocessor 21 reads the coprocessor program in the local memory 23 into the instruction buffer based on the instruction from the main processor 22 and decodes the instruction in the instruction buffer 241. Then, the vector operation pipeline 232, the load store pipeline 233,
A control signal is sent to the scalar register 235, the vector register 234, and the like, and operates independently from the main processor 22 unless a synchronization command or interrupt processing occurs.
【0160】コプロセッサ21の命令としては、スカラ
レジスタ235やベクトル長指定レジスタ236にロー
カルメモリ23や命令バッファ241からデータをロー
ドする命令や、ベクトルレジスタ234にローカルメモ
リ23からデータをロードするベクトルロード命令VL
Dや、ベクトルレジスタ234からローカルメモリ23
にデータをストアするベクトルストア命令VSTや、ベ
クトルレジスタ234やスカラレジスタ235上の値の
間で加算や乗算などの演算を実行し結果をベクトルレジ
スタ234に格納するベクトル演算命令や、後述するベ
クトル送信命令などが存在する。The instructions of the coprocessor 21 include an instruction to load data from the local memory 23 and the instruction buffer 241 to the scalar register 235 and the vector length designation register 236, and a vector load to load data from the local memory 23 to the vector register 234. Instruction VL
D and the local memory 23 from the vector register 234.
, A vector operation instruction for executing an operation such as addition or multiplication between values on the vector register 234 and the scalar register 235 and storing the result in the vector register 234, and a vector transmission instruction described later. There are instructions.
【0161】ベクトルプロセッサ内結合網243は、ベ
クトル命令が指定するオペランドによって制御されるベ
クトルプロセッサ内資源間のデータ転送経路となる。こ
こで、好ましくは、ローカルメモリ(23)に格納され
るパケット生成用情報の格納フォーマットを配列とする
と良い。そのようにした場合、ベクトルロード命令によ
って簡単かつ高速にベクトルレジスタにパケット生成用
情報をロードすることができる。The connection network 243 in the vector processor is a data transfer path between resources in the vector processor controlled by the operand specified by the vector instruction. Here, it is preferable that the storage format of the packet generation information stored in the local memory (23) be an array. In such a case, the packet generation information can be easily and quickly loaded into the vector register by the vector load instruction.
【0162】本実施例では、ローカルメモリ23に格納
されるパケット生成用情報の格納フォーマットを配列と
する。本実施例のコプロセッサ21によるプロセッサ間
通信を行う場合、まず、遠隔アクセスを行うケースで
は、書き込みのときも読み出しのときもパケット生成用
情報をベクトルレジスタ234にロードする必要があ
る。本実施例では、パケット生成用情報の格納フォーマ
ットを配列としており、n個のパケットのヘッダー情報
を生成するために必要な情報が、まずローカルメモリ2
3上の連続した領域上に配列として準備される。In this embodiment, the storage format of the packet generation information stored in the local memory 23 is an array. In the case of performing interprocessor communication by the coprocessor 21 of the present embodiment, first, in the case of performing remote access, it is necessary to load packet generation information into the vector register 234 in both writing and reading. In this embodiment, the storage format of the packet generation information is arrayed, and information necessary for generating header information of n packets is first stored in the local memory 2.
3 is prepared as an array on a continuous area.
【0163】ここで、好ましくは、パケット生成部(2
00)に非特権モードでのプログラムからは特権モード
に移行することなく直接制御することが不可能なプロテ
クション情報付加機構を設け、遠隔メモリアクセスパケ
ットを受信する側にパケット中のプロテクション情報に
基づいてメモリアクセスの許可不許可を制御するメモリ
アクセス保護機構を設けるとともに、遠隔メモリを指定
するアドレスとして送信側でシステムコールによって変
換をかけた変換後アドレスをローカルメモリに準備し、
実際の遠隔メモリアクセス時には上記の変換後アドレス
を再利用するようにしても良い。Here, preferably, the packet generation unit (2
00), a protection information adding mechanism that cannot be directly controlled from the program in the non-privileged mode without shifting to the privileged mode is provided, and the remote memory access packet receiving side is provided with a protection information adding mechanism based on the protection information in the packet. A memory access protection mechanism for controlling permission / rejection of memory access is provided, and a translated address prepared by a system call on the transmission side as an address specifying a remote memory is prepared in a local memory,
At the time of actual remote memory access, the address after the conversion may be reused.
【0164】すなわち、特権モードからはプロテクショ
ン情報を書き換えることができるので、プロセッサがコ
ンテクストスイッチして他のユーザーのプロセスに切り
替わる時にオペレーティングシステムがこれから外部プ
ロセッサや遠隔メモリアクセス制御装置などの資源を割
り当てるプロセスIDなどを設定しておき非特権モード
での遠隔メモリアクセス時にはパケット生成部がこの情
報をパケットのヘッダーに埋め込む。That is, since the protection information can be rewritten from the privileged mode, when the processor performs a context switch to switch to another user's process, the operating system can now allocate resources such as an external processor and a remote memory access control device. When a remote memory access is performed in the non-privileged mode, the packet generator embeds this information in the header of the packet when an ID or the like is set.
【0165】遠隔メモリを指定するアドレスは、送信側
でシステムコールによって変換をかけた変換後アドレス
がローカルメモリに準備されるので、非特権モードでロ
ーカルメモリ上の変換後アドレスを書き換えられる危険
性がある。しかし、他人の遠隔メモリに誤って書き込む
ことは、受信側のメモリアクセス保護機構でパケットヘ
ッダー中のプロテクション情報をチェックすることによ
って排除される。As for the address for specifying the remote memory, the translated address obtained by performing the translation by the system call on the transmitting side is prepared in the local memory. Therefore, there is a risk that the translated address on the local memory is rewritten in the non-privileged mode. is there. However, erroneous writing to someone else's remote memory is eliminated by checking the protection information in the packet header with the receiving memory access protection mechanism.
【0166】実際の遠隔メモリアクセス時には、上記の
変換後アドレスを再利用することによって、アドレス変
換を通信実行時に逐一行わなくても良くなるので、送信
側にTLBやシステムコールの多発をなくすことができ
る。At the time of actual remote memory access, by reusing the address after the above-mentioned conversion, the address conversion does not have to be performed every time the communication is executed. Therefore, it is possible to eliminate the frequent occurrence of TLB and system calls on the transmission side. it can.
【0167】遠隔メモリアクセスの場合、送信先のプロ
セッサ番号は遠隔メモリのアドレスの一部を形成するこ
とになるので、これらは通常別のプロセッサならば異な
るTLBエントリを必要とするため、送信側でTLBに
よるアドレス変換が逐一必要な方式では送信先プロセッ
サが多いとTLBミスヒットが連発することになるが、
上記のようにすれば、通信が多数回繰り返される場合で
も、変換は事前に1回だけ行うに過ぎないので、このよ
うな問題点がない。In the case of remote memory access, the processor number of the destination forms part of the address of the remote memory, and these usually require different TLB entries if another processor is used. In a method in which the address translation by the TLB is required one by one, if there are many destination processors, TLB mishits occur continuously.
According to the above, even if the communication is repeated many times, the conversion is performed only once in advance, so that there is no such a problem.
【0168】本実施例においても、実施例1と同様に、
図7を準備した上で、上記のように通信を始める前に1
回だけOSをコールすることによって得られる図8の配
列が、パケット生成用情報に対応する。In this embodiment, as in the first embodiment,
After preparing FIG. 7, before starting communication as described above, 1
The array of FIG. 8 obtained by calling the OS only once corresponds to the packet generation information.
【0169】さて、上記のパケット生成用情報に対応す
る配列の先頭アドレスをスカラレジスタSR1に設定
し、ロードすべきパケット生成用情報データ数すなわち
パケット数nをベクトル長指定レジスタ236に設定
し、連続アクセスを行うことを示すアクセスステップ数
1をスカラレジスタSR2に設定し、ベクトルレジスタ
VR1に対するベクトルロード命令(VLD SR1
SR2 VR1)を実行する。The start address of the array corresponding to the packet generation information is set in the scalar register SR1, the number of packet generation information data to be loaded, that is, the number of packets n is set in the vector length designation register 236, An access step number 1 indicating that access is performed is set in the scalar register SR2, and a vector load instruction (VLD SR1) for the vector register VR1 is set.
SR2 VR1).
【0170】すると、ベクトル長、先頭アドレス、アク
セスステップ数がロードストアパイプライン233に転
送され、そこでメモリアドレスを発生しアクセス要求が
バスインタフェース部201に届き、メモリ23をリー
ドした結果がベクトルプロセッサ内結合網243を経由
してベクトルレジスタVR1にパケット生成用情報とし
てnパケット分ロードされる。Then, the vector length, the start address, and the number of access steps are transferred to the load / store pipeline 233, where a memory address is generated, an access request reaches the bus interface unit 201, and the result of reading the memory 23 is stored in the vector processor. Via the connection network 243, n packets are loaded into the vector register VR1 as packet generation information.
【0171】本実施例では、パケット生成用情報の格納
フォーマットを配列としており、n個のパケットのヘッ
ダー情報を生成するために必要な情報がローカルメモリ
23上に配列として準備されているため、ベクトルロー
ド命令により効率的にパケット生成用情報がベクトルレ
ジスタ234にロードされる。In this embodiment, the storage format of the packet generation information is arrayed, and the information necessary to generate the header information of the n packets is prepared in the local memory 23 as an array. The packet generation information is efficiently loaded into the vector register 234 by the load instruction.
【0172】遠隔書き込みを行う場合は、さらに書き込
みデータをベクトルレジスタ234に準備する必要があ
る。ここでは、送信パケット毎にバースト長L語のデー
タを持ち、1回の起動によりn個の送信パケットを生成
するものとする。When remote writing is performed, it is necessary to further prepare write data in the vector register 234. Here, it is assumed that each transmission packet has data of a burst length of L words and that n transmission packets are generated by one activation.
【0173】遠隔書き込みを行う場合は、ローカルメモ
リ23上に書き込むべきデータを準備しておきベクトル
ロード命令をベクトルプロセッサにより実行するなどに
よってベクトルレジスタ234上にロードする方法と、
ベクトルプロセッサによる演算結果を送信データとして
直接用いることが可能な場合に限りベクトルレジスタ2
34上の演算結果を用いる方法がある。When remote writing is performed, data to be written is prepared on the local memory 23 and a vector load instruction is loaded into the vector register 234 by executing a vector load instruction by a vector processor.
Vector register 2 only if the result of operation by the vector processor can be used directly as transmission data
34, there is a method using the calculation result.
【0174】まず、前者の方式によって実行する場合の
動作について説明する。図15および図16では書き込
むべきデータはL×nの二次元配列として論理的に連続
した領域に格納されているが、ベクトルプロセッサのベ
クトルロード命令には、連続アクセスの他に、等間隔ア
クセスやリストアクセスを行う命令が用意されているこ
とが一般的であるので、必ずしも連続領域にデータが格
納されている必要はない。First, the operation in the case of executing by the former method will be described. In FIG. 15 and FIG. 16, data to be written is stored in a logically continuous area as an L × n two-dimensional array. Since an instruction for performing a list access is generally prepared, data need not always be stored in a continuous area.
【0175】この例では、二次元配列の先頭アドレスを
スカラレジスタSR3に設定し、ロードすべきデータ数
L×nをベクトル長指定レジスタ236に設定し、連続
アクセスを行うことを示すアクセスステップ数1をスカ
ラレジスタSR2に設定し、ベクトルレジスタVR1に
対するベクトルロード命令(VLD SR3 SR2V
R2)を実行すると、ベクトルレジスタVR2に送信パ
ケットデータがnパケット分ロードされる。In this example, the start address of the two-dimensional array is set in the scalar register SR3, the number L × n of data to be loaded is set in the vector length designation register 236, and the number of access steps indicating that continuous access is to be performed is 1 Is set in the scalar register SR2, and the vector load instruction (VLD SR3 SR2V
When R2) is executed, transmission packet data for n packets is loaded into the vector register VR2.
【0176】ここで、好ましくは、パケット生成用情報
を第一のベクトルレジスタに格納し、ローカルメモリか
らのロードデータまたはベクトル演算器からの出力とし
て得られる書き込みデータを第二のベクトルレジスタに
格納し、対応するパケット生成用情報と書き込みデータ
を組み合わせて、遠隔メモリアクセス制御装置自身がフ
ェッチしたベクトル命令によって遠隔メモリ書き込みパ
ケットを生成するようにしても良い。書き込みデータを
ベクトルレジスタ上におくので、ベクトル演算器からの
結果がベクトルレジスタに保持される。それをベクトル
遠隔メモリ書き込み命令のソースオペランドとして指定
した場合、メモリを経由することなくパケット生成部に
おいて、別のベクトルレジスタにローカルメモリからロ
ードされるパケット生成用情報と組み合わされて遠隔メ
モリ書き込みパケットが次々と生成される。Preferably, the information for packet generation is stored in the first vector register, and the load data from the local memory or the write data obtained as an output from the vector operation unit is stored in the second vector register. Alternatively, the remote memory access control device itself may generate a remote memory write packet by a vector instruction fetched by combining the corresponding packet generation information and write data. Since the write data is stored in the vector register, the result from the vector calculator is held in the vector register. If it is specified as the source operand of the vector remote memory write instruction, the packet generation unit combines the packet generation information loaded from the local memory into another vector register without passing through the memory to generate the remote memory write packet. Generated one after another.
【0177】また、好ましくは、パケットが運ぶべきデ
ータ語数(バースト長)を指定可能なベクトル命令を具
備させ、1つ以上の語数の連続データの読み書きを1つ
のパケットで行う遠隔メモリバーストアクセスパケット
を生成するようにしても良い。バースト長の指定は例え
ば汎用のスカラレジスタであっても良いし、専用のレジ
スタを設けても良く、ここに値を設定した状態でベクト
ル遠隔メモリバーストアクセス命令を起動する。する
と、パケット生成部は、該レジスタで指定される語数の
読み書きを行う遠隔メモリバーストアクセスパケットを
生成する。このようにして、遠隔メモリアドレスなどか
らなる1つのパケットヘッダーに対して、バースト長で
指定されるブロック状のデータが運ばれることになるの
で、常に1語ずつ遠隔メモリアクセスを行うより、結合
網やメモリバンド幅が有効に活用されることになる。Preferably, the remote memory burst access packet includes a vector instruction capable of designating the number of data words (burst length) to be carried by the packet, and reads and writes continuous data of one or more words in one packet. It may be generated. The burst length can be specified by, for example, a general-purpose scalar register or a dedicated register, and the vector remote memory burst access instruction is started with the value set therein. Then, the packet generation unit generates a remote memory burst access packet for reading and writing the number of words specified by the register. In this way, block-like data specified by the burst length is carried for one packet header including a remote memory address, etc., so that remote memory access is always performed one word at a time. And the memory bandwidth is effectively used.
【0178】本実施例では、ベクトルレジスタ234上
のパケット生成用情報を用いて遠隔アクセス要求パケッ
トを生成するベクトル命令VSENDWとVSENDR
をコプロセッサ21は具備し、VSENDWは、ベクト
ルレジスタ234上のパケット生成用情報と送信データ
から遠隔書き込み要求パケットを生成する。In this embodiment, the vector instructions VSENDW and VSENDR for generating a remote access request packet using the packet generation information on the vector register 234
The VSENDW generates a remote write request packet from the packet generation information on the vector register 234 and the transmission data.
【0179】とりわけ、本実施例の命令VSENDW
は、スカラレジスタ235上に設定されたバースト長L
を用いてベクトルレジスタ234上の連続したL語のデ
ータに一つのヘッダーを付け遠隔メモリバースト書き込
みを要求するパケットを生成する。In particular, the instruction VSENDW of the present embodiment
Is the burst length L set on the scalar register 235
To generate a packet requesting a remote memory burst write by attaching one header to the continuous L word data on the vector register 234.
【0180】VSENDWとVSENDRの違いは、パ
ケット生成用情報がVSENDWは1語からなる遠隔書
き込みに用いられ、ベクトルレジスタ234上の書き込
みデータをL語添えて送信パケットとするのに対し、V
SENDRはパケット生成用情報がパケットあたり2語
からなり、データ部は無く、読み出し結果格納アドレス
を必要とする遠隔読み出し要求のために用いられる点が
異なる。The difference between VSENDW and VSENDR is that the packet generation information VSENDW is used for remote writing consisting of one word, whereas the write data on the vector register 234 is appended with L words to form a transmission packet.
The SENDR is different in that the information for packet generation is composed of two words per packet, has no data part, and is used for a remote read request requiring a read result storage address.
【0181】ベクトルレジスタVR1とVR2にそれぞ
れパケット生成用情報と送信データがロードされ、VS
ENDW命令を用いて遠隔書き込みを行う場合は、スカ
ラレジスタSR4にバースト長Lを設定し、ベクトル長
指定レジスタ236にパケット数nを設定して、ベクト
ル送信命令(VSENDW SR4 VR1 VR2)
を実行すると、n個の遠隔バースト書き込み要求パケッ
トが生成される。The packet generation information and the transmission data are loaded into the vector registers VR1 and VR2, respectively.
When remote writing is performed using the ENDW instruction, the burst length L is set in the scalar register SR4, the number of packets n is set in the vector length designation register 236, and the vector transmission instruction (VSENDW SR4 VR1 VR2)
To generate n remote burst write request packets.
【0182】以上の動作をタイムチャートで示すと、実
施例1のパイプライン動作時のタイムチャートである図
4と同様になる。ここでは、配列のアドレス発生に1ク
ロック、ランダムメモリアクセスの遅延が2クロック、
以降連続アクセス時のメモリ読み出し転送レートが1ワ
ードあたり1クロック、ヘッダー部1ワードでデータ部
1ワードのパケット生成に2クロックかかるものとして
図示している。The above operation is shown in a time chart, which is similar to FIG. 4 which is a time chart at the time of the pipeline operation of the first embodiment. Here, one clock is used to generate the address of the array, the delay of random memory access is two clocks,
Hereinafter, it is assumed that the memory read transfer rate during continuous access is one clock per word, and two clocks are required to generate a packet of one word in the header part and one word in the data part.
【0183】このように送信データをローカルメモリか
らロードする使用方法ではベクトルプロセッサと遠隔メ
モリアクセス制御装置を一体化した効果は、パケット生
成用情報バッファや送信パケットデータ部バッファの機
能をベクトルレジスタに兼用させてハードウェアを有効
活用している点にある。As described above, in the method of loading the transmission data from the local memory, the effect of integrating the vector processor and the remote memory access control device is that the functions of the packet generation information buffer and the transmission packet data buffer are shared by the vector register. The point is that the hardware is used effectively.
【0184】一方、ベクトルプロセッサによる演算結果
を送信データとして直接用いることが可能な場合に限
り、ベクトルレジスタ234上の演算結果を用いるもの
は、実施例1と異なり、通信性能のボトルネックとなっ
ていたメモリアクセスの回数が大幅に減少するので、よ
り高速な通信が可能となる。On the other hand, as long as the operation result of the vector processor can be directly used as the transmission data, the one using the operation result on the vector register 234 is a bottleneck of the communication performance unlike the first embodiment. Since the number of times of memory access is greatly reduced, higher-speed communication becomes possible.
【0185】図17は、ベクトルプロセッサによる演算
結果を送信データとして直接用いる遠隔メモリ書き込み
の送信側動作を示す図である。ここでは、配列のアドレ
ス発生に1クロック、ランダムメモリアクセスの遅延が
2クロック、以降連続アクセス時のメモリ読み出し転送
レートが1ワードあたり1クロック、ヘッダー部1ワー
ドでデータ部1ワードのパケット生成に2クロックかか
るものとして図示している。FIG. 17 is a diagram showing the transmitting-side operation of remote memory writing using the operation result by the vector processor directly as transmission data. Here, one clock is used for generating the address of the array, the delay for random memory access is two clocks, the memory read transfer rate for continuous access is one clock per word, and two packets are used for generating one word header part and one word data part. It is shown as a clock.
【0186】ヘッダーのためのメモリアクセスに先立ち
または並行してベクトル演算器からの結果データがベク
トルレジスタに書き込まれるならば、パケット生成は第
5サイクルから開始でき、図4の場合と比べて丸々送信
データのロードにかかっていた期間だけ速い時刻からパ
ケット生成が開始され、この例の場合は17サイクルか
かっていた処理が12サイクルで完了している。If the result data from the vector operation unit is written to the vector register before or in parallel with the memory access for the header, the packet generation can be started from the fifth cycle, and the packet transmission can be performed as compared with the case of FIG. Packet generation starts at a time earlier than the time required for data loading, and in this example, processing that took 17 cycles has been completed in 12 cycles.
【0187】また、実施例1と異なり、本実施例の場合
はパケット生成情報のロードとパケット生成は別の命令
で構成されるために、パケット生成情報のロードを先行
して発行させることによって容易にプリロードを実現で
き、外部バス24が空いているならばベクトル演算器が
送信用データを計算しているうちにパケット生成情報の
ロードを済ませることも可能で、その場合はベクトル演
算器からの結果が出ると即座にパケット生成が開始さ
れ、さらなる高速化ができることがある。Also, unlike the first embodiment, in this embodiment, the loading of the packet generation information and the packet generation are composed of different instructions. If the external bus 24 is free, it is possible to finish loading the packet generation information while the vector computing unit is calculating the data for transmission. In that case, the result from the vector computing unit As soon as the message appears, packet generation is started immediately, which may further increase the speed.
【0188】ここで、好ましくは、受信した遠隔書き込
み要求に対する処理の完了の回数を計数するカウンタを
設けても良い。遠隔ノードから書き込まれる回数が、書
き込まれる側のプログラムでわかっているような処理を
行う場合は、遠隔書き込みに対する応答パケットを返送
することなしに、受信側でカウントされる上記カウンタ
の値を受信側でチェックし、所定の回数の書き込みパケ
ットの処理が完了したことを確認してから全体でバリア
同期をとることによって、遠隔書き込みパケットを送信
した側に速やかに書き込みの完了が伝わるので高速であ
り、プロセッサ間結合網に対する負担も軽くなる。Here, preferably, a counter for counting the number of times of completion of the processing for the received remote write request may be provided. When performing a process whose number of times of writing from the remote node is known by the program to be written, the value of the counter counted by the receiving side is returned to the receiving side without returning a response packet to the remote writing. Checking that the processing of the write packet of a predetermined number of times is completed, and then performing barrier synchronization as a whole, so that the completion of the write is immediately transmitted to the side that transmitted the remote write packet, so that the speed is high. The burden on the inter-processor connection network is also reduced.
【0189】なお、送信パケットのヘッダーは、実施例
1と同様であり、図5、図6および図7のようになって
いる。また、パケット生成時や受信時の動作も、応答待
ち読み出し要求数カウンタ214や応答待ち書き込み要
求数カウンタ215の動作や、受信書き込み処理完了回
数カウンタ216の動作も、実施例1と同様である。The header of the transmission packet is the same as in the first embodiment, and is as shown in FIGS. 5, 6, and 7. Also, the operations at the time of packet generation and reception, the operations of the response waiting read request number counter 214 and the response waiting write request number counter 215, and the operation of the reception write processing completion number counter 216 are the same as those of the first embodiment.
【0190】(変形例2)次に、実施例2の変形例を説
明する。変形例2では、実施例2の遠隔メモリアクセス
制御装置において、ローカルメモリに格納され、ベクト
ルレジスタにロードされるパケット生成用情報として、
メモリアドレスの他に、パケットが運ぶべきデータ語数
(バースト長)を用意し、1つ以上のパケット毎に異な
る語数の読み書きを行う遠隔メモリバーストアクセスパ
ケットを生成する。(Modification 2) Next, a modification of the second embodiment will be described. In the second modification, in the remote memory access control device of the second embodiment, the packet generation information stored in the local memory and loaded into the vector register includes:
In addition to the memory address, the number of data words (burst length) to be carried by the packet is prepared, and a remote memory burst access packet that reads and writes a different number of words for each one or more packets is generated.
【0191】パケット生成部は200、遠隔メモリアク
セスパケットを生成する際に、パケット生成用情報中の
データ語数(バースト長)を参照しつつ、読みだしなら
ば、バースト長をヘッダーに含む遠隔メモリ読みだし要
求パケットを生成し、書き込みならば、ベクトルレジス
タ上のデータを元に、バースト長の分だけ、データ部に
含む遠隔メモリ書き込みパケットを生成する。バースト
長は、パケット毎にパケット生成用情報に含まれるの
で、アクセス先によって異なるバースト長でアクセスす
ることが可能となる。When generating a remote memory access packet, the packet generation unit 200 refers to the number of data words (burst length) in the packet generation information and reads the remote memory access packet including the burst length in the header if reading is performed. However, if a request packet is generated and is to be written, a remote memory write packet included in the data portion is generated for the burst length based on the data in the vector register. Since the burst length is included in the packet generation information for each packet, it is possible to access with a different burst length depending on the access destination.
【0192】メッセージ毎に指定できるバースト長を持
つパケット生成用情報に対応する配列は、例えば図14
に示したものを用いることができる。図15および図1
6のコプロセッサ32におけるバースト長を指定するス
カラレジスタ235上の値は全てのパケット生成に際し
て用いられていたが、パケット生成を行う場合は、図1
1、図12、図13のパケットヘッダー内のバースト長
には図14のパケット生成用情報の中にある個別のバー
スト長が用いられる。An array corresponding to packet generation information having a burst length that can be specified for each message is shown in FIG.
Can be used. FIG. 15 and FIG.
The value on the scalar register 235 for specifying the burst length in the coprocessor 32 of No. 6 has been used for generating all packets.
The individual burst length in the packet generation information of FIG. 14 is used as the burst length in the packet header of FIGS. 1, 12, and 13.
【0193】例えば、図14のパケット生成用情報の中
の先頭の要素に対応するパケットは、物理PE番号36
を持つPEに対するデータ2語を書き込むまたは読み出
すパケットを生成し、2番目の要素に対応するパケット
は物理PE番号37を持つPEに対するデータ3語を書
き込むまたは読み出すパケットを生成する。For example, the packet corresponding to the first element in the packet generation information of FIG.
A packet corresponding to the second element is written or read, and a packet corresponding to the second element generates a packet writing or reading three data words for the PE having the physical PE number 37.
【0194】図7の形式のパケット生成情報が用いられ
るのか図14の形式のパケット生成情報が用いられるの
かは、遠隔アクセスの起動をかけるためのアドレスを別
のアドレスにマッピングさせておくことなどによって区
別できる。また、本発明は上述した各実施例に限定され
るものではなく、その要旨を逸脱しない範囲で、種々変
形して実施することができる。Whether the packet generation information in the format of FIG. 7 is used or the packet generation information in the format of FIG. 14 is determined by mapping an address for starting remote access to another address. Can be distinguished. Further, the present invention is not limited to the above-described embodiments, and can be implemented with various modifications without departing from the scope of the invention.
【0195】[0195]
【発明の効果】本発明によれば、予めローカルメモリに
パケット生成に必要な情報を格納しておき、プロセッサ
からの1つの要求に応答して、上記情報を元に複数の遠
隔メモリアクセスパケットを生成するようにしたので、
大域的多重仮想記憶を実現しつつ、プロセッサからの遠
隔メモリアドレス発生によるキャッシュのミスヒット増
加やTLBのミスヒットに起因する割り込み発生を排除
できるとともに、間欠的にしか発生させることができな
かった遠隔メモリアクセスパケットを連続的に発生させ
ることができる。According to the present invention, information necessary for packet generation is stored in the local memory in advance, and a plurality of remote memory access packets are stored based on the information in response to one request from the processor. Since it is generated,
While realizing global multiple virtual storage, it is possible to eliminate an increase in cache misses due to a remote memory address generation from a processor and an interrupt generation due to a TLB mishit, and to provide a remote memory which can only be generated intermittently. Memory access packets can be generated continuously.
【0196】また、プロセッサは、従来のように遠隔メ
モリアクセスの処理のために忙殺されることなく、当該
遠隔メモリアクセス制御装置を起動した後は、別の処理
を行うことが可能となる。Further, the processor can perform another process after starting up the remote memory access control device without being busy with the remote memory access process as in the related art.
【0197】また、複数のパケットに対するメモリアク
セスを一度にまとめて行うことができるので、バースト
メモリアクセスが促進され、実効メモリバンド幅が向上
し、高速な遠隔メモリアクセスが実現される。とりわ
け、パケット生成用情報を配列とした場合は、少ないハ
ードウェアで高速なメモリアクセスが実現される。Further, since memory access to a plurality of packets can be performed at once, burst memory access is promoted, effective memory bandwidth is improved, and high-speed remote memory access is realized. In particular, when the packet generation information is arranged, high-speed memory access can be realized with a small amount of hardware.
【0198】また、ベクトルプロセッサと遠隔メモリア
クセス装置を融合させた場合は、遠隔メモリ書き込み処
理におけるメモリアクセス回数を減少させることがで
き、より高速な遠隔メモリ書き込みが実現される。When the vector processor and the remote memory access device are integrated, the number of times of memory access in the remote memory writing process can be reduced, and higher-speed remote memory writing can be realized.
【0199】また、本発明によれば、処理し終わった遠
隔書き込み要求を計数するカウンタを受信側に設けるの
で、受信側での書き込み回数が静的にわかる処理の場合
は、書き込みの完了を速やかに知ることが可能となり、
応答パケットにより結合網が混雑してしまうという弊害
が排除される。Further, according to the present invention, a counter for counting the completed remote write requests is provided on the receiving side. Therefore, in the case of processing in which the number of writes on the receiving side can be statically determined, the completion of the writing is promptly completed. It is possible to know
The adverse effect that the connection network is congested by the response packet is eliminated.
【図1】本発明の第1の実施例に係る遠隔メモリアクセ
ス制御装置を具備した並列計算機の要素プロセッサの構
成を示す図FIG. 1 is a diagram illustrating a configuration of an element processor of a parallel computer including a remote memory access control device according to a first embodiment of the present invention;
【図2】同要素プロセッサの構成を示す図FIG. 2 is a diagram showing a configuration of the element processor.
【図3】パケット送信時のパイプライン動作例を示す図FIG. 3 is a diagram showing an example of a pipeline operation at the time of transmitting a packet;
【図4】パケット送信時の他のパイプライン動作例を示
す図FIG. 4 is a diagram showing another example of pipeline operation at the time of packet transmission.
【図5】遠隔読み出し要求パケットの一例を示す図FIG. 5 is a diagram showing an example of a remote read request packet;
【図6】アクノリッジ付きの遠隔書き込み要求パケット
ヘッダーの一例を示す図FIG. 6 is a diagram showing an example of a remote write request packet header with an acknowledgment;
【図7】アクノリッジなしの遠隔書き込み要求パケット
ヘッダーの一例を示す図FIG. 7 is a diagram showing an example of a remote write request packet header without acknowledgment;
【図8】二次元メッシュ結合型並列計算機におけるマッ
ピング状況の一例を示する図FIG. 8 is a diagram showing an example of a mapping situation in a two-dimensional mesh-connected parallel computer.
【図9】論理的なPE群について説明するための図FIG. 9 is a diagram for explaining a logical PE group;
【図10】アドレス変換の様子を示す図FIG. 10 is a diagram showing a state of address conversion.
【図11】通信パターンの一例を示す図FIG. 11 illustrates an example of a communication pattern.
【図12】アドレス変換前の書き込み先ポインタの配列
の一例を示す図FIG. 12 is a diagram showing an example of an array of write destination pointers before address conversion.
【図13】アドレス変換後の書き込み先ポインタの配列
の一例を示す図FIG. 13 is a diagram showing an example of an array of write destination pointers after address conversion.
【図14】メッセージ毎に指定できるバースト長を具備
したパケット生成用情報に対応する配列の一例を示す図FIG. 14 is a diagram showing an example of an array corresponding to packet generation information having a burst length that can be specified for each message;
【図15】本発明の第2の実施例に係るコプロセッサを
具備する並列計算機の要素プロセッサの構成を示す図FIG. 15 is a diagram illustrating a configuration of an element processor of a parallel computer including a coprocessor according to a second embodiment of the present invention.
【図16】同要素プロセッサの構成を示す図FIG. 16 is a diagram showing a configuration of the same element processor.
【図17】ベクトルプロセッサによる演算結果を送信デ
ータとして直接用いる遠隔メモリ書き込みの送信側動作
を示す図FIG. 17 is a diagram illustrating a transmitting-side operation of remote memory writing that directly uses an operation result by a vector processor as transmission data.
1…遠隔メモリアクセス制御装置、2…マイクロプロセ
ッサ、3…ローカルメモリ、4…外部バス、31…キャ
ッシュメモリ、32…TLB、33…CPU、100…
パケット生成部、101…バスインタフェース部、10
2…メモリアドレス生成部、103…制御装置内TL
B、104…パケット生成用情報ポインタ指定レジス
タ、105…パケット数指定レジスタ、106…パケッ
トデータ部ポインタ指定レジスタ、107…バースト長
指定レジスタ、108…プロセスID指定レジスタ、1
09…パケット生成用情報バッファ、110…送信パケ
ットデータ部バッファ、111…送信パケットバッフ
ァ、112…受信パケットバッファ、113…パケット
受信部、114…応答待ち読み出し要求数カウンタ、1
15…応答待ち書き込み要求数カウンタ、116…受信
書き込み処理完了回数カウンタ、117…プロセッサ間
結合網インタフェース部、121…返信パケットバッフ
ァ、122…ステータスレジスタ、21…コプロセッ
サ、22…メインプロセッサ、23…ローカルメモリ、
24…外部バス、25…ベクトルプロセッサ、41…キ
ャッシュメモリ、42…TLB、43…CPU、200
…パケット生成部、201…バスインタフェース部、2
02…メモリアドレス生成部、203…コプロセッサ内
TLB、208…プロセスID指定レジスタ、211…
送信パケットバッファ、212…受信パケットバッフ
ァ、213…パケット受信部、214…応答待ち読み出
し要求カウンタ、215…応答待ち書き込み要求カウン
タ、216…受信書き込み処理完了回数カウンタ、21
7…プロセッサ間結合網インタフェース部、221…返
信パケットデータ部バッファ、222…ステータスレジ
スタ、232…ベクトル演算パイプライン、233…ロ
ードストアパイプライン、234…ベクトルレジスタ、
235…スカラレジスタ、236…ベクトル長指定レジ
スタ、241…命令バッファ、242…命令制御部、2
43…ベクトルプロセッサ内結合網DESCRIPTION OF SYMBOLS 1 ... Remote memory access control device, 2 ... Microprocessor, 3 ... Local memory, 4 ... External bus, 31 ... Cache memory, 32 ... TLB, 33 ... CPU, 100 ...
Packet generator 101, bus interface 10
2. Memory address generation unit 103: TL in control device
B, 104: packet generation information pointer designation register, 105: packet number designation register, 106: packet data part pointer designation register, 107: burst length designation register, 108: process ID designation register, 1
09: packet generation information buffer 110: transmission packet data buffer 111: transmission packet buffer 112: reception packet buffer 113: packet reception unit 114: response waiting read request number counter 1,
15: Response waiting write request number counter, 116: Receive / write processing completion number counter, 117: Inter-processor connection network interface unit, 121: Return packet buffer, 122: Status register, 21: Coprocessor, 22: Main processor, 23 ... Local memory,
24 external bus, 25 vector processor, 41 cache memory, 42 TLB, 43 CPU, 200
... Packet generation unit, 201 ... Bus interface unit, 2
02: memory address generation unit, 203: TLB in coprocessor, 208: process ID designation register, 211 ...
Transmission packet buffer, 212: reception packet buffer, 213: packet reception unit, 214: response wait read request counter, 215: response wait write request counter, 216 ... reception write processing completion number counter, 21
7: Inter-processor connection network interface unit, 221: Return packet data unit buffer, 222: Status register, 232: Vector operation pipeline, 233: Load store pipeline, 234: Vector register
235: scalar register, 236: vector length designation register, 241: instruction buffer, 242: instruction control unit, 2
43 ... connection network in vector processor
Claims (15)
され論理的に該複数のプロセッサから共有メモリとして
アクセス可能な分散共有メモリとを具備する並列計算機
において対応するプロセッサの該分散共有メモリに対す
る遠隔メモリアクセスを制御する遠隔メモリアクセス制
御装置であって、 パケット生成用情報のアドレスを指定するポインタ指定
手段と、 生成するパケットの個数を指定するパケット数指定手段
と、 前記対応するプロセッサからの遠隔メモリアクセス要求
を検出するアクセス要求検出手段と、 前記遠隔メモリアクセス要求が検出された場合、前記ポ
インタ指定手段により指示される前記アドレスを元にし
て、前記対応するプロセッサのローカルメモリから所定
のフォーマットのパケット生成用情報を読み出すローカ
ルメモリアクセス手段と、 読み出された前記パケット生成用情報に基づいて、前記
パケット数指定手段により指示されるパケット数分、前
記分散共有メモリに対して遠隔メモリアクセスするパケ
ットを生成するパケット生成手段とを備えたことを特徴
とする遠隔メモリアクセス制御装置。1. A parallel processor comprising a plurality of processors and a distributed shared memory physically mounted in a distributed manner and logically accessible as a shared memory from the plurality of processors. A remote memory access control device for controlling remote memory access, comprising: a pointer designating unit for designating an address of packet generation information; a packet number designating unit for designating the number of packets to be generated; Access request detecting means for detecting a memory access request; and, when the remote memory access request is detected, a predetermined format of a predetermined format from a local memory of the corresponding processor based on the address indicated by the pointer designating means. Local to read packet generation information Memory access means; and packet generation means for generating packets for remote memory access to the distributed shared memory by the number of packets specified by the packet number designation means based on the read packet generation information. A remote memory access control device comprising:
ット生成用情報の格納フォーマットを配列とすることを
特徴とする請求項1に記載の遠隔メモリアクセス制御装
置。2. The remote memory access control device according to claim 1, wherein a storage format of the packet generation information stored in the local memory is arranged.
る第1のバッファ手段と、書き込みデータを一時的に格
納する第2のバッファ手段とをさらに備え、 前記ローカルメモリアクセス手段は、前記遠隔メモリア
クセス要求が遠隔メモリ書き込み要求である場合、前記
ローカルメモリから前記第1及び第2のバッファ手段に
情報を取り込むものであるとともに、 前記パケット生成手段は、前記遠隔メモリアクセス要求
が遠隔メモリ書き込み要求である場合、対応する前記パ
ケット生成用情報と前記書き込みデータとの組がそろっ
たものから、該組の内容に基づいて遠隔メモリ書き込み
パケットを生成するものであって、 前記ローカルメモリアクセス手段と前記パケット生成手
段とを、パイプライン的に同時動作させるようにしたこ
とを特徴とする請求項1に記載の遠隔メモリアクセス制
御装置。3. The apparatus according to claim 2, further comprising: first buffer means for temporarily storing the packet generation information; and second buffer means for temporarily storing write data. When the memory access request is a remote memory write request, the information is fetched from the local memory into the first and second buffer means, and the packet generation means determines that the remote memory access request is a remote memory write request. When a set of the corresponding packet generation information and the write data is completed, a remote memory write packet is generated based on the contents of the set, and the local memory access unit and the The packet generation unit is operated simultaneously in a pipeline manner. Remote memory access control apparatus according to claim 1.
アクセスが高速なローカルメモリをアクセスするもので
あり、前記パケット生成用情報および前記書き込みデー
タを前記ローカルメモリから連続アクセスによって各々
複数パケット分、前記第1および第2のバッファ手段に
取り込むようにしたことを特徴とする請求項3に記載の
遠隔メモリアクセス制御装置。4. The local memory access means accesses a local memory having a high speed of continuous access, and stores the packet generation information and the write data for a plurality of packets by the continuous access from the local memory. 4. The remote memory access control device according to claim 3, wherein the data is taken into the first and second buffer means.
を指定するバースト長指定手段をさらに具備し、 該バースト長指定手段により指定される語数の読み書き
を行う遠隔メモリバーストアクセスパケットを生成する
ようにしたことを特徴とする請求項1に記載の遠隔メモ
リアクセス制御装置。5. A remote memory burst access packet for reading and writing the number of words specified by the burst length designating means, further comprising burst length designating means for designating the number of data words of information to be carried by the packet. The remote memory access control device according to claim 1, wherein:
レスの他に当該パケットが運ぶべき情報のデータ語数を
持たせ、各パケット毎に所望の語数の連続データの読み
書きを行う遠隔メモリバーストアクセスパケットを生成
するようにしたことを特徴とする請求項1に記載の遠隔
メモリアクセス制御装置。6. A remote memory burst access packet for reading and writing continuous data having a desired number of words for each packet, wherein the information for packet generation has the number of data words of information to be carried by the packet in addition to the memory address. 2. The remote memory access control device according to claim 1, wherein the remote memory access control device generates
でのプログラムからは特権モードに移行することなく直
接制御することが不可能なプロテクション情報付加機構
を設けるとともに、 他のプロセッサからの遠隔メモリアクセスパケットを受
信した場合に、該パケット中のプロテクション情報に基
づいてメモリアクセスの許可不許可を制御するメモリア
クセス保護機構を備えたことを特徴とする請求項1に記
載の遠隔メモリアクセス制御装置。7. The packet generating means includes a protection information adding mechanism that cannot be directly controlled from a program in a non-privileged mode without shifting to a privileged mode, and a remote memory from another processor. 2. The remote memory access control device according to claim 1, further comprising a memory access protection mechanism for controlling permission / rejection of memory access based on protection information in the access packet when the access packet is received.
して実装され論理的に該複数のベクトルプロセッサから
共有メモリとしてアクセス可能な分散共有メモリとを具
備する並列計算機においてベクトルプロセッサの該分散
共有メモリに対する遠隔メモリアクセスを制御する遠隔
メモリアクセス制御装置であって、 ベクトルプロセッサがフェッチしたベクトル命令により
パケット生成が起動され、ベクトルプロセッサのベクト
ルロード手段によりローカルメモリからベクトルレジス
タにロードされたパケット生成用情報に基づいて、ベク
トル長指定手段により指示されるパケット数分、前記分
散共有メモリに対して遠隔メモリアクセスするパケット
を生成するパケット生成手段を備えたことを特徴とする
遠隔メモリアクセス制御装置。8. A distributed shared memory of a vector processor in a parallel computer comprising: a plurality of vector processors; a distributed shared memory mounted physically and logically accessible as a shared memory from the plurality of vector processors. A remote memory access control device for controlling remote memory access to a packet processor, wherein packet generation is started by a vector instruction fetched by a vector processor, and packet generation information loaded from a local memory to a vector register by a vector load means of the vector processor. A remote memory access control apparatus, comprising: packet generating means for generating packets for remote memory access to the distributed shared memory for the number of packets specified by the vector length specifying means based on the packet length.
タの少なくとも1つに格納するとともに、前記ローカル
メモリからロードした書き込みデータまたはベクトル演
算器からの出力として得られる書き込みデータを前記ベ
クトルレジスタの他のベクトルレジスタに格納し、 対応するパケット生成用情報と書き込みデータを組み合
わせて、前記フェッチしたベクトル命令によって遠隔メ
モリ書き込みパケットを生成することを特徴とする請求
項8に記載の遠隔メモリアクセス制御装置。9. A method for storing packet generation information in at least one of said vector registers, and writing write data loaded from said local memory or write data obtained as an output from a vector operation unit to another vector of said vector register. 9. The remote memory access control device according to claim 8, wherein a remote memory write packet is generated by the fetched vector instruction by combining the corresponding packet generation information and write data stored in a register.
ケット生成用情報の格納フォーマットを配列とすること
を特徴とする請求項8に記載の遠隔メモリアクセス制御
装置。10. The remote memory access control device according to claim 8, wherein a storage format of said packet generation information stored in said local memory is arranged.
数を指定できるベクトル命令を設け、 所定の語数の連続データの読み書きを1つのパケットで
行う遠隔メモリバーストアクセスパケットを生成するこ
とを特徴とする請求項8に記載の遠隔メモリアクセス制
御装置。11. A remote memory burst access packet in which a vector instruction capable of specifying the number of data words of information to be carried by the packet is provided, and a predetermined number of words of continuous data are read and written in one packet. Item 9. A remote memory access control device according to item 8.
ドレスの他に当該パケットが運ぶべき情報のデータ語数
を持たせ、各パケット毎に所望の語数の連続データの読
み書きを行う遠隔メモリバーストアクセスパケットを生
成するようにしたことを特徴とする請求項8に記載の遠
隔メモリアクセス制御装置。12. A remote memory burst access packet for reading and writing a desired number of words of continuous data for each packet, wherein the packet generation information has the number of data words of information to be carried by the packet in addition to the memory address. 10. The remote memory access control device according to claim 8, wherein the remote memory access control device is configured to generate
ドでのプログラムからは特権モードに移行することなく
直接制御することが不可能なプロテクション情報付加機
構を設けるとともに、 他のプロセッサからの遠隔メモリアクセスパケットを受
信した場合に、該パケット中のプロテクション情報に基
づいてメモリアクセスの許可不許可を制御するメモリア
クセス保護機構を備えたことを特徴とする請求項8に記
載の遠隔メモリアクセス制御装置。13. The packet generating means is provided with a protection information adding mechanism that cannot be directly controlled from a program in a non-privileged mode without shifting to a privileged mode, and a remote memory from another processor. 9. The remote memory access control device according to claim 8, further comprising a memory access protection mechanism for controlling permission / rejection of memory access based on protection information in the access packet when the access packet is received.
信側でシステムコールによって変換をかけた変換後アド
レスを前記ローカルメモリに準備し、実際の遠隔メモリ
アクセスの際には、前記変換後アドレスを再利用するこ
とを特徴とする請求項7または13に記載の遠隔メモリ
アクセス制御装置。14. A translated address prepared by a system call on the transmission side as an address for designating a remote memory is prepared in the local memory, and the translated address is reused in actual remote memory access. 14. The remote memory access control device according to claim 7, wherein the control is performed.
装され論理的に該複数のプロセッサから共有メモリとし
てアクセス可能な分散共有メモリとを具備する並列計算
機において対応するプロセッサの該分散共有メモリに対
する遠隔メモリアクセスを制御する遠隔メモリアクセス
制御装置であって、 前記対応するプロセッサからの遠隔書き込み要求を検出
するアクセス要求検出手段と、 前記遠隔書き込み要求に応答して、対応するパケットを
生成し、所定のプロセッサに向けて送信する手段と、 前記対応するプロセッサ以外のプロセッサから前記遠隔
書き込み要求に対応するパケットを受信する手段と、 前記遠隔書き込み要求に対応するパケットの内容に応じ
て、対応するローカルメモリにデータ書き込み処理を行
なう手段と、 前記遠隔書き込み要求に対応するパケットに対する前記
処理の完了の回数を計数するカウンタ手段とを備えたこ
とを特徴とする遠隔メモリアクセス制御装置。15. A parallel processor comprising a plurality of processors and a distributed shared memory physically mounted in a distributed manner and logically accessible from the plurality of processors as a shared memory. A remote memory access control device for controlling remote memory access, comprising: access request detection means for detecting a remote write request from the corresponding processor; and generating a corresponding packet in response to the remote write request; Means for transmitting to a processor of the same; means for receiving a packet corresponding to the remote write request from a processor other than the corresponding processor; and a corresponding local memory according to the contents of the packet corresponding to the remote write request. Means for writing data to the Remote memory access control apparatus characterized by comprising a counter means for counting the number of times of completion of the processing for the packet corresponding to the request write attempts.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7045779A JP2736237B2 (en) | 1995-03-06 | 1995-03-06 | Remote memory access controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7045779A JP2736237B2 (en) | 1995-03-06 | 1995-03-06 | Remote memory access controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08241293A JPH08241293A (en) | 1996-09-17 |
JP2736237B2 true JP2736237B2 (en) | 1998-04-02 |
Family
ID=12728785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7045779A Expired - Lifetime JP2736237B2 (en) | 1995-03-06 | 1995-03-06 | Remote memory access controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2736237B2 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6502866B1 (en) | 1999-05-26 | 2003-01-07 | Osaka Gas Co., Ltd. | One-touch joint for flexible tube |
US7328232B1 (en) * | 2000-10-18 | 2008-02-05 | Beptech Inc. | Distributed multiprocessing system |
JP3800037B2 (en) | 2001-06-06 | 2006-07-19 | 日本電気株式会社 | Interprocessor communication system and interprocessor communication method used therefor |
JP3594082B2 (en) | 2001-08-07 | 2004-11-24 | 日本電気株式会社 | Data transfer method between virtual addresses |
US8108908B2 (en) * | 2008-10-22 | 2012-01-31 | International Business Machines Corporation | Security methodology to prevent user from compromising throughput in a highly threaded network on a chip processor |
US9632973B2 (en) | 2014-09-02 | 2017-04-25 | Intel Corporation | Supporting RMA API over active message |
JP2019041176A (en) * | 2017-08-23 | 2019-03-14 | 株式会社ソフトクリエイト | Unauthorized connection blocking device and unauthorized connection blocking method |
-
1995
- 1995-03-06 JP JP7045779A patent/JP2736237B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH08241293A (en) | 1996-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5047917A (en) | Apparatus for intrasystem communications within a binary n-cube including buffer lock bit | |
JP3003418B2 (en) | Data communication method between processors | |
US5864738A (en) | Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller | |
US6029212A (en) | Method of handling arbitrary size message queues in which a message is written into an aligned block of external registers within a plurality of external registers | |
JP4755390B2 (en) | Method and apparatus for controlling the flow of data between data processing systems via a memory | |
US5212778A (en) | Message-driven processor in a concurrent computer | |
US5790804A (en) | Computer network interface and network protocol with direct deposit messaging | |
US5123094A (en) | Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers | |
JP4755391B2 (en) | Method and apparatus for controlling the flow of data between data processing systems via a memory | |
US20080109570A1 (en) | System and method for remote direct memory access without page locking by the operating system | |
US6895457B2 (en) | Bus interface with a first-in-first-out memory | |
KR100640515B1 (en) | Method and Apparatus for transferring interrupts from a peripheral device to a host computer system | |
JPH06309252A (en) | Interconnection interface | |
JPH04308956A (en) | Receiving buffer | |
JP2002149424A (en) | A plurality of logical interfaces to shared coprocessor resource | |
JP2010165022A (en) | Inter-processor communication device, inter-processor communication method, program, and recording medium | |
JPH0944424A (en) | Message transmission method between remote information-processing systems | |
JP4130465B2 (en) | Technology for executing atomic processing on processors with different memory transfer processing sizes | |
US20080109604A1 (en) | Systems and methods for remote direct memory access to processor caches for RDMA reads and writes | |
JP2736237B2 (en) | Remote memory access controller | |
US6738837B1 (en) | Digital system with split transaction memory access | |
Dally | The J-machine system | |
US7130936B1 (en) | System, methods, and computer program product for shared memory queue | |
US20070079077A1 (en) | System, method, and computer program product for shared memory queue | |
JPH04291660A (en) | Inter-processor communication method and its parallel processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090109 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090109 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100109 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100109 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110109 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120109 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130109 Year of fee payment: 15 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140109 Year of fee payment: 16 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |