JPS58149570A - ベクトル命令のスケジユ−リング処理方式 - Google Patents

ベクトル命令のスケジユ−リング処理方式

Info

Publication number
JPS58149570A
JPS58149570A JP3119982A JP3119982A JPS58149570A JP S58149570 A JPS58149570 A JP S58149570A JP 3119982 A JP3119982 A JP 3119982A JP 3119982 A JP3119982 A JP 3119982A JP S58149570 A JPS58149570 A JP S58149570A
Authority
JP
Japan
Prior art keywords
instruction
program
intermediate code
vector
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.)
Pending
Application number
JP3119982A
Other languages
English (en)
Inventor
Hirobumi Yamada
博文 山田
Fumio Isobe
磯辺 文雄
Chizuru Sasaki
千鶴 佐々木
Shinya Miura
信也 三浦
Kazuhiko Suzuki
一彦 鈴木
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 JP3119982A priority Critical patent/JPS58149570A/ja
Publication of JPS58149570A publication Critical patent/JPS58149570A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 (A)発明の技術分野 本発明は、ベクトル命令のスケジューリング処理方式、
特に複数の並列演算部をそなえたベクトル処理プロセッ
サに対して、与えられたソース・プログラムから目的プ
ログラムを生成して供給するコンパイラにおいて、最終
的に目的プログラムの命令を出力するに当って、依存関
係のない命令群を抽出した上で、命令を実行するシミュ
レーションを行ないつつ、I−・・並列演算部に空き状
態が発生することを確めたとき、上記依存関係のない命
令を当該空き状態にあてはめてゆくようにし、最適化を
はかるようにしたスケジューリング処理方式に関するも
のである。
(B)  技術の背景と問題点 例えば、第1図(A+に示す如く、ベクトルAに属する
エレメントalt”21・・・とベクトルB vc14
TるエレメントbIlb2+・・・との各エレメント相
互を加算して、エレメントC1、C2,・・をもつベク
トルCを生成するような、ベクトル命令を実行するベク
トル処理プロセッサが存在している。第1図(N図示の
場合、第1番目のエレメント相互の加算を行なうか否か
をマスク・ニレメン)ml 、m。
・・・にて指示するようにされており、第1図(均に一
般化して示す如き処理が行なわれる。
上記の如き処理を行なうベクトル処理プロセッサを有す
るデータ処理システムは、一実施例として第2図図示の
如きシステム構成をもっている。
図中の符号1は主記憶装置、2はメモリ制御装置、3は
ベクトル処理プロセッサ、4はチャネル・プロセッサ、
5は大記憶装置、6はスカラ処理回路部、7はベクトル
処理回路部、8−0.8−1゜・・・は夫々浮動小数点
データ・レジスタ、9−0゜9−1.・・・は夫々複数
個のデータ(エレメント・データ)を格納し得るベクト
ル・レジスタ、1〇−0,10−1,・・・は夫々複数
個のマスク・データ(マスク・エレメント・データ)を
格納し得るマスク・レジスタ、11はベクトル長レジス
タであって各ベクトル・レジスタに格納されるエレメン
トの個数情報がセットされるもの、12−0゜12−1
は夫々メモリ・アクセス・パイプライン、13は加減算
パイプライン、14は乗算処理パイプライン、15は除
算処理パイプライン、16はマスク処理パイプラインな
表わ]−でいる。
上記の如きベクトル処理プロセッサが処理を実行するに
当って、当該プロセッサが実行するに適した形に、与え
られたソース・プログラムをコンパイルし目的プログラ
ムを生成することが行なわれる。当該コンパイルを行な
うコンパイラの構成は第3図を参照して後述されるが、
当該コンパイラの最終段階における目的プログラム出力
部において、個々の命令について前の命令との依存関係
の有無を調べ、依存関係のない命令の実行をパイプライ
ン演算部の空き期間に割りつけて、ベクトル処理プロセ
ッサが実際に処理を実行する際において、パイプライン
演算部に出来るだけ空き状態が生じないように配慮する
ことが望まれる。
(q 発明の目的と構成 本発明は、上記の点を解法することを目的としており、
(i+依存関係のない命令群を抽出し、(Ii)命令を
実行する際のシミュレーションを行ない、(iii )
所定の並列演算部に空き状態が生じる場合に、上記依存
関係のな(・命令をあてはめてゆくようにして、最適化
をはかることを特徴としている。以下図面を参照しつつ
説明する。
(Dl  発明の実施例 第3図は本発明に用いるコンパイラの一実施例構成、第
4図は本発明においてソース・プログラムを中間コード
に移してゆく態様を説明する説明図、第5図はソース・
プログラムをベクトル化してゆく態様を説明する説明図
、第6図および第7図は本発明による処理の概念を説明
する説明図、第8図と第9図とは一緒になって第3図図
示の目的プログラム出力部における本発明に直接関連を
もつ部分の一実施例フローチャートを構成するもの、第
10図ないし第15図は本発明による処理を例を挙げて
説明する説明図を示す、:第3図において、17は大記
憶装置に格納されているソース・プログラム、18はコ
ンパイラ、19はコンパイルされて大記憶装置上に格納
されル目的プログラム、20はソース解釈部、21は記
憶域割付は部、22はベクトル化部、23は中間コード
最適化部、24はレジスタ使用決定部、25は目的プロ
グラム出力部を表わしている。
コンパイラ18は、大記憶装置からソース・プログラム
17を取込んで、所望の目的プログラム19を生成する
。このとき図示の各部は次のような処理な行う。
即ち、ソース解釈部20はソース・プログラム17を大
記憶装置から取込み、文解釈を行って中間コード(テキ
スト)に展開する。例えばソース・プログラムが第4図
図示左側の如き場合に図示右側に示す如き中間コードに
展開する。記憶域割付は部21はプログラム内に出現す
る各種データに対応」−で記憶域内番地を割当てる。ベ
クトル化部22は、プログラム中のループ構造を検出し
、並列実行可能部分を認識し、第5図図示の如く中間コ
ード変更を行う。中間コード最適化部23は、中間コー
ドのレベルで、第2図図示の如きベクトル処理プロセッ
サを有効に利用するTこめの最適化を施す。レジスタ使
用決定部24は、中間コードに現われたデータに対して
、ベクトル処理プロセッサ上の資源(レジスタ)を割当
てろ。そして目的プログラム出力部25は機械命令語を
大記憶装置へ出力しかつ命令語レベルでの最適化を行う
ベクトル処理プロセッサを稼動させるためのコンパイラ
は第3図図示の如き構成をもっており、ソース−プログ
ラムから目的プログラムを生成してゆく。
この場合、今仮に第6図図示の如き命令列が目的プログ
ラムとして得られたとし、この命令列をもってベクトル
処理プロセッサが処理を実行する場合について、上述の
パイプライン演算部12ないし15にどのような空き状
態が生じるかを調べてみる。なお、第6図において矢印
で示すものは、依存関係かあることを示しており、例え
ば図示命令■は命令■と命令■とのいずれもが共に実行
されて初めて実行されるべき命令であることを示してい
る。また命令の実行時間は、命令■、■、■が3単位時
間、命令■、■、■か5単位時間、命令■が7単位時間
を要するものとし、パイプライン演算部としてロード/
ストア用P、と加算用P2と乗算用P3と除算用P4と
が存在しているものとしている。
第6図図示の命令列が上記パイプライン演算部P、  
、P2.P3.P、によって実行されるものとすると、
第6図図示のままでは第7図(A1図示の如く各パイプ
ライン演算部において処理が行われることとなり、空き
時間が比較的多いものとなる。本発明においては、第6
図図示の命令列の順序を入れ替えて、第7図fB]図示
の如く、ベクトル処理プロセッサによる実行時間を短縮
するようにしている。
第8図と第9図とは一緒になって1つのフローチャート
を構成しており、第3図図示の目的プログラム出力部に
おける本発明に直接関連をもつ部分の一実施例フローチ
ャートを示している。以下第10図ないし第15図を参
照しつつ、第6図図示の命令列に対応して、第8図およ
び第9図図示のフローチャートの動作を説明してゆく。
(1)図示フローチャートの処理に先立って、第6図図
示の命令列における依存関係にもとづいて、第10図(
B1図示の如き命令のリンク26と第10図(C1図示
の如き依存関係のない命令のリンク27とを用意する。
(2)  次いで命令■に着目してシミュレーションを
行う、(処理t1 )。
(3)  この場合、処理f2によって、すべてのパイ
プラインについて夫々空き状態かあるか否かチェックさ
れる。命令■をパイプラインP1にて実行させる前には
、各パイプラインに空き時間が存在しないことから、図
示ルート「6」vc移行する。命令■については命令の
移動(本発明による順序移動)がなかつ1こことから、
処理f7に入る。
(4)そして、命令■に依存関係をもつ命令■、■。
■による命令のに対する依存関係を抹消し、処理f8 
 、fllをへて、次の命令■を着目するに至る。
(5)命令■に着目して、処理f、によるシミュレーシ
ョンが行われる。そして処理f2によって空き状態が調
べられる。このとき第10図fA+図示の如く、命令■
の実行前に、パイプラインP2[ついてX8、パイプラ
インP、EついてX2、パイプラインP4についてX3
の空きが生じることが判る。しかし、リンク27に存在
する所の依存関係のない命令■または■を実行するにし
ては空きXlやX2の時間が小さい(処理’s  )。
このためルート「5」に入り、処理f7 、f8 、f
Qをへて、次の命令■に着目するに至る。第10図(N
は当該時点におけるシミュレーション時間図に対応して
いる。
(6)命令■に着目して、処理f1によるシミュレーシ
ョンを行なう。そして処理f2によって、第10図(N
図示の如く、命令■の前に空きX4+X5yX6がある
ことが判る。
(7)依存関係のない命令■が空きX、において実行可
能であることが確められる(処理is  )。
(8)  この結果、命令■が空きX、をうめるために
前に移動され(処理f4 )、当該命令■がリンク27
から抹消されかつ当該命令■に依存関係をもつ命令■の
依存関係が抹消され(処理f、)、当該命令■がリンク
27にリンクされる。
(9)  そして、ルート「4」をへて処理flOに入
り、命令■に着目したまま、命令■を移動したことに伴
うシミュレーションの補正乞行う。第11区間(B) 
(C1は当該時点におけるシミュレーション時間図に対
応【〜でいる。
(IQI  この状態において、第11図(5)図示の
如く命令■の前に空きx4とX、とX6とが存在1.、
第12図図示の如く、命令■が空きx6vCあてはめら
れろ。第12図(At fBl fQはこの時点でのシ
ミュレーション時間図に対応している。
(11)  この状態において、第12図fA1図示の
如く命令■の前に空きx4とX、とが存在するが、依存
関係をもたない福令■は命令■が終了しないと始動でき
ないことから、命令のが空きX4に入るとすると、第1
3図図示の如く、命令■に影響を与える。このために、
命令■の移動は行われない。
次の命令■が着目されることになる。
(121命令■に着目して、処理f、によるシミュレー
ションが行われる。そして処理f2によって、第14図
(N図示の如く、命令■の前に空きX〕 。
X8 、X、があることが確められる(処理it )、
第14図は当該時点のシミュレーション時間図に対応し
ている。
(13)  この結果、命令■が空きX7において実行
可能であることが確められ(処理ts )、第15図(
A1図示の如く、命令のが移動される。
0a  そして、これによってリンク27上の命令がな
くなりかつ命令■が最後の命令であることから、処理は
終了する。
上記の如く処理が行われ、第7図(B1図示のシミュレ
ーション時間図は第15図(N図示のそれに対応してい
る。
(El  発明の詳細 な説明した如く、本発明によれば、目的プログラム出力
部において最終的に目的プログラムを出力するに当って
、個々の命令の出力順を考慮して、最適化されf二目的
プログラムを出力することが可能となる。
【図面の簡単な説明】
第1図はベクトル命令に対応した処理を概念的に説明す
る説明図、第2図は本発明にいうベクトル処理プロセッ
サを有する処理システムの一実施例、第3図は本発明に
用いるコンノ(イラの一実施例構成、第4図はソース・
プログラムを中間コードに移してゆく態様を説明する説
明図、第5図はソース・プログラムをベクトル化してゆ
く態様を説明する説明図、第6図および第7図は本発明
による処理の概念を説明する説明図、第8図と第9図と
は一緒になって第3図図示の目的プログラム出力部にお
ける本発明に直接関連をもつ部分の一実施例フローチャ
ートナ構成するもの、第10図ないし第15図は本発明
による処理を例を挙げて説明する説明図を示f1゜ 図中、1は主記憶装置、2はメモリ制御装置、3はベク
トル処理プロセッサ、4はチャネル・プロセッサ、5は
大記憶装置、9はベクトル・レジスタ、10はマスク・
レジスタ、11ないし16は夫々パイプライン演讐部、
17はソース・プログラム、18はコンパイラ、19は
目的プログラム、20はソース解釈部、21は記憶域割
付は部、22はベクトル化部、23は中間コード最適化
部、24はレジスタ使用決定部、25は目的プログラム
出力部を表わしている。 特許出願人 富士通株式会社 代理人弁理士 森 1)   寛 (外1名) fro図 (A) (F5)         〆zc (C) すIIIXI (A) (C) −t 74図 (A) (C) 才IS図 (Aン (C)

Claims (1)

    【特許請求の範囲】
  1. 複数の並列演算部をそなえると共に複数個のレジスタを
    少なくともそなえてベクトル命令を実行するベクトル処
    理プロセッサに対して、与えられたソース・プログラム
    から目的プログラムを生成して供給するコンパイラにお
    いて、上記ソース・プログラムの文解釈な行って中間コ
    ードに展開するソース解釈部、プログラム中に出現する
    各種データに記憶域内番地を割り当てる記憶域割付は部
    、プログラム中のループ構造を検出して並列実行可能部
    分の認識を行いかつ上記中間コード変更を行うベクトル
    化部、中間コードのレベルで上記ベクトル処理プロセッ
    サを有効に利用するための最適化を施す中間コード最適
    化部、中間コードに現われたデータに実際の資源を割当
    てるレジスタ使用決定部、および目的プログラム出力部
    をそなえてなり、更に上記目的プロクラム出力部は、与
    えられた命令列から依存関係のない命令を抽出すると共
    に、上記与えられた命令列中の命令について順次所定の
    並列演算部を用いて尚該命令を実行するシミュレーショ
    ンを行ない、上記依存関係のない命令を実行せしめるに
    足る空き状態が所定の並列演算部に生じることが確めら
    れた際に上記依存関係のな(・命令を上記空き状態の並
    列演算部に割り付ける処理部をそなえ、命令実行順序を
    変更せしめて最適化をはかるようにしたことを特徴とす
    るベクトル命令のスケジューリング処理方式。
JP3119982A 1982-02-27 1982-02-27 ベクトル命令のスケジユ−リング処理方式 Pending JPS58149570A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3119982A JPS58149570A (ja) 1982-02-27 1982-02-27 ベクトル命令のスケジユ−リング処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3119982A JPS58149570A (ja) 1982-02-27 1982-02-27 ベクトル命令のスケジユ−リング処理方式

Publications (1)

Publication Number Publication Date
JPS58149570A true JPS58149570A (ja) 1983-09-05

Family

ID=12324745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3119982A Pending JPS58149570A (ja) 1982-02-27 1982-02-27 ベクトル命令のスケジユ−リング処理方式

Country Status (1)

Country Link
JP (1) JPS58149570A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62206668A (ja) * 1986-03-07 1987-09-11 Hitachi Ltd 目的プログラムの並列化処理方式
JP2009048252A (ja) * 2007-08-14 2009-03-05 Oki Electric Ind Co Ltd プログラム変換装置及びコンパイラプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5729159A (en) * 1980-07-29 1982-02-17 Fujitsu Ltd Instruction feeding control system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5729159A (en) * 1980-07-29 1982-02-17 Fujitsu Ltd Instruction feeding control system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62206668A (ja) * 1986-03-07 1987-09-11 Hitachi Ltd 目的プログラムの並列化処理方式
JPH0514300B2 (ja) * 1986-03-07 1993-02-24 Hitachi Seisakusho Kk
JP2009048252A (ja) * 2007-08-14 2009-03-05 Oki Electric Ind Co Ltd プログラム変換装置及びコンパイラプログラム

Similar Documents

Publication Publication Date Title
JP3311462B2 (ja) コンパイル処理装置
US5303357A (en) Loop optimization system
US5088034A (en) Compiling method for determining programs to be executed parallelly by respective processors in a parallel computer which transfer data with a data identifier to other processors
CA1159151A (en) Cellular network processors
US5339429A (en) Parallel processing system and compiling method used therefor
JPH0397059A (ja) 並列プロセッサで処理する並列な命令ストリームを同期させる方法
Tjaden Representation and detection of concurrency using ordering-matrices.
CN110399124B (zh) 一种代码生成方法、装置、设备及可读存储介质
EP0798636B1 (en) Method, system and computer program product for register allocation using multiple interference graphs
Knobe et al. Massively parallel data optimization
CN111324354B (zh) 一种融合寄存器对需求的寄存器选择方法
JPS58149570A (ja) ベクトル命令のスケジユ−リング処理方式
Bowie Applications of graph theory in computer systems
JPS59165147A (ja) コンパイラにおける条件文のベクトル命令化方式
JPH06103462B2 (ja) ベクトル・レングス制御範囲分割処理方式
JPS6319906B2 (ja)
Dhamdhere et al. Characterization of program loops in code optimization
CN116088773B (zh) 一种基于隐式gemm卷积的数据加载方法、装置、设备及介质
JP2729795B2 (ja) 並列計算機及びその制御方法
Contessa et al. MaRS, a combinator graph reduction multiprocessor
JPH0152779B2 (ja)
JPS6321946B2 (ja)
KR100912114B1 (ko) 디지털 신호처리 프로세서에서 효과적인 데이터 전송을위한 메모리 운용 방법
JPH037989B2 (ja)
JPH046020B2 (ja)