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

ベクトル処理装置

Info

Publication number
JPH0786875B2
JPH0786875B2 JP59104543A JP10454384A JPH0786875B2 JP H0786875 B2 JPH0786875 B2 JP H0786875B2 JP 59104543 A JP59104543 A JP 59104543A JP 10454384 A JP10454384 A JP 10454384A JP H0786875 B2 JPH0786875 B2 JP H0786875B2
Authority
JP
Japan
Prior art keywords
vector
vector element
sequence
comparison
element group
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
JP59104543A
Other languages
English (en)
Other versions
JPS61210478A (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 JP59104543A priority Critical patent/JPH0786875B2/ja
Priority to US06/737,686 priority patent/US4723206A/en
Priority to DE8585106449T priority patent/DE3587098D1/de
Priority to EP85106449A priority patent/EP0163279B1/en
Publication of JPS61210478A publication Critical patent/JPS61210478A/ja
Publication of JPH0786875B2 publication Critical patent/JPH0786875B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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

Landscapes

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はベクトル処理装置に係わり、特に数値データ処
理のみならず文字列などの記号処理にも好適なベクトル
処理装置に関する。
〔発明の背景〕
近年のスーパ・コンピュータの発達により、ベクトル処
理による高速化の効果が広く知られてきている。しか
し、このベクトル処理を文字列データの処理等の記号処
理に適用しようとした場合には次のような問題点があ
る。
すなわち従来のベクトル処理装置は、主に数値データを
扱うためのものであり、ベクトル要素としては固定長の
何種類かのデータのみを許し、これらに対して同一演算
をくり返すことにより高速化を行なっている。一方文字
列のようなデータは一般に長さが可変長であり、従来の
ベクトル処理装置では効率の良い処理が困難であった。
例えば{“abe",“ft",“abc"“lpi_ck",“abc"}のよ
うな複数の単語列のなかからキーワード“abc"と一致す
るものをすべて見つけ出す一致単語探索処理を考える。
第1図に示すように、従来のベクトル処理装置(例え
ば、特開昭53−87640号)は単語探索を行なう場合、例
えば単語列の中で最も長い単語が格納できるだけの要素
長をもったベクトル要素格納域群1004を用意して各単語
を一つのベクトル要素として各領域に格納し、このベク
トル要素格納域群1004の各要素とキーワード1003とを次
々と比較して比較結果のベクトル1005を作るといった方
法が考えられる。
しかし、第1図のような処理方法では、単語の長さにば
らつきが多い場合にベクトル要素格納域群1004の中の無
駄な領域が多くなる。
上記欠点を解決するためには第2図に示すようなベクト
ル処理方式をソフトウェア的に行なうことが考えられ
る。すなわち、単語列中の各単語の構成文字をならべた
演算対象ベクトル1007と、各単語(すなわち部分ベクト
ル)の長さを格納したベクトル1006を用意する。そして
ベクトル1007とキーワードの各文字を格納したベクトル
1008を、ベクトル1006の対応する要素が示す回数だけソ
フトウェアより順次比較して探索結果ベクトル1009を得
る。例えばベクトル1006の先頭要素は“3"なので、ベク
トル1007とベクトル1008の先頭から3個のベクトル要素
を比較する。この結果は3番目の文字が一致しないので
ベクトル1009に“0"を格納するといった手順で探索を進
める。
この第2図に示した方式では格納領域の無駄は無く、か
つ各ベクトル要素も固定長で良い。しかしながらこの方
式も従来のベクトル計算機を用いて処理する場合は効率
の良い処理が困難である。以下その理由を第3図を用い
て説明する。
第3図は第2図に示した文字列探索処理方式の概略の手
続きをPAD(Program Analysis Diagram)で表現したも
のである。このPAD図より明らかなように第2図のソフ
トウェアによる文字列探索処理は単語の中の各文字を比
較する内側のループ1102と、単語列の中の各単語を処理
する外側のループ1101から成っている。しかも単語を構
成する文字数は単語毎に可変であるので、内側ループ11
02のループ回数は毎回同一とは限らず、一般に毎回異な
ることが多い。一方、従来のベクトル計算機のベクトル
命令は処理するベクトル長を命令開始時にセットアップ
してその長さの回数だけループすることによりベクトル
処理を行なうものである。このため第3図のような2重
ループは従来のベクトル計算機では内側のループ1102を
ベクトル命令で処理し、1つの単語の処理が終わる毎に
ベクトル長をスカラ命令でセットし直すことによりベク
トル命令の適用をはかれる。しかし内側のループ1102は
ループ回数すなわちベクトル長が短かい。良く知られて
いるようにベクトル命令は一般に起動と終了に時間がか
かる為、ベクトル長が短い場合には十分な性能が発揮で
きない。従って前述のように内側のループ1102のみにベ
クトル命令を適用しても全体として大きな性能向上が期
待できない。
このように、従来のベクトル計算機を文字列探索のよう
な記号処理に適用しようとした場合、第1図のような方
式ではベクトル長は長くとれ処理速度は高くできるが領
域の無駄や単語長に制約が生ずる等の欠点があり、かと
いって第2図のような方式を従来の構成のベクトル計算
機を使って処理してもベクトル長が短かくなって処理性
能が低下するという問題がある。
〔発明の目的〕
本願発明の目的は、数値データのような固定長データ列
のみならず、文字列データのような可変長データ列に対
しても、少ない記憶領域で、ベクトル長の長い効率的な
ベクトル処理を行なえるベクトル処理装置を提供するこ
とである。
〔発明の概要〕
本願発明では、処理すべきデータ列を構成する各データ
をベクトル要素群とし、各データを構成する最小単位
(ベクトル要素群が「単語」の場合はその単語を構成す
る各「文字」)をベクトル要素とする第1のベクトル
列、および第1のベクトル列と比較演算される対象であ
る第3のベクトル列を予め形成するとともに、第1のベ
クトル列のベクトル要素群とベクトル要素群との区切り
位置を示すデータをベクトル要素とする第2のベクトル
列を形成し、これらのベクトル列を別々に記憶する記憶
手段を設ける。また、第1のベクトル列の要素と第3の
ベクトル列の要素とを比較演算する演算手段、および比
較演算実行中のベクトル要素がベクトル要素群の最後の
要素、すなわち区切りの直前の要素であるか否かを判別
し、判別結果に基づいて、そのベクトル要素群について
の比較演算を続行させるか次のベクトル要素についての
比較演算に移行させるかを制御する制御手段を設ける。
具体的には、複数のベクトル列間のベクトル演算を行な
うベクトル処理装置において、複数のベクトル要素から
なる第1のベクトル列と、前記第1のベクトル列を構成
する複数のベクトル要素群の区切りを表す第2のベクト
ル列と、前記第1のベクトル列と比較演算される対象で
ある第3のベクトル列とを少なくとも記憶する記憶手段
と、前記第1のベクトル列のベクトル要素と該ベクトル
要素に対応する前記第3のベクトル列のベクトル要素と
の比較演算を行なう演算手段と、前記第1のベクトル列
のベクトル要素および該ベクトル要素に対応する前記第
3のベクトル列のベクトル要素を前記記憶手段から順次
読み出して前記演算手段に供給し前記比較演算をベクト
ル要素群単位で行なわしめるとともに、それと並行し
て、前記第2のベクトル列のベクトル要素に基づき、前
記演算手段で比較演算されている前記第1のベクトル列
のベクトル要素が該ベクトル要素の属するベクトル要素
群の最後のベクトル要素であるか否かを判別し、判別結
果が前記ベクトル要素群の最後のベクトル要素でないと
きは該ベクトル要素群についての前記比較演算を続行さ
せるべく該ベクトル要素の比較演算結果を待ち、判別結
果が前記ベクトル要素群の最後のベクトル要素であると
きは該ベクトル要素群の次のベクトル要素群の先頭ベク
トル要素および前記第3のベクトル列の先頭ベクトル要
素を前記演算手段に供給する制御手段とを有することを
特徴とするベクトル処理装置である。
本願発明では、上記第2のベクトル列により各ベクトル
要素群間の区切り位置が分かるので、処理すべきデータ
列の全要素を一定のアドレス間隔で、しかも連続した1
本のデータ列として記憶手段に記憶させることができ
る。これにより、数値データのような固定長データ列の
みならず、文字列データのような可変長データ列に対し
ても、少ない記憶領域で、ベクトル長の長い効率的なベ
クトル処理を行なうことができる。また、このことは、
データ列の要素データが固定長か可変長かを意識するこ
となくそのデータ列を入力・処理できることをも意味す
る。
〔発明の実施例〕
以下、本発明の一実施例の構成および動作を前述の文字
列探索を具体例として、図に従って説明する。
第4図は本発明のベクトル処理装置の構成を示す図であ
る。
まず第4図を用いて本実施例の構成および動作の概要な
らびに従来例と比較しての特徴を説明する。
主記憶装置101には、単語列の各構成文字を並べたテキ
スト・ベクトル1007と、キーワードの各構成文字を並べ
たキー・ベクトル1008とともに各単語(すなわち部分ベ
クトル)の長さを示す区切り情報ベクトル1006が格納さ
れている。
命令制御回路115が主記憶装置101から読み出した文字列
探索命令をデコードすると、演算制御回路110に文字列
探索処理の開始を指示する。演算制御回路110は主記憶
装置101からテキスト・ベクトル1007の各要素とキー・
ベクトル1008の各要素を順次読み出す。読み出されたベ
クトル要素は比較器106に送られて比較される。この比
較と並行して、区切り情報ベクトル1006の要素は区切り
判定回路105に送られる。区切り判定回路105は処理単語
列の区切りであるか否か、即ち比較器106において現在
比較中のベクトル要素が単語の最後の構成文字かどうか
を調べる。比較結果109および区切り判定結果107は演算
制御回路110に送られる。演算制御回路110はこれらの比
較判定結果をもとに文字列探索の状態を調べ、単語とキ
ーワードの一致/不一致が判明した時には探索結果ベク
トル1009の対応する要素にそれぞれ“1"または“0"を書
き込むとともに次にとるべき動作を決定し、各部に動作
指示を行なう。
例えば、テキスト・ベクトル1007の第1要素“a"とキー
・ベクトル1008の第1要素“a"とを比較器106で比較す
ると一致しており、かつ、これらの文字は単語列の区切
りにはないことが区切り判定回路105より知らされる。
そこで演算制御回路110は引き続いて第2番目ベクトル
要素の読み出しと比較を指示する。次の文字もともに
“b"で一致するので同様に次の文字“e"と“c"とを比較
する。この比較の結果は不一致でありかつ区切り判定回
路105は“e"がこの単語の最終の文字であることを検出
しているので、演算制御回路110は、最初の単語がキー
ワードとの不一致を示すデータ“0"を信号線116を介し
て探索結果ベクトル1009の第1要素として格納するとと
もに次の単語とキーワードとの比較を開始する。即ち結
果の格納と次要素の読み出しがパイプライン的に並列に
行なわれる。
このように本発明では、区切り判定回路105と演算制御
回路106によって単語列の切れ目であっても処理が途切
れることなくパイプライン処理が行なわれる。
従来のベクトル計算機ではベクトル中の区切り位置を検
出する手段を有していないので、1つの文字列探索命令
では1単語とキーワードとの比較しか行なうことができ
ない。すなわち第3図の内側ループのみしかベクトルと
して処理できなかった。従ってこの例ではテキスト・ベ
クトル長がそれぞれ“3",“2",“3",“5",“3"の探索命
令を5回起動する必要があった。一方本実施例ではテキ
ストベクトル長が3+2+3+5+3=16の探索命令を
1個だけ起動すれば良い。すなわち第3図の2重ループ
全体を1つのベクトル・オペランドとして処理できる。
この結果、演算の起動/終了のオーバヘッドやベクトル
のパイプライン処理の途切れによるオーバヘッドが従来
に比べて少なく高速性を保証できる。
以上、本実施例の構成および動作の概要を説明した。
以下では、本実施例の詳細な構成および動作を図に従っ
て説明する。
第5図は第4図図示の命令制御回路115の主要部の構成
を示す図である。
文字列探索命令が命令レジスタ208にセットされ、その
命令コード200が命令デコーダ203によってデコードされ
ると、前記命令のR1フィールド201およびR2フィールド2
02で指定された番号に基づき、汎用レジスタ群207中の
番号R1〜R1+3およびR2〜R2+3の汎用レジスタの値が
セットアップデータとしてセレクタ206およびデータ線1
13を介して演算制御回路110に送られる。第5図に示す
ようにR1フィールド201で指定される4本のレジスタGPR
(R1)〜GPR(R+3)には、それぞれ区切り情報ベク
トル1006,テキスト・ベクトル1007,キー・ベクトル100
8,および探索結果ベクトル1009の各ベクトルの先頭要素
のアドレスが格納されている。また、R2フィールド202
で指定される4本のレジスタGPR(R2)〜GPR(R2+3)
には前記各ベクトルの最後の要素のアドレスが格納され
ている。これらのセットアップデータの送出が完了する
と、命令デコーダより演算開始指示信号113cが演算制御
回路110に送られる。
第6図は第4図図示の演算制御回路110の構成を示す図
である。演算制御回路110は大きく分けてオペランド制
御回路301と次動作決定論理302の2つから成っている。
オペランド制御回路では各ベクトル・オペランド1006〜
1009の要素アドレスの管理が行なわれる。また次動作決
定論理302は、各ベクトル・オペランドのアドレスの状
態(最後アドレスか否か)や区切り判定結果107bおよび
テキストとキーワードの文字や比較結果109等から次の
動作を決定し各回路へ次動作の指示を送る論理である。
命令制御回路115は前記命令のR1フィールド201が指定す
る4本の汎用レジスタに格納されたベクトル・オペラン
ドの開始アドレスをデータ線113aを介してアドレスレジ
スタ303〜306にセットアップする。またR2フィールド20
2が指定する4本の汎用レジスタに格納されたベクトル
・オペランドの最後アドレスをデータ線113bを介してレ
ジスタ307〜310にセットアップする。
命令制御回路115は演算制御回路110のセットアップを終
えると、演算開始指示信号STRT113cによって文字列探索
演算の開始を指示する。指示を受けた次動作決定論理30
2はまず、各入力ベクトル・オペランド1006〜1008の要
素アドレスを保持しているレジスタ303〜305の内容に従
って各ベクトル要素を読み出す。読み出されたデータの
うち、区切り情報ベクトル1006の要素はデータ線102を
介して区切り判定回路105に送られ、テキスト・ベクト
ル1007およびキー・ベクトル1008の要素はそれぞれデー
タ線103および104を介して比較器106に送られる。
第7図は第4図図示の区切り判定回路105の構成を示す
図である。データ線102から読み出された区切り情報ベ
クトル1006の要素は部分ベクトル長レジスタ401にセッ
トされる。区切り判定回路105は単語とキーワードとの
比較がおのおの次の文字に進む毎にすなわち単語の最後
の文字に来た時、部分ベクトル長レジスタ401の内容を
加算器402によって−1し、減算結果が“0"になった場
合にはその旨を比較器403によって検出して区切り判定
結果IND107bとして演算制御回路110の次動作決定論理30
2に送出する。
比較器106による単語の文字とキーワードの文字との比
較結果も比較結果DCMP109として次動作決定論理302に送
られる。
次動作決定論理302には、上記の2つの制御信号IND107
b,DCMP109の他に、処理が区切り情報ベクトル1006、テ
キスト・ベクトル1007、キー・ベクトル1008および探索
結果ベクトル1009の最終要素に達したか否かを夫々示す
信号LCMP311,TCMP312,KCMP313およびMCMP314が入力され
る。最終要素に達したか否かは要素アドレスレジスタ30
3〜306の内容と、それぞれ最終アドレスレジスタ307〜3
10の内容とを比較器315〜318で比較することにより判
る。
第8図は第6図図示の次動作決定論理302の動作を示す
真理値表である。
以下第8図を用いて次動作決定論理302の動作を追いな
がら本実施例のベクトル計算機の詳細な動作を説明す
る。
第8図の項番1のケースは、単語とキーワードの中の途
中の文字間の比較を続ける場合を示している。すなわち
入力の状態としては、まず各ベクトル要素のアドレスレ
ジスタ303〜306の値は最終アドレスレジスタ307〜310の
値を超えておらず、特にキーワードに関しては最終の文
字に達していない状態、つまりキー・ベクトルの要素の
アドレスレジスタ305はキー・ベクトルの最終アドレス
より小さい状態となっている(LCMP,TCMP,MCMPの各信号
は“≧”、KCMPは“>”)。項番1のケースはこの時
に、区切り判定回路105の区切り判定結果107bが単語列
の区切りに達していないことを示しており(INDが
“≠”)かつ比較器106による単語の文字とキーワード
の文字との比較結果109が両文字の一致を示している(D
CMPが“=”)場合である。この場合には単語とキーワ
ードの次の文字、すなわちテキスト・ベクトル1007とキ
・ーベクトル1008の次の要素を読み出して比較を行なえ
ば良い。そこで次動作決定論理302は出力として、テキ
スト・ベクトル1007とキー・ベクトル1008の次要素読み
出し要求信号RDTK116eを“1"にセットして主記憶装置10
1に送出するとともに、次の文字へ比較を進める旨を示
す信号NCH108を“1"としてオペランド制御回路301およ
び区切り判定回路105に送る。
信号NCH108を受け取ったオペランド制御回路301は、テ
キスト・ベクトル1007とキー・ベクトル1008の要素アド
レスレジスタ304と305を+1する。この加算は加算器32
5,326で行なう。信号NCH108が“1"となっている時にセ
レクタ323,320,321が右側の信号を選択することにより
レジスタ304,305に加算結果がセットされる(以後本実
施例におけるセレクタは選択信号が“0"の時には左側の
データを、“1"の時には右側のデータを選択するものと
する)。
同時に信号NCH108を受け取った区切り判定回路105は、
部分ベクトル長レジスタ401の内容を−1する。なお、
第8図中の“X"は任意の値を示す。
以上が第8図の真理値表における項番1の動作である。
これは例えば各ベクトルの最初の要素を処理する場合で
ある。具体的にいうとテキスト・ベクトル1007とキー・
ベクトル1008の第1要素はともに“a"で一致し、区切り
情報ベクトル1006の第1要素は“3"であるので区切りで
はないので項番1の条件を満たし信号NCH108が“1"とな
る。この結果、信号NCH108によってテキスト・ベクトル
1007とキー・ベクトル1008のアドレスが更新(+1)さ
れてそれぞれ第2番目の要素が読み出されて比較される
とともに部分ベクトル長レジスタ401の内容が−1され
て“2"となった後再び次動作決定論理302によって次の
動作が指定される。
次に第8図の項番2のケースについて説明する。項番2
のケースは、単語とキーワードが完全に一致したことが
判明した場合を示している。すなわち入力の状態として
はキー・ベクトル1008以外の各ベクトル要素アドレスを
保持するレジスタ303,304,306はそれぞれ最終アドレス
レジスタ307,308,310の値を超えておらず(LCMP,TCMP,M
CMPは“≧”)、かつキーワードと単語の最終に来てい
る(INDは“=”でありかつKCMPも“=”である)時に
その最終の文字が一致している(DCMPが“=”)場合で
ある。この場合には次の単語の処理に移ることを示す制
御信号NWD116iを“1"とするとともに区切り情報ベクト
ル1006の次要素読み出し要求信号RDL116hおよびテキス
ト・ベクトル1007とキー・ベクトル1008の次要素読み出
し要求信号RDTK116eを主記憶装置101に送る。これと並
行して、探索結果を示すデータ信号RES111を“1"として
書き込み要求信号ST116fを主記憶装置101に送り、探索
結果ベクトル1009の要素アドレスレジスタ306が示す位
置に探索結果信号RES111の内容を格納する。上記の様に
項番2のケースでは次の単語の処理に移る。この次の単
語に移る処理を以下に説明する。
まずテキスト・ベクトル1007のアドレスレジスタ304に
は区切り判定回路105からのデータ信号JMP107aの値をセ
レクタ323,加算器325,セレクタ320を介してセットする
(信号NCH108は“0"となっていることに注意)。データ
信号JMP107aは部分ベクトル長レジスタ401の値である
が、このレジスタには単語の処理の最初にその単語の長
さがセットされ、以後項番1で述べたように1文字比較
が進む毎に−1されている。従ってJMP107aの値は常に
単語の中でまだ処理していない文字数を示していること
になるので、アドレスレジスタ304にJMP107aを加算する
ことによりアドレスレジスタ304は次単語の先頭アドレ
スを指す。
次にキー・ベクトル1008の要素アドレスレジスタ305に
はセレクタ321を介してキー・ベクトルの先頭要素のア
ドレスをデータ線113aから再セットする。これによりア
ドレスレジスタ305は再びキーワードの先頭を指す。
一方区切り情報ベクトル1006の要素アドレスレジスタ30
3を次要素を指す様に信号NWD116iにより更新(+1)し
て次要素を読み出し、区切り判定回路105の部分ベクト
ル長レジスタ401にセットする。また探索結果ベクトル1
009の要素アドレスも信号NWD116iにより+1して次の探
索結果の格納に備える。
以上で次単語への移動が完了する。むろん上記の各処理
(レジスタ設定)はすべて並列に行なわれる。
次に第8図の真理値表の項番3の場合について説明す
る。項番3のケースは、単語とキーワードの不一致が検
出された場合を示している。不一致が検出される場合に
は次の3通りが考えられる。
(a)単語長よりキーワード長の方が長かった場合 (b)単語長の方がキーワード長より長かった場合 (c)単語およびキーワード中の対応する文字で不一致
なものが発見された場合上記(a)〜(c)は第8図の
項番3のa〜cに対応している。つまり項番3aではキー
ワードに関しては最後の文字に達していない(KCMP
“>”)が、単語の方では区切りに達している(INDが
“=”)。また、項番3bではキーワードに関しては最後
の文字に達したが(KCMPが“=”)、単語に関しては区
切りに達していない(INDが“≠”)。また、項番3cで
は単語およびキーワード中の位置に関係なく対応する文
字の不一致が検出されている(DCMPが“≠”)。これら
の場合には、探索結果信号RES111を“0"として書き込み
要求信号ST116fとともに主記憶装置101に送り、探索結
果ベクトル1009の要素アドレスレジスタ306が示す位置
に探索結果信号RES111の値を格納する。この書き込み動
作を並行して項番2のケースと同様、信号NWD116i、信
号RDL116h、および信号RDTK116eを“1"として次単語の
処理に移る。
項番4のケースは、いずれかのベクトル未処理要素が尽
きた場合を示している。すなわち、ベクトル要素アドレ
スを保持するレジスタ303,304,306のうち、少なくとも
一つが対応する最終アドレスレジスタ307,308,310の値
を超えた(LCMP,TCMP,MCMPのうち少なくとも1つが
“<”である)場合である。この場合には文字列探索演
算は終了し命令制御回路115は信号END116jに応答して次
命令のデコードを開始する。
上述の演算制御回路110の動作により、あたかも比較器1
06には入力線103を介して第9図に示すようなベクトル2
007が、入力線104を介してベクトル2008が要素毎に順次
入力されるように見える。
以上、第8図に示した次動作決定論理の動作を中心に、
本実施例のベクトル計算機による文字列探索処理動作を
説明した。このように、本実施例では、区切り判定回路
105およびその判定結果を反映した次動作決定論理302に
よる制御により複数の単語を結合したベクトル(テキス
ト・ベクトル1007)をベクトル・オペランドとすること
が可能であり、従来のベクトル計算機に比べてベクトル
長を長くすることができる。
なお上述の実施例の動作を説明するために、文字列探索
の例を挙げたが、本発明はこれに限定されるものではな
い。例えば数値ベクトルのような固定長データを要素と
するベクトルは要素データ長の変動が0である可変長デ
ータベクトル、すなわち可変長データベクトルの特別な
場合であると見ることができる。従って、文字列ベクト
ルのような可変長データベクトルを好適に処理できる本
発明のベクトル処理装置は、当然に数値ベクトルのよう
な固定長データベクトル同士の演算にも適用できる。
本実施例によれば、可変長文字列の処理のように内側ル
ープ長が可変であるような2重ループ処理においても2
重ループ全体をベクトル化できるので、長いベクトル長
でのベクトル演算が可能となり高速化される。
例えば外側ループ回数をN,内側ループ回数をM1,M2,…M
Nとすると従来のベクトル計算機では内側ループしかベ
クトル化できないため、ベクトル長M1,M2,…,MNとし
てN回ベクトル命令を起動する必要があった。これに対
し本実施例によればベクトル長M1+M2+…+MNのベクト
ル命令を1回起動すれば良い。従ってベクトル命令の1
起動/終了オーバヘッドをO(サイクル)とすると、O
×(N−1)サイクルのオーバヘッドが削減され高速化
される。
本発明のベクトル処理装置は一般にベクトル内の個々の
要素間のデータ長の変動が激しい可変長データベクトル
を処理する場合に特に有効であるが、固定長データベク
トル(上記の例ではM1=M2=…=MN=M(定数)である
可変長データベクトルの特別な場合)の処理に対しても
ベクトル長をNMとして適用可能であることは言うまでも
ない。
〔発明の効果〕
本願発明では、上記第2のベクトル列により各ベクトル
要素群間の区切り位置が分かるので、処理すべきデータ
列の全要素を一定のアドレス間隔で、しかも連続した1
本のデータ列として記憶手段に記憶させることができ
る。これにより、数値データのような固定長データ列の
みならず、文字列データのような可変長データ列に対し
ても、少ない記憶領域で、ベクトル長の長い効率的なベ
クトル処理を行なうことができる。また、このことは、
データ列の要素データが固定長か可変長かを意識するこ
となくそのデータ列を入力・処理できることをも意味す
る。
【図面の簡単な説明】
第1図は可変長データをベクトル処理する従来の方式を
示す図である。 第2図は本発明のベクトル処理装置の処理方式の手続き
を示す図である。 第3図は第2図図示の手続きをソフトウェアで処理する
場合の説明図である。 第4図は本発明の一実施例の構成を示す概略図である。 第5図は第4図図示の命令制御回路の構成を示す図であ
る。 第6図は第4図図示の演算制御回路の構成を示す図であ
る。 第7図は第4図図示の区切り判定回路の構成を示す図で
ある。 第8図は第4図図示の次動作決定論理の動作を示す真理
値表である。 第9図は第6図図示の演算制御回路の動作の説明に供す
る図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 井門 徳安 東京都国分寺市東恋ヶ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭57−113175(JP,A) 特開 昭55−32161(JP,A)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】複数のベクトル列間のベクトル演算を行な
    うベクトル処理装置において、 複数のベクトル要素からなる第1のベクトル列と、前記
    第1のベクトル列を構成する複数のベクトル要素群の区
    切りを表す第2のベクトル列と、前記第1のベクトル列
    と比較演算される対象である第3のベクトル列とを少な
    くとも記憶する記憶手段と、 前記第1のベクトル列のベクトル要素と該ベクトル要素
    に対応する前記第3のベクトル列のベクトル要素との比
    較演算を行なう演算手段と、 前記第1のベクトル列のベクトル要素および該ベクトル
    要素に対応する前記第3のベクトル列のベクトル要素を
    前記記憶手段から順次読み出して前記演算手段に供給し
    前記比較演算をベクトル要素群単位で行なわしめるとと
    もに、それと並行して、前記第2のベクトル列のベクト
    ル要素に基づき、前記演算手段で比較演算されている前
    記第1のベクトル列のベクトル要素が該ベクトル要素の
    属するベクトル要素群の最後のベクトル要素であるか否
    かを判別し、判別結果が前記ベクトル要素群の最後のベ
    クトル要素でないときは該ベクトル要素群についての前
    記比較演算を続行させるべく該ベクトル要素の比較演算
    結果を待ち、判別結果が前記ベクトル要素群の最後のベ
    クトル要素であるときは該ベクトル要素群の次のベクト
    ル要素群の先頭ベクトル要素および前記第3のベクトル
    列の先頭ベクトル要素を前記演算手段に供給する制御手
    段と を有することを特徴とするベクトル処理装置。
  2. 【請求項2】特許請求の範囲第1項に記載のベクトル処
    理装置において、 前記第2のベクトル列は、前記第1のベクトル列を構成
    する複数のベクトル要素群のそれぞれに属するベクトル
    要素の数をそれぞれ示す要素からなることを特徴とする
    ベクトル処理装置。
  3. 【請求項3】複数のベクトル列間のベクトル演算を行な
    うベクトル処理装置において、 複数のベクトル要素からなる第1のベクトル列と、前記
    第1のベクトル列を構成する複数のベクトル要素群の区
    切りを表す第2のベクトル列と、前記第1のベクトル列
    と比較演算される対象である第3のベクトル列とを少な
    くとも記憶する記憶手段と、 前記第1のベクトル列のベクトル要素と該ベクトル要素
    に対応する前記第3のベクトル列のベクトル要素との比
    較演算を行なう演算手段と、 前記演算手段が前記第1のベクトル列の複数のベクトル
    要素群のうち1つのベクトル要素群についての比較演算
    を開始するに当たり、前記記憶手段から前記第2のベク
    トル列を読み出して前記ベクトル要素群に属するベクト
    ル要素の個数を表すデータを保持し、前記演算手段が前
    記ベクトル要素の各々に対する比較演算を行なう毎に前
    記データを更新するとともに、それと並行して、前記演
    算手段で比較演算されているベクトル要素が該ベクトル
    要素の属するベクトル要素群の最後のベクトル要素であ
    ることを前記データにより検出して判別出力を発する判
    別手段と、 前記演算手段による比較演算の結果が特定の結果である
    こと、または前記判別手段から前記判別出力が発せられ
    たことを条件に、前記演算手段に次に供給すべきベクト
    ル要素のアドレスを前記判別手段で更新されている前記
    データに基づき決定し、前記演算手段にて実行中の比較
    演算を終了させ、該比較演算に係るベクトル要素群の次
    のベクトル要素群についての比較演算を開始させる演算
    制御手段と を有することを特徴とするベクトル処理装置。
JP59104543A 1984-05-25 1984-05-25 ベクトル処理装置 Expired - Lifetime JPH0786875B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP59104543A JPH0786875B2 (ja) 1984-05-25 1984-05-25 ベクトル処理装置
US06/737,686 US4723206A (en) 1984-05-25 1985-05-24 Vector processor
DE8585106449T DE3587098D1 (de) 1984-05-25 1985-05-24 Vektorverarbeitungsgeraet.
EP85106449A EP0163279B1 (en) 1984-05-25 1985-05-24 Vector processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59104543A JPH0786875B2 (ja) 1984-05-25 1984-05-25 ベクトル処理装置

Publications (2)

Publication Number Publication Date
JPS61210478A JPS61210478A (ja) 1986-09-18
JPH0786875B2 true JPH0786875B2 (ja) 1995-09-20

Family

ID=14383397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59104543A Expired - Lifetime JPH0786875B2 (ja) 1984-05-25 1984-05-25 ベクトル処理装置

Country Status (4)

Country Link
US (1) US4723206A (ja)
EP (1) EP0163279B1 (ja)
JP (1) JPH0786875B2 (ja)
DE (1) DE3587098D1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0640337B2 (ja) * 1984-10-03 1994-05-25 株式会社日立製作所 パイプライン演算装置
JP2760790B2 (ja) * 1986-10-09 1998-06-04 株式会社日立製作所 データ処理装置
US5274835A (en) * 1988-12-20 1993-12-28 Matsushita Electric Industrial Co., Ltd. Merge device using FIFO buffers
US5832290A (en) * 1994-06-13 1998-11-03 Hewlett-Packard Co. Apparatus, systems and method for improving memory bandwidth utilization in vector processing systems
US5666547A (en) * 1994-09-23 1997-09-09 Alcatel Network Systems, Inc. Method and apparatus for framing a serial data stream
US10324716B2 (en) 2017-03-03 2019-06-18 International Business Machines Corporation Selecting processing based on expected value of selected character
US10564967B2 (en) 2017-03-03 2020-02-18 International Business Machines Corporation Move string processing via inline decode-based micro-operations expansion
US10564965B2 (en) 2017-03-03 2020-02-18 International Business Machines Corporation Compare string processing via inline decode-based micro-operations expansion
US10789069B2 (en) 2017-03-03 2020-09-29 International Business Machines Corporation Dynamically selecting version of instruction to be executed
US10620956B2 (en) * 2017-03-03 2020-04-14 International Business Machines Corporation Search string processing via inline decode-based micro-operations expansion
US10613862B2 (en) 2017-03-03 2020-04-07 International Business Machines Corporation String sequence operations with arbitrary terminators

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57113175A (en) * 1980-12-29 1982-07-14 Fujitsu Ltd Vector arithmetic device
JPS57209570A (en) * 1981-06-19 1982-12-22 Fujitsu Ltd Vector processing device
US4464718A (en) * 1982-07-30 1984-08-07 International Business Machines Corporation Associative file processing method and apparatus
US4594682A (en) * 1982-12-22 1986-06-10 Ibm Corporation Vector processing

Also Published As

Publication number Publication date
JPS61210478A (ja) 1986-09-18
US4723206A (en) 1988-02-02
EP0163279B1 (en) 1993-02-17
EP0163279A2 (en) 1985-12-04
EP0163279A3 (en) 1989-03-01
DE3587098D1 (de) 1993-03-25

Similar Documents

Publication Publication Date Title
US5408626A (en) One clock address pipelining in segmentation unit
US4779192A (en) Vector processor with a synchronously controlled operand fetch circuits
US4187539A (en) Pipelined data processing system with centralized microprogram control
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
US4179731A (en) Microprogrammed control system
JPH0786875B2 (ja) ベクトル処理装置
US5081608A (en) Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields
US5226135A (en) Method for sorting vector data on the basis of partial vectors and vector processor
EP0297943B1 (en) Microcode reading control system
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
US5206947A (en) Stable sorting for a sort accelerator
JP2745710B2 (ja) ストリングサーチ方法およびそのための装置
Lee ALTEP—A cellular processor for high-speed pattern matching
JP2760790B2 (ja) データ処理装置
EP0107447B1 (en) Computer data distributor
JPS63261421A (ja) 文字列処理装置
JP2812610B2 (ja) パイプライン制御方式
JP2895892B2 (ja) データ処理装置
JP2919184B2 (ja) パイプライン処理を行う情報処理装置
CA1050169A (en) Scan and read control apparatus for a disk storage drive in a computer system
JPH064305A (ja) プロセッサのレジスタ入替え判別回路
SU342185A1 (ru) УСТРОЙСТВО дл ПОИСКА ИНФОРМАЦИИ
JP2643399B2 (ja) 情報処理装置
JPS6261163A (ja) ベクトル処理装置
JPH04279973A (ja) 文字列比較方式