JPH0830567A - Mutual access method between processors of parallel computer - Google Patents
Mutual access method between processors of parallel computerInfo
- Publication number
- JPH0830567A JPH0830567A JP6185408A JP18540894A JPH0830567A JP H0830567 A JPH0830567 A JP H0830567A JP 6185408 A JP6185408 A JP 6185408A JP 18540894 A JP18540894 A JP 18540894A JP H0830567 A JPH0830567 A JP H0830567A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- area
- identifier
- processors
- shared area
- 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.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 複数の並列プログラムが動作する並列計算機
の各プロセッサのプロセスが、他プロセッサ上のプロセ
スの仮想空間を相互にアクセス可能にする。
【構成】 並列計算機は、並列プログラムが動作中であ
る各プロセスの持つ全ての共有領域に共通な識別子とし
て並列プログラムの識別子を割当て、各プロセッサは共
有領域識別子に対応して自プロセッサ内の各プロセスの
共有領域の情報を保持する領域指定テーブル106、2
06を備え、要求側プロセッサ101は、識別子を領域
指定レジスタ104に、相手先プロセッサ番号をPE番
号レジスタにセットし、アクセスを行うデータの仮想ア
ドレスを指定し、識別子と相手先プロセッサ番号と仮想
アドレスをTLBで変換した実アドレスのオフセットを
返答側プロセッサ201に送出し、返答側は、領域指定
テーブルの内容と識別子に基づきオフセットを自己のプ
ロセッサ内での対応する実アドレスに変換する。
(57) [Summary] (Modified) [Purpose] To enable the processes of each processor of a parallel computer on which multiple parallel programs operate to mutually access the virtual space of processes on other processors. [Configuration] A parallel computer assigns an identifier of a parallel program as a common identifier to all shared areas of each process in which the parallel program is operating, and each processor processes each process in its own processor in correspondence with the shared area identifier. Area designation tables 106 and 2 for holding information of shared areas of
06, the requesting processor 101 sets the identifier in the area designation register 104 and the partner processor number in the PE number register, specifies the virtual address of the data to be accessed, and specifies the identifier, the partner processor number and the virtual address. Is transmitted to the reply side processor 201 by the TLB, and the reply side converts the offset into the corresponding real address in its own processor based on the contents and the identifier of the area designation table.
Description
【0001】[0001]
【産業上の利用分野】本発明は並列計算機におけるプロ
セッサ間での相互アクセス方法に係り、特に複数の並列
プログラムが動作する並列計算機において各プロセッサ
上で動作するプロセスが他プロセッサ上で動作するプロ
セスの仮想空間にアクセス可能にするプロセッサ間相互
アクセス方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a mutual access method between processors in a parallel computer, and more particularly, in a parallel computer in which a plurality of parallel programs operate, a process operating on each processor is a process operating on another processor. The present invention relates to a mutual access method between processors that enables access to a virtual space.
【0002】[0002]
【従来の技術】複数のプロセッサを結合し並列処理を行
う並列計算機は、プロセッサ台数に応じた計算の高速化
を図ることが可能であるため重要な技術となっている。
プロセッサ台数が比較的少ない場合(〜数十台程度)に
は、共有メモリ型並列計算機が実用化されている。これ
に対しプロセッサ台数が多い場合(数百台〜)には、共
有メモリに対するアクセスの集中を避けるため、分散メ
モリ型並列計算機が開発されている。2. Description of the Related Art A parallel computer in which a plurality of processors are connected to perform parallel processing is an important technique because it can increase the speed of calculation according to the number of processors.
When the number of processors is relatively small (up to several tens), a shared memory parallel computer has been put into practical use. On the other hand, when the number of processors is large (several hundreds or more), a distributed memory parallel computer has been developed in order to avoid concentration of access to the shared memory.
【0003】従来、分散メモリ型並列計算機において他
プロセッサ上のメモリのデータが必要な場合、相手先プ
ロセッサから自プロセッサ上のメモリに対してデータの
ブロック転送を行うメッセージパッシング方式が使用さ
れている。これに対して、共有メモリ型並列計算機の使
いやすさを分散メモリ型並列計算機で実現するために、
他プロセッサ上のメモリに対して直接アクセス可能であ
る分散共有メモリ型並列計算機の研究が盛んに行われて
いる。分散共有メモリ型並列計算機では、並列計算機内
の全メモリをアクセス可能とするために、グローバルア
ドレス空間を実現する必要がある。Conventionally, in a distributed memory type parallel computer, when data in a memory on another processor is required, a message passing method has been used in which a partner processor transfers a block of data to a memory on its own processor. On the other hand, in order to realize the ease of use of the shared memory parallel computer with the distributed memory parallel computer,
A research on a distributed shared memory type parallel computer which can directly access a memory on another processor has been actively conducted. In a distributed shared memory type parallel computer, it is necessary to realize a global address space in order to make all the memories in the parallel computer accessible.
【0004】従来、ローカルメモリを持ち、独立に動作
可能な複数のプロセッサから構成されるクラスタを複数
用いて構成され、他クラスタの他プロセッサの仮想空間
を互いにアクセス可能な並列計算機においては、アドレ
ス変換方式として論理プロセッサ番号、論理ページ番号
およびページ内オフセットを指定してアクセスを行う方
式を採用していた。例えば、特開平5−89056およ
び特開平5−181751において論じられている方式
がこれに相当する。並列計算機がマルチプロセス環境を
実現する場合、複数のクラスタにまたがって複数の並列
プログラムが動作し、各プロセッサは複数のプロセスを
実行する必要があり、従来技術においてはあるプロセス
が他プロセッサに対してアクセスを行う時に、相手先の
プロセスを指定する方法がないため、全プロセッサ上で
同一のプロセスを動作させ、プロセス切替時には全プロ
セッサが同じ並列プログラムを構成するプロセスにプロ
セス切替を行うギャングスケジューリングと呼ばれるプ
ロセス切替方式を採用している。Conventionally, in a parallel computer configured by using a plurality of clusters each having a local memory and capable of operating independently, the virtual space of another processor can access the virtual space of another processor. As a method, a method has been adopted in which access is performed by designating a logical processor number, a logical page number and an offset within a page. For example, the system discussed in JP-A-5-89056 and JP-A-5-181751 corresponds to this. When a parallel computer realizes a multi-process environment, a plurality of parallel programs operate across a plurality of clusters, and each processor needs to execute a plurality of processes. Since there is no way to specify the destination process when accessing, it is called gang scheduling in which the same process runs on all processors and all processes switch processes to processes that make up the same parallel program when switching processes. Uses a process switching method.
【0005】[0005]
【発明が解決しようとする課題】上記従来技術おいて
は、ギャングスケジューリングではプロセス切替時に全
プロセッサに対してプロセス切替要求を送信し、全プロ
セッサが発行したアクセスが全て完了したことを確認し
た後、全プロセッサに対してプロセス切替命令を送信す
る必要があり、プロセス切替時に大きなオーバヘッドが
生じる。また、各プロセッサで異なるプロセスを実行す
ることができないため、並列プログラムを構成するプロ
セスの一部が実行中断状態にあっても、これらのプロセ
スのみをプロセス切替することはできない。本発明の目
的は、複数の並列プログラムが動作する並列計算機にお
いて並列プログラムの各プロセッサ担当部分であるプロ
セスが、各プロセッサで自由にタスクスイッチを行って
もプロセスの仮想空間を相互にアクセス可能である方法
を提供することである。In the above prior art, in gang scheduling, a process switching request is sent to all processors at the time of process switching, and after confirming that all accesses issued by all processors have been completed, Since it is necessary to send a process switching instruction to all processors, a large overhead occurs when switching processes. Further, since different processes cannot be executed by each processor, even if some of the processes that make up the parallel program are in the execution suspended state, it is not possible to switch only these processes. It is an object of the present invention that, in a parallel computer in which a plurality of parallel programs operate, a process which is in charge of each processor of the parallel program can mutually access the virtual space of the process even if task switching is freely performed in each processor. Is to provide a method.
【0006】[0006]
【課題を解決するための手段】上記目的を達成するた
め、本発明は、1台以上のプロセッサと該1台以上のプ
ロセッサにより使用される主記憶装置からなる複数のク
ラスタと、該複数のクラスタを接続するネットワークを
具備し、それぞれのプロセッサにおいて仮想空間が割り
当てられた少なくとも1つのプロセスが動作し、システ
ム内の1以上のクラスタ上の前記各プロセッサ上で動作
する複数の前記プロセスの集合により構成される並列プ
ログラムが少なくとも1つ動作する並列計算機におい
て、前記クラスタ内の各プロセッサで動作中の並列プロ
グラムのプロセッサ担当部分である前記プロセスが、他
クラスタ内のプロセッサ上で同一並列プログラムを構成
するプロセスの仮想空間上の共有領域に対応する実メモ
リ領域をアクセス可能にするプロセッサ間相互アクセス
方法であって、前記並列計算機は、並列プログラムが動
作中である各プロセスの持つ全ての共有領域に共通な識
別子として並列プログラムの識別子を割当て、各プロセ
ッサは前記共有領域識別子に対応して自プロセッサ内の
各プロセスの共有領域の情報を保持する領域指定テーブ
ルを備え、要求側プロセッサは前記共有領域識別子と、
アクセスを行う共有領域を保持する相手先プロセッサ番
号と、アクセスを行うデータの仮想アドレスを指定し、
該識別子と該相手先プロセッサ番号と該仮想アドレスを
変換して得られた実アドレスのオフセットを返答側プロ
セッサに送出してアクセスを行い、返答側プロセッサ
は、前記領域指定テーブルの内容と前記共有領域識別子
に基づき前記オフセットを自己のプロセッサ内での対応
する実アドレスに変換するようにしている。また、前記
並列計算機は、並列プログラムが動作中である各プロセ
スの共有領域全体に対応して1つの共有領域識別子を割
当てるようにしている。また、要求側プロセッサは前記
共有領域識別子と、アクセスを行うデータの仮想アドレ
スとしてアクセスを行う共有領域を保持する相手先プロ
セッサ番号を含む仮想アドレスを指定し、該識別子と、
該相手先プロセッサ番号を含む仮想アドレスを変換して
得られた相手先プロセッサ番号と実アドレスのオフセッ
トとを返答側プロセッサに送出してアクセスを行うよう
にしている。また、共有領域を実メモリ上で連続に確保
し、前記領域指定テーブルの各エントリは共有領域識別
子と共有領域に対応する実メモリ領域のベースアドレス
とサイズを有し、ネットワークインターフェイス回路
は、前記要求側プロセッサからの共有領域識別子により
前記領域指定テーブルをアクセスし、得られたエントリ
の前記ベースアドレスに前記要求側プロセッサからのオ
フセットを加算することにより実アドレスを求めるよう
にしている。また、前記領域指定テーブルをクラスタ毎
に設け、共有領域を実メモリ上で連続に確保し、該領域
指定テーブルの各エントリはクラスタ内プロセッサ番号
と共有領域識別子と共有領域に対応する実メモリ領域の
ベースアドレスとサイズを有し、ネットワークインター
フェイス回路は、前記要求側プロセッサからのプロセッ
サ番号と共有領域識別子により前記領域指定テーブルを
アクセスし、得られたエントリの前記ベースアドレスに
前記要求側プロセッサからのオフセットを加算すること
により実アドレスを求めるようにしている。また、前記
要求側プロセッサが送出する相手先プロセッサ番号を論
理プロセッサ番号とし、共有領域を実メモリ上で連続に
確保し、前記領域指定テーブルの各エントリは共有領域
識別子と論理プロセッサ番号と共有領域に対応する実メ
モリ領域のベースアドレスとサイズを有し、返答側プロ
セッサは、前記要求側プロセッサからの共有領域識別子
と論理プロセッサ番号により前記領域指定テーブルをア
クセスし、得られたエントリの前記ベースアドレスに前
記要求側プロセッサからのオフセットを加算することに
より実アドレスを求めるようにしている。また、前記領
域指定テーブルの各エントリは、さらに、共有領域識別
子に対応してアクセスの発行時にインクリメントされ、
アクセスの完了時にデクリメントされるカウント値を有
するようにしている。前記領域指定テーブルの各エント
リは、さらに、共有領域識別子に対応して領域有効フラ
グ、読み出しフラグ、書き込みフラグを有するようにし
ている。また、前記要求側プロセッサが指定する相手先
プロセッサ番号を論理プロセッサ番号とし、相手先プロ
セッサ番号を論理プロセッサ番号から物理プロセッサ番
号に変換するプロセッサ番号変換手段を設け、該手段に
より論理プロセッサ番号を物理プロセッサ番号に変換し
て返答側プロセッサに送出するようにしている。また、
前記領域指定テーブルを主記憶装置上に配置し、領域指
定テーブルキャッシュを設け、該領域指定テーブルキャ
ッシュに前記領域指定テーブルのエントリをキャッシン
グするようにしている。To achieve the above object, the present invention provides a plurality of clusters each including one or more processors and a main memory used by the one or more processors, and the plurality of clusters. And a network for connecting at least one process to which virtual space is allocated in each processor and configured by a set of a plurality of processes operating on each processor on one or more clusters in the system. In a parallel computer in which at least one parallel program operates, the process, which is a processor responsible portion of the parallel program operating in each processor in the cluster, configures the same parallel program on a processor in another cluster. Can access the real memory area corresponding to the shared area in the virtual space In the method of mutual access between processors, the parallel computer assigns an identifier of the parallel program as an identifier common to all shared areas of each process in which the parallel program is operating, and each processor assigns the shared area identifier to the shared area identifier. Correspondingly, an area designation table for holding information on the shared area of each process in the own processor is provided, and the requesting processor has the shared area identifier,
Specify the destination processor number that holds the shared area to be accessed and the virtual address of the data to be accessed,
The identifier of the destination, the processor number of the other party, and the offset of the real address obtained by converting the virtual address are sent to the responding processor for access, and the responding processor accesses the contents of the area designation table and the shared area. Based on the identifier, the offset is converted into a corresponding real address in its own processor. Further, the parallel computer allocates one shared area identifier corresponding to the entire shared area of each process in which the parallel program is operating. Further, the requesting processor specifies the shared area identifier and a virtual address including a partner processor number holding a shared area to be accessed as a virtual address of data to be accessed, and the identifier,
The destination processor number obtained by converting the virtual address including the destination processor number and the offset of the real address are sent to the responding processor for access. Further, the shared area is continuously secured on the real memory, each entry of the area designation table has a shared area identifier and a base address and size of the real memory area corresponding to the shared area, and the network interface circuit The area specification table is accessed by the shared area identifier from the side processor, and the real address is obtained by adding the offset from the requesting processor to the base address of the obtained entry. Further, the area designation table is provided for each cluster, and the shared area is continuously secured on the real memory. Each entry of the area designation table is a processor number in the cluster, a shared area identifier, and a real memory area corresponding to the shared area. The network interface circuit has a base address and a size, and the network interface circuit accesses the area designation table by the processor number and the shared area identifier from the requesting processor, and the base address of the obtained entry is offset from the requesting processor. The real address is obtained by adding. Also, the destination processor number sent by the requesting processor is used as a logical processor number, the shared area is continuously secured in the real memory, and each entry of the area designation table is a shared area identifier, a logical processor number, and a shared area. Having the base address and size of the corresponding real memory area, the responding processor accesses the area designation table with the shared area identifier and logical processor number from the requesting processor, and uses the base address of the obtained entry The actual address is obtained by adding the offset from the requesting processor. Further, each entry of the area designation table is further incremented at the time of issuing an access in correspondence with the shared area identifier,
The count value is decremented when the access is completed. Each entry of the area designation table further has an area valid flag, a read flag, and a write flag corresponding to the shared area identifier. Further, a processor number conversion means for converting the partner processor number designated by the requesting processor into a logical processor number and converting the partner processor number from the logical processor number to the physical processor number is provided, and the logical processor number is converted by the means. It is converted to a number and sent to the responding processor. Also,
The area designation table is arranged in the main storage device, an area designation table cache is provided, and entries of the area designation table are cached in the area designation table cache.
【0007】[0007]
【作用】本発明は、並列プログラムを構成する各プロセ
ッサ上のプロセスの共有領域を共通の識別子で表し、他
プロセッサの共有領域アクセス時に自プロセスの共有領
域の識別子を付加する。そのため、他プロセッサ上でど
のプロセスが動作しているかによらず自プロセスに対応
する他プロセッサの共有領域をアクセスすることができ
る。According to the present invention, the shared area of the processes on each processor forming the parallel program is represented by a common identifier, and the shared area identifier of the own process is added when the shared area of another processor is accessed. Therefore, regardless of which process is running on the other processor, the shared area of the other processor corresponding to the own process can be accessed.
【0008】[0008]
【実施例】 〈実施例1〉以下に、本発明の第1の実施例について説
明する。図1は、本発明に係る並列計算機を示す。本実
施例では複数のクラスタ100、200がネットワーク
300により結合されている。図1において、101、
201はプロセッサであり、従来技術によるマイクロプ
ロセッサと同様の構成であってよい。図1では簡単のた
めにプロセッサはクラスタあたり1つとしているが、各
クラスタ100、200は1つ以上のプロセッサからな
る密結合マルチプロセッサ構成を取る。各クラスタ10
0、200はプロセッサ部10、20と1つのネットワ
ークインターフェイス回路12、22および主記憶装置
107、207からなる。クラスタ100に複数プロセ
ッサを設けた場合はプロセッサ部10と同様のものが複
数接続される。クラスタ200に複数プロセッサを設け
た場合もプロセッサ部20と同様のものが複数接続され
る。EXAMPLES Example 1 Hereinafter, a first example of the present invention will be described. FIG. 1 shows a parallel computer according to the present invention. In this embodiment, a plurality of clusters 100 and 200 are connected by a network 300. In FIG. 1, 101,
Reference numeral 201 denotes a processor, which may have the same configuration as a conventional microprocessor. In FIG. 1, one processor is provided for each cluster for simplification, but each cluster 100, 200 has a tightly coupled multiprocessor configuration including one or more processors. Each cluster 10
Reference numerals 0 and 200 include processor units 10 and 20, one network interface circuit 12 and 22, and main storage devices 107 and 207. When the cluster 100 is provided with a plurality of processors, a plurality of processors similar to the processor unit 10 are connected. Even when the cluster 200 is provided with a plurality of processors, a plurality of processors similar to the processor unit 20 are connected.
【0009】主記憶装置107、207は、従来技術を
用いてアドレス線、データ線を使ってアクセスする。主
記憶装置には、例えば32ビットプロセッサでは0x0
0000000から0x7FFFFFFF(0xは16
進数であることを示す記号である)の範囲が実装されて
おり、最上位ビットが1であるアドレス空間には自プロ
セッサ内には対応する実メモリを持たないことにしてい
る。300は複数のクラスタ100、200を接続する
ネットワークであり、あるプロセッサから送信先プロセ
ッサアドレスを指定すると、ネットワークインターフェ
イス回路により制御され、そのアドレスに対応する相手
先プロセッサにデータ等を送信する。111、211
は、他プロセッサに対するメモリアクセス要求を送信す
る要求メッセージ送信回路、112、212は、他プロ
セッサからのメモリアクセス要求を受信する要求メッセ
ージ受信回路、113、213は、他プロセッサからの
メモリアクセス要求を要求メッセージ受信回路112、
212より得て主記憶装置107、207に対してアク
セスを行いメモリアクセスに対する返答メッセージを送
信する返答メッセージ送信回路、114、214は、自
プロセッサからのアクセス要求に対する相手先プロセッ
サからの返答メッセージを受信しプロセッサに対してア
クセスを返す返答メッセージ受信回路であり、それぞれ
ネットワークインターフェイス回路12、22内に存在
する。The main storage devices 107 and 207 are accessed by using the address line and the data line by using the conventional technique. For the main memory, for example, 0x0 for a 32-bit processor
0000000 to 0x7FFFFFFF (0x is 16
Range is implemented, and the address space in which the most significant bit is 1 has no corresponding real memory in its own processor. A network 300 connects a plurality of clusters 100 and 200, and when a destination processor address is designated by a certain processor, it is controlled by a network interface circuit and transmits data or the like to a partner processor corresponding to the address. 111, 211
Is a request message transmitting circuit for transmitting a memory access request to another processor, 112 and 212 are request message receiving circuits for receiving a memory access request from another processor, and 113 and 213 are requesting a memory access request from another processor. The message receiving circuit 112,
Response message transmission circuits 114, 214 for obtaining access from the main memory devices 107, 207 and transmitting a response message for the memory access by receiving the response message from the partner processor for the access request from the own processor. It is a reply message receiving circuit for returning access to the processor, and exists in the network interface circuits 12 and 22, respectively.
【0010】本実施例では、複数のクラスタ100、2
00上の複数のプロセッサ(101、201等)にまた
がって実行される並列プログラムは、各プロセッサ上で
動作するプロセスにより構成され、各プロセスはプロセ
スの共有領域に対応して主記憶装置107、207上に
実メモリ領域を持ち、共有領域の識別子としては並列プ
ログラムの識別子を並列プログラムを構成する全プロセ
スに共通の識別子として与える。各プロセッサ101、
201は、プロセッサで実行する全プロセスに対応する
共有領域の識別子をテーブルエントリとする領域指定テ
ーブル106、206を持つ。また、領域指定レジスタ
104、204は、現在実行中のプロセスの並列プログ
ラムの識別子を保持する。In this embodiment, a plurality of clusters 100, 2
A parallel program executed over a plurality of processors (101, 201, etc.) on 00 is composed of processes operating on each processor, and each process corresponds to a shared area of the process and main storage devices 107, 207. It has a real memory area on top, and the identifier of the parallel program is given as an identifier of the shared area as an identifier common to all processes constituting the parallel program. Each processor 101,
201 has area designation tables 106 and 206 having table entries which are identifiers of shared areas corresponding to all processes executed by the processor. Further, the area designation registers 104 and 204 hold the identifiers of the parallel programs of the processes currently being executed.
【0011】本実施例では、共有領域を実アドレス空間
で連続な領域として確保して、同一の並列プログラムを
構成する各プロセスに共通な並列プログラムの識別子を
共有領域の識別子として与え、共有領域を領域のベース
アドレスとサイズによって管理することによりページ単
位の管理を避けること、そして、他プロセスの共有領域
へのアクセス時に、プロセッサ番号(PE番号)とオフ
セットからなるアドレスにおけるオフセットをTLBに
よりアドレス変換し、この変換したオフセットのアドレ
スの他にアクセス側のプロセスの共有領域の識別子を付
加して、これをアクセスされる側である上記PE番号の
プロセッサの存在するクラスタに送出し、該クラスタは
これにより一意に定まる共有領域をアクセスすることに
より、アクセスされる側で動作中のプロセスに関わりな
く対応するプロセスの共有領域をアクセスできることに
特徴がある。In this embodiment, the shared area is secured as a continuous area in the real address space, and the identifier of the parallel program common to each process forming the same parallel program is given as the shared area identifier. Avoid management in page units by managing by the base address and size of the area, and when accessing the shared area of other process, the offset in the address consisting of the processor number (PE number) and the offset is translated by TLB. , The address of the shared area of the process on the access side is added to the address of the converted offset, and this is sent to the cluster on which the processor of the PE number, which is the access side, is present. Access is made by accessing the shared area that is uniquely determined. Is characterized in that access a shared area of a process corresponding irrespective processes running that side.
【0012】各プロセスの仮想空間の構造を図2に示
す。図では、プロセッサ(PE)101上にプロセス
A、プロセスB、プロセスCが存在している。各プロセ
スは、プロセッサ101上のプロセスからのみアクセス
される仮想プライベート領域(仮想P領域)403、4
13、423と、共有領域のうち実体がプロセッサ10
1にあり、プロセッサ101および他プロセッサ上のプ
ロセスからアクセスされる仮想ローカル領域(仮想L領
域)402、412、422と、プロセッサ101から
他プロセッサ上の仮想ローカル領域をアクセスするため
のウィンドウである仮想グローバル領域(仮想G領域)
401、411、421からなる。ここで、プロセスA
の各領域401、402、403に付された“0”は領
域識別子であり、領域識別子としては並列プログラム番
号が用いられ、ここでは並列プログラム番号は“0”で
ある。また、プロセスBの各領域411、412、41
3の領域識別子は並列プログラム番号の“1”であり、
プロセスCの各領域421、422、423の領域識別
子は並列プログラム番号の“2”である。The structure of the virtual space of each process is shown in FIG. In the figure, process A, process B, and process C exist on the processor (PE) 101. Each process is a virtual private area (virtual P area) 403, 4 that is accessed only by the process on the processor 101.
13, 423, and the entity of the shared area is the processor 10
1 and virtual local areas (virtual L areas) 402, 412, 422 accessed by processes on the processor 101 and other processors, and virtual windows which are windows for accessing the virtual local areas on other processors from the processor 101. Global area (virtual G area)
It consists of 401, 411 and 421. Where process A
“0” attached to each of the areas 401, 402, and 403 is an area identifier, and a parallel program number is used as the area identifier. Here, the parallel program number is “0”. In addition, each area 411, 412, 41 of the process B
The area identifier of 3 is the parallel program number “1”,
The area identifier of each area 421, 422, 423 of the process C is the parallel program number “2”.
【0013】仮想プライベート領域403、413、4
23は、プロセッサ101内のTLBによるアドレス変
換によってページ単位でプロセッサ101内の主記憶装
置107上の任意の実プライベート領域(実P領域)4
32、434、436、438へと変換される。このと
き、TLBの出力であるアドレスは最上位ビットが0と
なっており、アドレス判定回路102がこれを判定し、
アドレスは主記憶装置107に送出される。これによ
り、各プロセスから仮想プライベート領域403、41
3、423をアクセスすると対応する実プライベート領
域内のアドレスが参照される。Virtual private areas 403, 413, 4
Reference numeral 23 denotes an arbitrary real private area (real P area) 4 on the main memory 107 in the processor 101 in page units by address translation by the TLB in the processor 101.
32, 434, 436, 438. At this time, the most significant bit of the address output from the TLB is 0, and the address determination circuit 102 determines this,
The address is sent to the main storage device 107. As a result, the virtual private areas 403, 41
When accessing 3, 423, the address in the corresponding real private area is referred to.
【0014】仮想ローカル領域402、412、422
は、プロセッサ101内のTLBによるアドレス変換に
よってプロセッサ101内の主記憶装置107上でそれ
ぞれ連続な実ローカル領域(実L領域)433、43
5、437へと変換される。このとき、TLBの出力で
あるアドレスは最上位ビットが0となっており、アドレ
ス判定回路102がこれを判定し、アドレスは主記憶装
置107に送出される。これにより各プロセスから仮想
ローカル領域402、412、422をアクセスすると
対応する実ローカル領域433、435、437内のア
ドレスが参照される。Virtual local areas 402, 412, 422
Is a continuous real local area (real L area) 433, 43 on the main memory 107 in the processor 101 due to the address translation by the TLB in the processor 101.
5, 437. At this time, the most significant bit of the address output from the TLB is 0, the address determination circuit 102 determines this, and the address is sent to the main storage device 107. As a result, when each process accesses the virtual local area 402, 412, 422, the address in the corresponding real local area 433, 435, 437 is referred to.
【0015】仮想グローバル領域401、411、42
1は、プロセッサ101内のTLBによるアドレス変換
によって全て一つの連続な実グローバル領域(実G領
域)431へと変換される。変換の結果得られた実グロ
ーバル領域は、実アドレスの最上位ビットが1である領
域であり、主記憶装置107上には対応する領域を持た
ず、アドレス判定回路102がこれを判定し、変換出力
のアドレスを要求メッセージ送信回路111に送出す
る。Virtual global areas 401, 411, 42
All 1's are converted into one continuous real global area (real G area) 431 by address conversion by the TLB in the processor 101. The real global area obtained as a result of the conversion is an area in which the most significant bit of the real address is 1, and there is no corresponding area in the main storage device 107, and the address judgment circuit 102 judges this and the conversion is performed. The output address is sent to the request message sending circuit 111.
【0016】他プロセッサ201上では、実ローカル領
域445、447、443は任意のアドレスから始まる
連続領域であり、プロセッサ101上の対応する領域と
同じアドレスである必要はない。実ローカル領域445
の領域識別子は並列プログラム番号の“0”であり、実
ローカル領域447の領域識別子は並列プログラム番号
の“1”であり、実ローカル領域443の領域識別子は
並列プログラム番号の“2”である。On the other processor 201, the real local areas 445, 447, 443 are continuous areas starting from arbitrary addresses, and do not have to have the same addresses as the corresponding areas on the processor 101. Real local area 445
The area identifier of is the parallel program number "0", the area identifier of the real local area 447 is the parallel program number "1", and the area identifier of the real local area 443 is the parallel program number "2".
【0017】上記の各実ローカル領域に関する情報(領
域ベースアドレス、領域サイズ等)は図1の領域指定テ
ーブル106あるいは領域指定テーブル206に登録さ
れる。領域指定テーブル106、206の内容は図3に
示したように、領域識別子、領域有効フラグ、領域ベー
スアドレス、領域サイズ、アクセスカウンタ、読み出し
フラグ、書き込みフラグによりなる。領域識別子は、並
列プログラムを構成する各プロセスに対して与えられた
共通の識別子であり、並列プログラムの番号により指定
される。領域有効フラグは、各実ローカル領域の有効ま
たは無効を示すフラグであり、他プロセッサ101より
無効な実ローカル領域がアクセスされるとエラー判定回
路205がそれを判定し、そしてプロセッサ201に対
して割込をかける。領域ベースアドレスは実アドレス空
間上での各領域の先頭アドレスを示し、領域サイズは各
領域のバイト数を示す。Information (region base address, region size, etc.) on each of the above real local regions is registered in the region designation table 106 or the region designation table 206 of FIG. As shown in FIG. 3, the contents of the area designation tables 106 and 206 include an area identifier, an area valid flag, an area base address, an area size, an access counter, a read flag, and a write flag. The area identifier is a common identifier given to each process forming the parallel program, and is designated by the number of the parallel program. The area valid flag is a flag that indicates whether each real local area is valid or invalid, and when the invalid real local area is accessed by the other processor 101, the error determination circuit 205 determines that and accesses the processor 201. Add complexity. The area base address indicates the start address of each area in the real address space, and the area size indicates the number of bytes in each area.
【0018】アクセスカウンタは、他プロセッサ上の共
有領域へのアクセスの完了を、各共有領域毎に保証する
ために存在する。アクセスカウンタは、共有領域の作成
時に0にセットされる。プロセッサ101で他クラスタ
上のプロセッサ201に対するアクセスが発行される
と、アクセス発行時の領域指定レジスタ104の保持す
る値と同じ領域識別子を持つエントリを領域指定テーブ
ル106から検索し、このエントリのアクセスカウンタ
をインクリメントする。他クラスタ上のプロセッサ20
1に対して発行したアクセスが返答メッセージ受信回路
114に戻ると、メッセージ内の領域識別子に対応する
領域指定テーブル106のエントリのアクセスカウンタ
をデクリメントする。これにより、他クラスタ上のプロ
セッサの共有領域に対してアクセスを発行すると領域指
定テーブル106内の対応する領域のアクセスカウンタ
がインクリメントされ、発行したアクセスが戻ると領域
指定テーブル106内の対応する領域のアクセスカウン
タがデクリメントされる。このため、アクセスカウンタ
は他クラスタ上の共有領域に対して発行した全アクセス
の中で、完了していないアクセスの数を表す。並列プロ
グラムで同期を行なう場合、同期以前の全アクセスの完
了を保証する。この時、アクセスカウンタが0となるま
で待つことにより、同期以前の全アクセスの完了を保証
することができる。The access counter exists to guarantee the completion of access to the shared area on another processor for each shared area. The access counter is set to 0 when the shared area is created. When the processor 101 issues an access to the processor 201 on another cluster, the area designation table 106 is searched for an entry having the same area identifier as the value held in the area designation register 104 when the access is issued, and the access counter of this entry is searched. Is incremented. Processor 20 on another cluster
When the access issued to 1 returns to the reply message receiving circuit 114, the access counter of the entry of the area designation table 106 corresponding to the area identifier in the message is decremented. Thus, when an access is issued to a shared area of a processor on another cluster, the access counter of the corresponding area in the area designation table 106 is incremented, and when the issued access returns, the access counter of the corresponding area in the area designation table 106 is returned. The access counter is decremented. Therefore, the access counter represents the number of incomplete accesses among all the accesses issued to the shared area on the other cluster. When performing synchronization with a parallel program, guarantee the completion of all access before synchronization. At this time, by waiting until the access counter reaches 0, it is possible to guarantee the completion of all accesses before the synchronization.
【0019】読み出しフラグは、他プロセッサからの共
有領域への読み出しアクセスの許可または不許可を指定
するフラグ、書き込みフラグは、他プロセッサからの共
有領域への書き込みアクセスの許可または不許可を指定
するフラグである。並列プログラムの中には、他プロセ
ッサの共有領域の読み出しは許可するが、他プロセッサ
の共有領域への書き込みは行なわないものがある。この
ような並列プログラムの実行時には、書き込みフラグで
他プロセッサの共有領域への書き込みアクセスを不許可
にすることで、誤った書き込みが発生するのを防ぐ。ま
た、並列プログラムの実行中に排他処理を行なう場合、
他プロセッサからの共有領域への読み出しおよび書き込
みを一時的に禁止する。これは、読み出しフラグ、書き
込みフラグを不許可状態にすることにより実現できる。The read flag is a flag for designating permission or non-permission of read access to the shared area from another processor, and the write flag is a flag for designating permission or non-permission of write access to the shared area from another processor. Is. Some parallel programs allow reading of the shared area of other processors, but do not write to the shared area of other processors. When such a parallel program is executed, erroneous writing is prevented by disabling write access to the shared area of another processor with the write flag. Also, when performing exclusive processing during execution of a parallel program,
Temporarily prohibit reading and writing to the shared area from other processors. This can be realized by setting the read flag and the write flag in the non-permission state.
【0020】プロセッサ101上のプロセスから他プロ
セッサ201上のプロセスのローカル領域をアクセスす
る場合、プロセッサ101上のグローバル領域が使用さ
れる。本実施例では、プロセッサ101上でプロセスA
が実行中である場合について説明する。 (ステップ1)プロセスA(領域識別子は並列プログラ
ム番号0である)が同一並列プログラムの他プロセッサ
201上のプロセスD(領域識別子は並列プログラム番
号0である)のローカル領域462をアクセスする時、
領域指定レジスタ104に並列プログラム番号0を領域
識別子として設定し、PE番号レジスタ103にアドレ
スの内のプロセッサ201のプロセッサ番号を設定し
て、仮想グローバル領域401に対してアクセスを行
う。アクセスの種類は、読み出し要求又は書き込み要求
であり、プロセッサの制御線により判定される。 (ステップ2)仮想グローバル領域401に対するアク
セスは、アドレスの内のオフセットをプロセッサ101
内のTLBによって実グローバル領域431へとアドレ
ス変換し、プロセッサのアドレス線120aに出力され
る。 (ステップ3)アドレス判定回路102は、アドレスの
最上位ビットが1であることにより実グローバル領域4
31へのアクセスと判定し、最上位ビットを0にセット
することにより相手先プロセッサ201の実ローカル領
域でのオフセットを求め、これを信号線170oを通し
て要求メッセージ回路111へ転送する。また、領域指
定レジスタの値に対応する領域指定テーブル106のア
クセスカウンタの値をインクリメントする。When accessing a local area of a process on another processor 201 from a process on the processor 101, a global area on the processor 101 is used. In this embodiment, the process A is executed on the processor 101.
The case where is being executed will be described. (Step 1) When process A (area identifier is parallel program number 0) accesses local area 462 of process D (area identifier is parallel program number 0) on another processor 201 of the same parallel program,
The parallel program number 0 is set in the area designation register 104 as the area identifier, the processor number of the processor 201 in the address is set in the PE number register 103, and the virtual global area 401 is accessed. The type of access is a read request or a write request and is determined by the control line of the processor. (Step 2) To access the virtual global area 401, the offset within the address is set to the processor 101.
The address is converted to the real global area 431 by the TLB in the inside and is output to the address line 120a of the processor. (Step 3) The address determination circuit 102 determines that the real global area 4 is set because the most significant bit of the address is 1.
It is determined that the access is to 31 and the most significant bit is set to 0 to obtain the offset in the real local area of the partner processor 201, and this is transferred to the request message circuit 111 through the signal line 170o. Also, the value of the access counter of the area designation table 106 corresponding to the value of the area designation register is incremented.
【0021】(ステップ4)要求メッセージ送信回路1
11は、領域内のオフセットを受けるとPE番号レジス
タ103の値、領域指定レジスタ104の値を信号線1
50p、160rを通して得る。また、アクセスが書き
込みであった場合には、書き込む値をデータ線132d
を通して得る。 (ステップ5)要求メッセージ送信回路111は、ステ
ップ4で得た情報を元に相手先プロセッサ201に対す
る要求メッセージを生成し、ネットワーク300に送出
する。要求メッセージは、図4に示すように、パケット
ヘッダ、転送データにより構成され、パケットヘッダ
は、受信側プロセッサ番号、送信側プロセッサ番号、転
送データ長、パケット種別、領域識別子、領域オフセッ
トからなる。受信側プロセッサ番号はPE番号レジスタ
103の値、送信側プロセッサ番号は自プロセッサ10
1のプロセッサ番号、転送データ長は転送データのサイ
ズ、パケット種別は要求メッセージの種別であり読み出
し要求又は書き込み要求、領域識別子は領域指定レジス
タの値、領域オフセットはアドレス判定回路102によ
り生成されたオフセットである。(Step 4) Request message transmission circuit 1
11 receives the offset in the area, the value of the PE number register 103 and the value of the area designation register 104 are sent to the signal line 1
Obtain through 50p, 160r. If the access is write, the write value is set to the data line 132d.
Get through. (Step 5) The request message transmission circuit 111 generates a request message for the partner processor 201 based on the information obtained in step 4, and sends it to the network 300. As shown in FIG. 4, the request message is composed of a packet header and transfer data, and the packet header includes a receiving side processor number, a transmitting side processor number, a transfer data length, a packet type, an area identifier, and an area offset. The processor number on the receiving side is the value of the PE number register 103, and the processor number on the transmitting side is the own processor 10.
1 processor number, transfer data length is transfer data size, packet type is request message type and read request or write request, area identifier is value of area designation register, area offset is offset generated by address determination circuit 102. Is.
【0022】(ステップ6)要求メッセージは、プロセ
ッサ200の要求メッセージ受信回路212により受信
される。 (ステップ7)要求メッセージ受信回路212は、要求
メッセージの領域識別子を信号線261rを通じて領域
指定テーブル206に与え、対応する実ローカル領域の
属性を読み出す。この時、実ローカル領域445が領域
指定テーブル206に存在していない、または実ローカ
ル領域445の領域有効フラグが無効を示している場合
はエラーとなり、プロセッサ200に割込をかける。 (ステップ8)要求メッセージの領域識別子に対応する
有効な実ローカル領域445が存在する場合、要求メッ
セージの領域オフセットと領域指定テーブル206の対
応するエントリの領域サイズがエラー判定回路205で
比較され、領域オフセットが領域サイズ以上であるなら
エラーとなり信号線284eを使ってプロセッサ201
に割込をかける。また、読み出し要求アクセスにおいて
対応する有効な実ローカル領域の読み出しフラグが不許
可を示している場合、書き込み要求アクセスにおいて対
応する有効な実ローカル領域の書き込みフラグが不許可
を示している場合はエラーとなりプロセッサ201に割
込をかける。(Step 6) The request message is received by the request message receiving circuit 212 of the processor 200. (Step 7) The request message receiving circuit 212 gives the area identifier of the request message to the area designation table 206 through the signal line 261r, and reads the attribute of the corresponding real local area. At this time, if the real local area 445 does not exist in the area designation table 206 or if the area valid flag of the real local area 445 indicates invalid, an error occurs and the processor 200 is interrupted. (Step 8) When a valid real local area 445 corresponding to the area identifier of the request message exists, the area offset of the request message and the area size of the corresponding entry of the area designation table 206 are compared by the error determination circuit 205, and the area If the offset is equal to or larger than the area size, an error occurs and the processor 201 using the signal line 284e.
Interrupt. Also, if the read flag of the corresponding valid real local area in the read request access indicates disapproval, an error occurs if the write flag of the corresponding valid real local area in the write request access indicates disapproval. Interrupt the processor 201.
【0023】(ステップ9)正常にアクセスが行われた
場合以上のエラーは成立せず、領域指定テーブル206
から領域ベースアドレス280bが読み出され、加算器
208により領域オフセットを加えて対応する実ローカ
ル領域内のデータのアドレス223aが算出され返答メ
ッセージ送信回路213に与えられる。また、要求メッ
セージのヘッダ上の送信側プロセッサ番号、転送データ
長、パケット種別の各情報についても返答メッセージ送
信回路213に与えられる。 (ステップ10)返答メッセージ送信回路213は、ア
ドレス線222a、データ線238dを使って主記憶装
置207をアクセスし、結果を返答メッセージに組立て
ネットワーク300に送信する。 (ステップ11)返答メッセージ受信回路114は、返
答メッセージを受信してプロセッサ100に結果を返
す。以上の操作により、プロセスAの仮想グローバル領
域から他プロセッサ201上の同一並列プログラムを構
成するプロセスDの実ローカル領域445がアクセスで
き、結果としてプロセスDの仮想ローカル領域402を
アクセスしたこととなる。(Step 9) When the access is made normally, the above error is not established and the area designation table 206
The area base address 280b is read from the address area 280b, the area offset is added by the adder 208, and the address 223a of the data in the corresponding real local area is calculated and given to the reply message transmission circuit 213. Further, each information such as the sender processor number, the transfer data length, and the packet type on the header of the request message is also given to the reply message sending circuit 213. (Step 10) The reply message sending circuit 213 accesses the main memory device 207 using the address line 222a and the data line 238d, assembles the result into a reply message, and sends it to the network 300. (Step 11) The reply message receiving circuit 114 receives the reply message and returns the result to the processor 100. Through the above operation, the real local area 445 of the process D forming the same parallel program on the other processor 201 can be accessed from the virtual global area of the process A, and as a result, the virtual local area 402 of the process D is accessed.
【0024】次に、プロセッサ101においてプロセス
Aが実行を中断し、他の並列プログラム番号1のプロセ
スBが実行中となった場合について説明する。プロセス
切替によりプロセスBが実行中となった場合、領域指定
レジスタ104に領域識別子1が書き込まれる。プロセ
スBが実行中に他プロセッサ201に対するアクセスを
行う場合、前述の場合と同様に、PE番号レジスタ10
3にプロセッサ201のプロセッサ番号が書き込まれ仮
想グローバル領域411にアクセスする。そして仮想グ
ローバル領域411は実グローバル領域431に変換さ
れ、要求メッセージ送信回路により他プロセッサ201
へのアクセスが発行される。プロセッサ201では、領
域識別子として1が指定されているので、プロセッサ2
01の実ローカル領域447へのアクセスであると認識
され、アクセスが正しく行われる。このように領域識別
子は、アクセスされるプロセッサで動作中のプロセスに
関係なくアクセスする側のプロセッサによって指定する
ので、各プロセッサが異なる並列プログラムのプロセス
を実行中であっても記憶装置へのアクセスは問題なく動
作する。以上が実施例1である。Next, a case where the process A in the processor 101 suspends execution and the process B of another parallel program number 1 is in execution will be described. When the process B is being executed due to the process switching, the area identifier 1 is written in the area designation register 104. When the process B accesses the other processor 201 during execution, the PE number register 10 is used as in the case described above.
The processor number of the processor 201 is written in 3, and the virtual global area 411 is accessed. Then, the virtual global area 411 is converted into the real global area 431, and the request message transmission circuit causes the other processor 201
Access to is issued. In the processor 201, since 1 is designated as the area identifier, the processor 2
It is recognized that the access is to the real local area 447 of 01, and the access is performed correctly. As described above, since the area identifier is specified by the accessing processor regardless of the process running on the accessed processor, the storage device can be accessed even when each processor is executing a different parallel program process. It works without problems. The above is the first embodiment.
【0025】〈実施例1の変形例〉以上に示した実施例
では、共有領域の識別子として並列プログラムの識別子
を使用したが、共有領域自体に独自の識別子を設け、領
域識別子として、並列プログラムの識別子の識別子に代
えて、これを用いてもよい。この場合、各プロセッサ上
の各プロセスは複数の仮想ローカル領域とこれに対応す
る実ローカル領域を保持することができる。<Modification of First Embodiment> In the embodiments described above, the identifier of the parallel program is used as the identifier of the shared area. However, a unique identifier is provided in the shared area itself, and the parallel program is used as the area identifier. This may be used instead of the identifier of the identifier. In this case, each process on each processor can hold a plurality of virtual local areas and the corresponding real local areas.
【0026】上記のステップ1ではPE番号をPE番号
レジスタ103に書き込むことにより相手先プロセッサ
を指定しているが、アドレス判定回路102へPE番号
とオフセットを与えるようにTLBを構成し、アドレス
判定回路102の出力する領域オフセット線170oの
上位複数ビットにより指定指定するようにしてもよい。
この場合、PE番号レジスタ103は不要となる。この
場合TLBの出力データ幅は大きくなる。In step 1 above, the other processor is specified by writing the PE number in the PE number register 103. However, the TLB is configured to give the PE number and offset to the address determination circuit 102, and the address determination circuit is provided. It is also possible to specify and specify by the upper bits of the area offset line 170o output by 102.
In this case, the PE number register 103 becomes unnecessary. In this case, the output data width of TLB becomes large.
【0027】また、上記のステップ1では領域識別子を
領域番号レジスタ104に書き込むことにより相手先プ
ロセッサ内の領域を指定しているが、アドレス判定回路
へ領域識別子を与えるようにTLBを構成し、アドレス
判定回路102の出力する領域オフセット線170oの
上位複数ビットにより指定してもよい。この場合、領域
指定レジスタ104は不要となる。この場合TLBの出
力データ幅は大きくなる。Further, in step 1 above, the area in the destination processor is specified by writing the area identifier in the area number register 104. However, the TLB is configured so as to give the area identifier to the address judging circuit, and the address is determined. It may be specified by a plurality of upper bits of the area offset line 170o output from the determination circuit 102. In this case, the area designation register 104 becomes unnecessary. In this case, the output data width of TLB becomes large.
【0028】〈実施例2〉本発明の実施例2を図5によ
って説明する。本実施例は実施例1の変形であるため、
相違点についてのみ説明する。本実施例は、領域指定テ
ーブル106−2、206−2をクラスタ100、20
0に一つとし、これに対応して領域指定テーブル106
−2、206−2の構造を変更している点が異なる。領
域指定テーブル106−2、206−2の構造を図6に
示す。本実施例での領域指定テーブル106−2の内容
は実施例1の領域指定テーブルにプロセッサ番号を付加
し、領域指定テーブル106−2をプロセッサ番号と共
有領域の識別子の組でアクセスする。<Second Embodiment> A second embodiment of the present invention will be described with reference to FIG. Since this embodiment is a modification of the first embodiment,
Only the differences will be described. In this embodiment, the area designation tables 106-2 and 206-2 are set to the clusters 100 and 20.
One is set to 0, and the area designation table 106 is correspondingly set.
-2, 206-2 is different in that the structure is changed. The structure of the area designation tables 106-2 and 206-2 is shown in FIG. The contents of the area designation table 106-2 in this embodiment adds a processor number to the area designation table of the first embodiment, and accesses the area designation table 106-2 with a set of a processor number and a shared area identifier.
【0029】本実施例では、プロセッサ101によるプ
ロセッサ201への要求メッセージが要求メッセージ受
信回路212に到着した場合の、クラスタ200内での
処理について実施例1のステップに沿って説明する。 (ステップ7)要求メッセージは、クラスタ200の要
求メッセージ受信回路212により受信される。要求メ
ッセージ回路212は領域指定テーブル106−2に対
してプロセッサ番号と要求メッセージの領域識別子を与
え、対応する実ローカル領域の属性を読み出す。実ロー
カル領域445が領域指定テーブル206に存在してい
ない、または実ローカル領域445の領域有効フラグが
無効を示している場合はエラーとなり、プロセッサ20
1に割込をかける。本実施例によれば、領域指定テーブ
ルをクラスタ単位で用意することにより、領域指定テー
ブルをクラスタ単位で一括して制御することができる。In the present embodiment, a process in the cluster 200 when a request message from the processor 101 to the processor 201 arrives at the request message receiving circuit 212 will be described along with the steps of the first embodiment. (Step 7) The request message is received by the request message receiving circuit 212 of the cluster 200. The request message circuit 212 gives the processor number and the area identifier of the request message to the area designation table 106-2, and reads the attribute of the corresponding real local area. If the real local area 445 does not exist in the area designation table 206, or if the area valid flag of the real local area 445 indicates invalid, an error occurs and the processor 20
Interrupt one. According to the present embodiment, by preparing the area designation table in units of clusters, the area designation tables can be collectively controlled in units of clusters.
【0030】〈実施例3〉本発明の実施例3を図7によ
って説明する。本実施例は実施例1の変形であるため、
相違点についてのみ説明する。本実施例は、PE番号レ
ジスタ103、203を実プロセッサ番号ではなく、論
理プロセッサ番号で指定する点のみが異なる。実プロセ
ッサ番号から論理プロセッサ番号への変換はアクセス発
行側のプロセッサ201内の図7に示した回路で行われ
る。図7の203−2はPE番号変換回路、203−3
はPE番号変換テーブルである。PE番号変換テーブル
203−3はPE番号変換回路203−2により領域の
識別子と論理プロセッサ番号の組でアクセスされ、実プ
ロセッサ番号を返すテーブルである。<Third Embodiment> A third embodiment of the present invention will be described with reference to FIG. Since this embodiment is a modification of the first embodiment,
Only the differences will be described. The present embodiment is different only in that the PE number registers 103 and 203 are designated by logical processor numbers instead of real processor numbers. The conversion from the real processor number to the logical processor number is performed by the circuit shown in FIG. 7 in the processor 201 on the access issue side. Reference numeral 203-2 in FIG. 7 denotes a PE number conversion circuit, 203-3
Is a PE number conversion table. The PE number conversion table 203-3 is a table which is accessed by the PE number conversion circuit 203-2 with a combination of an area identifier and a logical processor number and which returns an actual processor number.
【0031】本実施例では、プロセッサ201はPE番
号レジスタ203に論理プロセッサ番号を書き込む。P
E番号変換回路203−2はプロセッサのPE番号レジ
スタ203とプロセッサ群を表す領域指定レジスタ20
4の値の組でPE番号変換テーブル203−3をアクセ
スし、PE番号レジスタ203の論理プロセッサ番号か
ら実プロセッサ番号に変換して要求メッセージ送信回路
に転送する。 (ステップ4)要求メッセージ送信回路111は、領域
内のオフセットを受けると相手先プロセッサ番号、領域
指定レジスタ104の値を信号線150p、160rを
通して得る。また、アクセスが書き込みであった場合に
は、書き込む値をデータ線132dを通して得る。In this embodiment, the processor 201 writes the logical processor number in the PE number register 203. P
The E number conversion circuit 203-2 is a PE number register 203 of the processor and an area designation register 20 representing a processor group.
The PE number conversion table 203-3 is accessed with a set of 4 values, the logical processor number of the PE number register 203 is converted into the real processor number, and the result is transferred to the request message transmission circuit. (Step 4) Upon receiving the offset within the area, the request message transmission circuit 111 obtains the destination processor number and the value of the area designation register 104 through the signal lines 150p and 160r. When the access is writing, the value to be written is obtained through the data line 132d.
【0032】本実施例により、各並列プログラムを並列
計算機内の任意のプロセッサの組み合せによるプロセッ
サ群で実行し、各プロセッサ上で複数のプロセスを実行
することができる。According to this embodiment, each parallel program can be executed by a processor group formed by a combination of arbitrary processors in a parallel computer, and a plurality of processes can be executed on each processor.
【0033】〈実施例4〉本発明の実施例4を説明す
る。本実施例は実施例3の変形であるため、異なる点に
ついてのみ説明する。本実施例では要求メッセージに論
理プロセッサ番号を付加し、相手先プロセッサ内で論理
プロセッサ番号と共有領域の識別子の組により領域指定
テーブル106をアクセスする点が実施例3と異なる。<Fourth Embodiment> A fourth embodiment of the present invention will be described. Since this embodiment is a modification of the third embodiment, only different points will be described. This embodiment differs from the third embodiment in that a logical processor number is added to a request message and the area designation table 106 is accessed by a combination of the logical processor number and the shared area identifier in the partner processor.
【0034】本実施例での領域指定テーブル106−3
の構造を図8に示す。本実施例での領域指定テーブル1
06−3は論理プロセッサ番号が付加されており、論理
プロセッサ番号と共有領域の識別子の組によりアクセス
される。また、本実施例の要求メッセージの構造を図9
に示す。要求メッセージには相互結合網300によって
メッセージを返答側プロセッサ又はクラスタに転送する
ために必要な受信側プロセッサ番号に加えて、受信側論
理プロセッサ番号を付加する。Area designation table 106-3 in this embodiment
The structure of is shown in FIG. Area designation table 1 in this embodiment
06-3 is added with a logical processor number and is accessed by a set of a logical processor number and a shared area identifier. The structure of the request message of this embodiment is shown in FIG.
Shown in The request message is added with the logical processor number of the receiving side in addition to the receiving side processor number required for transferring the message to the responding processor or cluster by the interconnection network 300.
【0035】本実施例における各プロセスの仮想空間の
構造を図10に示す。図では、並列プログラムIが動作
しており、プロセッサ(PE)101上に論理プロセッ
サ0および論理プロセッサ1、プロセッサ201上に論
理プロセッサ2および論理プロセッサ3が配置されてい
る。論理プロセッサ0、1、2、3は順にプロセスA、
B、D、Eを実行する。501、511、521、56
1、571、581は各プロセスの仮想グローバル領
域、502、512、522、562、572、582
は各プロセスの仮想ローカル領域、503、513、5
23、563、573、583は各プロセスの仮想プラ
イベート領域、531、541はプロセッサ101、2
01の実グローバル領域、532、534、536、5
38、542、544、546、548はプロセッサ1
01、201の実プライベート領域、533はプロセス
Aの仮想ローカル領域502に対応するプロセッサ10
1の実ローカル領域、535はプロセスBの仮想ローカ
ル領域512に対応するプロセッサ101の実ローカル
領域、537はプロセスCの仮想ローカル領域522に
対応するプロセッサ101の実ローカル領域、545は
プロセスDの仮想ローカル領域562に対応するプロセ
ッサ201の実ローカル領域、547はプロセスEの仮
想ローカル領域572に対応するプロセッサ201の実
ローカル領域、543はプロセスFの仮想ローカル領域
582に対応するプロセッサ201の実ローカル領域で
ある。並列プログラムIの共有領域は仮想ローカル領域
502、512、562、572であり、共通の共有領
域の識別子0を使ってアクセスされる。The structure of the virtual space of each process in this embodiment is shown in FIG. In the figure, a parallel program I is operating, and a logical processor 0 and a logical processor 1 are arranged on a processor (PE) 101, and a logical processor 2 and a logical processor 3 are arranged on a processor 201. Logical processors 0, 1, 2, 3 process A,
Perform B, D, and E. 501, 511, 521, 56
1, 571 and 581 are virtual global areas of respective processes, 502, 512, 522, 562, 572 and 582.
Is a virtual local area of each process, 503, 513, 5
23, 563, 573, 583 are virtual private areas of the respective processes, 531, 541 are processors 101, 2
01 real global area, 532, 534, 536, 5
38, 542, 544, 546, 548 is the processor 1
Real private areas 01 and 201, 533 are processors 10 corresponding to the virtual local area 502 of process A
1 is a real local area of the processor 101 corresponding to the virtual local area 512 of the process B, 537 is a real local area of the processor 101 corresponding to the virtual local area 522 of the process C, and 545 is a virtual local area of the process D. The real local area of the processor 201 corresponding to the local area 562, 547 is the real local area of the processor 201 corresponding to the virtual local area 572 of the process E, and 543 is the real local area of the processor 201 corresponding to the virtual local area 582 of the process F. Is. The shared areas of the parallel program I are virtual local areas 502, 512, 562, 572, and are accessed using the common shared area identifier 0.
【0036】本実施例では、論理プロセッサ0で実行中
のプロセスAがプロセスAの仮想グローバル領域を使っ
て論理プロセッサ2上のプロセスDの仮想ローカル領域
をアクセスする場合について実施例3と異なる点を中心
に説明する。 (ステップ1)プロセッサ101は、プロセスAのプロ
グラムに従って領域指定レジスタ104に領域番号0を
設定し、PE番号レジスタ103に論理プロセッサ2の
プロセッサ番号を設定して、仮想グローバル領域501
に対してアクセスを行う。アクセスの種類は、読み出し
要求又は書き込み要求である。 (ステップ2)仮想グローバル領域に対するアクセス
は、プロセッサ101内のTLBによって実グローバル
領域531へとアドレス変換されプロセッサのアドレス
線120aに出力される。 (ステップ3)実施例1と同じである。 (ステップ4)実施例3のステップ4に加えて、要求メ
ッセージ送信回路111はPE番号レジスタ103から
論理プロセッサ番号を得る。 (ステップ5)実施例1のステップ5と同じであるが、
要求メッセージの構造は図9に示したもとなる。 (ステップ6)実施例1と同じである。 (ステップ7)要求メッセージ受信回路212は、要求
メッセージの領域識別子と論理プロセッサ番号を信号線
261rを通じて領域指定テーブル206に与え、対応
する実ローカル領域545の属性を読み出す。この時、
実ローカル領域545が領域指定テーブル206に存在
していない、または実ローカル領域545の領域有効フ
ラグが無効を示している場合はエラーとなり、プロセッ
サ201に割込をかける。 (ステップ8)実施例1と同じである。 (ステップ9)実施例1と同じである。 (ステップ10)実施例1と同じである。 (ステップ11)実施例1と同じである。 以上の操作により、論理プロセッサ0で実行中のプロセ
スAの仮想グローバル領域402から他論理プロセッサ
1上の同一並列プログラムを構成するプロセスDの実ロ
ーカル領域545がアクセスでき、結果としてプロセス
Dの仮想ローカル領域562をアクセスしたこととな
る。本実施例によれば、並列プログラムを構成するプロ
セスを1実プロセッサ上で複数実行することが可能とな
り、プロセッサ数を仮想化することができる。The present embodiment differs from the third embodiment in the case where the process A running on the logical processor 0 uses the virtual global area of the process A to access the virtual local area of the process D on the logical processor 2. I will explain mainly. (Step 1) The processor 101 sets the area number 0 in the area designation register 104 according to the program of the process A, sets the processor number of the logical processor 2 in the PE number register 103, and sets the virtual global area 501.
Access to. The type of access is a read request or a write request. (Step 2) The access to the virtual global area is translated into the real global area 531 by the TLB in the processor 101 and output to the address line 120a of the processor. (Step 3) Same as the first embodiment. (Step 4) In addition to step 4 of the third embodiment, the request message transmission circuit 111 obtains the logical processor number from the PE number register 103. (Step 5) Same as Step 5 of the first embodiment,
The request message has the structure shown in FIG. (Step 6) Same as the first embodiment. (Step 7) The request message receiving circuit 212 gives the area identifier and logical processor number of the request message to the area designation table 206 through the signal line 261r, and reads the attribute of the corresponding real local area 545. This time,
If the real local area 545 does not exist in the area designation table 206, or if the area valid flag of the real local area 545 indicates invalid, an error occurs and the processor 201 is interrupted. (Step 8) Same as the first embodiment. (Step 9) Same as the first embodiment. (Step 10) Same as the first embodiment. (Step 11) Same as the first embodiment. By the above operation, the real local area 545 of the process D constituting the same parallel program on the other logical processor 1 can be accessed from the virtual global area 402 of the process A being executed by the logical processor 0, and as a result, the virtual local area of the process D is local. The area 562 has been accessed. According to this embodiment, it is possible to execute a plurality of processes forming a parallel program on one real processor, and the number of processors can be virtualized.
【0037】〈実施例5〉本発明の実施例5を図11に
よって説明する。本実施例は実施例1の変形であるた
め、相違点についてのみ説明する。本実施例は、領域指
定テーブル106、206を主記憶装置107、207
上に保持し、必要な部分についてのみ領域テーブルキャ
ッシュ106C、206C上にキャッシングする点のみ
が異なる。領域指定テーブルキャッシュ106C、20
6Cは、図3に示した領域指定テーブルの各要素毎にエ
ントリ有効ビットが付加されている他は領域指定テーブ
ルの構造と同じである。<Fifth Embodiment> A fifth embodiment of the present invention will be described with reference to FIG. Since this embodiment is a modification of the first embodiment, only different points will be described. In this embodiment, the area designation tables 106 and 206 are stored in the main storage devices 107 and 207.
It is different in that it is held above and only necessary portions are cached in the area table caches 106C and 206C. Area designation table cache 106C, 20
6C has the same structure as the area designation table except that an entry valid bit is added to each element of the area designation table shown in FIG.
【0038】本実施例では、プロセッサ101によるプ
ロセッサ201への要求メッセージが要求メッセージ受
信回路212に到着した場合の、クラスタ200内での
処理について実施例1のステップに沿って説明する。In this embodiment, the processing in the cluster 200 when a request message from the processor 101 to the processor 201 arrives at the request message receiving circuit 212 will be described along with the steps of the first embodiment.
【0039】(ステップ7)要求メッセージは、クラス
タ200の要求メッセージ受信回路212により受信さ
れる。要求メッセージ回路212は、要求メッセージの
領域識別子を信号線261rを通じて領域指定テーブル
キャッシュ206Cに与え、対応する実ローカル領域の
属性を読み出す。この時、対応する実ローカル領域の属
性が領域指定テーブルキャッシュ206C内に存在しな
い、又は、対応する実ローカル領域の属性のエントリ有
効ビットが無効を示している場合、主記憶装置207上
の領域指定テーブル206の対応する実ローカル領域の
属性をアクセスし、領域指定テーブルキャッシュ206
Cにキャッシングを行う。キャッシングについては従来
技術であるので説明は省略する。また、実ローカル領域
445が領域指定テーブル206に存在していない、ま
たは実ローカル領域445の領域有効フラグが無効を示
している場合はエラーとなり、プロセッサ200に割込
をかける。領域指定テーブル206を変更する場合、プ
ロセッサは領域指定テーブルキャッシュ206の全ての
エントリのエントリ有効ビットを無効にする。本実施例
によれば、領域指定テーブルを主記憶装置内におくこと
ができ実施例1に対してハードウェア量を減少させるこ
とができ、または、領域の最大数を増やすことができ
る。(Step 7) The request message is received by the request message receiving circuit 212 of the cluster 200. The request message circuit 212 gives the area identifier of the request message to the area designation table cache 206C through the signal line 261r, and reads the attribute of the corresponding real local area. At this time, if the attribute of the corresponding real local area does not exist in the area designation table cache 206C, or if the entry valid bit of the attribute of the corresponding real local area indicates invalid, the area designation in the main storage device 207 The attribute of the corresponding real local area of the table 206 is accessed, and the area designation table cache 206 is accessed.
C is cached. Caching is a conventional technique and will not be described. If the real local area 445 does not exist in the area designation table 206, or if the area valid flag of the real local area 445 indicates invalid, an error occurs and the processor 200 is interrupted. When changing the area designation table 206, the processor invalidates the entry valid bits of all entries in the area designation table cache 206. According to this embodiment, the area designation table can be stored in the main storage device, the amount of hardware can be reduced as compared with the first embodiment, or the maximum number of areas can be increased.
【0040】[0040]
【発明の効果】本発明によれば、並列計算機を構成する
各プロセッサが相手先プロセッサ上で動作中のプロセス
に関わらず、自プロセッサ上のプロセスに対応する共有
領域をアクセスすることができる。そのため、並列計算
機上で複数の並列プログラムを動作させることができ
る。According to the present invention, each processor constituting a parallel computer can access the shared area corresponding to the process on its own processor regardless of the process running on the partner processor. Therefore, a plurality of parallel programs can be operated on the parallel computer.
【図面の簡単な説明】[Brief description of drawings]
【図1A】実施例1に係る並列計算機の構成の部分を示
す図である。FIG. 1A is a diagram showing a part of a configuration of a parallel computer according to a first embodiment.
【図1B】実施例1に係る並列計算機の構成の他の部分
を示す図である。FIG. 1B is a diagram showing another part of the configuration of the parallel computer according to the first embodiment.
【図2】実施例1に係る仮想アドレス空間と実アドレス
空間の関係を示す図である。FIG. 2 is a diagram showing a relationship between a virtual address space and a real address space according to the first embodiment.
【図3】実施例1に係る領域指定テーブルの構成を示す
図である。FIG. 3 is a diagram showing a configuration of an area designation table according to the first embodiment.
【図4】実施例1に係るパケットの構成を示す図であ
る。FIG. 4 is a diagram showing a packet configuration according to the first embodiment.
【図5A】実施例2に係る並列計算機の構成の部分を示
す図である。FIG. 5A is a diagram showing a part of a configuration of a parallel computer according to a second embodiment.
【図5B】実施例2に係る並列計算機の構成の他の部分
を示す図である。FIG. 5B is a diagram showing another part of the configuration of the parallel computer according to the second embodiment.
【図6】実施例2に係る領域指定テーブルの構成を示す
図である。FIG. 6 is a diagram showing a configuration of an area designation table according to the second embodiment.
【図7】実施例3に係るプロセッサ番号変換回路の構成
を示す図である。FIG. 7 is a diagram illustrating a configuration of a processor number conversion circuit according to a third embodiment.
【図8】実施例4に係る領域指定テーブルの構成を示す
図である。FIG. 8 is a diagram showing a configuration of an area designation table according to the fourth embodiment.
【図9】実施例4に係るパケットの構成を示す図であ
る。FIG. 9 is a diagram showing the structure of a packet according to the fourth embodiment.
【図10】実施例4に係る仮想アドレス空間と実アドレ
ス空間の関係を示す図である。FIG. 10 is a diagram showing a relationship between a virtual address space and a real address space according to the fourth embodiment.
【図11A】本発明の実施例5に係る並列計算機の構成
の部分を示す図である。FIG. 11A is a diagram showing a part of a configuration of a parallel computer according to a fifth embodiment of the present invention.
【図11B】実施例5に係る並列計算機の構成の他の部
分を示す図である。FIG. 11B is a diagram illustrating another part of the configuration of the parallel computer according to the fifth embodiment.
100、200 クラスタ 10、20、10−2、20−2、10−3、20−3
プロセッサ部 12、22、12−2、22−2、12−3、22−3
ネットワークインターフェイス回路 101、201 プロセッサ 102、202 アドレス判定回路 103、203 プロセッサ番号レジスタ 104、204 領域指定レジスタ 203−2 プロセッサ番号変換回路 203−3 プロセッサ番号変換テーブル 105、205 エラー判定回路 106、206 領域指定テーブル 106C、206C 領域指定テーブルキャッシュ 107、207 主記憶装置 108、208 アドレス加算器 111、211 要求メッセージ送信回路 112、212 要求メッセージ受信回路 113、213 返答メッセージ送信回路 114、214 返答メッセージ受信回路 300 相互結合網 120a、220a プロセッサアドレスバス 121a〜123a、221a〜223a 主記憶アク
セスアドレス線 130d〜139d、230d〜239d データ線 140m〜143m、240m〜243m メッセージ
線 150p、250p プロセッサ番号線 160r、161r、260r、261r 領域番号線 170o、171o、270o、271o 領域オフセ
ット線 180b、280b 領域ベースアドレス線 182s、282s 領域サイズ線 184e、284e エラー信号線100, 200 clusters 10, 20, 10-2, 20-2, 10-3, 20-3
Processor unit 12, 22, 12-2, 22-2, 12-3, 22-3
Network interface circuit 101, 201 Processor 102, 202 Address determination circuit 103, 203 Processor number register 104, 204 Area designation register 203-2 Processor number conversion circuit 203-3 Processor number conversion table 105, 205 Error determination circuit 106, 206 Area designation Table 106C, 206C Area designation table cache 107, 207 Main memory 108, 208 Address adder 111, 211 Request message transmitting circuit 112, 212 Request message receiving circuit 113, 213 Reply message transmitting circuit 114, 214 Reply message receiving circuit 300 Mutual Coupling network 120a, 220a Processor address bus 121a-123a, 221a-223a Main memory access address line 130 d-139d, 230d-239d Data line 140m-143m, 240m-243m Message line 150p, 250p Processor number line 160r, 161r, 260r, 261r Area number line 170o, 171o, 270o, 271o Area offset line 180b, 280b Area base address Line 182s, 282s Area size line 184e, 284e Error signal line
───────────────────────────────────────────────────── フロントページの続き (72)発明者 助川 直伸 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Naonobu Sukegawa 1-280, Higashikoigokubo, Kokubunji, Tokyo Inside the Central Research Laboratory, Hitachi, Ltd.
Claims (10)
ロセッサにより使用される主記憶装置からなる複数のク
ラスタと、該複数のクラスタを接続するネットワークを
具備し、それぞれのプロセッサにおいて仮想空間が割り
当てられた少なくとも1つのプロセスが動作し、システ
ム内の1以上のクラスタ上の前記各プロセッサ上で動作
する複数の前記プロセスの集合により構成される並列プ
ログラムが少なくとも1つ動作する並列計算機におい
て、前記クラスタ内の各プロセッサで動作中の並列プロ
グラムのプロセッサ担当部分である前記プロセスが、他
クラスタ内のプロセッサ上で同一並列プログラムを構成
するプロセスの仮想空間上の共有領域に対応する実メモ
リ領域をアクセス可能にするプロセッサ間相互アクセス
方法であって、 前記並列計算機は、並列プログラムが動作中である各プ
ロセスの持つ全ての共有領域に共通な識別子として並列
プログラムの識別子を割当て、 各プロセッサは前記共有領域識別子に対応して自プロセ
ッサ内の各プロセスの共有領域の情報を保持する領域指
定テーブルを備え、 要求側プロセッサは前記共有領域識別子と、アクセスを
行う共有領域を保持する相手先プロセッサ番号と、アク
セスを行うデータの仮想アドレスを指定し、該識別子と
該相手先プロセッサ番号と該仮想アドレスを変換して得
られた実アドレスのオフセットを返答側プロセッサに送
出してアクセスを行い、 返答側プロセッサは、前記領域指定テーブルの内容と前
記共有領域識別子に基づき前記オフセットを自己のプロ
セッサ内での対応する実アドレスに変換することを特徴
とする並列計算機のプロセッサ間相互アクセス方法。1. A plurality of clusters comprising one or more processors and a main storage device used by the one or more processors, and a network connecting the plurality of clusters, wherein a virtual space is provided in each processor. A parallel computer in which at least one allocated process operates and at least one parallel program configured by a set of a plurality of the processes operating on each processor on one or more clusters in the system operates, The process, which is the processor in charge of the parallel program running on each processor in the cluster, accesses the real memory area corresponding to the shared area in the virtual space of the process forming the same parallel program on the processor in another cluster. A mutual access method between processors, which enables: The column computer allocates an identifier of the parallel program as a common identifier to all shared areas of each process in which the parallel program is operating, and each processor shares each process in its own processor in correspondence with the shared area identifier. An area specification table holding area information is provided, and the requesting processor specifies the shared area identifier, the partner processor number holding the shared area to be accessed, and the virtual address of the data to be accessed. The partner processor number and the offset of the real address obtained by converting the virtual address are sent to the responding processor for access, and the responding processor is based on the contents of the area designation table and the shared area identifier. The offset is converted into a corresponding real address in its own processor. Method for mutual access between processors of parallel computer.
ロセッサにより使用される主記憶装置からなる複数のク
ラスタと、該複数のクラスタを接続するネットワークを
具備し、それぞれのプロセッサにおいて仮想空間が割り
当てられた少なくとも1つのプロセスが動作し、システ
ム内の1以上のクラスタ上の前記各プロセッサ上で動作
する複数の前記プロセスの集合により構成される並列プ
ログラムが少なくとも1つ動作する並列計算機におい
て、前記クラスタ内の各プロセッサで動作中の並列プロ
グラムのプロセッサ担当部分である前記プロセスが、他
クラスタ内のプロセッサ上で同一並列プログラムを構成
するプロセスの仮想空間上の共有領域に対応する実メモ
リ領域をアクセス可能にするプロセッサ間相互アクセス
方法であって、 前記並列計算機は、並列プログラムが動作中である各プ
ロセスの共有領域全体に対応して1つの共有領域識別子
を割当て、 各プロセッサは該共有領域識別子に対応して自プロセッ
サ内の各プロセスの共有領域の情報を保持する領域指定
テーブルを持ち、 要求側プロセッサは前記共有領域識別子と、アクセスを
行う共有領域を保持する相手先プロセッサ番号と、アク
セスを行うデータの仮想アドレスを指定し、該識別子と
該相手先プロセッサ番号と該仮想アドレスを変換して得
られた実アドレスのオフセットを返答側プロセッサに送
出してアクセスを行い、 返答側プロセッサは、前記領域指定テーブルの内容と前
記共有領域識別子に基づき前記オフセットを自己のプロ
セッサ内での対応する実アドレスに変換することを特徴
とする並列計算機のプロセッサ間相互アクセス方法。2. A plurality of clusters each comprising one or more processors and a main storage device used by the one or more processors, and a network connecting the plurality of clusters, wherein a virtual space is provided in each processor. A parallel computer in which at least one allocated process operates and at least one parallel program configured by a set of a plurality of the processes operating on each processor on one or more clusters in the system operates, The process, which is the processor in charge of the parallel program running on each processor in the cluster, accesses the real memory area corresponding to the shared area in the virtual space of the process forming the same parallel program on the processor in another cluster. A mutual access method between processors, which enables: The column computer allocates one shared area identifier corresponding to the entire shared area of each process in which the parallel program is operating, and each processor corresponds to the shared area identifier of the shared area of each process in its own processor. The requesting processor has an area designation table for holding information, and the requesting processor designates the shared area identifier, the partner processor number for holding the shared area to be accessed, and the virtual address of the data to be accessed. The offset of the destination processor number and the real address obtained by converting the virtual address is sent to the responding processor for access, and the responding processor uses the offset based on the contents of the area designation table and the shared area identifier. Of a parallel computer, which is characterized by translating the corresponding real address in its own processor. Mutual access method between sessa.
機のプロセッサ間相互アクセス方法において、 要求側プロセッサは前記共有領域識別子と、アクセスを
行うデータの仮想アドレスとしてアクセスを行う共有領
域を保持する相手先プロセッサ番号を含む仮想アドレス
を指定し、該識別子と、該相手先プロセッサ番号を含む
仮想アドレスを変換して得られた相手先プロセッサ番号
と実アドレスのオフセットとを返答側プロセッサに送出
してアクセスを行うことを特徴とする並列計算機のプロ
セッサ間相互アクセス方法。3. The interprocessor mutual access method for a parallel computer according to claim 1, wherein the requesting processor holds the shared area identifier and a shared area to be accessed as a virtual address of data to be accessed. The virtual address including the partner processor number is designated, and the identifier, the partner processor number and the offset of the real address obtained by converting the virtual address including the partner processor number are sent to the responding processor. A mutual access method between processors of a parallel computer characterized by performing access.
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 共有領域を実メモリ上で連続に確保し、前記領域指定テ
ーブルの各エントリは共有領域識別子と共有領域に対応
する実メモリ領域のベースアドレスとサイズを有し、 返答側プロセッサは、前記要求側プロセッサからの共有
領域識別子により前記領域指定テーブルをアクセスし、
得られたエントリの前記ベースアドレスに前記要求側プ
ロセッサからのオフセットを加算することにより実アド
レスを求めることを特徴とする並列計算機のプロセッサ
間相互アクセス方法。4. A method of mutual access between processors of a parallel computer according to any one of claims 1 to 3, wherein a shared area is continuously secured in a real memory, and each entry of the area designation table is It has a shared area identifier and a base address and size of an actual memory area corresponding to the shared area, and the response side processor accesses the area designation table by the shared area identifier from the request side processor,
A mutual access method between processors of a parallel computer, characterized in that an actual address is obtained by adding an offset from the requesting processor to the base address of the obtained entry.
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 前記領域指定テーブルをクラスタ毎に設け、 共有領域を実メモリ上で連続に確保し、該領域指定テー
ブルの各エントリはクラスタ内プロセッサ番号と共有領
域識別子と共有領域に対応する実メモリ領域のベースア
ドレスとサイズを有し、 返答側プロセッサは、前記要求側プロセッサからのプロ
セッサ番号と共有領域識別子により前記領域指定テーブ
ルをアクセスし、得られたエントリの前記ベースアドレ
スに前記要求側プロセッサからのオフセットを加算する
ことにより実アドレスを求めることを特徴とする並列計
算機のプロセッサ間相互アクセス方法。5. The inter-processor mutual access method for a parallel computer according to claim 1, wherein the area designation table is provided for each cluster, and the shared area is continuously secured in the real memory. However, each entry of the area designation table has the intra-cluster processor number, the shared area identifier, and the base address and size of the real memory area corresponding to the shared area, and the response side processor is the processor number from the request side processor. A method of mutual access between processors of a parallel computer, characterized in that the real address is obtained by accessing the area designation table with a shared area identifier and adding an offset from the requesting processor to the base address of the obtained entry. .
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 前記要求側プロセッサが送出する相手先プロセッサ番号
を論理プロセッサ番号とし、 共有領域を実メモリ上で連続に確保し、前記領域指定テ
ーブルの各エントリは共有領域識別子と論理プロセッサ
番号と共有領域に対応する実メモリ領域のベースアドレ
スとサイズを有し、 返答側プロセッサは、前記要求側プロセッサからの共有
領域識別子と論理プロセッサ番号により前記領域指定テ
ーブルをアクセスし、得られたエントリの前記ベースア
ドレスに前記要求側プロセッサからのオフセットを加算
することにより実アドレスを求めることを特徴とする並
列計算機のプロセッサ間相互アクセス方法。6. The method of mutual access between processors of a parallel computer according to claim 1, wherein the destination processor number sent by the requesting processor is a logical processor number, and the shared area is It is secured continuously in the real memory, and each entry of the area designation table has a shared area identifier, a logical processor number, and a base address and size of the real memory area corresponding to the shared area. A parallel characterized in that the real address is obtained by accessing the area designation table by the shared area identifier and the logical processor number from the processor and adding the offset from the requesting processor to the base address of the obtained entry. Mutual access method between processors of computer.
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 前記領域指定テーブルの各エントリは、さらに、共有領
域識別子に対応してアクセスの発行時にインクリメント
され、アクセスの完了時にデクリメントされるカウント
値を有することを特徴とする並列計算機のプロセッサ間
相互アクセス方法。7. The inter-processor mutual access method for a parallel computer according to any one of claims 4 to 6, wherein each entry of the area designation table further corresponds to a shared area identifier. A mutual access method between processors of a parallel computer having a count value which is incremented at the time of issue and decremented at the completion of access.
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 前記領域指定テーブルの各エントリは、さらに、共有領
域識別子に対応して領域有効フラグ、読み出しフラグ、
書き込みフラグを有することを特徴とする並列計算機の
プロセッサ間相互アクセス方法。8. The inter-processor mutual access method for a parallel computer according to claim 4, wherein each entry of the area designation table further has an area valid corresponding to a shared area identifier. Flag, read flag,
A mutual access method between processors of a parallel computer characterized by having a write flag.
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 前記要求側プロセッサが指定する相手先プロセッサ番号
を論理プロセッサ番号とし、 相手先プロセッサ番号を論理プロセッサ番号から物理プ
ロセッサ番号に変換するプロセッサ番号変換手段を設
け、 該手段により論理プロセッサ番号を物理プロセッサ番号
に変換して返答側プロセッサに送出することを特徴とす
る並列計算機のプロセッサ間相互アクセス方法。9. The inter-processor mutual access method for a parallel computer according to claim 1, wherein the partner processor number designated by the requesting processor is a logical processor number, and the partner processor A processor number conversion means for converting a number from a logical processor number to a physical processor number is provided, and the logical processor number is converted to a physical processor number by the means and is sent to a response side processor. how to access.
求項記載の並列計算機のプロセッサ間相互アクセス方法
において、 前記領域指定テーブルを主記憶装置上に配置し、領域指
定テーブルキャッシュを設け、該領域指定テーブルキャ
ッシュに前記領域指定テーブルのエントリをキャッシン
グすることを特徴とする並列計算機のプロセッサ間相互
アクセス方法。10. The method of mutual access between processors of a parallel computer according to claim 1, wherein the area designation table is arranged in a main storage device, and an area designation table cache is provided. A method of mutual access between processors of a parallel computer, characterized in that an entry of the area designation table is cached in the area designation table cache.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6185408A JPH0830567A (en) | 1994-07-14 | 1994-07-14 | Mutual access method between processors of parallel computer |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6185408A JPH0830567A (en) | 1994-07-14 | 1994-07-14 | Mutual access method between processors of parallel computer |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0830567A true JPH0830567A (en) | 1996-02-02 |
Family
ID=16170275
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6185408A Pending JPH0830567A (en) | 1994-07-14 | 1994-07-14 | Mutual access method between processors of parallel computer |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0830567A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007080718A1 (en) * | 2006-01-16 | 2007-07-19 | Sony Corporation | Bridge, information processor, information processing system, and method of managing global address |
-
1994
- 1994-07-14 JP JP6185408A patent/JPH0830567A/en active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007080718A1 (en) * | 2006-01-16 | 2007-07-19 | Sony Corporation | Bridge, information processor, information processing system, and method of managing global address |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7577816B2 (en) | Remote translation mechanism for a multinode system | |
| Dubnicki et al. | Software support for virtual memory-mapped communication | |
| JP2625385B2 (en) | Multiprocessor system | |
| JP2819982B2 (en) | Multiprocessor system with cache match guarantee function that can specify range | |
| US5123094A (en) | Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers | |
| US6295598B1 (en) | Split directory-based cache coherency technique for a multi-processor computer system | |
| JP3849951B2 (en) | Main memory shared multiprocessor | |
| US6510496B1 (en) | Shared memory multiprocessor system and method with address translation between partitions and resetting of nodes included in other partitions | |
| JP2977688B2 (en) | Multi-processing device, method, and processor used for the same | |
| US5895499A (en) | Cross-domain data transfer using deferred page remapping | |
| JP3687990B2 (en) | Memory access mechanism | |
| JPH1196127A (en) | Method and apparatus for performing a remote disk read operation between a first computer and a second computer | |
| US5574862A (en) | Multiprocessing system with distributed input/output management | |
| JP2974526B2 (en) | Data transfer processing method and data transfer processing device | |
| US20050144422A1 (en) | Virtual to physical address translation | |
| US20040093455A1 (en) | System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system | |
| US20040162952A1 (en) | Global pointers for scalable parallel applications | |
| CN111431757A (en) | Virtual network flow acquisition method and device | |
| JPH0816470A (en) | Parallel computer | |
| CN114328295A (en) | Storage management apparatus, processor, related apparatus and related method | |
| JP4507563B2 (en) | Multiprocessor system | |
| JPH10187631A (en) | Enhanced symmetric multiprocessor architecture | |
| US20240202144A1 (en) | Coherent block read fulfillment | |
| JPH0830567A (en) | Mutual access method between processors of parallel computer | |
| US8688890B2 (en) | Bit ordering for communicating an address on a serial fabric |