JPS62160568A - ベクトル計算機 - Google Patents
ベクトル計算機Info
- Publication number
- JPS62160568A JPS62160568A JP61002773A JP277386A JPS62160568A JP S62160568 A JPS62160568 A JP S62160568A JP 61002773 A JP61002773 A JP 61002773A JP 277386 A JP277386 A JP 277386A JP S62160568 A JPS62160568 A JP S62160568A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- operand
- read
- data block
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、ベクトル計算機に関し、特にディスク上のデ
ータブロック番号から主記憶上に読み込まれたアドレス
に変換する場合、多数のデータブロックを高速に変換す
るためのベクトル計算機に関するものである。
ータブロック番号から主記憶上に読み込まれたアドレス
に変換する場合、多数のデータブロックを高速に変換す
るためのベクトル計算機に関するものである。
データベース管理システム(DBMS)のように5多量
のデータをディスク(磁気ディスク、光ディスク等)で
管理するシステムにおいては、ディスク上の領域を固定
長のデータブロック(具体的には、ページと呼ばれる)
に分割し、このデータブロックを単位に主記憶とディス
クとの転送を制御する。データブロックアドレス変換で
は、ディスク上のデータブロック番号を入力として、対
応するデータブロックを格納している主記憶エリアのア
ドレスを出力する。アドレス変換の内部処理としては、
既に読込まれているデータブロックはそのまま変換出力
に流用し、読込まれていないデータブロックのみをディ
スクより新たに読込む。そして、読込んだ主記憶エリア
のアドレスを出力する。従来のアドレス変換装置として
は、例えば。
のデータをディスク(磁気ディスク、光ディスク等)で
管理するシステムにおいては、ディスク上の領域を固定
長のデータブロック(具体的には、ページと呼ばれる)
に分割し、このデータブロックを単位に主記憶とディス
クとの転送を制御する。データブロックアドレス変換で
は、ディスク上のデータブロック番号を入力として、対
応するデータブロックを格納している主記憶エリアのア
ドレスを出力する。アドレス変換の内部処理としては、
既に読込まれているデータブロックはそのまま変換出力
に流用し、読込まれていないデータブロックのみをディ
スクより新たに読込む。そして、読込んだ主記憶エリア
のアドレスを出力する。従来のアドレス変換装置として
は、例えば。
特開昭57−169983号公報に記載されているよう
に、先ずディスクから1デ一タブロツク分のブロック番
号を入力し、これを主記憶上の格納エリアアドレスに変
換して出力し、次にまた1つのデータブロックの番号を
入力して、これを主記憶上のアドレスに変換し出力する
というように、1ブロツクづつ逐次処理を行っていた。
に、先ずディスクから1デ一タブロツク分のブロック番
号を入力し、これを主記憶上の格納エリアアドレスに変
換して出力し、次にまた1つのデータブロックの番号を
入力して、これを主記憶上のアドレスに変換し出力する
というように、1ブロツクづつ逐次処理を行っていた。
従って。
変換処理に時間がかかり過ぎていた。
一方、半導体メモリの製造技術の発達により、大容量の
主記憶メモリが低価格で製造できるようになってきたの
で5デイスクと主記憶メモリとの容量の差が小さくなり
、従来のように大容量のディスクから小容量の主記憶に
対して、常に使用頻度の高いブロックを読込ませるため
、古いブロックとの入替えを頻繁に行う必要がなくなっ
てきた。
主記憶メモリが低価格で製造できるようになってきたの
で5デイスクと主記憶メモリとの容量の差が小さくなり
、従来のように大容量のディスクから小容量の主記憶に
対して、常に使用頻度の高いブロックを読込ませるため
、古いブロックとの入替えを頻繁に行う必要がなくなっ
てきた。
すなわち、大容量の主記憶装置を使用するDr3MSで
は、データブロックが既に読込まれている確率が増大し
、ディスクへの入出力時間は減小する傾向にある。しか
し、上記公報に記載された従来のアドレス変換装置を使
用した場合には、指定データブロックが読込み済みであ
るか否かの判定を行う時間が、読込み済みのデータブロ
ックの個数に比例して増加するので、処理時間を減小で
きないという問題がある。
は、データブロックが既に読込まれている確率が増大し
、ディスクへの入出力時間は減小する傾向にある。しか
し、上記公報に記載された従来のアドレス変換装置を使
用した場合には、指定データブロックが読込み済みであ
るか否かの判定を行う時間が、読込み済みのデータブロ
ックの個数に比例して増加するので、処理時間を減小で
きないという問題がある。
そこで、複数のデータブロックを一括してアドレス変換
することにより、処理を高速化する方法が提案されてい
る。関係データベースは、操作性がよい等の利点を持つ
反面、実行性能が遅いという欠点を持っているが、一部
提案され、現在も検討中の方法は、ベクトル演算を基本
とするデータベースプロセッサにより高速化を図ってい
る。しかし、従来のベクトル演算方法では、読込み済み
データブロックを管理するベクトルを更新する方法が考
えられておらず、また数値計算を前提としているため、
データベース処理に適用するためには、新しい演算方法
の開発が必要である。
することにより、処理を高速化する方法が提案されてい
る。関係データベースは、操作性がよい等の利点を持つ
反面、実行性能が遅いという欠点を持っているが、一部
提案され、現在も検討中の方法は、ベクトル演算を基本
とするデータベースプロセッサにより高速化を図ってい
る。しかし、従来のベクトル演算方法では、読込み済み
データブロックを管理するベクトルを更新する方法が考
えられておらず、また数値計算を前提としているため、
データベース処理に適用するためには、新しい演算方法
の開発が必要である。
〔発明の目的〕
本発明の目的は、このような従来の問題を改碧し、外部
記憶装置と主記憶装置間の多数のデータブロックのアド
レス変換要求と多数の読込みデータブロックに対しても
、データブロック数のオーダに比例した高速なアドレス
変換が可能なベクトル計算機を提案することにある。
記憶装置と主記憶装置間の多数のデータブロックのアド
レス変換要求と多数の読込みデータブロックに対しても
、データブロック数のオーダに比例した高速なアドレス
変換が可能なベクトル計算機を提案することにある。
上記目的を達成するため、本発明のベクトル計算機は、
外部記憶上のデータブロックを主記憶上の任意のエリア
に読込んだ後、ソートされた複数のデータブロック番号
を格納したベクトルを入力して、対応する読込まれた主
記憶エリアの各アドレスの一部ベクトルに変換して出力
するベクトル計算機において、ソートされた2つのベク
トルの集合差を求める手段と、ソートされた2つのベク
トルの集合和を求める手段と、ソートされた2つのベク
トルの集合積を求める手段と、主記憶に読込み済みのデ
ータブロックに対しブロック番号順にソートされたエリ
ア管理ベクトル格納手段とを有し、上記エリア管理ベク
トルと入力データブロック番号ベクトルとの集合差を求
めて、主記憶に新たに読込むべきデータブロック番号ベ
クトルを求め、外部記憶より対応するデータブロックを
読込み、上記新しく読込んだデータブロック番号ベクト
ルと上記エリア管理ベクトルとの集合和を求めて、上記
エリア管理ベクトルの更新を行い、更新されたエリア管
理ベクトルと上記入力データブロック順序番号の集合積
を求めて、アドレス変換出力ベクトルを発生することに
特徴がある。
外部記憶上のデータブロックを主記憶上の任意のエリア
に読込んだ後、ソートされた複数のデータブロック番号
を格納したベクトルを入力して、対応する読込まれた主
記憶エリアの各アドレスの一部ベクトルに変換して出力
するベクトル計算機において、ソートされた2つのベク
トルの集合差を求める手段と、ソートされた2つのベク
トルの集合和を求める手段と、ソートされた2つのベク
トルの集合積を求める手段と、主記憶に読込み済みのデ
ータブロックに対しブロック番号順にソートされたエリ
ア管理ベクトル格納手段とを有し、上記エリア管理ベク
トルと入力データブロック番号ベクトルとの集合差を求
めて、主記憶に新たに読込むべきデータブロック番号ベ
クトルを求め、外部記憶より対応するデータブロックを
読込み、上記新しく読込んだデータブロック番号ベクト
ルと上記エリア管理ベクトルとの集合和を求めて、上記
エリア管理ベクトルの更新を行い、更新されたエリア管
理ベクトルと上記入力データブロック順序番号の集合積
を求めて、アドレス変換出力ベクトルを発生することに
特徴がある。
以下、本発明の実施例を1図面により詳細に説明する。
先ず最初に、従来のベクトル演算と本発明が対象とする
ベクトル集合演算との相違を説明した後、次に本発明の
アドレス変換の基本手順を説明する。
ベクトル集合演算との相違を説明した後、次に本発明の
アドレス変換の基本手順を説明する。
従来のベクトル演算では、演算の対象となるベクトル要
素番号を順次規則正しく更新しながら、対応する要素間
の演算を行い、所定の要素番号の処理を終了したときに
ベクトル演算が終了するという形式を原則としている。
素番号を順次規則正しく更新しながら、対応する要素間
の演算を行い、所定の要素番号の処理を終了したときに
ベクトル演算が終了するという形式を原則としている。
例えば、それぞれn個の要素を有する2つのベクトルを
対象として、第1要素間の演算の次には第2要素間の演
算を行い、以下順番に第i要素間の演算を行って、第n
要素間の演算が終ったところで、このベクトル演算が終
了する。この型のべりl・ル演算は、マトリクス演算(
例えば、逆行列計算)のような数1[iI計算には広く
適用できることが知られており、それに基づくベクトル
計算機が1例えば、CRAY社のCRAY−1計算機や
、日立製作所の内蔵アレイプロセッサ等として製品化さ
れている。また、この製品の技術を説明した文献として
は、前者については米国特許第4128880号明細書
があり、後者については、特公昭58 52265号公
報がある。しかし、数値計算とは異なる種類の演算に対
しては、前記の型のベクトル演算はあまり有効ではない
。例えば、リレーショナルデータベース管理システム(
RDBMS)の処理は、一群のデータ(例えば、テーブ
ル)を単位として一定の演算を行う場合が多いので、ベ
クトル計算機を利用して処理の高速化を図りたいのであ
るが、前記の型のベクトル演算機能のみでは、充分な高
速化を達成できない。何故ならば、ベクトル演算機では
。
対象として、第1要素間の演算の次には第2要素間の演
算を行い、以下順番に第i要素間の演算を行って、第n
要素間の演算が終ったところで、このベクトル演算が終
了する。この型のべりl・ル演算は、マトリクス演算(
例えば、逆行列計算)のような数1[iI計算には広く
適用できることが知られており、それに基づくベクトル
計算機が1例えば、CRAY社のCRAY−1計算機や
、日立製作所の内蔵アレイプロセッサ等として製品化さ
れている。また、この製品の技術を説明した文献として
は、前者については米国特許第4128880号明細書
があり、後者については、特公昭58 52265号公
報がある。しかし、数値計算とは異なる種類の演算に対
しては、前記の型のベクトル演算はあまり有効ではない
。例えば、リレーショナルデータベース管理システム(
RDBMS)の処理は、一群のデータ(例えば、テーブ
ル)を単位として一定の演算を行う場合が多いので、ベ
クトル計算機を利用して処理の高速化を図りたいのであ
るが、前記の型のベクトル演算機能のみでは、充分な高
速化を達成できない。何故ならば、ベクトル演算機では
。
全演算の90%以上にベクトル演算が適用されなければ
1期待する速度の向上が実現されないと考えられる。例
えば、RDr3MSの処理では、レコードを格納するデ
ータブロック番号から該当ブロックが読込まれている主
記憶アドレスに変換する処理が頻繁に行われ、かつこの
アドレス変換を効率よく前記の型のベクトル演算を用い
て実行するアルゴリズムが未だに知られていないからで
ある。
1期待する速度の向上が実現されないと考えられる。例
えば、RDr3MSの処理では、レコードを格納するデ
ータブロック番号から該当ブロックが読込まれている主
記憶アドレスに変換する処理が頻繁に行われ、かつこの
アドレス変換を効率よく前記の型のベクトル演算を用い
て実行するアルゴリズムが未だに知られていないからで
ある。
次に、このRDBにおけるアドレス変換を例にして、従
来の型のベクトル演算の問題点を詳述する。RDBのレ
コードは、固定長(4KB)のデータブロックに複数個
が格納されており、ディスクからはこのデータブロック
を単位に読込まれ、主記憶上の適当な空き領域に格納さ
れる。以後、RDBMSの検索等のレコード操作は、全
てこの主記憶上で行われる。ここで、RDBの全データ
容量は主記憶の容量より大きい場合が多いので、主記憶
の領域には、一部のデータブロックのみを動的に割当て
ることが必要になる。従って、データブロック番号から
対応するブロックが格納されている主記憶領域のアドレ
スを求めるには、上記動的な割当に関する情報を利用し
なければならない。
来の型のベクトル演算の問題点を詳述する。RDBのレ
コードは、固定長(4KB)のデータブロックに複数個
が格納されており、ディスクからはこのデータブロック
を単位に読込まれ、主記憶上の適当な空き領域に格納さ
れる。以後、RDBMSの検索等のレコード操作は、全
てこの主記憶上で行われる。ここで、RDBの全データ
容量は主記憶の容量より大きい場合が多いので、主記憶
の領域には、一部のデータブロックのみを動的に割当て
ることが必要になる。従って、データブロック番号から
対応するブロックが格納されている主記憶領域のアドレ
スを求めるには、上記動的な割当に関する情報を利用し
なければならない。
1個のレコードに関し、そのレコードを含むデータブロ
ックが格納される主起tα領域のアドレスを求める方法
として、従来より、特開昭57−169983号公報に
記載されている方法が使用されている。しかし、この方
法は、1個のアドレス変換のみを対象としており、ベク
トル演算の前提である多数個のレコードを一括処理する
方法ではない。また、処理時間も、アドレス変換要求の
データブロック数をX、主記憶上のデータブロック数を
yとすれば、xXyに比例した時間を必要とする。
ックが格納される主起tα領域のアドレスを求める方法
として、従来より、特開昭57−169983号公報に
記載されている方法が使用されている。しかし、この方
法は、1個のアドレス変換のみを対象としており、ベク
トル演算の前提である多数個のレコードを一括処理する
方法ではない。また、処理時間も、アドレス変換要求の
データブロック数をX、主記憶上のデータブロック数を
yとすれば、xXyに比例した時間を必要とする。
第2図は1本発明による新しいベクトル方式のアドレス
変換手順を説明する図である。茅2図におけるベクトル
L、2,3.3’ 、4.5は、それぞれ1個の要素が
前半と後半のご一つのフィールドから構成された新しい
形式のベクトルであり、以下、デュアルベタ1−ルと呼
ぶ。このデュアルベタ1−ルは、主記憶装置に格納され
る。デュアルベクトル1は、アドレス変換の入力となる
もので、各要素の後半には、アドレス変換したいデータ
ブロックの番号iが上昇順に格納されている。前半の部
分には、有意な内容が格納されていないので。
変換手順を説明する図である。茅2図におけるベクトル
L、2,3.3’ 、4.5は、それぞれ1個の要素が
前半と後半のご一つのフィールドから構成された新しい
形式のベクトルであり、以下、デュアルベタ1−ルと呼
ぶ。このデュアルベタ1−ルは、主記憶装置に格納され
る。デュアルベクトル1は、アドレス変換の入力となる
もので、各要素の後半には、アドレス変換したいデータ
ブロックの番号iが上昇順に格納されている。前半の部
分には、有意な内容が格納されていないので。
11 I+で示している。以下、デュアルベクトルl
を、要求ベクトルと呼ぶ。デュアルベクトル4は、アド
レス変換の出力となるもので、各要素の後半は、デュア
ルベクトルlと同一内容であるが、前半には対応する各
主記憶領域のアドレス(第2図では、m i )が格納
されている。デュアルベタ1−ル2゜5には、主記憶上
に読込まれている全データブロックの番号jと対応する
主記憶アドレス(茅2図では、mj)が各要素の後半と
前半に格納されている。各要素は、データブロックの上
昇順に並んでいる。このデュアルベクトルを、以下、管
理ベクトルと呼ぶ。
を、要求ベクトルと呼ぶ。デュアルベクトル4は、アド
レス変換の出力となるもので、各要素の後半は、デュア
ルベクトルlと同一内容であるが、前半には対応する各
主記憶領域のアドレス(第2図では、m i )が格納
されている。デュアルベタ1−ル2゜5には、主記憶上
に読込まれている全データブロックの番号jと対応する
主記憶アドレス(茅2図では、mj)が各要素の後半と
前半に格納されている。各要素は、データブロックの上
昇順に並んでいる。このデュアルベクトルを、以下、管
理ベクトルと呼ぶ。
アドレス変換は、以下に述べる4つのステップに分けて
実行される。
実行される。
アドレス変換の第1ステツプでは、後述するデュアルベ
クトル要素集合間の差(以下、ディファレンスD 1f
ferenceと呼ぶ)の演算6により、主記憶上に読
込まれていないデータブロックの番号を求めるa Dx
fference°演算は、要求ベクトル1と管理ベク
トル2を入力し、両ベクトルの各要素の後半部を比較し
、右側の管理ベクトルにはないデータブロック番号を持
つ左側ベクトル要素を。
クトル要素集合間の差(以下、ディファレンスD 1f
ferenceと呼ぶ)の演算6により、主記憶上に読
込まれていないデータブロックの番号を求めるa Dx
fference°演算は、要求ベクトル1と管理ベク
トル2を入力し、両ベクトルの各要素の後半部を比較し
、右側の管理ベクトルにはないデータブロック番号を持
つ左側ベクトル要素を。
デュアルベクトル3に出力する。第2図の例では、番号
1,5.7のデータブロックは、右側の管理ベクトルに
存在するので、データブロック番号2゜8を含む要素だ
けが出力されている。
1,5.7のデータブロックは、右側の管理ベクトルに
存在するので、データブロック番号2゜8を含む要素だ
けが出力されている。
第2ステツプでは、読込まれていないデータブロックの
ために、主記憶中の空領域を割当て(ステップ101)
、そのアドレスをデュアルベクトル3′の前半に登録す
る。同時に、ディスク103から必要なデータブロック
を読込み(ステップ102)、先に割当てた空領域に格
納する。デュを追加ベクトルと呼ぶ。
ために、主記憶中の空領域を割当て(ステップ101)
、そのアドレスをデュアルベクトル3′の前半に登録す
る。同時に、ディスク103から必要なデータブロック
を読込み(ステップ102)、先に割当てた空領域に格
納する。デュを追加ベクトルと呼ぶ。
第3ステツプでは、第2ステツプで新しく読込んだデー
タブロック番号を、後述するベクトル要素集合間の和(
以下、ユニオンU n1onと呼ぶ)の演算8により、
管理ベタ1−ルに追加する。Union演算は、追加ベ
クトル3′と管理ベクトル2を入力とし1両者の集合和
となる新しい管理ベクトル5を生成する。管理ベクトル
もデータブロック番号が上昇順になる。
タブロック番号を、後述するベクトル要素集合間の和(
以下、ユニオンU n1onと呼ぶ)の演算8により、
管理ベタ1−ルに追加する。Union演算は、追加ベ
クトル3′と管理ベクトル2を入力とし1両者の集合和
となる新しい管理ベクトル5を生成する。管理ベクトル
もデータブロック番号が上昇順になる。
第4ステツプでは、第3のステップで作成した新しい管
理ベクトルを用いて、要求ベクトルlで指定された全て
のデータブロックについて、アドレス変換し、その結果
をデュアルベクトル4に格納する。このために、ベクト
ル要素集合間の積(以下、ジョインJ oinと呼ぶ)
の演算7を使用する。J oin演算では、左側入力の
新しい管理ベクトルの各要素の後半のデータブロック番
号を、右側入力の要求ベクトルの各要素の後半のデータ
ブロック番号と比較し、一致するものが存在する場合に
のみ、左側の管理ベクトル要素を出力する。
理ベクトルを用いて、要求ベクトルlで指定された全て
のデータブロックについて、アドレス変換し、その結果
をデュアルベクトル4に格納する。このために、ベクト
ル要素集合間の積(以下、ジョインJ oinと呼ぶ)
の演算7を使用する。J oin演算では、左側入力の
新しい管理ベクトルの各要素の後半のデータブロック番
号を、右側入力の要求ベクトルの各要素の後半のデータ
ブロック番号と比較し、一致するものが存在する場合に
のみ、左側の管理ベクトル要素を出力する。
以上に述べたD 1fference 、 U n1o
n + J oinの各演算は、それぞれ入力が上昇順
に並んでいることを利用し、入カベクトルと管理ベタ1
−ルの要素数の和に比例した時間で実行することができ
る。つまり、各ベクトル要素を先頭から順次読出し、要
素の後半部相互を比較し、その結果により出力内容の選
択、出力の要否、左ベクトルの次の読出しの要否、右ベ
クトルの次の読出しの要否を判断するマージの手順を繰
り返すことにより、実行できるからである。
n + J oinの各演算は、それぞれ入力が上昇順
に並んでいることを利用し、入カベクトルと管理ベタ1
−ルの要素数の和に比例した時間で実行することができ
る。つまり、各ベクトル要素を先頭から順次読出し、要
素の後半部相互を比較し、その結果により出力内容の選
択、出力の要否、左ベクトルの次の読出しの要否、右ベ
クトルの次の読出しの要否を判断するマージの手順を繰
り返すことにより、実行できるからである。
この新しいベクトル型のアドレス変換方法は、それ自体
が効率のよいアルゴリズムであるが、残念ながら従来の
型のベクトル演算方式を適用して、さらに高速化するこ
とはできない。例えば、Difference演算では
、3つのベクトルの各要素への参照は、比較結果により
変化し、一様ではない。
が効率のよいアルゴリズムであるが、残念ながら従来の
型のベクトル演算方式を適用して、さらに高速化するこ
とはできない。例えば、Difference演算では
、3つのベクトルの各要素への参照は、比較結果により
変化し、一様ではない。
つまり、各演算サイクルにおいて、各ベクトルの何番目
の要素を参照、または格納しているかは、過去の要素間
の比較結果により、3つのベクトルごとに異なっている
。このため、同一番目の要素間の演算しな許されない従
来型のベクトル演算方式の計算機では、D 1ffer
ence演算を高速に実行することができない。U n
1on 、 J oinの演算についても、同じように
、従来の型のベクトル演算方式の計算機では、高速に行
うことができない。
の要素を参照、または格納しているかは、過去の要素間
の比較結果により、3つのベクトルごとに異なっている
。このため、同一番目の要素間の演算しな許されない従
来型のベクトル演算方式の計算機では、D 1ffer
ence演算を高速に実行することができない。U n
1on 、 J oinの演算についても、同じように
、従来の型のベクトル演算方式の計算機では、高速に行
うことができない。
第1図は、本発明の一実施例を示すベクトル計算機のブ
ロック図である。
ロック図である。
本実施例においては、マージ型のベクトル演算で、比較
の結果を直接各ベク1−ルオペランドのアドレスレジス
タ更新に反映することにより、判定処理のピッチのパイ
プライン化を実現し、アドレス変換処理における読込ま
れていないデータブロックを抽出するベタ1−ル集合差
演算(D 1fference)、読込み管理ベクトル
に新規に読込んだデータブロックの管理ベクトルを追加
するベクトル集合和演算(Union)、要求データブ
ロックの対応するエリアのアドレスをff!するベクト
ル集合積演算(Join)の全てを、パイプライン化さ
れたバク1−ル演算装置により高速化する。
の結果を直接各ベク1−ルオペランドのアドレスレジス
タ更新に反映することにより、判定処理のピッチのパイ
プライン化を実現し、アドレス変換処理における読込ま
れていないデータブロックを抽出するベタ1−ル集合差
演算(D 1fference)、読込み管理ベクトル
に新規に読込んだデータブロックの管理ベクトルを追加
するベクトル集合和演算(Union)、要求データブ
ロックの対応するエリアのアドレスをff!するベクト
ル集合積演算(Join)の全てを、パイプライン化さ
れたバク1−ル演算装置により高速化する。
第1図において、10は主記憶装置、11は命令制御回
路、18は第2オペランドデータレジスタ、19は第3
オペランドデータレジスタ、17は選択回路、60は比
較回路、61は判定回路530aは第2オペランド制御
回路、30bは第3オペランド制御回路、30cは第1
オペランド制御回路、1,2.3は第2図に示すデュア
ルベクトルである。主記憶装置10には、デュアルベク
トル1,2.3が格納されるが、以下、これらのデュア
ルベクトル1,2.3をそれぞれ第2オペランド、第3
オペランド、および第1オペランドと呼ぶ。一般に、第
2、第3オペランドが入力であり、第1オペランドがD
1ffarence演算の出力である。
路、18は第2オペランドデータレジスタ、19は第3
オペランドデータレジスタ、17は選択回路、60は比
較回路、61は判定回路530aは第2オペランド制御
回路、30bは第3オペランド制御回路、30cは第1
オペランド制御回路、1,2.3は第2図に示すデュア
ルベクトルである。主記憶装置10には、デュアルベク
トル1,2.3が格納されるが、以下、これらのデュア
ルベクトル1,2.3をそれぞれ第2オペランド、第3
オペランド、および第1オペランドと呼ぶ。一般に、第
2、第3オペランドが入力であり、第1オペランドがD
1ffarence演算の出力である。
命令制御回路11は、命令語レジスタ50を含み、ベク
トル命令の起動と終了を制御する。第2オペランド制御
回路30a、第3オペランド制御回路30b、第1オペ
ランド制御回路30cは、それぞれオペランドの各要素
アドレスの生成と終了判定を行う。3つの制御回路30
a、30b。
トル命令の起動と終了を制御する。第2オペランド制御
回路30a、第3オペランド制御回路30b、第1オペ
ランド制御回路30cは、それぞれオペランドの各要素
アドレスの生成と終了判定を行う。3つの制御回路30
a、30b。
30cは、第3図で後述するように、同一の回路構成に
することができる。。
することができる。。
第2オペランドデータレジスタ18、第3オペランドデ
ータレジスタ19は、主記憶装置10から順次読出され
るオペランド要素を1サイクル以上保持するために使用
される。比較器60は、第2オペランドデータレジスタ
18と第3オペランドデータレジスタ19の後半部分を
比較し、その出力は命令制御回路11からの演算の種類
を示す信号13とともに、判定回路61に入力される。
ータレジスタ19は、主記憶装置10から順次読出され
るオペランド要素を1サイクル以上保持するために使用
される。比較器60は、第2オペランドデータレジスタ
18と第3オペランドデータレジスタ19の後半部分を
比較し、その出力は命令制御回路11からの演算の種類
を示す信号13とともに、判定回路61に入力される。
判定回路61は、第2オペランドデータレジスタ18と
第3オペランドデータレジスター9のいずれか一方向の
内容を選択し、主記憶に転送することを選択回路17に
指示する信号28と、各オペランドに対してアドレスの
更新と次オペランドの読出し、または選択器出力の格納
を指示する3本の信号23a、23b、23cを生成す
る。ゲート15,16は、ORゲートである。これらの
ORゲート15.16には、命令制御回路11からの信
号と判定回路61からの信号とを入力して、〉、 ゛第2オペランドデータレジスター8と第3オペラソ ・″ノドデータレジスター9に対し、次オペランドの読
出しアドレスの更新信号を出力する。このようにして、
デュアルベクトル1とデュアルベクトル2のうち一致し
ないオペランド要素2.8を選択回路17で選択して、
主記憶装置10に出力する。
第3オペランドデータレジスター9のいずれか一方向の
内容を選択し、主記憶に転送することを選択回路17に
指示する信号28と、各オペランドに対してアドレスの
更新と次オペランドの読出し、または選択器出力の格納
を指示する3本の信号23a、23b、23cを生成す
る。ゲート15,16は、ORゲートである。これらの
ORゲート15.16には、命令制御回路11からの信
号と判定回路61からの信号とを入力して、〉、 ゛第2オペランドデータレジスター8と第3オペラソ ・″ノドデータレジスター9に対し、次オペランドの読
出しアドレスの更新信号を出力する。このようにして、
デュアルベクトル1とデュアルベクトル2のうち一致し
ないオペランド要素2.8を選択回路17で選択して、
主記憶装置10に出力する。
これにより、デュアルベクトル3が生成される。
なお、上述の説明は、D 1fference演算のみ
であるが、Union演算とJ oin演算についても
同じようにして処理される。
であるが、Union演算とJ oin演算についても
同じようにして処理される。
第3図は、第1図における3個のオペランド制御回路を
示す詳細ブロック図である。3個のオペランド制御回路
30a、30h、30eは、同一構造であり、加算器3
1,32、アドレスレジスタ35、オペランドカウンタ
34、オール0検出回路33、およびORゲート36を
備えている。
示す詳細ブロック図である。3個のオペランド制御回路
30a、30h、30eは、同一構造であり、加算器3
1,32、アドレスレジスタ35、オペランドカウンタ
34、オール0検出回路33、およびORゲート36を
備えている。
線36には、第2、第3オペランド制御回路33a、3
0bでは命令制御回路11からの信号、第1オペランド
制御回路30cではII Ojl入力が、それぞれ加え
られ、また921,22には主記憶装置10へのアドレ
スおよび命令制御回路11への終了信号が、それぞれ出
力される。
0bでは命令制御回路11からの信号、第1オペランド
制御回路30cではII Ojl入力が、それぞれ加え
られ、また921,22には主記憶装置10へのアドレ
スおよび命令制御回路11への終了信号が、それぞれ出
力される。
アドレスレジスタ35は、各ベクトルオペランド要素ア
ドレスを格納するもので、その内容はアドレス線21に
より主記憶袋[10に送られる。
ドレスを格納するもので、その内容はアドレス線21に
より主記憶袋[10に送られる。
本実施例では、1ベクトル要素は、前半と後半の合計2
語で構成されており、次の要素のアドレス計算のために
、+2を片側入力とする加算器31が使用される。アド
レスレジスタの更新は、ORゲート38の機能により起
動トリガ信号36またはアドレス更新信号23が1′″
の時、加算が実行され、線21を介して主記憶装置10
に送出される。
語で構成されており、次の要素のアドレス計算のために
、+2を片側入力とする加算器31が使用される。アド
レスレジスタの更新は、ORゲート38の機能により起
動トリガ信号36またはアドレス更新信号23が1′″
の時、加算が実行され、線21を介して主記憶装置10
に送出される。
オペランドカウンタ34は、残りベクトルオペランド要
素数を格納しており、零検出器33は残り要素数が10
”になったサイクルに、終了信号22を命令制御回路1
1に対し送出する。−1を片側入力とする加算器32は
、残り要素数を1つづつ減算するために使用され、アド
レス更新信号23が1°′の時、オペランドカウンタ3
4が更新さ木る。
素数を格納しており、零検出器33は残り要素数が10
”になったサイクルに、終了信号22を命令制御回路1
1に対し送出する。−1を片側入力とする加算器32は
、残り要素数を1つづつ減算するために使用され、アド
レス更新信号23が1°′の時、オペランドカウンタ3
4が更新さ木る。
゛ 第4図は、第1図における判定回路の真理値を示す
図である。真理値テーブル40の左側は入力条件、右側
は出力値である。1行は、1つの入力条件と対応する出
力値を示す、テーブルの列41〜44が入力条件であり
1列45〜48が出力である。
図である。真理値テーブル40の左側は入力条件、右側
は出力値である。1行は、1つの入力条件と対応する出
力値を示す、テーブルの列41〜44が入力条件であり
1列45〜48が出力である。
列41は、第1図における命令制御回路11より信号、
lX13を経由して入力される演算命令の種類を示す信
号であり、本実施例ではdifference、uni
on、joinの3種がある。列42,43.44は、
比較回路60より入力される信号であり、第2オペラン
ドデータレジスタ(OF2)と第3オペランドデータレ
ジスタ(OF2)の後半部分の比較結果、すなわち、前
者が後者より″小It、11等u、11大″とにそれぞ
れ対応している。例外として、片側のベクトルオペラン
ド要素が尺きた時は、尽きた側を゛大きい″と見なす。
lX13を経由して入力される演算命令の種類を示す信
号であり、本実施例ではdifference、uni
on、joinの3種がある。列42,43.44は、
比較回路60より入力される信号であり、第2オペラン
ドデータレジスタ(OF2)と第3オペランドデータレ
ジスタ(OF2)の後半部分の比較結果、すなわち、前
者が後者より″小It、11等u、11大″とにそれぞ
れ対応している。例外として、片側のベクトルオペラン
ド要素が尺きた時は、尽きた側を゛大きい″と見なす。
ベクトルオペランド要素が尽きたか否かは、第1図には
示されていないが、各−オペランド制御回路30a、3
0b中のオペラン・°、λドカウンタの零検出回路33
の出力信号22a。
示されていないが、各−オペランド制御回路30a、3
0b中のオペラン・°、λドカウンタの零検出回路33
の出力信号22a。
22bから判定することができる。例えば、列42がu
1″′のときには、第2オペランドデータレジスタ(
OF2)の後半部の内容が第3オペランドデータレジス
タ(OF2)より小さいか、または第3オペランドデー
タレジスタ(OF3)側のベクトル要素が尽きている条
件が成立していることを示す。
1″′のときには、第2オペランドデータレジスタ(
OF2)の後半部の内容が第3オペランドデータレジス
タ(OF2)より小さいか、または第3オペランドデー
タレジスタ(OF3)側のベクトル要素が尽きている条
件が成立していることを示す。
同じようにして、列439列44がII I 11のと
きには、第2オペランドデータレジスタ(OF2)と第
3オペランドデータレジスタ(OF2)が等しいこと、
および第2オペランドデータレジスタ(OF2)が第3
オペランドデータレジスタ(OF2)より大きいか、ま
たは第2オペランドデータレジスタ(OF2)が尽きて
いる条件が成立していることを示す。
きには、第2オペランドデータレジスタ(OF2)と第
3オペランドデータレジスタ(OF2)が等しいこと、
および第2オペランドデータレジスタ(OF2)が第3
オペランドデータレジスタ(OF2)より大きいか、ま
たは第2オペランドデータレジスタ(OF2)が尽きて
いる条件が成立していることを示す。
列45は、第1図の選択回路17を制御するための制御
線28の出力値を示している。ここで、11 ##印
は、この入力条件では、選択回路17の出力を主記憶装
置1i10に転送、格納しないことを示す。OF2側、
OF2側は、それぞれ第2オペランドデータレジスタ(
OF2)側を、または第3オペランドデータレジスタ(
OF3)側を選択するように指示する信号を出力するこ
とを意味している。
線28の出力値を示している。ここで、11 ##印
は、この入力条件では、選択回路17の出力を主記憶装
置1i10に転送、格納しないことを示す。OF2側、
OF2側は、それぞれ第2オペランドデータレジスタ(
OF2)側を、または第3オペランドデータレジスタ(
OF3)側を選択するように指示する信号を出力するこ
とを意味している。
列46,47.48は、各オペランドごとの要素アドレ
スの更新と、主記憶に対するオペランドの読出しまたは
選択器出力の格納を指示する3本の信号線23a、23
b、23cの出力値を示す。
スの更新と、主記憶に対するオペランドの読出しまたは
選択器出力の格納を指示する3本の信号線23a、23
b、23cの出力値を示す。
例えば、列46の1′″は、第2オペランドに関して、
第3図のアドレスレジスタ35の更新、オぺランドカウ
ンタ34の更新、および第1図の第2オペランドデータ
レジスタ(OF2)の更新を指示することを示す。
第3図のアドレスレジスタ35の更新、オぺランドカウ
ンタ34の更新、および第1図の第2オペランドデータ
レジスタ(OF2)の更新を指示することを示す。
第5図は、第1図における動作タイムチャートである。
第5図、第1図を参照して、第2図のdifferen
ce演算6を実行するdifference命令を例と
した動作を説明する。
ce演算6を実行するdifference命令を例と
した動作を説明する。
主記憶lO中には、デュアルベクトルl、2゜3の他に
明示されていないが、命令語も格納されている。命令語
には、少なくともdifference 、 uniO
n*joinの3種類があり、命令制御回路11の制:
制御により主記憶lOから読出され・データ線14゛′
を経由して命令語レジスタ50に格納される。
明示されていないが、命令語も格納されている。命令語
には、少なくともdifference 、 uniO
n*joinの3種類があり、命令制御回路11の制:
制御により主記憶lOから読出され・データ線14゛′
を経由して命令語レジスタ50に格納される。
命令語レジスタ50中の命令語は、4つのフィールドか
ら構成されている。最左端のCフィールドは、命令の演
算の種類(例えば、difference命令)を示す
ために使用され、その内容は信号線13を経由して判定
回路61に転送される。その後部のOPI、OF2.O
F2の3フイールドは、それぞれ第1オペランド、第2
オペランド、第3オペランドのベクトルの主記憶上の先
頭要素アドレスと要素数をペアで示すために使用される
。第1図に示されていないが、命令制御回路11は。
ら構成されている。最左端のCフィールドは、命令の演
算の種類(例えば、difference命令)を示す
ために使用され、その内容は信号線13を経由して判定
回路61に転送される。その後部のOPI、OF2.O
F2の3フイールドは、それぞれ第1オペランド、第2
オペランド、第3オペランドのベクトルの主記憶上の先
頭要素アドレスと要素数をペアで示すために使用される
。第1図に示されていないが、命令制御回路11は。
その内容を主記憶からの各オペランドベクトル要素の読
出しまたは格納に先立って、第3図に示す各オペランド
制御回路30a、30b、30c中のアドレスレジスタ
35とオペランドカウンタ34に初期設定し、主記憶に
対して第1番目の要素の読出しを指示する。
出しまたは格納に先立って、第3図に示す各オペランド
制御回路30a、30b、30c中のアドレスレジスタ
35とオペランドカウンタ34に初期設定し、主記憶に
対して第1番目の要素の読出しを指示する。
第1図のベクトル計算機は、ベクトル演算に関して、2
ステージからなる1サイクルピツチのパイプラインにな
っている。第1のステージは、アドレスレジスタ35a
または35bの指定に基づいて主記憶lOよりデュアル
ベクトル1,2の各要素を読出し、第2オペランドデー
タレジスタ(OF2)Igまたは第3オペランドデータ
レジスタ(OF2)19に転送するまでの処理である。
ステージからなる1サイクルピツチのパイプラインにな
っている。第1のステージは、アドレスレジスタ35a
または35bの指定に基づいて主記憶lOよりデュアル
ベクトル1,2の各要素を読出し、第2オペランドデー
タレジスタ(OF2)Igまたは第3オペランドデータ
レジスタ(OF2)19に転送するまでの処理である。
第2のステージは、第2オペランドデータレジスタ(O
F2)18と第3オペランドデータレジスタ(OF2)
19の内容を比較、判定し、判定結果に基づいて、いず
れか片方を選択し、主記憶IOのデュアルベクトル3に
格納するまでである。各レジスタは、サイクルの開始時
点に同期して更新され、主記憶10もサイクルに同期し
て読出され。
F2)18と第3オペランドデータレジスタ(OF2)
19の内容を比較、判定し、判定結果に基づいて、いず
れか片方を選択し、主記憶IOのデュアルベクトル3に
格納するまでである。各レジスタは、サイクルの開始時
点に同期して更新され、主記憶10もサイクルに同期し
て読出され。
更新を1サイクルで実行する。
第5図においては、サイクルごとに主要なレジスタの内
容の変化、および判定回路61の第4図の対応する判定
項目番号を示している。なお、第1図等には、図示され
ていないが、各レジスタは全ての1サイクルピツチの基
本クロックに同期してデータの格納を行う。
容の変化、および判定回路61の第4図の対応する判定
項目番号を示している。なお、第1図等には、図示され
ていないが、各レジスタは全ての1サイクルピツチの基
本クロックに同期してデータの格納を行う。
τ、X\8命令制御回路11は、前述のアドレスレジス
タ]35a、35b、35c、およびオペランドカウン
タ34a、34b、34cの初期設定に引続いて、第1
サイクルとして1サイクルの起動1−リガ信号を信号線
12に出力すると、次の第2サイクルの開始時点では、
第2オペランドデータレジスタ(OF2)18および第
3オペランドデータレジスタ(OF2)19には、デー
タ線20aおよび20b上に主記憶10から転送されて
いる先頭要素の内容、すなわち(−,1)と(mt+1
)が格納される。ここで、(a、b)は要素の内容の前
半がa。
タ]35a、35b、35c、およびオペランドカウン
タ34a、34b、34cの初期設定に引続いて、第1
サイクルとして1サイクルの起動1−リガ信号を信号線
12に出力すると、次の第2サイクルの開始時点では、
第2オペランドデータレジスタ(OF2)18および第
3オペランドデータレジスタ(OF2)19には、デー
タ線20aおよび20b上に主記憶10から転送されて
いる先頭要素の内容、すなわち(−,1)と(mt+1
)が格納される。ここで、(a、b)は要素の内容の前
半がa。
後半がbであることを示す。同時に、第3図のアドレス
レジスタ35a、35bには2番目の要素アドレスが格
納され、第2番目の要素の読出しを指示し、オペランド
カウンタ34a、34bは、それぞれ“5″とII 4
1#のままである。
レジスタ35a、35bには2番目の要素アドレスが格
納され、第2番目の要素の読出しを指示し、オペランド
カウンタ34a、34bは、それぞれ“5″とII 4
1#のままである。
第2サイクルでは、第2オペランドデータレジスタ(O
F2)18と第3オペランドデータレジスタ(OF3)
の後半部は、ともにII 111であるため、−61°
”“f411i@(7)48”′。”91”1を立した
ことを検出し、信号B 23 aのみをII 1 yB
と九で1次の第3サイクル開始時における第2オペラン
ド側のみの更新を指示する。また、主記憶10への格納
は指示しない。
F2)18と第3オペランドデータレジスタ(OF3)
の後半部は、ともにII 111であるため、−61°
”“f411i@(7)48”′。”91”1を立した
ことを検出し、信号B 23 aのみをII 1 yB
と九で1次の第3サイクル開始時における第2オペラン
ド側のみの更新を指示する。また、主記憶10への格納
は指示しない。
次の第3サイクルの先頭では、前述の信号線23aの指
示により第2オペランドに関するレジスタのみが更新さ
れる。すなわち、ORゲート15を経由した制御信号に
より第2オペランドデータレジスタ(OF2)18は第
2要素の内容である(−,2)に更新され、第3図のア
ドレスレジスタ35aの内容は第3要素を読出すために
第3要素アドレスに更新され、オペランドカウンタ34
aも1り4″に減少される・ 第3サイクルでは、第4図の項番#3の条件が成立する
ので1判定回路61は信号線23bのみを1”として、
今度は第3オペランド側のみの更新を指示する。このサ
イクルでも、主記憶10への格納は指示しない。
示により第2オペランドに関するレジスタのみが更新さ
れる。すなわち、ORゲート15を経由した制御信号に
より第2オペランドデータレジスタ(OF2)18は第
2要素の内容である(−,2)に更新され、第3図のア
ドレスレジスタ35aの内容は第3要素を読出すために
第3要素アドレスに更新され、オペランドカウンタ34
aも1り4″に減少される・ 第3サイクルでは、第4図の項番#3の条件が成立する
ので1判定回路61は信号線23bのみを1”として、
今度は第3オペランド側のみの更新を指示する。このサ
イクルでも、主記憶10への格納は指示しない。
次の第4サイクルの先頭では、信号線23bの、4指示
により、第3オペランドに関するレジスタの・) 丑みが更新される。すなわち、ORゲート16を経;′ 由した制御信号により、第3オペランドデータレジスタ
(OF3)19は第2サイクルから引続いて主記憶10
より読出されている第2要素の内容である(ma*3)
に更新され、第3図のアドレスレジスタ35bの内容は
、第3要素アドレスに更新され、オペランドカウンタ3
4bは、93″に減少される。
により、第3オペランドに関するレジスタの・) 丑みが更新される。すなわち、ORゲート16を経;′ 由した制御信号により、第3オペランドデータレジスタ
(OF3)19は第2サイクルから引続いて主記憶10
より読出されている第2要素の内容である(ma*3)
に更新され、第3図のアドレスレジスタ35bの内容は
、第3要素アドレスに更新され、オペランドカウンタ3
4bは、93″に減少される。
第4サイクルでは、(−,2)と(m3+3)の後半部
を比較するので、第4図の項番#1の条件が成立する。
を比較するので、第4図の項番#1の条件が成立する。
従って、選択器17は第2オペランドデータレジスタ(
OF2)18の内容を選択し、主記憶10に書込みデー
タとして転送する。そして、主記憶lO中のデュアルベ
クトル3の第1要素に(−,2)が書込まれる。また、
第1オペランドおよび第2オペランドに関係するレジス
タの更新が信号線23c、23aを経由して指示される
。
OF2)18の内容を選択し、主記憶10に書込みデー
タとして転送する。そして、主記憶lO中のデュアルベ
クトル3の第1要素に(−,2)が書込まれる。また、
第1オペランドおよび第2オペランドに関係するレジス
タの更新が信号線23c、23aを経由して指示される
。
以下、第5サイクルでは、(−,5)と(m3゜3)を
比較し、第4図の項番#3が成立するので、較し、第4
図の項番#2が成立し、第2オペランド関係のレジスタ
の更新が指示される。
比較し、第4図の項番#3が成立するので、較し、第4
図の項番#2が成立し、第2オペランド関係のレジスタ
の更新が指示される。
第7サイクルでは、(−,7)と(ms+5)を比較し
、第4図の項番#3が成立し、第3オペランド関係のレ
ジスタの更新が指示される。
、第4図の項番#3が成立し、第3オペランド関係のレ
ジスタの更新が指示される。
第8サイクルでは、(−,7)と(m717)を比較し
、第4図の項番#2が成立し、第2オペランド関係のレ
ジスタ更新が指示される。
、第4図の項番#2が成立し、第2オペランド関係のレ
ジスタ更新が指示される。
第9サイクルでは、(−,8)と(m7 + 7)を比
較し、項番#3が成立し、第3オペランド関係のレジス
タ更新が指示される。
較し、項番#3が成立し、第3オペランド関係のレジス
タ更新が指示される。
第10サイクルでは、第2オペランドデータレジスタ(
OF2)18の内容は(−,8)であるが、第3オペラ
ンドデータレジスタ(OF2)19の側は第3オペラン
ドの要素が尽きた(終了した)状態となっている。従っ
て、第4図の項番#1が成立し、第2オペランドデータ
レジスタ(OF2)18の内容が主記憶10中のデュア
ルベクトル3の第゛・2要素として書込まれる。
OF2)18の内容は(−,8)であるが、第3オペラ
ンドデータレジスタ(OF2)19の側は第3オペラン
ドの要素が尽きた(終了した)状態となっている。従っ
て、第4図の項番#1が成立し、第2オペランドデータ
レジスタ(OF2)18の内容が主記憶10中のデュア
ルベクトル3の第゛・2要素として書込まれる。
゛゛第11サイクルでは、信号線22aを経由して。
゛命令制御回路11に第2オペランドベクトルの全ての
要素が読出されたこと、すなわち尽きたことが報告され
、命令の処理が完了する。
要素が読出されたこと、すなわち尽きたことが報告され
、命令の処理が完了する。
このように、d 1fference命令は、大兄、第
2オペランドと第3オペランドの要素数の和に等してサ
イクル数で実行することが可能である。これは、■サイ
クルピッチの比較動作をパイプラインにより休みなく実
行しているためである。
2オペランドと第3オペランドの要素数の和に等してサ
イクル数で実行することが可能である。これは、■サイ
クルピッチの比較動作をパイプラインにより休みなく実
行しているためである。
また、u n1on命令、 join命令についても、
同じように第4図の真理値表に基づいて実行される。
同じように第4図の真理値表に基づいて実行される。
ただし、命令の終了条件が多少異なる。d 1ffer
enc6命令の終了条件は、信号線22aが1″または
信号線22cがII 1 ′1、すなわち、゛1第2オ
ペランドが終了″°、またはパ第1オペランドが満杯″
である。
enc6命令の終了条件は、信号線22aが1″または
信号線22cがII 1 ′1、すなわち、゛1第2オ
ペランドが終了″°、またはパ第1オペランドが満杯″
である。
union命令の終了条件は、信号R22aと22bが
、ともに11”または信号線22cが11111、すな
わち、″第1オペランドが満杯″である。
、ともに11”または信号線22cが11111、すな
わち、″第1オペランドが満杯″である。
゛Hjoin命令の終了条件は、信号線22aと2’2
bgの少なくとも一方がビ、または信号!f22 cが
1″′、すなわち“第2と第3オペランドの少なくとも
一方が終了′″、または′第】オペランドが満杯″であ
る。
bgの少なくとも一方がビ、または信号!f22 cが
1″′、すなわち“第2と第3オペランドの少なくとも
一方が終了′″、または′第】オペランドが満杯″であ
る。
union命令、join命令の処理時間も、d 1f
fererlce命令と同じように、大兄、第2オペラ
ンドと第3オペランドの要素数の和に等しいサイクル数
になる。
fererlce命令と同じように、大兄、第2オペラ
ンドと第3オペランドの要素数の和に等しいサイクル数
になる。
なお、実施例では、デュアルベクトルは主記憶装置10
中に格納されているが、別の記憶装置、例えばベクトル
レジスタに格納されていてもよい。
中に格納されているが、別の記憶装置、例えばベクトル
レジスタに格納されていてもよい。
第2図に示すデュアルベクトルの例では、データブロッ
ク番号に同一値を持つ要素が複数ある場合、すなわち1
重複する場合を含んでいない。しかし、以上に示した実
施例では、join命令において、左側ベクトル(第2
オペランドベクトル)にn個の条件に合う重複する要素
があった場合にも、正しくn個の重複した要素を出力す
ることができ二左右両ベクトルに重複する要素があって
もよい。
ク番号に同一値を持つ要素が複数ある場合、すなわち1
重複する場合を含んでいない。しかし、以上に示した実
施例では、join命令において、左側ベクトル(第2
オペランドベクトル)にn個の条件に合う重複する要素
があった場合にも、正しくn個の重複した要素を出力す
ることができ二左右両ベクトルに重複する要素があって
もよい。
本実施例においては、前述のように、d 1ffere
nce、 union、 joinの各演算は、入力と
なる要素当り約1サイクルの演算時間しか要しない。こ
れを通常の非ベクトル命令(スカラ命令)を用いて実行
すると、各オペランドの読出し、比較判定、オペランド
アドレスの更新、終了条件判定等を要素ごとに少なくと
も5命令、5サイクル以上を必要とする。従って、本実
施例では、5倍以上の高速化が可能であり、d 1ff
erence、union、 joinのオペランドご
とに要素番号の異なるベクトル要素間の演算に適用でき
る。また、第2図において、difference演算
の出力要素数が少ない場合には、アドレス変換の所要時
間は、入力となるアドレス変換したいデータブロック数
をX、主記憶10上に格納されているデータブロック数
をyとすると、(x+y)*2サイクルで実行できる。
nce、 union、 joinの各演算は、入力と
なる要素当り約1サイクルの演算時間しか要しない。こ
れを通常の非ベクトル命令(スカラ命令)を用いて実行
すると、各オペランドの読出し、比較判定、オペランド
アドレスの更新、終了条件判定等を要素ごとに少なくと
も5命令、5サイクル以上を必要とする。従って、本実
施例では、5倍以上の高速化が可能であり、d 1ff
erence、union、 joinのオペランドご
とに要素番号の異なるベクトル要素間の演算に適用でき
る。また、第2図において、difference演算
の出力要素数が少ない場合には、アドレス変換の所要時
間は、入力となるアドレス変換したいデータブロック数
をX、主記憶10上に格納されているデータブロック数
をyとすると、(x+y)*2サイクルで実行できる。
それに対して、前述の特開昭57−169983号公報
に記載されているような従来の1要素ごとにアドレス変
換を行う方法では、前述のように、(x*y)に比例し
た処理時間を要している。
に記載されているような従来の1要素ごとにアドレス変
換を行う方法では、前述のように、(x*y)に比例し
た処理時間を要している。
(′、アドレス変換のためだけに、データブロック番゛
1、5′ ム゛号順にソートする必要がある場合にも、ソート処理
にはxffogxに比例した実行時間で完了するアルゴ
リズム例えばマージソート法等が知られている。本実施
例に示したunion命令は、マージソート法における
マージ処理にそのまま適用できる。
1、5′ ム゛号順にソートする必要がある場合にも、ソート処理
にはxffogxに比例した実行時間で完了するアルゴ
リズム例えばマージソート法等が知られている。本実施
例に示したunion命令は、マージソート法における
マージ処理にそのまま適用できる。
本実施例では、第1図に示した1個のベクトル演算装置
を、命令語の指示により、集合和(uni。
を、命令語の指示により、集合和(uni。
n)、集合差(ti 1fference)、集合積(
join)のいずれかを実行するように切換える場合を
示したが。
join)のいずれかを実行するように切換える場合を
示したが。
それぞれ専用のベクトル演算装置を用意し、並列に動作
させれば、さらに高速化できることは勿論である。
させれば、さらに高速化できることは勿論である。
以上説明したように、本発明によれば、■サイクルピッ
チのパイプラインによるマージ手順に基づくベクトル集
合演算が実現できるので、多数のデータブロックアドレ
ス変換要求と、多数の読込みデータブロックに対しても
、データブロック数のオーダに比例した高速なアドレス
変換が可能にt+;’+。
チのパイプラインによるマージ手順に基づくベクトル集
合演算が実現できるので、多数のデータブロックアドレ
ス変換要求と、多数の読込みデータブロックに対しても
、データブロック数のオーダに比例した高速なアドレス
変換が可能にt+;’+。
−7−°なる。
第1図は本発明の一実施例を示すベクトル計算機のブロ
ック図、第2図は本発明の基本原理を示すベクトル方式
のアドレス変換の手順説明図、第3図は第1図における
オペランド制御回路の構成図、第4図は第1図における
判定回路の真理値テーブルの図、第5図は第1図におけ
る動作タイムチャートである。 10:主記憶装置、11:命令制御回路、17:選択回
路、18:第2オペランドデータレジスタ、19:第3
オペランドデータレジスタ、30a:第2オペランド制
御回路、30b=第3オペランド制御回路、30c:第
1オペランド制御回路、31.32:加算器、34:オ
ペランドベクトル要素カウンタ、35:オペランドベク
トル要素のアドレスレジスタ、60:比較回路、61:
判定回路。 第 3 図
ック図、第2図は本発明の基本原理を示すベクトル方式
のアドレス変換の手順説明図、第3図は第1図における
オペランド制御回路の構成図、第4図は第1図における
判定回路の真理値テーブルの図、第5図は第1図におけ
る動作タイムチャートである。 10:主記憶装置、11:命令制御回路、17:選択回
路、18:第2オペランドデータレジスタ、19:第3
オペランドデータレジスタ、30a:第2オペランド制
御回路、30b=第3オペランド制御回路、30c:第
1オペランド制御回路、31.32:加算器、34:オ
ペランドベクトル要素カウンタ、35:オペランドベク
トル要素のアドレスレジスタ、60:比較回路、61:
判定回路。 第 3 図
Claims (3)
- (1)外部記憶上のデータブロックを主記憶上の任意の
エリアに読込んだ後、ソートされた複数のデータブロッ
ク番号を格納したベクトルを入力して、対応する読込ま
れた主記憶エリアの各アドレスの一覧ベクトルに変換し
て出力するベクトル計算機において、ソートされた2つ
のベクトルの集合差を求める手段と、ソートされた2つ
のベクトルの集合和を求める手段と、ソートされた2つ
のベクトルの集合和を求める手段と、主記憶に読込み済
みのデータブロックに対しブロック番号順にソートされ
たエリア管理ベクトル格納手段とを有し、上記エリア管
理ベクトルと入力データブロック番号ベクトルとの集合
差を求めて、主記憶に新たに読込むべきデータブロック
番号ベクトルを求め、外部記憶より対応するデータブロ
ックを読込み、上記新しく読込んだデータブロック番号
ベクトルと上記エリア管理ベクトルとの集合和を求めて
、上記エリア管理ベクトルの更新を行い、更新されたエ
リア管理ベクトルと上記入力データブロック順序番号の
集合積を求めて、アドレス変換出力ベクトルを発生する
ことを特徴とするベクトル計算機。 - (2)外部記憶上のデータブロックを主記憶上の任意の
エリアに読込んだ後、ソートされた複数のデータブロッ
ク番号を格納したベクトルを入力して、対応する読込ま
れた主記憶エリアの各アドレスの一覧ベクトルに変換し
て出力するベクトル計算機において、ソートされた2つ
のベクトルの集合差を求める手段と、ソートされた2つ
のベクトルの集合和を求める手段と、ソートされた2つ
のベクトルの集合積を求める手段を共通のベクトル演算
装置で構成し、該ベクトル演算装置は各ベクトルオペラ
ンドごとの要素の読出し、または書込みアドレスを指定
するアドレスレジスタと、読出された2つのオペランド
要素の全部ないし一部を入力とする比較器と、該比較器
の出力に応じて上記読出された2つのオペランド要素の
一方を演算削果として選択することを指示し、各オペラ
ンドごとに上記アドレスレジスタの更新を別個に指示す
る判定回路と、該判定回路の指示により2つのベクトル
の集合差、集合和、あるいは集合積のいずれかを主記憶
にベクトルとして書込む手段とを有することを特徴とす
るベクトル計算機。 - (3)上記判定回路は、上記比較器の出力に応じて、各
オペランドアドレスの更新を指示し、第2オペランドが
小さい場合に、第2オペランド要素の内容を演算結果と
して選択することを特徴とする特許請求の範囲第2項記
載のベクトル計算機。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61002773A JPS62160568A (ja) | 1986-01-09 | 1986-01-09 | ベクトル計算機 |
| US06/888,801 US4839799A (en) | 1985-07-29 | 1986-07-24 | Buffer control method for quickly determining whether a required data block is in the buffer |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61002773A JPS62160568A (ja) | 1986-01-09 | 1986-01-09 | ベクトル計算機 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS62160568A true JPS62160568A (ja) | 1987-07-16 |
Family
ID=11538654
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61002773A Pending JPS62160568A (ja) | 1985-07-29 | 1986-01-09 | ベクトル計算機 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS62160568A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5438579A (en) * | 1992-12-18 | 1995-08-01 | Olympus Optical Co., Ltd. | Wavelength stabilizing apparatus |
-
1986
- 1986-01-09 JP JP61002773A patent/JPS62160568A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5438579A (en) * | 1992-12-18 | 1995-08-01 | Olympus Optical Co., Ltd. | Wavelength stabilizing apparatus |
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 | |
| EP0378830B1 (en) | Method and apparatus for handling multiple condition codes as for a parallel pipeline computer | |
| Emam et al. | The architectural features and implementation techniques of the multicell CASSM | |
| KR0133238B1 (ko) | 컴퓨터 프로세싱 시스템 및 인스트럭션 실행방법 | |
| KR100346515B1 (ko) | 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일 | |
| JPH04245540A (ja) | 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム | |
| US7308559B2 (en) | Digital signal processor with cascaded SIMD organization | |
| Pease | Organization of large scale Fourier processors | |
| US3470540A (en) | Multiprocessing computer system with special instruction sequencing | |
| US5053986A (en) | Circuit for preservation of sign information in operations for comparison of the absolute value of operands | |
| US5119324A (en) | Apparatus and method for performing arithmetic functions in a computer system | |
| US4823258A (en) | Index limited continuous operation vector processor | |
| JPH07104784B2 (ja) | デジタルデータ処理装置 | |
| US3297997A (en) | List control | |
| US3001708A (en) | Central control circuit for computers | |
| JPS623461B2 (ja) | ||
| JPS62160568A (ja) | ベクトル計算機 | |
| Hollaar | Specialized merge processor networks for combining sorted lists | |
| US4839799A (en) | Buffer control method for quickly determining whether a required data block is in the buffer | |
| US8332447B2 (en) | Systems and methods for performing fixed-point fractional multiplication operations in a SIMD processor | |
| JP3175768B2 (ja) | 複合型命令スケジューリング処理装置 | |
| US3383661A (en) | Arrangement for generating permutations | |
| Dugan et al. | A study of the utility of associative memory processors | |
| Davis | Application of the massively parallel processor to database management systems | |
| Pramanik et al. | A hardware pattern matching algorithm on a dataflow |