JPS58149567A - Processing system of merging of vector length control range - Google Patents

Processing system of merging of vector length control range

Info

Publication number
JPS58149567A
JPS58149567A JP3119582A JP3119582A JPS58149567A JP S58149567 A JPS58149567 A JP S58149567A JP 3119582 A JP3119582 A JP 3119582A JP 3119582 A JP3119582 A JP 3119582A JP S58149567 A JPS58149567 A JP S58149567A
Authority
JP
Japan
Prior art keywords
vector
intermediate code
length control
program
processing
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
JP3119582A
Other languages
Japanese (ja)
Other versions
JPS6319906B2 (en
Inventor
Yukio Kamiya
幸男 神谷
Masaaki Takiuchi
滝内 政昭
Koichiro Hotta
耕一郎 堀田
Masaki Aoki
正樹 青木
Hideo Takashima
高嶋 秀夫
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 JP3119582A priority Critical patent/JPS58149567A/en
Publication of JPS58149567A publication Critical patent/JPS58149567A/en
Publication of JPS6319906B2 publication Critical patent/JPS6319906B2/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)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To optimize the processing without setting again contents of a vector length register, by checking precedence relations throughout plural vector length control ranges using the same vector register and merging length control ranges on condition that merging is impossible. CONSTITUTION:A source program 17 processed by a processor is interpreted in a source interpreting part 20 of a compiler 18 and is developed to an intermediate code, and addresses in a storage area are allocated to various appearing data by a storage area allocating part 21. Loop structures in this address-allocated program 17 are detected by a vector converting part 22, and parallel executable parts are recognized and are changed to the intermediate code. The program is subjected to the optimization for using effectively a vector processing processor in the level of the intermediate code by an intermediate code optimizing part 23, and registers (resources) on the vector processing processor are assigned by a register use determining part 24. By an object program output part 25, the machine language is outputted to an object program 19 and the optimization in the level of instruction words is performed.

Description

【発明の詳細な説明】 (A)  発明の技術分野 本発明は、ベクトル・レングス制御範囲融合処理方式、
特に複数の並列演算部乞そなえたベクトル処理プロセッ
サに対して、与えろtty、−ソース・プログラムから
目的プログラムケ生成して供給するコンパイラにおいて
、同一のベクトル・レングスンもつ複数個のベクトル・
レングス制御範囲乞可能な限ぎり単一のベクトル・レン
グス制御範囲に融合せしめるようにベクトル・レングス
制御範囲融合処理方式に関するものである。
DETAILED DESCRIPTION OF THE INVENTION (A) Technical Field of the Invention The present invention relates to a vector length control range fusion processing method,
In particular, for vector processing processors equipped with multiple parallel processing units, a compiler that generates and supplies a target program from a source program can process multiple vectors with the same vector length.
The present invention relates to a vector-length control range fusion processing method for merging length control ranges into a single vector-length control range as much as possible.

(B)  技術の背景と問題点 例えは、第1図(A)に示す如く、ベクトルAに属する
エレメントal t a2 r・・・とベクトルBに属
するエレメントb1 y b2 t・・・との各エレメ
ント相互を加算して、エレメントc1.c2.・・・乞
もつベクトルCを生成するような、ベクトル命令を実行
するベクトル処理プロセッサが存在している。第1図(
A)図示の場合、第1番目のエレメント相互の加算を行
なうか否か乞マスク・ニレメン) ml p m2 #
・・・にて指示するようにされており、第1図CB)に
−膜化して示す如き処理が行なわれる。
(B) Technical Background and Problems An example of this is as shown in Figure 1 (A), where the elements al t a2 r... belonging to vector A and the elements b1 y b2 t... belonging to vector B. By adding the elements together, element c1. c2. ...Vector processing processors exist that execute vector instructions, such as generating a vector C. Figure 1 (
A) In the case shown, whether or not to perform mutual addition of the first element (Mask Niremen) ml p m2 #
. . , and the processing shown in FIG. 1 (CB) is performed.

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

