JPH0260018B2 - - Google Patents
Info
- Publication number
- JPH0260018B2 JPH0260018B2 JP7913286A JP7913286A JPH0260018B2 JP H0260018 B2 JPH0260018 B2 JP H0260018B2 JP 7913286 A JP7913286 A JP 7913286A JP 7913286 A JP7913286 A JP 7913286A JP H0260018 B2 JPH0260018 B2 JP H0260018B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- execution
- procedure
- address
- data transfer
- 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
Links
- 238000000034 method Methods 0.000 claims description 98
- 230000008569 process Effects 0.000 claims description 53
- 230000006870 function Effects 0.000 claims description 4
- 238000010304 firing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 5
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Landscapes
- Multi Processors (AREA)
Description
【発明の詳細な説明】
〔概要〕
マルチプロセツサシステムにおいてマルチタス
キングを行う場合の各手続き(プロセス)間の実
行順序の制御および各プロセツサへのデータ転送
の同期制御を、デペンデンシイ・フロー形式のデ
ータを用いて、専用のプロセツサと記憶手段によ
り効率的に実行する。[Detailed Description of the Invention] [Summary] When multitasking is performed in a multiprocessor system, the execution order of each procedure (process) and the synchronization of data transfer to each processor are controlled using a dependency flow format. Data is used to efficiently execute data using a dedicated processor and storage means.
本発明は、情報処理装置に関するものであり、
特にマルチプロセツサシステムにおけるマルチタ
スキング技術に関する。
The present invention relates to an information processing device,
In particular, it relates to multitasking technology in multiprocessor systems.
近年になつて、ベクトル処理装置4以降、VP
で表す)をマルチプロセツサ構成にしたシステム
によるマルチタスキング処理が注目されて来つつ
ある。これは、大規模科学計算の要求に応えるに
は、シングルプロセツサシステムによつた場合、
あまり大幅な性能向上が期待できないからであ
る。
In recent years, vector processing device 4 and later, VP
Multitasking processing using a system with a multiprocessor configuration (represented by ) is attracting attention. This means that in order to meet the demands of large-scale scientific calculations, a single processor system is required.
This is because no significant performance improvement can be expected.
このため、1つのタスクを複数のプロセスに分
割し、これらを複数のプロセツサVPに実行させ
るマルチタスキング方式が考えられている。 For this reason, a multitasking method has been considered in which one task is divided into multiple processes and these processes are executed by multiple processors VP.
マルチタスキングを行つた場合には、各プロセ
ス間の同期が特に重要な問題となる。すなわち、
各プロセツサに対する複数のプロセスの実行割り
当てを、所定の時間的順序にしたがつて(同期を
とつて)、少ないオーバーヘツドで行う必要があ
る。 When performing multitasking, synchronization between processes becomes a particularly important issue. That is,
It is necessary to allocate execution of a plurality of processes to each processor in accordance with a predetermined temporal order (synchronization) and with little overhead.
次に第6図により、マルチタスキングの概念を
説明する。 Next, the concept of multitasking will be explained with reference to FIG.
図において、aで示される1つのタスクは、b
に示されるプロセス1からプロセス8までの8個
のプロセス(手続き)に分割されて、複数のプロ
セツサによるマルチタスキングが可能にされる。 In the figure, one task denoted by a is b
The process is divided into eight processes (procedures) from process 1 to process 8 shown in FIG. 1 to enable multitasking by a plurality of processors.
この例の場合、プロセス2ないしプロセス5
は、プロセス1の実行結果を利用するものである
ため、プロセス1と並行に実行することができな
い。 In this example, process 2 to process 5
cannot be executed in parallel with process 1 because it uses the execution result of process 1.
同様に、プロセス6とプロセス7は、それぞれ
プロセス2およびプロセス3とプロセス4および
プロセス5の実行完了を待つて実行を開始するこ
とができ、またプロセス8は、プロセス6および
プロセス7の実行完了を待つて実行を開始するこ
とができる。 Similarly, process 6 and process 7 can wait for the completion of execution of process 2, process 3, process 4, and process 5, respectively, and then start execution, and process 8 can wait for the completion of execution of process 6 and process 7, respectively. You can wait and start execution.
ここで、各プロセスの実行時間が同じであり、
プロセス間の同期をとるためのオーバーヘツドが
ないものと仮定すると、第6図bに示される8個
のプロセスを4台のプロセツサで実行すると、水
平方向に並んだプロセスは、同時並行処理が可能
になるため、実行時間をシングルプロセツサの場
合の半分にすることができる。 Here each process has the same execution time and
Assuming there is no overhead for synchronizing processes, if the eight processes shown in Figure 6b are executed on four processors, the horizontally aligned processes can be processed concurrently. Therefore, the execution time can be halved compared to a single processor.
ところで、このように、複数のプロセス間に実
行上の依存関係がある場合のマルチタスキングで
は、一般に実行順序の制御すなわち同期制御が必
要となる。 By the way, in multitasking where there are execution dependencies between a plurality of processes, control of the execution order, that is, synchronization control is generally required.
マルチタスキングにおける同期方法の従来例に
ついて、次に説明する。
A conventional example of a synchronization method in multitasking will be described next.
汎用計算機においては、マルチタスキングは
一般的なものではなく、マルチプロセツサの各
プロセツサはそれぞれ独立したタスクを実行し
ている。勿論プロセツサで同期を取る必要があ
る場合があるが、この場合は、主記憶の一部に
インターロツクをかける事によつて行つてい
る。 Multitasking is not common in general-purpose computers, and each processor in a multiprocessor executes an independent task. Of course, there are times when it is necessary to synchronize the processors, but in this case this is done by interlocking a part of the main memory.
デネルコア社のHEPにおいては、主記憶の
各データに対応してセマフオビツトを持つてい
る。セマフオビツトが0であつたら書き込みは
許可で読み出しは不許可、またセマフオビツト
が1であつたなら、その逆である。このセマフ
オビツトの制御によつて、プロセツサ間の
READ/WRITEの順序制御を行つている。 Denel Core's HEP has a semaphore bit corresponding to each piece of data in main memory. If the semaphore bit is 0, writing is permitted but reading is not permitted, and if the semaphore bit is 1, the reverse is true. By controlling this semaphore bit, it is possible to
Performs READ/WRITE order control.
クレイ社のCRAY−XMPにおいては、HEP
方式のセマフオビツトに相当する物をレジスタ
で持つている。プロセツサのデータの受け渡し
もレジスタで行える。HEP方式と考え方は同
じであるが、レジスタで行うために、より高速
の動作が可能である。 In Cray's CRAY-XMP, HEP
The system has something equivalent to a semaphore bit in a register. Processor data can also be transferred using registers. The idea is the same as the HEP method, but since it is performed using registers, faster operation is possible.
本発明は、高性能のマルチプロセツサシステム
において、従来のマルチタスキングにおけるプロ
セツサ間の同期方法よりも効率的な同期方法をも
つ手続きのデイスパツチ方式を提供しようとする
ものである。
The present invention seeks to provide a procedure dispatch method in a high performance multiprocessor system that has a more efficient synchronization method than the conventional synchronization method between processors in multitasking.
本発明は、一定の実行順序関係をもつ複数の手
続きを複数のプロセツサにデイスパツチするため
に、デペンデンシイ・フロー(DEPENDENCY
FLOW)を利用するものである。
The present invention uses a dependency flow (DEPENDENCY flow) to dispatch multiple procedures having a fixed execution order relationship to multiple processors.
FLOW).
デペンデンシイ・フローは、従属関係にある複
数の制御ステツプを実行順序にしたがつて連鎖し
たコントロールフロー形式のプログラムであり、
フローの各制御ステツプは、予め従属関係を定め
られている1つまたは複数の先行する制御ステツ
プの全てが実行完了したことにより有効化され
る。 Dependency flow is a control flow type program in which multiple control steps in a dependent relationship are chained according to the execution order.
Each control step of the flow is activated upon completion of all one or more preceding control steps to which it has predefined dependencies.
本発明では、複数の手続きの実行手順を、デペ
ンデンシイ・フロー形式で表して記憶手段に格納
しておき、デイスパツチ制御用のプロセツサを用
いて、その記憶手段をアクセスし、実行可能とな
つた手続きを順次検出して、処理用のプロセツサ
に実行指示、すなわちデイスパツチを行つてい
る。 In the present invention, the execution steps of a plurality of procedures are expressed in a dependency flow format and stored in a storage means, and a processor for dispatch control is used to access the storage means and execute executable procedures. It sequentially detects them and issues an execution instruction to the processing processor, that is, a dispatch.
第1図に本発明の原理を、1実施例構成を用い
て示す。図において、
10−1ないし10−nは、それぞれタスクを
構成する複数の手続きを分割実行する第1処理装
置であり、たとえばマルチプロセツサシステムの
プロセツサエレメントPEと呼ばれるものがこれ
に該当する。 FIG. 1 shows the principle of the present invention using one embodiment. In the figure, 10-1 to 10-n are first processing devices that divide and execute a plurality of procedures constituting each task, and correspond to, for example, processor elements PE of a multiprocessor system.
11−1ないし11−nは、それぞれ第1処理
装置10−1ないし10−nの主記憶装置である
(後に、MSUと略称される)。なお、主記憶装置
(MSU)は、複数の第1処理装置によつて共用さ
れるようにしてもよい。一般には、主記憶装置単
位に1つないし複数の第1処理装置をグループ化
したものをサブシステムと呼ぶ。 11-1 to 11-n are main storage units of the first processing units 10-1 to 10-n, respectively (later abbreviated as MSU). Note that the main storage unit (MSU) may be shared by a plurality of first processing devices. Generally, a group of one or more first processing devices in each main storage unit is called a subsystem.
12はタスクを構成する複数の手続きの実行手
順を、デペンデンシイ・フロー・データ化して保
持する実行手順記憶手段である(後に、DFMと
略称される)。 Reference numeral 12 denotes an execution procedure storage means (later abbreviated as DFM) that stores the execution procedures of a plurality of procedures constituting a task in the form of dependency flow data.
13は、実行手順記憶手段12からデペンデン
シイ・フロー・データの実行手順を読み出し、実
行可能となつた実行手順の実行を第1処理装置に
指示する機能と、大容量記憶装置と主記憶装置と
の間のデータ転送を記憶制御装置に指示する機能
とを有するマルチタスク制御用の第2処理装置で
ある(後に、DFPと略称される)。 13 has a function of reading the execution procedure of the dependency flow data from the execution procedure storage means 12 and instructing the first processing device to execute the execution procedure that has become executable; This is a second processing device for multitasking control (later abbreviated as DFP) that has the function of instructing the storage control device to transfer data between the two.
14は、マルチプロセツサシステムの大容量記
憶装置である(後に、CSUと略称される)。 14 is a mass storage unit of the multiprocessor system (later abbreviated as CSU).
15は、第2処理装置13から各第1処理装置
に実行指示を伝え、また実行指示された第1処理
装置10−1ないし10−nの任意のものの主記
憶装置11−1ないし11−nと大容量記憶装置
14との間の接続を制御する記憶制御装置である
(後に、CMUと略称される)。 15 transmits an execution instruction from the second processing device 13 to each first processing device, and main storage devices 11-1 to 11-n of any of the first processing devices 10-1 to 10-n to which execution instructions have been given. This is a storage control unit (later abbreviated as CMU) that controls the connection between the storage device 14 and the mass storage device 14.
第1図において、タスクを構成する複数の手続
きについてそれらの間の実行手順が、コンパイラ
によりデペンデンシイ・フロー・データ化され、
予め実行手順記憶手段12に格納される。
In FIG. 1, the execution steps between multiple procedures constituting a task are converted into dependency flow data by a compiler, and
It is stored in the execution procedure storage means 12 in advance.
デペンデンシイ・フローの各手続きは、実行可
能条件として従属関係が定められている各先行手
続きの実行完了により美行可能となる。 Each procedure in the dependency flow becomes executable upon completion of execution of each preceding procedure for which a dependency relationship is defined as an executable condition.
このため、実行手順記憶手段12のデータに
は、手続きごとに、従属関係をもつ先行手続きの
実行完了の状況を表示する情報が保持されてお
り、それらの先行手続きを実行した第1処理装置
からの通知に基づいて、第2処理装置により更新
されるようになつている。 For this reason, the data in the execution procedure storage means 12 holds, for each procedure, information indicating the execution completion status of preceding procedures that have a dependent relationship. The information is updated by the second processing device based on the notification.
第2処理装置は、第1処理装置からの実行完了
通知により、実行完了した手続きに従属する手続
きの実行可能性を調べ、実行可能な場合に、所定
の第1の処理装置にその手続きの実行を指示し、
さらには記憶制御装置15に対してデータ転送を
指示することができる。 In response to the execution completion notification from the first processing device, the second processing device checks the feasibility of executing a procedure subordinate to the executed procedure, and if it is executable, it sends a predetermined first processing device to execute the procedure. instruct the
Furthermore, it is possible to instruct the storage control device 15 to transfer data.
以上の制御が、実行手順記憶手段12に格納さ
れているデペンデンシイ・フロー・データにした
がつて進められる。 The above control is performed according to the dependency flow data stored in the execution procedure storage means 12.
第1図に示された本発明の原理的構成における
実行手順記憶手段12と第2処理装置13の1実
施例の構成を第2図に示す。図において、
120は、第1図の実行手順記憶手段12に相
当するデペンデンシイ・フロー・メモリ(以降
DFMと略称する)であり、タスクを複数に分割
した各プロセスの実行順序が、コンパイラによ
り、デペンデンシイ・フローのデータ形式で書き
込まれている。
FIG. 2 shows the configuration of one embodiment of the execution procedure storage means 12 and the second processing device 13 in the basic configuration of the present invention shown in FIG. In the figure, 120 is a dependency flow memory (hereinafter referred to as "execution procedure storage means 12" in FIG.
(abbreviated as DFM), in which the compiler writes the execution order of each process in which a task is divided into multiple processes in a dependency flow data format.
130は、第1図の第2処理装置に相当するデ
ペンデンシイ・フロー・プロセツサ(以降DFP
と略称する)である。 130 is a dependency flow processor (hereinafter referred to as DFP) corresponding to the second processing device in FIG.
).
131は、データ・キユー保持部であり、第1
図の記憶制御装置15CMUから送られたデータ
を、DFMに書き込むために一時保持するバツフ
アである。 131 is a data queue holding unit;
This is a buffer that temporarily holds data sent from the storage control unit 15CMU shown in the figure in order to write it to the DFM.
132は、トークンおよびアドレス・キユー保
持部であり、DFMをアクセスするアドレスを一
時保持するバツフアである。プロセスの実行完了
通知は、トークンを用いて行われる。 132 is a token and address queue holding unit, which is a buffer that temporarily holds an address for accessing the DFM. Process execution completion notification is performed using a token.
133は、発火検出部であり、DFMをアクセ
スした結果、読み出されたプロセスが、発火した
か(実行可能となつたか)否かをチエツクする。 Reference numeral 133 denotes an firing detection unit, which checks whether the process read out as a result of accessing the DFM has fired (becomes executable).
134は、DFPコントローラであり、DFMか
ら読み出されたプロセスが発火した場合には、
DFMから、そのプロセスについて読み出された
データの内容にしたがつた制御動作を行う。 134 is a DFP controller, and when a process read from DFM is fired,
Control operations are performed according to the contents of data read out about the process from the DFM.
135は、割込みコントローラであり、DFP
コントローラ134の指示により、第1図に示さ
れている第1処理装置10−1ないし10−n
(PE0〜PENで表す)の該当するものに割込み信
号を送出する。 135 is an interrupt controller, and DFP
According to instructions from the controller 134, the first processing devices 10-1 to 10-n shown in FIG.
Sends an interrupt signal to the corresponding one (represented by PE0 to PEN).
136は、セレクタであり、各第1の処理装置
10−1ないし10−n(PE0〜PENで表す)か
ら出力されるトークン・アドレスおよびトークン
値(後述)を選択する。 A selector 136 selects a token address and a token value (described later) output from each of the first processing devices 10-1 to 10-n (represented by PE0 to PEN).
第3図は、DFMに格納されているデペンデン
シイ・フローを構成するデータのデータ形式を示
す。 FIG. 3 shows the data format of data constituting the dependency flow stored in the DFM.
図において、
30は、発火条件の充足を検出するためのトー
クン値である。実行完了を知らせるトークンが入
力されるたびに初期値から順次+1され、発火値
と比較される。発火値としては、たとえば4ビツ
トの値“1111”が使用される。 In the figure, 30 is a token value for detecting satisfaction of firing conditions. Each time a token indicating completion of execution is input, the initial value is sequentially incremented by 1 and compared with the firing value. For example, a 4-bit value "1111" is used as the firing value.
31は、トークン値の初期値であり、たとえば
3つの事象発生を条件に発火させたい場合には、
トークン値15から3を引いた値12の2進値
“1100”が設定される。この初期値は、トークン
値に移され、前述した所定の先行プロセスの実行
完了ごとに+1されてゆき、発火値“1111”と一
致したときに発火と判定される。 31 is the initial value of the token value. For example, if you want to fire on the condition that three events occur,
The binary value "1100", which is the value 12 obtained by subtracting 3 from the token value 15, is set. This initial value is transferred to the token value, which is incremented by 1 each time the execution of the aforementioned predetermined preceding process is completed, and when it matches the firing value "1111", firing is determined.
32は、制御内容を示すOPコードである。 32 is an OP code indicating control content.
33は、OPコード32の修飾・情報を示すフ
ラグである。 33 is a flag indicating modification/information of the OP code 32.
34は、プロセスの実行を依頼すべき第1処理
装置の番号(PE NOで表す)
35は、割込みコードであり、各第1処理装置
は、DFPからの割込み要求を受け付けたとき、
この割込みコードにより、割込みの種類を判断す
る。 34 is the number of the first processing device to be requested to execute the process (represented by PE NO). 35 is an interrupt code. When each first processing device receives an interrupt request from the DFP,
This interrupt code determines the type of interrupt.
36および37は、DFMアドレスであり、そ
れぞれDFM内の他のデータを再度アクセスする
必要がある場合、たてえば、同期している複数の
プロセスを複数の第1処理装置にそれぞれデイス
パツチする場合にチエーンとして使用される。 36 and 37 are DFM addresses, which are used when it is necessary to access other data in the DFM again, for example, when dispatching multiple synchronized processes to multiple first processing units. Used as a chain.
38は、データ転送指示情報であり、34の
PENOで指定される第1処理装置と第1図の大容
量記憶装置CSUとの間でデータを転送する必要
がある場合に、記憶制御装置CMUに通知される。
この情報には、データ転送の詳細情報が格納され
ている大容量記憶装置CSUのアドレスが含まれ
ている。 38 is data transfer instruction information;
When data needs to be transferred between the first processing unit designated by PENO and the mass storage unit CSU of FIG. 1, the storage control unit CMU is notified.
This information includes the address of the mass storage device CSU where the details of the data transfer are stored.
次に、第2図の実施例について、第1図および
第3図も参照しつつ概略的な動作を説明する。 Next, the general operation of the embodiment shown in FIG. 2 will be described with reference to FIGS. 1 and 3 as well.
各第1処理装置PEからDFPへのプロセスの実
行完了通知、あるいはDFPに対するその他の要
求は、DFMアドレスをともなうトークンにより
行われ、セレクタ136を介して、トークンおよ
びアドレス・キユー保持部132に格納される
(詳細は、第4図により後述される)。 Process execution completion notifications from each first processing unit PE to DFP, or other requests to DFP, are made using a token with a DFM address, and stored in the token and address queue holding unit 132 via the selector 136. (Details will be described later with reference to FIG. 4).
トークンおよびアドレス・キユー保持部132
内に、通知あるいは要求が存在すれば、次にその
アドレスを用いてDFMがアクセスされる。 Token and address queue holding unit 132
If there is a notification or request within, then the DFM is accessed using that address.
DFMから読出されたデータ(第3図参照)は、
発火検出部133に送られる。 The data read from the DFM (see Figure 3) is
The signal is sent to the ignition detection section 133.
発火検出部133は、読出されたデータのトー
クン値に+1して、発火値“1111”に等しいか否
かをチエツクする。 The firing detection unit 133 increments the token value of the read data by 1 and checks whether it is equal to the firing value "1111".
その結果が、“1111”に達していなければ、ト
ークン値に+1した値をDFMの新しいトークン
値として書込む。また上記の+1した値が発火値
“1111”に等しかつた場合には、発火とみなし、
第3図のデータ中のトークン値とトークン値の初
期値とを除く残りのデータを、DFPコントロー
ラ134へ転送するとともに、DFMのデータの
トークン値に初期値を書込む。 If the result does not reach "1111", the value added by 1 to the token value is written as a new token value in DFM. In addition, if the above +1 value is equal to the ignition value "1111", it will be considered as ignition,
The remaining data excluding the token value and the initial value of the token value in the data in FIG. 3 is transferred to the DFP controller 134, and the initial value is written in the token value of the DFM data.
DFPコントローラ134は、発火検出部13
3から転送されたデータ中のOPコードおよびフ
ラグ情報により、実行すべき事柄を判断し、指示
された処理を開始する。次に、いくつかの処理例
を示す。 The DFP controller 134 includes the ignition detection unit 13
Based on the OP code and flag information in the data transferred from 3, the process to be executed is determined and the instructed process is started. Next, some processing examples are shown.
たとえば、複数のプロセスを同期させてデイス
パツチする場合など、DFP処理の継続が指示さ
れている場合には、そのデータ中のDFMアドレ
スを、アクセス136を介してトークンおよびア
ドレス・キユー保持部132へ送り、再度DFM
のアクセスを行わせて、上記の動作を繰り返す。 For example, when continuation of DFP processing is instructed, such as when dispatching multiple processes in synchronization, the DFM address in the data is sent to the token and address queue holding unit 132 via the access 136. , DFM again
, and repeat the above operation.
また、データ転送が指示されている場合には、
前述したように、データ転送指示情報(第3図の
38)を、第1図の記憶制御装置CMUに送り、
処理を依頼する。 In addition, if data transfer is instructed,
As mentioned above, the data transfer instruction information (38 in FIG. 3) is sent to the storage control unit CMU in FIG.
Request processing.
その結果、CMUは、そのデータ転送指示情報
中のCSUアドレスを用いて、CSUから、データ
転送に必要なCSU開始アドレス、オペレーシヨ
ン・コード、MSU開始アドレス、データ転送長
等の情報を取り出し、指示されたデータ転送を行
う。 As a result, the CMU uses the CSU address in the data transfer instruction information to retrieve information such as the CSU start address, operation code, MSU start address, and data transfer length required for data transfer from the CSU, and then issues an instruction. data transfer.
なお他の実施例として、第3図のデータ転送指
示情報38中に、CSU開始アドレス、オペレー
シヨン・コード、MSU開始アドレス、データ転
送長を直接設定しておき、CMUがこの情報を受
け取つたとき、直ちにデータ転送処理を開始でき
るようにすることも可能である。 As another example, the CSU start address, operation code, MSU start address, and data transfer length are directly set in the data transfer instruction information 38 in FIG. 3, and when the CMU receives this information, , it is also possible to start the data transfer process immediately.
さらに、第1処理装置に対する割込みが指示さ
れている場合には、データ中のPE NOおよび割
込みコードを割込みコントローラ135に送り、
処理を依頼する。 Furthermore, if an interrupt to the first processing device is instructed, the PE NO and interrupt code in the data are sent to the interrupt controller 135;
Request processing.
そして割込みコントローラ135は、割込みの
処理依頼を受け取ると、指示されたPE NOの第
1処理装置に対して、割込み信号を送出する。 When the interrupt controller 135 receives the interrupt processing request, it sends an interrupt signal to the first processing device of the specified PE NO.
このようにして、DFPは、複数のプロセスの
実行順序とデータの転送順序とを管理し、同期的
に制御することができる。 In this way, DFP can manage and synchronously control the execution order and data transfer order of multiple processes.
第4図に、DFM内にあるデペンデンシイ・フ
ロー・データとデイスパツチの制御例を示す。図
示の例は、アドレスA,B,C,Dにある4つの
データを示している。 FIG. 4 shows an example of controlling the dependency flow data and dispatch within the DFM. The illustrated example shows four pieces of data at addresses A, B, C, and D.
アドレスAのデータは、プロセス2の実行が第
1処理装置PE2に依頼されることと、アドレス
B,Cのデータにチエイン付けされることを表し
ている。 The data at address A indicates that the first processing device PE2 is requested to execute process 2, and that it is chained to the data at addresses B and C.
アドレスBのデータは、プロセス3の実行が第
1処理装置PE3に依頼されることと、アドレス
Dのデータにチエイン付けされることを表してい
る。 The data at address B indicates that execution of process 3 is requested to the first processing device PE3 and that it is chained to the data at address D.
アドレスCのデータは、プロセス4の実行が第
処理装置PE4に依頼されることを表している。 The data at address C indicates that execution of process 4 is requested to the processing device PE4.
アドレスDのデータは、プロセス5の実行が第
1処理装置PE5に依頼されることを表している。 The data at address D indicates that execution of process 5 is requested to first processing device PE5.
なお、アドレスA,B,C,Dの各データのト
ークン値は、“14”に設定されている。 Note that the token value of each data at addresses A, B, C, and D is set to "14".
ここで、PE1によるプロセス1の実行が完了
ると、PE1からDFPに、DFMアドレスAとトー
クンが通知される。この結果、アドレスAのデー
タがアクセスされ、そのトークン値は+1され
て、“15”となるため発火し、PE2にプロセス2
の実行指示が行われる。 Here, when the execution of process 1 by PE1 is completed, PE1 notifies DFP of the DFM address A and the token. As a result, the data at address A is accessed, and its token value is incremented by 1 to become "15", which causes a fire to be sent to PE2 in process 2.
An execution instruction is given.
続いてチエイン付けされたアドレスB,Cによ
り、それらのデータもアクセスされ、それぞれト
ークン値が+1されて発火し、PE3,PE4にそ
れぞれプロセス3,プロセス4の実行指示が行わ
れる。 Subsequently, those data are also accessed by the chained addresses B and C, their respective token values are incremented by 1 and fired, and PE3 and PE4 are instructed to execute processes 3 and 4, respectively.
さらにアドレスBのデータからチエイン付けさ
れているアドレスDのデータがアクセスされ、こ
れも発火して、PE5にプロセス5の実行指示が
行われる。 Further, the data at address D, which is chained from the data at address B, is accessed, which also fires, and the PE 5 is instructed to execute process 5.
このようにして、PE1からの実行完了通知に
より、PE2ないし、PE5に対して同時にプロセ
ス2ないしプロセス5をデイスパツチすることが
できる。 In this way, processes 2 to 5 can be simultaneously dispatched to PE2 to PE5 in response to the execution completion notification from PE1.
このようにして、複数のプロセスの実行順序を
DFPで管理し、同期をとつてデスパツチするこ
とができる。なお、簡単化のため説明を省略した
が、各プロセスのデイスパツチの際、同時に必要
なデータの転送制御も順序よく実行されることは
勿論である。 In this way, you can control the execution order of multiple processes.
It can be managed with DFP, synchronized and dispatched. Although the explanation has been omitted for the sake of simplicity, it goes without saying that when each process is dispatched, necessary data transfer control is also executed in an orderly manner at the same time.
第5図は、各第1処理装置PEにおけるDFPへ
の実行完了通知あるいはその他の要求を行うため
のトークンおよびアドレス発生機構の1実施例を
示したものである。 FIG. 5 shows one embodiment of a token and address generation mechanism for notifying the DFP of execution completion or making other requests in each first processing device PE.
図において、 110は、第1処理装置PEである。 In the figure, 110 is a first processing device PE.
111は、第1処理装置が実行する命令であ
り、OPコード、インデツクスレジスタ領域X2、
ベース・レジスタ領域B2、デイスプレイスメン
ト領域D2を含む。 111 is an instruction executed by the first processing device, which includes an OP code, an index register area X 2 ,
It includes a base register area B 2 and a displacement area D 2 .
112は、命令デコーダDECである。 112 is an instruction decoder DEC.
113は、DEPフラグである。 113 is a DEP flag.
114は、DFPフラグコピーである。 114 is a DFP flag copy.
115は、トークンである。 115 is a token.
116は、汎用レジスタGPRである。 116 is a general purpose register GPR.
117は、アドレス加算器である。 117 is an address adder.
118は、メモリアドレスレジスタMSARで
ある。 118 is a memory address register MSAR.
119は、DFMアドレスである。 119 is a DFM address.
任意の第1処理装置110は、動作時に、割り
当てられたプロセスの実行を完了したとき、
DFPに対して実行完了通知を行う命令111を
発行する。 During operation, when the optional first processing device 110 completes execution of the assigned process,
An instruction 111 is issued to notify the DFP of completion of execution.
命令111の発行により、そのOPコードは命
令デコーダ112によりデコードされ、DFPに
対する実行完了通知命令であることが識別される
と、DFPフラグ113がオンに設定される。
DFPフラグ113のオン状態は、次のタイミン
グでDFPフラグコピー114に移され、トーク
ン115としてDFPへ出力される。 When the instruction 111 is issued, its OP code is decoded by the instruction decoder 112, and when it is identified as an execution completion notification instruction for the DFP, the DFP flag 113 is set on.
The on state of the DFP flag 113 is transferred to the DFP flag copy 114 at the next timing and output as a token 115 to the DFP.
また命令111のアドレス修飾データのX2,
B2,D2はDFMのアドレスを生成するために用い
られる。このうち、X2,B2は汎用レジスタGPR
に送られて、それぞれインデツクス値とベースア
ドレス値とが読出され、アドレス加算器117で
D2とともに加算される。加算結果のアドレスは
MSAR118に設定され、次にDFMアドレス1
19としてMFPへ出力される。 Also, X 2 of the address modification data of instruction 111,
B 2 and D 2 are used to generate the DFM address. Of these, X 2 and B 2 are general-purpose registers GPR
The index value and base address value are read out, and the address adder 117 reads out the index value and base address value.
Added together with D 2 . The address of the addition result is
MSAR118, then DFM address 1
It is output to the MFP as 19.
先に第2図で説明したように、DFPに入力さ
れたトークンおよびDFMアドレスはアクセス1
36からトークンおよびアドレス・キユー保持部
132に書込まれ、DFMのアクセスおよび発火
検出等が行われる。 As previously explained in Figure 2, the token and DFM address entered into the DFP are accessed by access 1.
36 to the token and address queue holding unit 132, and DFM access, firing detection, etc. are performed.
本発明によれば、マルチタスキングにおける各
プロセツサへの手続き(プロセス)のデイスパツ
チおよびデータ転送の同期制御が効率化され、オ
ーバーヘツドを小さくすることができるため、ベ
クトル・プロセツサなどの高速の処理装置をマル
チプロセツサ構成で用いた場合に、システム性能
の向上を図ることができる。
According to the present invention, the dispatch of procedures (processes) to each processor in multitasking and the synchronized control of data transfer can be made more efficient, and the overhead can be reduced. When used in a multiprocessor configuration, system performance can be improved.
第1図は本発明の原理的構成図、第2図は本発
明の1実施例の構成図、第3図はデペンデンシ
イ・フローのデータ形式の説明図、第4図はデペ
ンデンシイ・フロー・データとデイスパツチ制御
例の説明図、第5図は第1処理装置内のトークン
およびアドレス発生機構を示す図、第6図はマル
チタスキングの概念図である。
第1図中、10−1〜10−n……第1処理装
置PE、11−1〜11−n……主記憶装置
MSU、12……実行手順記憶手段DFM、13…
…第2処理装置DFP、14……大容量記憶装置
CSU、15……記憶制御装置CMU。
Figure 1 is a diagram showing the basic configuration of the present invention, Figure 2 is a diagram showing the configuration of one embodiment of the invention, Figure 3 is an explanatory diagram of the data format of dependency flow, and Figure 4 is a diagram showing the data format of dependency flow. FIG. 5 is a diagram illustrating an example of dispatch control, FIG. 5 is a diagram showing a token and address generation mechanism in the first processing device, and FIG. 6 is a conceptual diagram of multitasking. In FIG. 1, 10-1 to 10-n...first processing device PE, 11-1 to 11-n...main storage device
MSU, 12... Execution procedure storage means DFM, 13...
...Second processing unit DFP, 14...Mass storage device
CSU, 15...Storage control unit CMU.
Claims (1)
とを含むサブシステムの1個ないし複数個と、大
容量記憶装置と、前記1個ないし複数個のサブシ
ステムを前記大容量記憶装置に接続する記憶制御
装置とを有するマルチプロセツサシステムにおい
て、 タスクを構成する複数の手続きの実行手順が、
デペンデンシイ・フロー形式のデータで表されて
格納されている実行手順記憶手段と、 前記実行手順記憶手段から実行手順を読み出し
て、前記サブシステムの第1処理装置に処理の実
行を指示する第2処理装置とをそなえ、 前記実行手順記憶手段に格納されているデペン
デンシイ・フロー形式のデータは、前記手続きご
とに作成されていて、それぞれ当該手続きが実行
可能となつているか否かを示す情報とデータ転送
を指定可能な情報とを含み、 前記第2の処理装置は、実行手順記憶手段から
読み出した前記データ中の各情報に基づいて、そ
の手続きが実行可能となつたか否かを判断する機
能と、実行可能であつた場合でさらにデータ転送
が指示されている場合には、前記記憶制御装置に
対し、大容量記憶装置と指定されたサブシステム
の主記憶装置との間のデータ転送実行を指示する
機能とをもつことを特徴とするマルチタスキング
方式。[Scope of Claims] 1. One or more subsystems including one or more first processing devices and a main storage device, a mass storage device, and one or more subsystems including one or more first processing devices and a main storage device; In a multiprocessor system having a storage control device connected to a mass storage device, the execution procedure of multiple procedures constituting a task is
an execution procedure storage means that is stored and expressed as data in a dependency flow format; and a second process that reads an execution procedure from the execution procedure storage means and instructs a first processing device of the subsystem to execute the process. The data in the dependency flow format stored in the execution procedure storage means is created for each procedure, and each includes information indicating whether the procedure is executable or not, and data transfer. the second processing device has a function of determining whether or not the procedure is executable based on each piece of information in the data read from the execution procedure storage means; If it is possible to perform the data transfer and further data transfer is instructed, instruct the storage control device to execute the data transfer between the mass storage device and the main storage device of the designated subsystem. A multitasking method characterized by having the following functions.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7913286A JPS62236063A (en) | 1986-04-08 | 1986-04-08 | Multitasking system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7913286A JPS62236063A (en) | 1986-04-08 | 1986-04-08 | Multitasking system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62236063A JPS62236063A (en) | 1987-10-16 |
JPH0260018B2 true JPH0260018B2 (en) | 1990-12-14 |
Family
ID=13681422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7913286A Granted JPS62236063A (en) | 1986-04-08 | 1986-04-08 | Multitasking system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62236063A (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6289197B2 (en) * | 2014-03-24 | 2018-03-07 | 三菱電機株式会社 | Plant control equipment engineering tool |
-
1986
- 1986-04-08 JP JP7913286A patent/JPS62236063A/en active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS62236063A (en) | 1987-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2559784B2 (en) | Virtual processing method and virtual processor in multiprocessor array | |
US5056000A (en) | Synchronized parallel processing with shared memory | |
EP0087978B1 (en) | Information processing unit | |
EP0061096B1 (en) | Data processing system for parallel processing | |
EP0712076B1 (en) | System for distributed multiprocessor communication | |
US5043873A (en) | Method of parallel processing for avoiding competition control problems and data up dating problems common in shared memory systems | |
JP3461704B2 (en) | Instruction processing system and computer using condition codes | |
US5165038A (en) | Global registers for a multiprocessor system | |
JPH04348451A (en) | Parallel computer | |
JPH06231094A (en) | Vector processor and its control method | |
JP2004054916A (en) | Method of executing hardware support communication between processors | |
JPH01269142A (en) | Buffer memory control system | |
JP2003271574A (en) | Data communication method for shared memory type multiprocessor system | |
JPS6334490B2 (en) | ||
US5623685A (en) | Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency | |
JPH0260018B2 (en) | ||
JPH0260021B2 (en) | ||
JP2594140B2 (en) | Data driven data processor | |
JPH0340169A (en) | Multiple processor system and method of controlling plurality of processor | |
JPH0346033A (en) | Data transfer control method for inter-job | |
JPS629460A (en) | Instruction control system for multi-processor system | |
JPH0316652B2 (en) | ||
JPH0628186A (en) | Method and processor for parallel processing of plural process arithmetic units | |
JPS6343784B2 (en) | ||
JPH06162068A (en) | Vector processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |