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

ベクトル処理装置

Info

Publication number
JPS61139881A
JPS61139881A JP59260708A JP26070884A JPS61139881A JP S61139881 A JPS61139881 A JP S61139881A JP 59260708 A JP59260708 A JP 59260708A JP 26070884 A JP26070884 A JP 26070884A JP S61139881 A JPS61139881 A JP S61139881A
Authority
JP
Japan
Prior art keywords
vector
data
operand
address
control unit
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
JP59260708A
Other languages
English (en)
Other versions
JPH0731588B2 (ja
Inventor
Yaoko Yoshida
吉田 八穂子
Koichi Ishii
石井 幸一
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 DE8585115752T priority patent/DE3587167T2/de
Priority to EP85115752A priority patent/EP0184828B1/en
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)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、ベクトル処理装置に係り、特に新しい形式の
ベクトル演算に好適なベクトル処理装置に関する。
〔発明の背景〕
汎用スカラ演算を行なうデータ処理装置に、ベクトル計
算の進行を管理するエレメントカウンタと、ベクトルエ
レメント間の演算を行う演算器(これは上記データ処理
装置薯共有する場合もある)とを付加し、ベクトルオペ
ランドデータのメモリアクセスは上記データ処理装置の
記憶制御回路を用い、メモリ上のベクトル間の演算をパ
イプラインで実行することにより、少ないハードウェア
を追加することによって高速にベクトルデータを処理す
ることのできるベクトル処理装置は、既に知られている
。(特開昭53−87640号、同53−88545号
)このようなベクトル処理装置は、データの演算結果に
よらず、各ベクトルオペランドのインデクスが一様に増
加するタイプのベクトル計算を行うのを原則としていた
。従って、エレメントカウンタは1本あれば制御が可能
であり、ベクトルオペランドレジスタの更新もあらかじ
め予測可能であ、った。
ところが、各ベクトルオペランドのインデクスの増加が
、データの演算結果に依存する形式のベクトル計算を考
えると、このようなタイプのベクトル計算は、ベクトル
化して高速化することができなかった。不可能であう元
理由としては、1つはエレメントカウンタがオペランド
毎に独立にないこと、もう1つは、データの演算結果を
ベクトルオペランドアドレスレジスタに反映させること
ができないことがあげられる。
〔発明の目的) 本発明の目的は、汎用スカラ演算を行うデータ処理装置
に、このデータ処理装置の記憶制御回路を利用してベク
トル演算を行う機構を付加することにより、各ベクトル
オペランドのインデクスの増加が、データの演算結果に
依存する形式のベクトル計算を可能とするベクトル処理
装置を提供することにある。
〔発明の概要〕
本発明では、スカラ演算を行うデータ処理装置に、2各
ベクトルオペランド毎に要素番号を示すカウンタと、デ
ータの演算結果、を上記データ処理装置の記憶制御部に
反映する手段と、各人カベクトルオベランド毎にベクト
ルオペランドバッファとを設けることにより、上記の形
式のベクトル計算を可能とするものである。
〔発明の実施例〕
以下1本発明の一実施例を説明する。第1図は、本発明
の一実施例の全体の構成図である。
9は主記憶装置、8は主記憶制御ユニット。
10は入出力制御ユニット、11は汎用スカラ演算装置
、7はベクトル計算を専ら行う為のベクトル演算機構(
以下、IDP (Integ−rated  Data
base  Proce−s s o r)と略す)を
示している。
第1図におけるベクトル命令の実行の動作について説明
する前に、まず−例としてマージソート命令について述
べる。
マージソート命令の命令フォーマットと概略動作を、第
2図に示す、マージソート命令は4バイト(以下バイト
をBと略記する)長命令である。命令の第0〜15ビツ
トが、マージソート命令であることを示すオペコードで
ある。命令の第16〜23ビツトは意味をもたない、命
令の第24〜27ビツト(R1フィールド)で示される
番号から3本連続した番号の汎用レジスタに、各ベクト
ルオペランドの処理済要素個数が示されている。命令の
第28〜31ビツト(R2フィールド)で示される汎用
レジスタに、DT (Description  Ta
ble)の先頭アドレス(DescriptionTa
ble  Origin:以下DTOと略記する)が示
されている。汎用レジスタ゛は汎用レジスタユニット(
以下GPR)4に用意されている。主記憶装Wt9上に
あり、各ベクトルオペランドの先頭アドレスと最大要素
個数が記述されている。De’5cription  
Tab−1eによって間接的に指定されたベクトルオペ
ランドは、前半4Bがデータを識別する為の符合のない
整数部、後半4Bがソートする対象となる数値データ部
である。第2図では。
OP2最大個数=4 0P3最大m数=4 0P1最大個数=8 でマージソート命令を適用した時の様子を示している。
マージソート命令の動作を、第3図のPAD (Pro
、gram  AnalysisDiagram)図に
示す、第2図と第3図の対応を下記に示す。
OP2後半4B”A (i)、OP2処理済要素個数#
−10P3  〃 44B(j)、OF2   〃  
 −jOPI   tt  <(k)、OPI    