図中の符号1は主記憶装置、2はメモリ制御装置、3は
ベクトル処理プロセッサ、4はチャネル・プロセッサ、
5は大記憶装置、6はスカラ処理回路部、7はベクトル
処理回路部、8−0.8−1゜・・・は夫々浮動小数点
データ・レジスタ、9−0゜9−1.・・・は夫々複数
個のデータ(エレメント・データ)乞格納し得るベクト
ル・レジスタ、10−o。
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. ... are vector registers 10-o each capable of storing a plurality of data (element data).

10−1.・・・は夫々複数個のマスク・データ(マス
ク・エレメント・データ)乞格納し得るマスク・レジス
タ、11はベクトル長レジスタであって各ベクトル・レ
ジスタに格納されるエレメントの個数情報がセットされ
るもの、12−0 、12−1は夫々メモリ・アクセス
・パイプライン、13は加減算パイプライン、14は乗
算処理パイプライン、15は除算処理バイクライン、1
6はマスク処理パイプライン’Yffわしている。
10-1. . . . are mask registers that can each store a plurality of mask data (mask element data), and 11 is a vector length register in which information on the number of elements stored in each vector register is set. 12-0 and 12-1 are memory access pipelines, 13 is an addition/subtraction pipeline, 14 is a multiplication processing pipeline, 15 is a division processing bike line, 1
6 is a mask processing pipeline 'Yff'.

上記の如きベクトル処理プロセッサが処理を実行するに
当って、当該プロセッサが実行するに適した形に、与え
られたソース・プログラム乞コンパイルし目的プログラ
ムン生成することか行なわれる。当該コンパイルを行な
うコンパイラの構成は第3図馨参照して後述されるが、
当該コンパイラてよるコンパイル処理に当って、上記ベ
クトル処理プロセッサが処理ン実行する際に上記ベクト
ル長レジスタの内容をセットし直すことなしに実行でき
る範囲ケ増大し、全体としての処理の最適化を図ること
が望まれる。なお、本発明にいうベクトル・レングス制
御範囲とは、上記ベクトル長レジスタの内容をセットし
直すことなしに実行できるプログラム・ステップの範囲
に関連しているものと考えてよい。このことに関しては
第5図を参照して後述される。
When a vector processing processor as described above executes a process, a given source program is compiled and a target program is generated in a form suitable for execution by the processor. The configuration of the compiler that performs the compilation will be described later with reference to Figure 3.
In compiling processing by the compiler, the range that can be executed without resetting the contents of the vector length register when the vector processing processor executes processing is increased, and the overall processing is optimized. It is hoped that The vector length control range referred to in the present invention may be considered to be related to the range of program steps that can be executed without resetting the contents of the vector length register. This will be discussed later with reference to FIG.

(C)  発明の目的と構成 本発明は、上記の点馨解決することを目的としており、
ベクトル・レングス馨同じとする複数個のベクトル・レ
ングス制御範囲にわたって、配列データ例えばA(ID
X、J)の先行順序関係をチェックし、融合不可条件に
ない場合に、上記複数個のベクトル・レングス制御範囲
ン融合せしめるようにすることを特徴としている。以下
図面を参照しつつ説明する。
(C) Purpose and structure of the invention The present invention aims to solve the above-mentioned problems.
Array data such as A (ID
The present invention is characterized in that the preceding order relationship of X, J) is checked, and if there are no conditions that prohibit merging, the plurality of vector length control ranges are fused. This will be explained below with reference to the drawings.

(1))発明の実施例 第3図は本発明に用いるコンパイラの一実施例構成、第
4図は本発明においてソース番グロクラムχ中間コード
(テキスト)に移してゆく態様ヶ説明する説明図、第5
図はベクトル・レングス制御範囲を説明する説明図、第
6図ないし第12図は本発明による処理を説明する説明
図、第13図はベクトル化部における本発明に直接関連
した処理に対応したー実施例フローチャート乞示す。
(1)) Embodiment of the Invention Fig. 3 shows the configuration of an embodiment of the compiler used in the present invention, Fig. 4 is an explanatory diagram illustrating the manner in which the source number is transferred to the globulum χ intermediate code (text) in the present invention. Fifth
The figure is an explanatory diagram explaining the vector length control range, Figures 6 to 12 are explanatory diagrams explaining the processing according to the present invention, and Figure 13 corresponds to the processing directly related to the present invention in the vectorization section. An example flowchart is shown below.

第3図に2いて、17は大記憶装置に格納さtているソ
ース・プログラム、18はコンパイラ、19はコンパイ
ルさ肚て大記憶装置上に格納されル目的プログラム、2
0はソース解釈部、21は記憶域割付は部、22はベク
トル化部、23は中  “間コード最適化部、24はレ
ジスタ使用決定部、25は目的プログラム出力部を表わ
している。
2, 17 is a source program stored in the large storage device, 18 is a compiler, 19 is a target program that is to be compiled and stored in the large storage device, 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乞大
記憶装置から取込み、文解釈ケ行って中間コート(テキ
スト)に展開する。例えばソース・プログラムが第4図
図示左側の如き場合に図示右側に示す如き中間コードに
展開する。記憶埴割付は部21はブロクラム内に出現す
る各種データに対応して記憶域内番地χ割当てる。ベク
トル化部22は、プログラム中のループ構造ケ検出し、
並列実行可能部分とB Wljし、第5図図示の如く中
間コード変更を行う。中間コー ド最適化部23は、中
間コードのレベ化で、第2図図示の如きベクトル処理プ
ロセラサケ有効に利用するための最適化を施す。ンジス
タ団用決定部24は、中間コードに現わオtたデータに
対して、ベクトル処理プロセッサ上の資源(レジスタ)
を割当てる。そして目的プログラム出力部2′5は機械
命令語乞大記憶装置へ出力しかつ命令語レベルでの最適
化乞行う。
That is, the source interpreter 20 takes in the source program 17 from the storage device, performs sentence interpretation, and develops it into an intermediate code (text). For example, if the source program is as shown on the left side of FIG. 4, it is developed into intermediate code as shown on the right side of the figure. The memory area allocation unit 21 allocates addresses χ in the memory area corresponding to various data appearing in the block diagram. The vectorization unit 22 detects loop structures in the program,
BWlj with the parallel executable part, and change the intermediate code as shown in FIG. The intermediate code optimization unit 23 levels the intermediate code and performs optimization for effectively utilizing the vector processing processor as shown in FIG. The processor group determining unit 24 determines the resources (registers) on the vector processing processor for the data appearing in the intermediate code.
Assign. The target program output unit 2'5 outputs machine commands to a large storage device and performs optimization at the command level.

ベクトル処理プロセッサ乞稼動させるためのコンパイラ
は第3図図示の如き構成をもっており、与えられたソー
ス・プログラムをして、ベクトル処理プロセッサが好ま
しい形で処理を実行できるような形の目的プログラムに
コンパイルしてゆく。
A compiler for operating a vector processing processor has a configuration as shown in Figure 3, and compiles a given source program into a target program that allows the vector processing processor to execute processing in a preferred manner. I'm going to go.

当該コンパイルに当っては、第5図図示の如く、中間コ
ードヶ生成する処理を含んでいるが、■の値を11」か
ら1100」まで変化させつつ行なうDOループヶ、第
5図図示右側に示す如きベクトル・テキスト表現に変更
せしめることが行なわしる。この場合、上述のベクトル
長レジスタ11(第2図)にセットするベクトル・レン
グス(VLENG )を例えば図示の如く VLENG  =  100 とセットした内容を、改めてセットし直すことなしに処
理できる範囲が、不発明においてベクトル・レングス制
御範囲と呼んでいる。第5図図示右側に示すカギ・カッ
コの範囲が1つのベクトル・レングス制御範囲に該当し
ている。
This compilation includes processing to generate intermediate code as shown in Figure 5, and a DO loop performed while changing the value of ■ from 11'' to 1100'' as shown on the right side of Figure 5. A change to a vector text representation is performed. In this case, the range that can be processed without resetting the vector length (VLENG) set in the vector length register 11 (FIG. 2), for example, VLENG = 100 as shown in the figure, is insufficient. In the invention, this is called the vector length control range. The range of keys and brackets shown on the right side of FIG. 5 corresponds to one vector length control range.

