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
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となる。
を具備する計算機システムの概要を示す図である。第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小ループ部分をベクトル命令列にコンパ
イルし、ベクトル命令列をベクトル・ユニット(第5図
参照)で実行させることが行われている。DO小ループ
ベクトル命令列にコンパイルする際、ベクトル・レジス
タ長及びベクトル・レジスタの個数を命令で指定するが
、ベクトル・レジスタ長が実際のベクトル・データ長よ
りも短い場合又はベクトル・データの個数がベクトル・
レジスタの個数より大きい場合には、ベクトル・レジス
タと主メモリとの間でデータのロード/ストアが余分に
発生する。この余分なロード/ストアが発生すると、処
理速度が低下するが、ユーザは何故に期待した程度の処
理速度が得られないのか、その原因を知ることが出来な
い。
本発明は、上記の考察に基づ(ものであって、ベクトル
・レジスタ上にベクトル・データが収まりきらないこと
に起因して主メモリとベクトル・レジスタとの間で余分
なロード/ストアが発生するとき、その旨を使用者に通
知するようになったベクトル・レジスタのオーバフロー
情報通知方式を提供することを目的としている。
・レジスタ上にベクトル・データが収まりきらないこと
に起因して主メモリとベクトル・レジスタとの間で余分
なロード/ストアが発生するとき、その旨を使用者に通
知するようになったベクトル・レジスタのオーバフロー
情報通知方式を提供することを目的としている。
そしてそのため、本発明のベクトル・レジスタのオーバ
フロー情報通知方式は、ソース・プログラム中のDO小
ループついてベクトル化の可否をチェックし、・ベクト
ル化が可の場合には当該DOループをベクトル命令列に
翻訳するようになったコンパイル方式において、翻訳時
に、DO小ループ翻訳して得られるベクトル命令列を実
行する際にベクトル・レジスタの個数又はベクトル・レ
ジスタ長の不足に起因してベクトル・レジスタに対する
余分なロードおよびストアが生じるか否かをチェックし
、生ずる場合には、DO小ループ直前にロード/ストア
の発生を使用者に通知するためのプログラムを挿入する
ようにしたことを特徴とするものである。
フロー情報通知方式は、ソース・プログラム中のDO小
ループついてベクトル化の可否をチェックし、・ベクト
ル化が可の場合には当該DOループをベクトル命令列に
翻訳するようになったコンパイル方式において、翻訳時
に、DO小ループ翻訳して得られるベクトル命令列を実
行する際にベクトル・レジスタの個数又はベクトル・レ
ジスタ長の不足に起因してベクトル・レジスタに対する
余分なロードおよびストアが生じるか否かをチェックし
、生ずる場合には、DO小ループ直前にロード/ストア
の発生を使用者に通知するためのプログラムを挿入する
ようにしたことを特徴とするものである。
以下、本発明の実施例を図面を参照しつつ説明する。
第1図は本発明による翻訳時の情報収集処理の流れを示
す図である。
す図である。
■ 翻訳時オプションのチェックを行う。
■ V ROF C(VROverflow Chec
k )の有無を調べる。有のときは■の処理を行い、無
のときは終了とする。
k )の有無を調べる。有のときは■の処理を行い、無
のときは終了とする。
■ DO小ループ取り出しを行う。
■ DO小ループ有無を調べる。有のときは■の処理を
行い、無のときは終了とする。
行い、無のときは終了とする。
■■ DO小ループベクトル化可否をチェックする。可
の場合は■の処理を行い、不可の場合には■の処理に戻
る。
の場合は■の処理を行い、不可の場合には■の処理に戻
る。
■ ベクトル・レジスタの必要個数をチェックする。
■ 余分なロード/ストアの発生がありか1、なしかを
調べる。ありのときは■の処理を行い、なしのときはΦ
の処理に戻る。
調べる。ありのときは■の処理を行い、なしのときはΦ
の処理に戻る。
第2図は第1図の■の処理の詳細を示す図である。第1
図の■の処理は下記のようにして行われる。
図の■の処理は下記のようにして行われる。
■ DOループ内で使用しているデータを取り出す。
■ 各データの定義点及び参照点を取り出す。
■ データのビジーの範囲を調べる。第3図はデータの
ビジー範囲の例を示すものである。データのビジー範囲
とは、データが最初に定義、参照されてから最後に参照
されるまでの区間を意味している。
ビジー範囲の例を示すものである。データのビジー範囲
とは、データが最初に定義、参照されてから最後に参照
されるまでの区間を意味している。
■ 最大ビジー数を求め、必要なベクトル・レジスタの
個数を決定する。第3図の例では最大ビジー数は5であ
り、必要個数は5個である。
個数を決定する。第3図の例では最大ビジー数は5であ
り、必要個数は5個である。
■ ループ回転数(ベクトル長に等しい)を取り出す。
なお、ベクトル長はVLで表される。
■ 最大ベクトル長が陽に分かるか否かを調べる。
陽に分かるときは■の処理を行い、陽に分からないとき
には■の処理を行う。
には■の処理を行う。
■ 陽に分る最大ベクトル長より大きいか等しい最小の
エレメント数を表1よりみつけ、それに対応するベクト
ル・レジスタ個数を求め、■で求めた必要レジスタ個数
と比較する。前者が後者より小である場合には不足とし
、前者が後者以上である場合には足りるとする。足りる
ときには、■の処理を行い、不足のときは■の処理を行
う。
エレメント数を表1よりみつけ、それに対応するベクト
ル・レジスタ個数を求め、■で求めた必要レジスタ個数
と比較する。前者が後者より小である場合には不足とし
、前者が後者以上である場合には足りるとする。足りる
ときには、■の処理を行い、不足のときは■の処理を行
う。
■ 必要レジスタ個数等と、もし分かれば最大レジスタ
長とから判断して最適と思われるレジスタ構成を表1か
ら選ぶ。この時のレジスタ個数を最適個数と呼び、これ
を必要レジスタ個数と比較する。
長とから判断して最適と思われるレジスタ構成を表1か
ら選ぶ。この時のレジスタ個数を最適個数と呼び、これ
を必要レジスタ個数と比較する。
表1 ベクトル・レジスタの構成
■ 最適個数が必要レジスタ個数以上であるか否かを調
べる。以上のときはGの処理を行い、より小さいときに
はヒ、ヒ の処理を行う。
べる。以上のときはGの処理を行い、より小さいときに
はヒ、ヒ の処理を行う。
電 レジスタ個数が足りたことを示すためレジスタ個数
チェック・フラッグ(=FLAG)を1とする。
チェック・フラッグ(=FLAG)を1とする。
員 レジスタ個数が不足していることを示すため、FL
AGを2とする。
AGを2とする。
ぽ レジスタ個数の不足を補うため、余分なロード/ス
トアが発生していることを通知する。
トアが発生していることを通知する。
[相] 余分なロード/ストア発生の可能性ありとされ
る。FLAGと最適個数をXとして記憶する。
る。FLAGと最適個数をXとして記憶する。
第1図の■の処理でロード/ストア発生ありとされた場
合には、ロード/ストア発生ありとされたDOループに
対して下記のCALL文をDOループの直前に挿入する
。
合には、ロード/ストア発生ありとされたDOループに
対して下記のCALL文をDOループの直前に挿入する
。
CALL VLCHK CVL、X、FLAG、’na
me”、No)なお、VLCHKはベクトル長チェック
用のオブジェクト・モジュールを意味している。ただし
Ynase’はサブプログラム名を表す文字列であり、
NOはno小ループ端の文番号を値として持つ。
me”、No)なお、VLCHKはベクトル長チェック
用のオブジェクト・モジュールを意味している。ただし
Ynase’はサブプログラム名を表す文字列であり、
NOはno小ループ端の文番号を値として持つ。
第4図はVLCHKで実行されるベクトル長チェック及
び情報出力処理の流れを示す図である。
び情報出力処理の流れを示す図である。
なお、VLCHKは実行時ライブラリに予め登録されて
いる。
いる。
■ レジスタ個数Xのときのレジスタ容量(エレメント
数)R,を計算する。RXは1024 X 8÷Xで計
算される。
数)R,を計算する。RXは1024 X 8÷Xで計
算される。
■ レジスタ個数チェック・フラグをチェックする。F
LAG=1ならば■の処理を行い、FALG=2ならば
■■の処理を行う。
LAG=1ならば■の処理を行い、FALG=2ならば
■■の処理を行う。
[相] ベクトル長VLとRXとを比較する。VLが(
j RIEより大のときは、■C処理を行う。
〜Φ VLが長いために、余分なロード/
ストアが発生した旨を表示する。この際、サブプログラ
ム名及びDOループ終端の文番号等を通知する。
j RIEより大のときは、■C処理を行う。
〜Φ VLが長いために、余分なロード/
ストアが発生した旨を表示する。この際、サブプログラ
ム名及びDOループ終端の文番号等を通知する。
■ レジスタ個数不足のために、余分なロード/ストア
が発生した旨を表示する。この際も、サブプログラム名
及び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・・・
ベクトル・レジスタ。
す図、第2図は第1図の■の処理の詳細を説明する図、
第3図はデータのビジー範囲を示す図、第4図はVLC
HKによって実行されるベクトル長チェック及び情報出
力処理の流れを示す図、第5図はスカラ・ユニットとベ
クトル・ユニットとを具備する計算機システムの概要を
示す図、第6図はソース・プログラムからロード・モジ
ュールを作成するための過程を示す図である。 1・・・スカラ・ユニット、2・・・ベクトル・ユニッ
ト、3・・・主メモリ、4と5・・・演算ノぐイブライ
ン、6・・・ロード/ストア・パイプライン、7・・・
ベクトル・レジスタ。
Claims (1)
- ソース・プログラム中のDOループについてベクトル化
の可否をチエツクし、ベクトル化が可の場合には当該D
Oループをベクトル命令列に翻訳するようになつたコン
パイル方式において、翻訳時に、DOループを翻訳して
得られるベクトル命令列を実行する際にベクトル・レジ
スタの個数又はベクトル・レジスタ長の不足に起因して
ベクトル・レジスタに対する余分なロードおよびストア
が生じるか否かをチエツクし、生ずる場合には、DOル
ープの直前にロード/ストアの発生を使用者に通知する
ためのプログラムを挿入するようにしたことを特徴とす
るベクトル・レジスタのオーバフロー情報通知方式。
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)
| 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)
| 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 | ベクトル・レングス制御範囲分割処理方式 |
-
1984
- 1984-07-25 JP JP15448484A patent/JPS6133547A/ja active Granted
Patent Citations (2)
| 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)
| 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) | プロセッサ |