JPS6133547A - ベクトル・レジスタのオ−バフロ−情報通知方式 - Google Patents

ベクトル・レジスタのオ−バフロ−情報通知方式

Info

Publication number
JPS6133547A
JPS6133547A JP15448484A JP15448484A JPS6133547A JP S6133547 A JPS6133547 A JP S6133547A JP 15448484 A JP15448484 A JP 15448484A JP 15448484 A JP15448484 A JP 15448484A JP S6133547 A JPS6133547 A JP S6133547A
Authority
JP
Japan
Prior art keywords
vector
loop
registers
vector register
register
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.)
Granted
Application number
JP15448484A
Other languages
English (en)
Other versions
JPH0512752B2 (ja
Inventor
Takahiro Ishitani
石谷 隆広
Yukio Kamiya
幸男 神谷
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)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ベクトル・プロセッサを使用する命令列を含
むロード・モジュールを実行する過程において、ベクト
ル・レジスタのベクトル長又はベクトル・レジスタめ個
数が不足するためにベクトル・データのロード及びスト
アが発生したときには、その旨を発生場所を示す情報と
共に表示するようにしたベクトル・レジスタのオーバフ
ロー情報通知方式に関するものである。
(従来技術と問題点) 第stmctスカラ・ユニットとベクトル・ユニットと
を具備する計算機システムの概要を示す図である。第5
図において、lはスカシ・ユニット、′2はベクトル・
ユニット、3は主メモリ、4と5は演算パイプライン、
6はロード/ストア・パイプライン、7はベクトル・レ
ジスタをそれぞれ示している。スカシ・ユニットlは、
通常の汎用針算概である。ベクトル・ユニット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図は本発明による翻訳時の情報収集処理の流れを示
す図である。
■ 翻訳時オプションのチェックを行う。
■ V ROF C(VROverflow Chec
k )の有無を調べる。有のときは■の処理を行い、無
のときは終了とする。
■ DO小ループ取り出しを行う。
■ DO小ループ有無を調べる。有のときは■の処理を
行い、無のときは終了とする。
■■ DO小ループベクトル化可否をチェックする。可
の場合は■の処理を行い、不可の場合には■の処理に戻
る。
■ ベクトル・レジスタの必要個数をチェックする。
■ 余分なロード/ストアの発生がありか1、なしかを
調べる。ありのときは■の処理を行い、なしのときはΦ
の処理に戻る。
第2図は第1図の■の処理の詳細を示す図である。第1
図の■の処理は下記のようにして行われる。
■ DOループ内で使用しているデータを取り出す。
■ 各データの定義点及び参照点を取り出す。
■ データのビジーの範囲を調べる。第3図はデータの
ビジー範囲の例を示すものである。データのビジー範囲
とは、データが最初に定義、参照されてから最後に参照
されるまでの区間を意味している。
■ 最大ビジー数を求め、必要なベクトル・レジスタの
個数を決定する。第3図の例では最大ビジー数は5であ
り、必要個数は5個である。
■ ループ回転数(ベクトル長に等しい)を取り出す。
なお、ベクトル長はVLで表される。
■ 最大ベクトル長が陽に分かるか否かを調べる。
陽に分かるときは■の処理を行い、陽に分からないとき
には■の処理を行う。
■ 陽に分る最大ベクトル長より大きいか等しい最小の
エレメント数を表1よりみつけ、それに対応するベクト
ル・レジスタ個数を求め、■で求めた必要レジスタ個数
と比較する。前者が後者より小である場合には不足とし
、前者が後者以上である場合には足りるとする。足りる
ときには、■の処理を行い、不足のときは■の処理を行
う。
■ 必要レジスタ個数等と、もし分かれば最大レジスタ
長とから判断して最適と思われるレジスタ構成を表1か
ら選ぶ。この時のレジスタ個数を最適個数と呼び、これ
を必要レジスタ個数と比較する。
表1 ベクトル・レジスタの構成 ■ 最適個数が必要レジスタ個数以上であるか否かを調
べる。以上のときはGの処理を行い、より小さいときに
はヒ、ヒ  の処理を行う。
電 レジスタ個数が足りたことを示すためレジスタ個数
チェック・フラッグ(=FLAG)を1とする。
員 レジスタ個数が不足していることを示すため、FL
AGを2とする。
ぽ レジスタ個数の不足を補うため、余分なロード/ス
トアが発生していることを通知する。
[相] 余分なロード/ストア発生の可能性ありとされ
る。FLAGと最適個数をXとして記憶する。
第1図の■の処理でロード/ストア発生ありとされた場
合には、ロード/ストア発生ありとされたDOループに
対して下記のCALL文をDOループの直前に挿入する
CALL VLCHK CVL、X、FLAG、’na
me”、No)なお、VLCHKはベクトル長チェック
用のオブジェクト・モジュールを意味している。ただし
Ynase’はサブプログラム名を表す文字列であり、
NOはno小ループ端の文番号を値として持つ。
第4図はVLCHKで実行されるベクトル長チェック及
び情報出力処理の流れを示す図である。
なお、VLCHKは実行時ライブラリに予め登録されて
いる。
■ レジスタ個数Xのときのレジスタ容量(エレメント
数)R,を計算する。RXは1024 X 8÷Xで計
算される。
■ レジスタ個数チェック・フラグをチェックする。F
LAG=1ならば■の処理を行い、FALG=2ならば
■■の処理を行う。
[相] ベクトル長VLとRXとを比較する。VLが(
j RIEより大のときは、■C処理を行う。      
      〜Φ VLが長いために、余分なロード/
ストアが発生した旨を表示する。この際、サブプログラ
ム名及びDOループ終端の文番号等を通知する。
■ レジスタ個数不足のために、余分なロード/ストア
が発生した旨を表示する。この際も、サブプログラム名
及びDOループ終端の文番号等を通知する。
■ R,lと最小レジスタ容量と比較する。RXが一最
小レジスタ容量より大きければ■の処理を行う。
■ VLとRX /2と比較する。VLがRx / 2
ならば■の処理を行う。
■ 翻訳時にVLの最大値をコンパイラに教えれば、余
分なロード/ストアを省略できる可能性がある旨を通知
する。
なお、使用者は、ロード/ストアの発生が通知されたと
き、必要があればソース・プログラムを書き直す。
〔発明の効果〕
以上の説明から明らかなように、本発明によれば、ベク
トル・レジスタのオーバフローが発生した時、オーバフ
ロー発生場所を使用者に通知出来るので、性能のよいプ
ログラムを作成するための有力な情報を使用者に提供す
ることが出来る。
【図面の簡単な説明】
第1図は本発明による翻訳時の情報収集処理の流れを示
す図、第2図は第1図の■の処理の詳細を説明する図、
第3図はデータのビジー範囲を示す図、第4図はVLC
HKによって実行されるベクトル長チェック及び情報出
力処理の流れを示す図、第5図はスカラ・ユニットとベ
クトル・ユニットとを具備する計算機システムの概要を
示す図、第6図はソース・プログラムからロード・モジ
ュールを作成するための過程を示す図である。 1・・・スカラ・ユニット、2・・・ベクトル・ユニッ
ト、3・・・主メモリ、4と5・・・演算ノぐイブライ
ン、6・・・ロード/ストア・パイプライン、7・・・
ベクトル・レジスタ。

Claims (1)

    【特許請求の範囲】
  1. ソース・プログラム中のDOループについてベクトル化
    の可否をチエツクし、ベクトル化が可の場合には当該D
    Oループをベクトル命令列に翻訳するようになつたコン
    パイル方式において、翻訳時に、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 true JPS6133547A (ja) 1986-02-17
JPH0512752B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675816A (ja) * 1992-08-24 1994-03-18 Nec Corp ループ処理誤り検出装置
JP2010160594A (ja) * 2009-01-07 2010-07-22 Meidensha Corp ソフトウェアの開発支援システム、開発支援方法およびプログラム
JP2018521422A (ja) * 2015-07-31 2018-08-02 エイアールエム リミテッド ベクトル長クエリ命令

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 ベクトル・レングス制御範囲分割処理方式

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675816A (ja) * 1992-08-24 1994-03-18 Nec Corp ループ処理誤り検出装置
JP2010160594A (ja) * 2009-01-07 2010-07-22 Meidensha Corp ソフトウェアの開発支援システム、開発支援方法およびプログラム
JP2018521422A (ja) * 2015-07-31 2018-08-02 エイアールエム リミテッド ベクトル長クエリ命令
US11314514B2 (en) 2015-07-31 2022-04-26 Arm Limited Vector length querying instruction

Also Published As

Publication number Publication date
JPH0512752B2 (ja) 1993-02-18

Similar Documents

Publication Publication Date Title
KR100505799B1 (ko) 코프로세서 데이터 액세스 제어
US7386844B2 (en) Compiler apparatus and method of optimizing a source program by reducing a hamming distance between two instructions
US8893095B2 (en) Methods for generating code for an architecture encoding an extended register specification
US6301653B1 (en) Processor containing data path units with forwarding paths between two data path units and a unique configuration or register blocks
US6401190B1 (en) Parallel computing units having special registers storing large bit widths
EP0675450A2 (en) Array processor for intensive numeric computation
KR100500889B1 (ko) 데이터 처리장치에서의 레지스터 어드레싱
CN101495959A (zh) 组合微处理器内的多个寄存器单元的方法和系统
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
US7013321B2 (en) Methods and apparatus for performing parallel integer multiply accumulate operations
US5333284A (en) Repeated ALU in pipelined processor design
US20110191755A1 (en) Method and apparatus providing COBOL decimal type arithmetic functions with improved performance
US5987597A (en) Data processor with execution control for first and second execution units
US5974531A (en) Methods and systems of stack renaming for superscalar stack-based data processors
KR20000048528A (ko) 데이터 처리 조건 코드 플래그
KR20000048529A (ko) 데이터 처리장치의 레지스터 제어
Hong et al. The design of the SACLIB/PACLIB kernels
JP3175768B2 (ja) 複合型命令スケジューリング処理装置
Shaw et al. Performance tuning scientific codes for dataflow execution.
Ling A set of high-performance level 3 BLAS structured and tuned for the IBM 3090 VF and implemented in Fortran 77
JPH0512752B2 (ja)
JP2023063815A (ja) コンパイラ装置、命令生成方法、プログラム、コンパイル方法及びコンパイラプログラム
JP7006097B2 (ja) コード生成装置、コード生成方法及びコード生成プログラム
Moraes et al. R8 Processor Architecture and Organization Specification and Design Guidelines
JP2862969B2 (ja) プロセッサ