ベクトル処理プロセッサか処理を実行するに当って、上
記ベクトル長レジスタ11 (第2図)の内容乞セット
し直すということはいわば別個のベクトル処理を行なう
ことに対応しており、可能な限ぎり複数の処理をまとめ
て単一のベクトル処理によって実行することが処理最適
化の面から望ましい。
When the vector processing processor executes processing, resetting the contents of the vector length register 11 (Fig. 2) corresponds to performing separate vector processing, and it is possible to From the viewpoint of processing optimization, it is desirable to perform all of the above processes in a single vector process.

即ち、例えば第6図図示左側に示される如き複数個のD
oループをもつプログラムがあるとき、第6図図示右側
に示す如く、融合された単一のDOループに変えてゆく
ことに対応している。このことをベクトル・テキスト表
現にて表わすと、第7図図示白抜矢印の如く、複数個の
ベクトル・レングス制御範囲aとbとをベクトル・レン
グスが同じであることに注目し、所定の条件を満足して
いることを条件に、単一のベクトル・レングス制御範囲
Cに変えてゆくことに対応している。
That is, for example, a plurality of Ds as shown on the left side of FIG.
When there is a program with an o-loop, this corresponds to changing it into a single fused DO loop, as shown on the right side of FIG. Expressing this in a vector text expression, as shown by the white arrows in FIG. This corresponds to changing to a single vector length control range C on the condition that C is satisfied.

以下、上記融合が可能か否かをチェックする態様につい
て説明する。第8図は融合が可能である場合を示してお
り、図示左側に示す3つのベクトル・レングス制御範囲
p + q ! rにおいて配列データAについて次の
関係をもっている。即ち例えばIDX=3としたとき、
制御範囲pにおいてデータA(4,J)が定義され、次
いで制御範囲qにおいてデータA(3,J)が定義され
、更に制御範囲rにおいてデータA(2,J )が定義
される形となっている。このような関係にある3個のベ
クトル・レングス制御範囲p + q + r’k、図
示右側に示す単一のベクトル・レングス制御範囲Sに融
合したとする。
Hereinafter, a mode of checking whether the above-mentioned fusion is possible will be explained. FIG. 8 shows a case where fusion is possible, and the three vector length control ranges p + q ! shown on the left side of the figure are shown in FIG. r has the following relationship for array data A. That is, for example, when IDX=3,
Data A (4, J) is defined in the control range p, then data A (3, J) is defined in the control range q, and then data A (2, J) is defined in the control range r. ing. It is assumed that three vector length control ranges p + q + r'k having such a relationship are merged into a single vector length control range S shown on the right side of the figure.

