JP2517859B2 - Parallel process management method - Google Patents

Parallel process management method

Info

Publication number
JP2517859B2
JP2517859B2 JP3301292A JP30129291A JP2517859B2 JP 2517859 B2 JP2517859 B2 JP 2517859B2 JP 3301292 A JP3301292 A JP 3301292A JP 30129291 A JP30129291 A JP 30129291A JP 2517859 B2 JP2517859 B2 JP 2517859B2
Authority
JP
Japan
Prior art keywords
processor
address
data
waiting
execution
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
Application number
JP3301292A
Other languages
Japanese (ja)
Other versions
JPH05113960A (en
Inventor
貴之 中川
真知子 朝家
衛 杉江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP3301292A priority Critical patent/JP2517859B2/en
Publication of JPH05113960A publication Critical patent/JPH05113960A/en
Application granted granted Critical
Publication of JP2517859B2 publication Critical patent/JP2517859B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明はメモリ共有型の並列計算
機システムにおける、暇なプロセッサにプロセスを分配
するシステムにおけるプロセス管理方法に関する。暇な
プロセッサとは、プロセッサ毎の実行待ちプロセステー
ブルに実行すべきプロセスがなくなったプロセッサをさ
す。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a process management method in a system for distributing processes to spare processors in a memory sharing type parallel computer system. A spare processor is a processor for which there is no process to be executed in the pending process table for each processor.

【0002】[0002]

【従来の技術】従来、メモリ共有型並列計算機システム
におけるプロセス分配方式については、中川ほかによ
る″プロセッサ間ソフトウェア割込処理を高速化するス
リットチェック機構″(情報処理学会研究報告89−A
RC−77、1989年P17)において論じられてい
る。
2. Description of the Related Art Conventionally, regarding a process distribution method in a memory sharing parallel computer system, Nakagawa et al., "Slit check mechanism for speeding up software interrupt processing between processors" (IPSJ Research Report 89-A).
RC-77, 1989 P17).

【0003】上記従来技術では、各プロセッサは、プロ
セスを他のプロセッサに分配するとき、そのプロセッサ
に対する実行待ちプロセステーブルの先頭に登録されて
いる実行待ちプロセスを分配する。
In the above-mentioned prior art, when distributing a process to another processor, each processor distributes the execution waiting process registered at the head of the execution waiting process table for that processor.

【0004】[0004]

【発明が解決しようとする課題】一般に、人間のプログ
ラム記述の傾向として、相互依存性の高いプロセスを近
接して書く事実が知られている。しかも、共有データに
関する書き込みプロセスを、そのデータの読み出しプロ
セスの直前に書く傾向がある。従って、デ−タの無駄な
待合せを避けるために、記述の順に実行するように登録
するのが一般的である。
Generally, as a human tendency to write programs, it is known that processes having high interdependence are written close to each other. Moreover, there is a tendency to write the writing process for shared data just before the reading process of the data. Therefore, in order to avoid useless waiting of data, it is general to register so as to execute in the order of description.

【0005】今、仮に、プロセスaは共有メモリの10
0番地に第1のデータを書き、このデータをプロセスb
が読み、プロセスbは200番地に第2のデータを書
き、このデータをプロセスcが読むものとする。
Now, suppose process a is 10 in the shared memory.
Write the first data at address 0 and process this data as process b
Is read, process b writes the second data at address 200, and process c reads this data.

【0006】この時、この順にこれらのプロセスは同一
のプロセッサの実行待ちプロセステーブルに登録するこ
とにより、単一のプロセッサによる実行では、無駄な待
合せを回避できる。
At this time, by registering these processes in the execution-waiting process table of the same processor in this order, useless waiting can be avoided in the execution by a single processor.

【0007】この場合、各プロセッサに、ストアインタ
イプのキャッシュがあると、以下の問題が生じる。
In this case, if each processor has a cache of store-in type, the following problems occur.

【0008】ここで、ストアインタイプのキャッシュと
は、データをそのキャッシュに書き込に際して、自プ
ロセッサに属するキャッシュにデータを書き込むが、共
有されている主記憶に転送しないで、後に、他のプロセ
ッサからそのデータの読み出し要求があると、そのデー
タをそのキャッシュから、データを要求元のプロセッサ
内のキャッシュに転送するものを指す。
[0008] Here, the store-in type cache, when write No write data in its cache writes the data into the cache belonging to its own processor but not transferred to the main memory that is shared, later, of the other When a processor requests to read the data, the data is transferred from the cache to the cache in the requesting processor.

