JPS6186844A - 逐次化命令の移動方式 - Google Patents

逐次化命令の移動方式

Info

Publication number
JPS6186844A
JPS6186844A JP20892984A JP20892984A JPS6186844A JP S6186844 A JPS6186844 A JP S6186844A JP 20892984 A JP20892984 A JP 20892984A JP 20892984 A JP20892984 A JP 20892984A JP S6186844 A JPS6186844 A JP S6186844A
Authority
JP
Japan
Prior art keywords
instruction
block
instructions
post
wait
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
JP20892984A
Other languages
English (en)
Inventor
Hiroshi Nakada
弘 中田
Masaki Aoki
正樹 青木
Toshihiro Hirabayashi
平林 俊弘
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 JP20892984A priority Critical patent/JPS6186844A/ja
Publication of JPS6186844A publication Critical patent/JPS6186844A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、スカラ命令及びベクトル命令を含むオブジェ
クト・プログラムを生成するコンパイラにおいて、逐次
化命令(P OS T命令及びWAIT命令)を移動し
て並列実行可能な命令部分を拡大できるようにした逐次
化命令の移動方式に関するものである。
〔従来技術と問題点〕
第8図はコンパイラの概要を示す図である。なお、この
コンパイラは、ベクトル計算機を含むシステムで実行さ
れるオブジェクト・プログラムを生成するVPコンパイ
ラである。第8図において、■はソース解析部、2は構
造解析部、3はデータの割付部、4は最適化部、5はコ
ード生成部をそれぞれ示している。ソース解析部1は、
宣言文で定義された配列や変数とソース・プログラムの
手続き部における取扱との矛盾を検出したり、未定義の
配列や変数が定義又は参照されていないかを調べるもの
である。構造解析部2は、ソース、プログラムをブロッ
ク化したりするものである。データの割付は部3は、デ
ータに対してメモリ領域を割付たり、配列や変数に対し
て初期値を与えたりするものである。最適化部4は、D
o小ループベクトル化やヘクトル化後の最適化、レジス
タ割付は等を行うものである。コード生成部5は、中間
テキストを機械語命令に変換するものである。
ヘクトル計算機においては、演算器の高速化とその演算
器に見合うデータの供給能力の向上が、実行効率向上の
重要な鍵である。このため最近のヘクトル計算機では、
並列動作可能な2本のロード/ストア・パイプラインを
用意し、データの供給能力を高めている。しかし、複数
のロード/ストア・パイプラインが並列に動作すること
により、メモリ・アクセス命令の同期化を行う必要が生
じた。メモリ・アクセス命令の同期化の方法としては、
POST/WAIT命令を用いる方法が知られている。
この方法を用いることにより、PO8T命令以前のメモ
リ・アクセス命令とWAIT命令以後のメモリ・アクセ
ス命令との同期を取ることが出来る。例えば、 Do  20  i=1.IOQ ^(i)−A(i)+B(i) C(i)=A (i−1) 20 C0NTINLIE というソース・プログラムは、 VL   VO,A(1:100) VL   Vl、B(1:100) VADD  V3.VO,VI VST  V3.A(1:100) VL   V4.A(0:99) VST  V4.C(1:100) というベクトル命令列に変換されるが、第4番目のベク
トル命令と第5番目のベクトル命令を同時に行うと正し
い演算結果が得られないので、第4番目のベクトル命令
と第5番目のベクトル命令との間にPOST命令及びW
AIT命令を配置する必要がある。
ところで、従来の■Pコンパイラにおいては、ソース・
プログラムが複雑なブロック構造を有している場合には
、逐次化命令を移動する最適化を行っていないので、並
列実行可能な部分も逐次化されてしまい、実行効率の低
下の要因となっている。
〔発明の目的〕
本発明は、上記の考察に基づくものであって、■Pコン
パイラにおいて、ブロック間の結合を認識し、逐次化の
ためのPOST命令及びWAIT命令をそれぞれ独立し
て移動し、オブジェクト・プログラムの並列実行可能部
分を拡張出来るようにした逐次化命令の移動方式を提供
することを目的としている。
〔目的を達成するための手段〕
そしてそのため本発明の逐次化命令の移動方式は、ベク
トル計算機上で実行されるオブジェクト・プログラムを
生成するコンパイラにおいて、POST命令及びWAI
T命令に逐次化項目の並びを付加し、上記逐次化項目の
並びと中間テキストの並びとを較べて、上記POST命
令を制御の流れと反対方向に移動し、上記WAIT命令
を制御の流れと同一方向に移動することを特徴とするも
のである。
〔発明の実施例〕
以下、本発明を図面を参照しつつ説明する。
第1図は本発明の概要を示す図である。VWTはWAI
T命令を示す。本発明は、逐次化項目の並びをPOST
/WAIT命令に付加することにより、POST/WA
IT命令の移動をチェックするものである。第1図の場
合、VWTに逐次化項目の並びを付加することによりブ
ロックBとの依存関係を知ることが出来る。第1図にお
いて、VWTが示す逐次化項目の並びとブロックB(α
の範囲)で依存関係がなければ、地点■から■へWAI
T命令VWTを移動でき、βの部分が新たに並列実行可
能部分となる。逐次化項目の並びとは、何を逐次化しな
ければならないかを示すものであり、例えばA、B、C
という配列又は変数があった場合、Aが逐次化する必要
あり、BとCとが逐次化の必要がない場合には、逐次化
項目の並びは、項目に対応付けられたビット列など BC で表現することができる。またブロック内に現れるデー
タの定義及び引用も、データに対応付けられたビット列
などで表現することができこれらの比較によってデータ
依存関係の有無を知ることができる。
第2図は1ブロツク内におけるPOST命令及びWAI
T命令のそれぞれの移動を示す図である。
VPTはPOST命令を示す。第2図(イ)のように配
置されたVPTを制御の流れと反対方向(IP力方向に
移動し、VWTを制御の流れと同一方向(Is力方向に
移動すると、第2図(ロ)のようになり、■の部分が新
たに並列実行可能部分となる。例えば、 VL  VO,A(1:100) VL  Vl、B(1:100) VADD V2.Vl、VO VST  V2.A(1:100) VST  Vl、C(1;100) VPT V切T LGφ、 A (50) というブロックがあった場合、配列Aが逐次化項目であ
るが、VPTを第4番目と第5番目の命令の間に移動す
ることができる。そうすると、ベクトル・レジスタ■2
の第i番目のエレメント・データを配列Aの第i番目の
要素とするベクトル・ストア命令と、ベクトル・レジス
タ■1の第i番目のエレメント・データを配列Cの第i
番目の要素とするベクトル・ストア命令とを並行して行
うことが出来る。なお、■xはベクトル・レジスタを示
し、GXは汎用レジスタを示している。
第3図はブロックが2方向に移動する場合のWAIT命
令の移動を説明する図である。図示の例では、ブロック
AのVWTがプロ・7りBとブロックCの2方向に移動
出来る。これにより、■及び■の部分が並列実行可能部
分となる。
第4図は2つのプロ・ツク(2方向)から分岐してくる
場合のWAIT命令の移動を説明する図である。図示の
ように、ブロックA及びブロックBからブロックCに制
御の流れがある場合でも、VWTがブロックCにおいて
1つになり、更に移動が可能になる。これにより、■及
び■の部分が並列実行可能部分となる。
第5図は1つのブロック内でループしている場合のPO
ST命令及びWAIT命令の移動を説明する図である。
第5図(イ)は従来のVPT及びVWTの配置を示して
おり、第5図(ロ)は本発明によるVPT及びVWTの
移動を示している。
第5図(ロ)に示すようにブロックBの上側のVPTは
ブロックAに移動され、ブロックBの下側のVWTはブ
ロックCに移動される。これにより、■及び■の部分が
並列実行可能部分となる。
第6図は逐次化命令(POST及びWAIT命令)を移
動するための処理手順を説明する図である。
SL、未処理ブロック内で以下の情報を収集する。
a、ブロック間結合の依存関係を把握する。
b、ブロック内のテキストの情報を収集する。
S2.逐次化命令の移動 逐次化命令(POST命令とWAIT命令)を移動する
が、POST命令はIP力方向移動し、WAIT命令は
Is力方向移動する。
S3、逐次化命令移動の可否 移動対象となるブロックを収集し、ベクトル化されたデ
ータの定義・参照情報を示すビット列などで較べる。
S4.テキスト単位の移動 メモリ・オペランドを持つテキストについても、ベクト
ル化された範囲にそのオペランドが重なるか否かを調べ
、移動の可否を知る。
なお、これらの処理は第8図のコンパイラの最適化部で
行われる。
第7図は逐次化項目の求め方を説明する図である。逐次
化項目は、1つの逐次化命令からその逐次化命令の移動
する方向に存在する他の逐次化命令までの範囲のすべて
のデータの定義・参照を表現するビット列の和(OR)
を取る事によって求められる。
第7図において、範囲Aの部分の逐次化項目は■のVW
Tと■のVPTに付加する。範囲Bの部分の逐次化項目
は■のVWTと■のVPTに付加する。
〔発明の効果〕
以上の説明から明らかなように、本発明によれば、今ま
でより広範囲の命令が並列実行可能になり、実行効率を
向上させることが出来る。
【図面の簡単な説明】
第1図は本発明の概要を示す図、第2図は1ブロツク内
におけるPOST命令及びWAIT命令のそれぞれの移
動を示す図、第3図はブロックが2方向に移動する場合
のWAIT命令の移動を説明する図、第4図は2つのブ
ロック(2方向)から分岐してくる場合のWA I T
命令の移動を説明する図、第5図は1つのブロック内で
ループしている場合のPOST命令及びWAIT命令の
移動を説明する図、第6図は逐次化命令(POST及び
WAIT命令)を移動するための処理手順を説明する図
、第7図は逐次化項目の求め方を説明するだめの図、第
8図はコンパイラの概要を示す図である。 1・・・ソース解析部、2・・・構造解析部、3・・・
データの割付部、4・・・最適化部、5・・・コード生
成部。 坪1図 第2図 伴41カ 芋5図

Claims (1)

    【特許請求の範囲】
  1. ベクトル計算機上で実行されるオブジェクト・プログラ
    ムを生成するコンパイラにおいて、POST命令及びW
    AIT命令に逐次化項目の並びを付加し、上記逐次化項
    目の並びと中間テキストの並びとを較べて、上記POS
    T命令を制御の流れと反対方向に移動し、上記WAIT
    命令を制御の流れと同一方向に移動することを特徴とす
    る逐次化命令の移動方式。
JP20892984A 1984-10-04 1984-10-04 逐次化命令の移動方式 Pending JPS6186844A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20892984A JPS6186844A (ja) 1984-10-04 1984-10-04 逐次化命令の移動方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20892984A JPS6186844A (ja) 1984-10-04 1984-10-04 逐次化命令の移動方式

Publications (1)

Publication Number Publication Date
JPS6186844A true JPS6186844A (ja) 1986-05-02

Family

ID=16564461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20892984A Pending JPS6186844A (ja) 1984-10-04 1984-10-04 逐次化命令の移動方式

Country Status (1)

Country Link
JP (1) JPS6186844A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247691A (en) * 1989-05-15 1993-09-21 Fujitsu Limited System for releasing suspended execution of scalar instructions following a wait instruction immediately upon change of vector post pending signal
JPH0717694U (ja) * 1991-10-15 1995-03-31 季子 幸野 自転車カゴカバー

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247691A (en) * 1989-05-15 1993-09-21 Fujitsu Limited System for releasing suspended execution of scalar instructions following a wait instruction immediately upon change of vector post pending signal
JPH0717694U (ja) * 1991-10-15 1995-03-31 季子 幸野 自転車カゴカバー

Similar Documents

Publication Publication Date Title
Tzen et al. Trapezoid self-scheduling: A practical scheduling scheme for parallel compilers
Wise Aspects of applicative programming for parallel processing
US5303357A (en) Loop optimization system
JPH05143332A (ja) 命令スケジユーラを備えたコンピユータ・システム及び入力命令シーケンスを再スケジユールする方法
Gao et al. A timed Petri-net model for fine-grain loop scheduling
JPH04336378A (ja) 情報処理装置
EP2799986B1 (en) Apparatus and method for translating multithread program code
Gibson et al. Engineering and scientific processing on the IBM 3090
JPS6186844A (ja) 逐次化命令の移動方式
JPH04293150A (ja) コンパイル方法
JP3032030B2 (ja) ループ最適化方法及び装置
Krohn A parallel approach to code generation for Fortran like compilers
JPH056712B2 (ja)
JPH0241562A (ja) ベクトル演算列分割処理方式
Li et al. An Improved Method for Control Dependency in LLVM
Newport An introduction to Occam and the development of parallel software
Kitano et al. Performance evaluation of parallel heapsort programs
Shin et al. Identification of microprogrammable loops for problem oriented architecture synthesis
JPH03135630A (ja) 命令スケジューリング方式
Deng et al. Superword level parallelism vectorization method for signal processing algorithms oriented to double loops
JPH0644270B2 (ja) ベクトルプロセッサの制御処理方式
Thoreson et al. Instruction reference patterns in data flow programs
JPH04152464A (ja) コンパイル処理方式
JPH0512752B2 (ja)
Evripidou et al. A decoupled data-driven architecture with vectors and macro actors