第8図図示左側の処理によってデータAが記憶域上に定
義されてゆく態様を示すと、制御範囲pによる処理に対
応して、第9図(A)図示の如く、記憶域26上でID
Xの値が更新されてゆく間に、■、・■、■、・・・・
−・・・・の如く定義されてゆき、次いで制御範囲qに
よる処理に対応して、■、(島■、・・・・・・・・の
如く定義されてゆき、更に制御範囲rによる処理に対応
して、■、■、■、・・・・・・・・・の如く定義され
てゆくことが判る。−力筒8図図示右側の処理によって
データAが記憶域上に定義されてゆく態様を示すと、制
御範囲Sによる処理に対応して、第9図(B)図示の如
く、記憶域26上でIDXの値が更新されてゆく間に、
■、■、■、■、・・・・・・・・・■、■・・・・・
・・・・の如く定義されてゆく。
The manner in which data A is defined on the storage area by the processing on the left side of the diagram in FIG. 8 is shown in FIG.
While the value of X is being updated, ■, ・■, ■, ...
-... Then, corresponding to the processing by the control range q, it is defined as ■, (island ■,...), and then the processing by the control range r It can be seen that data A is defined on the storage area by the processing on the right side of Figure 8. As shown in FIG. 9(B), while the value of IDX is being updated in the storage area 26 in response to the processing by the control range S,
■、■、■、■、・・・・・・・・・■、■・・・・・・
It is defined as...

第9図(A)(B)i対比すると判る如く、処理が終っ
た段階において、記憶域26上の例えばIDX=になる
位置の内容は、第8図図示の制御範囲rによる処理にも
とづいて定義されたものとなっており、第8図図示左側
の処理金弟8図図示右側の処理の如く単一のベクトル・
レングス制御範囲に融合してもよいことが判る。
As can be seen by comparing FIGS. 9(A) and (B)i, at the stage when the processing is completed, the contents of the location in the storage area 26, for example, where IDX=, are based on the processing by the control range r shown in FIG. 8. As shown in the processing on the left side of Figure 8 and the processing on the right side of Figure 8, a single vector
It can be seen that it may be merged into the length control range.

第io図は融合が不可である場合を示しており、第10
図図示左側に示すベクトル・ンングス制御範囲p+q+
rt−図示右側に示す如く単一のベクトル・レングス制
御範囲Sに融合したとすると、次の如き矛盾が生じる。
Figure io shows the case where fusion is not possible;
Vector range control range p+q+ shown on the left side of the diagram
rt- If the vector length control range S is merged into a single vector length control range S as shown on the right side of the figure, the following contradiction will occur.

第10図図示左側の処理に対応して、第11図(A)図
示の如く、データAが記憶域26上でIDXの値が更新
されてゆく間に、■、■、■、・・・・・・・・・1■
、■、■、・・・・・・・・・■、■、(■、・・・・
・・・・・の如く定義されてゆく。これに対して、第1
0図図示右側の処理の場合には、第11図(B)図示の
如く、データAが記憶域26上でIDXの値が更新され
てゆく間に、■、■、■、■、・・・・・・・・・IL
■p・・・・・・・・・の如く定義されてゆくことが判
る。この場合、IDX=にで示す位置の内容は、本来、
第10図図示左側の処理に対応して、ベクトル・レング
ス制御範囲rによる処理に対応した結果となってゆくべ
きであるのに対し、第10図図示右側の処理の場合には
図示■の際に A (I DX −1、J )−VRi・・・・・・・
・・に対応して書替えられてしまっている。即ち、第1
0図図示の場合には、融合不可であることが判る。
Corresponding to the processing on the left side of FIG. 10, as shown in FIG. 11(A), while the value of IDX of data A is being updated in the storage area 26, ■, ■, ■, . . .・・・・・・1■
,■,■,・・・・・・・・・■,■,(■,・・・・
It is defined as... On the other hand, the first
In the case of the process on the right side of Figure 11, as shown in Figure 11 (B), while the value of IDX of data A is being updated in the storage area 26, ■, ■, ■, ■, etc.・・・・・・・・・IL
■p... It can be seen that it is defined as follows. In this case, the contents of the position indicated by IDX= are originally
Corresponding to the processing on the left side of Figure 10, the results should correspond to the processing using the vector length control range r, whereas in the case of the processing on the right side of Figure 10, the results are as shown in ■. ni A (IDX -1, J) - VRi...
It has been rewritten to correspond to... That is, the first
In the case shown in Figure 0, it can be seen that fusion is not possible.

第8図図示の場合と第10図図示の場合とを対比してみ
るとき、 A(xDx+g 、J)−・・・・・・・・・で与えら
れるもの全1つのベクトルriと考えて、当該ベクトル
の先行順序関係全矢印で示すと、第12図(A)図示の
如く先行順序関係が図示下向きの矢印にしたがっている
複数個のものは単一のベクトル・レングス制御範囲に融
合することが許され、−力筒12図(B)図示の如く先
行順序関係が図示上向きの矢印にしだがっているものが
あると上記融合が不可であることが判る。
When comparing the case shown in Fig. 8 and the case shown in Fig. 10, consider that all the vectors given by A(xDx+g, J) - 1 vector ri, When the preceding order relationships of the vectors are indicated by all the arrows, as shown in FIG. However, if there is a case in which the preceding order relationship follows the upward arrow in the figure as shown in FIG. 12 (B), it can be seen that the above fusion is impossible.

 11− 第13図(A)(B)は、−緒になって1つの図を構成
するものであり、ベクトル化部における本発明に直接関
連した処理に対応したー実施例フローチャートラ示す。
11- FIGS. 13(A) and 13(B), which together constitute one diagram, show an embodiment flowchart corresponding to processing directly related to the present invention in the vectorization unit.

その処理は概路次の如きものである。The process is roughly as follows.

(1)ベクトル・し/ゲスが同じ複数個のベクトル・レ
ングス制御範囲を選ぶ。
(1) Select a plurality of vector/length control ranges with the same vector/length.

(2)配列データAを取出す。(2) Extract array data A.

(3)1つのベクトル・レングス制御範囲を取出す。(3) Extract one vector length control range.

(4)  当該制御範囲中に配列データAの引用がある
か否かを調べる。
(4) Check whether there is a reference to array data A within the control range.

(5)あればその引用態様を覚えておく。(5) Remember the citation mode, if any.

(6)すべてのベクトル・レングス制御範囲について調
べ終ると、第13図(B)図示の如く、配列データAの
依存関係を求め、 (7)配列データAの依存関係をベクトル・レングス制
御範囲相互間の依存関係に移す。
(6) When all the vector length control ranges are investigated, as shown in FIG. 13(B), determine the dependence of array data A, Move to dependencies between.

(8)そして次の配列データについての処理に入る。(8) Then, processing begins for the next array data.

(9)配列データがなくなると、第13図(B)図示の
如く、下から上への依存関係があるもの金融 12− 合不可とする。
(9) When the array data runs out, as shown in FIG. 13(B), items that have dependencies from bottom to top will not be combined.

(10)そして融合不可にならなかったものについて融
合を行う。
(10) Then, merge those that have not become impossible to fuse.

以上の如くして、融合が行われてゆく。Fusion is performed in the manner described above.

(E)発明の詳細 な説明した如く、本発明によれば、いわば複数のDOル
ープ′Jk1つのDOループにまとめた形でコンパイル
することが可能となり、ベクトル処理プロセッサによる
処理に当って、ベクトル長レジスタの内容をセットし直
す処理などが簡略化され、処理速度を向上することが可
能となる。
(E) As described in detail, according to the present invention, it is possible to compile a plurality of DO loops into one DO loop, so that when processing by a vector processing processor, the vector length is Processing such as resetting the contents of registers is simplified, making it possible to improve processing speed.

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

第1図はベクトル命令に対応した処理全概念的に説明す
る説明図、第2図は本発明にいうベクトル処理プロセッ
サを有する処理システムの一実施例、第3図は本発明に
用いるコンパイラの一実施例構成、第4図は本発明にお
いてソース・プログラムを中間コード(テキスト)に移
してゆく態様を説明する説明図、第5図はベクトル・レ
ングス制御範囲を説明する説明図、第6図ないし第12
図は本発明による処理全説明する説明図、第13図はベ
クトル化部における本発明に直接関連した処理に対応し
た一実施例フローチャートを示す。 図中、1は主記憶装置、2はメモリ制御装置、3はベク
トル処理プロセッサ、4はチャネル・プロセッサ、5は
大記憶装置、9はベクトル・レジスタ、IOはマスク−
レジスタ、11ないし16は夫々パイプライン演算部、
17はソース・プログラム、18はコンパイラ、19は
目的プログラム、20はソース解釈部、21は記憶域割
付は部、22はベクトル化部、23は中間コード最適化
部、24はレジスタ使用決定部、25は目的プログラム
出力部を表わしている。 特許出願人  富士通株式会社 代理人弁理士  森 1)  寛 (外1名) = 15− 第1図 (A) (α1.α2.・・・、αz)+ (b、  
し2−)”’7レノ)0(C+ l C27”・y C
l1) [−(’rrLj z m2)”’ 2m1)
 ]”” VAD (’Jector ADcl ) 
