[go: up one dir, main page]

JPH08166803A - Control software generator - Google Patents

Control software generator

Info

Publication number
JPH08166803A
JPH08166803A JP30851994A JP30851994A JPH08166803A JP H08166803 A JPH08166803 A JP H08166803A JP 30851994 A JP30851994 A JP 30851994A JP 30851994 A JP30851994 A JP 30851994A JP H08166803 A JPH08166803 A JP H08166803A
Authority
JP
Japan
Prior art keywords
arithmetic
arithmetic expression
expression
control
expressions
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
JP30851994A
Other languages
Japanese (ja)
Inventor
Akira Takagi
昭 高木
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP30851994A priority Critical patent/JPH08166803A/en
Publication of JPH08166803A publication Critical patent/JPH08166803A/en
Pending legal-status Critical Current

Links

Landscapes

  • Control By Computers (AREA)
  • Devices For Executing Special Programs (AREA)

Description

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

【0001】[0001]

【産業上の利用分野】この発明は、高速な共有メモリを
介してデータを交換しながら、並列演算によって制御演
算を行うロボット制御装置などの制御ソフトウェアの生
成装置に関する。なお、以下各図において同一の符号は
同一もしくは相当部分を示す。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a control software generation device such as a robot control device for performing control calculation by parallel calculation while exchanging data through a high speed shared memory. In the drawings, the same reference numerals indicate the same or corresponding parts.

【0002】[0002]

【従来の技術】高速に複雑な動作を行う必要があるロボ
ットなどの制御装置に対しては、現代制御理論の成果に
より、多くの制御演算方式が提案されているが、実時間
で演算を行うという制約に対して演算量が多く、実用上
の問題となっている。この問題を解決するための方法と
して、同時に複数の演算を行う並列演算方式を導入する
ことが試みられている。
2. Description of the Related Art For control devices such as robots that need to perform complex motions at high speed, many control calculation methods have been proposed due to the results of modern control theory, but calculation is performed in real time. However, the amount of calculation is large, which is a practical problem. As a method for solving this problem, it has been attempted to introduce a parallel operation method for simultaneously performing a plurality of operations.

【0003】並列演算を行うためには、並列演算専用の
演算器を搭載するか、複数の汎用演算器とデータ転送装
置とを搭載するかの二つの方法がある。使用環境などの
物理的な制約や価格の問題などから、複数の汎用演算器
とデータ転送装置とを搭載しようとする場合、従来は、
制御演算式を個々の演算器のソフトウェアに、自動的に
効率よく分割することが難しく、人間が分割作業を行う
か、演算の効率を無視して自動的に分割を行っていた。
There are two methods for carrying out parallel computation: mounting a dedicated computing unit for parallel computing, or mounting a plurality of general-purpose computing units and a data transfer device. Due to physical constraints such as usage environment and price issues, when installing multiple general-purpose arithmetic units and data transfer devices,
It is difficult to automatically and efficiently divide the control arithmetic expression into the software of each arithmetic unit, and either the person performs the division work or the operation efficiency is automatically ignored and the division is automatically performed.

【0004】[0004]

【発明が解決しようとする課題】汎用演算器とデータ転
送装置とを搭載した制御装置のために、制御演算式を自
動的に効率よく複数のソフトウェアに分割することが難
しい理由は、以下の二つである。 制御演算式中の個々の演算にかかる時間と、演算を
行うべき手順とから最適な分割を行うためには、演算の
組合せに関する評価を行うが、演算の組合せ数が膨大と
なるので、評価を自動化することが現実問題として難し
い。
There are the following two reasons why it is difficult to automatically and efficiently divide a control arithmetic expression into a plurality of software for a control device equipped with a general-purpose arithmetic unit and a data transfer device. Is one. In order to perform optimal division based on the time required for each operation in the control arithmetic expression and the procedure in which the operation should be performed, an evaluation is made regarding the combination of operations, but the number of combinations of operations is enormous. It is difficult to automate as a real problem.

【0005】 実際の制御装置においては、演算器間
のデータ転送に使用される時間が個々の演算にかかる時
間よりも大きく、分割の際の評価は演算とデータ転送の
組合せとなり、この組合せ数はの場合よりも多くなる
ので、自動的に行うことがほとんど不可能である。 この,の問題のうち、のデータ転送時間について
は、本出願人の先願になる特開平5−313717号に
て高速のデータ転送装置が提案され、演算にかかる時間
以下とすることが可能になったが、の問題は依然とし
て残っている。
In an actual control device, the time used for data transfer between arithmetic units is longer than the time required for each calculation, and the evaluation at the time of division is a combination of calculation and data transfer. It is almost impossible to do so automatically, since it will be more than. Regarding the data transfer time of the above problem, a high-speed data transfer device was proposed in Japanese Patent Application Laid-Open No. 5-313717, which is a prior application of the present applicant, and it is possible to make it less than the time required for calculation. However, the problem of still remains.

【0006】そこで本発明はの問題を解消し、並列演
算のための制御演算式の実効的な分割を自動的に行う機
能を備えた制御ソフトウェア生成装置を提供することを
課題とする。
SUMMARY OF THE INVENTION It is therefore an object of the present invention to solve the problem of (1) and to provide a control software generation device having a function of automatically performing effective division of a control arithmetic expression for parallel arithmetic.

【0007】[0007]

【課題を解決するめたの手段】前記の課題を解決するた
めに、請求項1の制御ソフトウェア生成装置は、並列演
算の対象となる制御演算式全体(11など)を入力する
手段(制御演算入力装置1など)と、この入力された制
御演算式全体を単項ないしは二項の演算式(12など)
に分解する手段(演算式分解装置2など)と、この分解
された演算式を、この演算式の内の他の演算式への依存
度ごとにグループ分け(し、並べ替えられグループ分け
された演算式13などと)する手段(演算式整頓装置3
など)と、 このグループ分けされた演算式を、同時に
演算を実行すべき複数の演算器(演算プロセッサ05と
しての#1,#2など)向に分配する手段(演算式分配
装置4など)と、この分配された演算式を、前記の夫々
の演算器の実行するソフトウェア(実行ソフトウェア1
7など)に変換する手段(演算式/ソフトウェア変換装
置6など)とを備えたものとする。
In order to solve the above-mentioned problems, the control software generation apparatus according to claim 1 is a means (control calculation input) for inputting the whole control calculation formula (11 etc.) to be subjected to parallel calculation. Device 1 and the like) and the input control arithmetic expression as a whole are expressed as unary or binary arithmetic expressions (12 or the like).
And a means for decomposing into (1) the arithmetic expression decomposing device and the decomposed arithmetic expression into groups according to the degree of dependence on other arithmetic expressions of this arithmetic expression (and rearranged into groups). (Formula 13 etc.) Means (Formula Arrangement Device 3)
Etc.) and a means (arithmetic expression distribution device 4 etc.) for distributing the grouped arithmetic expressions to a plurality of arithmetic units (# 1, # 2 etc. as the arithmetic processor 05) which should execute arithmetic operations at the same time. , The software executed by the respective arithmetic units (execution software 1)
7) or the like) (operational expression / software conversion device 6 or the like).