#    −kOF2最大要素個数4−himax、O
P3最大要素個数4−hj m a xマージソート命
令においては、OP2要素、とOP3要素を比較した結
果、小さい方(等しい時はOP2要素)を選択してスト
アする1例えば、第2図に示す例では、まずOF2の#
Dのデータ部とOF2の#Dのデータ部が比較され、O
F2側が選択されてストアされる1次の比較は、選択さ
れた側の次の要素と1選択されなかった側の前回の要素
の間でなされる。第2図に示す例では、OF2の#1と
OF2の#0が比較される。この動作をすべてのOF2
.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と略記する)51
0にセットする。EL510の内容をパス54Eを通し
てGPR4に与え、DTOをバス45を通して読み出し
、セレクタ506を介してワークレジスタB(以下WB
Rと略記する)501にセットする。
第4図は、第・・1図の、アドレス制御ユニット2゜バ
ッファストレージ制御ユニット1、スカラ演算実行ユニ
ット5の詳細な構成を示したものである。又、第5図は
、第4図の動作を示したタイムチャートである。以下、
第1図の動作をより詳細に説明するために第4図、第5
図を用いる。なお第5図で、 0P2A    はOP2の先頭アドレス。
0P3A    はOP3の先頭アドレス、0PIA 
   はOPIの先頭アドレス。