[witL wuxsk ]律12図 (A)   INDE’l IE)X/2.N/A(I
DX+1.:J)−−m− A (IDX、J)=−−− A(IDX−7,J)=−m− CB) INDEXIDX/2.N/ A(IDX−1,J)= −−− A(IEIX、 J)=−−− A(IDX+1.σ)=−m− 436− 特開昭58−149567 (9) −437−
FIG. 1 is an explanatory diagram conceptually explaining the entire process corresponding to vector instructions, FIG. 2 is an example of a processing system having a vector 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 mode of transferring a source program to intermediate code (text) in the present invention, FIG. 5 is an explanatory diagram illustrating the vector length control range, and FIGS. 12th
FIG. 13 is an explanatory diagram illustrating the entire process according to the present invention, and FIG. 13 is a flowchart of an embodiment corresponding to the process directly related to the present invention in the vectorization 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 IO is a mask.
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 vectorization section, 23 is an intermediate code optimization section, 24 is a register use determination section, 25 represents a target program output section. Patent applicant: Fujitsu Ltd. Representative Patent Attorney Mori 1) Hiroshi (1 other person) = 15- Figure 1 (A) (α1.α2...., αz) + (b,
shi2-)"'7reno)0(C+ l C27"・y C
l1) [-('rrLj z m2)"' 2m1)
]”” VAD ('Jector ADcl)
[witL wuxsk] Ritsu 12 Figure (A) INDE'l IE) X/2. N/A(I
DX+1. :J)--m- A (IDX, J)=--- A(IDX-7, J)=-m- CB) INDEXIDX/2. N/ A (IDX-1, J) = --- A (IEIX, J) = --- A (IDX + 1.σ) = -m- 436- JP-A-58-149567 (9) -437-