【0009】上記の従来技術では、各プロセッサは、プ
ロセスを他のプロセッサに分配するとき、そのプロセッ
サに対するプロセステーブル内の先頭に登録されている
実行待ちプロセスを分配する。例えば、プロセスaの実
行の結果、そのプロセスがあるデータをそのプロセスを
実行中のプロセッサPE1のキャッシュに書き込んだあ
と、他のプロセッサPE3からプロセスの分配要求があ
ると、次のプロセスbを分配する。この分配が発生する
と、上記のプロセスaが発生したデータが利用するプロ
セスbが、プロセスaとはことなるプロセッサにて実行
されることになる。このため、プロセッサPE1に属す
るキャッシュからプロセッサPE3に属するキャッシュ
にデータの転送が必要となるという問題がある。
In the above-mentioned conventional technique, each processor, when distributing a process to another processor, distributes the execution waiting process registered at the head of the process table for that processor. For example, as a result of the execution of the process a, when the process writes a certain data in the cache of the processor PE1 that is executing the process, and then a process distribution request is issued from another processor PE3, the next process b is distributed. . When this distribution occurs, the process b used by the data generated by the process a is executed by a processor different from the process a. Therefore, there is a problem in that it is necessary to transfer data from the cache belonging to the processor PE1 to the cache belonging to the processor PE3.

【0010】本発明は、上記の問題点を解決し、キャッ
シュ間のデータ転送を減少できる並列プロセス管理方法
を提供することを目的とする。
SUMMARY OF THE INVENTION It is an object of the present invention to solve the above problems and provide a parallel process management method capable of reducing data transfer between caches.

【0011】[0011]

【課題を解決するための手段】上記目的を達成するため
に、本発明では、実行待ちプロセスを登録する実行待ち
プロセステーブルを、各プロセッサに対応して上記共有
メモリに設け、実行待ちプロセスのうち最初の実行待ち
プロセスを指定するものであって、最初の実行待ちプロ
セスから最終の実行待ちプロセスへと、指定を順次変更
する第1のポインタと、実行待ちプロセスのうち最終の
実行待ちプロセスを指定するものであって、最終の実行
待ちプロセスから最初の実行待ちプロセスへと、指定を
順次変更する第2のポインタとを各プロセッサ毎に設
け、各プロセッサのうち、実行待ちプロセステーブルに
登録された実行待ちプロセスがあるプロセッサは、第1
のポインタを参照して、最初の実行待ちプロセスを取り
出して実行し、プロセスの分配を要求するプロセッサが
あり、かつ分配可能である場合、第2のポインタを参照
して、最終の実行待ちプロセスを取り出し、プロセスの
分配を要求するプロセッサに対してその最終の実行待ち
のプロセスを分配する。
In order to achieve the above object, according to the present invention, an execution waiting process for registering an execution waiting process is performed.
Share the above process table for each processor
Provided in the memory, waiting for the first execution of the waiting processes
The first process waiting to be specified, which specifies the process.
From the process to the final pending process
The first pointer to
Specifies the pending process, the final execution
Specify from the waiting process to the first waiting process
A second pointer that is changed sequentially is set for each processor.
Out of each processor, in the pending process table
The processor with the registered pending process is the first
The first waiting process by referring to the pointer
Processors that issue and execute and request process distribution
Refer to second pointer if present and distributable
And take out the final pending process,
Waiting for its final execution for processors requesting distribution
Distributing the process of.

【0012】[0012]

【作用】実行待ちプロセステーブルにプロセスa,b,
cが登録されている場合、自プロセッサによる実行は単
一プロセッサでの実行と同じa,bの順で行ない、他プ
ロセッサへのプロセス分配はまずcを対象とする。この
結果、プロセスbは、プロセスaと同じプロセッサにて
実行されるので、プロセスaが生成し、プロセスbが利
用するデータに関して、キャッシュ間のデータ転送が生
じない。
Operation: Processes a, b, and
When c is registered, the execution by the self processor is performed in the same order as a and b as the execution by the single processor, and the process is distributed to other processors by first targeting c. As a result, since the process b is executed by the same processor as the process a, data transfer between caches does not occur with respect to the data generated by the process a and used by the process b.