GR(R1)   はO,P2(i’)処理済要素個数
GR(R1+1)はOP 3(7)処理済要素個数。
GR(R1+2)はOPIの処理済要素個数、0P2A
’   はOP2の未処理要素先頭アドレス、0P3A
’   はOP3の未処理要素先頭アドレス。
0PIA″はOPIの未処理要素先頭アドレスをそれぞ
れ表わす。
パス45を通して送られたDTOは、セレクタ506を
介してWBR501にセットされる。
セットされたDTOはセレクタ504でセレクトされ、
パス52を通じてアドレス制御ユニット2内のフェッチ
専用アドレスレジスタB(以下SABと略記する)20
1にセレクタ207を介してセットされる。(第5図5
AB201)なお、アドレス制御ユニット2内には、も
う1本、フェッチ専用アドレスレジスタA(以下SAA
と略記する)200が設けられているが、これは、バッ
ファストレージ制御ユニット1内に、アドレス変換回路
及びバッファストレージが2面設けられていることに対
応してい・る、2つのアドレス変換回路及びバッファス
トレージは、機能的には同一であるが、後述する要素間
演算の処理を高速に行う為に、2重化して設けられてい
る。2重化して設けられている各々を。
以下0系、1系と呼ぶ、以下、DTOフェッチは1系を
利用するものとして説明する。5AB201の内容(D
TO)は、パX21bを通して、バッファストレージ制
御ユニット1に送られる。DTOは、アドレス変換回路
(以下ATと略記する)1・101により仮想アドレス
から実アドレスに変換さ九、求まった実アドレスがドツ
ファストレージアドレスレジスタ(以・下BSARと略
記する)1・103にセットされる。(第5図Tl)B
SARI・103の内容CDTO)をアドレスとして、
バッファストレージ(以下BSと略記する)1・105
がアクセスされ、読み出しデータが8B長の読み出しデ
ータレジスタ(以下DRと略記する)1・107にセッ
トされる。(第5図T2)この結果、DRI・107の
前半4Bには、OP2先頭アドレスが、後半4Bには、
OP2最大要素個数が入る。DRI・107からの読み
出しデ−タは、パス15bを通して、スカラ演算実行ユ
ニット5に送出される。
バッファストレージBS0・104、BSI。
・105は、各々主記憶の部分的な写しであり、アクセ
スしたいデータがバッファストレージ内にない時は、バ
ッファストレージ制御ユニット1の制御により、新たに
主起憶装!9からデータが転送される。
スカラ演算実行ユニット5は、パス15bからのデータ
をWBR501にセットする。(第5図73) スカラ演算実行ユニット5は、レジスタ508に保持さ
れていたR1フィールドを、セ″レクタ509でセレク
トし、EL510にセットする。 (第5図T3)EL
510をもとに。
R2フィールドで指定される汎用レジスタの内容(OP
2処理済要素個数)を、パス45を通して読み出し、セ
レクタ505を介してワークレジスタA(以下WARと
略記する)500にセットする。(第5図T3)1次に
演算器503を用いてWAR500の内容を要素長倍(
すなわち8倍)シ、セレクタ505を介してWAR50
0にセットする。、(第51!IT4)このWAR50
0と、WBR501の前半4B(OP2先頭アドレス)
とを、演算器503を用いて加算し、結果をセレクタ5
07を介して、ワークレジスタC(以下WCRと略記す
る)502にセットする。(第5図T5)WCR502
の内容は、セレクタ504でセレクトされ、パス52を
通して、アドレス制御ユニット2内の5AA200へ、
セレクタ206を介して転送される。(第5図T6)又
、WBR501の後半4B (OP2最大要素個数)は
、セレクタ504でセレクトされ、パス57を通じてI
DP7へ転送される。
次に、DescriptiOn  Tableの次の8
バイトを前述と同様に読み出すが、この読み出し動作は
、最初の8バイトの読み出しとオーバーラツプして行わ
れる。この様子を。
第5図に示す、DTOの+8、+16は、アドレス制御
ユニット2内の演算器204を用いて行う、第5図に示
すようにして、最初に処理を開始するベクトルオペラン
ドアドレスがアドレスレジスタ制御ユニット2内の5A
A200゜5AB201、ストア専用アドレスレジスタ
(以下DARと略記する)202にセットされる。
又、命令のR1フィールドによって示される番号から連
続した3本の汎用レジスタの内容は。
GPR4からパス45を通して、スカラ演算実行ユニッ
ト5に順番に読み出され、セレクタ504を通り、パス
57にて、IDP7に、送られる。R1フィールドの+
1、+2は、演算器512を用いて行う。
第6図に、IDP7の内部構成を示す。スカラ演算実行
ユニット5からパスS7にて送出された各オペランドの
最大要素個数は、最大要素個数レジスタ(以下MAXと
略記する)2.700.MAX3.701、MAXl。
702へ、各オペランドの処理済要素個数は、エレメン
ト・カウンタ(以下CNTと略記する)2.703、C
NT3.704、CNTl。
705へそれぞれセットされる。
以上で、ベクトル要素毎の演算を開妬する為の前処運が
終了したことになる。
次にマージソート命令のベクトル要素毎の処理の概要を
第4図を用いて説明する。
スカラ演算実行ユニット5の制御により、アドレス制御
ユニット2から、バッファストレージ制御ユニット1に
対し、5AA200、SAB 201をアドレスとする
フェッチリクエストが送出される。5AA200.5A
B201には、それぞれ、OPZ未処理要素先頭アドレ
ス、OPs未処理要素先頭アドレスがセットされている
バッファストレージ制御ユニット1は、パス21aにて
送られた5AA200の内容をアドレス変換回路AT0
・100により変換してBSARo・102にセッ゛ト
し、このアドレスをもとにBSo・104をアクセスし
、読み出しデータ・をDRo・106にセットする。又
、これと同時に、バス21bにて送られた5AB201
の内容をもとにBSl・105をアクセスし、読み出し
データをDRI・107にセットする。この結果、DR
o・106には。
OP2未処理先頭要素が、DRI・107にはOP3未
処理先頭要素が入る。
スカラ演算実行ユニット5は、DRo・106の内容を
バス15aを通して読み出し。
WAR500にセットする。又、これと同時に、DRI
・107の内容をバス15bを通して読み出し、WBR
501にセットする。
次に、スカラ演算実行ユニット5は、IDP7に対しバ
ス57a、57bのデータ取り込みを指示する。IDP
7は、バス57a、57bにて送られるベクトルオペラ
ンドデータを受は取ると、後半4Bの比較を開始し、デ
ータの小さい方(等しい時はOP2要素)をバス75に
て、スカラ演算実行ユニット5に送出する。
スカラ演算実行ユニット5は、IDP7にデータを送出
してから、固定サイクル後に、IDP7からのデータを
バス75を通して受は取り、WCR502にセットする
アドレス制御ユニット2は、スカラ演算実行ユニット5
の制御により、DAR202をアドレスとするストアリ
クエストを、バッファストレージ制御ユニット1に送出
する。この時、DAR202は、OP3未処理要素先頭
アドレスを指している。
一方、WCR502内のストアデータは、スカラ演算実
行ユニット5の指示により、バッファストレージ制御ユ
ニット1内の書き込みデータレジスタ(以下FRと略記
する)108にセットされる。バッファストレージ制御
ユニット1は、アドレス制御ユニット2より送出された
アドレスをアドレス変換し、変換したアドレスがBSo
・104、BSI・105内にあれば、FR108の内
容を書き込む、又、主記憶装置9に対して、ストアリク
エストを送出する。
以上述べた、ベクトルオペランドデータのデータ転送の
うち、IDP7以外のレジスタやバスは、通常のスカラ
命令を実行する際に使われるリソースを利用している。
又、データの転送は、スカラ演算実行ユニット5の制御
によっている。
マージソート命令においては、OP2要□素とOP3要
素を比較した結果、小さい方(等しい時はOP2要素)
を選択してストアする。例えば、第2図に示す例では、
まずOF2の#OとOF2の#0が比較され、OF2側
が選択されてストアされる0次の比較は1選択された側
の次の要素と、選択されなかった側の前回の要素の間で
なされる。第2図に示す例では、OF2の#1とOF2
の#Oが比較される。
この動作を実現する為には、IDP7で行なわれた比較
結果を、アドレス制御ユニット2内の5AA200又は
5AB201の更新に反映させなければならない。この
動作は、IDP7からアドレス制御ユニット2に対し、
IDP7での比較の結果、OF2、OF2のどちらが選
択されたかを示す制御線72a、72bを設け。
これにより、IDP7での比較結果をアドレス制御ユニ
ット2内のアドレスレジスタの更新に反映させることに
より、実現できる。
実現の方式として1例えば、第2図の例で、OF2の#
0とOF2の#0の比較の結果、OF2が選択され、制
御線72aにより。
0P27ドL/Xを保持す6SAA200を+8し、O
F2の#1のフェッチリクエストを送出するという方式
が考えられるが、この方法では。
パイプライン処理による高速化が期待できない。
そこで、ここでは、選択された側のオペランドアドレス
レジスタを更新するのではなく、選択されなかった側の
オペランドアドレスレジスタの更新を抑止し、フェッチ
リクエストは毎サイクル送出する方式を採用する。即ち
(1)IDP7は、比較の結果、OF2を選択する時は
制御線72bを、OF2を選択する時は制御線72aを
、1マシンサイクル間′1′とする。
(2)アドレス制御ユニット2は、O20のフェッチリ
クエストを出したサイクルに、制御線72aが10′な
らば加算器203を用いて5AA200を8加算し、制
御線72aが“I′ならば更新を抑止する。
(3)アドレス制御ユニット2は、OF2のフェッチリ
クエストを出したサイクルに、制御線72bが10′な
らば加算器204を用いて5AB201を8加算し、制
御線72bか′1′ならば更新を抑止する。
(4)一方、DAR202については、O20又はOF
2のいずれかを必ずストアするので、比較する度ごとに
加算器205を用いてDAR202を+8する。
この方式では、O20の#0とOF2の#Oの比較結果
が求まる迄、5AA200.5AB201ともに毎サイ
クル+8されてしまうので、IDP7には必要なデータ
を蓄えるバッファが必要となる。又、アドレスレジスタ
の更新を抑止してフェッチリクエストを毎サイクル出す
ということは、同じデータが何回も読み出されることに
なるが、これは、スカラ演算実行ユニット5からのデー
タ取り込み指示を、IDP7が無視することにより、無
駄なデータをオペランドバッファにとりこまないよう制
御できる。
以下、本方式を実現する為の、IDP7の構成と、動作
について説明する。
第6図は、IDP7の構成図である。707はOP2デ
ータを蓄えるオペランドバッファA(以下ROBAと略
記する)、706はROBA707のアウトポインタ(
以下ROPAと略記する)、708はOPIデータを蓄
えるオペランド・バッファB(以下ROBBと略記する
)、709はROBB708のアウトポインタ(以下R
OPBと略記する)、712はオペランドデータの後半
4B同士を比較する比較器、713はどちらのオペラン
ドを選択するかを判断する判定回路、715は選択され
たオペランドをセットしスカラ演算実行ユニットSに送
出する為のレジスタを示している。
ROBA707.ROBB708のデータ入出力は10
次のようにして制御される。
719は、4からOにラップアラウンドする3ビツトの
カウンタ構造を成しているROBA707へのインポイ
ンタである。オペランドデータが、バス57aにてRO
BA707に送られてくると、インポインタ719の示
す番号のデータ位置にデータがとりこまれる。データが
とりこまれると、インポインタ719は+1される。一
方、706は、4からOにラップアラウンドする3ビツ
トのカウンタ構造を成しているROBA7<)7のアウ
トポインタである。
ROBA707のデータを読み出す時は、アウトポイン
タ706の値により、ROBA707内のデータ位11
80〜4のいずれかをセレクタ710によりセレクトす
る6720はROBB708へのインポインタ、709
はROBB708のアウトポインタであり、機能はそれ
ぞれROBA70フィンポインタ719.アウトポイン
タ706と全く同じである。
以上、説明したことかられかるように。
ROBA707と’ROBB708は、FIFO(Fi
rst  In  First  0ut)形式である
第6図に構成を示したIDP7の動作を、第7図を用い
て説明する。第7図のタイムチャートは、O20、OF
2が、第7図右に示す場合で、O20,0P3の未処理
先頭要素番号はそれぞれ0の場合を想定してい名。
第4サイクルで、アドレス制御ユニット2から先頭要素
のフェッチリクエストが出され乞と、そのデータがID
P7に到着するのは、第4サイクルである。O20とO
F2を比較器7.12で比較した結果、O20側が選択
されると、判定回路713は、下に示す動作をする。
出カフ22により、ROPA706’&+LL、加算器
719で+1された値をセレクタ716を介してCNT
2・703にセット。
出カフ25により、セレクタ714でOP2データを選
択。
出カフ24により、加算器720で+1された値をセレ
クタ717を介してCNT3・704にセット。
出カフ2bにより1次サイクルの5AB201更新を抑
止。
出カフ2bがアドレスレジスタの更新に反映される迄、
既にOF2の#1〜#4のフェッチリクエストは送出さ
れているが、このリクエストによって読み出されたオペ
ランドデータを順にROB 8708 ニ蓄える。更に
、0P3(7)R5のフェッチリクエストも送出され、
このリクエストによって読み出されたオペランドデータ
もスカラ演算実行ユニット5のWBR501にセットさ
れるが、ROB8708にはセットされないにれは、I
DP7が判定回路713の出力を記憶していて、ROB
8708へのセットを抑止するからである6従って、R
OB8708に必要な容量は、(オーバーランするフェ
ッチリクエスト−1)×8バイト、すなわち40Bあれ
ば充分である。
以上説明したことがらねかるように、入力オペランド毎
に充分な量のオペランドバッファを設け、オペランドの
比較及び比較結果のオペランドバッファアウトポインタ
及びエレメントカウンタへの反映を1マシンサイクルピ
ツチで行えば、マージソート命令の1マシンサイクルピ
ツチの処理が可能である。
最後に、マージソート命令のエレメント毎の比較動作が
終了した後の処理について、第6図次いで第4図を用い
て説明する。
まず、第6図を用いて演算の終了検出について説明する
。IDPT内のエレメントカウンタCNT2・703、
CNT3・704.CNT1・705をカウントアツプ
してゆき、0P2(7)CNT2−703がOF2(7
)MAX2−700と比較器716で比較した結果等し
くなり、かつ、OF3のCNT3・704がOP3MA
X3・701と比較器717で比較した結果等しいとい
うことがわかると、IDP7よりスカラ演算実行ユニッ
ト5に、最終要素のwcR502からのストアリクエス
ト送出にあわせて有効な要素がなくなったことが知らさ
れる。
これにより、スカラ演算実行ユニット5は、WCR50
2のストアデータの送出を止め、終処理に入る0次に第
4図を用いて終処理について述べる。終処理では、スカ
ラ演算実行ユニット5の制御により、IDPT内のオペ
ランド毎のカウンタ値、すなわち、第6図中のCNT2
・703、CNT3・704.C:NT1・705の内
容が順に読み出され、バス75を通してWCR502に
セットされ、さらにバス54を通して、GPR4に送ら
れ、命令のR1フィールドで指定された番号から3本連
続した汎用レジスタに書き込まれる。3本のカウンタ値
がすべて汎用レジスタに書き込まれると、スカラ演算実
行ユニット5は、マージソート命令が終了したことを、
命令制御ユニット3に知らせる。
〔発明の効果〕
本発明によれば、各ベクトルオペランドのインデクスの
増加が、データの演算結果に依存する形式のベクトル計
算を、高速に処理することが可能となる。
高速化の一例として、実施例で用いたマージソート命令
では、従来、−要素処理するのに。
1、データの比較 2、ムーブ 3、インデクスの更新 4、終了条件判定 と少なくとも4マシンサイクル要していたものが、ベク
トル処理化することにより1要素例えば1マシンサイク
ルで可能となり、約4倍の高速化が可能となっている。
【図面の簡単な説明】
第1図は本発明の一実施例の全体の構成図、第2図はマ
ージソート命令の命令フォーマットと概略動作を説明す
るための図、第3図はマージソート命令の動作を示すP
AD図、第4図は第1図の詳細図、第5図は第4図の動
作を示すタイムチャート、第6図は第1図のIDP7の
内部構成を示す図、第7図は第6図の動作を示すタイム
チャートでする。 1・・・バッファストレージ制御ユニット2・・・アド
レス制御ユニット 3・・・命令制御ユニット 4・・・汎用レジスタユニット 5・・・スカラ演算実行ユニット 7・・・ベクトノ凶寅′!JJail(IDP−=In
tegrated Data base Proces
sor)707.708・・・ペクト・ル・オペランド
・バッファ703.704,705・・−エレメントカ
ウンタ700.701,702・・・最大要素個数レジ
スタ716.717,718・・比較回路 712・・・比較器 713・・・判定回路 8・・・主記憶制御ユニット 9・・・主記憶装置 10・・・入出力制御ユニット 11・・・汎用スカラ演算装置 其 1 口 薯Z図