Claims (1)

【特許請求の範囲】[Claims] 複数の並列演算部をそなえると共に複数個のレジスタ乞
少なくともそなえてベクトル命令を実行するベクトル処
理プロセッサに対して、与えられたソース・プログラム
から目的プログラムを生成して供給するコンパイラにお
いて、上記ソース・プログラムの文解釈を行って中間コ
ードに展開するソース解釈部、プログラム中に出現する
各種データに記憶域内替地を割り当てる記憶域割付は部
、プログラム中のループ構造乞検出して並列実行可能部
分の認識乞行いかつ上記中間コード変更を行うベクトル
化部、中間コードのレベルで上記ベクトル処理プロセッ
サを有効に利用するための最適化乞施す中間コード最適
化部、中間コードに現われたデータに実際の資源ビ割当
てるレジスタ使用済足部、および目的プログラム出力部
をそなえてなり、更に、上記ベクトル化部は、ベクトル
・レングスyt liJしくする複数個のベクトル・レ
ングス制御範囲を抽出しに上で、当該複数個のベクトル
・レングス制御範囲内のいずれか1つの配列データに注
目して上記複数個のベクトル・レングス制御範囲内での
当該配列データについての先行順序関係を記録し、すべ
ての配列データに関して上記先行順序関係が融合不可条
件にないとき、−ト記複数個のベクトル・レングス制御
範囲ン単一のベクトル・レングス制御範囲に融合するよ
うにしたこと馨特徴とするベクトル・レングス制御範囲
融合処理方式。
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 processing units and at least a plurality of registers and executes vector instructions. The source interpretation section interprets the sentences and develops them into intermediate code, the storage allocation section allocates storage areas for various data that appears in the program, and the memory allocation section detects loop structures in the program and recognizes parts that can be executed in parallel. A vectorization unit that performs optimization 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 an intermediate code optimization unit that performs optimization to effectively utilize the vector processing processor at the intermediate code level; The vectorization unit includes a register used foot to allocate, and a target program output unit, and the vectorization unit extracts a plurality of vector length control ranges that make the vector length yt liJ. Focusing on any one array data within the vector length control range, record the preceding order relationship for the array data within the plurality of vector length control ranges, and record the preceding order relationship for all array data. A vector-length control range fusion processing method characterized by merging a plurality of vector-length control ranges into a single vector-length control range when the relationship is not in a fusion-impossible condition.
JP3119582A 1982-02-27 1982-02-27 Processing system of merging of vector length control range Granted JPS58149567A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3119582A JPS58149567A (en) 1982-02-27 1982-02-27 Processing system of merging of vector length control range

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3119582A JPS58149567A (en) 1982-02-27 1982-02-27 Processing system of merging of vector length control range

