[go: up one dir, main page]

JPS58149566A - Processing system of optimization for parallel execution of vector operation - Google Patents

Processing system of optimization for parallel execution of vector operation

Info

Publication number
JPS58149566A
JPS58149566A JP3119482A JP3119482A JPS58149566A JP S58149566 A JPS58149566 A JP S58149566A JP 3119482 A JP3119482 A JP 3119482A JP 3119482 A JP3119482 A JP 3119482A JP S58149566 A JPS58149566 A JP S58149566A
Authority
JP
Japan
Prior art keywords
vector
intermediate code
processing
unit
optimization
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.)
Granted
Application number
JP3119482A
Other languages
Japanese (ja)
Other versions
JPS6319905B2 (en
Inventor
Hideo Takashima
高嶋 秀夫
Morie Sagawa
佐川 守江
Shinya Miura
信也 三浦
Kazuhiko Suzuki
一彦 鈴木
Hideo Wada
和田 英穂
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP3119482A priority Critical patent/JPS58149566A/en
Publication of JPS58149566A publication Critical patent/JPS58149566A/en
Publication of JPS6319905B2 publication Critical patent/JPS6319905B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 (A)  発明の技術分野 本発明は、ベクトル演算の並列実行最適化処理方式、特
に複数の並列演算部をそなえたベクトル処理プロセッサ
に対して、与えられたソース・プログラムから目的プロ
グラムを生成して供給するコンパイラにおいて、上記e
61IILt列演算部に可能な限ぎり空き状態が生じる
ことの少ないように、並列演算部を割付けてゆくベクト
ル演算の並列実行最適化処理方式に関するものである。
DETAILED DESCRIPTION OF THE INVENTION (A) Technical Field of the Invention The present invention relates to a parallel execution optimization processing method for vector operations, and in particular to a vector processing processor equipped with a plurality of parallel operation units. In a compiler that generates and supplies a target program from
The present invention relates to a parallel execution optimization processing method for vector operations in which parallel operation units are allocated to minimize the occurrence of empty states in the 61IILt column operation units.

(B)  技術の背景と問題点 例えは、第1図CA)に示す如(、ベクトルAに属する
エレメントa1.a2.・・・・・とベクトルBに属す
るエレメントb1.b2.・・・・・・との各エレメン
ト相互ヲ加算して、エレメントC,,C2,・・・・・
をもつベクトルCを生成するような、ベクトル命令を実
行するベクトル処理プロセッサが存在している。第1図
FA)図示の場合、第1番目のエレメント相互の加算を
行なうか否かをマスク・エレメントm+、 mz。
(B) Technical background and problems An example is shown in Figure 1 CA) (elements a1, a2, ... belonging to vector A and elements b1, b2, ... belonging to vector B). By adding each element with..., element C,,C2,...
There are vector processing processors that execute vector instructions such as generating a vector C with . (FIG. 1 FA) In the illustrated case, mask elements m+, mz determine whether or not to perform mutual addition of the first elements.

・・・にて指示するようにされており、第1図(B)に
−膜化して示す如き処理が行なわれる。
. . , and the processing shown in FIG. 1(B) as a film is performed.

上記の如き処理を行なうベクトル処理プロセッサを有す
るデータ処理システムは、−実施例として第2図図示の
如きシステム構成をもっている。
A data processing system having a vector processing processor that performs the above processing has a system configuration as shown in FIG. 2 as an embodiment.

