JPS6319906B2 - - Google Patents
Info
- Publication number
- JPS6319906B2 JPS6319906B2 JP57031195A JP3119582A JPS6319906B2 JP S6319906 B2 JPS6319906 B2 JP S6319906B2 JP 57031195 A JP57031195 A JP 57031195A JP 3119582 A JP3119582 A JP 3119582A JP S6319906 B2 JPS6319906 B2 JP S6319906B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- unit
- intermediate code
- length control
- program
- 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.)
- Expired
Links
- 239000013598 vector Substances 0.000 claims description 70
- 238000002789 length control Methods 0.000 claims description 28
- 238000000034 method Methods 0.000 claims description 14
- 238000005457 optimization Methods 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 4
- 238000007499 fusion processing Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000004927 fusion Effects 0.000 description 8
- 102100041030 Pancreas/duodenum homeobox protein 1 Human genes 0.000 description 1
- 101710144033 Pancreas/duodenum homeobox protein 1 Proteins 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting 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)
Description
【発明の詳細な説明】
(A) 発明の技術分野
本発明は、ベクトル・レングス制御範囲融合処
理方式、特に複数の並列演算部をそなえたベクト
ル処理プロセツサに対して、与えられたソース・
プログラムから目的プログラムを生成して供給す
るコンパイラにおいて、同一のベクトル・レング
スをもつ複数個のベクトル・レングス制御範囲を
可能な限ぎり単一のベクトル・レングス制御範囲
に融合せしめるようにベクトル・レングス制御範
囲融合処理方式に関するものである。
理方式、特に複数の並列演算部をそなえたベクト
ル処理プロセツサに対して、与えられたソース・
プログラムから目的プログラムを生成して供給す
るコンパイラにおいて、同一のベクトル・レング
スをもつ複数個のベクトル・レングス制御範囲を
可能な限ぎり単一のベクトル・レングス制御範囲
に融合せしめるようにベクトル・レングス制御範
囲融合処理方式に関するものである。
(B) 技術の背景と問題点
例えば、第1図Aに示す如く、ベクトルAに属
するエレメントa1,a2,…とベクトルBに属する
エレメントb1,b2,…との各エレメント相互を加
算して、エレメントc1,c2,…をもつベクトルC
を生成するような、ベクトル命令を実行するベク
トル処理プロセツサが存在している。第1図A図
示の場合、第番目のエレメント相互の加算を行
なうか否かをマスク・エレメントm1,m2,…に
て指示するようにされており、第1図Bに一般化
して示す如き処理が行なわれる。
するエレメントa1,a2,…とベクトルBに属する
エレメントb1,b2,…との各エレメント相互を加
算して、エレメントc1,c2,…をもつベクトルC
を生成するような、ベクトル命令を実行するベク
トル処理プロセツサが存在している。第1図A図
示の場合、第番目のエレメント相互の加算を行
なうか否かをマスク・エレメントm1,m2,…に
て指示するようにされており、第1図Bに一般化
して示す如き処理が行なわれる。
上記の如き処理を行なうベクトル処理プロセツ
サを有するデータ処理システムは、一実施例とし
て第2図図示の如きシステム構成をもつている。
図中の符号1は主記憶装置、2はメモリ制御装
置、3はベクトル処理プロセツサ、4はチヤネ
ル・プロセツサ、5は大記憶装置、6はスカラ処
理回路部、7はベクトル処理回路部、8―0,8
―1,…は夫々浮動小数点データ・レジスタ、9
―0,9―1,…は夫々複数個のデータ(エレメ
ント・データ)を格納し得るベクトル・レジス
タ、10―0,10―1,…は夫々複数個のマス
ク・データ(マスク・エレメント・データ)を格
納し得るマスク・レジスタ、11はベクトル長レ
ジスタであつて各ベクトル・レジスタに格納され
るエレメントの個数情報がセツトされるもの、1
2―0,12―1は夫々メモリ・アクセス・パイ
プライン、13は加減算パイプライン、14は乗
算処理パイプライン、15は除算処理パイプライ
ン、16はマスク処理パイプラインを表わしてい
る。
サを有するデータ処理システムは、一実施例とし
て第2図図示の如きシステム構成をもつている。
図中の符号1は主記憶装置、2はメモリ制御装
置、3はベクトル処理プロセツサ、4はチヤネ
ル・プロセツサ、5は大記憶装置、6はスカラ処
理回路部、7はベクトル処理回路部、8―0,8
―1,…は夫々浮動小数点データ・レジスタ、9
―0,9―1,…は夫々複数個のデータ(エレメ
ント・データ)を格納し得るベクトル・レジス
タ、10―0,10―1,…は夫々複数個のマス
ク・データ(マスク・エレメント・データ)を格
納し得るマスク・レジスタ、11はベクトル長レ
ジスタであつて各ベクトル・レジスタに格納され
るエレメントの個数情報がセツトされるもの、1
2―0,12―1は夫々メモリ・アクセス・パイ
プライン、13は加減算パイプライン、14は乗
算処理パイプライン、15は除算処理パイプライ
ン、16はマスク処理パイプラインを表わしてい
る。
上記の如きベクトル処理プロセツサが処理を実
行するに当つて、当該プロセツサが実行するに適
した形に、与えられたソース・プログラムをコン
パイルし目的プログラムを生成することが行なわ
れる。当該コンパイルを行なうコンパイラの構成
は第3図を参照して後述されるが、当該コンパイ
ラによるコンパイル処理に当つて、上記ベクトル
処理プロセツサが処理を実行する際に上記ベクト
ル長レジスタの内容をセツトし直すことなしに実
行できる範囲を増大し、全体としての処理の最適
化を図ることが望まれる。なお、本発明にいうベ
クトル・レングス制御範囲とは、上記ベクトル長
レジスタの内容をセツトし直すことなしに実行で
きるプログラム・ステツプの範囲に関連している
ものと考えてよい。このことに関しては第5図を
参照して後述される。
行するに当つて、当該プロセツサが実行するに適
した形に、与えられたソース・プログラムをコン
パイルし目的プログラムを生成することが行なわ
れる。当該コンパイルを行なうコンパイラの構成
は第3図を参照して後述されるが、当該コンパイ
ラによるコンパイル処理に当つて、上記ベクトル
処理プロセツサが処理を実行する際に上記ベクト
ル長レジスタの内容をセツトし直すことなしに実
行できる範囲を増大し、全体としての処理の最適
化を図ることが望まれる。なお、本発明にいうベ
クトル・レングス制御範囲とは、上記ベクトル長
レジスタの内容をセツトし直すことなしに実行で
きるプログラム・ステツプの範囲に関連している
ものと考えてよい。このことに関しては第5図を
参照して後述される。
(C) 発明の目的と構成
本発明は、上記の点を解決することを目的とし
ており、ベクトル・レングスを同じとする複数個
のベクトル・レングス制御範囲にわたつて、配列
データ例えばA(IDX、J)の先行順序関係をチ
エツクし、融合不可条件にない場合に、上記複数
個のベクトル・レングス制御範囲を融合せしめる
ようにすることを特徴としている。以下図面を参
照しつつ説明する。
ており、ベクトル・レングスを同じとする複数個
のベクトル・レングス制御範囲にわたつて、配列
データ例えばA(IDX、J)の先行順序関係をチ
エツクし、融合不可条件にない場合に、上記複数
個のベクトル・レングス制御範囲を融合せしめる
ようにすることを特徴としている。以下図面を参
照しつつ説明する。
(D) 発明の実施例
第3図は本発明に用いるコンパイラの一実施例
構成、第4図は本発明においてソース・プログラ
ムを中間コード(テキスト)に移してゆく態様を
説明する説明図、第5図はベクトル・レングス制
御範囲を説明する説明図、第6図ないし第12図
は本発明による処理を説明する説明図、第13図
はベクトル化部における本発明に直接関連した処
理に対応した一実施例フローチヤートを示す。
構成、第4図は本発明においてソース・プログラ
ムを中間コード(テキスト)に移してゆく態様を
説明する説明図、第5図はベクトル・レングス制
御範囲を説明する説明図、第6図ないし第12図
は本発明による処理を説明する説明図、第13図
はベクトル化部における本発明に直接関連した処
理に対応した一実施例フローチヤートを示す。
第3図において、17は大記憶装置に格納され
ているソース・プログラム、18はコンパイラ、
19はコンパイルされて大記憶装置上に格納され
る目的プログラム、20はソース解釈部、21は
記憶域割付け部、22はベクトル化部、23は中
間コード最適化部、24はレジスタ使用決定部、
25は目的プログラム出力部を表わしている。
ているソース・プログラム、18はコンパイラ、
19はコンパイルされて大記憶装置上に格納され
る目的プログラム、20はソース解釈部、21は
記憶域割付け部、22はベクトル化部、23は中
間コード最適化部、24はレジスタ使用決定部、
25は目的プログラム出力部を表わしている。
コンパイラ18は、大記憶装置からソース・プ
ログラム17を取込んで、所望の目的プログラム
19を生成する。このとき図示の各部は次のよう
な処理を行う。
ログラム17を取込んで、所望の目的プログラム
19を生成する。このとき図示の各部は次のよう
な処理を行う。
即ち、ソース解釈部20はソース・プログラム
17を大記憶装置から取込み、文解釈を行つて中
間コード(テキスト)に展開する。例えばソー
ス・プログラムが第4図図示左側の如き場合に図
示右側に示す如き中間コードに展開する。記憶域
割付け部21はプログラム内に出現する各種デー
タに対応して記憶域内番地を割当てる。ベクトル
化部22は、プログラム中のループ構造を検出
し、並列実行可能部分と認識し、第5図図示の如
く中間コード変更を行う。中間コード最適化部2
3は、中間コードのレベルで、第2図図示の如き
ベクトル処理プロセツサを有効に利用するための
最適化を施す。レジスタ使用決定部24は、中間
コードに現われたデータに対して、ベクトル処理
プロセツサ上の資源(レジスタ)を割当てる。そ
して目的プログラム出力部25は機械命令語を大
記憶装置へ出力しかつ命令語レベルでの最適化を
行う。
17を大記憶装置から取込み、文解釈を行つて中
間コード(テキスト)に展開する。例えばソー
ス・プログラムが第4図図示左側の如き場合に図
示右側に示す如き中間コードに展開する。記憶域
割付け部21はプログラム内に出現する各種デー
タに対応して記憶域内番地を割当てる。ベクトル
化部22は、プログラム中のループ構造を検出
し、並列実行可能部分と認識し、第5図図示の如
く中間コード変更を行う。中間コード最適化部2
3は、中間コードのレベルで、第2図図示の如き
ベクトル処理プロセツサを有効に利用するための
最適化を施す。レジスタ使用決定部24は、中間
コードに現われたデータに対して、ベクトル処理
プロセツサ上の資源(レジスタ)を割当てる。そ
して目的プログラム出力部25は機械命令語を大
記憶装置へ出力しかつ命令語レベルでの最適化を
行う。
ベクトル処理プロセツサを稼動させるためのコ
ンパイラは第3図図示の如き構成をもつており、
与えられたソース・プログラムをして、ベクトル
処理プロセツサが好ましい形で処理を実行できる
ような形の目的プログラムにコンパイルしてゆ
く。当該コンパイルに当つては、第5図図示の如
く、中間コードを生成する処理を含んでいるが、
Iの値を「1」から「100」まで変化させつつ行
なうDOループを、第5図図示右側に示す如きベ
クトル・テキスト表現に変更せしめることが行な
われる。この場合、上述のベクトル長レジスタ1
1(第2図)にセツトするベクトル・レングス
(VLENG)を例えば図示の如く VLENG=100 とセツトした内容を、改めてセツトし直すことな
しに処理できる範囲が、本発明においてベクト
ル・レングス制御範囲と呼んでいる。第5図図示
右側に示すカギ・カツコの範囲が1つのベクト
ル・レングス制御範囲に該当している。
ンパイラは第3図図示の如き構成をもつており、
与えられたソース・プログラムをして、ベクトル
処理プロセツサが好ましい形で処理を実行できる
ような形の目的プログラムにコンパイルしてゆ
く。当該コンパイルに当つては、第5図図示の如
く、中間コードを生成する処理を含んでいるが、
Iの値を「1」から「100」まで変化させつつ行
なうDOループを、第5図図示右側に示す如きベ
クトル・テキスト表現に変更せしめることが行な
われる。この場合、上述のベクトル長レジスタ1
1(第2図)にセツトするベクトル・レングス
(VLENG)を例えば図示の如く VLENG=100 とセツトした内容を、改めてセツトし直すことな
しに処理できる範囲が、本発明においてベクト
ル・レングス制御範囲と呼んでいる。第5図図示
右側に示すカギ・カツコの範囲が1つのベクト
ル・レングス制御範囲に該当している。
ベクトル処理プロセツサが処理を実行するに当
つて、上記ベクトル長レジスタ11(第2図)の
内容をセツトし直すということはいわば別個のベ
クトル処理を行なうことに対応しており、可能な
限ぎり複数の処理をまとめて単一のベクトル処理
によつて実行することが処理最適化の面から望ま
しい。
つて、上記ベクトル長レジスタ11(第2図)の
内容をセツトし直すということはいわば別個のベ
クトル処理を行なうことに対応しており、可能な
限ぎり複数の処理をまとめて単一のベクトル処理
によつて実行することが処理最適化の面から望ま
しい。
即ち、例えば第6図図示左側に示される如き複
数個のDOループをもつプログラムがあるとき、
第6図図示右側に示す如く、融合された単一の
DOループに変えてゆくことに対応している。こ
のことをベクトル・テキスト表現にて表わすと、
第7図図示白抜矢印の如く、複数個のベクトル・
レングス制御範囲aとbとをベクトル・レングス
が同じであることに注目し、所定の条件を満足し
ていることを条件に、単一のベクトル・レングス
制御範囲cに変えてゆくことに対応している。
数個のDOループをもつプログラムがあるとき、
第6図図示右側に示す如く、融合された単一の
DOループに変えてゆくことに対応している。こ
のことをベクトル・テキスト表現にて表わすと、
第7図図示白抜矢印の如く、複数個のベクトル・
レングス制御範囲aとbとをベクトル・レングス
が同じであることに注目し、所定の条件を満足し
ていることを条件に、単一のベクトル・レングス
制御範囲cに変えてゆくことに対応している。
以下、上記融合が可能か否かをチエツクする態
様について簡単のために定義が第8図ないし第1
2図に示す如き形で現われるものとして説明す
る。第8図は融合が可能である場合を示してお
り、図示左側に示す3つのベクトル・レングス制
御範囲p,q,rにおいて配列データAについて
次の関係をもつている。即ち例えばIDX=3とし
たとき、制御範囲pにおいてデータA(4、J)
が定義され、次いで制御範囲qにおいてデータA
(3、J)が定義され、更に制御範囲rにおいて
データA(2、J)が定義される形となつている。
このような関係にある3個のベクトル・レングス
制御範囲p,q,rを、図示右側に示す単一のベ
クトル・レングス制御範囲sに融合したとする。
様について簡単のために定義が第8図ないし第1
2図に示す如き形で現われるものとして説明す
る。第8図は融合が可能である場合を示してお
り、図示左側に示す3つのベクトル・レングス制
御範囲p,q,rにおいて配列データAについて
次の関係をもつている。即ち例えばIDX=3とし
たとき、制御範囲pにおいてデータA(4、J)
が定義され、次いで制御範囲qにおいてデータA
(3、J)が定義され、更に制御範囲rにおいて
データA(2、J)が定義される形となつている。
このような関係にある3個のベクトル・レングス
制御範囲p,q,rを、図示右側に示す単一のベ
クトル・レングス制御範囲sに融合したとする。
第8図図示左側の処理によつてデータAが記憶
域上に定義されてゆく態様を示すと、制御範囲p
による処理に対応して、第9図A図示の如く、記
憶域26上でIDXの値が更新されてゆく間に、
,,,………の如く定義されてゆき、次い
で制御範囲qによる処理に対応して、,,
,………の如く定義されてゆき、更に制御範囲
rによる処理に対応して、,,,………の
如く定義されてゆくことが判る。一方第8図図示
右側の処理によつてデータAが記憶域上に定義さ
れてゆく態様を示すと、制御範囲sによる処理に
対応して、第9図B図示の如く、記憶域26上で
IDXの値が更新されてゆく間に、,,,
,………,………の如く定義されてゆく。
域上に定義されてゆく態様を示すと、制御範囲p
による処理に対応して、第9図A図示の如く、記
憶域26上でIDXの値が更新されてゆく間に、
,,,………の如く定義されてゆき、次い
で制御範囲qによる処理に対応して、,,
,………の如く定義されてゆき、更に制御範囲
rによる処理に対応して、,,,………の
如く定義されてゆくことが判る。一方第8図図示
右側の処理によつてデータAが記憶域上に定義さ
れてゆく態様を示すと、制御範囲sによる処理に
対応して、第9図B図示の如く、記憶域26上で
IDXの値が更新されてゆく間に、,,,
,………,………の如く定義されてゆく。
第9図A,Bを対比すると判る如く、処理が終
つた段階において、記憶域26上の例えばIDX=
kなる位置の内容は、第8図図示の制御範囲rに
よる処理にもとづいて定義されたものとなつてお
り、第8図図示左側の処理を第8図図示右側の処
理の如く単一のベクトル・レングス制御範囲に融
合してもよいことが判る。
つた段階において、記憶域26上の例えばIDX=
kなる位置の内容は、第8図図示の制御範囲rに
よる処理にもとづいて定義されたものとなつてお
り、第8図図示左側の処理を第8図図示右側の処
理の如く単一のベクトル・レングス制御範囲に融
合してもよいことが判る。
第10図は融合が不可である場合を示してお
り、第10図図示左側に示すベクトル・レングス
制御範囲p,q,rを図示右側に示す如く単一の
ベクトル・レングス制御範囲sに融合したとする
と、次の如き矛盾が生じる。第10図図示左側の
処理に対応して、第11図A図示の如く、データ
Aが記憶域26上でIDXの値が更新されてゆく間
に、,,,………,,,………,
,,………の如く定義されてゆく。これに対
して、第10図図示右側の処理の場合には、第1
1図B図示の如く、データAが記憶域26上で
IDXの値が更新されてゆく間に、,,,
,………,,………の如く定義されてゆ
くことが判る。この場合、IDX=kで示す位置の
内容は、本来、第10図図示左側の処理に対応し
て、ベクトル・レングス制御範囲rによる処理に
対応した結果となつてゆくべきであるのに対し、
第10図図示右側の処理の場合には図示の際に A(IDX−1、J)=VRi……… に対応して書替えられてしまつている。即ち、第
10図図示の場合には、融合不可であることが判
る。
り、第10図図示左側に示すベクトル・レングス
制御範囲p,q,rを図示右側に示す如く単一の
ベクトル・レングス制御範囲sに融合したとする
と、次の如き矛盾が生じる。第10図図示左側の
処理に対応して、第11図A図示の如く、データ
Aが記憶域26上でIDXの値が更新されてゆく間
に、,,,………,,,………,
,,………の如く定義されてゆく。これに対
して、第10図図示右側の処理の場合には、第1
1図B図示の如く、データAが記憶域26上で
IDXの値が更新されてゆく間に、,,,
,………,,………の如く定義されてゆ
くことが判る。この場合、IDX=kで示す位置の
内容は、本来、第10図図示左側の処理に対応し
て、ベクトル・レングス制御範囲rによる処理に
対応した結果となつてゆくべきであるのに対し、
第10図図示右側の処理の場合には図示の際に A(IDX−1、J)=VRi……… に対応して書替えられてしまつている。即ち、第
10図図示の場合には、融合不可であることが判
る。
第8図図示の場合と第10図図示の場合とを対
比してみるとき、 A(IDX+l、J)=……… で与えられるものを1つのベクトルriと考えて、
当該ベクトルの先行順序関係を矢印で示すと、第
12図A図示の如く先行順序関係が図示下向きの
矢印にしたがつている複数個のものは単一のベク
トル・レングス制御範囲に融合することが許さ
れ、一方第12図B図示の如く先行順序関係が図
示上向きの矢印にしたがつているものがあると上
記融合が不可であることが判る。
比してみるとき、 A(IDX+l、J)=……… で与えられるものを1つのベクトルriと考えて、
当該ベクトルの先行順序関係を矢印で示すと、第
12図A図示の如く先行順序関係が図示下向きの
矢印にしたがつている複数個のものは単一のベク
トル・レングス制御範囲に融合することが許さ
れ、一方第12図B図示の如く先行順序関係が図
示上向きの矢印にしたがつているものがあると上
記融合が不可であることが判る。
なお上記において第8図ないし第12図におい
て定義が図示の如く現われたものとして説明した
が、一般的に第12図Aに示す各定義 A(IDX+i、J)=……… (但しiは正又は負の整数) が夫々、参照 ………=A(IDX+i、J) (但しiは正又は負の整数) に入れ替わつていてもよい。定義または参照が第
12図Aの順に現われる場合には融合可能であ
る。また一般に第12図Bに示す各定義 A(IDX+i、J)=……… (但しiは正又は負の整数) が夫々、参照 ………A(IDX+i、J) (但しiは正又は負の整数) に入れ替わつてもよい。定義または参照が第12
図Bの順に現われる場合には融合不可である。た
だ第12図Bに示すすべての定義が夫々参照に入
れ替わつた場合には定義が1つも存在せず融合可
である。
て定義が図示の如く現われたものとして説明した
が、一般的に第12図Aに示す各定義 A(IDX+i、J)=……… (但しiは正又は負の整数) が夫々、参照 ………=A(IDX+i、J) (但しiは正又は負の整数) に入れ替わつていてもよい。定義または参照が第
12図Aの順に現われる場合には融合可能であ
る。また一般に第12図Bに示す各定義 A(IDX+i、J)=……… (但しiは正又は負の整数) が夫々、参照 ………A(IDX+i、J) (但しiは正又は負の整数) に入れ替わつてもよい。定義または参照が第12
図Bの順に現われる場合には融合不可である。た
だ第12図Bに示すすべての定義が夫々参照に入
れ替わつた場合には定義が1つも存在せず融合可
である。
第13図A,Bは、一緒になつて1つの図を構
成するものであり、ベクトル化部における本発明
に直接関連した処理に対応した一実施例フローチ
ヤートを示す。その処理は概略次の如きものであ
る。
成するものであり、ベクトル化部における本発明
に直接関連した処理に対応した一実施例フローチ
ヤートを示す。その処理は概略次の如きものであ
る。
(1) ベクトル・レングスが同じ複数個のベクト
ル・レングス制御範囲を選ぶ。
ル・レングス制御範囲を選ぶ。
(2) 配列データAを取出す。
(3) 1つのベクトル・レングス制御範囲を取出
す。
す。
(4) 当該制御範囲中に配列データAの引用がある
か否かを調べる。
か否かを調べる。
(5) あればその引用態様を覚えておく。
(6) すべてのベクトル・レングス制御範囲につい
て調べ終ると、第13図B図示の如く、配列デ
ータAの依存関係を求め、 (7) 配列データAの依存関係をベクトル・レング
ス制御範囲相互間の依存関係に移す。
て調べ終ると、第13図B図示の如く、配列デ
ータAの依存関係を求め、 (7) 配列データAの依存関係をベクトル・レング
ス制御範囲相互間の依存関係に移す。
(8) そして次の配列データについての処理に入
る。
る。
(9) 配列データがなくなると、第13図B図示の
如く、下から上への依存関係があるものを融合
不可とする。
如く、下から上への依存関係があるものを融合
不可とする。
(10) そして融合不可にならなかつたものについて
融合を行う。
融合を行う。
以上の如くして、融合が行われてゆく。
(E) 発明の効果
以上説明した如く、本発明によれば、いわば複
数のDOループを1つのDOループにまとめた形
でコンパイルすることが可能となり、ベクトル処
理プロセツサによる処理に当つて、ベクトル長レ
ジスタの内容をセツトし直す処理などが簡略化さ
れ、処理連度を向上することが可能となる。
数のDOループを1つのDOループにまとめた形
でコンパイルすることが可能となり、ベクトル処
理プロセツサによる処理に当つて、ベクトル長レ
ジスタの内容をセツトし直す処理などが簡略化さ
れ、処理連度を向上することが可能となる。
第1図はベクトル命令に対応した処理を概念的
に説明する説明図、第2図は本発明にいうベクト
ル処理プロセツサを有する処理システムの一実施
例、第3図は本発明に用いるコンパイラの一実施
例構成、第4図は本発明においてソース・プログ
ラムを中間コード(テキスト)に移してゆく態様
を説明する説明図、第5図はベクトル・レングス
制御範囲を説明する説明図、第6図ないし第12
図は本発明による処理を説明する説明図、第13
図はベクトル化部における本発明に直接関連した
処理に対応した一実施例フローチヤートを示す。 図中、1は主記憶装置、2はメモリ制御装置、
3はベクトル処理プロセツサ、4はチヤネル・プ
ロセツサ、5は大記憶装置、9はベクトル・レジ
スタ、10はマスク・レジスタ、11ないし16
は夫々パイプライン演算部、17はソース・プロ
グラム、18はコンパイラ、19は目的プログラ
ム、20はソース解釈部、21は記憶域割付け
部、22はベクトル化部、23は中間コード最適
化部、24はレジスタ使用決定部、25は目的プ
ログラム出力部を表わしている。
に説明する説明図、第2図は本発明にいうベクト
ル処理プロセツサを有する処理システムの一実施
例、第3図は本発明に用いるコンパイラの一実施
例構成、第4図は本発明においてソース・プログ
ラムを中間コード(テキスト)に移してゆく態様
を説明する説明図、第5図はベクトル・レングス
制御範囲を説明する説明図、第6図ないし第12
図は本発明による処理を説明する説明図、第13
図はベクトル化部における本発明に直接関連した
処理に対応した一実施例フローチヤートを示す。 図中、1は主記憶装置、2はメモリ制御装置、
3はベクトル処理プロセツサ、4はチヤネル・プ
ロセツサ、5は大記憶装置、9はベクトル・レジ
スタ、10はマスク・レジスタ、11ないし16
は夫々パイプライン演算部、17はソース・プロ
グラム、18はコンパイラ、19は目的プログラ
ム、20はソース解釈部、21は記憶域割付け
部、22はベクトル化部、23は中間コード最適
化部、24はレジスタ使用決定部、25は目的プ
ログラム出力部を表わしている。
Claims (1)
- 1 複数の並列演算部をそなえると共に複数個の
レジスタを少なくともそなえてベクトル命令を実
行するベクトル処理プロセツサに対して、与えら
れたソース・プログラムから目的プログラムを生
成して供給するコンパイラにおいて、上記ソー
ス・プログラムの文解釈を行つて中間コードに展
開するソース解釈部、プログラム中に出現する各
種データに記憶域内番地を割り当てる記憶域割付
け部、プログラム中のループ構造を検出して並列
実行可能部分の認識を行いかつ上記中間コード変
更を行うベクトル化部、中間コードのレベルで上
記ベクトル処理プロセツサを有効に利用するため
の最適化を施す中間コード最適化部、中間コード
に現われたデータに実際の資源を割当てるレジス
タ使用決定部、および目的プログラム出力部をそ
なえてなり、更に、上記ベクトル化部は、ベクト
ル・レングスを同じくする複数個のベクトル・レ
ングス制御範囲を抽出した上で、当該複数個のベ
クトル・レングス制御範囲内のいずれか1つの配
列データに注目して上記複数個のベクトル・レン
グス制御範囲内での当該配列データについての先
行順序関係を記録し、すべての配列データに関し
て上記先行順序関係が融合不可条件にないことを
判別した上で上記複数個のベクトル・レングス制
御範囲を単一のベクトル・レングス制御範囲に融
合するようにしたことを特徴とするベクトル・レ
ングス制御範囲融合処理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3119582A JPS58149567A (ja) | 1982-02-27 | 1982-02-27 | ベクトル・レングス制御範囲融合処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3119582A JPS58149567A (ja) | 1982-02-27 | 1982-02-27 | ベクトル・レングス制御範囲融合処理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS58149567A JPS58149567A (ja) | 1983-09-05 |
JPS6319906B2 true JPS6319906B2 (ja) | 1988-04-25 |
Family
ID=12324636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3119582A Granted JPS58149567A (ja) | 1982-02-27 | 1982-02-27 | ベクトル・レングス制御範囲融合処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS58149567A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03101301U (ja) * | 1990-01-30 | 1991-10-22 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6235944A (ja) * | 1985-08-09 | 1987-02-16 | Fujitsu Ltd | コンパイラ処理方式 |
JPS62163168A (ja) * | 1986-01-13 | 1987-07-18 | Fujitsu Ltd | ベクトル処理方式 |
JPS62248065A (ja) * | 1986-04-22 | 1987-10-29 | Fujitsu Ltd | スパ−ス行列の連立方程式の解法方式 |
-
1982
- 1982-02-27 JP JP3119582A patent/JPS58149567A/ja active Granted
Non-Patent Citations (1)
Title |
---|
PRINCIPLES OF COMPILER DESIGN=1979 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03101301U (ja) * | 1990-01-30 | 1991-10-22 |
Also Published As
Publication number | Publication date |
---|---|
JPS58149567A (ja) | 1983-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5093916A (en) | System for inserting constructs into compiled code, defining scoping of common blocks and dynamically binding common blocks to tasks | |
JP3311462B2 (ja) | コンパイル処理装置 | |
US5857104A (en) | Synthetic dynamic branch prediction | |
US6550059B1 (en) | Method for generating optimized vector instructions from high level programming languages | |
JPH0695311B2 (ja) | コード最適化方法 | |
US4843545A (en) | Compile method using copy propagation of a variable | |
US5596732A (en) | Method of optimizing instruction sequence of compiler | |
Kataoka et al. | A framework for constructing javascript virtual machines with customized datatype representations | |
JPS6319906B2 (ja) | ||
Hawkins et al. | A multi-pass translation scheme for ALGOL 60 | |
Midkiff | Automatic generation of synchronization instructions for parallel processors | |
WO2021047662A1 (en) | Method and apparatus for enabling autonomous acceleration of dataflow ai applications | |
Dhamdhere et al. | Characterization of program loops in code optimization | |
JPS59165147A (ja) | コンパイラにおける条件文のベクトル命令化方式 | |
EP3764249A1 (en) | A streaming compiler for automatic adjoint differentiation | |
JPH06103462B2 (ja) | ベクトル・レングス制御範囲分割処理方式 | |
JPS6321946B2 (ja) | ||
JPS58149570A (ja) | ベクトル命令のスケジユ−リング処理方式 | |
JPH046020B2 (ja) | ||
JPS6319908B2 (ja) | ||
JPH0152779B2 (ja) | ||
JP2555011B2 (ja) | ベクトルデ−タ処理方式 | |
JPH037989B2 (ja) | ||
Cheung | Techniques for reducing dependencies among instructions for a parallel single processor computer system. | |
JPH0142019B2 (ja) |