JPS6298432A - Method and device for synchronizing control - Google Patents

Method and device for synchronizing control

Info

Publication number
JPS6298432A
JPS6298432A JP60237253A JP23725385A JPS6298432A JP S6298432 A JPS6298432 A JP S6298432A JP 60237253 A JP60237253 A JP 60237253A JP 23725385 A JP23725385 A JP 23725385A JP S6298432 A JPS6298432 A JP S6298432A
Authority
JP
Japan
Prior art keywords
vector
condition
data type
entity
procedure
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
Application number
JP60237253A
Other languages
Japanese (ja)
Inventor
Toyohiko Kagimasa
豊彦 鍵政
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP60237253A priority Critical patent/JPS6298432A/en
Publication of JPS6298432A publication Critical patent/JPS6298432A/en
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To execute quickly and efficiently and also with a high reliability a synchronizing control between plural operation procedures to a data, by expressing a Petri net by an integer vector, and bringing a condition of a synchronizing control which is expressed by a vector, to a vector operation at the time of execution of an operating procedure to a data type. CONSTITUTION:A state counter vector shows the number of stones of all places in some time point of a Petri net, according to a graph expression of the Petri net. When describing a synchronizing control of a data operation, when the start and the end of an operating procedure are brought to a transition, respectively, and a condition required for the start and the end is defined as a place, most of synchronizing controls required for a practical use can be realized. Also, when a vector expression of the Petri net is used, the operation for the synchronizing control can be executed by three vector operations of size comparison, subtraction and addition of every element of the vector. The size comparison can be replaced with a non-negative decidion of a result of subtraction.

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は計算機におけるデータJ1■作の同期制御方法
および装置に係り、1lilI゛にオブジェクl向プロ
グラミングなどのデータのカプセル化における同期制御
に好適な同期制御方法および装置に関する。
[Detailed Description of the Invention] [Field of Application of the Invention] The present invention relates to a method and apparatus for synchronous control of data creation in a computer, and is suitable for synchronous control in data encapsulation such as object programming. The present invention relates to a synchronous control method and device.

〔発明の背景〕[Background of the invention]

データに対して複数の操作があれは、操作の実行の順序
に制約があることが多い。例えばあるバッファに対して
書き込みと読み出しの二つの操作がある場合、書き込み
のあとに読み出しを行う必要がある。また、多重タスク
環境で上記のバッファを操作する場合、上記制約に加え
て、書き込みは排他的に行い抗み出しは並行して複数タ
スクが実行できるという制約が必要となる。これらの制
約を守るよう制御するのを同期制御と呼ぶ。データのカ
プセル化では、データに対する操作をプログラムの各所
に散在させずに、個々の操作を操作手続きとして定義し
同じデータ型に対する操作手続きを一箇所にデータ型の
定義とともにまとめて記述する。nだ、いくつかのプロ
グラム言語では操作手続き間の同期関係を記述するだめ
の制御式を、jF <ことができ、同期制御の容易化が
図られている。
When multiple operations are performed on data, there are often restrictions on the order in which the operations are performed. For example, if there are two operations, write and read, for a certain buffer, it is necessary to perform the read after the write. Furthermore, when operating the above-mentioned buffer in a multi-task environment, in addition to the above-mentioned constraints, there must be constraints such that writing can be done exclusively and multiple tasks can execute extrusion in parallel. Control to comply with these constraints is called synchronous control. In data encapsulation, each operation on data is defined as an operation procedure, and the operation procedures for the same data type are written in one place together with the data type definition, instead of having operations on data scattered throughout the program. In some programming languages, a control expression that describes the synchronization relationship between operation procedures can be written as jF<, which facilitates synchronization control.

従来、上記割付」1式による同期制御の実現については
、情報処理学会論文誌、Vol、24.AI(1983
年)における安藤他3名にょる″分散型システム記述言
語Concurrent Cの設計とその処理系の実現
″と題する文献において論じられているように、操作手
続きを実行しているタスク数をカウントするカウンタと
、カウンタへのアクセスを排他側@jするだめのセマフ
ォと呼ばれる排他制御手段を、操作手続きの中で判定お
よび更新していく方法が採られている。
Conventionally, implementation of synchronous control using the above-mentioned layout 1 set has been described in Information Processing Society of Japan Transactions, Vol. 24. AI (1983
As discussed in the paper titled "Design of the distributed system description language Concurrent C and realization of its processing system" by Ando et al. A method is adopted in which an exclusive control means called a semaphore, which excludes access to the counter, is determined and updated during the operation procedure.

上記方法では、複雑な同期制御を実現できるが複数のカ
ウンタとセマフォを何Mにも分けてアクセスするので、
実行時の効率が悪いという問題点があった。
With the above method, complex synchronization control can be realized, but since multiple counters and semaphores are divided into M numbers and accessed,
There was a problem with poor efficiency during execution.

〔発明の目的〕[Purpose of the invention]

本発明の目的は、データに対する複数の操作手続き間の
同期を速くかつ効率よく壕だ信頼性高く行う同期制御方
法および装置を提供することにある。
An object of the present invention is to provide a synchronization control method and apparatus that synchronizes a plurality of data manipulation procedures quickly, efficiently, and with high reliability.

〔発明の概要〕[Summary of the invention]

同期制御を記述するモデルの一つにペトリネットと呼ば
れるものがあり、データ操作の同期制御のほとんどのも
のはこのペトリネットによシ記述可能である。壕だ、ペ
トリネットは整数ベクトルで表現することができるので
、データ型に対する操作手続きの実行時にベクトル表現
された同期制御の条件をベクトル演算すれば、従来のタ
スク数のカウンタやセマフォごとに岩なる演算を行う同
期制御方法にくらべてより高速な同期制御を実現できる
。比較的単純な同期側6+17jらはペトリネットのベ
クトル表現の整数ベクトルi+、ビット列にすることが
できる。その場合、ビット列の排他的論理和で減算、論
理和で加算を行うことができるので、よシ高速な同期制
御が可能となる。
One of the models for describing synchronous control is called a Petri net, and most of the synchronous control of data operations can be described using this Petri net. Well, Petri nets can be expressed as integer vectors, so if you perform a vector operation on the synchronization control conditions expressed as a vector when executing an operation procedure for a data type, it will become a rock for each task count counter and semaphore. Faster synchronous control can be achieved compared to synchronous control methods that perform calculations. The relatively simple synchronization side 6+17j can be an integer vector i+ of a vector representation of a Petri net, and a bit string. In this case, since subtraction can be performed using the exclusive OR of the bit strings and addition can be performed using the logical sum, much faster synchronization control is possible.

さらに、操作手続きのコール命令およびリターン命令の
機能の中でハードウェアにより本発明の同期制御方法を
実施すれば、複数命令で同期’dtlJ御を行うよりも
、まと捷りが良く、より効率的な制御の実行を行える可
能性が高い。また、ハードウェアで実施すれば確実で信
頼性の高い同期制御が可能となる。
Furthermore, if the synchronous control method of the present invention is implemented by hardware in the function of the call instruction and return instruction of the operation procedure, it will be more organized and efficient than performing synchronous 'dtlJ control using multiple instructions. There is a high possibility that it will be possible to carry out effective control. Moreover, if implemented in hardware, reliable and highly reliable synchronous control becomes possible.

〔発明の実施例〕[Embodiments of the invention]

以下、本発明の同期制御方法および装置の実施例を説明
するが、ます、本発明の基礎であるペトリネットについ
て説明する。ペトリネットは第6図に示すように場所5
0,51.52と遷移53゜54.55と呼ばれる2種
類の節点を持つ2部有向グラフである。各場所は黒丸で
示すいくつかの石を持つことができる。ある遷移に向う
枝を持つ全ての場所に、枝の本数以上の石があるときに
その遷移は発火可能という。遷移が発火するとその遷移
へ向う枝を持つ全ての場所の石を枝の本数だけ減らしそ
の遷移から枝が向う全ての場所の石を枝の本数だけ増や
す。発火は遂次的に行われる。
Embodiments of the synchronous control method and apparatus of the present invention will be described below, but first the Petri net, which is the basis of the present invention, will be described. The Petri net is located at location 5 as shown in Figure 6.
It is a bipartite directed graph with two types of nodes called 0,51.52 and transition 53°54.55. Each location can have a number of stones, indicated by black circles. A transition is said to be ignitable if there are more stones than there are branches in every location that has branches pointing towards it. When a transition fires, the stones in all locations with branches heading toward that transition are reduced by the number of branches, and the stones in all locations with branches heading from that transition are increased by the number of branches. Ignition occurs sequentially.

葦だ、ペトリネットはすべての場所の石の数を保持する
カウンタベクトルを用いてあられすこともできる。ベク
トルの要素は一つの場所の持つ石の数である。初期状態
の石の配置を示す初期カウンタベクトルと、各遷移ごと
に発火可能となる最小の石の数を示す減カウンタベクト
ルと発火時に増やす石の数を示す加カウンタベクトルの
組を定義すれば一つのペトリネットが定義できる。第4
図の例では、遷移t153を示すカウンタベクトルは、
減ベクトルが(1,0,1)、加ベクトルが(1,1゜
0)、t254を示すカウンタベクトルは減ベクトルが
(1,1,0)、加ベクトルが(0,0,1)。
However, a Petri net can also be created using a counter vector that keeps track of the number of stones at every location. The elements of the vector are the number of stones in one location. By defining a set of an initial counter vector that indicates the initial state stone arrangement, a decrement counter vector that indicates the minimum number of stones that can be fired at each transition, and an increment counter vector that indicates the number of stones that can be increased at the time of firing, it becomes one. One Petri net can be defined. Fourth
In the illustrated example, the counter vector indicating transition t153 is
The subtraction vector is (1, 0, 1), the addition vector is (1, 1° 0), and the counter vector indicating t254 has a subtraction vector of (1, 1, 0) and an addition vector of (0, 0, 1).

t355を示すカウンタベクトルは減ベクトルが(0,
1,O)、加ベクトルが(0,0,2)、初期状態を示
すカウンタベクトルは(1,1,O)である。
The counter vector indicating t355 has a decrement vector of (0,
1, O), the additive vector is (0, 0, 2), and the counter vector indicating the initial state is (1, 1, O).

ベクトル表現の場合、ペトリネットの動作は次のように
して行われる。まず、ペトリネットの状態を示す状態カ
ウンタベクトルに初期カウンタベクトルの値をセットす
る。状態カウンタベクトルと遷移の入力カウンタベクト
ルを比較して全要素について状態カウンタベクトルの値
が入力カウンタベクトルの値より太きいか等しい場合に
、その遷移が発火可能となる。遷移が発火すると状態カ
ウンタベクトルから発火した遷移の入力カウンタベクト
ルを減算し、さらに、その結果に対して発火した遷移の
出力カウンタベクトルを加算してその結果を新しい状態
カウンタベクトルの値とする。
In the case of vector representation, the Petri net operates as follows. First, the value of the initial counter vector is set in the state counter vector indicating the state of the Petri net. The state counter vector is compared with the input counter vector of the transition, and if the value of the state counter vector is greater than or equal to the value of the input counter vector for all elements, the transition can fire. When a transition fires, the input counter vector of the fired transition is subtracted from the state counter vector, and the output counter vector of the fired transition is added to the result, and the result is set as the value of the new state counter vector.

すなわち、状態カウンタベクトルは、ペトリネットのグ
ラフ表現で言えばぺ) IJネットのある時点での全場
所の石の個数を示していることになる。
In other words, the state counter vector indicates the number of stones in all locations of the IJ net at a certain point in time in a Petri net graph representation.

データ操作の同期制御をペトリネットで記述するには、
操作手続きの開始と終了をそれぞれ遷移とし、開始と終
了に必要な条件を場所として定義すれば、実用上必要な
ほとんどの同期制御を実現できる。そして、ペトリネッ
トのベクトル表現を用いれば、同期制御のだめの演算は
、ベクトルの要素ごとの大小比較および減算と加算の3
ベクトル演算で行うことができる。大小比較は減算結果
の非負判定で代用することもできる。
To describe synchronous control of data operations using Petri nets,
By defining the start and end of an operation procedure as transitions, and defining the conditions necessary for the start and end as locations, most of the synchronous control needed in practice can be achieved. Using the vector representation of a Petri net, the basic operations for synchronous control are the following: comparison of the magnitude of each element of the vector, subtraction, and addition.
This can be done using vector operations. The magnitude comparison can also be replaced by determining the non-negativeness of the subtraction result.

次に、本発明の同期制御方法の一実施例を第1図、第2
図、第3図、第4図によシ説明する。第1図は本実施例
の構成図である。主記憶ユニットlには、操作されるデ
ータ型の実体データ12および操作手続き群13に加え
て、実体データの制御情報を持つ実体テーブル10およ
び定義テーブル11を格納している。定義テーブル11
はデータ型の定義の数だけ、実体テーブルlOは実体の
数だけ作成する。中央処理装置2はベクトル・レジスタ
群14およびベクトル演算器15を有する。
Next, an embodiment of the synchronous control method of the present invention is shown in FIGS. 1 and 2.
This will be explained with reference to FIGS. 3 and 4. FIG. 1 is a configuration diagram of this embodiment. The main storage unit 1 stores an entity table 10 and a definition table 11 having control information for the entity data, in addition to entity data 12 of the data type to be manipulated and a group of operation procedures 13. Definition table 11
Create as many data type definitions as there are data type definitions, and create as many entity tables as there are entities. The central processing unit 2 has a vector register group 14 and a vector arithmetic unit 15.

第2図は定義テーブル11のフォーマット図である。定
義テーブル11は、定義されるデータ型の操作手続きご
とに、手続きエントリ・アドレス40、操作手続きの開
始時をペトリネットの遷移とみなした場合のペトリネッ
トのベクトル表現における減ベクトル(SBVl)41
と加ベクトル(ADVl) 42、同様に手続き終了時
の減ベクトル(SBV2)43と加ヘクトル(ADv2
)44、オヨび状態ベクトル初期値である初期ベクトル
45を保持する。定義テーブル11の情報によりデータ
型の同期制御のだめの一つのペトリネットが定義されて
いる。第3図は実体テーブル10のフォーマット図で多
)る。実体が属するデータ型の定義テーブル・アドレス
46、実体が属するデータ型の同期■、1]御をあらわ
すペトリネットの当該実体に対する状態ベクトル47、
状態ベクトル参照時のロックに使用するロック変数48
、実体データ・アドレス49を保持する。定義テーブル
11と実体テーブル10のベクトル情報は次のように言
いかえることができる。減ベクトル41.43はそれぞ
れ手続きの開始および終了に必要な条件の成立回数を並
べたものであり、加ベクトル42.44はそれぞれ手続
きの開始および終了後に新たに成立する条件の回数を並
べたものである。状態ベクトル47はその時点での各条
件の成立回数である。
FIG. 2 is a format diagram of the definition table 11. The definition table 11 includes, for each operation procedure of the defined data type, a procedure entry address 40 and a reduction vector (SBVl) 41 in the vector representation of the Petri net when the start of the operation procedure is regarded as a transition of the Petri net.
and addition vector (ADVl) 42, similarly, subtraction vector (SBV2) 43 and addition vector (ADv2) at the end of the procedure.
) 44, holds the initial vector 45 which is the initial value of the state vector. The information in the definition table 11 defines one Petri net for data type synchronization control. FIG. 3 is a format diagram of the entity table 10. A definition table address 46 of the data type to which the entity belongs, a state vector 47 for the entity of the Petri net representing the synchronization of the data type to which the entity belongs,
Lock variable 48 used for locking when referencing state vector
, holds the entity data address 49. The vector information in the definition table 11 and entity table 10 can be rephrased as follows. The subtractive vectors 41 and 43 are a list of the number of times the conditions necessary for the start and end of a procedure are satisfied, respectively, and the add vectors 42 and 44 are a list of the number of new conditions that are satisfied after the start and end of the procedure, respectively. It is. The state vector 47 is the number of times each condition is satisfied at that point.

これらのベクトルはみな、データ型の同期制御に必要な
すべての条件と1対1に対応する要素を持ち、ベクトル
中での対応要素の位置も同じである。
All of these vectors have elements that correspond one-to-one with all the conditions necessary for data type synchronization control, and the positions of the corresponding elements in the vectors are also the same.

プログラム実行中にあるデータ型の実体がつくられたと
き、実体データ12に加えて当該実体のだめの実体テー
ブル10を作成し、当該データ型の定義テーブル11の
初期ベクトル45の値を当該実体テーブルlOの状態ベ
クトル47に代入する。実体データ12に対して操作手
続き群13中の操作手続きを実行するときは、操作手続
きの開始部と終了部で、それぞれ減ベクトル41および
加ベクトル42、減ベクトル43および加ベクトル43
を用いて第4図のフローチャー1・に示す手順で同期制
御のだめの演11を実行する。開始部の場合、同期が可
の状態ならば状態ベクトル47を更新しデータ操作に移
る。不可りなC〕は例外条件を発生させる。終了部の場
合、同期が町の状態ならば状態ベクトル47を更角し1
1’i:部子続きからリターンする。不可ならば例外条
件を発生させる。
When an entity of a certain data type is created during program execution, a storage entity table 10 for the entity is created in addition to the entity data 12, and the value of the initial vector 45 of the definition table 11 of the data type is set in the entity table lO. is assigned to the state vector 47 of . When executing an operation procedure in the operation procedure group 13 on the entity data 12, a subtraction vector 41 and an addition vector 42, a subtraction vector 43 and an addition vector 43 are used at the start and end of the operation procedure, respectively.
Using this, the synchronous control procedure 11 is executed according to the procedure shown in flowchart 1 in FIG. In the case of the start part, if synchronization is possible, the state vector 47 is updated and data manipulation begins. Impossible C] generates an exception condition. In the case of the end part, if the synchronization is in the town state, change the state vector 47 to 1
1'i: Return from the continuation of the section. If it is not possible, an exception condition will be generated.

本実施例の同期制御方法によれば、複数ベクトルのロー
ド、ベクトル減算、ベクトル加′pi、+ベクトル要素
の非負判定がパイプライン的に並列に行われるので、同
期制御に要する時間は従来の方法にくらべて数分の1程
度に短縮することができる。
According to the synchronous control method of this embodiment, the loading of multiple vectors, vector subtraction, vector addition 'pi, and non-negative determination of +vector elements are performed in parallel in a pipeline manner, so the time required for synchronous control is shorter than that of the conventional method. The time can be reduced to a fraction of that of the previous one.

次に、本発明の同期制制回路の一実施例を第2図、第3
図、第5図により説明する。第5図は本実施例の構成図
である。主記憶ユニット1は前記同期制御方法の実施例
と同じように実体テーブル10、定義テーブル11.実
体データ12、操作手続き13を保持する。同期制制回
路6′は主記憶ユニツ)lに加えで、命令1jll a
1回路20、手続きインチフス・レジスタ21、実体テ
ーブル・アドレス・レジスタ22、ロック変数が茄令の
第1オペランドの値に等しいならば、第2オペランドの
値に更新するという通常のコンベア・アンド・スワップ
命令を行うテーブル・ロック回路23、ベクトル・ロー
ド回路25、回路23から回路25への信号勝24、ベ
クトル・レジスタ群14、ベクトル減算器31、ベクト
ル加算器32、ベクトル符号判定器33、同期制御によ
る例外条件発生を示スノリツプフロツプ34、割り込み
発生回路35、ベクトル格納回路37、回路35から回
路37への信号への信号線36、回路37から回路23
への信号線38から成る。定義テーブル11および実体
テーブルlOは前記同期制御方法の実施例と全く同様で
あり、それぞれ第2図および第3図に示すフォーマット
を持つ。
Next, one embodiment of the synchronization control circuit of the present invention is shown in FIGS. 2 and 3.
This will be explained with reference to FIG. FIG. 5 is a configuration diagram of this embodiment. The main memory unit 1 includes an entity table 10, a definition table 11. Holds entity data 12 and operation procedures 13. In addition to the main memory unit 6', the synchronization control circuit 6' stores instructions 1jll a
1 circuit 20, procedure index register 21, entity table address register 22, normal conveyor-and-swap in which if the lock variable is equal to the value of the first operand of the command, it is updated to the value of the second operand. Table lock circuit 23 for executing instructions, vector load circuit 25, signal input 24 from circuit 23 to circuit 25, vector register group 14, vector subtractor 31, vector adder 32, vector sign determiner 33, synchronization control indicates the occurrence of an exception condition due to a snorp flop 34, an interrupt generation circuit 35, a vector storage circuit 37, a signal line 36 from circuit 35 to circuit 37, and a signal line 36 from circuit 37 to circuit 23.
It consists of a signal line 38 to. The definition table 11 and the entity table IO are exactly the same as those in the embodiment of the synchronous control method, and have the formats shown in FIGS. 2 and 3, respectively.

次に本同期制制回路の実施例の動作を説明する。Next, the operation of this embodiment of the synchronization control circuit will be explained.

まず、データ型の定義時にソフトウェアによυ主記憶ユ
ニツ)1にそのデータ型に対する定義テーブル11を作
成し、データ型の実体作成時に実体データ12とともに
、実体テーブル10を作成しておく。ある実体に対して
操作手続きをコールする命令が実行されると、命令制御
回路20は、まず命令のオペランドとして示された実体
テーブル10のアドレスと操作手続きのインチフスをそ
れぞれ、実体テーブル・アドレス・レジスタ22および
手続きインチフス・レジスタ21にロードする。テーブ
ル・ロック回路23は実体テーブル・アドレス・レジス
タ22のアドレスによシ実体テーブルlO中のロック変
数48のアドレスを求め、ロック変数48に対してコン
ベア・アンド・スワップによりマルチ・プロセサ・シス
テムにおける8他プロセサが同一実体に対して同期制御
機能を実行中かどうかすなわち1であるかどうかをテス
トし、他プロセサが実行中ならばそれが終るまでテスト
を繰り返す。実行中でないすなわち0であるならばロッ
ク変数48の値を1にセットしてテーブルをロックし、
信号線24によりベクトル・ロード回路25に知らせ実
行を開始させる。ベクトル・ロード回路25は実体テー
ブル10中の状態ベクトル47をベクトルレジスタVR
O26に、定義テーブルll中の手続きインチフス・レ
ジスタ21のインチフスに該当する手続きの開始時の減
ベクトル41および加ベクトル42をそれぞれベクトル
・レジスタVRI 27.VR228にロードする。こ
のベクトルのロードとベクトル要素についてのパイプラ
イン並列に、ベクトル減算器31によるVRO26から
VR,127を減じその結果をベクトル・レジスタVR
329にロードする動作、ベクトル符号判定器33によ
るVR,329の全要素が正または0かの判定動作、ベ
クトル加算器32によるVR3とVR4を加えその結果
をベクトル・レジスタVfL430にロードする動作を
行9゜ベクトル符号判定器33はVR329の少くとも
一つの要素が負であれは、フリップフロップ34に1を
セットする。ベクトル格納回路37はVR430の内容
を実体テーブルlO中の状態ベクトル47に格納し、格
納が完了すれば信号線38によりテーブル・ロック回路
23に完了を知らせる。割り込み発生回路35はフリッ
プフロップ34が1であれはベクトル格納回路37に信
号線36により知らせ、ベクトルの格納を禁止する。
First, when a data type is defined, a definition table 11 for the data type is created in the main memory unit 1 by software, and when an entity of the data type is created, an entity table 10 is created together with the entity data 12. When an instruction to call an operation procedure for a certain entity is executed, the instruction control circuit 20 first stores the address of the entity table 10 indicated as the operand of the instruction and the index of the operation procedure in the entity table address register. 22 and procedure inch register 21. The table lock circuit 23 obtains the address of the lock variable 48 in the entity table 10 from the address of the entity table address register 22, and performs a conveyor-and-swap on the lock variable 48 to determine the address of the lock variable 48 in the multi-processor system. It is tested whether another processor is executing a synchronization control function for the same entity, that is, whether it is 1, and if the other processor is executing it, the test is repeated until it is finished. If it is not running, that is, it is 0, set the value of the lock variable 48 to 1 and lock the table,
The signal line 24 notifies the vector load circuit 25 to start execution. The vector load circuit 25 loads the state vector 47 in the entity table 10 into the vector register VR.
026, the subtraction vector 41 and addition vector 42 at the start of the procedure corresponding to the index of the procedure index register 21 in the definition table II are stored in vector registers VRI 27. Load it onto VR228. In parallel with the loading of this vector and the pipeline for vector elements, the vector subtracter 31 subtracts VR,127 from VRO26 and the result is stored in the vector register VR.
329, the vector sign determiner 33 determines whether all elements of VR and 329 are positive or 0, and the vector adder 32 adds VR3 and VR4 and loads the result into the vector register VfL 430. The 9° vector sign determiner 33 sets 1 in the flip-flop 34 if at least one element of the VR 329 is negative. The vector storage circuit 37 stores the contents of the VR 430 in the state vector 47 in the entity table IO, and when the storage is completed, notifies the table lock circuit 23 of the completion via the signal line 38. If the flip-flop 34 is 1, the interrupt generation circuit 35 notifies the vector storage circuit 37 via the signal line 36 and prohibits vector storage.

テーブル・ロック回路23はベクトルの格納完了を信号
線38により通知されると、ロック変数48の値0にも
どし、テーブルのロックを解除する、この後、例外条件
が発生していなければコール命令の実行装置は操作手続
き13へ制御を渡す。
When the table lock circuit 23 is notified of the completion of vector storage via the signal line 38, it returns the value of the lock variable 48 to 0 and releases the table lock.After this, if no exception condition occurs, the call instruction is The execution unit passes control to the operating procedure 13.

操作手続きからリターンする命令が実行された場合は、
減ベクトル41および加ベクトル42のかわりに減ベク
トル43および加ベクトル44が使用されてコール命令
の場合と同様に本実施例の同期制制回路は動作する。
When an instruction to return from an operation procedure is executed,
The synchronization control circuit of this embodiment operates in the same manner as in the case of the call instruction, using the subtraction vector 43 and the summation vector 44 instead of the subtraction vector 41 and the summation vector 42.

本実施例の同期制制回路によれば複数ベクトルのロード
、ベクトル減算、ベクトル加算、ベクトル要素の非負判
定がパイプライン的に並列に行われるので同期制御に要
する時間は従来にくらべて数分の1程度に短縮できる。
According to the synchronous control circuit of this embodiment, loading of multiple vectors, vector subtraction, vector addition, and non-negative determination of vector elements are performed in parallel in a pipeline manner, so the time required for synchronous control is reduced to several minutes compared to conventional methods. It can be shortened to about 1.

また、実体テーブルlOのロックはコールおよびリター
ン命令の中で行われるので、ソフトウェアによるロック
のし忘れ等のバグが発生する余地がなく信頼性が高くな
るという効果もある。
Further, since the locking of the entity table 10 is performed during the call and return instructions, there is no room for bugs such as forgetting to lock by software, resulting in higher reliability.

〔発明の効果〕〔Effect of the invention〕

本発明の同期制御方法によれば、データ操作の同期制御
をカウンタベクトルの数回の演算によって実現するので
、ベクトル演算のパイプライン並列実行により同期制御
の実行時間を従来の数分の1程度に短縮することができ
る。また、高々lの値しかとらないカウンタで表現でき
る同期制御はカウンタベクトルをビット列で表現し、ビ
ット列の長さをnとするとビット列演算により同期制御
の実行時間を従来のn分の1に短縮することができる。
According to the synchronous control method of the present invention, synchronous control of data operations is realized by several calculations of counter vectors, so the execution time of synchronous control is reduced to about a fraction of the conventional time by pipeline parallel execution of vector operations. Can be shortened. In addition, for synchronous control that can be expressed by a counter that can only take a value of at most l, the counter vector is expressed as a bit string, and if the length of the bit string is n, the execution time of synchronous control can be reduced to 1/n of the conventional time by bit string operation. be able to.

本発明の同期制制回路によれば、前記同期制御方法の効
果に加えて、手続きのコールおよびリターン命令の実行
時に同期制御も行われるので、ソフトウェアのバグによ
る制御の抜けが生じずに信頼性の高い同期制御が実現で
きる。また、操作手続きに分岐する前に同期制御の判定
が行われるので同期不可で例外条件が発生することが多
い場合は分岐の数が減少するので、命令のパイプライン
処理を乱さず、また操作手続きの仮想記憶ページを余分
にアクセスせず占有実記憶せが増大しにくくなり、デー
タ処理装置全体の性11ヒが従来よりも良くなる。
According to the synchronous control circuit of the present invention, in addition to the effects of the synchronous control method described above, synchronous control is also performed when executing procedure calls and return instructions, so that control failures due to software bugs do not occur and reliability is improved. Highly synchronized control can be achieved. In addition, synchronization control is determined before branching to the operation procedure, so if synchronization is not possible and exception conditions often occur, the number of branches is reduced, so the pipeline processing of instructions is not disturbed, and the operation procedure The virtual memory pages of the present invention are not accessed redundantly, and the occupied real memory space is less likely to increase, and the performance of the entire data processing apparatus becomes better than before.

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

第1図は本発明の同期制御方法の一実施例の構成図、第
2図は同実施例の定義テーブルのフォーマット図、第3
図は実体テーブルのフォーマット図、第4図は同実施例
のフローチャート、第5図は本発明の同期制制回路の一
実施例の構成図、第6図はペトリネットの一例図である
。 11・・・定義テーブル、10・・・実体テーブル、1
4・・・ベクトルレジスタ群、31・・・ベクトル減算
器、32・・・ベクトル加算器、33・・・ベクトル符
号判定器、34・・・フリップフロップ、41.43・
・・減ベクトル、42.44・・・加ベクトル、47・
・・状態べクトル、48・・・ロック変数。 罰 1 区 ¥′J 2 図 第 3 図 第 S 図 1        HH12 す北上性ユニ9ド アθ        少イ不テーフ゛ル      」
、テーブルロ蛋4                 
   2521                  
           ロード回路22       
             ベクトル L5ズトジスタ
                vu       
 y尺3チー7・・ル          ”rKI 
    Vと407ノ回珀シ N            vF 2,27茅乙 口 、I;3
FIG. 1 is a configuration diagram of an embodiment of the synchronous control method of the present invention, FIG. 2 is a format diagram of a definition table of the embodiment, and FIG.
4 is a flowchart of the embodiment, FIG. 5 is a block diagram of an embodiment of the synchronization control circuit of the present invention, and FIG. 6 is an example of a Petri net. 11...Definition table, 10...Substance table, 1
4... Vector register group, 31... Vector subtracter, 32... Vector adder, 33... Vector sign determiner, 34... Flip-flop, 41.43.
... Subtraction vector, 42.44 ... Addition vector, 47.
...State vector, 48...Lock variable. Punishment 1 Ward ¥'J 2 Figure 3 Figure S Figure 1 HH12 Kitakami Uni 9 Door θ Slightly inefficient.
, Tablero Egg 4
2521
Load circuit 22
Vector L5 Zutojista vu
y shaku 3 chi 7... le ”rKI
V and 407 times N vF 2,27 Kayotsuguchi, I; 3

Claims (1)

