JPH0512752B2 - - Google Patents

Info

Publication number
JPH0512752B2
JPH0512752B2 JP59154484A JP15448484A JPH0512752B2 JP H0512752 B2 JPH0512752 B2 JP H0512752B2 JP 59154484 A JP59154484 A JP 59154484A JP 15448484 A JP15448484 A JP 15448484A JP H0512752 B2 JPH0512752 B2 JP H0512752B2
Authority
JP
Japan
Prior art keywords
vector
length
registers
register
store
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
Application number
JP59154484A
Other languages
English (en)
Other versions
JPS6133547A (ja
Inventor
Takahiro Ishitani
Yukio Kamya
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 JP15448484A priority Critical patent/JPS6133547A/ja
Publication of JPS6133547A publication Critical patent/JPS6133547A/ja
Publication of JPH0512752B2 publication Critical patent/JPH0512752B2/ja
Granted legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
〔産業上の利用分野〕 本発明は、ベクトル・プロセツサを使用する命
令列を含むロード・モジユールを実行する過程に
おいて、ベクトル・レジスタのベクトル長又はベ
クトル・レジスタの個数が不足するためにベクト
ル・データのロード及びストアが発生したときに
は、その旨を発生場所を示す情報と共に表示する
ようにしたベクトル・レジスタのオーバフロー情
報通知方式に関するものである。 〔従来技術と問題点〕 第5図はスカラ・ユニツトとベクトル・ユニツ
トとを具備する計算機システムの概要を示す図で
ある。第5図において、1はスカラ・ユニツト、
2はベクトル・ユニツト、3は主メモリ、4と5
は演算パイプライン、6はロード/ストア・パイ
プライン、7はベクトル・レジスタをそれぞれ示
している。スカラ・ユニツト1は、通常の汎用計
算機である。ベクトル・ユニツト2は、演算パイ
プライン4と5、ロード/ストア・パイプライン
6及びベクトル・レジスタ7を有している。演算
パイプライン4は、加減算や乗算、除算などを行
うものであり、ロード/ストア・パイプライン6
は、ベクトル・レジスタ7と主メモリ3との間の
データ転送を司るものである。ベクトル・レジス
タ7は、物理的には32個のエレメントより成る
256個のベクトル・レジスタから構成ささている
が、理論的にはベクトル・レジスタの長さは可変
である。例えば、ベクトル長を1024と指定した場
合にはベクトル・レジスタの個数は8となり、ベ
クトル長を512と指定した場合にはベクトル・レ
ジスタの個数は16となる。 第6図は、ソース・プログラムからロード・モ
ジユールを作成するための過程を示す図である。
ソース・プログラムをコンパイルしてオブジエク
ト・モジユールを作成し、複数のオブジエクト・
モジユールをリンケージ(結合編集)してロー
ド・モジユールを作成し、ロード・モジユールを
実行する。 最近、フオートランのソース・プログラムをコ
イパイルする場合、DOループの部分をベクトル
命令列にコンパイルし、ベクトル命令列をベクト
ル・ユニツト(第5図参照)で実行させることが
行われている。DOループをベクトル命令列にコ
ンパイルする際、ベクトル・レジスタ長及びベク
トル・レジスタの個数を命令で指定するが、ベク
トル・レジスタ長が実際のベクトル・データ長よ
りも短い場合又はベクトル・データの個数がベク
トル・レジスタの個数より大きい場合には、ベク
トル・レジスタと主メモリとの間でデータのロー
ド/ストアが余分に発生する。この余分なロー
ド/ストアが発生すると、処理速度が低下する
が、ユーザは何故に期待した程度の処理速度が得
られないのか、その原因を知ることが出来ない。 〔発明の目的〕 本発明は、上記の考案に基づくものであつて、
ベクトル・レジスタ上にベクトル・データが収ま
りきらないことに起因して主メモリとベクトル・
レジスタとの間で余分なロード/ストアが発生す
るとき、その旨を使用者に通知するようになつた
ベクトル・レジスタのオーバフロー情報通知方式
を提供することを目的としている。 〔目的を達成するための手段〕 そしてそのため、本発明のベクトル・レジスタ
のオーバフロー情報通知方式は、ソース・プログ
ラム中のDOループについてベクトル化の可否を
チエツクし、ベクトル化が可の場合には当該DO
ループをベクトル命令列に翻訳するようになつた
コンパイル方式において、翻訳時に、DOループ
を翻訳して得られるベクトル命令を実行するに際
にベクトル・レジスタの個数又はベクトル・レジ
スタ長の不足に起因してベクトル・レジスタに対
する余分なロードおよびストアが生ずる可能性が
あるか否かをチエツクし、生ずる可能性がある場
合には、DOループの直前に、実行時に余分なロ
ード/ストアが発生するか否かをチエツクし、発
生した場合には、余分なロード/ストアの発生を
使用者に通知するためのプログラムを挿入するよ
うにしたことを特徴とするものである。 〔発明の実施例〕 以下、本発明の実施例を図面を参照しつつ説明
する。 第1図は本発明による翻訳時の情報収集処理の
流れを示す図である。 翻訳時オプシヨンのチエツクを行う。 VROFC(VR Overflow Check)の有無を調
べる。有のときはの処理を行い、無のときは
終了とする。 DOループの取り出しを行う。 DOループの有無を調べる。有のときはの
処理を行い、無のときは終了とする。 DOループのベクトル化可否をチエツクす
る。可の場合はの処理を行い、不可の場合に
はの処理に戻る。 ベクトル・レジスタの必要個数をチエツクす
る。 余分なロード/ストアの発生がありか、なし
かを調べる。ありのときはの処理を行い、な
しのときはの処理に戻る。 第2図は第1図のの処理の詳細を示す図であ
る。第1図のの処理は下記のようにして行われ
る。 DOループ内で使用しているデータを取り出
す。 各データの定義点及び参照点を取り出す。 データのビジーの範囲を調べる。第3図はデ
ータのビジー範囲の例を示すものである。デー
タのビジー範囲とは、データが最初に定義、参
照されてから最後に参照されるまでの区間を意
味している。 最大ビジー数を求め、必要なベクトル・レジ
スタの個数を決定する。第3図の例では最大ビ
ジー数は5であり、必要個数は5個である。 ループ回転数(ベクトル長に等しい)を取り
出す。なお、ベクトル長はVLで表される。 最大ベクトル長が陽に分かるか否かを調べ
る。陽に分かるときはの処理を行い、陽に分
からないときはの処理を行う。 ベクトル長が「陽に分かる」とは、コンパイラ
がFortranソースプログラムを翻訳する際に、実
際のベクトル長が分かるかどうかで、分かる場合
を「陽に分かる」と言う。ベクトル長が以下のよ
うに定数で与えられる場合は、ベクトル長が翻訳
時に分かることになる。 〔例1〕 陽に分かるケース DIMENSION A(100),B(100),C(100) 〔省略〕 DO 100 I=1,100 A(I)=B(I)+C(I) 100 CONTINUE 〔以下略〕 ベクトル長が定数(下線部)で与えられてる
ため、翻訳時に100であることが分かる。 〔例2〕 陽に分かるケース PRAMETER(L=100) DIMESION A(100),B(100),C(100) 〔省略〕 DO 100 I=1,L A(I)=B(I)+C(I) 100 CONTINUE 〔以下略〕 ベクトル長(L)がパラメータ文で与えられてい
るため、翻訳時に分かる。 〔例3〕 陽に分からないケース SUBROUTINE ABC (A,B,C,) DIMENSION A(*),B(*),C(*) 〔省略〕 DO 100 I=1,L A(I)=B(I)+C(I) 100 CONTINUE 〔以下略〕 ベクトル長(L)が引数で与えられるため、翻訳
時にはベクトル長は分からない。この場合は、実
行時に本サブルーチンが呼び出された時点で、始
めてベクトル長が分かる。 陽に分る最大ベクトル長より大きいか等しい
最小のエレメント数を表1よりみつけ、それに
対応するベクトル・レジスタ個数を求め、で
求めた必要レジスタ個数を比較する。前者が後
者より小である場合には不足とし、前者が後者
以上である場合には足りるとする。足りるとき
には、の処理を行い、不足のときはの処理
を行う。 必要レジスタ個数等と、もし分かれば最大レ
ジスタ長とから判断して最適と思われるレジス
タ構成を表1から選ぶ。この時のレジスタ個数
を最適個数と呼び、これを必要レジスタ個数と
比較する。基本的には以下の手順により最適と
思われるレジスタ構成の把握が可能である。 DOループ内の演算を行うために、同時に
必要なレジスタ個数を把握する。 もし、レジスタ構成として、長さ512×8
個、長さ256×16個、長さ128個×32個、長さ
64×64、長さ32×128個の組合せが可能なマ
シンにおいて、レジスタ必要個数が32個以下
の場合は、その個数より大きい8,16,32の
個数のレジスタ構成を採用する。 もし、当該マシンにおいて32を越える個数
のレジスタが必要な場合には、実行時のレジ
スタ内容の一部をメモリにセーブし、レジス
タを再利用することによる実行速度低下と、
64個以上の構成(長さが短くなる)にしたこ
とによる速度低下を経験データを基に比較
し、速い方を採用する。これは、当該マシン
においてベクトル長が128個未満では種々の
オーバヘツドにより計算速度が十分でないた
めである。
〔発明の効果〕
以上の説明から明らかなように、本発明によれ
ば、ベクトル・レジスタのオーバフローが発生し
た時、オーバフロー発生場所を使用者に通知出来
るので、性能のよいプログラムを作成するための
有力な情報を使用者に提供することが出来る。
【図面の簡単な説明】
第1図は本発明による翻訳時の情報収集処理の
流れを示す図、第2図は第1図のの処理の詳細
を説明する図、第3図はデータのビジー範囲を示
す図、第4図はVLCHKによつて実行されるベク
トル長チエツク及び情報出力処理の流れを示す
図、第5図はスカラ・ユニツトとベクトル・ユニ
ツトとを具備する計算機システムの概要を示す
図、第6図はソース・プログラムからロード・モ
ジユールを作成するための過程を示す図である。 1……スカラ・ユニツト、2……ベクトル・ユ
ニツト、3……主メモリ、4と5……演算パイプ
ライン、6……ロード/ストア・パイプライン、
7……ベクトル・レジスタ。

Claims (1)

    【特許請求の範囲】
  1. 1 ソース・プログラム中のDOループについて
    ベクトル化の可否をチエツクし、ベクトル化が可
    の場合には当該DOループをベクトル命令列に翻
    訳するようになつたコンパイル方式において、翻
    訳時に、DOループを翻訳して得られるベクトル
    命令を実行するに際にベクトル・レジスタの個数
    又はベクトル・レジスタ長の不足に起因してベク
    トル・レジスタに対する余分なロードおよびスト
    アが生ずる可能性があるか否かをチエツクし、生
    ずる可能性がある場合には、DOループの直前
    に、実行時に余分なロード/ストアが発生するか
    否かをチエツクし、発生した場合には、余分なロ
    ード/ストアの発生を使用者に通知するためのプ
    ログラムを挿入するようにしたことを特徴とする
    ベクトル・レジスタのオーバフロー情報通知方
    式。
JP15448484A 1984-07-25 1984-07-25 ベクトル・レジスタのオ−バフロ−情報通知方式 Granted JPS6133547A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15448484A JPS6133547A (ja) 1984-07-25 1984-07-25 ベクトル・レジスタのオ−バフロ−情報通知方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15448484A JPS6133547A (ja) 1984-07-25 1984-07-25 ベクトル・レジスタのオ−バフロ−情報通知方式

Publications (2)

Publication Number Publication Date
JPS6133547A JPS6133547A (ja) 1986-02-17
JPH0512752B2 true JPH0512752B2 (ja) 1993-02-18

Family

ID=15585250

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15448484A Granted JPS6133547A (ja) 1984-07-25 1984-07-25 ベクトル・レジスタのオ−バフロ−情報通知方式

Country Status (1)

Country Link
JP (1) JPS6133547A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2795332B2 (ja) * 1992-08-24 1998-09-10 日本電気株式会社 ループ処理誤り検出装置
JP5310002B2 (ja) * 2009-01-07 2013-10-09 株式会社明電舎 ソフトウェアの開発支援システム、開発支援方法およびプログラム
EP3125109B1 (en) 2015-07-31 2019-02-20 ARM Limited Vector length querying instruction

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57109085A (en) * 1980-12-26 1982-07-07 Fujitsu Ltd System for optimizing object program of parallel computer
JPS58149565A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd ベクトル・レングス制御範囲分割処理方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57109085A (en) * 1980-12-26 1982-07-07 Fujitsu Ltd System for optimizing object program of parallel computer
JPS58149565A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd ベクトル・レングス制御範囲分割処理方式

Also Published As

Publication number Publication date
JPS6133547A (ja) 1986-02-17

Similar Documents

Publication Publication Date Title
Ramamoorthy et al. A high-level language for horizontal microprogramming
Van Praet et al. Instruction set definition and instruction selection for ASIPs
US8549501B2 (en) Framework for generating mixed-mode operations in loop-level simdization
US6289505B1 (en) Method, apparatus and computer programmed product for binary re-optimization using a high level language compiler
US7877741B2 (en) Method and corresponding apparatus for compiling high-level languages into specific processor architectures
JP2921190B2 (ja) 並列実行方式
US7181730B2 (en) Methods and apparatus for indirect VLIW memory allocation
KR101293701B1 (ko) 코어스 그레인드 재구성 어레이에서의 중첩 루프문 수행 장치 및 그 방법
EP0742518B1 (en) Compiler and processor for processing loops at high speed
US20030126589A1 (en) Providing parallel computing reduction operations
JPH0512752B2 (ja)
Pol et al. Trimedia CPU64 application development environment
Tanaka et al. A code selection method for SIMD processors with PACK instructions
JP3887097B2 (ja) コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体
JPS62204374A (ja) 2倍演算最適化処理方式
JPS63155264A (ja) ベクトル計算機用言語チユ−ニング処理方式
JP2865694B2 (ja) コンパイル方法
JPS63276127A (ja) ダイナミック命令生成方式
Williams et al. How useful are complex instructions? A case study using the M68000
JPH05342012A (ja) コンパイル方法およびコンパイラ
Johnstone et al. Reverse compilation for Digital Signal Processors: a working example
JPH054712B2 (ja)
JP3018783B2 (ja) コンパイル方式
Shin et al. Identification of microprogrammable loops for problem oriented architecture synthesis
JPH0241562A (ja) ベクトル演算列分割処理方式