JPH077385B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH077385B2
JPH077385B2 JP58242007A JP24200783A JPH077385B2 JP H077385 B2 JPH077385 B2 JP H077385B2 JP 58242007 A JP58242007 A JP 58242007A JP 24200783 A JP24200783 A JP 24200783A JP H077385 B2 JPH077385 B2 JP H077385B2
Authority
JP
Japan
Prior art keywords
vector
instruction
elements
scalar
main memory
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
JP58242007A
Other languages
English (en)
Other versions
JPS60134973A (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 JP58242007A priority Critical patent/JPH077385B2/ja
Priority to DE8484116094T priority patent/DE3484109D1/de
Priority to US06/685,116 priority patent/US4779192A/en
Priority to EP84116094A priority patent/EP0149213B1/en
Publication of JPS60134973A publication Critical patent/JPS60134973A/ja
Publication of JPH077385B2 publication Critical patent/JPH077385B2/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/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • 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/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations

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)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はベクトル計算機に係り、新しい型式の拡張ベク
トル演算に好適なベクトル計算機に関する。
〔発明の背景〕
従来のベクトル処理は、各エレメント毎の演算を同一ベ
クトル要素番号間で実行し、同じ要素番号のベクトル要
素に結果を格納する事を原則としている。オペランドベ
クトルのうちいくつかがスカラである場合だけが例外と
して認められていた。
第1図にPAD図(Program Analysis Diagram)で示した
演算は、ベクトルA(i)とベクトルB(j)を順次読
出し要素同士を演算し結果をベクトルC(k)に格納す
る演算であるが、各ベクトルの要素番号を示すインデツ
クス(i,j,k)が一様には増加していない。つまり、A
のベクトル要素A(l)は、ベクトル要素B(l)と演
算されるとは限定されないし、ベクトル要素C(l)へ
の格納結果にA(l)の内容が関与するとは限らない。
この様な拡張ベクトル演算は、従来のベクトル計算機で
はベクトル化による高速化が困難であつた。
〔発明の目的〕
本発明の目的は、上記の様なベクトルの各インデツクス
の増加と結果の格納の有/無が各演算結果に依存する拡
張ベクトル演算の実行を可能とする拡張ベクトル計算機
を提供することにある。
〔発明の概要〕
各オペランド毎にオペランドのアドレス回路と実行され
た要素個数をカウントする回路を有し、演算結果により
各アドレス回路とカウント回路をオペランド毎に独立に
制御する回路を付加することにより、従来のベクトル演
算機と同様な高速化が可能となる。
〔発明の実施例〕
以下、本発明の一実施例と効果を関係ベータベースのテ
ーブル結合(JOIN)処理を基に説明する。
関係データベースにおいて、データはすべて表の形式で
表現される。第2図の左上半分に示した部品テーブル1
は、部品名と部品番号をカラムとするテーブルである。
第2図の右上半分に示した作成者テーブル2は、作成者
名と部品番号をカラムとするテーブルである。この2つ
のテーブルを、部品番号のカラムを結合カラムとして結
合すると、第2図の下方に示した部品名、部品番号、作
成者名をカラムとする新しいテーブル3が得られる。こ
のテーブルでは上記2テーブルを個々に検索しても得ら
れなかつた、部品名と作業者名の関係を示すことができ
る。一般に関係データベースでは、複数のテーブルを結
合する処理は出現頻度が高くかつ処理時間が大きくな
り、関係データベースの応答時間が悪い原因となつてい
る。
第2図の表の外に示す項番はそれぞれのテーブルでのレ
コード番号を示している。
第2図に示した結合処理の一実現方式として以下に示す
マージ法が知られている。
(1)部品テーブルを部品番号順にソートする。
(2)作成者テーブルを部品番号順にソートする。
(3)両テーブルを突き合せ結合(マージジヨイン)す
る。
以下具体的な処理方法の一例を第3図と第4図を用いて
説明する。
第3図は(1)のソートの手順を示したもので、マージ
ソート法を改良したものである。マージソート法におい
て、第1段階では2個づつがソートされた部分ソート列
(ストリングと以下呼ぶ)を作成し、第二段階では4個
づつがソートされたストリングを作成していき、第L段
階では2L個のソート済のストリングを作成する。マージ
ソート法における問題点は、第一段階および若い段階に
おいてストリング数が多くストリング切換の処理が多い
点にある。すなわち2L個の要素のソートを実行する場
合、第1段階においては長さ1個のストリングを入力と
するマージソートを2L-1回実行する必要があり、各スト
リング処理開始毎にストリングアドレスの設定等の前後
処理があると著しく全体性能を低下させることになる。
第3図では、部品テーブルにおける7個の要素のソート
を3回のマージソート命令の起動により実行している。
すなわち第L段階の実行では、N個の要素のソートを、 個と 個のベクトルを入力とする1回のマージソート命令で実
行している。これで記号は小数点以下切捨てによる整数
化関数を示す。
まず最初に第2図の部品テーブルよりテーブル内のレコ
ード番号と部品番号からなるベクトル要素を持つベクト
ルV1を作成する。このベクトルV1の第1要素から第4要
素までの4個を第2オペランドのベクトルとし、第5要
素から第7要素までを第3オペランドのベクトルとして
第1段階のマージソート演算4を実行すると、部品番号
の部分に関して2要素毎にソートされた第1オペランド
のベクトルV2が作成される。第3図および後で説明する
第4図において各ベクトルは最下段が第1要素を示し、
最上段が第7要素を示している。第3図において、△印
はソート順が保証されていないストリングの切目を示し
ている。以下ベクトルV2に対する第2段階のマージソー
ト4によりベクトルV3が生成され、ベクトルV3に対する
第3段階のマージソートも命令を引続き実行することに
より、7個すべてが完全にソートされたベクトルV4を得
ることができる。各ベクトルV1〜V4の要素は、レコード
番号を示す4バイトと部品番号を示す4バイトの合計8
バイトで構成されている。前半の4バイトは、後半の4
バイトで示される部品番号を持つレコードの所在を示す
識別情報として保持されており、マージソート時にはそ
の内容は無視される。
第2図の作業者テーブルについても同様なソートが実行
されるがレコードの個数が4個であるため、2回のマー
ジソート命令の実行で完全にソートされたベクトルV5
(第4図)を得ることができる。
第4図は、マージジヨイン命令の動作を示したものであ
る。第2オペランドとしては部品テーブルから作成した
ソート済のベクトルV4を入力し、第3オペランドとして
は作成者テーブルから作成したソート済ベクトルV4を入
力して、各ベクトル要素の後半4Bを順次突き合せ、一致
したベクトル要素の前半部の各4バイトを合わせた8バ
イトを第1オペランドのベクトルV5の要素として格納す
る。
上記のようにして得られたテーブル1,2のレコード番号
のペアを要素とするベクトルV5を用いて、各レコード番
号をアドレスとして従来のベクトル演算(C1i)=A
(B(i))i=1〜N)により第2図の下方に示した
テーブル3が作成できる。
以上にのべた、マージソート命令とマージジヨイン命令
はいずれも第1図に示した拡張ベクトル演算の一種と考
えることができる。マージソート命令において、以下の
対応付けが可能である。
(イ)演算はx:=Min(A(i),B(j))である。
(ロ)A(i)の更新は、A(i)≦B(j)の時必要
である。
(ハ)A(j)の更新は、A(i)≦B(j)の時必要
である。
(ニ)C(k)の格納は、A(i)とB(j)に有効な
要素が存在するかぎり必要である。
(ホ)A(i)とB(j)にともに有効な要素が残つて
いない時、停止指示(Stop:=true)を行なう。
また、マージジヨイン命令においては以下の対応付けが
可能である。
(a)演算はx:=(A(i)の前半,B(j)の前半) (b)A(i)の更新は、A(i)≦B(j)の時必要
である。但し比較は各要素の後半4Bで行う。(c),
(d)も同じ比較である。
(c)B(j)の更新は、A(i)≧B(j)の時必要
である。
(d)C(k)への格納は、A(i)=B(j)の時必
要である。
(e)A(i)又はB(j)のいずれかに有効な要素が
無くなつた時、停止の指示(Stop:=true)を行う。
以下、第5図以降を用いて上記2命令の詳細な仕様と実
現方法の実施例を示す。
第5図は、拡張ベクトル演算命令の命令形式を示したも
のである。4バイト命令の前半16ビツト(OPコード部)
によりマージソート命令とマージジヨイン命令を指定す
る。最後の4ビツト(R部)により、16個の汎用レジス
タ群GPR中の使用レジスタ番号の先頭番号を指定する。
汎用レジスタR〜R+2には第2,第3,第1オペランド
(OP2,OP3,OP1)の未処理先頭要素アドレスを記憶し、
汎用レジスタR+3〜R+5番にはこれらのオペランド
の最大要素個数をセツトし、汎用レジスタR+6〜R+
8番にはこれらのオペランドの処理済要素個数をセツト
する。これらのセツトは命令の開始時にセツトする。汎
用レジスタR+9番にはマージソート命令でのみ使用さ
れ、入力ベクトル中のソート済ストリング長(要素個
数)がセツトされる。第1図における3本のベクトルA
(i),B(j),C(j)はそれぞれOP2,OP3,OP1と対応
づけられる。
本命令は命令の実行中にも割込み可能な形式であり、命
令の実行が中断された時には各オペランドの未処理先頭
アドレスと処理済要素個数の更新値が汎用レジスタに格
納される。
第2,第3オペランドOP2,OP3およびマージソート命令に
おける第1オペランドOP1は、第3図に示した要素当り
8バイトのベクトルV1〜V4のようであり、各要素の前半
4バイトはレコード番号、後半4バイトはソート又はジ
ヨインで参照されるデータ値を格納している。マージジ
ヨイン命令における第1オペランドOP1は、第4図に示
した要素当り8バイトのベクトルV5のように、各要素の
前半4バイトは第2オペランドOP2から入力されたレコ
ード番号、後半4バイトはOP3から入力されたレコード
番号を格納している。
第6図は、拡張ベクトル演算命令を実行する拡張ベクト
ル演算装置の一実施例を示したものである。主記憶ユニ
ツト90よりデータ線92を経由して命令語レジスタ10に命
令語が格納される。命令解読回路11は命令語レジスタ11
の上位16ビツトを入力して命令の種類を識別する。スカ
ラ命令の時には制御線96を経由してスカラ演算ユニツト
93が起動される。ベクトル命令の時には制御線97を経由
してベクトル演算ユニツト94が起動される。
拡張ベクトル命令の時、制御線98を経由して順序制御回
路12が起動される。同時に、命令語レジスタ10の下位4
ビツトで指定される汎用レジスタ群13中の10個のレジス
タの内容がデータ線15を経由して拡張ベクトル演算ユニ
ツト100に転送される。順序制御回路12は、制御線16を
経由して1サイクルのSTART信号を拡張ベクトルユニツ
ト100に転送する。次のサイクルには、制御線17を経由
してマージソート命令命令有効」又は「マージジヨイン
命令有効」信号を送出し、制御線18を経由して演算完了
を示すEND信号が到着するか、制御線88を経由して割込
検出回路89より中断信号が到着するまで、上記有効信号
を順序制御回路12は送出を続ける。
拡張ベクトル演算が完了又は中断すると、データ線14を
経由して、命令語レジスタ10の下位4ビツトが指定する
レジスタ(6個)に、各オペランドの未処理先頭要素ア
ドレス(3組)と処理済要素個数(3組)の内容が書戻
される。
第12図は、第6図の順序制御回路12の詳細な実施例を示
したものである。DタイプのFlip Flop123,126,127はク
ロツクCLKに同期して入力信号の内容を1サイクルの間
保持する。S/RタイプのFlip Flop125はクロツクに同期
してSピンからの入力を、Rピンからリセツト信号が入
力されるまで保持する。
信号線98から1サイクルのマージソート又はマージジヨ
イン起動信号が入力されると、信号線121を経由して、
上記汎用レジスタ13の読出しと拡張ベクトル演算ユニツ
ト100内の各レジスタ(後述)の初期設定を指定する。
次のサイクルでは、FF123が“1"となり、信号線16を経
由して1サイクルパルスのSTART信号が拡張ベクトル演
算ユニツト100に転送される。次のサイクルでは、FF125
がセツトされ、マージソート命令有効信号又はマージジ
ヨイン命令有効信号が信号線17を経由して拡張ベクトル
演算ユニツト100に転送される。以上が命令の実行開始
時の動作である。
信号線18により1サイクルパルスの命令完了信号(END
信号)が転送されるが、信号線88により1サイクルパル
スの割込み要求信号が転送されると、ORゲート124を介
してFF125がリセツトされ、マージソート命令有効信号
又はマージジヨイン有効命令がリセツトされる。FF126
と127により次々サイクルでは、信号線122を経由して前
記の汎用レジスタ13への各オペランドの未処理先頭要素
アドレスと処理済要素個数の書き戻し要求信号が指示さ
れる。
第7図は、拡張ベクトル演算ユニツト100の詳細な実施
例であり、OP2記憶制御回路20a、OP3記憶制御回路20bお
よびOP1記憶制御回路20Cは同じ回路構成であり、具体的
回路を第8図に示す。OP2カウント回路50a、OP3カウン
ト回路50bおよびOP1カウント回路50Cは、同じ回路構成
であり、具体的回路を第9図に示す。
第7図の拡張ベクトル演算ユニツトは3サイクルの長さ
を持つた、1サイクルをピツチとしたパイプラインを構
成している。
(1)第2・第3オペランドOP2,OP3の読出し。
(2)オペランド間の比較、カウンタ間の比較および選
択結果の格納レジスタ(SDR)111への格納。
(3)第1オペランドOP1の書込み。
汎用レジスタ13からデータ線15を経由して読出された各
オペランド(OP2,OP3,OP1)の未処理先頭要素アドレス
はそれぞれ、各オペランド記憶制御回路20a〜20cのアド
レスレジスタ(AR)21a,21b,21c(第8図)に初期設定
される。
汎用レジスタから同じくデータ線15を経由して読出され
た各オペランド(OP2,OP3,OP1)の最大要素個数値はそ
れぞれ、各オペランドカウント回路50の最大個数レジス
タ(MAX)52a,52b,52c(第9図)に格納される。
汎用レジスタ13から同じくデータ線15を経由して読出さ
れた各オペランド(OP2,OP3,OP1)の処理済要素個数値
はそれぞれ、各オペランドカウント回路50のカウンタ
(CNT)51a,51b,51cに初期設定される。
汎用レジスタ13から同じくデータ線15を経由して読出さ
れた各オペランド(OP2,OP3,OP1)の処理済要素個数値
はそれぞれ、各オペランドカウント回路50のカウンタ
(CNT)51a,51b,51cに初期設定される。
汎用レジスタ13から同じくデータ線15を経由して読出さ
れたソート済要素列長(ストリング長)は、ストリング
長レジスタ(STRNG)105(第7図)に格納される。
以上の格納は、START信号に先立つて第12図の信号線122
の指示(第8図,第9図には明記していない)により実
行される。
第8図のオペランド記憶制御回路20は、図では明記され
ていないが、読出し又は書込みのいずれかのモードの動
作を外部より指示できる。
OP2又はOP3記憶制御回路20a,20bとして使用される時に
は、読出しモードに固定され、OP1記憶制御回路20cとし
て使用される時には書込みモードに固定されている。
最初に読出しモードでの動作について説明する。読出し
モードでは、要求信号線25が“1"のサイクルでは、アド
レスレジスタ21の出力をアドレスとしてバツフア記憶22
より読出し、結果を次のサイクルの開始時にデータレジ
スタ(DR)24に格納する。次のサイクルの開始時には同
時に、アドレスレジスタ21の出力をアドレスレジタデイ
レイ(ARD)30に格納し、アドレスレジスタ21の出力を
(+8)加算器23により(+8)した値をアドレスレジ
スタ21に格納する。読出しモードでは、選択回路29はア
ドレスレジスタデイスク30の内容をデータ線14に常時送
出する。要求信号が“0"のサイクルではバツフアの読出
しもレジスタの更新も実行されない。読出しモードでは
データ線27は使用されない。なお、第7図において記号
&は使用されないデータ線を示す。バツフアの内容は必
要に応じてデータ線91を経由して第6図の主記憶ユニツ
ト90から読出される。
次に書込みモードでの動作について説明する。要求信号
線25が“1"のサイクルでは、アドレスレジスタ21の内容
をアドレスとし、データ線27の内容を書込みデータとし
てバツフア記憶22に書込まれる。次のサイクルの開始時
には、アドレスレジスタ21の出力を加算器23により+8
加算した値にアドレスレジスタ21を更新する。選択回路
29は書込みモードでは、アドレスレジスタ21の出力を常
時データ線14に出力する。書込みモードでは、アドレス
レジスタデイレイ30,データレジスタ24は使用されな
い。
第9図のオペランドカウント回路50は、要求信号線55が
“1"の時次のサイクルの開始時に、+1加算器54を用い
てカウンタ(CNT)51の内容が+1だけ更新される。カ
ウンタ51の内容はデータ線14と57を経由して外部に転送
される。比較回路53は、カウンタ51と最大個数レジスタ
52の内容の大小比較を実行し結果を制御線56に出力す
る。
以下第7図の残りの構成要素を簡単に説明する。103と1
04は2入力ORゲートである。比較回路106は、データ線2
6aと26bの後半4Bの大小比較を行い結果を制御線110に出
力する。選択演算回路101は、制御線17を経由してマー
ジソート命令が指定されている場合には制御線55aおよ
び55bを経由した第2オペランド選択信号OP2SELおよび
第3オペランド選択信号OP3SELに応じて、データ線26a
又は26bの8バイトの内容を出力する。マージジヨイン
命令が指定されている場合には、データ線26aおよび26b
の前半4バイトづつを統合した8バイト(前半は26aよ
り後半は26bより統合)を出力する。格納レジスタ(SD
R)111は8バイトのレジスタで各サイクルの開始時に選
択回路101の出力を格納する。110は1ビツトのレジスタ
であり、OP1格納信号OP1OUTを各サイクルの開始時に格
納する。110の出力はOP1OUTの1サイクル遅延させた信
号になつている。比較回路108は、OP2のCNT51aの内容と
OP3のCNT51bの内容をSTRNG105の内でそれぞれ除算(小
数点以下切捨て)した商同志の大小比較を行う結果は、
制御線109に出力される。この比較は、OP2とOP3がそれ
ぞれ対応するストリング中に存在しているか、一方が次
のストリングにまで進んでいるかを判定している。STRN
Gの内容はかならず2L(Lはリートの段階番号)である
ので、除算は(L−1)ビツトの右シフトで代用するこ
とも可能である。また、除算でなく下位(L−1)ビツ
トをクリアした値同志の大小比較では同一比較結果が得
られる。
次に、第10図のタイムチヤートを用いて第7図の動作を
説明する。本実施例は1サイクルピツチのクロツク信号
に同期して動作している。
第6図の命令語レジスタ10のMerge Sort命令が格納され
ると、前述のごとく第7図以降の各レジスタ(OP2AR・2
1a,OP3AR・21b,OP1AR・21c,OP2MAX・52a,OP3MAX・52b,O
P1MAX・52c,OP2CNT・51a,OP3CNT・51b,OP1CNT・51c,及
びSTRNG・105)に汎用レジスタの内容が最初に初期設定
される。
本タイムチヤートでは、第3図における2回目のMerge
Sort命令の実行過程を示している。入力ベクトルは100
16番地より始まり、出力ベクトルは20016番地より始ま
ると仮定する。各要素の長さは8バイトである。本命令
は実行の途中で割込み要因が発生した時、中断と再開が
可能な命令(Interuptible命令と呼ばれる)であるが、
本タイムチヤートではこの様な中断も再開も無い場合を
示している。
以上の仮定から各レジスタは以下の値に初期設定されね
ばならない。
OP2AR・21a=10016 OP3AR・21b=12016 OP1AR・21c=20016 OP2MAX・52a=4 OP3MAX・52b=3 OP1MAX・52c=7 OP2CNT・51a=0 OP3CNT・51b=0 OP1CNT・51c=0 STRG・105=2 各レジスタの初期値設定に引続いて第6図の順序制御回
路12は、信号線16を経由して1サイクルのパルスのSTAR
T信号を第7図の拡張ベクトルユニツト100に送出する。
説明の都合上START信号が発行されたサイクルから順に
第1サイクル、第2サイクルと名付ける。
OR回路103と104の働きにより、信号線25aおよび25bが
“1"となり、第2サイクルの開始時には、100番地およ
び120番地の内容がバツフア読出レジスタ(DR)24aおよ
び24bに格納され、アドレスレジスタ(AR)21aおよび21
b、アドレスレジスタデイレイ(ARD)30aおよび30bが更
新される。
第2サイクルからは、第6図の順序制御回路12は信号線
17上にソート命令有効信号を送出する。比較回路106
は、読出しレジスタ24aの後半4バイトの出力値(第3
図からその値は“0"である)と、読出しレジスタ24bの
後半4バイトの出力値(第3図からその値は“5"であ
る)を比較し結果(OP2<OP3)を判定制御回路107に送
出する。
判定制御回路107は、第11図に示す真理値表に従う組合
せ回路である。Xは、don′t case条件を示す。ここで
第2サイクルにおける入力条件を考えてみると、信号線
17からはSort命令有効が入力され、信号線110からは(O
P2<OP3)が入力され、信号線56aからは(OP2CNT<OP2M
AX)が入力され、信号線56bからは(OP3CNT<OP3MAX)
が入力され、信号線56cからは(OP1CNT<OP1MAX)が入
力され、信号線109からは が入力されているので第11図における項番1の入力条件
が成立している。
第11図の項番1では出力として、信号線55aのOP2SEL信
号と信号線55cのOP1OUT信号を“1"とすることを指示し
ている。選択演算回路101は、ソート命令でOP2SEL信号
が入力されるとデータ線26aの内容8バイトを格納レジ
スタ(SDR)111へ送出する。
第3サイクルの開始時には、OP2SEL信号が“1"であるの
でOP2記憶制御回路20aの各レジスタ21a,30a,24a及びOP2
カウント回路50aのOP2CNT51aが更新され、OP1OUT信号が
“1"であるのでOP1カウント回路50cとのOP1CNT51cの内
容が更新される。遅延用FF110の働きにより、OP1のバツ
フア書込み(「#5,0」の書込み)は第3サイクルで実
行され、OP1記憶制御回路20cのOP1AR21cの更新は第4サ
イクルの開始時に実行される。
以下、第3サイクルでは“7"と“5"の比較から第11図の
項番2の入力条件が成立し、第4サイクルでは“7"と
“6"の比較から第11図の項番2の入力条件が成立する。
第5サイクルでは、 条件が成立し第11図の項番3の入力条件が成立し、信号
線110の内容は無視される。第11図の入力条件において
Xはdon′t care条件を示す。以下、第6サイクルでは
第11図の項番1、第7サイクルでは項番2、第8サイク
ルでは項番6が成立する。
第9サイクルでは、項番5および項番8が成立し、信号
線18上の命令完了信号(END信号)が“1"となる。第6
図の順序制御回路12はEND信号が“1"となると、第10サ
イクルからはSort命令有効信号を無効とする。次に、第
11サイクルでは第12図の信号線122の指示に従つて30a、
第2オペランドアドレスレジスタデイレイ、(OP2ARD)
30a、第3オペランドアドレスレジスタデイレイ(OP3AR
D)30b、第1オペランドアドレスレジスタ(OP1AR)21
c、第2オペランドカウンタ(OP2CNT)51a、第3オペラ
ンドカウンタ(OP3CNT)51b、第1オペアンドカウンタ
(OP1CNT)51cの内容がそれぞれデータ線14を経由して
汎用レジスタ群13に書戻される。この時、各レジスタの
内容はそれぞれ、12816,14016,23816,4,3,7になつてい
る。
以上の説明は、実行の途中に割込が発生しなかつた場合
を示した。次に割込検出回路89が割込み要求を信号線88
を経由して報告した場合を説明する。第4サイクルに報
告された場合を仮定すると、第5サイクルから順序制御
回路12はソート命令有効信号を無効とする。第10図では
破線でしめした。この場合、第5サイクル以降では第11
図の項番9の入力条件が成立し、第10図のOP2SEL,OP3SE
LおよびOP1SELが“0"となる。遅延用FF110の出力も、第
6サイクル以降は“0"となる。割込による中断時にも命
令完了時と同様に、OP2ARD・30a以下の6レジスタが汎
用レジスタ13に第6サイクルで書込まれる。この時の各
レジスタの内容はそれぞれ、10816,13016,21816,1,2,3
になつている。従つてこの内容を再びSort命令の入力と
して指定すればソート命令の実行が正しく再開できる。
以上の説明はマージソート命令について行つたが、マー
ジジヨイン命令も同様に実行され第11図の真理値表では
項番7以降が使用される。また、選択演算回路101はデ
ータ線26a,26bのそれぞれ上位4バイト合計8バイトを
出力する点がソート命令の場合異なる。また、ストリン
グ長レジスタ(STRNG)105と比較回路108の出力も判定
制御回路107では無視される。
本実施例ではOP1ベクトルの最大要素数を命令で指定す
る形式を示しているが、本指定の目的はOP1ベクトルが
予定される個数以上に出力されることを防止するためで
あり、本発明の本質では無い。マージジヨイン命令では
ストリング長指定は無視されるので指定しない命令形式
も考えられる。本実施例では、10本のレジスタを連続番
号のレジスタに割当てているが、それぞれ個別にまたは
複数のグループに分けて指定する命令形式も可能であ
る。
各オペランドのベクトルの未処理要素先頭アドレス、最
大要素個数、処理済要素個数はレジスタでなく主記憶上
の内容で指定する形式も可能である。
マージジヨイン命令では、最大要素数と処理済要素個数
のかわりに、未処理要素個数を指定する命令形式も可能
である。
マージソート命令およびマージジヨイン命令の終了時未
処理要素の先頭アドレスを書戻さない命令仕様も可能で
あるが、この時各ベクトルは第1要素のアドレスのみが
指定されるので割込みによる中断から再開する場合、各
オペランドのアドレスレジスタを処理済要素数に応じて
増加させる処理が中断命令の再開の前処理として必要と
なる。
本実施例では、ベクトルのオペランドはバツフア記憶に
存在しているが、主記憶装置に存在する場合にもまたベ
クトルレジスタに存在する場合にも本発明は適用でき
る。
第5図以降の実施例によれば、第1図に示した拡張ベク
トル演算の各ループ毎の処理を1サイクルピツチのパイ
プラインで実行するベクトル計算機が実現できる。第1
図のPADにおける各演算および判定が通常命令では1サ
イクルで実行されるとしてもループ一回の実行には少な
くとも5サイクルを必要とするので、本実施例では5倍
以上の高速化が可能になつている。これは、演算、判定
およびインデツクスの更新がベクトル化により並列化さ
れ、1サイクルピツチのパイプライン化が可能となつて
いるためである。
〔発明の効果〕
本発明によれば、第1図に示した各ベクトルは順次読出
し格納されるが各ベクトルのインデツクスが各演算結果
に応じて増加される拡張ベクトル演算もベクトル処理の
適用対象となり高速化される。すなわちベクトル化によ
り、第1図に示した演算、判定、インデツクス更新など
の並列化が容易になるためであり、パイプライン技術を
用いれば5倍以上の高速化が可能となる。
【図面の簡単な説明】
第1図は拡張ベクトル演算のフローチヤート図、第2図
は本発明の適用例である関係データベースの結合処理動
作を示す図、第3図はマージソート命令の動作を示す
図、第4図はマージジヨイン命令の動作を示す図、第5
図は拡張ベクトル命令の命令形式を示す図、第6図は拡
張ベクトル計算機の全体構成図、第7図は第6図の拡張
ベクトル演算ユニツトの構成図、第8図は第7図のオペ
ランド記憶制御回路の構成図、第9図は第7図のオペラ
ンドカウント回路の構成図、第10図はマージソート命令
の動作タイムチヤート図、第11図は第7図の判定制御回
路の真理値表、第12図は第6図の順序制御回路の構成図
である。 101……選択演算回路、21……オペランドアドレスレジ
スタ、51……オペランドカウンタ、52……最大個数レジ
スタ。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】主記憶と、 該主記憶から第1、第2のベクトルを読み出し、それら
    の要素にマージソート演算又はマージジョイン演算の少
    なくともいずれか一方を実行し、得られる第3のベクト
    ルを該主記憶に書き込む第1のベクトル演算装置と、 該主記憶から第4、第5のベクトルを読み出し、それら
    の互いに同じ要素番号の要素に対する他のベクトル演算
    を施し、得られる第6のベクトルを該主記憶に書き込む
    第2のベクトル演算装置と、 命令を順次解読し、解読した命令が該いずれか一方の演
    算を要求するベクトル命令のとき、該第1のベクトル演
    算装置を起動し、該解読した命令が該他のベクトル演算
    を要求するベクトル命令のとき、該第2のベクトル演算
    装置を起動する命令実行手段とを有するデータ処理装
    置。
  2. 【請求項2】該命令実行手段は、該解読した命令が該い
    ずれか一方の演算を要求するベクトル命令のとき、その
    命令が要求する該第1、第2のベクトルをそれぞれ読み
    出すべき、該主記憶内の位置および該第3のベクトルを
    書き込むべき該主記憶内の位置を含め、該いずれか一方
    の演算を実行するに必要なその命令が要求する情報を該
    第1のベクトル演算装置に供給する手段を有する第1項
    のデータ処理装置。
  3. 【請求項3】複数のスカラレジスタと、 スカラ演算命令に応答して、それが指定する一つのスカ
    ラレジスタの内容又は該主記憶の内容にスカラ演算を施
    し、その演算結果としてのスカラデータを、その命令が
    指定するいずれか一つのスカラレジスタ又は該主記憶に
    書き込むスカラ演算装置をさらに有し、 該供給手段は、該いずれか一方の演算を要求するベクト
    ル命令が要求する複数のスカラレジスタから該いずれか
    一方の演算の実行に必要な情報を該第1のベクトル演算
    装置に供給する手段を有する第2項のデータ処理装置。
  4. 【請求項4】複数のベクトルを記憶する手段と、 第1のベクトルの一つの要素の少なくとも一部と第2の
    ベクトルの一つの要素の少なくとも一部とからなる一対
    の要素を比較する手段と、 該比較された一対の要素に対して演算を行う演算器と、 該第1、第2のベクトルに対するマージソート演算又は
    マージジョイン演算の少なくともいずれか一方の演算を
    要求するベクトル命令に応答して、その命令が要求する
    該記憶手段内の位置から順次該第1のベクトルの要素を
    読み出し、該比較手段に順次供給するものであって、第
    1の増分信号が供給されたとき、次の要素番号の要素を
    次の要素として該比較手段に供給し、該第1の増分信号
    が供給されなかったとき、現在供給した要素と同じ要素
    を次の要素として該比較手段に供給する第1のオペラン
    ド制御回路と、 該ベクトル命令に応答して、その命令が要求する該記憶
    手段内の位置から該第2のベクトルの要素を順次読み出
    し、該比較手段に順次供給するものであって、第2の増
    分信号が供給されたとき、現在供給した要素の次の要素
    番号の要素を次の要素として該比較手段に供給し、該第
    2の増分信号が供給されなかったとき、該現在供給した
    要素を次の要素として該比較手段に供給する第2のオペ
    ランド制御回路と、 該ベクトル命令に応答して、その命令が要求する該記憶
    手段内の位置に、該演算器から順次供給される演算結果
    の要素を、それぞれ第3の増分信号が供給されたことに
    応答して、第3のベクトルの要素として順次書き込む第
    3のオペランド制御回路と、 該演算器の動作を制御し、かつ、該第1から第3の増分
    信号を選択的に発生し、それぞれを該第1から第3のオ
    ペランド制御回路に供給する、該比較手段による比較結
    果に応答した演算制御回路とを有するデータ処理装置。
  5. 【請求項5】該記憶手段は、主記憶である特許請求の範
    囲第4項のデータ処理装置。
  6. 【請求項6】該第1のベクトルの先頭要素の、該主記憶
    内の位置を含め、該第1のベクトルを読み出すのに必要
    な該ベクトル命令が指定する第1の情報、該第2のベク
    トルの先頭要素の、該主記憶内の位置を含め、該第2の
    ベクトルを読み出すのに必要な該ベクトル命令が指定す
    る第2の情報、および該第3のベクトルの先頭要素の、
    該主記憶内の位置を含め、該第3のベクトルを書き込む
    のに必要な該ベクトル命令が指定する第3の情報を、そ
    れぞれ該第1から第3のオペランド制御回路に該ベクト
    ル命令に応答して供給する手段をさらに有する第4項の
    データ処理装置。
  7. 【請求項7】複数のスカラレジスタと、 スカラ演算命令に応答して、それが指定する一つのスカ
    ラレジスタの内容又は該主記憶の内容にスカラ演算を施
    し、その演算結果としてのスカラデータを、その命令が
    指定するいずれか一つのスカラレジスタ又は該主記憶に
    書き込むスカラ演算装置をさらに有し、 該供給手段は、該ベクトル命令が要求する複数のスカラ
    レジスタから該第1から第3の情報をそれぞれ該第1か
    ら第3のオペランド制御回路に該ベクトル命令に応答し
    て供給する手段である第6項のデータ処理装置。
  8. 【請求項8】該ベクトル命令により要求される演算は、
    マージソート演算であり、 該第1のベクトルと該第2のベクトルの各要素は、第
    1、第2の部分からなり、 該比較手段は、そこに供給された一対の要素のそれぞれ
    の第1の部分を比較するものであり、 該演算制御回路は、該比較された一対の要素の一方の要
    素であって、その第1の部分が他方の要素の第1の部分
    に対して所定の相対的大小関係にあるものが選択される
    ように該演算器を制御し、該一対の要素のいずれか選択
    されたかに応じて、該第1と該第2の増分信号の一方を
    該第1、第2のオペランド制御回路の対応する一方に供
    給し、該第3の増分信号を該第3のオペランド制御回路
    に供給する手段を有する特許請求の範囲第4項のデータ
    処理装置。
  9. 【請求項9】該ベクトル命令により要求される演算は、
    マージジョイン演算であり、 該第1のベクトルと該第2のベクトルの各要素は、第1,
    第2の部分からなり、 該比較手段は、そこに供給された一対の要素のそれぞれ
    の第1の部分を比較するものであり、 該演算制御回路は、該比較された一対の要素の第1の部
    分が互いに一致するとき、それぞれの要素の第2の部分
    の組合わせからなるデータを出力するように該演算器を
    制御し、さらに該第1から該第3の増分信号をそれぞれ
    該第1から第3のオペランド制御回路に供給し、該比較
    された一対の要素の第1の部分が一致しないとき、該比
    較された一対の要素の一方の要素のいずれかの第1の部
    分が他方の要素の第1の部分に対して所定の相対的大小
    関係にあるかに応じて、該第1と該第2の増分信号の一
    方を該第1、第2のオペランド制御回路の対応する一方
    に供給する手段を有する特許請求の範囲第4項のデータ
    処理装置。
JP58242007A 1983-12-23 1983-12-23 データ処理装置 Expired - Lifetime JPH077385B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP58242007A JPH077385B2 (ja) 1983-12-23 1983-12-23 データ処理装置
DE8484116094T DE3484109D1 (de) 1983-12-23 1984-12-21 Vektorprozessor.
US06/685,116 US4779192A (en) 1983-12-23 1984-12-21 Vector processor with a synchronously controlled operand fetch circuits
EP84116094A EP0149213B1 (en) 1983-12-23 1984-12-21 Vector processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58242007A JPH077385B2 (ja) 1983-12-23 1983-12-23 データ処理装置

Publications (2)

Publication Number Publication Date
JPS60134973A JPS60134973A (ja) 1985-07-18
JPH077385B2 true JPH077385B2 (ja) 1995-01-30

Family

ID=17082868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58242007A Expired - Lifetime JPH077385B2 (ja) 1983-12-23 1983-12-23 データ処理装置

Country Status (4)

Country Link
US (1) US4779192A (ja)
EP (1) EP0149213B1 (ja)
JP (1) JPH077385B2 (ja)
DE (1) DE3484109D1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4890220A (en) * 1984-12-12 1989-12-26 Hitachi, Ltd. Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
DE3688186D1 (de) * 1985-12-02 1993-05-06 Ibm Datenverarbeitungsgeraet mit drei-adress-befehlen.
JP2760790B2 (ja) * 1986-10-09 1998-06-04 株式会社日立製作所 データ処理装置
JPS63136168A (ja) * 1986-11-28 1988-06-08 Hitachi Ltd ベクトル計算機
US4918593A (en) * 1987-01-08 1990-04-17 Wang Laboratories, Inc. Relational database system
JPS63251835A (ja) * 1987-04-08 1988-10-19 Hitachi Ltd ベクトル処理装置
JP3070744B2 (ja) * 1987-04-10 2000-07-31 株式会社日立製作所 ベクトル処理装置
JP2753260B2 (ja) * 1987-05-13 1998-05-18 株式会社日立製作所 マージ方法
ATE147523T1 (de) * 1987-10-07 1997-01-15 George G Gorbatenko Speicherraumfeldanordnung zur speicherung von relationalen daten
US5261113A (en) * 1988-01-25 1993-11-09 Digital Equipment Corporation Apparatus and method for single operand register array for vector and scalar data processing operations
US5003471A (en) * 1988-09-01 1991-03-26 Gibson Glenn A Windowed programmable data transferring apparatus which uses a selective number of address offset registers and synchronizes memory access to buffer
US5136662A (en) * 1988-12-13 1992-08-04 Matsushita Electric Industrial Co., Ltd. Image processor for sequential processing of successive regions of an image
US5274835A (en) * 1988-12-20 1993-12-28 Matsushita Electric Industrial Co., Ltd. Merge device using FIFO buffers
JP2607689B2 (ja) * 1989-07-10 1997-05-07 株式会社日立製作所 ベクトル処理装置
US5241648A (en) * 1990-02-13 1993-08-31 International Business Machines Corporation Hybrid technique for joining tables
US5119324A (en) * 1990-02-20 1992-06-02 Stardent Computer Apparatus and method for performing arithmetic functions in a computer system
US5053986A (en) * 1990-02-21 1991-10-01 Stardent Computer, Inc. Circuit for preservation of sign information in operations for comparison of the absolute value of operands
US5210870A (en) * 1990-03-27 1993-05-11 International Business Machines Database sort and merge apparatus with multiple memory arrays having alternating access
US5287494A (en) * 1990-10-18 1994-02-15 International Business Machines Corporation Sorting/merging tree for determining a next tournament champion in each cycle by simultaneously comparing records in a path of the previous tournament champion
US5848286A (en) * 1994-03-29 1998-12-08 Cray Research, Inc. Vector word shift by vo shift count in vector supercomputer processor
JP3518034B2 (ja) * 1995-03-30 2004-04-12 三菱電機株式会社 ソート方法並びにソート処理装置並びにデータ処理装置
TW439380B (en) 1995-10-09 2001-06-07 Hitachi Ltd Terminal apparatus
US6195747B1 (en) * 1998-09-28 2001-02-27 Mentor Arc Inc. System and method for reducing data traffic between a processor and a system controller in a data processing system
US6424969B1 (en) * 1999-07-20 2002-07-23 Inmentia, Inc. System and method for organizing data
KR100331565B1 (ko) * 1999-12-17 2002-04-06 윤종용 매트릭스 연산 장치 및 매트릭스 연산기능을 갖는 디지털신호처리 장치
US6944619B2 (en) * 2001-04-12 2005-09-13 Primentia, Inc. System and method for organizing data
US20040158561A1 (en) * 2003-02-04 2004-08-12 Gruenwald Bjorn J. System and method for translating languages using an intermediate content space
US10649775B2 (en) * 2013-07-15 2020-05-12 Texas Instrum Ents Incorporated Converting a stream of data using a lookaside buffer
US9355061B2 (en) 2014-01-28 2016-05-31 Arm Limited Data processing apparatus and method for performing scan operations
US10754818B2 (en) * 2014-08-12 2020-08-25 ArchiTek Corporation Multiprocessor device for executing vector processing commands
US10831502B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Migration of partially completed instructions
US10831478B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Sort and merge instruction for a general-purpose processor
US10831503B2 (en) * 2018-11-06 2020-11-10 International Business Machines Corporation Saving and restoring machine state between multiple executions of an instruction

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3794984A (en) * 1971-10-14 1974-02-26 Raytheon Co Array processor for digital computers
JPS5148937A (en) * 1974-10-25 1976-04-27 Fujitsu Ltd Kiokusochi niokeru junjoseigyohoshiki
JPS5852265B2 (ja) * 1977-01-12 1983-11-21 株式会社日立製作所 デ−タ処理装置
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
JPS57134774A (en) * 1981-02-13 1982-08-20 Hitachi Ltd Vector operating device
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
JPS59160267A (ja) * 1983-03-02 1984-09-10 Hitachi Ltd ベクトル処理装置
JPS6077265A (ja) * 1983-10-05 1985-05-01 Hitachi Ltd ベクトル処理装置

Also Published As

Publication number Publication date
DE3484109D1 (de) 1991-03-21
EP0149213B1 (en) 1991-02-13
JPS60134973A (ja) 1985-07-18
EP0149213A3 (en) 1988-01-07
EP0149213A2 (en) 1985-07-24
US4779192A (en) 1988-10-18

Similar Documents

Publication Publication Date Title
JPH077385B2 (ja) データ処理装置
JP2810896B2 (ja) データ処理装置
US4187539A (en) Pipelined data processing system with centralized microprogram control
JP3120152B2 (ja) コンピューターシステム
US6370601B1 (en) Intelligent direct memory access controller providing controlwise and datawise intelligence for DMA transfers
US4539635A (en) Pipelined digital processor arranged for conditional operation
JPS58189739A (ja) デ−タ処理システム
US5390306A (en) Pipeline processing system and microprocessor using the system
JP3175768B2 (ja) 複合型命令スケジューリング処理装置
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
JP2022023631A (ja) アセンブリ命令変換プログラム、アセンブリ命令変換方法、及び情報処理装置
JP3481479B2 (ja) 命令制御装置
JP2764947B2 (ja) 命令制御方式
JPS63136168A (ja) ベクトル計算機
JP2819753B2 (ja) パイプライン・マイクロプロセッサ
JPS6037037A (ja) データ処理装置
JP2576589B2 (ja) 仮想記憶アクセス制御方式
JPH0385636A (ja) 命令先行制御装置
JPH07111683B2 (ja) タスク切換機能付プロセッサ
JPS5896346A (ja) 階層型演算方式
JP2001147914A (ja) ベクトル演算装置
JPS62226336A (ja) マイクロプログラム制御方式
JPH0338613B2 (ja)
JPH0545984B2 (ja)
JPS59220844A (ja) 命令再実行制御方式