JPH0410108B2 - - Google Patents
Info
- Publication number
- JPH0410108B2 JPH0410108B2 JP57221392A JP22139282A JPH0410108B2 JP H0410108 B2 JPH0410108 B2 JP H0410108B2 JP 57221392 A JP57221392 A JP 57221392A JP 22139282 A JP22139282 A JP 22139282A JP H0410108 B2 JPH0410108 B2 JP H0410108B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- vector
- data
- main memory
- mask
- 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
Links
- 239000013598 vector Substances 0.000 claims description 113
- 238000000034 method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007781 pre-processing 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
- G06F15/8092—Array of vector units
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)
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、行列形式のデータ(ベクトルデー
タ)を高速に処理するのに好適なベクトル処理装
置に関するものである。
タ)を高速に処理するのに好適なベクトル処理装
置に関するものである。
従来、科学技術計算に頻繁に現われる大型行列
計算などの高速処理を行うベクトル処理装置が
種々提案されている。その一つに、ベクトル処理
装置に含まれる複数個のパイプライン演算器の高
速性、並列性が有効に発揮できるように、演算デ
ータの転送能力を向上させるべく、ベクトルレジ
スタとそのチエイニング機能を有するベクトル処
理装置がある(例えば米国特許4128880号参照)。
この中でベクトルレジスタは、主記憶装置上に格
納されているデータを一担取り込んで任意の演算
器へ送り、又、演算の中間結果のデータを一時的
に保持し、最終結果のデータのみを主記憶装置へ
ストアする役割をしており、演算のためのデータ
転送能力を高めている点において非常に有効な方
法である。
計算などの高速処理を行うベクトル処理装置が
種々提案されている。その一つに、ベクトル処理
装置に含まれる複数個のパイプライン演算器の高
速性、並列性が有効に発揮できるように、演算デ
ータの転送能力を向上させるべく、ベクトルレジ
スタとそのチエイニング機能を有するベクトル処
理装置がある(例えば米国特許4128880号参照)。
この中でベクトルレジスタは、主記憶装置上に格
納されているデータを一担取り込んで任意の演算
器へ送り、又、演算の中間結果のデータを一時的
に保持し、最終結果のデータのみを主記憶装置へ
ストアする役割をしており、演算のためのデータ
転送能力を高めている点において非常に有効な方
法である。
しかし、ベクトル処理装置はバンク・コンフリ
クトに対して性能低下が大きい。例えば非定常・
非線形解析の場合は、帯幅の小さい帯行列の三角
分解を高速に行う必要があるが、帯幅が小さい場
合はベクトル長が小さく、ベクトル処理装置の効
果が小さい。この対索としてリスト・ベクトルを
使用し、二重ループを一重ループにすることが考
えられる。この場合、主記憶装置上の同一データ
を数回又は十数回続けてベクトルレジスタに読み
込む必要があるため、バンク・コンフリクトが多
発し、性能が大幅に低下する。
クトに対して性能低下が大きい。例えば非定常・
非線形解析の場合は、帯幅の小さい帯行列の三角
分解を高速に行う必要があるが、帯幅が小さい場
合はベクトル長が小さく、ベクトル処理装置の効
果が小さい。この対索としてリスト・ベクトルを
使用し、二重ループを一重ループにすることが考
えられる。この場合、主記憶装置上の同一データ
を数回又は十数回続けてベクトルレジスタに読み
込む必要があるため、バンク・コンフリクトが多
発し、性能が大幅に低下する。
本発明の目的は、ベクトルレジスタを備えたベ
クトル処理装置において、主記憶装置上に記憶さ
れているベクトルデータの各要素を、リスト・ベ
クトル形式により、それぞれ適当な個数に伸長さ
せてベクトルレジスタにロードする場合に多発す
るパンク・コンフリクトを減少せしめ、該ベクト
ルレジスタに高速に転送することにある。
クトル処理装置において、主記憶装置上に記憶さ
れているベクトルデータの各要素を、リスト・ベ
クトル形式により、それぞれ適当な個数に伸長さ
せてベクトルレジスタにロードする場合に多発す
るパンク・コンフリクトを減少せしめ、該ベクト
ルレジスタに高速に転送することにある。
本発明の要点は、主記憶装置から読み出したデ
ータを退避しておくセーブレジスタと、ベクトル
レジスタと一対一に対応するマスクレジスタを設
け、マスクレジスタの内容(マスク情報)を参照
して、それが“1”の場合には主記憶装置から読
み出したデータをそのままベクトルレジスタの対
応する記憶位置に転送し、マスクレジスタのビツ
トが“0”の場合は、一つ前に転送してセーブレ
ジスタに退避しておいた同じデータをベクトルレ
ジスタの対応する記憶位置に転送する点にある。
ータを退避しておくセーブレジスタと、ベクトル
レジスタと一対一に対応するマスクレジスタを設
け、マスクレジスタの内容(マスク情報)を参照
して、それが“1”の場合には主記憶装置から読
み出したデータをそのままベクトルレジスタの対
応する記憶位置に転送し、マスクレジスタのビツ
トが“0”の場合は、一つ前に転送してセーブレ
ジスタに退避しておいた同じデータをベクトルレ
ジスタの対応する記憶位置に転送する点にある。
第1図は本発明が適用されるベクトル処理装置
の全体構成を示したもので、1はベクトルレジス
タ(VR)、2はデータ分配回路、3はデータ選
択回路、4は演算器、5は主記憶装置(MS)、
6はマスクレジスタ、7は記憶制御装置である。
ベクトルレジスタ1はベクトルを形成する一連の
エレメント・データ(以下、単にデータという)
を格納することができ、ここでは、各々のベクト
ルレジスタは8バイト長のデータを128個格納で
きるとしている。
の全体構成を示したもので、1はベクトルレジス
タ(VR)、2はデータ分配回路、3はデータ選
択回路、4は演算器、5は主記憶装置(MS)、
6はマスクレジスタ、7は記憶制御装置である。
ベクトルレジスタ1はベクトルを形成する一連の
エレメント・データ(以下、単にデータという)
を格納することができ、ここでは、各々のベクト
ルレジスタは8バイト長のデータを128個格納で
きるとしている。
ベクトル命令は主記憶装置5に格納されている
が、これを記憶制御装置7に取り込む。記憶制御
装置7においてベクトル命令が解読され、演算に
必要なデータが主記憶装置5からデータ分配回路
2を通りベクトルレジスタ1へ読み出される。ベ
クトルレジスタ1に取り込まれたデータはデータ
選択回路3を通し、所望の演算器4に送られて演
算が行なわれ、結果が再びベクトルレジスタ1へ
書き込まれる。演算器4は浮動小数点加算器、乗
算器などのそれぞれ独立した演算器からなる。こ
のような演算器4とベクトルレジスタ1間のデー
タ転送を繰り返した後、得られた最終結果データ
がベクトルレジスタ1から選択回路3を通り、記
憶制御装置7経由で主記憶装置5へ書き込まれ
る。
が、これを記憶制御装置7に取り込む。記憶制御
装置7においてベクトル命令が解読され、演算に
必要なデータが主記憶装置5からデータ分配回路
2を通りベクトルレジスタ1へ読み出される。ベ
クトルレジスタ1に取り込まれたデータはデータ
選択回路3を通し、所望の演算器4に送られて演
算が行なわれ、結果が再びベクトルレジスタ1へ
書き込まれる。演算器4は浮動小数点加算器、乗
算器などのそれぞれ独立した演算器からなる。こ
のような演算器4とベクトルレジスタ1間のデー
タ転送を繰り返した後、得られた最終結果データ
がベクトルレジスタ1から選択回路3を通り、記
憶制御装置7経由で主記憶装置5へ書き込まれ
る。
たとえばベクトル〓、〓の加算を行い、その結
果をベクトル〓に入れる場合は次のようになる。
果をベクトル〓に入れる場合は次のようになる。
LVR VR0、〓(ベクトル〓をVR0へ格納)
LVR VR2、〓(ベクトル〓をVR2へ格納)
VEM VR4、VR0、VR2(〓+〓→VR4)
STVR VR4、〓(a+bの結果をcへ格
納) この例の場合、まずの処理で主記憶装置5上
のベクトル〓の内容がベクトルレジスタVR0へ
格納され、次にの処理で主記憶装置5上のベク
トル〓の内容がVR2へ格納される。その後、
の処理でVR0とVR2の内容が加算され、結果が
VR4へ格納される。加算の演算がすべて終了す
ると、次にの処理でVR4の内容が主記憶装置
5上のベクトル〓へ格納される。
納) この例の場合、まずの処理で主記憶装置5上
のベクトル〓の内容がベクトルレジスタVR0へ
格納され、次にの処理で主記憶装置5上のベク
トル〓の内容がVR2へ格納される。その後、
の処理でVR0とVR2の内容が加算され、結果が
VR4へ格納される。加算の演算がすべて終了す
ると、次にの処理でVR4の内容が主記憶装置
5上のベクトル〓へ格納される。
第1図において、マスクレジスタ6は本発明に
より追加されたもので、主記憶装置5上のベクト
ル〓や〓のエレメント・データを適用な個数に伸
長してベクトルレジスタ1へ格納する必要がある
場合に用いられる。マスクレジスタ6は複数の列
からなり、各列が各ベクトルレジスタ1に対応
し、列の各ビツトがベクトルレジスタ1の各記憶
位置と一対一に対応する。例えば、マスクレジス
タ6の一番左側の1列が一番左側のベクトルレジ
スタ1に対応し、その0〜127ビツトが当該ベク
トルレジスタ1の0〜127番の記憶位置に対応す
る。
より追加されたもので、主記憶装置5上のベクト
ル〓や〓のエレメント・データを適用な個数に伸
長してベクトルレジスタ1へ格納する必要がある
場合に用いられる。マスクレジスタ6は複数の列
からなり、各列が各ベクトルレジスタ1に対応
し、列の各ビツトがベクトルレジスタ1の各記憶
位置と一対一に対応する。例えば、マスクレジス
タ6の一番左側の1列が一番左側のベクトルレジ
スタ1に対応し、その0〜127ビツトが当該ベク
トルレジスタ1の0〜127番の記憶位置に対応す
る。
第2図はマスクレジスタ6を用いて主記憶装置
5上のデータをベクトルレジスタ1上に伸長する
処理の概略を示したものである。なお、ここでの
マスクレジスタ6は、実際には第1図のマスクレ
ジスタ6の1列分に相当する。この第2図の例
は、主記憶装置5上の7個のデータをベクトルレ
ジスタ1上では28個のデーテに伸長した場合の例
である。マスクレジスタ6の内容(マスク情報)
は、本処理を行う前にマスクセツト命令などによ
りあらかじめセツトしておく。このマスクレジス
タ6を0ビツトから順に参照していき、その内容
が“1”のときは主記憶装置5よりデータを読み
出し、そのデータをそのままベクトルレジスタ1
の該当記憶位置に転送するが、その内容が“0”
のときは一つ前に転送したのと同じデータを主記
憶装置5から再読み出しを行うことなしに、あら
かじめ退避しておいた同一データをベクトルレジ
スタ1の該当記憶位置に引き続き転送し格納す
る。第2図の例では、主記憶装置5上のデータa0
は、マスクレジスタ6のビツト0〜6の内容にし
たがい、ベクトルレジスタ1上では0番から6番
の記憶位置まで7個格納される。同様に主記憶装
置5上のデータa1はマスクレジスタ6のビツト7
〜12の内容にしたがい、ベクトルレジスタ1上で
は7番から12番の記憶位置まで6個格納される。
以下同様に、主記憶装置5上のデータがそれぞれ
ベクトルレジスタ1上に重複・伸長されて格納さ
れる。このような処理を行う命令をここでは
LVREX(Load Vector Register Extended)命
令と名付けることにする。
5上のデータをベクトルレジスタ1上に伸長する
処理の概略を示したものである。なお、ここでの
マスクレジスタ6は、実際には第1図のマスクレ
ジスタ6の1列分に相当する。この第2図の例
は、主記憶装置5上の7個のデータをベクトルレ
ジスタ1上では28個のデーテに伸長した場合の例
である。マスクレジスタ6の内容(マスク情報)
は、本処理を行う前にマスクセツト命令などによ
りあらかじめセツトしておく。このマスクレジス
タ6を0ビツトから順に参照していき、その内容
が“1”のときは主記憶装置5よりデータを読み
出し、そのデータをそのままベクトルレジスタ1
の該当記憶位置に転送するが、その内容が“0”
のときは一つ前に転送したのと同じデータを主記
憶装置5から再読み出しを行うことなしに、あら
かじめ退避しておいた同一データをベクトルレジ
スタ1の該当記憶位置に引き続き転送し格納す
る。第2図の例では、主記憶装置5上のデータa0
は、マスクレジスタ6のビツト0〜6の内容にし
たがい、ベクトルレジスタ1上では0番から6番
の記憶位置まで7個格納される。同様に主記憶装
置5上のデータa1はマスクレジスタ6のビツト7
〜12の内容にしたがい、ベクトルレジスタ1上で
は7番から12番の記憶位置まで6個格納される。
以下同様に、主記憶装置5上のデータがそれぞれ
ベクトルレジスタ1上に重複・伸長されて格納さ
れる。このような処理を行う命令をここでは
LVREX(Load Vector Register Extended)命
令と名付けることにする。
第3図は本発明の一実施例例のブロツク図で、
特にマスクレジスタ6と記憶制御装置7内の本発
明に関係する構成を示したものである。
特にマスクレジスタ6と記憶制御装置7内の本発
明に関係する構成を示したものである。
第3図において、主記憶装置5より読み出され
たベクトルロード命令が命令解読回路8で解読さ
れることにより、主記憶装置5からベクトルレジ
スタ1へのベクトルデータのロード処理が開始さ
れる。アドレスレジスタ(VAR)10は主記憶
装置5上のベクトルデータの先頭アドレスを保持
するレジスタ、インクリメントレジスタ(VIR)
11はベクトルデータの要素(エレメント・デー
タ)間の距離を保持するレジスタ・ベクトル長セ
ツトレジスタ(LNG)9は主記憶装置5から読
み出すベクトル要素数(エレメント・データ数)
を保持するレジスタである。
たベクトルロード命令が命令解読回路8で解読さ
れることにより、主記憶装置5からベクトルレジ
スタ1へのベクトルデータのロード処理が開始さ
れる。アドレスレジスタ(VAR)10は主記憶
装置5上のベクトルデータの先頭アドレスを保持
するレジスタ、インクリメントレジスタ(VIR)
11はベクトルデータの要素(エレメント・デー
タ)間の距離を保持するレジスタ・ベクトル長セ
ツトレジスタ(LNG)9は主記憶装置5から読
み出すベクトル要素数(エレメント・データ数)
を保持するレジスタである。
加算器15は主記憶装置5のアドレスを生成す
る回路であり、初回はアドレスレジスタ10の内
容を選択してそのまま出力するが、2回目以降は
前回の加算結果とインクリメントレジスタ11の
内容を選択し、両者の加算結果を出力する。リク
エストが出される毎に、該加算器15で主記憶装
置5のアドレスを生成して、リクエスト信号と共
に主記憶装置5に送り、データを読み出す。
LVREX命令以外の一般のベクトルデータのロー
ド命令の場合は、該主記憶装置5から読み出され
たデータはそのままベクトルレジスタ1へ転送す
る。同時に、ベクトル長セツトレジスタ9に入つ
ている内容を選択して減算器14に送り、一つ減
算する。以上の動作をゼロ検出回路16でゼロが
検出されるまで繰り返すことにより、ベクトル長
セツトレジスタ9の内容で示されるベクトル要素
数がベクトルレジスタ1へ転送される。アンド回
路17はリクエスト許可、減算器14の出力がゼ
ロでないという条件で、リクエスト信号を出力す
る回路である。
る回路であり、初回はアドレスレジスタ10の内
容を選択してそのまま出力するが、2回目以降は
前回の加算結果とインクリメントレジスタ11の
内容を選択し、両者の加算結果を出力する。リク
エストが出される毎に、該加算器15で主記憶装
置5のアドレスを生成して、リクエスト信号と共
に主記憶装置5に送り、データを読み出す。
LVREX命令以外の一般のベクトルデータのロー
ド命令の場合は、該主記憶装置5から読み出され
たデータはそのままベクトルレジスタ1へ転送す
る。同時に、ベクトル長セツトレジスタ9に入つ
ている内容を選択して減算器14に送り、一つ減
算する。以上の動作をゼロ検出回路16でゼロが
検出されるまで繰り返すことにより、ベクトル長
セツトレジスタ9の内容で示されるベクトル要素
数がベクトルレジスタ1へ転送される。アンド回
路17はリクエスト許可、減算器14の出力がゼ
ロでないという条件で、リクエスト信号を出力す
る回路である。
一方、LVREX命令の場合は、ベクトル長セツ
トレジスタ9の代りに、マスクレジスタ6で示さ
れた内容の“1”の数をビツト数カウント回路1
3でカウントし、その結果を減算器14の入力と
して、マスクレジスタの内容で示された“1”の
数の分だけ主記憶装置5へリクエストを出す。主
記憶装置5のアドレス生成は、LVREX命令以外
の上述の一般のロード命令の場合と同様である。
ただし、LVREX命令では主記憶装置5から読み
出されたデータは、一担、セーブレジスタ12に
格納する。そして、マスクレジスタ6を参照し
て、その内容が“1”の場合はそのままベクトル
レジスタ1へ転送するが、“0”の場合は、該
“0”が継続している数だけセーブレジスタ12
のデータを引き続いてベクトルレジスタ1へ転送
する。この間、主記憶装置5へのリクエストは発
生させない。ポインタ18はマスクレジスタ6の
アドレスカウンタで、セーブレジスタ12のデー
タがベクトルレジスタ1へ転送される毎に、値が
次に更新していく。
トレジスタ9の代りに、マスクレジスタ6で示さ
れた内容の“1”の数をビツト数カウント回路1
3でカウントし、その結果を減算器14の入力と
して、マスクレジスタの内容で示された“1”の
数の分だけ主記憶装置5へリクエストを出す。主
記憶装置5のアドレス生成は、LVREX命令以外
の上述の一般のロード命令の場合と同様である。
ただし、LVREX命令では主記憶装置5から読み
出されたデータは、一担、セーブレジスタ12に
格納する。そして、マスクレジスタ6を参照し
て、その内容が“1”の場合はそのままベクトル
レジスタ1へ転送するが、“0”の場合は、該
“0”が継続している数だけセーブレジスタ12
のデータを引き続いてベクトルレジスタ1へ転送
する。この間、主記憶装置5へのリクエストは発
生させない。ポインタ18はマスクレジスタ6の
アドレスカウンタで、セーブレジスタ12のデー
タがベクトルレジスタ1へ転送される毎に、値が
次に更新していく。
次に、LVREX命令の際の第3図の動作を、第
2図を例にして詳述する。マスクレジスタ6には
第2図の内容のマスク情報があらかじめセツトさ
れているとする。
2図を例にして詳述する。マスクレジスタ6には
第2図の内容のマスク情報があらかじめセツトさ
れているとする。
主記憶装置5からLVREX命令がフエツチされ
ると、命令解読回路8は、該LVREX命令で指定
された主記憶アドレス(要素a0のアドレス)をア
ドレスレジスタ10に、アドレスインクリメント
値(要素間の距離)をインクリメントレジスタ1
1に設定する。LVREX命令ではベクトル長セツ
トレジスタ9は不使用である。その代りに、ビツ
ト数カウント回路13が命令解読回路8から起動
を受け、マスクレジスタ6中の“1”の数をカウ
ントし、その結果を減算器14の初期値とする。
これは、例えば、ポインタ18の値を一循させて
マスクレジスタ6を走査し、該マスクレジスタ6
の内容をビツト0から次々に読み出してビツト数
カウント回路13の入力とすることで実現する。
第2図より、減算器14の初期値は“7”であ
る。なお、ポインタ18の値は、一循後“0”に
戻り、マスクレジスタ6のビツト0を指示する。
ると、命令解読回路8は、該LVREX命令で指定
された主記憶アドレス(要素a0のアドレス)をア
ドレスレジスタ10に、アドレスインクリメント
値(要素間の距離)をインクリメントレジスタ1
1に設定する。LVREX命令ではベクトル長セツ
トレジスタ9は不使用である。その代りに、ビツ
ト数カウント回路13が命令解読回路8から起動
を受け、マスクレジスタ6中の“1”の数をカウ
ントし、その結果を減算器14の初期値とする。
これは、例えば、ポインタ18の値を一循させて
マスクレジスタ6を走査し、該マスクレジスタ6
の内容をビツト0から次々に読み出してビツト数
カウント回路13の入力とすることで実現する。
第2図より、減算器14の初期値は“7”であ
る。なお、ポインタ18の値は、一循後“0”に
戻り、マスクレジスタ6のビツト0を指示する。
以上でベクトルデータロードのための前処理が
終了し、命令解読回路8はアンド回路17を介し
て1回目のリクエスト信号を主記憶装置5に送
る。同時に、加算器15はアドレスレジスタ10
の内容をそのまま出力し、主記憶装置5に送る。
この結果、主記憶装置5からデータa0が読み出さ
れ、一担、これをセーブレジスタ12に格納す
る。減算器14は初期値“7”を一つ減し“6”
とする。一方、ポインタ18の値は“0”で、マ
スクレジスタ6のビツト0を指示しているが、該
マスクレジスタ6のビツト0は“1”であるた
め、上記主記憶装置5から読み出されたデータa0
を、セーブレジスタ12に格納すると同時にその
まゝベクトルレジスタ1へ転送する。その後、ポ
インタ18の値を1つ更新して“1”とする。マ
スクレジスタ6のビツト1は“0”であるため、
セーブレジスタ12に格納しておいたデータa0を
ベクトルレジスタ1へ転送する。そして、再びポ
インタ18の値を1つ更新して“2”とする。マ
スクレジスタ6のビツト2も“0”であるため、
今度もセーブレジスタ12のデータa0をベクトル
レジスタ1へ転送する。以下、マスクレジスタ6
のビツトが“0”の間、ポインタ18の更新、セ
ーブレジスタ12からベクトルレジスタ1へのデ
ータ転送を繰り返し実行する。この間、命令解読
回路8は主記憶装置5へのリクエストを発生させ
ない。このようにして、ポインタ18の値が
“6”になつた時点では、即ち、マスクレジスタ
6がビツト6まで参照された時点では、ベクトル
レジスタ1上では0〜6番の記憶位置にデータa0
が格納される。
終了し、命令解読回路8はアンド回路17を介し
て1回目のリクエスト信号を主記憶装置5に送
る。同時に、加算器15はアドレスレジスタ10
の内容をそのまま出力し、主記憶装置5に送る。
この結果、主記憶装置5からデータa0が読み出さ
れ、一担、これをセーブレジスタ12に格納す
る。減算器14は初期値“7”を一つ減し“6”
とする。一方、ポインタ18の値は“0”で、マ
スクレジスタ6のビツト0を指示しているが、該
マスクレジスタ6のビツト0は“1”であるた
め、上記主記憶装置5から読み出されたデータa0
を、セーブレジスタ12に格納すると同時にその
まゝベクトルレジスタ1へ転送する。その後、ポ
インタ18の値を1つ更新して“1”とする。マ
スクレジスタ6のビツト1は“0”であるため、
セーブレジスタ12に格納しておいたデータa0を
ベクトルレジスタ1へ転送する。そして、再びポ
インタ18の値を1つ更新して“2”とする。マ
スクレジスタ6のビツト2も“0”であるため、
今度もセーブレジスタ12のデータa0をベクトル
レジスタ1へ転送する。以下、マスクレジスタ6
のビツトが“0”の間、ポインタ18の更新、セ
ーブレジスタ12からベクトルレジスタ1へのデ
ータ転送を繰り返し実行する。この間、命令解読
回路8は主記憶装置5へのリクエストを発生させ
ない。このようにして、ポインタ18の値が
“6”になつた時点では、即ち、マスクレジスタ
6がビツト6まで参照された時点では、ベクトル
レジスタ1上では0〜6番の記憶位置にデータa0
が格納される。
次に、ポインタ18の値が“7”になり、マス
クレジスタ6のビツト7を指示する。該マスクレ
ジスタ6のビツト7は“1”である。この場合、
セーブレジスタ12のデータのベクトルレジスタ
1への転送及びポインタ18の更新を中継する。
そして、命令解読回路8はアンド回路17を介し
て2回目のリクエスト信号を主記憶装置5に送
り、同時に加算器15は前回の加算結果(即ち、
アドレスレジスタ10の内容)にインクリメント
レジスタ11の値を加算した値をアドレスとして
主記憶装置5に送る。この結果、主記憶装置5か
らデータa1が読み出され、これをそのままベクト
ルレジスタ1へ転送すると共にセーブレジスタ1
2に格納する。即ち、セーブレジスタ12のデー
タはa0からa1に置換される。減算器14は前回の
減算結果を一つ減じて“5”とする。その後、ポ
インタ18の更新動作を再開する。このようにし
てポインタ18の値が“12”になり、マスクレジ
スタ6がビツト12まで参照された時点では、ベク
トルレジスタ1上では7〜12番の記憶位置にデー
タa1が格納される。
クレジスタ6のビツト7を指示する。該マスクレ
ジスタ6のビツト7は“1”である。この場合、
セーブレジスタ12のデータのベクトルレジスタ
1への転送及びポインタ18の更新を中継する。
そして、命令解読回路8はアンド回路17を介し
て2回目のリクエスト信号を主記憶装置5に送
り、同時に加算器15は前回の加算結果(即ち、
アドレスレジスタ10の内容)にインクリメント
レジスタ11の値を加算した値をアドレスとして
主記憶装置5に送る。この結果、主記憶装置5か
らデータa1が読み出され、これをそのままベクト
ルレジスタ1へ転送すると共にセーブレジスタ1
2に格納する。即ち、セーブレジスタ12のデー
タはa0からa1に置換される。減算器14は前回の
減算結果を一つ減じて“5”とする。その後、ポ
インタ18の更新動作を再開する。このようにし
てポインタ18の値が“12”になり、マスクレジ
スタ6がビツト12まで参照された時点では、ベク
トルレジスタ1上では7〜12番の記憶位置にデー
タa1が格納される。
以下、同様にして、ポインタ18の値が“13”、
“18”、“22”、“25”、“27”になつた時点でのみ主
記憶装置5にリクエスト信号が送られて、主記憶
装置5からデータa2,a3,a4,a5,a6が読み出さ
れる。そして、マスクレジスタ6を参照しなが
ら、ベクトルレジスタ1上では、13〜17番位置に
データa2が、18〜21番位置にデータa3が、22〜24
番位置にデータa4が、25と26番位置にデータa5
が、そして、27番位置にデータa6が順次格納され
ることになる。
“18”、“22”、“25”、“27”になつた時点でのみ主
記憶装置5にリクエスト信号が送られて、主記憶
装置5からデータa2,a3,a4,a5,a6が読み出さ
れる。そして、マスクレジスタ6を参照しなが
ら、ベクトルレジスタ1上では、13〜17番位置に
データa2が、18〜21番位置にデータa3が、22〜24
番位置にデータa4が、25と26番位置にデータa5
が、そして、27番位置にデータa6が順次格納され
ることになる。
なお、主記憶装置5から最後のデータa6を読み
出すためのリクエストが発せられると、減算器1
4の減算結果は“0”になる。これをゼロ検出回
路16が検出すると、その後の主記憶装置5への
リクエスト信号の送出は停止する。したがつて、
主記憶装置5から読み出されたa6がベクトルレジ
スタ1へ転送されて格納された時点で、当該
LVREX命令の処理が終了となる。
出すためのリクエストが発せられると、減算器1
4の減算結果は“0”になる。これをゼロ検出回
路16が検出すると、その後の主記憶装置5への
リクエスト信号の送出は停止する。したがつて、
主記憶装置5から読み出されたa6がベクトルレジ
スタ1へ転送されて格納された時点で、当該
LVREX命令の処理が終了となる。
このようにして、第2図の例では、7回リクエ
ストを出して主記憶装置5上から7個のデータa0
〜a6を読み出すだけで、これをベクトルレジスタ
1上では28個のデータに伸長することができる。
しかも、これは1回のベクトルデータロード命令
(LVREX命令)のフエツチで実現される。
ストを出して主記憶装置5上から7個のデータa0
〜a6を読み出すだけで、これをベクトルレジスタ
1上では28個のデータに伸長することができる。
しかも、これは1回のベクトルデータロード命令
(LVREX命令)のフエツチで実現される。
以上の説明から明らかな如く、本発明によれ
ば、ベクトルレジスタを備えたベクトル処理装置
において、主記憶装置上の同一データを数回又は
十数回続けてベクトルレジスタに読み込み、ベク
トル処理を行う必要がある場合、主記憶装置から
は当該データを一度読み出すだけでよいため、パ
ンク・コンフリクトが大幅に軽減され、ベクトル
処理の立上げに必要な時間を短縮することができ
る。また、本発明ではベクトルレジスタと一対一
に対応するマスクレジスタを設け、該マスクレジ
スタを参照して、主記憶装置上のデータを読み出
すべきか、あるいは主記憶装置から読み出して退
避しておいた同一データを引き続いてベクトルレ
ジスタへ転送すべきかを判定しているため、主記
憶装置上に記憶されているベクトルデータの複数
要素を、リスト・ベクトル形式により各要素毎に
適当な個数に伸長してベクトルレジスタにロード
する場合、複数要素について1回のベクトルロー
ド命令(LVREX命令)の発行ですますことがで
きる利点がある。
ば、ベクトルレジスタを備えたベクトル処理装置
において、主記憶装置上の同一データを数回又は
十数回続けてベクトルレジスタに読み込み、ベク
トル処理を行う必要がある場合、主記憶装置から
は当該データを一度読み出すだけでよいため、パ
ンク・コンフリクトが大幅に軽減され、ベクトル
処理の立上げに必要な時間を短縮することができ
る。また、本発明ではベクトルレジスタと一対一
に対応するマスクレジスタを設け、該マスクレジ
スタを参照して、主記憶装置上のデータを読み出
すべきか、あるいは主記憶装置から読み出して退
避しておいた同一データを引き続いてベクトルレ
ジスタへ転送すべきかを判定しているため、主記
憶装置上に記憶されているベクトルデータの複数
要素を、リスト・ベクトル形式により各要素毎に
適当な個数に伸長してベクトルレジスタにロード
する場合、複数要素について1回のベクトルロー
ド命令(LVREX命令)の発行ですますことがで
きる利点がある。
第1図は本発明が適用されるベクトル処理装置
の全体構成図、第2図は本発明の原理説明図、第
3図は本発明の一実施例のブロツク図である。 1……ベクトルレジスタ、2……データ分配回
路、3……データ選択回路、4……演算器、5…
…主記憶装置、6……マスクレジスタ、7……記
憶制御装置、8……ベクトル命令解読回路、9…
…ベクトル長セツトレジスタ、10……アドレス
レジスタ、11……インクリメントレジスタ、1
2……セーブレジスタ、13……ビツト数カウン
ト回路、14……減算器、15……AND回路、
18……ポインタ。
の全体構成図、第2図は本発明の原理説明図、第
3図は本発明の一実施例のブロツク図である。 1……ベクトルレジスタ、2……データ分配回
路、3……データ選択回路、4……演算器、5…
…主記憶装置、6……マスクレジスタ、7……記
憶制御装置、8……ベクトル命令解読回路、9…
…ベクトル長セツトレジスタ、10……アドレス
レジスタ、11……インクリメントレジスタ、1
2……セーブレジスタ、13……ビツト数カウン
ト回路、14……減算器、15……AND回路、
18……ポインタ。
Claims (1)
- 1 主記憶装置に格納されているベクトルデータ
を取り込んで任意の演算器へ送り、又、演算の中
間結果のベクトルデータを保持するベクトルレジ
スタを備えたベクトル処理装置において、主記憶
装置から読み出したデータを退避しておくセーブ
レジスタと、前記ベクトルレジスタの各記憶位置
に対応してマスク情報を格納するマスクレジスタ
とを設け、該マスクレジスタのマスク情報が第1
状態の場合には主記憶装置から読み出したデータ
をそのままベクトルレジスタの対応する記憶位置
に転送し、第2状態の場合は、その前に転送して
前記セーブレジスタに退避しておいた同じデータ
をベクトルレジスタの対応する記憶位置に転送す
ることを特徴とするベクトル処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP57221392A JPS59111569A (ja) | 1982-12-17 | 1982-12-17 | ベクトル処理装置 |
US06/562,224 US4621324A (en) | 1982-12-17 | 1983-12-16 | Processor for carrying out vector operation wherein the same vector element is used repeatedly in succession |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP57221392A JPS59111569A (ja) | 1982-12-17 | 1982-12-17 | ベクトル処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS59111569A JPS59111569A (ja) | 1984-06-27 |
JPH0410108B2 true JPH0410108B2 (ja) | 1992-02-24 |
Family
ID=16766045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP57221392A Granted JPS59111569A (ja) | 1982-12-17 | 1982-12-17 | ベクトル処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US4621324A (ja) |
JP (1) | JPS59111569A (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5975365A (ja) * | 1982-10-22 | 1984-04-28 | Hitachi Ltd | ベクトル処理装置 |
US4967343A (en) * | 1983-05-18 | 1990-10-30 | International Business Machines Corp. | Pipelined parallel vector processor including parallel configured element processors for processing vector elements in parallel fashion |
US4800486A (en) * | 1983-09-29 | 1989-01-24 | Tandem Computers Incorporated | Multiple data patch CPU architecture |
EP0167959B1 (en) * | 1984-07-02 | 1992-05-06 | Nec Corporation | Computer vector register processing |
JPS6266377A (ja) * | 1985-09-19 | 1987-03-25 | Fujitsu Ltd | マスクパタ−ン生成方式 |
JP2667806B2 (ja) * | 1985-10-11 | 1997-10-27 | 株式会社日立製作所 | ベクトルプロセツサ |
JPH0731669B2 (ja) * | 1986-04-04 | 1995-04-10 | 株式会社日立製作所 | ベクトル・プロセツサ |
US5109523A (en) * | 1987-01-23 | 1992-04-28 | Hitachi, Ltd. | Method for determining whether data signals of a first set are related to data signal of a second set |
JP2665111B2 (ja) * | 1992-06-18 | 1997-10-22 | 日本電気株式会社 | ベクトル処理装置 |
US5717947A (en) * | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
JPH07271764A (ja) * | 1994-03-24 | 1995-10-20 | Internatl Business Mach Corp <Ibm> | 計算機プロセッサ及びシステム |
JP5699554B2 (ja) * | 2010-11-11 | 2015-04-15 | 富士通株式会社 | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム |
WO2013095668A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for performing vector packed compression and repeat |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5757369A (en) * | 1980-09-22 | 1982-04-06 | Fujitsu Ltd | Access control system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4128880A (en) * | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
JPS5852265B2 (ja) * | 1977-01-12 | 1983-11-21 | 株式会社日立製作所 | デ−タ処理装置 |
KR860001434B1 (ko) * | 1980-11-21 | 1986-09-24 | 후지쑤 가부시끼가이샤 | 데이타 처리시 스템 |
JPS57209570A (en) * | 1981-06-19 | 1982-12-22 | Fujitsu Ltd | Vector processing device |
-
1982
- 1982-12-17 JP JP57221392A patent/JPS59111569A/ja active Granted
-
1983
- 1983-12-16 US US06/562,224 patent/US4621324A/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5757369A (en) * | 1980-09-22 | 1982-04-06 | Fujitsu Ltd | Access control system |
Also Published As
Publication number | Publication date |
---|---|
US4621324A (en) | 1986-11-04 |
JPS59111569A (ja) | 1984-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0240032B1 (en) | Vector processor with vector data compression/expansion capability | |
US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
JPH0410108B2 (ja) | ||
JP2531648B2 (ja) | メモリ装置 | |
JPH0248931B2 (ja) | ||
US4924425A (en) | Method for immediately writing an operand to a selected word location within a block of a buffer memory | |
US4924377A (en) | Pipelined instruction processor capable of reading dependent operands in parallel | |
US20040044885A1 (en) | Performing repeat string operations | |
JPH0363092B2 (ja) | ||
JPS6211736B2 (ja) | ||
JP3317985B2 (ja) | 擬似ベクトルプロセッサ | |
JPH05143451A (ja) | データ処理装置 | |
JPS58214963A (ja) | ベクトル処理装置 | |
JP3278441B2 (ja) | ベクトル処理装置 | |
JPH0222418B2 (ja) | ||
JPS6250867B2 (ja) | ||
JPS60186964A (ja) | ベクトル処理装置 | |
JPH0452488B2 (ja) | ||
JP2716254B2 (ja) | リストベクトル処理装置 | |
JPS62226275A (ja) | ベクトル処理装置 | |
JPH01255933A (ja) | 掃出し制御方式 | |
JP2798492B2 (ja) | リストベクトル処理装置 | |
JPS6058503B2 (ja) | デ−タ処理制御方式 | |
JPS61196371A (ja) | ベクトル処理装置 | |
JPH0823820B2 (ja) | アドレス・オーバラップ・チェック処理装置 |