JPH0373022B2 - - Google Patents

Info

Publication number
JPH0373022B2
JPH0373022B2 JP60120634A JP12063485A JPH0373022B2 JP H0373022 B2 JPH0373022 B2 JP H0373022B2 JP 60120634 A JP60120634 A JP 60120634A JP 12063485 A JP12063485 A JP 12063485A JP H0373022 B2 JPH0373022 B2 JP H0373022B2
Authority
JP
Japan
Prior art keywords
register
output
record
counter
signal
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
JP60120634A
Other languages
English (en)
Other versions
JPS61279929A (ja
Inventor
Susumu Matsuda
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP60120634A priority Critical patent/JPS61279929A/ja
Publication of JPS61279929A publication Critical patent/JPS61279929A/ja
Publication of JPH0373022B2 publication Critical patent/JPH0373022B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 [発明の技術分野] この発明は、特に関係データベース処理で必要
となる関係演算を実行する関係演算処理装置に関
する。
[発明の技術的背景とその問題点] 関係データベースにおける主たる処理の1つ
に、2つのリレーシヨン間の関係演算がある。関
係演算としては、結合(Join)、制約
(Restriction)、射影(Projection)などが知られ
ている。この種の関係演算は、一般にソフトウエ
アにより処理されていた。このため、関係演算に
多大の処理時間を要していた。そこで、上記した
関係演算の高速化が図れる専用のハードウエア装
置の実現が要望されていた。
[発明の目的] この発明は上記事情に鑑みてなされたものでそ
の目的は、関係演算が効率よく行なえる専用のハ
ードウエアとしての関係演算処理装置を提供する
ことにある。
この発明の他の目的は、演算条件が成立したリ
レーシヨンレコードの出力に応じて更新されるカ
ウンタを設け、同カウンタのカウント値を用いる
ことにより出力レコードに新しい識別子を付加す
ることができ、しかも出力レコード数が、同識別
子で表現できる範囲を越えた場合には、動作を停
止して上位装置に異常終了を通知できる関係演算
処理装置を提供することにある。
[発明の概要] この発明では、第1のリレーシヨンを格納する
第1バツフアと、第2のリレーシヨンを格納する
第2バツフアとが設けられる。また、この発明で
は、演算識別を示すオペレーシヨンコード、およ
び第1または第2バツフアのいずれか一方を指定
するバツフア指定ビツトを保持する第1レジスタ
と、第1または第2バツフアに格納されるリレー
シヨンを構成するレコード数を示すレコード数情
報を保持する第2レジスタと、第1または第2バ
ツフアに格納されるリレーシヨンを構成するレコ
ードのレコード長を示すレコード長情報を保持す
る第3レジスタと、上記リレーシヨンのキーフイ
ールド長を示すキーフイールド長情報を保持する
第4レジスタとが設けられる。
上記第1レジスタに保持されたオペレーシヨン
コードによりロード処理が指定されている場合、
第1または第2バツフアのうち上記バツフア指定
ビツトで指定されたバツフアに、上記第2レジス
タで指定されるレコード数、および第3レジスタ
で指定されるレコード長で示されるデータ量のリ
レーシヨンが書込まれる。また、第1レジスタに
保持されたオペレーシヨンコードにより関係演算
処理が指定されている場合にも、第1または第2
バツフアのうち上記バツフア指定ビツトで指定さ
れたバツフアに、上記第2レジスタで指定される
レコード数、および第3レジスタで指定されるレ
コード長で示されるデータ量のリレーシヨンが書
込まれる。但し、関係演算処理が指定されている
場合、上記書き込みと並行して、第1および第2
バツフアからそれぞれ1レコードずつデータを読
出すレコード読出し動作が行なわれる。
また、この発明では、第1バツフアから読出さ
れた1レコード分のデータを一時格納する第3バ
ツフアと、第2バツフアから読出された1レコー
ド分のデータを一時格納する第4バツフアと、第
1および第2バツフアから読出された両レコード
を第4レジスタで指定されているキーフイールド
間で比較する比較回路と、第1出力制御手段とが
設けられる。第1出力制御手段は、比較回路の比
較結果、および第1レジスタに保持されたオペレ
ーシヨンコードに応じ、第1および第2バツフア
に対するアドレスの更新制御を行なうと共に、第
3および第4バツフアに一時格納された両レコー
ドまたはいずれか一方のレコードの外部への出力
制御を行なう。
更に、この発明では、関係演算処理に際して入
出力バスより初期値設定が可能なカウンタと、カ
ウンタ制御手段と、オーバーフロー検出手段と、
異常終了通知手段と、第2出力制御手段とが設け
られる。この第2出力制御手段は、上記第1出力
制御手段によるレコード出力に際し、カウンタの
内容を出力しレコードの識別子として外部に出力
する。また、カウンタ制御手段は、第1出力制御
手段によるレコード出力に応じ、上記カウンタの
カウント値を更新制御する。一方、オーバーフロ
ー検出手段は、カウンタ制御手段によるカウント
更新制御タイミングで上記カウンタからのキヤリ
ー出力の有無を調べ、カウンタ・オーバーフロー
を検出する。異常終了通知手段は、オーバーフロ
ー検出手段のオーバーフロー検出結果に応じてシ
ステム動作を停止し、上位装置に異常終了を通知
する。
[発明の実施例] 第1図はこの発明の一実施例に係るマージヤ
(関係演算処理装置)10の構成を示し、第2図
は第1図のマージヤ10を適用する関係データベ
ースエンジン(以下、RDBEと称する)の構成を
示す。第2図のRDBEにおいて、11はRDBE全
体を制御するCPU、12は2ウエイ・マージソ
ート方式を適用するソータ(ソート処理装置)で
ある。ソータ12は12段のソート・セル12−0
〜12−11からなり、最大4Kレコードのソー
ト処理が行なえるようになつている。13はソー
タ12の入力側に設けられ、ソート処理において
比較対象となるキーフイールドをレコードの先頭
に移動するなどのソート前処理を行なうINアラ
イナ(ソート前処理装置)、14はINアライナ1
3のソート結果が正しいか否かを監視するソー
ト・チエツカである。マージヤ10は、ソート・
チエツカ14に接続され、ソータ12によりソー
ト処理されている、1つ乃至2つのリレーシヨン
間で、関係演算を高速に実行するように構成され
ている。INアライナ13、ソータ12、ソー
ト・チエツカ14、およびマージヤ10は、ソー
ト処理と、関係演算処理を連動して、入力データ
に同期したパイプライン処理を行なう専用ハード
ウエアであるエンジン・コア15を構成する。1
6,17はRDBEと図示せぬ階層構造メモリサブ
システム(以下、HMと称する)とのインタフエ
ースを制御するHMアダプタ(以下、HMAと称
する)である。HMA16は、エンジン・コア1
5へのデータの入力ポート、HMA17はエンジ
ン・コア15からのデータの出力ポートとして動
作する。18はCPU11の入出力バス、19は
DMAバスである。入出力バス18には、マージ
ヤ10を始めとするエンジン・コア15の各構成
要素、CPU11、およびHMA16,17が接続
され、DMAバス19には、CPU11および
HMA16,17が接続される。
マージヤ10は、第1図に示すように、演算部
OPPと、出力選択部OSPと、これら演算部OPP
および出力選択部OSPを制御する制御部CNTP
とからなる。
演算部OPPにおいて、20Uは第1のリレー
シヨンを格納するU(Upper)バツフア(以下、
UBと称する)、20Lは第2のリレーシヨンを
格納するL(Lower)バツフア(以下、LBと称す
る)である。21UはUB20Uに書込むデータ
を保持する入力レジスタ(INUレジスタ)、21
LはLB20Lに書込むデータを保持する入力レ
ジスタ(INLレジスタ)である。22UはUB2
0Uからの読出しデータを保持するレジスタ
(UPRレジスタ)、22LはLB20Lからの読出
しデータを保持するレジスタ(LOWレジスタ)
である。23はUPRレジスタ22UおよびLOW
レジスタ22Lの各内容を比較する比較器(以
下、CMPと称する)、24UはUPRレジスタ2
2Uの内容を出力選択部OSP側へ伝達する出力
レジスタ(OTUレジスタ)、24LはLOWレジ
スタ22Lの内容を出力選択部OSP側へ伝達す
る出力レジスタ(OTLレジスタ)である。25
UはUB20Uに対する書込みポインタとしての
書込みアドレスレジスタ(WAUレジスタ)、2
5LはLB20Lに対する書込みポインタとして
の書込みアドレスレジスタ(WALレジスタ)で
ある。26UはUB20Uに対する読出しポイン
タしての読出しアドレスレジスタ(RAUレジス
タ)、26LはLB20Lに対する読出しポインタ
としての読出しアドレスレジスタ(RALレジス
タ)である。WAUレジスタ25U、WALレジ
スタ25L、RAUレジスタ26U、およびRAL
レジスタ26Lは、カウンタ機能を有する。27
UはRAUレジスタ26Uの内容を保持するバツ
クアツプレジスタ(BUUレジスタ)、27Lは
RALレジスタ26Lの内容を保持するバツクア
ツプレジスタ(BULレジスタ)である。28U
はWAUレジスタ25UおよびRAUレジスタ2
6Uの各内容を比較する比較器(CMP)、28L
はWALレジスタ25LおよびRALレジスタ26
Lの各内容を比較する比較器(CMP)である。
29UはWAUレジスタ25UまたはRAUレジ
スタ26Uの内容をUB20Uに対するメモリア
ドレスとして選択するマルチプレクサ、29Lは
WALレジスタ25LまたはRALレジスタ26L
の内容をLB20Lに対するメモリアドレスとし
て選択するマルチプレクサである。
第1図の出力選択部OSPにおいて、30Uは
UB20Uからの1レコード分のデータを格納す
るUレコードバツフア(URB)、30LはLB2
0Lからの1レコード分のデータを格納するLレ
コードバツフア(LRB)である。31UはOTU
レジスタ24Uの内容をURB30Uに対する書
込みデータとして保持する入力レジスタ(INUR
レジスタ)、31LはOTLレジスタ24Lの内容
をLRB30Lに対する書込みデータとして保持
する入力レジスタ(INLRレジスタ)である。3
2はマージヤ10から出力されるレコードに付さ
れる識別番号NTIDを生成する識別番号カウンタ
(NTIDカウンタ)である。NTIDカウンタ32
は後述する入出力インタフエース40に接続され
る。NTIDカウンタ32は、カウンタストローブ
信号95が供給されるクロツク端子CK、カウン
トアツプイネーブル信号90が供給されるカウン
トアツプイネーブル端子E、ロード信号109が
供給されるロード端子L、およびキヤリー信号9
6を出力するキヤリー出力端子COを有している。
37NはNTIDカウンタ32で生成された識別番
号NTIDを出力制御信号91Nに応じてゲートす
るゲート、37UはURB30Uからの読出しデ
ータを出力制御信号91Uに応じてゲートするゲ
ート、37LはLRB30Lからの読出しデータ
を出力制御信号91Lに応じてゲートするゲート
である。33はゲート37N,37U,37Lか
らの出力データをストローブ信号93に応じてラ
ツチする出力レジスタ(ROUTレジスタ)であ
る。34UはURB30Uに対する書込みポイン
タとしての書込みアドレスレジスタ(WAURレ
ジスタ)、34LはLRB30Lに対する書込みポ
インタとしての書込みアドレスレジスタ
(WALRレジスタ)である。35UはURB30
Uに対する読出しポインタとしての読出しアドレ
スレジスタ(RAURレジスタ)、35LはLRB3
0Lに対する読出しポインタとしての読出しアド
レスレジスタ(RALRレジスタ)である。
WAURレジスタ34U、WALRレジスタ34
L、RAURレジスタ35U、およびRALRレジ
スタ35Lは、カウンタ機能を有する。36Uは
WAURレジスタ34UまたはRAURレジスタ3
5Uの内容をURB30Uに対するメモリアドレ
スとして選択するマルチプレクサ、36Lは
WALRレジスタ34LまたはRALRレジスタ3
5Lの内容をLRB30Lに対するメモリアドレ
スとして選択するマルチプレクサである。NTID
カウンタ32は、第2図のCPU11により、入
出力インタフエース40経由で予めセツトアツプ
可能である。
第1図の制御部CNTPにおいて、38は制御
部CNTPの中心をなす主制御部、39は主制御
部38内に設けられた8ビツトのマージ演算レジ
スタ(MOPレジスタ)である。MOPレジスタ3
9には、第3図に示すように、マージ演算の指定
を行なう5ビツトのマージ演算指定コード
(MRG−OPコード)、ソート順を指定するソート
順指定ビツト(AS/DSビツト)、およびUB20
UまたはLB20Lを指定するバツフア指定ビツ
ト(U/Lビツト)を含むマージ演算指定情報が
設定される。この例では、AS/DS=0で昇順
が、AS/DS=1で降順が指定される。また、
U/L=0でUB20Uが、U/L=1でLB2
0Lが指定される。
40はCPU11(の入出力バス18)に対す
るインタフエースである入出力インタフエース、
41は入出力インタフエース40に設けられたコ
マンドレジスタ(CMDレジスタ)である。CMD
レジスタ41には、CPU11からの指定により、
8ビツトのコマンドデータが設定される。このコ
マンドデータの第0ビツトは、第4図に示すよう
に、レジスタ指定ビツト(REG.INDビツト)で
ある。REG.INDビツトは、コマンドデータが、
マージヤ10内のレジスタ(のレジスタ番号)を
指定するデータとして用いられる(REG.IND=
1の場合)か、或はコマンドデータ本来の動作指
定データとして用いられる(REG.IND=0の場
合)かを指定する。REG.IND=0の場合、第4
図に示すように、コマンドデータの第2ビツトは
エンジン・コア15のリセツトを指定するリセツ
ト指定ビツト(RSTビツト)、第3ビツトはエン
ジン・コア15の起動を指定するエンジン起動指
定ビツト(ENG.GOビツト)、第4ビツトはマー
ジヤ10のみの起動を指定するマージヤ起動指定
ビツト(MRG.GOビツト)、第6ビツトはRAU
レジスタ26Uおよび後述するFUEMP52Uの
クリアを指定するUリトライ指定ビツト
(URTRYビツト)、第7ビツトはRALレジスタ
26Lおよび後述するFLEMP52Lのクリアを
指定するLリトライ指定ビツト(LRTRYビツ
ト)として用いられる。なお、上記した各ビツト
の動作指定は、論理“1”で有効である。
再び第1図を参照すると、42はUB20Uま
たはLB20Lに格納されるリレーシヨン(スト
リーム)の総レコード数TRNを示すトータルレ
コード数レジスタ(TRNレジスタ)、43Uは
UB20Uに格納されるリレーシヨンのレコード
長RSUを示すレコードサイズレジスタ(RSUレ
ジスタ)、43LはLB20Lに格納されるリレー
シヨンのレコード長RSLを示すレコードサイズ
レジスタ(RSLレジスタ)である。44はRSU
レジスタ43UまたはRSLレジスタ43Lの内
容を選択するマルチプレクサ、45はマルチプレ
クサ44からの選択出力データを初期値としてロ
ードし、UB20UまたはLB20Lへの書込み
時にカウントダウンされるライトカウンタ
(WRCカウンタ)、46はTRNレジスタ42の内
容を初期値としてロードし、WRCカウンタ45
からのボロー信号に応じてカウントダウンされる
レコード数カウンタ(STCカウンタ)である。
47はマージ演算において比較対象となる、レコ
ード内キーフイールド長(有効データ長VDL)
を示す有効データ長レジスタ(VDLレジスタ)、
48はVDLレジスタ47の内容を初期値として
ロードし、LB20U(およびLB20L)からの
データ読出し時にカウントダウンされる有効デー
タ長カウンタ(VCTカウンタ)である。MOPレ
ジスタ39、CMDレジスタ41、TRNレジスタ
42、RSUレジスタ43U、RSLレジスタ43
L、およびVDLレジスタ47は、第2図のCPU
11により、予めセツトアツプ可能である。
49UはRSUレジスタ43Uの内容を初期値
してロードし、UB20Uからのデータ読出し時
にカウントダウンされるリードカウンタ(RCU
カウンタ)、49LはRSLレジスタ43Lの内容
を初期値してロードし、LB20Lからのデータ
読出し時にカウントダウンされるリードカウンタ
(RCLカウンタ)である。50UはRCUカウンタ
49Uからのボロー信号に応じてセツトされ、
UB20Uからの読出しデータが1レコードの最
後のデータであることを示すレコードエンドフラ
グ(FUEフラグ)、50LはRCLカウンタ49L
からのボロー信号に応じてセツトされ、LB20
Lからの読出しデータが1レコードの最後のデー
タであることを示すレコードエンドフラグ
(FLEフラグ)である。51UはUB20Uへの
書込みが完了したことを示す書込み完了フラグ
(FUWEDフラグ)、51LはLB20Lへの書込
みが完了したことを示す書込み完了フラグ
(FLWEDフラグ)である。52UはUB20Uが
空状態となつたことを示すエンプテイフラグ
(FUEMPフラグ)、52LはLB20Lが空状態
となつたことを示すエンプテイフラグ(FLEMP
フラグ)である。53UはUB20Uからのデー
タの外部出力を指示する出力指示フラグ(FUO
フラグ)、53LはLB20Lからのデータの外部
出力を指示する出力指示フラグ(FLOフラグ)
である。122はNTIDカウンタ32がオーバー
フロー状態にあることを示すカウンタ・オーバー
フローフラグ(FOVFフラグ)である。
54UはURB30Uからの読出しレコードに
対する第1の切出し位置を指定する切出しポイン
タとしてのレジスタ(OSUAレジスタ)、54L
はLRB30Lからの読出しレコードに対する第
1の切出し位置を指定する切出しポインタとして
のレジスタ(OSLAレジスタ)、55UはURB3
0Uからの読出しレコードに対する第2の切出し
位置を指定する切出しポインタとしてのレジスタ
(OSUBレジスタ)、55LはLRB30Lからの
読出しレコードに対する第2の切出し位置を指定
する切出しポインタとしてのレジスタ(OSLBレ
ジスタ)である。56はURB30UまたはLRB
30Lからのデータ読出し時にカウントアツプさ
れるカウンタ(CTRカウンタ)、57UはCTR
カウンタ56およびOSUAレジスタ54Uの各
内容を比較する比較器(CMP)、57LはCTR
カウンタ56およびOSLAレジスタ54Lの各内
容を比較する比較器(CMP)である。58Uは
CTRカウンタ56およびOSUBレジスタ55U
の各内容を比較する比較器(CMP)、58Lは
CTRカウンタ56およびOSLBレジスタ55L
の各内容を比較する比較器(CMP)、59Uは
CTRカウンタ56およびRSUレジスタ43Uの
各内容を比較する比較器(CMP)、59Lは
CTRカウンタ56およびRSLレジスタ43Lの
各内容を比較する比較器(CMP)である。
OSUAレジスタ54U、OSUBレジスタ55U、
OSLAレジスタ54L、OSLBレジスタ55L
は、第2図のCPU11により、予めセツトアツ
プ可能である。
次に、第1図の主制御部38の構成を、第5図
を参照して説明する。第5図において、60は
FUEフラグ50UおよびFLEフラグ50L、更
にはCMDレジスタ41などに応じて各種制御信
号を発生するタイミングを決定する制御タイミン
グ発生回路、61はMOPレジスタ39および
CMDレジスタ41の内容に応じ、制御タイミン
グ発生回路60からのスタート指示のタイミング
で各部をクリアするクリア回路である。62は
CMP23の比較結果およびVCTカウンタ48か
らの出力により、UB20UおよびLB20Lか
らの各1レコードのキーフイールドの比較結果を
確定する比較制御部、63は第2図のCPU11
に対する割込みを発生する割込み制御部である。
64は外部へのデータの出力制御を行なう出力制
御部、65はMOPレジスタ39の内容および比
較制御部62の比較確定結果に応じ、制御タイミ
ング発生回路60からの指示に従つたタイミング
で、UB20Uの読出し制御、LB20Lの読出
し制御、割込み制御、および出力制御などのため
の各種制御信号を発生する制御信号発生回路であ
る。
次に、第5図の割込み制御部63周辺の構成
を、第6図を参照して説明する。第6図におい
て、66はMOPレジスタ39からのU/Lビツ
トが入力されるインバータ、67Uはインバータ
66の出力とSTCカウンタ46からのボロー信
号とが入力されるアンドゲートA、67Lは
MOPレジスタ39からのU/LビツトとSTCカ
ウンタ46からのボロー信号とが入力されるアン
ドゲートAである。FUWEDフラグ51UはA6
7U、FLWEDフラグ51LはA67Lからの出
力信号に応じ、セツトされる。68UはCMP2
8Uの比較結果(一致検出信号)およびFUWED
フラグ51Uからの出力信号が入力されるアンド
ゲートA、68LはCMP28Lの比較結果(一
致検出信号)およびFLWEDフラグ51Lからの
出力信号が入力されるアンドゲートAである。6
9UはA68Uからの出力信号を制御タイミング
発生回路60からの指定タイミングでゲートする
ゲート、69LはA68Lからの出力信号を制御
タイミング発生回路60からの指定タイミングで
ゲートするゲートである。FUEMPフラグ52U
はゲート69U、FLEMPフラグ52Lはゲート
69Lからの出力信号に応じ、セツトされる。7
0はMOPレジスタ39の内容(マージ演算指定
情報)をデコードするデコーダである。デコーダ
70は、マージ演算指定情報がUB20Uへの第
1のリレーシヨンのロードを指定している場合
に、ロード信号71Uを、LB20Lへの第2の
リレーシヨンのロードを指定している場合に、ロ
ード信号71Lを出力する。
72Uはデコーダ70からのロード信号71U
とFUWEDフラグ51Uからの出力信号が入力さ
れるアンドゲートA、72Lはデコーダ70から
のロード信号71LとFLWEDフラグ51Lから
の出力信号が入力されるアンドゲートAである。
73Uは制御信号発生回路65からの割込み許可
信号74UとFUEMPフラグ52Uからの出力信
号とが入力されるアンドゲートA、73Lは制御
信号発生回路65からの割込み許可信号74Lと
FLEMPフラグ52Lからの出力信号とが入力さ
れるアンドゲートAである。割込み許可信号74
U,74Lは、MOPレジスタ39の内容に応じ
て制御信号発生回路65から発生される。例え
ば、SORT(ソート)系演算やRESTRICT(制約)
系演算が指定されている場合には、割込み許可信
号74U,74Lが出力され、JOIN(結合)系
演算が指定されている場合には割込み許可信号7
4Uだけが指定される。また、PASS(パス)系
演算が指定されている場合には、U/L=0(即
ちUB20U指定)であれば割込み許可信号74
Uが、U/L=1(即ちLB20L指定)であれば
割込み許可信号74Lが出力される。
121は第1図のNTIDカウンタ32に対する
カウントアツプイネーブル信号90並びにカウン
タストローブ信号95、およびNTIDカウンタ3
2からのキヤリー信号96が入力されるアンドゲ
ートAである。A121にはNTIDカウンタ32
のオーバフロー状態を示すFOVFフラグ122が
接続されており、同フラグ122はA121の出
力信号に応じてセツトされる。123はFOVFフ
ラグ122の出力信号などシステムのエラー状態
を示す各種エラー信号に応じて異常検出を行なう
異常検出回路である。75はA72U,A72
L,A73U,A73Lおよび異常検出回路12
3からの各出力信号が入力されるオアゲート
(OR)、76はOR75からの出力信号に応じて
割込み信号ATNを発生する割込み発生回路であ
る。
次に、第5図のクリア回路61周辺の構成を、
第7図を参照して説明する。第7図において、7
7はMOPレジスタ39からのU/Lビツトが入
力されるインバータ、78Uはインバータ77か
らの出力信号とCMDレジスタ41に保持された
コマンドデータ中のENG.GOビツトとが入力さ
れるアンドゲートA、78LはMOPレジスタ3
9からのU/Lビツトと上記ENG.GOビツトと
が入力されるアンドゲートAである。79UはA
78Uからの出力信号とCMDレジスタ41から
のRSTビツトとが入力されるオアゲート(OR)、
79LはA78Lからの出力信号と上記RSTビ
ツトとが入力されるオアゲート(OR)である。
80UはOR79Uからの出力信号とCMDレジス
タ41からのURTRYビツトとが入力されるオア
ゲート(OR)、80LはOR79Lからの出力信
号とCMDレジスタ41からのLRTRYビツトと
が入力されるオアゲート(OR)である。81U
は、OR79Uからの出力信号を、WAUレジス
タ25UおよびFUWEDフラグ51Uに対するク
リア信号として、制御タイミング発生回路60か
らの指定タイミングでゲートするゲート、81L
は、OR79Lからの出力信号を、WALレジス
タ25LおよびFLWEDフラグ51Lに対するク
リア信号として、制御タイミング発生回路60か
らの指定タイミングでゲートするゲートである。
82Uは、OR80Uからの出力信号を、RAUレ
ジスタ26UおよびFUEMPフラグ52Uに対す
るクリア信号として、制御タイミング発生回路6
0からの指定タイミングでゲートするゲート、8
2Lは、OR80Lからの出力信号を、RALレジ
スタ26LおよびFLEMPフラグ52Lに対する
クリア信号として、制御タイミング発生回路60
からの指定タイミングでゲートするゲートであ
る。
次に、第5図の出力制御部64周辺の構成を、
第8図を参照して説明する。第8図において、8
3はFUOフラグ53U並びにFLOフラグ53L
の状態および図示せぬ出力選択制御レジスタの内
容などに応じてURB30U並びにLRB30Lか
らのデータの出力順を制御する出力シーケンス制
御部である。出力選択制御レジスタは、識別番号
NTIDの付加と、U側およびL側レコードを共に
出力する場合の出力順とを指示するのに用いられ
る。出力シーケンス制御部83は、出力シーケン
ス制御期間中、第1図のNTIDカンウンタ32に
対しカウンタアツプイネーブル信号90を出力
し、1シーケンス終了毎にカウンタストローブ信
号92を出力する。84NはNTIDカウンタ32
で生成された識別番号NTIDの出力を制御する
NTID出力制御部である。NTID出力制御部84
Nは、出力シーケンス制御部83からの出力開始
指示に応じ、(第1図のゲート37Nに対する)
出力制御信号91N、およびストローブ信号87
Nを出力して識別番号NTIN出力制御を行なう。
84UはURB30Uからのデータ読出しを制御
するURB読出し制御部、84LはLRB30Lか
らのデータ読出しを制御するLRB読出し制御部
である。読出し制御部84U,84Lは、出力シ
ーケンス制御部83からの読出し開始指示に応じ
てレコード読出し制御動作を開始し、第1図の
CMP59U,59Lの比較結果(一致検出信号)
に応じて読出し制御動作を停止する。読出し制御
部37U,37Lは、読出し制御期間中、(第1
図のゲート37U,37Nに対する)出力制御信
号91U,91L、およびストローブ信号87
U,87Lを出力する。また、フラグ53U,5
3Uは、制御信号発生回路65からの出力指示信
号85U,85Lに応じてセツトする。86は制
御部84N,84U,84Lからのストローブ信
号87N,87U,87Lが入力されるオアゲー
ト(OR)、88はOR86からの出力信号をゲー
トしてROUTレジスタ33にストローブ信号9
3を出力するゲートである。89は出力シーケン
ス制御部83からの指示に従い、CMP57U,
58UまたはCMP57L,58Lの比較結果を
監視し、その監視結果に応じてゲート88を制御
する切出し制御部、94は出力シーケンス制御部
83からのカウンタストローブ信号92および
(入出力インタフエース40経由で供給される)
入出力バス18からのライト信号WDが入力され
るオアゲート(OR)である。OR94の出力信
号は、カウンタストローブ信号95としてNTID
カウンタ32(第1図参照)に供給される。
次に、第1図の入出力インタフエース40の構
成を第9図を参照して説明する。第9図におい
て、101は入出力バス18との間で各種のコン
トロール信号の入出力を行なう入出力ドライバ、
102は入出力バス18からデータを入力する入
力ドライバ、103は入出力バス18へデータを
出力する出力ドライバである。入出力ドライバ1
01の出力対象コントロール信号には、第2図の
CPU11に対する割込み信号ATNがある。入出
力ドライバ101の入力対象コントロール信号に
は、コマンドデータの出力を示すコマンド信号
CMD、データ書込みを指定するライト信号WD、
データ読出しを指定するリード信号RD信号、ス
テータス(情報)の読取りを指定するステータス
信号STS、および上記割込み信号ATNに対する
応答信号(割込み承認信号)ACKがある。入出
力ドライバ101から入力されるコマンド信号
CMDは、CMDレジスタ41に対するストローブ
信号として用いられる。104はCMDレジスタ
41の出力データ(コマンドデータ)の第0ビツ
ト即ちREG.INDビツトが入力されるインバータ、
105はCMDレジスタ41の出力データ(の第
1乃至第7ビツト)を、インバータ104の出力
信号に応じてゲートするゲートである。ゲート1
06からの出力データは第1図の主制御部38に
供給される。106はCMDレジスタ41の出力
データ(の第1乃至第7ビツト)を、その第0ビ
ツト(REG.INDビツト)に応じてゲートするゲ
ート、107,108はゲート106からの出力
データをデコードするデコーダ(DEC)である。
DEC107は入出力ドライバ101から入力さ
れるライト信号WDによりイネーブルされ、第1
図のNTIDカウンタ32に対するロード信号10
9など、マージヤ10内の各種レジスタ、カウン
タに対するロード信号を発生する。またDEC1
08は入出力ドライバ101から入力されるリー
ド信号RDによりイネーブルされ、マージヤ10
内の各種レジスタ、カウンタの内容の入出力バス
18への出力を指示する各種出力制御信号を発生
する。この出力制御信号の1つに、NTIDカウン
タ32で生成された識別番号NTIDの入出力バス
18への出力を指示する出力制御信号110があ
る。111はNTIDカウンタ32で生成された識
別番号NTIDを上記出力制御信号110に応じて
ゲートするゲート、112はマージヤ10の機器
番号を応答信号ACKに応じてゲートするゲート、
113はマージヤ10のステータス(情報)をス
テータス信号STSに応じてゲートするゲートで
ある。ゲート111〜113からの出力データは
出力ドライバ103に供給される。なおマージヤ
10のステータスは、FUWEDフラグ51U、
FLWEDフラグ51L、FUEMPフラグ52U、
FLEMPフラグ52L、およびFOVFフラグ12
2などによつて示される。
次に、上記した構成の動作について、
RESTRICT系演算の場合を例にとり、第10図
乃至第12図を参照して説明する。なお、第10
図はRESTRICT系演算を実行するためのコマン
ドの列と、これら各コマンドによる起動時および
終了時におけるFUWEDフラグ51U、WAUレ
ジスタ25U、RAUレジスタ26U、FLWED
フラグ51L、WALレジスタ25L、RALレジ
スタ26Lの各内容(状態)との対応関係を示
す。第10図において〜はコマンドの実行順
を示す。また、第11図は第10図に示す各コマ
ンドの実行終了時のUB20UおよびLB20L
への書込み位置(実線)並びに読出し位置(破
線)の変化を説明する図、第12図は
RESTRICT系演算(REST−EQ演算)が指定さ
れている場合の制御信号発生回路65の入出力論
理を示す図である。RESTRICT系演算では、条
件データを第1のリレーシヨン(ストリーム)と
してUB20Uに予め格納しておき、対象リレー
シヨンを第2のリレーシヨン(ストリーム)とし
てLB20Lに格納しつつ、演算が開始される。
そして、条件データの指定キーフイールドと、対
象リレーシヨンのそれとの比較を行ない、演算条
件が成立したとき、L側レコードが出力対象とし
て出力選択部OSPに送られる。なお、U側レコ
ードをL側レコードと共に出力対象とすることも
可能である。
さて、以下の説明では、第1のリレーシヨンを
S1、第2のリレーシヨンをS2とする。
RESTRICT系演算においては、まずS1に対す
るセツトアツプが、CPU11からの指示により
行なわれる。即ち、CPU11により、マージヤ
10が機器指定され、しかる後コマンドデータが
コマンド信号CMDと共に入出力バス18を介し
てマージヤ10に転送される。CPU11からの
コマンドデータは、マージヤ10の入出力インタ
フエース40内の入力ドライバ102を介して
CMDレジスタ41に供給される。また、コマン
ド信号CMDは、入出力インタフエース40内の
入出力ドライバ101を介してCMDレジスタ4
1に供給される。しかして、CPU11からのコ
マンドデータは、コマンド信号CMDに応じて
CMDレジスタ41に保持される。この場合のコ
マンドデータは、その第0ビツト、即ちREG.
INDビツトが論理“1”に設定されており、マ
ージヤ10内のレジスタ類(レジスタ番号)を指
定している。REG.INDビツトが論理“1”の場
合、入出力インタフエース40内のゲート106
は、CMDレジスタ41に保持されたコマンドデ
ータ(の第1乃至第7ビツト)をゲートする。こ
の結果、上記コマンドデータはゲート106を介
してDEC107,108に供給される。
CPU11は、上記したコマンドデータにより、
レジスタ指定を行なうと、該当レジスタにセツト
すべきデータ(セツトアツプデータ)をライト信
号WDと共に入出力バス18上に送出する。しか
して、入出力バス18上のライト信号WDはマー
ジヤ10の入出力インタフエース40内の入出力
ドライバ101を介して上記DEC107、第8
図のOR94、および第1図の各種レジスタに供
給される。DEC107は、上記ライト信号WDに
よりイネーブルされ、ゲート106より供給され
るCMDレジスタ41からのコマンドデータのデ
コード信号を出力する。今、上記コマンドデータ
がNTIDカウンタ32を指定しているものとする
と、DEC107からはロード信号109が出力
される。このロード信号109は第1図のNTID
カウンタ32のロード端子Lに供給される。ま
た、OR94に供給されたライト信号WDは、カ
ウンタストローブ信号95としてNTIDカウンタ
32のクロツク端子CKに供給される。この
NTIDカウンタ32には、CPU11からのセツ
トアツプデータ(この例では識別番号NTIDの初
期値)が入出力バス18、入出力インタフエース
40内の入力ドライバ102を介して供給されて
いる。しかして、上記セツトアツプデータは、ラ
イト信号WDに対応するカウンタストローブ信号
95に応じてNTIDカウンタ32にセツト(ロー
ド)される。
このように、この実施例では、CMDレジスタ
41に保持されている(REG.INDビツトが論理
“1”の)コマンドデータで指定された、マージ
ヤ10内のNTIDカウンタ32に、ライト信号
WDと共に転送された入出力バス18上のセツト
アツプデータを同信号WDに応じてセツトするこ
とができる。これは、マージヤ10における
NTIDカウンタ32以外のレジスタ、カウンタ類
についても同様である。
以下、同様にして、MOPレジスタ39に、例
えばリレーシヨンのロードを指定するMRG−OP
コード、UB20Uを指定する論理“0”のU/
Lビツトを含むマージ演算指定情報(LOAD
(U)コマンド)がセツトされ、OSUAレジスタ
54Uにレコードの先頭フイールド位置を示す情
報がセツトされ、OSUBレジスタ55Uにレコー
ドの最終フイールド位置を示す情報(即ち、レコ
ード長RSU)がセツトされる。また、RSUレジ
スタ43Uにレコード長RSU(第1のリレーシヨ
ンS1内の各レコードのレコード長)がセツトさ
れ、VDLレジスタ47にレコード内キーフイー
ルド長を示す有効データ長VDLがセツトされ、
TRNレジスタ42にS1の総レコード数TRNが
セツトされる。なお、RSU、VDL、TRNとして
は、実際には(真値−1)が採用されている。
なお、CMDレジスタ41にカウンタ機能を設
け、REG.INDビツトが論理“1”の場合にCPU
11からのライト信号WDに応じてカウントアツ
プされるようにしてもよい。この場合、もしセツ
トアツプ対象となるレジスタのレジスタ番号が連
続しているならば、一旦マージヤ10の機器指定
を行なつてコマンドデータを転送した後は、単に
所望のデータ(セツトアツプデータ)と共にライ
ト信号WDを入出力バス18上に繰返し出力する
だけでよい。
次に、CPU11は、再びマージヤ10を機器
指定して、今度はREG.INDビツトが論理“0”
のコマンドデータを、マージヤ10の入出力イン
タフエース40内のCMDレジスタ41にセツト
せしめる。このコマンドデータは、その第3ビツ
ト、即ちENG.GOビツトが論理“1”に設定さ
れたENG.GOコマンドである。なお、RSTビツ
ト、MRG.GOビツト、URTRYビツト、および
LRTRYビツトは論理“0”である。上記ENG.
GOコマンドは、エンジン・コア15に対する
GOコマンドであり、HMA16からのリレーシ
ヨン(ストリームデータ)をINアライナ13、
ソータ12、ソート・チエツカ14を介してマー
ジヤ10に入力し、マージ演算を施してHMA1
7へ出力するときに使用される。この場合、マー
ジヤ10は、UB20UまたはLB20Lに新た
に格納されるデータを用いてデータ処理を行なう
ことになる。これに対し、マージヤ10だけに対
するGOコマンドとして、MRG.GOコマンドが用
意されている。このMRG.GOコマンドでは、UB
20UまたはLB20Lに既に格納されている有
意データに対して処理が行なわれる。
CMDレジスタ41にセツトされたコマンドデ
ータのREG.INDビツトが論理“0”の場合、第
9図のゲート105がイネーブルされる。これに
より、CMDレジスタ41にセツトされたコマン
ドデータ(の第1乃至第7ビツト)は、ゲート1
05を介して主制御部38に供給される。マージ
ヤ10は、CMDレジスタ41にセツトされた
ENG.GOコマンドにより起動される。このとき、
クリア回路61により、WAUレジスタ25U、
RAUレジスタ26U、FUWEDフラグ51U、
およびFUEMPフラグ52Uがクリア(リセツ
ト)される。即ち、MOPレジスタ39にセツト
されたマージ演算指定情報のU/Lビツトが論理
“0”、CMDレジスタ41にセツトされたコマン
ドデータ(但しREG.IND=0)内のENG.GOビ
ツトが論理“1”の場合、クリア回路61内のA
78Uのアンド条件が成立し、A78Uから論理
“1”の信号が出力される。A78Uからの論理
“1”の信号は、OR79Uを介してゲート81
Uに導かれると共に、OR79U,80Uを介し
てゲート82Uに導かれる。ゲート81U,82
Uは、制御タイミング発生回路60のスタートタ
イミング発生機能によるクリアタイミングで、上
記論理“1”の信号をゲートする。ゲート81U
からの論理“1”の信号はWAUレジスタ25U
およびFUWEDフラグ51Uに導かれ、ゲート8
2Uからの論理“1”の信号はRAUレジスタ2
6UおよびFUEMPフラグ52Uに導かれる。こ
れにより、WAUレジスタ25U、RAUレジス
タ26U、FUWEDフラグ51U、および
FUEMPフラグ52Uがクリアされる。この状態
で、マージヤ10は、MOPレジスタ39内の
LOAD(U)コマンドで指定されたデータ処理
を、エンジン・コア15への入力に同期した速度
で行なう。このデータ処理について以下に述べ
る。
マージヤ10へ、LOAD(U)コマンドに応
じ、主制御部38の制御により、UB20Uへデ
ータ、(この例ではS1)を格納する動作が行な
われる。この際、対応するデータ(S1)は、ソ
ータ12からソート・チエツカ14を経由して、
マージヤ10に所定バイト単位で一定周期で供給
される。ソート・チエツカ14からのデータは、
ソート・チエツカ14からの出力周期に同期して
INUレジスタ21Uに保持され、UB20Uに導
かれる。LOAD(U)コマンドの場合、主制御部
38は、WAUレジスタ25Uを用いてUB20
Uに対するデータ書込みを行なう。即ち、主制御
部38内の図示せぬ書込み制御部は、INUレジ
スタ21Uに保持されるデータを、マルチプレク
サ29Uにより選択されたWAUレジスタ25U
で指定されている、UB20Uのそのアドレスに
書込み、WAUレジスタ25Uを+1する書込み
制御を繰返し行なう。WAUレジスタ25Uは、
上記したように起動時にリセツトされており(第
10図参照)、したがつてS1はUB20Uの0
番地から順に書込まれる。
UB20Uへのデータ書込みの場合、主制御部
38はその動作開始時に、RSUレジスタ43U
の内容(レコード長RSU)をマルチプレクサ4
4を介してWRCカウンタ45にセツトし、TRN
レジスタ42の内容(総レコード数TRN)を
STCカウンタ46にセツトせしめる。WRCカウ
ンタ45は、WAUレジスタ25U(LB20Lへ
の書込みの場合にはWALレジスタ25L)が+
1される毎に−1される。この結果、WRCカウ
ンタ45は、1レコードの最終データの書込み時
にアンダフロー状態となり、ボロー信号を出力す
る。WRCカウンタ45からのボロー信号はSTC
カウンタ46に導かれ、これによりSTCカウン
タ46は−1される。このため、STCカウンタ
46は、S1の最終レコードの最終データの書込
み時にアンダフロー状態となり、ボロー信号を出
力する。STCカウンタ46からのボロー信号は
A67U,67Lの一端に共通に導かれる。A6
7Uの他端には、MOPレジスタ39内のU/L
ビツトがインバータ66を介して導かれ、A67
Lの他端には、上記U/Lビツトがそのまま導か
れる。したがつて、U/L=0であるこの例で
は、A67Uのアンド条件が成立し、A67Uか
らFUWEDフラグ51Uに対し、論理“1”の信
号が出力される。これにより、FUWEDフラグ5
1Uはセツトされる(第10図のLOAD(U)、
ENG.GOコマンドの欄参照)。主制御部38内の
書込み制御部は、STCカウンタ46からのボロ
ー信号により、書込み制御動作を停止する。この
結果、WAUレジスタ25Uは、S1の(最終レ
コードの)最終データの格納アドレスを示した状
態で、カウントアツプ動作を停止することにな
る。第10図では、上記したWAUレジスタ25
Uの内容のように、該当コマンドの実行終了時に
おける該当レジスタの内容が、リレーシヨンの
(最終レコードの)最終データの格納アドレスと
なることを、「end」で示している。
FUWEDフラグ51Uからのセツト出力信号
は、A72Uの一端に導かれる。A72Uの他端
には、デコーダ70からのロード信号71Uが導
かれる。デコーダ70は、MOPレジスタ39の
内容をデコードしており、この例のように
LOAD(U)コマンドの場合、論理“1”のロー
ド信号71Uを出力する。したがつて、この例で
は、FUWEDフラグ51Uのセツトにより、A7
2Uのアンド条件が成立し、A72Uから
(LOAND(U)コマンドの実行によるUB20U
への書込み完了を示す)論理“1”の信号が出力
される。A72Uからの論理“1”の信号は、
OR75を介して割込み発生回路76に導かれ、
これにより割込み発生回路76はCPU11に対
する割込み信号ATNを発生する。CPU11は、
マージヤ10(内の割込み発生回路76)からの
割込みを受付けると、FUWEDフラグ51U、
FLWEDフラグ51L、FUEMPフラグ52U、
FLEMPフラグ52LおよびFOVFフラグ122
などで示されるマージヤ10のステータスの読出
しを行ない、割込み要因の判別を行なう。
CPU11は、マージヤ10からのステータス
の読取りにより、UB20UへのリレーシヨンS
1の書込みの完了を判断すると、次のリレーシヨ
ン、即ち第2のリレーシヨンS2に関するセツト
アツプを行なう。この場合のセツトアツプは、前
記したS1に関するセツトアツプと略同様であ
る。なお、有効データ長VDLは、第1のリレー
シヨンS1および第2のリレーシヨンS2の各レ
コードにおいて共通であるため、S2の場合には
セツトアツプは不要である。したがつて、S2の
場合のセツトアツプ対象レジスタは、MOPレジ
スタ39、OSLAレジスタ54L、OSLBレジス
タ55L、RSLレジスタ43L、およびTRNレ
ジスタ42となる。但し、MOPレジスタ39に
は、RESTRICT系演算(この例ではREST−
EQ)を指定するMRG−OPコード、ソート順を
指定するAS/DSビツト、LB20Lを指定する
論理“1”のU/Lビツトを含むマージ演算指定
情報(REST−EQ(L)コマンド)がセツトされ
る。そして、マージヤ10内のCMDレジスタ4
1に、S1の場合と同様に、ENG.GOコマンド
がセツトされることにより、マージヤ10が再び
起動される。このとき、クリア回路61により、
WALレジスタ25L、RALレジスタ26L、
FLWEDフラグ51L、およびFLEMPフラグ5
2Lがクリア(リセツト)される。即ち、MOP
レジスタ39にセツトされたマージ演算指定情報
のU/Lビツトが論理“1”、CMDレジスタ41
にセツトされたコマンドデータ(但しREG.IND
=0)内のENG.GOビツトが論理“1”の場合、
クリア回路61内のA78Lのアンド条件が成立
し、A78Lから論理“1”の信号が出力され
る。A78Lからの論理“1”の信号は、OR7
9Lを介てゲート81Lに導かれると共に、OR
79L,80Lを介してゲート82Lに導かれ
る。ゲート81L,82Lは、制御タイミング発
生回路60のスタートタイミング発生機能による
クリアタミングで、上記論理“1”の信号をゲー
トする。ゲート81Lからの論理“1”の信号は
WALレジスタ25LおよびFLWEDフラグ51
Lに導かれ、ゲート82Lからの論理“1”の信
号はRALレジスタ26LおよびFLEMPフラグ5
2Lに導かれる。これにより、WALレジスタ2
5L、RALレジスタ26L、FLWEDフラグ5
1L、およびFLEMPフラグ52Lがクリアされ
る。この状態で、マージヤ10は、MOPレジス
タ39内のREST−EQ(L)コマンドで指定され
たデータ処理を行なう。このデータ処理について
以下に述べる。なお、REST−EQは、条件デー
タのキーフイールドと対象リレーシヨンのそれと
が等しいとき、対象リレーシヨンを出力すること
を示す。
マージヤ10では、REST−EQ(L)コマンド
に応じ、主制御部38の制御により、LB20L
へデータ(この例ではS2)を格納する動作が行
なわれる。この際、対応するデータ(S2)は、
ソータ12からソート・チエツカ14を経由し
て、マージヤ10に所定バイト単位で一定周期で
供給され、この供給周期に同期してINLレジスタ
21Lに保持される。REST−EQ(L)コマンド
の場合、マージヤ10の主制御部38内の図示せ
ぬ書込み制御部は、WALレジスタ25Lを用い
てLB20Lに対するデータ書込みを行なう。即
ち、主制御部38内の書込み制御部は、INLレジ
スタ21Lに保持されるデータを、WALレジス
タ25Lで指定されるLB20Lのそのアドレス
に書込み、WALレジスタ25Lを+1する書込
み制御を繰返し行なう。WALレジスタ25Lは、
起動時にリセツトされており(第10図の
REST−EQ(L)、ENG.GOコマンドの欄参照)、
したがつてS2はLB20Lの0番地から順に書
込まれる。
LB20Lへのデータ書込みの場合、主制御部
38はその動作開始時に、RSLレジスタ43L
の内容(レコード長RSL)をマルチプレクサ4
4を介してWRCカウンタ45にセツトし、TRN
レジスタ42の内容(総レコード数TRN)を
STCカウンタ46にセツトせしめる。WRCカウ
ンタ45は、WALレジスタ25L(UB20Uへ
の書込みの場合にはWALレジスタ25U)が+
1される毎に−1される。この結果、WRCカウ
ンタ45は、1レコードの最終データの書込み時
にアンダフロー状態となり、ボロー信号を出力す
る。WRCカウンタ45からのボロー信号はSTC
カウンタ46に導かれ、これによりSTCカウン
タ46は−1される。このため、STCカウンタ
46は、S2の最終レコードの最終データの書込
み時にアンダフロー状態となり、ボロー信号を出
力する。STCカウンタ46からのボロー信号は
A67U,67Lの一端に共通に導かれる。A6
7Uの他端には、MOPレジスタ39内のU/L
ビツトがインバータ66を介して導かれ、A67
Lの他端には、上記U/Lビツトがそのまま導か
れる。したがつて、U/L=1であるこの例で
は、A67Lのアンド条件が成立し、A67Lか
らFLWEDフラグ51Lに対し、論理“1”の信
号が出力される。これにより、FLWEDフラグ5
1Lはセツトされる(第10図のREST−EQ
(L)、ENG.GOコマンドの欄参照)。主制御部3
8内の書込み制御部は、STCカウンタ46から
のボロー信号により、書込み制御動作を停止す
る。この結果、WALレジスタ25Lは、S2の
(最終レコードの)最終データの格納アドレスを
示した状態(end)でカウントアツプ動作を停止
することになる。
この例では、UB20U(LB20L)に対する
リード/ライト動作は、時分割で行なわれる。即
ち、マージヤ10における1動作サイクルは、リ
ードサイクルと、ライトサイクルとに2分されて
使用される。REST−EQ(L)コマンドの場合、
主制御部38内の図示せぬ読出し制御部は、
WALレジスタ25Lの内容WALおよびRALレ
ジスタ26Lの内容RALを比較するCMP28
L、並びにWAUレジスタ25Uの内容WAUお
よびRAUレジスタ26Uの内容RAUを比較する
CMP28Uの比較結果を監視している。そして、
RAL<WAL、RAU<WAUであれば、読出し制
御部はLB20Lからのデータ読出しが可能であ
るものと判断し、リードサイクルにおいて、
RALレジスタ26Lを用いたLB20Lからのデ
ータ読出し、およびRAUレジスタ26Uを用い
たUB20Uからのデータ読出しを同時に行な
い、しかる後RAUレジスタ26U、RALレジス
タ26Lの内容を+1する。このとき、FLWED
フラグ51Lがセツトしていなければ、書込み制
御部は次のライトサイクルにおいて、前記したよ
うにWALレジスタ25Lを用いたLB20Lへの
データ書込みを行なう。そして、上記した動作が
繰返される。RAUレジスタ26U、RALレジス
タ26Lは、前記したように起動時にリセツトさ
れており(第10図参照)、したがつてUB20
U,LB20Lからのデータ読出しは0番地から
行なわれる。
UB20U,LB20Lからのデータ読出しに
おいては、1レコードの先頭データの読出しに際
し、RAUレジスタ26U、RALレジスタ26L
の内容がBUUレジスタ27U、BULレジスタ2
7Lに、RSUレジスタ43U、RSLレジスタ4
3Lの内容がRCUカウンタ49U、RCLカウン
タ49Lに、そしてVDLレジスタ47の内容が
VCTカウンタ48に、主制御部38内の制御タ
イミング発生回路60からの1レコード処理開始
の指定タイミングでロードされる。RCUカウン
タ49U、RCLカウンタ49L、およびVCTカ
ウンタ48は、UB20U、LB20Lからのデ
ータ読出し毎に−1される。この例では、マージ
ヤ10に供給されるレコードは、INアライナ1
3により、比較対象となるキーフイールドがその
先頭となるように前処理を施されている。したが
つて、VCTカウンタ48は、キーフイールドの
最終データの読出し時にアンダフロー状態とな
り、キーフイールドエンドを示すボロー信号を出
力する。VCTカウンタ48からのボロー信号は、
比較制御部62に導かれる。また、RCUカウン
タ49U、RCLカウンタ49Lは、レコード長
がRSUのU側レコード、レコード長がRSLのL
側レコードの最終データの読出し時にアンダフロ
ー状態となり、レコードエンドを示すボロー信号
を出力する。RCUカウンタ49U、RCLカウン
タ49Lからのボロー信号はFUEフラグ50U、
FLEフラグ50Lに導かれる。これにより同フ
ラグ50U,50Lがセツトし、1レコードの最
終データの読出しであることが示される。
UB20U,LB20Lから読出されたデータ
は、UPRレジスタ22U、LOWレジスタ22L
に保持される。UPRレジスタ22U、LOWレジ
スタ22Lの保持データはCMP23に導かれる。
また、UPRレジスタ22U、LOWレジスタ22
Lの保持データはOTUレジスタ24U、OTLレ
ジスタ24Lを介してINURレジスタ31U、
INLRレジスタ31Lにも導かれ、同レジスタ3
1U,31Lに保持される。
CMP23は、UPRレジスタ22U、LOWレ
ジスタ22Lからの両データの大小を比較する。
CMP23の比較結果は、主制御部38内の比較
制御部62に導かれる。比較制御部62には、
VCTカウンタ48からのキーフイールドエンド
を示すボロー信号も導かれる。比較制御部62
は、CMP23からの比較結果が、U>Lまたは
U<Lの場合は、その時点でU側レコード(この
例ではS1内の1レコード)とL側レコード(こ
の例ではS2内の1レコード)との指定キーフイ
ールド間での比較結果を確定し、CMP23の比
較結果を制御信号発生回路65に伝える。これに
対し、U=Lの場合には、比較結果を確定するこ
とはできないため、次のデータに対する比較結果
が与えられるまで、比較結果の確定を控える。但
し、VCTカウンタ48からのボロー信号により、
キーフイールドの終了(キーフイールドエンド)
を検出した場合には、U=Lを確定し、CMP2
3からの一致検出結果を制御信号発生回路65に
伝える。なお、上記の説明で、UはUB20Uか
らの読出しデータを示し、LはLB20Lからの
読出しデータを示す。
一方、INURレジスタ31U、INLRレジスタ
31Lに保持されたUB20U、LB20Lから
の読出しデータは、CMP23による比較動作と
並行して、URB30U、LRB30Lに書込まれ
る。このURB30U、LRB30Lに対する書込
みアドレスは、RAURレジスタ35U、RALR
レジスタ35Lによつて指定される。RAURレ
ジスタ35U、RALRレジスタ35Lは、1レ
コード分の書込みに際しクリアされるようになつ
ており、したがつてUB20U、LB20Lから
の読出しデータは、URB30U、LRB30Lの
0番地から書込まれる。
主制御部38内の制御タイミング発生回路60
は、FUEフラグ50UおよびFLEフラグ50L
の状態を監視している。そして、制御タイミング
発生回路60は、FUEフラグ50UおよびFLE
フラグ50Lが共にセツト状態となつたことを検
出すると、即ちU側レコード、L側レコードのう
ちレコード長の長い方のレコードの最終データの
読出しを検出すると、(URB30UまたはLRB
30Lからの1レコードの読出し出力が可能とな
つたとして)制御信号発生回路65に各種制御信
号の出力のタイミング指示を与える。
制御信号発生回路65は、制御タイミング発生
回路60からの指定タイミングで、MOPレジス
タ39に保持されているマージ演算指定情報中の
MRG−OPコード並びにAS/DSビツト、および
比較制御部62からの比較確定結果に応じ、UB
20U,LB20Lに対する読出しアドレス、割
込み制御部63、および出力制御部64などを制
御する各種制御信号を発生する。制御信号発生回
路65は、例えばROMである。
制御信号発生回路65は、MRG−OPコードに
よつてRESTRICT系演算が指定されている場合
(即ち、この例のようにREST−EQ演算の場合)
第12図に示す入出力論理に従つて各種制御信号
を出力する。但し、第12図の入出力論理は、マ
ージヤ10への入力リレーシヨン(この例では、
リレーシヨンS1,S2)が昇順でソートされて
いること(AS/DS=0)を前提としている。こ
の場合、制御信号発生回路65は、比較結果がU
<Lであれば、UB20Uから次のレコードが読
出され、LB20Lから現レコードが再度読出さ
れるように指示する制御信号を出力する。この制
御信号は、例えば、RAUレジスタ26U、RAL
レジスタ26Lへのロード信号であり、この場合
には、RALレジスタ26Lへのロード信号が出
力される。RALレジスタ26Lへのロード信号
が出力された場合、(レコード処理開始時にRAL
レジスタ26Lから)BULレジスタ27Lにロ
ードされた現レコードの先頭アドレスが、RAL
レジスタ26Lにロードされる。これにより、前
記したLB20Lからのデータ読出しと同様にし
て、現レコードを先頭データより順に再び読出す
ことが可能となる。一方、RAUレジスタ26U
については、次のデータのアドレス(この場合に
は、次のレコードの先頭アドレス)を示してお
り、何等変化はない。この場合、前記したUB2
0Uからのデータ読出しと同様にして、次のレコ
ードを先頭データより順に読出すことが可能とな
る。これに対し、比較結果がU=LまたはU>L
の場合には、制御信号発生回路65は、UB20
Uから現レコードが再度読出され、LB20Lか
ら次のレコードが読出されるように指示する制御
信号を出力する。特にU=L(即ちREST−EQの
条件成立)の場合には、制御信号発生回路65は
LRB30Lに書込まれたレコードの出力を指示
する有効な(論理“1”の)出力指示信号85L
を出力する。また、制御信号発生回路65は、比
較結果に無関係に有効な割込み許可信号74U,
74Lを出力する。
今、制御信号発生回路65からの制御信号によ
り、UB20Uからの現レコードの読出しおよび
LB20Lからの次のレコードの読出しが指示さ
れると共に、論理“1”の出力指示信号85Lが
出力されたものとする。制御信号発生回路65か
らの論理“1”の出力指示信号85Lは、FLO
フラグ53Lに導かれ、これによりFLOフラグ
53Lはセツトする。出力シーケンス制御部83
は、FUOフラグ53UおよびFLOフラグ53L
の状態を監視しており、フラグ53U,53Lの
少なくとも一方がセツトした場合、同フラグ53
U,53Lの状態、および図示せぬ出力選択制御
レジスタの指示内容に応じて出力制御を行なう。
例えば、出力選択制御レジスタにより識別番号
NTIDの付加が指示されている状態で、上記した
ようにFLOフラグ53Lがセツトした場合、出
力シーケンス制御部83は、まずNTID出力制御
部84Nに対しNTIDカウンタ32からの識別番
号NTIDの出力を指示する。また出力シーケンス
制御部83は、出力選択制御レジスタによる識別
番号NTID付加指示の有無に無関係に、NTIDカ
ウンタ32にカウントアツプイネーブル信号90
を出力する。
NTID出力制御部84Nは、出力シーケンス制
御部83からの指示に応じ、出力制御信号91
N、およびストローブ信号87Nを出力する。出
力制御信号91Nは第1図のゲート37Nに供給
される。これによりゲート37Nがイネーブルさ
れ、NTIDカウンタ32のカウント値である識別
番号NTIDがゲート37を介してROUTレジスタ
33に導かれる。一方、上記ストローブ信号87
NはOR86を介してゲート88に供給される。
ゲート88は、切出し制御部89からの出力許可
に応じ、OR86からの出力信号(この例ではス
トローブ信号87N)をストローブ信号93とし
てROUTレジスタ33に出力する。なお、切出
し制御部89の制御動作については、JOIN系演
算を例にとつて詳述する予定であり、ここでは
NTID出力制御部84N、URB読出し制御部8
4UおよびLRB読出し制御部84Lのいずれか
が出力制御動作期間中は、ゲート88に対し出力
許可が与えられるものとし、説明を省略する。
切出し制御部89からの出力許可により、ゲー
ト88からの出力信号であるストローブ信号93
がROUTレジスタ33に出力されると、(ゲート
37N経由でROUTレジスタ33に導かれてい
る)NTIDカウンタ32からの識別番号NTID
は、ROUTレジスタ33にラツチされる。そし
て、ROUTレジスタ33にラツチされたデータ
は、HMA17を介して図示せぬHMに転送され
る。
NTID出力制御部84Nは、NTIDカウンタ3
2からの識別番号NTIDの出力を終了すると、出
力シーケンス制御部83に対して出力終了を通知
する。これにより、出力シーケンス制御部83
は、LRB読出し制御部84Lに対しLRB30L
からのレコードの読出し出力を指示する。なお、
フラグ53U,53Lが共にセツトしている場合
には、出力シーケンス制御部83はURB読出し
制御部84UおよびLRB読出し制御部84Lに
対し、出力選択制御レジスタで指示された出力順
で読出し指示を与える。
LRB読出し制御部84Lは、出力シーケンス
制御部83からの指示に応じ、出力制御信号91
Lを出力する。この出力制御信号91Lは第1図
のゲート37Lに導かれる。これによりゲート3
7Lはイネーブルさる。この状態で、LRB読出
し制御部84LはRALRレジスタ35Lおよび
CTRカウンタ56をクリアし、しかる後RALR
レジスタ35Lを用いてLRB30Lからのデー
タ読出しを行なう。また、LRB読出し制御部8
4Lは、LRB30Lから所定バイトのデータを
読出し毎に、RALR35LおよびCTRカウンタ
56の内容を+1すると共に、ストローブ信号8
7Lを出力する。このストローブ信号87Lは
OR86を介してゲート88に供給され、ストロ
ーブ信号93としてROUTレジスタ33に供給
される。これにより、(ゲート37L経由で
ROUTレジスタ33に導かれている)LRB30
Lからの読出しデータは、ROUTレジスタ33
にラツチされ、前記したようにHMA17を介し
てHMに転送される。なお、LRB30Lからの
データ読出し期間中、UB20U,LB20Lか
ら次のレコードを読出し、同レコードを所定バイ
ト単位でURB30U,LRB30Lの0番地から
書込むことも可能である。この場合、URB30
U,LRB30Lに対するリード/ライト動作は、
UB20U,LB20Lに対するそれと同様に、
時分割で行なう必要がある。
このようにして、1レコード分のLRB30L
からの読出しデータが(識別番号NTIDに続い
て)マージヤ10から出力されたものとする。こ
のとき、CTRカウンタ56の内容とRSLレジス
タ43Lの示すL側リレーシヨン(この例ではS
2)のレコード長とを比較するCMP59Lの比
較結果は、一致を示している。LRB読出し制御
部84Lは、CMP59Lの一致検出により1レ
コードの読出し出力終了を判断し、出力シーケン
ス制御部83に対して出力終了を通知する。
(FUOフラグ53Uがセツトされていないこの例
では)出力シーケンス制御部83は、LRB読出
し制御部84Lからの出力終了通知により1出力
シーケンスの終了を判断し、カウンタストローブ
信号92をOR94に出力する。OR94は、出
力シーケンス制御部83からのカウンタストロー
ブ信号92を、カウンタストローブ信号95とし
て第1図のNTIDカウンタ32のクロツク端子
CKに出力する。NTIDカウンタ32のカウント
アツプイネーブル端子Eには、前記したように出
力シーケンス制御部83からカウントアツプイネ
ーブル信号90が供給されている。したがつて、
NTIDカウンタ32は上記カウントストローブ信
号95に応じてカウントアツプする。これによ
り、識別番号NTIDは+1される。
上記した動作が繰返され、例えば第10図に示
すように、RALレジスタ26Lの内容がWALレ
ジスタ25Lのそれに一致したものとする。この
場合、WALレジスタ25LおよびRALレジスタ
26Lの各内容を比較するCMP28Lは、論理
“1”の一致検出信号を出力する。この一致検出
信号はA68Lの一端に導かれる。A68Lの他
端にはFLWEDフラグ51Lからの論理“1”の
出力信号が導かれている。これは、FLWEDフラ
グ51Lが前記したようにセツト状態にあること
による。この場合、A68Lのアンド条件が成立
し、A68Lから論理“1”の信号が出力され
る。このA68Lからの論理“1”の信号は、
LB20Lに対するリレーシヨンの書込み(この
例ではS2)が完了している状態で、RALレジ
スタ26Lの示す読出しアドレスがWALレジス
タ25Lの書込みアドレスに一致したこと、即ち
LB20Lが空状態となつたことを示す。A68
Lからの論理“1”の信号はゲート69Lに導か
れる。ゲート69Lは、A68Lからの論理
“1”の信号を、制御タイミング発生回路60か
らの指定タイミング(レコードエンド検出タイミ
ング)でゲートする。この結果、A68Lからの
論理“1”の信号はFLEMPフラグ52Lに出力
され、同フラグ52Lはセツトする。FLEMPフ
ラグ52Lからの論理“1”の(セツト)出力信
号はA73Lの一端に導かれる。A73Lの他端
には制御信号発生回路65からの割込み許可信号
74Lが導かれる。この場合、割込み許可信号7
4Lは前記したように論理“1”(第12図参照)
であり、したがつてA73Lは論理“1”の信号
を出力する。A73Lからの論理“1”の信号
は、OR75を介して割込み発生回路76に導か
れ、これにより割込み発生回路76はCPU11
に対する割込みを発生する。CPU11は、マー
ジヤ10(内の割込み発生回路76)からの割込
みを受付けると、マージヤ10のステータスの読
出しを行ない、割込み要因の判別を行なう。
CPU11は、マージヤ10からのステータス
の読取りにより、LB20Lが空状態となつたこ
と、即ちマージヤ10での演算終了を判断する。
これは、WAUレジスタ25UおよびRAUレジ
スタ26Uの各内容を比較するCMP28Uから
一致検出信号が出力され、FUEMPフラグ52U
がセツトした場合も同様である。CPU11は、
上記した関係演算(REST−EQ)で(条件成立
により)マージヤ10から出力されたレコードの
数(もしU側およびL側共に出力する場合であれ
ばレコードの組数)を知りたい場合、以下に述べ
るようにNTIDカウンタ32の内容の読取を行な
う。
CPU11は、まずマージヤ10を機器指定し
て、しかる後NTIDカウンタ32を指定するコマ
ンドデータ(REG.IND=1)をコマンド信号
CMDと共に入出力バス18に出力する。入出力
バス18上のコマンドデータはマージヤ10の入
出力インタフエース40内の入力ドライバ102
を介し、コマンド信号CMDは入出力ドライバ1
01を介し、それぞれCMDレジスタ41に供給
される。しかして、NTIDカウンタ32を指定す
るコマンドデータは、コマンド信号CMDに応じ
てCMDレジスタ41に保持される。CMDレジス
タ41に保持されたコマンドデータは、この例の
ようにREG.IND=1の場合、ゲート106を介
してDEC107,108に供給される。
CPU11は、NTIDカウンタ32を指定する
コマンドデータを転送すると、リード信号RDを
入出力バス18経由でマージヤ10に転送する。
CPU11からのリード信号RDは、マージヤ10
の入出力インタフエース40内の入出力ドライバ
101を介してDEC108に供給される。DEC
108は、上記リード信号RDによりイネーブル
され、ゲート106より供給されるCMDレジス
タ41からのコマンドデータのデコード信号を出
力する。上記コマンドデータがNTIDカウンタ3
2を指定しているこの例では、DEC108から
は出力制御信号110が出力される。この出力制
御信号110はゲート111に供給される。ゲー
ト111にはNTIDカウンタ32からの識別番号
NTIDが供給されている。ゲート111は、DEC
108からの出力制御信号110によりイネーブ
ルされ、NTIDカウンタ32からの識別番号
NTIDをゲートする。この結果、NTIDカウンタ
32からの識別番号NTIDは、ゲート111を介
して出力ドライバ103に出力され、同ドライバ
103により入出力バス18に送出される。
CPU11は、入出力バス18上の識別番号
NTIDを取込み、その値から初期値を減じること
により、出力されたレコード数(組数)を知るこ
とができる。
ところで、所望の関係演算が終了した状態で、
UB20U、LB20Lに格納されているデータ
に対し、別の演算を行ないたい場合がある。この
場合、マージヤ10のみを起動するMRG.GOコ
マンドを使用する。具体的には、第10図のに
示すように、所望のマージ演算コマンド(この例
ではREST−NE(L)コマンド)と共に、
URTRY並びにLRTRYが指定されたMRG.GO
コマンド、即ちMRG.GO=URTRY=LRTRY
=1、REG.IND=RST=ENG.GO=0のMRG.
GOコマンドが適用される。第7図のクリア回路
61に示すように、URTRYビツトは、OR80
Uの一端に導かれ、LRTRYビツトはOR80L
の一端に導かれる。したがつて、URTRY=
LRTRY=1のこの例では、OR80U,80L
の出力レベルは論理“1”となる。このため、制
御タイミング発生回路60からのスタートタイミ
ングで、URTRYビツトに対応してRAUレジス
タ26UおよびFUEMPフラグ52Uがクリアさ
れ、LRTRYビツトに対応してRALレジスタ2
6LおよびFLEMPフラグ52Lがクリアされ
る。一方、WAUレジスタ25U、WALレジス
タ25L、FUWEDフラグ51U、FLWEDフラ
グ51Lについては、前の状態、即ち第10図の
の示すREST−EQ(L)、ENG.GOコマンドの
実行終了時の状態を保持する。したがつて、UB
20U,LB20Lに格納されているデータに対
し、その先頭データから所望の演算(この例では
REST−NE(L)演算)を行なうことができる。
なお、REST−NEコマンドでは、条件データの
キーフイールドと、対象リレーシヨンのそれとが
等しくなく、且つLB20Lに対するレコード更
新が行なわれるときのU側データ(レコード)が
出力対象となる。
次に、LB20Lの容量を越える対象リレーシ
ヨンに対するRESTRICT系演算(REST−EQ演
算)について、第13図および第14図を参照し
て説明する。なお、第13図は第10図に、第1
4図は第11図に対応する。今、条件データとし
ての第1のリレーシヨンをS1、対象リレーシヨ
ン(第2のリレーシヨン)をS2とする。また、
S2は、LB20Lの容量単位に応じてS21〜
S23に分割されるものとする。なお、条件デー
タであるS1は、UB20Uの容量を越えないこ
とを前提とする。この場合、CPU11からマー
ジヤ10に対し、まずLOAD(U)、ENG.GOコ
マンドが与えられる。これによりUB20Uに関
するレジスタ、フラグ類がクリアされ(第13図
のLOAD(U)、ENG.GOコマンドの欄参照)、
S1がUB20Uの0番地から所定バイト単位で
書込まれる。S1の書込みが完了すると、CPU
11からマージヤ10に対し、REST−EQ(L)、
ENG.GOコマンドが与えられる。これにより、
LB20Lに関するレジスタ、フラグ類がクリア
され(第13図のREST−EQ(L)、ENG.GO
コマンドの欄参照)、S21をLB20Lの0番地
から始まる領域に書込む動作が開始される。LB
20Lへのデータ書込みが開始されると、前記し
たようにUB20UおよびLB20Lからのデー
タ読出しが開始され、VDLレジスタ47で指定
されたキーフイールド部分の比較が行なわれる。
そして、FUEフラグ50UおよびFLEフラグ5
0Lが共にセツト状態となると、レコード間の比
較結果、MRG.GOコマンド、およびAS/DSビ
ツトにより、URB30U,LRB30Lに書込ま
れたレコードに対する出力指示、およびレコード
更新が制御され、次のレコード処理に進む。この
とき、識別番号NTIDに対する出力制御も行われ
ることは勿論である。
このようにして、REST−EQ(L)、ENG.GO
コマンドで指定された演算が実行され、例えば第
13図および第14図のに示すように、RAL
レジスタ26Lの内容がWALレジスタ25Lの
それに一致し、CMP28Lから一致検出番号が
出力されたものとする。この場合、前記した
RESTRICT系演算(REST−EQ)の場合と同様
に、FLEMPフラグ52Lがセツトシ、CPU11
に対し割込みがかかる。これによりCPU11は、
S1とS21との間の演算終了を判断する。
CPU11は、次のS22とUB20U内のS1と
の間のREST−EQ演算のために、マージヤ10
に対し、REST−EQ(L)、ENG.GOコマンドを
与える。但し、S1については、再度先頭レコー
ドから読出す必要があるため、第13図のに示
すように、URTRYが指定されたENG.GOコマ
ンド、即ちENG.GO=URTRY=1、REG.ING
=RST=MRG.GO=LRTRY=0のENG.GOコ
マンドが適用される。この場合、マージヤ10の
起動に際し、第7図のクリア回路61により、論
理“1”のURTRYビツトに応じてRAUレジス
タ26UおよびFUEMPフラグ52Uがクリアさ
れ、論理“1”のENG.GOビツト(およびU/
LビツトによるLB20L指定)に応じてWALレ
ジスタ25L、FLWEDフラグ51L、RALレ
ジスタ26L、FLEMPフラグ52Lがクリアさ
れる。また、WAUレジスタ25U、FUWEDフ
ラグ51Uについては、前の状態を保持する。し
たがつて、UB20Uに既に書込まれているS1
については、その先頭レコードからの読出しが可
能となる。また、S1が全て読出され、UB20
Uが空状態となる場合の正しい検出も可能とな
る。一方、S22については、その先頭レコード
からLB20Lに書込まれ、同先頭レコードから
読出されることは、明らかである。
このようにして、REST−EQ(L)、並びに
URTRY指定のENG.GOコマンドで指定された
演算が実行され、例えば第13図および第14図
のに示すように、RAUレジスタ26Uの内容
がWAUレジスタ25Uのそれに一致し、CMP2
8Uから一致検出信号が出力されたものとする。
この場合、FUEMPフラグ52Uがセツトし、
CPU11に対し割込みがかかる。これにより
CPU11は、S1とS22との間の演算終了を
判断する。CPU11は、次のS23とUB20U
内のS1との間のREST−EQ演算のために、マ
ージヤ10に対し、REST−EQ(L)、並びに
URTRY指定のENG.GOコマンドを与える。こ
れにより、UB20Uに既に書込まれているS1
と、LB20Lに新たに書込まれるS23との間
のREST−EQ演算が、その先頭レコードから行
なわれる。
次に、マージヤ10による関係演算処理につい
て、JOIN系演算の場合を例にとり説明する。
JOIN系演算は、2つのリレーシヨンの指定キー
フイールドの比較を行ない、条件が成立した組で
新たなリレーシヨンを作り出す、いわゆる2スト
リーム入力合成出力型の演算である。例えば、
JOIN系演算の1つであるJOIN−ALL演算では、
2つのリレーシヨンの全ての組合せレコードが無
条件で出力される。
マージヤ10によるJOIN系演算では、LOAD
(U)演算指定により、第1のリレーシヨンを
UB20Uに格納した後、JOIN(L)系演算指定
により第2のリレーシヨンをLB20Lに格納し
つつ、JOIN演算が行なわれる。そして、UB2
0Uからの読出しレコード(U側レコード)の指
定キーフイールドと、LB20Lからの読出しレ
コード(L側レコード)のそれとの比較を行な
い、演算条件が成立したとき、U側およびL側レ
コードの出力指示が制御信号発生回路65から与
えられる。JOIN−ALL演算における制御信号発
生回路65の入出力論理を、第15図に示す。但
し、第15図の入出力論理は、マージヤ10への
入力リレーシヨンが昇順でソートされていること
を前提としている。なお、JOIN系演算では、第
1および第2のリレーシヨンは、UB20U,
LB20Lの容量を越えず、そのソート順も同じ
必要がある。ソート順が同じであることは、前記
したRESTRICT系演算の場合にも同様である。
さて、UB20U,LB20Lからの読出しレ
コードは、URB30U,LRB30Lに書込まれ
る。そして、FUEフラグ50UおよびFLEフラ
グ50Lが共にセツト状態となると、即ち、U側
レコードおよびL側レコードの最終データの読出
しが共に検出されると、制御信号発生回路65は
前記したRESTRICT系演算の場合と同様に、
URB30U,LRB30Lに書込まれたレコード
の出力指示、およびレコード更新の制御を行な
う。今、JOIN−ALL演算が指定されているもの
とすると、制御信号発生回路65は、第15図の
入出力論理に示すように、論理“1”の出力指示
信号85U,85Lを出力する。また制御信号発
生回路65は、LB20Lからの読出しレコード
が第2のリレーシヨンの最終レコードであるか否
か(LENDであるか否か)により、レコード更新
制御を行なう。もし最終レコードでない場合に
は、制御信号発生回路65は、UB20Uから現
レコードが再度読出され、LB20Lから次のレ
コードが読出されるように指示する制御信号を出
力する。これに対し、最終レコードの場合
(LENDの場合)には、制御信号発生回路65は、
UB20Uから次のレコードが読出され、LB2
0Lから(第2のリレーシヨンの)先頭レコード
が読出されるように指示せる制御信号を出力す
る。
制御信号発生回路65からの論理“1”の信号
85U,85Lは、FUOフラグ53U、FLOフ
ラグ53Lに導かれ、これにより同フラグ53
U,53Lはセツトする。出力シーケンス制御部
83は、FUOフラグ53UおよびFLOフラグ5
3Lを監視しており、フラグ53U,53Lの少
なくとも一方がセツトした場合、同フラグ53
U,53Lの状態、および図示せぬ出力選択制御
レジスタの指示内容に応じて出力制御を行なう。
例えば、出力選択制御レジスタにより識別番号
NTIDの付加が指示され、且つU側レコード→L
側レコードの出力順が指示されている状態で、上
記したようにFUOフラグ53UおよびFLOフラ
グ53Lがセツトした場合、出力シーケンス制御
部83は、まずNTID出力制御部84Nに対し
NTIDカウンタ32からの識別番号NTIDの出力
を指示する。また出力シーケンス制御部83は、
出力選択制御レジスタによる識別番号NTID付加
指示の有無に無関係に、NTIDカウンタ32にカ
ウントアツプイネーブル信号90を出力する。
NTID出力制御部84Nは、出力シーケンス制
御部83からの指示に応じ、前記した
RESTRICT系演算の場合と同様に、出力制御信
号91Nおよびストローブ信号87Nを出力し、
NTIDカウンタ32で生成された識別番号NTID
をROUTレジスタ33にラツチせしめ、外部に
出力する。NTID出力制御部84Nは、NTIDカ
ウンタ32からの識別番号NTIDの出力を終了す
ると、出力シーケンス制御部83に対して出力終
了を通知する。これにより、出力シーケンス制御
部83は、URB読出し制御部84Uに対して
URB30Uからのレコードの読出し出力を指示
すると共に、切出し制御部89にU側レコードに
対する切出し制御を指示する。
URB読出し制御部84Uは、出力シーケンス
制御部83からの指示に応じ、出力制御信号91
Uを出力する。この出力制御信号91Uは第1図
のゲート37Uに導かれる。これによりゲート3
7Uはイネーブルされ、URB30Uからの読出
しデータのROUTレジスタ33への出力が許可
される。この状態で、URB読出し制御部84U
はRAURレジスタ35UおよびCTRカウンタ5
6をクリアし、しかる後RAURレジスタ35U
を用いてURB30Uからのデータ読出しを行な
う。また、URB読出し制御部84Uは、URB3
0Uから所定バイトのデータを読出す毎に、
RAURレジスタ35UおよびCTRカウンタ56
の内容を+1すると共に、ストローブ信号87U
を出力する。CTRカウンタ56の内容は、CMP
57U〜59U,CMP57L〜59Lに導かれ、
OSUAレジスタ54U、OSUBレジスタ55U、
RSUレジスタ43U、OSLAレジスタ54L、
OSLBレジスタ55L、RSLレジスタ43Lと比
較される。CMP57U,58UおよびCMP57
L,58Lの比較結果は切出し制御部89に導か
れる。
切出し制御部89は、出力シーケンス制御部8
3からU側レコードの切出し制御を指示された場
合、CMP57UおよびCMP58Uを監視する。
そして、切出し制御部89は、現読出し中のデー
タのレコード内位置を示すCTRカウンタ56の
内容(この例では、RAURレジスタ35Uの内
容、即ちURB30Uに対する読出しアドレスに
一致)をXとすると、CMP57U,57Uによ
りOSUA≦X≦OSUBが検出されている期間は、
ゲート88に対して出力許可を与える。即ち、切
出し制御部89は、通常はゲート89に対して出
力許可を与えているが、出力シーケンス制御部8
3から切出し制御を指示されると、出力許可/禁
止の制御を行なう。この結果、切出し制御部89
から出力許可が与えられている期間だけ、URB
読出し制御部84Uからのストローブ信号87U
がストローブ信号93としてROUTレジスタ3
3に導かれ、URB30Uからの読出しデータが
ROUTレジスタ33にラツチされる。したがつ
て、OSUA(第1の切出し位置)およびOSUB(第
2の切出し位置)を適切な値に設定することによ
り、出力対象となるU側レコードから所望の属性
だけを選択的に切出し出力することができる。こ
れは、L側レコードについても同様である。な
お、OSUA(OSLA)=0、OSUB(OSLB)=RSU
の場合には、1レコード分のデータがそのまま出
力される。
URB30Uからの読出しデータが該当レコー
ドの最終データとなると、CMP59Uは一致を
検出し、一致検出信号を出力する。URB読出し
制御部84Uは、CMP59Uから一致検出信号
が出力されると、レコード読出し終了を判断し、
その旨を出力シーケンス制御部83に通知する。
出力シーケンス制御部83は、URB読出し制御
部84Uから終了が通知され、この例のように
FLOフラグ53Lがセツトされていると、LRB
読出し制御部84Lに対してLRB30Lからの
レコードの読出し出力を指示すると共に、切出し
制御部89にL側レコードに対する切出し制御を
指示する。これにより、上記した場合と同様にし
て、L側レコードのうちOSLA≦X≦OSLBを満
足するフイールド部分のデータが切出し出力され
る。
LRB読出し制御部84Lは、1レコードの読
出し制御を終了すると、その旨を出力シーケンス
制御部83に通知する。出力シーケンス制御部8
3は、LRB読出し制御部84Lからの出力終了
通知により1出力シーケンスの終了を判断し、カ
ウンタストローブ信号92を出力する。この信号
92はOR94を介してカウンタストローブ信号
95としてNTIDカウンタ32のクロツク端子
CKに供給される。これにより、NTIDカウンタ
32の内容(識別番号NITD)が+1される。
以下、同様にしてJOIN−ALL演算が繰返し行
われ、その都度、識別番号NTID、U側レコード
およびL側レコードの組が出力される。そして、
UB20Lが空状態となりFUEMPフラグ52U
がセツトすると、制御信号発生回路65からの論
理“1”の割込み許可信号74Uに応じAU73
Uから論理“1”の信号が出力される。この論理
“1”の信号はOR75を介して割込み発生回路
76に供給され、これにより同回路76から
CPU11に対する割込みが発生される。CPU1
1は、この割込みに応じてマージヤ10のステー
タスの読取りを行ない、演算終了を判断する。
さて、上記のJOIN−ALL演算においては、第
1のリレーシヨンのレコード数が2n、第2のリレ
ーシヨンのレコード数が2mであるものとすると、
その出力リレーシヨンのレコード数は2n+mとな
る。したがつてNTIDカウンタ32のビツト長1
としては少なくともn+mビツト必要である。も
しソフトウエアの設定ミスなどにより、1<n+
mとなつた場合には、上記のJOIN−ALL演算に
おいてNTIDカウンタ32がオーバーフロー状態
となり、出力リレーシヨン中の識別番号NTIDが
ユニークでなくなつてしまう。そこでこの実施例
では、以下に述べるように、NTIDカウンタ32
のオーバーフロー状態を検出するようにし、同状
態の検出時には動作を停止してCPU11に異常
終了を通知するようにしている。
NTIDカウンタ32は、そのカウント値がオー
ル“1”となると、キヤリー出力端子COから論
理“1”のキヤリー信号96を出力する。このキ
ヤリー信号96はA121に入力される。A12
1には、出力シーケンス制御部83からNTIDカ
ウンタ32に供給されるカウントアツプイネーブ
ル信号90およびカウンタストローブ信号95も
入力される。A121は、NTIDカウンタ32か
ら論理“1”のキヤリー信号96が出力された次
のカウンタストローブ信号95のタイミング、即
ちNTIDカウンタ32がオーバーフロー状態とな
るタイミングで論理“1”の信号を出力する。A
121からの論理“1”の信号はFOVFフラグ1
22に供給される。FOVFフラグ122は、A1
21からの論理“1”の信号に応じてセツトし、
これによりNTIDカウンタ32がオーバーフロー
状態となつたことが示される。
FOVFフラグ122がセツトすると、そのセツ
ト出力によりマージヤ10の動作(この例では
JOIN−ALL演算)が停止され、次に述べるよう
にCPU11に対する割込み(エラー割込み)が
発生する。即ち、FOVFフラグ122のセツト出
力は異常検出回路123に供給される。異常検出
回路123はFOVFフラグ122のセツト出力に
より異常(エラー発生)を検出すると、論理
“1”の信号を出力する。異常検出回路123か
らの論理“1”の信号はOR75を介して割込み
発生回路76に供給され、これにより同回路76
からCPU11に対する割込みが発生される。
CPU11は、この割込みに応じ、FOVFフラグ
122等によつて示されるマージヤ10のステー
タスの読取りを行ない、NTIDカウンタ32のオ
ーバーフローによる異常終了を判断する。これに
より、ソフトウエア設定ミスによるシステムの誤
動作が防止できる。
[発明の効果] 以上詳述したようにこの発明によれば、各種の
関係演算が、極めて効率よく行なえる。また、こ
の発明によれば、演算条件成立により外部に出力
されるレコード(レコード組)に新たな識別子を
付すことができるので、その後のデータ処理に極
めて都合がよい。しかも、この発明によれば、ソ
フトウエア設定ミスなどにより、出力レコード数
が上記の識別子で表現できる範囲を越えた場合に
は、その旨を検出して動作を停止し、上位装置に
異常終了を通知できるので、システムの誤動作を
防止できる。
【図面の簡単な説明】
第1図はこの発明の一実施例に係るマージヤ
(関係演算処理装置)のブロツク構成図、第2図
は第1図のマージヤを適用する関係データベース
エンジン(RDBE)の全体構成図、第3図はマー
ジ演算指定情報のフオーマツト図、第4図はコマ
ンドデータのフオーマツト図、第5図は第1図に
示す主制御部の機能構成を示すブロツク図、第6
図は第5図に示す割込み制御部周辺のブロツク構
成図、第7図は第5図に示すクリア回路周辺の回
路構成図、第8図は第5図に示す出力制御部周辺
のブロツク構成図、第9図は第1図に示す入出力
インタフエースのブロツク構成図、第10図は
RESTRICT(制約)系演算(REST−EQ)を実
行するためのコマンド列と、各コマンドによる起
動時および終了時における各種レジスタ、フラグ
類の内容との対応関係を示す図、第11図は第1
0図に示す各コマンドの実行終了時のU/Lバツ
フアへの書込み並びに読出し位置の変化を説明す
る図、第12図はRESTRICT(制約)系演算
(REST−EQ)が指定されている場合の制御信号
発生回路の入出力論理の一例を示す図、第13図
および第14図は第10図および第11図に対応
するもので、対象リレーシヨンがマージヤのバツ
フア容量を越える場合のRESTRICT(制約)系
演算を説明するための図、第15図はJOIN系演
算(JOIN−ALL)が指定されている場合の制御
信号発生回路の入出力論理の一例を示す図であ
る。 10……マージヤ、11……CPU、20U…
…Uバツフア、20L……Lバツフア、23,2
8U,28L,57U〜59U,57L〜59L
……比較器(CMP)、27L……BUUレジスタ、
27L……BULレジスタ、30U……URBバツ
フア、30L……LRBバツフア、32……
NTIDカウンタ、38……主制御部、39……
MOPレジスタ、41……CMDレジスタ、42…
…TRNレジスタ、43U……RSUレジスタ、4
3L……RSLレジスタ、47……VDLレジスタ、
50U……FUEフラグ、50L……FLEフラグ、
51U……FUWEDフラグ、51L……FLWED
フラグ、52U……FUEMPフラグ、52L……
FLEMPフラグ、53U……FUOフラグ、53L
……FLOフラグ、54U……OSUAレジスタ、
54L……OSLAレジスタ、55U……OSUBレ
ジスタ、55L……OSLBレジスタ、61……ク
リア回路、62……比較制御部、63……割込み
制御部、64……出力制御部、65……制御信号
発生回路、83……出力シーケンス制御部、84
N……NTID出力制御部、84U……URB読出
し制御部、85L……LRB読出し制御部、12
2……FOVFフラグ。

Claims (1)

  1. 【特許請求の範囲】 1 ソート処理が施された第1のリレーシヨンを
    格納する第1バツフア20Uと、 ソート処理が施された第2のリレーシヨンを格
    納する第2バツフア20Lと、 演算識別を示すオペレーシヨンコード、および
    上記第1または第2バツフアのいずれか一方を指
    定するバツフア指定ビツトを保持する第1レジス
    タ39と、 上記第1または第2バツフアに格納されるリレ
    ーシヨンを構成するレコードのレコード数を示す
    レコード数情報を保持する第2レジスタ42と、 上記第1または第2バツフアに格納されるリレ
    ーシヨンを構成するレコードのレコード長を示す
    レコード長情報を保持する第3レジスタ43U,
    43Lと、 上記リレーシヨンのキーフイールド長を示すキ
    ーフイールド長情報を保持する第4レジスタ47
    と、 上記第1レジスタに保持された上記オペレーシ
    ヨンコードによりロード処理または関係演算処理
    が指定されている場合に、上記第1または第2バ
    ツフアのうち上記バツフア指定ビツトで指定され
    たバツフアに、上記第2レジスタで指定されるレ
    コード数、および上記第3レジスタで指定される
    レコード長で示されるデータ量の上記リレーシヨ
    ンを書込む手段38と、 上記第1レジスタに保持された上記オペレーシ
    ヨンコードにより関係演算処理が指定されている
    場合に、上記第1および第2バツフアから1レコ
    ードずつデータを読出す手段65と、 上記第1バツフアから読出された1レコード分
    のデータを一時格納する第3バツフア30Uと、 上記第2バツフアから読出された1レコード分
    のデータを一時格納する第4バツフア30Lと、 関係演算処理に際し入出力バスより初期値設定
    が可能なカウンタ32と、 上記第1および第2バツフアから読出された上
    記両レコードを上記第4レジスタで指定されてい
    る上記キーフイールド間で比較する比較回路23
    と、 この比較回路の比較結果および上記第1レジス
    タに保持された上記オペレーシヨンコードに応
    じ、上記第1および第2バツフアに対する読出し
    アドレスの更新制御を行なうと共に、上記第3お
    よび第4バツフアに一時格納された両レコードま
    たはいずれか一方のレコードの外部への出力制御
    を行なう第1出力制御手段65と、 この第1出力制御手段によるレコード出力に際
    し、上記カウンタのカウント値を出力レコードの
    識別子として外部に出力する第2出力制御手段8
    4Nと、 上記第1出力制御手段によるレコード出力に応
    じ、上記カウンタのカウント値を更新制御するカ
    ウンタ制御手段83と、 このカウンタ制御手段によるカウント更新制御
    タイミングで上記カウンタからのキヤリー出力の
    有無を調べ、カウンタ・オーバーフローを検出す
    るオーバーフロー検出手段121,122と、 この検出手段の検出結果に応じてシステム動作
    を停止し、上位装置に異常終了を通知する異常終
    了通知手段123と を具備することを特徴とする関係演算処理装置。
JP60120634A 1985-06-05 1985-06-05 関係演算処理装置 Granted JPS61279929A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60120634A JPS61279929A (ja) 1985-06-05 1985-06-05 関係演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60120634A JPS61279929A (ja) 1985-06-05 1985-06-05 関係演算処理装置

Publications (2)

Publication Number Publication Date
JPS61279929A JPS61279929A (ja) 1986-12-10
JPH0373022B2 true JPH0373022B2 (ja) 1991-11-20

Family

ID=14791076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60120634A Granted JPS61279929A (ja) 1985-06-05 1985-06-05 関係演算処理装置

Country Status (1)

Country Link
JP (1) JPS61279929A (ja)

Also Published As

Publication number Publication date
JPS61279929A (ja) 1986-12-10

Similar Documents

Publication Publication Date Title
KR950000550B1 (ko) 반도체기억장치
US4701846A (en) Computer system capable of interruption using special protection code for write interruption region of memory device
JPS6133218B2 (ja)
JP4893427B2 (ja) マイクロコンピュータシステム
JPH0373022B2 (ja)
JPH0373018B2 (ja)
JPH0370822B2 (ja)
JPH0373017B2 (ja)
JPH0370824B2 (ja)
JPH0370823B2 (ja)
JPH0370825B2 (ja)
JPH0370820B2 (ja)
JPH0370821B2 (ja)
JPH06274462A (ja) 共有メモリの非同期書込み方式
JPH01123342A (ja) メモリの書込保護回路
JP2569693B2 (ja) マイクロコンピュータ
JPS5840619A (ja) シ−ケンスコントロ−ラおよびその制御方法
JPS603049A (ja) バスインタ−フエ−ス装置
JPH09319592A (ja) マイクロコンピュータ
JPH0630056B2 (ja) 信号処理装置
SU1231507A1 (ru) Устройство дл обмена информацией двух электронно-вычислительных машин
JPH0215353A (ja) 特定アドレス時異常設定方式
JPH053612B2 (ja)
JPS6226738B2 (ja)
JPS61199104A (ja) メモリ多重化型プログラマブルコントローラ

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term