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

ベクトル処理装置

Info

Publication number
JPH0731588B2
JPH0731588B2 JP59260708A JP26070884A JPH0731588B2 JP H0731588 B2 JPH0731588 B2 JP H0731588B2 JP 59260708 A JP59260708 A JP 59260708A JP 26070884 A JP26070884 A JP 26070884A JP H0731588 B2 JPH0731588 B2 JP H0731588B2
Authority
JP
Japan
Prior art keywords
vector
data
address
control unit
operand
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
JP59260708A
Other languages
English (en)
Other versions
JPS61139881A (ja
Inventor
八穂子 吉田
幸一 石井
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 JP59260708A priority Critical patent/JPH0731588B2/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 JPS61139881A publication Critical patent/JPS61139881A/ja
Publication of JPH0731588B2 publication Critical patent/JPH0731588B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、ベクトル処理装置に係り、特に新しい形式の
ベクトル演算に好適なベクトル処理装置に関する。
〔発明の背景〕
汎用スカラ演算を行なうデータ処理装置に、ベクトル計
算の進行を管理するエレメントカウンタと、ベクトルエ
レメント間の演算を行う演算器(これは上記データ処理
装置と共有する場合もある)とを付加し、ベクトルオペ
ランドデータのメモリアクセスは上記データ処理装置の
記憶制御回路を用い、メモリ上のベクトル間の演算をパ
イプラインで実行することにより、少ないハードウェア
を追加することによって高速にベクトルデータを処理す
ることのできるベクトル処理装置は、既に知られてい
る。(特開昭53−87640号,同53−88545号)このような
ベクトル処理装置は、データの演算結果によらず、各ベ
クトルオペランドのインデクスが一様に増加するタイプ
のベクトル計算を行うのを原則としていた。従って、エ
レメントカウンタは1本あれば制御が可能であり、ベク
トルオペランドレジスタの更新もあらかじめ予測可能で
あった。
ところが、各ベクトルオペランドのインデクスの増加
が、データの演算結果に依存する形式のベクトル計算を
考えると、このようなタイプのベクトル計算は、ベクト
ル化して高速化することができなかった。不可能であっ
た理由としては、1つはエレメントカウンタがオペラン
ド毎に独立にないこと、もう1つは、データの演算結果
をベクトルオペランドアドレスレジスタに反映させるこ
とができないことがあげられる。
〔発明の目的〕
本発明の目的は、汎用スカラ演算を行うデータ処理装置
に、このデータ処理装置の記憶制御回路を利用してベク
トル演算を行う機構を付加することにより、各ベクトル
オペランドのインデクスの増加が、データの演算結果に
依存する形式のベクトル計算を可能とするベクトル処理
装置を提供することにある。
〔発明の概要〕
本発明では、スカラ演算を行うデータ処理装置に、各ベ
クトルオペランド毎に要素番号を示すカウンタと、デー
タの演算結果を上記データ処理装置の記憶制御部に反映
する手段と、各入力ベクトルオペランド毎にベクトルオ
ペランドバッファとを設けることにより、上記の形式の
ベクトル計算を可能とするものである。
〔発明の実施例〕
以下、本発明の一実施例を説明する。第1図は、本発明
の一実施例の全体の構成図である。9は主記憶装置、8
は主記憶制御ユニット、10は入出力制御ユニット、11は
汎用スカラ演算装置、7はベクトル計算を専ら行う為の
ベクトル演算機構(以下、IDP(Integrated Database
Processor)と略す)を示している。
第1図におけるベクトル命令の実行の動作について説明
する前に、まず一例としてマージソート命令について述
べる。
マーゾソート命令の命令フォーマットと概略動作を、第
2図に示す。マージソート命令は4バイト(以下バイト
をBと略記する)長命令である。命令の第0〜15ビット
が、マージソート命令であることを示すオペコードであ
る。命令の第16〜23ビットは意味をもたない。命令の第
24〜27ビット(R1フィールド)で示される番号から3本
連続した番号の汎用レジスタに、各ベクトルオペランド
の処理済要素個数が示されている。命令の第28〜31ビッ
ト(R2フィールド)で示される汎用レジスタに、DT(De
scription Table)の先頭アドレス(Description Tab
le Origin:以下DTOと略記する)が示されている。汎用
レジスタは汎用レジスタユニット(以下GPR)4に用意
されている。DTは主記憶装置9上にあり、各ベクトルオ
ペランドの先頭アドレスと最大要素個数が記述されてい
る。Description Tableによって間接的に指定されたベ
クトルオペランドは、前半4Bがデータを識別する為の符
合のない整数部、後半4Bがソートする対象となる数値デ
ータ部である。第2図では、 OP2最大個数=4 OP3最大個数=4 OP1最大個数=8 でマージソート命令を適用した時の様子を示している。
マージソート命令の動作を、第3図のPAD(Program An
alysis Diagram)図に示す。第2図と第3図の対応を
下記に示す。
OP2後半4BA(i),OP2処理済要素個数i OP3後半4BB(j),OP3処理済要素個数j OP1後半4BC(k),OP1処理済要素個数k OP2最大要素個数imax,OP3最大要素個数jmax マージソート命令においては、OP2要素とOP3要素を比較
した結果、小さい方(等しい時はOP2要素)を選択して
ストアする。例えば、第2図に示す例では、まずOP2の
#0のデータ部とOP3の#0のデータ部が比較され、OP2
側が選択されてストアされる。次の比較は、選択された
側の次の要素と、選択されなかった側の前回の要素の間
でなされる。第2図に示す例では、OP2の#1とOP3の#
0が比較される。この動作をすべてのOP2,OP3要素がス
トアされる迄続ける。
即ち、マージソート命令は、2本のソート済ベクトルを
入力として、より長い1本のソート済ベクトルを出力す
る命令といえる。マージソート命令は、リレーショナル
データベースにおけるテーブルソート処理等に有効であ
る。マージソート命令はi、jの増加が、A(i)、B
(j)の比較結果に依存している形式のベクトル命令の
一例といえる。
以下、第1図において、マージソート命令を実行する時
の動作について説明する。
バッファストレージ制御ユニット1からパス13を通して
読み出された命令は、命令制御ユニット3にて解読され
る。マージソート命令であると解読されると命令制御ユ
ニット3は、スカラ演算実行ユニット5に対し、マージ
ソート命令であること、及び、使用するレジスタ番号
(R1、R2フィールド)をパス35で知らせ、スカラ演算実
行ユニット5に制御を移す。
スカラ演算実行ユニット5は、命令制御ユニット3によ
って示されたR1、R2フィールドのレジスタ番号をレジス
タ508に保持し、セレクタ509でR2フィールドをセレクト
し、レジスタ(以下ELと略記する)510にセットする。L
E510の内容をパス54Eを通してGPR4に与え、DTOをパス45
を通して読み出し、セレクタ506を介してワークレジス
タB(以下WBRと略記する)501にセットする。
第4図は、第1図のアドレス制御ユニット2、バッファ
ストレージ制御ユニット1、スカラ演算実行ユニット5
の詳細な構成を示したものである。又、第5図は、第4
図の動作を示したタイムチャートである。以下、第1図
の動作をより詳細に説明するために第4図、第5図を用
いる。なお第5図で、 OP2AはOP2の先頭アドレス、 OP3AはOP3の先頭アドレス、 OP1AはOP1の先頭アドレス、 GR(R1)はOP2の処理済要素個数、 GR(R1+1)はOP3の処理済要素個数、 GR(R1+2)はOP1の処理済要素個数、 OP2A′はOP2の未処理要素先頭アドレス、 OP3A′はOP3の未処理要素先頭アドレス、 OP1A′はOP1の未処理要素先頭アドレスをそれぞれ表わ
す。
パス45を通して送られたDTOは、セレクタ506を介してWB
R501にセットされる。セットされたDTOはセレクタ504で
セレクトされ、パス52を通じてアドレス制御ユニット2
内のフェッチ専用アドレスレジスタB(以下SABと略記
する)201にセレクタ207を介してセットされる。(第5
図SAB201) なお、アドレス制御ユニット2内には、もう1本、フェ
ッチ専用アドレスレジスタA(以下SAAと略記する)200
が設けられているが、これは、バッファストレージ制御
ユニット1内に、アドレス変換回路及びバッファストレ
ージが2面設けられていることに対応している。2つの
アドレス変換回路及びバッファストレージは、機能的に
は同一であるが、後述する要素間演算の処理を高速に行
う為に、2重化して設けられている。2重化して設けら
れている各々を、以下0系、1系と呼ぶ。以下、DTOフ
ェッチは1系を利用するものとして説明する。SAB201の
内容(DTO)は、パス21bを通して、バッファストレージ
制御ユニット1に送られる。DTOは、アドレス変換回路
(以下ATと略記する)1・101により仮想アドレスから
実アドレスに変換され、求まった実アドレスがバッファ
ストレージアドレスレジスタ(以下BSARと略記する)1
・103にセットされる。(第5図T1)BSAR1・103の内容
(DTO)をアドレスとして、バッファストレージ(以下B
Sと略記する)1・105がアクセスされ、読み出しデータ
が8B長の読み出しデータレジスタ(以下DRと略記する)
1・107にセットされる。(第5図T2)この結果、DR1・
107の前半4Bには、OP2先頭アドレスが、後半4Bには、OP
2最大要素個数が入る。DR1・107からの読み出しデータ
は、パス15bを通して、スカラ演算実行ユニット5に送
出される。
バッファストレージBS0・104、BS1・105は、各々主記憶
の部分的な写しであり、アクセスしたいデータがバッフ
ァストレージ内にない時は、バッファストレージ制御ユ
ニット1の制御により、新たに主記憶装置9からデータ
が転送される。
スカラ演算実行ユニット5は、パス15bからのデータをW
BR501にセットする。(第5図T3) スカラ演算実行ユニット5は、レジスタ508に保持され
ていたR1フィールドを、セレクタ509でセレクトし、EL5
10にセットする。(第5図T3)EL510をもとに、R2フィ
ールドで指定される汎用レジスタの内容(OP2処理済要
素個数)を、パス45を通して読み出し、セレクタ505を
介してワークレジスタA(以下WARと略記する)500にセ
ットする。(第5図T3)。次に演算器503を用いてWAR50
0の内容を要素長倍(すなわち8倍)し、セレクタ505を
介してWAR500にセットする。(第5図T4)このWAR500
と、WBR501の前半4B(OP2先頭アドレス)とを、演算器5
03を用いて加算し、結果をセレクタ507を介して、ワー
クレジスタC(以下WCRと略記する)502にセットする。
(第5図T5)WCR502の内容は、セレクタ504でセレクト
され、パス52を通して、アドレス制御ユニット2内のSA
A200へ、セレクタ206を介して転送される。(第5図T
6)又、WBR501の後半4B(OP2最大要素個数)は、セレク
タ504でセレクトされ、パス57を通じてIDP7へ転送され
る。
次に、Description Tableの次の8バイトを前述と同様
に読み出すが、この読み出し動作は、最初の8バイトの
読み出しとオーバーラップして行われる。この様子を、
第5図に示す。DTOの+8、+16は、アドレス制御ユニ
ット2内の演算器204を用いて行う。第5図に示すよう
にして、最初に処理を開始するベクトルオペランドアド
レスがアドレスレジスタ制御ユニット2内のSAA200、SA
B201、ストア専用アドレスレジスタ(以下DARと略記す
る)202にセットされる。
又、命令のR1フィールドによって示される番号から連続
した3本の汎用レジスタの内容は、GPR4からパス45を通
して、スカラ演算実行ユニット5に順番に読み出され、
セレクタ504を通り、パス57にて、IDP7に、送られる。R
1フィールドの+1、+2は、演算器512を用いて行う。
第6図に、IDP7の内部構成を示す。スカラ演算実行ユニ
ット5からパス57にて送出された各オペランドの最大要
素個数は、最大要素個数レジスタ(以下MAXと略記す
る)2.700、MAX3.701、MAX1.702へ、各オペランドの処
理済要素個数は、エレメント・カウンタ(以下CNTと略
記する)2.703、CNT3.704、、CNT1.705へそれぞれセッ
トされる。
以上で、ベクトル要素毎の演算を開始する為の前処理が
終了したことになる。
次にマージソート命令のベクロル要素毎の処理の概要を
第4図を用いて説明する。
スカラ演算実行ユニット5の制御により、アドレス制御
ユニット2から、バッファストレージ制御ユニット1に
対し、SAA200、SAB201をアドレスとするフェッチリクエ
ストが送出される。SAA200、SAB201には、それぞれ、OP
2未処理要素先頭アドレス、OP3未処理要素先頭アドレス
がセットされている。
バッファストレージ制御ユニット1は、パス21aにて送
られたSAA200の内容をアドレス変換回路ATO・100により
変換してBSAR0・102にセットし、このアドレスをもとに
BS0・104をアクセスし、読み出しデータをDR0・106にセ
ットする。又、これと同時に、パス21bにて送られたSAB
201の内容をもとにBS1・105をアクセスし、読み出しデ
ータをDR1・107にセットする。この結果、DR0・106に
は、OP2未処理先頭要素が、DR1・107にはOP3未処理先頭
要素が入る。
スカラ演算実行ユニット5は、DR0・106の内容をパス15
aを通して読み出し、WAR500にセットする。又、これと
同時に、DR1・107の内容をパス15bを通して読み出し、W
BR501にセットする。
次に、スカラ演算実行ユニット5は、IDP7に対しパス57
a、57bのデータ取り込みを指示する。IDP7は、パス57
a、57bにて送られるベクトルオペランドデータを受け取
ると、後半4Bの比較を開始し、データの小さい方(等し
い時はOP2要素)をパス75にて、スカラ演算実行ユニッ
ト5に送出する。
スカラ演算実行ユニット5は、IDP7にデータを送出して
から、固定サイクル後に、IDP7からのデータをパス75を
通して受け取り、WCR502にセットする。
アドレス制御ユニット2は、スカラ演算実行ユニット5
の制御により、DAR202をアドレスとするストアリクエス
トを、バッファストレージ制御ユニット1に送出する。
この時、DAR202は、OP3未処理要素先頭アドレスを指し
ている。
一方、WCR502内のストアデータは、スカラ演算実行ユニ
ット5の指示により、バッファストレージ制御ユニット
1内の書き込みデータレジスタ(以下FRと略記する)10
8にセットされる。バッファストレージ制御ユニット1
は、アドレス制御ユニット2より送出されたアドレスを
アドレス変換し、変換したアドレスがBS0・104、BS1・1
05内にあれば、FR108の内容を書き込む。又、主記憶装
置9に対して、ストアリクエストを送出する。
以上述べた、ベクトルオペランドデータのデータ転送の
うち、IDP7以外のレジスタやパスは、通常のスカラ命令
を実行する際に使われるリソースを利用している。又、
データの転送は、スカラ演算実行ユニット5の制御によ
っている。
マージソート命令においては、OP2要素とOP3要素を比較
した結果、小さい方(等しい時はOP2要素)を選択して
ストアする。例えば、第2図に示す例では、まずOP2の
#0とOP3の#0が比較され、OP2側が選択されてストア
される。次の比較は、選択された側の次の要素と、選択
されなかった側の前回の要素の間でなされる。第2図に
示す例では、OP2の#1とOP3の#0が比較される。
この動作を実現する為には、IDP7で行なわれた比較結果
を、アドレス制御ユニット2内のSAA200又はSAB201の更
新に反映させなければならない。この動作は、IDP7から
アドレス制御ユニット2に対し、IDP7での比較の結果、
OP2、OP3のどちらが選択されたかを示す制御線72a、72b
を設け、これにより、IDP7での比較結果をアドレス制御
ユニット2内のアドレスレジスタの更新に反映させるこ
とにより、実現できる。
実現の方式として、例えば、第2図の例で、OP2の#0
とOP3の#0の比較の結果、OP2が選択され、制御線72a
により、OP2アドレスを保持するSAA200を+8し、OP2の
#1のフェッチリクエストを送出するという方式が考え
られるが、この方法では、パイプライン処理による高速
化が期待できない。
そこで、ここでは、選択された側のオペランドアドレス
レジスタを更新するのではなく、選択されなかった側の
オペランドアドレスレジスタの更新を抑止し、フェッチ
リクエストは毎サイクル送出する方式を採用する。即
ち、 (1)IDP7は、比較の結果、OP2を選択する時は制御線7
2bを、OP3を選択する時は制御線72aを、1マシンサイク
ル間‘1'とする。
(2)アドレス制御ユニット2は、OP2のフェッチリク
エストを出したサイクルに、制御線2aが‘0'ならば加算
器203を用いてSAA200を8加算し、制御線72aが‘1'なら
ば更新を抑止する。
(3)アドレス制御ユニット2は、OP3のフェッチリク
エストを出したサイクルに、制御線72bが‘0'ならば加
算器204を用いてSAB201を8加算し、制御線72bか‘1'な
らば更新を抑止する。
(4)一方、DAR202については、OP2又はOP3のいずれか
を必ずストアするので、比較する度ごとに加算器205を
用いてDAR202を+8する。
この方式では、OP2の#0とOP3の#0の比較結果が求ま
る迄、SAA200、SAB201ともに毎サイクル+8されてしま
うので、IDP7には必要なデータを蓄えるバッファが必要
となる。又、アドレスレジスタの更新を抑止してフェッ
チリクエストを毎サイクル出すということは、同じデー
タが何回も読み出されることになるが、これは、スカラ
演算実行ユニット5からのデータ取り込み指示を、IDP7
が無視することにより、無駄なデータをオペランドバッ
ファにとりこまないよう制御できる。
以下、本方式を実現する為の、IDP7の構成と、動作につ
いて説明する。
第6図は、IDP7の構成図である。707はOP2データを蓄え
るオペランドバッファA(以下ROBAと略記する)、706
はROBA707のアウトポインタ(以下ROPAと略記する)、7
08はOP3データを蓄えるオペランド・バッファB(以下R
OBBと略記する)、709はROBB708のアウトポインタ(以
下ROPBと略記する)、712はオペランドデータの後半4B
同士を比較する比較器、713はどちらのオペランドを選
択するかを判断する判定回路、715は選択されたオペラ
ンドをセットしスカラ演算実行ユニット5に送出する為
のレジスタを示している。
ROBA707、ROBB708のデータ入出力は、次のようにして制
御される。
719は、4から0にラップアラウンドする3ビットのカ
ウンタ構造を成しているROBA707へのインポインタであ
る。オペランドデータが、パス57aにてROBA707に送られ
てくると、インポインタ719の示す番号のデータ位置に
データがとりこまれる。データがとりこまれると、イン
ポインタ719は+1される。一方、706は、4から0にラ
ップアラウンドする3ビットのカウンタ構造を成してい
るROBA707のアウトポインタである。
ROBA707のデータを読み出す時は、アウトポインタ706の
値により、ROBA707内のデータ位置#0〜4のいずれか
をセレクタ710によりセレクトする。720はROBB708への
インポインタ、709はROBB708のアウトポインタであり、
機能はそれぞれROBA707インポインタ719、アウトポイン
タ706と全く同じである。
以上、説明したことからわかるように、ROBA707とROBB7
08は、FIFO(First In First Out)形式である。
第6図に構成を示したIDP7の動作を、第7図を用いて説
明する。第7図のタイムチャートは、OP2、OP3が、第7
図右に示す場合で、OP2、OP3の未処理先頭要素番号はそ
れぞれ0の場合を想定している。
第0サイクルで、アドレス制御ユニット2から先頭要素
のフェッチリクエストが出されると、そのデータがIDP7
に到着するのは、第4サイクルである。OP2とOP3を比較
器712で比較した結果、OP2側が選択されると、判定回路
713は、下に示す動作する。
出力722により、ROPA706を+1し、加算器719で+1さ
れた値をセレクタ716を介してCNT2・703にセット。
出力725により、セレクタ714でOP2データを選択。
出力723により、加算器720で+1された値をセレクタ71
7を介してCNT3・704にセット。
出力72bにより、次サイクルのSAB201更新を抑止。
出力72bがアドレスレジスタの更新に反映される迄、既
にOP3の#1〜#4のフェッチリクエストは送出されて
いるが、このリクエストによって読み出されたオペラン
ドデータを順にROBB708に蓄える。更に、OP3の#5のフ
ェッチリクエストも送出され、このリクエストによって
読み出されたオペランドデータもスカラ演算実行ユニッ
ト5のWBR501にセットされるが、ROBB708にはセットさ
れない。これは、IDP7が判定回路713の出力を記憶して
いて、ROBB708へのセットを抑止するからである。従っ
て、ROBB708に必要な容量は、(オーバーランするフェ
ッチリクエスト−1)×8バイト、すなわち40Bあれば
充分である。
以上説明したことからわかるように、入力オペランド毎
に充分な量のオペランドバッファを設け、オペランドの
比較及び比較結果のオペランドバッファアウトポインタ
及びエレメントカウンタへの反映を1マシンサイクルピ
ッチで行えば、マージソート命令の1マシンサイクルピ
ッチの処理が可能である。
最後に、マージソート命令のエレメント毎の比較動作が
終了した後の処理について、第6図次いで第4図を用い
て説明する。
まず、第6図を用いて演算の終了検出について説明す
る。IDP7内のエレメントカウンタCNT2・703、CNT3・70
4、CNT1・705をカウントアップしてゆき、OP2のCNT2・7
03がOP2のMAX2・700と比較器716で比較した結果等しく
なり、かつ、OP3のCNT3・704がOP3MAX3・701と比較器71
7で比較した結果等しいということがわかると、IDP7よ
りスカラ演算実行ユニット5に、最終要素のWCR502から
のストアリクエスト送出にあわせて有効な要素がなくな
ったことが知らされる。これにより、スカラ演算実行ユ
ニット5は、WCR502のストアデータの送出を止め、終処
理に入る。次に第4図を用いて終処理について述べる。
終処理では、スカラ演算実行ユニット5の制御により、
IDP7内のオペランド毎のカウンタ値、すなわち、第6図
中のCNT2・703、CNT3・704、CNT1・705の内容が順に読
み出され、パス75を通してWCR502にセットされ、さらに
パス54を通して、GPR4に送られ、命令のR1フィールドで
指定された番号から3本連続した汎用レジスタに書き込
まれる。3本のカウンタ値がすべて汎用レジスタに書き
込まれると、スカラ演算実行ユニット5は、マージソー
ト命令が終了したことを、命令制御ユニット3に知らせ
る。
〔発明の効果〕
本発明によれば、各ベクトルオペランドのインデクスの
増加が、データの演算結果に依存する形式のベクトル計
算を、高速に処理することが可能となる。
高速化の一例として、実施例で用いたマージソート命令
では、従来、一要素処理するのに、 1.データの比較 2.ムーブ 3.インデクスの更新 4.終了条件判定 と少なくとも4マシンサイクル要していたものが、ベク
トル処理することにより1要素例えば1マシンサイクル
で可能となり、約4倍の高速化が可能となっている。
【図面の簡単な説明】
第1図は本発明の一実施例の全体の構成図、第2図はマ
ージソート命令の命令フォーマットと概略動作を説明す
るための図、第3図はマージソート命令の動作を示すPA
D図、第4図は第1図の詳細図、第5図は第4図の動作
を示すタイムチャート、第6図は第1図のIDP7の内容構
成を示す図、第7図は第6図の動作を示すタイムチャー
トである。 1……バッファストレージ制御ユニット 2……アドレス制御ユニット 3……命令制御ユニット 4……汎用レジスタユニット 5……スカラ演算実行ユニット 7……ベクトル演算機構(IDP=Integrated Data base
Processor) 707,708……ベクトル・オペランド・バッファ 703,704,705……エレメントカウンタ 700,701,702……最大要素個数レジスタ 716,717,718……比較回路 712……比較器 713……判定回路 8……主記憶制御ユニット 9……主記憶装置 10……入出力制御ユニット 11……汎用スカラ演算装置

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】複数のベクトルオペランドの演算を実行す
    るベクトル処理装置であって、 各ベクトルオペランドに対応する複数の記憶手段と、 該複数の記憶手段内のベクトルエレメントのアドレスを
    それぞれ独立に更新制御するアドレス制御手段と、 該アドレス制御手段に応答して前記記憶手段から読みだ
    されたベクトルエレメントの演算を行う演算器とを有
    し、 前記アドレス制御手段は、前記演算器の演算結果に基づ
    き、前記ベクトルエレメントのアドレスを独立に更新す
    ることを特徴とするベクトル処理装置。
  2. 【請求項2】前記アドレス制御手段は、前記演算器の演
    算結果により前記ベクトルエレメントのアドレスの一つ
    の更新を抑止するための手段を有することを特徴とする
    特許請求の範囲第1項記載のベクトル処理装置。
JP59260708A 1984-12-12 1984-12-12 ベクトル処理装置 Expired - Lifetime JPH0731588B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP59260708A JPH0731588B2 (ja) 1984-12-12 1984-12-12 ベクトル処理装置
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
JP59260708A JPH0731588B2 (ja) 1984-12-12 1984-12-12 ベクトル処理装置

Publications (2)

Publication Number Publication Date
JPS61139881A JPS61139881A (ja) 1986-06-27
JPH0731588B2 true JPH0731588B2 (ja) 1995-04-10

Family

ID=17351661

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59260708A Expired - Lifetime JPH0731588B2 (ja) 1984-12-12 1984-12-12 ベクトル処理装置

Country Status (1)

Country Link
JP (1) JPH0731588B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9766888B2 (en) * 2014-03-28 2017-09-19 Intel Corporation Processor instruction to store indexes of source data elements in positions representing a sorted order of the source data elements
WO2019156060A1 (ja) * 2018-02-08 2019-08-15 日本電気株式会社 並列ユニオン制御装置、並列ユニオン制御方法、および記憶媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59163671A (ja) * 1983-03-09 1984-09-14 Nec Corp ベクトル処理装置

Also Published As

Publication number Publication date
JPS61139881A (ja) 1986-06-27

Similar Documents

Publication Publication Date Title
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
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
US4890220A (en) Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
EP1050803B1 (en) Guarded computer instruction execution
US5150470A (en) Data processing system with instruction queue having tags indicating outstanding data status
US5664215A (en) Data processor with an execution unit for performing load instructions and method of operation
JPH02227769A (ja) データ処理システム
JPH0371337A (ja) マイクロプロセツサ回路
JPH0517588B2 (ja)
JPH0242569A (ja) ベクター処理システムに用いる文脈スイッチング方法及び装置
JPH03653B2 (ja)
EP0772819B1 (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
US4954947A (en) Instruction processor for processing branch instruction at high speed
JPH03286332A (ja) デジタルデータ処理装置
JP3469469B2 (ja) 情報処理装置
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
JPH0731588B2 (ja) ベクトル処理装置
JPS62134763A (ja) 3アドレス・コ−ドの指標づけ装置
JPS626261B2 (ja)
JPH0285941A (ja) データ処理システム
JP3278441B2 (ja) ベクトル処理装置
JPS61100836A (ja) 移動命令論理比較命令処理方式
JPH10116191A (ja) 圧縮命令用バッファを備えたプロセッサ
JPH01187634A (ja) 情報処理装置
JPH0816392A (ja) コンピュータシステム、コンピュータシステム動作方法、及びコンピュータ命令シーケンス実行方法