【0013】[0013]

【実施例】以下、本発明の一実施例を図1から図5によ
り説明する。図1(a)は、本発明の一実施例の構成図
である。三つのプロセッサPE1〜PE3からなるメモ
リ共有型マルチプロセッサが共有メモリ1により接続さ
れている。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to FIGS. FIG. 1A is a configuration diagram of an embodiment of the present invention. A shared memory multiprocessor including three processors PE1 to PE3 is connected by a shared memory 1.

【0014】本実施例では、簡単のために、三つのプロ
セッサPE1〜PE3からなるメモリ共有型マルチプロ
セッサを例に説明するが、プロセッサ数が増えた場合
は、後述のプロセッサ対応の分配プロセスアドレス記憶
領域141〜143を増やせば良い。各プロセッサPE
1、PE2またはPE3は複数のレジスタを有するマイ
コン等により実現できる。
In the present embodiment, for the sake of simplicity, a memory shared multiprocessor consisting of three processors PE1 to PE3 will be described as an example. However, when the number of processors increases, a distributed process address storage corresponding to the processors described later will be given. It suffices to increase the areas 141 to 143. Each processor PE
1, PE2 or PE3 can be realized by a microcomputer having a plurality of registers.

【0015】共有メモリ1に、共有のプロセス分配要求
プロセッサ番号領域13、それぞれ一つのプロセッサに
対応して設けられた分配プロセスアドレス領域141〜
143、それぞれ一つのプロセッサに対応して設けられ
た実行待ちプロセステーブル161〜163を設ける。
各実行待ちプロセステーブルは、実行待ちのプロセスを
表すプロセス実行環境レコ−ド(以下では、簡単のため
に、単にレコ−ドと呼ぶ)のキュ−からなる。本実施例
では、各レコード151は、図1(b)に示すように、
4つのデータからなる。すなわち、次のレコ−ドのアド
レスを示す次レコードアドレス、前のレコ−ドのアドレ
スを示す前レコードアドレス、対応するプロセスの処理
を実行する共有メモリ1に記憶されたプログラム(図示
せず)の先頭の命令のアドレスを表す命令コードアドレ
ス、およびそのプログラムで使用する、共有メモリ1に
記憶された引数のリスト(図示せず)の先頭のアドレス
を表す引数リストアドレスからなる。
In the shared memory 1, a shared process distribution request processor number area 13 and distributed process address areas 141 to 141 provided corresponding to one processor, respectively.
143, and execution waiting process tables 161 to 163 respectively provided corresponding to one processor.
Each execution-waiting process table is composed of a queue of process execution environment records (hereinafter, simply referred to as records) for representing processes waiting for execution. In this embodiment, each record 151 is, as shown in FIG.
It consists of four data. That is, the next record address indicating the address of the next record, the previous record address indicating the address of the previous record, and the program (not shown) stored in the shared memory 1 for executing the process of the corresponding process. It is composed of an instruction code address representing the address of the leading instruction and an argument list address representing the leading address of a list of arguments (not shown) stored in the shared memory 1 and used in the program.