Publications (2)

Publication Number Publication Date
JPS58149567A true JPS58149567A (en) 1983-09-05
JPS6319906B2 JPS6319906B2 (en) 1988-04-25

Family

ID=12324636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3119582A Granted JPS58149567A (en) 1982-02-27 1982-02-27 Processing system of merging of vector length control range

Country Status (1)

Country Link
JP (1) JPS58149567A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6235944A (en) * 1985-08-09 1987-02-16 Fujitsu Ltd Compiler processing system
JPS62163168A (en) * 1986-01-13 1987-07-18 Fujitsu Ltd Vector processing system
JPS62248065A (en) * 1986-04-22 1987-10-29 Fujitsu Ltd Solution system for simultaneous equations of sparse matrix

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03101301U (en) * 1990-01-30 1991-10-22

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PRINCIPLES OF COMPILER DESIGN=1979 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6235944A (en) * 1985-08-09 1987-02-16 Fujitsu Ltd Compiler processing system
JPS62163168A (en) * 1986-01-13 1987-07-18 Fujitsu Ltd Vector processing system
JPH053030B2 (en) * 1986-01-13 1993-01-13 Fujitsu Ltd
JPS62248065A (en) * 1986-04-22 1987-10-29 Fujitsu Ltd Solution system for simultaneous equations of sparse matrix

Also Published As

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

Similar Documents

Publication Publication Date Title
US5761514A (en) Register allocation method and apparatus for truncating runaway lifetimes of program variables in a computer system
JP3311462B2 (en) Compile processing unit
EP0702293B1 (en) Compiler with improved live range interference investigation
US20110119660A1 (en) Program conversion apparatus and program conversion method
JPH03172936A (en) Method and apparatus for compiling program requiring interprocedual register allocation
JPH0397059A (en) Method of synchronizing parallel processors
US4843545A (en) Compile method using copy propagation of a variable
US5854933A (en) Method for optimizing a computer program by moving certain load and store instructions out of a loop
JPH03150637A (en) System for assigning register correspondingly to pipeline
JP4026940B2 (en) Program converter
JPS58149567A (en) Processing system of merging of vector length control range
JPH07319710A (en) Compiling processing method
Hawkins et al. A multi-pass translation scheme for ALGOL 60
US6973645B2 (en) Compiler, operation processing system and operation processing method
Dhamdhere et al. Characterization of program loops in code optimization
Goubault Generalized boxings, congruences and partial inlining
JPS59165147A (en) Making into vector instruction system of conditional statement compiler
JPH0317136B2 (en)
JPS58149570A (en) Scheduling processing system of vector instruction
JPH0152779B2 (en)
JPS6319908B2 (en)
JP3004340B2 (en) Program optimization device
JPS6027947A (en) Vector generation system of loop including part which can not be made into vector in compiler
JPH09311791A (en) Variable register rule compiling method
JP2809073B2 (en) Array memory allocation method