JPS62285180A - ベクトルプロセツサ - Google Patents
ベクトルプロセツサInfo
- Publication number
- JPS62285180A JPS62285180A JP12791186A JP12791186A JPS62285180A JP S62285180 A JPS62285180 A JP S62285180A JP 12791186 A JP12791186 A JP 12791186A JP 12791186 A JP12791186 A JP 12791186A JP S62285180 A JPS62285180 A JP S62285180A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- possibility
- address
- data
- list
- 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
Links
- 239000013598 vector Substances 0.000 title claims abstract description 162
- 238000012545 processing Methods 0.000 abstract description 40
- 238000000034 method Methods 0.000 abstract description 16
- 230000008569 process Effects 0.000 abstract description 11
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000002401 inhibitory effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 206010011224 Cough Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
3、発明の詳細な説明
〔産業上の利用分野〕
本発明は、ベクトル演算のためにリストベクトル形式で
表現されるベクトルデータの主記憶装置からの読出し、
演算処理、および主記憶装置への格納を高速に行うベク
トルプロセッサに関する。
表現されるベクトルデータの主記憶装置からの読出し、
演算処理、および主記憶装置への格納を高速に行うベク
トルプロセッサに関する。
科学技術計算に頻繁に現われる大型行列計算などの高速
処理用にベクトルプロセッサが考案されている。
処理用にベクトルプロセッサが考案されている。
ベクトルプロセッサの多くには、特開昭59−1720
78に記載のように、以下に詳述するようなリストベク
トル処理機能がある。すなわち、間接アドレスで指定さ
れるリスト構造をもつベクトルデータの高速な読出し・
書込みが可能である。このリストベクトル処理機能を用
いれば、次のFortran文で示すような処理を高速
にベクトル処理することが可能である。
78に記載のように、以下に詳述するようなリストベク
トル処理機能がある。すなわち、間接アドレスで指定さ
れるリスト構造をもつベクトルデータの高速な読出し・
書込みが可能である。このリストベクトル処理機能を用
いれば、次のFortran文で示すような処理を高速
にベクトル処理することが可能である。
Do 10 I=1.N
D(A(I))=B(A(I))+C
10C0NTINTJE
すなわち、間接アドレスベクトル要素A(I)で、指示
されるベクトル要素B(A(I))に定数Cを加算し、
その演算結果を間接アドレスベクトル要素A(I)で指
示されるベクトル要素D(A(I))に格納する。この
ように、間接アドレスベクトルで指示されろベクトルデ
ータの演算をベクトルプロセッサはベクトル処理手法を
用いて高速に処理することができる。
されるベクトル要素B(A(I))に定数Cを加算し、
その演算結果を間接アドレスベクトル要素A(I)で指
示されるベクトル要素D(A(I))に格納する。この
ように、間接アドレスベクトルで指示されろベクトルデ
ータの演算をベクトルプロセッサはベクトル処理手法を
用いて高速に処理することができる。
しかし、次のFortran文で示すような処理は従来
のベクトルプロセッサではベクトル処理できなかった。
のベクトルプロセッサではベクトル処理できなかった。
Do to I=1.N
R(A(I))=Fl(A(T))+C10C0NTI
NUE すなわち、間接アドレスベクトル要素A(I)でそれぞ
れ指示されるベクトル要素B(A(I))に定数Cを加
算し、その演算結果を前記ベクトル要素R(A(I))
に格納する処理はベクトル処理できなかった。これはベ
クトル要素F3(A(I))の定義参照関係によるもの
である。すなわち、前記の例では、ベクトル要素B(A
(I))をデータとして、ある演算を行いその結果を用
いてベクトル要素R(A (I ))を更新するが、ベ
クトル処理においては前記ベクトル要素B(A(T))
の更新が終了する以前に、1番目以降のベクトル要素n
(A(J))が読出されるため、A(1)とA(J)の
内容が等しい場合にはB(A(T))に対して行われろ
演算結果が、R(A(J))に対して行われろ演算に反
映されないということが問題となる。このため、上記の
ような処理は、ベクトル処理できず、逐次的に実行する
ことになるので、高速処理は望めない。
NUE すなわち、間接アドレスベクトル要素A(I)でそれぞ
れ指示されるベクトル要素B(A(I))に定数Cを加
算し、その演算結果を前記ベクトル要素R(A(I))
に格納する処理はベクトル処理できなかった。これはベ
クトル要素F3(A(I))の定義参照関係によるもの
である。すなわち、前記の例では、ベクトル要素B(A
(I))をデータとして、ある演算を行いその結果を用
いてベクトル要素R(A (I ))を更新するが、ベ
クトル処理においては前記ベクトル要素B(A(T))
の更新が終了する以前に、1番目以降のベクトル要素n
(A(J))が読出されるため、A(1)とA(J)の
内容が等しい場合にはB(A(T))に対して行われろ
演算結果が、R(A(J))に対して行われろ演算に反
映されないということが問題となる。このため、上記の
ような処理は、ベクトル処理できず、逐次的に実行する
ことになるので、高速処理は望めない。
上記のような処理、すなわち、リストベクトルに演算を
施し、その結果を前記リストベクトルに格納する処理は
、例えば、コンピュータグラフィゲスにおける隠面消去
処理において必須のものである。Z−バッファ法等の隠
面消去処理では、各画素について奥行き値を比較し、そ
の比較結果によって主記憶装置上の奥行き値を変更する
。画素の位置はリストベクトルで与えられる。複数の多
角形についてベクトル処理を行うと同一画素をすなわち
同一のアドレスについてリストベクトル処理する場合が
生じ、これがまさに本特許で問題となっているベクトル
処理である。
施し、その結果を前記リストベクトルに格納する処理は
、例えば、コンピュータグラフィゲスにおける隠面消去
処理において必須のものである。Z−バッファ法等の隠
面消去処理では、各画素について奥行き値を比較し、そ
の比較結果によって主記憶装置上の奥行き値を変更する
。画素の位置はリストベクトルで与えられる。複数の多
角形についてベクトル処理を行うと同一画素をすなわち
同一のアドレスについてリストベクトル処理する場合が
生じ、これがまさに本特許で問題となっているベクトル
処理である。
上記従来技術は、リストベクトルに演算を行い、その演
算結果を前記リストベクトルに格納する処理において、
同一の間接アドレス値が存在する場合の、配慮がされて
おらず、以前の処理が終了しリストベクトルの値が更新
されるのを待たずに次のリストベクトル要素を読み込む
ため、先の演算結果が後の演算データに反映されず、正
しい結果が得られないという聞届があった。
算結果を前記リストベクトルに格納する処理において、
同一の間接アドレス値が存在する場合の、配慮がされて
おらず、以前の処理が終了しリストベクトルの値が更新
されるのを待たずに次のリストベクトル要素を読み込む
ため、先の演算結果が後の演算データに反映されず、正
しい結果が得られないという聞届があった。
本発明は、前記の問題点に鑑み、リストベクトルに演算
を施し、その演算結果を前記リストベクトルに格納する
処理において、同一の間接アドレス値が存在する場合に
も、正しい結果が得られるようなベクトルプロセッサを
提供することにある。
を施し、その演算結果を前記リストベクトルに格納する
処理において、同一の間接アドレス値が存在する場合に
も、正しい結果が得られるようなベクトルプロセッサを
提供することにある。
上記目的は、リストベクトルに対する演算において、リ
ストベクトル要素の主記憶装置上のデータが現在実行中
のベクトル演算の結果によって書変えられる可能性Pの
有無を判定する手段を用意し、リストベクトル要素を主
記憶装置から読出す前に該リストベクトル要素に対する
前記可能性Pを求め、該可能性Pが有の間は該リストベ
クトル要素の読出しを抑止することにより、達成されろ
。
ストベクトル要素の主記憶装置上のデータが現在実行中
のベクトル演算の結果によって書変えられる可能性Pの
有無を判定する手段を用意し、リストベクトル要素を主
記憶装置から読出す前に該リストベクトル要素に対する
前記可能性Pを求め、該可能性Pが有の間は該リストベ
クトル要素の読出しを抑止することにより、達成されろ
。
リストベクトル制御ユニットは、リストベクトル処理に
おいて、現在実行されているベクトル演算によって害変
えられる可能性Pのある主記憶のアドレスを保持してい
る。リストベクトル制御ユニットは1次のリストベクト
ル要素を読み込む前に、該リストベクトルのアドレスに
対する前記可能性Pを求める。
おいて、現在実行されているベクトル演算によって害変
えられる可能性Pのある主記憶のアドレスを保持してい
る。リストベクトル制御ユニットは1次のリストベクト
ル要素を読み込む前に、該リストベクトルのアドレスに
対する前記可能性Pを求める。
リストベクトル制御ユニットは、前記可能性Pがあれば
、該リストベクトルの読出し処理を抑止する。このため
、同一の間接アドレス値が存在した場合には、その部分
だけ処理が逐次的になるので、正しい計算結果が保障さ
れる。
、該リストベクトルの読出し処理を抑止する。このため
、同一の間接アドレス値が存在した場合には、その部分
だけ処理が逐次的になるので、正しい計算結果が保障さ
れる。
以下、本発明の一実施例を第】図により説明する。
第1図は、ベクトル演算を行うベクトルプロセッサシス
テムの本発明に関連する部分の構成を示したものである
。同図において、1は主記憶装置、2〜5はそれぞれの
ベクトルレジスタのライトデータレジスタ、6〜9はベ
クトルレジスタ、10〜13はベクトルレジスタからの
り一ドデータレジスタ、14〜]7はそれぞれのベクト
ルデータをアクセスするためのアドレスレジスタである
。
テムの本発明に関連する部分の構成を示したものである
。同図において、1は主記憶装置、2〜5はそれぞれの
ベクトルレジスタのライトデータレジスタ、6〜9はベ
クトルレジスタ、10〜13はベクトルレジスタからの
り一ドデータレジスタ、14〜]7はそれぞれのベクト
ルデータをアクセスするためのアドレスレジスタである
。
18は演算器であり、予め指定された演算を行う。
リストベクトル制御ユニット19は本発明の特徴的なも
のであり、その詳細については後に述べる。
のであり、その詳細については後に述べる。
20はゲートである。同図において、ベクトルライトレ
ジスタ2〜5への入力、ベクトルリードレジスタ10〜
13からの出力、アドレスレジスタ14〜17への入力
はそれぞれ固定されているが、実際には、それぞれセレ
クタ(図示せず)によって設定されているものとする。
ジスタ2〜5への入力、ベクトルリードレジスタ10〜
13からの出力、アドレスレジスタ14〜17への入力
はそれぞれ固定されているが、実際には、それぞれセレ
クタ(図示せず)によって設定されているものとする。
すなわち、ライトレジスタ2〜5の入力は指定のプログ
ラムに対応してセレクタ(図示せず)で主記憶装置ff
l 1あるいは演算器18の出力に接続されている。ま
た、リードレジスタ10〜13の出力は指定のプログラ
ムに対応して、セレクタ(図示せず)でアドレスレジス
タ、リストベクトル制御ユニット、演S7器あるいは主
記憶装置に接続されている。
ラムに対応してセレクタ(図示せず)で主記憶装置ff
l 1あるいは演算器18の出力に接続されている。ま
た、リードレジスタ10〜13の出力は指定のプログラ
ムに対応して、セレクタ(図示せず)でアドレスレジス
タ、リストベクトル制御ユニット、演S7器あるいは主
記憶装置に接続されている。
次に動作を詳細に説明する。−例として次のようなFo
rtranプログラムで表わされるような演算を考える
。
rtranプログラムで表わされるような演算を考える
。
Do 10 T=1.、N
B(A(T))=B(A(I))+C
10C0NTINU E
先ずロード命令によってアドレスレジスタ14の示すア
ドレスに従って主記憶装置1からベクトルデータが読み
出され、ライトデータレジスタ2を経てベクトルレジス
タ6にTi積される。アドレ −スレジスタ14は、ベ
クトルデータの読出しが終了するごとに+1されろ。以
上のようにして、生花装置からベクトルデータA(L〜
N)を順に読出し、ベクトルレジスタ6に蓄積する。
ドレスに従って主記憶装置1からベクトルデータが読み
出され、ライトデータレジスタ2を経てベクトルレジス
タ6にTi積される。アドレ −スレジスタ14は、ベ
クトルデータの読出しが終了するごとに+1されろ。以
上のようにして、生花装置からベクトルデータA(L〜
N)を順に読出し、ベクトルレジスタ6に蓄積する。
次に、ベクトルレジスタ6のベクトルデータが読出され
、リードレジスタ10を経て、アドレスレジスタ15及
びリストベクトル制御ユニット19に送られろ。制御ユ
ニット19は、入力されたデータを主記憶装置のアドレ
スと見なす。
、リードレジスタ10を経て、アドレスレジスタ15及
びリストベクトル制御ユニット19に送られろ。制御ユ
ニット19は、入力されたデータを主記憶装置のアドレ
スと見なす。
リストベクトル制御ユニット19は該アドレスで指定さ
れろ主記憶装置上のデータが現在実行中のベクトル演算
の結果によって書き換えられる可能性Pがあるか否かを
判定する。
れろ主記憶装置上のデータが現在実行中のベクトル演算
の結果によって書き換えられる可能性Pがあるか否かを
判定する。
リストベクトル制御ユニット19の内部構成については
後に詳しく述べろ。前記可能性Pの有無によってリスト
ベクトル制御ユニットの動作は次のようになる。
後に詳しく述べろ。前記可能性Pの有無によってリスト
ベクトル制御ユニットの動作は次のようになる。
(1)可能性Pが有る場合
前記可能性Pが有る場合には、リストベクトル制御ユニ
ット19はゲート20に信号を送り、ゲート20を閉じ
、主記憶装置1からベクトルレジスタ7へのベクトルデ
ータのロードを抑止する。
ット19はゲート20に信号を送り、ゲート20を閉じ
、主記憶装置1からベクトルレジスタ7へのベクトルデ
ータのロードを抑止する。
実行中のベクトル演算が進み、該可能性Pが無くなった
ら、ゲート20に信号を送りゲートを開く。
ら、ゲート20に信号を送りゲートを開く。
(2)可能性Pが無い場合
前記可能性Pが無い場合には、リストベクトル制御ユニ
ット19は、前記アドレスに対応する前記可能性Pを有
にし、次の処理に進む。
ット19は、前記アドレスに対応する前記可能性Pを有
にし、次の処理に進む。
ゲート20が開いている場合には、次のロード命令によ
ってアドレスレジスタ15の示すアドレスに従って主記
憶装置1からベクトルデータが読み出され、ライトデー
タレジスタ3を経てベクトルレジスタ7に蓄積される。
ってアドレスレジスタ15の示すアドレスに従って主記
憶装置1からベクトルデータが読み出され、ライトデー
タレジスタ3を経てベクトルレジスタ7に蓄積される。
以上のようにして。
主記憶装置i!21からリストベクトルデータ11(A
(1〜N))を読み出し、ベクトルレジスタ7に蓄積す
る。
(1〜N))を読み出し、ベクトルレジスタ7に蓄積す
る。
さら1;、ベクトルレジスタ7のベクトルデータは、リ
ードレジスタ11を経て演算器18に送られ、予め指定
された演算(前記プログラム例では定数Cの加算)が行
われ、演算結果はライトレジスタ5を経てベクトルレジ
スタ9に送られる。以上のようにして、ベクトルデータ
B(A(1〜N))十Cがベクトルレジスタ9に蓄積さ
れる。
ードレジスタ11を経て演算器18に送られ、予め指定
された演算(前記プログラム例では定数Cの加算)が行
われ、演算結果はライトレジスタ5を経てベクトルレジ
スタ9に送られる。以上のようにして、ベクトルデータ
B(A(1〜N))十Cがベクトルレジスタ9に蓄積さ
れる。
ベクトルレジスタ8には、ベクトルレジスタ6における
と同様の処理によって、ベクトルデータA(L〜N)が
蓄積されろ。
と同様の処理によって、ベクトルデータA(L〜N)が
蓄積されろ。
ベクトルレジスタ8のベクトルデータは、リードレジス
タ12を経て、アドレスレジスタ17に送られろ。ベク
トルレジスタ9のベクトルデータは、リードレジスタ1
3を経て、アドレスレジスタコアに示すアドレスに従っ
て主記憶装置1に書込まれる。以上のようにして、ベク
トル演算結果B(A(,1〜N))+Cは主記憶装置に
書き込まれる。次に、アドレスレジスタ17のデータは
リストベクトル制御ユニット19に転送され、リストベ
クトル制御ユニット19は、該アドレスで指定される主
記憶上のデータが現在実行中のベクトル演算によって書
き変えられる可能性Pを無に変更する。
タ12を経て、アドレスレジスタ17に送られろ。ベク
トルレジスタ9のベクトルデータは、リードレジスタ1
3を経て、アドレスレジスタコアに示すアドレスに従っ
て主記憶装置1に書込まれる。以上のようにして、ベク
トル演算結果B(A(,1〜N))+Cは主記憶装置に
書き込まれる。次に、アドレスレジスタ17のデータは
リストベクトル制御ユニット19に転送され、リストベ
クトル制御ユニット19は、該アドレスで指定される主
記憶上のデータが現在実行中のベクトル演算によって書
き変えられる可能性Pを無に変更する。
以上のようにして、前記プログラムによって示されるベ
クトル演算が実現される。
クトル演算が実現される。
第2図は、本実施例の簡単なタイムチャートを示したも
のである。簡単のため、読み出しリクエスト、レジスタ
から演算器への転送等を省略している。主記憶装置1が
らベクトルデータA(1〜N)の読出しは、同図に示す
ようにエレメント1からエレメントNまで順に毎サイク
ル実行される。
のである。簡単のため、読み出しリクエスト、レジスタ
から演算器への転送等を省略している。主記憶装置1が
らベクトルデータA(1〜N)の読出しは、同図に示す
ようにエレメント1からエレメントNまで順に毎サイク
ル実行される。
さらに、次のサイクルで間接アドレスベクトルデータ
(A(1〜N))に対して、リストベクトル制御ユニッ
ト19は、該アドレスに対するデータの書き変え可能性
Pを調べる。前記可能性Pが有るならば、該可能性Pが
無になるまでn (A (1〜N))の読出しは抑止さ
れる。同図ではA (2) =A (4)・ の場合を示している。n(A (4))の主記憶装置1
からの読み出しは、R(A (2))に対する演算が終
了するまで待つ必要がある。これは前記可能性Pが有る
ならば、該可能性Pが無になるまでR(A (i ))
の読出しを抑止することで実現される。
(A(1〜N))に対して、リストベクトル制御ユニッ
ト19は、該アドレスに対するデータの書き変え可能性
Pを調べる。前記可能性Pが有るならば、該可能性Pが
無になるまでn (A (1〜N))の読出しは抑止さ
れる。同図ではA (2) =A (4)・ の場合を示している。n(A (4))の主記憶装置1
からの読み出しは、R(A (2))に対する演算が終
了するまで待つ必要がある。これは前記可能性Pが有る
ならば、該可能性Pが無になるまでR(A (i ))
の読出しを抑止することで実現される。
同図において、エレメント1〜3に対する処理すなわち
A(1〜3)の読出し、B(A(1〜3))の読出し、
加算、演算結果の書込みについては、前記可能性Pが無
いため順に毎サイクル実行されろ。エレメント4につい
ては、前記可能性Pが有るためB(A(2))の処理が
終了するまでB(A(4))の読出しを待つ、B(A
(2))の処理が終了した後は、r((A (4〜N)
)の読出し、加算、演算結果の格納は順に毎サイクル実
行される。
A(1〜3)の読出し、B(A(1〜3))の読出し、
加算、演算結果の書込みについては、前記可能性Pが無
いため順に毎サイクル実行されろ。エレメント4につい
ては、前記可能性Pが有るためB(A(2))の処理が
終了するまでB(A(4))の読出しを待つ、B(A
(2))の処理が終了した後は、r((A (4〜N)
)の読出し、加算、演算結果の格納は順に毎サイクル実
行される。
上記のように、同一の間接アドレス値が存在する場合、
そのデータはパイプライン処理されず、逐次処理となる
。しかし、同一の間接アドレス値が存在しない限りベク
トル演算が行われる。このため、同一の間接アドレス値
がほとんどない場合には、はとんどのデータに対してパ
イプライン処理が可能であり、通常のベクトルプロセッ
サ並の速度が得られる。同一の間接アドレス値が数多く
存在する場合には、逐次処理が増加するが、最悪の場合
でも、逐次処理を行うスカラプロセッサの速度は保障さ
れる。
そのデータはパイプライン処理されず、逐次処理となる
。しかし、同一の間接アドレス値が存在しない限りベク
トル演算が行われる。このため、同一の間接アドレス値
がほとんどない場合には、はとんどのデータに対してパ
イプライン処理が可能であり、通常のベクトルプロセッ
サ並の速度が得られる。同一の間接アドレス値が数多く
存在する場合には、逐次処理が増加するが、最悪の場合
でも、逐次処理を行うスカラプロセッサの速度は保障さ
れる。
第3図は従来方法によるベクトルプロセッサシステムの
概念図である。本発明との違いは、リストベクトル制御
ユニット19が存在しないことであり、動作は第1図に
示した本発明のベクトルプロセッサシステムとほとんど
同様である。第3図の例では、リストベクトルB(A(
1〜n))を主記憶装置1から読出す前に、咳値が現在
実行中のベクトル演算の結果によって書き変えられる可
能性の有無を判定をしない。このため、例えばA (2
) =A (4) の場合には、B(A (2))に対する演算結果がB
(A (4) )の演算に反映されず、正しい結果が得
られない。第4図は従来方法によるベグトルプロセッサ
の簡憤なタイムチャートを示したものである。同図にお
いてR(A (4) )の読出しはB (A (2)
’)の演算結果の書込み終了以前に行われる。このため
正しい結果が得られない。
概念図である。本発明との違いは、リストベクトル制御
ユニット19が存在しないことであり、動作は第1図に
示した本発明のベクトルプロセッサシステムとほとんど
同様である。第3図の例では、リストベクトルB(A(
1〜n))を主記憶装置1から読出す前に、咳値が現在
実行中のベクトル演算の結果によって書き変えられる可
能性の有無を判定をしない。このため、例えばA (2
) =A (4) の場合には、B(A (2))に対する演算結果がB
(A (4) )の演算に反映されず、正しい結果が得
られない。第4図は従来方法によるベグトルプロセッサ
の簡憤なタイムチャートを示したものである。同図にお
いてR(A (4) )の読出しはB (A (2)
’)の演算結果の書込み終了以前に行われる。このため
正しい結果が得られない。
次に、第5図のフローチャートを参照しつつリストベク
トル制御ユニット19の一実施例を詳しく説明する。同
ユニットは第1図のリードレジスタ10からアドレスA
(i)を受は取ることにより動作を開始する。第5図
(a)において、まずアドレスA (i)を入力しく1
01)、次に該アドレスA (i)にある演算ftt施
し結果f(A(i))を変数Keyに代入する。演算f
については後に詳述する。
トル制御ユニット19の一実施例を詳しく説明する。同
ユニットは第1図のリードレジスタ10からアドレスA
(i)を受は取ることにより動作を開始する。第5図
(a)において、まずアドレスA (i)を入力しく1
01)、次に該アドレスA (i)にある演算ftt施
し結果f(A(i))を変数Keyに代入する。演算f
については後に詳述する。
次に変数Keyを用いて、該アドレスが使用中であるか
否かを保持するコンフリクトテーブルTableを引き
(103)、使用中(busy)でなければ、ゲート2
0に信号を送り、ゲート20を開き(104)、該テー
ブルをbusyとし、処理を終了する(105)、10
3において、busyの場合には、ゲート20に信号を
送り、ゲート20を閉じ(1,06)、103の処理に
戻る。
否かを保持するコンフリクトテーブルTableを引き
(103)、使用中(busy)でなければ、ゲート2
0に信号を送り、ゲート20を開き(104)、該テー
ブルをbusyとし、処理を終了する(105)、10
3において、busyの場合には、ゲート20に信号を
送り、ゲート20を閉じ(1,06)、103の処理に
戻る。
第1図におけるアドレスレジスタ17の出力A(j)が
リストベクトル制御ユニット19に入力されると割り込
みがかかり、割り込み動作が開始される。第5図(b)
において、まずアドレスA(j)を入力しく201)、
次に該アドレスA (j)に演算fを施し、演算結果f
(A (j) )をK e yに代入する(202)
。次にテーブルTableのKey番目の要素をno
+ busyに設定し処理を終了する(203)。なお
、テーブルTabl。
リストベクトル制御ユニット19に入力されると割り込
みがかかり、割り込み動作が開始される。第5図(b)
において、まずアドレスA(j)を入力しく201)、
次に該アドレスA (j)に演算fを施し、演算結果f
(A (j) )をK e yに代入する(202)
。次にテーブルTableのKey番目の要素をno
+ busyに設定し処理を終了する(203)。なお
、テーブルTabl。
は要素数Mの一次元配列であり、全要素についてno+
busyに初期化されているものとする。
busyに初期化されているものとする。
アドレス値A (i)に施す演算fを恒等変換とすれば
、コンフリクトテーブルTablaの要素数Mはアクセ
スされ得ろすべてのアドレス数りとなる。
、コンフリクトテーブルTablaの要素数Mはアクセ
スされ得ろすべてのアドレス数りとなる。
もしも、Lが比咬的小さい数であればfを恒等変換とし
て、参照され得るすべてのアドレスについてコンフリク
トテーブルを設ければよい。もしも、アクセスされ得る
全アドレス数が非常に大きい場合には、全アドレスに対
するコンフリクトテーブルを持つことはハードウェア的
に不利である。この時には演算fによってアドレスのピ
ッ1〜数を減少させることが有効となる。例えばr、:
2z0である場合、fとして下位8ビツトだけを有効と
するような演算を考えれば、コンフリクトテーブルの要
素数は256で充分である。
て、参照され得るすべてのアドレスについてコンフリク
トテーブルを設ければよい。もしも、アクセスされ得る
全アドレス数が非常に大きい場合には、全アドレスに対
するコンフリクトテーブルを持つことはハードウェア的
に不利である。この時には演算fによってアドレスのピ
ッ1〜数を減少させることが有効となる。例えばr、:
2z0である場合、fとして下位8ビツトだけを有効と
するような演算を考えれば、コンフリクトテーブルの要
素数は256で充分である。
以上説明してきたように1本発明によれば、リストベク
トルに演算を行い、その演算結果を前記リストベクトル
に格納する処理において、同一の間接アドレス値が存在
する場合には、以前の処理が終了しリストベクトルの値
が更新された後に前記の同一の間接アドレスに対応する
リストベクトル要素を読出すため、同一の間接アドレス
値が存在しても正しい演算結果が得られる。また1本発
明を実現するために新たに必要となる処理は、関数Cの
演算およびテーブルルックアップだけであり、関数fを
マスク処理で行うことにすれば、高速に実現できる。こ
のため、同一の間接アドレス値が存在しない場合には、
従来の方法でも実行可能であるが、本発明の方法を■い
た場合にも速度の低下はほとんどなく、高速なベクトル
処理が可能である。
トルに演算を行い、その演算結果を前記リストベクトル
に格納する処理において、同一の間接アドレス値が存在
する場合には、以前の処理が終了しリストベクトルの値
が更新された後に前記の同一の間接アドレスに対応する
リストベクトル要素を読出すため、同一の間接アドレス
値が存在しても正しい演算結果が得られる。また1本発
明を実現するために新たに必要となる処理は、関数Cの
演算およびテーブルルックアップだけであり、関数fを
マスク処理で行うことにすれば、高速に実現できる。こ
のため、同一の間接アドレス値が存在しない場合には、
従来の方法でも実行可能であるが、本発明の方法を■い
た場合にも速度の低下はほとんどなく、高速なベクトル
処理が可能である。
最悪の場合、すなわち間接アドレス値がすべて同じ場合
には、処理は逐次的となるが、逐次処理を行うスカラプ
ロセッサの速度は保障される。
には、処理は逐次的となるが、逐次処理を行うスカラプ
ロセッサの速度は保障される。
同−の間接アドレス値が、稀に存在する場合に、本発明
の効果が最も発揮される。従来方法のベクトルプロセッ
サでは上記のような場合には正しい結果が得ら九ず、逐
次処理する必要があり高速な処理は実現できない。しか
し、上記のような場合にも、本発明によれば、リストベ
クトル読出しの遅延はほとんどなく、通常のベクトルプ
ロセッサと同等の速度が得られる。
の効果が最も発揮される。従来方法のベクトルプロセッ
サでは上記のような場合には正しい結果が得ら九ず、逐
次処理する必要があり高速な処理は実現できない。しか
し、上記のような場合にも、本発明によれば、リストベ
クトル読出しの遅延はほとんどなく、通常のベクトルプ
ロセッサと同等の速度が得られる。
本実施例では、リストベクトル要素にある定数を加算し
演算結果を前記リストベクトルに格納する場合について
述べたが、他のベクトルデータとの複数の演算について
も同様にベクトル処理できることは言うまでもない。
演算結果を前記リストベクトルに格納する場合について
述べたが、他のベクトルデータとの複数の演算について
も同様にベクトル処理できることは言うまでもない。
本実施例では、リストベクトル要素の競合からリストベ
クトル要素の主記憶装置からの読出しが抑止され、その
後競合がなくなった場合には、該リストベクトル要素を
主記憶装置に格納し、その直後に該要素を主記憶装置か
ら読出すことになる。
クトル要素の主記憶装置からの読出しが抑止され、その
後競合がなくなった場合には、該リストベクトル要素を
主記憶装置に格納し、その直後に該要素を主記憶装置か
ら読出すことになる。
本実施例の変形として、リードレジスタ13の出力をセ
レクタを介してライトレジスタ3に入力すれば、主記憶
装置を参照する必要がなくなり、より一層の高速化が実
現できる。
レクタを介してライトレジスタ3に入力すれば、主記憶
装置を参照する必要がなくなり、より一層の高速化が実
現できる。
〔発明の効果〕
以上のように、本発明によれば、リストベクトルに演算
を行い、その演算結果を前記リストベクトルに格納する
処理において、同一の間接アドレスが存在する場合にも
、ベクトル処理が可能となり、処理速度が向上するとい
う効果がある。
を行い、その演算結果を前記リストベクトルに格納する
処理において、同一の間接アドレスが存在する場合にも
、ベクトル処理が可能となり、処理速度が向上するとい
う効果がある。
第1図は本発明の一実施例の構成図、第2図は実施例の
タイムチャート、第3図は従来技術による一実施例の構
成図、第4図はそのタイ11チヤート、第5図(a)、
(b)はリストベクトル制御ユニットの処理を示すフロ
ーチャートである。
タイムチャート、第3図は従来技術による一実施例の構
成図、第4図はそのタイ11チヤート、第5図(a)、
(b)はリストベクトル制御ユニットの処理を示すフロ
ーチャートである。
Claims (1)
- 【特許請求の範囲】 1、複数のベクトルデータを有するベクトルプロセッサ
システムにおいて、間接アドレスベクトルデータ1に基
づき、演算用ベクトルデータ2を主記憶装置から読出す
手段と、該ベクトルデータ2に対して、予め指定された
演算を行う手段と、前記演算結果を前記間接アドレスベ
クトルデータ1に基づいて主記憶装置に書込む手段を有
するベクトルプロセッサにおいて、与えられたアドレス
値に対して、該アドレスで指定される主記憶装置上のデ
ータが現在実行中のベクトル演算の結果によって書変え
られる可能性があるか否かを判定するリストベクトル制
御ユニットを有し、前記間接アドレスベクトルデータ1
に基づき演算用ベクトルデータ2を主記憶装置から読出
す前に、現在実行中のベクトル演算の結果によって該ア
ドレス値が指定される主記憶装置上のデータが書変えら
れる可能性Pがあるか否かを前記リストベクトル制御ユ
ニットを用いて判定し、 (1)もしも、前記可能性Pがないならば、前記アドレ
ス値に基づき、演算用ベクトルデータ2を主記憶装置か
ら読み込み、該ベクトルデータ2に付して予め指定され
た演算を行い、前記演算結果を前記間接アドレスベクト
ルデータ1に基づいて主記憶装置に書込み、 (2)もしも前記可能性Pがあるならば、前記可能性P
がなくなるまで前記ベクトルデータ2の主記憶からの読
出しを抑止することを特徴とするベクトルプロセッサ。 2、第1項のベクトルプロセッサにおいて、参照され得
る全アドレスについての前記可能性Pを保持するコンフ
リクトテーブルを有し、前記可能性Pの判定を前記コン
フリクトテーブルのテーブルルックアップによって行う
ことを特徴とするベクトルプロセッサ。 3、第1項のベクトルプロセッサにおいて、アドレス値
に対して演算fを行う演算装置を有し、与えられたアド
レスaに対して前記演算fを施し、演算結果f(a)を
用いて前記コンフリクトテーブルを参照し前記可能性P
を判定することを特徴とするベクトルプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12791186A JPS62285180A (ja) | 1986-06-04 | 1986-06-04 | ベクトルプロセツサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12791186A JPS62285180A (ja) | 1986-06-04 | 1986-06-04 | ベクトルプロセツサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62285180A true JPS62285180A (ja) | 1987-12-11 |
Family
ID=14971695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12791186A Pending JPS62285180A (ja) | 1986-06-04 | 1986-06-04 | ベクトルプロセツサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62285180A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0392967A (ja) * | 1989-09-06 | 1991-04-18 | Nec Corp | 主記憶制御装置 |
JPH03263264A (ja) * | 1990-03-14 | 1991-11-22 | Nec Corp | 情報処理装置 |
-
1986
- 1986-06-04 JP JP12791186A patent/JPS62285180A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0392967A (ja) * | 1989-09-06 | 1991-04-18 | Nec Corp | 主記憶制御装置 |
JPH03263264A (ja) * | 1990-03-14 | 1991-11-22 | Nec Corp | 情報処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6061783A (en) | Method and apparatus for manipulation of bit fields directly in a memory source | |
EP0084114B1 (en) | Instruction prefetching data processing apparatus including a conditional branch instruction predictor | |
US6272596B1 (en) | Data processor | |
KR100346515B1 (ko) | 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일 | |
JPH07105002A (ja) | 計算機システム | |
JPH0814801B2 (ja) | プログラマブルアクセスメモリ | |
US5438669A (en) | Data processor with improved loop handling utilizing improved register allocation | |
US4541047A (en) | Pipelined data processing system | |
JPH0414385B2 (ja) | ||
JPS63240664A (ja) | 高速処理計算機 | |
KR100281007B1 (ko) | 마이크로 프로세서 및 이를 사용한 그래픽처리 장치 및 그래픽처리 방법 | |
JPS62285180A (ja) | ベクトルプロセツサ | |
JPS5941215B2 (ja) | 主記憶装置書込み制御方式 | |
JPS6022376B2 (ja) | キャッシュメモリ制御装置 | |
JPH0552534B2 (ja) | ||
US5829049A (en) | Simultaneous execution of two memory reference instructions with only one address calculation | |
JPS601655B2 (ja) | デ−タプリフェツチ方式 | |
JP3006204B2 (ja) | 情報処理装置 | |
JP2783285B2 (ja) | 情報処理装置 | |
JP2685713B2 (ja) | データ処理装置 | |
JPH01187634A (ja) | 情報処理装置 | |
JPS5844569A (ja) | 命令処理同期制御方式 | |
JPS5896346A (ja) | 階層型演算方式 | |
JP2895892B2 (ja) | データ処理装置 | |
JPS6250867B2 (ja) |