【0008】また、請求項2の制御ソフトウェア生成装
置では、請求項1に記載の制御ソフトウェア生成装置に
おいて、前記グループ分けされた演算式を複数の演算器
向に分配する手段は、各演算式の演算にかかる時間を重
みとして、各演算器ごとの重みの総和が互にほぼ均等と
なるように(中間ファイル14としてのファイル#1,
#2などに)分配を行うものであるようにする。
According to a second aspect of the control software generation apparatus of the present invention, in the control software generation apparatus of the first aspect, the means for distributing the grouped arithmetic expressions to a plurality of arithmetic units is With the time required for the calculation as the weight, the total sum of the weights of the respective arithmetic units becomes substantially equal to each other (file # 1, the intermediate file 14).
# 2 and so on).

【0009】また、請求項3の制御ソフトウェア生成装
置は、請求項1又は2に記載の制御ソフトウェア生成装
置において、さらに前記複数の演算器向に分配された演
算式のうちの複数個を1つの演算式に合成する処理を、
この分配された演算式について可能な限り実行する手段
(演算式合成装置5など)を備えたものとする。
A control software generation apparatus according to a third aspect of the present invention is the control software generation apparatus according to the first or second aspect, in which a plurality of arithmetic expressions distributed to the plurality of arithmetic units are set as one. The process of synthesizing into an arithmetic expression,
It is assumed that a means (arithmetic expression synthesizing device 5 etc.) for executing the distributed arithmetic expression as much as possible is provided.

【0010】[0010]

【作用】制御演算式の分割を最適な形で行うことを目指
すのではなく、演算手順に重点を置いて逐次的に分割を
行う。即ち、制御演算式を演算式の最小単位である単項
演算式(関数など)ないし二項演算式に分解し、この分
解した演算式を他の演算式への依存度ごとにグループ分
けし、その後各演算器ごとのソフトウェアに変換するこ
とにより、効率よく計算されるように分割された演算ソ
フトウェアの自動生成を可能にする。
Operation: The control operation expression is not divided in an optimum manner, but the operation procedure is emphasized in order. That is, the control arithmetic expression is decomposed into a unary arithmetic expression (function etc.) or a binomial arithmetic expression which is the minimum unit of the arithmetic expression, and the decomposed arithmetic expression is divided into groups according to the degree of dependence on other arithmetic expressions, and then By converting to software for each arithmetic unit, it is possible to automatically generate divided arithmetic software for efficient calculation.

【0011】[0011]

【実施例】以下図1ないし図5を用いて本発明の実施例
を説明する。本発明における使用者,制御ソフトウェア
生成装置,制御装置の関係を図2に示す。使用者01
は、並列動作する複数の演算プロセッサ05を内蔵する
制御装置04において実行される制御演算ソフトウェア
(実行ソフトウェア)17を得るために、制御ソフトウ
ェア生成装置03を内蔵した計算機02に制御演算入力
装置1を介し制御演算式11を入力し、制御ソフトウェ
ア生成装置03を作動させる。制御ソフトウェア生成装
置03は、図1で後述する過程を経て、制御装置04中
の各演算プロセッサ05のための実行ソフトウェア17
を生成する。この実行ソフトウェア17は計算機02か
ら演算ソフトウェア出力装置7を介し出力される。図1
は本発明における実行ソフトウェア17の生成過程の説
明図である。この図1全体は図2の計算機02の機能に
相当し、図1内の装置2から6までが、図2の制御ソフ
トウェア生成装置03の機能に相当する。
Embodiments of the present invention will be described below with reference to FIGS. FIG. 2 shows the relationship among the user, the control software generation device, and the control device in the present invention. User 01
In order to obtain the control calculation software (execution software) 17 to be executed in the control device 04 having a plurality of calculation processors 05 operating in parallel, the control calculation input device 1 is connected to the computer 02 having the control software generation device 03 built therein. The control arithmetic expression 11 is input through the control software generating device 03 to operate. The control software generation device 03 executes the execution software 17 for each arithmetic processor 05 in the control device 04 through the process described later with reference to FIG.
Generate The execution software 17 is output from the computer 02 via the arithmetic software output device 7. FIG.
FIG. 6 is an explanatory diagram of a generation process of the execution software 17 in the present invention. The entire FIG. 1 corresponds to the function of the computer 02 of FIG. 2, and the devices 2 to 6 in FIG. 1 correspond to the function of the control software generation device 03 of FIG.

【0012】なお、簡単のため図1では制御装置04に
内蔵された演算プロセッサ05を#1,#2の2個と仮
定したが、同様の過程は演算プロセッサの数が3個以上
であっても有効である。次に図1を中心とし、〜の
順に実行ソフトウェア17の生成過程を説明する。
For the sake of simplicity, it is assumed in FIG. 1 that there are two arithmetic processors 05 built in the control device 04, # 1 and # 2. However, the same process is performed when the number of arithmetic processors is three or more. Is also effective. Next, the process of generating the execution software 17 will be described in order of, centering on FIG.

【0013】 制御演算入力装置1より計算機02内
の制御ソフトウェア生成装置03に対し、制御演算式1
1が入力される。 入力された制御演算式11は、演算式分解装置2に
よって最小単位の演算式12まで公知の方法で分解され
る。ここで最小単位の演算式は、例えばψ=sinθの
ように1つの変数θから1つの変数(関数)ψを導き出
す単項演算式と、α0 =ax,a0 =a1+a2あるい
はz=xy のように2つの変数(この例ではaとx,a
1とa2、あるいはxとy)から1つの変数をα0 ,a
0 あるいはzを導き出す二項演算式とからなる。
From the control calculation input device 1 to the control software generation device 03 in the computer 02, the control calculation formula 1
1 is input. The input control arithmetic expression 11 is decomposed by the arithmetic expression decomposition device 2 up to the minimum unit arithmetic expression 12 by a known method. Here, the minimum unit arithmetic expression is, for example, a unary arithmetic expression for deriving one variable (function) ψ from one variable θ such as ψ = sin θ, and α 0 = ax, a 0 = a1 + a2 or z = xy Two variables (in this example, a and x, a
1 and a2, or x and y), one variable is α 0 , a
And a binary arithmetic expression for deriving 0 or z.

【0014】 このように分解され、最小単位となっ
た演算式12を演算式整頓装置3によって演算式の依存
度によって並べ替え、同じ依存度を持つ演算式により構
成されるグループに分ける。この並べ替えられグループ
分け(整頓)された演算式を13とする。ここに、演算
式の依存度とは注目している演算を行うにあたって、事
前に行う必要がある演算式の量を表わす。即ち、整頓さ
れた演算式13中のグループ#1の演算式は、他の演算
式に関係なく、a〜g,x,y,zの各変数の値を与え
ることによって演算可能な二項演算式であり、従ってこ
のグループ#1の演算式の依存度は0である。同じくグ
ループ#2の演算式は、グループ#1の演算結果を用い
て(つまりこの演算結果に依存して)可能となる二項演
算式である。よってこのグループ#2の演算式の依存度
は1である。
The arithmetic expression 12 thus decomposed into the minimum unit is rearranged by the arithmetic expression arranging device 3 according to the dependency of the arithmetic expression, and is divided into groups formed by the arithmetic expressions having the same dependency. The rearranged and grouped (arranged) arithmetic expression is set to 13. Here, the dependency degree of the arithmetic expression represents the amount of the arithmetic expression that needs to be performed in advance when performing the operation of interest. That is, the arithmetic expression of the group # 1 in the organized arithmetic expression 13 is a binomial arithmetic operation that can be performed by giving the values of the variables a to g, x, y, and z, regardless of other arithmetic expressions. It is an expression, and therefore the dependency of the arithmetic expression of this group # 1 is 0. Similarly, the arithmetic expression of the group # 2 is a binomial arithmetic expression that is possible by using the operation result of the group # 1 (that is, depending on this operation result). Therefore, the dependency of the arithmetic expression of this group # 2 is 1.

【0015】同様にグループ#3の演算式はグループ#
2までの演算結果に依存して可能となる二項演算式であ
り、このグループ#3の演算式の依存度は2である。同
様にグループ#4,#5の各演算式も夫々グループ#
3,#4の演算結果に依存している。よってグループ#
4,#5の演算式の依存度は夫々3,4である。図3は
この並べ替えとグループ分けの手順を示し、101〜1
08はそのステップを示す。即ちこの図3では、先ずグ
ループ番号を1としたうえ(101)、演算式分解装置
2によって分解された演算式12の全体をグループAと
して、このグループAの最初の演算式に注目する(10
2)。次にこの注目している演算式がこのグループA内
の他の演算式が算出する値を使っていないか(つまりグ
ループA内の他の演算式に依存していないか)を判別し
(103)、使っていなければ(分岐Y)、この注目の
演算式をグループAからグループ番号1のグループへ移
動する(104)。そしてグループAの次の演算式に注
目し(105)、グループAの全ての演算式についての
上記の判別が済むまで(106,分岐N)、ステップ1
03〜105の動作を繰返し、判別すべき演算式が無く
なり(106,分岐Y)、依存度0のグループ番号1の
演算式がグループAから分離されると、グループ番号を
2とする(107)。
Similarly, the arithmetic expression of the group # 3 is the group #
This is a binomial arithmetic expression that is possible depending on the arithmetic results up to 2, and the dependency of the arithmetic expression of this group # 3 is 2. Similarly, the arithmetic expressions for groups # 4 and # 5 are also group #
It depends on the calculation results of # 3 and # 4. So group #
The degrees of dependence of the arithmetic expressions 4 and # 5 are 3 and 4, respectively. FIG. 3 shows this rearrangement and grouping procedure.
08 indicates the step. That is, in FIG. 3, first, the group number is set to 1 (101), and the entire arithmetic expression 12 decomposed by the arithmetic expression decomposition device 2 is set to the group A, and attention is paid to the first arithmetic expression of this group A (10).
2). Next, it is determined whether or not this focused arithmetic expression does not use a value calculated by another arithmetic expression in this group A (that is, whether it depends on another arithmetic expression in group A) (103 ), If it is not used (branch Y), this attention arithmetic expression is moved from the group A to the group of group number 1 (104). Then, paying attention to the next arithmetic expression of the group A (105), until all the arithmetic expressions of the group A are judged as above (106, branch N), step 1
When the operation expressions 03 to 105 are repeated and there is no operation expression to be discriminated (106, branch Y), and the operation expression of the group number 1 with the dependency degree of 0 is separated from the group A, the group number is set to 2 (107). .

【0016】次にグループAに演算式があれば(10
8,分岐N)、残ったグループAの全演算式について、
ステップ102〜106の動作を繰返し、依存度1のグ
ループ番号2の演算式をグループAから分離する。この
ようにしてグループ番号を順次+1し(107)、グル
ープAに残る演算式が無くなったら(108,分岐
Y)、図3の処理を終る。
Next, if there is an arithmetic expression in group A (10
8, branch N), for all remaining group A formulas,
The operations of steps 102 to 106 are repeated to separate the arithmetic expression of the group number 2 having the dependency degree 1 from the group A. In this way, the group numbers are sequentially incremented by 1 (107), and when there remains no arithmetic expression remaining in the group A (108, branch Y), the processing of FIG. 3 is terminated.

【0017】 次にグループ分けされた演算式13
を、演算式分配装置4によって中間ファイル14のファ
イル#1,#2に重み付きで分配する。ここで中間ファ
イル14のファイル#1は演算プロセッサ05の1つと
してのプロセッサ#1に対応し、同じくファイル#2は
演算プロセッサ05の他の1つとしてのプロセッサ#2
に対応する。ここに重み付き分配を行う目的は、各演算
プロセッサ#1,#2における演算時間を均等にするた
めである。
Next, the arithmetic expression 13 divided into groups
Are distributed to the files # 1 and # 2 of the intermediate file 14 by weight by the arithmetic expression distribution device 4. Here, the file # 1 of the intermediate file 14 corresponds to the processor # 1 as one of the arithmetic processors 05, and the file # 2 is the processor # 2 as another one of the arithmetic processors 05.
Corresponding to. The purpose of performing the weighted distribution here is to equalize the calculation time in each of the calculation processors # 1 and # 2.

【0018】図4はこの重み付き分配の手順を示し、2
01〜210はそのステップを示す。即ち、先ずグルー
プ番号を1とし(201)、プロセッサ#1,#2につ
いての重みの総和を0とし(202)、当該グループ番
号(この場合グループ番号1)のグループの各演算式に
その演算時間に比例した重みを付ける(203)。次に
当該グループ内の演算式のうち重み最大のもの1つを選
び(204)、この演算式を重み総和の最も少ないプロ
セッサに対応するファイルに移動し(205)、この移
動した演算式の重みを移動先のファイルのプロセッサに
ついての重み総和に加算する(206)。そして当該グ
ループ内に未移動の演算式が有れば(207,分岐
N)、ステップ204〜206の動作を繰返す。
FIG. 4 shows the procedure of this weighted distribution.
01 to 210 indicate the steps. That is, first, the group number is set to 1 (201), the total sum of weights for the processors # 1 and # 2 is set to 0 (202), and the calculation time of each calculation formula of the group of the group number (group number 1 in this case) is set. (203). Next, one of the arithmetic expressions with the highest weight is selected from the group (204), this arithmetic expression is moved to the file corresponding to the processor with the smallest total weight (205), and the weight of this moved arithmetic expression is changed. Is added to the sum of weights for the processor of the destination file (206). Then, if there is an unmoved arithmetic expression in the group (207, branch N), the operations of steps 204 to 206 are repeated.

【0019】このようにして当該グループ内の演算式が
無くなれば(207,分岐Y)、グループ番号1の各演
算式のファイル#1,#2への重み総和(つまり全演算
時間)をほぼ均等とする配分ができたことになり、次に
グループ番号を+1し(この場合グループ番号を2と
し)(209)、このグループ番号指定されたグループ
が有る限り(210,分岐N)、ステップ202〜20
9の動作を繰返す。このようにしてグループ番号指定さ
れたグループが無くなると(210,分岐Y)、図4の
処理を終る。
In this way, if there are no arithmetic expressions in the group (207, branch Y), the sum of weights of the arithmetic expressions of group number 1 to files # 1 and # 2 (that is, the total arithmetic time) is almost equal. Then, the group number is incremented by 1 (in this case, the group number is set to 2) (209), and as long as there is a group designated by this group number (210, branch N), step 202- 20
The operation of 9 is repeated. When the group with the designated group number disappears in this way (210, branch Y), the processing of FIG. 4 ends.

