JPH0658632B2 - デ−タ処理装置 - Google Patents

デ−タ処理装置

Info

Publication number
JPH0658632B2
JPH0658632B2 JP61169918A JP16991886A JPH0658632B2 JP H0658632 B2 JPH0658632 B2 JP H0658632B2 JP 61169918 A JP61169918 A JP 61169918A JP 16991886 A JP16991886 A JP 16991886A JP H0658632 B2 JPH0658632 B2 JP H0658632B2
Authority
JP
Japan
Prior art keywords
instruction
address
data
predicate
type
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
JP61169918A
Other languages
English (en)
Other versions
JPS6326735A (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 JP61169918A priority Critical patent/JPH0658632B2/ja
Publication of JPS6326735A publication Critical patent/JPS6326735A/ja
Publication of JPH0658632B2 publication Critical patent/JPH0658632B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プロローグのような述語論理型言語の実行に
適したデータ処理装置に関するものである。
〔従来の技術〕
論理型言語のひとつであるプロローグでは、ユニフイケ
ーシヨンとバツクトラツクを主な実行メカニズムとして
プログラムが実行される。即ち、目的とするゴールに対
して、対象となるクローズのヘツドとのユニフイケーシ
ヨンが成功した場合には、そのプログラムの実行は、当
該クローズのボデイ部に移り、そのボデイ部に含まれて
いるゴールに対する証明が行われる。そして当該クロー
ズのどのゴールに対しても証明が失敗すれば、別のクロ
ーズへ移り(バツクトラツク)、ここでまたそのヘツド
とのユニフイケーシヨンが試みられる。
ゴールの証明は、そのゴールに対しての述語呼出しから
始められる。述語呼出しは、証明するゴールと、述語及
び引数の数が同一である述語をヘツドに持つクローズ群
との間で行われる。述語呼出し時には、ユニフイケーシ
ヨン対象となるクローズが複数ある場合、バツクトラツ
クのための制御フレームが生成される(ユニフイケーシ
ヨン対象クローズが一個しか存在しない場合には、別の
選択技がないのでバツクトラツクのための制御フレーム
を生成する必要はない。しかし、一般には、別解のない
クローズはまれで多く場合、別解を持つ)。この場合、
ユニフイケーシヨンが失敗するクローズを予めしらべて
おいて、探索範囲から外す手法により、ユニフイケーシ
ヨンの効率を改善する方法が開発されている。その主な
方式として、ゴールの特定の引数のデータ型式に応じて
ユニフイケーシヨン対象クローズを絞るタイプインデキ
シング方式がある。この方式は、ユニフイケーシヨンに
於ては、ゴールとヘツドの引数間では未定義の変数以外
は同一の型としかユニフイケーシヨンは成功しないた
め、タイプインデキシングによつて、予めユニフイケー
シヨンの失敗が予想されるクローズをユニフイケーシヨ
ン対象から外すことができる、という原理にもとづいた
ものである(ワレン「抽象プロローグ命令セツト」;
D,H,Warren,“An Abstract Prolog Instruction S
et”,Technical Report309,AI Center,SRI
International,1983参照)。
タイプインデキシングを採用した場合のアセンブラリス
トの例を第3図に示す。これは2つのリストを結合する
プログラム“concatenate”のソースプログラムと、そ
のアセンブラリストを示している。この“concatenat
e”プログラムは再帰呼出しにより自分自身即ち、conca
tenate述語を呼出しており、この呼出しは2つの命令、
即ちアセンブラコード中の“execute”命令及び“switc
h-on-term”命令である。
〔発明が解決しようとする問題点〕
上記従来技術に於ては、述語呼出し時にプログラム上で
2回の分岐、即ちexecute命令と、switch-on-term命令
で分岐を行つている。しかし、一般に分岐は処理の流れ
を変えるものであるから、パイプライン処理の効率を下
げる要因となつており、処理の高速化のためにはプログ
ラムの分岐回数を少くすることが求められていた。
本発明は以上の欠点に鑑み為されたもので、その目的と
するところは、プロローグプログラムの実行に於いて、
述語呼出し時の分岐回数を減らし、処理性能の改善を図
つたデータ処理装置を提供することにある。
〔問題点を解決するための手段〕
上記目的は、タイプインデキシングを行うデータのタグ
部を取り出し、そのタグの種類に応じたオフセットデー
タを生成する回路を設け、述語呼出し命令は、タイプイ
ンデキシングを行うデータを上記回路に入力してオフセ
ツトデータを得、これと命令中のオペランドで与えられ
るタイプインデキシング用テーブルのベースアドレスと
を加算して得たアドレスを用いて前記タイプインデキシ
ング用テーブル内の値を読出し、その値をプログラムカ
ウンタにセットする、ことにより達成される。
〔作用〕
第3図の“switch-on-term”命令は、データタイプに応
じて分岐先アドレスc1a,c1,c2,failへ分岐す
る命令である。タイプインデキシング用テーブルには、
当該プログラム中のこれらの分岐先アドレスを格納して
おき、述語呼出し命令にはこのテーブルの先頭アドレス
(ベースアドレス)をオペラントとして持たせる。そし
てこの述語呼出し命令発行時(この発行は第3図の“ex
ecute”命令の発行と同じ)に、上記回路によりタイプ
インデキシングを行うデータのタイプを示すタグをしら
べそのタグに応じたオフセツトデータを生成して、これ
とベースアドレスからデータタイプに対応した分岐先ア
ドレスをタイプインデキシング用テーブルから読みとれ
るから、タイプインデキシング後、つまり第3図で2回
の分岐を行つた後に実行すべき命令のアドレスが1つの
述語呼出し命令によりプログラムカウンタにセツトでき
る。
〔実施例〕
以下、本発明の実施例を詳細に説明する。第4図は本発
明のデータ処理装置の全体構成を示している。該処理装
置はデータバス10、制御回路20、及びメモリ30か
ら成り、データバス10とメモリ30とはアドレスバス
40、データバス50で結ばれている。制御回路20は
データバス10の動作を制御する回路である。
第5図は、第4図中のデータバス10の詳細なブロツク
図であり、メモリ30から取出した命令を記憶する命令
バツフア101(IBR)、このバツフア101内の命
令をアラインして出力するためのアライナ102(AL
GN)、命令語内に含まれるデイスプレイスメントを保
持するためのレジスタ103(DSPR)、タグ部を除
いたデータ又はタグ部だけを取出すためのマスク回路1
10(MSK)、演算器111(ALU)、レジスタフ
アイル112(RF)、プログラムカウンタ120(P
C)、プログラムカウンタの退避レジスタ121(C
P)、命令のフエツチアドレスを与えるカウンタ122
(FP)、タグ部を保持するレジスタ130、131(L
TAGR,RTAGR)、タグパターンを変換してオフセツト値を
生成する生成回路132(ENC)、タグの値をデコー
ドする回路133(DEC)、メモリアドレスレジスタ
140(MAR)、メモリライトデータを保持するレジ
スタ141(MWR)、メモリ30から取出したデータ
を保持するレジスタ142(OBR)、ドライバ15
0,151,152、ソースデータバス160,16
1、デステイネイシヨンデータバス162、タグのデコ
ード結果を制御回路30に通知する信号線170、及び
命令語のオペレーシヨンコード部を制御回路30に送出
する信号線171から構成されている。
以上のような構成に於て、本発明の特徴とする述語呼出
し時の動作に関わる部分をとり出して示したものが第1
図であり、第2図はこの装置に於る述語呼出し時の動作
フローを示した図である。
以下、これらの図によつて動作説明を行うが、そのため
にまず本実施例に於る述語呼出しのプログラム例を第6
図に示す。第6図は、第3図の“concatenate”プログ
ラムと同じ働きをするもので、ソースプログラムの方は
第3図と同一である。一方、アセンブラコードの先頭co
ncat/3には、第3図の“switch-on-term”命令に代わ
つて4つのエントリから成るテーブルが置かれ、最初の
エントリにはc1aのアドレスが、2番目のエントリに
はc1のアドレスが、3番目のエントリにはc2のアド
レスが、4番目のエントリにはc3のアドレスが格納さ
れる。この先頭、つまり述語“concatenate”を再帰的
に呼出している命令は下から2行目の“jump-pr”命令
であり、分岐はこれのみである。この命令はクローズ内
の最終ゴールからの呼出しに使われるものであるか、そ
れともソースプログラムのクローズ(b)のゴールが1
個しかなく、従つてこのゴールが最終ゴールであること
に対応している。以上の2つの命令の最終行の命令“ju
mp fail”以外は第3図と全く同じである。
そこで今“jump-pr”命令が発行されると、最初に第2
図のステツプ301の処理、つまりレジスタフアイル1
12から、今タイプインデキシングを行おうとしている
引数のタグ部をとり出し、これをレジスタ130へセツ
トする。この場合、上記引数は、第7図のようにレジス
タフアイル112内のArg1に格納されているものとし
ている(同図でArgは引数レジスタ、wkはワークレジス
タである)。ステツプ302ではこのレジスタ130に
とり込んだタグが参照ポインタであるか否かをしらべ
る。参照ポインタでない時はステツプ303へ進み、こ
こで“jump-pr”命令のオペランドであるconcat/3の
対応データをメモリ30から読み出し、これをデータレ
ジスタ142へセツトする。ここで、“jump-pr”命令
は第9図のようなフオーマツトであつて、同図(a)の
ように8ビツトのオペレーシヨンコードOP、8ビツト
のオペランドOS1から成るか、あるいは同図(b)の
ように、これらに更にデイスプレイスメントDISPを
持つている。次にステツプ304では、レジスタ130
へセツトされたインデキシングデータのタグを参照し
て、オフセツト生成回路132がオフセツトデータを生
成する。この時のタグとオフセツトデータの対応例は第
8図に示されている。タグは4ビツト構成で、このタグ
の示すデータタイプとしてはアトム,リスト,構造体、
及び未結合である。続いてステツプ305では演算器1
1によりデータレジスタ142にセツトされたデータと
上記生成されたオフセツトデータの加算を行う。この加
算の意味は次のようである。データレジスタ142にセ
ツトされたデータは、前述のように“jump-pr”命令の
オペラントcomcat/3の値であつて、これは第1図に示
したメモリ30内のタイプインデキシング用テーブル2
00の先頭アドレス(ベースアドレス)の値である。そ
してこのテーブル200には、レジスタフアイル112
中のタイプインデキシング用のデータのタイプに応じて
第7図のプログラムが分岐すべきアドレスc1a,c
1,c2,c3が格納されている。従つて例えばデータ
タイプが未結合の時は、オフセツトデータ生成回路13
2の出力の上2ビツト06(第8図)をベースアドレス
に加えるとテーブル200の先頭201の、c1aを格
納しているアドレスが算出される。同様にデータタイプ
がアトムの時はテーブル200の2番目202の、c1
を格納しているアドレスが、リストの時は3番目203
の、c2を格納しているアドレスが、そして構造体の時
は4番目204の、c3を格納しているアドレスが算出
される。
そこで、次のステツプ306に上記算出したアドレスに
よりメモリ30をリードアクセスしてその読み出したデ
ータをデータレジスタ142へセツトし、更にステツプ
307でこのセツトした値を演算器111経由でプログ
ラムカウンタ112へセツトすると、プログラムカウン
タ120には、次に実行すべき命令のアドレスc1a,
c1,c2,又はc3のいずれかが、データタイプに応
じてセツトされることになる。これは第3図のexecute
concat/3命令とswitch-on-term命令という2つの分岐
命令を実行した結果と等価な分岐を行うことであつて、
これがプログラムでは第6図の1つの分岐命令jump-pr
により実行できる。
なおステツプ302にてタグが参照ポインタであつた時
は、そのポインタが指す内容を、レジスタフアイル11
2内の引数レジスタArg1の新たな内容とするための処
理を行う。即ち、ステツプ310では、Arg1のポイン
タ部分のみを第5図のマスク回路110によつて取出し
てメモリアドレスレジスタ140にセツトし、ステツプ
311ではこのレジスタ140にセツトされたアドレス
をリードアクセスしてこのよみ出しデータをデータレジ
スタ142へセツトし、ステツプ312では、レジスタ
142の内容をレジスタArg1に転送してステツプ30
2に戻る。
また、“jump-pr”命令は、クローズ内の最終ゴールに
対する呼出し命令であつたが、最終ゴール以外のゴール
の述語呼出し命令として“call-pr”命令がある。この
フオーマツトはやはり第9図で表わされるが、“jump-r
p”命令はプログラムカウンタ120の古い値をどこに
も退避しないのに対して、“call-pr”命令は古い値を
退避レジスタ121へ退避するところが異つている。
更にインデキシングを行う引数をゴールの第1引数とし
て扱つたが、これはどの引数でインデキシングを行つて
もよいのはむろんであり、また、命令語内のオペラント
によつて、インデキシン対象の引数を指定するようにし
てもよい。この場合の“jump-pr”,“call-pr”命令の
フオーマツトは第10図(a),(b)のようになる。
同図のOS1は8ビツト長でインデキシング対象となる
引数レジスタの番号を指定し、OS2は8ビツト長でイ
ンデクステーブル200のベースアドレスである。同図
(b)はOS2がデイスプレイスメントDISPを伴う
場合である。
〔発明の効果〕
以上の説明から明らかなように、本発明によれば、述語
呼出しのための分岐時に、同時にタイプインデキシング
のための分岐の機能も兼ねることができるため、述語論
理型言語の効率のよい実行が可能となる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロツク図、第2図は
第1図の実施例の動作を示すフローチヤート、第3図は
従来装置のアセンブラコードの例を示す図、第4図はデ
ータ処理装置の全体構成図、第5図はデータパスの詳細
を示すブロツク図、第6図は本発明の装置を用いたとき
のアセンブラコードの例を示す図、第7図はデータフア
イルの構成を示す図、第8図はオフセツトデータ生成回
路の入出力関係を示す図、第9図及び第10図は述語呼
出し命令のフオーマツトを示す図である。 30……メモリ、111……演算器、112……レジス
タフアイル、120……プログラムカウンタ、121…
…退避レジスタ、130……タグレジスタ、132……
オフセツト生成回路、140……メモリアドレスレジス
タ、142……データレジスタ、200……タイプイン
デキシング用テーブル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 坂東 忠秋 茨城県日立市久慈町4026番地 株式会社日 立製作所日立研究所内 (72)発明者 中西 宏明 茨城県日立市大みか町5丁目2番1号 株 式会社日立製作所大みか工場内 (56)参考文献 特開 昭60−107137(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】複数の命令から構成され、述語呼出し命令
    によって呼出された時に与えられた参照データのタイプ
    に応じた命令へ分岐して実行を開始するような述語を有
    する論理型言語を処理するためのデータ処理装置に於
    て、上記述語毎に設けられ上記参照データのタイプに応
    じた分岐先命令のアドレスを格納するための分岐用テー
    ブルと、上記参照データのタイプを調べ且つそのタイプ
    に応じた分岐先命令のアドレスを格納した上記分岐用テ
    ーブルの位置と該テーブルの先頭アドレスとの差を表す
    オフセットデータを出力するためのオフセットデータ生
    成手段と、加算手段とを設けるとともに、述語呼出し命
    令のオペランドとしては該命令によって呼出したい述語
    に対応した上記分岐用テーブルの先頭アドレスを与え、
    該命令発行時には該命令のオペランドで与えられた上記
    分岐用テーブルの先頭アドレスと上記オフセットデータ
    生成手段により与えられた上記参照データタイプ対応の
    オフセットデータとを上記加算手段によって加算し、該
    加算結果のアドレスをプログラムカウンタにセットして
    当該アドレスの命令から実行を開始するように構成する
    と共に、前記加算手段の加算結果をプログラムカウンタ
    にセットする前にそれまでプログラムカウンタにあった
    アドレスを別に設けた退避レジスタへ退避させる構成と
    したことを特徴とするデータ処理装置。
JP61169918A 1986-07-21 1986-07-21 デ−タ処理装置 Expired - Lifetime JPH0658632B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61169918A JPH0658632B2 (ja) 1986-07-21 1986-07-21 デ−タ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61169918A JPH0658632B2 (ja) 1986-07-21 1986-07-21 デ−タ処理装置

Publications (2)

Publication Number Publication Date
JPS6326735A JPS6326735A (ja) 1988-02-04
JPH0658632B2 true JPH0658632B2 (ja) 1994-08-03

Family

ID=15895365

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61169918A Expired - Lifetime JPH0658632B2 (ja) 1986-07-21 1986-07-21 デ−タ処理装置

Country Status (1)

Country Link
JP (1) JPH0658632B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5245088A (en) * 1990-08-21 1993-09-14 Mitsui Toatsu Chemicals, Inc. Process for crystallizing adduct of bisphenol a with phenol

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60107137A (ja) * 1983-11-15 1985-06-12 Nec Corp タグ付デ−タ処理装置

Also Published As

Publication number Publication date
JPS6326735A (ja) 1988-02-04

Similar Documents

Publication Publication Date Title
US4791550A (en) Higher order language-directed computer
US5617553A (en) Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer
US5041968A (en) Reduced instruction set computer (RISC) type microprocessor executing instruction functions indicating data location for arithmetic operations and result location
EP0378415A2 (en) Multiple instruction dispatch mechanism
US4656581A (en) Vector mask control system
JPH0658632B2 (ja) デ−タ処理装置
JP2778717B2 (ja) データ処理ユニット
US6049864A (en) Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor
JP3116444B2 (ja) 半導体計算装置および電子機器
JP2743947B2 (ja) マイクロプログラム制御方式
JP3130421B2 (ja) プログラム解析方法および装置
JPS6394338A (ja) 論理型言語処理装置
EP0215001B1 (en) Higher order language-directed computer
JPS62295139A (ja) 論理型言語処理装置
JPS62197832A (ja) ベクトル処理装置
Matoba et al. Twin-register architecture for an AI processor
Iliffe DIGITAL SYSTEMS LABORATORY I
JPS61143850A (ja) 処理装置
JPS62209632A (ja) アドレス一致検出方式
Chalk Fetching and Executing Instructions
JPH0628034B2 (ja) タグ付計算機
JPS62204341A (ja) デ−タ処理装置
JPH0535493A (ja) アセンブラにおける汎用逆アセンブラ処理方式
JPS60134346A (ja) パリテイエラ−検出方式
JPH0827717B2 (ja) ミスアライメント処理方式