JP2798492B2 - リストベクトル処理装置 - Google Patents

リストベクトル処理装置

Info

Publication number
JP2798492B2
JP2798492B2 JP24960090A JP24960090A JP2798492B2 JP 2798492 B2 JP2798492 B2 JP 2798492B2 JP 24960090 A JP24960090 A JP 24960090A JP 24960090 A JP24960090 A JP 24960090A JP 2798492 B2 JP2798492 B2 JP 2798492B2
Authority
JP
Japan
Prior art keywords
address
vector
register
data
storage device
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
Application number
JP24960090A
Other languages
English (en)
Other versions
JPH04127367A (ja
Inventor
格 岡野
Original Assignee
甲府日本電気株式会社
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 甲府日本電気株式会社 filed Critical 甲府日本電気株式会社
Priority to JP24960090A priority Critical patent/JP2798492B2/ja
Publication of JPH04127367A publication Critical patent/JPH04127367A/ja
Application granted granted Critical
Publication of JP2798492B2 publication Critical patent/JP2798492B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 技術分野 本発明はリストベクトル処理装置に関し、特にリスト
ベクトルをベクトルレジスタ上で扱う技術に関するもの
である。
従来技術 従来、この種のリストベクトル処理装置において、主
記憶装置上に有るリストデータを処理する場合、先ず主
記憶装置上のアドレスを含むアドレスポインタをベクト
ルレジスタ上に作り、このアドレスの指す主記憶装置上
のデータをベクトルギャザー命令でベクトルレジスタに
読込んだ後で、ベクトル演算処理を行ない、その結果を
ベクトルスキャッタ命令で主記憶装置に書戻すという処
理を行っている。
アドレスポインタを含むベクトルレジスタV0(I);
(Iは要素番号)と表現し、主記憶装置上のデータを読
込むベクトルレジスタをV1(J);(Jは要素番号)と
表現し、主記憶装置上のデータをMM(A);(Aはアド
レス)と表現すると、前述の動作は、 V1(I)←MM(V0(I)) (Iは0〜ベクトル要素数−1) V1(I)に対して演算処理 (Iは0〜ベクトル要素数−1) MM(V0(I))←V1(I) (Iは0〜ベクトル要素数−1) となる。この処理では、V0(I)の指すアドレスがユニ
ークであるという前提条件が必要である。
例えば、FORTRANで N(A(I))=N(A(I)+B(I) という処理を行う場合に、A(j)=A(k)(j<
k)なるデータが存在すると、要素jの処理結果を要素
kの処理に反映させなければならないが、N(J)がベ
クトルレジスタ上の異なる要素に読出されると、上記の
ような結果は得られず、この場合はスカラで処理しなけ
ればならないという欠点がある。
発明の目的 本発明の目的は、リストベクトルのアドレスポインタ
が主記憶装置上の重複したアドレスを指しているときに
も、スカラ処理の必要性をなくしてベクトル処理のスピ
ードアップ化を図るようにしたリストベクトル処理装置
を提供することである。
発明の構成 本発明によれば、主記憶装置と、複数個のベクトルレ
ジスタと、前記主記憶装置の内容を前記ベクトルレジス
タにロード制御する手段と、前記ベクトルレジスタの内
容を前記主記憶装置にストア制御する手段と、前記ベク
トルレジスタの内容をアドレスとして前記主記憶装置を
アクセス制御する手段と、前記ベクトルレジスタの各の
要素に対応した複数のビットを有し対応要素の有効/無
効情報を格納するベクトルマスクレジスタとを含むリス
トベクトル処理装置であって、前記複数個のベクトルレ
ジスタの一つである第1のベクトルレジスタの各要素
は、前記主記憶装置上のアドレス及び前記複数個のベク
トルレジスタの任意の一要素を指定するためのレジスタ
アドレスの他前記主記憶装置上のアドレスが要素間で重
複していることを示す重複情報を格納しており、また第
2のベクトルレジスタの各要素は前記主記憶装置上のア
ドレスを格納しており、前記第1及び第2のベクトルレ
ジスタの各対応要素のうち主記憶上のアドレスを順次読
出しつつ比較し、この比較結果が不一致を示すか前記重
複情報が重複を示すとき前記ベクトルマスクレジスタの
対応ビットを有効とするようにしたことを特徴とするリ
ストベクトル処理装置が得られる。
実施例 次に、本発明の実施例について図面を参照して説明す
る。
第1図は本発明の一実施例のブロック図である。10は
主記憶装置、11〜15はベクトルレジスタ、16〜17はベク
トル演算回路、18〜19はアドレスレジスタ、20〜31は選
択回路である。
先ず最初に、ベクトルレジスタに格納されている主記
憶装置上のアドレスの指すデータを読出す手順について
説明するが、その前にアドレスポインタ及びデータの形
式について述べる。
第2図はベクトルレジスタ及び主記憶装置上のアドレ
スポインタ及びデータの形式を示す。第2図(a)に示
した形式のアドレスポインタは、主記憶装置上の論理ア
ドレス(LA)、ベクトルレジスタの任意の1要素を指定
するレジスタアドレス(RA)及びアドレスの属性を示す
情報を含む。アドレスの属性はRA有効ビットとベクトル
レジスタ上のアドレス重複ビットとを含むが、主記憶装
置上からデータを読出す前にはレジスタアドレスとアド
レス属性はいずれも無効である。
主記憶装置上のデータは第2図(b)のようにデータ
の他にメモリ不在ビットを持っている。メモリ不在ビッ
トは主記憶装置からベクトルレジスタ上にデータを読出
したあとにセットされ、主記憶装置上の同一アドレスの
データを2カ所以上のベクトルレジスタに読出したこと
を判断できるようになっている。
第1図に戻って、ベクトルレジスタ11にセットされた
アドレスポインタに従って主記憶装置10上のデータをベ
クトルレジスタ15に読出す場合について説明する。
ベクトルレジスタ11〜14は夫々複数の要素からなり、
図示しない回路によって指定された要素をデータ線50〜
53を通じて読出す。ベクトルレジスタ11は要素番号“0"
から順番にデータを読出し、データ線50を通じて選択回
路26にデータを供給する。
選択回路26はデータ線50,66,アドレス線71を入力と
し、図示しない制御回路によってこれ等入力のうちいず
れかをデータ線54に出力するが、この時はデータ線50の
入力をデータ線54を通じてベクトル演算回路16に出力す
るように制御される。
ベクトル演算回路16はデータ線54とデータ線55を入力
として演算を行ない、結果をデータ線58に出力するが、
この時はデータ線54の入力をデータ線58にそのまま出力
し、データ線55の入力は無視する。
選択回路30はデータ線58〜60を入力とし、図示しない
制御回路によって、いずれかの入力をデータ線61に出力
するが、この時はデータ線58の入力をデータ線61を通じ
て出力するように制御される。
主記憶装置10はアドレスレジスタ18からアドレス線62
を通して入力されるアドレスに対して読出しまたは書込
みを行なう。選択回路30の出力はデータ線61を通じてア
ドレスレジスタ18にセットされる。このデータが主記憶
装置10のアドレスとなって、図示しない回路によって主
記憶装置10からデータを読出し、その後主記憶装置10の
同じアドレスに対してデータを書込む。この時の書込み
データはデータ線63から選択回路31に入力される。
選択回路31はデータ線61とデータ線63を入力とし、そ
のどちらか一方をデータ線64から主記憶装置10に対して
出力するが、この時はデータ線63の入力をデータ線64を
通じて出力するように制御される。
データ線63から入力されるデータとは、メモリ不在ビ
ットに1をセットした任意のデータで、通常はメモリ不
在ビット以外はオール“0"が入力される。主記憶装置10
から読出されたデータはデータ線65を通して選択回路25
に出力される。
選択回路25はデータ線65及びデータ線58〜59を入力
し、これ等入力のいずれか1つをデータ線72から出力す
るが、この時はデータ線65の入力を選択し、データ線72
からベクトルレジスタ15に対して出力するよう制御され
る。
ベクトルレジスタ15はアドレスレジスタ19からアドレ
ス線71を通して入力されるアドレスに対して読出しまた
は書込みを行う。アドレスレジスタ19の初期値はソフト
ウェアによって指定され、アドレス線74から選択回路24
に入力される。
選択回路24はデータ線59〜60及びアドレス線73〜74を
入力し、これ等入力のいずれか1つをアドレス線70から
出力するが、この時はアドレス線74の入力を選択し、ア
ドレス線70からアドレスレジスタ19に対して出力するよ
う制御される。アドレスレジスタ19はアドレス線70から
入力したアドレスを一旦格納し、アドレス線71から出力
する。
+1加算回路32はアドレス線71から入力したアドレス
に“1"を加算してアドレス線73に出力する。
次に、選択回路24はアドレスレジスタ19が連続するア
ドレスを次々とベクトルレジスタ15に指示できるよう、
アドレス線73の入力を選択するように制御される。この
時、アドレス線70からは、アドレスレジスタ19の持つ値
に“1"を加算した値が出力されるため、アドレスレジス
タ19は初期値に対して次々に“1"を加算した値をとる。
ベクトルレジスタ15では、最初にソフトウェアで考え
られた初期値で示されるアドレスからの連続領域に、デ
ータ線72から入力されるデータを図示しない制御回路の
制御により書込んでいく。
以上の動作により、ベクトルレジスタ11にセットされ
たアドレスポインタに従って主記憶装置10上のデータを
ベクトルレジスタ15に読出すことができる。もしも、ベ
クトルレジスタ11に同一のアドレスを持つ要素が2つ以
上存在する場合、後から読出したデータにはメモリ不在
ビットがセットされており、以前に同一のアドレスに対
して読出しを行なったことが容易に判断できる。
次に、アンドレスポインタを格納するベクトルレジス
タ11に主記憶装置10から読出したデータのあるレジスタ
アドレスをセットする手順について説明する。主記憶装
置10からの読出しデータは、連続するレジスタアドレス
に格納されているものとする。
レジスタアドレスの初期値はソフトウェアによって与
えられ、アドレス線74を通じて選択回路24に入力され
る。選択回路24は、アドレス線74の入力を選択し、アド
レス線70からアドレスレジスタ19に対して出力するよう
制御される。アドレスレジスタ19はアドレス線70から入
力したアドレスを一旦格納してアドレス線71から出力す
る。
一方、ベクトルレジスタ11は要素番号“0"から順番に
データを読出し、データ線50を通じて選択回路26にデー
タを供給する。選択回路26はデータ線50の入力をデータ
線54を通じてベクトル演算回路16に出力するように接御
される。
選択回路27はデータ線51,67,アドレス線71を入力と
し、図示しない制御回路によってこれ等入力のいずれか
の入力をデータ線55に出力するが、この時はアドレス線
71の入力をデータ線55を通じてベクトル演算回路16に出
力するように制御される。
ベクトル演算回路16はデータ線54から入力されるアド
レスポインタ中のレジスタアドレス領域をデータ線55か
ら入力されるレジスタアドレスに差換える動作を行な
う。また、この時同時に、アドレスポインタ中のRA有効
ビットをセットし、アドレス重複ビットをリセットす
る。
ベクトル演算回路16から出力されたデータはデータ線
58を通して選択回路20に入力される。選択回路20はデー
タ線58〜60,65を入力とし、これ等入力のいずれか1つ
のデータを選択してデータ線66から出力するが、この時
はデータ線58の入力を選択してデータ線66に出力するよ
うに制御される。
ベクトルレジスタ11は先程説明した要素番号“0"から
のデータの読出しと並行して、選択回路20からデータ線
66を通して入力されるデータを図示しない制御回路によ
り要素番号“0"から順番に書込んでいく。
以上が最初の1要素の処理であるが、2要素目以降は
選択回路24の動作が多少異なる以外は最初の1要素と同
じである。
すなわち、選択回路24はアドレスレジスタ19が連続す
るアドレスを指示するようにアドレス線73の入力を選択
するように制御される。アドレス線73には、+1加算回
路32によりアドレスレジスタ19の値+1が出力されてい
るため、アドレスレジスタ19は初期値に対して次々に
“1"を加算した値をとる。よって、ベクトル演算回路16
には、選択回路26,27を通してベクトルレジスタ11の次
の要素とアドレスレジスタ19の次の値が供給される。
以上の動作により、ベクトルレジスタ11の各要素中の
レジスタアドレス領域に、連続したレジスタアドレスを
セットすることができる。
しかしながら、ここでセットしたレジスタアドレスは
主記憶装置上のアドレスの重複を考慮していないため、
必ずしも正しいレジスタアドレスではない。以前に説明
したように、主記憶装置上で同一のアドレスをもつデー
タにはメモリ不在ビットに“1"が立っているため、これ
を手がかりにして重複のあるアドレスをサーチする。
先ず最初に、メモリ不在ビットに“1"が立っているデ
ータについてマスクデータを作成する。すなわち、メモ
リ不在ビットが“1"であればマスクデータも“1"とす
る。この動作については、既に公知の技術のため、ここ
ではこれ以上説明を加えない。
次に、この動作によって作成されたマスクデータ中の
“1"の立っている要素数をカウントする。もしも“1"の
立っている要素数が“0"であれば、主記憶装置上のアド
レス重複は無いため、処理はこれで終了する。以上の動
作についても、既に公知の技術であるため、これ以上の
説明は加えない。
次に、生成されたマスクデータを使って、アドレスポ
インタを格納してあるベクトルレジスタ11にベクトルコ
ンプレス処理を加える。すなわち、マスクデータに“1"
の立っている要素番号に対応するベクトルレジスタ11の
要素を別のベクトルレジスタ、例えばベクトルレジスタ
12の0番目の要素から詰めて格納する。この動作につい
ても、既に公知の技術であるため、これ以上の説明は加
えない。
この後、ベクトルレジスタ12の内容をスカラレジスタ
に読出して、重複しているアドレスの内容を調べる。こ
こで3つ以上のアドレスが重複している場合には、スカ
ラレジスタに同一のアドレスが2つ以上読込まれる場合
もあるが、一般に、リストベクトル処理でアドレスが重
複するようなケースは稀であるため、スカラでの処理は
全体の処理時間と比較して無視し得る程小さい。
次に、主記憶装置上のアドレスが重複している要素に
ついて、正しいレジスタアドレスをセットし直す手順に
ついて説明する。今までの説明により、主記憶装置上の
重複しているアドレスをスカラレジスタ上に得た。従っ
て、この重複しているアドレスを持つ要素をサーチし
て、そのレジスタアドレスを書換える処理を行なう。
まず最初にアドレスポインタを格納してあるベクトル
レジスタ11の各要素を図示しない制御回路の制御によ
り、要素番号の0番目から順番にデータ線50を通じて選
択回路26に出力する。選択回路26はデータ線50の入力を
データ線54を通してベクトル演算回路16に出力するよう
制御される。
一方、比較対象となるアドレスは、アドレス線74を通
して選択回路24に入力される。選択回路24は、アドレス
線74を選択し、アドレス線70を通してアドレスレジスタ
19に出力する。アドレスレジスタ19はアドレス線70を通
して入力したアドレスを一旦格納し、アドレス線71を通
して選択回路27に出力する。選択回路27はアドレス線71
を選択し、データ線55を通してベクトル演算回路16に出
力する。
第3図は第1図のベクトル演算回路16のうち説明に必
要な部分のみを抜出した回路図である。101〜105はレジ
スタ、106はアドレス比較器、107,109は選択回路、108
はアンドゲートである。
データ線54から入力されたアドレスポインタはレジス
タ101に、またデータ線55から入力された比較アドレス
はレジスタ102に夫々一旦格納される。次に、レジスタ1
01及び102の中の主記憶装置上のアドレスを格納した部
分が、夫々データ線122,123を通して比較器106に入力さ
れる。
比較器106では、データ線122,123を通して入力された
データを比較し、一致していれば制御線124に“1"を出
力する。レジスタ105はこの処理が始まった時には値
“0"を保持しているが、比較器106が制御線124に“1"を
出力するところのデータ“1"を入力し、処理が終了する
まで値“1"を保持する。
次に、レジスタ101の中のレジスタアドレスを格納し
た部分がデータ線121を通してレジスタ104に入力され
る。レジスタ104はレジスタ105の値が“0"の時はデータ
線121から入力されるデータを常時書込んでいるが、レ
ジスタ105の値が“1"となり、制御線125に“1"が出力さ
れると、現在の値を保持するよう制御される。
すなわち、レジスタ104に保持されるのは、主記憶装
置上のアドレスが最初に一致した時のレジスタアドレス
である。このアドレス一致が起こる時までは、レジスタ
101の内容はデータ線120〜122を通してレジスタ103にセ
ットされる(選択回路107,109はデータ線121,120を選択
する)が、主記憶装置上のアドレスが2度目に一致した
時には動作が異なる。
レジスタ105に値“1"がセットされた状態、すなわち
以前に1度以上アドレスの一致が検出された後で再び比
較器106が制御線124に値“1"を出力すると、アンドゲー
ト108の入力である制御線124〜125がともに値“1"とな
り、制御線128に値“1"を出力する。
選択回路107,109は、制御線128の値が“0"の時には、
データ線121,120のデータを選択し、データ線127,130に
出力するが、制御線128の値が“1"の時には、データ線1
26,129のデータを選択してデータ線127,130に出力す
る。データ線129には、RA有効、アドレス重複有の各ビ
ットに“1"がセットされている。すなわち、二度目以降
のアドレス一致を検出すると、レジスタアドレスを一度
目のアドレス一致検出時のレジスタアドレスに差換え、
アドレス重複有ビットのセットという動作をする。
レジスタ103にセットされたアドレスポインタはデー
タ線58を通して第1図の選択回路20に入力される。選択
回路20は、データ線58を選択し、データ線66を通してベ
クトルレジスタ11に出力する。ベクトルレジスタ11で
は、データ線66を通して入力したデータを図示しない制
御回路の制御により要素番号“0"から順番に書込んでい
く。
以上の動作をベクトルレジスタ11の全要素について行
なうことにより、重複しているアドレス1つ分のレジス
タアドレス書換えが完了する。従って、重複しているア
ドレスが複数個ある場合は、その個数分だけ上記の動作
を繰返す必要がある。
次に、リストベクトルを使ってデータを読出す手順に
ついて説明する。ベクトルレジスタ11には、前に説明し
たアドレスポインタが格納されているものとする。アド
レスポインタの指すデータがベクトルレジスタ上にある
場合は、ベクトルレジスタからデータを読出し、ベクト
ルレジスタ上に無い場合は、主記憶装置10からデータを
読出し、ベクトル演算回路17に読出したデータを供給す
る。
先ず最初に、ベクトルレジスタ11の要素番号“0"から
順番にデータを読出し、データ線50を通して選択回路26
にデータを供給する。選択回路26はデータ線50の入力を
選択し、データ線54を通してベクトル演算回路16に出力
するよう制御される。
ベクトル演算回路16はデータ線54とデータ線55を入力
として演算を行ない、結果をデータ線58に出力する。こ
の時、データ線54から入力したデータのRA有効ビットが
“1"であれば、データ線58にレジスタアドレスを出力す
るとともに、図示しない制御回路によってベクトルレジ
スタの読出しを指示する。データ線55の入力は無視す
る。
データ線58に出力されたレジスタアドレスは選択回路
24及びアドレス線70を通してアドレスレジスタ19に出力
される。アドレスレジスタ19はアドレス線70からデータ
を入力し、一旦格納した後、アドレス線71にレジスタの
内容を出力する。
ベクトルレジスタ15はアドレス線71からアドレスを入
力するとともに、図示しない制御回路によって読出しモ
ードに設定され、指定されたアドレスの内容をデータ線
60を通して出力する。
選択回路22はデータ線58〜60,65を入力し、これ等入
力のいずれか1つを選択してデータ線68に出力するが、
この時はデータ線60の入力を選択し、データ線68を通し
て選択回路28に出力する。
選択回路28はデータ線52,68、アドレス線71を入力
し、これ等入力のいずれか1つを選択してデータ線56に
出力するが、この時はデータ線68の入力を選択し、デー
タ線56を通してベクトル演算回路17に出力する。
次に、データ線54からベクトル演算回路16に入力した
アドレスポインタのRA有効ビットが“0"の時は、データ
線58に主記憶装置上のアドレスを出力するとともに、図
示しない制御回路によって主記憶装置の読出しを指示す
る。データ線58に出力されたアドレスは選択回路30及び
データ線61を通してアドレスレジスタ18に出力される。
アドレスレジスタ18はデータ線61から入力したデータを
一旦格納し、アドレス線62を通して主記憶装置10に出力
する。
主記憶装置10はアドレス線62を通してアドレスを入力
するとともに、図示しない制御回路によって読出しモー
ドに設定され、指定されたアドレスの内容をデータ線65
に出力する。選択回路22はデータ線65の入力を選択し、
データ線68を通して選択回路28に出力する。
選択回路28はデータ線68の入力を選択し、データ線56
を通してベクトル演算回路17に出力する。
次に、演算結果をリストベクトルを使って格納する手
順について説明する。ベクトルレジスタ11に格納された
アドレスポインタに従ってベクトル演算回路17の出力を
格納するものとする。
ベクトルレジスタ11の要素番号“0"から順番にデータ
を読出し、データ線50を通して選択回路26にデータを供
給する。選択回路26はデータ線50の入力を選択し、デー
タ線54を通してベクトル演算回路16に出力するよう制御
される。
ベクトル演算回路16はデータ線54とデータ線55を入力
として演算を行ない、結果をデータ線58に出力する。こ
の時、データ線54から入力したデータのRA有効ビットが
“1"であれば、データ線58にレジスタアドレスを出力す
るとともに、図示しない制御回路によってベクトルレジ
スタの書込みを指示する。データ線55の入力は無視す
る。
データ線58に出力されたレジスタアドレスは選択回路
24に入力される。選択回路24はデータ線58の入力を選択
し、アドレス線70を通してアドレスレジスタ19に出力す
る。アドレスレジスタ19はアドレス線70からデータを入
力し、一旦格納した後、アドレス線71にレジスタの内容
を出力する。ベクトル演算回路17によって演算された結
果はデータ線59から出力される。選択回路25はデータ線
59を選択し、データ線72を通してベクトルレジスタ15に
出力する。
ベクトルレジスタ15では、アドレス線71からアドレス
を入力し、データ線72からデータを入力するとともに、
図示しない制御回路により書込みモードに設定され、指
示されたアドレスにデータ線72から入力したデータを書
込む。
次に、データ線54からベクトル演算回路16に入力した
アドレスポインタのRA有効ビットが“0"の時は、データ
線58に主記憶装置上のアドレスを出力するとともに、図
示しない制御回路によって、主記憶装置の書込みを指示
する。
データ線58に出力されたアドレスは選択回路30に入力
される。選択回路30はデータ線58の入力を選択し、デー
タ線61を通してアドレスレジスタ18に出力する。アドレ
スレジスタ18はデータ線61から入力したデータを一旦格
納し、アドレス線62を通して主記憶装置10に出力する。
ベクトル演算回路17によって演算された結果はデータ
線59から出力される。選択回路30はデータ線59の入力を
選択し、データ線61を通して選択回路31に出力する。選
択回路31はデータ線61の入力を選択し、データ線64を通
して主記憶装置10に出力する。
主記憶装置10はアドレス線62を通してアドレスを入力
し、データ線64を通してデータを入力するとともに、図
示しない制御回路によって書込みモードに設定され、指
定されたアドレスにデータ線64のデータを書込む。
以上説明した実施例は、リストベクトルをベクトルレ
ジスタまたは主記憶装置上から読出し、演算を行ない、
再びリストベクトルでベクトルレジスタ、または主記憶
装置に書戻すというものであったが、連続するリストベ
クトルで同一のレジスタアドレス、又は主記憶装置上の
アドレスを指している場合でも、前の演算の結果が後の
リストベクトルの読出しに反映されるよう、1回の書込
みが完了した後でなければ次の要素を読出すことができ
ず、パイプライン演算器の利点を十分に行かすことがで
きないという欠点がある。
前にも説明したように、リストベクトルの独立した要
素間でのアドレス重複は稀であるため、このことを利用
して高速化が図れる。すなわち、アドレスポインタを読
出した際に、アドレスに重複があるかどうかを示すビッ
トをチェックし、アドレスの重複があれば一旦読出しを
中止し、現在パイプライン内で動作中のデータを全てベ
クトルレジスタ、または主記憶装置に書込み終った後、
読出しを再開すれば良い。
但し、現在アドレスポインタを読出しているベクトル
レジスタにチェイニングでデータを書込む場合は、全て
のベクトルレジスタの読出しを止めて、パイプライン内
のデータをアドレスポインタの格納されているベクトル
レジスタに全て書込んでも、読出し中のアドレスポイン
タが破壊されず、うまく再開できるようにチェイニング
の間隔を制御する必要がある。ここでは、その詳細につ
いては特に説明しない。
次に、ベクトルレジスタ上に読出してあるリストベク
トルのデータを主記憶装置に書戻す手順について説明す
る。ベクトルレジスタ11にはアドレスポインタが格納さ
れ、そのアドレスポインタの指すデータがベクトルレジ
スタ15に格納されているものとする。
ベクトルレジスタ11は要素番号“0"から順番にデータ
を読出し、データ線50を通して選択回路26にデータを出
力する。選択回路26はデータ線50の入力をデータ線54を
通してベクトル演算回路16に出力するように制御され
る。
ベクトル演算回路16はデータ線54,55を入力として演
算を行ない、結果をデータ線58に出力するが、この時は
データ線54から入力されるデータのRA有効ビットをチェ
ックし、“0"であればその要素については何もしない。
RA有効ビットが“1"の場合は、データ線58に主記憶装置
アドレスを出力する。データ線55の入力は無視する。
データ線58に出力されたアドレスは選択回路30に入力
される。選択回路30はデータ線58の入力を選択し、デー
タ線61を通してアドレスレジスタ18に出力する。アドレ
スレジスタ18はデータ線61から入力したデータを一旦格
納し、アドレス線62を通して主記憶装置10に出力する。
次に、ベクトル演算回路16は同じ要素のレジスタアド
レスをデータ線58に出力するとともに、図示しない制御
回路によってベクトルレジスタ15に読出しを指示する。
データ線58に出力されたレジスタアドレスは選択回路
24に入力される。選択回路24はデータ線58の入力を選択
し、アドレス線70を通してアドレスレジスタ19に出力す
る。アドレスレジスタ19はアドレス線70からデータを入
力し、一旦格納した後アドレス線71にレジスタの内容を
出力する。
ベクトルレジスタ15はアドレス線71からアドレスを入
力するとともに、図示しない制御回路によって読出しモ
ードに設定され、指定されたアドレスの内容をデータ線
60を通して出力する。選択回路30はデータ線60の入力を
選択し、データ線61を通して選択回路31に出力する。選
択回路31はデータ線61の入力を選択し、データ線64を通
して主記憶装置10に出力する。
主記憶装置10はアドレス線62からアドレスを入力し、
データ線64からデータを入力するとともに、図示しない
制御回路によって書込みモードに設定され、指定された
アドレスにデータ線64から入力したデータを書込む。
以上の動作によりベクトルレジスタ15の内容を主記憶
装置10に書込むことができるが、アドレスポインタを格
納してあるベクトルレジスタ11をそのまま使用するため
には、アンドレスポインタ中のRA有効ビットを“0"に書
換える必要がある。また、ベクトルレジスタ15中の使用
しなくなった領域も他の目的に使用することができるよ
うになる。
ベクトルレジスタ11は要素番号“0"から順番にデータ
を読出し、データ線50を通して選択回路26にデータを出
力する。選択回路26はデータ線50の入力をデータ線54を
通してベクトル演算回路16に出力するように制御され
る。
ベクトル演算回路16はデータ線54,55を入力として演
算を行ない、結果をデータ線58に出力するが、この時は
データ線54から入力されるデータのRA有効ビットを“0"
に書換え、データ線58に出力する。選択回路20はデータ
線58の入力を選択し、データ線66を通してベクトルレジ
スタ11に出力するよう制御される。
ベクトルレジスタ11はデータ線66からデータを入力
し、図示しない制御回路により要素番号“0"から順番に
データを書込んでいくよう制御される。
次回にベクトルレジスタ11を使ってリストベクトルの
アクセスを行なう時には、RA有効ビットが“0"になって
いるため、主記憶装置上から再度データを自動的に持っ
てくるように制御される。
次に、アドレスポインタを書換えた場合の処理につい
て説明する。アドレスポインタを格納したベクトルレジ
スタに変更が生じた場合は、不要になったデータをベク
トルレジスタから主記憶装置に書戻し、新たに必要にな
ったデータを主記憶装置からベクトルレジスタに読出す
必要がある。ベクトルレジス11に元のアドレスポイン
タ、ベクトルレジスタ12に新しいアドレスポインタがあ
るものとする。
ベクトルレジスタ11,12は要素番号“0"から順番にデ
ータを読出し、データ線50,51を通して夫々選択回路26,
27にデータを供給する。選択回路26,27はデータ線50,51
の入力を夫々選択し、データ線54,55を通してベクトル
演算回路16に出力するように制御される。
ベクトル演算回路16はデータ線54,55を入力として演
算を行ない、結果をデータ線58に出力するが、この時は
データ線54,55から入力するデータの主記憶装置アドレ
ス領域を比較し、不一致であるか、あるいはアドレスの
属性情報がアドレスの重複有を示している時に“1"のマ
スクデータを生成する。上記以外のケースでは“0"のマ
スクデータを生成する。
第4図にベクトル演算回路16の一部のブロック図を示
す。第4図において201〜202はレジスタ、203はマスク
レジスタ、204はマスクレジスタへの書込みポインタ、2
05はマスクレジスタからの読出しポインタ、206は比較
器、207はオアゲート、208〜209は+1加算器である。
データ線54,55から入力されたデータは一旦レジスタ2
01,202に格納される。レジスタ201,202中の主記憶装置
アドレス領域は夫々データ線221,222を通して比較器206
に入力される。
比較器206はデータ線221,222から入力したデータを比
較し、データが完全に一致していれば、“0"、それ以外
のケースでは“1"を制御線223に出力する。
オアゲート207は制御線220からレジスタ201のアドレ
ス重複有ビットを入力し、制御線223から比較器206の出
力を入力し、少なくともどちらか一方の入力が値“1"を
示す時、制御線224に“1"を出力する。2つの入力がと
もに“0"の時には、制御線224に“0"を出力する。
マスクレジスタ203は制御線224から入力したデータを
アドレス線226が指すアドレスに書込み、アドレス線228
が指すアドレスの内容を制御線225に出力する。書込み
は図示しない制御回路により制御される。
書込みポインタ204は図示しない制御回路により初期
化され、マスクレジスタ203の書込みアドレスを制御す
る。ポインタの内容はアドレス線226を通して+1加算
回路208に入力され、+1された値がアドレス線227から
再度書込みポインタ204に入力される。
読出しポインタ205は図示しない制御回路により初期
化され、マスクレジスタ203の読出しアドレスを制御す
る。ポインタの内容はアドレス線228を通して+1加算
回路209に入力され、+1された値がアドレス線229から
再度読出しポインタ205に入力される。マスクレジスタ
の出力である制御線225は各ベクトル演算回路に分配さ
れ、図示しない制御回路によって演算の実行を制御す
る。
次に、このマスクデータを使用して、ベクトルレジス
タ上に読出してある不要になったリストベクトルのデー
タをマスク付きで主記憶装置に書戻す。すなわち、前述
したリストベクトルデータの退避を、マスクデータの対
応するビットが“1"の時だけ実行し、それ以外の時には
何もしないように制御する。詳細は、前述の実施例を参
照のこと。
この際、アドレスの重複有ビットが“1"の要素はアド
レスの変更が無くても一旦主記憶装置に書戻されるが、
この後のデータ読出しで再度ベクトルレジスタ上に読出
される。
次に、ベクトルレジスタから主記憶装置にデータを退
避した要素について、対応するアドレスポインタ中のRA
有効ビットをマスク付きで“0"に書換する。すなわち、
前述したRA有効ビットの書換えを、マスクデータの対応
するビットが“1"の時だけ実行し、それ以外の時は何も
しないように制御する。詳細は前述の実施例を参照のこ
と。
次に、前述したマスクデータを使用して、変更になっ
たアドレスポインタの指すデータをベクトルレジスタ上
に読込む手順について説明する。ベクトルレジスタから
主記憶装置にデータを退避した後のレジスタアドレス
は、どのアドレスポインタからも指されていないはず
(複数のアドレスポインタから重複して指されているデ
ータは主記憶装置に退避されている)なので、この領域
に変更になったアドレスポインタの指すデータを読込
む。
先ず、ベクトルレジスタ12に格納されている新しいア
ドレスポインタを使って、マスク付きで主記憶装置上の
データを読出し、メモリ不在ビットをセットする。すな
わち、前述したリストベクトルデータの読出しを、マス
クデータの対応するビットが“1"の時だけ実行し、それ
以外の時は何もしないように制御する。詳細は前述の実
施例を参照のこと。
次に、アドレスポインタを格納するベクトルレジスタ
に、主記憶装置から読出したデータのあるレジスタアド
レスをセットする。次に、ベクトルレジスタに読出した
データのメモリ不在ビットをチェックし、“1"が立って
いる要素に対応してマスクデータ“1"を生成する。次
に、前述のマスクデータ中の“1"の立っている要素数を
カウントし、“0"であればこれで処理を終了する。
次に、前述のマスクデータを使用して、アドレスポイ
ンタの格納されているベクトルレジスタにベクトルコン
プレス処理を加える。次に、ベクトルコンプレスで集め
たデータをスカラレジスタに読出す。次に、スカラレジ
スタ上に得た、重複したアドレスを持つ要素をサーチ
し、そのレジスタアドレスを書き換える処理を行なう。
以上の動作は全て前述の実施例と同じなので説明を省
略する。
発明の効果 以上説明したように、本発明はリスクベクトルのアド
レスポインタが主記憶装置上の重複したアドレスを指し
ている時にもベクトルレジスタ上のデータをユニークに
し、このベクトルレジスタを間接アクセスすることによ
って、従来スカラ処理せざるを得なかった部分をベクト
ル化できるようになり、処理スピードが飛躍的に高まる
という効果がある。
また、リストベクトルのアドレスポインタが変更され
た場合にも、ベクトルレジスタ上のデータを全て主記憶
装置に退避して再読出しするという処理をする必要がな
く、柔軟性の高いリストベクトル処理を行なえるという
効果がある。
【図面の簡単な説明】
第1図は本発明の実施例のブロック図、第2図はアドレ
スポインタ及びデータの各形式を示す図、第3図はベク
トル演算回路の一部分の回路例を示す図、第4図はベク
トル演算回路の他の部分の回路例を示す図である。 主要部分の符号の説明 10……主記憶装置 11〜15……ベクトルレジスタ 16〜17……ベクトル演算回路 18,19……アドレスレジスタ

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】主記憶装置と、複数個のベクトルレジスタ
    と、前記主記憶装置の内容を前記ベクトルレジスタにロ
    ード制御する手段と、前記ベクトルレジスタの内容を前
    記主記憶装置にストア制御する手段と、前記ベクトルレ
    ジスタの内容をアドレスとして前記主記憶装置をアクセ
    ス制御する手段と、前記ベクトルレジスタの各要素に対
    応した複数のビットを有し対応要素の有効/無効情報を
    格納するベクトルマスクレジスタとを含むリストベクト
    ル処理装置であって、 前記複数個のベクトルレジスタは、 複数の要素からなり、これ等各要素が前記主記憶装置上
    のアドレス及び当該複数個のベクトルレジスタの任意の
    一要素を指定するためのレジスタアドレスの他、前記主
    記憶装置上のアドレスが要素間で重複していることを示
    す重複情報を格納した第1のベクトルレジスタと、 複数の要素からなり、これ等各要素が前記主記憶装置上
    のアドレスを格納した第2のベクトルレジスタとを具備
    し、 更に、前記第1及び第2のベクトルレジスタの各対応要
    素のうち主記憶装置上のアドレスを順次読出しつつ比較
    する比較手段と、 この比較結果が不一致を示すか前記重複情報が重複を示
    すとき前記ベクトルマスクレジスタの対応ビットを有効
    とする手段と、 を含むことを特徴とするリストベクトル処理装置。
  2. 【請求項2】前記主記憶装置上のデータはアクセス単位
    毎にメモリ不在情報を有しており、 前記第1のベクトルレジスタの各要素に格納されるアド
    レスが指す前記主記憶装置上のデータを読出しつつ次の
    要素の読出しを始める前に前記主記憶装置上の同一アド
    レスにメモリ不在情報がセットされたデータを書込む手
    段と、 前記ベクトルマスクレジスタの対応するビットが有効を
    示すとき前記主記憶装置から読出されたデータを前記第
    2のベクトルレジスタに書込む手段と、 を更に含むことを特徴とする請求項1記載のリストベク
    トル処理装置。
JP24960090A 1990-09-19 1990-09-19 リストベクトル処理装置 Expired - Lifetime JP2798492B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24960090A JP2798492B2 (ja) 1990-09-19 1990-09-19 リストベクトル処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24960090A JP2798492B2 (ja) 1990-09-19 1990-09-19 リストベクトル処理装置

Publications (2)

Publication Number Publication Date
JPH04127367A JPH04127367A (ja) 1992-04-28
JP2798492B2 true JP2798492B2 (ja) 1998-09-17

Family

ID=17195433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24960090A Expired - Lifetime JP2798492B2 (ja) 1990-09-19 1990-09-19 リストベクトル処理装置

Country Status (1)

Country Link
JP (1) JP2798492B2 (ja)

Also Published As

Publication number Publication date
JPH04127367A (ja) 1992-04-28

Similar Documents

Publication Publication Date Title
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
JPH0414385B2 (ja)
US5287483A (en) Prefetched operand storing system for an information processor
JP2716254B2 (ja) リストベクトル処理装置
JP3281211B2 (ja) 同期式メモリを有する情報処理装置および同期式メモリ
JP2798492B2 (ja) リストベクトル処理装置
US4816992A (en) Method of operating a data processing system in response to an interrupt
JP3145545B2 (ja) メモリアクセス装置
JPH0877143A (ja) ベクトルデータ処理装置
JP2901247B2 (ja) 掃出し制御方式
JPH0520350A (ja) ベクトル処理装置
JPS6240736B2 (ja)
JP3490191B2 (ja) 計算機
JPH0823820B2 (ja) アドレス・オーバラップ・チェック処理装置
JPH04125747A (ja) キャッシュメモリ制御装置
JP2576589B2 (ja) 仮想記憶アクセス制御方式
JPS6214919B2 (ja)
JP2506591B2 (ja) 補助処理装置
JPS6211426B2 (ja)
JP3009168B2 (ja) データ処理装置
JP2842024B2 (ja) レジスタファイル回路
JPH0364903B2 (ja)
JPS61194566A (ja) ベクトルデ−タ参照制御方式
JPS63284673A (ja) 情報処理装置
JPH03108061A (ja) ベクトル演算装置