図中の符号1は主記憶装置、2はメモリ制御装置、3は
ベクトル処理プロセッサ、4はチャネル・プロセッサ、
5は大記憶装置、6はスカラ処理回路部、7はベクトル
処理回路部、8−0. 8−1゜・・・・・・は夫々浮
動小数点データ・レジスタ、9−0゜9−1.・・・・
・は夫々複数個のデータ(エレメント・データ)を格納
し得るベクトル・レジスタ、10−0.10−1.・・
・・・・は夫々複数個のマスク・データ(マスク・エレ
メント・データ)を格納し得るマスク・レジスタ、11
はベクトル長レジスタであって各ベクトル・レジスタに
格納されるエレメントの個数情報がセットされるもの、
12−0゜12−1は夫々メモリ・アクセス・パイプラ
イン、13は加減算パイプライン、14は乗算処理パイ
プライン、15は除算処理パイプライン、16はマスク
処理パイプラインを表わしている。
In the figure, 1 is a main storage device, 2 is a memory control device, 3 is a vector processing processor, 4 is a channel processor,
5 is a large storage device, 6 is a scalar processing circuit section, 7 is a vector processing circuit section, 8-0. 8-1° . . . are floating point data registers, 9-0° 9-1.・・・・・・
10-0.10-1. are vector registers each capable of storing a plurality of pieces of data (element data);・・・
. . . are mask registers each capable of storing a plurality of pieces of mask data (mask element data); 11;
is a vector length register in which information on the number of elements stored in each vector register is set;
Reference numerals 12-0 and 12-1 represent memory access pipelines, 13 an addition/subtraction pipeline, 14 a multiplication processing pipeline, 15 a division processing pipeline, and 16 a mask processing pipeline.

上記の如きベクトル処理プロセッサが処理を実行するに
当って、当該プロセッサが実行するに適した形に、与え
られたソース・プログラムをコンパイルし目的プログラ
ムを生成することが行なわれる。当該コンパイルを行な
うコンパイラの構成は第3図を参照して後述されるが、
当該コンパイラによるコンパイル処理に当って、上記ベ
クトル処理プロセッサが現実に処理を実行する際に、各
パイプライン演算部の空き状態が可能な限ぎり少なくな
るように、コンパイルすることが望まれる。
When a vector processing processor as described above executes a process, a given source program is compiled into a form suitable for execution by the processor to generate a target program. The configuration of the compiler that performs the compilation will be described later with reference to FIG.
In compiling processing by the compiler, it is desirable to compile in such a way that when the vector processing processor actually executes processing, the free state of each pipeline operation unit is minimized as much as possible.

(q 発明の目的と構成 本発明は、上記の点を解決することを目的としており、
(i)与えられた中間コードにもとづいて、各部φ・・
並列演算部が使用される態様を調べ、(ii)各部・・
・並り・1演算部がもつ個有重み情報と当該並列演算部
が使用可能となる態様に関連したパス重み情報とを抽出
し、(山)パス車み情報にもとづいて順次並列演算部の
使用態様を割付けてゆくようにして、最適化された目的
プログラムを生成するようにすることを特徴としている
1、以下図面を参照しつつ説明する。
(q Purpose and structure of the invention The purpose of the present invention is to solve the above points,
(i) Based on the given intermediate code, each part φ...
Examine the manner in which the parallel processing unit is used, and (ii) each part...
- Extract the unique weight information of one calculation unit and the path weight information related to the mode in which the parallel calculation unit can be used, and sequentially calculate the parallel calculation units based on the (mountain) path information. A feature of the present invention is that an optimized target program is generated by allocating usage patterns.1, which will be explained below with reference to the drawings.

ID)  発明の実施例 第3図は本発明に用いるコンパイラの一実施例構成、第
4図は本発明においてソース・プログラムを中間コード
に移してゆく態様を説明する説明図、第5図はソース・
プログラムをベクトル化してゆく態様を説明する説明図
、第6図ないし第10図は本発明による処理を説明する
説明図、第11図は中間コード最適化部における本発明
に直接関連する部分の一実施例フローチャート、第12
図はパイプライン演算部における処理に関連した説明図
を示す。
ID) Embodiment of the Invention FIG. 3 shows the configuration of an embodiment of a compiler used in the present invention, FIG. 4 is an explanatory diagram illustrating the manner in which a source program is transferred to intermediate code in the present invention, and FIG. 5 shows a source program.・
An explanatory diagram illustrating how a program is vectorized. Figures 6 to 10 are explanatory diagrams illustrating the processing according to the present invention. Figure 11 is a part of the intermediate code optimization section that is directly related to the present invention. Example flowchart, 12th
The figure shows an explanatory diagram related to processing in the pipeline calculation section.

第3図において、17は大記憶装置に格納されているソ
ース・プログラム、18はコンパイラ、19はコンパイ
ルされて大記憶装置上に格納される目的プログラム、2
0はソース解釈部、21は記憶域割付は部、22はベク
トル化部、23は中間コード最適化部、24はレジスタ
使用決定部、25は目的プログラム出力部を表わしてい
る。
In FIG. 3, 17 is a source program stored in the large storage device, 18 is a compiler, 19 is a target program that is compiled and stored in the large storage device, and 2
0 represents a source interpretation section, 21 a storage allocation section, 22 a vectorization section, 23 an intermediate code optimization section, 24 a register use determination section, and 25 a target program output section.

コンパイラ18は、大記憶装置からソース・プログラム
17を取込んで、所望の目的プログラム19を生成する
。このとき図示の各部は次のような処理を行う。
A compiler 18 takes in a source program 17 from a large storage device and generates a desired target program 19. At this time, each of the illustrated units performs the following processing.

即ち、ソース解釈部20はソース拳プログラム17を大
記憶装置から嘔込み、文解釈を行って中間コード(テキ
スト)に展開する1、例えばソース・プログラムが第4
図図示左側の如き場合に図示右側に示す如き弔問コード
に展開する。記憶域割付は部21はプログラム内に出現
する各棟データに対応して記憶域内番地を割当てる。ベ
クトル化部22は、プログラム中のループ構造を検量し
、並列実行可能部分を認識し、第5図図示の如く中間コ
ード変・更を行う。中間コード最適化部23は、中間コ
ードのレベルで、第2図図示の如きベクトル処理プロセ
ッサを有効に利用するための最適化を施す。レジスタ使
用決定部24は、中間コードに現われたデータに対して
、ベクトル処理プロセッサ上の資源(レジスタ)を割当
てる。そして目的プログラム出力部25は機械命令語を
大配憶装置へ出力しかつ命令語レベルでの最適化を行う
That is, the source interpreter 20 loads the source program 17 from the large storage device, performs sentence interpretation, and develops it into intermediate code (text).
In the case shown on the left side of the figure, the condolence code is developed as shown on the right side of the figure. The storage area allocation unit 21 allocates addresses in the storage area corresponding to each piece of data that appears in the program. The vectorization unit 22 examines the loop structure in the program, recognizes parts that can be executed in parallel, and changes/changes the intermediate code as shown in FIG. The intermediate code optimization section 23 performs optimization at the intermediate code level to effectively utilize a vector processing processor as shown in FIG. The register use determining unit 24 allocates resources (registers) on the vector processing processor to data appearing in the intermediate code. Then, the target program output unit 25 outputs the machine instruction words to the large storage device and performs optimization at the instruction word level.

ベクトル処理プロセッサを稼動させるためのコンパイラ
は第3図図示の如き構成をもっており、ソース・プログ
ラムをコンパイルしてゆく。この間、上述の中間コード
最適化部は、後述する如く、ベクトル処理プロセッサに
おける処理が現実に行われる際に上述のパイプライン演
算部に空き状態が生じることの少ないように、与えられ
た中間コード(テキスト)の順序を入れ替える処理を行
なう。
A compiler for operating a vector processing processor has a configuration as shown in FIG. 3, and compiles a source program. During this time, the above-mentioned intermediate code optimization section, as described later, uses the given intermediate code ( Performs processing to rearrange the order of text).

