JPH03110670A - ベクトル計算機 - Google Patents

ベクトル計算機

Info

Publication number
JPH03110670A
JPH03110670A JP1248366A JP24836689A JPH03110670A JP H03110670 A JPH03110670 A JP H03110670A JP 1248366 A JP1248366 A JP 1248366A JP 24836689 A JP24836689 A JP 24836689A JP H03110670 A JPH03110670 A JP H03110670A
Authority
JP
Japan
Prior art keywords
intermediate text
vector
processing
generated
loop
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
JP1248366A
Other languages
English (en)
Inventor
Yuji Yokoya
横谷 雄司
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP1248366A priority Critical patent/JPH03110670A/ja
Publication of JPH03110670A publication Critical patent/JPH03110670A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ベクトル計算機に利用する。特に、高級言語
で書かれた原始プログラムを人力して目的プログラムを
生成するに際し、条件文を含むループを高速に実行する
ようなベクトル命令列を生成するベクトル化手段に関す
る。
〔概要〕
本発明は、コンパイルに際し、条件文を含むループを実
行するベクトル命令列を生成する手段において、 いずれの真率に対しても最適な処理手順を選択して実行
することにより、 真率の変化による処理効率の低下を回避して目的プログ
ラムを生成することができるようにしたものである。
〔従来の技術〕
条件制御を含むループをベクトル計算機上で処理する方
式は一般に複数存在する。例えば、各ベクトル要素に対
して演算を行うかどうかを制御できるマスク付きベクト
ル演Xとベクトル圧縮・伸長命令とをもつベクトル計算
機では、マスク付きベクトル演算を用いる方式とベクト
ル圧縮・伸長命令を用いる方式との二つがある。
表 LOG ICAL (10) DO101=1.10 IP(C(1))^(1)=8(1) 例えば、表に示すFORTRAN言語で記述されたプロ
グラムに対して、マスク付きベクトル演算を用いる方式
では、第2図に示すように、配列Cの値が真である要素
に対応する配列Aと配列Bの要素の加算を行って配列X
の要素に格納する処理を行う。一方、ベクトル圧縮・伸
長命令を用いる方式では、第3図に示すように、配列C
の値が真である要素に対応する配列Aと配列Bの要素を
取り出し、それらを加算した結果を配列Xの配列Cの値
が真である要素に対応する位置に格納する処理を行う。
一般に、条件制御の条件が成立する率である真率に応じ
て各処理方式の処理効率が変化する。例えば、真率が大
きい場合はマスク付きベクトル演算を用いる方式が圧縮
・伸長によるオーバーヘッドがなく、ベクトル圧縮・伸
長命令による方式より処理効率が高い。しかし、真率が
小さい場合はマスク付きベクトル演算を用いる方式では
演算対象となるベクトル要素のうち有効な演算が行われ
る要素の数が少なく、ベクトル圧縮・伸長命令による方
式のほうが処理効率が高くなる。さらに、真率が「0」
に近い場合にはベクトル処理のオーバーヘッドのためベ
クトル化せずにスカラ処理を行ったほうが処理効率が高
くなる。したがって、真率が大きいときはマスク付きベ
クトル演算を用いる方式を、真率が小さいときはベクト
ル圧縮・伸長命令による方式を、真率が「0」に近い場
合にはスカラ処理を選択したほうがよい。
従来例では、コンパイル時に実行時の真率を予測し、適
当と思われる方式を一つだけ選択して目的プログラムを
生成するようにコンパイラに指定していた。
〔発明が解決しようとする問題点〕
しかし、このような従来例では、実行時の実際の真率が
コンパイル時に選択した真率と大きく異なっていた場合
や入力データによって真率が大きく変化する場合には処
理効率が低下する欠点があった。
本発明は、このような欠点を解決するもので、実行時に
真率を求め、その値により最適な方式を選択して実行す
るような目的プログラムを生成するベクトル計算機を提
供することを目的とする。
〔問題点を解決するための手段〕
本発明は、高級言語で表現された原始プログラムを目的
プログラムに変換するコンパイル手段を備えたベクトル
計算機において、原始プログラム中の条件制御を含むル
ープ構造を認識して第一中間テキストを生成する第一解
析手段と、ループ構造中の定義参照関係を調べ、上記第
一解析手段で生成された第一中間テキストのうちベクト
ル処理が可能である中間テキストを選択する第二解析手
段と、実行時のループ繰り返し数に対する条件制御の成
立する処理効率を求め、この値に基づき異なる処理手順
の中から最も高い処理効率の処理手順を選択する中間テ
キスト列に変形した第二中間テキストを上記第二解析手
段で選択された中間テキストに基づき生成する中間テキ
スト変形手段と、この中間テキスト変形手段で生成され
た第二中間テキストに基づき一連のベクトル命令および
スカラ命令を生成する命令生成手段とを備えたことを特
徴とする特 〔作用〕 原始プログラム中の条件制御を含むループ構造を認識し
、中間テキス)Aを生成する。生成された中間テキス)
Aを人力し、ループ構造中の定義参照関係を調べてベク
トル処理可能なものを選択する。選択されたループ構造
の中間テキス)Aを入力し、実行時のループの繰り返し
数に対する条件制御の条件の成立する率を求め、その値
により複数の異なる処理方式の中から最適なものを選択
するような中間テキスト列に条件制御下にある中間テキ
スト列を変形した中間テキス)Bを生成する。生成され
た中間テキス)Bを入力し、一連のベクトル命令および
スカラ命令を生成する。
〔実施例〕
以下、本発明の一実施例について図面を参照して説明す
る。
第1図を参照すると、この実施例は、原始プログラム1
と、ループ構造解析手段3、定義参照関係解析手段4、
中間テキスト変形手段5および命令生成手段6を備えた
コンパイラ2と、目的プログラム7と、中間テキスト八
8と、中間テキストB9とから構成される。すなわち、
この実施例は、高級言語で表現された原始プログラム1
を目的プログラム7に変換するコンパイル手段を備え、
さらに、本発明の特徴とする手段として、原始プログラ
ム1中の条件制御を含むループ構造を認識して第一中間
テキストである中間テキストA8を生成する第一解析手
段であるループ解析手段3と、ループ構造中の定義参照
関係を調べ、上記第一解析手段で生成された第一中間テ
キストのうちベクトル処理が可能である中間テキストを
選択する第二解析手段である定義参照関係解析手段4と
、実行時のループ繰り返し数に対する条件制御の成立す
る処理効率を求め、この値に基づき異なる処理手順の中
から最も高い処理効率の処理手順を選択する中間テキス
ト列に変形した第二中間テキストである中間テキス)B
9を上記第二解析手段で選択された中間テキストに基づ
き生成する中間テキスト変形手段5と、この中間テキス
ト変形手段5で生成された第二中間テキストに基づき一
連のベクトル命令およびスカラ命令を生成する命令生成
手段6とを備える。
次に、この実施例の動作を説明する。コンパイラ2は原
始プログラム1を入力して目的プログラム7を生成する
。このときに、ループ構造解析手段3は原始プログラム
1中の条件制御を含むループ構造を認識して中間テキス
)A8を生成する。
次に、定義参照関係解析手段4はループ構造解析手段3
で認識されたループ構造の中に現れる変数および配列の
定義参照関係を調べ、ベクトル化しても定義参照関係が
保存されるものを選択する。
次に、中間テキスト変形手段5は定義参照関係解析手段
4で選択されたループの中間テキストA8を入力し、条
件制御下にある中間テキスト列を複数の異なる処理方式
によって処理する中間テキスト列と条件制御の条件の真
率とを求め、その値により最適な処理方式を選択する中
間テキスト列からなる中間テキス)B9を生成する。例
えば、マスク付きベクトル演算命令とベクトル圧縮・伸
長命令をもつベクトル計算機に対する目的プログラムを
生成する場合に、マスク付きベクトル演算命令による方
式とベクトル圧縮・伸長命令による方式との処理効率が
等しくなるときの真率をpl、ベクトル圧縮・伸長命令
による方式の処理効率とスカラ処理による処理効率が等
しくなるときの真率をp2としたときに、実行時に式 から真率を求め、その値が01以上のときはマスク付き
ベクトル演算命令による方式を、plより小さくかつp
2より大きい場合はベクトル圧縮・伸長命令による方式
を、p2以下のときはスカラ処理を選択するような中間
テキストに変形する。
最後に、命令生成手段6は中間テキスト変形手段5で生
成された中間テキス)B9を人力し、一連のベクトル命
令およびスカラ命令を生成する。
〔発明の効果〕
本発明は、以上説明したように、条件文を含むループに
対してどんな真率に対しても常に最適な処理方式を選択
して実行するので、実行前には真率が予測できない場合
や入力データにより真率が大きく変化するような場合で
も、処理効率を低下させることな(実行できるような目
的プログラムを生成することができる効果がある。
【図面の簡単な説明】
第1図は本発明実施例の構成を示すブロック構成図。 第2図は表に示すループをマスク付きベクトル演算命令
による方式で処理する場合の説明図。 第3図は表に示すループをベクトル圧縮・伸長命令によ
る方式で処理する場合の説明図。 1・・・原始フログラム、2・・・コンパイラ、3・・
・ループ構造解析手段、4・・・定義参照関係解析手段
、5・・・中間テキスト変形手段、6・・・命令生成手
段、7・・・目的プログラム、8・・・中間テキストA
、9・・・中間テキストB0 実施例の構成 第1図

Claims (1)

  1. 【特許請求の範囲】 1、高級言語で表現された原始プログラムを目的プログ
    ラムに変換するコンパイル手段を備えたベクトル計算機
    において、 原始プログラム中の条件制御を含むループ構造を認識し
    て第一中間テキストを生成する第一解析手段と、 ループ構造中の定義参照関係を調べ、上記第一解析手段
    で生成された第一中間テキストのうちベクトル処理が可
    能である中間テキストを選択する第二解析手段と、 実行時のループ繰り返し数に対する条件制御の成立する
    処理効率を求め、この値に基づき異なる処理手順の中か
    ら最も高い処理効率の処理手順を選択する中間テキスト
    列に変形した第二中間テキストを上記第二解析手段で選
    択された中間テキストに基づき生成する中間テキスト変
    形手段と、この中間テキスト変形手段で生成された第二
    中間テキストに基づき一連のベクトル命令およびスカラ
    命令を生成する命令生成手段と を備えたことを特徴とするベクトル計算機。
JP1248366A 1989-09-25 1989-09-25 ベクトル計算機 Pending JPH03110670A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1248366A JPH03110670A (ja) 1989-09-25 1989-09-25 ベクトル計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1248366A JPH03110670A (ja) 1989-09-25 1989-09-25 ベクトル計算機

Publications (1)

Publication Number Publication Date
JPH03110670A true JPH03110670A (ja) 1991-05-10

Family

ID=17177032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1248366A Pending JPH03110670A (ja) 1989-09-25 1989-09-25 ベクトル計算機

Country Status (1)

Country Link
JP (1) JPH03110670A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265606A (ja) * 2000-01-13 2001-09-28 Fujitsu Ltd 情報処理装置
WO2014064798A1 (ja) * 2012-10-25 2014-05-01 富士通株式会社 実行制御方法及び情報処理装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265606A (ja) * 2000-01-13 2001-09-28 Fujitsu Ltd 情報処理装置
JP4579425B2 (ja) * 2000-01-13 2010-11-10 富士通株式会社 情報処理装置
WO2014064798A1 (ja) * 2012-10-25 2014-05-01 富士通株式会社 実行制御方法及び情報処理装置
EP2913761A4 (en) * 2012-10-25 2016-06-15 Fujitsu Ltd EXECUTION CONTROL METHOD AND INFORMATION PROCESSING DEVICE
JPWO2014064798A1 (ja) * 2012-10-25 2016-09-05 富士通株式会社 実行制御方法及び情報処理装置
US9459852B2 (en) 2012-10-25 2016-10-04 Fujitsu Limited Execution control method and information processing apparatus

Similar Documents

Publication Publication Date Title
JP4077252B2 (ja) コンパイラプログラムおよびコンパイル処理方法
US6571385B1 (en) Early exit transformations for software pipelining
JPH10228382A (ja) コンパイル方式
US5522074A (en) Vectorization system for vectorizing loop containing condition induction variables
Anantharaman et al. A hardware accelerator for speech recognition algorithms
JPH03110670A (ja) ベクトル計算機
JPH05189472A (ja) コンパイラのベクトル化処理方式
JPH0594470A (ja) ベクトル化方式
US5437035A (en) Method and apparatus for compiling a program incending a do-statement
JP2748582B2 (ja) コンパイル処理装置
JP2674489B2 (ja) ベクトル化処理装置
JP2018049461A (ja) コンパイル装置、コンパイル方法、および、コンパイルプログラム
JPH04233037A (ja) インライン展開処理装置
JPH0440742B2 (ja)
JPH05324346A (ja) ベクトル化方式
JPH0241562A (ja) ベクトル演算列分割処理方式
JPH04343140A (ja) コンパイラの最適化処理方法
JPH08263298A (ja) コンパイラ装置
JPS63159979A (ja) ベクトル演算における共通演算削除処理方式
JPH07121508A (ja) ループのベクトル化装置
JP2007233805A (ja) プログラム変換システム
JPH0713962A (ja) コンパイラ装置
JPS63239535A (ja) アレイプロセツサのプログラミング方式
JPH0367363A (ja) ベクトル演算列アンローリング処理方式
JPH0269867A (ja) ベクトル化方式