JPS61187076A - ベクトル処理装置 - Google Patents

ベクトル処理装置

Info

Publication number
JPS61187076A
JPS61187076A JP60026893A JP2689385A JPS61187076A JP S61187076 A JPS61187076 A JP S61187076A JP 60026893 A JP60026893 A JP 60026893A JP 2689385 A JP2689385 A JP 2689385A JP S61187076 A JPS61187076 A JP S61187076A
Authority
JP
Japan
Prior art keywords
vector
control unit
processing
counter
data
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
Application number
JP60026893A
Other languages
English (en)
Other versions
JPH0431145B2 (ja
Inventor
Koichi Ishii
石井 幸一
Yaoko Yoshida
吉田 八穂子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP60026893A priority Critical patent/JPS61187076A/ja
Priority to US06/806,801 priority patent/US4890220A/en
Priority to EP85115752A priority patent/EP0184828B1/en
Priority to DE8585115752T priority patent/DE3587167T2/de
Publication of JPS61187076A publication Critical patent/JPS61187076A/ja
Publication of JPH0431145B2 publication Critical patent/JPH0431145B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はベクトル処理装置に係り、特に新しい形式のベ
クトル演算に好適なベクトル処理装置に関する。
〔発明の背景〕
従来、汎用スカラ演算等を行うデータ処理装置に、ベク
トル演算の進行を管理するエレメントカウンタと、ベク
トル要素間の演算を行う演算器とを付加し、ベクトルオ
ペランドデータのメモリアクセスは上記データ処理装置
の記憶制御回路を用い、メモリ上のベクトル間の演算を
パイプラインで実行することにより、少ないハードウェ
ア量を追加することによって高速にベクトルデータを処
理することのできるベクトル処理装置は、既に知られて
いる(特願昭52−1523.52−2396.52−
2403)。このようなベクトル処理装置は、データの
演算結果によらず、各ベクトルオペランドのインデクス
が一様に増加するタイプのメクトル処理を行うのを原則
としていた。従って、エレメントカウンタは1本あれば
制御が可能であり、ベクトルオペランドアドレスレジス
タの更新もあらかじめ予測可能であった。ところが、各
ベクトルオペランドのインデクスの増加が、データの演
算結果に依存するようなベクトル演算については、ベク
トル化して高速処理することができなかった。その理由
としては、1つ1′!、終了判定用のエレメントカウン
タと、処理完了要素対応のエレメントカウンタをそれぞ
れオペランド毎に独立に持っていないこと、もう一つは
データの演算結果をベクトルオペランドアドレスレジス
タに反映させることができないことがあげられる。
〔発明の目的〕
本発明の目的は、ベクトル演算の範囲を必ずしも同一で
ない要素番号を持つ要素間にまで広げ、かつパイプライ
ン的に効率よく処理を行うことによって、これまで効率
のよいベクトル処理化ができなかったデータベース処理
等をベクトル化し。
効率よく処理するベクトル処理装置を提供することにあ
る。
〔発明の概要〕
本発−明は、1組ないし複数のベクトルオペランドの要
素を順次読出し、演算結果を順次ベクトルオペランドに
格納するベクトル処理装置において、演算終了判定用の
エレメントカウンタと、メモリへの格納終了要素に対応
する処理済ベクトル要素番号を保持するエレメントカウ
ンタを、それぞれ各オペランド対応に設けることによっ
て、新しい形式のベクトル演算を割込み可能な処理とし
て実現し、ページ変換例外等による割込み処理が必要な
仮想記憶方式のデータ処理環境下でも、効率よいベクト
ル処理が可能となるようにしたことである。
〔発明の実施例〕
以下、本発明の一実施例を図面にもとづき説明する。
第1図は本発明の一実施例であり、汎用スカラ処理装置
にベクトル演算機構を付加して構成した本発明ベクトル
処理装置の全体構成図である。第1図において、11は
汎用スカラ処理装置であり、バッファストレージ制御ユ
ニットl、アドレス制御ユニット2、命令制御ユニット
3、汎用レジスタ(GPR)4及び演算制御ユニット5
で構成される。スカラ処理装[11は入出力制御ユニッ
ト10と共に主記憶制御ユニット8を介し、主記憶装置
9との間でデータの読み書きを行う。主記憶制御ユニッ
ト8は、主記憶装置9内のデータの写しを格納している
バッファストレージを内蔵している。
汎用スカラ処理装置11の演算制御ユニット5には、さ
らに拡張ベクトル演算ユニット(EXVU)7が付加さ
れている。この拡張ベクトル演算ユニット7が本発明の
中心をなし、新しい形式のベクトル演算、すなわち、演
算する要素番号が先行するベクトル要素間の演算結果に
より決定されるようなベクトル演算(以下、拡張ベクト
ル演算と呼ぶ)を実行する。
第1図における拡張ベクトル演算の動作について説明す
る前に、まず拡張ベクトル演算を行う命令の一例である
マージジョイン命令について述べる。
マージジョイン命令の命令フォーマットと概略動作を第
2図に示す。マージジョイン命令は4バイト長命令であ
る。命令の第0〜15ビツトが。
マージジョイン命令であることを示すオペコードである
。命令の第16〜23ビツトは意味を持たない。命令の
第24〜27ビツト(R1フィールド)で示される番号
から4本連続した番号の汎用レジスタに、第2オペラン
ドのプライマリ・エレメント・カウンタ(以下○P2第
1カウンタと略称する)、第3オペランドのエレメント
・カウンタ(以下、OP3カウンタと略称する)、第1
オペランドのエレメント・カウンタ(以下、OPIカウ
ンタと略称する)、第2オペランドのセカンタリ・エレ
メント・カウンタ(以下、○P2第2カウンタと略称す
る)が指定される。第2オペランドに2種のカウンタが
あるのは、バックトラック(後述する)のときに必要な
ためである。第28〜31ビツト(R2フィールド)で
示される汎用レジスタには、デュアルベクトル記述テー
ブル(以下DTと略記する)の先頭アドレスであるDT
 O(Description Table Orig
in)が指定されている。DTは主記憶装置9上にあり
、各ベクトルオペランドの先頭アドレスと、最大要素個
数が記述されている。DTによって間接的に指定された
ベクトルオペランドは、前半4バイトがデータを識別す
るための符号なし整数で、後半4バイトがソートする対
象となるデータ部である。第2図では、 OP2最大個数=4 0P3最大個数=6 0P1屑大個数=4 でマージジョイン命令を適用した時の様子を示している
。なお、第2図中、「#」は要素番号を示す。
第3図はマージジョイン命令の動作を示すPAD(Pr
oHram Analysis Diagram)であ
る。第3図において、nl、n、、、n3.n、はそれ
ぞれ・要素番号を保持するエレメントカウンタの初期値
であり、整数値をとる。また、0≦nt≦imax。
O≦n2≦jmax、o≦n3≦kmax+ O≦n4
’≦i raaxであるものとする。こ−で、  i 
wax、 j taaxek a+axは拡張ベクトル
演算の演算終了条件を規定する最大要素番号である。I
NCは、下記を満たす関数とする。
なお、i=twaxのときは、 A(i)、 rear
=A(++1)、rearはfalseとなり、 A(
i )、 rear≠A(i + 1 )、 rear
はしrueになるものとする。j=j l1axも同様
である。
第2図と第3図の対応は次の通りである。
OF2の前半4バイト←→A (i ) 、 fron
t;OF2の後半4バイト←→A (i )、rear
○P3の前半4バイトHB (i ) 、 fron七
:OF2の後半4バイト−B (i )、rear○P
1の前半4バイト←→C(i ) 、 front:O
PIの後半4バイト←→(:、 (i )、rear○
P2の最大要素個数Hi wax ;OF2の最大要素個数−j max OPIの最大要素個数←→k wax なお、ベクトルデータの前半4バイトをフロント部(f
ront、) 、後半4バイトをリア部(rear)と
呼び、このようなフロント部とリア部という2つの部分
から成るベクトルを以下デュアルベクトルと呼ぶことに
する。
マージジョイン命令は、2本のリア部についてソート済
のデュアルベクトルを入力として、そのリア部を比較し
、一致したら各デュアルベクトルのフロント部をとり出
して新しいデュアルベクトルを出力する命令といえる。
マージジョイン命令は、リレーショナルデータベースに
おけるテーブルのジョイン処理等に有効である−1+ 
jの増加がA(i)、B(j)のリア部の比較結果に依
存しているので、マージジョイン命令は拡張ベクトル命
令の一例といえる。
次に、第1図において、マージジョイン命令を実行する
時の動作について説明する。
バッファストレージ制御ユニット1からパス13を通し
て読み出された命令は、命令制御ユニット3にて解読さ
れる。マージジョイン命令であると解読されると、R2
フィールドで示される番号の汎用レジスタ4の内容DT
Oが、パス45を通して読み出され、演算制御ユニット
5に送られる。
命令制御ユニット3は、パス35により演算制御ユニッ
ト5に対し、マージジョイン命令であること、及び使用
するレジスタ番号(R1,R2フィールド)を知らせ、
演算制御ユニット5に制御を移す。演算制御ユニット5
は、汎用レジスタ4から読み出されたDT○をパス52
を通してアドレス制御ユニット2に送る。同時に、演算
制御部ユニット5はR1フィールドで示される汎用レジ
スタ4の内容を読み出して保持する。
第4図は、第1図のバッファストレージ制御ユニット1
、アドレス制御ユニット2.演算制御ユニット5の詳細
構成を示したものである。以下。
第4図により第1図の動作をより詳細に述べる。
パス45を通して、汎用レジスタ4から送られてきたD
TOは、演算制御ユニット5内のワークアドレスレジス
タ(WBR)501にセットされる。同様に、マージジ
ョイン命令のR1フィールドで示される番号の汎用レジ
スタ4の内容(○P2第1カウンタ)は、ワークアドレ
スレジスタ(WAR)500にセットされる。WBR5
01にセットされたDTOは、パス52を通してアドレ
ス制御ユニット2内のフェッチ専用アドレスレジスタ(
以下SABと略記する)201にセットされる。5AB
201の内容DTOは、パス21bを通してバッファス
トレージ制御ユニット1に送られる。DTOは、アドレ
ス変換回路(以下AT(1)と略記する)101により
仮想アドレスから実アドレスに変換され、求まった実ア
ドレスがバッファアドレスレジスタ(以下BSAR(1
)と略記する)103にセットされる。BSAR(1)
103の内容(DTO)をアドレスとしてバッファスト
レージC以下BS(1)と略記する)105がアクセス
され、読み出されたデータが8バイト長のデータレジス
タ(以下DR(1)と略記する)107にセットされる
。この結果、DR(1)107の前半4バイトには、○
P2先頭アドレスが、後半4バイトには○P2最大要素
個数が入る。DR(1)107のデータは、パス15b
を通して演算制御ユニット5に送出される。
なお、バッファストレージ制御ユニット1には、上記A
T(1)1.01、BSAR(1)103.BS(1)
105、DR(1)107と機能的に同一であるが、後
述する要素間演算の処理を高速に行うために、別のアド
レス変換回路(AT(0))100、バッファストレー
ジアドレスレジスタ(BSAR(0))102、バッフ
ァストレージ(BS(0))104、データレジスタ 
(DR(0))106が具備される。BS(0)104
およびBS(1)105は主記憶装置9の一部データの
写しを格納する高速メモリであり、アクセスしたいデー
タが該BS内にないときは、該バッファストレージ制御
ユニットlの制御により、新たに主記憶装置9から必要
データが転送される。
演算制御ユニット5は、パス15bにより送られてきた
読出しデータをWBR501にセットし、加算器503
を用いて、該WBR501の前半4バイト(すなわち、
OF2の先頭アドレス)に。
あらかじめWAR500にセットされていたR1フィー
ルドで指定される汎用レジスタの内容を要爾長倍(すな
わち8倍)して加算し、結果をワークアドレスレジスタ
(WCR)502にセットする。WCR502の内容は
、セレクタ504でセレクトされ、パス52を通してア
ドレス制御ユニット2内のフェッチ専用アドレスレジス
タ(以下SAAと略記する)200へ転送される。また
、WBR501の後半4バイト(OF2の最大要素個数
)は、パス57を通して拡張ベクトル演算ユニット7へ
転送される。
次に、第2図に示したDTの次の8バイトを前述と同様
に読み出すが、この読み出し動作は、最初の8バイトの
読み出しとオーバーラツプして行われる。この様子を第
5図に示す。なお、第5図中 ○P2AはOP2先頭アドレス、 0P3AはOP3先頭アドレス、 ○PIAはopt先頭アドレス、 GR(R1)はOP2第1カウンタ値、GR(R1+1
)はOP3カウンタ値、GR(R1+2)はoPlカウ
ンタ値、GR(R1+3)はOP2第2カウンタ値、0
P2A’は○P2未処理要素先頭アドレス。
0P3A’は○P3未処理要素先頭アドレス。
0PIA’はOP1未処理要素先頭アドレス。
をそれぞれ表わす。
第5図に示すようにして、最初の処理を開始するベクト
ルオペランドアドレスがアドレスレジスタ制御ユニット
2内の5AA200.5AB201、DAR202にセ
ットされる。
また、命令のR1フィールドによって示される番号から
連続した4本の汎用レジスタの内容は。
パス45を通して、演算制御ユニット5に順番に読み出
され、セレクタ504を通り、パス57にて拡張ベクト
ル演算ユニット7に送られる。
第6図は、拡張ベクトル演算ユニット7の内部構成を示
す。演算実行制御ユニット5からパス57に送出された
各オペランドの最大要素個数は、最大要素個数レジスタ
MAX(2)700.MAX(3)701.MAX(1
)702にセットされ、各オペランドのカウンタ値は、
終了判定用のエレメントカウンタCNT(2P)703
.CNT(3)704 、CNT(1)705.CNT
(2S)706と、処理済要素数の計数用のCNT(2
S l)727 。
CNT(3S)728 、 CNT(l S)729 
、 CNT(2S 2)730へそれぞれセットされる
以上で、ベクトル要素間の演算を開始する為の前処理が
終了したことになる。
次にマージジョイン命令のベクトル要素間の処理の概要
を第4図を用いて説明する。
演算制御ユニット5の制御により、アドレス制御ユニッ
ト2からバッファストレージ制御ユニット1に対し、5
AA200.5AB201をアドレスとするフェッチリ
クエストが発行される。5AA200,5AB201に
は、それぞれOP2未処理要素先頭アドレス、○P3未
処理要素先頭アドレスがセットされている。バッファス
トレ−ジ制御ユニット1は、パス21aにて送られた5
AA200の内容をAT(0)100によりアドレス変
換してBSAR102にセットし、このアドレスをもと
にBS(0)104をアクセスし、読み出したデータを
DR(0)106にセットする。また、これと同時に、
パス21bにて送られた5AB201の内容をもとに、
BS(1)105をアクセスし、読み出したデータをD
R(1)107にセットする。この結果、DR(0)1
06には○P’2未処理先頭要素が、DR(1)107
&:はOP3未処理先頭要素が入る。
このように、バッファストレージ制御ユニット1におけ
るAT(0)100.BSAR(0)102゜B 5(
0)104 、 DR(0)106とAT(1)101
、BSAR(1)103.BS(1)105.DR(]
)107とを並行して動作可能とすることにより、拡張
ベクトル演算ユニット7での比較判定動作をとどこうら
すことなく、データの供給が可能となるようにしている
演算制御ユニット5は、DR(0)106の内容をパス
15aを通して読み出し、WAR500にセットする。
また、これと同時に、DR(1)107の内容をパス1
5bを通して読み出し、WBR501にセットする。次
に、演算制御ユニット5は、拡張ベクトル演算ユニット
7に対しパス57a、57bからのデータ取り込みを指
示する。
拡張ベクトル演算ユニット7は、パス57a。
57bにて送られるベクトルオペランドデータを受は取
ると、リア部(すなわち、後半4B)の比較を開始し、
OF2とOF3のリア部が一致すると、それぞれのフロ
ント部(すなわち、前半4バイトづつ)を合わせて8バ
イトのデータにし、パス75aにて判定結果指示信号を
、パス75にてストアデータを演算制御ユニット5に送
る。
OF2とOF2のリア部が一致している判定結果指示信
号を受は取ると、演算制御ユニット5は。
ストアリクエスト制御回路505.パス51を通してバ
ッファストレージ制御ユニット1のストアリクエスト制
御回路109ヘスドアリクエストを送る。また、拡張ベ
クトル演算ユニット7からパス75を経由して送られて
きたストアデータをWCR502,パス51aを通して
バッファストレージ制御ユニット1のFR108にセッ
トする。
さらに、アドレス制御ユニット2内のストアアドレスレ
ジスタ(DAR)202に入っているストアアドレスを
バッファストレージ制御ユニット1へ送る。この時、D
AR202はOPI未処理要素先頭アドレスを指してい
る。バッファストレージ制御ユニット1は、アドレス制
御ユニット2より送出されたアドレスを、アドレス変換
し、変換したアドレスがBS(0)104あるいはBS
(1)105内にあれば、FR108の内容を該当BS
へ書き込む。また、主記憶制御ユニット8に対してパス
1aによりストアリクエストを、バスlcによりストア
データを送出して主記憶装置9にも書き込む。
主記憶装W9へのデータの格納が完了すると、パス1b
により、主記憶制御ユニット8からバッファストレージ
制御ユニット1ヘスドア完了信号が来る。
一方、OP2とO20のリア部が一致しない場合は、拡
張ベクトル演算ユニット7からの判定結果信号に基づき
、演算制御ユニット5内のストアリクエスト制御回路5
05はストアリクエストに「無効」の付随情報を付けて
、パス51によりバッファストレージ制御ユニットlへ
送出する。また、O20とO20のリア部が一致しない
場合。
拡張演算ユニット7は、アドレス制御ユニット2に対し
てストアアドレスの更新抑止信号をパス72aにより送
出する。
仮想記憶方式の計算機の場合、主記憶装置内に所望のデ
ータが常に存在すると限らず、補助記憶装置上にはき出
されている場合がある。従って、こNに述べた拡張ベク
トル演算の処理の途中で、ページ変換例外等の発生によ
る割込み処理を行う必要が生じる。本発明によれば、こ
のような割込み処理が必要となった場合に、主記憶装置
への格納が完了した要素に対応するオペランドカウンタ
を設けているので、処理が完了した要素に対応するカウ
ンタ値をGPR4に書き戻すことができ。
割込み処理の終了後、命令を再起動してGPR4からカ
ウンタ値を読み出すことにより、処理の再開ができる。
このような機能は、実行時にデータ例外や演算例外を生
起するような拡張ベクトル演算において例外要素番号を
特定するためにも有効である。なぜなら、演算例外が発
生した場合は、処理要素番号をはじめに設定された最大
要素番号と比較するために使われているカウンタはオー
バランしてしまうことがあり、しかも、拡張ベクトル演
算は、処理要素番号がすべてのオペランドについて固定
サイクルで必ずしも増加するわけではないから、終了判
定用のカウンタ(第6図のCNT(2P)734.CN
T(3)735.CNT(1)736 、 CNT(2
S)737)から一定数を減することによっては、正し
い要素数番号が求まらないからである6ところが、処理
要素番号カウンタ(第6図のCNT(2S 1 )72
7 、 CNT(3S”)728、CNT(Is)72
9.CNT(232)730)は、カウントアツプの時
期が遅い(より具体的には1例外発生有無の判明後であ
る)ため、例外発生を検出したときは、カウントアツプ
を抑止し、正常に処理が終了した要素番号群を保持して
おくことが可能となっている。
以下マージジョイン命令のベクトル要素間の処理を実現
するための拡張ベクトル演算ユニット7の構成と動作に
ついて述べる。
第6図に示す拡張ベクトル演算ユニットにおいて、RO
BA708はOP2データを蓄えるオペランドバッファ
、ROPA707はROBA708のアウトポインタ、
ROBB709はOP3データを蓄えるオペランドバッ
ファ、ROPB710はROBB709のアウトポイン
タである。713はオペランドデータの後半4バイト同
志を比較する比較器、714は○P2のカウンタ(CN
T2P)703が指している要素と次の番号の要素とを
比較する比較器、715はO20のカウンタ(CNT3
)704が指している要素と次の番号の要素とを比較す
る比較器である。716は、O20とO20のリア部(
データの後半4バイト)が一致した場合に、パス725
による制御信号とセレクタ717を用いることにより、
O20,O20のフロント部(データの前半4バイト)
を合わせて8バイトにしてセットし、パス75により演
算制御ユニット5へ送出するとき、およびカウンタ群C
NT(2S1)727.CNT (3S)728、CN
T(IS)729.CNT(2S2)730を読み出し
てパス75とパス54 (第4図)によりGPR4へ格
納するときに使用するレジスタである。721はO20
,○P3のリア部の比較結果と、終了判定用カウンタC
NT(2P)703 。
CNT(3)704.CNT(1)705と最大要素番
号保持レジスタMAX(2)700.MA、X(3)7
01 、 MAX(1)702との比較結果を入力し。
終了か否か、あるいはどのカウンタを+1するか、とい
うような判定を行う判定回路である。
演算制御ユニット5からバッファストレージ制御ユニッ
ト1に対してフェッチリクエストが出され、OF2.0
P3がフェッチされると、OF2のフェッチデータは、
第4図のパス15a、WAR500,パス57aを通っ
てROBA708に入り、OF3はパス15b、WBR
501,パス57bを通ってROBB709に入る。次
に比較がはじまる。比較により判定回路721から判定
結果が1つ出ると、判定結果キュー724のインポイン
タ723の指しているところへ1判定結果をエンコーダ
742でエンコードして入れておく。
同時に、この判定結果はパス75aにより演算制御ユニ
ット5へ送られる・ 演算制御ユニット5は、ストア制御回路505にて有効
あるいは無効という情報を付けて、ストアリクエストを
バッファストレージ制御ユニット1内のストアリクエス
ト制御回路109へ送出する。ストアリクエスト制御回
路109は、付随情報が有効/無効のどちらを示してい
る場合にも、このストアリクエストを先入れ先出し方式
のキューに入れる。主記憶制御ユニット8で処理中のス
トアリクエストがないか、あるいは、前のストアリクエ
ストの処理完了をパス1bにて報告されると、ストアリ
クエスト制御回路109はキューからストアリクエスト
及び付随情報を先入れ先出し方式で取り出す。もし、付
随情報がストアリクエスト有効を示していれば、主記憶
#御ユニット8に対してストアリクエストを送出する。
また、無効を示していれば、演算制御ユニット5に対し
てパス16によりストアリクエスト処理完了信号を送る
。ストアリクエストが有効で、主記憶制御ユニット8に
対してストアリクエストを出した場合は、パス1bによ
り、ストア完了報告が来るまで、ストアリクエスト制御
回路109は次のリクエストのキューからの取り出しを
待ち、処理の追い越しによる矛盾が発生しないようにし
ている。なお、バッファストレージ制御ユニット1で検
出したストア時のアクセス例外発生有無もストアリクエ
スト処理完了信号と一緒に、パス16により演算制御ユ
ニット5へ送出する。演算制御ユニット5内のストアリ
クエスト制御回路505は、バッファストレージ制御ユ
ニット1からのストアリクエスト処理完了信号をパス5
8により拡張ベクトル演算ユニット7へ送る。
演算制御ユニット5からパス58により、ストアリクエ
スト処理完了信号およびアクセス例外発生有無信号が送
られてくると、拡張ベクトル演算ユニット7は1判定回
路721によりアクセス例外の発生有無を見て、もしも
、アクセス例外が発生していなければ、判定結果キュー
724のアウトポインタ726を1つ進め、該キュー7
24に保存されている判定結果を1つ取り出してデコー
ダ743でデコードし、その結果指示される動作(該当
するカウンタを+1、あるいはCNT (2St)72
7の内容のCNT (2S2)730へのコピー、ある
いは、カウンタの更新抑止等の動作)を行う。このとき
、取り出した判定結果が処理終了を示していれば、カウ
ンタ群CNT(2S1)727 +’ CNT(3S)
728 、 CNT(I 5)729、CNT(2S2
)730の更新はいっさい行わない。また、もしもアク
セス例外の発生を付随したストアリクエスト処理完了信
号であった場合は、カウンタの更新を行なわず、アクセ
ス例外処理を演算制御ユニット5に委ねる。
このようにして、拡張ベクトル演算ユニット7内のカウ
ンタ群CNT (2S1)727.CNT(3S)72
8.CNT (IS)729.CNT(2S 2)73
0には、正しく処理が完了した要素番号が保持される。
拡張ベクトル演算ユニット7は1判定回路721により
「バックトラック発生」 (具体例は後述する)の判定
がされると、パス72cによってアドレス制御ユニット
2に対して、フェッチアドレス保存用レジスタ(SAS
R)206の5AA2’00へのセット信号を送出する
。同時に1判定回路721からパス741によ’J、C
NT(2S)706の値のCNT(2P)703へのセ
ット信号が送出される。さらにパス75aにてバックト
ラック発生を演算制御ユニット5へ送る。
拡張ベクトル演算ユニット7からバックトラック発生の
指示を受けた演算制御ユニット5は、5ASR206の
内容をセットした後の5AA200が保持するアドレス
を用いたフェッチリクエストをバッファストレージ制御
ユニットlへ送出する。拡張ベクトル演算ユニット7で
は、このリクエストによるフェッチデータが到着するま
での間。
判定は待たされる。カウンタCNT(2P)703 。
CNT(3)704.CNT(1,)705.CNT(
2S)706の更新も抑止される。たゾし、パス58に
よるストアリクエスト処理完了報告によるカウンタCN
T(2S 1)727.CNT(35)728、CNT
(Is)729.CNT(2S2)730の更新は、何
ら変わることなく行われる。
以上のようなマージジョイン命令の処理の様子を第7図
に示す。第7図は、○P2.○P3が第2図に示したデ
ータの場合で、OF2.OF3の未処理先頭要素番号は
、それぞれrL OItの場合を想定している。なお、
マージジョイン命令の入力データは、リア部に関してソ
ート済であることを仮定して時間t。に、各オペランド
のフェッチデータが拡張ベクトル演算ユニット内のバッ
ファに到着し、比較が開始できる状態になったものとし
ている。
第7図において、1 o−1、の間に比較を行い。
この結果は第3図のPloの部分にあたる、すなわち、
OF2のリア部<OF2のリア部であることから、判定
回路721は次の動作を指示する。
イ、出カフ22,741によりROPA707及びCN
T(2P)703を+1、 口、出カフ2a、72bにより、次サイクルのDAR2
02,5AB201の更新を抑止。
次のt2〜t3の判定結果では第3図のP9にあたる動
作を行うが1判定回路721は次の動作を指示する。
ハ、出カフ22,741によりROPA707及びCN
T(2P)703を+1、 二。出カフ25によりセレクタ717でOF2とOF2
のフロント部を選択、 ホ、出カフ39によりCNT(1)705 + 1 。
これとオーバラップしてt3〜t4の判定結果では、次
のような動作が行われる。
へ、出カフ41によりCNT(2P)703にCNT(
2S)706の値の取り込みを指示。
ト、出カフ2cにより5AA200に5ASR206の
値の取り込みを指示、 チ、出カフ25によりセレクタ717でOF2とOF2
のフロント部を選択、 す、出カフ39によりCNT(1)705を+1゜この
ように、アドレスとカウンタ値をS ave しておい
た前の値に戻しているが、これがrバックトラック」の
具体例である。
本例の場合は、1つ前の要素のアドレスと要素番号に戻
るが、さらに多くの要素だけ前に戻る場合もありうる。
このため、演算制御ユニット5は拡張ベクトル演算ユニ
ット7からパス75によりバックトラックの発生の報告
を受けると、フェッチリクエストを出しなおす。このと
きのアドレスは、5ASR206の値を取り込んだ後の
5AA200が保持するアドレスを用いる。第7図のt
5〜tlIは、このフェッチリクエストによるデータ到
着待ちを示している。
第7図において、判定結果の行に記した符号は第3図の
PADと対応しており、判定結果によって、どういう動
作を指示しているかを示している。
この指示の結果は次サイクルのカウンタ値に反映される
最後に、マージジョイン命令の要素間の比較動作が終了
した後の処理について、第4図と第6図を用いて述べる
拡張ベクトル演算ユニット7内のカウンタCNT(2P
)703の値がMAX(2)700の値と一致し、かつ
カウンタCNT(3)704の値がMAX(3)701
の値と一致するか、あるいは、CNT(1)705の値
がMAX(1)702の値と一致しているときにOPI
ストアの条件が発生したとき(すなわち、OF2とOF
3のリア部が一致したとき)、あるいは、例外発生が判
定回路に報告されたとき、処理終了条件が成立し1判定
回路721は処理終了指示を出す。処理終了指示を受け
ると、演算制御ユニット5は、バッファストレージ制御
ユニット1内のストアリクエストの処理がすべてはける
、すなわち、送られてきたストアリクエストに対するス
トアリクエスト処理完了信号がすべて拡張ベクトル演算
ユニット7に送出されるのを待つ。拡張ベクトル演算ユ
ニット7にすべてのストアリクエスト処理完了信号が送
られてくれば、拡張ベクトル演算ユニット7内のカウン
タCNT(2S 1)727.CNT(3S)728.
CNT(I S)7219 、 CNT(2S 2)7
30は処理完了要素に対応する要素番号を保持すること
になる。それが完了すると、演算制御ユニット5の制御
により、拡張ベクトル演算ユニット7内のカウンタCN
T(2S l)727 、 CNT(3S)728、C
NT(Is)729.CNT(2S2)730が順に読
み出されて、パス75を通して、WCR502にセット
され、さらにパス54を通して。
命令のR1フィールドで指定された番号から4本連続し
た汎用レジスタに、書き込まれる。4本のカウンタ値が
すべて汎用レジスタに書き込まれると、演算制御ユニッ
ト5は、マージジョイン命令が終了したことを、命令制
御ユニット3に知らせる。
ベクトル要素間の演算実行途中に、ページ変換例外等の
割込要因が発生した場合の後処理も、以上に示した後処
理と全く同じように行われる。この結果、正常に処理が
完了した要素分はカウンタが更新され、未処理要素に対
応するカウンタ値がGPRに格納されるので、割込処理
を行った後に命令を再度起動すれば1通常の拡張ベクト
ル命令の前処理と全く同じ処理を行うことにより、拡張
ベクトル命令の処理を再開することが可能となる。
〔発明の効果〕
本発明によれば、これまでスカラ処理しかできなかった
データベース処理等におけるジョイン等のデータ操作を
、ページ変換例外割込が発生し得るような仮想記憶計算
機環境においても、ベクトル処理することを可能として
いる。
高速化の一例として実施例で用いたマージソート命令で
は、従来、−要素処理するのに。
リア部が不一致の場合、 1、リア部比較 2、判定 3、インデクスの更新、 4、終了条件判定 リア部が一致の場合。
1、リア部比較 2、判定および分岐 3、ムーブ 4、ムーブ 5、インデクスの更新 6、終了条件判定 というように、4〜6マシンサイクル要していたものが
、ベクトル処理化することにより、1要素1マシンサイ
クルで可能となり、約4〜6倍の高速化が可能となる。
【図面の簡単な説明】
第1図は本発明の一実施例の全体の構成図、第2図はマ
ージジョイン命令の命令フォーマットを示す図、第3図
はマージジョイン命令の動作を示すプログラム解析図、
第4図は第1図のバッファストレージ制御ユニット、演
算制御ユニット、拡張ベクトル演算ユニットの構成図、
第5図は第4図の動作を示すタイミング図、第6図は第
1図の拡張ベクトル演算ユニットの詳細構成図、第7図
は第6図の動作を示すタイミング図である。 1・・・バッファストレージ制御ユニット、2・・・ア
ドレス制御ユニット、  3・・・命令制御ユニット、
  4・・・汎用レジスタ、  5・・・演算制御ユニ
ット、  7・・・拡張ベクトル演算ユニット、8・・
主記憶制御ユニット、 9・・・主記憶装置、11・・
・汎用スカラ処理装置、  703,704゜705.
706・・・終了判定用カウンタ、724・・・判定結
果キュー、 727,728゜729.730・・・処
理完了要素対応カウンタ、72 a 、 72 b 、
 72 c 、 72 d−比較結果をオペランドアド
レスレジスタに反映させるための制御線。 第1図 第2図 第  4  図 第5図 笛フi;

Claims (2)

    【特許請求の範囲】
  1. (1)メモリより1組ないし複数組のベクトルオペラン
    ドの要素を順次読出して演算し、演算結果を順次ベクト
    ルオペランドに格納するベクトル処理装置において、各
    ベクトルオペランド対応に、最大要素番号を示す最大要
    素数レジスタと、演算終了要素番号を保持する第1エレ
    メントカウンタと、メモリへの格納終了要素番号を示す
    第2エレメントカウンタと、前記最大要素数レジスタと
    第1エレメントカウンタの内容を比較し、演算終了の判
    定を行う手段とを設けたことを特徴とするベクトル処理
    装置。
  2. (2)入力オペランドの一方のエレメントカウンタと、
    オペランドアドレスレジスタを2種類設け、演算データ
    に同一の値が複数連続する場合に、当該データのうちの
    最も要素番号の小さい要素に対応するカウンタ値とオペ
    ランドアドレスを保持しておき、他方の入力オペランド
    も同一データが複数連続する場合に、両オペランドの演
    算データが一致するすべての組み合せの要素識別番号対
    を出力することを特徴とする特許請求の範囲第1項記載
    のベクトル処理装置。
JP60026893A 1984-12-12 1985-02-14 ベクトル処理装置 Granted JPS61187076A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP60026893A JPS61187076A (ja) 1985-02-14 1985-02-14 ベクトル処理装置
US06/806,801 US4890220A (en) 1984-12-12 1985-12-10 Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
EP85115752A EP0184828B1 (en) 1984-12-12 1985-12-11 Vector processing apparatus
DE8585115752T DE3587167T2 (de) 1984-12-12 1985-12-11 Geraet zur vektorverarbeitung.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60026893A JPS61187076A (ja) 1985-02-14 1985-02-14 ベクトル処理装置

Publications (2)

Publication Number Publication Date
JPS61187076A true JPS61187076A (ja) 1986-08-20
JPH0431145B2 JPH0431145B2 (ja) 1992-05-25

Family

ID=12205924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60026893A Granted JPS61187076A (ja) 1984-12-12 1985-02-14 ベクトル処理装置

Country Status (1)

Country Link
JP (1) JPS61187076A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58154070A (ja) * 1982-03-08 1983-09-13 Mitsubishi Electric Corp デ−タ処理装置
JPS59112364A (ja) * 1982-12-20 1984-06-28 Fujitsu Ltd ベクトル演算処理方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58154070A (ja) * 1982-03-08 1983-09-13 Mitsubishi Electric Corp デ−タ処理装置
JPS59112364A (ja) * 1982-12-20 1984-06-28 Fujitsu Ltd ベクトル演算処理方式

Also Published As

Publication number Publication date
JPH0431145B2 (ja) 1992-05-25

Similar Documents

Publication Publication Date Title
JP2559399B2 (ja) 情報処理装置
US4890220A (en) Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
US5353418A (en) System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
EP1050803B1 (en) Guarded computer instruction execution
US4295193A (en) Machine for multiple instruction execution
US4916652A (en) Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US4701844A (en) Dual cache for independent prefetch and execution units
CA1324671C (en) Decoding multiple specifiers in a variable length instruction architecture
JP2810896B2 (ja) データ処理装置
JPH0283735A (ja) 命令先取り装置
JPH0242569A (ja) ベクター処理システムに用いる文脈スイッチング方法及び装置
JPH0517588B2 (ja)
JPH0215369A (ja) ベクター処理システムの命令を実行する方法及び装置
US6725365B1 (en) Branching in a computer system
US7721073B2 (en) Conditional branch execution in a processor having a data mover engine that associates register addresses with memory addresses
US7721075B2 (en) Conditional branch execution in a processor having a write-tie instruction and a data mover engine that associates register addresses with memory addresses
JPH06266556A (ja) データ処理装置
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
JPS61187076A (ja) ベクトル処理装置
EP1050805B1 (en) Transfer of guard values in a computer system
JP2581565B2 (ja) ガード付命令を実行するデータ処理装置
JPH0250259A (ja) ベクタープロセッサによって非同期メモリ管理例外を取り扱う方法及び装置
JPH0326862B2 (ja)
JPS5931733B2 (ja) 可変長さの命令を実行する中央処理装置