Claims (1)

    【特許請求の範囲】
  1. (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
DE8585115752T DE3587167T2 (de) 1984-12-12 1985-12-11 Geraet zur vektorverarbeitung.
EP85115752A EP0184828B1 (en) 1984-12-12 1985-12-11 Vector processing apparatus

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 true JPS61139881A (ja) 1986-06-27
JPH0731588B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015191659A (ja) * 2014-03-28 2015-11-02 インテル・コーポレーション ソート加速プロセッサ、方法、システムおよび命令
WO2019156060A1 (ja) * 2018-02-08 2019-08-15 日本電気株式会社 並列ユニオン制御装置、並列ユニオン制御方法、および記憶媒体

Citations (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 ベクトル処理装置

Patent Citations (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 ベクトル処理装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015191659A (ja) * 2014-03-28 2015-11-02 インテル・コーポレーション ソート加速プロセッサ、方法、システムおよび命令
JP2017157244A (ja) * 2014-03-28 2017-09-07 インテル・コーポレーション ソート加速プロセッサ、方法、システムおよび命令
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 日本電気株式会社 並列ユニオン制御装置、並列ユニオン制御方法、および記憶媒体
US11200056B2 (en) 2018-02-08 2021-12-14 Nec Corporation Parallel union control device, parallel union control method, and storage medium

Also Published As

Publication number Publication date
JPH0731588B2 (ja) 1995-04-10

Similar Documents

Publication Publication Date Title
US3840861A (en) Data processing system having an instruction pipeline for concurrently processing a plurality of instructions
EP0239081B1 (en) Pipelined data processor capable of decoding and executing plural instructions in parallel
US4574349A (en) Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
US4449184A (en) Extended address, single and multiple bit microprocessor
US5664215A (en) Data processor with an execution unit for performing load instructions and method of operation
US5390307A (en) Apparatus for a multi-data store or load instruction for transferring multiple contiguous storage locations in one transfer operation
US4890220A (en) Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
US5155817A (en) Microprocessor
GB2077965A (en) Data processing unit with pipelined operands
JPS61290570A (ja) ベクトル処理方法
JPS589455B2 (ja) 多重長アドレス構成を有するマイクロプログラム化デ−タ処理システム
JPS59117666A (ja) ベクトル処理装置
US3675214A (en) Processor servicing external devices, real and simulated
JPH063584B2 (ja) 情報処理装置
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
US4954947A (en) Instruction processor for processing branch instruction at high speed
JPH04343134A (ja) プログラムカウンタ装置
US4691282A (en) 16-bit microprocessor system
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
JPS61139881A (ja) ベクトル処理装置
JPS62134763A (ja) 3アドレス・コ−ドの指標づけ装置
JPH0363092B2 (ja)
US3735364A (en) Data handling system for handling data in compliance with normal and special descriptors
JP2504312B2 (ja) プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置
US4737908A (en) Buffer memory control system