【0020】つまり図4では演算式13の各グループ番
号ごとに、ファイル#1と#2に配分する各演算式の演
算時間の総和がほぼ均等となるように演算式の配分が行
われる。 次に演算式合成装置5で、各中間ファイル14とし
てのファイル#1,#2ごとに演算式の合成を行い、こ
の各中間ファイル#1,#2を更新し、合成された演算
式15を含む、プロセッサ#1,#2に夫々対応したフ
ァイル#1A,#2Aを作成する。
That is, in FIG. 4, for each group number of the arithmetic expression 13, the arithmetic expressions are distributed so that the total sum of the arithmetic times of the arithmetic expressions distributed to the files # 1 and # 2 becomes substantially equal. Next, the arithmetic expression synthesizing device 5 synthesizes the arithmetic expressions for each of the files # 1 and # 2 as the respective intermediate files 14, updates the respective intermediate files # 1 and # 2, and obtains the synthesized arithmetic expression 15. The files # 1A and # 2A corresponding to the processors # 1 and # 2 are created.

【0021】図5は演算式合成装置5の演算式合成処理
の手順を示すフローチャートで301〜312はそのス
テップを示す。図5では中間ファイル14の番号別のフ
ァイル(この場合ファイル1,#2)夫々について(3
01,311,312)、順番に各演算式に注目し(3
02,309,310)、さらに注目した演算式の右辺
の変数に順番に注目し(303,307,308)、注
目した変数がその番号のファイル内の他の演算式によっ
て算出され(304,分岐Y)、且つその変数が全ての
番号のファイル中でこの演算式にのみ使用されているな
らば(305,分岐Y)、その注目している変数の代り
に、この変数を算出している(つまりこの変数を左辺に
持つ)演算式を括弧付で移動して用いるものである(3
06)。
FIG. 5 is a flow chart showing the procedure of the arithmetic expression synthesizing process of the arithmetic expression synthesizing device 5, and 301 to 312 indicate the steps thereof. In FIG. 5, for each file (in this case, files 1 and # 2) of the intermediate file 14 by number (3
01, 311, 312), paying attention to each arithmetic expression in turn (3
02, 309, 310), and further pay attention to the variables on the right side of the focused arithmetic expression in order (303, 307, 308), and the focused variable is calculated by another arithmetic expression in the file of that number (304, branch). Y) and if the variable is used only in this equation in all numbered files (305, branch Y), this variable is calculated instead of the variable of interest ( That is, the arithmetic expression (having this variable on the left side) is moved with parentheses and used (3
06).

【0022】なお、ステップ303で注目した演算式
を、例えばy=f(x)とすると、この演算式の右辺の
中で使用される最初の変数とはf(x)の最初の変数を
指す。従って注目した演算式がα0 =axであればa
が、また注目した演算式がα8 =α6 +α7 であればα
6 が夫々最初の変数となる。このように演算式を合成す
る目的は、できるだけ数式を減らし演算ソフトウェア出
力装置7が持つ最適化機能を利用するためである。
If the arithmetic expression noted in step 303 is, for example, y = f (x), the first variable used in the right side of this arithmetic expression is the first variable of f (x). . Therefore, if the notable arithmetic expression is α 0 = ax, then a
However, if the arithmetic expression of interest is α 8 = α 6 + α 7 , then α
6 is the first variable respectively. The purpose of synthesizing the arithmetic expressions is to reduce the mathematical expressions as much as possible and use the optimization function of the arithmetic software output device 7.

【0023】 合成された演算式15としての、更新
された各中間ファイル#1A,#2Aに格納された演算
式を演算式/ソフトウェア変換装置6が演算ソフトウェ
ア出力装置7が解釈可能な、演算プロセッサ#1,#2
ごとのソースファイルに公知の方法で変換する。 演算ソフトウェア出力装置7は上記のソースファイ
ルを演算プロセッサ#1,#2ごとの実行ソフトウェア
17に変換して、制御装置04に出力する。
An arithmetic processor in which the arithmetic expression / software conversion device 6 can interpret the arithmetic expression stored in each of the updated intermediate files # 1A and # 2A as the combined arithmetic expression 15 by the arithmetic software output device 7. # 1, # 2
Each source file is converted by a known method. The arithmetic software output device 7 converts the above-mentioned source file into execution software 17 for each of the arithmetic processors # 1 and # 2 and outputs it to the control device 04.

【0024】なお、制御ソフトウェア生成装置03は、
上記〜の動作を行う。
The control software generator 03 is
The above operations 1 to 3 are performed.

【0025】[0025]

【発明の効果】本発明によれば制御演算式を最小単位に
分解し、実行するべき順序に並べ直し、制御装置内の各
プロセッサに出力するようにしたので、演算式を効率よ
く実行する複数のソフトウェアを自動的に生成すること
ができる。
According to the present invention, control arithmetic expressions are decomposed into minimum units, rearranged in the order in which they should be executed, and output to each processor in the control unit. The software can be automatically generated.

【0026】また、分解の自動化により、分解に伴う人
為的なミスを減らすことができる。また、各プロセッサ
に配分する演算式はなるべく数式を減らすように予め合
成するようにしたので、演算実行時に余分なメモリ書込
みを減らすことができる。また、各プロセッサへの演算
式の配分は各プロセッサにおける演算時間がほぼ均等と
なるようにしたので、より効率的な演算実行が可能とな
る。
Further, by automating the disassembly, human error caused by the disassembly can be reduced. Further, since the arithmetic expressions to be distributed to the respective processors are composed in advance so as to reduce the mathematical expressions as much as possible, it is possible to reduce extra memory writing at the time of executing the arithmetic operations. Further, since the arithmetic expressions are distributed to the respective processors so that the arithmetic times in the respective processors are substantially equal to each other, more efficient arithmetic execution can be performed.

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

【図1】本発明の実施例としての制御ソフトウェアの生
成過程の説明図
FIG. 1 is an explanatory diagram of a generation process of control software as an embodiment of the present invention.

【図2】同じくシステム構成図[Fig. 2] Similarly, system configuration diagram

【図3】図1における演算式整頓装置の実行する演算式
並べ替え処理の手順を示すフローチャート
FIG. 3 is a flowchart showing a procedure of an arithmetic expression rearrangement process executed by the arithmetic expression arranging apparatus in FIG.

【図4】図1における演算式分配装置の実行する演算式
の重み付き分配処理の手順を示すフローチャート
FIG. 4 is a flowchart showing a procedure of weighted distribution processing of arithmetic expressions executed by the arithmetic expression distribution device in FIG.

【図5】図1における演算式合成装置の実行する演算式
合成処理の手順を示すフローチャート
5 is a flowchart showing a procedure of an arithmetic expression synthesizing process executed by the arithmetic expression synthesizing apparatus in FIG.

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

01 使用者 02 計算機 03 制御ソフトウェア生成装置 04 制御装置 05 演算プロセッサ 1 制御演算入力装置 2 演算式分解装置 3 演算式整頓装置 4 演算式分配装置 5 演算式合成装置 6 演算式/ソフトウェア変換装置 7 演算ソフトウェア出力装置 11 制御演算式 12 分解された演算式 13 並べ替えられグループ分けされた(整頓され
た)演算式 14 中間ファイル 15 合成された演算式 17 実行ソフトウェア
01 User 02 Computer 03 Control Software Generator 04 Control Device 05 Arithmetic Processor 1 Control Arithmetic Input Device 2 Arithmetic Formula Decomposing Device 3 Arithmetic Formula Arranging Device 4 Arithmetic Formula Distributor 5 Arithmetic Formula Synthesizing Device 6 Arithmetic Formula / Software Converter 7 Arithmetic Software output device 11 Control arithmetic expression 12 Decomposed arithmetic expression 13 Arranged and grouped (arranged) arithmetic expression 14 Intermediate file 15 Synthesized arithmetic expression 17 Execution software

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】並列演算の対象となる制御演算式全体を入
力する手段と、 この入力された制御演算式全体を単項ないし二項の演算
式に分解する手段と、 この分解された演算式を、この演算式の内の他の演算式
への依存度ごとにグループ分けする手段と、 このグループ分けされた演算式を、同時に演算を実行す
べき複数の演算器向に分配する手段と、 この分配された演算式を、前記の夫々の演算器の実行す
るソフトウェアに変換する手段とを備えたことを特徴と
する制御ソフトウェア生成装置。
1. A means for inputting an entire control arithmetic expression to be subjected to parallel arithmetic operation, a means for decomposing the input control arithmetic expression as a whole into a mononomial or binary arithmetic expression, and the decomposed arithmetic expression. A means for grouping each of the arithmetic expressions depending on the degree of dependence on other arithmetic expressions, a means for distributing the grouped arithmetic expressions to a plurality of arithmetic units that are to execute arithmetic operations at the same time, A control software generation device comprising: means for converting the distributed arithmetic expression into software executed by each of the arithmetic units.
【請求項2】請求項1に記載の制御ソフトウェア生成装
置において、 前記グループ分けされた演算式を複数の演算器向に分配
する手段は、各演算式の演算にかかる時間を重みとし
て、各演算器ごとの重みの総和が互にほぼ均等となるよ
うに分配を行うものであることを特徴とする制御ソフト
ウェア生成装置。
2. The control software generation device according to claim 1, wherein the means for distributing the grouped arithmetic expressions to a plurality of arithmetic units uses each time of the arithmetic operations as a weight for each arithmetic operation. A control software generation device characterized in that the distribution is performed so that the total sum of weights of the containers is substantially equal to each other.
【請求項3】請求項1又は2に記載の制御ソフトウェア
生成装置において、さらに前記複数の演算器向に分配さ
れた演算式のうちの複数個を1つの演算式に合成する処
理を、この分配された演算式について可能な限り実行す
る手段を備えたことを特徴とする制御ソフトウェア生成
装置。
3. The control software generation apparatus according to claim 1, further comprising the step of combining a plurality of arithmetic expressions distributed to the plurality of arithmetic units into one arithmetic expression. A control software generation device comprising means for executing the calculated arithmetic expression as much as possible.
JP30851994A 1994-12-13 1994-12-13 Control software generator Pending JPH08166803A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30851994A JPH08166803A (en) 1994-12-13 1994-12-13 Control software generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30851994A JPH08166803A (en) 1994-12-13 1994-12-13 Control software generator

Publications (1)

Publication Number Publication Date
JPH08166803A true JPH08166803A (en) 1996-06-25

Family

ID=17982008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30851994A Pending JPH08166803A (en) 1994-12-13 1994-12-13 Control software generator

Country Status (1)

Country Link
JP (1) JPH08166803A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008191994A (en) * 2007-02-06 2008-08-21 Nec Corp Compiler and compiling method
US9021430B2 (en) 2010-12-21 2015-04-28 Samsung Electronics Co., Ltd. Method of determining multimedia architectural pattern, and apparatus and method for transforming single-core based architecture to multi-core based architecture

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008191994A (en) * 2007-02-06 2008-08-21 Nec Corp Compiler and compiling method
US9021430B2 (en) 2010-12-21 2015-04-28 Samsung Electronics Co., Ltd. Method of determining multimedia architectural pattern, and apparatus and method for transforming single-core based architecture to multi-core based architecture

Similar Documents

Publication Publication Date Title
Dhodhi et al. Datapath synthesis using a problem-space genetic algorithm
Kulkarni et al. Systolic processing and an implementation for signal and image processing
Rauber et al. A transformation approach to derive efficient parallel implementations
O'Hallaron The ASSIGN parallel program generator
JPH08166803A (en) Control software generator
CN119357267B (en) Model conversion method, device and electronic equipment thereof
Mullin et al. A Reduction semantics for array expressions: the PSI compiler
Lee et al. Global optimization for mapping parallel image processing tasks on distributed memory machines
Rauber et al. The compiler TwoL for the design of parallel implementations
Carlson Solving linear recurrence systems on mesh-connected computers with multiple global buses
Pozo Performance modeling of sparse matrix methods for distributed memory architectures
Eisenbiegler et al. Formally embedding existing high level synthesis algorithms
Czyzyk et al. Using a massively parallel processor to solve large sparse linear programs by an interior-point method
Kim et al. Configuration-level optimization of RPC-based distributed programs
Dussa-Zieger et al. Configuration, mapping and sequencing by genetic algorithms
CN119918652B (en) Accelerators, devices, and application methods for adversarial deep learning defense inference
Mathia et al. On neural network hardware and programming paradigms
Rauber et al. Deriving optimal data distributions for group parallel numerical algorithms
Gilli et al. Econometric model simulation on parallel computers
Mattioli et al. A constraint optimization framework for mapping a digital signal processing application onto a parallel architecture
Niessen A VLSI systolic array processor for complex singular value decomposition
Thibault et al. A reduction semantics for array expressions: The Psi compiler
Justo A graphical approach to performance-oriented development of parallel programs
Reffay et al. From Dependence Analysis to Communication Code Generation: The “Look Forwards” Model
Rauber et al. Integrating library modules into special purpose parallel algorithms