即ち、令弟6図(A)図示の如きソース・プログラムが
与えられて、第3図図示の中間コード最適化部23に対
して、第6図(B)図示の如き中間コードが供給されて
きたとするっ該第6図CB)図示の中間コードにもとづ
いて、上述のパイプライン演算部12ないし15が割伺
けられてゆくと、第8図図示の如き態様となり、各パイ
プライン演算部の使用時に非所望な空き状態が発生する
形となるっこの点を解決するために、第6図(B)図示
の如き中間コードが与えられると、当該中間コードにも
とづいて第7図図示の如き「ツリー」をつくってゆく。
That is, a source program as shown in FIG. 6(A) is given, and an intermediate code as shown in FIG. 6(B) is supplied to the intermediate code optimization unit 23 shown in FIG. 3. Suppose that if the above-mentioned pipeline calculation units 12 to 15 are divided based on the intermediate code shown in FIG. 6 (CB), the configuration as shown in FIG. In order to solve this problem that causes an undesired empty state during use, when an intermediate code as shown in FIG. 6(B) is given, the code as shown in FIG. Create a "tree".

即ち、コード「Vil−・・・・・・」や「Vt2−・
・・・」に対応してロードが行われることから、第7図
図示ロードに対応した形で○印で示す節(パイプライン
演算部の1つによる処理に対応する)を用意する。そし
てコード「vt3−・・・・」に対応して加算が行われ
ることから、加算に対応した形で節を用意する。以下同
様K L、て、第7図図示の如きツリーがつくられる。
That is, the code "Vil-..." or "Vt2-..."
. . ”, therefore, a section marked with a circle (corresponding to processing by one of the pipeline calculation units) is prepared in a manner corresponding to the load shown in FIG. 7. Since addition is performed in response to the code "vt3-...", a clause is prepared in a form corresponding to the addition. In the same manner, a tree as shown in FIG. 7 is created.

なお言うまでもなく、当該ツリーは、テーブル上に展開
されてつくられろ。
Needless to say, the tree must be expanded and created on a table.

このとき、各節に対して右下隅に示す如く各節に対応し
て個有の重み(個有重み)情報が与えられ、また各節に
対して右下隅に示す如くパス恵み情報が与えられる。こ
れらの重み情報は、次の如くして与えられる。即ち、個
有重み情報は、演算実行時間などから、例えばロード/
ストア用パイプライン演算部、または加減算用パイプラ
イン演算部または乗算用パイプライン演算部に対応して
重み「1」が与えられ、除算用パイプライン演算部に対
応して重み「3」が与えられる。第7図図示のvt6.
 vts、 vt】oに対応する節に対して、個有重み
情報として重み「3」が与えられているが、これは除算
」が3回行なわれることにもとづいている。
At this time, unique weight (individual weight) information is given to each node as shown in the lower right corner, and path grace information is given to each node as shown in the lower right corner. . These weight information are given as follows. In other words, the unique weight information is determined based on the calculation execution time, for example, when loading/unloading.
A weight of "1" is assigned to the store pipeline operation section, an addition/subtraction pipeline operation section, or a multiplication pipeline operation section, and a weight of "3" is assigned to the division pipeline operation section. . VT6.
A weight of "3" is given as unique weight information to the clause corresponding to vts, vt]o, and this is based on the fact that "division" is performed three times.