【特許請求の範囲】 1、データ処理装置において、データ型の実体ごとに、
該データ型を操作する手続き群を実行するのに必要な条
件の数だけ条件の成立回数をあらわすカウンタをならべ
た状態カウンタベクトルと、データ型の定義ごとに、該
データ型を操作する手続きごとに手続きの開始条件と開
始後の条件変化および終了条件と終了後の条件変化を条
件の成立回数であらわす四つの条件変化カウンタベクト
ルを持つ操作手続きリストを記憶手段に保持し、データ
型の実体に対する操作手続きを実行する時に該実体の前
記状態カウンタベクトルと該データ型の該操作手続きの
前記四つの条件変化カウンタベクトルとをベクトル演算
またはビット列演算することにより該操作手続きの実行
の可否を判定し実行可能ならば該状態カウンタベクトル
を更新し実行不可ならば例外条件を発生させることを特
徴とする同期制御方法。 2、データ処理装置において、データ型の実体ごとに、
該データ型を操作する手続き群を実行するのに必要な条
件の数だけ条件の成立回数をあらわすカウンタをならべ
た状態カウンタベクトルを保持する記憶手段と、データ
型の定義ごとに、該データ型を操作する手続きごとに手
続きの開始条件と開始後の条件変化および終了条件と終
了後の条件変化を条件の成立回数であらわす四つの条件
変化カウンタベクトルを持つ操作手続きリストを保持す
る記憶手段と、データ型の実体に対する操作手続きをコ
ールする命令と操作手続きからリターンする命令の実行
時に該実体の前記状態カウンタベクトルと該データ型の
該操作手続きの前記四つの条件変化ベクトルをベクトル
演算またはビット列演算することにより、該操作手続き
に対するコール命令機能およびリターン命令機能の実行
の可否を判定し、実行可能ならば該状態カウンタベクト
ルを更新し実行不可能ならば例外条件を発生させる同期
制制回路を設けたことを特徴とする同期制御装置。
[Claims] 1. In the data processing device, for each data type entity,
A state counter vector containing counters representing the number of times the conditions are met for the number of conditions necessary to execute a group of procedures that manipulate the data type, and a state counter vector for each data type definition and for each procedure that manipulates the data type. An operation procedure list with four condition change counter vectors representing the start condition of the procedure, the condition change after the start, the end condition and the condition change after the end are expressed by the number of times the condition is satisfied is held in the storage means, and the operation procedure list is performed on the entity of the data type. When executing a procedure, it is possible to determine whether or not the operation procedure can be executed by performing a vector operation or a bit string operation on the state counter vector of the entity and the four condition change counter vectors of the operation procedure of the data type. If so, the state counter vector is updated, and if execution is not possible, an exception condition is generated. 2. In the data processing device, for each data type entity,
storage means for holding a state counter vector in which counters representing the number of times the conditions are met are arranged for the number of conditions necessary to execute a group of procedures that operate on the data type; storage means for holding an operation procedure list having four condition change counter vectors representing the start condition of the procedure, the condition change after the start, the end condition and the condition change after the end, as the number of times the condition is satisfied for each procedure to be operated; performing vector operations or bit string operations on the state counter vector of the entity and the four condition change vectors of the operation procedure of the data type when executing an instruction that calls an operation procedure for an entity of the type and an instruction that returns from the operation procedure; Accordingly, a synchronization control circuit is provided that determines whether or not the call instruction function and return instruction function for the operation procedure can be executed, updates the state counter vector if it is executable, and generates an exception condition if it is not executable. A synchronous control device characterized by:
JP60237253A 1985-10-25 1985-10-25 Method and device for synchronizing control Pending JPS6298432A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60237253A JPS6298432A (en) 1985-10-25 1985-10-25 Method and device for synchronizing control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60237253A JPS6298432A (en) 1985-10-25 1985-10-25 Method and device for synchronizing control

Publications (1)

Publication Number Publication Date
JPS6298432A true JPS6298432A (en) 1987-05-07

Family

ID=17012665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60237253A Pending JPS6298432A (en) 1985-10-25 1985-10-25 Method and device for synchronizing control

Country Status (1)

Country Link
JP (1) JPS6298432A (en)

Similar Documents

Publication Publication Date Title
Rumbaugh A data flow multiprocessor
Colwell et al. A VLIW architecture for a trace scheduling compiler
JPS58151655A (en) Information processing device
Ozkarahan et al. RAP: an associative processor for data base management
US4297743A (en) Call and stack mechanism for procedures executing in different rings
US7853937B2 (en) Object-oriented, parallel language, method of programming and multi-processor computer
JP3461704B2 (en) Instruction processing system and computer using condition codes
Kuehn et al. The Horizon supercomputing system: architecture and software
US5319757A (en) FORTH specific language microprocessor
JPS5911943B2 (en) Trap mechanism for data processing equipment
JPH05233570A (en) Distributed data processing system between different operating systems
JPH05143332A (en) Computer system having instruction scheduler and method for rescheduling input instruction sequence
JPH04503416A (en) dataflow multiprocessor system
JPH0638234B2 (en) System and method for maintaining source instruction atomicity of translated program code
JPH06195322A (en) Information processor used as general purpose neurocomputer
JPH0760380B2 (en) Program call device
US4562538A (en) Microprocessor having decision pointer to process restore position
JPS6334490B2 (en)
Dasgupta Computer design and description languages
Schorr Design principles for a high-performance system
JP3170472B2 (en) Information processing system and method having register remap structure
JPS6298432A (en) Method and device for synchronizing control
Newell et al. Some issues in programming multi-mini-processors
Du et al. Breaking the interaction wall: A DLPU-centric deep learning computing system
JPH0659908A (en) Device for executing program