【0016】それぞれのプロセッサPE1,PE2,P
E3には、アドレスとデータの対を格納するキャッシュ
41〜43、プロセステーブルの最初のレコードアドレ
スを格納するレジスタ21〜23(第1のポインタとも
呼び、最初のレコードポインタを表す)、プロセステー
ブルの最終レコードアドレスを格納するレジスタ31〜
33(第2のポインタとも呼び、最終のレコードポイン
タを表す)を備えている。
Respective processors PE1, PE2, P
E3 includes caches 41 to 43 for storing address / data pairs, registers 21 to 23 for storing the first record address of the process table (also referred to as a first pointer).
Call the first record pointer) , and registers 31 to 31 for storing the last record address of the process table.
33 (also called the second pointer,
(Representing data) .

【0017】各プロセッサは図2のプロセス制御フロー
100にしたがって処理を行なう。
Each processor performs processing according to the process control flow 100 of FIG.

【0018】(1)各プロセッサ、例えばPE1は、プ
ロセス判定処理c1では、対応するレジスタ21に保持
するアドレスが0か否かを判別し、これにより、実行可
能なプロセスが存在するかを判定する。本実施例では、
プロセステーブル161に登録されたコードがない場
合、すなわちPE1に実行待ちのプロセスがない場合、
レジスタ21内のアドレスを0に設定しておく。他のレ
ジスタ22、23についても同様である。
(1) In the process determination processing c1, each processor, for example PE1, determines whether the address held in the corresponding register 21 is 0 or not, and thereby determines whether or not there is an executable process. . In this embodiment,
If no records registered in the process table 161, i.e. when there is no execution-waiting process to PE1,
The address in the register 21 is set to 0. The same applies to the other registers 22 and 23.

【0019】今、仮に、PE1は3個のレコ−ド151
a、151b、151cを持つと仮定する。この時、レ
ジスタ21、31にはそれぞれレコ−ド151a、15
のアドレスを保持している。
Now, suppose that PE1 has three records 151.
Suppose we have a, 151b, 151c. At this time, the registers 21 and 31 have records 151a and 15a, respectively.
It holds an address of 1 c .

【0020】(2)仮定によりプロセス判定処理c1で
は、PE1に実行待ちのプロセスが有ると判定されるの
で、プロセス取り出し処理c2で、このレジスタ21内
のアドレスに従って、自プロセッサの実行待ちプロセス
テーブル161の最初のレコードを取り出すつまり、
このレコ−ドをこのテーブルから外し、共有メモリ1内
のPE1用の作業領域(図示せず)に格納する。この
時、レジスタ21内のアドレスをレコ−ド151bのア
ドレスに変更する。さらに、レコ−ド151b内の前レ
コ−ドアドレスを0に変更することにより、このレコ−
ド151bが先頭のレコ−ドであることがわかるように
する。
(2) As a result of the assumption, in the process determination processing c1, it is determined that there is a process waiting for execution in PE1. Retrieve the first record of . That is,
This record is removed from this table and stored in the work area (not shown) for PE1 in the shared memory 1. At this time, the address in the register 21 is changed to the address of the record 151b. Further, by changing the previous record address in the record 151b to 0, this record
It should be understood that the code 151b is the first record.

【0021】(3)次に、プロセス実行処理c3で、取
り出したレコ−ド151aに対応するプロセスを実行す
る。すなわち、このレコ−ド内の命令コードアドレスと
引数リストアドレスを用いて、対応するプロセスの処理
を実行する。
(3) Next, in the process execution process c3, the process corresponding to the retrieved record 151a is executed. That is, the processing of the corresponding process is executed using the instruction code address and the argument list address in this record.

【0022】(4)つぎに、PE1はプロセス分配制御
処理c4を実行する。
(4) Next, the PE1 executes the process distribution control processing c4.

【0023】図3に示すように、この処理では、まず、
ステップb0で、共有メモリ1内のプロセス分配要求プ
ロセッサ番号13を読み出して、その値が`0`か否か
を判定する。後述するように、この番号13には、プロ
セスの分配を要求するプロセッサがあるときには、その
プロセッサが、その番号をここに記憶するようになって
いる。従って、プロセス分配要求プロセッサ番号13の
値が`0`か否かを判定することにより、他のプロセッ
サからプロセス分配要求が出されているか否かを判別す
ることができる。
In this process, as shown in FIG.
In step b0, the process distribution request processor number 13 in the shared memory 1 is read and it is determined whether the value is "0". As will be described later, when there is a processor requesting distribution of a process in this number 13, that processor stores the number here. Therefore, by determining whether or not the value of the process distribution request processor number 13 is "0", it is possible to determine whether or not a process distribution request is issued from another processor.

【0024】今、仮に、この番号13の値が`3`であ
ると仮定する、ステップb0ではプロセスの分配を要求
するプロセッサがあると判定される。
Now, assuming that the value of this number 13 is "3", it is determined in step b0 that there is a processor requesting process distribution.

【0025】この場合、ステップb1で、分配可能な少
なくとも一つのプロセスがあるかを判定する。本実施例
では、対応するプロセステーブル161に登録されたプ
ロセスの個数が2個以上あるとき、分配可能なプロセス
があるとする。
In this case, in step b1, it is determined whether there is at least one process that can be distributed. In this embodiment, when there are two or more processes registered in the corresponding process table 161, it is assumed that there are processes that can be distributed.

【0026】今、仮定により、PE1は2個のレコ−ド
151b、151cを持っているので、プロセスの分配
が可能であると判断される。
Now, according to the assumption, since PE1 has two records 151b and 151c, it is judged that the process can be distributed.

【0027】次のステップb2では、プロセス分配要求
プロセッサ番号13の値(今の仮定によりこれは`3`
である)により、PE3への分配プロセスアドレス14
3に、実行待ちプロセステーブル161の最後のレコー
ドポインタであるレジスタ31内のアドレス(今の例で
は、この値は、このテーブル161の最終のレコ−ド1
51cのアドレスである)を書き込む。これにより、P
E3にプロセス151cを分配したことになる。さら
に、この最終のレコ−ド151cの分配に伴い、レジス
タ31内のアドレスをその前のレコ−ド151bのアド
レスに変更する。さらに、このレコ−ド151b内の次
レコ−ドアドレスを0に変更することにより、このレコ
−ドが最終のレコ−ドであることを示す。
In the next step b2, the value of the process distribution request processor number 13 (this is "3" by the present assumption).
The process address 14 to PE3
3, the address in the register 31 which is the last record pointer of the pending process table 161 (in the present example, this value is the last record 1 of this table 161).
(Which is the address of 51c). This gives P
This means that the process 151c is distributed to E3. Further, with the distribution of the final record 151c, the address in the register 31 is changed to the address of the preceding record 151b. Further, by changing the next record address in the record 151b to 0, it is shown that this record is the final record.

【0028】さらにステップb3で、プロセス分配要求
プロセッサ番号13に値`0`を書き込むことによっ
て、元のプロセス分配要求をクリアする。
Further, in step b3, the original process distribution request is cleared by writing the value "0" into the process distribution request processor number 13.

【0029】ここで、ステップb0,b1で判定した条
件のいずれかが成立しない場合は、プロセスの分配をし
ない。
If either of the conditions determined in steps b0 and b1 is not satisfied, the process is not distributed.

【0030】以上のようにしてプロセス分配制御処理c
4を終了する。
As described above, the process distribution control process c
Finish 4

【0031】(4)ステップc2での判定の結果、その
プロセッサに実行待ちのプロセスがなかった場合、プロ
セス分配要求制御処理c5とプロセス受信処理c6を実
行する。
(4) As a result of the judgment in step c2, if there is no process waiting for execution in the processor, the process distribution request control process c5 and the process reception process c6 are executed.

【0032】これらの処理の内容は、PE3がこれらの
処理を実行する場合を例に取り説明する。
The contents of these processes will be described taking the case where the PE 3 executes these processes as an example.

【0033】PE3は、プロセス判定処理c2を先に実
行したとき、そのプロセッサに実行待ちのプロセスがな
かった場合、プロセス分配要求制御処理c4において、
プロセス分配要求プロセッサ番号13に、そのプロセッ
サの番号、今の例では、値`3`を書き込む。それに伴
い、対応するレジスタ23、33内のアドレスをゼロに
する。
When the process determination processing c2 is executed first, the PE 3 executes the process distribution request control processing c4 when there is no process waiting for execution in the processor.
In the process distribution request processor number 13, the number of the processor, in the present example, the value "3" is written. Accordingly, the addresses in the corresponding registers 23 and 33 are set to zero.

【0034】(5)つぎに、PE3はプロセス受信処理
c6で、自プロセッサへの分配プロセスアドレス143
を読み出し、そのアドレスが0か否かを判別する。その
アドレスが0でないときには、実行待ちのプロセスがP
E3に分配されたことになるので、その読みだしたアド
レスを、PE3に対応するレジスタ23、33に格納す
る。こうして、PE1から分配されたレコ−ド151c
がPE3に対応する実行待ちプロセステーブル163に
登録される。
(5) Next, in the process reception process c6, the PE 3 distributes the process address 143 to its own processor.
Is read and it is determined whether the address is 0 or not. If the address is not 0, the process waiting for execution is P
Since it has been distributed to E3, the read address is stored in the registers 23 and 33 corresponding to PE3. In this way, the record 151c distributed from PE1
Is registered in the pending process table 163 corresponding to PE3.

【0035】以上の処理に於ける、書き込みの競合を生
じうるデータ13、141〜143の読みだし及び書き
込みは、複数のプロセッサの実行時間の衝突による誤操
作を回避するために、例えば、IBMマニュアル″IB
M System/370Extended Arch
itecture PrinciplesofOper
ation SA22−7085−0ページA14″に
述べられるようなコンペア・アンド・スワップ(Com
pare and Swap)手順を用い、読みだした
後にはデータ″0″を書き込むものとする。
In the above processing, the reading and writing of the data 13, 141 to 143, which may cause a write conflict, are performed in order to avoid erroneous operation due to collision of execution times of a plurality of processors. IB
M System / 370 Extended Arch
issue PrinciplesofOpera
ation SA22-7085-0 page A14 ″, compare and swap (Com
It is assumed that the data "0" is written after the data is read by using the pare and Swap procedure.

【0036】本実施例による効果を、図4〜図5を用い
て説明する。
The effects of this embodiment will be described with reference to FIGS.

【0037】従来技術では、各プロセッサは、プロセス
分配のときには、プロセステーブル内のレコ−ドの先頭
にあるプロセスを分配する。先に実施例で述べたプロセ
スの場合、PE1がプロセス151bをPE3に分配す
ることになる。
In the prior art, each processor distributes the process at the head of the record in the process table at the time of process distribution. In the case of the process described in the above embodiment, PE1 distributes process 151b to PE3.

【0038】今、仮に、レコ−ド151aに対応するプ
ロセス(以下ではこれをプロセス151aと呼ぶことが
ある)は共有メモリ1の100番地に第1のデータを書
き、このデータをレコ−ド151bに対応するプロセス
(以下ではこれをプロセス151bと呼ぶことがある)
が読み、プロセス151bは200番地に第2のデータ
を書き、このデータをレコ−ド151cに対応するプロ
セス(以下ではこれをプロセス151cと呼ぶことがあ
る)が読むものとする。
Now, tentatively, the process corresponding to the record 151a (which may be hereinafter referred to as process 151a) writes the first data at address 100 of the shared memory 1 and records this data in the record 151b. Process corresponding to (this may be referred to as process 151b below)
The process 151b writes the second data at the address 200, and the process corresponding to the record 151c (hereinafter sometimes referred to as process 151c) reads the data.

【0039】図4はこのような場合における、従来技術
によるPE1とPE3の処理を時間を追って、記述した
ものである。
FIG. 4 describes the processing of PE1 and PE3 according to the prior art in such a case with time.

【0040】すなわち、プロセス151aの実行による
100番地への書き込みデータはプロセッサPE1内の
キャッシュ41に入るが、このキャッシュがストアイン
タイプであるため、このデータは、共有メモリ1にはす
ぐには転送されない。プロセス151bによる100番
地の読み出しはプロセッサPE3内のキャッシュ43に
行なわれる。この時、キャッシュ43はこのデータがキ
ャッシュ43内に存在しないデータであると公知の方法
により判定すると、主記憶1にこのデータをキャッシュ
43に転送することを要求する。主記憶1は、まず、他
のキャッシュ41、42に、このアドレスのデータを更
新したか否かを公知の方法により問い合わせる。キャッ
シュ41が公知の方法によりこれに応答することになる
のでので、主記憶1を経由して、キャッシュ41から4
3にプロセス151aにより書き込まれたデータが転送
される。さらに、200番地のデータについても同様
に、プロセス151cが書き込むキャッシュ43と、プ
ロセス151cが読みだすキャッシュ41の間でもデー
タ転送が発生し、合計で2回の転送時間が図4内の太線
に示すように、発生する。
That is, although the write data to the address 100 by the execution of the process 151a is stored in the cache 41 in the processor PE1, since this cache is a store-in type, this data is immediately transferred to the shared memory 1. Not done. The reading of address 100 by the process 151b is performed in the cache 43 in the processor PE3. At this time, when the cache 43 determines that this data is data that does not exist in the cache 43 by a known method, it requests the main memory 1 to transfer this data to the cache 43. The main memory 1 first inquires of the other caches 41 and 42 by a known method whether or not the data at this address has been updated. Since the cache 41 responds to this by a known method, the caches 41 to 4 can be accessed via the main memory 1.
The data written by the process 151a to 3 is transferred. Similarly, for the data at address 200, data transfer also occurs between the cache 43 written by the process 151c and the cache 41 read by the process 151c, and the transfer time of two times in total is shown by the bold line in FIG. So it happens.

【0041】図5は上と同じ関係にある二つのデータに
関する、本実施例によるPE1とPE3の処理を時間を
追って、記述したものである。
FIG. 5 describes the processing of PE1 and PE3 according to the present embodiment with respect to two data having the same relationship as the above, in chronological order.

【0042】本実施例ではプロセス151cをPE3に
分配するので、プロセス151aの実行での100番地
への書き込みデータはキャッシュ41に行われ、さら
に、プロセス151bによる100番地のデータの読み
出しはキャッシュ41に行なわれるので、このデータに
関連するキャッシュ間のデータ転送は、発生しない。結
局、キャッシュ間のデータ転送はプロセス151bとプ
ロセス151cの間で転送される100番地のデータに
対してのみである。従って、本実施例では、従来技術に
比べて、キャッシュ間のデータ転送を減らすことができ
る。
In the present embodiment, since the process 151c is distributed to the PE3, the write data to the address 100 in the execution of the process 151a is performed in the cache 41, and further the data at the address 100 is read by the process 151b in the cache 41. Since this is done, no data transfer between caches associated with this data will occur. After all, the data transfer between the caches is only for the data at address 100 transferred between the processes 151b and 151c. Therefore, in this embodiment, the data transfer between the caches can be reduced as compared with the conventional technique.

【0043】なお、本実施例では、プロセス間で受け渡
すデータおよびキャッシュに格納可能なデータの個数は
それぞれ1個としたが、一般に多数のデータが格納可能
なキャッシュを備えるシステムでは、さらに大きな性能
の差異を及ぼすことが明らかである。
In this embodiment, the number of data to be transferred between processes and the number of data that can be stored in the cache are each one, but generally, in a system having a cache that can store a large number of data, even greater performance is achieved. It is clear that it makes a difference.

【0044】また、プロセス分配要求およびプロセス分
配の検出は、上記のように共有メモリ1上の固定アドレ
スのデータ13、141〜143の値が0でないことに
よって行ったが、前述の文献に記載のような通信用レジ
スタにより、この検出処理をさらに高速化することがで
きる。
Further, the process distribution request and the process distribution are detected by the value 13 of the fixed address data 13 and 141 to 143 on the shared memory 1 not being 0 as described above. With such a communication register, the detection processing can be further speeded up.

【0045】[0045]

【発明の効果】本発明によれば、キャッシュをそれぞれ
有する複数のプロセッサからなる並列計算機システムに
おいて、キャッシュ間のデータ転送の回数を減少するこ
とができ、高速な処理が実現できる。
According to the present invention, in a parallel computer system including a plurality of processors each having a cache, it is possible to reduce the number of times of data transfer between caches and realize high-speed processing.

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

【図1】本発明の一実施例の構成図。FIG. 1 is a configuration diagram of an embodiment of the present invention.

【図2】プロセス制御フローの図。FIG. 2 is a diagram of a process control flow.

【図3】図2内のプロセス分配制御処理(c5)の概略
的フローチャート。
3 is a schematic flowchart of a process distribution control process (c5) in FIG.

【図4】従来技術によるプロセス実行の時間経過を表し
たタイムチャート。
FIG. 4 is a time chart showing a time course of process execution according to a conventional technique.

【図5】本発明の実施例によるプロセス実行の時間経過
を表したタイムチャート。
FIG. 5 is a time chart showing the elapsed time of process execution according to an embodiment of the present invention.

【符号の説明】[Explanation of symbols]

1…共有メモリ、13…プロセス分配要求プロセッサ番
号、141、142、143…分配プロセスアドレス、
151a,151b,151c…PE1の実行待ちプロ
セスのレコ−ド、161、162、163…実行待ちプ
ロセステーブル、21、22、23…実行待ちプロセス
テーブルの最初のレコードポインタレジスタ、31、3
2、33…実行待ちプロセステーブルの最終レコードポ
インタレジスタ。
1 ... Shared memory, 13 ... Process distribution request processor number, 141, 142, 143 ... Distribution process address,
151a, 151b, 151c ... Record of PE1 execution waiting process, 161, 162, 163 ... Execution waiting process table, 21, 22, 23 ... First record pointer register of execution waiting process table, 31, 3
2, 33 ... Final record pointer register of the pending process table.

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】それぞれキャッシュを持ち、共有メモリ
共有する複数のプロセッサからなり、 実行待ちプロセ
スを登録する実行待ちプロセステーブルを、各プロセッ
サに対応して上記共有メモリに設け、 上記実行待ちプロセスのうち最初の実行待ちプロセスを
指定するものであって、最初の実行待ちプロセスから最
終の実行待ちプロセスへと、指定を順次変更する第1の
ポインタと、上記実行待ちプロセスのうち最終の実行待
ちプロセスを指定するものであって、最終の実行待ちプ
ロセスから最初の実行待ちプロセスへと、指定を順次変
更する第2のポインタとを各プロセッサ毎に設け、 各プロセッサのうち、上記実行待ちプロセステーブルに
登録された実行待ちプロセスがあるプロセッサは、上記
第1のポインタを参照して、最初の実行待ちプロセスを
取り出して実行し、 プロセスの分配を要求するプロセッサがあり、かつ分配
可能である場合、上記第2のポインタを参照して、最終
の実行待ちプロセスを取り出し、プロセスの分配を要求
するプロセッサに対してその最終の実行待ちのプロセス
を分配する ことを特徴とする並列プロセス管理方法。
1. An execution waiting process comprising a plurality of processors each having a cache and sharing a shared memory.
Each process has a pending process table for registering processes.
In the shared memory corresponding to the server, the first waiting process among the waiting processes
The first waiting process to be specified
The first to sequentially change the designation to the final pending process
Pointer and the last execution wait of the above waiting process
The last process to wait
The specification is changed sequentially from the process to the first pending process.
A second pointer to be further provided is provided for each processor, and the execution-waiting process table among the processors is provided.
The processor with the registered pending process is
Refer to the first pointer to find the first pending process.
There is a processor that takes and executes, and requests the distribution of the process, and the distribution
If possible, refer to the second pointer above and
Request the process distribution by extracting the pending process
The last pending process for the processor
A parallel process management method characterized by distributing the processes.
JP3301292A 1991-10-22 1991-10-22 Parallel process management method Expired - Lifetime JP2517859B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3301292A JP2517859B2 (en) 1991-10-22 1991-10-22 Parallel process management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3301292A JP2517859B2 (en) 1991-10-22 1991-10-22 Parallel process management method

Publications (2)

Publication Number Publication Date
JPH05113960A JPH05113960A (en) 1993-05-07
JP2517859B2 true JP2517859B2 (en) 1996-07-24

Family

ID=17895082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3301292A Expired - Lifetime JP2517859B2 (en) 1991-10-22 1991-10-22 Parallel process management method

Country Status (1)

Country Link
JP (1) JP2517859B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2885708A4 (en) * 2012-08-20 2016-11-09 D Kevin Cameron Processing resource allocation

Also Published As

Publication number Publication date
JPH05113960A (en) 1993-05-07

Similar Documents

Publication Publication Date Title
US9720839B2 (en) Systems and methods for supporting a plurality of load and store accesses of a cache
EP1960878B1 (en) Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions
US5598550A (en) Cache controller for processing simultaneous cache accesses
CN101410797A (en) Transactional memory in out-of-order processors
US20090216928A1 (en) System, method and computer program product for providing a new quiesce state
US20040068620A1 (en) Directory structure permitting efficient write-backs in a shared memory computer system
JP2825906B2 (en) Computer system
US6546465B1 (en) Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol
US20100058001A1 (en) Distributed shared memory multiprocessor and data processing method
JPH05274252A (en) Transaction execution method for computer system
JP3360933B2 (en) Storage control method and storage control device in information processing system
US20090172212A1 (en) System and method for managing input/output requests in data processing systems
US5386560A (en) Execution of page data transfer by PT processors and issuing of split start and test instructions by CPUs coordinated by queued tokens
JP2821345B2 (en) Asynchronous I / O control method
JP3814521B2 (en) Data processing method and apparatus
JP2517859B2 (en) Parallel process management method
JPH0756808A (en) Data cache buffer and storage method
US20060069818A1 (en) Synchronizing direct memory access and evacuation operations in a computer system
JPH01251250A (en) Shared cache memory
JP2517851B2 (en) Parallel priority control method
CN114090468A (en) Data processing method and related device
JP2825839B2 (en) Deadlock detection processing method
JP2830293B2 (en) Program execution method
JPH07120305B2 (en) Database processing method by multiprocessor
JPH11120013A (en) Process request distribution method of multiprocessor system

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term