このようにして各節に対して個有重4情報が与えられる
と、図示上方にパスをもたない節に対して、パス重み情
報として当該節の個有lみを与える。図示の場合、X(
→やZ HやY (*)に対応する節に対してパス重み
情報として重み「1」が与えられる。次いで、例えばX
(→に対応する節に対してパスをもつ所のvtaに対応
する節が抽出され、当該節に対してパス重み情報が仮決
定される。即ち、X(→節のパス重み「1」とvta節
の個有重み「1」とを加算して、Vt3節のパス重みを
「2」と仮決定する。同様に図示vtlt、 Vt13
節やVt6. vts、 VtlO節に対しても同様に
パス重みが仮決定される。図示vta節の場合には、v
tn、 vtta節に対してもパスをもっており、これ
に対応するパス重みが「4」とされることから、より大
きいパス重みをもつ側がVt3節についてのパス重みと
して決定される。
When the unique weight 4 information is given to each node in this way, the unique value 1 of the node is given as path weight information to a node that does not have a path in the upper part of the diagram. In the case shown, X(
A weight of "1" is given as path weight information to the clauses corresponding to →, Z H, and Y (*). Then, for example,
The node corresponding to vta that has a path to the node corresponding to (→) is extracted, and the path weight information is tentatively determined for the node. By adding the unique weight "1" of the vta node, the path weight of the Vt3 node is tentatively determined to be "2".
Clause and Vt6. Path weights are similarly tentatively determined for the vts and VtlO nodes. In the case of the illustrated vta clause, v
Since it also has a path for the tn and vtta nodes, and the corresponding path weight is set to "4," the side with the larger path weight is determined as the path weight for the Vt3 node.

第7図に示す各節のパス重みは上述の如くして決定され
ている。
The path weights of each node shown in FIG. 7 are determined as described above.

第7図図示の如くパス重みが決定されると、第9図に示
す如(、パス重みの大ぎいものから順に各パイプライン
演算部の使用を割付けてゆくようにする。即ち例えばV
t1節とVt2節とを夫々ロード/ストア用パイプライ
ン演算都に割付けると、図示時刻t!において、A(→
とB((イ)との各最初のエレメントについてのロード
が終了し4 vt3節に対応する加減算用のパイプライ
ン演算部を当該時刻t1から発動することが可能となる
。第9図は、このようにして順次各パイプライン演算部
の使用態様を割付けて行ったものであり、第8図図示の
場合にくらべて約65%程度処理速度が向上されること
が判る。第10図は、第9図に示す如く各中間コードの
順序を入れ替えた結果を示している。
When the path weights are determined as shown in FIG. 7, the usage of each pipeline operation unit is assigned in order from the path weight to the one with the largest path weight, as shown in FIG.
When the t1 node and the Vt2 node are assigned to the load/store pipeline operation capitals, the illustrated time t! In, A(→
After the loading of the first elements of and B((a) is completed, it becomes possible to activate the pipeline calculation unit for addition and subtraction corresponding to clause 4vt3 from the time t1. In this way, the usage mode of each pipeline calculation unit is sequentially assigned, and it can be seen that the processing speed is improved by about 65% compared to the case shown in FIG. 8. As shown in FIG. 9, the result of rearranging the order of each intermediate code is shown.

第11図は、上述の処理を実行すべく、第3図図示の中
間コード最適化部における本発明に直接関連する部分の
一実施例フローチャートを示している。
FIG. 11 shows a flowchart of an embodiment of the portion directly related to the present invention in the intermediate code optimization section shown in FIG. 3 in order to execute the above-described processing.

図示のテーク・ディペンデンジの把握部26゜ツリー構
造の作成部27 節の重み計算部28における処理は、
第6図、第7図に関連して述べた説明に対応しており、
各節のバス重みが抽出される。次いで、ベクトル演算頭
圧決定処理に入り、パイプラインの決定部30.ベクト
ル演算の決定部31.ベクトル演算の出力部32によっ
て、第9図、第10図に関連して述べた如く、各パイプ
ライン演算部の使用態様が決定されてゆく。
The processes in the illustrated take/dependency understanding unit 26, tree structure creation unit 27, and node weight calculation unit 28 are as follows:
It corresponds to the explanation given in relation to Figures 6 and 7,
The bus weight of each node is extracted. Next, a vector calculation head pressure determination process is entered, and the pipeline determination unit 30. Vector calculation determining unit 31. The vector operation output unit 32 determines how each pipeline operation unit is used, as described in connection with FIGS. 9 and 10.

パイプラインの決定部30は次の如き処理機能をもって
いる。即ち、次に出力すべき演算がどのパイプライン演
算部を使用するのが、より好ましいかを決定する。この
ためには、2つの観点が調べられる。即ち、成る1つの
演算がいわば始動レディ状態にある時点と、当該演算が
使用されるであろうパイプライン演算部が空き状態とな
る時点とが調べられる。そして、両者時点のより遅い時
点をもって、当該パイプライン演算部に対する「命令発
信可能位置」とされる。このような命令発信可能位置が
各パイプライン演算部対応に求められ、このうちで最も
早い時点において「命令発信可能位置」をもっているパ
イプライン演算部に対して、当該パイプライン演算部を
使用すべく決定されてゆく。
The pipeline determining unit 30 has the following processing functions. That is, it is determined which pipeline operation unit is more preferable to use for the operation to be output next. To this end, two aspects are examined. That is, the point in time when one operation is in a so-called ready-to-start state and the point in time when the pipeline operation section in which the operation will be used becomes idle are checked. Then, the later point in time between the two points is determined as the "instruction transmittable position" for the pipeline operation unit. Such a position where an instruction can be issued is determined for each pipeline operation unit, and the pipeline operation unit that has the “instruction enable position” at the earliest point in time is determined to use the pipeline operation unit. It will be decided.

第11図図示のベクトル演算の決定部31は、上記パイ
プラインの決定部30において次に使用するよう決定さ
れたパイプライン演算部について、11− 当該パイプライン演算部な使用することのできる複数個
の演算のうち、どの演算を演算させるかを決定する。こ
の決定には、次の如きアルゴリズムを利用するようにさ
れる。即ち、「当該パイプライン演算部における上記命
令発信可能位置よりも以前に始動レディ状態にある所の
複数の演算を抽出し、その中で上述のパづ重み情報の最
も大きい演算を決定する」。
The vector calculation determining unit 31 shown in FIG. Determine which operation to perform among the operations in . The following algorithm is used for this determination. In other words, ``a plurality of operations in the pipeline operation section that are in a start ready state before the above-mentioned instruction issuing position are extracted, and among them, the operation with the largest padding weight information is determined.''

第11図図示のベクトル演算の出力部32は、上述の如
く、成るパイプライン演算部に対応して成る1つの演算
による使用が決定されると、当該演算に対応する所の値
、即ち第12図図示の(1)命令発信開始位置、(il
 命令発信終了位置、(iil)命令実行開始位置(又
は立上げ完了位置) 、(+V)命令実行開始位置をシ
ミュレートする。そして当該演算が1つのパ・1プライ
ン演算部を使用することになったことに伴なって生じる
各パイプライン毎の命令発信町1止位置を設定し直し、
残余の演算に対するパイプライン演算部の欧州を決定す
るための準備を行なう。
As described above, when it is determined that the vector operation output section 32 shown in FIG. (1) Command transmission start position, (il
The command transmission end position, (iii) command execution start position (or start-up completion position), and (+V) command execution start position are simulated. Then, the instruction transmission stop position for each pipeline, which occurs due to the fact that the calculation uses one pipeline calculation unit, is reset,
Preparations are made to determine the Europe of the pipeline operation unit for the remaining operations.

12− 停)発明の詳細 な説明した如く、本発明によれば、ベクトル処理プロセ
ッサが処理を実行してゆく際に各並列演算部に非所望な
空き状態が生じることが少なくなるよう、中間コードの
処理順序を変換しつつ適正な形でコンパイルすることが
可能となる。
12-1) As described in detail, according to the present invention, intermediate code is created so that undesirable vacant states are less likely to occur in each parallel processing unit when a vector processing processor executes processing. It becomes possible to compile in an appropriate form while converting the processing order of

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

第1図はベクトル命令に対応した処理を概念的に説明す
る説明図、第2図は本発明にいうベクトル処理プロセッ
サを有する処理システムの一実施例、第3図は本発明に
用いるコンパイラの一実施例構成、第4図はソース・プ
ログラムを中間コードに移してゆく態様を説明する説明
図、第5図はソース・プログラムをベクトル化してゆ(
態様を説明する説明図、第6図ないし第10図は本発明
による処理を説明する説明図、第11図は中間コード最
適化部における本発明に直接関連する部分の一実施例フ
ローチャート、第12図はパイプライン演算部における
処理に関連した説明図を示す。 図中、1は主記憶装置、2はメモリ制御装置、3はベク
トル処理プロセッサ、4はチャネル・プロセッサ、5は
大記憶装置、9はベクトル・レジスタ、10はマスク・
レジスタ、11ないし16は夫々パイプライン演算部、
17はソース・プログラム、18はコンパイラ、19は
目的プログラム、20はソース解釈部、21は記憶域割
付げ部、22はペクト、ル化部、23は中間コード最適
化部、24はレジスタ使用決定部、25は目的プログラ
ム出力部を表わしている。 特許出願人  富士通株式会社 代理人弁理士   森  1)  寛 (外1名) 才1図 74図 4二01+τ2 才5図 Do 10  Z=7.too           
  vi−ENe=to。 才 6図 (A) Do  10 1=  1,100 X(υ= A(I) 十B(I) Y(I)= C(I)  六〇(1) HE(Z)矢F
(01m = X(Z) +Y(I)すA(1)l B
mlo  CoNTIN(JE CB) 2例)  =  7/−t13 第12図 「−−イS了tトイ7始イ尤θ賀[「−−イらンン毎ト
3j5イ吉柊了4左裳埼肉
FIG. 1 is an explanatory diagram conceptually explaining processing corresponding to vector instructions, FIG. 2 is an example of a processing system having a vector processing processor according to the present invention, and FIG. 3 is an example of a compiler used in the present invention. Embodiment configuration, FIG. 4 is an explanatory diagram illustrating the manner in which a source program is transferred to intermediate code, and FIG.
6 to 10 are explanatory diagrams illustrating processing according to the present invention. FIG. 11 is a flowchart of an embodiment of a portion directly related to the present invention in the intermediate code optimization section. The figure shows an explanatory diagram related to processing in the pipeline calculation section. In the figure, 1 is a main storage device, 2 is a memory control device, 3 is a vector processing processor, 4 is a channel processor, 5 is a large storage device, 9 is a vector register, and 10 is a mask processor.
Registers 11 to 16 are pipeline operation units, respectively;
17 is a source program, 18 is a compiler, 19 is an objective program, 20 is a source interpretation section, 21 is a storage allocation section, 22 is a program processing section, 23 is an intermediate code optimization section, and 24 is a register use determination section. A section 25 represents a target program output section. Patent applicant Fujitsu Ltd. Representative Patent Attorney Mori 1) Hiroshi (1 other person) 1 figure 74 figure 4 201 + τ2 5 figure Do 10 Z=7. too
vi-ENe=to. 6 Figure (A) Do 10 1= 1,100 X(υ= A(I) 10B(I) Y(I)= C(I) 60(1) HE(Z) Arrow F
(01m = X(Z) +Y(I)suA(1)l B
mlo CoNTIN (JE CB) 2 examples) = 7/-t13 Fig. 12 ``--I S Ryo t toy 7 beginning I y θga [``--Irann every 3 j 5 I Yoshihiragi ry 4 left mo Sai meat

Claims (1)

【特許請求の範囲】[Claims] 複数の並列演算部をそなえると共に被数個のレジスタを
少なくともそなえてベクトル命令を実行するベクトル処
理プロセッサに対して、与えられたソース・プログラム
から目的プログラムを生成して供給するコンパイラにお
いて、上記ソース・プログラムの文解釈を行って中間コ
ードに展開するソース解釈部、プログラム中に出現する
各種データに記憶域内査地を割り当てる記憶域割付は部
、プログラム中のループ構造を検出して並列実行可能部
分の認識を行いかつ上記中間コード変更を行うベクトル
化部、中間コードのレベルで上記ベクトル処理プロセッ
サを有効に利用するための最適化を施す中間コード最適
化部、中間コードに現われたデータに実際の資源を割当
てるレジスタ使用決定部、および目的プログラム出力惟
・をそなえてなり、更に上記中間コード最適化部は、与
えられた中間コードにもとづいて、上記ベクトル処理プ
ロセッサにおける各並列演算部が使用される態様を調べ
、各並列演算部がもつ個有り個有型みtiv報と当該並
列演算部が使用可能となる態様に関連したパス重み情報
とを抽出する処理部をそなえると共に、上記パス重み情
報にもとづいて順次空き状態にある並列演算部の使用態
様を割付けてゆくシミュレーションを実行するベクトル
演算順序決定処理部をそなえ、上記ベクトル処理プロセ
ッサによる処理を最適化するよう上記中間コードの処理
順序を交換することを特徴とするベクトル演昇の並列実
行最適化処理方式。
In a compiler that generates and supplies a target program from a given source program to a vector processing processor that is equipped with a plurality of parallel operation units and at least an augend register and executes vector instructions, the source program The source interpretation section interprets program statements and develops them into intermediate code, the storage allocation section allocates storage locations for various data that appears in the program, and the A vectorization unit that performs recognition and changes the intermediate code, an intermediate code optimization unit that performs optimization to effectively utilize the vector processing processor at the intermediate code level, and a vectorization unit that performs optimization to effectively utilize the vector processing processor at the intermediate code level; and a target program output condition, and the intermediate code optimization unit determines how each parallel operation unit in the vector processing processor is used based on the given intermediate code. The processing unit is provided with a processing unit that examines and extracts the unique type information of each parallel processing unit and path weight information related to the manner in which the parallel processing unit can be used, and based on the path weight information. and a vector operation order determination processing unit that executes a simulation in which usage patterns are sequentially allocated to parallel operation units in a vacant state, and the processing order of the intermediate code is exchanged so as to optimize the processing by the vector processing processor. A parallel execution optimization processing method for vector performance.
JP3119482A 1982-02-27 1982-02-27 Processing system of optimization for parallel execution of vector operation Granted JPS58149566A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3119482A JPS58149566A (en) 1982-02-27 1982-02-27 Processing system of optimization for parallel execution of vector operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3119482A JPS58149566A (en) 1982-02-27 1982-02-27 Processing system of optimization for parallel execution of vector operation

Publications (2)

Publication Number Publication Date
JPS58149566A true JPS58149566A (en) 1983-09-05
JPS6319905B2 JPS6319905B2 (en) 1988-04-25

Family

ID=12324609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3119482A Granted JPS58149566A (en) 1982-02-27 1982-02-27 Processing system of optimization for parallel execution of vector operation

Country Status (1)

Country Link
JP (1) JPS58149566A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53108254A (en) * 1977-03-02 1978-09-20 Nec Corp Information processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53108254A (en) * 1977-03-02 1978-09-20 Nec Corp Information processor

Also Published As

Publication number Publication date
JPS6319905B2 (en) 1988-04-25

Similar Documents

Publication Publication Date Title
US5303357A (en) Loop optimization system
US4251861A (en) Cellular network of processors
Van Praet et al. Instruction set definition and instruction selection for ASIPs
EP0051131B1 (en) Computing system operating to assign registers to data
US5339429A (en) Parallel processing system and compiling method used therefor
Johnson A tour through the portable C compiler
US20020056078A1 (en) Program optimization
CZ280269B6 (en) Digital computer system
Nakazaki et al. Design of a high-speed Prolog machine (HPM)
Kozdrowicki et al. Second generation of vector supercomputers
Wichmann et al. ALGOL 60 Compilation and Assessment
Dewitt A machine independent approach to the production of optimized horizontal microcode.
Liu et al. Techniques of program execution with a writable control memory
JPS58149566A (en) Processing system of optimization for parallel execution of vector operation
JPS59165147A (en) Vector instruction method for conditional statements in compilers
KR0136111B1 (en) Device for modifying data element and method
JPH06103462B2 (en) Vector length control range division processing method
Dhamdhere et al. Characterization of program loops in code optimization
JPS58149567A (en) Vector length control range fusion processing method
JPS58149570A (en) Scheduling processing system of vector instruction
JPH046020B2 (en)
RU2028663C1 (en) Computing system
Saucier et al. Implementations of IF-statements in the TODOS microarchitecture synthesis system
JPS6321946B2 (en)
Goessling et al. ISPMET: a study in automatic emulator generation