JPH0452987B2 - - Google Patents
Info
- Publication number
- JPH0452987B2 JPH0452987B2 JP60106546A JP10654685A JPH0452987B2 JP H0452987 B2 JPH0452987 B2 JP H0452987B2 JP 60106546 A JP60106546 A JP 60106546A JP 10654685 A JP10654685 A JP 10654685A JP H0452987 B2 JPH0452987 B2 JP H0452987B2
- Authority
- JP
- Japan
- Prior art keywords
- vector length
- intermediate code
- optimization
- given
- vector
- 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 - Lifetime
Links
Landscapes
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Description
〔概要〕
中間コード最適化部を有するコンパイル装置に
おいて、当該中間コード最適化部にベクトル長設
定機能部をもうけ、該ベクトル長設定機能部が、
ベクトル長決定テーブルを参照し、可能な範囲で
極端に短いベクトル長が生じることのないように
ベクトル長を決定し、全体としての効率を向上す
るようにすることが開示される。 〔産業上の利用分野〕 本発明は、コンパイル装置、特に中間コード最
適化部を有するコンパイル装置において、好まし
いベクトル長を決定する機能をもたせるようにし
たコンパイル装置に関するものである。 〔従来の技術〕 与えられたソース・プログラムからオブジエク
ト・プログラムを生成するコンパイラにおいて、
ソース・プログラムが例えばループを含んでいる
如き場合に典型的に現われるが、中間コードを生
成した段階において、オブジエクト・プログラム
を生成した際に最も好ましいものが得られるよう
に、ベクトル化された中間コードの最適化をはか
ることが行われる。 第5図はベクトル演算の例を示しており、図示
の場合には、ベクトルa1,a2,……とベクトル
b1,b2,……との各エレメントに対して、エレメ
ント対応にマスクm1,m2,……がオンの場合に Ci=ai+bi なる演算を行い、オフの場合に Ci=Ci なる演算を行うことを表わしている。 第5図に示した如きベクトル演算は、第6図図
示の如きハードウエア構成をもつベクトル計算機
にによつて演算される。第6図において、1はベ
クトル・プロセツサ、2は主記憶装置、3はメモ
リ制御装置、4はチヤネル・プロセツサ、5は大
記憶装置を表わしている。 第7図は、与えられたソース・プログラム6を
ベクトル化した中間コードに変換している状態を
表わしている。 図示ソース・プログラム6においては、Iの値
が「1」から「100」まで変化する場合において、
A(I)とD(I)とを求めることを表現してい
る。そして、中間コード7においては、ベクト
ル・レングスが「100」(即ちVLENG=100)で
あるとして、A(*)とD(*)とを求めることが
表現されている。 〔発明が解決しようとする問題点〕 コンパイル装置においては、第7図図示の如き
中間コード7を生成した上で、オブジエクト・プ
ログラムを生成するが、オブジエクト・プログラ
ムを実行してゆく段階において使用できるベクト
ル・レジスタに限度がある。このために、どの程
度のベクトル・レジスタを使用する形でオブジエ
クト・プログラムを生成するかが問題となる。 ベクトル長が大となればそれだけ少ないベクト
ル・レジスタを使用する形となり易く、全体の数
多くの処理を効率よく実行する上では、かえつて
問題のあることがある。したがつて、一般には、
後述するビジー数を調べて上記ベクトル長が決定
されるが、例えばロジカル・ベクトル・レングス
が「1025」であるような場合に、実際に演算する
際のフイジカル・ベクトル長を例えば「512」に
選んだとすると、上記ロジカル・ベクトル・レン
グスが「1025」である如き演算を、フイジカル・
ベクトル長が「512」演算を2回と、ベクトル長
が「1」の演算を1回とをもつて行うこととなり
かねない。このような区分のされ方となつたよう
な場合には、ベクトル長が「1」の演算を行うた
めの効率が悪く、好ましくはベクトル長「512」
とベクトル長「513」との如き2回の演算に区分
できるようにすることが望ましい。 〔問題点を解決するための手段〕 本発明は上記の点を解決しており、第1図は本
発明の原理ブロツク図を示す。図中の符号8はコ
ンパイラ、9はソース・プログラム、10はオブ
ジエクト・プログラムを表わしている。また11
はソース解釈部、12は記憶域割付け部、13は
ベクトル化部、14は中間コード最適化部であつ
て本発明が直接関連する所のもの、15はレジス
タ使用決定部、16はオブジエクト・プログラム
出力部、17はベクトル長設定機能部を表わして
いる。 ベクトル化部13は第7図を参照して説明した
如き形でベクトル化を行つた中間コードを出力
し、中間コード最適化部14は中間コードについ
て最適化をはかるようにする。 〔作用〕 本発明の場合には、上述の如き極端に短いベク
トル長の演算が混在するようになることを防止す
るために、ベクトル長設定機能部17がもうけら
れる。当該機能部17は、後述する如き形で最大
ビジー数を求め、最適なベクトル長を求めて、好
ましいベクトル長を設定し、中間コード最適化部
内の処理(図示せず)に通知する。当該最適なベ
クトル長を求めるに当つては、ベクトル長決定テ
ーブルを参照する形の処理が行われる。 〔実施例〕 第2図は最大ビジー数を決定する態様を説明す
る説明図である。 今仮に、第2図図示左端縦列の如き中間コード
7が与えられているとするとき、ベクトル・レジ
スタvt1,vt2,vt3,vt4が夫々どの範囲で占有さ
れるかを示したものが、図示中央部の縦棒線であ
る。図示の場合、レジスタvt1は処理からま
での間占有される。またレジスタvt3は処理か
らまでの間占有される。このような占有の状態
を調べることによつて、処理からまでの間の
処理に当つて、レジスタが一時期に最大個数占有
されるのは処理の場合であり、このことから、
処理からまでの間の最大ビジー数は値「3」
として決定される。 第1表は、データ処理装置の機種がVP100の場
合とVP200の場合とで、上記最大ビジー数nが求
まつたときに、ベクトル長をどの程度の値に選定
したらよいかの目安を与える目安ベクトル長
DVLを表にまとめたものである。 上記の如く求められた最大ビジー数が値「8」
以内である場合には、VP200の装置においてはベ
クトル長は「1024」以内の値を選び得る。
おいて、当該中間コード最適化部にベクトル長設
定機能部をもうけ、該ベクトル長設定機能部が、
ベクトル長決定テーブルを参照し、可能な範囲で
極端に短いベクトル長が生じることのないように
ベクトル長を決定し、全体としての効率を向上す
るようにすることが開示される。 〔産業上の利用分野〕 本発明は、コンパイル装置、特に中間コード最
適化部を有するコンパイル装置において、好まし
いベクトル長を決定する機能をもたせるようにし
たコンパイル装置に関するものである。 〔従来の技術〕 与えられたソース・プログラムからオブジエク
ト・プログラムを生成するコンパイラにおいて、
ソース・プログラムが例えばループを含んでいる
如き場合に典型的に現われるが、中間コードを生
成した段階において、オブジエクト・プログラム
を生成した際に最も好ましいものが得られるよう
に、ベクトル化された中間コードの最適化をはか
ることが行われる。 第5図はベクトル演算の例を示しており、図示
の場合には、ベクトルa1,a2,……とベクトル
b1,b2,……との各エレメントに対して、エレメ
ント対応にマスクm1,m2,……がオンの場合に Ci=ai+bi なる演算を行い、オフの場合に Ci=Ci なる演算を行うことを表わしている。 第5図に示した如きベクトル演算は、第6図図
示の如きハードウエア構成をもつベクトル計算機
にによつて演算される。第6図において、1はベ
クトル・プロセツサ、2は主記憶装置、3はメモ
リ制御装置、4はチヤネル・プロセツサ、5は大
記憶装置を表わしている。 第7図は、与えられたソース・プログラム6を
ベクトル化した中間コードに変換している状態を
表わしている。 図示ソース・プログラム6においては、Iの値
が「1」から「100」まで変化する場合において、
A(I)とD(I)とを求めることを表現してい
る。そして、中間コード7においては、ベクト
ル・レングスが「100」(即ちVLENG=100)で
あるとして、A(*)とD(*)とを求めることが
表現されている。 〔発明が解決しようとする問題点〕 コンパイル装置においては、第7図図示の如き
中間コード7を生成した上で、オブジエクト・プ
ログラムを生成するが、オブジエクト・プログラ
ムを実行してゆく段階において使用できるベクト
ル・レジスタに限度がある。このために、どの程
度のベクトル・レジスタを使用する形でオブジエ
クト・プログラムを生成するかが問題となる。 ベクトル長が大となればそれだけ少ないベクト
ル・レジスタを使用する形となり易く、全体の数
多くの処理を効率よく実行する上では、かえつて
問題のあることがある。したがつて、一般には、
後述するビジー数を調べて上記ベクトル長が決定
されるが、例えばロジカル・ベクトル・レングス
が「1025」であるような場合に、実際に演算する
際のフイジカル・ベクトル長を例えば「512」に
選んだとすると、上記ロジカル・ベクトル・レン
グスが「1025」である如き演算を、フイジカル・
ベクトル長が「512」演算を2回と、ベクトル長
が「1」の演算を1回とをもつて行うこととなり
かねない。このような区分のされ方となつたよう
な場合には、ベクトル長が「1」の演算を行うた
めの効率が悪く、好ましくはベクトル長「512」
とベクトル長「513」との如き2回の演算に区分
できるようにすることが望ましい。 〔問題点を解決するための手段〕 本発明は上記の点を解決しており、第1図は本
発明の原理ブロツク図を示す。図中の符号8はコ
ンパイラ、9はソース・プログラム、10はオブ
ジエクト・プログラムを表わしている。また11
はソース解釈部、12は記憶域割付け部、13は
ベクトル化部、14は中間コード最適化部であつ
て本発明が直接関連する所のもの、15はレジス
タ使用決定部、16はオブジエクト・プログラム
出力部、17はベクトル長設定機能部を表わして
いる。 ベクトル化部13は第7図を参照して説明した
如き形でベクトル化を行つた中間コードを出力
し、中間コード最適化部14は中間コードについ
て最適化をはかるようにする。 〔作用〕 本発明の場合には、上述の如き極端に短いベク
トル長の演算が混在するようになることを防止す
るために、ベクトル長設定機能部17がもうけら
れる。当該機能部17は、後述する如き形で最大
ビジー数を求め、最適なベクトル長を求めて、好
ましいベクトル長を設定し、中間コード最適化部
内の処理(図示せず)に通知する。当該最適なベ
クトル長を求めるに当つては、ベクトル長決定テ
ーブルを参照する形の処理が行われる。 〔実施例〕 第2図は最大ビジー数を決定する態様を説明す
る説明図である。 今仮に、第2図図示左端縦列の如き中間コード
7が与えられているとするとき、ベクトル・レジ
スタvt1,vt2,vt3,vt4が夫々どの範囲で占有さ
れるかを示したものが、図示中央部の縦棒線であ
る。図示の場合、レジスタvt1は処理からま
での間占有される。またレジスタvt3は処理か
らまでの間占有される。このような占有の状態
を調べることによつて、処理からまでの間の
処理に当つて、レジスタが一時期に最大個数占有
されるのは処理の場合であり、このことから、
処理からまでの間の最大ビジー数は値「3」
として決定される。 第1表は、データ処理装置の機種がVP100の場
合とVP200の場合とで、上記最大ビジー数nが求
まつたときに、ベクトル長をどの程度の値に選定
したらよいかの目安を与える目安ベクトル長
DVLを表にまとめたものである。 上記の如く求められた最大ビジー数が値「8」
以内である場合には、VP200の装置においてはベ
クトル長は「1024」以内の値を選び得る。
装置VP200の場合であつて、最大ビジー数が値
「8」であつて、ロジカル・ベクトルLVLが値
「1060」であつたとする。 この場合には、 () MOD〔LVL/DVL〕=MOD〔1060/1024〕=36 () LVL>DVL () DVL>128 であり、 () m=〔LVL−1/DVL〕+1=1059/1024 +1=2(小数点以下切捨て) () DVL′=LVL−1/m+1=1059/2 +1=530(小数点以下切捨て) となる。また () MOD〔LVL−1/DVL′〕+1 =MOD〔1059/530〕+1=530 となる。したがつて、図示B欄が適用される形と
なり、初期PVLが値「530」であり、かつ定常
PVLが値「530」とされる。 〔数値例 〕 装置VP200の場合であつて、最大ビジー数が値
「8」であつて、ロジカル・ベクトル長LVLが値
「1025」であつたとする。この場合 () MOD〔LVL/DVL〕=1>0も () m=〔LVL−1/DVL〕+1=1024/1024+1=
2 () DVL′=LVL−1/m+1=1024/2+1= 513 () MOD〔LVL−1/DVL′〕+1 =MOD〔1024/513〕+1=512 となる。したがつて、図示B欄が適用される形と
なり、初期PVLが値「512」であり、かつ定常
PVLが値「513」とされる。 なお、当該数値例の場合、従来のままの上記目
安ベクトル長DVLの値「512」をそのまま使用す
ると、 1025=1+512+512 であることから、ベクトル長「1」の処理1回
と、ベクトル長「512」の処理2回とによつて所
定の処理が達成されることとなり、極端に小さい
ベクトル長の場合が含まれて効率が悪くなつてい
た。 〔発明の効果〕 以上説明した如く、本発明によれば、可能な限
ぎり、ベクトル長が極端に小さくなることがなく
なり、従来の場合にくらべて効率がよくなる。
「8」であつて、ロジカル・ベクトルLVLが値
「1060」であつたとする。 この場合には、 () MOD〔LVL/DVL〕=MOD〔1060/1024〕=36 () LVL>DVL () DVL>128 であり、 () m=〔LVL−1/DVL〕+1=1059/1024 +1=2(小数点以下切捨て) () DVL′=LVL−1/m+1=1059/2 +1=530(小数点以下切捨て) となる。また () MOD〔LVL−1/DVL′〕+1 =MOD〔1059/530〕+1=530 となる。したがつて、図示B欄が適用される形と
なり、初期PVLが値「530」であり、かつ定常
PVLが値「530」とされる。 〔数値例 〕 装置VP200の場合であつて、最大ビジー数が値
「8」であつて、ロジカル・ベクトル長LVLが値
「1025」であつたとする。この場合 () MOD〔LVL/DVL〕=1>0も () m=〔LVL−1/DVL〕+1=1024/1024+1=
2 () DVL′=LVL−1/m+1=1024/2+1= 513 () MOD〔LVL−1/DVL′〕+1 =MOD〔1024/513〕+1=512 となる。したがつて、図示B欄が適用される形と
なり、初期PVLが値「512」であり、かつ定常
PVLが値「513」とされる。 なお、当該数値例の場合、従来のままの上記目
安ベクトル長DVLの値「512」をそのまま使用す
ると、 1025=1+512+512 であることから、ベクトル長「1」の処理1回
と、ベクトル長「512」の処理2回とによつて所
定の処理が達成されることとなり、極端に小さい
ベクトル長の場合が含まれて効率が悪くなつてい
た。 〔発明の効果〕 以上説明した如く、本発明によれば、可能な限
ぎり、ベクトル長が極端に小さくなることがなく
なり、従来の場合にくらべて効率がよくなる。
第1図は本発明の原理ブロツク図、第2図は最
大ビジー数を決定する態様を説明する説明図、第
3図は中間コード出力例、第4図はベクトル長決
定テーブルの一実施例態様、第5図はベクトル演
算の例を説明する説明図、第6図はベクトル計算
機のハードウエア構成例、第7図はベクトル・レ
ングス制御範囲を説明する説明図を示す。 図中、1はベクトル・プロセツサ、6はソー
ス・プログラム、7は中間コード、8はコンパイ
ラ、14は中間コード最適化部、17はベクトル
長設定機能部、18はベクトル長決定テーブルを
表わす。
大ビジー数を決定する態様を説明する説明図、第
3図は中間コード出力例、第4図はベクトル長決
定テーブルの一実施例態様、第5図はベクトル演
算の例を説明する説明図、第6図はベクトル計算
機のハードウエア構成例、第7図はベクトル・レ
ングス制御範囲を説明する説明図を示す。 図中、1はベクトル・プロセツサ、6はソー
ス・プログラム、7は中間コード、8はコンパイ
ラ、14は中間コード最適化部、17はベクトル
長設定機能部、18はベクトル長決定テーブルを
表わす。
Claims (1)
- 【特許請求の範囲】 1 与えられたソース・プログラム9から中間コ
ード7を生成した上で最適化をはかりオブジエク
ト・プログラム10を生成するコンパイル装置8
において、 上記生成された中間コード7から上記オブジエ
クト・プログラム10を得るに当つて最適化をは
かる中間コード最適化部14をそなえ、 該中間コード最適化部14において、最大ビジ
ー数を求めた上で最適なベクトル長を求めてベク
トル長を設定するベクトル長設定機能部17がも
うけられ、 該ベクトル長設定機能部17は、与えられるロ
ジカル・ベクトル長を上側最大ビジー数で定まる
目安ベクトル長にて除した剰余値を用いて、与え
られた制御範囲の処理を実行する上でのベクトル
長を初期フイジカル・ベクトル長と定常フイジカ
ル・ベクトル長とに区分し、かつ当該初期フイジ
カル・ベクトル長と当該定常フイジカル・ベクト
ル長との比率を可能な範囲で値「1」に近づける
よう当該初期フイジカル・ベクトル長と当該定常
フイジカル・ベクトル長とに区分するベクトル長
決定テーブル18を参照するよう構成し、 上記中間コード最適化部14は、上記与えられ
た初期フイジカル・ベクトル長にしたがつた処理
を最初に実行し、次いで上記与えられた定常フイ
ジカル・ベクトル長にしたがつた処理を1回また
は複数回繰り返す形の中間コードを出力するよう
構成される ことを特徴とするコンパイル装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60106546A JPS61264442A (ja) | 1985-05-18 | 1985-05-18 | コンパイル装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60106546A JPS61264442A (ja) | 1985-05-18 | 1985-05-18 | コンパイル装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS61264442A JPS61264442A (ja) | 1986-11-22 |
| JPH0452987B2 true JPH0452987B2 (ja) | 1992-08-25 |
Family
ID=14436356
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP60106546A Granted JPS61264442A (ja) | 1985-05-18 | 1985-05-18 | コンパイル装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS61264442A (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63168773A (ja) * | 1987-01-07 | 1988-07-12 | Nec Corp | ル−プ多重化ベクトル処理方式 |
| WO2020148906A1 (ja) * | 2019-01-18 | 2020-07-23 | 日本電気株式会社 | 最適化装置、最適化方法、及びコンピュータ読み取り可能な記録媒体 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06103462B2 (ja) * | 1982-02-27 | 1994-12-14 | 富士通株式会社 | ベクトル・レングス制御範囲分割処理方式 |
-
1985
- 1985-05-18 JP JP60106546A patent/JPS61264442A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS61264442A (ja) | 1986-11-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6370601B1 (en) | Intelligent direct memory access controller providing controlwise and datawise intelligence for DMA transfers | |
| CN111552478A (zh) | 用于生成cuda程序的设备、方法和存储介质 | |
| JPH0452987B2 (ja) | ||
| JPH01199233A (ja) | パイプライン処理における条件分岐制御方式 | |
| JPS63111535A (ja) | デ−タ処理装置 | |
| JPS63155264A (ja) | ベクトル計算機用言語チユ−ニング処理方式 | |
| JP3072772B2 (ja) | コンパイル装置 | |
| JPH0460719A (ja) | 電子計算機、プログラマブル論理回路及びプログラム処理方法 | |
| JPS6220032A (ja) | 情報処理装置 | |
| JPH0337728A (ja) | オペレーティングシステム | |
| JPS61114342A (ja) | デ−タ処理装置の制御装置 | |
| JPH02224133A (ja) | 分割コード生成方式 | |
| JPH03127171A (ja) | ベクトル処理装置 | |
| JPH04358264A (ja) | ベクトル化処理方式 | |
| JPS6358574A (ja) | ベクトル化処理方式 | |
| Vazhenin¹ et al. | Systems of Linear Equations with Dynamically Changed Length of Operands | |
| JPS63101966A (ja) | ベクトル処理装置 | |
| JPH01223565A (ja) | 情報処理装置 | |
| JPH0259961A (ja) | 情報処理装置 | |
| JPH035881A (ja) | ベクトル演算装置 | |
| JPH1139140A (ja) | プロセッサ | |
| JPH01128140A (ja) | 割込要求制御回路 | |
| KR20000056270A (ko) | 레지스터 뱅크를 가변적으로 선택하기 위한 장치 | |
| JPH04342067A (ja) | ベクトル演算装置 | |
| JPH04288626A (ja) | 計算機システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |