JPS60120472A - 多重ル−プのベクトル処理方式 - Google Patents
多重ル−プのベクトル処理方式Info
- Publication number
- JPS60120472A JPS60120472A JP22797583A JP22797583A JPS60120472A JP S60120472 A JPS60120472 A JP S60120472A JP 22797583 A JP22797583 A JP 22797583A JP 22797583 A JP22797583 A JP 22797583A JP S60120472 A JPS60120472 A JP S60120472A
- Authority
- JP
- Japan
- Prior art keywords
- pipeline
- instruction
- vector
- instructions
- processing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は、ベクトル処理装置をそなえた計算機において
、ループ処理をベクトル命令化して実行する処理方式に
関し、特に、多重ループ処理の場合にベクトル命令の並
行処理率を向上させるベクトル処理方式に関する。
、ループ処理をベクトル命令化して実行する処理方式に
関し、特に、多重ループ処理の場合にベクトル命令の並
行処理率を向上させるベクトル処理方式に関する。
たとえば行列演算や図形処理では、多数のデータに同一
処理を繰シ返して実行するループ処理が中心となり、こ
のような場合、ベクトル処理装置を利用することによっ
て、処理の高速化を図ることができる。このため、ソー
ス中のループ処理をベクトル命令に変換するためには特
別のコン・ぞイブが使用される。しかし、従来のこの稲
のコンパイラでは、多重ループの場合に、外側のループ
で前後の処理に同じメモリ領域へのアクセスが行なわれ
るとき、内側のループのみをベクトル命令化し、外側の
ループは逐次化処理を行なっていた。
処理を繰シ返して実行するループ処理が中心となり、こ
のような場合、ベクトル処理装置を利用することによっ
て、処理の高速化を図ることができる。このため、ソー
ス中のループ処理をベクトル命令に変換するためには特
別のコン・ぞイブが使用される。しかし、従来のこの稲
のコンパイラでは、多重ループの場合に、外側のループ
で前後の処理に同じメモリ領域へのアクセスが行なわれ
るとき、内側のループのみをベクトル命令化し、外側の
ループは逐次化処理を行なっていた。
たとえば1次のような2重ループ処理
Do IOJ = l、 L
DOloi = l、 N
A(i、J+1)=A(i、J)十B(L、J)lOC
ONTLNUE はl J=1. 2t ・・・、Lで変化する外側のル
ープのそれぞれに対して、1==1.2.・・・、Nの
内側のループを計算するものであり、コンパイラのベク
トル命令化処理フェーズで。
ONTLNUE はl J=1. 2t ・・・、Lで変化する外側のル
ープのそれぞれに対して、1==1.2.・・・、Nの
内側のループを計算するものであり、コンパイラのベク
トル命令化処理フェーズで。
Do 10J=−1,L
A(茜、J+1)=A(舛、J)+B(≠、J)1o
coNTiNua のように変換される。式中のに印は、ベクトル処理を表
わしている。しかし、左辺のAと右辺のAとは、Jの回
転において、同一メモリ領域をアクセスすることになる
ため、すなわち任意のJでストアしたメモリ領域のAを
9次のJの値でロードしなければならないため9次に、
コンパイラの最適化処理フェーズで、Jの各々の処理の
間の並行処理を禁止し、逐次化する操作が行なわれる。
coNTiNua のように変換される。式中のに印は、ベクトル処理を表
わしている。しかし、左辺のAと右辺のAとは、Jの回
転において、同一メモリ領域をアクセスすることになる
ため、すなわち任意のJでストアしたメモリ領域のAを
9次のJの値でロードしなければならないため9次に、
コンパイラの最適化処理フェーズで、Jの各々の処理の
間の並行処理を禁止し、逐次化する操作が行なわれる。
このようにして9次のようなオブジェクトが生成される
。
。
(1) VLVL GR。
(2)α VPT
(3) VWT
(4) VL VRl、 A(+、1 )(5) VL
V1’t2. B(+、1)(6) VADD VB
2. VRl、VB2(力 VST VB2. A、(
−X、2)(8) VPT (9) VWT Ql) BCT α (1)はベクトル長の設定を表わし、まだ(4)はメモ
リ領域AのJ=1のベクトルデータをベクトルレジスタ
VRIにロードすること、(5)はメモリ領域BのJ=
1のベクトルデータをベクトルレジスタVR2にロード
すること、(6)は上記VR1とVB2のベクトルデー
タをベクトル加算して、結果をベクトルレジスタVR3
に格納すること、(7)はVB2のベクトルデータをメ
モリ領域AKJ=2のベクトルデータとしてストアする
ことをそれぞれ表わしている。
V1’t2. B(+、1)(6) VADD VB
2. VRl、VB2(力 VST VB2. A、(
−X、2)(8) VPT (9) VWT Ql) BCT α (1)はベクトル長の設定を表わし、まだ(4)はメモ
リ領域AのJ=1のベクトルデータをベクトルレジスタ
VRIにロードすること、(5)はメモリ領域BのJ=
1のベクトルデータをベクトルレジスタVR2にロード
すること、(6)は上記VR1とVB2のベクトルデー
タをベクトル加算して、結果をベクトルレジスタVR3
に格納すること、(7)はVB2のベクトルデータをメ
モリ領域AKJ=2のベクトルデータとしてストアする
ことをそれぞれ表わしている。
またQ[)はループを表わす。
そして、 (2) 、 (3) 、 (8) 、 (9
)はそれぞれ逐次化のだめの命令であり、ベクトルポス
ト(vECTORPO8T)命令VPTとベクトルウェ
イト(vEcToRWA I T )命令VWTとが使
用される。この2種類の命令を用いて、ベクトルポスト
命令VPTよシ以前の処理が終了するまでベクトルウェ
イト命令VWTの後の処理の開始を待たせることができ
る。
)はそれぞれ逐次化のだめの命令であり、ベクトルポス
ト(vECTORPO8T)命令VPTとベクトルウェ
イト(vEcToRWA I T )命令VWTとが使
用される。この2種類の命令を用いて、ベクトルポスト
命令VPTよシ以前の処理が終了するまでベクトルウェ
イト命令VWTの後の処理の開始を待たせることができ
る。
第1図は上記したオブジェクトをベクトル処理装置で実
行した場合のパイプライン動作のタイミング図であJ)
S J =l l 2までの処理を示したものである
。図示のようにJ=lとJ=2の処理とは、逐次化命令
VPTおよびVWTにょシ逐次化されている。
行した場合のパイプライン動作のタイミング図であJ)
S J =l l 2までの処理を示したものである
。図示のようにJ=lとJ=2の処理とは、逐次化命令
VPTおよびVWTにょシ逐次化されている。
しかし、ベクトル処理装置に、ベクトルレジスタとメモ
リ間でのストア、ロードを実行するアクセスパイプライ
ンが複数本設けられている場合には、たとえば第1図に
おいて、J=1の“A (’ *2)へのストア1とJ
=2の°B(誉、2)のロード″とは並行処理が可能で
あシ、またJ=20“A(芹、2)のロード″もJ=1
の“A(誉、2)へのストア″に続けて処理することが
可能である。
リ間でのストア、ロードを実行するアクセスパイプライ
ンが複数本設けられている場合には、たとえば第1図に
おいて、J=1の“A (’ *2)へのストア1とJ
=2の°B(誉、2)のロード″とは並行処理が可能で
あシ、またJ=20“A(芹、2)のロード″もJ=1
の“A(誉、2)へのストア″に続けて処理することが
可能である。
このように、従来のベクトル処理方式では、多重ループ
の場合、内側ループの上端、下端にある命令の並列処理
が可能であっても考慮されることがなく、また、各ルー
プごとにVPT、VWT の命令実行が必要となるため
、処理効率が上らないという問題があった。
の場合、内側ループの上端、下端にある命令の並列処理
が可能であっても考慮されることがなく、また、各ルー
プごとにVPT、VWT の命令実行が必要となるため
、処理効率が上らないという問題があった。
本発明の目的は、多重ループのベクトル命令化処理にお
いて、逐次化不要のスカラ命令あるいはベクトル命令が
ある場合には逐次化命令で逐次化せず、対象命令ごとに
逐次化あるいは並行化できるようにする手段を提供する
ことにある。
いて、逐次化不要のスカラ命令あるいはベクトル命令が
ある場合には逐次化命令で逐次化せず、対象命令ごとに
逐次化あるいは並行化できるようにする手段を提供する
ことにある。
本発明の構成はそれにより、ベクトル処理装置を有する
計算機において、実行すべきパイプラインを指定するパ
イプライン識別子を有するベクトル命令手段と、ベクト
ル命令実行時に上記・ぞイブライン識別子を復号化して
実行すべきパイプラインを選択する制御手段とをそなえ
、多重ループ処理においてベクトル命令同士の逐次化が
必要な場合に、それら各ベクトル命令のパイプライン識
別子に同一パイブラインの識別コードを設定することを
特徴としている。
計算機において、実行すべきパイプラインを指定するパ
イプライン識別子を有するベクトル命令手段と、ベクト
ル命令実行時に上記・ぞイブライン識別子を復号化して
実行すべきパイプラインを選択する制御手段とをそなえ
、多重ループ処理においてベクトル命令同士の逐次化が
必要な場合に、それら各ベクトル命令のパイプライン識
別子に同一パイブラインの識別コードを設定することを
特徴としている。
以下に9本発明の詳細を実施例にしたがって説明する。
第2図は9本発明の1実施例であるデータ処理装置の構
成図である。図中、1はメモリ、2はベクトル処理部、
3はスカラー演算部、4は命令制御部、5はアクセスパ
イプラインA、6はアクセスノぞイブラインB、7はベ
クトルレジスタ、8は演算パイプラインA′、9は演算
ノセイブラインB′を示すO 各ノゼイプラインは識別子A、Bをもち、ベクトル命令
は、これらの識別子を指定して、実行すべきパイプライ
ンを選択することができる。これによシ、たとえば相続
く2つのベクトル命令が並行処理を禁じられるべき場合
9両命令で同一パイブラインの識別コードを指定してお
くことによシ。
成図である。図中、1はメモリ、2はベクトル処理部、
3はスカラー演算部、4は命令制御部、5はアクセスパ
イプラインA、6はアクセスノぞイブラインB、7はベ
クトルレジスタ、8は演算パイプラインA′、9は演算
ノセイブラインB′を示すO 各ノゼイプラインは識別子A、Bをもち、ベクトル命令
は、これらの識別子を指定して、実行すべきパイプライ
ンを選択することができる。これによシ、たとえば相続
く2つのベクトル命令が並行処理を禁じられるべき場合
9両命令で同一パイブラインの識別コードを指定してお
くことによシ。
先行命令の実行が終了するまで後行命令の実行開始は不
可能となシ、自動的に逐次化処理を行なわせることがで
きる。
可能となシ、自動的に逐次化処理を行なわせることがで
きる。
第3図は、命令制御部4における命令デコーダの一部を
示したもので、10は命令レジスタ。
示したもので、10は命令レジスタ。
11は識別子、12はデコーダを示す。上記したパイプ
ライン識別子11は命令フィールドの一部に設定されて
いる。命令制御部4は、この識別子のコードをデコーダ
により復号化して、パイプライン指定の有無、および指
定されたパイプラインを識別し、それにしたがってパイ
プラインの選択制御を行なう。
ライン識別子11は命令フィールドの一部に設定されて
いる。命令制御部4は、この識別子のコードをデコーダ
により復号化して、パイプライン指定の有無、および指
定されたパイプラインを識別し、それにしたがってパイ
プラインの選択制御を行なう。
第4図は1本発明方式を使用する場合のコンノイブの最
適化処理フェーズを示したものである。
適化処理フェーズを示したものである。
■ まず、外側ループから見て、ループ内の命令間での
オはランドの引用関係を把掴する。
オはランドの引用関係を把掴する。
■ 外側ループ内の逐次化が不要な場合、すなわち、内
側ループ両端にある命令が同一のメモリ領域を使用しな
い場合には並行処理が可能であるから、不要な逐次化命
令VPT、 VVVT をループの外側へ移す■。
側ループ両端にある命令が同一のメモリ領域を使用しな
い場合には並行処理が可能であるから、不要な逐次化命
令VPT、 VVVT をループの外側へ移す■。
■ 外側ループ内の逐次化が必要である場合には。
さらにベクトル命令同土間での逐次化が必要なのか、ス
カラー命令とベクトル命令との間での逐次化が必要なの
かを調べる。
カラー命令とベクトル命令との間での逐次化が必要なの
かを調べる。
■ スカラー命令とベクトル命令間での逐次化処理の場
合には、ループ内で逐次化を行なう。すなわち逐次化命
令VPT、VWT はそのまま使用する。
合には、ループ内で逐次化を行なう。すなわち逐次化命
令VPT、VWT はそのまま使用する。
■ ベクトル命令間での逐次化処理の場合には。
関連する各ベクトルと命令のパイプライン識別子を、適
当な同一のパイプラインを指定する値に設定する。
当な同一のパイプラインを指定する値に設定する。
■ 逐次化命令は不要となったので、ループから外へ移
す。
す。
以上のようにして、逐次化命令の使用は、必要最小限に
抑えることができる。
抑えることができる。
第5図は、第1図に示した従来方式によるループ処理の
例に本発明方式を適用した場合のタイミング図である。
例に本発明方式を適用した場合のタイミング図である。
図中、矢印はパイプライン識別子による制御を示す。第
1図の場合と異なシ、逐次化命令VPT、VWTは使用
されず、それにょシ@B(誉、2)のロード″、゛A(
舛、2)のロード”および“A(誉、3)へのストア1
の実行を早めることができる。なお、上述した例は2重
ループ処理に関するものであるが、多重ループの任意の
レベルに適用できることはいうまでもない。
1図の場合と異なシ、逐次化命令VPT、VWTは使用
されず、それにょシ@B(誉、2)のロード″、゛A(
舛、2)のロード”および“A(誉、3)へのストア1
の実行を早めることができる。なお、上述した例は2重
ループ処理に関するものであるが、多重ループの任意の
レベルに適用できることはいうまでもない。
以上のように1本発明によれば、従来の多重ループのベ
クトルにおいて画一的な逐次化が行なわれていたものを
、ループ内での命令間のメモリアクセス関係の競合を把
掴して、必要に応じて命令ごとに個々に対処することに
より、並行処理の割合いを増加させることができ、処理
の高速化を図ることができる。
クトルにおいて画一的な逐次化が行なわれていたものを
、ループ内での命令間のメモリアクセス関係の競合を把
掴して、必要に応じて命令ごとに個々に対処することに
より、並行処理の割合いを増加させることができ、処理
の高速化を図ることができる。
第1図は、従来のループのベクトル命令化処理における
パイプラインのタイミング図、第2図は本発明の1実施
例装置の構成図、第3図は命令デコーダの一部の説明図
、第4図はコンパイラの最適化処理フェーズの手順説明
図、第5図は本発明実施例におけるループのベクトル命
令化処理のパイブラインのタイミング図である。 図中、1はメモリ、2はベクトル処理部、3はスカラー
演算部、4は命令制御部、5,6はそれぞれアクセスパ
イプラインA、B、γはベクトルレジスタ、8,9はそ
れぞれ演算パイプラインA’HB’、10は命令レジス
タ、11はパイプライン識別子、12はデコーダを示す
。 特許出願人 富士通株式会社 代理人弁理士 長谷用 文 廣(外1名)1 嘉 ↓ 第 5 図 第 4 図
パイプラインのタイミング図、第2図は本発明の1実施
例装置の構成図、第3図は命令デコーダの一部の説明図
、第4図はコンパイラの最適化処理フェーズの手順説明
図、第5図は本発明実施例におけるループのベクトル命
令化処理のパイブラインのタイミング図である。 図中、1はメモリ、2はベクトル処理部、3はスカラー
演算部、4は命令制御部、5,6はそれぞれアクセスパ
イプラインA、B、γはベクトルレジスタ、8,9はそ
れぞれ演算パイプラインA’HB’、10は命令レジス
タ、11はパイプライン識別子、12はデコーダを示す
。 特許出願人 富士通株式会社 代理人弁理士 長谷用 文 廣(外1名)1 嘉 ↓ 第 5 図 第 4 図
Claims (1)
- ベクトル処理装置を有する計算機において、実行すべき
パイプラインを指定するーぐイブライン識別子を有する
ベクトル命令手段と、ベクトル命令実行時に上記パイプ
ライン識別子を復号化して実行すべきパイプラインを選
択する制御手段とをそなえ、多重ループ処理においてベ
クトル処理装置の逐次化が必要な場合に、それら各ベク
トル命令のパイプライン識別子に同一パイブラインの識
別コードを設定することを特徴とする多重ループのベク
トル処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22797583A JPS60120472A (ja) | 1983-12-02 | 1983-12-02 | 多重ル−プのベクトル処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22797583A JPS60120472A (ja) | 1983-12-02 | 1983-12-02 | 多重ル−プのベクトル処理方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS60120472A true JPS60120472A (ja) | 1985-06-27 |
| JPH0316666B2 JPH0316666B2 (ja) | 1991-03-06 |
Family
ID=16869189
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22797583A Granted JPS60120472A (ja) | 1983-12-02 | 1983-12-02 | 多重ル−プのベクトル処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS60120472A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01102644A (ja) * | 1987-09-30 | 1989-04-20 | Internatl Business Mach Corp <Ibm> | パイプライン式処理装置 |
| JPH0632630U (ja) * | 1992-10-08 | 1994-04-28 | 喜助 橋本 | コンクリート製塀ブロック体 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS57109084A (en) * | 1980-12-26 | 1982-07-07 | Fujitsu Ltd | Schedule system for instruction in parallel computer having plural operating devices |
-
1983
- 1983-12-02 JP JP22797583A patent/JPS60120472A/ja active Granted
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS57109084A (en) * | 1980-12-26 | 1982-07-07 | Fujitsu Ltd | Schedule system for instruction in parallel computer having plural operating devices |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01102644A (ja) * | 1987-09-30 | 1989-04-20 | Internatl Business Mach Corp <Ibm> | パイプライン式処理装置 |
| JPH0632630U (ja) * | 1992-10-08 | 1994-04-28 | 喜助 橋本 | コンクリート製塀ブロック体 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0316666B2 (ja) | 1991-03-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5499350A (en) | Vector data processing system with instruction synchronization | |
| US6219775B1 (en) | Massively parallel computer including auxiliary vector processor | |
| US10395381B2 (en) | Method to compute sliding window block sum using instruction based selective horizontal addition in vector processor | |
| US20020078320A1 (en) | Methods and apparatus for instruction addressing in indirect VLIW processors | |
| US12386623B2 (en) | Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor | |
| JPH0337723A (ja) | 情報処理装置 | |
| JPS62159268A (ja) | マルチプロセツサシステム | |
| US4734877A (en) | Vector processing system | |
| JPS60120472A (ja) | 多重ル−プのベクトル処理方式 | |
| US9424230B2 (en) | Converting a data placement between memory banks and an array processing section | |
| US4933839A (en) | Vector processor | |
| US4969117A (en) | Chaining and hazard apparatus and method | |
| CN114968369A (zh) | 用于采取vliw处理器中的相同执行数据包中的常数扩展槽指定或扩展常数位数的方法 | |
| JP2928684B2 (ja) | Vliw型演算処理装置 | |
| US7272700B1 (en) | Methods and apparatus for indirect compound VLIW execution using operand address mapping techniques | |
| US7149881B2 (en) | Method and apparatus for improving dispersal performance in a processor through the use of no-op ports | |
| JPS57109084A (en) | Schedule system for instruction in parallel computer having plural operating devices | |
| JPS60144830A (ja) | 情報処理装置 | |
| JPH01271840A (ja) | マイクロコンピュータ | |
| JPH0279122A (ja) | 浮動小数点演算機構 | |
| JPS61100862A (ja) | 命令の逐次化方式 | |
| JPS63138427A (ja) | 配列に対する命令のスケジユ−リング処理方式 | |
| JPH02236775A (ja) | コンパイル装置 | |
| JPS62120541A (ja) | 命令制御方式 | |
| JPS60250476A (ja) | 処理装置 |