JPS58149569A - スカラ配列化による並列化処理方式 - Google Patents

スカラ配列化による並列化処理方式

Info

Publication number
JPS58149569A
JPS58149569A JP3119782A JP3119782A JPS58149569A JP S58149569 A JPS58149569 A JP S58149569A JP 3119782 A JP3119782 A JP 3119782A JP 3119782 A JP3119782 A JP 3119782A JP S58149569 A JPS58149569 A JP S58149569A
Authority
JP
Japan
Prior art keywords
program
intermediate code
loop
section
existence
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
JP3119782A
Other languages
English (en)
Other versions
JPS6319908B2 (ja
Inventor
Yukio Kamiya
幸男 神谷
Koichiro Hotta
耕一郎 堀田
Masaaki Takiuchi
滝内 政昭
Toshihiro Hirabayashi
平林 俊弘
Masaki Aoki
正樹 青木
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 JP3119782A priority Critical patent/JPS58149569A/ja
Publication of JPS58149569A publication Critical patent/JPS58149569A/ja
Publication of JPS6319908B2 publication Critical patent/JPS6319908B2/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

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (4)発明の技術分野 本発明は、スカラ配列化による並列処理化処理方式、特
に複数の並列演算部をそなえたベクトル処理プロセッサ
に対して、与えられたソース・プログラムから目的プロ
グラムを生成して供給するコンパイラにおいて、単純変
数をもつループに関して、当該単純変数についてループ
の入口と出口とにおけるビジー状態を調べて分類を行い
、当該分類にもとづいて夫々並列処理化のだめの処理を
行うようにしたスカラ配列化による並列化処理方式に関
すΣものである。
(B)技術の背景と問題点 例えば、第1図(4)に示す如く、ベクトルAに属する
エレメントα1.C2,・・・とベクトルBに属するニ
レメン) IH,bz、・・・との各エレメント相互を
加算シて、エレメントC1,C2,・・・をもつベクト
ルCを生成するような、ベクトル命令を実行するベクト
ル処理プロセッサが存在している。第1図(4)図示の
場合、第を番目のエレメント相互の加算を行なうか否か
をマスク・エレメントml、7’lL2.・・・にて指
示するようにされており、第1図ω)に−膜化して示す
如き処理が行なわれる。
上記の如き処理を行なうベクトル処理プロセッサ金有す
るデータ処理システムは、一実施例として第2図図示の
如きシステム構成をもっている。
図中の符号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はマス
ク処理パイプラインを表わしている。
上記の如きベクトル処理プロセッサが処理を実行するに
当って、当該プロセッサが実行するに適した形に、与え
られたソース・プログラムをコン・ぞイルし目的プログ
ラムを生成することが行なわれる。当該コンパイルを行
なうコンパイラの構成は第3図を参照して後述されるが
、当該コンパイラによるコンパイル処理に当って、ベク
トル処理プロセッサによる処理が実行される際に、上述
のパイプライン演算部による処理を有効に活かし得るよ
うに並列実行可能な形にコンパイルすることが望まれる
しかし従来、単純変数(スカラ変数ともいう)をもつル
ープに関してループの入口や出口において当該単純変数
がビジー状態即ちその入口や出口において当該単純変数
が活きている場合においては、第6図に示す如く人口ビ
ジーであって「総和」と認識されたもの(本発明にいう
分類rlJのもの)以外は並列実行不可であるものとし
て取扱われていた。即ちベクトル処理プロセッサがスカ
ラ命令によって処理する形にコンパイルされていた。
(O発明の目的と構成 本発明は、上記の点について検討を進め、単純変数の存
在態様が予め定められた分類に該当するものについて並
列実行化全促進するようにすること全目的としており、
(1)ループの入口と出口とにおける単純変数のビジー
状態を調べ、 (+1)当該単純変数の存在態様を分類
し、 (1i1)分類結果に応じて夫々の形で単純変数
配列化を行って、並列実行化を図るようにしたことを特
徴としている。以下図面を参照しつつ説明する。
0発明の実施例 第3図は本発明に用いるコンパイラの一実施例構成、第
4図は本発明においてソース・プログラムを中間コード
に移してゆく態様全説明する説明図、第5図はソース・
プログラムをベクトル化してゆく態様を説明する説明図
、第6図は従来から並列実行可能とされていたループの
態様、第7図はベクトル化部における本発明に直接関連
する部分の一実施例フローチャート、第8図は単純変数
の存在態様を説明する説明図、第9図ないし第13図は
夫々本発明にいう一実施例分類別処理態様を示す。また
第14図ないし第18図は順に夫々本発明にいう分類r
lJないし分類「5」に対応した所の変形の態様例を示
している。
第3図において、17は大記憶装置に格納されているソ
ース・プログラム、1Bはコンパイラ。
19はコンパイルされて大記憶装置上に格納され・る目
的プログラム、20はソース解釈部、21は記憶域割付
は部、22はベクトル化部、23は中間コード最適化部
、24はレジスタ使用決定部。
25は目的プログラム出力部を表わしている。
コンパイラ18は、大記憶装置からソース・プログラム
17を取込んで、所望の目的プログラム19を生成する
。このとき図示の各部は次のような処理を行う。
即チ、ソース解釈部20はソース・プログラム17y2
大記憶装置から取込み9文解釈を行って中間コード(テ
キスト)に展開する。例えばソース・プログラムが第4
図図示左側の如き場合に図示右側に示す如き中間コード
に展開する。記憶域割付は部21はプログラム内に出現
する各種データに対応(〜で記憶域内番地を割当てる。
ベクトル化部22は、プログラム中のループ構造を検出
し。
並列実行可能部分を認識し第5図図示の如く中間コード
変更を行う。中間コード最適化部23は。
中間コードのレベルで、第2図図示の如きベクトル処理
プロセッサを有効に利用するための最適化を施す。レジ
スタ使用決定部24は、中間コードに現われたデータに
対して、ベクトル処理プロセッサ上の資源(レジスタ)
を割当てる。そして目的プログラム出力部25は機械命
令語を大記憶装置へ出力しかつ命令語レベルでの最適化
を行う。
ベクトル処理プロセッサを稼動させるだめのコンパイラ
は第3図図示の如き構成をもっており。
上記ベクトル化部において本発明にいう並列実行可能な
ものについてペクトライズ(並列実行化)してゆく。
しかし、従来、ループ内に単純変数をもちかつ当該単純
変数がループの入口および/または出口においてビジー
状態となっているものについては。
第6図図示の如く予め定められた形態をもつもの以外は
、並列実行不可であるとされていた。
本発明においては、第3図図示のベクトル化部22にお
いて、第7図図示の如き処理を行わせるようにして、単
純変数の存在態様を分類し2分類された形のループにつ
いて、単純変数を夫々の形で配列化し、並列実行可能な
ものとしてコンパイルするようにしている。即ち。
(1)  与えられたソース・プログラムに対応して。
DOループの存在を検出し。
(2)  当該ループ内で定義される単純変数の存在を
検出して取出す。
(3)取出された単純変数について、第8図に示す如く
、ループの入口または出口におけるビジー状態を調べる
と共に、当該単純変数の存在態様にもとづいて分類を行
う。
(4)分類不可であるものについては、当該ループの並
列実行化ができないものとして、スカラ命令による処理
実行の形でコンパイルが進められる。
(5)分類可能なものについては、第9図ないし第13
図に示す形で、夫々の分類に応じた形の単純変数配列化
を行う。即ち分類別処理を行う。
(6)1つの単純変数について分類別処理が行われると
1次にチェックすべき単純変数があれば。
これについて処理が繰返される。
(力 そして、上記分類可能なループについては。
ベクトル化部22における処理機能によって。
ペクトライズされてゆく。
第8図は単純変数の存在態様を説明する説明図を示し、
1つの単純変数がループの入口または出口においてビジ
ー状態にあるか否かにもとづいて。
図示の4個の枠内のいずれかが調べられる。そして。
(1)入口でビジーでありかつ出口でビジーであるもの
について1分類「1」と分類「2」と分類「3」と「そ
の値・・・・・・分類不能」とに区分され。
(11)  入口でビジーでありかつ出口でビジーでな
いものについて、「分類不能」とされ。
(ill)  入口でビジーでなくかつ出口においてビ
ジーであるものについて9分類「4」とされ。
(lv)  入口でビジーでなくかつ出口でもビジーで
ないものについて2分類「5」とされる。
なお上記分@「2」において「アーティキュレーション
の位置」とはループを実行するときに必らず通る部分を
意味している。
分類「1」の場合には、第9図図示の如く、配列化を行
わない。
分類「2」の場合には、第10図図示の如く。
単純変数に対応して配列VTを用意し、最初の定義の存
在位置に応じて、単純変数をV T (I)またVT(
I+1)で置換する々どを行う。
分類「3」の場合には、第11図図示の如く。
最初の定義の存在位置に応じて、学純変数をVT(6)
またはVT(K+1)で置換するなどを行う。
分類「4」の場合には、第12図図示の如く。
単純変数をV T (I)で置換するなどを行う0分類
「5」の場合には、第13図図示の如く。
単純変数をV T (I)で置換するようにする。
なお第14図ないし第18図は順に夫々上記分類rlJ
ないし「5」に対応した所の変形の態様例を示している
[F]発明の詳細 な説明した如く1本発明によれば、単純変数を含むルー
プについて並列実行化を促進することができ、ベクトル
処理プロセッサによる処理実行に際して高速化を図るこ
とが可能となる。
【図面の簡単な説明】
第1図はベクトル命令に対応した処理を概念的に説明す
る説明図、第2図は本発明にいうベクトル処理プロセッ
サを有する処理システムの一実施例、第3図は本発明に
用いるコンパイラの一実施例構成、第4図はソース・プ
ログラムを中間コードに移してゆく態様を説明する説明
図、第5図はソース・プログラムをベクトル化してゆく
態様を説明する説明図、 v6図は従来から並列実行可
能とされていたループの態様、第7図はベクトル化部に
おける本発明に直接関連する部分の一実施例フローチャ
ート、第8図は単純変数の存在態様を説明する説明図、
第9図ないし第13図は夫々本発明にいう一実施例分類
別処理態様を示す。また第14図ないし第18図は順に
夫々本発明にいう分類「1」ないし分類「5」に対応し
た所の変形の態様例を示している。 図中、1は主記憶装置、2はメモリ制御装置。 3はベクトル処理プロセッサ、4はチャネル惨プロセッ
サ、5は大記憶装置、9はベクトルレジスタ、10はマ
スク・レジスタ、11ないし16は夫々パイプライン演
算部、17はソース・プログラム、1Bはコンパイラ、
191i目的プログラム。 20はソース解釈部、21は記憶割付は部、22はベク
トル化部、23は、中間コード最適化部。 24はレジスタ使用決定部、25は目的プログラム出力
部を表わしている。 特許出願人 富士通株式会社 代理人弁理士   森 1)   寛 (外1名) −p+ 肥 才z図 特開昭58−149569 C5) f−4−図 jy52 Do 101=1. /θOVLEN(j=ID0TG
図 X= −−− =X 10  C0NT1NuE =X X =−−− =X−−− yo  CoNTiyJuE X= ENQノF /11)  CD NTiNtLE X=vr(K) ρotor=t  N VT(I )=−−− 10Co A’ Ti /V 11 L)(=VT(A
/) =X DO101=1  # VT<Iノ=−−一 10  Co A/ 7% /Vu EX=

Claims (1)

  1. 【特許請求の範囲】 複数の並列演算部をそなえると共に複数個のし ジス 
    タを 少なくともそなえてベクトル命令を実行するベク
    トル処理プロセッサに対して。 与えられたソース・プログラムから目的プログラムを生
    成して供給するコンパイラにおいて、上記ソース・プロ
    グラムの文解釈を行って中間コードに展開するソース解
    釈部、プログラム中に出現する各種データに記憶域内番
    地を割り当てる記憶域割付は部、プログラム中のループ
    構造を検出して並列実行可能部分の認識を行いかつ上記
    中間コード変更を行うベクトル化部、中間コードのレベ
    ルで上記ベクトル処理プロセッサを有効に利用するだめ
    の最適化を施す中間コード最適化部、中間コードに現わ
    れたデータに実際の資源を割当てるレジスタ使用決定部
    、および目的プログラム出力部をそなえてなり、更に、
    上記ベクトル化部は、ループの存在を検出すると共にル
    ープ内で定義される単純変数の存在を検出し2次いで当
    該単純変数のループの入口と出口とにおけるビジー状態
    にもとづいて当該単純変数の存在態様を分類するよう構
    成され、各分類された単純変数の存在態様にもとづいて
    夫々の分類に対応した形の単純変数配列化を行う分類別
    処理を行って並列実行化を促進するようにしたことを特
    徴とするスカラ配列化による並列化処理方式。
JP3119782A 1982-02-27 1982-02-27 スカラ配列化による並列化処理方式 Granted JPS58149569A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3119782A JPS58149569A (ja) 1982-02-27 1982-02-27 スカラ配列化による並列化処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3119782A JPS58149569A (ja) 1982-02-27 1982-02-27 スカラ配列化による並列化処理方式

Publications (2)

Publication Number Publication Date
JPS58149569A true JPS58149569A (ja) 1983-09-05
JPS6319908B2 JPS6319908B2 (ja) 1988-04-25

Family

ID=12324690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3119782A Granted JPS58149569A (ja) 1982-02-27 1982-02-27 スカラ配列化による並列化処理方式

Country Status (1)

Country Link
JP (1) JPS58149569A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640568A (en) * 1993-11-26 1997-06-17 International Business Machines Corporation Inline expansion method for programming languages having array functions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640568A (en) * 1993-11-26 1997-06-17 International Business Machines Corporation Inline expansion method for programming languages having array functions

Also Published As

Publication number Publication date
JPS6319908B2 (ja) 1988-04-25

Similar Documents

Publication Publication Date Title
US4710872A (en) Method for vectorizing and executing on an SIMD machine outer loops in the presence of recurrent inner loops
US5852734A (en) Method and compiler for parallel execution of a program
Payne et al. An algorithm for constructing optimal binary decision trees
Gross et al. Structured dataflow analysis for arrays and its use in an optimizing compiler
US5230053A (en) Processor scheduling method for iterative loops
JP2500079B2 (ja) プログラムの最適化方法及びコンパイラ・システム
JPH03172936A (ja) 手順間レジスタ割付けを伴うコンピュータプログラムのコンパイル方法及び装置
US5367684A (en) Register allocation using an improved register candidate usage matrix
US4853872A (en) Program execution method in a system having plural computers
JP3261239B2 (ja) データ転送の一括化処理方法
JPS58149569A (ja) スカラ配列化による並列化処理方式
Jouvelot et al. Communication effects for message-based concurrency
Goubault Generalized boxings, congruences and partial inlining
Gaudiot et al. Performance evaluation of a simulated data-flow computer with low-resolution actors
Li PARALLEL PROCESSING OF COMBINATORIAL SEARCH PROBLEMS (DIVIDE-AND-CONQUER, BRANCH-AND-BOUND, LOGIC PROGRAMMING, DYNAMIC)
JPH037989B2 (ja)
JPS58149567A (ja) ベクトル・レングス制御範囲融合処理方式
JPS58149565A (ja) ベクトル・レングス制御範囲分割処理方式
JPS6321946B2 (ja)
JPH08212081A (ja) メモリ割り付け方法、並びにコンパイル方法およびコンパイラ
JPH0317136B2 (ja)
JPH0152779B2 (ja)
Quinn et al. Implementing a time-driven simulation on a MJIMD computer using a SIMD language
JPS58149570A (ja) ベクトル命令のスケジユ−リング処理方式
HLUCHY et al. Institute of Computer Systems, SAS, Dubravska cesta 9, Bratislava 842 37 SLOVAKIA